Daala: Building A Next-Generation Video Codec
From Unconventional Technology
Jean-Marc Valin, Timothy B. Terriberry, Nathan E. Egge, Thomas Daede,
Yushin Cho, Christopher Montgomery, Michael Bebenita
Mozilla, Mountain View, USA
Xiph.Org Foundation, USA
jmvalin@jmvalin.ca
0.6

0.4

0.2
Amplitude

Abstract—Daala is a new royalty-free video codec that attempts
to compete with state-of-the-art royalty-bearing codecs. To doso, it must achieve good compression while avoiding all of theirpatented techniques. We use technology that is as different as
possible from traditional approaches to achieve this. This paper
describes the technology behind Daala and discusses where it
fits in the newly created AV1 codec from the Alliance for OpenMedia. We show that Daala is approaching the performance levelof more mature, state-of-the art video codecs and can contributeto improving AV1.

0

-0.2

I. I NTRODUCTION
Daala [1] is a video codec designed to explore a set of
atypical techniques, outlined in Section II, to avoid the patent
thickets built around most current codecs. Some of thesetechniques are new to Daala, while others already existed, but
are not used in popular standards. Although Daala is not yet
a competitive codec on its own, some of the techniques it
uses are currently being integrated in the Alliance for OpenMedia (AOM) [2] codec, AV1, which we discuss in Section III.
Section IV presents results obtained with both Daala and AV1.
II. DAALA T ECHNIQUES
Most of the techniques Daala uses have been fundamental
to the design since the initial stages of the project. Someof the techniques described below, like lapped transforms,
Overlapped Block Motion Compensation (OBMC), and nonbinary arithmetic coding, have forced the entire codec to movein a very different direction.
Vector variables are denoted in bold (x) and their individualcomponents are denoted with indices (xi ). Quantized variables
are denoted with a hat (x̂). Unless otherwise noted, kxk
denotes the L2-norm of a vector x.
A. Lapped Transforms
Rather than using a deblocking filter to attenuate blocking
artifacts caused by quantizing DCT coefficients, Daala uses
biorthogonal lapped transforms [3], [4]. The transform applies
a decorrelating pre-filter to the input image before computing
the DCT and applies a deblocking post-filter to the reconstruction after the inverse DCT. Since the pre-filter is the inverseof the post-filter, there is no need for complex adaptation of
the filter strength to avoid blurring details. As shown in Fig. 1,
the post-filter causes the basis functions to decay smoothly attransform block edges, avoiding blocking artifacts.

-0.4

-0.6

0

1

2

3

Sample4567Figure 1: 1D synthesis basis functions for the lapped 4 × 4
DCT.

Transform block sizes in Daala range from 4 × 4 to 64 × 64,
based on recursive quad-tree subdivision. A superblock refers
to the largest area of a frame on which Daala can operate.
Their size is 64 × 64.
Although applying lapping that spans the entire width of thetransform is sometimes desirable (giving an N × N transforma support of 2N × 2N ), it makes block size decision using
rate-distortion optimization (RDO) intractable. Any choice ofblock size affects the coding efficiency of neighboring blocks.
For this reason, Daala uses 4-point lapping for all transform
sizes.
One disadvantage of lapped transforms is that it complicates
intra prediction. Because of the overlap, the pixels adjacent tothe block being predicted are not available for use in intra
prediction. They cannot be reconstructed without quantizedtransform coefficients from the block being predicted. Instead of pixel-domain intra prediction, Daala uses a simple
frequency-domain intra predictor. We predict AC coefficientsalong horizontal and vertical directions by directly copying a
row or column of AC coefficients from the block above andthe block to the left [5]. Some previous attempts at a moregeneral frequency-domain intra predictor [6] were ultimately
abandoned, as they failed to achieve good results with tractablecomplexity on large block sizes and mixed block sizes.

(a) Original DC coefficients be- (b) DC coefficients from 8 × 8
fore Haar DC
blocks are combined(c) DC coefficients from 16 × 16 (d) DC coefficients from 32 × 32
sub-blocks are combined
sub-blocks are combined

Figure 2: Example of applying Haar DC over three levels on a
64 × 64 superblock subdivided into transform blocks of 8 × 8,
16 × 16, and 32 × 32. At each step (a) to (d), the remaining
DC coefficients are shown in red

B. Haar DC
Instead of using intra prediction for DC coefficients in
keyframes, they are further transformed with a 2D Haar
wavelet. Since Daala transform blocks are always split as
quad-trees, the transform is applied bottom-up, recursively,
up to the level of the corresponding superblock, as shown in
Fig. 2. At each level, four DCs are combined into four Haarcoefficients: one horizontal, one vertical, one diagonal, andone new DC corresponding to a larger block size.
The highest level (64 × 64) DC is predicted as a linear
combination of the neighboring superblock DC coefficients:
left, top-left, top, and top-right. The prediction coefficients aretrained on an image database and constrained to sum to unity.
The (non-DC) horizontal and vertical Haar coefficients are
predicted from co-located horizontal and vertical coefficientsat a larger scale. This slightly reduces bitrate in smooth areas.
C. Multi-Symbol Entropy Coder
Most recent video codecs encode information using binaryarithmetic coding, meaning that each symbol can only taketwo values. The Daala range coder supports up to 16 values
per symbol, making it possible to encode fewer symbols [7].
This is equivalent to coding up to four binary values inparallel and reduces serial dependencies, allowing hardware
implementations to use lower clock rates, and thus less power.
The range coder itself is based on a multiply-free approximation presented in [8], called piecewise integer mapping. The
original approximation overestimates probabilities for symbols
at the end of the alphabet, and underestimates probabilities
at the beginning of the alphabet. Daala does this the otherway around, since 0 is frequently the most probable symbol.
Overestimating its probability leads to lower approximation
overhead than underestimating it without reordering the alphabet.
Piecewise integer mapping replaces the multiplication anddivision of a traditional arithmetic coder with a subtraction, aminimum operation, and an addition. This allows it to workwith any input probability distribution, without requiring thatits total be normalized to a power of two. That lets Daalause traditional frequency counts to model probabilities, insteadof having to extend the table-based schemes usually usedby binary coders to larger alphabet sizes. Probabilities cantypically be updated with just one or two SIMD instructions
in software, and are similarly cheap to update in parallel inhardware. The overall cost is a bitrate overhead of around 1%
in practice, which is comparable to CABAC [9].
We are currently exploring approaches for reducing thisoverhead without sacrificing throughput or modeling efficiency
with hardware implementers in the AOM.
D. Overlapped Block Motion Compensation
Because hard block edges are expensive to code with lapped
transforms, we want to avoid creating blocking artifacts in the
motion-compensated prediction. For this we use overlappedblock motion compensation (OBMC) [10]. We use an adaptive
grid of Motion Compensation (MC) blocks ranging from 8×8
up to 64×64, in order to scale to high-resolution content. This
grid is completely independent of the transform blocks, and theblock sizes of one do not impose any constraints on the block
sizes of the other. We also experimented with 4×4 MC blocks,
but they were rarely used in practice, and actually caused asmall quality regression at equal bitrate with the encoder usedat the time.
The use of variable-sized MC blocks requires a blending
scheme that maintains continuity between neighboring regions of different sizes. One approach, used by codecs like
Dirac [11], is to fix the overlap size at the largest overlap
allowed by the smallest motion-compensated block (8 pixels,
in this case). This makes a large block equivalent to a group ofsmaller blocks with the same motion vector. However, this cancreate low-passing artifacts in a predictable grid pattern. Thesecan be visually annoying, and require many bits to correct
because of their locality. Unlike with transform blocks, there
is no pre-filter in the encoder to compensate for the blending
done in the decoder. Zhang et al. showed that splitting large
blocks, but only as far as necessary to prevent their blending
windows from overlapping more than one neighboring block,improved quality [12]. However, they implemented this as apost-process to a non-overlapped block-based motion search,and did not incorporate RDO.
Instead, Daala structures its grid as a 4-8 mesh [13] toensure the sizes of neighboring MC blocks differ by no morethan a factor of two. This makes it easy to design OBMC
blending windows that both span an entire block and ensure
continuity across block size changes. Although R-D optimal
block size decisions with this data structure are still NPhard, there is a fast dynamic programming approximationthat achieves good results in practice [14]. The details of the
4-8 grid structure, the blending windows, and the dynamic
programming algorithm are outlined in [10].

θ = arccos

xT r.
kxk krk

Most video codecs subtract a motion-compensated reference
frame from the input frame to compute a residual, thentransform and code it using scalar quantization. Instead, Daalauses gain-shape vector quantization. This encodes the signal
as a vector by splitting it into a magnitude (gain), anddirection (shape). Most importantly, in order to ensure thegain represents the amount of energy in the original signal,
the motion-compensated reference is never subtracted fromthe input frame. Instead, Daala uses that reference to build
a transformation that makes the input easier to code. This
technique is called Perceptual Vector Quantization (PVQ) [15].
Perceptual Vector Quantization originates from the pyramid
vector quantizer previously used for music in the Opus audio
codec [16]. The pyramid vector quantizer is also a gain-shapequantizer that Opus uses to ensure that the signal energy isalways conserved. Using a gain-shape quantizer in a video
codec is more complicated, since it must also take into accounta predictor. While we could quantize the scalar difference
between the prediction and the input, conserving the energyof that difference is perceptually meaningless.
Rather than attempting to encode the difference, we derive aHouseholder reflection from the predictor that makes the input
easier to encode. Let x be the input and r be the prediction.
We construct a Householder reflection planer+ sem ,
(1)v=
krk
where em is a unit vector along dimension m and s = ±1. The
values of m and s are arbitrary, but to maximize numericalstability, we typically choose m to be the position of the largest
absolute value in r and s to be the sign of that value.
We then apply the reflection to the input vector x to produce
the reflected vector z:
xT v
v.
(2)
vT v
When the input is similar to the prediction itself, the directionof the reflected vector z is close to the axis −em . To takeadvantage of that fact, we express it as
z=x−2

(3)

where g is the magnitude of z (and thus also the magnitudeof x), u is a unit vector with no component along the em(4)

We code the unit vector u using a spherical quantizer
derived from the pyramid vector quantizer [17]:
y
u=
,
(5)
kyk
with
y ∈ ZN : kykL1 = K ∧ ym = 0 ,E. Perceptual Vector Quantizationz = g (−s cos θ + u sin θ) ,direction, and θ is the angle between r and x (a meaningfulparameter that represents the similarity between the prediction
and the input). Since the Householder reflection is orthonormal, it follows that

(6)

where the number of pulses K controls the size of thecodebook.
The encoder quantizes g and θ and encodes them in the
bitstream along with the integer vector y (excluding ym which
is 0). The codebook size K is determined only from g and θ
and does not need to be transmitted. Since the decoder hasaccess to the prediction vector r, it can compute the reflection
vector v without the need to transmit m and s. There are N −2
degrees of freedom to code in y, and two more for g and θ.
Thus we still code parameters with a total of N degrees of
freedom. The main difference from scalar quantization is thattwo of the coded values have a perceptual meaning: g is theamount of contrast and θ is the amount of deviation from theprediction. By coding g as a parameter, it is easier to preserve
the amount of contrast than by coding only DCT coefficients.
In practice, the vectors x and r are transform coefficients
rather than pixel values. This requires an extra forward DCT
in both the encoder and the decoder since the input and theprediction need to be transformed separately. Only the AC
coefficients are coded using PVQ, and for transform blocks
larger than 4 × 4, the AC coefficients are divided into multiple
bands, where each band is coded separately. This allows us tocontrol the contrast separately in each octave and orientation.
PVQ also allows us to take into account masking effects
with no extra signaling. Since the gain is explicitly signaled,
we can make the quantization resolution depend on the gain:no2
E kx − x̂k ∝ g 2α , 0 ≤ α ≤ 1 ,(7)
where α = 0 behaves like a standard linear scalar quantizer
and α = 1 produces a constant relative error like in the Opus
audio codec. Daala uses α = 1/3. To achieve this, we quantize
the companded gain
γ = g 1−α ,(8)giving finer resolution to smaller gains and coarser resolution
to larger gains.
The decoder always decodes the quantized companded gainγ̂ first. From there it can compute the quantization step sizefor θ asβ(9)Qθ = ,γ̂
1where β = 1−α.

We determined the size of the codebook K through curve
fitting [15] to berγ̂ sin θ̂ N + 2
K=
.
(10)
β
2
The formulation in (10) is not robust to packet loss when
the gain is predicted. If there are errors in the prediction,
the decoder may obtain the wrong K and decode the wrong
number of symbols. Fortunately, by making the sin θ̂ ' θ̂approximation and substituting θ̂ = Qθ τ̂ , where τ̂ is thequantization index of the angle, we obtain
r
N +2
.
(11)
K = τ̂
2
F. Chroma from Luma (CfL) Prediction
Although the use of Y0 CB CR reduces the correlation acrossplanes compared to RGB, the chroma planes CB and CR andthe luma plane Y0 are still often locally correlated. Edges inchroma tend to align very well with edges in luma, with only
the amount of contrast (gain) differing. PVQ’s separation of
signals into a gain and a shape makes it especially easy to
predict chroma planes from the luma plane. Daala’s chroma
from luma (CfL) [18] prediction uses the luma transform
coefficients as the prediction vector r directly. The only
complication is that we need to code a sign for the prediction,
since the luma plane and chroma plane coefficients may be
negatively correlated. We also do not predict the gain ofchroma from the gain of luma.
G. Directional Deringing Filter
Like other transform codecs, Daala can cause ringing artifacts around edges. We use a directional deringing filter
to attempt to eliminate the ringing without blurring the image. Unlike HEVC’s Sample-Adaptive Offset (SAO) [19],the Daala deringing filter is not based on classifying pixels
and applying per-class offsets. Instead, it is an outlier-robust
directional filter that smooths the neighborhood of pixels while
preserving edges.
Let x (n) denote a 1-dimensional signal and wk denote filter
tap weights. We define a linear finite impulse response (FIR)
filter with unit DC response as
1 X
y (n) = P
wk x (n + k) ,
(12)
k wk
k

which can alternatively be written asX1
wk [x (n + k) − x (n)] . (13)y (n) = x (n) + P
k wk
k,k6=0The main advantage of expressing a filter in the form of (13)is that the normalization term P 1wk can be approximatedkrelatively coarsely without affecting the unit gain for DC. This
makes it easy to use small integers for the weights wk .
The disadvantage of linear filters for removing ringing
artifacts is that they tend to also cause blurring. To reduce
the amount of blurring, Daala uses a “conditional replacement
filter” to exclude the signal taps x (n + k) that would cause

blurring and replace them with x (n) instead. It determines
this by whether x (n + k) differs from x (n) by more than athreshold T . This makes the FIR filter in (13) into a conditional
replacement filter:
X1
wk R (x (n + k) − x (n) , T ) ,y (n) = x (n) + P
k wk k,k6=0
(14)
where

x , |x| < T
R (x, T ) =.
(15)
0 , otherwise
To further reduce the risk of blurring the decoded image,
we apply the conditional replacement filter along the main
direction of the edges in each 8 × 8 block of the reconstructed
image. We determine the direction from the decoded image(no side information is transmitted) by analyzing each 8 × 8
block as described in [20]. For each 8 × 8 block, the decoder
determines which of eight different directions best represents
the content of the block. The search can be efficiently implemented in SIMD. We apply a 7-tap conditional replacement
filter along the detected direction to each pixel in the 8 × 8
block.
To further reduce ringing in very smooth regions of theimage, we apply a second filter to combine multiple output
values of the first filter. The second filter is applied either
vertically or horizontally – in the direction most orthogonal tothe one used in the first filter. For a 45-degree direction, weapply the second filter horizontally to reduce hardware line
buffer requirements. The combined effect of the two filters is
a separable deringing filter that covers a total of 35 pixel taps.
The deringing filter only requires a minimal amount ofsignaling. We send a global threshold for the entire a frame,and signal one of six adjustment factors (including an off
setting) for each superblock. With entropy coding, the costof the signaling generally averages 2 bits per superblock,or 128 bytes for a 1080p keyframe. For predicted frames,
we don’t apply the deringing filter to 8 × 8 blocks where
no coefficients are coded, and no adjustment factor is coded
for superblocks where no 8 × 8 block is filtered, further
reducing the amount of signaling. Fig. 3 shows the effect ofthe deringing filter at low bitrates.
III. A LLIANCE FOR O PEN M EDIA AV1 CODEC
The recently-formed Alliance for Open Media (AOM) is
currently specifying AV1, a royalty-free video codec. The
initial development is based on technology from three existing
codecs: Google’s VP9 [21] codec, Cisco’s Thor [22] codec,
and the Daala codec presented here. For this reason, some of
the techniques used in Daala are currently being considered
for inclusion in AV1.
The deringing filter described in Section II-G is alreadyfully integrated in AV1 and has been shown to reduce bitrateby around 2% at equal quality. AV1 also includes Thor’s
constrained lowpass filter (CLPF) [23] that attenuates ringing,but with a more limited effect and a lower complexity than
Daala’s deringing filter.

(a) Without deringing filter(b) With deringing filter

Figure 3: Effect of the deringing filter on two images withsharp edges.

complexity version of multiscale SSIM). We compare Daala1
with the AV1 encoder2 , the x264 H.264 encoder3 , and the x265
HEVC encoder4 .
The results in Fig. 4 show that Daala is generally better
than H.264, and slightly worse than HEVC and AV1. Based on
this authors’ informal evaluation, the subjective performanceof Daala is close to what the PSNR-HVS-M results show in
Fig. 4b. Qualitatively, the Daala artifacts tend to differ greatly
from most other video codecs. Daala tends to perform morepoorly on sharp details and edges, while retaining more texture
in low contrast regions. This is in part due to PVQ activity
masking, but remains true even without activity masking.
Considering that most of the technology used in Daala iseither new or unproven in the context of video codecs, weconsider these results to be encouraging. For example, Daala’s
results presented here do not use B-frames, while all of theother codecs do use B-frames or Alt-Refs to significantly
improve coding efficiency. Moreover, these results have beensteadily improving over the past two years, suggesting that
Daala may be a viable approach to royalty-free codecs in thelonger term. Some of the techniques presented in this paper
will make their way into the AV1 codec, while others will
require more time to mature before being used in a videocoding standard.
R EFERENCES

We are also evaluating the multi-symbol entropy coder(Section II-C) for use in AV1. Probability distributions in
AV1 are currently fixed or explicitly signaled. In this case,
we can avoid the piecewise integer mapping overhead by using
probabilities whose denominator is a power of two. We expectthat using adaptive distributions will produce larger gains thanthe overhead introduced by the mapping approximation, butusing this effectively requires revisiting how every symbol iscoded.
PVQ (Section II-E) is in the early stages of experimentation
within AV1 and is by far the most invasive of the Daala techniques under consideration. Integration requires many changes
to the bitstream, as well as the addition of a forward transformon the prediction itself. No results are available yet, but should
PVQ be included in AV1, we would also be able to add CfL(Section II-F).
Lapped transforms (Section II-A) and OBMC (Section II-D)
are not being considered for inclusion in AV1. Both thesetechniques have far-reaching interactions with the other coding
techniques and would essentially require a complete redesignof the codec. Considering that Haar DC (Section II-B) ismostly needed to compensate for the lack of pixel-domain
prediction, it also is not currently being considered for AV1.
IV. R ESULTS AND D ISCUSSION
We have tested Daala on the ntt-short-1 test set
using the Are We Compressed Yet? [24] testing infrastructure.
We use four different objective metrics for the comparison:
PSNR, PSHR-HVS-M [25], SSIM, and FastSSIM [26] (a low-

[1] “Daala website,” https://xiph.org/daala/.
[2] “Alliance for Open Media website,” http://aomedia.org/.
[3] H. S. Malvar and D. H. Staelin, “The LOT: Transform coding without
blocking effects.” IEEE Trans. Acoustics, Speech, and Signal Processing,vol. 37, no. 4, pp. 553–559, 1989.
[4] T. Tran, J. Liang, and C. Tu, “Lapped transform via time-domain preand post-filtering,” Signal Processing, IEEE Transactions on, vol. 51,
no. 6, pp. 1557–1571, June 2003.
[5] N. E. Egge, J.-M. Valin, T. B. Terriberry, T. Daede, and C. Montgomery,“Using Daala intra frames for still picture coding,” in Proceedings ofPicture Coding Symposium, 2015.
[6] C. Montgomery, “Introducing daala part 2: Frequency domain intra prediction,” https://people.xiph.org/~xiphmont/demo/daala/demo2.
shtml, 2013.
[7] T. B. Terriberry, “Coding tools for a next generation video codec,” https://tools.ietf.org/html/draft-terriberry-codingtools-02, 2015.
[8] L. Stuiver and A. Moffat, “Piecewise integer mapping for arithmeticcoding,” in Data Compression Conference, 1998. DCC’98. Proceedings.
IEEE, 1998, pp. 3–12.
[9] D. Marpe, H. Schwarz, and T. Wiegand, “Context-based adaptive binaryarithmetic coding in the H.264/AVC video compression standard,” IEEE
Transactions on Circuits and Systems for Video Technology, vol. 13,
no. 7, pp. 620–636, Jul. 2003.
[10] T. B. Terriberry, “Adaptive motion compensation without blocking
artifacts,” in Proceedings of Visual Information Processing and Communication VI, A. Said, O. G. Guleryuz, and R. L. Stevenson, Eds., vol.
9410, San Francisco, CA, Mar. 2015.
1 Git version d55fff01 from April 25th, 2016 with command-line options:-k 1000 -v
2 Git version 337b23a5 from April 7th, 2016 with deringing enabled
and command-line options: –ivf –frame-parallel=0 –tile-columns=0 –autoalt-ref=2 –cpu-used=0 –passes=2 –threads=1 –kf-min-dist=1000 –kf-maxdist=1000 –lag-in-frames=25 –end-usage=q –cq-level=
3 Command-line options: –preset placebo –min-keyint 1000 –keyint 1000
–no-scenecut –crf=
4 Version 1.6 with command-line options: –preset slow –frame-threads 1–min-keyint 1000 –keyint 1000 –no-scenecut –crf=

42

40

40
PSNR-HVS-M (dB)

PSNR (dB)

38

36

38

36

34
34

Daala

Daala
32

AOM AV1

AOM AV1

H.264 (x264)

H.264 (x264)

HEVC (x265)
32

0

0.05

0.1
Bitrate (bit/pixel)

0.15

HEVC (x265)
30

0.2

0

0.05

(a) PSNR

0.1
Bitrate (bit/pixel)

0.15

0.2

(b) PSNR-HVS-M

16
16
15

FAST-SSIM (dB)

SSIM (dB)

14

13

14

12

12

Daala

11

Daala

AOM AV1

AOM AV1

10

H.264 (x264)

H.264 (x264)

HEVC (x265)
10

0

0.05

0.1
Bitrate (bit/pixel)

0.15

0.2

(c) SSIMHEVC (x265)
0

0.05

0.1
Bitrate (bit/pixel)

0.15

0.2

(d) FAST-SSIM

Figure 4: Comparison between Daala, HEVC and AV1 based on objective metrics.

[11] “Dirac specification,” https://web.archive.org/web/20081010112442/
http://diracvideo.org/download/specification/dirac-spec-latest.pdf, 2008.
[12] J. Zhang, M. O. Ahmad, and M. N. S. Swamy, “New windowing techniques for variable-size block motion compensation,” IEE Proceedings—
Vision, Image, and Signal Processing, vol. 145, no. 6, pp. 399–407, Dec.
1998.
[13] M. Duchaineau, M. Wolinsky, D. E. Sigeti, M. C. Miller, C. Aldrich,and M. B. Mineev-Weinstein, “ROAMing terrain: Real-time optimally
adapting meshes,” in Proceedings of the 8th IEEE Conference on
Visualization (VIS’97), 1997, pp. 81–88.
[14] L. Balmelli, “Rate-distortion optimal mesh simplification for communications,” Ph.D. dissertation, École Polytechnique Fédérale de Lausanne,
Switzerland, 2001.
[15] J.-M. Valin and T. B. Terriberry, “Perceptual vector quantization forvideo coding,” in Proceedings of SPIE Visual Information Processing and Communication, vol. 9410, 2015, pp. 941 009–941 009–11,
arXiv:1602.05209 [cs.MM] http://arxiv.org/abs/1602.05209.
[16] J.-M. Valin, G. Maxwell, T. B. Terriberry, and K. Vos, “High-quality,
low-delay music coding in the opus codec,” in Proceedings of the 135th
AES Convention, 2013, arXiv:1602.04845 [cs.MM] http://arxiv.
org/abs/1602.04845.
[17] T. R. Fischer, “A pyramid vector quantizer,” IEEE Trans. on Information
Theory, vol. 32, pp. 568–583, July 1986.
[18] N. E. Egge. and J.-M. Valin, “Predicting chroma from luma withfrequency domain intra prediction,” in Proceedings of SPIE Visual

Information Processing and Communication, vol. 9410, 2015, pp.
941 008–941 008–10, arXiv:1603.03482 [cs.MM] http://arxiv.
org/abs/1603.03482.
[19] C. M. Fu, E. Alshina, A. Alshin, Y. W. Huang, C. Y. Chen, C. Y. Tsai,
C. W. Hsu, S. M. Lei, J. H. Park, and W. J. Han, “Sample adaptive
offset in the hevc standard,” IEEE Transactions on Circuits and Systems
for Video Technology, vol. 22, no. 12, pp. 1755–1764, Dec 2012.
[20] J.-M.
Valin,“The
Daala
directionalderingingfilter,”arXiv:1602.05975 [cs.MM]
http://arxiv.org/abs/1602.05975,
2016.
[21] A. Grange, P. de Rivaz, and J. Hunt, “VP9 bitstream & decoding process
specification,” http://www.webmproject.org/vp9/, 2016.
[22] A. Fuldseth, G. Bjøntegaard, S. Midtskogen, T. Davies, andM. Zanaty, “Thor video codec,” https://tools.ietf.org/html/
draft-fuldseth-netvc-thor-02, 2016.
[23] S. Midtskogen, A. Fuldseth, and M. Zanaty, “Constrained low passfilter,” https://tools.ietf.org/html/draft-midtskogen-netvc-clpf-01, 2016.
[24] “Are we compressed yet?” https://arewecompressedyet.com/.
[25] N. Ponomarenko, F. Silvestri, K.Egiazarian, M. Carli, and V. Lukin,“On between-coefficient contrast masking of dct basis functions,” inProceedings of Third International Workshop on Video Processing and
Quality Metrics for Consumer Electronics VPQM-07, 2007.
[26] M.-J. Chen and A. C. Bovik, “Fast structural similarity index algorithm,”
Journal of Real-Time Image Processing, vol. 6, no. 4, pp. 281–287, Dec.
2011.