JPEG를 만들 때 아티팩트 발생을 최소화하려면 어떻게해야합니까?


10

JPEG 이미지를 만들 때 디지털 아티팩트 로 이어질 것으로 보이는 두 가지 주요 요소가 있습니다 : 앨리어싱 및 압축.

예:

문자가있는 PNG를 JPEG로 변환하거나 사진 위에 벡터 이미지를 배치하면 가장자리가 픽셀 화됩니다. 앤티 앨리어싱은 일반적으로 그 주위에 일종의 흐림 효과를 만들지 만 이미지가 압축 되지 않으면 세부 사항의 일부도 손실되므로 흐림 효과와 픽셀 화가 덜 두드러 질 수 있습니다.

이것이 옳은 일입니까? 즉, 무손실 압축은 매우 상세한 이미지를 생성하기 때문에 앨리어싱으로 인한 아티팩트가 더 눈에 띄게되므로 이미지 품질은 저하 시키지만 올바른 압축을 사용하면 균형을 찾을 수 있습니다.

편집하다

방금이 JPEG를 mspaint (3.46KB)에 저장했습니다.

무손실

최대 압축률 (최저 품질, 0.5KB)을 가진 동일한 JPEG는 다음과 같습니다.

로시

압축률이 50 % 인 동일한 JPEG는 다음과 같습니다 (크기 차이 1.29KB에 유의).

반노 옵션

동일한 50 % 압축이지만 "프로그레시브 JPG"로 저장되고 원본 EXIF ​​및 XMP 데이터를 유지했으며 "원본 JPG 품질로 저장하려고했습니다"(2.96KB 주변에 회색 픽셀이 없음을 알 수 있음) :

반 옵션

마지막으로 크로마 서브 샘플링을 사용하지 않는 경우 와 동일합니다 (동일한 파일 크기, 2.96KB).

하프 노크 로마


1
궁금한 점은 jpg를 원하는 이유가 파일 크기가 더 작습니까? 특정 상황에 도움이되는 경우 dxt 압축 또는 거리 필드 텍스처에 대해 알고 있습니까?
Alan Wolfe

1
귀하의 질문이 무엇인지 명확하지 않습니다. JPEG를 사용하여 압축하는 것이 좋은지 알고 싶습니까? JPEG로 어떤 종류의 이미지가 잘 압축되는지 알고 싶습니까? 또는 이미 JPEG를 사용하고 있으며 JPEG로 인한 아티팩트를 최소화하기 위해 이미지를 작성하는 방법을 알고 싶습니까?
Mokosha

@ AlanWolfe JPEG (주로 웹 응용 프로그램) 만 사용할 수있는 몇 가지 사례가 발생했기 때문에 JPEG 형식이어야했습니다. 감사합니다,하지만 난에서 본 것을에서 나는, DXT 압축이나 거리 필드 질감에 익숙하지 않았다 위키 피 디아 , DXT 알고리즘은 JPEG에서 사용되는 것과는 다른, 당신은 그들이 JPEG 파일을 만들 수 있습니다 의미합니까?
Armfoot

@Moshoka에게 감사드립니다. 마지막 질문과 더 관련이 있습니다. JPEG 이미지의 인공물로 인한 "시각적 영향"을 최소화하는 방법은 무엇입니까?
Armfoot

것을 명심 mozjpeg압축기 이미지의 이러한 종류에 적은 왜곡을 생산하기 위해 특별한 트릭을 가지고있다. (그리고 일반적인 jpeg 작가보다 일반적으로 더 효율적입니다.) 사용해 보셨습니까?
표시 이름

답변:


9

JPEG 압축에는 세 가지 주요 단계가 포함됩니다.

  1. 크로마 서브 샘플링 . 이미지는 RGB에서 YCbCr 색 공간으로 변환되며, 여기서 루마 또는 밝기 (Y)는 채도 또는 색 구성 요소 인 Cb 및 Cr과 별도로 저장됩니다 . Y 구성 요소는 최대 해상도로 유지되지만 Cb 및 Cr은 일반적으로 각 축에서 절반 해상도로 다운 샘플링됩니다. 이것은 인간 시각 시스템이 색상보다 세부적인 밝기에 더 민감하다는 사실을 이용합니다.

  2. 주파수 양자화. Y, Cb 및 Cr 이미지는 8x8 블록으로 분할하고 이산 코사인 변환 (푸리에 변환의 변형)을 각 블록에 적용하여 주파수 표현으로 변환됩니다 . 결과는 블록에서 서로 다른 공간 주파수의 진폭을 나타내는 숫자 행렬입니다. 그런 다음이 숫자를 양자화 할 수 있습니다 (선택한 수의 정밀도 비트로 반올림). 다른 주파수에 대해 다른 레벨의 양자화가 사용되며, 시각적 시스템의 고주파에 대한 상대적으로 낮은 감도를 이용합니다. JPEG 인코더의 품질 설정이 적용되는 곳입니다. 품질이 낮을수록 더 양자화됩니다.

  3. 엔트로피 코딩 . 양자화 된 DCT 값은 엔트로피 코더를 통해 전달되며, 엔트로피 코더를 통해 더 적은 비트를 사용하여 zip 파일과 같은보다 일반적인 값을 나타내는 비트 스트림을 무손실 압축합니다.

1 단계와 2 단계는 손실이 많으며 각각 고유 한 유형의 아티팩트를 생성합니다 (일부 중복이 있음). 채도 서브 샘플링은 다른 색상의 영역 사이에서 날카로운 가장자리를 흐리게하는 경향이 있습니다. 이것은 벡터 아트에서 특히 두드러지며, 밝은 색상의 모양이 가장자리 주위에 악의적 인 재규어를 선택합니다. DCT는 블록 단위로 수행되므로 주파수 양자화는 일반적으로 미세한 디테일을 흐리게하고 낮은 품질 설정에서 블록 모양의 아티팩트를 생성합니다. 특히 텍스트에서 볼 수 있습니다.

이것이 JPEG가 일반적으로 벡터 그래픽이나 텍스트가 포함 된 이미지에 사용되지 않는 이유입니다. 압축 알고리즘은 복잡한 질감과 날카롭지 않은 가장자리가있는 사진 및 기타 이미지에는 적합하지만 이러한 경우에는 적합하지 않습니다.


Nathan +1에 대한 자세한 설명에 감사드립니다. 압축 알고리즘에는 JPEG에 대한 제한이 있다는 것을 알고 있지만 아티팩트가 덜 눈에 띄게 할 수있는 다른 옵션 (저장시)과 함께 압축 크기의 균형이 적절한 지 확인하고 싶었습니다. 샘플로 질문을 편집했습니다.
Armfoot
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.