summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2014-04-18Remove ALT_REF_MC_ENABLED and tidy-up ARNR code.Adrian Grange
Change-Id: I922d988486b47f413d11a8eeb38532a484d15c80
2014-04-18Merge "Fix broken encoding process at sub8x8 block size"Jingning Han
2014-04-17Merge "Removing cq_target_quality from VP9_COMP."Dmitry Kovalev
2014-04-17Merge "Adding is_best_mode() function."Dmitry Kovalev
2014-04-17Merge "rename labels2mode because it was a terrible name."Jim Bankoski
2014-04-17Merge "renamed pick_best_mbsegmentation and remove rd_check_segment_txsize"Jim Bankoski
2014-04-17Merge "rename mode_index to ref index in vp9_rd_pick_inter_mode_sub_8x8"Jim Bankoski
2014-04-17Fix broken encoding process at sub8x8 block sizeJingning Han
Use the correct buffer to update the coding mode decision for sub8x8 blocks. Change-Id: I091ef27d2047eeb8b73ceb7c2c7c45b38ba8c6d5
2014-04-17Merge "Skip fetching original frame pointers for UV in background check"Jingning Han
2014-04-17Adding is_best_mode() function.Dmitry Kovalev
Change-Id: Idca7c1cd8a12df465c58b6ba064a99404b3b4bce
2014-04-17Removing cq_target_quality from VP9_COMP.Dmitry Kovalev
Use cq_level (which is identical) from VP9_CONFIG instead. Change-Id: I1aaf2fcef3d2dbd4577f613d27693ff8a68989fd
2014-04-17Merge "Replacing cpu_used with speed in VP9_CONFIG."Dmitry Kovalev
2014-04-17rename labels2mode because it was a terrible name.Jim Bankoski
Change-Id: I2d577d11966fcc5ffaaf0896bf51d18078ad1e9c
2014-04-17Skip fetching original frame pointers for UV in background checkJingning Han
The background detection only tracks luma component. This commits removes the frame buffer pointer retrieval for chroma components. Change-Id: I098bd2950f5e5829ed5dc2b48568167248da7fad
2014-04-17Merge "Remove redundant buffer initialization and mode_info assignments"Jingning Han
2014-04-17renamed pick_best_mbsegmentation and remove rd_check_segment_txsizeJim Bankoski
Change-Id: Ia7d33bc3eb595965bccf4b2231df1e3b2a0243c6
2014-04-17rename mode_index to ref index in vp9_rd_pick_inter_mode_sub_8x8Jim Bankoski
Change-Id: I00bceb9de2009963c91e5102564c05c31ac1ad78
2014-04-17add a context tree structure to encoderJim Bankoski
This patch sets up a quad_tree structure (pc_tree) for holding all of pick_mode_context data we use at any square block size during encoding or picking modes. That includes contexts for 2 horizontal and 2 vertical splits, one none, and pointers to 4 sub pc_tree nodes corresponding to split. It also includes a pointer to the current chosen partitioning. This replaces code that held an index for every level in the pick modes array including: sb_index, mb_index, b_index, ab_index. These were used as stateful indexes that pointed to the current pick mode contexts you had at each level stored in the following arrays array ab4x4_context[][][], sb8x4_context[][][], sb4x8_context[][][], sb8x8_context[][][], sb8x16_context[][][], sb16x8_context[][][], mb_context[][], sb32x16[][], sb16x32[], sb32_context[], sb32x64_context[], sb64x32_context[], sb64_context and the partitioning that had been stored in the following: b_partitioning, mb_partitioning, sb_partitioning, and sb64_partitioning. Prior to this patch before doing an encode you had to set the appropriate index for your block size ( switch statement), update it ( up to 3 lookups for the index array value) and then make your call into a recursive function at which point you'd have to call get_context which then had to do a switch statement based on the blocksize, and then up to 3 lookups based upon the block size to find the context to use. With the new code the context for the block size is passed around directly avoiding the extraneous switch statements and multi dimensional array look ups that were listed above. At any level in the search all of the contexts are local to the pc_tree you are working on (in?). In addition in most places code that used to call sub functions and then check if the block size was 4x4 and index was > 0 and return now don't preferring instead to call the right none function on the inside. Change-Id: I06e39318269d9af2ce37961b3f95e181b57f5ed9
2014-04-16Merge "Cleaning up vp9_init_second_pass()."Dmitry Kovalev
2014-04-16Replacing cpu_used with speed in VP9_CONFIG.Dmitry Kovalev
Change-Id: I86b85b5c11388e84a48f8936330c0d920df5d1f0
2014-04-16Remove redundant buffer initialization and mode_info assignmentsJingning Han
There is no need to initialize source/dst frame buffers at frame level. These will be done at block coding stage. This commit hence removes the redundant operations. Change-Id: I11d9f2556058c6205c8e58ed53e31f78622c41b7
2014-04-16Merge "Enable more precise background detection for partition decision"Jingning Han
2014-04-16Cleaning up vp9_init_second_pass().Dmitry Kovalev
Change-Id: Ibf360fe0728e07de448e77e3841c49eb25d3ba2d
2014-04-16Merge "Remove old activity masking code."Paul Wilkins
2014-04-16Merge "Adding sad function generation macros."Dmitry Kovalev
2014-04-16Enable more precise background detection for partition decisionJingning Han
This commit compares the current original frame to the previous original frame at 64x64 block level and decides if the entire block belongs to background area. If it is in the background area, skip non-RD partition search and copy the partition types of the collocated block in the previous frame. For vidyo1 in the rtc set, this makes the speed -5 coding speed about 8% faster. The overall compression performance is down by 1.37% for rtc set. Change-Id: Iccf920562fcc88f21d377fb6a44c547c8689b7ea
2014-04-16Merge "Add consts in set_fixed_partitioning()"Yaowu Xu
2014-04-16Merge "Refactor common code into a function"Yaowu Xu
2014-04-16Remove old activity masking code.Paul Wilkins
Delete code relating to the old VP8_TUNE_SSIM flag as this code does not currently work and is largely made redundant in VP9 by the various AQ modes. Change-Id: I71f28e1f680573d296422254489000678552b17b
2014-04-16Merge "Fix rate control bug."Paul Wilkins
2014-04-16Unfork rd_thresh sub8x8.Alex Converse
Remove duplicate rd_thresh code introduced when vp9_rd_pick_inter_mode_sub8x8() was forked from vp9_rd_pick_inter_mode_sb(). Change-Id: I3c9b7143d182e1f28b29c16518eaca81dc2ecfed
2014-04-16Fix rate control bug.Paul Wilkins
Fix rate control bug whereby the rate factor heuristics were being updated on arf overlays causing a rate surge for a few frames followed by a corrective drop. This fix eliminates many of the overshoot problems that we were seeing on hard clips (even without applying stricter vbr rate control) and also helps quality on almost all clips with some hard clips improving by >5%. Overall quality results measured at speed 2. Derf +1.78% opsnr , +2.44% SSIM Stdhd +2.41% opsnr, +2.85% SSIM Change-Id: I2369df6295c2705963fa6307877f6acb304bcc39
2014-04-15Merge "Renaming av_per_frame_bandwidth to avg_frame_bandwidth."Dmitry Kovalev
2014-04-15Merge "Consistent mode names."Dmitry Kovalev
2014-04-15Renaming av_per_frame_bandwidth to avg_frame_bandwidth.Dmitry Kovalev
Just to be consistent with min_frame_bandwidth & max_frame_bandwidth names. Change-Id: I36702c708cba9ad1a5c36393f37758a2edeadb90
2014-04-15Merge "Adding scale_if_required() function."Dmitry Kovalev
2014-04-15Adding sad function generation macros.Dmitry Kovalev
Change-Id: If6f013835b69ae61b0a0c6006fe0955303f579a5
2014-04-15Merge "Adding get_search_range() function."Dmitry Kovalev
2014-04-15Merge "Cleaning up vp9_rc_compute_frame_size_bounds()."Dmitry Kovalev
2014-04-15Merge "Cleaning up vp9_twopass_worst_quality()."Dmitry Kovalev
2014-04-15Adding scale_if_required() function.Dmitry Kovalev
Change-Id: I87819fed5aebb6ffe2f4d4655df226235a3d21cb
2014-04-15Adding get_search_range() function.Dmitry Kovalev
Change-Id: I988eea8f78f71135b914661420c5c75674e5c010
2014-04-15Add consts in set_fixed_partitioning()Yaowu Xu
Change-Id: Ib8c1b3b0a5a5689d3261dc822a69e9d473b89be1
2014-04-15Merge "Moving frame_frags field from VP9Common to VP9_COMP."Dmitry Kovalev
2014-04-15Merge "Using anonymous enum instead of macros."Dmitry Kovalev
2014-04-15Merge "Adding get_skip_encode_frame()."Dmitry Kovalev
2014-04-15Refactor common code into a functionYaowu Xu
Change-Id: Id156af5662ebe6fbe1cab636564f5f4bedb85ab0
2014-04-14Merge "Removing unused vp9_mcomp_x86.h file."Dmitry Kovalev
2014-04-14Merge "Replacing int_mv with MV."Dmitry Kovalev
2014-04-14Merge "Remove vp9_ prefix on static inline function."Paul Wilkins