summaryrefslogtreecommitdiff
path: root/vp10/common
AgeCommit message (Collapse)Author
2015-10-16vp10: allow forward updates for keyframe y intra mode probabilities.Ronald S. Bultje
See issue 1040 point 5. Change-Id: I51a70b9eade39efba392a1457bd70a3c515525cb
2015-10-16vp10: merge keyframe/interframe uvintramode/partition probabilities.Ronald S. Bultje
This has various benefits: - simplify implementations because we don't have to switch between multiple probability tables depending on frametype - allows fw subexp and bw adaptivity for partitions/uvmode in keyframes See issue 1040 point 5. Change-Id: Ia566aa2863252d130cee9deedcf123bb2a0d3765
2015-10-16vp10: make segmentation probs use generic probability model.Ronald S. Bultje
Locate them (code-wise) in frame_context, and have them be updated as any other probability using the subexp forward and adaptive bw updates. See issue 1040 point 1. TODOs: - real-world default probabilities - why is counts sometimes NULL in the decoder? Does that mean bw adaptivity updates only work on some frames? (I haven't looked very closely yet, maybe this is a red herring.) Change-Id: I23b57b4e5e7574b75f16eb64823b29c22fbab42e
2015-10-13vp10: fix compiler warning with --enable-universal_hp.Ronald S. Bultje
Change-Id: I0d7ca20bdd0fc868b28b0755e3114a4499056f45
2015-10-13Merge "VP10: Add palette mode part 1"Hui Su
2015-10-12vp10: allow bw adaptivity for skip/tx probabilities in keyframes.Ronald S. Bultje
See issue 1040 point 3. Change-Id: Ieef6d326b7fb50ceca5936525b7c688225a11fd1
2015-10-12vp10: remove ref-MV-dependent use of HP.Ronald S. Bultje
This change (in a new config experiment: universal_hp) removes the bitstream parsing dependency of the HP MV bit on the ref MV to be coded. It also cleans up clearing of the HP bit in near/nearestMV, since HP is always on if it's set in the frame header. This admittedly doesn't clean up the crap that could be cleaned up, but that's mostly because I think this needs some careful review; not so much for coding style, but more from hardware people and from the codec team on what we/you want. It would also be nice to get some actual numbers on the real quality impact of this change. If, for example, hardware people come up and tell us they don't actually care anymore, we should probably just this code as-is and do nothing (i.e. discard this patch). See issue 1036. Change-Id: Ic9b106f34422aa0f79de0c28125b72d566bd511a
2015-10-12vp10: remove clamp_mv2() call from vp10_find_best_ref_mvs().Ronald S. Bultje
This actually has no effect whatsoever, since the input MVs themselves are clamped by clamp_mv_ref() already, which is significantly more restrictive in its bounds. Change-Id: I4a3a7b2b121ee422c56428c2a12d930c3813c06e
2015-10-12VP10: Add palette mode part 1hui su
Add palette mode for keyframe luma channel. Palette mode is enabled when using "--tune-content=screen" in encoding config parameters. on screen_content testset: +6.89% on derlr : +0.00% Design doc (WIP): https://goo.gl/lD4yJw Change-Id: Ib368b216bfd3ea21c6c27436934ad87afdaa6f88
2015-10-08Merge "vp10: use superframe marker index/size mechanism for tile size."Ronald S. Bultje
2015-10-07Merge "Backports highbitdepth accelerations into vp10"Debargha Mukherjee
2015-10-05vp10: use superframe marker index/size mechanism for tile size.Ronald S. Bultje
See issue 1042. Should provide slight bitstream savings in most cases where tiles are being used. Change-Id: Ie2808cf8ef30b3efe50804396900c4d63a3fa026
2015-10-02Merge "vp10: reimplement d45/4x4 to match vp8 instead of vp9."Ronald S. Bultje
2015-10-02Backports highbitdepth accelerations into vp10Debargha Mukherjee
Ports the changes in https://chromium-review.googlesource.com/#/c/302372/3 into vp10. Change-Id: I334c409f693691227ad16fc703c91899592dd8dc
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-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-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-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-18Create sub8x8 block inter prediction functionJingning Han
Change-Id: Ib161e6fb3eb081f7176a1d969fed16a7d1ffc320
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: 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-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-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 "Don't reset sign_bias fields in vp10_setup_past_independence()."Ronald S. Bultje
2015-09-11Merge "Isolate vp10's fwd_txfm from vp9"Angie Chiang
2015-09-10Isolate vp10's fwd_txfm from vp9Angie Chiang
1) copy fw_txfm related files from vpx_dsp tp vp10 vpx_dsp/fwd_txfm.h → vp10/common/vp10_fwd_txfm.h vpx_dsp/fwd_txfm.c → vp10/common/vp10_fwd_txfm.c vpx_dsp/x86/fwd_dct32x32_impl_sse2.h → vp10/common/x86/vp10_fwd_dct32x32_impl_sse2.h vpx_dsp/x86/fwd_txfm_sse2.c → vp10/common/x86/vp10_fwd_txfm_sse2.c vpx_dsp/x86/fwd_txfm_impl_sse2.h → vp10/common/vp10_fwd_txfm_impl_sse2.h Change-Id: Ie9428b2ab1ffeb28e17981bb8a142ebe204f3bba
2015-09-10Isolate vp10's inv_txfm from vp9Angie Chiang
1) copy following files from vpx_dsp/ to vp10/common/ vp10_inv_txfm.c vp10_inv_txfm.h vp10_inv_txfm_sse2.c vp10_inv_txfm_sse2.h 2) change the function prefix "vpx_" to "vp10_" in above files 3) add unit test at vp10_inv_txfm_test.cc Change-Id: I206f10f60c8b27d872c84b7482c3bb1d1cb4b913
2015-09-09vp10: add extern "C" to headersJames Zern
Change-Id: Ie2e8b37fa01ce8d6b993684f431f3159d511cfb1
2015-09-08Don't reset sign_bias fields in vp10_setup_past_independence().Ronald S. Bultje
The fields are always coded in the frame itself, so there is never any dependency on past frames. In practice, this fixes sign_bias being ignored when error_resilient_mode=1. See issue 1011. Change-Id: I9d134ef6b445ced4d100fa735ce579855a0fa5af
2015-09-01Mark VP10 functions as 'INLINE'Johann
Change-Id: I3dce6c702344a5cb5aaf9de1e4be44c53f9ce7e9
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-26Remove vp10_default_scan_orders[] that is unusedhui su
Change-Id: Ibc3b5cb3799f080808cf22ccb01d733e74ab4461
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-21Merge "Replace MAX_REF_LF_DELTAS with MAX_REF_FRAMES"Jingning Han
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-20Refactor REFS_PER_FRAME definitionJingning Han
Define it as a function of reference frame types to provide scalability for multiple reference frames. Change-Id: I77b856c96916f352bc31004b9266b3f24e19bd0f
2015-08-15Merge "Change vp9_ prefix function names in vpx_scale to vpx_"Jingning Han