디지털 신호의 디지털 송신을 용이하게 하고 그에 대응하는 이점을 얻기 위해, 일반적으로, 어떤 형태의 신호 압축을 사용하는 것이 필요하다. 결과적인 이미지의 높은 선명도를 달성하기 위해, 이미지의 높은 품질이 유지되는 것이 또한 중요하다. 또한, 계산에 관한 효율이, 많은 애플리케이션에 중요한 컴팩트 하드웨어 구현에 바람직하다.
일 실시형태에서, 본 발명의 이미지 압축은 이산 코사인 변환 (DCT) 기술에 기초한다. 일반적으로, 디지털 도메인에서 처리될 이미지는 사이즈가 N ×N 인 비-오버래핑 (non-overlapping) 블록의 어레이로 분할된 픽셀 데이터로 이루어진다. 2차원 DCT는 각 블록에 대해 수행될 수도 있다. 2차원 DCT는 다음의 관계식,
에 의해 정의되고, 여기서,
이고, x(m,n)은 N ×M 블록내의 픽셀 위치 (m,n) 이고, X(k,l)은 대응하는 DCT 계수이다.
픽셀값이 음이 아니기 (non-negativ) 때문에, DCT 성분 X(0,0) 는 항상 양 (positive) 이고, 일반적으로 최대 에너지를 갖는다. 실제로, 통상의 이미지에 있어서, 대부분의 변환 에너지는 성분 X(0,0) 주위에 집중된다. 이러한 에너지 컴팩션 (compaction) 특성은 흥미있는 압축 방법과 같은 DCT 기술을 형성한다.
대부분의 내추럴 이미지가, 비교적 평탄한 느린 변화 영역 (slow varying areas), 및 물체 경계 및 높은-콘트라스트 텍스처와 같은 빠른 변화 영역 (busy areas) 으로 이루어진다는 것을 관찰하였다. 콘트라스트 적응형 코딩 방식은 빠른 변화 영역에 더 많은 비트를 할당하고 덜 빠른 변화 영역에 더 적은 비트를 할당함으로써 이러한 인자를 이용한다. 이 기술은, 본 명세서에 참조되고 본 발명의 양수인에게 양도된, "Adaptive Block Size Image Compression Method and System"이란 명칭의 미국 특허 제 5,021,891 호에 개시되어 있다. 또한, DCT 기술은 본 명세서에 참조되고 본 발명의 양수인에게 양도된 "Adaptive Block Size Image Compression Method And System"이란 명칭의 미국 특허 제 5,107,345 호에 개시되어 있다. 또한, 차동 쿼드트리 변환 (Differential Quadtree Transform) 기술과 조합된 ABSDCT 기술의 이용이, 본 명세서에 참조되고 본 발명의 양수인에게 양도된 "Adaptive Block Size Image Compression Method And System"이란 명칭의 미국 특허 제 5,452,104 호에 개시되어 있다. 이들 특허에 개시된 시스템은 "프레임-내 (intra-frame)" 인코딩이라 칭하는 것을 사용하고, 이미지 데이터의 각 프레임은 어떤 다른 프레임의 컨텐츠에 관계없이 인코딩된다. ABSDCT 기술을 사용하는 경우, 달성 가능한 데이터 레이트는 이미지 품질의 저하를 거의 인식할 수 없을 수도 있다.
ABSDCT를 사용하는 경우, 일반적으로, 비디오 신호는 처리를 위해 픽셀 블록으로 분할된다. 각 블록에 있어서, 휘도 및 색도 성분은 블록 인터리버 (interleaver) 로 패스된다. 예를 들어, 16 ×16 (픽셀) 블록이, 블록을 생성하고 이산 코사인 변환 (DCT) 분석에 대한 데이터의 서브-블록을 구성하기 위해 각 16 ×16 블록내에서 이미지 샘플을 순서화하거나 구성하는 블록 인터리버에 표현될 수도 있다. DCT 오퍼레이터는 시간-샘플링된 신호를 동일 신호의 주파수 표현으로 컨버팅하는 일 방법이다. 주파수 표현으로 컨버팅함으로써, 양자기 (quantizers) 가 이미지의 주파수 분포 특성을 이용하도록 설계될 수 있기 때문에, DCT 기술은 매우 높은 레벨의 압축을 허용하는 것으로 나타났다. 바람직한 실시형태에서, 하나의 16 ×16 DCT가 제 1 오더링 (ordering) 에 사용되고, 4개의 8 ×8 DCT가 제 2 오더링에 사용되고, 16개의 4 ×4 DCT가 제 3 오더링에 사용되고, 64개의 2 ×2 DCT가 제 4 오더링에 사용된다.
이미지 처리를 위해, DCT 동작이 비-오버래핑 블록의 어레이로 분할된 픽셀 데이터에 대해 수행된다. 블록 사이즈를 본 명세서에서 N ×N 사이즈로 설명하였지만, 다양한 블록 사이즈가 사용될 수도 있다. 예를 들어, N ×M 블록 사이즈가 사용될 수도 있으며, N 및 M은 모두 정수이고, M은 N 보다 더 크거나 더 작다. 또 다른 중요한 양태는, 블록을 N/i ×N/j, N/i ×N/j, N/i ×M/j등과 같은 하나 이상의 서브-블록 레벨로 분할할 수 있다는 것이고, i 및 j는 정수이다. 또한, 본 명세서에 설명한 바와 같은 예시적인 블록 사이즈는 대응하는 블록 및 DCT 계수의 서브-블록을 갖는 16 ×16 픽셀 블록이다. 또한, 짝수 또는 홀수 정수값과 같은 다양한 다른 정수, 예를 들어, 9 ×9가 사용될 수도 있다.
일반적으로, 이미지는 처리를 위해 픽셀의 블록으로 분할된다. 컬러 신호가 RGB 스페이스로부터 YC1C2 스페이스로 컨버팅될 수도 있으며, Y는 휘도, 또는 광도, 성분이고, C1 및 C2는 색도, 또는 컬러, 성분이다. 컬러에 대한 눈의 낮은 공간 감도로 인해, 많은 시스템은 수평 및 수직 방향의 4개의 요소로 C1 및 C2 성분을 서브-샘플링한다. 그러나, 서브-샘플링은 필요하지 않다. 4:4:4 포맷으로 알려진 완전한 해상도 이미지가 "디지털 영화"를 커버링하는 것과 같은 어떤 애플리케이션에 매우 유용하거나 필요할 수도 있다. 2개의 가능한 표현은, 당업계에 널리 공지되어 있는, YIQ 표현 및 YUV 표현이다. 또한, YCbCr로 알려진 YUV 표현의 변형을 사용하는 것이 가능하다.
도 1을 참조하면, 본 발명에 통합된 이미지 처리 시스템 (100) 이 도시되어 있다. 이미지 처리 시스템 (100) 은 수신된 비디오 신호를 압축하는 인코더 (102) 를 구비한다. 압축된 신호는 송신 채널 (104) 을 통해 송신되고, 디코더 (106) 에 의해 수신된다. 디코더 (106) 는 수신된 신호를 디스플레이될 수도 있는 이미지 샘플로 디코딩한다.
바람직한 실시형태에서, Y, Cb, 및 Cr 성분 각각은 서브-샘플링하지 않고 처리된다. 따라서, 픽셀의 16 ×16 블록의 입력은 인코더 (102) 로 제공된다. 인코더 (102) 는 비디오 압축에 대비하여 블록 사이즈 할당을 수행하는 블록 사이즈 할당 엘리먼트 (108) 를 구비한다. 블록 사이즈 할당 엘리먼트 (108) 는 블록에서의 이미지의 지각 특성에 기초하여 16 ×16 블록의 블록 분해를 결정한다. 블록 사이즈 할당은 16 ×16 블록내의 활동에 따라 각 16 ×16 블록을 쿼드-트리 형의 더 작은 블록으로 재분할한다. 블록 사이즈 할당 엘리먼트 (108) 는 길이가 1 내지 21 비트 사이일 수 있는, PQR 데이터라 불리는 쿼드-트리 데이터를 생성한다. 따라서, 16 ×16 블록이 분할되어야 한다고 블록 사이즈 할당이 결정하는 경우에, PQR중의 R 비트가 설정되고, 4개의 분할된 8 ×8 블록에 대응하는 Q 데이터의 4개의 추가 비트가 후속한다. 임의의 8 ×8 블록이 재분할되어야 한다고 블록 사이즈 할당이 결정한 경우에, 재분할된 각 8 ×8 블록에 대한 P 데이터의 4개의 추가 비트가 추가된다.
도 2를 참조하면, 블록 사이즈 할당 엘리먼트 (108) 의 동작을 상세히 나타내는 흐름도가 제공된다. 알고리즘은 블록을 재분할하기 위한 결정에서 메트릭으로서 블록의 분산을 사용한다. 시작 단계 202에서, 픽셀의 16 ×16 블록이 판독된다. 단계 204에서, 16 ×16 블록의 분산 (v16) 이 계산된다. 분산 (var) 은 다음과 같은 관계식
여기서, N=16이고, xi,j는 N ×N 블록내의 i번째 로우 (row), j번째 컬럼 (column) 의 픽셀이다. 단계 206에서, 먼저, 새로운 임계값 (T'16) 을 제공하기 위해 분산 임계값 (T16) 이 변형되고, 블록의 평균값이 2개의 소정의 값 사이인 경우에, 블록 분산이 새로운 임계값 (T'16) 에 비교된다.
단계 208에서, 분산 (v16) 이 임계값 (T16) 보다 더 크지 않은 경우에, 16 ×16 블록의 시작 어드레스가 기록되고, 16 ×16 블록이 재분할되지 않는다는 것을 나타내기 위해 PQR 데이터의 R 비트가 0으로 설정된다. 다음으로, 알고리즘은 픽셀의 다음의 16 ×16 블록을 판독한다. 단계 210에서, 분산 (v16) 이 임계값 (T16) 보다 더 큰 경우에, 16 ×16 블록이 4개의 8 ×8 블록으로 재분할되어야 한다는 것을 나타내기 위해 PQR 데이터의 R 비트가 1로 설정된다.
4개의 8 ×8 블록 (i=1:4) 이 단계 212에 나타낸 바와 같이, 다른 재분할에 대해 연속적으로 고려된다. 단계 214에서, 각 8 ×8 블록에 대해, 분산 (v8i) 이 계산된다. 단계 216에서, 먼저, 새로운 임계값 (T'8) 을 제공하기 위해 분산 임계값 (T8) 이 변형되고, 블록의 평균값이 2개의 소정의 값 사이인 경우에, 블록 분산이 이러한 새로운 임계값에 비교된다.
단계 218에서, 분산 (v8i) 이 임계값 (T8) 보다 더 크지 않은 경우에, 8 ×8의 시작 어드레스가 기록되고, 대응하는 Q 비트 (Qi) 가 0으로 설정된다. 다음으로, 다음의 8 ×8 블록이 처리된다. 단계 220에서, 분산 (v8i) 이 임계값 (T8) 보다 더 큰 경우에, 8 ×8 블록이 4개의 4 ×4 블록으로 재분할되어야 한다는 것을 나타내기 위해 Q 비트 (Qi) 가 1로 설정된다.
4개의 4 ×4 블록 (ji=1:4) 이 단계 222에 나타낸 바와 같이, 다른 재분할에 대해 연속적으로 고려된다. 단계 224에서, 4 ×4 블록에 대해, 분산 (v4ij) 이 계산된다. 단계 226에서, 먼저, 새로운 임계 값 (T'4) 를 제공하기 위해 분산 임계값 (T4) 이 변형되고, 블록의 평균값이 2개의 소정의 값 사이인 경우에, 블록 분산이 이러한 새로운 임계값에 비교된다.
단계 228에서, 분산 (v4ij) 이 임계값 (T4) 보다 더 크지 않은 경우에, 4 ×4 블록의 어드레스가 기록되고, 대응하는 P 비트 (Pij) 가 0으로 설정된다. 다음으로, 다음의 4 ×4 블록이 처리된다. 분산 (v4ij) 이 임계값 (T4) 보다 더 큰 경우에, 4 ×4 블록이 4개의 2 ×2 블록으로 재분할되어야 한다는 것을 나타내기 위해 대응하는 P 비트 (Pij) 가 1로 설정된다. 또한, 4개의 2 ×2 블록의 어드레스가 기록된다.
임계값 (T16, T8, 및 T4) 은 소정의 상수일 수도 있다. 이것은 하드 결정 (hard decision) 으로서 알려져 있다. 또 다른 방법으로, 적응형 또는 소프트 결정이 구현될 수도 있다. 소프트 결정은 2N ×2N 블록의 평균 픽셀값에 의존하여 분산에 대한 임계값을 변화시키고, 여기서, N은 8, 4, 또는 2일 수 있다. 따라서, 평균 픽셀값의 함수가 임계값으로서 사용될 수도 있다.
설명을 위해, 이하의 예를 고려한다. Y 성분에 대한 소정의 분산 임계값을 16 ×16, 8 ×8, 및 4 ×4 블록 각각에 대해 50, 1100, 및 880으로 한다. 다시 말해서, T16=50, T8=1100, 및 T16=880으로 한다. 평균값의 범위는 80 내지 100으로 한다. 16 ×16 블록에 대한 계산된 분산을 60으로 가정한다. 60 및 그 평균값 90이 T16 보다 크기 때문에, 16 ×16 블록은 4개의 8 ×8 서브-블록으로 재분할된다. 8 ×8 블록에 대한 계산된 분산을 1180, 935, 980, 및 1210으로 가정한다. 2개의 8 ×8 블록이 T8을 초과하는 분산을 갖기 때문에, 전체 8개의 4 ×4 서브-블록을 생성하기 위해 이들 2개의 블록은 재분할된다. 마지막으로, 4 ×4 블록의 분산을 620, 630, 670, 610, 590, 525, 930, 및 690으로 가정하고, 처음의 4개는 평균값 90, 120, 110, 115에 대응한다. 제 1의 4 ×4 블록의 평균값이 범위 (80,100) 내로 떨어지기 때문에, 임계값은 880 보다 작은 T'4=200으로 낮아진다. 따라서, 제 7의 4 ×4 블록 뿐만 아니라 이러한 4 ×4 블록은 재분할된다.
컬러 성분 (C1 및 C2) 에 대한 블록 사이즈 할당을 위해 유사한 절차가 사용된다. 컬러 성분은 수평적으로, 수직적으로 또는 양자 모두로 데시메이션될 수도 있다. 또한, 블록 사이즈 할당이, 가장 큰 블록 (이 예에서는 16 ×16) 이 먼저 평가되는 위에서 아래로 (top down) 접근방식으로서 설명되었지만, 아래서 위로 (bottom up) 접근방식이 사용될 수도 있다. 아래서 위로 접근방식은 가장 작은 블록 (이 예에서는 2 ×2) 이 먼저 평가된다.
다시 도 1을 참조하여, 이미지 처리 시스템의 나머지 부분을 설명한다. 소정의 블록이 데시메이터 엘리먼트 (109) 에 의해 선택적으로 데시메이션될 수도 있다. 디지털 이미지의 압축을 위해 필요한 다수의 비트를 감소시키는 공통 방법은 프레임의 특정한 해상도를 감소시키는 것이다. 그러나, 이것은 현저한 이미지 왜곡을 초래할 수도 있다. 그러나, 적응형 블록 사이즈를 사용함으로써, 높은 색도 정보의 영역이 아닌 낮은 색도 정보의 영역에서만 이미지를 데시메이션하기 위해 색도 해상도가 사용될 수도 있다.
데시메이션에 대한 결정은 다양한 인자 및 고려에 의존할 수도 있다. 인자는, 블록 내 및 각 컬러 성분 내의 디테일의 레벨, 색도 해상도, 콘트라스트, 소망하는 비트 레이트, 소망하는 이미지 품질 레벨, 및/또는 블록 사이즈를 포함하지만, 이에 한정되지는 않는다. 데시메이터 (109), 및 데시메이션 프로세스를 도 3, 4a, 4b, 및 4c와 관련하여 더욱 상세히 설명한다.
선택된 블록의 어드레스와 함께 PQR 데이터가 DCT 엘리먼트 (110) 에 제공된다. DCT 엘리먼트 (110) 는 선택된 블록에 대한 적절한 사이즈의 이산 코사인 변환을 수행하기 위해 PQR 데이터를 사용한다. 선택된 블록만을 DCT 처리할 필요성이 있다.
이미지 처리 시스템 (100) 은 DCT의 DC 계수 사이에서 리던던시를 감소시키는 DQT 엘리먼트 (112) 를 추가로 구비할 수도 있다. DC 계수는 각 DCT 블록의 상부 좌측 코너에서 인카운터 (encountered) 된다. 일반적으로, DC 계수는 AC 계수와 비교된다. 사이즈의 불일치는 효율적인 가변 길이 코더를 설계하는 것을 어렵게 한다. 따라서, DC 계수 사이의 리던던시를 감소시키는 것이 바람직하다.
DQT 엘리먼트 (112) 는 동시에 2 ×2를 취하는 DC 계수에 대한 2-D DCT를 수행한다. 4 ×4 블록내에서 2 ×2 블록으로 시작하면, 2-D DCT는 4개의 DC 계수에 대해 수행된다. 이러한 2 ×2 DCT는 4개의 DC 계수의 차동 쿼드-트리 변환, 또는 DQT라 불린다. 다음에, 8 ×8 블록을 갖는 3개의 이웃하는 DC 계수와 함께 DQT의 DC 계수가 다음 레벨의 DQT를 계산하기 위해 사용된다. 마지막으로, 16 ×16 블록내의 4개의 8 ×8 블록의 DC 계수가 DQT를 계산하기 위해 사용된다. 따라서, 16 ×16 블록내에, 하나의 실제 DC 계수가 있고, 나머지는 DCT 및 DQT에 대응하는 AC 계수이다.
변환 계수 (DCT 및 DQT) 가 양자화를 위해 양자기 (quantizer : 114) 에 제공된다. 바람직한 실시형태에서, DCT 계수는 주파수 가중 마스크 (FWM) 및 양자화 스케일 인자를 사용하여 양자화된다. FWM은 입력 DCT 계수의 블럭과 동일한 치수의 주파수 가중의 테이블이다. 주파수 가중은 서로 다른 DCT 계수에 서로 다른 가중치를 적용한다. 가중치는 인간의 시각 시스템이 더 민감한 주파수 컨텐츠를 갖는 입력 샘플을 강조하고, 시각 시스템이 덜 민감한 주파수 컨텐츠를 갖는 샘플을 덜 강조하도록 설계된다. 또한, 가중치는 시야 거리 (viewing distances) 와 같은 인자에 기초하여 설계될 수도 있다.
허프만 코드 (Huffman codes) 가 이미지의 측정되거나 이론적인 통계로부터 설계된다. 대부분의 내추럴 이미지가 블랭크 (blank) 또는 비교적 느린 변화 영역, 및 물체 경계 및 높은 콘트라스트 텍스처와 같은 빠른 변화 영역으로 이루어진다는 것을 관찰하였다. DCT와 같은 주파수-도메인 변환을 사용하는 허프만 코더는 빠른 변화 영역에 더 많은 비트를 할당하고 블랭크 영역에 더 적은 비트를 할당함으로써 이들 특징을 활용한다. 일반적으로, 허프만 코더는 런-렝스 (run-length) 및 비제로 값을 코딩하기 위해 룩-업 테이블을 사용한다.
일 실시형태에서, 가중치는 경험적 (empirical) 데이터에 기초하여 선택된다. 8 ×8 DCT 계수에 대한 가중 마스크를 설계하는 방법이, 본 명세서에 참조되는, 국제 표준화 기구, 1994, ISO/IEC JTC1 CD 10918, "Digital compression and encoding of continuous-tone still images-part 1: Requirements and guidelines,"에 개시되어 있다. 일반적으로, 2개의 FWM, 즉, 휘도 성분에 대해 하나 그리고 색도 성분에 대해 하나가 설계된다. 블록 사이즈 2 ×2, 4 ×4에 대한 FWM 테이블이 데시메이션에 의해 얻어지고, 8 ×8 블록에 대한 FWM 테이블의 보간에 의해 16 ×16에 대한 FWM 테이블이 얻어진다. 스케일 인자는 양자화된 계수의 비트 레이트 및 품질을 제어한다.
따라서, 각 DCT 계수는 다음과 같은 관계식
여기서, DCT(i,j)는 입력 DCT 계수이고, fwm(i,j)는 주파수 가중 마스크이고, q는 스케일 인자이고, DCTq(i,j)는 양자화된 계수이다. DCT 계수의 부호에 따라서, 각괄호 내부의 제 1 항은 반올림 또는 반내림된다. 또한, DQT 계수는 적합한 가중 마스크를 사용하여 양자화된다. 그러나, 다중 테이블 또는 마스크가 사용될 수 있고, Y, Cb, 및 Cr 성분 각각에 적용될 수 있다.
양자화된 계수는 지그재그 스캔 시리얼라이저 (zigzag scan serializer : 116) 에 제공된다. 시리얼라이저 (116) 는 양자화된 계수의 시리얼라이즈된 스트림을 생성하기 위해 지그재그형으로 양자화된 계수의 블록을 스캔한다. 또한, 다수의 서로 다른 지그재그 스캐닝 패턴 뿐만 아니라 지그재그 이외의 패턴이 선택될 수도 있다. 다른 사이즈가 사용될 수도 있더라도, 바람직한 기술은 지그재그 스캐닝을 위해 8 ×8 블록 사이즈를 사용한다.
지그재그 스캔 시리얼라이저 (116) 는 양자기 (114) 의 앞 또는 뒤에 위치될 수도 있다. 최종적인 결과는 동일하다.
임의의 경우에, 양자화된 계수의 스트림은 가변 길이 코더 (118) 에 제공된다. 가변 길이 코더 (118) 는 인코딩에 후속하는 0의 런-렝스 인코딩을 사용할 수도 있다. 이러한 기술은 상기 언급한 미국 특허 제 5,021,891 호, 5,107,345 호, 및 5,452,104 호에 상세히 개시되어 있고, 본 명세서에 통합된다. 런-렝스 코더는 양자화된 계수를 얻고, 비-연속 계수로부터 연속 계수의 런을 나타낸다. 연속 값은 런-렝스 값이라 부르고, 인코딩된다. 비-연속 값은 개별적으로 인코딩된다. 일 실시형태에서, 연속 계수는 0 값이고, 비-연속 계수는 비-0 값이다. 통상적으로, 런 렝스는 0 내지 63 비트이고, 사이즈는 1-10의 AC 값이다. 파일 코드의 종단은 추가적인 코드를 더하고, 따라서, 전체 641개의 가능한 코드가 있다.
도 3은 디지털 이미지 (300) 의 선택적 데시메이션의 흐름도이다. 블록 사이즈 할당 엘리먼트 (BSA; 304) 가 (도 1과 관련하여 설명한 바와 같이) 수행된 이후에, 블록을 데시메이션할지의 결정 (308) 이 이루어진다. 일 실시형태에서, 데시메이션에 대한 결정은 블록 사이즈 할당 이후에 픽셀 블록에 대해 행해진다. 그러나, 데시메이션에 대한 결정은, 블록이 DCT/DQT 처리를 받은 이후에, 주파수 도메인에서 발생할 수도 있다.
다시 도 3을 참조하면, 블록이 소정의 블록, 또는 픽셀 영역의 대응하는 주파수 표현에서 낮은 색도 정보를 갖는 경우에, 데시메이션이 적절하다. 블록이 높은 색도 정보를 갖는 경우에, 데시메이션하지 않는다는 결정이 이루어지고, 데이터는 양자기 (312) 로 패스된다. 색도가 반드시 데시메이션할지에 관한 유일하거나 또는 최우선의 인자는 아니다. 데시메이션에 대한 결정은 소망하는 비트 레이트, 시각 품질 인자, 또는 블록 사이즈 또는 색도 성분 자체와 같은 다른 레이트-기반 인자 등의 다양한 인자에 기초할 수도 있다. 예를 들어, 모든 색도 성분과는 반대로, 단일 색도 성분 (Cb 또는 Cr) 을 데시메이션하는 것을 선택할 수 있다. 어떤 경우에, 단일 색도 성분이 시각 품질을 손상시키지 않고 데시메이션될 수도 있다는 것을 발견하였다. 일 실시형태에서, 데시메이션에 대한 결정이 사용자의 필요에 기초하여 구성 가능하다. 또 다른 실시형태에서, 데시메이션에 대한 결정이 사용자의 필요에 기초하여 동적으로 구성 가능하다.
데시메이션에 대한 결정시에, 컬럼 (column) 데시메이션 (316) 이 개시되고, 따라서, 4:4:4 이미지가 4:2:2 이미지로 컨버팅된다. 추가로, 4:2:0 포맷으로의 데시메이션을 소망하는 경우에 데시메이션할지의 또 다른 결정 (320) 이 다시 이루어진다. 소망하는 경우에, 로우 (row) 데시메이션 (324) 이 개시된다. 소망하지 않는 경우에, 데이터는 양자기 (312) 로 패스된다.
일 실시형태에서, 높은 색도 정보의 영역, 즉, 더 작은 블록 사이즈 할당을 갖는 영역은 데시메이션을 위해 선택되지 않는다. 그러나, 낮은 색도 정보, 즉, 큰 블록 사이즈 할당을 갖는 영역은 데시메이션에 대해 적절하다. 또 다른 실시형태에서, 블록 사이즈 할당은 데시메이션에 대한 결정 인자이다. 블록 사이즈가 16 ×16인 경우에, 블록은 데시메이션된다. 블록 사이즈가 8 ×8, 4 ×4, 또는 2 ×2와 같이 16 ×16 보다 작은 경우에, 블록은 데시메이션되지 않아서, 디테일이 보존된다. 또 다른 실시형태에서, 16 ×16 및 8 ×8 블록은 데시메이션되지만, 4 ×4 및 2 ×2 블록은 데시메이션되지 않는다. 정확한 결정 처리는 다수의 파라미터에 의존할 수도 있다.
적은 양의 색도 해상도를 갖는 이미지의 영역에서 블록을 선택적으로 데시메이션하는 것은 색도 품질을 유지하면서 이들 영역에서 비트 레이트를 감소시킨다. 동시에, 높은 색도 해상도의 영역에서 색도 해상도를 데시메이션하지 않음으로써, 이들 영역에서 양호한 이미지 품질이 유지된다.
도 4a는 픽셀 데이터 (400) 의 4:4:4 블록의 예를 나타낸다. 각 픽셀에 대한 각 컬러 휘도 및 색도 성분 (Y, Cb, 및 Cr) 각각에 대해 값이 제공된다. 통상적으로, 휘도 성분 (Y) 이 아닌, 색도 성분 (Cb 및 Cr) 에 대해서 결정이 수행되는 것으로 고려된다. 휘도 성분 (Y) 의 데시메이션이 인지될 수도 있기 때문에, 휘도 성분 (Y) 을 데시메이션하는 것이 항상 바람직하지는 않다. 4:4:4 포맷으로부터 4:2:2 포맷으로 색도 픽셀 데이터의 블록을 데시메이션하기 위해, 각 색도 성분 (Cb 및 Cr) 의 필터링이 수행된다. 일 실시형태에서, 필터링 처리는 근접 엘리먼트를 갖는 특정 엘리먼트에 대해 가우시안 필터를 사용함으로써 컬럼 값을 가중하는 것을 포함한다. 수직 방향과는 반대로, 수평 방향에서 더 많은 정정이 존재한다는 것이 발견되었다는 점에서 컬럼 필터링이 바람직하다. 일 실시형태에서, 4:2:2 포맷에서 엘리먼트 (n-1,m) 는 (n-1, m-1) 엘리먼트의 25%, (n-1, m) 엘리먼트의 50%, 및 (n-1, m+1) 엘리먼트의 25%를 합산함으로써 유도된다. 따라서, 4:2:2 포맷에서, (n-1, m)의 새로운 값은,
(n-1,m)=(0.25*20)+(0.50*32)+(0.25*28)=28
과 같다. 유사한 계산이 엘리먼트의 모든 다른 컬럼에 대해 이루어지고, 그 결과 도 4b에 나타낸 바와 같은 4:2:2의 엘리먼트 테이블을 형성한다. 따라서, 데이터의 모든 다른 컬럼은 제거되지만, 그 값은 전술한 관계식을 사용하여 나머지 컬럼에 표현된다. 동일한 가중치를 갖는 3-포인트 필터와 같은 다른 가중 방식이 사용될 수도 있어서, 각 엘리먼트가 0.33 만큼 승산된다는 것이 예상된다.
도 4c는 픽셀 데이터의 4:2:0 포맷의 예를 나타낸다. 4:2:0 데이터를 계산하기 위해, 각 근접 엘리먼트에 대해 0.25, 및 소정의 엘리먼트에 대해 0.50의 동일한 가중 방식을 사용하여 로우 데시메이션이 수행된다. 따라서, 4:2:0 포맷에서 엘리먼트 (n, m) 는 (n-1, m) 엘리먼트의 25%, (n, m) 엘리먼트의 50%, 및 (n+1, m) 엘리먼트의 25%를 합산함으로써 유도된다. 따라서, 4:2:0 포맷에서, (n, m) 의 새로운 값은,
(n,m)= (0.25*28)+(0.50*21.5)+(0.25*21.5)=23.125
와 같다. 해상도에 따라서, (n, m)의 값이 주파수 또는 픽셀 도메인에서 반올림될 수도 있다. 예로서, 본 명세서에 개시한 실시형태와 함께 설명한 다양한 예시적인 논리 블록, 흐름도, 및 단계가 응용-주문형 집적 회로 (ASIC) 를 사용하는 하드웨어 또는 소프트웨어, 프로그램 가능한 논리 디바이스, 마이크로프로세서, 개별 게이트 또는 트랜지스터 논리, 예를 들어, 레지스터 및 FIFO와 같은 개별 하드웨어 구성소자, 일련의 펌-웨어 명령을 실행하는 프로세서, 및 종래의 프로그램 가능한 소프트웨어 및 프로세서, 또는 이들의 어떠한 결합으로 구현 또는 수행될 수도 있다. 바람직하게는, 프로세서는 마이크로프로세서일 수도 있지만, 다른 방법으로는, 프로세서는 어떠한 종래의 프로세서, 제어기, 마이크로제어기, 또는 스테이트 머신일 수도 있다. 소프트웨어는 RAM 메모리, 플래시 메모리, ROM 메모리, 레지스터, 하드 디스크, 분리 가능 디스크, CD-ROM, DVD-ROM 또는 공지된 어떠한 다른 형태의 저장 매체에 내장될 수도 있다.
바람직한 실시형태의 설명은 본 발명을 당업자가 제조 또는 사용할 수 있게 하도록 제공된다. 이들 실시형태에 대한 다양한 변형이 당업자에게는 명백할 것이고, 본 명세서에서 제공하는 일반적인 원리가 본 발명의 기능을 사용하지 않고 다른 실시형태에 적용될 수도 있다. 따라서, 본 발명은 본 명세서에 개시한 실시형태에 제한되지 않고, 본 명세서에 개시한 원리 및 새로운 특징과 일관되는 가장 광범위한 범위를 부여한다.