17183 Commits

Author SHA1 Message Date
John Koleszar
f31c40086e Merge "examples: fix memory leak" 2012-07-16 16:05:20 -07:00
Daniel Kang
e65f5987f6 Simplify vp8_decode_mb_tokens_8x8.
Change-Id: Icac5b18e5c832681cea866679796a1dd4278cfb8
2012-07-16 15:57:21 -07:00
Daniel Kang
6a92df2f37 Simplify vp8_decode_mb_tokens.
Change-Id: Ib6866e491994f6c7eeb6c2e5ecd1ff54cc187610
2012-07-16 15:57:14 -07:00
Ronald S. Bultje
da8159a479 Add missing mv_{col,row}_{min,max}_sb variables to MACROBLOCK struct.
This allows CONFIG_SUPERBLOCKS experiment to almost compile succesfully,
except for the missing pick_sb_modes() function.

Change-Id: Ib2322f2aacdc371e8066f2eb4a8d761c40490b4d
2012-07-16 15:25:59 -07:00
Ronald S. Bultje
6c0b21c075 Use 8x8 transform for all 16x16 intra prediction modes in keyframes.
Also use the 8x8 transform in the RD loop.

Change-Id: If1a25aa15d3f64e05c9a31875e309d8cd5bc812d
2012-07-16 12:22:36 -07:00
Ronald S. Bultje
1f889ad63f Keep statistics for chosen intra modes in keyframes also.
Change-Id: Ibfecf1fb0fcf51fb349746fec015b1a3e44a4530
2012-07-16 11:32:44 -07:00
Yunqing Wang
7f009975e9 multi-res: add parameter validity checking
Added validity checking in multi-res encoder. Disable spatial
resampling and frame dropping before we have those supports.
Also, deallocate the memory for all resolution levels once error
occurs.

Change-Id: Ia5d65a645381cad1a49940ab3a19bb5696c39c09
2012-07-13 17:32:40 -07:00
John Koleszar
4d3c3be6ba examples: fix memory leak
Free used resources before exiting.

Change-Id: If6cde6541615fbf17bf56ed335b76e676eabba93
2012-07-13 17:14:18 -07:00
Yunqing Wang
a6f4fc5a93 Remove unused parameter in encoder interface code
Removed encoding_mode, which is not used anymore.

Change-Id: I569b2d4afe4d2f57bda8248615108c7cfc40134c
2012-07-13 10:45:29 -07:00
John Koleszar
827e22c732 unset executable bit on source code
Change-Id: I0ddc849495c34f44c0b315cd7d58ad3d563f45e5
2012-07-13 09:44:25 -07:00
John Koleszar
896b6a9b57 Merge snapshot 2 development history
Create a merge between the experimental development history and the
previously published snapshot.

Change-Id: If320df72a6bbefec53833626d08dbc9678be2d2d
2012-07-12 09:31:36 -07:00
John Koleszar
51dba57cab Merge snapshot 1 development history
Merge in the git history leading up to the first experimental
snapshot.

Change-Id: Ifbdbd5bdb585864b3f996c562ef38b6306731251
2012-07-12 09:22:01 -07:00
Dragan Mrdjan
3eb4143fc3 Fix to compile properly on MIPS
Change-Id: I816d903e36605db2af691ccea9e68d7390942baa
2012-07-11 08:56:53 -07:00
Johann
a591209afd Merge "VP8 optimizations for MIPS dspr2" 2012-07-10 16:01:41 -07:00
John Koleszar
606ac45b2f keyframe_test: use a fixed speed step for realtime
The lower complexity modes may not generate a keyframe automatically.
This behavior was found when running under Valgrind, as the slow
performance caused the speed selection to pick lower complexities than
when running natively. Instead, use a fixed complexity for the
realtime auto keyframe test.

Affected tests:
  AllModes/KeyframeTest.TestAutoKeyframe/0

Change-Id: I44e3f44e125ad587c293ab5ece29511d7023be9b
2012-07-10 15:46:53 -07:00
Yunqing Wang
b25ebf7dde Merge "Add unit test for vp8_sixtap_predict functions" 2012-07-10 11:19:14 -07:00
John Koleszar
94285b79ab Merge "I420VideoSource: add members to ctor initialization" 2012-07-10 11:04:46 -07:00
Dragan Mrdjan
07ff7fa811 VP8 optimizations for MIPS dspr2
Signed-off-by: Raghu Gandham <raghu@mips.com>

Change-Id: I3a8bca425cd3dab746a6328c8fc8843c8e87aea6
2012-07-10 10:01:54 -07:00
Yunqing Wang
e61573c5f4 Add unit test for vp8_sixtap_predict functions
This unit test tests vp8_sixtap_predict function against preset
data and random generated data. The test against preset data
checks the correctness of the functions, and the test against
random data checks if the optimized six-tap predictor functions
generate matching result as the c functions. It tests the
following functions:
vp8_sixtap_predict16x16_c
vp8_sixtap_predict16x16_mmx
vp8_sixtap_predict16x16_sse2
vp8_sixtap_predict16x16_ssse3

vp8_sixtap_predict8x8_c
vp8_sixtap_predict8x8_mmx
vp8_sixtap_predict8x8_sse2
vp8_sixtap_predict8x8_ssse3

vp8_sixtap_predict8x4_c
vp8_sixtap_predict8x4_mmx
vp8_sixtap_predict8x4_sse2
vp8_sixtap_predict8x4_ssse3

vp8_sixtap_predict4x4_c
vp8_sixtap_predict4x4_mmx
vp8_sixtap_predict4x4_ssse3

Change-Id: I6de097898ebca34a4c8020aed1e8dde5cd3e493b
2012-07-10 09:56:35 -07:00
Yunqing Wang
bb3d510a18 Merge "Remove goldfreq in VP8_COMP" 2012-07-10 09:19:37 -07:00
James Zern
15296c24a6 I420VideoSource: add members to ctor initialization
silences valgrind warnings about uninitialized values in SetSize()

Change-Id: I54c4fdcc246687793393735b213c8777e79e47da
2012-07-09 17:36:01 -07:00
Yaowu Xu
a81baae7c7 change to enable encoder to clamp UV motion vector
This is to avoid a rare encoder/decoder mismatch for MB using SPLITMV
mode. In decoder, the UV mv can be determined to need clamp, but the
flag is never set in encoder motion vector selection process, and the
clamp is not done in encoding in encoder.

Change-Id: I60520d3f790354c7855dadf03f0978ea9b77e2c0
2012-07-09 15:04:07 -07:00
Yunqing Wang
eab09e34e3 Merge "Add 0 offsets handling in SSSE3 sixtap_predict functions" 2012-07-03 15:55:02 -07:00
Yunqing Wang
cdc35037a5 Merge "Fix subpixel_predict initialization" 2012-07-03 15:22:00 -07:00
Yunqing Wang
147e864629 Add 0 offsets handling in SSSE3 sixtap_predict functions
This patch fixed issue 458 by calling copy function when both
offsets are 0, which guarantees the SSSE3 functions output
same result as the c function for all possible offsets.

Change-Id: I209aec7a4c6b3362db2646a8887c1038493b6496
2012-07-02 16:50:48 -07:00
Yunqing Wang
b293698561 Fix subpixel_predict initialization
xd->subpixel_predict16x16 is called in first pass, but isn't
initialized in first pass, which causes segfault. This patch
fixed that problem.

Change-Id: Ibd2cad4e2d32ea589fc3e0876d60d3079ae836e7
2012-07-02 14:47:47 -07:00
Daniel Kang
c498aaca2e Merge "Add 8x8 fDCT unit test." into experimental 2012-06-30 00:33:36 +00:00
Christian Duvivier
5a5ced3e79 Get rid of some cast.
Change-Id: Iff5ccf2400bcb7b78c7b70f289ea65c982efddd5
2012-06-29 15:15:00 -07:00
John Koleszar
acd147c50c Build unit test driver from the default target
We need an easy way to build the unit test driver without running the
tests. This enables passing options like --gtest_filter to the
executable, which can't be done very cleanly when running under
`make test`.

Fixed a number of compiler errors/warnings when building the tests
in various configurations by Jenkins.

Change-Id: I9198122600bcf02520688e5f052ab379f963b77b
2012-06-29 15:03:50 -07:00
Christian Duvivier
c5b70370dc Fix warnings.
Change-Id: I6dd27a0ea661e6f10a55d7841021b66ae4fc72ae
2012-06-29 14:46:11 -07:00
John Koleszar
e7bbedce5f fdct4x4_test: remove unnecessary includes
Removes compiler warnings stemming from compiling C as C++.

Change-Id: I84ec60d04fcc6281b6f2ea75af6a22fa3232d95f
2012-06-29 12:17:58 -07:00
Daniel Kang
26641c74d7 Add 8x8 fDCT unit test.
Also factorize ACMRandom to acm_random.h.

Change-Id: I3b6eeb36fcbf7ae6dd3d2892bc40348f5c17982b
2012-06-29 12:07:18 -07:00
Yunqing Wang
e2c5e78ad9 Merge "Fix decimation_count in drop_frame" 2012-06-29 10:57:39 -07:00
Hui Su
e44ee38aef Add lossless compression mode.
This commit adds lossless compression capability to the experimental
branch. The lossless experiment can be enabled using --enable-lossless
in configure. When the experiment is enabled, the encoder will use
lossless compression mode by command line option --lossless, and the
decoder automatically recognizes a losslessly encoded clip and decodes
accordingly.

To achieve the lossless coding, this commit has changed the following:
    1. To encode at lossless mode, encoder forces the use of unit
quantizer, i.e, Q 0, where effective quantization is 1. Encoder also
disables the usage of 8x8 transform and allows only 4x4 transform;
    2. At Q 0, the first order 4x4  DCT/IDCT have been switched over
to a pair of forward and inverse Walsh-Hadamard Transform
(http://goo.gl/EIsfy),  with proper scaling applied to match the range
of the original 4x4 DCT/IDCT pair;
    3. At Q 0, the second order remains to use the previous
walsh-hadamard transform pair. However, to maintain the reversibility
in second order transform at Q 0, scaling down is applied to first
order DC coefficients prior to forward transform, and scaling up is
applied to the second order output prior to quantization. Symmetric
upscaling and downscaling are added around inverse second order
transform;
    4. At lossless mode, encoder also disables a number of minor
features to ensure no loss is introduced, these features includes:
        a. Trellis quantization optimization
        b. Loop filtering
        c. Aggressive zero-binning, rounding and zero-bin boosting
        d. Mode based zero-bin boosting

Lossless coding test was performed on all clips within the derf set,
to verify that the commit has achieved lossless compression for all
clips. The average compression ratio is around 2.57 to 1.
(http://goo.gl/dEShs)

Change-Id: Ia3aba7dd09df40dd590f93b9aba134defbc64e34
2012-06-28 17:09:47 -07:00
Daniel Kang
0e734a63e8 Merge "Port Yaowu's 4x4 fDCT test." into experimental 2012-06-28 23:16:00 +00:00
Daniel Kang
58156f1826 Port Yaowu's 4x4 fDCT test.
Also fix unit testing.

Change-Id: Iacdc6f1ec53388e093cda1c13e4379e83d4a6535
2012-06-28 15:48:46 -07:00
James Zern
31fd98d724 fix permissions on regular files
Change-Id: I731354b3cf3405eba2dfffcb47d174b5fa9df21a
2012-06-27 23:45:56 -07:00
Yaowu Xu
ff8b630cc9 Merge "Added Prediction Filter to Mode Selection" into experimental 2012-06-27 23:37:49 +00:00
Adrian Grange
bbc926dca2 Added Prediction Filter to Mode Selection
Added the ability to optionally filter the prediction data
when inter modes are selected (excludes SPLITMV, for now).

The mode selection loop considers both the filtered and
non-filtered prediction data when choosing mode. The filter
can be turned on/off at the frame-level, or signaled for
each MB.

Change-Id: I1b783c71d95a361ab36c761b07e8a6b06bc36822
2012-06-27 14:51:41 -07:00
Yaowu Xu
cb231c8840 Merge "Enable unit test framework in experimental branch." into experimental 2012-06-26 21:15:53 +00:00
Ronald S. Bultje
a742a73655 Enable unit test framework in experimental branch.
Change-Id: I27c98025b2857e2911005a52dd57c46e2524e815
2012-06-26 09:50:20 -07:00
Deb Mukherjee
f3dff40255 Continued adaptive entropy coding
Incorporates mv_ref, mbsplit and second_mv into the adaptive
entropy framework. The mv_ref framework has been modified from
before.

Adds some clean-ups and fixes.

Results with the adaptive entropy experiment are currently up by
+1.93% on derf; +2.33% std-hd and +1.87% yt-hd.

Fixed a nasty intermittent bug.

Change-Id: I4b1ac9f9483b48432597595195bfec05f31d1e39
2012-06-25 18:09:54 -07:00
Yaowu Xu
e859faa29e fixed a build problem with target=x86_64-win64-vs9
Change-Id: I9c56216d22212c4fc13a5e2ed02f30f5b373b94c
2012-06-25 17:24:15 -07:00
Yaowu Xu
532faf0f1c Added unit test for 4x4 forward dct
Change-Id: I1607676879c29adc0173a3c0355a0e5d8a84fc3b
2012-06-25 17:05:52 -07:00
Jim Bankoski
6c86ef2ea4 Merge "Add unit test for intra prediction." 2012-06-25 14:46:45 -07:00
Ronald S. Bultje
9c9d6743d4 Sign-extend input argument so it can be used in pointer arithmetic.
Change-Id: I6cbd4de96f9dcc783cef170bfd7652f6cbee36a2
2012-06-25 14:16:39 -07:00
John Koleszar
d67acd870a Merge changes I94a061eb,If6910fe3
* changes:
  add auto keyframe unit test
  Add support for downloading test data
2012-06-25 12:52:02 -07:00
John Koleszar
4e06b0c602 gen_asm_deps.sh: regex fix
Fixed the quantifier that optionally matches a quote before the
filename. This was originally reported in the homebrew project[1].
Note that this fix is different than patch posted there, as there are
some platforms that don't have the quote, so it needs to be included
in the expression optionally.

[1]: https://github.com/mxcl/homebrew/issues/12567#issuecomment-6434000

Change-Id: Ibf2ed93ce169d80932e877f942dc4eeb03867f8b
2012-06-25 10:09:05 -07:00
Ronald S. Bultje
a441b60aa0 Add unit test for intra prediction.
Change-Id: I7dadadeb99bee5a51219f46fe11c760fc294c735
2012-06-25 09:34:10 -07:00
Jim Bankoski
96b6b6bbf0 add auto keyframe unit test
To do so we add a framework for encoding a yv12 file..

Change-Id: I94a061eb916beaf6cde920cf1aaadb6eed10a717
2012-06-23 11:20:41 -07:00