summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2013-10-15Added trap for invalid key frameYaowu Xu
Change-Id: I698e8df9b336d38bffe01e656acba00d4003695f
2013-10-15Prevent access to invalid pointerYaowu Xu
The commit added check to make sure no invalid memory access even when the decoder instance is never initialized. Change-Id: I4da343d0b3c78c27777ac7f5ce7688562c69f0c5
2013-10-15Add clamp to prevent out of bound accessYaowu Xu
For bad input data, the decoder may access the array out of bounds. The commit added clamp to prevent such out of bound access Change-Id: I0a1cfd9b8786ea7113a998053c76605c963b077a
2013-10-14Merge "vp9_receive_compressed_data: remove unnecessary indent"James Zern
2013-10-14Merge "Move token_cache from cost_coeffs to MACROBLOCK"Jingning Han
2013-10-14Move token_cache from cost_coeffs to MACROBLOCKJingning Han
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
2013-10-13Merge "Making input pointer of any inverse transform constant."Dmitry Kovalev
2013-10-13Merge "Adding TREE_SIZE macro + cleanup."Dmitry Kovalev
2013-10-11Making input pointer of any inverse transform constant.Dmitry Kovalev
Also renaming dest_stride to stride in some places. Change-Id: I75f602b623a5a7071d4922b747c45fa0b7d7a940
2013-10-11Merge "Get libvpx to compile on VS2013."Johann
2013-10-11Adding TREE_SIZE macro + cleanup.Dmitry Kovalev
Using TREE_SIZE for the following trees: vp9_intra_mode_tree vp9_inter_mode_tree vp9_partition_tree vp9_switchable_interp_tree vp9_mv_joint_tree vp9_mv_class_tree vp9_mv_class0_tree vp9_mv_fp_tree Change-Id: I0212bb4c1ee6648249f68517e28a67a56591ee1b
2013-10-11Consistent names for inverse hybrid transforms (2 of 2).Dmitry Kovalev
Renames: vp9_iht_add -> vp9_iht4x4_add vp9_iht_add_8x8 -> vp9_iht8x8_add vp9_iht_add_16x16 -> vp9_iht16x16_add Change-Id: I8f1a2913e02d90d41f174f27e4ee2fad0dbd4a21
2013-10-11Merge "Consistent names for inverse hybrid transforms (1 of 2)."Dmitry Kovalev
2013-10-11Get libvpx to compile on VS2013.Scott Graham
`round` is defined in the runtime library now. https://codereview.chromium.org/23922008/ Change-Id: I3852740058d32f63ce283579acbe284865e32dba
2013-10-11Merge "Replacing {VP9_COEF, MODE}_UPDATE_PROB with DIFF_UPDATE_PROB."Dmitry Kovalev
2013-10-11Merge "Change in rddiv parameter to make it a power of 2"Deb Mukherjee
2013-10-11Consistent names for inverse hybrid transforms (1 of 2).Dmitry Kovalev
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
2013-10-11Merge "Adding const to the input argument of all 1D transforms."Dmitry Kovalev
2013-10-11Merge "Masking intra mode choice adaptively"Yaowu Xu
2013-10-11Adding const to the input argument of all 1D transforms.Dmitry Kovalev
Also adding static to iadst16_1d and fadst16 functions. Change-Id: I13c7df3b776f0f8efc6e80099bdb0a2f6d29edaf
2013-10-11Replacing {VP9_COEF, MODE}_UPDATE_PROB with DIFF_UPDATE_PROB.Dmitry Kovalev
Values of MODE_UPDATE_PROB and VP9_COEF_UPDATE_PROB are equal, so replacing them with one constant. Inlining appropriate arguments for functions: vp9_cond_prob_diff_update (encoder) vp9_diff_update_prob (decoder) Change-Id: I1255a1cb477743b799b3bfbbcd8de6b32b067338
2013-10-11Merge "Removing vp9_tree_p typedef."Dmitry Kovalev
2013-10-11Merge "Removing vp9_idct4_1d_sse2 function."Dmitry Kovalev
2013-10-11Change in rddiv parameter to make it a power of 2Deb Mukherjee
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
2013-10-11Masking intra mode choice adaptivelyYaowu Xu
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
2013-10-11Merge "Code cleanup"Yunqing Wang
2013-10-11Merge "Restore mode skip feature in sub8x8 rd loop"Jingning Han
2013-10-11Code cleanupYunqing Wang
Minor code cleanup. Change-Id: I47c1f794842d4570bb39cfd23b80f54f5606bba6
2013-10-11Merge "Experimental rate control change."Paul Wilkins
2013-10-11Merge "Disable recode loop."Paul Wilkins
2013-10-11Merge "SSE2 8-tap sub-pixel filter optimization"Yunqing Wang
2013-10-11Experimental rate control change.Paul Wilkins
When the codec in VBR (or cq) mode hits its max q limits and is struggling to hit a target bandwidth, the bit target per frame collapses. In the first instance normal frames cap out at the maximum allowed Q and then the ARF and GFs do the same. This latter behavior is not generally desirable as GFs and ARFs are only effective from a quality and data rate perspective if they have at lease some level of -Q delta compared to the surrounding frames. In this patch I define a separate max Q for GFs and ARFs that is derived from but somewhat lower than that defined for normal frames. In effect there is a minimum Q delta that will always be available for GFs and ARFs regardless of the target rate and MAXQ setting. This may of course mean that the absolute lowest rate obtainable for a given clip is somewhat higher. Change-Id: I268868b28401900d0cd87e51e609cd3b784ab54a
2013-10-11Disable recode loop.Paul Wilkins
For VBR coding disable the recode loop for speeds > 0. Results pending. Change-Id: I2cd9a87c3fcbe39c05b954798d0671a4ca62c37f
2013-10-10Removing vp9_tree_p typedef.Dmitry Kovalev
It is used only two times and it is more clear to use real type instead of typedef. Change-Id: Idc25c16504c3da4d040e0cdb33a2987631bb6a5b
2013-10-10Removing vp9_idct4_1d_sse2 function.Dmitry Kovalev
We have two SSE2-optimized functions for idct4_1d: vp9_idct4_1d_sse2 <-- removing this one idct4_1d_sse2 vp9_idct4_1d_sse2 was used only by the following functions which already have SSE2 optimized variants: vp9_idct4x4_16_add_c -> vp9_idct4x4_16_add_see2 idct8_1d -> vp9_idct8x8_{16, 10, 1}_see2 vp9_short_iht4x4_add_c -> vp9_short_iht4x4_add_see2 Change-Id: Ib0a7f6d1373dbaf7a4a41208cd9d0671fdf15edb
2013-10-10d207 intra prediction ssse3 using bytesScott LaVarnway
byte version of ronalds d207 ssse3 optimizations (commit: f891f84d3ba9345b0074e682f0fea09b8ddf4f1e) Change-Id: If15f71a589ea16f78ac86a501b0c5c6231dc9af1
2013-10-10Merge "Giving consistent names to IDCT 32x32 functions."Dmitry Kovalev
2013-10-10Merge "Consistent names for FDCT functions."Dmitry Kovalev
2013-10-10Merge "d153 intra prediction (32x32) ssse3 using bytes"Yunqing Wang
2013-10-10SSE2 8-tap sub-pixel filter optimizationYunqing Wang
To ensure fast encoding/decoding on devices without ssse3 support, SSE2 optimization of sub-pixel filters was done. Test using 1080p clip showed the decoder speeds were ~70fps with ssse3 filters, ~60fps with sse2 filters, and ~15fps with c filters. Change-Id: Ie2088f87d83a889fba80a613e4d0e287aadd785c
2013-10-10Merge "Fix typo in comment message"Adrian Grange
2013-10-10Merge "change to avoid out-of-range computation"Yaowu Xu
2013-10-10Merge "Re-design rate-distortion cost tracking buffers"Jingning Han
2013-10-10Fix typo in comment messageJingning Han
Change-Id: Ifef756a3a91423bb9f5411f06fa092027be21ecf
2013-10-10Consistent names for FDCT functions.Dmitry Kovalev
Renames: fdct4_1d -> fdct4 fadst4_1d -> fadst4 fdct8_1d -> fdct8 fadst8_1d -> fadst8 fdct16_1d -> fdct16 fadst16_1d -> fadst16 "_1d" suffix is redundant, so removing it. The same will happen with idct in the next change sets. Change-Id: Ibf421cd2f569146c6079269df7a31819c098265e
2013-10-10Giving consistent names to IDCT 32x32 functions.Dmitry Kovalev
Renames: vp9_short_idct32x32_add -> vp9_idct32x32_1024_add vp9_short_idct32x32_1_add -> vp9_idct32x32_1_add vp9_idct_add_32x32 -> vp9_idct32x32_add Change-Id: Id85306f5814bac6c47463a6b5901a93082510666
2013-10-10Re-design rate-distortion cost tracking buffersJingning Han
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
2013-10-10change to avoid out-of-range computationYaowu Xu
Change-Id: Id5e31833a0ef40de9f64c2f5674af7083233bf14
2013-10-10Merge "Removing inv_txm4x4_1_add and inv_txm4x4_add function pointers."Dmitry Kovalev
2013-10-10Merge "Moving all scan/iscan code into separate vp9_scan.{h, c} files."Dmitry Kovalev