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

21256 Коммитов

Автор SHA1 Сообщение Дата
Ralph Giles 46b7bb243b
Merge pull request #8 from Mozilla-GitHub-Standards/master
Add Mozilla Code of Conduct
2019-03-31 20:33:42 -07:00
Mozilla-GitHub-Standards 316c586b2e Add Mozilla Code of Conduct file
Fixes #7.

_(Message COC002)_
2019-03-30 00:09:49 -07:00
Yue Chen c8b38b0bfd AV1 offline probability optimizer
This tool is a gadget for offline probability training.

A binary executable aom_entropy_optimizer will be generated in
tools/. It parses a binary file consisting of counts written in
the format of FRAME_COUNTS in entropymode.h, and computes the
optimized probability table, which will be written to a new c file
optimized_probs.c using the format in entropymode.c.

Command line:
./aom_entropy_optimizer [directory of the count file]

The input file can be either be generated from a single run by
turning on entropy_stats experiment(counts are accumulated from
frame to frame, and finally written to counts.stt), or be collected
at a larger scale, at which a python script (will be provided soon)
can be used to aggregate multiple stats output.

Optimization for initial CDFs will be also supported later.

Change-Id: I32070721aa8059439feb6b5a3a179f1001c66bb7
2017-06-29 03:25:01 +00:00
Tristan Matthews 86a6738406 analyzer: support high bitdepth and low bitdepth
Change-Id: I25ae2f7df1d1b53f3615a193017ab451afaf61fc
2017-06-28 19:58:28 -04:00
Yaowu Xu d7b2be70a7 Remove references to a previously removed variable
fixes build of performance tests

Change-Id: I64565b46f2d39c935dc6f635570fb88d496faac3
2017-06-28 23:39:16 +00:00
Wei-Ting Lin 852683073f Add NCOBMC_ADAPT_WEIGHT as another motion mode
Change-Id: Id5c3df752528a3ea74e655b3d18a5d6f258a2238
2017-06-28 23:09:25 +00:00
Tom Finegan d1ff7543df Sync CMake build with the configure build.
Added: CONFIG_NCOBMC_ADAPT_WEIGHT CONFIG_BGSPRITE
Changed, 0 => 1: CONFIG_SMOOTH_HV

Change-Id: Ifc76266d1fd9175b053109699aaf6f02415a2519
2017-06-28 22:08:44 +00:00
Yaowu Xu 5e8007fe01 align buffers to avoid Segmentation fault
BUG=aomedia:579

Change-Id: I41731a71e25db429a78512a72afed10b6929da70
2017-06-28 12:52:50 -07:00
Yi Luo 0f4195c218 Fwd txfm and quantizer HBD/LBD data paths co-exist
Change-Id: Iaae46d0735539b8b8daf9faac81c2a3434838020
2017-06-28 17:40:28 +00:00
James Zern 8ab5b5f613 sad_highbd_avx2: avoid _mm256_set1_epi64x w/x86 vs2013
this version has the prototype, but will fail at link time

Change-Id: I67a11c2b131313ebb9380aece988cd7805223cbe
2017-06-28 15:49:36 +00:00
Sarah Parker 5680a01d5b Extend DISABLE_TRELLISQ_SEARCH to include calls from var-tx
Currently, trellis optimization is performed in
av1_tx_block_rd_b when var-tx is enabled even when DISABLE_TRELLISQ_SEARCH
is set to 1.

The drop in performance when DISABLE_TRELLISQ_SEARCH is set to 1 is
1.8% on lowres

Change-Id: I89e26d4d4f57944db11b528d0e10048ae650d8a1
2017-06-28 15:25:04 +00:00
Nathan E. Egge 50f1911192 Add the av1_cost_tokens_from_cdf() function.
Change-Id: I148f8c7045d179c0a1ba7f1fe33b859f66bfc7f3
2017-06-28 15:10:17 +00:00
Frederic Barbier 05b45e6b79 Avoid use of deprecated inv-txfm in encoder
Change-Id: Ie721eaf58d0716e340b9ebdff9fd215cfe0c3c2a
2017-06-28 12:04:56 +00:00
Thomas Davies 894cc81312 NEW_MULTISYMBOL: adapt comp_ref and bwd_ref.
Change-Id: I711cd173af501ba955e889d1e2205125615a99fd
2017-06-28 09:50:17 +00:00
Jingning Han 243b66bc32 Support rectangular tx_type coding in var-tx
Support the transform block kernel coding for rectangular
transform block size in var-tx. This integrates txk-sel with
var-tx.

Change-Id: I9a8edd84812168f56c79b78cc9af34f6304b1d54
2017-06-28 04:07:09 +00:00
Angie Chiang 8147372094 Fix lv_map when accounting is on
Change-Id: I2e5191d0274776521ec7e3a2f79468dc86adb9e0
2017-06-28 01:10:49 +00:00
David Barker 6c4af6b7c8 Fix some irregularities in SSE2 variance code
Change-Id: I1dcf3bd33645aed3347301149808c157eeb44cad
2017-06-28 00:53:28 +00:00
Wei-Ting Lin 85a8f70c5c ncobmc_adapt_weight: Add bitstream syntax
Define the syntax and entropy coding templates for
NCOBMC_ADAPT_WEIGHT. The actual values of the default
probabilities and the index tree structure need to
be fine tuned.

In this experiment all mv's in a superblock are sent
first as in the ncobmc case.

Change-Id: I68d50d3d27346c2847ea449a1168c6a99fbb4d3d
2017-06-27 22:30:13 +00:00
Todd Nguyen 302d097096 Add experiment bgsprite
Work in progress to generate ARF with stitched background image.

Change-Id: I2fea75bbe5ac6f713f53eb5825776dadfc1d98c5
2017-06-27 22:28:19 +00:00
Urvang Joshi bda59df37b Enable smooth_hv by default.
This experiment was provisionally adopted on 2017-06-27.

Change-Id: Ic7eb232b8187133f59956eed09e5f5de02c0986e
2017-06-27 22:27:56 +00:00
Luc Trudeau 8fb4c9e730 [CFL] Sum Alpha Distortion Over Transform Block
This change does not impact the bitstream, it changes how to distortion
is summed when evaluating alpha. The sum is still taken over the entire
partition. However, instead of iterating over the entire surface all at
once, CfL now iterates over each transform block. This is in light of
future work to compute alpha over transform blocks and not prediction
blocks.

Results on Subset1 (compared to 9c6f854 with CfL)

  PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
0.0000 |  0.0000 |  0.0000 |   0.0000 | 0.0000 |  0.0000 |     0.0000

Change-Id: Ic7b72201d29ad6b2527748e35b212bec515e3bdb
2017-06-27 22:02:28 +00:00
Debargha Mukherjee f053cba247 Reduce multiplier precision for warp least squares
Includes reordering and other clamping changes, as well as
changes to reduce multiplier precision.

cam_lowres (60 frames): -0.092% BDRATE improvement in
--disable-cdef --disable-global-motion --disable-ext-tx
configuation.

Change-Id: I0660c45b44fcd5a193534d8dadd1aa1ae5c5e27a
2017-06-27 21:49:32 +00:00
Yi Luo 5128109508 Fix inv txfm low/high bitdepth selection logic
We are going to have several commits to setup new low/high
bitdepth data path selection logic. This patch is for inverse
transform. Let me summarize the ideas as following.

- For low/high bitdepth selection, encoder depends on
  input configuration, e.g., video sequence bitdepth,
  profile. Decoder depends on input bitstream. This has
  nothing to do with compiler/build  configuration.

- Typical encoder usage for sampling format 4:2:0.
  1) 8-bit video sequence:
   a) --profile=0
   Fastest encoding/decoding pipeline on speedup.

   b) --profile=2 --bit-depth=10
   Image pixels are left shifted by 2 bits. It
   employs 16-bit reference frame buffer and has high
   calculation precision. It usually enjoys higher
   compression performance.

  2) 10/12-bit video sequence (HDR):
   --profile=2 --bit-depth=10/12

- Transform coefficient type:
  Lowbitdepth:  int16_t
  Highbitdepth: int32_t

- The type, tran_low_t is still used in codebase,
  Which is int32_t, defining the data path capacity.
  Naturally, it is high bitdepth.

Eventually we shall remove the configuration flags,
CONFIG_HIGHBITDEPTH/CONFIG_LOWBITDEPTH, and seperate
low and high bitdepth data path. Two data paths co-exist
in the same build environment.

Change-Id: I35c06d4d4f19ebf80d909168fdddbae57c3cc884
2017-06-27 21:20:51 +00:00
Sarah Parker 784596d5f1 Remove redundant checks in read/write_tx_type
Change-Id: I348dfd1f8b555306a3fb625bf2303f9cd2649e07
2017-06-27 15:14:24 +00:00
Rupert Swarbrick 580943a78d supertx: Read and write transforms with CDF in decode_partition
Patch b1bedf5f73 converted the three writes in bitstream.c that
specify an extended transform from using av1_write_token (encoded with
probability trees) to aom_write_symbol (encoded with CDFs).

That patch fixed up the two reads in decodemv.c but didn't fix up the
corresponding read in decodeframe.c. This patch does so.

The patch also fixes up a write of a (non-extended) transform when not
CONFIG_EXT_TX and the corresponding read.

Change-Id: Ibf5dcfcf3e7122f08dd0ef8616fb0ecddb95d99a
2017-06-27 10:03:01 +00:00
Jingning Han e3b81bcf6a Rework recursive transform block partition search
Support transform block level kernel selection in the recursive
transform block partitioning search.

Change-Id: I511c39705ee636b0c9fabbe4720fe5a9764b964a
2017-06-27 02:35:37 +00:00
Jingning Han a65f3051d6 Re-organize the block index in decode_reconstruct_tx
Make the block index use cases consistent in the recursive
transform block partition.

Change-Id: I57778acfab73c786a1db8c8b9110d56ce6df4854
2017-06-27 02:35:32 +00:00
Wei-Ting Lin 1d46d90319 Fix token-encoding errors in NCOBMC
mi[0] is not set properly when encoding all mvs in a
super-block first. After this patch NCOBMC can function
properly.

Change-Id: I149a50184c4823c0d3b82b6b21c7608e639668e6
2017-06-27 00:24:15 +00:00
Yaowu Xu d43d6777a6 quantize.c: convert to int before apply sign
This change makes the conversions similar to those in av1_quantize.c,
and fix ubsan warnings shown in nightly tests.

Change-Id: I90851a80dcb9f052a32bf22199fd9ef8ff927725
2017-06-26 15:49:37 -07:00
James Zern 284c883029 aom_dsp.cmake: add highbd_quantize_intrin_avx2.c
added in:
193422e76 Add avx2 highbd_quantize_b

Change-Id: Ie4ba48042ffd36d69d2bf200bba12a1d924c8f9c
2017-06-26 21:36:59 +00:00
Yushin Cho 8ab875d63e daala-dist: high bit depth support
Change-Id: Idafef140d3425a9a9f66cb8864a804c4d2a89a70
2017-06-26 21:01:27 +00:00
Adrian Grange 0d6ab64e67 Remove redundant code line
Change-Id: Iaf9e8192905ea24946d6e2831be5739eaa564fae
2017-06-26 20:58:08 +00:00
Yushin Cho 0474912c38 Fix daala-dist for var-tx
The var-tx has its own suite of tx size/type RD search functions,
which recursively split the partition into square tx blocks.

The Daala-dist requires access to 8x8 pixels (both decoded and predicted)
since it measures the distortion for multiple of a 8x8 pixels.
Thus, if tx block is smaller than 8x8, it waits until all of sub8x8 blocks
are RD searched (with MSE) then replaces the MSE of 8x8 pixels with
daala-dist's calculated distortion for 8x8 pixels.

It is also applied to luma pixels only.

Change-Id: Ic4891e89b4ef05cf880aa26781d2d06ccf3142de
2017-06-26 19:54:41 +00:00
Lester Lu ad8290b8e6 New experiment: LGT
In previous ADSTs, DST-7 and DST-4 are used for length 4 and length
8/16/32, respectively. In this LGT experiment we explore transforms
between DST-4 and DST-7. When CONFIG_LGT flag is on, adst4 and adst8
are replaced by lgt4 and lgt8, the intermediate transforms with
pre-chosen parameters.

The LGTs applied here are lgt4_160 and lgt8_170, where the numbers
mean the self-loop weights times 100. The associated values for DST-7
and DST-4 are 100 and 200.

ovr_psnr:
lowres: -0.140
midres: -0.131
hdres: -0.078

These changes are not applied to the highbd scenario in the
current version.

Change-Id: I20600456da8766528b2b6b11aa28801e70af498e
2017-06-26 19:11:25 +00:00
Yushin Cho 75b0100431 Fix daala_dist to handle visible pixels only
- If invisible pixels, av1_daala_dist() simply use source pixles for dst.
- Added av1_daala_dist_diff() which inputs diff signal instead of dst.

- Refactored daala_dist code so that av1_daala_dist() and _diff()
is called inside av1's distortion calculation functions, pixel_sse() and
sum_squares_visible().

Change-Id: Id857db52fe19856d92c46a9e84ac2962c01ae045
2017-06-26 18:47:20 +00:00
Debargha Mukherjee 6f0566e7b1 Fix some valgrind errors in loop-restoration
BUG=aomedia:623

Change-Id: I158072895adb8a9f5f177b8146f3beec265d7406
2017-06-24 00:36:50 -07:00
David Barker 67d968f322 Change mv scaling behaviour
This patch changes the motion vector scaling and clamping to be
slightly more accurate (removing an occasional 1px offset due to
multiple roundings) and fixes the border clamping when scaling
frames.

Change-Id: I032dc0b87854eebafa58f1f803981e23c8cc2d9b
2017-06-24 07:22:02 +00:00
Sebastien Alaiwan 6757197a91 Simplify superframe index writing
Avoids mixing accesses to ctx->pending_cx_data
with serialization logic.
"index_sz" is deduced from the write position,
instead of being redundantly computed.

Change-Id: Ic14f93886da61acc1735fbbe4f787e45a4ca79eb
2017-06-24 06:58:47 +00:00
Sebastien Alaiwan d94476d1c4 Fix double definition of 'pd'
This reverts commit a3d70911c3.

Reason for revert: this was fixed in cb63767 which moved the
definition to a different line causing this change to merge
cleanly, resulting in a duplicate.

Change-Id: I2d8763f0e2af320f043a1417ba33e82f82163592
2017-06-24 06:37:22 +00:00
James Zern d937cdbef9 x86: _mm_set_epi64x -> _mm_{set_epi32,cvtsi32_si128}
_mm_set_epi64x is incompatible with visual studio x86 configurations

Change-Id: I7986e43d0471699553affeefabae66a512d9d46a
2017-06-24 02:37:59 +00:00
James Zern cab708b775 configure,cmake: test for -Wstring-conversion
BUG=aomedia:621

Change-Id: I60b4fa9e5ebbef37bf1859a98d82c34821d2d02b
2017-06-24 00:48:17 +00:00
James Zern 88896734ea {decodeframe,rdopt}.c: fix asserts with strings
lead with '0 &&' to avoid string to bool conversion warnings

BUG=aomedia:621

Change-Id: I2cd6618377f9ed94f4d9dbc252f6f5cfc81efea4
2017-06-24 00:48:17 +00:00
Angie Chiang bd99b38c7f Pass mbmi into get_scan()
This is to facilitate future experiment related to adapt_scan

Change-Id: I51628f3df81bd82db7f8f553d13da0ee5792d7d9
2017-06-24 00:38:20 +00:00
Yushin Cho a3d70911c3 Fix compile warning
Fixed the compile warning when both global-motion
and warped-motion are disabled.

Change-Id: Ie3ac036fc6c0a15e54a56427452682d7ea7864db
2017-06-24 00:30:30 +00:00
Fergus Simpson 7a3f4b3594 scaling: Fix scaling numerator arguments for KFs
0835e7b80 left out the required changes to aomenc.c for the KF numerator
arguments for resize and superres to work. This patch adds them.

Change-Id: I350b01c8b187188de5313fffaa15c1ec9f052469
2017-06-23 21:59:58 +00:00
Wei-Ting Lin 9c6f85475d Add NCOBMC_ADAPT_WEIGHT experiment flag
NCOBMC_ADAPT_WEIGHT allow using different interpolation kernels
to combine overlapped predictions generated using mvs in the
neighboring blocks.
This experiment will build on top of MOTION_VAR and it might conflict
with WARPED_MOTION in the developing stage, so will only be effective
when MOTION_VAR is on and WARPED_MOTION is off.

Change-Id: I4f1b6e55b6146ed443955751c09bfa22ef2f33e8
2017-06-23 20:40:46 +00:00
David Barker 11132ce34c Fix bug with chroma-sub8x8 + resizing
The special path in build_inter_predictors for chroma blocks
corresponding to sub8x8 luma blocks would always fetch the
scale factors from 'xd', which correspond (at least in the
decoder) to the references of the block for which is_chroma_reference
returns true.

The correct behaviour is to fetch the scale factors from 'ref_buf',
which corresponds to the references of the block currently being
predicted.

This patch fixes some encode/decode mismatches which were caused
by the above behaviour when the various reference frames had
different sizes.

Change-Id: I48a0a167ea25d47d08018016cf8b77885b3b5d6b
2017-06-23 17:23:27 +00:00
Debargha Mukherjee afe7c5fd7a Do not find transformation for very few points
Adds check to make sure that find transformation functions are
never called for 0 points.

Change-Id: I2d7cf40aace535b1d708d6189aea9c1e0f7c281b
2017-06-23 13:36:49 +00:00
James Zern d598f04df2 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: Iaa549f2e2a054d716c24f5a64baf700747c55295
2017-06-23 06:02:52 +00:00
Yaowu Xu cde0a31b29 Revert "Always use the 16-bit coding path"
BUG=aomedia:620

This reverts commit 4da880bd2b.

Change-Id: I40a2295083b3328ef743d3eab9c2aa514dc698eb
2017-06-23 00:33:33 +00:00