24 비트 이미지는 R, G 및 B에 각각 8 비트를 사용한다는 것을 알고 있습니다. RGB 색상 공간에만 해당됩니다. 24 비트 JPEG 이미지의 YCbCr 색 공간에서 비트는 어떻게 분산됩니까?
24 비트 이미지는 R, G 및 B에 각각 8 비트를 사용한다는 것을 알고 있습니다. RGB 색상 공간에만 해당됩니다. 24 비트 JPEG 이미지의 YCbCr 색 공간에서 비트는 어떻게 분산됩니까?
답변:
YCbCr에는 몇 가지 형식이 있습니다. 일반적으로 눈은 채도 (Cb, Cr, 색상)의 변화보다 휘도 (Y, 밝기)의 변화에 더 민감합니다. 따라서, 화질을 유지하면서 일부 크로마 정보를 소거 할 수있다.
따라서 가장 "비싼"형식은 4 : 4 : 4이며, 각 루마 (Y) 구성 요소마다 1 개의 빨간색 차이 (Cr)와 1 개의 파란색 차이 (Cb) 구성 요소가 있습니다.
그런 다음, 내가 언급 한 원리를 적용하면 4 : 2 : 2가 있으며, 여기서 2 개의 Y 성분마다 1 Cb와 1 Cr이 있습니다. 4 : 1 : 1 및 4 : 2 : 0 등으로 더 진행 됩니다 . 자세한 내용은 여기를 참조하십시오 .
JPEG는 R, G 및 B 채널당 8 비트로 시작될 수 있지만 JPEG에 저장 될 때 실제 "비트 심도"는 없지만 값은 주어진 정밀도의 주파수 계수로 저장되는 매우 다르게 저장됩니다.
JPEG에서 더 관련성이 높은 것은 양자화 속도 이며, 이는 압축의 양자화 단계에서 얼마나 많은 정보가 버려지 는가에 따라 각 계수가 얼마나 정확한지에 영향을줍니다. 이 양자화 비율은 Photoshop에서 JPEG를 저장할 때 "품질"설정으로 설정됩니다. 비록 래스터 이미지에서와 같이 비트 깊이와 관련이 없으며 JPEG 인코더 / 디코더가 24 비트로 시작 / 종료되지만 JPEG 이미지의 JPEG 이미지에는 비트 심도가 없다고 말할 수도 있습니다. 래스터 이미지.
JPEG 저장과 관련된 다른 주요 요소는 크로마 서브 샘플링 유형 입니다. JPEG에서는 휘도 (밝기) 채널을 기준으로 색상 (Pr 및 Pb) 채널의 수평 또는 수평 및 수직 해상도를 절반으로 줄이는 옵션이 있습니다. 압축을 풀 때 색상 채널이 보간되고 대부분의 사진 주제에서는 큰 차이가 없습니다.
다음은 이미지가 JPEG로 변환되는 방법에 대한 대략적인 요약입니다.
RGB 값은 Y, Pb, Pr 값으로 변환됩니다. YPbPr 색 공간은 가장 압축 된 휘도 정보를 하나의 채널에만 유지하므로 효율적인 압축에 더 적합합니다. 이 변환은 반올림 오류가없는 경우를 제외하고는 완벽하게 되돌릴 수있는 간단한 산술 연산입니다.
크로마 서브 샘플링을 사용하는 경우 (즉, 4 : 4 : 4 이외의 모드를 사용하는 경우) Pb 및 Pr 채널의 수직 및 / 또는 수평 해상도 만 절반으로 줄어 듭니다. 따라서 이러한 채널은 휘도 채널과 다른 픽셀 크기를 갖습니다. 이로 인해 컬러 채널의 해상도가 영구적으로 손실됩니다.
각 채널에 대해 이미지는 8 픽셀 x 8 픽셀의 블록으로 나뉘어 각 채널의 각 블록에 대해 64 개의 선형 값을 제공합니다. 채널이 어느 한 차원에서 8 픽셀의 배수가 아닌 경우 가장자리 픽셀이 반복됩니다 (압축 해제시 발생). 따라서 JPEG 압축은 8 픽셀의 배수, 또는 16 배인 경우 16보다 항상 효율적입니다. 크로마 서브 샘플링에서).
각 블록의 64 값은 공간 도메인에서 주파수 도메인으로의 변환을 겪습니다 (이 경우 이산 코사인 변환이라고 함). 결국 64 개의 계수로 끝납니다. 각 계수는 해당 블록이 차지하는 영역에 대한 특정 주파수 맵의 진폭을 나타냅니다. 첫 번째 값은 블록의 가장 높은 주파수 성분을 나타내는 마지막 값까지 모든 픽셀의 평균값 인 사실상 가장 낮은 주파수입니다. 초기 값은 모두 훨씬 더 많이 벗어나므로 블록의 이후 값보다 최종 이미지 모양에 더 중요합니다. 이 작업은 충분한 정밀도를 사용하는 한 완벽하게 되돌릴 수 있습니다.
그런 다음 이전 단계에서 얻은 64 개의 계수 각각을 몇 개의 숫자 (양자화 계수라고 함)로 나눠 나머지 부분을 제거하는 양자화 단계가 있습니다. 여기에서 샘플의 정밀도가 가장 큰 영향을 받지만 무손실 압축과 비교하여 JPEG에서 공간을 크게 절약 할 수 있습니다. 이전 변환 이후 모든 것이 주파수 영역에 있으므로이 정확도 손실은이 변환 이전의 픽셀의 비트 심도 / 정확도를 줄이는 것보다 지각적인 이미지 품질을 유지하는 데 가장 효과적입니다. 이 절차의 반대는 단순히 계수를 나눈 것과 같은 수를 곱하는 것이지만 나머지를 버렸기 때문에 계수의 정밀도가 떨어집니다. 이로 인해 영구적 인 품질 손실이 발생합니다.
이 양자화 후, 덜 중요한 계수들 중 다수가 0이되는 것이 일반적이므로, 이들은 버려집니다. 그런 다음 (무손실) 가변 길이 코딩 루틴은 각각의 계수가 다른 수의 비트를 사용하더라도 나머지 모든 계수를 효율적으로 인코딩합니다.
양자화는 비트 심도를 줄일 때와 같이 밴딩을 제공하지 않고 대신인지 할 수있는 부분부터 세부적으로 전체적인 지각 손실을 제공하기 때문에 특정 양자화 계수가 특정 비트 심도와 동일하다고 말할 수는 없습니다. 주파수의 진폭이 낮기 때문에 더 적습니다.
각 채널마다 약 8 비트이지만 약간 다른 방법이 있습니다. 자세한 내용은 YCbCr 의 Wikipedia 기사에 나와 있습니다.