]> granicus.if.org Git - libvpx/log
libvpx
7 years agopartial fdct neon: add 16x16_1
Johann [Fri, 23 Jun 2017 01:22:27 +0000 (18:22 -0700)]
partial fdct neon: add 16x16_1

For the 8x8_1, the highbd output fit nicely in the existing function. 12
bit input will overflow this implementation of 16x16_1.

BUG=webm:1424

Change-Id: I2945fe5478b18f996f1a5de80110fa30f3f4e7ec

7 years agopartial fdct neon: add 4x4_1
Johann [Fri, 23 Jun 2017 01:12:28 +0000 (18:12 -0700)]
partial fdct neon: add 4x4_1

BUG=webm:1424

Change-Id: Ib0f3cfd6116fc1f5a99acb8bfd76e25b90177ffc

7 years agopartial fdct neon: move 8x8_1 and enable hbd tests
Johann [Fri, 23 Jun 2017 01:01:23 +0000 (18:01 -0700)]
partial fdct neon: move 8x8_1 and enable hbd tests

The function was originally written with HBD in mind. Enable it and
configure the tests.

BUG=webm:1424

Change-Id: I78a2eba8d4d9d59db98a344ba0840d4a60ebe9a1

7 years agoMerge changes Ib454762d,I966650df,Ie126553e,I068f06c6,Icb72a94e
Johann Koenig [Wed, 28 Jun 2017 22:37:00 +0000 (22:37 +0000)]
Merge changes Ib454762d,I966650df,Ie126553e,I068f06c6,Icb72a94e

* changes:
  sad neon: rewrite 64x64 and add 64x32
  sad neon: rewrite 32x32, add 32x16 and 32x64
  sad neon: rewrite 16x8, 16x16, add 16x32
  sad neon: rewrite 8x8 and 8x16
  sad neon: rewrite 4x4 and add 4x8

7 years agoMerge "buffer.h: Only allow Init() to be called once."
Johann Koenig [Wed, 28 Jun 2017 22:36:05 +0000 (22:36 +0000)]
Merge "buffer.h: Only allow Init() to be called once."

7 years agoMerge "partial fdct test"
Johann Koenig [Wed, 28 Jun 2017 22:34:53 +0000 (22:34 +0000)]
Merge "partial fdct test"

7 years agopartial fdct test
Johann [Fri, 23 Jun 2017 00:12:27 +0000 (17:12 -0700)]
partial fdct test

Test the _1 variant of the fdct, which simply sums the block and applies
a modifying shift based on the block size.

BUG=webm:1424

Change-Id: Ic80d6008abba0c596b575fa0484d5b5855321468

7 years agosad neon: rewrite 64x64 and add 64x32
Johann [Tue, 27 Jun 2017 22:17:31 +0000 (15:17 -0700)]
sad neon: rewrite 64x64 and add 64x32

BUG=webm:1425

Change-Id: Ib454762d1c61b05a98324fe81ad58c9e09784717

7 years agosad neon: rewrite 32x32, add 32x16 and 32x64
Johann [Tue, 27 Jun 2017 21:33:28 +0000 (14:33 -0700)]
sad neon: rewrite 32x32, add 32x16 and 32x64

BUG=webm:1425

Change-Id: I966650df7e3face93e1e771634d1cc5458a35f85

7 years agosad neon: rewrite 16x8, 16x16, add 16x32
Johann [Tue, 27 Jun 2017 21:15:58 +0000 (14:15 -0700)]
sad neon: rewrite 16x8, 16x16, add 16x32

BUG=webm:1425

Change-Id: Ie126553e5fffcdfaf3d82a85b368ac10ce9ab082

7 years agosad neon: rewrite 8x8 and 8x16
Johann [Tue, 27 Jun 2017 20:02:28 +0000 (13:02 -0700)]
sad neon: rewrite 8x8 and 8x16

BUG=webm:1425

Change-Id: I068f06c67b841f09ea07c04ada0c2f1706102138

7 years agosad neon: rewrite 4x4 and add 4x8
Johann [Tue, 27 Jun 2017 19:44:54 +0000 (12:44 -0700)]
sad neon: rewrite 4x4 and add 4x8

The previous implementation loaded 8 values (discarding half)

BUG=webm:1425

Change-Id: Icb72a94e2557a4ee2db7091266ab58fd92f72158

7 years agoMerge "vp9: compute skinmap only once before encoding."
Jerome Jiang [Wed, 28 Jun 2017 18:01:46 +0000 (18:01 +0000)]
Merge "vp9: compute skinmap only once before encoding."

7 years agobuffer.h: Only allow Init() to be called once.
Johann [Wed, 7 Jun 2017 19:25:05 +0000 (12:25 -0700)]
buffer.h: Only allow Init() to be called once.

Change-Id: I041c8b6f314802833c5287a176dbfeec9461b08e

7 years agovp9: Speed >= 8: Remove logic on reducing subpel.
Marco [Wed, 28 Jun 2017 03:14:26 +0000 (20:14 -0700)]
vp9: Speed >= 8: Remove logic on reducing subpel.

Existing logic was only affecting resolutions above 720p.
Needs more testing for reducing subpel for speed >= 8.

No change on RTC metrics.

Change-Id: I2f4bf9f25891614aafa9a86aa5a5063a3ccfce4d

7 years agoMerge "highbd_quantize_fp_32x32: normalize abs_qcoeff type"
James Zern [Tue, 27 Jun 2017 23:30:16 +0000 (23:30 +0000)]
Merge "highbd_quantize_fp_32x32: normalize abs_qcoeff type"

7 years agovp9: compute skinmap only once before encoding.
Jerome Jiang [Tue, 27 Jun 2017 20:17:59 +0000 (13:17 -0700)]
vp9: compute skinmap only once before encoding.

This could save some cycles since skin detection is used in multiple
places in vp9.

1~2% speed up on ARM.

Change-Id: I86b731945f85215bbb0976021cd0f2040ff2687c

7 years agoUpdate vpx_idct8x8_12_add_ssse3()
Linfeng Zhang [Mon, 26 Jun 2017 21:57:41 +0000 (14:57 -0700)]
Update vpx_idct8x8_12_add_ssse3()

Change-Id: I0f38801c391db87ddae168602a786a062cd34b1d

7 years agoMerge "Update load_input_data() in x86"
Linfeng Zhang [Mon, 26 Jun 2017 21:48:49 +0000 (21:48 +0000)]
Merge "Update load_input_data() in x86"

7 years agoMerge "vp8: Clean up skinmap debugging codes."
Jerome Jiang [Mon, 26 Jun 2017 21:32:51 +0000 (21:32 +0000)]
Merge "vp8: Clean up skinmap debugging codes."

7 years agoUpdate load_input_data() in x86
Linfeng Zhang [Fri, 23 Jun 2017 23:04:27 +0000 (16:04 -0700)]
Update load_input_data() in x86

Split to load_input_data4() and load_input_data8().
Use pack with signed saturation instruction for high bitdepth.

Change-Id: Icda3e0129a6fdb4a51d1cafbdc652ae3a65f4e06

7 years agoroll libwebm snapshot
James Zern [Thu, 22 Jun 2017 03:16:26 +0000 (20:16 -0700)]
roll libwebm snapshot

git log --no-merges --oneline 9732ae9..a97c484
9096786 mkvparser: fix float conversion warning
84e8257 disable -Wdeprecated-declarations in legacy code
a98f495 AddGenericFrame: fix memory leak on failure
da131dd AddCuePoint: fix memory leak on failure
b0cea9c Add(Audio|Video)Track: fix memory leak on failure
5261a67 webm_info: check vp9 ParseUncompressedHeader return
85f7e2e webm_info,PrintVP9Info: validate alt ref sizes
9b97ca1 vp9_header_parser_tests: check parser return
300d6d8 CuePoint::Find: check Track pointer
50c44bb webm_info,OutputCues: fix indexing of tracks
a0d27f0 mkvparser,Block::Parse: remove incorrect assert
784fc1b vttdemux,CloseFiles: check file pointer before closing
b4522c1 .gitattributes: force mkv/webm to be treated as binary
a118f3d Add test for projection parse failures.
d398479 Add test for primary chromaticity parse failures.
9bbec4c Fix permissions on test file.
2cef4d5 mkvparser:Parse: s/FLT_MIN/-FLT_MAX/
35a3c88 mkvmuxer: Turn off estimate_file_duration_ by default
5a41830 mkvparser: Avoid double free when Chromaticity parse fails.
67e3ffa mkvparser: Avoid casts of values too large for float in
Projection elements.
87bcddf vttdemux::ChapterAtomParser: check for NULL display string
a534a24 Update .gitignore
a0d67d0 mkvmuxer: Fix hard-coded data size in EbmlElementSize
c36112c mkvparser: #include sys/type.h
686664e Fix cmake generation warnings on Windows.
2b2c196 cmake: Fix required flag check.
166e40f Cmake refactor.
9fb774a Add missing include in webm2pes.cc.
4956b2d mkvmuxer: Force new clusters when audio queue gets too long.
54f1559 cmake: Cache results of CXX flag tests.
81c73fc mkvparser: Avoid alloc failures in SeekHead::Parse.

Change-Id: Ib81b1772ec81e7af3852dcfef2d312416f6db53d

7 years agoMerge "Add vpx_highbd_idct4x4_16_add_sse4_1()"
Linfeng Zhang [Sat, 24 Jun 2017 01:15:13 +0000 (01:15 +0000)]
Merge "Add vpx_highbd_idct4x4_16_add_sse4_1()"

7 years agoMerge "Enable greedy version of optimize_b() in VP9 by default."
Urvang Joshi [Sat, 24 Jun 2017 00:58:24 +0000 (00:58 +0000)]
Merge "Enable greedy version of optimize_b() in VP9 by default."

7 years agoMerge "Cosmetics, 8x8 idct SSE2 optimization"
Linfeng Zhang [Sat, 24 Jun 2017 00:51:07 +0000 (00:51 +0000)]
Merge "Cosmetics, 8x8 idct SSE2 optimization"

7 years agoEnable greedy version of optimize_b() in VP9 by default.
Urvang Joshi [Sat, 24 Jun 2017 00:04:58 +0000 (17:04 -0700)]
Enable greedy version of optimize_b() in VP9 by default.

Improvements were already mentioned in the previous patch:
https://chromium-review.googlesource.com/#/c/531675/

Change-Id: I4906ab1c61c25a815bdeb986016fad6dcb69eb71

7 years agoMerge "variance_test: move Subpel* from tuples to TestParams"
James Zern [Fri, 23 Jun 2017 22:48:40 +0000 (22:48 +0000)]
Merge "variance_test: move Subpel* from tuples to TestParams"

7 years agoMerge "vp9: Use scene detection for CBR mode."
Marco Paniconi [Fri, 23 Jun 2017 21:59:31 +0000 (21:59 +0000)]
Merge "vp9: Use scene detection for CBR mode."

7 years agoAdd vpx_highbd_idct4x4_16_add_sse4_1()
Linfeng Zhang [Fri, 23 Jun 2017 21:27:18 +0000 (14:27 -0700)]
Add vpx_highbd_idct4x4_16_add_sse4_1()

BUG=webm:1412

Change-Id: Ie33482409351a01be4e89466b0441834eb1e905a

7 years agoCosmetics, 8x8 idct SSE2 optimization
Linfeng Zhang [Wed, 21 Jun 2017 22:18:17 +0000 (15:18 -0700)]
Cosmetics, 8x8 idct SSE2 optimization

Change-Id: Id21fa94fd323e36cd19a2d890bf4a0cafb7d964d

7 years agovp8: Clean up skinmap debugging codes.
Jerome Jiang [Fri, 23 Jun 2017 20:59:54 +0000 (13:59 -0700)]
vp8: Clean up skinmap debugging codes.

Use the computed skinmap.

Change-Id: I8aabb5922ef5190ec85b9e01807cb79b4803b925

7 years agoMerge "datarate_test: rename thread -> Thread in test name"
James Zern [Fri, 23 Jun 2017 20:00:50 +0000 (20:00 +0000)]
Merge "datarate_test: rename thread -> Thread in test name"

7 years agovariance_test: move Subpel* from tuples to TestParams
James Zern [Fri, 23 Jun 2017 07:26:00 +0000 (00:26 -0700)]
variance_test: move Subpel* from tuples to TestParams

this normalizes these tests with the regular variance ones both in
implementation and test list output

Change-Id: I387aea81456f94b8223b8fb2a28cab94bc1aa9d5

7 years agovp9: Use scene detection for CBR mode.
Marco [Thu, 22 Jun 2017 21:59:27 +0000 (14:59 -0700)]
vp9: Use scene detection for CBR mode.

Use the scene detection for CBR mode, and use it to reset the
rate control if large source sad is detected and rate
correctioni fact/QP is at minimum state.

Avoids large frame sizes after big content change following
low content period.

Only affects CBR mode for 1 pass at speeds 5, 6, 7.
Change-Id: I56dd853478cd5849b32db776e9221e258998d874

7 years agoMerge "vp8: Compute skinmap only once before encoding."
Jerome Jiang [Fri, 23 Jun 2017 17:17:01 +0000 (17:17 +0000)]
Merge "vp8: Compute skinmap only once before encoding."

7 years agoMerge changes from topic 'missing-proto'
James Zern [Fri, 23 Jun 2017 05:44:24 +0000 (05:44 +0000)]
Merge changes from topic 'missing-proto'

* changes:
  onyxd_int.h: add missing prototypes
  onyxd.h: add vp8dx_references_buffer prototype
  vp[89],vpx_dsp: add missing includes
  vp8,encodeframe.h: correct prototypes
  vp8: add temporal_filter.h
  add picklpf.h
  add ethreading.h
  vp8,bitstream.h: add missing prototypes
  vp8: remove vp8_fast_quantize_b_mmx
  vp8,loopfilter_filters: make some functions static
  vp9_ratectrl: make adjust_gf_boost_lag_one_pass_vbr static
  vp9_encodeframe: make scale_part_thresh_sumdiff static
  vp9_alt_ref_aq: correct vp9_alt_ref_aq_create proto
  tiny_ssim: make some functions static

7 years agoonyxd_int.h: add missing prototypes
James Zern [Fri, 16 Jun 2017 23:16:05 +0000 (16:16 -0700)]
onyxd_int.h: add missing prototypes

vp8cx_init_de_quantizer, vp8_mb_init_dequantizer
quiets -Wmissing-prototypes

Change-Id: Ib63d14caf0144eff31a75b7cdb667b7e1f9d83ae

7 years agoMerge "fdct32x32 neon implementation"
Johann Koenig [Fri, 23 Jun 2017 01:57:59 +0000 (01:57 +0000)]
Merge "fdct32x32 neon implementation"

7 years agovp8: Compute skinmap only once before encoding.
Jerome Jiang [Wed, 21 Jun 2017 22:02:31 +0000 (15:02 -0700)]
vp8: Compute skinmap only once before encoding.

Get ready for other uses (i.e. cyclic refresh).
Then use it when needed.

Change-Id: Id0519a9921045e5fb7f3badb54e9f04e903f28f9

7 years agoMerge "vp9: Add high source sad to content state."
Marco Paniconi [Thu, 22 Jun 2017 22:18:47 +0000 (22:18 +0000)]
Merge "vp9: Add high source sad to content state."

7 years agoMerge changes I783c5f4f,I365f8e53,I5dac0e98
Linfeng Zhang [Thu, 22 Jun 2017 21:42:23 +0000 (21:42 +0000)]
Merge changes I783c5f4f,I365f8e53,I5dac0e98

* changes:
  Clean vpx_idct16x16_256_add_sse2()
  Update vpx_idct{8x8,16x16,32x32}_1_add_sse2()
  Clean 32x32 full idct sse2 and ssse3 code

7 years agoMerge "Fix int overflow in rate control for high bit rates."
Paul Wilkins [Thu, 22 Jun 2017 16:30:39 +0000 (16:30 +0000)]
Merge "Fix int overflow in rate control for high bit rates."

7 years agofdct32x32 neon implementation
Johann [Fri, 16 Jun 2017 20:14:01 +0000 (13:14 -0700)]
fdct32x32 neon implementation

Almost 3x faster in constrained loop testing. Over 10x faster in HBD
builds.

BUG=webm:1424

Change-Id: I2b7f8453e1d4ada63cde729d8115d684c4a71ff9

7 years agoFix int overflow in rate control for high bit rates.
paulwilkins [Wed, 21 Jun 2017 16:26:20 +0000 (17:26 +0100)]
Fix int overflow in rate control for high bit rates.

Fix misplaced cast that caused an overflow and incorrect rate adaptation
behavior for high data rates. This in particular will have affected 4k encodes
but could also have come into play for some higher rate 1080p cases.

In our standard test sets the quality impact is small though several high rate
clips show improved rate accuracy. This can also impact the number of recode
loop hits and on one problem 4k  clip the encode time for speeds 0 and 1 was
reduced by >25%

Change-Id: I108da7ca42f3bc95c5825dd33c9d84583227dac1

7 years agovp9: Add high source sad to content state.
Marco [Thu, 22 Jun 2017 03:39:59 +0000 (20:39 -0700)]
vp9: Add high source sad to content state.

Use it to limit NEWMV early exit in nonrd pickmode

Small change in RTC metrics, has some improvement
for high motion clips.
Change-Id: I1d89fd955e1b3486d5fb07f4472eeeecd553f67f

7 years agoMerge "vp9: Adjustments for aq-mode and pickmode for speed >= 8."
Marco Paniconi [Thu, 22 Jun 2017 03:27:46 +0000 (03:27 +0000)]
Merge "vp9: Adjustments for aq-mode and pickmode for speed >= 8."

7 years agodatarate_test: rename thread -> Thread in test name
James Zern [Thu, 22 Jun 2017 03:05:31 +0000 (20:05 -0700)]
datarate_test: rename thread -> Thread in test name

this is consistent with other threaded tests and ensures gtest_filters
meant to operate on these pick them up

Change-Id: I99ce53720553a22c4b9905a2882273c2be2c031b

7 years agoMerge "vp8_dx_iface: clear -Wclobbered warnings"
James Zern [Thu, 22 Jun 2017 02:01:10 +0000 (02:01 +0000)]
Merge "vp8_dx_iface: clear -Wclobbered warnings"

7 years agoonyxd.h: add vp8dx_references_buffer prototype
James Zern [Fri, 16 Jun 2017 23:15:28 +0000 (16:15 -0700)]
onyxd.h: add vp8dx_references_buffer prototype

quiets -Wmissing-prototypes

Change-Id: I6bee535f3fb67e54a390266d787a5a92127aeadc

7 years agovp[89],vpx_dsp: add missing includes
James Zern [Fri, 16 Jun 2017 23:12:20 +0000 (16:12 -0700)]
vp[89],vpx_dsp: add missing includes

quiets -Wmissing-prototypes

Change-Id: I841cfc019d592f2bc6b3fec5818051a31f4c53b5

7 years agovp8,encodeframe.h: correct prototypes
James Zern [Fri, 16 Jun 2017 09:12:18 +0000 (02:12 -0700)]
vp8,encodeframe.h: correct prototypes

+ add missing include
quiets -Wmissing-prototypes

Change-Id: I64af0368ba3d7f1d4de22a5887b631bb2cf15b8a

7 years agovp8: add temporal_filter.h
James Zern [Fri, 16 Jun 2017 09:09:47 +0000 (02:09 -0700)]
vp8: add temporal_filter.h

quiets -Wmissing-prototypes

Change-Id: Iffa77467720affe030de5335e9335232b9e70af1

7 years agoadd picklpf.h
James Zern [Fri, 16 Jun 2017 08:51:19 +0000 (01:51 -0700)]
add picklpf.h

quiets -Wmissing-prototypes

Change-Id: Ic24164aa1f86fe99a493a633d64606e6f44ecdc1

7 years agoadd ethreading.h
James Zern [Fri, 16 Jun 2017 08:48:55 +0000 (01:48 -0700)]
add ethreading.h

quiets -Wmissing-prototypes in encodeframe.c

Change-Id: Ic216d0bdd6130eac44f2183639a715b2f1088ebe

7 years agovp8,bitstream.h: add missing prototypes
James Zern [Fri, 16 Jun 2017 08:45:11 +0000 (01:45 -0700)]
vp8,bitstream.h: add missing prototypes

quiets -Wmissing:prototypes

Change-Id: I835a80eddca2b16280780e18558c321df3272c43

7 years agovp8: remove vp8_fast_quantize_b_mmx
James Zern [Fri, 16 Jun 2017 08:33:57 +0000 (01:33 -0700)]
vp8: remove vp8_fast_quantize_b_mmx

and vp8_fast_quantize_b_impl_mmx; this was never enabled in rtcd
an sse2 version exists so there isn't much reason to keep a mmx
implementation around.

Change-Id: I8b3ee7f46ba194ffa0d0a6225a0f299f2a4dea90

7 years agovp8,loopfilter_filters: make some functions static
James Zern [Fri, 16 Jun 2017 07:58:49 +0000 (00:58 -0700)]
vp8,loopfilter_filters: make some functions static

quiets -Wmissing-prototypes

Change-Id: Ie5b00537f64a05e68a38dc558463691523988994

7 years agovp9_ratectrl: make adjust_gf_boost_lag_one_pass_vbr static
James Zern [Fri, 16 Jun 2017 07:53:05 +0000 (00:53 -0700)]
vp9_ratectrl: make adjust_gf_boost_lag_one_pass_vbr static

quiets -Wmissing-prototypes

Change-Id: I72d899c2d8de1ddc52d90ac081f2629374b3a6e9

7 years agovp9_encodeframe: make scale_part_thresh_sumdiff static
James Zern [Fri, 16 Jun 2017 07:51:42 +0000 (00:51 -0700)]
vp9_encodeframe: make scale_part_thresh_sumdiff static

quiets -Wmissing-prototypes

Change-Id: I696223d75860edba13c6b6f38c1f8db353a6f812

7 years agovp9_alt_ref_aq: correct vp9_alt_ref_aq_create proto
James Zern [Fri, 16 Jun 2017 07:49:53 +0000 (00:49 -0700)]
vp9_alt_ref_aq: correct vp9_alt_ref_aq_create proto

quiets -Wmissing-prototypes

Change-Id: Ib2d4f294f1982739bb2ac98155e789e040d309a1

7 years agohighbd_quantize_fp_32x32: normalize abs_qcoeff type
James Zern [Thu, 22 Jun 2017 01:56:10 +0000 (18:56 -0700)]
highbd_quantize_fp_32x32: normalize abs_qcoeff type

use an int to quiet an unsigned rollover warning similar to:
25110f283 Fix an ubsan warning: vp9_quantizer.c

Change-Id: Iedecb79a17249bc18f10c0920f88cf704920f12b

7 years agovp9: Put skin detection usage around cpi flag.
Marco [Thu, 22 Jun 2017 00:30:53 +0000 (17:30 -0700)]
vp9: Put skin detection usage around cpi flag.

Skin detection usage in choose_partitioning should be
around the cpi->use_skin_detection.

Change-Id: I6986179af9ce94c60c0974d66c311fc07cc04cfe

7 years agovp9: Adjustments for aq-mode and pickmode for speed >= 8.
Marco [Wed, 21 Jun 2017 22:24:56 +0000 (15:24 -0700)]
vp9: Adjustments for aq-mode and pickmode for speed >= 8.

Adjust the threshold for turning off cyclic refresh for high motion,
and avoid testing golden in nonrd pickmode for speed >= 8 if
golden refresh was long ago.

No change/neutral on RTC metrics.
Change-Id: I40959b8d9637f3553e7458bbabd8c6024c2c09c0

7 years agovp8_dx_iface: clear -Wclobbered warnings
James Zern [Wed, 21 Jun 2017 01:34:13 +0000 (18:34 -0700)]
vp8_dx_iface: clear -Wclobbered warnings

with gcc 6.x

Change-Id: Ib2070421603a6777892d4ea01f4b0921696f38b3

7 years agoMerge "dct tests: align InvAccuracyCheck buffers"
Johann Koenig [Wed, 21 Jun 2017 21:16:23 +0000 (21:16 +0000)]
Merge "dct tests: align InvAccuracyCheck buffers"

7 years agoClean vpx_idct16x16_256_add_sse2()
Linfeng Zhang [Tue, 20 Jun 2017 01:10:38 +0000 (18:10 -0700)]
Clean vpx_idct16x16_256_add_sse2()

Remove macro IDCT16 which is redundant with idct16_8col().

Change-Id: I783c5f4fda038a22d5ee5c2b22e8c2cdfb38432c

7 years agoUpdate vpx_idct{8x8,16x16,32x32}_1_add_sse2()
Linfeng Zhang [Thu, 15 Jun 2017 23:48:40 +0000 (16:48 -0700)]
Update vpx_idct{8x8,16x16,32x32}_1_add_sse2()

Change-Id: I365f8e53d9ccd028cef0f561d4de9e5916278609

7 years agoClean 32x32 full idct sse2 and ssse3 code
Linfeng Zhang [Thu, 15 Jun 2017 23:06:53 +0000 (16:06 -0700)]
Clean 32x32 full idct sse2 and ssse3 code

vpx_idct32x32_1024_add_ssse3() is actually a sse2 function and faster
than vpx_idct32x32_1024_add_sse2(). Replace the slow one. All are
code relocations, no new code.

Change-Id: I5dac0e98cc411a4ce05660406921118986638d19

7 years agoMerge "VP9 level targeting: properly handle max_gf_interval"
Hui Su [Wed, 21 Jun 2017 20:38:44 +0000 (20:38 +0000)]
Merge "VP9 level targeting: properly handle max_gf_interval"

7 years agodct tests: align InvAccuracyCheck buffers
Johann [Wed, 21 Jun 2017 18:46:58 +0000 (11:46 -0700)]
dct tests: align InvAccuracyCheck buffers

'in' is used for the reference fdct. 'coeff' is input to the idct being
tested and 'dst[16]' is output

Fixes a segfault on unaligned memory access on x86.

Change-Id: I3691b1380ed49986897dd89a63ce63a80a0e0962

7 years agofix build, rm ref to vpx_idct8x8_64_add_ssse3
James Zern [Wed, 21 Jun 2017 02:42:29 +0000 (19:42 -0700)]
fix build, rm ref to vpx_idct8x8_64_add_ssse3

this was deleted in:
98967645a Remove vpx_idct8x8_64_add_ssse3()

but this was merged in:
9e03eedf6 Merge changes Ib26dd515,Ie60dabc3

after:
a92991133 Merge "dct tests: run all possible sizes in one test"

which added a new reference

Change-Id: I8da4a6c80d27b237a378ff15eead1daab89e7e25

7 years agoMerge changes Ib26dd515,Ie60dabc3
Linfeng Zhang [Wed, 21 Jun 2017 00:38:24 +0000 (00:38 +0000)]
Merge changes Ib26dd515,Ie60dabc3

* changes:
  Clean 8x8 idct x86 optimization
  Remove vpx_idct8x8_64_add_ssse3()

7 years agoVP9 level targeting: properly handle max_gf_interval
hui su [Tue, 20 Jun 2017 23:26:00 +0000 (16:26 -0700)]
VP9 level targeting: properly handle max_gf_interval

Don't overide max_gf_interval if it's not specified. It will
be assigned with a default value in vp9_rc_set_gf_interval_range().

BUG=b/62803416

Change-Id: Ide46ce00279ed076865fc54ce98c55a994f0c798

7 years agovp9: Adjust key-frame pars in vpx_temporal_svc_encoder.
Marco [Tue, 20 Jun 2017 19:20:52 +0000 (12:20 -0700)]
vp9: Adjust key-frame pars in vpx_temporal_svc_encoder.

Sample encoder change: reduce max-intra-rate to 1000 and
buf-initial to 600. Paramaters affect target size of key frame.

Change-Id: I2be6bc2927f5fa74e19e1efa3fb574d23a503300

7 years agovp9: Adjust key-frame pars in vpx_temporal_svc_encoder.
Marco [Tue, 20 Jun 2017 16:05:56 +0000 (09:05 -0700)]
vp9: Adjust key-frame pars in vpx_temporal_svc_encoder.

Sample encoder change: reduce max-intra-rate to 1500 and
buf-initial to 700. Paramaters affect target size of key frame.

Change-Id: I01e238378b63eeef28dfc2178baadffcd3cc7561

7 years agoMerge "dct tests: run all possible sizes in one test"
Johann Koenig [Tue, 20 Jun 2017 15:04:24 +0000 (15:04 +0000)]
Merge "dct tests: run all possible sizes in one test"

7 years agoMerge "vp9: SVC: Rework the usage of base_mv for SVC."
Marco Paniconi [Tue, 20 Jun 2017 03:08:32 +0000 (03:08 +0000)]
Merge "vp9: SVC: Rework the usage of base_mv for SVC."

7 years agovp9: Adjust key-frame pars in vpx_temporal_svc_encoder.
Marco [Tue, 20 Jun 2017 01:25:53 +0000 (18:25 -0700)]
vp9: Adjust key-frame pars in vpx_temporal_svc_encoder.

Adjust some parameters in sample encoder: vpx_temporal_svc_encoder.
Parameters adjusted to set lower QP for initial key frame,
and allow for larger target size on subsequent key frames.

Change-Id: I092ad968e5b51b9f495dadb6ee96e810663c910e

7 years agoMerge "vp9: Speed >= 8: Adjust resolution threshold for subpel."
Marco Paniconi [Mon, 19 Jun 2017 23:45:34 +0000 (23:45 +0000)]
Merge "vp9: Speed >= 8: Adjust resolution threshold for subpel."

7 years agodct tests: run all possible sizes in one test
Johann [Tue, 9 May 2017 17:08:24 +0000 (10:08 -0700)]
dct tests: run all possible sizes in one test

Modify fdct4x4_test.cc to support all size combinations. This does not
add any new tests and in fact fails a few. There were minimal changes
made to the tests so it's not entirely surprising that some of the
larger 12 bit transforms are failing since it was initially only used
for 4x4.

In follow up patches the tests in fdct8x8_test.cc, dct16x16_test.cc and
dct32x32_test.cc will be evaluated and moved to dct_test.cc.

BUG=webm:1424

Change-Id: I72a23430f457d7fae8c91e706adc0e77c25abc8f

7 years agoMerge "libs.mk: retry partial testdata download"
James Zern [Mon, 19 Jun 2017 22:15:06 +0000 (22:15 +0000)]
Merge "libs.mk: retry partial testdata download"

7 years agolibs.mk: retry partial testdata download
James Zern [Fri, 16 Jun 2017 06:33:11 +0000 (23:33 -0700)]
libs.mk: retry partial testdata download

attempt retry on transient failures uncaught by --retry

Change-Id: I7cd8846ff88daf0f521af9ee182e30bfd79f51f3

7 years agovp9: Speed >= 8: Adjust resolution threshold for subpel.
Marco [Mon, 19 Jun 2017 20:56:04 +0000 (13:56 -0700)]
vp9: Speed >= 8: Adjust resolution threshold for subpel.

Get some quality gain on RTC metrics (~7%), with
~5-8% speed slowdown.

Change-Id: I0d02942a77074424ee0326b6e110ddff09f2df5e

7 years agoMerge "Enable 8x8 skin detection for vp8."
Jerome Jiang [Mon, 19 Jun 2017 16:42:10 +0000 (16:42 +0000)]
Merge "Enable 8x8 skin detection for vp8."

7 years agovp9: SVC: Rework the usage of base_mv for SVC.
Marco [Thu, 15 Jun 2017 23:23:36 +0000 (16:23 -0700)]
vp9: SVC: Rework the usage of base_mv for SVC.

Set the base_mv_aggressive for temporal enhancement layers (TL > 0).
Under the aggressive mode, skip the NEWMV depending on the
SSE of the base_mv. Also reduce the subpel motion to 1/2 under
aggressive mode if base_mv is good.

Speedup ~3% with small/negligible loss in quality on RTC.
Affects speed >= 6.

Change-Id: I89341b279cad6da2a04b76d5e726016191dacdb8

7 years agotiny_ssim: make some functions static
James Zern [Fri, 16 Jun 2017 07:48:11 +0000 (00:48 -0700)]
tiny_ssim: make some functions static

quiets -Wmissing-prototypes

Change-Id: If2e77c921b2fba456ed8d94119773e360d90b878

7 years agoMerge "configure: test for -Wparentheses-equality"
James Zern [Fri, 16 Jun 2017 20:07:51 +0000 (20:07 +0000)]
Merge "configure: test for -Wparentheses-equality"

7 years agoEnable 8x8 skin detection for vp8.
Jerome Jiang [Wed, 14 Jun 2017 00:22:26 +0000 (17:22 -0700)]
Enable 8x8 skin detection for vp8.

If 2 or more 8x8 blocks are identified as skin, the macroblock will be
labeled as skin.

Change-Id: I596542c81a2df9e96270cab39d920bbfeb02bc6e

7 years agoconfigure: test for -Wparentheses-equality
James Zern [Thu, 15 Jun 2017 23:05:20 +0000 (16:05 -0700)]
configure: test for -Wparentheses-equality

Change-Id: I36de79c58461907deaea70d6131da9119bc0bc69

7 years agoClean 8x8 idct x86 optimization
Linfeng Zhang [Thu, 15 Jun 2017 18:29:07 +0000 (11:29 -0700)]
Clean 8x8 idct x86 optimization

Create load_buffer_8x8() and write_buffer_8x8().

Change-Id: Ib26dd515d734a5402971c91de336ab481b213fdf

7 years agoRemove vpx_idct8x8_64_add_ssse3()
Linfeng Zhang [Thu, 15 Jun 2017 21:09:33 +0000 (14:09 -0700)]
Remove vpx_idct8x8_64_add_ssse3()

It's almost identical with vpx_idct8x8_64_add_sse2(), except little
difference in instructions order.

Change-Id: Ie60dabc35eaa6ebae7c755e6cff00a710aad284f

7 years agoVP9: Add greedy version of av1_optimize_b().
Urvang Joshi [Thu, 8 Jun 2017 21:51:01 +0000 (14:51 -0700)]
VP9: Add greedy version of av1_optimize_b().

This was ported from the greedy version in AV1, written by Dake He
(dkhe@google.com).
See:
https://aomedia.googlesource.com/aom/+/master/av1/encoder/encodemb.c#137

Greedy version is disabled by default, but can be picked by setting
USE_GREEDY_OPTIMIZE_B to 1.
To be enabled by default later.

This is both faster and better in terms of compression.

Compression Improvement:
------------------------
lowres: -0.119
midres: -0.064
hdres:  -0.405

Speed Improvement:
------------------
(Based on encode time of 3 videos of different difficulties at
3 different target bitrates)
With --cpu-used=0: 0.38% to 5.55% faster
With --cpu-used=1: 0.24% to 2.79% faster
With --cpu-used=2: 0.29% to 1.46% faster

Change-Id: Ia7a23b3b244ad8eb253ac9e43cd03c5e021d2635

7 years agoMerge changes Ibf9d120b,I341399ec,Iaa5dd63b,Id59865fd
Linfeng Zhang [Thu, 15 Jun 2017 17:57:50 +0000 (17:57 +0000)]
Merge changes Ibf9d120b,I341399ec,Iaa5dd63b,Id59865fd

* changes:
  Update high bitdepth load_input_data() in x86
  Clean array_transpose_{4X8,16x16,16x16_2) in x86
  Remove array_transpose_8x8() in x86
  Convert 8x8 idct x86 macros to inline functions

7 years agoMerge "vp8: Adjust the pred_err threhsold for drop on overshoot."
Marco Paniconi [Wed, 14 Jun 2017 15:59:54 +0000 (15:59 +0000)]
Merge "vp8: Adjust the pred_err threhsold for drop on overshoot."

7 years agoUpdate high bitdepth load_input_data() in x86
Linfeng Zhang [Tue, 13 Jun 2017 23:53:53 +0000 (16:53 -0700)]
Update high bitdepth load_input_data() in x86

BUG=webm:1412

Change-Id: Ibf9d120b80c7d3a7637e79e123cf2f0aae6dd78c

7 years agoClean array_transpose_{4X8,16x16,16x16_2) in x86
Linfeng Zhang [Mon, 12 Jun 2017 23:23:53 +0000 (16:23 -0700)]
Clean array_transpose_{4X8,16x16,16x16_2) in x86

Change-Id: I341399ecbde37065375ea7e63511a26bfc285ea0

7 years agoRemove array_transpose_8x8() in x86
Linfeng Zhang [Mon, 12 Jun 2017 22:45:50 +0000 (15:45 -0700)]
Remove array_transpose_8x8() in x86

Duplicate of transpose_16bit_8x8()

Change-Id: Iaa5dd63b5cccb044974a65af22c90e13418e311f

7 years agoConvert 8x8 idct x86 macros to inline functions
Linfeng Zhang [Mon, 12 Jun 2017 21:03:37 +0000 (14:03 -0700)]
Convert 8x8 idct x86 macros to inline functions

Change-Id: Id59865fd6c453a24121ce7160048d67875fc67ce

7 years agovp8_skin_detection: add 'vp8_' prefix to public fns
James Zern [Tue, 13 Jun 2017 01:08:20 +0000 (18:08 -0700)]
vp8_skin_detection: add 'vp8_' prefix to public fns

BUG=webm:1438

Change-Id: I5feb31c254d02e116e624cfe702e73ba5a1f7aca

7 years agorename vp8/common/skin_detection.[hc] -> vp8_*
James Zern [Tue, 13 Jun 2017 00:54:21 +0000 (17:54 -0700)]
rename vp8/common/skin_detection.[hc] -> vp8_*

some build systems have trouble with duplicate basenames.
vpx_dsp/skin_detection.[hc] were added in:
658e85425 Merge skin detection code in vp8/9.

BUG=webm:1438

Change-Id: Ieaa70b40bda409ec23e6d179b47a930ac6243b05