700 likes | 1.93k Views
멀티미디어 신호처리 이론 및 실습. 강의자료 6 장 : JPEG 압축표준의 이해. 수업목표 및 내용. JPEG 부호화 과정을 이해한다 . JPEG 복호화 과정을 이해한다 . 복원영상의 화질측정 방법을 알아본다 . 실습 9: JPEG 압축 및 복호실습. JPEG 압축 방식의 분류. JPEG 압축방식. 무손실 부호화 (Lossless). 손실 부호화 (Lossy). 공간적 (Spatial) 예측방식. DCT 기반 방식. 기본방식 (Baseline). 확장방식 (Extended).
E N D
멀티미디어 신호처리이론 및 실습 강의자료 6장 : JPEG 압축표준의 이해
수업목표 및 내용 • JPEG 부호화 과정을 이해한다. • JPEG 복호화 과정을 이해한다. • 복원영상의 화질측정 방법을 알아본다. • 실습 9: JPEG 압축 및 복호실습
JPEG 압축 방식의 분류 JPEG 압축방식 무손실 부호화 (Lossless) 손실 부호화 (Lossy) 공간적(Spatial) 예측방식 DCT 기반 방식 기본방식 (Baseline) 확장방식 (Extended) [JPEG 압축 방식의 분류]
JPEG 부호화 과정 엔트로피 부호화 DC 부호화 (Differential Encoding) 양자화 과정 허프만 부호화 프레임 빌더 (frame builder) • 전처리기 • 8x8 블록 • level shift FDCT 입력영상 양자화기 압축비트열 AC 부호화 (Zig-Zag 스캔) (Run-length Encoding) 양자화 테이블 허프만 테이블 [JPEG 부호화 블록도]
그레이 영상 8x8 8x8 8x8 8x8 … 8x8 B Forward DCT G 8x8 8x8 8x8 8x8 R 레벨-쉬프트 (level-shift) 8x8 8x8 8x8 …. Cb Y 8x8 8x8 8x8 8x8 … 8x8 Cr 8x8 블록 생성 입력영상 JPEG 부호화 - 1. 전처리과정
JPEG 부호화-1. 전처리과정 8 8 8 블록1 블록2 블록3 블록4 … 8 Forward DCT 블록N 블록3 블록2 블록1 …. …. … 블록N
JPEG 부호화 - 2. FDCT [DCT 변환 원리]
JPEG 부호화 - 2. FDCT [8x8 화소 블록에서 DCT 계수의 주파수 분포] [DCT 변환 예]
JPEG 부호화 - 4. 지그-재그 스캔 [지그-재그 스캔]
JPEG 부호화 - 4. 지그-재그 스캔 (a) 지그-재그 스캔을 이용한 2-차원 데이터의 벡터화, (b) 벡터화 예
JPEG 부호화 - 4. 지그-재그 스캔 [양자화 후의 8x8 값] [지그-재그 스캔하지 않았을 경우] [6, -1, -1, 0, 0, 0, 0, 0, 0, -2, 2, -1, 0, 0, 0, 0, 0, 1, 0, …., 0] [지그-재그 스캔 했을 경우] [6, -1, 0, 0, -2, -1, 0, 2, 1, 0, 0, 0, 0, -1, 0, ...., 0]
JPEG 부호화 - 5. 엔트로피 부호화 • DC 계수에 대한 차분부호화 및 허프만 부호화
JPEG 부호화 - 5. 엔트로피 부호화 1) DC 값의 차분부호화 & 허프만 부호화 첫번째 블록 각 8x8 블록 DCT후의 DC 값 7 10 11 12 5 11 13 …. 0 - - - - - - -1 0 -2 -2 1 12 …. • 차분신호는 (SSS, Value)의 형태로 분류한다. • SSS: Value를 부호화하는데 필요한 비트수 • SSS와 Value가 허프만 부호화된다.
JPEG 부호화 - 5. 엔트로피 부호화 [SSS 값에 대한 기본(default) 허프만 코드]
JPEG 부호화 - 5. 엔트로피 부호화 1) DC 값의 차분부호화 & 허프만 부호화
JPEG 부호화 - 5. 엔트로피 부호화 2) AC 계수값에 대한 런-길이 부호화 • AC 계수들은 (Skip, Value)의 형태로 구성된다. • Skip은 1차원 벡터에서 Value의 값이 나올 때 까지의 0의 수를 의미 • 63개의 AC 계수들은 다음과 같이 런-길이 부호화로 표현된다. • (0,6) (0,7) (0,3) (0,3) (0,3) (0,2) (0,2) (0,2) (0,2) (0,0) • 마지막 (0, 0)는 EOB(End of Block)를 의미한다. • Value는 DC 계수와 마찬가지로 SSS/Value의 형태로 부호화된다.
JPEG 부호화 - 5. 엔트로피 부호화 2) AC 계수값에 대한 런-길이 부호화 • (0, 6) (0, 7) (3, 3) (0, -1) (0, 0)에 대한 Skip, SSS, Value 값은 다음과 같다.
JPEG 부호화 - 5. 엔트로피 부호화 3) AC 계수값의 허프만 부호화 • AC 계수에 대한 최종 비트열은 다음과 같다. • [100110 100111 11111011111 000 1010]
JPEG 부호화 - 예제 6-1 • 다음과 같은 밝기값(Y) 신호 8x8 영상블록에 대하여 JPEG 압축 부호화한 압축비트열을 구해보자. 그리고 한 화소가 8비트로 표현된다고 가정하면 압축율은 얼마인지 계산해보자. 각 화소에서 대한 전처리로 레벨-쉬프트(level shift) 즉 평균 밝기값 128을 뺀 경우와 그렇지 않은 경우에 대하여 압축율을 비교해보자.(참고로 이전 8x8 영상블록의 DC 계수값을 양자화 한 후의 값은 평균 밝기값 128을 뺀 경우는 4이고 그렇지 않은 경우는 52 라고 가정하자.)
JPEG 부호화 - 예제 6-1 [그림 6-11] 임의의 8x8 영상블록
예제 6-1) 풀이 1) 레벨-쉬프트를 한 경우, 즉 평균 밝기값 128을 뺀 경우 (a) 밝기값 이동 전처리 결과(화소값-128) (b) DCT 변환 후의 DCT 계수 결과
예제 6-1) 풀이 (c) 양자화 후의 결과 (d) 지그재그 스캔 결과
예제 6-1) 풀이 • DC 계수 차분 부호화: 6-4 = 2 • DC 계수의 허프만 부호화: (SSS, Value)=(100, 10) -> 10010 • AC 계수 부호화 - 런-길이 부호화(Skip, Value)=(0,-1) (2,-2) (0,-1) (1,2) (0,1) (4,-1) (0,0) - 허프만 부호화
예제 6-1) 풀이 • AC 계수에 대한 압축비트열: 000 1111100001 000 11100110 001 1110110 1010 • 압축전 비트수: 64화소 x 8비트 = 512 비트 • 압축후 비트수: DC계수: 5비트, AC 계수: 38비트,총: 43 비트 압축률: 512/43 = 11.91 배의 압축효과
예제 6-1) 풀이 2) 평균 밝기값 128을 빼지 않고 그냥 압축한 경우 (a) DCT 변환 후의 결과
예제 6-1) 풀이 (b) 양자화 후의 결과 (c) 지그-재그 스캔 결과
예제 6-1) 풀이 • DC 계수 차분 부호화: 70-52 = 8 • DC 계수의 허프만 부호화: (SSS, Value)=(101, 1000) -> 1011000 • AC 계수 부호화 - 런-길이 부호화(Skip, Value)=(0,-2) (2,-2) (0,-1) (1,2) (0,1) (4,-1) (0,0) - 허프만 부호화
예제 6-1) 풀이 • AC 계수에 대한 압축비트열: 0101 1111100001 000 11100110 001 1110110 1010 • 압축전 비트수: 64화소 x 8비트 = 512 비트 • 압축후 비트수: DC계수: 7비트, AC 계수: 39비트,총: 46 비트 • 압축률: 512/46 = 11.13 배의 압축효과
JPEG 부호화 - 6. 프레임 빌딩 [JPEG 파일 구조]
JPEG 부호화 - 6. 프레임 빌딩 • Tables: 양자화 테이블(Y, CbCr) 및 허프만 테이블 • 프레임 헤더(frame header): 영상의 가로 및 세로 크기 정보, 영상 표현에 사용된 형식(CLUT, R/G/B, Y/Cb/Cr) 및 사용된 디지털 샘플링 방법(4:2:2, 4:2:0 등) 등을 포함한다. • 화소당 비트수 • 영상의 해상도(넓이, 높이) • 성분의 수 • (각 성분을 위한) 고유 ID • (각 성분을 위한) 수직/수평 표본화(샘플링) 인수
JPEG 부호화 - 6. 프레임 빌딩 • 주사 헤더(scan header):원본영상의 Identity(예를 들면, R/G/B 등)에 대한 정보와 각 요소에 대한 디지털에 사용된 비트수, 양자화 테이블 등의 정보가 포함된다. • 주사하는 성분의 수 • (각 성분을 위한) 성분 ID • (각 성분을 위한) 허프만/산술 부호화 표
6.3 JPEG-복호화 엔트로피 복호화 DC 복호기 (Differential Decoding) 역양자화 과정 압축 비트열 프레임 복호 (frame decoder) 허프만 복호화 역양자화기 영상 빌더 (image builder) IDCT 입력 영상 AC 복호기 (역 Zig-Zag 스캔) (역 Run-length Decoding) 양자화 테이블 허프만 테이블 [그림 6-12] JPEG 복호화 블록도
JPEG-복호화 • JPEG 복호화 과정은 부호화 과정의 역순으로 진행된다. • 출력 스트림에 부가적으로 추가된 헤더정보를 이용하여 실제 데이터 압축 부분을 복호한다. • 마지막 영상빌더(image builder) 부분은 부호화전 전처리과정에서 수행된 레벨-쉬프트과정과 8x8 블록 생성의 역과정을 거친 후 각 블록을 모아서 한 장의 원본영상을 만드는 과정이다. • 압축 비트스트림을 복호하는 과정에서 전치정리(Prefix Property)가 만족되어야 복호가 가능하다.
JPEG 복호화 –전치정리란? • 전치정리(Prefix Property)란? • 짧은 비트의 코드는 길이가 더 긴 코드의 앞부분과 일치해서는 안 된다는 성질을 말한다. 예를 들어, 심볼 A가 01로 코드화 되었다면, 다른 어떤 심볼도 01로 시작되는 코드로 부호화 되어서는 안 된다 • 그 이유는 심볼 B가 01001로 코드화 되었다고 가정하면, 복호 시 010010... 이라는 비트열을 복호할 때 어떻게 복호할 지 알 수 없기 때문이다. 01을 먼저 복호할 지 아니면 01001을 B로 복호할 지 알 수 없다.
JPEG 복호화 –비트스트림 복호과정 시작 코드워드 버퍼를 비운다 비트스트림 버퍼에서 코드워드 버퍼로 다음 비트를 읽어온다 No No 코드워드 버퍼의 내용이 저장되어 있는 코드워드와 일치하느냐? Yes 일치하는 코드워드로 복호화한다. 모든 비트스트림이 처리되었는가? Yes 끝
JPEG 복호화 –비트스트림 복호과정 [비트스트림 복호 예]
6.4 복원영상 화질측정 방법 • 주관적인 화질측정 • ITU-R Recommendation B.T.500-11에 정의 • Double Stimulus Continuous Quality Scale (DSCQS) 방법으로 평가자에게 A와 B라는 한 쌍의 이미지 또는 짧은 동영상을 순차적으로 보여주고 각 영상 또는 동영상의 화질에 대한 점수(quality score)를 ‘매우 좋음(excellent)'에서 '나쁨(bad)'까지의 5단계로 평가하는 방법
복원영상 화질측정 방법 • 객관적인 화질측정 • PSNR (Peak-Signal-to Noise Ratio) 여기서, n = 이미지 샘플의 비트수를 나타낸다.
예제 6-2 예제 6-1에서 전처리(밝기값 평균 128을 뺀 경우)한 경우에 대하여 역엔트로피 부호화 및 IDCT, 역양자화 후의 복원된 8x8 블록을 구하고, 그 블록에 대한 MSE값은 얼마인가? 풀이) 엔트로피 복호화후 역 지그-재그 스캔하면 다음 (a)와 같고, 그 이후의 과정에 대한 결과값은 (c), (d), (e)에 나타내었다. 최종적으로 원본 영상과 복원된 영상의 차는 (f)와 같다.
예제 6-2) 풀이 • 엔트로피 복호화 후 • 역지그-재그스캔 후의 결과 (b) 밝기값에 대한 양자화표
예제 6-2) 풀이 (d) IDCT 후의 결과 (c) 역양자화 후의 결과
예제 6-2) 풀이 (e) 복원된 블록 (화소값+128)
예제 6-2) 풀이 (f) 오차 (복원된 블록-원본 블록)
6.5 JPEG의 특징 ① JPEG은 저해상도의 표시계에서 고해상도의 인쇄계에 이르기까지 여러 종류의 해상도에 대응할 수 있고, 폭넓은 응용에 적용될 수 있도록 고려되었다. ② 다양한 색공간에 대응하고 있다. ③ JPEG은 디지털 방식의 전자 스틸 카메라나 영상 데이터 베이스와 같은 저장계, 정지화 전송장치나 오디오 그래픽 회의, 영상회의 등의 전송계, 나아가서 컬러 프린터등의 인쇄계등에 널리 이용되고 있다. 컬러 정지영상압축의 국제표준방식으로 세계적인 인정을 받고 있다.
6.6 JPEG 2000 • DCT 변환 기반과 웨이블릿 변환을 기반으로 한 압축 • 낮은-비트율 압축: 현재 JPEG 표준은 중간 혹은 높은 비트율에서 압축성능을 보여준다. • 무손실과 손실 압축:단일 비트스트림에서 손실 압축과 무손실 압축을 제공한다. • 큰 영상 압축: 새로운 표준은 64k x 64k보다 더 큰 영상 해상도를 지원한다. • 점진적 전송: 낮은 비트율에서부터 높은 비트율까지 끊김이 없는 화질과 해상도의 스케일러빌리티를 제공한다.
6.6 JPEG 2000 • 합성문서: JPEG2000 표준은 파일의 부분으로서 부가적인 영상이 아닌 데이터를 통합시키기 위해 메타데이터 매커니즘을 제공한다. • 관심영역 부호화: 영상의 나머지 부분보다 더 나은 화질로 부호화될 수 있는 관심영역(ROI: Region of Interest) 지정을 허용한다. • 잡음이 있는 환경에서의 전송: 무선 네트워크와 인터넷과 같은 잡음이 있는 환경에서 전송을 위한 향상된 에러 복원력을 제공한다.
6.6 JPEG 2000 [그림 6-15] JPEG2000의 부호화 과정