summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodeframe.c
AgeCommit message (Collapse)Author
2014-04-11Add a few "const"Yaowu Xu
Change-Id: I258351fc1fff70ff2e9fa4845e575b0bb6a423d1
2014-04-11Merge "Replace the call to set_offsets()"Yaowu Xu
2014-04-11Replace the call to set_offsets()Yaowu Xu
With a more approriate one vp9_setup_src_planes() as only src buffer pointers need to be initialized here. Change-Id: I40fac4d8b2d39eb7d0c65b9b6afab45138a13936
2014-04-11Adding RD_OPT struct.Dmitry Kovalev
Change-Id: I2d1b5c1481aefe226082e1f096ca9edd340d4d31
2014-04-10Merge "Define var threshold as unsigned int to match the type"Yunqing Wang
2014-04-10Merge "Regrouping code in rd_pick_sb_modes()."Dmitry Kovalev
2014-04-10Merge "Cleaning up get_sby_perpixel_{, diff_}variance()."Dmitry Kovalev
2014-04-10Define var threshold as unsigned int to match the typeYunqing Wang
Minor change to use matching type in comparison. Change-Id: I670cae2d584918c67c1af791a797629f392f599e
2014-04-10Merge "Minor code cleanup"Yunqing Wang
2014-04-09Merge "Revert "Converting set_prev_mi() to get_prev_mi().""Dmitry Kovalev
2014-04-09Revert "Converting set_prev_mi() to get_prev_mi()."Dmitry Kovalev
This reverts commit 22a3e30790d141033778e430a47ba7d558237362 Change-Id: I460d905edf5fb2006da58c18fbe02c04d0c631bb
2014-04-09Regrouping code in rd_pick_sb_modes().Dmitry Kovalev
Change-Id: I51c71dd4aee6592fb90feebcf864bccc87dacec6
2014-04-09Minor code cleanupYunqing Wang
Cleanup. Change-Id: I54d989e24b35323cda7290654e425565d5c9ea2d
2014-04-09Fixing broken build.Dmitry Kovalev
Change-Id: I9b8f9a3f4fa9d48695149dd68ecb5e8d84accafe
2014-04-09Merge "Converting set_prev_mi() to get_prev_mi()."Dmitry Kovalev
2014-04-09Merge "Use source frame difference to make partition decision"Yunqing Wang
2014-04-09Merge "Select prediction filter type in non-RD mode decision"Jingning Han
2014-04-08Cleaning up get_sby_perpixel_{, diff_}variance().Dmitry Kovalev
Change-Id: Icbfeb04647d654253866d290abd4775a877b4f61
2014-04-08Merge "Cleaning up encode_frame_internal()."Dmitry Kovalev
2014-04-08Use source frame difference to make partition decisionYunqing Wang
Calculate the difference variance between last source frame and current source frame. The variance is calculated at 16x16 block level. The variances are compared to several thresholds to decide final partition sizes. An adaptive strategy is implemented to decide using SOURCE_VAR_BASED_PARTITION or FIXED_PARTITION based on motions in the video. The switching test is done once every search_type_check_frequency frames. The selection of source_var_thresh needs to be investigated further later. RTC set Borg test showed 0.424% overall psnr gain, and 0.357% ssim gain. For clips with large enough static area, the encoding speedup is around 2% to 15%. Change-Id: Id7d268f1d8cbca7fb8026aa4a53b3c77459dc156
2014-04-08Select prediction filter type in non-RD mode decisionJingning Han
This commit allows the non-RD mode decision flow to select prediction filter type in NEWMV mode. It provides 8.14% compression performance gains in both settings of AQ=0 and 3. The current speed impact is about 5% to 10% slower. Change-Id: Id66ecebf77abd8f90fb3f6a066c0e8dfb4bf1c42
2014-04-07Converting set_prev_mi() to get_prev_mi().Dmitry Kovalev
Change-Id: Iad4002d7aecaae0e25d88e286bacde7e6cd7264f
2014-04-07Cleaning up encode_frame_internal().Dmitry Kovalev
Change-Id: I9c5f7edc2d5d1ec5aee396b87bdfc99ee21c435a
2014-04-07Add constrained-copy partition to speed features.Marco Paniconi
Copy up to a certain bsize, otherwise set to a fixed bsize. This helsp to reduce artifact near moving boundary caused by full partition copy without checking motion of super-block. This artifact can occur at speeds 3,4 in real-time mode. Issue: https://code.google.com/p/webm/issues/detail?id=738. Change-Id: I05812521fd38816a467f72eb6a951cae4c227931
2014-04-07Merge "General vp9_encodeframe.c cleanup."Dmitry Kovalev
2014-04-07Merge "Removing unused seg0_* vars."Dmitry Kovalev
2014-04-04General vp9_encodeframe.c cleanup.Dmitry Kovalev
Change-Id: Ie364fe837002de96923da2c1c0ff8bb4b8d469a7
2014-04-03Merge "Removing interp_kernel from MACROBLOCKD."Dmitry Kovalev
2014-04-03Removing interp_kernel from MACROBLOCKD.Dmitry Kovalev
Now interp_kernel is obtained when it is really required (based on mbmi->interp_filter value). Change-Id: I4c7a93c179d1045eba16e7526c293d02c9b8b47e
2014-04-03Fix complexity Aq mode.Paul Wilkins
This was broken by change Icc4b66f3935fad5ec4516a4d57e843d12c365e64 Change-Id: I49e3fc525664eb7a433f55f76b8f8628fe251eab
2014-04-02Removing unused seg0_* vars.Dmitry Kovalev
Change-Id: I87b0668e23c54429a06bba85437606c4780be9ba
2014-04-02Rate ctrl changes to track target bitrates closerDeb Mukherjee
Turns off the DISABLE_RC_LONG_TERM_MEM macro and makes other changes in the way the bits are updated, to make 2-pass rate control track target bitrates closer. Change-Id: I5f3be4b11c2908e6a9a9a1dd4fcf4e65531c44d8
2014-04-01Clearing all encoder counts with single vp9_zero() call.Dmitry Kovalev
Change-Id: I4341d16ef83acd1cc9e55f7c5eff4af921bf57d4
2014-04-01Renaming two members in MACROBLOCKD struct.Dmitry Kovalev
Renames: mi_8x8 -> mi mode_info_stride -> mi_stride Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
2014-04-01Merge "Common configuration for MACROBLOCKD struct."Dmitry Kovalev
2014-04-01Merge "Propagate active map state."Alex Converse
2014-04-01Common configuration for MACROBLOCKD struct.Dmitry Kovalev
Change-Id: Ie2ea9dd8bd338cc9fe12ca9033df64f7644c68b3
2014-03-31Propagate active map state.Alex Converse
This fixes active map for non-rd realtime speeds. Change-Id: I1bf416de3f7ef2e5dd2eabde052cce3c0683a52c
2014-03-31Apply finer quantizer to partition search frames in non-RD flowJingning Han
This commit optimizes the bit allocation for the non-RD coding flow. It applies slightly better quantizer to the frames, where all blocks run a non-RD partition search. Such frames typically have better rate-distortion trade off, thus improving the reconstruction quality for next few frames reference at reasonably low increment in rate cost. The coding performance for rtc set at speed -5 with error-resilient tuned on and rate control set as cbr is improved by 19.58%. It improved the coding speed by about 10% for a portion of local test clips. Change-Id: I9d56696cd4359dc8136ca10aff10fff05aaa2686
2014-03-27Fix segment_id assignment in update_state_rt for AQ modeJingning Han
Properly obtain and buffer the segment_id in non-RD mode information update process. Change-Id: I43230001872f6a986d12c0d94e98fdec0db3be2c
2014-03-26Move aq_mode=2 (complexity_aq) to separate file.Marco Paniconi
Change-Id: Iffa45b9b04196c1ded6037622a8644a2500a62de
2014-03-26Merge "Motion referenced partition search for non-RD coding flow"Jingning Han
2014-03-26Merge "Removing prev_mi_8x8 from MACROBLOCKD."Dmitry Kovalev
2014-03-26Motion referenced partition search for non-RD coding flowJingning Han
This commit enables the non-RD mode decision coding flow to adaptively apply partition search in non-refresh frame, when the collocated block in previous frame suggests there might be a motion activity. It refactors the update_state_rt() function to support buffer swap of mode_info struct, thereby unifying the encoding stage across various non-RD coding modes. It provides 5% compression performance gains in speed -6 for rtc test set, at about 12% speed slow down. Change-Id: Iefa374aed5a11c4b7ff9a3ed36a98ea8bd184edb
2014-03-26Encapsulating CYCLIC_REFRESH struct into .c file.Dmitry Kovalev
Change-Id: I32695ad703dcbbbbf5f122b403f3d3120a0be366
2014-03-26Removing prev_mi_8x8 from MACROBLOCKD.Dmitry Kovalev
Change-Id: I32beb5f18c10b5771146c55933b5555487f53633
2014-03-26Merge "Added a speed feature "allow_skip_recode""Yaowu Xu
2014-03-26Merge "Apply early termination in non-RD partition search"Jingning Han
2014-03-26Merge "Fix to cylcic refresh: use correct/chosen mode for update_segment."Marco Paniconi
2014-03-25Fix to cylcic refresh: use correct/chosen mode for update_segment.Marco Paniconi
Fix so that vp9_update_segment_aq() will use the correct (i..e, chosen) encoding mode (from ctx struct) in update_state. Change-Id: Icc4b66f3935fad5ec4516a4d57e843d12c365e64