Граф коммитов

219 Коммитов

Автор SHA1 Сообщение Дата
Yaowu Xu 8ac419f307 Merge changes Ic3a68557,Ib1dbe41a,I0da09270,Ibdbd720d into nextgenv2
* changes:
  Deringing cleanup: remove DERING_REFINEMENT (always on now)
  Don't run the deringing filter on skipped blocks within a superblock
  Don't dering skipped superblocks
  On x86 use _mm_set_epi32 when _mm_cvtsi64_si128 isn't available
2016-10-13 15:54:32 +00:00
Yaowu Xu 89d3f2fd10 Merge "Sync 2x2 intra predictors" into nextgenv2 2016-10-13 15:20:52 +00:00
Alex Converse fc4980edb7 Merge changes Ic74d9d88,Ie93b474e,I544989ea,Ic273f7d9,Idfd2d2b3, ... into nextgenv2
* changes:
  Remove custom rans types
  Remove add_token_no_extra.
  Remove unused aom_rans_build_cdf_from_pdf
  Add the tool used to generate the constrained tokenset.
  Remove the starting zero from ANS CDFs.
  Import the aom_read/write_symbol abstractions from aom/master
2016-10-13 14:03:15 +00:00
David Barker 33231d4801 Add sse2 forward and inverse 16x32 and 32x16 transforms
Change-Id: I1241257430f1e08ead1ce0f31db8272b50783102
2016-10-13 14:01:22 +01:00
Alex Converse 9ed1a2ff44 Remove custom rans types
(cherry picked from aom/master commit 11206c60d9)

Includes renames in a bunch of places not handled by the original
due to differing tree states.

Change-Id: Ic74d9d8850b8c80a51e55e425bbf472a67e2653f
2016-10-13 05:53:58 +00:00
Jingning Han e3954d8312 Sync 2x2 intra predictors
Add 2x2 DC, V, H, TM intra predictors.

Change-Id: I2a614adde553f821c45bc5a9bf09800a9f0aaa26
2016-10-12 21:04:01 -07:00
Alex Converse d5b9c730ad Remove unused aom_rans_build_cdf_from_pdf
Change-Id: I544989eae45b7dda04250365c3de99f50110a76b
(cherry picked from aom/master commit 06cce842ca)
2016-10-12 17:44:14 -07:00
Alex Converse e9f70f8f10 Remove the starting zero from ANS CDFs.
This brings it in line with the Daala CDFs and will make it easier to
share code.

Change-Id: Idfd2d2b33c3b9b2c4e72ce72fb3d8039013448b9
(cherry picked from aom/master commit af98507ca9)
2016-10-12 17:41:01 -07:00
Alex Converse a1ac972867 Import the aom_read/write_symbol abstractions from aom/master
Change-Id: I0b255c05108c3b97e74df1b59c34111c9e9a5770
2016-10-12 17:41:01 -07:00
Steinar Midtskogen b074823863 On x86 use _mm_set_epi32 when _mm_cvtsi64_si128 isn't available
Change-Id: Ibdbd720d4f68892da6164a9849e212e759305005
2016-10-12 15:48:13 -07:00
Yi Luo fed8e1c06d Hybrid forward transform 32x32 AVX2 optimization
- av1_fht32x32 AVX2 function level time reduction ~89% compared to C.

- av1_fht32x32_avx2() on DCT_DCT improves 42.62% over aom_fdct32x32_avx2()
  But function replacement must go with the corresponding inverse txfm.

- No obvious user level time reduction due to 32x32 TX_TYPE selection.

- Zero high 128b YMM to avoid AVX-SSE transition penalties
  (fix 16x16 case).

- Added 32x32 AVX2 unit tests to verify bitexact.

- AVX2 optimization summary:
  On CPU i7-6700, based on 16x16/32x32 fwd txfm optimization results:
  C to AVX2: function level time reduction, ~86-89%.
  SSE2 to AVX2: function level time reduction, ~51%.

Change-Id: Idd0cd8bf066a61c7117140ef15ab6c1f8eb4b036
2016-10-12 14:19:53 -07:00
Yaowu Xu f36d0b46d1 minor updates
1. vp8->aom
2. removed no-effect statements and spaces

Change-Id: I367d05ff9bf1b9f3c71c517c45d8049d9d4236ec
2016-10-12 10:50:08 -07:00
Steinar Midtskogen b066b962a7 Fix missing parentheses in v64_align()
Change-Id: I16469062853c101965f56002be30ebc5823975b1
2016-10-11 12:36:17 -07:00
Steinar Midtskogen 9d6a53b8fd Improve v128 and v64 8 bit shifts for x86
Change-Id: I25dc61bab46895d425ce49f89fceb164bee36906
2016-10-11 12:36:17 -07:00
Steinar Midtskogen ebf209ba82 Make generic SIMD code compile if no native support
Change-Id: I7f691a0ae27f06ef3d727764829a60a8ffc509eb
2016-10-11 12:36:16 -07:00
Yaowu Xu 25faa0e9f5 Merge "Move tree writing code into bitwriter.h." into nextgenv2 2016-10-11 19:16:25 +00:00
Yaowu Xu 80eaf1a120 Merge "Extend CLPF to chroma." into nextgenv2 2016-10-11 18:44:31 +00:00
Yaowu Xu a1a7ad0c15 Merge "Make generic SIMD work with clang." into nextgenv2 2016-10-11 18:42:15 +00:00
Yaowu Xu 0bab35bf64 Merge "Fix clang-format warnings in aom_dsp/simd/v64_intrinsics_arm.h" into nextgenv2 2016-10-11 18:41:50 +00:00
Yaowu Xu 038d41045b Merge "Added high bit-depth support in CLPF." into nextgenv2 2016-10-11 18:41:15 +00:00
Yaowu Xu a2bbf621f1 Merge "Reduce memory footprint for CLPF decoding." into nextgenv2 2016-10-11 18:40:47 +00:00
Nathan E. Egge eeedc633c0 Move tree writing code into bitwriter.h.
Rename av1_write_tree() to aom_write_tree() and move it into bitwriter.h
 to match aom_read_tree() in bitreader.h.

Manually cherry-picked from aom/master:
33a143fa7a

Change-Id: I6c686cdd3e0f179d7e95c5bc6984558b62d46d67
2016-10-11 09:36:01 -07:00
Yaowu Xu 4960f7c3bd Merge "Added generic SIMD support for CLPF." into nextgenv2 2016-10-11 16:05:18 +00:00
Debargha Mukherjee fb865cf41c Merge "Add sse2 forward / inverse 4x8 and 8x4 transforms" into nextgenv2 2016-10-11 15:50:32 +00:00
Steinar Midtskogen ecf9a0c821 Extend CLPF to chroma.
Objective quality impact (low latency):

PSNR YCbCr:      0.13%     -1.37%     -1.79%
   PSNRHVS:      0.03%
      SSIM:      0.24%
    MSSSIM:      0.10%
 CIEDE2000:     -0.83%

Change-Id: I8ddf0def569286775f0f9d4d4005932766a7fc27
2016-10-10 15:23:38 -07:00
Steinar Midtskogen 7b7624e89e Make generic SIMD work with clang.
Change-Id: I2c504a078a7137bea6ba50c5768c1295878e9ea1
2016-10-10 15:18:57 -07:00
Jingning Han 0b44cdcab1 Fix clang-format warnings in aom_dsp/simd/v64_intrinsics_arm.h
Change-Id: I221bf4520d7030133e3b2fea883a995b3d6f6282
2016-10-10 15:18:49 -07:00
Steinar Midtskogen 3dbd55a6c4 Added high bit-depth support in CLPF.
Change-Id: Ic5eadb323227a820ad876c32d4dc296e05db6ece
2016-10-10 11:27:04 -07:00
Steinar Midtskogen e8224c7ad5 Reduce memory footprint for CLPF decoding.
Instead of having CLPF write to an entire new frame and
copy the result back into the original frame, make the
filter able to work in-place by keeping a buffer of size
frame_width*filter_block_size and delay the write-back
by one filter_block_size row.

This reduces the cycles spent in the filter to ~75%.

Change-Id: I78ca74380c45492daa8935d08d766851edb5fbc1
2016-10-10 11:26:33 -07:00
Steinar Midtskogen be668e92c3 Added generic SIMD support for CLPF.
Change-Id: Ie03f9a5b0a4c708a586532198d755a1e7509f149
2016-10-10 11:19:37 -07:00
Yaowu Xu 607048d606 Merge "Added generic SIMD library supporting x86 SSE2+ and ARM NEON." into nextgenv2 2016-10-10 18:17:50 +00:00
David Barker 4d03d6fc6f Add sse2 forward / inverse 4x8 and 8x4 transforms
Change-Id: I89ed93fb20cf975c2b463cff58879521ceaa4163
2016-10-10 09:02:45 -07:00
Yi Luo 3a8217f21b Merge "Hybrid forward transforms 16x16 AVX2 optimization" into nextgenv2 2016-10-07 01:52:11 +00:00
Debargha Mukherjee 609453e7e4 Merge "Added sse2 inverse 8x16 and 16x8 transforms" into nextgenv2 2016-10-07 00:03:34 +00:00
Yi Luo e8e8cd8f1b Hybrid forward transforms 16x16 AVX2 optimization
- Unit tests are added for AVX2 SIMD.
- Encoder speed improvement:
  AV1 baseline and EXT_TX, three 1080p sequences at bitrate:
  800 Kbps, 2 Mbps, 6 Mbps, on i7-6700 CPU, average
  user level time reduction: 3.86%.

Change-Id: Ibbd7837ee3a831c6b1e4e471bf6c8d3fa3a19ff4
2016-10-06 15:33:15 -07:00
Peter de Rivaz 1baecfeb03 Added sse2 inverse 8x16 and 16x8 transforms
Change-Id: I43628407b11e5c8e6af4df69f2acdc67ac827834
2016-10-06 11:23:14 -07:00
Steinar Midtskogen a5f8ea1109 Added generic SIMD library supporting x86 SSE2+ and ARM NEON.
Change-Id: I037f4c44f621a7e909b82ccb6a299d41bcbf8607
2016-10-06 16:37:08 +00:00
Yi Luo a674ba93fe Fix high bitdepth variance overflow on uint32_t
BUG=webm:1305

Change-Id: I4c56631359e298b99e618c07bcbae9f793c5e2ac
2016-10-03 16:37:00 -07:00
Alex Converse 33590f8c71 Rename rans_dec_lut to rans_lut
It's used in both encoding and decoding. Matches (historical)
implementation in aom/master.

Change-Id: Ib009b6b6023cfe69e99a0a92f3c70f4416fcdb47
2016-09-28 15:35:04 -07:00
Alex Converse 7fe2ae8e88 Port ANS from aom/master 25aaf40
Reconciles the following commits from aom/master to nextgenv2:
- 25aaf40bbc
- 87073de569

Change-Id: Ideda50a6ec75485cb4fa7437c69f4e58d6a2ca73
2016-09-28 12:07:00 -07:00
Nathan E. Egge e691a24cff Refactor bitreader and bitwriter wrapper.
Move code for reading and writing literals and reading trees to use
just the aom_read_bit() and aom_write_bit() function calls.

Change-Id: Id2bced5f0125a5558030a813c51c3d79e5701873
(cherry picked from aom/master commit bc1ac15846)
2016-09-28 12:07:00 -07:00
Alex Converse acef60bd2c Migrate bitreader to the interface from aom/master
Change-Id: I7232f9ae3d97e730f66e4b80f550192e3ef7230b
2016-09-26 12:19:11 -07:00
Alex Converse 1d1e0844e9 Merge "Migrate bitwriter to the interface in aom/master" into nextgenv2 2016-09-23 01:18:30 +00:00
Angie Chiang 6062a8bfee bitstream_debug: build related cleanup
Move experimental config from debug_util.c/h to aom_util.mk to avoid
empty object.

Change-Id: Id7978ed6a342262bddaa4df8b53115e750fa1c2c
2016-09-22 09:37:56 -07:00
Alex Converse 080a2cccba Migrate bitwriter to the interface in aom/master
Change-Id: I73d46229f0feea43cbe933e51da997833cce032b
2016-09-21 11:17:08 -07:00
Alex Converse 3e457ba154 Merge changes I38f40582,Ib7afcffa into nextgenv2
* changes:
  Move ANS to aom_dsp.
  Move and wrap the old vpx boolcoder.
2016-09-20 22:55:18 +00:00
clang-format bda8d61ed1 apply clang-format after 5cd2ab9
Change-Id: I186e90d99cd54e66d38159b7cb55a881226b1568
2016-09-19 15:56:08 -07:00
Alex Converse 1ac1ae73dc Move ANS to aom_dsp.
That's where it lives in aom/master.

Change-Id: I38f405827d9c2d0b06ef5f3bfd7cadc35d5991ef
2016-09-19 09:51:27 -07:00
Alex Converse eb00cb289b Move and wrap the old vpx boolcoder.
This should make room for compile time pluggable replacements.

Change-Id: Ib7afcffa93bf664b89a49da21a20138127443292
(cherry picked from commit 9dd0b89824)
2016-09-17 14:56:51 -07:00
Debargha Mukherjee 4c80804e66 Merge "Enable tile-adaptive restoration" into nextgenv2 2016-09-17 19:10:28 +00:00
Debargha Mukherjee 5cd2ab95c9 Enable tile-adaptive restoration
Includes a major refactoring/enhancement to support
tile-adaptive switchable restoration. The framework can be
readily extended to add more restoration schemes in the
future. Also includes various cleanups and fixes.

Specifically the framework allows restoration to be conducted
on tiles such that each tile can be either left unrestored, or
use bilateral or wiener filtering.

There is a modest improvemnt in coding efficiency (0.1 - 0.2%).

Further enhancements will be added subsequently to improve coding
efficiency and complexity.

Change-Id: I5ebedb04785ce1ef6f324abe209e925c2d6cbe8a
2016-09-17 09:46:28 -07:00
clang-format 67948d312d apply clang-format
Change-Id: If22018f8911d9d7ee99c2127bdfcc56e42b0e2d7
2016-09-15 16:41:21 -07:00
Yaowu Xu 66c41f9937 Merge "Clarify valid value ranges" into nextgenv2 2016-09-09 22:38:57 +00:00
Yaowu Xu 6feda0602a Clarify valid value ranges
This commit adds asserts to clarify value ranges in sum computations,
also corrects type conversion used in related calculations.

cherry-picked #738d5b19 from aom/master

Change-Id: Ib6d574ec23e5c28ccd994dac26f973eb3920430d
2016-09-09 11:58:53 -07:00
Geza Lore 1a800f6539 Add SSE2 versions of av1_fht8x16 and av1_fht16x8
Encoder speedup ~2% with ext-tx + rect-tx

Change-Id: Id56ddf102a887de31d181bde6d8ef8c4f03da945
2016-09-09 11:29:41 -07:00
Yaowu Xu 628d3c5839 variance_impl_avx2.c: align a table for better readability
Change-Id: I8cd99f9807dbfe6f70147615d2fd6775a7d98c16
2016-09-08 17:36:44 -07:00
Yaowu Xu 0dc4cbb059 sad_avx2.c: add hints for clang-foramt
Change-Id: I721c52e69395a99b3a0395dc229de1cbb32670e9
2016-09-07 00:29:13 +00:00
Yaowu Xu f87b9021f1 Fix a compiler warning of unused variable
Change-Id: I4a2faa32cc0847fe14dd8f40156163f4713055ca
2016-09-06 14:52:49 +00:00
Yaowu Xu 037845507d Avoid re-use same temp variables
In highbd_quantize_intrin_sse2.c.

Change-Id: Iaf6360e456f1fb2f8ff06461afbfecfc0103dda3
2016-09-06 14:52:19 +00:00
Yaowu Xu 34b0ee61b2 quantize.c: int->uint32_t for absolute values
Change-Id: I784f32e0e86d873655e46cf68c5c124a698af361
2016-09-06 14:51:47 +00:00
Yaowu Xu 1f9356a536 aom_dsp: AV1_IADST8x16_1D to AOM_IADST8x16_1D
Change-Id: Iba415ab2d4adb3350b4747a58f69db7d02bbab68
2016-09-06 14:51:32 +00:00
Yaowu Xu ecee7f29d0 Merge "Change to use AOM copyright notice" into nextgenv2 2016-09-02 22:13:24 +00:00
Yaowu Xu 2ab7ff05f1 Change to use AOM copyright notice
Change-Id: I2b2b70e756b7eb9611b7b33b7d5f19b3b30e0a50
2016-09-02 19:52:03 +00:00
Yaowu Xu 0764955002 Merge "Change to use aom copyright notice" into nextgenv2 2016-09-02 17:41:21 +00:00
Yaowu Xu 9c01aa1b0c Change to use aom copyright notice
This minimize code differences between AOM master and nextgenv2

Change-Id: If144865bdf3ef0818e7aac11018b9e786444c550
2016-09-02 08:22:07 -07:00
Angie Chiang cb9a9ebd81 Add frame info in bitstream debug tool
Change-Id: Iead3edd8563d7900481eb199e8b003d2d3df075b
2016-09-01 16:24:49 -07:00
Urvang Joshi 340593e530 Add ALT_INTRA experiment.
When the experiment is ON, we use Paeth predictor instead of TM
predictor.

For derf set, this gives about 0.09% improvement overall, and 0.55%
improvement if all frames are forced to be intra-only.

Also, if the EXT_INTRA experiment is also on, the improvement overall
is 0.056%, and improvement if all frames are forced to be intra-only is
0.465%.

Change-Id: Id74e107ede70a8d2107fa14fcb3f44b23a437274
2016-09-01 12:03:20 -07:00
Yaowu Xu f883b42cab Port renaming changes from AOMedia
Cherry-Picked the following commits:
0defd8f Changed "WebM" to "AOMedia" & "webm" to "aomedia"
54e6676 Replace "VPx" by "AVx"
5082a36 Change "Vpx" to "Avx"
7df44f1 Replace "Vp9" w/ "Av1"
967f722 Remove kVp9CodecId
828f30c Change "Vp8" to "AOM"
030b5ff AUTHORS regenerated
2524cae Add ref-mv experimental flag
016762b Change copyright notice to AOMedia form
81e5526 Replace vp9 w/ av1
9b94565 Add missing files
fa8ca9f Change "vp9" to "av1"
ec838b7  Convert "vp8" to "aom"
80edfa0 Change "VP9" to "AV1"
d1a11fb Change "vp8" to "aom"
7b58251 Point to WebM test data
dd1a5c8 Replace "VP8" with "AOM"
ff00fc0 Change "VPX" to "AOM"
01dee0b Change "vp10" to "av1" in source code
cebe6f0 Convert "vpx" to "aom"
17b0567 rename vp10*.mk to av1_*.mk
fe5f8a8 rename files vp10_* to av1_*

Change-Id: I6fc3d18eb11fc171e46140c836ad5339cf6c9419
2016-08-31 18:19:03 -07:00
Yaowu Xu c27fc14b02 Port folder renaming changes from AOM
Manually cherry-picked commits:
ceef058 libvpx->libaom part2
3d26d91 libvpx -> libaom
cfea7dd vp10/ -> av1/
3a8eff7 Fix a build issue for a test
bf4202e Rename vpx to aom

Change-Id: I1b0eb5a40796e3aaf41c58984b4229a439a597dc
2016-08-31 17:26:24 -07:00