2012-12-08 2 views
1

Jpeg/JFIF 파일을 구문 분석 중이며 SOI (0xFF D8) 이후에 0xFFXX (XX는 16 진수)로 시작하는 다른 "스트림"을 구문 분석합니다. 나는 EOI (0XFFD9)를 찾는다. 이제 diffrent 덩어리의 구조는 다음과 같다 : 이제Jfif/jpeg 파싱, 스트림 간 바이트

APP0 marker  2 Bytes 
Length   2 Bytes 

내가 길이 필드의 2 바이트에 기록 된 길이에 도달 할 때까지 내가 구문 분석 덩어리를 구문 분석 할 때. 그 후에 나는 즉시 다른 마커를 찾고 다음 덩어리의 길이가 뒤따른다고 생각했습니다. 내 파서에 따르면 항상 그렇지는 않지만 청크 사이에 데이터가있을 수 있습니다. 나는 그 데이터가 무엇인지, 그것이 이미지와 관련이 있는지를 알 수 없었다. 이게 무슨 뜻인지, 그 바이트들을 해석하는 방법에 대한 힌트가 있습니까?

누군가가 올바른 방향으로 나를 가리킬 수 있다면 나는 잃어버린 행복해 할 것입니다. 미리 감사드립니다.

답변

0

최근에 나도 알아 챘습니다. 제 경우에는 청크의 길이를 포함하지 않는 ICC 프로파일 인 APP2 청크입니다.

사실 내가 알 수있는 한 청크의 길이는 처음 2 바이트 일 필요는 없습니다 (보통이지만).

JFIF에서 데이터 섹션의 모든 0xFF 바이트는 0xFF 0x00으로 바뀌므로 그로부터 길이를 계산해야합니다. 나는 다른 헤더를 칠 때까지 읽었지만, 때때로 (ICC 프로파일에서) 0xFF 0x6D와 같은 의미가없는 바이트 시퀀스가 ​​있다는 것을 알았 기 때문에 여전히 뭔가 빠져있을 수 있습니다.

관련 문제