KR20220080107A - 참조 픽처 리샘플링을 위한 시그널링 - Google Patents

참조 픽처 리샘플링을 위한 시그널링 Download PDF

Info

Publication number
KR20220080107A
KR20220080107A KR1020227012629A KR20227012629A KR20220080107A KR 20220080107 A KR20220080107 A KR 20220080107A KR 1020227012629 A KR1020227012629 A KR 1020227012629A KR 20227012629 A KR20227012629 A KR 20227012629A KR 20220080107 A KR20220080107 A KR 20220080107A
Authority
KR
South Korea
Prior art keywords
syntax element
video
wraparound
clipping operation
picture
Prior art date
Application number
KR1020227012629A
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 KR20220080107A publication Critical patent/KR20220080107A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

비디오 처리 방법은, 비디오의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 현재 블록을 포함하는 현재 픽처의 해상도와 상기 변환을 위해 사용되는 참조 픽처가 상이함을 판단하는 단계 그리고 상기 판단에 기반하여 상기 변환을 수행하여 상기 현재 블록의 샘플들의 그룹의 예측된 값들이 수평 또는 수직 보간 필터를 사용하여 생성되도록 하는 단계를 포함한다.

Description

참조 픽처 리샘플링을 위한 시그널링
관련 출원들에 대한 상호 참조
파리협약에 따른 적용가능한 특허법 및/또는 규칙에 따라, 본 출원은 2019년 10월 23일에 제출된 국제출원 No. PCT/CN2019/112820의 우선권과 혜택을 적시에 주장하기 위해 만들어졌다. 상기 법 하의 모든 목적을 위해, 상기 출원의 전체 개시물은 본 출원의 개시의 일부로서 참고로 통합된다.
본 특허 문서는 비디오 코딩 및 디코딩에 관한 것이다.
비디오 압축 기술의 발전에도 불구하고 디지털 비디오는 여전히 인터넷 및 기타 디지털 통신 네트워크에서 가장 큰 대역폭을 사용한다. 비디오를 수신하고 표시할 수 있는 접속된 사용자 장치의 수가 증가함에 따라, 디지털 비디오 사용을 위한 대역폭 수요가 계속 증가할 것으로 예상된다.
디지털 비디오 코딩, 구체적으로, 현재 픽처들 및 참조 픽처들이 상이한 크기 또는 해상도를 가지는 비디오 및 영상 코딩 및 디코딩에 관련되는 장치들, 시스템들 및 방법들.
일 예시적 측면에서, 비디오 처리의 방법이 개시된다. 상기 방법은 비디오의 현재 픽처의 현재 블록과 상기 비디오의 코딩된 표현 사이의 변환을 실시하는 단계를 포함한다. 상기 코딩된 표현은 포맷 규칙을 따른다. 상기 포맷 규칙은 상기 현재 비디오 블록에 대한 예측 블록을 결정하기 위한 참조 픽처에 적용되는 랩어라운드(wraparound) 클리핑 동작에 관한 하나 또는 그 이상의 신택스 요소들을 선택적으로 포함할 것을 명시하며, 이때, 모션 벡터가 상기 참조 픽처에서 경계(bounding) 블록 바깥의 샘플들을 가리키는 경우, 상기 랩어라운드 클리핑 동작을 사용하여 상기 참조 픽처 내의 샘플들을 다시 선택한다.
다른 예시적 측면에서, 비디오 처리의 방법이 개시된다. 상기 방법은, 비디오의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 현재 블록을 포함하는 현재 픽처의 해상도와 상기 변환을 위해 사용되는 참조 픽처가 상이함을 판단하는 단계 및 상기 판단에 기반하여 상기 변환을 수행하여 상기 현재 블록의 샘플들의 그룹의 예측된 값들이 수평 또는 수직 보간 필터를 사용하여 생성되도록 하는 단계를 포함한다.
다른 예시적 측면에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은, 비디오의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 현재 블록을 포함하는 현재 픽처의 해상도와 상기 변환을 위해 사용되는 참조 픽처가 상이함을 판단하는 단계 및 상기 판단에 기반하여 상기 변환을 수행하여 상기 현재 블록의 샘플들의 그룹의 예측된 값들이 상기 참조 픽처 내의 영역의 샘플율(sample rate) 변경으로 생성되는 가상 참조 블록의 보간된 버전으로 생성되도록 하는 단계를 포함하며, 이때 상기 샘플율 변경은 상기 현재 픽처 또는 상기 참조 픽처의 높이(height) 또는 너비(width)에 의존한다.
다른 예시적 측면에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은 비디오의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 현재 블록을 포함하는 현재 픽처의 해상도와 상기 변환을 위해 사용되는 참조 픽처가 상이함을 판단하는 단계, 상기 판단에 기반하여, 상기 현재 픽처 또는 상기 참조 픽처의 높이 또는 너비에 의존하는 방식(scheme)에 기반하는 참조 샘플 패딩을 위한 바운딩 블록의 좌측 상부 좌표를 유도하는 단계, 그리고 상기 바운딩 블록의 상기 유도된 좌측 상부 좌표를 사용하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 측면에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은 비디오의 현재 픽처 내의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 현재 블록의 상기 변환 동안 디코더 측 모션 벡터 개선(decoder side motion vector refinement (DMVR))의 사용에 기반하여, 참조 샘플 패딩을 위한 바운딩 블록에 따른 모션 벡터 계산에 적용되는 클리핑 동작을 결정하는 단계 및 상기 클리핑 동작에 기반하여 상기 변환을 수행하는 단계를 포함한다.
다른 예시적 측면에서, 비디오 처리의 다른 방법이 개시된다. 상기 방법은, 비디오의 현재 픽처 내의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 변환에서 픽처 래핑(wrapping)의 사용에 기반하여, 참조 샘플 패딩을 위한 바운딩 블록에 따른 모션 벡터 계산에 적용되는 클리핑 동작을 결정하는 단계 및 상기 클리핑 동작에 기반하여 상기 변환을 수행하는 단계를 포함한다.
또 다른 대표적인 측면에서, 상기 기술된 방법은 프로세서에 의해 실행가능한 코드의 형태로 구현되며 컴퓨터 판독 가능한 프로그램 매체에 저장된다.
또 다른 대표적인 측면에서, 상기 기술된 방법을 실행하도록 구성되거나 작동되는 장치가 개시된다. 상기 장치는 이 방법을 실행하도록 프로그램된 프로세서를 포함한다.
또 다른 대표적인 측면에서, 비디오 디코더 장치는 여기서 설명된 방법을 실행할 수 있다.
상기 개시된 기술의 상기 및 기타 측면들 및 특징들은 도면, 발명의 설명 및 청구항들에서 더 상세히 설명된다.
도 1은 16x16 블록이 16개의 4x4 영역들로 분할되는 일 예를 도시한다.
도 2a 내지 도 2c는 비디오 블록 내의 특정 위치들의 예들을 도시한다.
도 3은 비디오 처리를 위한 하드웨어 플랫폼의 예시적 구현의 블록도이다.
도 4는 비디오 처리의 일 예시적 방법에 대한 순서도이다.
도 5는 VVC에서 랩어라운드 클리핑의 일 예를 도시한다.
도 6은 비디오 코딩 시스템의 일 예시적 구현의 블록도이다.
도 7은 비디오 인코더의 일 예시적 구현의 블록도이다.
도 8은 비디오 디코더의 일 예시적 구현의 블록도이다.
도 9는 비디오 처리의 일 예시적 방법에 대한 순서도이다.
개시된 기술의 실시예들은 압축 성능의 향상을 위해 기존 비디오 코딩 표준들 (예를 들어, HEVC, H 256) 및 미래의 표준들에 적용될 수 있다. 본 문서에서 섹션 제목들은 설명의 가독성을 높이기 위해 사용된 것이며 논의 또는 실시예들 (및/또는 구현들)을 해당 섹션들로만 결코 제한하지 않는다.
1. 서론 논의 (Initial discussion)
본 문서는 비디오 코딩 기술들에 관한 것이다. 구체적으로, 본 문서는 비디오 코딩에서 적응적 해상도 변환에 관한 것이다. 본 문서는 HEVC와 같은 기존 비디오/영상 코딩 표준 또는 완성될 표준 (다기능 비디오 코딩(Versatile Video Coding))에 적용될 수 있다. 본 문서는 미래의 코딩 표준 또는 비디오 코덱들에도 적용 가능하다
2. 비디오 코딩 소개
비디오 코딩 표준들은 잘 알려진 ITU-T 및 ISO/IEC 표준들의 개발을 통해 주로 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 Visual을 제작하였다. 두 기관은 H.262/MPEG-2 Video, H.264/MPEG-4 Advanced Video Coding (AVC) 그리고 H.265/HEVC 표준들을 공동으로 제작하였다. H.262 이후, 비디오 코딩 표준들은 시간 예측과 변환 코딩이 함께 활용되는 하이브리드 비디오 코딩 구조를 기반으로 한다. HEVC를 넘어서는 미래형 비디오 코딩 기술들을 탐구하기 위해, 2015년에 VCEG와 MPEG는 공동 비디오 탐사 팀 (Joint Video Exploration Team (JVET))를 공동 설립하였다. 그 이후로, 많은 새로운 기법들이 JVET에 의해 채택되어 공동 탐사 모델 (Joint Exploration Model (JEM))이라는 참조 소프트웨어에 포함되었다. 2018년 4월, HEVC 대비 비트 레이트 50% 감소를 목표로 하는 VVC 표준 작업을 위해, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 간의 공동 비디오 전문가 팀 (Joint Video Expert Team (JVET))이 결성되었다.
AVC 및 HEVC는, IDR 또는 IRAP(intra random access point) 픽처를 도입하지 않으면 해상도를 변경할 수 없다. 이러한 기능은, 적응적 해상도 변경(ARC: adaptive resolution change)으로 참조된다. 아래의 설명을 포함하여, ARC 특징의 이점을 누릴 수 있는 사용 사례들(use cases) 또는 응용 시나리오들(application scenarios)이 있다.
- 비디오 전화 및 회의(conferencing)에서의 속도 적응(rate adaptation): 변화하는 네트워크 조건에 코딩된 비디오를 적용하기 위하여, 네트워크 조건이 악화되어 사용 가능한 대역폭이 낮아지는 경우, 인코더가 더 작은 해상도의 픽처를 인코딩함으로써, 이에 적응할 수 있다. 현재로서는, 픽처 해상도를 변경하는 것은 IRAP 픽처 후에만 수행할 수 있다. 이것은 몇 가지 문제가 있다. 합리적인 품질의 IRAP 픽처는 인터-코딩된 픽처(inter-coded picture)보다 훨씬 크고, 따라서 디코딩하기가 훨씬 더 복잡해 진다. 이는 시간과 자원을 소모하게 한다. 이는 로딩을 이유로 디코더에 의하여 해상도 변경이 요청된 경우 문제가 된다. 이는, 또한, 저-지연 버퍼 조건(low-latency buffer conditions)을 어기고, 오디오 재동기화(audio re-sync)를 강요하고, 스트림의 종단 간 지연(end-to-end delay)을 적어도 일시적으로 증가시킬 수 있다. 이렇게 되면, 사용자 환경이 저하될 수 있다.
- 다자간 화상 회의에서의 활성 화자(active speaker)의 변경: 다자간 화상 회의의 경우 활성 화자가 나머지 컨퍼런스 참가자의 비디오보다 더 큰 비디오 크기로 표시되는 것이 일반적이다. 활성 화자가 변경되면 각 참가자의 픽처 해상도도 조정해야 할 수 있다. 활성 화자의 이러한 변경이 자주 발생할 때 ARC 기능을 사용하는 것이 더욱 중요해진다.
- 스트리밍에서의 빠른 시작(fast start): 스트리밍 애플리케이션의 경우, 표시를 시작하기 전에, 애플리케이션이 특정 길이의 디코딩된 픽처까지 버퍼링하는 것이 일반적이다. 더 작은 해상도를 가진 비트스트림을 시작하면, 애플리케이션은 버퍼에 충분한 픽처를 가질 수 있도록 하여 표시를 더 빠르게 시작할 수 있다.
스트리밍에서의 적응 스트림 전환(adaptive stream switching): HTTP(DASH) 사양에서의 동적 적응 스트리밍(Dynamic Adaptive Streaming)에는 @mediaStreamStructureId라는 이름의 특성이 포함되어 있다. 이를 통해, HEVC 내 연관된 RASL 픽처를 가진 CRA 픽처와 같이, 디코딩 불가능한 리딩 픽처로, 오픈 GOP 랜덤 액세스 포인트에서 상이한 표현들을 전환할 수 있다. 동일한 비디오의 두 가지 표현이 서로 다른 비트레이트를 가지지만, 동일한 공간적 해상도를 가지고, 동일한 @mediaStreamStructureId의 값을 가지는 경우, 연관된 RASL 픽처들을 가진 CRA 픽처에서의 2가지 표현들 사이에 전환이 수행될 수 있고, CRA 픽처에서의 전환과 연관된 RASL 픽처는, 수용가능한 품질로 디코딩될 수 있으므로, 원활한 전환(seamless switching)을 가능하게 한다. ARC를 사용하면, @mediaStreamStructureId 특징은, 상이한 공간적 해상도를 가진 DASH 표현들 사이의 전환을 위해서도 사용 가능하다.
ARC는 또한 동적 해상도 변환으로도 알려져 있다.
ARC는 또한, H.263 Annex P와 같은 참조 픽처 리샘플링(RPR: Reference Picture Resampling)의 특별한 사례로 간주될 수 있다.
2.1. H.263 Annex P에서 참조 픽처 리샘플링
이 모드는, 예측에 사용하기 전에 참조 픽처를 워핑(warp)하는 알고리즘을 설명한다. 이는, 예측되는 픽처와 다른 소스 포맷을 갖는 참조 픽처를 샘플링하는 데 유용할 수 있다. 또한, 참조 픽처의 모양, 크기 및 위치를 워핑함으로써, 글로벌 모션 추정 또는 회전 모션의 추정에 사용할 수 있다. 신택스는, 리샘플링 알고리즘뿐 아니라 사용될 워핑 파라미터들을 포함한다. 참조 픽처 리샘플링 모드를 위한 가장 단순한 수준의 동작은, 오직 FIR 필터가 업샘플링 및 다운샘플링 과정들에 적용될 필요가 있으므로, 4 리샘플링의 암묵적 팩터(implicit factor)이다. 이 경우, (픽처 헤더에 지시되는) 새 픽처의 크기가 이전 픽처의 크기와 상이할 때 그 사용이 이해되므로, 어떤 추가적인 시그널링 오버헤드도 요구되지 않는다.
2.2. VVC에 제시된 ARC 관련 기여들
아래에 열거된 바와 같이, ARC를 다루는 몇 가지 기여들이 제안되었다.
JVET-M0135, JVET-M0259, JVET-N0048, JVET-N0052, JVET-N0118, JVET-N0279
2.3. JVET-O2001-v14의 ARC
RPR (참조 픽처 리샘플링)으로도 알려진 ARC는 JVET-O2001-v14에 포함되어 있다.
JVET-O2001-v14의 RPR로 인해, 동일 위치의 픽처가 현재 픽처와 상이한 해상도를 가지면 TMVP는 비활성화된다. 게다가, 참조 픽처가 현재 픽처와 상이한 해상도를 가지면 BDOF 및 DMVR은 비활성화된다.
참조 픽처가 현재 픽처와 상이한 해상도를 가질 경우 정상적인 MC를 처리하기 위해서, 보간 섹션은 아래와 같이 정의된다.
8.5.6.3.1 일반
이 프로세스의 입력들은 다음과 같다.
- 현재 픽처의 좌 상단 루마 샘플에 대한 현재 코딩 서브 블록의 좌 상단 샘플을 지정하는 루마 위치 (xSb, ySb),
- 현재 코딩 서브 블록의 너비를 지정하는 변수 sbWidth,
- 현재 코딩 서브 블록의 높이를 지정하는 변수 sbHeight
- 모션 벡터 오프셋 mvOffset,
- 개선된 모션 벡터 refMvLX,
- 선택된 참조 픽처 샘플 어레이 refPicLX,
- 하프 샘플 보간 필터 인덱스 hpelIfIdx,
- 양방향 광학 흐름 플래그 bdofFlag,
- 현재 블록의 색상 컴포넌트 인덱스를 지정하는 변수 cIdx.
이 프로세스의 출력들은 다음과 같다.
- 예측 샘플 값들의(sbWidth + brdExtSize) x(sbHeight + brdExtSize) 어레이 predSamplesLX.
예측 블록 경계 확장 크기 brdExtSize는 다음과 같이 유도된다.
brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2 : 0 (8-752)
변수 fRefWidth는 루마 샘플들에서 참조 픽처의 PicOutputWidthL과 동일하게 설정된다.
변수 fRefHeight는 루마 샘플들에서 참조 픽처의 PicOutputHeightL과 동일하게 설정된다.
모션 벡터 mvLX는 (refMvLX - mvOffset)과 동일하게 설정된다.
- cIdx가 0이면, 다음이 적용된다.
- 스케일링 팩터들 및 그것들의 고정 소수점 표현들은 다음과 같이 정의된다.
Figure pct00001
- (xIntL, yIntL)을 풀 샘플(full-sample) 단위로 주어진 루마 위치이고 (xFracL, yFracL)을 1/16 샘플 유닛으로 주어진 오프셋이라고 하자. 이러한 변수들은 참조 샘플 어레이 refPicLX 내에서 분수 샘플(fractional-sample) 위치들을 지정하기 위해 이 절에서만 사용된다.
- 참조 샘플 패딩(xSbIntL, ySbIntL)에 대한 경계 블록의 좌 상단 좌표는 (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4))와 동일하게 설정된다.
- 예측 루마 샘플 어레이 predSamplesLX 내의 각 루마 샘플 위치 (xL = 0..sbWidth - 1 + brdExtSize, yL = 0..sbHeight - 1 + brdExtSize)에 대해 대응하는 예측 루마 샘플 값 predSamplesLX [xL] [yL]은 다음과 같이 유도된다.
- (refxSbL, refySbL) 및 (refxL, refyL)은 1/16- 샘플 유닛으로 주어진 모션 벡터(refMvLX [0], refMvLX [1])가 가리키는 루마 위치들이라 하자. 변수 refxSbL, refxL, refySbL 및 refyL은 다음과 같이 유도된다:
Figure pct00002
- 변수들 xInt L , yInt L , xFrac L 및 yFrac L 는 다음과 같이 유도된다.
xInt L = refx L   >>  4 (8-759)
yInt L = refy L   >>  4 (8-760)
xFrac L = refx L  & 15 (8-761)
yFrac L = refy L  & 15 (8-762)
- bdofFlag가 TRUE 또는 (sps_affine_prof_enabled_flag가 TRUE와 같고 inter_affine_flag [xSb] [ySb]가 TRUE와 같다)이고, 다음 조건 중 하나 이상이 참인 경우, 예측 루마 샘플 값 predSamplesLX [xL] [yL]은 (xIntL +(xFracL >> 3) - 1), yIntL +(yFracL> > 3) - 1) 및 refPicLX를 입력으로 하여 8.5.6.3.3 절에 지정된 루마 정수 샘플 페치(fetching) 프로세스를 호출하여 유도된다.
- xL은 0과 같다.
- xL은 sbWidth + 1과 같다.
- yL은 0과 같다.
- yL은 sbHeight + 1과 같다.
- 그렇지 않으면, 예측 루마 샘플 값 predSamplesLX [xL] [yL]은 (xIntL-(brdExtSize> 0 ? 1 : 0), yIntL-(brdExtSize> 0 ? 1 : 0)), (xFracL, yFracL), (xSbIntL, ySbIntL), refPicLX, hpelIfIdx, sbWidth, sbHeight 및 (xSb, ySb)를 입력으로 하여 8.5.6.3.2 절에 명시된 루마 샘플 8 탭 보간 필터링 프로세스를 호출하여 유도된다.
- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다.
- (xIntC, yIntC)는 풀 샘플 유닛으로 주어진 크로마 위치이고(xFracC, yFracC)는 1/32 샘플 유닛으로 주어진 오프셋이라고 하자. 이러한 변수들은 참조 샘플 어레이 refPicLX 내에서 일반적인 분수 샘플 위치를 명시하기 위해 이 절에서만 사용된다.
- 참조 샘플 패딩(xSbIntC, ySbIntC)에 대한 경계 블록의 좌 상단 좌표는 ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5))와 같은 것으로 설정된다.
- 예측 크로마 샘플 어레이 predSamplesLX 내의 각 크로마 샘플 위치 (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1)에 대해, 대응하는 예측 크로마 샘플 값 predSamplesLX [xC] [yC]는 다음과 같이 유도된다.
- (refxSbC, refySbC) 및 (refxC, refyC)를 1/32 샘플 유닛으로 주어진 모션 벡터(mvLX [0], mvLX [1])가 가리키는 크로마 위치라고 하자. 변수들 refxSbC, refySbC, refxC 및 refyC는 다음과 같이 유도된다.
Figure pct00003
- 변수들 xIntC, yIntC, xFracC 및 yFracC는 다음과 같이 유도된다.
xIntC = refxC  >>  5 (8-767)
yIntC = refyC  >>  5 (8-768)
xFracC = refyC & 31 (8-769)
yFracC = refyC & 31 (8-770)
- 예측 샘플 값 predSamplesLX [xC] [yC]는 (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight 및 refPicLX을 입력으로 하여 8.5.6.3.4에 지정된 프로세스를 호출하여 유도된다.
루마 샘플 보간 필터링 프로세스
이 프로세스의 입력들은 다음과 같다.
- 풀 샘플 유닛의 루마 위치 ( xIntL, yIntL ),
- 분수 샘플 유닛의 루마 위치 ( xFracL, yFracL ),
- 참조 픽처의 좌 상단 루마 샘플을 기준으로 참조 샘플 패딩에 대한 경계 블록의 좌 상단 샘플을 명시하는 풀 샘플 유닛(xSbIntL, ySbIntL)의 루마 위치,
- 루마 참조 샘플 어레이 refPicLXL,
- 하프 샘플 보간 필터 인덱스 hpelIfIdx,
- 현재 서브 블록의 너비를 지정하는 변수 sbWidth,
현재 서브 블록의 높이를 지정하는 변수 sbHeight,
- 현재 픽처의 좌 상단 루마 샘플에 상대적인 현재 서브 블록의 좌 상단 샘플을 명시하는 루마 위치 ( xSb, ySb ),
이 프로세스의 출력은 예측된 루마 샘플 값 predSampleLXL이다.
변수들 shift1, shift2 및 shift3는 다음과 같이 유도된다.
- 변수 shift1은 Min(4, BitDepthY - 8)과 같게 설정되고, 변수 shift2는 6과 같게 설정되고, 변수 shift3는 Max(2, 14 - BitDepthY)와 같게 설정된다.
- 변수 picW는 pic_width_in_luma_samples와 동일하게 설정되고 변수 picH는 pic_height_in_luma_samples와 동일하게 설정된다.
xFracL 또는 yFracL과 같은 각 1/16 분수 샘플 위치 p에 대한 루마 보간 필터 계수 fL [p]는 다음과 같이 유도된다.
- MotionModelIdc [xSb] [ySb]가 0보다 크고 sbWidth와 sbHeight가 모두 4이면, 루마 보간 필터 계수 fL[p]가 표 8-11에 명시된다.
- 그렇지 않으면, 루마 보간 필터 계수 fL[p]는 hpelIfIdx에 따라 표 8-11에 명시된다.
풀 샘플 유닛(xInti, yInti)의 루마 위치들은 i = 0..7에 대해 다음과 같이 유도된다.
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1과 같은 경우, 다음이 적용된다.
xInti = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i - 3 ) (8-771)
yInti = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i - 3 ) (8-772)
- 그렇지 않으면 (subpic_treated_as_pic_flag[ SubPicIdx ]가 0과 같으면), 다음이 적용된다.
xInti = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ? ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xIntL + i - 3 ) : xIntL + i - 3 ) (8-773)
yInti = Clip3( 0, picH - 1, yIntL + i - 3 ) (8-774)
풀 샘플 유닛의 루마 위치들은 i = 0..7에 대해 다음과 같이 추가로 수정된다.
xInti = Clip3( xSbIntL - 3, xSbIntL + sbWidth + 4, xInti ) (8-775)
yInti = Clip3( ySbIntL - 3, ySbIntL + sbHeight + 4, yInti ) (8-776)
예측 루마 샘플 값 predSampleLXL은 다음과 같이 유도된다.
- xFracL과 yFracL이 모두 0이면 predSampleLXL의 값은 다음과 같이 유도된다.
predSampleLXL = refPicLXL[ xInt3 ][ yInt3 ] << shift3 (8-777)
- 그렇지 않으면, xFracL 이 0 이 아니고, yFracL 이 0 이면, predSampleLXL 값은 다음과 같이 유도된다.
Figure pct00004
(8-778)
- 그렇지 않으면, xFracL이 0이고 yFracL이 0이 아닌 경우 predSampleLXL의 값은 다음과 같이 유도된다.
Figure pct00005
(8-779)
- 그렇지 않으면, xFracL 이 0 이 아니고, yFracL 이 0 이 아니면, predSampleLXL 값은 다음과 같이 유도된다.
- n = 0..7 인 샘플 어레이 temp [n]은 다음과 같이 유도된다:
Figure pct00006
(8-780)
- 예측 루마 샘플 값 predSampleLXL은 다음과 같이 유도된다.
Figure pct00007
(8-781)
테이블 8-11 - 각 1/16 분수 샘플 위치 p에 대한 루마 보간 필터 계수들 fL [p]의 사양.
분수 샘플 위치 p 보간 필터 계수
f L [ p ][ 0 ] f L [ p ][ 1 ] f L [ p ][ 2 ] f L [ p ][ 3 ] f L [ p ][ 4 ] f L [ p ][ 5 ] f L [ p ][ 6 ] f L [ p ][ 7 ]
1 0 1 -3 63 4 -2 1 0
2 -1 2 -5 62 8 -3 1 0
3 -1 3 -8 60 13 -4 1 0
4 -1 4 -10 58 17 -5 1 0
5 -1 4 -11 52 26 -8 3 -1
6 -1 3 -9 47 31 -10 4 -1
7 -1 4 -11 45 34 -10 4 -1
8 (hpelIfIdx = = 0) -1 4 -11 40 40 -11 4 -1
8 (hpelIfIdx = = 1) 0 3 9 20 20 9 3 0
9 -1 4 -10 34 45 -11 4 -1
10 -1 4 -10 31 47 -9 3 -1
11 -1 3 -8 26 52 -11 4 -1
12 0 1 -5 17 58 -10 4 -1
13 0 1 -4 13 60 -8 3 -1
14 0 1 -3 8 62 -5 2 -1
15 0 1 -2 4 63 -3 1 0
테이블 8-12 -어파인 모션 모드에 대한 각 1/16 분수 샘플 위치 p에 대한 루마 보간 필터 계수들 fL [p]의 사양
분수 샘플 위치 p 보간 필터 계수
f L [ p ][ 0 ] f L [ p ][ 1 ] f L [ p ][ 2 ] f L [ p ][ 3 ] f L [ p ][ 4 ] f L [ p ][ 5 ] f L [ p ][ 6 ] f L [ p ][ 7 ]
1 0 1 -3 63 4 -2 1 0
2 0 1 -5 62 8 -3 1 0
3 0 2 -8 60 13 -4 1 0
4 0 3 -10 58 17 -5 1 0
5 0 3 -11 52 26 -8 2 0
6 0 2 -9 47 31 -10 3 0
7 0 3 -11 45 34 -10 3 0
8 0 3 -11 40 40 -11 3 0
9 0 3 -10 34 45 -11 3 0
10 0 3 -10 31 47 -9 2 0
11 0 2 -8 26 52 -11 3 0
12 0 1 -5 17 58 -10 3 0
13 0 1 -4 13 60 -8 2 0
14 0 1 -3 8 62 -5 1 0
15 0 1 -2 4 63 -3 1 0
루마 정수 샘플 패치 프로세스 (Luma integer sample fetching process)
이 프로세스의 입력들은 다음과 같다.
- 풀 샘플 유닛의 루마 위치 ( xIntL, yIntL ),
- 루마 참조 샘플 어레이 refPicLXL,
이 프로세스의 출력은 예측된 루마 샘플 값 predSampleLXL이다.
변수 시프트는 Max(2, 14 - BitDepthY)와 동일하게 설정된다.
변수 picW는 pic_width_in_luma_samples와 동일하게 설정되고 변수 picH는 pic_height_in_luma_samples와 동일하게 설정된다.
풀 샘플 유닛(xInt, yInt)의 루마 위치들은 다음과 같이 유도된다.
xInt = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ? ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xIntL ) : xIntL ) (8-782)
yInt = Clip3( 0, picH - 1, yIntL ) (8-783)
예측 루마 샘플 값 predSampleLXL은 다음과 같이 유도된다.
predSampleLXL = refPicLXL[ xInt ][ yInt ] << shift3 (8-784)
크로마 샘플 보간 프로세스
이 프로세스의 입력들은 다음과 같다.
- 풀 샘플 유닛의 크로마 위치 ( xIntC, yIntC ),
- 1/32 분수 샘플 유닛(xFracC, yFracC)의 크로마 위치,
- 참조 픽처의 좌 상단 크로마 샘플에 대한 참조 샘플 패딩에 대한 경계 블록의 좌 상단 샘플을 명시하는 풀 샘플 유닛(xSbIntC, ySbIntC)의 크로마 위치,
- 현재 서브 블록의 너비를 명시하는 변수 sbWidth,
- 현재 서브 블록의 높이를 명시하는 변수 sbHeight,
- 크로마 참조 샘플 어레이 refPicLXC.
이 프로세스의 출력은 예측된 크로마 샘플 값 predSampleLXC이다.
변수들 shift1, shift2 및 shift3는 다음과 같이 유도된다.
- 변수 shift1은 Min(4, BitDepthC - 8)과 같게 설정되고, 변수 shift2는 6과 같게 설정되고, 변수 shift3은 Max(2, 14 - BitDepthC)와 같게 설정된다.
- 변수 picWC는 pic_width_in_luma_samples/SubWidthC와 동일하게 설정되고, 변수 picHC는 pic_height_in_luma_samples/SubHeightC와 동일하게 설정된다.
xFracC 또는 yFracC와 같은 각 1/32 분수 샘플 위치 p에 대한 크로마 보간 필터 계수 fC [p]는 테이블 8-13에 명시된다.
변수 xOffset은 ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY ) / SubWidthC와 같게 설정된다.
i = 0 ... 3 에 대해, 풀 샘플 유닛의 크로마 위치들( xInti, yInti )은 다음과 같이 유도된다.
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1과 같은 경우, 다음이 적용된다.
xInti = Clip3( SubPicLeftBoundaryPos / SubWidthC, SubPicRightBoundaryPos / SubWidthC, xIntL + i ) (8-785)
yInti = Clip3( SubPicTopBoundaryPos / SubHeightC, SubPicBotBoundaryPos / SubHeightC, yIntL + i ) (8-786)
- 그렇지 않으면 (subpic_treated_as_pic_flag[ SubPicIdx ]가 0과 같으면), 다음이 적용된다.
xInti = Clip3( 0, picWC - 1, sps_ref_wraparound_enabled_flag ? ClipH( xOffset, picWC, xIntC + i - 1 ) : xIntC + i - 1 ) (8-787)
yInti = Clip3( 0, picHC - 1, yIntC + i - 1 ) (8-788)
풀 샘플 유닛의 크로마 위치들 ( xInti, yInti )은 i = 0..3에 대해 다음과 같이 추가로 수정된다.
xInti = Clip3( xSbIntC - 1, xSbIntC + sbWidth + 2, xInti ) (8-789)
yInti = Clip3( ySbIntC - 1, ySbIntC + sbHeight + 2, yInti ) (8-790)
예측된 크로마 샘플 값 predSampleLXC 은 다음과 같이 유도된다.
- xFracC 및 yFracC가 모두 0과 같으면, predSampleLXC의 값은 다음과 같이 유도된다.
predSampleLXC = refPicLXC[ xInt1 ][ yInt1 ] << shift3 (8-791)
- 그렇지 않고, xFracC이 0과 같지 않고 yFracC가 0과 같으면, predSampleLXC의 값은 다음과 같이 유도된다.
Figure pct00008
(8-792)
- 그렇지 않고, xFracC가 0과 같고 yFracC가 0과 같지 않으면, predSampleLXC의 값은 다음과 같이 유도된다.
Figure pct00009
(8-793)
- 그렇지 않고, xFracC가 0과 같지 않고 yFracC가 0과 같지 않으면, predSampleLXC의 값은 다음과 같이 유도된다.
- n = 0..3인 샘플 어레이 temp[ n ]는 다음과 같이 유도된다.
Figure pct00010
(8-794)
- 예측된 샘플 값 predSampleLXC은 다음과 같이 유도된다.
Figure pct00011
(8-795)
테이블 8-13 - 각 1/32 분수 샘플 위치 p에 대한 크로마 보간 필터 계수들 fC [p]의 사양
분수 샘플 위치 p 보간 필터 계수
f C [ p ][ 0 ] f C [ p ][ 1 ] f C [ p ][ 2 ] f C [ p ][ 3 ]
1 -1 63 2 0
2 -2 62 4 0
3 -2 60 7 -1
4 -2 58 10 -2
5 -3 57 12 -2
6 -4 56 14 -2
7 -4 55 15 -2
8 -4 54 16 -2
9 -5 53 18 -2
10 -6 52 20 -2
11 -6 49 24 -3
12 -6 46 28 -4
13 -5 44 29 -4
14 -4 42 30 -4
15 -4 39 33 -4
16 -4 36 36 -4
17 -4 33 39 -4
18 -4 30 42 -4
19 -4 29 44 -5
20 -4 28 46 -6
21 -3 24 49 -6
22 -2 20 52 -6
23 -2 18 53 -5
24 -2 16 54 -4
25 -2 15 55 -4
26 -2 14 56 -4
27 -2 12 57 -3
28 -2 10 58 -2
29 -1 7 60 -2
30 0 4 62 -2
31 0 2 63 -1
31 0 2 63 -1
2.4. VVC에서 랩어라운드 클리핑
랩어라운드 클리핑은 도 5에 도시된 것과 같은 ERP 또는 PERP 픽처를 처리하기 위해 JVET-L0231에서 제안되었다.
JVET-P2001-v9에서, 랩어라운드 클리핑은 아래와 같이 규정된다.
Figure pct00012
또한 수평 위치는 랩어라운드 클리핑이 적용되는지 여부에 따라 클리핑될 것이다. In JVET-P2001-v9에서는 아래와 같이 규정된다.
완전 샘플 유닛의 루마 위치들( xInti, yInti )은 i = 0..7에 대해 다음과 같이 유도된다.
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1과 같으면, 다음이 적용된다.
xInti = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i - 3 ) (8-754)
yInti = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i - 3 ) (8-755)
- 그렇지 않으면(subpic_treated_as_pic_flag[ SubPicIdx ]가 0과 같으면), 다음이 적용된다.
xInti = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ? ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xIntL + i - 3 ) : xIntL + i - 3 ) (8-756)
yInti = Clip3( 0, picH - 1, yIntL + i - 3 ) (8-757)
2.5. VVC 에서 CCLM
파라미터들은 VVC에서 크로스 컴포넌트 선형 모델 (CCLM: cross-component linear model) 예측을 위해JVET-P2001-v9에서 명시된 것과 같이 유도된다.
8.4.5.2.13 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 인트라 예측 모드의 사양
...
- numSampL가 0과 같고 numSampT가 0과 같으면, 다음이 적용된다.
k = 0 (8-211)
a = 0 (8-212)
b = 1  <<  ( BitDepth - 1 ) (8-213)
- 그렇지 않으면, 다음이 적용된다.
diff = maxY - minY (8-214)
- diff가 0과 같으면, 다음이 적용된다.
Figure pct00013
여기서, divSigTable[ ]은 아래와 같이 규정된다.
divSigTable[ ] = { 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0 } (8-224)
- 그렇지 않으면 (diff이 0과 같으면), 다음이 적용된다.
k = 0 (8-225)
a = 0 (8-226)
b = minC (8-227)
2.6. VVC 에서 방향성(angular) 예측
VVC에서 방향성 예측은 JVET-P2001-v9에서 아래와 같이 명시된다.
8.4.5.2.12 INTRA_ANGULAR2..INTRA_ANGULAR66 인트라 예측 모드들의 사양
이 프로세스의 입력들은 다음과 같다.
- 인트라 예측 모드 predModeIntra,
- 인트라 예측 참조 라인 인덱스를 명시하는 변수 refIdx,
- 변환 블록 너비를 명시하는 변수 nTbW,
- 변환 블록 높이를 명시하는 변수 nTbH,
- 참조 샘플 너비를 명시하는 변수 refW,
- 참조 샘플 높이를 명시하는 변수 refH,
- 코딩 블록 너비를 명시하는 변수 nCbW,
- 코딩 블록 높이를 명시하는 변수 nCbH,
- 참조 필터 플래그의 값을 명시하는 변수 refFilterFlag,
- 현재 블록의 색 성분을 명시하는 변수 cIdx,
- x = -1- refIdx, y = -1- refIdx..refH - 1 및 x = -refIdx..refW - 1, y = -1- refIdx인 주변 샘플들 p[ x ][ y ]
이 프로세스의 출력들은 x = 0..nTbW - 1, y = 0..nTbH - 1인 예측된 샘플들 predSamples[ x ][ y ]이다.
변수 nTbS는 ( Log2 ( nTbW ) + Log2 ( nTbH ) )  >>  1와 같게 설정된다.
변수 filterFlag는 아래와 같이 유도된다.
- 다음 조건들 중 하나 또는 그 이상이 참이면, filterFlag는 0과 같은 것으로 설정된다.
- refFilterFlag는 1과 같다.
- refIdx는 0과 같지 않다.
- IntraSubPartitionsSplitType은 ISP_NO_SPLIT와 같지 않다.
- 그렇지 않으면, 다음이 적용된다.
- 변수 minDistVerHor는 Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 ) )와 같게 설정된다.
- 변수 intraHorVerDistThres[ nTbS ]는 표 8-7에 명시된다.
- 변수 filterFlag는 다음과 같이 유도된다.
- minDistVerHor가 intraHorVerDistThres[ nTbS ] 보다 크고 refFilterFlag가 0과 같으면, filterFlag가 1로 설정된다.
- 그렇지 않으면, filterFlag는 0으로 설정된다.
테이블 8-7 - 다양한 변환 블록 크기들 nTbS에 대한 intraHorVerDistThres[ nTbS ]의 사양
nTbS = 2 nTbS = 3 nTbS = 4 nTbS = 5 nTbS = 6 nTbS = 7
intraHorVerDistThres [ nTbS ] 24 14 2 0 0 0
테이블 8-8은 predModeIntra 와 각도 파라미터 intraPredAngle 사이의 매핑 테이블을 명시한다
테이블 8-8 - intraPredAngle의 사양
Figure pct00014
역각도(inverse angle) 파라미터 invAngle은 다음과 같이 intraPredAngle을 기반으로 유도된다
Figure pct00015
...
2.7. VVC에서 인터 예측을 위한 샘플 페칭 (sample fetching)
8.5.6.3.2 루마 샘플 보간 필터링 프로세스
...
풀 샘플 유닛에서의 루마 위치들(xInti, yInti)은 i = 0..7에 대해 다음과 같이 유도된다.
-- subpic_treated_as_pic_flag[ SubPicIdx ] 가 1이면, 다음이 적용된다.
xInti = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i - 3 ) (8-754)
yInti = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i - 3 ) (8-755)
-- 그렇지 않으면(subpic_treated_as_pic_flag[ SubPicIdx ]가 0과 같으면), 다음이 적용된다.
xInti = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ? ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xIntL + i - 3 ) : xIntL + i - 3 )
yInti = Clip3( 0, picH - 1, yIntL + i - 3 )
풀 샘플 유닛에서의 루마 위치들은 i = 0..7에 대해 아래와 같이 추가로 수정된다.
xInti = Clip3( xSbIntL - 3, xSbIntL + sbWidth + 4, xInti )
yInti = Clip3( ySbIntL - 3, ySbIntL + sbHeight + 4, yInti )
예측된 루마 샘플 값 predSampleLXL은 아래와 같이 유도된다.
- xFracL 및 yFracL가 모두 0이고 hori_scale_fp 및 vert_scale_fp가 모두 20481 미만이면, predSampleLXL의 값은 다음과 같이 유도된다.
predSampleLXL = refPicLXL[ xInt3 ][ yInt3 ] << shift3
...
8.5.6.3.4 크로마 샘플 보간 프로세스
...
풀 샘플 유닛에서의 크로마 위치들( xInti, yInti )은 i = 0..3에 대해 아래와 같이 추가로 수정된다.
xInti = Clip3( xSbIntC - 1, xSbIntC + sbWidth + 2, xInti ) (8-774)
yInti = Clip3( ySbIntC - 1, ySbIntC + sbHeight + 2, yInti ) (8-775)
3. 개시된 기술적 해결수단들이 해결하는 기술적 문제들의 예들
RPR가 VVC에서 적용되는 경우, RPR(ARC)는 아래와 같은 문제들을 가질 수 있다.
1. RPR로 인해, 보간 필더들은 블록 내의 인접 샘플들에 대해 상이할 수 있으며, 이는 단일 명령 다중 데이터 (SIMD: Single Instruction Multiple Data) 구현에 바람직하지 않다.
2. 경계 영역은 RPR을 고려하지 않는다.
3. 랩어라운드 오프셋(sps_ref_wraparound_offset_minus1)은 시퀀스 레벨에서 시그널링되지만, 픽처들의 치수는 시퀀스에서의 RPR로 인해 다양할 수 있다.
4. CCLM을 위한 파라미터들을 유도하기 위해 Abs (diffC)는 Log2(Abs(diffC))에서 0과 같을 수 있다.
5. intraPredAngle가 0일 수 있으며, 이로 인해 invAngle이 무의미할 수 있다.
6. 섹션 2.7에서 설명된 하이라이트 클리핑 동작("정수 샘플 클리핑 동작"으로 표시)는 RPR에 대한 움직임 보상을 손상시킬 수 있다.
4. 실시예들 및 기술들의 목록
아래 목록은 일반적인 개념들을 설명하기 위한 예들로 간주되어야 한다. 이러한 항목들은 협소한 방식으로 해석되어서는 안 된다. 더 나아가, 이러한 항목들은 어떤 방식으로도 결합될 수 있다.
모션 벡터는 (mv_x, mv_y)로 표시되며, 여기서 mv_x는 수평 성분이고 mv_y는 수직 성분이다.
1. 참조 픽처의 해상도가 현재 픽처와 다를 경우, 현재 블록의 (적어도 2개) 샘플들의 그룹에 대한 예측 값들은 동일한 수평 및/또는 수직 보간 필터로 생성될 수 있다.
a. 일 예에서, 상기 그룹은 상기 블록의 영역 내의 모든 샘플들을 포함할 수 있다.
i. 예를 들어, 블록은 서로 겹치지 않는 S개의 MxN 직사각형들로 분할될 수 있다. 각각의 MxN 직사각형은 하나의 그룹이다. 도 1에 도시된 것 예에서, 16x16 블록은 16개의 4x4 직사각형들로 분할될 수 있으며, 그것들 각각은 하나의 그룹이다.
ii. 예를 들어, N개의 샘플을 가진 행은 하나의 그룹이다. N은 블록 너비 보다 크지 않은 정수이다. 일 예에서, N은 4 또는 8 또는 블록 너비이다.
iii. 예를 들어, N개의 샘플을 가진 열은 하나의 그룹이다. N은 블록 높이 보다 크지 않은 정수이다. 일 예에서, N은 4 또는 8 또는 블록 높이이다.
iv. M 및/또는 N은 미리 정의되거나 또는 블록 치수/코딩된 정보에 기반하는 경우와 같이 그때 그때 유도되거나 또는 시그널링 될 수 있다.
b. 일 예에서, 그룹 내의 샘플들은 (공유된 MV로 표시되는) 동일한 MV를 가질 수 있다.
c. 일 예에서, 그룹 내의 샘플들은 (공유된 수평 성분으로 표시되는) 동일한 수평 성분을 가지는 MV들을 가질 수 있다.
d. 일 예에서, 그룹 내의 샘플들은 (공유된 수직 성분으로 표시되는) MV들을 가질 수 있다.
e. 일 예에서, 그룹 내의 샘플들은 수평 성분의 동일한 분수 부분(fractional part)(공유된 분수 수평 성분(fractional horizontal component)으로 표시)를 가지는 MV들을 가질 수 있다.
i. 예를 들어, 첫 번째 샘플에 대한 MV가 (MV1x, MV1y)이고 두 번째 샘플에 대한 MV가 (MV2x, MV2y)라고 가정하면, MV1x & (2M-1)은 MV2x & (2M-1)와 같아야 하며, 여기서 M은 MV 정밀도를 나타낸다. 예를 들어 M=4.
f. 일 예에서, 그룹내의 샘플들은 수직 성분의 동일한 분수 부분(공유된 분수 수직 성분(fractional vertical component)으로 표시)를 가지는 MV들을 가질 수 있다.
i. 예를 들어, 첫 번째 샘플에 대한 MV가 (MV1x, MV1y)이고 두 번째 샘플에 대한 MV가 (MV2x, MV2y)라고 가정하면, MV1y & (2M-1)은 MV2y & (2M-1)와 같아야 하며, 여기서 M은 MV 정밀도를 나타낸다. 예를 들어 M=4.
g. 일 예에서, 그룹 내의 샘플이 예측되기 위해, MVb로 표시되는 모션 벡터는 현재 블록 및 참조 블록(예를 들어, JVET-O2001-v14의 8.5.6.3.1절에서 유도된 (refxL , refyL))의 해상도들에 따라 우선 유도될 수 있다. 그 다음으로, MVb는 MV'로 더 수정되어(예를 들어, 반올림/절단/클리핑되어) 위의 단락들과 같은 요구사항들을 만족시킬 수 있으며, MV'는 상기 샘플에 대한 예측 샘플을 유도하는 데에 사용될 것이다.
i. 일 예에서, MV'는 MVb와 동일한 정수 부분을 가지며, MV'의 분수 부분은 공유된 분수 수평 및/또는 수직 성분으로 설정된다.
ii. 일 예에서, MV'는 공유된 분수 수평 및/또는 수직 성분을 가지는 것으로 설정되며, MVb에 가장 근접한다.
h. 공유된 모션 벡터 (및/또는 공유된 수평 성분 및/또는 공유된 수직 성분 및/또는 공유된 분수 수평 성분 및/또는 공유된 분수 수직 성분)은 그룹 내의 특정 샘플의 모션 벡터 (및/또는 수평 성분 및/또는 수직 성분 및/또는 분수 수평 성분 및/또는 분수 수직 성분)으로 설정될 수 있다.
i. 예를 들어, 상기 특정 샘플은 도 2a에 도시된 "A", "B", "C" 및 "D"와 같이, 직사각형 모양 그룹의 코너에 있을 수 있다.
ii. 예를 들어, 상기 특정 샘플은 도 2a에 도시된 "E", "F", "G" 및 "H"와 같이, 직사각형 모양 그룹의 중앙에 있을 수 있다.
iii. 예를 들어, 상기 특정 샘플은 도 2b 및 도 2b에 도시된 "A" 및 "B"와 같이, 행 모양 또는 열 모양 그룹의 끝에 있을 수 있다.
iv. 예를 들어, 상기 특정 샘플은 도 2b 및 도 2b에 도시된 "B" 및 "C"와 같이, 행 모양 또는 열 모양 그룹의 가운데에 있을 수 있다.
v. 일 예에서, 상기 특정 샘플의 모션 벡터는 단락 g에서 언급된 MVb일 수 있다.
i. 공유된 모션 벡터 (및/또는 공유된 수평 성분 및/또는 공유된 수직 성분 및/또는 공유된 분수 수평 성분 및/또는 공유된 분수 수직 성분)은 이 그룹 내의 모든 샘플들과 비교하여 다른 위치에 있는 가상 샘플의 모션 벡터 (및/또는 수평 성분 및/또는 수직 성분 및/또는 분수 수평 성분 및/또는 분수 수직 성분)으로 설정될 수 있다.
i. 일 예에서, 상기 가상 샘플은 상기 그룹 내에 있지 않고, 상기 그룹 내의 모든 샘플들을 포함하는 영역 안에 위치한다.
1) 또는, 상기 가상 샘플은 상기 그룹 내의 모든 샘플들을 포함하는 상기 영역 외부, 가령, 상기 영역의 우 하단 위치 바로 옆에 위치한다.
ii. 일 예에서, 가상 샘플의 MV는 실제 샘플과 동일한 방식으로 유도되지만 상이한 위치들을 가질 수 있다.
iii. 도 2a 내지 2c에서 "V"는 가상 샘플들의 3가지 예를 보여준다.
j. 공유된 모션 벡터 (및/또는 공유된 수평 성분 및/또는 공유된 수직 성분 및/또는 공유된 분수 수평 성분 및/또는 공유된 분수 수직 성분)은 다수의 샘플들 및/또는 가상 샘플들의 MV들 (및/또는 수평 성분들 및/또는 수직 성분들 및/또는 분수 수평 성분들 및/또는 분수 수직 성분들)의 함수로 설정될 수 있다.
i. 예를 들어, 상기 공유된 MV (및/또는 공유된 수평 성분 및/또는 공유된 수직 성분 및/또는 공유된 분수 수평 성분 및/또는 공유된 분수 수직 성분)은 그룹 내의 모든 또는 일부 샘플들 또는 도 2a의 샘플 "E", "F", "G" 및 "H" 또는 도 2a의 샘플 "E" 및 "H" 또는 도 2a의 샘플 "A", "B", "C" 및 "D" 또는 도 2a의 샘플 "A" 및 "D" 또는 도 2b의 샘플 "B" 및 "C" 또는 도 2b의 샘플 "A" 및 "D" 또는 도 2c의 샘플 "B" 및 "C" 또는 도 2c의 샘플 "A" 및 "D"의 MV들의 평균으로 설정될 수 있다.
2. 참조 픽처의 해상도가 현재 픽처와 다를 경우 현재 블록의 예측 블록을 유도하기 위한 움직임 보상 프로세스를 실시하기 위해 오직 정수 MV들만이 허용될 것이 제안된다.
a. 일 예에서, 예측될 샘플들에 대한 디코딩된 모션 벡터들은 사용되기 전에 정수 MV들로 반올림된다.
3. 현재 블록 내의 샘플들에 대한 움직임 보상 프로세스에서 사용되는 모션 벡터들 (예를 들어, 공유된 MV/공유된 수평 또는 수직 또는 분수 성분/위 단락들에서 언급된 MV')은 디코딩된 픽처 버퍼에 저장되고 현재/상이한 픽처들내의 연속되는 블록들의 모션 벡터 예측을 위해 활용될 수 있다.
a. 또는, 현재 블록 내의 샘플들에 대한 움직임 보상 프로세스에서 사용되는 모션 벡터들 (예를 들어, 공유된 MV/공유된 수평 또는 수직 또는 분수 성분/위 단락들에서 언급된 MV')은 현재/상이한 픽처들내의 연속되는 블록들의 모션 벡터 예측을 위해 활용되는 것이 허용되지 않을 수 있다.
i. 일 예에서, 상기 디코딩된 모션 벡터들(예를 들어, 위 단락들에서 MVb)은 현재/상이한 픽처들내의 연속되는 블록들의 모션 벡터 예측을 위해 활용될 수 있다.
b. 일 예에서, 현재 블록 내의 샘플들에 대한 움직임 보상 프로세스에 사용되는 모션 벡터들은 필터링 프로세스(예를 들어, 디블로킹 필터/SAO/ALF)에서 활용될 수 있다.
i. 또는, 상기 디코딩된 모션 벡터들(예를 들어, 위 단락들에서 MVb)은 필터링 프로세스에서 활용될 수 있다.
4. 현재 블록의 예측 블록을 유도하기 위해 움직임 보상 프로세스에서 사용되는 보간 필터들은 참조 픽처의 해상도가 현재 픽처와 상이한지 여부에 따라 선택될 수 있음이 제안된다.
a. 일 예에서, 참조 픽처의 해상도가 현재 픽처와 상이한 경우 보간 필터들은 탭을 덜 가진다.
i. 일 예에서, 참조 픽처의 해상도가 현재 픽처와 상이한 경우 바이 리니어 필터들이 적용된다.
ii. 일 예에서, 참조 픽처의 해상도가 현재 픽처와 상이한 경우 4-탭 필터들 또는 6-탭 필터들이 적용된다.
5. 참조 픽처의 해상도가 현재 픽처와 상이한 경우 예측 블록 생성을 위한 2단계 프로세스가 적용된다고 제안된다.
a. 첫 번째 단계에서, 가상 참조 블록은 상기 현재 픽처 및 상기 참조 픽처의 너비 및/또는 높이에 따라 상기 참조 픽처의 영역을 업 샘플링 또는 다운 샘플링하여 생성될 수 있다.
b. 두 번째 단계에서, 예측 샘플들은, 상기 현재 픽처 및 상기 참조 픽처의 너비 및/또는 높이와 상관 없이, 보간 필터링을 적용하여 가상 참조 블록으로부터 생성된다.
6. JVET-O2001-v14에서 정의된 바와 같은 참조 샘플 패딩을 위한 경계 블록의 좌 상단 좌표( xSbIntL, ySbIntL )의 계산은 상기 현재 픽처 및 상기 참조 픽처의 너비 및/또는 높이에 따라 유도될 수 있다고 제안된다.
a. 일 예에서, 풀 샘플 유닛에서의 루마 위치들은 아래와 같이 수정된다.
xInti = Clip3( xSbIntL - Dx, xSbIntL + sbWidth + Ux, xInti ),
yInti = Clip3( ySbIntL - Dy, ySbIntL + sbHeight + Uy, yInti ),
여기서, Dx 및/또는 Dy 및/또는 Ux 및/또는 Uy는 상기 현재 픽처 및 상기 참조 픽처의 너비 및/또는 높이에 의존할 수 있다.
b. 일 예에서, 풀 샘플 유닛에서의 크로마 위치들은 아래와 같이 수정된다.
xInti = Clip3( xSbIntC - Dx, xSbIntC + sbWidth + Ux, xInti )
yInti = Clip3( ySbIntC - Dy, ySbIntC + sbHeight + Uy, yInti )
여기서, Dx 및/또는 Dy 및/또는 Ux 및/또는 Uy는 상기 현재 픽처 및 상기 참조 픽처의 너비 및/또는 높이에 의존할 수 있다.
7. 참조 샘플 패딩을 위한(예를 들어 JVET-O2001-v14의 8.5.6.3.1절에 정의된 것과 같은 (xSbIntL, ySbIntL)) 경계 블록에 따라 MV를 클리핑할 것인지여부 및/또는 어떻게 클리핑할 것인지는 DMVR의 사용에 의존할 수 있음이 제안된다.
a. 일 예에서, 오직 DMVR이 적용되는 경우에만, MV는 참조 샘플 패딩을 위한(예를 들어 JVET-O2001-v14의 8.5.6.3.1절에 정의된 것과 같은 (xSbIntL, ySbIntL)) 경계 블록에 따라 클리핑된다.
i. 예를 들어, JVET-O2001-v14에 정의된 루마 샘플 보간 필터링 프로세스에서 동작 8-775 및 8-776은 오직 DMVR이 현재 블록에 대해 사용되는 경우에만 적용된다.
ii. 예를 들어, JVET-O2001-v14에 정의된 크로마 샘플 보간 필터링 프로세스에서 동작 8-789 및 8-790은 오직 DMVR이 현재 블록에 대해 사용되는 경우에만 적용된다.
b. 또는, 더 나아가, 상기 방법들은 크로마 샘플들의 클리핑에도 적용될 수 있다.
8. 참조 샘플 패딩을 위한(예를 들어 JVET-O2001-v14의 8.5.6.3.1절에 정의된 것과 같은 (xSbIntL, ySbIntL)) 경계 블록에 따라 MV를 클리핑할 것인지여부 및/또는 어떻게 클리핑할 것인지는 픽처 래핑이 사용되는지 여부(예를 들어 sps_ref_wraparound_enabled_flag가 0인지 또는 1인지 여부)에 의존할 수 있음이 제안된다.
a. 일 예에서, 일 예에서, 오직 픽처 래핑이 사용되지 않는 경우에만, MV는 참조 샘플 패딩을 위한(예를 들어 JVET-O2001-v14의 8.5.6.3.1절에 정의된 것과 같은 (xSbIntL, ySbIntL)) 경계 블록에 따라 클리핑된다.
i. 예를 들어, JVET-O2001-v14에 정의된 루마 샘플 보간 필터링 프로세스에서 동작 8-775 및 8-776은 오직 픽처 래핑이 사용되지 않는 경우에만 적용된다.
ii. 예를 들어, JVET-O2001-v14에 정의된 크로마 샘플 보간 필터링 프로세스에서 동작 8-789 및 8-790은 오직 픽처 래핑이 사용되지 않는 경우에만 적용된다.
b. 또는, 더 나아가, 상기 방법들은 크로마 샘플들의 클리핑에도 적용될 수 있다.
c. 일 예에서, 풀 샘플 유닛에서의 루마 위치들은 아래와 같이 수정된다.
xInti = Clip3( xSbIntL - Dx, xSbIntL + sbWidth + Ux, xInti ),
yInti = Clip3( ySbIntL - Dy, ySbIntL + sbHeight + Uy, yInti ),
여기서, Dx 및/또는 Dy 및/또는 Ux 및/또는 Uy는 픽처 래핑이 사용되는지 여부에 의존할 수 있다.
d. 일 예에서, 풀 샘플 유닛에서의 크로마 위치들은 아래와 같이 수정된다.
xInti = Clip3( xSbIntC - Dx, xSbIntC + sbWidth + Ux, xInti )
yInti = Clip3( ySbIntC - Dy, ySbIntC + sbHeight + Uy, yInti )
여기서, Dx 및/또는 Dy 및/또는 Ux 및/또는 Uy는 픽처 래핑이 사용되는지 여부에 의존할 수 있다.
9. 필터링 프로세스(예를 들어 디블로킹 필터)를 적용할지 여부 및/또는 어떻게 적용할지는 참조 픽처들이 상이한 해상도들을 가지는지 여부에 의존할 수 있다.
a. 일 예에서, 디블로킹 필터들에서의 경계 강도 설정들은 모션 벡터 차분들 외에 해상도 차이들을 고려할 수 있다.
b. 일 예에서, 디블로킹 필터들에서의 경계 강도 설정들은 해상도 차이들에 기반한 스케일링된 모션 벡터 차분들일 수 있다.
c. 일 예에서, 블록 A의 적어도 하나의 참조 픽처의 해상도가 블록 B의 적어도 하나의 참조 픽처의 해상도와 다를 경우(또는 더 작거나 또는 더 클 경우) 디블로킹 필터의 강도는 증가된다.
d. 일 예에서, 블록 A의 적어도 하나의 참조 픽처의 해상도가 블록 B의 적어도 하나의 참조 픽처의 해상도와 다를 경우(또는 더 작거나 또는 더 클 경우) 디블로킹 필터의 강도는 감소된다.
e. 일 예에서, 블록 A 및/또는 블록 B의 적어도 하나의 참조 픽처의 해상도가 현재 블록의 해상도와 다를 경우(또는 더 작거나 또는 더 클 경우) 디블로킹 필터의 강도는 증가된다.
f. 일 예에서, 블록 A 및/또는 블록 B의 적어도 하나의 참조 픽처의 해상도가 현재 블록의 해상도와 다를 경우(또는 더 작거나 또는 더 클 경우) 디블로킹 필터의 강도는 감소된다.
10. 현재 픽처와 동일한 참조 픽처 해상도에 기반하여 블록에 대한 모션 벡터들을 저장/사용하는 대신에, 해상도 차이를 고려한 실제 모션 벡터들을 사용할 것이 제안된다.
a. 또는, 더 나아가, 예측 블록을 생성하기 위해 모션 벡터를 사용하는 경우, 현재 픽처 및 참조 픽처(예를 들어, JVET-O2001-v14의 8.5.6.3.1절에서 유도된 (refxL, refyL))의 해상도들에 따라 모션 벡터를 더 변경할 필요가 없다.
11. 일 예에서, 서브 픽처가 존재하는 경우, 참조 픽처는 현재 픽처와 동일한 해상도를 가져야 한다.
a. 또는, 참조 픽처가 현재 픽처와 다른 해상도를 가지는 경우, 현재 픽처에는 서브 픽처가 없어야 한다.
12. 일 예에서, 서브 픽처들은 상이한 해상도를 가지는 픽처들에 대해 별도로 정의될 수 있다.
13. 일 예에서, 참조 픽처가 현재 픽처와 상이한 해상도를 가지는 경우, 참조 픽처 내의 해당 서브 픽처는 현재 픽처의 서브 픽처를 스케일링 및/또는 오프세팅 하여 유도될 수 있다.
14. 랩어라운드 클리핑과 관련된 모든 또는 일부 정보는, 픽처/뷰/슬라이스/타일/브릭/서브 픽처/CTU 행 레벨과 같이, 시퀀스 레벨이 아닌 비디오 유닛에서 시그널링될 수 있음이 제안된다.
a. 일 예에서, 상기 정보는 PPS, APS, 픽처 헤더, 슬라이스 헤더 등에서 시그널링될 수 있다.
b. 예를 들어, (가령 pps_ref_wraparound_offset_minus1로 불리는) 신택스 요소는 첫 번째 PPS에서 시그널링 되어 수평 랩어라운드 위치를 산출하기 위한 오프셋을 지시할 수 있다.
i. 일 예에서, pps_ref_wraparound_offset_minus1이 시그널링될 수 있으며, pps_ref_wraparound_offset_minus1 plus 1은 MinCbSizeY 루마 샘플들의 유닛에서 수평 랩어라운드 위치를 산출하기 위해 사용되는 오프셋을 명시하며, 이때 MinCbSizeY는 루마 블록들의 가장 작은 Cb 크기를 나타낸다.
ii. pps_ref_wraparound_offset_minus1의 범위는 첫 번째 PPS에서의 pic_width_in_luma_samples에 의존할 수 있다. 예를 들어, pps_ref_wraparound_offset_minus1의 값은 (CtbSizeY/MinCbSizeY) + 1 to (pic_width_in_luma_samples/MinCbSizeY) - 1의 범위 내에 있어야 하며, 여기서 pic_width_in_luma_samples은 첫 번째 PPS에 있다.
iii. 일 예에서, 신택스 요소는 고정 길이/절단 단항/단항/절단 이항/K 번째 EG 이진화 방법(예를 들어, K = 0)으로 코딩될 수 있다.
c. 예를 들어, (가령 pps_ref_wraparound_enabled_flag로 불리는) 신택스 요소는 첫 번째 PPS에서 시그널링 되어 수평 랩어라운드 움직임 보상이 인터 예측에 적용되는지 여부를 지시할 수 있다.
i. 일 예에서, 1과 같은 pps_ref_wraparound_enabled_flag는 수평 랩어라운드 움직임 보상이 인터 예측에 적용됨을 명시한다. 0과 같은 pps_ref_wraparound_enabled_flag는 수평 랩어라운드 움직임 보상이 적용되지 않음을 명시한다.
ii. 또는, 더 나아가, 신택스 요소는 조건적으로 시그널링될 수 있다.
1) 일 예에서, pps_ref_wraparound_offset_minus1을 시그널링할지 여부는 pps_ref_wraparound_enabled_flag에 의존할 수 있다.
a) 예를 들어, pps_ref_wraparound_offset_minus1는 오직 pps_ref_wraparound_enabled_flag가 1일 경우에만 시그널링된다.
d. 일 예에서, 제1 신택스 요소는 시퀀스 레벨과 같은 제1 비디오 유닛에서 시그널링될 수 있으며(예를 들어 SPS에서 시그널링), 제2 신택스 요소는 픽처/슬라이스 레벨과 같은 제2 비디오 유닛에서 시그널링될 수 있다(예를 들어 PPS, APS, 픽처 헤더 등에서 시그널링). 상기 제1 신택스 요소 및 제2 신택스 요소는 랩어라운드 클리핑에 관한 동일한 기능을 가지지만 상이한 레벨에 있다.
i. 상기 제2 비디오 유닛은 상기 제1 비디오 유닛을 참조할 수 있다.
ii. 예를 들어, sps_ref_wraparound_offset_minus1은 SPS에서 시그널링될 수 있고, pps_ref_wraparound_offset_minus1은 PPS에서 시그널링될 수 있다.
iii. 예를 들어, sps_ref_wraparound_enabled_flag는 SPS에서 시그널링될 수 있고, pps_ref_wraparound_enabled_flag는 PPS에서 시그널링될 수 있다.
iv. 일 예에서, 적합성(conformance) 비트스트림에서, 상기 제1 신택스 요소는 상기 제2 신택스 요소와 동일해야 한다.
1) 예를 들어, 적합성 비트스트림에서, sps_ref_wraparound_enabled_flag는 pps_ref_wraparound_enabled_flag와 같아야 한다.
v. 일 예에서, 상기 제2 신택스 요소는 상기 제1 신택스 요소에 의존할 수 있다.
1) 예를 들어, sps_ref_wraparound_enabled_flag가 0인 경우, pps_ref_wraparound_enabled_flag는 0이어야 한다.
2) 예를 들어, sps_ref_wraparound_enabled_flag가 1인 경우, pps_ref_wraparound_enabled_flag는 0일 수 있다.
vi. 일 예에서, 상기 두 신택스 요소들이 모두 나타나는 경우, 상기 제1 신택스 요소는 무시되고, 상기 제2 신택스 요소가 기능을 한다.
vii. 일 예에서, 상기 두 신택스 요소들이 모두 나타나는 경우, 상기 제2 신택스 요소는 무시되고, 상기 제1 신택스 요소가 기능을 한다.
e. 일 예에서, ( CtbSizeY / MinCbSizeY + Offset1)의 값이 ( pic_width_in_luma_samples / MinCbSizeY - Offset2 ) 작지 않거나 또는 같을 경우, sps_ref_wraparound_enabled_flag의 값은 0과 같아야 하며, 이때 pic_width_in_luma_samples는 SPS를 참조하는 임의의 PPS에서의 pic_width_in_luma_samples의 값이다. 예를 들어, Offset1 = Offset2 = 1.
f. 일 예에서, ( CtbSizeY / MinCbSizeY + Offset1)의 값이 ( pic_width_in_luma_samples / MinCbSizeY - Offset2 ) 작지 않은 경우, sps_ref_wraparound_enabled_flag의 값은 0과 같아야 하며, 이때 pic_width_in_luma_samples는 SPS를 참조하는 임의의 PPS에서의 pic_width_in_luma_samples의 값이다. 예를 들어, Offset1 = Offset2 = 1.
g. 일 예에서, ( CtbSizeY / MinCbSizeY + Offset1)의 값이 ( pic_width_in_luma_samples / MinCbSizeY - Offset2 ) 보다 크거나 같은 경우, sps_ref_wraparound_enabled_flag의 값은 0과 같아야 하며, 이때 pic_width_in_luma_samples는 SPS를 참조하는 임의의 PPS에서의 pic_width_in_luma_samples의 값이다. 예를 들어, Offset1 = Offset2 = 1.
h. 일 예에서, ( CtbSizeY / MinCbSizeY + Offset1)의 값이 ( pic_width_in_luma_samples / MinCbSizeY - Offset2 ) 보다 큰 경우, sps_ref_wraparound_enabled_flag의 값은 0과 같아야 하며, 이때 pic_width_in_luma_samples는 SPS를 참조하는 임의의 PPS에서의 pic_width_in_luma_samples의 값이다. 예를 들어, Offset1 = Offset2 = 1
i. 일 예에서, ( CtbSizeY / MinCbSizeY + Offset1)의 값이 ( pic_width_in_luma_samples / MinCbSizeY - Offset2 )보다 작지 않거나 같은 경우, pps_ref_wraparound_enabled_flag의 값은 0과 같아야 하며, 이때 pic_width_in_luma_samples는 PPS에 있다. 예를 들어, Offset1 = Offset2 = 1.
j. 일 예에서, ( CtbSizeY / MinCbSizeY + Offset1)의 값이 ( pic_width_in_luma_samples / MinCbSizeY - Offset2 )보다 작지 않은 경우, pps_ref_wraparound_enabled_flag의 값은 0과 같아야 하며, 이때 pic_width_in_luma_samples는 PPS에 있다. 예를 들어, Offset1 = Offset2 = 1.
k. 일 예에서, ( CtbSizeY / MinCbSizeY + Offset1)의 값이 ( pic_width_in_luma_samples / MinCbSizeY - Offset2 )보다 더 크거나 같은 경우, pps_ref_wraparound_enabled_flag의 값은 0과 같아야 하며, 이때 pic_width_in_luma_samples는 PPS에 있다. 예를 들어, Offset1 = Offset2 = 1.
l. 일 예에서, ( CtbSizeY / MinCbSizeY + Offset1)의 값이 ( pic_width_in_luma_samples / MinCbSizeY - Offset2 )보다 더 큰 경우, pps_ref_wraparound_enabled_flag의 값은 0과 같아야 하며, 이때 pic_width_in_luma_samples는 PPS에 있다. 예를 들어, Offset1 = Offset2 = 1.
15. X가 0과 같거나 0 미만인 Log2(X)의 수학식은 어파인 머지 후보들을 유도하는 데에는 피할 것이 제안된다.
a. 예를 들어, 상기 절차는 X가 0보다 큰지 아닌지 여부에 좌우될 수 있다.
b. 예를 들어, 상기 절차는 X가 0과 같은지 여부에 좌우될 수 있다.
c. 예를 들어, Log2(Height) - Log2(Width)는 Log2(Height/Width) 대신에 계산된다.
d. JVET-P2001-v9에 기반한 예시적인 사양의 변경은 다음과 같다(이중 꺾쇠 괄호 안의 텍스트는 삭제되며, 굵은 이탤릭체 텍스트는 코덱 사양에 추가되었다.)
8.5.5.6 구성된 어파인 제어 포인트 모션 벡터 머지 후보들에 대한 유도 프로세스
...
6. availableFlagCorner[ 0 ]가 TRUE이고 availableFlagCorner[ 2 ]가 TRUE이면, 다음이 적용된다.
- 0 또는 1로 대체되는 X에 대해, 다음이 적용된다.
- 변수 availableFlagLX는 아래와 같이 유도된다.
- 다음 조건들이 모두 TRUE이면, availableFlagLX는 TRUE로 설정된다.
- predFlagLXCorner[ 0 ]는 1과 같다.
- predFlagLXCorner[ 2 ]는 1과 같다.
- refIdxLXCorner[ 0 ]는 refIdxLXCorner[ 2 ]와 같다.
- 그렇지 않으면, availableFlagLX는 FALSE로 설정된다.
- availableFlagLX가 TRUE인 경우, 다음이 적용된다.
- 제2 제어 포인트 모션 벡터cpMvLXCorner[ 1 ]는 아래와 같이 유도된다.
Figure pct00016
- 8.5.2.14절에 명시된 것과 같은 모션 벡터들에 대한 반올림 프로세스가 호출되며, 이때, 입력들로는 mvX가 cpMvLXCorner[ 1 ]와 같은 것으로 설정되고, rightShift는 7로 설정되고, leftShift는 0으로 설정되며, 반올림된 cpMvLXCorner[ 1 ]을 출력으로 한다.
- 다음과 같은 할당이 이루어진다.
Figure pct00017
- 양 예측(bi-prediction) 가중치 인덱스 bcwIdxConst6는 bcwIdxCorner[ 0 ]와 같게 설정된다.
- 변수 availableFlagConst6 및 motionModelIdcConst6는 다음과 같이 유도된다.
- availableFlagL0 또는 availableFlagL1이 1과 같은 경우, availableFlagConst6는 TRUE로 설정되고, motionModelIdcConst6는 1로 설정된다.
- 그렇지 않으면, availableFlagConst6는 FALSE로 설정되고, motionModelIdcConst6는 0으로 설정된다.
16. X가 0과 같거나 0 미만인 Log2(X)의 수학식은 크로스 컴포넌트 선형 모델(CCLM)에서 파라미터들을 유도하는 데에는 피할 것이 제안된다.
a. 예를 들어, 상기 절차는 X가 0보다 큰지 아닌지 여부에 좌우될 수 있다.
b. 예를 들어, 상기 절차는 X가 0과 같은지 여부에 좌우될 수 있다.
c. JVET-P2001-v9에 기반한 예시적인 사양의 변경은 다음과 같다.
8.4.5.2.13 INTRA_LT_CCLM, INTRA_L_CCLM 및 INTRA_T_CCLM 인트라 예측 모드의 사양
...
7. 변수들 a, b, 그리고 k는 다음과 같이 유도된다.
- numSampL이 0과 같고, numSampT가 0과 같은 경우, 다음이 적용된다.
k = 0 (8-211)
a = 0 (8-212)
b = 1  <<  ( BitDepth - 1 ) (8-213)
- 그렇지 않으면, 다음이 적용된다.
Figure pct00018
여기서, divSigTable[ ]는 아래와 같이 규정된다.
divSigTable[ ] = { 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0 } (8-224)
- 그렇지 않으면(diff이 0과 같으면), 다음이 적용된다.
k = 0 (8-225)
a = 0 (8-226)
b = minC (8-227)
17. 방향성 인트라 예측의 절차에서는 0으로 분할하는 것을 회피해야 함이 제안된다.
a. 예를 들어, invAngle의 유도는 intraPredAngle이 0과 같은지 여부에 좌우될 수 있다.
b. JVET-P2001-v9에 기반한 예시적인 사양 변경은 다음과 같다.
8.4.5.2.12 INTRA_ANGULAR2..INTRA_ANGULAR66 인트라 예측 모드들의 사양
이 프로세스의 입력들은 다음과 같다.
- 인트라 예측 모드predModeIntra,
- 인트라 예측 참조 라인 인덱스를 명시하는 변수 refIdx,
- 변환 블록 너비를 명시하는 변수 nTbW,
- 변환 블록 높이를 명시하는 변수 nTbH,
- 참조 샘플 너비를 명시하는 변수 refW,
- 참조 샘플 높이를 명시하는 변수 refH,
- 코딩 블록 너비를 명시하는 변수 nCbW,
- 코딩 블록 높이를 명시하는 변수 nCbH,
- 참조 필터 플래그의 값을 명시하는 변수 refFilterFlag,
- 현재 블록의 색 성분을 명시하는 변수 cIdx,
- x = -1-refIdx, y = -1-refIdx..refH - 1, 및 x = -refIdx..refW - 1, y = -1-refIdx 인, 주변 샘플들 p[ x ][ y ]
이 프로세스의 출력들은 x = 0..nTbW - 1, y = 0..nTbH - 1인 예측된 샘플들 predSamples[ x ][ y ]이다.
변수 nTbS는 ( Log2 ( nTbW ) + Log2 ( nTbH ) )  >>  1과 같은 것으로 설정된다.
변수 filterFlag는 아래와 같이 유도된다.
- 아래 조건들 중 하나 또는 그 이상이 참이면, filterFlag는 0으로 설정된다.
- refFilterFlag가 1과 같다.
- refIdx가 0과 같지 않다.
- IntraSubPartitionsSplitType은 ISP_NO_SPLIT와 같지 않다.
그렇지 않으면, 다음이 적용된다.
- 변수 minDistVerHor는 Min( Abs( predModeIntra - 50 ), Abs( predModeIntra - 18 ) )와 같게 설정된다.
- 변수 intraHorVerDistThres[ nTbS ]는 데이블 8-7에 명시된다.
- 변수 filterFlag는 다음과 같이 유도된다.
- minDistVerHor가 intraHorVerDistThres[ nTbS ] 보다 크고 refFilterFlag가 0과 같은 경우, filterFlag는 1로 설정된다.
- 그렇지 않으면, filterFlag가 0으로 설정된다.
테이블 8-7 - 다양한 변환 블록 크기들 nTbS에 대한 intraHorVerDistThres[ nTbS ]의 사양
nTbS = 2 nTbS = 3 nTbS = 4 nTbS = 5 nTbS = 6 nTbS = 7
intraHorVerDistThres [ nTbS ] 24 14 2 0 0 0
테이블 8-8은 predModeIntra 와 각도 파라미터 intraPredAngle 사이의 매핑 테이블을 명시한다.
테이블 8-8 - intraPredAngle의 사양
Figure pct00019
역각도(inverse angle) 파라미터 invAngle은 다음과 같이 intraPredAngle을 기반으로 유도된다.
Figure pct00020
18. 루마 및/또는 크로마 샘플들에 대한 정수 샘플 클리핑 동작을 적용할지 여부 및/또는 어떻게 적용할지는 참조 픽처 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 너비 및/또는 높이 그리고 현재 블록 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 너비 및/또는 높이에 의존할 수 있다.
a. 일 예에서, 참조 픽처 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 너비 및/또는 높이가 현재 블록 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 너비 및/또는 높이와 같은 경우에만, 정수 샘플 클리핑 동작이 적용된다.
i. 또는, 더 나아가, 참조 픽처 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 너비 또는 높이가 현재 블록 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 그것과 다를 경우, 정수 샘플 클리핑 동작은 생략된다.
b. 또는, 루마 및/또는 크로마 샘플들에 대한 정수 샘플 클리핑 동작을 적용할지 여부 및/또는 어떻게 적용할지는 참조 픽처 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)와 현재 블록 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 그것 사이의 수평 및/또는 수직 스케일링 팩터에 의존할 수 있다.
i. 일 예에서, 참조 픽처 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)와 현재 블록 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 그것 사이의 수평 및/또는 수직 스케일링 팩터가 1과 같은 경우에만, 정수 샘플 클리핑 동작이 적용된다.
ii. 또는, 상기 수평 및/또는 수직 스케일링 팩터가 1과 같지 않은 경우, 정수 샘플 클리핑 동작은 생략된다.
c. 일 예에서, 수평 방향에 대한 정수 샘플 클리핑 동작은 참조 픽처 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 너비와 현재 블록 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 너비에 좌우된다.
i. 일 예에서, 수평 방향에 대한 정수 샘플 클리핑 동작은 참조 픽처 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)와 현재 블록 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 그것 사이의 수평 스케일링 팩터에 좌우된다.
d. 일 예에서, 수직 방향에 대한 정수 샘플 클리핑 동작은 참조 픽처 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 높이와 현재 블록 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 높이에 좌우된다.
i. 일 예에서, 수직 방향에 대한 정수 샘플 클리핑 동작은 참조 픽처 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)와 현재 블록 (또는 그것의 적합성 윈도우 또는 그것의 스케일링 윈도우)의 그것 사이의 수직 스케일링 팩터에 좌우된다.
e. JVET-P2001-v9에 기반한 예시적인 사양 변경은 다음과 같다.
8.5.6.3.2 루마 샘플 보간 필터링 프로세스
...
풀 샘플 유닛에서의 루마 위치들(xInti, yInti)은 i = 0..7에 대해 다음과 같이 유도된다.
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1이면, 다음이 적용된다.
xInti = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i - 3 ) (8-754)
yInti = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i - 3 ) (8-755)
- 그렇지 않으면 (subpic_treated_as_pic_flag[ SubPicIdx ]가 0이면), 다음이 적용된다.
Figure pct00021
hori_scale_fp가 (1<<14)과 같고 vert_scale_fp가 (1<<14와 같은 경우, 풀 샘플 유닛에서의 루마 위치들은 i = 0..7에 대해 다음과 같이 더 수정된다.
xInti = Clip3( xSbIntL - 3, xSbIntL + sbWidth + 4, xInti )
yInti = Clip3( ySbIntL - 3, ySbIntL + sbHeight + 4, yInti )
예측된 루마 샘플 값 predSampleLXL은 아래와 같이 유도된다.
- xFracL 및 yFracL이 모두 0이고 hori_scale_fp 및 vert_scale_fp가 모두 20481 미만인 경우, predSampleLXL의 값은 다음과 같이 유도된다.
predSampleLXL = refPicLXL[ xInt3 ][ yInt3 ] << shift3
...
8.5.6.3.4 크로마 샘플 보간 프로세스
...
hori_scale_fp가 (1<<14)와 같고, vert_scale_fp가 (1<<14)과 같은 경우, 풀 샘플 유닛에서의 크로마 위치들( xInti, yInti )은 i = 0..3에 대해 아래와 같이 더 수정된다.
xInti = Clip3( xSbIntC - 1, xSbIntC + sbWidth + 2, xInti ) (8-774)
yInti = Clip3( ySbIntC - 1, ySbIntC + sbHeight + 2, yInti ) (8-775)
...
f. JVET-P2001-v9에 기반한 다른 예시적인 사양 변경은 아래와 같다.
8.5.6.3.2 루마 샘플 보간 필터링 프로세스
...
풀 샘플 유닛에서의 루마 위치들(xInti, yInti)은 i = 0..7에 대해 다음과 같이 유도된다.
- subpic_treated_as_pic_flag[ SubPicIdx ]가 1인 경우, 다음이 적용된다.
xInti = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i - 3 ) (8-754)
yInti = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i - 3 ) (8-755)
- 그렇지 않으면(subpic_treated_as_pic_flag[ SubPicIdx ]가 0이면), 다음이 적용된다.
Figure pct00022
풀 샘플 유닛에서의 루마 위치들은 i = 0..7에 대해 다음과 같이 더 수정된다.
hori_scale_fp가 (1<<14)와 같고 vert_scale_fp가 (1<<14)와 같은 경우,
xInti = Clip3( xSbIntL - 3, xSbIntL + sbWidth + 4, xInti )
hori_scale_fp가 (1<<14)와 같고 vert_scale_fp가 (1<<14)와 같은 경우,
yInti = Clip3( ySbIntL - 3, ySbIntL + sbHeight + 4, yInti )
예측된 루마 샘플 값 predSampleLXL은 다음과 같이 유도된다.
- xFracL 및 yFracL 모두 0이고, hori_scale_fp 및 vert_scale_fp 모두 20481 미만인 경우, predSampleLXL의 값은 다음과 같이 유도된다.
predSampleLXL = refPicLXL[ xInt3 ][ yInt3 ] << shift3
...
8.5.6.3.4 크로마 샘플 보간 프로세스
...
풀 샘플 유닛에서의 크로마 위치들( xInti, yInti )은 i = 0..3에 대해 아래와 같이 더 수정된다.
hori_scale_fp가 (1<<14)와 같고, vert_scale_fp가 (1<<14)와 같은 경우,
xInti = Clip3( xSbIntC - 1, xSbIntC + sbWidth + 2, xInti ) (8-774)
hori_scale_fp가 (1<<14)와 같고, vert_scale_fp가 (1<<14)와 같은 경우,
yInti = Clip3( ySbIntC - 1, ySbIntC + sbHeight + 2, yInti ) (8-775)
...
19. 루마 및/또는 크로마 샘플들에 대한 정수 샘플 클리핑 동작을 적용할지 여부 및/또는 어떻게 적용할지는 코딩 툴 X가 적용되는지 여부(예를 들어, X는 디코더 측 모션 벡터 개선(DMVR: Decoder-side Motion Vector Refinement)에 의존할 수 있다.
a. 일 예에서, 정수 샘플 클리핑 동작은 코딩 툴 X가 적용되는 경우에만 적용된다.
b. 일 예에서, 정수 샘플 클리핑 동작은 코딩 툴 X가 적용되지 않는 경우에만 적용된다
도 3은 비디오 처리 장치(300)의 블록도이다. 장치(300)은 여기에 기재된 방법들 중 하나 또는 그 이상을 구현하는데 사용될 수 있다. 장치(300)은 스마트폰, 태블릿, 컴퓨터, 사물인터넷(IoT: Internet of Things) 수신기 등에서 구현될 수 있다. 장치(300)은 하나 이상의 프로세서(302), 하나 이상의 메모리(304) 및 비디오 처리 하드웨어(306)를 포함할 수 있다. 프로세서(들)(302)는 본 문서에 기재된 하나 또는 그 이상의 방법들을 구현하도록 구성될 수 있다. 메모리(메모리들)(304)는 여기에 기재된 방법들 및 기술들을 구현하는데 사용되는 데이터 및 코드를 저장하는데 사용될 수 있다. 비디오 처리 하드웨어(306)는 하드웨어 회로에서 본 문서에 기술된 일부 기술들을 구현하는데 사용될 수 있다. 일부 실시예에서, 하드웨어(306)은 그래픽 프로세서와 같은 프로세서들(302)에 부분적으로 또는 완전히 내장될 수 있다.
아래 해결수단들은 일부 실시예들에서 선호되는 해결수단들로 실행될 수 있다.
아래 해결수단들은 이전 섹션에서 열거된 항목들(예를 들어, 1항)에서 설명된 추가적인 기술들과 함께 실행될 수 있다.
1. 비디오 처리 방법으로서(예를 들어, 도 4에 도시된 방법 (400)), 비디오의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 현재 블록을 포함하는 현재 픽처의 해상도가 상기 변환을 위해 사용되는 참조 픽처와 다름을 판단하는 단계(402), 그리고 상기 판단을 기반으로 상기 변환을 실시하여(404) 상기 현재 블록의 샘플들의 그룹의 예측된 값들이 수평 또는 수직 보간 필터를 사용하여 생성되도록 하는 단계를 포함하는, 비디오 처리 방법.
2. 해결수단 1에 있어서, 샘플들의 상기 그룹은 상기 현재 블록의 모든 샘플들에 해당하는 비디오 처리 방법.
3. 해결수단 1에 있어서, 샘플들의 상기 그룹은 상기 현재 블록의 일부 샘플들에 해당하는 비디오 처리 방법.
4. 해결수단 3에 있어서, 샘플들의 상기 그룹은 상기 현재 블록 내의 영역의 모든 샘플들에 해당하는 비디오 처리 방법.
5. 해결수단 1 내지 해결수단 4 중 어느 것에 있어서, 샘플들의 상기 그룹은 상기 변환 동안 사용되는 동일한 모션 벡터(MV)를 가지도록 선택되는 비디오 처리 방법.
6. 해결수단 1 내지 해결수단 4 중 어느 것에 있어서, 샘플들의 상기 그룹은 동일한 수평 모션 벡터 구성요소를 가지는 비디오 처리 방법.
7. 해결수단 1 내지 해결수단 4 중 어느 것에 있어서, 샘플들의 상기 그룹은 동일한 수직 모션 벡터 구성요소를 가지는 비디오 처리 방법.
8. 해결수단 1 내지 해결수단 4 중 어느 것에 있어서, 샘플들의 상기 그룹은 동일한 분수 수평 모션 벡터 구성 부분을 가지는 비디오 처리 방법.
9. 해결수단 1 내지 해결수단 4 중 어느 것에 있어서, 샘플들의 상기 그룹은 동일한 분수 수직 모션 벡터 구성 부분을 가지는 비디오 처리 방법.
10. 해결수단 1 내지 해결수단 9 중 어느 것에 있어서, 상기 변환 동안, 특정한 샘플에 대한 모션 벡터가 상기 현재 블록의 해상도 및 상기 참조 블록의 해상도에 기반하여 유도된 모션 벡터의 값을, 절단(truncating), 클리핑 또는 반올림(rounding)을 포함하는, 수정 단계로 수정하여 유도되는 비디오 처리 방법.
11. 해결수단 1 내지 해결수단 7 중 어느 것에 있어서, 상기 변환 동안, 특정 샘플에 대한 모션 벡터는 샘플들의 상기 그룹 내의 모든 샘플들에 의해 공유되는 공유된 모션 벡터의 값으로 설정되는 비디오 처리 방법.
12. 해결수단 1 내지 해결수단 9 중 어느 것에 있어서, 샘플들의 상기 그룹은 상기 변환 동안 공유된 모션 벡터를 공유하고, 상기 공유된 모션 벡터는 샘플들의 상기 그룹 내의 하나 또는 그 이상의 샘플들의 모션 벡터들로부터 유도되는 비디오 처리 방법.
13. 해결수단 11에 있어서, 상기 공유된 모션 벡터는 가상 샘플로부터 더 유도되는 비디오 처리 방법.
아래 해결수단들은 이전 섹션에서 열거된 항목들(예를 들어, 5항)에서 설명된 추가적인 기술들과 함께 실행될 수 있다.
14. 비디오 처리 방법으로서, 비디오의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 현재 블록을 포함하는 현재 픽처의 해상도가 상기 변환을 위해 사용되는 참조 픽처와 다름을 판단하는 단계, 그리고 상기 판단을 기반으로 상기 변환을 실시하여 상기 현재 블록의 샘플들의 그룹의 예측된 값들이 상기 참조 픽처 내의 영역의 샘플율(sample rate) 변경에 의해 생성되는 가상 참조 블록의 보간된(interpolated) 버전으로 생성되도록 하는 단계를 포함하되, 상기 샘플율 변경은 상기 현재 픽처 또는 상기 참조 픽처의 너비 또는 높이에 의존하는 비디오 처리 방법.
15. 해결수단 14에 있어서, 상기 보간된 버전은 계수들이 상기 현재 픽처 또는 상기 참조 픽처의 상기 높이 또는 상기 너비에 의존하지 않는 보간 필터를 사용하여 생성되는 비디오 처리 방법.
아래 해결수단들은 이전 섹션에서 열거된 항목들(예를 들어, 6항)에서 설명된 추가적인 기술들과 함께 실행될 수 있다.
16. 비디오 처리 방법으로서, 비디오의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 현재 블록을 포함하는 현재 픽처의 해상도가 상기 변환을 위해 사용되는 참조 픽처와 다름을 판단하는 단계, 상기 판단을 기반으로, 상기 현재 픽처 또는 상기 참조 픽처의 높이 또는 너비에 의존하는 방식(scheme)에 기반하는 참조 샘플 패딩을 위한 경계 블록의 좌 상단 좌표를 유도하는 단계, 그리고 상기 경계 블록의 상기 유도된 좌 상단 좌표를 사용하여 상기 변환을 실시하는 단계를 포함하는 비디오 처리 방법.
17. 해결수단 16에 있어서, 상기 방식은 아래와 같이 정수 샘플 위치들에 있는 루마 샘플들을 계산하는 단계를 포함하되,
xInti = Clip3( xSbIntL - Dx, xSbIntL + sbWidth + Ux, xInti ),
yInti = Clip3( ySbIntL - Dy, ySbIntL + sbHeight + Uy, yInti ),
Dx 및/또는Dy 및/또는 Ux 및/또는 Uy는 상기 현재 픽처 또는 상기 참조 픽처의 상기 너비 및/또는 상기 높이에 의존하고, (xSbIntL, ySbIntL)는 상기 좌 상단 좌표인 비디오 처리 방법.
18. 해결수단 16에 있어서, 상기 방식은 아래와 같이 정수 샘플 위치들에 있는 크로마 샘플들을 계산하는 단계를 포함하되,
xInti = Clip3( xSbIntC - Dx, xSbIntC + sbWidth + Ux, xInti )
yInti = Clip3( ySbIntC - Dy, ySbIntC + sbHeight + Uy, yInti )
Dx 및/또는Dy 및/또는 Ux 및/또는 Uy는 상기 현재 픽처 또는 상기 참조 픽처의 상기 너비 및/또는 상기 높이에 의존하고, (xSbIntL, ySbIntL)는 상기 좌 상단 좌표인 비디오 처리 방법.
아래 해결수단들은 이전 섹션에서 열거된 항목들(예를 들어, 7항)에서 설명된 추가적인 기술들과 함께 실행될 수 있다.
19. 비디오 처리 방법으로서, 비디오의 현재 픽처 내의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 현재 블록의 상기 변환 동안 디코더 측 모션 벡터 개선(DMVR)의 사용에 기반하여, 참조 샘플 패딩을 위한 경계 블록에 따른 모션 벡터 계산에 적용되는 클리핑 동작을 결정하는 단계 및 상기 클리핑 동작에 기반하여 상기 변환을 실시하는 단계를 포함하는 비디오 처리 방법.
20. 해결수단 19에 있어서, 상기 판단 단계는 상기 DMVR가 상기 현재 블록에 대해 사용됨으로 인해 레거시(legacy) 클리핑 동작을 활성화시키는 비디오 처리 방법.
21. 해결수단 19 내지 해결수단 20 중 어느 것에 있어서, 상기 현재 블록은 크로마 블록인 비디오 처리 방법.
아래 해결수단들은 이전 섹션에서 열거된 항목들(예를 들어, 8항)에서 설명된 추가적인 기술들과 함께 실행될 수 있다.
22. 비디오 처리 방법으로서, 비디오의 현재 픽처 내의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환에 대해, 상기 변환에 픽처 래핑(wrapping)의 사용에 기반하여, 참조 샘플 패딩을 위한 경계 블록에 따른 모션 벡터 계산에 적용되는 클리핑 동작을 결정하는 단계 및 상기 클리핑 동작에 기반하여 상기 변환을 실시하는 단계를 포함하는 비디오 처리 방법.
23. 해결수단 22에 있어서, 상기 픽처 래핑이 상기 현재 블록에 대해 비활성화되는 경우에만, 상기 판단 단계가 레거시 클리핑 동작을 활성화시키는 비디오 처리 방법.
24. 해결수단 22 내지 해결수단 23 중 어느 것에 있어서, 상기 현재 블록은 크로마 블록인 비디오 처리 방법.
25. 해결수단 22 내지 해결수단 23 중 어느 것에 있어서, 상기 클리핑 동작은 아래와 같이 루마 샘플들을 계산하기 위해 사용되되,
xInti = Clip3( xSbIntL - Dx, xSbIntL + sbWidth + Ux, xInti ),
yInti = Clip3( ySbIntL - Dy, ySbIntL + sbHeight + Uy, yInti ),
Dx 및/또는Dy 및/또는 Ux 및/또는 Uy는 픽처 래핑의 상기 사용에 의존하고, (xSbIntL, ySbIntL)은 상기 경계 블록을 나타내는 비디오 처리 방법.
26. 해결수단 1 내지 해결수단 25 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 코딩된 표현으로 인코딩하는 단계를 포함하는 비디오 처리 방법.
27. 해결수단 1 내지 해결수단 25 중 어느 것에 있어서, 상기 변환은 상기 비디오의 픽셀 값들을 생성하기 위해 상기 코딩된 표현을 디코딩하는 단계를 포함하는 비디오 처리 방법.
28. 비디오 디코딩 장치로서, 해결수단 1 내지 해결수단 27 중 하나 또는 그 이상에서 기술된 방법을 실행하는 프로세서를 포함하는 비디오 디코딩 장치.
29. 비디오 인코딩 장치로서, 해결수단 1 내지 해결수단 27 중 하나 또는 그 이상에서 기술된 방법을 실행하는 프로세서를 포함하는 비디오 인코딩 장치.
30. 컴퓨터 코드를 내장하는 컴퓨터 프로그램 제품으로, 상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서가 해결수단 1 내지 해결수단 27 중 어느 것에서 기술된 방법을 실시하도록 하는 컴퓨터 프로그램 제품.
31. 본 문서에 설명된 방법, 장치 또는 시스템.
도 6은 본 개시의 기술들을 활용할 수 있는 예시적인 비디오 코딩 시스템(100)을 도시하는 블록도이다.
도 6에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 디바이스(110) 및 목적지 디바이스(120)를 포함할 수 있다. 소스 디바이스(110)는 인코딩된 비디오 데이터를 생성시키며, 비디오 인코딩 디바이스로 불릴 수 있다. 목적지 디바이스(120)는 소스 디바이스(110)에 의해 생성된 상기 인코딩된 비디오 데이터를 디코딩 할 수 있으며, 비디오 디코딩 디바이스로 불릴 수 있다.
소스 디바이스(110)는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)를 포함할 수 있다.
비디오 소스(112)는 비디오 캡처 디바이스, 비디오 콘텐트 제공기로부터 비디오 데이터를 수신하기 위한 인터페이스, 그리고/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템과 같은 소스, 또는 이러한 소스들의 조합을 포함할 수 있다. 상기 비디오 데이터는 하나 또는 그 이상의 픽처들을 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)로부터의 상기 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 상기 비트스트림은 상기 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스를 포함할 수 있다. 상기 비트스트림은 코딩된 픽처들 및 연관된 데이터를 포함할 수 있다. 코딩된 픽처는 픽처의 코딩된 표현이다. 상기 연관된 데이터는 시퀀스 파라미터 세트들, 픽처 파라미터 세트들 및 기타 신택스 구조들을 포함할 수 있다. I/O 인터페이스(116)는 변조기/복조기 (모뎀) 및/또는 송신기를 포함할 수 있다. 인코딩된 비디오 데이터는 네트워크(130a)를 통해 I/O 인터페이스(116)를 거쳐 목적지 디바이스(120)로 직접 전송될 수 있다. 상기 인코딩된 비디오 데이터는 또한 목적지 디바이스(120)에 의한 접속을 위해 스토리지 매체/서버(130b)에 저장될 수 있다.
목적지 디바이스(120)는 I/O 인터페이스(126), 비디오 디코더(124) 및 디스플레이 디바이스(122)를 포함할 수 있다.
I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 디바이스(110) 또는 스토리지 매체/서버(130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 상기 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 디바이스(122)는 상기 디코딩된 비디오 데이터를 사용자에게 보여줄 수 있다. 디스플레이 디바이스(122)는 목적지 디바이스(120)와 통합될 수 있거나 또는 외부 디스플레이 디바이스와 접속하도록 구성될 목적지 디바이스(120)의 외부에 있을 수 있다.
비디오 인코더(114) 및 비디오 디코더(124)는 HEVC(고효율 비디오 코딩) 표준, VVC(다기능 비디오 코딩) 표준 및 기타 현행 및/또는 추가 표준들과 같은 비디오 압축 표준에 따라 작동할 수 있다.
도 7은 도 6에 도시된 시스템(100) 내의 비디오 인코더(112)일 수 있는 비디오 인코더(200)의 일 예를 도시하는 블록도이다.
비디오 인코더(200)는 본 개시의 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다. 도 7의 예에서, 비디오 인코더(200)는 복수의 기능적 구성요소들을 포함한다. 본 개시에서 설명되는 기술들은 비디오 인코더(200)의 다양한 구성요소들 사이에 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에서 설명되는 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다.
비디오 인코더(200)의 기능적 구성요소들은 분할부(201), 모드 선택부(203), 모션 추정부(204), 모션 보상부(205) 및 인트라 예측부(206)를 포함할 수 있는 예측부(202), 잔차 생성부(207), 변환부(208), 양자화부(209), 역양자화부(210), 역변환부(211), 복원부(212), 버퍼(213), 그리고 엔트로피 인코딩부(214)를 포함할 수 있다.
다른 예들에서, 비디오 인코더(200)는 더 많은 수의, 적은 수의 또는 상이한 기능적 구성요소들을 포함할 수 있다. 일 예에서, 상기 예측부는 인트라 블록 카피(IBC) 유닛을 포함한다. 상기 IBC 유닛은 적어도 하나의 참조 픽처가 현재 비디오 블록이 위치하는 픽처인 IBC 모드로 예측을 수행할 수 있다.
더 나아가, 모션 추정부(204) 및 모션 보상부(205)와 같은 몇몇 구성요소들은 고도로 통합될 수 있지만, 설명의 목적을 위해 도7의 예에서는 별개로 도시되었다.
분할부(201)는 픽처를 하나 또는 그 이상의 비디오 블록들로 분할할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기들을 지원할 수 있다.
모드 선택부(203)는 예를 들어 오류 결과들에 기반하여, 인터 또는 인트라 코딩 모드들 중 하나를 선택할 수 있으며, 그 결과로 인트라 또는 인터 코딩된 블록을 잔차 생성부(207)에 제공하여 잔차 블록 데이터를 생성하도록 하고, 복원부(212)에 제공하여 인코딩된 블록을 참조 픽처로 사용하기 위해 복원하도록 할 수 있다. 몇몇 예들에서, 모드 선택부(203)는 예측이 인트라 예측 신호 및 인터 예측 신호에 기반하는 인트라 인터 결합 예측(CIIP) 모드를 선택할 수 있다. 모드 선택부(203)는 또한 화면내 예측의 경우 블록에 대한 모션 벡터를 위한 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다.
현재 비디오 블록에서 인터 예측을 실시하기 위해, 모션 추정부(204)는 버퍼(213)에서부터 상기 현재 비디오 블록까지 하나 또는 그 이상의 참조 프레임들을 비교하여 상기 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상부(205)는 상기 모션 정보 및 버퍼(213)로부터 상기 현재 블록에 관련된 픽처가 아닌 픽처들(예를 들어, 참조 픽처들)의 디코딩된 샘플들에 기반하여 상기 현재 비디오에 대한 예측 비디오 블록을 결정할 수 있다.
모션 추정부(204) 및 모션 보상부(205)는 현재 비디오 블록에 대해, 예를 들어 상기 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 의존하여, 상이한 동작들을 실시할 수 있다.
일부 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 단방향(uni-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0 또는 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록을 포함하는 리스트 0 또는 리스트 0에서 참조 픽처를 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록 사이의 공간적 이동(displacement)을 지시하는 모션 벡터를 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스, 예측 방향 지시자 그리고 상기 모션 벡터를 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
다른 예들에서, 모션 추정부(204)는 현재 비디오 블록에 대해 양방향(bi-directional) 예측을 실시할 수 있으며, 모션 추정부(204)는 현재 비디오 블록을 위한 참조 비디오 블록에 대해 리스트 0의 참조 픽처들을 탐색할 수 있고, 현재 비디오 블록을 위한 다른 참조 비디오 블록에 대해 리스트 1의 참조 픽처들을 탐색할 수 있다. 그리고 나서, 모션 추정부(204)는 참조 비디오 블록들을 포함하는 리스트 0 또는 리스트 0에서 참조 픽처들을 지시하는 참조 인덱스를 그리고 상기 현재 비디오 블록과 상기 참조 비디오 블록들 사이의 공간적 이동들(displacements)을 지시하는 모션 벡터들을 생성할 수 있다. 모션 추정부(204)는 상기 참조 인덱스들 및 상기 현재 비디오 블록의 상기 모션 벡터들을 상기 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상부(205)는 상기 현재 비디오 블록의 상기 모션 정보에 의해 지시되는 상기 참조 비디오 블록들에 기반하여 상기 현재 블록의 예측 비디오 블록을 생성할 수 있다.
일부 예들에서, 모션 추정부(204)는 상기 현재 비디오에 대한 모션 정보의 풀 세트를 예를 들어 엔트로피 인코딩부(214)로 출력하지 않는다. 오히려, 모션 추정부(204)는 다른 비디오 블록의 모션 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정부(204)는 현재 비디오 블록의 모션 정보가 주변 비디오 블록의 모션 정보와 충분히 유사하다고 판단할 수 있다.
일 예에서, 모션 추정부(204)는, 현재 비디오 블록과 관련된 신택스 구조에서, 현재 비디오 블록이 상기 다른 비디오 블록과 동일한 모션 정보를 가지고 있다는 것을 비디오 디코더(300)에게 지시하는 값을 지시할 수 있다.
다른 예에서, 모션 추정부(204)는, 현재 비디오 블록과 관련된 신택스 구조에서, 상기 다른 비디오 블록 및 모션 벡터 차분(MVD: motion vector difference)을 식별할 수 있다. 상기 모션 벡터 차분은 현재 비디오 블록과 상기 지시되는 비디오 블록의 모션 벡터 사이의 차분을 지시한다. 비디오 디코더(300)는 상기 지시되는 비디오 블록의 모션 벡터 및 상기 모션 벡터 차분을 이용하여 현재 비디오 블록의 모션 벡터를 결정할 수 있다.
위에서 논의된 것처럼, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 실시될 수 있는 예측적 시그널링 기술들의 두 가지 예에는 향상된 모션 벡터 예측(AMVP: advanced motion vector prediction)과 머지 모드 시그널링이 있다.
인트라 예측부(206)는 현재 비디오 블록에 대해 인트라 예측을 실시할 수 있다. 인트라 예측부(206)가 현재 비디오 블록에 대해 인트라 예측을 실시하는 경우, 인트라 예측부(206)는 동일한 픽처 내의 다른 비디오 블록들의 디코딩된 샘플들에 기반하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 상기 예측 데이터는 예측된 비디오 블록 및 다양한 신택스 요소들을 포함할 수 있다.
잔차 생성부(207)는 현재 비디오 블록에서 현재 비디오 블록의 예측된 비디오 블록(들)을 감산하여(예를 들어, 마이너스 기호로 지시) 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 상기 잔차 데이터는 현재 비디오 블록의 샘플들의 상이한 샘플 구성요소들에 해당하는 잔차 비디오 블록들을 포함할 수 있다.
다른 예들에서, 가령 스킵 모드에서, 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있으며, 잔차 생성부(207)는 감산 연산을 실시하지 않을 수 있다.
변환 처리부(208)는 하나 또는 그 이상의 변환들을 현재 비디오 블록과 연관된 잔차 비디오 블록에 적용하여 현재 비디오 블록에 대한 하나 또는 그 이상의 변환 계수 비디오 블록들을 생성할 수 있다.
변환 처리부(208)가 현재 비디오 블록과 관련된 변환 계수 비디오 블록을 생성한 후, 양자화부(209)는 현재 비디오 블록과 관련된 양자화 파라미터(QP: quantization parameter) 값에 기반하여 현재 비디오 블록과 관련된 상기 변환 계수 비디오 블록을 양자화 할 수 있다.
역양자화부(210) 및 역변환부(211)는 역양자화 및 역변환을 상기 변환 계수 비디오 블록에 각각 적용하여 상기 변환 계수 비디오 블록으로부터 잔차 비디오 블록을 복원할 수 있다. 복원부(202)는 상기 복원된 잔차 비디오 블록을 예측부(202)에 의해 생성된 하나 또는 그 이상의 예측된 비디오 블록들부터 해당하는 샘플들에 더하여 버퍼(213)에 저장하기 위해 현재 블록과 관련된 복원 비디오 블록을 생성할 수 있다.
복원부(212)가 상기 비디오 블록을 복원한 후에, 루프 필터링 작업이 상기 비디오 블록에서 비디오 블로킹 아티팩트들을 감소시키기 위해 실시될 수 있다.
엔트로피 인코딩부(214)는 비디오 인코더(200)의 다른 기능적 구성요소들로부터 데이터를 수신할 수 있다. 엔트로피 인코딩부(214)가 상기 데이터를 수신할 때, 엔트로피 인코딩부(214)는 하나 또는 그 이상의 엔트로피 인코딩 작업들을 실시하여 엔트로피 인코딩된 데이터를 생성하고 상기 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력할 수 있다.
도 8은 도 6에 도시된 시스템(100) 내의 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 일 예를 도시하는 블록도이다. 비디오 디코더(300)는 본 개시의 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다. 도 8의 예에서, 비디오 디코더(300)는 복수의 기능적 구성요소들을 포함한다. 본 개시에서 설명되는 기술들은 비디오 디코더(300)의 다양한 구성요소들 사이에 공유될 수 있다. 일부 예들에서, 프로세서는 본 개시에서 설명되는 기술들 중 어느 하나 또는 전부를 실시하도록 구성될 수 있다.
도 8의 예에서, 비디오 디코더(300)는 엔트로피 디코딩부(301), 모션 보상부(302), 화면내 예측부(303), 역양자화부(304), 역변환부(305), 복원부(306), 그리고 버퍼(307)를 포함한다. 일부 예들에서, 비디오 디코더(300)는 비디오 인코더(200)(도 7)와 관련하여 설명된 인코딩 패스에 일반적으로 상반된 디코딩 패스를 실시할 수 있다.
엔트로피 디코딩부(301)는 인코딩된 비트스트림을 검색할 수 있다. 상기 인코딩된 비트스트림은 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록들)을 포함할 수 있다. 엔트로피 디코딩부(301)는 상기 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있으며, 엔트로피 디코딩된 비디오 데이터로부터, 모션 보상부(302)는 모션 벡터들, 모션 벡터 정밀도 및 참조 픽처 리스트 인덱스들을 포함하는 모션 정보 및 기타 모션 정보를 결정할 수 있다. 예를 들어, 모션 보상부(302)는 AMVP 및 머지 모드를 실행하여 이러한 정보를 결정할 수 있다.
모션 보상부(302)는 모션 벡터들 및/또는 상기 비트스트림에서 수신된 MVD들을 사용하여 버퍼(307) 내의 참조 픽처에서 예측 비디오 블록을 식별할 수 있다.
모션 보상부(302)는 가능한 경우 보간 필터들에 기반한 보간을 실시하여 움직임 보상된 블록들을 산출할 수 있다. 서브 픽셀 정밀도와 함께 사용될 보간 필터들에 대한 식별자들은 신택스 요소들에 포함될 수 있다.
모션 보상부(302)는 비디오 인코더(200)가 비디오 블록의 인코딩 동안 사용한 것과 같이 보간 필터들을 사용하여 참조 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다. 모션 보상부(302)는 비디오 인코더(200)가 사용한 상기 보간 필터들을 수신된 신택스 정보에 따라 결정할 수 있으며, 상기 보간 필터들을 사용하여 예측적 블록들을 생성할 수 있다.
모션 보상부(302)는 인코딩된 비디오 시퀀스의 프레임(들) 및/또는 슬라이스(들)을 인코딩 하는 데에 사용된 블록들의 크기들을 판단하기 위한 신택스 정보, 인코딩된 비디오 시퀀스의 픽처의 각 매크로블록이 어떻게 분할되는지를 기술하는 분할 정보, 각 파티션이 어떻게 인코딩되는지를 지시하는 모드들, 각각의 인터 인코딩된 블록에 대한 하나 또는 그 이상의 참조 프레임들 (및 참조 프레임 리스트들), 그리고 인코딩된 비디오 시퀀스를 디코딩하기 위한 기타 정보를 이용할 수 있다.
화면내 예측부(303)는 공간적으로 인접한 블록들로부터 예측 블록을 형성하기 위해 예를 들어 비트스트림에서 수신된 화면내 예측 모드들을 이용할 수 있다. 역양자화부(303)는 비트스트림에서 제공되며 엔트로피 디코딩부(301)에 의해 디코딩된 양자화된 비디오 블록 계수들을 역 양자화(즉 양자화 해제)한다.
역변환부(305)는 역변환을 적용한다.
복원부(306)는 모션 보상부(202) 또는 인트라 예측부(303)에 의해 생성된 해당 예측 블록들과 잔차 블록들을 합산하여 디코딩된 블록들을 형성할 수 있다. 요구되는 경우, 디블로킹 필터 또한 블록화 아티팩트(blockiness artifacts)를 제거하기 위해 디코딩된 블록들의 필터링에 적용될 수 있다. 그리고 나서, 디코딩된 비디오 블록들은 버퍼(307)에 저장되며, 버퍼는 후속 모션 보상을 위한 참조 블록들을 제공하고 디스플레이 디바이스 상에서 제공할 디코딩된 비디오를 생성하기도 한다.
상기 해결수단들에서, 상기 변환을 수행하는 단계는 상기 인코딩 또는 디코딩 동작 동안 이전의 결정 단계의 결과들을 사용하여 변환 결과에 도달하는 단계를 포함할 수 있다.
개시된 기술적 해결수단들의 일부 선호되는 실시예들이 아래에 설명된다. 이러한 해결수단들의 추가적인 세부 사항들은 예를 들어 이전 섹션의 14항을 포함하여 본 문서 전체에 걸쳐 기술된다.
1. 비디오 처리 방법으로서(예를 들어, 도 9에 도시된 방법(900)), 비디오의 현재 픽처의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고, 상기 코딩된 표현은 포맷 규칙에 기반하고, 상기 포맷 규칙은 상기 비디오 블록에 대한 예측 블록을 결정하기 위해 참조 픽처에 적용되는 랩어라운드 클리핑 동작에 관한 하나 또는 그 이상의 신택스 요소들을 선택적으로 포함할 것을 명시하며, 상기 랩어라운드 클리핑 동작은 모션 벡터가 상기 참조 픽처 내에서 경계 블록 외부의 샘플들을 가리키는 경우 상기 참조 픽처 내의 샘플들을 다시 선택하기 위해 사용되는, 비디오 처리 방법.
2. 해결수단 1에 있어서, 상기 포맷 규칙은 상기 하나 또는 그 이상의 신택스 요소들 중 어느 한 신택스 요소가 픽처 파라미터 세트(PPS)에 포함됨을 명시하는, 비디오 처리 방법.
3. 해결수단 2에 있어서, 상기 포맷 규칙은 상기 PPS에 포함된 상기 신택스 요소가 상기 랩어라운드 클리핑 동작이 수평 방향으로 활성화되는지 여부를 지시함을 명시하는, 비디오 처리 방법.
4. 해결수단 3에 있어서, 상기 신택스 요소의 값 "1"은 상기 랩어라운드 클리핑 동작이 수평 방향으로 활성화됨을 지시하고, 상기 신택스 요소의 값 "0"은 상기 랩어라운드 클리핑 동작이 수평 방향으로 비활성화됨을 지시하는, 비디오 처리 방법.
5. 해결수단 1에 있어서, 상기 규칙은 제1 신택스 요소를 제1 비디오 유닛 레벨에, 제2 비디오 신택스 요소를 상기 랩어라운드 클리핑 동작이 활성화되는지 여부를 지시하는 제2 유닛 레벨에 포함할 것을 명시하는, 비디오 처리 방법.
6. 해결수단 5에 있어서, 상기 제2 신택스 요소는 상기 제1 신택스 요소를 참조하는, 비디오 처리 방법.
7. 해결수단 5 내지 해결수단 6 중 어느 것에 있어서, 상기 제1 신택스 요소 및/또는 상기 제2 신택스 요소 신호는 상기 랩어라운드 클리핑 동작이 현재 블록에 대해 활성화되는지 여부를 지시하는, 비디오 처리 방법.
8. 해결수단 5 내지 해결수단 7 중 어느 것에 있어서, 상기 포맷 규칙은 상기 제2 신택스 요소의 값이 상기 제1 신택스 요소의 값에 의존한다고 명시하는, 비디오 처리 방법.
9. 해결수단 8에 있어서, 상기 포맷 규칙은, 상기 제1 신택스 요소가 상기 랩어라운드 클리핑 동작이 비활성화되었음을 지시하는 경우, 상기 제2 신택스 요소 또한 상기 랩어라운드 클리핑 동작이 비활성화되었음을 지시한다고 명시하는, 비디오 처리 방법.
10. 해결수단 1 내지 해결수단 2 중 어느 것에 있어서, 상기 포맷 규칙은 상기 랩어라운드 클리핑 동작에 대해 사용되는 오프셋을 지시하는 신택스 요소를 포함할 것을 명시하는, 비디오 처리 방법.
11. 해결수단 1에 있어서, 상기 포맷 규칙은 상기 하나 또는 그 이상의 신택스 요소들이 상기 랩어라운드 클리핑 동작이 활성화되는지 여부를 지시하는 제1 신택스 요소 및 상기 랩어라운드 클리핑 동작의 활성화에 의존하여 조건적으로 포함되는 제2 신택스 요소를 포함한다는 것을 명시하는, 비디오 처리 방법.
12. 해결수단 11에 있어서, 상기 제2 신택스 요소는 상기 제1 신택스 요소의 값이 1인 경우 상기 코딩된 표현에 조건적으로 포함되는, 비디오 처리 방법.
13. 해결수단 5 내지 해결수단 9 중 어느 것에 있어서, 상기 제1 비디오 유닛 레벨은 비디오 시퀀스 레벨이고 상기 제1 신택스 요소는 시퀀스 파라미터 세트에 포함되는, 비디오 처리 방법.
14. 해결수단 5 내지 해결수단 9 또는 해결수단 13 중 어느 것에 있어서, 상기 제2 비디오 유닛 레벨은 비디오 픽처 레벨 또는 비디오 슬라이스 레벨인, 비디오 처리 방법.
15. 해결수단 5 내지 해결수단 9 또는 해결수단 13 중 어느 것에 있어서, 상기 제2 신택스 요소는 픽처 파라미터 세트 또는 슬라이스 헤더 또는 픽처 헤더 또는 적응 파라미터 세트에 있는, 비디오 처리 방법.
16. 해결수단 5 내지 해결수단 9 중 어느 것에 있어서, 상기 제1 신택스 요소 및/또는 상기 제2 신택스 요소는 상기 랩어라운드 클리핑 동작을 위해 사용될 랩어라운드 오프셋의 양을 시그널링하는, 비디오 처리 방법.
17. 해결수단 8 내지 해결수단 16 중 어느 것에 있어서, 상기 포맷 규칙은 상기 제1 신택스 요소 및 상기 제2 신택스 요소들이 서로 같다고 명시하는, 비디오 처리 방법.
18. 해결수단 8 내지 해결수단 16 중 어느 것에 있어서, 상기 포맷 규칙은, 상기 제1 신택스 요소가 상기 랩어라운드 클리핑 동작이 활성화되는 것을 지시하는 경우, 상기 제2 신택스 요소는 상기 랩어라운드 클리핑 동작이 활성화됨을 지시하는 제1 값 또는 상기 랩어라운드 클리핑 동작이 비활성화됨을 지시하는 제2값을 가지도록 허용됨을 명시하는, 비디오 처리 방법.
19. 해결수단 5 내지 해결수단 18 중 어느 것에 있어서, 상기 포맷 규칙은, 상기 제1 신택스 요소와 상기 제2 신택스 요소가 모두 상기 코딩된 표현에 포함되는 경우, 현재 블록을 상기 코딩된 표현으로부터 디코딩하는 동안 상기 제1 신택스 요소의 상기 값이 무시된다고 명시하는, 비디오 처리 방법.
20. 해결수단 7 내지 해결수단 17 중 어느 것에 있어서, 상기 포맷 규칙은, 상기 제1 신택스 요소와 상기 제2 신택스 요소가 모두 상기 코딩된 표현에 포함되는 경우, 현재 블록을 상기 코딩된 표현으로부터 디코딩하는 동안 상기 제2 신택스 요소의 상기 값이 무시된다고 명시하는, 비디오 처리 방법.
21. 해결수단 7 내지 해결수단 20 중 어느 것에 있어서, 상기 포맷 규칙은, 상기 제1 신택스 요소의 값 및/또는 상기 제2 신택스 요소의 값이 상기 현재 블록의 코딩 트리 블록과 연관된 제1 크기 및 상기 현재 블록을 포함하는 상기 현재 픽처의 너비와 연관된 제2 크기에 의존한다고 명시하는, 비디오 처리 방법.
22. 해결수단 20에 있어서, 상기 제1 크기가 (CtbSizeY / MinCbSizeY + Offset1)과 같고, CtbSizeY는 상기 코딩 트리 블록의 높이 또는 너비이고 MinCbSizeY는 상기 변환에서 코딩 블록들에 대해 허용되는 최소 크기를 지시하고, Offset1은 정수이며, 그리고 상기 제2 크기는 (pic_width_in_luma_samples / MinCbSizeY - Offset2)와 같으며, 여기서 pic_width_in_luma_samples는 픽처 파라미터 세트에서 지시되는 루마 샘플들 내의 상기 현재 픽처의 너비를 지시하고, Offset2는 다른 정수인, 비디오 처리 방법.
23. 해결수단 21에 있어서, 상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 크지 않음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
24. 해결수단 21에 있어서, 상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 작지 않거나 같음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
25. 해결수단 21에 있어서, 상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 작지 않음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
26. 해결수단 21에 있어서, 상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 크거나 같음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
27. 해결수단 21 내지 해결수단 26 중 어느 것에 있어서, 상기 픽처 파라미터 세트는 상기 현재 픽처에 적용가능한 시퀀스 파라미터 세트를 참조하는, 비디오 처리 방법.
28. 해결수단 21에 있어서, 상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 큼으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
29. 해결수단 21에 있어서, 상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 작지 않거나 같음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
30. 해결수단 21에 있어서, 상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 작지 않음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
31. 해결수단 21에 있어서, 상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 크지 않거나 같음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
32. 해결수단 22 내지 해결수단 31 중 어느 것에 있어서, offset2 = offset1 = 1인, 비디오 처리 방법.
33. 해결수단 1에 있어서, 상기 포맷 규칙은 상기 신택스 요소가 적응 파라미터 세트에 포함된다고 명시하는, 비디오 처리 방법.
34. 해결수단 1에 있어서, 상기 포맷 규칙은 상기 신택스 요소가 상기 현재 픽처의 헤더 필드 또는 상기 현재 블록을 포함하는 현재 슬라이스에 포함된다고 명시하는, 비디오 처리 방법.
35. 해결수단 1에 있어서, 상기 포맷 규칙은 상기 신택스 요소가 픽처 레벨 또는 뷰 레벨 또는 슬라이스 레벨 또는 타일 레벨 또는 브릭 레벨 또는 서브 픽처 레벨 또는 코딩 트리 유닛 레벨에 포함된다고 명시하는, 비디오 처리 방법.
36. 해결수단 1 내지 해결수단 35 중 어느 것에 있어서, 상기 변환은 상기 비디오를 상기 코딩된 표현으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
37. 해결수단 1 내지 해결수단 35 중 어느 것에 있어서, 상기 변환은 상기 비디오의 픽셀 값들을 생성시키기 위해 상기 코딩된 표현을 디코딩하는 단계를 포함하는, 비디오 처리 방법.
38. 비디오 디코딩 장치로, 해결수단 1 내지 해결수단 37 중 하나 또는 그 이상에서 기술된 방법을 수행하는 프로세서를 포함하는 비디오 디코딩 장치.
39. 비디오 인코딩 장치로, 해결수단 1 내지 해결수단 37 중 하나 또는 그 이상에서 기술된 방법을 수행하는 프로세서를 포함하는 비디오 인코딩 장치.
40. 컴퓨터 코드를 내장하는 컴퓨터 프로그램 제품으로, 상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서가 해결수단 1 내지 해결수단 37 중 어느 것에서 기술된 방법을 실시하도록 하는 컴퓨터 프로그램 제품.
41. 컴퓨터 코드를 내장하는 컴퓨터 판독 가능한 매체로서, 상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서가 해결수단 1 내지 해결수단 37 중 어느 것에서 기술된 방법을 실시하도록 하는 컴퓨터 판독 가능한 매체.
42. 해결수단 1 내지 해결수단 37 중 어느 하나에 따라 생성된 비트스트림 표현을 저장하는 컴퓨터 판독 가능한 매체.
43. 본 문서에 설명된 방법, 장치 또는 시스템.
개시된 그리고 기타 해결수단들, 예들, 실시예들, 모듈들 그리고 본 문서에 설명된 기능적 동작들은 디지털 전자 회로에서, 본 문서에 개시된 구조들 및 그것들의 구조적 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 또는 그것들 가운데 하나 또는 그 이상의 조합들에서 구현될 수 있다. 개시된 그리고 기타 실시예들은 하나 또는 그 이상의 컴퓨터 프로그램 제품들로, 즉, 데이터 처리 장치에 의해 실행되거나 상기 데이터 처리 장치의 동작을 제어하기 위한 컴퓨터 판독 가능한 매체에 코딩된 컴퓨터 프로그램 명령들의 하나 또는 그 이상의 모듈들로 구현될 수 있다. 상기 컴퓨터 판독 가능한 매체는 기계 판독 가능한 저장 디바이스, 기계 판독 가능한 저장 기판, 메모리 디바이스, 기계 판독 가능한 전파 신호를 가져오는 물질의 조성, 또는 이들 중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치”는 데이터를 처리하기 위한 모든 장치, 디바이스 및 기계를 포괄하며, 예를 들어, 프로그래머블 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터들을 포함한다. 상기 장치는, 하드웨어 외에도, 당해 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드를 포함할 수 있고, 코드는 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 시스템, 또는 이들 중 하나 이상의 조합을 구성한다. 전파 신호는 인공적으로 생성된 신호, 예를 들어, 기계에 의해 생성된 전기적, 광학적 또는 전자기적 신호일 수 있으며, 이 신호는 적절한 수신 장치로 전송하기 위한 정보를 인코딩 하기 위해 생성된다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로도 알려짐)은 컴파일 또는 인터프리터 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨터 환경에서 사용하기에 적합한 그 밖의 유닛을 포함하는 임의의 형태로도 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 상응해야 하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터를 보유하는 파일의 일부에 저장되거나(예를 들어, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트), 당해 프로그램 전용의 단일 파일에 저장되거나, 또는 다수의 조직화된 파일들(예를 들어, 하나 이상의 모듈, 서브프로그램, 코드의 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서, 또는 한 위치에 배치되거나 또는 다수의 위치에 걸쳐서 분산되고 통신 네트워크에 의해 접속된 다수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 문서에서 설명된 프로세스들 및 논리 흐름들은 하나 이상의 프로그래머블 프로세서에 의해 수행될 수 있고, 이 프로그래머블 프로세서는 입력 데이터에 작용하여 출력을 생성함으로써 기능을 수행하는 하나 이상의 컴퓨터 프로그램들을 실행한다. 상기 프로세서들 및 논리 흐름들은, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)과 같은 전용 논리 회로에 의해 수행될 수 있고, 장치 또한 전용 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예를 들어, 범용 및 전용 마이크로프로세서들 및 임의 종류의 디지털 컴퓨터의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리(ROM), 또는 랜덤 액세스 메모리(RAM), 또는 둘 다로부터 명령어들과 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소는 명령들을 실행하는 프로세서 및 명령들 및 데이터를 저장하는 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기 디스크, 광자기 디스크, 또는 광디스크를 포함하거나, 또는 이 디바이스와 데이터를 송수신하기 위하여 동작적으로(operatively) 결합될 것이다. 하지만 컴퓨터는 이러한 디바이스를 구비할 필요는 없다. 컴퓨터 프로그램 명령어들과 데이터를 저장하기 적합한 컴퓨터 판독가능 매체에는, 예를 들어, 반도체 메모리 디바이스(예를 들어, EPROM, EEPROM, 플래시 메모리 디바이스), 자기 디스크(예를 들어, 내부 하드디스크, 착탈식 디스크), 광자기 디스크 및 CD ROM과 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스가 포함된다. 프로세서와 메모리는 전용 논리 회로에 의해 보완되거나 또는 전용 논리 회로에 통합될 수 있다.
본 특허문서가 많은 세부사항을 포함하고 있지만, 이는 임의의 주제나 청구할 사항의 범위에 대한 어떠한 제한으로도 이해되어서는 안 되며, 특정한 기술들의 특정한 실시예들에 고유할 수 있는 특징들의 설명으로서 이해되어야 한다. 별개의 실시예들의 맥락에서 본 특허 문서에서 설명된 소정의 특징들은 조합되어 단일 실시예로 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명한 다양한 특징들은 복수의 실시예에서 별개로 구현되거나 어떤 적당한 하위 조합으로도 구현 가능하다. 또한, 앞에서 특징들이 특정 조합에서 동작하는 것으로서 설명되고 그와 같이 애초에 청구되기까지 하였지만, 청구된 조합으로부터의 하나 또는 그 이상의 특징들은 일부 경우에 해당 조합으로부터 삭제될 수 있으며, 청구된 조합은 하위 조합이나 하위 조합의 변형으로 될 수 있다.
마찬가지로, 동작들이 도면들에서 특정한 순서로 묘사되고 있지만, 이는 그러한 동작들이 바람직한 결과를 얻기 위해, 도시한 특정 순서나 순차적인 순서로 수행되어야 한다거나, 도시된 모든 동작들이 수행되어야 한다는 것을 의미하지 않는다. 더욱이, 본 특허 문서에 기재된 실시예들에 있어서 다양한 시스템 구성요소들의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안 된다.
단지 몇 가지 구현들 및 예시들이 설명되었으며, 기타 구현, 개선 및 변형은 본 특허 문서에 설명되고 도시된 것에 기초하여 이루어질 수 있다.

Claims (43)

  1. 비디오 처리 방법으로서,
    비디오의 현재 픽처의 현재 블록과 상기 비디오의 코딩된 표현 간의 변환을 실시하는 단계를 포함하고,
    상기 코딩된 표현은 포맷 규칙에 기반하고,
    상기 포맷 규칙은 상기 비디오 블록에 대한 예측 블록을 결정하기 위해 참조 픽처에 적용되는 랩어라운드 클리핑 동작에 관한 하나 또는 그 이상의 신택스 요소들을 선택적으로 포함할 것을 명시하며, 이때 상기 랩어라운드 클리핑 동작은 모션 벡터가 상기 참조 픽처 내에서 경계 블록 외부의 샘플들을 가리키는 경우 상기 참조 픽처 내의 샘플들을 다시 선택하기 위해 사용되는, 비디오 처리 방법.
  2. 제1항에 있어서,
    상기 포맷 규칙은 상기 하나 또는 그 이상의 신택스 요소들 중 어느 한 신택스 요소가 픽처 파라미터 세트(PPS)에 포함됨을 명시하는, 비디오 처리 방법.
  3. 제2항에 있어서,
    상기 포맷 규칙은 상기 PPS에 포함된 상기 신택스 요소가 상기 랩어라운드 클리핑 동작이 수평 방향으로 활성화되는지 여부를 지시함을 명시하는, 비디오 처리 방법.
  4. 제3항에 있어서,
    상기 신택스 요소의 값 "1"은 상기 랩어라운드 클리핑 동작이 수평 방향으로 활성화됨을 지시하고, 상기 신택스 요소의 값 "0"은 상기 랩어라운드 클리핑 동작이 수평 방향으로 비활성화됨을 지시하는, 비디오 처리 방법.
  5. 제1항에 있어서,
    상기 규칙은 제1 신택스 요소를 제1 비디오 유닛 레벨에, 제2 비디오 신택스 요소를 상기 랩어라운드 클리핑 동작이 활성화되는지 여부를 지시하는 제2 유닛 레벨에 포함할 것을 명시하는, 비디오 처리 방법.
  6. 제5항에 있어서,
    상기 제2 신택스 요소는 상기 제1 신택스 요소를 참조하는, 비디오 처리 방법.
  7. 제5항 내지 제6항 중 어느 한 항에 있어서,
    상기 제1 신택스 요소 및/또는 상기 제2 신택스 요소 신호는 상기 랩어라운드 클리핑 동작이 상기 현재 블록에 대해 활성화되는지 여부를 지시하는, 비디오 처리 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 포맷 규칙은 상기 제2 신택스 요소의 값이 상기 제1 신택스 요소의 값에 의존한다고 명시하는, 비디오 처리 방법.
  9. 제8항에 있어서,
    상기 포맷 규칙은, 상기 제1 신택스 요소가 상기 랩어라운드 클리핑 동작이 비활성화되었음을 지시하는 경우, 상기 제2 신택스 요소 또한 상기 랩어라운드 클리핑 동작이 비활성화되었음을 지시한다고 명시하는, 비디오 처리 방법.
  10. 제1항 내지 제2항 중 어느 한 항에 있어서,
    상기 포맷 규칙은 상기 랩어라운드 클리핑 동작에 대해 사용되는 오프셋을 지시하는 신택스 요소를 포함할 것을 명시하는, 비디오 처리 방법.
  11. 제1항에 있어서,
    상기 포맷 규칙은 상기 하나 또는 그 이상의 신택스 요소들이 상기 랩어라운드 클리핑 동작이 활성화되는지 여부를 지시하는 제1 신택스 요소 및 상기 랩어라운드 클리핑 동작의 활성화에 의존하여 조건적으로 포함되는 제2 신택스 요소를 포함한다는 것을 명시하는, 비디오 처리 방법.
  12. 제11항에 있어서,
    상기 제2 신택스 요소는 상기 제1 신택스 요소의 값이 1인 경우 상기 코딩된 표현에 조건적으로 포함되는, 비디오 처리 방법.
  13. 제5항 내지 제9항 중 어느 한 항에 있어서,
    상기 제1 비디오 유닛 레벨은 비디오 시퀀스 레벨이고, 상기 제1 신택스 요소는 시퀀스 파라미터 세트에 포함되는, 비디오 처리 방법.
  14. 제5항 내지 제9항 또는 제13항 중 어느 한 항에 있어서,
    상기 제2 비디오 유닛 레벨은 비디오 픽처 레벨 또는 비디오 슬라이스 레벨인, 비디오 처리 방법.
  15. 제5항 내지 제9항 또는 제13항 중 어느 한 항에 있어서,
    상기 제2 신택스 요소는 픽처 파라미터 세트 또는 슬라이스 헤더 또는 픽처 헤더 또는 적응 파라미터 세트에 있는, 비디오 처리 방법.
  16. 제5항 내지 제9항 중 어느 한 항에 있어서,
    상기 제1 신택스 요소 및/또는 상기 제2 신택스 요소는 상기 랩어라운드 클리핑 동작을 위해 사용될 랩어라운드 오프셋의 양을 시그널링하는, 비디오 처리 방법.
  17. 제8항 내지 제16항 중 어느 한 항에 있어서,
    상기 포맷 규칙은 상기 제1 신택스 요소 및 상기 제2 신택스 요소들이 서로 같다고 명시하는, 비디오 처리 방법.
  18. 제8항 내지 제16항 중 어느 한 항에 있어서,
    상기 포맷 규칙은, 상기 제1 신택스 요소가 상기 랩어라운드 클리핑 동작이 활성화되는 것을 지시하는 경우, 상기 제2 신택스 요소는 상기 랩어라운드 클리핑 동작이 활성화됨을 지시하는 제1 값 또는 상기 랩어라운드 클리핑 동작이 비활성화됨을 지시하는 제2 값을 가지도록 허용됨을 명시하는, 비디오 처리 방법.
  19. 제5항 내지 제18항 중 어느 한 항에 있어서,
    상기 포맷 규칙은, 상기 제1 신택스 요소와 상기 제2 신택스 요소가 모두 상기 코딩된 표현에 포함되는 경우, 상기 현재 블록을 상기 코딩된 표현으로부터 디코딩하는 동안 상기 제1 신택스 요소의 상기 값이 무시된다고 명시하는, 비디오 처리 방법.
  20. 제7항 내지 제17항 중 어느 한 항에 있어서,
    상기 포맷 규칙은, 상기 제1 신택스 요소와 상기 제2 신택스 요소가 모두 상기 코딩된 표현에 포함되는 경우, 상기 현재 블록을 상기 코딩된 표현으로부터 디코딩하는 동안 상기 제2 신택스 요소의 상기 값이 무시된다고 명시하는, 비디오 처리 방법.
  21. 제7항 내지 제20항 중 어느 한 항에 있어서,
    상기 포맷 규칙은, 상기 제1 신택스 요소의 값 및/또는 상기 제2 신택스 요소의 값이 상기 현재 블록의 코딩 트리 블록과 연관된 제1 크기 및 상기 현재 블록을 포함하는 상기 현재 픽처의 너비와 연관된 제2 크기에 의존한다고 명시하는, 비디오 처리 방법.
  22. 제20항에 있어서,
    상기 제1 크기가 (CtbSizeY / MinCbSizeY + Offset1)과 같고, 이때 CtbSizeY는 상기 코딩 트리 블록의 높이 또는 너비이고 MinCbSizeY는 상기 변환에서 코딩 블록들에 대해 허용되는 최소 크기를 지시하고, Offset1은 정수이며, 그리고
    상기 제2 크기는 (pic_width_in_luma_samples / MinCbSizeY - Offset2)와 같고, 이때 pic_width_in_luma_samples는 픽처 파라미터 세트에서 지시되는 루마 샘플들 내의 상기 현재 픽처의 너비를 지시하고, Offset2는 다른 정수인, 비디오 처리 방법.
  23. 제21항에 있어서,
    상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 크지 않음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
  24. 제21항에 있어서,
    상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 작지 않거나 같음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
  25. 제21항에 있어서,
    상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 작지 않음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
  26. 제21항에 있어서,
    상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 크거나 같음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
  27. 제21항 내지 제26항 중 어느 한 항에 있어서,
    상기 픽처 파라미터 세트는 상기 현재 픽처에 적용가능한 시퀀스 파라미터 세트를 참조하는, 비디오 처리 방법.
  28. 제21항에 있어서,
    상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 큼으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
  29. 제21항에 있어서,
    상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 작지 않거나 같음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
  30. 제21항에 있어서,
    상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 작지 않음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
  31. 제21항에 있어서,
    상기 포맷 규칙은, 상기 제1 크기가 상기 제2 크기 보다 크지 않거나 같음으로 인해 상기 랩어라운드 클리핑 동작이 비활성화된다는 것을 상기 제1 신택스 요소 또는 상기 제2 신택스 요소가 지시한다고 명시하는, 비디오 처리 방법.
  32. 제22항 내지 제31항 중 어느 한 항에 있어서,
    offset2 = offset1 = 1인, 비디오 처리 방법.
  33. 제1항에 있어서,
    상기 포맷 규칙은 상기 신택스 요소가 적응 파라미터 세트에 포함된다고 명시하는, 비디오 처리 방법.
  34. 제1항에 있어서,
    상기 포맷 규칙은 상기 신택스 요소가 상기 현재 픽처의 헤더 필드 또는 상기 현재 블록을 포함하는 현재 슬라이스에 포함된다고 명시하는, 비디오 처리 방법.
  35. 제1항에 있어서,
    상기 포맷 규칙은 상기 신택스 요소가 픽처 레벨 또는 뷰 레벨 또는 슬라이스 레벨 또는 타일 레벨 또는 브릭 레벨 또는 서브 픽처 레벨 또는 코딩 트리 유닛 레벨에서 포함된다고 명시하는, 비디오 처리 방법.
  36. 제1항 내지 제35항 중 어느 한 항에 있어서,
    상기 변환은 상기 비디오를 상기 코딩된 표현으로 인코딩하는 단계를 포함하는, 비디오 처리 방법.
  37. 제1항 내지 제35항 중 어느 한 항에 있어서,
    상기 변환은 상기 비디오의 픽셀 값들을 생성시키기 위해 상기 코딩된 표현을 디코딩하는 단계를 포함하는, 비디오 처리 방법.
  38. 비디오 디코딩 장치로, 제1항 내지 제37항 중 하나 또는 그 이상에서의 방법을 수행하는 프로세서를 포함하는 비디오 디코딩 장치.
  39. 비디오 인코딩 장치로,
    제1항 내지 제37항 중 하나 또는 그 이상에서의 방법을 수행하는 프로세서를 포함하는 비디오 인코딩 장치.
  40. 컴퓨터 코드를 내장하는 컴퓨터 프로그램 제품으로,
    상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서가 제1항 내지 제37항 중 어느 한 항에서의 방법을 실시하도록 하는 컴퓨터 프로그램 제품.
  41. 컴퓨터 코드를 내장하는 컴퓨터 판독 가능한 매체로서,
    상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서가 제1항 내지 제37항 중 어느 한 항에서의 방법을 실시하도록 하는 컴퓨터 판독 가능한 매체.
  42. 제1항 내지 제37항 중 어느 한 항에 따라 생성된 비트스트림 표현을 저장하는 컴퓨터 판독 가능한 매체.
  43. 본 문서에 설명된 방법, 장치 또는 시스템.
KR1020227012629A 2019-10-23 2020-10-22 참조 픽처 리샘플링을 위한 시그널링 KR20220080107A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2019112820 2019-10-23
CNPCT/CN2019/112820 2019-10-23
PCT/CN2020/122644 WO2021078177A1 (en) 2019-10-23 2020-10-22 Signaling for reference picture resampling

Publications (1)

Publication Number Publication Date
KR20220080107A true KR20220080107A (ko) 2022-06-14

Family

ID=75620400

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227012629A KR20220080107A (ko) 2019-10-23 2020-10-22 참조 픽처 리샘플링을 위한 시그널링

Country Status (6)

Country Link
US (1) US11706409B2 (ko)
EP (1) EP4035356A4 (ko)
JP (1) JP7394985B2 (ko)
KR (1) KR20220080107A (ko)
CN (1) CN114641992B (ko)
WO (1) WO2021078177A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3229435A1 (en) * 2019-03-22 2020-10-01 Lg Electronics Inc. Image decoding method and device and image encoding method and device in image coding system
KR20220049000A (ko) 2019-08-23 2022-04-20 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 참조 픽처 리샘플링에서의 클리핑
CN114600461A (zh) 2019-10-23 2022-06-07 北京字节跳动网络技术有限公司 用于多编解码工具的计算
MX2022005905A (es) * 2019-11-15 2022-06-24 Hfi Innovation Inc Metodo y aparato para se?alizacion de compensacion de movimiento envolvente horizontal en la codificacion de video vr360.
WO2021101356A1 (ko) * 2019-11-22 2021-05-27 한국전자통신연구원 참조 픽처의 해상도를 이용하는 비디오 처리 방법, 장치 및 기록 매체

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK2175452T3 (da) * 2001-03-08 2013-02-25 Sony Corp Dataoptageapparat.
GB0128888D0 (en) 2001-12-03 2002-01-23 Imagination Tech Ltd Method and apparatus for compressing data and decompressing compressed data
EP1566970A4 (en) 2002-11-20 2008-12-03 Panasonic Corp PREDICTED METHOD FOR MOVABLE PICTURES, CODING METHOD AND APPARATUS FOR MOVABLE IMAGES AND DECODING METHOD AND APPARATUS FOR MOVABLE PICTURES
US7724827B2 (en) 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
EP1894412A1 (en) 2005-02-18 2008-03-05 THOMSON Licensing Method for deriving coding information for high resolution images from low resoluton images and coding and decoding devices implementing said method
US20120230393A1 (en) 2011-03-08 2012-09-13 Sue Mon Thet Naing Methods and apparatuses for encoding and decoding video using adaptive interpolation filter length
EP2595382B1 (en) 2011-11-21 2019-01-09 BlackBerry Limited Methods and devices for encoding and decoding transform domain filters
US9503720B2 (en) * 2012-03-16 2016-11-22 Qualcomm Incorporated Motion vector coding and bi-prediction in HEVC and its extensions
US9992493B2 (en) 2013-04-01 2018-06-05 Qualcomm Incorporated Inter-layer reference picture restriction for high level syntax-only scalable video coding
US9432667B2 (en) 2013-06-11 2016-08-30 Qualcomm Incorporated Processing bitstream constraints relating to inter-layer prediction types in multi-layer video coding
CN110460845B (zh) 2014-11-06 2021-08-27 联发科技股份有限公司 调色板编码的方法
US9699461B2 (en) 2015-08-14 2017-07-04 Blackberry Limited Scaling in perceptual image and video coding
EP3354029A4 (en) * 2015-09-23 2019-08-21 Nokia Technologies Oy METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR ENCODING 360-DEGREE PANORAMIC VIDEO
JP2018530244A (ja) 2015-09-25 2018-10-11 華為技術有限公司Huawei Technologies Co.,Ltd. 選択可能な補間フィルタを用いるビデオ動き補償のための装置および方法
CA3024900C (en) 2016-05-17 2021-02-16 Arris Enterprises Llc Template matching for jvet intra prediction
KR102332526B1 (ko) 2016-07-14 2021-11-29 삼성전자주식회사 비디오 복호화 방법 및 그 장치 및 비디오 부호화 방법 및 그 장치
WO2018037737A1 (ja) 2016-08-24 2018-03-01 ソニー株式会社 画像処理装置、画像処理方法、及びプログラム
US20180242016A1 (en) * 2017-02-21 2018-08-23 Intel Corporation Deblock filtering for 360 video
CN116781893A (zh) 2017-07-05 2023-09-19 艾锐势有限责任公司 对视频编码、解码的方法和计算机可读存储器或存储装置
WO2019072368A1 (en) 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. LIMITED MEMORY ACCESS WINDOW FOR MOTION VECTOR REFINEMENT
CN111201795B (zh) 2017-10-09 2022-07-26 华为技术有限公司 存储访问窗口和用于运动矢量修正的填充
KR102557356B1 (ko) * 2017-12-22 2023-07-18 매직 립, 인코포레이티드 가상, 증강 또는 혼합 현실 환경에서 3d 비디오들을 생성 및 디스플레이하기 위한 방법들 및 시스템
CN112042196A (zh) 2018-04-18 2020-12-04 联发科技股份有限公司 在视频编解码中具有高级控制的候选重组
US10701384B2 (en) 2018-08-01 2020-06-30 Tencent America LLC Method and apparatus for improvement on decoder side motion derivation and refinement
CN111385570B (zh) 2018-12-28 2021-11-02 杭州海康威视数字技术股份有限公司 编码方法、解码方法及装置
US20210392344A1 (en) 2019-01-02 2021-12-16 Sharp Kabushiki Kaisha Prediction image generation device, moving image decoding device, moving image encoding device, and prediction image generation method
EP3703376A4 (en) * 2019-01-15 2020-09-02 LG Electronics Inc. -1- METHOD AND DEVICE FOR IMAGE ENCODING USING A TRANSFORM SKIP FLAG
MX2021011025A (es) * 2019-03-11 2021-11-12 Huawei Tech Co Ltd Un codificador, un decodificador y métodos correspondientes.
EP3912341A4 (en) 2019-05-21 2022-10-19 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR INTER-COMPONENT PREDICTION
US11095916B2 (en) * 2019-07-23 2021-08-17 Qualcomm Incorporated Wraparound motion compensation in video coding
US11375238B2 (en) * 2019-09-20 2022-06-28 Tencent America LLC Method for padding processing with sub-region partitions in video stream
CN114600461A (zh) 2019-10-23 2022-06-07 北京字节跳动网络技术有限公司 用于多编解码工具的计算

Also Published As

Publication number Publication date
CN114641992B (zh) 2024-04-05
US11706409B2 (en) 2023-07-18
EP4035356A4 (en) 2022-11-30
JP7394985B2 (ja) 2023-12-08
JP2022553363A (ja) 2022-12-22
US20220272324A1 (en) 2022-08-25
CN114641992A (zh) 2022-06-17
EP4035356A1 (en) 2022-08-03
WO2021078177A1 (en) 2021-04-29

Similar Documents

Publication Publication Date Title
WO2021073488A1 (en) Interplay between reference picture resampling and video coding tools
JP7305873B2 (ja) ビデオ処理方法、ビデオ・データ処理装置、記憶媒体及び記憶方法
JP7391203B2 (ja) ビデオコーディングツールを洗練する使用およびシグナリング
JP7394985B2 (ja) ビデオ・データを処理する方法、装置及び記憶方法
US11611780B2 (en) Level-based signaling of video coding tools
KR20220066045A (ko) 비디오 코딩의 스케일링 윈도우
JP7395727B2 (ja) ビデオ・データを処理する方法、装置及び記憶方法
KR20220061108A (ko) 비디오 코딩에서 레퍼런스 샘플 위치 유도
KR20220113379A (ko) 비디오 픽처 헤더의 슬라이스 유형의 시그널링
WO2021129867A1 (en) Restricting tile width in video coding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal