640 likes | 1.05k Views
9 장 영상 압축 표준. 9.1 JPEG 표준 9.2 JPEG 2000 표준 9.3 JPEG-LS 표준 9.4 이진 영상 압축 표준. 9.1 JPEG 표준. JPEG 은 “ Joint Photographic Experts Group” 에 의해 개발된 영상 압축 표준 . 그것은 1992 년에 국제 표준으로써 공식적으로 받아들여짐 .
E N D
9장 영상 압축 표준 9.1 JPEG 표준 9.2 JPEG 2000 표준 9.3 JPEG-LS 표준 9.4 이진 영상 압축 표준 멀티미디어시스템
9.1 JPEG 표준 • JPEG은 “Joint Photographic Experts Group”에 의해 개발된 영상 압축 표준. 그것은 1992년에 국제 표준으로써 공식적으로 받아들여짐. • JPEG은 손실 영상 압축(lossy image compression) 방식. 그것은 DCT (Discrete Cosine Transform)변환 부호화 방식을 사용함. • 영상은 공간 영역에서 i와 j(또는 관습적으로 x와 y)의 함수임. • 2차원 DCT는 두 정수 u, v에 의해 인덱스 된 공간 주파수 영역(spatial frequency components)에서 함수 F(u, v)인 주파수 반응을 가져오기 위해 JPEG에서 한 단계로 사용됨. 멀티미디어시스템
JPEG 영상 압축을 위한 관찰 결과 • JPEG에서 DCT 변환 부호화 방식의 효율성은 세 가지 주요 관찰 결과(observations)에 의존함. 관찰결과 1 : 유용한 영상 내용은 영상 내에서 비교적 천천히 변한다. 즉, 작은 영역에서 (예를 들면, 8×8 영상 블럭 내에서) 명암 값이 크게 여러 번 변화하는 것은 일반적이지 않다. • 그러므로 “공간 중복성(spatial redundancy)” 이란 영상에서 많은 정보들이 반복된다는 것을 나타냄. 멀티미디어시스템
JPEG 영상 압축을 위한 관찰결과(계속) 관찰결과 2 : 정신물리학적인 실험은 저주파수 성분보다 매우 높은 공간 주파수 성분이 손실을 훨씬 적게 인지한다는 것을 제시한다. • 높은 공간 주파수 내용을 크게 줄임으로써 공간 중복성을 줄일 수 있음. 관찰결과 3 : 시각적인 예민함(빽빽하게 일정한 간격이 유지된 선들을 구분하는데 있어서의 정확성)은 칼라에서보다 명암(“흑과 백”)에서 훨씬 더 크다. • 색도(chroma) 부표본화(4:2:0)는 JPEG에서 사용됨. 5.3.1절 색차신호 부표본화 참고 멀티미디어시스템
그림 9.1: JPEG 부호화기 블럭도 멀티미디어시스템
9.1.1 JPEG 영상 압축의 주 단계 • RGB를 YIQ 또는 YUV로 변환하고 색을 부표본화 • 영상 블럭별로 DCT 수행 • 양자화(quantization) • 지그재그(zigzag) 순서로 정렬하고, 런-길이(run-length) 부호화를 수행 • 엔트로피(entropy) 부호화를 수행 lossless data compression(Huffman coding or Arithmetic coding) 멀티미디어시스템
영상 블럭별 DCT • 각 영상은 8×8 블록들로 나뉘어짐. 2차원 DCT는 각 블럭 영상 f(i, j)에 적용되고, 각 블록은 DCT 계수 F(u, v)를 출력으로 가짐. • 그러나, 블럭들을 사용하는 것은 그것에 인접해 있는 배경으로부터 각 블럭을 분리시키는 효과를 가짐. 이것은 사용자가 높은 압축율(compression ratio)을 지정할 때 JPEG 영상이 고르지 못한(“블럭화가 나타나는”) 것처럼 보이는 이유임. 멀티미디어시스템
양자화 • F(u, v)는 DCT 계수를 나타내고, Q(u, v)는 “양자화 행렬(quantization matrix)”이고, (u, v)는 JPEG이 연속되는 엔트로피 부호화에서 사용할 양자화된 DCT 계수를 나타냄. • 양자화 단계는 JPEG 압축에서 손실의 주 원천. • Q(u, v)의 값들은 아래편 모서리로 갈수록 더 큰 값을 가지려는 경향이 있음. 이것은 더 높은 공간 주파수에서 더 많은 손실을 가지도록 하는 것을 목표로 함.- 관찰결과 1과 2에 의해 뒷받침된 실행. • 표 9.1과 9.2에 보이는 Q(u, v)의 기본값은 JPEG 영상에서 인지할 수 있는 손실을 최소화하는 반면 압축율의 최대화를 목표로 한, 정신 물리학적인 연구들로부터 나왔음. 멀티미디어시스템
표 9.1 휘도 양자화 표 표 9.2 색도 양자화 표 멀티미디어시스템
그림 9.2: 평탄한 영상 블럭을 위한 JPEG 압축 멀티미디어시스템
그림 9.2(계속): 평탄한 영상 블럭을 위한 JPEG 압축 멀티미디어시스템
그림 9.3: 질감이 있는 영상 블럭을 위한 JPEG 압축 멀티미디어시스템
그림 9.3(계속): 질감이 있는 영상 블럭을 위한 JPEG 압축 멀티미디어시스템
AC 계수에서 런-길이 부호화(RLC) RLC는 (u, v)값을 집합{뛰어넘을 0의 수, 다음 0이 아닌 값}으로 변화시키는 것이 목적. 0들의 긴 런을 가장 잘 맞출 것 같게 만드는 것: 지그재그 주사(zigzag scan)는 8×8 행렬 (u, v)를 64벡터로 변화시킴. 그림 9.4: JPEG에서 지그재그 주사
DC 계수에 대한 DPCM • DC계수는 AC계수들로부터 분리하여 부호화됨. 차분 펄스 부호 변조(DPCM: Differential Pulse Code Modulation)는 부호화 방법임. • 만약 첫 다섯 영상 블럭들의 DC계수를 150, 155, 149, 152, 144로 두고, di = DCi+1– DCi이고 d0 = DC0라고 가정하면, DPCM은 150, 5, -6, 3, -8을 생성할 것임. 멀티미디어시스템
엔트로피 부호화 • 가능한 더욱 많이 압축하기 위하여 DC와 AC계수는 마지막으로 엔트로피 부호화 단계를 거침. • 예제로써 DC의 사용: DPCM으로 부호화된 각 DC 계수는 한 쌍의 심볼(SIZE, AMPLITUDE)로 표현되는데, 여기서 SIZE는 계수를 표현하는데 얼마나 많은 비트들이 필요한지를 나타내고 AMPLITUDE는 실제 비트율을 포함함. • 우리가 사용하는 예에서 코드 150, 5, -6, 3, -8은 아래와 같이 변경될 것임. • 더 적은 SIZE들이 훨씬 더 자주 일어나므로 SIZE는 허프만 부호화됨. AMPLITUDE는 허프만 부호화되지 않음. 그것의 값이 광범위하게 변할 수 있기 때문에, 허프만 부호화는 상당한 이득을 갖지 못함. 멀티미디어시스템
표 9.3 기준 엔트로피 부호화 세부사항 –크기 카테고리 멀티미디어시스템
9.1.2 흔히 사용되는 네 가지 JPEG 모드 • 순차 모드(sequential mode) –지금까지의 토의에서 함축적으로 가정한 기본 JPEG 모드. 각 회색도 영상 또는 칼라 영상 성분은 왼쪽에서 오른쪽, 위에서 아래로의 주사로 단 한번에 부호화됨. • Motion JPEG 비디오 코덱은 Baseline Sequential JPEG 사용 • 점진적 모드(progressive mode) • 계층적 모드(hierarchical mode) • 무손실 모드(lossless mode) – 7장에서 논의한 것과 같이, JPEG-LS로 대치됨.(9.3절을 참조) 멀티미디어시스템
점진적 모드 점진적 JPEG은 영상의 낮은 화질의 버전을 빠르게 전달하고 뒤이어 높은 화질을 전달함. - 웹브라우저에서 폭넓게 지원 1.스펙트럼 선택: 이 방식은 DCT 계수의 “스펙트럼”(공간주파수 스펙트럼)특성을 이용. 더 높은 AC 성분들은 단지 세부적인 정보만을 제공. 주사 1 : DC와 처음의 몇몇 AC 성분들을 부호화함. 예) AC1, AC2. 주사 2 : 약간의 더 많은 AC 성분들을 부호화함. 예) AC3, AC4, AC5 주사 k : 나머지 몇 개의 AC 들을 부호화함. 예) AC61, AC62, AC63 멀티미디어시스템
점진적 모드(계속) 2.연속적인 근사: 점진적으로 스펙트럼 영역을 부호화하는 대신에, 모든 DCT 계수들이 동시에 부호화됨. 그러나 처음에는 그들의 가장 중요한 비트들(MSBs)를 가지고 부호화됨. 주사 1 : 처음의 몇몇 MSB들을 부호화함. 예) 비트 7, 6, 5, 4 주사 2 : 약간 덜 중요한 비트들을 부호화함. 예) 비트 3 주사 m : 가장 덜 중요한 비트(LSB), 비트 0을 부호화함. 멀티미디어시스템
계층적 모드 • 가장 낮은 해상도에서 부호화된 영상은 기본적으로 압축된 저역-통과 필터처리된 영상임. 이에 반해 연속적으로 더 높은 해상도에서의 영상은 추가적인 세부사항(더 낮은 해상도 영상과의 차이)들을 제공함. • 점진적 JPEG과 유사하게, 계층적 JPEG 영상들은 점진적으로 화질이 개선되는 다중 전송 형식으로 전달될 수 있음. 멀티미디어시스템
그림 9.5: 계층적 JPEG 블럭도 멀티미디어시스템
3-레벨 계층 JPEG 부호화기 1.영상 해상도 축소: 각 차원에서 f2(예, 256×256)을 얻기 위해 2의 인수로 입력 영상 f(예, 512×512)의 해상도를 축소. f4(예, 128×128)을 얻을 때까지 이 과정을 반복. 2.저해상도 f4를 압축: f4를 다른 JPEG방식(예, 순차, 점진적)으로 F4를 얻도록 부호화함. 3.차분영상 d2를 압축: (a) 4를 얻기 위해 F4를 복호화함. 보간기법을 이용하여 4를 f2와 같은 해상도가 되게 확대. 그것을 E( 4)라 명함. (b)차분 d2 = f2–E( 4)를 다른 JPEG방식(예, 순차, 점진적)으로 부호화하여 D2를 생성. 4.차분영상 d1을 압축: (a) 2을 얻기 위해 D2를 복호화함; 그것을 E( 4)에 더하여 2 = E( 4) + 2를 구함. 2는 f2의 압축 및 신장 후의 버전임. (b) 차분 d1 = f–E( 2)를 다른 JPEG방식(예, 순차, 점진적)으로 부호화하여 D1을 생성. 멀티미디어시스템
3-레벨 계층 JPEG 복호화기 1.부호화된 저해상도 영상 F4를 복호화: • 부호화기에서와 똑같은 JPEG 방식을 이용하여 F4를 복호화하여 4를 구함. • 2.중간단계 해상도에서 영상 2를 재구성: • 2를 얻기 위해 E( 4) + 2를 이용함. • 3.원 해상도에서 영상 를 재구성: • 를 얻기 위해 E( 2) + 1을 이용함. 멀티미디어시스템
9.1.3 JPEG 비트스트림에 관한 일견 -프레임은 영상 -주사는 화소를 거쳐 읽어 나가는 것 -세그먼트는 블록의 그룹 -블록은 8x8 화소로 구성 그림 9.6: JPEG 비트스트림 멀티미디어시스템
JPEG 헤더 정보의 예 • 프레임 헤더 • 화소당 비트수 • 영상의 넓이, 높이 • 성분의 수 • 각 성분을 위한 고유 ID • 각 성분을 위한 수직/수평 샘플링 인수 • 각 성분을 위해 사용할 양자화 표 • 주사헤더(Scan header) • 주사하는 성분의 수 • 각 성분을 위한 성분 ID • 각 성분을 위한 허프만/산술 부호화 표 멀티미디어시스템
9.2 JPEG2000 표준 • 디자인 목표 : • 더 나은 율-왜곡의 균형과 향상된 주관적 영상 화질 제공 • 현재 JPEG 표준에서 부족한 추가적인 기능들을 제공 • JPEG2000표준은 다음의 문제들을 해결하고자 함. • 무손실 및 손실 압축: 현재까지 어떤 표준도 단일 비트스트림에서 보다 뛰어난 무손실 압축과 손실 압축을 제공할 수 없음. 멀티미디어시스템
낮은 비트율 압축: 현재 JPEG 표준은 중간 혹은 높은 비트율에서 훌륭한 율-왜곡 성능을 제공함. 이 문제는 우리가 웹을 인식하는 손목시계 등과 같은 웹 기반의 유비쿼터스 장치에서 영상을 받고자 한다면 중요함. • 큰 영상: 새로운 표준은 타일링을 하지 않고 64K×64K보다 더 큰 영상 해상도를 지원할 것임. 그것은 영상 크기가 232-1에 이르기까지 처리할 수 있음. • 단일 신장 구조: 현재 JPEG표준은 특정한 응용에서만 사용되고 대부분의 JPEG 복호화기에서 사용되지 않는 44가지 모드를 갖고 있음. 멀티미디어시스템
잡음이 있는 환경에서의 전송: 새로운 표준은 무선 네트워크와 인터넷과 같은 잡음이 있는 환경에서 전송을 위한 향상된 오류 복원력을 제공할 것임. • 점진적 전송: 새로운 표준은 낮은 비트율에서부터 높은 비트율까지 끊김이 없는 화질과 해상도의 스케일러빌러티를 제공함. 목표 비트율과 재생 해상도는 압축시에는 알 필요가 없음. • 관심 영역 부호화: 새로운 표준은 영상의 나머지 부분보다 더 나은 화질로 부호화 될 수 있는 관심 영역(ROI: Regions of Interest) 지정을 허용함. 예를 들면, 발표하고 있는 사람의 얼굴을 주위의 가구보다 더 나은 화질로 부호화하고 싶어할 때 사용. 멀티미디어시스템
컴퓨터를 통해 생성된 영상: 현재 JPEG표준은 자연 영상을 위해 최적화되고 컴퓨터를 통해 생성된 영상에 대해서는 잘 수행되지 않음. • 합성 문서: 새로운 표준은 파일의 부분으로서 부가적인 영상이 아닌 데이터를 통합시키기 위해 메타데이터 매커니즘을 제공함. 하나의 중요한 예로써, 영상과 함께 문서를 포함하기 위해서 유용할 것임. • 게다가, JPEG2000은 256개의 정보 채널까지 다룰 수 있음. 이에 반해 현재 JPEG표준은 오직 세 칼라 채널만을 다룰 수 있음. 멀티미디어시스템
JPEG2000 영상 압축의 특성 • 웨이블릿 변환(wavelet transform)에 의해 생성된 각 서브밴드 LL, LH, HL, HH를 “코드 블럭(code blocks)”이라 불리는 작은 블럭들로 분할하는 최적화된 절단을 갖는 내장형 블럭 부호화(EBCOT)알고리즘을 사용. • 독립적이고 스케일러블한 비트스트림이 각 코드 블럭을 위해 생성. ⇒ 향상된 오류 복원력. 그림 9.7: EBCOT 코드 블럭 구조 멀티미디어시스템
JPEG2000 영상 압축의 주요 단계 • 블럭 부호화와 비트스트림 생성 • 압축 후 율 왜곡(PCRD: post compression rate distortion) 최적화 • 계층 구성 및 표현 멀티미디어시스템
블럭 부호화와 비트스트림 생성 1. 비트 평면 부호화(bitplane coding) 2. 단편적 비트 평면 부호화(fractional bitplane coding) 멀티미디어시스템
1. 비트 평면 부호화 • 균일한 데드 존 양자화기는 더 작은 간격의 크기를 계속적으로 사용함. 한번에 한 비트 평면의 각 블럭을 부호화 하는 것과 같음. 그림 9.8: 데드 존을 갖는 양자화기. 데드 존의 길이는 2 . 데드 존 안에 있는 값은 0으로 양자화 됨. 멀티미디어시스템
더욱이 블럭들은 16×16 서브-블럭의 중요성으로 나눔. • 가 비트평면 P에서 서브-블럭 의 중요성이라 한다면 서브-블럭의 중요성은 중요성 맵 에서 부호화됨. • 쿼드-트리(quad-tree) 구조는 한번에 한 레벨씩 서브-블록의 중요성을 식별함. • 트리 구조는 단말 노드(즉, )를 가진 서브-블럭들을 식별함으로써 만들어짐. 더 높은 레벨들은 재귀 방식(recursion)을 통해 만들어짐: 멀티미디어시스템
기본 비트 평면 부호화 산술 부호화에 기반하여 내용을 사용하는 기본 4가지의 다른 부호화 방식을 사용. • 영 부호화(zero coding): 아직 중요하지 않은 각 비트 평면에서 계수들을 부호화 함. • 수평: • 수직: • 대각선: 멀티미디어시스템
표 9.4 기본 영 부호화를 위한 내용 할당 멀티미디어시스템
런-길이 부호화(run-length coding): 1-비트 중요성 값의 런을 부호화 함. 4가지 조건은 충족되어야 함: • 4개의 연속적인 샘플이 중요하지 않아야 함. • 샘플들은 중요하지 않은 이웃들을 가져야 함. • 샘플들은 같은 서브-블럭 안에 있어야 함. • 첫 번째 샘플의 수평 인덱스 k1은 짝수여야 함. 멀티미디어시스템
코드 부호화: 계수들이 중요하지 않은 것에서 중요한 것으로 변할 때 많아야 한 번 연상시킴. 부호 비트 는 인접한 샘플로부터 실질적인 의존 상태를 포함. 의 조건 분배가 의 그것과 같다고 가정. 만약 양쪽 수평 이웃들이 중요하지 않으면 가 0이 되고, 만약 적어도 하나의 수평 이웃이 양수이면 가 1이 되고, 만약 적어도 하나의 수평 이웃이 음수이면 가 -1이 됨. 수직 이웃을 위해 도 비슷하게 정의 됨. 만약 가 부호 예측이라면, 적절한 내용을 사용하여 부호화된 이진 심볼은 임.
표 9.5 기본 부호 부호화를 위한 내용 할당 멀티미디어시스템
크기 개선(magnitude refinement): 이 주어지면 의 값을 부호화 함. 기본 크기 개선이 처음 에 적용된 후에 는 0에서부터 1로 변하게 됨. 만약, 이면 는 내용 0으로, 만약 이고 이면 는 내용 1로, 만약 이면 는 내용 2로 부호화됨.
2. 단편적 비트 평면 부호화 코드 블럭 샘플들은 서로 다른 통계치를 가지는 더 작은 부분 집합으로 나눔. 왜곡에서 가장 크게 축소되는 것으로 예상되는 부분 집합부터 시작하여 한 번에 하나의 부분 집합을 부호화 함. 각 코드 블럭이 정교하게 삽입된 비트스트림을 갖는 것을 보증함. 4가지의 서로 다른 패스를 사용: 순방향 중요성 전달 패스( : forward significance propagation pass); 역방향 중요성 전달 패스( : reverse significance propagation pass); 크기 개선 패스( : magnitude refinement pass); 표준 패스( : normalization pass).
순방향 중요성 전달 패스 • 서브-블럭 샘플들은 주사선 순서로 방문 되고, 중요하지 않은 샘플들과 이웃의 요구사항을 만족시키지 못하는 샘플들은 뛰어 넘음. • LH, HL, LL 서브밴드에 대한 이웃 요구사항은 수평 이웃들 중에 적어도 하나가 중요성을 가짐. • HH 서브밴드에 대한 이웃 요구사항은 4개의 대각선 이웃들 중에 적어도 하나가 중요한 것이어야 함. 멀티미디어시스템
역방향 중요성 전달 패스 이전의 세 가지 부호화 패스에서 고려되지 않은 모든 샘플들의 값은 적절한 기본 부호 부호화와 런-길이 부호화를 사용하여 부호화됨. 만약 한 샘플이 중요하다는 것이 밝혀지면, 그것의 부호는 즉시 기본 부호 부호화를 사용하여 부호화됨. • 이 패스는 역순서로 진행한다는 것을 제외하면 과 동일함. 이웃의 요구사항은 어떤 방향에서든지 적어도 하나의 중요한 이웃을 가지는 샘플들을 포함하는 것으로 완화되었음. 크기 개선 패스 • 이 패스는 이미 중요하지만 이전의 두 패스에서 부호화되지 않은 샘플들을 부호화 함. 그런 샘플들은 기본 크기 개선으로 처리됨. 표준 패스
각 비트평면 p 의 부호화는 네 개의 분명히 다른 패스 P1p에서 P4p까지를 계속해 나간다. 그림 9.9: 각 블럭의 내장된 비트스트림에서 부호화 패스와 쿼드트리 코드의 모양 멀티미디어시스템
압축 후 율-왜곡(PCRD) 최적화 • 목표 : • 비트율 제약에 따라 왜곡을 최소화시키도록 그런 최적의 방법으로 각 코드 블럭의 독립적인 비트스트림의 절단을 낳는 것. • 절단포인트 , 왜곡 , 비율 을 가지는 코드 블럭 의 각 절단된 내장 비트스트림에 대해, 재구성된 영상의 전체 왜곡은 다음과 같음.(왜곡은 부가적인 것으로 가정) 멀티미디어시스템
절단 포인트 의 최적 선택은 다음의 제약을 받는 최소화 문제로 공식화 될 수 있음: 몇몇 에 대해, 다음의 식을 최소화하는 어떤 절단 포인트의 집합 는 율-왜곡 의미에서 최적.
다음 식의 비에 의해 주어진 왜곡-율 기울기는 정확히 감소함. 실행 가능한 절단 포인트의 집합의 나열 j1 < j2 < … 를 통하여 간단한 선택에 의한 최적화 문제의 해결을 허락함.
계층 형식과 표현 JPEG2000은 계층화된 비트스트림 구조와 2개의 층을 이루는 부호화 전략을 사용하여 해상도와 화질 스케일러빌러티 모두를 제공함. 첫 번째 층은 내장된 블럭 비트스트림들을 생산하고, 반면에 두 번째 층은 블럭의 요약 정보를 압축함. 화질 계층 은 각 코드 블럭 의 초기 바이트를 포함하고 다른 계층 는 코드 블럭 로부터 증가분 을 포함.
그림 9.10: 각 8개의 블럭을 가진 세 개의 화질 계층 멀티미디어시스템