summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2014-11-05Fix visual studio 2013 compiler warningsYaowu Xu
For configured with --enable-vp9-highbitdepth Change-Id: I2b181519d7192f8d7a241ad5760c3578255f24e6
2014-11-05Merge "Simplify interface of write_selected_tx_size and read_tx_size"Hui Su
2014-11-05Merge "Skip ref frame mode search conditioned on predicted mv residuals"Jingning Han
2014-11-04Simplify interface of write_selected_tx_size and read_tx_sizeHui Su
Change-Id: Ia2b2a895deefaaf7b34bf26df86add56dbab082c
2014-11-04Merge "[spatial svc] Make spatial svc working for one pass rate control"Minghai Shang
2014-11-04Fix the memory leak due to missing free frame_mvs.hkuang
Change-Id: I2ceee7341d906259002c0ea31ea009ae32c04bfd
2014-11-04[spatial svc] Make spatial svc working for one pass rate controlMinghai Shang
Change-Id: Ibd9114485c3d747f9d148f64f706bf873ea473ac
2014-11-04Merge "Refactor sub-pixel motion search unit"Jingning Han
2014-11-04Skip ref frame mode search conditioned on predicted mv residualsJingning Han
This commit makes the RTC coding mode to conditionally skip the reference frame mode search, when the predicted motion vector of the current reference frame gives more than two times sum of absolute difference compared to that of other reference frames. It reduces the runtim by 1% - 4% for speed -5 and -6. The average compression performance is improved by about 0.1% in both settings. It is of particular benefit to light change scenarios. The compression performance of test clip mmmovingvga.y4m is improved by 6.39% and 15.69% at high bit rates for speed -5 and -6, respectively. Speed -5 vidyo1 16555 b/f, 40.818 dB, 12422 ms -> 16552 b/f, 40.804 dB, 12100 ms nik 33211 b/f, 39.138 dB, 11341 ms -> 33228 b/f, 39.139 dB, 11023 ms mmmoving 33263 b/f, 40.935 dB, 13508 ms -> 33256 b/f, 41.068 dB, 12861 ms Speed -6 vidyo1 16541 b/f, 40.227 dB, 8437 ms -> 16540 b/f, 40.220 dB, 8216 ms nik 33272 b/f, 38.399 dB, 7610 ms -> 33267 b/f, 38.414 dB, 7490 ms mmmoving 33255 b/f, 40.555 dB, 7523 ms -> 33257 b/f, 40.975 dB, 7493 ms Change-Id: Id2aef76ef74a3cba5e9a82a83b792144948c6a91
2014-11-03Merge "WORKAROUND FIX FOR GCC4.9.1"Yunqing Wang
2014-11-03Merge "Allow disable of refresh golden for more than 1 layer encoding."Marco
2014-11-03Refactor sub-pixel motion search unitJingning Han
This commit unfolds the legacy macro definitions used in the sub-pixel motion search and refactors the operational flow for later optimizations. Change-Id: I3e3f770cad961d03d1a6eb0b2a0186cc77eaf2b8
2014-11-03Merge "Fix the THR_MODES array used in vp9_pick_inter_mode"Jingning Han
2014-11-03Merge "Fix speed 7 and speed 12 for rt"Yaowu Xu
2014-11-02Allow disable of refresh golden for more than 1 layer encoding.Marco
The current logic was allowing for disabling golden refresh only for two pass svc encoding. This change disables it as long as more than 1 layer encoding is used (for example temporal layers under 1pass CBR). Change-Id: I4dc5204a7ad365c821ec7963e93b59da82e1826b
2014-11-02Fix the THR_MODES array used in vp9_pick_inter_modeJingning Han
Fix the alignment of entries fo intra prediction modes. Change-Id: Ie32ad87cf90694efd591a4b1cc29c916c4cd56f7
2014-11-01WORKAROUND FIX FOR GCC4.9.1levytamar82
In the function mb_lpf_horizontal_edge_w_avx2_16 the usage of the intrinsic _mm256_cvtepu8_epi16 cause a compiler bug in gcc 4.9.1. until it will be fixed I created a workaround that create the up convert by using broadcast128+shuffle. The bug was reported here: https://code.google.com/p/webm/issues/detail?id=867 Change-Id: I73452e6806f42e0fadcde96b804ea3afa7eeb351
2014-10-31Fix speed 7 and speed 12 for rtYaowu Xu
A recent change has introduced big quality drops for speed 7 and 12 for --rt mode. The change reverted the big drop and improved quality by 9.5% for speed 7 and 13.4% for speed 12. Change-Id: I07b82e3bb6002a73af486a083458c88877bdad01
2014-10-31Bind motion vectors with frame buffer structure.hkuang
This will save a lot of memory for decoder due to removing of prev_mi, but prev_mi is still needed in encoder. So this will increase a little bit memory for encoder. Change-Id: I24b2f1a423ebffa55a9bd2fcee1077dac995b2ed
2014-10-31Merge "Fix mode index use case in vp9_pick_inter_mode"Jingning Han
2014-10-31Merge "Refactor vp9_update_rd_thresh_fact"Jingning Han
2014-10-31Merge "Rework pred pixel buffer system in non-RD coding mode"Jingning Han
2014-10-30Fix mode index use case in vp9_pick_inter_modeJingning Han
This improves coding performance of speed -5 and -6 by 0.6%, respectively. Change-Id: Ic5a7746a88c73285f0b14333d35dc16b02152c25
2014-10-30Refactor vp9_update_rd_thresh_factJingning Han
Reduce the scope of function parameters. Change-Id: Ifef2cfb559908a97498ffdbd6ea53da1cd45a73c
2014-10-30Rework pred pixel buffer system in non-RD coding modeJingning Han
This commit makes the inter prediction buffer system to support hybrid partition search. It reduces the runtime of speed -5 by about 3%. No compression performance change. vidyo1 720p 1000 kbps 11831 ms -> 11497 ms nik 720p 1000 kbps 10919 ms -> 10645 ms Change-Id: I5b2da747c6395c253cd074d3907f5402e1840c36
2014-10-30Merge "Move the definition of switchable filter numbers into enum ↵Hui Su
INTERP_FILTER; Modify the macro ADD_MV_REF_LIST and IF_DIFF_REF_FRAME_ADD_MV."
2014-10-30Merge "Combine vp9_encode_block_intra and encode_block_intra"Hui Su
2014-10-29Remove unused speed featureYunqing Wang
Partition_check was unused and removed. Change-Id: I15ec9162d86dc61f04c09229c498629878ed7155
2014-10-29Merge "Enable mode search threshold update in non-RD coding mode"Jingning Han
2014-10-29Enable mode search threshold update in non-RD coding modeJingning Han
Adaptively adjust the mode thresholds after each mode search round to skip checking less likely selected modes. Local tests indicate 5% - 10% speed-up in speed -5 and -6. Average coding performance loss is -1.055%. speed -5 vidyo1 720p 1000 kbps 16533 b/f, 40.851 dB, 12607 ms -> 16556 b/f, 40.796 dB, 11831 ms nik 720p 1000 kbps 33229 b/f, 39.127 dB, 11468 ms -> 33235 b/f, 39.131 dB, 10919 ms speed -6 vidyo1 720p 1000 kbps 16549 b/f, 40.268 dB, 10138 ms -> 16538 b/f, 40.212 dB, 8456 ms nik 720p 1000 kbps 33271 b/f, 38.433 dB, 7886 ms -> 33279 b/f, 38.416 dB, 7843 ms Change-Id: I2c2963f1ce4ed9c1cf233b5b2c880b682e1c1e8b
2014-10-29Simplify vp9_set_rd_speed_thresholds_sub8x8Adrian Grange
Change-Id: I4bf0f9a38697f5aea564a47afd7f02bb8b2888b6
2014-10-28Combine vp9_encode_block_intra and encode_block_intraHui Su
Change-Id: I79091fb677b64892ecca2fb466fde14602d8cdfc
2014-10-28Merge "Use zero motion vector in choose_partitioning"Jingning Han
2014-10-28Merge "vp9_denoiser_sse2: refactor the code."JackyChen
2014-10-28Merge "Allow update of golden refernce buffer in CBR mode"Yaowu Xu
2014-10-28vp9_denoiser_sse2: refactor the code.JackyChen
Combined vp9_denoiser_8xM_sse2 and vp9_denoiser_4xM_sse2 into one function vp9_denoiser_NxM_sse2_small and passed the bitexact testing. Changed the name of the function vp9_denoiser_64_32_16xM_sse2 to vp9_denoiser_NxM_sse2_big. Change-Id: Ib22478df585994dd347ebae04202c0b701e7f451
2014-10-28Merge "Add a new control of golden frame boost in CBR mode"Yaowu Xu
2014-10-28Allow update of golden refernce buffer in CBR modeYaowu Xu
This commit changes to allow the usage of golden reference frame in VP9 CBR mode to improve quality. VP9 supports potentially up to 8 reference buffers, it has reference buffers available for this purpose. This was not possible in VP8 as golden and alt-ref buffers were used for temporal scalability purpose in CBR mode in WebRTC. For frames that update golden frame, there can be a quality boost. The amount of allowed bitrate boost can be controlled via parameter rc_max_inter_bitrate_pct. The inital value of the boost ratior is currently based on over_shoot_pct. Further experiments will work out the adaption of this boost value. Change-Id: I0c5f010c8fd8b7b598f69779c1b30e5b2ac30a4d
2014-10-28Relax maximum Q for extreme overshoot.Paul Wilkins
Added code to relax the active maximum Q in response to extreme local overshoot to reduce bandwidth peaks. The impact is small in metrics terms, but it this helps reduce bandwidth spikes and overall overshoot in a number of clips in our tests sets (especially the YT test set). In particular this should help prevent very big spikes where a clip is mainly easy but has a short hard section. In such a case a choice of maximum Q for the clip as a whole may allow us to hit the overall target rate but give some extreme spikes. The chunked encoding in YT mitigates this problem but it can show up where a longer clip is coded as a single chunk. Change-Id: I213d09950ccb8489d10adf00fda1e53235b39203
2014-10-27Use zero motion vector in choose_partitioningJingning Han
The zero motion vector was effectively used in the subsampled pixel based variance calculation. This commit makes it directly use zero mv to generate prediction. Change-Id: Ica83dc843e9f8da2f89c3ef451e50f16214c0def
2014-10-27Refactor encoder tile data structureJingning Han
Make the common tile info as one element in the encoder tile data struct. Change-Id: I8c474b4ba67ee3e2c86ab164f353ff71ea9992be
2014-10-27Add a new control of golden frame boost in CBR modeYaowu Xu
0 means that golden boost is off, and uses average frame target rate, a non-zero number means the percentage of boost over average frame bitrate is given initially to golden frames in CBR mode. Change-Id: If4334fe2cc424b65ae0cce27f71b5561bf1e577d
2014-10-27Refactor rtc coding mode to support tile encodingJingning Han
Use per tile threshold in the prediction mode search process. Change-Id: I6c74ee5a3b069bb4281002dfe51310911a0756c0
2014-10-27Merge "Add a new control of max bitrate for inter frame"Yaowu Xu
2014-10-24Merge "Tile based adaptive mode search in RD loop"Jingning Han
2014-10-24Merge changes I8a9c9019,Ic7b2faa3,I44d42a50,I3f3a3924,I10747b32,I31b49c9eJames Zern
* changes: add vp9_loop_filter_data_reset move LFWorkerData allocation to VP9LfSync vp9_loop_filter_frame_mt: remove pbi dependency vp9_loop_filter_frame_mt: pass planes directly vp9_loop_filter_frame_mt: pass VP9LfSync directly vp9: store TileWorkerData allocations separately
2014-10-24Add a new control of max bitrate for inter frameYaowu Xu
Change-Id: I205de3611622cff7f751ea8baf9f82784581730a
2014-10-24Tile based adaptive mode search in RD loopJingning Han
Make the spatially adaptive mode search in rate-distortion optimization loop inter tile independent. Experiments suggest that this does not significantly change the coding staticstics. Single tile, speed 3: pedestrian_area 1080p 1500 kbps 59192 b/f, 40.611 dB, 101689 ms blue_sky 1080p 1500 kbps 58505 b/f, 36.347 dB, 62458 ms mobile_cal 720p 1000 kbps 13335 b/f, 35.646 dB, 45655 ms as compared to 4 column tiles, speed 3: pedestrian_area 1080p 1500 kbps 59329 b/f, 40.597 dB, 101917 ms blue_sky 1080p 1500 kbps 58712 b/f, 36.320 dB, 62693 ms mobile_cal 720p 1000 kbps 13191 b/f, 35.485 dB, 45319 ms Change-Id: I35c6e1e0a859fece8f4145dec28623cbc6a12325
2014-10-24Merge "Enable dual arf with constant q."Paul Wilkins
2014-10-24Merge "Move frame re-sizing into the recode loop"Paul Wilkins