6520 Commits

Author SHA1 Message Date
Jingning Han
c7d719325e Merge "Remove redundant header file from vp9_idct.h" 2014-10-01 17:05:36 -07:00
Jingning Han
9641b1b9ac Merge "Remove unused header files from vp9_encodemb.h" 2014-10-01 17:05:25 -07:00
Deb Mukherjee
30fbf23fda Merge "High-bitdepth bugfixes" 2014-10-01 16:47:43 -07:00
Yunqing Wang
e350e3fe68 Merge "Modify block transform skipping check" 2014-10-01 16:19:56 -07:00
Jingning Han
74c2997bc9 Remove redundant header file from vp9_idct.h
Change-Id: Id92544762e7b96d3c729dfc8e04ecff91cbcc7f9
2014-10-01 14:58:27 -07:00
Jingning Han
72a78a0c40 Remove unused header files from vp9_encodemb.h
Change-Id: Icfc3fb62cc0b05e435814035bfe1f2e2870442b4
2014-10-01 14:50:24 -07:00
Deb Mukherjee
a160d72522 High-bitdepth bugfixes
Miscellaneous bug-fixes for high bitdepth functionality.
With this patch, high bit-depth profiles become mostly functional,
except for an intermittent assert failure issue that is being
tracked.

Change-Id: I6a7fcbdcf1e5b09842e88535f8442d2e1230748c
2014-10-01 14:18:11 -07:00
Jingning Han
0a9f5fa146 Remove repeated header files from vp9_block.h
This commit removes unused header file vp9_onyxc_int.h and repeatedly
included file vpx_ports/mem.h from vp9_block.h

Change-Id: I400b210bd1da48f1880bd50a8f4a6e2c690e15a1
2014-10-01 13:01:43 -07:00
Yunqing Wang
e4aac6bb61 Modify block transform skipping check
Block transform skipping was implemented based on DCT's energy
conservation property. Modified the thresholds using zero bin
parameters. AC and DC coefficients were checked separately to
allow better identifying of skippable blocks.

Borg test at speed 3 showed:
stdhd set: psnr gain: 0.153%, ssim gain: 0.051%;
derf set: psnr gain: 0.023%, ssim gain: 0.036%

For most test clips, the encoding speedup is 1% - 2%.
parkrun(720p): 7.5% speedup, park_joy(1080p): 3.5% speedup.

Change-Id: If28eb81113a077414f5ca7b021c14f9069b373bb
2014-10-01 12:58:09 -07:00
Jingning Han
3d17f0d45f Remove repeated vpx_integer.h from vp9_prob.h
The file vpx_integer.h has been included and used in the parent
file vp9_common.h.

Change-Id: I9c65f08353576f9ef1e5ea17244fc5ca964ec002
2014-10-01 12:45:52 -07:00
Jingning Han
764c00ab50 Use precise header files in vp9_entropymv.h
The commit cleans up the header files in vp9_entropymv.h. This
file should only depend on vp9_mv.h and vp9_prob.h. Remove the
giant vp9_blockd.h from header file list.

Change-Id: I44cd26d2cfd10a16a9325778347dd53f888a874c
2014-10-01 12:41:08 -07:00
Jingning Han
20a37391d9 Merge "Conditionally skip reference frame check" 2014-10-01 11:19:10 -07:00
Jingning Han
891793a540 Conditionally skip reference frame check
For regular inter frames, if the distance from GOLDEN_FRAME is larger
than 2 and if the predicted motion vector of LAST_FRAME gives lower
sse than that of GOLDEN_FRAME, skip the GOLDE_FRAME mode checking in
the rate-distortion optimization. It provides about 5% speed-up at
expense of -0.137% and -0.230% performance down for speed 3. Local
experiment results:

pedestrian 1080p 2000 kbps
66712 b/f, 40.908 dB, 113688 ms ->
66768 b/f, 40.911 dB, 108752 ms

blue_sky 1080p 2000 kbps
51054 b/f, 35.894 dB, 70406 ms ->
51051 b/f, 35.891 dB, 67236 ms

old_town_cross 720p 1500 kbps
14412 b/f, 36.252 dB, 60690 ms ->
14431 b/f, 36.249 dB, 57346 ms

Change-Id: Idfcafe7f63da7a4896602fc60bd7093f0f0d82ca
2014-10-01 08:32:15 -07:00
Deb Mukherjee
872b207b78 Moves transform type defines to vp9_common
Moves transform type defines to vp9_common.h from vp9_idct.h
so that they can be included in vp9_rtcd_defs.pl safely.

Change-Id: Id5106227bee5934f7ce8b06f2eb9fa8a9a2e0ddb
2014-09-30 19:44:17 -07:00
James Zern
4a296e6baa Revert "Fix compiling error in vp9_idct.h"
This reverts commit eafc8c9c40d712aabe234bed5269a02c62fa0bfc.

tran_low_t/tran_high_t don't belong in a public header, they're private.
Similarly the public headers shouldn't rely on config defines,
vpx_config.h isn't installed.

Change-Id: I194ec273598da418df8dd727b6c0e78a556740ad
2014-09-30 16:08:55 -07:00
Yunqing Wang
b1b6fd85db Merge "Skip the partition search for still frames" 2014-09-30 11:59:05 -07:00
Yunqing Wang
c8d01b1eaf Merge "Refactor encode_rd_sb_row function" 2014-09-30 11:58:39 -07:00
Deb Mukherjee
58a54b2026 Merge "Misc. high-bit-depth fixes" 2014-09-30 11:40:36 -07:00
Jingning Han
96b0cfbba2 Merge "Remove redundant header file declaration" 2014-09-30 11:28:33 -07:00
Deb Mukherjee
40479dfe92 Misc. high-bit-depth fixes
Change-Id: Ie9fb6a4078eb6a3fb7c4ff1453831ab9afe23121
2014-09-30 10:37:53 -07:00
Jingning Han
d7e4bed308 Merge "Fix compiling error in vp9_idct.h" 2014-09-30 10:27:33 -07:00
Jingning Han
0829d2be7f Remove redundant header file declaration
Some header file in vp9_idct.c has been included in vp9_idct.h.
This commit removes these redundant declarations.

Change-Id: I0238c27e4efff5c981eb437022c6bc6970c4e445
2014-09-30 09:13:00 -07:00
Jingning Han
eafc8c9c40 Fix compiling error in vp9_idct.h
This commit fixes a compiling error in vp9_idct.h, where the codec
checks that the intermediate steps of transformation fit within
16-bit length. The issue was due to broken file dependency.

Change-Id: Ib22bba13a1e6df28489cb23d6774c561969f1fdc
2014-09-30 09:11:59 -07:00
Deb Mukherjee
63e49be340 Merge "Adds two new subpel search methods" 2014-09-29 20:11:04 -07:00
JackyChen
e6479c8cfa Merge "Fix a bug in calculating delta in VP9 denoiser." 2014-09-29 16:56:16 -07:00
JackyChen
7ba646f7e6 Fix a bug in calculating delta in VP9 denoiser.
When calculating delta in VP8 denoiser, since the block size is fixed to 16x16,
the divisor is 256, which is the number of the pixel.
But in VP9, the block size varies, the divisor should correspond to the block
size.

Change-Id: Ibdc1e5d23ba8c788b0d0dc6d406bcdfc34c1b142
2014-09-29 13:09:18 -07:00
Deb Mukherjee
4e9c0d2ad4 Adds two new subpel search methods
One is a more aggressive version of the pruned subpel tree
search where only a single halfpel candidate is searched.
The search candidate is based on a surface fit result.
The other is a method to obtain the subpel position at one
shot based on the same surface fit.

The methods have not been deployed in any speed setting yet.

Change-Id: I34fef3f2e34f11396c9d1ba97f4be8c4ffca62d3
2014-09-29 12:51:20 -07:00
Deb Mukherjee
9ed23de13f Miscellaneous decoder changes for high bitdepth
Also includes yv12 config changes.

Change-Id: Iacf40d8bf486815b54c32a127ce3cd4516b7e44f
2014-09-29 11:27:45 -07:00
Jingning Han
8b4dd536a5 Merge "Skip certain ALTREF inter modes in ARF coding" 2014-09-29 10:43:45 -07:00
Deb Mukherjee
d4713f1d50 Fix a bug introduced in a previous patch on highbd
Change-Id: Ice692334f75157446a44a6e81503cada977934f4
2014-09-26 15:43:55 -07:00
Jingning Han
ccdb518ff8 Skip certain ALTREF inter modes in ARF coding
This commit enables the encoder to skip checking ALTREF inter modes
in ARF coding, if the predicted motion vectors suggest that the
GOLDEN_FRAME provides higher prediction accuracy than ALTREF_FRAME.

It improves the speed 3 encoding speed by about 5%, at the expense
of compression performance loss -0.041% and -0.225% for derf and
stdhd, respectively.

pedestrian_area 1080p 2000 kbps
66705 b/f, 40.909 dB, 118738 ms ->
66732 b/f, 40.908 dB, 113688 ms

old_town_cross 720p 1500 kbps
14427 b/f, 36.256 dB, 62746 ms ->
14412 b/f, 36.252 dB, 60690 ms

blue_sky 1080p 1500 kbps
51026 b/f, 35.897 dB, 73310 ms ->
50921 b/f, 35.893 dB, 70406 ms

bus CIF 1000 kbps
21301 b/f, 34.841 dB, 7326 ms ->
21248 b/f, 34.837 dB, 7196 ms

Change-Id: I76cf88b4d655e1ee3c0cb03c8a5745493040e8d2
2014-09-26 12:53:43 -07:00
Yunqing Wang
1fcbf6ed56 Skip the partition search for still frames
This patch re-enabled the feature in Pengchong's patch
(commit 12861260732a4fd5f6b667ce9d5105dc9b606eda). Originally, it
was turned on while use_lastframe_partitioning > 0(not used anymore).
Now it was added as a feature, and turned on while speed >= 2.
As described in the original patch, this feature helps speed up the
slideshows in YouTube.

Change-Id: I1b0f18d65da1ee1c8d1e117dabba910c5207c471
2014-09-26 09:03:52 -07:00
hkuang
62848d2a87 Merge "Avoid calling vp9_is_scaled two times in a function." 2014-09-25 13:58:54 -07:00
Deb Mukherjee
0b3560c7a2 Merge "Adds various high bit-depth encode functions" 2014-09-25 13:48:05 -07:00
hkuang
c53a95ad1d Avoid calling vp9_is_scaled two times in a function.
Use a local variable to hold the result of vp9_is_scaled.

Change-Id: I5e203909805923e20eefef596bc84424da47dbe2
2014-09-25 11:52:16 -07:00
Yaowu Xu
845d4f333d Fix a couple of comments
The first comment is obselete given the way is now normative in VP9
bitstream. The second comment line was too long.

Change-Id: I6546585babf60d466485ddcf2daa6d2fa79e999a
2014-09-25 08:24:16 -07:00
Deb Mukherjee
993d10a217 Adds various high bit-depth encode functions
Change-Id: I6f67b171022bbc8199c6d674190b57f6bab1b62f
2014-09-25 01:50:36 -07:00
Jingning Han
6989e81d61 Remove unused variable in handle_inter_mode
Change-Id: Id757d2c940756ce1b0ead2ea24af9ac0a493de05
2014-09-24 18:27:44 -07:00
Yaowu Xu
22d8c156f9 Merge "Correct the condition for border extension" 2014-09-24 14:09:45 -07:00
Yaowu Xu
d237d483a5 Correct the condition for border extension
As reported in issue #850, the condition for border extension was not
complete. This commit added the case when the scaling is enabled.

This fixes issue #850.

Change-Id: I67768b23f0dcc4ac9a9aa0a0825b0fe8cb85a72e
2014-09-24 11:26:40 -07:00
Paul Wilkins
76035d16d9 Merge "Fix build issue with stats enabled." 2014-09-24 10:32:37 -07:00
Yunqing Wang
14ee2805a3 Refactor encode_rd_sb_row function
Simplified the code and removed some code that was not used anymore.
This patch didn't change encoding result.

Change-Id: I7e54a74c8f35a6726dfc8a1c55b337448b7ea124
2014-09-24 10:24:18 -07:00
Yaowu Xu
148c57d231 Merge "Fix invalid memory access on 2x downscale." 2014-09-24 09:58:05 -07:00
Yaowu Xu
7be8954e34 Merge "Fix incorrect subsampling used in VP9 non420 loopfilter." 2014-09-24 08:59:11 -07:00
Alexander Voronov
eafd842a3e Fix incorrect subsampling used in VP9 non420 loopfilter.
Change-Id: Ia959e24b4676242c80a8867d2c39a6fee90f71a5
2014-09-24 17:01:09 +04:00
Paul Wilkins
5b724fc78e Fix build issue with stats enabled.
Compiler build issue when output stats enabled.

Change-Id: I7b5409108f3f27ba61b0241b9340b412683eff45
2014-09-24 11:48:58 +01:00
Deb Mukherjee
e1d3c36525 Adds high bit-depth frame resize functions
Change-Id: I35b015a759325d72d0da427c61a09f19f8e69697
2014-09-23 22:55:33 -07:00
Yaowu Xu
8751e49a6f Merge "Adapt mode based rd_threshold for similar block size" 2014-09-23 22:28:08 -07:00
Yaowu Xu
60737c9fc8 Merge "Fix an IOC" 2014-09-23 20:44:35 -07:00
Deb Mukherjee
4109372af3 Adds high bit-depth psnr/sse functions
Also adds some miscellaneous high bit-depth setup functions.

Change-Id: I66488b08a5a2a8cb9518ca10497cf1c1501ceded
2014-09-23 17:28:05 -07:00