KR20160138214A - 컬러 공간 전환시의 양자화/스케일링 및 역 양자화/스케일링의 조정 - Google Patents

컬러 공간 전환시의 양자화/스케일링 및 역 양자화/스케일링의 조정 Download PDF

Info

Publication number
KR20160138214A
KR20160138214A KR1020167029796A KR20167029796A KR20160138214A KR 20160138214 A KR20160138214 A KR 20160138214A KR 1020167029796 A KR1020167029796 A KR 1020167029796A KR 20167029796 A KR20167029796 A KR 20167029796A KR 20160138214 A KR20160138214 A KR 20160138214A
Authority
KR
South Korea
Prior art keywords
color space
color
value
component
encoder
Prior art date
Application number
KR1020167029796A
Other languages
English (en)
Other versions
KR102216600B1 (ko
Inventor
빈 리
지쳉 쉬
제이 개리 설리번
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20160138214A publication Critical patent/KR20160138214A/ko
Application granted granted Critical
Publication of KR102216600B1 publication Critical patent/KR102216600B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals

Abstract

비디오 시퀀스의 단위에 대한 적응적 인코딩 및 디코딩에서의 혁신안은, 인코딩 및 디코딩 동안 컬러 공간 사이에서 전환할 때 코딩 효율성을 향상시킬 수 있다. 예를 들면, 혁신안 중 몇몇은, 인코더가 인코딩 동안 비디오 시퀀스 내의 단위 사이에서 컬러 공간을 전환할 때의 양자화 또는 스케일링의 조정에 관한 것이다. 다른 혁신안은, 디코더가 디코딩 동안 비디오 시퀀스 내의 단위 사이에서 컬러 공간을 전환할 때의 역 양자화 또는 스케일링의 조정에 관한 것이다.

Description

컬러 공간 전환시의 양자화/스케일링 및 역 양자화/스케일링의 조정{ADJUSTING QUANTIZATION/SCALING AND INVERSE QUANTIZATION/SCALING WHEN SWITCHING COLOR SPACES}
엔지니어는 디지털 비디오의 비트 레이트를 감소시키기 위해 압축(소스 코딩 또는 소스 인코딩으로도 또한 칭해짐)을 사용한다. 압축은 정보를 더 낮은 비트 레이트 형태로 변환하는 것에 의해 비디오 정보를 저장 및 송신하는 비용을 감소시킨다. 압축해제(decompression)(디코딩으로도 또한 칭해짐)는 압축된 형태로부터 원래의 정보의 버전을 재구성한다. "코덱"은 인코더/디코더 시스템이다.
지난 이십 여년에 걸쳐, ITU-T H.261, H.262 (MPEG-2 또는 ISO/IEC 13818-2), H.263 및 H.264 (MPEG-4 AVC 또는 ISO/IEC 14496-10) 표준, MPEG-1 (ISO/IEC 11172-2) 및 MPEG-4 비주얼(ISO/IEC 14496-2) 표준, 및 SMPTE 421M(VC-1) 표준을 비롯한 다양한 비디오 코덱 표준이 채택되었다. 보다 최근에는, H.265/HEVC 표준(ITU-T H.265 또는 ISO/IEC 23008-2)이 승인되었다. (예를 들면, 스케일러블 비디오 코딩/디코딩을 위한, 샘플 비트 깊이 또는 크로마 샘플링 레이트의 관점에서 충실도가 더 높은 비디오의 코딩/디코딩을 위한, 스크린 캡쳐 컨텐츠를 위한, 또는 멀티뷰 코딩/디코딩을 위한) H.265/HEVC 표준에 대한 확장안이 현재 개발 중에 있다. 비디오 코덱 표준은 통상적으로, 인코딩 및 디코딩에서 특정 피쳐가 사용될 때 비트스트림에서 파라미터를 상세히 설명하는, 인코딩된 비디오 비트스트림의 신택스(syntax)에 대한 옵션을 정의한다. 많은 경우에서, 비디오 코덱 표준은 또한, 디코딩에서의 일치하는 결과를 달성하기 위해 디코더가 수행해야 하는 디코딩 동작에 관한 상세를 제공한다. 코덱 표준 외에, 다양한 독점적 코덱 포맷이 인코딩된 비디오 비트스트림의 신택스에 대한 다른 옵션 및 대응하는 디코딩 동작을 정의한다.
카메라, 애니메이션 출력, 스크린 캡쳐 모듈, 등등과 같은 비디오 소스는, 통상적으로, 특정한 컬러 공간에서 비디오를 제공한다. 일반적으로, 컬러 공간(종종 컬러 모델로 칭해짐)은 물리적 위치마다 n(n≥1) 개의 값으로 컬러를 표현하기 위한 모델인데, 이 경우 n 개의 값의 각각은 그 위치에 대한 컬러 성분 값을 제공한다. 예를 들면, YUV 컬러 공간에서, 루마(또는 Y) 성분 값은 한 위치에서의 대략적인 휘도를 나타내고 다수의 크로마(또는 U 및 V) 성분 값은 그 위치에서의 컬러 차이를 나타낸다. 또는, RGB 컬러 공간에서, 레드(R) 성분 값은 한 위치에서의 레드 강도(intensity)를 나타내고, 그린(G) 성분 값은 한 위치에서의 그린 강도를 나타내고, 블루(B) 성분 값은 한 위치에서의 블루 강도를 나타낸다. 역사적으로, 상이한 컬러 공간은 디스플레이, 프린팅, 브로드캐스팅 및 인코딩/디코딩과 같은 상이한 애플리케이션에 대해 이점을 갖는다. 샘플 값은 컬러 공간 변환 동작을 사용하여 컬러 공간 사이에서 변환될 수 있다.
많은 상업적으로 이용가능한 비디오 인코더 및 디코더는 YUV 포맷만을 지원한다. (예를 들면, H.264/AVC 표준 또는 H.265/HEVC 표준에 대한) 다른 상업적으로 이용가능한 인코더 및 디코더는, 인코더가 주어진 시퀀스에 대해 컬러 공간을 규정하는 것을 허용한다. 규정된 컬러 공간은 전체 비디오 시퀀스에 대해 사용된다. 이들 방식은, 단일의 비디오 시퀀스 내에서 아주 상이한 종류의 비디오 컨텐츠를 프로세싱할 수도 있는 범용 코덱 시스템에 대해 충분한 유연성을 제공하지 않는다. 최근, 인코딩 또는 디코딩 동안 컬러 공간 사이에서 전환하는 방식이 고려되었지만, 그러나 이들 방식은 상이한 컬러 공간에서 수행된 양자화의 효과에서의 변동을 충분히 고려하지 않는다.
요약하면, 상세한 설명은, 적응적 인코딩 및 디코딩의 분야에서 혁신안을 제시한다. 예를 들면, 혁신안 중 몇몇은, 인코더가 인코딩 동안 비디오 시퀀스 내의 단위(unit) 사이에서 컬러 공간을 전환할 때의 양자화 또는 스케일링의 조정에 관한 것이다. 다른 혁신안은, 디코더가 디코딩 동안 비디오 시퀀스 내의 단위 사이에서 컬러 공간을 전환할 때의 역 양자화 또는 스케일링의 조정에 관한 것이다. 이들 혁신안은 인코딩 및 디코딩 동안 컬러 공간 사이에서 전환할 때의 코딩 효율성을 향상시킬 수 있다.
본원에서 설명되는 혁신안 중 하나의 양태에 따르면, 이미지 또는 비디오 인코더는 이미지 또는 비디오의 단위(예를 들면, 픽쳐, 슬라이스, 코딩 단위, 블록)를 인코딩하여 인코딩된 데이터를 생성한다. 인코딩의 일부로서, 단위 중 두 개의 단위 사이에서 제1 컬러 공간으로부터 제2 컬러 공간으로(예를 들면, RGB 타입 컬러 공간으로부터 YUV 타입 컬러 공간으로, 또는 YUV 타입 컬러 공간으로부터 RGB 타입 컬러 공간으로) 전환할 때, 인코더는, 성분마다의 컬러 공간 조정 인자(component color space adjustment factor)에 따라 제2 컬러 공간의 컬러 성분에 대한 양자화 또는 스케일링을 조정한다. 인코더는 인코딩된 데이터를 비트스트림의 일부로서 출력한다.
본원에서 설명되는 혁신안 중 다른 양태에 따르면, 이미지 또는 비디오는 비트스트림의 일부로서 인코딩된 데이터를 수신하고 인코딩된 데이터를 디코딩하여 이미지 또는 비디오의 단위(예를 들면, 픽쳐, 슬라이스, 코딩 단위, 블록)를 재구성한다. 디코딩의 일부로서, 단위 중 두 개의 단위 사이에서 제1 컬러 공간으로부터 제2 컬러 공간으로(예를 들면, RGB 타입 컬러 공간으로부터 YUV 타입 컬러 공간으로, 또는 YUV 타입 컬러 공간으로부터 RGB 타입 컬러 공간으로) 전환할 때, 디코더는, 성분마다의 컬러 공간 조정 인자에 따라 제2 컬러 공간의 컬러 성분에 대한 역 양자화 또는 스케일링을 조정한다.
일반적으로, 성분마다의 컬러 공간 조정 인자는, 제2 컬러 공간으로부터 다시 제1 컬러 공간으로 변환할 때 양자화 에러의 에너지의 증폭을 보상한다. 다르게는, 제1 컬러 공간으로부터의 스케일링 인자 및 양자화 파라미터(quantization parameter; "QP") 값이 제2 컬러 공간의 샘플 값에 단순히 적용되면, 제2 컬러 공간에서의 양자화 에러는, 다시 제1 컬러 공간으로의 역 컬러 공간 변환 동작에 의해 증폭된다. 이것은, 인코딩을 위해 제2 컬러 공간으로 변환되는 단위와 인코딩을 위해 제2 컬러 공간으로 변환되지 않은 단위 사이의 양자화 에러의 에너지의 레벨에서 인지가능한 미스매치를 생성할 수 있다.
예를 들면, 비트스트림에서의 하나 이상의 신택스 엘리먼트는 성분마다의 컬러 공간 조정 인자를 나타낼 수 있다. 신택스 엘리먼트(들)는, 픽쳐 레벨, 슬라이스 레벨, 코딩 단위 또는 블록에 대한 신택스 레벨, 또는 어떤 다른 신택스 레벨에서 시그널링될 수 있다. 신택스 엘리먼트(들)는, 제2 컬러 공간의 제1 컬러 성분에 대한 QP 값을 나타내는 신택스 엘리먼트뿐만 아니라, 제2 컬러 공간의 제2 및 제3 컬러 성분에 대한 오프셋을 나타내는 신택스 엘리먼트를 포함할 수 있다.
또는, 비트스트림에서 신택스 엘리먼트에 의해 나타내어지는 대신, 제2 컬러 공간의 컬러 성분에 대한 성분마다의 컬러 공간 조정 인자는 제2 컬러 공간에 의존하는 규칙에 의해 유도될 수 있다. 예를 들면, 인코더 및 디코더는, 제1 컬러 공간에 대한 QP 값으로부터 시작하며, 제2 컬러 공간의 아이덴티티에 의존하는 조정치를 만드는 성분마다의 컬러 공간 조정 인자를 자동적으로 결정한다.
양자화 또는 역 양자화를 조정하는 액트(act)는, 제2 컬러 공간의 컬러 성분에 대한 최종 QP 값 또는 중간 QP 값을 조정하는 것을 포함할 수 있다. 예를 들면, 제1 컬러 공간이 RGB이고 제2 컬러 공간이 YCoCg이면, 성분마다의 컬러 공간 조정 인자는 Y, Co 및 Cg 성분에 대해 각각 -5, -3 및 -5일 수 있다. 더 일반적으로는, 양자화 및 역 양자화에 대한 성분마다의 컬러 공간 조정 인자는, 역 컬러 공간 변환 동작에서 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭에 의존할 수 있다.
인코딩 또는 디코딩 동안의 조정된 스케일링은 성분마다의 컬러 공간 조정 인자를 사용하여 변환 계수를 스케일링하는 것을 포함할 수 있다. 스케일링은 정수 전용 연산(integer-only operation) 또는 부동 소수점 연산(floating point operation)을 사용할 수 있다. 성분마다의 컬러 공간 조정 인자는 스케일링 인자의 리스트에 통합될 수 있거나 또는 별개로 적용될 수 있다. 예를 들면, 제1 컬러 공간이 RGB이고 제2 컬러 공간이 YCoCg이면, 성분마다의 컬러 공간 조정 인자는 Y, Co 및 Cg 성분에 대해 각각 대략적으로 1.78, 1.41 및 1.78일 수 있다. 더 일반적으로는, 스케일링에 대한 성분마다의 컬러 공간 조정 인자는, 역 컬러 공간 변환 동작에서 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭에 의존할 수 있다. 또는, 인코딩 또는 디코딩 동안의 조정된 스케일링은, 제2 컬러 공간의 상이한 컬러 성분에 대해 상이한 스케일링 리스트를 적용하는 것을 수반할 수 있다.
또는, 디코딩 동안 대응하는 변경을 필요로 하지 않는 인코딩 동안의 변경의 경우, 양자화를 조정하기 위해, 인코더는 단위 기반으로 성분마다의 QP 값(per component QP value)을 설정할 수 있다. 이 경우, 비트스트림은, 각각의 단위에 대한 성분마다의 QP 값을 나타내는 신택스 엘리먼트를 포함한다.
양자화/스케일링 또는 역 양자화/스케일링을 조정하기 위한 혁신안은, 방법의 일부로서, 방법을 수행하도록 적응된 컴퓨팅 디바이스의 일부로서 또는 컴퓨팅 디바이스로 하여금 방법을 수행하게 하기 위한 컴퓨터 실행가능 명령어를 저장하는 유형의 컴퓨터 판독가능 매체의 일부로서 구현될 수 있다. 다양한 혁신안은 조합하여 또는 개별적으로 사용될 수 있다.
본 발명의 상기 및 다른 목적, 피쳐, 및 이점은, 첨부의 도면을 참조로 진행하는 하기의 상세한 설명으로부터 더욱 명확하게 될 것이다.
도 1은 몇몇 설명된 실시형태가 구현될 수 있는 예시적인 컴퓨팅 시스템의 도면이다.
도 2a 및 도 2b는 몇몇 설명된 실시형태가 구현될 수 있는 예시적인 네트워크 환경의 도면이다.
도 3은 몇몇 설명된 실시형태가 연계하여 구현될 수 있는 예시적인 인코더 시스템의 도면이다.
도 4는 몇몇 설명된 실시형태가 연계하여 구현될 수 있는 예시적인 디코더 시스템의 도면이다.
도 5a 및 도 5b는 몇몇 설명된 실시형태가 연계하여 구현될 수 있는 예시적인 비디오 인코더를 예시하는 도면이다.
도 6은 몇몇 설명된 실시형태가 연계하여 구현될 수 있는 예시적인 비디오 디코더를 예시하는 도면이다.
도 7은 스크린 캡쳐에 대한 입력을 제공할 수도 있는 컨텐츠를 갖는 컴퓨터 데스크탑 환경을 예시하는 도면이다.
도 8은 내추럴 비디오 컨텐츠(natural video content) 및 인공적 비디오 컨텐츠(artificial video content)를 갖는 복합 비디오를 예시하는 도면이다.
도 9는, 시퀀스에서의 픽쳐에 대한 픽쳐 적응적 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 예시하는 도면이다.
도 10은, 시퀀스에서의 픽쳐의 슬라이스에 대한 슬라이스 적응적 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 예시하는 도면이다.
도 11은, 시퀀스에서의 픽쳐의 슬라이스의 블록에 대한 블록 적응적 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 예시하는 도면이다.
도 12는, 인코딩 동안 컬러 공간을 전환할 때 양자화 또는 스케일링을 조정하기 위한 일반화된 기술을 예시하는 플로우차트이고, 도 13은, 인코딩 동안 단위 기반으로 컬러 공간을 전환할 때 양자화 또는 스케일링을 조정하기 위한 보다 상세한 예시적인 기술을 예시하는 플로우차트이다.
도 14는, 디코딩 동안 컬러 공간을 전환할 때 역 양자화 또는 스케일링을 조정하기 위한 일반화된 기술을 예시하는 플로우차트이고, 도 15는, 디코딩 동안 단위 기반으로 컬러 공간을 전환할 때 역 양자화 또는 스케일링을 조정하기 위한 보다 상세한 예시적인 기술을 예시하는 플로우차트이다.
상세한 설명은, 적응적 인코딩 및 디코딩의 분야에서 혁신안을 제시한다. 예를 들면, 혁신안 중 몇몇은, 인코더가 인코딩 동안 비디오 시퀀스 내의 단위 사이에서 컬러 공간을 전환할 때의 양자화 또는 스케일링의 조정에 관한 것이다. 다른 혁신안은, 디코더가 디코딩 동안 비디오 시퀀스 내의 단위 사이에서 컬러 공간을 전환할 때의 역 양자화 또는 스케일링의 조정에 관한 것이다. 이들 혁신안은 인코딩 및 디코딩 동안 컬러 공간 사이에서 전환할 때의 코딩 효율성을 향상시킬 수 있다.
본원에서 설명되는 동작이 비디오 인코더 또는 비디오 디코더에 의해 수행되고 있는 것으로 여기저기에 설명되지만, 많은 경우에서, 동작은 다른 타입의 미디어 프로세싱 툴(예를 들면, 이미지 인코더 또는 이미지 디코더)에 의해 수행될 수 있다. 예를 들면, 동작은, 스틸 이미지 코딩 또는 디코딩, 의료적 스캔 컨텐츠 코딩 또는 디코딩, 멀티스펙트럼 영상 컨텐츠(multispectral imagery content) 코딩 또는 디코딩, 등등과 같은 애플리케이션에 대해 수행될 수 있다.
본원에서 설명되는 혁신안 중 몇몇은 H.265/HEVC 표준에 고유한 신택스 엘리먼트 및 동작을 참조로 예시된다. 예를 들면, H.265/HEVC 표준의 초안 버전(draft version) JCTVC-P1005 - 2014년 2월의 JCTVC-P1005_v1 "High Efficiency Video Coding (HEVC) Range Extensions Text Specification: Draft 6", 및 JCTVC-P1003, 2014년 2월의 JCTVC-P1003_v1 "High Efficiency Video Coding (HEVC) Defect Report 3"에 대한 참조가 이루어진다. 본원에서 설명되는 혁신안은 또한, 다른 표준 또는 포맷에 대해 구현될 수 있다.
보다 일반적으로는, 본원에서 설명되는 예에 대한 다양한 대안예도 가능하다. 예를 들면, 본원에서 설명되는 방법 중 몇몇은, 설명되는 방법 액트의 순서를 변경하는 것에 의해, 소정의 방법 액트를 분할, 반복, 또는 생략하는 것에 의해, 등등에 의해 변경될 수 있다. 개시된 기술의 다양한 양태는 조합하여 또는 개별적으로 사용될 수 있다. 상이한 실시형태는 설명된 혁신안 중 하나 이상을 사용한다. 본원에서 설명되는 혁신안 중 몇몇은 배경에서 언급된 문제점 중 하나 이상을 중점적으로 다룬다. 통상적으로는, 주어진 기술/툴은 이러한 문제점 모두를 해결하지는 않는다.
I. 예시적인 컴퓨팅 시스템.
도 1은, 설명된 혁신안 중 몇몇이 구현될 수도 있는 적절한 컴퓨팅 시스템(100)의 일반화된 예를 예시한다. 컴퓨팅 시스템(100)은, 혁신안이 다양한 범용의 또는 특수 목적의 컴퓨팅 시스템에서 구현될 수도 있기 때문에, 용도 또는 기능성의 범위에 관해 어떠한 제한도 제시하도록 의도되지는 않는다.
도 1을 참조하면, 컴퓨팅 시스템(100)은 하나 이상의 프로세싱 유닛(110, 115) 및 메모리(120, 125)를 포함한다. 프로세싱 유닛(110, 115)은 컴퓨터 실행가능 명령어를 실행한다. 프로세싱 유닛은 범용 중앙 프로세싱 유닛(central processing unit; "CPU"), 주문형 반도체(application-specific integrated circuit; "ASIC")에서의 프로세서, 또는 임의의 다른 타입의 프로세서일 수 있다. 다중 프로세싱 시스템에서, 프로세싱 파워를 증가시키기 위해 다수의 프로세싱 유닛이 컴퓨터 실행가능 명령어를 실행한다. 예를 들면, 도 1은 중앙 프로세싱 유닛(110)뿐만 아니라 그래픽 프로세싱 유닛 또는 코프로세싱 유닛(co-processing unit)(115)을 도시한다. 유형의(tangible) 메모리(120, 125)는, 프로세싱 유닛(들)에 의해 액세스될 수 있는, 휘발성 메모리(예를 들면, 레지스터, 캐시, RAM), 불휘발성 메모리(예를 들면, ROM, EEPROM, 플래시 메모리 등등), 또는 이 둘의 어떤 조합일 수도 있다. 메모리(120, 125)는, 컬러 공간을 전환할 때 양자화/스케일링 또는 역 양자화/스케일링을 조정하기 위한 하나 이상의 혁신안을 구현하는, 프로세싱 유닛(들)에 의한 실행에 적합한 컴퓨터 실행가능 명령어의 형태의 소프트웨어(180)를 저장한다.
컴퓨팅 시스템은 추가적인 피쳐를 구비할 수도 있다. 예를 들면, 컴퓨팅 시스템(100)은 스토리지(140), 하나 이상의 입력 디바이스(150), 하나 이상의 출력 디바이스(160), 및 하나 이상의 통신 연결부(170)를 포함한다. 인터커넥션 메커니즘(interconnection mechanism)(도시되지 않음), 예컨대 버스, 컨트롤러, 또는 네트워크는 컴퓨팅 시스템(100)의 컴포넌트를 인터커넥트한다. 통상적으로, 오퍼레이팅 시스템 소프트웨어(도시되지 않음)는 컴퓨팅 시스템(100)에서 실행하는 다른 소프트웨어에 대한 동작 환경을 제공하고, 컴퓨팅 시스템(100)의 컴포넌트의 활동을 조화시킨다(coordinate).
유형의 스토리지(140)는 착탈식 또는 비착탈식일 수도 있고, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, DVD, 또는 정보를 저장하기 위해 사용될 수 있고 컴퓨팅 시스템(100) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 스토리지(140)는, 컬러 공간을 전환할 때 양자화/스케일링 또는 역 양자화/스케일링을 조정하기 위한 하나 이상의 혁신안을 구현하는 소프트웨어(180)에 대한 명령어를 저장한다.
입력 디바이스(들)(150)는 터치 입력 디바이스 예컨대 키보드, 마우스, 펜, 또는 트랙볼, 음성 입력 디바이스, 스캐닝 디바이스, 또는 컴퓨팅 시스템(100)으로 입력을 제공하는 다른 디바이스일 수도 있다. 비디오의 경우, 입력 디바이스(들)(150)는 카메라, 비디오 카드, TV 튜너 카드, 스크린 캡쳐 모듈, 또는 비디오 입력을 아날로그 또는 디지털 형태로 받아들이는 유사한 디바이스, 또는 비디오 입력을 컴퓨팅 시스템(100) 안으로 읽어 들이는 CD-ROM 또는 CD-RW일 수도 있다. 출력 디바이스(들)(160)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 시스템(100)으로부터의 출력을 제공하는 다른 디바이스일 수도 있다.
통신 연결부(들)(170)는 통신 매체를 통한 다른 통신 엔티티로의 통신을 가능하게 한다. 통신 매체는 컴퓨터 실행가능 명령어, 오디오 또는 비디오 입력 또는 출력, 또는 변조된 데이터 신호에서의 다른 데이터와 같은 정보를 전달한다. 변조된 데이터 신호는, 자신의 특성 중 하나 이상을, 신호에서 정보를 인코딩하는 것과 같은 방식으로 설정하거나 변경한 신호를 의미한다. 비제한적인 예로서, 통신 매체는 전기적 캐리어, 광학적 캐리어, RF 캐리어, 또는 다른 캐리어를 사용할 수 있다.
혁신안은 컴퓨터 판독가능 매체의 일반적 맥락에서 설명될 수 있다. 컴퓨터 판독가능 매체는, 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용가능한 유형의 매체이다. 비제한적인 예로서, 컴퓨팅 시스템(100)과 관련하여, 컴퓨터 판독가능 매체는 메모리(120, 125), 스토리지(140), 및 상기의 것 중 임의의 것의 조합을 포함한다.
혁신안은, 컴퓨팅 시스템에서 타겟인 실제 또는 가상의 프로세서 상에서 실행되고 있는, 프로그램 모듈에 포함되는 것과 같은 컴퓨터 실행가능 명령어의 일반적 맥락에서 설명될 수 있다. 일반적으로, 프로그램 모듈은, 특정한 태스크를 수행하거나 또는 특정한 추상 데이터 타입을 구현하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 컴포넌트, 데이터 구조 등등을 포함한다. 프로그램 모듈의 기능성은 다양한 실시형태에서 소망되는 바에 따라 프로그램 모듈 사이에서 분할되거나 또는 결합될 수도 있다. 프로그램 모듈에 대한 컴퓨터 실행가능 명령어는 로컬 컴퓨팅 시스템 또는 분산형 컴퓨팅 시스템 내에서 실행될 수도 있다.
용어 "시스템" 및 "디바이스"는 본원에서 상호교환적으로 사용된다. 문맥상 그렇지 않다고 명확하게 나타내지 않는 한, 어떠한 용어도 컴퓨팅 디바이스 또는 컴퓨팅 시스템의 타입에 대해 아무런 제한도 내포하지 않는다. 일반적으로, 컴퓨팅 시스템 또는 컴퓨팅 디바이스는 로컬이거나 또는 분산될 수도 있으며, 본원에서 설명되는 기능성을 구현하는 소프트웨어와의 특수 목적의 하드웨어 및/또는 범용 하드웨어의 임의의 조합을 포함할 수 있다.
개시된 방법은 또한, 개시된 방법 중 임의의 것을 수행하도록 구성되는 특수한 컴퓨팅 하드웨어를 사용하여 구현될 수 있다. 예를 들면, 개시된 방법은, 개시된 방법 중 임의의 것을 구현하도록 특별하게 설계되거나 구성되는 집적 회로(예를 들면, ASIC(예컨대 ASIC 디지털 신호 프로세서(digital signal processor; "DSP"), 그래픽 프로세싱 유닛(graphics processing unit; "GPU"), 또는 프로그래머블 로직 디바이스(programmable logic device; "PLD"), 예컨대 필드 프로그래머블 게이트 어레이(field programmable gate array; "FPGA"))에 의해 구현될 수 있다.
표현 때문에, 상세한 설명은, 컴퓨팅 시스템에서의 컴퓨터 동작을 설명하기 위해, "결정한다" 및 "사용한다"와 같은 용어를 사용한다. 이들 용어는 컴퓨터에 의해 수행되는 동작에 대한 하이 레벨의 추상개념이며 사람에 의해 수행되는 행위와 혼돈되어선 안된다. 이들 용어에 대응하는 실제 컴퓨터 동작은 구현예에 따라 달라진다.
II. 예시적인 네트워크 환경.
도 2a 및 도 2b는 비디오 인코더(220) 및 비디오 디코더(270)를 포함하는 예시적인 네트워크 환경(201, 202)을 도시한다. 인코더(220) 및 디코더(270)는 적절한 통신 프로토콜을 사용하여 네트워크(250)를 통해 연결된다. 네트워크(250)는 인터넷 또는 다른 컴퓨터 네트워크를 포함할 수 있다.
도 2a에서 도시되는 네트워크 환경(201)에서, 각각의 실시간 통신(real-time communication; "RTC") 툴(210)은 양방향 통신을 위해 인코더(220) 및 디코더(270) 둘 다를 포함한다. 주어진 인코더(220)는, H.265/HEVC 표준, SMPTE 421M 표준, ISO-IEC 14496-10 표준(H.264 또는 AVC로 또한 알려짐), 다른 표준, 또는 독점적 포맷의 변형안 또는 확장안을 따르는 출력을 생성할 수 있는데, 대응하는 디코더(270)가 인코더(220)로부터 인코딩된 데이터를 받아들이게 된다. 양방향 통신은 화상 회의, 영상 전화, 또는 다른 양자간 또는 다자간 통신 시나리오의 일부일 수 있다. 도 2a의 네트워크 환경(201)이 두 개의 실시간 통신 툴(210)을 포함하지만, 네트워크 환경(201)은, 대신, 다자간 통신(multiparty communication)에 참여하는 세 개 이상의 실시간 통신 툴(210)을 포함할 수 있다.
실시간 통신 툴(210)은 인코더(220)에 의한 인코딩을 관리한다. 도 3은 실시간 통신 툴(210)에 포함될 수 있는 예시적인 인코더 시스템(300)을 도시한다. 대안적으로, 실시간 통신 툴(210)은 다른 인코더 시스템을 사용한다. 실시간 통신 툴(210)은 또한 디코더(270)에 의한 디코딩을 관리한다. 도 4는 실시간 통신 툴(210)에 포함될 수 있는 예시적인 디코더 시스템(400)을 도시한다. 대안적으로, 실시간 통신 툴(210)은 다른 디코더 시스템을 사용한다.
도 2b에서 도시되는 네트워크 환경(202)에서, 인코딩 툴(212)은, 디코더(270)를 포함하는 다수의 재생 툴(214)로 전달하기 위해 비디오를 인코딩하는 인코더(220)를 포함한다. 단방향 통신은, 비디오 감시 시스템, 웹 카메라 모니터링 시스템, 스크린 캡쳐 모듈, 원격 데스크탑 회의 프리젠테이션 또는 비디오가 인코딩되어 한 장소에서 하나 이상의 다른 장소로 전송되는 다른 시나리오에 대해 제공될 수 있다. 도 2b의 네트워크 환경(202)이 두 개의 재생 툴(214)을 포함하지만, 네트워크 환경(202)은 더 많은 또는 더 적은 재생 툴(214)을 포함할 수 있다. 일반적으로, 재생 툴(214)은, 재생 툴(214)이 수신할 비디오의 스트림을 결정하기 위해 인코딩 툴(212)과 통신한다. 재생 툴(214)은 스트림을 수신하고, 수신된 인코딩된 데이터를 적절한 기간 동안 버퍼링하고, 디코딩 및 재생을 시작한다.
도 3은 인코딩 툴(212)에 포함될 수 있는 예시적인 인코더 시스템(300)을 도시한다. 대안적으로, 인코딩 툴(212)은 다른 인코더 시스템을 사용한다. 인코딩 툴(212)은 또한, 하나 이상의 재생 툴(214)과의 연결을 관리하기 위한 서버측 컨트롤러 로직을 포함할 수 있다. 도 4는, 재생 툴(214)에 포함될 수 있는 예시적인 디코더 시스템(400)을 도시한다. 대안적으로, 재생 툴(214)은 다른 디코더 시스템을 사용한다. 재생 툴(214)은 또한, 인코딩 툴(212)과의 연결을 관리하기 위한 클라이언트측 컨트롤러 로직을 포함할 수 있다.
III. 예시적인 인코더 시스템.
도 3은 몇몇 설명된 실시형태가 연계하여 구현될 수도 있는 예시적인 인코더 시스템(300)의 블록도이다. 인코더 시스템(300)은, 다수의 인코딩 모드 예컨대 실시간 통신을 위한 로우 레이턴시(low-latency) 인코딩 모드, 트랜스코딩 모드, 및 파일 또는 스트림으로부터 재생용 미디어를 생성하기 위한 더 높은 레이턴시의 인코딩 모드 중 임의의 것에서 동작할 수 있는 범용 인코딩 툴일 수 있거나, 또는 인코더 시스템(300)은 하나의 이러한 인코딩 모드에 대해 적응되는 특수 목적의 인코딩 툴일 수 있다. 인코더 시스템(300)은 특정한 타입의 컨텐츠(예를 들면, 스크린 캡쳐 컨텐츠)의 인코딩을 위해 적응될 수 있거나, 또는 인코더 시스템(300)은 여러 상이한 타입의 컨텐츠(예를 들면, 스크린 캡쳐 컨텐츠 및 내추럴 비디오) 중 임의의 것의 인코딩을 위해 적응될 수 있다. 인코더 시스템(300)은 오퍼레이팅 시스템 모듈로서, 애플리케이션 라이브러리의 일부로서 또는 독립형 애플리케이션으로서 구현될 수 있다. 종합하면, 인코더 시스템(300)은 비디오 소스(310)로부터 소스 비디오 프레임(311)의 시퀀스를 수신하고 인코딩된 데이터를 채널(390)로의 출력으로서 생성한다. 채널로 출력되는 인코딩된 데이터는, 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이의 적응적 전환으로 인코딩된 컨텐츠를 포함할 수 있다.
비디오 소스(310)는 카메라, 튜너 카드, 저장 매체, 스크린 캡쳐 모듈, 또는 다른 디지털 비디오 소스일 수 있다. 비디오 소스(310)는, 예를 들면, 초당 30프레임의 프레임 레이트에서 비디오 프레임의 시퀀스를 생성한다. 본원에서 사용되는 바와 같이, 용어 "프레임"은 일반적으로, 소스, 코딩된 또는 재구성된 이미지 데이터를 지칭한다. 순차 주사 비디오(progressive-scan video)의 경우, 프레임은 순차 주사 비디오 프레임이다. 인터레이스 방식의 비디오(interlaced video)의 경우, 예시적인 실시형태에서, 인터레이스 방식의 비디오 프레임은 인코딩 이전에 디인터레이스된다(de-interlaced). 대안적으로, 두 개의 상보적 인터레이스 방식의 비디오 필드가 단일의 비디오 프레임으로서 함께 인코딩되거나 또는 두 개의 별개로 인코딩된 필드로서 인코딩된다. 순차 주사 비디오 프레임 또는 인터레이스 방식 주사 비디오 프레임을 나타내는 것 외에, 용어 "프레임" 또는 "픽쳐"는 단일의 짝을 이루지 않는 비디오 필드(single non-paired video field), 비디오 필드의 상보적 쌍, 주어진 시간에서의 비디오 오브젝트를 나타내는 비디오 오브젝트 플레인, 또는 더 큰 이미지에서의 주목(of interest) 영역을 나타낼 수 있다. 비디오 오브젝트 플레인 또는 영역은, 한 장면의 다수의 오브젝트 또는 영역을 포함하는 더 큰 이미지의 일부일 수 있다.
도달하는 소스 프레임(311)은, 다수의 프레임 버퍼 저장 영역(321, 322, …, 32n)을 포함하는 소스 프레임 임시 메모리 저장 영역(320)에 저장된다. 프레임 버퍼(321, 322 등등)는 소스 프레임 저장 영역(320)에 하나의 소스 프레임을 유지한다. 소스 프레임(311) 중 하나 이상이 프레임 버퍼(321, 322, 등등)에 저장된 이후, 프레임 선택기(330)는 소스 프레임 저장 영역(320)으로부터 개개의 소스 프레임을 선택한다. 인코더(340)로의 입력을 위해 프레임 선택기(330)에 의해 프레임이 선택되는 순서는, 비디오 소스(310)에 의해 프레임이 생성되는 순서와는 상이할 수도 있다, 예를 들면, 몇몇 나중의 프레임이 먼저 인코딩되는 것을 허용하기 위해 따라서 시간적으로 역방향의 예측(temporally backward prediction)을 용이하게 하기 위해, 몇몇 프레임의 인코딩은 순서에서 지연될 수도 있다. 인코더(340) 이전에, 인코더 시스템(300)은, 인코딩 이전에, 선택된 프레임(331)의 전처리(pre-processing)(예를 들면, 필터링)를 수행하는 전처리기(pre-processor)(도시되지 않음)를 포함할 수 있다.
인코더(340)는, 선택된 프레임(331)을 인코딩하여 코딩된 프레임(341)을 생성하고, 또한 메모리 관리 제어 동작(memory management control operation; "MMCO") 신호(342) 또는 참조 픽쳐 세트(reference picture set; "RPS") 정보를 생성한다. RPS는, 현재 프레임 또는 임의의 후속하는 프레임에 대한 모션 보상에서 참조를 위해 사용될 수도 있는 프레임의 세트이다. 현재 프레임이 인코딩된 첫 번째 프레임이 아니고, 자신의 인코딩 프로세스를 수행하고 있는 경우, 인코더(340)는, 디코딩된 프레임 임시 메모리 저장 영역(360)에 저장되어 있는 하나 이상의 이전에 인코딩된/디코딩된 프레임(369)을 사용할 수도 있다. 이렇게 저장된 디코딩된 프레임(369)은 현재 소스 프레임(331)의 컨텐츠의 인터 프레임 예측(inter-frame prediction)을 위한 참조 프레임으로서 사용된다. MMCO/RPS 정보(342)는 디코더에게, 어떤 재구성된 프레임이 참조 프레임으로서 사용될 수도 있는지를 나타내며, 따라서 프레임 저장 영역에 저장되어야 한다.
인코더(340)는, 특정한 컬러 샘플링 레이트(예를 들면, 4:4:4) 및 샘플당 특정한 수의 비트(예를 들면, 샘플당 12 비트)를 가지고 특정한 컬러 공간(예를 들면, YUV 타입 컬러 공간, RGB 타입 컬러 공간)에서 비디오를 받아 들인다. 인코딩 동안, 상이한 픽쳐, 슬라이스, 블록 또는 비디오의 다른 단위에 대해, 인코더(340)는, YUV 타입 컬러 공간과 RGB 타입 컬러 공간 사이에서 변환하기 위해, 또는 어떤 다른 컬러 공간으로/으로부터 변환하기 위해, 컬러 공간 변환을 수행할 수 있다. 인코더(340)는, 컬러 성분을 재정렬하기 위해, 어떤 컬러 성분이 주 성분(color component)인지를 변경하는(예를 들면, RGB, BGR 및 GBR 포맷 사이에서 변환하는) 컬러 공간 변환을 또한 수행할 수 있다. 통상적인 구현예에서, 인코더(340)는, 다양한 면에서 보조 성분(secondary component)보다는 주 성분을 더 조심스럽게 인코딩하도록 적응된다(예를 들면, 코딩 모드에 대한 더 많은 옵션, 잠재적으로 더 낮은 양자화 단계 사이즈). 가장 많은 정보 컨텐츠 또는 에너지를 갖는 컬러 성분을 주 컬러 성분으로 만드는 것에 의해, 인코더는 전체적인 코딩 효율성을 향상시킬 수 있다. 인코딩 동안, 인코더(340)는 또한, 상이한 픽쳐, 슬라이스, 블록 또는 비디오의 다른 단위에 대한 컬러 샘플링 레이트를 (예를 들면, 4:4:4, 4:2:2 및 4:2:0 포맷 사이에서) 변경하기 위해 재샘플링 프로세싱(resampling processing)을 수행할 수 있다. 인코더(340)는 또한, 상이한 픽쳐, 슬라이스, 블록 또는 비디오의 다른 단위에 대한 인코딩 동안, 비트 깊이를 (예를 들면, 샘플당 12 비트, 샘플당 10 비트 및 샘플당 8 비트 사이에서) 변경할 수 있다. 몇몇 예시적인 구현예에서, 인코더(340)는 인코딩 동안 픽쳐 단위 기반으로 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 전환할 수 있다. 인코더(340)가 인코딩 동안 컬러 공간을 전환할 때, 인코더(340)는, 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해, 본원에서 설명되는 바와 같이, 양자화 또는 스케일링을 조정할 수 있다.
일반적으로, 인코더(340)는, 타일로의 구획화, 컬러 공간의 적응, 컬러 샘플링 레이트 및/또는 비트 깊이의 적응, 인트라 픽쳐 예측 추정 및 예측, 모션 추정 및 보상, 주파수 변환, 양자화 및 엔트로피 코딩과 같은 인코딩 태스크를 수행하는 다수의 인코딩 모듈을 포함한다. 인코더(340)에 의해 수행되는 정확한 동작은 압축 포맷에 의존하여 변할 수 있다. 출력된 인코딩된 데이터의 포맷은, H.265/HEVC 포맷, 윈도우 미디어 비디오(Windows Media Video) 포맷, VC-1 포맷, MPEG-x 포맷(예를 들면, MPEG-1, MPEG-2, 또는 MPEG-4), H.26x 포맷(예를 들면, H.261, H.262, H.263, H.264), 또는 다른 포맷의 변형안 또는 확장안일 수 있다.
인코더(340)는 프레임을 동일한 사이즈의 또는 상이한 사이즈의 다수의 타일로 구획할 수 있다. 예를 들면, 인코더(340)는, 프레임 경계와 함께, 프레임 내에서의 타일의 수평 및 수직 경계를 정의하는 타일 행(row) 및 타일 열(column)을 따라 프레임을 분할하는데, 이 경우 각각의 타일은 직사각형 영역이다. 타일은 종종 병렬 프로세싱을 위한 옵션을 제공하기 위해 사용된다. 프레임은 또한 하나 이상의 슬라이스로서 편제될(organized) 수 있는데, 이 경우 슬라이스는 전체 프레임 또는 프레임의 영역일 수 있다. 슬라이스는 프레임에서의 다른 슬라이스와는 무관하게 디코딩될 수 있는데, 슬라이스가 프레임의 다른 슬라이스와는 무관하게 디코딩되는 것은 에러 복원성(error resilience)을 향상시킨다. 슬라이스 또는 타일의 컨텐츠는 인코딩 및 디코딩의 목적을 위해 블록 또는 샘플 값의 다른 세트로 더 구획된다. 몇몇 예시적인 구현예에서, 인코더(340)는 인코딩 동안 슬라이스 단위 기반으로 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 전환할 수 있다. 몇몇 예시적인 구현예에서, 인코더(340)는 슬라이스 기반으로 양자화 파라미터("QP") 값을 설정할 수 있다.
H.265/HEVC 표준에 따른 신택스의 경우, 인코더는 프레임(또는 슬라이스 또는 타일)의 컨텐츠를 코딩 트리 단위로 분할한다. 코딩 트리 단위(coding tree unit; "CTU")는 루마 코딩 트리 블록(luma coding tree block; "CTB")으로 편제되는 루마 샘플 값 및 두 개의 크로마 CTB로 편제되는 대응하는 크로마 샘플 값을 포함한다. CTU(및 CTU의 CTB)의 사이즈는 인코더에 의해 선택되며, 예를 들면, 64×64, 32×32 또는 16×16 샘플 값일 수 있다. CTU는 하나 이상의 코딩 단위를 포함한다. 코딩 단위(coding unit; "CU")는 루마 코딩 블록(coding block; "CB") 및 두 개의 대응하는 크로마 CB를 구비한다. 예를 들면, 64×64 루마 CTB 및 두 개의 64×64 크로마 CTB를 갖는 CTU(YUV 4:4:4 포맷)는 네 개의 CU로 분할될 수 있는데, 각각의 CU는 32×32 루마 CB 및 두 개의 32×32 크로마 CB를 포함하고, 그리고 각각의 CU는 어쩌면 더 작은 CU로 더 분할된다. 또는, 다른 예로서, 64×64 루마 CTB 및 두 개의 32×32 크로마 CTB를 갖는 CTU(YUV 4:2:0 포맷)는 네 개의 CU로 분할될 수 있는데, 각각의 CU는 32×32 루마 CB 및 두 개의 16×16 크로마 CB를 포함하고, 그리고 각각의 CU는 어쩌면 더 작은 CU로 더 분할된다. CU의 가장 작은 허용가능한 사이즈(예를 들면, 8×8, 16×16)는 비트스트림에서 시그널링될 수 있다.
일반적으로, CU는 인터 또는 인트라와 같은 예측 모드를 갖는다. CU는 예측 정보(예컨대 예측 모드 상세, 변위 값 등등) 및/또는 예측 프로세싱을 시그널링하는 목적을 위한 하나 이상의 예측 단위를 포함한다. 예측 단위(prediction unit; "PU")는 루마 예측 블록(prediction block; "PB") 및 두 개의 크로마 PB를 구비한다. 인트라 예측된 CU의 경우, CU가 최소 사이즈(예를 들면, 8×8)를 갖지 않는 한, PU는 CU와 동일한 사이즈를 갖는다. 그 경우, CU는 네 개의 더 작은 PU(예를 들면, 최소 CU 사이즈가 8×8이면 각각 4×4)로 분할될 수 있거나 또는 PU는, CU에 대한 신택스 엘리먼트에 의해 나타내어지는 바와 같이, 최소 CU 사이즈를 가질 수 있다. CU는 또한 잔차(residual) 코딩/디코딩의 목적을 위해 하나 이상의 변환 단위를 갖는데, 변환 단위(transform unit; "TU")는 루마 변환 블록(transform block; "TB") 및 두 개의 크로마 TB를 갖는다. 인트라 예측된 CU에서의 PU는 단일의 TU(사이즈에서 PU와 동일) 또는 다수의 TU를 포함할 수도 있다. 인코더는 비디오를 CTU, CU, PU, TU 등등으로 구획하는 방법을 결정한다. 몇몇 예시적인 구현예에서, 인코더(340)는, CTU, CU 등등에 대한 인코딩 동안 단위 기반으로 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 전환할 수 있다.
H.265/HEVC 구현예에서, 슬라이스는 단일의 슬라이스 세그먼트(독립 슬라이스 세그먼트)를 포함할 수 있거나 또는 다수의 슬라이스 세그먼트(독립 슬라이스 세그먼트 및 하나 이상의 종속 슬라이스 세그먼트)로 분할될 수 있다. 슬라이스 세그먼트는, 단일의 네트워크 추상화 레이어(network abstraction layer; "NAL") 단위에 포함되는, 타일 주사에서 연속적으로 순서가 정해지는 정수 개수의 CTU이다. 독립 슬라이스 세그먼트의 경우, 슬라이스 헤더는 독립 슬라이스 세그먼트에 적용되는 신택스 엘리먼트의 값을 포함한다. 종속 슬라이스 세그먼트의 경우, 잘려진 슬라이스 헤더는 그 종속 슬라이스 세그먼트에 적용되는 신택스 엘리먼트의 몇몇 값을 포함하고, 종속 슬라이스 세그먼트에 대한 다른 신택스 엘리먼트의 값은 디코딩 순서에서 선행하는 독립 슬라이스 세그먼트에 대한 값으로부터 추론된다.
본원에서 사용되는 바와 같이, 용어 "블록"은, 상황에 따라, 매크로블록, 예측 단위, 잔차 데이터 단위, 또는 CB, PB 또는 TB, 또는 샘플 값의 어떤 다른 세트를 나타낼 수 있다. 몇몇 예시적인 구현예에서, 인코더(340)는 인코딩 동안 블록 단위 기반으로 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 전환할 수 있다.
도 3을 참조하면, 인코더는 소스 프레임(331)의 인트라 코딩된 블록을, 프레임(331)에서의 다른 이전에 재구성된 샘플 값으로부터의 예측의 관점에서 나타낸다. 인트라 블록 카피(block copy; "BC") 예측의 경우, 인트라 픽쳐 추정기(intra-picture estimator)는, 다른 이전에 재구성된 샘플 값에 대한 한 블록의 변위를 추정한다. 인트라 예측 참조 영역은, 블록에 대한 BC 예측 값을 생성하기 위해 사용되는, 프레임에서의 샘플 값의 영역이다. 인트라 프레임 예측 영역은 블록 벡터(block vector; "BV") 값(BV 추정에서 결정됨)으로 나타내어질 수 있다. 블록에 대한 인트라 공간 예측의 경우, 인트라 픽쳐 추정기는, 이웃하는 재구성된 샘플 값의 블록으로의 외삽(extrapolation)을 추정한다. 인트라 픽쳐 추정기는 예측 정보(예컨대 인트라 BC 예측을 위한 BV 값, 또는 인트라 공간 예측을 위한 예측 모드(방향))를 출력할 수 있는데, 예측 정보는 엔트로피 코딩된다. 인트라 프레임 예측 예측기(intra-frame prediction predictor)는 인트라 예측 값을 결정하기 위해 예측 정보를 적용한다.
인코더(340)는, 소스 프레임(331)의 인터 프레임 코딩되고 예측된 블록을, 참조 프레임으로부터의 예측의 관점에서 나타낸다. 모션 추정기는 하나 이상의 참조 프레임(369)에 대한 블록의 모션을 추정한다. 다수의 참조 프레임이 사용되는 경우, 다수의 참조 프레임은 상이한 시간적 방향 또는 동일한 시간적 방향으로부터 유래할 수 있다. 모션 보상된 예측 참조 영역은, 현재 프레임의 샘플 값의 블록에 대한 모션 보상된 예측 값을 생성하기 위해 사용되는, 참조 프레임(들)에서의 샘플 값의 영역이다. 모션 추정기는 모션 벡터("MV") 정보와 같은 모션 정보를 출력하는데, 모션 정보는 엔트로피 코딩된다. 모션 보상기는 참조 프레임(369)에 MV를 적용하여 인터 프레임 예측을 위한 모션 보상된 예측 값을 결정한다.
인코더는 블록의 예측 값(인트라 또는 인터)과 대응하는 원래의 값 사이의 차이를 (만약 존재한다면) 결정할 수 있다. 이들 예측 잔차 값은 또한, 주파수 변환, 양자화 및 엔트로피 인코딩을 사용하여 인코딩된다. 예를 들면, 인코더(340)는, 픽쳐, 슬라이스, 코딩 단위 및/또는 비디오의 다른 부분에 대한 QP에 대한 값을 설정하고, 상응하게 변환 계수를 양자화한다. 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해, 인코더(340)는 본원에서 설명되는 바와 같이 양자화 또는 스케일링을 조정할 수 있다. 인코더(340)의 엔트로피 코더는 양자화된 변환 계수 값뿐만 아니라 소정의 부가 정보(side information)(예를 들면, MV 정보, BV 예측기(predictor)에 대한 인덱스 값, BV 차분, QP 값, 모드 결정, 파라미터 선택)를 압축한다. 통상적인 엔트로피 코딩 기술은, 지수 골룸 코딩(Exponential-Golomb coding), 골룸 라이스 코딩(Golomb-Rice coding), 산술 코딩(arithmetic coding), 차분 코딩(differential coding), 허프만 코딩(Huffman coding), 런 길이 코딩(run length coding), 가변 길이 대 가변 길이(variable-length-to-variable-length; "V2V") 코딩, 가변 길이 대 고정 길이(variable-length-to-fixed-length; "V2F") 코딩, 렘펠 지브(Lempel-Ziv; "LZ") 코딩, 딕셔너리 코딩(dictionary coding), 확률 구간 구획화 엔트로피 코딩(probability interval partitioning entropy coding; "PIPE"), 및 상기의 조합을 포함한다. 엔트로피 코더는 상이한 종류의 정보에 대해 상이한 코딩 기술을 사용할 수 있고, 다수의 기술을 (예를 들면, 골룸 라이스 코딩 및 후속하여 산술 코딩을 적용하는 것에 의한) 조합하여 적용할 수 있고, 특정한 코딩 기술 내에서의 다수의 코드 테이블 중에서 선택할 수 있다.
디코딩된 프레임에서 블록 경계 행 및/또는 열에 걸친 불연속부를 평활화하기 위해, 인코더(340)의 모션 보상 루프 내에 적응적 디블록화 필터(adaptive deblocking filter)가 포함된다. 루프 내 필터링 동작(in-loop filtering operation)으로서, 다른 필터링(예컨대 디링잉 필터링(de-ringing filtering), 적응적 루프 필터링(adaptive loop filtering; "ALF"), 또는 샘플 적응 오프셋(sample-adaptive offset; "SAO") 필터링; 도시되지 않음)이 대안적으로 또는 추가적으로 적용될 수 있다.
인코더(340)에 의해 생성되는 인코딩된 데이터는 비트스트림 신택스의 다양한 레이어에 대한 신택스 엘리먼트를 포함한다. H.265/HEVC 표준에 따른 신택스의 경우, 예를 들면, 픽쳐 파라미터 세트(picture parameter set; "PPS")는, 픽쳐와 관련될 수도 있는 신택스 엘리먼트를 포함하는 신택스 구조체이다. 몇몇 예시적인 구현예에서, PPS는, 픽쳐(또는 PPS를 사용하는 다수의 픽쳐)에 적용되는 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 나타내는 하나 이상의 신호뿐만 아니라, 이용가능한 컬러 공간, 이용가능한 컬러 샘플링 레이트 및/또는 이용가능한 비트 깊이를 식별하는 또는 정의하는 다른 정보를 포함할 수 있다. 몇몇 예시적인 구현예에서, PPS는, QP 값(예를 들면, 픽쳐에 대한 초기 QP 값, 제2 컬러 공간에 대한 QP 값에 대한 초기 QP 값 또는 오프셋)을 나타내는 하나 이상의 신택스 엘리먼트를 포함할 수 있다. PPS는 단일의 픽쳐에 대해 사용될 수 있거나, 또는 PPS는 한 시퀀스의 다수의 픽쳐에 대해 재사용될 수 있다. PPS는 통상적으로 픽쳐에 대한 인코딩된 데이터와는 별개로 시그널링된다(예를 들면, PPS에 대한 하나의 NAL 단위, 및 픽쳐에 대한 인코딩된 데이터에 대한 하나 이상의 다른 NAL 단위). 픽쳐에 대한 인코딩된 데이터 내에서, 신택스 엘리먼트는 픽쳐에 대해 어떤 PPS를 사용할지를 나타낸다. 마찬가지로, H.265/HEVC 표준에 따른 신택스의 경우, 시퀀스 파라미터 세트(sequence parameter set; "SPS")는, 픽쳐의 시퀀스와 관련될 수도 있는 신택스 엘리먼트를 포함하는 신택스 구조체이다. 비트스트림은 단일의 SPS 또는 다수의 SPS를 포함할 수 있다. SPS는 통상적으로 시퀀스에 대한 다른 데이터와는 별개로 시그널링되고, 다른 데이터의 신택스 엘리먼트는 어떤 SPS를 사용할지를 나타낸다. 몇몇 예시적인 구현예에서, 시퀀스에 대한 SPS는, 이용가능한 컬러 공간, 이용가능한 컬러 샘플링 레이트 및/또는 이용가능한 비트 깊이를 식별하는 또는 정의하는 정보를 포함할 수 있는데, 이 정보는 시퀀스 내에서 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 전환할 때 참조된다.
슬라이스 레이어의 경우, 슬라이스 헤더(예를 들면, 슬라이스 세그먼트 헤더)가 슬라이스(예를 들면, 독립적인 슬라이스 세그먼트 및 후속하는 임의의 종속적인 슬라이스 세그먼트)에 적용되는 신택스 엘리먼트의 값을 포함한다. 몇몇 예시적인 구현예에서, 슬라이스 헤더는, 슬라이스에 적용되는 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 나타내는 하나 이상의 신호를 포함할 수 있다. 몇몇 예시적인 구현예에서, 슬라이스 헤더는, 이용가능한 컬러 공간, 이용가능한 컬러 샘플링 레이트 및/또는 이용가능한 비트 깊이를 식별하는 또는 정의하는 정보를 포함할 수 있는데, 이 정보는 슬라이스 내에서 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 전환할 때 참조된다. 몇몇 예시적인 구현예에서, 슬라이스 헤더는 QP 값(예를 들면, 슬라이스에 대한 QP 값에 대한 오프셋, 슬라이스의 컬러 성분에 대한 QP 값에 대한 오프셋, 제2 컬러 공간에 대한 오프셋, 제2 컬러 공간의 컬러 성분에 대한 오프셋)에 대한 하나 이상의 신택스 엘리먼트를 포함할 수 있다. 블록 레이어의 경우(예를 들면, CTU의 경우), 신택스 구조체가 블록에 적용되는 신택스 엘리먼트의 값을 포함한다. 몇몇 예시적인 구현예에서, 블록에 대한 신택스 구조체는, 블록에 적용되는 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 나타내는 하나 이상의 신호를 포함할 수 있고, 블록에 적용되는 QP 값(또는 블록에 대한 상이한 컬러 공간에 적용되는 QP 값)을 나타내는 하나 이상의 신택스 엘리먼트를 또한 포함할 수도 있다.
코딩된 프레임(341) 및 MMCO/RPS 정보(342)(또는, 프레임에 대한 종속성(dependency) 및 순서 구조(ordering structure)가 인코더(340)에서 이미 알려져 있기 때문에, MMCO/RPS 정보(342) 정보와 등가의 정보)는 디코딩 프로세스 에뮬레이터(350)에 의해 프로세싱된다. 디코딩 프로세스 에뮬레이터(350)는 디코더의 기능성 중 몇몇, 예를 들면, 참조 프레임을 재구성하는 디코딩 태스크를 구현한다. MMCO/RPS 정보(342)와 부합하는 방식에서, 디코딩 프로세스 에뮬레이터(350)는, 인코딩될 후속 프레임의 인터 프레임 예측에서의 참조 프레임으로서의 사용을 위해, 주어진 코딩된 프레임(341)이 재구성되고 저장될 필요가 있는지의 여부를 결정한다. 코딩된 프레임(341)이 저장될 필요가 있다면, 디코딩 프로세스 에뮬레이터(350)는, 코딩된 프레임(341)을 수신하는 그리고 대응하는 디코딩된 프레임(351)을 생성하는 디코더에 의해 행해질 디코딩 프로세스를 모델링한다. 이렇게 함에 있어서, 디코딩된 프레임 저장 영역(360)에 저장되어 있던 디코딩된 프레임(들)(369)을 인코더(340)가 사용한 경우, 디코딩 프로세스 에뮬레이터(350)는 또한, 디코딩 프로세스의 일부로서, 저장 영역(360)으로부터의 디코딩된 프레임(들)(369)을 사용한다.
디코딩된 프레임 임시 메모리 저장 영역(360)은 다수의 프레임 버퍼 저장 영역(361, 362, …, 36n)을 포함한다. MMCO/RPS 정보(342)와 부합하는 방식에서, 디코딩 프로세스 에뮬레이터(350)는, 참조 프레임으로서의 사용을 위해 인코더(340)에 의해 더 이상 필요로 되지 않는 프레임을 갖는 임의의 프레임 버퍼(361, 362, 등등)를 식별하기 위해, 저장 영역(360)의 컨텐츠를 관리한다. 디코딩 프로세스를 모델링한 이후, 디코딩 프로세스 에뮬레이터(350)는 이 방식으로 식별된 프레임 버퍼(361, 362 등등)에 새롭게 디코딩된 프레임(351)을 저장한다.
코딩된 프레임(341) 및 MMCO/RPS 정보(342)는 임시적인 코딩된 데이터 영역(temporary coded data area; 370)에 버퍼링된다. 코딩된 데이터 영역(370)에 집성되는 코딩된 데이터는, 기본 코딩된 비디오 비트스트림의 신택스의 일부로서, 하나 이상의 픽쳐에 대한 인코딩된 데이터를 포함한다. 코딩된 데이터 영역(370)에 집성되는 코딩된 데이터는 또한, 코딩된 비디오 데이터에 관련이 있는 미디어 메타데이터를 (예를 들면, 하나 이상의 보충적인 향상 정보(supplemental enhancement information; "SEI") 메시지 또는 비디오 사용가능성 정보(video usability information; "VUI") 메시지에서의 하나 이상의 파라미터로서) 포함할 수 있다.
임시적인 코딩된 데이터 영역(370)으로부터의 집성된 데이터(371)는 채널 인코더(380)에 의해 프로세싱된다. 채널 인코더(380)는, 미디어 스트림으로서의 송신 또는 저장을 위해 집성된 데이터를 (예를 들면, ITU-T H.222.0 | ISO/IEC 13818-1와 같은 미디어 프로그램 스트림 또는 전송 스트림 포맷 또는 IETF RFC 3550과 같은 인터넷 실시간 전송 프로토콜 포맷에 따라) 패킷화할 수 있고/있거나 멀티플렉싱할 수 있는데, 이 경우, 채널 인코더(380)는 신택스 엘리먼트를 미디어 송신 스트림의 신택스의 일부로서 추가할 수 있다. 또는, 채널 인코더(380)는, 파일로서의 저장을 위해, 집성된 데이터를 (예를 들면, ISO/IEC 14496-12와 같은 미디어 컨테이너 포맷에 따라) 편제할 수 있는데, 이 경우, 채널 인코더(380)는 신택스 엘리먼트를 미디어 저장 파일의 신택스의 일부로서 추가할 수 있다. 또는, 보다 일반적으로는, 채널 인코더(380)는 하나 이상의 미디어 시스템 멀티플렉싱 프로토콜 또는 전송 프로토콜을 구현할 수 있는데, 이 경우, 채널 인코더(380)는 신택스 엘리먼트를 프로토콜(들)의 신택스의 일부로서 추가할 수 있다. 채널 인코더(380)는 채널(390)로 출력을 제공하는데, 채널(390)은 출력에 대한 저장, 통신 연결, 또는 다른 채널을 나타낸다. 채널 인코더(380) 또는 채널(390)은 또한, 예를 들면, 순방향 에러 정정(forward-error correction; "FEC") 인코딩 및 아날로그 신호 변조를 위해, 다른 엘리먼트(도시되지 않음)를 포함할 수도 있다.
IV. 예시적인 디코더 시스템.
도 4는 몇몇 설명된 실시형태가 연계하여 구현될 수도 있는 예시적인 디코더 시스템(400)의 블록도이다. 디코더 시스템(400)은, 다수의 디코딩 모드 예컨대 실시간 통신을 위한 로우 레이턴시 디코딩 모드 및 파일 또는 스트림으로부터의 미디어 재생을 위한 더 높은 레이턴시의 디코딩 모드 중 임의의 것에서 동작할 수 있는 범용 디코딩 툴일 수 있거나, 또는 그것은 하나의 이러한 디코딩 모드에 대해 적응되는 특수 목적의 디코딩 툴일 수 있다. 디코더 시스템(400)은 특정한 타입의 컨텐츠(예를 들면, 스크린 캡쳐 컨텐츠)의 디코딩을 위해 적응될 수 있거나, 또는 디코더 시스템(400)은 여러 상이한 타입의 컨텐츠(예를 들면, 스크린 캡쳐 컨텐츠 및 내추럴 비디오) 중 임의의 것의 디코딩을 위해 적응될 수 있다. 디코더 시스템(400)은 오퍼레이팅 시스템 모듈로서, 애플리케이션 라이브러리의 일부로서 또는 독립형 애플리케이션으로서 구현될 수 있다. 종합하면, 디코더 시스템(400)은 채널(410)로부터 코딩된 데이터를 수신하고 출력 목적지(490)에 대한 출력으로서 재구성된 프레임을 생성한다. 코딩된 데이터는, 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이의 적응적 전환으로 인코딩된 컨텐츠를 포함할 수 있다.
디코더 시스템(400)은 채널(410)을 포함하는데, 채널(410)은 코딩된 데이터에 대한 저장, 통신 연결, 또는 다른 채널을 입력으로서 나타낼 수 있다. 채널(410)은 채널 코딩된 코딩 데이터를 생성한다. 채널 디코더(420)는 코딩된 데이터를 프로세싱할 수 있다. 예를 들면, 채널 디코더(420)는, 미디어 스트림으로서의 송신 또는 저장을 위해 집성된 데이터를 (예를 들면, ITU-T H.222.0 | ISO/IEC 13818-1와 같은 미디어 프로그램 스트림 또는 전송 스트림 포맷 또는 IETF RFC 3550과 같은 인터넷 실시간 전송 프로토콜 포맷에 따라) 패킷화해제하고/패킷화해제하거나 디멀티플렉싱하는데, 이 경우, 채널 디코더(420)는 미디어 송신 스트림의 신택스의 일부로서 추가된 신택스 엘리먼트를 파싱할 수 있다. 또는, 채널 디코더(420)는, 파일로서의 저장을 위해 집성되었던 코딩된 비디오 데이터를 (예를 들면, ISO/IEC 14496-12와 같은 미디어 컨테이너 포맷에 따라) 분리하는데, 이 경우, 채널 디코더(420)는 미디어 저장 파일의 신택스의 일부로서 추가된 신택스 엘리먼트를 파싱할 수 있다. 또는, 보다 일반적으로는, 채널 디코더(420)는 하나 이상의 미디어 시스템 디멀티플렉싱 프로토콜 또는 전송 프로토콜을 구현할 수 있는데, 이 경우, 채널 디코더(420)는 프로토콜(들)의 신택스의 일부로서 추가된 신택스 엘리먼트를 파싱할 수 있다. 채널(410) 또는 채널 디코더(420)는 또한, 예를 들면, FEC 디코딩 및 아날로그 신호 변조를 위해, 다른 엘리먼트(도시되지 않음)를 포함할 수도 있다.
채널 디코더(420)로부터 출력되는 코딩된 데이터(421)는, 충분한 양의 이러한 데이터가 수신될 때까지 임시적인 코딩된 데이터 영역(430)에 저장된다. 코딩된 데이터(421)는 코딩된 프레임(431) 및 MMCO/RPS 정보(432)를 포함한다. 코딩된 데이터 영역(430)에서의 코딩된 데이터(421)는, 기본 코딩된 비디오 비트스트림의 신택스의 일부로서, 하나 이상의 픽쳐에 대한 코딩된 데이터를 포함한다. 코딩된 데이터 영역(430)의 코딩된 데이터(421)는 또한, 인코딩된 비디오 데이터에 관련이 있는 미디어 메타데이터를 (예를 들면, 하나 이상의 SEI 메시지 또는 VUI 메시지에서의 하나 이상의 파라미터로서) 포함할 수 있다.
일반적으로, 코딩된 데이터 영역(430)은, 이러한 코딩된 데이터(421)가 디코더(450)에 의해 사용될 때까지, 코딩된 데이터(421)를 일시적으로 저장한다. 그때, MMCO/RPS 정보(432) 및 코딩된 프레임(431)에 대한 코딩된 데이터는 코딩된 데이터 영역(430)으로부터 디코더(450)로 전송된다. 디코딩이 진행함에 따라, 새로 코딩된 데이터가 코딩된 데이터 영역(430)에 추가되고 코딩된 데이터 영역(430)에 남아 있는 가장 오래된 코딩된 데이터는 디코더(450)로 전송된다.
디코더(450)는 대응하는 코딩된 프레임(431)을 디코딩하여 디코딩된 프레임(451)을 생성한다. 적절하다면, 자신의 디코딩 프로세스를 수행하고 있을 때, 디코더(450)는 하나 이상의 이전에 디코딩된 프레임(469)을, 인터 프레임 예측을 위한 참조 프레임으로서 사용할 수도 있다. 디코더(450)는 이러한 이전에 디코딩된 프레임(469)을 디코딩된 프레임 임시 메모리 저장 영역(460)으로부터 판독한다.
디코딩 동안, 상이한 픽쳐, 슬라이스, 블록 또는 비디오의 다른 단위에 대해, 디코더(450)는, YUV 타입 컬러 공간과 RGB 타입 컬러 공간 사이에서 변환하기 위해, 또는 어떤 다른 컬러 공간으로/으로부터 변환하기 위해, 컬러 공간 변환을 수행할 수 있다. 디코더(450)는 또한, 상이한 픽쳐, 슬라이스, 블록 또는 비디오의 다른 유닛에 대한 컬러 성분을 재정렬하기 위해, 어떤 컬러 성분이 주 성분인지를 변경하는(예를 들면, RGB, BGR 및 GBR 포맷 사이에서 변환하는) 컬러 공간 변환을 수행할 수 있다. 디코딩 동안, 디코더(450)는 또한, 컬러 샘플링 레이트를 변경하기 위해 및/또는 상이한 픽쳐, 슬라이스, 블록 또는 비디오의 다른 유닛에 대한 비트 깊이를 변경하기 위해 재샘플링 프로세싱을 수행할 수 있다. 몇몇 예시적인 구현예에서, 디코더(450)는 디코딩 동안 픽쳐 단위 기반으로 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 전환할 수 있다. 대안적으로, 디코더(450)는, 디코딩 동안 슬라이스 단위 기반으로, 블록 단위 기반으로 또는 다른 단위 기반으로 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 전환할 수 있다. 디코더(450)가 디코딩 동안 컬러 공간을 전환할 때, 디코더(450)는, 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해, 본원에서 설명되는 바와 같이, 역 양자화 또는 스케일링을 조정할 수 있다.
일반적으로, 디코더(450)는, 타일의 병합, 엔트로피 디코딩, 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이의 적응, 인트라 프레임 예측, 모션 보상된 인터 프레임 예측, 역 양자화, 및 역 주파수 변환과 같은 디코딩 태스크를 수행하는 다수의 디코딩 모듈을 포함한다. 디코더(450)에 의해 수행되는 정확한 동작은 압축 포맷에 의존하여 변할 수 있다.
예를 들면, 디코더(450)는 압축된 프레임 또는 프레임의 시퀀스에 대한 인코딩된 데이터를 수신하고 디코딩된 프레임(451)을 포함하는 출력을 생성한다. 디코더(450)에서, 버퍼는 압축된 프레임에 대한 인코딩된 데이터를 수신하고, 적절한 시간에, 수신된 인코딩된 데이터를 엔트로피 디코더가 이용가능하게 만든다. 엔트로피 디코더는, 엔트로피 코딩된 양자화된 데이터뿐만 아니라 엔트로피 코딩된 부가 정보를 엔트로피 디코딩하는데, 통상적으로는, 인코더에서 수행된 엔트로피 인코딩의 역을 적용한다. 모션 보상기는 하나 이상의 참조 프레임에 대해 모션 정보를 적용하여, 재구성되고 있는 프레임의 임의의 인터 코딩된 블록에 대한 모션 보상된 예측 값을 형성한다. 인트라 프레임 예측 모듈은, 이웃하는 이전에 재구성된 샘플 값으로부터 현재 블록의 샘플 값을 공간적으로 예측할 수 있거나, 또는 인트라 BC 예측의 경우, 프레임의 인트라 프레임 예측 영역의 이전에 재구성된 샘플 값을 사용하여 현재 블록의 샘플 값을 예측할 수 있다. 참조 영역은 BV 값으로 나타내어질 수 있다. 디코더(450)는 또한 예측 잔차 값을 재구성한다. 역 양자화기는 엔트로피 디코딩된 데이터를 역 양자화한다. 예를 들면, 디코더(450)는, 비트 스트림의 신택스 엘리먼트에 기초하여 비디오의 픽쳐, 타일, 슬라이스 및/또는 다른 부분에 대한 QP에 대한 값을 설정하고, 상응하게 변환 계수를 역 양자화한다. 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해, 디코더(450)는 본원에서 설명되는 바와 같이 역 양자화 또는 스케일링을 조정할 수 있다. 역 주파수 변환기는 양자화된 주파수 도메인 데이터를 공간 도메인 데이터로 변환한다. 인터 프레임 예측된 블록의 경우, 디코더(450)는 재구성된 예측 잔차 값을 모션 보상된 예측 값과 결합한다. 마찬가지로, 디코더(450)는 예측 잔차 값을 인트라 예측으로부터의 예측 값과 결합할 수 있다. 디코딩된 프레임(451)에서 블록 경계 행 및/또는 열에 걸친 불연속부를 평활화하기 위해, 비디오 디코더(450)의 모션 보상 루프 내에 적응적 디블로킹 필터가 포함된다. 루프 내 필터링 동작으로서, 다른 필터링(예컨대 디링잉 필터링, ALF, 또는 SAO 필터링; 도시되지 않음)이 대안적으로 또는 추가적으로 적용될 수 있다.
디코딩된 프레임 임시 메모리 저장 영역(460)은 다수의 프레임 버퍼 저장 영역(461, 462, …, 46n)을 포함한다. 디코딩된 프레임 저장 영역(460)은 디코딩된 픽쳐 버퍼의 예이다. 디코더(450)는, 디코딩된 프레임(451)을 내부에 저장할 수 있는 프레임 버퍼(461, 462 등등)를 식별하기 위해 MMCO/RPS 정보(432)를 사용한다. 디코더(450)는 그 프레임 버퍼에 디코딩된 프레임(451)을 저장한다.
출력 시퀀서(output sequencer; 480)는, 출력 순서에서 생성될 다음 프레임이 디코딩된 프레임 저장 영역(460)에서 이용가능할 때를 식별한다. 출력 순서에서 생성될 다음 프레임(481)이 디코딩된 프레임 저장 영역(460)에서 이용가능할 때, 다음 프레임(481)은 출력 시퀀서(480)에 의해 판독되고 출력 목적지(490)(예를 들면, 디스플레이)로 출력된다. 일반적으로, 디코딩된 프레임 저장 영역(460)으로부터 출력 시퀀서(480)에 의해 프레임이 출력되는 순서는, 프레임이 디코더(450)에 의해 디코딩되는 순서와는 상이할 수도 있다.
V. 예시적인 비디오 인코더.
도 5a 및 도 5b는 몇몇 설명된 실시형태가 연계하여 구현될 수도 있는 일반화된 비디오 인코더(500)의 블록도이다. 인코더(500)는 현재 픽쳐를 입력 비디오 신호(505)로서 포함하는 비디오 픽쳐의 시퀀스를 수신하고 인코딩된 데이터를 코딩된 비디오 비트스트림(595)에서 출력으로서 생성한다.
인코더(500)는 블록 기반이며 구현예에 의존하는 블록 포맷을 사용한다. 블록은 상이한 스테이지에서, 예를 들면, 예측, 주파수 변환 및/또는 엔트로피 인코딩 스테이지에서, 추가로 세분될(sub-divided) 수도 있다. 예를 들면, 픽쳐는 64×64 블록, 32×32 블록 또는 16×16 블록으로 분할될 수 있는데, 이들은 종국에는 코딩 및 디코딩을 위해 샘플 값의 더 작은 블록으로 분할될 수 있다. H.265/HEVC 표준에 대한 인코딩의 구현예에서, 인코더는 픽쳐를 CTU(CTB), CU(CB), PU(PB) 및 TU(TB)로 구획한다.
인코더(500)는 인트라 픽쳐 코딩 및/또는 인터 픽쳐 코딩을 사용하여 픽쳐를 압축한다. 인코더(500)의 컴포넌트 중 많은 것은 인트라 픽쳐 코딩 및 인터 픽쳐 코딩 둘 다에 대해 사용된다. 이들 컴포넌트에 의해 수행되는 정확한 동작은, 압축되고 있는 정보의 타입에 의존하여 변할 수 있다.
타일화 모듈(tiling module; 510)은, 옵션적으로, 픽쳐를, 동일한 사이즈의 또는 상이한 사이즈의 다수의 타일로 구획한다. 예를 들면, 타일화 모듈(510)은, 픽쳐 경계와 함께, 픽쳐 내에서의 타일의 수평 및 수직 경계를 정의하는 타일 행 및 타일 열을 따라 픽쳐를 분할하는데, 이 경우 각각의 타일은 직사각형 영역이다. H.265/HEVC 구현예에서, 인코더(500)는 픽쳐를 하나 이상의 슬라이스로 구획하는데, 이 경우 각각의 슬라이스는 하나 이상의 슬라이스 세그먼트를 포함한다.
일반적인 인코딩 제어부(520)는 입력 비디오 신호(505)에 대한 픽쳐뿐만 아니라 인코더(500)의 다양한 모듈로부터 피드백(도시되지 않음)을 수신한다. 종합하면, 일반적인 인코딩 제어부(520)는, 인코딩 동안 코딩 파라미터를 설정하고 변경하기 위해, 제어 신호(도시되지 않음)를 다른 모듈(예컨대 타일화 모듈(510), 변환기/스케일러/양자화기(530), 스케일러/역 변환기(535), 인트라 픽쳐 추정기(540), 모션 추정기(550) 및 인트라/인터 스위치)로 제공한다. 특히, 일반적인 인코딩 제어부(520)는, 인코딩 동안 픽쳐 단위 기반으로, 슬라이스 단위 기반으로, 블록 단위 기반으로 또는 어떤 다른 단위 기반으로, 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 어떻게 적응적으로 전환할지를 결정할 수 있다. 인코더(500)가 컬러 공간을 전환할 때, 일반적인 인코딩 제어부(520)는, 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해 양자화 또는 스케일링을 어떻게 조정할지를 결정할 수 있다. 일반적인 인코딩 제어부(520)는 또한 인코딩 동안 중간 결과를 평가할 수 있다. 일반적인 인코딩 제어부(520)는, 인코딩 동안 만들어진 결정을 나타내는 일반적인 제어 데이터(522)를 생성하고, 그 결과, 대응하는 디코더는 일관된 결정을 행할 수 있다. 일반적인 제어 데이터(522)는 헤더 포맷터(header formatter)/엔트로피 코더(590)로 제공된다.
현재 픽쳐가 인터 픽쳐 예측을 사용하여 예측되면, 모션 추정기(550)는, 하나 이상의 참조 픽쳐를 기준으로, 입력 비디오 신호(505)의 현재 픽쳐의 샘플 값의 블록의 모션을 추정한다. 디코딩된 픽쳐 버퍼(570)는, 참조 픽쳐로서의 사용을 위해 하나 이상의 재구성된 이전에 코딩된 픽쳐를 버퍼링한다. 다수의 참조 픽쳐가 사용되는 경우, 다수의 참조 픽쳐는 상이한 시간적 방향 또는 동일한 시간적 방향으로부터 유래할 수 있다. 모션 추정기(550)는, MV 데이터와 같은 모션 데이터(552), 병합 모드 인덱스 값, 및 참조 픽쳐 선택 데이터를 부가 정보로서 생성한다. 모션 데이터(552)는 헤더 포맷터/엔트로피 코더(590)뿐만 아니라 모션 보상기(555)로 제공된다.
모션 보상기(555)는 MV를, 디코딩된 픽쳐 버퍼(570)로부터의 재구성된 참조 픽쳐(들)에 적용한다. 모션 보상기(555)는 현재 픽쳐에 대한 모션 보상된 예측치를 생성한다. 픽쳐에 대한 보조 성분이 주 성분과 동일한 해상도를 갖는 경우(즉, 포맷이 YUV 4:4:4 포맷이거나 또는 RGB 4:4:4 포맷인 경우), 보조 성분 블록에 적용되는 MV 값은, 대응하는 주 성분 블록에 적용되는 MV 값과 동일할 수도 있다. 한편, 픽쳐에 대한 보조 성분이 주 성분에 비해 감소된 해상도를 갖는 경우(예를 들면, 포맷이 YUV 4:2:0 포맷인 경우), 보조 성분 블록에 적용되는 MV 값은, 해상도에서의 차이를 조정하기 위해 (예를 들면, MV 값의 수직 및 수평 성분을 2로 나누고 나머지를 버리거나 그들을 정수 값으로 반올림하는 것에 의해) 축소될 수도 있고 어쩌면 반올림될 수도 있다.
인코더(500) 내에서의 별개의 경로에서, 인트라 픽쳐 추정기(540)는, 입력 비디오 신호(505)의 현재 픽쳐의 샘플 값의 블록에 대한 인트라 픽쳐 예측을 수행하는 방법을 결정한다. 현재 픽쳐는 인트라 픽쳐 코딩을 사용하여 전적으로 또는 부분적으로 코딩될 수 있다. 현재 픽쳐의 재구성(538)의 값을 사용한 인트라 공간 예측의 경우, 인트라 픽쳐 추정기(540)는, 현재 픽쳐의 이웃하는 이전에 재구성된 샘플 값으로부터, 현재 픽쳐의 현재 블록의 샘플 값을 공간적으로 예측하는 방법을 결정한다. 또는, BV 값을 사용한 인트라 BC 예측의 경우, 인트라 픽쳐 추정기(540)는, 현재 픽쳐 내에서의 상이한 후보 참조 영역까지의, 현재 블록의 샘플 값의 변위를 추정한다.
인트라 픽쳐 추정기(540)는 부가 정보로서 인트라 예측 데이터(542), 예컨대 인트라 예측이 공간 예측을 사용하는지 또는 인트라 BC 예측을 사용하는지의 여부를 나타내는 정보(예를 들면, 인트라 블록당 플래그 값), (인트라 공간 예측을 위한) 예측 모드 방향, 및 (인트라 BC 예측을 위한) BV 값을 생성한다. 인트라 예측 데이터(542)는, 헤더 포맷터/엔트로피 코더(590)뿐만 아니라 인트라 픽쳐 예측기(545)에도 제공된다.
인트라 예측 데이터(542)에 따르면, 인트라 픽쳐 예측기(545)는, 현재 픽쳐의 이웃하는 이전에 재구성된 샘플 값으로부터, 현재 픽쳐의 현재 블록의 샘플 값을 공간적으로 예측한다. 또는, 인트라 BC 예측의 경우, 인트라 픽쳐 예측기(545)는, 현재 블록에 대한 BV 값에 의해 나타내어지는 인트라 픽쳐 예측 참조 영역의 이전에 재구성된 샘플 값을 사용하여 현재 블록의 샘플 값을 예측한다. 몇몇 경우에서, BV 값은 BV 예측기(예측된 BV 값)일 수 있다. 다른 경우에서, BV 값은 자신의 예측된 BV 값과는 상이할 수 있는데, 이 경우 BV 차분은 예측된 BV 값과 BV 값 사이의 차이를 나타낸다. 픽쳐에 대한 보조 성분이 주 성분과 동일한 해상도를 갖는 경우(예를 들면, 포맷이 YUV 4:4:4 포맷이거나 또는 RGB 4:4:4 포맷인 경우), 보조 성분 블록에 적용되는 BV 값은, 대응하는 주 성분 블록에 적용되는 BV 값과 동일할 수도 있다. 한편, 픽쳐에 대한 보조 성분이 주 성분에 비해 감소된 해상도를 갖는 경우(예를 들면, 포맷이 YUV 4:2:0 포맷인 경우), 보조 성분 블록에 대해 적용되는 BV 값은, 해상도에서의 차이를 조정하기 위해, (예를 들면, BV 값의 수직 및 수평 성분을 2로 나누고 나머지를 버리거나 그들을 정수 값으로 반올림하는 것에 의해) 축소될 수도 있고 어쩌면 반올림될 수도 있다.
인트라/인터 스위치는, 주어진 블록에 대한 예측(558)이 모션 보상된 예측일 것인지 또는 인트라 픽쳐 예측일 것인지의 여부를 선택한다. 예측(558)의 블록과 입력 비디오 신호(505)의 원래의 현재 블록의 대응하는 부분 사이의 차이는 (만약 있다면) 비스킵 모드(non-skip-mode) 블록에 대한 잔차(518)의 값을 제공한다. 현재 픽쳐의 재구성 동안, 비스킵 모드 블록의 경우, 재구성된 잔차 값은 예측치(558)와 결합되어 비디오 신호(505)로부터의 원래의 컨텐츠의 근사하는 또는 정확한 재구성치(538)를 생성한다. (손실성 압축에서, 몇몇 정보는 여전히 비디오 신호(505)로부터 상실된다.)
변환기/스케일러/양자화기(530)에서, 주파수 변환기는 공간 도메인 비디오 정보를 주파수 도메인(즉, 스펙트럼, 변환) 데이터로 변환한다. 블록 기반의 비디오 코딩의 경우, 주파수 변환기는, 예측 잔차 데이터(또는 예측(558)이 널(null)인 경우 샘플 값 데이터)의 블록에 대해, 이산 코사인 변환(discrete cosine transform; "DCT"), 그 정수 근사, 또는 다른 타입의 순방향 블록 변환(forward block transform)(예를 들면, 이산 사인 변환 또는 그 정수 근사)을 적용하여, 주파수 변환 계수의 블록을 생성하게 된다. 인코더(500)는 또한, 이러한 변환 단계가 스킵되는 것을 나타낼 수 있을 수도 있다. 스케일러/양자화기는 변환 계수를 스케일링하고 양자화한다. 예를 들면, 양자화기는, 픽쳐 단위 기반으로, 슬라이스 단위 기반으로, 블록 단위 기반으로, 주파수별 기반으로 또는 다른 기반으로 변하는 양자화 스텝 사이즈를 가지고 주파수 도메인 데이터에 데드 존 스칼라 양자화(dead-zone scalar quantization)를 적용할 수 있다. 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해, 스케일러/양자화기는 본원에서 설명되는 바와 같이 양자화 또는 스케일링을 조정할 수 있다. 양자화된 변환 계수 데이터(532)는 헤더 포맷터/엔트로피 코더(590)에 제공된다.
스케일러/역 변환기(535)에서, 스케일러/역 양자화기는, 양자화된 변환 계수에 관해 역 스케일링 및 역 양자화를 수행한다. 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해, 스케일러는 본원에서 설명되는 바와 같이 역 양자화 또는 스케일링을 조정할 수 있다. 역 주파수 변환기는 역 주파수 변환을 수행하여, 재구성된 예측 잔차 값 또는 샘플 값의 블록을 생성한다. 비스킵 모드 블록의 경우, 인코더(500)는 재구성된 잔차 값을 예측(558)의 값(예를 들면, 모션 보상된 예측 값, 인트라 픽쳐 예측 값)과 결합하여 재구성치(538)를 형성한다. 스킵 모드 블록의 경우, 인코더(500)는 재구성치(538)로서 예측(558)의 값을 사용한다.
인트라 픽쳐 예측의 경우, 재구성(538)의 값은 인트라 픽쳐 추정기(540) 및 인트라 픽쳐 예측기(545)로 다시 공급될 수 있다. 또한, 재구성(538)의 값은 후속하는 픽쳐의 모션 보상된 예측에 대해 사용될 수 있다. 재구성(538)의 값은 추가로 필터링될 수 있다. 필터링 제어부(560)는, 비디오 신호(505)의 주어진 픽쳐에 대해, 재구성(538)의 값에 관한 디블록 필터링 및 SAO 필터링을 수행하는 방법을 결정한다. 필터링 제어부(560)는 필터 제어 데이터(562)를 생성하는데, 필터 제어 데이터(562)는 헤더 포맷터/엔트로피 코더(590) 및 병합기/필터(들)(565)로 제공된다.
병합기/필터(들)(565)에서, 인코더(500)는 상이한 타일로부터의 컨텐츠를 픽쳐의 재구성된 버전으로 병합한다. 인코더(500)는, 프레임에서의 경계에 걸친 불연속부를 적응적으로 평활화하기 위해, 필터 제어 데이터(562)에 따라 디블록 필터링 및 SAO 필터링을 선택적으로 수행한다. 다른 필터링(예컨대 디링잉 필터링 또는 ALF; 도시되지 않음)이 대안적으로 또는 추가적으로 적용될 수 있다. 타일 경계는, 인코더(500)의 설정에 의존하여, 선택적으로 필터링될 수 있거나 또는 전혀 필터링되지 않을 수 있고, 인코더(500)는 이러한 필터링이 적용되었는지 또는 그렇지 않은지의 여부를 나타내기 위해 코딩된 비트스트림 내에 신택스를 제공할 수도 있다. 디코딩된 픽쳐 버퍼(570)는, 후속하는 모션 보상된 예측에서의 사용을 위해 재구성된 현재 픽쳐를 버퍼링한다.
헤더 포맷터/엔트로피 코더(590)는, 일반적인 제어 데이터(522), 양자화된 변환 계수 데이터(532), 인트라 예측 데이터(542), 모션 데이터(552), 및 필터 제어 데이터(562)를 포맷하고 및/또는 엔트로피 코딩한다. 일반적인 제어 데이터(522)는, 픽쳐, 슬라이스, 블록, 또는 비디오의 다른 단위에 대한 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 나타내는 신호를 포함한다. 이러한 신호는, 예를 들면, PPS, 슬라이스 헤더, 블록 신택스 구조체 또는 다른 신택스 구조체에 포함될 수 있고, 엔트로피 코딩될 수 있거나 또는 고정된 길이 값으로서 시그널링될 수 있다. 헤더 포맷터/엔트로피 코더(590)는, 적응적 전환 동안 디코더에 의해 사용가능한, 이용가능한 컬러 공간을 식별하는 또는 정의하는 정보(예를 들면, 컬러 공간 변환 동작을 위한 커스텀 매트릭스, 미리 정의된 컬러 공간의 리스트), 이용가능한 컬러 샘플링 레이트를 식별하는 또는 정의하는 정보(예를 들면, 미리 정의된 컬러 샘플링 레이트, 다른 컬러 샘플링 레이트, 또는 다운샘플링 및 업샘플링을 위한 동작의 식별자(identification)의 리스트) 및/또는 이용가능한 비트 깊이를 식별하는 또는 정의하는 정보(예를 들면, 미리 정의된 비트 깊이, 다른 비트 깊이, 또는 비트 깊이 변환을 위한 동작의 식별자의 리스트)를 포맷할 수 있고 및/또는 엔트로피 코딩할 수 있다. 헤더 포맷터/엔트로피 코더(590)는 또한, 예를 들면, PPS, 슬라이스 헤더, 블록 신택스 구조체 또는 다른 신택스 구조체에서의 QP 값을 나타내는 신택스 엘리먼트를 포맷할 수 있고/있거나 엔트로피 코딩할 수 있다.
헤더 포맷터/엔트로피 코더(590)는 코딩된 비디오 비트스트림(595)에서 인코딩된 데이터를 제공한다. 코딩된 비디오 비트스트림(595)의 포맷은, H.265/HEVC 포맷, 윈도우 미디어 비디오 포맷, VC-1 포맷, MPEG-x 포맷(예를 들면, MPEG-1, MPEG-2, 또는 MPEG-4), H.26x 포맷(예를 들면, H.261, H.262, H.263, H.264), 또는 다른 포맷의 변형안 또는 확장안일 수 있다.
소망되는 압축의 타입 및 구현예에 따라서, 인코더(500)의 모듈은 추가될 수 있고, 생략될 수 있고, 다수의 모듈로 분할될 수 있고, 다른 모듈과 결합될 수 있고 및/또는 유사한 모듈로 대체될 수 있다. 대안적인 실시형태에서, 상이한 모듈 및/또는 모듈의 다른 구성을 갖는 인코더는 설명된 기술 중 하나 이상을 수행한다. 인코더의 특정 실시형태는, 통상적으로, 인코더(500)의 변형예 또는 보충된 버전을 사용한다. 인코더(500) 내에서의 모듈 사이에 도시되는 관계는, 인코더에서의 정보의 일반적인 흐름을 나타내며; 다른 관계는 간략화를 위해 도시되지 않는다.
VI. 예시적인 비디오 디코더.
도 6은 몇몇 설명된 실시형태가 연계하여 구현될 수도 있는 일반화된 디코더(600)의 블록도이다. 디코더(600)는 인코딩된 데이터를 코딩된 비디오 비트스트림(605)에서 수신하고 재구성된 비디오(695)에 대한 픽쳐를 포함하는 출력을 생성한다. 코딩된 비디오 비트스트림(605)의 포맷은, H.265/HEVC 포맷, 윈도우 미디어 비디오 포맷, VC-1 포맷, MPEG-x 포맷(예를 들면, MPEG-1, MPEG-2, 또는 MPEG-4), H.26x 포맷(예를 들면, H.261, H.262, H.263, H.264), 또는 다른 포맷의 변형안 또는 확장안일 수 있다.
디코더(600)는 블록 기반이며 구현예에 의존하는 블록 포맷을 사용한다. 블록은 상이한 스테이지에서 더 세분될 수도 있다. 예를 들면, 픽쳐는 64×64 블록, 32×32 블록 또는 16×16 블록으로 분할될 수 있는데, 이들은 종국에는 샘플 값의 더 작은 블록으로 분할될 수 있다. H.265/HEVC 표준에 대한 디코딩의 구현예에서, 픽쳐는 CTU(CTB), CU(CB), PU(PB) 및 TU(TB)로 구획된다.
디코더(600)는 인트라 픽쳐 디코딩 및/또는 인터 픽쳐 디코딩을 사용하여 픽쳐를 압축해제한다. 디코더(600)의 컴포넌트 중 많은 것은 인트라 픽쳐 디코딩 및 인터 픽쳐 디코딩 둘 다에 대해 사용된다. 이들 컴포넌트에 의해 수행되는 정확한 동작은, 압축해제되고 있는 정보의 타입에 의존하여 변할 수 있다.
버퍼는 인코딩된 데이터를 코딩된 비디오 비트스트림(605)에서 수신하고 수신된 인코딩된 데이터를 파서/엔트로피 디코더(610)가 이용가능하게 만든다. 파서/엔트로피 디코더(610)는 엔트로피 코딩된 데이터를 엔트로피 디코딩하는데, 통상적으로는 인코더(500)에서 수행된 엔트로피 코딩의 역(예를 들면, 콘텍스트 적응 이진 산술 디코딩)을 적용한다. 파싱 및 엔트로피 디코딩의 결과로서, 파서/엔트로피 디코더(610)는, 일반적인 제어 데이터(622), 양자화된 변환 계수 데이터(632), 인트라 예측 데이터(642), 모션 데이터(652) 및 필터 제어 데이터(662)를 생성한다. 일반적인 제어 데이터(622)는, 픽쳐, 슬라이스, 블록, 또는 비디오의 다른 단위에 대한 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 나타내는 신호를 포함한다. 이러한 신호는, 예를 들면, PPS, 슬라이스 헤더, 블록 신택스 구조체 또는 다른 신택스 구조체에 포함될 수 있고, 엔트로피 코딩될 수 있거나 또는 고정된 길이 값으로서 시그널링될 수 있다. 파서/엔트로피 디코더(610)는, 적응적 전환 동안 디코더(600)에 의해 사용가능한, 이용가능한 컬러 공간을 식별하는 또는 정의하는 정보(예를 들면, 미리 정의된 컬러 공간, 컬러 공간 변환 동작을 위한 커스텀 매트릭스의 리스트), 이용가능한 컬러 샘플링 레이트를 식별하는 또는 정의하는 정보(예를 들면, 미리 정의된 컬러 샘플링 레이트, 다른 컬러 샘플링 레이트, 또는 다운샘플링 및 업샘플링을 위한 동작의 식별자(identification)의 리스트) 및/또는 이용가능한 비트 깊이를 식별하는 또는 정의하는 정보(예를 들면, 미리 정의된 비트 깊이, 다른 비트 깊이, 또는 비트 깊이 변환을 위한 동작의 식별자의 리스트)를 파싱할 수 있고 및/또는 엔트로피 디코딩할 수 있다. 파서/엔트로피 디코더(610)는 또한, 예를 들면, PPS, 슬라이스 헤더, 블록 신택스 구조체 또는 다른 신택스 구조체로부터의 QP 값을 나타내는 신택스 엘리먼트를 파싱할 수 있고/있거나 엔트로피 디코딩할 수 있다.
일반적인 디코딩 제어부(620)는 일반적인 제어 데이터(622)를 수신하고, 디코딩 동안 디코딩 파라미터를 설정하고 변경하기 위해, 제어 신호(도시되지 않음)를 다른 모듈(예컨대, 스케일러/역 변환기(635), 인트라 픽쳐 예측기(645), 모션 보상기(655) 및 인트라/인터 스위치)로 제공한다. 특히, 일반적인 디코딩 제어부(620)는, 디코더(600)로 하여금, 디코딩 동안 픽쳐 단위 기반으로, 슬라이스 단위 기반으로, 블록 단위 기반으로 또는 어떤 다른 기반으로, 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 전환하게 할 수 있다. 디코더(600)가 컬러 공간을 전환할 때, 일반적인 디코딩 제어부(620)는, 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해 역 양자화 또는 스케일링을 어떻게 조정할지를 결정할 수 있다.
현재 픽쳐가 인터 픽쳐 예측을 사용하여 예측되면, 모션 보상기(655)는 모션 데이터(652), 예컨대 MV 데이터, 참조 픽쳐 선택 데이터 및 병합 모드 인덱스 값을 수신한다. 모션 보상기(655)는 MV를, 디코딩된 픽쳐 버퍼(670)로부터의 재구성된 참조 픽쳐(들)에 적용한다. 모션 보상기(655)는 현재 픽쳐의 인터 코딩된 블록에 대한 모션 보상된 예측치를 생성한다. 디코딩된 픽쳐 버퍼(670)는 참조 픽쳐로서의 사용을 위해 하나 이상의 이전에 재구성된 픽쳐를 저장한다.
디코더(600) 내의 별개의 경로에서, 인트라 예측 예측기(645)는, 인트라 예측 데이터(642), 예컨대 인트라 예측이 공간적 예측을 사용하는지 또는 BC 예측을 사용하는지의 여부를 나타내는 정보(예를 들면, 인트라 블록마다의 플래그 값), (인트라 공간 예측을 위한) 예측 모드 방향 및 (인트라 BC 예측을 위한) BV 값을 수신한다. 인트라 공간 예측의 경우, 현재 픽쳐의 재구성(638)의 값을 사용하여, 예측 모드 데이터에 따라, 인트라 픽쳐 예측기(645)는, 현재 픽쳐의 이웃하는 이전에 재구성된 샘플 값으로부터, 현재 픽쳐에서의 현재 블록의 샘플 값을 공간적으로 예측한다. 또는, BV 값을 사용하는 인트라 BC 예측의 경우, 인트라 픽쳐 예측기(645)는, 현재 블록에 대한 BV 값에 의해 나타내어지는 인트라 프레임 예측 참조 영역의 이전에 재구성된 샘플 값을 사용하여 현재 블록의 샘플 값을 예측한다.
인트라/인터 스위치는, 주어진 블록에 대한 예측(658)이 모션 보상된 예측인지 또는 인트라 픽쳐 예측인지의 여부를 선택한다. 예를 들면, H.265/HEVC 신택스가 후속되면, 인트라/인터 스위치는, 인트라 예측된 CU 및 인터 예측된 CU를 포함할 수 있는 픽쳐의 CU에 대해 인코딩되는 하나 이상의 신택스 엘리먼트에 기초하여 제어될 수 있다. 비스킵 모드 블록의 경우, 디코더(600)는 예측치(658)를 재구성된 잔차 값과 결합하여 비디오 신호로부터의 컨텐츠의 재구성치(638)를 생성한다. 스킵 모드 블록의 경우, 디코더(600)는 재구성치(638)로서 예측(658)의 값을 사용한다.
비스킵 모드 블록에 대한 잔차를 재구성하기 위해, 스케일러/역 변환기(635)는 양자화된 변환 계수 데이터(632)를 수신하여 프로세싱한다. 스케일러/역 변환기(635)에서, 스케일러/역 양자화기는, 양자화된 변환 계수에 관해 역 스케일링 및 역 양자화를 수행한다. 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해, 스케일러는 본원에서 설명되는 바와 같이 역 양자화 또는 스케일링을 조정할 수 있다. 역 주파수 변환기는 역 주파수 변환을 수행하여, 재구성된 예측 잔차 값 또는 샘플 값의 블록을 생성한다. 예를 들면, 역 주파수 변환기는 주파수 변환 계수에 대해 역 블록 변환을 적용하여, 샘플 값 데이터 또는 예측 잔차 데이터를 생성한다. 역 주파수 변환은 역 DCT, 역 DCT의 정수 근사, 또는 다른 타입의 역 주파수 변환(예를 들면, 역 이산 사인 변환 또는 역 이산 사인 변환의 정수 근사)일 수 있다.
인트라 픽쳐 예측의 경우, 재구성(638)의 값은 인트라 픽쳐 예측기(645)로 다시 공급될 수 있다. 인터 픽쳐 예측의 경우, 재구성(638)의 값은 추가로 필터링될 수 있다. 병합기/필터(들)(665)에서, 디코더(600)는 상이한 타일로부터의 컨텐츠를 픽쳐의 재구성된 버전으로 병합한다. 디코더(600)는, 픽쳐에서의 경계에 걸친 불연속부를 적응적으로 평활화하기 위해, 필터 제어 데이터(662) 및 필터 적응을 위한 규칙에 따라 디블록 필터링 및 SAO 필터링을 선택적으로 수행한다. 다른 필터링(예컨대 디링잉 필터링 또는 ALF; 도시되지 않음)이 대안적으로 또는 추가적으로 적용될 수 있다. 타일 경계는, 인코딩된 비트스트림 데이터 내에서의 신택스 표시(syntax indication) 또는 디코더(600)의 설정에 의존하여, 선택적으로 필터링될 수 있거나 또는 전혀 필터링되지 않을 수 있다. 디코딩된 픽쳐 버퍼(670)는, 후속하는 모션 보상된 예측에서의 사용을 위해 재구성된 현재 픽쳐를 버퍼링한다.
디코더(600)는 또한 후처리 필터(post-processing filter)를 포함할 수 있다. 후처리 필터(608)는, 디링잉 필터링, 적응적 위너 필터링(adaptive Wiener filtering), 필름 그레인 재현 필터링(film-grain reproduction filtering), SAO 필터링 또는 다른 종류의 필터링을 포함할 수 있다.
소망되는 압축해제의 타입 및 구현예에 따라서, 디코더(600)의 모듈은 추가될 수 있고, 생략될 수 있고, 다수의 모듈로 분할될 수 있고, 다른 모듈과 결합될 수 있고 및/또는 유사한 모듈로 대체될 수 있다. 대안적인 실시형태에서, 상이한 모듈 및/또는 모듈의 다른 구성을 갖는 디코더는 설명된 기술 중 하나 이상을 수행한다. 디코더의 특정 실시형태는, 통상적으로, 디코더(600)의 변형예 또는 보충된 버전을 사용한다. 디코더(600) 내에서 모듈 사이에 도시되는 관계는, 디코더에서의 정보의 일반적인 흐름을 나타내며; 다른 관계는 간략화를 위해 도시되지 않는다.
VII. 컬러 공간 변환시의 양자화/스케일링 및 역 양자화/스케일링의 조정
이 섹션은 비디오 시퀀스의 단위에 대한 적응적 인코딩 및 디코딩의 다양한 피쳐를 제시한다. 단위는 픽쳐, 슬라이스, 블록 또는 비디오 시퀀스의 다른 일부일 수 있다. 예를 들면, 피쳐 중 몇몇은, 인코더가 인코딩 동안 비디오 시퀀스 내의 단위 사이에서 컬러 공간을 전환할 때의 양자화 또는 스케일링의 조정에 관한 것이다. 다른 피쳐는, 디코더가 디코딩 동안 비디오 시퀀스 내의 단위 사이에서 컬러 공간을 전환할 때의 역 양자화 또는 스케일링의 조정에 관한 것이다. 이들 혁신안은 인코딩 및 디코딩 동안 컬러 공간 사이에서 전환할 때 코딩 효율성을 향상시킬 수 있다.
일반적으로, 컬러 공간(종종 컬러 모델로 칭해짐)은 물리적 위치마다 n(n≥1) 개의 값으로 컬러를 표현하기 위한 모델인데, 이 경우 n 개의 값의 각각은 그 위치에 대한 컬러 성분 값을 제공한다. 예를 들면, YUV 컬러 공간에서, 루마(또는 Y) 성분 값은 한 위치에서의 대략적인 휘도를 나타내고 다수의 크로마(또는 U 및 V) 성분 값은 그 위치에서의 컬러 차이를 나타낸다. 컬러 차이 값(및 RGB와 같은 다른 컬러 공간으로부터 YUV 컬러 공간으로의/YUV 컬러 공간으로부터 RGB와 같은 다른 컬러 공간으로의 변환 동작)의 정확한 정의는 구현예에 의존한다. 통상적으로, 인코딩 및 디코딩의 목적상, Y 성분은 주 성분이고 U 및 V 성분은 보조 성분이다. 일반적으로, 본원에서 사용되는 바와 같이, 용어 YUV 타입 컬러 공간은, 루마(또는 휘도) 성분 및 하나 이상의 크로마(또는 색차(chrominance)) 성분을 갖는 임의의 컬러 공간을 나타내는데, Y'UV, YIQ, Y'IQ 및 YDbDr뿐만 아니라 YCbCr 및 YCoCg와 같은 변형안을 포함한다.
사용되는 성분 신호 척도(component signal measure)는, 비선형 전달 특성 함수(non-linear transfer characteristics function)(일반적으로 "감마 사전 보상(gamma pre-compensation)"으로 알려져 있으며 종종 프라임 심볼의 사용에 의해 표기되지만, 프라임 심볼은 종종 인쇄상의 편의상 생략된다)의 적용을 통해 조정될 수도 있다. 또는, 성분 신호 척도는, 광 진폭과 선형 관계를 갖는 도메인에 있을 수도 있다. 루마 및 크로마 성분 신호는 인간 시각 시스템에 대한 휘도 및 컬러의 지각 작용과 잘 정렬될 수도 있거나, 또는 루마 및 크로마 성분 신호는 (예를 들면, 컬러 성분 값의 계산을 단순화하는 공식이 적용되는 YCoCg 변형안에서와 같이) 이러한 척도로부터 다소 벗어날 수도 있다.
다른 예로서, RGB 컬러 공간에서, 레드(R) 성분 값은 한 위치에서의 레드 강도를 나타내고, 그린(G) 성분 값은 한 위치에서의 그린 강도를 나타내고, 블루(B) 성분 값은 한 위치에서의 블루 강도를 나타낸다. 본원에서 사용되는 바와 같이, 용어 RGB 타입 컬러 공간은 R, G 및 B 컬러 성분을 임의의 순서로 갖는 컬러 공간을 나타낸다. 예는 RGB, BGR 및 GBR 컬러 공간을 포함하는데, 이들은 인코딩 및 디코딩의 목적을 위한 주 성분의 관점에서 상이하다. 주 성분은, 컬러 공간의 첫 번째 문자로 나타내어진다(예를 들면, RGB의 경우 R).
컬러 샘플링 레이트(종종 크로마 샘플링 레이트로 칭해짐)는 컬러 성분 사이의 상대적 공간 해상도를 가리킨다. 예를 들면, 4:4:4의 컬러 샘플링 레이트의 경우, 보조 성분(secondary component)(예를 들면, YUV의 경우 U 및 V)에 대한 정보는, 주 성분(primary component)(예를 들면, YUV의 경우 Y 성분)에 대한 정보와 동일한 공간 해상도를 갖는다. 4:2:2 또는 4:2:0의 컬러 샘플링 레이트의 경우, 보조 성분에 대한 정보는, 주 성분에 대한 정보에 비해 다운샘플링된다. YUV 4:2:0 포맷은, 크로마 해상도가 수평 및 수직 둘 다에서 루마 해상도의 절반의 해상도가 되도록, YUV 4:4:4 포맷과 비교하여 크로마 정보를 서브샘플링하는 포맷이다. YUV 4:2:2 포맷은, 크로마 해상도가 수평에서 루마 해상도의 절반의 해상도가 되도록, YUV 4:4:4 포맷과 비교하여 크로마 정보를 서브샘플링하는 포맷이다. 컬러 샘플링 레이트의 다른 예는 4:1:1(보조 성분이 수평에서 1/4 해상도를 갖는다) 및 4:0:0(보조 성분이 드랍된다)이다. 컬러 서브샘플링은, 통상적으로, YUV-타입 컬러 공간에 적용된다. RGB 타입 컬러 공간은, 일반적으로, 4:4:4의 컬러 샘플링 레이트를 가지지만, 그러나 어떤 보조 컬러 성분이 서브샘플링되는지에 따라 상이한 컬러 샘플링 레이트를 가질 수 있다.
종래에는 YUV 4:2:0 포맷이 비디오 인코딩 및 디코딩을 위해 사용되었지만, 비디오가 더 풍부한 컬러 정보를 갖는 사용 사례가 몇몇 존재하며, 더 높은 컬러 충실도의 구실이 될 수도 있다. 이러한 사용 사례에서, YUV 4:4:4 크로마 샘플링 포맷과 YUV 4:2:0 크로마 샘플링 포맷 사이의 차이는 뷰어에 의해 보다 쉽게 지각된다. 예를 들면, 컴퓨터 스크린 텍스트 컨텐츠, 인공의 선명하게 된(hard-edged) 경계를 갖는 애니메이션화 비디오 컨텐츠, 또는 보다 일반적으로는 비디오 컨텐츠의 소정의 피쳐(예컨대 스크롤하는 타이틀 및 선명하게 된 그래픽, 또는 크로마 채널에 집중된 정보를 갖는 비디오)의 인코딩/디코딩의 경우, 4:4:4 포맷은 4:2:0 포맷보다 바람직할 수도 있다.
비트 깊이는 샘플 값당 비트의 수를 가리킨다. 일반적인 비트 깊이는 샘플당 8 비트, 샘플당 10 비트 그리고 샘플당 12 비트이다. 다른 가능한 비트 깊이는 샘플당 4 비트 및 샘플당 16 비트를 포함한다.
컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이의 적응적 전환은, 스크린 캡쳐 컨텐츠와 같은 소정의 "인공적으로" 작성된 비디오 컨텐츠를 인코딩할 때, 또는 내추럴 비디오와 인공적으로 작성된 비디오 컨텐츠의 혼합 컨텐츠를 인코딩할 때, 레이트-왜곡 성능을 향상시킬 수 있다. 스크린 캡쳐 컨텐츠의 인코딩/디코딩을 위한 공통 시나리오는, 원격 데스크탑 회의 및 미가공 비디오(natural video) 또는 다른 "혼합된 컨텐츠" 비디오 상의 그래픽 오버레이의 인코딩/디코딩을 포함한다.
A. 비디오의 타입.
일반적으로, 스크린 캡쳐 비디오는 컴퓨터 스크린 또는 다른 디스플레이의 출력을 나타낸다. 도 7은 스크린 캡쳐에 대한 입력을 제공할 수도 있는 컨텐츠를 갖는 컴퓨터 데스크탑 환경(710)을 예시하는 도면이다. 예를 들면, 스크린 캡쳐 비디오는 전체 컴퓨터 데스크탑(711)의 일련의 이미지를 나타낼 수 있다. 또는, 스크린 캡쳐 비디오는, 게임 컨텐츠를 포함하는 앱 윈도우(713), 웹 페이지 컨텐츠를 갖는 브라우저 윈도우(712) 또는 워드 프로세서 컨텐츠를 갖는 윈도우(714)와 같은, 컴퓨터 데스크탑 환경의 윈도우 중 하나에 대한 일련의 이미지를 나타낼 수 있다.
컴퓨터가 생성하는 인공적으로 작성된 비디오 컨텐츠로서, 스크린 캡쳐 컨텐츠는, 비디오 카메라를 사용하여 캡쳐되는 내추럴 비디오 컨텐츠에 비해, 상대적으로 적은 별개의 샘플 값을 갖는 경향이 있다. 예를 들면, 스크린 캡쳐 컨텐츠의 한 영역은, 종종, 단일의 균일한 컬러를 포함하지만, 반면 내추럴 비디오 컨텐츠에서의 한 영역은 점진적으로 변하는 컬러를 포함할 가능성이 더 높다. 또한, 스크린 캡쳐 컨텐츠는, 컨텐츠가 (예를 들면, 스크롤링으로 인해) 공간적으로 변위될 수도 있는 경우에도, 통상적으로, 프레임마다 정확히 반복되는 별개의 구조체(예를 들면, 그래픽, 텍스트 문자)를 포함한다. 스크린 캡쳐 컨텐츠는, 종종, 높은 크로마 샘플링 해상도를 갖는 포맷(예를 들면, YUV 4:4:4 또는 RGB 4:4:4)으로 인코딩되지만, 스크린 캡쳐 컨텐츠는 또한 더 낮은 크로마 샘플링 해상도(예를 들면, YUV 4:2:0, YUV 4:2:2)를 갖는 포맷으로 인코딩될 수도 있다.
도 8은 내추럴 비디오(821) 및 인공적으로 작성된 비디오 컨텐츠를 포함하는 복합 비디오(820)를 도시한다. 인공적으로 작성된 비디오 컨텐츠는, 내추럴 비디오(821) 옆의 그래픽(822) 및 내추럴 비디오(821) 아래에서 실행하는 티커(ticker)(823)를 포함한다. 도 7에서 도시되는 스크린 캡쳐 컨텐츠와 같이, 도 8에서 도시되는 인공적으로 작성된 비디오 컨텐츠는 상대적으로 적은 별개의 샘플 값을 갖는 경향이 있다. 그것은 또한, (예를 들면, 스크롤링으로 인해) 프레임마다 정확히 반복되는 별개의 구조체(예를 들면, 그래픽, 텍스트 문자)를 갖는 경향이 있다.
B. 적응적 전환의 예.
컬러 공간의 적응적 전환을 위해, 시퀀스에서의 비디오의 상이한 단위는 상이한 컬러 공간에서 인코딩된다. 예를 들면, 단위 중 몇몇은 YUV 타입 컬러 공간(예를 들면, YCbCr, YCoCg)에서 인코딩되고, 다른 단위는 RGB 타입 컬러 공간(예를 들면, RGB, BGR, GBR)에서 인코딩된다. 이 경우, 인코더 또는 디코더는, 적절하다면, YUV 타입 컬러 공간과 RGB 타입 컬러 공간 사이에서의 전환을 위해, 샘플 값에 관해 컬러 공간 변환 동작을 수행할 수 있다. 통상적으로, 컬러 공간 변환 동작은 위치 기반으로 수행되는 매트릭스 곱 연산에 표현될 수 있는데, 이 경우, 한 위치에 대한 제1 컬러 공간에서의 n 개의 샘플 값은 n×n 매트릭스에 의해 승산되어 그 위치에 대한 제2 컬러 공간에서의 n 개의 샘플 값을 생성하게 된다. 실제, 컬러 공간 변환 동작은 다른 계산을 사용하여 구현될 수 있다.
컬러 공간의 적응적 전환의 다른 예로서, 상이한 단위는 상이한 RGB 타입 컬러 공간에서 인코딩될 수 있는데, 상이한 RGB 타입 컬러 공간은 그들의 주 성분 및 (예를 들면, 잔차 데이터에 대한) 컴포넌트가 시그널링되는 순서의 관점에서 상이하다. 이 경우, 인코더 또는 디코더는, 적절하다면, 어떤 컬러 성분이 주 컬러 성분인지를 변경하기 위해 샘플 값의 블록 또는 플레인에 관해 컬러 공간 재정렬 동작을 수행한다.
몇몇 예시적인 구현예에서, 손실성 코딩의 경우, 인코더는 상이한 컬러 공간 중 임의의 것 사이에서 전환할 수 있다. 그러나, 손실성 코딩의 경우, 인코더는 비가역적 컬러 공간 변환(예를 들면, RGB, BGR 및 GBR 컬러 공간 사이에서 컬러 성분을 재정렬하는 것, 또는, 몇몇 구현예에서, 증가된 중간 비트 깊이를 사용하여 YCoCg로의/로부터의 변환)만을 수행한다.
컬러 샘플링 레이트의 적응적 전환을 위해, 시퀀스에서의 비디오의 상이한 단위는 상이한 컬러 샘플링 레이트로 인코딩된다. 예를 들면, 단위 중 몇몇은 4:2:2 또는 4:2:0 포맷(예컨대 YUV 4:2:2 또는 YUV 4:2:0)으로 인코딩되고, 한편 다른 단위는 4:4:4 포맷(예컨대 YUV 4:4:4)으로 인코딩된다. RGB 타입 컬러 공간은, 일반적으로, 4:4:4의 컬러 샘플링 레이트를 가지지만, 예를 들어, 주 컬러 성분이 보조 컬러 성분보다 훨씬 더 지배적이면, 그 컬러 성분은, 대신, 4:2:2 또는 4:2:0의 컬러 샘플링 레이트에 따라 서브샘플링될 수 있다.
보조 성분에 대한 샘플 값을 수평으로 또는 수직으로 다운샘플링할 때, 인코더 또는 디코더는, 간단한 서브 샘플링, 서브샘플링을 추가한 저역 통과(low-pass) 필터링, 또는 서브샘플링을 추가한 다른 필터링을 수행할 수 있다. 보조 성분의 샘플 값의 대응하는 업샘플링을 위해, 인코더 또는 디코더는, 예를 들면, 샘플 값 반복 및/또는 필터링을 사용하여, 서브샘플링을 반전시킨다(reverse).
비트 깊이의 적응적 전환을 위해, 시퀀스에서의 비디오의 상이한 단위는 상이한 비트 깊이로 인코딩된다. 예를 들면, 단위 중 몇몇은 12 비트 샘플 값으로 인코딩되고, 한편 다른 단위는 10 비트 샘플 값 또는 8 비트 샘플 값으로 인코딩된다. 비트 깊이 사이에서 변환할 때, 인코더 또는 디코더는 (반올림 인자를 갖는 또는 반올림 인자를 갖지 않는) 상위 비트 깊이 샘플 값을 잘라내어, 하위 비트 깊이 샘플 값을 생성하거나, 또는 하위 비트 깊이 샘플 값을 스케일링하여 상위 비트 깊이 샘플 값을 생성할 수 있다.
인코더는, 통상적으로, 12 비트의 샘플 값을 갖는 RGB 4:4:4와 같은 주어진 포맷에서 입력 비디오를 수신한다. 인코더는, 비디오의 주어진 단위에 대해 입력 포맷과 (상이한 컬러 공간, 상이한 컬러 샘플링 레이트 및/또는 상이한 비트 깊이를 갖는) 다른 포맷 사이에서 변환할 수 있다. 컬러 공간 적응은, 픽쳐 레벨에서, 슬라이스 레벨에서, 블록 레벨에서 또는 몇몇 다른 레벨에서, 홀로 또는 컬러 샘플링 레이트 적응 및/또는 비트 깊이 적응과 결합하여 수행될 수 있다. 마찬가지로, 컬러 샘플링 레이트 적응은, 픽쳐 레벨에서, 슬라이스 레벨에서, 블록 레벨에서 또는 몇몇 다른 레벨에서, 홀로 또는 컬러 공간 적응 및/또는 비트 깊이 적응과 결합하여 수행될 수 있다. 비트 깊이 적응은, 픽쳐 레벨에서, 슬라이스 레벨에서, 블록 레벨에서 또는 몇몇 다른 레벨에서, 홀로 또는 컬러 공간 적응 및/또는 컬러 샘플링 레이트 적응과 결합하여 수행될 수 있다.
도 9는, 시퀀스(900)에서의 픽쳐에 대한 픽쳐 적응적 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 도시한다. 시퀀스(900)는 일련의 픽쳐를 포함한다. 필요시, 인코더는 입력 비디오를 입력 비디오 포맷으로부터 주어진 픽쳐에 대해 선택되는 포맷으로 변환한다. 픽쳐 1의 포맷은 8 비트 샘플 값을 갖는 YCbCr 4:2:0이고, 픽쳐 2의 포맷은 8 비트 샘플 값을 갖는 RGB 4:4:4이다. 픽쳐 3 및 픽쳐 4는 BGR 4:4:4 비디오이지만, 그들의 샘플 값은 상이한 비트 깊이를 갖는다.
도 10은, 시퀀스에서의 픽쳐(1000)의 슬라이스에 대한 슬라이스 적응적 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 도시한다. 픽쳐(1000)는 다섯 개의 슬라이스를 포함하는데, 그 경계는 점선으로 도시되어 있다. 예를 들면, 슬라이스 0, 슬라이스 1, 슬라이스 3 및 슬라이스 4는 스크린 캡쳐 컨텐츠 또는 다른 인공적으로 작성된 비디오 컨텐츠와 관련될 수 있을 것이고, 한편 슬라이스 2는 내추럴 비디오 컨텐츠와 관련된다. 슬라이스 0 및 슬라이스 3의 포맷은 10 비트의 샘플 값을 갖는 BGR 4:4:4이다. 슬라이스 1은 GBR 4:4:4 비디오의 12 비트 샘플 값을 포함한다. 슬라이스 2의 포맷은 8 비트 샘플 값을 갖는 YCbCr 4:2:0이고, 슬라이스 4의 포맷은 8 비트 샘플 값을 갖는 RGB 4:4:4이다.
도 11은, 시퀀스에서의 픽쳐의 슬라이스(1100)의 블록에 대한 블록 적응적 컬러 공간, 컬러 샘플링 레이트 및/또는 비트 깊이를 도시한다. 슬라이스(1100)는 세 개의 상이한 블록 사이즈를 갖는 16 개의 블록을 포함한다. 처음 두 개의 블록의 포맷은 8 비트의 샘플 값을 갖는 YCbCr 4:2:0이고, 마지막 블록의 포맷은 10 비트의 샘플 값을 갖는 YCbCr 4:2:0이다. 블록 2 내지 블록 15는 4:4:4의 샘플링 레이트를 갖는 RGB 타입 컬러 공간에서 12 비트의 샘플 값을 포함한다. 블록 2 내지 블록 15에 대한 컬러 공간은 RGB, BGR 및 GBR 사이에서 변한다.
C. 컬러 공간 변환시의 양자화/스케일링 및 역 양자화/스케일링의 조정 - 서론.
인코더가 비디오의 단위 사이에서 컬러 공간을 적응적으로 전환할 때, 인코더는 양자화 및/또는 스케일링을 조정할 수 있다. 대응하는 디코더는, 디코더가 비디오의 단위 사이에서 컬러 공간을 전환할 때, 역 양자화 및/또는 스케일링을 조정할 수 있다. 예를 들면, 인코더 및 디코더는, 컬러 공간 전환이 발생할 때, 상이한 컬러 성분에 대해 상이한 양자화 단계 사이즈를 사용할 수 있다. 인코딩 동안 양자화/스케일링을 조정하는 것 및 대응하는 디코딩 동안 역 양자화/스케일링을 조정하는 것은, 컬러 공간 사이에서 전환할 때 코딩 효율성을 향상시킬 수 있다.
블록 기반으로 RGB 컬러 공간과 YCoCg 컬러 공간 사이에서의 적응적 전환의 예를 고려한다. 일반적으로, 인코더 또는 디코더는, 다음의 동작에서 나타내어지는 바와 같이, 샘플 값을 RGB 컬러 공간으로부터 YCoCg 컬러 공간으로 변환할 수 있다.
Figure pct00001
YCoCg 컬러 공간에서의 출력된 샘플 값의 다이나믹 레인지는 오프셋을 추가하는 것에 의해 조정될 수 있다. 예를 들면, RGB 컬러 공간에서의 한 위치에 대한 샘플 값이, 각각, PsR, PsG 및 PsB이고, 현재 비트 깊이가 bit_depthcurrent인 것으로 가정한다. 최소 샘플 값은 0이고, 최대 샘플 값은 (1 << bit_depthcurrent) - 1(예를 들면, 8 비트 샘플 값의 경우 255)이다. Co 및 Cg의 다이나믹 레인지를 조정하기 위해, 항 add_value은 1 << (bit_depthcurrent - 1)로 정의된다(예를 들면, 출력 값을 0 내지 255의 범위 내에 유지하기 위해, 8 비트 샘플 값의 경우 128). YCoCg 컬러 공간에서의 그 위치에 대한 샘플 값 PsY, PsCo, 및 PsCg는 다음에 의해 계산될 수 있다:
Figure pct00002
샘플 값 PsY, PsCo, 및 PsCg는, 최소 샘플 값과 최대 샘플 값에 의해 정의되는 범위에서 클립된다.
일반적으로, 인코더 또는 디코더는, 다음의 동작에서 나타내어지는 바와 같이, 샘플 값을 YCoCg 컬러 공간으로부터 RGB 컬러 공간으로 변환할 수 있다.
Figure pct00003
오프셋이 YCoCg 컬러 공간의 샘플 값에 추가되었다면, 오프셋이 먼저 감산된다. 예를 들면, YCoCg 컬러 공간에서의 한 위치에 대한 샘플 값이, 각각, RsY, RsCo 및 RsCg이고, 현재의 비트 깊이가 bit_depthcurrent라고 가정한다. 다이나믹 레인지를 조정하기 위해, 항 add_value는 1 << (bit_depthcurrent - 1)(예를 들면, 0 내지 255의 범위에서, 8 비트 샘플 값의 경우 128)로서 정의된다. RGB 컬러 공간에서의 그 위치의 샘플 값 RsR, RsG, 및 RsB은 다음에 의해 계산될 수 있다:
Figure pct00004
샘플 값 RsR, RsG, 및 RsB는, 최소 샘플 값과 최대 샘플 값에 의해 정의되는 범위에서 클립된다.
역 컬러 공간 변환 매트릭스에 따르면, Y 성분의 샘플 값은 R, G 및 B 샘플 값에 영향을 끼칠 것이다. 역 컬러 공간 변환을 통한 Y 성분에 대한 총 에너지 기여는 (1)2+(1)2+(1)2=3이다. Co 성분의 샘플 값은 R 및 B 샘플 값에 영향을 끼칠 것이고, 역 컬러 공간 변환을 통한 Co 성분에 대한 총 에너지 기여는 (1)2+(0)2+(-1)2=2이다. 마찬가지로, Cg 성분의 샘플 값은 R, G 및 B 샘플 값에 영향을 끼칠 것이고, 역 컬러 공간 변환을 통한 Cg 성분에 대한 총 에너지 기여는 (-1)2+(1)2+(-1)2=3이다. 따라서, Y, Co 및 Cg 성분에 대한 에너지 기여의 비율은 3:2:3이다.
에너지 비율로 인해, Y, Co 및 Cg 성분에서의 양자화 에러의 에너지는 역 컬러 공간 변환 동작에 의해 증폭될 것이다. 슬라이스 또는 픽쳐 내의 블록이 동일한 QP 값을 갖는 경우, 컬러 공간에서 인코딩된 블록이 다시 RGB로 변환되면, (YCoCg 도메인에서 코딩되고 그 다음 RGB 도메인으로 다시 변환된) 이들 블록에 대한 양자화 에러의 에너지는, RGB 컬러 공간에서 인코딩되었던 블록에 대한 양자화 에러의 에너지에 비해 증폭될 것이다. YCoCg 코딩된 블록과 RGB 코딩된 블록 사이에서 동등한 레벨의 양자화 에러의 에너지를 가지기 위해서, 인코더 및 디코더는, RGB 코딩된 블록에 적용되는 QP 값 또는 스케일링을 기준으로, YCoCg 코딩된 블록에 적용되는 QP 값 또는 스케일링을 조정할 수 있다.
예를 들면, 픽쳐 또는 슬라이스의 RGB 코딩된 블록의 R, G 및 B 성분에 대해 사용되는 QP 값이 QP_RGB이라고 가정한다. 픽쳐 또는 슬라이스의 YCoCg 코딩된 블록의 Y 성분의 경우, QP 값은 QP_Y이다. QP_RGB의 주어진 값에 대해, 양자화 단계 사이즈(QSS)는
Figure pct00005
에 의해 주어진다. QP_RGB가 1만큼 증가하거나 1만큼 감소하면, 양자화 단계 사이즈는 21/6배만큼 증가하거나 또는 감소한다. 주어진 QP 값에 대한 양자화 에러의 에너지는 일반적으로 QSS2의 선형 함수로서 측정될 수 있다. 따라서, QP_RGB의 경우, 양자화 에러의 에너지는
Figure pct00006
로서 측정될 수 있다. (a) RGB 도메인에서 코딩된 블록과 (b) YCoCg 도메인에서 코딩되고 그 다음 다시 RGB 도메인으로 변환된 블록 사이에서 동등한 레벨의 양자화 에러의 에너지를 갖기 위해, QP_Y의 값은 QP_RGB의 값을 기준으로 조정된다. 역 컬러 공간 변환을 통한 Y 성분으로부터의 에너지 기여가 (1)2+(1)2+(1)2=3이기 때문에, 조정은 다음의 식에 따라 계산되는데, RGB 코딩된 블록에 대한 양자화 에러의 에너지를, YCoCg 블록에 대한 양자화 에러의 증폭된 에너지와 동등하게 설정하는 것에 의해 시작한다.
Figure pct00007
따라서, QP_Y의 값은 QP_RGB-5의 값으로 근사될 수 있다. 마찬가지로, QP_Co 및 QP_Cg의 값은, QP_RGB의 기준으로 조정된다. 역 컬러 공간 변환을 통한 Co 성분으로부터의 에너지 기여가 (1)2+(0)2+(-1)2=2이기 때문에, QP_Co의 값은
Figure pct00008
의 값이다. QP_Y과 같이, QP_Cg의 값은
Figure pct00009
로 근사될 수 있다. 따라서, Y, Co 및 Cg 성분을 다시 RGB 도메인으로 변환할 때 3:2:3의 에너지 비율을 보상하기 위해, Y, Co 및 Cg 성분에 대해 사용되는 QP 값은, R, G 및 B 성분에 대해 사용되는 QP 값을 기준으로 대략 -5, -3 및 -5이다. 예를 들면, QP_RGB가 16이면, QP_Y = QP_Cg = 11이고, QP_Co = 13이다. 또는, QP_RGB가 28이면, QP_Y = QP_Cg = 23이고, QP_Co = 25이다.
QP 값에 대한 -5의 조정은, 25/6 = 1.78배만큼의 스케일링에 대응한다. QP 값에 대한 -3의 조정은, 23/6 = 1.41배만큼의 스케일링에 대응한다.
픽쳐 또는 슬라이스의 RGB 코딩된 블록의 R, G, 및 B 성분의 QP 값이 상이하면, Y, Co 및 Cg 성분에 대한 QP 값 또는 스케일링 인자에 대한 조정치는 다음과 같이 계산될 수 있다. R, G, 및 B 성분의 QP 값은 Y, Co 및 Cg 성분에 할당되고, 그 다음 역 컬러 공간 변환 동작에서 Y, Co 및 Cg 컬러 성분에 대한 에너지 증폭에 기초하는 QP 조정 인자에 의해 조정된다. 예를 들면, QP_R가 19이고, QP_G가 28이고, QP_B가 33이라고 가정한다. 이 경우, 인코더 및 디코더는 QP 값을, 제1, 제2 및 제3 컬러 성분에게 동일한 순서로 할당할 수 있고, 그 다음 QP 값 조정치를 적용할 수 있다: QP_Y = 19-5 = 14이고, QP_Co = 28-3 = 25이며, QP_Cg = 33-5 = 28이다. 또는, 인코더 및 디코더는 QP 값을, 제1, 제2 및 제3 컬러 성분에게 상이한 순서로 할당할 수 있고, 그 다음 QP 값 조정치를 적용할 수 있다. 예를 들면, QP_Y = 28-5 = 23이고, QP_Co = 33-3 = 30이며, QP_Cg = 19-5 = 14이다. 또는, QP 값 조정치는, 제1 컬러 공간에서 제1 컬러 성분에 대해 사용되는 QP 값에만 의존할 수 있다. 또는, QP 값 조정치는, 제1 컬러 공간에서 제1 컬러 성분에 대해 사용되는 최소 QP 값에만 의존할 수 있다. 무관하게, (컬러 공간 변환이 없는) RGB 코딩된 블록에 대한 양자화 에러의 에너지는, 컬러 공간으로 다시 변환될 때의 YCoCg 코딩된 블록에 대한 양자화의 에너지에 대략적으로 동등하다.
상기에서 언급된 바와 같이, 양자화 에러는, 일반적으로, (양자화 에러를 QSS2의 선형 함수로서 측정하는) QP 값의 함수로서 모델링될 수 있다. 특히, 이 관계는 더 작은 QP 값(및 QSS)에 대해 유효하다. 그러나, 관계는 더 큰 QP 값에 대해서 만큼 정확하지 않을 수도 있다. 따라서, 몇몇 예시적인 구현예에서, 인코더 또는 디코더는, 제1 컬러 공간의 컬러 성분의 QP 값(들)에 의존하여 제2 컬러 공간의 컬러 성분에 대해 상이한 QP 값 조정치를 사용할 수 있다. 예를 들면, 인코더/디코더는, 제1 컬러 공간에 대해 사용된 QP 값에 의존하여 제2 컬러 공간의 컬러 성분에 대한 QP 값 조정치를 결정하기 위해, 룩업 테이블 또는 다른 구조체를 사용할 수 있는데, 이 경우, 룩업 테이블 또는 다른 구조체는 (제2 컬러 공간의 컬러 성분에 대한) 상이한 QP 값 조정치를, 제1 컬러 공간에 대해 사용된 상이한 QP 값과 관련시킨다. 룩업 테이블 또는 다른 구조체는 컬러 공간의 특정한 쌍(제1 컬러 공간, 제2 컬러 공간)에 대한 값을 포함할 수 있다. 예를 들면, 룩업 테이블(QPAdjustOffset)은 제2 컬러 공간의 컬러 성분(component_ID) 및 제1 컬러 공간에서의 QP 값(QP_CS1)에 의해 편제될 수 있다.
Figure pct00010
제2 컬러 공간의 주어진 컬러 성분(component_ID)의 경우, 룩업 테이블은 제1 컬러 공간에서 사용된 상이한 QP 값(QP_CS1)에 대한 QP 값 조정치를 포함한다. 제1 컬러 공간에서 사용된 주어진 QP 값(QP_CS1) 및 제2 컬러 공간의 주어진 컬러 성분(component_ID)의 경우, 인코더/디코더는 제2 컬러 공간의 그 컬러 성분(component_ID)에 대해 사용할 QP 값 조정치를 결정할 수 있다.
인코더 및 디코더는 또한, 제2 컬러 공간의 컬러 성분에 대한 QP 값을 조정할 수 있는데, QP 값 조정치가 적용된 제1 컬러 공간에 대한 제1, 제2 및 제3 컬러 성분의 QP 값으로부터 시작한다. 예를 들면, 인코더는 제2 컬러 공간의 컬러 성분 중 하나에 대한 QP 값을 증가시키고(이것은 양자화 에러의 증폭된 에너지를 증가시킨다), 그 다음 증가를 보상하기 위해 제2 컬러 공간의 다른 컬러 성분에 대한 QP 값을 감소시킨다. 또는, 인코더는 제2 컬러 공간의 컬러 성분 중 하나에 대한 QP 값을 감소시키고(이것은 양자화 에러의 증폭된 에너지를 감소시킨다), 그 다음 감소를 보상하기 위해 제2 컬러 공간의 다른 컬러 성분에 대한 QP 값을 증가시킨다. 예를 들면, QP_Y = 23, QP_Co = 30, 및 QP_Cg = 14로부터 시작하여, 인코더는, 양자화 에러의 전체 에너지를 크게 변경하지 않으면서, QP_Y를 18로 감소시킬 수 있고 QP_Cg를 22로 증가시킬 수 있다. ((QP_Y를 23으로부터 18로 변경하는 것으로부터의) 대략적으로 166의 양자화 에러의 에너지에서의 감소는, (QP_Cg를 14로부터 22로 변경하는 것으로부터의) 대략적으로 162의 양자화 에러의 에너지에서의 증가에 의해 오프셋된다.)
인코더 및 디코더는, 역 컬러 공간 변환 동작에서 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭에 의존하여, 인코딩 또는 디코딩 동안 다른 컬러 공간 사이에서 변환할 때 컬러 성분마다의 컬러 공간 조정치를 마찬가지로 결정할 수 있다. 일반적으로, 제1 컬러 공간으로부터 제2 컬러 공간으로의 변환을 위한 컬러 공간 변환 매트릭스 CC_matrix1 _to_2는 다음과 같이 정의될 수 있다:
Figure pct00011
출력의 다이나믹 레이지를 조정하기 위해, 오프셋 CC_offsets1 _to_2의 매트릭스가 사용될 수 있다. 오프셋 CC_offsets1 _to_ 2은 다음과 같이 정의될 수 있다:
Figure pct00012
제1 컬러 공간에서의 한 위치에 대한 샘플 값이
Figure pct00013
인 것으로 가정한다. 제2 컬러 공간에서의 그 위치에 대한 샘플 값 PsCC2는 다음과 같이 계산될 수 있다:
Figure pct00014
샘플 값 RsCC2는 적절한 범위로 클립된다.
제2 컬러 공간으로부터 제1 컬러 공간으로의 역 변환을 위한 컬러 변환 매트릭스 CC_matrix2 _to_1은 다음과 같이 정의될 수 있다:
Figure pct00015
출력의 다이나믹 레이지를 조정하기 위해, 오프셋 CC_offsets2 _to_1의 매트릭스가 사용될 수 있다. 오프셋 CC_offsetS2 _to_1은 다음과 같이 정의될 수 있다:
Figure pct00016
제2 컬러 공간에서의 한 위치에 대한 샘플 값이
Figure pct00017
인 것으로 가정한다. 제1 컬러 공간에서의 그 위치에 대한 샘플 값 RsCC1은 다음과 같이 계산될 수 있다:
Figure pct00018
샘플 값 RsCC1은 적절한 범위로 클립된다.
성분마다의 컬러 공간 조정 인자는, 역 컬러 공간 변환 동작에서 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭(에너지 비율)에 기초하여 결정될 수 있다. 예를 들면, 역 컬러 공간 변환에서 제1 성분에 대한 총 에너지 기여는
Figure pct00019
이다. 제2 성분에 대한 총 에너지 기여는
Figure pct00020
이고 역 컬러 공간 변환을 통한 제3 성분에 대한 총 에너지 기여는
Figure pct00021
이다. 이들 에너지 기여로부터, 인코더 및 디코더는, 제1 컬러 공간에 대한 QP 값(QP_CS1)을 기준으로, 제2 컬러 공간의 각각의 성분에 대한 QP 값 또는 스케일링 인자에 대한 조정치를 결정할 수 있다. 제2 컬러 공간의 제1 성분에 대한 QP 값(QP_CS2_0)은
Figure pct00022
로서 결정될 수 있는데, 이 경우
Figure pct00023
는 QP 값 조정치를 나타낸다. 제2 컬러 공간의 제2 및 제3 컬러 성분에 대한 QP 값(QP_CS2_1 및 QP_CS2_2)은
Figure pct00024
를 사용하여 마찬가지로 결정될 수 있다. 대안적으로, QP 값 조정치에 대응하는 스케일링 인자는 계산될 수 있다.
제1 컬러 공간의 컬러 성분의 QP 값이 상이한 값(예를 들면, QP_CS1_R, QP_CS1_G, QP_CS1_B)을 가지면, 제2 컬러 공간의 컬러 성분의 QP 값은 상기에서 설명된 바와 같이 할당될 수 있는데, 제1 컬러 공간의 컬러 성분의 QP 값으로부터 시작하여, QP 값 조정치를 적용하게 된다. 이들이 할당되고 조정된 이후, 제2 컬러 공간의 컬러 성분에 대한 QP 값은, 양자화 에러의 에너지의 레벨을 대략 동일하게 유지하면서, 상기에서 설명된 바와 같이 증가되거나 감소될 수 있다.
몇몇 예시적인 구현예에서(섹션 VII.D 참조), 인코더는 비트스트림에서 시그널링되는 신택스 엘리먼트를 사용하여 제2 컬러 공간의 컬러 성분에게 QP 값을 할당하고, 디코더는 시그널링된 신택스 엘리먼트에 따라 제2 컬러 공간의 컬러 성분에게 QP 값을 할당한다. 이들 구현예에서, 인코더는, 최고 에너지 또는 정보 컨텐츠를 갖는 제2 컬러 공간의 컬러 성분에게 더 낮은 QP 값을 할당하고, 다른 컬러 성분에게 더 높은 QP 값을 할당하거나, 또는 다르게는 인코더가 적절한 것으로 간주하는 QP 값을 할당하는 유연성을 갖는다. 다른 예시적인 구현예(섹션 VII.E 참조)에서, 인코더 및 디코더는 규칙에 따라 컬러 성분에게 수정된 QP 값을 할당한다. 예를 들면, 인코더 및 디코더는, 제1 컬러 공간의 컬러 성분에 대한 QP 값의 순서로, 제2 컬러 공간의 컬러 성분에게 수정된 QP 값을 할당한다. 또는, 인코더 및 디코더는, 만약 있다면, 최저 QP 값을 제2 컬러 공간의 제1 컬러 성분(예를 들면, 최고 에너지 또는 정보 컨텐츠를 가질 것으로 예상되는 컬러 성분)에게 할당하고 제2 컬러 공간의 다른 컬러 성분에게 다른 QP 값을 할당한다.
D. 성분마다의 컬러 공간 조정 인자에 대한 QP 값을 나타내는 신택스 엘리먼트의 예.
역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해, 인코더 및 디코더는 제2 컬러 공간의 컬러 성분에 대해 상이한 QP 값을 사용할 수 있다. 인코더는 섹션 VII.C에서 설명된 방식 중 임의의 것을 사용하여 제2 컬러 공간의 컬러 성분에 대한 QP 값을 결정하여 할당할 수 있다. 일단 QP 값이 할당되면, 인코더는 비트스트림에서 신택스 엘리먼트를 사용하여 QP 값을 시그널링할 수 있다. 이 섹션은, 제2 컬러 공간의 컬러 성분에 대한 QP 값을 나타내는 신택스 엘리먼트를 시그널링하는 다양한 방식을 설명한다.
일반적으로, 제2 컬러 공간의 컬러 성분에 대한 QP 값은 제1 컬러 공간의 대응하는 컬러 성분의 QP 값을 기준으로 (차별적으로(differentially))(오프셋으로서) 시그널링될 수 있다. 또는, 제2 컬러 공간의 제2 및 제3 컬러 성분에 대한 QP 값은, 제2 컬러 공간의 제1 컬러 성분에 대한 QP 값을 기준으로 차별적으로(오프셋으로서) 시그널링될 수 있는데, 제2 컬러 공간의 제1 컬러 성분에 대한 QP 값 자체는 제1 컬러 공간에 대한 QP 값을 기준으로 차별적으로 시그널링될 수 있다. 또는, 제2 컬러 공간의 컬러 성분에 대한 QP 값은 어떤 다른 방식으로 시그널링될 수 있다.
예를 들면, 제1 컬러 공간 및 제2 컬러 공간에 대한 QP 값은 (예를 들면, 슬라이스 헤더에서의) 슬라이스 레벨에서 시그널링될 수 있다. 몇몇 H.265/HEVC 구현예(JCTVC-P1003 참조)에서, 신택스 엘리먼트 slice_qp_delta는 슬라이스 헤더에서 시그널링되고, 슬라이스를 포함하는 픽쳐에 대한 초기 QP 값을 기준으로 하는 슬라이스의 QP 값에 대한 오프셋을 나타낸다.
슬라이스 QP 오프셋에 대해 단일의 신택스 엘리먼트를 사용하는 대신, 두 개의 상이한 신택스 엘리먼트가 제1 컬러 공간에 대한 슬라이스 QP 오프셋 및 제2 컬러 공간에 대한 슬라이스 QP 오프셋을 각각 나타낼 수 있다. 예를 들면, slice_qp_delta는, 제1 컬러 공간이 슬라이스 내에서 사용될 때의 슬라이스에 대한 QP 오프셋을 나타낼 수 있고, slice_qp_delta_cs2는, 제2 컬러 공간이 슬라이스 내에서 사용될 때의 슬라이스에 대한 QP 오프셋을 나타낼 수 있다. 신택스 엘리먼트 slice_qp_delta_cs2는, 적어도 두 개의 컬러 공간이 사용될 때 조건부적으로 시그널링될 수 있다. 신택스 엘리먼트 slice_qp_delta_cs2는, 제1 컬러 공간에 대한 슬라이스에 대한 QP 값을 기준으로 하는 차이를 나타낼 수 있다. 즉, 제1 컬러 공간에 대한 슬라이스에 대한 QP 값은 26 + init_qp_minus_26 + slice_qp_delta이고, 제2 컬러 공간에 대한 슬라이스에 대한 QP 값은 26 + init_qp_minus_26 + slice_qp_delta + slice_qp_delta_cs2이다. 대안적으로, 신택스 엘리먼트 slice_qp_delta_cs2는, 픽쳐에 대한 초기 QP 값을 기준으로 하는 차이를 나타낼 수 있다. 즉, 제2 컬러 공간이 사용될 때의 슬라이스에 대한 QP 값은 26 + init_qp_minus_26 + slice_qp_delta_cs2이다.
또는, 슬라이스 헤더에서 두 개의 QP 값을 시그널링하는 대신, 제2 컬러 공간에 대한 QP 값은 (예를 들면, PPS에서의) 픽쳐 레벨에서 시그널링될 수 있다. 몇몇 H.265/HEVC 구현예에서, 신택스 엘리먼트 init_qp_minus_26는 PPS에서 시그널링되고 픽쳐에 대한 초기 QP 값을 나타낸다. PPS에서의 다른 신택스 엘리먼트 init_qp_diff_cs2는, (init_qp_minus_26으로 나타내어지는) 제1 컬러 공간에 대한 픽쳐에 대한 초기 QP 값을 기준으로 하는, 제2 컬러 공간(또는 제2 컬러 공간의 제1 컬러 성분)에 대한 픽쳐에 대한 초기 QP 값을 나타낼 수 있다. 즉, 제2 컬러 공간에 대한 픽쳐에 대한 QP 값은26 + init_qp_minus_26 + init_qp_diff_cs2이다. 대안적으로, PPS에서의 신택스 엘리먼트 init_qp_minus_26_cs2는, 제2 컬러 공간(또는 제2 컬러 공간의 제1 컬러 성분)에 대한 픽쳐에 대한 초기 QP 값을 직접적으로 나타낼 수 있다. 어느 경우든, 제1 컬러 공간 및 제2 컬러 공간에 대한 슬라이스에 대한 QP 값은 슬라이스 QP 오프셋을 사용하여 유도될 수 있다. 예를 들면, 제1 컬러 공간에 대한 슬라이스에 대한 QP 값은, 제1 컬러 공간에 대한 픽쳐에 대한 초기 QP 값 + slice_qp_delta이고, 제2 컬러 공간에 대한 슬라이스에 대한 QP 값은, 제2 컬러 공간에 대한 픽쳐에 대한 초기 QP 값 + slice_qp_delta이다.
각각의 컬러 공간에 대한(슬라이스 또는 픽쳐에 대한) 단일의 QP 값을 시그널링하는 대신, 제2 컬러 공간의 상이한 컬러 성분에 대해, 상이한 QP 값이 시그널링될 수 있다. 예를 들면, (예를 들면, PPS에서의) 픽쳐 레벨에서, 제2 컬러 공간에 대한 픽쳐의 제2 및 제3 컬러 성분에 대한 오프셋은, 픽쳐에 대한 제1 컬러 공간에서의 대응하는 컬러 성분의 QP 값에 대한 오프셋으로서 시그널링될 수 있다. 몇몇 H.265/HEVC 구현예에서, 신택스 엘리먼트 pps_cb_qp_offset 및 pps_cr_qp_offset은, (제1 컬러 공간의 제1 컬러 성분에 대한) 픽쳐에 대한 초기 QP 값을 기준으로 하는, 제1 컬러 공간(YCbCr 컬러 공간이든 다른 컬러 공간이든)의 제2 및 제3 컬러 성분에 대한 오프셋을 나타낸다. 두 개의 추가적인 신택스 엘리먼트 pps_cb_qp_offset_cs2 및 pps_cr_qp_offset_cs2는, 제1 컬러 공간의 제2 및 제3 컬러 성분에 대한 QP 값을 기준으로 하는, 제2 컬러 공간(YCbCr 컬러 공간이든 다른 컬러 공간이든)의 제2 및 제3 컬러 성분에 대한 오프셋을 각각 나타낼 수 있다. 또는, 제2 컬러 공간의 제2 및 제3 컬러 성분에 대한 오프셋은, 제2 컬러 공간에 대한 픽쳐에 대한 초기 QP 값에 대한 오프셋으로서 시그널링될 수 있다. 예를 들면, 신택스 엘리먼트 pps_cb_qp_offset_cs2 및 pps_cr_qp_offset_cs2는, 제2 컬러 공간에 대한 픽쳐(및 제1 컬러 성분)에 대한 QP 값을 기준으로 하는, 제2 컬러 공간의 제2 및 제3 컬러 성분에 대한 오프셋을 나타낼 수 있다.
또는, (예를 들면, 슬라이스 헤더에서의) 슬라이스 레벨에서, 제2 컬러 공간에 대한 슬라이스의 제2 및 제3 컬러 성분에 대한 오프셋은, 슬라이스에 대한 제1 컬러 공간에서의 대응하는 컬러 성분의 QP 값에 대한 오프셋으로서 시그널링될 수 있다. 몇몇 H.265/HEVC 구현예에서, 신택스 엘리먼트 slice_cb_qp_offset 및 slice_cr_qp_offset은, (제1 컬러 공간의 제1 컬러 성분에 대한) 슬라이스에 대한 QP 값을 기준으로 하는, 제1 컬러 공간(YCbCr 컬러 공간이든 또는 다른 컬러 공간이든)의 제2 및 제3 컬러 성분에 대한 오프셋을 나타낸다. 두 개의 추가적인 신택스 엘리먼트 slice_cb_qp_offset_cs2 및 slice_cr_qp_offset_cs2는, 각각, 제1 컬러 공간의 제2 및 제3 컬러 성분에 대한 QP 값을 기준으로 하는, 제2 컬러 공간(YCbCr 컬러 공간이든 또는 다른 컬러 공간이든)의 제2 및 제3 컬러 성분에 대한 오프셋을 나타낼 수 있다. 또는, 제2 컬러 공간에 대한 슬라이스의 제2 및 제3 컬러 성분에 대한 오프셋은, 제2 컬러 공간에 대한 슬라이스의 제1 컬러 성분에 대한 QP 값에 대한 오프셋으로서 시그널링될 수 있다. 예를 들면, 신택스 엘리먼트 slice_cb_qp_offset_cs2 및 slice_cr_qp_offset_cs2는, 제2 컬러 공간에 대한 슬라이스의 제1 컬러 성분에 대한 QP 값을 기준으로 하는, 제2 컬러 공간의 제2 및 제3 컬러 성분에 대한 오프셋을 나타낼 수 있다.
이 방식에서, QP 값은 제1 컬러 공간에 대한 그리고 제2 컬러 공간에 대한 픽쳐 또는 슬라이스에 대해 시그널링된다. 인코더 또는 디코더가 단위 사이에서(예를 들면, 픽쳐의 블록 또는 슬라이스 사이에서, 또는 슬라이스의 블록 사이에서) 컬러 공간을 전환할 때, 인코더 또는 디코더는 적용할 적절한 QP 값을 갖는다. 대안적으로, 제2 컬러 공간의 컬러 성분에 대한 QP 값을 나타내는 신택스 엘리먼트는 어떤 다른 방식으로 시그널링된다.
E. 성분마다의 컬러 공간 조정 인자에 대한 QP 값에 대한 유도 규칙의 예.
제2 컬러 공간의 컬러 성분에 대해 상이한 QP 값을 시그널링하는 대신, 인코더 및 디코더는, 제2 컬러 공간의 아이덴티티에 의존하여, 제1 컬러 공간의 컬러 성분의 QP 값으로부터 시작하는 QP 값을 규칙에 따라 유도할 수 있다. 이 방식에서, 인코더 및 디코더는, 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해, 인코딩 및 디코딩 동안 사용되는 QP 값을 수정할 수 있다. 섹션 VII.C는, 제2 컬러 공간으로부터 다시 제1 컬러 공간으로 변환할 때 역 컬러 공간 변환 동작에 의존하여 QP 값 조정치를 결정하는 방식을 설명한다. 이들 방식 중 하나는, 제2 컬러 공간의 컬러 성분에 대한 QP 값 조정치를 나타내는 신택스 엘리먼트를 시그널링하지 않으면서, 인코더 및 디코더에 의해 자동적으로 적용될 수 있다.
인코더 및 디코더는, 제1 컬러 공간의 컬러 성분에 대한 QP 값이 다르게 결정된 이후, 제1 컬러 공간의 컬러 성분에 대한 최종 QP 값을 수정할 수 있다. 예를 들면, YCoCg 컬러 공간에서 인코딩된 블록의 경우, 인코더 및 디코더는 RGB 코딩된 블록에 대해 사용되는 최종 QP_RGB를, Y, Co 및 Cg 성분에 대한 QP 값에 대해 각각 -5, -3 및 -5만큼 조정할 수 있다. (-5, -3 및 -5의 조정 인자의 유도는 상기에서 설명되어 있다). 몇몇 H.265/HEVC 구현예에서, 변수 Qp'Y, Qp'Cb, 및 Qp'Cr은, YCbCr, RGB 또는 다른 제1 컬러 공간에 대한 제1, 제2 및 제3 컬러 성분에 대한 최종 QP 값을 나타낸다(변수명은 변할 수 있다). 인코딩을 위해 YCoCg 컬러 공간이 사용되면, Y, Co 및 Cg 컬러 성분에 대한 QP 값을 결정하기 위해, 최종 QP 값 Qp'Y, Qp'Cb, 및 Qp'Cr은 다음과 같이 조정된다: Qp'Y -= 5, Qp'Cb -= 3, and Qp'Cr -= 5. -5, -3, 및 -5 컬러 성분마다의 컬러 공간 조정치는 유도 규칙의 일부이다. 조정된 QP 값은 최소로 허용된 QP 값에서 클립될 수 있다.
다른 제2 컬러 공간의 경우, 최종 QP 값 Qp'Y, Qp'Cb, 및 Qp'Cr에 대한 조정치는, 역 컬러 공간 변환 동작에서 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭에 의존하여 마찬가지로 수정될 수 있다.
또는, 제1 컬러 공간에 대한 컬러 성분의 최종 QP 값을 수정하는 대신, 인코더 및 디코더는 제1 컬러 공간에 대한 컬러 성분 중 적어도 몇몇에 대한 중간 QP 값을 수정할 수 있다. 예를 들면, YCoCg 컬러 공간에서 인코딩된 블록의 경우, 인코더 및 디코더는 Co 및 Cg 성분에 대한 중간 QP 값을 각각 조정할 수 있다. 몇몇 H.265/HEVC 구현예에서, 변수 qPiCb 및 qPiCr은, YCbCr, RGB 또는 다른 제1 컬러 공간에 대한 제2 및 제3 컬러 성분에 대한 중간 QP 값을 나타내고(변수명은 변할 수 있다), 변수 QpY는 제1 컬러 공간에 대한 제1 컬러 성분에 대한 중간 QP 값을 나타낸다. YCoCg 컬러 공간이 인코딩을 위해 사용되면, Y, Co 및 Cg 컬러 성분에 대한 QP 값을 결정하기 위해, 최종 QP 값 Qp'Y 및 중간 QP 값 qPiCb 및 qPiCr는 다음과 같이 결정된다:
Figure pct00025
이들 식은, 제1 컬러 공간의 컬러 성분에 대한 QP 값(예를 들면, pps_cb_qp_offset, slice_cb_qp_offset, pps_cr_qp_offset, 및 slice_cr_qp_offset)을 나타내는 신택스 엘리먼트를 사용하지만, 컬러 성분마다의 컬러 공간 조정치를 나타내는 신택스 엘리먼트는 사용하지 않는다. 대신, -5, -3, 및 -5 컬러 성분마다의 컬러 공간 조정치는 유도 규칙의 일부이다. 조정된 QP 값은 최소로 허용된 QP 값에서 클립될 수 있다.
다른 제2 컬러 공간의 경우, 중간 QP 값에 대한 조정치는, 역 컬러 공간 변환 동작에서 그 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭에 의존하여 마찬가지로 수정될 수 있다.
규칙에 의해, 인코더 및 디코더는, 제1 컬러 공간의 컬러 성분에 대한 QP 값의 순서로, 제2 컬러 공간의 컬러 성분에게 수정된 QP 값을 할당할 수 있다. 또는, 규칙에 의해, 인코더 및 디코더는, 만약 있다면, 최저 수정된 QP 값을 제2 컬러 공간의 제1 컬러 성분(예를 들면, 최고 에너지 또는 정보 컨텐츠를 가질 것으로 예상되는 컬러 성분)에게 할당할 수 있고 제2 컬러 공간의 다른 컬러 성분에게 다른 수정된 QP 값을 할당할 수 있다.
F. 성분마다의 컬러 공간 조정 인자에 대한 스케일링 인자의 예.
역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해 QP 값을 수정하는 대신, 인코더 및 디코더는 변환 계수를 스케일링하는 프로세스를 수정할 수 있다.
예를 들면, 변환 계수에 적용될 스케일링 인자의 리스트가 수정될 수 있다. 주파수 특정 스케일링 인자 m[x][y]를 결정한 이후, 제2 컬러 공간이 사용되면, m[x][y]는, 자신의 변환 계수가 스케일링되고 있는 컬러 성분에 의존하여 수정될 수 있다. 변수 cIdx는 컬러 성분의 인덱스를 나타낸다. 예를 들어, 제1 컬러 공간이 RGB이고 제2 컬러 공간이 YCoCg이면, m[x][y]는 Y, Co 및 Cg 성분에 대한 1.78, 1.41 및 1.78의 성분 고유의 스케일링 인자에 의해 각각 수정될 수 있다. 1.78, 1.41 및 1.78의 성분 고유의 스케일링 인자는, 각각, 25/6, 23/6 및 25/6의 QSS 변경에 대응하며, 각각, -5, -3 및 -5의 QP 값 조정치에 대략적으로 대응한다. cIdx가 0 또는 2이면, m[x][y]*=1.78이다. 그렇지 않고, cIdx가 1이면, m[x][y]*=1.41이다. 대안적으로, 부동 소수점 연산을 사용하는 대신, m[x][y]는 정수 연산을 사용하여 수정될 수 있다.
다른 제2 컬러 공간의 경우, 성분 고유의 스케일링 인자는, 역 컬러 공간 변환 동작에서 그 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭에 의존하여 수정된다.
또는, m[x][y] 수정 없이, 인코더 및 디코더는, 스케일링 동작을 수행할 때, 제2 컬러 공간의 상이한 컬러 성분에 대해 성분 고유의 스케일링 인자를 별개로 고려할 수 있다. 예를 들면, 어레이 factor[cIdx]가, 제2 컬러 공간의 컬러 성분에 대한 성분 고유의 스케일링 인자를 저장한다. 예를 들어, 제2 컬러 공간이 YCoCg인 경우, factor[cIdx]는 {1.78, 1.41, 1.78}이다. 다른 제2 컬러 공간의 경우, 성분 고유의 스케일링 인자는, 역 컬러 공간 변환 동작에서 그 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭에 의존하여 수정된다. 어레이 TransCoeffLevel에서의 변환 계수는 다음과 같이 역 양자화되고 스케일링된다.
Figure pct00026
또는, 인코더 및 디코더는 정수 전용 연산을 사용하여 스케일링 동작을 수행할 수 있는데, 정수 전용 연산에서 factor1[cIdx] 및 factor2[cIdx]는, factor1[cIdx]/factor2[cIdx]가 factor[cIdx]에 근사하도록 정의되는 정수 값을 포함한다.
Figure pct00027
제2 컬러 공간의 컬러 성분에 대한 성분 고유의 스케일링 인자는, 비트스트림에서 시그널링될 수 있거나 또는 인코더 및 디코더에서 재구성 규칙을 사용하여 유도될 수 있다.
대안적으로, 인코더 및 디코더는, 상이한 컬러 공간에 대해 또는 상이한 컬러 공간의 상이한 컬러 성분에 대해 상이한 주파수 고유의 스케일링 인자 m[x][y] 및 m_cs2[x][y]를 사용할 수 있다. 상이한 컬러 공간/컬러 성분에 대한 주파수 고유의 스케일링 인자는, 비트스트림에서 시그널링될 수 있거나 또는 인코더 및 디코더에서 재구성 규칙을 사용하여 유도될 수 있다.
G. 추가적인 인코더측 변경의 예
양자화 또는 스케일링에 대한 변경과는 별개로, 인코더측 의사 결정 프로세스(decision-making process)는 QP 값 또는 스케일링에 대한 조정을 반영하도록 수정될 수 있다. 인코더는, 상이한 컬러 공간의 상이한 컬러 성분에 대해 사용되는 QP 값을 매치시키기 위해, 레이트-왜곡이 최적화된 양자화(rate-distortion-optimized quantization; "RDOQ")에서 사용되는 라그랑지안 승수(Lagrangian multiplier)(λ)를 수정할 수 있다. 예를 들면, QP 값이 1만큼 증가하면, 관련 라그랑지안 승수는 21/3만큼 증가된다: RDOQ의 경우 λ = λ*21/3이다. QP 값이 어떤 다른 양만큼 변하면, 라그랑지안 승수는 상응하여 증가되거나 감소된다. 따라서, R, G, 및 B 성분의 QP 값을 -5, -3 및 -5만큼 조정하는 것에 의해 Y, Co 및 Cg 성분에 대한 QP 값이 결정되면, RDOQ에 대한 대응하는 라그랑지안 승수는, 각각, λ_Y = λ_RGB*2-5/3, λ_Co = λ_RGB*2-3/3 및 λ_Cg = λ_RGB*2-5/3로 설정되는데, 여기서 λ_RGB는 RGB 컬러 공간에서의 RDOQ에 대한 라그랑지안 승수이다.
대안적으로, 인코더는, QP 값 변경 없이, 제2 컬러 공간에서 RDOQ에 대한 라그랑지안 승수를 수정할 수 있다.
다른 제2 컬러 공간의 경우, RDOQ에 대한 라그랑지안 승수는, QP 값 또는 스케일링에 대해 이루어지는 조정에 의존하여 마찬가지로 수정될 수 있다.
RDOQ와는 별개로, QP 값 또는 스케일링에 대해 이루어지는 조정에 의존하여 다른 레이트-왜곡 의사 결정 프로세스에 대한 라그랑지안 승수(λ)가 수정될 수 있다. 예를 들면, 제2 컬러 공간에서의 인코딩을 위한 코딩 모드 또는 옵션(예를 들면, 인트라 예측 방향) 사이의 결정시 레이트-왜곡 분석에서 사용되는 λ 값은, 제1 컬러 공간과 제2 컬러 공간 사이의 QP 값에서의 차이에 따라 수정될 수 있다. 인코더는, 제2 컬러 공간에 대한 수정된 λ 값에 의해 가중되는 레이트-왜곡 비용에 따라 최적의 모드 또는 옵션을 선택할 수 있다.
H. 인코더측 변화만을 갖는 대안적 방식
대안적으로, 인코더는, 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해 단위 기반으로 QP 값을 조정할 수 있다. 인코더는, 각각의 단위에 대한 QP 값을 특정하기 위한 현존하는 신택스 엘리먼트를 사용하여 단위 기반으로 QP 값을 설정한다. 시그널링된 신택스 엘리먼트로부터, 디코더는, QP 값에 대해 컬러 공간 조정을 행하지 않으면서, 각각의 단위에 대한 QP 값을 단위 기반으로 결정한다. 예를 들면, 제1 컬러 공간(예를 들면, RGB)에서 인코딩된 제1 단위의 경우, 인코더는 QP 값의 제1 세트를 사용하고 제1 단위에 대한 QP 값의 제1 세트를 나타내는 신택스 엘리먼트를 시그널링한다. 그 다음, 제2 컬러 공간(예를 들면, YCoCg)에서 인코딩된 제2 단위의 경우, 인코더는 QP 값의 제2 세트를 사용하고 제2 단위에 대한 QP 값의 제2 세트를 나타내는 신택스 엘리먼트를 시그널링한다. QP 값의 제2 세트는, 역 컬러 공간 변환 동작에서 양자화 에러의 에너지의 증폭을 보상하기 위해 상기에서 설명된 바와 같이 결정될 수 있다. 예를 들면, 제2 단위에 대한 QP 값은 Y, Co 및 Cg 성분에 대해 각각 -5, -3, 및 -5배만큼 조정된다. 다른 제2 컬러 공간의 경우, QP 값에 대해 이루어지는 조정은 상응하게 수정된다.
QP 값에 대한 조정은, 컬러 공간 전환이 CU 단위 기반으로 발생할 수 있을 때, CU 단위 기반으로 시그널링될 수 있다. 몇몇 H.265/HEVC 구현예에서, QP 값에 대한 오프셋은 상이한 CU에 대한 TU 레벨 신택스의 일부로서 시그널링된다. 예를 들면, 신택스 엘리먼트 cu_qp_delta_abs 및 cu_qp_delta_sign_flag는, RGB와 같은 제1 컬러 공간에서 코딩되는 제1 CU에 대한 제1 QP 오프셋을 나타내기 위해 사용될 수 있고, 신택스 엘리먼트 cu_qp_delta_abs 및 cu_qp_delta_sign_flag는 나중에, YCoCg와 같은 제2 컬러 공간에서 코딩되는 제2 CU에 대한 제2 QP 오프셋을 나타내기 위해 사용될 수 있다. 제2 컬러 공간에서의 컬러 성분마다의 QP 값은, 제2 및 제3 컬러 성분에 대한 다른 QP 오프셋 값을 사용하여 결정될 수 있다.
또는, QP 값에 대한 조정은, 컬러 공간 전환이 슬라이스 단위 기반으로 발생할 수 있을 때, 슬라이스 단위 기반으로 시그널링될 수 있다. 몇몇 H.265/HEVC 구현예에서, QP 값은, 주어진 슬라이스에 대한 QP 값을 나타내기 위해, slice_qp_delta, slice_cb_qp_offset 및 slice_cr_qp_offset 신택스 엘리먼트를 사용하여 슬라이스 헤더에서 설정될 수 있다. 예를 들면, 신택스 엘리먼트 slice_qp_delta, slice_cb_qp_offset 및 slice_cr_qp_offset은, RGB와 같은 제1 컬러 공간에서 코딩되는 제1 슬라이스에 대한 QP 값을 나타내기 위해 사용될 수 있고, 신택스 엘리먼트 slice_qp_delta, slice_cb_qp_offset 및 slice_cr_qp_offset은 나중에, YCoCg와 같은 제2 컬러 공간에서 코딩되는 제2 슬라이스에 대한 QP 값을 나타내기 위해 사용될 수 있다. 또는, QP 값에 대한 조정은, 컬러 공간 전환이 어떤 다른 단위 사이에서 발생할 수 있을 때, 이러한 단위 기반으로 시그널링될 수 있다.
I. 인코딩 또는 디코딩 동안 컬러 공간을 전환할 때 양자화/스케일링 또는 역 양자화/스케일링을 조정하는 예
도 12는, 인코딩 동안 컬러 공간을 전환할 때 양자화 또는 스케일링을 조정하기 위한 일반화된 기술(1200)을 도시하고, 도 13은, 단위 기반으로 컬러 공간을 전환할 때 양자화 또는 스케일링을 조정하기 위한 보다 상세한 예시적인 기술(1300)을 도시한다. 도 3 또는 도 5a 및 도 5b를 참조로 설명된 바와 같은 이미지 인코더 또는 비디오 인코더, 또는 다른 인코더가 기술(1200) 또는 기술(1300)을 수행할 수 있다.
도 14는, 디코딩 동안 컬러 공간을 전환할 때 역 양자화 또는 스케일링을 조정하기 위한 일반화된 기술(1400)을 도시하고, 도 15는, 단위 기반으로 컬러 공간을 전환할 때 역 양자화 또는 스케일링을 조정하기 위한 보다 상세한 예시적인 기술(1500)을 도시한다. 도 4 또는 도 6을 참조로 설명된 것과 같은 이미지 디코더 또는 비디오 디코더, 또는 다른 디코더가 기술(1400) 또는 기술(1500)을 수행할 수 있다.
도 12를 참조하면, 인코더는 이미지 또는 비디오(예를 들면, 픽쳐, 슬라이스, CU, 블록)의 단위를 인코딩하여(1210) 인코딩된 데이터를 생성한다. 인코딩의 일부로서, 단위 중 두 개의 단위 사이에서 제1 컬러 공간으로부터 제2 컬러 공간으로(예를 들면, RGB 타입 컬러 공간으로부터 YUV 타입 컬러 공간으로, 또는 YUV 타입 컬러 공간으로부터 RGB 타입 컬러 공간으로) 전환할 때, 인코더는, 성분마다의 컬러 공간 조정 인자(component color space adjustment factor)에 따라 제2 컬러 공간의 컬러 성분에 대한 양자화 또는 스케일링을 조정한다. 인코더는 인코딩된 데이터를 비트스트림의 일부로서 출력한다(1220).
도 13을 참조하면, 인코더는 제2 컬러 공간의 성분에 대한 QP 값 조정치 또는 스케일링 인자를 결정한다(1310). 예를 들면, 인코더는 본원에서 설명되는 방식 중 임의의 것을 사용하여 QP 값 조정치 또는 스케일링 인자를 결정한다. 인코더는 또한, 제1 컬러 공간의 성분에 대한 QP 값 및 스케일링 인자를 결정한다. 인코더는 비디오의 다음 단위(예를 들면, 픽쳐, 슬라이스, CU)를 획득하고(1320) 그 단위에 대한 컬러 공간을 설정한다(1330). 예를 들면, 인코더는 단위에 대해 RGB 타입 컬러 공간과 YUV 타입 컬러 공간(예컨대 YCoCg) 사이에서 선택한다. 그 다음, 인코더는 선택된 컬러 공간에 대한 적절한 QP 값 및 스케일링 인자를 사용하여 단위를 인코딩한다(1340). 인코더는, 단위에 대한 컬러 공간을 나타내는 하나 이상의 신호를 포함하는, 단위에 대한 인코딩된 데이터를 출력한다(1350). 인코더는, 다음 단위를 계속할지의 여부를 체크하고(1360), 다음 단위를 계속한다면, 다음 단위를 획득한다(1320).
도 14를 참조하면, 디코더는 인코딩된 데이터를 비트스트림의 일부로서 수신한다(1410). 디코더는 인코딩된 데이터를 디코딩하여(1420) 이미지 또는 비디오의 단위(예를 들면, 픽쳐, 슬라이스, CU, 블록)를 재구성한다. 디코딩의 일부로서, 단위 중 두 개의 단위 사이에서 제1 컬러 공간으로부터 제2 컬러 공간으로(예를 들면, RGB 타입 컬러 공간으로부터 YUV 타입 컬러 공간으로, 또는 YUV 타입 컬러 공간으로부터 RGB 타입 컬러 공간으로) 전환할 때, 디코더는, 성분마다의 컬러 공간 조정 인자에 따라 제2 컬러 공간의 컬러 성분에 대한 역 양자화 또는 스케일링을 조정한다.
도 15를 참조하면, 디코더는 제2 컬러 공간의 성분에 대한 QP 값 조정치 또는 스케일링 인자를 결정한다(1510). 예를 들면, 디코더는 본원에서 설명되는 방식 중 임의의 것을 사용하여 QP 값 조정치 또는 스케일링 인자를 결정한다. 디코더는 또한, 제1 컬러 공간의 성분에 대한 QP 값 및 스케일링 인자를 결정한다. 디코더는 비디오의 다음 단위(예를 들면, 픽쳐, 슬라이스, CU)에 대한 인코딩된 데이터를 획득하는데(1520), 인코딩된 데이터는, 그 단위에 대한 컬러 공간을 나타내는 하나 이상의 신호를 포함한다. 디코더는 단위에 대한 컬러 공간을 결정한다(1530). 예를 들면, 신호(들)에 기초하여, 디코더는 단위에 대해 RGB 타입 컬러 공간과 YUV 타입 컬러 공간(예컨대 YCoCg) 사이에서 선택한다. 디코더는 선택된 컬러 공간에 대한 적절한 QP 값 및 스케일링 인자를 사용하여 단위를 디코딩한다(1540). 디코더는, 다음 단위로 계속할지의 여부를 체크하고(1550), 다음 단위로 계속한다면, 다음 단위에 대한 인코딩된 데이터를 획득한다(1520).
일반적으로, 성분마다의 컬러 공간 조정 인자는, 제2 컬러 공간으로부터 다시 제1 컬러 공간으로 변환할 때 양자화 에러의 에너지의 증폭을 보상한다. 다르게는, 제1 컬러 공간으로부터의 스케일링 인자 및 QP 값이 제2 컬러 공간의 샘플 값에 단순히 적용되면, 제2 컬러 공간에서의 양자화 에러는, 다시 제1 컬러 공간으로의 역 컬러 공간 변환 동작에 의해 증폭된다.
도 12 내지 도 15에서 도시되는 예의 경우, 비트스트림의 하나 이상의 신택스 엘리먼트는 성분마다의 컬러 공간 조정 인자를 나타낼 수 있다. 신택스 엘리먼트(들)는, 픽쳐 레벨, 슬라이스 레벨, 코딩 단위 또는 블록에 대한 신택스 레벨, 또는 어떤 다른 신택스 레벨에서 시그널링될 수 있다. 신택스 엘리먼트(들)는, 제2 컬러 공간의 제1 컬러 성분에 대한 QP 값을 나타내는 신택스 엘리먼트뿐만 아니라, 제2 컬러 공간의 제2 및 제3 컬러 성분에 대한 오프셋을 나타내는 신택스 엘리먼트를 포함할 수 있다. 섹션 VII.D는, 제2 컬러 공간의 컬러 성분에 대한 QP 값을 시그널링하는 예를 설명한다.
비트스트림의 신택스 엘리먼트에 의해 나타내어지는 대신, 제2 컬러 공간의 컬러 성분에 대한 성분마다의 컬러 공간 조정 인자는, 제2 컬러 공간에 의존하는 규칙에 의해 유도될 수 있는데, 제1 컬러 공간의 컬러 성분의 QP 값에서부터 시작한다. 섹션 VII.E는, 제2 컬러 공간의 컬러 성분에 대한 QP 값에 대한 유도 규칙의 예를 설명한다.
양자화 또는 역 양자화를 조정하는 액트는, 제2 컬러 공간의 컬러 성분에 대한 QP 값을 결정하기 위해, 제1 컬러 공간에 대한 컬러 성분의 중간 QP 값 또는 최종 QP 값을 조정하는 것을 포함할 수 있다. 예를 들면, 제1 컬러 공간이 RGB이고 제2 컬러 공간이 YCoCg이면, 성분마다의 컬러 공간 조정 인자는 Y, Co 및 Cg 성분에 대해 각각 -5, -3 및 -5일 수 있다. 더 일반적으로는, 양자화 및 역 양자화에 대한 성분마다의 컬러 공간 조정 인자는, 역 컬러 공간 변환 동작에서 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭에 의존할 수 있다.
인코딩 또는 디코딩 동안의 조정된 스케일링은 성분마다의 컬러 공간 조정 인자를 사용하여 변환 계수를 스케일링하는 것을 포함할 수 있다. 스케일링은 정수 전용 연산(integer-only operation) 또는 부동 소수점 연산(floating point operation)을 사용할 수 있다. 성분마다의 컬러 공간 조정 인자는 주파수 고유의 스케일링 인자로 통합될 수 있거나 또는 별개로 적용될 수 있다. 예를 들면, 제1 컬러 공간이 RGB이고 제2 컬러 공간이 YCoCg이면, 성분 고유의 스케일링 인자는 Y, Co 및 Cg 성분에 대해 1.78, 1.41 및 1.78일 수 있다. 보다 일반적으로는, 스케일링에 대한 성분마다의 컬러 공간 조정 인자는, 역 컬러 공간 변환 동작에서 제2 컬러 공간의 각각의 컬러 성분에 대한 에너지 증폭에 의존할 수 있다. 추가 상세에 대해서는, 섹션 VIII.F를 참조하라.
또는, 디코딩 동안 대응하는 변경을 필요로 하지 않는 인코딩 동안의 변경의 경우, 인코더는 단위 기반으로 성분마다의 QP 값을 설정할 수 있다. 이 경우, 비트스트림은, 각각의 단위에 대한 성분마다의 QP 값을 나타내는 신택스 엘리먼트를 포함한다. 추가 상세에 대해서는, 섹션 VIII.H를 참조하라.
개시된 발명의 원칙이 적용될 수도 있는 많은 가능한 실시형태의 관점에서, 예시된 실시형태는 단지 본 발명의 바람직한 예에 불과하며 본 발명의 범위를 제한하는 것으로 간주되어선 안된다는 것이 인식되어야 한다. 대신, 본 발명의 범위는 하기의 특허청구범위에 의해 정의된다. 따라서, 이들 특허청구범위의 취지와 범위 내에 있는 모든 것을 본 발명으로서 주장한다.

Claims (27)

  1. 이미지 인코더 또는 비디오 인코더를 갖는 컴퓨팅 디바이스에서의 방법에 있어서,
    인코딩된 데이터를 생성하기 위하여 이미지 또는 비디오의 단위(unit)를 인코딩하는 단계 ― 상기 인코딩하는 단계는, 상기 단위 중 두 개의 단위 사이에서 제1 컬러 공간으로부터 제2 컬러 공간으로 전환할 때, 상기 제2 컬러 공간의 컬러 성분에 대한 양자화 또는 스케일링을, 성분마다의 컬러 공간 조정 인자(per component color space adjustment factor)에 따라 조정하는 단계를 포함함 ― ; 및
    상기 인코딩된 데이터를 비트스트림의 일부로서 출력하는 단계
    를 포함하는, 컴퓨팅 디바이스에서의 방법.
  2. 이미지 디코더 또는 비디오 디코더를 갖는 컴퓨팅 디바이스에서의 방법에 있어서,
    인코딩된 데이터를 비트스트림의 일부로서 수신하는 단계; 및
    이미지 또는 비디오의 단위를 재구성하기 위하여 상기 인코딩된 데이터를 디코딩하는 단계
    를 포함하며,
    상기 디코딩하는 단계는, 상기 단위 중 두 개의 단위 사이에서 제1 컬러 공간으로부터 제2 컬러 공간으로 전환할 때, 상기 제2 컬러 공간의 컬러 성분에 대한 역 양자화 또는 스케일링을, 성분마다의 컬러 공간 조정 인자에 따라 조정하는 단계를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 단위는 픽쳐인 것인, 컴퓨팅 디바이스에서의 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 단위는 슬라이스인 것인, 컴퓨팅 디바이스에서의 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 단위는 코딩 단위 또는 블록인 것인, 컴퓨팅 디바이스에서의 방법.
  6. 제1항 또는 제2항에 있어서,
    상기 비트스트림은, 상기 성분마다의 컬러 공간 조정 인자를 나타내는 하나 이상의 신택스 엘리먼트를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  7. 제6항에 있어서,
    상기 하나 이상의 신택스 엘리먼트는 픽쳐 레벨에서 시그널링되고, 상기 하나 이상의 신택스 엘리먼트는, (a) 상기 제2 컬러 공간의 제1 컬러 성분에 대한 초기 양자화 파라미터 값 또는 (b) 상기 제1 컬러 공간에 대한 초기 양자화 파라미터 값을 기준으로 하는, 상기 제2 컬러 공간의 상기 제1 컬러 성분에 관한 오프셋을 나타내는 신택스 엘리먼트를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  8. 제6항에 있어서,
    상기 하나 이상의 신택스 엘리먼트는 슬라이스 레벨에서 시그널링되고, 상기 하나 이상의 신택스 엘리먼트는, (a) 픽쳐에 대한 초기 양자화 파라미터 값, 또는 (b) 상기 제1 컬러 공간에 대한 양자화 파라미터 값을 기준으로 하는, 상기 제2 컬러 공간의 제1 컬러 성분에 대한 오프셋을 나타내는 신택스 엘리먼트를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  9. 제7항 또는 제8항에 있어서,
    상기 하나 이상의 신택스 엘리먼트는, 상기 제1 컬러 공간의 제2 및 제3 컬러 성분에 대한 양자화 파라미터 값에 관한, 상기 제2 컬러 공간의 제2 및 제3 컬러 성분에 대한 오프셋을 나타내는 신택스 엘리먼트를 더 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  10. 제7항 또는 제8항에 있어서,
    상기 하나 이상의 신택스 엘리먼트는, 상기 제2 컬러 공간의 상기 제1 컬러 성분에 대한 양자화 파라미터 값에 관한, 상기 제2 컬러 공간의 제2 및 제3 컬러 성분에 대한 오프셋을 나타내는 신택스 엘리먼트를 더 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  11. 제6항에 있어서,
    상기 하나 이상의 신택스 엘리먼트는 코딩 단위 또는 블록의 신택스 레벨에서 시그널링되고, 상기 하나 이상의 신택스 엘리먼트는, 상기 제2 컬러 공간의 상기 컬러 성분에 대한 오프셋을 나타내는 신택스 엘리먼트를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  12. 제1항 또는 제2항에 있어서,
    상기 성분마다의 컬러 공간 조정 인자는, 상기 제2 컬러 공간의 상기 컬러 성분에 대한 상기 성분마다의 컬러 공간 조정 인자를 나타내는 신택스 엘리먼트의 시그널링 없이, 상기 제2 컬러 공간에 의존하는 규칙에 의해 유도되는 것인, 컴퓨팅 디바이스에서의 방법.
  13. 제1항 또는 제2항에 있어서,
    상기 조정하는 단계는, 상기 제2 컬러 공간의 상기 컬러 성분에 대한 최종 양자화 파라미터 값을 조정하는 단계를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  14. 제1항 또는 제2항에 있어서,
    상기 조정하는 단계는, 상기 제2 컬러 공간의 상기 컬러 성분에 대한 중간 양자화 파라미터 값을 조정하는 단계를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  15. 제13항 또는 제14항에 있어서,
    상기 제1 컬러 공간은 RGB이고 상기 제2 컬러 공간은 YCoCg이고, 상기 성분마다의 컬러 공간 조정 인자는 Y, Co 및 Cg 성분에 대해 -5, -3 및 -5인 것인, 컴퓨팅 디바이스에서의 방법.
  16. 제1항 또는 제2항에 있어서,
    상기 조정하는 단계는, 상기 성분마다의 컬러 공간 조정 인자를 사용하여 변환 계수를 스케일링하는 단계를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  17. 제16항에 있어서,
    상기 스케일링은 정수 전용 연산(integer-only operation)을 사용하는 것인, 컴퓨팅 디바이스에서의 방법.
  18. 제16항에 있어서,
    상기 제1 컬러 공간은 RGB이고 상기 제2 컬러 공간은 YCoCg이고, 상기 성분마다의 컬러 공간 조정 인자는 Y, Co 및 Cg 성분에 대해 대략적으로 1.78, 1.41 및1.78인 것인, 컴퓨팅 디바이스에서의 방법.
  19. 제1항 또는 제2항에 있어서,
    상기 조정하는 단계는, 상기 제2 컬러 공간의 상이한 컬러 성분에 대해 상이한 스케일링 리스트를 적용하는 단계를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  20. 제1항 내지 제19항 중 어느 한 항에 있어서,
    상기 성분마다의 컬러 공간 조정 인자는, 역 컬러 공간 변환 동작에서 상기 제2 컬러 공간의 상기 각각의 컬러 성분에 대한 에너지 증폭에 의존하는 것인, 컴퓨팅 디바이스에서의 방법.
  21. 제1항 내지 제19항 중 어느 한 항에 있어서,
    상기 성분마다의 컬러 공간 조정 인자는, 상기 제2 컬러 공간으로부터 다시 상기 제1 컬러 공간으로 변환될 때 양자화 에러의 에너지의 증폭을 보상하는 것인, 컴퓨팅 디바이스에서의 방법.
  22. 제1항에 있어서,
    상기 조정하는 단계는, 성분마다의 양자화 파라미터 값(per component quantization parameter value)을 단위 기반으로 설정하는 단계를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  23. 제22항에 있어서,
    상기 비트스트림은, 상기 각각의 단위에 대한 상기 성분마다의 양자화 파라미터 값을 나타내는 신택스 엘리먼트를 포함하는 것인, 컴퓨팅 디바이스에서의 방법.
  24. 제1항 내지 제14항, 제16항, 제17항, 또는 제19항 내지 제23항 중 어느 한 항에 있어서,
    상기 제1 컬러 공간은 RGB 타입 컬러 공간이고 상기 제2 컬러 공간은 YUV 타입 컬러 공간인 것인, 컴퓨팅 디바이스에서의 방법.
  25. 제1항 내지 제14항, 제16항, 제17항, 또는 제19항 내지 제23항 중 어느 한 항에 있어서,
    상기 제1 컬러 공간은 YUV 타입 컬러 공간이고 상기 제2 컬러 공간은 RGB 타입 컬러 공간인 것인, 컴퓨팅 디바이스에서의 방법.
  26. 제1항 내지 제25항 중 어느 한 항의 방법을 수행하도록 적응되는, 컴퓨팅 디바이스
  27. 컴퓨터 실행가능 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 저장 매체에 있어서,
    상기 컴퓨터 실행가능 명령어는, 상기 컴퓨터 실행가능 명령어에 의해 프로그래밍된 컴퓨팅 디바이스로 하여금 제1항 내지 제25항 중 어느 한 항의 방법을 수행하게 하는 것인, 하나 이상의 컴퓨터 판독가능 저장 매체.
KR1020167029796A 2014-03-27 2014-03-27 컬러 공간 전환시의 양자화/스케일링 및 역 양자화/스케일링의 조정 KR102216600B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/074197 WO2015143671A1 (en) 2014-03-27 2014-03-27 Adjusting quantization/scaling and inverse quantization/scaling when switching color spaces

Publications (2)

Publication Number Publication Date
KR20160138214A true KR20160138214A (ko) 2016-12-02
KR102216600B1 KR102216600B1 (ko) 2021-02-16

Family

ID=54193909

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167029796A KR102216600B1 (ko) 2014-03-27 2014-03-27 컬러 공간 전환시의 양자화/스케일링 및 역 양자화/스케일링의 조정

Country Status (11)

Country Link
US (5) US10116937B2 (ko)
EP (1) EP3123716B1 (ko)
JP (1) JP6367359B2 (ko)
KR (1) KR102216600B1 (ko)
CN (1) CN105432077B (ko)
AU (1) AU2014388185B2 (ko)
BR (2) BR112016021529B1 (ko)
CA (1) CA2940015C (ko)
MX (1) MX2016012636A (ko)
RU (1) RU2648276C1 (ko)
WO (1) WO2015143671A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023171940A1 (ko) * 2022-03-08 2023-09-14 현대자동차주식회사 적응적 크로마컨버전을 이용하는 비디오 코딩을 위한 방법과 장치

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2939434C (en) 2014-03-04 2021-02-16 Microsoft Techology Licensing, Llc Adaptive switching of color spaces, color sampling rates and/or bit depths
CN105264888B (zh) 2014-03-04 2018-09-14 微软技术许可有限责任公司 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略
BR112016021529B1 (pt) 2014-03-27 2023-02-28 Microsoft Technology Licensing, Llc Dispositivo de computação, método e meio legível por computador para ajuste de quantização/escalada e quantização/escalada inversa ao alternar áreas de cor
US10142642B2 (en) 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
MX2017004088A (es) 2014-10-03 2017-07-07 Nec Corp Dispositivo de codificacion de video, dispositivo de descodificacion de video, metodo de codificacion de video, metodo de descodificacion de video y programa.
WO2016056977A1 (en) * 2014-10-06 2016-04-14 Telefonaktiebolaget L M Ericsson (Publ) Coding and deriving quantization parameters
US10687069B2 (en) 2014-10-08 2020-06-16 Microsoft Technology Licensing, Llc Adjustments to encoding and decoding when switching color spaces
CN107211128B (zh) 2015-03-10 2021-02-09 苹果公司 自适应色度下采样和色彩空间转换技术
RU2680197C1 (ru) * 2015-06-05 2019-02-18 Телефонактиеболагет Лм Эрикссон (Пабл) Кодирование пикселя входной видеопоследовательности
US10623779B2 (en) * 2015-10-26 2020-04-14 Samsung Electronics Co., Ltd. Method for processing image using dynamic range of color component, and device therefor
FR3044196B1 (fr) * 2015-11-20 2019-05-10 Thales Methode de compression d'images permettant d'obtenir une qualite de compression fixe
KR20180104761A (ko) * 2016-02-12 2018-09-21 인튜어티브 서지컬 오퍼레이션즈 인코포레이티드 가상 원색들을 사용한 수술 디스플레이 기술들의 매칭
US10387099B2 (en) * 2016-07-28 2019-08-20 Intelligent Waves Llc System, method and computer program product for generating remote views in a virtual mobile device platform using efficient color space conversion and frame encoding
KR102597231B1 (ko) * 2016-09-30 2023-11-03 삼성디스플레이 주식회사 영상 처리 장치, 표시 장치 및 두부 장착 표시 장치
US20210297680A1 (en) * 2016-10-12 2021-09-23 Telefonaktiebolaget Lm Ericsson (Publ) Residual refinement of color components
US11019339B2 (en) * 2017-07-12 2021-05-25 Futurewei Technologies, Inc. Fractional quantization parameter offset in video compression
US10939116B2 (en) 2019-02-26 2021-03-02 Raritan Americas, Inc. Adaptive variation of chroma subsampling in image compression
KR20220013938A (ko) 2019-05-31 2022-02-04 바이트댄스 아이엔씨 인트라 블록 복사 예측을 갖는 팔레트 모드
WO2020253864A1 (en) 2019-06-21 2020-12-24 Beijing Bytedance Network Technology Co., Ltd. Selective enablement of adaptive in-loop color-space transform in video coding
BR112021025916A2 (pt) 2019-06-28 2022-02-15 Bytedance Inc Método de processamento de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento e meio de gravação não transitórios legíveis por computador
KR102612765B1 (ko) 2019-06-28 2023-12-13 바이트댄스 아이엔씨 변환 스킵 모드에서 양자화 파라미터를 수정하는 기술
CN114270838B (zh) 2019-08-20 2024-04-12 北京字节跳动网络技术有限公司 变换跳过模式的信令通知
CN110719484B (zh) * 2019-09-17 2020-08-04 广州魅视电子科技有限公司 图像处理方法
WO2021052490A1 (en) 2019-09-19 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Scaling window in video coding
US11323711B2 (en) * 2019-09-20 2022-05-03 Alibaba Group Holding Limited Method and system for signaling chroma quantization parameter offset
US11412235B2 (en) * 2019-10-10 2022-08-09 Tencent America LLC Color transform for video coding
WO2021072379A1 (en) * 2019-10-11 2021-04-15 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding in 4:4:4 chroma format
WO2021086023A1 (ko) * 2019-10-28 2021-05-06 엘지전자 주식회사 적응적 변환을 이용하여 레지듀얼 처리를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021088951A1 (en) 2019-11-07 2021-05-14 Beijing Bytedance Network Technology Co., Ltd. Quantization properties of adaptive in-loop color-space transform for video coding
CN113132728B (zh) * 2019-12-31 2023-06-27 上海海思技术有限公司 编码方法及编码器
CN117939152A (zh) * 2020-01-05 2024-04-26 北京达佳互联信息技术有限公司 一种视频编码的方法、装置和介质
EP4087241A4 (en) 2020-04-08 2023-05-17 Nippon Hoso Kyokai CODING DEVICE, DECODING DEVICE AND PROGRAM
US11616983B2 (en) 2020-05-05 2023-03-28 Tencent America LLC Joint component secondary transform
US11310529B2 (en) * 2020-05-27 2022-04-19 Tencent America LLC Mode-dependent joint component transform
US20210400257A1 (en) * 2020-06-18 2021-12-23 Lg Electronics Inc. Image encoding/decoding method and apparatus for signaling high level information for tool control based on colour representation format, and computer-readable recording medium strong bitstream
WO2022071847A1 (en) * 2020-09-29 2022-04-07 Telefonaktiebolaget Lm Ericsson (Publ) Filter strength control for adaptive loop filtering

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259730A1 (en) * 2004-05-18 2005-11-24 Sharp Laboratories Of America, Inc. Video coding with residual color conversion using reversible YCoCg

Family Cites Families (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3238704A (en) 1963-03-07 1966-03-08 Engelhard Ind Inc Diffusion purification of gases
US5386496A (en) * 1991-02-15 1995-01-31 Toyo Ink Mfg. Co., Ltd. Method and device for nonlinear transformation of colour information by neural network
DE69229112T2 (de) * 1992-07-20 1999-10-14 Oce Tech Bv Verfahren zur Wiedergabe von Text auf einem Rasterausgangsgerät
JP3284829B2 (ja) 1995-06-15 2002-05-20 ミノルタ株式会社 画像処理装置
US5805228A (en) 1996-08-09 1998-09-08 U.S. Robotics Access Corp. Video encoder/decoder system
US6319306B1 (en) 2000-03-23 2001-11-20 Idatech, Llc Hydrogen-selective metal membrane modules and method of forming the same
JPH1155538A (ja) * 1997-08-01 1999-02-26 Fujitsu Ltd カラー画像情報処理システム、カラー画像情報入力装置及びカラー画像出力装置
JPH11164152A (ja) 1997-11-26 1999-06-18 Ricoh Co Ltd カラー画像データ圧縮装置
US6262812B1 (en) * 1998-04-30 2001-07-17 Xerox Corporation Method and apparatus for object-oriented adjustment of color attributes in a perceptually uniform manner
US7129860B2 (en) 1999-01-29 2006-10-31 Quickshift, Inc. System and method for performing scalable embedded parallel data decompression
JP3725454B2 (ja) 2001-01-17 2005-12-14 セイコーエプソン株式会社 画像ファイルの出力画像調整
US8374237B2 (en) 2001-03-02 2013-02-12 Dolby Laboratories Licensing Corporation High precision encoding and decoding of video images
US6975680B2 (en) 2001-07-12 2005-12-13 Dolby Laboratories, Inc. Macroblock mode decision biasing for video compression systems
JP3902968B2 (ja) * 2002-03-26 2007-04-11 キヤノン株式会社 画像処理装置及びその制御方法及びコンピュータプログラム及び記憶媒体
US7155065B1 (en) 2002-03-27 2006-12-26 Microsoft Corporation System and method for progressively transforming and coding digital data
US6961736B1 (en) 2002-05-31 2005-11-01 Adobe Systems Incorporated Compact color feature vector representation
JP4617644B2 (ja) 2003-07-18 2011-01-26 ソニー株式会社 符号化装置及び方法
WO2005034092A2 (en) 2003-09-29 2005-04-14 Handheld Entertainment, Inc. Method and apparatus for coding information
US7308135B2 (en) * 2004-01-14 2007-12-11 Eastman Kodak Company Constructing extended color gamut digital images from limited color gamut digital images
US7428332B2 (en) * 2004-01-14 2008-09-23 Spaulding Kevin E Applying an adjusted image enhancement algorithm to a digital image
KR100518849B1 (ko) 2004-03-02 2005-09-30 엘지전자 주식회사 영상 압축 및 복원 방법
US7209145B2 (en) * 2004-04-02 2007-04-24 Xerox Corporation Color device profile having a buffered look-up table
US7689051B2 (en) 2004-04-15 2010-03-30 Microsoft Corporation Predictive lossless coding of images and video
KR100601867B1 (ko) 2004-06-11 2006-07-19 삼성전자주식회사 벡터 스트레칭을 이용한 색역 매핑 장치 및 방법
US7454055B1 (en) * 2004-11-12 2008-11-18 Payton Paul M Enhanced image compression utilizing Hilbert curve scanning of quantized discrete cosine transform coefficients
TWI257074B (en) * 2005-02-22 2006-06-21 Sunplus Technology Co Ltd Motion estimation method and system using colors information
KR100723403B1 (ko) 2005-02-28 2007-05-30 삼성전자주식회사 컬러 성분간 단일 부호화 모드를 이용한 예측영상 생성 방법 및 장치와, 그를 이용한 영상 및 비디오 부호화/복호화방법 및 장치
KR100763178B1 (ko) 2005-03-04 2007-10-04 삼성전자주식회사 색 공간 스케일러블 비디오 코딩 및 디코딩 방법, 이를위한 장치
US7792370B2 (en) 2005-03-18 2010-09-07 Sharp Laboratories Of America, Inc. Residual color transform for 4:2:0 RGB format
US20060210156A1 (en) 2005-03-18 2006-09-21 Sharp Laboratories Of America, Inc. Video compression for raw rgb format using residual color transform
KR101246915B1 (ko) 2005-04-18 2013-03-25 삼성전자주식회사 동영상 부호화 또는 복호화 방법 및 장치
JP2006340012A (ja) * 2005-06-01 2006-12-14 Konica Minolta Medical & Graphic Inc 色調整方法
US7706607B2 (en) * 2005-06-23 2010-04-27 Microsoft Corporation Optimized color image encoding and decoding using color space parameter data
KR101204801B1 (ko) 2005-07-15 2012-11-26 삼성전자주식회사 색상계에 적응적인 화소값 보정 방법 및 장치, 그를 이용항영상 부호화/복호화 방법 및 장치
CN100425066C (zh) 2005-09-23 2008-10-08 逐点半导体(上海)有限公司 图像压缩的方法
CN101346984B (zh) 2005-12-21 2012-12-26 汤姆森特许公司 用于显示彩色图像的方法以及用于图像的色彩显示装置
EP1977602B1 (en) 2006-01-13 2013-03-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Picture coding using adaptive colour space transformation
CN101356825B (zh) 2006-01-13 2013-06-12 弗劳恩霍夫应用研究促进协会 使用自适应色彩空间变换的画面编码
CN101742306A (zh) 2006-01-23 2010-06-16 马普科技促进协会 高动态范围编解码器
US8243340B2 (en) 2006-02-23 2012-08-14 Microsoft Corporation Pre-processing of image data for enhanced compression
WO2007116551A1 (ja) 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
CN101110963B (zh) 2006-07-21 2010-05-12 帆宣系统科技股份有限公司 图像调整装置
CN100502507C (zh) 2006-09-14 2009-06-17 浙江大学 视频数据压缩编码方法
KR101267178B1 (ko) 2006-09-30 2013-05-24 톰슨 라이센싱 비디오에 대하여 색 인핸스먼트 계층을 인코딩 및 디코딩하기 위한 방법 및 디바이스
KR100843095B1 (ko) 2006-12-13 2008-07-03 삼성전자주식회사 선호색 재현 장치 및 방법
US8055070B2 (en) 2007-01-05 2011-11-08 Geo Semiconductor Inc. Color and geometry distortion correction system and method
KR20080067226A (ko) 2007-01-15 2008-07-18 주식회사 대우일렉트로닉스 칼라 스페이스 컨버터의 rgb 출력 편차 제거 방법
WO2008127072A1 (en) * 2007-04-16 2008-10-23 Electronics And Telecommunications Research Institute Color video scalability encoding and decoding method and device thereof
TW200845723A (en) * 2007-04-23 2008-11-16 Thomson Licensing Method and apparatus for encoding video data, method and apparatus for decoding encoded video data and encoded video signal
CN101076125B (zh) 2007-06-18 2010-07-28 山东经济学院 图像压缩中RGB与YCbCr转换计算的方法
US8422803B2 (en) 2007-06-28 2013-04-16 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
WO2009016914A1 (ja) 2007-08-02 2009-02-05 Sony Corporation 画像処理装置
US8189243B1 (en) 2007-11-13 2012-05-29 Adobe Systems Incorporated Color calibration for digital imaging devices
CN101163252B (zh) 2007-11-27 2011-10-26 中国科学院计算技术研究所 一种多媒体视频图像的缩放方法
KR101213704B1 (ko) 2007-12-05 2012-12-18 삼성전자주식회사 가변 컬러 포맷 기반 동영상 부호화 방법 및 장치, 그복호화 방법 및 장치
US8750390B2 (en) 2008-01-10 2014-06-10 Microsoft Corporation Filtering and dithering as pre-processing before encoding
US8369638B2 (en) 2008-05-27 2013-02-05 Microsoft Corporation Reducing DC leakage in HD photo transform
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
EP2144432A1 (en) 2008-07-08 2010-01-13 Panasonic Corporation Adaptive color format conversion and deconversion
US20100027973A1 (en) 2008-07-29 2010-02-04 Chia-Yun Cheng Image processing circuit and method capable of performing online color space conversion
US8279924B2 (en) * 2008-10-03 2012-10-02 Qualcomm Incorporated Quantization parameter selections for encoding of chroma and luma video blocks
US8451896B2 (en) 2009-10-19 2013-05-28 Hong Kong Applied Science and Technology Research Institute Company Limited Method and apparatus for adaptive quantization in digital video coding
JP5227987B2 (ja) 2010-03-10 2013-07-03 日本放送協会 符号化装置、復号装置及びプログラム
CN102223525B (zh) 2010-04-13 2014-02-19 富士通株式会社 视频解码方法和系统
JP5073004B2 (ja) 2010-04-23 2012-11-14 株式会社東芝 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
US9872019B2 (en) 2010-07-20 2018-01-16 Sk Telecom Co., Ltd. Method and device for deblocking-filtering, and method and device for encoding and decoding using same
US20120026394A1 (en) 2010-07-30 2012-02-02 Emi Maruyama Video Decoder, Decoding Method, and Video Encoder
US8860785B2 (en) 2010-12-17 2014-10-14 Microsoft Corporation Stereo 3D video support in computing devices
WO2012122425A1 (en) 2011-03-10 2012-09-13 Dolby Laboratories Licensing Corporation Bitdepth and color scalable video coding
WO2012122426A1 (en) 2011-03-10 2012-09-13 Dolby Laboratories Licensing Corporation Reference processing for bitdepth and color format scalable video coding
JP2012217137A (ja) 2011-03-31 2012-11-08 Sony Corp 画像処理装置、画像処理方法、画像処理プログラム
US9167247B2 (en) 2011-05-20 2015-10-20 Panasonic Intellectual Property Corporation Of America Methods and apparatuses for encoding and decoding video using inter-color-plane prediction
US9185424B2 (en) 2011-07-05 2015-11-10 Qualcomm Incorporated Image data compression
WO2013006986A1 (en) 2011-07-12 2013-01-17 Intel Corporation Luma-based chroma intra prediction
CN103748877B (zh) 2011-08-17 2017-05-10 联发科技(新加坡)私人有限公司 帧内预测方法和装置
US8804816B2 (en) 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
US20130083855A1 (en) 2011-09-30 2013-04-04 Dane P. Kottke Adaptive color space selection for high quality video compression
US9807403B2 (en) 2011-10-21 2017-10-31 Qualcomm Incorporated Adaptive loop filtering for chroma components
JP2014534746A (ja) 2011-11-07 2014-12-18 インテル コーポレイション クロスチャネル残差予測
KR20130058524A (ko) * 2011-11-25 2013-06-04 오수미 색차 인트라 예측 블록 생성 방법
CN102761738B (zh) 2011-12-05 2017-11-24 同济大学 基于混合色度采样率的图像压缩方法和装置
WO2013106190A1 (en) 2012-01-09 2013-07-18 Dolby Laboratories Licensing Corporation Hybrid reference picture reconstruction method for single and multiple layered video coding systems
US9438904B2 (en) 2012-01-19 2016-09-06 Futurewei Technologies, Inc. Reduced look-up table for LM mode calculation
CN106131561B (zh) 2012-01-20 2019-10-18 维洛媒体国际有限公司 解码装置和解码方法
JP5901362B2 (ja) 2012-03-08 2016-04-06 日本放送協会 色変換装置、カラーサブサンプリング装置およびこれらのプログラム
JP5624576B2 (ja) * 2012-03-14 2014-11-12 株式会社東芝 画像圧縮コントローラ及び画像圧縮装置
US9451258B2 (en) * 2012-04-03 2016-09-20 Qualcomm Incorporated Chroma slice-level QP offset and deblocking
US10085024B2 (en) 2012-04-13 2018-09-25 Qualcomm Incorporated Lookup table for rate distortion optimized quantization
JP5909149B2 (ja) 2012-05-15 2016-04-26 日本放送協会 色変換装置、符号化器および復号器ならびにそれらのプログラム
GB2503875B (en) 2012-06-29 2015-06-10 Canon Kk Method and device for encoding or decoding an image
US9414054B2 (en) 2012-07-02 2016-08-09 Microsoft Technology Licensing, Llc Control and use of chroma quantization parameter values
US8897580B2 (en) 2012-07-30 2014-11-25 Apple Inc. Error diffusion with color conversion and encoding
US11240515B2 (en) 2012-09-10 2022-02-01 Apple Inc. Video display preference filtering
WO2014045506A1 (en) 2012-09-24 2014-03-27 Sharp Kabushiki Kaisha Video compression with color space scalability
US9451250B2 (en) 2012-10-03 2016-09-20 Broadcom Corporation Bounded rate compression with rate control for slices
CN104937935A (zh) * 2012-11-16 2015-09-23 Vid拓展公司 用于视觉条件意识视频编码的感知预处理滤波器
CN103096092B (zh) 2013-02-07 2015-12-02 上海国茂数字技术有限公司 基于颜色空间变换进行编解码误差修正的方法和系统
JP6033725B2 (ja) * 2013-03-28 2016-11-30 Kddi株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、およびプログラム
WO2014162736A1 (en) 2013-04-05 2014-10-09 Sharp Kabushiki Kaisha Video compression with color bit depth scaling
US9225988B2 (en) 2013-05-30 2015-12-29 Apple Inc. Adaptive color space transform coding
US9225991B2 (en) * 2013-05-30 2015-12-29 Apple Inc. Adaptive color space transform coding
US9300967B2 (en) * 2013-06-19 2016-03-29 Apple Inc. Sample adaptive offset control
US20140376611A1 (en) 2013-06-21 2014-12-25 Qualcomm Incorporated Adaptive color transforms for video coding
US9294766B2 (en) * 2013-09-09 2016-03-22 Apple Inc. Chroma quantization in video coding
EP2887672A1 (en) 2013-12-17 2015-06-24 Thomson Licensing Method for coding a sequence of pictures and method for decoding a bitstream and corresponding devices
CN105264888B (zh) 2014-03-04 2018-09-14 微软技术许可有限责任公司 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略
CA2939434C (en) 2014-03-04 2021-02-16 Microsoft Techology Licensing, Llc Adaptive switching of color spaces, color sampling rates and/or bit depths
US9948933B2 (en) 2014-03-14 2018-04-17 Qualcomm Incorporated Block adaptive color-space conversion coding
BR112016021529B1 (pt) 2014-03-27 2023-02-28 Microsoft Technology Licensing, Llc Dispositivo de computação, método e meio legível por computador para ajuste de quantização/escalada e quantização/escalada inversa ao alternar áreas de cor
US10142642B2 (en) 2014-06-04 2018-11-27 Qualcomm Incorporated Block adaptive color-space conversion coding
US9924175B2 (en) 2014-06-11 2018-03-20 Qualcomm Incorporated Determining application of deblocking filtering to palette coded blocks in video coding
US20150373327A1 (en) 2014-06-20 2015-12-24 Qualcomm Incorporated Block adaptive color-space conversion coding
US10687069B2 (en) 2014-10-08 2020-06-16 Microsoft Technology Licensing, Llc Adjustments to encoding and decoding when switching color spaces
US10290119B2 (en) 2016-09-15 2019-05-14 Sportsmedia Technology Corporation Multi view camera registration

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050259730A1 (en) * 2004-05-18 2005-11-24 Sharp Laboratories Of America, Inc. Video coding with residual color conversion using reversible YCoCg

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
B. Li, et al. Fix for adaptive color space coding in JCTVC-Q0035. JCT-VC of ITU-T and ISO/IEC. JCTVC-Q0213 Ver.1, Mar. 26, 2014, pp.1-3 *
J. Chen, et al. Description of screen content coding technology proposal by Qualcomm. JCT-VC of ITU-T and ISO/IEC. JCTVC-Q0031 Ver.3, Mar. 28, 2014, pp.1-19 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023171940A1 (ko) * 2022-03-08 2023-09-14 현대자동차주식회사 적응적 크로마컨버전을 이용하는 비디오 코딩을 위한 방법과 장치

Also Published As

Publication number Publication date
JP6367359B2 (ja) 2018-08-01
BR112016021529B1 (pt) 2023-02-28
CA2940015A1 (en) 2015-10-01
BR112016021529A8 (pt) 2021-07-06
EP3123716B1 (en) 2020-10-28
US11943440B2 (en) 2024-03-26
BR122022001585B1 (pt) 2023-05-16
AU2014388185A1 (en) 2016-09-08
MX2016012636A (es) 2016-12-14
US10116937B2 (en) 2018-10-30
US10567769B2 (en) 2020-02-18
US10939110B2 (en) 2021-03-02
CN105432077A (zh) 2016-03-23
WO2015143671A1 (en) 2015-10-01
JP2017513386A (ja) 2017-05-25
CN105432077B (zh) 2017-12-29
US20190098308A1 (en) 2019-03-28
EP3123716A1 (en) 2017-02-01
US11451778B2 (en) 2022-09-20
AU2014388185B2 (en) 2018-08-02
CA2940015C (en) 2020-10-27
US20220394263A1 (en) 2022-12-08
RU2648276C1 (ru) 2018-03-23
US20210168366A1 (en) 2021-06-03
US20200169732A1 (en) 2020-05-28
US20160261865A1 (en) 2016-09-08
KR102216600B1 (ko) 2021-02-16
BR112016021529A2 (pt) 2017-08-15
EP3123716A4 (en) 2017-03-29

Similar Documents

Publication Publication Date Title
US11451778B2 (en) Adjusting quantization/scaling and inverse quantization/scaling when switching color spaces
US11716478B2 (en) Adjustments to encoding and decoding when switching color spaces
US11184637B2 (en) Encoding/decoding with flags to indicate switching of color spaces, color sampling rates and/or bit depths
US11166042B2 (en) Encoding/decoding with flags to indicate switching of color spaces, color sampling rates and/or bit depths
NZ723358B2 (en) Adaptive switching of color spaces, color sampling rates and/or bit depths

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant