KR101667467B1 - 비디오 코딩에서 크로마 성분들에 대한 변환 단위 구획화 - Google Patents
비디오 코딩에서 크로마 성분들에 대한 변환 단위 구획화 Download PDFInfo
- Publication number
- KR101667467B1 KR101667467B1 KR1020147014553A KR20147014553A KR101667467B1 KR 101667467 B1 KR101667467 B1 KR 101667467B1 KR 1020147014553 A KR1020147014553 A KR 1020147014553A KR 20147014553 A KR20147014553 A KR 20147014553A KR 101667467 B1 KR101667467 B1 KR 101667467B1
- Authority
- KR
- South Korea
- Prior art keywords
- subarrays
- chroma
- residual values
- component
- luma
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/186—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
- H04N19/122—Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 인코딩 디바이스가 루마 성분에 대한 잔차 값들의 N 바이 N 어레이 및 크로마 성분에 대한 잔차 값들의 대응하는 N/2 바이 N 어레이를 획득하도록 구성된다. 그 비디오 인코딩 디바이스는 크로마 성분에 대한 잔차 값들의 N/2 바이 N 어레이를 크로마 잔차 값들의 2 개의 N/2 바이 N/2 서브 어레이들로 구획할 수도 있다. 그 비디오 인코딩 디바이스는 루마 성분에 대한 잔차 값들의 어레이의 상기 구획화에 기초하여 크로마 잔차 값들의 상기 서브 어레이들을 더 구획할 수도 있다. 비디오 인코딩 디바이스는 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하여 변환 계수들을 생성할 수도 있다. 비디오 디코딩 디바이스가 잔차 값들을 생성하기 위해 변환 계수들의 서브 어레이들을 정의하는 데이터를 사용하여 역 프로세스를 수행할 수도 있다.
Description
관련 출원들
본 출원은 2011년 11월 1일자로 출원된 미국 가출원 제61/554,273호를 우선권 주장하며, 그것은 그 전체가 참조로 본원에 통합된다.
기술 분야
본 개시물은 비디오 코딩에 관한 것이고, 더 상세하게는, 변환 단위 구획화 (partitioning) 에 관한 것이다.
디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인휴대 정보단말들 (PDAs), 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 이른바 "스마트 폰들", 비디오 원격회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함하는 넓은 범위의 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4, 파트 10, 고급 비디오 코딩 (AVC) 에 의해 규정된 표준들, 현재 개발중인 고 효율 비디오 코딩 (High Efficiency Video Coding, HEVC) 표준, 및 이러한 표준들의 확장안들에 기재된 것들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 그런 비디오 압축 기법들을 구현하는 것에 의해 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.
비디오 압축 기법들은 공간적 (화상 내) 예측 및/또는 시간적 (화상 간) 예측을 수행하여 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 제거한다. 블록 기반 비디오 코딩을 위해, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 구획될 수도 있으며, 그 비디오 블록들은 또한 트리블록들 (treeblocks), 코딩 단위들 (CUs) 및/또는 코딩 노드들이라고 지칭될 수도 있다. 화상의 인트라 코딩식 (intra-coded; I) 슬라이스에서의 비디오 블록들은 동일한 화상의 이웃 블록들에서의 참조 샘플들에 관한 공간적 예측을 이용하여 인코딩된다. 화상의 인터 코딩식 (inter-coded; P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 화상의 이웃 블록들에서의 참조 샘플들에 관한 공간적 예측 또는 다른 참조 화상들에서의 참조 샘플들에 관한 시간적 예측을 이용하여 코딩될 수도 있다. 화상들은 프레임들이라고 지칭될 수도 있고, 참조 화상들은 참조 프레임들이라고 말해질 수도 있다.
공간적 또는 시간적 예측은 코딩될 블록에 대한 예측 블록으로 나타나게 된다. 잔차 데이터는 코딩될 원본 블록과 예측 블록 사이의 화소 차이들을 나타낸다. 인터 코딩식 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터와, 코딩된 블록 및 예측 블록 사이의 차이를 나타내는 잔차 데이터에 따라 인코딩된다. 인트라 코딩식 블록은 인트라 코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 화소 도메인으로부터 변환 도메인으로 변환될 수도 있으며, 결과적으로 잔차 변환 계수들이 생겨나며, 그 계수들은 그 다음에 양자화될 수도 있다. 처음에는 2차원 어레이로 배열된 양자화된 변환 계수들은, 변환 계수들의 1차원 벡터를 생성하기 위하여 스캐닝될 수도 있고, 엔트로피 코딩이 추가의 압축을 달성하기 위해 변환계수들에 적용될 수도 있다.
대체로, 하나의 양태에서, 본 개시물은 4:2:2 샘플링 포맷이 적용되는 경우에 루마 및 크로마 성분들 사이에서 변환 단위 (transform unit; TU) 구획화를 동기화하는 기법들을 설명한다. 일 예로서, 비디오 데이터가 4:2:2 샘플링 포맷에 따라 포맷되는 경우, 그 기법들은 변환을 목적으로 각각의 크로마 성분의 블록을 제 1 크로마 서브블록 및 제 2 크로마 서브블록으로 구획하는 것을 포함할 수도 있다. 제 1 및 제 2 크로마 서브블록들은, 예를 들어, 각각 상단 크로마 서브블록 및 하단 크로마 서브블록일 수도 있다. 루마 성분의 변환 단위 구획화는 2 개의 크로마 서브블록들 양쪽 모두에서 추가의 구획들과 동기될 수도 있다. 이런 방식으로, 4:2:2 샘플링 포맷으로, 이들 기법들에 따라 구획되는 크로마 성분의 변환 단위는 더 유용한 또는 더 바람직한 사이즈들 및 형상들의 변환들로 귀결될 수도 있다. 일부 경우들에서, 본원에서 설명되는 기법들은 크로마 변환 단위들이 루마 성분의 대응하는 변환 단위들과 동일한 애스팩트 비를 가지도록 적용될 수도 있다.
대체로, 본 개시물의 다른 양태는 변환 단위들을 구획하는 경우의 코딩된 블록 플래그 (coded block flag; CBF) 코딩을 위한 기법들을 설명한다. 일 예로서, 크로마 성분 (U 또는 V) 의 변환 단위에 대한 코딩된 블록 플래그를 코딩함에 있어서, 4:2:2 포맷에 대응하는 각각의 크로마 성분에 대해, 조인트 코딩된 블록 플래그가 크로마 성분의 제 1 및 제 2 (예컨대, 상단 및 하단) 크로마 변환 단위들의 각각의 쌍에 대해 먼저 시그널링될 수도 있다. 크로마 변환 단위들의 쌍에서, 즉, 그 쌍에서의 크로마 변환 단위들 중 적어도 하나 내에 적어도 하나의 0이 아닌 계수가 있음을 조인트 코딩된 블록 플래그가 나타내면, 2 개의 변환 단위들의 각각이 임의의 0이 아닌 변환 계수들을 가지는지를 시그널링하기 위해 하나 이상의 부가적인 코딩된 블록 플래그들이 전송될 수도 있다. 그렇지 않고, 크로마 변환 단위들의 쌍에서 적어도 하나의 0이 아닌 계수가 없음을 조인트 코딩된 블록 플래그가 나타내면, 코딩된 블록 플래그들의 추가의 시그널링은 크로마 성분들의 쌍에 대한 변환 단위들을 위해 필요하지 않다.
하나의 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하는 단계, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하는 단계, 잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하는 단계, 및 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/2 서브 어레이들의 각각을 조합하는 것을 포함하는 비디오 데이터를 디코딩하는 방법을 설명한다.
하나의 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 어레이를 획득하는 단계, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하는 단계, 잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하는 단계, 및 크로마 성분에 대한 잔차 샘플 값들의 N/4×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/4×N/2 서브 어레이들의 각각을 조합하는 것을 포함하는 비디오 데이터를 디코딩하는 방법을 설명한다.
하나의 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 4 개의 N×N/4 어레이를 획득하는 단계, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 8 개의 대응하는 N/2×N/8 서브 어레이들을 획득하는 단계, 잔차 샘플 값들의 8 개의 N/2×N/8 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/8 서브 어레이들의 각각에 대해 역 변환을 수행하는 단계, 및 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/8 서브 어레이들의 각각을 조합하는 것을 포함하는 비디오 데이터를 디코딩하는 방법을 설명한다.
다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하며, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하며, 잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/2 서브 어레이들의 각각을 조합하도록 구성된 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스를 설명한다.
다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 어레이를 획득하며, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하며, 잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/4×N/4 서브 어레이들의 각각을 조합하도록 구성된 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스를 설명한다.
다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 4 개의 N×N/4 어레이들을 획득하며, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 8 개의 대응하는 N/2×N/8 서브 어레이들을 획득하며, 잔차 샘플 값들의 8 개의 N/2×N/8 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/8 서브 어레이들의 각각에 대해 역 변환을 수행하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/8×N/2 서브 어레이들의 각각을 조합하도록 구성된 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스를 설명한다.
다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하ㄱ게 하고, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하게 하고, 잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하게 하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/2 서브 어레이들의 각각을 조합하게 하는 명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 매체를 설명한다.
다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 어레이를 획득하게 하고, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하게 하고, 잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하게 하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/4×N/4 서브 어레이들의 각각을 조합하게 하는 명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 매체를 설명한다.
다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 루마 성분에 대한 변환 계수들의 4 개의 N×N/4 어레이들을 획득하게 하고, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 8 개의 대응하는 N/2×N/8 서브 어레이들을 획득하게 하고, 잔차 샘플 값들의 8 개의 N/2×N/8 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/8 서브 어레이들의 각각에 대해 역 변환을 수행하게 하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/8 서브 어레이들의 각각을 조합하게 하는 명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 매체를 설명한다.
다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하는 수단, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하는 수단, 잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하는 수단, 및 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/2 서브 어레이들의 각각을 조합하는 수단을 포함하는 비디오 데이터를 디코딩하는 장치를 설명한다.
다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 어레이들을 획득하는 수단, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하는 수단, 잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하는 수단, 및 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/4×N/4 서브 어레이들의 각각을 조합하는 수단을 포함하는 비디오 데이터를 디코딩하는 장치를 설명한다.
다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 4 개의 N×N/4 어레이들을 획득하는 수단, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 8 개의 대응하는 N/2×N/8 서브 어레이들을 획득하는 수단, 잔차 샘플 값들의 복수의 N/2×N/8 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/8 서브 어레이들의 각각에 대해 역 변환을 수행하는 수단, 및 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/8 서브 어레이들의 각각을 조합하는 수단을 포함하는 비디오 데이터를 디코딩하는 장치를 설명한다.
하나의 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하는 단계, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하는 단계, 크로마 성분에 대한 잔차 값들의 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 단계, 및 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하는 것을 포함하는 비디오 데이터를 인코딩하는 방법을 설명한다.
다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하는 수단, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하는 수단, 크로마 성분에 대한 잔차 값들의 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 수단, 및 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하는 수단을 포함하는 비디오 데이터를 인코딩하는 장치를 설명한다.
다른 예에서, 본 개시물은 비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하며, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하며, 크로마 성분에 대한 잔차 값들의 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하고, 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하도록 구성된 하나 이상의 프로세서들을 포함하는 비디오 인코딩 디바이스를 설명한다.
다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하게 하고, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하게 하고, 크로마 성분에 대한 잔차 값들의 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하게 하고, 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하게 하는 명령들을 저장하고 있는 비 일시적 컴퓨터 판독가능 매체를 설명한다.
하나의 예에서, 본 개시물은, 크로마 성분에 연관된 제 1 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하는 단계, 크로마 성분에 연관된 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하는 단계, 및 제 1 변환 단위 및 제 2 변환 단위에 대한 조인트 코딩된 블록 플래그를 생성하는 것을 포함하며, 조인트 코딩된 블록 플래그는 제 1 변환 단위 또는 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내는, 비디오 데이터를 인코딩하는 방법을 설명한다.
다른 예에서, 본 개시물은, 크로마 성분에 연관된 제 1 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하는 수단, 크로마 성분에 연관된 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하고 제 1 변환 단위 및 제 2 변환 단위에 대한 조인트 코딩된 블록 플래그를 생성하는 수단을 포함하며, 조인트 코딩된 블록 플래그는 제 1 변환 단위 또는 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내는 비디오 데이터를 인코딩하는 장치를 설명한다.
다른 예에서, 본 개시물은, 크로마 성분에 연관된 제 1 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하며, 크로마 성분에 연관된 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하고, 제 1 변환 단위 및 제 2 변환 단위에 대한 조인트 코딩된 블록 플래그를 생성하도록 구성된 하나 이상의 프로세서들을 포함하며, 조인트 코딩된 블록 플래그는 제 1 변환 단위 또는 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내는 비디오 인코딩 디바이스를 설명한다.
다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 크로마 성분에 연관된 제 1 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하게 하고, 크로마 성분에 연관된 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하게 하고, 제 1 변환 단위 및 제 2 변환 단위에 대한 조인트 코딩된 블록 플래그를 생성하게 하는 명령들을 저장하고 있고, 조인트 코딩된 블록 플래그는 제 1 변환 단위 또는 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내는 비일시적 컴퓨터 판독가능 매체를 설명한다.
하나 이상의 예들의 세부사항들은 첨부 도면들 및 다음의 설명에서 언급된다. 다른 특징들, 목적들, 및 이점들은 상세한 설명 및 도면들로부터, 그리고 청구항들로부터 명확하게 될 것이다.
도 1a 내지 도 1c는 코딩 단위의 루마 및 크로마 성분들에 대한 상이한 샘플 포맷들을 예시하는 개념도들이다.
도 2는 4:2:2 샘플 포맷에 따라 포맷된 16x16 코딩 단위를 예시하는 개념도이다.
도 3은 변환 단위의 쿼드트리 분할 구조를 예시하는 개념도이다.
도 4a 및 도 4b는 변환 단위의 쿼드트리 분할 구조를 도시하는 개념도들이다.
도 5는 쿼드트리 분할 레벨들을 예시하는 개념도이다.
도 6은 4:2:2 샘플 포맷에 따라 포맷된 16x16 코딩 단위에 적용된 TU 쿼드트리 분할을 예시하는 개념도이다.
도 7은 본 개시물에서 설명되는 기법들을 활용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템을 도시하는 블록도이다.
도 8a 내지 도 8d는 비디오 블록에 대한 변환 단위 구획화를 위한 기법들을 예시하는 개념도들이다.
도 9는 4:2:2 샘플 포맷에 따라 포맷된 16x16 비디오 블록에 대한 변환 단위 구획화를 위한 기법들을 예시하는 개념도이다.
도 10a 내지 도 10d는 코딩된 블록 플래그 코딩에 대한 블록 연관을 위한 기법들을 예시하는 개념도들이다.
도 11은 크로마 블록들에 대한 코딩된 블록 플래그 코딩을 위한 변환 단위 구획화 및 블록 연관을 위한 일 예의 방법을 도시하는 흐름도이다.
도 12는 본 개시물에서 설명되는 기법들을 이행할 수도 있는 일 예의 비디오 인코더를 도시하는 블록도이다.
도 13은 잔차 값들의 구획화 및 크로마 블록들에 대한 변환 계수들을 생성하기 위한 일 예의 방법을 도시하는 흐름도이다.
도 14는 본 개시물에서 설명되는 기법들을 이행할 수도 있는 일 예의 비디오 디코더를 도시하는 블록도이다.
도 15는 변환 계수들로부터 잔차 값들을 생성하는 일 예의 방법을 도시하는 흐름도이다.
도 2는 4:2:2 샘플 포맷에 따라 포맷된 16x16 코딩 단위를 예시하는 개념도이다.
도 3은 변환 단위의 쿼드트리 분할 구조를 예시하는 개념도이다.
도 4a 및 도 4b는 변환 단위의 쿼드트리 분할 구조를 도시하는 개념도들이다.
도 5는 쿼드트리 분할 레벨들을 예시하는 개념도이다.
도 6은 4:2:2 샘플 포맷에 따라 포맷된 16x16 코딩 단위에 적용된 TU 쿼드트리 분할을 예시하는 개념도이다.
도 7은 본 개시물에서 설명되는 기법들을 활용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템을 도시하는 블록도이다.
도 8a 내지 도 8d는 비디오 블록에 대한 변환 단위 구획화를 위한 기법들을 예시하는 개념도들이다.
도 9는 4:2:2 샘플 포맷에 따라 포맷된 16x16 비디오 블록에 대한 변환 단위 구획화를 위한 기법들을 예시하는 개념도이다.
도 10a 내지 도 10d는 코딩된 블록 플래그 코딩에 대한 블록 연관을 위한 기법들을 예시하는 개념도들이다.
도 11은 크로마 블록들에 대한 코딩된 블록 플래그 코딩을 위한 변환 단위 구획화 및 블록 연관을 위한 일 예의 방법을 도시하는 흐름도이다.
도 12는 본 개시물에서 설명되는 기법들을 이행할 수도 있는 일 예의 비디오 인코더를 도시하는 블록도이다.
도 13은 잔차 값들의 구획화 및 크로마 블록들에 대한 변환 계수들을 생성하기 위한 일 예의 방법을 도시하는 흐름도이다.
도 14는 본 개시물에서 설명되는 기법들을 이행할 수도 있는 일 예의 비디오 디코더를 도시하는 블록도이다.
도 15는 변환 계수들로부터 잔차 값들을 생성하는 일 예의 방법을 도시하는 흐름도이다.
일부 비디오 코딩 표준들에 따르면, 코딩 단위 (CU), 그것의 루마 성분 및 그것의 크로마 성분들은, 변환 단위 (TU) 구획화를 위해 동일한 쿼드트리 분할 구조를 공유할 수도 있다. 상이한 컬러 샘플링 포맷들 하에서, 대응하는 크로마 성분 블록들은 루마 블록과는 상이한 사이즈들 및 형상들을 가질 수도 있다. 게다가, HEVC의 현재 버전에 따르면, TU 구획화로부터 생길 수도 있는 변환들의 상이한 사이즈들 및 형상들의 모두가 크로마 성분 블록들을 위해 정의되고 사용될 수 있는 것은 아니다. 따라서, 크로마 성분들의 변환 단위 구획화를 위한 다른 기법들은 더 유용한 형상들 및 사이즈들의 TU들로 나타날 수도 있다. 본원에서 설명되는 예의 기법들의 일부에 따르면, 4:2:2 포맷 하에서, 크로마 성분 구획들을 위한 변환 단위가 루마 성분에 대한 그것의 대응하는 변환 단위와 동일한 애스팩트 비를 가질 수도 있다.
디지털 비디오 디바이스들은 디지털 비디오 정보를 더 효율적으로 인코딩하고 디코딩하는 비디오 압축 기법들을 구현한다. 비디오 압축 기법들은 비디오 코딩 표준에 따라 정의될 수도 있다. 비디오 코딩 표준들의 예들은 ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼 그리고 SVC (Scalable Video Coding) 및 MVC (Multiview Video Coding) 확장들을 포함한 ITU-T H.264 (또한 ISO/IEC MPEG-4 AVC로 알려짐) 을 포함한다. 덧붙여서, ITU-T 비디오 코딩 전문가 그룹 (VCEG) 및 ISO/IEC 동 화상 전문가 그룹 (MPEG) 의 JCT-VC (Joint Collaboration Team on Video Coding) 에 의해 개발되고 있는 새로운 비디오 코딩 표준, 즉 고 효율 비디오 코딩 (HEVC) 이 있다.
HEVC 표준화 노력들은 HEVC 테스트 모델 (HM) 이라고 지칭되는 비디오 코딩 디바이스의 모델에 기초하고 있다. HM은 다른 이전의 비디오 코딩 표준들, 예컨대, ITU-T H.264/AVC의 개발 동안에 이용가능한 비디오 코딩 디바이스들에 관해 현재 비디오 코딩 디바이스들의 능력들에서의 개선을 상정한다. 예를 들어, H.264가 9 개의 인트라 예측 인코딩 모드들을 제공하는 반면, HEVC는 35 개의 인트라 예측 인코딩 모드들을 제공한다. "HEVC 규격 초안 (Working Draft; WD) 4" 또는 "WD4"라고 지칭되는 HEVC의 최근 규격 초안은, 문서 『JCTVC-F803_d2, Bross et al., "WD4: Working Draft 4 of High-Efficiency Video Coding (HEVC)," Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting: Torino, IT, July, 2011』에 기재되어 있다. 게다가, "HEVC 규격 초안 8" 또는 "WD8"이라고 지칭되는 다른 최근의 HEVC의 규격 초안은, 문서 『HCTVC-J1003_d7, Bross et al., "High Efficiency Video Coding (HEVC) Text Specification Draft 8," Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting: Stockholm, SE, July 11-20, 2012』에 기재되어 있다. HEVC 표준은 또한 ISO/IEC 23008-HEVC라고 지칭될 수도 있으며, 이는 HEVC의 전달된 버전 (delivered version) 에 대한 표준 번호일 것이 의도된다. 개발하고 있는 HEVC 표준의 현재 제안된 양태들의 일부에 따른 코딩이 본 출원에서 예시를 목적으로 설명될 것이다. 그러나, 본 개시물에서 설명되는 기법들은 또한 ITU-T H.264 또는 다른 표준 또는 독점 비디오 코딩 프로세스들에 따라 정의된 것들과 같은 다른 비디오 코딩 프로세스들에 유용하고 적용될 수도 있다.
비디오 코딩 표준, 이를테면 HEVC WD4에 따라 동작하는 전형적인 비디오 인코더는, 원래의 비디오 시퀀스의 각각의 프레임 (즉, 화상) 을 "블록들" 또는 "코딩 단위들"이라 부르는 인접하는 사각형 지역들로 구획한다. 이들 블록들은 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 제거하는 공간적 (프레임 내) 예측 및/또는 시간적 (프레임 간) 예측 기법을 적용하는 것에 의해 인코딩될 수도 있다. 공간 예측이 "인트라 모드" (I-모드) 라고 지칭될 수도 있고, 시간적 예측이 "인터 모드" (P-모드 또는 B-모드) 라고 지칭될 수도 있다. 예측 기법들은 비디오 데이터의 예측 블록을 생성하며, 그 예측 블록은 또한 참조 샘플들의 블록이라고 지칭될 수도 있다. 코딩될 원래의 비디오 데이터의 블록이 예측 블록과 비교된다. 비디오 데이터의 원본 블록 및 예측 블록 사이의 차이는 잔차 데이터라고 지칭될 수도 있다. 잔차 데이터는 통상적으로 비디오 데이터의 원본 블록의 화소 값들 및 예측 블록 사이의 차이의 어레이이다. 변환, 예컨대, 이산 코사인 변환 (DCT), 정수 변환, 웨이브릿 변환, 또는 개념적으로 유사한 변환이 코딩 프로세스 동안 변환 계수들의 대응하는 세트를 생성하기 위해 잔차 데이터에 적용될 수도 있다. 따라서, 비디오의 원본 블록은 변환 계수들에 대해 역 변환을 수행하고 잔차 데이터를 예측 블록에 가산하는 것에 의해 복원될 수도 있다. 변환 계수들은 또한 양자화될 수도 있다. 다시 말하면, 변환 계수들의 값들은 정의된 비트 깊이에 따라 비트 스트링으로서 표현될 수도 있다. 일부 경우들에서, 양자화는 낮은 값의 변환 계수들의 표현이 0이 되게 할 수도 있다. 양자화된 변환 계수들은 변환 계수 레벨들이라고 지칭될 수도 있다.
HEVC에 따른 비디오 코딩의 경우, 일 예로서, 비디오 프레임이 코딩 단위들로 구획될 수도 있다. 코딩 단위 (CU) 는 일반적으로 다양한 코딩 도구들이 비디오 압축을 위해 적용되는 기본 단위로서 역할을 하는 직사각형 이미지 지역을 지칭한다. CU가 통상적으로 정사각형이고, 예를 들어, ITU-T H.264와 같은 다른 비디오 코딩 표준들에서 설명되는 이른바 "매크로블록"과 유사한 것으로 간주될 수도 있다. CU가 비디오 샘플 값들의 어레이로 간주될 수도 있다. 비디오 샘플 값들은 또한 화상 엘리먼트들, 화소들, 또는 펠 (pel) 들이라고 지칭될 수도 있다. CU의 사이즈는 수평 및 수직 샘플들의 수에 따라 정의될 수도 있다. 따라서, CU가 NxN 또는 NxM CU로서 설명될 수도 있다.
본 개시물에서, "N×N" 및 "N 바이 N", 예컨대, 16x16 화소들 또는 16 바이 16 화소들은 수직 및 수평 치수들의 측면에서 비디오 블록의 화소 치수들을 상호교환적으로 말하는데 이용될 수도 있다. 일반적으로, 16x16 블록은 수직 방향의 16 개 화소들 (y = 16) 및 수평 방향의 16 개 화소들 (x = 16) 을 가질 것이다. 비슷하게, NxN 블록은 일반적으로 수직 방향의 N 개 화소들 및 수평 방향의 N 개 화소들을 가지며, 여기서 N은 음이 아닌 정수 값을 나타낸다. 블록에서의 화소들은 행들 및 열들로 배열될 수도 있다. 더구나, 블록들은 수직 방향에서와 동일한 수의 화소들을 수평 방향에서 반드시 가질 필요는 없다. 예를 들어, 블록들은 M이 N과 반드시 동일하지는 않은 NxM 개 화소들을 포함할 수도 있다.
양호한 코딩 효율을 달성하기 위해, CU는 비디오 콘텐츠에 의존하여 가변하는 사이즈들을 가질 수도 있다. CU가 보통 Y로 표시된 휘도 성분, 및 U 및 V로 표시된 2 개의 크로마 성분들을 가진다. 2 개의 크로마 성분들 (U 및 V) 은 또한 각각 Cb 및 Cr에 의해 표시될 수도 있다. 게다가, HEVC에 따르면, 비트스트림 내의 신택스 데이터는 샘플들의 수의 측면에서 프레임 또는 화상에 대해 가장 큰 CU인 최대 코딩 단위 (largest coding unit; LCU) 를 정의할 수도 있다. CU의 사이즈는 보통 수평 및 수직 루마 샘플들의 수에 따라 정의된다. 보통, LCU가 64x64 개의 루마 샘플들을 포함한다. 다른 치수들의 CU들은 CU를 서브 CU들로 재귀적으로 구획하는 것에 의해 생성될 수도 있다. 비트스트림에 대한 신택스 데이터는 CU 깊이라고 지칭되는, LCU가 분할될 수도 있는 최대 횟수를 정의할 수도 있다. 따라서, 비트스트림은 또한 최소 코딩 단위 (smallest coding unit; SCU) 를 정의할 수도 있다. 보통, SCU는 8x8 개의 루마 샘플들을 포함한다. 따라서, 하나의 예에서, 4 개의 32x32 CU들이 64x64 LCU를 4 개의 서브 CU들로 구획하는 것에 의해 생성될 수도 있고 32x32 CU들의 각각은 16 개의 8x8 CU들로 더 구획될 수도 있다.
크로마 포맷이라고 또한 지칭될 수도 있는 비디오 샘플링 포맷은, CU에 포함된 크로마 샘플들의 수를 CU에 포함된 루마 샘플들의 수에 관해 정의할 수도 있다. 크로마 성분들에 대한 비디오 샘플링 포맷에 의존하여, 샘플들의 수의 측면에서의 U 및 V 성분들의 사이즈는, Y 성분의 사이즈와 동일하거나 또는 상이할 수도 있다. H.264/AVC 및 HEVC WD4 비디오 코딩 표준들에서, chroma_format_idc라고 부르는 값은 루마 성분을 기준으로, 크로마 성분들의 상이한 샘플링 포맷들을 나타내기 위해 정의된다. 표 1은 chroma_format_idc 및 연관된 크로마 포맷들의 값들 사이의 관계를 예시한다.
표 1에서, 변수들 SubWidthC 및 SubHeightC는 루마 성분에 대한 샘플들의 수 및 각각의 크로마 성분에 대한 샘플들의 수 사이의 수평 및 수직 샘플링 레이트 비를 나타내는데 사용될 수 있다. 표 1에 기재된 크로마 포맷들에서, 2 개의 크로마 성분들은 동일한 샘플링 레이트를 가진다.
표 1의 예에서, 4:2:0 포맷의 경우, 루마 성분에 대한 샘플링 레이트는 수평 및 수직 방향들 양쪽 모두에 대해 크로마 성분들의 샘플링 레이트의 2 배이다. 그 결과, 4:2:0 포맷에 따라 포맷된 코딩 단위의 경우, 루마 성분에 대한 샘플들의 어레이의 폭 및 높이는 크로마 성분들에 대한 샘플들의 각각의 어레이의 폭 및 높이의 2배이다. 마찬가지로, 4:2:2 포맷에 따라 포맷된 코딩 단위의 경우, 루마 성분에 대한 샘플들의 어레이의 폭은 각각의 크로마 성분에 대한 샘플들의 어레이의 폭의 2배이지만, 루마 성분에 대한 샘플들의 어레이의 높이는 각각의 크로마 성분에 대한 샘플들의 어레이의 높이와 동일하다. 4:4:4 포맷에 따라 포맷된 코딩 단위의 경우, 루마 성분에 대한 샘플들의 어레이는 각각의 크로마 성분에 대한 샘플들의 어레이와 동일한 폭 및 높이를 가진다.
도 1a 내지 도 1c는 코딩 단위의 루마 및 크로마 성분들에 대한 상이한 샘플 포맷들을 예시하는 개념도들이다. 도 1a는 4:2:0 샘플 포맷을 예시하는 개념도이다. 도 1a에 예시된 바와 같이, 4:2:0 샘플 포맷의 경우, 크로마 성분들은 루마 성분의 사이즈의 1/4이다. 따라서, 4:2:0 샘플 포맷에 따라 포맷된 CU의 경우, 크로마 성분의 샘플마다에 대해 4 개의 루마 샘플들이 있다. 도 1b는 4:2:2 샘플 포맷을 예시하는 개념도이다. 도 1b에 예시된 바와 같이, 4:2:2 샘플 포맷의 경우, 크로마 성분들은 루마 성분의 사이즈의 1/2이다. 따라서, 4:2:2 샘플 포맷에 따라 포맷된 CU의 경우, 크로마 성분의 샘플마다에 대해 2 개의 루마 샘플들이 있다. 도 1c는 4:4:4 샘플 포맷을 예시하는 개념도이다. 도 1c에 예시된 바와 같이, 4:4:4 샘플 포맷의 경우, 크로마 성분들은 루마 성분과 동일한 사이즈이다. 따라서, 4:4:4 샘플 포맷에 따라 포맷된 CU의 경우, 크로마 성분의 샘플마다에 대해 하나의 루마 샘플이 있다.
도 2는 4:2:2 샘플 포맷에 따라 포맷된 16x16 코딩 단위의 일 예를 도시하는 개념도이다. 도 2는 CU 내의 루마 샘플들에 대한 크로마 샘플들의 상대 포지션을 예시한다. 위에서 설명된 바와 같이, CU가 수평 및 수직 루마 샘플들의 수에 따라 통상 정의된다. 따라서, 도 2에 예시된 바와 같이, 4:2:2 샘플 포맷에 따라 포맷된 16x16 CU는 루마 성분들의 16x16 개 샘플들 및 각각의 크로마 성분에 대한 8x16 개 샘플들을 포함한다. 게다가, 위에서 설명된 바와 같이, CU는 더 작은 CU들로 구획될 수도 있다. 예를 들어, 도 2에 예시된 CU는 4 개의 8x8 CU들로 구획될 수도 있으며, 여기서 각각의 CU는 루마 성분에 대한 8x8 개의 샘플들 및 각각의 크로마 성분에 대한 4x8 개의 샘플들을 포함한다.
게다가, 일부 비디오 코딩 표준들에서, 코딩 단위는 예측 또는 변환을 목적으로 더 작은 단위들로 구획될 수도 있다. HEVC에 따르면, CU는 하나 이상의 예측 단위들 (PUs) 및/또는 하나 이상의 변환 단위들 (TUs) 을 포함할 수도 있다. 본 개시물은 또한 CU, PU, 또는 TU 중 임의의 것을 지칭하기 위해 용어 "블록", "구획", 또는 "부분 (portion)"을 이용한다. 대체로, "부분"은 비디오 프레임의 임의의 서브 세트를 말할 수도 있다. 게다가, 본 개시물은 통상적으로 용어 "비디오 블록"을 CU의 코딩 노드를 지칭하기 위해 사용한다. 일부 특정 경우들에서, 본 개시물은 또한 용어 "비디오 블록"을 트리블록, 즉, LCU, 또는 코딩 노드와 PU들 및 TU들을 포함하는 CU를 지칭하기 위해 사용할 수도 있다. 따라서, 비디오 블록은 CU 내의 코딩 노드에 대응할 수도 있고 비디오 블록들은 고정된 또는 가변하는 사이즈들을 가질 수도 있고, 특정 코딩 표준에 따라 사이즈가 상이할 수도 있다.
PU는 대응하는 CU의 전부 또는 일 부분을 나타낼 수도 있고, PU에 대한 참조 샘플을 취출하기 위한 데이터를 포함할 수도 있다. PU들은 정사각형 또는 직사각형 형상들을 가질 수도 있다. 예를 들어, 도 2에서의 CU가 인터 예측을 이용하여 코딩되면, 그 CU는 각각의 PU가 시간적으로 인접한 프레임에서 참조 샘플들의 세트를 식별하는 정보를 포함하는 4 개의 직사각형 PU들로 분할될 수도 있다. 참조 샘플들의 세트들은 예측 비디오 블록을 형성하기 위해 결합될 수도 있다. 위에서 설명된 바와 같이, 예측 비디오 블록은 잔차 데이터를 형성하기 위해 CU로부터 감산될 수도 있다.
위에서 설명된 바와 같이, 변환이 잔차 데이터를 화소 도메인에서부터 변환 도메인으로 변환하기 위해 잔차 데이터에 적용될 수도 있다. 변환 블록 또는 TU는 변환이 적용되는 잔차 데이터의 세트에 대응할 수도 있다. TU들은 변환을 수행하고 변환 계수들의 대응하는 세트를 생성하는 목적으로 화소 차이 값들의 세트의 사이즈를 나타낸다. TU의 사이즈는 CU의 사이즈와 동일할 수도 있거나 또는 CU는 복수의 TU들로 구획될 수도 있다. 예를 들어, 도 2에 예시된 CU, 하나의 변환은 루마 샘플들의 16x16 어레이에 연관된 잔차 값들에 대해 수행될 수도 있거나 또는 변환이 루마 샘플들의 4 개의 8x8 어레이들의 각각에 대해 수행될 수도 있다. TU들이 클수록 복원된 이미지에서 더 지각가능한 "블록현상 (blockiness)"을 갖는 더 많은 압축이 일반적으로 제공되는 반면, TU들이 작을수록 덜 지각가능한 "블록현상"을 갖는 더 적은 압축이 제공된다. TU 사이즈들의 선택은 레이트 왜곡 최적화 분석에 기초할 수도 있다.
LCU와 마찬가지로, TU는 더 작은 TU들로 재귀적으로 구획될 수도 있다. TU들을 더 작은 TU들로 구획하여 생겨나는 TU들은 변환 블록 구조라고 지칭될 수도 있다. 변환 블록 구조의 일 예는 이른바 트리 구조이다. 트리 구조는 변환 블록을 전체 TU인 것으로서 또는 다수의 작은 TU들로 분할된 것으로서 코딩할 수도 있다. 이 프로세스는 각각의 블록에 대해 상이한 분할 레벨마다에서 재귀적으로 수행될 수 있다.
도 3은 TU가 연속하는 레벨들에서 4 개의 1/4 사이즈의 블록들로 분할되거나 또는 분할되지 않은 쿼드트리 분할 구조를 예시하는 개념도이다. 도 3에서, 실선들을 갖는 전체 블록은 원래의 TU이며, 이 원래의 TU는 원래의 CU에 대응할 수도 있다. 파선들은 쿼드트리 구조에 따른 변환 블록 분할의 하나의 결과를 나타낸다. 도 3에 예시된 분할은 여러 가능한 분할 결과들 중 하나이라는 것에 주의해야 한다. 도 3에 예시된 바와 같이, 변환 분할들의 3 개의 레벨들이 있다. 제 1 레벨 (즉, 레벨-1 분할) 에서, 전체 변환 블록은 4 개의 1/4 사이즈의 블록들으로 분할된다. 그 다음에, 제 2 레벨 (즉, 레벨-2) 에서, 제 2 의 1/4 사이즈의 변환 블록은 4 개의 1/16 사이즈로 된 변환 블록들로 추가 분할된다. 그 다음에, 제 3 레벨 (즉, 레벨-3) 에서, 제 4 의 1/16 사이즈로 된 변환 블록은 4 개의 더욱 작은 변환 블록들로 추가 분할된다. 인코딩 프로세스 동안, 변환 블록이 레이트 왜곡 최적화 분석에 기초하여 추가 분할되어야할지의 여부를 비디오 인코더가 결정할 수도 있다.
도 3에 예시된 분할 기법은 쿼드트리 분할 구조라고 지칭되며, 이 경우 블록이 4 개의 1/4 사이즈의 블록들로 분할되거나 또는 분할되지 않는다. 도 3에서, 블록들은 정사각형 형상 서브블록들로만 분할된다. 그러나, HEVC WD4에 기재된 것들과 같은 다른 분할 기법들에서, 블록은 또한 변환 목적으로 직사각형 형상의 서브블록들로 분할될 수 있다.
도 4a 및 도 4b는 TU가 4 개의 비-정사각형 블록들로 분할되거나 또는 분할되지 않는 쿼드트리 분할 구조를 예시하는 개념도들이다. 도 4a에 예시된 바와 같이, TU가 변환 목적으로 4 개의 작은 비-정사각형 블록들로 구획될 수 있다. 게다가, 도 4b에 예시된 바와 같이, 비-정사각형 분할 구조는 또한 재귀적 (recursive) 일 수도 있다. 예를 들어, 도 4b에 예시된 바와 같이, 제 1 서브블록은 원본 블록의 1/16의 사이즈를 갖는 4 개의 더 작은 비-정사각형 블록들로 추가 구획될 수도 있다.
트리 분할 구조를 인코딩된 비디오 비트스트림에서 시그널링하기 위해, 변환 분할 플래그가 사용될 수도 있다. 각각의 블록에 대해, 블록이 추가 분할될 것인지를 나타내기 위해 변환 분할 플래그가 비디오 인코더에 의해 코딩될 수도 있다. 도 5는 쿼드트리 분할을 예시하는 레벨 도면이다. 도 5는 도 3에 예시된 쿼드트리 분할을 시그널링하는데 사용될 수도 있는 레벨 도면의 하나의 예를 도시한다. 따라서, 도 5는 분할 구조를 표현하는 대안적 방도를 제공한다. 도 5에 예시된 바와 같이, 상이한 분할 레벨들에서, 변환 분할 플래그는 다음과 같이 시그널링될 수 있다:
레벨 0: 1
레벨 1: 0, 1, 0, 0
레벨 2: 0, 0, 0, 1
레벨 3: 0, 0, 0, 0
코딩 단위 레벨인 레벨 0에서, 변환이 추가 분할되기 때문에 1의 플래그가 시그널링된다. 레벨 1에서, 제 2 의 1/4 사이즈의 블록만이 추가 분할되며, 그래서 0, 1, 0, 0의 플래그들이 비디오 인코더에 의해 인코딩된 비트스트림에서 전송된다. 레벨 2에서, 다른 블록들이 추가 분할되지 않으므로, 제 2 의 1/4 사이즈의 블록만이 비디오 인코더에 의해 추가 시그널링될 필요가 있다. 제 2 의 1/4 사이즈의 블록에서, 제 4 의 블록만이 추가 분할되며, 그래서 0, 0, 0, 1의 플래그들이 레벨 2에서 비디오 인코더에 의해 전송된다. 레벨 3에서, 추가 분할될 블록이 없으며, 그래서 0, 0, 0, 0의 플래그들이 전송된다. 명료함을 위해, 본 개시물에서, 작은 레벨 값은 분할 구조에서 높은 레벨 (즉, 루트 레벨에 가까운 레벨) 을 의미한다는 것이 언급되어야 한다. 도 3 및 도 5에 예시된 바와 같이, 레벨 0은 루트 레벨 또는 상단 레벨이다.
플래그들을 분할하는 것 외에도, HEVC WD4는 변환 계수들 또는 변환 계수 레벨들의 블록이 임의의 0이 아닌 변환 계수들을 포함하는지를 나타내는 코딩된 블록 플래그 (CBF) 신택스 엘리먼트를 포함한다. 코딩된 블록 플래그 시그널링은 변환 블록 구조와 긴밀하게 연관되고, 비디오 인코더에 의해 하향식 계층적 방식으로 시그널링된다. 예를 들어, 높은 분할 레벨에 있는 코딩된 블록 플래그가 0인 경우, 그 비디오 컴포넌트에 대한 더 낮은 레벨들에서 코딩된 블록 플래그들의 추가의 시그널링은 없다. 이 경우, 대응하는 낮은 레벨의 코딩된 블록 플래그들은 모두 0이라고 유추된다. 다르게 말하면, 코딩된 블록 플래그가 분할의 특정한 레벨에서 코딩되는 경우, 더 낮은 레벨들에서의 코딩된 블록 플래그들은 현재 분할 레벨에서의 코딩된 블록 플래그가 0이 아닌 경우에만 필요하다.
HEVC WD4에 따르면, CU에 대해, 그것의 루마 성분 (Y) 및 그것의 크로마 성분들 (U 및 V) 은 TU 구획화를 위해 동일한 쿼드트리 분할 구조를 공유한다. 이는 변환 블록 당 하나의 변환 분할 플래그만이 시그널링되는 것을 허용하며, 그 플래그는 Y, U 및 V 성분들 간에 공유된다. 그러나, 위에서 설명된 바와 같이, 상이한 컬러 포맷들 하에서, 크로마 성분들은 루마 성분과는 상이한 사이즈들 및 형상들을 가질 수도 있다. HEVC WD4는 상이한 형상들 및 사이즈들의 변환들을 정의한다. 그러나, 변환들의 모든 사이즈들 및 형상들이 HEVC WD4에서의 코딩을 위해 정의되고 이용가능한 것은 아니다. HEVC WD4에서, 정사각형 형상 변환들의 다음의 사이즈들은 코딩을 위해 이용가능한 것으로서 정의된다: 4x4, 8x8, 16x16 및 32x32. 비-정사각형 형상 변환들의 경우, 이용가능한 변환 사이즈들은 32x8, 8x32, 16x4 및 4x16을 포함한다. 이들 변환들은 폭의 4 배의 높이, 또는 높이의 4 배의 폭을 갖는 직사각형 또는 정사각형 중 어느 하나인 형상을 가진다. 다르게 말하면, 직사각형 변환 사이즈들의 애스팩트 비는 1 대 4 또는 4 대 1 중 어느 하나이다.
도 6은 4:2:2 샘플 포맷에 따라 포맷된 16x16 CU에 적용되는 예의 쿼드트리 분할을 도시하는 개념도이다. 도 6에 예시된 바와 같이, 분할은 루마 성분에 대한 사이즈들 8x8 및 4x4의 TU들 및 각각의 크로마 성분에 대한 4x8, 2x4의 대응하는 TU들이 생기게 한다. HEVC WD4가 8x8 및 4x4 사이즈들에 대한 변환들을 정의하지만, HEVC는 4x8 및 2x4에 대한 변환들을 정의하지 않는다. 게다가, 도 1b 및 도 2에 예시된 바와 같이, 4:2:2 샘플 포맷에 따라 포맷된 비디오의 경우, 크로마 블록은 그것의 높이가 그것의 폭의 2 배인 직사각형 형상을 갖는다. HEVC WD4에 따르면 요구된 블록 형상과 함께, 즉, 1:2 내지 2:1의 애스팩트 비와 함께 이용가능한 변환들이 없다. 따라서, HEVC WD4는 4:2:2 샘플 포맷에 따라 포맷된 크로마 블록들의 형상 및 사이즈들에 대응하는 TU 형상들 및 사이즈들을 제공하는데 실패한다. HEVC 규격 초안들은, 소스 비디오 데이터의 샘플 포맷이 4:2:0 샘플 포맷이고 4:2:2 또는 4:4:4 샘플 포맷에 따라 포맷된 소스 비디오를 코딩하기 위한 세부사항들을 제공하지 않는 비디오 코딩에 대한 메인 프로파일을 기재한다는 것에 주의해야 한다.
HEVC WD4에 기재된 TU 구획화 기법들의 특성들의 측면에서, 본 개시물은 4:2:2 샘플 포맷의 경우에 루마 및 크로마 성분들의 샘플들 사이의 TU 구획화의 동기화에 대한 기법들을 설명한다. 일부 예들에서, 본원에서 설명되는 크로마 성분들에 대한 TU 구획화 기법들은 HEVC WD4에서 정의된 현재 이용가능한 변환들을 사용할 수도 있다. 이처럼, 본원에서 설명되는 구획화 기법들의 일부는 부가적인 변환 형상들 및 사이즈를 HEVC 표준 코딩 프로세스에 추가할 필요 없이 HEVC 표준 코딩 프로세스에 통합될 수도 있다. 본원에서 설명되는 하나의 예에서, 4:2:2 샘플 포맷에 따라 포맷된 CU의 경우, 크로마 성분들에 대한 TU들은 그것들이 루마 성분에 대한 대응하는 TU들과 동일한 애스팩트 비들을 가지도록 구획될 수도 있다. 게다가, 본 개시물은 4:2:2 샘플 포맷의 경우에 코딩된 블록 플래그 코딩에 대한 기법들을 제공한다. 본 개시물에 따르는 변환 단위 구획화 기법들의 예들은 아래에서 더 상세히 설명된다.
도 7은 본 개시물에서 설명되는 기법들을 활용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 도시하는 블록도이다. 특히, 비디오 코딩 시스템 (10) 은 4:2:2 샘플 포맷이 활용되는 경우에 루마 및 크로마 성분들의 샘플들 사이에서 TU 구획화를 동기화하는 기법들을 수행하도록 구성될 수도 있다. 도 7에 예시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 생성하는 소스 디바이스 (12) 를 구비한다. 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 이른바 "스마트" 폰들과 같은 전화기 핸드셋들, 이른바 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함하는 매우 다양한 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 무선 통신을 위해 장비될 수도 있다.
목적지 디바이스 (14) 는 디코딩될 인코딩된 비디오 데이터를 링크 (16) 를 통해 수신할 수도 있다. 링크 (16) 는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 인코딩된 비디오 데이터를 이동시킬 수 있는 임의의 유형의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 링크 (16) 는 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 직접 실시간으로 송신하는 것을 가능하게 하는 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 통신 표준, 이를테면 무선 통신 프로토콜에 따라 변조되고 목적지 디바이스 (14) 에 송신될 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 이를테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 패킷 기반 네트워크, 이를테면 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
대안으로, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스 (32) 로 출력될 수도 있다. 마찬가지로, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스 (32) 로부터 액세스될 수도 있다. 저장 디바이스 (32) 는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산형 또는 국소적으로 액세스되는 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스 (32) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 유지할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 해당할 수도 있다. 목적지 디바이스 (14) 는 저장 디바이스 (32) 로부터의 저장된 비디오 데이터에 스트리밍 또는 다운로드를 통해 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수 있는 임의의 유형의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예컨대, 웹사이트용), FTP 서버, 네트워크 부속 스토리지 (network attached storage; NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함하여 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 이는 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예컨대, DSL, 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하기에 적합한 양쪽 모두의 조합을 포함할 수도 있다. 저장 디바이스 (32) 로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 양쪽 모두의 조합일 수도 있다.
본 개시물의 기법들은 무선 애플리케이션들 또는 설정 (setting) 들로 반드시 제한되지는 않는다. 그 기법들은, 다양한 멀티미디어 애플리케이션들, 이를테면 OTA (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상의 저장을 위한 디지털 비디오의 인코딩, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들 중 임의의 것의 지원 하의 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 화상 통화와 같은 애플리케이션들을 지원하기 위해 단방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.
도 7의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20) 및 출력 인터페이스 (22) 를 구비한다. 일부 경우들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 구비할 수도 있다. 비디오 소스 (18) 는 비디오 캡처 디바이스, 예컨대, 비디오 카메라, 이전에 캡처된 비디오를 담고 있는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오를 수신하는 비디오 피드 인터페이스, 및/또는 컴퓨터 그래픽스 데이터를 소스 비디오로서 생성하는 컴퓨터 그래픽 시스템과 같은 소스, 또는 그런 소스들의 조합을 포함할 수도 있다. 하나의 예로서, 비디오 소스 (18) 가 비디오 카메라이면, 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 이른바 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 본 개시물에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다.
비디오 인코더 (20) 는 비디오 소스 (18) 로부터 수신된 캡처된, 사전 캡처된, 또는 컴퓨터 생성된 비디오를 인코딩한다. 캡처된, 사전 캡처된, 또는 컴퓨터 생성된 비디오는 4:2:0, 4:2:2 또는 4:4:4 샘플 포맷들을 포함하는 위에서 설명된 샘플 포맷들 중 임의의 것에 따라 포맷될 수도 있다. 비디오 인코더 (20) 는 4:2:0, 4:2:2 또는 4:4:4 샘플 포맷들 중 임의의 것에 따라 포맷된 비디오에 대해 비디오 코딩을 수행할 수도 있다. 일부 경우들에서, 비디오 인코더 (20) 는 캡처된, 사전 캡처된, 또는 컴퓨터 생성된 비디오를 코딩 프로세스의 일부로서 업 샘플링 또는 다운 샘플링할 수도 있다. 예를 들어, 캡처된 비디오는 4:4:4 샘플 포맷에 따라 포맷될 수도 있으며, 비디오 인코더 (20) 는 캡처된 비디오를 4:2:2 포맷으로 다운 샘플링하고 다운 샘플링된 비디오에 대해 비디오 인코딩을 수행할 수도 있다. 인코딩된 비디오 데이터는 소스 디바이스 (20) 의 출력 인터페이스 (22) 를 통해 목적지 디바이스 (14) 로 직접 전송될 수도 있다. 인코딩된 비디오 데이터는 또한 (또는 대안으로) 목적지 디바이스 (14) 또는 다른 디바이스들에 의한 디코딩 및/또는 플레이백을 위한 나중의 액세스를 위해 저장 디바이스 (32) 에 저장될 수도 있다.
목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 구비한다. 일부 경우들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 구비할 수도 있다. 목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 링크 (16) 를 통해 인코딩된 비디오 데이터를 수신한다. 링크 (16) 를 통해 통신되거나 또는 저장 디바이스 (32) 상에 제공된 인코딩된 비디오 데이터는, 비디오 데이터의 디코딩에서의, 비디오 디코더, 이를테면 비디오 디코더 (30) 에 의한 사용을 위해 비디오 인코더 (20) 에 의해 생성된 다양한 신택스 엘리먼트들을 포함할 수도 있다. 이러한 신택스 엘리먼트들은 통신 매체 상에서 송신되는, 저장 매체 상에 저장되는, 또는 파일 서버에 저장되는 인코딩된 비디오 데이터에 포함될 수도 있다.
디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나, 또는 그것 외부에 있을 수도 있다. 일부 예들에서, 목적지 디바이스 (14) 는 통합형 디스플레이 디바이스를 포함할 수도 있고 또한 외부 디스플레이 디바이스와 인터페이싱하도록 구성될 수도 있다. 다른 예들에서, 목적지 디바이스 (14) 는 디스플레이 디바이스일 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.
비디오 인코더 (20) 와 비디오 디코더 (30) 는 비디오 압축 표준, 이를테면 현재 개발 중인 고 효율 비디오 코딩 (HEVC) 표준에 따라 동작할 수도 있고 일반적으로 현재의 HEVC 테스트 모델 (HM) 또는 미래의 HM을 준수할 수도 있다. 대안으로, 비디오 인코더 (20) 와 비디오 디코더 (30) 는, 다르게는 MPEG-4, 파트 10, 고급 비디오 코딩 (AVC) 이라고 지칭되는 ITU-T H.264 표준과 같은 산업 표준들 또는 다른 독점적 표준들, 또는 그런 표준들의 개정들 또는 확장들에 따라 동작할 수도 있다. 본 개시물의 기법들은, 그러나, 임의의 특정 코딩 표준으로 제한되지 않는다. 비디오 압축 표준들의 다른 예들은 MPEG-2와 ITU-T H.263을 포함한다.
비록 도 7에 도시되지 않았지만, 일부 양태들에서, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 각각이 오디오 인코더 및 디코더와 통합될 수도 있고, 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함하여, 공통 데이터 스트림 또는 개별 데이터 스트림들에서의 오디오 및 비디오 양쪽 모두의 인코딩을 핸들링할 수도 있다. 적용가능하다면, 일부 예들에서, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들을 준수할 수도 있다.
비디오 인코더 (20) 와 비디오 디코더 (30) 각각은 다양한 적합한 인코더 회로, 이를테면 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSPs), 주문형 집적회로들 (ASICs), 필드 프로그램가능 게이트 어레이들 (FPGAs), 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 그것들의 임의의 조합 중 임의의 것으로서 구현될 수도 있다. 그 기법들이 소프트웨어에서 부분적으로 구현되는 경우, 디바이스는 본 개시물의 기법들을 수행하기 위해, 적합한 비일시적 컴퓨터 판독가능 매체 내에 소프트웨어에 대한 명령을 저장하고 하나 이상의 프로세서들을 사용하여 하드웨어에서 그 명령들을 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 구비될 수도 있고, 그것들 중 어느 하나는 결합형 인코더/디코더 (CODEC) 의 부분으로서 개별 디바이스 내에 통합될 수도 있다.
위에서 설명된 바와 같이, HEVC WD4에서, 비디오 프레임 또는 화상이 루마 및 크로마 샘플들 양쪽 모두를 포함하는 트리블록들 또는 최대 코딩 단위들 (LCU) 의 시퀀스로 분할될 수도 있다. LCU들은 연관된 PU들 및 TU들을 포함하는 CU들로 재귀적으로 분할될 수도 있다. 일부 예들에서, CU의 사이즈는 8x8 샘플들로부터 최대 64x64 샘플들 또는 그 이상을 갖는 트리블록의 사이즈까지의 범위일 수도 있다. 게다가, HEVC WD4에서, 비디오 프레임 또는 화상은, 슬라이스가 다수의 연속적인 LCU들을 코딩 순서로 포함하는 하나 이상의 슬라이스들로 구획될 수도 있다. 비디오 프레임은 슬라이스에 포함된 CU들에 연관된 코딩 모드들에 기초하여 슬라이스들로 구획될 수도 있다. 예를 들어, 슬라이스는, 슬라이스에 포함된 모든 CU들이 스킵 모드, 직접 모드, 인트라 예측 모드, 또는 인터 예측 모드와 같은 공통 코딩 모드를 공유하도록 정의될 수도 있다.
일련의 비디오 프레임들 또는 화상들은 화상들의 그룹의 코딩된 비디오 시퀀스의 부분으로서 코딩될 수도 있다. 화상들의 그룹 (GOP) 은 일반적으로 일련의 하나 이상의 비디오 화상들을 포함한다. GOP는 GOP에 포함된 다수의 화상들을 서술하는 신택스 데이터를 GOP의 헤더, 그 화상들 중 하나 이상의 화상들의 헤더, 또는 다른 곳에 포함할 수도 있다. 화상의 각각의 슬라이스는 개별 슬라이스에 대한 인코딩 모드를 서술하는 슬라이스 신택스 데이터를 포함할 수도 있다. 본원에서 설명된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 인코딩하기 위하여 개개의 비디오 슬라이스들 내의 비디오 블록들에 대해 통상 동작한다. 그러나, 비디오 인코더 (20) 는 또한 더 높은 레벨의 비디오 코딩 프로세스들, 이를테면 비디오 프레임을 슬라이스들로 구획하는 것 및/또는 GOP 레벨 또는 슬라이스 레벨 신택스를 생성하는 것을 수행할 수도 있다.
위에서 설명된 바와 같이, CU들에 연관된 신택스 데이터는 하나 이상의 PU들로의 CU의 구획화를 설명할 수도 있다. CU에 연관된 신택스 데이터는 또한, 예를 들어 쿼드트리에 따른 하나 이상의 TU들로의 CU의 구획화를 서술할 수도 있다. 일부 예들에서, PU 또는 TU는 형상이 정사각형 또는 비-정사각형일 수 있다. 일반적으로, PU는 예측 프로세스에 관련된 데이터를 포함한다. 예를 들어, PU가 인트라 모드 인코딩되는 경우, PU는 PU에 대한 인트라 예측 모드를 설명하는 데이터를 포함할 수도 있다. 다른 예로서, PU가 인터 모드 인코딩되는 경우, PU는 PU에 대한 모션 정보를 정의하는 데이터를 포함할 수도 있다. PU에 대한 모션 정보를 정의하는 데이터는, 예를 들어, 수평 성분, 수직 성분을 갖는 모션 벡터, 해상도 (예컨대, 1/4 화소 정밀도 또는 1/8 화소 정밀도), 모션 벡터에 대한 참조 화상 리스트 (예컨대, 리스트 0, 리스트 1, 또는 리스트 C) 를 나타내는 예측 방향, 및 모션 벡터가 참조 화상 리스트 내에서 가리키는 참조 화상을 나타내는 참조 화상 인덱스를 설명할 수도 있다. 그런고로, PU는 예측 프로세스에 관련한 정보를 운반하는 기본 단위로서 간주될 수도 있다. 하나의 예에서, 비디오 인코더 (20) 는 HEVC 테스트 모델 (HM) 에 의해 지원된 PU 구조들에 따라 비디오 데이터를 인코딩하도록 구성될 수도 있다.
일 예로서, HM은 다양한 PU 사이즈들에서 예측을 지원한다. 특정 CU의 사이즈가 2Nx2N이라고 가정하면, HM은 2Nx2N 또는 NxN의 PU 사이즈들에서 인트라 예측과, 2Nx2N, 2NxN, Nx2N, 또는 NxN의 대칭적 PU 사이즈들에서 인터 예측을 지원한다. HM은 또한 2NxnU, 2NxnD, nLx2N, 및 nRx2N의 PU 사이즈들에서의 인터 예측을 위한 비대칭 구획화를 지원한다. 비대칭 구획화 시, CU의 하나의 방향은 구획되지 않는 반면, 다른 방향은 25% 및 75%로 구획된다. 25% 구획에 대응하는 CU의 부분은 "Up", "Down", "Left", 또는 "Right"의 표시가 뒤따르는 "n"에 의해 나타내어진다. 따라서, 예를 들어, "2NxnU"는 상단의 2Nx0.5N PU 및 하단의 2Nx1.5N PU로 수평으로 구획되는 2Nx2N CU를 의미한다.
위에서 설명된 바와 같이, TU는 변환 및 양자화 프로세스들을 위해 사용되는 기본 단위이다. 하나 이상의 PU들을 갖는 주어진 CU는 또한 하나 이상의 변환 단위들 (TUs) 을 포함할 수도 있다. 게다가, HEVC WD4에서 TU들은, 항상 그런 것은 아닐 수도 있지만, 구획된 LCU에 대해 정의된 주어진 CU 내의 PU들의 사이즈에 기초하여 통상 사이즈가 정해질 수도 있다. TU들은 통상 PU들과 동일한 사이즈이거나 또는 그것들보다 작을 수도 있다. 일부 예들에서, CU에 대응하는 잔차 샘플들은 "잔차 쿼드 트리 (residual quad tree)" (RQT) 로서 알려진 쿼드트리 구조를 이용하여 작은 단위들로 세분될 수도 있다. RQT의 리프 노드들은 변환 단위들 (TUs) 이라고 지칭될 수도 있다.
인트라 또는 인터 예측에 뒤이어, 비디오 인코더 (20) 는 그 PU에 대응하는 잔차 비디오 데이터를 계산할 수도 있다. 잔차 값들은 코딩될 원본 블록의 화소 값들 및 인트라 예측 또는 인터 예측에 의해 형성된 예측 블록의 화소 값들 사이의 차이들을 나타내는 화소 차이 값들을 포함한다. 예측 단위에서의 잔차 비디오 데이터, 즉, 잔차 화소 차이 값들은, 변환 계수들을 생성하기 위해 TU 구조에 따라 변환 계수들로 변환될 수도 있다. 그런고로, 잔차 데이터는 화소 도메인에서부터 변환 도메인으로 변환될 수도 있다.
변환 계수들을 생성하는 임의의 변환들에 뒤따라, 비디오 인코더 (20) 는 변환 계수들의 양자화를 수행할 수도 있다. 양자화는 변환 계수들이 그 계수들을 나타내는데 이용된 데이터의 양을 가능한 한 줄이도록 양자화되어서, 추가의 압축을 제공하는 프로세스를 일반적으로 말한다. 양자화 프로세스는 계수들의 일부 또는 전부에 연관된 비트 깊이를 감소시킬 수도 있다. 예를 들어, n-비트 값은 양자화 동안에 m-비트 값으로 내림될 (rounded down) 수도 있으며, 여기서 n 은 m보다 크다.
일부 예들에서, 비디오 인코더 (20) 는 엔트로피 인코딩될 수 있는 직렬화된 벡터를 생성하기 위해 미리 정의된 스캔 순서를 활용하여 양자화된 변환 계수들을 스캔할 수도 있다. 다른 예들에서, 비디오 인코더 (20) 는 적응적 스캔을 수행할 수도 있다. 1차원 벡터를 형성하기 위해 양자화된 변환 계수들을 스캔한 후, 비디오 인코더 (20) 는, 예컨대, 콘텍스트 적응 가변 길이 코딩 (context adaptive variable length coding; CAVLC), 콘텍스트 적응 이진 산술 코딩 (context adaptive binary arithmetic coding; CABAC), 신택스 기반 콘텍스트 적응 이진 산술 코딩 (syntax-based context-adaptive binary arithmetic coding; SBAC), 또는 확률 간격 구획화 엔트로피 (Probability Interval Partitioning Entropy; PIPE) 코딩 또는 다른 엔트로피 인코딩 방법론에 따라, 1차원 벡터를 엔트로피 인코딩할 수도 있다. 비디오 인코더 (20) 는 또한 비디오 데이터를 디코딩함에 있어서 비디오 디코더 (30) 에 의한 사용을 위해 인코딩된 비디오 데이터에 연관된 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
CABAC를 수행하기 위해, 비디오 인코더 (20) 는 콘텍스트 모델 내의 콘텍스트를 송신될 심볼에 할당할 수도 있다. 그 콘텍스트는, 예를 들어, 심볼의 이웃 값들이 영이 아닌지의 여부에 관련될 수도 있다. CAVLC를 수행하기 위해, 비디오 인코더 (20) 는 송신될 심볼에 대한 가변 길이 코드를 선택할 수도 있다. VLC에서의 코드워드들은 상대적으로 더 짧은 코드들이 고확률 (more probable) 심볼들에 대응하는 반면, 더 긴 코드들은 저확률 (less probable) 심볼들에 대응하도록 구성될 수도 있다. 이런 식으로, VLC의 사용은, 예를 들어, 송신될 각각의 심볼에 대해 동일 길이 코드워드들을 이용하는 것보다, 비트 절약을 달성할 수도 있다. 확률 결정은 심볼에 할당된 콘텍스트에 기초할 수도 있다.
위에서 설명된 바와 같이, HEVC의 메인 프로파일에서 설명되는 TU 분할 구조들은 4:2:2 샘플 포맷에 따라 포맷된 비디오 데이터에 적용되는 경우에 다양한 단점들을 가진다. HEVC의 메인 프로파일에 기재된 TU 분할 구조들에 따라 비디오 데이터를 코딩하도록 구성된 것 외에도, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 본원에서 설명되는 TU 구획화 기법들을 사용하여 비디오 데이터를 코딩하도록 구성될 수도 있다.
하나의 예에서, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 4:2:2 샘플 포맷에 따라 포맷된 비디오에 포함된 각각의 크로마 성분의 블록을 상단 크로마 서브블록 및 하단 크로마 서브블록으로 구획하도록 구성될 수도 있다. 하나의 예에서, 주어진 크로마 성분의 상단 및 하단 서브블록들의 각각은 정사각형일 수도 있다. 게다가, 2 개의 크로마 서브블록들의 양쪽 모두의 변환 단위 구획화는 루마 성분의 구획화와 동기화될 수도 있다. 이런 방식으로, 일부 경우들에서, 크로마 성분의 변환 단위는 비디오 데이터가 4:2:2 샘플 포맷에 따라 포맷된 경우에 루마 성분의 대응하는 변환 단위와 동일한 애스팩트 비를 가지도록 구획될 수도 있다.
도 8a 내지 도 8d는 4:2:2 샘플 포맷에 따라 포맷된 비디오 블록들에 대한 변환 단위 구획화의 상이한 경우들을 예시한다. 도 8a 내지 도 8d의 각각에서 크로마 성분들은 루마 성분에 기초한 임의의 구획화 전에 상단 및 하단 서브블록들로 먼저 구획화될 수도 있다. 크로마 성분들을 상단 및 하단 서브블록들로 구획하는 것에 의해, 크로마 성분들이 상단 및 하단 서브블록들로 먼저 구획화되지 않는 경우와 비교할 때 대안적 TU 형상들 및 사이즈들이 크로마 성분들에 대해 생성될 수도 있다.
도 8a 내지 도 8d에서의 비디오 블록들은 다음 사이즈들 4x4, 8x8, 16x16, 32x32, 및 64x64 중 임의의 것의 비디오 블록들 또는 CU들에 대응할 수도 있다. 대체로, 크로마 성분을 상단 및 하단 서브블록들로 구획하는 것에 의해, 크로마 성분이 상단 및 하단 서브블록들로 구획되지 않은 경우에 비교하여 2 배의 TU들이 크로마 성분에 대해 생성된다. 게다가, 크로마 성분을 상단 및 하단 서브블록들로 구획하는 것에 의해, 크로마 성분이 상단 및 하단 서브블록들로 구획되지 않는 경우와 비교해 볼 때 TU의 수직 또는 수평 치수가 2에 의해 나누어진 TU들이 생성될 수도 있다. 크로마 성분들이 상단 및 하단 서브블록들로 구획되는 경우에 CU를 TU들로 구획하는 일부 특정 경우들은 아래에서 상세히 설명된다. 그러나 간결함을 위해, 크로마 성분들을 상단 및 하단 서브블록들로 구획하는 것으로부터 도출될 수도 있는 모든 가능한 TU 구획 조합들이 상세히 설명되지 않지만, 도 8a 내지 도 8d에 관해 설명된 구획화 기법들은 분할의 다양한 레벨들에서 적용될 수도 있다는 것에 주의해야 한다.
도 8a는 크로마 성분들이 상단 및 하단 서브블록들로 구획되고 루마 성분에 기초한 부가적인 구획화는 적용되지 않는 구획화 구조에 기초한 예의 변환 단위들을 도시한다. 도 8a에 예시된 바와 같이, 루마 블록은 추가 분할되지 않고 대응하는 크로마 블록들의 각각은 상단 서브블록 및 하단 서브블록으로 구획된다. 도 8a에 도시된 예에서, 크로마 블록들이 상단 서브블록 및 하단 서브블록으로 구획된 후의 크로마 성분들을 추가 구획하는 결정은 루마 성분의 구획화에 기초할 수도 있다. 따라서, 도 8a에 도시된 예에서, 크로마 성분들의 각각은 추가 분할되지 않을 수도 있는데 루마 블록이 추가 분할되지 않기 때문이다.
하나의 예에서, 도 8a에 도시된 TU 구획화에 연관된 CU는 8x8 CU일 수도 있다. 이 경우, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 루마 성분에 대한 8x8 TU 및 크로마 성분들에 대한 2 개의 4x4 TU들이 되게 한다. 이 경우는, 루마 성분에 대한 8x8 TU 및 크로마 성분들에 대한 4x8 TU가 될 것인, 크로마 성분들이 상단 및 하단 서브블록들로 구획되지 않는 경우와 대조될 수도 있다. 위에서 설명된 바와 같이, 4x4 TU는 HEVC에 대해 정의될 수도 있는 반면 4x8 TU는 정의되지 않거나 또는 이용가능하지 않을 수도 있다. 따라서, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 더욱 유용한 TU 형상들 및 사이즈들이 되게 할 수도 있다.
대체로, 도 8a에 예시된 TU 구획들에 연관된 CU는 N 바이 N CU로서 설명될 수도 있다. 크로마 성분들이 상단 및 하단 서브블록들로 구획되지 않는 경우의 하나의 N/2 바이 N TU와는 대조적으로, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 2 개의 N/2 바이 N/2 TU들이 되게 한다. 따라서, 크로마 성분들이 상단 및 하단 서브블록들로 분할되지 않는 경우의 1 대 2의 애스팩트 비를 갖는 하나의 직사각형 TU와는 대조적으로, 크로마 성분들을 상단 및 하단 서브블록들로 구획하는 것은 2 개의 정사각형 TU들이 생기게 한다. 위에서 지적된 바와 같이, 이 예에서, 크로마 서브블록들의 각각은 루마 블록과 동일한 애스팩트 비를 가진다. 다른 예들에서, 도 8a에 관해 설명된 기법들은 4x4, 16x16, 32x32 또는 64x64 CU들에 적용될 수도 있다는 것에 주의해야 한다. 간결함을 위해, 가능한 CU 사이즈들에 대한 대응하는 루마 및 크로마 TU 사이즈들이 상세히 설명되지 않는다.
도 8b는 크로마 성분들이 상단 및 하단 서브블록들로 구획되고 부가적인 쿼드트리 구획화가 적용되는 구획화 구조에 기초한 예의 변환 단위들을 도시한다. 도 8b에 예시된 바와 같이, 변환 목적들을 위해, 루마 블록이 4 개의 정사각형 형상으로 된 서브블록들로 분할된다. 대응하는 크로마 블록들 각각은 양쪽 모두가 정사각형인 상단 서브블록 및 하단 서브블록으로 구획되고, 그 다음에 상단 및 하단 서브블록들의 각각은 더 작은 사이즈들을 갖는 4 개의 정사각형 형상의 블록들로 추가로 구획된다. 대체로, 도 8b에서의 CU는 N 바이 N CU로서 서술될 수도 있다. 루마 성분의 구획화는 4 개의 N/2 바이 N/2 TU들이 생기게 한다. 크로마 성분들이 상단 및 하단 서브블록들로 구획되지 않는 경우의 4 개의 N/4 바이 N/2 TU들과는 대조적으로, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 8 개의 N/4 바이 N/4 TU들이 생기게 한다. 따라서, TU들이 상단 및 하단 서브블록들로 분할되지 않는 경우의 1 대 2의 애스팩트 비를 갖는 4 개의 직사각형 TU들과 비교하여, 크로마 성분들을 상단 및 하단 서브블록들로 구획하는 것은 8 개의 정사각형 TU들이 생기게 한다. 도 8b에서의 CU는 4x4, 8x8, 16x16, 32x32 또는 64x64 CU일 수도 있다는 것에 주의해야 한다.
도 9는 CU가 16x16 CU인 경우에서 도 8b에 관해 설명된 예의 크로마 TU 구획화 기법에 대한 크로마 성분들의 TU 구획화를 예시한다. 도 9에 도시된 예에서, 실선들은 루마 성분의 구획화를 나타내고 실선 및 파선들은 크로마 성분들의 구획화를 나타낸다. 따라서, 도 9에 예시된 바와 같이, 구획화 기법은 크로마 성분들의 각각에 대한 8 개의 4x4 TU들 및 루마 성분에 대한 4 개의 8x8 TU들이 생기게 한다. 도 9에 도시된 예는, 크로마 성분들이 크로마 성분들에 대한 4 개의 4x8 TU들이 될 것인, 상단 및 하단 서브블록들로 구획되지 않은 경우와 대조될 수도 있다. 위에서 설명된 바와 같이, 4x4 TU는 HEVC에 대해 정의될 수도 있고 4x8 TU는 정의되지 않을 수도 있다. 따라서, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 더욱 유용한 TU 형상들 및 사이즈를 허용할 수도 있다. 다른 예에서, 도 8b에 관해 설명된 구획화 기법은 32x32 CU에 적용될 수도 있고, 루마에 대한 4 개의 16x16 TU들 및 크로마에 대한 8 개의 8x8 TU들이 생기게 한다. 다른 예에서, 도 8b에 관해 설명된 구획화 기법은 64x64 CU에 적용될 수도 있고, 루마에 대한 4 개의 32x32 TU들 및 크로마에 대한 8 개의 16x16 TU들이 생기게 한다.
게다가, 일부 CU 사이즈들에 대해 도 8a 및 도 8b에 관해 설명된 구획화 기법들은 HEVC에서 정의되지 않은 TU 사이즈들을 초래할 수도 있다는 것에 주의해야 한다. 그런 경우들에서, 상단 및 하단 서브블록들로의 크로마 성분들의 분할은 그 분할이 HEVC에서 정의된 TU들을 초래하도록 선택적으로 적용될 수도 있다. 예를 들어, 크로마 성분들을 상단 및 하단 서브블록들로 분할하는 것이 최소 TU 사이즈보다 작을 수도 있는 2x2 TU들을 초래하면, 이 특정 CU 사이즈에 대해 크로마 성분들을 상단 및 하단 서브블록들로 분할하지 않는다는 결정이 이루어질 수도 있다.
예를 들어, 8x8 루마 블록의 경우, 대응하는 크로마 블록들은 4:2:2 포맷에 따라 4x8의 사이즈를 가질 수도 있다. 8x8 루마 블록이 4 개의 4x4 블록들로 분할되면, 각각의 크로마 블록은 4x4 상단 서브블록 및 4x4 하단 서브블록으로 구획될 수도 있다. 그러나, 이 경우, 크로마 성분들의 서브블록들의 추가 분할이 없을 수도 있는데 HEVC에서 정의된 4x4보다 작은 사이즈를 갖는 정사각형 형상 변환이 없기 때문이다. 그런고로, 상단 및 하단 서브블록들로의 크로마 성분들의 분할은 최소 정사각형 형상 변환 사이즈에 의해 제한될 수도 있다. 이런 방식으로, 루마 및 크로마 성분들의 각각의 구획화는 이용가능한 변환들이 적용될 수도 있는 변환 단위들을 산출하도록 선택적으로 적용될 수도 있다. 하나의 예에서, 정사각형 형상 변환들의 다음의 사이즈들, 즉 4x4, 8x8, 16x16 및 32x32는 코딩을 위해 정의되고 이용가능하게 될 수도 있고 32x8, 8x32, 16x4 및 4x16의 비-정사각형 형상 변환들이 코딩을 위해 정의되고 이용가능하게 될 수도 있다.
위에서 설명된 바와 같이, CU는 비-정사각형의 직사각형 TU들로 구획될 수도 있다. 도 8c 및 도 8d는 크로마 성분들이 상단 및 하단 서브블록들로 구획되고 부가적인 비-정사각형의 직사각형 구획화가 적용되는 구획화 구조에 기초한 예들의 변환 단위들을 도시한다. 도 8c는 크로마 성분들이 상단 및 하단 서브블록들로 구획되고 부가적인 수평 비-정사각형의 직사각형 구획화가 적용되는 구획화 구조에 기초한 예의 변환 단위들을 도시한다.
도 8c에 도시된 바와 같이, 루마 블록은 4 개의 수평 배향된 비-정사각형의 직사각형 형상의 서브블록들로 분할된다. 대응하는 크로마 블록들 각각은 양쪽 모두가 정사각형인 상단 서브블록 및 하단 서브블록으로 구획되고, 그 다음에 상단 및 하단 서브블록들의 각각은 더 작은 사이즈들을 갖는 4 개의 수평 배향된 비-정사각형 형상의 직사각형 블록들로 추가로 구획된다. 대체로, 도 8c에서의 CU는 N 바이 N CU로서 서술될 수도 있다. 비-정사각형 직사각형 CU들로의 루마 성분의 구획화는 4 개의 N 바이 N/4 TU들이 생기게 할 수도 있다. 크로마 성분들이 상단 및 하단 서브블록들로 구획되지 않는 경우의 4 개의 N/2 바이 N/4 TU들과는 대조적으로, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 8 개의 N/2 바이 N/8 TU들이 생기게 할 수도 있다. 따라서, TU들이 상단 및 하단 서브블록들로 분할되지 않는 경우의 2 대 1의 애스팩트 비를 갖는 4 개의 비-정사각형 직사각형 TU들과 비교하여, 크로마 성분들을 상단 및 하단 서브블록들로 구획하는 것은 4 대 1의 애스팩트 비를 갖는 8 개의 비-정사각형 직사각형 TU들이 생기게 한다.
하나의 예에서, 도 8c에 도시된 TU 구획화에 연관된 CU는 32x32 CU일 수도 있다. 따라서, 도 8c에 관해 설명된 구획화 기법은 루마 성분에 대한 4 개의 32x8 TU들 및 크로마 성분들에 대한 8 개의 16x4 TU들을 생기게 할 수도 있다. 이 예는, 크로마 성분들이 크로마 성분들에 대한 4 개의 16x8 TU들이 될 것인, 상단 및 하단 서브블록들로 구획되지 않는 경우와 대조될 수도 있다. 위에서 설명된 바와 같이, 16x4 TU는 HEVC에 대해 정의될 수도 있고 16x8 TU는 정의되지 않을 수도 있다. 따라서, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 더욱 유용한 TU 형상들 및 사이즈들을 허용할 수도 있다. 다른 예들에서 도 8c에서의 CU는 4x4, 8x8, 16x16, 또는 64x64 CU일 수도 있다는 것에 주의해야 한다.
도 8d는 크로마 성분들이 상단 및 하단 서브블록들로 구획되고 부가적인 수직 비-정사각형의 직사각형 구획화가 적용되는 구획화 구조에 기초한 예의 변환 단위들을 도시한다. 도 8d에 도시된 바와 같이, 루마 블록은 변환 목적으로 4 개의 수직 배향된 비-정사각형의 직사각형 형상의 서브블록들로 분할된다. 대응하는 크로마 블록들 각각은 양쪽 모두가 정사각형인 상단 서브블록 및 하단 서브블록으로 구획되고, 그 다음에 상단 및 하단 서브블록들의 각각은 더 작은 사이즈들을 갖는 4 개의 수직 배향된 비-정사각형 형상의 직사각형 블록들로 추가로 구획된다. 대체로, 도 8d에서의 CU는 N 바이 N CU로서 서술될 수도 있다. 비-정사각형 직사각형 CU들로의 루마 성분의 구획화는 4 개의 N/4 바이 N TU들이 생기게 할 수도 있다. 크로마 성분들이 상단 및 하단 서브블록들로 구획되지 않는 경우의 4 개의 N/8 바이 N TU들과는 대조적으로, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 8 개의 N/8 바이 N/2 TU들이 생기게 할 수도 있다. 따라서, TU들이 상단 및 하단 서브블록들로 분할되지 않는 경우의 1 대 8의 애스팩트 비를 갖는 4 개의 비-정사각형 직사각형 TU들과 비교하여, 크로마 성분들을 상단 및 하단 서브블록들로 구획하는 것은 1 대 4의 애스팩트 비를 갖는 8 개의 비-정사각형 직사각형 TU들이 생기게 한다.
하나의 예에서, 도 8d에 도시된 TU 구획화에 연관된 CU는 32x32 CU일 수도 있다. 따라서, 도 8d에 관해 설명된 구획화 기법은 루마 성분에 대한 4 개의 8x32 TU들 및 크로마 성분들에 대한 8 개의 4x16 TU들을 생기게 할 수도 있다. 이 예는, 크로마 성분들이 크로마 성분들에 대한 4 개의 4x32 TU들이 될 것인, 상단 및 하단 서브블록들로 구획되지 않는 경우와 대조될 수도 있다. 위에서 설명된 바와 같이, 4x16 TU는 HEVC에 대해 정의될 수도 있고 4x32 TU는 정의되지 않을 수도 있다. 따라서, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 더욱 유용한 TU 형상들 및 사이즈들을 허용할 수도 있다. 다른 예들에서 도 8d에서의 CU는 4x4, 8x8, 16x16, 또는 64x64 CU일 수도 있다는 것에 주의해야 한다.
게다가, 도 8a 및 도 8b에 관해 위에서 설명된 바와 같이, 일부 CU 사이즈들에 대해, 도 8c 및 도 8d에 관해 설명된 구획화 기법들은 HEVC에서 정의되지 않은 TU 사이즈들이 생기게 할 수도 있다는 것에 주의해야 한다. 따라서, 이러한 경우들에서, 상단 및 하단 서브블록들로의 크로마 성분들의 분할은 그 분할이 HEVC, 또는 다른 적용가능한 비디오 코딩 표준 또는 프로세스에서 정의된 TU들을 초래하도록 선택적으로 적용될 수도 있다. 하나의 예에서, 정의된 비-정사각형 직사각형 TU들은 32x8, 8x32, 16x4, 및 4x16 TU들을 포함할 수도 있다.
게다가, 도 8a 내지 도 8d에 관해 설명된 예들의 각각에 대해, 크로마 성분들이 상단 및 하단 서브블록들로 분할되고 추가의 변환 단위 구획화가 루마 성분과 동기화되는 경우, 4:2:2 포맷 하의 각각의 비-분할 루마 변환 단위에 대해, 일반적으로 각각의 크로마 성분으로부터 이용가능한 2 개의 비-분할 크로마 TU들이 있을 것이다. 그러나, 일부 경우들에서, 루마 블록은 추가 분할될 수도 있지만, 크로마 블록들을 분할하는 것이 적용가능한 비디오 코딩 표준 또는 프로세서, 이를테면 HEVC에 대한 최소 변환 단위 사이즈 미만의 이용불가능한 TU 또는 TU가 생기게 할 것이라면, 대응하는 크로마 블록들은 추가 분할되지 않을 수도 있다.
따라서, 도 8a 내지 도 8d의 각각은, 4:2:2 샘플 포맷에 따라 포맷된 비디오 블록에 대해, 루마 블록에 대응하는 크로마 블록이 상단 및 하단, 정사각형 서브블록들로 구획될 수도 있고 루마 블록이 추가 구획되면 상단 및 하단 서브블록들이 유사한 방식으로 구획될 수도 있는 경우를 예시한다. 예를 들어, 이들 기법들은 정사각형 루마 블록 구획화의 경우의 정사각형 서브블록 구획들, 수평 배향된 루마 블록 구획화의 경우의 수평 배향된 서브블록 구획들, 또는 수직 배향된 루마 블록 구획화의 경우의 수직 배향된 서브블록 구획들에 적용될 수도 있다. 게다가, 일부 경우들에서, 예외로서, 루마 블록이 구획되지만 대응하는 크로마 블록이 상단 서브블록 및 하단 서브블록으로의 분할 후에 변환들의 최소 사이즈에 이미 도달하였다면, 각각의 크로마 성분의 2 개의 서브블록들은 추가 분할되지 않을 수도 있다. 따라서, 4:2:2 포맷 하의 도 8a 내지 도 8d에 관해 설명된 기법들에 따르면, 일부 예들에서, 크로마 성분들에 대한 변환 단위는 그것의 대응하는 루마 성분의 변환 단위와 동일한 애스팩트 비를 가질 수도 있다. 그 결과, HEVC WD4 또는 WD8에서 정의된 변환들은 도 8a 내지 도 8d에 관해 설명된 기법들을 사용하여 형성된 결과적인 TU들에 대해 변환들을 수행하기에 충분할 수도 있다. 따라서, 일부 예들에서, 도 8a 내지 도 8d에 관해 설명된 기법들은 부가적인 변환 형상들 및 사이즈들을 정의하는 일 없이 HEVC에 통합될 수도 있다.
이런 방식으로, 비디오 인코더 (20) 는, 비디오 데이터의 루마 성분에 대한 값들의 N 바이 N 어레이를 수신하며, 비디오 데이터의 크로마 성분에 대한 값들의 대응하는 N/2 바이 N 어레이를 수신하며, 크로마 성분에 대한 값들의 N/2 바이 N 어레이를 2 개의 N/2 바이 N/2 서브 어레이들로 구획하고 크로마 값들의 그 서브 어레이들의 각각에 대해 변환 동작을 수행하도록 구성될 수도 있다. 비디오 디코더 (30) 는 비디오 인코더에 의해 생성된 어레이들 및 서브 어레이들을 수신하고 역 변환 동작들을 수행하도록 구성될 수도 있다.
게다가, 위에서 설명된 바와 같이, HEVC WD4는 변환 계수들 또는 변환 계수 레벨들의 블록이 임의의 0이 아닌 변환 계수들을 포함하는지를 나타내는 코딩된 블록 플래그 신택스 엘리먼트를 포함한다. 하나의 예에서, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 본원에서 설명되는 코딩된 블록 플래그 코딩을 위한 기법들을 사용하여 비디오 데이터를 코딩하도록 추가로 구성될 수도 있다. 일부 예들에서, 코딩된 블록 플래그 코딩은 인터 예측 모드들을 위해서만 사용될 수도 있다. 이는 인트라 예측 모드들이 비디오 블록에 대해 0이 아닌 변환 계수들을 생기게 할 더 많은 가능성이 있다는 사실 때문일 수도 있다.
하나의 예에서, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 조인트 코딩된 블록 플래그를 사용하도록 구성될 수도 있다. 예를 들어, 크로마 성분의 변환 단위에 대한 코딩된 블록 플래그를 코딩함에 있어서, 각각의 크로마 성분에 대해, 조인트 코딩된 블록 플래그는 먼저 크로마 성분의 크로마 변환 단위들의 각각의 쌍에 대해 시그널링될 수도 있다. 크로마 변환 단위들의 쌍 내에 적어도 하나의 0이 아닌 계수가 있음을 조인트 코딩된 블록 플래그가 나타내면, 2 개의 변환 단위들의 각각이 임의의 0이 아닌 변환 계수들을 가지는지를 시그널링하기 위해 하나 이상의 부가적인 코딩된 블록 플래그들이 전송될 수도 있다. 그렇지 않고, 크로마 변환 단위들의 쌍 내에 적어도 하나의 0이 아닌 계수가 없음을 조인트 코딩된 블록 플래그가 나타내면, 크로마 성분들의 쌍에 대한 변환 단위들을 위해 추가의 시그널링은 필요하지 않다. 하나의 예에서 크로마 성분들은 4:2:2 샘플 포맷에 따라 포맷된 비디오 데이터의 크로마 성분들에 대응할 수도 있다.
도 10a 내지 도 10d는 코딩된 블록 플래그 코딩에 대한 블록 연관을 위한 기법들을 예시하는 개념도들이다. 도 10a 내지 도 10d에서, 도 8a 내지 도 8d에 예시된 개별 변환 단위 구획 구조들은 조인트 코딩된 블록 플래그를 공유할 수도 있는 비디오 성분들의 표시와 함께 예시된다. 도 10a 내지 도 10d의 예들이 도 8a 내지 도 8d에 예시된 변환 단위들에 대응하지만, 조인트 코딩된 블록 플래그 코딩은 다른 변환 단위 구획화 구조들과 함께 활용될 수도 있다. 게다가, 본원에서 설명되는 조인트 코딩된 블록 플래그 코딩 기법들은 4:2:2 샘플 포맷에 따라 포맷된 비디오 데이터에 특히 유용할 수도 있지만, 이러한 기법들은 또한 4:2:0 또는 4:4:4 샘플 포맷들에 따라 포맷된 비디오 데이터에 적용될 수도 있다.
도 10a 내지 도 10d에 예시된 바와 같이, 루마 성분에 대한 TU는 음영이 넣어지고 2 개의 대응하는 TU들은 크로마 성분들의 각각에 대해 음영이 넣어진다. 음영 넣은 (shaded) TU들은 코딩된 블록 플래그에 연관된 TU들을 나타낼 수도 있다. 도 10a 내지 도 10d에 예시된 바와 같이, 2 개의 TU들은 크로마 성분들의 각각에 대해 음영이 넣어진다. 이런 방식으로, 조인트 코딩된 블록 플래그는 크로마 성분의 2 개의 음영 넣은 TU들과 연관될 수도 있다. 게다가, 도 10b, 도 10c 및 도 10d에서, 오직 제 1 비-분할 루마 블록 및 그것의 연관된 크로마 블록들만이 음영 넣은 영역들로 표시된다는 것에 주의해야 한다. 그러나, 이들 경우들에서, 다른 3 개의 비-분할 루마 블록들의 각각은 또한 각각의 크로마 성분에 대한 조인트 코딩된 블록 플래그에 연관된 2 개의 개별 크로마 블록들을 가질 수도 있다는 것이 명백하다. 예를 들어, 도 10c에서 제 2 수평 루마 TU는 크로마 성분들의 제 3 및 제 4 수평 TU들과 연관될 수도 있다. 게다가, 일부 예들에서, 컴포넌트들 중 임의의 것이 임의의 0이 아닌 계수를 포함하는지의 여부를 나타내는 하이 레벨 코딩된 블록 플래그가, 임의의 부가적인 코딩된 블록 플래그들이 시그널링될 것들인지의 여부를 결정하는데 이용될 수도 있다.
하나의 예에 따르면, 조인트 코딩된 블록 플래그는 크로마 성분의 크로마 변환 단위들의 각각의 쌍에 대해 먼저 시그널링될 수도 있다. 크로마 변환 단위들의 쌍 내에 적어도 하나의 0이 아닌 계수가 있음을 나타내는 값 (예컨대, 1) 을 조인트 코딩된 블록 플래그가 가지면, 2 개의 변환 단위들의 각각이 임의의 0이 아닌 계수들을 가지는지를 시그널링하기 위해 하나 이상의 부가적인 코딩된 블록 플래그들이 전송될 수도 있다. 그렇지 않고, 조인트 코딩된 블록 플래그가 적어도 하나의 0이 아닌 계수가 없음을 나타내는 값 (예컨대, 0) 을 가지면, 크로마 성분의 크로마 변환 단위들의 쌍에 대해 추가의 시그널링이 필요하지 않다. 예를 들어, 도 10b에서, U 성분의 경우, 음영 넣은 영역으로 표시된 크로마 변환 단위들의 쌍 즉, 상단 및 하단 서브블록들 내에 임의의 0이 아닌 계수가 있는지를 U 성분에 대해 나타내는 조인트 코딩된 블록 플래그가 비디오 인코더 (20) 에 의해 인코딩된 비트스트림에서 먼저 시그널링될 수 있다. 위에서 설명된 바와 같이, 크로마 변환 단위들은 또한 서브블록들이 변환 단위들에 대응하는 서브블록들이라고 지칭될 수도 있다. 조인트 코딩된 블록 플래그가 0이 아닌 계수가 없음을 나타내는 값 (예컨대, 0) 을 가지면, U 성분의 이들 2 개의 변환 단위들에 대해 추가의 시그널링이 필요하지 않다. 그렇지 않으면, 하나 이상의 부가적인 코딩된 블록 플래그들은 각각의 변환 단위 내에 임의의 0이 아닌 계수가 있는지를 나타내기 위해 U 성분에서의 2 개의 변환 단위들의 각각에 대해 시그널링될 수 있다. 따라서, 상단 변환 단위 또는 하단 변환 단위 중 어느 하나에서 0이 아닌 계수가 없음을 조인트 코딩된 블록 플래그가 나타내면, 변환 단위의 이 쌍에 대응하는 변환 단위들에 대해 추가의 시그널링이 필요하지 않다.
그러나, 상단 변환 단위 또는 하단 변환 단위 내에 적어도 하나의 0이 아닌 계수가 있음을 크로마 성분에 대한 조인트 코딩된 블록 플래그가 나타내면, 비디오 인코더 (20) 는 상단 변환 단위 내에 적어도 하나의 0이 아닌 계수가 있는지의 여부를 나타내는 상단 변환 단위에 대한 코딩된 블록 플래그를 생성하고, 하단 변환 단위 내에 적어도 하나의 0이 아닌 계수가 있는지의 여부를 나타내는 하단 변환 단위에 대한 다른 코딩된 블록 플래그를 생성할 수도 있다. 하나의 예에서, 코딩된 블록 플래그의 시그널링은 U 성분 및 V 성분들의 각각에 대해 동일한 방도로 수행될 수도 있다.
하나의 예에서, 크로마 변환 단위들의 쌍 내에 적어도 하나의 0이 아닌 계수가 있음을 나타내는 값 (예컨대, 1) 을 크로마 변환 단위들의 한 쌍에 대한 조인트 코딩된 블록 플래그가 가지고, 이 쌍의 제 1 변환 단위에 대한 부가적인 코딩된 블록 플래그가 그것 내에 0이 아닌 계수가 없음을 나타내는 값 (예컨대, 0) 을 가지는 경우, 이 경우에, 제 2 변환 단위는 적어도 하나의 0이 아닌 변환 계수를 가져야만 하고 그것의 코딩된 블록 플래그의 값 (예컨대, 1) 이 유추될 수 있다. 이 경우, 이 쌍의 제 2 변환 단위에 대한 코딩된 블록 플래그를 시그널링하는 것이 필요하지 않은데, 상단 변환 단위 또는 하단 변환 단위 중 어느 하나가 0이 아닌 변환 계수를 포함함을 나타내는 조인트 코딩된 블록 플래그가 주어지면, 그리고 상단 변환 단위가 0이 아닌 변환 계수를 포함하지 않음을 나타내는, 상단 변환 단위를 위해 전송된 제 1 코딩된 블록 플래그가 주어지면, 제 2 변환 단위는 0이 아닌 계수를 포함해야만 한다는 것이 알려져 있기 때문이다.
도 11은 본 개시물에서 설명되는 바와 같은 크로마 성분들에 대한 코딩된 블록 플래그 코딩을 위한 변환 단위 구획화 및 블록 연관을 위한 방법의 일 예를 도시하는 흐름도이다. 도 11에 예시된 방법은 비디오 인코더 (20) 에 의해 수행되고 있는 것으로서 설명된다. 그러나, 이러한 설명은 예시적 목적을 위한 것이고 도 11에 예시된 방법은 비디오 인코더에 포함된 컴포넌트들의 임의의 조합에 의해 수행될 수도 있다. 비디오 인코더의 컴포넌트들의 예들은 도 12에서 설명되는 비디오 인코더 (20) 에 관해 아래에서 더 상세히 설명된다. 게다가, 도 11에 예시된 방법의 역의 방법이 비디오 디코더 (30) 또는 비디오 디코더에 포함된 컴포넌트들의 임의의 조합에 의해 수행될 수도 있다는 것에 주의해야 한다. 비디오 디코더의 컴포넌트들의 예들은 도 14에 관해 아래에서 더 상세히 설명된다. 역의 프로세스에서, 비디오 디코더는 인코딩된 비트스트림으로부터 비디오 블록들 및 신택스 엘리먼트들을 수신하거나 또는 획득할 수도 있다는 것에 주의해야 한다.
도 11에 도시된 예의 방법에서 보인 바와 같이, 비디오 인코더 (20) 는 비디오 데이터의 4:2:2 샘플 포맷을 선택한다 (1102). 다른 예들에서, 비디오 인코더 (20) 는 다른 샘플 포맷들, 이를테면 위에서 설명된 4:2:0 및 4:4:4 샘플 포맷들을 선택할 수도 있다. 비디오 인코더 (20) 는, 루마 블록에 대해, 크로마 성분 (U) 에 대한 대응하는 상단 및 하단 서브블록들과, 크로마 성분 (V) 에 대한 대응하는 상단 및 하단 서브블록들을 생성한다 (1104). 대응하는 크로마 서브블록들은, 위에서 설명된 바와 같이, 최소 변환 단위 사이즈를 조건으로, 각각의 루마 서브 구획에 대해 연속하는 분할 레벨들에서 생성될 수도 있다. 비디오 인코더 (20) 는 서브블록들의 쌍 중 어느 하나의 서브블록이 적어도 하나의 0이 아닌 계수를 포함하는지의 여부를 결정하고 조인트 코딩된 블록 플래그 (CBF) 를 생성한다 (1106). 하나의 예에서, 조인트 CBF는, 서브블록들의 양쪽 모두에 0이 아닌 계수가 없으면 0의 값을 그리고 개별 크로마 성분들 (U 또는 V) 의 서브블록들 중 어느 하나에 0이 아닌 계수가 있으면 1의 값을 가질 수도 있다. 0이 아닌 계수가 없고 조인트 CBF가 0과 동일하면, 크로마 성분에 대해 추가의 시그널링이 필요하지 않고 그러면 비디오 인코더 (20) 는 다음의 루마 블록을 프로세싱하기 위해 진행할 수도 있다 (1116).
그러나, 조인트 CBF가 1과 동일하면 (1108), 비디오 인코더 (20) 는 상단 크로마 서브블록이 임의의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내기 위해 상단 서브블록에 대한 코딩된 블록 플래그를 생성한다 (1110). 비디오 인코더 (20) 는 상단 크로마 서브블록에 대한 CBF가 0과 동일한지를 결정할 수도 있다 (1112). 상단 크로마 서브블록에 대한 CBF가 0과 동일하면, 일부 예들에서 하단 서브블록은 0이 아닌 변환 계수를 포함해야만 한다고 유추될 수 있다. 이 경우, 하단 서브블록에 대한 코딩된 블록 플래그를 생성할 필요가 없고, 비디오 인코더 (20) 는 다음의 루마 블록을 프로세싱하기 위해 진행할 수 있다 (1116).
그러나, 상단 크로마 서브블록에 대한 CBF가 1과 동일하면, 상단 서브블록이 적어도 하나의 0이 아닌 변환 계수를 포함하는 것이 분명하지만, 하단 서브블록이 적어도 하나의 0이 아닌 변환 계수를 포함할 수도 있다는 것 또한 가능하다. 따라서, 이 경우, 비디오 인코더 (20) 는 하단 크로마 서브블록이 0이 아닌 변환 계수들을 포함하지 않는 경우에 0의 값을 그리고 하단 크로마 서브블록이 적어도 하나의 0이 아닌 변환 계수를 포함하는 경우에 1의 값을 갖는 하단 서브블록에 대한 CBF를 생성한다 (1114). 비디오 인코더 (20) 는 그 다음에 다음의 루마 블록을 프로세싱하기 위해 진행한다 (1116). 일부 예들에서, 다음의 루마 블록은 상이한 루마 블록 또는 루마 블록의 추가의 구획화에 의해 생성된 루마 블록일 수도 있다.
도 11을 참조하여 설명되는 프로세스는 주어진 루마 성분에 대응하는 U 및 V 크로마 성분들 양쪽 모두에 대해 동일한 방식으로 수행될 수도 있다. 덧붙여서, 비디오 디코더 (30) 는 4:2:2 샘플 포맷을 갖는 루마 및 크로마 블록들에 대한 변환 계수들을 획득하기 위해 역 또는 반대의 방식으로 비트스트림을 파싱 및 디코딩할 수도 있다.
이런 방식으로, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 크로마 서브블록들에 대한 조인트 코딩된 블록 플래그를 코딩하도록 구성된 비디오 코더들의 예들을 나타내며, 조인트 코딩된 블록 플래그는 크로마 서브블록들이 적어도 하나의 0이 아닌 변환 계수를 포함하는지의 여부를 나타낸다. 덧붙여서, 그 방법은, 크로마 서브블록들이 적어도 하나의 0이 아닌 변환 계수를 포함함을 조인트 코딩된 블록 플래그가 나타내는 경우, 크로마 서브블록들 중 제 1 하나에 대한 코딩된 블록 플래그를 코딩하는 것을 더 포함할 수도 있으며, 여기서 코딩된 블록 플래그는 크로마 서브블록들 중 제 1 하나가 적어도 하나의 0이 아닌 계수를 포함하는지의 여부를 나타낸다.
게다가, 그 방법은, 크로마 서브블록들 중 제 1 하나가 적어도 하나의 0이 아닌 계수를 포함하지 않음을 코딩된 블록 플래그가 나타내는 경우, 크로마 서브블록들 중 제 2 하나에 대한 코딩된 블록 플래그를 코딩하지 않는 단계, 및 크로마 서브블록들 중 제 1 하나가 적어도 하나의 0이 아닌 계수를 포함함을 코딩된 블록 플래그가 나타내는 경우, 크로마 서브블록들 중 제 2 하나에 대한 코딩된 블록 플래그를 코딩하는 것을 포함할 수도 있으며, 여기서 크로마 서브블록들 중 제 2 하나에 대한 코딩된 블록 플래그는 크로마 서브블록들 중 제 2 하나가 적어도 하나의 0이 아닌 변환 계수를 포함하는지의 여부를 나타낸다.
위에서 논의된 바와 같이, 코딩 동작들은 비디오 인코더에 의해 인코딩 동작들로서, 또는 비디오 디코더에 의해 디코딩 동작들로서 수행된다. 본 개시물에서 설명된 기법들을 사용하여, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 HEVC 표준에 일치하는 사이즈 및 형상의 변환들을 블록들 및 서브블록들에 적용하도록 구성될 수도 있다.
비록 HEVC의 HM에 따른 CU, PU 및 TU 프로세싱 및 배열의 논의가 예시의 목적으로 제공되지만, 이러한 논의는 본원에서 폭넓게 예시되고 설명된 바와 같은 본 개시물의 기법들을 제한하는 것으로 간주되지 않아야 한다. 변환 단위 구획화 및 코딩된 블록 플래그 시그널링 기법들, 뿐만 아니라 본 개시물에서 설명되는 다른 기법들은, HEVC 표준을 준수하도록 공식화된 비디오 코딩 프로세스들을 제한 없이 포함하는, 다양한 현존하는 또는 미래의 비디오 코딩 프로세스들 중 임의의 것에 광범위하게 적용가능할 수도 있다.
비디오 인코더 (20) 는 변환 계수들을 코딩하는 본 개시물의 기법들 중 임의의 것 또는 모두를 구현할 수도 있다. 비슷하게, 비디오 디코더 (30) 는 변환 계수들을 코딩하는 이들 기법들 중 임의의 것 또는 모두의 역 버전들을 구현할 수도 있다. 비디오 코더는, 본 개시물에서 설명된 바와 같이, 비디오 인코더 또는 비디오 디코더를 말할 수도 있다. 마찬가지로, 비디오 코딩 유닛은 비디오 인코더 또는 비디오 디코더를 말할 수도 있다. 비슷하게, 비디오 코딩은 비디오 인코딩 또는 비디오 디코딩을 말할 수도 있다.
도 12는 본 개시물에서 설명되는 기법들을 구현할 수도 있는 일 예의 비디오 인코더 (20) 를 도시하는 블록도이다. 비디오 인코더 (20) 는 비디오 슬라이스들 내의 비디오 블록들의 인트라 및 인터 코딩을 수행할 수도 있다. 인트라 코딩은 공간적 예측에 의존하여, 주어진 비디오 프레임 또는 화상 내의 비디오에서의 공간적 리던던시를 감소시키거나 또는 제거한다. 인터 코딩은 시간적 예측에 의존하여, 비디오 시퀀스의 인접한 프레임들 또는 화상들 내의 비디오에서의 시간적 리던던시를 감소시키거나 또는 제거한다. 인트라 모드 (I 모드) 는 여러 공간 기반 압축 모드들 중 임의의 것을 말할 수도 있다. 단방향 예측 (P 모드) 및 양방향 예측 (B 모드) 과 같은 인터 모드들은 여러 시간 기반 압축 모드들 중 임의의 것을 말할 수도 있다.
도 12의 예에서, 비디오 인코더 (20) 는 구획화 모듈 (35), 예측 모듈 (41), 참조 화상 메모리 (64), 합산기 (50), 변환 모듈 (52), 양자화 모듈 (54), 및 엔트로피 인코딩 모듈 (56) 을 구비한다. 예측 모듈 (41) 은 모션 추정 모듈 (42), 모션 보상 모듈 (44), 및 인트라 예측 모듈 (46) 을 구비한다. 비디오 블록 복원을 위해, 비디오 인코더 (20) 는 또한 역 양자화 모듈 (58), 역 변환 모듈 (60), 및 합산기 (62) 를 구비한다. 블록화제거 (deblocking) 필터 (도 12에서 미도시) 가 블록 경계들을 필터링하여 복원된 비디오로부터 블록현상 (blockiness) 아티팩트들을 제거하기 위해 또한 포함될 수도 있다. 원한다면, 블록화제거 필터는 통상 합산기 (62) 의 출력을 필터링할 것이다. 부가적인 루프 필터들 (인 루프 또는 포스트 루프) 이 또한 블록화제거 필터에 부가적으로 사용될 수도 있다.
도 12에 도시된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 수신하고, 구획화 모듈 (35) 은 그 데이터를 비디오 블록들로 구획한다. 구획화 모듈 (35) 은 예측 모듈 (41) 과 연계하여 작업하여 비디오 데이터를 구획하는 방법을 결정할 수도 있다. 일부 경우들에서, 구획화 모듈 및/또는 예측 모듈 (41) 은 레이트 왜곡 분석에 기초하여 비디오 데이터를 구획할 수도 있다. 수신된 비디오 데이터는 위에서 설명된 샘플 포맷들 중 임의의 것에 따라 포맷될 수도 있다. 예를 들어, 비디오 데이터는 4:2:2 샘플 포맷에 따라 포맷될 수도 있다. 구획화는 비디오 데이터를 슬라이스들, 타일들, 또는 다른 큰 단위들로의 구획하는 것, 뿐만 아니라, 예컨대, LCU들 및 CU들의 쿼드트리 구조에 따른 비디오 블록 구획화를 포함할 수도 있다. 비디오 인코더 (20) 는 일반적으로 인코딩될 비디오 슬라이스 내의 비디오 블록들을 인코딩하는 컴포넌트들을 예시한다. 슬라이스는 다수의 비디오 블록들로 (그리고 어쩌면 타일들이라고 지칭된 비디오 블록들의 세트들로) 나누어질 수도 있다. 일부 예들에서, 구획화 모듈 (35) 은 도 8a 내지 도 8d 및 도 9에 관해 위에서 설명된 기법들에 따라 비디오 데이터를 구획할 수도 있다. 예를 들어, 구획 모듈 (35) 은 비디오 데이터의 루마 성분에 대한 잔차 값들의 N 바이 N 어레이와 크로마 성분에 대한 잔차 값들의 2 개의 대응하는 N/2 바이 N/2 서브 어레이가 예측 코딩 프로세스의 결과로서 생성되도록 비디오 데이터를 구획할 수도 있다.
예측 모듈 (41), 에러 결과들 (예컨대, 코딩 레이트 및 왜곡의 레벨) 에 기초한 현재 비디오 블록에 대해, 복수의 가능한 코딩 모드들 중 하나, 이를테면 복수의 인트라 코딩 모드들 중 하나 또는 복수의 인터 코딩 모드들 중 하나를 선택할 수도 있다. 예측 모듈 (41) 은 결과적인 인트라 코딩된 또는 인터 코딩된 블록을 잔차 블록 데이터를 생성하는 합산기 (50) 및 참조 화상로서 사용하기 위해 인코딩된 블록을 복원하는 합산기 (62) 에 제공할 수도 있다.
예측 모듈 (41) 내의 인트라 예측 모듈 (46) 은 코딩될 현재 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃 블록들을 기준으로 현재 비디오 블록의 인트라 예측 코딩을 수행하여 공간적 압축을 제공할 수도 있다. 예측 모듈 (41) 내의 모션 추정 모듈 (42) 및 모션 보상 모듈 (44) 은 하나 이상의 참조 화상들에서의 하나 이상의 예측 블록들을 기준으로 현재 비디오 블록의 인터 예측 코딩을 수행하여 시간적 압축을 제공한다.
모션 추정 모듈 (42) 은 비디오 시퀀스에 대한 미리 결정된 패턴에 따라 비디오 슬라이스에 대한 인터 예측 모드를 결정하도록 구성될 수도 있다. 미리 결정된 패턴은 시퀀스에서의 비디오 슬라이스들을 P 슬라이스들 또는 일반화된 P/B (GBP) 슬라이스들로서 지정할 수도 있다. 모션 추정 모듈 (42) 과 모션 보상 모듈 (44) 은 고도로 통합될 수도 있지만 개념상의 목적들을 위해 별개로 예시된다. 모션 추정 모듈 (42) 에 의해 수행된 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어, 참조 화상 내의 예측 블록에 대한 현재 비디오 프레임 또는 화상 내의 비디오 블록의 PU의 변위 (displacement) 를 나타낼 수도 있다.
예측 블록은, 인터 코딩의 경우, 차의 절대값 합 (SAD), 차의 제곱 합 (SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는, 화소 차이의 관점에서 코딩될 비디오 블록의 PU에 밀접하게 매칭된다고 생각되는 블록일 수도 있다. 대안으로, 예측 블록은, 인트라 코딩의 경우, 하나 이상의 이웃 블록들로부터의 화소 값들에 관해 공간 예측에 기초하여 형성되는 블록일 수도 있다. 일부 예들에서, 인트라 예측을 위해, 비디오 인코더 (20) 는 참조 화상 메모리 (64) 에 저장된 참조 화상들의 부 정수 (sub-integer) 화소 위치들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 화상의 1/4 화소 위치들, 1/8 화소 위치들, 또는 다른 분수 화소 위치들의 값들을 보간할 수도 있다. 그러므로, 모션 추정 모듈 (42) 은 풀 (full) 화소 위치들 및 분수 화소 위치들에 대한 모션 검색을 수행하고 분수 화소 정밀도를 갖는 모션 벡터를 출력할 수도 있다.
모션 추정 모듈 (42) 은 PU의 위치와 참조 화상의 예측 블록의 위치를 비교함으로써 인터 코딩된 슬라이스에서의 비디오 블록의 PU에 대한 모션 벡터를 계산한다. 참조 화상은 참조 화상 메모리 (64) 에 저장된 하나 이상의 참조 화상들을 각각 식별하는 제 1 참조 화상 리스트 (리스트 0) 또는 제 2 참조 화상 리스트 (리스트 1) 로부터 선택될 수도 있다. 모션 추정 모듈 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 모듈 (56) 및 모션 보상 모듈 (44) 로 전송한다.
모션 보상 모듈 (44) 에 의해 수행되는 모션 보상은 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치하는 것 또는 생성하는 것, 어쩌면 부 화소 (sub-pixel) 정밀도로의 보간들을 수행하는 것을 수반할 수도 있다. 현재 비디오 블록의 PU에 대한 모션 벡터의 수신 시, 모션 보상 모듈 (44) 은 참조 화상 리스트들 중 하나에서 모션 벡터가 가리키는 예측 블록을 찾을 수도 있다.
비디오 인코더 (20) 는, 코딩되고 있는 현재 비디오 블록의 화소 값들로부터 예측 블록의 화소 값들을 감산하여 화소 차이 값들을 형성함으로써, 인터 또는 인트라 코딩을 위한, 잔차 비디오 블록을 형성한다. 화소 차이 값들은 블록에 대한 잔차 데이터를 형성하고, 루마 및 크로마 차이 성분들 양쪽 모두를 포함할 수도 있다. 합산기 (50) 는 이 감산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 모션 보상 모듈 (44) 은 또한 비디오 슬라이스의 비디오 블록들의 디코딩 시에 비디오 디코더 (30) 에 의한 사용을 위해 비디오 블록들 및 비디오 슬라이스에 연관된 신택스 엘리먼트들을 생성할 수도 있다.
인트라 예측 모듈 (46) 은, 위에서 설명된 바와 같이, 모션 추정 모듈 (42) 및 모션 보상 모듈 (44) 에 의해 수행된 인터 예측에 대한 대안으로서 현재 블록을 인트라 예측할 수도 있다. 특히, 인트라 예측 모듈 (46) 은 현재 블록을 인코딩하는데 사용하기 위한 인트라 예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라 예측 모듈 (46) 은 예컨대, 개별 인코딩 과정들 동안에 다양한 인트라 예측 모드들을 이용하여 현재 블록을 인코딩할 수도 있고, 인트라 예측 모듈 (46) (또는 일부 예들에서, 모드 선택 모듈 (40)) 은 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다.
예를 들어, 인트라 예측 모듈 (46) 은 다양한 테스트된 인트라 예측 모드들에 대한 레이트 왜곡 분석을 이용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중에서 최상의 레이트 왜곡 특성들을 갖는 인트라 예측 모드를 선택할 수도 있다. 레이트 왜곡 분석은 일반적으로, 인코딩된 블록 및 인코딩된 블록을 생성하기 위해 인코딩되었던 원래의 인코딩되지 않은 블록 사이의 왜곡 (또는 에러) 의 양, 뿐만 아니라 인코딩된 블록을 생성하는데 사용되는 비트 레이트 (다시 말하면, 비트들의 수) 를 결정한다. 인트라 예측 모듈 (46) 은 어떤 인트라 예측 모드가 그 블록에 대한 최선의 레이트 왜곡 값을 나타내는지를 결정하기 위해 여러 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율들을 결정할 수도 있다. 레이트 왜곡 분석은 컬러 성분들의 조합에 대해 수행될 수도 있다는 것에 주의해야 한다.
어떤 경우에서는, 블록에 대한 인트라 예측 모드를 선택한 후, 인트라 예측 모듈 (46) 은 그 블록에 대한 선택된 인트라 예측 모드를 나타내는 정보를 엔트로피 코딩 모듈 (56) 에 제공할 수도 있다. 엔트로피 코딩 모듈 (56) 은 본 개시물의 기법들에 따른 선택된 인트라 예측 모드를 나타내는 정보를 인코딩할 수도 있다. 비디오 인코더 (20) 는 송신되는 비트스트림에 구성 데이터를 포함시킬 수도 있으며, 그 구성 데이터는 복수의 인트라 예측 모드 인덱스 표들 및 복수의 수정된 인트라 예측 모드 인덱스 표들 (또한 코드워드 매핑 표들이라고 지칭됨), 다양한 블록들에 대한 콘텍스트들을 인코딩하는 정의들, 및 가장 있음직한 인트라 예측 모드의 표시들, 인트라 예측 모드 인덱스 표, 및 콘텍스트들의 각각에 대한 사용을 위한 수정된 인트라 예측 모드 인덱스 표를 포함할 수도 있다.
예측 모듈 (41) 이 인터 예측 또는 인트라 예측 중 어느 하나를 통해 현재 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 인코더 (20) 는 현재 비디오 블록으로부터 예측 블록을 감산함으로써 잔차 비디오 블록을 형성한다. 잔차 블록에서의 잔차 비디오 데이터는, 하나 이상의 TU들에 포함되고 변환 모듈 (52) 에 인가될 수도 있다. 변환 모듈 (52) 은 비디오 인코더 (20) 의 컴포넌트, 모듈 또는 기능 유닛을 말하고, 변환 및 양자화 프로세스를 위한 기본 데이터 단위인 TU와 혼동되지 않아야 한다는 것에 주의한다. 변환 모듈 (52) 은 변환, 이를테면 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환을 사용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환시킨다. 변환 모듈 (52) 은 잔차 비디오 데이터를 화소 도메인으로부터 변환 도메인, 이를테면 주파수 도메인으로 변환할 수도 있다. 변환 모듈 (52) 은 결과적인 변환 계수들을 양자화 모듈 (54) 로 전송할 수도 있다.
위에서 설명된 바와 같이, 일부 예들에서, 구획화 모듈 (35) 은, 도 8a 내지 도 8d 및 도 9에 관해 위에서 설명된 기법들에 따라 비디오 데이터를 구획할 수도 있다. 변환 모듈 (52) 은 또한 위에서 설명된 기법들에 따라 비디오 데이터를 구획할 수도 있다. 하나의 예에서, 변환 모듈 (52) 은, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N 바이 N 어레이를 수신하며, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2 바이 N 어레이를 수신하며, 크로마 성분에 대한 잔차 값들의 N/2 바이 N 어레이를 크로마 잔차 값들의 2 개의 N/2 바이 N/2 서브 어레이들로 구획하고, 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하도록 구성될 수도 있다.
본원에서 설명되는 기법들은 일반적으로 비디오 인코더 (20) 에 의해 수행될 수도 있고 비디오 인코더에 포함된 컴포넌트들은 본원에서 설명되는 기법들의 상이한 양태들을 수행할 수도 있다는 것에 주의해야 한다. 예를 들어, 본원에서 설명된 기법들에 따르면, 구획화 모듈 (35) 은 잔차 값들을 생성할 목적으로 처음에는 비디오 데이터를 구획할 수도 있고 변환 모듈 (52) 은 변환 계수들을 생성할 목적으로 비디오 데이터를 추가로 구획할 수도 있다.
양자화 모듈 (54) 은 변환 계수들을 양자화하여 비트 레이트를 더욱 감소시킨다. 양자화 프로세스는 계수들의 일부 또는 전부에 연관된 비트 깊이를 감소시킬 수도 있다. 양자화 정도는 양자화 파라미터를 조정함으로써 수정될 수도 있다. 일부 예들에서, 양자화 모듈 (54) 은 그 다음에 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안으로, 엔트로피 인코딩 모듈 (56) 이 스캔을 수행할 수도 있다.
양자화를 뒤따라, 엔트로피 인코딩 모듈 (56) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 모듈 (56) 은 콘텍스트 적응 가변 길이 코딩 (CAVLC), 콘텍스트 적응 이진 산술 코딩 (CABAC), 신택스 기반 콘텍스트 적응 이진 산술 코딩 (SBAC), 확률 간격 구획화 엔트로피 (PIPE) 코딩 또는 다른 엔트로피 인코딩 방법론 또는 기법을 수행할 수도 있다. 엔트로피 코딩 모듈 (56) 에 의한 엔트로피 코딩에 뒤이어, 인코딩된 비트스트림은 비디오 디코더 (30) 로 송신되거나 또는 비디오 디코더 (30) 에 의한 취출 또는 나중의 송신을 위해 보관될 수도 있다. 엔트로피 인코딩 모듈 (56) 은 또한 코딩되고 있는 현재 비디오 슬라이스에 대한 모션 벡터들 및 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역 양자화 모듈 (58) 과 역 변환 모듈 (60) 은 역 양자화 및 역 변환을 각각 적용하여, 참조 화상의 참조 블록으로서 나중에 사용하기 위해 화소 도메인에서 잔차 블록을 복원한다. 모션 보상 모듈 (44) 은 참조 화상 리스트들 중 하나 내의 참조 화상들 중 하나의 참조 화상의 예측 블록에 잔차 블록을 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 모듈 (44) 은 또한 하나 이상의 보간 필터들을 복원된 잔차 블록에 적용하여 모션 추정에서 사용하기 위한 부 정수 화소 값들을 계산할 수도 있다. 합산기 (62) 는 복원된 잔차 블록을 모션 보상 모듈 (44) 에 의해 생성된 모션 보상된 예측 블록에 가산하여, 참조 화상 메모리 (64) 에 저장하기 위한 참조 블록을 생성한다. 참조 블록은 모션 추정 모듈 (42) 및 모션 보상 모듈 (44) 에 의해 후속 비디오 프레임 또는 화상에서 블록을 인터 예측하기 위한 참조 블록으로서 사용될 수도 있다.
이런 방식으로, 도 12의 비디오 인코더 (20) 는, 본 개시물에서 설명된 기법들에 따라서, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N 바이 N 어레이를 수신하며, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2 바이 N 어레이를 수신하며, 크로마 성분에 대한 잔차 값들의 N/2 바이 N 어레이를 크로마 잔차 값들의 2 개의 N/2 바이 N/2 서브 어레이들로 구획하고, 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하도록 구성된 비디오 인코더의 일 예를 나타낸다. 비디오 인코더 (20) 는 루마 성분에 대응하는 각각의 크로마 성분에 대한 변환 계수들의 2 개의 N/2 바이 N/2 서브 어레이들을 생성할 수도 있다.
도 13은 잔차 값들을 구획하고 크로마 블록들에 대한 변환 계수들을 생성하는 일 예의 방법을 도시하는 흐름도이다. 비록 도 13의 프로세스가 비디오 인코더 (20) 에 관해 아래에서 설명되고 있지만, 그 프로세스는 비디오 인코더 (20), 구획화 모듈 (35), 변환 모듈 (52) 및/또는 비디오 인코더 (20) 의 다른 컴포넌트들의 임의의 조합에 의해 수행될 수도 있다.
도 13에 예시된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터의 루마 성분에 대한 잔차 값들의 N 바이 N 어레이를 획득한다 (1302). 비디오 인코더 (20) 는 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2 바이 N 어레이를 획득한다 (1304). 잔차 값들의 어레이를 획득하는 것은 비디오 인코더가 잔차 값들의 어레이를 생성하기 위해 사용하는 또는 잔차 값들의 어레이를 수신하는 프로세스를 말할 수도 있다는 것에 주의해야 한다. 크로마 성분은 위에서 설명된 U 및 V 또는 Cr 및 Cb 크로마 성분들 중 임의의 것을 포함할 수도 있다. 잔차 값들은 위에서 설명된 예측 인코딩 기법의 일부로서 비디오 인코더 (20) 에 의해 생성될 수도 있다. 크로마 성분에 대한 잔차 값들의 N/2 바이 N 어레이가 루마 성분에 대한 잔차 값들의 N 바이 N 어레이에 대응하는 경우, 어레이들은 위에서 설명된 바와 같은 비디오 데이터의 4:2:2 포맷에 따라 포맷된 비디오 데이터의 CU와 연관될 수도 있다는 것에 주의해야 한다. 비디오 인코더 (20) 는 크로마 성분에 대한 잔차 값들의 N/2 바이 N 어레이를 크로마 잔차 값들의 2 개의 N/2 바이 N/2 서브 어레이들로 구획한다 (1306). 비디오 인코더 (20) 는 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성한다 (1308). 위에서 설명된 바와 같이, 2 개의 N/2 바이 N/2 서브 어레이들의 각각에 대해 변환들을 수행하는 것은 N/2 바이 N 어레이에 대해 변환을 수행하는 것과 비교해 볼 때 블록현상의 주관적 출현 (subjective appearance) 을 감소시킬 수도 있다는 것에 주의해야 한다. 비디오 인코더 (20) 는 변환 계수들을 출력한다 (1310). 하나의 예에서, 비디오 인코더 (20) 는 변환 계수들을 비디오 디코더에 인코딩된 비트스트림의 일부로서 출력할 수도 있다. 다른 예들에서, 변환 계수들의 출력은 변환 계수를 엔트로피 인코더로 출력하는 것을 포함할 수도 있다는 것에 주의해야 한다. 엔트로피 코더는 그러면 엔트로피 인코딩된 변환 계수들을 비디오 디코더에 인코딩된 비트스트림의 일부로서 출력할 수도 있다. 비록 도 13에 예시된 방법이 단일 크로마 성분에 대한 변환 계수들을 생성하는 것을 설명하지만, 비디오 인코더 (20) 는 또한 다른 성분들에 대한 변환 계수들을 유사한 방식으로 생성할 수도 있다는 것에 주의해야 한다. 다시 말하면 비디오 인코더 (20) 는 잔차 값들의 어레이들 및 서브 어레이들을 획득하고 루마 및 크로마 성분들의 각각에 대한 어레이들에 대해 변환들을 수행할 수도 있다.
도 14는 본 개시물에서 설명되는 기법들을 이행할 수도 있는 일 예의 비디오 디코더 (30) 를 도시하는 블록도이다. 도 14의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 모듈 (80), 예측 모듈 (81), 역 양자화 모듈 (86), 역 변환 모듈 (88), 합산기 (90), 및 참조 화상 메모리 (92) 를 구비한다. 예측 모듈 (81) 은 모션 보상 모듈 (82) 과 인트라 예측 모듈 (84) 을 구비한다. 비디오 디코더 (30) 는, 일부 예들에서, 도 12로부터 비디오 인코더 (20) 에 관해 설명된 인코딩 과정 (pass) 에 일반적으로 역인 디코딩 과정을 수행할 수도 있다.
디코딩 프로세스 동안, 비디오 디코더 (30) 는 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 비디오 인코더 (20) 로부터 수신한다. 비디오 디코더 (30) 의 엔트로피 디코딩 모듈 (80) 은 그 비트스트림을 엔트로피 디코딩하여 양자화된 계수들, 모션 벡터들, 및 다른 신택스 엘리먼트들을 생성한다. 엔트로피 디코딩 모듈 (80) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 모듈 (81) 에 포워딩한다. 비디오 디코더 (30) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다.
비디오 슬라이스가 인트라 코딩된 (I) 슬라이스로서 코딩되는 경우, 예측 모듈 (81) 의 인트라 예측 모듈 (84) 은 현재 비디오 슬라이스의 비디오 블록을 위한 예측 데이터를 현재 프레임 또는 화상의 이전에 디코딩된 블록들로부터의 데이터 및 시그널링된 인트라 예측 모드에 기초하여 생성할 수도 있다. 비디오 프레임이 인터-코딩식 (즉, B, P 또는 GPB) 슬라이스로서 코딩되는 경우, 예측 모듈 (81) 의 모션 보상 모듈 (82) 은 엔트로피 디코딩 모듈 (80) 로부터 수신된 다른 신택스 엘리먼트들 및 모션 벡터들에 기초하여, 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 그 예측 블록들은 참조 화상 리스트들 중 하나 내의 참조 화상들 중 하나로부터 생성될 수도 있다. 비디오 디코더 (30) 는 참조 화상 메모리 (92) 에 저장된 참조 화상들에 기초하여 디폴트 구성 기법들을 이용하여, 참조 프레임 리스트들, 리스트 0 및 리스트 1을 구성할 수도 있다.
모션 보상 모듈 (82) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 그 예측 정보를 이용하여 디코딩되고 있는 현재 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 모션 보상 모듈 (82) 은 수신된 신택스 엘리먼트들의 일부를 이용하여, 비디오 슬라이스의 비디오 블록들을 코딩하는데 사용된 예측 모드 (예컨대, 인트라 또는 인터 예측), 인터 예측 슬라이스 유형 (예컨대, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 그 슬라이스에 대한 참조 화상 리스트들 중 하나 이상에 대한 구축 정보, 슬라이스의 각각의 인터 인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터 코딩된 비디오 블록에 대한 인터 예측 스테이터스, 및 현재 비디오 슬라이스 내의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.
모션 보상 모듈 (82) 은 또한 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 모듈 (82) 은 비디오 블록들의 인코딩 동안에 비디오 인코더 (20) 에 의해 사용된 것과 같은 보간 필터들을 사용하여 참조 블록들의 부 정수 화소들에 대한 보간된 값들을 계산할 수도 있다. 이 경우, 모션 보상 모듈 (82) 은 비디오 인코더 (20) 에 의해 사용된 보간 필터들을 수신된 신택스 엘리먼트들로부터 결정하고 그 보간 필터들을 사용하여 예측 블록들을 생성할 수도 있다.
역 양자화 모듈 (86) 은 비트스트림에서 제공되고 엔트로피 디코딩 모듈 (80) 에 의해 디코딩된 양자화된 변환 계수들을 역 양자화, 즉, 탈양자화 (dequantize) 한다. 역 양자화 프로세스는 양자화 정도와, 마찬가지로 적용되어야 할 역 양자화의 정도를 결정하기 위해, 비디오 슬라이스 내의 각각의 비디오 블록에 대해 비디오 인코더 (20) 에 의해 계산된 양자화 파라미터의 사용을 포함할 수도 있다.
역 변환 모듈 (88) 은 변환 계수들을 수신하고 잔차 블록들을 화소 도메인에서 생성하기 위하여 역 변환, 예컨대, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역 변환 프로세스를 변환 계수들에 적용한다. 일부 예들에서, 역 변환 모듈은 도 8a와 도 8b 및 도 9에 관해 위에서 설명된 변환 단위 구획화 기법들에 기초하여 비디오 인코더에 의해 생성되었던 변환 계수들을 수신할 수도 있다. 하나의 예에서, 역 변환 모듈 (88) 은 비디오 데이터의 루마 성분에 대한 변환 계수들의 N 바이 N 어레이를 수신하며, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2 바이 N/2 서브 어레이들을 수신하며, 잔차 샘플 값들의 복수의 N/2 바이 N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2 바이 N/2 서브 어레이들의 각각에 대해 역 변환을 수행하고 크로마 성분에 대한 잔차 샘플 값들의 N/2 바이 N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2 바이 N/2 서브 어레이들의 각각을 조합하도록 구성될 수도 있다.
모션 보상 모듈 (82) 또는 인트라 예측 모듈 (84) 이 현재 비디오 블록에 대한 예측 블록을 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 생성한 후, 비디오 디코더 (30) 는 역 변환 모듈 (88) 로부터의 잔차 블록들을 모션 보상 모듈 (82) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (90) 는 이 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다.
원한다면, 블록화제거 필터가 또한 블록현상 아티팩트들을 제거하기 위하여 디코딩된 블록들을 필터링하는데 적용될 수도 있다. 다른 루프 필터들이 (코딩 루프 내 또는 코딩 루프 후 중 어느 하나에서) 또한 화소 전환들을 부드럽게 하기 위해, 또는 그렇지 않으면 비디오 품질을 개선하기 위해 사용될 수도 있다. 주어진 프레임 또는 화상에서의 디코딩된 비디오 블록들은 그러면 참조 화상 메모리 (92) 에 저장되며, 그 참조 화상 메모리는 후속 모션 보상을 위해 사용되는 참조 화상들을 저장한다. 참조 화상 메모리 (92) 는 또한 디스플레이 디바이스, 이를테면 도 1의 디스플레이 디바이스 (32) 상에서의 나중의 프레젠테이션을 위해 디코딩된 비디오를 저장한다.
도 14의 비디오 인코더 (30) 는 본 개시물에서 설명된 기법들에 따라서, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N 바이 N 어레이를 수신하며, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2 바이 N/2 서브 어레이들을 수신하며, 잔차 샘플 값들의 복수의 N/2 바이 N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2 바이 N/2 서브 어레이들의 각각에 대해 역 변환을 수행하고 크로마 성분에 대한 잔차 샘플 값들의 N/2 바이 N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2 바이 N/2 서브 어레이들의 각각을 조합하도록 구성된 비디오 디코더의 일 예를 나타낸다.
도 15는 변환 계수들로부터 크로마 블록들에 대한 잔차 값들을 생성하는 일 예의 방법을 도시하는 흐름도이다. 비록 도 15에서의 프로세스가 비디오 디코더 (30) 에 관해 아래에서 설명되지만, 그 프로세스는 비디오 디코더 (30), 엔트로피 디코딩 모듈 (80), 역 양자화 모듈 (86), 역 변환 모듈 (88) 및/또는 비디오 디코더 (30) 의 다른 컴포넌트들 중 임의의 조합에 의해 수행될 수도 있다.
도 15에 예시된 바와 같이, 비디오 디코더 (30) 는 비디오 데이터의 루마 성분에 대한 변환 계수들의 N 바이 N 어레이를 획득한다 (1502). 비디오 디코더 (30) 는 비디오 데이터의 크로마 성분에 대한 변환 계수들의 대응하는 N/2 바이 N/2 어레이를 획득한다 (1504). 크로마 성분은 본원에서 설명된 U 및 V 또는 Cr 및 Cb 크로마 성분들 중 임의의 것을 포함할 수도 있다. 변환 계수들은 본원에서 설명되는 예측 코딩 기법의 일부로서 비디오 인코더에 의해 생성될 수도 있다. 크로마 성분에 대한 변환 계수들의 N/2 바이 N/2 서브 어레이가 루마 성분에 대한 계수들의 N 바이 N 어레이에 대응하는 경우, 그 어레이들은 위에서 설명된 바와 같은 비디오 데이터의 4:2:2 포맷에 따라 포맷된 비디오 데이터의 CU들과 연관될 수도 있다는 것에 주의해야 한다. 비디오 디코더 (30) 는 크로마 성분에 대한 변환 계수들의 N/2 바이 N/2 서브 어레이들의 각각에 대해 역 변환을 수행한다 (1506). 비디오 디코더 (30) 는 크로마 변환 계수들의 서브 어레이들의 각각으로부터의 결과적인 잔차 값들을 조합하는 것에 의해 크로마 성분에 대한 잔차 값들의 어레이를 생성한다 (1508). 비디오 디코더 (30) 는 잔차들 값들을 출력한다 (1510). 하나의 예에서, 비디오 디코더 (30) 는 잔차 값들을 비디오 복원 프로세스의 일부로서 출력할 수도 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 또는 그것을 통해 송신될 수도 있고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은, 데이터 저장 매체들과 같은 유형의 (tangible) 매체에 대응하는 컴퓨터 판독가능 저장 매체, 또는 예컨대 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이런 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적 (non-transitory) 인 유형의 (tangible) 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 반송파와 같은 통신 매체에 해당할 수도 있다. 데이터 저장 매체들은 본 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.
비제한적인 예로, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 명령들이 웹사이트, 서버, 또는 다른 원격 자원으로부터 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 회선 (DSL), 또는 무선 기술들 이를테면 적외선, 라디오, 및/또는 마이크로파를 이용하여 송신된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 커넥션들, 반송파들, 신호들, 또는 다른 일시적인 매체들을 포함하지 않지만, 대신 비일시적 (non-transient), 유형의 저장 매체들을 지향하고 있음이 이해되어야 한다. 디스크 (disk 및 disc) 는 본원에서 사용되는 바와 같이, 콤팩트 디스크 (compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크를 포함하는데, 디스크들 (disks) 은 보통 데이터를 자기적으로 재생하지만, 디스크들 (discs) 은 레이저들로써 광적으로 데이터를 재생한다. 상기한 것들의 조합들은 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 이를테면 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 주문형 집적회로들 (ASICs), 필드 프로그램가능 로직 어레이들 (FPGAs), 또는 다른 동등한 집적 또는 개별 로직 회로에 의해 실행될 수도 있다. 따라서, 본원에서 사용되는 바와 같은 용어 "프로세서"는 앞서의 구조 또는 본원에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 말할 수도 있다. 덧붙여서, 일부 양태들에서, 본원에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성되는, 또는 결합형 코덱 (codec) 으로 통합되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 본 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들 내에 완전히 구현될 수 있다.
본 개시내용의 기법들은 무선 핸드셋, 집적회로 (IC) 또는 IC들의 세트 (예컨대, 칩 셋) 을 포함하여, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시물에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하지는 않는다. 대신, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는, 상호운용적 하드웨어 유닛들의 컬렉션에 의해 제공될 수도 있다.
다양한 예들이 설명되어 있다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.
Claims (28)
- 비디오 데이터를 디코딩하는 방법으로서,
비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 서브 어레이들을 획득하는 단계;
상기 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 보다 작은 서브 어레이들을, 상기 복수의 보다 작은 서브 어레이들의 각각이 상기 루마 성분의 상기 서브 어레이들의 각각과 동일한 애스팩트 비 (aspect rate) 를 가지고, 상기 복수의 보다 작은 서브 어레이들의 각각이 상기 루마 성분에 대한 상기 복수의 서브 어레이들의 각각의 차원 수보다 작은 차원 수를 가지도록, 획득하는 단계;
상기 루마 성분에 대한 변환 계수들의 상기 복수의 서브 어레이들의 각각에 역변환을 실행하여, 상기 루마 성분에 대한 복수의 잔차 샘플 값들을 생성하는 단계;
상기 크로마 성분에 대한 변환 계수들의 상기 복수의 보다 작은 서브 어레이들의 각각에 역변환을 실행하여, 상기 크로마 성분에 대한 복수의 잔차 샘플 값들을 생성하는 단계;
상기 루마 성분에 대한 상기 복수의 잔차 샘플 값들을 결합하여, 상기 비디오 데이터의 상기 루마 성분에 대한 잔차 샘플 값들의 N×N 어레이를 획득하는 단계; 및
상기 크로마 성분에 대한 상기 복수의 잔차 샘플 값들을 결합하여, 상기 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법. - 제 1 항에 있어서,
상기 루마 성분에 대한 변환 계수들의 상기 복수의 서브 어레이들에 포함된 서브 어레이들의 각각은 상기 루마 성분에 대한 변환 계수들의 N/2×N/2 서브 어레이들을 각각 포함하고,
상기 크로마 성분에 대한 변환 계수들의 상기 보다 작은 서브 어레이들의 각각은 상기 크로마 성분에 대한 변환 계수들의 복수의 N/4×N/4 서브 어레이들을 각각 포함하는, 비디오 데이터를 디코딩하는 방법. - 제 2 항에 있어서,
N 은 16 이고,
비디오 데이터의 상기 루마 성분에 대한 변환 계수들의 N/2×N/2 서브 어레이들은 4 개의 서브 어레이들을 포함하고 상기 크로마 성분의 변환 계수들의 상기 복수의 N/4×N/4 서브 어레이들은 8 개의 서브 어레이들을 포함하는, 비디오 데이터를 디코딩하는 방법. - 제 1 항에 있어서,
상기 루마 성분에 대한 변환 계수들의 상기 복수의 서브 어레이들을 획득하는 단계는 상기 루마 성분에 대한 변환 계수들의 4 개의 N×N/4 서브 어레이들을 획득하는 단계를 포함하고,
상기 크로마 성분에 대한 변환 계수들의 상기 복수의 보다 작은 서브 어레이들을 획득하는 단계는 상기 크로마 성분에 대한 변환 계수들의 8 개의 대응하는 N/2×N/8 서브 어레이들을 획득하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법. - 제 4 항에 있어서,
N 은 32 인, 비디오 데이터를 디코딩하는 방법. - 비디오 디코딩 디바이스로서,
비디오 데이터를 저장하도록 구성된 메모리; 및
하나 이상의 프로세서들을 포함하고,
상기 하나 이상의 프로세서들은,
상기 비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 서브 어레이들을 획득하고;
상기 비디오 데이터의 크로마 성분에 대한 복수의 보다 작은 서브 어레이들을 획득하여, 상기 복수의 보다 작은 서브 어레이들의 각각이 상기 루마 성분의 상기 서브 어레이들의 각각과 동일한 애스팩트 비 (aspect rate) 를 가지고, 상기 복수의 보다 작은 서브 어레이의 각각이 상기 루마 성분에 대한 상기 복수의 서브 어레이의 각각의 차원 수보다 작은 차원 수를 가지도록 하고;
상기 루마 성분에 대한 변환 계수들의 상기 복수의 서브 어레이들의 각각에 역변환을 실행하여, 상기 루마 성분에 대한 복수의 잔차 샘플 값들을 생성하고;
상기 크로마 성분에 대한 변환 계수들의 상기 복수의 보다 작은 서브 어레이들의 각각에 역변환을 실행하여, 상기 크로마 성분에 대한 복수의 잔차 샘플 값들을 생성하고;
상기 루마 성분에 대한 상기 복수의 잔차 샘플 값들을 결합하여, 상기 비디오 데이터의 상기 루마 성분에 대한 잔차 샘플 값들의 N×N 어레이를 획득하고; 그리고,
상기 크로마 성분에 대한 상기 복수의 잔차 샘플 값들을 결합하여, 상기 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하도록 구성되는, 비디오 디코딩 디바이스. - 제 6 항에 있어서,
상기 루마 성분에 대한 변환 계수들의 상기 복수의 서브 어레이들에 포함된 각각의 서브 어레이는 상기 루마 성분에 대한 변환 계수들의 N/2×N/2 서브 어레이들 각각을 포함하고,
상기 크로마 성분에 대한 변환 계수들의 상기 보다 작은 서브 어레이들 각각은 상기 크로마 성분에 대한 변환 계수들의 복수의 N/4×N/4 서브 어레이들 각각을 포함하는, 비디오 디코딩 디바이스. - 제 7 항에 있어서,
N 은 16 이고,
비디오 데이터의 상기 루마 성분에 대한 변환 계수들의 N/2×N/2 서브 어레이들은 4 개의 서브 어레이들을 포함하고 상기 크로마 성분의 변환 계수들의 상기 복수의 N/4×N/4 서브 어레이들은 8 개의 서브 어레이들을 포함하는, 비디오 디코딩 디바이스. - 제 6 항에 있어서,
상기 루마 성분에 대한 변환 계수들의 상기 복수의 서브 어레이들을 획득하기 위해, 상기 하나 이상의 프로세서들은 상기 루마 성분에 대한 변환 계수들의 4 개의 N×N/4 서브 어레이들을 획득하도록 구성되고,
상기 크로마 성분에 대한 변환 계수들의 상기 복수의 보다 작은 서브 어레이들을 획득하기 위해, 상기 하나 이상의 프로세서들은 상기 크로마 성분에 대한 변환 계수들의 8 개의 대응하는 N/2×N/8 서브 어레이들을 획득하도록 구성되는, 비디오 디코딩 디바이스. - 제 9 항에 있어서,
N 은 32 인, 비디오 디코딩 디바이스. - 비디오 데이터를 인코딩하는 방법으로서,
비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하는 단계;
비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하는 단계;
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 단계;
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 복수의 서브 어레이들로 구획하는 단계;
상기 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들 각각을 상기 루마 성분에 대해 대응 서브 어레이와 동일한 애스팩트 비를 가지도록 복수의 보다 작은 서브 어레이들로 더 구획하는 단계;
상기 크로마 성분에 대한 변환 계수들을 생성하기 위해 상기 크로마 잔차 값들의 상기 복수의 보다 작은 서브 어레이들 각각에 대해 변환을 수행하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법. - 제 11 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 단계 및 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법. - 제 12 항에 있어서,
N 은 16 이고,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 단계는, 루마 잔차 값들의 4 개의 8×8 서브 어레이들을 초래하고, 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 단계는 크로마 잔차 값들의 8 개의 4×4 서브 어레이들을 초래하는, 비디오 데이터를 인코딩하는 방법. - 제 12 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 단계는, 4 대 1의 애스펙트 비들을 갖는 루마 잔차 값들의 4 개의 서브 어레이들을 초래하고, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 상기 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 단계는, 4 대 1의 애스펙트 비들을 갖는 크로마 잔차 값들의 8 개의 서브 어레이들을 초래하는, 비디오 데이터를 인코딩하는 방법. - 제 11 항에 있어서,
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 단계는, 상기 2 개의 N/2×N/2 서브 어레이들이 최소 변환 단위 사이즈 미만이면, 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하지 않도록 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법. - 하나 이상의 프로세서들을 포함하는 비디오 인코딩 디바이스로서,
상기 하나 이상의 프로세서들은,
비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하고;
비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하고;
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하고;
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 복수의 서브 어레이들로 구획하고;
상기 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들 각각을 상기 루마 성분에 대해 대응하는 서브 어레이와 동일한 애스팩트 비를 가지도록 복수의 보다 작은 서브 어레이들로 더 구획하고;
상기 크로마 성분에 대한 변환 계수들을 생성하기 위해 상기 크로마 잔차 값들의 상기 복수의 보다 작은 서브 어레이들 각각에 대해 변환을 수행하도록 구성되는, 비디오 인코딩 디바이스. - 제 16 항에 있어서,
상기 하나 이상의 프로세서들은, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하고 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하도록 추가로 구성되는, 비디오 인코딩 디바이스. - 제 17 항에 있어서,
N 은 16 이고,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 것은, 루마 잔차 값들의 4 개의 8×8 서브 어레이들을 초래하고, 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 것은 크로마 잔차 값들의 8 개의 4×4 서브 어레이들을 초래하는, 비디오 인코딩 디바이스. - 제 17 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 것은, 4 대 1의 애스펙트 비들을 갖는 루마 잔차 값들의 4 개의 서브 어레이들 초래하고, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 상기 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 것은, 4 대 1의 애스펙트 비들을 갖는 크로마 잔차 값들의 8 개의 서브 어레이들을 초래하는, 비디오 인코딩 디바이스. - 제 16 항에 있어서,
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 것은, 상기 2 개의 N/2×N/2 서브 어레이들이 최소 변환 단위 사이즈 미만이면, 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하지 않도록 결정하는 것을 포함하는, 비디오 인코딩 디바이스. - 명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 저장 매체로서,
상기 명령들은, 실행되는 경우, 하나 이상의 프로세서들로 하여금,
비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하게 하고;
비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하게 하고;
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하게 하고;
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 복수의 서브 어레이들로 구획하고;
상기 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들 각각을 상기 루마 성분에 대한 대응 서브 어레이와 동일한 애스팩트 비를 가지도록 복수의 보다 작은 서브 어레이들로 더 구획하고;
상기 크로마 성분에 대한 변환 계수들을 생성하기 위해 상기 크로마 잔차 값들의 상기 복수의 보다 작은 서브 어레이들 각각에 대해 변환을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 21 항에 있어서,
상기 명령들은 추가로, 하나 이상의 프로세서들로 하여금, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하게 하고 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하게 하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 22 항에 있어서,
N 은 16 이고,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 것은, 루마 잔차 값들의 4 개의 8×8 서브 어레이들을 초래하고, 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 것은 크로마 잔차 값들의 8 개의 4×4 서브 어레이들을 초래하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 22 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 것은, 4 대 1의 애스펙트 비들을 갖는 루마 잔차 값들의 4 개의 서브 어레이들을 초래하고, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 상기 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 것은, 4 대 1의 애스펙트 비들을 갖는 크로마 잔차 값들의 8 개의 서브 어레이들을 초래하는, 비일시적 컴퓨터 판독가능 저장 매체. - 제 21 항에 있어서,
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 것은, 상기 2 개의 N/2×N/2 서브 어레이들이 최소 변환 단위 사이즈 미만이면, 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하지 않도록 결정하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체. - 삭제
- 삭제
- 삭제
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161554273P | 2011-11-01 | 2011-11-01 | |
US61/554,273 | 2011-11-01 | ||
US13/665,559 US9807401B2 (en) | 2011-11-01 | 2012-10-31 | Transform unit partitioning for chroma components in video coding |
US13/665,559 | 2012-10-31 | ||
PCT/US2012/063055 WO2013067174A1 (en) | 2011-11-01 | 2012-11-01 | Transform unit partitioning for chroma components in video coding |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167005091A Division KR20160029144A (ko) | 2011-11-01 | 2012-11-01 | 비디오 코딩에서 크로마 성분들에 대한 변환 단위 구획화 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140089403A KR20140089403A (ko) | 2014-07-14 |
KR101667467B1 true KR101667467B1 (ko) | 2016-10-28 |
Family
ID=48172433
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147014553A KR101667467B1 (ko) | 2011-11-01 | 2012-11-01 | 비디오 코딩에서 크로마 성분들에 대한 변환 단위 구획화 |
KR1020167005091A KR20160029144A (ko) | 2011-11-01 | 2012-11-01 | 비디오 코딩에서 크로마 성분들에 대한 변환 단위 구획화 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167005091A KR20160029144A (ko) | 2011-11-01 | 2012-11-01 | 비디오 코딩에서 크로마 성분들에 대한 변환 단위 구획화 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9807401B2 (ko) |
EP (1) | EP2774364B1 (ko) |
JP (1) | JP5932050B2 (ko) |
KR (2) | KR101667467B1 (ko) |
CN (1) | CN103959785B (ko) |
TW (1) | TW201342920A (ko) |
WO (1) | WO2013067174A1 (ko) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9392301B2 (en) * | 2011-07-01 | 2016-07-12 | Qualcomm Incorporated | Context adaptive entropy coding for non-square blocks in video coding |
EP2737707A4 (en) * | 2012-01-13 | 2016-04-06 | Mediatek Inc | METHOD AND APPARATUS FOR UNIFYING COEFFICIENT SCANNING OF 8X8 TRANSFORMATION UNITS OF HEVC CODING |
GB2501535A (en) | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
US9344742B2 (en) * | 2012-08-10 | 2016-05-17 | Google Inc. | Transform-domain intra prediction |
JP6341426B2 (ja) * | 2012-09-10 | 2018-06-13 | サン パテント トラスト | 画像復号化方法および画像復号化装置 |
AU2012232992A1 (en) * | 2012-09-28 | 2014-04-17 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding the transform units of a coding unit |
US9332257B2 (en) | 2012-10-01 | 2016-05-03 | Qualcomm Incorporated | Coded black flag coding for 4:2:2 sample format in video coding |
US9743091B2 (en) * | 2012-12-17 | 2017-08-22 | Lg Electronics Inc. | Method for encoding/decoding image, and device using same |
AU2013200051B2 (en) * | 2013-01-04 | 2016-02-11 | Canon Kabushiki Kaisha | Method, apparatus and system for de-blocking video data |
CN104104958B (zh) * | 2013-04-08 | 2017-08-25 | 联发科技(新加坡)私人有限公司 | 图像解码方法及其图像解码装置 |
CN105264904A (zh) * | 2013-06-19 | 2016-01-20 | Lg电子株式会社 | 信号发送和接收装置及其控制方法 |
MX360669B (es) * | 2014-03-06 | 2018-11-13 | Samsung Electronics Co Ltd | Método de decodificación de imágenes y dispositivo para el mismo, y método de codificación de imágenes y dispositivo para el mismo. |
WO2016037363A1 (en) * | 2014-09-12 | 2016-03-17 | Mediatek Singapore Pte. Ltd. | Methods of residue transform tree representation |
WO2016074147A1 (en) * | 2014-11-11 | 2016-05-19 | Mediatek Singapore Pte. Ltd. | Separated coding tree for luma and chroma |
US20160261869A1 (en) * | 2015-03-04 | 2016-09-08 | Ati Technologies Ulc | Content-adaptive b-picture pattern video encoding |
US10397585B2 (en) * | 2015-06-08 | 2019-08-27 | Qualcomm Incorporated | Processing high dynamic range and wide color gamut video data for video coding |
EP3357227A1 (en) * | 2015-10-02 | 2018-08-08 | VID SCALE, Inc. | Color correction with a lookup table |
US10362310B2 (en) * | 2015-10-21 | 2019-07-23 | Qualcomm Incorporated | Entropy coding techniques for display stream compression (DSC) of non-4:4:4 chroma sub-sampling |
US10212444B2 (en) | 2016-01-15 | 2019-02-19 | Qualcomm Incorporated | Multi-type-tree framework for video coding |
EP4266684A3 (en) * | 2016-02-11 | 2024-01-24 | InterDigital VC Holdings, Inc. | Method and device for encoding/decoding an image unit comprising image data represented by a luminance channel and at least one chrominance channel |
CN114339227B (zh) * | 2016-05-04 | 2024-04-12 | 夏普株式会社 | 用于对变换数据进行编码的系统和方法 |
CN106713921B (zh) * | 2016-11-29 | 2019-07-23 | 西安万像电子科技有限公司 | 文字块的压缩方法和装置以及图像压缩方法和装置 |
US10778978B2 (en) * | 2017-08-21 | 2020-09-15 | Qualcomm Incorporated | System and method of cross-component dynamic range adjustment (CC-DRA) in video coding |
CN118042132A (zh) * | 2017-11-16 | 2024-05-14 | 松下电器(美国)知识产权公司 | 图像编码装置、编码方法、图像解码装置、解码方法和非暂时性存储介质 |
CN118283259A (zh) * | 2018-05-10 | 2024-07-02 | 三星电子株式会社 | 用于图像编码的方法和装置及用于图像解码的方法和装置 |
WO2020012023A1 (en) * | 2018-07-13 | 2020-01-16 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Partitioned intra coding concept |
JP2021532643A (ja) * | 2018-07-17 | 2021-11-25 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | ビデオコーディング用の制約付きコーディングツリー |
AU2018217336A1 (en) * | 2018-08-17 | 2020-03-05 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a transformed block of video samples |
KR102631517B1 (ko) * | 2018-08-28 | 2024-01-30 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 픽처 분할 방법 및 장치 |
AU2018233042B2 (en) * | 2018-09-21 | 2024-06-13 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a tree of blocks of video samples |
US11178397B2 (en) * | 2018-10-09 | 2021-11-16 | Mediatek Inc. | Method and apparatus of encoding or decoding using reference samples determined by predefined criteria |
CN112840654B (zh) | 2018-10-12 | 2024-04-16 | 韦勒斯标准与技术协会公司 | 使用多假设预测的视频信号处理方法和装置 |
WO2020114291A1 (en) | 2018-12-04 | 2020-06-11 | Huawei Technologies Co., Ltd. | Video encoder, video decoder, and corresponding method |
EP3890321A4 (en) * | 2018-12-15 | 2022-05-11 | Huawei Technologies Co., Ltd. | IMAGE RECONSTRUCTION METHOD AND APPARATUS |
JP7317973B2 (ja) | 2019-01-08 | 2023-07-31 | 華為技術有限公司 | 画像予測方法、機器、及びシステム、装置、及び記憶媒体 |
KR102464910B1 (ko) | 2019-02-28 | 2022-11-09 | 삼성전자주식회사 | 크로마 성분을 예측하는 비디오 부호화 및 복호화 방법, 및 크로마 성분을 예측하는 비디오 부호화 및 복호화 장치 |
CA3121220A1 (en) * | 2019-03-01 | 2020-09-10 | Huawei Technologies Co., Ltd. | Method of signalling of coded block flags |
US12114000B2 (en) * | 2019-03-08 | 2024-10-08 | Qualcomm Incorporated | Combined residual coding in video coding |
CN113711593B (zh) * | 2019-03-12 | 2024-08-23 | 弗劳恩霍夫应用研究促进协会 | 实现高效率的基于分区的帧内编码构思 |
US11128876B2 (en) * | 2019-03-12 | 2021-09-21 | Qualcomm Incorporated | Joint coefficient coding of transform skip and BDPCM mode for 4:4:4 color formats |
CN113906749B (zh) * | 2019-04-30 | 2023-05-23 | 北京达佳互联信息技术有限公司 | 色度残差联合编码方法和装置 |
EP4447450A1 (en) * | 2019-07-19 | 2024-10-16 | Wilus Institute of Standards and Technology Inc. | Method and device for processing video signal |
MX2021012983A (es) * | 2019-07-24 | 2021-12-10 | Huawei Tech Co Ltd | Un codificador, un decodificador y metodos correspondientes relacionados con modo de intra-prediccion. |
US12081735B2 (en) * | 2019-07-25 | 2024-09-03 | Wilus Institute Of Standards And Technology Inc. | Video signal processing method and device |
KR20220058534A (ko) | 2019-09-14 | 2022-05-09 | 바이트댄스 아이엔씨 | 크로마 디블로킹 필터링을 위한 양자화 파라미터 |
EP4029264A4 (en) * | 2019-10-14 | 2022-11-23 | ByteDance Inc. | JOINT CODING OF CHROMINANCE RESIDUE AND FILTERING IN VIDEO PROCESSING |
CN116260981B (zh) * | 2019-12-05 | 2024-01-30 | 阿里巴巴(中国)有限公司 | 用于色度采样的方法和装置 |
CN114846807A (zh) * | 2019-12-30 | 2022-08-02 | 北京达佳互联信息技术有限公司 | 色度残差的编解码 |
US11785219B2 (en) | 2020-04-13 | 2023-10-10 | Qualcomm Incorporated | Coefficient coding for support of different color formats in video coding |
US20220150518A1 (en) * | 2020-11-11 | 2022-05-12 | Tencent America LLC | Method and apparatus for video coding |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011077761A (ja) * | 2009-09-30 | 2011-04-14 | Sony Corp | 画像処理装置および方法 |
WO2011068527A1 (en) | 2009-12-04 | 2011-06-09 | Thomson Licensing | Methods and apparatus for improved chroma transforms for inter frames in video encoding and decoding |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553153B1 (en) * | 1998-12-03 | 2003-04-22 | Chips And Technologies, Llc. | Method and apparatus for reducing video data |
JP2002142192A (ja) * | 2000-11-01 | 2002-05-17 | Sony Corp | 信号処理装置および方法、ならびに、記録装置および方法 |
US7295609B2 (en) | 2001-11-30 | 2007-11-13 | Sony Corporation | Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information |
US7317839B2 (en) | 2003-09-07 | 2008-01-08 | Microsoft Corporation | Chroma motion vector derivation for interlaced forward-predicted fields |
US7916782B2 (en) * | 2004-08-18 | 2011-03-29 | Panasonic Corporation | Picture coding method, picture decoding method, picture coding apparatus, picture decoding apparatus, and program thereof |
GB0522036D0 (en) | 2005-10-28 | 2005-12-07 | Univ Hong Kong Science & Techn | Effective rate control for video encoding and transcoding |
KR100873636B1 (ko) * | 2005-11-14 | 2008-12-12 | 삼성전자주식회사 | 단일 부호화 모드를 이용하는 영상 부호화/복호화 방법 및장치 |
JP5649105B2 (ja) * | 2007-01-11 | 2015-01-07 | トムソン ライセンシングThomson Licensing | 符号化のための装置及び方法並びに復号化のための装置及び方法 |
JP5026092B2 (ja) * | 2007-01-12 | 2012-09-12 | 三菱電機株式会社 | 動画像復号装置および動画像復号方法 |
US8345968B2 (en) * | 2007-06-28 | 2013-01-01 | Mitsubishi Electric Corporation | Image encoding device, image decoding device, image encoding method and image decoding method |
KR101359490B1 (ko) * | 2008-12-23 | 2014-02-10 | 에스케이 텔레콤주식회사 | 컬러 영상 부호화/복호화 방법 및 장치 |
EP2457376A4 (en) | 2009-07-20 | 2013-01-30 | Samsung Electronics Co Ltd | METHOD AND APPARATUS FOR ENCODING AND DECODING COLOR CHANNELS IN A HIERARCHICAL VIDEO ENCODING AND DECODING SYSTEM |
KR102166520B1 (ko) * | 2010-04-13 | 2020-10-16 | 지이 비디오 컴프레션, 엘엘씨 | 샘플 영역 병합 |
WO2011129673A2 (ko) * | 2010-04-16 | 2011-10-20 | 에스케이텔레콤 주식회사 | 영상 부호화/복호화 장치 및 방법 |
KR101791242B1 (ko) * | 2010-04-16 | 2017-10-30 | 에스케이텔레콤 주식회사 | 영상 부호화/복호화 장치 및 방법 |
US9094658B2 (en) * | 2010-05-10 | 2015-07-28 | Mediatek Inc. | Method and apparatus of adaptive loop filtering |
US8548057B2 (en) * | 2011-01-25 | 2013-10-01 | Microsoft Corporation | Video coding redundancy reduction |
US9848197B2 (en) | 2011-03-10 | 2017-12-19 | Qualcomm Incorporated | Transforms in video coding |
US8804816B2 (en) * | 2011-08-30 | 2014-08-12 | Microsoft Corporation | Video encoding enhancements |
-
2012
- 2012-10-31 US US13/665,559 patent/US9807401B2/en not_active Expired - Fee Related
- 2012-11-01 EP EP12787291.9A patent/EP2774364B1/en active Active
- 2012-11-01 KR KR1020147014553A patent/KR101667467B1/ko active IP Right Grant
- 2012-11-01 KR KR1020167005091A patent/KR20160029144A/ko not_active Application Discontinuation
- 2012-11-01 WO PCT/US2012/063055 patent/WO2013067174A1/en active Application Filing
- 2012-11-01 JP JP2014540080A patent/JP5932050B2/ja not_active Expired - Fee Related
- 2012-11-01 TW TW101140614A patent/TW201342920A/zh unknown
- 2012-11-01 CN CN201280053742.XA patent/CN103959785B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011077761A (ja) * | 2009-09-30 | 2011-04-14 | Sony Corp | 画像処理装置および方法 |
WO2011068527A1 (en) | 2009-12-04 | 2011-06-09 | Thomson Licensing | Methods and apparatus for improved chroma transforms for inter frames in video encoding and decoding |
Non-Patent Citations (2)
Title |
---|
L. Guo, et al. Limiting Chroma Transform Depth in Residue Quad Tree(RQT). JCT-VC of ITU-T and ISO/IEC. JCTVC-E377 Ver.1, Mar. 11, 2011, pp.1-3 |
Y. H. Tan, et al. On residual quad-tree coding in HEVC. IEEE 13th Int'l Workshop on Multimedia Signal Processing (MMSP). Oct. 2011, pp.1-4 |
Also Published As
Publication number | Publication date |
---|---|
JP5932050B2 (ja) | 2016-06-08 |
JP2014535221A (ja) | 2014-12-25 |
KR20160029144A (ko) | 2016-03-14 |
US9807401B2 (en) | 2017-10-31 |
CN103959785B (zh) | 2018-04-10 |
WO2013067174A1 (en) | 2013-05-10 |
US20130107970A1 (en) | 2013-05-02 |
EP2774364A1 (en) | 2014-09-10 |
CN103959785A (zh) | 2014-07-30 |
TW201342920A (zh) | 2013-10-16 |
EP2774364B1 (en) | 2018-12-19 |
KR20140089403A (ko) | 2014-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101667467B1 (ko) | 비디오 코딩에서 크로마 성분들에 대한 변환 단위 구획화 | |
JP6636564B2 (ja) | ビデオコーディングにおける4:2:2サンプルフォーマットのためのコード化ブロックフラグ(cbf)コーディング | |
EP3357247B1 (en) | Improved video intra-prediction using position-dependent prediction combination for video coding | |
KR101651759B1 (ko) | 메모리 효율적인 컨텍스트 모델링 | |
KR101774737B1 (ko) | 비디오 코딩을 위한 잔여 쿼드 트리 (rqt) 코딩 | |
KR101825262B1 (ko) | B 슬라이스에서의 예측 유닛의 단방향성 인터 예측으로의 제한 | |
KR101642615B1 (ko) | 비디오 코딩에서 양자화 파라미터 예측 | |
KR101772350B1 (ko) | 비디오 코딩을 위한 고 정확도 명시적 가중 예측 | |
KR101807913B1 (ko) | 비디오 코딩에서 코드북을 사용한 루프 필터 파라미터들의 코딩 | |
KR20180059893A (ko) | 직사각형 변환 유닛들의 양자화를 위한 델타 qp, 단거리 인트라 예측 (sdip) 기반 비디오 코딩 | |
KR20150003327A (ko) | 변환 계수 코딩 | |
WO2013096772A2 (en) | Unified partition mode table for intra-mode coding | |
KR20160031496A (ko) | 인트라 모션 보상 확장 | |
KR20150143585A (ko) | 비디오 코딩에서 예측 잔차 블록들의 재배치 | |
KR20150065838A (ko) | 비디오 특성들의 표시 | |
KR20150076235A (ko) | 비디오 코딩을 위한 참조 화상 상태 | |
KR20140131525A (ko) | 병렬 모션 추정 범위 사이즈의 묵시적 도출 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
A107 | Divisional application of patent | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |