JPEG를 전체 8x8 블록으로 무손실 자르기

JPEG를 전체 8x8 블록으로 무손실 자르기

JPEG 이미지는 8x8 픽셀 블록으로 압축되므로 JPEG의 너비나 높이가 8로 나누어지지 않는 경우 외부 가장자리에서 1-7 픽셀을 제거하는 것이 기술적으로 가능합니까?무손실?

(또는 내부 8x8 블록이 손상되지 않는 한 외부 가장자리를 원하는 크기로 자릅니다.)

답변1

기반으로jpegtran 매뉴얼 페이지(그리고위키피디아), JPEG 이미지의 왼쪽 위 모서리는 8x8 블록의 모서리에 있어야 하므로 단일 픽셀 행/열이 JPEG 이미지에서 잘릴 수 있습니다.맨 아래그리고옳은가장자리이지만아니요~에서왼쪽또는맨 위. 물론 왼쪽과 위쪽에서 전체 8x8 블록을 자르는 것도 가능합니다.

매뉴얼 페이지 -crop에서는 다음 명령으로 이를 언급합니다.

회전 및 뒤집기 변환과 마찬가지로 무손실 자르기는 현재 JPEG 형식으로 제한됩니다. 선택한 영역의 왼쪽 상단 모서리는 iMCU 경계에 있어야 합니다. 그렇지 않은 경우 자동으로 가장 가까운 iMCU 경계로 위쪽 및/또는 왼쪽으로 이동합니다(오른쪽 하단 모서리는 변경되지 않은 상태로 유지됩니다).

답변2

JPEG 이미지의 상단과 왼쪽 가장자리는 항상 블록 경계에 있습니다. 하단과 오른쪽 가장자리는 그럴 수도 있고 아닐 수도 있습니다.

따라서 무손실 잘린 이미지의 아래쪽 및 오른쪽 가장자리를 자유롭게 선택할 수 있지만 잘린 이미지의 위쪽 및 왼쪽 가장자리는 원래 위쪽 및 왼쪽 가장자리의 유효 블록 크기의 정수배여야 합니다.

JPEG 이미지의 유효 블록 크기는 다양합니다. DCT는 8x8 블록에서 작동하지만 일부 JPEG는 크로마 서브샘플링을 수행하여 유효 블록 크기를 8x16 또는 16x16으로 만듭니다.

관련 정보