11.07.2015 Views

Image Processing

Image Processing

Image Processing

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Image</strong> <strong>Processing</strong>9. <strong>Image</strong> CompressionComputer Engineering, g, Sejong University영상 압축(<strong>Image</strong> Compression)일반적으로 영상은 대용량의 저장 공간 소요• Uncompressed video의 경우저장공간예512pixel x 512 pixel x 3bytes/pixel x 30frame/sec= 23.6MBytes/sec⇒ 영상 압축 :ex) 23.6MBytes=>187KBytes 영상 압축의 기본 원리• 영상 내에 존재하는 중복적인 데이터(redundant data)를제거2/64


영상 압축(<strong>Image</strong> Compression) application• 디지털 TV 방송(Digital TV broadcasting)•• 화상 회의(Televideo-conferencing)• 의학용 영상(Medical imaging)•• 다양한 Multi-media 환경=> 주로 영상의 전송과 저장을 위해 사용 압축 성능의 평가• 압축률(compression ratio) 이용compression ratio = original data/compressed data• 압축률이 클수록 압축 성능이 우수3/64영상 압축(<strong>Image</strong> Compression) 압축 기법의 선택 기준•• 압축/복원 시간•• 계산 시 필요한 자원의 가용성• 계산 시 필요한 자원의 비용• 표준화 채택 여부•• 손실 압축인 경우는 복원된 영상의 화질4/64


기본 이론(Fundamentals)압축 및 복원• 무손실 압축(Lossless compression) : 압축후복원시원래의정보를 정확히 재생• 손실 압축(Lossy compression) :data compression• 주어진 양의 정보를 표현하는데 필요한 데이터의 양을 줄이는 과정• 데이터 간의 중복성을 없앰으로써 가능 영상 데이터의 중복 특성•• interpixel redundancy• psychovisual redundancy5/64기본 이론(Fundamentals)Coding Redundancy의 제거• 발생 빈도가 높은 값에 짧은 코드를 부여•• 코드의 길이가 변화됨 : 가변길이 부호화(variable lengthcoding)•• 영상 데이터의 경우 히스토그램을 관찰하여 히스토그램이 높은값에 대해서는 낮은 비트를 할당6/64


기본 이론(Fundamentals) 필요 데이터 양• 화소 값을 [0,1] 범위의 확률 변수 r k 로표시• r k 의발생확률을p r (r k )라고 하면pr ( rk) =nkn• 총 화소수를 L, r k 를 표현하는 비트수를 l(r k )라고 하면 한화소를 나타내는 평균 비트수는LavgL∑ −1=l(r)p∑k = 0kr(rk)• Coding Redundancy의 제거 : L avg 를 최소화7/64기본 이론(Fundamentals)Coding Redundancy의 제거Lcode 1 code 277avg= ∑l1(rk) pr( rk)k=0k=08/64Lavg = ∑l2(rk) pr( rk)= 3(0.19) + 3(0.25) + 3(0.21) + 3(0.16) = 2(0.19) + 2(0.25) + 2(0.21) + 3(0.16)+ 3(0.08)+ 3(0.06)+ 3(0.03)+ 3(0.02)+ 4(0.08)+ 5(0.06)+ 6(0.03)+ 6(0.02)= 3.0 bits= 2.7 bits


기본 이론(Fundamentals)Coding Redundancy의 제거발생 확률과 비트 할당 관계9/64기본 이론(Fundamentals)Interpixel Redundancy의 제거•• 인접된 필드 간의 유사성을 이용• 이웃하는 화소 간의 차이 값을 이용하여 데이터 표현• Run-length encoding, DPCM, ADPCM 기법• interpixel e redundancy를 da 나타내는 용어들- spatial redundancy-- interframe redundancy10/64


기본 이론(Fundamentals)Interpixel Redundancy의 제거11/64기본 이론(Fundamentals)Interpixel Redundancy의 제거12/64


기본 이론(Fundamentals)Psychovisual Redundancy의 제거•• 특정 영상 정보는 인간의 눈이 무시하는 경향• 이러한 정보들을 제거함으로써 인간의 지각에 차이를 주지않고 데이터의 제거가 가능=> 복원 시 정확한 복구가 안 되는 경우가 많음• 보통 표본화(sampling), 양자화(quantization)와 관련13/64기본 이론(Fundamentals)Psychovisual Redundancy의 제거14/64


기본 이론(Fundamentals)충실도(fidelity)의 기준• 손실된 시각 정보의 특성과 양을 규정짓는 평가 수단–– subjective fidelity criteria(주관적 충실도 기준)• 두 평가 기준이 항상 일치하지는 않음15/64기본 이론(Fundamentals)객관적 충실도 기준의 예• 입력 영상과 출력 영상의 root-mean-square error• f( x,y),fˆ(x,y) 가 각각 입력영상, 출력영상이라고 하면MxN 크기의 두 영상과의 총오차는M −1N −1ˆ∑∑x= 0 y=0[ fˆ(x,y)−f ( x,y)]• 두 영상간의 root-mean-square e rms 는erms⎡ 1⎢⎣ MNM − 1 N −1= ∑∑[ fˆ(x,y)−f ( x,y)]⎣ x= 0 y=0 ⎦2⎤⎥1/ 216/64


기본 이론(Fundamentals)객관적 충실도 기준의 예• 출력 영상의 평균제곱신호 대 잡음비(mean-squaresignal-to-noise ratio) SNR ms 는SNRms∑∑M −1N −12∑∑x= 0 y=0=M−1N−1x= 0 y=0fˆ(x,y)[ fˆ( x,y)−f ( x,y)]217/64<strong>Image</strong> Compression Model<strong>Image</strong> Compression System•• Source encoder : input 데이터의 중복성 제거•• 영상의 저장 등 채널 잡음이 없는 경우에는 channelencoder/decoder는 불필요f ( x,y)f ˆ( x,y)SourceChannelChannelSourceChannelencoder encoderdecoder decoderEncoderDecoder18/64


<strong>Image</strong> Compression Model Source Encoder• 입력 영상에서 coding, interpixel, psychovisualredundancy를 줄이거나 제거하는 역할 Source Encoding 단계•• Quantizer : 비가역 과정(irreversible)•f( x,y)Mapper QuantizerSymbolencoderChannelSource Encoder19/64<strong>Image</strong> Compression Model Mapper• 입력 영상에서 interpixel redundancy를 줄이도록 데이터 형태를변환•• 예 : run-length coding• 변환 결과 : 계수의 배열로 구성 Quantizer• Mapper 출력의 정밀도를 줄임• psychovisual redundancy를 줄임• Symbol Encoder• coding redundancy를 줄임• 고정 길이나 가변 길이 코드를 출력20/64


<strong>Image</strong> Compression Model Source Decoder• Source encoding의 역과정으로 원래의 영상을 복구• Source Decoding 단계• Symbol decoder : Symbol encoding의 역과정• Inverse mapper : Mapper 의 역과정Channel Symbol Inversef ( x,yDecoder Mapper)ˆSource Decoder21/64무손실 압축(Error-free compression) 무손실 압축• 손실을 허용하지 않는 경우에 사용되는 압축 방법• Application• 의학적인 문서 혹은 비즈니스 문서•• 방사선 사진(digital radiography) : 정확한 진단을 위해 필요• 압축율은 2 ~ 10 정도 압축 기법• 가변 길이 부호법(variable-length coding)• 산술 부호법(Arithmetic ih i coding)• Bit-plane coding : 런길이부호법(Run-length coding)• 무손실 예측 부호법(Lossless predictive coding)22/64


무손실 압축(Error-free compression) 가변 길이 부호법(variable-length ( g coding)• 가장 단순한 압축 방법•• 가장 많이 등장하는 값에 가장 짧은 부호를 지정• 입력으로서 영상의 화소값, 화소값의 차이, run-length encoding결과 등이 될 수 있다. 종류•• Truncated Huffman coding• Shift coding• Huffman shift coding23/64무손실 압축(Error-free compression)허프만 부호법(Huffman coding)• 1952년 David Huffman의 논문에서 발표• 문자들의 발생 빈도가 다를 때 가변 길이 코드가 고정 길이코드보다 높은 자료 밀집도를 얻음••• 각 source symbol당 가장작은code symbol 생성허프만 부호화 과정1. symbol의 확률을 정렬2. 가장 낮은 확률을 갖는 symbol들을 단일 symbol로 조합하여symbol 수를 계속적으로 줄여 나감3. 가장 작은 symbol수에서 각각 코드 할당4. symbol이 줄어든 역과정으로 코드를 추가로 할당해 나감24/64


허프만 부호법(Huffman coding)symbol 수를 줄이는 과정코드 할당 과정25/64허프만 부호법(Huffman coding)전치 특성(prefix property)•– 예 : 영문자 e의의 코드가 “01”일 경우 “010”, “011” 혹은“0100” 등의 코드는 존재하지 않는다– 즉 e의 코드 “01”이 다른 코드의 prefix가 될 수 없다.– 만약 “010”을 b의 코드로 정하면 “010”을복호화할때다음의 모순 발생=> “01” 을 e로 복호화 혹은=> “010”을 b로 복호화특징• 비트 단위의 처리가 필요26/64


허프만 부호법(Huffman coding)장점•• 이론적인 한계치에 거의 근접• 일단 코드 테이블이 구해지면 룩업 테이블 방식으로 유일하게부호/복호화가 가능• block code 특성 : 각 source symbol이 일정한 길이의 codesymbol로 mapping•단점• 인코딩에 두 단계를 필요로 함(빈도수 축적=> 테이블 생성, 압축)• 하나의 에러 비트가 전체적인 자료를 훼손(가변 길이의 단점)• symbol 수가 많을 경우 코드 테이블의 구성이 어렵다• 256계조의 영상의 경우 254 단계의 source symbol reduction과254단계의 code 할당 과정 필요27/64기타 가변 길이 부호법의 성능28/64


무손실 압축(Error-free compression)산술 부호법(Arithmetic coding)• nonblock code 발생 : 여러 source symbol이 모여서 하나의산술 코드를 생성•• source symbol의 길이가 길어질수록 나타내는 실수 간격이조밀해지면서 산술 코드가 길어짐•• 허프만 부호법과 유사하게 두 단계의 과정 필요– 문자의 빈도수 계산 및 확률 테이블 생성– 실제적인 압축 수행29/64무손실 압축(Error-free compression)산술 부호법(Arithmetic coding)의 예30/64


무손실 압축(Error-free compression)LZW 부호법(Lempel-Ziv-Welch coding)• 가변 길이의 source symbol에 고정 길이의 code word를 할당•• 부호화 과정에서 연속하는 source symbol 들의 code를codebook에 추가(256, 257 등에)• source symbol들이 codebook에 있으면 codebook내의 codeword로 대체LZW 부호법의 특징• 부호화 과정에서 Huffman과 같은 사전 지식은 요구하지 않음• 부호화를 진행하면서 codebook을 계속적으로 update• 마침표 다음의 space, the 등 자주 나오는 단어를 효과적으로압축• gif, tiff, pdf 등의 파일 형식에서 사용31/64무손실 압축(Error-free compression)LZW 부호법의 예32/64


무손실 압축(Error-free compression)Bit-plane coding• 계조 영상을 이진 영상의 연속으로 분해한 후 이진 영상의 압축방법을 이용하여 영상 데이터를 압축•33/64Bit-Plane CodingBit-plane 의 재구성• 일반적인 이진 영상의 경우 low bit에서 데이터의 변화가 매우 큼• m-bit gray code 를 이용 => bit의의 변화를 줄임– 서로 이웃하는 화소의 경우 비슷한 값을 갖는 특성 이용–10진수 BCD 코드 그레이코드0 0000 00001 0001 00012 0010 00113 0011 00104 0100 01105 0101 01116 0110 01017 0111 01008 1000 11009 1001 110134/64


무손실 압축(Error-free compression)original imageoriginal gray coded original gray coded35/64무손실 압축(Error-free compression)런 길이 부호법(run-length coding)• interpixel redundancy를 제거하는 기법•• 계조 영상의 각 bit-plane에 적용• black, white 값의 연속적인 길이로 영상을 표현•• bmp file의 압축용으로 사용• 1, 2, 4bit의 계조 영상에 적용 가능– 입력 : AAAABBBBBCCCCCCCCDEEEE– 출력 : 4A5B8C1D4E– 압축률 : 22/10 = 2.2236/64


런 길이 부호법(run-length coding)적용시유의사항• 압축률이 1보다 작은 경우는 원자료를 그대로 전송– 입력 : MyDogHasFleas– 출력 : 1M1y1D1o1g1H1a1s1F1l1e1a1s– 압축률 : 13/26 = 0.5•– 입력 : ABCDDDDDDDDEEEEEEEEE– 출력 : ABC+8D+9E– 압축률 : 19/9 = 2.11• 3바이트보다 긴 런이 존재할 때 압축 가능• 전치 문자 발생시 3바이트로 표현(+ => +1+)37/64무손실 압축(Error-free compression)무손실 예측 부호법(Lossless predictive coding)•• 이전 화소로부터 얻은 정보를 이용하여 인접 화소에서 얻은새로운 정보 만을 추출하고 이를 부호화•38/64


무손실 압축(Error-free compression)무손실 예측 부호법(Lossless predictive coding)원영상예측 차이 영상히스토그램차이 영상의히스토그램39/64손실 압축(Lossy compression) 손실 압축•• interpixel, coding redundancy, psychovisual redundancy 를제거• Application• 디지털 TV : MPEG-2, 영상 회의, , 영상 전화 : H.261• 정지영상 부호와 : JPEG• 압축율은 10 ~ 100 정도 압축 기법• 손실 예측 부호법(Lossy predictive coding)• 변환 부호법(Transform coding)• 계층 부호법(Hierarchical coding)• Hybrid coding, wavelet coding40/64


예측 부호법(Predictive Coding)손실 예측 부호법(Lossy predictive coding)•• 부호화와 복호화기에서 같은 예측기(predictor) ) 사용• 가장 잘 알려진 부호법- DM(Delta Modulation)- 가장 단순• 그 외- ADM(Adaptive Delta Modulation)- DPCM(Differential Pulse Code Modulation)- ADPCM(Adaptive Differential Pulse Code Modulation)• 최적 예측 부호법 : DPCM- encoder의 의 mean-square prediction error를를 최소화 하는기법41/64예측 부호법(Predictive Coding)손실 예측 부호법(Lossy ( ypredictive coding)손실 예측 부호화 모델42/64


예측 부호법(Predictive Coding)DM(Delta Modulation)• 한 화소의 표현을 위해 1비트를 할당• 부호 할당 방법- 화상 입력 신호값과 현재값 비교-- 그 외에는 ‘0’을 할당• 구현- 일정한 진폭(델타)를 정해 두고, 오차가 축적되지 않도록지금까지의 부호화에 의해서 얻어진 화상값과 입력되어 오는화상 신호와의 차인 잔차 신호에 대한 부호화를 수행- 부호 ‘1’에 + delta- 부호 ‘0’에 – delta 값적용• Granular noise 발생- 입력 영상의 변화가 없는 부분에서 발생• Slope overload 발생- 입력 영상의 변화가 큰 부분에서 발생43/64예측 부호법(Predictive Coding)DM(Delta Modulation)44/64


예측 부호법(Predictive Coding) Delta Modulation의 문제점 :• 진폭을 키울 경우 : granular noise 가커짐•ADM(Adaptive Delta Modulation)• 진폭(delta)을 가변으로 처리• 입력 영상의 변화가 없는 부분- 진폭(delta)을l줄임-- granular noise를 줄임• 입력 영상의 변화가 큰 부분- 진폭(delta)을 키움- 입력 신호를 빠르게 추종- slope overload를 줄임45/64예측 부호법(Predictive Coding)DPCM(Differential Pulse Code Modulation)• 부호화부의 예측 에러를 최소화하는 기법E{e2n} =E{[fn−ˆ 2f ] }n• 최적 예측 부호법•46/64


DPCM(Differential Pulse Code Modulation) 예f ˆ( x,y) =0.5f( x,y −1)f ˆ(x,y)= 0.97( x,y −1)+ 0.5 f ( x −1,y)Δh=|f( x −1,,y) −f( x −1,,y −1) ) |Δv= | f ( x,y −1)− f ( x −1,y −1) |fˆ ˆ( x,y)= 0.75 f ( x,y −1)⎨ ⎧ 0.97 f ( x,y −1)if Δh≤ Δvfˆ(x,y)=+ 0.75 f ( x −1,y)− 0.5 f ( x −1,y −1)⎩0.97f ( x −1,y)otherwise47/64예측 부호법(Predictive Coding)양자화 예48/64


DPCM에 의한손실압축예1 bits/pixel2 bits/pixel1.25bits/pixel2.125bits/pixel3 bits/pixel3.125bits/pixel49/64DPCM 에러 예1 bits/pixel2 bits/pixel1.25bits/pixel2.125bits/pixel3 bits/pixel3.125bits/pixel50/64


변환 부호법(Transform Coding)변환 부호화를 통한 압축•• 영상을 주파수 성분으로 변환• 영상의 고주파 성분에는 비트수를 적게 할당•변환 부호화 기법• 영상을 정방영역(8x8, 16x16 : 블록)으로 분할•• 변환 계수 생성(각 변환 기법에 따라 다른 결과)• 변환 계수의 영역별로 적절한 양자화 수행51/64변환 부호법(Transform Coding)전형적인 변환 부호화 시스템52/64


변환 부호법(Transform Coding)변환 부호법(Transform coding)••• transform kernel(basis function)에 의해서 변환 방식 결정F(u,v)=f ( x,y)=N − 1N− 1∑∑x= 0 y=01NN −1N −1∑∑u= 0 v=0f ( x,y)g(x,y,u,v)F(u,v)h(x,y,u,v)• 변환 부호법의 종류- KLT((Karhunen-Loeve Transform)- DFT(Discrete Fourier Transform)- DCT(Discrete Cosine Transform)- WHT(Walsh-Hadamard H d Transform)53/64변환 부호법(Transform Coding)주요 변환 부호법(Transform coding)• Discrete Fourier Transform(DFT)1 − j2π( ux+vy)/Ng ( x,y,u,v)=e ,h(x,y,u,v)=e2N• Walsh-Hadamard Transform(WHT)1ig(x,y,u,v)= h(x,y,u,v)= ( −1)Nm−1∑⎣bi( x)pi( u)+ bi( y)pi( v)⎦= 0j2π( ux+vy)/N• Discrete Cosine Transform(DCT)(2x+1)uπ(2y+1)vπg(x,y,u,v)= h(x,y,u,v)= α(u)α(v)cos[]cos[ ]2N2N⎧1⎪ for u,v = 0Nα(u),α(v)= ⎨⎪2⎪for u,v = 1,2,..., N −1⎩ N54/64


변환 부호법(Transform Coding)Transform Kernel의 예Walsh-Hadamard basisfunction for N=4Discrete-cosine basisfunction for N=455/64(a)differenceApproximations using(a) Fourier(b) Hadamardd(c) Cosine(b)(c)8x8 block압축율 : 2rms error:(a):1.28(b):0.86(c):0.6856/64


변환 부호법(Transform Coding)변환 부호법의 RMS error 비교• Reconstruction error versus subimage size comparison57/64변환 부호법(Transform Coding)변환 부호법의 양자화• 변환 계수의 양자화⎡F(u,v)⎤⎤Fˆ(u,v)= round⎢⎥⎣ Z(u,v)⎦Typical normalizationmatrix : Z(u,v)58/64


변환 부호법(Transform Coding)변환 부호법(Transform Coding)변환 부호법의 양자화⎡ 154⎤164168154150161161168변환 부호법의 양자화• DCT 예⎥⎥⎥⎥⎤⎢⎢⎢⎢⎡154143161164164147168171164150171157150161154171154164168154150161161168⎥⎥⎥⎥⎥⎢⎢⎢⎢⎢132154161143154157161161132147157157161154171164536667687⎥⎤⎢⎡−−−− 6111020349214DC component⎥⎥⎥⎥⎥⎦⎢⎢⎢⎢⎢⎣ 128136132140150157161154132140140161154157168161140154157150154161161164⎥⎥⎥⎥⎥⎢⎢⎢⎢⎢−−−−−−−661015441081053398466153513112534⎢⎣ 128⎥⎦136132140150157161154⎥⎥⎥⎥⎢⎢⎢⎢−−−−−−−−−−−214743895159152151266101544108Original image⎥⎥⎥⎥⎦⎢⎢⎢⎢⎣−−−−−−−−2423201143311322DCT59/64AC component양자화 예⎥⎤⎢⎡−−−− 6111020349214양자화 예⎥⎥⎥⎥⎥⎢⎢⎢⎢⎢−−−−−−−−−661015441081053398466153513112534⎥⎥⎥⎥⎥⎢⎢⎢⎢⎢−−−−−−−−−214743895159152151266101544108⎥⎥⎥⎦⎢⎢ ⎢ ⎣−−−−−−−−2423201143311322Quantisation⎥⎥⎤⎢⎢⎡− 00001123000010413⎥⎥⎥⎤⎢⎢⎢⎡669021613155605826191412126151402416101116⎥⎥⎥⎥⎥⎢⎢⎢⎢⎢− 000000110000010000001123⎥⎥⎥⎥⎥⎢⎢⎢⎢⎢=77103109685637221862808751292217145669574024161314W⎥⎥⎥⎥⎥⎢⎢⎢⎢⎢ −000000000000000000000001⎥⎥⎥⎥⎥⎢⎢⎢⎢⎢1011201211038778644992113104816455352477103109685637221860/64⎥⎥⎦⎢⎢⎣ 0000000000000000⎥⎥⎢ ⎢ ⎣ 99⎦10310011298959272Quantisation Matrix


Video 압축 기법DPCM과 DCT, VLC를 이용한 일반적인 영상 압축 기법61/64Video 압축 기법Scan• 양자화 이후 수행하여 coding redundancy 제거하기 위한전처리 과정⎡ 13 4 0 1 0 0 0 0 ⎤⎢⎥⎢3 − 2 1 1 0 0 0 0⎥⎢00100000⎥⎢⎥⎢ 1 − 1 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 ⎥⎢⎥⎢⎣ 00000000 ⎥⎦Zig-Zag scanZig-Zag scanAlternate scan0 13 4 3 0 -201101 1 0 1 -1 -1110001 1 0 0 … 062/64


Video 압축 기법Run-Length Coding• zig-zag 시퀀스를 (앞에 있는 ‘0’의 개수, ‘0’이 아닌 상수)의형태로 표현[ 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 3 1 0 0 0 0 2 ](5, 1) (11, 3) (0, 1) (4, 2)Huffman Coding• 출현 빈도가 높은 값에 적은 비트 할당• 무손실 부호화0ASymbol Probability Code0A 0.5 0B1B 0.3 10C 1 C 02 0.2 1163/64Video 압축 전체 과정⎡139144149 153⎤⎤⎡1260 −1 −12 −5⎤⎢⎥⎥⎢144 151 153 156 DCT ⎢⎥ ⎢− 23 −17− 6 − 3⎥⎢150155160163⎥⎢ −11 −9 −22⎥⎢⎥ ⎢⎥⎣159161 162 160⎦⎣ − 7 − 2 0 1 ⎦Original image ordifference between original & predicted images[ 79 0 −2−1−1−10 0 −10 0 0 0 0 0 0]Run-Length Code⎡079 ⎤⎢ ⎥⎢1 − 2⎥⎢0−1⎥⎢ ⎥⎢0−1⎥⎢0−1⎥⎢ ⎥2 −1⎥⎢ ⎢ ⎥⎣00 ⎦Huffman Code64/64Zig-Zag scan10011011100011...Quantisation/16⎡ 79 0 −1⎢⎢− 2 −10⎢−1−10⎢⎣ 0 0 00⎤0⎥⎥0⎥⎥0⎦

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!