KR20160013890A - 컬러 컴포넌트들 간의 샘플 예측을 이용한 비디오 코딩 - Google Patents

컬러 컴포넌트들 간의 샘플 예측을 이용한 비디오 코딩 Download PDF

Info

Publication number
KR20160013890A
KR20160013890A KR1020157034269A KR20157034269A KR20160013890A KR 20160013890 A KR20160013890 A KR 20160013890A KR 1020157034269 A KR1020157034269 A KR 1020157034269A KR 20157034269 A KR20157034269 A KR 20157034269A KR 20160013890 A KR20160013890 A KR 20160013890A
Authority
KR
South Korea
Prior art keywords
color component
residual
ref
block
sample value
Prior art date
Application number
KR1020157034269A
Other languages
English (en)
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 KR20160013890A publication Critical patent/KR20160013890A/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

비디오 코더는 모션 예측을 이용하여 생성된 예측자 컬러 컴포넌트의 잔차 신호를 복원할 수도 있다. 예측자 컬러 컴포넌트의 복원된 잔차 신호는 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함할 수도 있다. 추가적으로, 비디오 코더는 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 상이한 예측된 컬러 컴포넌트의 잔차 샘플 값들을 예측할 수도 있다.

Description

컬러 컴포넌트들 간의 샘플 예측을 이용한 비디오 코딩{VIDEO CODING USING SAMPLE PREDICTION AMONG COLOR COMPONENTS}
본 출원은 2013년 5월 22일자로 출원된 미국 가출원 제61/826,396호의 이익을 주장하며, 그 전체 내용은 본 명세서에 참조에 의해 통합된다.
본 개시물은 비디오 코딩 (즉, 비디오 데이터의 인코딩 및/또는 디코딩) 에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인 휴대 정보 단말기들 (PDA들), 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 소위 "스마트 폰들", 비디오 텔레컨퍼런싱 디바이스들, 비디오 스트리밍 디바이스들 등을 포함한, 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, 파트 10, 어드밴스드 비디오 코딩 (AVC) 에 의해 정의된 표준들, 현재 개발 중인 고효율 비디오 코딩 (HEVC) 표준, 및 이러한 표준들의 확장들에서 설명된 기법들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 이러한 비디오 압축 기법들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 비디오 시퀀스들에 내재하는 리던던시를 감소 또는 제거하기 위해 공간적 (인트라-픽처) 예측 및/또는 시간적 (인터-픽처) 예측을 수행한다. 블록 기반 비디오 코딩을 위해, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 파티셔닝될 수도 있다. 픽처의 인트라-코딩된 (I) 슬라이스에서의 비디오 블록들은 동일한 픽처의 이웃하는 블록들에서의 참조 샘플들에 대한 공간적 예측을 이용하여 인코딩된다. 픽처의 인터-코딩된 (P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 픽처의 이웃하는 블록들에서의 참조 샘플들에 대한 공간적 예측을 이용하거나, 또는 다른 참조 픽처들에서의 참조 샘플들에 대한 시간적 예측을 이용할 수도 있다. 픽처들은 프레임들로 지칭될 수도 있으며, 참조 픽처들은 참조 프레임들로 지칭될 수도 있다.
공간적 또는 시간적 예측은 코딩될 블록에 대한 예측적 블록을 초래한다. 잔차 데이터는 코딩될 오리지널 블록과 예측적 블록 간의 픽셀 차이들을 표현한다. 인터-코딩된 블록은 예측적 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터에 따라 인코딩되고, 잔차 데이터는 코딩된 블록과 예측적 블록 간의 차이를 나타낸다. 인트라-코딩된 블록은 인트라-코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 픽셀 도메인으로부터 변환 도메인으로 변환되어, 잔차 계수들을 초래할 수도 있으며, 잔차 계수들은 그 후 양자화될 수도 있다. 초기에는 2 차원 어레이로 배열되는 양자화된 계수들은 계수들의 1 차원 벡터를 생성하기 위해 스캐닝될 수도 있으며, 엔트로피 코딩이 훨씬 더 많은 압축을 달성하도록 적용될 수도 있다.
일반적으로, 본 개시물의 기법들은 비디오 코딩 및 압축의 분야와 관련된다. 일부 예들에서, 본 개시물의 기법들은 고효율 비디오 코딩 (HEVC) 범위 확장과 관련되며, 여기서 YCbCr 4:2:0 과는 다른 컬러 공간들 및 샘플링 포맷들이 지원될 수 있다. 본 명세서에 설명한 바와 같이, 비디오 코더는 모션 예측을 이용하여 생성된 예측자 컬러 컴포넌트의 잔차 신호를 복원할 수도 있다. 예측자 컬러 컴포넌트의 복원된 잔차 신호는 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함할 수도 있다. 추가적으로, 비디오 코더는 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 상이한 예측된 컬러 컴포넌트의 잔차 샘플 값들을 예측할 수도 있다.
하나의 예에서, 본 개시물은 비디오 데이터를 디코딩하는 방법을 설명하며, 그 방법은 : 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하는 단계를 포함하며, 비트스트림을 디코딩하는 단계는 : 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 단계로서, 제 1 컬러 컴포넌트의 잔차 신호는 모션 예측을 이용하여 생성되고, 제 1 컬러 컴포넌트의 복원된 잔차 신호는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 단계; 및 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 데이터를 인코딩하는 방법을 설명하며, 그 방법은 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 생성하는 단계를 포함하며, 비트스트림을 생성하는 단계는 : 모션 예측의 이용에 의해, 제 1 컬러 컴포넌트에 대한 잔차 신호를 생성하는 단계; 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 단계로서, 제 1 컬러 컴포넌트의 복원된 잔차 신호는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 단계; 및 제 1 컬러 컴포넌트의 복원된 샘플 값들을 이용하여 제 2 컬러 컴포넌트의 샘플 값들을 예측하는 단계를 포함한다.
다른 예에서, 본 개시물은 비디오 코딩 디바이스를 설명하며, 그 비디오 코딩 디바이스는 : 비디오 데이터를 저장하도록 구성된 데이터 저장 매체; 및 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 생성 또는 디코딩하도록 구성된 하나 이상의 프로세서들을 포함하며, 비트스트림을 생성 또는 디코딩하는 것의 일부로서, 하나 이상의 프로세서들은 : 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 것으로서, 제 1 컬러 컴포넌트의 잔차 신호는 모션 예측을 이용하여 생성되고, 제 1 컬러 컴포넌트의 복원된 잔차 신호는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하며; 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측한다.
다른 예에서, 본 개시물은 비디오 코딩 디바이스를 설명하며, 그 비디오 코딩 디바이스는 : 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 수단으로서, 제 1 컬러 컴포넌트의 잔차 신호는 모션 예측을 이용하여 생성되고, 제 1 컬러 컴포넌트의 복원된 잔차 신호는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 수단; 및 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하는 수단을 포함한다.
다른 예에서, 본 개시물은 명령들을 저장한 비일시적 컴퓨터 판독가능 데이터 저장 매체를 설명하며, 그 명령들은, 실행될 때, 비디오 코딩 디바이스로 하여금 : 제 1 컬러 컴포넌트의 잔차 신호를 복원하게 하는 것으로서, 제 1 컬러 컴포넌트의 잔차 신호는 모션 예측을 이용하여 생성되고, 제 1 컬러 컴포넌트의 복원된 잔차 신호는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하게 하며; 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하게 한다.
본 개시물의 하나 이상의 예들의 상세들은 첨부한 도면들 및 이하의 설명에서 기재된다. 다른 특징들, 목적들, 및 이점들은 설명, 도면들, 및 청구항들로부터 명백할 것이다.
도 1 은 본 개시물에서 설명된 기법들을 활용할 수도 있는 예시적인 비디오 코딩 시스템을 예시하는 블록 다이어그램이다.
도 2 는 본 개시물에서 설명된 기법들을 구현할 수도 있는 예시적인 비디오 인코더를 예시하는 블록 다이어그램이다.
도 3 은 본 개시물에서 설명된 기법들을 구현할 수도 있는 예시적인 비디오 디코더를 예시하는 블록 다이어그램이다.
도 4 는 본 개시물의 하나 이상의 기법들에 따른, 비디오 인코더의 예시적인 동작을 예시하는 플로우차트이다.
도 5 는 본 개시물의 하나 이상의 기법들에 따른, 비디오 디코더의 예시적인 동작을 예시하는 플로우차트이다.
도 6 은 본 개시물의 하나 이상의 기법들에 따른, 비디오 인코더의 예시적인 동작을 예시하는 플로우차트이다.
도 7 은 본 개시물의 하나 이상의 기법들에 따른, 비디오 디코더의 예시적인 동작을 예시하는 플로우차트이다.
많은 비디오 코딩 표준들에서, 픽셀들의 블록은 실제로 상이한 컬러 컴포넌트들에 대한 샘플들의 2 개 이상의 블록들을 포함할 수도 있다. 예를 들어, 픽셀들의 블록은 실제로 밝기를 나타내기 위한 루마 샘플들의 블록 및 컬러를 나타내기 위한 색차 (즉, 크로마) 샘플들의 2 개의 블록들을 포함할 수도 있다. 일부 상황들에서, 컬러 컴포넌트에 대한 샘플 값들은 상이한 컬러 컴포넌트의 대응하는 샘플 값들과 상관될 수도 있다. 즉, 하나의 컬러 컴포넌트의 샘플들의 값들은 다른 컬러 컴포넌트의 샘플들의 값들과 상호 관계를 가질 수도 있다. 이러한 상관의 감소는 샘플 값들을 표현하기 위해 요구된 데이터의 양의 감소를 초래할 수도 있다.
본 개시물의 하나 이상의 기법들에 따르면, 상이한 컬러 컴포넌트들의 샘플 값들 간의 상관은 인터 예측된 블록들에서 감소될 수도 있다. 따라서, 본 개시물의 하나 이상의 기법들에 따르면, 비디오 코더는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 생성 또는 디코딩할 수도 있다. 비트스트림을 생성 또는 디코딩하는 것의 일부로서, 비디오 코더는 제 1 컬러 컴포넌트 (즉, 예측자 컬러 컴포넌트) 의 잔차 신호를 복원할 수도 있다. 제 1 컬러 컴포넌트의 잔차 신호는 모션 예측을 이용하여 생성될 수도 있다. 제 1 컬러 컴포넌트의 복원된 잔차 신호는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함한다. 더욱이, 비디오 코더는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측할 수도 있다. 이 방식으로, 제 1 및 제 2 컬러 컴포넌트들의 샘플 값들 간의 상관이 감소되어, 잠재적으로는 비트스트림을 더 작게 할 수도 있다.
도 1 은 본 개시물의 기법들을 활용할 수도 있는 예시적인 비디오 코딩 시스템 (10) 을 예시하는 블록 다이어그램이다. 본 명세서에 사용한 바와 같이, 용어 "비디오 코더" 는 일반적으로 비디오 인코더들 및 비디오 디코더들 양자를 지칭한다. 본 개시물에서, 용어들 "비디오 코딩" 또는 "코딩" 은 일반적으로 비디오 인코딩 또는 비디오 디코딩을 지칭할 수도 있다.
도 1 에 도시한 바와 같이, 비디오 코딩 시스템 (10) 은 소스 디바이스 (12) 및 목적지 디바이스 (14) 를 포함한다. 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 생성한다. 이에 따라, 소스 디바이스 (12) 는 비디오 인코딩 디바이스 또는 비디오 인코딩 장치로 지칭될 수도 있다. 목적지 디바이스 (14) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수도 있다. 이에 따라, 목적지 디바이스 (14) 는 비디오 디코딩 디바이스 또는 비디오 디코딩 장치로 지칭될 수도 있다. 소스 디바이스 (12) 및 목적지 디바이스 (14) 는 비디오 코딩 디바이스들 또는 비디오 코딩 장치들의 예들일 수도 있다.
소스 디바이스 (12) 및 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 모바일 컴퓨팅 디바이스들, 노트북 (예를 들어, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 전화기 핸드셋들, 이를 테면 소위 "스마트" 폰들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 자동차용 컴퓨터들 등을 포함한, 광범위한 디바이스들을 포함할 수도 있다.
목적지 디바이스 (14) 는 채널 (16) 을 통해 소스 디바이스 (12) 로부터 인코딩된 비디오 데이터를 수신할 수도 있다. 채널 (16) 은 소스 디바이스 (12) 로부터의 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 이동시킬 수 있는 하나 이상의 매체들 또는 디바이스들을 포함할 수도 있다. 하나의 예에서, 채널 (16) 은 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 직접 목적지 디바이스 (14) 에 실시간으로 송신하는 것을 가능하게 하는 하나 이상의 통신 매체들을 포함할 수도 있다. 이 예에서, 소스 디바이스 (12) 는 무선 통신 프로토콜과 같은 통신 표준에 따라 인코딩된 비디오 데이터를 변조할 수도 있고, 변조된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수도 있다. 하나 이상의 통신 매체들은 무선 및/또는 유선 통신 매체들, 이를 테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리 송신 라인들을 포함할 수도 있다. 하나 이상의 통신 매체들은 로컬 영역 네트워크, 광역 네트워크, 또는 글로벌 네트워크 (예를 들어, 인터넷) 와 같은 패킷 기반 네트워크의 일부를 형성할 수도 있다. 하나 이상의 통신 매체들은 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는 다른 장비를 포함할 수도 있다.
다른 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 예를 들어, 디스크 액세스 또는 카드 액세스를 통해 저장 매체에 액세스할 수도 있다. 저장 매체는 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 다른 적합한 디지털 저장 매체들과 같은 다양한 로컬로 액세스된 데이터 저장 매체들을 포함할 수도 있다.
추가 예에서, 채널 (16) 은 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 디바이스를 포함할 수도 있다. 이 예에서, 목적지 디바이스 (14) 는 스트리밍 또는 다운로드를 통해 파일 서버 또는 다른 중간 저장 디바이스에 저장된 인코딩된 비디오 데이터에 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수 있는 서버의 타입일 수도 있다. 예시적인 파일 서버들은 웹 서버들 (예를 들어, 웹사이트용), 하이퍼텍스트 전송 프로토콜 (HTTP) 스트리밍 서버들, 파일 전송 프로토콜 (FTP) 서버들, 네트워크 부착 저장 (NAS) 디바이스들, 및 로컬 디스크 드라이브들을 포함한다.
목적지 디바이스 (14) 는 인터넷 접속과 같은 표준 데이터 접속을 통하여 인코딩된 비디오 데이터에 액세스할 수도 있다. 데이터 접속들의 예시적인 타입들은 무선 채널들 (예를 들어, Wi-Fi 접속들), 유선 접속들 (예를 들어, DSL, 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하기에 적합한 양자의 조합들을 포함할 수도 있다. 파일 서버로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 양자의 조합일 수도 있다.
본 개시물의 기법들은 무선 애플리케이션들 또는 세팅들에 제한되지 않는다. 그 기법들은 공중 경유 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예를 들어, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상의 저장을 위한 비디오 데이터의 인코딩, 데이터 저장 매체 상에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들의 지원 하의 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 비디오 코딩 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 비디오 텔레포니와 같은 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 1 은 단지 예일 뿐이며, 본 개시물의 기법들은 인코딩 및 디코딩 디바이스들 간의 임의의 데이터 통신을 반드시 포함하는 것은 아닌 비디오 코딩 세팅들 (예를 들어, 비디오 인코딩 또는 비디오 디코딩) 에 적용할 수도 있다. 다른 예들에서, 데이터 (예를 들어, 비디오 데이터) 는 로컬 메모리로부터 취출되고, 네트워크를 통해 스트리밍되며 등등이다. 비디오 인코딩 디바이스는 데이터 (예를 들어, 비디오 데이터) 를 인코딩하여 메모리에 저장할 수도 있고, 및/또는 비디오 디코딩 디바이스는 메모리로부터 데이터 (예를 들어, 비디오 데이터) 를 취출하여 디코딩할 수도 있다. 많은 예들에서, 인코딩 및 디코딩은 서로 통신하지 않고, 단순히 메모리에 대한 데이터 (예를 들어, 비디오 데이터) 를 인코딩하고 및/또는 메모리로부터 데이터 (예를 들어, 비디오 데이터) 를 취출 및 디코딩하는 디바이스들에 의해 수행된다.
도 1 의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20), 및 출력 인터페이스 (22) 를 포함한다. 일부 예들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수도 있다. 비디오 소스 (18) 는 비디오 캡처 디바이스, 예를 들어, 비디오 카메라, 이전에 캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 피드 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽스 시스템, 또는 비디오 데이터의 이러한 소스들의 조합을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터의 비디오 데이터를 인코딩할 수도 있다. 일부 예들에서, 소스 디바이스 (12) 는 인코딩된 비디오 데이터를 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 에 직접 송신한다. 다른 예들에서, 인코딩된 비디오 데이터는 또한 디코딩 및/또는 플레이백을 위한 목적지 디바이스 (14) 에 의한 추후 액세스를 위해 저장 매체 또는 파일 서버 상에 저장될 수도 있다.
도 1 의 예에서, 목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 포함한다. 일부 예들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스 (28) 는 채널 (16) 을 통해 인코딩된 비디오 데이터를 수신할 수도 있다. 디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합될 수도 있고 또는 목적지 디바이스 (14) 의 외부에 있을 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 디바이스 (32) 는 다양한 디스플레이 디바이스들, 이를 테면 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스를 포함할 수도 있다.
비디오 인코더 (20) 및 비디오 디코더 (30) 는 각각 다양한 적합한 회로부, 이를 테면 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 주문형 집적 회로들 (ASIC들), 필드 프로그램가능 게이트 어레이들 (FPGA들), 이산 로직, 하드웨어, 또는 이들의 임의의 조합 중 임의의 것으로서 구현될 수도 있다. 기법들이 소프트웨어에서 부분적으로 구현된다면, 디바이스는 적합한 비일시적 컴퓨터 판독가능 저장 매체에 소프트웨어에 대한 명령들을 저장할 수도 있고 본 개시물의 기법들을 수행하기 위해 하나 이상의 프로세서들을 이용하는 하드웨어에서 명령들을 실행할 수도 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함한) 전술한 것 중 임의의 것은 하나 이상의 프로세서들인 것으로 간주될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수도 있으며, 이들 중 어느 하나가 개별의 디바이스에 있어서 조합된 인코더/디코더 (CODEC) 의 일부로서 통합될 수도 있다.
본 개시물은 일반적으로 비디오 인코더 (20) 가 다른 디바이스, 이를 테면 비디오 디코더 (30) 에 소정의 정보를 "시그널링하는 것" 과 관련될 수도 있다. 용어 "시그널링하는 것" 은 신택스 엘리먼트들 및/또는 압축된 비디오 데이터를 디코딩하는데 이용되는 다른 데이터의 통신을 지칭할 수도 있다. 이러한 통신은 실시간 또는 근 실시간으로 일어날 수도 있다. 대안적으로, 이러한 통신은 인코딩 시에 인코딩된 비트스트림에 있어서 컴퓨터 판독가능 저장 매체에 신택스 엘리먼트들을 저장할 때 일어날 수도 있는 바와 같이, 어떤 기간에 걸쳐 일어날 수도 있으며, 이는 그 후 이 매체에 저장된 후 언제라도 디코딩 디바이스에 의해 취출될 수도 있다.
일부 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ISO/IEC MPEG-4 비주얼 및 그 스케일러블 비디오 코딩 (SVC) 확장, 멀티뷰 비디오 코딩 (MVC) 확장, 및 MVC 기반 3DV 확장을 포함한 ITU-T H.264 (ISO/IEC MPEG-4 AVC 로도 공지됨) 와 같은 비디오 압축 표준에 따라 동작한다. 일부 경우들에 있어서, MVC 기반 3DV 에 따르는 임의의 합법적 비트스트림은 항상 MVC 프로파일, 예를 들어, 스테레오 하이 프로파일에 순응하는 서브-비트스트림을 포함한다. 더욱이, H.264/AVC 에 대한 3 차원 비디오 (3DV) 코딩 확장, 즉 AVC 기반 3DV 를 생성하기 위한 계속 진행중인 노력이 있다. 다른 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, 및 ITU-T H.264, ISO/IEC 비주얼에 따라 동작할 수도 있다.
도 1 의 예에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹 (MPEG) 의 JCT-VC (Joint Collaboration Team on Video Coding) 에 의해 개발되는 고효율 비디오 코딩 (HEVC) 표준에 따라 동작할 수도 있다. "HEVC 워킹 드래프트 6" 으로 지칭되는 HEVC 표준의 드래프트는 Bross 등의 "High Efficiency Video Coding (HEVC) text specification draft 6", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 JCT-VC (Joint Collaborative Team on Video Coding), 2011년 11월, 스위스, 제네바, 제 7 차 회의에서 기술되어 있다. 적어도 2014년 5월 9일자로, HEVC 워킹 드래프트 6 은 http://phenix.it-sudparis.eu/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v1.zip 으로부터 입수가능하다. "HEVC 워킹 드래프트 9" 로 지칭되는 다가오는 HEVC 표준의 다른 드래프트는 Bross 등의 "High Efficiency Video Coding (HEVC) text specification draft 9", ITU-T SG16 WP3 및 ISO/IEC JTC1/SC29/WG11 의 JCT-VC (Joint Collaborative Team on Video Coding), 2012년 10월, 중국, 상하이, 제 11 차 회의에서 기술되어 있다. 적어도 2014년 5월 9일자로, HEVC 워킹 드래프트 9 는 http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v13.zip 으로부터 입수가능하다.
더욱이, HEVC 에 대한 SVC, 멀티-뷰 코딩, 및 3DV 확장들을 생성하기 위한 계속 진행중인 노력들이 있다. HEVC 의 SVC 확장은 HEVC-SVC 로 지칭될 수도 있다. HEVC 의 3DV 확장은 HEVC 기반 3DV 또는 3D-HEVC 로 지칭될 수도 있다. 3D-HEVC 는 Schwarz 등의 "Description of 3D Video Coding Technology Proposal by Fraunhofer HHI (HEVC compatible configuration A)", ISO/IEC JTC1/SC29/WG11, Doc. MPEG11/M22570, 2011년 11월/12월, 스위스, 제네바 (이하 "m22570") 및 Schwarz 등의 "Description of 3D Video Coding Technology Proposal by Fraunhofer HHI (HEVC compatible configuration B), ISO/IEC JTC1/SC29/WG11, Doc. MPEG11/M22571, 2011년 11월/12월, 스위스, 제네바 (이하 "m22571") 에서 제안된 솔루션들에 적어도 부분적으로 기초한다. 3D-HEVC 에 대한 참조 소프트웨어 설명은 Schwarz 등의 "Test Model under Consideration for HEVC based 3D video coding", ISO/IEC JTC1/SC29/WG11 MPEG2011/N12559, 2012년 2월, USA, 산호세에서 입수가능하다. 참조 소프트웨어, 즉 HTM 버전 3.0 은, 적어도 2014년 5월 9일자로, https://hevc.hhi.fraunhofer.de/svn/svn_3DVCSoftware/tags/HTM-3.0/ 으로부터 입수가능하다.
추가적으로, HEVC 에 대한 범위 확장 표준을 생성하기 위한 계속 진행중인 노력들이 있다. HEVC 에 대한 범위 확장 표준은 YCbCr 4:2:0 과는 다른 컬러 공간들, 이를 테면 YCbCr 4:2:2, YCbCr 4:4:4, 및 RGB 에 대해 비디오 코딩을 확장하는 것을 포함한다. Flynn 등의 "High Efficiency Video Coding (HEVC) Range Extensions text specification: Draft 2 (for PDAM)", ITU-T SG 16 WP 3 및 ISO/IEC JTC 1/SC 29/WG 11 의 JCT-VC (Joint Collaborative Team on Video Coding), 2013년 1월 14일 내지 23일, 스위스, 제네바, 제 12 차 회의, document no. JCTVC-L1005v4 (이하, "JCTVC-L1005v4") 는 HEVC 에 대한 범위 확장 표준의 드래프트이다. 적어도 2014년 5월 9일자로, JCTVC-L1005v4 는 http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=7276 으로부터 입수가능하였다.
HEVC 및 다른 비디오 코딩 표준들에서, 비디오 시퀀스는 통상적으로 일련의 픽처들을 포함한다. 픽처들은 또한 "프레임들" 로 지칭될 수도 있다. 픽처는 SL, SCb 및 SCr 로 나타내지는 3 개의 샘플 어레이들을 포함할 수도 있다. SL 은 루마 샘플들의 2 차원 어레이 (즉, 블록) 이다. SCb 는 Cb 색차 샘플들의 2 차원 어레이이다. SCr 은 Cr 색차 샘플들의 2 차원 어레이이다. 색차 샘플들은 본 명세서에서 "크로마" 샘플들로도 지칭될 수도 있다. 다른 경우들에서, 픽처는 모노크롬일 수도 있고 단지 루마 샘플들의 어레이만을 포함할 수도 있다.
픽처의 인코딩된 표현을 생성하기 위해, 비디오 인코더 (20) 는 코딩 트리 유닛들 (CTU들) 의 세트를 생성할 수도 있다. CTU들 각각은 루마 샘플들의 코딩 트리 블록, 크로마 샘플들의 2 개의 대응하는 코딩 트리 블록들, 및 코딩 트리 블록들의 샘플들을 코딩하는데 이용되는 신택스 구조들을 포함할 수도 있다. 코딩 트리 블록은 샘플들의 NxN 블록일 수도 있다. CTU 는 또한, "트리 블록" 또는 "최대 코딩 유닛 (LCU)" 으로 지칭될 수도 있다. HEVC 의 CTU들은 H.264/AVC 와 같은 다른 비디오 코딩 표준들의 매크로블록들과 대략적으로 유사할 수도 있다. 그러나, CTU 는 반드시 특정 사이즈에 제한되는 것은 아니며, 하나 이상의 코딩 유닛들 (CU들) 을 포함할 수도 있다. 슬라이스는 스캐닝 순서 (예를 들어, 래스터 스캔) 로 연속하여 순서화된 정수 개의 CTU들을 포함할 수도 있다.
본 개시물은 샘플들의 하나 이상의 블록들 및 그 샘플들의 하나 이상의 블록들의 샘플들을 코딩하는데 이용되는 신택스 구조들을 지칭하기 위해 용어 "비디오 유닛", "비디오 블록", 또는 "블록" 을 사용할 수도 있다. 비디오 유닛들의 예시적인 타입들은 CTU들, CU들, PU들, 변환 유닛들 (TU들), 매크로블록들, 매크로블록 파티션들 등을 포함할 수도 있다.
코딩된 CTU 를 생성하기 위해, 비디오 인코더 (20) 는 코딩 트리 블록들을 코딩 블록들로 분할하기 위해 CTU 의 코딩 트리 블록들에 대해 쿼드-트리 파티셔닝을 재귀적으로 수행할 수도 있으며, 여기서 "코딩 트리 유닛들" 이라는 이름이 나왔다. 코딩 블록은 샘플들의 NxN 블록이다. CU 는 루마 샘플 어레이, Cb 샘플 어레이 및 Cr 샘플 어레이를 갖는 픽처의 루마 샘플들의 코딩 블록 및 크로마 샘플들의 2 개의 대응하는 코딩 블록들, 및 코딩 블록들의 샘플들을 코딩하는데 이용되는 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (20) 는 CU 의 코딩 블록을 하나 이상의 예측 블록들로 파티셔닝할 수도 있다. 예측 블록은 동일한 예측이 적용되는 샘플들의 직사각형 (즉, 정사각형 또는 비정사각형) 블록일 수도 있다. CU 의 예측 유닛 (PU) 은 픽처의 루마 샘플들의 예측 블록, 크로마 샘플들의 2 개의 대응하는 예측 블록들, 및 예측 블록 샘플들을 예측하는데 이용되는 신택스 구조들을 포함할 수도 있다. 비디오 인코더 (20) 는 CU 의 각각의 PU 의 예측 블록들 (예를 들어, 루마, Cb 및 Cr 예측 블록들) 에 대한 예측적 블록들 (예를 들어, 예측적 루마, Cb 및 Cr 블록들) 을 생성할 수도 있다. 일부 예들에서, 블록의 예측적 블록들의 샘플들 (예를 들어, PU, CU 등) 은 본 명세서에서 블록에 대한 참조 신호로 지칭될 수도 있다.
비디오 인코더 (20) 는 PU 에 대한 예측적 블록들을 생성하기 위해 인트라 예측 또는 인터 예측을 이용할 수도 있다. 비디오 인코더 (20) 가 PU 의 예측적 블록들을 생성하기 위해 인트라 예측을 이용한다면, 비디오 인코더 (20) 는 PU 가 속하는 픽처 (즉, PU 와 연관된 픽처) 의 디코딩된 샘플들에 기초하여 PU 의 예측적 블록들을 생성할 수도 있다.
비디오 인코더 (20) 가 PU 의 예측적 블록들을 생성하기 위해 인터 예측을 이용한다면, 비디오 인코더 (20) 는 PU 와 연관된 픽처와는 다른 하나 이상의 픽처들의 디코딩된 샘플들에 기초하여 PU 의 예측적 블록들을 생성할 수도 있다. 인터 예측은 단방향적 인터 예측 (즉, 단예측) 또는 양방향적 인터 예측 (즉, 양예측) 일 수도 있다. 단예측 또는 양예측을 수행하기 위해, 비디오 인코더 (20) 는 현재의 슬라이스에 대한 제 1 참조 픽처 리스트 (RefPicList0) 및 제 2 참조 픽처 리스트 (RefPicList1) 를 생성할 수도 있다. 참조 픽처 리스트들 각각은 하나 이상의 참조 픽처들을 포함할 수도 있다.
양예측을 이용할 때, 비디오 인코더 (20) 는 참조 픽처 내의 참조 로케이션을 결정하기 위해 RefPicList0 및 RefPicList1 중 어느 하나 또는 양자에서 참조 픽처들을 탐색할 수도 있다. 더욱이, 단예측을 이용할 때, 비디오 인코더 (20) 는 참조 로케이션에 대응하는 샘플들에 적어도 부분적으로 기초하여, PU 에 대한 예측적 샘플 블록들을 생성할 수도 있다. 더욱이, 단예측을 이용할 때, 비디오 인코더 (20) 는 PU 의 예측 블록과 참조 로케이션 간의 공간적 변위를 나타내는 단일 모션 벡터를 생성할 수도 있다. PU 의 예측 블록과 참조 로케이션 간의 공간적 변위를 나타내기 위해, 모션 벡터는 PU 의 예측 블록과 참조 로케이션 간의 수평적 변위를 특정하는 수평 컴포넌트를 포함할 수도 있고, PU 의 예측 블록과 참조 로케이션 간의 수직적 변위를 특정하는 수직 컴포넌트를 포함할 수도 있다.
PU 를 인코딩하기 위해 양예측을 이용할 때, 비디오 인코더 (20) 는 RefPicList0 에서 참조 픽처에서의 제 1 참조 로케이션 및 RefPicList1 에서 참조 픽처에서의 제 2 참조 로케이션을 결정할 수도 있다. 비디오 인코더 (20) 는 그 후, 제 1 및 제 2 참조 로케이션들에 대응하는 샘플들에 적어도 부분적으로 기초하여, PU 에 대한 예측적 블록들을 생성할 수도 있다. 더욱이, PU 를 인코딩하기 위해 양예측을 이용할 때, 비디오 인코더 (20) 는 PU 의 예측 블록과 제 1 참조 로케이션 간의 공간적 변위를 나타내는 제 1 모션 벡터 및 PU 의 예측 블록과 제 2 참조 로케이션 간의 공간적 변위를 나타내는 제 2 모션 벡터를 생성할 수도 있다.
비디오 인코더 (20) 가 CU 의 하나 이상의 PU들에 대한 예측적 블록들 (예를 들어, 예측적 루마 (Y), 크로마 Cb 및 크로마 Cr 블록들) 을 생성한 후, 비디오 인코더 (20) 는 CU 에 대한 잔차 블록들 (예를 들어, 루마 잔차 블록, Cb 잔차 블록, 및 Cr 잔차 블록) 을 생성할 수도 있다. CU 의 루마 잔차 블록에서의 각각의 샘플은 CU 의 예측적 루마 블록들 중 하나에서의 루마 샘플과 CU 의 오리지널 루마 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낸다. 또한, 비디오 인코더 (20) 는 CU 에 대한 Cb 잔차 블록을 생성할 수도 있다. CU 의 Cb 잔차 블록에서의 각각의 샘플은 CU 의 예측적 Cb 블록들 중 하나에서의 Cb 샘플과 CU 의 오리지널 Cb 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낼 수도 있다. 비디오 인코더 (20) 는 또한, CU 에 대한 Cr 잔차 블록을 생성할 수도 있다. CU 의 Cr 잔차 블록에서의 각각의 샘플은 CU 의 예측적 Cr 블록들 중 하나에서의 Cr 샘플과 CU 의 오리지널 Cr 코딩 블록에서의 대응하는 샘플 간의 차이를 나타낼 수도 있다. 본 개시물은 블록의 잔차 블록들의 샘플들 (예를 들어, CU) 을 블록에 대한 잔차 신호들로 지칭할 수도 있다.
더욱이, 비디오 인코더 (20) 는 CU 의 잔차 블록들 (예를 들어, 루마, Cb 및 Cr 잔차 블록들) 을 하나 이상의 변환 블록들 (예를 들어, 루마, Cb 및 Cr 변환 블록들) 로 분해하기 위해 쿼드-트리 파티셔닝을 이용할 수도 있다. 변환 블록은 동일한 변환이 적용되는 샘플들의 직사각형 (예를 들어, 정사각형 또는 비정사각형) 블록일 수도 있다. CU 의 변환 유닛 (TU) 은 루마 샘플들의 변환 블록, 크로마 샘플들의 2 개의 대응하는 변환 블록들, 및 변환 블록 샘플들을 변환하는데 이용되는 신택스 구조들을 포함할 수도 있다. 따라서, CU 의 각각의 TU 는 루마 변환 블록, Cb 변환 블록, 및 Cr 변환 블록과 연관될 수도 있다. TU 와 연관된 루마 변환 블록은 CU 의 루마 잔차 블록의 서브-블록일 수도 있다. Cb 변환 블록은 CU 의 Cb 잔차 블록의 서브-블록일 수도 있다. Cr 변환 블록은 CU 의 Cr 잔차 블록의 서브-블록일 수도 있다.
비디오 인코더 (20) 는 TU 에 대한 계수 블록을 생성하기 위해 TU 의 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 계수 블록은 변환 계수들의 2 차원 어레이일 수도 있다. 변환 계수는 스칼라 양일 수도 있다. 예를 들어, 비디오 인코더 (20) 는 TU 에 대한 루마 계수 블록을 생성하기 위해 TU 의 루마 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cb 계수 블록을 생성하기 위해 TU 의 Cb 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 비디오 인코더 (20) 는 TU 에 대한 Cr 계수 블록을 생성하기 위해 TU 의 Cr 변환 블록에 하나 이상의 변환들을 적용할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 그 변환을 스킵하고 변환 계수 블록과 동일한 방식으로 변환 블록 (예를 들어, 잔차 샘플들의 블록) 을 처리할 수도 있다.
계수 블록 (예를 들어, 루마 계수 블록, Cb 계수 블록 또는 Cr 계수 블록) 을 생성한 후, 비디오 인코더 (20) 는 계수 블록을 양자화할 수도 있다. 양자화는 일반적으로 변환 계수들이 변환 계수들을 표현하는데 이용되는 데이터의 양을 가능한 대로 감소시키기 위해 양자화되어, 추가 압축을 제공하는 프로세스를 지칭한다. 일부 예들에서, 비디오 인코더 (20) 는 변환 계수 블록의 양자화를 스킵할 수도 있다. 더욱이, 비디오 인코더 (20) 는 변환 계수들을 역양자화할 수도 있고, 픽처의 CU들의 TU들의 변환 블록들을 복원하기 위하여 변환 계수들에 역변환을 적용할 수도 있다. 비디오 인코더 (20) 는 CU 의 TU들의 복원된 변환 블록들 및 CU 의 PU들의 예측적 블록들을 이용하여 CU 의 코딩 블록들을 복원할 수도 있다. 픽처의 각각의 CU 의 코딩 블록들을 복원함으로써, 비디오 인코더 (20) 는 픽처를 복원할 수도 있다. 비디오 인코더 (20) 는 디코딩된 픽처 버퍼 (DPB) 에 복원된 픽처들을 저장할 수도 있다. 비디오 인코더 (20) 는 인터 예측 및 인트라 예측을 위해 DPB 에서의 복원된 픽처들을 이용할 수도 있다.
비디오 인코더 (20) 가 계수 블록을 양자화한 후, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 양자화된 변환 계수들을 나타내는 신택스 엘리먼트들에 대해 콘텍스트-적응적 이진 산술 코딩 (CABAC) 을 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피 인코딩된 신택스 엘리먼트들을 비트스트림에서 출력할 수도 있다.
비디오 인코더 (20) 는 코딩된 픽처들 및 연관된 데이터의 표현을 형성하는 비트들의 시퀀스를 포함하는 비트스트림을 출력할 수도 있다. 비트스트림은 네트워크 추상화 계층 (NAL) 유닛들의 시퀀스를 포함할 수도 있다. NAL 유닛들 각각은 NAL 유닛 헤더를 포함할 수도 있고, RBSP (raw byte sequence payload) 를 캡슐화할 수도 있다. NAL 유닛 헤더는 NAL 유닛 타입 코드를 나타내는 신택스 엘리먼트를 포함할 수도 있다. NAL 유닛의 NAL 유닛 헤더에 의해 특정된 NAL 유닛 타입 코드는 NAL 유닛의 타입을 나타낸다. RBSP 는 NAL 유닛 내에 캡슐화되는 정수 개의 바이트들을 포함하는 신택스 구조일 수도 있다. 일부 경우들에서, RBSP 는 제로 비트들을 포함한다.
상이한 타입들의 NAL 유닛들은 상이한 타입들의 RBSP들을 캡슐화할 수도 있다. 예를 들어, 제 1 타입의 NAL 유닛은 픽처 파라미터 세트 (PPS) 에 대한 RBSP 를 캡슐화할 수도 있고, 제 2 타입의 NAL 유닛은 코딩된 슬라이스에 대한 RBSP 를 캡슐화할 수도 있고, 제 3 타입의 NAL 유닛은 SEI (Supplemental Enhancement Information) 에 대한 RBSP 를 캡슐화할 수도 있으며, 등등이다. PPS 는 0 개 이상의 전체 코딩된 픽처들에 적용하는 신택스 엘리먼트들을 포함할 수도 있는 신택스 구조이다. (파라미터 세트들 및 SEI 메시지들에 대한 RBSP들과 대조적으로) 비디오 코딩 데이터에 대한 RBSP들을 캡슐화하는 NAL 유닛들은 비디오 코딩 계층 (VCL) NAL 유닛들로 지칭될 수도 있다. 코딩된 슬라이스를 캡슐화하는 NAL 유닛은 본 명세서에서 코딩된 슬라이스 NAL 유닛으로 지칭될 수도 있다. 코딩된 슬라이스에 대한 RBSP 는 슬라이스 헤더 및 슬라이스 데이터를 포함할 수도 있다.
HEVC 및 다른 비디오 코딩 표준들은 다양한 타입들의 파라미터 세트들을 가능하게 한다. 예를 들어, 비디오 파라미터 세트 (VPS) 는 0 개 이상의 전체 코딩된 비디오 시퀀스들 (CVS들) 에 적용하는 신택스 엘리먼트들을 포함하는 신택스 구조이다. 시퀀스 파라미터 세트 (SPS) 는 CVS 의 모든 슬라이스들에 적용하는 정보를 포함할 수도 있다. SPS 는 SPS 가 활성일 때 활성인 VPS 를 식별하는 신택스 엘리먼트를 포함할 수도 있다. 따라서, VPS 의 신택스 엘리먼트들은 SPS 의 신택스 엘리먼트들보다 더 일반적으로 적용가능할 수도 있다. PPS 는 0 개 이상의 코딩된 픽처들에 적용하는 신택스 엘리먼트들을 포함하는 신택스 구조이다. PPS 는 PPS 가 활성일 때 활성인 SPS 를 식별하는 신택스 엘리먼트를 포함할 수도 있다. 슬라이스의 슬라이스 헤더는 슬라이스가 코딩되고 있을 때 활성인 PPS 를 나타내는 신택스 엘리먼트를 포함할 수도 있다.
비디오 디코더 (30) 는 비트스트림을 수신할 수도 있다. 또한, 비디오 디코더 (30) 는 비트스트림으로부터 신택스 엘리먼트들을 획득 (예를 들어, 디코딩) 하기 위해 비트스트림을 파싱 (parsing) 할 수도 있다. 비디오 디코더 (30) 는 비트스트림으로부터 디코딩된 신택스 엘리먼트들에 적어도 부분적으로 기초하여 비디오 데이터의 픽처들을 복원할 수도 있다. 비디오 데이터를 복원하기 위한 프로세스는 일반적으로 비디오 인코더 (20) 에 의해 수행된 프로세스와 상호적일 수도 있다. 예를 들어, 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측적 블록들을 결정하기 위해 PU들의 모션 벡터들을 이용할 수도 있다. 비디오 디코더 (30) 는 PU들에 대한 예측적 블록들을 생성하기 위해 PU들의 모션 벡터 또는 모션 벡터들을 이용할 수도 있다.
또한, 비디오 디코더 (30) 는 현재의 CU 의 TU들과 연관된 계수 블록들을 역양자화할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 TU들과 연관된 변환 블록들을 복원하기 위해 계수 블록들에 대해 역변환들을 수행할 수도 있다. 비디오 디코더 (30) 는 현재의 CU 의 PU들에 대한 예측적 샘플 블록들의 샘플들을 현재의 CU 의 TU들의 변환 블록들의 대응하는 샘플들에 가산함으로써 현재의 CU 의 코딩 블록들을 복원할 수도 있다. 픽처의 각각의 CU 에 대한 코딩 블록들을 복원함으로써, 비디오 디코더 (30) 는 픽처를 복원할 수도 있다. 비디오 디코더 (30) 는 출력을 위해 및/또는 다른 픽처들을 디코딩하는데 있어서의 이용을 위해 디코딩된 픽처 버퍼에 디코딩된 픽처들을 저장할 수도 있다.
비디오 콘텐츠들은 컬러 컴포넌트들 간의 상관을 감소시킴으로써 효율적으로 코딩될 수도 있다. 이것을 행하기 위한 하나의 방식은 예측을 수행하는 것이다. HEVC 의 개발 동안 제안된 루마 기반 크로마 예측 방법에서, 크로마 샘플 값들은 복원된 루마 샘플 값들로부터 예측된다. 예측 값은 최소 제곱법을 이용하여 생성될 수 있다. 이것은 단지 인트라 코딩된 블록들에만 적용되었다. 코딩 효율을 추가 개선시키기 위해, 인터 코딩된 블록들에서의 상관을 감소시키는 것이 또한 바람직할 수도 있다.
인터 프레임들 (즉, 인터 예측을 이용하여 코딩된 픽처들) 에 대해, 각각의 컬러 컴포넌트에 대한 상관을 감소시키기 위해, 모션 예측이 적용된다. 일반적으로, 모션 예측은 블록에 대한 하나 이상의 예측적 블록들을 결정하기 위해 그 블록에 대한 하나 이상의 모션 벡터들의 이용을 수반한다. 동일한 모션 벡터들은 모든 컬러 컴포넌트들에 대해 이용될 수 있으며, 이는 모션 예측 후의 컬러 컴포넌트들 간의 상관을 증가시킬 수 있다. 컬러 컴포넌트들 간의 상관을 감소시키기 위해, 본 개시물의 하나 이상의 기법들은 모션 예측 후 예측적 코딩을 적용할 수도 있다.
먼저, 본 개시물의 하나 이상의 기법들에 따르면, 참조 픽처에서의 모션 블록 (즉, 참조 블록) 은 모션 벡터에 의해 로케이팅된다. 즉, 비디오 코더는 참조 픽처에서의 참조 블록을 결정하기 위해 모션 벡터를 이용할 수도 있다. 각각의 컬러 컴포넌트의 잔차 신호는 그 후 모션 예측의 이용에 의해 생성된다. 예를 들어, 비디오 코더는 잔차 샘플들을 포함하는 잔차 신호를 생성할 수도 있다. 잔차 샘플들 각각은 현재의 블록의 오리지널 샘플과 참조 블록의 대응하는 샘플 간의 차이와 동일한 값을 가질 수도 있다. 컴포넌트들 중 하나는 예측자 컴포넌트로서 설정된다. 예를 들어, 비디오 인코더 (20) 는 루마 컴포넌트, Cb 컴포넌트, 또는 Cr 컴포넌트를 예측자 컴포넌트로서 설정할 수도 있다. 예측자 컴포넌트의 잔차 신호는 변환/양자화의 이용에 의해 추가 압축되고 탈양자화/역변환을 이용하여 복원된다. 예측자 컴포넌트의 복원된 잔차 샘플 값들은 (예를 들어, 비디오 코더에 의해) 다른 컬러 컴포넌트들의 잔차 샘플 값들을 예측하는데 이용될 수 있다.
따라서, 본 개시물의 하나 이상의 기법들에 따르면, 비디오 인코더 (20) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 생성할 수도 있다. 비트스트림을 생성하는 것의 일부로서, 비디오 인코더 (20) 는 모션 예측의 이용에 의해, 예측자 컬러 컴포넌트에 대한 잔차 신호를 생성할 수도 있다. 더욱이, 비디오 인코더 (20) 는 예측자 컬러 컴포넌트의 잔차 신호를 복원할 수도 있다. 적어도 일부 경우들에서, 비디오 인코더 (20) 는 예측자 컬러 컴포넌트의 잔차 신호를 복원하기 위해 탈양자화 및 역변환을 이용할 수도 있다. 예측자 컬러 컴포넌트의 복원된 잔차 신호는 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함할 수도 있다. 비디오 인코더 (20) 는 예측된 컬러 컴포넌트의 샘플 값들을 예측하기 위해 예측자 컬러 컴포넌트의 복원된 샘플 값들을 이용할 수도 있다. 더욱이, 비디오 인코더 (20) 는 모션 예측의 이용에 의해, 예측된 컬러 컴포넌트에 대한 초기 잔차 신호를 생성할 수도 있다. 비디오 인코더 (20) 는 예측된 컬러 컴포넌트에 대한 최종 잔차 신호에서의 각각의 샘플 값이 예측된 컬러 컴포넌트의 예측된 샘플 값들 중 하나와 예측된 컬러 컴포넌트의 초기 잔차 신호의 대응하는 샘플 간의 차이와 동일하도록 예측된 컬러 컴포넌트에 대한 최종 잔차 신호를 결정할 수도 있다. 추가적으로, 비디오 인코더 (20) 는 예측된 컬러 컴포넌트에 대한 최종 잔차 신호를 변환함으로써 계수 블록을 생성할 수도 있다. 비디오 인코더 (20) 는 비트스트림에, 계수 블록의 양자화된 변환 계수들을 나타내는 엔트로피 인코딩된 데이터를 포함할 수도 있다. 예측자 및 예측된 컬러 컴포넌트들은 : 루마 컴포넌트, Cb 크로마 컴포넌트, 및 Cr 크로마 컴포넌트 중 상이한 컴포넌트들일 수도 있다.
유사하게, 비디오 디코더 (30) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩할 수도 있다. 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더 (30) 는 예측자 컬러 컴포넌트의 잔차 신호를 복원할 수도 있다. 예측자 컬러 컴포넌트의 잔차 신호는 모션 예측을 이용하여 생성될 수도 있다. 예측자 컬러 컴포넌트의 복원된 잔차 신호는 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함할 수도 있다. 적어도 일부 경우들에서, 비디오 디코더 (30) 는 예측자 컬러 컴포넌트의 잔차 신호를 복원하기 위해 탈양자화 및 역변환을 이용할 수도 있다. 비디오 디코더 (30) 는 예측된 컬러 컴포넌트의 잔차 샘플 값들을 예측하기 위해 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용할 수도 있다. 더욱이, 비디오 디코더 (30) 는 예측된 컬러 컴포넌트의 예측된 샘플 값들을, 계수 블록을 탈양자화하고 그 계수 블록에 역변환을 적용함으로써 생성된 대응하는 샘플들에 가산할 수도 있다. 비트스트림은 계수 블록의 양자화된 변환 계수들을 나타내는 엔트로피 인코딩된 신택스 엘리먼트들을 포함할 수도 있다. 일부 예들에서, 용어 "컬러 컴포넌트" 는 루마 및 크로마 (예를 들어, Cb 및 Cr) 컴포넌트들에 적용한다. 예측자 및 예측된 컬러 컴포넌트들은 : 루마 컴포넌트, Cb 크로마 컴포넌트, 및 Cr 크로마 컴포넌트 중 상이한 컴포넌트들일 수도 있다.
적어도 일부 예들에서, 비디오 코더는 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값으로부터 선형 예측을 이용하여 예측된 컬러 컴포넌트의 예측 샘플 값 (즉, 예측된 샘플 값) 을 생성할 수도 있다. 예를 들어, 예측된 샘플 값 x' 가 :
x'= ax+b
로서 복원된 잔차 샘플 값 x 로부터 생성되는 선형 예측이 이용될 수 있으며, 여기서 a 는 스케일 팩터이고 b 는 오프셋이다. 예를 들어, 비디오 코더는 예측 샘플 값이 x'= ax+b 와 동일하도록 예측 샘플 값을 결정할 수도 있으며, 여기서 x' 는 예측 샘플 값이고 x 는 복원된 잔차 샘플이다. 값들 (ab) 은 본 명세서에서 예측 파라미터들로 지칭될 수도 있다. 일부 예들에서, ab 는 모션 블록에 적용된 최소 제곱법을 이용하여 계산될 수 있다. 예를 들어, ab 는 :
a = Cov(Yref, Cref)/Var(Yref),
b = Mean(Cref)-Mean(Yref)
로서 계산될 수 있으며, 여기서 Cov() 는 공분산 함수 (예를 들어, Cov(x,y) = E[(x-E[x])(y-E[y])]) 이고, Var() 는 분산 함수 (예를 들어, Var(x) = E[(x-E[x])2]) 이며, Mean() 은 평균 함수 (예를 들어, Mean(x) = E[x]) 이다. Yref 및 Cref 는 각각 예측자 컴포넌트에 대한 및 예측될 컴포넌트에 대한 모션 블록에서의 참조 신호들이다. 참조 신호들은 참조 픽처에 (또는 그로부터 보간된) 샘플들을 포함할 수도 있다. 예측 값의 생성 후, 예측 값은 현재의 잔차 샘플 값으로부터 감산되고, 차이는 변환 및 양자화에 의해 추가 코딩된다.
일부 예들에서, 이들 파라미터들 중 단 하나가 이용될 수 있다. 예를 들어, 비디오 코더는 예측 샘플 값 x' 를 :
x' = ax
로서 결정할 수도 있으며, 여기서 x 는 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값이고, a 는 Cov(Yref, Cref)/Var(Yref) 와 동일하고, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Yref 는 예측자 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호이며, Cref 는 예측된 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호이다.
예측 파라미터들 (예를 들어, 상기 예들에서의 ab) 은 비디오 인코더 (20) 및 비디오 디코더 (30) 에서 동일한 복원된 잔차 픽셀들을 이용하여 계산될 수 있다. 예측될 각각의 컬러 컴포넌트에 대해 별개의 파라미터 세트가 있을 수 있다. 즉, 비디오 코더 (예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는 컬러 컴포넌트들의 상이한 것들에 대한 예측 파라미터들에 대해 상이한 값들을 계산할 수도 있다.
다른 예에서, 비디오 인코더 (20) 는 비디오 디코더 (30) 가 동일한 파라미터 값들을 이용할 수 있도록 비디오 디코더 (30) 에 계산된 파라미터 값들을 시그널링한다. 예를 들어, 비디오 인코더 (20) 는 비트스트림에, 상기 예들에서 또는 다른 예들에서 설명된 a 및/또는 b 의 값들을 나타내는 데이터를 포함할 수도 있다. 파라미터들은 효율적인 시그널링을 위해 양자화될 수 있다. 예를 들어, 비디오 인코더 (20) 는 예측 파라미터 값들을 양자화할 수도 있고, 비트스트림에 양자화된 예측 파라미터 값들을 나타내는 신택스 엘리먼트들을 포함할 수도 있다. 파라미터들은 명시적으로 시그널링되기 때문에, 디코더측에서 입수가능하지 않은 정보를 이용하여 최적의 파라미터 값들을 발견하는 것이 가능할 수도 있다. 따라서, 일부 예들에서, 비디오 인코더 (20) 는 비트스트림에, 파라미터의 값을 나타내는 데이터를 포함할 수도 있다. 유사하게, 비디오 디코더 (30) 는 비트스트림으로부터, 파라미터의 값을 획득할 수도 있다. 이들 예들에서, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 예측 샘플 값이 x' = ax 와 동일하도록 예측 샘플 값을 결정할 수도 있으며, 여기서 x' 는 예측 샘플 값이고, x 는 예측자 컬러 컴포넌트의 복원된 잔차 샘플 값들 중 하나이며, a 는 파라미터이다.
예를 들어, 모션 블록 대신에, 파라미터들은 코딩될 현재의 블록의 잔차 신호들을 이용하여 계산될 수 있다. 보다 구체적으로, ab 는 이하와 같은 식들,
a = Cov(Yres', Cres)/Var(Yres'),
b = Mean(Cres)-Mean(Yres'),
을 적용함으로써 발견될 수 있으며, 여기서 Cov() 는 공분산 함수이고, Var() 는 분산 함수이며, Mean() 은 평균 함수이고, Yres' 는 예측자 컴포넌트에 대한 현재의 블록의 복원된 잔차 신호이며, Cres 는 예측될 컴포넌트에 대한 현재의 블록에서의 잔차 신호이다. 따라서, 이 예에서, 비디오 코더 (예를 들어, 비디오 인코더 (20) 또는 비디오 디코더 (30)) 는 예측 샘플 값을 x'= ax + b 로서 결정할 수도 있으며, 여기서 x' 는 예측 샘플 값이고, x 는 예측자 컬러 컴포넌트의 복원된 샘플 값들 중 하나이고, a 는 Cov(Yres, Cres)/Var(Yres) 와 동일하며, b 는 Mean(Cres)-a·Mean(Yres) 와 동일하다. 비디오 인코더는 잔차 신호의 대응하는 샘플에서 예측 샘플 값을 감산할 수도 있다. 비디오 인코더는 결과의 샘플 값을 변환 및 양자화할 수도 있다. 비디오 디코더는 예측 샘플 값을 대응하는 잔차 값에 가산하여 오리지널 잔차 값을 복원할 수도 있다. 일부 예들에서, 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호 대신에, 잔차 신호는 컴퓨테이션/구현 복잡도를 감소시키는데 이용될 수 있다. 일부 예들에서, 예측 파라미터들을 계산하기 위해, 코딩 유닛 또는 블록에 대한 모션 블록에서의 모든 샘플 값들이 이용될 수 있다. 대안적으로, 일부 예들에서, CU 또는 블록에 대한 모션 블록에서의 샘플 값들의 일부는 제로 값들을 서브샘플링 또는 배제함으로써 이용될 수 있다.
더욱이, 일부 예들에서, 예측 값을 생성하기 위해, 예측 컴포넌트에서의 단 하나의 샘플 값이 이용될 수 있으며, 이는 예측될 픽셀에 병치 (collocate) 된다. 대안적으로, 예측자 컴포넌트에서의 다수의 샘플 값들이 이용될 수 있으며, 여기서 이들 샘플들은 병치된 픽셀 및 그것의 이웃들 중 하나 이상이다.
이 예측 특징은 스위치를 제공함으로써 소정의 영역들에 적용될 수 있다. 예를 들어, 이 특징을 턴 온 및 오프하는 것을 나타내기 위한 플래그는, 예측이 전체 슬라이스에 (예를 들어, 디코더에 의해) 적용되거나 또는 적용되지 않도록 슬라이스 헤더로 코딩될 수 있다. 대안적으로, 그 플래그는 시퀀스, 픽처, LCU, CU, PU, 또는 TU 와 같은 다른 레벨에서 시그널링될 수 있다. 플래그가 시퀀스 레벨에서 시그널링될 때, 그 플래그는 SPS 에서 시그널링될 수도 있다. 플래그가 픽처 레벨에서 시그널링될 때, 플래그는 PPS 에서 시그널링될 수도 있다.
따라서, 비트스트림을 생성하는 것의 일부로서, 비디오 인코더 (20) 는, 비트스트림에서, 예측자 컬러 컴포넌트의 복원된 잔차 샘플들을 이용하여 예측된 컬러 컴포넌트의 잔차 샘플 값들을 예측할지 여부를 나타내기 위한 플래그를 시그널링할 수도 있다. 일부 예들에서, 비디오 인코더 (20) 는 플래그를 시퀀스 레벨에서 (예를 들어, SPS 에서) 코딩할 수도 있다. 유사하게, 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더 (30) 는 비트스트림으로부터, 예측자 컬러 컴포넌트의 복원된 잔차 샘플들을 이용하여 예측된 컬러 컴포넌트의 잔차 샘플 값들을 예측할지 여부를 나타내기 위한 플래그를 획득할 수도 있다.
도 2 는 본 개시물의 기법들을 구현할 수도 있는 예시적인 비디오 인코더 (20) 를 예시하는 블록 다이어그램이다. 도 2 는 설명을 목적으로 제공되며 본 개시물에서 대략적으로 예시화 및 설명된 바와 같이 기법들을 제한하는 것으로 간주되지 않아야 한다. 설명의 목적으로, 본 개시물은 HEVC 코딩의 맥락에서 비디오 인코더 (20) 를 설명한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 2 의 예에서, 비디오 인코더 (20) 는 예측 프로세싱 유닛 (100), 차이 유닛 (102), 변환/양자화 프로세싱 유닛 (104), 탈양자화/역변환 유닛 (108), 예측 보상기 (110), 디블록 필터 유닛 (112), 샘플 적응적 오프셋 (SAO) 유닛 (114), 참조 픽처 메모리 (116), 엔트로피 인코딩 유닛 (118), 예측 파라미터 계산기 (120), 및 예측자 생성기 (122) 를 포함한다. 다른 예들에서, 비디오 인코더 (20) 는 더 많거나, 더 적거나, 또는 상이한 기능적 컴포넌트들을 포함할 수도 있다.
비디오 인코더 (20) 는 비디오 데이터를 수신할 수도 있다. 비디오 인코더 (20) 는 비디오 데이터의 픽처의 슬라이스에서의 각각의 CTU 를 인코딩할 수도 있다. CTU들 각각은 픽처의 동일한 사이즈의 루마 코딩 트리 블록들 (CTB들) 및 대응하는 CTB들과 연관될 수도 있다. CTU 를 인코딩하는 것의 일부로서, 예측 프로세싱 유닛 (100) 은 CTU 의 CTB들을 계속해서 더 작은 블록들로 분할하기 위해 쿼드-트리 파티셔닝을 수행할 수도 있다. 더 작은 블록들은 CU들의 코딩 블록들일 수도 있다. 예를 들어, 예측 프로세싱 유닛 (100) 은 CTU 와 연관된 CTB 를 4 개의 동일한 사이즈의 서브-블록들로 파티셔닝하고, 서브-블록들 중 하나 이상을 4 개의 동일한 사이즈의 서브-서브-블록들로 파티셔닝하며, 등등일 수도 있다.
비디오 인코더 (20) 는 CU들의 인코딩된 표현 (즉, 코딩된 CU들) 을 생성하기 위해 CTU 의 CU들을 인코딩할 수도 있다. CU 를 인코딩하는 것의 일부로서, 예측 프로세싱 유닛 (100) 은 CU 의 하나 이상의 PU들 간에 CU 와 연관된 코딩 블록들을 파티셔닝할 수도 있다. 따라서, 각각의 PU 는 루마 예측 블록 및 대응하는 크로마 예측 블록들과 연관될 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 다양한 사이즈들을 갖는 PU들을 지원할 수도 있다. CU의 사이즈는 CU 의 루마 코딩 블록의 사이즈를 지칭할 수도 있고 PU 의 사이즈는 PU 의 루마 예측 블록의 사이즈를 지칭할 수도 있다. 특정 CU 의 사이즈가 2Nx2N 인 것을 가정하면, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 인트라 예측을 위해 2Nx2N 또는 NxN 의 PU 사이즈들을 지원하고, 인터 예측을 위해 2Nx2N, 2NxN, Nx2N, NxN, 또는 유사한 것의 대칭적 PU 사이즈들을 지원할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 는 또한 인터 예측을 위해 2NxnU, 2NxnD, nLx2N, 및 nRx2N 의 PU 사이즈들에 대한 비대칭적 파티셔닝을 지원할 수도 있다. 일부 예들에서, 크로마 샘플들은 루마 샘플들에 대해 서브-샘플링된다.
예측 프로세싱 유닛 (100) 은 CU 의 각각의 PU 에 대해 인터 예측을 수행함으로써 PU 에 대한 예측적 데이터를 생성할 수도 있다. PU 에 대한 예측적 데이터는 PU 의 예측적 블록들 및 PU 에 대한 모션 정보를 포함할 수도 있다. 예측 프로세싱 유닛 (100) 은 PU 가 I 슬라이스에 있는지, P 슬라이스에 있는지, 또는 B 슬라이스에 있는지 여부에 따라 CU 의 PU 에 대해 상이한 동작들을 수행할 수도 있다. I 슬라이스에서, 모든 PU들은 인트라 예측된다. 이런 이유로, PU 가 I 슬라이스에 있다면, 예측 프로세싱 유닛 (100) 은 PU 에 대해 인터 예측을 수행하지 않는다. 따라서, I 모드에서 인코딩된 비디오 블록들의 경우, 예측적 블록은 동일한 프레임 내의 이전에 인코딩된 이웃하는 블록들로부터의 공간적 예측을 이용하여 형성된다.
P 슬라이스에서의 PU들은 인트라 예측되거나 단방향적으로 인터 예측될 수도 있다. 예를 들어, PU 가 P 슬라이스에 있다면, 예측 프로세싱 유닛 (100) 은 PU 에 대한 참조 영역을 위해 참조 픽처들의 리스트 (예를 들어, "RefPicList0") 에서 참조 픽처들을 탐색할 수도 있다. PU 에 대한 참조 영역은 참조 픽처 내의, PU 의 예측 블록들에 가장 밀접하게 대응하는 샘플 블록들 (즉, 모션 블록들) 을 포함하는 영역일 수도 있다. 예측 프로세싱 유닛 (100) 은 PU 에 대한 참조 영역을 포함하는 참조 픽처의 RefPicList0 에서의 포지션을 나타내는 참조 인덱스를 생성할 수도 있다. 또한, 예측 프로세싱 유닛 (100) 은 PU 의 예측 블록과 참조 영역과 연관된 참조 로케이션 간의 공간적 변위를 나타내는 모션 벡터를 생성할 수도 있다. 예를 들어, 모션 벡터는 현재의 디코딩된 픽처에서의 좌표들로부터 참조 픽처에서의 좌표들까지의 오프셋을 제공하는 2 차원 벡터일 수도 있다. 예측 프로세싱 유닛 (100) 은 참조 인덱스 및 모션 벡터를 PU 의 모션 정보로서 출력할 수도 있다. 예측 프로세싱 유닛 (100) 은 PU 의 모션 벡터에 의해 나타내진 참조 로케이션에서의 실제 또는 보간된 샘플들에 기초하여 PU 의 예측적 블록들을 생성할 수도 있다. 동일한 모션 벡터는 루마 및 크로마 예측적 블록들에 대해 이용될 수도 있다.
B 슬라이스에서의 PU들은 인트라 예측, 단방향적으로 인터 예측, 또는 양방향적으로 인터 예측될 수도 있다. 이런 이유로, PU 가 B 슬라이스에 있다면, 예측 프로세싱 유닛 (100) 은 PU 에 대해 단예측 또는 양예측을 수행할 수도 있다. PU 에 대해 단예측을 수행하기 위해, 예측 프로세싱 유닛 (100) 은 PU 에 대한 참조 영역을 위해 RefPicList0 또는 제 2 참조 픽처 리스트 ("RefPicList1") 의 참조 픽처들을 탐색할 수도 있다. 예측 프로세싱 유닛 (100) 은 PU 의 모션 정보로서, 참조 영역을 포함하는 참조 픽처의 RefPicList0 또는 RefPicList1 에서의 포지션을 나타내는 참조 인덱스, PU 의 샘플 블록과 참조 영역과 연관된 참조 로케이션 간의 공간적 변위를 나타내는 모션 벡터, 및 참조 픽처가 RefPicList0 에 있는지 RefPicList1 에 있는지 여부를 나타내는 하나 이상의 예측 방향 표시자들을 출력할 수도 있다. 예측 프로세싱 유닛 (100) 은 PU 의 모션 벡터에 의해 나타내진 참조 영역에서의 실제 또는 보간된 샘플들에 적어도 부분적으로 기초하여 PU 의 예측적 블록들을 생성할 수도 있다.
PU 에 대한 양방향적 인터 예측을 수행하기 위해, 예측 프로세싱 유닛 (100) 은 PU 에 대한 참조 영역을 위해 RefPicList0 에서의 참조 픽처들을 탐색할 수도 있고 또한 PU 에 대한 다른 참조 영역을 위해 RefPicList1 에서의 참조 픽처들을 탐색할 수도 있다. 예측 프로세싱 유닛 (100) 은 참조 영역들을 포함하는 참조 픽처들의 RefPicList0 및 RefPicList1 에서의 포지션들을 나타내는 참조 인덱스들을 생성할 수도 있다. 또한, 예측 프로세싱 유닛 (100) 은 참조 영역들과 연관된 참조 로케이션들과 PU 의 샘플 블록 간의 공간적 변위들을 나타내는 모션 벡터들을 생성할 수도 있다. PU 의 모션 정보는 참조 인덱스들 및 PU 의 모션 벡터들을 포함할 수도 있다. 예측 프로세싱 유닛 (100) 은 PU 의 모션 벡터에 의해 나타내진 참조 영역에서의 실제 또는 보간된 샘플들에 적어도 부분적으로 기초하여 PU 의 예측적 블록들을 생성할 수도 있다. 동일한 모션 벡터들은 루마 및 크로마 예측적 블록들에 대해 이용될 수도 있다.
대안적으로, 예측 프로세싱 유닛 (100) 은 PU 에 대해 인트라 예측을 수행함으로써 PU 에 대한 예측적 데이터를 생성할 수도 있다. PU 에 대한 예측적 데이터는 PU 에 대한 예측적 블록들 및 다양한 신택스 엘리먼트들을 포함할 수도 있다. 예측 프로세싱 유닛 (100) 은 I 슬라이스들, P 슬라이스들, 및 B 슬라이스들에서의 PU들에 대해 인트라 예측을 수행할 수도 있다.
PU 에 대해 인트라 예측을 수행하기 위해, 예측 프로세싱 유닛 (100) 은 PU 에 대한 예측적 데이터의 다수의 세트들을 생성하기 위해 다수의 인트라 예측 모드들을 이용할 수도 있다. 예측 프로세싱 유닛 (100) 은 이웃하는 PU들의 샘플들에 기초하여 PU 에 대한 예측적 블록을 생성할 수도 있다. 이웃하는 PU들은 PU들, CU들, 및 CTU들에 대한 좌-우로, 상부-저부로의 인코딩 순서들을 가정하여, PU 의 상위, 및 상위 및 우측으로, 상위 및 좌측으로, 또는 좌측으로일 수도 있다. 예측 프로세싱 유닛 (100) 은 다양한 개수들의 인트라 예측 모드들, 예를 들어, 33 개의 지향성 인트라 예측 모드들을 이용할 수도 있다. 일부 예들에서, 인트라 예측 모드들의 수는 PU 의 예측 블록들의 사이즈에 의존할 수도 있다.
예측 프로세싱 유닛 (100) 은 인터 예측 및 인트라 예측에 의해 생성된 예측적 데이터 중에서 CU 의 PU들에 대한 예측적 데이터를 선택할 수도 있다. 일부 예들에서, 예측 프로세싱 유닛 (100) 은 예측적 데이터의 세트들의 레이트/왜곡 메트릭들에 기초하여 CU 의 PU들에 대한 예측적 데이터를 선택한다. 선택된 예측적 데이터의 예측적 블록들은 본 명세서에서 선택된 예측적 블록들로 지칭될 수도 있다.
예측 프로세싱 유닛 (100) 은 CU 의 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 및 CU 의 PU들의 선택된 예측적 블록들 (예를 들어, 루마, Cb 및 Cr 블록들) 에 기초하여, 잔차 신호를 생성할 수도 있다. 잔차 신호는 잔차 루마 블록 및 CU 의 잔차 Cb 및 Cr 블록들을 포함할 수도 있다. 예를 들어, 예측 프로세싱 유닛 (100) 은 잔차 블록들에서의 각각의 샘플이 CU 의 코딩 블록에서의 샘플들과 CU 의 PU 의 대응하는 선택된 예측적 블록에서의 대응하는 샘플 간의 차이와 동일한 값을 갖도록 CU 의 잔차 블록들을 생성할 수도 있다. 잔차 신호에서의 잔차 블록의 각각의 샘플에 대해, 차이 유닛 (102) 은 샘플과 예측자 생성기 (122) 에 의해 생성된 샘플 예측자 간의 차이를 결정할 수도 있다.
변환/양자화 프로세싱 유닛 (104) 은 CU 의 (즉, 그와 연관된) 잔차 블록들을 CU 의 TU들과 연관된 변환 블록들로 파티셔닝하기 위해 쿼드-트리 파티셔닝을 수행할 수도 있다. 따라서, TU 는 루마 변환 블록 및 2 개의 크로마 변환 블록들을 포함할 (예를 들어, 그와 연관될) 수도 있다. CU 의 TU들의 루마 및 크로마 변환 블록들의 사이즈들 및 포지션들은 CU 의 PU들의 예측 블록들의 사이즈들 및 포지션들에 기초할 수도 있고 또는 기초하지 않을 수도 있다. "잔차 쿼드-트리" (RQT) 로 공지된 쿼드-트리 구조는 영역들 각각과 연관된 노드들을 포함할 수도 있다. CU 의 TU들은 RQT 의 리프 노드들에 대응할 수도 있다.
변환/양자화 프로세싱 유닛 (104) 은 TU 의 변환 블록들에 하나 이상의 변환들을 적용함으로써 CU 의 각각의 TU 에 대한 계수 블록들을 생성할 수도 있다. 변환/양자화 프로세싱 유닛 (104) 은 TU 와 연관된 변환 블록에 다양한 변환들을 적용할 수도 있다. 예를 들어, 변환/양자화 프로세싱 유닛 (104) 은 변환 블록에 이산 코사인 변환 (DCT), 지향성 변환, 또는 개념적으로 유사한 변환을 적용할 수도 있다. 일부 예들에서, 변환/양자화 프로세싱 유닛 (104) 은 변환 블록에 변환들을 적용하지 않는다. 이러한 예들 (예를 들어, 변환 스킵 모드를 이용하는 예들) 에서, 변환 블록은 계수 블록으로서 처리될 수도 있다.
변환/양자화 프로세싱 유닛 (104) 은 계수 블록에서의 변환 계수들을 양자화할 수도 있다. 양자화 프로세스는 변환 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 라운드-다운될 수도 있으며, 여기서 nm 보다 더 크다. 변환/양자화 프로세싱 유닛 (104) 은 CU 와 연관된 양자화 파라미터 (QP) 값에 기초하여 CU 의 TU 와 연관된 계수 블록을 양자화할 수도 있다. 변환/양자화 프로세싱 유닛 (104) 은 CU 와 연관된 QP 값을 조정함으로써 CU 와 연관된 계수 블록들에 적용된 양자화의 정도를 조정할 수도 있다. 양자화는 정보의 손실을 도입할 수도 있으며; 따라서 양자화된 변환 계수들은 오리지널 것들보다 더 낮은 정밀도를 가질 수도 있다.
탈양자화/역변환 프로세싱 유닛 (108) 은 계수 블록으로부터 잔차 블록을 복원하기 위해, 계수 블록에 각각 역양자화 및 역변환들을 적용할 수도 있다. 즉, 탈양자화/역변환 프로세싱 유닛 (108) 은 블록에 대한 잔차 신호를 복원할 수도 있다. 예측 보상기 (110) 는 TU 와 연관된 복원된 변환 블록을 생성하기 위해 복원된 잔차 블록을 예측 프로세싱 유닛 (100) 에 의해 생성된 하나 이상의 예측적 블록들로부터의 대응하는 샘플들에 가산할 수도 있다. 일부 예들에서, 예측 보상기 (110) 는 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호에 기초하여, 예측된 컬러 컴포넌트의 샘플들에 대한 예측된 샘플 값들을 (예를 들어, 선형 예측을 이용하여) 결정할 수도 있다. 예측 보상기 (110) 는 예측된 컬러 컴포넌트에 대한 잔차 신호의 샘플 값들을 복원하기 위해 예측된 샘플 값들을 예측된 컬러 컴포넌트에 대한 복원된 잔차 신호의 대응하는 샘플들에 가산할 수도 있다. 이 방식으로 CU 의 각각의 TU 에 대한 변환 블록들을 복원함으로써, 비디오 인코더 (20) 는 CU 의 코딩 블록들을 복원할 수도 있다.
디블록 필터 유닛 (112) 은 CU 의 코딩 블록들에서의 블록킹 아티팩트 (blocking artifact) 들을 감소시키기 위해 하나 이상의 디블록킹 (deblocking) 동작들을 수행할 수도 있다. SAO 필터 유닛 (114) 은 CU 의 코딩 블록들에 SAO 동작들을 적용할 수도 있다. 참조 픽처 메모리 (116) 는 SAO 필터 유닛 (114) 이 복원된 코딩 블록들에 대해 하나 이상의 SAO 동작들을 수행한 후 복원된 코딩 블록들을 저장할 수도 있다. 예측 프로세싱 유닛 (100) 은 다른 픽처들의 PU들에 대해 인터 예측을 수행하기 위해 복원된 코딩 블록들을 포함하는 참조 픽처를 이용할 수도 있다. 더욱이, 예측 프로세싱 유닛 (100) 은 CU 와 동일한 픽처에서의 다른 PU들에 대해 인트라 예측을 수행하기 위해 참조 픽처 메모리 (116) 에서의 복원된 코딩 블록들을 이용할 수도 있다.
엔트로피 인코딩 유닛 (118) 은 비디오 인코더 (20) 의 다른 기능적 컴포넌트들로부터 데이터를 수신할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 양자화 유닛 (106) 으로부터 계수 블록들을 수신할 수도 있고 예측 프로세싱 유닛 (100) 으로부터 신택스 엘리먼트들을 수신할 수도 있다. 엔트로피 인코딩 유닛 (118) 은 엔트로피 인코딩된 데이터를 생성하기 위해 데이터에 대해 하나 이상의 엔트로피 인코딩 동작들을 수행할 수도 있다. 예를 들어, 엔트로피 인코딩 유닛 (118) 은 그 데이터에 대해 CABAC 동작, 콘텍스트-적응적 가변 길이 코딩 (CAVLC) 동작, V2V (variable-to-variable) 길이 코딩 동작, 신택스 기반 콘텍스트-적응적 이진 산술 코딩 (SBAC) 동작, 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩 동작, 지수-골롬 인코딩 동작, 또는 다른 타입의 엔트로피 인코딩 동작을 수행할 수도 있다. 비디오 인코더 (20) 는 엔트로피 인코딩 유닛 (118) 에 의해 생성된 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수도 있다. 예를 들어, 비트스트림은 CU 의 RQT 를 표현하는 데이터를 포함할 수도 있다. 비트스트림은 또한 엔트로피 인코딩되지 않는 신택스 엘리먼트들을 포함할 수도 있다.
상기 설명한 바와 같이, 비디오 인코더 (20) 는 다른 컬러 컴포넌트들의 샘플 값들을 예측하기 위해 예측자 컴포넌트 (예를 들어, 루마, Cb, 또는 Cr) 의 잔차 샘플 값들을 이용할 수도 있다. 예시로서, 비디오 인코더 (20) 는 Cr 컬러 컴포넌트, 또는 Cb 컬러 컴포넌트의 샘플 값들 (예를 들어, 잔차 샘플 값들) 을 예측하기 위해 예측자 컴포넌트로서 루마 컴포넌트의 잔차 샘플 값들을 이용할 수도 있다. 도 2 의 예에서, 스위치 (101) 는, 예측 프로세싱 유닛 (100) 에 의해 생성된 잔차 신호가 예측자 컬러 컴포넌트에 대한 것인지 예측된 컬러 컴포넌트에 대한 것인지 여부에 기초하여, 잔차 신호가 차이 유닛 (102) 에 제공되는지 여부를 제어한다. 예시로서, 스위치 (101) 는 루마 컴포넌트에 대한 루마 잔차 신호를 제공할 수도 있지만, 그 대신 다른 컬러 컴포넌트에 대한 예측자 생성기 (122) 로부터의 예측자 잔차 신호를 제공할 수도 있다. 예를 들어, 루마 잔차는 Cr 및/또는 Cb 컬러 컴포넌트의 잔차에 대한 잔차 예측자로서 이용될 수도 있다. 도 2 의 예에 도시한 바와 같이, 예측 보상기 (110) 는 예측자와 예측된 컬러 컴포넌트들 양자에 대한 복원된 잔차 신호들을 수신할 수도 있다. 더욱이, 도 2 의 예에서, 스위치 (109) 는 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호들을 예측 파라미터 계산기 (120) 에 제공할 수도 있지만, 예측된 컬러 컴포넌트들에 대해 시그널링된 복원된 잔차를 예측 파라미터 계산기 (120) 에 제공하지는 않는다.
예측 파라미터 계산기 (120) 는 예측 파라미터들, 이를 테면 본 개시물의 다른 예들에서 설명된 예측 파라미터들 ab 를 결정하기 위해 복원된 잔차 신호를 프로세싱할 수도 있다. 예측자 생성기 (122) 는 예측 파라미터들 ab 에 기초하여 예측자 샘플 값들 (즉, ax+b) 을 결정할 수도 있다. 차이 유닛 (102) 은 예측자 생성기 (122) 에 의해 결정된 대응하는 예측자 샘플 값들에서 잔차 신호들에서의 잔차 샘플들의 값들을 감산함으로써 예측된 컬러 컴포넌트들에 대한 최종 잔차 신호들을 결정할 수도 있다.
도 3 은 본 개시물에서 설명된 기법들을 구현할 수도 있는 예시적인 비디오 디코더 (30) 를 예시하는 블록 다이어그램이다. 도 3 은 설명을 목적으로 제공되며, 본 개시물에서 대략적으로 예시화 및 설명된 바와 같이 기법들에 대해 제한하고 있지 않다. 설명을 목적으로, 본 개시물은 HEVC 코딩의 맥락에서 비디오 디코더 (30) 를 설명한다. 그러나, 본 개시물의 기법들은 다른 코딩 표준들 또는 방법들에 적용가능할 수도 있다.
도 3 의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 유닛 (150), 예측자 생성기 (152), 탈양자화/역변환 프로세싱 유닛 (154), 복원 유닛 (156), 예측 보상 유닛 (158), 디블록 필터 유닛 (160), SAO 필터 유닛 (162), 및 메모리 (164) 를 포함한다. 다른 예들에서, 비디오 디코더 (30) 는 더 많거나, 더 적거나, 또는 상이한 기능적 컴포넌트들을 포함할 수도 있다.
엔트로피 디코딩 유닛 (150) 는 NAL 유닛들을 수신할 수도 있고 신택스 엘리먼트들을 획득하기 위해 NAL 유닛들을 파싱할 수도 있다. 엔트로피 디코딩 유닛 (150) 은 NAL 유닛들에서의 엔트로피 인코딩된 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다. 예측자 생성기 (152), 탈양자화/역변환 프로세싱 유닛 (154), 복원 유닛 (156), 디블록 필터 유닛 (160) 및 SAO 필터 유닛 (162) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 디코딩된 비디오 데이터를 생성할 수도 있다.
비트스트림의 NAL 유닛들은 코딩된 슬라이스 NAL 유닛들을 포함할 수도 있다. 비트스트림을 디코딩하는 것의 일부로서, 엔트로피 디코딩 유닛 (150) 은 코딩된 슬라이스 NAL 유닛들로부터 신택스 엘리먼트들을 추출 및 엔트로피 디코딩할 수도 있다. 코딩된 슬라이스들 각각은 슬라이스 헤더 및 슬라이스 데이터를 포함할 수도 있다. 슬라이스 헤더는 슬라이스와 관련되는 신택스 엘리먼트들을 포함할 수도 있다. 슬라이스 헤더에서의 신택스 엘리먼트들은 슬라이스를 포함하는 픽처와 연관된 PPS 를 식별하는 신택스 엘리먼트를 포함할 수도 있다.
비트스트림으로부터 신택스 엘리먼트들을 디코딩하는 것에 더하여, 비디오 디코더 (30) 는 CU들에 대해 복원 동작들을 수행할 수도 있다. CU 에 대해 복원 동작을 수행하기 위해, 비디오 디코더 (30) 는 CU 의 각각의 TU 에 대해 복원 동작을 수행할 수도 있다. CU 의 각각의 TU 에 대해 복원 동작을 수행함으로써, 비디오 디코더 (30) 는 CU 의 잔차 블록들을 복원할 수도 있다.
CU 의 TU 에 대해 복원 동작을 수행하는 것의 일부로서, 탈양자화/역변환 프로세싱 유닛 (154) 은 TU 와 연관된 계수 블록들을 역양자화, 즉 탈양자화할 수도 있다. 탈양자화/역변환 프로세싱 유닛 (154) 은 양자화의 정도, 및 마찬가지로 탈양자화/역변환 프로세싱 유닛 (154) 이 적용할 역양자화의 정도를 결정하기 위해 TU 의 CU 와 연관된 QP 값을 이용할 수도 있다.
도 3 의 예에서, 스위치 (155) 는 탈양자화/역변환 프로세싱 유닛 (154) 에 의해 생성된 복원된 잔차 신호를 예측자 생성기 (152) 가 수신하는지 또는 복원 유닛 (156) 이 수신하는지 여부를 제어한다. 특히, 스위치 (155) 는 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호들을 예측자 생성기 (152) 에 제공하고 예측된 컬러 컴포넌트들에 대한 복원된 잔차 신호들을 복원 유닛 (156) 에 제공한다. 예측자 생성기 (152) 는 본 개시물의 다른 곳에 설명한 바와 같이 예측자 컴포넌트들을 결정할 수도 있다. 즉, 예측자 생성기 (152) 는 예측자 컬러 컴포넌트의 샘플들에 기초하여, 상이한 컬러 컴포넌트의 잔차 샘플들을 결정할 수도 있다. 복원 유닛 (156) 은 예측자 생성기 (152) 에 의해 생성된 예측자 컴포넌트들을 탈양자화/역변환 프로세싱 유닛 (154) 에 의해 생성된 대응하는 샘플들에 가산할 수도 있다.
탈양자화/역변환 프로세싱 유닛 (154) 이 계수 블록을 역양자화한 후, 탈양자화/역변환 프로세싱 유닛 (154) 은 TU 와 연관된 잔차 블록을 생성하기 위하여 계수 블록에 하나 이상의 역변환들을 적용할 수도 있다. 예를 들어, 탈양자화/역변환 프로세싱 유닛 (154) 은 계수 블록에 역 DCT, 역 정수 변환, 역 KLT (Karhunen-Loeve transform), 역 회전 변환, 역 지향성 변환, 또는 다른 역 변환을 적용할 수도 있다.
PU 가 인트라 예측을 이용하여 인코딩된다면, 예측 보상 유닛 (158) 은 PU 에 대한 예측적 블록들을 생성하기 위해 인트라 예측을 수행할 수도 있다. 예측 보상 유닛 (158) 은 공간적으로 이웃하는 PU들의 예측 블록들에 기초하여 PU 에 대한 예측적 루마, Cb 및 Cr 블록들을 생성하기 위해 인트라 예측 모드를 이용할 수도 있다. 예측 보상 유닛 (158) 은 비트스트림으로부터 획득된 (예를 들어, 디코딩된) 하나 이상의 신택스 엘리먼트들에 기초하여 PU 에 대한 인트라 예측 모드를 결정할 수도 있다.
예측 보상 유닛 (158) 은 비트스트림으로부터 추출된 신택스 엘리먼트들에 기초하여 제 1 참조 픽처 리스트 (RefPicList0) 및 제 2 참조 픽처 리스트 (RefPicList1) 를 구성할 수도 있다. 더욱이, PU 가 인터 예측을 이용하여 인코딩된다면, 예측 보상 유닛 (158) 은 PU 에 대한 모션 정보를 추출할 수도 있다. 예측 보상 유닛 (158) 은 PU 의 모션 정보에 기초하여, PU 에 대한 참조 블록들 (즉, 모션 블록들) 을 결정할 수도 있다. 예측 보상 유닛 (158) 은 PU 에 대한 하나 이상의 참조 블록들의 샘플들에 기초하여, PU 에 대한 예측적 루마, Cb 및 Cr 블록들을 생성할 수도 있다.
더욱이, 예측 보상 유닛 (158) 은 CU 의 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 을 복원하기 위해, CU 의 TU들의 변환 블록들 (예를 들어, 루마, Cb 및 Cr 변환 블록들) 및 CU 의 PU들의 예측적 블록들 (예를 들어, 루마, Cb 및 Cr 블록들), 즉 적용가능한 바와 같이, 인트라-예측 데이터 또는 인터-예측 데이터 중 어느 하나를 이용할 수도 있다. 예를 들어, 예측 보상 유닛 (158) 은 CU 의 루마, Cb 및 Cr 코딩 블록들을 복원하기 위해 루마, Cb 및 Cr 변환 블록들의 샘플들을 예측적 루마, Cb 및 Cr 블록들의 대응하는 샘플들에 가산할 수도 있다.
디블록 필터 유닛 (160) 은 CU 의 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 과 연관된 블록킹 아티팩트들을 감소시키기 위해 디블록킹 동작을 수행할 수도 있다. SAO 필터 유닛 (162) 은 CU 의 코딩 블록들에 대해 SAO 필터 동작들을 수행할 수도 있다. 비디오 디코더 (30) 는 메모리 (164) 에 CU 의 코딩 블록들 (예를 들어, 루마, Cb 및 Cr 코딩 블록들) 을 저장할 수도 있다. 메모리 (164) 는 후속의 모션 보상, 인트라 예측, 및 도 1 의 디스플레이 디바이스 (32) 와 같은 디스플레이 디바이스 상의 프리젠테이션을 위해 참조 픽처들을 제공할 수도 있다. 예를 들어, 비디오 디코더 (30) 는 메모리 (162) 에서의 루마, Cb 및 Cr 블록들 (즉, 디코딩된 픽처 버퍼) 에 기초하여, 다른 CU들의 PU들에 대해 인트라 예측 또는 인터 예측 동작들을 수행할 수도 있다. 이 방식으로, 비디오 디코더 (30) 는, 비트스트림으로부터, 계수 블록의 변환 계수 레벨들을 획득하고, 변환 계수 레벨들을 역양자화하고, 변환 계수 레벨들에 변환을 적용하여 변환 블록을 생성할 수도 있다. 더욱이, 비디오 디코더 (30) 는 변환 블록에 적어도 부분적으로 기초하여, 코딩 블록을 생성할 수도 있다. 비디오 디코더 (30) 는 디스플레이를 위해 코딩 블록을 출력할 수도 있다.
도 4 는 본 개시물의 하나 이상의 기법들에 따른, 비디오 인코더 (20) 의 예시적인 동작을 예시하는 플로우차트이다. 도 4 는 일 예로서 제시된다. 다른 예들은 더 많거나, 더 적거나, 또는 상이한 액션들을 포함할 수도 있다. 더욱이, 도 4 는 도 2 를 참조하여 설명된다. 그러나, 도 4 에 예시된 동작은 도 2 의 예에 도시된 것과는 상이한 환경들에서 수행될 수도 있다.
도 4 의 예에서, 비디오 인코더 (20) 의 예측 프로세싱 유닛 (100) 은 현재의 블록의 각각의 컬러 컴포넌트 (예를 들어, 루마, Cb, Cr 등) 에 대한 예측적 블록들을 생성하기 위해 인터 예측을 이용할 수도 있다 (250). 예를 들어, 현재의 블록은 CU 일 수도 있고 예측 프로세싱 유닛 (100) 의 CU 의 각각의 PU 에 대한 예측적 블록들을 생성하기 위해 인터 예측을 이용할 수도 있다. 다양한 예들에서, 예측 프로세싱 유닛 (100) 은 예측적 블록들을 생성하기 위해 시간적 인터 예측 및/또는 뷰간 (inter-view) 예측을 이용할 수도 있다.
더욱이, 예측 프로세싱 유닛 (100) 은 현재의 블록에 대한 잔차 신호들을 생성할 수도 있다 (252). 현재의 블록에 대한 잔차 신호들은 컬러 컴포넌트들 각각에 대한 잔차 신호를 포함할 수도 있다. 컬러 컴포넌트에 대한 잔차 신호는 샘플의 오리지널 값과 컬러 컴포넌트에 대한 예측적 블록에서의 대응하는 샘플의 값 간의 차이와 동일한 값을 각각 갖는 잔차 샘플들을 포함할 수도 있다. 예를 들어, 현재의 블록은 CU 일 수도 있고 예측 프로세싱 유닛 (100) 은 CU 의 코딩 블록의 각 개별의 샘플에 대해, 대응하는 잔차 샘플의 값을 결정할 수도 있다. 이 예에서, 대응하는 잔차 샘플의 값은 개별의 샘플의 값 마이너스 CU 의 PU 의 예측적 블록에서의 대응하는 샘플의 값과 동일할 수도 있다.
컬러 컴포넌트들은 예측자 컬러 컴포넌트 및 적어도 하나의 예측된 컬러 컴포넌트를 포함할 수도 있다. 일부 예들에서, 루마 컴포넌트는 예측자 컬러 컴포넌트이고 Cb 및 Cr 은 예측된 컬러 컴포넌트들이다. 다른 예들에서, 크로마 컬러 컴포넌트 (예를 들어, Cb 또는 Cr) 는 예측자 컬러 컴포넌트이고 루마 컴포넌트는 예측된 컬러 컴포넌트이다. 비디오 인코더 (20) 의 변환/양자화 프로세싱 유닛 (104) 은 예측자 컬러 컴포넌트에 대한 잔차 신호를 변환 및 양자화할 수도 있다 (254). 예를 들어, 현재의 블록은 CU 일 수도 있고 변환/양자화 프로세싱 유닛 (104) 은 예측자 컬러 컴포넌트에 대한 잔차 신호를 하나 이상의 변환 블록들로 파티셔닝할 수도 있다. 이 예에서, 변환 블록들 각각은 CU 에 대한 TU 에 대응한다. 더욱이, 이 예에서, 변환/양자화 프로세싱 유닛 (104) 은 변환 계수 블록들을 생성하기 위해 변환 블록들 각각에 변환 (예를 들어, 이산 코사인 변환) 을 적용할 수도 있다. 더욱이, 이 예에서, 변환/양자화 프로세싱 유닛 (104) 은 변환 계수 블록들에서의 변환 계수들을 양자화할 수도 있다.
추가적으로, 도 4 의 예에서, 엔트로피 인코딩 유닛 (118) 은 예측자 컬러 컴포넌트에 대한 변환된 및 양자화된 잔차 신호에 대한 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다 (256). 예를 들어, 현재의 블록은 CU 일 수도 있고 엔트로피 인코딩 유닛 (118) 은 CU 의 TU들에 대응하는 변환 계수 블록들의 변환 계수들을 표현하는 특정 신택스 엘리먼트들에 CABAC 인코딩을 적용할 수도 있다. 엔트로피 인코딩 유닛 (118) 은 비트스트림에 예측자 컴포넌트에 대한 잔차 신호에 대한 엔트로피 인코딩된 신택스 엘리먼트들을 포함할 수도 있다 (258). 비트스트림은 현재의 블록을 포함하는 비디오 데이터의 인코딩된 표현을 포함할 수도 있다.
도 4 의 예에서, 탈양자화/역변환 프로세싱 유닛 (108) 은 예측자 컬러 컴포넌트에 대한 양자화된 및 변환된 잔차 신호를 탈양자화 및 역변환할 수도 있다 (260). 이 방식으로, 탈양자화/역변환 프로세싱 유닛 (108) 은 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호를 생성할 수도 있다. 예를 들어, 현재의 블록은 CU 일 수도 있고 탈양자화/역변환 프로세싱 유닛 (108) 은 CU 의 TU들에 대응하는 변환 계수 블록들의 변환 계수들을 탈양자화할 수도 있다. 더욱이, 이 예에서, 탈양자화/역변환 프로세싱 유닛 (108) 은 탈양자화된 변환 계수 블록들에 역변환 (예를 들어, 역 이산 코사인 변환) 을 적용하여, CU 의 TU들에 대한 변환 블록들을 복원할 수도 있다. 이 예에서, 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호는 복원된 변환 블록들을 포함할 수도 있다.
더욱이, 도 4 의 예에서, 예측 파라미터 계산기 (120) 는 하나 이상의 예측 파라미터들을 계산할 수도 있다 (262). 일부 예들에서, 예측 파라미터 계산기 (120) 는 예측자 컴포넌트에 대한 복원된 잔차 신호에 기초하여 하나 이상의 예측 파라미터들을 계산할 수도 있다.
일부 예들에서, 예측자 파라미터 계산기 (120) 는 예측 파라미터 a 를 계산한다. 일부 이러한 예들에서, 예측 파라미터 a 는 Cov(Yref, Cref)/Var(Yref) 와 동일하며, 여기서 Cov() 는 공분산 함수이고, Var() 는 분산 함수이며, Yref 및 Cref 는 각각 예측자 컴포넌트에 대한 및 예측될 컴포넌트에 대한 모션 블록에서의 참조 신호이다. 다른 예들에서, 예측 파라미터 a 는 Cov(Yres', Cres)/Var(Yres') 와 동일하며, 여기서 Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Yres' 는 예측자 컴포넌트에 대한 현재의 블록의 복원된 잔차 신호이며, Cres 는 예측될 컴포넌트에 대한 현재의 블록에서의 잔차 신호이다.
더욱이, 일부 예들에서, 비디오 코더는 예측자 샘플 값을 x'= ax+b 로서 결정할 수도 있다. 일부 이러한 예들에서, 예측 파라미터 계산기 (120) 는 예측 파라미터 b 를 계산한다. 일부 이러한 예들에서, 예측 파라미터 계산기 (120) 는 예측 파라미터 b 가 Mean(Cref)-Mean(Yref) 와 동일하도록 예측 파라미터 b 를 계산할 수도 있으며, 여기서 Mean() 은 평균 함수이고, Yref 및 Cref 는 각각 예측자 컴포넌트에 대한 및 예측될 컴포넌트에 대한 모션 블록에서의 참조 신호이다. 다른 예들에서, 예측 파라미터 계산기 (120) 는 예측 파라미터 b 가 Mean(Cres)-Mean(Yres') 와 동일하도록 예측 파라미터 b 를 계산할 수도 있으며, 여기서 Mean() 은 평균 함수이고, Yres' 는 예측자 컴포넌트에 대한 현재의 블록의 복원된 잔차 신호이며, Cres 는 예측될 컴포넌트에 대한 현재의 블록에서의 잔차 신호이다.
도 4 의 예에서, 비디오 인코더 (20) 는 현재의 블록의 잔차 신호들 각각에 대해 (예를 들어, 루마 잔차 신호, Cb 잔차 신호, 및 Cr 잔차 신호에 대해) 액션들 (268) 내지 (276) 을 수행할 수도 있다. 따라서, 설명의 용이함을 위해, 본 개시물은 비디오 인코더 (20) 가 액션들 (268) 내지 (276) 을 현재 수행중인 잔차 신호를 현재의 예측된 컬러 컴포넌트에 대한 잔차 신호로서 지칭할 수도 있다. 이에 따라, 도 4 의 예에서, 비디오 인코더 (20) 의 예측자 생성기 (122) 는 현재의 예측된 컬러 컴포넌트에 대한 잔차 신호의 각각의 잔차 샘플들에 대한 예측자 샘플들을 결정할 수도 있다 (268). 일부 예들에서, 예측자 생성기 (122) 는 x' 가 ax 와 동일하도록 예측자 샘플 x' 를 결정하며, 여기서 a 는 예측 파라미터 계산기 (120) 에 의해 계산된 예측 파라미터이고, x 는 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호에서의 복원된 잔차 샘플이다. 더욱이, 일부 예들에서, 예측자 생성기 (122) 는 x' 가 ax+b 와 동일하도록 예측자 샘플 x' 를 결정하며, 여기서 ab 는 예측 파라미터 계산기 (120) 에 의해 계산된 예측 파라미터들이고, x 는 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호에서의 복원된 잔차 샘플이다. 일부 예들에서, x 는 x' 와 병치된다.
추가적으로, 도 4 의 예에서, 비디오 인코더 (20) 의 차이 유닛 (102) 은 현재의 예측된 컬러 컴포넌트에 대한 비상관된 (decorrelated) 잔차 샘플들의 값들을 결정할 수도 있다 (270). 차이 유닛 (102) 은 예측자 생성기에 의해 생성된 예측자 샘플들에 적어도 부분적으로 기초하여, 현재의 예측된 컬러 컴포넌트에 대한 비상관된 잔차 샘플들의 값들을 결정할 수도 있다. 일부 예들에서, 차이 유닛 (102) 은 비상관된 잔차 샘플의 값이 현재의 예측된 컬러 컴포넌트에 대한 잔차 신호에서의 잔차 샘플의 값과 예측자 생성기 (122) 에 의해 생성된 대응하는 예측자 샘플의 값 간의 차이와 동일하도록 비상관된 잔차 샘플의 값을 결정할 수도 있다. 이 방식으로, 차이 유닛 (102) 은 현재의 예측된 컬러 컴포넌트에 대한 비상관된 잔차 신호를 생성할 수도 있다. 현재의 예측된 컬러 컴포넌트에 대한 비상관된 잔차 신호는 차이 유닛 (102) 에 의해 결정된 비상관된 샘플들을 포함할 수도 있다.
비디오 인코더 (20) 의 변환/양자화 프로세싱 유닛 (104) 은 현재의 예측된 컬러 컴포넌트에 대한 비상관된 잔차 신호를 변환 및 양자화할 수도 있다 (272). 예를 들어, 현재의 블록은 CU 일 수도 있고 변환/양자화 프로세싱 유닛 (104) 은 현재의 예측된 컬러 컴포넌트에 대한 비상관된 잔차 신호를 하나 이상의 변환 블록들로 파티셔닝할 수도 있다. 이 예에서, 변환 블록들 각각은 CU 에 대한 TU 에 대응한다. 더욱이, 이 예에서, 변환/양자화 프로세싱 유닛 (104) 은 변환 계수 블록들을 생성하기 위해 변환 블록들 각각에 변환 (예를 들어, 이산 코사인 변환) 을 적용할 수도 있다. 더욱이, 이 예에서, 변환/양자화 프로세싱 유닛 (104) 은 변환 계수 블록들에서의 변환 계수들을 양자화할 수도 있다.
추가적으로, 도 4 의 예에서, 엔트로피 인코딩 유닛 (118) 은 현재의 예측된 컬러 컴포넌트에 대한 변환된 및 양자화된 비상관된 잔차 신호에 대한 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다 (274). 예를 들어, 현재의 블록은 CU 일 수도 있으며, 엔트로피 인코딩 유닛 (118) 은 CU 의 TU들에 대응하는 변환 계수 블록들의 변환 계수들을 표현하는 특정 신택스 엘리먼트들에 CABAC 인코딩을 적용할 수도 있다. 엔트로피 인코딩 유닛 (118) 은 비트스트림에 현재의 예측된 컴포넌트에 대한 비상관된 잔차 신호에 대한 엔트로피 인코딩된 신택스 엘리먼트들을 포함할 수도 있다 (276).
도 5 는 본 개시물의 하나 이상의 기법들에 따른, 비디오 디코더 (30) 의 예시적인 동작을 예시하는 플로우차트이다. 도 5 는 일 예로서 제시된다. 다른 예들은 더 많거나, 더 적거나, 또는 상이한 액션들을 포함할 수도 있다. 더욱이, 도 5 는 도 3 을 참조하여 설명된다. 그러나, 도 5 에 예시된 동작은 도 3 의 예에 도시된 것과는 상이한 환경들에서 수행될 수도 있다.
도 5 의 예에서, 비디오 디코더 (30) 의 엔트로피 디코딩 유닛 (150) 은 현재의 블록에 대한 잔차 신호들에 대한 신택스 엘리먼트들을 엔트로피 디코딩할 수도 있다 (300). 일부 예들에서, 현재의 블록은 CU, PU, 매크로블록, 매크로블록 파티션, 또는 다른 타입의 비디오 블록일 수도 있다. 현재의 블록에 대한 잔차 신호들은 예측자 컬러 컴포넌트에 대한 잔차 신호 및 하나 이상의 예측된 컬러 컴포넌트들에 대한 하나 이상의 비상관된 잔차 신호들을 포함할 수도 있다. 현재의 블록에 대한 잔차 신호들은 현재의 블록의 잔차 샘플들을 표현하는 데이터를 포함할 수도 있다. 예를 들어, 일부 예들에서, 현재의 블록의 잔차 샘플들을 표현하는 데이터는 변환 계수들을 포함할 수도 있다.
더욱이, 도 5 의 예에서, 비디오 디코더 (30) 의 탈양자화/역변환 프로세싱 유닛 (154) 은 현재의 블록에 대한 잔차 신호들을 탈양자화 및 역변환할 수도 있다 (302). 이 방식으로, 탈양자화/역변환 프로세싱 유닛 (108) 은 현재의 블록에 대한 복원된 잔차 신호들을 생성할 수도 있다. 예를 들어, 현재의 블록은 CU 일 수도 있고 탈양자화/역변환 프로세싱 유닛 (108) 은 CU 의 TU들에 대응하는 변환 계수 블록들의 변환 계수들을 탈양자화할 수도 있다. 더욱이, 이 예에서, 탈양자화/역변환 프로세싱 유닛 (108) 은 탈양자화된 변환 계수 블록들에 역 변환 (예를 들어, 역 이산 코사인 변환) 을 적용하여, CU 의 TU들에 대한 변환 블록들을 복원할 수도 있다. 이 예에서, 컬러 컴포넌트에 대한 복원된 잔차 신호는 복원된 변환 블록들을 포함할 수도 있다.
비디오 디코더 (30) 는 예측된 컬러 컴포넌트들 각각에 대한 복원된 잔차 신호들에 대하여 액션들 (304) 및 (306) 을 수행할 수도 있다. 따라서, 설명의 용이함을 위해, 본 개시물은 비디오 디코더 (30) 가 액션들 (304) 및 (306) 을 현재 수행중인 복원된 잔차 신호를 현재의 예측된 컬러 컴포넌트에 대한 복원된 잔차 신호로서 지칭할 수도 있다. 이에 따라, 도 5 의 예에서, 비디오 디코더 (30) 의 예측자 생성기 (152) 는 현재의 예측된 컬러 컴포넌트에 대한 복원된 잔차 신호의 각각의 잔차 샘플에 대한 예측자 샘플들을 결정할 수도 있다 (304). 일부 예들에서, 예측자 생성기 (152) 는 x' 가 ax 와 동일하도록 예측자 샘플 x' 를 결정하며, 여기서 a 는 예측 파라미터이고 x 는 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호에서의 복원된 잔차 샘플이다. 더욱이, 일부 예들에서, 예측자 생성기 (152) 는 x' 가 ax+b 와 동일하도록 예측자 샘플 x' 를 결정하며, 여기서 ab 는 예측 파라미터들이고 x 는 예측자 컬러 컴포넌트에 대한 복원된 잔차 신호에서의 복원된 잔차 샘플이다. 일부 예들에서, x 는 x' 와 병치된다.
추가적으로, 도 5 의 예에서, 복원 유닛 (156) 은 현재의 예측된 컬러 컴포넌트에 대한 잔차 샘플들의 값들을 결정할 수도 있다 (306). 복원 유닛 (156) 은, 예측자 생성기 (152) 에 의해 생성된 예측자 샘플들에 적어도 부분적으로 기초하여, 현재의 예측된 컬러 컴포넌트에 대한 잔차 샘플들의 값들을 결정할 수도 있다. 일부 예들에서, 복원 유닛 (156) 은, 잔차 샘플의 값이 현재의 예측된 컬러 컴포넌트에 대한 복원된 잔차 신호에서의 잔차 샘플의 값과 예측자 생성기 (152) 에 의해 생성된 대응하는 예측자 샘플의 값의 합과 동일하도록 잔차 샘플의 값을 결정할 수도 있다. 이 방식으로, 차이 유닛 (102) 은 현재의 예측된 컬러 컴포넌트에 대한 복원된 잔차 신호를 생성할 수도 있다. 현재의 예측된 컬러 컴포넌트에 대한 복원된 잔차 신호는 복원 유닛 (156) 에 의해 결정된 샘플들을 포함할 수도 있다.
비디오 디코더 (30) 는 예측자 컬러 컴포넌트 및 예측된 컬러 컴포넌트들을 포함하는, 컬러 컴포넌트들 각각에 대하여 도 5 의 액션들 (308) 내지 (318) 을 수행할 수도 있다. 이에 따라, 설명의 용이함을 위해, 본 개시물은 비디오 디코더 (30) 가 액션들 (308) 내지 (318) 을 수행하고 있는 컬러 컴포넌트를 현재의 컬러 컴포넌트로 지칭할 수도 있다.
도 5 의 예에서, 비디오 디코더 (30) 의 예측 보상 유닛 (158) 은 현재의 컬러 컴포넌트에 대한 하나 이상의 예측적 블록들을 생성하기 위해 인터 예측을 이용할 수도 있다 (308). 예를 들어, 현재의 블록이 CU 라면, 예측 보상 유닛 (158) 은 CU 의 PU들에 대한 예측적 블록들을 생성하기 위해 인터 예측을 이용할 수도 있다. 이 예에서, 예측적 블록들은 현재의 컬러 컴포넌트의 샘플들을 포함할 수도 있다. 일부 예들에서, 예측 보상 유닛 (158) 은 예측적 블록들을 생성하기 위해 시간적 인터 예측 또는 뷰간 예측을 이용할 수도 있다. 도 3 의 예에 도시한 바와 같이, 예측 보상 유닛 (158) 은 예측적 블록들을 생성하기 위해 인터 예측을 이용할 때 메모리 (164) 에 저장된 비디오 데이터를 이용할 수도 있다.
더욱이, 도 5 의 예에서, 예측 보상 유닛 (158) 은 현재의 블록에 대한 현재의 컬러 컴포넌트의 샘플 값들을 복원할 수도 있다 (310). 예를 들어, 예측 보상 유닛 (158) 은 샘플 값이 (예를 들어, 인트라 또는 인터 예측을 이용하여 생성된) 예측적 블록들 중 하나에서의 대응하는 샘플과 현재의 컬러 컴포넌트에 대한 복원된 잔차 신호 (예를 들어, 예측된 컬러 컴포넌트에 대한 복원된 잔차 신호) 에서의 대응하는 샘플의 합과 동일하도록 현재의 블록의 샘플 값을 복원할 수도 있다. 현재의 블록이 CU 인 일부 예들에서, 예측 보상 유닛 (158) 은 CU 의 PU 에 대한 예측 블록에서의 대응하는 샘플과 CU 의 TU 의 변환 블록에서의 대응하는 샘플을 가산함으로써 현재의 컬러 컴포넌트에 대한 코딩 블록에서의 샘플들의 값들을 결정할 수도 있다.
도 5 의 예에서, 비디오 디코더 (30) 의 디블록 필터 유닛 (160) 은 현재의 블록에 대한 현재의 컬러 컴포넌트의 복원된 샘플 값들에 디블록 필터를 적용할 수도 있다 (312). 더욱이, 비디오 디코더 (30) 의 SAO 필터 유닛 (162) 은 현재의 블록에 대한 현재의 컬러 컴포넌트의 복원된 샘플 값들에 SAO 필터를 적용할 수도 있다 (314). 본 개시물은 결과의 데이터를 현재의 컬러 컴포넌트에 대한 복원된 신호로 지칭할 수도 있다. 비디오 디코더 (30) 의 메모리 (164) 는 현재의 컬러 컴포넌트에 대한 복원된 신호를 저장할 수도 있다 (316). 더욱이, 비디오 디코더 (30) 는 현재의 컬러 컴포넌트에 대한 복원된 신호를 출력할 수도 있다 (318).
도 6 은 본 개시물의 하나 이상의 기법들에 따른, 비디오 인코더의 예시적인 동작을 예시하는 플로우차트이다. 도 6 은 일 예로서 제시된다. 다른 예들은 더 많거나, 더 적거나, 또는 상이한 액션들을 포함할 수도 있다.
도 6 의 예에서, 비디오 인코더 (20) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 생성한다 (400). 비트스트림을 생성하는 것의 일부로서, 비디오 인코더 (20) 는 모션 예측의 이용에 의해, 제 1 컬러 컴포넌트 (예를 들어, 예측자 컬러 컴포넌트) 에 대한 잔차 신호 및 제 2 컬러 컴포넌트 (예를 들어, 예측된 컬러 컴포넌트) 에 대한 잔차 신호를 생성할 수도 있다 (402). 예를 들어, 비디오 인코더 (20) 가 제 1 컬러 컴포넌트 및 제 2 컬러 컴포넌트에 대한 잔차 신호를 생성하기 위해 모션 예측을 이용하는 경우, 비디오 인코더 (20) 는 단방향적 인터 예측 또는 양방향적 인터 예측을 이용하여 제 1 컬러 컴포넌트의 예측적 블록 및 제 2 컬러 컴포넌트의 예측적 블록을 결정할 수도 있다. 단방향적 및 양방향적 인터 예측의 예들은 본 개시물의 다른 곳에서 설명된다. 이 예에서, 비디오 인코더 (20) 는 제 1 컬러 컴포넌트에 대한 잔차 신호를 제 1 컬러 컴포넌트에 대한 블록의 샘플들과 제 1 컬러 컴포넌트에 대한 예측적 블록의 샘플들 간의 차이로서 결정할 수도 있다. 본 개시물의 다른 곳에서 설명한 바와 같이, 비디오 인코더 (20) 는 제 1 컬러 컴포넌트의 복원된 잔차 샘플들을 이용하여 제 2 컬러 컴포넌트의 예측된 샘플 값들을 (예를 들어, 선형 보간을 이용하여) 결정할 수도 있다. 더욱이, 비디오 인코더 (20) 는 제 2 컬러 컴포넌트에 대한 잔차 신호를 제 2 컬러 컴포넌트에 대한 블록의 샘플들과 제 2 컬러 컴포넌트에 대한 예측적 블록의 샘플들 간의 차이로서 결정할 수도 있다. 이 예에서, 비디오 인코더 (20) 는 제 2 컬러 컴포넌트의 대응하는 예측된 샘플 값들에서 제 2 컬러 컴포넌트에 대한 잔차 신호의 샘플들을 감산할 수도 있다.
더욱이, 비디오 인코더 (20) 는 제 1 컬러 컴포넌트의 잔차 신호를 복원할 수도 있다 (404). 제 1 컬러 컴포넌트의 복원된 잔차 신호는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함할 수도 있다. 비디오 인코더 (20) 는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측할 수도 있다 (406).
도 7 은 본 개시물의 하나 이상의 기법들에 따른, 비디오 디코더의 예시적인 동작을 예시하는 플로우차트이다. 도 7 은 일 예로서 제시된다. 다른 예들은 더 많거나, 더 적거나, 또는 상이한 액션들을 포함할 수도 있다.
도 7 의 예에서, 비디오 디코더 (30) 는 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩한다 (450). 비트스트림을 디코딩하는 것의 일부로서, 비디오 디코더 (30) 는 제 1 컬러 컴포넌트 (예를 들어, 예측자 컬러 컴포넌트) 의 잔차 신호를 복원할 수도 있다 (452). 잔차 신호를 복원하는 것은 잔차 신호를 결정하기 위해 제 1 컬러 컴포넌트에 대한 계수 값들을 탈양자화하고 그 계수 값들에 역변환을 적용하는 것을 수반할 수도 있다. 제 1 컬러 컴포넌트의 복원된 잔차 신호는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함할 수도 있다. 제 1 컬러 컴포넌트의 잔차 신호는 모션 예측을 이용하여 생성될 수도 있다. 예를 들어, 제 1 컬러 컴포넌트에 대한 잔차 신호는 모션 예측을 이용하여 비디오 인코더에 의해 생성되고 비트스트림에서 시그널링될 수도 있다. 모션 예측을 이용하여 제 1 컬러 컴포넌트에 대한 잔차 신호를 생성하기 위해, 비디오 인코더는 단방향적 인터 예측 또는 양방향적 인터 예측을 이용하여 제 1 컬러 컴포넌트의 예측적 블록을 결정할 수도 있다. 단방향적 및 양방향적 인터 예측의 예들은 본 개시물의 다른 곳에서 설명된다. 이 예에서, 비디오 인코더는 제 1 컬러 컴포넌트에 대한 잔차 신호를 제 1 컬러 컴포넌트에 대한 블록의 샘플들과 제 1 컬러 컴포넌트에 대한 예측적 블록의 샘플들 간의 차이로서 결정할 수도 있다. 비디오 인코더는 제 1 컬러 컴포넌트에 대한 잔차 신호를 변환 및 양자화하고 결과의 데이터를 비트스트림에서 시그널링할 수도 있다.
도 7 의 예에서, 비디오 디코더 (30) 는 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측할 수도 있다 (454). 예를 들어, 비디오 디코더 (30) 가 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 이용하여 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하는 경우, 비디오 디코더 (30) 는 제 1 컬러 컴포넌트의 복원된 잔차 샘플들을 이용하여 제 2 컬러 컴포넌트의 예측된 샘플 값들을 (예를 들어, 선형 예측을 이용하여) 결정할 수도 있다. 이 예에서, 비디오 디코더 (30) 는 제 2 컬러 컴포넌트에 대한 잔차 신호를 복원하기 위해 제 2 컬러 컴포넌트의 예측된 샘플 값들을 제 2 컬러 컴포넌트의 시그널링된 값들에 가산할 수도 있다.
다음의 단락들은 본 개시물의 추가적인 실시예들을 제공한다.
실시예 1. 비디오 데이터를 디코딩하는 방법으로서, 그 방법은 :
비트스트림으로부터, 예측 유닛 (PU) 에 대한 제 1 잔차 블록 및 PU 에 대한 제 2 잔차 블록을 표현하는 신택스 엘리먼트들을 획득하는 단계로서, 제 1 잔차 블록은 제 1 컬러 컴포넌트의 잔차 샘플들을 포함하고, 제 2 잔차 블록은 제 2 컬러 컴포넌트의 잔차 샘플들을 포함하고, 제 2 컬러 컴포넌트는 제 1 컬러 컴포넌트와는 상이한, 상기 신택스 엘리먼트들을 획득하는 단계; PU 에 대한 모션 벡터에 적어도 부분적으로 기초하여, PU 에 대한 제 1 모션 블록 및 PU 에 대한 제 2 모션 블록을 결정하는 단계로서, PU 에 대한 제 1 모션 블록은 제 1 컬러 컴포넌트의 샘플들을 포함하고, PU 에 대한 제 2 모션 블록은 제 2 컬러 컴포넌트에 대한 샘플들을 포함하는, PU 에 대한 제 1 모션 블록 및 PU 에 대한 제 2 모션 블록을 결정하는 단계; PU 에 대한 제 1 잔차 블록 및 PU 에 대한 제 1 모션 블록에 적어도 부분적으로 기초하여, PU 에 대한 제 1 복원된 블록을 생성하는 단계로서, 제 1 복원된 블록은 제 1 컬러 컴포넌트의 샘플들을 포함하는, 상기 PU 에 대한 제 1 복원된 블록을 생성하는 단계; PU 에 대한 제 2 잔차 블록, PU 에 대한 제 2 모션 블록, 및 PU 에 대한 제 1 복원된 블록에 적어도 부분적으로 기초하여, PU 에 대한 제 2 복원된 블록을 결정하는 단계로서, PU 에 대한 제 2 복원된 블록은 제 2 컬러 컴포넌트의 샘플들을 포함하는, 상기 PU 에 대한 제 2 복원된 블록을 결정하는 단계; 및 PU 에 대한 제 1 및 제 2 복원된 블록들에 기초하여 비디오를 출력하는 단계를 포함한다.
실시예 2. 실시예 1 의 방법에 있어서, PU 에 대한 제 2 복원된 블록을 결정하는 단계는 : 제 2 잔차 블록에서의 샘플 및 제 2 모션 블록에서의 샘플에 적어도 부분적으로 기초하여, 초기 샘플을 결정하는 단계; 및 PU 에 대한 제 2 복원된 블록에서의 최종 샘플을 y' = y+x' 로서 결정하는 단계를 포함하며, y' 는 최종 샘플이고, y 는 초기 샘플이고, x' = ax 이며, x 는 제 1 잔차 블록에서의 잔차 샘플이고, a 는 Cov(Yref, Cref)/Var(Yref) 이고, Cov() 는 공분산이고, Var() 는 분산이고, Yref 는 제 1 모션 블록에서의 샘플이며, Cref 는 제 2 모션 블록에서의 샘플이다.
실시예 3. 실시예 1 의 방법에 있어서, PU 에 대한 제 2 복원된 블록을 결정하는 단계는 : 제 2 잔차 블록에서의 샘플 및 제 2 모션 블록에서의 샘플에 적어도 부분적으로 기초하여, 초기 샘플을 결정하는 단계; 및 PU 에 대한 제 2 복원된 블록에서의 최종 샘플을 y' = y+x' 로서 결정하는 단계를 포함하며, y' 는 최종 샘플이고, y 는 초기 샘플이며, x' = ax+b 이며, x 는 제 1 잔차 블록에서의 잔차 샘플이고, a 는 Cov(Yres, Cres)/Var(Yres) 와 동일하고 b 는 Mean(Cres) - a·Mean(Yres) 와 동일하며, Cov() 는 공분산이고, Var() 는 분산이고, Yres 는 제 1 잔차 샘플이며, Cres 는 제 2 잔차 샘플이다.
실시예 4. 실시예 2 또는 실시예 3 의 방법은, 비트스트림으로부터, 값들 a 및 b 를 획득하는 단계를 더 포함한다.
실시예 5. 실시예 1 의 방법에 있어서, 제 1 및 제 2 컬러 컴포넌트들은 : 루마 컴포넌트, Cb 크로마 컴포넌트, 및 Cr 크로마 컴포넌트 중 상이한 컴포넌트들이다.
실시예 6. 비디오 데이터를 디코딩하는 방법으로서, 그 방법은 실시예 1 내지 실시예 5 중 임의의 실시예를 포함한다.
실시예 7. 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스로서, 그 하나 이상의 프로세서들은 실시예 1 내지 실시예 5 중 임의의 실시예의 방법들을 수행하도록 구성된다.
실시예 8. 비디오 디코딩 디바이스로서, 그 디바이스는 실시예 1 내지 실시예 5 중 임의의 실시예의 방법들을 수행하는 수단을 포함한다.
실시예 9. 명령들을 저장한 컴퓨터 판독가능 저장 매체로서, 명령들은, 실행될 때, 실시예 1 내지 실시예 5 중 임의의 실시예의 방법들을 수행하도록 비디오 디코더를 구성한다.
실시예 10. 비디오 데이터를 인코딩하는 방법으로서, 그 방법은 : PU 에 대한 모션 벡터를 결정하는 단계; PU 에 대한 모션 벡터에 적어도 부분적으로 기초하여, PU 에 대한 제 1 모션 블록 및 PU 에 대한 제 2 모션 블록을 결정하는 단계로서, PU 에 대한 제 1 모션 블록은 제 1 컬러 컴포넌트의 샘플들을 포함하고 PU 에 대한 제 2 모션 블록은 제 2 컬러 컴포넌트의 샘플들을 포함하며, 제 2 컬러 컴포넌트는 제 1 컬러 컴포넌트와는 상이한, 상기 PU 에 대한 제 1 모션 블록 및 PU 에 대한 제 2 모션 블록을 결정하는 단계; PU 에 대한 제 1 오리지널 블록 및 PU 에 대한 제 1 모션 블록에 적어도 부분적으로 기초하여, PU 에 대한 제 1 잔차 블록을 생성하는 단계로서, PU 에 대한 제 1 오리지널 블록 및 PU 에 대한 제 1 잔차 블록은 제 1 컬러 컴포넌트의 샘플들을 포함하는, 상기 PU 에 대한 제 1 잔차 블록을 생성하는 단계; PU 에 대한 제 2 오리지널 블록, PU 에 대한 제 2 모션 블록 및 PU 에 대한 제 1 잔차 블록에 적어도 부분적으로 기초하여, PU 에 대한 제 2 잔차 블록을 결정하는 단계로서, PU 에 대한 제 2 오리지널 블록 및 PU 에 대한 제 2 잔차 블록은 제 2 컬러 컴포넌트의 샘플들을 포함하는, 상기 PU 에 대한 제 2 잔차 블록을 결정하는 단계; 및 PU 에 대한 제 1 잔차 블록의 인코딩된 표현 및 PU 에 대한 제 2 잔차 블록의 인코딩된 표현을 포함하는 비트스트림을 출력하는 단계를 포함한다.
실시예 11. 실시예 10 의 방법에 있어서, PU 에 대한 제 2 잔차 블록을 결정하는 단계는 : 제 2 오리지널 블록에서의 샘플 및 제 2 모션 블록에서의 대응하는 샘플에 적어도 부분적으로 기초하여, 초기 잔차 샘플을 결정하는 단계; 및 PU 에 대한 제 2 잔차 블록에서의 최종 잔차 샘플을 y' = y-x' 로서 결정하는 단계를 포함하며, y' 는 최종 잔차 샘플이고, y 는 초기 잔차 샘플이고, x' = ax 이며, x 는 제 1 잔차 블록에서의 샘플이고, a 는 Cov(Yref, Cref)/Var(Yref) 와 동일하며, Cov() 는 공분산이고, Var() 는 분산이고, Yref 는 제 1 모션 블록에서의 샘플이며, Cref 는 제 2 모션 블록에서의 샘플이다.
실시예 12. 실시예 10 의 방법에 있어서, PU 에 대한 제 2 잔차 블록을 결정하는 단계는 : 제 2 잔차 블록에서의 샘플 및 제 2 모션 블록에서의 샘플에 적어도 부분적으로 기초하여, 초기 잔차 샘플을 결정하는 단계; 및 PU 에 대한 제 2 잔차 블록에서의 최종 잔차 샘플을 y' = y-x' 로서 결정하는 단계를 포함하며, y' 는 최종 잔차 샘플이고, y 는 초기 잔차 샘플이며, x' = ax+b 이며, x 는 제 1 잔차 블록에서의 잔차 샘플이고, a 는 Cov(Yres, Cres)/Var(Yres) 와 동일하며, b 는 Mean(Cres)-a·Mean(Yres) 와 동일하며, Cov() 는 공분산이고, Var() 는 분산이고, Yres 는 제 1 잔차 샘플에서의 샘플이며, Cres 는 제 2 잔차 샘플이다.
실시예 13. 실시예 11 또는 실시예 12 의 방법에 있어서, 비트스트림은 값들 a 및 b 의 인코딩된 표현들을 포함한다.
실시예 14. 실시예 10 의 방법에 있어서, 제 1 및 제 2 컬러 컴포넌트들은 : 루마 컴포넌트, Cb 크로마 컴포넌트, 및 Cr 크로마 컴포넌트 중 상이한 컴포넌트들이다.
실시예 15. 비디오 데이터를 디코딩하는 방법으로서, 그 방법은 실시예 10 내지 실시예 14 중 임의의 실시예를 포함한다.
실시예 16. 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스로서, 그 하나 이상의 프로세서들은 실시예 10 내지 실시예 14 중 임의의 실시예의 방법들을 수행하도록 구성된다.
실시예 17. 비디오 디코딩 디바이스로서, 그 디바이스는 실시예 10 내지 실시예 14 중 임의의 실시예의 방법들을 수행하는 수단을 포함한다.
실시예 18. 명령들을 저장한 컴퓨터 판독가능 저장 매체로서, 그 명령들은, 실행될 때, 실시예 10 내지 실시예 14 중 임의의 실시예의 방법들을 수행하도록 비디오 디코더를 구성한다.
하나 이상의 예들에 있어서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상으로 저장 또는 송신되고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은, 예를 들어, 통신 프로토콜에 따라 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체들 또는 데이터 저장 매체들과 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체들을 포함할 수도 있다. 이 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적인 유형의 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 캐리어파와 같은 통신 매체에 대응할 수도 있다. 데이터 저장 매체들은 본 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수도 있다. 컴퓨터 프로그램 제품이 컴퓨터 판독가능 매체를 포함할 수도 있다.
제한이 아닌 일 예로, 이러한 컴퓨터 판독가능 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 명명된다. 예를 들어, 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신된다면, 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 캐리어파들, 신호들, 또는 다른 일시적 매체들을 포함하지 않고 그 대신 비일시적인 유형의 저장 매체들로 지향됨을 이해해야 한다. 본 명세서에서 사용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 콤팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서, 디스크 (disk) 들은 보통 데이터를 자기적으로 재생하지만 디스크 (disc) 들은 레이저들을 이용하여 데이터를 광학적으로 재생한다. 상기의 조합들이 또한, 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그램가능 로직 어레이들 (FPGA들), 또는 다른 등가의 집적된 또는 이산 로직 회로부와 같은 하나 이상의 프로세서들에 의해 실행될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는 전술한 구조 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 지칭할 수도 있다. 또한, 일부 양태들에 있어서, 본 명세서에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성되고 조합된 코덱에서 통합된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 그 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들에서 완전히 구현될 수 있다.
본 개시물의 기법들은 무선 핸드셋, 집적 회로 (IC) 또는 IC들의 세트 (예를 들어, 칩 세트) 를 포함한, 매우 다양한 디바이스들 또는 장치들에서 구현될 수도 있다. 다양한 컴포넌트들, 모듈들 또는 유닛들이 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시물에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하지는 않는다. 오히려, 상기 설명된 바와 같이, 다양한 유닛들은 적합한 소프트웨어 및/또는 펌웨어와 함께 상기 설명된 바와 같은 하나 이상의 프로세서들을 포함하여 코덱 하드웨어 유닛에서 결합되거나 또는 상호운용식 하드웨어 유닛들의 집합에 의해 제공될 수도 있다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (37)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    상기 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 디코딩하는 단계를 포함하며,
    상기 비트스트림을 디코딩하는 단계는 :
    제 1 컬러 컴포넌트의 잔차 신호를 복원하는 단계로서, 상기 제 1 컬러 컴포넌트의 상기 잔차 신호는 모션 예측을 이용하여 생성되고, 상기 제 1 컬러 컴포넌트의 복원된 상기 잔차 신호는 상기 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 단계; 및
    상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 컬러 컴포넌트 및 상기 제 2 컬러 컴포넌트는 : 루마 컴포넌트, Cb 크로마 컴포넌트, 및 Cr 크로마 컴포넌트 중 상이한 컴포넌트들인, 비디오 데이터를 디코딩하는 방법.
  3. 제 1 항에 있어서,
    상기 제 2 컬러 컴포넌트의 예측된 상기 잔차 샘플 값들을, 계수 블록을 탈양자화하고 상기 계수 블록에 역변환을 적용함으로써 생성된 대응하는 샘플들에 가산하는 단계를 더 포함하며,
    상기 비트스트림은 상기 계수 블록의 양자화된 변환 계수들을 나타내는 엔트로피 인코딩된 신택스 엘리먼트들을 포함하는, 비디오 데이터를 디코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 단계는 상기 제 1 컬러 컴포넌트의 상기 잔차 신호를 복원하기 위해 탈양자화 및 역변환을 이용하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들을 이용하여 상기 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하는 단계는 상기 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값으로부터 선형 예측을 이용하여 상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
  6. 제 5 항에 있어서,
    상기 선형 예측을 이용하여 상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계는 : 상기 예측 샘플 값이 x' = ax 와 동일하도록 상기 예측 샘플 값을 결정하는 단계를 포함하며,
    x' 는 상기 예측 샘플 값이고, x 는 예측자 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들 중 하나이고, a 는 Cov(Yref, Cref)/Var(Yref) 와 동일하고, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Yref 는 상기 제 1 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호이며, Cref 는 상기 제 2 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호인, 비디오 데이터를 디코딩하는 방법.
  7. 제 5 항에 있어서,
    상기 비디오 데이터를 디코딩하는 방법은 상기 비트스트림으로부터, 파라미터의 값을 획득하는 단계를 더 포함하며,
    상기 선형 예측을 이용하여 상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계는 : 상기 예측 샘플 값이 x' = ax 와 동일하도록 상기 예측 샘플 값을 결정하는 단계를 포함하며,
    x' 는 상기 예측 샘플 값이고, x 는 예측자 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들 중 하나이며, a 는 상기 파라미터인, 비디오 데이터를 디코딩하는 방법.
  8. 제 5 항에 있어서,
    상기 선형 예측을 이용하여 상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계는 : 상기 예측 샘플 값이 x' = ax+b 와 동일하도록 상기 예측 샘플 값을 결정하는 단계를 포함하며,
    x' 는 상기 예측 샘플 값이고, x 는 상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들 중 하나이고, a 는 Cov(Yref, Cref)/Var(Yref) 와 동일하며, b 는 Mean(Cref)-a·Mean(Yref) 와 동일하며, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Mean() 은 평균 함수이고, Yref 는 상기 제 1 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호이며, Cref 는 상기 제 2 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호인, 비디오 데이터를 디코딩하는 방법.
  9. 제 1 항에 있어서,
    상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계는 : 상기 예측 샘플 값이 x' = ax+b 와 동일하도록 상기 예측 샘플 값을 결정하는 단계를 포함하며,
    x' 는 상기 예측 샘플 값이고, x 는 상기 제 1 컬러 컴포넌트의 상기 복원된 샘플 값들 중 하나이고, a 는 Cov(Yres, Cres)/Var(Yres) 와 동일하며, b 는 Mean(Cres)-a·Mean(Yres) 와 동일하며, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Mean() 은 평균 함수이고, Yres 는 상기 제 1 컬러 컴포넌트의 현재의 블록의 복원된 잔차 신호이며, Cres 는 상기 제 2 컬러 컴포넌트에 대한 상기 현재의 블록의 잔차 신호인, 비디오 데이터를 디코딩하는 방법.
  10. 제 1 항에 있어서,
    상기 비트스트림을 디코딩하는 단계는 상기 비트스트림으로부터, 상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플들을 이용하여 상기 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측할지 여부를 나타내기 위한 플래그를 획득하는 단계를 더 포함하는, 비디오 데이터를 디코딩하는 방법.
  11. 제 10 항에 있어서,
    상기 플래그는 시퀀스 레벨에서 코딩되는, 비디오 데이터를 디코딩하는 방법.
  12. 비디오 데이터를 인코딩하는 방법으로서,
    상기 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 생성하는 단계를 포함하며,
    상기 비트스트림을 생성하는 단계는 :
    모션 예측의 이용에 의해, 제 1 컬러 컴포넌트에 대한 잔차 신호를 생성하는 단계;
    상기 제 1 컬러 컴포넌트의 상기 잔차 신호를 복원하는 단계로서, 상기 제 1 컬러 컴포넌트의 복원된 상기 잔차 신호는 상기 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 상기 잔차 신호를 복원하는 단계; 및
    상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들을 이용하여 제 2 컬러 컴포넌트의 샘플 값들을 예측하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  13. 제 12 항에 있어서,
    상기 제 1 컬러 컴포넌트 및 상기 제 2 컬러 컴포넌트는 : 루마 컴포넌트, Cb 크로마 컴포넌트, 및 Cr 크로마 컴포넌트 중 상이한 컴포넌트들인, 비디오 데이터를 인코딩하는 방법.
  14. 제 12 항에 있어서,
    상기 비트스트림을 생성하는 단계는 :
    모션 예측의 이용에 의해, 상기 제 2 컬러 컴포넌트에 대한 초기 잔차 신호를 생성하는 단계;
    상기 제 2 컬러 컴포넌트에 대한 최종 잔차 신호에서의 각각의 샘플 값이 상기 제 2 컬러 컴포넌트의 예측된 상기 샘플 값들 중 하나와 상기 제 2 컬러 컴포넌트의 상기 초기 잔차 신호의 대응하는 샘플 간의 차이와 동일하도록 상기 제 2 컬러 컴포넌트에 대한 상기 최종 잔차 신호를 결정하는 단계;
    상기 제 2 컬러 컴포넌트에 대한 상기 최종 잔차 신호를 변환함으로써 계수 블록을 생성하는 단계; 및
    상기 비트스트림에, 상기 계수 블록의 양자화된 변환 계수들을 나타내는 엔트로피 인코딩된 데이터를 포함하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  15. 제 12 항에 있어서,
    상기 제 1 컬러 컴포넌트의 상기 잔차 신호를 복원하는 단계는 상기 제 1 컬러 컴포넌트의 상기 잔차 신호를 복원하기 위해 탈양자화 및 역변환을 이용하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  16. 제 12 항에 있어서,
    상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들을 이용하여 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하는 단계는 상기 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값으로부터 선형 예측을 이용하여 상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  17. 제 16 항에 있어서,
    상기 선형 예측을 이용하여 상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계는 : 상기 예측 샘플 값이 x' = ax 와 동일하도록 상기 예측 샘플 값을 결정하는 단계를 포함하며,
    x' 는 상기 예측 샘플 값이고, x 는 예측자 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들 중 하나이며, a 는 Cov(Yref, Cref)/Var(Yref) 와 동일하며, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Yref 는 상기 제 1 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호이며, Cref 는 상기 제 2 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호인, 비디오 데이터를 인코딩하는 방법.
  18. 제 16 항에 있어서,
    상기 비디오 데이터를 인코딩하는 방법은 상기 비트스트림에, 파라미터의 값을 나타내는 데이터를 포함하는 단계를 더 포함하며,
    상기 선형 예측을 이용하여 상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계는 : 상기 예측 샘플 값이 x' = ax 와 동일하도록 상기 예측 샘플 값을 결정하는 단계를 포함하며,
    x' 는 상기 예측 샘플 값이고, x 는 예측자 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들 중 하나이며, a 는 상기 파라미터인, 비디오 데이터를 인코딩하는 방법.
  19. 제 16 항에 있어서,
    상기 선형 예측을 이용하여 상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계는 : 상기 예측 샘플 값이 x' = ax+b 와 동일하도록 상기 예측 샘플 값을 결정하는 단계를 포함하며,
    x' 는 상기 예측 샘플 값이고, x 는 상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들 중 하나이고, a 는 Cov(Yref, Cref)/Var(Yref) 와 동일하며, b 는 Mean(Cref)-a·Mean(Yref) 와 동일하며, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Mean() 은 평균 함수이고, Yref 는 상기 제 1 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호이며, Cref 는 상기 제 2 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호인, 비디오 데이터를 인코딩하는 방법.
  20. 제 16 항에 있어서,
    상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하는 단계는 : 상기 예측 샘플 값이 x' = ax+b 와 동일하도록 상기 예측 샘플 값을 결정하는 단계를 포함하며,
    x' 는 상기 예측 샘플 값이고, x 는 상기 제 1 컬러 컴포넌트의 상기 복원된 샘플 값들 중 하나이고, a 는 Cov(Yres, Cres)/Var(Yres) 와 동일하며, b 는 Mean(Cres)-a·Mean(Yres) 와 동일하며, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Mean() 은 평균 함수이고, Yres 는 상기 제 1 컬러 컴포넌트의 현재의 블록의 복원된 잔차 신호이며, Cres 는 상기 제 2 컬러 컴포넌트에 대한 상기 현재의 블록의 잔차 신호인, 비디오 데이터를 인코딩하는 방법.
  21. 제 12 항에 있어서,
    상기 비트스트림을 생성하는 단계는 상기 비트스트림에서, 상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플들을 이용하여 상기 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측할지 여부를 나타내기 위한 플래그를 시그널링하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
  22. 제 21 항에 있어서,
    상기 플래그를 시그널링하는 단계는 시퀀스 레벨에서 상기 플래그를 코딩하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
  23. 비디오 코딩 디바이스로서,
    비디오 데이터를 저장하도록 구성된 데이터 저장 매체; 및
    상기 비디오 데이터의 인코딩된 표현을 포함하는 비트스트림을 생성 또는 디코딩하도록 구성된 하나 이상의 프로세서들을 포함하며,
    상기 비트스트림을 생성 또는 디코딩하는 것의 일부로서, 상기 하나 이상의 프로세서들은 :
    제 1 컬러 컴포넌트의 잔차 신호를 복원하는 것으로서, 상기 제 1 컬러 컴포넌트의 상기 잔차 신호는 모션 예측을 이용하여 생성되고, 상기 제 1 컬러 컴포넌트의 복원된 상기 잔차 신호는 상기 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하며;
    상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하는, 비디오 코딩 디바이스.
  24. 제 23 항에 있어서,
    상기 제 1 컬러 컴포넌트 및 상기 제 2 컬러 컴포넌트는 : 루마 컴포넌트, Cb 크로마 컴포넌트, 및 Cr 크로마 컴포넌트 중 상이한 컴포넌트들인, 비디오 코딩 디바이스.
  25. 제 23 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 제 2 컬러 컴포넌트의 예측된 상기 샘플 값들을, 계수 블록을 탈양자화하고 상기 계수 블록에 역변환을 적용함으로써 생성된 대응하는 샘플들에 가산하도록 구성되며,
    상기 비트스트림은 상기 계수 블록의 양자화된 변환 계수들을 나타내는 엔트로피 인코딩된 신택스 엘리먼트들을 포함하는, 비디오 코딩 디바이스.
  26. 제 23 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 제 1 컬러 컴포넌트의 상기 잔차 신호를 복원하기 위해 탈양자화 및 역변환을 이용하도록 구성되는, 비디오 코딩 디바이스.
  27. 제 23 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값으로부터 선형 예측을 이용하여 상기 제 2 컬러 컴포넌트의 예측 샘플 값을 생성하도록 구성되는, 비디오 코딩 디바이스.
  28. 제 27 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 예측 샘플 값이 x' = ax 와 동일하도록 상기 예측 샘플 값을 결정하도록 구성되며,
    x' 는 상기 예측 샘플 값이고, x 는 예측자 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들 중 하나이고, a 는 Cov(Yref, Cref)/Var(Yref) 와 동일하고, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Yref 는 상기 제 1 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호이며, Cref 는 상기 제 2 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호인, 비디오 코딩 디바이스.
  29. 제 27 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 예측 샘플 값이 x' = ax 와 동일하도록 상기 예측 샘플 값을 결정하도록 구성되며,
    x' 는 상기 예측 샘플 값이고, x 는 예측자 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들 중 하나이며, a 는 파라미터이며, 상기 비트스트림은 상기 파라미터의 값을 나타내는 데이터를 포함하는, 비디오 코딩 디바이스.
  30. 제 28 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 비트스트림에, 상기 a 의 값을 나타내는 데이터를 포함하도록 구성되는, 비디오 코딩 디바이스.
  31. 제 27 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 예측 샘플 값이 x' = ax+b 와 동일하도록 상기 예측 샘플 값을 결정하도록 구성되며,
    x' 는 상기 예측 샘플 값이고, x 는 상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들 중 하나이고, a 는 Cov(Yref, Cref)/Var(Yref) 와 동일하며, b 는 Mean(Cref)-a·Mean(Yref) 와 동일하며, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Mean() 은 평균 함수이고, Yref 는 상기 제 1 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호이며, Cref 는 상기 제 2 컬러 컴포넌트에 대한 모션 블록에서의 참조 신호인, 비디오 코딩 디바이스.
  32. 제 27 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 예측 샘플 값이 x' = ax+b 와 동일하도록 상기 예측 샘플 값을 결정하도록 구성되며,
    x' 는 상기 예측 샘플 값이고, x 는 상기 제 1 컬러 컴포넌트의 상기 복원된 샘플 값들 중 하나이고, a 는 Cov(Yres, Cres)/Var(Yres) 와 동일하며, b 는 Mean(Cres)-a·Mean(Yres) 와 동일하며, Cov() 는 공분산 함수이고, Var() 는 분산 함수이고, Mean() 은 평균 함수이고, Yres 는 상기 제 1 컬러 컴포넌트의 현재의 블록의 복원된 잔차 신호이며, Cres 는 상기 제 2 컬러 컴포넌트에 대한 상기 현재의 블록의 잔차 신호인, 비디오 코딩 디바이스.
  33. 제 23 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 비트스트림으로부터, 상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플들을 이용하여 상기 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측할지 여부를 나타내기 위한 플래그를 획득하도록 구성되는, 비디오 코딩 디바이스.
  34. 제 33 항에 있어서,
    상기 플래그는 시퀀스 레벨에서 코딩되는, 비디오 코딩 디바이스.
  35. 제 23 항에 있어서,
    상기 하나 이상의 프로세서들은 상기 비트스트림에서, 상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플들을 이용하여 상기 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측할지 여부를 나타내기 위한 플래그를 시그널링하도록 구성되는, 비디오 코딩 디바이스.
  36. 비디오 코딩 디바이스로서,
    제 1 컬러 컴포넌트의 잔차 신호를 복원하는 수단으로서, 상기 제 1 컬러 컴포넌트의 상기 잔차 신호는 모션 예측을 이용하여 생성되고, 상기 제 1 컬러 컴포넌트의 복원된 상기 잔차 신호는 상기 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하는 수단; 및
    상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하는 수단을 포함하는, 비디오 코딩 디바이스.
  37. 명령들을 저장한 비일시적 컴퓨터 판독가능 데이터 저장 매체로서,
    상기 명령들은, 실행될 때, 비디오 코딩 디바이스로 하여금 :
    제 1 컬러 컴포넌트의 잔차 신호를 복원하게 하는 것으로서, 상기 제 1 컬러 컴포넌트의 상기 잔차 신호는 모션 예측을 이용하여 생성되고, 상기 제 1 컬러 컴포넌트의 복원된 상기 잔차 신호는 상기 제 1 컬러 컴포넌트의 복원된 잔차 샘플 값들을 포함하는, 상기 제 1 컬러 컴포넌트의 잔차 신호를 복원하게 하며;
    상기 제 1 컬러 컴포넌트의 상기 복원된 잔차 샘플 값들을 이용하여 상이한 제 2 컬러 컴포넌트의 잔차 샘플 값들을 예측하게 하는, 비일시적 컴퓨터 판독가능 데이터 저장 매체.
KR1020157034269A 2013-05-22 2014-05-22 컬러 컴포넌트들 간의 샘플 예측을 이용한 비디오 코딩 KR20160013890A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361826396P 2013-05-22 2013-05-22
US61/826,396 2013-05-22
US14/283,855 2014-05-21
US14/283,855 US20140348240A1 (en) 2013-05-22 2014-05-21 Video coding using sample prediction among color components
PCT/US2014/039174 WO2014190171A1 (en) 2013-05-22 2014-05-22 Video coding using sample prediction among color components

Publications (1)

Publication Number Publication Date
KR20160013890A true KR20160013890A (ko) 2016-02-05

Family

ID=50977130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157034269A KR20160013890A (ko) 2013-05-22 2014-05-22 컬러 컴포넌트들 간의 샘플 예측을 이용한 비디오 코딩

Country Status (8)

Country Link
US (1) US20140348240A1 (ko)
EP (1) EP3000231A1 (ko)
JP (1) JP2016526334A (ko)
KR (1) KR20160013890A (ko)
CN (1) CN105247866A (ko)
BR (1) BR112015029161A2 (ko)
TW (1) TWI559743B (ko)
WO (1) WO2014190171A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018236031A1 (ko) * 2017-06-21 2018-12-27 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9076239B2 (en) 2009-04-30 2015-07-07 Stmicroelectronics S.R.L. Method and systems for thumbnail generation, and corresponding computer program product
US9648330B2 (en) 2013-07-15 2017-05-09 Qualcomm Incorporated Inter-color component residual prediction
US9648332B2 (en) 2013-10-28 2017-05-09 Qualcomm Incorporated Adaptive inter-color component residual prediction
WO2016115733A1 (en) * 2015-01-23 2016-07-28 Mediatek Singapore Pte. Ltd. Improvements for inter-component residual prediction
US9998742B2 (en) * 2015-01-27 2018-06-12 Qualcomm Incorporated Adaptive cross component residual prediction
US10567803B2 (en) * 2017-04-12 2020-02-18 Qualcomm Incorporated Midpoint prediction error diffusion for display stream compression
US10694205B2 (en) * 2017-12-18 2020-06-23 Google Llc Entropy coding of motion vectors using categories of transform blocks
US10491897B2 (en) * 2018-04-13 2019-11-26 Google Llc Spatially adaptive quantization-aware deblocking filter
CN113273203B (zh) * 2018-12-22 2024-03-12 北京字节跳动网络技术有限公司 两步交叉分量预测模式
CN113366846A (zh) 2019-02-02 2021-09-07 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区更新
MX2021008963A (es) 2019-02-02 2021-08-24 Beijing Bytedance Network Tech Co Ltd Manejo de bufer para copia intra-bloque en codificacion de video.
EP3915265A4 (en) 2019-03-01 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. DIRECTION-BASED PREDICTION FOR INTRA BLOCK COPY IN VIDEO CODING
EP3915252A4 (en) 2019-03-04 2022-03-23 Beijing Bytedance Network Technology Co., Ltd. IMPLEMENTATION OF ASPECTS IN AN INTRA BLOCK COPY IN VIDEO ENCODING
WO2020257785A1 (en) * 2019-06-20 2020-12-24 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for prediction dependent residual scaling for video coding
WO2020256595A2 (en) * 2019-06-21 2020-12-24 Huawei Technologies Co., Ltd. Method and apparatus of still picture and video coding with shape-adaptive resampling of residual blocks
JP2022539468A (ja) 2019-07-06 2022-09-09 北京字節跳動網絡技術有限公司 映像符号化におけるイントラブロックコピーのための仮想予測バッファ
CN114175633B (zh) 2019-07-10 2023-12-29 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的样点标识
KR20220030957A (ko) 2019-07-11 2022-03-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 비트스트림 적합 제약
EP4022901A4 (en) * 2019-08-31 2022-11-23 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ENCODING VIDEO AND STILL IMAGES USING ADAPTIVE RESIDUAL BLOCK SHAPE RESAMPLING

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101616330B (zh) * 2003-07-16 2012-07-04 三星电子株式会社 用于色彩图像的视频编码/解码装置和方法
AU2007231799B8 (en) * 2007-10-31 2011-04-21 Canon Kabushiki Kaisha High-performance video transcoding method
RU2699253C2 (ru) * 2010-09-03 2019-09-04 Гуандун Оппо Мобайл Телекоммьюникейшнз Корп., Лтд. Способ и система для компенсации освещенности и перехода при кодировании и обработке видеосигнала
US9948938B2 (en) * 2011-07-21 2018-04-17 Texas Instruments Incorporated Methods and systems for chroma residual data prediction

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018236031A1 (ko) * 2017-06-21 2018-12-27 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US11190799B2 (en) 2017-06-21 2021-11-30 Lg Electronics Inc. Intra-prediction mode-based image processing method and apparatus therefor

Also Published As

Publication number Publication date
TWI559743B (zh) 2016-11-21
WO2014190171A1 (en) 2014-11-27
TW201501512A (zh) 2015-01-01
BR112015029161A2 (pt) 2017-07-25
JP2016526334A (ja) 2016-09-01
EP3000231A1 (en) 2016-03-30
US20140348240A1 (en) 2014-11-27
CN105247866A (zh) 2016-01-13

Similar Documents

Publication Publication Date Title
KR102574560B1 (ko) 비디오 코딩을 위해 액세스하는 샘플을 갖는 선형 모델 예측 모드
KR102520295B1 (ko) 선형 모델 예측 모드를 위한 다운샘플링 프로세스
US9503702B2 (en) View synthesis mode for three-dimensional video coding
TWI559743B (zh) 使用顏色成分間取樣預測之視訊寫碼
US9615090B2 (en) Parsing syntax elements in three-dimensional video coding
KR101821030B1 (ko) 멀티-뷰 또는 3 차원 비디오 코딩에서의 인터-뷰 잔차 예측
EP3849182B1 (en) Restriction of prediction units in b slices to uni-directional inter prediction
KR102338145B1 (ko) 팔레트 모드 인코딩 및 디코딩 설계
KR102218511B1 (ko) 팔레트 코딩을 위한 이스케이프 픽셀들의 코딩
KR101951087B1 (ko) 비디오 코딩에서의 진보된 잔차 예측을 위한 필터들
US9762903B2 (en) External pictures in video coding
KR101780434B1 (ko) 3d 비디오 코딩에서의 유도된 디스패리티 벡터
KR101718642B1 (ko) 비디오 코딩에서 참조 화상 리스트에 대한 뷰 간 예측의 불가능
KR102294260B1 (ko) 3차원 (3d) hevc 또는 다른 3d 코딩에서 서브 예측 유닛 (서브 pu) 모션 파라미터 상속 (mpi) 제어
KR20160016803A (ko) 이웃-기반 디스패리티 벡터 유도에 의한 3d 비디오 코딩을 위한 병렬 유도된 디스패리티 벡터
KR20140130466A (ko) B 슬라이스에서의 예측 유닛의 단방향성 인터 예측으로의 제한
KR20150064118A (ko) 비디오 코딩에서의 잔차 예측 수행
WO2015013643A1 (en) Use of a depth condition in 3dv codec

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid