이하의 두문자어(頭文字語) 및 약어가 이용된다.
4:2:2P - 4:2:2 프로파일(Profile);
CBP - 코드화 블록 패턴(Coded Block Pattern);
DCT - 이산코싸인변환(Discrete Cosine Transform);
HDTV - 고품질 텔레비젼(High Definition Television);
HL - 하이레벨(High Level);
IDCT - 역이산코싸인변환(Inverse DCT);
MB - 매크로블록(Macroblock);
MC - 동작보상(Motion Compensation);
ML - 메인 레벨(Main Level);
MP - 메인 프로파일(Main Profile);
MV - 움직임벡터(Motion Vector);
QDC - 양자화 다이렉트 커런트(Quantized Direct Current);
SDTV - 표준품질 텔레비젼(Standard Definition Television);
VBV - 비디오 버퍼 검증기(Video Buffer Verifier);
VLC - 가변길이 코더(Variable Length Coder);
VLD - 가변길이 디코더(Variable Length Decoder).
비디오 이미지는 픽셀(pixel)이나 펠(pel)로도 알려진 다수의 화소(picture element)로 정의된다. 이미지의 래스터 스캔라인의 가장 작은 요소인 픽셀은 관련된 색공간을 갖는다. 예컨대, YCrCb 색공간에서, Y는 루미넌스 성분이고, Cr 및 Cb는 색차성분이다. 4:4:4, 4:2:2 및, 4:2:0을 포함한 여러가지 샘플링 포맷이 정의된다. 예컨대, 4:2:2 포맷의 경우, 매크로블록은 4개의 8×8 Y블록, 2개의 8×8 Cr블록 및 2개의 8×8 Cb블록을 갖는다. 이러한 포맷의 경우, Y, Cr 및 Cb성분에 대한 샘플링 주파수는 각각 13.5MHz, 6.75MHz 및 6.75MHz이다.
4:2:0 포맷의 경우, 매크로블록은 4개의 8×8 Y블록, 1개의 8×8 Cr블록 및 1개의 8×8 Cb블록을 갖는다.
더욱이, 다양한 디지털 비디오 코딩 표준이, 특히 1995년 ISO/IEC 13818-2 MPEG-2 비디오(ITU-RH.262)에서 정의된 MPEG-2 표준을 포함하는 비디오 데이터를 코딩하기 위해 개발되었다.
MPEG-2는 2-디멘저널 랭킹 오더(two-dimensional ranking order)를 이용하는 몇몇 일련의 제한된 파라메터를 나타낸다. "프로파일(profile)" 시리즈라 불리워지는 하나의 디멘전(dimension)은 서포트된 코딩 특징을 지정한다. "레벨(level)"이라 불리워지는 또 다른 디멘전은 조절될 수 있는 픽처 해상도, 비트율 등을 지정한다. 가장 중요한 프로파일-레벨 결합은 메인 레벨에서 메인 프로파일, 또는 MP@ML로 불리워진다. MP@ML은 4:2:0 색 서브샘플링비를 서포트한다.
메인 프로파일 외에, 다른 프로파일이 존재한다. 예컨대, 심플 프로파일은 메인 프로파일과 유사하지만 B-픽처는 갖지 않는다. SNR 스케일가능 프로파일은 메인 프로파일에 SNR 스케일성을 추가한다. 공간적 스케일가능 프로파일은 SNR 스케일가능 프로파일에 공간 스케일성을 추가한다. 하이 프로파일은 공간 스케일가능 프로파일에 4:2:2 색 포맷 가능성을 추가한다.
메인 레벨은 CCIR 601 비디오를 위해 정의되고, 반면 심플 레벨은 표준중개포맷(SIF; Standard Intermediate Format) 비디오를 위해 정의된다. 또한, HDTV를 위한 2개의 고레벨은 라인마다 최대 1440픽셀을 갖는 하이-1440 레벨이고, 라인마다 최대 1920픽셀을 갖는 하이레벨이다.
더욱이, 4:2:2와 4:2:0 색 포맷 모두를 수용하는 4:2:2P로도 언급된 4:2:2 프로파일이 최근 개발되고 있다. 참조에 의해 각각 여기에 통합되는 1996년 1월의 ISO/IEC 13818-2 개정2, 메인 레벨에서의 MPEG-2 4:2:2 프로파일과; 1997년의 ANSI/SMPTE 308M, 하이레벨에서의 텔레비전-MPEG-2 4:2:2 프로파일을 위한 SMPTE STANDARD 및; 1998년 3월의 ISO/IEC 13818-2 제안 초안 개정5, 하이레벨에서의 4:2:2 프로파일 참조.
4:2:2 프로파일은 압축된 비디오의 쉬운 편집과 비디오의 멀티플-제네레이션 인코딩/디코딩이 중요한 요건인 전문적인 비디오 애플리케이션을 나타낸다. 이러한 프로파일에 의해 타겟된 주요한 애플리케이션은 이하와 같다:
ㆍ 저장
ㆍ 가상효과의 편집 및 생성
ㆍ 전문적인 사용을 위한 비디오 테이프 또는 디스크 레코딩(기여 품질)
ㆍ 고품질 비디오 시퀀스의 스튜디오 포스트-프로덕션
ㆍ 기여 품질 비디오의 저장 및 분배를 위한 효율적인 전송
4:2:2P는 보다 높은 비디오 품질과, 보다 양호한 크로마(croma) 해상도를 제공하고, 메인 프로파일(예컨대, MP@ML)보다 높은 비트율(메인 레벨(ML)에서, 50Mbit/s까지)을 허용할 수 있다. 특히, 4:2:2P는 루마(luma) 및 크로마 데이터를 위한 각각의 양자화 매트릭스를 제공한다. 스튜디오 애플리케이션에 있어서, 최고품질 비디오 및 ITU-R 601 4:2:2 비디오 포맷은 종종 쉬운 크로마 키잉 및 다른 특수효과를 필요로 한다. 쉬운 편집의 요구 때문에, 높은 코딩 비트율도 야기하는 빈번한 INTRA픽처가 필요하다. 4:2:2P는 모든 I-픽처 인코딩을 허락한다. 이것은 전송에러를 빠르게 복구할 수 있고 애플리케이션을 간단히 편집할 수 있다.
또한, 4:2:0 색 포맷을 갖는 4:2:2P조차도 4:2:2P가 보다 큰 양자화 정밀도를 허용하기 때문에 동일한 색 포맷을 갖는 MP보다 양호한 품질의 이미지를 제공할 수 있다.
더욱이, 4:2:2P는 고품질을 유지하기 위해 필요한 고비트율을 허용하지만 I-픽처 코딩만을 이용한다. 또한, 4:2:2P는 품질을 더 개선하거나 동일한 품질을 위해 비트율을 감소시킬 수 있는 P-픽처 및 B-픽처 코딩타입의 이용을 허용한다.
더욱이, 통상의 TV방송 네트워크에 있어서는, 비디오가 소비자 가정에서 수신되기 위해 소비자에게 분배되기 전에 로컬 프로그래밍 정보 및 광고를 비디오에 부가하는 로컬 TV 스테이션과 같은 인코드/디코드의 멀티플 제네레이션, 예컨대 케이블 텔레비전 네트워크를 통해 비디오가 전송된다. 더욱이, 아날로그 TV의 경우, 인코드/디코드의 멀티플 제네레이션은 상당한 픽처 품질의 손상을 야기할 수 있다. 한편, 4:2:2P는 멀티플 제네레이션의 인코딩/디코딩 후 고품질을 보호할 수 있다. 제네레이션간 픽처 코딩타입의 변경이나 픽처 조작이 없는 멀티플 제네레이션의 경우, 4:2:2P 코더로부터의 품질은 첫번째 제네레이션 이후 거의 일정함을 유지한다. 제네레이션간 픽처 코딩타입의 변경이나 픽처 조작의 이용은 약간의 품질의 저하를 야기한다. 그럼에도 불구하고, 그 결과의 품질은 광범위한 애플리케이션을 받아들일 수 있다.
통상, TV 스튜디오는 보통 ITU-R 601 소스 비디오인 "기여 품질(contribution quality)" 비디오, 또는 4:2:2P@ML(또는, 4:2:2P@HL) 압축 비디오를 생성한다. 다음에 이 비디오가 인코딩되어 "분배 품질(distribution quality)"TV로 전송된다. 북미의 디지털 텔레비전 및 HDTV는 비디오 코딩 표준으로서 MPEG-2 MP@ML 및 MP@HL을 채용하고 있다. MP@ML 및 MP@HL은 모두 4:2:0 포맷 분배 품질 비디오만을 인코딩 하여 전송한다. MP는 루마 및 크로마 데이터를 위한 공통 양자화 매트릭스를 제공한다. 예컨대, 압축 비디오, 압축 오디오, 조건적인 액세스 및, 보조 데이터 채널을 포함하는 HDTV 시스템을 위한 총 데이터율은 18 내지 20Mbits/s 근방이다.
따라서, 4:2:2P 프리-압축 기여 품질 비트스트림을 MP 분배 품질 비트스트림으로 컨버트(convert) 하기 위한 효율적인 시스템이 필요하다.
코딩의 복잡성을 감소시키기 위해, 시스템은 움직임벡터를 재생하고, MB 코딩타입 변경에 필요성을 피하며, 크로마 블록을 프로세싱 하기 위한 싱글 MC유닛만을 사용할 수 있게 한다. 더욱이, 시스템은 INTER 코드된 MB의 상주 크로마-블록에 10분의 1-필터링 프로세스를 수행할 가능성을 제공한다.
시스템은, 그것이 4:2:2P 비트스트림에 나타나면 포맷 컨버전(conversion)동안 크로마 양자화 매트릭스를 교체하기 위한 간단한 접근을 제공한다.
시스템은, 크로마 블록을 위한 CBP를 세분한다.
또한, 시스템은 사용된 코딩 표준에 맞추기 위해 요구된 MPEG DC 계수 정밀도 변수인 intra_dc_precision의 조절을 제공한다. 예컨대, MP 비트스트림을 위한 최대 허용 intra_dc_precision 레벨은 4:2:2P 비트스트림보다 낮다.
시스템은, 조합된 4:2:2 대 4:2:0 컨버터 및 포맷 컨버전에 의한 4:2:2P 대 MP 트랜스코딩을 수행하기 위한 통상 트랜스코더를 제공한다.
시스템은, 포맷 컨버전동안 프로세스된 비트스트림을 완전히 디코드하는 것을 피할 수 있다.
본 발명은 상술한 장점 및 그 이외의 장점을 갖는 시스템을 제공한다.
본 발명은, 4:2:2P 프리-압축 기여 품질 비트스트림을 MP 분배 품질 비트스트림으로 컨버팅 하기 위한 접근에 관한 것이다.
일반적으로, MPEG-2 트랜스코더(transcoder)는 프리-압축 MPEG-2 비트스트림을 새로운 비율의 또 다른 MPEG-2 비트스트림으로 컨버팅 하는 기구이다. MPEG-2 4:2:2P@ML(또는, 4:2:2P@HL) 비트스트림을 MP@ML(또는, MP@HL) 비트스트림으로 컨 버팅 하기 위한 트랜스코더는 캐스캐이드(cascade)된 4:2:2P(@ML 또는 @HL) 또는 MP 트랜스코더 및 비율제어의 4:2:0 컨버터(converter)일 수 있다. 이하의 트랜스코딩의 경우는 특수한 관계에 있다: 즉, 4:2:2P@ML 대 MP@ML, 4:2:2P@HL 대 MP@ML 및, 4:2:2P@HL 대 MP@HL. HL에서 ML로의 트랜스코딩, 예컨대 HDTV 포맷에서 SDTV 포맷으로의 트랜스코딩은 매우 흔하다. 그러나, 일반적으로 ML에서 HL로의 트랜스코딩은, 높은 비트율을 야기하지만 픽처 품질을 향상시키지 못하기 때문에 중요하지 않다. 일단, ML 비트스트림으로부터 고해상도를 원한다면, 비트스트림이 디코드될 수 있고, 포스트-프로세싱 보간법(interpolation)이 이미지를 확대시키기 위해 사용될 수 있다.
도 1 및 도 2에 도시한 바와 같이, 4:2:2P 대 MP 트랜스코딩을 달성하기 위한 2가지의 다른 접근이 있다.
도면에 있어서, 동일한 번호의 구성요소는 또 다른 것에 대응된다.
도 1은 본 발명에 따른 4:2:2P 대 MP 비트스트림 트랜스코딩에 대한 제1접근을 나타낸다. 여기서, 프리-압축된 4:2:2P 비트스트림이 입력되면, 4:2:2 대 4:2:0 비트스트림 컨버터(110)는 4:2:2 비트스트림을 부분적으로 디코드 하고, MP 비트스트림을 제공하기 위해 그 결과를 재어샘플 한다. 다음에, 기존의 4:2:0 트랜스코더(120)가 새로운 비율의 새로운 MP 압축 비트스트림을 생성하기 위해 이용된다. 비율제어 기능(130)은 트랜스코더(120)에 의해 출력된 비트스트림의 비율을 제어한다.
도 2는 본 발명에 따른 4:2:2P 대 MP 비트스트림 트랜스코딩에 대한 제2접근 을 나타낸다. 여기서, 프리-압축된 4:2:2P 비트스트림이 입력되면, 비율제어 기능(230)의 제어하에서, 새로운 비율의 MP 압축된 비트스트림을 생성하기 위해 4:2:2P 트랜스코더(210)가 4:2:2 대 4:2:0 비트스트림 컨버터(220)와 캐스캐이드 된다.
비율제어의 경우, 특별히 주의할 것은 4:2:0 크로마 포맷의 매크로블록 내의 최대 비트수가 4,608비트로 상회되기 때문에 각 매크로블록 내의 최대 비트수로 보상되어야 하지만, 4:2:2P 4:2:2 크로마 포맷의 매크로블록에 구애받지는 않는다.
본 발명은 4:2:2 대 4:2:0 비트스트림 컨버터(110, 220)에 초점을 맞춘다.
4:2:2P@ML 포맷은 많은 방식에서의 MP@ML 포맷에 대한 확장이다. 키 ML 특징이 표 1에 요약되어 있다. 유사하게, 4:2:2P@HL은 많은 방식에서의 MP@HL에 대한 확장이다. 키 HL 특징이 표 2에 요약되어 있다.
표 1 - 4:2:2P@ML 및 MP@ML
|
4:2:2P@ML |
MP@ML |
크로마 포맷 |
4:2:2 또는 4:2:0 |
4:2:0 |
프로파일 및 레벨 식별 |
10000101 |
1001000 |
반복 제1필드 |
512라인 이상의 픽처에 대한 2개의 추가적인 제약조건을 갖는 MP@ML로 제한: B픽처는 프레임율이 25Hz이면 반복된 제1필드를 갖지 않는다. |
MPEG-2 비디오의 테이블 8-7 |
인트라 DC 정밀도: |
8,9,10, 또는 11 bits |
8,9 또는 10 bits |
샘플밀도의 상한: |
720 samples/line, 608 lines/frame, 30 frames/sec.(30Hz의 512 lines/frame, 25Hz의 608 lines/frame). |
720 samples/line, 576 lines/frame, 30 frames/sec. |
루마 샘플율의 상한: |
11,059,200 pixels/sec. |
10,368,000 pixels/sec. |
비트율의 상한: |
50 MB/sec. |
15 Mbits/sec. |
최대 VBV 버퍼크기: |
9,437,184 bits |
1,835,008 bits |
양자화 테이블 |
각각의 루미넌스 및 크로미넌스 양자화 테이블 |
루미넌스 및 크로미넌스 모두의 동일한 테이블 |
매크로블록의 최대 비트수 |
4:2:2의 비제약, 4:2:0의 4,608 |
4,608 |
표 2 - 4:2:2P@HL 및 MP@HL
|
4:2:2P@HL |
MP@HL |
크로마 포맷 |
4:2:2 또는 4:2:0 |
4:2:0 |
프로파일 및 레벨 식별 |
10000010 |
1000100 |
반복 제1필드 |
1152라인 이상의 픽처에 대한 2개의 추가적인 제약조건을 갖는 MP@HL로 제한: B픽처는 프레임율이 25Hz이면 반복된 제1필드를 갖지 않는다. |
MPEG-2 비디오의 테이블 8-7 |
인트라 DC 정밀도: |
8,9,10, 또는 11 bits |
8,9 또는 10 bits |
샘플밀도의 상한: |
1920 samples/line, 1152 lines/frame, 60 frames/sec. |
1920 samples/line, 1152 lines/frame, 60 frames/sec. |
루마 샘플율의 상한: |
62,668,800 pixels/sec. |
62,668,800 pixels/sec. |
비트율의 상한: |
300 MB/sec. |
80 Mbits/sec. |
최대 VBV 버퍼크기: |
47,185,920 bits |
9,781,248 bits |
양자화 테이블 |
각각의 루미넌스 및 크로미넌스 양자화 테이블 |
루미넌스 및 크로미넌스 모두의 동일한 테이블 |
매크로블록의 최대 비트수 |
비제약 |
4,608 |
4:2:2P 비트스트림의 코드된 매크로블록 타입을 변경시키지 않고, 표 1 및 2에 주어진 4:2:2P와 MP간 차는 표 3에 리스트된 신택스로 변경가능하다.
VLC 코드화 용어 macroblock_type으로 주어진 매크로블록 타입은 이하를 포함하는 매크로블록의 다수의 다른 특성을 나타낸다:
quant_scale_code가 비트스트림에 존재하는지의 여부(macroblock_quant),
포워드 또는 백워드 동작보상이 사용되는지의 여부(각각 macroblock_motion_forward 및 macroblock_motion_backward),
coded_block_pattern이 비트스트림에 존재하는지의 여부( macroblock_pattern),
매크로블록이 intra-coded인지의 여부(macroblock_intra),
spatial_temporal_weight_code가 비트스트림에 존재하는지의 여부(spatial_temporal_weight_code_flag) 및,
허가된 spatial_temporal_weight_classes.
표 3 - 가능한 신택스 변경
신택스 변경의 요소 |
신택스 변경 액션 |
A |
Sequence_header()에서, re-set vbv_buffer_size_value=1,835,008@ML(9,781,248@HL) 및 re-set bit_rate_value. Sequence_extension()에서,re-set profile_and_level_indication=0 100 1000@ML(0 100 0100@HL). Picture_header()에서, re-compute 및 re-set vbv_delay. |
B |
Sequence_extension()에서, re-set chroma_format="4:2:0". |
C |
Picture_coding_extension()에서, re-set intra_dc_precision=8,9, 또는 10(programmable). Set chroma_420_type=progressive_frame; |
D |
Quant_matrix_extension(), re-set load_chroma_intra_quantiser_matrix=0 및 제거 chroma_intra_quantiser_matrix[64]. |
E |
Quant_matrix_extension(), re-set load_chroma_non_intra_quantiser_matrix=0 및 제거 chroma_non_intra_quantiser_matrix[64]. |
F |
각 매크로블록에 대한 코드된 블록 패턴을 변경. |
표 3에 기술된 신택스 변경 액션은 MPEG-2 표준에 기술된 "시퀀스 헤더", "시퀀스 확장", "픽처 헤더", "픽처 코딩 확장" 및, "양의 매트릭스 확장"의 신택스에 의해 더 이해될 수 있다.
오리지널 intra_dc_precision=11비트이면, MP와의 호환성을 위해 8, 9 또는 10비트로 리셋된다.
MPEG 파라메터 intra_dc_precision은 각각 8, 9, 10 또는 11비트의 정밀도를 나타내기 위해 2진값 00, 01, 10 또는 11를 갖도록 정의된 2비트 정수이다. 파라메터 intra_dc_precision은 인트라 코드된 블록의 DC계수의 역양자화를 위해 사용된 승수 intra_dc_mult에 대한 값을 나타낸다. 즉, 각각의 00, 01, 10 또는 11의 intra_dc_precision에 대한 intra_dc_mult=8, 4, 2 또는 1이다.
일반적으로, 역양자화의 경우, 계수 QF[v][u]의 2-디멘저널 어레이는 재구성 된 DCT계수를 생성하기 위해 역양자화 된다. 본질적으로, 이러한 프로세스는 양자화기 스탭 크기에 의한 곱셈이다. 양자화기 스탭 크기는 2개의 메카니즘에 의해 변경된다. 즉, 블록 내에 스탭 크기를 변경하기 위해 가중 매트릭스가 이용되고, 몇비트만을 희생하여 스탭 크기가 변경될 수 있도록 스케일 요소가 이용된다(완전한 새로운 가중 매트릭스를 인코딩하도록 비교된 것과 같이).
양자화 스케일 요소를 나타내는 비표시의 1 내지 31 범위의 비제로 정수인 quantiser_scale_code와, 가중 매트릭스 W[w][v][u]를 이용하여 컨버트 되는 비트스트림의 변환계수로 적절한 역양자화 계산이 수행된다. F'[v][u]를 산출하기 위해 상기 결과의 계수인 F''[v][u]가 제공된 후, 최종 재구성된 DCT계수 F[v][u]를 부여하기 위해 미스매치(mismatch) 제어동작이 수행된다.
2개의 가중 매트릭스가 4:2:0 데이터에 이용된다. 그 하나가 인트라 매크로블록(루마 및 크로마)이고, 또 하나가 비인트라 매크로블록(루마 및 크로마)이다. 4:2:2 데이터의 경우에는 4개의 매트릭스가 이용된다(인트라 루마, 인트라 크로마, 비인트라 루마 및, 비인트라 크로마). 따라서, 루미넌스 및 크로미넌스 데이터에 다른 매트릭스가 이용될 수 있다. 각각의 매트릭스는, 사용자 정의 매트릭스를 다운로딩함으로써 겹쳐써지는 일련의 디폴트(default) 값을 갖는다.
가중 매트릭스 W[w][v][u]의 경우, w는, 매트릭스중 어느 것이 사용되는가를 나타내는 값 0 내지 3을 취한다. 표 4는 w의 선택을 제어하는 룰을 요약한다.
표 4 - w의 선택
|
4:2:0 |
4:2:2 |
루마 |
크로마 |
루마 |
크로마 |
인트라 블록(macroblock_intra=1 |
0 |
0 |
0 |
2 |
비인트라 블록(macroblock_intra=0 |
1 |
1 |
1 |
3 |
인트라 블록의 경우, 양자화된 DCT 변환계수 QF[0][0]의 2-디멘저널 어레이의 DC값은 AC값과 다르게 처리된다. 관계 F''[0][0]=intra_dc_mult×QF[0][0]에 따라 DCT 변환 DC계수 어레이 값을 생성하기 위해 DC값이 역양자화 된다.
더욱이, vbv_delay가 vbv_dely(n)=Bd(n)/R로부터 재계산된다. 여기서, Bd(n)은 픽처 n을 디코딩하기 직전의 디코더 (VBV) 버퍼 충만(fullness)이다. 일반적으로, vbv_delay 및 vbv_buffer_size 재설정은 VBV 버퍼 및 실제비율 버퍼의 오버플로우 또는 언더플로우를 피하기 위해 양자화 피드백 루프를 필요로 한다.
MP-비트스트림 내의 MB의 크로마 블록에 대한 새로운 코드화 블록 패턴(CBP)은 재양자화 크로미넌스 데이터에 의해 결정된다. CBP는, 각각의 매크로블록에 대한 코드화 블록수, 예컨대 8개의 4:2:2 색 포맷의 코드화 블록, 또는 6개의 4:2:0 색 포맷의 코드화 블록을 나타낸다. 예컨대, 4:2:2 대 4:2:0 컨버전의 경우, 신택스 변경 F는 4개의 크로마 블록이 아닌 2개의 존재를 나타내기 위해 CBP 변경을 수반한다. 루마 블록수(예컨대, 4개의 블록)에 대한 변경은 발생하지 않는다.
4:2:2P 대 MP 컨버전을 수행하기 위해, 이하의 키 신택스 요소는 4:2:2P 비 트스트림으로부터 분석될 필요가 있다:
a=(intra_dc_precision==11)?1:0;
b=(chroma_format=="4:2:2")?1:0;
c=(load_chroma_intra_quantiser_matrix==1)?1:0; 및
d=(load_chroma_non_intra_quantiser_matrix==1)?1:0.
상기 기술은 의사코드 신택스와 같은 C언어를 이용한다. 예컨대, "a=(intra_dc_precision==11)?1:0" 평균 "a"는 "intra_dc_precision==11"이 참이면 값 "1"이 할당된다. 그렇지 않으면, "a"는 값 "0"이 할당된다.
상술한 바와 같이, intra_dc_precision은 MP에 대해 8, 9 또는 10의 값을 가져야만 한다. 따라서, 그것은 intra_dc_precision==11(십진 11, 또는 1110)이면 리셋되어야만 한다.
용어 chroma_format은 컨버트 되는 비트스트림의 크로미넌스 포맷을 나타내는 2비트 정수이다. 즉, chroma_format = 01(2진)은 4:2:0 포맷을 나타내고, chroma_format = 10은 4:2:2 포맷을 나타낸다. 4:2:2P가 4:2:2 색 포맷(b=1) 및 4:2:0 색 포맷(b=0)을 모두 수용하는 것을 상기한다. 4:2:2P의 4:2:0 포맷도 중요한 케이스이다. 그것은, 4:2:2P의 경우, 루마 및 크로마 모두가 다른 양자화 매트릭스를 가질 수 있기 때문에, 그들 모두가 동일한 해상도를 가질지라도 ML과는 다르다. 반대로, ML의 경우, 루마 및 크로마 모두는 동일한 양자화 매트릭스를 사용한다. 실험들은, 각각의 루마 및 크로마 매트릭스에 의한 코딩이 양호한 품 질의 이미지를 제공하는 것을 보여준다.
용어 load_chroma_intra_quantiser_matrix는,chroma_intra_quantiser_matrix가 뒤따르면 "1"로 설정되는 1비트 플래그이다. 만약, "0"으로 설정되면, 사용되는 값의 변경은 없다. chroma_format이 "4:2:0"(즉, 10)이면, 플래그는 값 "0"을 취한다.
용어 chroma_intra_quantiser_matrix는 인트라 크로마 변환값을 양자화 하기 위해 이용된 비제로 8비트 비표시 정수인 리스트의 64이다.
용어 load_chroma_non_intra_quantiser_matrix는, chroma_non_intra_quantiser_matrix가 뒤따르면 "1"로 설정되는 1비트 플래그이다. 만약, "0"으로 설정되면, 사용되는 값의 변경은 없다. 만약, chroma_format이 "4:2:0"(즉, 01)이면, 이 플래그는 값 "0"을 취한다.
용어 chroma_non_intra_quantiser_matrix는 비인트라 크로마 변환값을 양자화 하기 위해 사용된 비제로 8비트 비표시 정수인 리스트의 64이다.
표 5는 컨버전 프로세스의 16개의 가능한 케이스를 정의한다. 예컨대, 케이스=0의 경우, abcd=0000(즉, a=0, b=0, c=0 및 d=0)이다. Q-매트릭스를 적용하기 위한 옵션의 경우, 이것은 수신된 비트스트림이 크로마에 대한 각 Q-매트릭스를 갖는지의 여부를 검출함으로써, 4:2:2P 대 MP 트랜스코딩/컨버팅(transcoding/converting)이 결정된다. 만약 그렇다면, 크로마 매트릭스는 루마 매트릭스로 교체된다.
표 5 - 신택스 변경 및 텍스처 컨버팅 프로세스의 케이스
케이스: |
abcd: |
신택스 변경(표 3 참조) |
컨버전 프로세스 |
옵션 |
0: |
0000 |
A |
vbv_delay 및 vbv_size 변경 |
|
1: |
0001 |
A,E |
도 6 |
apply chroma_intra_quantiser_matrix |
2: |
0010 |
A,D |
도 6 |
apply chroma_non_intra_quantiser_matrix |
3: |
0011 |
A,D,E |
도 6 |
|
4: |
0100 |
A,B,F |
도 3~5 |
|
5: |
0101 |
A,B,E,F |
도 3~5 |
apply chroma_intra_quantiser_matrix |
6: |
0110 |
A,B,D,F |
도 3~5 |
apply chroma_non_intra_quantiser_matrix |
7: |
0111 |
A,B,D,E,F |
도 3~5 |
|
8: |
1000 |
A,C |
도 6,7 |
change intra_dc_precision |
9: |
1001 |
A,C,E |
도 6,7 |
change intra_dc_precision apply chroma_intra_quantiser_matrix |
10: |
1010 |
A,C,D |
도 6,7 |
change intra_dc_precision apply chroma_non_intra_quantiser_matrix |
11: |
1011 |
A,C,D,E |
도 6,7 |
change intra_dc_precision |
12: |
1100 |
A,B,C,F |
도 3~5,7 |
change intra_dc_precision |
13: |
1101 |
A,B,C,E,F |
도 3~5,7 |
change intra_dc_precision apply chroma_intra_quantiser_matrix |
14: |
1110 |
A,B,C,D,F |
도 3~5,7 |
change intra_dc_precision apply chroma_non_intra_quantiser_matrix |
15: |
1111 |
A,B,C,D,E,F |
도 1,2,4,5,7 |
change intra_dc_precision |
본 발명에 따른 포맷 컨버터의 텍스처 컨버팅 프로세스에 있어서, intra_dc_precision≠11비트이면, 크로미넌스만이 재인코드 될 필요가 있고, 루미넌스 블록에 의해 이미 결정된 움직임벡터가 크로미넌스 블록을 재인코딩하기 위해 사용되기 때문에 동작추정은 수행될 필요가 없다.
4:2:2P 비트스트림 내의 intra_dc_precision=11비트인 케이스의 경우, 컨버팅 프로세스를 위해 인트라 DCT DC 루마 성분의 재양자화가 요구된다(크로마 성분의 재양자화에 따라). 컨버팅 프로세스를 간단히 하기 위해, 움직임벡터가 MP 비트스트림을 위해 재사용된다. intra_dc_precision이 8, 9 또는 10비트로 리셋될 수 있기 때문에, 인트라-DCT DC 성분의 양자화의 세이빙 비트(saving bits)간 트레드-오프(trade-off)가 있어 재사용된 움직임벡터의 정확성을 유지한다. 따라서, intra_dc_precision을 조절하기 위한 방법은, 디폴트 intra_dc_precision=10(4:2:0 MP의 최고 허용값)을 설정하는 것이지만, 원한다면 사용자에 의해 8 또는 9로 겹쳐써질 수 있다.
높은 정밀도의 경우, 전송을 위해 많은 비트가 필요하다. 더욱이, 완전 펠(pel)과 절반 펠 움직임벡터 모두가 재사용될 수 있다. 적어도 절반 펠 MV가 재구성된 픽처로부터 생성되므로, intra_dc_precision의 변경이 에러를 야기하기 때문에, 포맷 컨버전중의 변경이 4:2:2P 대 MP 트랜스코딩의 가능한 에러를 감소시키는 것과 같이 최소화 된다.
재양자화 프로세스가 포맷 컨버전에 적용될 경우, 코드화 비트수를 감소시키려면 intra_dc_precision=8이 이용될 것이다.
만약, 크로마 Q-매트릭스(chroma_intra_quantiser_matrix 및/또는 chroma_non_intra_quantiser_matrix)가 4:2:2P 비트스트림에 적용되면, 루마 Q-매트릭스(luma_intra_quantiser_matrix 및/또는 luma_non_intra_quantiser_matrix)는 본 발명에 따른 크로미넌스 블록의 재양자화에 적용된다.
양자화 매트릭스(Q-매트릭스)가 포맷 컨버터에 제공되면, 상술한 바와 같은 역양자화에 이용된 2-디멘전 가중 매트릭스 W[w][u][v]로 컨버트 되는 스캔 오더의 비트스트림으로 인코드 된다.
도 3은 본 발명에 따른 4:2:2P 비트스트림에서 MP 비트스트림으로의 크로미넌스 블록 비트스트림 컨버전을 나타낸다. 도 3은 4:2:2P 비트스트림(예컨대, 프리-컨버전 비트스트림)의 2개(가능한)의 크로미넌스 블록을 MP 비트스트림(예컨대, 포스트-컨버전 비트스트림)의 하나의 크로미넌스 블록으로 컨버팅 하기 위한 컨버터에 대한 완전한 블록도를 제공한다. 컨버터(300)는, 각각의 제1 및 제2크로마 동작보상 기능과, 크로마 MC(1) 320 및, 크로마 MC(2)에 MV 데이터를 제공하는 VLD기능(305)에서 4:2:2P 비트스트림을 수신한다.
수신된 데이터의 인트라 또는 인터모드 상태와 관련한 정보는 스위치 325, 327 및 370에 제공된다.
인트라모드 데이터의 경우, 스위치 325는 가산기(330)에 널 "0"신호를 패스하기 위해 활성화 되고, 스위치 327은 가산기(345)에 널 "0"신호를 패스하기 위해 활성화 되며, 스위치 370은 가산기(367)에 널 "0"신호를 패스하기 위해 활성화 된다. 인터모드 데이터의 경우, 스위치 325는 크로마 MC(1) 기능(320)에서 가산기(330)로 기준 이미지 데이터를 패스하기 위해 활성화 되고, 스위치 327은 크로마 MC(2) 기능(325)에서 가산기(345)로 기준 이미지 데이터를 패스하기 위해 활성화 된다.
크로마 MC(1) 기능(320)은 4:2:2 크로마 데이터에 이용된 동작보상 유닛이고, 반면 크로마 MC(2) 기능(325)는 4:2:0 크로마 데이터에 이용된 동작보상 유닛이다. 본 발명에 따른 루마 MV 데이터는, 크로마 MC(2) 기능(325)에서 4:2:0 크로마 MP 데이터의 동작보상(크로마 MC(1) 기능(320)에서 4:2:2 크로마 4:2:2P 데이터의 동작보상 뿐만 아니라)에 이용된다. 이것은, 4:2:0 크로마 MP 데이터에 대해, 기준 프레임의 검색을 포함한 각각의 동작추정 프로세싱을 필요로 하지 않는다.
VLD 기능(305)으로부터 출력된 데이터는 현재 이미지(예컨대, 프레임)로부터 양자화된 변환계수 데이터를 포함한다. 이 데이터는 역양자화 Q1
-1(310) 및 IDCT 기능(315)에 제공된다. 그 결과의 픽셀 도메인 데이터는 가산기(330)에 제공되고, 그 가산기(330)로부터의 출력은, 필요하다면 최소와 최대값 사이, 예컨대 범위 [0,255]의 데이터를 클립(clip)하기 위해 클립 기능(335)에 제공된다.
클립된 데이터는 필드-기초 수직필터 및 2:1 수직 다운샘플링 필터를 포함하는 필더(340)에 제공된다. 예컨대, 수직필터 탭(tap)은 탑-필드의 {-16, 0, 79, 130,79, 0, -16}이고, 반면 필터 탭은 기초-필드의 {1, 7, 7, 1}이다.
크로마 MC(1) 기능(320)은 MV의 수평(x)성분의 2:1 다운샘플링을 이용하여 VLD(305)로부터 수신된 MV를 변경한다. 유사하게, 크로마 MC(2) 기능(325)는 MV의 수평(x) 및 수직(y)성분의 2:1 다운샘플링을 이용하여 VLD(305)로부터 수신된 MV를 변경한다.
또한, 클립된 데이터가 크로마 MC(1) 기능(320)에 제공된다.
몇몇 기능유닛이 다른 유닛 내에 삽입된다. 예컨대, 양자화 DCT DC계수의 각각의 인코딩 및 디코딩은 각각의 VLC 블록(395) 및 VLD 블록(305)의 일부인 것으로 고려된다. 블록(310)에서의 역양자화 Q1
-1은 역양자화 계산으로부터 각 계수에 대한 범위 [-2048, +2047]의 세터레이션 프로세스(saturation process)를 포함한다. IDCT 블록(315)은 각 역변환값에 대한 범위 [-256, 255]의 세터레이션을 포 함한다. MC 블록, 크로마 MC(1) 320 및 크로마 MC(2) 325는 기준 픽처를 위한 메모리를 포함한다.
CBP 기능(315)은 아웃고잉 MP 비트스트림의 CBP를 변경하기 위해 이용된다. 루마 Q-매트릭스 기능(390)은 CBP를 변경하는 하나의 요소이다. 또 다른 요소는 재양자화 레벨의 증가이고, 픽셀값을 갖는 MB의 오리지널(수신된 비트스트림) 2개의 Cb 또는 Cr 블록의 오직 하나의 필드블록 뿐이다.
4:2:0 색 포맷을 갖는 필터된 현재 이미지 데이터는 가산기(345)에 제공되고, 크로마 MC(2) 기능으로부터 널 신호 또는 기준 이미지 데이터가 공제된다. DCT 기능(350)에서, 가산기(345)로부터의 데이터(인트라 코드된 이미지의 현재 이미지 4:2:0 픽셀 데이터로 이루어지거나, 또는 현재 이미지와 인터 코드된 이미지의 기준 이미지간 차에 대응하는 차 4:2:0 픽셀 데이터로 이루어진)가 DCT계수로 변환되고, 재양자화기(Q1) 355에서 양자화 된다.
재양자화 Q1은 역양자화 레벨 Q-1에 대응하는 것과 같이 나타난다. 그러나, 재양자화 레벨은, 수신된 비트스트림의 트랜스코딩을 제공하기 위해, 비율제어 기능으로부터 적절한 제어신호에 기초하여 다른 레벨(Q2)로 조절되고, 여기서 MP 비트스트림은 4:2:2P 비트스트림과 다른 비율로 제공된다.
풀(full) 트랜스코더 실행을 위한 도 8을 참조.
양자화된 데이터는 전송 또는 또 다른 프로세싱을 위한 MP 비트스트림을 얻기 위해 VLC 기능(395)에 제공된다. 예컨대, 트랜스코더는 포맷 컨버터(300)와 연결된다.
양자화 데이터는 역양자화기(360) 및 IDCT 기능(365)에서 프로세스 된다. 다음에, 복원된 현재 이미지 픽셀 데이터가 가산기(367)에 제공되고, 여기서 그것은 크로마 MC(2) 기능(325)로부터의 기준 이미지 데이터(인터모드 데이터에 대한) 또는 널 신호(인트라모드 데이터에 대한)와 합계된다. 스위치(370)는 그것(예컨대, VLD(305)로부터)에 제공된 인트라/인터모드 정보에 따른다.
가산기(367)로부터의 출력은 클립 기능(375)에서 클립되고 크로마 MC(2) 기능(325)에 제공된다.
컨버터(300)에서, 점선기능 유닛과 경로는 조건적이다(즉, 몇몇 경우에 이용된다). 예컨대, QDC 유닛(380)은, 사용자 설정에 의해 요청되거나, intra_dc_precision=1110이면, DC 크로마 계수의 재양자화를 수행하기 위해 이용된다. 특히,
intra_dc_precision=8에 대해 QDC(8bits)=DC//8,
intra_dc_precision=9에 대해 QDC(9bits)=DC//4,
intra_dc_precision=10에 대해 QDC(10bits)=DC//2. "DC"는 비양자화 DC DCT의 값을 나타낸다. "//"은 가장 가까운 정수 근방의 정수 분할을 나타낸다. 1/2 정수값은 0에서 먼 근방이 된다.
기능(382)는, 앞서 기술한 바와 같이, 원한다면 새로운 intra_dc_precision 레벨(예컨대, 8~10비트)을 설정하기 위해 제공된다.
크로마 Q-매트릭스 기능(385)은 역양자화기(310)에 의해 사용하기 위한 크로마 양자화 매트릭스를 복원한다. 루마 Q-매트릭스 기능(390)은 4:2:0 MP 크로마 계수를 재양자화 함에 있어 재양자화기(355)에 의해 사용하기 위한 루마 양자화 매트릭스를 복원한다. 선택적으로, 루마 Q-매트릭스는, 코딩 원인, 예컨대 종래 기술의 명백한 방식으로 매트릭스의 값을 조절함으로써 코딩 효율성을 향상시키기 위해 변경될 수 있다. 또한, 재양자화기(355)는, intra_dc_precision=1110일 때 DC 루마 계수를 재양자화 한다.
만약, 양자화 매트릭스가 수신 비트스트림에 존재하지 않으면, 디폴트 MPEG 양자화 매트릭스와 같은 디폴트가 사용된다. 디폴트 매트릭스는, 예컨대 컨버터(300)에 로컬적으로 저장된다.
코스트(cost) 대 실행 트래드-오프를 균형 맞추기 위해, 2개의 단순화된 크로미넌스-블록 비트스트림 컨버터가 다음의 도 4 및 5에 제공된다.
도 4는 본 발명에 따른 4:2:2P 비트스트림에서 MP 비트스트림으로의 단순화된 크로미넌스 블록 비트스트림 컨버전을 나타낸다. 컨버터(400)에서, 하나의 동작보상 유닛만이, 즉 크로마 MC(2) 기능(325)이 사용된다. 이것은, 도 3의 컨버터(300)와 비교하여 프레임-버퍼 메모리의 2/3이다. 도 4의 필터(340)는 IDCT 기능(315)으로부터 재구성된 크로미넌스 블록에만 적용되고, 필터링 프로세스에 클립핑은 적용되지 않는다.
그러나, 컨버터(400)는 복잡성을 상당히 감소시키지만, 이러한 단순화에 의 해 에러가 도입된다. 3가지의 에러 소스가 있다:
1. 크로미넌스 MC(1)의 제거 및 (a) 4:2:0 포맷의 그리고 (b) 새로운 루마 양자화기 매트릭스에 의해 양자화된 4:2:2 크로마 기준 픽처를 표시;
2. 필터 및 클립 기능 블록의 위치를 변경;
3. 필터링 프로세스의 인티저 동작(integer operation).
완전한 프로세스가 크로미넌스만을 포함하기 때문에, 크로마 에러가 이미지에서 적은 것처럼 인지되므로 도입된 에러는 매우 작은 것처럼 보인다.
상기의 접근 외에, 양자화 및 클립핑에 의해 생성된 에러가 무시되면, 도 4의 컨버터(400)에 의해 주어진 크로미넌스-블록 비트스트림 컨버전 프로세스는 도 5의 컨버터(500)에 의해 접근될 수 있다.
도 5는 본 발명에 따른 4:2:2P 비트스트림에서 MP 비트스트림으로의 접근된 크로미넌스 블록 비트스트림 컨버전을 나타낸다. 컨버터(500)에서, 동작보상 유닛, 즉 크로마 MC(3) 기능(510)은 다른(또는, 상주) 이미지에 적용된다. IDCT 기능(315), 필터(340) 및, DCT 기능(350)을 하나의 싱글유닛(520)에 결합함으로써, 컨버터(500)의 복잡성이 감소한다. 그러나, 그와 같은 구조는 색 드리프트(drift)를 도입한다.
4:2:0 색 포맷 비트스트림의 4:2:2P의 경우, 도 6에 나타낸 바와 같이 컨버터가 더 단순화 될 수 있다.
도 6은 본 발명에 따른 4:2:0 색 포맷의 4:2:2P 비트스트림에서 MP 비트스트림으로의 크로미넌스-블록 비트스트림 컨버전을 나타낸다. 컨버터(600)의 경우, 3개의 데쉬선의 기능유닛, 즉 IDCT(315), 클립 기능(335) 및, DCT 기능(350)을 제거함으로써 저비용 실행의 접근이 이루어질 수 있다.
루미넌스 블록의 경우, 오직 필요한 컨버전은 도 7에 나타낸 가능한 DC 정밀도 변경(382)이다.
도 7은 본 발명에 따른 intra_dc_precision=1110일 때, 4:2:2P 4:2:2 또는 4:2:0 비트스트림에서 MP 4:2:0 비트스트림으로의 루미넌스-블록 비트스트림 컨버전을 나타낸다. 컨버터(700)는 값이 범위를 넘으면, 사용자 입력에 기초하여 새로운 intra_dc_precision을 설정하기 위한 기능(382)을 포함한다.
텍스츠 컨버팅 프로세스의 여러가지 경우가 표 5에 요약되어 있다.
도 8은 본 발명에 따른 4:2:2: 대 4:2:0 컨버터와 트랜스코더의 결합을 나타낸다. 도 4에 주어진 4:2:2 대 4:2:0 컨버터(400)는 4:2:2P 대 MP 트랜스코더(800)를 제공하기 위해 통상 트랜스코더와 결합될 수 있다. 트랜스코더/컨버터(800)에서, 재양자화 기능 (Q2) 855는 비율제어신호에 따라 Q1과 다른 양자화 레벨을 제공한다. 대응하는 역양자화 기능 Q2
-1 860이 제공된다. 비율제어신호는 MP 비트스트림의 원하는 비트율을 달성하기 위해 기존의 방식으로 비율제어기능에 의해 생성된다.
기능 810, 830, 850 및 867은 각각 기능 310, 330, 350 및 367에 대응한다. 기능 855', 860' 및 365'는 각각 기능 855, 860 및 365에 대응한다.
또한, 루마 MC 기능(820)이 수신된 비트스트림의 루마 데이터의 동작보상을 제공하기 위해 제공된다. MV는 동작추정의 필요성을 피하기 위해 재사용된다.
따라서, 본 발명은 디지털 비디오 비트스트림의 색 포맷을 컨버팅 하기 위한 시스템을 제공하는 것을 알 수 있다. 시스템은, 양자화기 정밀도 레벨을 포함하여, 프리-컨버전 및 포스트-컨버전 비트스트림의 허용가능 포맷을 설명하고, 루마 및 크로마 데이터가 각각의 양자화 매트릭스를 갖는지의 여부, 또는 공통 양자화 매트릭스를 공유하는지의 여부를 설명한다. 특히 실행에 있어서, 4:2:2 또는 4:2:0의 색 포맷을 갖는 MPEG-2 4:2:P 비트스트림(즉, 프리-컨버전 비트스트림)은 4:2:0의 색 포맷을 갖는 MP 비트스트림(즉, 포스트-컨버전 비트스트림)으로 컨버트 된다.
크로마 데이터를 재양자화 하기 위해 루마 양자화 매트릭스를 사용하고, 크로마 데이터의 동작보상을 수행하기 위한 루마 움직임벡터를 재사용함으로써 코딩 효율이 달성된다.
인터 코드된 프레임을 컨버팅 하기 위한 4:2:0 포맷의 4:2:2 기준 픽처를 표시함으로써 효율이 더 달성될 수 있다.
픽셀 다운사이징(downsizing) 필터 및 클립 기능의 위치를 변경함으로써 효율이 더 달성될 수 있다.
또한, 4:2:2P 4:2:0 포맷 프리-컨버전 비트스트림에 대한 단순화가 이루어질 수 있다.
프리-컨버전 비트스트림의 양자화 정밀도가 포스트-컨버전 비트스트림의 양자화 정밀도와 호환되지 않으면 루마 블록에 대한 효율적인 컨버전이 제공된다.
또한, 트랜스코딩 포맷 컨버터가 포스트-컨버전 비트스트림의 다른 비트율을 달성하기 위해 제공된다.
비록 본 발명이 여러가지 특정한 실시예와 관련하여 기술했지만, 본 발명의 목적 및 배경을 이탈하지 않는 범위 내에서 다양하게 변경하여 실시할 수 있다.