TIFF 컨테이너 내에서 JPEG 비트스트림을 혼합합니까?

TIFF 컨테이너 내에서 JPEG 비트스트림을 혼합합니까?

내 Linux 시스템(Debian)에서는 JPEG를 디코딩한 다음 TIFF로 다시 인코딩할 수 있습니다.사용:

% ffmpeg -i input.jpeg -pix_fmt rgba output.tiff

또는 libtiff-tools를 사용할 수도 있습니다.

% convert -size 256x256 -depth 8 xc:white white.ppm
% ppm2tiff white.ppm white.tiff
% tiffcp -c jpeg white.tiff white.jpg.tiff

tiffcpJPEG 압축(손실이 있는 프로세스)은 작업 중에 내부적으로 수행됩니다.

하지만 난 하고 싶어무손실JPEG에서 TIFF 컨테이너/형식으로 혼합(또는 그 반대로: 입력 TIFF/JPEG 파일에서 JPEG 비트스트림 추출). ffmpeg나 다른 UNIX 명령줄 도구를 사용하여 이 작업을 수행할 수 있습니까? 예를 들어 JPEG를 M-JPEG로 혼합할 수 있습니다.무손실:

% ffmpeg -framerate 30 -i input%03d.jpg -codec copy output.mjpeg

참고로 다음은 일반적인 TIFF/JPEG입니다. 듀얼 스트림에서 원본 JPEG를 어떻게 추출합니까?

% tiffinfo white.jpg.tiff
TIFF Directory at offset 0x430 (1072)
  Image Width: 256 Image Length: 256
  Bits/Sample: 8
  Compression Scheme: JPEG
  Photometric Interpretation: YCbCr
  Orientation: row 0 top, col 0 lhs
  Samples/Pixel: 3
  Rows/Strip: 256
  Planar Configuration: single image plane
  Reference Black/White:
     0:     0   255
     1:   128   255
     2:   128   255
  JPEG Tables: (574 bytes)

답변1

TIFF에서 JPEG를 추출하는 한 가지 가능한 방법은 다음과 같습니다.

$ tiff2pdf -o white.jpg.tiff.pdf  white.jpg.tiff 
$ pdfimages -all white.jpg.tiff.pdf root
$ file root-000.jpg
root-000.jpg: JPEG image data

tiff2pdf 매뉴얼 페이지에 다음과 같이 나와 있습니다.

입력 TIFF에 JPEG 또는 단일 Zip/Deflate 압축 정보가 포함되어 있고 해당 정보가 구성된 경우 압축 없음 및 통과 없음 옵션이 설정되지 않으면 PDF 파일은 트랜스코딩되지 않습니다.

Huffman 테이블이 이동되었기 때문에 TIFF는 JPEG 비트스트림의 "봉투"가 아니기 때문에 반대 작업은 처음에 생각했던 것보다 약간 더 복잡합니다.

관련 정보