KR20140089403A - Transform unit partitioning for chroma components in video coding - Google Patents

Transform unit partitioning for chroma components in video coding Download PDF

Info

Publication number
KR20140089403A
KR20140089403A KR1020147014553A KR20147014553A KR20140089403A KR 20140089403 A KR20140089403 A KR 20140089403A KR 1020147014553 A KR1020147014553 A KR 1020147014553A KR 20147014553 A KR20147014553 A KR 20147014553A KR 20140089403 A KR20140089403 A KR 20140089403A
Authority
KR
South Korea
Prior art keywords
subarrays
chroma
residual values
residual
values
Prior art date
Application number
KR1020147014553A
Other languages
Korean (ko)
Other versions
KR101667467B1 (en
Inventor
샹린 왕
리웨이 궈
윤페이 정
마르타 카르체비츠
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20140089403A publication Critical patent/KR20140089403A/en
Application granted granted Critical
Publication of KR101667467B1 publication Critical patent/KR101667467B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection 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/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/96Tree 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 서브 어레이들로 구획할 수도 있다. 그 비디오 인코딩 디바이스는 루마 성분에 대한 잔차 값들의 어레이의 상기 구획화에 기초하여 크로마 잔차 값들의 상기 서브 어레이들을 더 구획할 수도 있다. 비디오 인코딩 디바이스는 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하여 변환 계수들을 생성할 수도 있다. 비디오 디코딩 디바이스가 잔차 값들을 생성하기 위해 변환 계수들의 서브 어레이들을 정의하는 데이터를 사용하여 역 프로세스를 수행할 수도 있다.The video encoding device is configured to obtain an N by N array of residual values for the luma component and a corresponding N / 2 by N array of residual values for the chroma component. The video encoding device may partition the N / 2 by N array of residual values for the chroma component into two N / 2 by N / 2 subarrays of chroma residual values. The video encoding device may further partition the sub-arrays of chroma residual values based on the segmentation of the array of residual values for the luma component. The video encoding device may perform transformations on each of the subarrays of chroma residual values to produce transform coefficients. The video decoding device may perform the inverse process using the data defining the sub-arrays of transform coefficients to generate the residual values.

Description

비디오 코딩에서 크로마 성분들에 대한 변환 단위 구획화{TRANSFORM UNIT PARTITIONING FOR CHROMA COMPONENTS IN VIDEO CODING}[0001] TRANSFORM UNIT PARTITIONING FOR CHROMA COMPONENTS IN VIDEO CODING FOR CHROMA COMPONENTS IN VIDEO CODING [0002]

관련 출원들Related Applications

본 출원은 2011년 11월 1일자로 출원된 미국 가출원 제61/554,273호를 우선권 주장하며, 그것은 그 전체가 참조로 본원에 통합된다.This application claims priority to U.S. Provisional Application No. 61 / 554,273, filed November 1, 2011, which is incorporated herein by reference in its entirety.

기술 분야Technical field

본 개시물은 비디오 코딩에 관한 것이고, 더 상세하게는, 변환 단위 구획화 (partitioning) 에 관한 것이다.The present disclosure relates to video coding, and more particularly to conversion unit partitioning.

디지털 비디오 능력들은 디지털 텔레비전들, 디지털 직접 브로드캐스트 시스템들, 무선 브로드캐스트 시스템들, 개인휴대 정보단말들 (PDAs), 랩톱 또는 데스크톱 컴퓨터들, 태블릿 컴퓨터들, e-북 리더들, 디지털 카메라들, 디지털 레코딩 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 디바이스들, 비디오 게임 콘솔들, 셀룰러 또는 위성 무선 전화기들, 이른바 "스마트 폰들", 비디오 원격회의 디바이스들, 비디오 스트리밍 디바이스들 등을 포함하는 넓은 범위의 디바이스들에 통합될 수 있다. 디지털 비디오 디바이스들은 MPEG-2, MPEG-4, ITU-T H.263 또는 ITU-T H.264/MPEG-4, 파트 10, 고급 비디오 코딩 (AVC) 에 의해 규정된 표준들, 현재 개발중인 고 효율 비디오 코딩 (High Efficiency Video Coding, HEVC) 표준, 및 이러한 표준들의 확장안들에 기재된 것들과 같은 비디오 압축 기법들을 구현한다. 비디오 디바이스들은 그런 비디오 압축 기법들을 구현하는 것에 의해 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩, 및/또는 저장할 수도 있다.Digital video capabilities include digital television, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, tablet computers, e-book readers, digital cameras, A wide range of devices including digital recording devices, digital media players, video gaming devices, video game consoles, cellular or satellite radiotelephones, so-called "smart phones", video teleconferencing devices, video streaming devices, Lt; / RTI > devices. Digital video devices are being developed in accordance with standards defined by MPEG-2, MPEG-4, ITU-T H.263 or ITU-T H.264 / MPEG-4, Part 10, Advanced Video Coding (AVC) Video compression techniques such as those described in the High Efficiency Video Coding (HEVC) standard, and extensions to these standards. Video devices may more efficiently transmit, receive, encode, decode, and / or store digital video information by implementing such video compression techniques.

비디오 압축 기법들은 공간적 (화상 내) 예측 및/또는 시간적 (화상 간) 예측을 수행하여 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 제거한다. 블록 기반 비디오 코딩을 위해, 비디오 슬라이스 (즉, 비디오 프레임 또는 비디오 프레임의 부분) 는 비디오 블록들로 구획될 수도 있으며, 그 비디오 블록들은 또한 트리블록들 (treeblocks), 코딩 단위들 (CUs) 및/또는 코딩 노드들이라고 지칭될 수도 있다. 화상의 인트라 코딩식 (intra-coded; I) 슬라이스에서의 비디오 블록들은 동일한 화상의 이웃 블록들에서의 참조 샘플들에 관한 공간적 예측을 이용하여 인코딩된다. 화상의 인터 코딩식 (inter-coded; P 또는 B) 슬라이스에서의 비디오 블록들은 동일한 화상의 이웃 블록들에서의 참조 샘플들에 관한 공간적 예측 또는 다른 참조 화상들에서의 참조 샘플들에 관한 시간적 예측을 이용하여 코딩될 수도 있다. 화상들은 프레임들이라고 지칭될 수도 있고, 참조 화상들은 참조 프레임들이라고 말해질 수도 있다.Video compression techniques perform spatial (intra-picture) prediction and / or temporal (inter-picture) prediction to reduce or eliminate redundancy inherent in video sequences. For block-based video coding, a video slice (i.e., a portion of a video frame or video frame) may be partitioned into video blocks, which may also include treeblocks, coding units (CUs) Or coding nodes. Video blocks in an intra-coded (I) slice of an image are encoded using spatial prediction on reference samples in neighboring blocks of the same picture. The video blocks at the inter-coded (P or B) slice of the picture may be temporally or temporally predicted by spatial prediction of reference samples in neighboring blocks of the same picture or temporal prediction of reference samples in other reference pictures As shown in FIG. Pictures may be referred to as frames, and reference pictures may be referred to as reference frames.

공간적 또는 시간적 예측은 코딩될 블록에 대한 예측 블록으로 나타나게 된다. 잔차 데이터는 코딩될 원본 블록과 예측 블록 사이의 화소 차이들을 나타낸다. 인터 코딩식 블록은 예측 블록을 형성하는 참조 샘플들의 블록을 가리키는 모션 벡터와, 코딩된 블록 및 예측 블록 사이의 차이를 나타내는 잔차 데이터에 따라 인코딩된다. 인트라 코딩식 블록은 인트라 코딩 모드 및 잔차 데이터에 따라 인코딩된다. 추가 압축을 위해, 잔차 데이터는 화소 도메인으로부터 변환 도메인으로 변환될 수도 있으며, 결과적으로 잔차 변환 계수들이 생겨나며, 그 계수들은 그 다음에 양자화될 수도 있다. 처음에는 2차원 어레이로 배열된 양자화된 변환 계수들은, 변환 계수들의 1차원 벡터를 생성하기 위하여 스캐닝될 수도 있고, 엔트로피 코딩이 추가의 압축을 달성하기 위해 변환계수들에 적용될 수도 있다.The spatial or temporal prediction appears as a prediction block for the block to be coded. The residual data represents the pixel differences between the original block to be coded and the prediction block. The inter-coded block is encoded according to the residual data indicating the difference between the coded block and the prediction block and the motion vector indicating the block of reference samples forming the prediction block. The intra-coded block is encoded according to the intra-coding mode and the residual data. For further compression, the residual data may be transformed from the pixel domain to the transform domain, resulting in residual transform coefficients, which may then be quantized. The quantized transform coefficients initially arranged in a two-dimensional array may be scanned to generate a one-dimensional vector of transform coefficients, and entropy coding may be applied to the transform coefficients to achieve further compression.

대체로, 하나의 양태에서, 본 개시물은 4:2:2 샘플링 포맷이 적용되는 경우에 루마 및 크로마 성분들 사이에서 변환 단위 (transform unit; TU) 구획화를 동기화하는 기법들을 설명한다. 일 예로서, 비디오 데이터가 4:2:2 샘플링 포맷에 따라 포맷되는 경우, 그 기법들은 변환을 목적으로 각각의 크로마 성분의 블록을 제 1 크로마 서브블록 및 제 2 크로마 서브블록으로 구획하는 것을 포함할 수도 있다. 제 1 및 제 2 크로마 서브블록들은, 예를 들어, 각각 상단 크로마 서브블록 및 하단 크로마 서브블록일 수도 있다. 루마 성분의 변환 단위 구획화는 2 개의 크로마 서브블록들 양쪽 모두에서 추가의 구획들과 동기될 수도 있다. 이런 방식으로, 4:2:2 샘플링 포맷으로, 이들 기법들에 따라 구획되는 크로마 성분의 변환 단위는 더 유용한 또는 더 바람직한 사이즈들 및 형상들의 변환들로 귀결될 수도 있다. 일부 경우들에서, 본원에서 설명되는 기법들은 크로마 변환 단위들이 루마 성분의 대응하는 변환 단위들과 동일한 애스팩트 비를 가지도록 적용될 수도 있다.In general, in one aspect, this disclosure describes techniques for synchronizing transform unit (TU) compartments between luma and chroma components when a 4: 2: 2 sampling format is applied. As an example, if the video data is formatted according to a 4: 2: 2 sampling format, the techniques include partitioning each block of chroma components into a first chroma subblock and a second chroma subblock for purposes of conversion You may. The first and second chroma subblocks may be, for example, an upper chroma subblock and a lower chroma subblock, respectively. The conversion unit partitioning of the luma component may be synchronized with additional segments in both of the two chroma sub-blocks. In this way, in a 4: 2: 2 sampling format, the conversion unit of the chroma component that is partitioned according to these techniques may result in more useful or more preferred transformations of sizes and shapes. In some cases, the techniques described herein may be applied such that the chroma conversion units have the same aspect ratio as the corresponding conversion units of the luma component.

대체로, 본 개시물의 다른 양태는 변환 단위들을 구획하는 경우의 코딩된 블록 플래그 (coded block flag; CBF) 코딩을 위한 기법들을 설명한다. 일 예로서, 크로마 성분 (U 또는 V) 의 변환 단위에 대한 코딩된 블록 플래그를 코딩함에 있어서, 4:2:2 포맷에 대응하는 각각의 크로마 성분에 대해, 조인트 코딩된 블록 플래그가 크로마 성분의 제 1 및 제 2 (예컨대, 상단 및 하단) 크로마 변환 단위들의 각각의 쌍에 대해 먼저 시그널링될 수도 있다. 크로마 변환 단위들의 쌍에서, 즉, 그 쌍에서의 크로마 변환 단위들 중 적어도 하나 내에 적어도 하나의 0이 아닌 계수가 있음을 조인트 코딩된 블록 플래그가 나타내면, 2 개의 변환 단위들의 각각이 임의의 0이 아닌 변환 계수들을 가지는지를 시그널링하기 위해 하나 이상의 부가적인 코딩된 블록 플래그들이 전송될 수도 있다. 그렇지 않고, 크로마 변환 단위들의 쌍에서 적어도 하나의 0이 아닌 계수가 없음을 조인트 코딩된 블록 플래그가 나타내면, 코딩된 블록 플래그들의 추가의 시그널링은 크로마 성분들의 쌍에 대한 변환 단위들을 위해 필요하지 않다.In general, other aspects of the present disclosure describe techniques for coded block flag (CBF) coding when partitioning transform units. As an example, in coding a coded block flag for a transform unit of a chroma component (U or V), for each chroma component corresponding to a 4: 2: 2 format, the joint coded block flag May be signaled earlier for each pair of first and second (e.g., top and bottom) chroma conversion units. If the joint coded block flag indicates that there is at least one non-zero coefficient in at least one of the chroma conversion units in the pair of chroma conversion units, then each of the two conversion units may be any zero One or more additional coded block flags may be sent to signal whether the frame has non-conversion coefficients. Otherwise, if the joint coded block flag indicates that there is at least one non-zero coefficient in the pair of chroma conversion units, then the additional signaling of the coded block flags is not needed for the conversion units for the pair of chroma components.

하나의 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하는 단계, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하는 단계, 잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하는 단계, 및 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/2 서브 어레이들의 각각을 조합하는 것을 포함하는 비디오 데이터를 디코딩하는 방법을 설명한다.In one example, the disclosure provides a method comprising: obtaining an N x N array of transform coefficients for a luma component of video data; generating a plurality of corresponding N / 2 x N / 2 Performing an inverse transform on each of the N / 2xN / 2 subarrays of chroma transform coefficients to produce a plurality of N / 2xN / 2 subarrays of residual sample values, And combining each of the N / 2xN / 2 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component.

하나의 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 어레이를 획득하는 단계, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하는 단계, 잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하는 단계, 및 크로마 성분에 대한 잔차 샘플 값들의 N/4×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/4×N/2 서브 어레이들의 각각을 조합하는 것을 포함하는 비디오 데이터를 디코딩하는 방법을 설명한다.In one example, the disclosure provides a method comprising: obtaining a plurality of N / 2xN / 2 arrays of transform coefficients for a luma component of video data; generating a plurality of corresponding N / 4xN / 4 subarrays of chroma transform coefficients to generate a plurality of N / 4xN / 4 subarrays of residual sample values, each of the plurality of N / 4xN / 4 subarrays of chroma transform coefficients Performing an inverse transform on the chroma component, and combining each of the N / 4xN / 2 subarrays of residual sample values to form an N / 4xN array of residual sample values for the chroma component Will be described.

하나의 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 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 서브 어레이들의 각각을 조합하는 것을 포함하는 비디오 데이터를 디코딩하는 방법을 설명한다.In one example, the present disclosure provides a method comprising: obtaining four N x N / 4 arrays of transform coefficients for a luma component of video data; obtaining eight corresponding N / 2 of transform coefficients for a chroma component of the video data; X N / 8 subarrays of chroma transform coefficients to generate eight N / 2 x N / 8 subarrays of residual sample values, And combining each of the N / 2xN / 8 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component .

다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하며, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하며, 잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/2 서브 어레이들의 각각을 조합하도록 구성된 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스를 설명한다.In another example, the disclosure is directed to a method comprising: obtaining an NxN array of transform coefficients for a luma component of video data, generating a plurality of corresponding N / 2xN / 2 subarrays of transform coefficients for a chroma component of the video data And performing inverse transform for each of the N / 2xN / 2 subarrays of chroma transform coefficients to produce a plurality of N / 2xN / 2 subarrays of residual sample values, And one or more processors configured to combine each of the N / 2xN / 2 subarrays of residual sample values to form an N / 2xN array of residual sample values.

다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 어레이를 획득하며, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하며, 잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/4×N/4 서브 어레이들의 각각을 조합하도록 구성된 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스를 설명한다.In another example, the disclosure is directed to a method comprising: obtaining a plurality of N / 2xN / 2 arrays of transform coefficients for a luma component of video data, generating a plurality of corresponding N / 4 N / 4 subarrays of chroma transform coefficients to produce a plurality of N / 4xN / 4 subarrays of residual sample values, , And to combine each of the N / 4xN / 4 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component, .

다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 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 서브 어레이들의 각각을 조합하도록 구성된 하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스를 설명한다.In another example, the present disclosure provides a method comprising: obtaining four N x N / 4 arrays of transform coefficients for a luma component of video data, generating eight corresponding N / 2 x N transform coefficients for the chroma component of the video data / 8 subarrays, performing an inverse transform on each of the N / 2xN / 8 subarrays of chroma transform coefficients to produce eight N / 2xN / 8 subarrays of residual sample values, And one or more processors configured to combine each of the N / 8xN / 2 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component.

다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하ㄱ게 하고, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하게 하고, 잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하게 하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/2 서브 어레이들의 각각을 조합하게 하는 명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 매체를 설명한다.In another example, the disclosure is directed to an apparatus and method that, when executed, enable one or more processors to obtain an NxN array of transform coefficients for a luma component of video data, / 2 × N / 2 sub-arrays of chroma transform coefficients to obtain a plurality of corresponding N / 2 × N / 2 subarrays of residual sample values and to generate a plurality of N / 2 × N / 2 subarrays of residual sample values To perform an inverse transform for each of the arrays and to combine each of the N / 2xN / 2 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component Quot; non-volatile computer readable medium "

다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 어레이를 획득하게 하고, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하게 하고, 잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하게 하고, 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/4×N/4 서브 어레이들의 각각을 조합하게 하는 명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 매체를 설명한다.In another example, the disclosure is directed to enabling one or more processors, when executed, to obtain a plurality of N / 2xN / 2 arrays of transform coefficients for a luma component of video data, To obtain a plurality of corresponding N / 4xN / 4 subarrays of transform coefficients for a plurality of N / 4xN / 4 subarrays of residual sample values, N / 4 subarrays of residual sample values to perform an inverse transform on each of the 4xN / 4 subarrays and to form an N / 2xN array of residual sample values for the chroma component A non-transitory computer readable medium storing instructions that cause each to be combined.

다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 루마 성분에 대한 변환 계수들의 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 서브 어레이들의 각각을 조합하게 하는 명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 매체를 설명한다.In another example, the disclosure is directed to a processor that, when executed, causes one or more processors to obtain four N x N / 4 arrays of transform coefficients for a luma component of video data, N / 2xN / 8 sub-arrays of chroma transform coefficients to obtain eight corresponding N / 2xN / 8 subarrays of transform coefficients and to generate eight N / 2xN / 8 subarrays of residual sample values. 8 subarrays, and combines each of the N / 2xN / 8 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component Lt; RTI ID = 0.0 > computer-readable < / RTI >

다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하는 수단, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하는 수단, 잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하는 수단, 및 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/2 서브 어레이들의 각각을 조합하는 수단을 포함하는 비디오 데이터를 디코딩하는 장치를 설명한다.In another example, the disclosure is directed to a method comprising: a means for obtaining an NxN array of transform coefficients for a luma component of video data, a plurality of corresponding N / 2xN / 2 submodes of transform coefficients for a chroma component of video data Means for performing an inverse transform on each of the N / 2xN / 2 subarrays of chroma transform coefficients to produce a plurality of N / 2xN / 2 subarrays of residual sample values, Means for combining each of the N / 2xN / 2 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component.

다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 어레이들을 획득하는 수단, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하는 수단, 잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하는 수단, 및 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/4×N/4 서브 어레이들의 각각을 조합하는 수단을 포함하는 비디오 데이터를 디코딩하는 장치를 설명한다.In another example, the disclosure provides a method comprising: obtaining a plurality of N / 2xN / 2 arrays of transform coefficients for a luma component of video data; Means for obtaining 4 × N / 4 subarrays, for each of a plurality of N / 4 × N / 4 subarrays of chroma transform coefficients to generate a plurality of N / 4 × N / 4 subarrays of residual sample values And means for combining each of the N / 4xN / 4 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component, Will be described.

다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 변환 계수들의 4 개의 N×N/4 어레이들을 획득하는 수단, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 8 개의 대응하는 N/2×N/8 서브 어레이들을 획득하는 수단, 잔차 샘플 값들의 복수의 N/2×N/8 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2×N/8 서브 어레이들의 각각에 대해 역 변환을 수행하는 수단, 및 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2×N/8 서브 어레이들의 각각을 조합하는 수단을 포함하는 비디오 데이터를 디코딩하는 장치를 설명한다.In another example, the present disclosure provides an apparatus comprising means for obtaining four N x N / 4 arrays of transform coefficients for a luma component of video data, eight corresponding N / 2 x transform coefficients for chroma components of video data, Means for obtaining N / 8 subarrays, performing inverse transform on each of the N / 2xN / 8 subarrays of chroma transform coefficients to produce a plurality of N / 2xN / 8 subarrays of residual sample values And means for combining each of the N / 2xN / 8 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component, .

하나의 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하는 단계, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하는 단계, 크로마 성분에 대한 잔차 값들의 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 단계, 및 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하는 것을 포함하는 비디오 데이터를 인코딩하는 방법을 설명한다.In one example, the present disclosure provides a method comprising: obtaining an NxN array of residual values for a luma component of video data; obtaining a corresponding N / 2xN array of residual values for a chroma component of video data Dividing the N / 2xN array of residual values for the chroma component into two N / 2xN / 2 subarrays of chroma residual values, and transforming each of the subarrays of chroma residual values Lt; RTI ID = 0.0 > encoding coefficients for chroma components by performing transformations on chroma components.

다른 예에서, 본 개시물은, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하는 수단, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하는 수단, 크로마 성분에 대한 잔차 값들의 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 수단, 및 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하는 수단을 포함하는 비디오 데이터를 인코딩하는 장치를 설명한다.In another example, the disclosure is directed to an apparatus comprising means for obtaining an NxN array of residual values for a luma component of video data, means for obtaining a corresponding N / 2xN array of residual values for a chroma component of the video data, Means for partitioning the N / 2xN array of residual values for the chroma component into two N / 2xN / 2 subarrays of chroma residual values, and for each of the subarrays of chroma residual values And means for generating transform coefficients for the chroma component by applying the transform coefficients to the chroma component.

다른 예에서, 본 개시물은 비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하며, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하며, 크로마 성분에 대한 잔차 값들의 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하고, 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하도록 구성된 하나 이상의 프로세서들을 포함하는 비디오 인코딩 디바이스를 설명한다.In another example, the disclosure obtains an NxN array of residual values for a luma component of video data, obtains a corresponding N / 2xN array of residual values for a chroma component of video data, By dividing the N / 2xN array of residual values for the chroma residual values into two N / 2xN / 2 subarrays of chroma residual values, and performing a transform for each of the subarrays of chroma residual values, Lt; RTI ID = 0.0 > one or more processors < / RTI >

다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하게 하고, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하게 하고, 크로마 성분에 대한 잔차 값들의 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하게 하고, 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하게 하는 명령들을 저장하고 있는 비 일시적 컴퓨터 판독가능 매체를 설명한다.In another example, the disclosure provides a method for enabling one or more processors, when executed, to obtain an NxN array of residual values for a luma component of video data, and to generate a correspondence of residual values for a chroma component of the video data 2 × N arrays of chroma residual values, and to partition the N / 2 × N arrays of residual values for chroma components into two N / 2 × N / 2 subarrays of chroma residual values, Temporal computer-readable media storing instructions that cause transform coefficients for a chroma component to be generated by performing a transform on each of the subarrays of subarrays.

하나의 예에서, 본 개시물은, 크로마 성분에 연관된 제 1 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하는 단계, 크로마 성분에 연관된 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하는 단계, 및 제 1 변환 단위 및 제 2 변환 단위에 대한 조인트 코딩된 블록 플래그를 생성하는 것을 포함하며, 조인트 코딩된 블록 플래그는 제 1 변환 단위 또는 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내는, 비디오 데이터를 인코딩하는 방법을 설명한다.In one example, the present disclosure provides a method comprising: determining whether a first transform unit associated with a chroma component comprises at least one non-zero transform coefficients, wherein the second transform unit associated with the chroma component comprises at least one zero And generating a joint coded block flag for the first transform unit and the second transform unit, wherein the joint coded block flag comprises a first transform unit or a second transform unit, 2 < / RTI > conversion unit indicates whether at least one of the two conversion units includes at least one non-zero conversion coefficients.

다른 예에서, 본 개시물은, 크로마 성분에 연관된 제 1 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하는 수단, 크로마 성분에 연관된 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하고 제 1 변환 단위 및 제 2 변환 단위에 대한 조인트 코딩된 블록 플래그를 생성하는 수단을 포함하며, 조인트 코딩된 블록 플래그는 제 1 변환 단위 또는 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내는 비디오 데이터를 인코딩하는 장치를 설명한다.In another example, the disclosure provides a method for determining whether a first transform unit associated with a chroma component comprises at least one non-zero transform coefficients, wherein the second transform unit associated with the chroma component comprises at least one zero And means for generating a joint coded block flag for the first transform unit and the second transform unit, wherein the joint coded block flag comprises a first transform unit or a second transform unit Lt; RTI ID = 0.0 > 1 < / RTI > includes at least one non-zero transform coefficients.

다른 예에서, 본 개시물은, 크로마 성분에 연관된 제 1 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하며, 크로마 성분에 연관된 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하고, 제 1 변환 단위 및 제 2 변환 단위에 대한 조인트 코딩된 블록 플래그를 생성하도록 구성된 하나 이상의 프로세서들을 포함하며, 조인트 코딩된 블록 플래그는 제 1 변환 단위 또는 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내는 비디오 인코딩 디바이스를 설명한다.In another example, the present disclosure determines whether a first transform unit associated with a chroma component includes at least one non-zero transform coefficients, wherein the second transform unit associated with the chroma component is not at least one zero And one or more processors configured to determine whether or not the block includes transform coefficients and to generate a joint coded block flag for a first transform unit and a second transform unit, 2 < / RTI > conversion unit includes at least one non-zero transform coefficients.

다른 예에서, 본 개시물은, 실행되는 경우, 하나 이상의 프로세서들로 하여금, 크로마 성분에 연관된 제 1 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하게 하고, 크로마 성분에 연관된 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하게 하고, 제 1 변환 단위 및 제 2 변환 단위에 대한 조인트 코딩된 블록 플래그를 생성하게 하는 명령들을 저장하고 있고, 조인트 코딩된 블록 플래그는 제 1 변환 단위 또는 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내는 비일시적 컴퓨터 판독가능 매체를 설명한다.In another example, the disclosure is directed to enabling one or more processors, when executed, to determine whether a first transform unit associated with a chroma component includes at least one non-zero transform coefficients, To determine whether the associated second transform unit includes at least one non-zero transform coefficients and to generate a joint coded block flag for the first transform unit and the second transform unit, The joint coded block flag describes a non-volatile computer readable medium that indicates whether either the first or second conversion unit includes at least one non-zero conversion factor.

하나 이상의 예들의 세부사항들은 첨부 도면들 및 다음의 설명에서 언급된다. 다른 특징들, 목적들, 및 이점들은 상세한 설명 및 도면들로부터, 그리고 청구항들로부터 명확하게 될 것이다.The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.

도 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는 변환 계수들로부터 잔차 값들을 생성하는 일 예의 방법을 도시하는 흐름도이다.
Figures 1A-1C are conceptual diagrams illustrating different sample formats for luma and chroma components of a coding unit.
2 is a conceptual diagram illustrating a 16x16 coding unit formatted according to a 4: 2: 2 sample format.
3 is a conceptual diagram illustrating a quadtree partition structure of a conversion unit.
4A and 4B are conceptual diagrams showing a quad tree partition structure of a conversion unit.
5 is a conceptual diagram illustrating quad tree division levels.
6 is a conceptual diagram illustrating a TU quadtree partitioning applied to a 16x16 coding unit formatted according to a 4: 2: 2 sample format.
7 is a block diagram illustrating an example video encoding and decoding system that may utilize techniques described in this disclosure.
Figures 8A-8D are conceptual diagrams illustrating techniques for transform unit decomposition for a video block.
9 is a conceptual diagram illustrating techniques for conversion unit segmentation for a 16x16 video block formatted according to the 4: 2: 2 sample format.
Figures 10A through 10D are conceptual diagrams illustrating techniques for block association for coded block flag coding.
11 is a flow diagram illustrating one example method for transform unit partitioning and block association for coded block flag coding for chroma blocks.
Figure 12 is a block diagram illustrating an example video encoder that may implement the techniques described in this disclosure.
13 is a flow chart illustrating one example method for generating transform coefficients for the partitioning of chroma blocks and residual values.
Figure 14 is a block diagram illustrating an example video decoder that may implement the techniques described in this disclosure.
15 is a flow chart illustrating an example method of generating residual values from transform coefficients.

일부 비디오 코딩 표준들에 따르면, 코딩 단위 (CU), 그것의 루마 성분 및 그것의 크로마 성분들은, 변환 단위 (TU) 구획화를 위해 동일한 쿼드트리 분할 구조를 공유할 수도 있다. 상이한 컬러 샘플링 포맷들 하에서, 대응하는 크로마 성분 블록들은 루마 블록과는 상이한 사이즈들 및 형상들을 가질 수도 있다. 게다가, HEVC의 현재 버전에 따르면, TU 구획화로부터 생길 수도 있는 변환들의 상이한 사이즈들 및 형상들의 모두가 크로마 성분 블록들을 위해 정의되고 사용될 수 있는 것은 아니다. 따라서, 크로마 성분들의 변환 단위 구획화를 위한 다른 기법들은 더 유용한 형상들 및 사이즈들의 TU들로 나타날 수도 있다. 본원에서 설명되는 예의 기법들의 일부에 따르면, 4:2:2 포맷 하에서, 크로마 성분 구획들을 위한 변환 단위가 루마 성분에 대한 그것의 대응하는 변환 단위와 동일한 애스팩트 비를 가질 수도 있다.According to some video coding standards, the coding unit (CU), its luma component and its chroma components may share the same quadtree partition structure for transform unit (TU) compartmentalization. Under different color sampling formats, the corresponding chroma component blocks may have different sizes and shapes than the luma block. In addition, according to the current version of the HEVC, not all of the different sizes and shapes of transformations that may result from TU segmentation can be defined and used for chroma component blocks. Thus, other techniques for transform unit decomposition of chroma components may appear as TUs of more useful shapes and sizes. According to some of the example techniques described herein, under a 4: 2: 2 format, the conversion unit for chroma component segments may have the same aspect ratio as its corresponding conversion unit for the luma component.

디지털 비디오 디바이스들은 디지털 비디오 정보를 더 효율적으로 인코딩하고 디코딩하는 비디오 압축 기법들을 구현한다. 비디오 압축 기법들은 비디오 코딩 표준에 따라 정의될 수도 있다. 비디오 코딩 표준들의 예들은 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) 이 있다.Digital video devices implement video compression techniques to more efficiently encode and decode digital video information. Video compression techniques may be defined in accordance with video coding standards. Examples of video coding standards are ITU-T H.261, ISO / IEC MPEG-1 Visual, ITU-T H.262 or ISO / IEC MPEG-2 Visual, ITU-T H.263, ISO / IEC MPEG-4 Visual And ITU-T H.264 (also known as ISO / IEC MPEG-4 AVC), including Scalable Video Coding (SVC) and Multiview Video Coding (MVC) extensions. In addition, the new video coding standard, which is being developed by Joint Collaboration Team on Video Coding (JCT-VC) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG) (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 standardization efforts are based on a model of a video coding device called the HEVC test model (HM). HM contemplates improvements in the capabilities of current video coding devices with regard to video coding devices available during the development of other prior video coding standards, e.g., ITU-T H.264 / AVC. For example, while H.264 provides nine intra prediction encoding modes, the HEVC provides 35 intra prediction encoding modes. A recent draft specification of the HEVC, referred to as the " HEVC Working Draft (WD) 4 "or" WD4 ", is described in the document " JCTVC-F803_d2, Bross et al., WD4: Working Draft 4 of High Efficiency Video Coding IEC JTC1 / SC29 / WG11, 6th Meeting: Torino, IT, July, 2011 "in ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG11, Joint Collaborative Team on Video Coding (HEVC) In addition, other recent HEVC draft specifications, referred to as "HEVC Specification Draft 8 " or" WD8 ", can be found in documents " HCTVC-J1003_d7, Bross et al., "High Efficiency Video Coding IEC JTC1 / SC29 / WG11, 10th Meeting: Stockholm, SE, July 11-20, 2012 "in ITU-T SG16 WP3 and JCT-VC. The HEVC standard may also be referred to as ISO / IEC 23008-HEVC, which is intended to be a standard number for the delivered version of the HEVC. The coding according to some of the currently proposed aspects of the developing HEVC standard will be described for illustrative purposes in this application. However, the techniques described in this disclosure may also be useful and applicable to other video coding processes, such as those defined in ITU-T H.264 or other standard or proprietary video coding processes.

비디오 코딩 표준, 이를테면 HEVC WD4에 따라 동작하는 전형적인 비디오 인코더는, 원래의 비디오 시퀀스의 각각의 프레임 (즉, 화상) 을 "블록들" 또는 "코딩 단위들"이라 부르는 인접하는 사각형 지역들로 구획한다. 이들 블록들은 비디오 시퀀스들에 내재하는 리던던시를 감소시키거나 제거하는 공간적 (프레임 내) 예측 및/또는 시간적 (프레임 간) 예측 기법을 적용하는 것에 의해 인코딩될 수도 있다. 공간 예측이 "인트라 모드" (I-모드) 라고 지칭될 수도 있고, 시간적 예측이 "인터 모드" (P-모드 또는 B-모드) 라고 지칭될 수도 있다. 예측 기법들은 비디오 데이터의 예측 블록을 생성하며, 그 예측 블록은 또한 참조 샘플들의 블록이라고 지칭될 수도 있다. 코딩될 원래의 비디오 데이터의 블록이 예측 블록과 비교된다. 비디오 데이터의 원본 블록 및 예측 블록 사이의 차이는 잔차 데이터라고 지칭될 수도 있다. 잔차 데이터는 통상적으로 비디오 데이터의 원본 블록의 화소 값들 및 예측 블록 사이의 차이의 어레이이다. 변환, 예컨대, 이산 코사인 변환 (DCT), 정수 변환, 웨이브릿 변환, 또는 개념적으로 유사한 변환이 코딩 프로세스 동안 변환 계수들의 대응하는 세트를 생성하기 위해 잔차 데이터에 적용될 수도 있다. 따라서, 비디오의 원본 블록은 변환 계수들에 대해 역 변환을 수행하고 잔차 데이터를 예측 블록에 가산하는 것에 의해 복원될 수도 있다. 변환 계수들은 또한 양자화될 수도 있다. 다시 말하면, 변환 계수들의 값들은 정의된 비트 깊이에 따라 비트 스트링으로서 표현될 수도 있다. 일부 경우들에서, 양자화는 낮은 값의 변환 계수들의 표현이 0이 되게 할 수도 있다. 양자화된 변환 계수들은 변환 계수 레벨들이라고 지칭될 수도 있다.A typical video encoder operating according to a video coding standard, such as HEVC WD4, divides each frame (i.e., picture) of the original video sequence into contiguous rectangular regions called "blocks" or "coding units" . These blocks may be encoded by applying spatial (intra-frame) prediction and / or temporal (inter-frame) prediction techniques to reduce or eliminate the redundancy inherent in the video sequences. The spatial prediction may be referred to as "intra mode" (I-mode), and temporal prediction may be referred to as "inter mode" (P-mode or B-mode). Prediction techniques generate prediction blocks of video data, which may also be referred to as blocks of reference samples. A block of original video data to be coded is compared with a prediction block. The difference between the original block of the video data and the prediction block may be referred to as residual data. The residual data is typically an array of differences between the pixel values of the original block of video data and the prediction block. Transformations, such as discrete cosine transforms (DCT), integer transforms, wavelet transforms, or conceptually similar transforms may be applied to the residual data to produce a corresponding set of transform coefficients during the coding process. Thus, the original block of video may be recovered by performing an inverse transform on the transform coefficients and adding the residual data to the prediction block. The transform coefficients may also be quantized. In other words, the values of the transform coefficients may be expressed as a bit string according to the defined bit depth. In some cases, the quantization may cause the representation of low-valued transform coefficients to be zero. The quantized transform coefficients may be referred to as transform coefficient levels.

HEVC에 따른 비디오 코딩의 경우, 일 예로서, 비디오 프레임이 코딩 단위들로 구획될 수도 있다. 코딩 단위 (CU) 는 일반적으로 다양한 코딩 도구들이 비디오 압축을 위해 적용되는 기본 단위로서 역할을 하는 직사각형 이미지 지역을 지칭한다. CU가 통상적으로 정사각형이고, 예를 들어, ITU-T H.264와 같은 다른 비디오 코딩 표준들에서 설명되는 이른바 "매크로블록"과 유사한 것으로 간주될 수도 있다. CU가 비디오 샘플 값들의 어레이로 간주될 수도 있다. 비디오 샘플 값들은 또한 화상 엘리먼트들, 화소들, 또는 펠 (pel) 들이라고 지칭될 수도 있다. CU의 사이즈는 수평 및 수직 샘플들의 수에 따라 정의될 수도 있다. 따라서, CU가 NxN 또는 NxM CU로서 설명될 수도 있다.In the case of video coding according to HEVC, as an example, a video frame may be partitioned into coding units. Coding unit (CU) generally refers to a rectangular image region in which various coding tools act as a base unit for video compression. CUs are typically square and may be considered similar to so-called "macroblocks" described in other video coding standards such as, for example, ITU-T H.264. The CU may be considered an array of video sample values. Video sample values may also be referred to as picture elements, pixels, or pels. The size of the CU may be defined according to the number of horizontal and vertical samples. Therefore, CU may be described as NxN or NxM CU.

본 개시물에서, "N×N" 및 "N 바이 N", 예컨대, 16x16 화소들 또는 16 바이 16 화소들은 수직 및 수평 치수들의 측면에서 비디오 블록의 화소 치수들을 상호교환적으로 말하는데 이용될 수도 있다. 일반적으로, 16x16 블록은 수직 방향의 16 개 화소들 (y = 16) 및 수평 방향의 16 개 화소들 (x = 16) 을 가질 것이다. 비슷하게, NxN 블록은 일반적으로 수직 방향의 N 개 화소들 및 수평 방향의 N 개 화소들을 가지며, 여기서 N은 음이 아닌 정수 값을 나타낸다. 블록에서의 화소들은 행들 및 열들로 배열될 수도 있다. 더구나, 블록들은 수직 방향에서와 동일한 수의 화소들을 수평 방향에서 반드시 가질 필요는 없다. 예를 들어, 블록들은 M이 N과 반드시 동일하지는 않은 NxM 개 화소들을 포함할 수도 있다.In the present disclosure, "N x N" and "N by N ", e.g., 16 x 16 pixels or 16 by 16 pixels, may be used to interchangeably speak the pixel dimensions of a video block in terms of vertical and horizontal dimensions . In general, a 16x16 block will have 16 pixels (y = 16) in the vertical direction and 16 pixels (x = 16) in the horizontal direction. Similarly, an NxN block typically has N pixels in the vertical direction and N pixels in the horizontal direction, where N represents a non-negative integer value. The pixels in the block may be arranged in rows and columns. Moreover, the blocks need not necessarily have the same number of pixels in the horizontal direction as in the vertical direction. For example, the blocks may include NxM pixels, where M is not necessarily equal to N.

양호한 코딩 효율을 달성하기 위해, 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들로 더 구획될 수도 있다.In order to achieve good coding efficiency, the CU may have varying sizes depending on the video content. The CU has a luminance component denoted generally by Y, and two chroma components denoted by U and V. [ The two chroma components U and V may also be denoted by C b and C r , respectively. Furthermore, according to the HEVC, the syntax data in the bitstream may define the largest coding unit (LCU), which is the largest CU for a frame or picture in terms of the number of samples. The size of the CU is usually defined by the number of horizontal and vertical luma samples. Typically, the LCU contains 64x64 luma samples. CUs of different dimensions may be created by recursively partitioning a CU into sub-CUs. The syntax data for the bitstream may define the maximum number of times the LCU may be divided, referred to as the CU depth. Thus, the bitstream may also define a smallest coding unit (SCU). Usually, the SCU contains 8x8 luma samples. Thus, in one example, four 32x32 CUs may be generated by partitioning a 64x64 LCU into four sub CUs, and each of the 32x32 CUs may be further partitioned into 16 8x8 CUs.

크로마 포맷이라고 또한 지칭될 수도 있는 비디오 샘플링 포맷은, CU에 포함된 크로마 샘플들의 수를 CU에 포함된 루마 샘플들의 수에 관해 정의할 수도 있다. 크로마 성분들에 대한 비디오 샘플링 포맷에 의존하여, 샘플들의 수의 측면에서의 U 및 V 성분들의 사이즈는, Y 성분의 사이즈와 동일하거나 또는 상이할 수도 있다. H.264/AVC 및 HEVC WD4 비디오 코딩 표준들에서, chroma_format_idc라고 부르는 값은 루마 성분을 기준으로, 크로마 성분들의 상이한 샘플링 포맷들을 나타내기 위해 정의된다. 표 1은 chroma_format_idc 및 연관된 크로마 포맷들의 값들 사이의 관계를 예시한다.A video sampling format, which may also be referred to as a chroma format, may define the number of chroma samples included in the CU as to the number of luma samples included in the CU. Depending on the video sampling format for the chroma components, the size of the U and V components in terms of the number of samples may be the same or different from the size of the Y component. In H.264 / AVC and HEVC WD4 video coding standards, a value called chroma_format_idc is defined to represent different sampling formats of chroma components, based on luma components. Table 1 illustrates the relationship between the values of chroma_format_idc and associated chroma formats.

Figure pct00001
Figure pct00001

표 1에서, 변수들 SubWidthC 및 SubHeightC는 루마 성분에 대한 샘플들의 수 및 각각의 크로마 성분에 대한 샘플들의 수 사이의 수평 및 수직 샘플링 레이트 비를 나타내는데 사용될 수 있다. 표 1에 기재된 크로마 포맷들에서, 2 개의 크로마 성분들은 동일한 샘플링 레이트를 가진다.In Table 1, the variables SubWidthC and SubHeightC can be used to represent the horizontal and vertical sampling rate ratios between the number of samples for the luma component and the number of samples for each chroma component. In the chroma formats described in Table 1, the two chroma components have the same sampling rate.

표 1의 예에서, 4:2:0 포맷의 경우, 루마 성분에 대한 샘플링 레이트는 수평 및 수직 방향들 양쪽 모두에 대해 크로마 성분들의 샘플링 레이트의 2 배이다. 그 결과, 4:2:0 포맷에 따라 포맷된 코딩 단위의 경우, 루마 성분에 대한 샘플들의 어레이의 폭 및 높이는 크로마 성분들에 대한 샘플들의 각각의 어레이의 폭 및 높이의 2배이다. 마찬가지로, 4:2:2 포맷에 따라 포맷된 코딩 단위의 경우, 루마 성분에 대한 샘플들의 어레이의 폭은 각각의 크로마 성분에 대한 샘플들의 어레이의 폭의 2배이지만, 루마 성분에 대한 샘플들의 어레이의 높이는 각각의 크로마 성분에 대한 샘플들의 어레이의 높이와 동일하다. 4:4:4 포맷에 따라 포맷된 코딩 단위의 경우, 루마 성분에 대한 샘플들의 어레이는 각각의 크로마 성분에 대한 샘플들의 어레이와 동일한 폭 및 높이를 가진다.In the example of Table 1, for the 4: 2: 0 format, the sampling rate for the luma component is twice the sampling rate of the chroma components for both horizontal and vertical directions. As a result, for a coding unit formatted according to the 4: 2: 0 format, the width and height of the array of samples for luma components is twice the width and height of each array of samples for chroma components. Similarly, for a coding unit formatted according to a 4: 2: 2 format, the width of the array of samples for the luma component is twice the width of the array of samples for each chroma component, Is equal to the height of the array of samples for each chroma component. For a 4: 4: 4 format formatted coding unit, the array of samples for the luma component has the same width and height as the array of samples for each chroma component.

도 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의 경우, 크로마 성분의 샘플마다에 대해 하나의 루마 샘플이 있다.Figures 1A-1C are conceptual diagrams illustrating different sample formats for luma and chroma components of a coding unit. 1A is a conceptual diagram illustrating a 4: 2: 0 sample format. As illustrated in FIG. 1A, for the 4: 2: 0 sample format, the chroma components are 1/4 of the size of the luma components. Thus, for a CU formatted according to the 4: 2: 0 sample format, there are four luma samples for each sample of the chroma component. 1B is a conceptual diagram illustrating a 4: 2: 2 sample format. As illustrated in FIG. 1B, for the 4: 2: 2 sample format, the chroma components are one-half the size of the luma component. Thus, for a CU formatted according to the 4: 2: 2 sample format, there are two luma samples for each sample of the chroma component. 1C is a conceptual diagram illustrating a 4: 4: 4 sample format. As illustrated in Figure 1C, for the 4: 4: 4 sample format, the chroma components are the same size as the luma component. Thus, for a CU formatted according to the 4: 4: 4 sample format, there is one luma sample for each sample of the chroma component.

도 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 개의 샘플들을 포함한다.2 is a conceptual diagram showing an example of a 16x16 coding unit formatted according to a 4: 2: 2 sample format. Figure 2 illustrates the relative positioning of chroma samples for luma samples in a CU. As described above, the CU is typically defined according to the number of horizontal and vertical luma samples. Thus, as illustrated in FIG. 2, a 16x16 CU formatted according to the 4: 2: 2 sample format includes 16x16 samples of luma components and 8x16 samples for each chroma component. In addition, as described above, the CU may be partitioned into smaller CUs. For example, the CU illustrated in FIG. 2 may be partitioned into four 8x8 CUs, where each CU includes 8x8 samples for the luma component and 4x8 samples for each chroma component.

게다가, 일부 비디오 코딩 표준들에서, 코딩 단위는 예측 또는 변환을 목적으로 더 작은 단위들로 구획될 수도 있다. HEVC에 따르면, CU는 하나 이상의 예측 단위들 (PUs) 및/또는 하나 이상의 변환 단위들 (TUs) 을 포함할 수도 있다. 본 개시물은 또한 CU, PU, 또는 TU 중 임의의 것을 지칭하기 위해 용어 "블록", "구획", 또는 "부분 (portion)"을 이용한다. 대체로, "부분"은 비디오 프레임의 임의의 서브 세트를 말할 수도 있다. 게다가, 본 개시물은 통상적으로 용어 "비디오 블록"을 CU의 코딩 노드를 지칭하기 위해 사용한다. 일부 특정 경우들에서, 본 개시물은 또한 용어 "비디오 블록"을 트리블록, 즉, LCU, 또는 코딩 노드와 PU들 및 TU들을 포함하는 CU를 지칭하기 위해 사용할 수도 있다. 따라서, 비디오 블록은 CU 내의 코딩 노드에 대응할 수도 있고 비디오 블록들은 고정된 또는 가변하는 사이즈들을 가질 수도 있고, 특정 코딩 표준에 따라 사이즈가 상이할 수도 있다.In addition, in some video coding standards, a coding unit may be partitioned into smaller units for prediction or conversion purposes. According to HEVC, the CU may include one or more prediction units (PUs) and / or one or more conversion units (TUs). The present disclosure also employs the terms "block "," compartment ", or "portion" to refer to any of CU, PU, or TU. In general, a "portion" may refer to any subset of video frames. In addition, the present disclosure typically uses the term "video block" to refer to a coding node of a CU. In some specific cases, the present disclosure may also use the term "video block" to refer to a triblock, i.e., LCU, or CU that includes the coding nodes and PUs and TUs. Thus, a video block may correspond to a coding node in the CU and the video blocks may have fixed or variable sizes, and may vary in size according to a particular coding standard.

PU는 대응하는 CU의 전부 또는 일 부분을 나타낼 수도 있고, PU에 대한 참조 샘플을 취출하기 위한 데이터를 포함할 수도 있다. PU들은 정사각형 또는 직사각형 형상들을 가질 수도 있다. 예를 들어, 도 2에서의 CU가 인터 예측을 이용하여 코딩되면, 그 CU는 각각의 PU가 시간적으로 인접한 프레임에서 참조 샘플들의 세트를 식별하는 정보를 포함하는 4 개의 직사각형 PU들로 분할될 수도 있다. 참조 샘플들의 세트들은 예측 비디오 블록을 형성하기 위해 결합될 수도 있다. 위에서 설명된 바와 같이, 예측 비디오 블록은 잔차 데이터를 형성하기 위해 CU로부터 감산될 수도 있다.The PU may represent all or a portion of a corresponding CU, and may include data for retrieving a reference sample for the PU. The PUs may have square or rectangular shapes. For example, if the CU in FIG. 2 is coded using inter prediction, the CU may be divided into four rectangular PUs, each of which includes information identifying a set of reference samples in temporally adjacent frames have. The sets of reference samples may be combined to form a predicted video block. As described above, the predicted video block may be subtracted from the CU to form the residual data.

위에서 설명된 바와 같이, 변환이 잔차 데이터를 화소 도메인에서부터 변환 도메인으로 변환하기 위해 잔차 데이터에 적용될 수도 있다. 변환 블록 또는 TU는 변환이 적용되는 잔차 데이터의 세트에 대응할 수도 있다. TU들은 변환을 수행하고 변환 계수들의 대응하는 세트를 생성하는 목적으로 화소 차이 값들의 세트의 사이즈를 나타낸다. TU의 사이즈는 CU의 사이즈와 동일할 수도 있거나 또는 CU는 복수의 TU들로 구획될 수도 있다. 예를 들어, 도 2에 예시된 CU, 하나의 변환은 루마 샘플들의 16x16 어레이에 연관된 잔차 값들에 대해 수행될 수도 있거나 또는 변환이 루마 샘플들의 4 개의 8x8 어레이들의 각각에 대해 수행될 수도 있다. TU들이 클수록 복원된 이미지에서 더 지각가능한 "블록현상 (blockiness)"을 갖는 더 많은 압축이 일반적으로 제공되는 반면, TU들이 작을수록 덜 지각가능한 "블록현상"을 갖는 더 적은 압축이 제공된다. TU 사이즈들의 선택은 레이트 왜곡 최적화 분석에 기초할 수도 있다.As described above, the transform may be applied to the residual data to transform the residual data from the pixel domain to the transform domain. The transform block or TU may correspond to a set of residual data to which the transform is applied. The TUs indicate the size of the set of pixel difference values for purposes of performing the transform and producing a corresponding set of transform coefficients. The size of the TU may be the same as the size of the CU, or the CU may be partitioned into a plurality of TUs. For example, the CU, one transformation illustrated in FIG. 2, may be performed on the residual values associated with the 16x16 array of luma samples, or the transform may be performed on each of the four 8x8 arrays of luma samples. The larger the TUs, the more compression is generally provided with a more perceptible "blockiness" in the reconstructed image, while the smaller the TUs, the less compression with less perceptible "block phenomena " is provided. The choice of TU sizes may be based on rate distortion optimization analysis.

LCU와 마찬가지로, TU는 더 작은 TU들로 재귀적으로 구획될 수도 있다. TU들을 더 작은 TU들로 구획하여 생겨나는 TU들은 변환 블록 구조라고 지칭될 수도 있다. 변환 블록 구조의 일 예는 이른바 트리 구조이다. 트리 구조는 변환 블록을 전체 TU인 것으로서 또는 다수의 작은 TU들로 분할된 것으로서 코딩할 수도 있다. 이 프로세스는 각각의 블록에 대해 상이한 분할 레벨마다에서 재귀적으로 수행될 수 있다.Like the LCU, the TU may be recursively partitioned into smaller TUs. The TUs generated by partitioning TUs into smaller TUs may be referred to as a transform block structure. One example of a transform block structure is a so-called tree structure. The tree structure may be coded as being a whole TU or divided into a number of small TUs. This process can be performed recursively at different partition levels for each block.

도 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 개의 더욱 작은 변환 블록들로 추가 분할된다. 인코딩 프로세스 동안, 변환 블록이 레이트 왜곡 최적화 분석에 기초하여 추가 분할되어야할지의 여부를 비디오 인코더가 결정할 수도 있다.FIG. 3 is a conceptual diagram illustrating a quad tree partition structure in which the TU is divided into four 1/4 size blocks at consecutive levels or not divided. FIG. In Figure 3, the entire block with solid lines is the original TU, which may correspond to the original CU. The dashed lines represent one result of the transform block division according to the quad tree structure. It should be noted that the partition illustrated in FIG. 3 is one of several possible partitioning results. As illustrated in Figure 3, there are three levels of conversion divisions. At the first level (i.e., level-1 partitioning), the entire transform block is divided into four 1/4 size blocks. Then, at the second level (i.e., level-2), the second 1/4 size conversion block is further divided into four 1/16 size conversion blocks. Then, at the third level (i.e., level-3), the transform block in the fourth 1/16 size is further divided into four smaller transform blocks. During the encoding process, the video encoder may determine whether the transform block should be further segmented based on rate distortion optimization analysis.

도 3에 예시된 분할 기법은 쿼드트리 분할 구조라고 지칭되며, 이 경우 블록이 4 개의 1/4 사이즈의 블록들로 분할되거나 또는 분할되지 않는다. 도 3에서, 블록들은 정사각형 형상 서브블록들로만 분할된다. 그러나, HEVC WD4에 기재된 것들과 같은 다른 분할 기법들에서, 블록은 또한 변환 목적으로 직사각형 형상의 서브블록들로 분할될 수 있다.The partitioning scheme illustrated in FIG. 3 is referred to as a quadtree partitioning structure, in which case the block is divided into four 1/4 size blocks or not partitioned. In Fig. 3, blocks are divided only into square shaped sub-blocks. However, in other partitioning techniques such as those described in HEVC WD4, a block may also be partitioned into rectangular shaped sub-blocks for translation purposes.

도 4a 및 도 4b는 TU가 4 개의 비-정사각형 블록들로 분할되거나 또는 분할되지 않는 쿼드트리 분할 구조를 예시하는 개념도들이다. 도 4a에 예시된 바와 같이, TU가 변환 목적으로 4 개의 작은 비-정사각형 블록들로 구획될 수 있다. 게다가, 도 4b에 예시된 바와 같이, 비-정사각형 분할 구조는 또한 재귀적 (recursive) 일 수도 있다. 예를 들어, 도 4b에 예시된 바와 같이, 제 1 서브블록은 원본 블록의 1/16의 사이즈를 갖는 4 개의 더 작은 비-정사각형 블록들로 추가 구획될 수도 있다.Figs. 4A and 4B are conceptual diagrams illustrating a quadtree partition structure in which the TU is divided into four non-square blocks or not divided. As illustrated in FIG. 4A, the TU may be partitioned into four small non-square blocks for translation purposes. In addition, as illustrated in Figure 4B, the non-square partition structure may also be recursive. For example, as illustrated in FIG. 4B, the first sub-block may be further partitioned into four smaller non-square blocks having a size of 1/16 of the original block.

트리 분할 구조를 인코딩된 비디오 비트스트림에서 시그널링하기 위해, 변환 분할 플래그가 사용될 수도 있다. 각각의 블록에 대해, 블록이 추가 분할될 것인지를 나타내기 위해 변환 분할 플래그가 비디오 인코더에 의해 코딩될 수도 있다. 도 5는 쿼드트리 분할을 예시하는 레벨 도면이다. 도 5는 도 3에 예시된 쿼드트리 분할을 시그널링하는데 사용될 수도 있는 레벨 도면의 하나의 예를 도시한다. 따라서, 도 5는 분할 구조를 표현하는 대안적 방도를 제공한다. 도 5에 예시된 바와 같이, 상이한 분할 레벨들에서, 변환 분할 플래그는 다음과 같이 시그널링될 수 있다:In order to signal the tree segmentation structure in the encoded video bitstream, a conversion segmentation flag may be used. For each block, a translation segmentation flag may be coded by the video encoder to indicate whether the block is to be further segmented. 5 is a level diagram illustrating quad tree partitioning. FIG. 5 shows an example of a level diagram that may be used to signal the quad tree partition illustrated in FIG. Thus, Figure 5 provides an alternative strategy for representing a partitioned structure. As illustrated in FIG. 5, at the different division levels, the conversion division flag can be signaled as follows:

레벨 0: 1Level 0: 1

레벨 1: 0, 1, 0, 0Level 1: 0, 1, 0, 0

레벨 2: 0, 0, 0, 1Level 2: 0, 0, 0, 1

레벨 3: 0, 0, 0, 0Level 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은 루트 레벨 또는 상단 레벨이다.At level 0, the coding unit level, a flag of 1 is signaled because the transform is further divided. At level 1, only the second 1/4 size block is further divided, so flags 0, 1, 0, 0 are transmitted in the bit stream encoded by the video encoder. At level 2, since the other blocks are not further divided, only the second 1/4 size block needs to be further signaled by the video encoder. In the second 1/4 size block, only the fourth block is further divided so that the flags 0, 0, 0, 1 are transmitted by the video encoder at level 2. At level 3, there are no more blocks to be split, so flags 0, 0, 0, 0 are sent. For the sake of clarity, it should be noted that, in the present disclosure, a small level value means a high level (i.e., a level close to the root level) in the partitioned structure. As illustrated in Figures 3 and 5, level 0 is the root level or the top level.

플래그들을 분할하는 것 외에도, HEVC WD4는 변환 계수들 또는 변환 계수 레벨들의 블록이 임의의 0이 아닌 변환 계수들을 포함하는지를 나타내는 코딩된 블록 플래그 (CBF) 신택스 엘리먼트를 포함한다. 코딩된 블록 플래그 시그널링은 변환 블록 구조와 긴밀하게 연관되고, 비디오 인코더에 의해 하향식 계층적 방식으로 시그널링된다. 예를 들어, 높은 분할 레벨에 있는 코딩된 블록 플래그가 0인 경우, 그 비디오 컴포넌트에 대한 더 낮은 레벨들에서 코딩된 블록 플래그들의 추가의 시그널링은 없다. 이 경우, 대응하는 낮은 레벨의 코딩된 블록 플래그들은 모두 0이라고 유추된다. 다르게 말하면, 코딩된 블록 플래그가 분할의 특정한 레벨에서 코딩되는 경우, 더 낮은 레벨들에서의 코딩된 블록 플래그들은 현재 분할 레벨에서의 코딩된 블록 플래그가 0이 아닌 경우에만 필요하다.In addition to segmenting the flags, HEVC WD4 includes a coded block flag (CBF) syntax element indicating whether the block of transform coefficients or transform coefficient levels includes any non-zero transform coefficients. The coded block flag signaling is closely related to the transform block structure and is signaled in a top-down hierarchical manner by the video encoder. For example, if the coded block flag at the high partition level is zero, there is no further signaling of the coded block flags at the lower levels for that video component. In this case, the corresponding low level coded block flags are deduced to be all zeros. In other words, if the coded block flag is coded at a particular level of partitioning, the coded block flags at lower levels are only needed if the coded block flag at the current partition level is not zero.

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 중 어느 하나이다.According to HEVC WD4, for CU, its luma component (Y) and its chroma components (U and V) share the same quadtree partition structure for TU segmentation. This allows only one transformation split flag per signaling block to be signaled, and the flag is shared among the Y, U, and V components. However, as described above, under different color formats, the chroma components may have different sizes and shapes than the luma component. HEVC WD4 defines transforms of different shapes and sizes. However, not all sizes and shapes of transforms are defined and available for coding in HEVC WD4. In HEVC WD4, the following sizes of square shape transforms are defined as available for coding: 4x4, 8x8, 16x16 and 32x32. For non-square shape transforms, the available transform sizes include 32x8, 8x32, 16x4, and 4x16. These transforms have a shape that is either a rectangle having a height four times the width, or four times the height, or a square. In other words, the aspect ratio of the rectangular transform sizes is either 1 to 4 or 4 to 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 샘플 포맷에 따라 포맷된 소스 비디오를 코딩하기 위한 세부사항들을 제공하지 않는 비디오 코딩에 대한 메인 프로파일을 기재한다는 것에 주의해야 한다.6 is a conceptual diagram illustrating quad tree partitioning of an example applied to a 16x16 CU formatted according to a 4: 2: 2 sample format. As illustrated in FIG. 6, the segmentation results in TUs of sizes 8x8 and 4x4 for the luma component and 4x8, 2x4 corresponding TUs for each chroma component. HEVC WD4 defines transforms for 8x8 and 4x4 sizes, but HEVC does not define transforms for 4x8 and 2x4. In addition, for video formatted according to the 4: 2: 2 sample format, as illustrated in Figures 1B and 2, the chroma block has a rectangular shape whose height is twice its width. According to HEVC WD4 there are no transforms available with the desired block shape, i.e. with an aspect ratio of 1: 2 to 2: 1. Thus, HEVC WD4 fails to provide TU shapes and sizes corresponding to the shape and sizes of the chroma blocks formatted according to the 4: 2: 2 sample format. The HEVC specification drafts describe a video that does not provide details for coding source video in which the sample format of the source video data is a 4: 2: 0 sample format and formatted according to the 4: 2: 2 or 4: 4: It should be noted that the main profile for coding is described.

HEVC WD4에 기재된 TU 구획화 기법들의 특성들의 측면에서, 본 개시물은 4:2:2 샘플 포맷의 경우에 루마 및 크로마 성분들의 샘플들 사이의 TU 구획화의 동기화에 대한 기법들을 설명한다. 일부 예들에서, 본원에서 설명되는 크로마 성분들에 대한 TU 구획화 기법들은 HEVC WD4에서 정의된 현재 이용가능한 변환들을 사용할 수도 있다. 이처럼, 본원에서 설명되는 구획화 기법들의 일부는 부가적인 변환 형상들 및 사이즈를 HEVC 표준 코딩 프로세스에 추가할 필요 없이 HEVC 표준 코딩 프로세스에 통합될 수도 있다. 본원에서 설명되는 하나의 예에서, 4:2:2 샘플 포맷에 따라 포맷된 CU의 경우, 크로마 성분들에 대한 TU들은 그것들이 루마 성분에 대한 대응하는 TU들과 동일한 애스팩트 비들을 가지도록 구획될 수도 있다. 게다가, 본 개시물은 4:2:2 샘플 포맷의 경우에 코딩된 블록 플래그 코딩에 대한 기법들을 제공한다. 본 개시물에 따르는 변환 단위 구획화 기법들의 예들은 아래에서 더 상세히 설명된다.In view of the characteristics of TU segmentation techniques described in HEVC WD4, the present disclosure describes techniques for synchronization of TU segmentation between samples of luma and chroma components in the case of a 4: 2: 2 sample format. In some instances, the TU segmentation techniques for the chroma components described herein may use currently available transforms defined in HEVC WD4. As such, some of the segmentation techniques described herein may be incorporated into the HEVC standard coding process without the need to add additional transform shapes and sizes to the HEVC standard coding process. In one example described herein, in the case of a CU formatted according to the 4: 2: 2 sample format, the TUs for the chroma components are partitioned so that they have the same aspect ratio as the corresponding TUs for the luma component . In addition, the present disclosure provides techniques for coded block flag coding in the case of a 4: 2: 2 sample format. Examples of conversion unit segmentation techniques in accordance with the present disclosure are described in further detail below.

도 7은 본 개시물에서 설명되는 기법들을 활용할 수도 있는 일 예의 비디오 인코딩 및 디코딩 시스템 (10) 을 도시하는 블록도이다. 특히, 비디오 코딩 시스템 (10) 은 4:2:2 샘플 포맷이 활용되는 경우에 루마 및 크로마 성분들의 샘플들 사이에서 TU 구획화를 동기화하는 기법들을 수행하도록 구성될 수도 있다. 도 7에 예시된 바와 같이, 시스템 (10) 은 목적지 디바이스 (14) 에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 생성하는 소스 디바이스 (12) 를 구비한다. 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 데스크톱 컴퓨터들, 노트북 (즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 이른바 "스마트" 폰들과 같은 전화기 핸드셋들, 이른바 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함하는 매우 다양한 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 무선 통신을 위해 장비될 수도 있다.FIG. 7 is a block diagram illustrating an example video encoding and decoding system 10 that may utilize techniques described in this disclosure. In particular, video coding system 10 may be configured to perform techniques to synchronize TU segmentation between samples of luma and chroma components when a 4: 2: 2 sample format is utilized. As illustrated in Figure 7, the system 10 includes a source device 12 that generates encoded video data to be decoded later by the destination device 14. [ The source device 12 and the destination device 14 may be any type of device such as desktop computers, laptop computers (e.g., laptop computers), tablet computers, set top boxes, telephone handsets such as so- , Televisions, cameras, display devices, digital media players, video gaming consoles, video streaming devices, and the like. In some cases, the source device 12 and the destination device 14 may be equipped for wireless communication.

목적지 디바이스 (14) 는 디코딩될 인코딩된 비디오 데이터를 링크 (16) 를 통해 수신할 수도 있다. 링크 (16) 는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로 인코딩된 비디오 데이터를 이동시킬 수 있는 임의의 유형의 매체 또는 디바이스를 포함할 수도 있다. 하나의 예에서, 링크 (16) 는 소스 디바이스 (12) 가 인코딩된 비디오 데이터를 목적지 디바이스 (14) 로 직접 실시간으로 송신하는 것을 가능하게 하는 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 통신 표준, 이를테면 무선 통신 프로토콜에 따라 변조되고 목적지 디바이스 (14) 에 송신될 수도 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 이를테면 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들을 포함할 수도 있다. 통신 매체는 패킷 기반 네트워크, 이를테면 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스 (12) 로부터 목적지 디바이스 (14) 로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.The destination device 14 may receive the encoded video data to be decoded via the link 16. [ The link 16 may include any type of media or device capable of moving video data encoded from the source device 12 to the destination device 14. In one example, the link 16 may include a communication medium that enables the source device 12 to transmit the encoded video data directly to the destination device 14 in real time. The encoded video data may be modulated in accordance with a communication standard, such as a wireless communication protocol, and transmitted to the destination device 14. The communication medium may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. The communication medium may form part of a packet based network, such as a global network such as a local area network, a wide area network, or the Internet. The communication medium may include routers, switches, base stations, or any other equipment that may be useful for facilitating communication from the source device 12 to the destination device 14. [

대안으로, 인코딩된 데이터는 출력 인터페이스 (22) 로부터 저장 디바이스 (32) 로 출력될 수도 있다. 마찬가지로, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스 (32) 로부터 액세스될 수도 있다. 저장 디바이스 (32) 는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산형 또는 국소적으로 액세스되는 데이터 저장 매체들 중 임의의 것을 포함할 수도 있다. 추가의 예에서, 저장 디바이스 (32) 는 소스 디바이스 (12) 에 의해 생성된 인코딩된 비디오를 유지할 수도 있는 파일 서버 또는 다른 중간 저장 디바이스에 해당할 수도 있다. 목적지 디바이스 (14) 는 저장 디바이스 (32) 로부터의 저장된 비디오 데이터에 스트리밍 또는 다운로드를 통해 액세스할 수도 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스 (14) 에 송신할 수 있는 임의의 유형의 서버일 수도 있다. 예의 파일 서버들은 웹 서버 (예컨대, 웹사이트용), FTP 서버, 네트워크 부속 스토리지 (network attached storage; NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스 (14) 는 인터넷 접속을 포함하여 임의의 표준 데이터 접속을 통해 인코딩된 비디오 데이터에 액세스할 수도 있다. 이는 무선 채널 (예컨대, Wi-Fi 접속), 유선 접속 (예컨대, DSL, 케이블 모뎀 등), 또는 파일 서버 상에 저장된 인코딩된 비디오 데이터에 액세스하기에 적합한 양쪽 모두의 조합을 포함할 수도 있다. 저장 디바이스 (32) 로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 양쪽 모두의 조합일 수도 있다.Alternatively, the encoded data may be output to the storage device 32 from the output interface 22. Likewise, the encoded data may be accessed from the storage device 32 by an input interface. The storage device 32 may be a hard drive, Blu-ray discs, DVDs, CD-ROMs, flash memory, volatile or nonvolatile memory, or any other suitable digital storage media for storing encoded video data Or any of a variety of distributed or locally accessed data storage media, such as a computer readable medium. In a further example, the storage device 32 may correspond to a file server or other intermediate storage device that may maintain the encoded video generated by the source device 12. The destination device 14 may access the stored video data from the storage device 32 through streaming or downloading. The file server may be any type of server capable of storing encoded video data and transmitting the encoded video data to the destination device 14. Examples of file servers include a web server (e.g., for a web site), an FTP server, network attached storage (NAS) devices, or a local disk drive. The destination device 14 may access video data encoded over any standard data connection, including an Internet connection. This may include a combination of both suitable for accessing a wireless channel (e.g., a Wi-Fi connection), a wired connection (e.g., DSL, cable modem, etc.), or encoded video data stored on a file server. The transmission of the encoded video data from the storage device 32 may be a streaming transmission, a download transmission, or a combination of both.

본 개시물의 기법들은 무선 애플리케이션들 또는 설정 (setting) 들로 반드시 제한되지는 않는다. 그 기법들은, 다양한 멀티미디어 애플리케이션들, 이를테면 OTA (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, 예컨대, 인터넷을 통한 스트리밍 비디오 송신들, 데이터 저장 매체 상의 저장을 위한 디지털 비디오의 인코딩, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들 중 임의의 것의 지원 하의 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템 (10) 은 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 및/또는 화상 통화와 같은 애플리케이션들을 지원하기 위해 단방향 또는 양방향 비디오 송신을 지원하도록 구성될 수도 있다.The techniques of the present disclosure are not necessarily limited to wireless applications or settings. The techniques may be used for various multimedia applications, such as over-the-air television broadcasts, cable television transmissions, satellite television transmissions, e.g., streaming video transmissions over the Internet, Encoding of digital video, decoding of digital video stored on a data storage medium, or video coding with support of any of the other applications. In some instances, the system 10 may be configured to support unidirectional or bidirectional video transmission to support applications such as video streaming, video playback, video broadcasting, and / or video calling.

도 7의 예에서, 소스 디바이스 (12) 는 비디오 소스 (18), 비디오 인코더 (20) 및 출력 인터페이스 (22) 를 구비한다. 일부 경우들에서, 출력 인터페이스 (22) 는 변조기/복조기 (모뎀) 및/또는 송신기를 구비할 수도 있다. 비디오 소스 (18) 는 비디오 캡처 디바이스, 예컨대, 비디오 카메라, 이전에 캡처된 비디오를 담고 있는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오를 수신하는 비디오 피드 인터페이스, 및/또는 컴퓨터 그래픽스 데이터를 소스 비디오로서 생성하는 컴퓨터 그래픽 시스템과 같은 소스, 또는 그런 소스들의 조합을 포함할 수도 있다. 하나의 예로서, 비디오 소스 (18) 가 비디오 카메라이면, 소스 디바이스 (12) 와 목적지 디바이스 (14) 는 이른바 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 본 개시물에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다.7, the source device 12 has a video source 18, a video encoder 20, and an output interface 22. In some cases, the output interface 22 may comprise a modulator / demodulator (modem) and / or a transmitter. Video source 18 may include a video capture device, e.g., a video camera, a video archive containing previously captured video, a video feed interface for receiving video from a video content provider, and / or computer graphics data as source video A computer graphics system, or a combination of such sources. As an example, if video source 18 is a video camera, source device 12 and destination device 14 may form so-called camera phones or video phones. However, the techniques described in this disclosure may generally be applicable to video coding and may be applied to wireless and / or wireline applications.

비디오 인코더 (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) 에 저장될 수도 있다.Video encoder 20 encodes the captured, pre-captured, or computer generated video received from video source 18. The captured, pre-captured, or computer generated video may be formatted according to any of the sample formats described above including 4: 2: 0, 4: 2: 2 or 4: 4: 4 sample formats . Video encoder 20 may perform video coding on video formatted according to any of the 4: 2: 0, 4: 2: 2, or 4: 4: 4 sample formats. In some cases, the video encoder 20 may upsample or downsample the captured, pre-captured, or computer generated video as part of the coding process. For example, the captured video may be formatted according to a 4: 4: 4 sample format and the video encoder 20 may downsample the captured video in 4: 2: 2 format and video encode . ≪ / RTI > The encoded video data may be transmitted directly to the destination device 14 via the output interface 22 of the source device 20. The encoded video data may also (or alternatively) be stored in the storage device 32 for later access for decoding and / or playback by the destination device 14 or other devices.

목적지 디바이스 (14) 는 입력 인터페이스 (28), 비디오 디코더 (30), 및 디스플레이 디바이스 (32) 를 구비한다. 일부 경우들에서, 입력 인터페이스 (28) 는 수신기 및/또는 모뎀을 구비할 수도 있다. 목적지 디바이스 (14) 의 입력 인터페이스 (28) 는 링크 (16) 를 통해 인코딩된 비디오 데이터를 수신한다. 링크 (16) 를 통해 통신되거나 또는 저장 디바이스 (32) 상에 제공된 인코딩된 비디오 데이터는, 비디오 데이터의 디코딩에서의, 비디오 디코더, 이를테면 비디오 디코더 (30) 에 의한 사용을 위해 비디오 인코더 (20) 에 의해 생성된 다양한 신택스 엘리먼트들을 포함할 수도 있다. 이러한 신택스 엘리먼트들은 통신 매체 상에서 송신되는, 저장 매체 상에 저장되는, 또는 파일 서버에 저장되는 인코딩된 비디오 데이터에 포함될 수도 있다.The destination device 14 includes an input interface 28, a video decoder 30, and a display device 32. In some cases, the input interface 28 may comprise a receiver and / or a modem. The input interface 28 of the destination device 14 receives the video data encoded over the link 16. Encoded video data, communicated over link 16 or provided on storage device 32, is coupled to video encoder 20 for use by a video decoder, such as video decoder 30, in decoding video data. Lt; RTI ID = 0.0 > and / or < / RTI > These syntax elements may be included in encoded video data that is transmitted on a communication medium, stored on a storage medium, or stored in a file server.

디스플레이 디바이스 (32) 는 목적지 디바이스 (14) 와 통합되거나, 또는 그것 외부에 있을 수도 있다. 일부 예들에서, 목적지 디바이스 (14) 는 통합형 디스플레이 디바이스를 포함할 수도 있고 또한 외부 디스플레이 디바이스와 인터페이싱하도록 구성될 수도 있다. 다른 예들에서, 목적지 디바이스 (14) 는 디스플레이 디바이스일 수도 있다. 일반적으로, 디스플레이 디바이스 (32) 는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 유형의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 임의의 것을 포함할 수도 있다.The display device 32 may be integrated with, or external to, the destination device 14. In some examples, the destination device 14 may include an integrated display device and may also be configured to interface with an external display device. In other examples, the destination device 14 may be a display device. In general, the display device 32 may display decoded video data to a user and may be any of a variety of display devices such as a liquid crystal display (LCD), plasma display, organic light emitting diode (OLED) display, or other type of display device May be included.

비디오 인코더 (20) 와 비디오 디코더 (30) 는 비디오 압축 표준, 이를테면 현재 개발 중인 고 효율 비디오 코딩 (HEVC) 표준에 따라 동작할 수도 있고 일반적으로 현재의 HEVC 테스트 모델 (HM) 또는 미래의 HM을 준수할 수도 있다. 대안으로, 비디오 인코더 (20) 와 비디오 디코더 (30) 는, 다르게는 MPEG-4, 파트 10, 고급 비디오 코딩 (AVC) 이라고 지칭되는 ITU-T H.264 표준과 같은 산업 표준들 또는 다른 독점적 표준들, 또는 그런 표준들의 개정들 또는 확장들에 따라 동작할 수도 있다. 본 개시물의 기법들은, 그러나, 임의의 특정 코딩 표준으로 제한되지 않는다. 비디오 압축 표준들의 다른 예들은 MPEG-2와 ITU-T H.263을 포함한다.The video encoder 20 and the video decoder 30 may operate in accordance with a video compression standard, such as the High Efficiency Video Coding (HEVC) standard currently under development, and may be generally compliant with the current HEVC test model (HM) You may. Alternatively, the video encoder 20 and the video decoder 30 may be implemented in accordance with industry standards such as the ITU-T H.264 standard, otherwise referred to as MPEG-4, Part 10, Advanced Video Coding (AVC) , Or modifications or extensions to such standards. The techniques of this disclosure, however, are not limited to any particular coding standard. Other examples of video compression standards include MPEG-2 and ITU-T H.263.

비록 도 7에 도시되지 않았지만, 일부 양태들에서, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 각각이 오디오 인코더 및 디코더와 통합될 수도 있고, 적절한 MUX-DEMUX 유닛들, 또는 다른 하드웨어 및 소프트웨어를 포함하여, 공통 데이터 스트림 또는 개별 데이터 스트림들에서의 오디오 및 비디오 양쪽 모두의 인코딩을 핸들링할 수도 있다. 적용가능하다면, 일부 예들에서, MUX-DEMUX 유닛들은 ITU H.223 멀티플렉서 프로토콜, 또는 사용자 데이터그램 프로토콜 (UDP) 과 같은 다른 프로토콜들을 준수할 수도 있다.Although not shown in FIG. 7, in some aspects, video encoder 20 and video decoder 30 may each be integrated with an audio encoder and decoder, and may include appropriate MUX-DEMUX units, or other hardware and software And may handle the encoding of both audio and video in the common data stream or in separate data streams. If applicable, in some instances, the MUX-DEMUX units may comply with other protocols such as the ITU H.223 multiplexer protocol, or the User Datagram Protocol (UDP).

비디오 인코더 (20) 와 비디오 디코더 (30) 각각은 다양한 적합한 인코더 회로, 이를테면 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSPs), 주문형 집적회로들 (ASICs), 필드 프로그램가능 게이트 어레이들 (FPGAs), 개별 로직, 소프트웨어, 하드웨어, 펌웨어 또는 그것들의 임의의 조합 중 임의의 것으로서 구현될 수도 있다. 그 기법들이 소프트웨어에서 부분적으로 구현되는 경우, 디바이스는 본 개시물의 기법들을 수행하기 위해, 적합한 비일시적 컴퓨터 판독가능 매체 내에 소프트웨어에 대한 명령을 저장하고 하나 이상의 프로세서들을 사용하여 하드웨어에서 그 명령들을 실행할 수도 있다. 비디오 인코더 (20) 및 비디오 디코더 (30) 의 각각은 하나 이상의 인코더들 또는 디코더들 내에 구비될 수도 있고, 그것들 중 어느 하나는 결합형 인코더/디코더 (CODEC) 의 부분으로서 개별 디바이스 내에 통합될 수도 있다.Each of the video encoder 20 and the video decoder 30 may comprise various suitable encoder circuits such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) , Discrete logic, software, hardware, firmware, or any combination thereof. When the techniques are partially implemented in software, the device may store instructions for the software in a suitable non-volatile computer-readable medium and execute those instructions in hardware using one or more processors to perform the techniques of the present disclosure have. Each of the video encoder 20 and the video decoder 30 may be provided in one or more encoders or decoders, and either one of them may be integrated in a separate device as part of a combined encoder / decoder (CODEC) .

위에서 설명된 바와 같이, HEVC WD4에서, 비디오 프레임 또는 화상이 루마 및 크로마 샘플들 양쪽 모두를 포함하는 트리블록들 또는 최대 코딩 단위들 (LCU) 의 시퀀스로 분할될 수도 있다. LCU들은 연관된 PU들 및 TU들을 포함하는 CU들로 재귀적으로 분할될 수도 있다. 일부 예들에서, CU의 사이즈는 8x8 샘플들로부터 최대 64x64 샘플들 또는 그 이상을 갖는 트리블록의 사이즈까지의 범위일 수도 있다. 게다가, HEVC WD4에서, 비디오 프레임 또는 화상은, 슬라이스가 다수의 연속적인 LCU들을 코딩 순서로 포함하는 하나 이상의 슬라이스들로 구획될 수도 있다. 비디오 프레임은 슬라이스에 포함된 CU들에 연관된 코딩 모드들에 기초하여 슬라이스들로 구획될 수도 있다. 예를 들어, 슬라이스는, 슬라이스에 포함된 모든 CU들이 스킵 모드, 직접 모드, 인트라 예측 모드, 또는 인터 예측 모드와 같은 공통 코딩 모드를 공유하도록 정의될 수도 있다.As described above, in a HEVC WD4, a video frame or picture may be divided into a sequence of triblocks or maximum coding units (LCU) including both luma and chroma samples. The LCUs may be recursively partitioned into CUs containing associated PUs and TUs. In some instances, the size of the CU may range from 8x8 samples to the size of the triblock with up to 64x64 samples or more. In addition, in HEVC WD4, a video frame or picture may be partitioned into one or more slices where the slice contains a plurality of consecutive LCUs in the coding order. The video frame may be partitioned into slices based on the coding modes associated with the CUs included in the slice. For example, a slice may be defined such that all the CUs included in the slice share a common coding mode, such as a skip mode, a direct mode, an intra prediction mode, or an inter prediction mode.

일련의 비디오 프레임들 또는 화상들은 화상들의 그룹의 코딩된 비디오 시퀀스의 부분으로서 코딩될 수도 있다. 화상들의 그룹 (GOP) 은 일반적으로 일련의 하나 이상의 비디오 화상들을 포함한다. GOP는 GOP에 포함된 다수의 화상들을 서술하는 신택스 데이터를 GOP의 헤더, 그 화상들 중 하나 이상의 화상들의 헤더, 또는 다른 곳에 포함할 수도 있다. 화상의 각각의 슬라이스는 개별 슬라이스에 대한 인코딩 모드를 서술하는 슬라이스 신택스 데이터를 포함할 수도 있다. 본원에서 설명된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 인코딩하기 위하여 개개의 비디오 슬라이스들 내의 비디오 블록들에 대해 통상 동작한다. 그러나, 비디오 인코더 (20) 는 또한 더 높은 레벨의 비디오 코딩 프로세스들, 이를테면 비디오 프레임을 슬라이스들로 구획하는 것 및/또는 GOP 레벨 또는 슬라이스 레벨 신택스를 생성하는 것을 수행할 수도 있다.A series of video frames or pictures may be coded as part of a coded video sequence of a group of pictures. A group of pictures (GOP) generally comprises a series of one or more video pictures. The GOP may include syntax data describing a plurality of pictures included in the GOP in the header of the GOP, the header of one or more pictures of the pictures, or elsewhere. Each slice of an image may include slice syntax data describing an encoding mode for an individual slice. As described herein, video encoder 20 typically operates on video blocks within individual video slices to encode video data. However, the video encoder 20 may also perform higher level video coding processes, such as segmenting the video frame into slices and / or generating a GOP level or slice level syntax.

위에서 설명된 바와 같이, 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 구조들에 따라 비디오 데이터를 인코딩하도록 구성될 수도 있다.As described above, the syntax data associated with CUs may describe the partitioning of CUs into one or more PUs. The syntax data associated with the CU may also describe, for example, the partitioning of the CU into one or more TUs according to a quadtree. In some instances, the PU or TU may be square or non-square in shape. Generally, the PU contains data relating to the prediction process. For example, if the PU is intra mode encoded, the PU may include data describing the intra prediction mode for the PU. As another example, if the PU is inter mode encoded, the PU may include data defining motion information for the PU. The data defining the motion information for the PU includes, for example, a horizontal component, a motion vector having a vertical component, a resolution (for example, 1/4 pixel precision or 1/8 pixel precision), a reference picture list For example, the prediction direction indicating the list 0, the list 1, or the list C) and the reference image index indicating the reference image indicated by the motion vector in the reference image list may be described. Therefore, a PU may be considered as a basic unit carrying information related to the forecasting process. In one example, video encoder 20 may be configured to encode video data according to PU structures supported by the HEVC test model (HM).

일 예로서, 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를 의미한다.As an example, HM supports prediction in various PU sizes. Assuming that the size of a particular CU is 2Nx2N, HM supports intra prediction in PU sizes of 2Nx2N or NxN and inter prediction in symmetric PU sizes of 2Nx2N, 2NxN, Nx2N, or NxN. HM also supports asymmetric partitioning for inter prediction in PU sizes of 2NxnU, 2NxnD, nLx2N, and nRx2N. In asymmetric segmentation, one direction of the CU is not partitioned, while the other direction is partitioned into 25% and 75%. The portion of the CU corresponding to the 25% segment is represented by "n" followed by an indication of "Up", "Down", "Left", or "Right". Thus, for example, "2NxnU" means 2Nx2N CUs horizontally partitioned into 2Nx0.5N PUs at the top and 2Nx1.5N PUs at the bottom.

위에서 설명된 바와 같이, TU는 변환 및 양자화 프로세스들을 위해 사용되는 기본 단위이다. 하나 이상의 PU들을 갖는 주어진 CU는 또한 하나 이상의 변환 단위들 (TUs) 을 포함할 수도 있다. 게다가, HEVC WD4에서 TU들은, 항상 그런 것은 아닐 수도 있지만, 구획된 LCU에 대해 정의된 주어진 CU 내의 PU들의 사이즈에 기초하여 통상 사이즈가 정해질 수도 있다. TU들은 통상 PU들과 동일한 사이즈이거나 또는 그것들보다 작을 수도 있다. 일부 예들에서, CU에 대응하는 잔차 샘플들은 "잔차 쿼드 트리 (residual quad tree)" (RQT) 로서 알려진 쿼드트리 구조를 이용하여 작은 단위들로 세분될 수도 있다. RQT의 리프 노드들은 변환 단위들 (TUs) 이라고 지칭될 수도 있다.As described above, TU is a basic unit used for transform and quantization processes. A given CU with one or more PUs may also include one or more conversion units (TUs). In addition, in HEVC WD4 the TUs may not be always, but may be sized normally based on the size of the PUs in a given CU defined for the partitioned LCU. The TUs may be the same size as or typically smaller than the PUs. In some instances, the residual samples corresponding to the CU may be subdivided into smaller units using a quadtree structure known as a "residual quad tree" (RQT). The leaf nodes of the RQT may be referred to as translation units (TUs).

인트라 또는 인터 예측에 뒤이어, 비디오 인코더 (20) 는 그 PU에 대응하는 잔차 비디오 데이터를 계산할 수도 있다. 잔차 값들은 코딩될 원본 블록의 화소 값들 및 인트라 예측 또는 인터 예측에 의해 형성된 예측 블록의 화소 값들 사이의 차이들을 나타내는 화소 차이 값들을 포함한다. 예측 단위에서의 잔차 비디오 데이터, 즉, 잔차 화소 차이 값들은, 변환 계수들을 생성하기 위해 TU 구조에 따라 변환 계수들로 변환될 수도 있다. 그런고로, 잔차 데이터는 화소 도메인에서부터 변환 도메인으로 변환될 수도 있다.Following intra or inter prediction, the video encoder 20 may calculate residual video data corresponding to that PU. The residual values include pixel difference values indicating differences between the pixel values of the original block to be coded and the pixel values of the prediction block formed by intra prediction or inter prediction. The residual video data in the prediction unit, i.e. residual pixel difference values, may be transformed into transform coefficients according to the TU structure to generate transform coefficients. Therefore, the residual data may be transformed from the pixel domain to the transform domain.

변환 계수들을 생성하는 임의의 변환들에 뒤따라, 비디오 인코더 (20) 는 변환 계수들의 양자화를 수행할 수도 있다. 양자화는 변환 계수들이 그 계수들을 나타내는데 이용된 데이터의 양을 가능한 한 줄이도록 양자화되어서, 추가의 압축을 제공하는 프로세스를 일반적으로 말한다. 양자화 프로세스는 계수들의 일부 또는 전부에 연관된 비트 깊이를 감소시킬 수도 있다. 예를 들어, n-비트 값은 양자화 동안에 m-비트 값으로 내림될 (rounded down) 수도 있으며, 여기서 n m보다 크다.Following any transforms that produce transform coefficients, the video encoder 20 may perform quantization of the transform coefficients. Quantization is generally referred to as a process in which transform coefficients are quantized so as to reduce the amount of data used to represent them, thereby providing additional compression. The quantization process may reduce the bit depth associated with some or all of the coefficients. For example, an n -bit value may be rounded down to an m -bit value during quantization, where n is greater than 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) 에 의한 사용을 위해 인코딩된 비디오 데이터에 연관된 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.In some instances, the video encoder 20 may scan the quantized transform coefficients utilizing a predefined scan order to produce a serialized vector that may be entropy encoded. In other examples, video encoder 20 may perform adaptive scans. After scanning the quantized transform coefficients to form a one-dimensional vector, the video encoder 20 may perform a context adaptive variable length coding (CAVLC), a context adaptive binary arithmetic based context adaptive binary arithmetic coding (SBAC), or Probability Interval Partitioning Entropy (PIPE) coding or other entropy encoding methodology, a one-dimensional The vector may be entropy encoded. The video encoder 20 may also entropy encode the syntax elements associated with the encoded video data for use by the video decoder 30 in decoding the video data.

CABAC를 수행하기 위해, 비디오 인코더 (20) 는 콘텍스트 모델 내의 콘텍스트를 송신될 심볼에 할당할 수도 있다. 그 콘텍스트는, 예를 들어, 심볼의 이웃 값들이 영이 아닌지의 여부에 관련될 수도 있다. CAVLC를 수행하기 위해, 비디오 인코더 (20) 는 송신될 심볼에 대한 가변 길이 코드를 선택할 수도 있다. VLC에서의 코드워드들은 상대적으로 더 짧은 코드들이 고확률 (more probable) 심볼들에 대응하는 반면, 더 긴 코드들은 저확률 (less probable) 심볼들에 대응하도록 구성될 수도 있다. 이런 식으로, VLC의 사용은, 예를 들어, 송신될 각각의 심볼에 대해 동일 길이 코드워드들을 이용하는 것보다, 비트 절약을 달성할 수도 있다. 확률 결정은 심볼에 할당된 콘텍스트에 기초할 수도 있다.To perform CABAC, the video encoder 20 may assign a context in the context model to a symbol to be transmitted. The context may be related, for example, to whether neighbor values of the symbol are non-zero. To perform CAVLC, the video encoder 20 may select a variable length code for the symbol to be transmitted. Code words in a VLC may be configured such that relatively shorter codes correspond to more probable symbols whereas longer codes correspond to less probable symbols. In this way, the use of VLC may achieve bit savings, for example, rather than using the same length codewords for each symbol to be transmitted. The probability determination may be based on the context assigned to the symbol.

위에서 설명된 바와 같이, HEVC의 메인 프로파일에서 설명되는 TU 분할 구조들은 4:2:2 샘플 포맷에 따라 포맷된 비디오 데이터에 적용되는 경우에 다양한 단점들을 가진다. HEVC의 메인 프로파일에 기재된 TU 분할 구조들에 따라 비디오 데이터를 코딩하도록 구성된 것 외에도, 비디오 인코더 (20) 및 비디오 디코더 (30) 는 본원에서 설명되는 TU 구획화 기법들을 사용하여 비디오 데이터를 코딩하도록 구성될 수도 있다.As described above, the TU split structures described in the main profile of the HEVC have various drawbacks when applied to video data formatted according to the 4: 2: 2 sample format. In addition to being configured to code video data according to the TU segmentation structures described in the main profile of the HEVC, the video encoder 20 and the video decoder 30 may be configured to code video data using the TU segmentation techniques described herein It is possible.

하나의 예에서, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 4:2:2 샘플 포맷에 따라 포맷된 비디오에 포함된 각각의 크로마 성분의 블록을 상단 크로마 서브블록 및 하단 크로마 서브블록으로 구획하도록 구성될 수도 있다. 하나의 예에서, 주어진 크로마 성분의 상단 및 하단 서브블록들의 각각은 정사각형일 수도 있다. 게다가, 2 개의 크로마 서브블록들의 양쪽 모두의 변환 단위 구획화는 루마 성분의 구획화와 동기화될 수도 있다. 이런 방식으로, 일부 경우들에서, 크로마 성분의 변환 단위는 비디오 데이터가 4:2:2 샘플 포맷에 따라 포맷된 경우에 루마 성분의 대응하는 변환 단위와 동일한 애스팩트 비를 가지도록 구획될 수도 있다.In one example, the video encoder 20 and the video decoder 30 partition the block of each chroma component contained in the video formatted according to the 4: 2: 2 sample format into an upper chroma sub-block and a lower chroma sub- . In one example, each of the upper and lower sub-blocks of a given chroma component may be square. In addition, the conversion unit partitioning of both of the two chroma subblocks may be synchronized with the partitioning of the luma components. In this way, in some cases, the conversion unit of the chroma component may be partitioned to have the same aspect ratio as the corresponding conversion unit of the luma component when the video data is formatted according to the 4: 2: 2 sample format .

도 8a 내지 도 8d는 4:2:2 샘플 포맷에 따라 포맷된 비디오 블록들에 대한 변환 단위 구획화의 상이한 경우들을 예시한다. 도 8a 내지 도 8d의 각각에서 크로마 성분들은 루마 성분에 기초한 임의의 구획화 전에 상단 및 하단 서브블록들로 먼저 구획화될 수도 있다. 크로마 성분들을 상단 및 하단 서브블록들로 구획하는 것에 의해, 크로마 성분들이 상단 및 하단 서브블록들로 먼저 구획화되지 않는 경우와 비교할 때 대안적 TU 형상들 및 사이즈들이 크로마 성분들에 대해 생성될 수도 있다.Figures 8A-8D illustrate different cases of conversion unit segmentation for video blocks formatted according to the 4: 2: 2 sample format. In each of Figures 8A-8D, chroma components may be first partitioned into upper and lower subblocks before any partitioning based on luma components. By partitioning chroma components into upper and lower subblocks, alternative TU shapes and sizes may be generated for chroma components as compared to the case where chroma components are not previously partitioned into upper and lower subblocks .

도 8a 내지 도 8d에서의 비디오 블록들은 다음 사이즈들 4x4, 8x8, 16x16, 32x32, 및 64x64 중 임의의 것의 비디오 블록들 또는 CU들에 대응할 수도 있다. 대체로, 크로마 성분을 상단 및 하단 서브블록들로 구획하는 것에 의해, 크로마 성분이 상단 및 하단 서브블록들로 구획되지 않은 경우에 비교하여 2 배의 TU들이 크로마 성분에 대해 생성된다. 게다가, 크로마 성분을 상단 및 하단 서브블록들로 구획하는 것에 의해, 크로마 성분이 상단 및 하단 서브블록들로 구획되지 않는 경우와 비교해 볼 때 TU의 수직 또는 수평 치수가 2에 의해 나누어진 TU들이 생성될 수도 있다. 크로마 성분들이 상단 및 하단 서브블록들로 구획되는 경우에 CU를 TU들로 구획하는 일부 특정 경우들은 아래에서 상세히 설명된다. 그러나 간결함을 위해, 크로마 성분들을 상단 및 하단 서브블록들로 구획하는 것으로부터 도출될 수도 있는 모든 가능한 TU 구획 조합들이 상세히 설명되지 않지만, 도 8a 내지 도 8d에 관해 설명된 구획화 기법들은 분할의 다양한 레벨들에서 적용될 수도 있다는 것에 주의해야 한다.The video blocks in Figures 8A-8D may correspond to video blocks or CUs of any of the following sizes 4x4, 8x8, 16x16, 32x32, and 64x64. In general, by partitioning the chroma component into upper and lower subblocks, twice as many TUs are generated for the chroma component as compared to when the chroma component is not partitioned into upper and lower subblocks. In addition, by partitioning the chroma component into upper and lower subblocks, TUs whose vertical or horizontal dimension is divided by 2 are generated when the chroma component is not partitioned into upper and lower subblocks . Some specific cases for partitioning a CU into TUs when chroma components are partitioned into upper and lower subblocks are described in detail below. However, for brevity, not all possible TU segment combinations that may be derived from partitioning chroma components into upper and lower subblocks are described in detail, but the segmentation techniques described with respect to FIGS. 8A- ≪ / RTI >

도 8a는 크로마 성분들이 상단 및 하단 서브블록들로 구획되고 루마 성분에 기초한 부가적인 구획화는 적용되지 않는 구획화 구조에 기초한 예의 변환 단위들을 도시한다. 도 8a에 예시된 바와 같이, 루마 블록은 추가 분할되지 않고 대응하는 크로마 블록들의 각각은 상단 서브블록 및 하단 서브블록으로 구획된다. 도 8a에 도시된 예에서, 크로마 블록들이 상단 서브블록 및 하단 서브블록으로 구획된 후의 크로마 성분들을 추가 구획하는 결정은 루마 성분의 구획화에 기초할 수도 있다. 따라서, 도 8a에 도시된 예에서, 크로마 성분들의 각각은 추가 분할되지 않을 수도 있는데 루마 블록이 추가 분할되지 않기 때문이다.FIG. 8A shows example conversion units based on a zoning structure in which chroma components are partitioned into upper and lower sub-blocks and additional partitioning based on luma components is not applied. As illustrated in Fig. 8A, the luma block is not further divided, and each of the corresponding chroma blocks is partitioned into an upper sub-block and a lower sub-block. In the example shown in FIG. 8A, the decision to further partition the chroma components after the chroma blocks are partitioned into the upper sub-block and the lower sub-block may be based on the partitioning of the luma component. Thus, in the example shown in FIG. 8A, each of the chroma components may not be further partitioned because the luma block is not further partitioned.

하나의 예에서, 도 8a에 도시된 TU 구획화에 연관된 CU는 8x8 CU일 수도 있다. 이 경우, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 루마 성분에 대한 8x8 TU 및 크로마 성분들에 대한 2 개의 4x4 TU들이 되게 한다. 이 경우는, 루마 성분에 대한 8x8 TU 및 크로마 성분들에 대한 4x8 TU가 될 것인, 크로마 성분들이 상단 및 하단 서브블록들로 구획되지 않는 경우와 대조될 수도 있다. 위에서 설명된 바와 같이, 4x4 TU는 HEVC에 대해 정의될 수도 있는 반면 4x8 TU는 정의되지 않거나 또는 이용가능하지 않을 수도 있다. 따라서, 상단 및 하단 서브블록들로의 크로마 성분들의 구획화는 더욱 유용한 TU 형상들 및 사이즈들이 되게 할 수도 있다.In one example, the CU associated with the TU segmentation shown in FIG. 8A may be 8x8 CU. In this case, segmentation of the chroma components into the upper and lower subblocks results in 8x8 TU for the luma component and 2 4x4 TUs for the chroma components. This case may be contrasted with the case where the chroma components, which would be 8x8 TU for the luma component and 4x8 TU for the chroma components, are not partitioned into the upper and lower subblocks. As described above, a 4x4 TU may be defined for an HEVC while a 4x8 TU may not be defined or available. Thus, the partitioning of the chroma components into the upper and lower subblocks may result in more useful TU shapes and sizes.

대체로, 도 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 사이즈들이 상세히 설명되지 않는다.In general, the CU associated with the TU segments illustrated in FIG. 8A may be described as N by N CU. In contrast to one N / 2 by N TU where chroma components are not partitioned into the upper and lower subblocks, the partitioning of the chroma components into the upper and lower subblocks results in two N / 2 by N / 2 TUs . Thus, in contrast to one rectangular TU having a one-to-two aspect ratio when chroma components are not divided into upper and lower sub-blocks, partitioning the chroma components into upper and lower sub- TUs are created. As indicated above, in this example, each of the chroma sub-blocks has the same aspect ratio as the luma block. In other instances, it should be noted that the techniques described with respect to FIG. 8A may be applied to 4x4, 16x16, 32x32, or 64x64 CUs. For brevity, the corresponding luma and chroma TU sizes for possible CU sizes are not described in detail.

도 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일 수도 있다는 것에 주의해야 한다.FIG. 8B shows example conversion units based on a zoning structure in which chroma components are partitioned into upper and lower subblocks and additional quadtree partitioning is applied. As illustrated in FIG. 8B, for translation purposes, a luma block is divided into four square shaped sub-blocks. Each of the corresponding chroma blocks is partitioned into a top sub-block and a bottom sub-block, both of which are square, and then each of the top and bottom sub-blocks is further divided into four square- do. In general, the CU in Fig. 8B may be described as N by N CU. The compartmentalization of the luma component results in four N / 2 by N / 2 TUs. In contrast to the four N / 4 by N / 2 TUs in which the chroma components are not partitioned into the upper and lower subblocks, the partitioning of the chroma components into the upper and lower subblocks results in 8 N / 4 by N / 4 TUs are created. Thus, compartmentalizing chroma components into upper and lower sub-blocks, as compared to four rectangular TUs with a one-to-two aspect ratio when the TUs are not divided into upper and lower sub-blocks, TUs are created. It should be noted that the CU in FIG. 8B may be 4x4, 8x8, 16x16, 32x32, or 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들이 생기게 한다.Figure 9 illustrates the TU partitioning of chroma components for the chroma TU segmentation technique of the example described with respect to Figure 8B for a CU of 16x16 CU. In the example shown in Fig. 9, solid lines represent compartmentalization of luma components and solid and broken lines represent compartmentalization of chroma components. Thus, as illustrated in FIG. 9, the segmentation technique results in 8 4x4 TUs for each of the chroma components and 4 8x8 TUs for the luma component. The example shown in FIG. 9 may be contrasted with the case where the chroma components are not partitioned into upper and lower sub-blocks, which would be four 4x8 TUs for chroma components. As described above, a 4x4 TU may be defined for HEVC and a 4x8 TU may not be defined. Thus, partitioning the chroma components into the upper and lower subblocks may allow for more useful TU shapes and sizes. In another example, the segmentation technique described with respect to FIG. 8B may be applied to a 32x32 CU, resulting in four 16x16 TUs for Luma and eight 8x8 TUs for chroma. In another example, the segmentation technique described with respect to FIG. 8B may be applied to a 64x64 CU, resulting in four 32x32 TUs for Luma and eight 16x16 TUs for chroma.

게다가, 일부 CU 사이즈들에 대해 도 8a 및 도 8b에 관해 설명된 구획화 기법들은 HEVC에서 정의되지 않은 TU 사이즈들을 초래할 수도 있다는 것에 주의해야 한다. 그런 경우들에서, 상단 및 하단 서브블록들로의 크로마 성분들의 분할은 그 분할이 HEVC에서 정의된 TU들을 초래하도록 선택적으로 적용될 수도 있다. 예를 들어, 크로마 성분들을 상단 및 하단 서브블록들로 분할하는 것이 최소 TU 사이즈보다 작을 수도 있는 2x2 TU들을 초래하면, 이 특정 CU 사이즈에 대해 크로마 성분들을 상단 및 하단 서브블록들로 분할하지 않는다는 결정이 이루어질 수도 있다.In addition, it should be noted that the segmentation techniques described with respect to Figures 8A and 8B for some CU sizes may result in TU sizes not defined in the HEVC. In such cases, the division of the chroma components into the upper and lower subblocks may optionally be applied such that the division results in TUs defined in the HEVC. For example, if dividing chroma components into upper and lower subblocks results in 2x2 TUs that may be smaller than the minimum TU size, then it is determined that chroma components are not split into upper and lower subblocks for this particular CU size .

예를 들어, 8x8 루마 블록의 경우, 대응하는 크로마 블록들은 4:2:2 포맷에 따라 4x8의 사이즈를 가질 수도 있다. 8x8 루마 블록이 4 개의 4x4 블록들로 분할되면, 각각의 크로마 블록은 4x4 상단 서브블록 및 4x4 하단 서브블록으로 구획될 수도 있다. 그러나, 이 경우, 크로마 성분들의 서브블록들의 추가 분할이 없을 수도 있는데 HEVC에서 정의된 4x4보다 작은 사이즈를 갖는 정사각형 형상 변환이 없기 때문이다. 그런고로, 상단 및 하단 서브블록들로의 크로마 성분들의 분할은 최소 정사각형 형상 변환 사이즈에 의해 제한될 수도 있다. 이런 방식으로, 루마 및 크로마 성분들의 각각의 구획화는 이용가능한 변환들이 적용될 수도 있는 변환 단위들을 산출하도록 선택적으로 적용될 수도 있다. 하나의 예에서, 정사각형 형상 변환들의 다음의 사이즈들, 즉 4x4, 8x8, 16x16 및 32x32는 코딩을 위해 정의되고 이용가능하게 될 수도 있고 32x8, 8x32, 16x4 및 4x16의 비-정사각형 형상 변환들이 코딩을 위해 정의되고 이용가능하게 될 수도 있다.For example, in the case of 8x8 luma blocks, the corresponding chroma blocks may have a size of 4x8 according to the 4: 2: 2 format. If an 8x8 luma block is divided into four 4x4 blocks, each chroma block may be partitioned into a 4x4 upper sub-block and a 4x4 lower sub-block. In this case, however, there may be no further division of the subblocks of chroma components, since there is no square shape transformation with a size smaller than 4x4 defined by the HEVC. Thus, the division of the chroma components into the upper and lower subblocks may be limited by the minimum square shape transformation size. In this way, each partitioning of the luma and chroma components may optionally be applied to yield transform units for which the available transformations may be applied. In one example, the following sizes of square shape transforms: 4x4, 8x8, 16x16 and 32x32 may be defined and available for coding, and 32x8, 8x32, 16x4 and 4x16 non- And may be defined and available for use.

위에서 설명된 바와 같이, CU는 비-정사각형의 직사각형 TU들로 구획될 수도 있다. 도 8c 및 도 8d는 크로마 성분들이 상단 및 하단 서브블록들로 구획되고 부가적인 비-정사각형의 직사각형 구획화가 적용되는 구획화 구조에 기초한 예들의 변환 단위들을 도시한다. 도 8c는 크로마 성분들이 상단 및 하단 서브블록들로 구획되고 부가적인 수평 비-정사각형의 직사각형 구획화가 적용되는 구획화 구조에 기초한 예의 변환 단위들을 도시한다.As described above, the CU may be partitioned into non-square rectangular TUs. Figures 8c and 8d show examples of transformations based on a zoning structure in which chroma components are partitioned into upper and lower subblocks and additional non-square rectangular compartments are applied. FIG. 8C shows an example of transform units based on a zoning structure in which chroma components are partitioned into upper and lower sub-blocks and an additional horizontal non-square rectangular section is applied.

도 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들이 생기게 한다.As shown in Fig. 8C, the luma block is divided into four horizontally oriented non-square rectangular shaped sub-blocks. Each of the corresponding chroma blocks is partitioned into a top sub-block and a bottom sub-block, both of which are square, and then each of the top and bottom sub-blocks is divided into four horizontally oriented non-square shaped rectangles Blocks. In general, the CU in FIG. 8C may be described as N by N CU. The partitioning of luma components into non-square rectangular CUs may result in four N-by-N / 4 TUs. In contrast to the four N / 2 by N / 4 TUs in which the chroma components are not partitioned into the upper and lower subblocks, the partitioning of the chroma components into the upper and lower subblocks results in 8 N / 2 by N / 8 TUs can be created. Thus, as compared to the four non-square rectangular TUs having a two-to-one aspect ratio when the TUs are not divided into upper and lower subblocks, partitioning the chroma components into upper and lower subblocks Resulting in eight non-square rectangular TUs with a four-to-one aspect ratio.

하나의 예에서, 도 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일 수도 있다는 것에 주의해야 한다.In one example, the CU associated with the TU segmentation shown in FIG. 8C may be 32x32 CU. Thus, the segmentation technique described with respect to FIG. 8C may result in four 32x8 TUs for the luma component and eight 16x4 TUs for the chroma components. This example may be contrasted with the case where the chroma components are not partitioned into upper and lower subblocks, which would be four 16x8 TUs for chroma components. As described above, a 16x4 TU may be defined for HEVC and a 16x8 TU may not be defined. Thus, partitioning the chroma components into the upper and lower subblocks may allow for more useful TU shapes and sizes. In other examples, it should be noted that the CU in FIG. 8C may be 4x4, 8x8, 16x16, or 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들이 생기게 한다.Figure 8d shows an example conversion unit based on a zoning structure in which chroma components are partitioned into upper and lower subblocks and an additional vertical non-square rectangular compartment is applied. As shown in FIG. 8D, the luma block is divided into four vertically oriented, non-square, rectangular shaped sub-blocks for translation purposes. Each of the corresponding chroma blocks is partitioned into a top sub-block and a bottom sub-block, both of which are square, and then each of the top and bottom sub-blocks is divided into four vertically oriented non-square shaped rectangles Blocks. In general, the CU in FIG. 8D may be described as N by N CU. The partitioning of luma components into non-square rectangular CUs may result in four N / 4 by N TUs. In contrast to the four N / 8 by N TUs in which the chroma components are not partitioned into the upper and lower subblocks, the partitioning of chroma components into the upper and lower subblocks results in 8 N / 8 by N / 2 TUs . Thus, as compared to the four non-square rectangular TUs having an aspect ratio of 1 to 8 when the TUs are not divided into the upper and lower subblocks, partitioning chroma components into upper and lower subblocks Resulting in eight non-square rectangular TUs with an aspect ratio of 1: 4.

하나의 예에서, 도 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일 수도 있다는 것에 주의해야 한다.In one example, the CU associated with the TU segmentation shown in FIG. 8D may be 32x32 CU. Thus, the segmentation technique described with respect to FIG. 8D may result in four 8x32 TUs for the luma component and eight 4x16 TUs for the chroma components. This example may be contrasted with the case where the chroma components are not partitioned into the upper and lower subblocks, which would be four 4x32 TUs for the chroma components. As described above, a 4x16 TU may be defined for an HEVC and a 4x32 TU may not be defined. Thus, partitioning the chroma components into the upper and lower subblocks may allow for more useful TU shapes and sizes. In other examples, it should be noted that the CU in FIG. 8D may be 4x4, 8x8, 16x16, or 64x64 CU.

게다가, 도 8a 및 도 8b에 관해 위에서 설명된 바와 같이, 일부 CU 사이즈들에 대해, 도 8c 및 도 8d에 관해 설명된 구획화 기법들은 HEVC에서 정의되지 않은 TU 사이즈들이 생기게 할 수도 있다는 것에 주의해야 한다. 따라서, 이러한 경우들에서, 상단 및 하단 서브블록들로의 크로마 성분들의 분할은 그 분할이 HEVC, 또는 다른 적용가능한 비디오 코딩 표준 또는 프로세스에서 정의된 TU들을 초래하도록 선택적으로 적용될 수도 있다. 하나의 예에서, 정의된 비-정사각형 직사각형 TU들은 32x8, 8x32, 16x4, 및 4x16 TU들을 포함할 수도 있다.In addition, it should be noted that for some CU sizes, as described above with respect to Figures 8A and 8B, the segmentation techniques described with respect to Figures 8C and 8D may result in undefined TU sizes in the HEVC . Thus, in such cases, the partitioning of the chroma components into the upper and lower subblocks may be selectively applied such that the partitioning results in TUs defined in the HEVC, or other applicable video coding standards or processes. In one example, defined non-square rectangular TUs may include 32x8, 8x32, 16x4, and 4x16 TUs.

게다가, 도 8a 내지 도 8d에 관해 설명된 예들의 각각에 대해, 크로마 성분들이 상단 및 하단 서브블록들로 분할되고 추가의 변환 단위 구획화가 루마 성분과 동기화되는 경우, 4:2:2 포맷 하의 각각의 비-분할 루마 변환 단위에 대해, 일반적으로 각각의 크로마 성분으로부터 이용가능한 2 개의 비-분할 크로마 TU들이 있을 것이다. 그러나, 일부 경우들에서, 루마 블록은 추가 분할될 수도 있지만, 크로마 블록들을 분할하는 것이 적용가능한 비디오 코딩 표준 또는 프로세서, 이를테면 HEVC에 대한 최소 변환 단위 사이즈 미만의 이용불가능한 TU 또는 TU가 생기게 할 것이라면, 대응하는 크로마 블록들은 추가 분할되지 않을 수도 있다.In addition, for each of the examples described with respect to Figures 8A-8D, when the chroma components are divided into upper and lower sub-blocks and the additional conversion unit segmentation is synchronized with the luma component, For a non-split luma conversion unit of, there will typically be two non-split chroma TUs available from each chroma component. However, in some cases, the luma block may be further divided, but if splitting the chroma blocks would result in an unacceptable TU or TU below the applicable video coding standard or processor, such as the minimum conversion unit size for the HEVC, Corresponding chroma blocks may not be further partitioned.

따라서, 도 8a 내지 도 8d의 각각은, 4:2:2 샘플 포맷에 따라 포맷된 비디오 블록에 대해, 루마 블록에 대응하는 크로마 블록이 상단 및 하단, 정사각형 서브블록들로 구획될 수도 있고 루마 블록이 추가 구획되면 상단 및 하단 서브블록들이 유사한 방식으로 구획될 수도 있는 경우를 예시한다. 예를 들어, 이들 기법들은 정사각형 루마 블록 구획화의 경우의 정사각형 서브블록 구획들, 수평 배향된 루마 블록 구획화의 경우의 수평 배향된 서브블록 구획들, 또는 수직 배향된 루마 블록 구획화의 경우의 수직 배향된 서브블록 구획들에 적용될 수도 있다. 게다가, 일부 경우들에서, 예외로서, 루마 블록이 구획되지만 대응하는 크로마 블록이 상단 서브블록 및 하단 서브블록으로의 분할 후에 변환들의 최소 사이즈에 이미 도달하였다면, 각각의 크로마 성분의 2 개의 서브블록들은 추가 분할되지 않을 수도 있다. 따라서, 4:2:2 포맷 하의 도 8a 내지 도 8d에 관해 설명된 기법들에 따르면, 일부 예들에서, 크로마 성분들에 대한 변환 단위는 그것의 대응하는 루마 성분의 변환 단위와 동일한 애스팩트 비를 가질 수도 있다. 그 결과, HEVC WD4 또는 WD8에서 정의된 변환들은 도 8a 내지 도 8d에 관해 설명된 기법들을 사용하여 형성된 결과적인 TU들에 대해 변환들을 수행하기에 충분할 수도 있다. 따라서, 일부 예들에서, 도 8a 내지 도 8d에 관해 설명된 기법들은 부가적인 변환 형상들 및 사이즈들을 정의하는 일 없이 HEVC에 통합될 수도 있다.Thus, for each of the video blocks formatted according to the 4: 2: 2 sample format, each of Figures 8A-8D may be partitioned into upper and lower, square subblocks of chroma blocks corresponding to luma blocks, The upper and lower sub-blocks may be partitioned in a similar manner. For example, these techniques may be applied to square sub-block blocks in the case of square luma block partitioning, horizontally oriented sub-block blocks in the case of horizontally oriented luma block partitioning, or vertically oriented luma block partitioning in the case of vertically oriented luma block partitioning. Block sub-blocks. Furthermore, in some cases, as an exception, if the luma block is partitioned but the corresponding chroma block has already reached the minimum size of transformations after division into the upper and lower subblocks, then the two subblocks of each chroma component It may not be further divided. Thus, in accordance with the techniques described with respect to Figures 8A-8D under the 4: 2: 2 format, in some examples, the conversion unit for chroma components has the same aspect ratio as the conversion unit of its corresponding luma component . As a result, transformations defined in HEVC WD4 or WD8 may be sufficient to perform transformations on the resulting TUs formed using the techniques described with respect to Figs. 8A-8D. Thus, in some instances, the techniques described with respect to Figures 8A-8D may be incorporated into the HEVC without defining additional transform shapes and sizes.

이런 방식으로, 비디오 인코더 (20) 는, 비디오 데이터의 루마 성분에 대한 값들의 N 바이 N 어레이를 수신하며, 비디오 데이터의 크로마 성분에 대한 값들의 대응하는 N/2 바이 N 어레이를 수신하며, 크로마 성분에 대한 값들의 N/2 바이 N 어레이를 2 개의 N/2 바이 N/2 서브 어레이들로 구획하고 크로마 값들의 그 서브 어레이들의 각각에 대해 변환 동작을 수행하도록 구성될 수도 있다. 비디오 디코더 (30) 는 비디오 인코더에 의해 생성된 어레이들 및 서브 어레이들을 수신하고 역 변환 동작들을 수행하도록 구성될 수도 있다.In this manner, the video encoder 20 receives an N by N array of values for the luma component of the video data, receives a corresponding N / 2 by N array of values for the chroma component of the video data, / RTI > bi-N array of values for the component into two N / 2 by N / 2 sub-arrays and perform a transform operation on each of its sub-arrays of chroma values. Video decoder 30 may be configured to receive arrays and sub-arrays generated by a video encoder and to perform inverse transform operations.

게다가, 위에서 설명된 바와 같이, HEVC WD4는 변환 계수들 또는 변환 계수 레벨들의 블록이 임의의 0이 아닌 변환 계수들을 포함하는지를 나타내는 코딩된 블록 플래그 신택스 엘리먼트를 포함한다. 하나의 예에서, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 본원에서 설명되는 코딩된 블록 플래그 코딩을 위한 기법들을 사용하여 비디오 데이터를 코딩하도록 추가로 구성될 수도 있다. 일부 예들에서, 코딩된 블록 플래그 코딩은 인터 예측 모드들을 위해서만 사용될 수도 있다. 이는 인트라 예측 모드들이 비디오 블록에 대해 0이 아닌 변환 계수들을 생기게 할 더 많은 가능성이 있다는 사실 때문일 수도 있다.In addition, as described above, HEVC WD4 includes coded block flag syntax elements indicating whether the block of transform coefficients or transform coefficient levels includes any non-zero transform coefficients. In one example, video encoder 20 and video decoder 30 may be further configured to code video data using techniques for coded block flag coding as described herein. In some examples, coded block flag coding may be used only for inter prediction modes. This may be due to the fact that intra prediction modes are more likely to cause non-zero transform coefficients for a video block.

하나의 예에서, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 조인트 코딩된 블록 플래그를 사용하도록 구성될 수도 있다. 예를 들어, 크로마 성분의 변환 단위에 대한 코딩된 블록 플래그를 코딩함에 있어서, 각각의 크로마 성분에 대해, 조인트 코딩된 블록 플래그는 먼저 크로마 성분의 크로마 변환 단위들의 각각의 쌍에 대해 시그널링될 수도 있다. 크로마 변환 단위들의 쌍 내에 적어도 하나의 0이 아닌 계수가 있음을 조인트 코딩된 블록 플래그가 나타내면, 2 개의 변환 단위들의 각각이 임의의 0이 아닌 변환 계수들을 가지는지를 시그널링하기 위해 하나 이상의 부가적인 코딩된 블록 플래그들이 전송될 수도 있다. 그렇지 않고, 크로마 변환 단위들의 쌍 내에 적어도 하나의 0이 아닌 계수가 없음을 조인트 코딩된 블록 플래그가 나타내면, 크로마 성분들의 쌍에 대한 변환 단위들을 위해 추가의 시그널링은 필요하지 않다. 하나의 예에서 크로마 성분들은 4:2:2 샘플 포맷에 따라 포맷된 비디오 데이터의 크로마 성분들에 대응할 수도 있다.In one example, video encoder 20 and video decoder 30 may be configured to use joint coded block flags. For example, in coding a coded block flag for a transform unit of a chroma component, for each chroma component, the joint coded block flag may first be signaled for each pair of chroma transform units of the chroma component . If the joint coded block flag indicates that there is at least one non-zero coefficient in the pair of chroma conversion units, then one or more additional coded blocks may be used to signal whether each of the two conversion units has any non- Block flags may be sent. Otherwise, if the joint coded block flag indicates that there is not at least one non-zero coefficient in the pair of chroma conversion units, no additional signaling is needed for the conversion units for the pair of chroma components. In one example, chroma components may correspond to chroma components of video data formatted according to a 4: 2: 2 sample format.

도 10a 내지 도 10d는 코딩된 블록 플래그 코딩에 대한 블록 연관을 위한 기법들을 예시하는 개념도들이다. 도 10a 내지 도 10d에서, 도 8a 내지 도 8d에 예시된 개별 변환 단위 구획 구조들은 조인트 코딩된 블록 플래그를 공유할 수도 있는 비디오 성분들의 표시와 함께 예시된다. 도 10a 내지 도 10d의 예들이 도 8a 내지 도 8d에 예시된 변환 단위들에 대응하지만, 조인트 코딩된 블록 플래그 코딩은 다른 변환 단위 구획화 구조들과 함께 활용될 수도 있다. 게다가, 본원에서 설명되는 조인트 코딩된 블록 플래그 코딩 기법들은 4:2:2 샘플 포맷에 따라 포맷된 비디오 데이터에 특히 유용할 수도 있지만, 이러한 기법들은 또한 4:2:0 또는 4:4:4 샘플 포맷들에 따라 포맷된 비디오 데이터에 적용될 수도 있다.Figures 10A through 10D are conceptual diagrams illustrating techniques for block association for coded block flag coding. In Figures 10A-10D, the individual transform unit partition structures illustrated in Figures 8A-8D are illustrated with an indication of video components that may share a joint coded block flag. Although the examples of Figs. 10A to 10D correspond to the conversion units illustrated in Figs. 8A to 8D, the joint coded block flag coding may be utilized together with other conversion unit segmentation structures. In addition, the joint coded block flag coding schemes described herein may be particularly useful for video data formatted according to the 4: 2: 2 sample format, but these techniques may also be used for 4: 2: 0 or 4: Or may be applied to video data formatted according to formats.

도 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이 아닌 계수를 포함하는지의 여부를 나타내는 하이 레벨 코딩된 블록 플래그가, 임의의 부가적인 코딩된 블록 플래그들이 시그널링될 것들인지의 여부를 결정하는데 이용될 수도 있다.As illustrated in Figures 10A-10D, the TU for the luma component is shaded and the two corresponding TUs are shaded for each of the chroma components. Shaded TUs may represent TUs associated with coded block flags. As illustrated in Figures 10a-10d, the two TUs are shaded for each of the chroma components. In this way, the joint coded block flag may be associated with the two shaded TUs of the chroma component. In addition, it should be noted that in Figures 10b, 10c and 10d, only the first non-segmented luma block and its associated chroma blocks are represented by shaded regions. However, in these cases it is clear that each of the other three non-segmented luma blocks may also have two separate chroma blocks associated with the joint coded block flag for each chroma component. For example, in FIG. 10C, a second horizontal luma TU may be associated with third and fourth horizontal TUs of chroma components. In addition, in some instances, a high level coded block flag indicating whether any of the components includes any non-zero coefficients may be used to determine whether any additional coded block flags are to be signaled .

하나의 예에 따르면, 조인트 코딩된 블록 플래그는 크로마 성분의 크로마 변환 단위들의 각각의 쌍에 대해 먼저 시그널링될 수도 있다. 크로마 변환 단위들의 쌍 내에 적어도 하나의 0이 아닌 계수가 있음을 나타내는 값 (예컨대, 1) 을 조인트 코딩된 블록 플래그가 가지면, 2 개의 변환 단위들의 각각이 임의의 0이 아닌 계수들을 가지는지를 시그널링하기 위해 하나 이상의 부가적인 코딩된 블록 플래그들이 전송될 수도 있다. 그렇지 않고, 조인트 코딩된 블록 플래그가 적어도 하나의 0이 아닌 계수가 없음을 나타내는 값 (예컨대, 0) 을 가지면, 크로마 성분의 크로마 변환 단위들의 쌍에 대해 추가의 시그널링이 필요하지 않다. 예를 들어, 도 10b에서, U 성분의 경우, 음영 넣은 영역으로 표시된 크로마 변환 단위들의 쌍 즉, 상단 및 하단 서브블록들 내에 임의의 0이 아닌 계수가 있는지를 U 성분에 대해 나타내는 조인트 코딩된 블록 플래그가 비디오 인코더 (20) 에 의해 인코딩된 비트스트림에서 먼저 시그널링될 수 있다. 위에서 설명된 바와 같이, 크로마 변환 단위들은 또한 서브블록들이 변환 단위들에 대응하는 서브블록들이라고 지칭될 수도 있다. 조인트 코딩된 블록 플래그가 0이 아닌 계수가 없음을 나타내는 값 (예컨대, 0) 을 가지면, U 성분의 이들 2 개의 변환 단위들에 대해 추가의 시그널링이 필요하지 않다. 그렇지 않으면, 하나 이상의 부가적인 코딩된 블록 플래그들은 각각의 변환 단위 내에 임의의 0이 아닌 계수가 있는지를 나타내기 위해 U 성분에서의 2 개의 변환 단위들의 각각에 대해 시그널링될 수 있다. 따라서, 상단 변환 단위 또는 하단 변환 단위 중 어느 하나에서 0이 아닌 계수가 없음을 조인트 코딩된 블록 플래그가 나타내면, 변환 단위의 이 쌍에 대응하는 변환 단위들에 대해 추가의 시그널링이 필요하지 않다.According to one example, the joint coded block flag may be signaled first for each pair of chroma conversion units of the chroma component. Signaling whether each of the two translation units has non-zero coefficients if the jointly coded block flag has a value (e.g., 1) indicating that there is at least one non-zero coefficient in the pair of chroma conversion units One or more additional coded block flags may be transmitted. Otherwise, if the joint coded block flag has a value (e.g., 0) indicating no at least one non-zero coefficient, no additional signaling is required for the pair of chroma conversion units of the chroma component. For example, in FIG. 10B, in the case of the U component, a pair of chroma conversion units denoted by the shaded area, that is, a joint coded block that represents for the U component whether there are any non-zero coefficients in the upper and lower sub- The flag may be signaled first in the bitstream encoded by the video encoder 20. [ As described above, the chroma conversion units may also be referred to as sub-blocks that correspond to the conversion units. If the joint coded block flag has a value (e.g., 0) indicating no non-zero coefficients, no additional signaling is needed for these two translation units of the U component. Otherwise, the one or more additional coded block flags may be signaled for each of the two transform units in the U component to indicate whether there is any non-zero coefficient in each transform unit. Thus, if the jointly coded block flag indicates that there is no non-zero coefficient in either the top translation unit or the bottom translation unit, no additional signaling is needed for the translation units corresponding to this pair of translation units.

그러나, 상단 변환 단위 또는 하단 변환 단위 내에 적어도 하나의 0이 아닌 계수가 있음을 크로마 성분에 대한 조인트 코딩된 블록 플래그가 나타내면, 비디오 인코더 (20) 는 상단 변환 단위 내에 적어도 하나의 0이 아닌 계수가 있는지의 여부를 나타내는 상단 변환 단위에 대한 코딩된 블록 플래그를 생성하고, 하단 변환 단위 내에 적어도 하나의 0이 아닌 계수가 있는지의 여부를 나타내는 하단 변환 단위에 대한 다른 코딩된 블록 플래그를 생성할 수도 있다. 하나의 예에서, 코딩된 블록 플래그의 시그널링은 U 성분 및 V 성분들의 각각에 대해 동일한 방도로 수행될 수도 있다.However, if the joint coded block flag for the chroma component indicates that there is at least one non-zero coefficient in the top or bottom transform unit, the video encoder 20 determines that there is at least one non- And generates another coded block flag for the lower level translation unit indicating whether there is at least one non-zero coefficient in the lower level translation unit . In one example, the signaling of the coded block flags may be performed with the same strategy for each of the U component and the V component.

하나의 예에서, 크로마 변환 단위들의 쌍 내에 적어도 하나의 0이 아닌 계수가 있음을 나타내는 값 (예컨대, 1) 을 크로마 변환 단위들의 한 쌍에 대한 조인트 코딩된 블록 플래그가 가지고, 이 쌍의 제 1 변환 단위에 대한 부가적인 코딩된 블록 플래그가 그것 내에 0이 아닌 계수가 없음을 나타내는 값 (예컨대, 0) 을 가지는 경우, 이 경우에, 제 2 변환 단위는 적어도 하나의 0이 아닌 변환 계수를 가져야만 하고 그것의 코딩된 블록 플래그의 값 (예컨대, 1) 이 유추될 수 있다. 이 경우, 이 쌍의 제 2 변환 단위에 대한 코딩된 블록 플래그를 시그널링하는 것이 필요하지 않은데, 상단 변환 단위 또는 하단 변환 단위 중 어느 하나가 0이 아닌 변환 계수를 포함함을 나타내는 조인트 코딩된 블록 플래그가 주어지면, 그리고 상단 변환 단위가 0이 아닌 변환 계수를 포함하지 않음을 나타내는, 상단 변환 단위를 위해 전송된 제 1 코딩된 블록 플래그가 주어지면, 제 2 변환 단위는 0이 아닌 계수를 포함해야만 한다는 것이 알려져 있기 때문이다.In one example, a joint coded block flag for a pair of chroma conversion units has a value (e.g., 1) indicating that there is at least one non-zero coefficient in a pair of chroma conversion units, If the additional coded block flag for the transform unit has a value (e.g., 0) indicating that there is no non-zero coefficient in it, then the second transform unit must have at least one non-zero transform coefficient And the value of its coded block flag (e.g., 1) can be inferred. In this case it is not necessary to signal the coded block flags for the second translation unit of this pair, since the joint coded block flag indicating that either the top translation unit or the bottom translation unit contains a non- Given a first coded block flag sent for the top translation unit indicating that the top translation unit does not contain non-zero conversion coefficients, then the second translation unit must contain a non-zero coefficient Is known to be.

도 11은 본 개시물에서 설명되는 바와 같은 크로마 성분들에 대한 코딩된 블록 플래그 코딩을 위한 변환 단위 구획화 및 블록 연관을 위한 방법의 일 예를 도시하는 흐름도이다. 도 11에 예시된 방법은 비디오 인코더 (20) 에 의해 수행되고 있는 것으로서 설명된다. 그러나, 이러한 설명은 예시적 목적을 위한 것이고 도 11에 예시된 방법은 비디오 인코더에 포함된 컴포넌트들의 임의의 조합에 의해 수행될 수도 있다. 비디오 인코더의 컴포넌트들의 예들은 도 12에서 설명되는 비디오 인코더 (20) 에 관해 아래에서 더 상세히 설명된다. 게다가, 도 11에 예시된 방법의 역의 방법이 비디오 디코더 (30) 또는 비디오 디코더에 포함된 컴포넌트들의 임의의 조합에 의해 수행될 수도 있다는 것에 주의해야 한다. 비디오 디코더의 컴포넌트들의 예들은 도 14에 관해 아래에서 더 상세히 설명된다. 역의 프로세스에서, 비디오 디코더는 인코딩된 비트스트림으로부터 비디오 블록들 및 신택스 엘리먼트들을 수신하거나 또는 획득할 수도 있다는 것에 주의해야 한다.11 is a flow chart illustrating an example of a method for transform unit partitioning and block association for coded block flag coding for chroma components as described in this disclosure. The method illustrated in FIG. 11 is described as being performed by the video encoder 20. However, this description is for illustrative purposes, and the method illustrated in FIG. 11 may be performed by any combination of components included in a video encoder. Examples of components of the video encoder are described in more detail below with respect to the video encoder 20 described in FIG. In addition, it should be noted that the inverse of the method illustrated in FIG. 11 may be performed by any combination of components included in video decoder 30 or video decoder. Examples of components of the video decoder are described in more detail below with respect to FIG. It should be noted that in the reverse process, the video decoder may receive or obtain video blocks and syntax elements from the encoded bit stream.

도 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).As shown in the example method shown in FIG. 11, the video encoder 20 selects a 4: 2: 2 sample format of video data (1102). In other examples, the video encoder 20 may select other sample formats, such as the 4: 2: 0 and 4: 4: 4 sample formats described above. The video encoder 20 generates 1104 corresponding upper and lower subblocks for the chroma component U and corresponding upper and lower subblocks for the chroma component V for the luma block. Corresponding chroma subblocks may be generated at successive subdivision levels for each luma subdivision, subject to the minimum conversion unit size, as described above. The video encoder 20 determines whether any of the subblocks of the pair of subblocks contains at least one non-zero coefficient and generates a joint coded block flag CBF (1106). In one example, the joint CBF has a value of 0 if there is no non-zero coefficient on both subblocks and a value of 0 if there is a non-zero coefficient in either of the subblocks of the individual chroma components (U or V) . ≪ / RTI > If there is no non-zero coefficient and the joint CBF is equal to zero, no additional signaling is required for the chroma component and the video encoder 20 may then proceed to process the next luma block (1116).

그러나, 조인트 CBF가 1과 동일하면 (1108), 비디오 인코더 (20) 는 상단 크로마 서브블록이 임의의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내기 위해 상단 서브블록에 대한 코딩된 블록 플래그를 생성한다 (1110). 비디오 인코더 (20) 는 상단 크로마 서브블록에 대한 CBF가 0과 동일한지를 결정할 수도 있다 (1112). 상단 크로마 서브블록에 대한 CBF가 0과 동일하면, 일부 예들에서 하단 서브블록은 0이 아닌 변환 계수를 포함해야만 한다고 유추될 수 있다. 이 경우, 하단 서브블록에 대한 코딩된 블록 플래그를 생성할 필요가 없고, 비디오 인코더 (20) 는 다음의 루마 블록을 프로세싱하기 위해 진행할 수 있다 (1116).However, if the joint CBF is equal to 1 (1108), the video encoder 20 determines whether the upper chroma sub-block contains a coded block flag for the upper sub-block in order to indicate whether the upper chroma sub- (1110). The video encoder 20 may determine whether the CBF for the upper chroma sub-block is equal to zero (1112). If the CBF for the upper chroma subblock is equal to 0, it can be inferred that in some examples the lower subblock must contain non-zero transform coefficients. In this case, it is not necessary to generate a coded block flag for the lower sub-block, and the video encoder 20 may proceed to process the next luma block (1116).

그러나, 상단 크로마 서브블록에 대한 CBF가 1과 동일하면, 상단 서브블록이 적어도 하나의 0이 아닌 변환 계수를 포함하는 것이 분명하지만, 하단 서브블록이 적어도 하나의 0이 아닌 변환 계수를 포함할 수도 있다는 것 또한 가능하다. 따라서, 이 경우, 비디오 인코더 (20) 는 하단 크로마 서브블록이 0이 아닌 변환 계수들을 포함하지 않는 경우에 0의 값을 그리고 하단 크로마 서브블록이 적어도 하나의 0이 아닌 변환 계수를 포함하는 경우에 1의 값을 갖는 하단 서브블록에 대한 CBF를 생성한다 (1114). 비디오 인코더 (20) 는 그 다음에 다음의 루마 블록을 프로세싱하기 위해 진행한다 (1116). 일부 예들에서, 다음의 루마 블록은 상이한 루마 블록 또는 루마 블록의 추가의 구획화에 의해 생성된 루마 블록일 수도 있다.However, if the CBF for the upper chroma subblock is equal to 1, it is apparent that the upper subblock contains at least one non-zero transform coefficient, but it is also possible that the lower subblock includes at least one non- It is also possible. Thus, in this case, the video encoder 20 determines if the lower chroma sub-block contains a non-zero transform coefficient and a value of zero if the lower chroma sub-block contains at least one non-zero transform coefficient The CBF for the lower sub-block having a value of 1 is generated (1114). The video encoder 20 then proceeds to process the next luma block (1116). In some instances, the following luma block may be a luma block generated by further partitioning of different luma blocks or luma blocks.

도 11을 참조하여 설명되는 프로세스는 주어진 루마 성분에 대응하는 U 및 V 크로마 성분들 양쪽 모두에 대해 동일한 방식으로 수행될 수도 있다. 덧붙여서, 비디오 디코더 (30) 는 4:2:2 샘플 포맷을 갖는 루마 및 크로마 블록들에 대한 변환 계수들을 획득하기 위해 역 또는 반대의 방식으로 비트스트림을 파싱 및 디코딩할 수도 있다.The process described with reference to FIG. 11 may be performed in the same manner for both the U and V chroma components corresponding to a given luma component. In addition, the video decoder 30 may parse and decode the bitstream in reverse or reverse manner to obtain transform coefficients for luma and chroma blocks with a 4: 2: 2 sample format.

이런 방식으로, 비디오 인코더 (20) 와 비디오 디코더 (30) 는 크로마 서브블록들에 대한 조인트 코딩된 블록 플래그를 코딩하도록 구성된 비디오 코더들의 예들을 나타내며, 조인트 코딩된 블록 플래그는 크로마 서브블록들이 적어도 하나의 0이 아닌 변환 계수를 포함하는지의 여부를 나타낸다. 덧붙여서, 그 방법은, 크로마 서브블록들이 적어도 하나의 0이 아닌 변환 계수를 포함함을 조인트 코딩된 블록 플래그가 나타내는 경우, 크로마 서브블록들 중 제 1 하나에 대한 코딩된 블록 플래그를 코딩하는 것을 더 포함할 수도 있으며, 여기서 코딩된 블록 플래그는 크로마 서브블록들 중 제 1 하나가 적어도 하나의 0이 아닌 계수를 포함하는지의 여부를 나타낸다.In this manner, the video encoder 20 and the video decoder 30 illustrate examples of video coders that are configured to code a joint coded block flag for chroma subblocks, wherein the joint coded block flag indicates that at least one Non-zero conversion coefficient of " 0 " In addition, the method further comprises coding the coded block flag for the first one of the chroma subblocks if the jointly coded block flag indicates that the chroma subblocks include at least one non- Where the coded block flag indicates whether the first one of the chroma subblocks includes at least one non-zero coefficient.

게다가, 그 방법은, 크로마 서브블록들 중 제 1 하나가 적어도 하나의 0이 아닌 계수를 포함하지 않음을 코딩된 블록 플래그가 나타내는 경우, 크로마 서브블록들 중 제 2 하나에 대한 코딩된 블록 플래그를 코딩하지 않는 단계, 및 크로마 서브블록들 중 제 1 하나가 적어도 하나의 0이 아닌 계수를 포함함을 코딩된 블록 플래그가 나타내는 경우, 크로마 서브블록들 중 제 2 하나에 대한 코딩된 블록 플래그를 코딩하는 것을 포함할 수도 있으며, 여기서 크로마 서브블록들 중 제 2 하나에 대한 코딩된 블록 플래그는 크로마 서브블록들 중 제 2 하나가 적어도 하나의 0이 아닌 변환 계수를 포함하는지의 여부를 나타낸다.In addition, the method further comprises: if the coded block flag indicates that the first one of the chroma subblocks does not include at least one non-zero coefficient, then the coded block flag for the second one of the chroma subblocks And if the coded block flag indicates that the first one of the chroma subblocks includes at least one non-zero coefficient, then the coded block flag for the second one of the chroma subblocks is coded Where the coded block flag for the second one of the chroma subblocks indicates whether the second one of the chroma subblocks includes at least one non-zero transform coefficient.

위에서 논의된 바와 같이, 코딩 동작들은 비디오 인코더에 의해 인코딩 동작들로서, 또는 비디오 디코더에 의해 디코딩 동작들로서 수행된다. 본 개시물에서 설명된 기법들을 사용하여, 비디오 인코더 (20) 또는 비디오 디코더 (30) 는 HEVC 표준에 일치하는 사이즈 및 형상의 변환들을 블록들 및 서브블록들에 적용하도록 구성될 수도 있다.As discussed above, the coding operations are performed by the video encoder as encoding operations, or by the video decoder as decoding operations. Using the techniques described in this disclosure, video encoder 20 or video decoder 30 may be configured to apply transformations of size and shape conforming to the HEVC standard to blocks and sub-blocks.

비록 HEVC의 HM에 따른 CU, PU 및 TU 프로세싱 및 배열의 논의가 예시의 목적으로 제공되지만, 이러한 논의는 본원에서 폭넓게 예시되고 설명된 바와 같은 본 개시물의 기법들을 제한하는 것으로 간주되지 않아야 한다. 변환 단위 구획화 및 코딩된 블록 플래그 시그널링 기법들, 뿐만 아니라 본 개시물에서 설명되는 다른 기법들은, HEVC 표준을 준수하도록 공식화된 비디오 코딩 프로세스들을 제한 없이 포함하는, 다양한 현존하는 또는 미래의 비디오 코딩 프로세스들 중 임의의 것에 광범위하게 적용가능할 수도 있다.Although discussion of CU, PU and TU processing and arrangement according to HM of the HEVC is provided for illustrative purposes, this discussion should not be construed as limiting the techniques of the present disclosure as broadly illustrated and described herein. Conversion unit segmentation and coded block flag signaling techniques as well as other techniques described in this disclosure may be implemented in a variety of existing or future video coding processes including, but not limited to, video coding processes formulated to comply with the HEVC standard The present invention is not limited thereto.

비디오 인코더 (20) 는 변환 계수들을 코딩하는 본 개시물의 기법들 중 임의의 것 또는 모두를 구현할 수도 있다. 비슷하게, 비디오 디코더 (30) 는 변환 계수들을 코딩하는 이들 기법들 중 임의의 것 또는 모두의 역 버전들을 구현할 수도 있다. 비디오 코더는, 본 개시물에서 설명된 바와 같이, 비디오 인코더 또는 비디오 디코더를 말할 수도 있다. 마찬가지로, 비디오 코딩 유닛은 비디오 인코더 또는 비디오 디코더를 말할 수도 있다. 비슷하게, 비디오 코딩은 비디오 인코딩 또는 비디오 디코딩을 말할 수도 있다.Video encoder 20 may implement any or all of the techniques of the present disclosure for coding transform coefficients. Similarly, video decoder 30 may implement inverse versions of any or all of these techniques for coding transform coefficients. A video coder may also refer to a video encoder or a video decoder, as described in this disclosure. Likewise, the video coding unit may also refer to a video encoder or video decoder. Similarly, video coding may refer to video encoding or video decoding.

도 12는 본 개시물에서 설명되는 기법들을 구현할 수도 있는 일 예의 비디오 인코더 (20) 를 도시하는 블록도이다. 비디오 인코더 (20) 는 비디오 슬라이스들 내의 비디오 블록들의 인트라 및 인터 코딩을 수행할 수도 있다. 인트라 코딩은 공간적 예측에 의존하여, 주어진 비디오 프레임 또는 화상 내의 비디오에서의 공간적 리던던시를 감소시키거나 또는 제거한다. 인터 코딩은 시간적 예측에 의존하여, 비디오 시퀀스의 인접한 프레임들 또는 화상들 내의 비디오에서의 시간적 리던던시를 감소시키거나 또는 제거한다. 인트라 모드 (I 모드) 는 여러 공간 기반 압축 모드들 중 임의의 것을 말할 수도 있다. 단방향 예측 (P 모드) 및 양방향 예측 (B 모드) 과 같은 인터 모드들은 여러 시간 기반 압축 모드들 중 임의의 것을 말할 수도 있다.12 is a block diagram illustrating an example video encoder 20 that may implement the techniques described in this disclosure. Video encoder 20 may perform intra and inter coding of video blocks within video slices. Intra coding rely on spatial prediction to reduce or eliminate spatial redundancy in a given video frame or video in an image. Intercoding relies on temporal prediction to reduce or eliminate temporal redundancy in video in adjacent frames or pictures of the video sequence. The intra mode (I mode) may refer to any of a number of spatial based compression modes. Inter modes such as unidirectional prediction (P mode) and bidirectional prediction (B mode) may refer to any of several time-based compression modes.

도 12의 예에서, 비디오 인코더 (20) 는 구획화 모듈 (35), 예측 모듈 (41), 참조 화상 메모리 (64), 합산기 (50), 변환 모듈 (52), 양자화 모듈 (54), 및 엔트로피 인코딩 모듈 (56) 을 구비한다. 예측 모듈 (41) 은 모션 추정 모듈 (42), 모션 보상 모듈 (44), 및 인트라 예측 모듈 (46) 을 구비한다. 비디오 블록 복원을 위해, 비디오 인코더 (20) 는 또한 역 양자화 모듈 (58), 역 변환 모듈 (60), 및 합산기 (62) 를 구비한다. 블록화제거 (deblocking) 필터 (도 12에서 미도시) 가 블록 경계들을 필터링하여 복원된 비디오로부터 블록현상 (blockiness) 아티팩트들을 제거하기 위해 또한 포함될 수도 있다. 원한다면, 블록화제거 필터는 통상 합산기 (62) 의 출력을 필터링할 것이다. 부가적인 루프 필터들 (인 루프 또는 포스트 루프) 이 또한 블록화제거 필터에 부가적으로 사용될 수도 있다.12, the video encoder 20 includes a compartmenting module 35, a prediction module 41, a reference picture memory 64, a summer 50, a conversion module 52, a quantization module 54, And an entropy encoding module 56. The prediction module 41 includes a motion estimation module 42, a motion compensation module 44, and an intra prediction module 46. [ For video block reconstruction, the video encoder 20 also includes an inverse quantization module 58, an inverse transform module 60, and a summer 62. A deblocking filter (not shown in FIG. 12) may also be included to filter block boundaries to remove blockiness artifacts from the reconstructed video. If desired, the deblocking filter will typically filter the output of the summer 62. Additional loop filters (in-loop or post-loop) may also be used in addition to the deblocking filter.

도 12에 도시된 바와 같이, 비디오 인코더 (20) 는 비디오 데이터를 수신하고, 구획화 모듈 (35) 은 그 데이터를 비디오 블록들로 구획한다. 구획화 모듈 (35) 은 예측 모듈 (41) 과 연계하여 작업하여 비디오 데이터를 구획하는 방법을 결정할 수도 있다. 일부 경우들에서, 구획화 모듈 및/또는 예측 모듈 (41) 은 레이트 왜곡 분석에 기초하여 비디오 데이터를 구획할 수도 있다. 수신된 비디오 데이터는 위에서 설명된 샘플 포맷들 중 임의의 것에 따라 포맷될 수도 있다. 예를 들어, 비디오 데이터는 4:2:2 샘플 포맷에 따라 포맷될 수도 있다. 구획화는 비디오 데이터를 슬라이스들, 타일들, 또는 다른 큰 단위들로의 구획하는 것, 뿐만 아니라, 예컨대, LCU들 및 CU들의 쿼드트리 구조에 따른 비디오 블록 구획화를 포함할 수도 있다. 비디오 인코더 (20) 는 일반적으로 인코딩될 비디오 슬라이스 내의 비디오 블록들을 인코딩하는 컴포넌트들을 예시한다. 슬라이스는 다수의 비디오 블록들로 (그리고 어쩌면 타일들이라고 지칭된 비디오 블록들의 세트들로) 나누어질 수도 있다. 일부 예들에서, 구획화 모듈 (35) 은 도 8a 내지 도 8d 및 도 9에 관해 위에서 설명된 기법들에 따라 비디오 데이터를 구획할 수도 있다. 예를 들어, 구획 모듈 (35) 은 비디오 데이터의 루마 성분에 대한 잔차 값들의 N 바이 N 어레이와 크로마 성분에 대한 잔차 값들의 2 개의 대응하는 N/2 바이 N/2 서브 어레이가 예측 코딩 프로세스의 결과로서 생성되도록 비디오 데이터를 구획할 수도 있다.As shown in FIG. 12, the video encoder 20 receives video data, and the segmentation module 35 divides the data into video blocks. The segmentation module 35 may work in conjunction with the prediction module 41 to determine how to partition the video data. In some cases, the segmentation module and / or prediction module 41 may partition the video data based on a rate distortion analysis. The received video data may be formatted according to any of the sample formats described above. For example, the video data may be formatted according to a 4: 2: 2 sample format. The partitioning may include partitioning the video data into slices, tiles, or other large units as well as video block segmentation according to a quadtree structure of LCUs and CUs, for example. Video encoder 20 generally illustrates components for encoding video blocks within a video slice to be encoded. A slice may be divided into a number of video blocks (and possibly sets of video blocks, referred to as tiles). In some instances, the segmentation module 35 may segment the video data according to the techniques described above with respect to Figures 8A-8D and 9. For example, the partitioning module 35 may include an N by N array of residual values for the luma component of the video data and two corresponding N / 2 by N / 2 subarrays of residual values for the chroma component, And divide the video data to be generated as a result.

예측 모듈 (41), 에러 결과들 (예컨대, 코딩 레이트 및 왜곡의 레벨) 에 기초한 현재 비디오 블록에 대해, 복수의 가능한 코딩 모드들 중 하나, 이를테면 복수의 인트라 코딩 모드들 중 하나 또는 복수의 인터 코딩 모드들 중 하나를 선택할 수도 있다. 예측 모듈 (41) 은 결과적인 인트라 코딩된 또는 인터 코딩된 블록을 잔차 블록 데이터를 생성하는 합산기 (50) 및 참조 화상로서 사용하기 위해 인코딩된 블록을 복원하는 합산기 (62) 에 제공할 수도 있다.Prediction module 41, for a current video block based on error results (e.g., the level of coding rate and distortion), one of a plurality of possible coding modes, such as one or more of the plurality of intra- One of the modes may be selected. The prediction module 41 may provide the resulting intra-coded or inter-coded block to a summer 50 which generates residual block data and to a summer 62 which restores the encoded block for use as a reference picture have.

예측 모듈 (41) 내의 인트라 예측 모듈 (46) 은 코딩될 현재 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃 블록들을 기준으로 현재 비디오 블록의 인트라 예측 코딩을 수행하여 공간적 압축을 제공할 수도 있다. 예측 모듈 (41) 내의 모션 추정 모듈 (42) 및 모션 보상 모듈 (44) 은 하나 이상의 참조 화상들에서의 하나 이상의 예측 블록들을 기준으로 현재 비디오 블록의 인터 예측 코딩을 수행하여 시간적 압축을 제공한다.Intraprediction module 46 in prediction module 41 may perform intra-prediction coding of the current video block based on one or more neighboring blocks in the same frame or slice as the current block to be coded to provide spatial compression. The motion estimation module 42 and the motion compensation module 44 in the prediction module 41 perform temporal compression by performing inter-prediction coding of the current video block on the basis of one or more prediction blocks in one or more reference pictures.

모션 추정 모듈 (42) 은 비디오 시퀀스에 대한 미리 결정된 패턴에 따라 비디오 슬라이스에 대한 인터 예측 모드를 결정하도록 구성될 수도 있다. 미리 결정된 패턴은 시퀀스에서의 비디오 슬라이스들을 P 슬라이스들 또는 일반화된 P/B (GBP) 슬라이스들로서 지정할 수도 있다. 모션 추정 모듈 (42) 과 모션 보상 모듈 (44) 은 고도로 통합될 수도 있지만 개념상의 목적들을 위해 별개로 예시된다. 모션 추정 모듈 (42) 에 의해 수행된 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어, 참조 화상 내의 예측 블록에 대한 현재 비디오 프레임 또는 화상 내의 비디오 블록의 PU의 변위 (displacement) 를 나타낼 수도 있다.The motion estimation module 42 may be configured to determine an inter prediction mode for the video slice according to a predetermined pattern for the video sequence. The predetermined pattern may specify video slices in the sequence as P slices or generalized P / B (GBP) slices. The motion estimation module 42 and the motion compensation module 44 may be highly integrated but are separately illustrated for conceptual purposes. The motion estimation performed by the motion estimation module 42 is a process of generating motion vectors that estimate motion for video blocks. The motion vector may indicate, for example, the displacement of the PU of the current video frame or the video block in the picture for the prediction block in the reference picture.

예측 블록은, 인터 코딩의 경우, 차의 절대값 합 (SAD), 차의 제곱 합 (SSD), 또는 다른 차이 메트릭들에 의해 결정될 수도 있는, 화소 차이의 관점에서 코딩될 비디오 블록의 PU에 밀접하게 매칭된다고 생각되는 블록일 수도 있다. 대안으로, 예측 블록은, 인트라 코딩의 경우, 하나 이상의 이웃 블록들로부터의 화소 값들에 관해 공간 예측에 기초하여 형성되는 블록일 수도 있다. 일부 예들에서, 인트라 예측을 위해, 비디오 인코더 (20) 는 참조 화상 메모리 (64) 에 저장된 참조 화상들의 부 정수 (sub-integer) 화소 위치들에 대한 값들을 계산할 수도 있다. 예를 들어, 비디오 인코더 (20) 는 참조 화상의 1/4 화소 위치들, 1/8 화소 위치들, 또는 다른 분수 화소 위치들의 값들을 보간할 수도 있다. 그러므로, 모션 추정 모듈 (42) 은 풀 (full) 화소 위치들 및 분수 화소 위치들에 대한 모션 검색을 수행하고 분수 화소 정밀도를 갖는 모션 벡터를 출력할 수도 있다.The prediction block can be used to predict the PU of the video block to be coded in terms of pixel difference, which may be determined by the absolute difference value sum (SAD) of the difference, the sum of squares of the difference (SSD) It may be a block that is thought to match. Alternatively, the prediction block may be a block that is formed based on spatial prediction with respect to pixel values from one or more neighboring blocks in the case of intra-coding. In some examples, for intra prediction, the video encoder 20 may calculate values for sub-integer pixel positions of reference pictures stored in the reference picture memory 64. For example, the video encoder 20 may interpolate values of quarter pixel positions, 1/8 pixel positions, or other fractional pixel positions of the reference picture. Thus, the motion estimation module 42 may perform a motion search for full pixel positions and fractional pixel positions and output a motion vector with fractional pixel precision.

모션 추정 모듈 (42) 은 PU의 위치와 참조 화상의 예측 블록의 위치를 비교함으로써 인터 코딩된 슬라이스에서의 비디오 블록의 PU에 대한 모션 벡터를 계산한다. 참조 화상은 참조 화상 메모리 (64) 에 저장된 하나 이상의 참조 화상들을 각각 식별하는 제 1 참조 화상 리스트 (리스트 0) 또는 제 2 참조 화상 리스트 (리스트 1) 로부터 선택될 수도 있다. 모션 추정 모듈 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 모듈 (56) 및 모션 보상 모듈 (44) 로 전송한다.The motion estimation module 42 calculates a motion vector for the PU of the video block in the inter-coded slice by comparing the position of the PU with the position of the prediction block of the reference picture. The reference picture may be selected from a first reference picture list (List 0) or a second reference picture list (List 1) that respectively identifies one or more reference pictures stored in the reference picture memory 64. The motion estimation module 42 transmits the calculated motion vector to the entropy encoding module 56 and the motion compensation module 44.

모션 보상 모듈 (44) 에 의해 수행되는 모션 보상은 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페치하는 것 또는 생성하는 것, 어쩌면 부 화소 (sub-pixel) 정밀도로의 보간들을 수행하는 것을 수반할 수도 있다. 현재 비디오 블록의 PU에 대한 모션 벡터의 수신 시, 모션 보상 모듈 (44) 은 참조 화상 리스트들 중 하나에서 모션 벡터가 가리키는 예측 블록을 찾을 수도 있다.The motion compensation performed by the motion compensation module 44 may include fetching or generating a prediction block based on the motion vector determined by motion estimation, possibly performing interpolation to sub-pixel precision It may be accompanied. Upon receipt of the motion vector for the PU of the current video block, the motion compensation module 44 may look for the prediction block indicated by the motion vector in one of the reference picture lists.

비디오 인코더 (20) 는, 코딩되고 있는 현재 비디오 블록의 화소 값들로부터 예측 블록의 화소 값들을 감산하여 화소 차이 값들을 형성함으로써, 인터 또는 인트라 코딩을 위한, 잔차 비디오 블록을 형성한다. 화소 차이 값들은 블록에 대한 잔차 데이터를 형성하고, 루마 및 크로마 차이 성분들 양쪽 모두를 포함할 수도 있다. 합산기 (50) 는 이 감산 동작을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 모션 보상 모듈 (44) 은 또한 비디오 슬라이스의 비디오 블록들의 디코딩 시에 비디오 디코더 (30) 에 의한 사용을 위해 비디오 블록들 및 비디오 슬라이스에 연관된 신택스 엘리먼트들을 생성할 수도 있다.The video encoder 20 forms residual video blocks for inter or intra coding by subtracting the pixel values of the prediction block from the pixel values of the current video block being coded to form pixel difference values. The pixel difference values form residual data for the block and may include both luma and chroma difference components. The summer 50 represents a component or components that perform this subtraction operation. The motion compensation module 44 may also generate the video blocks and the syntax elements associated with the video slice for use by the video decoder 30 upon decoding the video blocks of the video slice.

인트라 예측 모듈 (46) 은, 위에서 설명된 바와 같이, 모션 추정 모듈 (42) 및 모션 보상 모듈 (44) 에 의해 수행된 인터 예측에 대한 대안으로서 현재 블록을 인트라 예측할 수도 있다. 특히, 인트라 예측 모듈 (46) 은 현재 블록을 인코딩하는데 사용하기 위한 인트라 예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라 예측 모듈 (46) 은 예컨대, 개별 인코딩 과정들 동안에 다양한 인트라 예측 모드들을 이용하여 현재 블록을 인코딩할 수도 있고, 인트라 예측 모듈 (46) (또는 일부 예들에서, 모드 선택 모듈 (40)) 은 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다.Intra prediction module 46 may intrapredge the current block as an alternative to the inter prediction performed by motion estimation module 42 and motion compensation module 44, as described above. In particular, intra prediction module 46 may determine an intra prediction mode for use in encoding the current block. In some instances, the intra-prediction module 46 may encode the current block using various intra-prediction modes, for example, during the individual encoding processes, and the intra-prediction module 46 (or in some examples, ) May select an appropriate intra prediction mode to use from the tested modes.

예를 들어, 인트라 예측 모듈 (46) 은 다양한 테스트된 인트라 예측 모드들에 대한 레이트 왜곡 분석을 이용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중에서 최상의 레이트 왜곡 특성들을 갖는 인트라 예측 모드를 선택할 수도 있다. 레이트 왜곡 분석은 일반적으로, 인코딩된 블록 및 인코딩된 블록을 생성하기 위해 인코딩되었던 원래의 인코딩되지 않은 블록 사이의 왜곡 (또는 에러) 의 양, 뿐만 아니라 인코딩된 블록을 생성하는데 사용되는 비트 레이트 (다시 말하면, 비트들의 수) 를 결정한다. 인트라 예측 모듈 (46) 은 어떤 인트라 예측 모드가 그 블록에 대한 최선의 레이트 왜곡 값을 나타내는지를 결정하기 위해 여러 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율들을 결정할 수도 있다. 레이트 왜곡 분석은 컬러 성분들의 조합에 대해 수행될 수도 있다는 것에 주의해야 한다.For example, intra prediction module 46 may calculate rate distortion values using rate distortion analysis for various tested intra prediction modes, and may also select an intra prediction mode with the best rate distortion characteristics among the tested modes have. The rate distortion analysis generally includes the amount of distortion (or error) between the original un-encoded block that was encoded to produce the encoded block and the encoded block, as well as the bit rate used to generate the encoded block The number of bits). Intra prediction module 46 may determine ratios from distortions and rates for various encoded blocks to determine which intra prediction mode represents the best rate distortion value for that block. It should be noted that the rate distortion analysis may be performed on a combination of color components.

어떤 경우에서는, 블록에 대한 인트라 예측 모드를 선택한 후, 인트라 예측 모듈 (46) 은 그 블록에 대한 선택된 인트라 예측 모드를 나타내는 정보를 엔트로피 코딩 모듈 (56) 에 제공할 수도 있다. 엔트로피 코딩 모듈 (56) 은 본 개시물의 기법들에 따른 선택된 인트라 예측 모드를 나타내는 정보를 인코딩할 수도 있다. 비디오 인코더 (20) 는 송신되는 비트스트림에 구성 데이터를 포함시킬 수도 있으며, 그 구성 데이터는 복수의 인트라 예측 모드 인덱스 표들 및 복수의 수정된 인트라 예측 모드 인덱스 표들 (또한 코드워드 매핑 표들이라고 지칭됨), 다양한 블록들에 대한 콘텍스트들을 인코딩하는 정의들, 및 가장 있음직한 인트라 예측 모드의 표시들, 인트라 예측 모드 인덱스 표, 및 콘텍스트들의 각각에 대한 사용을 위한 수정된 인트라 예측 모드 인덱스 표를 포함할 수도 있다.In some cases, after selecting the intra prediction mode for the block, the intra prediction module 46 may provide information to the entropy coding module 56 indicating the selected intra prediction mode for that block. The entropy coding module 56 may encode information indicating a selected intra prediction mode according to the techniques of the present disclosure. The video encoder 20 may include configuration data in the transmitted bitstream, the configuration data including a plurality of intra-prediction mode index tables and a plurality of modified intra-prediction mode index tables (also referred to as codeword mapping tables) Definitions that encode the contexts for the various blocks and indications of the most likely intra prediction modes, an intra prediction mode index table, and a modified intra prediction mode index table for use with each of the contexts have.

예측 모듈 (41) 이 인터 예측 또는 인트라 예측 중 어느 하나를 통해 현재 비디오 블록에 대한 예측 블록을 생성한 후, 비디오 인코더 (20) 는 현재 비디오 블록으로부터 예측 블록을 감산함으로써 잔차 비디오 블록을 형성한다. 잔차 블록에서의 잔차 비디오 데이터는, 하나 이상의 TU들에 포함되고 변환 모듈 (52) 에 인가될 수도 있다. 변환 모듈 (52) 은 비디오 인코더 (20) 의 컴포넌트, 모듈 또는 기능 유닛을 말하고, 변환 및 양자화 프로세스를 위한 기본 데이터 단위인 TU와 혼동되지 않아야 한다는 것에 주의한다. 변환 모듈 (52) 은 변환, 이를테면 이산 코사인 변환 (DCT) 또는 개념적으로 유사한 변환을 사용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환시킨다. 변환 모듈 (52) 은 잔차 비디오 데이터를 화소 도메인으로부터 변환 도메인, 이를테면 주파수 도메인으로 변환할 수도 있다. 변환 모듈 (52) 은 결과적인 변환 계수들을 양자화 모듈 (54) 로 전송할 수도 있다.After the prediction module 41 generates a prediction block for the current video block through either inter-prediction or intra-prediction, the video encoder 20 forms a residual video block by subtracting the prediction block from the current video block. The residual video data in the residual block may be included in one or more TUs and applied to the transform module 52. It should be noted that the transformation module 52 refers to a component, module or functional unit of the video encoder 20 and should not be confused with TU which is the basic data unit for the transformation and quantization process. The transform module 52 transforms the residual video data into residual transform coefficients using a transform, such as a discrete cosine transform (DCT) or a conceptually similar transform. The transform module 52 may transform the residual video data from the pixel domain into a transform domain, such as the frequency domain. The transform module 52 may send the resulting transform coefficients to the quantization module 54. [

위에서 설명된 바와 같이, 일부 예들에서, 구획화 모듈 (35) 은, 도 8a 내지 도 8d 및 도 9에 관해 위에서 설명된 기법들에 따라 비디오 데이터를 구획할 수도 있다. 변환 모듈 (52) 은 또한 위에서 설명된 기법들에 따라 비디오 데이터를 구획할 수도 있다. 하나의 예에서, 변환 모듈 (52) 은, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N 바이 N 어레이를 수신하며, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2 바이 N 어레이를 수신하며, 크로마 성분에 대한 잔차 값들의 N/2 바이 N 어레이를 크로마 잔차 값들의 2 개의 N/2 바이 N/2 서브 어레이들로 구획하고, 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하도록 구성될 수도 있다.As described above, in some examples, the segmentation module 35 may segment the video data according to the techniques described above with respect to Figures 8A-8D and 9. The transformation module 52 may also partition the video data according to the techniques described above. In one example, the transform module 52 receives an N by N array of residual values for the luma component of the video data, and receives the corresponding N / 2 by N array of residual values for the chroma component of the video data Divides the N / 2 by N array of residual values for the chroma component into two N / 2 by N / 2 subarrays of chroma residual values, and performs a transform on each of the subarrays of chroma residual values ≪ / RTI > to produce transform coefficients for the chroma component.

본원에서 설명되는 기법들은 일반적으로 비디오 인코더 (20) 에 의해 수행될 수도 있고 비디오 인코더에 포함된 컴포넌트들은 본원에서 설명되는 기법들의 상이한 양태들을 수행할 수도 있다는 것에 주의해야 한다. 예를 들어, 본원에서 설명된 기법들에 따르면, 구획화 모듈 (35) 은 잔차 값들을 생성할 목적으로 처음에는 비디오 데이터를 구획할 수도 있고 변환 모듈 (52) 은 변환 계수들을 생성할 목적으로 비디오 데이터를 추가로 구획할 수도 있다.It should be noted that the techniques described herein may generally be performed by the video encoder 20 and that the components included in the video encoder may perform different aspects of the techniques described herein. For example, according to the techniques described herein, the segmentation module 35 may initially partition the video data for the purpose of generating residual values and the conversion module 52 may convert the video data As shown in Fig.

양자화 모듈 (54) 은 변환 계수들을 양자화하여 비트 레이트를 더욱 감소시킨다. 양자화 프로세스는 계수들의 일부 또는 전부에 연관된 비트 깊이를 감소시킬 수도 있다. 양자화 정도는 양자화 파라미터를 조정함으로써 수정될 수도 있다. 일부 예들에서, 양자화 모듈 (54) 은 그 다음에 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안으로, 엔트로피 인코딩 모듈 (56) 이 스캔을 수행할 수도 있다.The quantization module 54 quantizes the transform coefficients to further reduce the bit rate. The quantization process may reduce the bit depth associated with some or all of the coefficients. The degree of quantization may be modified by adjusting the quantization parameter. In some instances, the quantization module 54 may then perform a scan of the matrix containing the quantized transform coefficients. Alternatively, the entropy encoding module 56 may perform the scan.

양자화를 뒤따라, 엔트로피 인코딩 모듈 (56) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 모듈 (56) 은 콘텍스트 적응 가변 길이 코딩 (CAVLC), 콘텍스트 적응 이진 산술 코딩 (CABAC), 신택스 기반 콘텍스트 적응 이진 산술 코딩 (SBAC), 확률 간격 구획화 엔트로피 (PIPE) 코딩 또는 다른 엔트로피 인코딩 방법론 또는 기법을 수행할 수도 있다. 엔트로피 코딩 모듈 (56) 에 의한 엔트로피 코딩에 뒤이어, 인코딩된 비트스트림은 비디오 디코더 (30) 로 송신되거나 또는 비디오 디코더 (30) 에 의한 취출 또는 나중의 송신을 위해 보관될 수도 있다. 엔트로피 인코딩 모듈 (56) 은 또한 코딩되고 있는 현재 비디오 슬라이스에 대한 모션 벡터들 및 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.Following the quantization, the entropy encoding module 56 entropy encodes the quantized transform coefficients. For example, the entropy encoding module 56 may perform 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) Entropy encoding methodology or techniques. Following entropy coding by the entropy coding module 56, the encoded bit stream may be transmitted to the video decoder 30 or may be archived for later retrieval or later transmission by the video decoder 30. Entropy encoding module 56 may also entropy encode motion vectors and other syntax elements for the current video slice being coded.

역 양자화 모듈 (58) 과 역 변환 모듈 (60) 은 역 양자화 및 역 변환을 각각 적용하여, 참조 화상의 참조 블록으로서 나중에 사용하기 위해 화소 도메인에서 잔차 블록을 복원한다. 모션 보상 모듈 (44) 은 참조 화상 리스트들 중 하나 내의 참조 화상들 중 하나의 참조 화상의 예측 블록에 잔차 블록을 가산함으로써 참조 블록을 계산할 수도 있다. 모션 보상 모듈 (44) 은 또한 하나 이상의 보간 필터들을 복원된 잔차 블록에 적용하여 모션 추정에서 사용하기 위한 부 정수 화소 값들을 계산할 수도 있다. 합산기 (62) 는 복원된 잔차 블록을 모션 보상 모듈 (44) 에 의해 생성된 모션 보상된 예측 블록에 가산하여, 참조 화상 메모리 (64) 에 저장하기 위한 참조 블록을 생성한다. 참조 블록은 모션 추정 모듈 (42) 및 모션 보상 모듈 (44) 에 의해 후속 비디오 프레임 또는 화상에서 블록을 인터 예측하기 위한 참조 블록으로서 사용될 수도 있다.The inverse quantization module 58 and the inverse transform module 60 respectively apply the inverse quantization and the inverse transform to restore the residual block in the pixel domain for later use as a reference block of the reference picture. The motion compensation module 44 may calculate the reference block by adding the residual block to the prediction block of one of the reference pictures in one of the reference picture lists. The motion compensation module 44 may also apply one or more interpolation filters to the reconstructed residual block to compute the negative integer pixel values for use in motion estimation. The adder 62 adds the reconstructed residual block to the motion compensated prediction block generated by the motion compensation module 44 and generates a reference block for storage in the reference image memory 64. [ The reference block may be used as a reference block for inter-prediction of a block in a subsequent video frame or picture by the motion estimation module 42 and the motion compensation module 44. [

이런 방식으로, 도 12의 비디오 인코더 (20) 는, 본 개시물에서 설명된 기법들에 따라서, 비디오 데이터의 루마 성분에 대한 잔차 값들의 N 바이 N 어레이를 수신하며, 비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2 바이 N 어레이를 수신하며, 크로마 성분에 대한 잔차 값들의 N/2 바이 N 어레이를 크로마 잔차 값들의 2 개의 N/2 바이 N/2 서브 어레이들로 구획하고, 크로마 잔차 값들의 서브 어레이들의 각각에 대해 변환을 수행하는 것에 의해 크로마 성분에 대한 변환 계수들을 생성하도록 구성된 비디오 인코더의 일 예를 나타낸다. 비디오 인코더 (20) 는 루마 성분에 대응하는 각각의 크로마 성분에 대한 변환 계수들의 2 개의 N/2 바이 N/2 서브 어레이들을 생성할 수도 있다.In this manner, the video encoder 20 of FIG. 12 receives an N by N array of residual values for the luma component of the video data, in accordance with the techniques described in this disclosure, Binar array of residual values for the chroma component into two N / 2 by N / 2 subarrays of chroma residual values, and a chroma < RTI ID = 0.0 > And generates transform coefficients for the chroma component by performing a transform on each of the subarrays of residual values. Video encoder 20 may generate two N / 2 by N / 2 subarrays of transform coefficients for each chroma component corresponding to a luma component.

도 13은 잔차 값들을 구획하고 크로마 블록들에 대한 변환 계수들을 생성하는 일 예의 방법을 도시하는 흐름도이다. 비록 도 13의 프로세스가 비디오 인코더 (20) 에 관해 아래에서 설명되고 있지만, 그 프로세스는 비디오 인코더 (20), 구획화 모듈 (35), 변환 모듈 (52) 및/또는 비디오 인코더 (20) 의 다른 컴포넌트들의 임의의 조합에 의해 수행될 수도 있다.13 is a flow chart illustrating an example method of partitioning residual values and generating transform coefficients for chroma blocks. Although the process of Figure 13 is described below with respect to video encoder 20, the process may be performed by video encoder 20, compartment module 35, conversion module 52 and / or other components of video encoder 20 May be performed by any combination of the above.

도 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) 는 잔차 값들의 어레이들 및 서브 어레이들을 획득하고 루마 및 크로마 성분들의 각각에 대한 어레이들에 대해 변환들을 수행할 수도 있다.As illustrated in FIG. 13, the video encoder 20 obtains an N by N array of residual values for the luma component of the video data (1302). The video encoder 20 obtains a corresponding N / 2 by N array of residual values for the chroma component of the video data (1304). It should be noted that obtaining an array of residual values may refer to a process in which a video encoder uses an array of residual values or receives an array of residual values. Chroma component may include any of the U, and V, and C r and C b chroma components described above. The residual values may be generated by the video encoder 20 as part of the predictive encoding technique described above. If the N / 2 by N array of residual values for the chroma component corresponds to an N by N array of residual values for the luma component, the arrays are formatted according to the 4: 2: 2 format of video data as described above And may be associated with a CU of video data. The video encoder 20 divides the N / 2 by N array of residual values for the chroma component into two N / 2 by N / 2 subarrays of chroma residual values (1306). The video encoder 20 generates transform coefficients for the chroma component by performing a transform on each of the subarrays of chroma residual values (1308). As described above, performing transformations on each of the two N / 2 by N / 2 subarrays results in a subjective appearance of the block phenomenon as compared to performing transforms on the N / 2 by N array ≪ / RTI > The video encoder 20 outputs the transform coefficients (1310). In one example, the video encoder 20 may output the transform coefficients as part of the encoded bit stream to the video decoder. In other instances, it should be noted that the output of the transform coefficients may include outputting the transform coefficients to an entropy encoder. The entropy coder may then output the entropy encoded transform coefficients to the video decoder as part of the encoded bit stream. It should be noted that although the method illustrated in Figure 13 illustrates generating transform coefficients for a single chroma component, video encoder 20 may also generate transform coefficients for other components in a similar manner. In other words, the video encoder 20 may acquire arrays and subarrays of residual values and perform transformations on arrays for each of the luma and chroma components.

도 14는 본 개시물에서 설명되는 기법들을 이행할 수도 있는 일 예의 비디오 디코더 (30) 를 도시하는 블록도이다. 도 14의 예에서, 비디오 디코더 (30) 는 엔트로피 디코딩 모듈 (80), 예측 모듈 (81), 역 양자화 모듈 (86), 역 변환 모듈 (88), 합산기 (90), 및 참조 화상 메모리 (92) 를 구비한다. 예측 모듈 (81) 은 모션 보상 모듈 (82) 과 인트라 예측 모듈 (84) 을 구비한다. 비디오 디코더 (30) 는, 일부 예들에서, 도 12로부터 비디오 인코더 (20) 에 관해 설명된 인코딩 과정 (pass) 에 일반적으로 역인 디코딩 과정을 수행할 수도 있다.14 is a block diagram illustrating an example video decoder 30 that may implement the techniques described in this disclosure. 14, the video decoder 30 includes an entropy decoding module 80, a prediction module 81, an inverse quantization module 86, an inverse transformation module 88, a summer 90, 92). The prediction module 81 includes a motion compensation module 82 and an intra prediction module 84. The video decoder 30 may, in some instances, perform a decoding process that is generally inverse to the encoding pass described with respect to the video encoder 20 from Fig.

디코딩 프로세스 동안, 비디오 디코더 (30) 는 인코딩된 비디오 슬라이스의 비디오 블록들 및 연관된 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 비디오 인코더 (20) 로부터 수신한다. 비디오 디코더 (30) 의 엔트로피 디코딩 모듈 (80) 은 그 비트스트림을 엔트로피 디코딩하여 양자화된 계수들, 모션 벡터들, 및 다른 신택스 엘리먼트들을 생성한다. 엔트로피 디코딩 모듈 (80) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 모듈 (81) 에 포워딩한다. 비디오 디코더 (30) 는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 엘리먼트들을 수신할 수도 있다.During the decoding process, the video decoder 30 receives from the video encoder 20 an encoded video bitstream representing the video blocks of the encoded video slice and the associated syntax elements. The entropy decoding module 80 of the video decoder 30 entropy-decodes the bitstream to generate quantized coefficients, motion vectors, and other syntax elements. The entropy decoding module 80 forwards the motion vectors and other syntax elements to the prediction module 81. Video decoder 30 may receive syntax elements at a video slice level and / or a video block level.

비디오 슬라이스가 인트라 코딩된 (I) 슬라이스로서 코딩되는 경우, 예측 모듈 (81) 의 인트라 예측 모듈 (84) 은 현재 비디오 슬라이스의 비디오 블록을 위한 예측 데이터를 현재 프레임 또는 화상의 이전에 디코딩된 블록들로부터의 데이터 및 시그널링된 인트라 예측 모드에 기초하여 생성할 수도 있다. 비디오 프레임이 인터-코딩식 (즉, B, P 또는 GPB) 슬라이스로서 코딩되는 경우, 예측 모듈 (81) 의 모션 보상 모듈 (82) 은 엔트로피 디코딩 모듈 (80) 로부터 수신된 다른 신택스 엘리먼트들 및 모션 벡터들에 기초하여, 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 그 예측 블록들은 참조 화상 리스트들 중 하나 내의 참조 화상들 중 하나로부터 생성될 수도 있다. 비디오 디코더 (30) 는 참조 화상 메모리 (92) 에 저장된 참조 화상들에 기초하여 디폴트 구성 기법들을 이용하여, 참조 프레임 리스트들, 리스트 0 및 리스트 1을 구성할 수도 있다.If the video slice is coded as a intra-coded (I) slice, the intra prediction module 84 of the prediction module 81 predicts the prediction data for the video block of the current video slice to the current frame or the previously decoded blocks And a signaled intra-prediction mode. When the video frame is coded as an inter-coding expression (i.e., B, P or GPB) slice, the motion compensation module 82 of the prediction module 81 detects the motion of the other syntax elements received from the entropy decoding module 80, Based on the vectors, prediction blocks for the video block of the current video slice are generated. The prediction blocks may be generated from one of the reference pictures in one of the reference picture lists. Video decoder 30 may construct reference frame lists, list 0 and list 1, using default construction techniques based on the reference pictures stored in reference picture memory 92. [

모션 보상 모듈 (82) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 그 예측 정보를 이용하여 디코딩되고 있는 현재 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 모션 보상 모듈 (82) 은 수신된 신택스 엘리먼트들의 일부를 이용하여, 비디오 슬라이스의 비디오 블록들을 코딩하는데 사용된 예측 모드 (예컨대, 인트라 또는 인터 예측), 인터 예측 슬라이스 유형 (예컨대, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 그 슬라이스에 대한 참조 화상 리스트들 중 하나 이상에 대한 구축 정보, 슬라이스의 각각의 인터 인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터 코딩된 비디오 블록에 대한 인터 예측 스테이터스, 및 현재 비디오 슬라이스 내의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.The motion compensation module 82 determines the prediction information for the video block of the current video slice by parsing the motion vectors and other syntax elements and uses the prediction information to generate prediction blocks for the current video block being decoded . For example, the motion compensation module 82 may use some of the received syntax elements to determine the prediction mode (e.g., intra or inter prediction) used to code the video blocks of the video slice, the type of inter prediction slice (e.g., B The construction information for one or more of the reference picture lists for that slice, the motion vectors for each inter-encoded video block of the slice, the respective inter-coded video blocks of the slice, And other information for decoding the video blocks in the current video slice.

모션 보상 모듈 (82) 은 또한 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 모듈 (82) 은 비디오 블록들의 인코딩 동안에 비디오 인코더 (20) 에 의해 사용된 것과 같은 보간 필터들을 사용하여 참조 블록들의 부 정수 화소들에 대한 보간된 값들을 계산할 수도 있다. 이 경우, 모션 보상 모듈 (82) 은 비디오 인코더 (20) 에 의해 사용된 보간 필터들을 수신된 신택스 엘리먼트들로부터 결정하고 그 보간 필터들을 사용하여 예측 블록들을 생성할 수도 있다.The motion compensation module 82 may also perform interpolation based on the interpolation filters. Motion compensation module 82 may use interpolation filters such as those used by video encoder 20 during encoding of video blocks to compute interpolated values for the sub-integer pixels of the reference blocks. In this case, the motion compensation module 82 may determine the interpolation filters used by the video encoder 20 from the received syntax elements and generate the prediction blocks using the interpolation filters.

역 양자화 모듈 (86) 은 비트스트림에서 제공되고 엔트로피 디코딩 모듈 (80) 에 의해 디코딩된 양자화된 변환 계수들을 역 양자화, 즉, 탈양자화 (dequantize) 한다. 역 양자화 프로세스는 양자화 정도와, 마찬가지로 적용되어야 할 역 양자화의 정도를 결정하기 위해, 비디오 슬라이스 내의 각각의 비디오 블록에 대해 비디오 인코더 (20) 에 의해 계산된 양자화 파라미터의 사용을 포함할 수도 있다.The dequantization module 86 dequantizes, i.e. dequantizes, the quantized transform coefficients provided in the bitstream and decoded by the entropy decoding module 80. The dequantization process may include the use of quantization parameters calculated by the video encoder 20 for each video block in the video slice to determine the degree of quantization and the degree of dequantization to be applied as well.

역 변환 모듈 (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 서브 어레이들의 각각을 조합하도록 구성될 수도 있다.The inverse transform module 88 applies an inverse transform, e.g., an inverse DCT, inverse integer transform, or a conceptually similar inverse transform process, to the transform coefficients to receive the transform coefficients and generate the residual blocks in the pixel domain. In some examples, the inverse transform module may receive transform coefficients that have been generated by the video encoder based on the transform unit segmentation techniques described above with respect to Figs. 8A and 8B and Fig. In one example, the inverse transform module 88 receives an N by N array of transform coefficients for the luma component of the video data and generates a plurality of corresponding N / 2 by N / N transform coefficients for the chroma component of the video data, 2 sub-arrays, performing an inverse transform on each of the N / 2 by N / 2 subarrays of chroma transform coefficients to produce a plurality of N / 2 by N / 2 subarrays of residual sample values, / RTI > N / 2 subarrays of residual sample values to form an N / 2 by N array of residual sample values for each of the plurality of samples.

모션 보상 모듈 (82) 또는 인트라 예측 모듈 (84) 이 현재 비디오 블록에 대한 예측 블록을 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 생성한 후, 비디오 디코더 (30) 는 역 변환 모듈 (88) 로부터의 잔차 블록들을 모션 보상 모듈 (82) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (90) 는 이 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다.After the motion compensation module 82 or the intra prediction module 84 generates a prediction block for the current video block based on the motion vectors and other syntax elements, the video decoder 30 decodes the prediction block from the inverse transform module 88 To generate decoded video blocks by summing the residual blocks of motion compensation block 82 with corresponding prediction blocks generated by motion compensation module 82. [ The summer 90 represents the components or components that perform this summation operation.

원한다면, 블록화제거 필터가 또한 블록현상 아티팩트들을 제거하기 위하여 디코딩된 블록들을 필터링하는데 적용될 수도 있다. 다른 루프 필터들이 (코딩 루프 내 또는 코딩 루프 후 중 어느 하나에서) 또한 화소 전환들을 부드럽게 하기 위해, 또는 그렇지 않으면 비디오 품질을 개선하기 위해 사용될 수도 있다. 주어진 프레임 또는 화상에서의 디코딩된 비디오 블록들은 그러면 참조 화상 메모리 (92) 에 저장되며, 그 참조 화상 메모리는 후속 모션 보상을 위해 사용되는 참조 화상들을 저장한다. 참조 화상 메모리 (92) 는 또한 디스플레이 디바이스, 이를테면 도 1의 디스플레이 디바이스 (32) 상에서의 나중의 프레젠테이션을 위해 디코딩된 비디오를 저장한다.If desired, a deblocking filter may also be applied to filter the decoded blocks to remove block developing artifacts. Other loop filters (either in the coding loop or after the coding loop) may also be used to smooth pixel transitions, or otherwise improve video quality. The decoded video blocks in a given frame or picture are then stored in a reference picture memory 92, which stores reference pictures used for subsequent motion compensation. Reference image memory 92 also stores decoded video for later presentation on a display device, such as display device 32 of FIG.

도 14의 비디오 인코더 (30) 는 본 개시물에서 설명된 기법들에 따라서, 비디오 데이터의 루마 성분에 대한 변환 계수들의 N 바이 N 어레이를 수신하며, 비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2 바이 N/2 서브 어레이들을 수신하며, 잔차 샘플 값들의 복수의 N/2 바이 N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 N/2 바이 N/2 서브 어레이들의 각각에 대해 역 변환을 수행하고 크로마 성분에 대한 잔차 샘플 값들의 N/2 바이 N 어레이를 형성하기 위해 잔차 샘플 값들의 N/2 바이 N/2 서브 어레이들의 각각을 조합하도록 구성된 비디오 디코더의 일 예를 나타낸다.The video encoder 30 of Figure 14 receives an N by N array of transform coefficients for the luma component of the video data and generates a plurality of transform coefficients for the chroma component of the video data in accordance with the techniques described in this disclosure / 2 by N / 2 subarrays of chroma transform coefficients to generate a plurality of N / 2 by N / 2 subarrays of residual sample values, And to combine each of the N / 2 by N / 2 subarrays of residual sample values to form an N / 2 by N array of residual sample values for the chroma component .

도 15는 변환 계수들로부터 크로마 블록들에 대한 잔차 값들을 생성하는 일 예의 방법을 도시하는 흐름도이다. 비록 도 15에서의 프로세스가 비디오 디코더 (30) 에 관해 아래에서 설명되지만, 그 프로세스는 비디오 디코더 (30), 엔트로피 디코딩 모듈 (80), 역 양자화 모듈 (86), 역 변환 모듈 (88) 및/또는 비디오 디코더 (30) 의 다른 컴포넌트들 중 임의의 조합에 의해 수행될 수도 있다.15 is a flow chart illustrating an example method of generating residual values for chroma blocks from transform coefficients. Although the process in FIG. 15 is described below with respect to video decoder 30, the process may be performed by video decoder 30, entropy decoding module 80, dequantization module 86, inverse transform module 88 and / Or by any combination of the other components of the video decoder 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) 는 잔차 값들을 비디오 복원 프로세스의 일부로서 출력할 수도 있다.As illustrated in FIG. 15, the video decoder 30 obtains an N by N array of transform coefficients for the luma component of the video data (1502). The video decoder 30 obtains a corresponding N / 2 by N / 2 array of transform coefficients for the chroma component of the video data (1504). The chroma component may comprise any of the U and V or Cr and Cb chroma components described herein. The transform coefficients may be generated by a video encoder as part of the predictive coding technique described herein. If the N / 2 by N / 2 subarrays of transform coefficients for the chroma component correspond to the Nby N arrays of coefficients for the luma component, then the arrays are in the 4: 2: 2 format of video data as described above And may be associated with CUs of the formatted video data. The video decoder 30 performs an inverse transform for each of the N / 2 by N / 2 subarrays of transform coefficients for the chroma component (1506). The video decoder 30 generates an array of residual values for the chroma component by combining the resulting residual values from each of the subarrays of chroma transform coefficients (1508). The video decoder 30 outputs the residuals values (1510). In one example, the video decoder 30 may output the residual values as part of the video reconstruction process.

하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 또는 그것을 통해 송신될 수도 있고 하드웨어 기반 프로세싱 유닛에 의해 실행될 수도 있다. 컴퓨터 판독가능 매체들은, 데이터 저장 매체들과 같은 유형의 (tangible) 매체에 대응하는 컴퓨터 판독가능 저장 매체, 또는 예컨대 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체들을 포함할 수도 있다. 이런 방식으로, 컴퓨터 판독가능 매체들은 일반적으로 (1) 비일시적 (non-transitory) 인 유형의 (tangible) 컴퓨터 판독가능 저장 매체들 또는 (2) 신호 또는 반송파와 같은 통신 매체에 해당할 수도 있다. 데이터 저장 매체들은 본 개시물에서 설명된 기법들의 구현을 위한 명령들, 코드 및/또는 데이터 구조들을 취출하기 위해 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 임의의 이용가능 매체들일 수도 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수도 있다.In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted via one or more instructions or code on a computer-readable medium, or may be executed by a hardware-based processing unit. Computer-readable media may be embodied in a computer-readable storage medium, such as data storage media, or any medium that facilitates the transfer of a computer program from one place to another, for example, in accordance with a communication protocol. And the like. In this way, computer-readable media may generally correspond to (1) non-transitory tangible computer-readable storage media or (2) communication media such as signals or carriers. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementation of the techniques described in this disclosure have. The computer program product may comprise a computer readable medium.

비제한적인 예로, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지, 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 소망의 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 칭해진다. 예를 들어, 명령들이 웹사이트, 서버, 또는 다른 원격 자원으로부터 동축 케이블, 광섬유 케이블, 연선 (twisted pair), 디지털 가입자 회선 (DSL), 또는 무선 기술들 이를테면 적외선, 라디오, 및/또는 마이크로파를 이용하여 송신된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체들 및 데이터 저장 매체들은 커넥션들, 반송파들, 신호들, 또는 다른 일시적인 매체들을 포함하지 않지만, 대신 비일시적 (non-transient), 유형의 저장 매체들을 지향하고 있음이 이해되어야 한다. 디스크 (disk 및 disc) 는 본원에서 사용되는 바와 같이, 콤팩트 디스크 (compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크를 포함하는데, 디스크들 (disks) 은 보통 데이터를 자기적으로 재생하지만, 디스크들 (discs) 은 레이저들로써 광적으로 데이터를 재생한다. 상기한 것들의 조합들은 또한 컴퓨터 판독가능 매체들의 범위 내에 포함되어야 한다.By way of example, and not limitation, such computer-readable storage media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, Or any other medium that can be used to store data in the form of data structures and which can be accessed by a computer. Also, any connection is properly termed a computer readable medium. For example, the instructions may be transmitted from a web site, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and / Wireless technologies such as coaxial cable, fiber optic cable, twisted pair, DSL, or infrared, radio, and microwave are included in the definition of the medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carriers, signals, or other temporal media, but instead are directed to non-transient, . Disks and discs, as used herein, include compact discs (CD), laser discs, optical discs, digital versatile discs (DVD), floppy discs and Blu- Discs usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer readable media.

명령들은 하나 이상의 프로세서들, 이를테면 하나 이상의 디지털 신호 프로세서들 (DSPs), 범용 마이크로프로세서들, 주문형 집적회로들 (ASICs), 필드 프로그램가능 로직 어레이들 (FPGAs), 또는 다른 동등한 집적 또는 개별 로직 회로에 의해 실행될 수도 있다. 따라서, 본원에서 사용되는 바와 같은 용어 "프로세서"는 앞서의 구조 또는 본원에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 중 임의의 것을 말할 수도 있다. 덧붙여서, 일부 양태들에서, 본원에서 설명된 기능성은 인코딩 및 디코딩을 위해 구성되는, 또는 결합형 코덱 (codec) 으로 통합되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수도 있다. 또한, 본 기법들은 하나 이상의 회로들 또는 로직 엘리먼트들 내에 완전히 구현될 수 있다.The instructions may be implemented in one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits Lt; / RTI > Thus, the term "processor" as used herein may also refer to any of the foregoing structures or any other structure suitable for implementation of the techniques described herein. In addition, in some aspects, the functionality described herein may be provided in dedicated hardware and / or software modules that are configured for encoding and decoding, or integrated into a combined codec. In addition, the techniques may be fully implemented within one or more circuits or logic elements.

본 개시내용의 기법들은 무선 핸드셋, 집적회로 (IC) 또는 IC들의 세트 (예컨대, 칩 셋) 을 포함하여, 매우 다양한 디바이스들 또는 장치들로 구현될 수도 있다. 다양한 컴포넌트들, 모듈들, 또는 유닛들은 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 양태들을 강조하기 위해 본 개시물에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하지는 않는다. 대신, 위에서 설명된 바와 같이, 다양한 유닛들은 코덱 하드웨어 유닛에 결합되거나 또는 적합한 소프트웨어 및/또는 펌웨어와 함께, 위에서 설명된 바와 같은 하나 이상의 프로세서들을 포함하는, 상호운용적 하드웨어 유닛들의 컬렉션에 의해 제공될 수도 있다.The techniques of the present disclosure may be implemented in a wide variety of devices or devices, including a wireless handset, an integrated circuit (IC) or a set of ICs (e.g., a chipset). The various components, modules, or units are described in this disclosure to emphasize the functional aspects of the devices configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. Instead, as described above, the various units may be provided by a collection of interoperable hardware units, including one or more processors as described above, coupled to a codec hardware unit or with suitable software and / or firmware It is possible.

다양한 예들이 설명되어 있다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.Various examples are described. These and other examples are within the scope of the following claims.

Claims (28)

비디오 데이터를 디코딩하는 방법으로서,
비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하는 단계;
비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하는 단계;
잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 상기 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하는 단계; 및
상기 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 상기 N/2×N/2 서브 어레이들의 각각을 조합하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
CLAIMS 1. A method for decoding video data,
Obtaining an NxN array of transform coefficients for a luma component of the video data;
Obtaining a plurality of corresponding N / 2xN / 2 subarrays of transform coefficients for a chroma component of the video data;
Performing inverse transform on each of the N / 2xN / 2 subarrays of chroma transform coefficients to produce a plurality of N / 2xN / 2 subarrays of residual sample values; And
And combining each of the N / 2xN / 2 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component.
비디오 데이터를 디코딩하는 방법으로서,
비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 서브 어레이들을 획득하는 단계;
비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하는 단계;
잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 상기 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하는 단계; 및
상기 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 상기 N/4×N/4 서브 어레이들의 각각을 조합하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
CLAIMS 1. A method for decoding video data,
Obtaining a plurality of N / 2xN / 2 subarrays of transform coefficients for a luma component of video data;
Obtaining a plurality of corresponding N / 4xN / 4 subarrays of transform coefficients for a chroma component of the video data;
Performing inverse transform on each of the plurality of N / 4xN / 4 subarrays of chroma transform coefficients to produce a plurality of N / 4xN / 4 subarrays of residual sample values; And
And combining each of said N / 4xN / 4 subarrays of residual sample values to form an N / 2xN array of residual sample values for said chroma component.
제 2 항에 있어서,
N은 16이고,
비디오 데이터의 상기 루마 성분에 대한 변환 계수들의 상기 복수의 N/2×N/2 서브 어레이들은 4 개의 서브 어레이들을 포함하고 상기 크로마 성분의 변환 계수들의 상기 복수의 대응하는 N/4×N/4 서브 어레이들은 8 개의 서브 어레이들을 포함하는, 비디오 데이터를 디코딩하는 방법.
3. The method of claim 2,
N is 16,
Wherein the plurality of N / 2xN / 2 subarrays of transform coefficients for the luma component of the video data comprises four subarrays and the plurality of corresponding N / 4xN / 4 Wherein the subarrays comprise eight subarrays.
비디오 데이터를 디코딩하는 방법으로서,
비디오 데이터의 루마 성분에 대한 변환 계수들의 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 서브 어레이들의 각각을 조합하는 단계를 포함하는, 비디오 데이터를 디코딩하는 방법.
CLAIMS 1. A method for decoding video data,
Obtaining four NxN / 4 subarrays of transform coefficients for a luma component of the video data;
Obtaining eight corresponding N / 2xN / 8 subarrays of transform coefficients for the chroma component of the video data;
Performing an inverse transform on each of the N / 2xN / 8 subarrays of chroma transform coefficients to produce eight N / 2xN / 8 subarrays of residual sample values; And
And combining each of the N / 2xN / 8 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component.
제 4 항에 있어서,
N은 32와 동일한, 비디오 데이터를 디코딩하는 방법.
5. The method of claim 4,
N is equal to 32. A method for decoding video data.
하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스로서,
상기 하나 이상의 프로세서들은,
비디오 데이터의 루마 성분에 대한 변환 계수들의 N×N 어레이를 획득하고;
비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/2×N/2 서브 어레이들을 획득하고;
잔차 샘플 값들의 복수의 N/2×N/2 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 상기 N/2×N/2 서브 어레이들의 각각에 대해 역 변환을 수행하며; 및
상기 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 상기 N/2×N/2 서브 어레이들의 각각을 조합하도록 구성되는, 비디오 디코딩 디바이스.
A video decoding device comprising one or more processors,
The one or more processors,
Obtaining an NxN array of transform coefficients for a luma component of the video data;
Obtain a plurality of corresponding N / 2xN / 2 subarrays of transform coefficients for the chroma component of the video data;
Performing inverse transform on each of said N / 2xN / 2 subarrays of chroma transform coefficients to produce a plurality of N / 2xN / 2 subarrays of residual sample values; And
And to combine each of the N / 2xN / 2 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component.
하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스로서,
상기 하나 이상의 프로세서들은,
비디오 데이터의 루마 성분에 대한 변환 계수들의 복수의 N/2×N/2 서브 어레이들을 획득하고;
비디오 데이터의 크로마 성분에 대한 변환 계수들의 복수의 대응하는 N/4×N/4 서브 어레이들을 획득하고;
잔차 샘플 값들의 복수의 N/4×N/4 서브 어레이들을 생성하기 위해 크로마 변환 계수들의 상기 복수의 N/4×N/4 서브 어레이들의 각각에 대해 역 변환을 수행하며; 및
상기 크로마 성분에 대한 잔차 샘플 값들의 N/2×N 어레이를 형성하기 위해 잔차 샘플 값들의 상기 N/4×N/4 서브 어레이들의 각각을 조합하도록 구성되는, 비디오 디코딩 디바이스.
A video decoding device comprising one or more processors,
The one or more processors,
Obtain a plurality of N / 2xN / 2 subarrays of transform coefficients for a luma component of the video data;
Obtain a plurality of corresponding N / 4xN / 4 subarrays of transform coefficients for the chroma component of the video data;
Performing inverse transform on each of the plurality of N / 4xN / 4 subarrays of chroma transform coefficients to produce a plurality of N / 4xN / 4 subarrays of residual sample values; And
And to combine each of the N / 4xN / 4 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component.
제 7 항에 있어서,
N은 16이고,
비디오 데이터의 상기 루마 성분에 대한 변환 계수들의 상기 복수의 N/2×N/2 서브 어레이들은 4 개의 서브 어레이들을 포함하고 상기 크로마 성분의 변환 계수들의 상기 복수의 대응하는 N/4×N/4 서브 어레이들은 8 개의 서브 어레이들을 포함하는, 비디오 디코딩 디바이스.
8. The method of claim 7,
N is 16,
Wherein the plurality of N / 2xN / 2 subarrays of transform coefficients for the luma component of the video data comprises four subarrays and the plurality of corresponding N / 4xN / 4 Wherein the subarrays comprise eight subarrays.
하나 이상의 프로세서들을 포함하는 비디오 디코딩 디바이스로서,
상기 하나 이상의 프로세서들은,
비디오 데이터의 루마 성분에 대한 변환 계수들의 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 서브 어레이들의 각각을 조합하도록 구성되는, 비디오 디코딩 디바이스.
A video decoding device comprising one or more processors,
The one or more processors,
Obtain four NxN / 4 subarrays of transform coefficients for the luma component of the video data;
Obtaining eight corresponding N / 2xN / 8 subarrays of transform coefficients for the chroma component of the video data;
Performing inverse transform on each of said N / 2xN / 8 subarrays of chroma transform coefficients to produce eight N / 2xN / 8 subarrays of residual sample values; And
And to combine each of the N / 2xN / 8 subarrays of residual sample values to form an N / 2xN array of residual sample values for the chroma component.
제 9 항에 있어서,
N은 32와 동일한, 비디오 디코딩 디바이스.
10. The method of claim 9,
N is equal to 32.
비디오 데이터를 인코딩하는 방법으로서,
비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하는 단계;
비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하는 단계;
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 단계; 및
상기 크로마 성분에 대한 변환 계수들을 생성하기 위해 크로마 잔차 값들의 상기 서브 어레이들의 각각에 대해 변환을 수행하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
CLAIMS 1. A method of encoding video data,
Obtaining an NxN array of residual values for the luma component of the video data;
Obtaining a corresponding N / 2xN array of residual values for a chroma component of the video data;
Partitioning the N / 2xN array of residual values for the chroma component into two N / 2xN / 2 subarrays of chroma residual values; And
And performing a transform on each of the subarrays of chroma residual values to produce transform coefficients for the chroma component.
제 11 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 단계 및 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
12. The method of claim 11,
Partitioning the NxN arrays of residual values for the luma component into four subarrays of luma residual values, and based at least in part on the partitioning applied to the NxN arrays of residual values for the luma component Further comprising partitioning each of said two N / 2xN / 2 subarrays of chroma residual values into four subarrays of chroma residual values.
제 12 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 단계는, 루마 잔차 값들의 4 개의 8×8 서브 어레이들을 초래하고, 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 단계는 크로마 잔차 값들의 8 개의 4×4 서브 어레이들을 초래하는, 비디오 데이터를 인코딩하는 방법.
13. The method of claim 12,
Wherein partitioning the NxN array of residual values for the luma component into four subarrays of luma residual values results in four 8x8 subarrays of luma residual values, Further dividing each of the N / 2xN / 2 subarrays into four subarrays of chroma residual values results in eight 4x4 subarrays of chroma residual values.
제 12 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 단계는, 4 대 1의 애스펙트 비들을 갖는 루마 잔차 값들의 4 개의 서브 어레이들을 초래하고, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 상기 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 단계는, 4 대 1의 애스펙트 비들을 갖는 크로마 잔차 값들의 8 개의 서브 어레이들을 초래하는, 비디오 데이터를 인코딩하는 방법.
13. The method of claim 12,
Partitioning the N x N arrays of residual values for the luma component into four subarrays of luma residual values results in four subarrays of luma residual values having four to one aspect ratios, Each of the two N / 2xN / 2 subarrays of chroma residual values based on at least in part on the partitioning applied to the NxN array of residual values for a luma component, Further results in 8 subarrays of chroma residual values with 4 to 1 aspect ratios.
제 11 항에 있어서,
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 단계는, 상기 2 개의 N/2×N/2 서브 어레이들이 최소 변환 단위 사이즈 미만이면, 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하지 않도록 결정하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
12. The method of claim 11,
Wherein partitioning the N / 2xN arrays of residual values for the chroma component into two N / 2xN / 2 subarrays of chroma residual values comprises dividing the two N / 2xN / 2 subarrays Determining that the N / 2 占 어 array of residual values should not be partitioned into two N / 2 占 N / 2 sub-arrays of chroma residual values if they are less than the minimum transform unit size. How to.
하나 이상의 프로세서들을 포함하는 비디오 인코딩 디바이스로서,
상기 하나 이상의 프로세서들은,
비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하고;
비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하고;
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하며; 및
상기 크로마 성분에 대한 변환 계수들을 생성하기 위해 크로마 잔차 값들의 상기 서브 어레이들의 각각에 대해 변환을 수행하도록 구성되는, 비디오 인코딩 디바이스.
A video encoding device comprising one or more processors,
The one or more processors,
Obtaining an NxN array of residual values for the luma component of the video data;
Obtain a corresponding N / 2 占 N array of residual values for the chroma component of the video data;
Dividing the N / 2xN array of residual values for the chroma component into two N / 2xN / 2 subarrays of chroma residual values; And
And perform a transform on each of the subarrays of chroma residual values to produce transform coefficients for the chroma component.
제 16 항에 있어서,
상기 하나 이상의 프로세서들은, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하고 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하도록 추가로 구성되는, 비디오 인코딩 디바이스.
17. The method of claim 16,
Wherein the one or more processors are configured to partition the NxN arrays of residual values for the luma component into four subarrays of luma residual values and to at least add to the partitioning applied to the NxN arrays of residual values for the luma component And further partition each of the two N / 2xN / 2 subarrays of chroma residual values into four subarrays of chroma residual values based, in part, on the chroma residual values.
제 17 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 것은, 루마 잔차 값들의 4 개의 8×8 서브 어레이들을 초래하고, 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 것은 크로마 잔차 값들의 8 개의 4×4 서브 어레이들을 초래하고, 비디오 인코딩 디바이스.
18. The method of claim 17,
Partitioning the NxN array of residual values for the luma component into four subarrays of luma residual values results in four 8x8 subarrays of luma residual values and the two of the chroma residual values Further partitioning each of the N / 2xN / 2 subarrays into four subarrays of chroma residual values results in eight 4x4 subarrays of chroma residual values.
제 17 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 것은, 4 대 1의 애스펙트 비들을 갖는 루마 잔차 값들의 4 개의 서브 어레이들 초래하고, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 상기 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 것은, 4 대 1의 애스펙트 비들을 갖는 크로마 잔차 값들의 8 개의 서브 어레이들을 초래하는, 비디오 인코딩 디바이스.
18. The method of claim 17,
Partitioning the N x N arrays of residual values for the luma components into four subarrays of luma residual values results in four subarrays of luma residual values having four to one aspect ratios, Each of the two N / 2xN / 2 subarrays of chroma residual values based on, at least in part, on the partitioning applied to the NxN array of residual values for the components of the chroma residual values to four subarrays of chroma residual values Further compartmentalization results in eight subarrays of chroma residual values with four-to-one aspect ratios.
제 16 항에 있어서,
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 것은, 상기 2 개의 N/2×N/2 서브 어레이들이 최소 변환 단위 사이즈 미만이면, 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하지 않도록 결정하는 것을 포함하는, 비디오 인코딩 디바이스.
17. The method of claim 16,
The partitioning of the N / 2xN arrays of residual values for the chroma component into two N / 2xN / 2 subarrays of chroma residual values is advantageous because the two N / 2xN / 2 subarrays Determining that the N / 2xN array of residual values should not be partitioned into two N / 2xN / 2 subarrays of chroma residual values if the minimum conversion unit size is less than the minimum conversion unit size.
명령들을 저장하고 있는 비일시적 컴퓨터 판독가능 매체로서,
상기 명령들은, 실행되는 경우, 하나 이상의 프로세서들로 하여금,
비디오 데이터의 루마 성분에 대한 잔차 값들의 N×N 어레이를 획득하게 하고;
비디오 데이터의 크로마 성분에 대한 잔차 값들의 대응하는 N/2×N 어레이를 획득하게 하고;
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하게 하며; 및
상기 크로마 성분에 대한 변환 계수들을 생성하기 위해 크로마 잔차 값들의 상기 서브 어레이들의 각각에 대해 변환을 수행하게 하는, 비일시적 컴퓨터 판독가능 매체.
17. An non-transitory computer readable medium storing instructions,
The instructions, when executed, cause one or more processors to:
Obtain an NxN array of residual values for the luma component of the video data;
To obtain a corresponding N / 2xN array of residual values for the chroma component of the video data;
Partition the N / 2xN array of residual values for the chroma component into two N / 2xN / 2 subarrays of chroma residual values; And
To perform transformations on each of the subarrays of chroma residual values to produce transform coefficients for the chroma component.
제 21 항에 있어서,
상기 명령들은 추가로, 하나 이상의 프로세서들로 하여금, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하게 하고 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하게 하는, 비일시적 컴퓨터 판독가능 매체.
22. The method of claim 21,
The instructions further cause one or more processors to cause the NxN array of residual values for the luma component to be partitioned into four subarrays of luma residual values and the N of the residual values for the luma component X N array further partitioning each of the two N / 2xN / 2 subarrays of chroma residual values into four subarrays of chroma residual values based at least in part on the partitioning applied to the xN array. Available media.
제 22 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 것은, 루마 잔차 값들의 4 개의 8×8 서브 어레이들을 초래하고, 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 것은 크로마 잔차 값들의 8 개의 4×4 서브 어레이들을 초래하는, 비일시적 컴퓨터 판독가능 매체.
23. The method of claim 22,
Partitioning the NxN array of residual values for the luma component into four subarrays of luma residual values results in four 8x8 subarrays of luma residual values and the two of the chroma residual values Further partitioning each of the N / 2xN / 2 subarrays into four subarrays of chroma residual values results in eight 4x4 subarrays of chroma residual values.
제 22 항에 있어서,
상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이를 루마 잔차 값들의 4 개의 서브 어레이들로 구획하는 것은, 4 대 1의 애스펙트 비들을 갖는 루마 잔차 값들의 4 개의 서브 어레이들을 초래하고, 상기 루마 성분에 대한 잔차 값들의 상기 N×N 어레이에 적용된 상기 구획화에 적어도 부분적으로 기초하여 크로마 잔차 값들의 상기 2 개의 N/2×N/2 서브 어레이들의 각각을 크로마 잔차 값들의 4 개의 서브 어레이들로 더 구획하는 것은, 4 대 1의 애스펙트 비들을 갖는 크로마 잔차 값들의 8 개의 서브 어레이들을 초래하는, 비일시적 컴퓨터 판독가능 매체.
23. The method of claim 22,
Partitioning the NxN arrays of residual values for the luma component into four subarrays of luma residual values results in four subarrays of luma residual values having four to one aspect ratios, Each of the two N / 2xN / 2 subarrays of chroma residual values based on, at least in part, on the partitioning applied to the NxN array of residual values for the components of the chroma residual values to four subarrays of chroma residual values Further compartmentalization results in eight subarrays of chroma residual values with four-to-one aspect ratios.
제 21 항에 있어서,
상기 크로마 성분에 대한 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하는 것은, 상기 2 개의 N/2×N/2 서브 어레이들이 최소 변환 단위 사이즈 미만이면, 잔차 값들의 상기 N/2×N 어레이를 크로마 잔차 값들의 2 개의 N/2×N/2 서브 어레이들로 구획하지 않도록 결정하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
22. The method of claim 21,
The partitioning of the N / 2xN arrays of residual values for the chroma component into two N / 2xN / 2 subarrays of chroma residual values is advantageous because the two N / 2xN / 2 subarrays Determining whether to divide said N / 2 占 어 array of residual values into two N / 2 占 N / 2 subarrays of chroma residual values if less than the minimum transform unit size; .
비디오 데이터를 인코딩하는 방법으로서,
크로마 성분에 연관된 제 1 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하는 단계;
상기 크로마 성분에 연관된 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 결정하는 단계; 및
상기 제 1 변환 단위 및 상기 제 2 변환 단위에 대한 조인트 코딩된 블록 플래그를 생성하는 단계로서, 상기 조인트 코딩된 블록 플래그는 상기 제 1 변환 단위 또는 상기 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수들을 포함하는지의 여부를 나타내는, 상기 조인트 코딩된 블록 플래그를 생성하는 단계를 포함하는, 비디오 데이터를 인코딩하는 방법.
CLAIMS 1. A method of encoding video data,
Determining whether a first transform unit associated with the chroma component comprises at least one non-zero transform coefficients;
Determining whether a second transform unit associated with the chroma component comprises at least one non-zero transform coefficients; And
Generating a joint coded block flag for the first conversion unit and the second conversion unit, wherein the joint coded block flag is configured such that any one of the first conversion unit or the second conversion unit has at least one 0 And generating the joint coded block flag, wherein the joint coded block flag indicates whether the transform includes non-transform coefficients.
제 26 항에 있어서,
상기 제 1 변환 단위 또는 상기 제 2 변환 단위 중 어느 하나가 적어도 하나의 0이 아닌 변환 계수를 포함함을 상기 조인트 코딩된 블록 플래그가 나타내는 경우, 상기 제 1 변환 단위가 적어도 하나의 0이 아닌 계수를 포함하는지의 여부를 나타내는 코딩된 블록 플래그를 생성하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
27. The method of claim 26,
Wherein if the joint coded block flag indicates that either the first conversion unit or the second conversion unit comprises at least one non-zero conversion flag, then the first conversion unit is a non- And generating a coded block flag indicating whether the coded block flag is included.
제 27 항에 있어서,
상기 제 1 변환 단위가 적어도 하나의 0이 아닌 계수를 포함함을 상기 코딩된 블록 플래그가 나타내는 경우, 상기 제 2 변환 단위가 적어도 하나의 0이 아닌 변환 계수를 포함하는지의 여부를 나타내는 상기 제 2 변환 단위에 대한 코딩된 블록 플래그를 생성하는 단계를 더 포함하는, 비디오 데이터를 인코딩하는 방법.
28. The method of claim 27,
Wherein if the coded block flag indicates that the first conversion unit comprises at least one non-zero coefficient, then the second conversion unit, if the second conversion unit indicates at least one non- Further comprising generating a coded block flag for the transform unit.
KR1020147014553A 2011-11-01 2012-11-01 Transform unit partitioning for chroma components in video coding KR101667467B1 (en)

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 (en) 2011-11-01 2012-11-01 Transform unit partitioning for chroma components in video coding

Publications (2)

Publication Number Publication Date
KR20140089403A true KR20140089403A (en) 2014-07-14
KR101667467B1 KR101667467B1 (en) 2016-10-28

Family

ID=48172433

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147014553A KR101667467B1 (en) 2011-11-01 2012-11-01 Transform unit partitioning for chroma components in video coding
KR1020167005091A KR20160029144A (en) 2011-11-01 2012-11-01 Transform unit partitioning for chroma components in video coding

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020167005091A KR20160029144A (en) 2011-11-01 2012-11-01 Transform unit partitioning for chroma components in video coding

Country Status (7)

Country Link
US (1) US9807401B2 (en)
EP (1) EP2774364B1 (en)
JP (1) JP5932050B2 (en)
KR (2) KR101667467B1 (en)
CN (1) CN103959785B (en)
TW (1) TW201342920A (en)
WO (1) WO2013067174A1 (en)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
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 unification of coefficient scan of 8x8 transform units in hevc
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 (en) * 2012-09-10 2018-06-13 サン パテント トラスト Image decoding method and image decoding apparatus
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
US9667994B2 (en) 2012-10-01 2017-05-30 Qualcomm Incorporated Intra-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 (en) * 2013-04-08 2017-08-25 联发科技(新加坡)私人有限公司 Picture decoding method and its picture decoding apparatus
US20160057494A1 (en) * 2013-06-19 2016-02-25 Lg Electronics Inc. Signal transmitting and receiving device and method of controlling said device
US10506243B2 (en) 2014-03-06 2019-12-10 Samsung Electronics Co., Ltd. Image decoding method and device therefor, and image encoding method and device therefor
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
WO2017059415A1 (en) * 2015-10-02 2017-04-06 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
EP4040789B1 (en) 2016-02-11 2023-10-18 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
CN109076243B (en) * 2016-05-04 2022-01-25 夏普株式会社 System and method for encoding transform data
CN106713921B (en) * 2016-11-29 2019-07-23 西安万像电子科技有限公司 The compression method and device and method for compressing image and device of character block
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 (en) * 2017-11-16 2024-05-14 松下电器(美国)知识产权公司 Image encoding device, encoding method, image decoding device, decoding method, and non-transitory storage medium
CN112385219B (en) 2018-05-10 2024-04-19 三星电子株式会社 Method and apparatus for image encoding and method and apparatus for image decoding
CN112703741A (en) 2018-07-13 2021-04-23 弗劳恩霍夫应用研究促进协会 Intra-partition coding concept
CN112470471A (en) * 2018-07-17 2021-03-09 华为技术有限公司 Constrained coding tree for video coding
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
EP4387224A1 (en) * 2018-08-28 2024-06-19 Huawei Technologies Co., Ltd. Picture partitioning method and apparatus
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
EP3854087A4 (en) * 2018-10-09 2022-07-06 HFI Innovation Inc. Method and apparatus of encoding or decoding using reference samples determined by predefined criteria
CN116684591A (en) 2018-12-04 2023-09-01 华为技术有限公司 Video encoder, video decoder, and corresponding methods
CN116962710A (en) 2018-12-15 2023-10-27 华为技术有限公司 Image reconstruction method and device
CA3125904A1 (en) 2019-01-08 2020-07-16 Huawei Technologies Co., Ltd. Image prediction method, apparatus, system, device, and storage medium for processing performance and speed
BR112021016917A2 (en) * 2019-02-28 2021-11-03 Samsung Electronics Co Ltd Video decoding method, video decoding device, and video encoding method
WO2020180214A1 (en) * 2019-03-01 2020-09-10 Huawei Technologies Co., Ltd. The method of efficient signalling of cbf flags
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
JP7328346B2 (en) * 2019-03-12 2023-08-16 フラウンホーファー-ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン A partition-based intra-encoding concept that is efficient to implement
WO2020223496A1 (en) * 2019-04-30 2020-11-05 Beijing Dajia Internet Informationtechnology Co., Ltd. Methods and apparatus of joint coding of chroma residuals
JP7379656B2 (en) * 2019-07-19 2023-11-14 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド Video signal processing method and device
CN113796078A (en) * 2019-07-24 2021-12-14 华为技术有限公司 Intra-prediction mode dependent encoder, decoder and corresponding methods
JP2022543207A (en) * 2019-07-25 2022-10-11 ウィルス インスティテュート オブ スタンダーズ アンド テクノロジー インコーポレイティド Video signal processing method and apparatus
JP7321364B2 (en) 2019-09-14 2023-08-04 バイトダンス インコーポレイテッド Chroma quantization parameter in video coding
JP7443509B2 (en) * 2019-10-14 2024-03-05 バイトダンス インコーポレイテッド Using chroma quantization parameters in video coding
WO2021112950A1 (en) * 2019-12-05 2021-06-10 Alibaba Group Holding Limited Method and apparatus for chroma sampling
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011077761A (en) * 2009-09-30 2011-04-14 Sony Corp Image processor and processing method
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)

* Cited by examiner, † Cited by third party
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 (en) * 2000-11-01 2002-05-17 Sony Corp Apparatus and method for signal processing and for recording
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 (en) * 2005-11-14 2008-12-12 삼성전자주식회사 Method and apparatus for encoding/decoding image using single coding mode
EP2105025B1 (en) * 2007-01-11 2021-04-07 InterDigital VC Holdings, Inc. Methods and apparatus for using syntax for the coded_block_flag syntax element and the coded_block_pattern syntax element for the cavlc 4:4:4 intra, high 4:4:4 intra, and high 4:4:4 predictive profiles in mpeg-4 avc high level coding
JP5026092B2 (en) * 2007-01-12 2012-09-12 三菱電機株式会社 Moving picture decoding apparatus and moving picture decoding method
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 (en) * 2008-12-23 2014-02-10 에스케이 텔레콤주식회사 Color Video Encoding/Decoding Method and Apparatus
CN102474606B (en) 2009-07-20 2014-09-24 三星电子株式会社 Method and apparatus for coding and decoding color channels in layered video coding and decoding
CN106162171B (en) * 2010-04-13 2020-09-11 Ge视频压缩有限责任公司 Decoder and method, encoding method
KR101791242B1 (en) * 2010-04-16 2017-10-30 에스케이텔레콤 주식회사 Video Coding and Decoding Method and Apparatus
CN105704490B (en) * 2010-04-16 2018-07-31 Sk电信有限公司 Video encoder
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011077761A (en) * 2009-09-30 2011-04-14 Sony Corp Image processor and processing method
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)

* Cited by examiner, † Cited by third party
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
CN103959785B (en) 2018-04-10
JP2014535221A (en) 2014-12-25
EP2774364A1 (en) 2014-09-10
EP2774364B1 (en) 2018-12-19
CN103959785A (en) 2014-07-30
KR20160029144A (en) 2016-03-14
US9807401B2 (en) 2017-10-31
WO2013067174A1 (en) 2013-05-10
TW201342920A (en) 2013-10-16
US20130107970A1 (en) 2013-05-02
KR101667467B1 (en) 2016-10-28
JP5932050B2 (en) 2016-06-08

Similar Documents

Publication Publication Date Title
KR101667467B1 (en) Transform unit partitioning for chroma components in video coding
JP6636564B2 (en) Coded block flag (CBF) coding for 4: 2: 2 sample format in video coding
KR101651759B1 (en) Memory efficient context modeling
KR101774737B1 (en) Residual quad tree (rqt) coding for video coding
KR101642615B1 (en) Quantization parameter prediction in video coding
KR101825262B1 (en) Restriction of prediction units in b slices to uni-directional inter prediction
KR101772350B1 (en) High precision explicit weighted prediction for video coding
KR20180059893A (en) Delta QP for quantization of rectangular transform units, short-range intra prediction (SDIP) based video coding
KR101807913B1 (en) Coding of loop filter parameters using a codebook in video coding
KR20150003327A (en) Transform coefficient coding
WO2013096772A2 (en) Unified partition mode table for intra-mode coding
KR20150143585A (en) Repositioning of prediction residual blocks in video coding
KR20160031496A (en) Intra motion compensation extensions
KR20150076235A (en) Reference picture status for video coding
KR20150065838A (en) Indication of video properties
KR20140131525A (en) Implicit derivation of parallel motion estimation range size

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