<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Improving the Efficiency of Entropy Coding Method in Video Encoder H.265/HEVC</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Andrey Tropchenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Doan Tien Ban</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nguyen Van Truong</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>ITMO University</institution>
          ,
          <addr-line>Saint Petersburg, 197101, Russian Federation</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>The High Efficiency Video Coding (H.265/HEVC) has better coding efficiency, but the encoding performance must be improved to meet the growing multimedia applications. This paper deals with the entropy encoding methods and algorithms in video encoder H.265/HEVC. Based on an analysis of their advantages and disadvantages, a method called the entropy coding algorithm using the enumerative coding of the hierarchical approach is proposed. The proposed algorithm consists of the Context-Adaptive Binary Arithmetic Coding (CABAC) algorithm and the enumerative coding algorithm with a hierarchical approach. The proposed algorithm is tested in the Visual C++ development environment on various test video sequences. The results of the experiments shows a greater efficiency of coding of multimedia data. Proposed method reduces up to 38.13% of the storage volume compared to the traditional CABAC method in HEVC. However, this method requires a longer coding time. The proposed method can be recommended for use in telecommunication systems for storage, transmission and processing of multimedia data, where a high compression ratio firstly required.</p>
      </abstract>
      <kwd-group>
        <kwd>H</kwd>
        <kwd>265/HEVC</kwd>
        <kwd>entropy coding</kwd>
        <kwd>method CABAC</kwd>
        <kwd>enumerative coding algorithm</kwd>
        <kwd>video compression</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Entropy coding is performed at the last stage of video encoding (and first
stage of video decoding), after the video signal has been reduced to a series of
syntax elements. The entropy encoder converts binary sequences representing
elements of a video sequence into a compressed bit stream that can be stored
in a file or transmitted over communication networks [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This encoder plays an
important role in the whole coding process. The main methods of entropy coding
are Huffman codes [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and arithmetic coding [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. On their basis, modern methods
and algorithms for coding binary nonstationary sequences such as the CAVLC
(Context-Adaptive Variable-Length Coding) [
        <xref ref-type="bibr" rid="ref4 ref5">4,5</xref>
        ] and CABAC [
        <xref ref-type="bibr" rid="ref6 ref7">6,7</xref>
        ] methods,
which are widely used in the H. 264 [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and H.265 [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        An adaptive binary arithmetic coder with low memory consumption is
proposed in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], which provides comparable computational complexity by canceling
the search tables requirement, but the decrease in the required memory is small
(up to 2.3% according to the H.264 standard and up to 3.6% H.265). In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], a
new hardware-effective adaptive coder of the binary range and its architecture
with very large-scale integration are proposed. The experimental results of the
proposed encoder show that it significantly wins over existing encoders (up to
8% over the MQ encoder, and up to 24.2% by the M-encoder). And in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ],
authors propose a context-adaptive binary arithmetic coding using code words
with fixed length, which provides simplified computational complexity in
comparison with the MEGC-encoder JPEG2000 and the HEVC M-encoder (in the
order of about 2%).
      </p>
      <p>HEVC uses CABAC as its single entropy coding method. HEVC CABAC
was redesigned to offer higher throughput than its AVC predecessor, while still
maintaining a higher compression ratio. This paper will focus on HEVC CABAC,
and his aim is to propose a new method with higher efficiency compared to the
traditional one.
2</p>
    </sec>
    <sec id="sec-2">
      <title>The CABAC method</title>
      <p>
        The CABAC method is based on arithmetic coding with several changes to
adapt it to the needs of video encoding standards [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and has the following
features:
– It encodes binary symbols, which reduces the complexity of the method
and allows the use of probabilistic models for the most commonly used bit
sequences.
– Probabilistic models are chosen adaptively based on the local context, since
the coding modes are locally well correlated.
– It uses undivided division of the range using quantized probability ranges
and probabilistic states.
      </p>
      <p>At the first stage, this non-binary syntactic element is uniquely mapped into a
binary sequence. When a binary element is given, this step is skipped. Depending
on the encoding mode, one or two consecutive steps may follow for each element.</p>
      <p>In the basic coding mode, the binary element enters the context modeling
stage, where the probabilistic model is chosen so that the corresponding choice
depends on the coded elements. Then, after assigning the model value, the binary
element with its model goes to the basic coding mode, where the final stage of
arithmetic coding with the subsequent modification of the model (for example,
if the value was "1", the unit counter increases).</p>
      <p>Alternatively, encoding with a probability of 0.5 is selected for the selected
binary elements using a simplified coding mechanism (fig. 1). In H.264, an
arithmetic coder is a set of procedures of low complexity in which there are no
multiplication operations. Procedures include shifts and referrals to tables. Using
CABAC allows you to reduce the bitrate by an average of 10-15%. The greatest
gain is usually obtained when processing interlaced TV signals.
3</p>
    </sec>
    <sec id="sec-3">
      <title>The proposed method</title>
      <p>After analyzing the advantages and disadvantages of existing methods, a new
one was proposed. The general scheme of the proposed algorithm is shown in
fig. 2.</p>
      <p>The input data of the entropy encoder is the parameters of the temporal
model (motion vectors) and the spatial model (conversion coefficients), as well
as markers (codes denoting synchronization points in the video sequence) and
headers (macroblock, image, sequence and other object headers). After the
execution of the CABAC algorithm, the input data is converted into binary
sequences that are input to the enumerative coding algorithm with a hierarchical
approach. After it, the final output of the entropy encoder is obtained, or, in
other words, the compressed data of the video codec.</p>
      <p>
        The enumerative coding algorithm with using hierarchies [
        <xref ref-type="bibr" rid="ref14 ref15">14,15</xref>
        ] includes the
Lynch-Davisson method [
        <xref ref-type="bibr" rid="ref16 ref17">16,17</xref>
        ] and the enumerative coding method of bounded
integers.
      </p>
      <p>Let f0; 1gn - the vector n of binary numbers and x = (x1; x2; : : : ; xn) - the
elements of this vector, S - the set of vectors n of binary numbers. Define ns
the number of elements in and denote ns(x1; x2; : : : ; xn) the number of elements
in S, the first k elements were defined. We suggest the vector w has elements 1
or Pn</p>
      <p>j=1 xj = w.</p>
      <p>Coding by enumerative coding method using hierarchical approach includes
the following steps:
1. Construct a sum tree (fig. 3).
2. Encode wpmax;1, using [log2 (N + 1)] bits.
3. Produce cycle for p from pmax 1 down to 1 with a step 1:
– Produce cycle for i from 1 up to [ QpN ],</p>
      <p>j=1 nj
– Encode vector {wp;(i 1)np+1; : : : ; wp;inp } by enumerative encoding method
of bounded integers.
4. Produce cycle for i from 1 up to [ nN1 ],
– Encode {wp;(i 1)np+1; : : : ; wp;inp } by Lynch-Davison method to obtain
an output sequence</p>
      <p>The decoding process by enumerative coding method using hierarchical
approach is performed in the same order as the encoding process.
3.1</p>
      <p>The Lynch-Davisson method</p>
      <p>The coding process consists in calculating the lexicographic index (the usual
dictionary ordering in interpreting 0 &lt; 1) of the vector x 2 S f0; 1; 2; : : : ; M gn
is determined by the following formula:</p>
      <p>n xj 1
is(x) = X X xj ns(x1; x2; : : : ; xn)</p>
      <p>The approach proposed above was implemented in the C++ development
environment and tested with video sequences of different information character
and different dimensions.</p>
      <p>In the experiment we will compare the proposed algorithm with the algorithm
CABAC, which are used in HM 16.0 (H.265/HEVC Test Model) with
configuration “intra main profile” by the following criteria: the quality of the encoding
(by the volume of the output stream) and the encoding time (here, QP is the
quantization parameter). The experiment is carried on Window 10 OS platform
with Intel(R) Core(TM) i5-4210U CPU @1.70GHz 2.40 GHz and 6GB RAM.</p>
      <p>The quality of the encoding is estimated by comparing the volume of the
output stream (shown in Table 1). The experimental results showed that the
proposed algorithm reduces the output file up to 38.13%.</p>
      <p>The coding time is estimated by comparing the average time required to
encode each video stream shown in Table 2. It can be seen that the proposed
algorithm increases the coding time by an average of 15.4% compared to the
CABAC H.265 / HEVC method.</p>
      <p>Thus, it can be argued that the proposed method provides a greater
compression ratio (up to 38.13%), while it requires more time to work compared to
other algorithms.</p>
      <p>In this paper, we propose to apply the entropy encoding algorithm to
improve the efficiency of multimedia data compression. The experimental results
show that proposed method gives a good compression ratio (the output file size
is reduced up to 38.13%), but the encoding procedure time is increased
(approximately 15.4%) compared to the traditional CABAC method in the HEVC
standard.</p>
      <p>Fig. 4. Decoding process by numbering encoding of bounded integers</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Zhang, H. et al.
          <article-title>Evaluation of beyond-HEVC entropy coding methods for DCT transform coefficients // 2016 Visual Communications and Image Processing (VCIP)</article-title>
          . IEEE,
          <year>2016</year>
          . P. 1-
          <fpage>4</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Huffman</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>A˙ . A method for the construction of minimum-redundancy codes //</article-title>
          <source>Proc. IRE</source>
          .
          <year>1952</year>
          . Vol.
          <volume>40</volume>
          , No. 9. P.
          <volume>1098</volume>
          -
          <fpage>1101</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Rissanen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Langdon</surname>
          </string-name>
          , G.G˙ .
          <source>Arithmetic Coding // IBM Journal of Research and Development</source>
          .
          <year>1979</year>
          . Vol.
          <volume>23</volume>
          , No. 2. P.
          <volume>149</volume>
          -
          <fpage>162</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Acharyya</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kothari</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reeve</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>A new CAVLC algorithm for higher bit compression by introducing the concept of Position Coding of the coefficients in</article-title>
          H.264/AVC // 2012 IEEE International Conference on Industrial Technology. IEEE,
          <year>2012</year>
          . P.
          <volume>123</volume>
          -
          <fpage>128</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Nargundmath</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nandibewoor</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>Entropy coding of H.264/AVC using ExpGolomb coding and</article-title>
          CAVLC coding // International Conference on Advanced Nanomaterials &amp;
          <article-title>Emerging Engineering Technologies</article-title>
          . IEEE,
          <year>2013</year>
          . P.
          <volume>607</volume>
          -
          <fpage>612</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Rapaka</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
          </string-name>
          En-Hui.
          <article-title>A High Throughput Multi Symbol CABAC Framework for Hybrid Video Codecs // 2013 Data Compression Conference</article-title>
          . IEEE,
          <year>2013</year>
          . P.
          <volume>515</volume>
          -
          <fpage>515</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Marpe</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwarz</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wiegand</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <article-title>Context-based adaptive binary arithmetic coding in the H</article-title>
          .264/AVC video compression standard // IEEE Trans.
          <source>Circuits Syst. Video Technol</source>
          .
          <year>2003</year>
          . Vol.
          <volume>13</volume>
          , No. 7. P.
          <volume>620</volume>
          -
          <fpage>636</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Wiegand</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <article-title>Overview of the H. 264/AVC video coding standard // IEEE Transactions on Circuits and Systems for Video Technology</article-title>
          .
          <year>2003</year>
          . Vol.
          <volume>13</volume>
          , No. 7. P.
          <volume>560</volume>
          -
          <fpage>576</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Sullivan</surname>
            ,
            <given-names>G.J˙.</given-names>
          </string-name>
          et al.
          <article-title>Overview of the high efficiency video coding (HEVC) standard // IEEE Transactions on Circuits and Systems for Video Technology</article-title>
          .
          <year>2012</year>
          . Vol.
          <volume>22</volume>
          , No. 12. P.
          <volume>1649</volume>
          -
          <fpage>1668</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Belyaev</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Turlikov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Egiazarian</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <article-title>An Efficient Adaptive Binary Arithmetic Coder With Low Memory Requirement /</article-title>
          / IEEE J.
          <source>Sel. Top. Signal Process. Spec. Issue Video Coding HEVC beyond</source>
          ,
          <year>2013</year>
          . IEEE,
          <year>2013</year>
          . Vol.
          <volume>7</volume>
          , No. 6. P.
          <volume>1053</volume>
          -
          <fpage>1061</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Belyaev</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          et al.
          <article-title>An Efficient Adaptive Binary Range Coder and Its VLSI Architecture /</article-title>
          / IEEE Trans.
          <source>Circuits Syst. Video Technol</source>
          .
          <year>2015</year>
          . Vol.
          <volume>25</volume>
          , No. 8. P.
          <volume>1435</volume>
          -
          <fpage>1446</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Aulí-Llinàs</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Context-Adaptive Binary Arithmetic Coding With</surname>
          </string-name>
          Fixed-Length Codewords // IEEE Trans.
          <year>Multimed</year>
          .
          <year>2015</year>
          . Vol.
          <volume>17</volume>
          , No. 8. P.
          <volume>1385</volume>
          -
          <fpage>1390</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Neji</surname>
          </string-name>
          , N. et al.
          <article-title>FPGA implementation of improved binarizer design for contextbased adaptive binary arithmetic coder // 2016 International Image Processing, Applications and Systems (IPAS)</article-title>
          . IEEE,
          <year>2016</year>
          . P. 1-
          <fpage>4</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Nguyen</surname>
          </string-name>
          , V.T˙ .,
          <string-name>
            <surname>Tropchenko</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <article-title>A˙ . Improving the efficiency of data compression using a hierarchically enumerative coding // Izv</article-title>
          . vuzov.
          <source>Priborostroenie</source>
          .
          <year>2016</year>
          . Vol.
          <volume>59</volume>
          , No. 12. P.
          <volume>991</volume>
          -
          <fpage>996</fpage>
          (in Russian).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Nguyen</surname>
          </string-name>
          , V.T˙ .
          <article-title>Analysis and development of entropy coding methods and algorithms</article-title>
          . Saarbrucken - Berlin - Leipzig, Deutchland: LAP LAMBERT Academic Publishing,
          <year>2017</year>
          . 52 p.
          <article-title>(in Russian)</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Davisson</surname>
          </string-name>
          , L.D˙ .
          <source>Comments on “Sequence Time Coding for Data Compression” // Proceedings of the IEEE</source>
          .
          <year>1966</year>
          . Vol.
          <volume>54</volume>
          , No. 12. P.
          <year>2010</year>
          -
          <fpage>2011</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Lynch</surname>
            ,
            <given-names>T.J</given-names>
          </string-name>
          ˙.
          <source>Sequence time coding for data compression // Proc. IEEE</source>
          .
          <year>1966</year>
          . Vol.
          <volume>54</volume>
          , No. 10. P.
          <volume>1490</volume>
          -
          <fpage>1491</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>