summaryrefslogtreecommitdiff
path: root/vp10/decoder
AgeCommit message (Collapse)Author
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: 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-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-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-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-09vp10: add extern "C" to headersJames Zern
Change-Id: Ie2e8b37fa01ce8d6b993684f431f3159d511cfb1
2015-09-03Make update_map/temporal_update fields implicit for keyframes.Ronald S. Bultje
These frame types cannot make bitstream parsing depend on previous frames, so the hypothetical combinations of e.g. keyframe=1 and update_map=0 or keyframe=1 and temporal_update=1 are non-sensical. Therefore, make it impossible to code such combinations in the vp10 bitstream header. See issue 1044. Change-Id: I3f0a83d5c7e3989541a469a909471424a285239d
2015-09-03Unify coding order of MC filters between blocks and frame header.Ronald S. Bultje
In VP9, the order for frame header was: [0] smooth, [1] regular, [2] sharp, [3] bilinear. Per-block, the order was [0] regular, [1] smooth and [2] sharp. For VP10, swap smooth/regular in the frame header so that the block ordering and frame header ordering are interchangeable. See issue #1046. Change-Id: Ic9ec5964874375e40cd59bef50b489a76cbe4365
2015-08-31Include vpx_dsp_common.h when using VPXMIN/MAXJohann
Change-Id: I2e387a06484a06301f3cd6600c4ba2f4335b61ee
2015-08-26vpx_dsp_common: add VPX prefix to MIN/MAXJames Zern
prevents redeclaration warnings; vp8 has its own define which will be resolved in a future commit Change-Id: Ic941fef3dd4262fcdce48b73075fe6b375f11c9c
2015-08-24Fix a bug induced in f1d090e2f56e28b3218fb99f648bd5d59ae2f4b1hui su
Change-Id: I5f7ab8ee75192a4c6c7aa723d2e113400d6ca9a5
2015-08-24Refactoring on transform typeshui su
Prepare for adding more transform varieties (EXT_TX and TX_SKIP in nextgen). Change-Id: I2dfe024f6be7a92078775917092ed62abc2e7d1e
2015-08-21Merge "Refactor get_tx_type and get_scan"Hui Su
2015-08-21Refactor get_tx_type and get_scanhui su
This makes it easier to add new transform types and scan orders to VP10 in the future. Change-Id: I94874ddc9b19928d7820d57e94e2af04adf51efe
2015-08-20Replace MAX_REF_LF_DELTAS with MAX_REF_FRAMESJingning Han
The macro MAX_REF_LF_DELTAS is repeatedly defined. Merge its use cases with MAX_REF_FRAMES. Change-Id: I71c4634fb5feae78ce6f9bf99074f45ed7f68b73
2015-08-15Merge "Change vp9_ prefix function names in vpx_scale to vpx_"Jingning Han
2015-08-14Change vp9_ prefix function names in vpx_scale to vpx_Jingning Han
Change-Id: Iac85902cbbb3e752801dc85de9a3c778e47304aa
2015-08-14change vp10 to use a different sync code than vp9Yaowu Xu
Change-Id: If5b5beb38c938bd7a6016dedc9bd0c8e06153d73
2015-08-13VP9Common -> VP10CommonYaowu Xu
Change-Id: Ifddc68a8ab020f35a266ffc74429363301fe7d9e
2015-08-13VP9Decoder -> VP10DecoderYaowu Xu
Change-Id: I427b56e92aa2d1381192cb394ac1bb95becb32a1
2015-08-13VP9_COMMON -> VP10->COMMONYaowu Xu
Change-Id: I651b7bee90f33581368853da81f9622805ccc0ea
2015-08-13Correct guard macros in header filesYaowu Xu
Change-Id: Ifce12a95c1cdc36dc6ac5a72759249a17407da9e
2015-08-12Sync vp10 with vpx_ports/system_state.hJingning Han
Change-Id: Ic5004f8bdc1c2b025b598e80374ee1f286ea95ee
2015-08-11Remove vp9_ prefix from vp10 filesJingning Han
Remove the vp9_ prefix from vp10 file names. Change-Id: I513a211b286a57d6126fc1b0fbfd6405120014f1
2015-08-11Fork VP9 and VP10 codebaseJingning Han
This commit folks the VP9 and VP10 codebase and makes libvpx support VP8, VP9, and VP10. Change-Id: I81782e0b809acb3c9844bee8c8ec8f4d5e8fa356