Commit Graph

10775 Commits

Author SHA1 Message Date
Johann
62c6411820 Remove neon version of vp8 extend borders
The code fails the unit test. Speed comparisons to the C are invalid
because the code frequently didn't correctly extend the right and
bottom portions of the frame.

Reduce maximum frame size on ARM devices to avoid OOM

Change-Id: Ia664c86406f0bb8120fd7ad401f32d0bd44994fb
2014-07-24 18:33:40 -07:00
Johann
a04ace289a Add test for vp8 extend_borders
Change-Id: I5bfc965019815e631a2300eb29aa065fb2bc94aa
2014-07-24 18:32:43 -07:00
Johann
e956c00762 Set and use uv_crop_[width|height]
Ensure consistent border extension by rounding uv_crop_* at image
creation time. Where it was rounded problems could arise with the right
and bottom extensions.
When padding = 32, y_width = 64, and y_crop_width = 63:
 (padding + width - crop_width + 1) / 2
 32 + 64 - 63 + 1 should equal 32 *but*
 32 + 1 + 1 equals 34 giving a right buffer of 17 instead of 16.
By calculating uv_crop_* earlier we round up at the appropriate time and
for the same values:
 (y_crop_width + 1) / 2
 63 + 1 / 2
 64
 (padding / 2) + uv_width - uv_crop_width
 16 + 16 - 16
 16

Change-Id: If866cd1b63444771440edb1432280ac83875969b
2014-07-24 15:30:13 -07:00
James Zern
0cf0b02c4c Merge "x86inc: fix compilation with NASM Change-Id: I5978921ab1ccad6648a5bde6ad023c3e3430f5f4 " 2014-07-23 22:45:51 -07:00
KO Myung-Hun
7ddb5f5992 x86inc: fix compilation with NASM
Change-Id: I5978921ab1ccad6648a5bde6ad023c3e3430f5f4
2014-07-24 13:02:34 +09:00
KO Myung-Hun
11f2d4df95 Makefile: strip debugging informations only
--strip-unneeded causes SIGSEGV when accessing g_executable_path. So
test_libvpx crashes due to SIGSEGV in ::testing::InitGoogleTest().

OS/2, aout, strip v2.23.2

Change-Id: I2718d082447ee0d9ad0c021b9156c50e1ac085a6
2014-07-23 20:26:52 -07:00
Jingning Han
374c885919 Merge "Remove redundant argument entry in handle_inter_mode" 2014-07-23 15:07:01 -07:00
Jingning Han
787e8240d5 Merge "Use the chessboard pattern pred search in newmv mode" 2014-07-23 15:06:52 -07:00
Marco Paniconi
f68288c6a4 Merge "Fix clang compiler warning in denoising_neon." 2014-07-23 13:58:45 -07:00
Yaowu Xu
5dcb2e3237 Merge "Moved call to vp9_clear_system_state() to a proper location" 2014-07-23 12:46:11 -07:00
Jingning Han
e945c56d4a Remove redundant argument entry in handle_inter_mode
The value of mode_excluded has been properly set in
vp9_rd_pick_inter_mode_sb(). It is redundant to send it in
handle_inter_mode() and re-set the value again.

Change-Id: I408d4731f2f42e0bcf3ae62e85757717bb410471
2014-07-23 12:04:45 -07:00
Jingning Han
4f2f86725b Use the chessboard pattern pred search in newmv mode
This commit extends the chessboard pattern prediction filter search.
If the above and left blocks have the same prediction filter type,
the encoder will skip the prediction filter type search and use the
reference one.

The overall chessboard pattern prediction filter type search reduces
speed 3 runtime for hard clips. Experiments on park joy at 1080p
and 15000 kbps show that the runtime goes from 723265 ms to 65832 ms,
i.e., about 10% speed-up. Compression performance wise, it affects
the coding quality by

Change-Id: I880975497c7ad166532e9eea9bf46684d77ff327
derf:    -0.326%
yt:      -0.257%
hd:      -0.241%
stdhd:   -0.417%
2014-07-23 11:59:52 -07:00
Jingning Han
66d5757695 Merge "Remove redundant num_refs definition" 2014-07-23 10:34:54 -07:00
Marco Paniconi
7788c62286 Fix clang compiler warning in denoising_neon.
Issue: https://code.google.com/p/webm/issues/detail?id=829

Change-Id: I580308f8aa4af194b5d8990a9692ebd18db68ee8
2014-07-23 09:59:27 -07:00
Jingning Han
353819103e Remove redundant num_refs definition
Use is_comp_pred to replace the use case of num_refs.

Change-Id: I4d0c1e14d5f728428a2ae3d293cd2b4a8b2f31d8
2014-07-23 09:29:51 -07:00
Jingning Han
0e5edf4eae Merge "Enable chessboard inter prediction filter type search" 2014-07-23 09:12:56 -07:00
James Zern
897116d5c8 Merge "frame_size_tests: reduce default 'large' frame size" 2014-07-22 18:40:31 -07:00
Jingning Han
54ad09586c Enable chessboard inter prediction filter type search
This commit enables a chessboard pattern prediction filter type
search scheme for rate-distortion optimization speed-up. For the
inferred motion vector modes, the encoder can re-use its above/left
neighbor blocks' prediction filter type and skip a full test on
all possible filter types. Such operation is turned on/off
alternatively in a chessboard manner.

It is turned on in speed 3. For test clip pedestrian 1080p, the
runtime is reduced from 231500 ms -> 221700 ms. The compression
performance is changed:
derf:  -0.147%
yt:    -0.134%
hd:    -0.079%
stdhd: -0.220%

Change-Id: I1912f278e7576c2dc632688e3ad7a257410c605a
2014-07-22 16:49:03 -07:00
James Zern
2528051f41 frame_size_tests: reduce default 'large' frame size
VP9FrameSizeTestsLarge exposed an integer overflow in the VP9 encoder,
for now reduce the size to allow the tests to clear and prevent further
regressions.
4096x4096 -> 4096x2160

this should be restored after the bug is fixed:
https://code.google.com/p/webm/issues/detail?id=828

Change-Id: I47fdf0648f1d9a3951f731bbf0b727f85ada4fa1
2014-07-22 16:33:13 -07:00
Marco Paniconi
a9b30b381b Merge "vp8: Set default denoiser_decision to copy for UV channel." 2014-07-22 15:25:06 -07:00
Adrian Grange
1f3c43e602 Merge "Fix get_frame_type function" 2014-07-22 15:17:27 -07:00
Tim Kopp
75441e1e08 Merge "VP9 denoiser bugfix in debugging code." 2014-07-22 14:48:42 -07:00
Jingning Han
f0f428e9ba Merge "USE local best_filter variable in handle_inter_mode" 2014-07-22 14:21:34 -07:00
Tim Kopp
1fe18acb92 VP9 denoiser bugfix in debugging code.
When OUTPUT_YUV_DENOISED is enabled the encoder outputs the uncompressed,
denoised video to a separate file. Moved the point at which the file is
written to in order to avoid an extra blank frame at the beginning of the video.

Change-Id: I805f6a912b18b3d9cae59b13c5b8108279439ce3
2014-07-22 14:10:16 -07:00
James Zern
dcb6aa8e41 Merge "vp9_bitstream.c: cosmetics" 2014-07-22 13:17:40 -07:00
Minghai Shang
f2f69dd3b3 Merge "[spatial svc]Use #if instead of #ifdef on macro CONFIG_SPATIAL_SVC" 2014-07-22 12:43:40 -07:00
Adrian Grange
caad1686d4 Fix get_frame_type function
Fixed the function get_frame_type to return the correct
frame type for golden and last frames.

Change-Id: I8edddd9aa26cbe7a1de8ff211389410b22b1bd14
2014-07-22 12:12:16 -07:00
James Zern
de4db2dc4f vp9_bitstream.c: cosmetics
fix indent, spelling and drop some vertical whitespace

Change-Id: I722671381a374a24763b07a02805ab1d149ab3f4
2014-07-22 11:38:53 -07:00
Jingning Han
5de6114e8f USE local best_filter variable in handle_inter_mode
This should be a local variable. Move the definition from
vp9_rd_pick_inter_mode_sb to handle_inter_mode.

Change-Id: I14f4168bb1c896ed04e8f6d4cd89fbf4c9839944
2014-07-22 11:35:59 -07:00
Marco Paniconi
aa2ba46a61 Merge "vp8 denoiser fix: Update denoised altref on key frame." 2014-07-22 11:15:08 -07:00
Marco Paniconi
daed770d99 vp8: Set default denoiser_decision to copy for UV channel.
Since the UV decision to denoise is based on Y, we need to set
the default/initial denoiser decision_u/v to COPY_BLOCK,
to make sure if no uv_denoiser is applied we still update
(uv)running_avg with source.

Change-Id: I5af1c2afbd40c498cd3de208bea88c837099b24d
2014-07-22 11:12:50 -07:00
Minghai Shang
24c9d6ad43 [spatial svc]Use #if instead of #ifdef on macro CONFIG_SPATIAL_SVC
Change-Id: Ifc94377a0d05d66e3d21b007893a985b66db6082
2014-07-22 11:11:55 -07:00
Marco Paniconi
f909e43abc vp8 denoiser fix: Update denoised altref on key frame.
On a key frame, the denoised-running_avg for all references
frames should be updated with the source.
The altref denoised-running_avg was not being updated on key frame,
this fixes that.

Change-Id: Ie02cd0ba5383e013af59240e6df7e185d11703f6
2014-07-22 10:14:03 -07:00
Jingning Han
97ccebac8f Merge "Turn on adaptive pred filter scheme for sub8x8 below 720p" 2014-07-22 09:11:52 -07:00
Jingning Han
ffd948bbd5 Turn on adaptive pred filter scheme for sub8x8 below 720p
For sequences of resolution below 720p, the encoder will check
intra prediction modes and inter prediction modes from LAST_FRAME.
This commit turns on adaptive prediction filter scheme for sub8x8
blocks, where inter prediction modes are enabled. For the test
sequence bus at CIF, the speed 2 runtime goes down from 17879 ms
to 16783 ms, i.e., 6% speed up. The compression performance of
derf set is down by -0.128%.

Change-Id: I01d5321a5ceab4e0666ac5be56c52d896c7a8d45
2014-07-21 16:22:56 -07:00
Alex Converse
5926e7c0e8 Remove unfinished VP9 alpha channel.
Change-Id: Ic5d3a3a0dac10b49495771886a31e793bb78b5ca
2014-07-21 15:55:50 -07:00
Yaowu Xu
bcaf1d69ec Moved call to vp9_clear_system_state() to a proper location
The commit moved a call to vp9_clear_system_state() to a correct
location, i.e. prior function calls using floating point numbers.
This was to fix a mismatch mmx code and sse2 version, where a
floating point number used in adjust_frame_rate(cpi) gets NAN due
to mmx registers being in wrong state.

Change-Id: I40e0a6de98812000ccee6a729badb630604fd7e6
2014-07-21 15:55:12 -07:00
Yunqing Wang
765485cab2 Add -DNDEBUG when config option debug is disabled
For gcc, when libvpx config option debug is disabled, added the
flag -DNDEBUG to disable the assertions in libvpx for some speedup.

Change-Id: Ifcb7b9e8ef5cbe5d07a24407b53b9a2923f596ee
2014-07-21 09:20:03 -07:00
Tim Kopp
f932e15210 Merge "VP9 denoiser fix: ref frames now updated properly" 2014-07-21 08:28:41 -07:00
James Zern
1cfaaf678d y4m_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: I2ede16e0903a96225a342609545281fdbb83d638
2014-07-18 20:39:07 -07:00
James Zern
7875602842 vp9_subtract_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: I636012c74f5de91d594d7398e92343f5efe08327
2014-07-18 20:39:06 -07:00
James Zern
91ba1a768d subtract_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: Ic738b97d492f244c58989a0f73a4d763340ec274
2014-07-18 20:39:06 -07:00
James Zern
ee4bbe1f72 sixtap_predict_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: Ie59ddc080530d538e4ffb1d862844a84de926d92
2014-07-18 20:39:06 -07:00
James Zern
18e733bd1d sad_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: I60746bc93ba2446c1458a1f09fd1e49cc2e68534
2014-07-18 20:39:06 -07:00
James Zern
25d74e69dd pp_filter_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: If6cf006a089b0fb42d6bf050570d928d955d658a
2014-07-18 20:39:06 -07:00
James Zern
49135d3748 partial_idct_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: Ied220e09fceef53039f234ebbb7e51c8e081c84e
2014-07-18 20:39:06 -07:00
James Zern
9c05172d0a intrapred_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: I74d7489ea35f988fcfec3651bd16f02e688e406a
2014-07-18 20:39:06 -07:00
James Zern
75d56b346e idct_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: I660a77c0c58ca64075c1051ea440fdf4d7c7e6af
2014-07-18 20:39:06 -07:00
James Zern
54697d363d fdct8x8_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: Id2d43931e9b6e16aa4b8e5e346eee08505bdccfb
2014-07-18 20:39:06 -07:00
James Zern
b8b3dd91de fdct4x4_test: drop '_t' from local typenames
_t is reserved by posix

+ switch to camelcase
  http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Type_Names

Change-Id: I796252a6f7f749b4faa969bbe7fe83eae64fa393
2014-07-18 20:39:06 -07:00