Граф коммитов

9620 Коммитов

Автор SHA1 Сообщение Дата
Dmitry Kovalev 76d58ba414 Moving set_rd_speed_thresholds{,_sub8x8} to vp9_rdopt.{h, c}.
Change-Id: I983364b33e8f103b43a0448821e890989176f1cc
2014-04-18 16:34:01 -07:00
Dmitry Kovalev 07f86d0944 Renaming VP9_CONFIG to VP9EncoderConfig.
Change-Id: Id48edd12c6f649c82113128491ef6ea7410e93b2
2014-04-18 11:01:36 -07:00
Dmitry Kovalev 400973c361 Merge "Adding get_pass() function." 2014-04-18 10:38:20 -07:00
James Zern 6b47f84578 Merge "Remove duplicate code in test/webm_video_source.h" 2014-04-18 10:32:11 -07:00
Jingning Han 741c6bb619 Merge "Fix broken encoding process at sub8x8 block size" 2014-04-18 08:46:54 -07:00
Vignesh Venkatasubramanian 4fd6317545 Remove duplicate code in test/webm_video_source.h
Remove duplicate WebM parsing code in test/webm_video_source.h and linking it
against webmdec.c which does the exact same thing.

Change-Id: Ib7152eecde890fca58be42028cab18c9cb54221c
2014-04-18 00:32:30 -07:00
Vignesh Venkatasubramanian d6fe868d87 Remove warn() call in webmdec.c
Remove call to warn() in webmdec.c so that it does not depend on
tools_common.c for compilation.

Change-Id: I2790e837985ce1d84b35f5a20c783d0e6020a9f5
2014-04-17 23:41:24 -07:00
Dmitry Kovalev e62875b5a6 Merge "Removing cq_target_quality from VP9_COMP." 2014-04-17 18:27:19 -07:00
Dmitry Kovalev 69b88df206 Merge "Adding is_best_mode() function." 2014-04-17 18:26:54 -07:00
Jim Bankoski 1355af5c42 Merge "rename labels2mode because it was a terrible name." 2014-04-17 15:42:41 -07:00
Jim Bankoski 209d348c92 Merge "renamed pick_best_mbsegmentation and remove rd_check_segment_txsize" 2014-04-17 15:42:36 -07:00
Jim Bankoski d9db2aa12a Merge "rename mode_index to ref index in vp9_rd_pick_inter_mode_sub_8x8" 2014-04-17 15:42:27 -07:00
Jingning Han a7c69a71d9 Fix broken encoding process at sub8x8 block size
Use the correct buffer to update the coding mode decision for
sub8x8 blocks.

Change-Id: I091ef27d2047eeb8b73ceb7c2c7c45b38ba8c6d5
2014-04-17 15:33:46 -07:00
Dmitry Kovalev 219a006b9c Adding get_pass() function.
Change-Id: I43de248615b79828d5164b670e7358b8a520d075
2014-04-17 15:25:20 -07:00
Jingning Han 0bba4042c2 Merge "Skip fetching original frame pointers for UV in background check" 2014-04-17 15:22:41 -07:00
Dmitry Kovalev 52549b4e78 Adding is_best_mode() function.
Change-Id: Idca7c1cd8a12df465c58b6ba064a99404b3b4bce
2014-04-17 15:09:55 -07:00
James Zern 9b5997fa0a Merge "examples: remove off_t overrides" 2014-04-17 14:58:55 -07:00
Dmitry Kovalev 53dbc7f92c Removing cq_target_quality from VP9_COMP.
Use cq_level (which is identical) from VP9_CONFIG instead.

Change-Id: I1aaf2fcef3d2dbd4577f613d27693ff8a68989fd
2014-04-17 14:57:43 -07:00
Dmitry Kovalev 69009e738e Merge "Replacing cpu_used with speed in VP9_CONFIG." 2014-04-17 14:34:26 -07:00
Jim Bankoski d3ccf55674 rename labels2mode because it was a terrible name.
Change-Id: I2d577d11966fcc5ffaaf0896bf51d18078ad1e9c
2014-04-17 13:48:54 -07:00
Yaowu Xu 8f3943d8ca Merge "Relax the threshold for datarate test by 5%" 2014-04-17 13:47:47 -07:00
Jingning Han 42c1f6dbf4 Skip fetching original frame pointers for UV in background check
The background detection only tracks luma component. This commits
removes the frame buffer pointer retrieval for chroma components.

Change-Id: I098bd2950f5e5829ed5dc2b48568167248da7fad
2014-04-17 11:07:32 -07:00
James Zern e3578af32c examples: remove off_t overrides
this is error prone, int64 will suffice for all cases

Change-Id: I94883f93518cfc356ed57b14dc39d79aebccf47d
2014-04-17 10:47:08 -07:00
Jingning Han 96a381c255 Merge "Remove redundant buffer initialization and mode_info assignments" 2014-04-17 09:36:30 -07:00
Jim Bankoski fba9b09f7e renamed pick_best_mbsegmentation and remove rd_check_segment_txsize
Change-Id: Ia7d33bc3eb595965bccf4b2231df1e3b2a0243c6
2014-04-17 09:11:23 -07:00
Yaowu Xu 6f5e9a784f Relax the threshold for datarate test by 5%
Change-Id: Ibc770df77939a68f9f0d1d78c0edd737b0d398ad
2014-04-17 08:46:50 -07:00
Jim Bankoski 5c28d1a1f0 rename mode_index to ref index in vp9_rd_pick_inter_mode_sub_8x8
Change-Id: I00bceb9de2009963c91e5102564c05c31ac1ad78
2014-04-17 08:40:47 -07:00
Jim Bankoski e890c2579b add a context tree structure to encoder
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-17 07:30:55 -07:00
Dmitry Kovalev 68dcddee7f Merge "Cleaning up vp9_init_second_pass()." 2014-04-16 19:27:49 -07:00
Dmitry Kovalev 2c8c1f5370 Replacing cpu_used with speed in VP9_CONFIG.
Change-Id: I86b85b5c11388e84a48f8936330c0d920df5d1f0
2014-04-16 18:31:42 -07:00
Jingning Han b6ec6930e5 Remove redundant buffer initialization and mode_info assignments
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-16 17:00:27 -07:00
Jingning Han ef2f6dae6f Merge "Enable more precise background detection for partition decision" 2014-04-16 17:00:13 -07:00
Yaowu Xu 447c6433b9 Merge "Prevent reading of uninitialized value" 2014-04-16 15:41:04 -07:00
Dmitry Kovalev 961594c9c5 Cleaning up vp9_init_second_pass().
Change-Id: Ibf360fe0728e07de448e77e3841c49eb25d3ba2d
2014-04-16 15:17:53 -07:00
Paul Wilkins fdc198c9de Merge "Remove old activity masking code." 2014-04-16 14:24:25 -07:00
Dmitry Kovalev 8325464afa Merge "Renaming VP9D_CONFIG to VP9DecoderConfig." 2014-04-16 14:21:32 -07:00
Dmitry Kovalev 833ad89f72 Merge "Adding sad function generation macros." 2014-04-16 14:07:46 -07:00
Jingning Han e88a280573 Enable more precise background detection for partition decision
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-16 14:00:52 -07:00
Yaowu Xu 99230aeb05 Prevent reading of uninitialized value
This commit added a check of reference frame to make sure that pre
buffer pointers are initialized only when necessary and make them
to 0 if ref frame is intra, hence those buffer should never be used.

Change-Id: Ieb474fcd9feb759f02e2f9c282b7348a8fa31117
2014-04-16 13:00:13 -07:00
Yaowu Xu 4ec5569f50 Merge "Add consts in set_fixed_partitioning()" 2014-04-16 12:55:48 -07:00
Yaowu Xu b12014b860 Merge "Refactor common code into a function" 2014-04-16 12:29:12 -07:00
Paul Wilkins e434d08fd9 Remove old activity masking code.
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-16 12:22:41 -07:00
Paul Wilkins 18072d29f9 Merge "Fix rate control bug." 2014-04-16 12:07:42 -07:00
Alex Converse 0d8e4f91a2 Unfork rd_thresh sub8x8.
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-16 10:23:37 -07:00
Paul Wilkins 658daf36fa Fix rate control bug.
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-16 10:13:06 -07:00
Vignesh Venkatasubramanian b59e37e1aa Merge "webmdec: Fix return values for webm_read_frame" 2014-04-16 09:47:24 -07:00
Dmitry Kovalev 92ebef119a Merge "Renaming av_per_frame_bandwidth to avg_frame_bandwidth." 2014-04-15 23:00:16 -07:00
Dmitry Kovalev 617a367c54 Merge "Consistent mode names." 2014-04-15 22:59:37 -07:00
Dmitry Kovalev 4e9529cb24 Renaming av_per_frame_bandwidth to avg_frame_bandwidth.
Just to be consistent with min_frame_bandwidth & max_frame_bandwidth names.

Change-Id: I36702c708cba9ad1a5c36393f37758a2edeadb90
2014-04-15 18:36:01 -07:00
Dmitry Kovalev 003376fc8b Merge "Adding scale_if_required() function." 2014-04-15 17:55:13 -07:00