Entropy coding Present by 陳群元 constraints Compression efficiency Computational efficiency Error robustness Encoding DCT Reordering Run-level coding Entropy coding Encoding DCT Reordering Run-level coding Entropy coding DCT Reordering The optimum method of reordering the quantised data depends on the distribution of the non-zero coefficients. Evenly distribution Zigzag reordering pattern Interlaced video-vary more in vertical Modified reordering pattern Encoding DCT Reordering Run-level coding Entropy coding Run-level coding Long sequences of identical values (zeros in this case) can be represented as a (run, level) code (run) indicates the number of zeros preceding a non-zero value (level) indicates the sign and magnitude of the non-zero coefficient Run-level coding(ex) Encoding DCT Reordering Run-level coding Entropy coding Huffman Coding ‘True’ Huffman Coding Modified Huffman Coding Table Design Entropy Coding Example Variable Length Encoder Design Variable Length Decoder Design Dealing with Errors Huffman Coding ‘True’ Huffman Coding Modified Huffman Coding Table Design Entropy Coding Example Variable Length Encoder Design Variable Length Decoder Design Dealing with Errors True Huffman Coding Generating the HufSman code tree 1. Order the list of data in increasing order of probability. 2. Combine the two lowest-probability data items into a ‘node’ and assign the joint probability of the data items to this node. 3. Reorder the remaining data items and node(s) in increasing order of probability and repeat step 2. encoding decoding disadvantage the decoder must use the same codeword set as the encoder reduces compression efficiency. calculating the probability table for a large video sequence a significant computational overhead cannot be done until after the video data is encoded Huffman Coding ‘True’ Huffman Coding Modified Huffman Coding Table Design Entropy Coding Example Variable Length Encoder Design Variable Length Decoder Design Dealing with Errors Table design Final pair Table design H.263/MPEG-4 motion vector difference (MVD) The H.263MPEG-4 differentially coded motion vectors (MVD) are each encoded as a pair of VLCs, one for the xcomponent and one for the y-component mvd mvd H.26L universal VLC (UVLC) The emerging H.26L standard takes a step away from individually calculated Huffman tables by using a ‘universal’ set of VLCs for any coded element. Each codeword is generated from the following systematic list: Huffman Coding ‘True’ Huffman Coding Modified Huffman Coding Table Design Entropy Coding Example Variable Length Encoder Design Variable Length Decoder Design Dealing with Errors Entropy Coding Example Huffman Coding ‘True’ Huffman Coding Modified Huffman Coding Table Design Entropy Coding Example Variable Length Encoder Design Variable Length Decoder Design Dealing with Errors Variable Length Encoder Design Huffman Coding ‘True’ Huffman Coding Modified Huffman Coding Table Design Entropy Coding Example Variable Length Encoder Design Variable Length Decoder Design Dealing with Errors Variable Length Decoder Design Huffman Coding ‘True’ Huffman Coding Modified Huffman Coding Table Design Entropy Coding Example Variable Length Encoder Design Variable Length Decoder Design Dealing with Errors Dealing with Errors Arithmetic Coding Ex . encode (0,-1,0,2) 0.394 Ex . decode (0,-1,0,2) Arithmetic coding vs huffman Ideal 0.394 in this case, which can be represented as a fixedpoint number with sufficient accuracy using 9 bits Huffman: 1;0011;1;0000110=>13 bits The end Thank you