summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodemv.c
AgeCommit message (Collapse)Author
2013-12-16Merge "Reusing nmv_frame_counts from FRAME_COUNTS in encoder."Dmitry Kovalev
2013-12-11Reusing nmv_frame_counts from FRAME_COUNTS in encoder.Dmitry Kovalev
Change-Id: Iadf2fcc9a5bfa5d02fc166f31963be1cc814831c
2013-12-10Renaming treed_write() to vp9_write_tree().Dmitry Kovalev
Making name consistent with vp9_read_tree(). Change-Id: Ie213ffe0d5345bf3035f28e17f610894fec79205
2013-11-25Moving mv entropy encodings calculation to the encoder side.Dmitry Kovalev
Moved arrays: vp9_mv_joint_encodings vp9_mv_class_encodings vp9_mv_class0_encodings vp9_mv_fp_encodings Change-Id: Iaf5008c579fcbd6d77fdd81d1aef8c71b5f308b7
2013-11-24Cleaning up vp9_write_nmv_probs() function.Dmitry Kovalev
Change-Id: I9af38f1a0e226ee094c17081f044a722ac1caded
2013-11-22Merge "Cleaning up entropy probability update in encoder."Dmitry Kovalev
2013-11-20Adding MV_FP_SIZE constant.Dmitry Kovalev
Change-Id: I98d750ee92ff51fb714980418ea28be3b1d0f3c6
2013-11-19Cleaning up entropy probability update in encoder.Dmitry Kovalev
Change-Id: I94cb9e3d910dff74bf90906dd96e3a4e06ebdbe6
2013-11-19Cleaning up probability/cost functions.Dmitry Kovalev
Change-Id: Ifad4b0e6355ce49fcc6f470becc080e8069452ee
2013-11-05Localizing NEARESTMV special cases in the code.Dmitry Kovalev
Removing special case handling from vp9_tree_probs_from_distribution(), tree_merge_probs(), and vp9_tokens_from_tree_offset() functions. Replacing inter_mode_offset() function with macro INTER_OFFSET which is used now for vp9_inter_mode_tree definition. Change-Id: Iff75a1499d460beb949ece543389c8754deaf178
2013-11-01Removing 'new' probability calculation from convert_distribution().Dmitry Kovalev
We don't have to calculate 'new' probability in convert_distribution() because it is enough to calculate only 'new' counters which could be used to calculate probability if necessary. That's why removing a lot of unused temporary probability arrays and reducing number of get_binary_prob() calls. Change-Id: I4e14eb7203d1ace61bbddefd6b9b6326be83ba63
2013-10-09Deprecate the use of PARTITION_INFO from encoderJingning Han
Use b_mode_info to store the inter prediction mode of sub8x8 block, in replacement of the use of partition_info. Remove redundant buffer update for partition_info. For bus_cif at 2000 kbps, this seem to make speed 0 about 1% faster. Change-Id: Id1b3be45e75a24fb4b42335ac480c23e440978f6
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