티스토리 뷰

Image Compression

 

[ Information Theory ]

  · Source Coding

    : 데이터 압축. 정보를 효율적으로 표현하고 저장하기 위해 데이터를 압축해 저장 공간을 절약하거나 대역폭을 절감.

  · Channel Coding

    : 데이터를 신뢰성 있게 전송. 노이즈, 간섭, 오류 등을 검출 및 정정하여 데이터의 신뢰성을 높임.

    : Compression을 높게 할 수록 Noise-Free한 채널을 사용해야 한다.

       → 압축이 높은 비율로 진행되었으므로, 약간의 노이즈만 있어도 파일 전체에 큰 영향을 끼치기 때문.

 

[ Compression ]

  · Lossless Compression

    : 손실이 없는 데이터 압축 방식.

    : 가변적 비트레이트(Variable Bit-rate) 사용.

    : Data-Size를 보장하지 않음.

    : Average Symbol Length를 최소화하는 것이 목표.

    : Average Binary Length는 Entropy보다 항상 크거나 같다.

    : Entropy에 따라 압축 효율이 달라질 수 있다.

       → 중복된 정보가 많을수록 압축률이 높음. 즉 Entropy가 낮을수록 압축률이 높다.

    : 압축 효율성은 Entropy ÷ Average Symbol Length로 나타낼 수 있다.

 

  · Lossy Compression

    : 손실이 있는 데이터 압축 방식.

    : 고정 비트레이트(Constant Bit-rate) 사용.

    : Quality를 보장하지 않음.

 

    - Rate Distortion

      : 많은 비트 수를 사용해 압축을 진행할수록 왜곡이 덜 발생한다는 이론.

Rate-Distortion Graph

      : 에러(왜곡)를 측정할 때 MSE를 사용하면 이미지의 크기에 따라 변별력이 없을 수 있음. → SNR, PSNR을 이용.

         1) SNR : Signal-to-Noise Ratio. 원본 신호와 그에 대한 잡음에 대한 비율을 데시벨로 나타낸 수치. 

         2) PSNR : Peek-Signal-to-Noise-Ratio. SNR의 변형된 형태로, 피크 신호에 대한 잡음의 비율을 데시벨로 나타낸 수치.

         → SNR과 PSNR이 모두 낮아야 좋은 압축 알고리즘.

      : Vector가 길수록, Dictionary의 길이가 짧을수록 Distortion이 커진다.

      : Transform Coding(DFT 등)을 이용하여 특정 주파수 성분을 제거하거나, 효율적인 표현 방식을 채택해 압축 가능.

 

[ Image Compression ]

  · Lossless Image Coding

    - Run-Length Encoding

      : 연속된 같은 값의 픽셀을 그룹화하여 표현하는 방식.

    - Dictionary Based Image Coding

      : GIF, PNG 형태로 압축하는 데 사용되는 방법.

      : 데이터를 일정한 규칙에 따라 Dictionary에 매핑하여 부호화하는 방식.

      : 중복성을 이용하여 효율적인 압축을 할 수 있음.

    - Prediction Based Encoding

      : 주변 픽셀과의 관계를 통해 값을 예측해 저장하는 방식.

      : 예측 계산식을 미리 테이블에 저장해두고, 일치하거나 유사한 것을 가져다 사용하게 된다.

         → 예측 계산식이 테이블에 모두 존재하거나, 예측 계산식이 없는 경우 원본 데이터를 그대로 사용하면 Lossless Compression이 된다.

         → 예측 계산식이 테이블에 존재하지 않을 때 유사한 계산식을 사용하게 되면 Lossy Compression이 된다.

  · Transform Image Coding

    : 인코딩Transform, Quantization, Entropy Coding의 3단계를 거친다.

    : 디코딩Entropy Decoding, Inverse Transfrom의 2단계를 거친다.

    - JPEG Compression

       1. RGB 색상을 YCbCr 형태로 변경. → 밝기 구분에 민감한 인간의 눈에 적절하게 변경해 밝기 요소를 제외하고 연산하기 위함.

       2. Cr과 Cb를 2×2 pixel을 하나로 하여 Downsampling을 진행.

       3. 이미지를 8×8 크기의 블록으로 분할하고, DCT를 계산해 64개의 계수를 생성.

       4. Quantization Table을 이용하여 양자화를 진행.양자화된 값을 지그재그하게 나열.

           → 테이블에는 저주파 성분(DC coefficient)고주파 성분(AC coefficient)을 나누어 적절히 처리하고, 양자화된 DC계수는 효율적인

             압축을 위해 다시 한 번 Huffman Coding 또는 DPCM을 진행하고, AC계수는 0이 많이 등장하기에 RLE 과정을 진행한다.

      : 이미지 손실이 발생할 수 있으며, 손실이 크게 발생할 경우 격자 패턴의 디지털 풍화가 생길 수 있음.

      : 인위적인 이미지엔 사용하기 좋지 않고, 풍경 사진 등 자연적인 이미지에 적용하기 수월.

      : Stream이 중간에 깨지면 줄줄이 영향을 받는 문제가 있음.

      : 크기가 큰 이미지의 압축에는 적절하지 않음.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함