Commit Graph

606 Commits

Author SHA1 Message Date
Dmitry Kovalev
092f32cf78 Merge "Combining if-else branches from different conditions." 2014-02-23 08:28:43 -08:00
Jingning Han
1fc0bde675 Refactor selected partition size coding for rtc
This commit makes a refactoring of the rtc_use_partition. It allows
the encoder to take a preferred block size for non-RD mode decision.
The boundary blocks are handled such that smaller block sizes that
fit in the boundary size will be used instread.

In rtc mode, the coding performance of speed -6 for pedestrian_1080p
goes from
158980 b/f, 38.934 dB, 22721 ms to
159008 b/f, 40.064 dB, 23721 ms.

For rtc set, the speed -6 compression performance is improved by
26%. Still about 2dB behind speed -5 at this point.

Change-Id: If0944f0880eaf1ad340bc325d97cea8d0f9dd53f
2014-02-21 14:49:57 -08:00
Jingning Han
65bcabbe8c Merge "Use MI_BLOCK_SIZE in block coding loop" 2014-02-20 14:29:30 -08:00
Jingning Han
2aac18a4a6 Merge "Rework non-RD mode decision coding flow" 2014-02-20 14:28:57 -08:00
Alex Converse
1d34991139 Merge "Only track mode_chosen_counts if CONFIG_INTERNAL_STATS." 2014-02-20 12:03:48 -08:00
Tom Finegan
595985334e vp9_encodeframe.c: Silence rdmult assignment warning with a cast.
Cast result of round() to int.

Change-Id: Ib708fddfadde4c765001ce9723fda113fd0f4bf6
2014-02-20 12:01:47 -08:00
Tom Finegan
15e95086e2 vp9_encodeframe.c: Silence totalrate assignment warning with a cast.
Cast result of round() to int.

Change-Id: I4982886ad4e7657b4c40d21bd850d31690a68c28
2014-02-20 11:53:11 -08:00
Alex Converse
657519192e Only track mode_chosen_counts if CONFIG_INTERNAL_STATS.
Change-Id: Ia9252ad0caa4d2bda529a3fe93efcb31e7eb2da0
2014-02-19 18:52:04 -08:00
Jingning Han
93ba687499 Use MI_BLOCK_SIZE in block coding loop
Change-Id: Ia70057e11c9b3d9d4bea6fbdd08839334ed02dce
2014-02-19 11:17:12 -08:00
Jingning Han
b99ed1ec5a Rework non-RD mode decision coding flow
In the first coding run of a 64x64 block, check the coding mode
for each 8x8 block. Will need a second annealing stage to decide
the partition size to be encoded.

Change-Id: Ida9417805ff3358979b0c0429d4099c023c88866
2014-02-19 11:13:05 -08:00
Adrian Grange
9b9c33a2b8 Remove comment from calls to vp9_clear_system_state.
Removed the comment "// __asm emms;" from all calls
to vp9_clear_system_state.

Change-Id: Ib4dae69c1cdf3f185b04184a870cd70c4d703f10
2014-02-18 15:43:42 -08:00
Jingning Han
e3178d0c1c Merge "Enable sub-pixel motion search for rtc mode" 2014-02-18 14:52:13 -08:00
Jingning Han
f11a85127b Merge "Initialize internal buffer pointers in rtc mode" 2014-02-18 14:51:38 -08:00
Jingning Han
6478673933 Enable sub-pixel motion search for rtc mode
Run sub-pixel motion search when NEWMV gives lower rate-distortion
cost. This improves coding performance of derf set by 8%, std-hd by
2.2%.

Change-Id: Ife50f7fda8463927784fe59a41cc439c833e941a
2014-02-18 12:07:55 -08:00
Yaowu Xu
8d646becb6 Merge "Removed the reset of mode_info from previous frame" 2014-02-13 17:03:50 -08:00
Yaowu Xu
896d79a57e Removed the reset of mode_info from previous frame
Prior to this commit, both encoder and decoder reset mode/mv info from
previous frame in error resilient mode to ensure bitstreams are able to
decode when there is loss of frame in decoder side. However, this is
not necessary. This commit changed to remove the reset, so encoder can
continue to use mode/mv/partition information from previously encoded
frame without affecting decodeablilty under loss of frame.

Change-Id: I0279f862900dc647fb471ae3389770bb1b9f454f
2014-02-13 12:48:08 -08:00
Jingning Han
95abad9169 Merge "Remove redundant set_offsets in rtc coding mode" 2014-02-13 12:10:45 -08:00
Jingning Han
cc10ee0add Initialize internal buffer pointers in rtc mode
In rtc coding mode, the encoder is running non-RD mode decision. It
does not need dual buffer swap as was the case in the RD mode. This
commit initializes the internal buffer pointers outside the block
coding loop for rtc mode.

Change-Id: Ie076705c60d6b7919217e3f1dfd49e7db5064ac2
2014-02-13 11:41:08 -08:00
Dmitry Kovalev
ea53d6c15f Combining if-else branches from different conditions.
Change-Id: Ie51cf58de4f872d2261022558b6afe780bbc470b
2014-02-13 11:29:45 -08:00
Dmitry Kovalev
df6c523fed Merge "Renaming skip_coeff to skip for consistency." 2014-02-13 11:04:34 -08:00
Jingning Han
4712877ef6 Remove redundant set_offsets in rtc coding mode
The functionalities of set_offsets() are subsumed in later
set_partitioning() and rtc_use_partition() functions, hence removed.

Change-Id: Ie514b13cb66c2379f13d0be9b1da4c12ca4581e5
2014-02-13 09:41:58 -08:00
Paul Wilkins
d84978b84f Merge changes I121fe66c,I94f57f8a
* changes:
  Remove some cases for turning off arf.
  Modified Aq1 and Aq2
2014-02-13 09:31:53 -08:00
Jim Bankoski
75ac2913de Merge "clean out static analyzer warnings vp9_encodeframe.c" 2014-02-13 06:19:26 -08:00
Jingning Han
dea1604ed2 Merge "Remove unnecessary vp9_setup_buffer_inter use" 2014-02-12 17:51:39 -08:00
Jingning Han
3818132a4b Merge "Remove inactive control parameters" 2014-02-12 17:51:30 -08:00
Jingning Han
91b5145673 Merge "Remove unused using_small_partition_info functions" 2014-02-12 17:51:18 -08:00
Jingning Han
ce79e8a114 Merge "Remove unused function in vp9_encodeframe" 2014-02-12 17:51:11 -08:00
Dmitry Kovalev
004c8c636e Renaming skip_coeff to skip for consistency.
Change-Id: I036e815ca63d00cba71202ae09ba0f6ef745dcb8
2014-02-12 17:44:12 -08:00
Jingning Han
3c3dd1d5a3 Remove unnecessary vp9_setup_buffer_inter use
This function initializes the predictor buffer pointers and
calculates reference motion vectors. It is only needed in the settings
of inter frame coding. Hence removing it from the key frame coding
branch in rtc_use_partition.

Change-Id: Ic4e16c7467a5f32be4e0bf619ef9d57afb4a7075
2014-02-12 15:10:23 -08:00
Jingning Han
0eecccc51e Remove inactive control parameters
Change-Id: Ic5692af975fe6bd2d8ec82bbae103c6f7c2fc13e
2014-02-12 12:48:15 -08:00
Jingning Han
25479e94a4 Remove unused using_small_partition_info functions
This function is deprecated after the re-design of partition search
that runs big block size, then four-way split, followed by
rectangular block sizes. This commit removes the related functions.

Change-Id: I417549c8e0fa3cf35bd29816b805dd4e7c3660c6
2014-02-12 12:24:10 -08:00
Jingning Han
2e86d2de85 Remove unused function in vp9_encodeframe
The function rd_pick_reference_frame can be deprecated. Its use was
subsumed by the adaptive motion search control.

Change-Id: Icb0c2fa335f0f06fa7b79a71f972d9fa54d750db
2014-02-12 12:23:29 -08:00
Dmitry Kovalev
0109d757ee Merge "Removing vp9_foreach_transformed_block_uv() function." 2014-02-12 12:11:14 -08:00
Jim Bankoski
df86c4497a clean out static analyzer warnings vp9_encodeframe.c
Change-Id: If14d2fc8cf4202d24f7d87ea74b8ce88a6a816d9
2014-02-12 11:54:04 -08:00
Yaowu Xu
56d0b36092 Merge "Fixed a bug where no valid partition is allowed" 2014-02-12 10:13:49 -08:00
Yaowu Xu
69a6871904 Fixed a bug where no valid partition is allowed
Change-Id: I4d2729dc5c46db2847700256941a66b0957c105d
2014-02-12 09:00:34 -08:00
Dmitry Kovalev
79dd1f8441 Removing vp9_foreach_transformed_block_uv() function.
Change-Id: I35ec77b71e6fd686865cead9281e4dd9e9bc9e86
2014-02-11 18:06:00 -08:00
Yunqing Wang
507fd5220b Enable encode_breakout in real time encoding
In real time encoding, we enable encode_breakout to make encoding
fast. A speed feature "use_encode_breakout" is defined to set
encode_breakout thresholds for different speeds.

However, currently, static_thresh is an encoder option. The encode_
breakout can be turned off if user sets static_thresh=0 specifically.

The rtc set borg test result: (need to set --static_thresh=1)
speed -5, psnr loss -3.543%;
speed -4, psnr loss -2.358%;
speed -3, psnr loss -0.771%.

Encoding speed test:
speed -5, 11% - 60% speedup;
speed -4, 5.5% - 28% speedup;
speed -3, 0.8% - 7% speedup.

Change-Id: Icde592ffbe77eac7446f872a2e9eb2051733677b
2014-02-11 15:30:54 -08:00
Dmitry Kovalev
4fff8566f8 Merge "Cleaning up compute_fast_motion_search_level()." 2014-02-11 11:12:29 -08:00
Jingning Han
220e9a932e Merge "Use more meaningful names for speed features" 2014-02-11 08:49:35 -08:00
Paul Wilkins
f30b323180 Modified Aq1 and Aq2
Aq 1 only updates segment map on kf and arf and
only uses 3 segments. With these settings AQ1 is
+ for most clips in SSIM but negative in psnr.
However, the penalty in PSNR is much less than
previously.

Old version aq1 average results for std hd
-20.899% psnr, -5.809% SSIM
New version aq1 for std hd
-3.57% psnr, +1.23% SSIM

Aq2 Now uses only 2 segments and rd.
This mode is still slightly negative for most clips on
psnr and SSIM but seems to have a much bigger visual
impact on several problem clips than aq mode 1.

Old results for std hd:
-2.578% psnr, -1.151% SSIM
New results for std hd:
-1.561% psnr, -0.85% SSIM

Change-Id: I94f57f8a73121629ce598fb921aad761c1450e1c
2014-02-11 16:27:05 +00:00
Dmitry Kovalev
4a13d53523 Merge "Cleaning up update_stats() function." 2014-02-10 17:30:29 -08:00
Dmitry Kovalev
7e7ae66f74 Merge "Making vp9_activity_masking() static." 2014-02-10 17:29:40 -08:00
Jingning Han
734938dc6b Use more meaningful names for speed features
Use frame_parameter_update to precisely describe the functionality.

Change-Id: Ia9a55ba8efef7b987e30d949dd00ac716189bdb9
2014-02-10 15:20:11 -08:00
Yaowu Xu
855070e254 Merged two similar functions to reduce duplication
Function encode_rtc_frame_internal() and encode_frame_internal() only
differed by a couple of speed features, this commit relocation those
difference into the setup of speed features and merged two functions
into one to remove duplication.

It also fixed a subtle bug super_fast_rtc was used before it was
initialized.

Change-Id: I234a5a1d11a4450930e5b4943dbab434208d5030
2014-02-10 11:36:42 -08:00
Dmitry Kovalev
1a30a8743b Making vp9_activity_masking() static.
Change-Id: Ic6a733f1fe92458da89c8459c5686ba1e08b92bf
2014-02-08 19:41:37 -08:00
Dmitry Kovalev
e1fdcbcb82 Cleaning up compute_fast_motion_search_level().
Change-Id: I151bd3de689bceb72969120095257c37656db92f
2014-02-07 16:39:40 -08:00
Dmitry Kovalev
6c17ab6384 Cleaning up update_stats() function.
Change-Id: I9139210fc6b9878de7844d74dd97784a6d289230
2014-02-07 15:21:31 -08:00
Dmitry Kovalev
9f528c5dbd Removing redundant is_inter_mode() call.
Block type was already detected by is_inter_block() call.

Change-Id: I7923ce11b6a0071ce9df8c744a78c816651a15dc
2014-02-05 11:04:53 -08:00
Dmitry Kovalev
b9fea167f9 Removing DBG_PRNT_SEGMAP.
Change-Id: I71d85e3455545960938e525ae8aa0a667e1db94c
2014-02-04 16:33:03 -08:00