- 17 Sep, 2013 1 commit
-
-
Jingning Han authored
This commit cleans up the second reference check in the rate-distortion optimization loop of sub8x8 blocks. Change-Id: Ife68feaa4cddbfad2878c9b44d3012788d634f97
-
- 16 Sep, 2013 1 commit
-
-
Yaowu Xu authored
The commit added reset of pred_mv at the beginning of each SB64x64 partition mv search, also limited the usage of pred_mv only when search on the largest partition is already done. This is to fix a crash at speed 1/2 encoder where an invalid mv is used in mv search. Change-Id: I39010177da76d054e3c90b7899a44feb2e3a5b1b
-
- 13 Sep, 2013 2 commits
-
-
Jingning Han authored
This commit enables adaptive constraint on motion search range for smaller partitions, given the motion vectors of collocated larger partition as a candidate initial search point. It makes speed 0 runtime of bus at CIF and 2000 kbps goes from 167s down to 162s (3% speed-up), at 0.01dB performance gains. In the settings of speed 1, this makes the runtime goes from 33687 ms to 32142 ms (4.5% speed-up), at 0.03dB performance gains. Compression performance wise, it gains at speed 1: derf 0.118% yt 0.237% hd 0.203% stdhd 0.438% Change-Id: Ic8b34c67810d9504a9579bef2825d3fa54b69454
-
Paul Wilkins authored
Mis-merge of the following change managed to break mode order and delete two mode options (new alt ref and near alt ref) It also created a situation where we could test two undefined modes off the end of the VP9_mode_order[] data structure. "clang warnings : remove split and i4x4_pred fake modes" "Change Id: I8ef3c*" Initial testing on Akiyo at speed 2. 101.35 44.567 44.447 improves to 96.82 44.915 44.815 Approx 0.3-0.4db gain and 2.5% size reduction Change-Id: Icff813e7c0778d140ad4f0eea18cf1ed203c4e34
-
- 12 Sep, 2013 1 commit
-
-
Jim Bankoski authored
either missed this or it crept back in Change-Id: I6cc1519d09e558be7250254c25bde2ae720555ea
-
- 11 Sep, 2013 2 commits
-
-
Jim Bankoski authored
Change-Id: I8ef3c7c0f08f0f1f4ccb8ea4deca4cd8143526ee
-
Scott LaVarnway authored
mode_info_context was stored as a grid of MODE_INFO structs. The grid now constists of pointers to MODE_INFO structs. The MODE_INFO structs are now stored as a stream (decoder only), eliminating unnecessary copies and is a little more cache friendly. Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
-
- 10 Sep, 2013 2 commits
-
-
Yunqing Wang authored
Thank Paul for the suggestions. While turning on static-thresh for static-image videos, a big jump on bitrate was seen. In this patch, we detected static frames in the video using first-pass stats. For different cases, disable encode breakout or reduce encode breakout threshold to limit the skipping. More modification need be done to break incorrect partition picking pattern for static frames while skipping happens. Change-Id: Ia25f47041af0f04e229c70a0185e12b0ffa6047f
-
Paul Wilkins authored
A previous speed feature skipped modes not used in earlier partitions but this not longer worked as intended following changes to the partition coding order and in conjunction with some other speed features (Especially speed 2 and above). This modified mode skip feature sets a mask after the first X modes have been tested in each partition depending on the reference frame of the current best case. This patch also makes some changes to the order modes are tested to fit better with this skip functionality. Initial testing suggests speed and rd hit count improvements of up to 20% at speed 1. Quality results. (derf -1.9%, std hd +0.23%). Change-Id: Idd8efa656cbc0c28f06d09690984c1f18b1115e1
-
- 09 Sep, 2013 2 commits
-
-
Ivan Maltz authored
Sample app: vp9_spatial_scalable_encoder vpx_codec_control extensions: VP9E_SET_SVC VP9E_SET_WIDTH, VP9E_SET_HEIGHT, VP9E_SET_LAYER VP9E_SET_MIN_Q, VP9E_SET_MAX_Q expanded buffer size for vp9_convolve modified setting of initial width in vp9_onyx_if.c so that layer size can be set prior to initial encode Default number of layers set to 3 (VPX_SS_DEFAULT_LAYERS) Number of layers set explicitly in vpx_codec_enc_cfg.ss_number_layers Change-Id: I2c7a6fe6d665113671337032f7ad032430ac4197
-
James Zern authored
This reverts commit dae17734 Encode crashes, leaks and increases integer overflow errors. Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2
-
- 06 Sep, 2013 1 commit
-
-
Scott LaVarnway authored
mode_info_context was stored as a grid of MODE_INFO structs. The grid now constists of a pointer to a MODE_INFO struct and a "in the image" flag. The MODE_INFO structs are now stored as a stream, eliminating unnecessary copies and is a little more cache friendly. For the test clips used, the decoder performance improved by ~4.3% (1080p) and ~9.7% (720p). Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p) and 5.9% (720p). Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
-
- 30 Aug, 2013 1 commit
-
-
Yunqing Wang authored
While static-thresh is on, we only need to transmit skip flag if skip = 1. The cost of skip bit is added to the total rate cost. Change-Id: I64e73e482bc297eba22907026298a15fa8cc3920
-
- 29 Aug, 2013 2 commits
-
-
Paul Wilkins authored
Added some code to output normalized rd hit count stats. In effect this approximates to the average number of rd operations/tests per pixel for the sequence. The results are not quite accurate and I have not bothered to account for partial SB64s at frame edges and for key frames However they do give some idea of the number of modes / prediction methods being tested for each pixel across the different partition sizes. This indicates how much scope their is for further gains either by reducing the number of partitions examined or the modes per partition through heuristics. Patch 3 moved place where count incremented so partial rd tests that are aborted with INT_MAX return are also counted. Example numbers for first 50 frames of Akiyo. Speed 0 ~84.4 rd operations / pixel Speed 1 ~28.8 Speed 2 ~11.9 Change-Id: Ib956e787e12f7fa8b12d3a1a2f6cda19a65a6cb8
-
Yaowu Xu authored
The two arrays are typically initialized to INT64_MAX, if they are not filled with valid values before the addition, the values can overflow and lead to wrong results. Change-Id: I515de22cf3e8f55af4b74bdb2c8eb821a02d3059
-
- 28 Aug, 2013 2 commits
-
-
Dmitry Kovalev authored
Switching from mi_{width, height}_log2 and b_{width, height}_log2 to num_8x8_blocks_{wide, high} and num_4x4_blocks_{wide, high}. Removing redundant code, adding const. Change-Id: Iaab2207590fd24d0b76999071778d1395dc5cd5d
-
Dmitry Kovalev authored
Change-Id: I752e374867d459960995b24d197301d65ad535e3
-
- 27 Aug, 2013 2 commits
-
-
Dmitry Kovalev authored
Change-Id: I62bb07c377f947cb72fac68add7a6b199e42c6b9
-
Jingning Han authored
This commit resolved a mis-alignment issue in compound inter-inter prediction of sub8x8. This patch follows solution from dkovalev@. Change-Id: I3cc0cf7e55b84110e0c42ef4b2e6ca7ac3f8f932
-
- 26 Aug, 2013 1 commit
-
-
Dmitry Kovalev authored
Removing references to plane_block_width and plane_block_height (we are going to delete the latter ones). Change-Id: I7982da4d373aebb54d2209dc8886f6192df4d287
-
- 24 Aug, 2013 2 commits
-
-
James Zern authored
Change-Id: I481d9bb2fa3ec72b6a83d5f04d545ad8013f295c
-
Dmitry Kovalev authored
I've already renamed d27_predictor to d207_predictor but forgot about the corresponding constant. Change-Id: Id312aa80fc5b5a1ab8a709a33418a029552a6857
-
- 23 Aug, 2013 3 commits
-
-
Dmitry Kovalev authored
Making code more compact, adding consts, removing redundant arguments, adding do/while(0) for macros. Change-Id: Ic9ec0bc58cee0910a5450b7fb8cfbf35fa9d0d16
-
Paul Wilkins authored
Values now carried over frame to frame. Change to algorithm for decreasing threshold after a hit and to max threshold (now based on speed) Removed some old commented out code relating to VP8 adaptive thresholds. The impact of these changes tested on Akiyo (50 frames) and measured in terms of unit rd hits is as follows: Speed 0 84.36 -> 84.67 Speed 1 29.48 -> 22.22 Speed 2 11.76 -> 8.21 Speed 3 12.32 -> 7.21 Encode speed impact is broadly in line with these. Change-Id: I5b886efee3077a11553fa950d796fd6d00c8cb19
-
Paul Wilkins authored
Most of the focus so far has been on inter frames. At high speed settings the key frame is now taking a high % of the cycles. This patch puts in some masking to reduce the number of INTRA modes searched during key frame coding (as already happens for inter frames) at higher speed settings TODO: Develop this further with either adaptive rd thresholds when choosing which intra modes to consider or some other heuristic. Impact. At high speed settings on some clips the key frame was starting to dominate. In a coding of the first 50 frames of AKIYO at speed 2 limiting the key frame intra modes to DC or TM_PRED resulted in ~30% overall speedup. For Bus the number was lower at ~4-5%. Change-Id: I7bde68aee04995f9d9beb13a1902143112e341e2
-
- 22 Aug, 2013 1 commit
-
-
Dmitry Kovalev authored
Change-Id: Ieb7077ca3586b9491912027eed450a4f6fd38d30
-
- 21 Aug, 2013 2 commits
-
-
Dmitry Kovalev authored
We can determine plane_type for another function arguments. Change-Id: I85331877aedb357632ae916a37b5b15f22c0bb1f
-
Adrian Grange authored
Change-Id: I32e43474e8651ef2eb181d24860a8f118cfea7bf
-
- 20 Aug, 2013 2 commits
-
-
Jingning Han authored
Check the minimum rate-distortion cost of regular quantization and all zero coeffs cases in the sub8x8 inter prediction rd loop for luma components. Use this as the cumulative rdcost sent to UV rd estimation. Change-Id: Ia4bc7700437d5e13d7cdad4cf9ae57ab036d3e97
-
Deb Mukherjee authored
Cleans up the switchable filter search logic. Also adds a speed feature - a variance threshold - to disable filter search if source variance is lower than this value. Results: derfraw300 threshold = 16, psnr -0.238%, 4-5% speedup (tested on football) threshold = 32, psnr -0.381%, 8-9% speedup (tested on football) threshold = 64, psnr -0.611%, 12-13% speedup (tested on football) threshold = 96, psnr -0.804%, 16-17% speedup (tested on football) Based on these results, the threshold is chosen as 16 for speed 1, 32 for speed 2, 64 for speed 3 and 96 for speed 4. Change-Id: Ib630d39192773b1983d3d349b97973768e170c04
-
- 19 Aug, 2013 4 commits
-
-
Jingning Han authored
This commit enables early termination in the rate-distortion optimization search loop for chroma components. When the cumulative rd cost is above the current best value, skip the rest per-block transform/quantization/coeff_cost and continue to the next prediction mode. For bus_cif at 2000 kbps, the average run-time goes down from 168546ms -> 164678ms, (2% speed-up) at speed 0 36197ms -> 34465ms, (4% speed-up) at speed 1 Change-Id: I9d3043864126e62bd0166250d66b3170d520b3c0
-
Dmitry Kovalev authored
Updating all foreach_transformed_block_visitor functions to work with plane block size instead of general block. Removing a lot of duplicated code. Change-Id: I6a9069e27528c611f5a648e1da0c5a5fd17f1bb4
-
Dmitry Kovalev authored
This change set is intermediate. The next one will remove all repetitive plane_bsize calculations, because it will be passed as argument to foreach_transformed_block_visitor. Change-Id: Ifc12e0b330e017c6851a28746b3a5460b9bf7f0b
-
Jingning Han authored
Initialize the best mode and tx_size values in the rate-distortion optimization search loop. Change-Id: Ibfb5c0895691f172abcd4265c23aef4cb99fa8af
-
- 17 Aug, 2013 1 commit
-
-
Jingning Han authored
Return the distortion value in vp9_rd_pick_intra_mode_sb as sum of dist_y and dist_uv. Remove the right shift operation on dist_uv, and make it consistent with that of vp9_rd_pick_inter_mode_sb. Change-Id: I9d564e242d9add38e32595d33b0e0dddb1d55e5b
-
- 16 Aug, 2013 3 commits
-
-
Dmitry Kovalev authored
Redundant dst, pre[2] from build_inter_predictors_args, unused cm from encode_b_args. Change-Id: I2c476cd328c5c0cca4c78ba451ca6ba2a2c37e2d
-
Adrian Grange authored
Change-Id: I3814984a624bc64147c57efa74fbdda8eda47262
-
Dmitry Kovalev authored
Updating foreach_transformed_block_visitor and corresponding functions to accept tx_size instead of ss_txfrm_size. List of functions per file: vp9_decodframe.c decode_block decode_block_intra vp9_detokenize.c decode_block vp9_encodemb.c optimize_block vp9_xform_quant vp9_encode_block_intra vp9_rdopt.c dist_block rate_block block_yrd_txfm vp9_tokenize.c set_entropy_context_b tokenize_b is_skippable Change-Id: I351bf563eb36cf34db71c3f06b9bbc9a61b55b73
-
- 15 Aug, 2013 2 commits
-
-
Jingning Han authored
This commit makes the rate-distortion optimization search of chroma components consistent across all block sizes. It removes redundant codes. Change-Id: I7e76f54d045e8efdd41d84a164c71f55b484471b
-
Dmitry Kovalev authored
Updated function signatures: txfrm_block_to_raster_block txfrm_block_to_raster_xy extend_for_intra vp9_optimize_b Change-Id: I7213f4c4b1b9ec802f90621d5ba61d5e4dac5e0a
-