Marco
6877acb67e
vp8-denoiser: Avoid doing the mcomp if we don't denoise.
...
Avoid doing the mcomp in denoiser if we don't denoise the
block (because of motion/SSE/skin threshold, etc).
This can reduce encoding time (with denoiser enabled) by ~1.5-2%.
Change-Id: Ia699b68dfd37b89cdf3a82b8aa40e8c8f98a3d4f
2016-04-04 13:25:38 -07:00
Marco Paniconi
71cf9fac83
Merge "vp9-noise estimation: Increase threshold for Low-level."
2016-04-04 17:33:35 +00:00
Marco
9ff73fe092
vp9-noise estimation: Increase threshold for Low-level.
...
This make it more likely clean/low-noise content will
be set as LowLow, and hence no denoising will be done.
Also set early exit on denoising for small blocks.
Change-Id: I4a72bba3e6c5e2d523d304c39deacc9c39bf216c
2016-04-04 09:32:22 -07:00
Marco
a2307ff095
vp9-denoiser. Code cleanup and bugfix.
...
Some cleanup and bugfix: pass mi_row/mi_col (not mv_col/mv_row)
to build_inter_predictors. This only affects case where
the frame is resized, but since denoising is not done on resized
frames, the fix has not effect currently.
Change-Id: I36617a7f0b43b6f49976745f15d400977e6ffa46
2016-04-04 09:11:00 -07:00
James Zern
89b1c9d4be
Merge "dct32x32_test: create fn pointers w/'&' ref"
2016-04-02 19:38:36 +00:00
James Zern
50e05d0651
dct32x32_test: create fn pointers w/'&' ref
...
this helps some toolchains (vs9) resolve the type of the parameter
Change-Id: I116030361fc956e10de82b64c81d5917cddbcd5a
2016-04-02 11:17:29 -07:00
James Zern
c21d437052
vpx_fdct32x32_1_msa: fix accumulator overflow
...
Change-Id: I33a5432eda3416382e1cea06b45082c0c65faa75
2016-04-02 11:04:38 -07:00
James Zern
a0359b8c90
Merge changes I8e9692fc,Ifc06110c
...
* changes:
vpx_fdctNxN_1_c: remove unnecessary store
vpx_fdct32x32_1_c: fix accumulator overflow
2016-04-01 23:12:51 +00:00
Marco Paniconi
2f0067c62b
Merge "vp9-denoiser: Adjust usage of skin and consec_zeromv."
2016-04-01 21:26:08 +00:00
James Zern
f4cae05cd4
vpx_fdctNxN_1_c: remove unnecessary store
...
only output[0] needs to be set, the other values will be ignored in this
case.
Change-Id: I8e9692fc0d6d85700ba46f70c2e899a956023910
2016-04-01 12:21:59 -07:00
Marco
7467ee0458
vp9-denoiser: Adjust usage of skin and consec_zeromv.
...
Change-Id: I250258fc70ec0fcf1b501708c5d4b84685cf882e
2016-04-01 11:50:15 -07:00
Marco
bc6c199785
vp8 denoiser: Some adjustments to usage of skin and motion.
...
Switch to use new skin model.
And fix condition for denoising skin block.
Previous condition did not denoise skin blocks if the selected
mode was non-zero motion in current frame. Modify condition to
also force no denoising if that mode was not selected as zero motion
now and for at least "x" past frames in a row (x = 2).
Change-Id: I00753e3fe45b9a308a7ef43c58f11868e3bfc6b0
2016-04-01 11:36:45 -07:00
Scott LaVarnway
a2a97b869f
VP9: Refactor vp9_decode_block_tokens()
...
Change-Id: I30ab27808ec903f9490f36621fb16c197bd35d16
2016-04-01 04:57:39 -07:00
James Zern
74ed95a33e
Merge "disable vp9_diamond_search_sad_avx"
2016-04-01 03:33:51 +00:00
James Zern
569c0dfc77
Merge "vpx_ports/mem_ops.h: clear some -Wconversion warnings"
2016-04-01 03:31:29 +00:00
Debargha Mukherjee
4aac819a18
Fix some static analysis issues with resize
...
Change-Id: I2e8ada1ae95bd5577344d6f898e6ad4723e38fbd
2016-03-31 14:39:34 -07:00
James Zern
057c1c4034
disable vp9_diamond_search_sad_avx
...
this results in different output than C, observed with 1080p input at
speed 2.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1168
Change-Id: Ie58cf20057f4531d1b1d19c7b7eae9e642587ce5
2016-03-30 17:31:28 -07:00
James Zern
44a9edf406
vpx_ports/mem_ops.h: clear some -Wconversion warnings
...
not strictly necessary, but allows projects using '-Wconversion
-Wno-sign-conversion' to reuse these headers.
Change-Id: Id1398d726c90173ccba9aea66798fcef6f20fa23
2016-03-30 17:02:10 -07:00
Scott LaVarnway
185836116c
Merge "VP9: Eliminate up_available and left_available"
2016-03-30 23:21:07 +00:00
James Zern
0269df41c1
vpx_fdct32x32_1_c: fix accumulator overflow
...
tran_low_t is only 16-bits in non-high-bitdepth mode
Change-Id: Ifc06110c95e86e6d790c44250d52a538b2e9713b
2016-03-30 15:20:20 -07:00
Scott LaVarnway
ba962a5f37
VP9: Eliminate up_available and left_available
...
Use above_mi and left_mi instead.
Change-Id: I0b50e232c31d11da30aa2fb6f91a695aaf725e0c
2016-03-30 04:47:39 -07:00
James Zern
8d8ee1f644
Merge "vp8_peek_si_internal: quiet static analysis warning"
2016-03-30 05:38:59 +00:00
Johann Koenig
904cb53302
Merge "Properly propagate out of memory errors."
2016-03-29 22:36:42 +00:00
Paul Wilkins
aea8d97a74
Merge "Increase min-max q range for normal inter frames."
2016-03-29 14:02:22 +00:00
Jean-Yves Avenard
6f51672c4e
Properly propagate out of memory errors.
...
It would otherwise result in an infinite loop.
Change-Id: Ic03fb220cc048538bd62dee599653187f2093079
2016-03-28 14:14:49 -07:00
Marco
48e7294e48
vp9-denoiser: Incorporate consec_zeromv in skin detection for denoising.
...
Change-Id: Ibe4e1207c0db1779e1358f4566da67c9a07bdb15
2016-03-28 10:57:54 -07:00
Marco Paniconi
86fb8130bf
Merge "vp8-denoiser: Use the same skin detection for model=1 as in vp9."
2016-03-28 16:05:47 +00:00
James Zern
ee1bd86d9c
Revert "third_party: Roll libwebm snapshot."
...
This reverts commit 80ddeb281a
.
breaks Android build and causes valgrind failures in the examples
Change-Id: Ie13ceed2f9f8970af87339b807032a52083f27fe
2016-03-26 12:56:21 -07:00
Tom Finegan
aa1132d1de
Merge "third_party: Roll libwebm snapshot."
2016-03-26 01:41:49 +00:00
Marco
f94124cf31
vp9: 1 pass vbr mode at speed 5: switch to use mv.search to NSTEP.
...
Change only affects 1 pass, vbr, speed = 5 (real-time mode).
Some improvement for high motion content.
AvgPSNR/SSIM metrics for ytlive set all up, on average ~2%,
some clips (high motion ones) up 4/5%.
Encoder speed down: on mynintendo_x1.1280_720.y4m: 47fps -> 44fps.
Change-Id: I9e3eaa6392dcb6b5b44ee6f43004f97ba859bc11
2016-03-25 15:33:55 -07:00
Tom Finegan
80ddeb281a
third_party: Roll libwebm snapshot.
...
4ff5785 cmake: Add C++11 move ctor and member initializer tests.
402ef4d cmake: remove argc and argv from C++11 test main fns.
cbe5c40 Restore original namespaces for mkvmuxer and mkvparser.
504e0f2 Mass file extension update.
79cb980 Android.mk: Update source file locations.
01db4c2 webmids: Move to common/ sub dir.
235ce59 mkvparser: Explicitly reference internal sources in includes.
f578419 mkvmuxer: Move sources to mkvmuxer/ sub dir.
5f1065e webvtt: Organize and clean up webvtt support.
7abe8ac cmake: Add missing dumpvtt target.
f2f87e2 Makefile.unix: Tidy things up.
12f6dc3 Use <stdint.h> types instead of custom typedefs.
0407360 mkvmuxer: Write last block in each Cluster with Duration
008aa63 mkvparser: move to mkvparser sub dir.
e64bf75 Namespace reorg: Make everything a child of libwebm.
5fdb386 cmake: move c++11 checks into build/cxx11_tests.cmake.
3672488 Copy reference block values in Frame::CopyFrom()
91ca780 reapply clang-format
8d34215 Merge "Clean up AddAudioTrack in muxer_tests"
90861d4 Clean up AddAudioTrack in muxer_tests
a9dfb3d Un-ignore webm files in testdata
c5b76d8 Extract PES parser from WebM2Pes tests.
16524e8 cmake: Add include-what-you-use integration.
7015af5 iwyu/vpxpes2ts: Update includes.
c1d6a70 iwyu/webm2pes: Update includes.
110e797 iwyu/libwebm_util: Update includes.
44e31fb iwyu/webm2pes_tests: Update includes.
d919f96 iwyu/mkvwriter: Update includes.
75790e1 iwyu/mkvparser: Update includes.
5f673ca iwyu/webm2pes_main: Update includes.
747244a iwyu/vpxpes2ts_main: Update includes.
94c985f iwyu/mkvmuxerutil: Update includes.
c365630 iwyu/mkvmuxer: Update includes.
b15b8ef iwyu/file_util: Update includes.
3dfba95 iwyu/hdr_util: Update includes.
baba8b1 iwyu/vttdemux: Update includes.
3212ec1 iwyu/webvttparser: Update includes.
b6d8d92 iwyu/sample_muxer_metadata: Update includes.
a9a1a01 iwyu/sample_muxer: Update includes.
e020ffd iwyu/sample: Update includes.
18834bc iwyu/parser_tests: Update includes.
9c00ae3 iwyu/muxer_tests: Update includes.
41a17eb iwyu/test_util: Update includes
b6174be muxer_tests: Fix windows brokenness.
e092515 file_util: Remove tmpnam() usage in MSVC.
b9dc4ac test_util: Don't pass NULL to std::string() in GetTestDataDir().
1f74651 webmts: Move PES/TS sources to m2ts sub directory.
1b895e9 Rename libwebm_utils to libwebm_util.
2fabcd3 sample_muxer: Replace std::tmpnam() with libwebm::GetTempFileName().
e6a0033 Add file_util.
87f9bea Move hdr_util to common.
1f64aaf cmake: Expand C++11 tests.
6dc81c1 muxer_tests: Die immediately when unable to prep for file writing.
521ce4d webm2pes: Fix type limit warning.
64c4163 vpxpes2ts: Fix sign-compare and type-limits warnings.
741ba68 muxer_tests: Replace std::tmpnam() with GetTempFileName().
6159e83 Merge "test_util: add missing include for close()"
ff81c74 parser_tests: Fix sign compare warnings.
163f57d test_util: add missing include for close()
7c89eb5 Merge "test_util: Remove tmpnam() usage on non-MSVC targets."
c4b8686 Merge "webm2pes_tests: Fix sign compare warnings."
9c9f546 Merge "muxer_tests: Fix sign compare warnings."
0fbefef webm2pes: Silence sign compare warnings.
599e4e8 cmake: Silence clang/gcc deprecation warnings.
82f376f test_util: Remove tmpnam() usage on non-MSVC targets.
4d31d6b webm2pes_tests: Fix sign compare warnings.
07ed7e0 muxer_tests: Fix sign compare warnings.
ae2fbfe parser_tests: Silence sign compare warning.
f488528 libwebm_utils: Silence sign compare warning.
777247b Add C++11 detection to cmake file.
9b89187 Add missing include to libwebm_utils.h.
421874a Merge "mkvmuxer: Fix GCC build."
dd6ab35 Set the mastering metadata on the muxers colour
8b61ef5 mkvmuxer: Fix GCC build.
353b050 Add hdr_util.
c92e080 mkvmuxer: Use kValueNotPresent in Colour/MasteringMetadata.
2d09128 Colour element: TransferFunction renamed to TransferCharacteristics.
f2fc28e Colour element: Matrix renamed to MatrixCoefficients.
e0b1135 cmake: Minor CMakeLists.txt refactor.
1e1872b Revert change from auto_ptr to unique_ptr in sample code.
d7fc382 Track updates to the proposed Matroska Colour spec.
99981ee sample(mkvparser): Output Colour element when present.
375e416 mkvmuxer: Fix Colour element support.
eaeca34 mkvmuxer: Fix bits per channel in the colour element.
1dab7f3 mkvparser: Avoid crash when encountering a Colour element.
a1517aa sample_muxer: copy the Colour element.
ea9dd94 Merge "webm2pes: Fix tests."
8635c5b Merge "mkvparser: Make omitted values detectable in the Colour element."
ae4ae7e mkvparser: Make omitted values detectable in the Colour element.
8c8cba6 webm2pes: Fix tests.
a281a22 mkvmuxer: Add support for the Colour element and its children.
41a9147 sample_muxer: clang-format include order fix.
939a64d Signal E_BUFFER_NOT_FULL in EBMLHeader::Parse
fb1406e mkvparser: Add support for the Colour element and its children.
22bfdf7 Merge "parser_tests: Add validation of cues."
b873000 parser_tests: Add validation of cues.
799891e Update .gitignore to include some new binaries
e051c60 Merge "Update muxer test gold files"
b81d5f0 Update muxer test gold files
48b1e9a mkvparser: clang format run
93c4690 webm2pes: Add PES packet parsing tests.
65ca38f Merge "test_util: Fix gcc build."
520ca6c Merge "parser_tests: Fix gcc build."
37a38ca test_util: Fix gcc build.
ee0ebba parser_tests: Fix gcc build.
c32f970 Replace auto_ptr usage with unique_ptr.
e569ab0 webm2pes/ts: Fix gcc build.
2e55d6c Merge "add bitcode embedding support for ios"
0cfb2dc add bitcode embedding support for ios
bb8cefd webm2ts: Converts WebM VPx video to a MPEG TS.
453bf44 webm2pes: Begin addition of tests.
9299bbb libwebm: Googletest integration.
3bec1ba Merge changes I7bcb5b3e,I8ce733be,I98a928ff,I71910f24
5c83bbe Fix ParseElementHeader to support 0 payload elements
be35869 libwebm_utils: Add FileDeleter.
d6db1e1 webm2pes: Add a WebM parser init method.
aa3593e webm2pes: Rename Convert to ConvertToFile().
e8fca12 webm2pes: Fix super frame splitting.
3cb96b6 webm2pes: Move main() and helper functions into their own files.
021432b webm2pes: Fix the linux build.
82ac5fc Remove RELEASE.TXT.
852e173 webm2pes: Split super frames and packetize large frames.
faf85c2 webm2pes: Refactor header/optional header writing.
7c19266 Add Webm2Pes.
01fdee4 mkvmuxer: Disallow AddTrack() after Tracks element is output.
1ad314e mkvparser: EBMLHeader::Parse: remove dead init
Change-Id: I4026f52f59c6f7644af49b0393af502079b2fbec
2016-03-25 10:29:00 -07:00
James Zern
1bf7a0fb29
vp8_peek_si_internal: quiet static analysis warning
...
the vpx_decoder layer guarantees that when called directly this won't
receive NULL data and the reuse via decode() is protected by a NULL data
check and 0 size check (NULL data and non-zero data size is protected by
the vpx_decoder layer).
Change-Id: I7437fb5ca4e4aa431963d55b909d4d920f339be3
2016-03-25 10:00:30 -07:00
Marco
5f90713b2b
vp8-denoiser: Use the same skin detection for model=1 as in vp9.
...
Keep setting for model = 0 for now in vp8.
Change-Id: I79c5fa24d5d16b14651f44db9526aa01dbd70ec9
2016-03-24 15:44:40 -07:00
James Zern
79dc6c0393
Merge changes Id0a490bc,I1b4a0504
...
* changes:
vp9/inverse_transform_block_inter: move eob check
vp9/inverse_transform_block_intra: move eob check
2016-03-24 22:04:11 +00:00
Paul Wilkins
04b4a5f25e
Merge "Force recode for bad rate misses."
2016-03-24 18:05:24 +00:00
Paul Wilkins
27a6be1419
Merge "Fix some HBD scaling bugs."
2016-03-24 18:04:52 +00:00
Scott LaVarnway
82762e240c
VP9: Eliminate extra mv clamp in decoder
...
The mv is clamped in dec_find_mv_refs() to a smaller region
than the clamp in dec_find_best_ref_mvs(). See clamp_mv_ref
and clamp_mv2.
Change-Id: I47dd5f7fa8b42f2cc593559b4d7c782fe7bcb1db
2016-03-24 04:04:37 +00:00
James Zern
715d3bbd05
Merge "Add a TODO for using tile rows while encoding with multiple threads"
2016-03-24 03:57:28 +00:00
James Zern
c20c955e73
vp9/inverse_transform_block_inter: move eob check
...
1 level up. the function is a no-op for eob == 0 and shouldn't be called
Change-Id: Id0a490bcce78c2b2ec6ea24d942191eb9b2bc16e
2016-03-23 20:41:05 -07:00
James Zern
f64a30acef
vp9/inverse_transform_block_intra: move eob check
...
1 level up. the function is a no-op for eob == 0 and shouldn't be called
Change-Id: I1b4a050424cf2d0ea820120c8e7c4fb3065e39e7
2016-03-23 20:24:17 -07:00
Johann Koenig
813221a163
Merge "Allows sub-second frame rates in vp9"
2016-03-23 20:04:59 +00:00
Yunqing Wang
5486e1d8f3
Add a TODO for using tile rows while encoding with multiple threads
...
Added a TODO in vp9_cx_iface.c.
Change-Id: Ib987f20cab8417340a23ae676616de1df48e8a12
2016-03-23 12:23:02 -07:00
Yunqing Wang
a21fc45b13
Merge "Prevent encoder crash caused by row tile dependencies"
2016-03-23 15:52:36 +00:00
Marco Paniconi
c8fc6ed14a
Merge "vp9: Non-rd partition selection: use consec_zeromv to set sb_is_skin."
2016-03-23 01:06:57 +00:00
Yaowu Xu
a624692776
Merge "Simplify the loopfilter synchronization logic in VP8 encoder"
2016-03-22 23:45:28 +00:00
Yunqing Wang
dc5f7712f2
Prevent encoder crash caused by row tile dependencies
...
In multi-thread case, the encoder may crash if using encoder option
tile-rows > 0. To prevent that, force tile-rows=0 in this situation.
This is a workaround for WebM issue 1095:
https://bugs.chromium.org/p/webm/issues/detail?id=1095
The further fix can be done by adding synchronizations after a tile
row is encoded. But this will hurt multi-threaded encoder performance.
So, it is recommended to use tile-rows=0 while encoding with threads
> 1.
Change-Id: I656cbcc200f8d0410d09530e7981ad8f32fe7bc9
2016-03-22 16:15:12 -07:00
Yunqing Wang
b198bcd528
Simplify the loopfilter synchronization logic in VP8 encoder
...
This patch was to fix a reported Hangouts deadlock/freezing issue
in VP8 encoder(issue 27232610). The original encoder loopfilter
synchronization happened in the following frame, which was prone
to causing problems in some complex use cases. This patch simplified
the synchronization logic.
More testing needs to be done.
Change-Id: I38fd3f35d11f98fae1e44546aa5e4c6d6e19c4be
2016-03-22 14:13:18 -07:00
Paul Wilkins
a84f1f846e
Increase min-max q range for normal inter frames.
...
Allow the encode loop to select from a wider range of Q values
when encoding normal (non arf or kf) frames.
This change is targeted at improving psycho-visual quality in some
easy sections that are currently not getting enough bits.
This is likely to be a little worse from a metrics perspective and may also
have a small impact on encode speed in cases where extra recode
iterations are triggered.
Change-Id: I667eebf33c753bcbcf8b93596467369e5708b889
2016-03-22 12:56:05 -07:00
Paul Wilkins
9d8ead125d
Force recode for bad rate misses.
...
Adds a second threshold for recodes even on frames where
recode is normally disabled if there is a big rate miss.
Change-Id: Ifd4a34707da55ec15eb7cfb87de4644b8d76deb2
2016-03-22 12:45:27 -07:00
Paul Wilkins
ee35f4dede
Fix some HBD scaling bugs.
...
Fixed a bug for HBD in stats output and scaling of a threshold
within the first pass code.
Change-Id: Icd0463d78cc9ce4661b027b0612c55c0628d212f
2016-03-22 12:28:02 -07:00