summaryrefslogtreecommitdiff
path: root/vp9/common
AgeCommit message (Collapse)Author
2013-04-15Removing TRUE and FALSE macro definitions.Dmitry Kovalev
Using regular 0 and 1 constants now. Change-Id: Ie763503cbb727847cc8f1d6506cd6f2ee607f056
2013-04-15Merge "Add rectangular block size variance/sad functions." into experimentalRonald S. Bultje
2013-04-15Add rectangular block size variance/sad functions.Jingning Han
With this, the RD loop properly supports rectangular blocks. Change-Id: Iece79048fb4e84741ee1ada982da129a7bf00470
2013-04-15Merge "Reorder enum i4X4 predcition modes" into experimentalYaowu Xu
2013-04-15Merge "Initial addition of multiple ARF frames" into experimentalAdrian Grange
2013-04-15Initial addition of multiple ARF framesAdrian Grange
This is work-in-progress, it implements multiple ARF encoding behind an experimental flag. It adds the ability to insert multiple ARF frames into a single ARF group. This patch implements the reordering of the coded frames, and implements a fixed-length coding pattern. It applies a fixed quantizer strategy based on where the frame is in the coding sequence. Further work to modify the rate control strategy is ongoing and will be submitted via a set of future patches. In this first step, each ARF group is recursively bisected and an ARF frame added at that position in the sequence. The recursion continues until ARF frames are within MIN_GF_INTERVAL frames. The code sits behind the "multiple-arf" experimental flag ("CONFIG_MULTIPLE_ARF"). The experimental flag "oneshotq" ("CONFIG_ONESHOTQ") also needs to be enabled for this patch to work correctly. Change-Id: Ie473b05ebb43ac473c0cfb659b2b8042823085e2
2013-04-14Merge "Encoder code cleanup." into experimentalDmitry Kovalev
2013-04-14Merge "Intra code cleanup." into experimentalDmitry Kovalev
2013-04-14Merge "Renaming vp9_token_struct to vp9_token and removing previous ↵Dmitry Kovalev
typedef." into experimental
2013-04-12Intra code cleanup.Dmitry Kovalev
Removing redundant code. Change-Id: I71bfc40a1fb06d8e3149ed5400aa4dfd87a51aac
2013-04-12Enable inter predictor for rectangular block sizeJingning Han
Combine superblock inter predictors into a unified function that allows configurable block width and height. The inter predictions of block sizes smaller than 16x16 are handled differently. To be continued on merging them later. Change-Id: I14075959dd5e221f00c205c99ca35c1c31ef728e
2013-04-12Reorder enum i4X4 predcition modesYaowu Xu
To match the order of directional intra prediction modes for larger blocks, also renamed the i4x4 prediction modes to mirror the larger variants. Change-Id: I77cea4d0add6c7758460bf9c7a2fe59aca601f0b
2013-04-12Rename B_PRED to I4X4_PREDYaowu Xu
So it is consistent with I8x8_PRED. Change-Id: Iefa65124b2419690d83e526c611129c0ede29d11
2013-04-11Make intra predictor support rectangular blocksJingning Han
The intra predictor supports configurable block sizes. It can handle intra prediction down to 4x4 sizes, when enabled in BLOCK_SIZE_TYPE. Change-Id: I7399ec2512393aa98aadda9813ca0c83e19af854
2013-04-11Merge "Remove unused vp9_recon_mb{y,uv}_s" into experimentalJohn Koleszar
2013-04-11Merge "WIP: removing predictor buffer usage from decoder" into experimentalScott LaVarnway
2013-04-11Merge "Remove unused macroblock versions of reconstruction functions." into ↵Ronald S. Bultje
experimental
2013-04-11Merge "Turning model-based updates on with modelcoefprob" into experimentalDeb Mukherjee
2013-04-11Turning model-based updates on with modelcoefprobDeb Mukherjee
This patch changes the default with the modecoefprob expt to use mode-based forward updates with one-node pegged modeling. The maximum difference with fully trained tables is now less that 0.1%. Change-Id: I06b44322e10c6703f93f3c1d48d973b1136a0618
2013-04-11Merge "Remove unused vp9 ppc files" into experimentalJohn Koleszar
2013-04-11Remove unused vp9_recon_mb{y,uv}_sJohn Koleszar
These functions now are handled through the common superblock code. Change-Id: Ib6688971bae297896dcec42fae1d3c79af7a611c
2013-04-11WIP: removing predictor buffer usage from decoderScott LaVarnway
This patch will use the dest buffer instead of the predictor buffer. This will allow us in future commits to remove the extra mem copy that occurs in the dequant functions when eob == 0. We should also be able to remove extra params that are passed into the dequant functions. Change-Id: I7241bc1ab797a430418b1f3a95b5476db7455f6a
2013-04-11Merge changes I6721e42f,Iaffb1ae8 into experimentalJohn Koleszar
* changes: tokenize: convert skippable functions Add foreach_transformed_block
2013-04-11Remove unused vp9 ppc filesJohn Koleszar
Change-Id: I3fe8c529ddec658cfa2376cfc05d9c8a5366e978
2013-04-11Renaming vp9_token_struct to vp9_token and removing previous typedef.Dmitry Kovalev
Change-Id: If69c3d795f87af5cc7bfdfe70ef733c41b4d55c8
2013-04-11tokenize: convert skippable functionsJohn Koleszar
Use the common block walker to calculate skippability. Change-Id: I6721e42f065df237426c91c1d871ec226ba7cdcb
2013-04-11Remove unused macroblock versions of reconstruction functions.Ronald S. Bultje
More specifically, remove vp9_quantize_mb*, vp9_optimize_mb*, vp9_inverse_transform_mb* and vp9_transform_mb*. Instead, use the generic _sb* functions that take a size argument, and call them with BLOCK_SIZE_MB16X16. Change-Id: I33024afea95d3a23ffbc1df7da426e4645110f29
2013-04-11Add foreach_transformed_blockJohn Koleszar
Adds a framework for doing arbitrary functions on each transform- sized block in the mb/sb. Change-Id: Iaffb1ae8db5ff2abfa8720c608c78376b42f2096
2013-04-11Remove vp9_reset_mb_tokens_contextJohn Koleszar
Use sb-common version instead. Change-Id: If2552b5a39fd2e5272f66a41c5667dda85fd3939
2013-04-11Encoder code cleanup.Dmitry Kovalev
Removing duplicated code from vp9_encodemv.c and reusing ROUND_POWER_OF_TWO macro definitions. Change-Id: I9caf0c17f761ada7905cb99a3e2a31f871fef0f9
2013-04-10Make usage of sb_type independent of literal values.Ronald S. Bultje
Change-Id: I0d12f9ef9d960df0172a1377f8e5236eb6d90492
2013-04-10Make RD superblock mode search size-agnostic.Ronald S. Bultje
Merge various super_block_yrd and super_block_uvrd versions into one common function that works for all sizes. Make transform size selection size-agnostic also. This fixes a slight bug in the intra UV superblock code where it used the wrong transform size for txsz > 8x8, and stores the txsz selection for superblocks properly (instead of forgetting it). Lastly, it removes the trellis search that was done for 16x16 intra predictors, since trellis is relatively expensive and should thus only be done after RD mode selection. Gives basically identical results on derf (+0.009%). Change-Id: If4485c6f0a0fe4038b3172f7a238477c35a6f8d3
2013-04-10Merge "Remove obselete code" into experimentalYaowu Xu
2013-04-10Remove obselete codeYaowu Xu
The strategy to run fast loop filter picking for encoder speed-up should be revisited at a later stage. Change-Id: I3b75e06d767cff41be952a42e63b3292f4eab996
2013-04-10Merge "Fixing upper case names." into experimentalDmitry Kovalev
2013-04-10Merge "Cleanup of set_offsets function." into experimentalDmitry Kovalev
2013-04-10Merge "Make SB coding size-independent." into experimentalRonald S. Bultje
2013-04-09Merge "Don't use BLOCKD in vp9_invtrans.c." into experimentalRonald S. Bultje
2013-04-09Make SB coding size-independent.Ronald S. Bultje
Merge sb32x32 and sb64x64 functions; allow for rectangular sizes. Code gives identical encoder results before and after. There are a few macros for rectangular block sizes under the sbsegment experiment; this experiment is not yet functional and should not yet be used. Change-Id: I71f93b5d2a1596e99a6f01f29c3f0a456694d728
2013-04-09Merge "detokenize: use consistent structure for all block sizes" into ↵John Koleszar
experimental
2013-04-09Fixing upper case names.Dmitry Kovalev
Renaming Y1dequant to y_dequant, UVdequant to uv_dequant, QIndex to qindex. Change-Id: I1c356e5f886deb3f8807dc212de9799b55b09d58
2013-04-09Cleanup of set_offsets function.Dmitry Kovalev
Adding ALLOWED_REFS_PER_FRAME constant instead of hard coded number 3. Change-Id: I46146aa837896936f920c748c7d4aa4c27f026e4
2013-04-09Merge "Clamp inferred motion vectors only" into experimentalJingning Han
2013-04-08detokenize: use consistent structure for all block sizesJohn Koleszar
Restructure the code to avoid the majority of per-block-size switches, code duplication, etc. All block types (mb/sb32/sb64) can be handled by the same code. Change-Id: I4022718d66e31a15a7074e43f3b98cd0a5124ea7
2013-04-08Don't use BLOCKD in vp9_invtrans.c.Ronald S. Bultje
Change-Id: I40524170334109e2864b06e3c73c8b34e5aa8b0f
2013-04-08Clamp inferred motion vectors onlyJingning Han
Clamp only the motion vectors inferred from neighboring reference macroblocks. The motion vectors obtained through motion search in NEWMV mode are constrained during the search process, which allows a relatively larger referencing region than the inferred mvs. Hence further clamping the best mv provided by the motion search may affect the efficacy of NEWMV mode. Synchronized the decoding process. The decoded mvs in NEWMV modes should be guaranteed to fit in the effective range. Put a mv range clamping function there for security purpose. This improves the coding performance of high motion sequences, e.g., derf set: foreman 0.233% husky 0.175% icd 0.135% mother_daughter 0.337% pamphlet 0.561% stdhd set: blue_sky 0.408% city 0.455% also saw sunflower goes down by -0.469%. Change-Id: I3fcbba669e56dab779857a8126a91b926e899cb5
2013-04-08Fix typo which breaks 4x4 splitmv compound prediction RD code.Ronald S. Bultje
0.15% quality increase on derf, particularly noticeable on hard clips at the higher bitrate end. Change-Id: I02415a96eb9bbc361cba923069625fae71844bc9
2013-04-05Merge "Small cleanup inside setup_loopfilter function." into experimentalJohn Koleszar
2013-04-05Merge "Segmentation code cleanup." into experimentalJohn Koleszar
2013-04-05Merge changes Ibbfa68d6,Idb76a0e2 into experimentalJohn Koleszar
* changes: Move EOB to per-plane data Move qcoeff, dqcoeff from BLOCKD to per-plane data