]> granicus.if.org Git - libvpx/log
libvpx
8 years agoReorder includes
Yaowu Xu [Wed, 19 Oct 2016 00:15:40 +0000 (17:15 -0700)]
Reorder includes

Change-Id: I97487bf353471bf9d245cd620780adfb1d3fc2b1

8 years agoBit accounting.
Michael Bebenita [Thu, 25 Aug 2016 21:40:54 +0000 (14:40 -0700)]
Bit accounting.

This patch adds bit account infrastructure to the bit reader API.
When configured with --enable-accounting, every bit reader API
function records the number of bits necessary to decoding a symbol.
Accounting symbol entries are collected in global accounting data
structure, that can be used to understand exactly where bits are
spent (http://aomanalyzer.org). The data structure is cleared and
reused each frame to reduce memory usage. When configured without
--enable-accounting, bit accounting does not incur any runtime
overhead.

All aom_read_xxx functions now have an additional string parameter
that specifies the symbol name. By default, the ACCT_STR macro is
used (which expands to __func__). For more precise accounting,
these should be replaced with more descriptive names.

Change-Id: Ia2e1343cb842c9391b12b77272587dfbe307a56d

8 years agoMerge "Fix ransac random generator seeding" into nextgenv2
Debargha Mukherjee [Wed, 19 Oct 2016 01:39:08 +0000 (01:39 +0000)]
Merge "Fix ransac random generator seeding" into nextgenv2

8 years agoMerge "Update segment tree_cdf per frame." into nextgenv2
Yaowu Xu [Wed, 19 Oct 2016 01:09:52 +0000 (01:09 +0000)]
Merge "Update segment tree_cdf per frame." into nextgenv2

8 years agoMerge "Adds ability to measure with a higher precision the number of bits read per...
Yaowu Xu [Wed, 19 Oct 2016 01:09:41 +0000 (01:09 +0000)]
Merge "Adds ability to measure with a higher precision the number of bits read per symbol." into nextgenv2

8 years agoMerge "Add clamping to parameter search" into nextgenv2
Sarah Parker [Wed, 19 Oct 2016 00:44:28 +0000 (00:44 +0000)]
Merge "Add clamping to parameter search" into nextgenv2

8 years agoMerge "Adjust gm costing so GLOBAL_ZERO is treated as regular zeromv" into nextgenv2
Sarah Parker [Wed, 19 Oct 2016 00:44:12 +0000 (00:44 +0000)]
Merge "Adjust gm costing so GLOBAL_ZERO is treated as regular zeromv" into nextgenv2

8 years agoUpdate segment tree_cdf per frame.
Nathan E. Egge [Sat, 20 Aug 2016 00:06:51 +0000 (20:06 -0400)]
Update segment tree_cdf per frame.

Move computing the segmentation_probs.tree_cdf table per symbol to
 computing it only when the probabilities are updated.

Change-Id: I3826418094bbaca4ded87de5ff04d4b27c85e35a

8 years agoAdds ability to measure with a higher precision the number of bits
Michael Bebenita [Thu, 25 Aug 2016 18:27:56 +0000 (11:27 -0700)]
Adds ability to measure with a higher precision the number of bits
read per symbol.

Change-Id: I218abaa5172b769b66dba45050381c0212602668

8 years agoAdd clamping to parameter search
Sarah Parker [Tue, 18 Oct 2016 23:27:04 +0000 (16:27 -0700)]
Add clamping to parameter search

This fixes mismatches due to overflowing low precision parameters.

Change-Id: If34e39ca7ab0adc9688d46b0e8ed62cbb6fdaff0

8 years agoAdjust gm costing so GLOBAL_ZERO is treated as regular zeromv
Sarah Parker [Tue, 18 Oct 2016 23:18:23 +0000 (16:18 -0700)]
Adjust gm costing so GLOBAL_ZERO is treated as regular zeromv

Change-Id: I1b41146ae844c985566f5f9fdaeb5d4a4a5927b6

8 years agoFix ransac random generator seeding
Sarah Parker [Tue, 11 Oct 2016 19:29:07 +0000 (12:29 -0700)]
Fix ransac random generator seeding

Ransac's get_rand_indices originally used rand_r seeded with the
same value every time, producing the same random sequence at every
iteration. This causes the global motion parameters to be slightly
less accurate because ransac cannot improve the model fit after
the first attempt.

Change-Id: Idca2f88468ea21d19ba41ab66e5a2744ee33aade

8 years agoRemove rd_variance_adjustment
Guillaume Martres [Tue, 23 Aug 2016 08:16:35 +0000 (01:16 -0700)]
Remove rd_variance_adjustment

This function is called after `super_block_yrd` and assumes that the dst
buffer is correct but that is no longer always the case after
daf841b4a10ece1b6831300d79f271d00f9d027b since we don't call
`txfm_rd_in_plane` after the RDO loop in `choose_tx_size_from_rd`.
We could fix this by always saving and restoring the dst buffer but
removing `rd_variance_adjustment` is a better solution:
- Getting the dst buffer always right is tricky as demonstrated by the
  fact that it is wrong now, even if we fix it now we could break it later
  and not notice
- Perceptual weighting is a good idea but `rd_variance_adjustment` is the
  wrong approach as it weights both the rate and the distortion:
  to get meaningful units you should only weight the distortion,
  weighting rate means that we pretend some bits cost less than other
  bits, this is not the case. The distortion weighting approach is
  implemented by Daala in `od_compute_dist` and we plan to experiment
  with this in AV1 too.
- Removing `rd_variance_adjustment` improves coding efficiency on all
  metrics, here are the results for objective-1-fast using the Low
  Latency settings:

      PSNR Y:     -0.14%
     PSNRHVS:     -0.17%
        SSIM:     -0.12%
      MSSSIM:     -0.12%
   CIEDE2000:     -0.07%

Change-Id: I74b26b568ee65f56521646b8f30dd53bcd29fce3

8 years agoAdd cb4x4 experimental flag
Jingning Han [Fri, 19 Aug 2016 17:10:14 +0000 (10:10 -0700)]
Add cb4x4 experimental flag

Experiment on coding block at resolution of 4x4 block.

Change-Id: I6aa201038f00c590747d800edb0a3e76ab1a51e8

8 years agoRemove unused PICK_MODE_CONTEXT::is_coded.
Yushin Cho [Wed, 10 Aug 2016 18:52:05 +0000 (11:52 -0700)]
Remove unused PICK_MODE_CONTEXT::is_coded.

Change-Id: Ibc73b4066dcdee45d32355144124762d26a16a28

8 years agoRemove unused array 'last_frame_seg_map_copy'.
Urvang Joshi [Thu, 28 Jul 2016 22:51:12 +0000 (15:51 -0700)]
Remove unused array 'last_frame_seg_map_copy'.

This array was allocated and used to save and restore segmentation map,
however the original segmentation map was never modified between the
calls to save and restore.

Change-Id: Iaf0fbfed733c097e84cf44d2aa6b8f35d2fb456b

8 years agoAdd sub8x8_mc experimental flag
Jingning Han [Tue, 21 Jun 2016 01:24:38 +0000 (18:24 -0700)]
Add sub8x8_mc experimental flag

Change-Id: Ifcc329df240c0771172180933a6180b21fd31abe

8 years agoMerge "Remove macroblock::skip_optimize." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 19:52:50 +0000 (19:52 +0000)]
Merge "Remove macroblock::skip_optimize." into nextgenv2

8 years agoMerge "Skip 4x4 transform if maximum possible transform is 32x32" into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 19:52:41 +0000 (19:52 +0000)]
Merge "Skip 4x4 transform if maximum possible transform is 32x32" into nextgenv2

8 years agoMerge "Take out some early termination speed features" into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 19:48:46 +0000 (19:48 +0000)]
Merge "Take out some early termination speed features" into nextgenv2

8 years agoMerge "Add experimental tag for 64x64 transform" into nextgenv2
Angie Chiang [Tue, 18 Oct 2016 19:14:55 +0000 (19:14 +0000)]
Merge "Add experimental tag for 64x64 transform" into nextgenv2

8 years agoRemove macroblock::skip_optimize.
Yushin Cho [Tue, 21 Jun 2016 21:29:56 +0000 (14:29 -0700)]
Remove macroblock::skip_optimize.

This is not used since the commint 00cd5de536fd5545d8fb663b2db81c014e3e6a41,
"Remove skip_recode speed feature".

Change-Id: Ic03da6c0095f6285a3889d5d22e8aaa2e6cbfd79

8 years agoSkip 4x4 transform if maximum possible transform is 32x32
Hui Su [Tue, 18 Oct 2016 17:21:36 +0000 (10:21 -0700)]
Skip 4x4 transform if maximum possible transform is 32x32

On average no compression performance changes. Encoding speed is
increased by 10~20% on some test clips in the derf set.

Change-Id: I9856caaa260303f6f6259686671bed7d51012277

8 years agoTake out some early termination speed features
Jingning Han [Tue, 7 Jun 2016 23:11:42 +0000 (16:11 -0700)]
Take out some early termination speed features

Drop some speed features used in speed 2 and above, during the
algorithm development process. This helps simplify the codebase.

Change-Id: I3b2f5560d90b00d2d8fd57c2cb36f6ddd3f228e4

8 years agoMerge "Move a statement to match order in aom/master" into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 17:58:32 +0000 (17:58 +0000)]
Merge "Move a statement to match order in aom/master" into nextgenv2

8 years agoMerge "Remove stale OD_ACCOUNTING code." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 17:58:13 +0000 (17:58 +0000)]
Merge "Remove stale OD_ACCOUNTING code." into nextgenv2

8 years agoAdd experimental tag for 64x64 transform
Debargha Mukherjee [Tue, 18 Oct 2016 17:24:31 +0000 (10:24 -0700)]
Add experimental tag for 64x64 transform

Change-Id: I65c04006f6e6eb13ceb22efc1c39915cb3c82b82

8 years agoMove a statement to match order in aom/master
Yaowu Xu [Tue, 18 Oct 2016 17:00:21 +0000 (10:00 -0700)]
Move a statement to match order in aom/master

Change-Id: Ic11eae36c9c62a20699197847aa3ef9562d4ad7e

8 years agoMerge "Port aom_reader_tell() support" into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 16:48:57 +0000 (16:48 +0000)]
Merge "Port aom_reader_tell() support" into nextgenv2

8 years agoRemove stale OD_ACCOUNTING code.
Michael Bebenita [Tue, 23 Aug 2016 23:03:39 +0000 (16:03 -0700)]
Remove stale OD_ACCOUNTING code.

Change-Id: Ie90dd06c387119ccd9c920a328c942477df00bb7

8 years agoMerge "Fix for var_tx entropy context with rect_tx" into nextgenv2
Debargha Mukherjee [Tue, 18 Oct 2016 16:03:37 +0000 (16:03 +0000)]
Merge "Fix for var_tx entropy context with rect_tx" into nextgenv2

8 years agoMerge "Correction to costing rect_tx" into nextgenv2
Debargha Mukherjee [Tue, 18 Oct 2016 16:03:18 +0000 (16:03 +0000)]
Merge "Correction to costing rect_tx" into nextgenv2

8 years agoPort aom_reader_tell() support
Michael Bebenita [Wed, 3 Aug 2016 23:13:04 +0000 (16:13 -0700)]
Port aom_reader_tell() support

This commit ports the following from aom/master:
4c46278 Add aom_reader_tell() support.
b9c9935 Remove an erroneous declaration.
56c9c3b Fix ANS build.

Change-Id: I59bd910f58c218c649a1de2a7b5fae0397e13cb1

8 years agoFix for var_tx entropy context with rect_tx
Peter de Rivaz [Tue, 18 Oct 2016 14:38:01 +0000 (15:38 +0100)]
Fix for var_tx entropy context with rect_tx

This computation should match the code in encode_block
to increase the accuracy of the rd optimization.

Change-Id: Ibc9d9ab6d88d0c0f3af62e9cc233216aba48a57e

8 years agoCorrection to costing rect_tx
Peter de Rivaz [Tue, 18 Oct 2016 10:47:56 +0000 (11:47 +0100)]
Correction to costing rect_tx

When built with var_tx and ext_tx, select_tx_size_fix_type is used
to compute the cost for using a particular tx_type.
The code indexes the array inter_tx_type_costs at the wrong location
resulting in a zero cost for signalling tx_type for rect_tx blocks.

Change-Id: Iba38be3a0d822109f778f0600b242dfb40359766

8 years agoCreate aom_cdf_prob type for 16-bit probabilities.
Nathan E. Egge [Fri, 19 Aug 2016 21:16:31 +0000 (17:16 -0400)]
Create aom_cdf_prob type for 16-bit probabilities.

Change-Id: I33899eca44300037816c9f20c965aa8311a1ef52

8 years agoRename daala_read_tree_cdf() to daala_read_symbol().
Nathan E. Egge [Fri, 19 Aug 2016 19:31:43 +0000 (15:31 -0400)]
Rename daala_read_tree_cdf() to daala_read_symbol().

Change-Id: I35f85bad88c637cea62577c546cdd5ced0e21bd6

8 years agoMerge "Add filter_intra experiment flag" into nextgenv2
Hui Su [Tue, 18 Oct 2016 00:54:20 +0000 (00:54 +0000)]
Merge "Add filter_intra experiment flag" into nextgenv2

8 years agoMerge "Fix warning when discarding const qualifier." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 00:50:09 +0000 (00:50 +0000)]
Merge "Fix warning when discarding const qualifier." into nextgenv2

8 years agoMerge "Revert code formatting of OD_UNIFORM_CDFS_Q15." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 00:49:56 +0000 (00:49 +0000)]
Merge "Revert code formatting of OD_UNIFORM_CDFS_Q15." into nextgenv2

8 years agoMerge "Rename aom_write_tree_cdf() to aom_write_symbol()." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 00:49:41 +0000 (00:49 +0000)]
Merge "Rename aom_write_tree_cdf() to aom_write_symbol()." into nextgenv2

8 years agoMerge "Bug fix in super_block_uvrd()." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 00:49:27 +0000 (00:49 +0000)]
Merge "Bug fix in super_block_uvrd()." into nextgenv2

8 years agoMerge "Display --bit-depth in -h with highbitdepth enabled." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 00:49:18 +0000 (00:49 +0000)]
Merge "Display --bit-depth in -h with highbitdepth enabled." into nextgenv2

8 years agoMerge "Update partition_cdf per frame." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 00:49:05 +0000 (00:49 +0000)]
Merge "Update partition_cdf per frame." into nextgenv2

8 years agoMerge "Update inter_ext_tx_cdf per frame." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 00:48:53 +0000 (00:48 +0000)]
Merge "Update inter_ext_tx_cdf per frame." into nextgenv2

8 years agoMerge "Update intra_ext_tx_cdf per frame." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 00:48:41 +0000 (00:48 +0000)]
Merge "Update intra_ext_tx_cdf per frame." into nextgenv2

8 years agoMerge "Update switchable_interp_cdf once per frame." into nextgenv2
Yaowu Xu [Tue, 18 Oct 2016 00:48:26 +0000 (00:48 +0000)]
Merge "Update switchable_interp_cdf once per frame." into nextgenv2

8 years agoMerge "Refactor motion estimation in MOTION_VAR experiment" into nextgenv2
Yue Chen [Tue, 18 Oct 2016 00:32:00 +0000 (00:32 +0000)]
Merge "Refactor motion estimation in MOTION_VAR experiment" into nextgenv2

8 years agoAdd filter_intra experiment flag
hui su [Mon, 17 Oct 2016 23:14:27 +0000 (16:14 -0700)]
Add filter_intra experiment flag

Will break ext-intra into 2 experiments: ext-intra and filter-intra.

Change-Id: Ibf66e9b9d9307fd58a703eada9569b74d171434b

8 years agoRefactor motion estimation in MOTION_VAR experiment
Yue Chen [Mon, 10 Oct 2016 19:37:54 +0000 (12:37 -0700)]
Refactor motion estimation in MOTION_VAR experiment

To get ready for pulling AV1 to nextgenv2. Refactoring is done to
make the code structures similar, especially for the motion search
part.

Change-Id: I5d7636394408d97de55394d668540f5627827983

8 years agoFix warning when discarding const qualifier.
Nathan E. Egge [Thu, 18 Aug 2016 06:34:53 +0000 (02:34 -0400)]
Fix warning when discarding const qualifier.

Cherry-pick Daala 211c2a41: Clean up EC tell() and tell_frac() functions.
Add a const qualifier to the od_ec_enc and od_ec_dec parameters of
 the od_ec_enc_tell(), od_ec_enc_tell_frac(), od_ec_dec_tell(), and
 od_ec_dec_tell_frac() functions.
Add an OD_WARN_UNUSED_RESULT to od_ec_enc_tell_frac().

Change-Id: Ia50e2fd75e98d8a03d993449d658b695cf56e6fb

8 years agoRevert code formatting of OD_UNIFORM_CDFS_Q15.
Nathan E. Egge [Tue, 21 Jun 2016 03:01:29 +0000 (23:01 -0400)]
Revert code formatting of OD_UNIFORM_CDFS_Q15.

The formatting of OD_UNIFORM_CDFS_Q15[] in entcode.c is helpful for
 for understanding what is contained in the array (e.g., the uniform
 probability distributions of small sizes 2 through 16).
This patch reverts the change made in f4b2926d and adds linter hints to
 ignore the formatting.

Change-Id: I2ad9fe6673b86e6067cb97b40f0f0e69a119cdf5

8 years agoRename aom_write_tree_cdf() to aom_write_symbol().
Nathan E. Egge [Mon, 25 Jul 2016 14:23:33 +0000 (10:23 -0400)]
Rename aom_write_tree_cdf() to aom_write_symbol().

Change-Id: I7c088c55f1c461063976d5bd84ff2026c4f3bc69

8 years agoBug fix in super_block_uvrd().
Yushin Cho [Tue, 21 Jun 2016 21:51:23 +0000 (14:51 -0700)]
Bug fix in super_block_uvrd().

In super_block_uvrd(),if is_cost_valid == 0, all return parameters,
i.e. rate, distortion, skippable, and sse, are reset.
So, should not call txfm_rd_in_plane() if is_cost_valid == 0.
Also, the bug causes av1_xform_quant() to see invalid diff signal
since av1_subtract_plane() is not called in super_block_uvrd().

Change-Id: Iaa06061e2e9aa8876b4611a54f4ae6b8d499332b

8 years agoDisplay --bit-depth in -h with highbitdepth enabled.
Nathan E. Egge [Tue, 12 Jul 2016 22:03:18 +0000 (18:03 -0400)]
Display --bit-depth in -h with highbitdepth enabled.

Display the -b --bit-depth command line parameter on of aomenc when
 --config-aom-highbitdepth is enabled.

Change-Id: I76147e38b9985e68b1e642e21be8fd4d8ec4d966

8 years agoUpdate partition_cdf per frame.
Nathan E. Egge [Tue, 3 May 2016 13:48:54 +0000 (09:48 -0400)]
Update partition_cdf per frame.

Move computing the partition_cdf tables per symbol to
 computing them only when the probabilities are updated.

Change-Id: I442f9230ba00be7f5d0558d7c38d7324ad009ee8

8 years agoUpdate inter_ext_tx_cdf per frame.
Nathan E. Egge [Tue, 3 May 2016 14:01:32 +0000 (10:01 -0400)]
Update inter_ext_tx_cdf per frame.

Move computing the inter_ext_tx_cdf tables per symbol to
 computing them only when the probabilities are updated.

Change-Id: I5e1e62f8eae8f6b2edbbd378beeb786649502c10

8 years agoUpdate intra_ext_tx_cdf per frame.
Nathan E. Egge [Tue, 26 Apr 2016 16:31:14 +0000 (12:31 -0400)]
Update intra_ext_tx_cdf per frame.

Move computing the intra_ext_tx_cdf tables per symbol to
 computing them only when the probabilities are updated.

Change-Id: I26d5e419e103093e98a7d896c196176305b50fc9

8 years agoUpdate switchable_interp_cdf once per frame.
Nathan E. Egge [Tue, 26 Apr 2016 15:37:06 +0000 (11:37 -0400)]
Update switchable_interp_cdf once per frame.

Move from computing the switchable_interp_cdf per symbol to
 computing once per frame when the probabilities are adapted.

Change-Id: I6571126239f0327e22bb09ee8bad94114291683e

8 years agoReplace {} with continue
Yaowu Xu [Mon, 17 Oct 2016 15:12:18 +0000 (08:12 -0700)]
Replace {} with continue

Change-Id: I2e939e898cc30c2999b47f2789191e08272b1cc0

8 years agoMerge changes Ie43c599f,Icd0dbed4,Ic04e180b into nextgenv2
Yaowu Xu [Fri, 14 Oct 2016 23:46:48 +0000 (23:46 +0000)]
Merge changes Ie43c599f,Icd0dbed4,Ic04e180b into nextgenv2

* changes:
  Move av1_indices_from_tree() to common code space.
  Add code to compute in-order mappings for tokens.
  Fix bug in av1_tree_to_cdf_2D() macro.

8 years agoMerge changes I339d0389,I2fa1e87a,If79fa5ae,Icb1a8cb8,Ic76de4a4, ... into nextgenv2
Yaowu Xu [Fri, 14 Oct 2016 23:42:22 +0000 (23:42 +0000)]
Merge changes I339d0389,I2fa1e87a,If79fa5ae,Icb1a8cb8,Ic76de4a4, ... into nextgenv2

* changes:
  Add missing CONFIG_DAALA_EC declaration.
  Add API for writing trees using a CDF.
  Add macro to build a simple cdf table.
  Use Daala entropy coder to code trees.
  Silence clang-format code review warning.
  Use Daala entropy coder to code bits.
  Clear existing format issue in the codebase
  Add Daala entropy coder.

8 years agoMerge "Zero high 128b YMM registers to avoid SSE-AVX transition penalties" into nextgenv2
Yi Luo [Fri, 14 Oct 2016 23:13:09 +0000 (23:13 +0000)]
Merge "Zero high 128b YMM registers to avoid SSE-AVX transition penalties" into nextgenv2

8 years agoMerge "Bugfix: fix the build for CONFIG_FP_MB_STATS" into nextgenv2
Urvang Joshi [Fri, 14 Oct 2016 22:11:28 +0000 (22:11 +0000)]
Merge "Bugfix: fix the build for CONFIG_FP_MB_STATS" into nextgenv2

8 years agoMove av1_indices_from_tree() to common code space.
Nathan E. Egge [Wed, 20 Jul 2016 17:12:31 +0000 (13:12 -0400)]
Move av1_indices_from_tree() to common code space.

Move the av1_indices_from_tree() function from av1/encoder/treewriter.c
 to aom_dsp/prob.c so that it can be used by both the encoder and
 the decoder.

Change-Id: Ie43c599f425c3503b1ff93f0c77b5033a05b1bb4

8 years agoAdd missing CONFIG_DAALA_EC declaration.
Nathan E. Egge [Fri, 15 Jul 2016 20:56:03 +0000 (16:56 -0400)]
Add missing CONFIG_DAALA_EC declaration.

Without first including ./aom_config.h in aom_dsp/prob.c the memmove
 function is implicitly defined and causes a compiler warning.

Change-Id: I339d0389f10324a1085aba7d6492b2159a14da92

8 years agoAdd code to compute in-order mappings for tokens.
Nathan E. Egge [Sun, 19 Jun 2016 18:38:04 +0000 (14:38 -0400)]
Add code to compute in-order mappings for tokens.

Add av1_indices_from_tree() function that computes a forward and inverse
 mapping of the tree leaf-node symbols to their in-order traversal.
This is necessary because many of the aom_tree binary trees have their
 leaf nodes out of order (e.g., an in-order traversal of a tree with n
 nodes does not start at symbol 0 and go to symbol n - 1), but the CDFs
 created by tree_to_cdf() are indexed in-order.

Change-Id: Icd0dbed4c171a67c9e84a634106c4fdb5b1b3488

8 years agoAdd API for writing trees using a CDF.
Nathan E. Egge [Mon, 20 Jun 2016 17:44:22 +0000 (13:44 -0400)]
Add API for writing trees using a CDF.

Added aom_write_tree_cdf() and aom_read_tree_cdf() function calls to
 bitwriter.h and bitreader.h respectively.
These calls take a multisymbol CDF and an index and directly encode the
 symbol using the enabled entropy coder.
Currently only the daala entropy encoder supports this (enabled with
 --enable-daala_ec) and a compile error is thrown otherwise.

Change-Id: I2fa1e87af4352c94384e0cfdbfd170ac99cf3705

8 years agoFix bug in av1_tree_to_cdf_2D() macro.
Nathan E. Egge [Mon, 18 Jul 2016 03:07:27 +0000 (23:07 -0400)]
Fix bug in av1_tree_to_cdf_2D() macro.

Change-Id: Ic04e180b09745fab2230d05985770c41deea4fad

8 years agoAdd macro to build a simple cdf table.
Nathan E. Egge [Thu, 19 May 2016 16:11:56 +0000 (12:11 -0400)]
Add macro to build a simple cdf table.

Add the av1_tree_to_cdf() macro which takes a aom_tree_index tree and
 associated aom_prob probabilities and constructs a daala uint16_t cdf.
The av1_tree_to_cdf_1D() and av1_tree_to_cdf_2D() apply av1_tree_to_cdf()
 across 1D and 2D arrays respectively.

Change-Id: If79fa5ae034263f279d7d0842493570885272fb2

8 years agoUse Daala entropy coder to code trees.
Nathan E. Egge [Sun, 6 Mar 2016 18:41:53 +0000 (13:41 -0500)]
Use Daala entropy coder to code trees.

When building with --enable-daala_ec, calls to aom_write_tree() and
 aom_read_tree() will convert a aom_tree_index structure with associated
 aom_prob probabilities into a CDF on the fly for use with the
 od_ec_encode_cdf_q15().
The number of symbols in the CDF is capped at 16, and trees that contain
 more than 16 leaf nodes are handled by splitting the most likely, e.g.,
 highest probability symbols, first and coding multiple symbols if
 necessary.

ntt-short-1:

         MEDIUM (%) HIGH (%)
    PSNR 0.000227   0.000213
 PSNRHVS 0.000215   0.000205
    SSIM 0.000229   0.000209
FASTSSIM 0.000229   0.000214

subset1:

          RATE (%)  DSNR (dB)
    PSNR -0.00026   0.00002
 PSNRHVS -0.00026   0.00002
    SSIM -0.00026   0.00001
FASTSSIM -0.00026   0.00001

Change-Id: Icb1a8cb854fd81fdd88fbe4bc6761c7eb4757dfe

8 years agoSilence clang-format code review warning.
Nathan E. Egge [Tue, 21 Jun 2016 17:02:36 +0000 (13:02 -0400)]
Silence clang-format code review warning.

Change-Id: Ic76de4a4c0c39924bf04c3c2fa9214d33bcee9fb

8 years agoUse Daala entropy coder to code bits.
Nathan E. Egge [Sun, 6 Mar 2016 17:42:47 +0000 (12:42 -0500)]
Use Daala entropy coder to code bits.

When building with --enable-daala_ec, calls to aom_write() and aom_read()
 use the daala entropy coder to write and read bits.
When the probability is exactly 0.5 (128), then raw bits are used.

ntt-short-1:

          MEDIUM (%) HIGH (%)
    PSNR -0.027556  -0.020114
 PSNRHVS -0.027401  -0.020169
    SSIM -0.027587  -0.020151
FASTSSIM -0.027592  -0.020102

subset1:

         RATE (%)  DSNR (dB)
    PSNR 0.03296  -0.00210
 PSNRHVS 0.03537  -0.00281
    SSIM 0.03299  -0.00161
FASTSSIM 0.03458  -0.00111

Change-Id: I48ad8eb40fc895d62d6e241ea8abc02820d573f7

8 years agoClear existing format issue in the codebase
Yaowu Xu [Fri, 14 Oct 2016 20:53:51 +0000 (13:53 -0700)]
Clear existing format issue in the codebase

Fix the clang-format warnings on the existing codes.

Change-Id: I8e9e781b6f68f41a7fbd0a2116f6b35290d73dc8

8 years agoAdd Daala entropy coder.
Nathan E. Egge [Sun, 6 Mar 2016 15:59:29 +0000 (10:59 -0500)]
Add Daala entropy coder.

Change-Id: I2849a50163268d58cc5d80aacfec1fd02299ca43

8 years agoMerge "Switch rANS to 15 bit precision, and adjust L_BASE." into nextgenv2
Alex Converse [Fri, 14 Oct 2016 21:56:34 +0000 (21:56 +0000)]
Merge "Switch rANS to 15 bit precision, and adjust L_BASE." into nextgenv2

8 years agoSwitch rANS to 15 bit precision, and adjust L_BASE.
Alex Converse [Fri, 9 Sep 2016 17:51:48 +0000 (10:51 -0700)]
Switch rANS to 15 bit precision, and adjust L_BASE.

This causes rANS to operate at the same precision as the Daala EC.

aom/master stats: rans10uabs8lbase12 → rans15uabs8lbase15

objective-1-fast
PSNR YCbCr:      0.01%      0.01%      0.01%
   PSNRHVS:      0.01%
      SSIM:      0.01%
    MSSSIM:      0.01%
 CIEDE2000:      0.01%

subset1
PSNR YCbCr:     -0.01%     -0.00%     -0.00%
   PSNRHVS:     -0.01%
      SSIM:     -0.01%
    MSSSIM:     -0.01%
 CIEDE2000:     -0.01%

(cherry picked from aom/master commit ddbc2e2a68bfc997dc61fca5bcaac3a75245e965)

Change-Id: I6ef0a4f6198784b3712a61af9f105d560a22eaea

8 years agoBugfix: fix the build for CONFIG_FP_MB_STATS
Urvang Joshi [Fri, 14 Oct 2016 00:11:08 +0000 (17:11 -0700)]
Bugfix: fix the build for CONFIG_FP_MB_STATS

Cherry-picked from aomedia/master: bf6c636

Change-Id: Iea3fb46d23cb94d1152de3a7a40b6a183e78b4d7

8 years agoWrap palette code inside CONFIG_PALETTE flag.
Urvang Joshi [Wed, 12 Oct 2016 23:28:56 +0000 (16:28 -0700)]
Wrap palette code inside CONFIG_PALETTE flag.

This flag was already added to aomedia/master, so bringing it back to
webm/nextgenv2, as part of an effort to get the two codebases in sync.

Change-Id: I2b933a6a160e4210d1411a9e7978149eb8553205

8 years agoZero high 128b YMM registers to avoid SSE-AVX transition penalties
Yi Luo [Fri, 7 Oct 2016 22:02:33 +0000 (15:02 -0700)]
Zero high 128b YMM registers to avoid SSE-AVX transition penalties

Documents:
- https://software.intel.com/en-us/articles/intel-avx-state-transitions-migrating-sse-code-to-avx
- https://software.intel.com/sites/default/files/m/d/4/1/d/8/11MC12_Avoiding_2BAVX-SSE_2BTransition_2BPenalties_2Brh_2Bfinal.pdf

Change-Id: I90f85fcb15a7a2c49ee068300be6ffe9c68d371c

8 years agoMerge changes I4850b36e,Ic4d7128a into nextgenv2
James Zern [Fri, 14 Oct 2016 19:10:20 +0000 (19:10 +0000)]
Merge changes I4850b36e,Ic4d7128a into nextgenv2

* changes:
  variance_avx2: sync variance functions with c-code
  Resolve -Wshorten-64-to-32 in variance.

8 years agoUse "av1" as codec name
Yaowu Xu [Fri, 14 Oct 2016 18:05:54 +0000 (11:05 -0700)]
Use "av1" as codec name

Change-Id: I7650f1e96df0bcd53b1733c7967aae52dccf836a

8 years agoMerge "Revert "Revert "Move CLPF block signals from frame to SB level.""" into nextgenv2
Yaowu Xu [Fri, 14 Oct 2016 17:58:20 +0000 (17:58 +0000)]
Merge "Revert "Revert "Move CLPF block signals from frame to SB level.""" into nextgenv2

8 years agoMerge "Delete some redundant function declarations in aom_dsp_rtcd_defs.pl" into...
Yi Luo [Fri, 14 Oct 2016 17:50:37 +0000 (17:50 +0000)]
Merge "Delete some redundant function declarations in aom_dsp_rtcd_defs.pl" into nextgenv2

8 years agoRevert "Revert "Move CLPF block signals from frame to SB level.""
Yaowu Xu [Fri, 14 Oct 2016 15:47:03 +0000 (08:47 -0700)]
Revert "Revert "Move CLPF block signals from frame to SB level.""

This reverts commit 9b25f3067485b32442e13964df098903736c3fd8 to
reinstate the reverted commit with fixes that solved the build issues
when --enalbe-clpf is used in configure.

Change-Id: I15447cae7fa9b3deb27976345dc3db230a4a7a60

8 years agoMerge "Revert "Move CLPF block signals from frame to SB level."" into nextgenv2
Yaowu Xu [Fri, 14 Oct 2016 15:39:36 +0000 (15:39 +0000)]
Merge "Revert "Move CLPF block signals from frame to SB level."" into nextgenv2

8 years agoRevert "Move CLPF block signals from frame to SB level."
Yaowu Xu [Fri, 14 Oct 2016 15:39:03 +0000 (15:39 +0000)]
Revert "Move CLPF block signals from frame to SB level."

This reverts commit 975350387ce0b55bf5af8cb944f6a242b72251ff.

Change-Id: I9f8e891739352ca2bde4b294e37c85a668f416e0

8 years agovariance_avx2: sync variance functions with c-code
James Zern [Mon, 19 Sep 2016 23:17:24 +0000 (16:17 -0700)]
variance_avx2: sync variance functions with c-code

add missing int64 -> uint32 cast; quiets -Wshorten-64-to-32 warnings

Change-Id: I4850b36e18dc8b399108342be4bfe0b684aefb78
(cherry picked from commit 6acd061aad8cf62000cc9117390d0c94581a8591)

8 years agoResolve -Wshorten-64-to-32 in variance.
Alex Converse [Thu, 28 Jul 2016 16:48:50 +0000 (09:48 -0700)]
Resolve -Wshorten-64-to-32 in variance.

The subtrahend is small enough to fit into uint32_t.

Change-Id: Ic4d7128aaa665eaf6b25d562610ba8942c46137f
(cherry picked from commit c0241664aac3a1805db9bd8e09e071ac326531e0)

8 years agoMerge "Simplify 8x16 and 16x8 inverse transform tests" into nextgenv2
Debargha Mukherjee [Fri, 14 Oct 2016 02:53:38 +0000 (02:53 +0000)]
Merge "Simplify 8x16 and 16x8 inverse transform tests" into nextgenv2

8 years agoMerge "Enable test system to detect transforms misusing 'stride' parameter" into...
Debargha Mukherjee [Fri, 14 Oct 2016 02:50:46 +0000 (02:50 +0000)]
Merge "Enable test system to detect transforms misusing 'stride' parameter" into nextgenv2

8 years agoMerge "Add sse2 forward and inverse 16x32 and 32x16 transforms" into nextgenv2
Debargha Mukherjee [Fri, 14 Oct 2016 02:49:20 +0000 (02:49 +0000)]
Merge "Add sse2 forward and inverse 16x32 and 32x16 transforms" into nextgenv2

8 years agoMerge "Renamings for OBMC experiment" into nextgenv2
Yue Chen [Fri, 14 Oct 2016 01:33:00 +0000 (01:33 +0000)]
Merge "Renamings for OBMC experiment" into nextgenv2

8 years agoDelete some redundant function declarations in aom_dsp_rtcd_defs.pl
Yi Luo [Fri, 14 Oct 2016 00:53:45 +0000 (17:53 -0700)]
Delete some redundant function declarations in aom_dsp_rtcd_defs.pl

Change-Id: I4df57a7faba5800c048b2dc469ec31545406f55c

8 years agoMove CLPF block signals from frame to SB level.
Steinar Midtskogen [Wed, 21 Sep 2016 11:38:16 +0000 (13:38 +0200)]
Move CLPF block signals from frame to SB level.

These signals were in the uncompressed frame header (as a temporary
hack), which caused two problems:

* We don't want that header to be duplicated in the slice header
* It was necessary to signal the number of bits to transmit up front

However, the filter size can be 128x128 which is greater than the SB
size, and a decoder wouldn't be able to know whether to read a bit or
not until the final SB of that 128x128 block has been decoded
(depending on whether the 128x128 is all skip or not).  Therefore the
signalling was changed for 128x128 blocks so that every top left SB of
a 128x128 filter block contains a signal regardless of whether the
block is all skip or not.  Also, all the MB's of 128x128 block are
filtered even if they are skip MB's.  This gives the signal a purpose
even when the 128x128 block is all skip, and it also gives a slight
coding gain as it leaves a way to filter skip blocks, which was
previously forbidden.

Low latency:
PSNR YCbCr:     -0.19%     -0.14%     -0.06%
   PSNRHVS:     -0.15%
      SSIM:     -0.13%
    MSSSIM:     -0.15%
 CIEDE2000:     -0.19%

High latency:
PSNR YCbCr:     -0.03%     -0.01%     -0.09%
   PSNRHVS:      0.04%
      SSIM:      0.00%
    MSSSIM:      0.02%
 CIEDE2000:     -0.02%

Change-Id: I69ba7144d07d388b4f0968f6a53558f480979171

8 years agoRenamings for OBMC experiment
Yue Chen [Thu, 13 Oct 2016 22:18:22 +0000 (15:18 -0700)]
Renamings for OBMC experiment

To get ready for pulling AV1 to nextgenv2
Replace the experimental flag by MOTION_VAR. Rename major variables.

Change-Id: If6cf4f37b9319c46d8f90df551cc7295d66ca205

8 years agoDon't use _mm_cvtsi128_si64 on 32 bit systems
Steinar Midtskogen [Wed, 5 Oct 2016 21:09:21 +0000 (23:09 +0200)]
Don't use _mm_cvtsi128_si64 on 32 bit systems

Change-Id: I332afb8d9e35cd60f05915160a5b2e1dc8757de5

8 years agoFix formatting in a few files
Yaowu Xu [Thu, 13 Oct 2016 20:04:29 +0000 (13:04 -0700)]
Fix formatting in a few files

Change-Id: Ia5175afe82b142d9e18c01c546610202c630588e

8 years agoRemoving some useless loops in deringing filter
Jean-Marc Valin [Fri, 7 Oct 2016 22:10:19 +0000 (18:10 -0400)]
Removing some useless loops in deringing filter

No change in the output

Change-Id: I1627feaa163d65da0df90e9dacbc5e39ee755de8

8 years agoFix deringing level choice for 10-bit and 12-bit
Jean-Marc Valin [Sat, 8 Oct 2016 18:10:39 +0000 (14:10 -0400)]
Fix deringing level choice for 10-bit and 12-bit

Making sure we never exceed a base level of 63

Change-Id: I821254b8d970446bd40fdd6e4d7073c69760a86d