- 06 Nov, 2013 1 commit
-
-
Dmitry Kovalev authored
Change-Id: I246364bc4270ca13aefb4bc3445bcf102b3170dc
-
- 05 Nov, 2013 1 commit
-
-
Jingning Han authored
The compound inter prediction could potentially run with initial motion vectors of invalid value and check the mv_cost, which triggers overheap read. This commit resolves this issue by forcing a motion vector value check for compound inter modes of both superblock and sub8x8 block sizes. Change-Id: I4f4fc19ce83c8272782bc382f12c82a3f03212fc
-
- 04 Nov, 2013 1 commit
-
-
Dmitry Kovalev authored
We only update partition_probs for inter frames but they are constant for key frames. It is not necessary to have constants inside frame context and copy them every time. This change reduces FRAME_CONTEXT size by at least 48 bytes. Change-Id: If70a53be51043f37fe7d113853217937710932a7
-
- 03 Nov, 2013 2 commits
-
-
Jingning Han authored
This commit fixes the use case of plane_block_idx, which determines the plane (Y/U/V) index based on block index. When block idx >= 4 in sub8x8 block loop, it should be of chroma components. Change-Id: I072705aa7b35445524ac607089ca8ce54b7ba478
-
Jingning Han authored
Update best_inter_rd and best_inter_ref_frame only in single ref frame case. Change-Id: Id56825b231a62d6852bd83811410c05a7569f715
-
- 30 Oct, 2013 3 commits
-
-
Dmitry Kovalev authored
Change-Id: I9781a62bc1a4cd9176554d1271d87dbcafda9cb0
-
Jingning Han authored
This commit makes zcoeff_blk cache the case where the entire block is quantized to be zero (without applying zero-forcing) in the rate- distortion optimization loop, and skip the forward DCT, quantization, inverse DCT, and reconstruction process in the encode_block stage. It now works for all the block sizes, including sub8x8 blocks. Change-Id: I5ae60a9c436ba3637d11666733554bec4580ef98
-
Yunqing Wang authored
"<< SUBPEL_BITS" needs to be added in the calculation. Call set_scaled_offsets() to calculate x_offset_q4 and y_offset_q4. Change-Id: Ied130ea771510e918f51cd1dc3abe57f4c0962b5
-
- 29 Oct, 2013 2 commits
-
-
Dmitry Kovalev authored
Wrong value was used in get_tx_type_4x4() function, so making initialization before that call. Change-Id: Ief30bb1e0c03b2f23d993bbf9ae18d7150ba9a83
-
Dmitry Kovalev authored
It is enough to check just block type: intra or inter. Intra block implies intra prediction mode, and inter block implies inter mode. Change-Id: I3cf98731a3935f670a3cd8e2b2443483eb944be4
-
- 28 Oct, 2013 2 commits
-
-
Dmitry Kovalev authored
Passing scan & iscan as parameters, adding useful local variables. Change-Id: Ia2a87906941db9557350d273669ce5c3cdb7235d
-
James Zern authored
replaces use of cur_tile_mi_(row|col)_(start|end) by VP9_COMMON, making it less stateful and more reusable for parallel tile decoding Change-Id: I1df09382b4567a0e5f4434825d47c79afe2399be
-
- 24 Oct, 2013 1 commit
-
-
Dmitry Kovalev authored
Change-Id: I1868fb75ed88bfa65c1c2ca24677d65f2894d713
-
- 23 Oct, 2013 1 commit
-
-
Jingning Han authored
Use a flag variable to determine if coded in inter mode, thus avoiding multiple inter mode checks in super_block_yrd. Change-Id: I0ef998b2811c38e185a2e0583f0f636cee45d2cf
-
- 22 Oct, 2013 3 commits
-
-
Yunqing Wang authored
The ref's scale_factors are set at frame level, and then copied for each partition block. Since the struct members are mostly constant, this patch separated the constant and non-constant members, and reduced struct copying. This gave 0.5% ~ 1.4% decoder speed gain. Change-Id: I94043bf5a6995c8042da52e5c661818dfa6f6d4c
-
Dmitry Kovalev authored
The pointer was asigned only once with vp9_regular_quantize_b_4x4, calling this function directly now. Also removing unused declarations: prototype_quantize_block prototype_quantize_block_pair prototype_quantize_mb vp9_regular_quantize_b_4x4_pair vp9_regular_quantize_b_8x8 Change-Id: I14325bc2f082336820671eafbc06126651b79f73
-
Jingning Han authored
This commit uses left_available flag to decide if the left mode_info struct is available for left_block_mode. As discussed with James Zern (jzern@), this prevents the codec from fetching mode_info from blocks in the left tile, which although effectively not used might present concerns for multi-threaded tile decoding. This is NOT a bit-stream change. Change-Id: I1dc8cf1bcbf056688eee27c7bc5706ac4b4e0125
-
- 21 Oct, 2013 3 commits
-
-
Dmitry Kovalev authored
Just making fdct consistent with iht/idct/fht functions which all use stride (# of elements) as input argument. Change-Id: I0ba3c52513a5fdd194f1e7e2901092671398985b
-
Dmitry Kovalev authored
Change-Id: Iab334b5fd51dfa7e7f29963f8bdc62fd7355e56d
-
Dmitry Kovalev authored
This value is a global frame-level flag, not a macroblock-level. Change-Id: Ie8c5790a931150741c2167c00c3e3dd2cf26744d
-
- 19 Oct, 2013 1 commit
-
-
Dmitry Kovalev authored
Renames for consistency with other constants: NUM_FRAME_TYPES -> FRAME_TYPES NUM_PARTITION_CONTEXTS -> PARTITION_CONTEXTS Change-Id: I3db30acb2868eb0a424237c831087b2e264ec47f
-
- 18 Oct, 2013 1 commit
-
-
Jingning Han authored
This commit makes the buffer allocation of zcoeff_blk array in pick_mode_context block size aware. It calculates the number of 4x4 blocks in the partition and assigns the memory space accordingly. This process (and the uninitialization) is done once for each encoding pass. It allows memory copy of smaller buffer when possible. For football at 600kbps, the runtimes improve by about 1%: speed 1, 45961ms -> 45472ms speed 2, 23863ms -> 23598ms Change-Id: Id2ca24906fa89f46fa5fe742ec4b8efc2a61f877
-
- 17 Oct, 2013 2 commits
-
-
Yaowu Xu authored
In deciding the transform size for a given block in a given TX_MODE. Change-Id: I1467da09853e69cd320695a24c04e19a2f3d04fb
-
Dmitry Kovalev authored
Making this change in order to move allow_high_precision_mv field from MACROBLOCKD structure to VP9_COMMON (because it is a frame level flag). Change-Id: I1d006ba36d938e0caf4d40fa051e2e38df9c1108
-
- 16 Oct, 2013 3 commits
-
-
Guillaume Martres authored
The only case where they were intentionally pointing to different structures was in mbgraph, and this didn't have the expected behavior because both of these pointers are used interchangeably through the code Change-Id: I979251782f90885fe962305bcc845bc05907f80c
-
Dmitry Kovalev authored
Moving code that gets band_translate array from get_scan_and_band() function to get_band_translate() function. Renaming get_scan_and_band() to get_scan(). Change-Id: I43047c205a1ca2a6e24be44db39dc04b7a385008
-
Guillaume Martres authored
This should be similar to what x264 does with --aq-mode 1. It works well with clips like parkjoy and touhou (http://x264.nl/developers/Dark_Shikari/LosslessTouhou.mkv). At low bitrates, the segmentation signaling overhead may negate the benefits of this feature. (PGW) Default changed to feature OFF to allow provisional merge. Change-Id: I938abf9bb487e1d4ad3b0264ea03d9826275c70b
-
- 15 Oct, 2013 2 commits
-
-
Alexander Voronov authored
Updated the encoder to handle frames that are coded intra-only. Intra-only frames must be non-showable, that is, the "show frame" flag must be set to 0 in the frame header. Tested by forcing the ARF frames to be coded intra- only. Note: The rate control code will need to be modified to account for intra-only frames better than they are currently handled. Change-Id: I6a9dd5337deddcecc599d3a44a7431909ed21079
-
Jingning Han authored
Use the zcoeff_blk buffer of PICK_MODE_CONTEXT to store the indexes of all-zero-coeff block of the current best mode. Remove the temporary buffer best_zcoeff_blk defined in the rate-distortion optimization loop. This improves the speed performance by about 0.5% in all speed settings. Change-Id: Ie3e15988ddfa581eafa2e19a8228d3fe4a46095c
-
- 14 Oct, 2013 1 commit
-
-
Jingning Han authored
This commit moves token_cache buffer into macroblock struct, instead of defining as a local variable in cost_coeffs. This avoids repeatedly re-allocating memory space in the rate-distortion optimization loop. The runtime at speed 0 reduces: bus 2000kbps, 161692ms to 159951ms football 600kbps, 229505ms to 225821ms Change-Id: If7da6b0b6d8c5138a16271a33c4548fba33d8840
-
- 11 Oct, 2013 3 commits
-
-
Dmitry Kovalev authored
Renames: vp9_short_iht4x4_add -> vp9_iht4x4_16_add vp9_short_iht8x8_add -> vp9_iht8x8_64_add vp9_short_iht16x16_add_c -> vp9_iht16x16_256_add Change-Id: Ibca7a188fd062b196787ac5efc1ea545e7f166c0
-
Deb Mukherjee authored
Converts the constant rddiv parameter to 128 (from 100) and implements RDCOST with bit-shift rather than multiplication. Other parameters are also adjusted to roughly keep the same balance between Rate and Distortion. There is a slight speed-up of about 0.5-1% (at speed 0) as testted on football_cif. There is a slight change in performance due to small change in the parameters. derfraw300: +0.033% stdhdraw250; +0.102% Change-Id: I70ac69f58fa71c83108f68fe41796cd19d1fc760
-
Yaowu Xu authored
The commit changes to mask available intra prediction modes for test based on prediction block size. With this patch, encoding time of CpuUsed 2 reduces from 10% to 20% for HD clips with a compression drop of 0.2% Change-Id: I65f320f1237c0f5ae3a355bf7caf447f55625455
-
- 10 Oct, 2013 3 commits
-
-
Jingning Han authored
This commit re-designs the per transformed block rate-distortion costs tracking buffers. It removes redundant buffer usage, makes the needed context memory allocation per VP9_COMP instance and reuses the same buffer sets inside the rate-distortion optimization search loop, thereby avoiding repeatedly requiring memory space. It reduces speed 0 runtime: bus at 2000 kbps from 166763ms to 158967ms, football at 600 kbps from 246614ms to 234257ms. Both about 5% speed-up. Local tests suggest about 2% to 5% speed-up for speed 1 and 2 settings. This does not change compression performance. Change-Id: I363514c5276b5cf9a38c7251088ffc6ab7f9a4c3
-
Yaowu Xu authored
Change-Id: Id5e31833a0ef40de9f64c2f5674af7083233bf14
-
Deb Mukherjee authored
Increases these parameters. There is a small efficiency gain. Change-Id: Ie5f0ddb39c907d335e0dafa5eb112365a81f4542 derfraw300: +0.091% stdhdraw250: +0.238%
-
- 09 Oct, 2013 3 commits
-
-
Jingning Han authored
The intra mode distortion adjustment for skip_encode feature was broken in the refactoring cc91851. This commit fixes it and tunes the distortion models used therein. Change-Id: I0d676e82f8e855536a90cf9b3e3fdefafcd886c6
-
Deb Mukherjee authored
Some minor cleanups in preparation for experimentation with some encode parameters and thresholds Change-Id: I449d66da97eae0a7acdf4aae374e2f9111342056
-
Jingning Han authored
Use b_mode_info to store the inter prediction mode of sub8x8 block, in replacement of the use of partition_info. Remove redundant buffer update for partition_info. For bus_cif at 2000 kbps, this seem to make speed 0 about 1% faster. Change-Id: Id1b3be45e75a24fb4b42335ac480c23e440978f6
-
- 08 Oct, 2013 1 commit
-
-
Dmitry Kovalev authored
We already have itxm_add member in MACROBLOCKD structure. Both inv_txm4x4_1_add and inv_txm4x4_add are just its special cases for different eob values. But eob logic is already implemented in vp9_iwht4x4_add and vp9_idct4x4_add (that's why also removing inverse_transform_b_4x4_add). Change-Id: I80bec9b6f7d40c5e5033c613faca5c819c3e6326
-