summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodemv.c
AgeCommit message (Collapse)Author
2013-10-04cpplint issues vp9_encodemv.cJim Bankoski
Change-Id: Icda1d2d7cbfb176884fa6c7d9366a2d60e2994e9
2013-09-24Cleaning up vp9_update_nmv_count function.Dmitry Kovalev
Using best_mv[2] array instead of two separate variables. Change-Id: Iefa0a41f5c42c42f2c66cef26750da68405f0f25
2013-09-11New mode_info_context storage -- undo revertScott LaVarnway
mode_info_context was stored as a grid of MODE_INFO structs. The grid now constists of pointers to MODE_INFO structs. The MODE_INFO structs are now stored as a stream (decoder only), eliminating unnecessary copies and is a little more cache friendly. Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
2013-09-09Revert "New mode_info_context storage"James Zern
This reverts commit dae17734ece414091ba1184f7becd0aa6c0004f1 Encode crashes, leaks and increases integer overflow errors. Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2
2013-09-06New mode_info_context storageScott LaVarnway
mode_info_context was stored as a grid of MODE_INFO structs. The grid now constists of a pointer to a MODE_INFO struct and a "in the image" flag. The MODE_INFO structs are now stored as a stream, eliminating unnecessary copies and is a little more cache friendly. For the test clips used, the decoder performance improved by ~4.3% (1080p) and ~9.7% (720p). Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p) and 5.9% (720p). Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
2013-09-04faster accounting of inc_mvJim Bankoski
Moves counting of mv branches to where we have a new mv, instead of after the whole frame is summed. Change-Id: I945d9f6d9199ba2443fe816c92d5849340d17bbd
2013-08-23cosmetics: strip 'VP9_' from defines in vp9 only codeJames Zern
Change-Id: I481d9bb2fa3ec72b6a83d5f04d545ad8013f295c
2013-08-07Merge "Removing NMS_STATS defines."Dmitry Kovalev
2013-08-05Replacing long block size enum values with shorter ones (2).Dmitry Kovalev
Change-Id: I428c4d42212b757112e3acfe5b81314cfbb5fd6b
2013-08-02Removing NMS_STATS defines.Dmitry Kovalev
Change-Id: Iabab0e59042a33456df1d449c0d0f01debc00c7c
2013-07-23Removing LOW_PRECISION_MV_UPDATE define.Dmitry Kovalev
Change-Id: I78d16ee758e1fae0200b746f00031f6d9c6d6ce7
2013-07-23clean up bw, bhJim Bankoski
many structures use bw and bh and they have different meanings. This cl attempts to start this clean up and remove unneccessary 2 step look up log and then shift operations... also removed partition type multiple operation code in bitstream.c. Change-Id: I7e03e552bdfc0939738e430862e3073d30fdd5db
2013-07-19Reworked the auto_mv_step_size speed featureDeb Mukherjee
This patch modifies the auto_mv_step_size speed feature to use a combination of the maximum magnitude mv from the last inter frame, and the maximum magnitude mv for the two reference mvs with the same reference. For arf frames, the max mav step for the resolution is used. The bounds therefore are slightly tighter. The feature is made a speed 1 feature. Rebased. Results (when this feature is turned on over speed 0): derfraw300: -0.046% psnr, about 5+% speedup (tested on football: goes from 4m30.760s to 4m17.410s). Change-Id: If492797a61b0b4b3e58c0b8f86afb880165fc9f6
2013-07-18Remove motion vectors from PARTITION_INFO.Ronald S. Bultje
The same information already exists in union b_mode_info. Change-Id: Iac5086b99a3c3cc270380138062bb693e58f9e6d
2013-07-17Merge changes Ieffea49e,Idf610746Dmitry Kovalev
* changes: Removing two unused arguments from vp9_inc_mv signature. Changing signature of vp9_get_pred_probs_tx_size.
2013-07-16Removing two unused arguments from vp9_inc_mv signature.Dmitry Kovalev
Change-Id: Ieffea49eb7a5e5092f21f8694c546aff69b07c6d
2013-07-16Removing MV_GROUP_UPDATE define and corresponding code.Dmitry Kovalev
Change-Id: I4884cdc2557d25d50c7c4f7e19b1ad8bdb93cd63
2013-07-11Remove print_nmvcountsJohann
For some reason iOS builds take a really long time to sort this function out. It's not used anywhere so remove it. Change-Id: Ia5c8513a0d9c7eb32641cca58ca1c1113e2dd9f4
2013-06-26Auto adapt step size feature.Paul Wilkins
Also tweaks to other features and experiments with what is on and off at different speed settings. Change-Id: I3e1d0be0d195216bf17c2ac5df67f34ce0b306b2
2013-06-25Merge "Move vp9_counts_to_nmv_context to encoder"John Koleszar
2013-06-25Renaming "nmv" to "mv".Dmitry Kovalev
Change-Id: I8299f55c3b930221e52c2237f2ddea65b94fd33b
2013-06-24Move vp9_counts_to_nmv_context to encoderJohn Koleszar
This function only used from within vp9_encodemv.c. Change-Id: Ib3fc7c30b1e2d27321397ac474cbc8976bc1f4b1
2013-06-18Renaming 'nmv' to 'mv' for several functions.Dmitry Kovalev
Change-Id: I183a38997a9d01e4a1b869e92509f6915216fa09
2013-06-06Change ref frame coding.Ronald S. Bultje
Code intra/inter, then comp/single, then the ref frame selection. Use contextualization for all steps. Don't code two past frames in comp pred mode. Change-Id: I4639a78cd5cccb283023265dbcc07898c3e7cf95
2013-05-26Remove splitmv.Ronald S. Bultje
Also do per-partition motion vector referencing in <sb8x8 partitions, and adjust mvref finding for sub8x8 partitions. Change-Id: Id3ed1ed4d2a8910d11d327db6cc63b8eb79f941f
2013-05-23Merge 4x4 block level partition into codebaseJingning Han
Move 4x4/4x8/8x4 partition coding out of experimental list. This commit fixed the unit test failure issues. It also resolved the merge conflicts between 4x4 block level partition and iterative motion search for comp_inter_inter. Change-Id: I898671f0631f5ddc4f5cc68d4c62ead7de9c5a58
2013-05-19Enable bit-stream support to 8x4 and 4x8 partitionJingning Han
The recursive partition type search is enabled down to 4x4, 4x8 and 8x4, followed by the corresponding rate-distortion optimization for the per-partition encoding mode decisions. The bit-stream writing/reading synchronized in supporting the rectangular partition of 8x8 block. This provides above 1% coding performance gains on derf. To do next: 1. re-design the rate-distortion loop for inter prediction below 8x8. 2. re-design the rate-distortion loop for intra prediction below 4x4. 3. make the loop-filter aware of rectangular partition of 8x8 block. 4. clean the unused probability models. 5. update default probability values. Change-Id: Idd41a315b16879db08f045a322241f46f1d53f20
2013-05-17Make nmv_count update 4x8/8x4 awareJingning Han
This commit modifies the vp9_update_nmv_count_ to support rectangular partition of 8x8 block. Change-Id: I3e742f80f18f95b031c1c785d756d9365503c24c
2013-05-15Combining integer and fractional parts of mvs for entropy coding.Dmitry Kovalev
Combining encode_nmv_component with encode_nmv_component_fp and read_nmv_component with read_nmv_component_fp. Bitstream is slightly changed (only the order of bits), here are the results on test sets: stdhd: +0.047, yt: -0.038, derf: +0.001, hd: -0.011. Change-Id: I1be312e976796df78ca63368702d0ee19f2b8c50
2013-04-17Changing argument type of vp9_get_mv_joint from MV to MV*.Dmitry Kovalev
Change-Id: I28c3026946fc1bde7074e6e0198da93bb0d75dfe
2013-04-15Adding mv_joint_vertical and mv_joint_horizontal functions.Dmitry Kovalev
Change-Id: Ieaec2c48f3752b8558ba051caaf4ba2ab0e9e84d
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
2012-11-29more unused variables.Jim Bankoski
Change-Id: Ibe11e9275949b26a77fa9c8ac2e7c356ae533d5d
2012-11-28fixed includes to be fully specifiedJim Bankoski
Change-Id: Ia1cce221f8511561b9cbd8edb7726fbc286ff243
2012-11-27Add vp9_ prefix to all vp9 filesJohn Koleszar
Support for gyp which doesn't support multiple objects in the same static library having the same basename. Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc