summaryrefslogtreecommitdiff
path: root/vp10
AgeCommit message (Collapse)Author
2015-10-05vp10: extend range for delta Q values.Ronald S. Bultje
See issue 1051. 6 bits is fairly arbitrary but at least allows writing delta Q values that are fairly normal in other codecs. I can extend to 8 if people want full range, although I personally don't have any need for that. Change-Id: I0a5a7c3d9b8eb3de4418430ab0e925d4a08cd7a0
2015-10-02vp10: make render_width/height referenceable through ref frames.Ronald S. Bultje
See issue 1079. Change-Id: I754a61ec011c3508bbb26826cf8e11dbdfdd8379
2015-10-02Merge "vp10: reimplement d45/4x4 to match vp8 instead of vp9."Ronald S. Bultje
2015-10-01Small cleanuphui su
Change-Id: I5aeaa94b743f84738d288f8b027fec4c164f2ec3
2015-10-01vp10: reimplement d45/4x4 to match vp8 instead of vp9.Ronald S. Bultje
This is more a proof of concept than anything else. The problem here isn't so much how to code it, but rather where to place the resulting code. All intrapred DSP code lives in vpx_dsp, so do we want the vp10 specific intra pred functions to live there, or in vp10/? See issue 1015. Change-Id: I675f7badcc8e18fd99a9553910ecf3ddf81f0a05
2015-09-28Merge "comment out fdct32"Angie Chiang
2015-09-28Merge "vp9/10: improve support for render_width/height."Ronald S. Bultje
2015-09-28Merge "Rename display_{size,width,height} to render_*."Ronald S. Bultje
2015-09-28Merge "vp10: code reference_mode in uncompressed header."Ronald S. Bultje
2015-09-28Merge "vp10: split UV int4x4 loopfilter flag in one for each covered edge."Ronald S. Bultje
2015-09-25vp9/10: improve support for render_width/height.Ronald S. Bultje
In the decoder, map this to the output variable vpx_image_t.r_w/h. This is intended as an improved version of VP9D_GET_DISPLAY_SIZE, which doesn't work with parallel frame decoding. In the encoder, map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE). Also add render_size to the encoder_param_get_to_decoder unit test. See issue 1030. Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8
2015-09-26Merge "vp9/10 encoder: prevent NULL access on failure"James Zern
2015-09-25Rename display_{size,width,height} to render_*.Ronald S. Bultje
The name "display_*" (or "d_*") is used for non-compatible information (that is, the cropped frame dimensions in pixels, as opposed to the intended screen rendering surface size). Therefore, continuing to use display_* would be confusing to end users. Instead, rename the field to render_*, so that struct vpx_image can include it. Change-Id: Iab8d2eae96492b71c4ea60c4bce8121cb2a1fe2d
2015-09-26Merge "vp10: remove MACROBLOCK.{highbd_,}itxfm_add function pointer."Ronald S. Bultje
2015-09-26Merge "vp10: remove MACROBLOCK.fwd_txm4x4 function pointer."Ronald S. Bultje
2015-09-25comment out fdct32Angie Chiang
comment out fdct32 remove fdct32 test Change-Id: I31c47fb435377465cd3265e39621ca50d3aae656
2015-09-25vp10: code reference_mode in uncompressed header.Ronald S. Bultje
See issue 1041 point 2. Change-Id: I6fc6427b1a0edff828e39d43428e3271491f8ac5
2015-09-25vp10: split UV int4x4 loopfilter flag in one for each covered edge.Ronald S. Bultje
In practice, this fixes the issue that if you have an odd number of mi_cols, on the full right of the image, the UV int4x4 loopfilter will be skipped over odd cols as well as odd rows (because it holds a single variable for both edges). See issue 1016. Change-Id: Id53b501cbff9323a8239ed4775ae01fe91874b7e
2015-09-26Merge "Revert "remove static from fdct4/8/16/32""James Zern
2015-09-25vp10: remove MACROBLOCK.{highbd_,}itxfm_add function pointer.Ronald S. Bultje
This is preparatory work for allowing per-segment lossless coding. See issue 1035. Change-Id: I9487d02717ee3e766aee61a487780056bb35d2d3
2015-09-25vp10: remove MACROBLOCK.fwd_txm4x4 function pointer.Ronald S. Bultje
This is preparatory work for allowing per-segment lossless coding. See issue 1035. Change-Id: Idd72e2a42d90fa7319c10122032d1a7c7a54dc05
2015-09-24vp9/10 decoder_remove: check pbi pointerJames Zern
fixes crash on error Change-Id: Ibb1ef5565fb833cdee1a49335473d98f1187ef43
2015-09-23vp9/10 encoder: prevent NULL access on failureJames Zern
Change-Id: I1fc8e0b3d48675cd5428b7b36f7cc28ab32cbf71
2015-09-23Revert "remove static from fdct4/8/16/32"James Zern
This reverts commit 8903b9fa8345726efbe9b92a759c98cc21c4c14b. there is no reason for these to be global Change-Id: I66a31c06f8426aeca348ef12d9b9ab59d6d5e55d
2015-09-23Adjust rd calculation in choose_tx_size_from_rdhui su
Coding gain: derflr 0.142% hevclr 0.153% hevcmr 0.124% Change-Id: I63b56ae3a9002c3a266e10e2964135ed43b0ba53
2015-09-21Merge "remove static from fdct4/8/16/32"Angie Chiang
2015-09-21remove static from fdct4/8/16/32Angie Chiang
remove static from fdct4/8/16/32 in vp10/encoder/dct.c add prefix vp10_ to fdct4/8/16/32 add vp10/encoder/dct.h Change-Id: I644827a191c1a7761850ec0b1da705638b618c66
2015-09-18Create sub8x8 block inter prediction functionJingning Han
Change-Id: Ib161e6fb3eb081f7176a1d969fed16a7d1ffc320
2015-09-18Merge "Refactor mbmi_ext structure"Jingning Han
2015-09-17Refactor mbmi_ext structureJingning Han
This commit removes mbmi_ext_base pointer from MACROBLOCK struct. Its use case can be fully covered by cpi->mbmi_ext_base pointer. Change-Id: I155351609336cf5b6145ed13c21b105052727f30
2015-09-16vp10: do sub8x8 block reconstruction in full subblocks.Ronald S. Bultje
This means that we don't reconstruct in 4x4 dimensions, but in blocksize dimensions, e.g. 4x8 or 8x4. This may in some cases lead to performance improvements. Also, if we decide to re-introduce scalable coding support, this would fix the fact that you need to re-scale the MV halfway the block in sub8x8 non-4x4 blocks. See issue 1013. Change-Id: If39c890cad20dff96635720d8c75b910cafac495
2015-09-16vp10: fix 4:2:2 chroma MVs for 8x4/4x4 blocks.Ronald S. Bultje
In vp9, the bottom MV would be the average of the topright and bottomleft luma MV (instead of the bottomleft/bottomright luma MV). See issue 993. Change-Id: Ic91c0b195950e7b32fc26c84c04788a09321e391
2015-09-16vp10: remove double MV value check.Ronald S. Bultje
This has virtually no effect on coding efficiency, but it is more logical from a theoretical perspective (since it makes no sense to me that you would exclude a MV from a list just because it's sign- inversed value is identical to a value already in a list), and it also makes the code simpler (it removes a duplicate value check in cases where signbias is equal between the two MVs being compared). See issue 662. Change-Id: I23e607c6de150b9f11d1372fb2868b813c322d37
2015-09-16vp10: move coding of tx_mode element to the non-arithcoded header.Ronald S. Bultje
See issue 1040 point 3. Change-Id: If051b92c24a34d6a39861fb7d7180c5ca32f3d82
2015-09-16vp10: code sign bit before absolute value in non-arithcoded header.Ronald S. Bultje
For reading, this makes the operation branchless, although it still requires two shifts. For writing, this makes the operation as fast as writing an unsigned value, branchlessly. This is also how other codecs typically code signed, non-arithcoded bitstream elements. See issue 1039. Change-Id: I6a8182cc88a16842fb431688c38f6b52d7f24ead
2015-09-16vp10: don't reset contextual skip flag if block has no coefficients.Ronald S. Bultje
The implicitly changed value would be used for contextualizing future skip flags of neighbour blocks (bottom/right), which is certainly not what was intended. The original code stems from vp8, and was useful in cases where coding of the skip flag was disabled. In vp9, the skip flag is always coded. The result of this change is that for bitstream parsing purposes, decoding of the skip flag becomes independent of decoding of block coefficients. See issue 1014. Change-Id: I8629e6abe76f7c1d649f28cd6fe22a675ce4a15d
2015-09-16Add support for color-range.Ronald S. Bultje
In decoder, export (eventually) into vpx_image_t.range field. In encoder, use oxcf->color_range to set it (same way as for color_space). See issue 1059. Change-Id: Ieabbb2a785fa58cc4044bd54eee66f328f3906ce
2015-09-16Merge "vp10: fix entropy counts for the hp bit."Ronald S. Bultje
2015-09-16Merge "fix implicit declaration"Angie Chiang
2015-09-15Merge changes from topic 'fix-vp9-bitstream-test'James Zern
* changes: vp9_encoder_parms_get_to_decoder: cosmetics vp9...parms_get_to_decoder: remove unneeded func vp9...parms_get_to_decoder: fix EXPECT param order vp9_encoder_parms_get_to_decoder: delete dead code fix BitstreamParms test vp9_encoder_parms_get_to_decoder: remove vp10 yuvconfig2image(): add explicit cast to avoid conv warning vp9/10 decoder_init: add missing alloc cast vp9/10: set color_space on preview frame vp10: add extern "C" to headers vp9: add extern "C" to headers
2015-09-14Remove leftover of "frame_parallel_decoding"Yaowu Xu
The variable has been removed by a previous commit, but missed this instance. Change-Id: Ia34474b0be4945cc6cb9191f0d7cd24a99a4c22e
2015-09-14vp10: fix entropy counts for the hp bit.Ronald S. Bultje
The counts didn't take usehp into account, which means that if the scope of the refmv is too large for the hp bit to be coded, the value (always 1) is still included in the stats. Therefore, the final counts will not reflect the entropy of the coded bits, but rather the entropy of the combination of coded bits and the implied value (which is always 1). Fix that by only including counts if the hp bit is actually coded. See issue 1060. Change-Id: I19a3adda4a8662a05f08a9e58d7e56ff979be11e
2015-09-14Merge "vp10: merge frame_parallel_decoding_mode and refresh_frame_context."Ronald S. Bultje
2015-09-12add range_check for fdct in vp10Angie Chiang
Unify the style of fdct4() fdct8() fdct16() Add fdct32() Add range_check() at each stage Add unit test at ../../test/vp10_dct_test.cc Change-Id: I13f76d9046c3ea473c82024b09a5bc8662e2c28e
2015-09-11vp10: merge frame_parallel_decoding_mode and refresh_frame_context.Ronald S. Bultje
See issue 1030. The value of frame_parallel_decoding_mode was ignored in vp9 if refresh_frame_context was 0, so instead make it a 3-member enum where the dependency is obviously stated. Change-Id: I37f0177e5759f54e2e6cc6217023d5681de92438
2015-09-11vp10: remove duplicate frame_parallel_decode field.Ronald S. Bultje
Keep the one in VP10_COMMON in favour of the one in VP10_DECODER. Change-Id: Ia81983ccc95d83829dc815e28d9b1143e16e27b1
2015-09-11fix implicit declarationAngie Chiang
include vpx_dsp_rtcd.h to avoid implicit declaration of vp10_highbd_fdct32x32_rd_c Change-Id: I0b9ad50381a302750138deab14d2d5ac31f286ee
2015-09-11Make reset_frame_context an enum.Ronald S. Bultje
In vp9, [0] and [1] had identical meaning, so merge them into a single value. Make it impossible to code RESET_FRAME_CONTEXT_NONE for intra_only frames, since that is a non-sensical combination. See issue 1030. Change-Id: If450c74162d35ca63a9d279beaa53ff9cdd6612b
2015-09-11Merge "Fix vp10 high bit-depth build"James Zern
2015-09-11Fix vp10 high bit-depth buildJingning Han
Change-Id: Ie3daed0b282b43ef81d2f8797ac1f6e8bde7d65e