summaryrefslogtreecommitdiff
path: root/vp9/common
AgeCommit message (Collapse)Author
2013-06-18Make fdct32 computation flow within 16bit rangeJingning Han
This commit makes use of dual fdct32x32 versions for rate-distortion optimization loop and encoding process, respectively. The one for rd loop requires only 16 bits precision for intermediate steps. The original fdct32x32 that allows higher intermediate precision (18 bits) was retained for the encoding process only. This allows speed-up for fdct32x32 in the rd loop. No performance loss observed. Change-Id: I3237770e39a8f87ed17ae5513c87228533397cc3
2013-06-14Enable sse2 version of sad8x4/4x8Jingning Han
The encoding time for bus at CIF goes from 661s to 625s. This commit also enabled unit test of sad8x4/4x8 in sad_test.cc. Change-Id: If3d10ebb56bda584bdb69bcf056599d580b12cb1
2013-06-12Fix the comments in boundary block partition checkJingning Han
Change-Id: Ic6b2881d8d495269edbc514b33376ca963798b45
2013-06-12fix a mis use of ref_frameYaowu Xu
Change-Id: I9aac140d775b7b4a8727494d15b185b75501a546
2013-06-12Fix duplicate const.Frank Galligan
Change-Id: I86be1f7421ed49d577cacf405f6e4b0daa85cfdc
2013-06-11Disallow wide loopfilter on some chroma bordersJohn Koleszar
Don't do the 15 tap filter if there aren't 8 pixels below/right of the edge. Change-Id: I62f16437c1d9ba59b6901a5fe71ddb2f472da344
2013-06-10Fix partition coding of corner blockJingning Han
This commit fixed the allowable partition types for bottom-right corner blocks. When a block has over half of its pixels as valid content in both vertical and horizontal directions, allow all the four partition types in the bit-stream. Otherwise, apply partition type constraints. Change-Id: I2252e2de7125a8bfb1c824bf34299a13c81102e3
2013-06-10Merge "New probs for filters/tx_size and a few others" into experimentalDeb Mukherjee
2013-06-10New probs for filters/tx_size and a few othersDeb Mukherjee
* New probs for subpel filters/tx_count * Makes a change to not reset to defaults for the tx_size probs if an intermediate frame reverts to using a fixed tx_size. * A few updates to the parameters for backward adaptation for mode/mv * some cosmetic cleanups derf300: +0.06% Change-Id: I22994d659bc31ca7a4fc8820fde24001e64a2920
2013-06-10Merge "Remove remnants of VP8 profiles/versions" into experimentalJohn Koleszar
2013-06-10Remove remnants of VP8 profiles/versionsJohn Koleszar
Remove the bilinear filter mode, and the no-loopfilter mode, and the related vp9_setup_version() function. Change-Id: I32311367812faf37863131df3af37d63d03973d7
2013-06-10print debugging info from mode info structJim Bankoski
This commit has no impact but to help us debug issues. To Use call like this: vp9_print_modes_and_motion_vectors(cpi->common.mi, cpi->common.mi_rows, cpi->common.mi_cols, cpi->common.current_video_frame, "decode_mi.stt"); Change-Id: I89e27725dae351370eb7f311a20a145ed4f1d041
2013-06-10Merge the new loopfilter experimentJohn Koleszar
Change-Id: I524ba98841f2e1850e3276ac365c501cea31546d
2013-06-10Merge "Loopfilter: Fix chroma edge selection" into experimentalJohn Koleszar
2013-06-10Merge "Fix use of get_uv_tx_size in loopfilter" into experimentalJohn Koleszar
2013-06-10Merge "Implement intra-coded frames" into experimentalAdrian Grange
2013-06-10Cosmetic cleanups of filtersDeb Mukherjee
No bitstream change. Removes unused filters and the code for the case of 2 switchable filters; also changes the 8tap-smooth filter coefficients for integer shifts to be interpolating to be consistent with the way it is implemented currently. Change-Id: I96c542fd8c06f4e0df507a645976f58e6de92aae
2013-06-10Implement intra-coded framesAdrian Grange
Implements ability to signal and decode frames that are encoded using only intra coding modes. Only the decode side has been implemented here. Change-Id: I53ac6a8d90422cd08ba389e5236e15b45f9e93de
2013-06-10Loopfilter: Fix chroma edge selectionJohn Koleszar
A 32x32 transform should have no internal filtering (check c==4) Change-Id: I7414cf4748ed053208217692ef00cd8b20d49a91
2013-06-10Fix use of get_uv_tx_size in loopfilterJohn Koleszar
Change the argument of get_uv_tx_size() to be an MBMI pointer, so that the correct column's MBMI can be passed to the function. Change-Id: Ied6b8ec33b77cdd353119e8fd2d157811815fc98
2013-06-10Merge "Fixed point reference picture scaling" into experimentalJohn Koleszar
2013-06-10Merge "border mvref issue" into experimentalRonald S. Bultje
2013-06-10border mvref issueJim Bankoski
Fixes mvref issue. Change-Id: I07dc1b0682845bc18fe0efa6af5e4f4da3abfa3a
2013-06-10Merge "Loopfilter: bug fix in sb_type usage" into experimentalYaowu Xu
2013-06-10Fixed point reference picture scalingTero Rintaluoma
Fixed point scaling factors are calculated once for each reference frame by using integer division. Otherwise fixed point scaling routines are used in all scaling calculations. This makes it possible to calculate fixed point scaling factors on device driver software and pass them to hardware and thus avoid division on hardware. TODO: - Missing check for maximum frame dimensions (currently scaling uses 14 bits) - Missing check for maximum scaling ratio (upscaling 16:1, downscaling 2:1) Problems: - Straightforward fixed point implementation can cause error +-1 compared to integer division (i.e. in x_step_q4). Should only be an issue for frames larger than 16k. Change-Id: I3cf4dabd610a4dc18da3bdb31ae244ebaf5d579c
2013-06-10Loopfilter: bug fix in sb_type usageJanne Salonen
Was always using sb_type of first column in a row of 8x8 units when determining decoded block edges as a subcondition for loop filter skipping. Change-Id: Ib17554633a63a90b70cdaa7bed65db035a8ad9d8
2013-06-09Merge "Loopfilter: Always filter intra edges" into experimentalYaowu Xu
2013-06-09Merge "Loopfilter: use the current block only for skip" into experimentalYaowu Xu
2013-06-09Merge "Modified loop filter edge skipping" into experimentalYaowu Xu
2013-06-09Loopfilter: Always filter intra edgesJohn Koleszar
Change-Id: Ifb1ce2bd52147981ca1aec9ec6cfea8738a23e45
2013-06-09Merge "New comp_inter defaults." into experimentalRonald S. Bultje
2013-06-08Merge "Fix firstpass if framesize is not a multiple of 16." into experimentalRonald S. Bultje
2013-06-08Merge "New default tables" into experimentalRonald S. Bultje
2013-06-08Merge "Align frame size to 8 instead of 16." into experimentalRonald S. Bultje
2013-06-08New comp_inter defaults.Ronald S. Bultje
It seems like I inverted the meaning of the contexts by accident? Change-Id: Iafb2346d9933930949578342b84519b719dd5dd3
2013-06-08Fix firstpass if framesize is not a multiple of 16.Ronald S. Bultje
Change-Id: Iec41736c2b6140715f90f40de5ae6cf52497a9b8
2013-06-08New default tablesRonald S. Bultje
Change-Id: Ice8c73a2a843113877b8f8ed78737a1442c25ced
2013-06-08TX_SIZE contexts simplification.Deb Mukherjee
Reduces TX_SIZE contexts to 2 for each kind. The code is cleaner and there is hardly any performance difference with more than two contexts. Results: almost neutral Change-Id: I17656bd6db76224ae2856adf882504560e7dbaa4
2013-06-08Minor fix in TX_SIZE contextsDeb Mukherjee
Change-Id: I9e81f84877e18ba7e55d66389ed60e64a5b7abcc
2013-06-07Merge "Handle partition type coding of boundary blocks" into experimentalYaowu Xu
2013-06-07Loopfilter: use the current block only for skipJohn Koleszar
Use the current block's skip flag to determine edge skipping. Change-Id: I4ba81f899286afbc3f6bb83eba2ef146a01b6fa4
2013-06-07Align frame size to 8 instead of 16.Ronald S. Bultje
Change-Id: Ic606ef1b31e49963a779455a1e010a9ebb0f3f1f
2013-06-07Frame header changes to support intra_only framesAdrian Grange
Made changes to the frame header to write the sync code in the frame header for a non-displayable, intra-only frame. Extended reset_frame_context to 2-bits. (Submitting on behalf of Dmitri) Change-Id: Ie836ae0df9ed572fb4f08aabe9351a555c4f3b96
2013-06-07Coding tx-size selection by use of spatial contextDeb Mukherjee
Adds coding of transform size within a frame by use of context of transform sizes selected in left and above blocks. Also incorporates code for generating stats. TODO: generate and incorporate new default stats Change-Id: I6a7af099f6ad61d448521d9a51167aedaf638ed6
2013-06-07Cleans up mbskip encodingDeb Mukherjee
Refactors mbskip coding to be compatible with coding of the rest of the symbols. Adds forward/backward adaptation and removes a lot of the legacy code. Results: fast50: +1.6% derfraw300: +0.317% Change-Id: I395a2976d15af044d3b8ded5acfa45f6f065f980
2013-06-07Handle partition type coding of boundary blocksJingning Han
The partition types of blocks sitting on the frame boundary are constrained by the block size and the position of each sub-block relative to the frame. Hence we use truncated probability models to handle the coding of such information. 100 frames run: yt 0.138% Change-Id: I85d9b45665c15280069c0234ea6f778af586d87d
2013-06-07Fix segment feature data size.Ronald S. Bultje
Change-Id: I4331cfd99a717938f4f970cad81c468cbf287b00
2013-06-07Fix segment feature data type.Ronald S. Bultje
It has a range of -255,255, so should be int16_t, not int8_t. Change-Id: I5ef4b6aefb6212b0f35f4754f3c4d73fddbc52a0
2013-06-07Don't crash if motion vector ref points to out-of-bounds area.Ronald S. Bultje
This can only happen if partition is partly out-of-frame, in which case the referenced mv is either out-of-frame also (and thus has the same value as an already-read one), or it is actually uninitialized, in which case we don't want to use it. Change-Id: Icf39fa4d987c7abcbebb9bbdcdd6311e8fb9d3c9
2013-06-07Change to segment ref frame feature.Paul Wilkins
Simplify feature to only support a single reference frame instead of a mask. Change-Id: I5dd3a98c7a224aafb35708850ab82e2f220e68fb