summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodemv.c
AgeCommit message (Collapse)Author
2014-04-01Renaming two members in MACROBLOCKD struct.Dmitry Kovalev
Renames: mi_8x8 -> mi mode_info_stride -> mi_stride Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
2014-03-19Moving common code into vp9_update_mv_count().Dmitry Kovalev
Change-Id: I512482853bdf2695fbdf1c705a2ada354ccf76cf
2014-03-07Removing unused active_section global variable.Dmitry Kovalev
Change-Id: Ib8c41829a4b5a618b6bda24d9b7df2d491d0fca0
2014-03-05Merge "Adding vp9_cost.{h, c} files."Dmitry Kovalev
2014-03-05Adding vp9_cost.{h, c} files.Dmitry Kovalev
Change-Id: If90c1bc822873156d4e38fca1938e4907f6c95f0
2014-03-05Renaming NMV_UPDATE_PROB to MV_UPDATE_PROB.Dmitry Kovalev
Change-Id: I7f3bcca103f0b1f6b3c064b61472543de9a8288a
2014-02-26Replacing int_mv with MV and adding const qualifiers.Dmitry Kovalev
Change-Id: I89c37b739493c79044f8c70ae2424aa074eb56c8
2014-02-25Removing redundant vp9_clear_system_state() call.Dmitry Kovalev
This function is already called in vp9_initialize_rd_consts(). Change-Id: I88c0484a7274660287fa25fdf5cdb721d3284e01
2014-01-23Revert "Removing unnecessary vp9_clear_system_state() calls."Yaowu Xu
This reverts commit 36406fdb07dfe08df1d49abe36dbf27469e42213. Change-Id: I0bd31d03ce2a562d0624f2cd67593d0d25df4a54
2014-01-22Removing unnecessary vp9_clear_system_state() calls.Dmitry Kovalev
Change-Id: I597645a15fff2d3a1104861a5c90f64394952e0b
2014-01-08Using VP9_COMMON instead of VP9_COMP.Dmitry Kovalev
Change-Id: If7d3958653104f3e170853e931f8489de3ecf3cc
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