]> granicus.if.org Git - libvpx/log
libvpx
5 years agoMerge "VP9 firstpass: Bugfix when mi_col_start/end is odd"
Urvang Joshi [Fri, 4 Jan 2019 23:03:57 +0000 (23:03 +0000)]
Merge "VP9 firstpass: Bugfix when mi_col_start/end is odd"

5 years agoVP9 firstpass: Bugfix when mi_col_start/end is odd
Urvang Joshi [Thu, 3 Jan 2019 22:49:18 +0000 (14:49 -0800)]
VP9 firstpass: Bugfix when mi_col_start/end is odd

Before this patch, if mi_col_end was odd, then the for loop for 'mb_col'
was looping once LESS than it should have been.

For example, if mi_col_end = 47, then the loop was terminating when
mb_col == 23. However, the correct behavior would be to terminate  when
mb_col == 24.

The issue was introduced in:
https://chromium-review.googlesource.com/c/webm/libvpx/+/423279

This can lead to many of the stats being inaccurate, for such videos
(with mi_col_start/end having an odd value).

As an example:
Even for very static content, fp_acc_data->intercount can never reach the
same value as num_mbs. And in turn, pcnt_inter can never reach the value 1
(that is, 100%). This would lead to very static videos NOT being marked
static, and encoded like regular videos.

Note: this is just one possible effect based on observation. Other
issues are also possible based on other stats.

Improvement on some test clips:
-------------------------------
- One test clip saw a gain of -2.580% in VBR mode (and -3.153% in Q
mode). The reason for improvement: a wrongly detected scene cut was
avoided due to corrected value in 'this_frame->pcnt_inter'.
- Some very static clips correctly marked as having 100% zero motion.
This avoided addition of unncecessary alt-refs, thereby reducing the
bitrate.

BDRate (PSNR) on regular sets (VBR mode):
-----------------------------------------
lowres: 0.0
midres: -0.027 (some clips were better/worse, but I double checked that
changes were as expected, given correction in stats calculation).
hdres: 0.0

STATS_CHANGED for the types of videos described above.

Change-Id: Ifbc2c0c0815d23ec4015475680bdf8886f158dcc

5 years agoIncrease memory size in non-greedy-mv
Angie Chiang [Tue, 1 Jan 2019 04:56:31 +0000 (20:56 -0800)]
Increase memory size in non-greedy-mv

The smallest block size of motion field is 4x4, but the mi_unit
size is 8x8, therefore the number of units of motion field is
"mi_rows * mi_cols * 4".

Change-Id: I95292904d757705d39b78af5d0cf2d25f376c642

5 years agoBuild pyramid motion field
Angie Chiang [Sun, 23 Dec 2018 00:42:28 +0000 (16:42 -0800)]
Build pyramid motion field

Change-Id: I43fd61f7946a8a96d444dab5e94a9b01483ffab7

5 years agovp9: psnr diff thres for single vs multi threading.
Jerome Jiang [Wed, 2 Jan 2019 20:55:26 +0000 (12:55 -0800)]
vp9: psnr diff thres for single vs multi threading.

Change the threshold from 0.1 to 0.2.

BUG=webm:1588

Change-Id: I1ca20b360bcae66d09dc898c3266c9f5ac346561

5 years agoAdaptively choose block sizes in temporal filtering
Yunqing Wang [Fri, 21 Dec 2018 22:46:52 +0000 (14:46 -0800)]
Adaptively choose block sizes in temporal filtering

Use variable block sizes in temporal filtering. Based on prediction
errors of 32x32 or 16x16 blocks, choose the block size adaptively.
This improves the coding performance, especially for HD resolutions.

Speed 1 borg test result:
        avg_psnr:  ovr_psnr:    ssim:
lowres:  -0.090     -0.075      -0.112
midres:  -0.120     -0.107      -0.168
hdres:   -0.506     -0.512      -0.547

Change-Id: I8f774e29ecb2e0dd372b32b60c32d8fa30c013a8

5 years agoMerge "fwd_dct32x32 avx2: resolve missing declarations"
Johann Koenig [Mon, 24 Dec 2018 02:06:17 +0000 (02:06 +0000)]
Merge "fwd_dct32x32 avx2: resolve missing declarations"

5 years agoMerge "Revert "Add Tile-SB-Row based Multi-threading in Decoder""
James Zern [Sat, 22 Dec 2018 17:46:54 +0000 (17:46 +0000)]
Merge "Revert "Add Tile-SB-Row based Multi-threading in Decoder""

5 years agotest-data: add missing test data entries
James Zern [Sat, 22 Dec 2018 14:35:35 +0000 (09:35 -0500)]
test-data: add missing test data entries

invalid-bug-1443-v2.ivf{,.res}
invalid-vp80-00-comprehensive-s17661_r01-05_b6-.v2.ivf{,.res}

missed in:
6dbf738a4 vp8: kill all threads on corrupted frame.

Change-Id: I6481f4ad7544ecc069d0e0442888e97e9638fdd3

5 years agoRevert "Add Tile-SB-Row based Multi-threading in Decoder"
James Zern [Sat, 22 Dec 2018 14:26:29 +0000 (09:26 -0500)]
Revert "Add Tile-SB-Row based Multi-threading in Decoder"

This reverts commit 02b3ef7faee5be5ee519856fbb3523d3ab49f6e7.

Reason for revert: fails to build under visual studio

Original change's description:
> Add Tile-SB-Row based Multi-threading in Decoder
>
> Add the multi-thread function that decodes a video row by row instead
> of a tile at a time. Create a job queue for queueing all parse and recon jobs.
> Each SB row of a tile is a job.
>
> Performance Improvement:
>
> Platform        Resolution      3 Threads       4 Threads
> ARM             720p            36.81%          18.37%
>                 1080p           32.27%          14.76%
>
> ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core  @ 2.65 GHz
>
> Change-Id: I3d4dd7a932fc2904c90d9546b2de99c809afd29e

BUG=webm:1587

Change-Id: Ia4c8f5128922a205cd9fd83aaef8a2e73764d4a7

5 years agoMerge "Bound the total allocated memory of frame buffer"
Fyodor Kyslov [Fri, 21 Dec 2018 23:24:29 +0000 (23:24 +0000)]
Merge "Bound the total allocated memory of frame buffer"

5 years agoMerge "fwd_dct32x32 sse2: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 22:02:49 +0000 (22:02 +0000)]
Merge "fwd_dct32x32 sse2: resolve missing declarations"

5 years agoBound the total allocated memory of frame buffer
kyslov [Fri, 21 Dec 2018 20:04:04 +0000 (12:04 -0800)]
Bound the total allocated memory of frame buffer

This CL allows to limit memory consumption of the frame buffer pool. As
the result if compiled with VPX_MAX_ALLOCABLE_MEMORY set codec will fail
if frame resolution requires more memory
This is backported CL aae2183cb58b60d01b8e4e15269ee9f48dd72908 from
aomedia

Tested:
configure --extra-cflags="-DVPX_MAX_ALLOCABLE_MEMORY=536870912"
make
./test_libvpx

BUG=webm:1579

Change-Id: Ic62213b600a7562917d5a339a344ad8db4b6f481

5 years agoMerge "vp9_decodeframe.c: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 21:46:00 +0000 (21:46 +0000)]
Merge "vp9_decodeframe.c: resolve missing declarations"

5 years agoMerge "vp9_highbd_block_error_sse2: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 21:40:49 +0000 (21:40 +0000)]
Merge "vp9_highbd_block_error_sse2: resolve missing declarations"

5 years agoMerge "convolve avx2: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 21:37:53 +0000 (21:37 +0000)]
Merge "convolve avx2: resolve missing declarations"

5 years agoMerge "Improve accuracy of benchmarking"
Elliott Karpilovsky [Fri, 21 Dec 2018 21:31:49 +0000 (21:31 +0000)]
Merge "Improve accuracy of benchmarking"

5 years agofwd_dct32x32 avx2: resolve missing declarations
Johann [Fri, 21 Dec 2018 20:44:49 +0000 (12:44 -0800)]
fwd_dct32x32 avx2: resolve missing declarations

BUG=webm:1584

Change-Id: Iaba854952534a95e710a985acfcab46e093872c2

5 years agofwd_dct32x32 sse2: resolve missing declarations
Johann [Fri, 21 Dec 2018 20:05:24 +0000 (12:05 -0800)]
fwd_dct32x32 sse2: resolve missing declarations

BUG=webm:1584

Change-Id: Ia2d9fcbccbad0c2142a3759e610670b86af0fef4

5 years agovp9_highbd_block_error_sse2: resolve missing declarations
Johann [Fri, 21 Dec 2018 19:59:07 +0000 (11:59 -0800)]
vp9_highbd_block_error_sse2: resolve missing declarations

BUG=webm:1584

Change-Id: I43d051c538bf4a6f6210eefa398dc0901ab8d157

5 years agovp9_decodeframe.c: resolve missing declarations
Johann [Fri, 21 Dec 2018 19:54:21 +0000 (11:54 -0800)]
vp9_decodeframe.c: resolve missing declarations

BUG=webm:1584

Change-Id: Ie0d26b745ab1f5907a6a2dc10fbc5083f3fb0b8d

5 years agoconvolve avx2: resolve missing declarations
Johann [Fri, 21 Dec 2018 19:50:30 +0000 (11:50 -0800)]
convolve avx2: resolve missing declarations

BUG=webm:1584

Change-Id: I5990c0100af83d13f7a4800147473bc997f5e5d1

5 years agoMerge "subpixel_8t sse2: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 19:30:04 +0000 (19:30 +0000)]
Merge "subpixel_8t sse2: resolve missing declarations"

5 years agoMerge "vpx{dec,enc}: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 19:29:38 +0000 (19:29 +0000)]
Merge "vpx{dec,enc}: resolve missing declarations"

5 years agoMerge changes I48b9a9cd,I92504ed4
Johann Koenig [Fri, 21 Dec 2018 19:29:25 +0000 (19:29 +0000)]
Merge changes I48b9a9cd,I92504ed4

* changes:
  subpixel_8t ssse3: resolve missing declarations
  subpixel_8t avx2: resolve missing declarations

5 years agoImprove accuracy of benchmarking
elliottk [Wed, 19 Dec 2018 21:35:30 +0000 (13:35 -0800)]
Improve accuracy of benchmarking

For small code regions, readtsc can give inaccurate results because it does
not account for out-of-order execution. Add x86_tsc_start and x86_tsc_end
that account for this, according to the white paper at

https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ia-32-ia-64-benchmark-code-execution-paper.pdf

Using x86_tsc_start/end will also add in several more instructions; I imagine
this is negligible.

Change-Id: I54a1c8fa7977c34bf91b422369c96f036c93a08a

5 years agosubpixel_8t ssse3: resolve missing declarations
Johann [Thu, 20 Dec 2018 01:51:08 +0000 (17:51 -0800)]
subpixel_8t ssse3: resolve missing declarations

BUG=webm:1584

Change-Id: I48b9a9cdcfe52536f685c41fb2d3c0f3e9192d34

5 years agoMerge "Refactor temporal filtering"
Yunqing Wang [Fri, 21 Dec 2018 17:15:23 +0000 (17:15 +0000)]
Merge "Refactor temporal filtering"

5 years agosubpixel_8t sse2: resolve missing declarations
Johann [Thu, 20 Dec 2018 02:09:11 +0000 (18:09 -0800)]
subpixel_8t sse2: resolve missing declarations

vpx_asm_stubs.c only references these sse2 functions. Combine the files
similar to the way the ssse3/avx2 files are set up.

Mark the intrinsics as static because they are only used within the
macros here. It is unfortunate that the assembly functions can not be
marked static as well.

BUG=webm:1584

Change-Id: I342687a1046ae6ca46ae58644a7c170440de1dfb

5 years agoMerge "vp8: kill all threads on corrupted frame."
Jerome Jiang [Fri, 21 Dec 2018 16:24:09 +0000 (16:24 +0000)]
Merge "vp8: kill all threads on corrupted frame."

5 years agosubpixel_8t avx2: resolve missing declarations
Johann [Thu, 20 Dec 2018 01:58:56 +0000 (17:58 -0800)]
subpixel_8t avx2: resolve missing declarations

BUG=webm:1584

Change-Id: I92504ed4a2e54129c981b7380249962afb7966df

5 years agovpx{dec,enc}: resolve missing declarations
Johann [Thu, 20 Dec 2018 16:54:37 +0000 (16:54 +0000)]
vpx{dec,enc}: resolve missing declarations

BUG=webm:1584

Change-Id: I81e53e579e6fd22b7b21f432256abbe91bf77b15

5 years agoMerge "highbd quantize: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 14:49:38 +0000 (14:49 +0000)]
Merge "highbd quantize: resolve missing declarations"

5 years agoMerge "fdct_quant: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 14:48:07 +0000 (14:48 +0000)]
Merge "fdct_quant: resolve missing declarations"

5 years agoMerge "highbd variance: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 14:43:50 +0000 (14:43 +0000)]
Merge "highbd variance: resolve missing declarations"

5 years agovp8: kill all threads on corrupted frame.
Jerome Jiang [Wed, 19 Dec 2018 19:18:55 +0000 (11:18 -0800)]
vp8: kill all threads on corrupted frame.

If decoder keeps going, threads will be brought up.

BUG=902650,webm:1577

Change-Id: I7765ba134aeed76ec0f58bd05e3a35383e6861c3

5 years agoMerge "Add Tile-SB-Row based Multi-threading in Decoder"
Harish Mahendrakar [Fri, 21 Dec 2018 05:48:12 +0000 (05:48 +0000)]
Merge "Add Tile-SB-Row based Multi-threading in Decoder"

5 years agoMerge "vpx/{vp8,vpx_encoder}.h: fix some typos"
James Zern [Fri, 21 Dec 2018 04:00:21 +0000 (04:00 +0000)]
Merge "vpx/{vp8,vpx_encoder}.h: fix some typos"

5 years agoMerge "vp9: limit lpf workers to min(threads,tiles,sb_rows)"
James Zern [Fri, 21 Dec 2018 03:59:56 +0000 (03:59 +0000)]
Merge "vp9: limit lpf workers to min(threads,tiles,sb_rows)"

5 years agoMerge "vpx_integer.h: remove VPX_EMULATE_INTTYPES"
James Zern [Fri, 21 Dec 2018 03:59:14 +0000 (03:59 +0000)]
Merge "vpx_integer.h: remove VPX_EMULATE_INTTYPES"

5 years agoMerge "svc examples: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 01:14:17 +0000 (01:14 +0000)]
Merge "svc examples: resolve missing declarations"

5 years agofdct_quant: resolve missing declarations
Johann [Fri, 21 Dec 2018 00:27:00 +0000 (00:27 +0000)]
fdct_quant: resolve missing declarations

Store outputs using store_tran_low()

BUG=webm:1584

Change-Id: I213abe047e14625c5ef80df7fa6fdc2a31e40fb6

5 years agovpx_integer.h: remove VPX_EMULATE_INTTYPES
James Zern [Thu, 20 Dec 2018 20:00:18 +0000 (12:00 -0800)]
vpx_integer.h: remove VPX_EMULATE_INTTYPES

platforms supported by the library all offer stdint.h

BUG=webm:1573

Change-Id: I2ad95dfbcfc2d1890c1b7e503340fda8a9849635

5 years agosvc examples: resolve missing declarations
Johann [Fri, 21 Dec 2018 00:03:15 +0000 (00:03 +0000)]
svc examples: resolve missing declarations

BUG=webm:1584

Change-Id: Icb7ba5bb5a6d460c4d0419b76ee54af461ca4a52

5 years agohighbd quantize: resolve missing declarations
Johann [Thu, 20 Dec 2018 23:57:52 +0000 (23:57 +0000)]
highbd quantize: resolve missing declarations

BUG=webm:1584

Change-Id: Ia3f152bf2a37f8a1ea4178eeb1a6a262ea034a8d

5 years agoMerge "tiny_ssim.c: resolve missing declarations"
Johann Koenig [Thu, 20 Dec 2018 23:12:17 +0000 (23:12 +0000)]
Merge "tiny_ssim.c: resolve missing declarations"

5 years agohighbd variance: resolve missing declarations
Johann [Thu, 20 Dec 2018 19:56:45 +0000 (19:56 +0000)]
highbd variance: resolve missing declarations

The optimizations were accidentally disabled during the move from vp9

commit  c3bdffb0a508ad08d5dfa613c029f368d4293d4c
author  Johann <johannkoenig@google.com>        Fri May 15 18:52:03 2015
Move variance functions to vpx_dsp

subpel functions will be moved in another patch.

BUG=webm:1584

Change-Id: Ia7899ee0cfad13a0e1516b89756552064846e81c

5 years agoRefactor temporal filtering
Yunqing Wang [Thu, 20 Dec 2018 01:03:30 +0000 (17:03 -0800)]
Refactor temporal filtering

Refactored temporal filtering, so that it was not hard-coded to
16x16 block size.

Change-Id: I06d0787660ff6eee6a8f02a846ad0e26c6825f54

5 years agoMerge "vp9/encoder: resolve missing declarations"
Johann Koenig [Thu, 20 Dec 2018 19:42:58 +0000 (19:42 +0000)]
Merge "vp9/encoder: resolve missing declarations"

5 years agotiny_ssim.c: resolve missing declarations
Johann [Thu, 20 Dec 2018 17:01:54 +0000 (17:01 +0000)]
tiny_ssim.c: resolve missing declarations

-Wmissing-declarations exposed several unused functions.

BUG=webm:1584

Change-Id: I88dfeb8ffa31253a0fb7674f6fe5fcd496179f96

5 years agovp9/encoder: resolve missing declarations
Johann Koenig [Thu, 20 Dec 2018 16:44:32 +0000 (16:44 +0000)]
vp9/encoder: resolve missing declarations

Mark local functions as 'static.' Found with -Wmissing-declarations

BUG=webm:1584

Change-Id: Icbdb0ceca3dbf3005ca29bfda05d533d241577d0

5 years agoMerge "Remove a special case"
Yaowu Xu [Thu, 20 Dec 2018 16:54:08 +0000 (16:54 +0000)]
Merge "Remove a special case"

5 years agovp9: limit lpf workers to min(threads,tiles,sb_rows)
James Zern [Thu, 20 Dec 2018 08:10:47 +0000 (00:10 -0800)]
vp9: limit lpf workers to min(threads,tiles,sb_rows)

this implementation does not scale well beyond that. this restores the
performance in v1.7.0.

BUG=webm:1574

Change-Id: I8f3464cfe871988fa06ebefe9954811fd002584e

5 years agoMerge "Unify AQ mode rdmult update interface"
Jingning Han [Thu, 20 Dec 2018 07:07:32 +0000 (07:07 +0000)]
Merge "Unify AQ mode rdmult update interface"

5 years agoMerge "Add control interface to PSNR_AQ mode"
Jingning Han [Thu, 20 Dec 2018 07:07:23 +0000 (07:07 +0000)]
Merge "Add control interface to PSNR_AQ mode"

5 years agoMerge "vpxenc : fix misleading documentation about sharpness."
James Bankoski [Thu, 20 Dec 2018 01:28:41 +0000 (01:28 +0000)]
Merge "vpxenc : fix misleading documentation about sharpness."

5 years agoRemove a special case
Yaowu Xu [Thu, 20 Dec 2018 00:49:08 +0000 (16:49 -0800)]
Remove a special case

The special case was put in to prevent a lossless test failure, the
issue has been dealt with by a recent fix of skip condition in
lossless mode.

Change-Id: Ia25d2bf6beead2208841b4f012171dffac15f411

5 years agoMerge "Refactor aq mode segment_id assignment"
Jingning Han [Thu, 20 Dec 2018 00:18:20 +0000 (00:18 +0000)]
Merge "Refactor aq mode segment_id assignment"

5 years agovpxenc : fix misleading documentation about sharpness.
Jim Bankoski [Wed, 19 Dec 2018 19:21:18 +0000 (11:21 -0800)]
vpxenc : fix misleading documentation about sharpness.

Change-Id: I792c178736a9fc02a84aa83f351e12b7227259b0

5 years agoMerge "vpx/*.h: rm some deprecated defines/enum vals/typedefs"
James Zern [Wed, 19 Dec 2018 23:46:51 +0000 (23:46 +0000)]
Merge "vpx/*.h: rm some deprecated defines/enum vals/typedefs"

5 years agoMerge "vpx/vp8cx.h: fix some typos"
James Zern [Wed, 19 Dec 2018 23:45:50 +0000 (23:45 +0000)]
Merge "vpx/vp8cx.h: fix some typos"

5 years agoMerge "vpx_integer.h: drop VS2010 workaround"
James Zern [Wed, 19 Dec 2018 23:45:22 +0000 (23:45 +0000)]
Merge "vpx_integer.h: drop VS2010 workaround"

5 years agovpx_integer.h: drop VS2010 workaround
James Zern [Wed, 19 Dec 2018 21:01:28 +0000 (13:01 -0800)]
vpx_integer.h: drop VS2010 workaround

visual studio 2015 is the current minimum

BUG=webm:1573

Change-Id: I22139925c0a322b1da214c38d8f74fadbc34d2de

5 years agovpx/{vp8,vpx_encoder}.h: fix some typos
James Zern [Wed, 19 Dec 2018 20:48:16 +0000 (12:48 -0800)]
vpx/{vp8,vpx_encoder}.h: fix some typos

BUG=webm:1573

Change-Id: I5cbb29c89955aa1548ea2a2b3da5763bd38dd978

5 years agoMerge "Correct condition for skip"
Yaowu Xu [Wed, 19 Dec 2018 20:57:24 +0000 (20:57 +0000)]
Merge "Correct condition for skip"

5 years agoUnify AQ mode rdmult update interface
Jingning Han [Wed, 19 Dec 2018 20:37:17 +0000 (12:37 -0800)]
Unify AQ mode rdmult update interface

Handle the rdmult update for all AQ modes in a single function
call.

Change-Id: Ia0dfce637cf70d646bd3cd0abe3064e9491b81b8

5 years agoAdd control interface to PSNR_AQ mode
Jingning Han [Wed, 19 Dec 2018 20:20:57 +0000 (12:20 -0800)]
Add control interface to PSNR_AQ mode

Change-Id: I760c69189fb8d8d85b5daffc86064c66913c0220

5 years agovpx/vp8cx.h: fix some typos
James Zern [Wed, 19 Dec 2018 20:27:28 +0000 (12:27 -0800)]
vpx/vp8cx.h: fix some typos

BUG=webm:1573

Change-Id: I46faa216a4a8278a363a8111237342f73e8467eb

5 years agovpx/*.h: rm some deprecated defines/enum vals/typedefs
James Zern [Wed, 19 Dec 2018 20:23:28 +0000 (12:23 -0800)]
vpx/*.h: rm some deprecated defines/enum vals/typedefs

most predate 1.4.0 the DBG enums were deprecated in 1.6.1. VPX_KF_FIXED
is left as it's still fairly widely used

BUG=webm:1573

Change-Id: Iacaad28a6fe7251f042a2b45507b00fc5b7a0eac

5 years agoCorrect condition for skip
Yaowu Xu [Wed, 19 Dec 2018 18:48:37 +0000 (10:48 -0800)]
Correct condition for skip

Do not skip without check when lossless is requested.

Change-Id: Iceda428e7bf5ab19202b1dcb598e389fcaf6978d

5 years agoMerge "Rework set_offsets() for rd search"
Jingning Han [Wed, 19 Dec 2018 18:46:53 +0000 (18:46 +0000)]
Merge "Rework set_offsets() for rd search"

5 years agoMerge "Improve rd_variance_adjustment() for low variance blocks."
Paul Wilkins [Wed, 19 Dec 2018 09:47:27 +0000 (09:47 +0000)]
Merge "Improve rd_variance_adjustment() for low variance blocks."

5 years agoRefactor aq mode segment_id assignment
Jingning Han [Wed, 19 Dec 2018 06:43:34 +0000 (22:43 -0800)]
Refactor aq mode segment_id assignment

Factor out the segment_id assignment for various AQ modes.

Change-Id: I34a86524048621cd369baf4bafbdfac621994563

5 years agoNo need to shift in SSIM calculations
sdeng [Fri, 14 Dec 2018 00:47:10 +0000 (16:47 -0800)]
No need to shift in SSIM calculations

We only need to shift in the encoder when the input bit depth
does not equal to the encoder internal bit depth.

Change-Id: If9af62382ac6824f33dc7dcdd3d3ff7802b92e9a

5 years agoMerge "Disallow the comparison between videos with different bit depth"
Sai Deng [Wed, 19 Dec 2018 00:40:49 +0000 (00:40 +0000)]
Merge "Disallow the comparison between videos with different bit depth"

5 years agoRework set_offsets() for rd search
Jingning Han [Tue, 18 Dec 2018 23:08:28 +0000 (15:08 -0800)]
Rework set_offsets() for rd search

Factor out the segment_id setup from mi array alignment.

Change-Id: I345ad7ea7b6c9edb6f86224e1941f2c954d68ff3

5 years agovp9-svc: Adjust step_param for screen-content
Marco Paniconi [Tue, 18 Dec 2018 18:59:39 +0000 (10:59 -0800)]
vp9-svc: Adjust step_param for screen-content

Use same step_param for all spatial layers for now.
Some improvement in quality on scrolling for spatial
enhancement layer.

Change-Id: Ic9eed8ba5dd44493e9f5e81f6115df2a25825d16

5 years agoMerge "Localize x->encode_breakout setup to non-rd mode search"
Jingning Han [Tue, 18 Dec 2018 17:46:05 +0000 (17:46 +0000)]
Merge "Localize x->encode_breakout setup to non-rd mode search"

5 years agoMerge "Add frame header control to turn on PSNR_AQ mode"
Jingning Han [Tue, 18 Dec 2018 15:49:48 +0000 (15:49 +0000)]
Merge "Add frame header control to turn on PSNR_AQ mode"

5 years agoMerge "Add PSNR_AQ mode"
Jingning Han [Tue, 18 Dec 2018 15:49:36 +0000 (15:49 +0000)]
Merge "Add PSNR_AQ mode"

5 years agoAdd Tile-SB-Row based Multi-threading in Decoder
Ritu Baldwa [Tue, 18 Dec 2018 12:09:38 +0000 (17:39 +0530)]
Add Tile-SB-Row based Multi-threading in Decoder

Add the multi-thread function that decodes a video row by row instead
of a tile at a time. Create a job queue for queueing all parse and recon jobs.
Each SB row of a tile is a job.

Performance Improvement:

Platform        Resolution      3 Threads       4 Threads
ARM             720p            36.81%          18.37%
                1080p           32.27%          14.76%

ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core  @ 2.65 GHz

Change-Id: I3d4dd7a932fc2904c90d9546b2de99c809afd29e

5 years agoMerge "Relocate tpl buffer allocation"
Jingning Han [Tue, 18 Dec 2018 06:34:49 +0000 (06:34 +0000)]
Merge "Relocate tpl buffer allocation"

5 years agoRelocate tpl buffer allocation
Jingning Han [Tue, 18 Dec 2018 00:09:06 +0000 (16:09 -0800)]
Relocate tpl buffer allocation

Move it to deeper stages where all the encoder configurations have
been set. This avoids the encoding failure when the buffer is
allocated before the encoder is fully configured.

Change-Id: I6723966fd2c7c36fbab9a92d1f3bd59c83ed95f0

5 years agovp9-svc: Fix condition in real-time speed setting
Marco Paniconi [Tue, 18 Dec 2018 02:39:22 +0000 (18:39 -0800)]
vp9-svc: Fix condition in real-time speed setting

Remove the "spatial_layer_id == 0" condition in
the speed features for setting the motion search
for screen content.

Change-Id: Ib47aea3af5f3b2e04226694b4126b2ae2f458f13

5 years agoLocalize x->encode_breakout setup to non-rd mode search
Jingning Han [Tue, 18 Dec 2018 00:49:09 +0000 (16:49 -0800)]
Localize x->encode_breakout setup to non-rd mode search

The breakout speed feature is currently only used by the non-rd
mode search path. Localize it to simplify set_offset() logic.

Change-Id: I27e7519c987a7caac2e4bd6be0ede1b9c8320e55

5 years agoAdd frame header control to turn on PSNR_AQ mode
Jingning Han [Mon, 17 Dec 2018 22:24:35 +0000 (14:24 -0800)]
Add frame header control to turn on PSNR_AQ mode

Change-Id: I46f695b15153c8c508f525a5673db24326371977

5 years agoAdd PSNR_AQ mode
Jingning Han [Mon, 17 Dec 2018 18:30:17 +0000 (10:30 -0800)]
Add PSNR_AQ mode

Placeholder to support adaptive quantizer for PSNR and SSIM coding
quality improvement.

Change-Id: Id967c9914bb1d72a6f480ef1ba9d6650914dd658

5 years agoDisallow the comparison between videos with different bit depth
sdeng [Fri, 14 Dec 2018 00:47:10 +0000 (16:47 -0800)]
Disallow the comparison between videos with different bit depth

Change-Id: I1fd8e991f2440925e989d8e7ab33fdf5f6b1d36b

5 years agovp9-svc: Adjust search step param for spatial layers
Marco Paniconi [Mon, 17 Dec 2018 23:12:04 +0000 (15:12 -0800)]
vp9-svc: Adjust search step param for spatial layers

For non-base spatial layer in screen-content mode:
use nstep but with larger step_param value than sl0,
to avoid increase in encode_time.
Some improvement on scrolling slides content.

Change-Id: Ica918ac01664431d1fabb3c674d857cf6ad87414

5 years agoMerge "vp9-svc: Define rc scene change flag per superframe"
Marco Paniconi [Mon, 17 Dec 2018 23:09:22 +0000 (23:09 +0000)]
Merge "vp9-svc: Define rc scene change flag per superframe"

5 years agoMerge "doxygen: fix --disable-examples"
Johann Koenig [Mon, 17 Dec 2018 23:07:38 +0000 (23:07 +0000)]
Merge "doxygen: fix --disable-examples"

5 years agoMerge "Remove -Wextra suppression."
Jerome Jiang [Mon, 17 Dec 2018 23:03:04 +0000 (23:03 +0000)]
Merge "Remove -Wextra suppression."

5 years agovp9-svc: Define rc scene change flag per superframe
Marco Paniconi [Mon, 17 Dec 2018 21:23:01 +0000 (13:23 -0800)]
vp9-svc: Define rc scene change flag per superframe

Define the rc->high_num_blocks_with_motion, set in the
scene change analysis, to be defined per superframe.
This is used for increasing motion search area on
some (super)frames, e.g., for scrolling.

Also some code cleanup in rt_speed_feature_.

No change in behavior.

Change-Id: I1a5c04b9cd4aef1723ce42f82e981a2ca15c8b9d

5 years agoRemove -Wextra suppression.
Jerome Jiang [Fri, 14 Dec 2018 00:00:18 +0000 (16:00 -0800)]
Remove -Wextra suppression.

BUG=webm:1246

Change-Id: Iae78e266faa9c4989500fc919b24f2f584ac0550

5 years agoMerge "Add build_motion_field()"
Angie Chiang [Mon, 17 Dec 2018 19:19:21 +0000 (19:19 +0000)]
Merge "Add build_motion_field()"

5 years agoMerge "vp8: Fix potential use-after-free in mfqe."
Jerome Jiang [Sat, 15 Dec 2018 01:00:46 +0000 (01:00 +0000)]
Merge "vp8: Fix potential use-after-free in mfqe."

5 years agoMerge "Remove unused code in tiny_ssim"
Sai Deng [Sat, 15 Dec 2018 00:50:20 +0000 (00:50 +0000)]
Merge "Remove unused code in tiny_ssim"

5 years agovp8: Fix potential use-after-free in mfqe.
Jerome Jiang [Fri, 14 Dec 2018 22:39:58 +0000 (14:39 -0800)]
vp8: Fix potential use-after-free in mfqe.

Similar issue to 842265.

The pointer in vp8 postproc refers to show_frame_mi which is only
updated on show frame. However, when there is a no-show frame which also
changes the size (thus new frame buffers allocated), show_frame_mi is
not updated with new frame buffer memory.

Change the pointer in postproc to mi which is always updated.

BUG=913246

Change-Id: I5159ba7134a06db472c29a1d84b8d39bb60c7254

5 years agoRemove unused code in tiny_ssim
sdeng [Fri, 14 Dec 2018 00:44:12 +0000 (16:44 -0800)]
Remove unused code in tiny_ssim

Change-Id: Ife6eb3f8651daa209eeeb8eff85158f00d418647

5 years agovp8-mfqe: Increase initial frame# threshold
Marco Paniconi [Fri, 14 Dec 2018 03:33:11 +0000 (19:33 -0800)]
vp8-mfqe: Increase initial frame# threshold

Increase the initial frame number threshold
for the mfqe, as using the running average of
last_base_qindex doesn't work well after very
first frame.

Only affects the very first few frames.
Fixes an issue with a test.

Change-Id: Ia249924257b44263e0b9f43cbff473902f08e28c