Commit Graph

20653 Commits

Author SHA1 Message Date
Angie Chiang
af52e4657c Make vp9_nb_mvs_inconsistency return int64_t
Change-Id: I925156ed45e13a06c449c2fbff8a3c26baf8d835
2019-06-21 11:36:36 -07:00
Angie Chiang
0113fc3516 Make type of lambda int in TplDepFrame
Change-Id: I8fdf1ad4790201b1624c8408d92983aeb0b08302
2019-06-21 11:36:05 -07:00
Angie Chiang
e728637b8b Integerize log2_approximation()
Change-Id: If645bf6a90f4bfb5a51ca0a78b88d1eb5bedbec2
2019-06-20 19:44:43 -07:00
Johann
7d9288f5f8 vsx: disable on all builds
The previous change to disable some vsx functions did not clear
the test failures. Disable vsx by default until it is investigated
and fixed.

BUG=webm:1522

Change-Id: I8ba2e7261ea3eee5022832da7e4a22bf8daa0996
2019-06-20 10:43:09 -07:00
Jerome Jiang
c94dea71ed Merge "vp8: Allow higher resolution to get periodic keyframe." 2019-06-20 17:20:54 +00:00
Angie Chiang
cbf0b1688a Merge "Change log2_fast to log2_approximation" 2019-06-20 17:14:15 +00:00
Ravi Chaudhary
087f131851 Merge "Start with q=active_best_quality for non-forced key frames" 2019-06-20 08:57:43 +00:00
Ravi Chaudhary
7f8ff8e377 Start with q=active_best_quality for non-forced key frames
Change-Id: I435d247ab4d1d160f12f5a3710e6cafb5cfd6610
2019-06-20 10:03:36 +05:30
Jerome Jiang
2da0a7ecb1 vp8: Allow higher resolution to get periodic keyframe.
BUG=webm:1632

Change-Id: Ib05a010245e77f9d502c3e7b8f488fca280ea544
2019-06-19 15:26:54 -07:00
Angie Chiang
9f8ee48611 Change log2_fast to log2_approximation
This reduce non_greedy_mv encoding time by 8.9%

Use linear approximation for value >= 1024

BDRate increases slightly on hdres
lowres: -0.002
midres: 0.007
hdres: 0.057

Change-Id: I55fd5e0bf0ab2206a286e11974f701cc48084be8
2019-06-19 12:10:58 -07:00
Dan Zhu
aecad5a313 Merge "3D reconstruction tool build by Processing" 2019-06-19 17:13:50 +00:00
Angie Chiang
9d55a8f679 Merge "Implement log2_fast for vp9_nb_mvs_inconsistency" 2019-06-19 16:45:15 +00:00
Yue Chen
ac5e269b94 Merge "Fix timestamp overflow issues" 2019-06-18 23:39:09 +00:00
Angie Chiang
7fb0c5cce9 Implement log2_fast for vp9_nb_mvs_inconsistency
This speed up non_greedy_mv by 8.7%

Change-Id: Ia46e3e7c4d32ec364091fad26cc953c62963e526
2019-06-18 15:13:04 -07:00
Yue Chen
11de1b8381 Fix timestamp overflow issues
- Save the initial user-specified timestamp and rebase all further
timestamps by this value. This makes libvpx internal timestamps to
always start from zero, regardless of the user's timestamps.
- Calculate reduced timestamp conversion ratio and use it to convert
user's timestamps to libvpx internal timestamps and back. The effect
of this is that integer overflow due to multiplication doesn't
happen for a much longer time.

BUG=webm:701

Change-Id: Ic6f5eacd9a7c21b95707d31ee2da77dc8ac7dccf
2019-06-18 10:41:10 -07:00
Jerome Jiang
bb9511684f Merge "Fix memory leak for vp8 multi-res encoder." 2019-06-15 00:34:40 +00:00
Harish Mahendrakar
75b0abefd8 vpx_dec_fuzzer: Remove fmemopen dependency
fmemopen is not preferred during fuzzing.
Removed all file operations.

Removed need for allocating a different input buffer.
data buffer is appropriately incremented and passed directly to decoder
This will also test input being sent in an unaligned buffer to the library.

Removed read_frame function and did the required parsing inline.

Change-Id: I32829b0149dba9339f2e8bb4c0249a4987a630c7
2019-06-14 11:08:36 -07:00
Dan Zhu
618a7d68f8 3D reconstruction tool build by Processing
(a java based language for data visualization)

add MotionField module

reformat the code by using newest clang-format version

add necessary comments

add new functions

move basic settings to setup

Change-Id: I64a6b2daec06037daa9e54c6b8d1eebe58aa6de0
2019-06-14 10:23:02 -07:00
Jerome Jiang
c06a917501 Fix memory leak for vp8 multi-res encoder.
BUG=webm:1630

Change-Id: I03e74e78aa0ead66eda7506e921b1774b5442ed5
2019-06-14 10:13:26 -07:00
Deepa K G
cb2edce5e2 Merge "Use previous ARF as GOLDEN frame for the next GOP" 2019-06-14 06:49:43 +00:00
Johann Koenig
6ae06316c7 Merge "ppc: disable vsx for small predictors" 2019-06-13 22:06:22 +00:00
Johann
daf6c47f4e ppc: disable vsx for small predictors
These functions cause test failures when running the entire suite.

BUG=webm:1522

Change-Id: I2c1dc4923e9f149464f365ef63dc59621cfabf5a
2019-06-13 11:45:20 -07:00
Harish Mahendrakar
429d50740e Merge "vpx_dec_fuzzer: Add -fsanitize=fuzzer-no-link" 2019-06-13 18:45:02 +00:00
Johann Koenig
0b1ef32b98 Merge "ppc: disable vsx optimizations with hbd" 2019-06-13 18:40:42 +00:00
Harish Mahendrakar
3ff6417a6e vpx_dec_fuzzer: Add -fsanitize=fuzzer-no-link
Updated build instructions for vpx_dec_fuzzer to include
-fsanitize=fuzzer-no-link while configuring library

Change-Id: Id158256aa1cfe3d847720e8558cb5998ad4fd777
2019-06-12 15:18:50 -07:00
Deepa K G
24e38521a8 Use previous ARF as GOLDEN frame for the next GOP
This patch uses ARF itself as the GOLDEN frame for the
next gf group instead of replacing it with the overlay
frame. By doing so, bits consumed by the overlay frame
will be reduced.

Change-Id: I909ceaa6d501c267d315614075913d45ad426c15
2019-06-11 19:06:00 +05:30
Johann
d9f0106d9d sse: remove unused HAVE_SSE files
There are no sse functions which use these files. Cleans up spurious
warnings when building with --disable-sse2

Change-Id: I04d84b8b7ecfe6da7d5d4df63840796c7b04c085
2019-06-10 15:08:40 -07:00
Johann
7bf48f92e8 ppc: disable vsx optimizations with hbd
vsx optimizations do not support 32 bit tran_low_t values.

BUG=webm:1563

Change-Id: I9e6348078f6e4855acfd381133eb840a435b7f81
2019-06-10 14:53:16 -07:00
James Zern
6a7c84a244 update libwebm to libwebm-1.0.0.27-361-g81de00c
81de00c Check there is only one settings per ContentCompression
5623013 Fixes a double free in ContentEncoding
93b2ba0 mkvparser: quiet static analysis warnings

Change-Id: Ieaa562ef2f10075381bd856388e6b29f97ca2746
2019-06-07 15:06:29 -07:00
Jerome Jiang
28cc5f3646 vp8: fix leak in vp8e_mr_alloc_mem
BUG=webm:1596

Change-Id: I09ba00a7b7ad331671a7a285a2ac5630d8b62199
2019-06-06 15:38:13 -07:00
Sai Deng
1140d8f2e2 Merge "Update performance test results for tune=SSIM" 2019-06-06 15:50:14 +00:00
Sai Deng
f04764cfe8 Merge "Fix a bug in best RD cost updating" 2019-06-06 06:13:08 +00:00
sdeng
ed8e473581 Update performance test results for tune=SSIM
I made a mistake (used the outdated baseline) in the CL I
submitted earlier this week:
https://chromium-review.googlesource.com/c/webm/libvpx/+/1638854

The corrected results are following:
The additional gains/loss on top of the tune=ssim are:
Data Set   Overall PSNR   SSIM       MS-SSIM
 Lowres       3.490      -3.164      -2.267
 Midres       2.245      -2.270      -2.287
 HDres        2.562      -1.804      -1.681
Lowres_10bd   3.477      -2.399      -2.689
Midres_10bd   3.467      -1.534      -1.636

The overall gains/loss comparing to tune=psnr are:
Data Set   Overall PSNR   SSIM       MS-SSIM
 Lowres       6.127      -5.818      -4.783
 Midres       4.574      -5.383      -6.242
 HDres        4.908      -6.218      -7.106
Lowres_10bd   6.115      -6.212      -7.790
Midres_10bd   6.238      -6.064      -7.249

Change-Id: Iae72482f7b30f200e5021a98c920eed841d0972a
2019-06-06 03:51:52 +00:00
sdeng
1f11352c07 Fix a bug in best RD cost updating
This CL fixed a bug that sometimes we calculate the best rd cost using
uninitialized rd_div. This CL also includes a small refactoring of
rd_pick_partition().

Speed change: (the smaller the better)
 Performance counter stats for './vpxenc park_joy_480p.y4m --limit=50
 -o output.webm':

with this CL:       297,086,181,136      instructions:u
without this CL:    299,285,835,104      instructions:u

Quality change: (negative is better)
          avg_psnr ovr_psnr  ssim
(low_res)  0.007     0.005  -0.002
(mid_res)  0.022     0.028   0.007
(hd_res)  -0.008    -0.003  -0.014

Change-Id: I8924d8426364304212bcef3aba13346783e6f1a8
2019-06-05 20:39:03 -07:00
James Zern
cb704b95e3 configure: test -Wno-* flags used with libyuv
with g++ this avoids:
command line option ‘-Wno-missing-prototypes’ is valid for C/ObjC but
not for C++

the flag is necessary with clang.

BUG=webm:1584

Change-Id: I250c76483302d913999e5f9e0d09ee6449b052df
2019-06-04 21:57:47 +00:00
James Zern
54abc9bade Merge changes Ib73136b2,Ie514f663
* changes:
  configure: enable -Wmissing-declarations for more files
  vp9_thread_test: quiet -Wmissing-prototypes
2019-06-04 21:12:50 +00:00
Marco Paniconi
85da20aab7 Merge "vp9-rtc: Use speed 5 for postencode drop tests." 2019-06-04 18:35:15 +00:00
Marco Paniconi
3307b009c7 vp9-rtc: Use speed 5 for postencode drop tests.
Test was running at speed 4, which is not used for real-time.
With this change all Datarate tests are now running at
(speed >= 5, 1 pass, real-time mode), which is what they
were intended for.

BUG=webm:1512

Change-Id: I47a721dadd24b73df722c44419df7cfc06c44226
2019-06-04 10:11:59 -07:00
Sai Deng
1d13a6c321 Merge "Hierarchical rdmult scaling when tune=ssim" 2019-06-04 16:10:51 +00:00
James Zern
5bdf43407a configure: enable -Wmissing-declarations for more files
avoid using it with third_party/libyuv as that still requires some work.

BUG=webm:1584

Change-Id: Ib73136b22c89d927b112364e19d725c51768bbb7
2019-06-03 17:20:35 -07:00
sdeng
b1072a793d Hierarchical rdmult scaling when tune=ssim
Use different lagrangian multiplier scaling factor for different block
size. The blocks whose sizes are less than 16x16 share the same multiplier
of their parent block.

The additional gains/loss on top of the tune=ssim are:
Data Set   Overall PSNR   SSIM    MS-SSIM
Lowres         2.918     -3.691   -2.596
Midres         1.708     -2.656   -2.624
HDres          1.619     -2.496   -2.391
Midres_10bd    1.518     -3.263   -3.561

The overall gains/loss comparing to tune=psnr are:
Data Set   Overall PSNR   SSIM    MS-SSIM
Lowres         5.583     -6.208   -4.978
Midres         4.024     -5.610   -6.411
HDres          4.102     -6.614   -7.457
Midres_10bd    4.647     -7.181   -8.614

Change-Id: I0e6c5008488734e979b2dacde9fc2a17f3aa620f
2019-06-03 17:15:02 -07:00
James Zern
ca440c0a5f vp9_thread_test: quiet -Wmissing-prototypes
BUG=webm:1584

Change-Id: Ie514f6630acfb018a3ac4a05758c8b4119ae28fa
2019-06-03 17:08:55 -07:00
Jerome Jiang
13dc6d671c Merge "Remove unused func for CONFIG_REALTIME_ONLY" 2019-06-03 19:54:28 +00:00
Jerome Jiang
42a83da94c Remove unused func for CONFIG_REALTIME_ONLY
Change-Id: I503e147e20e5b69b910c425d169e59821874f627
2019-06-03 10:11:34 -07:00
Sai Deng
96a024a12a Merge changes I7b1d1482,I01588758,I6f17864e
* changes:
  Update rdcost using the rd_mult in current block
  Use distortion and rate of best_rd as the params
  Use distortion and rate recursively in rd_pick_partition()
2019-06-03 16:19:06 +00:00
sdeng
6cf62dcf8a Update rdcost using the rd_mult in current block
This CL is a preparation for implementing hierarchical SSIM rdmult scaling.
There is very little impact on metrics and speed:
       avg_psnr ovr_psnr  ssim
midres   0.009   0.009   0.015

perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50
with this cl: 317,722,808,461
before:       317,700,108,619

Change-Id: I7b1d1482ac69f7bc87065a93223a0274bcbe8ce3
2019-06-01 15:12:39 -07:00
sdeng
5cfaf561d9 Use distortion and rate of best_rd as the params
Also added rd calculation for negative rates and distortions.
This CL is a preparation for implementing hierarchical SSIM rdmult scaling.

Little impact on quality and speed:
            avg_psnr  ovr_psnr   ssim
(mid_res)    -0.015    -0.009   -0.018

perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50
with this cl: 317,700,108,619
before:       317,669,279,763

Change-Id: I01588758b7be2aab32236440ec0e57d7af56e920
2019-06-01 15:11:24 -07:00
Jerome Jiang
f0ff0600d0 Merge "Remove RD code for CONFIG_REALTIME_ONLY in vp9." 2019-06-01 00:07:27 +00:00
Jerome Jiang
da24d35132 Remove RD code for CONFIG_REALTIME_ONLY in vp9.
This reduces vp9 only binary size by ~5.7%.

Change-Id: I57e46baf591d68b0a0cecbc9319a1190df8b0457
2019-05-31 14:57:01 -07:00
sdeng
7d670d88fe Use distortion and rate recursively in rd_pick_partition()
This CL is a preparation for implementing hierarchical SSIM rdmult scaling,
There is very little impact on metrics and speed:
       avg_psnr ovr_psnr  ssim
midres   -0.04   0.005    0.012

perf stat -e instructions:u ./vpxenc park_joy_480p.y4m --limit=50
with this cl: 317,669,279,763
before:       317,717,562,045

Change-Id: I6f17864e7b17aad06a04ae4f470f75e975549db9
2019-05-31 14:24:11 -07:00