여러 JPEG 이미지를 하나의 큰 이미지로 함께 저장할 때 저장 공간을 줄이는 문제를보고 있습니다. 기본적인 직관은 이미지가 비슷한 위치에 있거나 같은 시점에서 찍은 것과 같은 유사점을 갖는 경향이 있으며 공간을 절약하기 위해이 유사점을 활용할 수 있습니까?JPEG 이미지 압축
전체적인 흐름은 : 입력 JPG
이미지 -> 함께 유사한 RGB
타일 재구성 - -> 다시 포맷 변환 JPG
> 각 화상 RGB
이미지 타일로 변환된다. 당연히 이미지를 검색 할 때 역순 처리가 필요합니다.
타일 재구성을위한 유사성 척도로 Y 구성 요소의 DC 계수를 사용하여 10 개의 이미지에 대해 ~ 8 % 공간 절약 효과를 얻었습니다. 100 개의 이미지에 대해 이렇게하면 절약 효과가 ~ 3 %로 줄어 듭니다.
타일 재구성 후 절약 효과를 얻으려면 어떻게해야합니까? 즉 JPEG 인코딩 프로세스의 어느 부분에서이 이미지 타일 재구성을 활용할 수 있습니까?
다른 일부 거기에 대신 Y 구성 요소의 DC 계수의, 당신이 생각할 수있는 다른 지표보다
개정 JPEG 인코딩에 의해 악용 될 것이다있다 JPG 이외의 이미지 형식으로이 종류의 유사성을 악용하여 이미지를 여러 개 모을 때 더 좋습니까? 예를 들어 PNG처럼? 이 될 것입니다하지만 - 당신이 다음 이미지의 가장자리가없는 불연속과 완벽하게 일치, 특히 (서로 유사한 지역을 넣을 때,
첫째 : 당신이 혜택을 볼 곳
감사합니다. libjpeg을 사용하여 인코딩 및 디코딩을 수행합니다. JPEG는 8x8 매크로 블록 내에서 DCT를 수행하므로 매크로 블록보다 큰 타일 간의 유사성은별로 도움이되지 않습니다. 그러나 이웃 매크로 블록의 DCT 계수는 상대적으로 인코딩 된 것으로 생각되며이 타일 재구성을 통해 어느 정도 개선 될 수 있습니다. 나는 내 질문을 수정했다. 한번보세요. – user655617
다행을 밝히면 도움이됩니다. 예, libjpeg는 JPEG 표준의 IJG의 참조 JFIF 구현입니다. 델타 인코딩 (이웃 매크로 블록 중)을 사용하여 DCT 계수를 기억하지 못합니다. AFAIR, 모든 매크로 블록은 계수의 단일 8x8 행렬이되고, 그 다음에 데시 메이트됩니다 (이를 저장하는 데 필요한 비트 수를 줄이기 위해 나뉘어집니다 - 여기에서 손실 압축의 "손실"이 발생합니다). 그리고 zig에서 읽습니다 -zag 패션. 이 순서는 0의 장기 실행을 생성하며, 이는 실행 길이 인코딩을 통해 효율적으로 압축됩니다 (17 개의 0을 저장하는 대신 17, 0을 저장함). –