JPEG는 가장 사용되는 이미지 압축형식의 하나이지만, JPEG가 사진을 어떻게 압축하고 컴퓨터가 어떻게 JPEG 데이터를 처리하는지는 잘 알려지지 않았습니다. 그런 JPEG 데이터의 구조에 대해 Google의 보안감사에 종사하는 angealbertini 씨가 설명해 줍니다.
formats / jpeg.md at master · corkami / formats · GitHub
https://github.com/corkami/formats/blob/master/image/jpeg.md
JPEG의 정식 명칭은 'Joint Photographic Experts Group'으로 이미지 압축형식의 하나입니다. JPEG파일을 16진수 바이너리로 표시하는 Linux 코멘드 'xxd'에서 JPEG를 보면 이런 느낌. 임의의 문자열이 줄지어있는 것처럼 보이지만, 바이너리의 나열에는 의미가 있습니다.
JPEG는 '데이터 유형' '데이터 길이' '데이터 자체'를 세그먼트라고 정리해서 보관하고 있으며, 그 세그먼트가 늘어선 심플한 구조라는 것. 데이터 유형은 Marker라는 부분에 표시되며, "ff"라는 바이트에 제로가 아닌 바이트를 계속 정의합니다. 예를 들어, 바이너리 상단에 표시되어 있던 'ffd8'는 이미지 데이터의 시작을 의미하고 'SOI'라는 Marker입니다.
반대로 바이너리의 마지막에는 이미지 데이터의 끝을 의미하는 'EOI', Marker인 'ffd9'가 표시되어 있습니다.
JPEG 이미지를 구성하는 바이너리의 전체상은 이런 느낌. 이미지 소프트웨어는 Marker 등을 의지하여 데이터를 로드하고 JPEG 이미지를 표시할 수 있게 되어 있습니다.
'IT' 카테고리의 다른 글
Truecaller에서 전화번호를 제거하는 방법 (0) | 2020.08.02 |
---|---|
Truecaller의 앱에서 개인정보를 유출하는 백도어가 발각...1억 이상의 Android 기기에 영향 (0) | 2020.08.02 |
스팸전화 방지 앱이 사용자의 개인정보를 허락없이 외부에 보내고 있다 (0) | 2020.08.02 |
전화의 발신자를 식별하는 'Truecaller'의 사용자 수가 2억 명 이상 (0) | 2020.08.02 |
SIM스왑 사기, 모잠비크의 피해 '제로'를 달성하게 한 대책 (0) | 2020.08.02 |
SIM 없이 스마트폰을 영리하게 사용하기, 활용 방법 (0) | 2020.08.02 |
Android의 '자동 비행기 모드'는 왜 사용하지 않을까? (0) | 2020.08.02 |
일부러 '비행기 모드'를 하는 6가지 장점 [iPhone / Android] (0) | 2020.08.02 |