summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2015-02-11Merge "Add ref frame rate cost to non-RD mode decision"Jingning Han
2015-02-11Add ref frame rate cost to non-RD mode decisionJingning Han
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
2015-02-10Move computation up to frame levelYaowu Xu
This is to avoid redo the same calculation repeatly, and also allow easier adjustments for further experiments. This commit shall have no effect on quality/compression. Change-Id: I4460acf5c808ff5518da18d21e002c5da58af857
2015-02-10Merge "Auto-adaptive encoder frame resizing logic"Adrian Grange
2015-02-10Merge "Fix block partition size in fill_mode_info_sb"Jingning Han
2015-02-10Auto-adaptive encoder frame resizing logicAdrian Grange
Note: This feature is still in development. Add an option for the encoder to decide the resolution at which to encode each frame. Each KF/GF/ARF goup is tested to see if it would be better encoded at a lower resolution. At present, each KF/GF/ARF is coded first at full-size and if the coded size exceeds a threshold (twice target data rate) at the maximum active Q then the entire group is encoded at lower resolution. This feature is enabled in vpxenc by setting: --resize-allowed=1 In addition, if the vpxenc command line also specifies valid frame dimensions using: --resize-width=XXXX & --resize_height=YYYY then *all* frames will be encoded at this resolution. Change-Id: I13f341e0a82512f9e84e144e0f3b5aed8a65402b
2015-02-10Merge "Make encoder and decoder share common thread function"Yunqing Wang
2015-02-10Merge "Rename loopfilter_thread files to thread_common files"Yunqing Wang
2015-02-10Fix block partition size in fill_mode_info_sbJingning Han
This commit fixes the sub block partition size used in fill_mode_info_sb. Previous implementation effectively disabled the rectangular block sizes. This commit resolved this issue. Change-Id: Ic1c383ab0a9a2e7d59e85b388093f1f1f94d1e7f
2015-02-09Merge "Set the maximum decode threads to be 8."hkuang
2015-02-09Merge "Fix high bit depth assembly function bugs"Yunqing Wang
2015-02-09Set the maximum decode threads to be 8.hkuang
This will fix the frame parallel decode hang on windows due to not enough semaphores. This will also make the frame parallel decode safer as the number of frame buffers could only support maximum 8 threads. Change-Id: Id9ef50692819dcbebbd74a0aabffbfb3f39a4309
2015-02-07Fix jenkins unit test failure due to "uninitialised value".hkuang
Change-Id: Ief6b526486bc729dcb787358bc0b781f278bdc66
2015-02-06Make encoder and decoder share common thread functionYunqing Wang
Moved vp9_accumulate_frame_counts to vp9_thread_common.c to eliminate the duplicate code. Change-Id: I9cf506d729603c8bf1494b4c86a3b7d47af1917a
2015-02-06Merge "Re-arrange inter mode search order in RTC coding flow"Jingning Han
2015-02-06Rename loopfilter_thread files to thread_common filesYunqing Wang
Renames the files to allow more common thread code to be moved to vp9/common. Change-Id: I7386e64e221086e3cdc087e79812f993c423413b
2015-02-06Merge "Replace repeated check with single variable"Yaowu Xu
2015-02-06Re-arrange inter mode search order in RTC coding flowJingning Han
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
2015-02-06Merge "vp9: fix segfault w/corrupt data post frame-parallel merge"James Zern
2015-02-05Merge "Fix a thread lost bug in frame parallel decode."hkuang
2015-02-05Merge "Mute the harmless tsan error in frame parallel decode."hkuang
2015-02-05vp9: fix segfault w/corrupt data post frame-parallel mergeJames Zern
cm->frame_bufs[].idx values were made consistent in: 61c5e94 Use -1 consistently as invalid buffer idx update the initialization in swap_frame_buffers() to match. additionally: - remove some shadowed variables in the former and marked them volatile Change-Id: Ie3f9636c405bd822112bb56bd22d28024ae98909
2015-02-05Fix high bit depth assembly function bugsYunqing Wang
The high bit depth build failed while building for 32bit target. The bugs were in vp9_highbd_subpel_variance.asm and vp9_highbd_sad4d_sse2.asm functions. This patch fixed the bugs, and made 32bit build work. Change-Id: Idc8e5e1b7965bb70d4afba140c6583c5d9666b75
2015-02-04Remove unnecessary initializationYaowu Xu
loop_filter_level is always reset in loop_filter_frame() later in encoder. Change-Id: I608e03d905a6b23e7d5025ca747e4784c665007e
2015-02-04Move tx_mode decision logic into select_tx_mode()Yaowu Xu
Change-Id: I7f8f78c33eb3f33344b029a27bda320f4d68c577
2015-02-04Replace repeated check with single variableYaowu Xu
Change-Id: I2f6a669bf7c6d9796388ad3f3fa3fc942635c215
2015-02-04Merge "Adjust partitioning threshold based rtc speed"Yaowu Xu
2015-02-04Merge "Move calls to avoid unnecessary operations"Yaowu Xu
2015-02-04Mute the harmless tsan error in frame parallel decode.hkuang
Change-Id: I52565fd90461221f89134997a0782cb1b681df01
2015-02-04Merge "Unify luma and chroma inter predictors in choose_partitioning"Jingning Han
2015-02-04Merge "Save an extra call for setup_pred_plane function"Jingning Han
2015-02-04Merge "Account for chroma component costs in RTC mode decision"Jingning Han
2015-02-04Adjust partitioning threshold based rtc speedYaowu Xu
On rtc set: speed 7 quality improves about 0.5% speed 8 quality improves about 1.0% Encoding time for speed 7 changes from 67804ms to 65889ms Encoding time for speed 8 changes from 58659ms to 56808ms Change-Id: Iabcfb53012fc1b9f3326cdbc167e5758b8c7ad30
2015-02-04Fix a thread lost bug in frame parallel decode.hkuang
After syncing the frame worker thread, avaiable thread count should increase by 1 even the worker thread does not have displayable frame to output. Change-Id: I9eeb87720fed82dfe38555286833ff88e8a8e746
2015-02-04Unify luma and chroma inter predictors in choose_partitioningJingning Han
Change-Id: I8bfc80f4fffb0892e93d3326394a52d1ee3c0f37
2015-02-04Save an extra call for setup_pred_plane functionJingning Han
Reuse the yv12_mb array to fetch the buffer pointers/strides corresponding to the current reference frame. Change-Id: I5276b7494158b2cccef15213be2dc189e9036851
2015-02-04Account for chroma component costs in RTC mode decisionJingning Han
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
2015-02-04vp9_dthread: remove frame_parallel_decoding_mode requirementYunqing Wang
This patch continues the work to remove frame_parallel_decoding_mode requirement in VP9 multi-threaded tile decoder. In order to do that, the frame counts associated to each thread need to be accumulated together after the frame is decoded. Change-Id: Idba1a756cedfed3c154aef52ed82c8da3bbf9e0c
2015-02-03Merge "Remove unnecessary pointer check"Johann
2015-02-03Move calls to avoid unnecessary operationsYaowu Xu
Change-Id: I236f7f75ab9a4511d1b52a6a67299b0e844a103e
2015-02-03Merge "adjust rtc setting and threshold"Yaowu Xu
2015-02-03Merge "Remove duplicate code."hkuang
2015-02-03Merge "make low bitrates a lot less blocky"Jim Bankoski
2015-02-03Remove unnecessary pointer checkJohann
The original implementation had the following comment: // Ignore mv costing if mvsadcost is NULL However the current implementation does not allow for this. If x exists then nmvsadcost must not be null. This removes the only warning from -Wpointer-bool-conversion https://code.google.com/p/webm/issues/detail?id=894 Change-Id: I1a2cee340d7972d41e1bbbe1ec8dfbe917667085
2015-02-03Merge "Assign 2nd ref frame in choose_partitioning"Jingning Han
2015-02-03Assign 2nd ref frame in choose_partitioningJingning Han
Avoid the use of uninitialized second reference frame for fetching reference block. Change-Id: I9983a0daea829700b3270dc8bf2bcc6d6ea36652
2015-02-03Merge "vp9_dthread: pass frame counts to decoder functions"Yunqing Wang
2015-02-03Add mutex initialization in encoderYaowu Xu
This resolves the encoder crashes on windows. Change-Id: I159d79014cf9279751e403936ce1f84482ae82da
2015-02-03vp9_dthread: pass frame counts to decoder functionsYunqing Wang
The current multi-threaded tile decoder requires that the videoes are encoded with frame_parallel_decoding_mode = 1. This requirement is not necessary, and is better to be removed. This patch includes the first part of the work. Change-Id: Ic7695fb3cfe13f9022582c9f0edd2aa6e2e36d28
2015-02-03make low bitrates a lot less blockyJim Bankoski
Remove loop filter skip at speed 7+ because of bad visual artifacts and up the postprocessing. Change-Id: Ibdd0bac71aaee232d2bb2e14462733c51517768d