- 07 Aug, 2015 1 commit
-
-
Alex Converse authored
Change-Id: I20c7b42631b579fade6cf7ebf6d4c69b2fcb5e5e
-
- 27 Jul, 2015 1 commit
-
-
Yunqing Wang authored
Removed unused tx_select_threshes and tx_select_diff. Change-Id: I5e9e7ad170056efe14b5f071e94d0c5a36e4a34c
-
- 21 Jul, 2015 1 commit
-
-
Yaowu Xu authored
Replace vp9_ in names to vpx_ as they are not codec specific. Change-Id: I2e583aa63dee769353ada4b42417aa15c4074ebb
-
- 10 Jul, 2015 1 commit
-
-
Marco authored
Use faster scaling on source. Change-Id: I968df97239a86834c96126b86832d3d6d0875a53
-
- 07 Jul, 2015 1 commit
-
-
Johann authored
Change-Id: I66bf6720c396c89aa2d1fd26d5d52bf5d5e3dff1
-
- 06 Jul, 2015 1 commit
-
-
Debargha Mukherjee authored
Adds two new vp9 parameters --min-gf-interval and --max-gf-interval to enable testing based on frequency of alt-ref frames. Also adds a unit-test to test enforcement of min-gf-interval. For both these parameters the default value is 0, which indicates they are picked by the encoder, based on resolution and framerate considerations. If they are greater than zero, the specified parameter is honored. (Additional note by paulwilkins) Note that there is a slight oddity in that key frames are also GFs and considered part of GF only group. However they are treated as not being part of an arf group because for arf groups the previous GF is assumed to be the terminal or overlay frame for the previous group. (end note) Change-Id: Ibf0c30b72074b3f71918ab278ccccc02a95a70a0
-
- 02 Jul, 2015 3 commits
-
-
Jingning Han authored
Change the dir name to include more util tools. Change-Id: Id5b16062803ce5eed872fe2edb36d7e56b32eed8
-
Jingning Han authored
Replace vp9_ prefix with vpx_ for common multi-threading functions. Change-Id: I941a5ead9bfe8213fdad345511d2061b07797b55
-
Jingning Han authored
This commit moves the primitive multi-threading files from vp9 folder to vpx_thread, which will be accessible by all vpx codec. Change-Id: Ib51e66e9c69801c10631fab56d35a0c0aaed5883
-
- 29 Jun, 2015 1 commit
-
-
Scott LaVarnway authored
to MB_MODE_INFO_EXT. This saves 36 bytes per 8x8 area for both the decoder and encoder. (encoder has two MODE_INFO buffers) Change-Id: If006abb2224acaf326df3c2be09e77e967662107
-
- 19 Jun, 2015 1 commit
-
-
Marco authored
Decision to scale down/up is based on buffer state and average QP over previous time window. Limit the total amount of down-scaling to be at most one scale down for now. Reset certain quantities after resize (buffer level, cyclic refresh, rate correction factor). Feature is enable via the setting rc_resize_allowed = 1. Change-Id: I9b1a53024e1e1e953fb8a1e1f75d21d160280dc7
-
- 11 Jun, 2015 1 commit
-
-
Yunqing Wang authored
If the frame size increases, the tile data buffer needs to be re-allocated according to the number of tiles existing in current frame. This patch makes the multi-tile encoding work in spatial SVC usage case, and partially solved WebM issue 1018. Change-Id: I1ad6f33058cf5ce6f60ed5024455a709ca80c5ad
-
- 02 Jun, 2015 1 commit
-
-
Marco authored
-Make Rate control work for SVC 1 pass CBR mode. -Added temporal layering mode. -Fixed bug in non-rd variance partition. -Modified/updated the sample encoders (vp9_spatial_svc_encoder, vpx_temporal_svc_encoder). -Added datarate unittest(s) for 1 pass CBR SVC. Change-Id: Ie94b1b68a56ea1267b5087c625e5df04def2ee48
-
- 22 Apr, 2015 1 commit
-
-
Jim Bankoski authored
Change-Id: Ieaccc36ed1bee024bb644a9cfaafdaaa65d31772
-
- 21 Apr, 2015 1 commit
-
-
Jim Bankoski authored
Change-Id: Id61699ebf57ae4f8af96a468740c852b2f45f8e1
-
- 17 Apr, 2015 4 commits
-
-
Jim Bankoski authored
Change-Id: Iedceeb020492050063acf3fd2326f96c29db9ae5
-
Jim Bankoski authored
PSNR HVS is a human visual system weighted version of SNR that's gained some popularity from academia and apparently better matches MOS testing. This code is borrowed from the Daala Project but uses our FDCT code. Change-Id: Idd10fbc93129f7f4734946f6009f87d0f44cd2d7
-
Jim Bankoski authored
This code appeared in the Daala project first and was originally committed by Nathan Egge. Change-Id: Iadce416a091929c51b46637ebdec984cddcaf18c
-
Marco Paniconi authored
This reverts commit 004b9d83 Change-Id: I2f2d0bdb9368c2c07f1d29a69cd461267a3a8743
-
- 14 Apr, 2015 1 commit
-
-
Yunqing Wang authored
This reverts commit eb8c6675. The patch caused mismatch while using multi-threads. Change-Id: Icd646340af25b5d91e32f03ed3ea212e00e3e0be
-
- 13 Apr, 2015 1 commit
-
-
Marco authored
Force split on 16x16 block (to 8x8) based on the minmax over the 8x8 sub-blocks. Also increase variance threshold for 32x32, and add exit condiiton in choose_partition (with very safe threshold) based on sad used to select reference frame. Some visual improvement near moving boundaries. Average gain in psnr/ssim: ~0.6%, some clips go up ~1 or 2%. Encoding time increase (due to more 8x8 blocks) from ~1-4%, depending on clip. Change-Id: I4759bb181251ac41517cd45e326ce2997dadb577
-
- 02 Apr, 2015 1 commit
-
-
Yunqing Wang authored
The vbp thresholds are set seperately for boosted/non-boosted superblocks according to their segment_id. This way we don't have to force the boosted blocks to split to 32x32. Speed 6 RTC set borg test result showed some quality gains. Overall PSNR: +0.199%; Avg PSNR: +0.245%; SSIM: +0.802%. No speed change was observed. Change-Id: I37c6643a3e2da59c4b7dc10ebe05abc8abf4026a
-
- 31 Mar, 2015 1 commit
-
-
Yunqing Wang authored
Code refactoring Change-Id: I410fcce1bc6d95c62c474445f4c97ea8469f1e79
-
- 24 Mar, 2015 1 commit
-
-
Alex Converse authored
This is useful when aq mode 3 (cyclic refresh) reactivates segments for refresh. Change-Id: I3ad1d9410b899ede393d82bb8db14e2da4d84eca
-
- 12 Mar, 2015 1 commit
-
-
Alex Converse authored
Change-Id: Id7f8654aeeb20caa402bc822521b1d72c658f4f9
-
- 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
-
- 20 Feb, 2015 1 commit
-
-
Hangyu Kuang authored
does not need it any more. This reduces VP9_COMMON size from 25776 bytes to 17584 bytes(~31%). Change-Id: Ic5daea732ccefb6d512b048af7983f0efe08589b
-
- 10 Feb, 2015 2 commits
-
-
Yaowu Xu authored
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
-
Adrian Grange authored
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
-
- 06 Feb, 2015 1 commit
-
-
Yunqing Wang authored
Renames the files to allow more common thread code to be moved to vp9/common. Change-Id: I7386e64e221086e3cdc087e79812f993c423413b
-
- 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
-
- 17 Jan, 2015 1 commit
-
-
Yunqing Wang authored
1. Added row-based loopfilter in encoder; 2. Moved common multi-threaded loopfilter functions from decoder to common; 3. Merged multi-threaded loopfilter code, and made encoder/ decoder call same function to reduce code duplication. Encoder tests showed that 1% - 2% speedup was seen for good-quality 2-pass mode(at speed 3); 1% - 3% speedup using 2 threads and 4% - 6% speedup using 4 threads were seen for real-time mode(at speed 7). Change-Id: I8a4ac51c2ad9bab9fa7b864e90743931c53ec1c4
-
- 14 Jan, 2015 1 commit
-
-
Yaowu Xu authored
This commit adds encoder side control for vp9 to set color space info in the output compressed bitstream. It also amends the "vp9_encoder_params_get_to_decoder" test to verify the correct color space information is passed from the encoder end to decoder end. Change-Id: Ibf5fba2edcb2a8dc37557f6fae5c7816efa52650
-
- 09 Jan, 2015 1 commit
-
-
Yaowu Xu authored
Change-Id: If64052cc6e404abc8a64a889f42930d14fad21d3
-
- 07 Jan, 2015 1 commit
-
-
Paul Wilkins authored
When testing frame sse to choose a loop filter value and when checking ambient error in kf Q selection, use 64 bit values for accumulating the sse, to avoid risk of overflow for large image formats. Change-Id: I03765d16c843d0ade61a45b0cd46312472697e57
-
- 19 Dec, 2014 1 commit
-
-
Jim Bankoski authored
Change-Id: Id2ad4fb24242f7ca8fa7a152f0889fded4113613
-
- 18 Dec, 2014 1 commit
-
-
Paul Wilkins authored
Initial patch to remove get_zbin_mode_boost() and cpi->zbin_mode_boost. For now sets a dummy value of 0 for zbin extra pending a further clean up patch. Change-Id: I64a1e1eca2d39baa8ffb0871b515a0be05c9a6af
-
- 12 Dec, 2014 1 commit
-
-
James Zern authored
allow_comp_inter_inter VP9_COMMON -> VP9_COMP Change-Id: I6d9dc25d1cdd7e2ab62f5be69cd9fa883d21dbb6
-
- 09 Dec, 2014 1 commit
-
-
Paul Wilkins authored
The restructure moves the decision into the rd pick modes loop and makes a decision based at the 16x16 block level instead of only the 64x64 level. This gives finer granularity and better visual results on the clips I have tested. Metrics results are worse than the old AQ2 especially for PSNR and this mode now falls between AQ0 and AQ1 in terms of visual impact and metrics results. Further tuning of this to follow. It should be noted that if there are multiple iterations of the recode loop the segment for a MB could change in each loop if the previous loop causes a change in the complexity / variance bin of the block. Also where a block gets a delta Q this will alter the rd multiplier for this block in subsequent recode iterations and frames where the segmentation is applied. Change-Id: I20256c125daa14734c16f7cc9aefab656ab808f7
-