Commit Graph

11122 Commits

Author SHA1 Message Date
Jingning Han
1e30547984 Skip mode search based on reference frame consistency
This commit enables the encoder to skip NEARMV and ZEROMV if the
above and left blocks have identical reference frame, and the
current reference is different from that. It reduces the runtime
of speed 3 for test sequences:
bus cif at 1000 kbps 10064 ms -> 9823 ms
pedestrian 1080p at 2000 kbps 193078 ms -> 189559 ms

The compression performance is changed by
derf  -0.085%
stdhd -0.103%

Change-Id: If304f26d42e6412152a84c3dd7b02635c38444f4
2014-08-13 14:16:18 -07:00
Jingning Han
6e086548cb Merge "Enable motion field based mode seach skip" 2014-08-13 14:13:19 -07:00
Jingning Han
0daadeb60c Enable motion field based mode seach skip
This commit allows the encoder to check the above and left neighbor
blocks' reference frames and motion vectors. If they are all
consistent, skip checking the NEARMV and ZEROMV modes. This is
enabled in speed 3. The coding performance is improved:

pedestrian area 1080p at 2000 kbps,
from  74773 b/f, 41.101 dB, 198064 ms
to    74795 b/f, 41.099 dB, 193078 ms

park joy 1080p at 15000 kbps,
from 290727 b/f, 30.640 dB, 609113 ms
to   290558 b/f, 30.630 dB, 592815 ms

Overall compression performance of speed 3 is changed
derf  -0.171%
stdhd -0.168%

Change-Id: I8d47dd543a5f90d7a1c583f74035b926b6704b95
2014-08-13 12:15:13 -07:00
Yaowu Xu
b6a41802c4 Simplify select_tx_mode()
The function is called only once, right after all stats counters are
reset to 0. Therefore all the computations have zero effect on return
values. This commmit to removed those effectless code.

Change-Id: I50d27c0802547921fa36c60aa4bd92d76247f595
2014-08-13 11:48:29 -07:00
Jim Bankoski
02b2c16775 Merge "vpx_internal_error -> fix -Wunused-function issues" 2014-08-13 10:54:33 -07:00
James Zern
1c6203192d cq_test: allow test cases to be run out of order
check that bitrates increase with cqlevel at global test case teardown,
rather than after each individual test case. this allows the tests to be
run out of order with --gtest_shuffle.

Change-Id: I9e0d4e6a2d920a1f2fe9aee7b7876a3e7eb5d297
2014-08-13 10:40:25 -07:00
Deb Mukherjee
9f233fc5a1 Merge "Initialization to prevent asan failure on google3" 2014-08-13 09:55:39 -07:00
Deb Mukherjee
17ea6ab67b Initialization to prevent asan failure on google3
Reinstates an assignment to prevent an asan failurere on google3.
Not sure why the failure happens. This was removed in a recent patch
https://gerrit.chromium.org/gerrit/#/c/71068/.

Change-Id: Ifd9ccffd4c2164f4de38b21821ffb28bd779b0f3
2014-08-13 08:41:40 -07:00
Jim Bankoski
07c3abe21e Merge "intra blocks disallowed inadvertently" 2014-08-13 08:40:14 -07:00
Jim Bankoski
2784a8fd24 Merge "Update PATENTS to reflect s/VP8/WebM/g" 2014-08-13 08:11:22 -07:00
Jim Bankoski
a6a997d229 vpx_internal_error -> fix -Wunused-function issues
Moved to global function to avoid unused function warnings...

Change-Id: I4e9002dcb20748f6d8d84cbbe6ef2de0bd9a8018
2014-08-13 07:58:01 -07:00
Paul Wilkins
a3dbc8b304 Merge "Minor Two pass rate control adjustments." 2014-08-13 02:56:19 -07:00
James Zern
9ce4d53787 Merge "decode_api_test: fix type conversion warning" 2014-08-13 00:24:31 -07:00
James Zern
b26668a19d Merge "libyuv: update to r1041" 2014-08-12 23:40:48 -07:00
James Zern
caffcb8b8d decode_api_test: fix type conversion warning
size_t -> uint32 in the call to vpx_codec_decode()

Change-Id: Ibf39d3749321c97292b35ac0631fa22211cff800
2014-08-12 23:11:38 -07:00
James Zern
3a7d467da9 libyuv: update to r1041
Change-Id: I38dad398844ee424a7a92a745ab703645018d02b
2014-08-12 22:54:05 -07:00
James Zern
4b79563805 Merge "get_ref_frame: check ref_frame_map value" 2014-08-12 22:48:27 -07:00
James Zern
80b6c9c56f Merge "VP8D_GET_FRAME_CORRUPTED: check frame pointer" 2014-08-12 21:11:36 -07:00
James Zern
bcb97ec647 Merge "vpx_codec_decode: check data size" 2014-08-12 21:11:11 -07:00
James Zern
cedd19c187 Merge "inline vpx functions in headers to avoid unused function warning" 2014-08-12 20:16:47 -07:00
James Zern
a6b7bd6a1c Merge "fixes several -Wunused-function warnings" 2014-08-12 20:15:14 -07:00
James Zern
8910cf8d69 Merge "Fix a run-time integer overflow" 2014-08-12 19:21:20 -07:00
Deb Mukherjee
94fbfb9f1b Merge "Rework y4mwrite test to pass google3 tests" 2014-08-12 18:06:21 -07:00
James Zern
3caed4f8fd get_ref_frame: check ref_frame_map value
'ref_frame_map' is initialized to -1. avoids using an invalid index  if
VP9_GET_REFERENCE/VP8_COPY_REFERENCE controls are issued after a decode
error.

Change-Id: I4599762c4d0b07a5943a72bf4a86ccb596cc062a
2014-08-12 17:47:04 -07:00
James Zern
7d9da93a97 VP8D_GET_FRAME_CORRUPTED: check frame pointer
if the decode of the first frame fails, frame_to_show may not be set.
fixes a crash in vpxdec with corrupt data.

Change-Id: I5ab9476d005778a13fd42a39d05876bb6c90a93c
2014-08-12 17:41:47 -07:00
Jim Bankoski
07a67520d3 inline vpx functions in headers to avoid unused function warning
Change-Id: I80284ae82915b9df56f7c5ef4953bd53e8cffd1f
2014-08-12 16:52:33 -07:00
Jim Bankoski
f452961765 fixes several -Wunused-function warnings
Change-Id: I4dc2cb255f4fe30998b6ee61184895dee9f5da8e
2014-08-12 16:51:07 -07:00
Yaowu Xu
3011c53d36 Fix a run-time integer overflow
Change-Id: I87255d8a25ef8c7d235cbf3c8887d7bed7892cfe
2014-08-12 16:49:07 -07:00
Jim Bankoski
5c55202c6b intra blocks disallowed inadvertently
At speed 6 the smallest partitioning was 16x16 and biggest
intra block was 8x8, essentially disallowing all intra blocks
which produces ugly artifacts when revealing new video.

Change-Id: I364042d4c64e09be0666ade64aac94d0a1b586cf
2014-08-12 16:22:32 -07:00
Deb Mukherjee
a463513843 Rework y4mwrite test to pass google3 tests
Reverts to using tmpfile() for non-Windows platforms. On google3
the test directory does not have write permissions, and hence the
Y4mWriteTest fails. This patch fixes the issue.
On Windows, a temporary file is created in the temp directory
that has write permissions.

The tests pass on linux, mingw, and MS visual studio.

Change-Id: Ibada1d80e25d8b8e5b6a9d3d597533674bd9024c
2014-08-12 16:15:26 -07:00
Alex Converse
f55f68c13a Fix pickmode for intra DC blocks
Change-Id: I4906043ec1e3577ba37622a235c54adacb66125a
2014-08-12 16:04:14 -07:00
Paul Wilkins
ea55e4d26a Minor Two pass rate control adjustments.
Alter way in which we identify static scenes.
Remove some redundant code.

Change-Id: I883c2ea2e341770648a8663d8881f720ed099b61
2014-08-12 16:27:32 +01:00
James Zern
1d9e2b5003 Merge "remove unused fields from BOOL_CODER / vp9_writer" 2014-08-11 23:08:45 -07:00
James Zern
c0ade1ce9a Merge "remove remaining references to XMA" 2014-08-11 23:02:45 -07:00
James Zern
febdebf27a remove remaining references to XMA
the bulk of the functionality was removed in:
a42b5c2 Removing legacy XMA features from libvpx.

BUG=840

Change-Id: I8ca51d6aa76028f36d0eb1a15d2f2e3161e12ea4
2014-08-11 18:49:52 -07:00
James Zern
2ee221a2dc Merge "vp9_write_bit_buffer: fix function name typo" 2014-08-11 18:43:51 -07:00
Jingning Han
245e57c78e Merge "Enable fast forward txfm and quant for rate-distortion search" 2014-08-11 17:56:48 -07:00
Dmitry Kovalev
3839fd7712 Merge "Implementing right flushing for simple_encoder." 2014-08-11 16:32:51 -07:00
Alex Converse
2402aba1df Merge "Add tune-content command line option" 2014-08-11 15:47:58 -07:00
Lou Quillio
bb214efcb9 Update PATENTS to reflect s/VP8/WebM/g
Sync with http://www.webmproject.org/license/additional/

modified:   PATENTS
modified:   third_party/libwebm/PATENTS.TXT

Change-Id: I97fc588589654c83c6cb7e2e2b909f23a370db8a
2014-08-11 15:06:58 -07:00
Dmitry Kovalev
a4e85a5f4f Implementing right flushing for simple_encoder.
simple_encoder: Flush encoder. According to the current API spec we need
to call vpx_codec_encode() until vpx_codec_get_cx_data() returns NULL.

Change-Id: Ibc37706e5257a3d51e5421ca17f77ab41249d9b5
2014-08-11 14:10:33 -07:00
Minghai Shang
136a022d71 [spatial svc]Remove CONFIG_SPATIAL_SVC for ss_enable_auto_alt_ref in vpx_codec_enc_cfg to fix heap-overflow issue in asan config
Change-Id: Icdf08501db5f416285f751d316941dfacd2c69ba
2014-08-11 13:43:25 -07:00
James Zern
6a2e9ef20a vpx_codec_decode: check data size
When a valid data pointer is given make sure the size is greater than
zero.
A previous check for vp9 was incorrectly removed in:
7050074 Make the api behavior conform to api spec.

No semantics for valid pointers + 0-sized frames are defined for VPx
codecs, so move the check to vpx_codec_decode(). This avoids an assert
in vp9.

+ add some basic invalid param testing for decoder init/decode/destroy

Change-Id: I99f9cef6076d15874fd72ac973f2685d8a2353c3
2014-08-11 11:44:00 -07:00
Dmitry Kovalev
ccddd5d0f9 Merge "Removing unised OUTPUT_YUV_SRC define." 2014-08-11 11:03:20 -07:00
Jingning Han
5b63c2797a Merge "Integrate fast txfm and quant path into skip_recode system" 2014-08-11 08:53:34 -07:00
Jingning Han
9da4cd94f5 Merge "Extend skip_txfm flag into array to cover YUV planes" 2014-08-11 08:53:25 -07:00
Deb Mukherjee
82481405ab Merge "Adds spatial-svc macros to code to allow disabling" 2014-08-10 10:08:42 -07:00
Tom Finegan
93ef0e0e78 Merge "test/vpxenc.sh: Convert vpxenc() to a simple wrapper." 2014-08-08 19:19:03 -07:00
Marco Paniconi
090574c0be Merge "vp8: Code cleanup for control of denoiser mode." 2014-08-08 17:17:15 -07:00
Dmitry Kovalev
55f6ef9e53 Removing unised OUTPUT_YUV_SRC define.
Change-Id: Ia88eebf10c8620dadaa66722543db291e44fe104
2014-08-08 17:14:01 -07:00