SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Multimedia Communications



  Chapter 3
  Image Compression Techniques




 아주대학교 정보및컴퓨터공학부
 모바일 멀티미디어통신 연구실 (http://mmcn.ajou.ac.kr)
 노병희 (bhroh@ajou.ac.kr)




Contents

 Binary Image Compression
   CCITT Group 3/4 for FAX
 JPEG Image Compression
   JPEG (Joint Photographic Expert Group)
   M-JPEG (Motion JPEG)
   JPEG-2000




                                            1
영상 부호화 방법

 주요 영상 부호화 국제 표준 기법
   표준 기구       표준(권고) 번호              표준화 내용               표준화 시기
             T4, T6            이진영상 (facsimile) 부호화        1980/1984
             T.81 (JPEG)       정지영상 부호화                      1992
    ITU-T    T.82 (JBIG)       이진영상 부호화                      1993
             H.261             P64kbps 통신용 영상 부호화            1990
             H.262 (MPEG-2)    고품질 영상 범용 부호화                 1995
             H.263             저속 통신용 영상 부호화              1995/1998(v2)
             10918-1(JPEG)     정지영상 부호화                      1992
             11544(JBIG)       이진영상 부호화                      1993
             11172-2(MPEG-1)   저장 미디어용 영상 부호화                1993
   ISO/IEC
             13818-2(MPEG-2)   고품질 영상 범용 부호화                 1994
                               영상 부호화 및 조작과
             14496-2(MPEG-4)                                 1999
                               관련한 다양한 기능 제공
                               멀티미디어 정보를 검색하기
             MPEG-7                                          2001
                               위한 표준화된 서술 방법
                               전 자 상 거 래 와 관 련 된 멀티 미디어
             MPEG-21           콘텐츠의 제작부터 소비까지 전              2002
                               과정에 사용될 통합된 국제표준




 3.1 Binary Image Compression




                                                                          2
팩시밀리를 위한 이진 영상 압축 방법

    Facsimile Machine Principles




                      scanned
            (digitized) image




팩시밀리를 위한 이진 영상 압축 방법

     Scanning

              horizontal scanning direction                             scanning line




vertical
scanning
direction
                        1728 bits



                   total bits =
                                                          B         1728 bits
                    1,978,560     1145              pixel data of the scan line from above
                                  lines


                                                    black run   black run
                                                    of 3 bits   of 4 bits

                                              white run    white run            white run
               standard 8.5x11 document       of 8 bits    of 5 bits            of 1708 bits




                                                                                               3
팩시밀리를 위한 이진 영상 압축 방법

 Facsimile 문서의 특징
   Binary Image
    • 0 과 1의 값을 갖는 pixel들로 구성되는 흑백 스캔된 영상


 팩시밀리를 위한 ITU-T 영상 압축 표준 방법
   T2 (Group 1) & T3 (Group 2) : Analog 방식
   T4 (Group 3) & T6 (Group 4) : Digial 방식
   References
    • G3: ITU-T Recommendation T.4, “Standardization of Group 3
      Facsimile Apparatus for Document Transmission,” 93. 3.
    • G4: ITU-T Recommendation T.6, “Facsimile Coding Scheme and
      Control Functions for Group 4 Facsimile Apparatus”.




팩시밀리를 위한 이진 영상 압축 방법

 G3와 G4 Fax 방식의 차이점
   G3 Fax
    • 1차원 RLC(Run Length Coding) 기법 사용
    • 2차원 RLC 기법 선택 적용
   G4 Fax
    • G3의 2차원 RLC 사용
    • G3에서 사용하던 오류 제어를 위한 부가 정보를 줄임으로써 압축율을
      30% 정도 개선함
        – G4 Fax : ISDN과 같은 전송 오류가 적은 하부 통신 기반을
          대상으로 함
        – G3 Fax : 일반 전화망을 대상으로 함




                                                                   4
G3 1차원 RLC (Run Length Coding) 방법

 G3 1차원 RLC 개요
   각 line 마다 독립적인 RLC 사용
   매 line의 끝마다 EOL 추가
     • 각 line을 독립적으로 복호화 가능
     • 전송오류 발생시, 발생된 오류는 해당 line으로 국한됨
   마지막 line의 끝에는 6개의 EOL 추가
     • End-of-Line (EOL): ‘0000 0000 0001’




G3 1차원 RLC (Run Length Coding) 방법

 G3 1차원 RLC 기본 알고리즘
  If run-length < 64,
       then
           use Terminating code (modified Huffman code)
       else
           use largest possible makeup code (not exceeding the run-
         length) and Terminating code (represents [run-length -
         makeup code])

  End-of-Line (EOL): ‘0000 0000 0001’
   • EOL indicates to terminate each line
   • EOL signals the first line of each new image (page)
   • six consecutive EOLs indicate the end of a sequence of images (pages)




                                                                             5
G3 1차원 RLC (Run Length Coding) 방법

     G3 1차원 RLC 예
         다음의 image를 G3 1차원 RLC로 나타내시오.


     Image:                                                    ...

     Data : 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 ... 0 0 0 0 0

     Runs :         8W           3B       5W    4B            1708W




                       B          1728 bits




                   8W 3B 5W 4B          1708W




G3 1차원 RLC (Run Length Coding) 방법



                                        3B
5W                                      4B

8W

                                      44W




                                                                              6
G3 1차원 RLC (Run Length Coding) 방법




G3 1차원 RLC (Run Length Coding) 방법

  G3 1차원 RLC 예


Image:                                                    ...

Data : 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 ... 0 0 0 0 0

Runs :         8W        3B      5W        4B            1708W

Code :       10011       10     1100      011       01100000101101


                                                    다음 슬라이드 참조




                                                                         7
G3 1차원 RLC (Run Length Coding) 방법

 Make-up Code 사용 예
   흰색 pixel (white-run) 개수가 1708인 데이터의 코딩
    •   1708 = 1664 + 44 이므로,
    •   1664개의 white-run을 나타내는 make-up code: 011000
    •   44개의 white-run을 나타내는 termination code: 00101101
    •   부호화된 코드
               01100000101101




FAX Process

 Data Format




                                                          8
FAX Process

 Summary




G3/G4 2차원 RLC

 G3 1차원 RLC의 한계
   영상은 일반적으로 수직/수평 상관성을 모두 갖춤
   1차원 RLC는 수평 상관성만 활용 가능
 G3/G4 2차원 RLC
   수직/수평 상관성을 모두 활용하여 압축 효율을 높이고자 함




                                      9
G4 Fax Encoding

 Group 4 Fax
   G3의 2차원 RLC 사용
   전송 오류를 차단하기 위한 부가 정보의 제거를 통한 압축 효율
   향상
       • ISDN의 전송오류가 적은 환경을 대상으로 함
   각 line의 끝을 나타내는 EOL을 전송하지 않음




JBIG

 JBIG (Joing Bi-level Image Coding Group)
   G3/G4 Fax 방식의 한계
       • 흑백 영상에는 잘 적용되나, Half-tone을 갖는 영상에는 부적합
   JBIG
       • G3/G4 방식의 한계를 극복하기 위하여 제안됨
       • 점진적(Progressive) 전송이 가능
           – 먼저 낮은 해상도로 부호화하여 전송하고, 점차적으로 높은
              해상도로 전송함
       • Arithmetic Coding 방법에 기초함
       • 컬러 영상의 경우 각 컬러 평면에 대하여 적용
       • MPEG-4의 모양 정보 부호화 방식에 적용 (HW 구현이 용이)
   JBIG2
       • 압축율을 높이기 위하여 손실 부호화 방법을 적용




                                                  10
Contents

 Binary Image Compression
   CCITT Group 3/4 for FAX
 JPEG Image Compression
   JPEG (Joint Photographic Expert Group)
    • encoding
    • decoding
   M-JPEG (Motion JPEG)
   JPEG-2000




  3.2 JPEG Image Compression




                                            11
JPEG-특징

 JPEG 개요
   ISO/IEC JTC1에서 국제 표준으로 제정한 정지 화상 (still image)을
   위한 압축/복원 알고리즘
    • 1982년에 시작하여 1992년 표준으로 확정
   4가지의 다른 압축 알고리즘 지원
    • 순차적 부호화(Sequencial Encoding)
       – 각각의 영상 요소가 스캔되는 순서대로 부호화
    • 점진적 부호화(Progressive Encoding)
       – 전송시간이 길 때 다중 스캔에 의해 대략적인 영상을 먼저 제공하고
         점진적으로 세부적인 부호화 과정을 가진다
    • 무손실 부호화(Lossless Encoding)
       – 본래의 영상과 동일하게 영상을 복원할 수 있도록 부호화
    • 계층적 부호화(Hierarchical Encoding)
       – 영상을 사용자가 원하는 대로 지원할 수 있도록 여러 해상도로 부호화




JPEG -특징

 순차적 부호화 (Sequential Encoding)
   이미지가 스캔되는 순서에 따라 인코딩을 진행함
   단순하고 효율적으로 대부분의 응용에서 적합하게 적용됨




                                                     12
JPEG -특징
 점진적 부호화 (Progressive Encoding)
   영상을 여러개의 스캔으로 부호화함
    • 예) 영상을 저주파와 고주파수까지 여러단계로 인코딩함
    • 스캔 횟수가 증가함에 따라 영상의 품질이 개선됨
   대역폭이 제한된 채널을 통한 영상 전송시 유용
    • 사용자는 개략적 윤곽을 먼저 보고, 더 자세히 보길 원할시에 더 나은
      영상을 계속 선택적으로 볼 수 있음            DC
                                        low

                                          medium

                                                   high




JPEG -특징

 계층적 부호화 (Hierarchical Encoding)
   영상을 여러 해상도(resolution)으로 부호화 함
    • 장비의 능력에 따라 낮은 해상도에서 고 해상도까지를 융통성 있게
      제공 가능.




                   160x120 pixels



                    320x240 pixels




                       640x480 pixels




                                                          13
JPEG -특징

 무손실 부호화(Lossless Encoding)
   DCT 변환과는 무관한 공간적 예측방법을 사용
    • 픽셀과 같은 한 데이터 단위의 값을 인접한 데이터 단위와의
      차이정보로 나타냄
    • 차이정보를 허프만코딩을 사용하여 부호화
   2:1 정도의 압축률을 얻을수 있음




JPEG -특징

 JPEG 부호화의 특징
   Color Space
    • RGB 또는 YCrCb 칼라 표현 방식 선택 가능
    • Y와 (Cr, Cb) 에 각기 다른 양자화 테이블 사용.
    • 4:4:4, 4:2:2, 4:2:0 칼라 샘플링 선택 가능
   최대 화면 크기 : 65,536 pixels x 65,536 pixels
   부호화
    • DCT를 사용하여 압축.
        – DC 성분에 대하여는 linear DPCM quantizer 사용
        – AC 성분은 RLC 적용
    • Modified-Huffman 방식을 사용하여 코드화함.
    • progressive 또는 interlaced scanning 방식 지원
    • 채널 오류 관리 기능




                                                 14
JPEG-특징

 JPEG 방식의 분류
  무손실 부호화 (lossless coding) 방식
   • 압축, 복원의 과정을 거쳐도 원래의 정보를 보존 가능
   • 압축률이 낮음
   • 화면내의 공간적 예측부호화 (predictive coding) 방식을 사용함
  손실 부호화 (lossy coding) 방식
   • DCT 변환부호화 방법을 사용
   • 복원시 왜곡이 생겨 원래데로 재생되지 않으나, 압축률이 높음




JPEG-특징

 JPEG 손실부호화 방식의 분류
  기본방식 (baseline)
   •   픽셀의 색 성분당 8비트인 입력영상에 대하여 적용
   •   순차적부호화 모드를 사용
   •   부호화시에는 허프만부호화 방식을 사용
   •   일반적으로 JPEG이라함은 기본 방식을 의미함
  확장방식 (extended)
   • 광범위한 응용에 적용
   • 픽셀의 색 성분당 8비트 또는 12비트가 적용 가능
   • 압축시에는 순차적부호화모드, 점진적부호화모드, 계츷적부호화
     모드를 선택 적용 가능
   • 엔트로피 부호화시에는 허프만부호 또는 산술부호중에서 응용에 따라
     선택 가능




                                                  15
JPEG-부호화 과정

          JPEG 압축 과정
                                                                                      40
                                                                                      10
                                                                                                 DC 성분은 이전
                                                                                       3         블록과의
                                                                                       0         차이 신호를 적용
                                                                                       0
98   92   95   80   75   82   68   50   591 106 -18 28 -34 14     18    3
                                                                                      -2
                                                                                                 (e.g 이전값=15)
97   91   94   79   74   81   67   49   35 0     0  0   0  0       0    0                                          110 11001
                                                                                       2
95   89   92   77   72   79   65   47    -1 0    0  0   0  0       0    0              0                           1011 1010
93   87   90   75   70   77   63   45    3   0   0  0   0  0       0    0              0             25               01 11
91   85   88   73   68   75   61   43    -1 0    0  0   0  0       0    0              0           0 10           11111000 01
89   83   86   71   66   73   59   41    0   0   0  0   0  0       0    0              0           0 3                01 01
87   81   84   69   64   71   57   39    -1 0    0  0   0  0       0    0              0           2 -2            11111001 0
85   79   82   67   62   69   55   37    0   0   0  0   0  0       0    0              0           0 2
                                                                                                                      1010
                                                                                      -1           7 -1
                                                                                     EOB            EOB

     8x8 블록


                              DCT           Quantizer             Zig-zag                    RLC            VLC

 입력된 영상                                                                                                                압축된 영상
 데이타                                      Quantization                                                    Huffman
                                                                                                                       데이타
                                             Table                                                         Table

                                                        40   10    -2       2   -1   0   0   0
                                                        3    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
                                                        0    0     0        0   0    0   0   0
                                                        0    0     0        0   0    0   0   0




     JPEG-부호화 (양자화)

          Quantizer (1/2)




                        ⎡     DCT Coeff.         ⎤
     Quantized Coeff. = ⎢                        ⎥
                        ⎢ Quantized Table Coeff. ⎥




                                                                                                                                16
JPEG-부호화 (양자화)

 Quantizer (2/2)
     Quantizer Table은 사용자가 임의로 정할수 있음
     일반적으로 사용되는 Table



            ⎡16   11 10 16 24   40   51   61 ⎤               ⎡17   18 24 47 99 99 99 99⎤
            ⎢12                                              ⎢18   21 26 66 99 99 99 99⎥
                  12 14 19 26   58   60   55 ⎥               ⎢                         ⎥
            ⎢                                ⎥
            ⎢14   13 16 24 40   57   69   56
                                             ⎥               ⎢24   13 26 56 99 99 99 99⎥
                                                             ⎢47   66 99 99 99 99 99 99⎥
  Q(u, v) = ⎢
             14   17 22 29 51   87   80   62 ⎥
            ⎢18                                  QC (u, v) = ⎢                           ⎥
                  22 37 56 68 109 103     77 ⎥
            ⎢24                              ⎥               ⎢99   99 99 99 99 99 99 99⎥
            ⎢
                  35 55 64 81 104 113     92
                                             ⎥               ⎢99   99 99 99 99 99 99 99⎥
            ⎢49   64 78 87 103 121 120    101⎥               ⎢                           ⎥
            ⎢72                           99 ⎥               ⎢99   99 99 99 99 99 99 99⎥
            ⎣     92 95 98 112 110 103       ⎦               ⎢99   99 99 99 99 99 99 99⎥
                                                             ⎣                         ⎦

                     for Y signal                              for color (or Cb/Cr) signal




JPEG-부호화 (Zig-Zag 스캐닝)

 Zig-Zag Scanning




                                                                                             17
JPEG -부호화 (DCT DC 계수의 RLC)

  DCT의 DC 계수의 부호화 테이블

           범위                 DC계수         총 코드      기본 Huffman     Encoded
                             차이 범주        길이(bits)      코드           Value
              0                  0          3          010

           -1,1                 1           4           011        1=1, -1=0

         -3,-2,2,3              2           5           100         2=10, 3=11,
                                                                   -2=01, -3=00
      -7, …,-4,4,…,7            3           6           00          4=100, 5=101, 6=110, 7=111
                                                                   -4=011, -5=010, -6=001, -7=000
     -15, …,-8,8,…,15           4           7           101

    -31, …,-16,16,…,31          5           8           110

    -63, …,-32,32,…,63          6           10         1110

   -127, …,-64,64,…,127         7           12         11110

  -255, …,-128,128,…,255        8           14        111110

  -511, …,-256,256,…,511        9           16        1111110

 -1023, …,-512,512,…,1023       A           18       11111110

-2047, …,-1024,1024,…,2047      B           20       111111110




JPEG -부호화 (DCT DC 계수의 RLC)

  DCT의 DC 계수의 부호화
        DC 신호는 linear DPCM 으로 양자화됨
        example

                                                …
                                    12, 13, 11, 11, 10, …         양자화된 DCT DC 계수값들


                                    12, 1, -2, 0, -1, …           linear DPCM 변환된 값들


                                    DC값 범주 기본코드                    추가코드           총코드길이
                                    12           4      101        1100                    7
                                      1          1      011        1                       4
                                     -2          2      100        01                      5
                                      0          0      010                                3
                                     -1          1      011        0                       4
                                    …




                                                                                                    18
JPEG -부호화 (DCT DC 계수의 RLC)

 Example (cont'd)
     앞의 예에서 DC값이 12에 대한 부호화 값 1011100 을 구하는 과정
        • DC 계수 부호화 테이블에서 12는 범주가 4에 속해있음
        • 범주=4에 대하여는 총 비트를 7 비트 할당하는데
        • 이 7 비트중 3개의 비트는 101 로 고정되어 있고
        • 나머지 4 비트는 범위내의 값들을 구분함
            – DC값을 이진수로 나타내었을때의 하위 4 비트로 나타냄
            – 음수의 경우는 양수의 이진수의 0을 1로, 1을 0으로 바꾸어 표현 (one's
              complement)
            – 12는 이진수로 1100 이 됨 (참고로, -12는 0011 임)
        • 따라서, 12의 부호화 결과는 101 1100 (총 7 비트) 가 됨.

       범위             DC계수  총 코드 기본 Huffman                          Encoded Value
                     차이 범주 길이(bits) 코드


  -15, …,-8,8,…,15     4           7             101   -15=0000, -14=0001, ...,-8=0111,
                                                       8=1000, 9=1001,...,12=1100, ...15=1111




JPEG -부호화 (DCT AC 계수의 RLC)

 DCT AC 계수의 범주 테이블

                               AC 계수 범위                범주

                                       0               N/A

                                   -1,1                 1

                                 -3,-2,2,3              2

                              -7, …,-4,4,…,7            3

                             -15, …,-8,8,…,15           4

                            -31, …,-16,16,…,31          5

                            -63, …,-32,32,…,63          6

                           -127, …,-64,64,…,127         7

                        -255, …,-128,128,…,255          8

                        -511, …,-256,256,…,511          9

                       -1023, …,-512,512,…,1023         A

                      -2047, …,-1024,1024,…,2047       N/A




                                                                                                19
JPEG -부호화 (DCT AC 계수의 RLC)

 DCT AC 계수의 부호화 테이블
   AC 계수 범주에 대한 연속 길이별 허프만 부호 테이블 (1)

   연속길이/       기본 부호            길이        연속길이/       기본 부호            길이    연속길이/       기본 부호           길이
    범주                                     범주                                 범주
     0/0   1010(=EOB)            4         3/1    111010                7     6/1    1111011              8
    0/1    00                    3         3/2    111110111            11     6/2    11111111000         13
    0/2    01                    3         3/3    11111110111          14     6/3    1111111110100111    19
    0/3    100                   6         3/4    1111111110010000     20     6/4    1111111110101000    20
    0/4    1011                  8         3/5    1111111110010001     21     6/5    1111111110101001    21
    0/5    11010                10         3/6    1111111110010010     22     6/6    1111111110101010    22
    0/6    111000               12         3/7    1111111110010011     23     6/7    1111111110101011    23
    0/7    1111000              14         3/8    1111111110010100     24     6/8    1111111110101100    24
    0/8    1111110110           18         3/9    1111111110010101     25     6/9    1111111110101101    25
    0/9    1111111110000010     25         3/A    1111111110010110     26     6/A    1111111110101110    26
    0/A    1111111110000011     26         4/1    111011                7     7/1    11111001             9
    1/1    1100                  5         4/2    1111111000           12     7/2    11111111001         13
    1/2    111001                8         4/3    1111111110010111     19     7/3    1111111110101111    19
    1/3    1111001              10         4/4    1111111110011000     20     7/4    1111111110110000    20
    1/4    111110110            13         4/5    1111111110011001     21     7/5    1111111110110001    21
    1/5    11111110110          16         4/6    1111111110011010     22     7/6    1111111110110010    22
    1/6    1111111110000100     22         4/7    1111111110011011     23     7/7    1111111110110011    23
    1/7    1111111110000101     23         4/8    1111111110011100     24     7/8    1111111110110100    24
    1/8    1111111110000110     24         4/9    1111111110011101     25     7/9    1111111110110101    25
    1/9    1111111110000111     25         4/A    1111111110011110     26     7/A    1111111110110110    26
    1/A    1111111110001000     26         5/1    1111010               8     8/1    1010(=EOB)           9
    2/1    11011                 6         5/2    1111111001           12     8/2    00                  17
    2/2    11111000             10         5/3    1111111110011111     19     8/3    01                  19
    2/3    1111110111           13         5/4    1111111110100000     20     8/4    100                 20
    2/4    1111111110001001     20         5/5    1111111110100001     21     8/5    1011                21
    2/5    1111111110001010     21         5/6    1111111110100010     22     8/6    11010               22
    2/6    1111111110001011     22         5/7    1111111110100011     23     8/7    111000              23
    2/7    1111111110001100     23         5/8    1111111110100100     24     8/8    1111000             24
    2/8    1111111110001101     24         5/9    1111111110100101     25     8/9    1111110110          25
    2/9    1111111110001110     25         5/A    1111111110100110     26     8/A    1111111110000010    26
    2/A    1111111110001111     26




JPEG -부호화 (DCT AC 계수의 RLC)

 DCT AC 계수의 부호화 테이블 (cont’d)
   AC 계수 범주에 대한 연속 길이별 허프만 부호 테이블 (2)

    연속길이/         기본 부호          길이        연속길이/        기본 부호          길이    연속길이/         기본 부호         길이
     범주                                     범주                                범주
     9/1     1111111110000011        10     C/1     1111111010          11    F/0     11111111011        12
     9/2     1100                    18     C/2     1111111111011010    18    F/1     1111111111110101   17
     9/3     111001                  19     C/3     1111111111011011    19    F/2     1111111111110110   18
     9/4     1111001                 20     C/4     1111111111011100    20    F/3     1111111111110111   19
     9/5     111110110               21     C/5     1111111111011101    21    F/4     1111111111111000   20
     9/6     11111110110             22     C/6     1111111111011110    22    F/5     1111111111111001   21
     9/7     1111111110000100        23     C/7     1111111111011111    23    F/6     1111111111111010   22
     9/8     1111111110000101        24     C/8     1111111111100000    24    F/7     1111111111111011   23
     9/9     1111111110000110        25     C/9     1111111111100001    25    F/8     1111111111111100   24
     9/A     1111111110000111        26     C/A     1111111111100010    26    F/9     1111111111111101   25
     A/1     1111111110001000        10     D/1     11111111010         12    F/A     1111111111111110   26
     A/2     11011                   18     D/2     1111111111100011    18
     A/3     11111000                19     D/3     1111111111100100    19
     A/4     1111110111              20     D/4     1111111111100101    20
     A/5     1111111110001001        21     D/5     1111111111100110    21
     A/6     1111111110001010        22     D/6     1111111111100111    22
     A/7     1111111110001011        23     D/7     1111111111101000    23
     A/8     1111111110001100        24     D/8     1111111111101001    24
     A/9     1111111110001101        25     D/9     1111111111101010    25
     A/A     1111111110001110        26     D/A     1111111111101011    26
     B/1     1111111110001111        10     E/1     111111110110        13
     B/2     111010                  18     E/2     1111111111101100    18
     B/3     111110111               19     E/3     1111111111101101    19
     B/4     11111110111             20     E/4     1111111111101110    20
     B/5     1111111110010000        21     E/5     1111111111101111    21
     B/6     1111111110010001        22     E/6     1111111111110000    22
     B/7     1111111110010010        23     E/7     1111111111110001    23
     B/8     1111111110010011        24     E/8     1111111111110010    24
     B/9     1111111110010100        25     E/9     1111111111110011    25
     B/A     1111111110010101        26     E/A     1111111111110100    26




                                                                                                              20
JPEG -부호화 (DCT AC 계수의 RLC)

 DCT AC 계수의 부호화 예


                                                                       Zig-Zag 스캔된
                                     -      0 0     0 0                DCT 계수값들

                                                                       RLC된 DCT AC
               (0,6),(0,7),(2,3),(2,2),(0,-2),(0,0)
                                                                       계수값들
                                                                       * zig-zag scan된
                                                                       순서에 주의
   RLC값 길이/범주 기본코드                       추가코드       총코드길이
   (0,6)       0/3           100      110                 6
   (0,7)       0/3           100      111                 6            Huffman Code가
                                                                       적용된 DCT AC
   (2,3)       2/2           11111000 11                  10
                                                                       계수값들
   (2,2)       2/2           11111000 10                  10
   (0,-2)      0/2           01       1                   3
   (0,0)       0/0           1010                         4




JPEG -부호화 (DCT AC 계수의 RLC)

 DCT AC 계수의 부호화 예 (cont'd)
   앞의 예에서 RLC (0,7)의 부호화 값 100 101 을 구하는 과정
    • (0,7) 의 의미는 run의 길이는 0이고, 값은 7을 의미함
    • DCT AC 계수의 범주 테이블에서 7에 해당하는 범주는 3이므로
    • AC계수의 부호화 테이블에서는 연속길이/범주 = 0/3 을 참조하게됨
    • 총 6 비트중에 기본비트 100 의 3비트가 부여되고, 나머지는 AC계수값을
      이진수로 나타내었을때의 하위 3비트로서
         – -7=000, -6=001, -5=010, -4=011, 4=100, 5=101, 6=110, 7=111
         – 즉, 7의 경우에 111 이 부여됨
    • 따라서, 최종 부여되는 값은 100111이 됨


            AC 계수 범위          범주
                                                  연속길이/범주      기본 부호    길이
                  ...          ...                  …           …       …
                                                    0/3         100     6
            -7, …,-4,4,…,7      3
                                                    …           …       …
                  ...          ...




                                                                                         21
JPEG-부호화

     JPEG 부호화 과정


8x8 블록


                     DCT        Quantizer        Zig-zag   RLC     VLC

입력된 영상                                                                     압축된 영상
데이타                            Quantization                      Huffman
                                                                           데이타
                                  Table                           Table




JPEG-비트스트림 구조

     JPEG Syntax
영상크기, color space (CLUT, RGB, YCrCb), sampling
(4:2:2, 4:2:0, etc), JPEG mode (기본방식, 순차적,
점진적, 무손실등) 의 정보를 포함


       Huffman table(s),
       quantization table(s)



           오류복구,검출




                                                                                    22
JPEG-복호화

  JPEG 복호화 과정
          부호화 과정의 역과정을 따름


                                  DCT를 기반으로 한 디코더


                             디코더                   역양자화                       역방향 DCT

  압축된 영상
  데이터                                                                                                   복원된 영상
                                                                                                        데이터
                          Huffman                 양자화
                           Table                 테이블 정보




JPEG-복호화
 JPEG encoding (1/3)
         복호화의 예를 들기 위하여, 우선 원래의 8x8 블록을 JPEG
         부호화(encoding)하는 과정을 보이기로 함
         8x8 블록을 DCT하여 DCT 계수값들을 구함

                        8x8 image block                                                             DCT coefficients
              ⎡139   144 149 153 155 155 155 155⎤                                     ⎡1260    − 1 − 12 − 5  2 −2 −3     1⎤
              ⎢144                                                                    ⎢ − 23 − 17 − 6 − 3 − 3       0 − 1⎥
              ⎢      151 153 156 159 156 156 156⎥⎥                                    ⎢                         0         ⎥
              ⎢150   155 160 163 158 156 156 156⎥                                     ⎢ − 11 − 9 − 2      2  0 − 1 − 1 0⎥
              ⎢                                  ⎥                                    ⎢                                   ⎥
                                                                                         −7 −2
                                                                          F (u , v) = ⎢
                                                                                                      0   1  1  0   0 0⎥
 f ( j, k ) = ⎢
               159   161 162 160 160 159 159 159⎥
              ⎢159   160 161 162 162 155 155 155⎥                                     ⎢ −1 −1         1   2  0 −1    1 1⎥
              ⎢                                  ⎥                                    ⎢                                   ⎥
              ⎢161   161 161 161 160 157 157 157 ⎥                                    ⎢ 2       0     2   0 −1   1   1 − 1⎥
              ⎢162   162 161 163 162 157 157 157 ⎥                                    ⎢ −1      0     0 −1   0  2    1 − 1⎥
              ⎢                                  ⎥                                    ⎢                                   ⎥
              ⎢162
              ⎣      162 161 161 163 158 158 158⎥⎦                                    ⎢ −3
                                                                                      ⎣         2 −4 −2      2   1 − 1 0⎥ ⎦



                                                           forward DCT
                                          C (u )C (v)  7      7
                                                                                       (2 j + 1)uπ        (2k + 1)vπ
                             F (u, v) =
                                               4
                                                      ∑
                                                      j =0
                                                             ∑
                                                             k =0
                                                                    f ( j , k ) cos[
                                                                                            16
                                                                                                   ] cos[
                                                                                                              16
                                                                                                                     ]




                                                                                                                              23
JPEG-복호화

       JPEG encoding (2/3)
            DCT 계수들을 양자화테이블 Q(u,v)를 이용하여 양자화함
                 DCT coefficients                                                Quantized coefficients
            ⎡1260    − 1 − 12 − 5  2 −2 −3     1⎤                                   ⎡ 79 0 − 1 0 0 0 0 0⎤
            ⎢ − 23 − 17 − 6 − 3 − 3   0   0 − 1⎥                                    ⎢− 2 − 1 0 0 0 0 0 0⎥
            ⎢                                   ⎥                                   ⎢                    ⎥
            ⎢ − 11 − 9 − 2      2  0 − 1 − 1 0⎥                                     ⎢ − 1 − 1 0 0 0 0 0 0⎥
            ⎢                                   ⎥                                   ⎢                    ⎥
               −7 −2
F (u , v) = ⎢
                            0   1  1  0   0 0⎥
                                                                      F * (u , v) = ⎢
                                                                                       0 0 0 0 0 0 0 0⎥
            ⎢ −1 −1         1   2  0 −1    1 1⎥                                     ⎢ 0 0 0 0 0 0 0 0⎥
            ⎢                                   ⎥                                   ⎢                    ⎥
            ⎢ 2       0     2   0 −1   1   1 − 1⎥
                                                                                    ⎢ 0 0 0 0 0 0 0 0⎥
            ⎢ −1      0     0 −1   0  2    1 − 1⎥                                   ⎢ 0 0 0 0 0 0 0 0⎥
            ⎢                                   ⎥                                   ⎢                    ⎥
            ⎢ −3
            ⎣         2 −4 −2      2   1 − 1 0⎥ ⎦                                   ⎢ 0 0 0 0 0 0 0 0⎥
                                                                                    ⎣                    ⎦


                                               Quantization                     ⎡16   11 10 16 24   40   51   61 ⎤
                                                                                ⎢12   12 14 19 26   58   60   55 ⎥
                                                     ⎡ F (u , v ) ⎤             ⎢                               ⎥
                                         F (u , v) = ⎢
                                           *
                                                                  ⎥
                                                     ⎣ Q (u , v) ⎦              ⎢14   13 16 24 40   57   69   56
                                                                                                                 ⎥
                                                                      Q(u, v) = ⎢
                                                                                 14   17 22 29 51   87   80   62 ⎥
               ex. 1260/16 = 78.75 → 79                                         ⎢18   22 37 56 68 109 103 77 ⎥
                   -23/12 = - 1.9166 → -2                                       ⎢24   35 55 64 81 104 113 92
                                                                                                                ⎥
                                                                                ⎢                               ⎥
                                                                                ⎢49   64 78 87 103 121 120 101⎥
                                                                                ⎢72
                                                                                ⎣     92 95 98 112 110 103 99 ⎥
                                                                                                              ⎦




 JPEG-복호화

       JPEG encoding (3/3)
            양자화된 계수들을 zig-zag scan하여 RLC 부호화함
              • 압축률은 아래에 계산된 바와 같이 0.06625 임

               Quantized coefficients

                  ⎡ 79 0 − 1 0 0 0 0 0⎤                                       Zig-zag scan
                  ⎢− 2 − 1 0 0 0 0 0 0⎥
                  ⎢                    ⎥
                  ⎢ − 1 − 1 0 0 0 0 0 0⎥
                  ⎢                    ⎥                79, 0, –2, –1, –1, –1, 0, 0, –1, EOB
    F * (u , v) = ⎢
                     0 0 0 0 0 0 0 0⎥                → (9), (1,-2), (0,-1), (0,-1), (0,-1), (2,-1), (0,0)
                  ⎢ 0 0 0 0 0 0 0 0⎥
                  ⎢                    ⎥
                  ⎢ 0 0 0 0 0 0 0 0⎥                           (이전 block의 DC coeff. = 70 으로 가정)
                  ⎢ 0 0 0 0 0 0 0 0⎥
                  ⎢                    ⎥
                  ⎢ 0 0 0 0 0 0 0 0⎥
                  ⎣                    ⎦
                                                                        Entropy Coding (RLC)
                                               1011001 11100101 000 000 000 110110 1010

                         • 총 비트수 = 34 bits
                         • 비트율 = 34 bits/ 64 pixels = 0.53 bits/pixel
                         • 압축율 = 0.53 / 8 = 0.06625




                                                                                                                     24
JPEG-복호화

     JPEG decoding (1/3)
            앞에서 JPEG 부호화된 비트스트림으로 부터 8x8 image block을
            복호화하는 과정을 보이기로 함
            JPEG 부호화된 비트스트림을 decoding하고, 이를 인코딩할때와 동일한
            양자화테이블을 사용하여 역양자화함
               Encoded Bit Stream
1010111 11100101 000 000 000 110110 1010
                                                                                              Inverse Quantized Coeff.
                                           Entropy Decocing
                                                                                          ⎡1264     0 − 10 0 0 0 0 0⎤
                                                                                          ⎢ − 24 − 12    0 0 0 0 0 0⎥
                ⎡ 79 0 − 1 0 0 0 0 0⎤                                                     ⎢                         ⎥
                ⎢− 2 − 1 0 0 0 0 0 0⎥                                                     ⎢ − 14 − 13    0 0 0 0 0 0⎥
                ⎢                    ⎥                                                    ⎢                         ⎥
                ⎢ − 1 − 1 0 0 0 0 0 0⎥                                                         0    0    0 0 0 0 0 0⎥
                ⎢                    ⎥                                        F (u , v) = ⎢
                                                                              ˆ
                                                                                          ⎢ 0            0 0 0 0 0 0⎥
  F * (u , v) = ⎢
                   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 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⎥
                ⎣                    ⎦                 Inverse Quantization

                                                         F (u, v) = F * (u, v)Q(u, v)
                                                         ˆ




 JPEG-복호화
            JPEG 부호화된 비트스트림의 decoding 과정 (예)
                                              Encoded Bit Stream
           101100111100101000000000 110110 1010
                       9                    0 -2       -1        -1       -1              0 0 -1         EOB


           DC 계수 Tree                                           AC 계수 Tree
                                                                                                - DC 다음은 AC이므로
               0           1                                          1
                                                                 0                              -AC 첫번째 비트 부터 AC 계수 tree를
                                                                                                 따라 내려가면 111001은 run=1,
     0                         0       1                                      1                  catetory=2이고, 총 비트수는 8비트
               1                                            0
                                                                                                 임을 알게 됨
                                                                          0           1         -111001 까지 6 비트가
           0       1       0       1
                                                                                                 사용되었으므로, 뒤의 2 비트인 01 을
                                                                          1           0          읽어서 AC 계수는 -2로 하고, run의
   (3,6)                                                                                         길이가 1이므로, decoding 된 값은 0,
                                                       (0/1,3)
                                                                              1                  -2 가 됨
         (0,3) (1,4)                                                              0
                   (2,5) (4,7)                                                                                   ⎡ 79 0 − 1   0 0 0 0 0⎤
                                                                                          1                      ⎢− 2 − 1 0   0 0 0 0 0⎥
-시작은 DC 계수부터 시작하므로                                                                                               ⎢                     ⎥
                                                                                                                 ⎢ −1 −1 0    0 0 0 0 0⎥
-비트스트림의 첫번째 비트 부터 DC 계수 tree를 따라                                                                                 ⎢                     ⎥
                                                                      (2/1,6)
                                                                                                   F * (u , v) = ⎢
                                                                                                                    0 0 0     0 0 0 0 0⎥
 내려가면 101은 catetory 4이고 총 비트수는 7비트                                                                               ⎢ 0 0 0      0 0 0 0 0⎥
 임을 알게 됨                                                                                                         ⎢                     ⎥
                                                                                                                 ⎢ 0 0 0      0 0 0 0 0⎥
                                                                                  (1/2,8)                        ⎢ 0 0 0
-101 까지 3 비트가 사용되었으므로, 뒤의 4 비트인                                                                                               0 0 0 0 0⎥
                                                                                                                 ⎢                     ⎥
 1001 을 읽어서 DC 계수는 9로 decoding 함                                                                                 ⎢ 0 0 0
                                                                                                                 ⎣            0 0 0 0 0⎥
                                                                                                                                       ⎦




                                                                                                                                           25
JPEG-복호화

     JPEG decoding (2/3)
             역양자화된 블록을 IDCT하여 복호화된 8x8 이미지 블록을 구함

               Inverse Quantized Coeff.                                              decoded 8x8 block
            ⎡1264     0 − 10 0 0 0 0 0⎤                                 ⎡144   146 149 152 154              156 156 156⎤
            ⎢ − 24 − 12    0 0 0 0 0 0⎥                                 ⎢148
            ⎢                         ⎥                                 ⎢      150 152 154 156              156 156 156⎥⎥
            ⎢ − 14 − 13    0 0 0 0 0 0⎥                                 ⎢155   156   157   158    158       157 156 155⎥
            ⎢                         ⎥                                 ⎢                                               ⎥
                 0    0    0 0 0 0 0 0⎥
                                                           f ( j, k ) = ⎢
                                                                         160   161   161   162    161      1159 157 155⎥
F (u , v) = ⎢
ˆ                                                          ˆ
                                                                        ⎢163
            ⎢ 0       0    0 0 0 0 0 0⎥                                        163   164   163    162       160 158 156⎥
            ⎢                         ⎥                                 ⎢                                               ⎥
            ⎢ 0       0    0 0 0 0 0 0⎥                                 ⎢163   163   164   164    162       160 158 157 ⎥
                                                                        ⎢160                                161 159 158⎥
            ⎢ 0       0    0 0 0 0 0 0⎥                                 ⎢
                                                                               161   162   162    162
                                                                                                                        ⎥
            ⎢                         ⎥                                 ⎢158
                                                                        ⎣      159   161   161    162       161 159 158⎥⎦
            ⎢ 0
            ⎣         0    0 0 0 0 0 0⎥
                                      ⎦




                                                     Inverse DCT
                                       1 7 7                       ⎛ (2 j + 1)uπ ⎞ ⎛ (2k + 1)vπ ⎞
                          f ( j , k ) = ∑∑ C (u )C (v) F (u, v) cos⎜
                          ˆ                            ˆ                         ⎟ cos⎜         ⎟
                                       4 u =0 v =0                 ⎝      16     ⎠ ⎝     16     ⎠




JPEG-복호화

     JPEG decoding (3/3)
             복호화된 블록과 원래의 블록을 비교할때, 에러가 매우 작게
             나타남을 볼수 있음
                      original 8x8 block                               JPEG encode/decoded 8x8 block
             ⎡139   144 149 153 155 155 155 155⎤                        ⎡144   146 149 152 154              156 156 156⎤
             ⎢144                                                       ⎢148                                156 156 156⎥
             ⎢      151 153 156 159 156 156 156⎥⎥                       ⎢      150 152 154 156                          ⎥
             ⎢150   155 160 163 158 156 156 156⎥                        ⎢155   156   157   158    158       157 156 155⎥
             ⎢                                  ⎥                       ⎢                                               ⎥
                                                           f ( j, k ) = ⎢
                                                                         160   161   161   162    161      1159 157 155⎥
f ( j, k ) = ⎢
              159   161 162 160 160 159 159 159⎥           ˆ
             ⎢159                                                       ⎢163                                160 158 156⎥
                    160 161 162 162 155 155 155⎥                        ⎢
                                                                               163   164   163    162
                                                                                                                        ⎥
             ⎢                                  ⎥
             ⎢161   161 161 161 160 157 157 157 ⎥                       ⎢163   163   164   164    162       160 158 157 ⎥
             ⎢162                                                       ⎢160                                161 159 158⎥
                    162 161 163 162 157 157 157 ⎥                       ⎢
                                                                               161   162   162    162
                                                                                                                        ⎥
             ⎢                                  ⎥
             ⎢162   162 161 161 163 158 158 158⎥                        ⎢158
                                                                        ⎣      159   161   161    162       161 159 158⎥⎦
             ⎣                                  ⎦


                                               ⎡− 5 − 2    0   1   1 − 1 − 1 − 1⎤
                                               ⎢− 4    1   1   2   3   0   0 0⎥
                                               ⎢                                ⎥
                    difference   (error) ⎢ − 5 − 1 3 5 0 − 1 0 1⎥
                                               ⎢                                ⎥
                                                 −1        1 − 2 −1
                                  e( j , k ) = ⎢
                                                       0               0   2 4⎥
                                               ⎢− 4 − 3 − 3 − 1    0 − 5 − 3 − 1⎥           e( j , k ) = f ( j , k ) − f ( j , k )
                                                                                                                       ˆ
                                               ⎢                                ⎥
                                               ⎢ − 2 − 2 − 3 − 3 − 2 − 3 − 1 0⎥
                                               ⎢ 2     1 −1    1   0 − 4 − 2 − 1⎥
                                               ⎢                                ⎥
                                               ⎢ 4
                                               ⎣       3   0   0   1 − 3 − 1 0⎥ ⎦




                                                                                                                                     26
JPEG-Samples

   * Uncompressed image
        24 bits/pixel




* JPEG 영상의 품질은 양자화                    Full Quality                          Medium Quality
  테이블의 양자화 스텝 크기를                   8.25 bits/pixel                          1 bits/pixel
  조정함으로써 가능해짐.
* 양자화 스텝 크기가 커지게
  되면, DCT 계수값들중에서
  값이 작아지면 0으로 되어,
  고주파수 영역의 값들이
  대부분 0으로 됨
* 고주파수 영역의 계수들이
  무시되면, 영상의 윤곽선
  부분이 많이 흐려지게 되고,
  블록현상이 나타나게 됨


                                  Low Quality                               Lowest Quality
                                 0.75 bits/pixel                            0.13 bits/pixel
                               참조) http://en.wikipedia.org/wiki/JPEG#cite_note-2




 Motion-JPEG

    Motion-JPEG
         비표준 (non-standardized)의 동영상 압축 방법
         동영상의 각 화면을 JPEG으로 부호화함.
           • 압축율은 JPEG과 동일
           • 시간적 중복성 제거 안함
              – 개별 회사마다 독자적 '움직임 검출'로 보완하는 추세
           • 프레임 단위로 편집 용이
              – 비디오 편집용
              – 보안 감시용
         JPEG 부호화기에 버퍼를 추가하여 비트율을 조절.




                          독립된 JPEG 인코딩




                                                                                              27
JPEG2000 - JPEG의 한계

 JPEG의 한계
   저조한 압축 성능
    • 0.25 bpp(bits per pixel)이하에서 unacceptable quality
   Lossless와 Lossy 압축 방식이 단일화 되어 있지 않음
    • Lossy JPEG (IS 10918-1)
    • Lossles JPEG-LS (IS 14495-1)
   64K x 64K 보다 작은 이미지만 압축 가능
   single decompression 알고리즘을 갖고 있지 않음
     • 44 application-specific modes of operation
   잡음이 있는 채널 전송시에 발생 가능한 비트 에러에 대하여 고려하고
   있지 않음
   자연적인(natural) 영상을 주 대상으로 하고 있으며, 컴퓨터에서
   인공으로 만들어진 영상들에는 최적화 되어있지 않음
   Gray 또는 bi-level (흑백의 text)으로 작성된 compound document와
   같은 이미지에 대하여는 부적합.




JPEG2000
 JPEG2000 개요
   정지영상 압축의 통합 기능 제공
    • 기존의 JPEG에 다양한 기능을 종합한 차세대 정지 영상 규격
    • ITU-R SG8과 ISO/IEC JTC1/SC29/WG1에서 공동으로 표준화를
      수행하면서, License free로 추진
   Unified New System for Still Images with
    • different types (bi-level, gray-level, color)
         – 2색조 영상에서 부터 컬러 영상까지 부호화 할수 있도록 각
           컬러성분에 1비트에서 16비트까지 할당
    • different characteristics (natural images, scientific, medical, remote
      sensing imagery, text, rendered graphics)
         – 자연영상을 비롯한 팩스, 의료, 영상등의 다양한 형태의 영상에 적용
    • different imaging models (client/server, real-time transmission, image
      library archival, limited buffer and bandwidth resources, etc.)
         – 유/무선 통신환경에 적합하도록 전송오류에 강인한 특징 제공
   기존의 표준화 방식들에 비하여 월등한 낮은 비트율(0.25
   pbb이하) 에서의 향상된 성능을 보여줌
   현재의 JPEG 표준과 호환




                                                                               28
JPEG2000 - 응용 분야

 JPEG2000의 응용 분야
   Internet
   Digital Photography
   Medical Imaging
   Wireless imaging
   Document imaging
   Pre-Press
   Remote sensing and GIS
   Cultural Heritage
   Scientific and Industrial
   Digital Cinema
   Image archives and databases
   Surveillance
   Printing and scanning
   Facsimile




JPEG2000 - 특징

 JPEG2000 특징
   High compression efficiency
   Lossless colour transformations
   Lossy and lossless coding in one algorithm
   Embedded lossy to lossless coding
   Progressive by resolution and quality
   Static and dynamic Region-of-Interest (ROI)
   Error resilience
   Visual (fixed and progressive) coding
   Multiple component images
   Block and line based transforms
   Compressed image manipulation methods




                                                 29
JPEG2000 - 개선된 기능 예

 JPEG2000 Features : Region-of-Interest (ROI)




JPEG2000 - 기본 부호화 구조

 Basic Coding Scheme
   wavelet 기반의 부호화
     • JPEG에서는 DCT를 사용하여 부호화함




      Wavelet      Scan                   Entropy
                             Quantizer
     Transform   Algorithm                Coding


                                Rate
                             Allocation




                                                    30
JPEG2000 - 성능

 성능비교




JPEG2000 - 표준 문서 구조

 Structure of JPEG2000 Standard
   Part 1, Core coding system
    • intended as royalty and license-fee, NOT patent-free
   Part 2, Extensions
    • adds more features and sophistication to the core
   Part 3, Motion JPEG 2000
   Part 4, Conformance
   Part 5, Reference software
    • Java and C implementations are available
   Part 6, Compound image file format
    • document imaging, for pre-press and fax-like applications, etc.




                                                                        31
JPEG2000 - 표준 문서 구조

 Structure of JPEG2000 Standard (cont’d)
   Part 7
     • has been abandoned
   Part   8, JPSEC (security aspects)
   Part   9, JPIP (interactive protocols and API)
   Part   10, JP3D (volumetric imaging)
   Part   11, JPWL (wireless applications)
   Part   12, ISO Base Media File Format (common with MPEG-4)




  참조: http://www.jpeg.org/jpeg2000




질의/응답




                                                                32

Weitere ähnliche Inhalte

Was ist angesagt?

5D Must Be Better Than 4D
5D Must Be Better Than 4D5D Must Be Better Than 4D
5D Must Be Better Than 4DTaiheon Choi
 
영화정보기술 권승환, 김윤성, 지현영5
영화정보기술 권승환, 김윤성, 지현영5영화정보기술 권승환, 김윤성, 지현영5
영화정보기술 권승환, 김윤성, 지현영5guest3b6f30d5
 
Ai summit 2020 in seoul in jun kim_ai models risk management_to share
Ai summit 2020 in seoul in jun kim_ai models risk management_to shareAi summit 2020 in seoul in jun kim_ai models risk management_to share
Ai summit 2020 in seoul in jun kim_ai models risk management_to shareIBM HongKong
 
Maso200708 Miss Pattern
Maso200708 Miss PatternMaso200708 Miss Pattern
Maso200708 Miss Patternkyutae.kang
 
Guideline for PR2.0
Guideline for PR2.0Guideline for PR2.0
Guideline for PR2.0Juny Lee
 
미코노미 2장
미코노미 2장미코노미 2장
미코노미 2장oganadang
 
Gps Technology
Gps TechnologyGps Technology
Gps Technologyvipik
 
GPS technology
GPS technologyGPS technology
GPS technologyvipik
 
Social media newsroom for corporate conversation
Social media newsroom for corporate conversationSocial media newsroom for corporate conversation
Social media newsroom for corporate conversationJuny Lee
 
Social Networks Study
Social Networks StudySocial Networks Study
Social Networks Studydelver
 
게임빌발표자료
게임빌발표자료게임빌발표자료
게임빌발표자료kevin han
 
저작권법(09 1)01
저작권법(09 1)01저작권법(09 1)01
저작권법(09 1)01seabird33
 
Music Box Web Site Creation and Marketing Plan
Music Box Web Site Creation and Marketing PlanMusic Box Web Site Creation and Marketing Plan
Music Box Web Site Creation and Marketing PlanTim Lu
 
196 Ch
196 Ch196 Ch
196 Chanjaan
 
Camcorders and Digital Cameras in Japan Market Research & Evaluation
Camcorders and Digital Cameras in Japan Market Research & EvaluationCamcorders and Digital Cameras in Japan Market Research & Evaluation
Camcorders and Digital Cameras in Japan Market Research & Evaluationhighersns
 
Hyperledger Meetup Korea #28 - HTS(Hedera Token Service), DeFi 스왑 및 유동성 프로토콜
Hyperledger Meetup Korea #28 - HTS(Hedera Token Service), DeFi 스왑 및 유동성 프로토콜Hyperledger Meetup Korea #28 - HTS(Hedera Token Service), DeFi 스왑 및 유동성 프로토콜
Hyperledger Meetup Korea #28 - HTS(Hedera Token Service), DeFi 스왑 및 유동성 프로토콜Hyperledger Korea User Group
 

Was ist angesagt? (20)

5D Must Be Better Than 4D
5D Must Be Better Than 4D5D Must Be Better Than 4D
5D Must Be Better Than 4D
 
영화정보기술 권승환, 김윤성, 지현영5
영화정보기술 권승환, 김윤성, 지현영5영화정보기술 권승환, 김윤성, 지현영5
영화정보기술 권승환, 김윤성, 지현영5
 
Ai summit 2020 in seoul in jun kim_ai models risk management_to share
Ai summit 2020 in seoul in jun kim_ai models risk management_to shareAi summit 2020 in seoul in jun kim_ai models risk management_to share
Ai summit 2020 in seoul in jun kim_ai models risk management_to share
 
Maso200708 Miss Pattern
Maso200708 Miss PatternMaso200708 Miss Pattern
Maso200708 Miss Pattern
 
mj MANIAL
mj MANIALmj MANIAL
mj MANIAL
 
Guideline for PR2.0
Guideline for PR2.0Guideline for PR2.0
Guideline for PR2.0
 
미코노미 2장
미코노미 2장미코노미 2장
미코노미 2장
 
Gps Technology
Gps TechnologyGps Technology
Gps Technology
 
GPS technology
GPS technologyGPS technology
GPS technology
 
Social media newsroom for corporate conversation
Social media newsroom for corporate conversationSocial media newsroom for corporate conversation
Social media newsroom for corporate conversation
 
최종 Google3
최종 Google3최종 Google3
최종 Google3
 
Social Networks Study
Social Networks StudySocial Networks Study
Social Networks Study
 
게임빌발표자료
게임빌발표자료게임빌발표자료
게임빌발표자료
 
저작권법(09 1)01
저작권법(09 1)01저작권법(09 1)01
저작권법(09 1)01
 
Music Box Web Site Creation and Marketing Plan
Music Box Web Site Creation and Marketing PlanMusic Box Web Site Creation and Marketing Plan
Music Box Web Site Creation and Marketing Plan
 
196 Ch
196 Ch196 Ch
196 Ch
 
Camcorders and Digital Cameras in Japan Market Research & Evaluation
Camcorders and Digital Cameras in Japan Market Research & EvaluationCamcorders and Digital Cameras in Japan Market Research & Evaluation
Camcorders and Digital Cameras in Japan Market Research & Evaluation
 
웹웹
 
Hyperledger Meetup Korea #28 - HTS(Hedera Token Service), DeFi 스왑 및 유동성 프로토콜
Hyperledger Meetup Korea #28 - HTS(Hedera Token Service), DeFi 스왑 및 유동성 프로토콜Hyperledger Meetup Korea #28 - HTS(Hedera Token Service), DeFi 스왑 및 유동성 프로토콜
Hyperledger Meetup Korea #28 - HTS(Hedera Token Service), DeFi 스왑 및 유동성 프로토콜
 
인터넷개요
인터넷개요인터넷개요
인터넷개요
 

03 Image

  • 1. Multimedia Communications Chapter 3 Image Compression Techniques 아주대학교 정보및컴퓨터공학부 모바일 멀티미디어통신 연구실 (http://mmcn.ajou.ac.kr) 노병희 (bhroh@ajou.ac.kr) Contents Binary Image Compression CCITT Group 3/4 for FAX JPEG Image Compression JPEG (Joint Photographic Expert Group) M-JPEG (Motion JPEG) JPEG-2000 1
  • 2. 영상 부호화 방법 주요 영상 부호화 국제 표준 기법 표준 기구 표준(권고) 번호 표준화 내용 표준화 시기 T4, T6 이진영상 (facsimile) 부호화 1980/1984 T.81 (JPEG) 정지영상 부호화 1992 ITU-T T.82 (JBIG) 이진영상 부호화 1993 H.261 P64kbps 통신용 영상 부호화 1990 H.262 (MPEG-2) 고품질 영상 범용 부호화 1995 H.263 저속 통신용 영상 부호화 1995/1998(v2) 10918-1(JPEG) 정지영상 부호화 1992 11544(JBIG) 이진영상 부호화 1993 11172-2(MPEG-1) 저장 미디어용 영상 부호화 1993 ISO/IEC 13818-2(MPEG-2) 고품질 영상 범용 부호화 1994 영상 부호화 및 조작과 14496-2(MPEG-4) 1999 관련한 다양한 기능 제공 멀티미디어 정보를 검색하기 MPEG-7 2001 위한 표준화된 서술 방법 전 자 상 거 래 와 관 련 된 멀티 미디어 MPEG-21 콘텐츠의 제작부터 소비까지 전 2002 과정에 사용될 통합된 국제표준 3.1 Binary Image Compression 2
  • 3. 팩시밀리를 위한 이진 영상 압축 방법 Facsimile Machine Principles scanned (digitized) image 팩시밀리를 위한 이진 영상 압축 방법 Scanning horizontal scanning direction scanning line vertical scanning direction 1728 bits total bits = B 1728 bits 1,978,560 1145 pixel data of the scan line from above lines black run black run of 3 bits of 4 bits white run white run white run standard 8.5x11 document of 8 bits of 5 bits of 1708 bits 3
  • 4. 팩시밀리를 위한 이진 영상 압축 방법 Facsimile 문서의 특징 Binary Image • 0 과 1의 값을 갖는 pixel들로 구성되는 흑백 스캔된 영상 팩시밀리를 위한 ITU-T 영상 압축 표준 방법 T2 (Group 1) & T3 (Group 2) : Analog 방식 T4 (Group 3) & T6 (Group 4) : Digial 방식 References • G3: ITU-T Recommendation T.4, “Standardization of Group 3 Facsimile Apparatus for Document Transmission,” 93. 3. • G4: ITU-T Recommendation T.6, “Facsimile Coding Scheme and Control Functions for Group 4 Facsimile Apparatus”. 팩시밀리를 위한 이진 영상 압축 방법 G3와 G4 Fax 방식의 차이점 G3 Fax • 1차원 RLC(Run Length Coding) 기법 사용 • 2차원 RLC 기법 선택 적용 G4 Fax • G3의 2차원 RLC 사용 • G3에서 사용하던 오류 제어를 위한 부가 정보를 줄임으로써 압축율을 30% 정도 개선함 – G4 Fax : ISDN과 같은 전송 오류가 적은 하부 통신 기반을 대상으로 함 – G3 Fax : 일반 전화망을 대상으로 함 4
  • 5. G3 1차원 RLC (Run Length Coding) 방법 G3 1차원 RLC 개요 각 line 마다 독립적인 RLC 사용 매 line의 끝마다 EOL 추가 • 각 line을 독립적으로 복호화 가능 • 전송오류 발생시, 발생된 오류는 해당 line으로 국한됨 마지막 line의 끝에는 6개의 EOL 추가 • End-of-Line (EOL): ‘0000 0000 0001’ G3 1차원 RLC (Run Length Coding) 방법 G3 1차원 RLC 기본 알고리즘 If run-length < 64, then use Terminating code (modified Huffman code) else use largest possible makeup code (not exceeding the run- length) and Terminating code (represents [run-length - makeup code]) End-of-Line (EOL): ‘0000 0000 0001’ • EOL indicates to terminate each line • EOL signals the first line of each new image (page) • six consecutive EOLs indicate the end of a sequence of images (pages) 5
  • 6. G3 1차원 RLC (Run Length Coding) 방법 G3 1차원 RLC 예 다음의 image를 G3 1차원 RLC로 나타내시오. Image: ... Data : 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 ... 0 0 0 0 0 Runs : 8W 3B 5W 4B 1708W B 1728 bits 8W 3B 5W 4B 1708W G3 1차원 RLC (Run Length Coding) 방법 3B 5W 4B 8W 44W 6
  • 7. G3 1차원 RLC (Run Length Coding) 방법 G3 1차원 RLC (Run Length Coding) 방법 G3 1차원 RLC 예 Image: ... Data : 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 ... 0 0 0 0 0 Runs : 8W 3B 5W 4B 1708W Code : 10011 10 1100 011 01100000101101 다음 슬라이드 참조 7
  • 8. G3 1차원 RLC (Run Length Coding) 방법 Make-up Code 사용 예 흰색 pixel (white-run) 개수가 1708인 데이터의 코딩 • 1708 = 1664 + 44 이므로, • 1664개의 white-run을 나타내는 make-up code: 011000 • 44개의 white-run을 나타내는 termination code: 00101101 • 부호화된 코드 01100000101101 FAX Process Data Format 8
  • 9. FAX Process Summary G3/G4 2차원 RLC G3 1차원 RLC의 한계 영상은 일반적으로 수직/수평 상관성을 모두 갖춤 1차원 RLC는 수평 상관성만 활용 가능 G3/G4 2차원 RLC 수직/수평 상관성을 모두 활용하여 압축 효율을 높이고자 함 9
  • 10. G4 Fax Encoding Group 4 Fax G3의 2차원 RLC 사용 전송 오류를 차단하기 위한 부가 정보의 제거를 통한 압축 효율 향상 • ISDN의 전송오류가 적은 환경을 대상으로 함 각 line의 끝을 나타내는 EOL을 전송하지 않음 JBIG JBIG (Joing Bi-level Image Coding Group) G3/G4 Fax 방식의 한계 • 흑백 영상에는 잘 적용되나, Half-tone을 갖는 영상에는 부적합 JBIG • G3/G4 방식의 한계를 극복하기 위하여 제안됨 • 점진적(Progressive) 전송이 가능 – 먼저 낮은 해상도로 부호화하여 전송하고, 점차적으로 높은 해상도로 전송함 • Arithmetic Coding 방법에 기초함 • 컬러 영상의 경우 각 컬러 평면에 대하여 적용 • MPEG-4의 모양 정보 부호화 방식에 적용 (HW 구현이 용이) JBIG2 • 압축율을 높이기 위하여 손실 부호화 방법을 적용 10
  • 11. Contents Binary Image Compression CCITT Group 3/4 for FAX JPEG Image Compression JPEG (Joint Photographic Expert Group) • encoding • decoding M-JPEG (Motion JPEG) JPEG-2000 3.2 JPEG Image Compression 11
  • 12. JPEG-특징 JPEG 개요 ISO/IEC JTC1에서 국제 표준으로 제정한 정지 화상 (still image)을 위한 압축/복원 알고리즘 • 1982년에 시작하여 1992년 표준으로 확정 4가지의 다른 압축 알고리즘 지원 • 순차적 부호화(Sequencial Encoding) – 각각의 영상 요소가 스캔되는 순서대로 부호화 • 점진적 부호화(Progressive Encoding) – 전송시간이 길 때 다중 스캔에 의해 대략적인 영상을 먼저 제공하고 점진적으로 세부적인 부호화 과정을 가진다 • 무손실 부호화(Lossless Encoding) – 본래의 영상과 동일하게 영상을 복원할 수 있도록 부호화 • 계층적 부호화(Hierarchical Encoding) – 영상을 사용자가 원하는 대로 지원할 수 있도록 여러 해상도로 부호화 JPEG -특징 순차적 부호화 (Sequential Encoding) 이미지가 스캔되는 순서에 따라 인코딩을 진행함 단순하고 효율적으로 대부분의 응용에서 적합하게 적용됨 12
  • 13. JPEG -특징 점진적 부호화 (Progressive Encoding) 영상을 여러개의 스캔으로 부호화함 • 예) 영상을 저주파와 고주파수까지 여러단계로 인코딩함 • 스캔 횟수가 증가함에 따라 영상의 품질이 개선됨 대역폭이 제한된 채널을 통한 영상 전송시 유용 • 사용자는 개략적 윤곽을 먼저 보고, 더 자세히 보길 원할시에 더 나은 영상을 계속 선택적으로 볼 수 있음 DC low medium high JPEG -특징 계층적 부호화 (Hierarchical Encoding) 영상을 여러 해상도(resolution)으로 부호화 함 • 장비의 능력에 따라 낮은 해상도에서 고 해상도까지를 융통성 있게 제공 가능. 160x120 pixels 320x240 pixels 640x480 pixels 13
  • 14. JPEG -특징 무손실 부호화(Lossless Encoding) DCT 변환과는 무관한 공간적 예측방법을 사용 • 픽셀과 같은 한 데이터 단위의 값을 인접한 데이터 단위와의 차이정보로 나타냄 • 차이정보를 허프만코딩을 사용하여 부호화 2:1 정도의 압축률을 얻을수 있음 JPEG -특징 JPEG 부호화의 특징 Color Space • RGB 또는 YCrCb 칼라 표현 방식 선택 가능 • Y와 (Cr, Cb) 에 각기 다른 양자화 테이블 사용. • 4:4:4, 4:2:2, 4:2:0 칼라 샘플링 선택 가능 최대 화면 크기 : 65,536 pixels x 65,536 pixels 부호화 • DCT를 사용하여 압축. – DC 성분에 대하여는 linear DPCM quantizer 사용 – AC 성분은 RLC 적용 • Modified-Huffman 방식을 사용하여 코드화함. • progressive 또는 interlaced scanning 방식 지원 • 채널 오류 관리 기능 14
  • 15. JPEG-특징 JPEG 방식의 분류 무손실 부호화 (lossless coding) 방식 • 압축, 복원의 과정을 거쳐도 원래의 정보를 보존 가능 • 압축률이 낮음 • 화면내의 공간적 예측부호화 (predictive coding) 방식을 사용함 손실 부호화 (lossy coding) 방식 • DCT 변환부호화 방법을 사용 • 복원시 왜곡이 생겨 원래데로 재생되지 않으나, 압축률이 높음 JPEG-특징 JPEG 손실부호화 방식의 분류 기본방식 (baseline) • 픽셀의 색 성분당 8비트인 입력영상에 대하여 적용 • 순차적부호화 모드를 사용 • 부호화시에는 허프만부호화 방식을 사용 • 일반적으로 JPEG이라함은 기본 방식을 의미함 확장방식 (extended) • 광범위한 응용에 적용 • 픽셀의 색 성분당 8비트 또는 12비트가 적용 가능 • 압축시에는 순차적부호화모드, 점진적부호화모드, 계츷적부호화 모드를 선택 적용 가능 • 엔트로피 부호화시에는 허프만부호 또는 산술부호중에서 응용에 따라 선택 가능 15
  • 16. JPEG-부호화 과정 JPEG 압축 과정 40 10 DC 성분은 이전 3 블록과의 0 차이 신호를 적용 0 98 92 95 80 75 82 68 50 591 106 -18 28 -34 14 18 3 -2 (e.g 이전값=15) 97 91 94 79 74 81 67 49 35 0 0 0 0 0 0 0 110 11001 2 95 89 92 77 72 79 65 47 -1 0 0 0 0 0 0 0 0 1011 1010 93 87 90 75 70 77 63 45 3 0 0 0 0 0 0 0 0 25 01 11 91 85 88 73 68 75 61 43 -1 0 0 0 0 0 0 0 0 0 10 11111000 01 89 83 86 71 66 73 59 41 0 0 0 0 0 0 0 0 0 0 3 01 01 87 81 84 69 64 71 57 39 -1 0 0 0 0 0 0 0 0 2 -2 11111001 0 85 79 82 67 62 69 55 37 0 0 0 0 0 0 0 0 0 0 2 1010 -1 7 -1 EOB EOB 8x8 블록 DCT Quantizer Zig-zag RLC VLC 입력된 영상 압축된 영상 데이타 Quantization Huffman 데이타 Table Table 40 10 -2 2 -1 0 0 0 3 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 JPEG-부호화 (양자화) Quantizer (1/2) ⎡ DCT Coeff. ⎤ Quantized Coeff. = ⎢ ⎥ ⎢ Quantized Table Coeff. ⎥ 16
  • 17. JPEG-부호화 (양자화) Quantizer (2/2) Quantizer Table은 사용자가 임의로 정할수 있음 일반적으로 사용되는 Table ⎡16 11 10 16 24 40 51 61 ⎤ ⎡17 18 24 47 99 99 99 99⎤ ⎢12 ⎢18 21 26 66 99 99 99 99⎥ 12 14 19 26 58 60 55 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢14 13 16 24 40 57 69 56 ⎥ ⎢24 13 26 56 99 99 99 99⎥ ⎢47 66 99 99 99 99 99 99⎥ Q(u, v) = ⎢ 14 17 22 29 51 87 80 62 ⎥ ⎢18 QC (u, v) = ⎢ ⎥ 22 37 56 68 109 103 77 ⎥ ⎢24 ⎥ ⎢99 99 99 99 99 99 99 99⎥ ⎢ 35 55 64 81 104 113 92 ⎥ ⎢99 99 99 99 99 99 99 99⎥ ⎢49 64 78 87 103 121 120 101⎥ ⎢ ⎥ ⎢72 99 ⎥ ⎢99 99 99 99 99 99 99 99⎥ ⎣ 92 95 98 112 110 103 ⎦ ⎢99 99 99 99 99 99 99 99⎥ ⎣ ⎦ for Y signal for color (or Cb/Cr) signal JPEG-부호화 (Zig-Zag 스캐닝) Zig-Zag Scanning 17
  • 18. JPEG -부호화 (DCT DC 계수의 RLC) DCT의 DC 계수의 부호화 테이블 범위 DC계수 총 코드 기본 Huffman Encoded 차이 범주 길이(bits) 코드 Value 0 0 3 010 -1,1 1 4 011 1=1, -1=0 -3,-2,2,3 2 5 100 2=10, 3=11, -2=01, -3=00 -7, …,-4,4,…,7 3 6 00 4=100, 5=101, 6=110, 7=111 -4=011, -5=010, -6=001, -7=000 -15, …,-8,8,…,15 4 7 101 -31, …,-16,16,…,31 5 8 110 -63, …,-32,32,…,63 6 10 1110 -127, …,-64,64,…,127 7 12 11110 -255, …,-128,128,…,255 8 14 111110 -511, …,-256,256,…,511 9 16 1111110 -1023, …,-512,512,…,1023 A 18 11111110 -2047, …,-1024,1024,…,2047 B 20 111111110 JPEG -부호화 (DCT DC 계수의 RLC) DCT의 DC 계수의 부호화 DC 신호는 linear DPCM 으로 양자화됨 example … 12, 13, 11, 11, 10, … 양자화된 DCT DC 계수값들 12, 1, -2, 0, -1, … linear DPCM 변환된 값들 DC값 범주 기본코드 추가코드 총코드길이 12 4 101 1100 7 1 1 011 1 4 -2 2 100 01 5 0 0 010 3 -1 1 011 0 4 … 18
  • 19. JPEG -부호화 (DCT DC 계수의 RLC) Example (cont'd) 앞의 예에서 DC값이 12에 대한 부호화 값 1011100 을 구하는 과정 • DC 계수 부호화 테이블에서 12는 범주가 4에 속해있음 • 범주=4에 대하여는 총 비트를 7 비트 할당하는데 • 이 7 비트중 3개의 비트는 101 로 고정되어 있고 • 나머지 4 비트는 범위내의 값들을 구분함 – DC값을 이진수로 나타내었을때의 하위 4 비트로 나타냄 – 음수의 경우는 양수의 이진수의 0을 1로, 1을 0으로 바꾸어 표현 (one's complement) – 12는 이진수로 1100 이 됨 (참고로, -12는 0011 임) • 따라서, 12의 부호화 결과는 101 1100 (총 7 비트) 가 됨. 범위 DC계수 총 코드 기본 Huffman Encoded Value 차이 범주 길이(bits) 코드 -15, …,-8,8,…,15 4 7 101 -15=0000, -14=0001, ...,-8=0111, 8=1000, 9=1001,...,12=1100, ...15=1111 JPEG -부호화 (DCT AC 계수의 RLC) DCT AC 계수의 범주 테이블 AC 계수 범위 범주 0 N/A -1,1 1 -3,-2,2,3 2 -7, …,-4,4,…,7 3 -15, …,-8,8,…,15 4 -31, …,-16,16,…,31 5 -63, …,-32,32,…,63 6 -127, …,-64,64,…,127 7 -255, …,-128,128,…,255 8 -511, …,-256,256,…,511 9 -1023, …,-512,512,…,1023 A -2047, …,-1024,1024,…,2047 N/A 19
  • 20. JPEG -부호화 (DCT AC 계수의 RLC) DCT AC 계수의 부호화 테이블 AC 계수 범주에 대한 연속 길이별 허프만 부호 테이블 (1) 연속길이/ 기본 부호 길이 연속길이/ 기본 부호 길이 연속길이/ 기본 부호 길이 범주 범주 범주 0/0 1010(=EOB) 4 3/1 111010 7 6/1 1111011 8 0/1 00 3 3/2 111110111 11 6/2 11111111000 13 0/2 01 3 3/3 11111110111 14 6/3 1111111110100111 19 0/3 100 6 3/4 1111111110010000 20 6/4 1111111110101000 20 0/4 1011 8 3/5 1111111110010001 21 6/5 1111111110101001 21 0/5 11010 10 3/6 1111111110010010 22 6/6 1111111110101010 22 0/6 111000 12 3/7 1111111110010011 23 6/7 1111111110101011 23 0/7 1111000 14 3/8 1111111110010100 24 6/8 1111111110101100 24 0/8 1111110110 18 3/9 1111111110010101 25 6/9 1111111110101101 25 0/9 1111111110000010 25 3/A 1111111110010110 26 6/A 1111111110101110 26 0/A 1111111110000011 26 4/1 111011 7 7/1 11111001 9 1/1 1100 5 4/2 1111111000 12 7/2 11111111001 13 1/2 111001 8 4/3 1111111110010111 19 7/3 1111111110101111 19 1/3 1111001 10 4/4 1111111110011000 20 7/4 1111111110110000 20 1/4 111110110 13 4/5 1111111110011001 21 7/5 1111111110110001 21 1/5 11111110110 16 4/6 1111111110011010 22 7/6 1111111110110010 22 1/6 1111111110000100 22 4/7 1111111110011011 23 7/7 1111111110110011 23 1/7 1111111110000101 23 4/8 1111111110011100 24 7/8 1111111110110100 24 1/8 1111111110000110 24 4/9 1111111110011101 25 7/9 1111111110110101 25 1/9 1111111110000111 25 4/A 1111111110011110 26 7/A 1111111110110110 26 1/A 1111111110001000 26 5/1 1111010 8 8/1 1010(=EOB) 9 2/1 11011 6 5/2 1111111001 12 8/2 00 17 2/2 11111000 10 5/3 1111111110011111 19 8/3 01 19 2/3 1111110111 13 5/4 1111111110100000 20 8/4 100 20 2/4 1111111110001001 20 5/5 1111111110100001 21 8/5 1011 21 2/5 1111111110001010 21 5/6 1111111110100010 22 8/6 11010 22 2/6 1111111110001011 22 5/7 1111111110100011 23 8/7 111000 23 2/7 1111111110001100 23 5/8 1111111110100100 24 8/8 1111000 24 2/8 1111111110001101 24 5/9 1111111110100101 25 8/9 1111110110 25 2/9 1111111110001110 25 5/A 1111111110100110 26 8/A 1111111110000010 26 2/A 1111111110001111 26 JPEG -부호화 (DCT AC 계수의 RLC) DCT AC 계수의 부호화 테이블 (cont’d) AC 계수 범주에 대한 연속 길이별 허프만 부호 테이블 (2) 연속길이/ 기본 부호 길이 연속길이/ 기본 부호 길이 연속길이/ 기본 부호 길이 범주 범주 범주 9/1 1111111110000011 10 C/1 1111111010 11 F/0 11111111011 12 9/2 1100 18 C/2 1111111111011010 18 F/1 1111111111110101 17 9/3 111001 19 C/3 1111111111011011 19 F/2 1111111111110110 18 9/4 1111001 20 C/4 1111111111011100 20 F/3 1111111111110111 19 9/5 111110110 21 C/5 1111111111011101 21 F/4 1111111111111000 20 9/6 11111110110 22 C/6 1111111111011110 22 F/5 1111111111111001 21 9/7 1111111110000100 23 C/7 1111111111011111 23 F/6 1111111111111010 22 9/8 1111111110000101 24 C/8 1111111111100000 24 F/7 1111111111111011 23 9/9 1111111110000110 25 C/9 1111111111100001 25 F/8 1111111111111100 24 9/A 1111111110000111 26 C/A 1111111111100010 26 F/9 1111111111111101 25 A/1 1111111110001000 10 D/1 11111111010 12 F/A 1111111111111110 26 A/2 11011 18 D/2 1111111111100011 18 A/3 11111000 19 D/3 1111111111100100 19 A/4 1111110111 20 D/4 1111111111100101 20 A/5 1111111110001001 21 D/5 1111111111100110 21 A/6 1111111110001010 22 D/6 1111111111100111 22 A/7 1111111110001011 23 D/7 1111111111101000 23 A/8 1111111110001100 24 D/8 1111111111101001 24 A/9 1111111110001101 25 D/9 1111111111101010 25 A/A 1111111110001110 26 D/A 1111111111101011 26 B/1 1111111110001111 10 E/1 111111110110 13 B/2 111010 18 E/2 1111111111101100 18 B/3 111110111 19 E/3 1111111111101101 19 B/4 11111110111 20 E/4 1111111111101110 20 B/5 1111111110010000 21 E/5 1111111111101111 21 B/6 1111111110010001 22 E/6 1111111111110000 22 B/7 1111111110010010 23 E/7 1111111111110001 23 B/8 1111111110010011 24 E/8 1111111111110010 24 B/9 1111111110010100 25 E/9 1111111111110011 25 B/A 1111111110010101 26 E/A 1111111111110100 26 20
  • 21. JPEG -부호화 (DCT AC 계수의 RLC) DCT AC 계수의 부호화 예 Zig-Zag 스캔된 - 0 0 0 0 DCT 계수값들 RLC된 DCT AC (0,6),(0,7),(2,3),(2,2),(0,-2),(0,0) 계수값들 * zig-zag scan된 순서에 주의 RLC값 길이/범주 기본코드 추가코드 총코드길이 (0,6) 0/3 100 110 6 (0,7) 0/3 100 111 6 Huffman Code가 적용된 DCT AC (2,3) 2/2 11111000 11 10 계수값들 (2,2) 2/2 11111000 10 10 (0,-2) 0/2 01 1 3 (0,0) 0/0 1010 4 JPEG -부호화 (DCT AC 계수의 RLC) DCT AC 계수의 부호화 예 (cont'd) 앞의 예에서 RLC (0,7)의 부호화 값 100 101 을 구하는 과정 • (0,7) 의 의미는 run의 길이는 0이고, 값은 7을 의미함 • DCT AC 계수의 범주 테이블에서 7에 해당하는 범주는 3이므로 • AC계수의 부호화 테이블에서는 연속길이/범주 = 0/3 을 참조하게됨 • 총 6 비트중에 기본비트 100 의 3비트가 부여되고, 나머지는 AC계수값을 이진수로 나타내었을때의 하위 3비트로서 – -7=000, -6=001, -5=010, -4=011, 4=100, 5=101, 6=110, 7=111 – 즉, 7의 경우에 111 이 부여됨 • 따라서, 최종 부여되는 값은 100111이 됨 AC 계수 범위 범주 연속길이/범주 기본 부호 길이 ... ... … … … 0/3 100 6 -7, …,-4,4,…,7 3 … … … ... ... 21
  • 22. JPEG-부호화 JPEG 부호화 과정 8x8 블록 DCT Quantizer Zig-zag RLC VLC 입력된 영상 압축된 영상 데이타 Quantization Huffman 데이타 Table Table JPEG-비트스트림 구조 JPEG Syntax 영상크기, color space (CLUT, RGB, YCrCb), sampling (4:2:2, 4:2:0, etc), JPEG mode (기본방식, 순차적, 점진적, 무손실등) 의 정보를 포함 Huffman table(s), quantization table(s) 오류복구,검출 22
  • 23. JPEG-복호화 JPEG 복호화 과정 부호화 과정의 역과정을 따름 DCT를 기반으로 한 디코더 디코더 역양자화 역방향 DCT 압축된 영상 데이터 복원된 영상 데이터 Huffman 양자화 Table 테이블 정보 JPEG-복호화 JPEG encoding (1/3) 복호화의 예를 들기 위하여, 우선 원래의 8x8 블록을 JPEG 부호화(encoding)하는 과정을 보이기로 함 8x8 블록을 DCT하여 DCT 계수값들을 구함 8x8 image block DCT coefficients ⎡139 144 149 153 155 155 155 155⎤ ⎡1260 − 1 − 12 − 5 2 −2 −3 1⎤ ⎢144 ⎢ − 23 − 17 − 6 − 3 − 3 0 − 1⎥ ⎢ 151 153 156 159 156 156 156⎥⎥ ⎢ 0 ⎥ ⎢150 155 160 163 158 156 156 156⎥ ⎢ − 11 − 9 − 2 2 0 − 1 − 1 0⎥ ⎢ ⎥ ⎢ ⎥ −7 −2 F (u , v) = ⎢ 0 1 1 0 0 0⎥ f ( j, k ) = ⎢ 159 161 162 160 160 159 159 159⎥ ⎢159 160 161 162 162 155 155 155⎥ ⎢ −1 −1 1 2 0 −1 1 1⎥ ⎢ ⎥ ⎢ ⎥ ⎢161 161 161 161 160 157 157 157 ⎥ ⎢ 2 0 2 0 −1 1 1 − 1⎥ ⎢162 162 161 163 162 157 157 157 ⎥ ⎢ −1 0 0 −1 0 2 1 − 1⎥ ⎢ ⎥ ⎢ ⎥ ⎢162 ⎣ 162 161 161 163 158 158 158⎥⎦ ⎢ −3 ⎣ 2 −4 −2 2 1 − 1 0⎥ ⎦ forward DCT C (u )C (v) 7 7 (2 j + 1)uπ (2k + 1)vπ F (u, v) = 4 ∑ j =0 ∑ k =0 f ( j , k ) cos[ 16 ] cos[ 16 ] 23
  • 24. JPEG-복호화 JPEG encoding (2/3) DCT 계수들을 양자화테이블 Q(u,v)를 이용하여 양자화함 DCT coefficients Quantized coefficients ⎡1260 − 1 − 12 − 5 2 −2 −3 1⎤ ⎡ 79 0 − 1 0 0 0 0 0⎤ ⎢ − 23 − 17 − 6 − 3 − 3 0 0 − 1⎥ ⎢− 2 − 1 0 0 0 0 0 0⎥ ⎢ ⎥ ⎢ ⎥ ⎢ − 11 − 9 − 2 2 0 − 1 − 1 0⎥ ⎢ − 1 − 1 0 0 0 0 0 0⎥ ⎢ ⎥ ⎢ ⎥ −7 −2 F (u , v) = ⎢ 0 1 1 0 0 0⎥ F * (u , v) = ⎢ 0 0 0 0 0 0 0 0⎥ ⎢ −1 −1 1 2 0 −1 1 1⎥ ⎢ 0 0 0 0 0 0 0 0⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 2 0 2 0 −1 1 1 − 1⎥ ⎢ 0 0 0 0 0 0 0 0⎥ ⎢ −1 0 0 −1 0 2 1 − 1⎥ ⎢ 0 0 0 0 0 0 0 0⎥ ⎢ ⎥ ⎢ ⎥ ⎢ −3 ⎣ 2 −4 −2 2 1 − 1 0⎥ ⎦ ⎢ 0 0 0 0 0 0 0 0⎥ ⎣ ⎦ Quantization ⎡16 11 10 16 24 40 51 61 ⎤ ⎢12 12 14 19 26 58 60 55 ⎥ ⎡ F (u , v ) ⎤ ⎢ ⎥ F (u , v) = ⎢ * ⎥ ⎣ Q (u , v) ⎦ ⎢14 13 16 24 40 57 69 56 ⎥ Q(u, v) = ⎢ 14 17 22 29 51 87 80 62 ⎥ ex. 1260/16 = 78.75 → 79 ⎢18 22 37 56 68 109 103 77 ⎥ -23/12 = - 1.9166 → -2 ⎢24 35 55 64 81 104 113 92 ⎥ ⎢ ⎥ ⎢49 64 78 87 103 121 120 101⎥ ⎢72 ⎣ 92 95 98 112 110 103 99 ⎥ ⎦ JPEG-복호화 JPEG encoding (3/3) 양자화된 계수들을 zig-zag scan하여 RLC 부호화함 • 압축률은 아래에 계산된 바와 같이 0.06625 임 Quantized coefficients ⎡ 79 0 − 1 0 0 0 0 0⎤ Zig-zag scan ⎢− 2 − 1 0 0 0 0 0 0⎥ ⎢ ⎥ ⎢ − 1 − 1 0 0 0 0 0 0⎥ ⎢ ⎥ 79, 0, –2, –1, –1, –1, 0, 0, –1, EOB F * (u , v) = ⎢ 0 0 0 0 0 0 0 0⎥ → (9), (1,-2), (0,-1), (0,-1), (0,-1), (2,-1), (0,0) ⎢ 0 0 0 0 0 0 0 0⎥ ⎢ ⎥ ⎢ 0 0 0 0 0 0 0 0⎥ (이전 block의 DC coeff. = 70 으로 가정) ⎢ 0 0 0 0 0 0 0 0⎥ ⎢ ⎥ ⎢ 0 0 0 0 0 0 0 0⎥ ⎣ ⎦ Entropy Coding (RLC) 1011001 11100101 000 000 000 110110 1010 • 총 비트수 = 34 bits • 비트율 = 34 bits/ 64 pixels = 0.53 bits/pixel • 압축율 = 0.53 / 8 = 0.06625 24
  • 25. JPEG-복호화 JPEG decoding (1/3) 앞에서 JPEG 부호화된 비트스트림으로 부터 8x8 image block을 복호화하는 과정을 보이기로 함 JPEG 부호화된 비트스트림을 decoding하고, 이를 인코딩할때와 동일한 양자화테이블을 사용하여 역양자화함 Encoded Bit Stream 1010111 11100101 000 000 000 110110 1010 Inverse Quantized Coeff. Entropy Decocing ⎡1264 0 − 10 0 0 0 0 0⎤ ⎢ − 24 − 12 0 0 0 0 0 0⎥ ⎡ 79 0 − 1 0 0 0 0 0⎤ ⎢ ⎥ ⎢− 2 − 1 0 0 0 0 0 0⎥ ⎢ − 14 − 13 0 0 0 0 0 0⎥ ⎢ ⎥ ⎢ ⎥ ⎢ − 1 − 1 0 0 0 0 0 0⎥ 0 0 0 0 0 0 0 0⎥ ⎢ ⎥ F (u , v) = ⎢ ˆ ⎢ 0 0 0 0 0 0 0⎥ F * (u , v) = ⎢ 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 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⎥ ⎣ ⎦ Inverse Quantization F (u, v) = F * (u, v)Q(u, v) ˆ JPEG-복호화 JPEG 부호화된 비트스트림의 decoding 과정 (예) Encoded Bit Stream 101100111100101000000000 110110 1010 9 0 -2 -1 -1 -1 0 0 -1 EOB DC 계수 Tree AC 계수 Tree - DC 다음은 AC이므로 0 1 1 0 -AC 첫번째 비트 부터 AC 계수 tree를 따라 내려가면 111001은 run=1, 0 0 1 1 catetory=2이고, 총 비트수는 8비트 1 0 임을 알게 됨 0 1 -111001 까지 6 비트가 0 1 0 1 사용되었으므로, 뒤의 2 비트인 01 을 1 0 읽어서 AC 계수는 -2로 하고, run의 (3,6) 길이가 1이므로, decoding 된 값은 0, (0/1,3) 1 -2 가 됨 (0,3) (1,4) 0 (2,5) (4,7) ⎡ 79 0 − 1 0 0 0 0 0⎤ 1 ⎢− 2 − 1 0 0 0 0 0 0⎥ -시작은 DC 계수부터 시작하므로 ⎢ ⎥ ⎢ −1 −1 0 0 0 0 0 0⎥ -비트스트림의 첫번째 비트 부터 DC 계수 tree를 따라 ⎢ ⎥ (2/1,6) F * (u , v) = ⎢ 0 0 0 0 0 0 0 0⎥ 내려가면 101은 catetory 4이고 총 비트수는 7비트 ⎢ 0 0 0 0 0 0 0 0⎥ 임을 알게 됨 ⎢ ⎥ ⎢ 0 0 0 0 0 0 0 0⎥ (1/2,8) ⎢ 0 0 0 -101 까지 3 비트가 사용되었으므로, 뒤의 4 비트인 0 0 0 0 0⎥ ⎢ ⎥ 1001 을 읽어서 DC 계수는 9로 decoding 함 ⎢ 0 0 0 ⎣ 0 0 0 0 0⎥ ⎦ 25
  • 26. JPEG-복호화 JPEG decoding (2/3) 역양자화된 블록을 IDCT하여 복호화된 8x8 이미지 블록을 구함 Inverse Quantized Coeff. decoded 8x8 block ⎡1264 0 − 10 0 0 0 0 0⎤ ⎡144 146 149 152 154 156 156 156⎤ ⎢ − 24 − 12 0 0 0 0 0 0⎥ ⎢148 ⎢ ⎥ ⎢ 150 152 154 156 156 156 156⎥⎥ ⎢ − 14 − 13 0 0 0 0 0 0⎥ ⎢155 156 157 158 158 157 156 155⎥ ⎢ ⎥ ⎢ ⎥ 0 0 0 0 0 0 0 0⎥ f ( j, k ) = ⎢ 160 161 161 162 161 1159 157 155⎥ F (u , v) = ⎢ ˆ ˆ ⎢163 ⎢ 0 0 0 0 0 0 0 0⎥ 163 164 163 162 160 158 156⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 0 0 0 0 0 0 0 0⎥ ⎢163 163 164 164 162 160 158 157 ⎥ ⎢160 161 159 158⎥ ⎢ 0 0 0 0 0 0 0 0⎥ ⎢ 161 162 162 162 ⎥ ⎢ ⎥ ⎢158 ⎣ 159 161 161 162 161 159 158⎥⎦ ⎢ 0 ⎣ 0 0 0 0 0 0 0⎥ ⎦ Inverse DCT 1 7 7 ⎛ (2 j + 1)uπ ⎞ ⎛ (2k + 1)vπ ⎞ f ( j , k ) = ∑∑ C (u )C (v) F (u, v) cos⎜ ˆ ˆ ⎟ cos⎜ ⎟ 4 u =0 v =0 ⎝ 16 ⎠ ⎝ 16 ⎠ JPEG-복호화 JPEG decoding (3/3) 복호화된 블록과 원래의 블록을 비교할때, 에러가 매우 작게 나타남을 볼수 있음 original 8x8 block JPEG encode/decoded 8x8 block ⎡139 144 149 153 155 155 155 155⎤ ⎡144 146 149 152 154 156 156 156⎤ ⎢144 ⎢148 156 156 156⎥ ⎢ 151 153 156 159 156 156 156⎥⎥ ⎢ 150 152 154 156 ⎥ ⎢150 155 160 163 158 156 156 156⎥ ⎢155 156 157 158 158 157 156 155⎥ ⎢ ⎥ ⎢ ⎥ f ( j, k ) = ⎢ 160 161 161 162 161 1159 157 155⎥ f ( j, k ) = ⎢ 159 161 162 160 160 159 159 159⎥ ˆ ⎢159 ⎢163 160 158 156⎥ 160 161 162 162 155 155 155⎥ ⎢ 163 164 163 162 ⎥ ⎢ ⎥ ⎢161 161 161 161 160 157 157 157 ⎥ ⎢163 163 164 164 162 160 158 157 ⎥ ⎢162 ⎢160 161 159 158⎥ 162 161 163 162 157 157 157 ⎥ ⎢ 161 162 162 162 ⎥ ⎢ ⎥ ⎢162 162 161 161 163 158 158 158⎥ ⎢158 ⎣ 159 161 161 162 161 159 158⎥⎦ ⎣ ⎦ ⎡− 5 − 2 0 1 1 − 1 − 1 − 1⎤ ⎢− 4 1 1 2 3 0 0 0⎥ ⎢ ⎥ difference (error) ⎢ − 5 − 1 3 5 0 − 1 0 1⎥ ⎢ ⎥ −1 1 − 2 −1 e( j , k ) = ⎢ 0 0 2 4⎥ ⎢− 4 − 3 − 3 − 1 0 − 5 − 3 − 1⎥ e( j , k ) = f ( j , k ) − f ( j , k ) ˆ ⎢ ⎥ ⎢ − 2 − 2 − 3 − 3 − 2 − 3 − 1 0⎥ ⎢ 2 1 −1 1 0 − 4 − 2 − 1⎥ ⎢ ⎥ ⎢ 4 ⎣ 3 0 0 1 − 3 − 1 0⎥ ⎦ 26
  • 27. JPEG-Samples * Uncompressed image 24 bits/pixel * JPEG 영상의 품질은 양자화 Full Quality Medium Quality 테이블의 양자화 스텝 크기를 8.25 bits/pixel 1 bits/pixel 조정함으로써 가능해짐. * 양자화 스텝 크기가 커지게 되면, DCT 계수값들중에서 값이 작아지면 0으로 되어, 고주파수 영역의 값들이 대부분 0으로 됨 * 고주파수 영역의 계수들이 무시되면, 영상의 윤곽선 부분이 많이 흐려지게 되고, 블록현상이 나타나게 됨 Low Quality Lowest Quality 0.75 bits/pixel 0.13 bits/pixel 참조) http://en.wikipedia.org/wiki/JPEG#cite_note-2 Motion-JPEG Motion-JPEG 비표준 (non-standardized)의 동영상 압축 방법 동영상의 각 화면을 JPEG으로 부호화함. • 압축율은 JPEG과 동일 • 시간적 중복성 제거 안함 – 개별 회사마다 독자적 '움직임 검출'로 보완하는 추세 • 프레임 단위로 편집 용이 – 비디오 편집용 – 보안 감시용 JPEG 부호화기에 버퍼를 추가하여 비트율을 조절. 독립된 JPEG 인코딩 27
  • 28. JPEG2000 - JPEG의 한계 JPEG의 한계 저조한 압축 성능 • 0.25 bpp(bits per pixel)이하에서 unacceptable quality Lossless와 Lossy 압축 방식이 단일화 되어 있지 않음 • Lossy JPEG (IS 10918-1) • Lossles JPEG-LS (IS 14495-1) 64K x 64K 보다 작은 이미지만 압축 가능 single decompression 알고리즘을 갖고 있지 않음 • 44 application-specific modes of operation 잡음이 있는 채널 전송시에 발생 가능한 비트 에러에 대하여 고려하고 있지 않음 자연적인(natural) 영상을 주 대상으로 하고 있으며, 컴퓨터에서 인공으로 만들어진 영상들에는 최적화 되어있지 않음 Gray 또는 bi-level (흑백의 text)으로 작성된 compound document와 같은 이미지에 대하여는 부적합. JPEG2000 JPEG2000 개요 정지영상 압축의 통합 기능 제공 • 기존의 JPEG에 다양한 기능을 종합한 차세대 정지 영상 규격 • ITU-R SG8과 ISO/IEC JTC1/SC29/WG1에서 공동으로 표준화를 수행하면서, License free로 추진 Unified New System for Still Images with • different types (bi-level, gray-level, color) – 2색조 영상에서 부터 컬러 영상까지 부호화 할수 있도록 각 컬러성분에 1비트에서 16비트까지 할당 • different characteristics (natural images, scientific, medical, remote sensing imagery, text, rendered graphics) – 자연영상을 비롯한 팩스, 의료, 영상등의 다양한 형태의 영상에 적용 • different imaging models (client/server, real-time transmission, image library archival, limited buffer and bandwidth resources, etc.) – 유/무선 통신환경에 적합하도록 전송오류에 강인한 특징 제공 기존의 표준화 방식들에 비하여 월등한 낮은 비트율(0.25 pbb이하) 에서의 향상된 성능을 보여줌 현재의 JPEG 표준과 호환 28
  • 29. JPEG2000 - 응용 분야 JPEG2000의 응용 분야 Internet Digital Photography Medical Imaging Wireless imaging Document imaging Pre-Press Remote sensing and GIS Cultural Heritage Scientific and Industrial Digital Cinema Image archives and databases Surveillance Printing and scanning Facsimile JPEG2000 - 특징 JPEG2000 특징 High compression efficiency Lossless colour transformations Lossy and lossless coding in one algorithm Embedded lossy to lossless coding Progressive by resolution and quality Static and dynamic Region-of-Interest (ROI) Error resilience Visual (fixed and progressive) coding Multiple component images Block and line based transforms Compressed image manipulation methods 29
  • 30. JPEG2000 - 개선된 기능 예 JPEG2000 Features : Region-of-Interest (ROI) JPEG2000 - 기본 부호화 구조 Basic Coding Scheme wavelet 기반의 부호화 • JPEG에서는 DCT를 사용하여 부호화함 Wavelet Scan Entropy Quantizer Transform Algorithm Coding Rate Allocation 30
  • 31. JPEG2000 - 성능 성능비교 JPEG2000 - 표준 문서 구조 Structure of JPEG2000 Standard Part 1, Core coding system • intended as royalty and license-fee, NOT patent-free Part 2, Extensions • adds more features and sophistication to the core Part 3, Motion JPEG 2000 Part 4, Conformance Part 5, Reference software • Java and C implementations are available Part 6, Compound image file format • document imaging, for pre-press and fax-like applications, etc. 31
  • 32. JPEG2000 - 표준 문서 구조 Structure of JPEG2000 Standard (cont’d) Part 7 • has been abandoned Part 8, JPSEC (security aspects) Part 9, JPIP (interactive protocols and API) Part 10, JP3D (volumetric imaging) Part 11, JPWL (wireless applications) Part 12, ISO Base Media File Format (common with MPEG-4) 참조: http://www.jpeg.org/jpeg2000 질의/응답 32