Presentation on theme: "Multimedia Data Compression Mee Young Sung University of Incheon Department of Computer Science & Engineering"— Presentation transcript:
Multimedia Data Compression Mee Young Sung University of Incheon Department of Computer Science & Engineering email@example.com
1.Lossless Compression Algorithms 1.Introduction 2.Basics of Information Theory 3.Run-Length Coding 4.Variable-Length Coding(VLC) 1.Shannon-Fano Algorithm 2.Huffman Coding 3.Adaptive Huffman Coding 5.Dictionary-Based Coding 6.Arithmetic Coding 7.Lossless Image Compression 8.Differential Coding of Images 1.Differential Coding of Images 2.Lossless JPEG
2.Lossy Compression Algorithms 1.Introduction 2.Distortion Measures 3.The Rate-Distortion Theory 4.Quantization 1.Uniform Scalar Qunantization 2.Nonuniform Saclar Qunantization 3.Vector Qunantization 5.Quantization 1.Discrete Cosine Transform(DCT) 2.Karhunen-Loève Transform* 6.Wavelet-Based Coding 1.Introduction 2.Continuous Wavelet Transform* 3.Discrete Wavelet Transform* 7.Wavelet Packets 8.Embedded Zerotree of Wavelet Coefficients 1.The Zerotree Data Structure 2.Successive Approximation Quantization 3.EZW Example 9.Set Partitioning in Hierarchical Trees (SPIHT)
3.Image Compression Standard 1.The JPEG Standard 1.Main Steps in JPEG Image Compression 2.JPEG Modes 3.A Glance at the JPEG Bitstream 2.The JPEG2000 Standard 1.Main Steps of JPEG2000 Image Compression* 2.Adapting EBCOT to JPEG2000 3.Region-of-Interest Coding 4.Comparison of JPEG and JPEG2000 Performance 3.The JPEG-LS Standard 1.Prediction 2.Context Determination 3.Residual Coding 4.Near-Lossless Mode 4.Bilevel Image Compression Standard 1.The JBIG Standard 2.The JBIG2 Standard
4.Basic Video Compression Techniques 1.Introduction to Video Compression 2.Video Compression Based on Motion Compensation 3.Search for Motion Vectors 1.Sequential Search 2.2D Logarithmic Search 3.Hierarchical Search 4.H.261 1.Intra-Frame (I-Frame) Coding 2.Inter-Frame (P-Frame) Predictive Coding 3.Quantization in H.261 4.H.261 Encoder and Decoder 5.A Glance at the H.261 Video Bitstream Syntax 5.H.263 1.Motion Compensation in H.263 2.Optional H.263 Coding Modes 3.H.263+ and H.263++
5.MPEG Video Coding I — MPEG-1 and 2 1.Overview 2.MPEG-1 1.Motion Compensation in MPEG-1 2.Other Major Differences form H.261 3.MPEG-1 Video Bitstream 3.MEPG-2 1.Supporting Interlaced Video 2.MPEG-2 Scalabilities 3.Other Major Differences form MPEG-1
6.MPEG Video Coding II – MPEG-4, 7, and Beyond 1.Overview of MPEG-4 2.Object-Based Visual Coding in MPEG-4 1.VOP-Based Coding vs. Frame-Based Coding 2.Motion Compensation 3.Texture Coding 4.Shape Coding 5.Static Texture Coding 6.Sprite Coding 7.Global Motion Compensation 3.Synthetic Object Coding in MPEG-4 1.2D Mesh Object Coding 2.3D Model-based Coding 4.MPEG-4 Object Types, Profiles and Levels 5.MPEG-4 Part10/H.264 1.Core Features 2.Baseline Profile Features 3.Main Profile Features 4.Extended Profile Features 6.MPEG-7 1.Descriptor (D) 2.Description Scheme (DS) 3.Description Definition Language (DDL) 7.MPEG-21
Huffman Coding Encoding for Huffman Algorithm: A bottom-up approach 1. Initialization: Put all nodes in an OPEN list, keep it sorted at all times (e.g., ABCDE). 2. Repeat until the OPEN list has only one node left: (a) From OPEN pick two nodes having the lowest frequencies/probabilities, create a parent node of them. (b) Assign the sum of the children's frequencies/probabilities to the parent node and insert it into OPEN. (c) Assign code 0, 1 to the two branches of the tree, and delete the children from OPEN. Symbo l Countlog 2 (1/p i )CodeSubtotal (# of bits) A151.38015 B72.4810021 C62.7010118 D62.7011018 E52.9611115
Huffman Coding 산술 부호화 방법과 함께 통계적인 기법을 사용하여 부호화 함으로써, 발생 데이터 량 을 최소화하고자 하는 기법 서로 다른 문자들을 부호화할 때 고정된 비트 수를 사용하지 않고, 통계적인 분포를 이 용하여 자주 나타나는 값에는 보다 적은 비트를, 드물게 나타나는 값에는 보다 많은 비 트를 사용하여 부호화 함으로써 압축하는 기법 부호화할 문자들과 각각의 발생확률이 주어지면 최소 비트 수를 사용하여 최적의 코드 를 생성할 수 있음 이진 트리 형태의 허프만 코딩
JPEG Joint Photographic Expert Group Motivation –The compression ratio of lossless methods (e.g., Huffman, Arithmetic, LZW) is not high enough for image and video compression, especially when the distribution of pixel values is relatively flat. –JPEG uses transform coding, it is largely based on the following observations: Observation 1: A large majority of useful image contents change relatively slowly across images, i.e., it is unusual for intensity values to alter up and down several times in a small area, for example, within an 8 x 8 image block. Translate this into the spatial frequency domain, it says that, generally, lower spatial frequency components contain more information than the high frequency components which often correspond to less useful details and noises. Observation 2: Pshchophysical experiments suggest that humans are more receptive to loss of higher spatial frequency components than loss of lower frequency components.
JPEG (DCT) Computing the DCT Factoring reduces problem to a series of 1D DCTs:
JPEG (Quantization) F'[u, v] = round ( F[u, v] / q[u, v] ). Why? -- To reduce number of bits per sample –Example: 101101 = 45 (6 bits). q[u, v] = 4 --> Truncate to 4 bits: 1011 = 11. Quantization error is the main source of the Lossy Compression. Uniform Quantization –Each F[u,v] is divided by the same constant N. Non-uniform Quantization -- Quantization Tables –Eye is most sensitive to low frequencies (upper left corner), less sensitive to high frequencies (lower right corner) The numbers in the above quantization tables can be scaled up (or down) to adjust the so called quality factor.quality factor Custom quantization tables can also be put in image/scan header.
JPEG (Quantization) The Luminance Quantization Table q(u, v) The Chrominance Quantization Table q(u, v) Eye Sensitivity
JPEG (Zig-Zag Scan) Zig-zag Scan –Why? -- to group low frequency coefficients in top of vector. –Maps 8 x 8 to a 1 x 64 vector
JPEG (DPCM on DC component ) DPCM (Differential Pulse Code Modulation) DC component is large and varied, but often close to previous value. Encode the difference from previous 8 x 8 blocks – DPCM DPCM 부호화 / 복호화 예 – 인접한 신호간에는 일반적으로 상관관계가 매우 크므로, 이들 신호 각각을 부호화하는 것 대신에 이들의 차이값을 부호화하는 방식 (a) 부호화 이전의 데이터 14192536435566524834 (b) DPCM 부호화 데이터 +14+5+6+11+7+12+11-14+4-14 (c) 복원된 데이터 14192536435566524834
JPEG (RLE on AC components ) RLE (Run Length Encode) 1 x 64 vector has lots of zeros in it Keeps skip and value, where skip is the number of zeros and value is the next non-zero component. Send (0,0) as end-of-block sentinel value Zig-Zag scanned ACs
JPEG (Entropy Coding ) Categorize DC values into SIZE (number of bits needed to represent) and actual bits. Example: if DC value is 4, 3 bits are needed. Send off SIZE as Huffman symbol, followed by actual 3 bits. For AC components two symbols are used: Symbol_1: (skip, SIZE), Symbol_2: actual bits. Symbol_1 (skip, SIZE) is encoded using the Huffman coding, Symbol_2 is not encoded. Huffman Tables can be custom (sent in header) or default. SizeAmplitude 0 1 -1,1 2 -3,-2,2,3 3 -7,-6,-5,-4,4,5,6,7 DC (n-1)DC (n)
H. 261 Developed by CCITT (Consultative Committee for International Telephone and Telegraph) in 1988-1990 Designed for videoconferencing, video-telephone applications over ISDN telephone lines. Bit-rate is p x 64 Kb/sec, where p ranges from 1 to 30. Frame types are CCIR 601 CIF (352 x 288) and QCIF (176 x 144) images with 4:2:0 subsampling. Two frame types: Intra-frames (I-frames) and Inter-frames (P-frames): I-frame provides an accessing point, it uses basically JPEG. P-frames use "pseudo-differences" from previous frame ("predicted"), so frames depend on each other.
H.261(Intra-frame Coding) Macroblocks are 16 x 16 pixel areas on Y plane of original image. A macroblock usually consists of 4 Y blocks, 1 Cr block, and 1 Cb block. Quantization is by constant value for all DCT coefficients (i.e., no quantization table as in JPEG).
H.261(Inter-frame (P-frame) Coding ) Previous image is called reference image, the image to encode is called target image. Points to emphasize: The difference image (not the target image itself) is encoded. Need to use the decoded image as reference image, not the original. We're using "Mean Absolute Error" (MAE) to decide best block. Can also use "Mean Squared Error" (MSE) = sum(E*E)/N
H.263 H. 263 is a new improved standard for low bit-rate video, adopted in March 1996. As H. 261, it uses the transform coding for intra-frames and predictive coding for inter-frames. Advanced Options: –Half-pixel precision in motion compensation –Unrestricted motion vectors –Syntax-based arithmetic coding –Advanced prediction and PB-frames In addition to CIF and QCIF, H. 263 could also support SQCIF, 4CIF, and 16CIF. The following is a summary of video formats supported by H. 261 and H. 263:
MPEG What is MPEG ?MPEG –"Moving Picture Coding Experts Group", established in 1988 to create standard for delivery of video and audio. –MPEG-1 Target: VHS quality on a CD-ROM or Video CD (VCD) (352 x 240 + CD audio @ 1.5 Mbits/sec) –Standard had three parts: Video, Audio, and System (control interleaving of streams) MPEG Video –Problem: some macroblocks need information not in the previous reference frame. Example: The darkened macroblock in Current frame does not have a good match from the Previous frame, but it will find a good match in the Next frame.
MPEG MPEG solution: add third frame type: bidirectional frame, or B-frame In B-frames, search for matching macroblocks in both past and future frames. Typical pattern is IBBPBBPBB IBBPBBPBB IBBPBBPBB Actual pattern is up to encoder, and need not be regular
참고 사이트 http://www.cs.sfu.ca/mmbook/demos.htm http://www.cs.sfu.ca/CC/365/li/material/mis c/demos.htmlhttp://www.cs.sfu.ca/CC/365/li/material/mis c/demos.html