자동 합성 코드 작업하면서 블록 현상이 발생하여 이유를 찾아보는 중 . 

 

JPEG 이미지의 복사, 합성, 재저장 과정에서 발생하는

블록 현상과 블록 노이즈는 주로 반복적인 압축과 해제 과정에서 누적되는 손실 때문.

이를 최소화하기 위해서는 비손실 압축 형식을 사용하거나,

압축률을 조절하고, 가능한 한 압축 단계를 줄이는 것이 중요함.

또한, 최신의 효율적인 압축 코덱을 활용하는 것도 좋은 방법.



https://en.wikipedia.org/wiki/JPEG

 

 

JPEG 압축 과정의 이해 

JPEG 이미지 압축의 기본적인 과정
  - 손실 압축 방식, 이미지 데이터를 압축하면서 일부 정보가 손실됨. 

  1. 색 공간 변환(Color Space Conversion):
    • RGB 색 공간에서 YCbCr 색 공간으로 변환하여 인간의 눈에 덜 민감한 색상 정보(Cb, Cr)를 효율적으로 압축함.
  2. 블록 분할(Block Splitting):
    • 이미지를 8x8 픽셀 블록으로 나눔. 이 블록 단위 처리가 블록 현상의 주요 원인 중 하나.
  3. 이산 코사인 변환(Discrete Cosine Transform, DCT):
    • 각 8x8 블록에 대해 DCT를 적용하여 주파수 성분으로 변환함. 저주파 성분은 중요한 정보를, 고주파 성분은 세부 정보를 나타냄.
  4. 양자화(Quantization):
    • DCT 계수를 양자화하여 압축률을 높임. 이 과정에서 고주파 성분이 많이 손실되며, 이는 이미지의 선명도 저하와 블러(blur)를 유발할 수 있음.
  5. 인코딩(Encoding):
    • 양자화된 DCT 계수를 효율적으로 저장하기 위해 허프만 코딩(Huffman Coding) 등을 사용.


이미지 합성과 재저장 시 발생하는 아티팩트

이미지를 복사하여 다른 이미지와 합성한 후 저장할 때 다음과 같은 과정이 반복됨

  1. 디코딩(Decoding):
    • 기존 JPEG 이미지를 디코딩하여 압축을 해제하고 픽셀 데이터를 복원함.
  2. 합성(Compositing):
    • 두 이미지를 결합하여 새로운 이미지를 생성함. 이 과정에서 새로운 픽셀 값 생성됨.
  3. 재인코딩(Re-encoding):
    • 합성된 이미지를 다시 JPEG 형식으로 저장하기 위해 압축 과정을 거칩니다.

 

 

이러한 반복적인 압축과 해제가 여러 번 이루어지면 압축 손실 누적이 발생하게 됨. 특히 블록 현상(Blockiness)과 블록 노이즈(Block Noise)는 다음과 같은 이유로 두드러지게 나타납니다.


블록 현상(Blockiness)

  • 원인:
    • JPEG는 이미지를 8x8 블록으로 나누어 각 블록을 독립적으로 압축함. 이로 인해 블록 경계 부분에서 픽셀 값의 불연속성이 발생할 수 있음.
    • 여러 번의 압축과 해제를 거치면서 각 블록 간의 일관성이 떨어지고, 블록 경계가 더 뚜렷하게 보이게 됨.
  • 결과:
    • 이미지 전체에 격자무늬 같은 블록 패턴이 나타나며, 특히 고압축률일수록 블록 경계가 더 뚜렷하게 보임.
    • 자연스러운 이미지에서 벗어나 인공적인 패턴이 형성되어 시각적 품질이 저하됨.


블록 노이즈(Block Noise)

  • 원인:
    • 양자화 과정에서 고주파 성분이 손실되면서 각 블록 내에서 픽셀 값의 변동이 커질 수 있음.
    • 반복적인 압축과 해제를 통해 이러한 변동이 누적되어 블록 내부에 무작위적인 노이즈 발생함.
  • 결과:
    • 각 블록 내에 작은 점이나 패턴 같은 노이즈가 나타나 이미지가 거칠게 보임.
    • 세부 디테일이 손실되고, 이미지의 선명도와 부드러움이 감소함.


이미지 합성과 재저장 시 아티팩트* 발생 방지 방법

  1. 비손실 압축 사용:
    • 가능하다면 PNG나 TIFF 같은 비손실 압축 형식을 사용하여 반복적인 압축으로 인한 손실을 방지.
  2. 압축률 조절:
    • JPEG 저장 시 압축률을 낮게 설정하면 아티팩트 발생을 최소화 시킬 수 있음. 단, 파일 크기가 커질 수 있음.
  3. 최소한의 재압축:
    • 가능한 한 한 번만 압축을 수행하고, 이후에는 원본 픽셀 데이터를 사용하는 방식으로 작업을 진행함.
  4. 고급 코덱 사용:
    • JPEG2000이나 HEIF 같은 최신 코덱을 사용하면 더 효율적인 압축과 더 나은 화질을 유지할 수 있음.


아티팩트* : Digital image artifacts

Digital image artifacts are unintended imperfections or distortions in a digital image that are a result of the rendering process. They can be caused by a variety of factors, including: 

 
  • Compression: Lossy compression can result in blocky patterns, loss of detail, banding, and aliasing. 
     
  • Lighting conditions: Grainy speckles in low-light areas are a common artifact called noise. 
     
  • Camera limitations: The gear used and camera limitations can also cause artifacts. 
     
  • Image processing: Failures or a lack of robustness in image processing can create artifacts. 
     
  • Gain calibration: If the acquisition parameters don't match those of a calibration, artifacts can appear. 
     
  • Operating artifacts: These can occur when the user doesn't fully understand the digital image system. 
     

Some common types of digital image artifacts include: 

  • Chromatic aberration
  • Moiré patterns
  • Banding
  • Haloing
  • Aliasing
  • Screen-door effect
  • Ghosting
  • Screen burn-in
  • Distortion
  • Silk screen effect
To avoid artifacts, you can save an image in an uncompressed format, such as PSD or TIFF, if you plan to make a lot of changes to it. 


주요 아티팩트의 종류

  1. 블록 현상(Blockiness)
    • 설명: 이미지를 작은 블록 단위로 나누어 처리하는 압축 방식에서 발생. 각 블록의 경계가 뚜렷하게 드러나면서 전체 이미지에 격자무늬 같은 패턴이 나타남.
    • 예시: JPEG 압축에서 낮은 품질 설정 시 이미지 전체에 블록이 보이는 현상.
  2. 블러(Blur)
    • 설명: 이미지의 선명도가 떨어지고 경계가 흐려지는 현상. 이는 고주파 성분이 손실되면서 세부 디테일이 사라지기 때문에 발생.
    • 예시: 사진을 지나치게 압축하면 인물의 윤곽이 흐릿하게 보일 수 있음.
  3. 링잉(Ringing)
    • 설명: 강한 경계나 선 주변에 물결무늬 같은 흔적이 나타나는 현상. 주로 고주파 성분의 손실이나 부적절한 필터링으로 인해 발생.
    • 예시: 텍스트나 선이 있는 이미지에서 글자 가장자리 주변에 흰색 또는 검은색의 띠가 생기는 것.
  4. 컨투어링(Contouring)
    • 설명: 이미지의 색상이나 명암이 부드럽게 변하지 않고 계단식으로 변하는 현상. 이는 색상이나 밝기 단계를 너무 적게 사용했을 때 나타남.
    • 예시: 그라데이션이 필요한 부분에서 색상이 급격하게 변해 계단처럼 보이는 것.

아티팩트의 원인

  • 손실 압축(Lossy Compression): JPEG, MPEG 등과 같은 손실 압축 방식은 파일 크기를 줄이기 위해 원본 데이터의 일부를 제거함. 이 과정에서 시각적으로 눈에 띄는 왜곡이 발생할 수 있음.
  • 고주파 성분 손실: 이미지의 세부 디테일을 담당하는 고주파 성분이 손실되면 블러나 링잉과 같은 아티팩트가 생길 수 있음.
  • 부적절한 인코딩 파라미터: 압축률이 너무 높거나 낮은 설정은 다양한 아티팩트를 유발할 수 있음.


아티팩트의 영향

  • 시각적 품질 저하: 사용자가 이미지를 보았을 때 자연스러움이 감소하고, 원본과 비교하여 품질이 낮아 보일 수 있음
  • 분석 및 처리 오류: 컴퓨터 비전이나 이미지 분석 작업에서 아티팩트는 알고리즘의 정확도를 떨어뜨릴 수 있음.
  • 사용자 경험 감소: 특히 사진이나 비디오 편집, 스트리밍 서비스 등에서 아티팩트는 사용자 만족도를 낮출 수 있음.

 

+ Recent posts