무손실 JPEG

Lossless JPEG

무손실 JPEGJPEG 표준에 1993년 추가된 JPEG로 무손실 압축이 가능하다. 그러나 이 용어는 또한 JPEG 2000과 JPEG-LS를 포함하여 그룹이 개발한 모든 무손실 압축 체계를 가리키는 데 사용될 수 있다.

무손실 JPEG는 손실성 JPEG 표준과는 전혀 다른 기법을 사용하여 1993년에 JPEG에 뒤늦게 추가된 기법으로 개발되었다. 가장 가까운 세 이웃(상위, 왼쪽, 왼쪽 위)을 기반으로 한 예측 방식을 사용하며, 예측오차에 엔트로피 코딩을 사용한다. 표준 인디펜던트 JPEG 그룹 라이브러리는 인코딩하거나 디코딩할 수 없지만, 오세아니아 매트릭스의 켄 머치슨은 무손실 JPEG를 처리할 수 있도록 IJG 라이브러리를 확장하는 패치를 썼다.[1] 무손실 JPEG는 의료 영상 분야에서 어느 정도 인기를 끌며, DNG와 일부 디지털 카메라에서 원시 영상을 압축하는 데 사용되지만, 그 외에는 널리 채택된 적이 없다. AdobeDNG SDK는 샘플당 최대 16비트로 무손실 JPEG를 인코딩하고 디코딩할 수 있는 소프트웨어 라이브러리를 제공한다.

ISO/IEC 공동사진 전문가 그룹은 기본 JPEG(ISO/IEC 10918-1 및 18477-1)와 JPEG XT 확장(ISO/IEC 18477 Part 2 및 6-9)과 JPEG-LS(ISO/IEC 14495)를 모두 인코딩할 수 있는 참조 소프트웨어 구현을 유지하고 있다.[2]

무손실 운전 모드

그림 1: DPCM 인코더 모델
그림 2: 무손실 모드에 대한 단순화된 블록 다이어그램
그림 3: 예측될 샘플 주위의 3개 샘플

무손실 JPEG는[3] 사실 JPEG의 작동 방식이다. 이 모드는 이산 코사인 변환(DCT) 기반 형태가 인코더 입력이 디코더 출력과 정확히 일치한다고 보장할 수 없기 때문에 존재한다. DCT를 기반으로 하는 손실 모드와 달리, 무손실 코딩 프로세스는 차동 펄스 코드 변조(DPCM)라는 단순한 예측 코딩 모델을 채택한다. 이것은 이미 영상에 코딩된 인접 샘플로부터 샘플 값의 예측을 추정하는 모델이다. 대부분의 예측 변수는 표본의 평균을 목표 표본의 바로 위와 왼쪽으로 취한다. DPCM은 각 샘플을 독립적으로 인코딩하는 대신 예측 샘플 간의 차이를 인코딩한다. 한 표본에서 다음 표본까지의 차이는 대개 0에 가깝다. 일반적인 DPCM 인코더는 그림 1에 표시되어 있다. 그림의 블록은 나중에 이전 샘플이 될 현재 샘플의 저장 역할을 한다.

무손실 운전모드의 주요 단계는 그림 2와 같다. 이 과정에서 예측 변수는 X가 표기한 위치에서 표본 값의 예측을 생성하기 위해 그림.3에 나타낸 A, B, C에서 최대 3개의 인접 표본을 결합한다. 이웃한 세 개의 샘플은 이미 인코딩된 샘플이어야 한다. 아래 표에 표시된 예측 변수 중 하나를 사용하여 X에 위치한 표본을 추정할 수 있다.[4] 표에 나열된 8개의 예측 변수 중 하나라도 사용할 수 있다. 선택 1, 2, 3은 1차원 예측 변수, 선택 4, 5, 6, 7은 2차원 예측 변수라는 점에 유의하십시오. 표의 첫 번째 선택 값인 0은 계층적 작동 모드에서 차등 코딩에만 사용된다. 모든 샘플이 예측되면 허프먼 코딩이나 산술 코딩을 사용하여 샘플 간의 차이를 무손실 코딩으로 얻을 수 있다.

선택-값 예측
0 예측할 수 없음
1 A
2 B
3 C
4 A + B – C
5 A + (B – C)/2
6 B + (A – C)/2
7 (A + B)/2

일반적으로 무손실 운전모드를 이용한 압축은 컬러 영상에 대해 약 2:1의 압축비를 달성할 수 있다.[5] 이 모드는 의료 영상 분야에서 상당히 인기가 있으며, DNG 표준에서 옵션으로 정의되지만, 그렇지 않으면 일반적인 내장형 32비트 프로세서에서 10, 12 또는 14bpp의 값에 산술을 수행하고 약간의 공간적 이득을 얻는 복잡성 때문에 그다지 널리 사용되지 않는다.[citation needed]

JPEG-LS

일반 설명

JPEG-LS는 연속 톤 영상에 대한 무손실/거의 무손실 압축 표준이다.[6] 공식 명칭은 ISO-14495-1/ITU-T.87이다.[7] 그것은 모델링과 인코딩이라고 불리는 두 개의 독립적이고 뚜렷한 단계로 구성된 단순하고 효율적인 기본 알고리즘이다. JPEG-LS는 무손실 JPEG보다 우수한 압축 효율성을 제공할 수 있는 저복잡성 무손실 및 근손실 이미지 압축 표준을 제공하기 위해 개발되었다. 당시 허프먼 코딩 기반 JPEG 무손실 표준과 기타 표준의 압축 성능이 제한되어 개발되었다. 이러한 열등한 표준에 의해 사용된 예측 잔차의 첫 번째 순서 엔트로피로는 완전한 장식을 달성할 수 없다. 반면에, JPEG-LS는 좋은 예절을 얻을 수 있다.[8][9] 이 표준의 제1부는 1999년에 확정되었다. 2003년 발매된 2부에서는 산술 코딩 등의 연장이 도입되었다. JPEG-LS의 코어는 잔차의 예측, 잔차 모델링 및 컨텍스트 기반 코딩에 의존하는 LOCO-I 알고리즘을 기반으로 한다.[10] 이 기법의 낮은 복잡성의 대부분은 예측 잔차가 양면 기하 분포(이연성 래플라스 분포라고도 함)를 따른다는 가정과 기하 분포에 근사적으로 최적인 것으로 알려진 골롬 유사 코드의 사용에서 비롯된다. 무손실 압축 외에도 JPEG-LS는 인코더에 의해 최대 절대 오차를 제어할 수 있는 손실 모드("무손실에 가까운")도 제공한다.

퍼포먼스

  • JPEG-LS의 압축은 일반적으로 JPEG 2000보다 훨씬 빠르고 원래의 무손실 JPEG 표준보다 훨씬 낫다.
  • JPEG-LS의 압축은 일반적으로 JPEG 2000보다 약간 심하지만, 이는 이미지 내용에 따라 크게 달라진다.
  • JPEG-LS용 감압은 일반적으로 JPEG 2000보다 훨씬 빠르지만, 이는 정확한 소프트웨어 디코더 구현에 따라 달라진다.
    • 이 진술은 오픈 소스 구현에 유효하다.

애플리케이션 지원

LOCO-I 알고리즘

인코딩에 앞서 모델링 단계에서 수행해야 할 두 가지 필수 단계가 있는데, 바로 장식(예언)과 오류 모델링이다.

장식/예언

LOCO-I 알고리즘에서 수평 또는 수직 가장자리의 원시 에지 검출은 그림 3에 나타낸 것과 같이 현재 픽셀 X의 인접 픽셀을 조사함으로써 달성된다. 가로 가장자리의 경우 A에 위치한 픽셀이 사용되는 반면, 세로 가장자리의 경우 B로 표시된 픽셀이 사용된다. 이 단순한 예측 변수는 중위수 모서리 탐지(MED) 예측[11] 변수 또는 LOCO-I 예측 변수라고 불린다. 픽셀 X는 다음 추측에 따라 LOCO-I 예측기에 의해 예측된다.

세 가지 단순 예측 변수는 다음과 같은 조건에 따라 선택된다. (1) X의 왼쪽에 수직 가장자리가 있는 경우 B를 선택하는 경향이 있고, (2) X 위의 수평 가장자리인 경우 A를 선택하는 경향이 있으며, (3) A + B – C가 탐지되지 않은 경우 A를 선택하는 경향이 있다.

컨텍스트 모델링

JPEG-LS 알고리즘은 각 컨텍스트 Ctx 내에서 해당 샘플 평균 e 를 사용하여 예측 오류 Ctx에 대한 조건부 기대치를 추정한다. 컨텍스트 모델링의 목적은 질감 패턴과 이미지의 국소 활동과 같은 고차 구조를 예측 오차의 컨텍스트 모델링으로 이용할 수 있다는 것이다. 컨텍스트는 지역 구배를 나타내는 인접 표본의 차이를 얻어 결정된다.

국부 경사도는 주변 표본의 부드러움과 에지니스와 같은 활동 수준을 반영한다. 이러한 차이는 예측 오차의 통계적 거동과 밀접하게 관련되어 있다는 점에 유의한다. 위의 방정식에서 발견된 각각의 차이는 대략적으로 장착이 가능하고 연결된 영역으로 정량화된다. JPEG-LS의 경우, 차이 g1, g2, g3을 9개 영역으로 정량화하고, 영역은 -4에서 4까지 색인화한다. 정량화의 목적은 현재 샘플 값과 그 컨텍스트 사이의 상호 정보를 최대화하여 고차 의존성을 포착할 수 있도록 하는 것이다. 라는 가정을 바탕으로 그 맥락을 얻을 수 있다.

양수 부호와 음수 부호의 컨텍스트를 병합한 후 총 컨텍스트 수는( ( +) 3+ )/ 2= 컨텍스트 입니다. 편향 추정은 각 컨텍스트 내의 누적 예측 오류를 컨텍스트 발생 횟수로 나누어 얻을 수 있다. LOCO-I 알고리즘에서는 이 절차를 수정하고 개선하여 소급 및 추가 횟수를 줄인다. 무분할 편향 계산 절차는 [2]에 설명되어 있다. 그런 다음 다른 맥락에서 예측 편향을 제거하는 피드백 메커니즘에 이러한 추정치를 적용함으로써 예측을 개선할 수 있다.

보정 예측 잔차 코드화

JPEG-LS의 일반 모드에서는 비 음의 실행 길이를 인코딩하는 방법인 Golomb-Rice 코드를 사용한다. 최적의 인코딩 값 2를k 가진 그것의 특별한 케이스는 더 간단한 인코딩 절차를 가능하게 한다.

균일한 영역에서 런 길이 코딩

Golomb-Rice 코드는 코딩 속도가 기호당 1비트 이상이기 때문에 낮은 엔트로피 분포를 인코딩하는 데 상당히 비효율적이기 때문에 이미지의 매끄러운 영역을 기호당 1비트 미만으로 인코딩할 수 있기 때문에 상당한 중복성이 발생할 수 있다. 엔트로피보다 코드 길이가 더 길지 않도록 개별 기호를 코드화하는 대신 기호 블록을 코드화하는 알파벳 확장자를 사용할 수 있다. 이것은 많은 기호에 과도한 코드화 길이를 분산시킨다. 이것은 JPEG-LS의 "실행" 모드로서 0 그라데이션으로 특징지어지는 평평하거나 부드러운 컨텍스트 영역이 감지되면 실행된다. 서측 기호 "a"의 런이 예상되며, 새로운 기호가 발생하거나 선의 끝에 도달하면 런이 종료된다. 총 길이 실행이 인코딩되며 인코더는 "일반" 모드로 되돌아간다.

JPEG 2000

JPEG 2000은 특수 정수 파월렛 필터(바이오토건 3/5)에 기초한 무손실 모드를 포함한다. JPEG 2000의 무손실 모드는 더 느리게 실행되며 인공 및 복합 이미지에서는[12][13] JPEG-LS보다 압축비가 더 나쁜 경우가 많지만 디지털 카메라 사진에서는 JPEG-LS의 UBC 구현보다 더 저렴하다.[14] JPEG 2000은 또한 확장 가능하고, 진보적이며, 더 광범위하게 구현된다.[citation needed]

JPEG XT

JPEG XT는 JPEG 2000의 웨이블렛 압축에 기반한 무손실 정수 대 정수 DCT 변환 모드를 포함하고 있다.

참조

  1. ^ Murchison, Ken (April 4, 1999). "Lossless JPEG support for libjpeg". Newsgroup: comp.protocols.dicom. Usenet: 372618DE.969A19D9@oceana.com. Retrieved December 12, 2017. A number of people have been interested in my patch which adds lossless JPEG support (per the original spec -- not JPEG-LS) to libjpeg v6b. I have decided to make this patch available via my ftp site (ftp://ftp.oceana.com/pub/ljpeg-6b.tar.gz).
  2. ^ "JPEG - JPEG XT". jpeg.org.
  3. ^ Pennebaker, W. B. & Mitchell, J. L. (1993). JPEG Still Image Data Compression Standard. New York: Van Nostrand Reinhold. ISBN 978-0-442-01272-4.
  4. ^ ITU-T. ISO DIS 10918-1 연속 톤 스틸 이미지(JPEG)의 디지털 압축 및 부호화. 권고안 T.81.
  5. ^ Wallace, C. K. (1991). "The JPEG still picture compression standard". Communications of the ACM. 34 (4): 31–44. CiteSeerX 10.1.1.318.4292. doi:10.1109/30.125072.
  6. ^ "HP Labs LOCO-I/JPEG-LS Home Page". Hewlett-Packard Development Company. May 13, 2005. Retrieved 24 October 2011.
  7. ^ "T.87 : Information technology – Lossless and near-lossless compression of continuous-tone still images – Baseline". International Telecommunication Union. Retrieved 24 October 2011.
  8. ^ 1996년 3월 Proc. 1996년 데이터 압축 회의, Snowbird, UT, 1996년 3월 페이지 140–149에서 M. J. Weinberger, G. Seroussi 및 G. Sapiro, "LOCO-I: 낮은 복잡성, 컨텍스트 기반, 무손실 이미지 압축 알고리즘".
  9. ^ M. Weinberger, G. Seroussi, G. Sapiro, "LOCO-I 무손실 이미지 압축 알고리즘: JPEG-LS로의 원칙과 표준화," IEEE Transs. 이미지 처리, 제9권, 제8권, 페이지 1309–1324, 2000년 8월, 원래 Hewlett-Packard Laboratories Technical Report No. HPL-98-193R1, 1998년 11월, 1999년 10월 개정. [1]에서 이용 가능.
  10. ^ http://www.hpl.hp.com/loco/HPL-98-193R1.pdf LOCO-I 알고리즘
  11. ^ Memon, Nasir D.; Wu, Xiaolin; Sippy, V. & Miller, G. (1997). "Interband coding extension of the new lossless JPEG standard". Proceedings of SPIE. 3024 (47): 47–58. Bibcode:1997SPIE.3024...47M. doi:10.1117/12.263270.
  12. ^ "Archived copy" (PDF). Archived from the original (PDF) on 2006-07-02. Retrieved 2006-06-17.CS1 maint: 제목으로 보관된 복사본(링크)
  13. ^ "Archived copy". Archived from the original on 2007-02-22. Retrieved 2007-02-07.CS1 maint: 제목으로 보관된 복사본(링크)
  14. ^ "Lossless Photo Compression Benchmark". www.imagecompression.info.

외부 링크