Marco [Wed, 20 Jan 2016 21:51:12 +0000 (13:51 -0800)]
vp9-svc: Allow frame-dropping in svc datarate control tests.
Remove comment(s) and enable frame-dropper for tests.
Frame dropper for 1 pass svc was fixed a while ago:
https://chromium-review.googlesource.com/#/c/309230/
Change-Id: I5fd3192825b22e562db9210d3dc7b246a1799d8d
Yaowu Xu [Wed, 20 Jan 2016 18:12:51 +0000 (18:12 +0000)]
Merge "Remove duplicate definitions"
Yaowu Xu [Wed, 20 Jan 2016 16:56:41 +0000 (08:56 -0800)]
Remove duplicate definitions
This fixes the build errors with msvc.
Change-Id: Ie2716e4c15a1bacfb00a8d41ec3283d718af88fc
Marco [Fri, 15 Jan 2016 17:35:41 +0000 (09:35 -0800)]
Vidyo patch: Changes to the scalability code.
Changes to mode selection for 1 pass SVC mode:
use base layer motion vector, changes to intra-prediction.
Change-Id: I3e883aa04db521cfa026a0b12c9478ea35a344c9
Scott LaVarnway [Wed, 20 Jan 2016 12:19:27 +0000 (12:19 +0000)]
Merge "VP9: Eliminate MB_MODE_INFO"
James Zern [Wed, 20 Jan 2016 02:27:29 +0000 (02:27 +0000)]
Merge "Use input framerate as timebase if none was explicitly specified."
Yunqing Wang [Wed, 20 Jan 2016 01:51:37 +0000 (01:51 +0000)]
Merge "Amend and improve VP8 multithreading implementation"
Scott LaVarnway [Wed, 20 Jan 2016 00:40:20 +0000 (16:40 -0800)]
VP9: Eliminate MB_MODE_INFO
Change-Id: Ifa607dd2bb366ce09fa16dfcad3cc45a2440c185
Alex Converse [Tue, 19 Jan 2016 20:04:28 +0000 (20:04 +0000)]
Merge "Deduplicate sign cost for ONE/TWO/THREE/FOUR tokens"
Ronald S. Bultje [Mon, 18 Jan 2016 19:03:45 +0000 (14:03 -0500)]
Use input framerate as timebase if none was explicitly specified.
After patch:
$ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30
$ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null -
[..]
[Parsed_psnr_0 @ 0x7f8913c21e40] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271
Before patch:
$ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30
$ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null -
[..]
[Parsed_psnr_0 @ 0x7fbdaac22780] PSNR y:27.427366 u:41.505376 v:36.853477 average:28.990890 min:22.219454 max:52.509271
$ ffmpeg -i x.ivf -f rawvideo x.yuv
$ ffmpeg -f rawvideo -vcodec rawvideo -video_size 352x240 -framerate 29.97 -i x.yuv -i tennis_sif.y4m -lavfi psnr -f null -
[..]
[Parsed_psnr_0 @ 0x7fadf9e013a0] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271
Change-Id: Ifac2d6c2ff8379b2d318fe5cfe4be0bf1bc9f27f
Marco [Fri, 15 Jan 2016 23:02:09 +0000 (15:02 -0800)]
vp9-denoiser: Set motion threshold for skin_map to 0.
More aggresive on avoiding denoising on skin.
May supplement this later by adding condtion onn consec_zeromv.
Change-Id: Ied92b332f9b24e821d2009f81d1565758588d9a5
Alex Converse [Fri, 15 Jan 2016 21:55:29 +0000 (13:55 -0800)]
Deduplicate sign cost for ONE/TWO/THREE/FOUR tokens
Change-Id: I9c383d604dfd240e38b198ac5bf86ddd3456f442
Debargha Mukherjee [Thu, 14 Jan 2016 16:13:56 +0000 (16:13 +0000)]
Merge "Adding an aq mode for 360 videos"
Scott LaVarnway [Thu, 14 Jan 2016 13:36:40 +0000 (13:36 +0000)]
Merge "VP9: inline vp9_use_mv_hp()"
Scott LaVarnway [Thu, 14 Jan 2016 13:30:30 +0000 (13:30 +0000)]
Merge "VP9: Remove decoder args from find_mv_refs_idx()"
James Zern [Thu, 14 Jan 2016 04:13:24 +0000 (04:13 +0000)]
Merge changes I6998e15f,I88891d9f
* changes:
Remove unused POSIX_MMAP references
Remove unused stdint.h check
Debargha Mukherjee [Wed, 16 Dec 2015 23:34:07 +0000 (15:34 -0800)]
Adding an aq mode for 360 videos
Different quality levels are used for different regions in
the frame depending on how far they are vertically from the
center. Specifically, three segments are used based on the
mi_row index with respect number to the number of mi_rows in
the frame.
Change-Id: Ifc8b777bc58ea8521dffc4640360c67d99f8d381
Alex Converse [Wed, 13 Jan 2016 21:51:23 +0000 (21:51 +0000)]
Merge "Revert "Merge "Change highbd variance rounding to prevent negative variance."""
Scott LaVarnway [Wed, 13 Jan 2016 21:30:40 +0000 (13:30 -0800)]
VP9: Remove decoder args from find_mv_refs_idx()
The decoder does not use this function.
Change-Id: Ie67f909c0f4108ef286789c70df867d4b960a780
Yaowu Xu [Wed, 13 Jan 2016 21:07:53 +0000 (21:07 +0000)]
Merge "Fix encoder crashes and enc/dec mismatches"
Alex Converse [Wed, 13 Jan 2016 19:18:19 +0000 (11:18 -0800)]
Revert "Merge "Change highbd variance rounding to prevent negative variance.""
This reverts commit
ea48370a500537906d62544ca4ed75301d79e772, reversing
changes made to
15939cb2d76c773950cda40988ede89e111872ea.
The commit was insufficiently tested and causes failures.
Change-Id: I623d6fc2cd3ae6fd42d0abab1f8eada465ae57a7
Yaowu Xu [Tue, 12 Jan 2016 17:47:07 +0000 (09:47 -0800)]
Fix encoder crashes and enc/dec mismatches
This commit adds the logic for segmentation map initialization and
disable temporal update of segmentation map when error-resilient
mode is on. It fixes the enc/dec mistmates (release build) and
assertions(debug) when both aq-mode and error-resilient are on.
Change-Id: Id2155e8b28962cf1f64494f4df0c8d79499b6890
Scott LaVarnway [Wed, 13 Jan 2016 16:02:05 +0000 (08:02 -0800)]
VP9: inline vp9_use_mv_hp()
Change-Id: Ib275bfc4c29c572d6c70e5ec6dbfc241590d3e3e
Alex Converse [Wed, 13 Jan 2016 00:25:54 +0000 (00:25 +0000)]
Merge "Change highbd variance rounding to prevent negative variance."
Scott LaVarnway [Tue, 12 Jan 2016 20:00:59 +0000 (20:00 +0000)]
Merge "VP9: Eliminate unnecessary nearest/near searches"
Scott LaVarnway [Tue, 12 Jan 2016 13:09:06 +0000 (05:09 -0800)]
VP9: Eliminate unnecessary nearest/near searches
Prior to this patch, read_inter_block_mode_info() would
find the nearmv and nearestmv for all modes. Now it does not
search for ZEROMV modes and breaks out early for NEARMV and
NEWMV modes.
Change-Id: Ifa7b1eaf58bb03b9c7792ea5012fef477527d0fd
Debargha Mukherjee [Fri, 8 Jan 2016 20:01:51 +0000 (12:01 -0800)]
Remove experimental flag for ext_tx
Also includes a bug fix.
Change-Id: Ia49ed00f8ffd1531c10bcf89b1f497310ee7cb82
Debargha Mukherjee [Fri, 8 Jan 2016 20:02:41 +0000 (20:02 +0000)]
Merge "Modifies inter/intra coding to allow all tx types"
Yunqing Wang [Thu, 7 Jan 2016 02:27:37 +0000 (18:27 -0800)]
Amend and improve VP8 multithreading implementation
There are flaws in current implementation of VP8 multithreading encoder
and decoder as reported in the following issue:
https://code.google.com/p/chromium/issues/detail?id=158922
Although the data race warnings are harmless, and wouldn't cause real
problems while encoding and decoding videos, it is better to fix the
warnings so that VP8 code could pass the TSan test.
To synchronize the thread-shared data access and maintain the speed
(i.e. decoding speed), use multiple mutexes based on mb_rows to reduce
the number of synchronizations needed, make the reads and writes of
the shared data protected, and reduce the number of mb_col writes by
nsync times.
The decoder speed tests showed < 3% speed loss while using 2 ~ 4
threads.
Change-Id: Ie296defffcd86a693188b668270d811964227882
Debargha Mukherjee [Wed, 6 Jan 2016 19:24:57 +0000 (11:24 -0800)]
Modifies inter/intra coding to allow all tx types
The nominal tx_type for a given mode is used as a context
to encode the actual tx_type for intra.
Results:
derflr: -0.241% BDRATE
hevcmr: -0.366% BDRATE
Change-Id: Icfe7b0a58d79bc6497a06e3441779afec6e01e21
James Zern [Fri, 8 Jan 2016 02:32:38 +0000 (02:32 +0000)]
Merge "Update IMAGE_ABI_VERSION which wasn't updated after color_range enum was introduced."
Yaowu Xu [Thu, 7 Jan 2016 23:00:00 +0000 (23:00 +0000)]
Merge "Enable encoder to avoid 8x4 or 4x8 partitions"
Yaowu Xu [Thu, 7 Jan 2016 20:26:09 +0000 (20:26 +0000)]
Merge "Fix a typo"
Yaowu Xu [Thu, 7 Jan 2016 17:43:26 +0000 (09:43 -0800)]
Enable encoder to avoid 8x4 or 4x8 partitions
This commit enables encoder to avoid 8x4 and 4x8 partitions for
scaled reference frames when libvpx is configured and built with
--enable-better-hw-compatibility
Change-Id: I02ad65c386f5855f4325d72570c49164ed52f413
Yaowu Xu [Thu, 7 Jan 2016 17:29:34 +0000 (09:29 -0800)]
Fix a typo
Change-Id: I12de2dd5e5f375551804166188d76a9ad8067b41
Marco [Wed, 6 Jan 2016 19:30:02 +0000 (11:30 -0800)]
vp9-svc: Fix to avoid msan unitialized value.
Move the logic for forcing zero_mode after the
(ref_frame & flag_list) check.
This was causing an memory leak under msan:
https://bugs.chromium.org/p/webrtc/issues/detail?id=5402
Change-Id: Ie9d243369f8ed7c332f46178275945331da4fd85
Yaowu Xu [Tue, 5 Jan 2016 02:24:18 +0000 (18:24 -0800)]
Assert no mv clamping for scaled references
Under --enable-better-hw-compabibility, this commit adds the asserts
that no mv clamping is applied for scaled references, so when built
with this configure option, decoder will assert if an input bitstream
triggger mv clamping for scaled reference frames.
Change-Id: I786e86a2bbbfb5bc2d2b706a31b0ffa8fe2eb0cb
Yaowu Xu [Tue, 5 Jan 2016 20:35:46 +0000 (20:35 +0000)]
Merge "Assert no 8x4/4x8 partition for scaled references"
Marco Paniconi [Tue, 5 Jan 2016 16:56:54 +0000 (16:56 +0000)]
Merge "vp9-skin detection: Refactoring."
Yaowu Xu [Thu, 3 Dec 2015 01:00:26 +0000 (17:00 -0800)]
Assert no 8x4/4x8 partition for scaled references
This commit adds a new configure option:
--enable-better-hw-compatibility
The purpose of the configure option is to provide information on known
hardware decoder implementation bugs, so encoder implementers may
choose to implement their encoders in a way to avoid triggering these
decoder bugs.
The WebM team were made aware of that a number of hardware decoders
have trouble in handling the combination of scaled frame reference
frame and 8x4 or 4x8 partitions. This commit added asserts to vp9
decoder, so when built with above configure option, the decoder can
assert if an input bitstream triggers such decoder bug.
Change-Id: I386204cfa80ed16b50ebde57f886121ed76200bf
Yaowu Xu [Tue, 5 Jan 2016 02:29:05 +0000 (02:29 +0000)]
Merge "vp10: only assume ONLY_4X4 if segmentation is disabled."
Yaowu Xu [Tue, 5 Jan 2016 02:28:58 +0000 (02:28 +0000)]
Merge "vp10: skip coding of txsz for lossless-segment blocks."
Marco [Tue, 5 Jan 2016 00:48:15 +0000 (16:48 -0800)]
vp9-skin detection: Refactoring.
Add function to compute skin map for a given block, as its
used in several places (cyclic refresh, noise estimation, and denoising).
Change-Id: Ied622908df43b6927f7fafc6c019d1867f2a24eb
Marco [Mon, 4 Jan 2016 20:19:56 +0000 (12:19 -0800)]
vp9-svc: Set initial values for ext_buffer/flag indices.
Set initial values for these parameters in the vp9_init_layer_context().
This also fixes an issue in the svc-bypass mode when frame flags are
passed via the vpx_codec_encode().
Change-Id: I0968f04672f8d3d2fe2cea6b8a23f79f80d7a8b1
Ronald S. Bultje [Mon, 4 Jan 2016 20:13:29 +0000 (15:13 -0500)]
vp10: only assume ONLY_4X4 if segmentation is disabled.
Otherwise, per-segment lossless might mean that some segments are not
lossless and they could still want to use another mode. The per-block
tx points remain uncoded on blocks where (per the segment id) the Q
value implies lossless.
Change-Id: If210206ab1fe3dd11976797370c77f961f13dfa0
Ronald S. Bultje [Mon, 4 Jan 2016 20:20:50 +0000 (15:20 -0500)]
vp10: skip coding of txsz for lossless-segment blocks.
Change-Id: Ic23c10b6d2a9fed3abe69c6bf10e910832444f2c
Sasi Inguva [Mon, 4 Jan 2016 19:56:56 +0000 (11:56 -0800)]
Update IMAGE_ABI_VERSION which wasn't updated after color_range enum was introduced.
Change-Id: I83703851f65f93573ebf7d2c0d0f056ba879c07a
Jian Zhou [Mon, 28 Dec 2015 18:17:03 +0000 (18:17 +0000)]
Merge "Code clean of highbd_tm_predictor_32x32"
Jian Zhou [Mon, 28 Dec 2015 18:16:13 +0000 (18:16 +0000)]
Merge changes I0139f8e9,I7d2545fc
* changes:
Code clean of highbd_tm_predictor_16x16
Code clean of highbd_dc_predictor_32x32
Jingning Han [Wed, 23 Dec 2015 02:34:18 +0000 (02:34 +0000)]
Merge "Fix sub8x8 motion search on scaled reference frame"
Jian Zhou [Wed, 23 Dec 2015 00:51:57 +0000 (16:51 -0800)]
Code clean of highbd_tm_predictor_32x32
Remove the ARCH_X86_64 constraint. No performance hit on both
big core and small core.
Change-Id: I39860b62b7a0ae4acaafdca7d68f3e5820133a81
Jian Zhou [Wed, 23 Dec 2015 00:34:40 +0000 (16:34 -0800)]
Code clean of highbd_tm_predictor_16x16
Remove the ARCH_X86_64 constraint.
Change-Id: I0139f8e998cc5525df55161c2054008d21ac24d4
Jian Zhou [Mon, 21 Dec 2015 19:52:23 +0000 (11:52 -0800)]
Code clean of highbd_dc_predictor_32x32
Remove the ARCH_X86_64 constraint.
Change-Id: I7d2545fc4f24eb352cf3e03082fc4d48d46fbb09
Marco Paniconi [Tue, 22 Dec 2015 20:18:24 +0000 (20:18 +0000)]
Merge "aq-mode=3: Don't reset segment if block is determined to be skin."
Marco [Mon, 21 Dec 2015 18:35:05 +0000 (10:35 -0800)]
aq-mode=3: Don't reset segment if block is determined to be skin.
For coding block sizes <=16X16, if the block is determined to be skin,
then always allow for that block to be candidate for refresh. So if that
block happens to be on the boost segment(s), segment won't get reset to 0
and delta-q will be applied.
PSNR/SSIM metrics neutral (little/no change) on RTC clips.
Speed increase small/negligible (< 1%).
Some visual improvement on faces in a few RTC clips.
Change-Id: I6bf0fce6f39d820b491ce05d7c017ad168fce7d6
James Zern [Tue, 22 Dec 2015 16:45:01 +0000 (16:45 +0000)]
Merge "Code clean of highbd_tm_predictor_4x4"
James Zern [Tue, 22 Dec 2015 16:30:37 +0000 (16:30 +0000)]
Merge "Code clean of highbd_dc_predictor_4x4"
Jian Zhou [Mon, 21 Dec 2015 18:07:48 +0000 (18:07 +0000)]
Merge "Code clean of highbd_v_predictor_4x4"
Yunqing Wang [Sat, 19 Dec 2015 04:29:39 +0000 (04:29 +0000)]
Merge "Fix for issue 1114 compile error"
James Zern [Sat, 19 Dec 2015 03:19:32 +0000 (19:19 -0800)]
sad_sse2: fix sad4xN(_avg) on windows
reduce the register count by 1 to avoid xmm6 and unnecessarily
penalizing the other users of the base macro
Change-Id: I59605c9a41a31c1b74f67ec06a40d1a7f92c4699
Jian Zhou [Sat, 19 Dec 2015 02:43:41 +0000 (18:43 -0800)]
Code clean of highbd_tm_predictor_4x4
Replace MMX with SSE2, reduce mem access to left neighbor,
loop unrolled.
Change-Id: I941be915af809025f121ecc6c6443f73c9903e70
Jian Zhou [Fri, 18 Dec 2015 23:25:27 +0000 (15:25 -0800)]
Code clean of highbd_v_predictor_4x4
MMX replaced with SSE2, same performance.
Change-Id: I2ab8f30a71e5fadbbc172fb385093dec1e11a696
Jian Zhou [Fri, 18 Dec 2015 20:45:23 +0000 (12:45 -0800)]
Code clean of highbd_dc_predictor_4x4
MMX replaced with SSE2, same performance.
Change-Id: Ic57855254e26757191933c948fac6aa047fadafc
Marco Paniconi [Fri, 18 Dec 2015 17:45:49 +0000 (17:45 +0000)]
Merge "Non-rd speed >=5: Include H/V intra for bsize=16x16."
Peter de Rivaz [Mon, 14 Dec 2015 16:35:29 +0000 (16:35 +0000)]
Fix for issue 1114 compile error
In 32-bit build with --enable-shared, there is a lot of
register pressure and register src_strideq is reused.
The code needs to use the stack based version of src_stride,
but this doesn't compile when used in an lea instruction.
This patch also fixes a related segmentation fault caused by the
implementation using src_strideq even though it has been
reused.
This patch also fixes the HBD subpel variance tests that fail
when compiled without disable-optimizations.
These failures were caused by local variables in the assembler
routines colliding with the caller's stack frame.
Change-Id: Ice9d4dafdcbdc6038ad5ee7c1c09a8f06deca362
Jian Zhou [Fri, 18 Dec 2015 01:39:20 +0000 (01:39 +0000)]
Merge "Code clean of sad4xN(_avg)_sse"
Marco [Fri, 18 Dec 2015 01:13:01 +0000 (17:13 -0800)]
Non-rd speed >=5: Include H/V intra for bsize=16x16.
H/V intra mode was only enabled for bsize < 16x16,
enable it also for bsize=16x16.
Metrics are neutral with this change:
Overall very small gain (0.1%), small visual gain on some RTC clips.
Change-Id: Ib2d7a44382433bfc11cf324aa3cc5c382ea9e088
Johann [Fri, 18 Dec 2015 01:04:11 +0000 (17:04 -0800)]
Remove unused POSIX_MMAP references
Change-Id: I6998e15f9ed2849a270033217c02e27c79ee8343
Johann [Fri, 18 Dec 2015 00:51:59 +0000 (16:51 -0800)]
Remove unused stdint.h check
https://bugs.chromium.org/p/webm/issues/detail?id=1119
Change-Id: I88891d9f0be29ac6f845d2b470e5735dad16e693
Jian Zhou [Wed, 16 Dec 2015 23:52:02 +0000 (15:52 -0800)]
Code clean of sad4xN(_avg)_sse
Replace MMX with SSE2, reduce psadbw ops which may help Silvermont.
Change-Id: Ic7aec15245c9e5b2f3903dc7631f38e60be7c93d
Marco Paniconi [Wed, 16 Dec 2015 23:04:26 +0000 (23:04 +0000)]
Merge "vp9-svc: Fix to allow for 4x4 variance for low resolutions."
James Zern [Wed, 16 Dec 2015 22:53:01 +0000 (22:53 +0000)]
Merge "vpxenc: don't warn about libwebm availability if writing IVF."
Marco [Wed, 16 Dec 2015 16:57:05 +0000 (08:57 -0800)]
vp9-svc: Fix to allow for 4x4 variance for low resolutions.
Change-Id: I3ec08e10d9ebf6d8b8a03004a320523f926e5cc4
Yaowu Xu [Wed, 16 Dec 2015 19:43:11 +0000 (11:43 -0800)]
Move bit_depth init out of setup_quantization
This also fixes a compiling error under --enable-vp9_highbitdepth.
Change-Id: I9d1dcb95d3336d797eb3c23a4702c30b04355357
Ronald S. Bultje [Wed, 16 Dec 2015 18:35:43 +0000 (13:35 -0500)]
vpxenc: don't warn about libwebm availability if writing IVF.
Change-Id: I1a9635a9948458e6c83f5b58764b7e720d98e2ea
Marco Paniconi [Wed, 16 Dec 2015 16:48:07 +0000 (16:48 +0000)]
Merge "Non-rd variance partition: Lower the 64->32 force split threshold."
Marco [Wed, 16 Dec 2015 01:26:27 +0000 (17:26 -0800)]
Non-rd variance partition: Lower the 64->32 force split threshold.
Change-Id: I837551bdf87197bee8a193353bb31f4cff794787
Yaowu Xu [Tue, 15 Dec 2015 17:51:33 +0000 (17:51 +0000)]
Merge changes Icf9b57c3,I9e12da84,Idf5ee179
* changes:
Fixed interval, fixed Q 1 pass test patch.
1 pass VBR mode bug fix.
Fixed interval, fixed Q 1 pass test patch.
Marco Paniconi [Tue, 15 Dec 2015 16:46:06 +0000 (16:46 +0000)]
Merge "Revert "Add "unknown" status for noise estimation.""
Marco Paniconi [Tue, 15 Dec 2015 16:44:40 +0000 (16:44 +0000)]
Revert "Add "unknown" status for noise estimation."
This reverts commit
e15fedb9258251bbb07def57e49e2bd1e0c4c538.
Change-Id: Ibf2bce008c727a9754f88814b7630095fa7b8253
Marco Paniconi [Tue, 15 Dec 2015 16:25:20 +0000 (16:25 +0000)]
Merge "SVC 1 pass mode: Constrain inter mode search within superframe."
Yaowu Xu [Tue, 15 Dec 2015 16:02:39 +0000 (16:02 +0000)]
Merge "Fix a enc/dec mismatch under CONFIG_MISC_FIXES"
Paul Wilkins [Tue, 15 Dec 2015 15:50:05 +0000 (15:50 +0000)]
Merge "1 pass VBR mode bug fix."
paulwilkins [Tue, 15 Dec 2015 15:23:47 +0000 (15:23 +0000)]
Fixed interval, fixed Q 1 pass test patch.
For testing implemented a fixed pattern and delta, 1 pass,
fixed Q, low delay mode.
This has not in any way been tuned or optimized.
Change-Id: Icf9b57c3bb16cc5c0726d5229009212af36eb6d9
paulwilkins [Tue, 15 Dec 2015 14:53:44 +0000 (14:53 +0000)]
1 pass VBR mode bug fix.
(copied from VP9)
The one pass VBR mode selects a Q range based on a
moving average of recent Q values. This calculation
should have been excluding arf overlay frames as these
are usually coded at the highest allowed value. Their
inclusion skews the average and can cause it to drift
upwards even when the clip as a whole is undershooting.
As such it can undermine correct adaptation of the allowed
Q range especially for easy content.
Change-Id: I9e12da84e12917e836b6e53ca4dfe4f150b9efb1
paulwilkins [Mon, 14 Dec 2015 12:34:25 +0000 (12:34 +0000)]
Fixed interval, fixed Q 1 pass test patch.
For testing implemented a fixed pattern and delta, 1 pass,
fixed Q, low delay mode.
This has not in any way been tuned or optimized.
Change-Id: Idf5ee179b277fa15d07a97f14f2ce5bbaae80a04
paulwilkins [Tue, 15 Dec 2015 10:27:51 +0000 (10:27 +0000)]
1 pass VBR mode bug fix.
The one pass VBR mode selects a Q range based on a
moving average of recent Q values. This calculation
should have been excluding arf overlay frames as these
are usually coded at the highest allowed value. Their
inclusion skews the average and can cause it to drift
upwards even when the clip as a whole is undershooting.
As such it can undermine correct adaptation of the allowed
Q range especially for easy content.
Change-Id: I7d10fe4227262376aa2dc2a7aec0f1fd82bf11f9
Yaowu Xu [Tue, 15 Dec 2015 02:49:59 +0000 (18:49 -0800)]
Fix a enc/dec mismatch under CONFIG_MISC_FIXES
The culprit is on the decode side xd->lossless[i] setup was in wrong
location where segment features are not yet decoded.
Also on the encoder side, transform mode was not set consistently
between when tx_mode is selected and how tx_mode is enforced in
tx size selection.
Change-Id: I4c4c32188fda7530cadab9b46d4201f33f7ceca3
James Zern [Tue, 15 Dec 2015 03:41:22 +0000 (03:41 +0000)]
Merge "move vp9_avg to vpx_dsp"
Jacky Chen [Tue, 15 Dec 2015 00:41:23 +0000 (00:41 +0000)]
Merge "Add "unknown" status for noise estimation."
jackychen [Mon, 14 Dec 2015 22:45:28 +0000 (14:45 -0800)]
Add "unknown" status for noise estimation.
Change-Id: I0fe95332ccfa2e1ad2a01a8e7ddd631289e0f8eb
Marco [Mon, 7 Dec 2015 20:23:56 +0000 (12:23 -0800)]
SVC 1 pass mode: Constrain inter mode search within superframe.
Keep track of frame indexes for the references, and
constrain inter mode search for reference with same
temporal alignment.
Improves speed by about ~15%, no noticeable loss in
compression performance.
Change-Id: I5c407a8acca921234060c4fcef4afd7d734201c8
Marco Paniconi [Mon, 14 Dec 2015 22:46:15 +0000 (22:46 +0000)]
Merge "Non-rd variance partition: Adjust logic for 32->16 force split."
James Zern [Fri, 11 Dec 2015 20:40:53 +0000 (12:40 -0800)]
move vp9_avg to vpx_dsp
Change-Id: I7bc991abea383db1f86c1bb0f2e849837b54d90f
Marco [Mon, 14 Dec 2015 20:43:32 +0000 (12:43 -0800)]
Non-rd variance partition: Adjust logic for 32->16 force split.
Lower the threshold for splitting 32x32->16x16 based on average variance,
and add lower bound condition for this split to occur. This prevents
unneccassry splitting for areas with very low variance.
Change-Id: Ibeb33b3d993632c2019f296eb87ef3b7e3568189
Jian Zhou [Mon, 14 Dec 2015 17:56:01 +0000 (17:56 +0000)]
Merge "Code clean of tm_predictor_32x32"
Marco Paniconi [Sat, 12 Dec 2015 02:59:33 +0000 (02:59 +0000)]
Merge "Non-rd variance partition: Adjustments to reduce dragging artifact."
Marco [Wed, 9 Dec 2015 20:26:48 +0000 (12:26 -0800)]
Non-rd variance partition: Adjustments to reduce dragging artifact.
For non-rd variannce partition, speed >= 5:
Adjustments to reduce dragging artifcat of background area near
slow moving boundary.
-Decrease base threshold under low source noise conditions.
-Add condition to split 64x64/32x32 based on average variances
of lower level blocks.
PSNR/SSIM metrics go down ~0.7/0.9% on average on RTC set.
Visually helps to reduce dragging artifact on some rtc clips.
Change-Id: If1f0a1aef1ddacd67464520ca070e167abf82fac
Jian Zhou [Fri, 11 Dec 2015 18:55:46 +0000 (18:55 +0000)]
Merge "Speed up tm_predictor_16x16"
Jian Zhou [Fri, 11 Dec 2015 01:25:18 +0000 (17:25 -0800)]
Code clean of tm_predictor_32x32
Reallocate the xmm register usage so that no ARCH_X86_64 required.
Reduce memory access to the left neighbor by half.
Speed up by single digit on big core machine.
Change-Id: I392515ed8e8aeb02e6a717b3966b1ba13f5be990