Presentation is loading. Please wait.

Presentation is loading. Please wait.

2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Variable Length Coding  Information entropy  Huffman code vs. arithmetic.

Similar presentations


Presentation on theme: "2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Variable Length Coding  Information entropy  Huffman code vs. arithmetic."— Presentation transcript:

1 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Variable Length Coding  Information entropy  Huffman code vs. arithmetic code  Arithmetic coding  Why CABAC?  Rescaling and integer arithmetic coding  Golomb codes  Binary arithmetic coding  CABAC

2 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Information Entropy Claude E. Shannon  Information entropy: Claude E. Shannon 1948, “A Mathematical Theory of Communication”  The information contained in a statement asserting the occurrence of an event depends on the probability p(f), of occurrence of the event f. - lg p(f)  The unit of the above information quantity is referred as a bit, since it is the amount of information carried by one (equally likely) binary digit.  Entropy H is a measure of uncertainty or information content - Very uncertain  high information content

3 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Entropy Rate  Conditional entropy H(F|G) between F and G: uncertainty of F given G  N th order entropy  M th order conditional entropy  Entropy rate (lossless coding bound)

4 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Bound for Lossless Coding  Scalar coding: could differ from the entropy by up to 1 bit/symbol  Vector (block) coding: assign one codeword for each group of N symbols  Conditional coding (predictive coding, context-based coding): The codeword of the current symbol depends on the pattern (context) formed by the previous M symbol

5 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Huffman Coding Huffman coding for pdf: (a 1, a 2, a 3 ) = (0.5, 0.25, 0.25) ––lg0.5 = 1, –lg 0.25 = 2 –a 1 = 0, a 2 = 10, a 3 = 11 If the self information is not integer? –pdf: (a 1, a 2, a 3, a 4 ) = (0.6, 0.2, 0.125, 0.075) ––lg 0.6 = 0.737, –lg 0.2 = 2.32, –lg 0.125 = 3, –lg 0.075 = 3.74 –a 1 = 0, a 2 = 10, a 3 = 110, a 4 = 111 a 1 = 0.5 a 2 = 0.25 a 3 = 0.25 0 1 0 1 a 1 = 0.6 a 2 = 0.2 a 3 = 0.125 a 4 = 0.075 0101 0101 0101 H 1 =1.5617 R 1 =1.6

6 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Huffman vs. Arithmetic Coding  Huffman coding: convert a fixed number of symbols into a variable length codeword  Efficiency  The usage of fixed VLC tables does not allow an adaptation to the actual symbol statistics.  Arithmetic Coding: convert a variable number of symbols into a variable length codeword  Efficiency  Process one symbol at a time  Easy to adapt to changes in source statistics  Integer implementation is available

7 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Arithmetic Coding The bits allocated for each symbol can be non-integer –If pdf(a) = 0.6, then the bits to encode ‘a’ is 0.737 For the optimal pdf, the coding efficiency is always better than or equal to the Huffman coding Huffman coding for a 2 a 1 a 4 a 1 a 1 a 3, total 11 bits: Arithmetic coding for a 2 a 1 a 4 a 1 a 1 a 3, total 11.271 bits: 2 + 1 + 3 + 1 + 1 + 3 2.32 +0.737+ 3.74 +0.737+0.737+ 3 The exact probs are preserved

8 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Arithmetic Coding Basic idea: – Represent a sequence of symbols by an interval with length equal to its probability – The interval is specified by its lower boundary (l), upper boundary (u) and length d (= probability) – The codeword for the sequence is the common bits in binary representations of l and u The interval is calculated sequentially starting from the first symbol – The initial interval is determined by the first symbol – The next interval is a subinterval of the previous one, determined by the next symbol

9 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 An Example Any binary value between l and u can unambiguously specify the input message. ½=(10…)=(01…1…) ¼ =(010…)=(001…1…) d(  ab  )=1/8

10 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Why CABAC?  The first standard that uses arithmetic entropy coder is given by Annex E of H.263  Drawbacks: 1.Annex E is applied to the same syntax elements as the VLC elements of H.263 2.All the probability models are non-adaptive that their underlying probability as assumed to be static. 3.The generic m-ary arithmetic coder used involves a considerable amount of computational complexity.

11 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 CABAC: Technical Overview Context modeling Binarization Probability estimation Coding engine update probability estimation Adaptive binary arithmetic coder Chooses a model conditioned on past observations Maps non-binary symbols to a binary sequence Uses the provided model for the actual encoding and updates the model

12 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 CABAC

13 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Context-based Adaptive Binary Arithmetic Code (CABAC)  Usage of adaptive probability models  Exploiting symbol correlations by using contexts  Non-integer number of bits per symbol by using arithmetic codes  Restriction to binary arithmetic coding Simple and fast adaptation mechanism But: Binarization is needed for non-binary symbols Binarization enables partitioning of state space

14 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Implementation of Arithmetic Coding  Rescaling and Incremental coding  Integer arithmetic coding  Binary arithmetic coding  Hoffman Trees  Exp-Golomb Codes

15 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Issues  Finite precision (underflow & overflow): As n gets larger, these two values, l (n) and u (n) come closer and closer together. This means that in order to represent all the subintervals uniquely we need to increase the precision as the length of the sequence increases.  Incremental transmission: transmit portions of the code as the sequence is being observed.  Integer implementation

16 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Rescaling & Incremental Coding

17 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Incremental Encoding U L L L U U

18 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Question for Decoding  How do we start decoding? decode the first symbol unambiguously  How do we continue decoding? mimic the encoder  How do we stop decoding?

19 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Incremental Decoding Top 18% of [0,0.8) U 0.8 0.82 1.0 = 0.312+(0.6-0.312)  0.8 = 0.312+(0.6-0.312)  0.82

20 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Issues in the Incremental Coding

21 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Solution

22 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Solution (2)

23 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Incremental Encoding

24 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Incremental Decoding

25 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Integer Implementation

26 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Integer Implementation n j : the # of times the symbol j occurs in a sequence of length Total Count. F X (k) can be estimated by Define we have E 3 : if (E 3 holds) Shift l to the left by 1 and shift 0 into LSB Shift u to the left by 1 and shift 0 into LSB Complement (new) MSB of l and u Increment Scale3

27 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Golomb Codes  Golomb-Rice code: a family of codes designed to encode integers with the assumption that the larger an integer, the lower its probability of occurrence.  An example (the simplest, unary code): for integer n, codes as n 1s followed by a 0. This code is the same as the Huffman code for {1, 2, …} with probability model  Golomb code with m: code n > 0 using two numbers q and r:  Q is coded by unary code of q; r is represented by binary code using bits.  the first – m values, uses bits  the rest values: use + 1bits  Golomb code for m = 5: nqrcodenqr 0000005101000 1010016111001 2020107121010 303011081310110 404011191410111 3+3=110

28 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Golomb Codes  Golomb code is optimal for the probability model  exp-Golomb code: variable length codes with regular construction: [m zeros] [1] [info]. code_num: index info: is an m-bit field carrying information  Mapping types: ue, te, se, and me  designed to produce short codewords for frequently-occurring values and longer codewords for less common parameter values.

29 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 exp-Golomb Codes  exp-Golomb code  Decode: 1. Read in m leading zeros followed by 1. 2. Read m -bit info field. 3. ﹝ m zeros ﹞﹝ 1 ﹞﹝ info ﹞ the group size increases exponentially 2 1 -2 2 2 -2 2 3 -2

30 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 exp-Golomb Entropy Coding A parameter k to be encoded is mapped to code_num in one of the following ways:

31 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 exp-Golomb Entropy Coding

32 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 H.264 Coding Parameters

33 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Uniqueness and Efficiency of AC(1) -log 2 p(x)

34 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Uniqueness and Efficiency of AC(2)

35 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Uniqueness and Efficiency of AC(3)

36 2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Uniqueness and Efficiency of AC(4)


Download ppt "2015/7/12VLC 2008 PART 1 Introduction on Video Coding StandardsVLC 2008 PART 1 Variable Length Coding  Information entropy  Huffman code vs. arithmetic."

Similar presentations


Ads by Google