- 04 Mar, 2015 1 commit
-
-
Adrian Grange authored
Frame buffers are now allocated dynamically on-demand. Entries in the reference frame map, cm->ref_frame_map, may now be set to -1 (INVALID_IDX) to indicate that there is not a valid reference buffer in that "slot". All slots in the reference frame map are now initialized to the empty state (-1) and each buffer is initialized to have a reference count of 0. Change-Id: Id1afe98de98db4ae8b2dfefed7889c3b28c68582
-
- 01 Mar, 2015 1 commit
-
-
Jingning Han authored
This commit replaces the SAD with variance as metric for the integral projection vector match. It improves the search accuracy in the presence of slight light change. The average speed -6 compression performance for rtc set is improved by 1.7%. No speed changes are observed for the test clips. Change-Id: I71c1d27e42de2aa429fb3564e6549bba1c7d6d4d
-
- 20 Feb, 2015 2 commits
-
-
Marco authored
Target higher delta-qp for big blocks with zero motion, and for segment#1: avoid 64x64 partition size and force 8x8 tx size. Metrics on RTC set mostly positive: SSIM up by ~4%, PSRN by ~1.5%. Doesn't seem to be any change in speed. Change-Id: I1f68fa3c4f62dab3b90cc58041f05ebb048ae5ac
-
Jingning Han authored
This commit adds proper buffer handle to support high bit depth in rtc sub8x8 block coding. Change-Id: Ibaf8a2160194121aec9ca68b8094817fed9ccaea
-
- 19 Feb, 2015 1 commit
-
-
Yunqing Wang authored
Modified the thresholds of deciding whether or not to skip the transforms in model_rd_for_sb_y(). Used zbin[] instead of dequant[] to be more precise. Also, modified the checking coditions. Rtc set borg test results (at speed 6) showed: average PSNR gain: 0.138%, overall PSNR gain: 0.158%, and SSIM gain: 0.177%. The data rate test was modified slightly as suggested by Marco. Change-Id: Ieaf633ab77f4838cb3c45cf69065b29d55f8ae6c
-
- 13 Feb, 2015 1 commit
-
-
Marco authored
Replaced a divide by 9 with 8, so some very small difference, but otherwise no change in behavior. Change-Id: I1079ae3c41e0789ff0bc6fa9940a238b6bca0f5b
-
- 11 Feb, 2015 3 commits
-
-
Jingning Han authored
This commit allows the encoder to properly account for the mode cost in sub8x8 non-RD mode decision. Change-Id: I2951960d20e37ed08e372ee0c7044935b2b9b899
-
Jingning Han authored
Add the rate cost on inter prediction filter type to the overall rate-distortion cost in vp9_pick_mode_inter. Change-Id: I72c34017adf5220cadb3962694ee5404469fc673
-
Jingning Han authored
This commit adds a heuristic rate cost of reference frame to the non-RD mode decision. It improves the compression performance of speed -6 by 0.31% and speed -5 by 0.69%. Change-Id: If7f3b45519d49b2cb640bcb7316a254efc8be446
-
- 06 Feb, 2015 1 commit
-
-
Jingning Han authored
This commit makes the ZEROMV mode first in the search order to ensure that the zero mv is always checked in the RTC coding mode. It improves the average speed -6 compression performance by 0.3% in both PSNR and SSIM at no visible speed change. Change-Id: I465a7e59f4e20cd84fee3f02ced6f98036945949
-
- 04 Feb, 2015 2 commits
-
-
Jingning Han authored
Reuse the yv12_mb array to fetch the buffer pointers/strides corresponding to the current reference frame. Change-Id: I5276b7494158b2cccef15213be2dc189e9036851
-
Jingning Han authored
This commit allows the encoder to account for additional chroma plane costs in the mode decision process, if the current block potentially contains significant color change. It improves the visual quality at very low bit-rates. The compression performance of dark720p is improved by 12.39% in speed 6. For jimred at 150 kbps, the PSNR of V component (red) increased by 0.2 dB, at the expense of about 5% increase in encoding time. Note that for sequences where the chroma components are fairly consistent, the encoding time increase is negligible. On average the rtc set compression performance is improved by 1.172% in PSNR and 1.920% in SSIM. Change-Id: Ia55b24ef23a25304f7ec9958fbf07fd6e658505c
-
- 31 Jan, 2015 1 commit
-
-
hkuang authored
In frame parallel decode, libvpx decoder decodes several frames on all cpus in parallel fashion. If not being flushed, it will only return frame when all the cpus are busy. If getting flushed, it will return all the frames in the decoder. Compare with current serial decode mode in which libvpx decoder is idle between decode calls, libvpx decoder is busy between decode calls. Current frame parallel decode will only speed up the decoding for frame parallel encoded videos. For non frame parallel encoded videos, frame parallel decode is slower than serial decode due to lack of loopfilter worker thread. There are still some known issues that need to be addressed. For example: decode frame parallel videos with segmentation enabled is not right sometimes. * frame-parallel: Add error handling for frame parallel decode and unit test for that. Fix a bug in frame parallel decode and add a unit test for that. Add two test vectors to test frame parallel decode. Add key frame seeking to webmdec and webm_video_source. Implement frame parallel decode for VP9. Increase the thread test range to cover 5, 6, 7, 8 threads. Fix a bug in adding frame parallel unit test. Add VP9 frame-parallel unit test. Manually pick "Make the api behavior conform to api spec." from master branch. Move vp9_dec_build_inter_predictors_* to decoder folder. Add segmentation map array for current and last frame segmentation. Include the right header for VP9 worker thread. Move vp9_thread.* to common. ctrl_get_reference does not need user_priv. Seperate the frame buffers from VP9 encoder/decoder structure. Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:""" Conflicts: test/codec_factory.h test/decode_test_driver.cc test/decode_test_driver.h test/invalid_file_test.cc test/test-data.sha1 test/test.mk test/test_vectors.cc vp8/vp8_dx_iface.c vp9/common/vp9_alloccommon.c vp9/common/vp9_entropymode.c vp9/common/vp9_loopfilter_thread.c vp9/common/vp9_loopfilter_thread.h vp9/common/vp9_mvref_common.c vp9/common/vp9_onyxc_int.h vp9/common/vp9_reconinter.c vp9/decoder/vp9_decodeframe.c vp9/decoder/vp9_decodeframe.h vp9/decoder/vp9_decodemv.c vp9/decoder/vp9_decoder.c vp9/decoder/vp9_decoder.h vp9/encoder/vp9_encoder.c vp9/encoder/vp9_pickmode.c vp9/encoder/vp9_rdopt.c vp9/vp9_cx_iface.c vp9/vp9_dx_iface.c This reverts commit a18da976. Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02
-
- 23 Jan, 2015 1 commit
-
- 07 Jan, 2015 3 commits
-
-
Jingning Han authored
These two parameters are used to control the denoiser cut-off thresholds. They should be properly initialized when starting mode search of a given block. Change-Id: Iba8a25487026a0dbe0d350c347d7e4e4e237b637
-
Jingning Han authored
This fixes the issue that sub8x8 inter blocks always end up with GOLDEN_FRAME. Change-Id: Id0c25cbb9c2003f43b4dff8fb1572512c246e077
-
Jingning Han authored
Replace ref_frame++ with ++ref_frame. Change-Id: Ic39793081156c314bf1b85d5ab76def97f3bff52
-
- 02 Jan, 2015 1 commit
-
-
Jingning Han authored
Use mbmi->segment_id directly in vp9_pick_inter_mode. The value is set outside this function, hence no need to assign it again. Change-Id: I3d63cdd2e4fadf62ccdefada638b00d979eb3741
-
- 30 Dec, 2014 1 commit
-
-
Jingning Han authored
This commit simplifies the reference motion vector part for sub8x8 block coding in RTC mode and reduces the required local variables. Change-Id: I470d1482092563b68af22404dc1f497e7457b0a8
-
- 25 Dec, 2014 1 commit
-
-
Jingning Han authored
This commit enables sub8x8 inter block coding for RTC mode. The use of sub8x8 blocks can be turned on by allowing choose_partitioning function to select 4x4/4x8/8x4 block sizes. Change-Id: Ifbf1fb3888fe4c094fc85158ac3aa89867d8494a
-
- 23 Dec, 2014 1 commit
-
-
Jingning Han authored
Properly set the corresponding scaling factor of the reference frame in the non-RD mode decision process. This allows the mode search process to account for the scaled reference frame when selecting coding mode. Change-Id: I9d41bff6931c98e5a82b413e37ac5e6e14b93b23
-
- 18 Dec, 2014 2 commits
-
-
Jingning Han authored
This commit adds a guard condition to the intra mode test skip control in RTC coding mode. If all inter modes are skipped, force the encoder to check intra mode. It avoids situations where the encoder processes without properly assigning required mode information. Change-Id: Ibb349fee997d6584ce901d08b06e8df3ca9c01b1
-
Jingning Han authored
The alternate reference frame is disabled in non-RD mode. No need to keep the related entries in the THR_MODES array. Change-Id: I53386f4bb1c6284f582801f27246c5edf55bc24b
-
- 17 Dec, 2014 2 commits
-
-
Jingning Han authored
In RTC coding mode, the alternate reference frame modes and compound inter prediction modes are disabled. This commit reworks the related mode search threshold update process to skip interacting with these coding modes. It provides about 1.5% speed-up for speed -6 on average. vidyo1 16551 b/f, 40.451 dB, 6261 ms -> 16550 b/f, 40.459 dB, 6190 ms nik720p 33316 b/f, 38.795 dB, 6335 ms -> 33310 b/f, 38.798 dB, 6237 ms mmmoving 33265 b/f, 41.055 dB, 7176 ms -> 33267 b/f, 41.064 dB, 7084 ms dark720 33329 b/f, 39.729 dB, 11235 ms -> 33331 b/f, 39.733 dB, 10731 ms Change-Id: If2a4090a371cd28f579be219c013b972d7d9b97f
-
Jingning Han authored
Use a temporary variable to store the transform size associated with the best intra mode and restore the mode_info if the overall best mode is intra mode. Change-Id: I2606e0061ad32f91b095462902b1eb734b128eea
-
- 16 Dec, 2014 1 commit
-
-
Jingning Han authored
When multiple intra modes are tested, the previous mode info update process may overwrite the selected best intra mode and make the final selection use an inter mode. This commit fixes this issue by moving the mode_info reset outside the intra mode search loop. Change-Id: I15ed4288a6b3cb0832104a5e6d5d9a25cd1a5b2b
-
- 15 Dec, 2014 3 commits
-
-
Jingning Han authored
If vp9_pick_inter_mode works properly, it should at least check one coding mode and hence get best_tx_size assigned a valid value. There is no need to initialize best_tx_size with a legitimate value before starting the mode search. Change-Id: Ic0496cd89672ea9c2c512a9bd1da952190af9cba
-
Jingning Han authored
Make the variable reduction_fac log2 based and explicitly use right shift when computing intra_cost_penalty. Change-Id: I208f1fb879a02debb3b3fc64f9fd06260dcf1c86
-
Jingning Han authored
Use left shift to replace one multiplication. The computation outcome remains identical. Change-Id: I1e1737af0a245de0d2a2bde10f0c171477199fc1
-
- 10 Dec, 2014 1 commit
-
-
Jingning Han authored
Replace error_resilient flag with use_prev_frame_mvs in vp9_pick_inter_mode reference motion vector search selection. This effectively turns off the simplified ref mv search in the settings of frame resizing, even if error-resilient mode is off. Change-Id: I7fed814ee7bc0cb419a03b846e0fc2de46ba7686
-
- 06 Dec, 2014 1 commit
-
-
Jingning Han authored
The initial reset of this_rdc in vp9_pick_inter_mode is not needed, since it will be re-assign when used. Change-Id: Ic0e12d741cbab292fc214c1eabb48b129af7839b
-
- 05 Dec, 2014 2 commits
-
-
Jingning Han authored
Compare the current best mode rate-distortion cost with the skip threshold to decide if performing motion search. Change-Id: Ia071824f8dd3b7db485f424692a485a2da6a1a9f
-
Jingning Han authored
Change-Id: I0222f7abc61202f4a83b117bbfb042ada6304562
-
- 04 Dec, 2014 1 commit
-
-
Deb Mukherjee authored
Bug was introduced in https://gerrit.chromium.org/gerrit/#/c/72122/ Change-Id: Idb500ea619a30e7bc50e22fb8ee03be5282f41db
-
- 25 Nov, 2014 3 commits
-
-
Jingning Han authored
Change-Id: Ic072585ebffdb36982ed7b8b9f875ca6c1c656c4
-
Jingning Han authored
This commit allows the encoder to increase the mode test kick-off thresholds if the previous best mode renders all zero quantized coefficients, thereby saving motion search runs when possible. The compression performance of speed -5 and -6 is down by -0.446% and 0.591%, respectively. The runtime of speed -6 is improved by 10% for many test clips. vidyo1, 1000 kbps 16578 b/f, 40.316 dB, 7873 ms -> 16575 b/f, 40.262 dB, 7126 ms nik720p, 1000 kbps 33311 b/f, 38.651 dB, 7263 ms -> 33304 b/f, 38.629 dB, 6865 ms dark720p, 1000 kbps 33331 b/f, 39.718 dB, 13596 ms -> 33324 b/f, 39.651 dB, 12000 ms mmoving, 1000 kbps 33263 b/f, 40.983 dB, 7566 ms -> 33259 b/f, 40.978 dB, 7531 ms Change-Id: I7591617ff113e91125ec32c9b853e257fbc41d90
-
Yunqing Wang authored
This patch modified struct VP9_COMP. Created a struct ThreadData to include data that need to be copied for each thread. In multiple thread case, one thread processes one tile. all threads share one copy of VP9_COMP, (refer to VP9_COMP *cpi in the code) but each thread has its own copy of ThreadData, (refer to ThreadData *td in the code). Therefore, within the scope of encode_tiles(), both cpi and td need to be passed as function parameters. In single thread case, the FRAME_COUNTS pointer in ThreadData points to "counts" in VP9_COMMON. Change-Id: Ib37908b2d8e2c0f4f9c18f38017df5ce60e8b13e
-
- 24 Nov, 2014 2 commits
-
-
Jingning Han authored
The intra mode penalty is covered by intra_cost_penalty. This commit removes the other intra cost threshold, provided that the constant 50 is negligible in normal rate-distortion cost. Change-Id: I9b8b7483c43b9a41741622e7057def1f7d51bb72
-
Jingning Han authored
This commit makes a non-RD coding mode decision process for key frame coding. It can be optionally turned on in speed -6 and above. Change-Id: I0847258b392877a0210b4768bef88ebc9ad009b5
-
- 21 Nov, 2014 1 commit
-
-
Jingning Han authored
This commit allows more aggressive decision to skip forward transform and quantization for luma component in RTC coding mode. The chroma components remains going through the normal coding routine, since they are not included in the non-RD mode search process. It reduces the runtime cost by 2% - 10%. In speed -6, vidyo1 1000 kbps 16576 b/f, 40.281 dB, 8402 ms -> 16576 b/f, 40.323 dB, 7764 ms nik720p 1000 kbps 33337 b/f, 38.622 dB, 7473 ms -> 33299 b/f, 38.660 dB, 7314 ms dark720p 1000 kbps 33330 b/f, 39.785 dB, 13505 ms -> 33325 b/f, 39.714 dB, 13105 ms The compression performance of speed -6 is improved by 0.44% in PSNR and 1.31% in SSIM. Change-Id: Iae9e3738de6255babea734e5897f29118bebc6d7
-