4 years agoA simple implementation of PSNR-HVS-M. exp_switching
Gregory Maxwell [Wed, 20 Feb 2013 19:14:18 +0000 (11:14 -0800)]
A simple implementation of PSNR-HVS-M.

This uses Tim's quantization matrix work instead of the tables
in the paper which are JPEG derived, because we know how to
generate those for other sizes. They appear to give slightly
better results on the TID database than the paper ones.

PSNR-HVS-M is described in:

N. Ponomarenko, F. Silvestri, K.Egiazarian, M. Carli, V. Lukin,
On Between-Coefficient Contrast Masking of DCT Basis Functions,
CD-ROM proceedings of Third International Workshop on Video
Processing and Quality Metrics for Consumer Electronics VPQM-07,
January, 2007, 4p

4 years agoCenter the 4x4 split markers in switch_decision.c.
Gregory Maxwell [Fri, 25 Jan 2013 04:50:00 +0000 (23:50 -0500)]
Center the 4x4 split markers in switch_decision.c.

4 years agoAdds code to display the image segmentation in the image itself
Jean-Marc Valin [Sat, 19 Jan 2013 13:02:45 +0000 (08:02 -0500)]
Adds code to display the image segmentation in the image itself

4 years agoNew log-based psy model for block switching
Jean-Marc Valin [Sat, 19 Jan 2013 11:10:37 +0000 (06:10 -0500)]
New log-based psy model for block switching

4 years agoMake it easy to change the size of the switching decision overlap
Jean-Marc Valin [Sat, 19 Jan 2013 06:16:24 +0000 (01:16 -0500)]
Make it easy to change the size of the switching decision overlap

4 years agooops, multiply the coding by two because 2D images look better
Jean-Marc Valin [Sat, 19 Jan 2013 00:10:10 +0000 (19:10 -0500)]
oops, multiply the coding by two because 2D images look better

4 years agoReduce switching noise floor so we can get the fudge factor back to 1
Jean-Marc Valin [Fri, 18 Jan 2013 23:06:56 +0000 (18:06 -0500)]
Reduce switching noise floor so we can get the fudge factor back to 1

4 years agoWorking "whole frame" switching code
Jean-Marc Valin [Fri, 18 Jan 2013 17:26:43 +0000 (12:26 -0500)]
Working "whole frame" switching code

4 years agoFix compile errors from previous commit.
Timothy B. Terriberry [Fri, 18 Jan 2013 07:18:00 +0000 (23:18 -0800)]
Fix compile errors from previous commit.

I blame gremlins.

4 years agoPredict chroma from the luma plane.
Timothy B. Terriberry [Fri, 18 Jan 2013 06:30:47 +0000 (22:30 -0800)]
Predict chroma from the luma plane.

We fit a linear model to the neighboring blocks that predicts
 chroma from luma using the DC and first few AC coefficients, then
 use that model to predict the all the coefficients of the current
This gives slightly better results visually, edging out both the
 original signaled INTRA modes as well as a version that just adds
 chroma-from-luma as another preidction mode.
It also saves about 0.8% bitrate on subset1, and avoids a mode
 search and signaling for the luma plane.
The PSNR and SSIM goes down (sometimes over half a dB), however.

The TF code is not correcting for the transform basis scaling,
 which is not uniform due to the lapping.
However, non-zero chroma AC coefficients are rare enough that this
 is probably not a big deal.
We also still use an (unsignaled) DC intra predictor for chroma
 blocks on the top and left edges of the image, which is kind of

4 years agoFix the Y4M output to use the picture dimensions.
Timothy B. Terriberry [Fri, 18 Jan 2013 06:27:34 +0000 (22:27 -0800)]
Fix the Y4M output to use the picture dimensions.

Otherwise they don't match the size of the input.

4 years agoFixing od_scale_init to call NE_POST_FILTER instead of OD_POST_FILTER
Nathan E. Egge [Thu, 17 Jan 2013 21:53:13 +0000 (16:53 -0500)]
Fixing od_scale_init to call NE_POST_FILTER instead of OD_POST_FILTER

4 years agoConvert remaining __GNUC_PREREQ to OD_GNUC_PREREQ macros.
Ralph Giles [Thu, 17 Jan 2013 20:46:14 +0000 (12:46 -0800)]
Convert remaining __GNUC_PREREQ to OD_GNUC_PREREQ macros.

The public headers were changed in 72f210a8 with the exception
of the final clause at the end of codec.h. The change is required
to build with that header on APPLE clang, which does not itself
define __GNUC_PREREQ.

I also changed the internal occurances for consistency.

4 years agoAdding a flag to use Cholesky decomposition in intra_pred
Nathan E. Egge [Thu, 17 Jan 2013 17:16:50 +0000 (12:16 -0500)]
Adding a flag to use Cholesky decomposition in intra_pred

4 years agoConvert block scanning into macro block order.
Timothy B. Terriberry [Thu, 17 Jan 2013 07:34:21 +0000 (23:34 -0800)]
Convert block scanning into macro block order.

This is one more step on the way to multiple block size support.
We now quantize and code an entire macroblock's worth of 4x4 blocks
 before encoding the next macroblock.
This also converts the full transform, quantization, tokenization,
 dequantization, and inverse transform steps to happen in a single
 pass through the image.

This adds roughly a 1% bitrate penalty, because it's not adapting
 the PVQ parameters within a macroblock (and the speed it can adapt
 is limited by the size of a macroblock).
We'll want to do something smarter there by the time we grow things
 to superblocks.

We still consider the blocks in raster order within the macroblock,
 which we'll eventually want to change as well.

4 years agoAdd macro for small unsigned divisions.
Timothy B. Terriberry [Thu, 17 Jan 2013 07:32:38 +0000 (23:32 -0800)]
Add macro for small unsigned divisions.

This converts 32-bit unsigned divisions by divisors up to 32 into
 a multiply, add, and shift.

4 years agoMake encoder use multiple-of-16 frame sizes.
Timothy B. Terriberry [Thu, 17 Jan 2013 07:23:08 +0000 (23:23 -0800)]
Make encoder use multiple-of-16 frame sizes.

This is a follow-up to 310443b9.
Although the picture size can be arbitary, the underlying frame
 size needs to be a multiple of 16.

4 years agoMakes derf happy by fixing a warning in test_coef_coder
Jean-Marc Valin [Thu, 17 Jan 2013 02:27:52 +0000 (21:27 -0500)]
Makes derf happy by fixing a warning in test_coef_coder

4 years agoAdds RDO to the scalar quantizer
Jean-Marc Valin [Wed, 16 Jan 2013 22:08:05 +0000 (17:08 -0500)]
Adds RDO to the scalar quantizer

The approximation seems to (sort of) work, but not the "full model"

4 years agoAdding support for multiple block sizes in intra_pred and intra_stats
Nathan E. Egge [Wed, 16 Jan 2013 18:02:46 +0000 (13:02 -0500)]
Adding support for multiple block sizes in intra_pred and intra_stats

4 years agoAdding trans tool to find optimal TDLT parameters for a set of y4m files
Nathan E. Egge [Wed, 16 Jan 2013 07:33:02 +0000 (02:33 -0500)]
Adding trans tool to find optimal TDLT parameters for a set of y4m files

4 years agoAdding block mode classification using cost in bits
Nathan E. Egge [Wed, 16 Jan 2013 05:08:27 +0000 (00:08 -0500)]
Adding block mode classification using cost in bits

4 years agoFixes uninitialized memory issues from previous commit
Jean-Marc Valin [Wed, 16 Jan 2013 04:54:34 +0000 (23:54 -0500)]
Fixes uninitialized memory issues from previous commit

4 years agoReplaces the pos1 pvq coder with a more general delta coder
Jean-Marc Valin [Tue, 15 Jan 2013 23:45:23 +0000 (18:45 -0500)]
Replaces the pos1 pvq coder with a more general delta coder

Leaves the pos1 code in for now. Causes a 0.3% increase in bitrate on subset1,
but reduces the number of symbols coded.

4 years agoCopying pre/post filter4 to stats_tools
Nathan E. Egge [Tue, 15 Jan 2013 16:23:27 +0000 (11:23 -0500)]
Copying pre/post filter4 to stats_tools

4 years agoFixes laplace_encode_special() for non powers of two
Jean-Marc Valin [Tue, 15 Jan 2013 02:18:04 +0000 (21:18 -0500)]
Fixes laplace_encode_special() for non powers of two

4 years agoAdding block weighting to intra_pred
Nathan E. Egge [Tue, 15 Jan 2013 00:02:36 +0000 (19:02 -0500)]
Adding block weighting to intra_pred

4 years agoFixing pooled blocks bug when intra_pred run with multiple images
Nathan E. Egge [Sun, 13 Jan 2013 16:37:23 +0000 (11:37 -0500)]
Fixing pooled blocks bug when intra_pred run with multiple images

4 years agooops, fixes build error caused by previous commit.
Jean-Marc Valin [Mon, 7 Jan 2013 22:08:16 +0000 (17:08 -0500)]
oops, fixes build error caused by previous commit.

4 years agoMoves od_pvq_adapt_ctx from pvq.h to pvq_code.h
Jean-Marc Valin [Mon, 7 Jan 2013 21:58:15 +0000 (16:58 -0500)]
Moves od_pvq_adapt_ctx from pvq.h to pvq_code.h

4 years agoMake sure we adapt the pvq coder numerator at the same time as the denominator
Jean-Marc Valin [Mon, 7 Jan 2013 21:05:06 +0000 (16:05 -0500)]
Make sure we adapt the pvq coder numerator at the same time as the denominator

In the K=1 case, if we use the special case, then we don't adapt the values
but we still apply the decay so we get uniform averaging

4 years agoFix test_coef_coder for !OD_DISABLE_PVQ_CODE1.
Timothy B. Terriberry [Mon, 7 Jan 2013 03:57:15 +0000 (19:57 -0800)]
Fix test_coef_coder for !OD_DISABLE_PVQ_CODE1.

I broke it in DF5C4078.

4 years agoUse 2-D moving average to estimate PVQ parameters.
Timothy B. Terriberry [Mon, 7 Jan 2013 03:37:53 +0000 (19:37 -0800)]
Use 2-D moving average to estimate PVQ parameters.

This uses a 2-D filter instead of a simple 1-D moving average to
 estimate the parameters of the PVQ probability model in a local
This reduces the bitrate on subset1 by 0.61% without the special
 K=1 case, and by 0.20% with the special K=1 case.

4 years agoUpdating od_scale_init to respect APPLY_POSTFILTER flag
Nathan E. Egge [Wed, 9 Jan 2013 21:00:03 +0000 (16:00 -0500)]
Updating od_scale_init to respect APPLY_POSTFILTER flag

4 years agoAdding intra_pred tool
Nathan E. Egge [Sun, 6 Jan 2013 02:28:26 +0000 (21:28 -0500)]
Adding intra_pred tool

4 years agoRefactoring common data structures into stats_tools.c
Nathan E. Egge [Sat, 22 Dec 2012 22:18:39 +0000 (17:18 -0500)]
Refactoring common data structures into stats_tools.c

4 years agoAdd M_LOG2E to odintrin.h.
Timothy B. Terriberry [Mon, 10 Dec 2012 05:23:55 +0000 (21:23 -0800)]
Add M_LOG2E to odintrin.h.

This doesn't get #defined by default on Windows, nor with gcc when
 using --std=c89.
However, we should still just have this constant in one place.

4 years agoFixing typo in #if
Nathan E. Egge [Wed, 28 Nov 2012 04:08:59 +0000 (23:08 -0500)]
Fixing typo in #if

4 years agoAdding intra_stats tool
Nathan E. Egge [Wed, 28 Nov 2012 03:04:18 +0000 (22:04 -0500)]
Adding intra_stats tool

4 years agoReduce pollution of public headers.
Timothy B. Terriberry [Fri, 23 Nov 2012 00:55:57 +0000 (16:55 -0800)]
Reduce pollution of public headers.

Stop defining __GNUC_PREREQ (use the prefixed OD_GNUC_PREREQ
 instead), move the MSVC warning options to internal.h, remove most
 of them and add gcc versions of them.

4 years agoFix some unused argument warnings.
Timothy B. Terriberry [Fri, 23 Nov 2012 00:08:49 +0000 (16:08 -0800)]
Fix some unused argument warnings.

We need these for the API, but the functions don't actually use
 them yet.

4 years agoWrite a real comment header.
Timothy B. Terriberry [Fri, 23 Nov 2012 00:04:10 +0000 (16:04 -0800)]
Write a real comment header.

This fixes some unused variable warnings, and also cleans up some
 other interfaces.

4 years agoRefactor buffer handling and pad images.
Timothy B. Terriberry [Wed, 21 Nov 2012 10:12:21 +0000 (02:12 -0800)]
Refactor buffer handling and pad images.

First step in refactoring the image buffer handling.
This makes it easier to adjust the number of reference buffers
 and image buffers we use.
It also increases the number of image buffers to two, using the
 second one to copy and pad the input image out to the frame size
 (instead of just the picture size).
This padding should fix any issues with non-multiple-of-16 image
The copy also allows us to guarantee the xstride is 1, and with the
 common case where it is optimized, should allow us to continue to
 support non-unit xstrides (for direct support of packed YUYV,
 UYVY, etc. input).

4 years agoAdd a hard maximum on the number of image planes.
Timothy B. Terriberry [Wed, 21 Nov 2012 00:52:21 +0000 (16:52 -0800)]
Add a hard maximum on the number of image planes.

We can always raise this later, but as a practical matter this
 simplifies a number of things.
You'd want to do something else for hyperspectral data, anyway.

4 years agoCorrect ctmp usage.
Timothy B. Terriberry [Wed, 21 Nov 2012 00:47:29 +0000 (16:47 -0800)]
Correct ctmp usage.

66f7bf23 partially included changes to migrate ctmp from a single
 buffer to a group of buffers for each plane.
Unfortunately, it didn't include the parts that actually changed
 how ctmp was allocated.
Back out the indexing changes and be more consistent about how
 relative addresses are computed.

4 years agoSmall cleanups to the Cholesky factorization.
Timothy B. Terriberry [Tue, 20 Nov 2012 23:52:09 +0000 (15:52 -0800)]
Small cleanups to the Cholesky factorization.

Clean up #includes, eliminate some dead code, and drop an unused

4 years agoDon't include coefficients for the current block.
Gregory Maxwell [Mon, 19 Nov 2012 15:53:29 +0000 (10:53 -0500)]
Don't include coefficients for the current block.

Since we're not intending to use this right now it's going to get
 us into trouble if we leave it enabled in the repository.

4 years agoClean up fDCT and add explicit 2D functions.
Timothy B. Terriberry [Wed, 7 Nov 2012 22:42:21 +0000 (14:42 -0800)]
Clean up fDCT and add explicit 2D functions.

We were being inconsistent about the order of rows vs. columns in
 various places, and the code for multiple block-sizes was an
 unmaintainable mess.
This should be much cleaner now.

4 years agoMissing word in the requirements draft, thanks Oggk.
Gregory Maxwell [Mon, 5 Nov 2012 19:03:18 +0000 (14:03 -0500)]
Missing word in the requirements draft, thanks Oggk.

4 years agoRelicense everything as 2-clause BSD.
Timothy B. Terriberry [Mon, 5 Nov 2012 18:41:44 +0000 (10:41 -0800)]
Relicense everything as 2-clause BSD.

4 years agoAdd -00 version of pvq draft.
Jean-Marc Valin [Sat, 27 Oct 2012 05:33:17 +0000 (01:33 -0400)]
Add -00 version of pvq draft.

5 years agoI actually do know my name, I promise. (also, move misplaced draft-egge)
Gregory Maxwell [Tue, 16 Oct 2012 01:39:28 +0000 (21:39 -0400)]
I actually do know my name, I promise. (also, move misplaced draft-egge)

5 years agoAdd -00 version of TDLT draft.
Nathan E. Egge [Mon, 15 Oct 2012 23:50:39 +0000 (19:50 -0400)]
Add -00 version of TDLT draft.

5 years agoAdd -00 version of requirements draft.
Gregory Maxwell [Mon, 15 Oct 2012 21:11:49 +0000 (17:11 -0400)]
Add -00 version of requirements draft.

5 years agoAdd -00 version of codingtools draft.
Timothy B. Terriberry [Mon, 15 Oct 2012 20:49:22 +0000 (13:49 -0700)]
Add -00 version of codingtools draft.

This is the I-D as submitted to the IETF.

5 years agoIntra2.java not using simple average for mode 0 and not recomputing beta on each...
Nathan E. Egge [Wed, 3 Oct 2012 01:14:18 +0000 (21:14 -0400)]
Intra2.java not using simple average for mode 0 and not recomputing beta on each block

5 years agoUpdated Intra2.java to allow for changing weights, MAX_CG ceiling
Nathan E. Egge [Mon, 1 Oct 2012 22:23:03 +0000 (18:23 -0400)]
Updated Intra2.java to allow for changing weights, MAX_CG ceiling

5 years agoMakes y[m] positive when prediction is good (saves ~1%)
Jean-Marc Valin [Mon, 1 Oct 2012 19:17:54 +0000 (15:17 -0400)]
Makes y[m] positive when prediction is good (saves ~1%)

5 years agoIt's amazing how much efficiency we can gain by coding information only once
Jean-Marc Valin [Mon, 1 Oct 2012 15:41:57 +0000 (11:41 -0400)]
It's amazing how much efficiency we can gain by coding information only once

5 years agoTreat y[m] differently from other components
Jean-Marc Valin [Mon, 1 Oct 2012 07:57:51 +0000 (03:57 -0400)]
Treat y[m] differently from other components

5 years agoRewrite of Intra.java, now computes beta_0 and delta bits from CG
Nathan E. Egge [Mon, 1 Oct 2012 02:27:00 +0000 (22:27 -0400)]
Rewrite of Intra.java, now computes beta_0 and delta bits from CG

5 years agoRDO cleanup. Fixes some of the rate costs in the PVQ search.
Jean-Marc Valin [Fri, 28 Sep 2012 21:51:16 +0000 (17:51 -0400)]
RDO cleanup. Fixes some of the rate costs in the PVQ search.

Still mostly disabled because it doesn't actually improve.

5 years agoFixed bug in SATD based k-means
Nathan E. Egge [Sat, 22 Sep 2012 17:36:47 +0000 (13:36 -0400)]
Fixed bug in SATD based k-means

5 years agoRefactoring Intra.java and adding reclassification via CG
Nathan E. Egge [Sat, 22 Sep 2012 16:10:00 +0000 (12:10 -0400)]
Refactoring Intra.java and adding reclassification via CG

5 years agoUpdated Java code to generate sparse intra prediction coefficients using CG
Nathan E. Egge [Fri, 24 Aug 2012 19:24:01 +0000 (15:24 -0400)]
Updated Java code to generate sparse intra prediction coefficients using CG

5 years agoRefactored 4x4 intra prediction to use common multiplication function
Nathan E. Egge [Wed, 22 Aug 2012 04:43:35 +0000 (00:43 -0400)]
Refactored 4x4 intra prediction to use common multiplication function

5 years agoreplaced qsort() with O(N) search, RDO code on with lambda=0
Jean-Marc Valin [Sat, 4 Aug 2012 20:04:23 +0000 (13:04 -0700)]
replaced qsort() with O(N) search, RDO code on with lambda=0

5 years agoRDO search for PVQ (disabled by default for now)
Jean-Marc Valin [Sat, 4 Aug 2012 16:53:41 +0000 (09:53 -0700)]
RDO search for PVQ (disabled by default for now)

5 years agoTuning of the PVQ RDO and computation of K
Jean-Marc Valin [Wed, 1 Aug 2012 02:15:53 +0000 (19:15 -0700)]
Tuning of the PVQ RDO and computation of K

5 years agoUse scale variable for dc dequant.
Gregory Maxwell [Tue, 31 Jul 2012 23:04:13 +0000 (19:04 -0400)]
Use scale variable for dc dequant.

This corrects a stupid bug from an overly hasty
switch to using a variable instead of constants.

5 years agoMake init_intra_xform work with larger block sizes.
Timothy B. Terriberry [Mon, 30 Jul 2012 16:49:37 +0000 (09:49 -0700)]
Make init_intra_xform work with larger block sizes.

The transform calls were hard-coded for 4x8.
This commit allows them to work for up to 16x32.

5 years agoUpdate to 16x32 pre-/post- filter.
Timothy B. Terriberry [Fri, 27 Jul 2012 21:23:46 +0000 (14:23 -0700)]
Update to 16x32 pre-/post- filter.

This converts it to the Type IV dyadic rational filter with no ramp
 constraint that negge's optimization routines found.
See http://wiki.xiph.org/TDLT

5 years agoFixed bias in nextBest SATD, added binary data files, flag for DROP_MULTS
Nathan E. Egge [Fri, 20 Jul 2012 15:43:17 +0000 (11:43 -0400)]
Fixed bias in nextBest SATD, added binary data files, flag for DROP_MULTS

5 years agoAdd orthonormal, reversible integer 16x16 DCT.
Timothy B. Terriberry [Thu, 19 Jul 2012 20:15:14 +0000 (13:15 -0700)]
Add orthonormal, reversible integer 16x16 DCT.

5 years agoAdd a new 8-point DCT factorization.
Timothy B. Terriberry [Mon, 9 Jul 2012 22:05:07 +0000 (15:05 -0700)]
Add a new 8-point DCT factorization.

Like the old one (in dct.c), this one is based on Loeffler et al.'s
 factorization, but attempts to retain uniform scaling in the
 outputs (at the cost of 3 multiplies, for a total of 11).
The advantages over the old new one (in newdct.c):
1) It uses more rotations, whose multiply can be implemented with a
 single NEON instruction, instead of simple scalings by factors > 1
 (which require emulating a divide in the iDCT, which takes a
 multiply plus several additional instructions).
2) It also eliminates the clean-up stage, which gets rid of a number
 of shifts and should reduce the total critical path length.
This also eliminates a bunch of opportunities to factor out factors
 of 2, but we no longer have to introduce a bunch of them to keep
 the scale factors at the start of the odd stages > 1.
Overall, we have 3 free factors of 2 (but we need 8 to reduce the
 output scaling by 1 bit for all bins).
3) It appears to have somewhat better MSE with the true DCT, and
 when using unbiased right shifts, it appears to have much better
 bias as well (with raw, biased right shifts, it is slightly worse).
4) It reduces average intra SATD on subset1 (first round, no
 k-means, no RDO) from 860.1 to 819.8.

This commit also switches from using round-to-even divisions by two
 for the right shifts to using simple integer division (truncating
 towards 0).
This appears to give slightly better bias behavior.

5 years agoSwitch to Cholesky decomposition for least squares.
Timothy B. Terriberry [Mon, 9 Jul 2012 04:56:07 +0000 (21:56 -0700)]
Switch to Cholesky decomposition for least squares.

It's much, much faster than the SVD for larger block sizes.
Also fix the Makefile to actually include the dependency files.

5 years agoFix tools build broken by the increase in intra_search dist size in 5c03fb1c.
Gregory Maxwell [Mon, 9 Jul 2012 03:38:16 +0000 (23:38 -0400)]
Fix tools build broken by the increase in intra_search dist size in 5c03fb1c.

5 years agoFix an incorrect entropy coder assertion, expand test coverage.
Gregory Maxwell [Sun, 8 Jul 2012 02:25:22 +0000 (22:25 -0400)]
Fix an incorrect entropy coder assertion, expand test coverage.

This should now have 100% branch coverage in the decoder,
 and everything except malloc/realloc failure in the encoder.

5 years agoUpdate encode.c to code all intra parameters.
Gregory Maxwell [Sat, 7 Jul 2012 22:39:42 +0000 (18:39 -0400)]
Update encode.c to code all intra parameters.

5 years agoPaper over some minor issues in init_intra_xform.c
Timothy B. Terriberry [Fri, 6 Jul 2012 19:00:42 +0000 (12:00 -0700)]
Paper over some minor issues in init_intra_xform.c

5 years agoAdding k-means code with sparse coefficients
Nathan E. Egge [Fri, 6 Jul 2012 18:49:25 +0000 (14:49 -0400)]
Adding k-means code with sparse coefficients

5 years agoSome comments for PVQ quantization code
Jean-Marc Valin [Fri, 6 Jul 2012 10:45:13 +0000 (06:45 -0400)]
Some comments for PVQ quantization code

5 years agoDisables the K=1 PVQ case that we're not using for now
Jean-Marc Valin [Fri, 6 Jul 2012 04:52:47 +0000 (00:52 -0400)]
Disables the K=1 PVQ case that we're not using for now

This should help with coverage

5 years agoMove gen_cdf to tools.
Timothy B. Terriberry [Fri, 6 Jul 2012 02:24:42 +0000 (19:24 -0700)]
Move gen_cdf to tools.

Also adds Makefile support for it.

5 years agoinit_intra_xform can now properly output the probability model
Jean-Marc Valin [Fri, 6 Jul 2012 01:28:45 +0000 (21:28 -0400)]
init_intra_xform can now properly output the probability model

5 years agoAdds intra prediction "RDO" search functions
Jean-Marc Valin [Fri, 6 Jul 2012 00:49:51 +0000 (20:49 -0400)]
Adds intra prediction "RDO" search functions

5 years agoIncluding one set of satd weights per plane
Jean-Marc Valin [Tue, 3 Jul 2012 20:47:04 +0000 (16:47 -0400)]
Including one set of satd weights per plane

5 years agoNow using scaled covariance and SSE
Nathan E. Egge [Tue, 3 Jul 2012 04:44:38 +0000 (00:44 -0400)]
Now using scaled covariance and SSE

5 years agoMisc Java intra predictor fixes and build files
Nathan E. Egge [Mon, 2 Jul 2012 06:55:29 +0000 (02:55 -0400)]
Misc Java intra predictor fixes and build files

5 years agoAdding Java intra predictor code
nathan [Mon, 2 Jul 2012 02:54:52 +0000 (22:54 -0400)]
Adding Java intra predictor code

5 years agoThink I finally found a way of combining intra probs
Jean-Marc Valin [Sun, 1 Jul 2012 06:14:02 +0000 (02:14 -0400)]
Think I finally found a way of combining intra probs

5 years agoIntra mode training improvements
Jean-Marc Valin [Sat, 30 Jun 2012 07:35:44 +0000 (03:35 -0400)]
Intra mode training improvements

- Fixes adaptation of p0, which was completely broken
- Less aggressive satd weighting

5 years agoFix DCT-SATD mode in init_intra_maps.c.
Timothy B. Terriberry [Sat, 30 Jun 2012 00:04:50 +0000 (17:04 -0700)]
Fix DCT-SATD mode in init_intra_maps.c.

It helps if we actually compare something to the reference.

5 years agoWrapping at 80 characters in entdec.h/entenc.h.
Gregory Maxwell [Fri, 29 Jun 2012 22:19:57 +0000 (18:19 -0400)]
Wrapping at 80 characters in entdec.h/entenc.h.

5 years agoGCC annotations to warn on misuse of the rangecoder api.
Gregory Maxwell [Fri, 29 Jun 2012 21:54:19 +0000 (17:54 -0400)]
GCC annotations to warn on misuse of the rangecoder api.

5 years agoReduces the PVQ encoder rate by encoding symbols only once
Jean-Marc Valin [Fri, 29 Jun 2012 21:38:53 +0000 (17:38 -0400)]
Reduces the PVQ encoder rate by encoding symbols only once

i.e. fixes a bug in 067e6eb5efccdae9b1809f8988192fe107bf5e6a

5 years agoCorrect macro name for DCT in init_intra_maps.
Gregory Maxwell [Fri, 29 Jun 2012 19:42:05 +0000 (15:42 -0400)]
Correct macro name for DCT in init_intra_maps.

5 years agoModify init_intra_maps to use real DCT for SATD.
Timothy B. Terriberry [Fri, 29 Jun 2012 19:16:20 +0000 (12:16 -0700)]
Modify init_intra_maps to use real DCT for SATD.

This mode is still disabled by default.
This is for comparing against init_intra_xform with APPLY_PREFILTER

5 years agoAdds "RDO" to intra mode training
Jean-Marc Valin [Fri, 29 Jun 2012 19:00:30 +0000 (15:00 -0400)]
Adds "RDO" to intra mode training

This is done using an 8-context probability estimator and using
weighting for the satd measurement. Also, the DC mode now has a flat
weight to make it the "catch all" prediction mode.

5 years agoTighten up some of the storage usage bounds.
Gregory Maxwell [Fri, 29 Jun 2012 14:32:23 +0000 (10:32 -0400)]
Tighten up some of the storage usage bounds.

Tim pointed out that I was allocating more memory than strictly
needed in some cases.