Commit Graph

22 Commits

Author SHA1 Message Date
Jingning Han
c0e99f84f9 Use sub-pixel accuracy prediction non-RD mode
This commit builds the actual prediction block in sub-pixel accuracy
and uses which to calculate SAD for non-RD mode decision. In the trail
run on pedestrian_area at 1080p, rtc speed -7 runtime goes from
23495 ms -> 25107 ms (7% slower). The compression performance is
improved by 20.57% for rtc test set.

Change-Id: I438589cd103fe99f1b50c2d1939ac6ca43fa0157
2014-02-25 16:29:20 -08:00
Jingning Han
fd49e9678e Use dedicated variables to store the best mode
Use a set of dedicated variables to buffer the current best mode
in non-RD mode decision. This allows to use mode_info for more
complicated test in the non-RD process.

Change-Id: I6024c9feb0662afd3eb29f7017f7b5a5446f303f
2014-02-25 13:56:12 -08:00
Yaowu Xu
5a7ac03b9e Changed a constant array to static const type
Change-Id: I5b3918441f63ceb7889dcf546e9a2d781be4a3cb
2014-02-21 22:44:13 -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
d66a63f02b Enable reduced set of intra modes in rtc coding
This commit enables the use of DC, vertical, and horizontal intra
prediction mode in rtc non-RD mode decision. When the best cost value
of inter modes is above a given threshold, the encoder runs the
above three intra modes and selects the one that has minimum
prediction residual in terms of SAD.

This together with recent changes on non-RD mode decision and coding
control improves compression performance of speed -6 by
derf  91%
yt    61%
hd    46%
stdhd 52%

In terms of encoding speed, it is about 3 times faster than speed -5.

Change-Id: I6b483bfd0307e6482bb22a6676ae4e25a52b1310
2014-02-20 18:03:23 -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
Jingning Han
e3178d0c1c Merge "Enable sub-pixel motion search for rtc mode" 2014-02-18 14:52:13 -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
Jim Bankoski
524bac612a vp9_pickmode.c resolve vs issue
Change-Id: Ibe4276fa9ffeb2ef30871d6db8ac75c4648f1e58
2014-02-14 11:19:31 -08:00
Dmitry Kovalev
fde1b6d7f2 Using MV instead of int_mv inside vp9_full_pixel_diamond().
Change-Id: If33a5a12c4025d9b5ec863dfccea7ee70f800665
2014-02-13 11:23:05 -08:00
Dmitry Kovalev
df6c523fed Merge "Renaming skip_coeff to skip for consistency." 2014-02-13 11:04:34 -08:00
Jim Bankoski
6a6797f5c9 Merge "vp9_pickmode.c static analysis issues resolved" 2014-02-13 08:31:49 -08:00
Jim Bankoski
c6eaf5f9f9 vp9_pickmode.c static analysis issues resolved
Change-Id: I716ea2967c6771d7adea571406f315a3197eab93
2014-02-13 06:20:57 -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
e8b7610e8f Use INTER_OFFSET in vp9_pick_inter_mode
Cosmetic change to use pre-defined macros.

Change-Id: I93e9fa90113d0242599048940b39694660385a6f
2014-02-12 09:14:29 -08:00
Jingning Han
f34a7eb253 Rework mode_info update in vp9_pick_inter_mode
This commit moves unnecessary mode_info update steps out of inter
mode test loop.

Change-Id: I3705450c44cda060021f4fd76c34f1b20d11658b
2014-02-10 15:20:11 -08:00
Yaowu Xu
f99eb936a4 Set proper rtc interp_filter at block level
Based on frame level settings.

Change-Id: I922c09c195ab055585eaa4f544c51aceb1203a7a
2014-01-31 16:32:19 -08:00
Yaowu Xu
dc9af3b509 fix IOCs
Left shift of negative values caused IOC warnings.

Change-Id: I6f41b020ca0ff51f7861719d41393e9460b75d4e
2014-01-31 15:07:51 -08:00
Jim Bankoski
ea8aaf15b5 create super fast rtc mode
This patch only works if the video is a width and height that are both
a multiple of 32..   It sets every partition to 16x16, and does INTRADC
only on the first frame and ZEROMV on every other frame.   It always does
does the largest possible transform, and loop filter level is set to 4.

Was ~20% faster than speed -5 of vp8

Now 20% slower but adds motion search ( every block ), nearest, near
and zeromv

The SVC test was changed because - while this realtime mode produces
bad quality albeit quickly, it isn't obeying all the rules it should
about which frames are available.

Change-Id: I235c0b22573957986d41497dfb84568ec1dec8c7
2014-01-29 08:39:39 -08:00
Dmitry Kovalev
e4755db40b Removing get_scale_ref_frame_idx() function + cleanup.
Change-Id: Ic9472f361f8749a165aa464c2fa859681b66381b
2014-01-22 17:10:37 -08:00
Dmitry Kovalev
ef9f7446be Cleaning up vp9_setup_buffer_inter() function.
Change-Id: Ia63e2d05fa5dca3fb67788b0f1f28e9802ef27dd
2014-01-21 19:46:07 -08:00
Jingning Han
2f52decd22 Inter-frame non-RD mode decision
This commit setups a test framework for real-time coding. It enables
a light motion search for non-RD mode decision purpose.

Change-Id: I8bec656331539e963c2b685a70e43e0ae32a6e9d
2014-01-16 12:35:04 -08:00