850 likes | 1.09k Views
Chapter 3 Multimedia Systems Technology: Coding and Compression. 멀티미디어 시스템 기술: 부호화와 압축. 3.1 개요. Large volume 해결 대역폭( bandwidth) 높이기 : ~ GB/sec 비트 수 줄이기 : 데이터 압축( data compression) 1948, Claude Shannon: 정보이론( Information Theory) 의 아버지 엔트로피( entrophy): 소스 내용의 정보량을 측정 통신 시스템 모델
E N D
Chapter 3Multimedia Systems Technology:Coding and Compression 멀티미디어 시스템 기술: 부호화와 압축 M. Y. Sung
3.1 개요 • Large volume 해결 • 대역폭(bandwidth) 높이기: ~GB/sec • 비트 수 줄이기: 데이터 압축(data compression) • 1948, Claude Shannon: 정보이론(Information Theory)의 아버지 • 엔트로피(entrophy): 소스 내용의 정보량을 측정 • 통신 시스템 모델 • 정보를 효율적으로 전송 압축(compression) • 소스 부호화(source coding) • 신뢰성 있는 통신 오류 제어(error control) • 채널 부호화(channel coding) M. Y. Sung
3.1 개요 • 압축(compression) • 감지의 질(perceptual quality)을 유지하면서 비트 수가 최소가 되게 부호화(coding) • 무손실 부호화(lossless coding): 완벽한 복원(decoding) • computer program, data, medical imaging • 손실 부호화(lossy coding): 정보 손실 있으나 지각의 질은 그대로 • audio, video • 부호화(coding)와 복호화(decoding)에 걸리는 시간이 최소가 되게 코딩 체계 설계 • 압축의 조건(constraints) • (예) Videoconferencing • Delay: 150 ms 이하 • Compression과 Decompression 시간:50 ms 이하 • (예) Retrieval based 응용: on-demand video services • 임의 접근 시간: 500 ms 이내 M. Y. Sung
3.2 이미지 압축 • 데이터 중복성(redundancy) • 공간 중복성 (Spatial redundancy, statistical redundancy): 이웃하는 픽셀 사이 • 스펙트럼 중복성 (Spectral redundancy): 색상 요소 사이 • 정신 시각적 중복성 (Psycho-visual redundancy): 눈의 감지 특성 • 이미지 압축 시스템 • 변환기(Transformer): 입력 이미지 데이터 압축 이미지 표현 (Lossless) • 양자화기(Quantizer): 압축 표현에 이용되는 제한된 심볼들 생성 (Lossy) • Scalar quantization: element 단위 • Vector quantization: block 단위 • 부호화기(Coder): 각 심볼에 코드(bits-stream)를 할당 (Lossless) • FLC(Fixed Length Coding) • VLC(Variable Length Coding): entrophy coding(최소 비트 할당) • 압축 방법 • Lossless: 이미지의 정확성이 중요한 medical imaging • Lossy • 주어진 비트울(bit-rate)에서 가능한한 신뢰성 있게 • 주어진 신뢰성을 보장하는 한도 내에서 비트율을 최소로 M. Y. Sung
3.3 압축 기술의 용어정리(Taxonomy) • 부호화(Encoding)의 분류 • 엔트로피 코딩(Entrophy coding): Lossless • 모든 데이터를 비트의 연속으로 간주 • 정보의 의미(semantics) 무시 • 소스 코딩(Source coding): Lossless or Lossy • 원래 신호의 타입을 고려 • 엔트로피 코딩 보다 더 많이 압축 • 실제로, 엔트로피 코딩 + 소스 코딩 M. Y. Sung
엔트로피 측정 • 엔트로피 • 물리학: 입자들의 무질서도 • 정보이론: 정보의 양 • 메시지 mi의 정보내용 Ii Ii =log(1 / Pi ) (비트) Pi : mi의 발생확률 • 신호원의 엔트로피 H(m) = n i=0 PiIi(비트) • n i=0 Pilog(1 / Pi ) = - n i=0 Pilog Pi (비트) • 모든 메시지가 같은 발생 확률을 가질 때 엔트로피는 최대가 됨 M. Y. Sung
3.4 엔트로피 코딩 기술 • 실행-길이 코딩 (Run-length Coding) • (c1, l1), (c2, l2), ... (ck, lk)로 이미지 요소 표현: cㅑ: color, li: length • (예) 11111111111333333333322222222211111 • (1,11), (3,10), (2,9), (1,5) • 반복 제거 (Repetition Suppression) • 특정 문자를 특수 글자(flag)과 반복 회수로 표현 • (예) 98400000000000000000000000000000000 • 984f32 • 패턴 대치 (Pattern Substitution) • 자주 반복되는 패턴을 어떤 코드로 대치 • 교재 p82-83 예 • 허프만 코딩 (Huffman Coding) • 문자 발생 빈도수에 기반: 자주 나오는 문자에 적은 수의 비트 할당 • p83 codebook 예 M. Y. Sung
P(ADCEB) =1.00 1 0 P(ADCE) =0.49 P(B) =0.51 1 0 P(CE) =0.20 P(AD) =0.29 1 0 0 1 P(C) =0.09 P(E) =0.11 P(D) =0.13 P(A) =0.16 이진 트리 형태의 허프만 코딩 • 발생확률 • p(A)=0.16 • p(B)=0.51 • p(C)=0.09 • p(D)=0.13 • p(E)=0.11 • 코드 • w(A)=001 • w(B)=1 • w(C) =011 • w(D)=000 • w(E)=010 M. Y. Sung
3.5 소스 코딩 기술 • 소스 코딩 • 의미 기반 코딩(semantic-based coding) • lossless or lossy • 소스 코딩 종류 • 변환 코딩 (Transform Encoding) • 퓨리에 변환 (FFT, Fast Fourier Transform) • 이산 여현 변환 (DCT, Discrete Cosine Transform) • 차분 코딩 (Differential Encoding) • 차분 펄스 코드 변조 (DPCM, Differential Pulse Coded Modulation) • 델타 변조 (DM, Delta Modulation) • 적응적 ADPCM (Adaptive DPCM) • 벡터 양자화 (Vector Quantization) M. Y. Sung
3.5 소스 코딩 기술 • 변환 코딩 (Transform Encoding) • 공간/시간 도메인을 주파수 도메인(frequency domain)으로 • 이미지의 스펙트럼 표현(spectral representation)은 색상과 휘도의 변화를 빠르게 파악할 수 있게 함 • DC(Direct Current) 요소와 저주파수 AC(Alternating Current) 요소들이 원래 이미지 신호에 대한 정보를 가장 많이 포함 • 처음 k 개 AC 계수(coefficient)만 사용(k는 응용에 따라 다름) • 주요 계수(the most significant coefficients)는 더 정밀하게 코딩 • DCT: JPEG, DCT 계수 생성 M. Y. Sung
3.5 소스 코딩 기술 • 차분 코딩 (Differential Encoding) • DPCM (Differential Pulse Code Modulation) • 예측 값(predicted value) 과의 차이를 코딩 fpredicted(ti) = factual(ti-1) f(ti) = factual(ti) - factual(ti-1) • Delta Modulation • DPCM과 유사하나 차분 오류를 단일 비트 또는 숫자로 표현 • 현 샘플이 한 단계 증가되었는지 한 단계 감소되었는지를 코딩 • ADPCM (Adaptive DPCM) • 시변 함수(time-varying function)를 이용하여 예측 값을 외삽(extrapolation) • 다양한 예측 함수(prediction function) 이용 M. Y. Sung
DPCM부호화/복호화 예 • 6 비트 크기(-16 ~ +15) DPCM 경우 (a)부호화 이전의 데이터 14 19 25 36 43 55 66 52 48 34 (b) DPCM부호화 데이터 +14 +5 +6 +11 +7 +12 +11 -14 +4 -14 (c)복원된 데이터 14 19 25 36 43 55 66 52 48 34 M. Y. Sung
ADPCM부호화/복호화 예 (a)부호화 이전의 데이터 18 35 53 68 88 65 42 28 48 67 (b)DPCM부호화 데이터 +15 +15 +15 +15 +15 -10 -15 -15 +13 + (c)복원된 데이터(DPCM시) 15 30 45 60 75 65 50 35 48 63 (스케일 변화정보) ×2 ×2 ×2 ×1 ×2 ×2 ×2 ×1 ×2 (a)부호화 이전의 데이터 +15 +10 +9 +7 +15 -8 -12 -7 +15 +12 (b) DPCM부호화 데이터 +15 +20 +18 +14 +15 -16 -24 -14 +15 +24 (c)복원된 데이터 15 35 53 67 82 66 42 28 43 67 M. Y. Sung
DM(Delta Modulation) 부호화/복호화 예 16 =LDM 16 24 36 24 36 24 36 24 =LADM 16 40 89 75 24 32 66 19 (a) 부호화 이전의 데이타 + + + + - - + - (b) DM으로 부호화된 데이타 16 32 48 64 48 32 48 32 (c) DM으로 복원된 데이타 + + + - - + + - (d) ADM으로 부호화된 데이타 16 40 76 52 16 40 76 52 (e) ADM으로 복원된 데이타 • DM코드화와 ADM코드화의 비교 : LDM=LADM= 16, p = 3/2, q = 2/3인 경우의 ADM코드화와 DM코드화의 예를 나타내고 있다. (a)의 데이터는 DM을 통해(b)와 같이 부호화되고 (c)와 같이 복원된다. 이때, LDM은 변하지 않는다. (d)는 ADM을 이용하여 부호화된 데이터를 , (e)는 ADM을 이용하여 복원된 데이터를 나타낸다. 정보의 배열에 따라 LADM의 크기가 동적으로 변화된다. ADM ++, -- L = L × p -+, +- L = L × q M. Y. Sung
3.5 소스 코딩 기술 • 벡터 양자화 (Vector Quantization) • 입력 데이터를 블록(vector; 예, 2x2 pixels)으로 나눔 • 블록의 형태에 대한 codebook과 position index 필요 • 이미지의 각 벡터를 가장 잘 매치되는 codebook의 code로 표현 (교재 p88 Fig.3.5 참조) • 일치하는 코드가 없는 경우 근접 패턴으로 코딩 decoding 시 왜곡(distortion) 생김 • error(codebook 항목과 이미지 벡터와의 차이)의 양자화 레벨과 error 전송 여부에 따라 • lossless • lossy • 다양한 실제 이미지 벡터에 근접하는 codebook 생성 가능 • speech 코딩에 좋음 • 최적 codebook 생성과 최적 패턴 매치 검색 알고리즘 연구 필요 M. Y. Sung
3.6 이미지 압축 시스템 • 이미지 압축 시스템: 아날로그 형태 디지털 형태 • 부호화기 (Encoder) • 복호화기 (Decoder) • Encoder • Phase I: 영상 준비 과정 (Picture Preparation Phase) • 샘플링, 픽셀들을 블록으로 • Phase II: 영상 처리 (Picture Processing) • 손실 소스 코딩, DCT • Phase III: 양자화 (Quantization) • 계수들을 정수로 (계수의 중요도에 따라 양자화 레벨 다르게) • Phase IV: 엔트로피 코딩 (Entrophy Coding) • 디지털 데이터 스트림을 무손실 코딩 • Adaptive compression schemes: Phase II와 Phase III 반복 • Decoder: Encoder의 역(inverse) 과정 • symmetric: 압축 시간과 복원 시간이 같음, 화상회의 등 대화형(interactive) 응용 • asymmetric: 압축 시간과 복원 시간이 다름, 시청각 학습 프로그램 등 프레젠테이션 응용 M. Y. Sung
3.7 압축 시스템 표준 • JPEG: ISO & IRU-TS, still image • MPEG: IEC/JTC1/SC29/WG11, video & audio • H.261: Study Group XV, Video Coded for Audiovisual Services at px64 Kbps • ITU-TS H.263: videophone • ISO JBIG: bilevel image • DVI: Intel de facto standard, presentation • (cf. 용어) 법적 표준 (de jure) & 업계 표준 (de facto) M. Y. Sung
3.8 JPEG • Joint Photographic Experts Group: Continuous tone (multilevel) still images 압축 국제 표준 (1992) • 공간 중복성(spatial redundancy) 제거: 질 손상 없이 1/10 ~ 1/50 압축 • 응용: photovideotex, color facsimile, medical imaging, desktop publishing, graphics arts, newspaper wire photo transmission • 요구사항 • 부호화기는 매개변수화(parametraizable)되어야 함 • 어떤 종류의 continuous tone digital image에도 적용 가능해야 함 • CPU와 특수 하드웨어에서 구현 가능하도록 계산 복잡도가 제어 가능해야 함, 압축은 실시간에 완료되어야 함 • 높은 성능을 요구하는 응용에 대해서도 하드웨어 상에서 적절한 가격으로 구현 가능해야 함 • 아래의 모드를 제공해야 함 • Progressive encoding: multiple scans, image build up in multiple coarses • Losless encoding • Hierarchical encoding: multiple resolutions M. Y. Sung
3.8 JPEG • JPEG 압축 (compression) 과정 • 데이터 블록 준비(Preparation of Data Blocks) • 소스 인코딩 단계 (Source Encoding step) • 이산 여현 변환 (Discrete Cosine Transform, DCT): Forward DCT • 양자화 (Quantization) • 엔트로피 인코딩 단계 (Entrophy Encoding step) • 실행 길이 코딩 (Run Length Coding) • 허프만 또는 산술적 코딩 (Huffman or Arithmetic Coding) • JPEG 복원 (decompression) 과정 • 엔트로피 디코딩 단계 (Entrophy Decoding step) • 허프만 또는 산술적 코딩 (Huffman or Arithmetic Coding) • 실행 길이 코딩 (Run Length Coding) • 소스 디코딩 코딩 (Source Decoding step) • 역 양자화 (Dequantization) • 역 이산 여현 변환(Inverse Discrete Cosine Transform, IDCT) M. Y. Sung
3.8 JPEG • DCT 기반 코딩의 2 모드 • 순차 모드(Sequential mode): 8x8 blockby block left-to-right, block-row by clock-row tom-to-bottom 순으로 FDCT & Quantizing 64개 DCT 계수들을 즉시 entrophy encoding (코딩된 순서대로 보여줌) • 점진적 모드(Progressive mode): 같은 순서로 처리 64개 DCT 계수들을 Quantizer와 Entrophy encoder 사이에 image-sized coefficient memory buffer 더하고 이 곳에 저장 매 다중 스캔(multiple scans) 마다 부분적으로 entrophy encoding (silhouette먼저 보여 주고 점진적으로 세밀하게 보여 줌) • 데이터 블록 준비 (Preparation of Data Blocks) • 순차 손실 모드 (Sequential lossy mode): 8x8 sampled values • (예) VGA standard: 640x480 image, YUV=4:1:1 sub-sampling 4800 blocks (Y) + 1200 blocks (U) + 1200 blocks (V) M. Y. Sung
3.8 JPEG • Forward Discrete Cosine Transform • 64개 점을 아래와 같이 표현 f(x,y), 0 x 7, 0 y 7, x와 y는 공간 도메인 • DCT 가 64 개의 점을 주파수 도메인에 아래와 같이 변환 • c=g(Fu, Fv), c는 계수,Fu와Fv는 아래의 변환식으로 구한 공간 주파수 • 0 x 7, 0 y 7 에 대하여 F(u,v)=0.25*C(u)*C(v)*7x=0 7y=0f(x,y)*cos(((2x+1)*u*)/16)*cos(((2y+1)*v*)/16) u, v = 0 일 때, C(u) = C(v) = 1/ (21/2) 이외의 경우, C(u) = C(v) = 1 • DCT 계산 결과 64 개 DCT 계수 생성 • DC(Direct Current) 계수: vector (0,0) 계수 • AC(Alternating Current) 계수: 나머지 vector들 • 많은 계수들이 0또는 0에 근접한 값을 가짐 코딩 않음 • 복호화기(decoder)에서는 IDCT(Inverse DCT)로 원래 값 복원 M. Y. Sung
3.8 JPEG • 직관(Intuition)적 해석 • 이미지의 각 샘플 값은 약간씩 변화하므로 낮은 주파수의 계수가 크고 높은 주파수의 계수는 작음: 신호 에너지가 낮은 공간 주파수에 몰려 있음 • (예) 단색 벽 이미지 • 이웃하는 픽셀 사이의 신호의 진폭은 거의 같으므로 x, y 각 방향으로 변화가 거의 없음: 주파수 0가 크고 나머지 주파수는 거의 0일 것임 • 주파수(frequency): x, y 축에서의 변화율 • (예) 가는 흑색 라인 이미지 • 어떤 블록은 영향 없고, 영향 있는 블록에서 이웃하는 값이 크게 변할 것임: 높은 주파수 중 하나의 계수가 클 것임 • 일반적으로, continuous-tone image에는 가는 선이 거의 없을 것이므로 저주파수에 많은 정보가 들어 있게 됨 JPEG의 기본 전제 • DCT자체는 lossless, DCT 계수 양자화 과정은 lossy M. Y. Sung
3.8 JPEG • 양자화 (Quantization) • fundamentally lossy: many-to-one mapping • 각 DCT 계수를 해당되는 양자화 테이블의 해당 행력 값으로 나눔 • FQ(u,v) = IntegerRound(F(u,v)/Q(u,v)) • (양자화 계수 테이블 예) Quantum(i,j)=4+3*(i+j) • DC 계수: 64 이미지 샘플의 평균, 앞 블록 DC 계수와의 차를 코딩, 이미지 에너지의 중요부분 포함 • Zig-Zag sequencing: 낮은 주파수의 계수가 높은 주파수의 계수보다 먼저 나오게, 하여 인접하는 0의 개수 늘임 • 엔트로피 코딩 (Entrophy Coding): lossless • DC 계수 코딩 • Symbol1=비트 수(허프만 테이블의 가변길이 코드), Symbol2=값 자체(가변길이 정수코드) (예) =1023,symbols1=1010 (10D), Symbol2=1111111111 • AC 계수 코딩 • zig-zag sequence를 intermediate symbol sequence로 • Symbol1=(실행길이, 크기), Symbol2=AC 계수 값 자체 (예) 44 7 12 18 7 3 3 5 2 0 0 5 3 2 0 2 2 0 0 … 0 (0,44), (0,12), (0,18), (1,7), (0,3), (0,3), (0,5), (0,2), (2,5), (0,3), (0,2), (1,2), (0,2) • intermediate symbol을 data stream으로 • Symbol1: 수정 허프만 테이블의 가변길이 코드, Symbol2: 가변길이 정수 코드 M. Y. Sung
Example of the luminance quantization table is shown in Figure 6. (from ‘JPEG: Still Image Data Compression Standard’, Pennebaker, Mitchell, Van Nostrand Reinhold Publisher, 1993). 16 11 12 14 12 10 16 14 13 14 18 17 16 19 24 40 26 24 22 22 24 49 35 37 29 40 58 51 61 60 57 51 56 55 64 72 92 78 64 68 87 69 55 56 80 109 81 87 Fig. 6 95 98 103 104 103 62 77 113 121 112 100 120 92 101 103 99 • Eye is most sensitive to low frequencies (upper left corner), less sensitive to high frequencies (lower right corner). • Custom quantization tables can be put in image/scan headers. M. Y. Sung
Quantization Tables (cont.) • Example of the luminance quantization table (from ‘JPEG: Still Image Data Compression Standard’, Pennebaker, Mitchell, Van Nostrand Reinhold Publisher, 1993). • 16 11 12 14 12 10 16 14 13 14 18 17 16 19 24 40 26 24 22 22 24 49 35 37 29 40 58 51 61 60 57 51 56 55 64 72 92 78 64 68 87 69 55 56 80 109 81 87 95 98 103 104 103 62 77 113 121 112 100 120 92 101 103 99 • Eye is most sensitive to low frequencies (upper left corner), less sensitive to high frequencies (lower right corner). • Custom quantization tables can be put in image/scan headers. M. Y. Sung
136 138 140 144 145 147 155 • 140 140 147 140 148 155 156 • 143 144 148 150 152 154 155 • 144 146 145 149 150 153 160 • 152 155 156 150 145 144 140 • 145 146 148 143 158 150 140 • 156 157 156 140 146 156 145 • 145 146 148 156 160 140 145 • 88 image block pixmap • DCT하기에 앞서 각 화소값에서 [ 2p-1 ] ( p는 화소정밀도 레벨)만큼을 뺀 다음에 계산하여야 함 여기서 p=8, 28-1=128 M. Y. Sung
-18 15 -8 23 -9 14 19 • 21 -34 24 -8 10 11 14 7 • 9 -8 -4 6 -5 4 3- -1 • 10 6 -5 4 -4 4 2 1| • 8 -2 -3 5 -3 3 4 6 • 4 -2 -4 6 -4 4 2- -1 • 4 -3 -4 5 6 3 1 1 • 0 -8 -4 3 2 1 4 0 (2) DTC coeffecient M. Y. Sung
4 7 10 13 16 19 22 25 • 7 10 13 16 19 22 25 28 • 13 16 19 22 25 28 31 • 16 19 22 25 28 31 34 • 19 22 25 28 31 34 37 • 22 25 28 31 34 37 40 • 25 28 31 34 37 40 43 • 25 28 31 34 37 40 43 46 (3) Quantization Table 양자화 계수(i, j) = 4 + 3(i + j) M. Y. Sung
-3 2 0 0 0 0 0 • 3 -3 2 0 0 0 0 0 • 1 0 0 0 0 0 0 0 • 1 0 0 0 0 0 0 0 • 0 0 0 0 0 0 0 0 • 0 0 0 0 0 0 0 0 • 0 0 0 0 0 0 0 0 • 0 0 0 0 0 0 0 0 (4) Quantized Coef M. Y. Sung
PREDICTOR Diffi = DCi - DCi-1i>0 Difference Encoding applied to DC coefficients M. Y. Sung
DC 계수 인코딩 테이블 차분 DC 계수값 해당 비트 길이 비트 길이의 BCD 표현 0 0 0000 ±1 1 0 001 ±2∼3 2 0010 ±4∼7 3 0011 ±8∼15 4 0100 ±16∼31 5 0101 ±32∼63 6 0110 ±64∼127 7 0111 ±128∼255 8 1000 ±256∼511 9 1001 ±512∼1023 10 1010 M. Y. Sung
3.8 JPEG • 압축과 이미지의 질: 교재 p101 Table 3.2 참조 • 수신측 처리: step size 곱해서 정규화(normalized) 해제한 후 IDCT에 입력 • FQ’(u,v) = FQ(u,v)*Q(u,v)) • f(x,y)=0.25*7x=0 7y=0C(u)*C(v)*F(x,y)*cos(((2x+1)*u*)/16)*cos(((2y+1)*v*)/16) u, v = 0 일 때, C(u) = C(v) = 1/ (21/2) 이외의 경우, C(u) = C(v) = 1 • 연산의 계층적 모드 (Hierarchical Mode of Operations) • frame의 연속으로 코딩 • down-sampling(low-pass filtering & sub-sampling) 작은 이미지부터 해상도를 증가시키면서 코딩 (교재 p102 Fig.3.14 참조) M. Y. Sung
3.8 JPEG • 다중-요소 이미지 (Multiple-Component Images) • 1~ 255 이미지 요소: 색상, 스펙트럼 밴드(spectral bands), 채널(channel).. • 모든 샘플은 정밀도가 p 비트인 부호 없는 정수 [0, 2p - 1] • DCT 기반코딩: p=8 또는 p=12 • 예측 코딩(Predictive coding): 2 p 6 • component Ci는 샘플 차원(sample dimension) xi * yi 가짐 • Hi : Horizontal sampling factor, 1 Hi 4 • Vi : Vertical sampling factor, 1 Vi 4 • X: 최대 xi • Y: 최대 yi • xi = X * Hi / Hmax • yi = Y * Vi / Vmax M. Y. Sung
256 M. Y. Sung 256