2011-10-22 2 views
0

이미지 압축과 관련된 프로젝트를 진행하고 있는데 JPEG 압축에서 손실 된 데이터를 저장하는 방법이 필요합니다 (픽셀 당 비트 수 ..). 나는 그것을 위해 커스텀 libjpeg를 만들어야 할 것 같다. 주제에 대한 제안/도움을 주시면 감사하겠습니다 (소스 코드에서 수정할 부분에 대한 지침조차도).JPEG 리던던트 데이터 받기

미리 감사드립니다.

편집 : 자신을 명확히하기 위해 숨겨진 정보를 삽입하지 않습니다. JPEG 압축 중에 데이터를 잃어 버리는 방법을 찾고 있습니다. 데이터를 JPEG 이미지 (90에서 80)로 다시 압축하지 못하게하는 것도 좋습니다.

답변

0

개인 데이터를 JPEG 비트 스트림에 삽입해야하는 경우 APPn 마커를 활용할 수 있습니다. 몇 가지 좋은 일들이 그들에 대해이 있습니다

  • 이미지가 여전히 존재
  • 소프트웨어와 읽기와 호환됩니다 당신은 libjpeg을 떠나거나 다른 좋아하는 JPEG 라이브러리 그대로하고 추가 할 수 있도록 형식은 간단하다 APP0APP1을 사용하고 있습니다/직접

JPEG File Interchange Format 비트 스트림을 수정 데이터를 읽고, 당신은 세부 사항을 읽을 수있는 당신이 당신의 목적을 위해 사용할 수있는 APP2 같은 더 가능한 마커는 여전히 존재한다.

+0

내가의 JPEG 압축 과정에서 손실 된 데이터를 얻기 위해 노력하고 있어요 일부 연구 프로젝트. 데이터 (픽셀 당 비트, 매트릭스 등)를 작업하기 쉽도록해야합니다. –

+1

제가보기에, 그 질문은 실제로 다릅니다. 압축 손실 부분을 측정하는 방법은 기존의 JPEG 압축 라이브러리를 사용하고 압축 된 이미지의 압축을 풀고 원본에서 뺍니다. 이렇게하면 JPEG 압축 코드를 사용하지 않아도됩니다. –

0

jpeg 압축에서 정보를 잃을 수있는 단계는 최소한 4 단계입니다. 나는 네가 무엇을 얻고 있는지 정말로 모른다. 손실 된 정보를 측정하려면 원본 압축/압축 해제와 비교할 수 있습니다.

RGB를 표준 JFIF로 인코딩하고 싶다면 FDCT를 수행해야만 색 변환, 하위 샘플링에 대한 정보를 잃어 버리고 그 단계에서 정보가 손실되지 않도록 정확하게 되돌릴 수 있다고 생각하지 않습니다. 그런 다음 양자화 단계가 있습니다. 모든 것들을 포함하는 양자화 테이블을 가지고 있지 않다면 거기에서도 정보를 잃을 것입니다.

을 요약하면 :

  1. 색 변환 Subsamling
  2. FDCT/IDCT
  3. 양자화