본문 바로가기
기술자료/JPEG 압축 영상

[JPEG] JPEG 압축 알고리즘의 분류

by 알 수 없는 사용자 2009. 8. 20.
728x90
반응형
지난 주에 스터디에서 발표했던 내용인데, 게으름피우다 이제서야 올리네요 -ㅇ-   
JPEG의 부호화 방식과 압축알고리즘의 종류에 대한 내용입니다.

====================================================================================

1. JPEG 부호화 방식


    1) 가역부호화방식(무손실방식, Lossless)
        - 압축, 신장의 과정을 거쳐도 원래의 정보를 보존할 수 있는 방식
        - 화면내(공간적) 예측부호화방식 채용
        - 압축률은 비가역부호화방식에 비해서 작지만, 화질 열화가 허용되지 않는 분야에 유용

    2) 비가역부호화방식(손실방식, Lossy)
        - 압축, 신장의 과정을 거치면서 무엇인가 왜곡이 생겨 완전히 원래대로 재생되지 않는
          방식
        - DCT 방식을 기본으로 함
        - 높은 압축률과 실용적인 복호화질을 획득하는 것이 가능
        - 기본방식(베이스라인 시스템)과 확장방식, 두가지 방식으로 분류
기본방식 - 필수 기능적 요소
                 - JPEG 방식을 채택한 모든 시스템에서 기본방식으로 복호화 가능
                 - 과거 시판된 하드웨어의 대부분은 기본 방식만을 구현한 것이었다.
                 - 1화소 1색 성분당 8비트
                    (즉 2^8 = 256 1화소의 1색 성분을 256 level로 나타내는 것)
     - 시퀀셜(sequential-순차적) 모드와 허프만(Huffman) 부호화(데이터 발
       생활률의 편중을 이용한 압축기술의 하나)로 되어 있다
확장방식 - 보다 광범위한 응용에 대응하기 위해 제정
                 - 1화소 1색 성분당 8비트 또는 12비트
                 - 시퀀셜 모드(이미지를 볼 때 좌측 위에서 우측 아래까지 차례로 표시)
                   또는 프로그레시브 모드(우선 엉성하게 전체를 표시, 점차적으로 영상
                   을 또렷하게), 허프만 부호 또는 산술 부호로 되어 있어 응용에 따라 모
                   드를 선택할 수 있도록 되어있다.

< JPEG 방식의 카테고리 분류>
          
        - JPEG의 Lossy 방식의 부호화(Encoding)/복호화(Decoding) 알고리즘 요약
ㅁ 아날로그 신호를 디지털화하고 압축하는 JPEG의 부호화는 DCT, 양자화, 엔트로
    피 부호화의 3단계로 이루어진다.
ㅁ 1단계 : DCT 변환을 이용해서 이미지의 64(8×8)개의 화소들이 낮은 신호 값을 갖
    도록 한다. 따라서 이미지는 공간상의 중복된 신호 값을 줄어 압축률이 높아진다.
    (디더링 마스크의 크기가 크거나 또는 작은 차이 정도)

ㅁ 2단계 : 양자화 단계로 표현할 수 있는 신호 값들이 들어있는 주어진 양자화 테이
   블(Quantization table)을 이용해서 DCT 단계의 결과로 나온 64개의 값이 표현될
   수 있는 근사치를 얻는다.

ㅁ 3단계 : 엔트로피 부호화를 통해 양자화 된 영상정보의 크기를 더욱 줄인다. 복호
    화는 부호화의 3단계를 역으로 실행하여 원래 신호를 얻는다.

* 엔트로피 인코딩 혹은 엔트로피 부호화(entropy encoding)는 심볼이 나올 확률에 따라 심볼을 나타내는 코드의 길이를 달리하는 부호화 방법이다. 보통 엔트로피 인코더는 모든 심볼에 대해 같은 길이를 갖는 코드를 심볼이 나올 확률값의 음의 로그에 비례하는 서로 다른 길이의 코드로 바꾸어 부호화한다. 즉 가장 자주 나오는 심볼에 대한 코드가 가장 짧다.

새넌 정리(Shannon's theorem)에 따르면, 가장 좋은 코드 길이는 b를 부호화할 심볼의 개수, P를 심볼이 나올 확률이라고 할 때 −logbP 라고 한다.

엔트로피 코딩 중에 가장 자주 쓰이는 세 가지는 허프만 부호화, 범위 부호화와 산술 부호화이다. 데이터 스트림의 대략적인 엔트로피 성질을 미리 알고 있을 때에는(특히 신호 압축에서) 더 간단한 일진 부호, 엘리어스 감마 부호, 피보나치 부호, 골롬 부호, 라이스 부호를 쓰기도 한다.


2. DCT 부호화 방식

<DCT 부호화방식의 부호기의 블록도와 양자화 테이블의 예>

    1) 8x8 화소의 블록으로 분해

    2) 분해된 블록에 DCT 연산을 수행

    3) 수행 결과로 얻은 DCT 계수를 DC 성분과 AC성분으로 나누어 독립적으로 양자화
        이때 사용하는 양자화 테이블에는 규정치(디폴트)가 존재하지 않고 개별적으로 설정
        일반적으로 위 그림의 양자화 테이블을 많이 사용

    4) 양자화 된 DCT 계수 중 DC계수는, 바로 앞 블록의 DC 계수를 예측치로 한 차분치를 부
        호화한다.

    5) 나머지 AC 성분은 블록마다 지그재그 스캔에 의해 일렬로 나열한 후 부호화

< DCT 부호화 방식에서 DC, AC 성분과 지그재그 스캔 >

3. 가역부호화방식(Lossless)
    1) 공간적 예측방식
        - 예측기는 이미 복호한 인접한 세 화소를 조합하여 예측치를 생성하고 부호화 대상화소
          에서 이 예측치를 뺀 값(예측 오차)에 대해 허프만 부호화 또는 산술 부호화를 이용하
          여 엔트로피 부호화를 수행
        - DCT 방식에 비해 압축률은 낮지만 화질열화가 생기지 않는다.

< 가역부호화방식에서 부호기의 블록도 >

4. 시퀜셜방식과 프로그래시브 방식

   1) 시퀜셜 방식
       - 영상이 입력되는 순서대로 계수들을 부호화하여 좌상단에서부터 우하단까지 차례대로
          전송하여 부호화

   2) 프로그래시브 방식
       - 8x8 블록 단위로 베이스라인 방식과 같은 방식으로 여러번 주사를 실시
       - 정보를 점진적으로 여러번 전송
       - 저해상도에서 고해상도로 점진적 변화
       - 채널 용량이 한정된 경우에 유용함
       - Spectral Selection, Successive aproxmation 방식
ㅁ Spectral Selection(s-s) : DC계수와 소수의 AC계수 우선 전송
ㅁ Successive aproxmation(s-a) : 각 DCT 계수중 상위 비트 우선 전송
                                                  엉성한 계조 -> 조밀한 계조

< 시퀜셜 방식 >

< 프로그래시브 방식 >

5. 인터리브방식과 비인터리브방식

    1) 인터리브 방식
        - 각 성분의 부호화 데이터가 최소 부호화 단위(MCU)마다 섞임
           MCU : Minimum Coded Unit
        - MCU 마다 복호 영상 완성

    2) 비인터리브 방식
        - 각 성분마다 한장의 영상을 이루도록 독립됨
< 인터리브 방식과 비인터리브 방식 >
728x90