summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-07-28Move vp9_dec_build_inter_predictors_* to decoder folder.hkuang
Change-Id: Ibe9fa28440cc79ba9f3504d78c7dca7bb01a23e1
2014-07-28Add segmentation map array for current and last frame segmentation.hkuang
The original implementation only allocates one segmentation map and this works fine for serial decode. But for frame parallel decode, each thread need to have its own segmentation map and the last frame segmentation map should be provided from last frame decoding thread. After finishing decoding a frame, thread need to serve the old segmentation map that associate with the previous decoded frame. The thread also need to use another segmentation map for decoding the current frame. Change-Id: I442ddff36b5de9cb8a7eb59e225744c78f4492d8
2014-07-14Merge "Include the right header for VP9 worker thread." into frame_parallelhkuang
2014-07-14Include the right header for VP9 worker thread.hkuang
pthread.h is not supported in windows. vp9_thread.h includes the emulation layer for pthread in windows. Change-Id: I2b1c8ec299928472faca7ebeea998170c9f4d744
2014-07-11Move vp9_thread.* to common.hkuang
Prepare for frame parallel decoding, the reference count buffers need to be protected by mutex. Move vp9_thread.* to common folder so that those buffers could use cross-platform mutex from vp9_thread.*. (cherry picked from commit 337e8015c9deaf8ab7e8d0c3c132160a77dd1590) Change-Id: I0587a08447925f4554d7788686a31483c2ae3f37
2014-07-02ctrl_get_reference does not need user_priv.hkuang
The relationship of the user private data at runtime is not preserved from decode() to this call which may occur at an unknown point in the future Change-Id: Ia7eb25365c805147614574c3af87aedbe0305fc6
2014-07-02Seperate the frame buffers from VP9 encoder/decoder structure.hkuang
Prepare for frame parallel decoding, the frame buffers must be separated from the encoder and decoder structure, while the encoder and decoder will hold the pointer of the BufferPool. Change-Id: I172c78f876e41fb5aea11be5f632adadf2a6f466
2014-07-02Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:"""hkuang
This reverts commit 749e0c7b2883139afa14b4886bbd6a940d021f4f. Change-Id: I0c63a152baf94d38496dd925a40040366153bf4f
2014-07-02Merge "Adapt strength of AQ2."Paul Wilkins
2014-07-02Merge "Store/read 16x16 block statistics obtained from the first pass"Pengchong Jin
2014-07-02Adapt strength of AQ2.Paul Wilkins
Adapt the use of segmentation in AQ mode 2 based on the ambient kf/arf/gf Q. Disable segmentation where the rate per SB is very low and overheads are likely to outweigh the benefits. This patch reduces the -ve average metrics impact of AQ mode 2 while allowing stronger 3 segment AQ in some cases. Average improvement ~0.5-1.0%. Change-Id: I5892dfcc7507c5cc6444531cc7fe17554cf8d0c7
2014-07-02Adds support for reading and writing 10/12-bit y4mDeb Mukherjee
The y4m extension used is the same as the one used in ffmpeg/x264. The patch is adapted from the highbitdepth branch. Also adds unit tests for y4m header parsing and md5 check of the raw frame data, as well as y4m writing. Change-Id: Ie2794daf6dbafd2f128464f9b9da520fc54c0dd6
2014-07-01Merge "VP9 denoiser used s/int/enum where appropriate"Tim Kopp
2014-07-01Merge "Denoised output is now grayscale"Tim Kopp
2014-07-01Merge "vp8/bitstream.h: quiet warnings in EDSP builds"James Zern
2014-07-01Merge changes I875ac5a7,I2b13369d,I9ceb47a9James Zern
* changes: update vp9_thread.[hc] vp9_thread_test: remove unnecessary c_str()'s vp9_thread_test: factorize decode loop
2014-07-01Merge "Re-design quantization process"Yaowu Xu
2014-07-01Re-design quantization processJingning Han
This commit re-designs the quantization process for transform coefficient blocks of size 4x4 to 16x16. It improves compression performance for speed 7 by 3.85%. The SSSE3 version for the new quantization process is included. The average runtime of the 8x8 block quantization is reduced from 285 cycles -> 255 cycles, i.e., over 10% faster. Change-Id: I61278aa02efc70599b962d3314671db5b0446a50
2014-07-01Merge "Add a test that tests invalid partitions for profile 1"Jim Bankoski
2014-07-01Merge "validate uv block size when reading partition"Jim Bankoski
2014-07-01Store/read 16x16 block statistics obtained from the first passPengchong Jin
Add a conditional compile flag for this feature. Also add a switch to enable the encoder to use these statistics in the second pass. Currently, the switch is turned off. Change-Id: Ia1c858c35ec90e36f19f5cffe156b97ddaa04922
2014-07-01Merge "Elevate NEWMV mode checking threshold in real time"Yunqing Wang
2014-07-01Add a test that tests invalid partitions for profile 1Jim Bankoski
Change-Id: I3d95fbe9a8098256582b5386881d5b7bbdb317ed
2014-07-01Merge "vp9_thread_test: add 'Thread' to test names"James Zern
2014-07-01Elevate NEWMV mode checking threshold in real timeYunqing Wang
The current threshold is knid of low, and in many cases NEWMV mode is checked but not picked as the best mode. This patch added a speed feature to increase NEWMV threshold, so that less partition mode checking goes to check NEWMV. This feature is enabled for speed 6 and 7. Rtc set borg tests showed: 1. Speed 6, overall psnr: -0.088%, ssim: -1.339%; Average speedup on rtc set is 11.1%. 2. Speed 7, overall psnr: -0.505%, ssim: -2.320% Average speedup on rtc set is 12.9%. Change-Id: I953b849eeb6e0d5a1f13eacba30c14204472c5be
2014-07-01VP9 denoiser used s/int/enum where appropriateTim Kopp
Change-Id: Id52a7869fd1f31bb060de170e3295da7435adb9e
2014-07-01Denoised output is now grayscaleTim Kopp
Grayscale is conditionally compiled. Change-Id: I482ab237560d0bae8d397fd9999e78d38104f2a1
2014-07-01Add a new yuv444 testvector.Alex Converse
This refelects the profile 1 bitstream change in 6c54dbc. Change-Id: I39625d88f236a79b7f2955d79c5a451e3753da16
2014-07-01Merge "Fix visual studio build issue"Dmitry Kovalev
2014-07-01validate uv block size when reading partitionJim Bankoski
Change-Id: I74fc5f1a7bab3128cdd49441b83ec3a25aee65ca
2014-07-01Fix visual studio build issueYunqing Wang
Fixed the signed/unsigned mismatch. Change-Id: Id83d603b8f1745b71f4cf695a0751e55518b1316
2014-07-01update vp9_thread.[hc]James Zern
pull the latest from WebP, which adds a worker interface abstraction allowing an application to override init/reset/sync/launch/execute/end this has the side effect of removing a harmless, but annoying, TSan warning. Original source: http://git.chromium.org/webm/libwebp.git 100644 blob 08ad4e1fecba302bf1247645e84a7d2779956bc3 src/utils/thread.c 100644 blob 7bd451b124ae3b81596abfbcc823e3cb129d3a38 src/utils/thread.h Local modifications: - s/WebP/VP9/g - camelcase functions -> lower with _'s - associate '*' with the variable, not the type Change-Id: I875ac5a74ed873cbcb19a3a100b5e0ca6fcd9aed
2014-07-01vp9_thread_test: remove unnecessary c_str()'sJames Zern
EXPECT_EQ() works with strings Change-Id: I2b13369d2aa7ff305ee516e6cb73bd099f8dead9
2014-06-30vp9_thread_test: factorize decode loopJames Zern
+ add a SCOPED_TRACE with the current filename Change-Id: I9ceb47a9154bc0d9f9878a83b707e8ed935790f9
2014-06-30vp9_thread_test: add 'Thread' to test namesJames Zern
s/VP9DecodeMTTest/VP9DecodeMultiThreadedTest/ this enables simpler test filtering Change-Id: I010a451cf32fa5a95db6734cc22f331f0a0d515a
2014-06-30vp8/bitstream.h: quiet warnings in EDSP buildsJames Zern
fixes: vp8\encoder\bitstream.h: same type qualifier used more than once Change-Id: I62b99342131fdaedb1f7cc8d2dcd13ab34637cd7
2014-06-30Merge "libs.mk: don't include x86inc.asm in codec src list"James Zern
2014-06-30Merge "Revert "Fix a bug in VP9Worker which leads to unit test hang.""James Zern
2014-06-30Merge "BITSTREAM: Handle transform size and motion vectors more logically ↵Alex Converse
for non-420."
2014-06-30Revert "Fix a bug in VP9Worker which leads to unit test hang."hkuang
The caller should reset the state instead of letting worker to reset. This reverts commit 34b2ce15f95ee0944ebe6d569e7a9179a7e4cc5b. Change-Id: Idb546ea6386cffc44e98dee772900d21ab79710f
2014-06-30Merge "Encode_breakout code refactoring"Yunqing Wang
2014-06-30Merge "change to not force interp_type as SWITCHABLE"Yaowu Xu
2014-06-30change to not force interp_type as SWITCHABLEYaowu Xu
Encoder still uses SWITCHABLE as default via DEFAULT_INTERP_FILTER, but does not override the default if it is not SWITCHABLE. Change-Id: I3c0f6653bd228381a623a026c66599b0a87d01d5
2014-06-30Merge "Remove unused set_mode_info function"Jingning Han
2014-06-30Merge "Fix a bug in VP9Worker which leads to unit test hang."hkuang
2014-06-30Encode_breakout code refactoringYunqing Wang
Moved the encode_breakout_test out of vp9_pick_inter_mode(). Change-Id: I6966d0293ae5210a5a28b0e8debacb24d1c0d2d4
2014-06-30Remove unused set_mode_info functionJingning Han
When the frame is intra coded only, the encoder takes the RD coding flow. Hence the function set_mode_info is not practically in use. This commit removes it and the associated conditional branches. Change-Id: I1e42659ceb55b771ba712d1cdecacb446aa6460d
2014-06-30Fix a bug in VP9Worker which leads to unit test hang.hkuang
This fixes the hang in VP9/InvalidFileTest.ReturnCode/3 due to worker->had_error has not been reset after getting error. Change-Id: Ia3608225094758a2bd88f6ae4dd9dfd93bbaad27
2014-06-30Enable encode breakout in real timeYunqing Wang
For real time speed 7, once encode breakout is on(i.e. encoding setting --static-thresh=1), a proper encode breakout threshold is set to speed up the encoder. Set --static-thresh=1, RTC set borg test showed a slight overall psnr loss of 0.162%, but ssim gain of 0.287%. The average speedup on RTC set is 6%, and for some clips, the speedup can be 10+%. Change-Id: Id522d9ce779ff7c699936d13d0c47083de4afb85
2014-06-30Decide the partitioning threshold from the variance histogramYunqing Wang
Before encoding a frame, calculate and store each 16x16 block's variance of source difference between last and current frame. Find partitioning threshold T for the frame from its variance histogram, and then use T to make partition decisions. Comparing with fixed 16x16 partitioning, rtc set test showed an overall psnr gain of 3.242%, and ssim gain of 3.751%. The best psnr gain is 8.653%. The overall encoding speed didn't change much. It got faster for some clips(for example, 12% speedup for vidyo1), and a little slower for others. Also, a minor modification was made in datarate unit test. Change-Id: Ie290743aa3814e83607b93831b667a2a49d0932c