KR20200144131A - 암시적 변환 유닛 경계들의 디블로킹 - Google Patents

암시적 변환 유닛 경계들의 디블로킹 Download PDF

Info

Publication number
KR20200144131A
KR20200144131A KR1020207033075A KR20207033075A KR20200144131A KR 20200144131 A KR20200144131 A KR 20200144131A KR 1020207033075 A KR1020207033075 A KR 1020207033075A KR 20207033075 A KR20207033075 A KR 20207033075A KR 20200144131 A KR20200144131 A KR 20200144131A
Authority
KR
South Korea
Prior art keywords
block
sub
boundary
rectangular
video picture
Prior art date
Application number
KR1020207033075A
Other languages
English (en)
Inventor
케니스 앤더슨
제이콥 스트룀
지 장
리카르드 쇠베르그
Original Assignee
텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) filed Critical 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘)
Publication of KR20200144131A publication Critical patent/KR20200144131A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Abstract

일 양태에서, CU 폭이 최대 TU 폭보다 클 때에는 암시적 수직 TU 경계들에 디블로킹을 적용하고, CU 높이가 최대 TU 높이보다 클 때에는 암시적 수평 TU 경계들에 디블로킹을 적용하는 방법이 개시된다. 일부 예시적인 실시예들은 HEVC 디블로킹 및 더 긴 필터들을 사용하는 디블로킹을 포함한다.

Description

암시적 변환 유닛 경계들의 디블로킹
본 개시내용은 비디오 코딩 및 디코딩에 관한 것이다.
비디오 시퀀스는 각각의 이미지가 하나 이상의 컴포넌트로 구성되는 일련의 이미지들로 구성된다. 각각의 컴포넌트는 샘플 값들의 2차원 직사각형 어레이로서 설명될 수 있다. 일반적으로 비디오 시퀀스의 이미지는 샘플 값들이 루마(luma) 값들인 하나의 루마 컴포넌트 Y, 및 샘플 값들이 크로마(chroma) 값들인 2개의 크로마 컴포넌트 Cb 및 Cr의 세 가지 컴포넌트로 구성된다. 다른 예시적인 컴포넌트들은 Y'CbCr, Yuv 및 ICTCP를 포함한다. ICTCP의 경우, I는 "강도 루마(intensity luma)" 컴포넌트로 지칭된다. 본 개시내용의 맥락에서, 임의의 루마 컴포넌트(예를 들어, Y', Y 또는 I)는 Y 또는 루마로 지칭된다. 크로마 컴포넌트들의 차원들은 루마 컴포넌트들보다 각각의 차원에서 2배 더 작은 것이 일반적이다. 예를 들어, HD 이미지의 루마 컴포넌트의 사이즈는 1920x1080일 수 있고, 크로마 컴포넌트들은 각각 960x540의 차원을 가질 수 있다. 컴포넌트들은 때때로 컬러 컴포넌트들로 지칭된다.
블록은 샘플들의 하나의 2차원 어레이이다. 비디오 코딩에서, 각각의 컴포넌트는 블록들로 분할되고, 코딩된 비디오 비트스트림은 일련의 블록들을 포함한다. 비디오 코딩에서는, 이미지가 유닛들로 분할되고, 각각의 유닛은 이미지의 특정 영역을 포함하는 것이 일반적이다. 각각의 유닛은 특정 영역을 구성하는 컴포넌트들 각각으로부터의 블록들로 구성되고, 각각의 블록은 유닛에 완전히 포함된다. H.264의 매크로 블록과 HEVC의 코딩 유닛(Coding Unit)(CU)이 이러한 유닛들의 예들이다.
HEVC에서, 각각의 픽처는 코딩 트리 유닛들(coding tree units)(CTU)로 파티셔닝된다. CTU는 NxN 블록의 루마 샘플들 및 2개의 대응하는 MxM 크로마 블록들로 구성된다. HEVC의 CTU는 H.264 및 이전 표준들의 매크로 블록들과 비슷하지만, 매크로 블록들과 달리, CTU의 사이즈는 구성 가능하다. 그러나, 대부분의 경우, HEVC의 CTU 사이즈는 64x64 루마 샘플들로 설정된다. 각각의 CTU는 반복적으로 쿼드 트리 분할될 수 있다. 그런 다음, 쿼드 트리의 루트가 CTU와 연관된다. 쿼드 트리는 코딩 유닛(CU)으로 지칭되는 리프(leaf)에 도달할 때까지 분할된다. HEVC의 CU는 항상 높이와 폭이 동일한 루마 블록으로 구성된다. 각각의 CTU가 분할되는 방식에 관한 정보는 비트스트림에서 전달된다. 또한, CU는 2개의 다른 트리, 즉, 예측 유닛(prediction unit)(PU)들을 노드들로서 포함하는 예측 트리 및 변환 유닛(transform unit)(TU)들을 노드들로서 포함하는 변환 트리의 루트 노드이다. 일부 디코딩 프로세스들은 CU 레벨, PU 레벨 및 TU 레벨에서 수행된다. 인접 PU들 사이의 경계들과 인접 TU들 사이의 경계들은 TU들과 PU들 사이의 불연속성들을 감소시키기 위해 디블로킹 필터(deblocking filter)에 의해 필터링된다. HEVC에는, PU에 대한 두 가지 종류의 예측 타입들: (1) 예측을 위해 현재 픽처의 이전에 디코딩된 샘플들로부터의 예측만을 사용하는 인트라 예측(intra prediction), 및 (2) 적어도 하나의 이전에 디코딩된 픽처로부터의 예측을 사용하는 인터 예측(inter prediction)이 존재한다.
HEVC에서, 디블로킹은 먼저 수직 경계들에 적용된 다음, 수평 경계들에 적용된다. 경계들은 TU 경계들 또는 PU 경계들 중 어느 것이다. 병렬 친화적인 디블로킹을 활성화하기 위해, 디블로킹은 8x8 샘플 그리드에서 수행된다.
디블로킹 필터 강도 파라미터(bs)가 각각의 경계에 대해 설정된다. 경계에 대한 bs의 값이 0보다 큰 경우, 경계에 디블로킹이 적용될 수 있다. 적용된 필터링의 강도는 경계 강도의 크기에 따라 달라진다. 예를 들어, 제1 단계에서는, 블록들 사이의 PU 경계에 있는 블록들 중 임의의 것이 인트라 예측 블록인지가 체크된다. 블록들 사이의 PU 경계가 인트라 예측 블록인 경우, PU 경계에 대한 디블로킹 필터 강도 파라미터는 2로 설정된다(예를 들어, bs가 2로 설정된다). 두 블록 모두 인터 예측을 사용하지만 블록들이 상이한 기준 프레임들을 사용하거나 또는 상당히 상이한 모션 벡터들을 갖는 경우, PU 경계에 대한 디블로킹 필터 강도 파라미터는 1로 설정된다(예를 들어, bs가 1로 설정된다). 또한, 블록들 사이의 TU 경계가 블록들 중 적어도 하나에서 0이 아닌 변환 계수들을 갖는지(예를 들어, 코드 블록 플래그(code block flag)(CBF)가 1과 동일한지)가 체크된다. 그렇다면, TU 경계에 대한 디블로킹 필터 강도 파라미터는 1로 설정된다(예를 들어, bs가 1로 설정된다).
따라서, 디블로킹이 적용되어야하는지를 결정하기 위해 경계 강도(boundary strength)(bs)가 0보다 큰지가 먼저 체크된다. 디블로킹시 자연 구조들의 제거를 감소시키고/시키거나 피하기 위해, 루마에 대한 경계의 각각의 측들에 임의의 자연 구조들이 있는지가 체크된다. HEVC에서, 기울기 계산들은 다음 부등식
Figure pct00001
을 사용하여 경계의 각각의 측들에서 사용되며, 여기서 베타(beta)는 블록에 대한 양자화 파라미터에 기초한 파라미터이고, p0, p1 내지 p2는 블록 경계의 일 측에 있는 샘플들이고, q0, q1 내지 q2는 블록 경계의 다른 측에 있는 샘플들이다. 조건은 경계를 따라 두 포지션에서 체크되며, 두 조건이 충족되는 경우, 경계의 해당 샘플 부분에 대해 루마 샘플들이 디블로킹된다. 이웃 블록들 중 임의의 하나가 인트라 코딩되는 경우, 크로마 경계들은 항상 필터링될 수 있다.
H.266에 대한 사양의 현재 드래프트(VVC 드래프트 1 JVET-J1001v1)(이하, "VCC"로 지칭됨)에서는, 코딩 트리 유닛(coding tree unit)(CTU)이 HEVC의 CTU와 유사하지만, VCC의 CTU가 128x128 루마 샘플들의 사이즈를 갖는다는 차이가 있다. VVC에서, CTU는 결과 CU가 직사각형 루마 블록을 포함할 수 있도록 더 유연하게 분할될 수 있다. VVC에는, HEVC에서와 같은 예측 트리가 없다. 그러나, VVC의 CU는 암시적으로 복수의 TU들로 나눠질 수 있다. 그러나, 암시적 TU들은 CU 사이즈가 최대 변환 사이즈보다 큰 폭 또는 높이를 가질 때에만 나타난다. CU 사이즈가 최대 변환 사이즈보다 큰 폭 또는 높이를 갖지 않는 경우, CU는 예측 트리 또는 변환 트리를 갖지 않는다. VVC에서, 디블로킹은 먼저 수직 CU 경계들에 적용된 다음 수평 CU 경계들에 적용되고, 디블로킹은 HEVC 디블로킹에 기초한다.
H.266에 대한 사양의 현재 드래프트(VVC 드래프트 1)에서는, CU 경계에 대응하는 블록 경계들만이 디블로킹된다. 그러나, VVC 드래프트 1은 암시적 TU 경계들에 나타날 수 있는 아티팩트들을 차단하는 문제를 설명하지 않는다.
위에 나타낸 바와 같이, 디블로킹 애플리케이션의 개선된 방법이 여전히 필요하다.
따라서, 본 명세서에 개시된 특정 실시예들은, CU 폭이 최대 TU 폭보다 클 때에는 암시적 수직 TU 경계들에 디블로킹을 적용하고, CU 높이가 최대 TU 높이보다 클 때에는 암시적 수평 TU 경계들에 디블로킹을 적용하는 방법을 제공한다. 일부 예시적인 실시예들은 HEVC 디블로킹 및 더 긴 필터들을 사용하는 디블로킹을 포함한다.
본 명세서에 개시된 실시예들은 단일 컬러 컴포넌트 또는 모든 컬러 컴포넌트들에 적용될 수 있다. 컬러 컴포넌트들의 예들은 루마, Cb 및 Cr을 포함하지만, 이에 제한되지 않는다.
일 양태에서는, 비디오 픽처를 디코딩하기 위해 디코더에 의해 수행되는 방법이 제공된다. 방법은 디코더가 코딩 유닛 또는 블록의 루마 컴포넌트를 수직으로 Z개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightY개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 사이즈를 포함하고, heightY는 N보다 크고, widthY는 N 이하이고, Z는 widthY/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 적어도 하나의 변환 계수를 디코딩하는 단계; 제1 블록 및 제2 블록 중 하나 이상에 역 변환을 적용하는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 루마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 루마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함한다.
다른 양태에서는, 비디오 픽처를 인코딩하기 위해 인코더에 의해 수행되는 방법이 제공된다. 방법은 인코더가 비디오 픽처를 다수의 코딩 유닛들로 파티셔닝하는 단계; 코딩 유닛 또는 블록의 루마 컴포넌트를 수직으로 Z개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 인코딩된 비디오 픽처로의 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 포함하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightY개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 사이즈를 포함하고, heightY는 N보다 크고, widthY는 N 이하이고, Z는 heightY/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 인코딩된 비디오 픽처에 적어도 하나의 변환 계수를 포함시키는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 루마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 루마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함한다.
다른 양태에서는, 비디오 픽처를 디코딩하기 위해 디코더에 의해 수행되는 방법이 제공된다. 방법은 디코더가 코딩 유닛 또는 블록의 루마 컴포넌트를 수평으로 Z개의 루마 샘플 및 수직으로 heightY개의 루마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightY개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 사이즈를 포함하고, heightY는 N보다 크고, widthY는 N 이하이고, Z는 widthY/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 적어도 하나의 변환 계수를 디코딩하는 단계; 제1 블록 및 제2 블록 중 하나 이상에 역 변환을 적용하는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 루마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 루마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함한다.
다른 양태에서는, 비디오 픽처를 디코딩하기 위해 디코더에 의해 수행되는 방법이 제공된다. 방법은 디코더가 코딩 유닛 또는 블록의 크로마 컴포넌트를 수직으로 Z개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightC개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 사이즈를 포함하고, heightC는 N보다 크고, widthC는 N 이하이고, Z는 heightC/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 적어도 하나의 변환 계수를 디코딩하는 단계; 제1 블록 및 제2 블록 중 하나 이상에 역 변환을 적용하는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 크로마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 크로마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함한다.
다른 양태에서는, 비디오 픽처를 인코딩하기 위해 인코더에 의해 수행되는 방법이 제공된다. 방법은 인코더가 비디오 픽처를 다수의 코딩 유닛들로 파티셔닝하는 단계; 코딩 유닛 또는 블록의 크로마 컴포넌트를 수직으로 Z개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 인코딩된 비디오 픽처로의 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 포함하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightC개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 사이즈를 포함하고, heightC는 N보다 크고, widthC는 N 이하이고, Z는 heightC/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 인코딩된 비디오 픽처에 적어도 하나의 변환 계수를 포함시키는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 크로마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 크로마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함한다.
다른 양태에서는, 비디오 픽처를 디코딩하기 위해 디코더에 의해 수행되는 방법이 제공된다. 방법은 디코더가 코딩 유닛 또는 블록의 크로마 컴포넌트를 수평으로 Z개의 크로마 샘플 및 수직으로 heightC개의 크로마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하게 설정되고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightC개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 사이즈를 포함하고, heightC는 N보다 크고, widthC는 N 이하이고, Z는 heightC/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 적어도 하나의 변환 계수를 디코딩하는 단계; 제1 블록 및 제2 블록 중 하나 이상에 역 변환을 적용하는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 크로마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 크로마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함한다.
본 명세서에 개시된 실시예들은 암시적 TU 경계들에 걸쳐 상당한 불연속성 감소를 제공한다. 이것은 주관적인 품질을 실질적으로 개선시킬 수 있다.
본 명세서에 통합되고 명세서의 일부를 형성하는 첨부 도면들은 다양한 실시예들을 예시한다.
도 1은 일부 실시예들에 따른 분할 CU 또는 블록들을 예시한다.
도 2는 일 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 3은 일 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 4는 일 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 5는 일 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 6은 일 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 7은 일 실시예에 따른 프로세스를 예시하는 흐름도이다.
도 8은 일부 실시예들에 따른 예시적인 픽처(picture)들을 도시한다.
도 9는 일 실시예에 따른 인코더의 블록도이다.
도 10은 일 실시예에 따른 디코더의 블록도이다.
도 11은 일부 실시예들에 따른 디코더의 기능 유닛들을 도시하는 도면이다.
도 12는 일부 실시예들에 따른 인코더의 기능 유닛들을 도시하는 도면이다.
도 13은 실시예에 따른 컴퓨터 프로그램 제품을 예시한다.
본 명세서에 개시된 특정 실시예들은 큰 암시적 분할(implicit split)들로 인한 CU 또는 블록 경계들이 디블로킹 필터에 의해 필터링되는 비디오 인코딩 또는 디코딩을 위한 방법을 제공한다. 본 개시내용의 맥락에서, 큰 암시적 분할은 설정된 최대 사이즈보다 공간적으로 큰 적어도 하나의 측을 갖는 CU 또는 블록의 분할을 나타낸다. 설정된 최대 사이즈는 바람직하게는 설정된 최대 변환 사이즈와 동일하다. 예를 들어, 설정된 최대 변환 사이즈가 64와 동일한 경우, 64보다 큰 적어도 하나의 측을 갖는 임의의 CU 또는 블록은 양 측이 64 이하인 CU 또는 블록으로 암시적으로 분할된다.
도 1은 일부 실시예들에 따라 분할 이전의 CU 또는 블록이 128과 동일한 적어도 하나의 측을 갖고 설정된 최대 사이즈가 64와 동일한 예들의 비-포괄적인 세트를 도시한다. 일반적으로, N과 동일한 설정된 최대 사이즈가 있어야 한다. 하나의 측이 N보다 큰 CU 또는 블록의 경우, CU 또는 블록은 일부 실시예들에 따라 출력된 CU 또는 블록이 N보다 큰 임의의 측을 갖지 않도록 하나의 차원에서 분할된다. 양 측이 N보다 큰 CU 또는 블록의 경우, CU 또는 블록은 일부 실시예들에 따라 출력된 CU 또는 블록이 N보다 큰 임의의 측을 갖지 않도록 2차원을 따라 분할된다. 이 경우, 허용되는 가장 큰 변환 사이즈가 더 작을 때, 예를 들어, 32일 때, 128x64의 블록은 먼저 양 차원을 따라 분할됨으로써, 사이즈 64x32의 4개의 블록을 생성할 수 있다. 4개의 블록 각각은 하나의 차원을 따라 추가로 분할될 수 있으며, 각각의 분할은 사이즈 32x32의 두 블록을 생성한다.
위에서 언급된 바와 같이, 암시적 분할은 CU 또는 블록의 사이즈와 최대 사이즈 사이의 비교의 결과이다. 따라서, 특정 블록에 대한 암시적 분할에 관한 분할 정보를 전달하는 신택스 엘리먼트가 없다. 대신, 최대 사이즈는, 예를 들어, 비디오 코딩 사양에서 고정 값으로 설정될 수도 있고, 또는 대안적으로, 일부 실시예들에 따라 비트스트림에서 시그널링될 수도 있다. 최대 사이즈가 비트스트림에서 시그널링되는 경우, 최대 사이즈는 비디오 클립 당 한 번, 픽처 세트 당 한 번, 픽처 당 한 번 또는 슬라이스 당 한번과 같이 다수의 CU들 또는 블록들에 대해 한번 시그널링된다.
디코더는 특정 CU 또는 블록에 대한 암시적 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하거나 파싱하지 않는다. 대신, 디코더는 특정 CU 또는 블록의 사이즈를 비트스트림에 표시되거나 또는 비디오 코딩 사양에 고정 값으로서 설정된 최대 사이즈와 비교함으로써 분할을 유도한다. 마찬가지로, 인코더는 블록 레벨에서 특정 CU 또는 블록에 대한 암시적 분할을 나타내는 임의의 신택스 엘리먼트를 인코딩하거나 시그널링하지 않는다. 즉, 인코더는 블록 레벨 정보에 암시적 분할을 나타내지 않는다. 대신, 인코더는 특정 CU 또는 블록의 사이즈를 비트스트림에 표시되거나 또는 비디오 코딩 사양에 고정 값으로서 설정된 최대 사이즈와 비교함으로써 분할을 유도한다. 본 개시내용의 맥락에서, 블록 레벨 정보는 블록 단위로 전송/인코딩되고 수신/디코딩되는 신택스 엘리먼트들을 포함한다. 블록 레벨 정보에 포함된 블록 레벨 신택스 엘리먼트의 일례는 변환 계수이다. 블록 레벨 신택스 엘리먼트의 또 다른 예는 델타 양자화기 값(delta quantizer value)이다.
일부 실시예들에서, 암시적 분할은 정규 CU 분할 프로세스 후에 발생할 수 있다. 본 개시내용의 맥락에서, 정규 CU 분할은 CTU를 CU들로 분할하는 부분인 분할을 나타내며, 여기서 분할은 블록 단위로 코딩된 비디오 픽처의 하나 이상의 신택스 엘리먼트에 의해 시그널링된다. 예를 들어, 픽처가 사이즈 128x128의 CTU들로 파티셔닝될 수 있다. 이 경우, 최대 사이즈는 CTU 사이즈보다 작은 값, 예를 들어, 64와 동일하다고 가정된다. 예로서, 하나의 CTU가 디코딩될 때, 코딩된 비디오 시퀀스에는 CTU가 사이즈 128x64의 2개의 CU로 분할되어야 한다는 것을 지정하는 하나 이상의 신택스 엘리먼트가 있을 수 있다. 이 예에서는, 코딩된 비디오 시퀀스에 CU들이 조금이라도 더 분할되어야 하는 것을 나타내는 신택스 엘리먼트들이 없다. 128은 최대 사이즈 64보다 크기 때문에, 128x64 CU는 사이즈 64x64의 2개의 유닛으로 암시적으로 분할된다. 일부 실시예들에서, CU의 각각의 컴포넌트에 대한 블록들은 암시적으로 하나씩 분할될 수 있다. 예를 들어, CU의 루마 부분은 사이즈 128x64의 블록일 수 있고, 사이즈 64x64의 2개의 블록으로 분할될 수 있다. CU의 하나의 크로마 부분은 사이즈 64x32의 블록일 수 있으며, 모든 컴포넌트들에 대해 하나의 최대 사이즈가 사용되는 경우에는 암시적으로 분할되지 않을 수 있다. 일부 실시예들에서는, (모든 크로마 컴포넌트들에 대한 하나의 최대 사이즈 또는 각각의 컴포넌트에 대한 별도의 최대 사이즈 값들 중 어느 것으로서) 크로마에 대한 별도의 최대 사이즈가 지정될 수 있다. 예를 들어, 크로마에 대한 최대 사이즈는 32로 설정될 수 있다. 이러한 실시예들에서, 크로마 블록은 32x32 블록들로 분할된다.
그 후, 다른 CTU가 디코딩될 때, 코딩된 비디오 시퀀스에는 CTU가 사이즈들 128xN, 128xM 및 128xN의 3개의 CU로 분할되어야 하는 것을 지정하는 하나 이상의 신택스 엘리먼트가 있으며, 여기서 2*N+M은 128과 동일하다. N과 M의 예시적인 값들은 각각 32와 64이며, 이에 따라 CU 사이즈들은 128x32, 128x64 및 128x32가 된다. 코딩된 비디오 시퀀스에는 CU들 중 임의의 것을 추가로 분할하기 위한 신택스 엘리먼트들이 없다. 그 후, 각각의 128x32 CU는 암시적으로 64x32의 2개의 유닛으로 분할되고, 128x64 CU는 암시적으로 64x64의 2개의 유닛으로 분할된다. 대안적으로는, 암시적 분할들이 블록들에서 수행되어, 이에 따라 사이즈들 128x32 및 128x64의 루마 블록들이 각각 사이즈들 64x32 및 64x64의 블록들로 암시적으로 분할된다. 크로마 블록들은 64x16 및 64x32의 사이즈들을 가질 수 있다. 특정 크로마 컴포넌트에 대한 최대 사이즈가 64와 동일한 경우, 크로마 블록들의 암시적 분할은 수행되지 않는다. 특정 크로마 컴포넌트에 대한 최대 사이즈가 32와 동일한 경우, 크로마 블록들은 64x16 및 64x32로부터 각각 사이즈들 32x16 및 32x32의 블록들로 분할된다.
CTU 사이즈 128x128은 단지 예일 뿐이며, CTU 사이즈는 이보다 클 수도 있고 또는 작을 수도 있다는 것에 유의해야 한다. 마찬가지로, 최대 사이즈는 64보다 클 수도 있고 또는 작을 수도 있다. 위의 예는 수평 분할 또는 수직 분할 중 어느 것일 수 있다. 정규 CU 분할 프로세스는 또한 일련의 수직, 수평 분할들뿐만 아니라, 사이즈 2Nx2N의 블록 또는 유닛으로부터 사이즈 NxN의 4개의 블록 또는 유닛으로의 쿼드 분할들로 구성될 수도 있다. 수직 또는 수평 분할들은 하나의 블록 또는 유닛을 2개 또는 3개 이상의 블록 또는 유닛으로 분할할 수 있다.
도 2는 일부 실시예들에 따른 루마에 대한 수직 암시적 분할을 갖는 디코딩 프로세스(200)를 예시하는 흐름도이다. 디코딩 프로세스(200)는 디코더에 의해 수행될 수 있다. 일부 실시예들에서, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하게 설정되고, 비디오 픽처 내의 하나의 코딩 유닛 또는 블록 B는 수직으로 heightY개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 사이즈를 가지며, heightY는 N보다 크고, widthY는 N 이하이다.
다수의 코딩 유닛(CU)들로 파티셔닝된 비디오 픽처를 디코딩하기 위한 디코딩 프로세스(200)는 단계(202)에서 시작할 수 있으며, 여기서 코딩 유닛 또는 블록 B의 루마 컴포넌트는 수직으로 Z개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 2개의 블록 B1 및 B2로 분할되고, 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않는다. 일부 실시예들에서, Z는 heightY/2와 동일하다. 단계(204)에서, 블록 B1에 대해 적어도 하나의 변환 계수가 디코딩되고, 블록 B1에 역 변환이 적용된다. 추가 또는 대안적인 단계(206)에서, 블록 B2에 대해 적어도 하나의 변환 계수가 디코딩되고, 블록 B2에 역 변환이 적용된다. 단계(208)에서, 경계의 B1 측에 있는 적어도 F개의 루마 샘플 및 경계의 B2 측에 있는 적어도 F개의 루마 샘플을 수정하는 디블로킹 필터가 블록 B1과 B2 사이의 경계에 적용된다. 일부 실시예들에서, 디블로킹 필터는 긴 디블로킹 필터(long deblocking filter)를 포함한다.
일부 실시예들에서, N은 64와 동일하고, heightY는 128과 동일하고, widthY는 64와 동일하고, F는 2와 동일하다. 일부 실시예들에서, N은 64와 동일하고, heightY는 128과 동일하고, widthY는 32와 동일하다. 일부 실시예들에서, F는 3, 5 또는 7과 동일하다.
일부 실시예들에서, 프로세스(200)는 디코더가 블록 B1 또는 블록 B2가 인트라 예측을 사용하는지를 결정하는 추가 단계(210)를 포함한다. 일부 실시예들에서, heightY는 2*N 이하이다.
도 3은 일부 실시예들에 따른 루마에 대한 수직 암시적 분할을 갖는 인코딩 프로세스(300)를 예시하는 흐름도이다. 인코딩 프로세스(300)는 인코더에 의해 수행될 수 있다.
최대 사이즈가 값 N과 동일하게 설정되는 비디오 픽처를 인코딩하기 위한 인코딩 프로세스(300)는 인코더가 비디오 픽처를 다수의 코딩 유닛(CU)들로 파티셔닝하는 단계(302)에서 시작할 수 있다. 일부 실시예들에서, 비디오 픽처의 하나의 코딩 유닛 또는 블록 B는 수직으로 heightY개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 사이즈를 가지며, 여기서 heightY는 N보다 크고, widthY는 N 이하이다. 단계(304)에서, 코딩 유닛 또는 블록 B의 루마 컴포넌트는 수직으로 Z개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 2개의 블록 B1 및 B2로 분할되고, 코딩된 비디오 픽처로의 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 포함하지 않는다. 일부 실시예들에서, Z는 heightY/2와 동일하다. 단계(306)에서, 블록 B1에 대한 코딩된 비디오 픽처에 적어도 하나의 변환 계수가 포함된다. 추가 또는 대안적인 단계(308)에서는, 블록 B2에 대한 코딩된 비디오 픽처에 적어도 하나의 변환 계수가 포함된다. 단계(310)에서, 경계의 B1 측에 있는 적어도 F개의 루마 샘플 및 경계의 B2 측에 있는 적어도 F개의 루마 샘플을 수정하는 디블로킹 필터가 블록 B1과 B2 사이의 경계에 적용된다. 일부 실시예들에서, 디블로킹 필터는 긴 디블로킹 필터를 포함한다.
일부 실시예들에서, N은 64와 동일하고, heightY는 128과 동일하고, widthY는 64와 동일하고, F는 2와 동일하다. 일부 실시예들에서, N은 64와 동일하고, heightY는 128과 동일하고, widthY는 32와 동일하다. 일부 실시예들에서, F는 3, 5 또는 7이다.
일부 실시예들에서, 프로세스(300)는 디코더가 블록 B1 또는 블록 B2가 인트라 예측을 사용하는지를 결정하는 추가 단계(312)를 포함한다. 일부 실시예들에서, heightY는 2*N 이하이다.
도 4는 일부 실시예들에 따른 루마에 대한 수평 암시적 분할을 갖는 디코딩 프로세스(400)를 예시하는 흐름도이다. 디코딩 프로세스(400)는 디코더에 의해 수행될 수 있다. 일부 실시예들에서, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하게 설정되고, 비디오 픽처 내의 하나의 코딩 유닛 또는 블록 B는 수직으로 heightY개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 사이즈를 가지며, widthY는 N보다 크고, heightY는 N 이하이다.
다수의 코딩 유닛(CU)들로 파티셔닝된 비디오 픽처를 디코딩하기 위한 디코딩 프로세스(400)는 단계(402)에서 시작할 수 있으며, 여기서 코딩 유닛 또는 블록 B의 루마 컴포넌트는 수평으로 Z개의 루마 샘플 및 수직으로 heightY개의 루마 샘플의 2개의 블록 B1 및 B2로 분할되고, 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않는다. 일부 실시예들에서, Z는 widthY/2와 동일하다. 단계(404)에서, 블록 B1에 대해 적어도 하나의 변환 계수가 디코딩되고, 블록 B1에 역 변환이 적용된다. 추가 또는 대안적인 단계(406)에서, 블록 B2에 대해 적어도 하나의 변환 계수가 디코딩되고, 블록 B2에 역 변환이 적용된다. 단계(408)에서, 경계의 B1 측에 있는 적어도 F개의 루마 샘플 및 경계의 B2 측에 있는 적어도 F개의 루마 샘플을 수정하는 디블로킹 필터가 블록 B1과 B2 사이의 경계에 적용된다. 일부 실시예들에서, 디블로킹 필터는 긴 디블로킹 필터를 포함한다.
일부 실시예들에서, N은 64와 동일하고, heightY는 128과 동일하고, widthY는 64와 동일하고, F는 2와 동일하다. 일부 실시예들에서, N은 64와 동일하고, heightY는 128과 동일하고, widthY는 32와 동일하다. 일부 실시예들에서, F는 3, 5 또는 7과 동일하다.
일부 실시예들에서, 프로세스(400)는 디코더가 블록 B1 또는 B2 블록이 인트라 예측을 사용하는지를 결정하는 추가 단계(410)를 포함한다. 일부 실시예들에서, widthY는 2*N 이하이다.
도 5는 일부 실시예들에 따른 크로마에 대한 수직 암시적 분할을 갖는 디코딩 프로세스(500)를 예시하는 흐름도이다. 디코딩 프로세스(500)는 디코더에 의해 수행될 수 있다. 일부 실시예들에서, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하게 설정되고, 비디오 픽처 내의 하나의 코딩 유닛 또는 블록 B는 수직으로 heightC개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 사이즈를 가지며, heightC는 N보다 크고, widthC는 N 이하이다.
다수의 코딩 유닛(CU)들로 파티셔닝된 비디오 픽처를 디코딩하기 위한 디코딩 프로세스(500)는 단계(502)에서 시작할 수 있으며, 여기서 코딩 유닛 또는 블록 B의 크로마 컴포넌트는 수직으로 Z개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 2개의 블록 B1 및 B2로 분할되고, 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않는다. 일부 실시예들에서, Z는 heightC/2와 동일하다. 단계(504)에서, 블록 B1에 대해 적어도 하나의 변환 계수가 디코딩되고, 블록 B1에 역 변환이 적용된다. 추가 또는 대안적인 단계(506)에서, 블록 B2에 대해 적어도 하나의 변환 계수가 디코딩되고, 블록 B2에 역 변환이 적용된다. 단계(508)에서, 경계의 B1 측에 있는 적어도 F개의 크로마 샘플 및 경계의 B2 측에 있는 적어도 F개의 크로마 샘플을 수정하는 디블로킹 필터가 블록 B1과 B2 사이의 경계에 적용된다. 일부 실시예들에서, 디블로킹 필터는 긴 디블로킹 필터를 포함한다.
일부 실시예들에서, N은 32와 동일하고, heightC는 64와 동일하고, widthC는 32와 동일하고, F는 1과 동일하다. 다른 예에서 N은 32와 동일하고, heightC는 64와 동일하고, widthC는 16과 동일하다.
일부 대안적인 실시예들에서, 프로세스(500)는 디코더가 블록 B1 또는 블록 B2가 단계들(504 및 506) 대신 인트라 예측을 사용하는지를 결정하는 단계를 포함할 수 있다. 일부 실시예들에서, 프로세스(500)는 디코더가 블록 B1 또는 블록 B2가 단계들(504 및 506)에 추가하여 인트라 예측을 사용하는지를 결정하는 단계를 포함할 수 있다. 일부 실시예들에서, heightC는 2*N 이하이다.
도 6은 일부 실시예들에 따른 크로마에 대한 수직 암시적 분할을 갖는 인코딩 프로세스(600)를 예시하는 흐름도이다. 인코딩 프로세스(600)는 인코더에 의해 수행될 수 있다.
최대 사이즈가 값 N과 동일하게 설정되는 비디오 픽처를 인코딩하기 위한 인코딩 프로세스(600)는 인코더가 비디오 픽처를 다수의 코딩 유닛(CU)들로 파티셔닝하는 단계(602)에서 시작할 수 있다. 일부 실시예들에서, 비디오 픽처 내의 하나의 코딩 유닛 또는 블록 B는 수직으로 heightC개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 사이즈를 가지며, heightC는 N보다 크고, widthC는 N 이하이다. 단계(604)에서, 코딩 유닛 또는 블록 B의 크로마 컴포넌트는 수직으로 Z개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 2개의 블록 B1 및 B2로 분할되고, 코딩된 비디오 픽처로의 인코딩된 비디오 픽처로의 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 포함하지 않는다. 일부 실시예들에서, Z는 heightC/2와 동일하다. 단계(606)에서, 블록 B1에 대한 코딩된 비디오 픽처에 적어도 하나의 변환 계수가 포함된다. 추가 또는 대안적인 단계(608)에서, 블록 B2에 대한 코딩된 비디오 픽처에 적어도 하나의 변환 계수가 포함된다. 단계(610)에서, 경계의 B1 측에 있는 적어도 F개의 크로마 샘플 및 경계의 B2 측에 있는 적어도 F개의 크로마 샘플을 수정하는 디블로킹 필터가 블록 B1과 B2 사이의 경계에 적용된다. 일부 실시예들에서, 디블로킹 필터는 긴 디블로킹 필터를 포함한다.
일부 실시예들에서, N은 32와 동일하고, heightC는 64와 동일하고, widthC는 32와 동일하고, F는 1과 동일하다. 다른 예에서 N은 32와 동일하고, heightC는 64와 동일하고, widthC는 16과 동일하다.
일부 실시예들에서, 프로세스(600)는 인코더가 블록 B1 또는 블록 B2가 인트라 예측을 사용하는지를 결정하는 추가 단계(612)를 포함한다. 일부 실시예들에서, heightC는 2*N 이하이다.
도 7은 일부 실시예들에 따른 크로마에 대한 수평 암시적 분할을 갖는 디코딩 프로세스(700)를 예시하는 흐름도이다. 디코딩 프로세스(700)는 디코더에 의해 수행될 수 있다. 일부 실시예들에서, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하게 설정되고, 비디오 픽처 내의 하나의 코딩 유닛 또는 블록 B는 수직으로 heightC개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 사이즈를 가지며, heightC는 N보다 크고, widthC는 N 이하이다.
다수의 코딩 유닛(CU)들로 파티셔닝된 비디오 픽처를 디코딩하기 위한 디코딩 프로세스(700)는 단계(702)에서 시작할 수 있으며, 여기서 B의 크로마 컴포넌트는 수평으로 Z개의 크로마 샘플 및 수직으로 heightC개의 크로마 샘플의 2개의 블록 B1 및 B2로 분할되고, 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않는다. 일부 실시예들에서, Z는 heightC/2와 동일하다. 단계(704)에서, 블록 B1에 대해 적어도 하나의 변환 계수가 디코딩되고, 블록 B1에 역 변환이 적용된다. 추가 또는 대안적인 단계(706)에서, 블록 B2에 대해 적어도 하나의 변환 계수가 디코딩되고, 블록 B2에 역 변환이 적용된다. 단계(708)에서, 경계의 B1 측에 있는 적어도 F개의 크로마 샘플 및 경계의 B2 측에 있는 적어도 F개의 크로마 샘플을 수정하는 디블로킹 필터가 블록 B1과 B2 사이의 경계에 적용된다. 일부 실시예들에서, 디블로킹 필터는 긴 디블로킹 필터를 포함한다.
일부 실시예들에서, N은 32와 동일하고, heightC는 64와 동일하고, widthC는 32와 동일하고, F는 1과 동일하다. 다른 예에서, N은 32와 동일하고, heightC는 64와 동일하고, widthC는 16과 동일하다.
일부 대안적인 실시예들에서, 프로세스(700)는 디코더가 블록 B1 또는 블록 B2가 단계들(704 및 706) 대신 인트라 예측을 사용하는지를 결정하는 단계를 포함할 수 있다. 일부 실시예들에서, 프로세스(700)는 디코더가 블록 B1 또는 블록 B2가 단계들(504 및 506)에 추가하여 인트라 예측을 사용하는지를 결정하는 단계를 포함할 수 있다. 일부 실시예들에서, widthC는 2*N 이하이다.
아래의 표 1은 루마에 대한 실시예들을 구현하는 것과 관련된 의사 코드를 예시한다.
Figure pct00002
Figure pct00003
VVC에서, 최대 CU 사이즈는 128x128이고, 최대 TU 사이즈는 64x64이다. 따라서, 최대 사이즈 N은 64와 동일하다. CU 사이즈가 128x128이고 디코딩할 일부 변환 계수들이 있을 때, CU는 암시적 분할에 의해 4개의 중첩하지 않는 64x64 암시적 TU들로 나눠진다. CU는 임의의 암시적 분할 이전의 CU 사이즈가 128xN 또는 Nx128과 동일하도록 직사각형 블록들로 분할될 수 있으며, 여기서 N은, 예를 들어, 4, 8, 16, 32, 64이다. 그런 다음, CU에 변환 계수들이 있을 때, CU는 암시적으로 2개의 64xN TU 또는 2개의 Nx64 TU로 분할된다.
표 1에 도시된 의사 코드는, 블록들 B1 및 B2 중 적어도 하나가 일부 실시예들에 따라 비-제로 변환 계수들을 가질 때, 위에서 설명된 암시적 분할로부터 생성된 블록들 B1과 B2 사이의 경계들이 디블로킹 필터에 의해 디블로킹될 수 있는 것을 보장하기 위한 VVC에 대한 변경들을 예시한다.
표 1에 도시된 바와 같이, iEdgeOffset은 디블로킹 필터를 디블로킹이 루마의 암시적 TU 경계에 적용될 수 있도록 변위가 4개의 샘플 유닛으로 표현되는 루마 컴포넌트의 CU 경계로부터 64개의 샘플을 변위시킨다. 일부 실시예들에서, edgeDir은 수평 경계(EDGE_HOR) 또는 수직 경계(EDGE_VER) 중 어느 것이고, cu는 현재 CU이다.
일부 실시예들에서, VVC는 HEVC 필터들 및 결정들만을 사용한다. 일부 실시예들에서는, 텍스처가 매끄러울 때, 특히 큰 블록들에 대해 더 긴 필터들 및 결정들이 사용될 수 있다.
도 8은 표 1에 도시된 의사 코드를 구현하는 VVC의 예 및 의사 코드를 구현하지 않는 VVC의 예를 예시한다. 이 경우, 도 8에 도시된 두 예에는 더 긴 필터들이 사용된다. 보다 구체적으로, 도 8은 원래 디코딩된 LUMA와 비교하여 동일한 CU 파티션에 대한 LUMA의 ITUDB 개선 예를 도시한다.
표 2는 4:2:0의 크로마에 대한 실시예들을 구현하는 것과 관련된 의사 코드를 예시한다.
Figure pct00004
Figure pct00005
VVC에서, 최대 CU 사이즈는 4:2:0의 64x64 크로마 컴포넌트에 대응하는 128x128이고, 크로마에 대한 최대 TU 사이즈는 32x32이다. 따라서, 크로마에 대한 최대 사이즈는 32와 동일하다. CU 사이즈가 128x128이고 디코딩할 일부 변환 계수들이 있을 때, CU는 암시적 분할에 의해 4개의 중첩하지 않는 32x32 암시적 TU로 나눠진다. CU는 임의의 암시적 분할 이전의 크로마 컴포넌트의 블록 사이즈가 64xN 및 Nx64와 동일하도록 직사각형 블록들로 분할될 수 있으며, 여기서 N은, 예를 들어, 4, 8, 16, 32이다. 그 후, 크로마 블록은 암시적으로 2개의 32xN 또는 2개의 Nx32 TU로 분할된다.
표 2에 도시된 의사 코드는, 블록들 B1 및 B2 중 적어도 하나가 인트라 예측될 때, 위에서 설명된 암시적 분할로부터 생성된 블록들 B1과 B2 사이의 경계들이 디블로킹 필터에 의해 디블로킹될 수 있는 것을 보장하기 위한 VVC에 대한 변경들을 예시한다.
표 2에 도시된 바와 같이, iEdgeOffset은 디블로킹 필터를 디블로킹이 크로마의 암시적 TU 경계에 적용될 수 있도록 변위가 4개의 샘플 유닛으로 표현되는 크로마 컴포넌트의 CU 경계로부터 32개의 크로마 샘플(4:2:0의 경우, 64개의 루마 샘플)을 변위시킨다. 일부 실시예들에서, edgeDir은 수평 경계(EDGE_HOR) 또는 수직 경계(EDGE_VER) 중 어느 것이고, cu는 현재 CU이다.
일부 실시예들에서, iEdgeOffset은 크로마 샘플들로 표현될 수도 있다. 4:2:0의 경우, 이것은 64/4 대신 32/4에 대응할 것이다.
일부 실시예들에서는, VVC에서, 인트라 코딩된 CU들에 대한 경계들만이 디블로킹되고, 경계의 각각의 측에 있는 하나의 샘플만이 디블로킹된다. 일부 실시예들에서, VVC에서, 이것은 또한 인터 코딩된 CU들의 디블로킹 및 더 긴 필터들을 사용하는 디블로킹을 포함할 수도 있다.
도 9는 일부 실시예들에 따른 인코더(901)의 블록도이다. 도 9에 도시된 바와 같이, 인코더(901)는 하나 이상의 프로세서(P)(955)(예를 들어, 범용 마이크로프로세서 및/또는 애플리케이션 특정 집적 회로(application specific integrated circuit)(ASIC), 필드-프로그램 가능 게이트 어레이(field-programmable gate array)(FPGA)들 등과 같은 하나 이상의 다른 프로세서)를 포함할 수 있는 프로세싱 회로(PC)(902); 네트워크 인터페이스(948) - 네트워크 인터페이스(948)는 인코더(901)가 네트워크 인터페이스(948)가 연결되는 네트워크(90)(예를 들어, 인터넷 프로토콜(Internet Protocol)(IP) 네트워크)에 연결된 다른 노드들에 데이터를 송신하고 이로부터 데이터를 수신하게 할 수 있는 송신기(Tx)(945) 및 수신기(Rx)(947)를 포함함 -; UE들과의 무선 통신을 위해 안테나 시스템(904)에 커플링되는 회로망(903)(예를 들어, Rx(905) 및 Tx(906)를 포함하는 라디오 송수신기 회로망); 및 하나 이상의 비-휘발성 저장 디바이스 및/또는 하나 이상의 휘발성 저장 디바이스(예를 들어, 랜덤 액세스 메모리(random access memory)(RAM))를 포함할 수 있는 로컬 저장 유닛("데이터 저장 시스템"이라고도 함)(908)을 포함할 수 있다. PC(902)가 프로그램 가능 프로세서를 포함하는 실시예들에서, 컴퓨터 프로그램 제품(computer program product)(CPP)(941)이 제공될 수 있다. CPP(941)는 컴퓨터 판독 가능 명령어(CRI)(computer readable instruction)들(944)을 포함하는 컴퓨터 프로그램(computer program)(CP)(943)을 저장하는 컴퓨터 판독 가능 매체(computer readable medium)(CRM)(942)를 포함한다. CRM(942)은 자기 매체(예를 들어, 하드 디스크), 광학 매체, 메모리 디바이스들(예를 들어, 랜덤 액세스 메모리, 플래시 메모리) 등과 같은 비-일시적 컴퓨터 판독 가능 매체일 수 있지만, 이에 제한되지 않는다. 일부 실시예들에서, 컴퓨터 프로그램(943)의 CRI(944)는, 데이터 프로세싱 장치(902)에 의해 실행될 때, CRI가 인코더(901)로 하여금 본 명세서에 설명된 단계들(예를 들어, 흐름도들 및/또는 메시지 흐름도들을 참조하여 본 명세서에 설명된 단계들)을 수행하게 하도록 구성된다. 다른 실시예들에서, 인코더(901)는 코드에 대한 필요없이 본 명세서에 설명된 단계들을 수행하도록 구성될 수 있다. 즉, 예를 들어, PC(902)는 단지 하나 이상의 ASIC로 구성될 수 있다. 따라서, 본 명세서에 설명된 실시예들의 피처들은 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
도 10은 일부 실시예들에 따른 디코더(1001)의 블록도이다. 도 10에 도시된 바와 같이, 디코더(1001)는 하나 이상의 프로세서(P)(955)(예를 들어, 범용 마이크로프로세서 및/또는 애플리케이션 특정 집적 회로(ASIC), 필드-프로그램 가능 게이트 어레이(FPGA)들 등과 같은 하나 이상의 다른 프로세서)를 포함할 수 있는 프로세싱 회로(PC)(902); 네트워크 인터페이스(948) - 네트워크 인터페이스(948)는 디코더(1001)가 네트워크 인터페이스(948)가 연결되는 네트워크(110)(예를 들어, 인터넷 프로토콜(IP) 네트워크)에 연결된 다른 노드들에 데이터를 송신하고 이로부터 데이터를 수신하게 할 수 있는 송신기(Tx)(945) 및 수신기(Rx)(947)를 포함함 -; UE들과의 무선 통신을 위해 안테나 시스템(904)에 커플링되는 회로망(903)(예를 들어, Rx(905) 및 Tx(906)를 포함하는 라디오 송수신기 회로망); 및 하나 이상의 비-휘발성 저장 디바이스 및/또는 하나 이상의 휘발성 저장 디바이스(예를 들어, 랜덤 액세스 메모리(RAM))를 포함할 수 있는 로컬 저장 유닛("데이터 저장 시스템"이라고도 함)(908)을 포함할 수 있다. PC(902)가 프로그램 가능 프로세서를 포함하는 실시예들에서, 컴퓨터 프로그램 제품(CPP)(941)이 제공될 수 있다. CPP(941)는 컴퓨터 판독 가능 명령어(CRI)들(944)을 포함하는 컴퓨터 프로그램(CP)(943)을 저장하는 컴퓨터 판독 가능 매체(CRM)(942)를 포함한다. CRM(942)은 자기 매체(예를 들어, 하드 디스크), 광학 매체, 메모리 디바이스들(예를 들어, 랜덤 액세스 메모리, 플래시 메모리) 등과 같은 비-일시적 컴퓨터 판독 가능 매체일 수 있지만, 이에 제한되지 않는다. 일부 실시예들에서, 컴퓨터 프로그램(943)의 CRI(944)는, 데이터 프로세싱 장치(902)에 의해 실행될 때, CRI가 디코더(1001)로 하여금 본 명세서에 설명된 단계들(예를 들어, 흐름도들 및/또는 메시지 흐름도들을 참조하여 본 명세서에 설명된 단계들)을 수행하게 하도록 구성된다. 다른 실시예들에서, 디코더(1001)는 코드에 대한 필요없이 본 명세서에 설명된 단계들을 수행하도록 구성될 수 있다. 즉, 예를 들어, PC(902)는 단지 하나 이상의 ASIC로 구성될 수 있다. 따라서, 본 명세서에 설명된 실시예들의 피처들은 하드웨어 및/또는 소프트웨어로 구현될 수 있다.
도 11은 일부 실시예들에 따른 디코더(1001)의 기능 유닛들을 도시하는 도면이다. 도 11에 도시된 바와 같이, 디코더(1001)는 코딩 유닛 또는 블록 B의 루마 컴포넌트를 수직으로 Z개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 2개의 블록 B1 및 B2로 분할하기 위한 분할 유닛(1102) - 벡터의 제1 예측을 형성하는 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않음 -; 블록 B1에 대한 적어도 하나의 변환 계수를 디코딩하기 위한 제1 디코딩 유닛(1104); 블록 B1에 역 변환을 적용하기 위한 제1 적용 유닛(1106); 블록 B2에 대한 적어도 하나의 변환 계수를 디코딩하기 위한 제2 디코딩 유닛(1108); 블록 B2에 역 변환을 적용하기 위한 제2 적용 유닛(1110); 경계의 B1 측에 있는 적어도 F개의 루마 샘플 및 경계의 B2 측에 있는 적어도 F개의 루마 샘플을 수정하는 디블로킹 필터를 블록 B1과 B2 사이의 경계에 적용하기 위한 제3 적용 유닛(1112)을 포함한다. 일부 실시예들에서, 분할 유닛(1102)은 코딩 유닛 또는 블록 B의 루마 컴포넌트를 수평으로 Z개의 루마 샘플 및 수직으로 heightY개의 루마 샘플의 2개의 블록 B1 및 B2로 분할하기 위한 것이며, 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않는다.
일부 실시예들에서, 분할 유닛(1102)은 코딩 유닛 또는 블록 B의 크로마 컴포넌트를 수직으로 Z개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 2개의 블록 B1 및 B2로 분할하기 위한 것이며 - 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않음 -, 제3 적용 유닛(1112)은 경계의 B1 측에 있는 적어도 F개의 크로마 샘플 및 경계의 B2 측에 있는 적어도 F개의 크로마 샘플을 수정하는 디블로킹 필터를 블록 B1과 B2 사이의 경계에 적용하기 위한 것이다. 일부 실시예들에서, 분할 유닛(1102)은 B의 크로마 컴포넌트를 수평으로 Z개의 크로마 샘플 및 수직으로 heightC개의 크로마 샘플의 2개의 블록 B1 및 B2로 분할하기 위한 것이며, 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않는다.
도 12는 일부 실시예들에 따른 인코더(901)의 기능 유닛들을 도시하는 도면이다. 도 12에 도시된 바와 같이, 인코더(901)는 비디오 픽처를 다수의 코딩 유닛들로 파티셔닝하기 위한 파티셔닝 유닛(1202); 코딩 유닛 또는 블록 B의 루마 컴포넌트를 수직으로 Z개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 2개의 블록 B1 및 B2로 분할하기 위한 분할 유닛(1204) - 코딩된 비디오 픽처로의 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 포함하지 않음 -; 블록 B1에 대한 코딩된 비디오 픽처에 적어도 하나의 변환 계수를 포함시키기 위한 제1 포함 유닛(1206); 블록 B2에 대한 코딩된 비디오 픽처에 적어도 하나의 변환 계수를 포함시키기 위한 제2 포함 유닛(1208); 경계의 B1 측에 있는 적어도 F개의 루마 샘플 및 경계의 B2 측에 있는 적어도 F개의 루마 샘플을 수정하는 디블로킹 필터를 블록 B1과 B2 사이의 경계에 적용하기 위한 적용 유닛(1210)을 포함한다. 일부 실시예들에서, 분할 유닛(1204)은 코딩 유닛 또는 블록 B의 크로마 컴포넌트를 수직으로 Z개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 2개의 블록 B1 및 B2로 분할하기 위한 분할 것이며, 코딩된 비디오 픽처로의 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 포함하지 않는다.
일부 실시예들의 요약
A1. 비디오 픽처를 디코딩하기 위한 방법으로서, 코딩 유닛 또는 블록의 루마 컴포넌트를 수직으로 Z개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightY개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 사이즈를 포함하고, heightY는 N보다 크고, widthY는 N 이하이고, Z는 widthY/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 적어도 하나의 변환 계수를 디코딩하는 단계; 제1 블록 및 제2 블록 중 하나 이상에 역 변환을 적용하는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 루마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 루마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함하는 방법.
B1. 비디오 픽처를 인코딩하기 위한 방법으로서, 비디오 픽처를 다수의 코딩 유닛들로 파티셔닝하는 단계; 코딩 유닛 또는 블록의 루마 컴포넌트를 수직으로 Z개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 인코딩된 비디오 픽처로의 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 포함하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightY개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 사이즈를 포함하고, heightY는 N보다 크고, widthY는 N 이하이고, Z는 heightY/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 인코딩된 비디오 픽처에 적어도 하나의 변환 계수를 포함시키는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 루마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 루마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함하는 방법.
C1. 비디오 픽처를 디코딩하기 위한 방법으로서, 코딩 유닛 또는 블록의 루마 컴포넌트를 수평으로 Z개의 루마 샘플 및 수직으로 heightY개의 루마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightY개의 루마 샘플 및 수평으로 widthY개의 루마 샘플의 사이즈를 포함하고, heightY는 N보다 크고, widthY는 N 이하이고, Z는 widthY/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 적어도 하나의 변환 계수를 디코딩하는 단계; 제1 블록 및 제2 블록 중 하나 이상에 역 변환을 적용하는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 루마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 루마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함하는 방법.
D1. 비디오 픽처를 디코딩하기 위한 방법으로서, 코딩 유닛 또는 블록의 크로마 컴포넌트를 수직으로 Z개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightC개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 사이즈를 포함하고, heightC는 N보다 크고, widthC는 N 이하이고, Z는 heightC/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 적어도 하나의 변환 계수를 디코딩하는 단계; 제1 블록 및 제2 블록 중 하나 이상에 역 변환을 적용하는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 크로마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 크로마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함하는 방법.
E1. 비디오 픽처를 인코딩하기 위한 방법으로서, 비디오 픽처를 다수의 코딩 유닛들로 파티셔닝하는 단계; 코딩 유닛 또는 블록의 크로마 컴포넌트를 수직으로 Z개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 인코딩된 비디오 픽처로의 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 포함하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightC개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 사이즈를 포함하고, heightC는 N보다 크고, widthC는 N 이하이고, Z는 heightC/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 인코딩된 비디오 픽처에 적어도 하나의 변환 계수를 포함시키는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 크로마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 크로마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함하는 방법.
F1. 비디오 픽처를 디코딩하기 위한 방법으로서, 코딩 유닛 또는 블록의 크로마 컴포넌트를 수평으로 Z개의 크로마 샘플 및 수직으로 heightC개의 크로마 샘플의 제1 블록 및 제2 블록으로 분할하는 단계 - 블록 레벨에서의 이러한 분할을 나타내는 임의의 신택스 엘리먼트를 디코딩하지 않고, 비디오 픽처에 대한 최대 사이즈는 정수 값 N과 동일하게 설정되고, 비디오 픽처 내의 코딩 유닛 또는 블록은 수직으로 heightC개의 크로마 샘플 및 수평으로 widthC개의 크로마 샘플의 사이즈를 포함하고, heightC는 N보다 크고, widthC는 N 이하이고, Z는 heightC/2와 동일함 -; 제1 블록 및 제2 블록 중 하나 이상에 대한 적어도 하나의 변환 계수를 디코딩하는 단계; 제1 블록 및 제2 블록 중 하나 이상에 역 변환을 적용하는 단계; 및 경계의 제1 블록 측에 있는 하나 이상의 크로마 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 크로마 샘플을 수정하는 디블로킹 필터를 제1 블록과 제2 블록 사이의 경계에 적용하는 단계를 포함하는 방법. 추가적인 정의들이 이하에 제공된다.
다른 실시예는 코딩된 비디오 픽처를 디코딩하기 위한 방법을 포함하며, 방법은 코딩된 비디오 픽처의 직사각형 블록 B를 획득하는 단계 - 직사각형 블록 B는 사이즈 D1xD2이고, D1은 N보다 크고, N은 미리 결정된 최대 변환 사이즈임 - 를 포함한다. 방법은 또한 D1이 N보다 크다고 결정하는 단계, 및 D1이 N보다 크다고 결정한 후, 블록 B를 적어도 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할함으로써, 제1 서브-블록 B1과 제2 서브-블록 B2 사이의 경계를 형성하는 단계 - 서브-블록 B1은 사이즈 NxD2 또는 NxN이고, 서브-블록 B2는 사이즈 NxD2 또는 NxN임 - 를 포함한다. 방법은 또한, 서브-블록들 B1 또는 B2 중 적어도 하나가 변환 계수들을 포함할 때, 제1 서브-블록 B1과 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 단계 - 디블로킹 필터는 경계의 제1 블록 측에 있는 하나 이상의 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 샘플을 수정함 - 를 포함한다. 다른 실시예에서는 이 방법을 수행하도록 적응된 디코더가 제공된다.
다른 실시예는 인코딩된 비디오 픽처를 생성하기 위해 비디오 픽처를 인코딩하기 위한 방법을 포함하며, 방법은 비디오 픽처를 다수의 블록들로 분할하는 단계 - 다수의 블록들은 제1 직사각형 블록 B를 포함하고, 직사각형 블록 B는 사이즈 D1xD2이고, D1은 N보다 크고, N은 미리 결정된 최대 변환 사이즈임 - 를 포함한다. 방법은 또한 D1이 N보다 크다고 결정하는 단계, 및 D1이 N보다 크다고 결정한 후, 블록 B를 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할함으로써, 제1 서브-블록 B1과 제2 서브-블록 B2 사이에 경계를 형성하는 단계 - 서브-블록 B1은 사이즈 NxD2 또는 NxN이고, 서브-블록 B2는 사이즈 NxD2 또는 NxN임 - 를 포함한다. 방법은 또한 인코딩된 비디오 픽처에 서브-블록 B1 및/또는 서브-블록 B2에 대한 적어도 하나의 변환 계수를 포함시키는 단계를 포함한다. 방법은, 서브-블록들 B1 또는 B2 중 적어도 하나가 변환 계수들을 포함할 때, 제1 서브-블록 B1과 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 단계 - 디블로킹 필터는 경계의 제1 블록 측에 있는 하나 이상의 샘플 및 경계의 제2 블록 측에 있는 하나 이상의 샘플을 수정함 - 를 추가로 포함한다. 다른 실시예에서는, 이 방법을 수행하도록 적응되는 인코더가 제공된다.
다른 실시예는, 프로세싱 회로에 의해 수행될 때, 프로세싱 회로로 하여금, 위에서 설명된 방법 실시예들 중 임의의 것에 따른 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램(1310)(도 13 참조)을 포함한다. 일 실시예에서, 캐리어(1320)는 위에서 언급된 컴퓨터 프로그램(1310)을 포함하며, 캐리어는 전자 신호, 광 신호, 라디오 신호, 또는 컴퓨터 판독 가능 저장 매체 중 하나이다.
본 발명 개념들의 다양한 실시예들에 대한 상기 설명에서, 본 명세서에서 사용된 용어는 특정 실시예들만을 설명하기 위한 것이며, 본 발명의 개념들을 제한하도록 의도되지 않는다는 것이 이해되어야 한다. 달리 정의되지 않는 한, 본 명세서에 사용된 모든 용어들(기술적 및 과학적 용어들을 포함)은 본 발명의 개념들이 속하는 기술 분야의 통상의 기술자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전들에 정의된 용어들과 같은 용어들은 본 명세서 및 관련 기술의 맥락에서 그들의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하고, 본 명세서에 명시적으로 정의되지 않는 한, 이상화되거나 지나치게 형식적인 의미로 해석되지 않을 것이 추가로 이해될 것이다.
엘리먼트가 다른 엘리먼트에 "연결되는(connected)", "커플링되는(coupled)", "응답하는(responsive)" 것으로서 또는 그 변형들로서 참조될 때, 이것은 다른 엘리먼트에 직접 연결, 커플링 또는 응답할 수도 있고, 또는 중간 엘리먼트들이 존재할 수도 있다. 대조적으로, 엘리먼트가 다른 엘리먼트에 "직접 연결되는(directly connected)", "직접 커플링되는(directly coupled)", "직접 응답하는(directly responsive)" 것으로서 또는 그 변형들로서 참조될 때에는, 중간 엘리먼트들이 존재하지 않는다. 유사한 숫자들은 전체적으로 유사한 엘리먼트들을 참조한다. 또한, 본 명세서에 사용된 "커플링되는", "연결되는", "응답하는" 또는 그 변형들은 무선으로 커플링되는, 연결되는, 또는 응답하는을 포함할 수 있다. 본 명세서에 사용된 바와 같이, 단수 형태들 "a", "an" 및 "the"는, 문맥상 달리 명확하게 나타내지 않는 한, 복수 형태들도 포함하도록 의도된다. 잘 알려진 기능들 또는 구조들은 간결함 및/또는 명확성을 위해 상세하게 설명되지 않을 수 있다. 용어 "및/또는"은 연관된 열거된 항목들 중 하나 이상의 것의 임의의 및 모든 조합들을 포함한다.
비록 제1, 제2, 제3 등의 용어들이 본 명세서에서 다양한 엘리먼트들/동작들을 설명하기 위해 사용될 수 있지만, 이들 엘리먼트들/동작들은 이러한 용어들에 의해 제한되어서는 안된다는 것이 이해될 것이다. 이러한 용어들은 하나의 엘리먼트/동작을 다른 엘리먼트/동작과 구별하기 위해서만 사용된다. 따라서, 일부 실시예들에서의 제1 엘리먼트/동작은 본 발명의 개념들의 교시들로부터 벗어나지 않고 다른 실시예들에서 제2 엘리먼트/동작으로 명명될 수 있다. 동일한 참조 번호들 또는 동일한 참조 부호들은 명세서 전체에 걸쳐 동일하거나 유사한 엘리먼트들을 나타낸다.
본 명세서에 사용된 바와 같이, 용어들 "포함한다(comprise)", "포함하는(comprising)", "포함한다(comprises)", "포함한다(include)", "포함하는(including)", "포함한다(includes)", "갖는다(have)", "갖는다(has)", "갖는(having)", 또는 이들의 변형들은 개방형이고, 하나 이상의 언급된 피처, 정수, 엘리먼트, 단계, 컴포넌트 또는 기능을 포함하지만, 하나 이상의 다른 피처, 정수, 엘리먼트, 단계, 컴포넌트, 기능 또는 그 그룹의 존재 또는 추가를 배제하지는 않다. 또한, 본 명세서에 사용된 바와 같이, 라틴어 문구 "예를 들어(exempli gratia)"로부터 파생되는 일반적인 약어 "예를 들어(e.g.)"는 이전에 언급된 항목의 일반적인 예 또는 예들을 도입하거나 지정하는 데 사용될 수 있으며, 이러한 항목을 제한하도록 의도되지 않는다. 라틴어 문구 "즉(id est)"으로부터 파생되는 일반적인 약어 "즉(i.e.)"은 더 일반적인 인용으로부터 특정 항목을 지정하는 데 사용될 수 있다.
예시적인 실시예들은 컴퓨터에 의해 구현되는 방법들, 장치들(시스템들 및/또는 디바이스들) 및/또는 컴퓨터 프로그램 제품들의 블록도들 및/또는 흐름도들을 참조하여 본 명세서에 설명된다. 블록도들 및/또는 흐름도들의 블록, 및 블록도들 및/또는 흐름도들의 블록들의 조합들은 하나 이상의 컴퓨터 회로에 의해 수행되는 컴퓨터 프로그램 명령어들에 의해 구현될 수 있음이 이해되어야 한다. 이러한 컴퓨터 프로그램 명령어들은 범용 컴퓨터 회로, 특수 목적 컴퓨터 회로 및/또는 다른 프로그램 가능 데이터 프로세싱 회로의 프로세서 회로에 제공되어 머신을 생성하여, 컴퓨터의 프로세서 및/또는 다른 프로그램 가능 데이터 프로세싱 장치를 통해 실행되는 명령어들이 트랜지스터들, 메모리 위치들에 저장된 값들 및 이러한 회로망 내의 다른 하드웨어 컴포넌트들을 변환 및 제어하여 블록도들 및/또는 흐름도의 블록 또는 블록들에 지정된 기능들/동작들을 구현하게 함으로써, 블록도들 및/또는 흐름도 블록(들)에 지정된 기능들/동작들을 구현하기 위한 수단(기능적) 및/또는 구조를 생성할 수 있다.
이러한 컴퓨터 프로그램 명령어들은 또한 컴퓨터 또는 다른 프로그램 가능 데이터 프로세싱 장치가 특정 방식으로 기능하도록 지시할 수 있는 유형의 컴퓨터 판독 가능 매체에 저장될 수도 있으며, 이에 따라 컴퓨터 판독 가능 매체에 저장된 명령어들은 블록도들 및/또는 흐름도 블록 또는 블록들에 지정된 기능들/동작들을 구현하는 명령어들을 포함하는 제조물을 생성하게 할 수 있다. 따라서, 본 발명의 개념들의 실시예들은 디지털 신호 프로세서와 같은 프로세서 상에서 실행되는 하드웨어 및/또는 소프트웨어(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함)로 구체화될 수 있으며, 이는 집합적으로 "회로망(circuitry)", "모듈" 또는 그 변형들로 지칭될 수 있다.
또한, 일부 대안적인 구현들에서, 블록들에 기록된 기능들/동작들은 흐름도들에 기록된 순서와 다르게 발생할 수 있다는 점에 유의해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록은 실제로 실질적으로 동시에 실행될 수도 있고, 또는 블록들은 때때로 관련된 기능/동작들에 따라 역순으로 실행될 수도 있다. 또한, 흐름도들 및/또는 블록도들의 주어진 블록의 기능은 다수의 블록들로 분리될 수 있고, 및/또는 흐름도들 및/또는 블록도들의 2개 이상의 블록의 기능은 적어도 부분적으로 통합될 수 있다. 마지막으로, 예시되는 블록들 사이에 다른 블록들이 추가/삽입될 수 있고, 및/또는 본 발명의 개념들의 범위를 벗어나지 않고 블록들/동작들이 생략될 수 있다. 또한, 도면들 중 일부는 주요 통신 방향을 보여주기 위해 통신 경로들에 화살표들을 포함하지만, 통신은 도시된 화살표들과 반대 방향으로 발생할 수 있음이 이해되어야 한다.
본 발명의 개념들의 원리들로부터 실질적으로 벗어나지 않고 실시예들에 대해 많은 변형들 및 수정들이 이루어질 수 있다. 모든 이러한 변형들 및 수정들은 본 명세서에서 본 발명의 개념들의 범위 내에 포함되도록 의도된다. 따라서, 상기 개시된 대상은 제한적인 것이 아니라 예시적인 것으로 간주되어야 하며, 실시예들의 예들은 본 발명의 개념들의 사상 및 범위 내에 있는 모든 이러한 수정들, 강화들 및 다른 실시예들을 포함하도록 의도된다. 따라서, 본 발명의 개념들의 범위는, 법에 의해 허용되는 최대 범위까지, 실시예들의 예들을 포함하여 본 개시내용의 가장 넓은 허용 가능한 해석에 의해 결정되어야 하며, 상기 상세한 설명에 의해 제약되거나 제한되어서는 안된다.

Claims (52)

  1. 코딩된 비디오 픽처(video picture)를 디코딩하기 위한 방법으로서,
    상기 코딩된 비디오 픽처의 직사각형 블록 B를 획득하는 단계 - 상기 직사각형 블록 B는 사이즈 D1xD2이고, D1은 N보다 크고, N은 미리 결정된 최대 변환 사이즈임 -;
    D1이 N보다 크다고 결정하는 단계;
    D1이 N보다 크다고 결정한 후, 상기 블록 B를 적어도 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할함으로써, 상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계를 형성하는 단계 - 상기 서브-블록 B1은 사이즈 NxD2 또는 NxN이고, 상기 서브-블록 B2는 사이즈 NxD2 또는 NxN임 -; 및
    상기 서브-블록들 B1 또는 B2 중 적어도 하나가 변환 계수들을 포함할 때, 상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터(deblocking filter)를 적용하는 단계 - 상기 디블로킹 필터는 상기 경계의 제1 블록 측에 있는 하나 이상의 샘플 및 상기 경계의 제2 블록 측에 있는 하나 이상의 샘플을 수정함 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    특정 기준이 충족된다고 결정하는 단계를 추가로 포함하고,
    상기 블록 B를 적어도 제1 서브-블록 B1 및 제2 서브-블록 B2로 분할하는 단계는 상기 특정 기준이 충족된다고 결정한 직접적인 결과로서 수행되고,
    상기 특정 기준이 충족된다고 결정하는 단계는 적어도 D1이 N보다 크다고 결정하는 단계를 포함하는 방법.
  3. 제2항에 있어서, 상기 특정 기준이 충족된다고 결정하는 단계는,
    적어도 하나의 변환 계수가 상기 제1 서브-블록 B1 또는 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 포함된다고 결정하는 단계를 추가로 포함하는 방법.
  4. 제3항에 있어서,
    상기 제1 서브-블록 B1에 대한 코딩된 비디오 픽처에 변환 계수들이 포함되지 않고 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 변환 계수들이 포함되지 않은 경우, 상기 기준은 충족되지 않는 방법.
  5. 제3항에 있어서,
    D2는 N 이하이고,
    상기 기준이 충족된다고 결정하는 단계는 i) 적어도 하나의 변환 계수가 상기 제1 서브-블록 B1 또는 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 포함된다고 결정하는 단계, 및 ii) D1이 N보다 크다고 결정하는 단계로 구성되는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 서브-블록 B1에 대한 적어도 하나의 변환 계수를 디코딩하는 단계;
    상기 제1 서브-블록 B1에 역 변환을 적용함으로써, 제1 역 변환된 서브-블록을 생성하는 단계; 및
    상기 제1 역 변환된 서브-블록에 제1 예측 블록을 추가함으로써, 제1 재구성된 서브-블록을 생성하는 단계
    를 추가로 포함하고,
    상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 단계는 제1 재구성된 서브-블록과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 단계를 포함하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 블록 B는 루마(luma) 또는 크로마(chroma) 샘플들을 포함하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 블록 B는 코딩 유닛(Coding Unit)(CU)인 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    D1은 상기 직사각형 블록 B의 높이이고, D2는 상기 직사각형 블록 B의 폭인 방법.
  10. 제1항 내지 제8항 중 어느 한 항에 있어서,
    D2는 상기 직사각형 블록 B의 높이이고, D1은 상기 직사각형 블록 B의 폭인 방법.
  11. 제9항 또는 제10항에 있어서, D1=128개의 샘플들이고, N=64개의 샘플들인 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    D2는 N보다 크고,
    상기 블록 B를 적어도 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할하는 단계는 상기 블록 B를 상기 제1 직사각형 서브-블록 B1, 상기 제2 직사각형 서브-블록 B2, 제3 직사각형 서브-블록 B3 및 제4 직사각형 서브-블록 B4로 분할함으로써, i) 상기 제1 서브-블록 B1과 상기 제3 서브-블록 B3 사이의 경계, 상기 제2 서브-블록 B2와 상기 제4 서브-블록 B4 사이의 경계, 및 상기 제3 서브-블록 B3과 상기 제4 서브-블록 B4 사이의 경계를 추가로 형성하는 단계를 포함하는 방법.
  13. 제12항에 있어서,
    상기 서브-블록들 B1 또는 B3 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제1 서브-블록 B1과 상기 제3 서브-블록 B3 사이의 경계에 디블로킹 필터를 적용하는 단계,
    상기 서브-블록들 B2 또는 B4 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제2 서브-블록 B2와 상기 제4 서브-블록 B4 사이의 경계에 디블로킹 필터를 적용하는 단계, 및/또는
    상기 서브-블록들 B3 또는 B4 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제3 서브-블록 B3과 상기 제4 서브-블록 B4 사이의 경계에 디블로킹 필터를 적용하는 단계
    를 추가로 포함하는 방법.
  14. 인코딩된 비디오 픽처를 생성하기 위해 비디오 픽처를 인코딩하기 위한 방법으로서,
    상기 비디오 픽처를 다수의 블록들로 분할하는 단계 - 상기 다수의 블록들은 제1 직사각형 블록 B를 포함하고, 상기 직사각형 블록 B는 사이즈 D1xD2이고, D1은 N보다 크고, N은 미리 결정된 최대 변환 사이즈임 -;
    D1이 N보다 크다고 결정하는 단계;
    D1이 N보다 크다고 결정한 후, 상기 블록 B를 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할함으로써, 상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이에 경계를 형성하는 단계 - 상기 서브-블록 B1은 사이즈 NxD2 또는 NxN이고, 상기 서브-블록 B2는 사이즈 NxD2 또는 NxN임 -;
    상기 인코딩된 비디오 픽처에 서브-블록 B1 및/또는 서브-블록 B2에 대한 적어도 하나의 변환 계수를 포함시키는 단계; 및
    상기 서브-블록들 B1 또는 B2 중 적어도 하나가 변환 계수들을 포함할 때, 상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 단계 - 상기 디블로킹 필터는 상기 경계의 제1 블록 측에 있는 하나 이상의 샘플 및 상기 경계의 제2 블록 측에 있는 하나 이상의 샘플을 수정함 -
    를 포함하는 방법.
  15. 제14항에 있어서,
    특정 기준이 충족된다고 결정하는 단계를 추가로 포함하고,
    상기 블록 B를 제1 서브-블록 B1 및 제2 서브-블록 B2로 분할하는 단계는 상기 특정 기준이 충족된다고 결정한 직접적인 결과로서 수행되고,
    상기 특정 기준이 충족된다고 결정하는 단계는 적어도 D1이 N보다 크다고 결정하는 단계를 포함하는 방법.
  16. 제15항에 있어서, 상기 특정 기준이 충족된다고 결정하는 단계는,
    적어도 하나의 변환 계수가 상기 제1 서브-블록 B1 또는 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 포함된다고 결정하는 단계를 추가로 포함하는 방법.
  17. 제16항에 있어서,
    D2는 N 이하이고,
    상기 제1 서브-블록 B1에 대한 코딩된 비디오 픽처에 변환 계수들이 포함되지 않고 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 변환 계수들이 포함되지 않은 경우, 상기 기준은 충족되지 않는 방법.
  18. 제16항에 있어서,
    D2는 N 이하이고,
    상기 기준이 충족된다고 결정하는 단계는 i) 적어도 하나의 변환 계수가 상기 제1 서브-블록 B1 또는 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 포함된다고 결정하는 단계, 및 ii) D1이 N보다 크다고 결정하는 단계로 구성되는 방법.
  19. 제14항 내지 제18항 중 어느 한 항에 있어서,
    상기 제1 서브-블록 B1에 대한 적어도 하나의 변환 계수를 디코딩하는 단계;
    상기 제1 블록에 역 변환을 적용함으로써, 제1 역 변환된 서브-블록을 생성하는 단계; 및
    상기 제1 역 변환된 서브-블록에 제1 예측 블록을 추가함으로써, 제1 재구성된 서브-블록을 생성하는 단계
    를 추가로 포함하고,
    상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 단계는 제1 재구성된 서브-블록과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 단계를 포함하는 방법.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서, 상기 블록 B는 루마 또는 크로마 샘플들을 포함하는 방법.
  21. 제14항 내지 제20항 중 어느 한 항에 있어서, 상기 블록 B는 코딩 유닛(CU)인 방법.
  22. 제14항 내지 제21항 중 어느 한 항에 있어서, D1=128이고, N=64인 방법.
  23. 제14항 내지 제22항 중 어느 한 항에 있어서, D1은 상기 직사각형 블록 B의 높이이거나, 또는 D1은 상기 직사각형 블록 B의 폭인 방법.
  24. 제14항 내지 제23항 중 어느 한 항에 있어서,
    D2는 N보다 크고,
    상기 블록 B를 적어도 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할하는 단계는 상기 블록 B를 상기 제1 직사각형 서브-블록 B1, 상기 제2 직사각형 서브-블록 B2, 제3 직사각형 서브-블록 B3 및 제4 직사각형 서브-블록 B4로 분할함으로써, i) 상기 제1 서브-블록 B1과 상기 제3 서브-블록 B3 사이의 경계, 상기 제2 서브-블록 B2와 상기 제4 서브-블록 B4 사이의 경계, 및 상기 제3 서브-블록 B3과 상기 제4 서브-블록 B4 사이의 경계를 추가로 형성하는 단계를 포함하는 방법.
  25. 제24항에 있어서,
    상기 서브-블록들 B1 또는 B3 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제1 서브-블록 B1과 상기 제3 서브-블록 B3 사이의 경계에 디블로킹 필터를 적용하는 단계,
    상기 서브-블록들 B2 또는 B4 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제2 서브-블록 B2와 상기 제4 서브-블록 B4 사이의 경계에 디블로킹 필터를 적용하는 단계, 및/또는
    상기 서브-블록들 B3 또는 B4 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제3 서브-블록 B3과 상기 제4 서브-블록 B4 사이의 경계에 디블로킹 필터를 적용하는 단계
    를 추가로 포함하는 방법.
  26. 프로세싱 회로(902, 1002)에 의해 수행될 때, 상기 프로세싱 회로로 하여금 제1항 내지 제25항 중 어느 한 항에 따른 방법을 수행하게 하는 명령어들(944, 1044)을 포함하는 컴퓨터 프로그램(943, 1043, 1310).
  27. 제26항의 컴퓨터 프로그램을 포함하는 캐리어(1320)로서, 상기 캐리어는 전자 신호, 광 신호, 라디오 신호, 또는 컴퓨터 판독 가능 저장 매체(942, 1042) 중 하나인 캐리어.
  28. 코딩된 비디오 픽처를 디코딩하기 위한 디코더(1001)로서, 상기 디코더는
    상기 코딩된 비디오 픽처의 직사각형 블록 B를 획득하고 - 상기 직사각형 블록 B는 사이즈 D1xD2이고, D1은 N보다 크고, N은 미리 결정된 최대 변환 사이즈임 -;
    D1이 N보다 크다고 결정하고,
    D1이 N보다 크다고 결정한 후, 상기 블록 B를 적어도 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할함으로써, 상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계를 형성하고 - 상기 서브-블록 B1은 사이즈 NxD2 또는 NxN이고, 상기 서브-블록 B2는 사이즈 NxD2 또는 NxN임 -,
    상기 서브-블록들 B1 또는 B2 중 적어도 하나가 변환 계수들을 포함할 때, 상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하도록 - 상기 디블로킹 필터는 상기 경계의 제1 블록 측에 있는 하나 이상의 샘플 및 상기 경계의 제2 블록 측에 있는 하나 이상의 샘플을 수정함 -
    적응되는 디코더.
  29. 제28항에 있어서, 상기 디코더는 특정 기준이 충족되는지를 결정하도록 추가로 적응되고,
    상기 디코더는 상기 특정 기준이 충족된다고 결정한 직접적인 결과로서 상기 블록 B를 적어도 제1 서브-블록 B1 및 제2 서브-블록 B2로 분할하도록 적응되고,
    상기 디코더는 적어도 D1이 N보다 큰지를 결정하는 것을 포함하는 프로세스를 수행함으로써 상기 특정 기준이 충족되는지를 결정하도록 적응되는 디코더.
  30. 제29항에 있어서, 상기 프로세스는 적어도 하나의 변환 계수가 상기 제1 서브-블록 B1 또는 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 포함된다고 결정하는 것을 추가로 포함하는 디코더.
  31. 제30항에 있어서,
    상기 제1 서브-블록 B1에 대한 코딩된 비디오 픽처에 변환 계수들이 포함되지 않고 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 변환 계수들이 포함되지 않은 경우, 상기 기준은 충족되지 않는 디코더.
  32. 제30항에 있어서,
    D2는 N 이하이고,
    상기 기준이 충족된다고 결정하는 것은 i) 적어도 하나의 변환 계수가 상기 제1 서브-블록 B1 또는 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 포함된다고 결정하는 것, 및 ii) D1이 N보다 크다고 결정하는 것으로 구성되는 디코더.
  33. 제28항 내지 제32항 중 어느 한 항에 있어서, 상기 디코더는,
    상기 제1 서브-블록 B1에 대한 적어도 하나의 변환 계수를 디코딩하고,
    상기 제1 서브-블록 B1에 역 변환을 적용함으로써, 제1 역 변환된 서브-블록을 생성하고,
    상기 제1 역 변환된 서브-블록에 제1 예측 블록을 추가함으로써, 제1 재구성된 서브-블록을 생성하도록
    추가로 적응되고,
    상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 것은 제1 재구성된 서브-블록과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 것을 포함하는 디코더.
  34. 제28항 내지 제33항 중 어느 한 항에 있어서, 상기 블록 B는 루마 또는 크로마 샘플들을 포함하는 디코더.
  35. 제28항 내지 제34항 중 어느 한 항에 있어서, 상기 블록 B는 코딩 유닛(CU)인 디코더.
  36. 제28항 내지 제35항 중 어느 한 항에 있어서,
    D1은 상기 직사각형 블록 B의 높이이고, D2는 상기 직사각형 블록 B의 폭인 디코더.
  37. 제28항 내지 제35항 중 어느 한 항에 있어서,
    D2는 상기 직사각형 블록 B의 높이이고, D1은 상기 직사각형 블록 B의 폭인 디코더.
  38. 제36항 또는 제27항에 있어서, D1=128개의 샘플들이고, N=64개의 샘플들인 디코더.
  39. 제28항 내지 제38항 중 어느 한 항에 있어서,
    D2는 N보다 크고,
    상기 블록 B를 적어도 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할하는 것은 상기 블록 B를 상기 제1 직사각형 서브-블록 B1, 상기 제2 직사각형 서브-블록 B2, 제3 직사각형 서브-블록 B3 및 제4 직사각형 서브-블록 B4로 분할함으로써, i) 상기 제1 서브-블록 B1과 상기 제3 서브-블록 B3 사이의 경계, 상기 제2 서브-블록 B2와 상기 제4 서브-블록 B4 사이의 경계, 및 상기 제3 서브-블록 B3과 상기 제4 서브-블록 B4 사이의 경계를 추가로 형성하는 것을 포함하는 디코더.
  40. 제39항에 있어서, 상기 디코더는,
    상기 서브-블록들 B1 또는 B3 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제1 서브-블록 B1과 상기 제3 서브-블록 B3 사이의 경계에 디블로킹 필터를 적용하고,
    상기 서브-블록들 B2 또는 B4 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제2 서브-블록 B2와 상기 제4 서브-블록 B4 사이의 경계에 디블로킹 필터를 적용하고, 및/또는
    상기 서브-블록들 B3 또는 B4 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제3 서브-블록 B3과 상기 제4 서브-블록 B4 사이의 경계에 디블로킹 필터를 적용하도록
    추가로 적응되는 디코더.
  41. 인코딩된 비디오 픽처를 생성하기 위해 비디오 픽처를 인코딩하기 위한 인코더(901)로서, 상기 인코더는
    상기 비디오 픽처를 다수의 블록들로 분할하고 - 상기 다수의 블록들은 제1 직사각형 블록 B를 포함하고, 상기 직사각형 블록 B는 사이즈 D1xD2이고, D1은 N보다 크고, N은 미리 결정된 최대 변환 사이즈임 -,
    D1이 N보다 크다고 결정하고,
    D1이 N보다 크다고 결정한 후, 상기 블록 B를 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할함으로써, 상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이에 경계를 형성하고 - 상기 서브-블록 B1은 사이즈 NxD2 또는 NxN이고, 상기 서브-블록 B2는 사이즈 NxD2 또는 NxN임 -,
    상기 인코딩된 비디오 픽처에 서브-블록 B1 및/또는 서브-블록 B2에 대한 적어도 하나의 변환 계수를 포함시키고,
    상기 서브-블록들 B1 또는 B2 중 적어도 하나가 변환 계수들을 포함할 때, 상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하도록 - 상기 디블로킹 필터는 상기 경계의 제1 블록 측에 있는 하나 이상의 샘플 및 상기 경계의 제2 블록 측에 있는 하나 이상의 샘플을 수정함 -
    적응되는 인코더.
  42. 제41항에 있어서,
    상기 인코더는 특정 기준이 충족되는지를 결정하도록 추가로 적응되고,
    상기 인코더는 상기 특정 기준이 충족된다고 결정한 직접적인 결과로서 상기 블록 B를 제1 서브-블록 B1 및 제2 서브-블록 B2로 분할하도록 추가로 적응되고.
    상기 인코더는 적어도 D1이 N보다 큰지를 결정하는 것을 포함하는 프로세스를 수행함으로써 상기 특정 기준이 충족되는지를 결정하도록 추가로 적응되는 인코더.
  43. 제42항에 있어서, 상기 프로세스는 적어도 하나의 변환 계수가 상기 제1 서브-블록 B1 또는 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 포함되는지를 결정하는 것을 추가로 포함하는 인코더.
  44. 제43항에 있어서,
    D2는 N 이하이고,
    상기 제1 서브-블록 B1에 대한 코딩된 비디오 픽처에 변환 계수들이 포함되지 않고 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 변환 계수들이 포함되지 않은 경우, 상기 기준은 충족되지 않는 인코더.
  45. 제43항에 있어서,
    D2는 N 이하이고,
    상기 기준이 충족되는지를 결정하는 것은 i) 적어도 하나의 변환 계수가 상기 제1 서브-블록 B1 또는 상기 제2 서브-블록 B2에 대한 코딩된 비디오 픽처에 포함된다고 결정하는 것, 및 ii) D1이 N보다 크다고 결정하는 것으로 구성되는 인코더.
  46. 제41항 내지 제45항 중 어느 한 항에 있어서, 상기 인코더는,
    상기 제1 서브-블록 B1에 대한 적어도 하나의 변환 계수를 디코딩하고,
    상기 제1 블록에 역 변환을 적용함으로써, 제1 역 변환된 서브-블록을 생성하고,
    상기 제1 역 변환된 서브-블록에 제1 예측 블록을 추가함으로써, 제1 재구성된 서브-블록을 생성하도록
    추가로 적응되고,
    상기 제1 서브-블록 B1과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 것은 제1 재구성된 서브-블록과 상기 제2 서브-블록 B2 사이의 경계에 디블로킹 필터를 적용하는 것을 포함하는 인코더.
  47. 제41항 내지 제46항 중 어느 한 항에 있어서, 상기 블록 B는 루마 또는 크로마 샘플들을 포함하는 인코더.
  48. 제41항 내지 제47항 중 어느 한 항에 있어서, 상기 블록 B는 코딩 유닛(CU)인 인코더.
  49. 제41항 내지 제48항 중 어느 한 항에 있어서, D1=128이고, N=64인 인코더.
  50. 제41항 내지 제49항 중 어느 한 항에 있어서, D1은 상기 직사각형 블록 B의 높이이거나, 또는 D1은 상기 직사각형 블록 B의 폭인 인코더.
  51. 제41항 내지 제50항 중 어느 한 항에 있어서,
    D2는 N보다 크고,
    상기 블록 B를 적어도 제1 직사각형 서브-블록 B1 및 제2 직사각형 서브-블록 B2로 분할하는 것은 상기 블록 B를 상기 제1 직사각형 서브-블록 B1, 상기 제2 직사각형 서브-블록 B2, 제3 직사각형 서브-블록 B3 및 제4 직사각형 서브-블록 B4로 분할함으로써, i) 상기 제1 서브-블록 B1과 상기 제3 서브-블록 B3 사이의 경계, 상기 제2 서브-블록 B2와 상기 제4 서브-블록 B4 사이의 경계, 및 상기 제3 서브-블록 B3과 상기 제4 서브-블록 B4 사이의 경계를 추가로 형성하는 것을 포함하는 인코더.
  52. 제51항에 있어서, 상기 인코더는,
    상기 서브-블록들 B1 또는 B3 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제1 서브-블록 B1과 상기 제3 서브-블록 B3 사이의 경계에 디블로킹 필터를 적용하고,
    상기 서브-블록들 B2 또는 B4 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제2 서브-블록 B2와 상기 제4 서브-블록 B4 사이의 경계에 디블로킹 필터를 적용하고, 및/또는
    상기 서브-블록들 B3 또는 B4 중 적어도 하나가 변환 계수들을 포함할 때에는, 상기 제3 서브-블록 B3과 상기 제4 서브-블록 B4 사이의 경계에 디블로킹 필터를 적용하도록
    추가로 적응되는 인코더.
KR1020207033075A 2018-05-17 2019-05-14 암시적 변환 유닛 경계들의 디블로킹 KR20200144131A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862673110P 2018-05-17 2018-05-17
US62/673,110 2018-05-17
PCT/EP2019/062350 WO2019219685A1 (en) 2018-05-17 2019-05-14 Deblocking of implicit transform unit boundaries

Publications (1)

Publication Number Publication Date
KR20200144131A true KR20200144131A (ko) 2020-12-28

Family

ID=66589540

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207033075A KR20200144131A (ko) 2018-05-17 2019-05-14 암시적 변환 유닛 경계들의 디블로킹

Country Status (8)

Country Link
US (2) US11490080B2 (ko)
EP (1) EP3794820A1 (ko)
JP (1) JP2021523641A (ko)
KR (1) KR20200144131A (ko)
CN (1) CN112119632A (ko)
MX (1) MX2020012071A (ko)
WO (1) WO2019219685A1 (ko)
ZA (1) ZA202006689B (ko)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754010A (zh) * 2008-12-18 2010-06-23 北京中星微电子有限公司 视频数据编码的环路滤波方法和滤波器
KR101647376B1 (ko) * 2009-03-30 2016-08-10 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
KR101302660B1 (ko) * 2009-09-14 2013-09-03 에스케이텔레콤 주식회사 고해상도 동영상의 부호화/복호화 방법 및 장치
KR101457396B1 (ko) * 2010-01-14 2014-11-03 삼성전자주식회사 디블로킹 필터링을 이용한 비디오 부호화 방법과 그 장치, 및 디블로킹 필터링을 이용한 비디오 복호화 방법 및 그 장치
CN107295342B (zh) * 2011-07-22 2020-04-28 Sk电信有限公司 视频编码装置
CN102957907B (zh) * 2011-08-31 2016-06-29 华为技术有限公司 一种变换块位置信息的获取方法和模块
US9167269B2 (en) 2011-10-25 2015-10-20 Qualcomm Incorporated Determining boundary strength values for deblocking filtering for video coding
KR20130049526A (ko) * 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
WO2014071439A1 (en) 2012-11-08 2014-05-15 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
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
US10306265B2 (en) * 2013-12-30 2019-05-28 Qualcomm Incorporated Simplification of segment-wise DC coding of large prediction blocks in 3D video coding
CN106105216A (zh) * 2014-03-13 2016-11-09 高通股份有限公司 用于3d视频译码的受约束深度帧内模式译码
US10542294B2 (en) * 2016-03-16 2020-01-21 Mediatek Inc. Method and apparatus of video data processing with restricted block size in video coding
CN117201819A (zh) * 2017-05-26 2023-12-08 Sk电信有限公司 对视频数据进行编码或解码的方法和存储比特流的方法
WO2019059676A1 (ko) * 2017-09-20 2019-03-28 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
CN116866565A (zh) * 2018-03-21 2023-10-10 Lx 半导体科技有限公司 图像编码/解码方法、存储介质以及图像数据的传输方法
KR20190113653A (ko) * 2018-03-27 2019-10-08 주식회사 케이티 비디오 신호 처리 방법 및 장치
CN111316641B (zh) * 2018-05-03 2022-08-09 Lg电子株式会社 根据块尺寸使用变换来解码图像的方法和设备
US11677969B2 (en) * 2019-03-22 2023-06-13 Tencent America LLC Method and apparatus for video coding

Also Published As

Publication number Publication date
EP3794820A1 (en) 2021-03-24
JP2021523641A (ja) 2021-09-02
US11490080B2 (en) 2022-11-01
US20210368168A1 (en) 2021-11-25
WO2019219685A1 (en) 2019-11-21
ZA202006689B (en) 2022-01-26
MX2020012071A (es) 2021-02-09
CN112119632A (zh) 2020-12-22
US20230059449A1 (en) 2023-02-23

Similar Documents

Publication Publication Date Title
US11064220B2 (en) Method and apparatus of video data processing with restricted block size in video coding
US11758131B2 (en) Deblocking of video picture boundaries
WO2020015592A1 (en) Methods and apparatuses of processing video pictures with partition constraints in a video coding system
WO2020244662A1 (en) Simplified transform coding tools
WO2020035066A1 (en) Methods and apparatuses of chroma quantization parameter derivation in video processing system
JP2018532318A (ja) ビデオ符号化における進化型デブロッキングフィルターの方法およびその装置
CN110720217B (zh) 用于支持各种块大小的图像编码或解码的设备和方法
KR20210113371A (ko) 변환 서브-블록 경계의 디블록킹
KR102294016B1 (ko) 변환생략을 참조하는 디블록킹 필터링을 이용한 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US10506259B2 (en) Method for encoding/decoding image, and device therefor
KR20200144131A (ko) 암시적 변환 유닛 경계들의 디블로킹
WO2020171760A1 (en) Deblocking on 4x4 grid using long filters
OA20341A (en) Deblocking of implicit transform unit boundaries
JP7386883B2 (ja) サブペル動きベクトルしきい値を使用するデブロッキング
WO2020253810A1 (en) Coding tools for chroma components

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination