KR20220073740A - Interaction between reference picture resampling and video coding tools - Google Patents

Interaction between reference picture resampling and video coding tools Download PDF

Info

Publication number
KR20220073740A
KR20220073740A KR1020227009731A KR20227009731A KR20220073740A KR 20220073740 A KR20220073740 A KR 20220073740A KR 1020227009731 A KR1020227009731 A KR 1020227009731A KR 20227009731 A KR20227009731 A KR 20227009731A KR 20220073740 A KR20220073740 A KR 20220073740A
Authority
KR
South Korea
Prior art keywords
picture
video
way
sample
reference picture
Prior art date
Application number
KR1020227009731A
Other languages
Korean (ko)
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 KR20220073740A publication Critical patent/KR20220073740A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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
    • 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

Abstract

비디오 프로세싱의 예시적인 방법은 비디오의 현재 픽처와 비디오의 비트스트림 표현 사이의 변환을 위해, 다중 레퍼런스 픽처 또는 현재 픽처 중 하나의 일부의 차원과 연관된 조건에 기초하여 코딩 툴의 사용을 결정하는 단계를 포함한다. 방법은 또한 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다.An exemplary method of video processing includes determining to use a coding tool based on a condition associated with a dimension of a portion of one of multiple reference pictures or a current picture to transform between a current picture of the video and a bitstream representation of the video. include The method also includes performing a transformation based on the determining step.

Description

레퍼런스 픽처 리샘플링 및 비디오 코딩 툴 사이의 상호 작용Interaction between reference picture resampling and video coding tools

이 특허 문서는 비디오 코딩 기술, 장치 및 시스템과 관련이 있다. This patent document relates to video coding technology, apparatus and system.

파리협약에 따른 대응하는 특허법 및/또는 규칙에 따라, 이 출원은 2019년 10월 13일에 출원된 미국 가특허 출원 번호 62/914,544의 우선권과 이익을 적시에 주장하기 위해 이루어진다. 법에 따른 모든 목적을 위해, 상기 출원의 전체 개시는 본 출원의 개시의 일부로 참조에 의해 통합된다.Subject to corresponding patent laws and/or rules under the Paris Convention, this application is made to assert the priority and benefit of U.S. Provisional Patent Application No. 62/914,544, filed on October 13, 2019, in a timely manner. For all purposes under the law, the entire disclosure of this application is hereby incorporated by reference as a part of the disclosure of this application.

현재, 더 나은 압축 비율을 제공하거나 더 낮은 복잡성 또는 병렬 구현을 허용하는 비디오 코딩 및 디코딩 방식을 제공하기 위해 현재 비디오 코덱 기술의 성능을 개선하려는 노력이 진행 중이다. 업계 전문가들은 최근 몇 가지 새로운 비디오 코딩 툴(video coding tool)을 제안했고, 효과를 확인하기 위한 테스트가 현재 진행 중이다.Efforts are currently underway to improve the performance of current video codec technologies to provide video coding and decoding schemes that either provide better compression ratios or allow for lower complexity or parallel implementations. Industry experts have recently proposed several new video coding tools, and testing to confirm their effectiveness is currently underway.

디지털 비디오 코딩, 특히 모션 벡터의 관리와 관련된 장치, 시스템 및 방법이 설명된다. 설명된 방법은 기존 비디오 코딩 표준(예를 들어, 고효율 비디오 코딩(High Efficiency Video Coding)(HEVC) 또는 범용 비디오 코딩(Versatile Video Coding)) 및 향후 비디오 코딩 표준 또는 비디오 코덱에 적용될 수 있다.Apparatus, systems and methods related to digital video coding, particularly management of motion vectors, are described. The described method may be applied to existing video coding standards (eg, High Efficiency Video Coding (HEVC) or Versatile Video Coding) and future video coding standards or video codecs.

하나의 대표적인 측면에서, 개시된 기술은 비디오 처리(video processing) 방법을 제공하는 데 사용될 수 있다. 이 방법은 현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안 레퍼런스 픽처의 해상도 및/또는 크기가 현재 비디오 블록의 해상도 및/또는 크기와 다른 경우, 현재 비디오 블록을 사용하여 예측된 인접하거나 인접하지 않은 샘플 그룹에 동일한 보간 필터가 적용된다.In one representative aspect, the disclosed technology may be used to provide a method for video processing. The method includes performing a transform between a current video block and a coded representation of the current video block, wherein if a resolution and/or size of a reference picture is different from the resolution and/or size of the current video block during transform, the current The same interpolation filter is applied to adjacent or non-adjacent sample groups predicted using video blocks.

또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 레퍼런스 픽처의 해상도 및/또는 크기가 현재 비디오 블록의 해상도 및/또는 크기와 다른 경우, 여기서 현재 비디오 블록을 사용하여 예측된 블록은 현재 블록과 관련된 정수 값 모션 정보만 사용하도록 허용된다.In another representative aspect, the disclosed technology may be used to provide other video processing methods. The method comprises performing a transform between a current video block and a coded representation of the current video block, wherein during transforming, if a resolution and/or size of a reference picture is different from a resolution and/or size of the current video block, Here, a block predicted using the current video block is allowed to use only integer-valued motion information related to the current block.

또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 레퍼런스 픽처의 해상도 및/또는 크기가 현재 비디오 블록의 해상도 및/또는 크기와 다른 경우, 현재 비디오 블록을 사용하여 예측된 블록을 유도하기 위해 보간 필터가 적용되고, 보간 필터는 규칙에 기초하여 선택된다.In another representative aspect, the disclosed technology may be used to provide other video processing methods. The method comprises performing a transform between a current video block and a coded representation of the current video block, wherein during transforming, if a resolution and/or size of a reference picture is different from a resolution and/or size of the current video block, An interpolation filter is applied to derive a predicted block using the current video block, and the interpolation filter is selected based on the rule.

또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 레퍼런스 픽처의 해상도 및/또는 크기가 현재 비디오 블록의 해상도 및/또는 크기와 다른 경우, 선택적으로 디블로킹 필터를 적용하고, 디블록킹 필터의 강도는 현재 비디오 블록의 해상도 및/또는 크기에 상대적인 레퍼런스 픽처의 크기 및/또는 해상도와 관련된 규칙에 따라 설정된다.In another representative aspect, the disclosed technology may be used to provide other video processing methods. The method comprises performing a transform between a current video block and a coded representation of the current video block, wherein during transforming, if a resolution and/or size of a reference picture is different from a resolution and/or size of the current video block, Optionally, a deblocking filter is applied, and the strength of the deblocking filter is set according to a rule related to the size and/or resolution of the reference picture relative to the resolution and/or size of the current video block.

또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 현재 비디오 블록의 레퍼런스 픽처는 현재 비디오 블록의 차원에 기초한 규칙에 따라 리샘플링 된다. .In another representative aspect, the disclosed technology may be used to provide other video processing methods. The method includes performing a transform between a current video block and a coded representation of the current video block, wherein during the transform, a reference picture of the current video block is resampled according to a rule based on a dimension of the current video block. .

또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 현재 비디오 블록에 대한 코딩 툴의 사용은 현재 비디오 블록의 해상도/크기에 대한 현재 비디오 블록의 레퍼런스 픽처의 해상도/크기에 따라 선택적으로 활성화 또는 비활성화된다.In another representative aspect, the disclosed technology may be used to provide other video processing methods. The method includes performing a transform between a current video block and a coded representation of the current video block, wherein during the transform, use of a coding tool for the current video block determines the resolution/size of the current video block. It is selectively activated or deactivated according to the resolution/size of the reference picture of the block.

또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 다중 비디오 블록과 다중 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 제1 비디오 블록에 대한 제1 적합성 윈도우(first conformance window) 및 제2 비디오 블록에 대한 제2 적합성 윈도우(second conformance window)가 정의되고, 제2 적합성 윈도우에 대한 제1 적합성 윈도우의 폭 및/또는 높이의 비는 적어도 일치 비트스트림에 기초한 규칙에 따른다.In another representative aspect, the disclosed technology may be used to provide other video processing methods. The method includes performing a transform between multiple video blocks and a coded representation of the multiple video blocks, wherein during transform, a first conformance window for a first video block and a second video block A second conformance window is defined for which the ratio of the width and/or height of the first conformance window to the second conformance window is at least according to a rule based on the conformance bitstream.

또 다른 대표적인 측면에서, 개시된 기술은 다른 비디오 처리 방법을 제공하는 데 사용될 수 있다. 이 방법은 다중 비디오 블록과 다중 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 제1 비디오 블록에 대한 제1 적합성 윈도우(first conformance window) 및 제2 비디오 블록에 대한 제2 적합성 윈도우(second conformance window)가 정의되고, 제2 적합성 윈도우에 대한 제1 적합성 윈도우의 폭 및/또는 높이의 비는 적어도 일치 비트스트림에 기초한 규칙에 따른다.In another representative aspect, the disclosed technology may be used to provide other video processing methods. The method includes performing a transform between multiple video blocks and a coded representation of the multiple video blocks, wherein during transform, a first conformance window for a first video block and a second video block A second conformance window is defined for which the ratio of the width and/or height of the first conformance window to the second conformance window is at least according to a rule based on the conformance bitstream.

또한, 대표적인 측면에서, 프로세서 및 명령이 있는 비일시적 메모리를 포함하는 비디오 시스템의 장치가 개시된다. 프로세서에 의한 실행 시 명령은 프로세서가 개시된 방법 중 임의의 하나 이상을 구현하도록 한다.Also disclosed in a representative aspect is an apparatus for a video system comprising a processor and a non-transitory memory having instructions. The instructions, when executed by the processor, cause the processor to implement any one or more of the disclosed methods.

하나의 대표적인 측면에서, 여기에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치가 개시된다.In one representative aspect, a video decoding apparatus comprising a processor configured to implement the methods recited herein is disclosed.

하나의 대표적인 측면에서, 여기에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치가 개시된다.In one representative aspect, a video encoding apparatus comprising a processor configured to implement the methods recited herein is disclosed.

비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램에 있어서, 솔루션 F1 내지 F15의 방법 중 어느 하나의 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램. A computer program stored on a non-transitory computer-readable medium, comprising program code for performing any one of the methods of solutions F1 to F15.

개시된 기술의 상기 및 기타 측면 및 특징은 도면, 설명 및 청구범위에서 보다 상세하게 설명된다.These and other aspects and features of the disclosed technology are set forth in greater detail in the drawings, description and claims.

도 1은 서브블록 모션 벡터(VSB)와 모션 벡터 차이의 예를 나타낸다.
도 2는 16개의 4x4 영역으로 분할된 16x16 비디오 블록의 예를 나타낸다.
도 3a는 샘플 내의 특정 위치의 예를 나타낸다.
도 3b는 샘플 내의 특정 위치의 다른 예를 나타낸다.
도 3c는 샘플 내의 특정 위치의 또 다른 예를 나타낸다.
도 4a는 현재 샘플과 그 레퍼런스 샘플의 위치의 예를 나타낸다.
도 4b는 현재 샘플 및 그 레퍼런스 샘플의 위치의 다른 예를 나타낸다.
도 5는 본 문서에서 설명하는 비주얼 매체 디코딩 또는 비주얼 매체 인코딩 기술을 구현하기 위한 하드웨어 플랫폼의 일 예의 블록도이다.
도 6은 비디오 코딩을 위한 예시적인 방법의 흐름도를 나타낸다.
도 7은 디코더 측 모션 벡터 리파인먼트의 예를 나타낸다.
도 8은 VTM5.0에서 DMVR 및 BDOF 프로세스를 계단식(cascading) 흐름의 예를 나타낸다. DMVR SAD 작업과 BDOF SAD 작업은 서로 다르며 공유되지 않는다.
도 9는 개시된 기술이 구현될 수 있는 예시적인 비디오 처리 시스템의 블록도이다.
도 10은 예시적인 비디오 코딩 시스템을 예시하는 블록도이다.
도 11은 본 개시내용의 일부 실시예에 따른 인코더를 예시하는 블록도이다.
도 12는 본 개시의 일부 실시예에 따른 디코더를 예시하는 블록도이다.
도 13은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다.
도 14는 본 기술에 따른 비디오 처리의 다른 방법의 흐름도 표현이다.
도 15는 본 기술에 따른 비디오 처리의 또 다른 방법의 흐름도 표현이다.
1 shows an example of a sub-block motion vector (VSB) and a motion vector difference.
2 shows an example of a 16x16 video block divided into 16 4x4 regions.
3A shows an example of a specific location within a sample.
3B shows another example of a specific location within a sample.
3C shows another example of a specific location within a sample.
4A shows an example of the position of the current sample and its reference sample.
4B shows another example of the position of the current sample and its reference sample.
5 is a block diagram of an example of a hardware platform for implementing the visual media decoding or visual media encoding technique described in this document.
6 shows a flow diagram of an example method for video coding.
7 shows an example of decoder-side motion vector refinement.
8 shows an example flow of cascading DMVR and BDOF processes in VTM5.0. DMVR SAD operation and BDOF SAD operation are different and are not shared.
9 is a block diagram of an example video processing system in which the disclosed techniques may be implemented.
10 is a block diagram illustrating an example video coding system.
11 is a block diagram illustrating an encoder in accordance with some embodiments of the present disclosure.
12 is a block diagram illustrating a decoder in accordance with some embodiments of the present disclosure.
13 is a flowchart representation of a video processing method according to the present technology.
14 is a flowchart representation of another method of video processing according to the present technology.
15 is a flowchart representation of another method of video processing in accordance with the present technology.

1.One. HEVC/H.265의 비디오 코딩Video Coding in HEVC/H.265

비디오 코딩 표준은 주로 잘 알려진 ITU-T 및 ISO/IEC 표준의 개발을 통해 발전해 왔다. ITU-T는 H.261및 H.263을 제작했으며, ISO/IEC는 MPEG-1 및 MPEG-4 비주얼을 제작했으며, 두 조직은 H.262/MPEG-2 비디오 및 H.264/MPEG-4 고급 비디오 코딩(AVC) 및 H.265/HEVC 표준을 공동 제작했다. H.262 이후, 비디오 코딩 표준은 시간적 예측(temporal prediction)과 트랜스폼 코딩(transform coding)이 사용되는 하이브리드 비디오 코딩 구조에 기초한다. HEVC를 넘어 미래의 비디오 코딩 기술을 연구하기 위해, 공동 비디오 연구팀(JVET: Joint Video Exploration Team)이 2015년에 VCEG와 MPEG의 공동으로 설립되었다. 그 이후로, JVET에 의해 많은 새로운 방법들이 채택되었고, 공동 연구 모델 (JEM: Joint Exploration Model)이라고 명명된 참조 소프트웨어(reference software)에 적용되었다. 2018년 4월, VCEG(Q6/16)와 ISO/IEC JTC1 SC29/WG11(MPEG) 사이의 공동 비디오 전문가 팀(Joint Video Expert Team)(JVET)는 HEVC에 비해 50% 비트 전송률 감소를 목표로 하는 VVC 표준 작업을 위해 만들어졌다.Video coding standards have evolved primarily through the development of the well-known ITU-T and ISO/IEC standards. ITU-T produced H.261 and H.263, ISO/IEC produced MPEG-1 and MPEG-4 visuals, both organizations produced H.262/MPEG-2 video and H.264/MPEG-4 Co-authored the Advanced Video Coding (AVC) and H.265/HEVC standards. Since H.262, the video coding standard is based on a hybrid video coding scheme in which temporal prediction and transform coding are used. To explore future video coding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. Since then, many new methods have been adopted by JVET and applied to reference software named Joint Exploration Model (JEM). In April 2018, the Joint Video Expert Team (JVET) between VCEG (Q6/16) and ISO/IEC JTC1 SC29/WG11 (MPEG) announced a goal of 50% bitrate reduction compared to HEVC. It was made for working with the VVC standard.

2.2. 개요summary

2.1.2.1. 적응형 해상도 변경(ARC)Adaptive Resolution Change (ARC)

AVC 및 HEVC는 IDR 또는 인트라 랜덤 액세스 포인트(Intra Random Access Point)(IRAP) 픽처를 도입하지 않고 해상도를 변경할 수 없고; 이러한 능력을 적응형 해상도 변경(Adaptive Resolution Change)(ARC)라고 할 수 있다. 다음을 포함하여 ARC 기능의 이점을 얻을 수 있는 사용 사례 또는 애플리케이션 시나리오가 있다:AVC and HEVC cannot change resolution without introducing IDR or Intra Random Access Point (IRAP) pictures; This capability may be referred to as Adaptive Resolution Change (ARC). There are use cases or application scenarios where you can benefit from ARC features, including:

- 화상 통화 및 회의의 속도 조정: 코딩된 비디오를 변화하는 네트워크 조건에 적응시키기 위해, 네트워크 조건이 악화되어 가용 대역폭이 낮아지면 인코더는 더 작은 해상도의 픽처를 인코딩하여 적응할 수 있다. 현재, 픽처 해상도 변경은 IRAP 픽처 후에만 수행할 수 있고; 이것은 몇 가지 문제가 있다. 합리적인 품질의 IRAP 픽처는 인터 코딩된 픽처보다 훨씬 크고, 그에 따라 디코딩이 더 복잡한다: 여기에는 시간과 리소스가 소요된다. 이것은 로딩상의 이유로 디코더에서 해상도 변경을 요청하는 경우에 문제이다. 또한 지연 시간이 짧은 버퍼 조건을 깨고 오디오 재동기화를 강제할 수 있고, 스트림의 종단 간 지연이 적어도 일시적으로 증가한다. 이로 인해 사용자 환경이 좋지 않을 수 있다.- Speed adjustment of video calls and conferences: In order to adapt the coded video to changing network conditions, when the available bandwidth becomes low as the network conditions deteriorate, the encoder can adapt by encoding a picture of a smaller resolution. Currently, picture resolution change can only be performed after IRAP pictures; This has some problems. An IRAP picture of reasonable quality is much larger than an inter-coded picture, and therefore decoding is more complex: this takes time and resources. This is a problem when the decoder requests a resolution change for loading reasons. It can also break low-latency buffer conditions and force audio resynchronization, and at least temporarily increase the end-to-end delay of the stream. This may result in a bad user experience.

- 다자간 화상 회의에서 발표자 활성 변경: - 다자간 화상 회의에서 활성 발언자 변경: 다자간 화상 회의의 경우 현재 발언자가 나머지 회의 참가자의 비디오보다 큰 비디오 크기로 표시되는 것이 일반적이다. 현재 발언자가 변경되면, 각 참가자의 픽처 해상도도 조정해야 할 수 있다. 이러한 활성 스피커의 변경이 자주 발생하는 경우 ARC 기능의 필요성이 더욱 중요해 진다.- Change presenter active in a multiway video conference: - Change active speaker in a multiway video conference: In a multiway video conference, it is common for the current speaker to be displayed in a larger video size than the video of the rest of the meeting participants. If the current speaker changes, the picture resolution of each participant may also need to be adjusted. The need for the ARC function becomes even more important when these active speaker changes occur frequently.

- 스트리밍의 빠른 시작: 스트리밍 애플리케이션의 경우, 애플리케이션이 표시를 시작하기 전에 디코딩된 픽처의 특정 길이까지 버퍼링 하는 것이 일반적이다. 더 작은 해상도로 비트스트림을 시작하면 애플리케이션이 버퍼에 더 빨리 표시할 수 있는 충분한 픽처를 가질 수 있다.- Quick Start of Streaming: For streaming applications, it is common for the application to buffer up to a certain length of the decoded picture before starting display. Starting the bitstream at a smaller resolution allows the application to have enough pictures to display in the buffer faster.

스트리밍의 적응형 스트림 전환: DASH(Dynamic Adaptive Streaming over HTTP) 사양은 @mediaStreamStructureId라는 기능을 포함한다. 이것은 디코딩 불가능한 리딩 픽처, 예들 들어, HEVC에서 연관된 RASL 픽처를 갖는 CRA 픽처를 갖는 개방형 GOP 랜덤 액세스 포인트에서의 상이한 표현 사이의 스위칭을 가능하게 한다. 동일한 비디오의 두 가지 다른 표현이 @mediaStreamStructureId의 동일한 값을 갖는 동안 다른 비트레이트를 갖지만 동일한 공간 해상도를 갖는 경우, 연관된 RASL 픽처가 있는 CRA 픽처에서 두 표현 사이의 전환이 수행될 수 있고, 전환 CRA 픽처(switching-at CRA picture)는 허용 가능한 품질로 디코딩될 수 있으므로 원활한 전환이 가능하다. ARC를 사용하면, @mediaStreamStructureId 기능을 사용하여 공간 해상도가 다른 DASH 표현을 전환할 수도 있다.Adaptive Stream Conversion of Streaming: The Dynamic Adaptive Streaming over HTTP (DASH) specification includes a feature called @mediaStreamStructureId. This enables switching between different representations in open GOP random access points with non-decodable leading pictures, eg CRA pictures with associated RASL pictures in HEVC. If two different representations of the same video have different bitrates but the same spatial resolution while having the same value of @mediaStreamStructureId, a transition between the two representations can be performed in a CRA picture with an associated RASL picture, and the transition CRA picture (switching-at CRA picture) can be decoded with acceptable quality, enabling smooth switching. With ARC, you can also switch between DASH representations with different spatial resolutions using the @mediaStreamStructureId function.

ARC는 동적 해상도 변환(Dynamic resolution conversion)이라고도 한다.ARC is also called dynamic resolution conversion.

ARC는 H.263 Annex P와 같은 레퍼런스 픽처 리샘플링(Reference Picture Resampling)(RPR)의 특수한 경우로 간주될 수도 있다.ARC may be considered as a special case of Reference Picture Resampling (RPR), such as H.263 Annex P.

2.2.2.2. H.263 부록 P의 레퍼런스 픽처 리샘플링(Reference picture resampling)Reference picture resampling of H.263 Annex P

이 모드는 레퍼런스 픽처를 예측에 사용하기 전에 워프(warp)하는 알고리즘을 설명한다. 예측되는 픽처와 다른 소스 포맷을 갖는 레퍼런스 픽처를 리샘플링하는 데 유용할 수 있다. 또한 레퍼런스 픽처의 모양, 크기 및 위치를 워핑(warping)하여 글로벌 모션 추정 또는 회전 모션 추정에 사용할 수도 있다. 신택스에는 사용할 워핑 파라미터와 리샘플링 알고리즘이 포함된다. 레퍼런스 픽처 리샘플링 모드의 가장 간단한 동작(operation) 레벨은 업샘플링 및 다운샘플링 프로세스에 FIR 필터만 적용하면 되므로 4 리샘플링의 암시적 요소이다. 이 경우, 새로운 픽처(픽처 헤더에 표시됨)의 크기가 이전 픽처와 다를 때 사용을 이해하므로 추가적인 시그널링 오버헤드가 필요하지 않다.This mode describes an algorithm that warps a reference picture before using it for prediction. It can be useful for resampling a reference picture that has a different source format than the predicted picture. In addition, the shape, size, and position of the reference picture may be warped and used for global motion estimation or rotational motion estimation. The syntax includes the warping parameters to use and the resampling algorithm. The simplest operation level of the reference picture resampling mode is an implicit element of 4 resampling because only the FIR filter needs to be applied to the upsampling and downsampling processes. In this case, an additional signaling overhead is not required because the use is understood when the size of the new picture (indicated in the picture header) is different from that of the previous picture.

2.3.2.3. VVC의 적합성 윈도우(conformance window)VVC's conformance window

VVC의 적합성 윈도우는 직사각형을 정의한다. 적합성 윈도우 내부의 샘플은 관심 이미지에 속한다. 적합성 윈도우 외부의 샘플은 출력 시 폐기될 수 있다.The conformance window of VVC defines a rectangle. Samples inside the fit window belong to the image of interest. Samples outside the conformance window may be discarded on output.

적합성 윈도우가 적용되면 RPR의 스케일링 비율은 적합성 윈도우에 기초하여 유도된다.When the conformance window is applied, the scaling ratio of the RPR is derived based on the conformance window.

픽처 파라미터 세트 RBSP 신택스.Picture parameter set RBSP syntax.

Figure pct00001
Figure pct00001

pic_width_in_luma_samples는 루마 샘플 유닛에서 PPS를 참조하는 각 디코딩 픽처의 너비를 지정한다. pic_width_in_luma_samples는 0이 아니어야 하고, Max(8, MinCbSizeY)의 정수배여야 하고, pic_width_max_in_luma_samples보다 작거나 동일해야 한다.pic_width_in_luma_samples specifies the width of each decoded picture referring to the PPS in the luma sample unit. pic_width_in_luma_samples must not be 0, must be an integer multiple of Max(8, MinCbSizeY), and must be less than or equal to pic_width_max_in_luma_samples.

subpics_present_flag가 1과 같을 때, pic_width_in_luma_samples의 값은 pic_width_max_in_luma_samples와 동일해야 한다.When subpics_present_flag is equal to 1, the value of pic_width_in_luma_samples shall be equal to pic_width_max_in_luma_samples.

pic_height_in_luma_samples는 루마 샘플 유닛에서 PPS를 참조하는 각 디코딩 픽처의 높이를 지정한다. pic_height_in_luma_samples는 0이 아니어야 하고, Max( 8, MinCbSizeY )의 정수 배수여야 하고, pic_height_max_in_luma_samples보다 작거나 동일해야 한다.pic_height_in_luma_samples specifies the height of each decoded picture referring to the PPS in the luma sample unit. pic_height_in_luma_samples must be non-zero, must be an integer multiple of Max( 8, MinCbSizeY ), and must be less than or equal to pic_height_max_in_luma_samples.

subpics_present_flag가 1과 같을 때, pic_height_in_luma_samples의 값은 pic_height_max_in_luma_samples와 동일해야 한다.When subpics_present_flag is equal to 1, the value of pic_height_in_luma_samples shall be equal to pic_height_max_in_luma_samples.

refPicWidthInLumaSamples 및 refPicHeightInLumaSamples를 각각 이 PPS를 참조하는 현재 픽처의 레퍼런스 픽처의 pic_width_in_luma_samples 및 pic_height_in_luma_samples라고 하자. 다음 조건이 모두 충족되는 비트스트림 적합성의 요구 사항이다:Let refPicWidthInLumaSamples and refPicHeightInLumaSamples be pic_width_in_luma_samples and pic_height_in_luma_samples of the reference picture of the current picture referring to this PPS, respectively. A bitstream conformance requirement where all of the following conditions are met:

-- -- pic_width_in_luma_samples * 2는 refPicWidthInLumaSamples보다 크거나 동일해야 한다.pic_width_in_luma_samples * 2 must be greater than or equal to refPicWidthInLumaSamples.

-- -- pic_height_in_luma_samples * 2는 refPicHeightInLumaSamples보다 크거나 동일해야 한다.pic_height_in_luma_samples * 2 must be greater than or equal to refPicHeightInLumaSamples.

-- -- pic_width_in_luma_samples는 refPicWidthInLumaSamples * 8보다 작거나 동일해야 한다.pic_width_in_luma_samples must be less than or equal to refPicWidthInLumaSamples * 8.

-- -- pic_height_in_luma_samples는 refPicHeightInLumaSamples * 8보다 작거나 동일해야 한다.pic_height_in_luma_samples must be less than or equal to refPicHeightInLumaSamples * 8.

1과 동일한 conformance_window_flag는 SPS에서 적합성 자르기 윈도우 오프셋 파라미터가 다음에 따른다는 것을 나타낸다. 0과 동일한 conformance_window_flag는 적합성 자르기 윈도우 오프셋 파라미터가 존재하지 않음을 나타낸다.conformance_window_flag equal to 1 indicates that the conformance cropping window offset parameter in SPS follows. conformance_window_flag equal to 0 indicates that the conformance cropping window offset parameter does not exist.

conf_win_left_offset, conf_win_right_offset, conf_win_top_offset 및 conf_win_bottom_offset은 출력을 위한 픽처 좌표에 지정된 직사각형 영역의 관점에서 디코딩 프로세스에서 출력되는 CVS의 픽처 샘플을 지정한다. conformance_window_flag가 0과 같을 때 conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, conf_win_bottom_offset의 값은 0과 같은 것으로 유추된다.conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offset specify picture samples of CVS output in the decoding process in terms of the rectangular area specified in picture coordinates for output. When conformance_window_flag is equal to 0, the values of conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset are inferred to be equal to 0.

적합성 크로핑 윈도우는 SubWidthC * conf_win_left_offset to pic_width_in_luma_samples - ( SubWidthC * conf_win_right_offset + 1 의 수평 픽처 좌표 및 SubHeightC * conf_win_top_offset to pic_height_in_luma_samples - ( SubHeightC * conf_win_bottom_offset + 1 )의 수직 픽처 좌표가 포함되는 좌표를 갖는 루마 샘플을 포함한다.적합성 크로핑 윈도우는 SubWidthC * conf_win_left_offset to pic_width_in_luma_samples - ( SubWidthC * conf_win_right_offset + 1 의 수평 픽처 좌표 및 SubHeightC * conf_win_top_offset to pic_height_in_luma_samples - ( SubHeightC * conf_win_bottom_offset + 1 )의 수직 픽처 좌표가 포함되는 좌표를 갖는 루마 샘플을 포함한다 .

SubWidthC * ( conf_win_left_offset + conf_win_right_offset ) 의 값은 pic_width_in_luma_samples 보다 작아야 하고, SubHeightC * ( conf_win_top_offset + conf_win_bottom_offset ) 의 값은 pic_height_in_luma_samples 보다 작아야 한다.The value of SubWidthC * ( conf_win_left_offset + conf_win_right_offset ) must be less than pic_width_in_luma_samples, and the value of SubHeightC * ( conf_win_top_offset + conf_win_bottom_offset ) must be less than pic_height_in_luma_samples.

PicOutputWidthL 및 PicOutputHeightL 변수는 다음과 같이 유도된다:The PicOutputWidthL and PicOutputHeightL variables are derived as follows:

PicOutputWidthL = pic_width_in_luma_samples - (7-43)PicOutputWidthL = pic_width_in_luma_samples - (7-43)

SubWidthC * ( conf_win_right_offset + conf_win_left_offset ) SubWidthC * ( conf_win_right_offset + conf_win_left_offset )

PicOutputHeightL = pic_height_in_pic_size_units - (7-44) SubHeightC * ( conf_win_bottom_offset + conf_win_top_offset )PicOutputHeightL = pic_height_in_pic_size_units - (7-44) SubHeightC * ( conf_win_bottom_offset + conf_win_top_offset )

ChromaArrayType이 0이 아닐 때, 두 크로마 어레이의 해당하는 지정된 샘플은 픽처 좌표( x / SubWidthC, y / SubHeightC )를 갖는 샘플이고, 여기서 ( x, y )는 지정된 루마 샘플의 픽처 좌표이다.When ChromaArrayType is non-zero, the corresponding specified samples of both chroma arrays are samples with picture coordinates ( x / SubWidthC, y / SubHeightC ), where ( x, y ) is the picture coordinate of the specified luma sample.

참고 - 적합성 크로핑 윈도우 오프셋 파라미터는 출력에만 적용된다. 모든 내부 디코딩 프로세스는 크롭되지 않은 픽처 크기에 적용된다.Note - The conformance cropping window offset parameter only applies to outputs. All internal decoding processes are applied to the uncropped picture size.

ppsA 및 ppsB를 동일한 SPS를 참조하는 임의의 두 PPS라고 가정한다. ppsA 및 ppsB가 각각 pic_width_in_luma_samples 및 pic_height_in_luma_samples의 동일한 값을 가질 때, ppsA 및 ppsB는 각각 conf_win_left_offset, conf_win_right_offset, conf_win_right_offset, _offset_win,_conf의 동일한 값을 가져야 하는 것이 비트스트림 적합성의 요구사항이다.Assume that ppsA and ppsB are any two PPSs referencing the same SPS. When ppsA and ppsB have the same values of pic_width_in_luma_samples and pic_height_in_luma_samples, respectively, it is a requirement of bitstream that ppsA and ppsB must have the same conformance values of conf_win_left_offset, conf_win_right_offset, conf_win_right_offset, _offset_win,_conf, respectively.

2.4.2.4. 레퍼런스 픽처 리샘플링(Reference Picture Resampling)(RPR)Reference Picture Resampling (RPR)

일부 실시예에서, ARC는 레퍼런스 픽처 리샘플링(RPR)으로도 알려져 있다. RPR의 일부 구현 예에서, 병치된 픽처의 해상도가 현재 픽처와 다른 경우 TMVP가 비활성화된다. 또한, 레퍼런스 픽처의 해상도가 현재 픽처와 다른 경우 양방향 광학 흐름(Bi-Directional Optical Flow)(BDOF) 및 디코더측 모션 벡터 정제(Decoder-side Motion Vector Refinement)(DMVR)가 비활성화된다.In some embodiments, ARC is also known as reference picture resampling (RPR). In some implementations of RPR, TMVP is disabled when the resolution of the collocated picture is different from the current picture. In addition, when the resolution of the reference picture is different from the current picture, Bi-Directional Optical Flow (BDOF) and Decoder-side Motion Vector Refinement (DMVR) are deactivated.

레퍼런스 픽처가 현재 픽처와 다른 해상도를 가질 때 일반 MC를 처리하기 위해, 보간 섹션은 다음과 같이 정의된다:To handle normal MC when the reference picture has a different resolution than the current picture, the interpolation section is defined as follows:

8.5.6.3 분수 샘플 보간 프로세스(Fractional sample interpolation process)8.5.6.3 Fractional sample interpolation process

8.5.6.3.1 일반8.5.6.3.1 General

이 프로세스에 대한 입력은 다음과 같다:Inputs to this process are:

- 현재 픽처의 왼쪽 상단 루마 샘플을 기준으로 현재 코딩 서브블록의 왼쪽 상단 샘플을 지정하는 루마 위치(xSb, ySb),- Luma position (xSb, ySb) designating the upper left sample of the current coding subblock based on the upper left luma sample of the current picture,

- 현재 코딩 서브블록의 너비를 지정하는 변수 sbWidth,- Variable sbWidth specifying the width of the current coding subblock,

- 현재 코딩 서브블록의 높이를 지정하는 변수 sbHeight,- Variable sbHeight that specifies the height of the current coding subblock,

- 모션 벡터 오프셋 mvOffset,- motion vector offset mvOffset,

- 세련된 모션 벡터 refMvLX,- stylish motion vector refMvLX,

- 선택한 레퍼런스 픽처 샘플 어레이 refPicLX,- selected reference picture sample array refPicLX,

- 하프 샘플 보간 필터 인덱스 hpelIfIdx,- half-sample interpolation filter index hpelIfIdx,

- 양방향 광학 흐름 플래그 bdofFlag,- bidirectional optical flow flag bdofFlag,

- 현재 블록의 컬러 컴포넌트 인덱스를 지정하는 가변 cIdx이다.- Variable cIdx designating the color component index of the current block.

이 프로세스의 출력은 다음과 같다:The output of this process is:

- 예측 샘플 값의 (sbWidth + brdExtSize)x(sbHeight + brdExtSize) array predSamplesLX of prediction- (sbWidth + brdExtSize)x(sbHeight + brdExtSize) array predSamplesLX of prediction

예측 블록 경계 확장 크기 brdExtSize는 다음과 같이 유도된다:The prediction block boundary extension size brdExtSize is derived as follows:

brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2 : 0 (8-752)brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2: 0 (8-752)

변수 fRefWidth는 루마 샘플에서 레퍼런스 픽처의 PicOutputWidthL과 동일하게 설정된다.The variable fRefWidth is set equal to PicOutputWidthL of the reference picture in luma samples.

변수 fRefHeight는 루마 샘플에서 레퍼런스 픽처의 PicOutputHeightL과 동일하게 설정된다.The variable fRefHeight is set equal to PicOutputHeightL of the reference picture in the luma sample.

모션 벡터 mvLX (refMvLX - mvOffset)와 동일하게 설정된다.It is set equal to the motion vector mvLX (refMvLX - mvOffset).

- cIdx가 0이면, 다음이 적용된다.- If cIdx is 0, the following applies.

- 스케일링 인자 및 고정 소수점 표현은 다음과 같이 정의된다. - The scaling factor and fixed-point representation are defined as follows.

hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753) hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753)

vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754) vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754)

- (xIntL, yIntL)은 전체 샘플 유닛으로 주어진 루마 위치로 하고 (xFracL, yFracL)는 1/16 샘플 유닛으로 주어진 오프셋으로 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내부의 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. - (xIntL, yIntL) is the luma position given in whole sample units, and (xFracL, yFracL) is the offset given in 1/16 sample units. These variables are used only in this section to specify the fractional sample location inside the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntL, ySbIntL)에 대한 경계 블록의 왼쪽 상단 좌표는 (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4))와 동일하게 설정된다. - The upper left coordinate of the boundary block for reference sample padding (xSbIntL, ySbIntL) is set equal to (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4)).

- 예측 루마 샘플 어레이 predSamplesLX 내의 각 루마 샘플 위치 (xL = 0..sbWidth - 1 + brdExtSize, yL = 0..sbHeight - 1 + brdExtSize)에 대해, 대응하는 예측 루마 샘플 값 predSamplesLX [xL] [yL] 다음과 같이 유도된다:- for each luma sample position in the predicted luma sample array predSamplesLX (x L = 0..sbWidth - 1 + brdExtSize, y L = 0..sbHeight - 1 + brdExtSize), the corresponding predicted luma sample value predSamplesLX [x L ] [y L ] is derived as:

- (refxSbL, refySbL) 및 (refxL, refyL)은 1/16- 샘플 유닛으로 지정된 모션 벡터(refMvLX [0], refMvLX [1])가 가리키는 루마 위치라 한다. 변수 refxSbL, refxL, refySbL 및 refyL은 다음과 같이 유도된다:- (refxSb L , refySb L ) and (refx L , refy L ) are the luma positions pointed to by motion vectors (refMvLX [0], refMvLX [1]) specified in 1/16-sample units. The variables refxSb L , refx L , refySb L and refy L are derived as follows:

refxSbL = ( ( xSb  <<  4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)refxSb L = ( ( xSb << 4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)

refxL =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)refx L =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)

+ xL *((hori_scale_fp + 8) >> 4)) + 32) >> 6 (8-756)+ x L *((hori_scale_fp + 8) >> 4)) + 32) >> 6 (8-756)

refySbL = ( ( ySb << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)refySb L = ( ( ySb << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)

refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL * refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL *

( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-758) ( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-758)

- xIntL, yIntL, xFracL 및 yFracL 변수는 다음과 같이 유도된다:- xInt L , yInt L , xFrac L and yFrac L variables are derived as follows:

xIntL = refxL >> 4 (8-759)xInt L = refx L >> 4 (8-759)

yIntL = refyL >> 4 (8-760)yInt L = refy L >> 4 (8-760)

xFracL = refxL & 15 (8-761)xFrac L = refx L & 15 (8-761)

yFracL = refyL & 15 (8-762)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 절에 지정된 루마 정수 샘플 가져오기 프로세스를 호출하여 유도된다. - If bdofFlag is equal to TRUE ( sps_affine_prof_enabled_flag is TRUE and inter_affine_flag[ xSb ][ ySb ] is equal to TRUE, and one or more of the following conditions are true, the predicted luma sample value predSamplesLX[ x L ][ y L ] ( xIntL + ( xFrac L >> 3 ) - 1), yInt L + ( yFrac L >> 3 ) - 1 ) and refPicLX as inputs, the luma integer sample specified in section 8.5.6.3.3 Derived by invoking the import process.

- xL은 0과 동일하다.- x L is equal to zero.

- xL은 sbWidth + 1과 동일하다.- x L is equal to sbWidth + 1.

- yL은 0과 동일하다.- y L is equal to 0.

- yL은 sbHeight + 1과 동일하다.- y L is equal to 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 탭 보간 필터링 프로세스를 호출하여 유도된다.    - Otherwise, the predicted luma sample values predSamplesLX[xL][yL] are (xIntL-(brdExtSize > 0? 1: 0), yIntL-(brdExtSize > 0? 1: 0)), (xFracL, yFracL), (xSbInt) L , ySbInt L ), refPicLX, hpelIfIdx, sbWidth, sbHeight, and (xSb, ySb) are derived by invoking the luma sample 8-tap interpolation filtering process specified in section 8.5.6.3.2 as input.

- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:- Otherwise (cIdx is not 0), the following applies:

- (xIntC, yIntC)는 전체 샘플 유닛으로 주어진 크로마 위치이고(xFracC, yFracC)는 1/32 샘플 유닛으로 주어진 오프셋이라고 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내에서 일반적인 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. Let (xIntC, yIntC) be the chroma position given in whole sample units and (xFracC, yFracC) be the offset given in 1/32 sample units. These variables are used only in this section to specify common fractional sample locations within the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntC, ySbIntC)에 대한 경계 블록의 왼쪽 상단 좌표는 ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5))와 동일하게 설정된다. - The upper-left coordinates of the bounding block for reference sample padding (xSbIntC, ySbIntC) are ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5) ) is set the same as

- 예측 크로마 샘플 어레이 predSamplesLX 내의 각 크로마 샘플 위치 (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1)에 대해, 대응하는 예측 크로마 샘플 값 predSamplesLX [xC] [yC]는 다음과 같이 유도된다: - for each chroma sample position (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1) in the predicted chroma sample array predSamplesLX, the corresponding predicted chroma sample value predSamplesLX [xC] [yC] is is derived:

- (refxSbC, refySbC) 및 (refxC, refyC)를 1/32 샘플 유닛으로 주어진 모션 벡터(mvLX [0], mvLX [1])가 가리키는 크로마 위치라고 한다. 변수 refxSbC, refySbC, refxC 및 refyC는 다음과 같이 유도된다:- Let (refxSb C , refySb C ) and (refx C , refy C ) be the chroma positions pointed to by the motion vectors (mvLX [0], mvLX [1]) given in 1/32 sample units. The variables refxSb C , refySb C , refx C and refy C are derived as follows:

refxSbC =  ( ( xSb / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)refxSb C = ( ( xSb / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)

refxC=((Sign(refxSbC) *((Abs(refxSbC) + 256) >> 9)refx C =((Sign(refxSb C ) *((Abs(refxSb C ) + 256) >> 9)

+ xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764) + xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764)

refySbC =  ( ( ySb / SubHeightC  <<  5 )  + mvLX[ 1 ] ) * vert_scale_fp (8-765)refySb C = ( ( ySb / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765)

refyC =((Sign(refySbC) *((Abs(refySbC) + 256) >> 9)refy C =((Sign(refySb C ) *((Abs(refySb C ) + 256) >> 9)

+ yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766) + yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766)

- 변수 xIntC, yIntC, xFracC 및 yFracc는 다음과 같이 유도된다:- the variables xInt C , yInt C , xFrac C and yFrac c are derived as follows:

xIntC = refxC >> 5 (8-767)xInt C = refx C >> 5 (8-767)

yIntC = refyC >> 5 (8-768)yInt C = refy C >> 5 (8-768)

xFracC = refyC & 31 (8-769)xFrac C = refy C & 31 (8-769)

yFracC = refyC & 31 (8-770)yFrac C = refy C & 31 (8-770)

- 예측 샘플 값 predSamplesLX [xC] [yC]는 (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight 및 refPicLX을 입력으로 하여 8.5.6.3.4에 지정된 프로세스를 호출하여 유도된다:- The predicted sample values predSamplesLX[xC][yC] are derived by calling the process specified in 8.5.6.3.4 with (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight, and refPicLX as inputs. do:

8.5.6.3.2 루마 샘플 보간 필터링 프로세스8.5.6.3.2 Luma Sample Interpolation Filtering Process

이 프로세스에 대한 입력은 다음과 같다:Inputs to this process are:

- 전체 샘플 유닛의 루마 위치(xIntL, yIntL)- Luma position of the entire sample unit (xInt L , yInt L )

- 분수 샘플 유닛의 루마 위치 (xFracL, yFracL),- luma position of fractional sample units (xFrac L , yFrac L ),

- 레퍼런스 픽처의 왼쪽 상단 루마 샘플을 기준으로 레퍼런스 샘플 패딩에 대한 경계 블록의 왼쪽 상단 샘플을 지정하는 전체 샘플 유닛(xSbIntL, ySbIntL)의 루마 위치,- The luma position of the entire sample unit (xSbInt L , ySbInt L ) that specifies the upper-left sample of the boundary block for reference sample padding based on the upper-left luma sample of the reference picture,

- 루마 레퍼런스 샘플 어레이 refPicLXL,- luma reference sample array refPicLX L ,

- 하프 샘플 보간 필터 인덱스 hpelIfIdx,- half-sample interpolation filter index hpelIfIdx,

- 현재 서브블록의 너비를 지정하는 변수 sbWidth,- Variable sbWidth that specifies the width of the current subblock,

- 현재 서브블록의 높이를 지정하는 변수 sbHeight,- Variable sbHeight that specifies the height of the current subblock,

- 현재 픽처의 왼쪽 상단 루마 샘플에 상대적인 현재 서브블록의 왼쪽 상단 샘플을 지정하는 루마 위치 (xSb, ySb),- Luma position (xSb, ySb) that specifies the upper-left sample of the current subblock relative to the upper-left luma sample of the current picture;

이 프로세스의 출력은 예측된 루마 샘플 값 predSampleLXL 이다.The output of this process is the predicted luma sample value predSampleLX L .

shift1, shift2 및 shift3 변수는 다음과 같이 유도된다:The shift1, shift2 and shift3 variables are derived as follows:

- 변수 shift1은 Min(4, BitDepthY - 8)과 동일하게 설정되고, 변수 shift2는 6과 동일하게 설정되고, 변수 shift3는 Max(2, 14 - BitDepthY)와 동일하게 설정된다.- Variable shift1 is set equal to Min(4, BitDepth Y - 8), variable shift2 is set equal to 6, and variable shift3 is set equal to Max(2, 14 - BitDepth Y ).

- 변수 picW는 pic_width_in_luma_samples 동일하게 설정되고, 변수 picH는 pic_height_in_luma_samples 동일하게 설정된다.- The variable picW is set equal to pic_width_in_luma_samples, and the variable picH is set equal to pic_height_in_luma_samples.

xFracL 또는 yFracL과 같은 각 1/16 분수 샘플 위치 p에 대한 루마 보간 필터 계수 fL[p]는 다음과 같이 유도된다:The luma interpolation filter coefficients f L [p] for each 1/16 fractional sample position p, such as xFrac L or yFrac L , are derived as follows:

- MotionModelIdc [xSb] [ySb]가 0보다 크고, sbWidth와 sbHeight가 모두 4이면 루마 보간 필터 계수 fL[p]가 표 2에 지정된다.- If MotionModelIdc [xSb] [ySb] is greater than 0 and both sbWidth and sbHeight are 4, the luma interpolation filter coefficient f L [p] is specified in Table 2.

- 그렇지 않으면, 루마 보간 필터 계수 fL[p]는 hpelIfIdx에 따라 표 1에 지정된다.- Otherwise, the luma interpolation filter coefficients f L [p] are specified in Table 1 according to hpelIfIdx.

전체 샘플 유닛(xInti, yInti)의 루마 위치는 i = 0..7에 대해 다음과 같이 유도된다:The luma position of the whole sample unit (xInt i , yInt i ) is derived as follows for i = 0..7:

- subpic_processor_as_pic_flag [SubPicIdx]가 1 인 경우, 다음이 적용된다:- If subpic_processor_as_pic_flag [SubPicIdx] is equal to 1, the following applies:

xInti = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i - 3 ) (8-771)xInt i = Clip3( SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xInt L + i - 3 ) (8-771)

yInti = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i - 3 ) (8-772)yInt i = Clip3( SubPicTopBoundaryPos, SubPicBotBoundaryPos, yInt L + i - 3 ) (8-772)

- 그렇지 않으면(subpic_treat_as_pic_flag [SubPicIdx]가 0과 동일함), 다음이 적용된다:- Otherwise (subpic_treat_as_pic_flag [SubPicIdx] equals 0), the following applies:

xInti = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ? ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xIntL + i - 3 ) : (8-773) xInt i = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ? ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xInt L + i - 3 ) : (8-773)

xIntL + i - 3)xInt L + i - 3)

yInti = Clip3(0, picH - 1, yIntL + i - 3) (8-774)yInt i = Clip3(0, picH - 1, yInt L + i - 3) (8-774)

전체 샘플 유닛의 루마 위치는 i = 0..7에 대해 다음과 같이 추가로 수정된다:The luma position of the whole sample unit is further modified as follows for i = 0..7:

xInti = Clip3(xSbIntL - 3, xSbIntL + sbWidth + 4, xInti) (8-775)xInt i = Clip3(xSbInt L - 3, xSbInt L + sbWidth + 4, xInt i ) (8-775)

yInti = Clip3(ySbIntL - 3, ySbIntL + sbHeight + 4, yInti) (8-776)yInt i = Clip3(ySbInt L - 3, ySbInt L + sbHeight + 4, yInt i ) (8-776)

예측된 루마 샘플 값 predSampleLXL은 다음과 같이 유도된다:The predicted luma sample value predSampleLX L is derived as follows:

- xFracL과 yFracL이 모두 0이면, predSampleLXL의 값은 다음과 같이 유도된다:- If xFrac L and yFrac L are both 0, the value of predSampleLX L is derived as follows:

predSampleLXL = refPicLXL[ xInt3 ][ yInt3 ] << shift3 (8-777)predSampleLX L = refPicLX L [ xInt 3 ][ yInt 3 ] << shift3 (8-777)

- 그렇지 않으면, xFracL이 0이 아니고 yFracL이 0이면 predSampleLXL의 값은 다음과 같이 유도된다:- Otherwise, if xFrac L is not 0 and yFrac L is 0, the value of predSampleLX L is derived as follows:

predSampleLXL =

Figure pct00002
>>  shift1 (8-778)predSampleLX L =
Figure pct00002
>> shift1 (8-778)

- 그렇지 않으면, xFracL이 0이고 yFracL이 0이 아닌 경우, predSampleLXL의 값은 다음과 같이 유도된다:- Otherwise, if xFrac L is 0 and yFrac L is non-zero, the value of predSampleLX L is derived as follows:

predSampleLXL =

Figure pct00003
>> shift1 (8-779)predSampleLX L =
Figure pct00003
>> shift1 (8-779)

- 그렇지 않으면, xFracL이 0이 아니고, yFracL이 0이 아닌 경우, predSampleLXL의 값은 다음과 같이 유도된다:- Otherwise, if xFrac L is non-zero and yFrac L is non-zero, the value of predSampleLX L is derived as follows:

- n = 0..7 인 샘플 어레이 temp [n]은 다음과 같이 유도된다: - the sample array temp[n] with n = 0..7 is derived as follows:

temp[ n ] =

Figure pct00004
  >>  shift1 (8-780)temp[ n ] =
Figure pct00004
>> shift1 (8-780)

- 예측된 루마 샘플 값 predSampleLXL은 다음과 같이 유도된다: - The predicted luma sample value predSampleLXL is derived as follows:

predSampleLXL =

Figure pct00005
 >>  shift2 (8-781)predSampleLX L =
Figure pct00005
>> shift2 (8-781)

각 1/16 분수 샘플 위치 p에 대한 루마 보간 필터 계수 fL[p]의 사양.Specification of luma interpolation filter coefficients f L [p] for each 1/16 fractional sample position p. 분수 샘플 위치 pFractional sample position p 보간 필터 계수(interpolation filter coefficients))interpolation filter coefficients ff LL [p][0][p][0] ff LL [p][1][p][1] ff LL [p][2][p][2] ff LL [p][3][p][3] ff LL [p][4][p][4] ff LL [p][5][p][5] ff LL [p][6][p][6] ff LL [p][7][p][7] 1One 00 1One -3-3 6363 44 -2-2 1One 00 22 -1-One 22 -5-5 6262 88 -3-3 1One 00 33 -1-One 33 -8-8 6060 1313 -4-4 1One 00 44 -1-One 44 -10-10 5858 1717 -5-5 1One 00 55 -1-One 44 -11-11 5252 2626 -8-8 33 -1-One 66 -1-One 33 -9-9 4747 3131 -10-10 44 -1-One 77 -1-One 44 -11-11 4545 3434 -10-10 44 -1-One 8 (hpelIfIdx = = 0)8 (hpelIfIdx = = 0) -1-One 44 -11-11 4040 4040 -11-11 44 -1-One 8 (hpelIfIdx = = 1)8 (hpelIfIdx = = 1) 00 33 99 2020 2020 99 33 00 99 -1-One 44 -10-10 3434 4545 -11-11 44 -1-One 1010 -1-One 44 -10-10 3131 4747 -9-9 33 -1-One 1111 -1-One 33 -8-8 2626 5252 -11-11 44 -1-One 1212 00 1One -5-5 1717 5858 -10-10 44 -1-One 1313 00 1One -4-4 1313 6060 -8-8 33 -1-One 1414 00 1One -3-3 88 6262 -5-5 22 -1-One 1515 00 1One -2-2 44 6363 -3-3 1One 00

아핀 모션 모드에 대한 각 1/16 분수 샘플 위치 p에 대한 루마 보간 필터 계수 fL [p]의 사양.Specification of luma interpolation filter coefficients f L [p] for each 1/16th fractional sample position p for the affine motion mode. 분수 샘플 위치 pFractional sample position p 보간 필터 계수(interpolation filter coefficients)interpolation filter coefficients ff LL [p][0][p][0] ff LL [p][1][p][1] ff LL [p][2][p][2] ff LL [p][3][p][3] ff LL [p][4][p][4] ff LL [p][5][p][5] ff LL [p][6][p][6] ff LL [p][7][p][7] 1One 00 1One -3-3 6363 44 -2-2 1One 00 22 00 1One -5-5 6262 88 -3-3 1One 00 33 00 22 -8-8 6060 1313 -4-4 1One 00 44 00 33 -10-10 5858 1717 -5-5 1One 00 55 00 33 -11-11 5252 2626 -8-8 22 00 66 00 22 -9-9 4747 3131 -10-10 33 00 77 00 33 -11-11 4545 3434 -10-10 33 00 88 00 33 -11-11 4040 4040 -11-11 33 00 99 00 33 -10-10 3434 4545 -11-11 33 00 1010 00 33 -10-10 3131 4747 -9-9 22 00 1111 00 22 -8-8 2626 5252 -11-11 33 00 1212 00 1One -5-5 1717 5858 -10-10 33 00 1313 00 1One -4-4 1313 6060 -8-8 22 00 1414 00 1One -3-3 88 6262 -5-5 1One 00 1515 00 1One -2-2 44 6363 -3-3 1One 00

8.5.6.3.3 루마 정수 샘플 가져오기 프로세스(Luma integer sample fetching process)8.5.6.3.3 Luma integer sample fetching process

이 프로세스에 대한 입력은 다음과 같다:Inputs to this process are:

- 전체 샘플 유닛의 루마 위치(xIntL, yIntL)- Luma position of the entire sample unit (xInt L , yInt L )

- 루마 레퍼런스 샘플 어레이 refPicLXL,- luma reference sample array refPicLX L ,

이 프로세스의 출력은 예측된 루마 샘플 값 predSampleLXL 이다.The output of this process is the predicted luma sample value predSampleLX L .

변수 shift는 Max(2, 14 - BitDepthY)와 동일하게 설정된다.The variable shift is set equal to Max(2, 14 - BitDepth Y ).

변수 picW는 pic_width_in_luma_samples 동일하게 설정되고, 변수 picH는 pic_height_in_luma_samples 동일하게 설정된다.The variable picW is set equal to pic_width_in_luma_samples, and the variable picH is set equal to pic_height_in_luma_samples.

전체 샘플 유닛(xInt, yInt)의 루마 위치는 다음과 같이 유도된다:The luma position of the entire sample unit (xInt, yInt) is derived as follows:

xInt = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ? (8-782) xInt = Clip3( 0, picW - 1, sps_ref_wraparound_enabled_flag ? (8-782)

ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xIntL ) : xIntL )ClipH( ( sps_ref_wraparound_offset_minus1 + 1 ) * MinCbSizeY, picW, xInt L ) : xInt L )

yInt = Clip3( 0, picH - 1, yIntL ) (8-783)yInt = Clip3( 0, picH - 1, yInt L ) (8-783)

예측된 루마 샘플 값 predSampleLXL은 다음과 같이 유도된다: The predicted luma sample value predSampleLX L is derived as follows:

predSampleLXL = refPicLXL[ xInt ][ yInt ] << shift3 (8-784)predSampleLX L = refPicLX L [ xInt ][ yInt ] << shift3 (8-784)

8.5.6.3.4 크로마 샘플 보간 과정8.5.6.3.4 Chroma Sample Interpolation Process

이 프로세스에 대한 입력은 다음과 같다:Inputs to this process are:

- 전체 샘플 유닛의 크로마 위치 (xIntC, yIntC),- the chroma position of the whole sample unit (xInt C , yInt C ),

- 1/32 분수 샘플 유닛(xFracC, yFracC)의 크로마 위치,- Chroma position of 1/32 fractional sample units (xFrac C , yFrac C ),

- 레퍼런스 픽처의 왼쪽 상단 크로마 샘플에 대한 레퍼런스 샘플 패딩에 대한 경계 블록의 왼쪽 상단 샘플을 지정하는 전체 샘플 유닛(xSbIntC, ySbIntC)의 크로마 위치,- the chroma position of the entire sample unit (xSbInt C , ySbInt C ) that specifies the upper-left sample of the boundary block for reference sample padding with respect to the upper-left chroma sample of the reference picture,

- 현재 서브블록의 너비를 지정하는 변수 sbWidth,- Variable sbWidth that specifies the width of the current subblock,

- 현재 서브블록의 높이를 지정하는 변수 sbHeight,- Variable sbHeight that specifies the height of the current subblock,

- 크로마 레퍼런스 샘플 어레이 refPicLXC - Chroma Reference Sample Array refPicLX C

이 프로세스의 출력은 예측된 크로마 샘플 값 predSampleLXC이다.The output of this process is the predicted chroma sample value predSampleLX C .

shift1, shift2 및 shift3 변수는 다음과 같이 유도된다:The shift1, shift2 and shift3 variables are derived as follows:

- 변수 shift1은 Min(4, BitDepthC - 8)과 동일하게 설정되고, 변수 shift2는 6과 동일하게 설정되고, shift3 변수는 Max(2, 14 - BitDepthC)와 동일하게 설정된다.- Variable shift1 is set equal to Min(4, BitDepth C - 8), variable shift2 is set equal to 6, and shift3 variable is set equal to Max(2, 14 - BitDepth C ).

- 변수 picWC는 pic_width_in_luma_samples/SubWidthC와 동일하게 설정되고 변수 picHC는 pic_height_in_luma_samples/SubHeightC와 동일하게 설정된다.- Variable picW C is set equal to pic_width_in_luma_samples/SubWidth C and variable picH C is set equal to pic_height_in_luma_samples/SubHeightC.

xFracC 또는 yFracC와 같은 각 1/32 분수 샘플 위치 p에 대한 크로마 보간 필터 계수 fC [p]는 표 3에 지정되어 있다.The chroma interpolation filter coefficients f C [p] for each 1/32 fractional sample position p, such as xFrac C or yFrac C , are specified in Table 3.

변수 xOffset는 (sps_ref_wraparound_offset_minus1 + 1) * MinCbSizeY)/SubWidthC와 동일하게 설정된다.The variable xOffset is set equal to (sps_ref_wraparound_offset_minus1 + 1) * MinCbSizeY)/SubWidthC.

전체 샘플 유닛(xInti, yInti)의 크로마 위치는 i = 0..3에 대해 다음과 같이 유도된다:The chroma position of the whole sample unit (xInt i , yInt i ) is derived as follows for i = 0..3:

- subpic_processor_as_pic_flag [SubPicIdx]가 1 인 경우, 다음이 적용된다:- If subpic_processor_as_pic_flag [SubPicIdx] is equal to 1, the following applies:

xInti = Clip3( SubPicLeftBoundaryPos / SubWidthC, SubPicRightBoundaryPos / SubWidthC, xIntL + i ) (8-785) xInti = Clip3( SubPicLeftBoundaryPos / SubWidthC, SubPicRightBoundaryPos / SubWidthC, xIntL + i ) (8-785)

yInti = Clip3( SubPicTopBoundaryPos / SubHeightC, SubPicBotBoundaryPos / SubHeightC, yIntL + i ) (8-786) yInti = Clip3( SubPicTopBoundaryPos / SubHeightC, SubPicBotBoundaryPos / SubHeightC, yIntL + i ) (8-786)

- 그렇지 않으면(subpic_treat_as_pic_flag [SubPicIdx]가 0과 동일함), 다음이 적용된다:- Otherwise (subpic_treat_as_pic_flag [SubPicIdx] equals 0), the following applies:

xInti = Clip3( 0, picWC - 1, sps_ref_wraparound_enabled_flag ? ClipH( xOffset, picWC, xIntC + i - 1 ) : (8-787)xInt i = Clip3( 0, picW C - 1, sps_ref_wraparound_enabled_flag ? ClipH( xOffset, picW C , xInt C + i - 1 ) : (8-787)

xIntC + i - 1 )xInt C + i - 1 )

yInti = Clip3( 0, picHC - 1, yIntC + i - 1 ) (8-788)yInt i = Clip3( 0, picH C - 1, yInt C + i - 1 ) (8-788)

전체 샘플 유닛( xInti, yInti )의 크로마 위치는 i = 0..3에 대해 다음과 같이 추가로 수정된다:The chroma position of the whole sample unit ( xInt i , yInt i ) is further modified for i = 0..3 as follows:

xInti = Clip3( xSbIntC - 1, xSbIntC + sbWidth + 2, xInti ) (8-789)xInt i = Clip3( xSbIntC - 1, xSbIntC + sbWidth + 2, xInt i ) (8-789)

yInti = Clip3( ySbIntC - 1, ySbIntC + sbHeight + 2, yInti ) (8-790)yInt i = Clip3( ySbIntC - 1, ySbIntC + sbHeight + 2, yInt i ) (8-790)

예측된 크로마 샘플 값 predSampleLXC는 다음과 같이 유도된다: The predicted chroma sample value predSampleLX C is derived as follows:

- xFracC 및 yFracC가 모두 0이면, predSampleLXC의 값은 다음과 같이 유도된다:- if xFrac C and yFrac C are both 0, the value of predSampleLX C is derived as follows:

predSampleLXC = refPicLXC[ xInt1 ][ yInt1 ] << shift3 (8-791)predSampleLX C = refPicLX C [ xInt 1 ][ yInt 1 ] << shift3 (8-791)

- 그렇지 않으면, xFracC가 0이 아니고 yFracC가 0이면 predSampleLXC의 값은 다음과 같이 유도된다:- Otherwise, if xFrac C is not 0 and yFrac C is 0, then the value of predSampleLX C is derived as follows:

predSampleLXC =

Figure pct00006
  >>  shift1 (8-792)predSampleLX C =
Figure pct00006
>> shift1 (8-792)

- 그렇지 않으면, xFracC가 0이고 yFracC가 0이 아니면, predSampleLXC의 값은 다음과 같이 유도된다:- Otherwise, if xFracC is 0 and yFracC is non-zero, the value of predSampleLXC is derived as follows:

predSampleLXC =

Figure pct00007
  >>  shift1 (8-793)predSampleLX C =
Figure pct00007
>> shift1 (8-793)

- 그렇지 않으면, xFracC가 0이 아니고 yFracC가 0이 아니면, predSampleLXC의 값은 다음과 같이 유도된다:- Otherwise, if xFracC is non-zero and yFracC is non-zero, the value of predSampleLXC is derived as follows:

n = 0..3 인 샘플 어레이 temp [n]은 다음과 같이 유도된다: The sample array temp[n] with n = 0..3 is derived as follows:

temp[ n ] =

Figure pct00008
  >>  shift1 (8-794)temp[ n ] =
Figure pct00008
>> shift1 (8-794)

예측된 크로마 샘플 값 predSampleLXC는 다음과 같이 유도된다:The predicted chroma sample value predSampleLX C is derived as follows:

predSampleLXC =( fC[ 

Figure pct00009
][ 0 ] * temp[ 0 ] +predSampleLX C =( f C [
Figure pct00009
][ 0 ] * temp[ 0 ] +

 fC[ 

Figure pct00010
 ][ 1 ] * temp[ 1 ] +f C [
Figure pct00010
][ 1 ] * temp[ 1 ] +

 fC[ 

Figure pct00011
 ][ 2 ] * temp[ 2 ] + (8-795)f C [
Figure pct00011
][ 2 ] * temp[ 2 ] + (8-795)

 fC[ 

Figure pct00012
 ][ 3 ] * temp[ 3 ] ) >> shift2f C [
Figure pct00012
][ 3 ] * temp[ 3 ] ) >> shift2

각 1/32 분수 샘플 위치 p에 대한 크로마 보간 필터 계수 f C [p] 의 사양Specification of the chroma interpolation filter coefficients f C [p] for each 1/32 fractional sample position p 분수 샘플 위치 pFractional sample position p 보간 필터 계수Interpolation filter coefficients ff CC [ p ][ 0 ][ p ][ 0 ] ff CC [ p ][ 1 ][ p ][ 1 ] ff CC [ p ][ 2 ][ p ][ 2 ] ff CC [ p ][ 3 ][ p ][ 3 ] 1One -1-One 6363 22 00 22 -2-2 6262 44 00 33 -2-2 6060 77 -1-One 44 -2-2 5858 1010 -2-2 55 -3-3 5757 1212 -2-2 66 -4-4 5656 1414 -2-2 77 -4-4 5555 1515 -2-2 88 -4-4 5454 1616 -2-2 99 -5-5 5353 1818 -2-2 1010 -6-6 5252 2020 -2-2 1111 -6-6 4949 2424 -3-3 1212 -6-6 4646 2828 -4-4 1313 -5-5 4444 2929 -4-4 1414 -4-4 4242 3030 -4-4 1515 -4-4 3939 3333 -4-4 1616 -4-4 3636 3636 -4-4 1717 -4-4 3333 3939 -4-4 1818 -4-4 3030 4242 -4-4 1919 -4-4 2929 4444 -5-5 2020 -4-4 2828 4646 -6-6 2121 -3-3 2424 4949 -6-6 2222 -2-2 2020 5252 -6-6 2323 -2-2 1818 5353 -5-5 2424 -2-2 1616 5454 -4-4 2525 -2-2 1515 5555 -4-4 2626 -2-2 1414 5656 -4-4 2727 -2-2 1212 5757 -3-3 2828 -2-2 1010 5858 -2-2 2929 -1-One 77 6060 -2-2 3030 00 44 6262 -2-2 3131 00 22 6363 -1-One

2.5.2.5. 정제된 서브블록 기반 아핀 모션 보상 예측(Refined sub-block based affine motion compensated prediction)Refined sub-block based affine motion compensated prediction

본 명세서에 개시된 기술은 광학 흐름으로 서브블록 기반 아핀 모션 보상된 예측을 정제하는 방법을 포함한다. 서브블록 기반 아핀 모션 보상이 수행된 후, 예측 샘플은 광학 흐름(PROF)을 사용하여 예측 정제라고 하는 광학 흐름 식에 의해 유도된 차이를 추가하여 정제된다. 제안된 메서드는 메모리 액세스 대역폭을 증가하지 않고도 픽셀 레벨 세분성으로 인터 예측을 달성할 수 있다.The techniques disclosed herein include a method of refining subblock based affine motion compensated prediction with optical flow. After subblock-based affine motion compensation is performed, the prediction samples are refined using optical flow (PROF) to add differences derived by an optical flow equation called prediction refinement. The proposed method can achieve inter prediction with pixel-level granularity without increasing memory access bandwidth.

모션 보상의 세분성을 달성하기 위해, 이 기여는 광학 흐름으로 예측을 보상하는 서브블록 기반 아핀 모션을 구체화하는 방법을 제안한다. 서브블록 기반 아핀 모션 보상이 수행된 후, 루마 예측 샘플은 광학 흐름 식에 의해 유도된 차이를 추가하여 정제된다. 제안된 PROF(광학 흐름을 위한 예측 정제)는 다음 4단계로 설명된다.To achieve the granularity of motion compensation, this contribution proposes a method to refine subblock-based affine motion that compensates prediction with optical flow. After subblock-based affine motion compensation is performed, the luma prediction sample is refined by adding the difference derived by the optical flow equation. The proposed PROF (predictive refinement for optical flow) is described in the following four steps.

단계 1) 서브 블록 기반 아핀 모션 보상은 서브 블록 예측을 생성하기 위해 수행된다. Step 1) Sub-block-based affine motion compensation is performed to generate sub-block predictions.

단계 2) 서브 블록 예측의 공간 그레디언트 gx(i,j) 및 gy(i,j)는 3-탭 필터 [-1, 0, 1] 을 사용하여 각 샘플 위치에서 계산된다.Step 2) The spatial gradients g x (i,j) and g y (i,j) of sub-block prediction are computed at each sample position using a 3-tap filter [-1, 0, 1].

Figure pct00013
Figure pct00013

서브블록 예측은 그레디언트 계산을 위해 각 면에서 1픽셀씩 확장된다. 메모리 대역폭과 복잡성을 줄이기 위해 확장된 테두리의 픽셀은 레퍼런스 픽처에서 가장 가까운 정수 픽셀 위치에서 복사된다. 따라서 패딩 영역에 대한 추가 보간을 피할 수 있다.The subblock prediction is expanded by 1 pixel on each side for gradient computation. To reduce memory bandwidth and complexity, pixels with extended borders are copied from the nearest integer pixel location in the reference picture. Therefore, additional interpolation for the padding area can be avoided.

단계 3) 광학 흐름 식에 의해 계산되는 바와 같이 루마 예측 정제(ΔI로 표시됨). Step 3) Luma prediction refinement (denoted as ΔI) as calculated by the optical flow equation.

Figure pct00014
Figure pct00014

여기서 delta MV(Δv(i,j)로 표시됨)는 v(i,j)로 표시되는 샘플 위치(i,j)에 대해 계산된 픽셀 MV와 도 1에 도시된 바와 같이, 픽셀 (i,j)가 속하는 서브블록의 서브블록 MV사이의 차이이다. 1. where delta MV (denoted as Δv(i,j)) is the pixel MV calculated for the sample position (i,j) expressed as v(i,j) and, as shown in Fig. 1, pixel (i,j) ) is the difference between the subblock MVs of the subblock to which it belongs. One.

아핀 모델 파라미터와 서브블록 중심에 대한 픽셀 위치는 서브블록에서 서브블록으로 변경되지 않으므로, Δv(i,j)는 제1 서브블록에 대해 계산될 수 있고, 동일한 CU의 다른 서브블록에 대해 재사용될 수 있다. x와 y를 픽셀 위치에서 서브블록의 중심까지의 수평 및 수직 오프셋이라고 하자, Δv(i,j)는 다음 식에 의해 유도될 수 있다:Since the affine model parameters and the pixel position for the subblock center do not change from subblock to subblock, Δv(i,j) can be calculated for the first subblock and be reused for other subblocks of the same CU. can Let x and y be the horizontal and vertical offsets from the pixel position to the center of the subblock, Δv(i,j) can be derived by the following equation:

Figure pct00015
Figure pct00015

4파라미터 아핀 모델의 경우For the 4-parameter affine model

Figure pct00016
Figure pct00016

6 파라미터 아핀 모델의 경우For a 6-parameter affine model

Figure pct00017
Figure pct00017

여기서

Figure pct00018
는 왼쪽 상단, 오른쪽 상단 및 왼쪽 하단 제어점 모션 벡터이고, w 및 h는 는 CU의 너비와 높이이다.here
Figure pct00018
are the upper-left, upper-right, and lower-left control point motion vectors, and w and h are the width and height of the CU.

단계 4) 마지막으로, 루마 예측 구체화가 서브블록 예측 I(i,j)에 추가된다. 최종 예측 I'는 다음 식으로 생성된다:Step 4) Finally, a luma prediction specification is added to the subblock prediction I(i,j). The final prediction I' is generated by the following equation:

Figure pct00019
Figure pct00019

일부 세부 정보는 아래에 설명되어 있다:Some details are explained below:

a) PROF의 그레디언트를 유도하는 방법a) How to derive the gradient of PROF

일부 실시예에서, 그레디언트는 각 레퍼런스 목록에 대해 각 서브블록(VTM-4.0의 4Х4 서브블록)에 대해 계산된다. 각 서브블록에 대해, 레퍼런스 블록의 가장 가까운 정수 샘플은 샘플의 4측 외부 라인을 패딩 하기 위해 패치된다.In some embodiments, a gradient is calculated for each subblock (4Х4 subblock of VTM-4.0) for each reference list. For each subblock, the nearest integer sample of the reference block is fetched to pad the outer four-sided line of the sample.

현재 서브블록에 대한 MV가 (MVx, MVy)라고 가정한다. 그런 다음 분수 부분(FracX, FracY)==(MVx&15, MVy&15)로 계산된다. 정수 부분은 (IntX, IntY)==(MVx>>4, MVy>>4)로 계산된다. offset(OffsetX, OffsetY)은 다음과 같이 유도된다.It is assumed that the MV for the current subblock is (MVx, MVy). Then the fractional part (FracX, FracY)==(MVx&15, MVy&15) is calculated. The integer part is calculated as (IntX, IntY)==(MVx>>4, MVy>>4). offset(OffsetX, OffsetY) is derived as follows.

OffsetX = FracX > 7 ? 1 : 0;OffsetX = FracX > 7 ? 1: 0;

OffsetY = FracY > 7 ? 1 : 0;OffsetY = FracY > 7 ? 1: 0;

현재 서브 블록의 왼쪽 좌표가 (xCur, yCur) 및 현재 서브 블록의 차원은 WxH라고 가정한다. 그런 다음 (xCor0, yCor0), (xCor1, yCor1), (xCor2, yCor2) 및 (xCor3, yCor3)는 다음과 같이 계산된다:It is assumed that the left coordinate of the current subblock is (xCur, yCur) and the dimension of the current subblock is WxH. Then (xCor0, yCor0), (xCor1, yCor1), (xCor2, yCor2) and (xCor3, yCor3) are calculated as:

(xCor0, yCor0) = (xCur+IntX+OffsetX-1, yCur+IntY+OffsetY-1);(xCor0, yCor0) = (xCur+IntX+OffsetX-1, yCur+IntY+OffsetY-1);

(xCor1, yCor1) = (xCur+IntX+OffsetX-1, yCur+IntY+OffsetY+H);(xCor1, yCor1) = (xCur+IntX+OffsetX-1, yCur+IntY+OffsetY+H);

(xCor2, yCor2) = (xCur+IntX+OffsetX-1, yCur+IntY+OffsetY);(xCor2, yCor2) = (xCur+IntX+OffsetX-1, yCur+IntY+OffsetY);

(xCor3, yCor3) = (xCur+IntX+OffsetX+W, yCur+IntY+OffsetY);(xCor3, yCor3) = (xCur+IntX+OffsetX+W, yCur+IntY+OffsetY);

x=0..W-1, y=0. H-1을 갖는 PredSample[x][y]가 서브 블록에 대한 예측 샘플을 저장한다고 가정하자. 그런 다음 패딩 샘플은 다음과 같이 유도된다: x=0..W-1, y=0. Assume that PredSample[x][y] with H-1 stores prediction samples for subblocks. Then the padding sample is derived as follows:

PredSample[x][-1] = (Ref (xCor0+x, yCor0) << Shift0) - Rounding, x=-1..W;PredSample[x][-1] = (Ref (xCor0+x, yCor0) << Shift0) - Rounding, x=-1..W;

PredSample[x][H] = (Ref (xCor1+x, yCor1) << Shift0) - Rounding, x=-1..W;PredSample[x][H] = (Ref (xCor1+x, yCor1) << Shift0) - Rounding, x=-1..W;

PredSample[-1][-1][y] = (Ref (xCor2, yCor2+y) << Shift0) - Rounding, y=0.H-1;PredSample[-1][-1][y] = (Ref (xCor2, yCor2+y) << Shift0) - Rounding, y=0.H-1;

PredSample[W][y] = (Ref (xCor3, yCor3+y) << Shift0) - Rounding, y=0..H-1;PredSample[W][y] = (Ref (xCor3, yCor3+y) << Shift0) - Rounding, y=0..H-1;

Rec가 레퍼런스 픽처를 나타내는 위치이다. 반올림은 예시적인 PROF 구현에서 213과 동일한 정수이다. Shift0 = Max(2, (14 - BitDepth)):_PROF는 그레디언트가 입력 루마 샘플과 동일한 정밀도로 출력되는 VTM-4.0의 BIO와 달리 그레디언트의 정밀도를 높이려고 시도한다.Rec indicates a reference picture. Rounding is an integer equal to 2 13 in the example PROF implementation. Shift0 = Max(2, (14 - BitDepth)):_PROF attempts to increase the precision of the gradient, unlike the BIO of VTM-4.0 where the gradient is output with the same precision as the input luma samples.

PROF의 그레디언트는 다음과 같이 계산된다:The gradient of PROF is calculated as follows:

Shift1 = Shift0-4.Shift1 = Shift0-4.

gradientH [ x ][ y ]  =  (predSamples [ x + 1 ][y] - predSample [ x -1 ][ y ] ) >> Shift1gradientH [ x ][ y ] = (predSamples [ x + 1 ][y] - predSample [ x -1 ][ y ] ) >> Shift1

gradientV [ x ][ y ]  =   (predSample[ x ][ y + 1 ] - predSample [ x ][y - 1 ] ) >> Shift1gradientV [ x ][ y ] = (predSample[ x ][ y + 1 ] - predSample [ x ] ][y - 1 ] ) >> Shift1

predSamples[x][y]는 보간 후 정밀도를 유지한다는 점에 유의해야 한다.It should be noted that predSamples[x][y] retains precision after interpolation.

b) PROF를 위한 Δv를 유도하는 방법b) how to derive Δv for PROF

Δv의 유도 (dMvH [posX][posY][posY][posX][posX][posY] [posY] [posY] 와 posY= 0..H-1로 표기된) 아래와 같이 설명할 수 있다The derivation of Δv (denoted as dMvH [posX][posY][posY][posX][posX][posY] [posY] [posY] and posY= 0..H-1) can be described as follows

현재 블록의 차원이 cbWidth Х cbHeight, 제어 점 모션 벡터의 수는 numCpMv이고, 제어 지점 모션 벡터는 cpIdx = 0.numCpMv - 1 및 X가 두 개의 레퍼런스 목록을 나타내는 0 또는 1인 cpMVX[cpIdx]라고 가정한다.Assume that the dimension of the current block is cbWidth Х cbHeight, the number of control point motion vectors is numCpMv, and the control point motion vector is cpMVX[cpIdx] where cpIdx = 0.numCpMv - 1 and X is 0 or 1 representing two reference lists. do.

변수 log2CbW 및 log2CbH는 다음과 같이 유도된다:The variables log2CbW and log2CbH are derived as follows:

log2CbW = Log2( cbWidth ) log2CbW = Log2( cbWidth )

log2CbH = Log2( cbHeight ) log2CbH = Log2( cbHeight )

변수 mvScaleHor, mvScaleVer, dHorX 및 dVerX는 다음과 같이 유도된다:The variables mvScaleHor, mvScaleVer, dHorX and dVerX are derived as follows:

mvScaleHor = cpMvLX[ 0 ][ 0 ] << 7 mvScaleHor = cpMvLX[ 0 ][ 0 ] << 7

mvScaleVer = cpMvLX[ 0 ][ 1 ] << 7mvScaleVer = cpMvLX[ 0 ][ 1 ] << 7

dHorX = ( cpMvLX[ 1 ][ 0 ] - cpMvLX[ 0 ][ 0 ] ) << ( 7 -log2CbW ) dHorX = ( cpMvLX[ 1 ][ 0 ] - cpMvLX[ 0 ][ 0 ] ) << ( 7 -log2CbW )

dVerX = ( cpMvLX[ 1 ][ 1 ] - cpMvLX[ 0 ][ 1 ] ) << ( 7 -log2CbW ) dVerX = ( cpMvLX[ 1 ][ 1 ] - cpMvLX[ 0 ][ 1 ] ) << ( 7 -log2CbW )

변수 dHorY 및 dVerY는 다음과 같이 유도된다:The variables dHorY and dVerY are derived as follows:

numCpMv가 3과 동일하면, 다음이 적용된다:If numCpMv is equal to 3, then the following applies:

dHorY = ( cpMvLX[ 2 ][ 0 ] - cpMvLX[ 0 ][ 0 ] ) << ( 7 -log2CbH ) dHorY = ( cpMvLX[ 2 ][ 0 ] - cpMvLX[ 0 ][ 0 ] ) << ( 7 -log2CbH)

dVerY = ( cpMvLX[ 2 ][ 1 ] - cpMvLX[ 0 ][ 1 ] ) << ( 7 -log2CbH ) dVerY = ( cpMvLX[ 2 ][ 1 ] - cpMvLX[ 0 ][ 1 ] ) << ( 7 -log2CbH)

그렇지 않으면 (numCpMv는 2와 같음), 다음을 적용한다:Otherwise (numCpMv equals 2), the following applies:

dHorY = - dVerX dHorY = - dVerX

dVerY = dHorX dVerY = dHorX

변수 qHorX, qVerX, qHorY 및 qVerY는 다음과 ƒˆ이 유도된다:The variables qHorX, qVerX, qHorY and qVerY are derived as follows:

qHorX = dHorX << 2;qHorX = dHorX << 2;

qVerX = dVerX << 2;qVerX = dVerX << 2;

qHorY = dHorY << 2;qHorY = dHorY << 2;

qVerY = dVerY << 2;qVerY = dVerY << 2;

dMvH[0][0][0] 및 dMvV[0][0][0]는 다음과 같이 계산된다:dMvH[0][0][0] and dMvV[0][0][0] are calculated as follows:

dMvH[0][0] = ((dHorX + dHorY) << 1) - ((qHorX + qHorY) << 1); dMvH[0][0] = ((dHorX + dHorY) << 1) - ((qHorX + qHorY) << 1);

dMvV[0][0] = ((dVerX + dVerY) << 1) - ((qVerX + qVerY) << 1); dMvV[0][0] = ((dVerX + dVerY) << 1) - ((qVerX + qVerY) << 1);

1에서 W-1까지의 xPos에 대한 dMvH[xPos][0] 및 dMvV[xPos][0]는 다음과 같이 유도된다:dMvH[xPos][0] and dMvV[xPos][0] for xPos from 1 to W-1 are derived as follows:

dMvH[xPos][0] = dMvH[xPos-1][0] + qHorX; dMvH[xPos][0] = dMvH[xPos-1][0] + qHorX;

dMvV[xPos][0] = dMvV[xPos-1][0] + qVerX; dMvV[xPos][0] = dMvV[xPos-1][0] + qVerX;

1에서 H-1까지의 yPos의 경우 다음과 같은 것이 적용된다:For yPos from 1 to H-1, the following applies:

dMvH[xPos][yPos] = dMvH[xPos][yPos-1] + qHorY with xPos=0..W-1 dMvH[xPos][yPos] = dMvH[xPos][yPos-1] + qHorY with xPos=0..W-1

dMvV[xPos][yPos] = dMvV[xPos][yPos-1] + qVerY with xPos=0..W-1 dMvV[xPos][yPos] = dMvV[xPos][yPos-1] + qVerY with xPos=0..W-1

마지막으로, dMvH[xPos][yPos][yPos][xPos][yPos] [yPos] posX = 0.W-1, posY=0..H-1은 다음과 같이 오른쪽으로 시프트된다:Finally, dMvH[xPos][yPos][yPos][xPos][yPos] [yPos] posX = 0.W-1, posY=0..H-1 is shifted right as follows:

dMvH[xPos][yPos] = SatShift( dMvH[xPos][yPos], 7+2-1); dMvH[xPos][yPos] = SatShift(dMvH[xPos][yPos], 7+2-1);

dMvV[xPos][yPos] = SatShift( dMvV[xPos][yPos], 7+2-1); dMvV[xPos][yPos] = SatShift( dMvV[xPos][yPos], 7+2-1);

여기서 SatShift(x, n) 및 shift(x,n)는 다음과 같이 정의된다: where SatShift(x, n) and shift(x, n) are defined as:

SatShift(x,n) = (x + offset0)>>n, x>=0이면,If SatShift(x,n) = (x + offset0)>>n, x>=0, then

= -((-x + offset1)>>n ), x< 이면, = -((-x + offset1)>>n ), if x<

shift(x,, n)=(x+ offset0)>>nshift(x,, n)=(x+ offset0)>>n

하나의 예에서, 오프셋0 및/또는 오프셋1은 (1<<n)>>1로설정된다.In one example, offset0 and/or offset1 is set to (1<<n)>>1.

c) PROF를 위한 ΔI를 유도하는 방법c) method of deriving ΔI for PROF

서브 블록 내부의 위치(posX, posY)의 경우, 대응하는 Δv(i,j)는 (dMvH[posX][posY], dMvV[posX][posY]로 표시된다. 대응하는 그레디언트는 (gradientH[posX][posY], gradientV[posX][posY]로 표시된다.For a position (posX, posY) inside a subblock, the corresponding Δv(i,j) is denoted by (dMvH[posX][posY], dMvV[posX][posY]. The corresponding gradient is (gradientH[posX) ][posY], gradientV[posX][posY].

그런 다음 ΔI(posX, posY)는 다음과 같이 유도된다.Then ΔI(posX, posY) is derived as

(dMvH[posX][posY], dMvV[posX][posY]는 다음과 같이 클리핑 된다:(dMvH[posX][posY], dMvV[posX][posY] is clipped to:

dMvH[posX][posY] = Clip3( -32768, 32767, dMvH[posX][posY]); dMvH[posX][posY] = Clip3(-32768, 32767, dMvH[posX][posY]);

dMvV[posX][posY] = Clip3( -32768, 32767, dMvV[posX][posY]); dMvV[posX][posY] = Clip3(-32768, 32767, dMvV[posX][posY]);

ΔI(posX, posY)= dMvH[posX][posY] Х gradientH[posX][posY] + dMvV[posX][posY] Х gradientV[posX][posY]; ΔI(posX, posY) = dMvH[posX][posY] Х gradientH[posX][posY] + dMvV[posX][posY] Х gradientV[posX][posY];

ΔI(posX, posY) = Shift( ΔI(posX, posY), 1+1+4); ΔI(posX, posY) = Shift(ΔI(posX, posY), 1+1+4);

ΔI(posX, posY) = Clip3( -(213-1), 213-1, ΔI(posX, posY));ΔI(posX, posY) = Clip3(-(2 13 -1), 2 13 -1, ΔI(posX, posY));

PROF를 위한 I'를 유도하는 방법How to Derive I' for PROF

현재 블록이 이중 예측 또는 가중 예측으로 코딩 되지 않은 경우If the current block is not coded with double prediction or weighted prediction

I'(posX, posY) = Shift((I(posX, posY) + ΔI(posX, posY)), Shift0), I'(posX, posY) = Shift((I(posX, posY) + ΔI(posX, posY)), Shift0),

I'(posX, posY) = ClipSample(I'(posX, posY)), I'(posX, posY) = ClipSample(I'(posX, posY)),

여기서 ClipSample은 샘플 값을 유효한 출력 샘플 값으로 클립 한다. 그런 다음 I'(posX, posY)는 상호 예측 값으로 출력된다.Here ClipSample clips the sample value to a valid output sample value. Then, I'(posX, posY) is output as a mutual prediction value.

그렇지 않으면(현재 블록은 이중 예측 또는 가중 예측으로 코딩 된다) I'(posX, posY)는 저장되어 다른 예측 값 및/또는 가중치값에 따라 상호 예측 값을 생성하는 데 사용된다. I'(posX, posY)는 저장되어 다른 예측 값 및/또는 가중치값에 따라 상호 예측 값을 생성하는 데 사용된다. Otherwise (the current block is coded with double prediction or weighted prediction) I'(posX, posY) is stored and used to generate inter prediction values according to other prediction values and/or weight values. I'(posX, posY) is stored and used to generate inter-prediction values according to other prediction values and/or weight values.

2.6.2.6. 슬라이스 헤더 예(Example Slice header) Example Slice header

Figure pct00020
Figure pct00020

Figure pct00021
Figure pct00021

Figure pct00022
Figure pct00022

Figure pct00023
Figure pct00023

Figure pct00024
Figure pct00024

2.7.2.7. 시퀀스 파라미터 세트의 예Example of a sequence parameter set

Figure pct00025
Figure pct00025

Figure pct00026
Figure pct00026

Figure pct00027
Figure pct00027

Figure pct00028
Figure pct00028

Figure pct00029
Figure pct00029

2.8 픽처 파라미터 설정의 예(Example Picture Parameter Set) 2.8 Example Picture Parameter Set

Figure pct00030
Figure pct00030

Figure pct00031
Figure pct00031

Figure pct00032
Figure pct00032

Figure pct00033
Figure pct00033

2.9.2.9. 적응 파라미터 집합의 예(Example Adaptive Parameter Set)Example Adaptive Parameter Set

Figure pct00034
Figure pct00034

Figure pct00035
Figure pct00035

Figure pct00036
Figure pct00036

Figure pct00037
Figure pct00037

Figure pct00038
Figure pct00038

2.10.2.10. 픽처 헤더의 예(Example Picture header)Example Picture header

일부 실시예에서, 픽처 헤더는 다음 속성을 갖도록 설계된다:In some embodiments, the picture header is designed to have the following properties:

1. 픽처 헤더 NAL 유닛의 사간적 Id 및 계층 Id는 픽처 헤더를 포함하는 계층 액세스 유닛의 시간적 Id 및 계층 Id와 동일하다.1. The temporal Id and the layer Id of the picture header NAL unit are the same as the temporal Id and the layer Id of the layer access unit including the picture header.

2. 픽처 헤더 NAL 유닛은 연관된 픽처의제1 슬라이스를 포함하는 NAL 유닛보다 선행해야 한다. 이것은 픽처 헤더에서 시그널링되고 슬라이스 헤더로부터 참조되는 픽처 헤더 Id를 가질 필요 없이 픽처 헤더와 픽처 헤더와 연관된 픽처 슬라이스 사이의 연관을 확립하였다.2. The picture header NAL unit must precede the NAL unit containing the first slice of the associated picture. This established the association between the picture header and the picture slice associated with the picture header without having to have the picture header Id signaled in the picture header and referenced from the slice header.

3. 픽처 헤더 NAL 유닛은 DPS, VPS, SPS, PPS 등과 같은 픽처 레벨 파라미터 세트 또는 상위 레벨을 따라야 한다. 이것은 결과적으로 이러한 파라미터 세트가 반복되지 않거나 픽처 내 또는 액세스 유닛 내에서 존재하도록 요구한다.3. The picture header NAL unit must follow the picture level parameter set or higher level such as DPS, VPS, SPS, PPS, etc. This in turn requires that this parameter set is not repeated or exists within a picture or within an access unit.

4. 픽처 헤더는 연결된 픽처의 픽처 유형에 대한 정보를 포함한다. 픽처 유형을 사용하여 다음을 정의할 수 있다(전체 목록이 아님).4. The picture header includes information on the picture type of the linked picture. Picture types can be used to define (not a complete list):

a. 픽처는 IDR 픽처다 a. The picture is an IDR picture.

b. 픽처는 CRA 픽처다 b. The picture is a CRA picture

c. 픽처는 GDR 픽처다. c. The picture is a GDR picture.

d. 픽처는 IRAP, GDR 이외 픽처고 i-슬라이스만 포함한다. d. A picture is a picture other than IRAP and GDR and contains only i-slice.

e. 픽처는 IRAP가 아닌 GDR 픽처고 P 및 I-슬라이스만 포함할 수 있다. e. A picture is a non-IRAP GDR picture and can contain only P and I-slices.

f. 픽처는 비 IRAP, 비 GDR 픽처고 B-, P- 및/또는 I-슬라이스를 포함한다. f. A picture is a non-IRAP, non-GDR picture and contains B-, P- and/or I-slice.

5. 슬라이스 헤더에 있는 픽처 레벨 신택스 요소의 시그널링을 픽처 헤더로 이동한다.5. Move the signaling of the picture level syntax element in the slice header to the picture header.

6. 동일한 픽처 인 픽처 헤더의 모든 슬라이스에 대해 일반적으로 동일한 슬라이스 헤더의 신호 비-픽처 레벨 신택스 요소. 이러한 신택스 요소가 픽처 헤더에 존재하지 않는 경우, 슬라이스 헤더에서 시그널링될 수 있다.6. Signal non-picture level syntax elements in slice headers that are generally the same for all slices of the same picture-in-picture header. When such a syntax element does not exist in the picture header, it may be signaled in the slice header.

일부 구현에서, 필수 픽처 헤더 개념은 픽처의제1 VCL NAL 유닛으로서 픽처당 한 번 전송되도록 사용된다. 또한 현재 슬라이스 헤더에 있는 신택스 요소를 이 픽처 헤더로 이동하는 것이 제안된다. 기능적으로 픽처당 한 번만 전송하면 되는 신택스 요소는 주어진 픽처에 대해 여러 번 전송되는 대신 픽처 헤더로 이동될 수 있고, 예를 들어, 슬라이스 헤더의 신택스 요소는 슬라이스당 한 번 전송된다. 픽처 내에서 동일하도록 제약된 이동 슬라이스 헤더 신택스 요소In some implementations, the essential picture header concept is used to be transmitted once per picture as the first VCL NAL unit of the picture. It is also proposed to move the syntax element in the current slice header to this picture header. A syntax element that functionally only needs to be transmitted once per picture can be moved to the picture header instead of being transmitted multiple times for a given picture, e.g., a syntax element of a slice header is transmitted once per slice. Moving slice header syntax element constrained to be identical within a picture

신택스 요소는 이미 픽처의 모든 슬라이스에서 동일하도록 제약되어 있다. 이러한 필드를 픽처 헤더로 이동하여 슬라이스당 한 번 대신 픽처당 한 번만 신호를 받으면 이러한 신택스 요소의 기능에 대한 변경 없이 비트의 불필요한 중복 전송을 방지할 수 있다.The syntax element is already constrained to be the same in all slices of a picture. If this field is moved to the picture header and the signal is received only once per picture instead of once per slice, unnecessary redundant transmission of bits can be prevented without changing the function of these syntax elements.

1. 일부 구현에는 다음과 같은 의미 제약이 있다:1. Some implementations have the following semantic constraints:

존재하는 경우, 슬라이스 헤더 신택스 요소인 slice_pic_parameter_set_id, non_reference_picture_flag, color_plane_id, slice_pic_order_cnt_lsb, recovery_poc_cnt, no_output_of_prior_pics_flag, pic_output_flag 및 slice_temporal_mvp_enabled_flag의 각 슬라이스 헤더의 값은 aflag에서 동일한 슬라이스 헤더가 되어야 한다. 따라서 이러한 신택스 요소 각각은 불필요한 중복 비트를 피하기 위해 픽처 헤더로 이동할 수 있다. If present, the slice header syntax elements slice_pic_parameter_set_id, non_reference_picture_flag, color_plane_id, slice_pic_order_cnt_lsb, recovery_poc_cnt, no_output_of_prior_pics_flag, pic_output_flag, and slice_temporal_mvp_enabled_flag in each slice header must be the same values of the slice header. Therefore, each of these syntax elements can be moved to the picture header to avoid unnecessary redundant bits.

Recovery_poc_cnt 및 no_output_of_prior_pics_flag는 이 기여에서 픽처 헤더로 이동되지 않는다. 슬라이스 헤더에서의 존재 여부는 슬라이스 헤더 nal_unit_type의 조건부 검사에 의존하므로, 이러한 신택스 요소를 픽처 헤더로 이동하려는 경우 연구하는 것이 좋다. Recovery_poc_cnt and no_output_of_prior_pics_flag are not moved to the picture header in this contribution. Since its existence in the slice header depends on the conditional check of the slice header nal_unit_type, it is recommended to study this syntax element when moving it to the picture header.

2. 일부 구현에는 다음과 같은 의미 제약이 있다:2. Some implementations have the following semantic constraints:

존재하는 경우, slice_lmcs_aps_id의 값은 픽처의 모든 슬라이스에 대해 동일해야 한다.If present, the value of slice_lmcs_aps_id must be the same for all slices of a picture.

존재하는 경우, slice_scaling_list_aps_id의 값은 픽처의 모든 슬라이스에 대해 동일해야 한다. 따라서 이러한 신택스 요소 각각은 불필요한 중복 비트를 피하기 위해 픽처 헤더로 이동할 수 있다.If present, the value of slice_scaling_list_aps_id must be the same for all slices of a picture. Therefore, each of these syntax elements can be moved to the picture header to avoid unnecessary redundant bits.

일부 실시예에서, 신택스 요소는 픽처의 모든 슬라이스에서 동일하도록 제약되지 않는다. 모든 슬라이스 헤더에서 많은 수의 신택스 요소를 처리하는 데 복잡성 영향이 있다고 주장되기 때문에 전체 VVC 설계를 단순화하기 위해 픽처 헤더로 이동할 수 있는 항목을 결정하기 위해 이러한 신택스 요소의 예상 사용을 평가하는 것이 좋다.In some embodiments, syntax elements are not constrained to be the same in all slices of a picture. Because it is claimed that there is a complexity impact in handling the large number of syntax elements in any slice header, it is worthwhile to evaluate the expected use of these syntax elements to determine what can be moved into the picture header to simplify the overall VVC design.

1. 픽처 헤더로 이동하기 위해 다음과 같은 신택스 요소를 제안한다. 현재 서로 다른 슬라이스에 대해 서로 다른 값을 갖는 것에 대한 제한은 없지만 예상되는 사용이 픽처 레벨에서 변경되기 때문에 모든 슬라이스 헤더에서 전송하는 것에 대한 이점과 코딩 손실이 없거나 최소화된다고 주장된다.1. To move to the picture header, the following syntax elements are proposed. There are currently no restrictions on having different values for different slices, but it is claimed that there is no or minimal coding loss and advantages over transmitting in every slice header because the expected usage changes at the picture level.

a. six_minus_max_num_merge_canda. six_minus_max_num_merge_cand

b. five_minus_max_num_subblock_merge_candb. five_minus_max_num_subblock_merge_cand

c. slice_fpel_mmvd_enabled_flagc. slice_fpel_mmvd_enabled_flag

d. slice_disable_bdof_dmvr_flagd. slice_disable_bdof_dmvr_flag

e. max_num_merge_cand_minus_max_num_triangle_cande. max_num_merge_cand_minus_max_num_triangle_cand

f. slice_six_minus_max_num_ibc_merge_candf. slice_six_minus_max_num_ibc_merge_cand

2. 픽처 헤더로 이동하기 위해 다음과 같은 신택스 요소를 제안한다. 현재 서로 다른 슬라이스에 대해 서로 다른 값을 갖는 것에 대한 제한은 없지만 예상되는 사용이 픽처 레벨에서 변경되기 때문에 모든 슬라이스 헤더에서 전송하는 것에 대한 이점과 코딩 손실이 없거나 최소화된다고 주장된다.2. To move to the picture header, the following syntax elements are proposed. There are currently no restrictions on having different values for different slices, but it is claimed that there is no or minimal coding loss and advantages over transmitting in every slice header because the expected usage changes at the picture level.

a. partition_constraints_override_flag a. partition_constraints_override_flag

b. slice_log2_diff_min_qt_min_cb_luma b. slice_log2_diff_min_qt_min_cb_luma

c. slice_max_mtt_hierarchy_depth_lumac. slice_max_mtt_hierarchy_depth_luma

d. slice_log2_diff_max_bt_min_qt_lumad. slice_log2_diff_max_bt_min_qt_luma

e. slice_log2_diff_max_tt_min_qt_lumae. slice_log2_diff_max_tt_min_qt_luma

f. slice_log2_diff_min_qt_min_cb_chromaf. slice_log2_diff_min_qt_min_cb_chroma

g. slice_max_mtt_hierarchy_depth_chromag. slice_max_mtt_hierarchy_depth_chroma

h. slice_log2_diff_max_bt_min_qt_chromah. slice_log2_diff_max_bt_min_qt_chroma

i. slice_log2_diff_max_tt_min_qt_chromai. slice_log2_diff_max_tt_min_qt_chroma

이러한 신택스 요소 중 일부와 연관된 조건부 검사 "slice_type == I"이 픽처 헤더로 이동하면서 제거되었다.The conditional check "slice_type == I" associated with some of these syntax elements was removed as it moved to the picture header.

3. 픽처 헤더로 이동하기 위해 다음과 같은 신택스 요소를 제안한다. 현재 서로 다른 슬라이스에 대해 서로 다른 값을 갖는 것에 대한 제한은 없지만 예상되는 사용이 픽처 레벨에서 변경되기 때문에 모든 슬라이스 헤더에서 전송하는 것에 대한 이점과 코딩 손실이 없거나 최소화된다고 주장된다.3. To move to the picture header, the following syntax elements are proposed. There are currently no restrictions on having different values for different slices, but it is claimed that there is no or minimal coding loss and advantages over transmitting in all slice headers because the expected usage changes at the picture level.

a. mvd_l1_zero_flaga. mvd_l1_zero_flag

이러한 신택스 요소 중 일부와 연관된 조건부 검사 "slice_type == B"는 픽처 헤더로 이동하면서 제거되었다.The conditional check "slice_type == B" associated with some of these syntax elements was removed as it moved to the picture header.

4. 픽처 헤더로 이동하기 위해 다음과 같은 신택스 요소를 제안한다. 현재 서로 다른 슬라이스에 대해 서로 다른 값을 갖는 것에 대한 제한은 없지만 예상되는 사용이 픽처 레벨에서 변경되기 때문에 모든 슬라이스 헤더에서 전송하는 것에 대한 이점과 코딩 손실이 없거나 최소화된다고 주장된다.4. To move to the picture header, the following syntax elements are proposed. There are currently no restrictions on having different values for different slices, but it is claimed that there is no or minimal coding loss and advantages over transmitting in all slice headers because the expected usage changes at the picture level.

a. dep_quant_enabled_flaga. dep_quant_enabled_flag

b. sign_data_hiding_enabled_flagb. sign_data_hiding_enabled_flag

2.10.12.10.1 신택스 테이블의 예Syntax table example

7.3.2.8 픽처 헤더 RBSP 신택스7.3.2.8 Picture header RBSP syntax

Figure pct00039
Figure pct00039

Figure pct00040
Figure pct00040

Figure pct00041
Figure pct00041

Figure pct00042
Figure pct00042

2.11.2.11. DMVR 예DMVR Yes

디코더측 모션 벡터 정제(Decoder-side Motion Vector Refinement)(DMVR)는 두 개의 상이한 레퍼런스 픽처에서 현재 CU의 모션 궤적을 따라 두 블록 사이의 가장 가까운 매치를 찾아 현재 CU의 모션 정보를 유도하기 위해 양방향 매칭(bilateral matching)(BM)을 활용한다. BM 방법은 레퍼런스 픽처 목록 L0과 목록 L1의 두 후보 블록 사이의 왜곡(distortion)을 계산한다. 도 1과 같이, 초기 MV 주변의 각 MV 후보에 기초하여 레드 블록 사이의 SAD를 계산한다. 가장 ˆž은 SAD의 MV 후보는 정제된 MV가 되고 양방향 예측 신호를 생성하는 데 사용된다. 매칭 프로세스(matching process)에 사용되는 비용 함수는 행 부분 샘플링된 SAD(절대차의 합)이다. 도 7의 예.Decoder-side Motion Vector Refinement (DMVR) is a bi-directional matching to derive the motion information of the current CU by finding the closest match between two blocks along the motion trajectory of the current CU in two different reference pictures. (lateral matching) (BM) is used. The BM method calculates the distortion between two candidate blocks of the reference picture list L0 and the list L1. As shown in FIG. 1 , the SAD between the red blocks is calculated based on each MV candidate around the initial MV. The MV candidate of the shortest SAD becomes a refined MV and is used to generate a bidirectional prediction signal. The cost function used in the matching process is the row subsampled SAD (sum of absolute differences). Example of Figure 7.

VTM5.0에서, DMVR은 CU가 일반 병합/스킵 모드 및 양방향 예측으로 코딩될 때 CU(코딩 유닛)에 대한 디코더에서 모션 벡터(MV)를 개선하기 위해 채택되고, 하나의 레퍼런스 픽처는 현재 픽처 앞에 있고 다른 레퍼런스 픽처는 디스플레이 순서에서 현재 픽처 뒤에 있고, 현재 픽처와 하나의 레퍼런스 픽처 사이의 시간적 거리는 현재 픽처와 다른 레퍼런스 픽처 사이의 거리와 동일하고, CU 가중치(BCW)에 의한 양방향 예측은 동일한 가중치를 선택한다. DMVR이 적용될 때, 하나의 루마 코딩 블록(CB)은 min(cbWidth,16)Хmin(cbHeight,16) 크기의 독립적으로 처리된 여러 서브블록으로 나뉜다. DMVR은 이중 선형 보간에 의해 생성된 1/2 서브샘플링된 10비트 L0 및 L1 예측 샘플 사이의 SAD를 최소화하여 각 서브블록의 MV를 정제한다. 각 서브블록에 대해, 초기 MV(즉, 선택된 일반 병합/스킵 후보의 MV)를 중심으로 정수 ΔMV 탐색을 먼저 SAD를 이용하여 수행한 후, 분수 ΔMV 유도가 최종 MV를 획득하기 위해 수행된다.In VTM5.0, DMVR is adopted to improve the motion vector (MV) at the decoder for a CU (coding unit) when the CU is coded with normal merge/skip mode and bi-prediction, and one reference picture precedes the current picture. and another reference picture is after the current picture in display order, the temporal distance between the current picture and one reference picture is equal to the distance between the current picture and another reference picture, and bidirectional prediction by CU weighting (BCW) has the same weight. choose When DMVR is applied, one luma coding block (CB) is divided into several independently processed subblocks with a size of min(cbWidth,16)Хmin(cbHeight,16). DMVR refines the MV of each subblock by minimizing the SAD between the 1/2 subsampled 10-bit L0 and L1 prediction samples generated by bilinear interpolation. For each subblock, an integer ΔMV search around the initial MV (ie, the MV of the selected general merge/skip candidate) is first performed using SAD, and then fractional ΔMV derivation is performed to obtain the final MV.

BDOF는 CU가 양방향 예측으로 코딩될 때 CU에 대한 루마 예측 샘플을 정제하고, 하나의 레퍼런스 픽처는 현재 픽처 이전이고 다른 레퍼런스 픽처는 디스플레이 순서로 현재 픽처 뒤에 있고 BCW는 동일한 가중치를 선택한다. 8-탭 보간은 입력 MV(예를 들어, DMVR을 활성화하는 경우 DMVR의 최종 MV)에 따라 초기 L0 및 L1 예측 샘플을 생성하는 데 사용된다. 다음으로, 2-레벨 조기 종료 프로세스(early termination process)가 수행된다. 첫 번째 조기 종료는 서브블록 레벨이고, 두 번째 조기 종료는 4Х4 블록 레벨이고, 첫 번째 조기 종료가 발생하지 않을 때 확인된다. 각 레벨에서 각 서브블록/4x4 블록의 전체 샘플링된 14비트 L0 및 L1 예측 샘플 사이의 SAD가 먼저 계산된다. SAD가 하나의 임계값보다 작으면, BDOF는 서브블록/4x4 블록에 적용되지 않는다. 그렇지 않으면, BDOF 파라미터가 유도되어 각 4x4 블록에 대한 최종 루마 샘플 예측자를 생성하는 데 사용된다. BDOF에서, 서브블록 크기는 DMVR과 동일하며, 즉 min(cbWidth,16)Хmin(cbHeight,16)이다.BDOF refines the luma prediction samples for a CU when the CU is coded with bi-prediction, one reference picture is before the current picture, another reference picture is after the current picture in display order, and BCW selects the same weight. 8-tap interpolation is used to generate initial L0 and L1 prediction samples according to the input MV (eg, the final MV of the DMVR when activating the DMVR). Next, a two-level early termination process is performed. The first early termination is at the subblock level, the second early termination is at the 4Х4 block level, and is confirmed when the first early termination does not occur. At each level, the SAD between the fully sampled 14-bit L0 and L1 prediction samples of each subblock/4x4 block is computed first. If SAD is less than one threshold, BDOF is not applied to subblock/4x4 block. Otherwise, the BDOF parameters are derived and used to generate the final luma sample predictor for each 4x4 block. In BDOF, the subblock size is equal to DMVR, ie min(cbWidth,16)Хmin(cbHeight,16).

CU가 일반 병합/스킵 모드로 코딩된 경우, 하나의 레퍼런스 픽처는 현재 픽처 앞에 있고 다른 레퍼런스 픽처는 디스플레이 순서에서 현재 픽처 뒤에 있고, 현재 픽처와 하나의 레퍼런스 픽처 사이의 시간적 거리가 현재 픽처와 다른 레퍼런스 픽처 사이의 시간적 거리와 같고 BCW가 동일한 가중치를 선택하면 DMVR과 BDOF가 모두 적용된다. 계단식 DMVR 및 BDOF 프로세스의 흐름은 도 8에 도시되어 있다. When the CU is coded in normal merge/skip mode, one reference picture is before the current picture and another reference picture is after the current picture in display order, and the temporal distance between the current picture and one reference picture is different from the current picture. If a weight equal to the temporal distance between pictures and BCW is selected, both DMVR and BDOF are applied. The flow of the cascaded DMVR and BDOF process is shown in FIG. 8 .

도 8은 VTM5.0에서 DMVR 및 BDOF 프로세스를 계단식 흐름을 나타낸다. DMVR SAD 동작과 BDOF SAD 동작은 상이하고 공유되지 않는다.Figure 8 shows the cascading flow of DMVR and BDOF processes in VTM5.0. DMVR SAD operation and BDOF SAD operation are different and not shared.

이 임계 경로에서 지연 및 동작을 줄이기 위해, DMVR과 BDOF가 모두 적용될 때, 최신 VVC 작업 초안이 BDOF의 서브블록 조기 종료에 대해 DMVR에서 계산된 서브블록 SAD를 재사용하도록 수정되었다.In order to reduce delay and operation in this critical path, when both DMVR and BDOF are applied, the latest VVC working draft has been modified to reuse the subblock SAD calculated in DMVR for subblock early termination of BDOF.

SAD 계산은 다음과 같이 정의된다:The SAD calculation is defined as:

Figure pct00043
Figure pct00043

여기서 두 개의 변수 nSbW 및 nSbH는 현재 서브블록의 너비와 높이를 지정하고, 각각 L0 및 L1에 대한 예측 샘플을 포함하는 두 개의 ( nSbW + 4 ) x ( nSbH + 4 ) array pL0 및 pL1, 및 예측 목록 L0의 정수 샘플 오프셋( dX, dY )이다.where two variables nSbW and nSbH specify the width and height of the current subblock, and two ( nSbW + 4 ) x ( nSbH + 4 ) arrays pL0 and pL1, and prediction Integer sample offset ( dX, dY ) of list L0.

DMVR 정제의 불확실성에 대한 페널티를 줄이기 위해 DMVR 프로세스 동안 원본 MV를 선호하는 것이 제안된다. 초기(또는 원본이라고 하는) MV 후보가 참조하는 레퍼런스 블록들 사이의 SAD는 SAD 값의 1/4만큼 감소한다. 즉, 위의 식에서 dX와 dY가 모두 0일 때, sad 값은 다음과 같이 수정된다:In order to reduce the penalty for uncertainty of DMVR refinement, it is proposed to prefer the original MV during the DMVR process. The SAD between the reference blocks referred to by the initial (or so-called original) MV candidate is reduced by 1/4 of the SAD value. That is, when dX and dY are both 0 in the above expression, the sad value is modified as follows:

sad = sad - ( sad >> 2 )sad = sad - ( sad >> 2 )

SAD 값이 임계값(2*subblock width* subblock height)보다 작으면 더 이상 BDOF를 수행할 필요가 없다.If the SAD value is less than the threshold (2*subblock width*subblock height), there is no need to perform BDOF anymore.

3.3. 기존 구현의 단점Disadvantages of existing implementations

DMVR 및 BIO는 모션 벡터를 정제하는 동안 원래 신호를 포함하지 않으므로 부정확한 모션 정보로 블록을 코딩할 수 있다. 또한, DMVR과 BIO는 모션 정제 후에 분수 모션 벡터를 사용하는 경우가 있지만 화면 비디오는 일반적으로 정수 모션 벡터를 사용하므로 현재 모션 정보가 더 정확하지 않고 코딩 성능이 저하된다.DMVR and BIO do not contain the original signal while refining motion vectors, so it can code blocks with inaccurate motion information. Also, DMVR and BIO sometimes use fractional motion vectors after motion refinement, but screen video generally uses integer motion vectors, so the current motion information is not more accurate and coding performance is poor.

VVC에서 RPR을 적용할 때, RPR(ARC)은 다음과 같은 문제가 있을 수 있다:When applying RPR in VVC, RPR (ARC) may have the following problems:

1. RPR을 사용하면 블록의 인접 샘플에 대해 보간 필터가 다를 수 있고, 이는 단일 명령 다중 데이터(Single Instruction Multiple Data)(SIMD) 구현에서 바람직하지 않다. 1. Using RPR may result in different interpolation filters for adjacent samples in a block, which is undesirable in Single Instruction Multiple Data (SIMD) implementations.

2. 경계 영역(bounding region)은 RPR을 고려하지 않는다.2. The bounding region does not consider RPR.

3. "적합성 크로핑 윈도우 오프셋 파라미터는 출력에만 적용된다. 모든 내부 디코딩 프로세스는 크롭되지 않은 픽처 크기에 적용된다."고 나타낸다. 그러나, 이러한 파라미터는 RPR이 적용될 때 디코딩 프로세스에서 사용될 수 있다.3. It states "The conformance cropping window offset parameter applies only to the output. All internal decoding processes are applied to the uncropped picture size." However, these parameters may be used in the decoding process when RPR is applied.

4. 레퍼런스 샘플 위치를 유도할 때 RPR은 두 적합성 윈도우 사이의 비율만 고려한다. 그러나 두 적합성 윈도우 사이의 왼쪽 상단 오프셋 차이도 고려해야 한다. 4. When deriving the reference sample position, RPR only considers the ratio between the two fit windows. However, the difference in the upper-left offset between the two conformance windows must also be taken into account.

5. 레퍼런스 픽처의 너비/높이와 현재 픽처의 너비/높이 사이의 비율은 VVC에서 제약된다. 그러나, 레퍼런스 픽처의 적합성 윈도우의 너비/높이와 현재 픽처의 적합성 윈도우의 너비/높이 사이의 비율은 제약되지 않는다.5. The ratio between the width/height of the reference picture and the width/height of the current picture is constrained in VVC. However, the ratio between the width/height of the compatibility window of the reference picture and the width/height of the compatibility window of the current picture is not constrained.

6. 모든 신택스 요소가 픽처 헤더에서 제대로 처리되는 것은 아니다.6. Not all syntax elements are properly processed in the picture header.

7. 현재 VVC에서, TPM, GEO 예측 모드에 대해 크로마 블렌딩 가중치는 비디오 시퀀스의 크로마 샘플 위치 유형에 관계없이 유도된다. 예를 들어, TPM/GEO에서 크로마 가중치가 루마 가중치로부터 유도되는 경우, 크로마 신호의 샘플링과 일치하도록 루마 가중치를 다운샘플링해야 할 수 있다. 크로마 다운샘플링은 일반적으로 ITU-R BT.601 또는 ITU-R BT.709 컨테이너에서 널리 사용되는 크로마 샘플 위치 유형 0을 가정하여 적용된다. 그러나, 다른 크로마 샘플 위치 유형이 사용되는 경우, 이는 크로마 샘플과 다운샘플링된 루마 샘플 사이의 정렬 불량을 초래할 수 있고, 이는 코딩 성능을 감소시킬 수 있다.7. In current VVC, chroma blending weights for TPM, GEO prediction modes are derived regardless of the chroma sample position type of the video sequence. For example, in TPM/GEO, if chroma weights are derived from luma weights, it may be necessary to downsample the luma weights to match the sampling of the chroma signals. Chroma downsampling is generally applied assuming chroma sample position type 0, which is widely used in ITU-R BT.601 or ITU-R BT.709 containers. However, if other chroma sample position types are used, this may result in misalignment between the chroma samples and the downsampled luma samples, which may reduce coding performance.

8. SAD 계산/SAD 임계값은 비트 깊이 영향(bit-depth impact)을 고려하지 않는다. 따라서, 더 높은 비트 깊이(예를 들어, 14 또는 16비트 입력 시퀀스)의 경우, 조기 종료에 대한 임계값이 너무 작을 수 있다.8. SAD Calculation/SAD Threshold does not consider bit-depth impact. Thus, for higher bit depths (eg, 14 or 16 bit input sequences), the threshold for early termination may be too small.

9. 비-RPR의 경우, 1/2-펠(pel) MV 정밀도를 갖는 AMVR(즉, 대체 보간 필터/전환 가능한 보간 필터)은 6-탭 모션 보상 필터와 함께 적용되지만 다른 경우(예를 들어, 1/16-펠(pel))에는 8-탭이 적용된다. 그러나, RPR의 경우 mv/mvd 정밀도를 고려하지 않고 모든 경우에 동일한 보간 필터가 적용된다. 따라서, 1/2-펠(pel) 경우(대체 보간 필터/전환 가능한 보간 필터)의 시그널링은 비트를 낭비하고 있다.9. For non-RPR, AMVR with 1/2-pel MV precision (ie alternative interpolation filter/switchable interpolation filter) is applied with 6-tap motion compensation filter, but in other cases (e.g. , 1/16-pel) applies 8-tap. However, in the case of RPR, the same interpolation filter is applied in all cases without considering the mv/mvd precision. Thus, signaling in the 1/2-pel case (alternative interpolation filter/switchable interpolation filter) is wasting bits.

10. 파티션 트리 분할 결정의 허용 여부는 출력 픽처 해상도 대신 코딩된 픽처 해상도에 따라 결정된다. 10. Whether to allow the partition tree division decision is determined according to the coded picture resolution instead of the output picture resolution.

11. RPR 경우를 고려하지 않은 SMVD/MMVD가 적용된다. 이러한 방법은 두 개의 레퍼런스 픽처에 대칭 MVD가 적용된다는 가정에 기초한다. 그러나, 출력 픽처의 해상도가 상이한 경우, 이러한 가정은 사실이 아니다.11. SMVD/MMVD without considering RPR case is applied. This method is based on the assumption that symmetric MVD is applied to two reference pictures. However, when the resolution of the output picture is different, this assumption is not true.

12. 쌍별 병합 후보(pairwise merge candidate)는 동일한 레퍼런스 픽처 목록에 있는 두 개의 병합 후보로부터 두 개의 MV를 평균화하여 생성된다. 그러나 ,두 개의 병합 후보와 관련된 두 개의 레퍼런스 픽처가 해상도가 다른 경우 평균화는 의미가 없다.12. A pairwise merge candidate is generated by averaging two MVs from two merge candidates in the same reference picture list. However, when two reference pictures related to two merge candidates have different resolutions, averaging is meaningless.

4.4. 예시적인 기술 및 실시예Exemplary Techniques and Examples

아래 나열된 세부 기술은 일반적인 개념을 설명하기 위한 예로 고려되어야 한다. 이러한 실시예는 좁은 방법으로 해석되어서는 안 된다. 또한, 이들 실시예는 임의의 방식으로 조합될 수 있다.The detailed descriptions listed below should be considered as examples for illustrating general concepts. These examples should not be construed in a narrow way. Also, these embodiments may be combined in any manner.

후술하는 방법들은 후술하는 DMVR 및 BIO 외에도 다른 디코더 모션 정보 유도 기술(decoder motion information derivation technology)에도 적용될 수 있다.Methods to be described later may be applied to other decoder motion information derivation technologies in addition to DMVR and BIO to be described later.

모션 벡터는 (mv_x, mv_y)로 표시되고, 여기서 mv_x는 수평 컴포넌트고 mv_y는 수직 컴포넌트다.The motion vector is denoted by (mv_x, mv_y), where mv_x is the horizontal component and mv_y is the vertical component.

본 개시에서, 픽처의 해상도(또는 차원, 또는 너비/높이, 또는 크기)는 코딩/디코딩된 픽처의 해상도(또는 차원, 또는 너비/높이, 또는 크기)를 의미할 수 있고, 또는 코딩된/디코딩된 픽처에서 적합성 윈도우의 해상도(또는 차원, 또는 너비/높이, 또는 크기)를 참조할 수 있다. 하나의 예에서, 픽처의 해상도(또는 차원, 또는 폭/높이, 또는 크기)는 스케일링 윈도우/위상 오프셋 윈도우와 같은 RPR(레퍼런스 픽처 리샘플링) 프로세스와 관련된 파라미터를 참조할 수 있다. 하나의 예에서, 픽처의 해상도(또는 차원, 또는 너비/높이, 또는 크기)는 출력 픽처와 연관된 것와 관련된다.In this disclosure, the resolution (or dimension, or width/height, or size) of a picture may mean the resolution (or dimension, or width/height, or size) of a coded/decoded picture, or coded/decoded It may refer to the resolution (or dimension, or width/height, or size) of the conformance window in the given picture. In one example, the resolution (or dimension, or width/height, or size) of a picture may refer to a parameter related to a reference picture resampling (RPR) process, such as a scaling window/phase offset window. In one example, the resolution (or dimension, or width/height, or size) of a picture is related to that associated with the output picture.

RPR의 모션 보상RPR motion compensation

1. 레퍼런스 픽처의 해상도가 현재 픽처와 상이하거나 레퍼런스 픽처의 너비 및/또는 높이가 현재 픽처보다 클 경우, 현재 블록의 샘플 그룹(적어도 두 개의 샘플)에 대한 예측 값은 동일한 수평 및/또는 수직 보간 필터로 생성될 수 있다.1. When the resolution of the reference picture is different from that of the current picture, or the width and/or height of the reference picture is greater than that of the current picture, the predicted values for the sample group (at least two samples) of the current block are the same horizontal and/or vertical interpolation It can be created as a filter.

a. 하나의 예에서, 그룹은 블록의 영역에 있는 모든 샘플을 포함할 수 있다. a. In one example, a group may include all samples in an area of a block.

i. 예를 들어, 블록은 서로 겹치지 않는 S MxN 직사각형으로 분할될 수 있다. 각 MxN 직사각형은 그룹이다. 도 2에 도시된 바와 같은 예에서, 16x16 블록은 각각이 그룹인 16개의 4x4 직사각형으로 분할될 수 있다. i. For example, a block may be divided into non-overlapping S MxN rectangles. Each MxN rectangle is a group. In the example as shown in Figure 2, a 16x16 block can be divided into 16 4x4 rectangles, each being a group.

ii. 예를 들어, N개의 샘플이 있는 행은 그룹이다. N은 블록 너비보다 크지 않은 정수이다. 하나의 예에서, N은 4 또는 8 또는 블록 너비이다. ii. For example, a row with N samples is a group. N is an integer not greater than the block width. In one example, N is 4 or 8 or a block width.

iii. 예들 들어, N개의 샘플이 있는 열은 그룹이다. N은 블록 높이보다 크지 않은 정수이다. 하나의 예에서, N은 4 또는 8 또는 블록 높이이다. iii. For example, a column with N samples is a group. N is an integer not greater than the block height. In one example, N is 4 or 8 or block height.

iv. M 및/또는 N은 미리 정의되거나 블록 차원/코딩된 정보에 기초하여 하는 것과 같이, 즉석에서 유도되거나 시그널링될 수 있다. iv. M and/or N may be derived or signaled on the fly, such as based on predefined or block dimension/coded information.

b. 하나의 예에서, 그룹의 샘플은 동일한 MV(공유 MV로 표시됨)를 가질 수 있다. b. In one example, samples in a group may have the same MV (denoted as shared MV).

c. 하나의 예에서, 그룹의 샘플은 동일한 수평 컴포넌트(공유 수평 컴포넌트로 표시됨)를 갖는 MV를 가질 수 있다. c. In one example, samples in a group may have MVs with the same horizontal component (represented as a shared horizontal component).

d. 하나의 예에서, 그룹의 샘플은 동일한 수직 컴포넌트(공유 수직 컴포넌트로 표시됨)을 갖는 MV를 가질 수 있다. d. In one example, samples in a group may have MVs with the same vertical component (represented as a shared vertical component).

e. 하나의 예에서, 그룹의 샘플은 수평 컴포넌트의 동일한 분수 부분(공유 분수 수평 컴포넌트로 표시됨)을 갖는 MV를 가질 수 있다. e. In one example, the samples in the group may have MVs that have the same fractional portion of the horizontal component (represented by the shared fractional horizontal component).

i. 예를 들어, 제1 샘플의 MV가 (MV1x, MV1y)이고 제2 샘플의 MV가 (MV2x, MV2y)라고 가정하면, MV1x & (2M-1)이 MV2x & (2M-1)와 동일함을 충족해야 하고, 여기서 M은 MV 정밀도를 나타낸다. 예를 들어, M=4이다.i. For example, assuming that the MV of the first sample is (MV1x, MV1y) and the MV of the second sample is (MV2x, MV2y), MV1x & (2 M -1) is equal to MV2x & (2 M -1) must be satisfied, where M represents the MV precision. For example, M=4.

f. 하나의 예에서, 그룹의 샘플은 수직 컴포넌트의 동일한 분수 부분(공유 분수 수직 컴포넌트로 표시됨)을 갖는 MV를 가질 수 있다. f. In one example, the samples in the group may have MVs that have the same fractional portion of the vertical component (represented by the shared fractional vertical component).

i. 예를 들어, 제1 샘플의 MV가 (MV1x, MV1y)이고 제2 샘플의 MV가 (MV2x, MV2y)라고 가정하면, MV1y & (2M-1)가 MV2y & (2M- 1)와 동일함을 충족해야 하고, 여기서 M은 MV 정밀도를 나타낸다. 예를 들어, M=4이다.i. For example, assuming that the MV of the first sample is (MV1x, MV1y) and the MV of the second sample is (MV2x, MV2y), MV1y & (2 M -1) is equal to MV2y & (2 M -1) must be satisfied, where M represents the MV precision. For example, M=4.

g. 하나의 예에서, 예측할 그룹 내의 샘플에 대해, MVb로 표시되는 모션 벡터는 현재 픽처 및 레퍼런스 픽처의 해상도에 따라 먼저 유도될 수 있다(예를 들어, JVET-O2001-v14의 8.5.6.3.1에서 파생된 (refxL , refyL)). 그런 다음, MVb는 위의 항목과 같은 요구 사항을 충족하기 위해 MV'로 추가 수정(예를 들어, 반올림/잘림/클리핑)될 수 있고, MV'는 샘플에 대한 예측 샘플을 유도하는 데 사용된다.g. In one example, for a sample in a group to be predicted, a motion vector denoted by MV b may be first derived according to the resolution of the current picture and the reference picture (eg, 8.5.6.3.1 of JVET-O2001-v14). derived from (refx L , refy L )). Then, MV b can be further modified (e.g. rounded/truncated/clipped) by MV' to meet the same requirements as above, and MV' is used to derive the predicted sample for the sample. do.

i. 하나의 예에서, MV'는 MVb와 동일한 정수 부분을 가지고, MV'의 소수 부분은 공유된 소수 수평 및/또는 수직 컴포넌트로 설정된다.i. In one example, MV' has an integer part equal to MV b , and the fractional part of MV' is set to a shared fractional horizontal and/or vertical component.

ii. 하나의 예에서, MV'는 공유 분수 수평 및/또는 수직 컴포넌트를 갖고 MVb에 가장 가까운 것으로 설정된다. ii. In one example, MV' is set to the closest to MV b with a shared fractional horizontal and/or vertical component.

h. 공유 모션 벡터(및/또는 공유 수평 컴포넌트 및/또는 공유 수직 컴포넌트 및/또는 공유 분수 수직 컴포넌트 및/또는 공유 분수 수직 컴포넌트)는 그룹 내 특정 샘플의 모션 벡터(및/또는 수평 컴포넌트 및/또는 수직 컴포넌트 및/또는 분수 수직 컴포넌트 및/또는 분수 수직 컴포넌트)로 설정될 수 있다. h. A shared motion vector (and/or a shared horizontal component and/or a shared vertical component and/or a shared fractional vertical component and/or a shared fractional vertical component) is a motion vector (and/or a horizontal component and/or a vertical component) of a particular sample within a group. and/or a fractional vertical component and/or a fractional vertical component).

i. 예를 들어, 특정 샘플은 도 3a에 도시된 "A", "B', "C" 및 "D"와 같은 직사각형 그룹의 모서리에 있을 수 있다. i. For example, a particular sample may be at the edge of a group of rectangles such as “A”, “B’, “C” and “D” shown in FIG. 3A .

ii. 예를 들어, 특정 샘플은 도 3a에 도시된 "E", "F', "G", "H"와 같은 직사각형 그룹의 중앙에 있을 수 있다. ii. For example, a particular sample may be centered in a group of rectangles such as “E”, “F’, “G”, “H” shown in FIG. 3A .

iii. 예를 들어, 특정 샘플은 도 3b 및 3c에 도시된 "A" 및 "D"와 같은 행 또는 열 형태의 그룹의 끝에 있을 수 있다. iii. For example, a particular sample may be at the end of a group in the form of rows or columns, such as “A” and “D” shown in FIGS. 3B and 3C .

iv. 예를 들어, 특정 샘플은 도 3b 및 도 3c에 도시된 "B" 및 "C"와 같은 행형 또는 열형 그룹의 중간에 있을 수 있다. iv. For example, a particular sample may be in the middle of a row or column group such as “B” and “C” shown in FIGS. 3B and 3C .

v. 하나의 예에서, 특정 샘플의 모션 벡터는 항목 g에서 언급된 MVb일 수 있다.v. In one example, the motion vector of a particular sample may be the MV b mentioned in item g.

i. 공유 모션 벡터(및/또는 공유 수평 컴포넌트 및/또는 공유 수직 컴포넌트 및/또는 공유 분수 수직 컴포넌트 및/또는 공유 분수 수직 컴포넌트)는 이 그룹의 모든 샘플과 다른 위치에 있는 가상 샘플의 모션 벡터(및/또는 수평 컴포넌트 및/또는 수직 컴포넌트 및/또는 분수 수직 컴포넌트 및/또는 분수 수직 컴포넌트)로 설정될 수 있다. i. A shared motion vector (and/or a shared horizontal component and/or a shared vertical component and/or a shared fractional vertical component and/or a shared fractional vertical component) is a motion vector (and/or or a horizontal component and/or a vertical component and/or a fractional vertical component and/or a fractional vertical component).

i. 하나의 예에서, 가상 샘플은 그룹에 없지만 그룹의 모든 샘플을 포함하는 영역에 있다. i. In one example, the virtual sample is not in the group but is in a region containing all samples in the group.

1) 대안적으로, 가상 샘플은 그룹의 모든 샘플을 포함하는 영역 외부, 예들 들어, 영역의 오른쪽 하단 위치 옆에 위치한다. One) Alternatively, the virtual sample is located outside the region containing all samples in the group, eg next to the lower right position of the region.

ii. 하나의 예에서, 가상 샘플의 MV는 실제 샘플과 동일한 방식으로 유도되지만 위치는 다르다. ii. In one example, the MV of the virtual sample is derived in the same way as the real sample, but with a different location.

iii. 도 3a-3c의 "V"는 가상 샘플의 세 가지 예를 나타낸다. iii. “V” in FIGS. 3A-3C represents three examples of hypothetical samples.

j. 공유 MV(및/또는 공유 수평 컴포넌트 및/또는 공유 수직 컴포넌트 및/또는 공유 분수 수직 컴포넌트 및/또는 공유 분수 수직 컴포넌트)는 다중 샘플 및/또는 가상 샘플의 MV의 함수(및/또는 수평 컴포넌트 및/또는 수직 컴포넌트 및/또는 분수 수직 컴포넌트 및/또는 분수 수직 컴포넌트)로 설정될 수 있다. j. A shared MV (and/or a shared horizontal component and/or a shared vertical component and/or a shared fractional vertical component and/or a shared fractional vertical component) is a function of the MVs of multiple samples and/or virtual samples (and/or a horizontal component and/or a or a vertical component and/or a fractional vertical component and/or a fractional vertical component).

i. 예를 들어, 공유 MV(및/또는 공유 수평 컴포넌트 및/또는 공유 수직 컴포넌트 및/또는 공유 분수 수직 컴포넌트 및/또는 공유 분수 수직 컴포넌트)는 그룹의, 또는 도 3a의 샘플 "E", "F", "G", "H"의, 또는 도 3a의 샘플 "A", "B", "C", "D", 도 3a의 샘플 "A", "D", 도 3a의 샘플 "B", "C", 도 3b의 샘플 "A", "D", 도 3b의 샘플 "B", "C", 도 3c에서, 또는 샘플 "A", "D" 전부 또는 일부 샘플의 MV의 평균(및/또는 수평 컴포넌트 및/또는 수직 컴포넌트 및/또는 분수 수직 컴포넌트 및/또는 분수 수직 컴포넌트)으로 설정될 수 있다. i. For example, a shared MV (and/or a shared horizontal component and/or a shared vertical component and/or a shared fractional vertical component and/or a shared fractional vertical component) is a group or sample "E", "F" of FIG. 3A , “G”, “H”, or sample “A”, “B”, “C”, “D” in FIG. 3A , sample “A”, “D” in FIG. 3A, or sample “B” in FIG. 3A , "C", sample "A", "D" in FIG. 3B, sample "B", "C" in FIG. 3B, or sample "A", "D" in FIG. 3C, or sample "A", "D" Mean of the MVs of all or some samples (and/or a horizontal component and/or a vertical component and/or a fractional vertical component and/or a fractional vertical component).

2. 현재 블록의 예측 블록을 유도하기 위해 모션 보상 프로세스에서 사용되는 보간 필터는 레퍼런스 픽처의 해상도가 현재 픽처와 다른지 또는 레퍼런스 픽처의 너비 및/또는 높이가 현재 픽처의 해상도보다 큰지 여부에 의존하여 선택될 수 있다고 제안한다.2. The interpolation filter used in the motion compensation process to derive the predictive block of the current block can be selected depending on whether the resolution of the reference picture is different from the current picture or whether the width and/or height of the reference picture is greater than the resolution of the current picture. suggest that there is

a. 하나의 예에서, 예측될 샘플에 대한 디코딩된 모션 벡터는 사용되기 전에 정수 MV로 반올림된다. a. In one example, the decoded motion vector for a sample to be predicted is rounded to an integer MV before being used.

b. 하나의 예에서, 예측될 샘플에 대한 디코딩된 모션 벡터는 디코딩된 모션 벡터에 가장 가까운 정수 MV로 반올림된다. b. In one example, the decoded motion vector for the sample to be predicted is rounded to the nearest integer MV to the decoded motion vector.

c. 하나의 예에서, 예측될 샘플에 대한 디코딩된 모션 벡터는 수평 방향에서 디코딩된 모션 벡터에 가장 가까운 정수 MV로 반올림된다. c. In one example, the decoded motion vector for the sample to be predicted is rounded to the nearest integer MV to the decoded motion vector in the horizontal direction.

d. 하나의 예에서, 예측될 샘플에 대한 디코딩된 모션 벡터는 수직 방향에서 디코딩된 모션 벡터에 가장 가까운 정수 MV로 반올림된다. d. In one example, the decoded motion vector for the sample to be predicted is rounded to the nearest integer MV to the decoded motion vector in the vertical direction.

3. 현재 블록의 샘플에 대한 모션 보상 프로세스에서 사용되는 모션 벡터(예를 들어, 공유 MV / 공유 수평 또는 수직 또는 분수 컴포넌트 / MV ' 위의 항목에 언급)는 디코딩된 픽처 버퍼에 저장될 수 있고 현재/다른 픽처에서 후속 블록의 모션 벡터 예측을 위해 활용될 수 있다.3. The motion vector used in the motion compensation process for the sample of the current block (eg, shared MV / shared horizontal or vertical or fractional component / MV ' mentioned above) can be stored in the decoded picture buffer and It may be utilized for motion vector prediction of a subsequent block in another picture.

a. 대안적으로, 현재 블록(예를 들어, 공유 MV / 공유 수평 또는 수직 또는 분수 컴포넌트/MV' 위의 항목에 언급)의 샘플에 대한 모션 보상 프로세스에서 사용되는 모션 벡터는 현재/다른 픽처의 후속 블록의 모션 벡터 예측에 활용되는 것이 허용되지 않을 수 있다. a. Alternatively, the motion vector used in the motion compensation process for a sample of the current block (eg, shared MV / shared horizontal or vertical or fractional component/MV' as mentioned above) is the subsequent block of the current/other picture. It may not be allowed to be utilized for motion vector prediction of .

i. 하나의 예에서, 디코딩된 모션 벡터(예를 들어, 위의 항목의 MVb)는 현재/상이한 픽처에서 후속 블록의 모션 벡터 예측을 위해 활용될 수 있다.i. In one example, the decoded motion vector (eg, MV b of the item above) may be utilized for motion vector prediction of a subsequent block in the current/different picture.

b. 하나의 예에서, 현재 블록의 샘플에 대한 모션 보상 프로세스에서 사용되는 모션 벡터는 필터링 프로세스(예를 들어, 디블로킹 필터/SAO/ALF)에서 활용될 수 있다. b. In one example, a motion vector used in a motion compensation process for a sample of a current block may be utilized in a filtering process (eg, deblocking filter/SAO/ALF).

i. 대안적으로, 디코딩된 모션 벡터(예를 들어, 위의 항목의 MVb)는 필터링 프로세스에서 이용될 수 있다.i. Alternatively, the decoded motion vector (eg, the MV b of the item above) may be used in the filtering process.

c. 하나의 예에서, 그러한 MV는 서브블록 레벨에서 유도될 수 있고 각각의 서브블록에 대해 저장될 수 있다. c. In one example, such an MV may be derived at the sub-block level and stored for each sub-block.

4. 현재 블록의 예측 블록을 유도하기 위해 모션 보상 프로세스에서 사용되는 보간 필터는 레퍼런스 픽처의 해상도가 현재 픽처와 다른지 또는 레퍼런스 픽처의 너비 및/또는 높이가 현재 픽처의 해상도보다 큰지 여부에 의존하여 선택될 수 있다고 제안한다.4. The interpolation filter used in the motion compensation process to derive the predictive block of the current block can be selected depending on whether the resolution of the reference picture is different from the current picture or whether the width and/or height of the reference picture is greater than the resolution of the current picture. suggest that there is

a. 하나의 예에서, 더 적은 탭을 갖는 보간 필터는 조건 A가 충족될 때 적용될 수 있고, 조건 A는 현재 픽처 및/또는 레퍼런스 픽처의 차원에 의존한다. a. In one example, an interpolation filter with fewer taps may be applied when condition A is met, which condition A depends on the dimensions of the current picture and/or reference picture.

i. 하나의 예에서, 조건 A는 레퍼런스 픽처의 해상도가 현재 픽처와 상이하다. i. In one example, condition A is that the resolution of the reference picture is different from the current picture.

ii. 하나의 예에서, 조건 A는 레퍼런스 픽처의 너비 및/또는 높이가 현재 픽처의 너비보다 크다. ii. In one example, condition A is that the width and/or height of the reference picture is greater than the width of the current picture.

iii. 하나의 예에서, 조건 A는 W1> a * W2 및/또는 H1> b * H2이고, 여기서 (W1, H1)은 레퍼런스 픽처의 너비와 높이를 나타내고, (W2, H2)는 현재 픽처의 너비와 높이를 나타내고, a와 b는 두 가지 인자(factor)이고, 예들 들어, a = b = 1.5이다. iii. In one example, condition A is W1 > a * W2 and/or H1 > b * H2, where (W1, H1) represents the width and height of the reference picture, and (W2, H2) is the width and height of the current picture Represents the height, where a and b are two factors, for example, a = b = 1.5.

iv. 하나의 예에서, 조건 A는 또한 이중 예측이 사용되는지 여부에 따라 달라질 수 있다. iv. In one example, condition A may also vary depending on whether double prediction is used.

v. 하나의 예에서, 1- 탭 필터가 적용된다. 즉, 필터링이 없는 정수 픽셀이 보간 결과로 출력된다. v. In one example, a 1-tap filter is applied. That is, integer pixels without filtering are output as an interpolation result.

vi. 하나의 예에서, 레퍼런스 픽처의 해상도가 현재 픽처와 다를 때 이중 선형 필터가 적용된다. vi. In one example, a bi-linear filter is applied when the resolution of the reference picture is different from the current picture.

vii. 하나의 예에서, 레퍼런스 픽처의 해상도가 현재 픽처와 다르거나 레퍼런스 픽처의 너비 및/또는 높이가 현재 픽처의 해상도보다 클 때, 4 탭 필터 또는 6 탭 필터가 적용된다. vii. In one example, when the resolution of the reference picture is different from the current picture, or when the width and/or height of the reference picture is greater than the resolution of the current picture, a 4-tap filter or a 6-tap filter is applied.

1) 6 탭 필터는 아핀 모션 보상에도 사용할 수 있다. One) A 6-tap filter can also be used for affine motion compensation.

2) 4 탭 필터는 크로마 샘플의 보간에도 사용할 수 있다. 2) A four-tap filter can also be used for interpolation of chroma samples.

b. 하나의 예에서, 레퍼런스 픽처의 해상도가 현재 픽처와 다르거나 레퍼런스 픽처의 너비 및/또는 높이가 현재 픽처의 해상도보다 클 때, 4 탭 필터 또는 6 탭 필터가 적용된다. b. In one example, when the resolution of the reference picture is different from the current picture, or when the width and/or height of the reference picture is greater than the resolution of the current picture, a 4-tap filter or a 6-tap filter is applied.

c. 항목 4에 개시된 방법을 적용할지 여부 및/또는 적용 방법은 컬러 컴포넌트에 따라 달라질 수 있다. c. Whether and/or how to apply the method disclosed in item 4 may vary depending on the color component.

i. 예를 들어, 방법은 루마 컴포넌트에만 적용된다. i. For example, the method applies only to luma components.

d. 항목 4에 개시된 방법을 적용할지 여부 및/또는 적용 방법은 보간 필터링 방향에 따라 달라질 수 있다. d. Whether and/or how to apply the method disclosed in Item 4 may vary depending on the interpolation filtering direction.

i. 예를 들어, 방법은 수평 필터링에만 적용된다. i. For example, the method applies only to horizontal filtering.

ii. 예를 들어, 방법은 수직 필터링에만 적용된다. ii. For example, the method applies only to vertical filtering.

5. 레퍼런스 픽처의 해상도가 현재 픽처와 다를 때, 또는 레퍼런스 픽처의 너비 및/또는 높이가 현재 픽처보다 클 때 예측 블록 생성을 위한 2단계 과정을 적용하는 것을 제안한다.5. When the resolution of the reference picture is different from the current picture, or when the width and/or height of the reference picture is greater than that of the current picture, it is proposed to apply a two-step process for generating a prediction block.

a. 제1 단계에서, 현재 픽처와 레퍼런스 픽처의 너비 및/또는 높이에 따라 레퍼런스 픽처 내 영역을 업샘플링 또는 다운샘플링하여 가상 레퍼런스 블록이 생성된다. a. In a first step, a virtual reference block is generated by upsampling or downsampling an area in the reference picture according to the width and/or height of the current picture and the reference picture.

b. 제2 단계에서, 현재 픽처 및 레퍼런스 픽처의 너비 및/또는 높이에 관계없이 보간 필터링을 적용하여 가상 레퍼런스 블록으로부터 예측 샘플이 생성된다. b. In a second step, a prediction sample is generated from the virtual reference block by applying interpolation filtering regardless of the width and/or height of the current picture and the reference picture.

6. 일부 실시예에서와 같이 레퍼런스 샘플 패딩(xSbIntL, ySbIntL)을 위한 바운딩 블록의 좌상 좌표의 계산은 현재 픽처 및 레퍼런스 픽처의 너비 및/또는 높이에 따라 유도될 수 있다고 제안된다.6. It is proposed that the calculation of the upper-left coordinate of the bounding block for reference sample padding (xSbInt L , ySbInt L ) as in some embodiments may be derived according to the width and/or height of the current picture and the reference picture.

a. 하나의 예에서, 전체 샘플 유닛의 루마 위치는 다음과 같이 수정된다: a. In one example, the luma position of the entire sample unit is modified as follows:

xInti = Clip3( xSbIntL - Dx, xSbIntL + sbWidth + Ux, xInti ), xInt i = Clip3( xSbInt L - Dx, xSbInt L + sbWidth + Ux, xInt i ),

yInti = Clip3( ySbIntL - Dy, ySbIntL + sbHeight + Uy, yInti ), yInt i = Clip3( ySbInt L - Dy, ySbInt L + sbHeight + Uy, yInt i ),

여기서 Dx 및/또는 Dy 및/또는 Ux 및/또는 Uy는 현재 픽처와 레퍼런스 픽처의 너비 및/또는 높이에 따라 달라질 수 있다.Here, Dx and/or Dy and/or Ux and/or Uy may vary depending on the width and/or height of the current picture and the reference picture.

b. 하나의 예에서, 전체 샘플 유닛의 크로마 위치는 다음과 같이 수정된다. b. In one example, the chroma position of the entire sample unit is modified as follows.

xInti = Clip3( xSbIntC - Dx, xSbIntC + sbWidth + Ux, xInti )xInti = Clip3( xSbInt C - Dx, xSbInt C + sbWidth + Ux, xInti )

yInti = Clip3( ySbIntC - Dy, ySbIntC + sbHeight + Uy, yInti )yInti = Clip3( ySbInt C - Dy, ySbInt C + sbHeight + Uy, yInti )

여기서 Dx 및/또는 Dy 및/또는 Ux 및/또는 Uy는 현재 픽처와 레퍼런스 픽처의 너비 및/또는 높이에 따라 달라질 수 있다.Here, Dx and/or Dy and/or Ux and/or Uy may vary depending on the width and/or height of the current picture and the reference picture.

7. 현재 픽처와 동일한 레퍼런스 픽처 해상도에 기초하여 블록에 대한 모션 벡터를 저장/사용하는 대신, 해상도 차이를 고려한 실제 모션 벡터를 사용하는 것을 제안한다.7. Instead of storing/using a motion vector for a block based on the same reference picture resolution as the current picture, it is proposed to use an actual motion vector in consideration of the resolution difference.

a. 대안적으로, 또한, 예측 블록을 생성하기 위해 모션 벡터를 이용하는 경우, 현재 픽처 및 레퍼런스 픽처(예를 들어, (refxL, refyL))의 해상도에 따라 모션 벡터를 더 변경할 필요가 없다. a. Alternatively, further, when using the motion vector to generate the predictive block, there is no need to further change the motion vector according to the resolution of the current picture and the reference picture (eg, (refx L , refy L )).

RPR과 다른 코딩 툴 사이의 상호 작용Interaction between RPR and other coding tools

8. 필터링 프로세스(예를 들어, 디블로킹 필터)를 적용할지 여부는 레퍼런스 픽처의 해상도 및/또는 현재 픽처의 해상도에 따라 달라질 수 있다.8. Whether to apply a filtering process (eg, a deblocking filter) may depend on the resolution of the reference picture and/or the resolution of the current picture.

a. 하나의 예에서, 디블로킹 필터의 경계 강도(BS) 설정은 모션 벡터 차이에 더하여 해상도 차이를 고려할 수 있다. a. In one example, the boundary strength (BS) setting of the deblocking filter may consider the resolution difference in addition to the motion vector difference.

i. 하나의 예에서, 현재 및 레퍼런스 픽처의 해상도에 따른 스케일링된 모션 벡터 차이는 경계 강도를 결정하기 위해 사용될 수 있다. i. In one example, the scaled motion vector difference according to the resolution of the current and reference picture may be used to determine the boundary strength.

b. 하나의 예에서, 블록 A의 적어도 하나의 레퍼런스 픽처의 해상도가 두 블록에 대해 동일한 해상도가 사용되는 경우와 비교하여 블록 B의 적어도 하나의 레퍼런스 픽처의 해상도와 다른 경우(또는 보다 작거나 크거나 같은 경우), 블록 A와 블록 B 사이의 경계에 대한 디블록킹 필터의 세기가 다르게 설정될 수 있다(예를 들어, 증가/감소). b. In one example, when the resolution of the at least one reference picture of block A is different (or less than, greater than, or equal to) the resolution of the at least one reference picture of block B as compared to the case where the same resolution is used for both blocks. case), the strength of the deblocking filter for the boundary between block A and block B may be set differently (eg, increase/decrease).

c. 하나의 예에서, 블록 A의 적어도 하나의 레퍼런스 픽처의 해상도가 블록 B의 적어도 하나의 레퍼런스 픽처의 해상도와 다른 경우(또는 보다 작거나 큰 경우), 블록 A와 블록 B 사이의 경계가 필터링되는 것으로 표시된다(예를 들어, BS가 2로 설정됨). c. In one example, if the resolution of the at least one reference picture of block A is different from (or less than or greater than) the resolution of the at least one reference picture of block B, the boundary between block A and block B is determined to be filtered. indicated (eg, BS is set to 2).

d. 하나의 예에서, 블록 A 및/또는 블록 B의 적어도 하나의 레퍼런스 픽처의 해상도가 레퍼런스 픽처 및 현재 픽처의 동일한 해상도가 사용되는 경우와 비교하여 현재 픽처의 해상도와 다른 경우(또는 보다 작거나 크거나 같은 경우), 블록 A와 블록 B 사이의 경계에 대한 디블록킹 필터의 세기가 다르게 설정될 수 있다(예를 들어, 증가/감소). d. In one example, when the resolution of at least one reference picture of block A and/or block B is different from (or less than, greater than, In the same case), the strength of the deblocking filter on the boundary between the block A and the block B may be set differently (eg, increase/decrease).

e. 하나의 예에서, 둘 중 적어도 하나의 블록의 적어도 하나의 레퍼런스 픽처가 현재 픽처와 다른 해상도를 갖는 경우, 두 블록 사이의 경계는 필터링되는 것으로 표시된다(예를 들어, BS는 2로 설정됨). e. In one example, if at least one reference picture of at least one of the blocks has a different resolution than the current picture, the boundary between the two blocks is marked as filtered (eg, BS is set to 2) .

9. 서브픽처가 존재하는 경우, 적합성 비트스트림은 레퍼런스 픽처가 현재 픽처와 동일한 해상도를 가져야 함을 만족해야 할 수 있다.9. If a subpicture is present, the conformance bitstream may have to satisfy that the reference picture must have the same resolution as the current picture.

a. 대안적으로, 레퍼런스 픽처가 현재 픽처와 다른 해상도를 가질 때, 현재 픽처에 서브픽처가 없어야 한다. a. Alternatively, when the reference picture has a different resolution than the current picture, there should be no subpictures in the current picture.

b. 대안적으로, 현재 픽처의 서브픽처에 대해 현재 픽처와 다른 해상도의 레퍼런스 픽처를 사용하는 것은 허용되지 않는다. b. Alternatively, it is not permitted to use a reference picture of a resolution different from that of the current picture for a subpicture of the current picture.

i. 대안적으로, 또한, 레퍼런스 픽처 관리가 상이한 해상도를 갖는 레퍼런스 픽처를 제외하기 위해 호출될 수 있다. i. Alternatively, reference picture management may also be called to exclude reference pictures with different resolutions.

10. 하나의 예에서, 서브픽처(예를 들어, 하나의 픽처를 다수의 서브픽처로 분할하는 방법)는 상이한 해상도를 갖는 픽처에 대해 별도로 정의될 수 있다. 10. In one example, subpictures (eg, a method of dividing one picture into multiple subpictures) may be defined separately for pictures with different resolutions.

하나의 예에서, 레퍼런스 픽처의 대응하는 서브픽처는, 레퍼런스 픽처가 현재 픽처와 상이한 해상도를 갖는 경우, 현재 픽처의 서브픽처를 스케일링 및/또는 오프셋함으로써 유도될 수 있다.In one example, the corresponding subpicture of the reference picture may be derived by scaling and/or offsetting the subpicture of the current picture if the reference picture has a different resolution than the current picture.

11. 레퍼런스 픽처가 현재 픽처와 다른 해상도를 가질 때 광학 흐름 예측 정제(Prediction Refinement with Optical Flow)(PROF)가 활성화될 수 있다.11. Prediction Refinement with Optical Flow (PROF) may be activated when the reference picture has a different resolution than the current picture.

a. 하나의 예에서, MV의 한 세트(MVg로 표시됨)는 샘플 그룹에 대해 생성될 수 있고 항목 1에 설명된 바와 같이 모션 보상을 위해 사용될 수 있다. 한편, MV(MVp로 표기)는 각 샘플에 대해 유도될 수 있고, MVp와 MVg 사이의 차이(예를 들어, PROF에서 사용되는 Δv에 대응함)는 그라디언트(예를 들어, 모션 보상된 블록의 공간 그레디언트)와 함께 예측 정제를 유도하는 데 사용될 수 있다.a. In one example, a set of MVs (denoted as MV g ) may be generated for a sample group and used for motion compensation as described in item 1. On the other hand, MV (denoted as MV p ) can be derived for each sample, and the difference between MV p and MV g (e.g., corresponding to Δv used in PROF) is the gradient (e.g., motion compensated together with the spatial gradient of the block) can be used to derive prediction refinement.

b. 하나의 예에서, MVp는 MVg와 다른 정밀도를 가질 수 있다. 예를 들어, MVp는 1/N-pel(N > 0) 정밀도, N = 32, 64 등일 수 있다.b. In one example, MV p may have a different precision than MV g . For example, MV p may be 1/N-pel (N > 0) precision, N = 32, 64, or the like.

c. 하나의 예에서, MVg는 내부 MV 정밀도(예를 들어, 1/16-펠(pel))와 상이한 정밀도를 가질 수 있다.c. In one example, MV g may have a different precision than the internal MV precision (eg, 1/16-pel).

d. 하나의 예에서, 예측 정제는 정제된 예측 블록을 생성하기 위해 예측 블록에 추가된다. d. In one example, prediction refinement is added to the prediction block to produce a refined prediction block.

e. 하나의 예에서, 이러한 방법은 각각의 예측 방향에 적용될 수 있다. e. In one example, this method can be applied to each prediction direction.

f. 하나의 예에서, 이러한 방법은 단일 예측의 경우에만 적용될 수 있다. f. In one example, this method can be applied only in the case of a single prediction.

g. 하나의 예에서, 이러한 방법은 단일 예측 또는/및 이중 예측에 적용될 수 있다. g. In one example, this method can be applied to single prediction or/and double prediction.

h. 하나의 예에서, 이러한 방법은 레퍼런스 픽처가 현재 픽처와 해상도가 다른 경우에만 적용될 수 있다. h. In one example, this method can be applied only when the reference picture has a different resolution from the current picture.

12. 레퍼런스 픽처의 해상도가 현재 픽처의 해상도와 다른 경우 현재 블록의 예측 블록을 유도하기 위해 모션 보상 프로세스를 수행하기 위해 블록/서브블록에 대해 하나의 MV만이 활용될 수 있음을 제안한다.12. When the resolution of the reference picture is different from that of the current picture, it is proposed that only one MV can be utilized for a block/subblock to perform a motion compensation process to derive a predictive block of the current block.

a. 하나의 예에서, 블록/서브블록에 대한 유일한 MV는 블록/서브블록 내의 각 샘플과 연관된 모든 MV의 함수(예를 들어, 평균)로서 정의될 수 있다. a. In one example, a unique MV for a block/subblock may be defined as a function (eg, average) of all MVs associated with each sample within the block/subblock.

b. 하나의 예에서, 블록/서브블록에 대한 유일한 MV는 블록/서브블록 내에서 선택된 샘플(예를 들어, 중앙 샘플)과 연관된 선택된 MV로서 정의될 수 있다. b. In one example, the unique MV for a block/subblock may be defined as the selected MV associated with a selected sample (eg, a center sample) within the block/subblock.

c. 하나의 예에서, 하나의 MV만이 4x4 블록 또는 서브블록(예를 들어, 4x1)에서 활용될 수 있다. c. In one example, only one MV may be utilized in a 4x4 block or subblock (eg, 4x1).

d. 하나의 예에서, 블록 기반 모션 벡터로 인한 정밀도 손실을 보상하기 위해 BIO가 더 적용될 수 있다. d. In one example, BIO may be further applied to compensate for precision loss due to block-based motion vectors.

13. 레퍼런스 픽처의 너비 및/또는 높이가 현재 픽처의 너비 및/또는 높이와 다른 경우 블록 기반 모션 벡터를 시그널링하지 않는 레이지 모드가 적용될 수 있다.13. When the width and/or height of the reference picture is different from the width and/or height of the current picture, a lazy mode that does not signal a block-based motion vector may be applied.

a. 하나의 예에서, 모션 벡터는 시그널링되지 않을 수 있고 모션 보상 프로세스는 정지 이미지의 순수한 해상도 변화의 경우에 근사하는 것이다. a. In one example, the motion vector may not be signaled and the motion compensation process is to approximate the case of a pure resolution change of a still image.

b. 하나의 예에서, 픽처/타일/브릭/CTU 레벨에서의 모션 벡터만이 신호일 수 있고 관련 블록은 해상도가 변경될 때 모션 벡터를 사용할 수 있다. b. In one example, only motion vectors at the picture/tile/brick/CTU level may be signals and the relevant blocks may use the motion vectors when the resolution is changed.

14. PROF는 레퍼런스 픽처의 너비 및/또는 높이가 아핀 예측 모드 및/또는 비-아핀 예측 모드로 코딩된 블록에 대한 현재 픽처의 너비 및/또는 높이와 다를 때 대략적인 모션 보상에 적용될 수 있다.14. PROF may be applied to coarse motion compensation when the width and/or height of the reference picture is different from the width and/or height of the current picture for a block coded in the affine prediction mode and/or the non-affine prediction mode.

a. 하나의 예에서, 레퍼런스 픽처의 너비 및/또는 높이와 현재 픽처의 너비 및/또는 높이가 다른 경우 PROF가 활성화될 수 있다. a. In one example, when the width and/or height of the reference picture is different from the width and/or height of the current picture, PROF may be activated.

b. 하나의 예에서, 아핀 모션 세트는 표시된 모션 및 해상도 스케일링을 결합하여 생성되고 PROF에 의해 사용될 수 있다. b. In one example, an affine motion set can be generated by combining the indicated motion and resolution scaling and used by the PROF.

15. 레퍼런스 픽처의 너비 및/또는 높이가 현재 픽처의 너비 및/또는 높이와 다를 때 대략적인 모션 보상에 인터위브드 예측(예를 들어, JVET-K0102에서 제안됨)이 적용될 수 있다.15. Interweaved prediction (eg, proposed in JVET-K0102) may be applied to coarse motion compensation when the width and/or height of the reference picture is different from the width and/or height of the current picture.

a. 하나의 예에서, 해상도 변화(줌)는 아핀 모션으로 표현되고, 인터위브 모션 예측이 적용될 수 있다. a. In one example, the resolution change (zoom) is expressed as an affine motion, and interweave motion prediction may be applied.

16. LMCS 및/또는 크로마 레지듀얼 스케일링은 현재 픽처의 너비 및/또는 높이가 동일한 IRAP 주기에서 IRAP 픽처의 너비 및/또는 높이와 다른 경우 비활성화될 수 있다.16. LMCS and/or chroma residual scaling may be deactivated when the width and/or height of the current picture is different from the width and/or height of the IRAP picture in the same IRAP period.

a. 하나의 예에서, LMCS가 비활성화될 때, slice_lmcs_enabled_flag, slice_lmcs_aps_id, 및 slice_chroma_residual_scale_flag와 같은 슬라이스 레벨 플래그는 시그널링되지 않고 0으로 유추될 수 있다. a. In one example, when LMCS is deactivated, slice level flags such as slice_lmcs_enabled_flag, slice_lmcs_aps_id, and slice_chroma_residual_scale_flag are not signaled and may be inferred to 0.

b. 하나의 예에서, 크로마 레지듀얼 스케일링이 비활성화될 때, slice_chroma_residual_scale_flag와 같은 슬라이스 레벨 플래그는 시그널링되지 않고 0으로 유추될 수 있다. b. In one example, when chroma residual scaling is deactivated, a slice level flag such as slice_chroma_residual_scale_flag is not signaled and may be inferred to 0.

RPR에 대한 제약Restrictions on RPR

17. RPR은 블록 차원 제약이 있는 코딩 블록에 적용될 수 있다.17. RPR can be applied to coding blocks with block dimension constraints.

a. 하나의 예에서, MХN 코딩 블록에 대해, M이 블록 폭이고 N이 블록 높이인 경우, M*N < T 또는 M*N <=T(예를 들어, T = 256)일 때, RPR은 사용 된. a. In one example, for an MХN coding block, when M is the block width and N is the block height, RPR is used when M*N < T or M*N <= T (eg, T = 256). been done.

b. 하나의 예에서, M < K(또는 M<=K)(예를 들어, K = 16) 및/또는 N < L(또는 N <= L)(예를 들어, L = 16)일 때, RPR은 사용되지 않을 수 있다. b. In one example, when M < K (or M <= K) (eg, K = 16) and/or N < L (or N <= L) (eg, L = 16), RPR may not be used.

18. 비트스트림 일치는 활성 레퍼런스 픽처(또는 그 적합성 윈도우)의 너비 및/또는 높이와 현재 픽처(또는 적합성 윈도우)의 너비 및/또는 높이 사이의 비율을 제한하기 위해 추가될 수 있다. refPicW 및 refPicH가 레퍼런스 픽처의 너비와 높이를 나타내고, curPicW 및 curPicH가 현재 픽처의 너비와 높이를 나타낸다고 가정하고,18. Bitstream matching may be added to limit the ratio between the width and/or height of the active reference picture (or its compatibility window) and the width and/or height of the current picture (or its compatibility window). Assume that refPicW and refPicH indicate the width and height of the reference picture, and curPicW and curPicH indicate the width and height of the current picture,

a. 하나의 예에서, (refPicW χ curPicW)가 정수인 경우, 레퍼런스 픽처는 활성 레퍼런스 픽처로 표시될 수 있다. a. In one example, when (refPicW χ curPicW) is an integer, the reference picture may be marked as an active reference picture.

i. 대안적으로, (refPicW χ curPicW)가 분수와 같을 때, 레퍼런스 픽처는 이용 불가로 표시될 수 있다. i. Alternatively, when (refPicW χ curPicW) is equal to a fraction, the reference picture may be marked as unavailable.

b. 하나의 예에서, (refPicW χ curPicW)가 (X * n)과 같을 때, 여기서 X는 X = 1/2와 같은 소수를 나타내고 n은 n = 1, 2, 3, 4 ...., 와 같은 정수를 나타내고, 레퍼런스 픽처는 활성 레퍼런스 픽처로 표시될 수 있다. b. In one example, when (refPicW χ curPicW) is equal to (X * n), where X represents a prime number equal to X = 1/2 and n is n = 1, 2, 3, 4 ...., and It represents the same integer, and the reference picture may be indicated as an active reference picture.

i. 하나의 예에서, (refPicW χ curPicW)가 (X * n)과 같지 않은 경우, 레퍼런스 픽처는 이용 불가로 표시될 수 있다. i. In one example, if (refPicW χ curPicW) is not equal to (X * n), the reference picture may be marked as unavailable.

19. MxN 블록에 대한 코딩 툴(예를 들어, 이중 예측/전체 삼각 예측 모드(TPM)/TPM의 혼합 프로세스)을 활성화할지 여부 및/또는 방법은 레퍼런스 픽처(또는 그 적합성 윈도우)의 해상도 및/또는 현재 픽처(또는 적합성 윈도우)의 해상도에 따라 달라질 수 있다.19. Whether and/or how to activate a coding tool for an MxN block (e.g., dual prediction/full triangular prediction mode (TPM)/mixing process of TPM) and/or the method depends on the resolution and/or current of the reference picture (or its suitability window). It may depend on the resolution of the picture (or the conformance window).

a. 하나의 예에서, M*N < T 또는 M*N <=T(예를 들어, T = 64)이다. a. In one example, M*N < T or M*N <= T (eg, T = 64).

b. 하나의 예에서, M < K(또는 M<=K)(예를 들어, K = 16) 및/또는 N < L(또는 N <= L)(예를 들어, L = 16)이다. b. In one example, M < K (or M <= K) (eg, K = 16) and/or N < L (or N <= L) (eg, L = 16).

c. 하나의 예에서, 적어도 하나의 레퍼런스 픽처의 너비/높이가 현재 픽처와 다른 경우 코딩 툴이 허용되지 않는다. c. In one example, the coding tool is not allowed if the width/height of the at least one reference picture is different from the current picture.

i. 하나의 예에서, 블록의 적어도 하나의 레퍼런스 픽처의 폭/높이가 현재 픽처의 폭/높이가 더 클 때 코딩 툴은 허용되지 않는다. i. In one example, the coding tool is not allowed when the width/height of at least one reference picture of the block is greater than the width/height of the current picture.

d. 하나의 예에서, 블록의 각 레퍼런스 픽처의 너비/높이가 현재 픽처의 너비/높이와 다를 경우 코딩 툴이 허용되지 않는다. d. In one example, if the width/height of each reference picture of the block is different from the width/height of the current picture, the coding tool is not allowed.

i. 하나의 예에서, 각 레퍼런스 픽처의 너비/높이가 현재 픽처의 너비/높이가 더 클 경우 코딩 툴이 허용되지 않는다. i. In one example, if the width/height of each reference picture is greater than the width/height of the current picture, the coding tool is not allowed.

e. 대안적으로, 코딩 툴이 허용되지 않는 경우, 단일 예측으로 하나의 MV로 모션 보상을 수행할 수도 있다. e. Alternatively, if the coding tool does not allow, motion compensation may be performed with one MV with a single prediction.

적합성 윈도우 관련Conformity window related

20. 적합성 크로핑 윈도우 오프셋 파라미터(예를 들어, conf_win_left_offset)는 1-pel 대신에 N-pel 정밀도로 시그널링되고, 여기서 N은 1보다 큰 양의 정수이다.20. The conformance cropping window offset parameter (eg, conf_win_left_offset) is signaled with N-pel precision instead of 1-pel, where N is a positive integer greater than 1.

a. 하나의 예에서, 실제 오프셋은 시그널링된 오프셋에 N을 곱한 것으로 유도될 수 있다. a. In one example, the actual offset may be derived as the signaled offset multiplied by N.

b. 하나의 예에서, M은 32 또는 16으로 설정된다. b. In one example, M is set to 32 or 16.

21. 적합성 크로핑 윈도우 오프셋 파라미터는 출력에만 적용되지 않는 것이 좋다. 특정 내부 디코딩 프로세스는 크롭 픽처 크기(예를 들어, 픽처에서 적합성 윈도우의 해상도)에 따라 달라질 수 있다.21. It is recommended that the conformance cropping window offset parameter not only apply to the output. The specific internal decoding process may depend on the crop picture size (eg, the resolution of the conformance window in the picture).

22. 제1 비디오 유닛 및 제2 비디오 유닛의 (pic_width_in_luma_samples, pic_height_in_luma_samples)로 표시된 픽처의 너비 및/또는 높이가 동일할 때 제1 비디오 유닛(예를 들어, PPS) 및 제2 비디오 유닛의 적합성 크로핑 윈도우 오프셋 파라미터는 상이할 수 있다고 제안된다.22. When the width and/or height of the picture indicated by (pic_width_in_luma_samples, pic_height_in_luma_samples) of the first video unit and the second video unit are the same, the conformance cropping window offset of the first video unit (eg, PPS) and the second video unit It is suggested that the parameters may be different.

23. 제1 비디오 유닛과 제2 비디오 유닛에서 (pic_width_in_luma_samples, pic_height_in_luma_samples)로 표시되는 픽처의 너비 및/또는 높이가 상이할 때 제1 비디오 유닛(예를 들어, PPS)와 제2 비디오 유닛의 적합성 크롭 윈도우 오프셋 파라미터는 적합성 비트스트림에서 동일해야 한다고 제안된다.23. When the width and/or height of a picture represented by (pic_width_in_luma_samples, pic_height_in_luma_samples) in the first video unit and the second video unit are different from each other, the conformance crop window offset of the first video unit (eg, PPS) and the second video unit It is proposed that the parameters should be identical in the conformance bitstream.

a. 제1 비디오 유닛(예를 들어, PPS)와 제2 비디오 유닛의 적합성 크롭 윈도우 오프셋 파라미터는 제1 비디오 유닛 및 제2 비디오 유닛에서 (pic_width_in_luma_samples, pic_height_in_luma_samples)로 표시된 픽처의 너비 및/또는 높이가 동일하거나 동일하지 않더라도 상관없이 적합성 비트스트림에서 동일해야 한다고 제안된다. a. The conformance crop window offset parameter of the first video unit (eg, PPS) and the second video unit is the same as the width and/or height of the picture indicated by (pic_width_in_luma_samples, pic_height_in_luma_samples) in the first video unit and the second video unit, or It is proposed that they should be identical in the conformance bitstream, irrespective of whether they are identical.

24. 제1 비디오 유닛(예를 들어, PPS)에 정의된 적합성 윈도우의 너비와 높이가 각각 W1 및 H1으로 표시된다고 가정한다. 제2 비디오 유닛(예를 들어, PPS)에서 정의된 적합성 윈도우의 너비와 높이는 각각 W2 및 H2로 표시된다. 제1 비디오 유닛(예를 들어, PPS)에 정의된 적합성 윈도우의 왼쪽 상단 위치는 X1 및 Y1로 표시된다. 제2 비디오 유닛(예를 들어, PPS)에 정의된 적합성 윈도우의 왼쪽 상단 위치는 X2 및 Y2로 표시된다. 제1 비디오 유닛(예를 들어, PPS)에서 정의된 부호화/복호화된 픽처(예를 들어, pic_width_in_luma_samples 및 pic_height_in_luma_samples)의 너비 및 높이는 각각 PW1 및 PH1로 표시된다. 제2 비디오 유닛(예를 들어, PPS)에서 정의되는 코딩/디코딩 픽처의 너비와 높이는 PW2와 PH2로 표시된다.24. It is assumed that the width and height of the conformance window defined in the first video unit (eg, PPS) are denoted by W1 and H1, respectively. The width and height of the conformance window defined in the second video unit (eg, PPS) are denoted by W2 and H2, respectively. The upper left position of the conformance window defined in the first video unit (eg PPS) is denoted by X1 and Y1. The upper left position of the conformance window defined in the second video unit (eg PPS) is denoted by X2 and Y2. The width and height of the encoded/decoded pictures (eg, pic_width_in_luma_samples and pic_height_in_luma_samples) defined in the first video unit (eg, PPS) are denoted by PW1 and PH1, respectively. The width and height of the coded/decoded picture defined in the second video unit (eg, PPS) are indicated by PW2 and PH2.

a. 하나의 예에서, W1/W2는 적합성 비트스트림에서 X1/X2와 동일해야 한다. a. In one example, W1/W2 should be equal to X1/X2 in the conformance bitstream.

i. 대안적으로, W1/X1은 적합성 비트스트림에서 W2/X2와 동일해야 한다. i. Alternatively, W1/X1 should be equal to W2/X2 in the conformance bitstream.

ii. 대안적으로, W1 * X2는 적합성 비트스트림에서 W2 * X1과 동일해야 한다. ii. Alternatively, W1 * X2 must be equal to W2 * X1 in the conformance bitstream.

b. 하나의 예에서, H1/H2는 적합성 비트스트림에서 Y1/Y2와 동일해야 한다. b. In one example, H1/H2 should be equal to Y1/Y2 in the conformance bitstream.

i. 대안적으로, H1/Y1은 적합성 비트스트림에서 H2/Y2와 동일해야 한다. i. Alternatively, H1/Y1 should be equal to H2/Y2 in the conformance bitstream.

ii. 대안적으로, H1 * Y2는 적합성 비트스트림에서 H2 * Y1과 동일해야 한다. ii. Alternatively, H1 * Y2 should be equal to H2 * Y1 in the conformance bitstream.

c. 하나의 예에서, PW1/PW2는 적합성 비트스트림에서 X1/X2와 동일해야 한다. c. In one example, PW1/PW2 should be equal to X1/X2 in the conformance bitstream.

i. 대안적으로, PW1/X1은 적합성 비트스트림에서 PW2/X2와 동일해야 한다. i. Alternatively, PW1/X1 should be the same as PW2/X2 in the conformance bitstream.

ii. 대안적으로, PW1 * X2는 적합성 비트스트림에서 PW2 * X1과 동일해야 한다. ii. Alternatively, PW1 * X2 should be equal to PW2 * X1 in the conformance bitstream.

d. 하나의 예에서, PH1/PH2는 적합성 비트스트림에서 Y1/Y2와 동일해야 한다. d. In one example, PH1/PH2 should be equal to Y1/Y2 in the conformance bitstream.

i. 대안적으로, PH1/Y1은 적합성 비트스트림에서 PH2/Y2와 동일해야 한다. i. Alternatively, PH1/Y1 should be the same as PH2/Y2 in the conformance bitstream.

ii. 대안적으로, PH1 * Y2는 적합성 비트스트림에서 PH2 * Y1과 동일해야 한다. ii. Alternatively, PH1 * Y2 should be equal to PH2 * Y1 in the conformance bitstream.

e. 하나의 예에서, PW1/PW2는 적합성 비트스트림에서 W1/W2와 동일해야 한다. e. In one example, PW1/PW2 should be equal to W1/W2 in the conformance bitstream.

i. 대안적으로, PW1/W1은 적합성 비트스트림에서 PW2/W2와 동일해야 한다. i. Alternatively, PW1/W1 should be the same as PW2/W2 in the conformance bitstream.

ii. 대안적으로, PW1 * W2는 적합성 비트스트림에서 PW2 * W1과 동일해야 한다. ii. Alternatively, PW1 * W2 should be equal to PW2 * W1 in the conformance bitstream.

f. 하나의 예에서, PH1/PH2는 적합성 비트스트림에서 H1/H2와 동일해야 한다. f. In one example, PH1/PH2 should be equal to H1/H2 in the conformance bitstream.

i. 대안적으로, PH1/H1은 적합성 비트스트림에서 PH2/H2와 동일해야 한다. i. Alternatively, PH1/H1 should be the same as PH2/H2 in the conformance bitstream.

ii. 대안적으로, PH1 * H2는 적합성 비트스트림에서 PH2 * H1과 동일해야 한다. ii. Alternatively, PH1 * H2 should be equal to PH2 * H1 in the conformance bitstream.

g. 적합성 비트스트림에서, PW1이 PW2보다 크면 W1은 W2보다 커야 한다. g. In the conformance bitstream, if PW1 is greater than PW2, then W1 must be greater than W2.

h. 적합성 비트스트림에서, PW1이 PW2보다 작으면 W1은 W2보다 작아야 한다. h. In the conformance bitstream, if PW1 is less than PW2, then W1 must be less than W2.

i. 적합성 비트스트림에서, (PW1-PW2) * (W1-W2)는 0보다 작지 않아야 한다. i. In the conformance bitstream, (PW1-PW2) * (W1-W2) MUST not be less than zero.

j. 적합성 비트스트림에서, PH1이 PH2보다 크면 H1은 H2보다 커야 한다. j. In the conformance bitstream, H1 must be greater than H2 if PH1 is greater than PH2.

k. 적합성 비트스트림에서, PH1이 PH2보다 작으면 H1은 H2보다 작아야 한다. k. In the conformance bitstream, H1 must be less than H2 if PH1 is less than PH2.

l. 적합성 비트스트림에서, (PH1-PH2) * (H1-H2)는 0보다 작지 않아야 한다. l. In the conformance bitstream, (PH1-PH2) * (H1-H2) shall not be less than zero.

m. 적합성 비트스트림에서, W1/W2는 PW1 >= PW2인 경우 PW1/PW2보다 커서는 안된다(작아야 한다.). m. In the conformance bitstream, W1/W2 must not be greater than (must be less than) PW1/PW2 if PW1 >= PW2.

n. 적합성 비트스트림에서, H1/H2는 PH1 >= PH2인 경우 PH1/PH2보다 커서는 안된다(작아야 한다) n. In the conformance bitstream, H1/H2 must not be greater than (must be less than) PH1/PH2 if PH1 >= PH2.

25. 현재 픽처(의 적합성 윈도우)의 너비와 높이는 각각 W2와 H2로 표시된다. 레퍼런스 픽처의 적합성 윈도우의 너비와 높이는 각각 W'와 H'로 표시된다. 그런 다음 아래의 적어도 하나의 제약 조건 뒤에는 적합성 비트 스트림이 따라야 한다.25. The width and height of the current picture (the suitability window of) are denoted by W2 and H2, respectively. The width and height of the compatibility window of the reference picture are denoted by W' and H', respectively. Then at least one constraint below must be followed by a conformance bit stream.

a. W * pw >= W'; pw는 2와 같은 정수이다. a. W * pw >= W'; pw is an integer equal to 2.

b. W * pw > W'; pw는 2와 같은 정수이다. b. W * pw > W'; pw is an integer equal to 2.

c. W' * pw' >= W; pw'는 8과 같은 정수이다. c. W' * pw' >= W; pw' is an integer equal to 8.

d. W' * pw' > W; pw'는 8과 같은 정수이다. d. W' * pw' > W; pw' is an integer equal to 8.

e. H * ph >= H'; ph는 2와 같은 정수이다. e. H * ph >= H'; ph is an integer equal to 2.

f. H * ph > H'; ph는 2와 같은 정수이다. f. H * ph > H'; ph is an integer equal to 2.

g. H' * ph' >= H; ph'는 8과 같은 정수이다. g. H' * ph' >= H; ph' is an integer equal to 8.

h. H' * ph' > H; ph'는 8과 같은 정수이다. h. H' * ph' > H; ph' is an integer equal to 8.

i. 하나의 예에서, pw는 pw'와 동일하다. i. In one example, pw is equal to pw'.

j. 하나의 예에서, ph는 ph'와 동일하다. j. In one example, ph is equal to ph'.

k. 하나의 예에서, pw는 ph와 동일하다. k. In one example, pw equals ph.

l. 하나의 예에서, pw'는 ph'와 동일하다. l. In one example, pw' is equal to ph'.

m. 하나의 예에서, W 및 H가 각각 현재 픽처의 폭 및 높이를 나타낼 때 위의 하위 항목은 적합성 비트스트림에 의해 충족되도록 요구될 수 있다. W'와 H'는 레퍼런스 픽처의 너비와 높이를 나타낸다. m. In one example, when W and H represent the width and height of the current picture, respectively, the sub-items above may be required to be satisfied by the conformance bitstream. W' and H' represent the width and height of the reference picture.

26. 적합성 윈도우 파라미터들은 부분적으로 시그널링되는 것이 제안된다.26. It is proposed that the conformance window parameters are partially signaled.

a. 하나의 예에서, 픽처의 적합성 윈도우에 있는 왼쪽 상단 샘플은 픽처의 샘플과 동일한 것이다. a. In one example, the top left sample in the relevance window of the picture is the same as the picture's sample.

b. 예를 들어, VVC에 정의된 conf_win_left_offset은 시그널링 되지 않고 0으로 유추된다. b. For example, conf_win_left_offset defined in VVC is not signaled and is inferred as 0.

c. 예를 들어, VVC에 정의된 conf_win_top_offset은 시그널링 되지 않고 0으로 유추된다. c. For example, conf_win_top_offset defined in VVC is not signaled and is inferred as 0.

27. 레퍼런스 샘플의 위치 유도(예를 들어, VVC에 정의된 (refxL, refyL))는 현재 픽처 및/또는 레퍼런스 픽처의 적합성 윈도우의 왼쪽 상단 위치(예를 들어, VVC에 정의된 (conf_win_left_offset, conf_win_top_offset))에 의존할 수 있다고 제안된다. 도 4는 VVC(a) 및 제안 방법(b)에서와 같이 유도된 샘플 위치의 예를 나타낸다. 점선 직사각형은 적합성 윈도우를 나타낸다.27. Position derivation of the reference sample (eg (refx L , refy L ) defined in VVC) is the upper left position of the current picture and/or the compatibility window of the reference picture (eg (conf_win_left_offset defined in VVC) , conf_win_top_offset))). 4 shows examples of sample positions derived as in VVC (a) and the proposed method (b). The dashed rectangle represents the fit window.

a. 하나의 예에서, 의존성은 현재 픽처의 너비 및/또는 높이와 레퍼런스 픽처의 너비 및/또는 높이가 다른 경우에만 존재한다. a. In one example, the dependency exists only when the width and/or height of the current picture and the width and/or height of the reference picture are different.

b. 하나의 예에서, 레퍼런스 샘플의 수평 위치(예를 들어, VVC에 정의된 refxL)의 유도는 현재 픽처 및/또는 레퍼런스 픽처의 적합성 윈도우의 왼쪽 위치(예를 들어, VVC에 정의된 conf_win_left_offset)에 따라 달라질 수 있다.b. In one example, the derivation of the horizontal position of the reference sample (eg, refx L defined in VVC) is at the left position of the compatibility window of the current picture and/or reference picture (eg, conf_win_left_offset defined in VVC). may vary depending on

i. 하나의 예에서, 현재 픽처에서 적합성 윈도우의 왼쪽 상단 위치에 대한 현재 샘플의 수평 위치(xSb'로 표시됨)가 계산되고 레퍼런스 샘플의 위치를 유도하는 데 사용된다. i. In one example, the horizontal position (denoted by xSb') of the current sample relative to the upper left position of the conformance window in the current picture is calculated and used to derive the position of the reference sample.

1) 예를 들어, xSb'= xSb - (conf_win_left_offset << Prec)는 레퍼런스 샘플의 위치를 유도하기 위해 계산되고 사용되고, 여기서 xSb는 현재 픽처에서 현재 샘플의 수평 위치를 나타낸다. conf_win_left_offset은 현재 픽처의 일치 윈도우에서 왼쪽 상단 샘플의 수평 위치를 나타낸다. Prec는 xSb 및 xSb'의 정밀도를 나타내고, 여기서 (xSb>>Prec)는 현재 픽처에 대한 현재 샘플의 실제 수평 좌표를 나타낼 수 있다. 예들 들어, Prec = 0 또는 Prec = 4이다. One) For example, xSb' = xSb - (conf_win_left_offset << Prec) is calculated and used to derive the position of the reference sample, where xSb represents the horizontal position of the current sample in the current picture. conf_win_left_offset indicates the horizontal position of the upper left sample in the matching window of the current picture. Prec represents the precision of xSb and xSb', where (xSb>>Prec) may represent the actual horizontal coordinates of the current sample with respect to the current picture. For example, Prec = 0 or Prec = 4.

ii. 하나의 예에서, 레퍼런스 픽처에서 적합성 윈도우의 왼쪽 상단 위치에 대한 레퍼런스 샘플의 수평 위치(Rx'로 표시됨)가 계산된다. ii. In one example, the horizontal position (denoted by Rx') of the reference sample relative to the upper left position of the conformance window in the reference picture is calculated.

1) Rx'의 계산은 xSb' 및/또는 모션 벡터, 및/또는 리샘플링 비율에 따라 달라질 수 있다. One) The calculation of Rx' may depend on xSb' and/or motion vectors, and/or resampling rates.

iii. 하나의 예에서, 레퍼런스 픽처에서 상대적인 레퍼런스 샘플의 수평 위치(Rx로 표시됨)는 Rx'에 따라 계산된다. iii. In one example, the horizontal position (denoted by Rx) of the relative reference sample in the reference picture is calculated according to Rx'.

1) 예를 들어, Rx = Rx' + (conf_win_left_offset_ref << Prec)가 계산되고, 여기서 conf_win_left_offset_ref는 레퍼런스 픽처의 적합성 윈도우에서 왼쪽 상단 샘플의 수평 위치를 나타낸다. Prec는 Rx 및 Rx'의 정밀도를 나타낸다. 예들 들어, Prec = 0 또는 Prec = 4이다. One) For example, Rx = Rx' + (conf_win_left_offset_ref << Prec) is calculated, where conf_win_left_offset_ref indicates the horizontal position of the upper left sample in the conformance window of the reference picture. Prec represents the precision of Rx and Rx'. For example, Prec = 0 or Prec = 4.

iv. 하나의 예에서, Rx는 xSb', 및/또는 모션 벡터, 및/또는 리샘플링 비율에 따라 직접적으로 계산될 수 있다. 다시 말해서, Rx'와 Rx에 대한 두 단계의 유도가 한 단계 계산으로 결합된다. iv. In one example, Rx may be calculated directly according to xSb', and/or a motion vector, and/or a resampling ratio. In other words, the two steps of derivation for Rx' and Rx are combined into one step calculation.

v. 현재 픽처 및/또는 레퍼런스 픽처의 적합성 윈도우의 왼쪽 위치(예를 들어, VVC에 정의된 conf_win_left_offset)를 사용할지 여부 및/또는 방법은컬러 컴포넌트 및/또는 컬러 포맷에 따라 달라질 수 있다. v. Whether and/or how to use the left position (eg, conf_win_left_offset defined in VVC) of the compatibility window of the current picture and/or reference picture may vary according to a color component and/or a color format.

1) 예를 들어, conf_win_left_offset은 conf_win_left_offset = conf_win_left_offset * SubWidthC로 수정될 수 있고, 여기서 SubWidthC는 컬러 컴포넌트의 수평 샘플링 단계를 정의한다. 예들 들어, SubWidthC는 루마 컴포넌트에 대해 1과 동일하다. SubWidthC는 컬러 포맷이 4:2:0 또는 4:2:2일 때 크로마 컴포넌트에 대해 2와 동일하다. One) For example, conf_win_left_offset may be modified as conf_win_left_offset = conf_win_left_offset * SubWidthC, where SubWidthC defines the horizontal sampling level of the color component. For example, SubWidthC is equal to 1 for the luma component. SubWidthC is equal to 2 for the chroma component when the color format is 4:2:0 or 4:2:2.

2) 예를 들어, conf_win_left_offset은 conf_win_left_offset = conf_win_left_offset / SubWidthC로 수정될 수 있고, 여기서 SubWidthC는 컬러 컴포넌트의 수평 샘플링 단계를 정의한다. 예들 들어, SubWidthC는 루마 컴포넌트에 대해 1과 동일하다. SubWidthC는 컬러 포맷이 4:2:0 또는 4:2:2일 때 크로마 컴포넌트에 대해 2와 동일하다. 2) For example, conf_win_left_offset may be modified as conf_win_left_offset = conf_win_left_offset / SubWidthC, where SubWidthC defines the horizontal sampling step of the color component. For example, SubWidthC is equal to 1 for the luma component. SubWidthC is equal to 2 for the chroma component when the color format is 4:2:0 or 4:2:2.

c. 하나의 예에서, 레퍼런스 샘플의 수직 위치(예를 들어, VVC에서 정의된 refyL)의 유도는 현재 픽처 및/또는 레퍼런스 픽처의 적합성 윈도우의 상단 위치(예를 들어, VVC에서 정의된 conf_win_top_offset)에 의존할 수 있다.c. In one example, the derivation of the vertical position of the reference sample (eg, refy L as defined in VVC) is at the top position of the compatibility window of the current picture and/or reference picture (eg, conf_win_top_offset defined in VVC). can depend on

i. 하나의 예에서, 현재 픽처에서 적합성 윈도우의 왼쪽 상단 위치에 대한 현재 샘플의 수직 위치(ySb'로 표시됨)가 계산되고 레퍼런스 샘플의 위치를 유도하기 위해 사용된다. i. In one example, the vertical position (denoted by ySb′) of the current sample with respect to the upper left position of the conformance window in the current picture is calculated and used to derive the position of the reference sample.

1) 예를 들어, ySb'= ySb - (conf_win_top_offset << Prec)가 계산되어 레퍼런스 샘플의 위치를 유도하기 위해 사용되고, 여기서 ySb는 현재 픽처에서 현재 샘플의 수직 위치를 나타낸다. conf_win_top_offset은 현재 픽처의 적합성 윈도우에서 왼쪽 상단 샘플의 수직 위치를 나타낸다. Prec는 ySb 및 ySb'의 정밀도를 나타낸다. 예들 들어, Prec = 0 또는 Prec = 4이다. One) For example, ySb'=ySb - (conf_win_top_offset << Prec) is calculated and used to derive the position of the reference sample, where ySb represents the vertical position of the current sample in the current picture. conf_win_top_offset indicates the vertical position of the upper left sample in the suitability window of the current picture. Prec represents the precision of ySb and ySb'. For example, Prec = 0 or Prec = 4.

ii. 하나의 예에서, 레퍼런스 픽처에서 적합성 윈도우의 왼쪽 상단 위치에 대한 레퍼런스 샘플의 수직 위치(Ry'로 표시됨)가 계산된다. ii. In one example, the vertical position (denoted by Ry') of the reference sample relative to the upper-left position of the conformance window in the reference picture is calculated.

1) Ry'의 계산은 ySb' 및/또는 모션 벡터, 및/또는 리샘플링 비율에 따라 달라질 수 있다. One) The calculation of Ry' may depend on ySb' and/or a motion vector, and/or a resampling rate.

iii. 하나의 예에서, 레퍼런스 픽처에서 상대적인 레퍼런스 샘플의 수직 위치(Ry로 표시됨)는 Ry'에 따라 계산된다. iii. In one example, the vertical position (denoted by Ry) of the relative reference sample in the reference picture is calculated according to Ry'.

1) 예를 들어, Ry = Ry' + (conf_win_top_offset_ref << Prec)가 계산되고, 여기서 conf_win_top_offset_ref는 레퍼런스 픽처의 적합성 윈도우에서 왼쪽 상단 샘플의 수직 위치를 나타낸다. Prec는 Ry와 Ry'의 정밀도를 나타낸다. 예들 들어, Prec = 0 또는 Prec = 4이다. One) For example, Ry = Ry' + (conf_win_top_offset_ref << Prec) is calculated, where conf_win_top_offset_ref indicates the vertical position of the upper left sample in the conformance window of the reference picture. Prec represents the precision of Ry and Ry'. For example, Prec = 0 or Prec = 4.

iv. 하나의 예에서, Ry는 ySb' 및/또는 모션 벡터, 및/또는 리샘플링 비율에 따라 직접 계산될 수 있다. 즉, Ry' 및 Ry에 대한 두 가지 유도 단계가 한 단계 계산으로 결합된다. iv. In one example, Ry may be calculated directly according to ySb' and/or a motion vector, and/or a resampling ratio. That is, the two derivation steps for Ry' and Ry are combined into one step calculation.

v. 현재 픽처 및/또는 레퍼런스 픽처의 적합성 윈도우의 최상위 위치(예를 들어, VVC에 정의된 conf_win_top_offset)를 사용할지 여부 및/또는 방법은 컬러 컴포넌트 및/또는 컬러 포맷에 따라 달라질 수 있다. v. Whether and/or how to use the top position of the compatibility window of the current picture and/or reference picture (eg, conf_win_top_offset defined in VVC) and/or method may depend on a color component and/or a color format.

1) 예를 들어, conf_win_top_offset은 conf_win_top_offset = conf_win_top_offset * SubHeightC로 수정될 수 있고, 여기서 SubHeightC는 컬러 컴포넌트의 수직 샘플링 단계를 정의한다. 예들 들어, SubHeightC는 루마 컴포넌트에 대해 1과 동일하다. SubHeightC는 컬러 포맷이 4:2:0인 경우 크로마 컴포넌트에 대해 2와 동일하다. One) For example, conf_win_top_offset may be modified as conf_win_top_offset = conf_win_top_offset * SubHeightC, where SubHeightC defines the vertical sampling level of the color component. For example, SubHeightC is equal to 1 for the luma component. SubHeightC is equal to 2 for the chroma component when the color format is 4:2:0.

2) 예를 들어, conf_win_top_offset은 conf_win_top_offset = conf_win_top_offset / SubHeightC로 수정될 수 있고, 여기서 SubHeightC는 컬러 컴포넌트의 수직 샘플링 단계를 정의한다. 예들 들어, SubHeightC는 루마 컴포넌트에 대해 1과 동일하다. SubHeightC는 컬러 포맷이 4:2:0인 경우 크로마 컴포넌트에 대해 2와 동일하다. 2) For example, conf_win_top_offset may be modified as conf_win_top_offset = conf_win_top_offset / SubHeightC, where SubHeightC defines the vertical sampling level of the color component. For example, SubHeightC is equal to 1 for the luma component. SubHeightC is equal to 2 for the chroma component when the color format is 4:2:0.

28. 레퍼런스 샘플의 수평 좌표의 정수 부분은 [minW, maxW]로 클리핑될 수 있음을 제안한다. 레퍼런스 픽처의 적합성 윈도우의 너비와 높이가 각각 W1과 H1로 표시된다고 가정한다. 레퍼런스 픽처의 적합성 윈도우의 너비와 높이는 W'와 H'로 표기된다. 레퍼런스 픽처에서 적합성 윈도우의 왼쪽 상단 위치는 (X0, Y0)로 표기된다.28. It is proposed that the integer part of the horizontal coordinate of the reference sample can be clipped to [minW, maxW]. It is assumed that the width and height of the conformance window of the reference picture are indicated by W1 and H1, respectively. The width and height of the compatibility window of the reference picture are denoted by W' and H'. The upper left position of the conformance window in the reference picture is denoted by (X0, Y0).

a. 하나의 예에서, minW는 0과 동일하다. a. In one example, minW is equal to zero.

b. 하나의 예에서, minW는 X0와 동일하다. b. In one example, minW is equal to X0.

c. 하나의 예에서, maxW는 W-1과 동일하다. c. In one example, maxW equals W-1.

d. 하나의 예에서, maxW는 W'-1과 동일하다. d. In one example, maxW equals W'-1.

e. 하나의 예에서, maxW는 X0+W'-1과 동일하다. e. In one example, maxW equals X0+W'-1.

f. 하나의 예에서, minW 및/또는 maxW는 컬러 포맷 및/또는 컬러 컴포넌트에 기초하여 수정될 수 있다. f. In one example, minW and/or maxW may be modified based on color format and/or color component.

i. 예를 들어, minW는 minW *SubC로 수정된다. i. For example, minW is modified to minW *SubC.

ii. 예를 들어 minW는 minW /SubC로 수정된다. ii. For example, minW is modified to minW /SubC.

iii. 예를 들어, maxW는 maxW *SubC로 수정된다. iii. For example, maxW is modified to maxW *SubC.

iv. 예를 들어, maxW는 maxW /SubC로 수정된다. iv. For example, maxW is modified to maxW /SubC.

v. 하나의 예에서, SubC는 루마 컴포넌트에 대해 1과 동일하다. v. In one example, SubC is equal to 1 for the luma component.

vi. 하나의 예에서, SubC는 컬러 포맷이 4:2:0일 때 크로마 컴포넌트에 대해 2와 동일하다. vi. In one example, SubC is equal to 2 for the chroma component when the color format is 4:2:0.

vii. 하나의 예에서, SubC는 컬러 포맷이 4:2:2일 때 크로마 컴포넌트에 대해 2와 동일하다. vii. In one example, SubC is equal to 2 for the chroma component when the color format is 4:2:2.

viii. 하나의 예에서, SubC는 컬러 포맷이 4:4:4일 때 크로마 컴포넌트에 대해 1과 동일하다. viii. In one example, SubC is equal to 1 for the chroma component when the color format is 4:4:4.

g. 하나의 예에서, 클리핑을 수행할지 여부 및/또는 방법은 현재 픽처(또는 그 안의 적합성 윈도우)의 차원과 레퍼런스 픽처(또는 그 안의 적합성 윈도우)의 차원에 따라 달라질 수 있다. g. In one example, whether and/or how to perform clipping may vary depending on the dimension of the current picture (or the conformance window therein) and the dimension of the reference picture (or the conformance window therein).

i. 하나의 예에서, 클리핑은 현재 픽처(또는 그 안의 적합성 윈도우)의 차원과 레퍼런스 픽처(또는 그 안의 적합성 윈도우)의 차원이 다른 경우에만 수행된다. i. In one example, clipping is performed only when the dimension of the current picture (or the conformance window therein) is different from the dimension of the reference picture (or the conformance window therein).

29. 레퍼런스 샘플의 수직 좌표의 정수 부분은 [minH, maxH]로 클리핑될 수 있음을 제안한다. 레퍼런스 픽처의 적합성 윈도우의 너비와 높이가 각각 W1과 H1로 표시된다고 가정한다. 레퍼런스 픽처의 적합성 윈도우의 너비와 높이는 W'와 H'로 표기된다. 레퍼런스 픽처에서 적합성 윈도우의 왼쪽 상단 위치는 (X0, Y0)로 표기된다.29. It is proposed that the integer part of the vertical coordinate of the reference sample can be clipped to [minH, maxH]. It is assumed that the width and height of the conformance window of the reference picture are indicated by W1 and H1, respectively. The width and height of the compatibility window of the reference picture are denoted by W' and H'. The upper left position of the conformance window in the reference picture is denoted by (X0, Y0).

a. 하나의 예에서, minH는 0과 동일하다. a. In one example, minH is equal to zero.

b. 하나의 예에서, minH는 Y0와 동일하다. b. In one example, minH equals Y0.

c. 하나의 예에서, maxH는 H-1과 동일한다. c. In one example, maxH is equal to H-1.

d. 하나의 예에서, maxH는 H'-1과 동일하다. d. In one example, maxH is equal to H'-1.

e. 하나의 예에서, maxH는 Y0+H'-1과 동일하다. e. In one example, maxH is equal to Y0+H'-1.

f. 하나의 예에서, minH 및/또는 maxH는 컬러 포맷 및/또는 컬러 컴포넌트에 기초하여 수정될 수 있다. f. In one example, minH and/or maxH may be modified based on color format and/or color component.

i. 예를 들어, minH는 minH *SubC로 수정된다. i. For example, minH is modified to minH *SubC.

ii. 예를 들어 minH는 minH/SubC로 수정된다. ii. For example, minH is modified to minH/SubC.

iii. 예를 들어, maxH는 maxH *SubC로 수정된다. iii. For example, maxH is modified to maxH *SubC.

iv. 예를 들어, maxH는 maxH /SubC로 수정된다. iv. For example, maxH is modified to maxH /SubC.

v. 하나의 예에서, SubC는 루마 컴포넌트에 대해 1과 동일하다. v. In one example, SubC is equal to 1 for the luma component.

vi. 하나의 예에서, SubC는 컬러 포맷이 4:2:0일 때 크로마 컴포넌트에 대해 2와 동일하다. vi. In one example, SubC is equal to 2 for the chroma component when the color format is 4:2:0.

vii. 하나의 예에서, SubC는 컬러 포맷이 4:2:2일 때 크로마 컴포넌트에 대해 1과 동일하다. vii. In one example, SubC is equal to 1 for the chroma component when the color format is 4:2:2.

viii. 하나의 예에서, SubC는 컬러 포맷이 4:4:4일 때 크로마 컴포넌트에 대해 1과 동일하다. viii. In one example, SubC is equal to 1 for the chroma component when the color format is 4:4:4.

g. 하나의 예에서, 클리핑을 수행할지 여부 및/또는 방법은 현재 픽처(또는 그 안의 적합성 윈도우)의 차원과 레퍼런스 픽처(또는 그 안의 적합성 윈도우)의 차원에 따라 달라질 수 있다. g. In one example, whether and/or how to perform clipping may vary depending on the dimension of the current picture (or the conformance window therein) and the dimension of the reference picture (or the conformance window therein).

i. 하나의 예에서, 클리핑은 현재 픽처(또는 그 안의 적합성 윈도우)의 차원과 레퍼런스 픽처(또는 그 안의 적합성 윈도우)의 차원이 다른 경우에만 수행된다. i. In one example, clipping is performed only when the dimension of the current picture (or the conformance window therein) is different from the dimension of the reference picture (or the conformance window therein).

다음 논의에서, 두 신택스 요소가 동등한 기능을 갖지만 다른 비디오 유닛(예를 들어, VPS/SPS/PPS/슬라이스 헤더/픽처 헤더 등)에서 시그널링될 수 있는 경우, 제1 신택스 요소는 제2 신택스 요소에 "대응하는" 것으로 주장된다.In the following discussion, when two syntax elements have equivalent functions but can be signaled in different video units (eg, VPS/SPS/PPS/slice header/picture header, etc.), the first syntax element is attached to the second syntax element. It is claimed to be "corresponding".

30. 신택스 요소는 제1 비디오 유닛(예를 들어, 픽처 헤더 또는 PPS)에서 시그널링될 수 있고 대응하는 신택스 요소는 더 높은 레벨(예를 들어, SPS) 또는 더 낮은 레벨(예를 들어, 슬라이스 헤더)에서 제2 비디오 유닛에서 시그널링되지 않는 것으로 제안된다. 30. A syntax element may be signaled in a first video unit (eg, picture header or PPS) and the corresponding syntax element is at a higher level (eg, SPS) or at a lower level (eg, slice header) It is proposed not to be signaled in the second video unit.

a. 대안적으로, 제1 신택스 요소는 제1 비디오 유닛(예를 들어, 픽처 헤더 또는 PPS)에서 시그널링될 수 있고 대응하는 제2 신택스 요소는 더 낮은 레벨(슬라이스 헤더와 같은)에서 제2 비디오 유닛에서 시그널링될 수 있다. a. Alternatively, the first syntax element may be signaled in a first video unit (eg, a picture header or PPS) and a corresponding second syntax element may be signaled in a second video unit at a lower level (such as a slice header) may be signaled.

i. 대안적으로, 표시자(indicator)는 제2 신택스 요소가 이후에 시그널링되는지 여부를 알리기 위해 제2 비디오 유닛에서 시그널링될 수 있다. i. Alternatively, an indicator may be signaled in the second video unit to indicate whether the second syntax element is signaled later.

ii. 하나의 예에서, (슬라이스 헤더와 같은) 제2 비디오 유닛과 연관된 슬라이스는 제2 신택스 요소가 시그널링되는 경우 제1 신택스 요소 대신에 제2 신택스 요소의 표시를 따를 수도 있다. ii. In one example, a slice associated with a second video unit (such as a slice header) may follow the indication of the second syntax element instead of the first syntax element when the second syntax element is signaled.

iii. 제1 신택스 요소와 연관된 표시자는 제2 신택스 요소가 제1 비디오 유닛과 연관된 임의의 슬라이스(또는 다른 비디오 유닛)에서 시그널링되는지 여부를 알리기 위해 제1 비디오 유닛에서 시그널링될 수도 있다. iii. An indicator associated with the first syntax element may be signaled in the first video unit to indicate whether the second syntax element is signaled in any slice (or other video unit) associated with the first video unit.

b. 대안적으로, 제1 신택스 요소는 더 높은 레벨(예를 들어, VPS/SPS/PPS)의 제1 비디오 유닛에서 시그널링될 수 있고, 대응하는 제2 신택스 요소는 제2 비디오 유닛(예를 들어, 픽처 헤더)에서 시그널링될 수 있다. b. Alternatively, the first syntax element may be signaled in a first video unit of a higher level (eg, VPS/SPS/PPS), and a corresponding second syntax element may be signaled in a second video unit (eg, picture header).

i. 대안적으로, 표시자는 이후에 제2 신택스 요소가 시그널링되는지 여부를 알리기 위해 시그널링될 수 있다. i. Alternatively, the indicator may then be signaled to indicate whether the second syntax element is signaled.

ii. 하나의 예에서, 제2 비디오 유닛과 연관된 픽처(슬라이스들로 분할될 수 있음)는 제2 신택스 요소가 시그널링되는 경우 제1 신택스 요소 대신에 제2 신택스 요소의 표시를 따를 수 있다. ii. In one example, a picture (which may be split into slices) associated with the second video unit may follow the indication of the second syntax element instead of the first syntax element when the second syntax element is signaled.

c. 픽처 헤더의 제1 신텍스 요소는 섹션 2.6에 지정된 슬라이스 헤더의 제2 신텍스 요소로서 동등한 기능을 가질 수 있으나( slice_temporal_mvp_enabled_flag, cabac_init_flag, six_minus_max_num_merge_cand, five_minus_max_num_subblock_merge_cand, slice_fpel_mmvd_enabled_flag, slice_disable_bdof_dmvr_flag, max_num_merge_cand_minus_max_num_triangle_cand, slice_fpel_mmvd_enabled_flag, slice_six_minus_max_num_ibc_merge_cand, slice_joint_cbcr_sign_flag, slice_qp_delta, ... 와 같은, 그러나 이에 제한되지 않는) 픽처의 모든 슬라이스를 제어한다. c. 픽처 헤더의 제1 신텍스 요소는 섹션 2.6에 지정된 슬라이스 헤더의 제2 신텍스 요소로서 동등한 기능을 가질 수 있으나( slice_temporal_mvp_enabled_flag, cabac_init_flag, six_minus_max_num_merge_cand, five_minus_max_num_subblock_merge_cand, slice_fpel_mmvd_enabled_flag, slice_disable_bdof_dmvr_flag, max_num_merge_cand_minus_max_num_triangle_cand, slice_fpel_mmvd_enabled_flag, slice_six_minus_max_num_ibc_merge_cand, slice_joint_cbcr_sign_flag, slice_qp_delta, . Controls all slices of a picture (such as but not limited to .. ).

d. 섹션 2.6에 지정된 SPS의 제1 신텍스 요소는 픽처 헤더의 제2 신텍스 요소와 동등한 기능을 가질 수 있으나 (sps_bdof_dmvr_slice_present_flag, sps_mmvd_enabled_flag, sps_isp_enabled_flag, sps_mrl_enabled_flag, sps_mip_enabled_flag, sps_cclm_enabled_flag, sps_mts_enabled_flag ... 와 같은, 그러나 이에 제한되지 않는) 단지 연관된 픽처(슬라이로 분할될 수 있는)만 제어한다. d. The first syntax element of the SPS specified in section 2.6 may have the same function as the second syntax element of the picture header (sps_bdof_dmvr_slice_present_flag, Controls only associated pictures (which can be split into slices) such as, but not limited to, sps_mmvd_enabled_flag, sps_isp_enabled_flag, sps_mrl_enabled_flag, sps_mip_enabled_flag, sps_cclm_enabled_flag, sps_mts_enabled_flag...

e. 섹션 2.7에 명시된 PPS의 제1 신텍스 요소는 픽처 헤더의 제2 신텍스 요소로서 동등한 기능을 가질 수 있으나entropy_coding_sync_enabled_flag, entry_point_offsets_present_flag, cabac_init_present_flag, rpl1_idx_present_flag ... 와 같은, 그러나 이에 제한되지 않는) 단지 연관된 픽처(슬라이로 분할될 수 있는)만 제어한다. e. The first syntax element of the PPS specified in section 2.7 may have an equivalent function as the second syntax element of the picture header, but entropy_coding_sync_enabled_flag, Controls only the associated picture (which can be split into slices), such as, but not limited to, entry_point_offsets_present_flag, cabac_init_present_flag, rpl1_idx_present_flag...

31. 픽처 헤더에서 시그널링되는 신택스 요소는 SPS/VPS/DPS에서 시그널링되거나 유도된 다른 신택스 요소로부터 분리된다. 31. The syntax element signaled in the picture header is separated from other syntax elements signaled or derived in SPS/VPS/DPS.

32. DMVR 및 BDOF의 활성화/비활성화 지시는 동일한 플래그(예를 들어, pic_disable_bdof_dmvr_flag)에 의해 제어되는 대신 픽처 헤더에서 별도로 시그널링될 수 있다. 32. The DMVR and BDOF activation/deactivation indications may be separately signaled in the picture header instead of being controlled by the same flag (eg, pic_disable_bdof_dmvr_flag).

33. PROF/크로스 컴포넌트 ALF/기하학적 파티션(GEO)을 통한 인터 예측의 활성화/비활성화 표시는 픽처 헤더에서 시그널링될 수 있다. 33. Indication of activation/deactivation of inter prediction via PROF/cross component ALF/geometric partition (GEO) may be signaled in the picture header.

a. 대안적으로, 픽처 헤더의 PROF 활성화/비활성화의 표시는 SPS의 PROF 활성화 플래그에 따라 조건부로 시그널링될 수 있다. a. Alternatively, the indication of PROF activation/deactivation of the picture header may be signaled conditionally according to the PROF activation flag of the SPS.

b. 대안적으로, 픽처 헤더의 CCALF(Cross-Component ALF) 활성화/비활성화 표시는 SPS의 CCALF 활성화 플래그에 따라 조건부로 시그널링될 수 있다. b. Alternatively, the CCALF (Cross-Component ALF) activation/deactivation indication of the picture header may be conditionally signaled according to the CCALF activation flag of the SPS.

c. 대안적으로, 픽처 헤더에서 GEO를 활성화/비활성화하는 표시는 SPS의 GEO 활성화 플래그에 따라 조건부로 시그널링될 수 있다. c. Alternatively, the indication of activating/deactivating GEO in the picture header may be signaled conditionally according to the GEO activation flag of the SPS.

d. 대안적으로, 또한, 슬라이스 헤더에서 기하학적 파티션(GEO)을 통한 PROF/크로스 컴포넌트 ALF/인터페이스의 활성화/비활성화 표시는 SPS 대신 픽처 헤더에서 시그널링된 신택스 요소에 따라 조건부로 시그널링될 수 있다. d. Alternatively, also, activation/deactivation indication of PROF/cross component ALF/interface via geometric partition (GEO) in slice header may be conditionally signaled according to a syntax element signaled in picture header instead of SPS.

34. 동일한 픽처에서 슬라이스/브릭/타일(또는 픽처보다 작은 다른 비디오 유닛)의 예측 유형의 표시는 픽처 헤더에서 시그널링될 수 있다.34. An indication of the prediction type of a slice/brick/tile (or other video unit smaller than a picture) in the same picture may be signaled in the picture header.

a. 하나의 예에서, 모든 슬라이스/브릭/타일(또는 픽처보다 작은 다른 비디오 유닛)이 모두 인트라 코딩되는지(예를 들어, 모든 I 슬라이스)의 표시는 픽처 헤더에서 시그널링될 수 있다. a. In one example, an indication of whether all slices/bricks/tiles (or other video units smaller than a picture) are all intra coded (eg, all I slices) can be signaled in the picture header.

i. 대안적으로, 또한, 표시가 픽처 내의 모든 슬라이스가 I 슬라이스임을 알려주는 경우 슬라이스 유형은 슬라이스 헤더에서 시그널링되지 않을 수 있다. i. Alternatively, the slice type may not be signaled in the slice header also if the indication indicates that all slices in the picture are I slices.

b. 대안적으로, 슬라이스/브릭/타일(또는 픽처보다 작은 다른 비디오 유닛) 중 적어도 하나가 인트라 코딩되지 않았는지(예를 들어, 적어도 하나의 비-I 슬라이스)의 표시는 픽처 헤더에서 시그널링될 수 있다. b. Alternatively, an indication of whether at least one of a slice/brick/tile (or other video unit smaller than a picture) is not intra-coded (eg, at least one non-I slice) may be signaled in the picture header. .

c. 대안적으로, 모든 슬라이스/브릭/타일(또는 픽처보다 작은 다른 비디오 유닛)이 모두 동일한 예측 유형(예를 들어, I/P/B 슬라이스)을 갖는지 여부의 표시가 픽처 헤더에서 시그널링될 수 있다. c. Alternatively, an indication of whether all slices/bricks/tiles (or other video units smaller than a picture) all have the same prediction type (eg, I/P/B slice) can be signaled in the picture header.

i. 대안적으로, 슬라이스 헤더에 슬라이스 유형이 시그널링되지 않을 수도 있다. i. Alternatively, the slice type may not be signaled in the slice header.

ii. 대안적으로, 또한, 특정 예측 유형 (예를 들어, DMVR/BDOF/TPM/GEO는 B 슬라이스에 대해서만 허용되고, 이중 트리는 I 슬라이스에만 허용됨) 에 대해 허용되는 툴의 표시는 예측 유형의 표시에 따라 조건부로 시그널링될 수 있다. ii. Alternatively, also, the indication of allowed tools for a particular prediction type (eg, DMVR/BDOF/TPM/GEO is only allowed for B slices, and dual tree is allowed only for I slices) depends on the indication of the prediction type. It may be signaled conditionally.

d. 대안적으로, 더욱이, 활성화/비활성화 툴의 표시의 시그널링은 상기 하위 항목에서 언급된 예측 유형의 표시에 의존할 수 있다. d. Alternatively, furthermore, the signaling of the indication of the activation/deactivation tool may depend on the indication of the prediction type mentioned in the sub-item above.

i. 대안적으로, 또한, 활성화/비활성화 툴의 표시는 상기 하위 항목에서 언급된 예측 유형의 표시에 따라 유도될 수 있다. i. Alternatively, also the indication of the activation/deactivation tool may be derived according to the indication of the prediction type mentioned in the sub-item above.

35. 본 명세서(항목 1 내지 항목 29)에서 "적합성 윈도우(conformance window)"이라는 용어는 "스케일링 윈도우(scaling window)"와 같이 다른 용어로 대체될 수 있다. 스케일링 윈도우는 적합성 윈도우와 상이하게 시그널링될 수 있고, 스케일링 비율 및/또는 RPR에 대한 레퍼런스 샘플 위치를 유도하는 데 사용되는 왼쪽 상단 오프셋을 유도하는 데 사용된다.35. In this specification (items 1 to 29), the term “conformance window” may be replaced with another term such as “scaling window”. The scaling window may be signaled differently than the conformance window, and is used to derive the scaling factor and/or the upper left offset used to derive the reference sample position relative to the RPR.

a. 하나의 예에서, 스케일링 윈도우는 적합성 윈도우에 의해 제약될 수 있다. 예를 들어, 적합성 비트스트림에서, 스케일링 윈도우는 적합성 윈도우에 포함되어야 한다. a. In one example, the scaling window may be constrained by a conformance window. For example, in a conformance bitstream, a scaling window should be included in the conformance window.

36. 트랜스폼 스킵 코딩된 블록에 대해 허용된 최대 블록 크기를 시그널링할지 여부 및/또는 방법은 트랜스폼 코딩된 블록에 대한 최대 블록 크기에 따라 달라질 수 있다. 36. Whether and/or how to signal the maximum block size allowed for the transform skip coded block may depend on the maximum block size for the transform coded block.

a. 대안적으로, 트랜스폼 스킵 코딩된 블록에 대한 최대 블록 크기는 적합성 비트스트림에서 트랜스폼 코딩된 블록에 대한 최대 블록 크기보다 클 수 없다. a. Alternatively, the maximum block size for a transform skip coded block cannot be greater than the maximum block size for a transform coded block in the conformance bitstream.

37. 공동 Cb-Cr 잔차(Joint Cb-Cr Residue)(JCCR) 코딩(예를 들어, sps_joint_cbcr_enabled_flag)을 활성화하는 표시를 활성화할지 여부와 시그널링 하는 방법은 컬러 포맷(예를 들어, 4:0:0, 4:2:0 등)에 따라 달라질 수 있다.37. Whether to enable an indication to enable Joint Cb-Cr Residue (JCCR) coding (eg sps_joint_cbcr_enabled_flag) and how to signal the color format (eg, 4:0:0, 4 :2:0, etc.)

a. 예를 들어, 공동 Cb-Cr 잔차(JCCR) 활성화 표시는 컬러 포맷이 4:0:0인 경우 시그널링되지 않을 수 있다. 예시적인 신택스 설계는 다음과 같다: a. For example, the joint Cb-Cr residual (JCCR) activation indication may not be signaled when the color format is 4:0:0. An example syntax design is as follows:

Figure pct00044
Figure pct00044

TPM/GEO에서 크로마 블렌딩 마스크 생성을 위한 다운샘플링 필터 유형Downsampling Filter Types for Creating Chroma Blending Masks in TPM/GEO

38. 크로마 샘플에 대한 블렌딩 가중치 유도(blending weights derivation)에 사용되는 다운샘플링 필터의 유형은 비디오 유닛 레벨(예를 들어, SPS/VPS/PPS/Picture header/Subpicture/Slice/Slice 헤더/Tile/Brick/CTU/VPDU 레벨)에서 시그널링될 수 있다.38. The type of downsampling filter used for blending weights derivation for chroma samples is at the video unit level (eg, SPS/VPS/PPS/Picture header/Subpicture/Slice/Slice header/Tile/Brick/CTU). /VPDU level).

a. 하나의 예에서, 상이한 크로마 포맷 유형들의 콘텐츠 사이를 전환하기 위해 하이 레벨 플래그(high level flag)가 시그널링될 수 있다. a. In one example, a high level flag may be signaled to switch between different chroma format types of content.

i. 하나의 예에서, 크로마 포맷 유형 0과 크로마 포맷 유형 2 사이를 전환하기 위해 하이 레벨 플래그가 시그널링될 수 있다. i. In one example, a high level flag may be signaled to switch between chroma format type 0 and chroma format type 2.

ii. 하나의 예에서, TPM/GEO 예측 모드에서 왼쪽 상단 다운샘플링된 루마 가중치가 왼쪽 상단 루마 가중치와 함께 배치되는지 여부(즉, 크로마 샘플 위치 유형 0)를 지정하기 위한 플래그가 시그널링될 수 있다. ii. In one example, a flag for specifying whether the upper-left downsampled luma weight is collocated with the upper-left luma weight in the TPM/GEO prediction mode (ie, chroma sample location type 0) may be signaled.

iii. 하나의 예에서, TPM/GEO 예측 모드에서 왼쪽 상단 다운샘플링된 루마 샘플이 왼쪽 상단 루마 샘플과 수평으로 공존하지만 왼쪽 상단 루마 샘플에 대해 0.5 유닛의 루마 샘플(즉, 크로마 샘플 위치 유형 2)만큼 수직으로 시프트 되는지 여부를 지정하기 위해 플래그가 시그널링될 수 있다. iii. In one example, in the TPM/GEO prediction mode, the top left downsampled luma sample coexists horizontally with the top left luma sample, but vertically by 0.5 units of luma samples to the top left luma sample (i.e., chroma sample position type 2). A flag may be signaled to specify whether to shift to .

b. 하나의 예에서, 다운샘플링 필터의 유형은 4:2:0 크로마 포맷 및/또는 4:2:2 크로마 포맷에 대해 시그널링될 수 있다. b. In one example, the type of downsampling filter may be signaled for a 4:2:0 chroma format and/or a 4:2:2 chroma format.

c. 하나의 예에서, 플래그는 TPM/GEO 예측에 사용되는 크로마 다운샘플링 필터의 유형을 지정하기 위해 시그널링될 수 있다. c. In one example, the flag may be signaled to specify the type of chroma downsampling filter used for TPM/GEO prediction.

i. 하나의 예에서, 플래그는 TPM/GEO 예측 모드에서 크로마 가중치 유도을 위해 다운샘플링 필터 A 또는 다운샘플링 필터 B를 사용할지 여부에 대해 시그널링될 수 있다. i. In one example, a flag may be signaled as to whether to use downsampling filter A or downsampling filter B for chroma weight derivation in TPM/GEO prediction mode.

39. 크로마 샘플에 대한 블렌딩 가중치 유도에 사용되는 다운샘플링 필터의 유형은 비디오 유닛 레벨(예를 들어, SPS/VPS/PPS/픽처 헤더/서브픽처/슬라이스/슬라이스 헤더/타일/브릭/CTU/VPDU 레벨)에서 유도될 수 있다.39. The type of downsampling filter used to derive the blending weight for chroma samples is at the video unit level (eg, SPS/VPS/PPS/picture header/subpicture/slice/slice header/tile/brick/CTU/VPDU level) can be derived from

a. 하나의 예에서, 크로마 서브샘플링 필터 유형과 컨텐츠의 크로마 포맷 유형 사이의 대응 관계를 지정하기 위해 룩업 테이블이 정의될 수 있다. a. In one example, a lookup table may be defined to specify a correspondence between a chroma subsampling filter type and a chroma format type of content.

40. 크로마 샘플 위치 유형이 다른 경우 지정된 다운샘플링 필터가 TPM/GEO 예측 모드에 사용될 수 있다.40. When the chroma sample position type is different, a designated downsampling filter may be used for the TPM/GEO prediction mode.

a. 하나의 예에서, TPM/GEO의 크로마 가중치는 특정 크로마 샘플 위치 유형(예를 들어, 크로마 샘플 위치 유형 0)의 경우 배치된 왼쪽 상단 루마 가중치로부터 서브샘플링될 수 있다. a. In one example, the chroma weights of the TPM/GEO may be subsampled from the upper left luma weights placed for a particular chroma sample location type (eg, chroma sample location type 0).

b. 하나의 예에서, 특정 크로마 샘플 위치 유형(예를 들어, 크로마 샘플 위치 유형 0 또는 2)의 경우, 지정된 X-탭 필터(X는 X = 6 또는 5와 같은 상수)가 TPM/GEO 예측 모드에서 크로마 가중치 서브샘플링에 사용될 수 있다. b. In one example, for a particular chroma sample location type (eg, chroma sample location type 0 or 2), the specified X-tap filter (where X is a constant equal to X = 6 or 5) is used in the TPM/GEO prediction mode. Can be used for chroma weight subsampling.

41. 비디오 유닛(예를 들어, SPS, PPS, 픽처 헤더, 슬라이스 헤더 등)에서, 제1 신텍스 요소(플래그와 같은)는 모든 블록(슬라이스/픽처)에 대해 다중 트랜스폼 선택(MTS)이 비활성화되는지 여부를 나타내기 위해 시그널링될 수 있다. 41. In a video unit (eg SPS, PPS, picture header, slice header, etc.), the first syntax element (such as a flag) determines whether multiple transform selection (MTS) is disabled for all blocks (slice/picture) may be signaled to indicate

a. 인트라 코딩 블록(슬라이스/픽처)에 MTS(예를 들어, MTS 활성화/비활성화 MTS/암시적 MTS/명시적 MTS)를 적용하는 방법을 나타내는 제2 신택스 요소는제1 신택스 요소에 대해 조건부로 시그널링된다. 예를 들어, 제2 신택스 요소는제1 신택스 요소가 모든 블록(슬라이스/픽처)에 대해 MTS가 비활성화되지 않음을 나타낼 때만 시그널링된다. a. A second syntax element indicating how to apply an MTS (eg, MTS activation/deactivation MTS/implicit MTS/explicit MTS) to an intra coding block (slice/picture) is conditionally signaled with respect to the first syntax element . For example, the second syntax element is signaled only when the first syntax element indicates that MTS is not disabled for all blocks (slice/picture).

b. 인터 코딩 블록(슬라이스/픽처)에 MTS(예를 들어, MTS 활성화/비활성화 MTS/암시적 MTS/명시적 MTS)를 적용하는 방법을 나타내는 제3 신택스 요소는제1 신택스 요소에 대해 조건부로 시그널링된다. 예를 들어, 제3 신택스 요소는제1 신택스 요소가 모든 블록(슬라이스/픽처)에 대해 MTS가 비활성화되지 않음을 나타낼 때만 시그널링된다. b. A third syntax element indicating how to apply an MTS (eg, MTS activation/deactivation MTS/implicit MTS/explicit MTS) to an inter-coding block (slice/picture) is conditionally signaled with respect to the first syntax element . For example, the third syntax element is signaled only when the first syntax element indicates that MTS is not disabled for all blocks (slice/picture).

c. 예시적인 신택스 설계는 다음과 같다. c. An exemplary syntax design is as follows.

Figure pct00045
Figure pct00045

d. 제3 신택스 요소는 서브블록 트랜스폼(Sub-Block Transform)(SBT) 적용 여부에 따라 조건부로 시그널링될 수 있다. 예시적인 신택스 설계는 다음과 같다. d. The third syntax element may be conditionally signaled according to whether sub-block transform (SBT) is applied. An exemplary syntax design is as follows.

Figure pct00046
Figure pct00046

e. 예시적인 신택스 설계는 다음과 같다. e. An exemplary syntax design is as follows.

Figure pct00047
Figure pct00047

코딩 툴 X 사용 결정Deciding to use Coding Tool X

42. 코딩 툴 X를 활성화할지 여부 및/또는 활성화하는 방법의 결정은 하나 또는 다중 레퍼런스 픽처 및/또는 현재 픽처의 고려 픽처의 폭 및/높이에 의존할 수 있다. 42. The decision of whether to activate the coding tool X and/or how to activate it may depend on the width and/or height of one or multiple reference pictures and/or pictures of consideration of the current picture.

a. 하나 또는 다중 레퍼런스 픽처 및/또는 현재 픽처의 고려하는 픽처의 폭 및/높이는 결정을 내리기 위해 수정될 수 있다. a. The width and/or height of one or multiple reference pictures and/or pictures of the current picture may be modified to make a decision.

b. 고려하는 픽처는 적합성 윈도우 또는 스케일링 윈도우에 의해 정의될 수 있다. b. A picture to be considered may be defined by a conformance window or a scaling window.

i. 고려하는 픽처는 전체 픽처일 수 있다. i. A picture under consideration may be an entire picture.

c. 하나의 예에서, 코딩 툴 X를 활성화하는지 여부 및/또는 방법은 픽처의 너비에서 수평으로 하나 또는 다중 오프셋을 뺀 값 및/또는 픽처의 높이에서 수직 방향으로 오프셋을 뺀 값에 따라 달라질 수 있다. c. In one example, whether and/or how to activate the coding tool X may depend on the width of the picture minus one or multiple offsets horizontally and/or the height of the picture minus the offset in the vertical direction.

i. 하나의 예에서, 수평 오프셋은 scaling_win_left_offset으로 정의될 수 있다. i. In one example, the horizontal offset may be defined as scaling_win_left_offset.

ii. 하나의 예에서, 수직 오프셋은 scaling_win_top_offset으로 정의될 수 있다. ii. In one example, the vertical offset may be defined as scaling_win_top_offset.

iii. 하나의 예에서, 수평 오프셋은 ( scaling_win_right_offset + scaling_win_left_offset)로 정의될 수 있다. iii. In one example, the horizontal offset may be defined as (scaling_win_right_offset + scaling_win_left_offset).

iv. 하나의 예에서, 수직 오프셋은 ( scaling_win_bottom_offset + scaling_win_top_offset)로 정의될 수 있다. iv. In one example, the vertical offset may be defined as (scaling_win_bottom_offset + scaling_win_top_offset).

v. 하나의 예에서, 수평 오프셋은 SubWidthC * ( scaling_win_right_offset + scaling_win_left_offset )로 정의될 수 있다. v. In one example, the horizontal offset may be defined as SubWidthC * ( scaling_win_right_offset + scaling_win_left_offset ).

vi. 하나의 예에서, 수직 오프셋은 SubHeightC * ( scaling_win_bottom_offset + scaling_win_top_offset )로 정의될 수 있다. vi. In one example, the vertical offset may be defined as SubHeightC * ( scaling_win_bottom_offset + scaling_win_top_offset ).

d. 하나의 예에서, 레퍼런스 픽처를 고려하는 두 개 중 적어도 하나가 현재 픽처와 다른 해상도(폭 또는 높이)를 갖는 경우, 코딩 툴 X는 비활성화된다. d. In one example, if at least one of the two considering the reference picture has a different resolution (width or height) than the current picture, the coding tool X is deactivated.

i. 대안적으로, 두 개의 출력 레퍼런스 픽처 중 적어도 하나가 현재 픽처보다 큰 차원(폭 또는 높이)을 갖는 경우, 코딩 툴 X는 비활성화된다. i. Alternatively, if at least one of the two output reference pictures has a larger dimension (width or height) than the current picture, the coding tool X is deactivated.

e. 하나의 예에서, 레퍼런스 픽처 목록 L에 대한 레퍼런스 픽처를 고려하는 사람이 현재 픽처와 다른 해상도를 갖는 경우, 코딩 툴 X는 레퍼런스 픽처 목록 L에 대해 비활성화된다. e. In one example, if the person considering the reference picture for the reference picture list L has a different resolution than the current picture, the coding tool X is deactivated for the reference picture list L.

i. 대안적으로, 레퍼런스 픽처 목록 L에 대한 레퍼런스 픽처를 고려하는 것이 현재 픽처보다 큰 차원(폭 또는 높이)을 갖는 경우, 코딩 툴 X는 레퍼런스 픽처 목록 L에 대해 비활성화된다. i. Alternatively, if considering the reference picture for the reference picture list L has a larger dimension (width or height) than the current picture, the coding tool X is deactivated for the reference picture list L.

f. 하나의 예에서, 두 개의 레퍼런스 픽처 목록의 두 개의 고려하는 레퍼런스 픽처가 다른 해상도를 갖는 경우, 코딩 툴은 비활성화될 수 있다. f. In one example, if two considered reference pictures of two reference picture lists have different resolutions, the coding tool may be deactivated.

i. 대안적으로, 코딩 툴의 지시는 해상도에 따라 조건부로 시그널링될 수 있다. i. Alternatively, the indication of the coding tool may be signaled conditionally according to the resolution.

ii. 대안적으로, 코딩 툴의 표시의 시그널링은 스킵될 수 있다. ii. Alternatively, the signaling of the indication of the coding tool may be skipped.

g. 하나의 예에서, 적어도 하나의 레퍼런스 픽처 목록에 대한 제 1 쌍별 병합 후보를 유도하기 위해 이용되는 두 개의 병합 후보의 레퍼런스 픽처를 고려하는 두 개의 경우, 코딩 툴은 비활성화될 수 있으며, 예를 들어, 제1 쌍별 병합 후보는 이용 불가능한 것으로 표시된다. g. In one example, in two cases to consider the reference pictures of two merging candidates used to derive the first pairwise merging candidate for at least one reference picture list, the coding tool may be deactivated, for example, The first pairwise merge candidate is marked as unavailable.

i. 대안적으로, 두 개의 레퍼런스 픽처 목록 모두에 대한 제1 쌍별 병합 후보를 유도하기 위해 활용되는 두 개의 병합 후보의 레퍼런스 픽처를 고려하는 경우, 코딩 툴은 비활성화될 수 있으며, 예를 들어, 제1 쌍별 병합 후보는 이용 불가능한 것으로 표시된다. i. Alternatively, when considering the reference pictures of two merging candidates utilized to derive the first pairwise merging candidates for both reference picture lists, the coding tool may be deactivated, for example, by the first pairwise Merge candidates are marked as unavailable.

h. 하나의 예에서, 코딩 툴의 디코딩 프로세스는 픽처 차원을 고려하여 수정될 수 있다. h. In one example, the decoding process of the coding tool may be modified to account for picture dimensions.

i. 하나의 예에서, SMVD의 다른 레퍼런스 픽처 목록(예를 들어, 목록 1)에 대한 MVD의 유도는 두 개의 타겟 SMVD 레퍼런스 픽처 중 적어도 하나의 해상도 차이(예를 들어, 스케일링 인자)에 기초할 수 있다. i. In one example, the derivation of the MVD relative to another reference picture list (eg, List 1) of the SMVD may be based on a resolution difference (eg, a scaling factor) of at least one of two target SMVD reference pictures. .

ii. 하나의 예에서, 쌍별 병합 후보의 유도는 두 개의 레퍼런스 픽처와 연관된 두 개의 레퍼런스 픽처 중 적어도 하나의 해상도 차이(예를 들어, 스케일링 인자)에 기초할 수 있으며, 예를 들어, 동일한 가중치 대신 선형 가중 평균이 적용될 수 있다. ii. In one example, the derivation of the pairwise merging candidate may be based on a resolution difference (eg, a scaling factor) of at least one of the two reference pictures associated with the two reference pictures, eg, a linear weighting instead of the same weight. An average may be applied.

i. 하나의 예에서, X는 다음과 같을 수 있다. i. In one example, X may be

i. 디코더 측에서 모션/예측을 정제rotj하는 DMVR/BDOF/PROF/SMVD/MMVD/기타 코딩 툴 i. DMVR/BDOF/PROF/SMVD/MMVD/other coding tools to refine motion/prediction on decoder side

ii. TMVP/기타 코딩 툴은 시간적 모션 정보에 의존 ii. TMVP/other coding tools rely on temporal motion information

iii. MTS 또는 기타 트랜스폼 코딩 툴 iii. MTS or other transform coding tool

iv. CC-ALF iv. CC-ALF

v. TPM v. TPM

vi. GEO vi. GEO

vii. 전환 가능한 보간 필터(예를 들어, 반화소 모션 보상을 위한 대체 보간 필터) vii. Switchable interpolation filters (e.g. alternative interpolation filters for half-pixel motion compensation)

viii. 하나의 블록을 여러 파티션으로 분할하는 TPM/GEO/기타 코딩 툴의 혼합 프로세스. viii. A mixed process of TPM/GEO/other coding tools that splits one block into multiple partitions.

ix. 현재 픽처와 다른 픽처에 저장된 정보에 응답하는 코딩 툴 ix. Coding tool that responds to information stored in a picture different from the current picture

x. Pairwise merge 후보 (해상도와 관련된 특정 조건이 충족되지 않으면 pairwise merge 후보가 생성되지 않음) x. Pairwise merge candidates (pairwise merge candidates are not created unless certain conditions related to resolution are met)

xi. CU 레벨 가중치(BCW)를 사용한 이중 예측. xi. Double prediction using CU level weighting (BCW).

xii. 가중 예측. xii. weighted prediction.

xiii. 아핀 예측 xiii. affine prediction

xiv. 적응형 모션 벡터 해상도(AMVR) xiv. Adaptive Motion Vector Resolution (AMVR)

43. 코딩 툴의 사용을 시그널링할지 여부 및/또는 시그널링하는 방법은 하나 또는 다중 레퍼런스 픽처 및/또는 현재 픽처의 고려하는 픽처의 폭 및/또는 높이에 따라 달라질 수 있다.43. Whether to signal and/or how to signal the use of a coding tool may vary depending on the width and/or height of one or multiple reference pictures and/or pictures under consideration of the current picture.

a. 하나 또는 다중 레퍼런스 픽처 및/또는 현재 픽처의 고려하는 픽처의 폭 및/높이는 결정을 내리기 위해 수정될 수 있다. a. The width and/or height of one or multiple reference pictures and/or pictures of the current picture may be modified to make a decision.

b. 고려 픽처는 JVET-P0590에 정의된 것과 같이 적합성 윈도우 또는 스케일링 윈도우에 의해 정의될 수 있다. b. A picture to be considered may be defined by a conformance window or a scaling window as defined in JVET-P0590.

xv. 고려하는 픽처는 전체 픽처일 수 있다. xv. A picture under consideration may be an entire picture.

c. 하나의 예에서, X는 적응형 모션 벡터 해상도(AMVR)일 수 있다. c. In one example, X may be adaptive motion vector resolution (AMVR).

d. 하나의 예에서, X는 MMVD(merge with MV difference) 방법일 수 있다. d. In one example, X may be a merge with MV difference (MMVD) method.

xvi. 하나의 예에서, 대칭 모션 벡터 차이 레퍼런스 인덱스의 구성은 상이한 레퍼런스 픽처에 대한 RPR 경우의 픽처 해상도/표시에 의존할 수 있다. xvi. In one example, the configuration of the symmetric motion vector difference reference index may depend on the picture resolution/indication of RPR cases for different reference pictures.

e. 하나의 예에서, X는 SMVD(Symmetric MVD) 방법일 수 있다. e. In one example, X may be a Symmetric MVD (SMVD) method.

f. 하나의 예에서, X는 QT/BT/TT 또는 다른 파티션 유형일 수 있다. f. In one example, X may be a QT/BT/TT or other partition type.

g. 하나의 예에서, X는 CU-레벨 가중치(BCW)를 사용한 양방향 예측일 수 있다. g. In one example, X may be bi-directional prediction using CU-level weighting (BCW).

h. 하나의 예에서, X는 가중 예측일 수 있다. h. In one example, X may be a weighted prediction.

i. 하나의 예에서, X는 아핀 예측일 수 있다. i. In one example, X may be an affine prediction.

j. 하나의 예에서, 반화소 모션 벡터 정밀도/전환 가능한 보간 필터의 사용 표시를 시그널링할지 여부는 해상도 정보/RPR이 현재 블록에 대해 활성화되는지 여부에 따라 달라질 수 있다. j. In one example, whether to signal the indication of use of half-pixel motion vector precision/switchable interpolation filter may depend on whether resolution information/RPR is activated for the current block.

k. 하나의 예에서, amvr_precision_idx의 시그널링은 해상도 정보/RPR이 현재 블록에 대해 활성화되었는지 여부에 따라 달라질 수 있다. k. In one example, signaling of amvr_precision_idx may vary depending on whether resolution information/RPR is activated for the current block.

l. 하나의 예에서, sym_mvd_flag/mmvd_merge_flag의 시그널링은 해상도 정보/RPR이 현재 블록에 대해 활성화되는지 여부에 따라 달라질 수 있다. l. In one example, signaling of sym_mvd_flag/mmvd_merge_flag may vary depending on whether resolution information/RPR is activated for the current block.

m. 적합성 비트스트림은 하나 또는 여러 레퍼런스 픽처의 고려 픽처의 너비 및/높이가 현재 출력 픽처의 너비 및/높이가 다를 때 1/2 픽셀 MV 및/또는 MVD 정밀도(예를 들어, 대체 보간 필터/전환 가능한 보간 필터)가 허용되지 않음을 충족해야 한다. m. A conformance bitstream is a 1/2-pixel MV and/or MVD precision (e.g. alternative interpolation filter/switchable interpolation filter) not allowed.

44. 1/2 픽셀 MV 및/또는 MVD 정밀도(또는 대체 보간 필터/전환 가능한 보간 필터)를 갖는 AMVR이 RPR의 블록에 대해 여전히 활성화될 수 있다고 제안된다.44. It is proposed that AMVR with 1/2 pixel MV and/or MVD precision (or alternative interpolation filter/switchable interpolation filter) can still be activated for a block of RPR.

a. 대안적으로, 또한, 1/2-펠 또는 다른 정밀도를 갖는 블록에 대해 다른 보간 필터가 적용될 수 있다. a. Alternatively, other interpolation filters may also be applied for blocks with 1/2-pels or other precision.

45. 위의 항목에서 동일/다른 해상도의 조건 확인은 레퍼런스 픽처에 대한 플래그를 추가하고 레퍼런스 픽처와 관련된 플래그를 확인하여 대체될 수 있다.45. In the above item, checking the condition of the same/different resolution can be replaced by adding a flag for the reference picture and checking the flag related to the reference picture.

a. 하나의 예에서, (예를 들어, 레퍼런스 픽처가 RPR 케이스인지 비-RPR 케이스인지를 나타내기 위해) 플래그를 참 또는 거짓으로 설정하는 프로세스가 레퍼런스 픽처 목록 구성 프로세스 동안 호출될 수 있다. a. In one example, a process of setting a flag to true or false (eg, to indicate whether a reference picture is an RPR case or a non-RPR case) may be called during the reference picture list construction process.

xvii. 예를 들어 다음이 적용될 수 있다. xvii. For example, the following may apply:

fRefWidth는 루마 샘플에서 레퍼런스 픽처 RefPicList[ i ][ j ]의 PicOutputWidthL과 동일하게 설정되며, 여기서 PicOutputWidthL은 레퍼런스 픽처의 고려 픽처의 너비를 나타낸다. fRefWidth is the value of the reference picture RefPicList[i][j] in luma samples. It is set equal to PicOutputWidthL, where PicOutputWidthL indicates the width of a picture to be considered of a reference picture.

fRefWidth는 루마 샘플에서 레퍼런스 픽처 RefPicList[ i ][ j ]의 PicOutputHeightL과 동일하게 설정되며, 여기서 PicOutputHeightL은 레퍼런스 픽처의 고려 픽처의 높이를 나타낸다. fRefWidth is the value of the reference picture RefPicList[i][j] in luma samples. It is set equal to PicOutputHeightL, where PicOutputHeightL indicates the height of the picture to be considered of the reference picture.

RefPicScale[ i ][ j ][ 0 ] = ( ( fRefWidth << 14 ) + ( PicOutputWidthL >> 1 ) ) / PicOutputWidthL, 여기서 PicOutputWidthL은 현재 픽처의 고려 픽처의 너비를 나타낸다. RefPicScale[ i ][ j ][ 0 ] = ( ( fRefWidth << 14 ) + ( PicOutputWidthL >> 1 ) ) / PicOutputWidthL, where PicOutputWidthL represents the width of the picture to be considered of the current picture.

RefPicScale[ i ][ j ][ 1 ] = ( ( fRefHeight << 14 ) + ( PicOutputHeightL >> 1 ) ) / PicOutputHeightL, 여기서 PicOutputWidthL은 현재 픽처의 고려 중인 픽처의 높이를 나타낸다. RefPicScale[ i ][ j ][ 1 ] = ( ( fRefHeight << 14 ) + ( PicOutputHeightL >> 1 ) ) / PicOutputHeightL, where PicOutputWidthL indicates the height of the picture under consideration of the current picture.

RefPicIsScaled[ i ][ j ] = ( RefPicScale[ i ][ j ][ 0 ] != ( 1 << 14 ) ) | | RefPicIsScaled[ i ][ j ] = ( RefPicScale[ i ][ j ][ 0 ] != ( 1 << 14 ) ) | |

( RefPicScale[ i ][ j ][ 1 ] != ( 1 << 14 ) ) ( RefPicScale[ i ][ j ][ 1 ] != ( 1 << 14 ) )

여기서 RefPicList[ i ][ j ]는 레퍼런스 픽처 목록 i에서 j번째 레퍼런스 픽처를 나타낸다.Here, RefPicList[ i ][ j ] indicates the j-th reference picture in the reference picture list i.

b. 하나의 예에서, RefPicIsScaled[ 0 ][ refIdxL0 ]이 0과 같지 않거나 RefPicIsScaled[ 1 ][ refIdxL1 ]이 0과 같지 않을 때, 코딩 툴 X(예를 들어, DMVR/BDOF/SMVD/MMVD/thoseD/PROF 위의 항목에서 언급됨)이 비활성화될 수 있다. b. In one example, when RefPicIsScaled[ 0 ][ refIdxL0 ] is not equal to zero or RefPicIsScaled[ 1 ][ refIdxL1 ] is not equal to zero, coding tool X (eg, DMVR/BDOF/SMVD/MMVD/thoseD/PROF mentioned above) may be disabled.

c. 하나의 예에서, RefPicIsScaled[ 0 ][ refIdxL0 ] 및 RefPicIsScaled[ 1 ][ refIdxL1 ]이 모두 0과 같지 않은 경우, 코딩 툴 X(예를 들어, DMVR/BDOF/SMVD/MMVD/SMVD/PROF/위의 항목에서 언급된 항목) ) 비활성화될 수 있다. c. In one example, if both RefPicIsScaled[ 0 ][ refIdxL0 ] and RefPicIsScaled[ 1 ][ refIdxL1 ] are not equal to 0, then coding tool X (eg, DMVR/BDOF/SMVD/MMVD/SMVD/PROF/above items mentioned in the item) ) can be deactivated.

d. 하나의 예에서, RefPicIsScaled[ 0 ][ refIdxL0 ]이 0과 같지 않을 때, 코딩 툴 X(예를 들어, PROF 또는 위의 항목에서 언급된 것들)는 레퍼런스 픽처 목록 0에 대해 비활성화될 수 있다. d. In one example, when RefPicIsScaled[ 0 ][ refIdxL0 ] is not equal to 0, coding tool X (eg, PROF or those mentioned in the item above) may be deactivated for reference picture list 0.

e. 하나의 예에서, RefPicIsScaled[ 1 ][ refIdxL1 ]이 0과 같지 않을 때, 코딩 툴 X(예를 들어, PROF 또는 위의 글머리 기호에서 언급된 것들)는 레퍼런스 픽처 목록 1에 대해 비활성화될 수 있다. e. In one example, when RefPicIsScaled[ 1 ][ refIdxL1 ] is not equal to 0, coding tool X (eg, PROF or those mentioned in the bullet above) may be disabled for reference picture list 1 .

46. BDOF/DMVR에 의해 사용되는 SAD 및/또는 임계값은 비트 깊이에 따라 달라질 수 있다.46. The SAD and/or threshold used by the BDOF/DMVR may vary depending on the bit depth.

f. 하나의 예에서, 계산된 SAD 값은 임계값과 비교되는 데 활용되기 전에 먼저 비트 깊이의 함수에 의해 시프트될 수 있다. f. In one example, the calculated SAD value may first be shifted by a function of bit depth before being utilized to be compared to a threshold.

g. 하나의 예에서, 계산된 SAD 값은 비트 깊이의 함수에 의존할 수 있는 수정된 임계값과 직접 비교될 수 있다. g. In one example, the calculated SAD value may be directly compared to a modified threshold, which may depend on a function of bit depth.

5.5. 추가 실시예Additional Examples

다음에서 텍스트 변경 사항은 밑줄이 그어진 굵은 이탤릭체로 표시된다. In the following text changes are indicated in bold, underlined italics.

5.1. 적합성 윈도우에 대한 제약의 구현5.1. Implementation of constraints on the conformance window

conf_win_left_offset, conf_win_right_offset, conf_win_top_offset 및 conf_win_bottom_offset은 출력을 위한 픽처 좌표에 지정된 직사각형 영역의 관점에서 디코딩 프로세스에서 출력되는 CVS의 픽처 샘플을 지정한다. conformance_window_flag가 0과 같을 때 conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, conf_win_bottom_offset의 값은 0과 같은 것으로 유추된다.conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offset specify picture samples of CVS output in the decoding process in terms of the rectangular area specified in picture coordinates for output. When conformance_window_flag is equal to 0, the values of conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset are inferred to be equal to 0.

적합성 크로핑 윈도우는 SubWidthC * conf_win_left_offset to pic_width_in_luma_samples - ( SubWidthC * conf_win_right_offset + 1 의 수평 픽처 좌표 및 SubHeightC * conf_win_top_offset to pic_height_in_luma_samples - ( SubHeightC * conf_win_bottom_offset + 1 )의 수직 픽처 좌표가 포함되는 좌표를 갖는 루마 샘플을 포함한다.적합성 크로핑 윈도우는 SubWidthC * conf_win_left_offset to pic_width_in_luma_samples - ( SubWidthC * conf_win_right_offset + 1 의 수평 픽처 좌표 및 SubHeightC * conf_win_top_offset to pic_height_in_luma_samples - ( SubHeightC * conf_win_bottom_offset + 1 )의 수직 픽처 좌표가 포함되는 좌표를 갖는 루마 샘플을 포함한다 .

SubWidthC * ( conf_win_left_offset + conf_win_right_offset ) 의 값은 pic_width_in_luma_samples 보다 작아야 하고, SubHeightC * ( conf_win_top_offset + conf_win_bottom_offset ) 의 값은 pic_height_in_luma_samples 보다 작아야 한다.The value of SubWidthC * ( conf_win_left_offset + conf_win_right_offset ) must be less than pic_width_in_luma_samples, and the value of SubHeightC * ( conf_win_top_offset + conf_win_bottom_offset ) must be less than pic_height_in_luma_samples.

PicOutputWidthL 및 PicOutputHeightL 변수는 다음과 같이 유도된다:The PicOutputWidthL and PicOutputHeightL variables are derived as follows:

PicOutputWidthL = pic_width_in_luma_samples - (7-43)PicOutputWidthL = pic_width_in_luma_samples - (7-43)

SubWidthC * ( conf_win_right_offset + conf_win_left_offset ) SubWidthC * ( conf_win_right_offset + conf_win_left_offset )

PicOutputHeightL = pic_height_in_pic_size_units - (7-44) SubHeightC * ( conf_win_bottom_offset + conf_win_top_offset )PicOutputHeightL = pic_height_in_pic_size_units - (7-44) SubHeightC * ( conf_win_bottom_offset + conf_win_top_offset )

ChromaArrayType이 0이 아닐 때, 두 크로마 어레이의 해당하는 지정된 샘플은 픽처 좌표( x / SubWidthC, y / SubHeightC )를 갖는 샘플이고, 여기서 ( x, y )는 지정된 루마 샘플의 픽처 좌표이다.When ChromaArrayType is non-zero, the corresponding specified samples of both chroma arrays are samples with picture coordinates ( x / SubWidthC, y / SubHeightC ), where ( x, y ) is the picture coordinate of the specified luma sample.

refPicOutputWidthL 및 refPicOutputHeightL을 각각 이 PPS를 참조하는 현재 화면의 레퍼런스 픽처의 PicOutputWidthL 및 PicOutputHeightL이라고 하자. 다음 조건이 모두 충족되는 비트스트림 적합성의 요구 사항이다: Let refPicOutputWidthL and refPicOutputHeightL be PicOutputWidthL and PicOutputHeightL of the reference picture of the current picture referring to this PPS, respectively. A bitstream conformance requirement where all of the following conditions are met:

-- PicOutputWidthL * 2는 refPicOutputWidthL보다 크거나 동일해야 한다.PicOutputWidthL * 2 must be greater than or equal to refPicOutputWidthL.

-- PicOutputHeightL * 2는 refPicOutputHeightL보다 크거나 동일해야 한다.PicOutputHeightL * 2 must be greater than or equal to refPicOutputHeightL.

-- PicOutputWidthL은 refPicOutputWidthL * 8보다 작거나 동일해야 한다.PicOutputWidthL must be less than or equal to refPicOutputWidthL * 8.

-- PicOutputHeightL은 refPicOutputHeightL * 8보다 작거나 동일해야 한다.PicOutputHeightL must be less than or equal to refPicOutputHeightL * 8.

5.2.5.2. 레퍼런스 샘플 위치 유도의 실시예 1Example 1 of Reference Sample Position Derivation

8.5.6.3.1 일반8.5.6.3.1 General

......

변수 fRefWidth는 루마 샘플에서 레퍼런스 픽처의 PicOutputWidthL과 동일하게 설정된다.The variable fRefWidth is set equal to PicOutputWidthL of the reference picture in luma samples.

변수 fRefHeight는 루마 샘플에서 레퍼런스 픽처의 PicOutputHeightL과 동일하게 설정된다.The variable fRefHeight is set equal to PicOutputHeightL of the reference picture in the luma sample.

변수 fRefLeftOff는 루마 샘플에서 레퍼런스 픽처의 conf_win_left_offset과 동일하게 설정된다.The variable fRefLeftOff is set equal to conf_win_left_offset of the reference picture in the luma sample.

변수 fRefTopOff는 루마 샘플에서 레퍼런스 픽처의 conf_win_top_offset과 동일하게 설정된다.The variable fRefTopOff is set equal to conf_win_top_offset of the reference picture in the luma sample.

모션 벡터 mvLX (refMvLX - mvOffset)와 동일하게 설정된다.It is set equal to the motion vector mvLX (refMvLX - mvOffset).

- cIdx가 0이면, 다음이 적용된다.- If cIdx is 0, the following applies.

- 스케일링 인자 및 고정 소수점 표현은 다음과 같이 정의된다. - Scaling factors and fixed-point representations are defined as follows.

hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753) hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753)

vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754) vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754)

- (xIntL, yIntL)은 전체 샘플 유닛으로 주어진 루마 위치로 하고 (xFracL, yFracL)는 1/16 샘플 유닛으로 주어진 오프셋으로 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내부의 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. - (xIntL, yIntL) is the luma position given in whole sample units and (xFracL, yFracL) is the offset given in 1/16 sample units. These variables are used only in this section to specify the fractional sample location inside the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntL, ySbIntL)에 대한 경계 블록의 왼쪽 상단 좌표는 (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4))와 동일하게 설정된다. - The upper left coordinate of the boundary block for reference sample padding (xSbIntL, ySbIntL) is set equal to (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4)).

- 예측 루마 샘플 어레이 predSamplesLX 내의 각 루마 샘플 위치 (xL = 0..sbWidth - 1 + brdExtSize, yL = 0..sbHeight - 1 + brdExtSize)에 대해, 대응하는 예측 루마 샘플 값 predSamplesLX [xL] [yL] 다음과 같이 유도된다:- for each luma sample position (x L = 0..sbWidth - 1 + brdExtSize, y L = 0..sbHeight - 1 + brdExtSize) in the predicted luma sample array predSamplesLX, the corresponding predicted luma sample value predSamplesLX [x L ] [y L ] is derived as:

- (refxSbL, refySbL) 및 (refxL, refyL)은 1/16- 샘플 유닛으로 지정된 모션 벡터(refMvLX [0], refMvLX [1])가 가리키는 루마 위치라 한다. 변수 refxSbL, refxL, refySbL 및 refyL은 다음과 같이 유도된다:- (refxSb L , refySb L ) and (refx L , refy L ) are the luma positions pointed to by motion vectors (refMvLX [0], refMvLX [1]) specified in 1/16-sample units. The variables refxSb L , refx L , refySb L and refy L are derived as follows:

refxSbL = ((  ( xSb - conf_win_left_offset)  <<  4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)refxSb L = (( ( xSb - conf_win_left_offset) << 4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)

refxL =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)refx L =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)

+ xL *((hori_scale_fp + 8) >> 4)) + 32) >> 6 (8-756)+ x L *((hori_scale_fp + 8) >> 4)) + 32) >> 6 (8-756)

refySbL = ( (  (ySb - conf_win_top_offset) << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)refySb L = ( ( (ySb - conf_win_top_offset) << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)

refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL * refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL *

( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-758) ( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-758)

- refx L = refx L +( fRefLeftOff<<4). - refx L = refx L +( fRefLeftOff<<4).

- refy L = refy L +( fRefTopOff<<4). - refy L = refy L +( fRefTopOff<<4).

- xIntL, yIntL, xFracL 및 yFracL 변수는 다음과 같이 유도된다:- xInt L , yInt L , xFrac L and yFrac L variables are derived as follows:

xIntL = refxL >> 4 (8-759)xInt L = refx L >> 4 (8-759)

yIntL = refyL >> 4 (8-760)yInt L = refy L >> 4 (8-760)

xFracL = refxL & 15 (8-761)xFrac L = refx L & 15 (8-761)

yFracL = refyL & 15 (8-762)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 절에 지정된 루마 정수 샘플 가져오기 프로세스를 호출하여 유도된다. - If bdofFlag is equal to TRUE ( sps_affine_prof_enabled_flag is TRUE and inter_affine_flag[ xSb ][ ySb ] is equal to TRUE, and one or more of the following conditions are true, the predicted luma sample value predSamplesLX[ x L ][ y L ] ( xIntL + ( xFrac L >> 3 ) - 1), yInt L + ( yFrac L >> 3 ) - 1 ) and refPicLX as inputs, the luma integer sample specified in section 8.5.6.3.3 Derived by invoking the import process.

- xL은 0과 동일하다.- x L is equal to zero.

- xL은 sbWidth + 1과 동일하다.- x L is equal to sbWidth + 1.

- yL은 0과 동일하다.- y L is equal to 0.

- yL은 sbHeight + 1과 동일하다.- y L is equal to 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 탭 보간 필터링 프로세스를 호출하여 유도된다.- Otherwise, the predicted luma sample values predSamplesLX[xL][yL] are (xIntL-(brdExtSize > 0? 1: 0), yIntL-(brdExtSize > 0? 1: 0)), (xFracL, yFracL), (xSbIntL, ySbIntL), refPicLX, hpelIfIdx, sbWidth, sbHeight, and (xSb, ySb) are derived by invoking the luma sample 8-tap interpolation filtering process specified in section 8.5.6.3.2 as input.

- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:- Otherwise (cIdx is not 0), the following applies:

- (xIntC, yIntC)는 전체 샘플 유닛으로 주어진 크로마 위치이고(xFracC, yFracC)는 1/32 샘플 유닛으로 주어진 오프셋이라고 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내에서 일반적인 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. Let (xIntC, yIntC) be the chroma position given in whole sample units and (xFracC, yFracC) be the offset given in 1/32 sample units. These variables are used only in this section to specify common fractional sample locations within the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntC, ySbIntC)에 대한 경계 블록의 왼쪽 상단 좌표는 ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5))와 동일하게 설정된다.- The upper-left coordinates of the bounding block for the reference sample padding (xSbIntC, ySbIntC) are ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5)) is set the same as

- 예측 크로마 샘플 어레이 predSamplesLX 내의 각 크로마 샘플 위치 (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1)에 대해, 대응하는 예측 크로마 샘플 값 predSamplesLX [xC] [yC]는 다음과 같이 유도된다:- For each chroma sample position (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1) in the predicted chroma sample array predSamplesLX, the corresponding predicted chroma sample value predSamplesLX [xC] [yC] is derived as do:

- (refxSbC, refySbC) 및 (refxC, refyC)를 1/32 샘플 유닛으로 주어진 모션 벡터(mvLX [0], mvLX [1])가 가리키는 크로마 위치라고 한다. 변수 refxSbC, refySbC, refxC 및 refyC는 다음과 같이 유도된다:- Let (refxSb C , refySb C ) and (refx C , refy C ) be the chroma positions pointed to by the motion vectors (mvLX [0], mvLX [1]) given in 1/32 sample units. The variables refxSb C , refySb C , refx C and refy C are derived as follows:

refxSbC = ((( xSb - conf_win_left_offset) / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763) refxSbC = ((( xSb - conf_win_left_offset) / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)

refxC=((Sign(refxSbC) *((Abs(refxSbC) + 256) >> 9)refx C =((Sign(refxSb C ) *((Abs(refxSb C ) + 256) >> 9)

+ xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764) + xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764)

refySbC = ( ((ySb - conf_win_top_offset) / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765) refySbC = ( ((ySb - conf_win_top_offset) / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765)

refyC =((Sign(refySbC) *((Abs(refySbC) + 256) >> 9)refy C =((Sign(refySb C ) *((Abs(refySb C ) + 256) >> 9)

+ yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766) + yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766)

- refx C = refx C +( fRefLeftOff/ SubWidthC <<5). - refx C = refx C +( fRefLeftOff/ SubWidthC <<5).

- refy C = refy C +( fRefTopOff/ SubHeightC <<5). - refy C = refy C +( fRefTopOff/ SubHeightC <<5).

- xIntC, yIntC, xFracC 및 yFracC 변수는 다음과 같이 유도된다:- xInt C , yInt C , xFrac C and yFrac C variables are derived as follows:

xIntC = refxC >> 5 (8-767)xInt C = refx C >> 5 (8-767)

yIntC = refyC >> 5 (8-768)yInt C = refy C >> 5 (8-768)

xFracC = refyC & 31 (8-769)xFrac C = refy C & 31 (8-769)

yFracC = refyC & 31 (8-770)yFrac C = refy C & 31 (8-770)

5.3.5.3. 레퍼런스 샘플 위치 유도의 실시예 2Example 2 of Reference Sample Position Derivation

8.5.6.3.1 일반8.5.6.3.1 General

......

변수 fRefWidth는 루마 샘플에서 레퍼런스 픽처의 PicOutputWidthL과 동일하게 설정된다.The variable fRefWidth is set equal to PicOutputWidthL of the reference picture in luma samples.

변수 fRefHeight는 루마 샘플에서 레퍼런스 픽처의 PicOutputHeightL과 동일하게 설정된다.The variable fRefHeight is set equal to PicOutputHeightL of the reference picture in the luma sample.

변수 fRefLeftOff는 루마 샘플에서 레퍼런스 픽처의 conf_win_left_offset과 동일하게 설정된다.The variable fRefLeftOff is set equal to conf_win_left_offset of the reference picture in the luma sample.

변수 fRefTopOff는 루마 샘플에서 레퍼런스 픽처의 conf_win_top_offset과 동일하게 설정된다.The variable fRefTopOff is set equal to conf_win_top_offset of the reference picture in the luma sample.

모션 벡터 mvLX (refMvLX - mvOffset)와 동일하게 설정된다.It is set equal to the motion vector mvLX (refMvLX - mvOffset).

- cIdx가 0이면, 다음이 적용된다.- If cIdx is 0, the following applies.

- 스케일링 인자 및 고정 소수점 표현은 다음과 같이 정의된다. - Scaling factors and fixed-point representations are defined as follows.

hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753) hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753)

vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754) vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754)

- (xIntL, yIntL)은 전체 샘플 유닛으로 주어진 루마 위치로 하고 (xFracL, yFracL)는 1/16 샘플 유닛으로 주어진 오프셋으로 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내부의 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. - (xIntL, yIntL) is the luma position given in whole sample units and (xFracL, yFracL) is the offset given in 1/16 sample units. These variables are used only in this section to specify the fractional sample location inside the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntL, ySbIntL)에 대한 경계 블록의 왼쪽 상단 좌표는 (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4))와 동일하게 설정된다. - The upper left coordinate of the boundary block for reference sample padding (xSbIntL, ySbIntL) is set equal to (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4)).

- 예측 루마 샘플 어레이 predSamplesLX 내의 각 루마 샘플 위치 (xL = 0..sbWidth - 1 + brdExtSize, yL = 0..sbHeight - 1 + brdExtSize)에 대해, 대응하는 예측 루마 샘플 값 predSamplesLX [xL] [yL] 다음과 같이 유도된다:- for each luma sample position (x L = 0..sbWidth - 1 + brdExtSize, y L = 0..sbHeight - 1 + brdExtSize) in the predicted luma sample array predSamplesLX, the corresponding predicted luma sample value predSamplesLX [x L ] [y L ] is derived as:

- (refxSbL, refySbL) 및 (refxL, refyL)은 1/16- 샘플 유닛으로 지정된 모션 벡터(refMvLX [0], refMvLX [1])가 가리키는 루마 위치라 한다. 변수 refxSbL, refxL, refySbL 및 refyL은 다음과 같이 유도된다:- (refxSb L , refySb L ) and (refx L , refy L ) are the luma positions pointed to by motion vectors (refMvLX [0], refMvLX [1]) specified in 1/16-sample units. The variables refxSb L , refx L , refySb L and refy L are derived as follows:

refxSbL = ((  ( xSb - conf_win_left_offset)  <<  4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)refxSb L = (( ( xSb - conf_win_left_offset) << 4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)

refxL =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)refx L =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)

+ xL * ( ( hori_scale_fp + 8 ) >> 4 ) )  +( fRefLeftOff<<10) + 32 ) >> 6 (8-756)+ x L * ( ( hori_scale_fp + 8 ) >> 4 ) ) +( fRefLeftOff<<10) + 32 ) >> 6 (8-756)

refySbL = ( (  (ySb - conf_win_top_offset) << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)refySb L = ( ( (ySb - conf_win_top_offset) << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)

refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL * refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL *

( ( vert_scale_fp + 8 ) >> 4 ) )  +( fRefTopOff<<10) + 32 ) >> 6 (8-758)( ( vert_scale_fp + 8 ) >> 4 ) ) +( fRefTopOff<<10) + 32 ) >> 6 (8-758)

- xIntL, yIntL, xFracL 및 yFracL 변수는 다음과 같이 유도된다:- xInt L , yInt L , xFrac L and yFrac L variables are derived as follows:

xIntL = refxL >> 4 (8-759)xInt L = refx L >> 4 (8-759)

yIntL = refyL >> 4 (8-760)yInt L = refy L >> 4 (8-760)

xFracL = refxL & 15 (8-761)xFrac L = refx L & 15 (8-761)

yFracL = refyL & 15 (8-762)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 절에 지정된 루마 정수 샘플 가져오기 프로세스를 호출하여 유도된다. - If bdofFlag is equal to TRUE ( sps_affine_prof_enabled_flag is TRUE and inter_affine_flag[ xSb ][ ySb ] is equal to TRUE, and one or more of the following conditions are true, the predicted luma sample value predSamplesLX[ x L ][ y L ] ( xIntL + ( xFrac L >> 3 ) - 1), yInt L + ( yFrac L >> 3 ) - 1 ) and refPicLX as inputs, the luma integer sample specified in section 8.5.6.3.3 Derived by invoking the import process.

- xL은 0과 동일하다.- x L is equal to zero.

- xL은 sbWidth + 1과 동일하다.- x L is equal to sbWidth + 1.

- yL은 0과 동일하다.- y L is equal to 0.

- yL은 sbHeight + 1과 동일하다.- y L is equal to 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 탭 보간 필터링 프로세스를 호출하여 유도된다.- Otherwise, the predicted luma sample values predSamplesLX[xL][yL] are (xIntL-(brdExtSize > 0? 1: 0), yIntL-(brdExtSize > 0? 1: 0)), (xFracL, yFracL), (xSbIntL, ySbIntL), refPicLX, hpelIfIdx, sbWidth, sbHeight, and (xSb, ySb) are derived by invoking the luma sample 8-tap interpolation filtering process specified in section 8.5.6.3.2 as input.

- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:- Otherwise (cIdx is not 0), the following applies:

- (xIntC, yIntC)는 전체 샘플 유닛으로 주어진 크로마 위치이고(xFracC, yFracC)는 1/32 샘플 유닛으로 주어진 오프셋이라고 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내에서 일반적인 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. Let (xIntC, yIntC) be the chroma position given in whole sample units and (xFracC, yFracC) be the offset given in 1/32 sample units. These variables are used only in this section to specify common fractional sample locations within the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntC, ySbIntC)에 대한 경계 블록의 왼쪽 상단 좌표는 ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5))와 동일하게 설정된다. - The upper-left coordinates of the bounding block for reference sample padding (xSbIntC, ySbIntC) are ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5) ) is set the same as

- 예측 크로마 샘플 어레이 predSamplesLX 내의 각 크로마 샘플 위치 (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1)에 대해, 대응하는 예측 크로마 샘플 값 predSamplesLX [xC] [yC]는 다음과 같이 유도된다:- For each chroma sample position (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1) in the predicted chroma sample array predSamplesLX, the corresponding predicted chroma sample value predSamplesLX [xC] [yC] is derived as do:

- (refxSbC, refySbC) 및 (refxC, refyC)를 1/32 샘플 유닛으로 주어진 모션 벡터(mvLX [0], mvLX [1])가 가리키는 크로마 위치라고 한다. 변수 refxSbC, refySbC, refxC 및 refyC는 다음과 같이 유도된다:- Let (refxSb C , refySb C ) and (refx C , refy C ) be the chroma positions pointed to by the motion vectors (mvLX [0], mvLX [1]) given in 1/32 sample units. The variables refxSb C , refySb C , refx C and refy C are derived as follows:

refxSbC = ((( xSb - conf_win_left_offset) / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763) refxSbC = ((( xSb - conf_win_left_offset) / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)

refxC=((Sign(refxSbC) *((Abs(refxSbC) + 256) >> 9)refx C =((Sign(refxSb C ) *((Abs(refxSb C ) + 256) >> 9)

+ xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764) + xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764)

refySbC = ( ((ySb - conf_win_top_offset) / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765) refySbC = ( ((ySb - conf_win_top_offset) / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765)

refyC =((Sign(refySbC) *((Abs(refySbC) + 256) >> 9)refy C =((Sign(refySb C ) *((Abs(refySb C ) + 256) >> 9)

+ yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766) + yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766)

- refx C = refx C +( fRefLeftOff/ SubWidthC <<5). - refx C = refx C +( fRefLeftOff/ SubWidthC <<5).

- refy C = refy C +( fRefTopOff/ SubHeightC <<5). - refy C = refy C +( fRefTopOff/ SubHeightC <<5).

xIntC, yIntC, xFracC 및 yFracC 변수는 다음과 같이 유도된다:The xInt C , yInt C , xFrac C and yFrac C variables are derived as follows:

xIntC = refxC >> 5 (8-767)xInt C = refx C >> 5 (8-767)

yIntC = refyC >> 5 (8-768)yInt C = refy C >> 5 (8-768)

xFracC = refyC & 31 (8-769)xFrac C = refy C & 31 (8-769)

yFracC = refyC & 31 (8-770)yFrac C = refy C & 31 (8-770)

5.4.5.4. 레퍼런스 샘플 위치 유도의 실시예 3Example 3 of Reference Sample Position Derivation

8.5.6.3.1 일반8.5.6.3.1 General

......

변수 fRefWidth는 루마 샘플에서 레퍼런스 픽처의 PicOutputWidthL과 동일하게 설정된다.The variable fRefWidth is set equal to PicOutputWidthL of the reference picture in luma samples.

변수 fRefHeight는 루마 샘플에서 레퍼런스 픽처의 PicOutputHeightL과 동일하게 설정된다.The variable fRefHeight is set equal to PicOutputHeightL of the reference picture in the luma sample.

변수 fRefLeftOff는 루마 샘플에서 레퍼런스 픽처의 conf_win_left_offset과 동일하게 설정된다.The variable fRefLeftOff is set equal to conf_win_left_offset of the reference picture in the luma sample.

변수 fRefTopOff는 루마 샘플에서 레퍼런스 픽처의 conf_win_top_offset과 동일하게 설정된다.The variable fRefTopOff is set equal to conf_win_top_offset of the reference picture in the luma sample.

모션 벡터 mvLX (refMvLX - mvOffset)와 동일하게 설정된다.It is set equal to the motion vector mvLX (refMvLX - mvOffset).

- cIdx가 0이면, 다음이 적용된다.- If cIdx is 0, the following applies.

- 스케일링 인자 및 고정 소수점 표현은 다음과 같이 정의된다. - Scaling factors and fixed-point representations are defined as follows.

hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753) hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753)

vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754) vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754)

- (xIntL, yIntL)은 전체 샘플 유닛으로 주어진 루마 위치로 하고 (xFracL, yFracL)는 1/16 샘플 유닛으로 주어진 오프셋으로 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내부의 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. - (xIntL, yIntL) is the luma position given in whole sample units and (xFracL, yFracL) is the offset given in 1/16 sample units. These variables are used only in this section to specify the fractional sample location inside the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntL, ySbIntL)에 대한 경계 블록의 왼쪽 상단 좌표는 (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4))와 동일하게 설정된다. - The upper left coordinate of the boundary block for reference sample padding (xSbIntL, ySbIntL) is set equal to (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4)).

- 예측 루마 샘플 어레이 predSamplesLX 내의 각 루마 샘플 위치 (xL = 0..sbWidth - 1 + brdExtSize, yL = 0..sbHeight - 1 + brdExtSize)에 대해, 대응하는 예측 루마 샘플 값 predSamplesLX [xL] [yL] 다음과 같이 유도된다:- for each luma sample position (x L = 0..sbWidth - 1 + brdExtSize, y L = 0..sbHeight - 1 + brdExtSize) in the predicted luma sample array predSamplesLX, the corresponding predicted luma sample value predSamplesLX [x L ] [y L ] is derived as:

- (refxSbL, refySbL) 및 (refxL, refyL)은 1/16- 샘플 유닛으로 지정된 모션 벡터(refMvLX [0], refMvLX [1])가 가리키는 루마 위치라 한다. 변수 refxSbL, refxL, refySbL 및 refyL은 다음과 같이 유도된다:- (refxSb L , refySb L ) and (refx L , refy L ) are the luma positions pointed to by motion vectors (refMvLX [0], refMvLX [1]) specified in 1/16-sample units. The variables refxSb L , refx L , refySb L and refy L are derived as follows:

refxSbL = ((  ( xSb - conf_win_left_offset)  <<  4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)refxSb L = (( ( xSb - conf_win_left_offset) << 4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)

refxL =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)refx L =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)

+ xL * ( ( hori_scale_fp + 8 ) >> 4 ) )  +( fRefLeftOff<<10) + 32 ) >> 6 (8-756)+ x L * ( ( hori_scale_fp + 8 ) >> 4 ) ) +( fRefLeftOff<<10) + 32 ) >> 6 (8-756)

refySbL = ( (  (ySb - conf_win_top_offset) << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)refySb L = ( ( (ySb - conf_win_top_offset) << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)

refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL * refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL *

( ( vert_scale_fp + 8 ) >> 4 ) )  +( fRefTopOff<<10) + 32 ) >> 6 (8-758)( ( vert_scale_fp + 8 ) >> 4 ) ) +( fRefTopOff<<10) + 32 ) >> 6 (8-758)

- xIntL, yIntL, xFracL 및 yFracL 변수는 다음과 같이 유도된다:- xInt L , yInt L , xFrac L and yFrac L variables are derived as follows:

xIntL = refxL >> 4 (8-759)xInt L = refx L >> 4 (8-759)

yIntL = refyL >> 4 (8-760)yInt L = refy L >> 4 (8-760)

xFracL = refxL & 15 (8-761)xFrac L = refx L & 15 (8-761)

yFracL = refyL & 15 (8-762)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 절에 지정된 루마 정수 샘플 가져오기 프로세스를 호출하여 유도된다. - If bdofFlag is equal to TRUE ( sps_affine_prof_enabled_flag is TRUE and inter_affine_flag[ xSb ][ ySb ] is equal to TRUE, and one or more of the following conditions are true, the predicted luma sample value predSamplesLX[ x L ][ y L ] ( xIntL + ( xFrac L >> 3) - 1), yInt L + ( yFrac L >> 3 ) - 1 ) and refPicLX as inputs, the luma integer sample specified in section 8.5.6.3.3 Derived by invoking the import process.

- xL은 0과 동일하다.- x L is equal to zero.

- xL은 sbWidth + 1과 동일하다.- x L is equal to sbWidth + 1.

- yL은 0과 동일하다.- y L is equal to 0.

- yL은 sbHeight + 1과 동일하다.- y L is equal to sbHeight + 1.

- 예측 루마 샘플 값 predSamplesLX[ xL ][ yL ]는 ( xIntL, yIntL ), ( xFracL, yFracL ), refPicLX 및 padVal을 입력으로 사용하여 8.5.7.3.2절에 지정된 루마 샘플 8탭 보간 필터링 프로세스를 호출하여 유도된다. 1 : 0 ), yIntL - ( brdExtSize > 0 ? 1 : 0 ) ), ( xFracL, yFracL ), ( xSbIntL, ySbIntL ), refPicLX, hpelIfIdx, sbWidth, sbHeight 및 ( xSb, ySb )를 입력으로 사용한다.- The predicted luma sample values predSamplesLX[ xL ][ yL ] invoke the luma sample 8-tap interpolation filtering process specified in section 8.5.7.3.2 using ( xIntL, yIntL ), ( xFracL, yFracL ), refPicLX and padVal as inputs. is induced by Use 1 : 0 ), yIntL - ( brdExtSize > 0 ? 1 : 0 ) ), ( xFracL, yFracL ), and (xSbIntL, sb.SbWidth), (xSbIntL, ySbIntL), enter (xSbIntL, ySbIntsb) as

- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:- Otherwise (cIdx is not 0), the following applies:

- (xIntC, yIntC)는 전체 샘플 유닛으로 주어진 크로마 위치이고(xFracC, yFracC)는 1/32 샘플 유닛으로 주어진 오프셋이라고 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내에서 일반적인 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. Let (xIntC, yIntC) be the chroma position given in whole sample units and (xFracC, yFracC) be the offset given in 1/32 sample units. These variables are used only in this section to specify common fractional sample locations within the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntC, ySbIntC)에 대한 경계 블록의 왼쪽 상단 좌표는 ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5))와 동일하게 설정된다. - The upper-left coordinates of the bounding block for reference sample padding (xSbIntC, ySbIntC) are ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5) ) is set the same as

- 예측 크로마 샘플 어레이 predSamplesLX 내의 각 크로마 샘플 위치 (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1)에 대해, 대응하는 예측 크로마 샘플 값 predSamplesLX [xC] [yC]는 다음과 같이 유도된다: - for each chroma sample position (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1) in the predicted chroma sample array predSamplesLX, the corresponding predicted chroma sample value predSamplesLX [xC] [yC] is is derived:

- (refxSbC, refySbC) 및 (refxC, refyC)를 1/32 샘플 유닛으로 주어진 모션 벡터(mvLX [0], mvLX [1])가 가리키는 크로마 위치라고 한다. 변수 refxSbC, refySbC, refxC 및 refyC는 다음과 같이 유도된다:- Let (refxSb C , refySb C ) and (refx C , refy C ) be the chroma positions pointed to by the motion vectors (mvLX [0], mvLX [1]) given in 1/32 sample units. The variables refxSb C , refySb C , refx C and refy C are derived as follows:

refxSbC = ((( xSb - conf_win_left_offset) / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763) refxSbC = ((( xSb - conf_win_left_offset) / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)

refxC=((Sign(refxSbC) *((Abs(refxSbC) + 256) >> 9)refx C =((Sign(refxSb C ) *((Abs(refxSb C ) + 256) >> 9)

+ xC * ( ( hori_scale_fp + 8 ) >> 4 ) )  + ( fRefLeftOff/ SubWidthC <<10) + 16 ) >> 5 (8-764)+ xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + ( fRefLeftOff/ SubWidthC <<10) + 16 ) >> 5 (8-764)

refySbC = ( ((ySb - conf_win_top_offset) / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765) refySbC = ( ((ySb - conf_win_top_offset) / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765)

refyC =((Sign(refySbC) *((Abs(refySbC) + 256) >> 9)refy C =((Sign(refySb C ) *((Abs(refySb C ) + 256) >> 9)

+ yC* ( ( vert_scale_fp + 8 ) >> 4 ) )  + ( fRefTopOff/ SubHeightC <<10) + 16 ) >> 5 (8-766)+ yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + ( fRefTopOff/ SubHeightC <<10) + 16 ) >> 5 (8-766)

- xIntC, yIntC, xFracC 및 yFracC 변수는 다음과 같이 유도된다:- xInt C , yInt C , xFrac C and yFrac C variables are derived as follows:

xIntC = refxC >> 5 (8-767)xInt C = refx C >> 5 (8-767)

yIntC = refyC >> 5 (8-768)yInt C = refy C >> 5 (8-768)

xFracC = refyC & 31 (8-769)xFrac C = refy C & 31 (8-769)

yFracC = refyC & 31 (8-770)yFrac C = refy C & 31 (8-770)

5.5.5.5. 레퍼런스 샘플 위치 클리핑의 실시예 1Example 1 of Reference Sample Position Clipping

8.5.6.3.1 일반8.5.6.3.1 General

이 프로세스에 대한 입력은 다음과 같다:Inputs to this process are:

- 현재 픽처의 왼쪽 상단 루마 샘플을 기준으로 현재 코딩 서브블록의 왼쪽 상단 샘플을 지정하는 루마 위치(xSb, ySb),- Luma position (xSb, ySb) designating the upper left sample of the current coding subblock based on the upper left luma sample of the current picture,

- 현재 코딩 서브블록의 너비를 지정하는 변수 sbWidth,- Variable sbWidth to designate the width of the current coding subblock,

- 현재 코딩 서브블록의 높이를 지정하는 변수 sbHeight,- Variable sbHeight to designate the height of the current coding subblock,

- 모션 벡터 오프셋 mvOffset,- motion vector offset mvOffset,

- 세련된 모션 벡터 refMvLX,- stylish motion vector refMvLX,

- 선택한 레퍼런스 픽처 샘플 어레이 refPicLX,- selected reference picture sample array refPicLX,

- 하프 샘플 보간 필터 인덱스 hpelIfIdx,- half-sample interpolation filter index hpelIfIdx,

- 양방향 광학 흐름 플래그 bdofFlag,- bidirectional optical flow flag bdofFlag,

- 현재 블록의 컬러 컴포넌트 인덱스를 지정하는 가변 cIdx이다.- Variable cIdx designating the color component index of the current block.

이 프로세스의 출력은 다음과 같다:The output of this process is:

- 예측 샘플 값의 (sbWidth + brdExtSize)x(sbHeight + brdExtSize) array predSamplesLX of prediction- (sbWidth + brdExtSize)x(sbHeight + brdExtSize) array predSamplesLX of prediction

- 예측 블록 경계 확장 크기 brdExtSize는 다음과 같이 유도된다: - The prediction block boundary extension size brdExtSize is derived as follows:

brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2 : 0 (8-752) brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2: 0 (8-752)

변수 fRefWidth는 루마 샘플에서 레퍼런스 픽처의 PicOutputWidthL과 동일하게 설정된다. The variable fRefWidth is set equal to PicOutputWidthL of the reference picture in luma samples.

변수 fRefHeight는 루마 샘플에서 레퍼런스 픽처의 PicOutputHeightL과 동일하게 설정된다. The variable fRefHeight is set equal to PicOutputHeightL of the reference picture in the luma sample.

모션 벡터 mvLX (refMvLX - mvOffset)와 동일하게 설정된다. It is set equal to the motion vector mvLX (refMvLX - mvOffset).

- cIdx가 0이면, 다음이 적용된다. - If cIdx is 0, the following applies.

- 스케일링 인자 및 고정 소수점 표현은 다음과 같이 정의된다. - Scaling factors and fixed-point representations are defined as follows.

hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753) hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753)

vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754) vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754)

- (xIntL, yIntL)은 전체 샘플 유닛으로 주어진 루마 위치로 하고 (xFracL, yFracL)는 1/16 샘플 유닛으로 주어진 오프셋으로 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내부의 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. - (xIntL, yIntL) is the luma position given in whole sample units and (xFracL, yFracL) is the offset given in 1/16 sample units. These variables are used only in this section to specify the fractional sample location inside the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntL, ySbIntL)에 대한 경계 블록의 왼쪽 상단 좌표는 (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4))와 동일하게 설정된다. - The upper left coordinate of the boundary block for reference sample padding (xSbIntL, ySbIntL) is set equal to (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4)).

- 예측 루마 샘플 어레이 predSamplesLX 내의 각 루마 샘플 위치 (xL = 0..sbWidth - 1 + brdExtSize, yL = 0..sbHeight - 1 + brdExtSize)에 대해, 대응하는 예측 루마 샘플 값 predSamplesLX [xL] [yL] 다음과 같이 유도된다:- for each luma sample position in the predicted luma sample array predSamplesLX (x L = 0..sbWidth - 1 + brdExtSize, y L = 0..sbHeight - 1 + brdExtSize), the corresponding predicted luma sample value predSamplesLX [x L ] [y L ] is derived as:

- (refxSbL, refySbL) 및 (refxL, refyL)은 1/16- 샘플 유닛으로 지정된 모션 벡터(refMvLX [0], refMvLX [1])가 가리키는 루마 위치라 한다. 변수 refxSbL, refxL, refySbL 및 refyL은 다음과 같이 유도된다:- (refxSb L , refySb L ) and (refx L , refy L ) are the luma positions pointed to by motion vectors (refMvLX [0], refMvLX [1]) specified in 1/16-sample units. The variables refxSb L , refx L , refySb L and refy L are derived as follows:

refxSbL = ( ( xSb  <<  4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)refxSb L = ( ( xSb << 4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)

refxL =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)refx L =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)

+ xL *((hori_scale_fp + 8) >> 4)) + 32) >> 6 (8-756)+ x L *((hori_scale_fp + 8) >> 4)) + 32) >> 6 (8-756)

refySbL = ( ( ySb << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)refySb L = ( ( ySb << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)

refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL * refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL *

( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-758) ( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-758)

- xIntL, yIntL, xFracL 및 yFracL 변수는 다음과 같이 유도된다:- xInt L , yInt L , xFrac L and yFrac L variables are derived as follows:

xIntL = Clip3( 0, fRefWidth -1, refxL  >>  4) (8-759)xInt L = Clip3( 0, fRefWidth -1, refxL >> 4) (8-759)

yIntL = Clip3( 0, fRefHeight -1, refyL  >>  4) (8-760)yInt L = Clip3( 0, fRefHeight -1, refyL >> 4) (8-760)

xFracL = refxL & 15 (8-761)xFrac L = refx L & 15 (8-761)

yFracL = refyL & 15 (8-762)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 절에 지정된 루마 정수 샘플 가져오기 프로세스를 호출하여 유도된다. - If bdofFlag is equal to TRUE ( sps_affine_prof_enabled_flag is TRUE and inter_affine_flag[ xSb ][ ySb ] is equal to TRUE, and one or more of the following conditions are true, the predicted luma sample value predSamplesLX[ x L ][ y L ] ( xIntL + ( xFrac L >> 3) - 1), yInt L + ( yFrac L >> 3 ) - 1 ) and refPicLX as inputs, the luma integer sample specified in section 8.5.6.3.3 Derived by invoking the import process.

- xL은 0과 동일하다.- x L is equal to zero.

- xL은 sbWidth + 1과 동일하다.- x L is equal to sbWidth + 1.

- yL은 0과 동일하다.- y L is equal to 0.

- yL은 sbHeight + 1과 동일하다.- y L is equal to 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 탭 보간 필터링 프로세스를 호출하여 유도된다. - Otherwise, the predicted luma sample values predSamplesLX[xL][yL] are (xIntL-(brdExtSize > 0? 1: 0), yIntL-(brdExtSize > 0? 1: 0)), (xFracL, yFracL), (xSbIntL) , ySbIntL), refPicLX, hpelIfIdx, sbWidth, sbHeight, and (xSb, ySb) are derived by invoking the luma sample 8-tap interpolation filtering process specified in section 8.5.6.3.2 as input.

- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:- Otherwise (cIdx is not 0), the following applies:

- (xIntC, yIntC)는 전체 샘플 유닛으로 주어진 크로마 위치이고(xFracC, yFracC)는 1/32 샘플 유닛으로 주어진 오프셋이라고 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내에서 일반적인 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. Let (xIntC, yIntC) be the chroma position given in whole sample units and (xFracC, yFracC) be the offset given in 1/32 sample units. These variables are used only in this section to specify common fractional sample locations within the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntC, ySbIntC)에 대한 경계 블록의 왼쪽 상단 좌표는 ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5))와 동일하게 설정된다. - The upper-left coordinates of the bounding block for reference sample padding (xSbIntC, ySbIntC) are ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5) ) is set the same as

- 예측 크로마 샘플 어레이 predSamplesLX 내의 각 크로마 샘플 위치 (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1)에 대해, 대응하는 예측 크로마 샘플 값 predSamplesLX [xC] [yC]는 다음과 같이 유도된다: - for each chroma sample position (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1) in the predicted chroma sample array predSamplesLX, the corresponding predicted chroma sample value predSamplesLX [xC] [yC] is is derived:

- (refxSbC, refySbC) 및 (refxC, refyC)를 1/32 샘플 유닛으로 주어진 모션 벡터(mvLX [0], mvLX [1])가 가리키는 크로마 위치라고 한다. 변수 refxSbC, refySbC, refxC 및 refyC는 다음과 같이 유도된다:- Let (refxSb C , refySb C ) and (refx C , refy C ) be the chroma positions pointed to by the motion vectors (mvLX [0], mvLX [1]) given in 1/32 sample units. The variables refxSb C , refySb C , refx C and refy C are derived as follows:

refxSbC =  ( ( xSb / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)refxSb C = ( ( xSb / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)

refxC=((Sign(refxSbC) *((Abs(refxSbC) + 256) >> 9)refx C =((Sign(refxSb C ) *((Abs(refxSb C ) + 256) >> 9)

+ xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764) + xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764)

refySbC =  ( ( ySb / SubHeightC  <<  5 )  + mvLX[ 1 ] ) * vert_scale_fp (8-765)refySb C = ( ( ySb / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765)

refyC =((Sign(refySbC) *((Abs(refySbC) + 256) >> 9)refy C =((Sign(refySb C ) *((Abs(refySb C ) + 256) >> 9)

+ yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766) + yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766)

- xIntC, yIntC, xFracC 및 yFracC 변수는 다음과 같이 유도된다:- xInt C , yInt C , xFrac C and yFrac C variables are derived as follows:

xIntC = Clip3( 0, fRefWidth/ SubWidthC -1, refxC  >>  5) (8-767)xInt C = Clip3( 0, fRefWidth/ SubWidthC -1, refxC >> 5) (8-767)

yIntC = Clip3( 0, fRefHeight/ SubHeightC -1, refyC  >>  5) (8-768)yInt C = Clip3( 0, fRefHeight/ SubHeightC -1, refyC >> 5) (8-768)

xFracC = refyC & 31 (8-769)xFrac C = refy C & 31 (8-769)

yFracC = refyC & 31 (8-770)yFrac C = refy C & 31 (8-770)

- 예측 샘플 값 predSamplesLX [xC] [yC]는 (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight 및 refPicLX을 입력으로 하여 8.5.6.3.4에 지정된 프로세스를 호출하여 유도된다: - The predicted sample values predSamplesLX[xC][yC] are obtained by calling the process specified in 8.5.6.3.4 with (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight and refPicLX as inputs. is derived:

5.6.5.6. 레퍼런스 샘플 위치 클리핑의 실시예 2Example 2 of Reference Sample Position Clipping

8.5.6.3.1 일반8.5.6.3.1 General

이 프로세스에 대한 입력은 다음과 같다:Inputs to this process are:

- 현재 픽처의 왼쪽 상단 루마 샘플을 기준으로 현재 코딩 서브블록의 왼쪽 상단 샘플을 지정하는 루마 위치(xSb, ySb),- Luma position (xSb, ySb) designating the upper left sample of the current coding subblock based on the upper left luma sample of the current picture,

- 현재 코딩 서브블록의 너비를 지정하는 변수 sbWidth,- Variable sbWidth to designate the width of the current coding subblock,

- 현재 코딩 서브블록의 높이를 지정하는 변수 sbHeight,- Variable sbHeight to designate the height of the current coding subblock,

- 모션 벡터 오프셋 mvOffset,- motion vector offset mvOffset,

- 세련된 모션 벡터 refMvLX,- stylish motion vector refMvLX,

- 선택한 레퍼런스 픽처 샘플 어레이 refPicLX,- selected reference picture sample array refPicLX,

- 하프 샘플 보간 필터 인덱스 hpelIfIdx,- half-sample interpolation filter index hpelIfIdx,

- 양방향 광학 흐름 플래그 bdofFlag,- bidirectional optical flow flag bdofFlag,

- 현재 블록의 컬러 컴포넌트 인덱스를 지정하는 가변 cIdx이다.- Variable cIdx designating the color component index of the current block.

이 프로세스의 출력은 다음과 같다:The output of this process is:

- 예측 샘플 값의 (sbWidth + brdExtSize)x(sbHeight + brdExtSize) array predSamplesLX of prediction- (sbWidth + brdExtSize)x(sbHeight + brdExtSize) array predSamplesLX of prediction

예측 블록 경계 확장 크기 brdExtSize는 다음과 같이 유도된다:The prediction block boundary extension size brdExtSize is derived as follows:

brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2 : 0 (8-752) brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2: 0 (8-752)

변수 fRefWidth는 루마 샘플에서 레퍼런스 픽처의 PicOutputWidthL과 동일하게 설정된다.The variable fRefWidth is set equal to PicOutputWidthL of the reference picture in luma samples.

변수 fRefHeight는 루마 샘플에서 레퍼런스 픽처의 PicOutputHeightL과 동일하게 설정된다.The variable fRefHeight is set equal to PicOutputHeightL of the reference picture in the luma sample.

변수 fRefLeftOff는 루마 샘플에서 레퍼런스 픽처의 conf_win_left_offset과 동일하게 설정된다.The variable fRefLeftOff is set equal to conf_win_left_offset of the reference picture in the luma sample.

변수 fRefTopOff는 루마 샘플에서 레퍼런스 픽처의 conf_win_top_offset과 동일하게 설정된다.The variable fRefTopOff is set equal to conf_win_top_offset of the reference picture in the luma sample.

모션 벡터 mvLX (refMvLX - mvOffset)와 동일하게 설정된다.It is set equal to the motion vector mvLX (refMvLX - mvOffset).

- cIdx가 0이면, 다음이 적용된다. - If cIdx is 0, the following applies.

- 스케일링 인자 및 고정 소수점 표현은 다음과 같이 정의된다. - Scaling factors and fixed-point representations are defined as follows.

hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753) hori_scale_fp =((fRefWidth << 14) +(PicOutputWidthL >> 1))/PicOutputWidthL (8-753)

vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754) vert_scale_fp =((fRefHeight << 14) +(PicOutputHeightL >> 1))/PicOutputHeightL (8-754)

- (xIntL, yIntL)은 전체 샘플 유닛으로 주어진 루마 위치로 하고 (xFracL, yFracL)는 1/16 샘플 유닛으로 주어진 오프셋으로 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내부의 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. - (xIntL, yIntL) is the luma position given in whole sample units and (xFracL, yFracL) is the offset given in 1/16 sample units. These variables are used only in this section to specify the fractional sample location inside the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntL, ySbIntL)에 대한 경계 블록의 왼쪽 상단 좌표는 (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4))와 동일하게 설정된다. - The upper left coordinate of the boundary block for reference sample padding (xSbIntL, ySbIntL) is set equal to (xSb +(mvLX [0] >> 4), ySb +(mvLX [1] >> 4)).

- 예측 루마 샘플 어레이 predSamplesLX 내의 각 루마 샘플 위치 (xL = 0..sbWidth - 1 + brdExtSize, yL = 0..sbHeight - 1 + brdExtSize)에 대해, 대응하는 예측 루마 샘플 값 predSamplesLX [xL] [yL] 다음과 같이 유도된다:- for each luma sample position in the predicted luma sample array predSamplesLX (x L = 0..sbWidth - 1 + brdExtSize, y L = 0..sbHeight - 1 + brdExtSize), the corresponding predicted luma sample value predSamplesLX [x L ] [y L ] is derived as:

- (refxSbL, refySbL) 및 (refxL, refyL)은 1/16- 샘플 유닛으로 지정된 모션 벡터(refMvLX [0], refMvLX [1])가 가리키는 루마 위치라 한다. 변수 refxSbL, refxL, refySbL 및 refyL은 다음과 같이 유도된다:- (refxSb L , refySb L ) and (refx L , refy L ) are the luma positions pointed to by motion vectors (refMvLX [0], refMvLX [1]) specified in 1/16-sample units. The variables refxSb L , refx L , refySb L and refy L are derived as follows:

refxSbL = ( ( xSb  <<  4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)refxSb L = ( ( xSb << 4 ) + refMvLX[ 0 ] ) * hori_scale_fp (8-755)

refxL =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)refx L =((Sign(refxSb) *((Abs(refxSb) + 128) >> 8)

+ xL *((hori_scale_fp + 8) >> 4)) + 32) >> 6 (8-756)+ x L *((hori_scale_fp + 8) >> 4)) + 32) >> 6 (8-756)

refySbL = ( ( ySb << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)refySb L = ( ( ySb << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (8-757)

refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL * refyL =((Sign(refySb) *((Abs(refySb) + 128) >> 8) + yL *

( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-758) ( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (8-758)

- xIntL, yIntL, xFracL 및 yFracL 변수는 다음과 같이 유도된다:- xInt L , yInt L , xFrac L and yFrac L variables are derived as follows:

xIntL = Clip3( fRefLeftOff, fRefLeftOff +fRefWidth -1, refxL  >>  4) (8-759)xInt L = Clip3( fRefLeftOff, fRefLeftOff +fRefWidth -1, refxL >> 4) (8-759)

yIntL = Clip3( fRefTopOff, fRefTopOff +fRefHeight -1, refyL  >>  4) (8-760)yInt L = Clip3( fRefTopOff, fRefTopOff +fRefHeight -1, refyL >> 4) (8-760)

xFracL = refxL & 15 (8-761)xFrac L = refx L & 15 (8-761)

yFracL = refyL & 15 (8-762)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 절에 지정된 루마 정수 샘플 가져오기 프로세스를 호출하여 유도된다. - If bdofFlag is equal to TRUE ( sps_affine_prof_enabled_flag is TRUE and inter_affine_flag[ xSb ][ ySb ] is equal to TRUE, and one or more of the following conditions are true, the predicted luma sample value predSamplesLX[ x L ][ y L ] ( xIntL + ( xFrac L >> 3) - 1), yInt L + ( yFrac L >> 3 ) - 1 ) and refPicLX as inputs, the luma integer sample specified in section 8.5.6.3.3 Derived by invoking the import process.

- xL은 0과 동일하다.- x L is equal to zero.

- xL은 sbWidth + 1과 동일하다.- x L is equal to sbWidth + 1.

- yL은 0과 동일하다.- y L is equal to 0.

- yL은 sbHeight + 1과 동일하다.- y L is equal to 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 탭 보간 필터링 프로세스를 호출하여 유도된다. - Otherwise, the predicted luma sample values predSamplesLX[xL][yL] are (xIntL-(brdExtSize > 0? 1: 0), yIntL-(brdExtSize > 0? 1: 0)), (xFracL, yFracL), (xSbIntL) , ySbIntL), refPicLX, hpelIfIdx, sbWidth, sbHeight, and (xSb, ySb) are derived by invoking the luma sample 8-tap interpolation filtering process specified in section 8.5.6.3.2 as input.

- 그렇지 않으면(cIdx가 0이 아님), 다음이 적용된다:- Otherwise (cIdx is not 0), the following applies:

- (xIntC, yIntC)는 전체 샘플 유닛으로 주어진 크로마 위치이고(xFracC, yFracC)는 1/32 샘플 유닛으로 주어진 오프셋이라고 한다. 이러한 변수는 레퍼런스 샘플 어레이 refPicLX 내에서 일반적인 분수 샘플 위치를 지정하기 위해 이 절에서만 사용된다. Let (xIntC, yIntC) be the chroma position given in whole sample units and (xFracC, yFracC) be the offset given in 1/32 sample units. These variables are used only in this section to specify common fractional sample locations within the reference sample array refPicLX.

- 레퍼런스 샘플 패딩(xSbIntC, ySbIntC)에 대한 경계 블록의 왼쪽 상단 좌표는 ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5))와 동일하게 설정된다. - The upper-left coordinates of the bounding block for reference sample padding (xSbIntC, ySbIntC) are ((xSb/SubWidthC) +(mvLX [0] >> 5), (ySb/SubHeightC) +(mvLX [1 ] >> 5) ) is set the same as

- 예측 크로마 샘플 어레이 predSamplesLX 내의 각 크로마 샘플 위치 (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1)에 대해, 대응하는 예측 크로마 샘플 값 predSamplesLX [xC] [yC]는 다음과 같이 유도된다: - for each chroma sample position (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1) in the predicted chroma sample array predSamplesLX, the corresponding predicted chroma sample value predSamplesLX [xC] [yC] is is derived:

- (refxSbC, refySbC) 및 (refxC, refyC)를 1/32 샘플 유닛으로 주어진 모션 벡터(mvLX [0], mvLX [1])가 가리키는 크로마 위치라고 한다. 변수 refxSbC, refySbC, refxC 및 refyC는 다음과 같이 유도된다:- Let (refxSb C , refySb C ) and (refx C , refy C ) be the chroma positions pointed to by the motion vectors (mvLX [0], mvLX [1]) given in 1/32 sample units. The variables refxSb C , refySb C , refx C and refy C are derived as follows:

refxSbC =  ( ( xSb / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)refxSb C = ( ( xSb / SubWidthC << 5 ) + mvLX[ 0 ] ) * hori_scale_fp (8-763)

refxC=((Sign(refxSbC) *((Abs(refxSbC) + 256) >> 9)refx C =((Sign(refxSb C ) *((Abs(refxSb C ) + 256) >> 9)

+ xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764) + xC * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-764)

refySbC =  ( ( ySb / SubHeightC  <<  5 )  + mvLX[ 1 ] ) * vert_scale_fp (8-765)refySb C = ( ( ySb / SubHeightC << 5 ) + mvLX[ 1 ] ) * vert_scale_fp (8-765)

refyC =((Sign(refySbC) *((Abs(refySbC) + 256) >> 9)refy C =((Sign(refySb C ) *((Abs(refySb C ) + 256) >> 9)

+ yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766) + yC* ( ( vert_scale_fp + 8 ) >> 4 ) ) + 16 ) >> 5 (8-766)

- xIntC, yIntC, xFracC 및 yFracC 변수는 다음과 같이 유도된다:- xInt C , yInt C , xFrac C and yFrac C variables are derived as follows:

xIntC = Clip3( fRefLeftOff / SubWidthC, (fRefWidth + fRefLeftOff )/ SubWidthC -1, refxC  >>  5) (8-767)xInt C = Clip3( fRefLeftOff / SubWidthC, (fRefWidth + fRefLeftOff )/ SubWidthC -1, refxC >> 5) (8-767)

yIntC = Clip3( fRefTopOff / SubHeightC, (fRefHeight + fRefTopOff )/ SubHeightC -1, refyC  >>  5) (8-768)yInt C = Clip3( fRefTopOff / SubHeightC, (fRefHeight + fRefTopOff )/ SubHeightC -1, refyC >> 5) (8-768)

xFracC = refyC & 31 (8-769)xFrac C = refy C & 31 (8-769)

yFracC = refyC & 31 (8-770)yFrac C = refy C & 31 (8-770)

- 예측 샘플 값 predSamplesLX [xC] [yC]는 (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight 및 refPicLX을 입력으로 하여 8.5.6.3.4에 지정된 프로세스를 호출하여 유도된다: - The predicted sample values predSamplesLX[xC][yC] are obtained by calling the process specified in 8.5.6.3.4 with (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight and refPicLX as inputs. is derived:

5.7.5.7. 코딩 툴 사용의 실시예(Embodiment of usage of coding tools)Embodiment of usage of coding tools

5.7.1 BDOF 켜기/끄기 제어5.7.1 BDOF on/off control

- 변수 currPic은 현재 픽처를 지정하고 변수 bdofFlag는 다음과 같이 유도된다.- The variable currPic designates the current picture and the variable bdofFlag is derived as follows.

- 다음 조건이 모두 참이면, bdofFlag가 참과 동일하게 설정된다. - If all of the following conditions are true, bdofFlag is set equal to true.

- sps_bdof_enabled_flag는 1이고 slice_disable_bdof_dmvr_flag는 0이다. - sps_bdof_enabled_flag is 1 and slice_disable_bdof_dmvr_flag is 0.

- predFlagL0[ xSbIdx ][ ySbIdx ] 및 predFlagL1[ xSbIdx ][ ySbIdx ]는 모두 1이다. - predFlagL0[xSbIdx][ySbIdx] and predFlagL1[xSbIdx][ySbIdx] are both 1.

- DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ] )는 DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic)와 동일하다. - DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ] ) is the same as DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic).

- RefPicList[ 0 ][ refIdxL0 ]은 단기 레퍼런스 픽처고 RefPicList[ 1 ][ refIdxL1 ]은 단기 레퍼런스 픽처다. - RefPicList[ 0 ][ refIdxL0 ] is a short-term reference picture and RefPicList[ 1 ][ refIdxL1 ] is a short-term reference picture.

- MotionModelIdc[ xCb ][ yCb ]는 0과 동일하다. - MotionModelIdc[ xCb ][ yCb ] is equal to 0.

- merge_subblock_flag[ xCb ][ yCb ]는 0과 동일하다. - merge_subblock_flag[ xCb ][ yCb ] is equal to 0.

- sym_mvd_flag[ xCb ][ yCb ]는 0과 동일하다. - sym_mvd_flag[ xCb ][ yCb ] is equal to 0.

- ciip_flag[ xCb ][ yCb ]는 0과 동일하다. - ciip_flag[ xCb ][ yCb ] is equal to 0.

- BcwIdx[ xCb ][ yCb ]는 0과 동일하다. - BcwIdx[ xCb ][ yCb ] is equal to 0.

- luma_weight_l0_flag[ refIdxL0 ] 및 luma_weight_l1_flag[ refIdxL1 ]은 모두 0과 동일하다. - luma_weight_l0_flag[ refIdxL0 ] and luma_weight_l1_flag[ refIdxL1 ] are both equal to 0.

- cbWidth는 8보다 크거나 동일하다. - cbWidth is greater than or equal to 8.

- cbHeight는 8보다 크거나 동일하다. - cbHeight is greater than or equal to 8.

- cbHeight * cbWidth는 128보다 크거나 동일하다. - cbHeight * cbWidth is greater than or equal to 128.

- RefPicIsScaled[ 0 ][ refIdxL0 ]은 0와 동일하고 RefPicIsScaled[ 1 ][ refIdxL1 ]은 0과 동일하다. - RefPicIsScaled[ 0 ][ refIdxL0 ] is equal to 0 and RefPicIsScaled[ 1 ][ refIdxL1 ] is equal to 0.

- cIdx는 0과 동일하다. - cIdx is equal to 0.

- 그렇지 않으면 bdofFlag가 FALSE와 동일하게 설정된다. - Otherwise, bdofFlag is set equal to FALSE.

5.7.2 DMVR 켜기/끄기 제어5.7.2 DMVR on/off control

- 다음 조건이 모두 참이면, dmvrFlag가 1과 동일하게 설정된다: - dmvrFlag is set equal to 1 if all of the following conditions are true:

- sps_dmvr_enabled_flag는 1과 동일하고 slice_disable_bdof_dmvr_flag는 0과 동일하다. - sps_dmvr_enabled_flag is equal to 1 and slice_disable_bdof_dmvr_flag is equal to 0.

- general_merge_flag[ xCb ][ yCb ]는 1과 동일하다. - general_merge_flag[ xCb ][ yCb ] is equal to 1.

- predFlagL0[ 0 ][ 0 ] 및 predFlagL1[ 0 ][ 0 ] 모두 1과 동일하다. - both predFlagL0[ 0 ][ 0 ] and predFlagL1[ 0 ][ 0 ] are equal to 1.

- mmvd_merge_flag[ xCb ][ yCb ]는 0과 동일하다. - mmvd_merge_flag[ xCb ][ yCb ] is equal to 0.

- ciip_flag[ xCb ][ yCb ]는 0과 동일하다. - ciip_flag[ xCb ][ yCb ] is equal to 0.

- DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ])는 DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic )와 동일하다. - DiffPicOrderCnt( currPic, RefPicList[ 0 ][ refIdxL0 ]) is the same as DiffPicOrderCnt( RefPicList[ 1 ][ refIdxL1 ], currPic ).

- RefPicList[ 0 ][ refIdxL0 ]은 단기 레퍼런스 픽처고 RefPicList[ 1 ][ refIdxL1 ]은 단기 레퍼런스 픽처다. - RefPicList[ 0 ][ refIdxL0 ] is a short-term reference picture and RefPicList[ 1 ][ refIdxL1 ] is a short-term reference picture.

- BcwIdx[ xCb ][ yCb ]는 0과 동일하다. - BcwIdx[ xCb ][ yCb ] is equal to 0.

- luma_weight_l0_flag[ refIdxL0 ] 및 luma_weight_l1_flag[ refIdxL1 ] 모두 0과 동일하다. - both luma_weight_l0_flag[ refIdxL0 ] and luma_weight_l1_flag[ refIdxL1 ] are equal to 0.

- cbWidth가 8보다 크거나 동일하다. - cbWidth is greater than or equal to 8.

- cbHeight가 8보다 크거나 동일하다. - cbHeight is greater than or equal to 8.

- cbHeight*cbWidth는 128보다 크거나 동일하다. - cbHeight*cbWidth is greater than or equal to 128.

- RefPicIsScaled[ 0 ][ refIdxL0 ]은 0과 동일하고 RefPicIsScaled[ 1 ][ refIdxL1 ]은 0과 동일하다. - RefPicIsScaled[ 0 ][ refIdxL0 ] is equal to 0 and RefPicIsScaled[ 1 ][ refIdxL1 ] is equal to 0.

5.7.3 레퍼런스 픽처 목록 X에 대한 PROF 켜짐/꺼짐 제어5.7.3 PROF on/off control for reference picture list X

변수 cbProfFlagLX는 다음과 같이 유도된다:The variable cbProfFlagLX is derived as follows:

- 다음 조건 중 하나 이상이 참이면 cbProfFlagLX는 거짓(FALSE)과 동일하게 설정된다.- If one or more of the following conditions are true, cbProfFlagLX is set equal to FALSE.

- sps_affine_prof_enabled_flag는 0과 동일하다. - sps_affine_prof_enabled_flag is equal to 0.

- fallbackModeTriggered는 1과 동일하다. - fallbackModeTriggered is equal to 1.

- numCpMv는 2이고 cpMvLX[ 1 ][ 0 ]은 cpMvLX[ 0 ][ 0 ]이고 cpMvLX[ 1 ][ 1 ]은 cpMvLX[ 0 ][ 1 ]과 동일하다. - numCpMv is 2, cpMvLX[ 1 ][ 0 ] is cpMvLX[ 0 ][ 0 ], and cpMvLX[ 1 ][ 1 ] is the same as cpMvLX[ 0 ][ 1 ].

- numCpMv는 3이고 cpMvLX[ 1 ][ 0 ]은 cpMvLX[ 0 ][ 0 ]과 동일하고 cpMvLX[ 1 ][ 1 ]은 cpMvLX[ 0 ][ 1 ]과 동일하고 cpMvLX[ 2 ][ 0 ]는 cpMvLX[ 0 ][ 0 ]과 동일하고 cpMvLX[ 2 ][ 1 ]는 cpMvLX[ 0 ][ 1 ]과 동일하다. - numCpMv is 3, cpMvLX[ 1 ][ 0 ] equals cpMvLX[ 0 ][ 0 ], cpMvLX[ 1 ][ 1 ] equals cpMvLX[ 0 ][ 1 ], cpMvLX[ 2 ][ 0 ] equals cpMvLX It is the same as [ 0 ][ 0 ], and cpMvLX[ 2 ][ 1 ] is the same as cpMvLX[ 0 ][ 1 ].

- RefPicIsScaled[ X ][ refIdxLX ]는 0과 동일하다. - RefPicIsScaled[ X ][ refIdxLX ] is equal to 0.

- [[refIdxLX와 연관된 레퍼런스 픽처 refPicLX의 pic_width_in_luma_samples는 각각 각각 현재 픽처의 pic_width_in_luma_samples와 동일하지 않다. - [[The pic_width_in_luma_samples of the reference picture refPicLX associated with [refIdxLX] are not the same as the pic_width_in_luma_samples of the current picture, respectively.

- refIdxLX와 연관된 레퍼런스 픽처 refPicLX의 pic_height_in_luma_samples는 각각 현재 픽처의 pic_height_in_luma_samples와 동일하지 않다.]] - The pic_height_in_luma_samples of the reference picture refPicLX associated with the refIdxLX are not the same as the pic_height_in_luma_samples of the current picture, respectively.]]

- 그렇지 않으면 cbProfFlagLX가 참(TRUE)과 동일하게 설정된다. - Otherwise, cbProfFlagLX is set equal to TRUE.

5.7.4 레퍼런스 픽처 목록 X에 대한 PROF 켜기/끄기 제어(제2 실시예)5.7.4 PROF on/off control for reference picture list X (second embodiment)

변수 cbProfFlagLX는 다음과 같이 유도된다:The variable cbProfFlagLX is derived as follows:

- 다음 조건 중 하나 이상이 참이면 cbProfFlagLX는 거짓(FALSE)과 동일하게 설정된다.- If one or more of the following conditions are true, cbProfFlagLX is set equal to FALSE.

- sps_affine_prof_enabled_flag는 0과 동일하다. - sps_affine_prof_enabled_flag is equal to 0.

- fallbackModeTriggered는 1과 동일하다. - fallbackModeTriggered is equal to 1.

- numCpMv는 2이고 cpMvLX[ 1 ][ 0 ]은 cpMvLX[ 0 ][ 0 ]이고 cpMvLX[ 1 ][ 1 ]은 cpMvLX[ 0 ][ 1 ]과 동일하다. - numCpMv is 2, cpMvLX[ 1 ][ 0 ] is cpMvLX[ 0 ][ 0 ], and cpMvLX[ 1 ][ 1 ] is the same as cpMvLX[ 0 ][ 1 ].

- numCpMv는 3이고 cpMvLX[ 1 ][ 0 ]은 cpMvLX[ 0 ][ 0 ]과 동일하고 cpMvLX[ 1 ][ 1 ]은 cpMvLX[ 0 ][ 1 ]과 동일하고 cpMvLX[ 2 ][ 0 ]는 cpMvLX[ 0 ][ 0 ]과 동일하고 cpMvLX[ 2 ][ 1 ]는 cpMvLX[ 0 ][ 1 ]과 동일하다. - numCpMv is 3, cpMvLX[ 1 ][ 0 ] equals cpMvLX[ 0 ][ 0 ], cpMvLX[ 1 ][ 1 ] equals cpMvLX[ 0 ][ 1 ], cpMvLX[ 2 ][ 0 ] equals cpMvLX It is the same as [ 0 ][ 0 ], and cpMvLX[ 2 ][ 1 ] is the same as cpMvLX[ 0 ][ 1 ].

- RefPicIsScaled[ 0 ][ refIdxL0 ] 및 RefPicIsScaled[ 1 ][ refIdxL1 ]은 0과 동일하다. - RefPicIsScaled[ 0 ][ refIdxL0 ] and RefPicIsScaled[ 1 ][ refIdxL1 ] are equal to 0.

- [[refIdxLX와 연관된 레퍼런스 픽처 refPicLX의 pic_width_in_luma_samples는 각각 각각 현재 픽처의 pic_width_in_luma_samples와 동일하지 않다. - [[The pic_width_in_luma_samples of the reference picture refPicLX associated with [refIdxLX] are not the same as the pic_width_in_luma_samples of the current picture, respectively.

- refIdxLX와 연관된 레퍼런스 픽처 refPicLX의 pic_height_in_luma_samples는 각각 현재 픽처의 pic_height_in_luma_samples와 동일하지 않다.]] - The pic_height_in_luma_samples of the reference picture refPicLX associated with the refIdxLX are not the same as the pic_height_in_luma_samples of the current picture, respectively.]]

- 그렇지 않으면 cbProfFlagLX가 참(TRUE)과 동일하게 설정된다. - Otherwise, cbProfFlagLX is set equal to TRUE.

6.6. 개시된 기술의 구현 예Examples of implementations of the disclosed technology

도 5는 비디오 처리 장치(video processing apparatus)(500)의 블록도이다. 장치(500)는 여기에 설명된 방법 중 하나 이상을 구현하는 데 사용될 수 있다. 장치(500)는 스마트폰, 태블릿, 컴퓨터, 사물 인터넷(IoT) 수신기 등으로 구현될 수 있다. 장치(500)는 하나 이상의 프로세서(processor)(502), 하나 이상의 메모리(memory)(504) 및 비디오 처리 하드웨어(video processing hardware)(506)를 포함할 수 있다. 프로세서(들)(502)는 본 문서에 설명된 하나 이상의 방법을 구현하도록 구성될 수 있다. 메모리(504)는 여기에 설명된 방법 및 기술을 구현하는 데 사용되는 데이터 및 코드를 저장하는 데 사용될 수 있다. 비디오 처리 하드웨어(506)는 하드웨어 회로에서 본 문서에 설명된 일부 기술을 구현하는 데 사용될 수 있고, 프로세서(502)의 일부 또는 전체 일 수 있다(예를 들어, 그래픽 프로세서 코어 GPU 또는 기타 신호 처리 회로). 5 is a block diagram of a video processing apparatus 500 . Apparatus 500 may be used to implement one or more of the methods described herein. The device 500 may be implemented as a smartphone, tablet, computer, Internet of Things (IoT) receiver, or the like. The apparatus 500 may include one or more processors 502 , one or more memories 504 , and video processing hardware 506 . The processor(s) 502 may be configured to implement one or more methods described herein. Memory 504 may be used to store data and code used to implement the methods and techniques described herein. The video processing hardware 506 may be used to implement some of the techniques described herein in hardware circuitry, and may be part or all of the processor 502 (eg, a graphics processor core GPU or other signal processing circuitry). ).

본 문서에서 "비디오 처리(video processing)"라는 용어는 비디오 인코딩, 비디오 디코딩, 비디오 압축 또는 비디오 압축 해제(decompression)를 의미할 수 있다. 예를 들어, 비디오 압축 알고리즘은 비디오의 픽셀 표현에서 대응하는 비트스트림 표현으로 또는 그 반대로 변환 동안 적용될 수 있다. 현재 비디오 블록의 비트스트림 표현은, 예를 들어, 신택스에 의해 정의된 바와 같이 비트스트림 내의 다른 위치들에 함께 배치(병치)(co-located)되거나 확산되는 비트들에 대응할 수 있다. 예를 들어, 매크로블록(macroblock)은 트랜스폼되고 코딩된 오류 잔차 값의 관점에서 그리고 또한 헤더의 비트 및 비트스트림의 다른 필드를 사용하여 인코딩될 수 있다.In this document, the term “video processing” may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during transformation from a pixel representation of a video to a corresponding bitstream representation or vice versa. The bitstream representation of the current video block may, for example, correspond to bits that are spread or co-located at different locations within the bitstream as defined by the syntax. For example, a macroblock may be encoded in terms of transformed and coded error residual values and also using bits in the header and other fields in the bitstream.

개시된 방법 및 기술은 본 문서에 개시된 기술의 사용을 허용함으로써 스마트폰, 랩탑, 데스크탑, 및 유사한 장치와 같은 비디오 프로세싱 장치 내에 통합된 비디오 인코더 및/또는 디코더 실시예에 도움이 될 것이라는 것이 이해될 것이다.It will be appreciated that the disclosed methods and techniques will benefit video encoder and/or decoder embodiments integrated within video processing devices, such as smartphones, laptops, desktops, and similar devices, by allowing use of the techniques disclosed herein. .

도 6은 비디오 처리의 예시적인 방법(600)에 대한 흐름도이다. 방법(600)은, 610에서, 현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안 레퍼런스 픽처의 해상도 및/또는 크기가 현재 비디오 블록의 해상도 및/또는 크기와 다른 경우, 현재 비디오 블록을 사용하여 예측된 인접하거나 인접하지 않은 샘플 그룹에 동일한 보간 필터가 적용된다. 6 is a flowchart of an exemplary method 600 of video processing. The method 600 includes, at 610 , performing a transform between a current video block and a coded representation of the current video block, wherein the resolution and/or size of the reference picture during the transform is determined by the resolution and/or size of the current video block. If different from size, the same interpolation filter is applied to adjacent or non-adjacent sample groups predicted using the current video block.

다양한 기술 및 실시예는 다음 절-기반의 포맷을 사용하여 설명될 수 있다.Various techniques and embodiments may be described using the following clause-based format.

1. 비디오 처리 방법에 있어서, One. A video processing method comprising:

현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안 레퍼런스 픽처의 해상도 및/또는 크기가 현재 비디오 블록의 해상도 및/또는 크기와 다른 경우, 현재 비디오 블록을 사용하여 예측된 인접하거나 인접하지 않은 샘플 그룹에 동일한 보간 필터가 적용된다. performing a transform between the current video block and a coded representation of the current video block, wherein if the resolution and/or size of the reference picture is different from the resolution and/or size of the current video block during transformation, converting the current video block The same interpolation filter is applied to groups of adjacent or non-adjacent samples predicted using

2. 제1절의 방법에서, 동일한 보간 필터는 수직 보간 필터이다.2. In the method of Section 1, the same interpolation filter is a vertical interpolation filter.

3. 제1절의 방법에서, 동일한 보간 필터는 수평 보간 필터이다.3. In the method of Section 1, the same interpolation filter is a horizontal interpolation filter.

4. 제1절의 방법에서, 인접하거나 인접하지 않은 샘플의 그룹은 현재 비디오 블록의 영역에 위치한 모든 샘플들을 포함한다.4. In the method of clause 1, the group of adjacent or non-adjacent samples includes all samples located in the region of the current video block.

5. 제4절의 방법에서, 현재 비디오 블록은 각각 크기가 MXN인 다수의 직사각형으로 분할된다. 5. In the method of Section 4, the current video block is divided into a number of rectangles each of size MXN.

6. 제5절의 방법에서, M 및/또는 N은 미리 결정된다.6. In the method of clause 5, M and/or N are predetermined.

7. 제5절의 방법에서, M 및/또는 N은 현재 비디오 블록의 차원으로부터 유도된다.7. In the method of clause 5, M and/or N are derived from the dimension of the current video block.

8. 제5절의 방법에서, M 및/또는 N은 현재 비디오 블록의 코딩된 표현에서 시그널링된다.8. In the method of clause 5, M and/or N are signaled in the coded representation of the current video block.

9. 제1절의 방법에서, 샘플의 그룹은 동일한 모션 벡터를 공유한다.9. In the method of clause 1, a group of samples share the same motion vector.

10. 제9절의 방법에서, 샘플의 그룹은 동일한 수평 컴포넌트 및/또는 수평 컴포넌트의 동일한 소수 부분을 공유한다.10. In the method of clause 9, groups of samples share the same horizontal component and/or the same fractional portion of the horizontal component.

11. 제9절의 방법에서, 샘플의 그룹은 동일한 수직 컴포넌트 및/또는 수직 컴포넌트의 동일한 분수 부분을 공유한다.11. In the method of clause 9, the groups of samples share the same vertical component and/or the same fractional portion of the vertical component.

12. 제9항 내지 제11항 중 하나 이상의 방법에서, 동일한 모션 벡터 또는 그의 컴포넌트는: 레퍼런스 픽처의 해상도, 레퍼런스 픽처의 크기, 현재 비디오 블록, 현재 비디오 블록의 크기 또는 정밀도 값 중 적어도 하나에 기초하여 하나 이상의 규칙을 충족한다.12. 12. The method of one or more of claims 9 to 11, wherein the same motion vector or component thereof is selected based on at least one of: a resolution of a reference picture, a size of a reference picture, a current video block, a size of the current video block, or a precision value. meet the above rules.

13. 제9절 내지 제11절 중 하나 이상의 방법에서, 동일한 모션 벡터 또는 그의 컴포넌트는 현재 비디오 블록에 위치된 샘플의 모션 정보에 대응한다.13. The method of one or more of clauses 9 to 11, wherein the same motion vector or component thereof corresponds to motion information of a sample located in the current video block.

14. 제9절 내지 제11절 중 하나 이상의 방법에서, 동일한 모션 벡터 또는 그 컴포넌트가 그룹 내부 또는 외부에 위치한 가상 샘플의 모션 정보로 설정된다.14. In the method of one or more of clauses 9 to 11, the same motion vector or a component thereof is set as motion information of a virtual sample located inside or outside the group.

15. 비디오 처리 방법에 있어서,15. A video processing method comprising:

현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 레퍼런스 픽처의 해상도 및/또는 크기가 현재 비디오 블록의 해상도 및/또는 크기와 다른 경우, 여기서 현재 비디오 블록을 사용하여 예측된 블록은 현재 블록과 관련된 정수 값 모션 정보만 사용하도록 허용된다. performing a transform between a current video block and a coded representation of the current video block, wherein, during transform, a resolution and/or size of a reference picture is different from a resolution and/or size of the current video block, wherein the current video A block predicted using a block is allowed to use only integer-valued motion information associated with the current block.

16. 제15절의 방법에서, 정수 값 모션 정보는 현재 비디오 블록의 원래 모션 정보를 반올림함으로써 유도된다.16. In the method of clause 15, integer-valued motion information is derived by rounding up the original motion information of the current video block.

17. 제15절의 방법에서, 현재 비디오 블록의 원래 모션 정보는 수평 방향 및/또는 수직 방향에 있다.17. In the method of clause 15, the original motion information of the current video block is in the horizontal direction and/or the vertical direction.

18. 비디오 처리 방법에 있어서,18. A video processing method comprising:

현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 레퍼런스 픽처의 해상도 및/또는 크기가 현재 비디오 블록의 해상도 및/또는 크기와 다른 경우, 현재 비디오 블록을 사용하여 예측된 블록을 유도하기 위해 보간 필터가 적용되고, 보간 필터는 규칙에 기초하여 선택된다. performing a transform between a current video block and a coded representation of the current video block, wherein, during transform, if a resolution and/or size of a reference picture is different from a resolution and/or size of the current video block, the current video block An interpolation filter is applied to derive a predicted block using

19. 제18절의 방법에서, 규칙이 현재 비디오 블록의 해상도 및/또는 크기에 상대적인 레퍼런스 픽처의 크기 및/또는 해상도와 관련된 것인지 여부이다.19. In the method of clause 18, whether the rule relates to the size and/or resolution of the reference picture relative to the resolution and/or size of the current video block.

20. 제18절의 방법에서, 보간 필터는 수직 보간 필터이다.20. In the method of clause 18, the interpolation filter is a vertical interpolation filter.

21. 제18절의 방법에서, 보간 필터는 수평 보간 필터이다.21. In the method of clause 18, the interpolation filter is a horizontal interpolation filter.

22. 제18절의 방법에서, 보간 필터는 1-탭 필터, 쌍선형 필터, 4-탭 필터, 또는 6-탭 필터 중 하나이다.22. In the method of clause 18, the interpolation filter is one of a 1-tap filter, a bilinear filter, a 4-tap filter, or a 6-tap filter.

23. 제22절의 방법에서, 보간 필터는 변환의 다른 단계의 일부로서 사용된다.23. In the method of section 22, an interpolation filter is used as part of the other steps of the transform.

24. 제18절의 방법에서, 상기 보간 필터는 패딩 샘플(padding sample)의 사용을 포함한다.24. The method of clause 18, wherein the interpolation filter comprises the use of padding samples.

25. 제18절의 방법에서, 보간 필터의 사용은 현재 비디오 블록의 샘플의 컬러 컴포넌트에 의존한다.25. In the method of clause 18, the use of the interpolation filter depends on the color component of a sample of the current video block.

26. 비디오 처리 방법에 있어서,26. A video processing method comprising:

현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 변환 동안, 레퍼런스 픽처의 해상도 및/또는 크기가 현재 비디오 블록의 해상도 및/또는 크기와 다른 경우, 선택적으로 디블로킹 필터를 적용하고, 디블록킹 필터의 강도는 현재 비디오 블록의 해상도 및/또는 크기에 상대적인 레퍼런스 픽처의 크기 및/또는 해상도와 관련된 규칙에 따라 설정된다. performing transformation between the current video block and the coded representation of the current video block, wherein during transformation, if the resolution and/or size of the reference picture is different from the resolution and/or size of the current video block, The blocking filter is applied, and the strength of the deblocking filter is set according to a rule related to the size and/or resolution of the reference picture relative to the resolution and/or size of the current video block.

27. 제27절의 방법에서, 디블로킹 필터의 강도는 비디오 블록마다 변한다.27. In the method of clause 27, the strength of the deblocking filter varies from video block to video block.

28. 비디오 처리 방법에 있어서,28. A video processing method comprising:

현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계로서, 변환 동안, 현재 비디오 블록의 서브 픽처가 존재하는 경우, 적합성 비트스트림은 현재 비디오 블록의 해상도 및/또는 크기에 대한 레퍼런스 픽처의 해상도 및/또는 크기와 관련된 규칙을 충족한다. performing a transform between a current video block and a coded representation of the current video block, wherein, during the transform, if a subpicture of the current video block exists, the conformance bitstream is a reference to the resolution and/or size of the current video block It satisfies the rules related to the resolution and/or size of the picture.

29. 제28절의 방법에서,29. In the method of section 28,

현재 비디오 블록을 하나 이상의 서브픽처로 분할하는 단계를 포함하고, 분할은 적어도 현재 비디오 블록의 해상도에 의존한다. partitioning the current video block into one or more subpictures, wherein the partitioning depends at least on a resolution of the current video block.

30. 비디오 처리 방법에 있어서,30. A video processing method comprising:

현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 현재 비디오 블록의 레퍼런스 픽처는 현재 비디오 블록의 차원에 기초한 규칙에 따라 리샘플링된다. . performing a transform between the current video block and a coded representation of the current video block, wherein during the transform, a reference picture of the current video block is resampled according to a rule based on a dimension of the current video block. .

31. 비디오 처리 방법에 있어서,31. A video processing method comprising:

현재 비디오 블록과 현재 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 현재 비디오 블록에 대한 코딩 툴의 사용은 현재 비디오 블록의 해상도/크기에 대한 현재 비디오 블록의 레퍼런스 픽처의 해상도/크기에 따라 선택적으로 활성화 또는 비활성화된다. performing a transform between the current video block and a coded representation of the current video block, wherein during the transform, use of a coding tool for the current video block is a reference of the current video block to a resolution/size of the current video block. It is selectively activated or deactivated according to the resolution/size of the picture.

32. 이전 절중 어느 하나 또는 그 이상의 방법에서, 샘플의 그룹은 적합성 윈도우에 위치된다.32. In the method of any one or more of the preceding clauses, the group of samples is placed in a fit window.

33. 제32절의 방법에서, 적합성 윈도우는 모양이 직사각형이다.33. The method of clause 32, wherein the conformance window is rectangular in shape.

34. 이전 절중 어느 하나 또는 그 이상의 방법에서, 해상도는 코딩/디코딩된 비디오 블록의 해상도 또는 코딩/디코딩된 비디오 블록의 적합성 윈도우의 해상도에 관한 것이다.34. The method of any one or more of the preceding clauses, wherein the resolution relates to a resolution of a coded/decoded video block or a resolution of a conformance window of a coded/decoded video block.

35. 이전 절중 어느 하나 또는 그 이상의 방법에서, 크기는 코딩된/디코딩된 비디오 블록의 크기 또는 코딩된/디코딩된 비디오 블록에서 적합성 윈도우의 크기에 속관한 것이다.35. In the method of any one or more of the preceding clauses, the size pertains to the size of the coded/decoded video block or the size of the conformance window in the coded/decoded video block.

36. 이전 절중 어느 하나 또는 그 이상의 방법에서, 차원(dimension)dms 코딩된/디코딩된 비디오 블록의 차원 또는 코딩된/디코딩된 비디오 블록의 적합성 윈도우의 차원에 관한 것이다.36. The method of any one or more of the preceding clauses, wherein dimension dms relates to a dimension of a coded/decoded video block or a dimension of a conformance window of a coded/decoded video block.

37. 제32절의 방법에서, 적합성 윈도우는 적합성 크로핑 윈도우 파라미터들의 세트에 의해 정의된다.37. In the method of clause 32, the conformance window is defined by a set of conformance cropping window parameters.

38. 제37절의 방법에서, 적합성 크로핑 윈도우 파라미터들의 세트의 적어도 일부는 코딩된 표현에서 암시적으로 또는 명시적으로 시그널링된다.38. The method of clause 37, wherein at least a portion of the set of conformance cropping window parameters is signaled implicitly or explicitly in the coded representation.

39. 이전 절중 어느 하나 또는 그 이상의 방법에서, 적합성 크로핑 윈도우 파라미터의 세트가 코딩된 표현에서 시그널링되는 것이 허용되지 않는다.39. In the method of any one or more of the preceding clauses, the set of conformance cropping window parameters is not allowed to be signaled in the coded representation.

40. 이전 절중 어느 하나 또는 그 이상의 방법에서, 레퍼런스 샘플의 위치는 적합성 윈도우에서 현재 비디오 블록의 왼쪽 상단 샘플에 대해 유도된다.40. In the method of any one or more of the preceding clauses, the position of the reference sample is derived with respect to the top left sample of the current video block in the conformance window.

41. 비디오 처리 방법에 있어서,41. A video processing method comprising:

다중 비디오 블록과 다중 비디오 블록의 코딩된 표현 사이의 변환을 수행하는 단계를 포함하고, 여기서 변환 동안, 제1 비디오 블록에 대한 제1 적합성 윈도우(first conformance window) 및 제2 비디오 블록에 대한 제2 적합성 윈도우(second conformance window)가 정의되고, 제2 적합성 윈도우에 대한 제1 적합성 윈도우의 폭 및/또는 높이의 비는 적어도 일치 비트스트림에 기초한 규칙에 따른다. performing a transform between the multiple video blocks and the coded representation of the multiple video blocks, wherein during transform, a first conformance window for a first video block and a second for a second video block A second conformance window is defined, and the ratio of the width and/or height of the first conformance window to the second conformance window obeys at least a rule based on the conformance bitstream.

42. 제1절 내지 제41절 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 디코딩 장치. 42. A video decoding apparatus comprising a processor configured to implement the method recited in one or more of clauses 1-41.

43. 제1절 내지 제41절 중 하나 이상에 인용된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 인코딩 장치.43. A video encoding apparatus comprising a processor configured to implement the method recited in one or more of clauses 1-41.

44. 컴퓨터 코드가 저장되어 있는 컴퓨터 프로그램에 있어서, 상기 코드는, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1절 내지 제41절 중 어느 한 항에서 인용된 방법을 구현하게 하는 컴퓨터프로그램.44. A computer program having computer code stored therein, wherein the code, when executed by a processor, causes the processor to implement the method recited in any one of clauses 1-41.

45. 본 문서에 기술된 방법, 장치 및 시스템.45. Methods, devices and systems described herein.

도 9는 여기에 개시된 다양한 기술들이 구현될 수 있는 예시적인 비디오 처리 시스템(900)을 도시하는 블록도이다. 다양한 구현은 시스템(900)의 컴포넌트 중 일부 또는 전부를 포함할 수 있다. 시스템(900)은 비디오 콘텐츠를 수신하기 위한 입력(902)을 포함할 수 있다. 비디오 콘텐츠는 원시 또는 압축되지 않은 포맷, 예를 들어, 8 또는 10비트 다중 컴포넌트 픽셀 값으로 수신될 수 있거나 압축 또는 인코딩된 포맷일 수 있다. 입력(902)은 네트워크 인터페이스, 주변 버스 인터페이스, 또는 저장 인터페이스를 나타낼 수 있다. 네트워크 인터페이스의 예로는 이더넷, 수동 광 네트워크(PON) 등과 같은 유선 인터페이스와 Wi-Fi 또는 셀룰러 인터페이스와 같은 무선 인터페이스가 있다. 9 is a block diagram illustrating an example video processing system 900 in which the various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 900 . System 900 can include an input 902 for receiving video content. The video content may be received in raw or uncompressed format, eg, 8 or 10-bit multi-component pixel values, or may be in a compressed or encoded format. Input 902 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, Passive Optical Network (PON), and the like, and wireless interfaces such as Wi-Fi or cellular interfaces.

시스템(900)은 본 문서에 설명된 다양한 코딩 또는 인코딩 방법을 구현할 수 있는 코딩 컴포넌트(904)를 포함할 수 있다. 코딩 컴포넌트(904)는 비디오의 코딩된 표현을 생성하기 위해 입력(702)으로부터 코딩 컴포넌트(904)의 출력으로 비디오의 평균 비트레이트를 줄일 수 있다. 따라서 코딩 기술은 비디오 압축 또는 비디오 트랜스코딩 기술이라고도 한다. 코딩 컴포넌트(904)의 출력은 컴포넌트(906)에 의해 표현되는 바와 같이, 연결된 통신을 통해 저장되거나 전송될 수 있다. 입력(902)에서 수신된 비디오의 저장 또는 통신된 비트스트림(또는 코딩된) 표현은 디스플레이 인터페이스(910)로 전송되는 픽셀 값 또는 디스플레이 가능한 비디오를 생성하기 위해 컴포넌트(908)에 의해 사용될 수 있다. 비트스트림 표현에서 사용자가 볼 수 있는 비디오를 생성하는 프로세스를 비디오 압축 해제(decompression)라고도 한다. 또한, 특정 비디오 처리 작업을 "코딩" 작업(coding operation) 또는 툴(tools)로 지칭하지만, 코딩 툴 또는 작업이 인코더에서 사용되고 코딩 결과를 되돌리는 대응하는 디코딩 툴 또는 작업이 디코더에 의해 수행된다는 점을 이해할 것이다. System 900 can include a coding component 904 that can implement the various coding or encoding methods described herein. Coding component 904 can reduce an average bitrate of the video from an input 702 to an output of the coding component 904 to produce a coded representation of the video. Therefore, the coding technique is also called video compression or video transcoding technique. The output of the coding component 904 may be stored or transmitted over coupled communications, as represented by the component 906 . The stored or communicated bitstream (or coded) representation of video received at input 902 may be used by component 908 to generate displayable video or pixel values that are sent to display interface 910 . The process of creating user-viewable video from a bitstream representation is also known as video decompression. Also, although certain video processing operations are referred to as “coding” operations or tools, the coding tools or operations are used at the encoder and the corresponding decoding tools or operations that return the coding results are performed by the decoder. will understand

주변 버스 인터페이스 또는 디스플레이 인터페이스의 예로는 범용 직렬 버스(USB) 또는 고화질 멀티미디어 인터페이스(HDMI) 또는 디스플레이포트 등이 포함될 수 있다. 스토리지 인터페이스의 예로는 SATA(직렬 첨단 기술 첨부 파일), PCI, IDE 인터페이스 등이 있다. 본 문서에 기재된 기술은 휴대전화, 노트북, 스마트폰 또는 디지털 데이터 처리 및/또는 비디오 디스플레이를 수행할 수 있는 기타 장치와 같은 다양한 전자 기기에 구현될 수 있다. Examples of the peripheral bus interface or the display interface may include a universal serial bus (USB) or a high-definition multimedia interface (HDMI), a display port, or the like. Examples of storage interfaces include Serial Advanced Technology Attachment (SATA), PCI, and IDE interfaces. The techniques described herein may be implemented in a variety of electronic devices, such as cell phones, notebook computers, smart phones, or other devices capable of digital data processing and/or video display.

도 10은 본 개시의 기술을 활용할 수 있는 예제 비디오 코딩 시스템(100)을 예시하는 블록도이다. 10 is a block diagram illustrating an example video coding system 100 that may utilize techniques of this disclosure.

도 10에 도시된 바와 같이, 비디오 코딩 시스템(100)은 소스 장치(source device)(110)와 목적 장치(destination device)(120)를 포함할 수 있다. 소스 장치(110)는 인코딩된 비디오 데이터를 생성하고, 이는 비디오 인코딩 장치로 참조될 수 있다. 목적 장치(120)는 소스 장치(110)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 이는 비디오 디코딩 장치로 참조될 수 있다. As shown in FIG. 10 , the video coding system 100 may include a source device 110 and a destination device 120 . The source device 110 generates encoded video data, which may be referred to as a video encoding device. The destination device 120 may decode the encoded video data generated by the source device 110 , which may be referred to as a video decoding device.

소스 장치(110)에는 비디오 소스(112), 비디오 인코더(114) 및 입력/출력(I/O) 인터페이스(116)가 포함될 수 있다. The source device 110 may include a video source 112 , a video encoder 114 , and an input/output (I/O) interface 116 .

비디오 소스(112)에는 비디오 캡처 장치, 비디오 컴텐츠 공급자로부터 비디오 데이터를 수신하는 인터페이스, 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템 또는 이러한 소스의 조합을 포함할 수 있다. 상기 비디오 데이터는 하나 이상의 픽처를 포함할 수 있다. 비디오 인코더(114)는 비디오 소스(112)의 비디오 데이터를 인코딩하여 비트스트림을 생성한다. 비트스트림에는 비디오 데이터의 코딩된 표현을 형성하는 비트들의 시퀀스가 포함될 수 있다. 비트스트림에는 코딩된 픽처 및 관련 데이터가 포함될 수 있다. 코딩된 픽처는 픽처의 코딩된 표현(representation)이다. 관련 데이터에는 시퀀스 파라미터 세트, 픽처 파라미터 세트 및 기타 신택스 구조가 포함될 수 있다. I/O 인터페이스(116)는 변조기/복조기(모뎀) 및/또는 송신기(transmitter)를 포함할 수 있다. 인코딩된 비디오 데이터는 네트워크(130a)를 거쳐, I/O 인터페이스(116)를 통해 목적 장치(120)로 직접 전송될 수 있다. 인코딩된 비디오 데이터는 목적 장치(120)에 의한 액세스를 위해 저장 매체/서버(130b)에 저장될 수도 있다.The video source 112 may include a video capture device, an interface to receive video data from a video content provider, a computer graphics system for generating the video data, or a combination of these sources. The video data may include one or more pictures. The video encoder 114 encodes the video data of the video source 112 to generate a bitstream. A bitstream may contain a sequence of bits that form a coded representation of video data. The bitstream may include coded pictures and related data. A coded picture is a coded representation of the picture. Related data may include sequence parameter sets, picture parameter sets, and other syntax structures. The I/O interface 116 may include a modulator/demodulator (modem) and/or a transmitter. The encoded video data may be transmitted directly to the destination device 120 via the I/O interface 116 over the network 130a. The encoded video data may be stored in the storage medium/server 130b for access by the destination device 120 .

목적 장치(120)는 I/O 인터페이스(126), 비디오 디코더(124) 및 디스플레이 장치(122)를 포함할 수 있다.The destination device 120 may include an I/O interface 126 , a video decoder 124 , and a display device 122 .

I/O 인터페이스(126)는 수신기 및/또는 모뎀을 포함할 수 있다. I/O 인터페이스(126)는 소스 장치(110) 또는 저장 매체/서버(130b)로부터 인코딩된 비디오 데이터를 획득할 수 있다. 비디오 디코더(124)는 인코딩된 비디오 데이터를 디코딩할 수 있다. 디스플레이 장치(122)는 디코딩된 비디오 데이터를 사용자에게 디스플레이 할 수 있다. 디스플레이 장치(122)는 목적 장치(120)와 통합될 수 있거나, 외부 디스플레이 장치와 인터페이스 하도록 구성된 목적 장치(120)의 외부에 위치할 수 있다. I/O interface 126 may include a receiver and/or a modem. I/O interface 126 may obtain encoded video data from source device 110 or storage medium/server 130b. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to the user. The display device 122 may be integrated with the target device 120 or may be located outside the target device 120 configured to interface with an external display device.

비디오 인코더(114) 및 비디오 디코더(124)는 고효율 비디오 코딩(HEVC) 표준, 다목적 비디오 코딩(VVC) 표준 및 기타 현재 및/또는 추가 표준과 같은 비디오 압축 표준에 따라 동작할 수 있다. Video encoder 114 and video decoder 124 may operate according to video compression standards, such as high efficiency video coding (HEVC) standards, general purpose video coding (VVC) standards, and other current and/or additional standards.

도 11은 도 10에 예시된 시스템(100)의 비디오 인코더(114)일 수 있는 비디오 인코더(200)의 예를 예시하는 블록도이다. 10. 11 is a block diagram illustrating an example of a video encoder 200 , which may be the video encoder 114 of the system 100 illustrated in FIG. 10 . 10.

비디오 인코더(200)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 9의 예에서, 비디오 인코더(200)는 복수의 기능 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 인코더(200)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.The video encoder 200 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 9 , video encoder 200 includes a plurality of functional components. The techniques described in this disclosure may be shared among various components of the video encoder 200 . In some examples, a processor may be configured to perform any or all described in this disclosure.

비디오 인코더(video encoder)(200)의 기능 컴포넌트는 파티션 유닛(partition unit)(201)와, 모드 선택 유닛(mode select unit)(203), 모션 추정 유닛(motion estimation unit)(204), 모션 보상 유닛(motion compensation unit)(205) 및 인트라 예측 유닛(intra prediction unit)(206)을 포함할 수 있는 예측 유닛(predication unit)(202)과, 잔차 생생 유닛(residual generation unit)(207), 트랜스폼 유닛(transform unit)(208), 양자화 유닛(quantization unit)(209), 역양자화 유닛(inverse quantization unit)(210), 역트랜스폼 유닛(inverse transform unit)(211), 재구성 유닛(reconstruction unit)(212), 버퍼(buffer)(213), 및 엔트로피 인코딩 유닛(entropy encoding unit)(214)를 포함할 수 있다.The functional components of the video encoder 200 include a partition unit 201 , a mode select unit 203 , a motion estimation unit 204 , and motion compensation. A prediction unit 202 , which may include a motion compensation unit 205 and an intra prediction unit 206 , and a residual generation unit 207 , a trans A transform unit 208 , a quantization unit 209 , an inverse quantization unit 210 , an inverse transform unit 211 , a reconstruction unit ) 212 , a buffer 213 , and an entropy encoding unit 214 .

다른 예에서, 비디오 인코더(200)에는 더 많거나, 적거나, 다른 기능 컴포넌트가 포함될 수 있다. 하나의 예에서, 예측 유닛(202)는 인트라 블록 카피(IBC) 유닛을 포함할 수 있다. IBC 유닛은 IBC 모드에서 적어도 하나의 레퍼런스 픽처가 현재 비디오 블록이 있는 픽처인 경우 의 예측을 수행할 수 있다.In other examples, video encoder 200 may include more, fewer, or other functional components. In one example, the prediction unit 202 may include an intra block copy (IBC) unit. The IBC unit may perform prediction when at least one reference picture is a picture having a current video block in the IBC mode.

더욱이, 모션 추정 유닛(204) 및 모션 보정 유닛(205)과 같은 일부 컴포넌트는 고집적될 수 있으나, 도 5의 예에서는 설명의 목적을 위해 분리된 것으로 표현되었다. Moreover, some components, such as the motion estimation unit 204 and the motion compensation unit 205 , may be highly integrated, but are represented in the example of FIG. 5 as separate for illustrative purposes.

파티션 유닛(Partition unit)(201)은 픽처를 하나 이상의 비디오 블록으로 파티셔닝할 수 있다. 비디오 인코더(200) 및 비디오 디코더(300)는 다양한 비디오 블록 크기를 지원할 수 있다.The partition unit 201 may partition a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support various video block sizes.

모드 선택 유닛(203)는 오류 결과에 기초하여 코딩 모드, 예를 들면, 인트라 또는 인터 등을 선택하고, 결과인 인트라 또는 인터 코딩된 블록을, 잔차 생성 유닛(207)에 제공하여 잔차 블록 데이터를 생성하고, 재구성 유닛(212)으로 제공하여 레퍼런스 픽처로 사용하기 위한 인커딩된 블록을 재구성한다. 일부 예에서, 모드 선택 유닛(203)는 인트라 및 인터 예측(CIIP) 모드의 조합을 선택할 수 있고, 이 모드에서 예측은 인터 예측 시그널 및 인트라 예측 시그널에 기초한다. 모드 선택 유닛(203)는 또한, 인터 예측의 경우 블록에 대한 모션 벡터의 해상도(예를 들어, 서브 픽셀 또는 정수 픽셀 정밀도)를 선택할 수 있다. The mode selection unit 203 selects a coding mode, for example, intra or inter, etc. based on the error result, and provides the result intra or inter coded block to the residual generating unit 207 to provide residual block data generated and provided to the reconstruction unit 212 to reconstruct an encoded block for use as a reference picture. In some examples, the mode selection unit 203 may select a combination of intra and inter prediction (CIIP) modes, in which the prediction is based on the inter prediction signal and the intra prediction signal. The mode selection unit 203 may also select the resolution (eg, sub-pixel or integer pixel precision) of the motion vector for the block in case of inter prediction.

현재 비디오 블록에서 인터 예측을 수행하기 위해, 모션 추정 유닛(204)은 버퍼(213)에서 현재 비디오 블록에 하나 이상의 레퍼런스 프레임을 비교하여 현재 비디오 블록에 대한 모션 정보를 생성할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록과 연관된 픽처 이외의 버퍼(213)로부터의 모션 정보 및 디코딩된 픽처 샘플에 기초하여 현재 비디오 블록에 대한 예측 비디오 블록을 결정할 수 있다. To perform inter prediction on the current video block, the motion estimation unit 204 may compare one or more reference frames to the current video block in the buffer 213 to generate motion information for the current video block. The motion compensation unit 205 may determine the predictive video block for the current video block based on the decoded picture samples and motion information from the buffer 213 other than the picture associated with the current video block.

모션 추정 유닛(204) 및 모션 보상 유닛(205)은 현재 비디오 블록이 I 슬라이스, P 슬라이스 또는 B 슬라이스에 있는지 여부에 따라 현재 비디오 블록에 대해 서로 다른 작업을 수행할 수 있다. The motion estimation unit 204 and the motion compensation unit 205 may perform different operations on the current video block depending on whether the current video block is in an I slice, a P slice, or a B slice.

일부 예에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 유니-디렉셔널(uni-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 목록 0 또는 목록 1의 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)은 현재 비디오 블록과 레퍼런스 비디오 블록 사이의 공간 변위(spatial displacement)를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 또는 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)은 레퍼런스 인덱스, 예측 디렉션 표시기 및 모션 벡터를 현재 비디오 블록의 모션 정보로 출력할 수 있다. 모션 보상 유닛(205)은 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 블록의 예측된 비디오 블록을 생성할 수 있다.In some examples, motion estimation unit 204 may perform uni-directional prediction for a current video block, and motion estimation unit 204 may list a reference video block for the current video block. You can search for a reference picture of 0 or List 1. Then, the motion estimation unit 204 generates a reference index indicating the reference picture in list 0 or list 1 including the motion vector and the reference video block indicating the spatial displacement between the current video block and the reference video block. can do. The motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as motion information of the current video block. The motion compensation unit 205 may generate the predicted video block of the current block based on the reference video block indicated by the motion information of the current video block.

다른 예에서, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 바이-디렉셔널(bi-directional) 예측을 수행할 수 있고, 모션 추정 유닛(204)은 현재 비디오 블록에 대한 레퍼런스 비디오 블록에 대한 목록 0에서 레퍼런스 픽처를 검색할 수 있으며, 또한 현재 비디오 블록에 대한 다른 레퍼런스 비디오 블록에 대한 목록 1에서 레퍼런스 픽처를 검색할 수 있다. 그런 다음, 모션 추정 유닛(204)은 레퍼런스 비디오 블록과 현재 비디오 블록 사이의 공간 변위를 나타내는 레퍼런스 비디오 블록 및 모션 벡터를 포함하는 목록 0 및 목록 1에서 레퍼런스 픽처를 나타내는 레퍼런스 인덱스를 생성할 수 있다. 모션 추정 유닛(204)은 현재 비디오 블록의 모션 정보로서 현재 비디오 블록의 레퍼런스 인덱스 및 모션 벡터를 출력할 수 있다. 모션 보정 유닛(205)은 현재 비디오 블록의 동작 정보에 의해 표시된 레퍼런스 비디오 블록에 기초하여 현재 비디오 블록의 예측 비디오 블록을 생성할 수 있다.In another example, the motion estimation unit 204 may perform bi-directional prediction on the current video block, and the motion estimation unit 204 lists a reference video block for the current video block. You can search for a reference picture in 0, and also search for a reference picture in list 1 for another reference video block for the current video block. Then, the motion estimation unit 204 may generate a reference index indicating the reference picture in list 0 and list 1 including the motion vector and the reference video block indicating the spatial displacement between the reference video block and the current video block. The motion estimation unit 204 may output a reference index and a motion vector of the current video block as motion information of the current video block. The motion compensation unit 205 may generate the predictive video block of the current video block based on the reference video block indicated by the motion information of the current video block.

일부 예에서, 모션 추정 유닛(204)은 디코더의 디코딩 처리를 위한 전체 모션 정보 세트를 출력할 수 있다.In some examples, the motion estimation unit 204 may output the entire set of motion information for decoding processing of the decoder.

일부 예에서, 모션 추정 유닛(204)은 현재 비디오에 대한 전체 모션 정보 세트를 출력하지 않을 수 있다. 오히려, 모션 추정 유닛(204)은 다른 비디오 블록의 동작 정보를 참조하여 현재 비디오 블록의 모션 정보를 시그널링할 수 있다. 예를 들어, 모션 추정 유닛(motion estimation unit)(204)은 현재 비디오 블록의 모션 정보가 이웃 비디오 블록의 동작 정보와 충분히 유사하다고 결정할 수 있다.In some examples, motion estimation unit 204 may not output the entire set of motion information for the current video. Rather, the motion estimation unit 204 may signal the motion information of the current video block with reference to the motion information of another video block. For example, the motion estimation unit 204 may determine that motion information of a current video block is sufficiently similar to motion information of a neighboring video block.

하나의 예에서, 모션 추정 유닛(204)은 현재 비디오 블록과 연결된 신택스 구조에서 현재 비디오 블록이 다른 비디오 블록과 동일한 모션 정보를 가지고 있음을 비디오 디코더(300)에 나타내는 값을 나타낼 수 있다.In one example, the motion estimation unit 204 may indicate a value indicating to the video decoder 300 that the current video block has the same motion information as other video blocks in a syntax structure associated with the current video block.

또 다른 예에서, 모션 추정 유닛(204)은 현재 비디오 블록과 연관된 신택스 구조에서, 다른 비디오 블록 및 모션 벡터 차이(MVD)를 식별할 수 있다. 모션 벡터 차이는 현재 비디오 블록의 모션 벡터와 표시된 비디오 블록의 모션 벡터 사이의 차이를 나타낸다. 비디오 디코더(300)는 현재 비디오 블록의 모션 벡터를 결정하기 위해 표시된 비디오 블록의 모션 벡터 및 모션 벡터 차이를 사용할 수 있다. In another example, motion estimation unit 204 can identify, in a syntax structure associated with the current video block, another video block and a motion vector difference (MVD). The motion vector difference represents the difference between the motion vector of the current video block and the motion vector of the displayed video block. The video decoder 300 may use the motion vector and motion vector difference of the indicated video block to determine the motion vector of the current video block.

위에서 설명한 바와 같이, 비디오 인코더(200)는 모션 벡터를 예측적으로 시그널링할 수 있다. 비디오 인코더(200)에 의해 구현될 수 있는 예측 시그널링 기술의 두 가지 예는, 어드밴스드 모션 벡터 예측(AMVP) 및 병합 모드 시그널링을 포함한다. As described above, video encoder 200 can predictively signal motion vectors. Two examples of prediction signaling techniques that may be implemented by video encoder 200 include advanced motion vector prediction (AMVP) and merge mode signaling.

인트라 예측 유닛(206)은 현재 비디오 블록에 대한 인트라 예측을 수행할 수 있다. 인트라 예측 유닛(206)이 현재 비디오 블록에 대한 인트라 예측을 수행하는 경우, 인트라 예측 유닛(206)는 동일 픽처에서 다른 비디오 블록의 디코딩된 샘플에 기초하여 현재 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 현재 비디오 블록에 대한 예측 데이터에는 예측된 비디오 블록 및 다양한 신택스 요소가 포함될 수 있다. The intra prediction unit 206 may perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 may generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. have. The prediction data for the current video block may include the predicted video block and various syntax elements.

잔차 생성 유닛(207)는 현재 비디오 블록으로부터 예측된 비디오 블록의 예측 비디오 블록(예를 들어, 마이너스 기호로 표시)을 빼서 현재 비디오 블록에 대한 잔차 데이터를 생성할 수 있다. 현재 비디오 블록의 잔차 데이터는 현재 비디오 블록에서 샘플의 상이한 샘플 컴포넌트에 대응하는 잔차 비디오 블록을 포함할 수 있다.The residual generating unit 207 may generate residual data for the current video block by subtracting a predictive video block (eg, indicated by a minus sign) of the predicted video block from the current video block. The residual data of the current video block may include residual video blocks corresponding to different sample components of a sample in the current video block.

다른 예에서, 현재 비디오 블록에 대한 현재 비디오 블록에 대한 잔차 데이터가 없을 수 있고, 예를 들어 스킵(skip) 모드에서, 잔차 생성 유닛(207)는 빼기 동작을 수행하지 않을 수 있다.In another example, there may be no residual data for the current video block for the current video block, eg, in a skip mode, the residual generating unit 207 may not perform a subtraction operation.

트랜스폼 처리 유닛(208)은 현재 비디오 블록과 연결된 잔차 비디오 블록에 하나 이상의 트랜스폼을 적용하여 현재 비디오 블록에 대해 하나 이상의 트랜스폼 계수 비디오 블록을 생성할 수 있다.The transform processing unit 208 may apply one or more transforms to the residual video block associated with the current video block to generate one or more transform coefficient video blocks for the current video block.

트랜스폼 처리 유닛(208)은 현재 비디오 블록과 관련된 트랜스폼 계수 비디오 블록을 생성한 후, 양자화 유닛(209)는 현재 비디오 블록과 연관된 하나 이상의 양자화 파라미터(QP) 값에 기초하여 현재 비디오 블록과 관련된 트랜스폼 계수 비디오 블록을 양자화할 수 있다.After the transform processing unit 208 generates a transform coefficient video block associated with the current video block, the quantization unit 209 is configured to generate a transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values associated with the current video block. A transform coefficient video block can be quantized.

역양자화 유닛(210)과 역트랜스폼부 유닛(211)는 트랜스폼 계수 비디오 블록으로부터 잔차 비디오 블록을 재구성하기 위해, 트랜스폼 계수 비디오 블록에 역양자화 유닛 및 역트랜스폼 유닛을 각각 적용할 수 있다. 재구성 유닛(212)은 예측 유닛(202)에 의해 생성된 하나 이상의 예측된 비디오 블록으로부터 대응하는 샘플에 재구성된 잔차 비디오 블록을 추가하여 버퍼(213)에 저장하기 위한 현재 블록과 연관된 재구성된 비디오 블록을 생성할 수 있다.The inverse quantization unit 210 and the inverse transform unit unit 211 may apply an inverse quantization unit and an inverse transform unit to the transform coefficient video block, respectively, to reconstruct the residual video block from the transform coefficient video block. The reconstruction unit 212 adds the reconstructed residual video block to a corresponding sample from the one or more predicted video blocks generated by the prediction unit 202 and stores the reconstructed video block associated with the current block in the buffer 213 . can create

재구성 유닛(212)이 비디오 블록을 재구성한 후, 비디오 블록에서 비디오 차단 아티팩트를 줄이기 위해 루프 필터링 동작이 수행된다. After the reconstruction unit 212 reconstructs the video block, a loop filtering operation is performed to reduce video blocking artifacts in the video block.

엔트로피 인코딩 유닛(214)은 비디오 인코더(200)의 다른 함수 컴포넌트로부터 데이터를 수신할 수 있다. 엔트로피 인코딩 유닛(214)이 데이터를 수신하는 경우, 엔트로피 인코딩 유닛(214)는 엔트로피 인코딩된 데이터를 생성하고 엔트로피 인코딩된 데이터를 포함하는 비트스트림을 출력하기 위해 하나 이상의 엔트로피 인코딩 동작을 수행할 수 있다.Entropy encoding unit 214 may receive data from another functional component of video encoder 200 . When entropy encoding unit 214 receives the data, entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream including the entropy encoded data. .

도 12는 도 10에 도시된 시스템(100)에서 비디오 디코더(114)일 수 있는 비디오 디코더(300)의 예를 도시하는 블록도이다. 12 is a block diagram illustrating an example of a video decoder 300 , which may be a video decoder 114 in the system 100 shown in FIG. 10 .

비디오 디코더(300)는 본 개시의 기술 중 어느 또는 전부를 수행하도록 구성될 수 있다. 도 10의 예에서, 비디오 디코더(300)는 복수의 함수 컴포넌트를 포함한다. 본 개시에 기재된 기술은 비디오 디코더(300)의 다양한 컴포넌트들 간에 공유될 수 있다. 일부 예에서, 프로세서는 본 개시에 기재된 임의 또는 전부를 수행하기 위해 구성될 수 있다.The video decoder 300 may be configured to perform any or all of the techniques of this disclosure. In the example of FIG. 10 , video decoder 300 includes a plurality of functional components. The techniques described in this disclosure may be shared among various components of the video decoder 300 . In some examples, a processor may be configured to perform any or all described in this disclosure.

도 10의 예에서, 비디오 디코더(video decoder)(300)는 엔트로피 디코딩 유닛(entropy decoding unit)(301), 모션 보상 유닛(motion compensation unit)(302), 인트라 예측 유닛(intra prediction unit)(303), 역양자화 유닛(inverse quantization unit)(304), 역트랜스폼 유닛(inverse transformation uni)(305), 및 재구성 유닛( 305 , and a reconstruction unit)(306) 및 버퍼(buffer)(307)를 포함한다. 비디오 디코더(300)는, 일부 예에서, 비디오 인코더(200)에 대하여 기술된 인코딩 패스(pass)와 일반적으로 서로 주고 받는(reciprocal) 디코딩 패스를 수행할 수 있다(예를 들어, 도 9). In the example of FIG. 10 , a video decoder 300 includes an entropy decoding unit 301 , a motion compensation unit 302 , and an intra prediction unit 303 . ), an inverse quantization unit 304 , an inverse transformation uni 305 , and a reconstruction unit 305 , and a reconstruction unit 306 and a buffer 307 . include Video decoder 300 may, in some examples, perform decoding passes generally reciprocal to the encoding pass described for video encoder 200 (eg, FIG. 9 ).

엔트로피 디코딩 유닛(301)은 인코딩된 비트스트림을 검색할 수 있다. 인코딩된 비트스트림에는 엔트로피 코딩된 비디오 데이터(예를 들어, 비디오 데이터의 인코딩된 블록)가 포함될 수 있다. 엔트로피 디코딩 유닛(301)는 엔트로피 코딩된 비디오 데이터를 디코딩할 수 있고, 엔트로피 디코딩된 비디오 데이터로부터 모션 보상 유닛(302)은 모션 벡터, 모션 벡터 정밀도, 레퍼런스 픽처 목록 인덱스 및 기타 모션 정보를 포함하는 모션 정보를 결정할 수 있다. 모션 보상 유닛(302)은, 예를 들어 AMVP 및 병합 모드를 수행하여 이러한 정보를 결정할 수 있다.The entropy decoding unit 301 may retrieve the encoded bitstream. The encoded bitstream may include entropy coded video data (eg, an encoded block of video data). The entropy decoding unit 301 may decode entropy coded video data, and from the entropy decoded video data, the motion compensation unit 302 provides a motion vector, motion vector precision, reference picture list index and other motion information including motion information. information can be determined. Motion compensation unit 302 may determine this information, for example, by performing AMVP and merge mode.

모션 보상 유닛(302)은 보간 필터에 기초하여 보간(interpolation)을 수행하여 모션 보정 블록을 생성할 수 있다. 서브 픽셀 정밀도와 함께 사용되는 보간 필터에 대한 식별자가 신택스 요소에 포함될 수 있다.The motion compensation unit 302 may perform interpolation based on the interpolation filter to generate a motion compensation block. An identifier for an interpolation filter used with sub-pixel precision may be included in the syntax element.

모션 보상 유닛(302)은 비디오 블록을 인코딩하는 동안 비디오 인코더(20)에서 사용하는 보간 필터를 사용하여 레퍼런스 블록의 서브 정수 픽셀에 대한 보간 값을 계산할 수 있다. 모션 보상 유닛(302)은 수신된 신택스 정보에 따라 비디오 인코더(200)에서 사용하는 보간 필터를 결정하고 보간 필터를 사용하여 예측 블록을 생성할 수 있다. The motion compensation unit 302 may calculate an interpolation value for a sub-integer pixel of a reference block by using an interpolation filter used by the video encoder 20 while encoding the video block. The motion compensation unit 302 may determine an interpolation filter used by the video encoder 200 according to the received syntax information and generate a predictive block by using the interpolation filter.

모션 보상 유닛(302)은 인코딩된 비디오 시퀀스의 프레임 및/또는 슬라이스를 인코딩하는 데 사용되는 블록의 크기, 인코딩된 비디오 시퀀스의 각 매크로 블록이 파티셔닝되는 방식을 설명하는 파티션 정보, 각 파티션이 인코딩된 방법, 각 파티션이 인코딩되는 방식을 나타내는 모드, 각 인터-인코딩된 블록에 대한 하나 이상의 레퍼런스 프레임(및 레퍼런스 프레임 목록) 및 인코딩된 비디오 시퀀스를 디코딩하는 다른 정보들을 결정하기 위해 일부 신택스 정보를 사용할 수 있다.The motion compensation unit 302 provides the size of blocks used to encode frames and/or slices of the encoded video sequence, partition information that describes how each macro block of the encoded video sequence is partitioned, and in which each partition is encoded. Some syntax information can be used to determine the method, the mode that indicates how each partition is encoded, one or more reference frames (and list of reference frames) for each inter-encoded block, and other information to decode the encoded video sequence. have.

인트라 예측 유닛(303)은, 예를 들어 비트스트림에서 수신된 인트라 예측 모드를 사용하여 공간적으로 인접한 블록으로부터 예측 블록을 형성할 수 있다. 역양자화 유닛(303)은 비트스트림에서 제공되고 엔트로피 디코딩 유닛(301)에서 디코딩된 양자화된 비디오 블록 계수를 역양자화, 예를 들어, 비양자화(de-quantize)한다. 역트랜스폼 유닛(Inverse transform unit)(303)은 역트랜스폼을 적용한다. The intra prediction unit 303 may form a prediction block from a spatially adjacent block using, for example, an intra prediction mode received in a bitstream. The inverse quantization unit 303 inverse quantizes, eg, de-quantizes, the quantized video block coefficient provided in the bitstream and decoded in the entropy decoding unit 301 . An inverse transform unit 303 applies an inverse transform.

재구성 유닛(Reconstruction unit)(306)은 모션 보상 유닛(202) 또는 인트라 예측 유닛(303)에 의해 생성된 대응하는 예측 블록과 잔차 블록을 합산하여 디코딩된 블록을 형성할 수 있다. 원하는 경우, 디블로킹 필터(deblocking filter)를 적용하여 차단 아티팩트를 제거하기 위해 디코딩된 블록을 필터링할 수도 있다. 그 후, 디코딩된 비디오 블록은 버퍼(buffer)(307) 에 저장되고, 버퍼(307)는 후속 모션 보상을 위한 레퍼런스 블록을 제공한다.A reconstruction unit 306 may sum the residual block and the corresponding prediction block generated by the motion compensation unit 202 or the intra prediction unit 303 to form a decoded block. If desired, the decoded block may be filtered to remove blocking artifacts by applying a deblocking filter. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation.

도 11은 본 기술에 따른 비디오 처리 방법의 흐름도 표현이다. 방법(1100)은, 동작(1110)에서, 비디오의 제1 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 비트스트림 표현은 디코더측 모션 벡터 정제 코딩 툴 및 비디오 픽처에 대한 양방향 광학 흐름 코딩 툴의 적용가능성이 비트스트림 표현에서 개별적으로 표시됨을 지정하는 포맷 규칙에 따른다. 11 is a flowchart representation of a video processing method according to the present technology. The method 1100 includes, at operation 1110 , performing a transform between a first block of video and a bitstream representation of the video. The bitstream representation conforms to a format rule that specifies that the applicability of the decoder-side motion vector refinement coding tool and the bidirectional optical flow coding tool to a video picture is indicated separately in the bitstream representation.

도 13은 본 기술에 따른 비디오 처리 방법(1300)의 흐름도 표현이다. 방법(1300)은, 동작(1310)에서, 비디오의 현재 픽처와 비디오의 비트스트림 표현 사이의 변환을 위해, 다중 레퍼런스 픽처 또는 현재 픽처 중 하나의 일부의 차원과 연관된 조건에 기초하여 코딩 툴의 사용을 결정하는 단계를 포함한다. 방법(1300)은, 동작(1320)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다. 13 is a flowchart representation of a video processing method 1300 according to the present technology. The method 1300 includes, in operation 1310 , use of a coding tool based on a condition associated with a dimension of a portion of one of multiple reference pictures or a current picture to transform between a current picture of the video and a bitstream representation of the video. including the step of determining Method 1300 includes, at operation 1320 , performing a transform based on the determining.

일부 실시예에서, 사용은 코딩 툴이 현재 픽처에 대해 활성화되는지 여부를 포함한다. 일부 실시예에서, 픽처의 일부는 비디오를 출력할 때 외부에 샘플이 처분될 수 있는 적합성 윈도우, 샘플이 리샘플링 작업의 대상이 되는 스케일링 윈도우, 또는 전체 픽처를 포함한다. 일부 실시예에서, 코딩 툴은 디코더 측 모션 벡터 정제 코딩 툴, 양방향 광학 흐름 코딩 툴, 광학 흐름(PROF) 코딩 툴을 사용한 예측 정제, 또는 모션 보상 또는 모션 보상을 위한 반화소 정밀도의 보간 필터가 포함된다. 일부 실시예에서, 코딩 툴은 시간적 모션 벡터 예측 코딩 툴, 다중 트랜스폼 세트 코딩 툴, 크로스 컴포넌트 적응형 루프 필터링 코딩 툴, 기하학적 파티션 코딩 툴, 블록을 여러 파티션으로 분할하는 코딩 툴의 혼합 프로세스, 현재 픽처와 상이한 픽처에 저장된 정보를 필요로 하는 코딩 툴, 쌍별 병합 후보를 생성하는 코딩 툴, 코딩 유닛 레벨 가중치를 사용한 이중 예측, 가중 예측 코딩 툴, 아핀 예측 코딩 툴, 또는 적응형 모션 벡터 해상도 코딩 툴을 더 포함한다. In some embodiments, usage includes whether a coding tool is activated for the current picture. In some embodiments, the part of the picture includes a conformance window in which samples can be disposed of externally when outputting video, a scaling window in which samples are subjected to a resampling operation, or the entire picture. In some embodiments, the coding tool includes a decoder-side motion vector refinement coding tool, a bidirectional optical flow coding tool, predictive refinement using an optical flow (PROF) coding tool, or a half-pixel precision interpolation filter for motion compensation or motion compensation. do. In some embodiments, the coding tool is a temporal motion vector predictive coding tool, a multiple transform set coding tool, a cross component adaptive loop filtering coding tool, a geometric partition coding tool, a mixing process of a coding tool that divides a block into multiple partitions, the current A coding tool that requires information stored in a picture different from a picture, a coding tool that generates pairwise merge candidates, double prediction using coding unit level weights, a weighted prediction coding tool, an affine prediction coding tool, or an adaptive motion vector resolution coding tool further includes

일부 실시예에서, 코딩 툴은 다중 레퍼런스 픽처 중 적어도 하나의 일부에서 차원을 지정하는 조건이 현재 픽처의 차원과 상이한 경우 비활성화된다. 일부 실시예에서, 일부의 차원은 결정하는 단계를 위해 수정된다. 일부 실시예에서, 코딩 툴의 사용은 (1) 픽처의 폭에서 하나 이상의 수평 오프셋을 뺀 것, 또는 (2) 픽처의 높이에서 하나 이상의 수직 오프셋을 뺀 것 중 적어도 하나에 기초한다. 일부 실시예에서, 하나 이상의 수평 오프셋은 스케일링 윈도우에 대한 왼쪽 오프셋을 포함한다. 일부 실시예에서, 하나 이상의 수직 오프셋은 스케일링 윈도우에 대한 상단 오프셋을 포함한다. 일부 실시예에서, 하나 이상의 수평 오프셋은 스케일링 윈도우에 대한 우측 오프셋 및 왼쪽 오프셋을 포함한다. 일부 실시예에서, 하나 이상의 수직 오프셋은 스케일링 윈도우에 대한 하단 오프셋 및 상단 오프셋을 포함한다. 일부 실시예에서, 하나 이상의 수평 오프셋은 스케일링 윈도우에 대한 오른쪽 오프셋과 왼쪽 오프셋의 합을 스케일링하는 것에 기초한 값을 포함한다. 일부 실시예에서, 하나 이상의 수직 오프셋은 스케일링 윈도우에 대한 하단 오프셋과 상단 오프셋의 합을 스케일링하는 것에 기초한 값을 포함한다. In some embodiments, the coding tool is deactivated when a condition specifying a dimension in a part of at least one of the multiple reference pictures is different from a dimension of the current picture. In some embodiments, some dimensions are modified for the determining step. In some embodiments, use of the coding tool is based on at least one of (1) the width of the picture minus one or more horizontal offsets, or (2) the height of the picture minus one or more vertical offsets. In some embodiments, the one or more horizontal offsets include a left offset relative to the scaling window. In some embodiments, the one or more vertical offsets include a top offset relative to the scaling window. In some embodiments, the one or more horizontal offsets include a right offset and a left offset relative to the scaling window. In some embodiments, the one or more vertical offsets include a bottom offset and a top offset relative to the scaling window. In some embodiments, the one or more horizontal offsets include a value based on scaling the sum of the right and left offsets relative to the scaling window. In some embodiments, the one or more vertical offsets include a value based on scaling a sum of the bottom offset and the top offset for the scaling window.

일부 실시예에서, 코딩 툴은 다중 레퍼런스 픽처 중 적어도 두 개의 일부의 차원을 지정하는 조건이 상이하다는 것이 충족되는 경우에 비활성화된다. 일부 실시예에서, 제1 쌍별 병합 후보는 하나 또는 두 개의 레퍼런스 픽처 목록에 대한 제1 쌍별 병합 후보를 유도하는 데 사용되는 다중 레퍼런스 픽처 중 적어도 두 개의 일부의 차원이 상이한 경우에 이용불가능한 것으로 표시된다. 일부 실시예에서, 코딩 툴의 사용을 나타내는 신택스 요소는 일부의 차원에 기초하여 비트스트림 표현에서 조건부로 시그널링된다. 일부 실시예에서, 코딩 툴의 사용을 나타내는 신택스 요소는 비트스트림 표현에서 생략된다. In some embodiments, the coding tool is deactivated when it is satisfied that the condition specifying the dimension of at least two parts of the multiple reference pictures is different. In some embodiments, the first pairwise merging candidate is marked as unavailable when dimensions of at least two portions of multiple reference pictures used to derive the first pairwise merging candidate for one or two reference picture lists are different. . In some embodiments, a syntax element indicating the use of a coding tool is conditionally signaled in the bitstream representation based on some dimension. In some embodiments, a syntax element indicating the use of a coding tool is omitted from the bitstream representation.

일부 실시예에서, 코딩 툴의 사용을 표시하는 신택스 요소는 레퍼런스 픽처 리샘플링(RPR) 프로세스가 활성화되는지 여부에 더 기초하여 비트스트림 표현에 조건부로 포함된다. 일부 실시예에서, 신택스 요소는 amvr_precision_idx, sym_mvd_flag, 또는 mmvd_merge_flag 중 하나를 포함한다. 일부 실시예에서, 코딩 툴의 사용에 따른 변환은 일부의 차원에 기초하여 수정된다. 일부 실시예에서, 변환은 대칭 모션 벡터 차이 프로세스에서 레퍼런스 픽처 목록에 대한 모션 벡터 차이를 유도하는 것을 포함하고, 유도는 다중 레퍼런스 픽처 중 적어도 두 개의 일부의 차원의 차이에 기초한다. 일부 실시예에서, 변환은 쌍별 병합 후보를 유도하는 것을 포함하고, 유도하는 단계는 다중 레퍼런스 픽처 중 적어도 두 개의 일부의 차원의 차이에 기초하여 가중 평균을 적용하는 것을 포함한다.In some embodiments, a syntax element indicating use of a coding tool is conditionally included in the bitstream representation further based on whether a reference picture resampling (RPR) process is activated. In some embodiments, the syntax element includes one of amvr_precision_idx, sym_mvd_flag, or mmvd_merge_flag. In some embodiments, the transform upon use of the coding tool is modified based on some dimension. In some embodiments, the transform comprises deriving a motion vector difference for the reference picture list in a symmetric motion vector difference process, wherein the derivation is based on a difference in dimensions of some of at least two of the multiple reference pictures. In some embodiments, the transform comprises deriving a pairwise merging candidate, and deriving comprises applying a weighted average based on a difference in dimensions of at least two portions of the multiple reference pictures.

도 14는 본 기술에 따른 비디오 처리 방법(1300)의 흐름도 표현이다. 방법(1400)은, 동작(1410)에서, 비디오의 블록과 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함한다. 변환 동안 레퍼런스 픽처 리샘플링 프로세스가 블록에 적용되기 때문에 블록에 대해 1/2-펠 모션 벡터 정밀도의 적응형 모션 벡터 해상도(Adaptive Motion Vector Resolution)(AMVR)가 활성화된다. 14 is a flowchart representation of a video processing method 1300 in accordance with the present technology. The method 1400 includes, at an operation 1410 , performing a transform between a block of video and a bitstream representation of the video. Adaptive Motion Vector Resolution (AMVR) with 1/2-pel motion vector precision is enabled for the block because the reference picture resampling process is applied to the block during transformation.

일부 실시예에서, 1/2-펠 정밀도와 다른 정밀도를 갖는 블록에 대해 다른 보간 필터가 사용된다. 일부 실시예에서, 레퍼런스 픽처의 일부의 차원과 연관된 조건은 레퍼런스 픽처와 연관된 플래그에 의해 표시된다. 일부 실시예에서, 플래그가 레퍼런스 픽처 목록의 적어도 하나의 레퍼런스 픽처가 스케일링됨을 나타내는 경우 코딩 툴은 비활성화된다. 일부 실시예에서, 플래그는 RefPicIsScaled[ 0 ][ refIdxL0 ]를 포함하고, 여기서 refIdxL0은 제1 레퍼런스 픽처 목록에 대한 인덱스이다. 일부 실시예에서, 플래그는 RefPicIsScaled[ 0 ][ refIdxL1 ]을 포함하고, 여기서 refIdxL1은 제2 제1 레퍼런스 픽처 목록에 대한 인덱스이다. 일부 실시예에서, 플래그는 레퍼런스 픽처 목록 구성 프로세스 동안 결정된다.In some embodiments, different interpolation filters are used for blocks with other precision than 1/2-pel precision. In some embodiments, a condition associated with a dimension of a portion of a reference picture is indicated by a flag associated with the reference picture. In some embodiments, the coding tool is deactivated when the flag indicates that at least one reference picture in the reference picture list is to be scaled. In some embodiments, the flag includes RefPicIsScaled[ 0 ][ refIdxL0 ], where refIdxL0 is an index into the first reference picture list. In some embodiments, the flag comprises RefPicIsScaled[ 0 ][ refIdxL1 ], where refIdxL1 is an index to the second first reference picture list. In some embodiments, the flag is determined during the reference picture list construction process.

도 15는 본 기술에 따른 비디오 처리 방법(1500)의 흐름도 표현이다. 방법(1500)은, 동작(1510)에서, 비디오의 블록과 비디오의 비트스트림 표현 사이의 변환을 위해, 블록의 비트 깊이에 기초한 방식으로 양방향 광학 흐름(BDOF) 코딩 툴 또는 디코더측 모션 벡터 정제(DMVR) 코딩 툴에서 사용되는 절대차의 합을 결정하는 단계를 포함한다. 방법(1500)은, 동작(1520)에서, 결정하는 단계에 기초하여 변환을 수행하는 단계를 포함한다. 15 is a flowchart representation of a video processing method 1500 according to the present technology. The method 1500 includes, in an operation 1510 , a bidirectional optical flow (BDOF) coding tool or decoder-side motion vector refinement ( DMVR) determining the sum of absolute differences used in the coding tool. Method 1500 includes, at operation 1520 , performing a transformation based on the determining.

일부 실시예에서, 절대차의 합은 BDOF 코딩 툴 또는 DMVR 코딩 툴에 대한 임계값과 비교되기 전에 비트 깊이의 함수에 기초하여 시프트된다. 일부 실시예에서, 절대차의 합은 비트 깊이의 함수에 기초하여 수정되는 임계값과 비교된다. In some embodiments, the sum of absolute differences is shifted based on a function of bit depth before being compared to a threshold for a BDOF coding tool or a DMVR coding tool. In some embodiments, the sum of absolute differences is compared to a threshold that is modified based on a function of bit depth.

일부 실시예에서, 변환은 비디오를 비트스트림 표현으로 인코딩하는 단계를 포함한다. 일부 실시예에서, 변환은 비트스트림 표현을 비디오로 디코딩하는 단계를 포함한다.In some embodiments, transforming comprises encoding the video into a bitstream representation. In some embodiments, transforming comprises decoding the bitstream representation into video.

개시된 기술의 일부 실시예는 비디오 프로세싱 툴 또는 모드를 활성화하기 위한 판단(decision) 또는 결정(determination)을 내리는 것을 포함한다. 예들 들어, 비디오 프로세싱 툴 또는 모드가 활성화되면 인코더가 비디오 블록 프로세싱에서 툴 또는 모드를 사용하거나 구현하지만, 툴 또는 모드의 사용에 따라 결과 비트스트림을 반드시 수정할 필요는 없다. 즉, 비디오 블록에서 비디오의 비트스트림 표현으로 변환하면 판단 또는 결정에 따라 활성화될 때 비디오 프로세싱 툴 또는 모드를 사용한다. 또 다른 예에서, 비디오 프로세싱 툴 또는 모드가 활성화되면 디코더는 비디오 프로세싱 툴 또는 모드에 따라 비트스트림이 수정되었다는 것을 알고 비트스트림을 프로세싱 한다. 즉, 비디오의 비트스트림 표현에서 비디오 블록으로의 변환은 판단 또는 결정에 따라 활성화된 비디오 프로세싱 툴 또는 모드를 사용하여 수행된다.Some embodiments of the disclosed techniques include making a decision or making a decision to activate a video processing tool or mode. For example, when a video processing tool or mode is activated, the encoder uses or implements the tool or mode in video block processing, but does not necessarily modify the resulting bitstream according to the use of the tool or mode. That is, converting from video blocks to bitstream representations of video uses a video processing tool or mode when activated by a judgment or decision. In another example, when a video processing tool or mode is activated, the decoder processes the bitstream knowing that the bitstream has been modified according to the video processing tool or mode. That is, the conversion from a bitstream representation of a video to a video block is performed using a judgment or a video processing tool or mode activated according to the decision.

개시된 기술의 일부 실시예에는 비디오 프로세싱 툴 또는 모드를 비활성화하는 판단(decision) 또는 결정(determination)을 내리는 것이 포함된다. 예들 들어, 비디오 프로세싱 툴 또는 모드가 비활성화되면, 인코더는 비디오 블록을 비디오 블록으로 변환하는 데 툴 또는 모드를 사용하지 않는다. 다른 예에서, 비디오 처리 툴 또는 모드가 비활성화될 때, 디코더는 판정 또는 결정에 기초하여 활성화된 비디오 처리 툴 또는 모드를 사용하여 비트스트림이 수정되지 않았다는 지식으로 비트스트림을 처리할 것이다.Some embodiments of the disclosed techniques include making a decision or making a decision to disable a video processing tool or mode. For example, if a video processing tool or mode is deactivated, the encoder does not use the tool or mode to convert a video block to a video block. In another example, when a video processing tool or mode is deactivated, the decoder will process the bitstream with the knowledge that the bitstream has not been modified using the video processing tool or mode activated based on the determination or determination.

본 문서에 기재된 개시 및 기타 솔루션, 예, 실시예, 모듈 및 기능적 작업은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있으며, 여기에는 이 문서 및 그 구조적 등가물 또는 그 중 하나 이상의 조합으로 구현될 수 있다. 개시된 및 기타 실시예는 하나 이상의 컴퓨터 프로그램 제품으로 구현될 수 있고, 예를 들어, 컴퓨터 프로그램 지침의 하나 이상의 모듈을 컴퓨터 판독 가능한 매체에 인코딩 하여 실행하거나, 데이터 처리 장치의 작동을 제어할 수 있다. 컴퓨터가 읽을 수 있는 매체는 기계가 읽을 수 있는 저장 장치, 기계가 읽을 수 있는 스토리지 기판, 메모리 장치, 기계가 읽을 수 있는 전파 신호에 영향을 미치는 물질의 조성 또는 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치"는 예를 들어, 프로그래밍 가능한 프로세서, 컴퓨터 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 장치, 장치 및 컴퓨터를 포함한다. 장치는 하드웨어에 추가하여 대응 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 전파된 신호는 인위적으로 생성된 신호, 예를 들어, 기계에서 생성된 전기, 광학 또는 전자기 신호이고, 이는 적합한 수신기 장치로 전송하기 위한 정보를 인코딩 하기 위해 생성된다.The teachings and other solutions, examples, embodiments, modules and functional works described herein may be implemented in digital electronic circuitry, or computer software, firmware, or hardware, including this document and structural equivalents thereof, or combinations of one or more thereof. can be implemented as The disclosed and other embodiments may be implemented as one or more computer program products, for example, encoding and executing one or more modules of computer program instructions on a computer readable medium or controlling the operation of a data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter that affects a machine-readable radio signal, or a combination of one or more. The term "data processing apparatus" includes all apparatus, apparatus and computers for processing data, including, for example, programmable processors, computers, or multiple processors or computers. A device may include, in addition to hardware, code that creates an execution environment for a corresponding computer program, eg, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. A propagated signal is an artificially generated signal, eg, a mechanically generated electrical, optical or electromagnetic signal, which is generated to encode information for transmission to a suitable receiver device.

컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드라고도 함)은 컴파일 된 언어를 비롯한 모든 형태의 프로그래밍 언어로 작성할 수 있으며 독립 실행형 프로그램 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 컴포넌트, 서브루틴 또는 기타 유닛으로 모든 형태로 배포할 수 있다. 컴퓨터 프로그램이 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트), 대응하는 프로그램에 전용되는 단일 파일 또는 여러 조정된 파일들(예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 일부를 저장하는 파일)에 저장할 수 있다. 컴퓨터 프로그램은 한 컴퓨터 또는 한 사이트에 위치하거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결된 여러 컴퓨터에서 실행하도록 배포할 수 있다.A computer program (also referred to as a program, software, software application, script or code) may be written in any form of programming language, including compiled language, and may contain modules, components, subroutines or It can be distributed in any form as other units. A computer program does not necessarily correspond to a file in a file system. A program may contain other programs or data (e.g., one or more scripts stored in a markup language document), a single file or several coordinated files dedicated to the corresponding program (e.g., one or more modules, subprograms, or portions of code). can be saved to a file that stores . A computer program may be distributed for execution on one computer or on multiple computers located at one site or distributed over multiple sites and interconnected by a communications network.

이 문서에 설명된 프로세스 및 논리 흐름은 하나 이상의 프로그래밍 가능한 프로세서가 하나 이상의 프로그래밍 가능한 프로세서에서 수행하여 입력 데이터에서 작동하고 출력을 생성하여 기능을 수행할 수 있다. 프로세스 및 로직 흐름도 수행될 수 있으며, 장치는 특수 목적 논리 회로, 예를 들어, FPGA(필드 프로그래밍 가능한 게이트 어레이) 또는 ASIC(애플리케이션 별 집적 회로)로 구현될 수 있다.The processes and logic flows described in this document may be performed by one or more programmable processors on the one or more programmable processors to operate on input data and generate outputs to perform functions. Processes and logic flows may also be performed, and devices may be implemented with special purpose logic circuits, for example, field programmable gate arrays (FPGAs) or application specific integrated circuits (ASICs).

컴퓨터 프로그램의 실행에 적합한 프로세서에는 예를 들어, 일반 및 특수 목적 마이크로프로세서와 모든 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 지침과 데이터를 받게 된다. 컴퓨터의 필수 요소는 지침과 데이터를 저장하기 위한 하나 이상의 메모리 장치를 수행하기 위한 프로세서이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어, 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 전체를 포함하거나 작동 가능하게 연결된다. 그러나, 컴퓨터에 이러한 장치가 필요하지 않다. 컴퓨터 프로그램 지침 및 데이터를 저장하는 데 적합한 컴퓨터 판독 가능한 미디어에는 반도체 메모리 장치, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치, 자기 디스크, 예를 들어, 내부 하드 디스크 또는 이동식 디스크; 마그네토 광학 디스크; 및 CD ROM 및 DVD-ROM 디스크를 비롯한 모든 형태의 비휘발성 메모리, 미디어 및 메모리 장치가 포함된다. 프로세서와 메모리는 특수 목적 논리 회로에 의해 보충되거나 통합될 수 있다. Processors suitable for the execution of computer programs include, for example, general and special purpose microprocessors and one or more processors of digital computers of all kinds. Typically, a processor will receive instructions and data from either read-only memory or random-access memory, or both. An essential element of a computer is a processor for executing one or more memory devices for storing instructions and data. In general, a computer also receives data from, transmits data to, or includes both, or operatively connects one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. do. However, the computer does not need such a device. Computer readable media suitable for storing computer program instructions and data include semiconductor memory devices such as EPROM, EEPROM and flash memory devices, magnetic disks such as internal hard disks or removable disks; magneto optical disc; and all forms of non-volatile memory, media and memory devices, including CD ROM and DVD-ROM disks. The processor and memory may be supplemented or integrated by special purpose logic circuitry.

이 특허 문서에는 많은 세부 사항이 포함되어 있지만, 이는 어떤 주제의 범위 나 청구 될 수 있는 것에 대한 제한으로 해석되어서는 안되며, 오히려 특정 기술의 특정 구현예에 특정할 수 있는 특징에 대한 설명으로 해석되어서는 안 된다. 이 특허 문서에 기재된 특정 특징은 별도의 실시예의 맥락에서 또한 단일 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 서브 조합으로 다중 실시예들에서도 구현될 수 있다. 더욱이, 앞서와 같이 특징들은 특정 조합으로 작용하는 것으로 설명될 수 있고 심지어 처음에 그렇게 주장될 수도 있지만, 청구된 조합으로부터 하나 이상의 특징은 어떤 경우에는 조합으로부터 제외될 수 있고, 주장된 조합은 서브 조합 또는 서브 조합의 변형에 관한 것일 수 있다.Although this patent document contains many details, it should not be construed as a limitation on the scope of any subject matter or what may be claimed, but rather as descriptions of features that may be specific to particular implementations of particular technologies. is not Certain features described in this patent document may be implemented in the context of separate embodiments and in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable sub-combination. Moreover, as before, features may be described and even initially claimed as acting in a particular combination, however, one or more features from a claimed combination may in some cases be excluded from the combination, and the claimed combination may be a sub-combination. Or it may relate to the modification of the sub-combination.

마찬가지로, 동작은 특정 순서로 도면에 묘사되어 있지만, 바람직한 결과를 달성하기 위하여, 이러한 동작이 표시된 특정 순서 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안 된다. 더욱이, 본 특허 문서에 기재된 실시예들에서, 다양한 시스템 컴포넌트들의 분리가 모든 실시예들에서 이러한 분리를 요구하는 것으로 이해되어서는 안 된다.Likewise, while acts are depicted in the figures in a particular order, they should not be construed as requiring that these acts be performed in the particular order indicated or sequential order, or that all illustrated acts are performed, to achieve desirable results. . Moreover, in the embodiments described in this patent document, separation of various system components should not be construed as requiring such separation in all embodiments.

몇 가지 구현 및 예제만 설명되며, 이 특허 문서에 설명되고 도시된 내용에 따라 다른 구현, 개선 및 변형이 이루어질 수 있다.Only a few implementations and examples are described, and other implementations, improvements, and variations may be made in accordance with the teachings and shown in this patent document.

Claims (38)

비디오 처리 방법에 있어서,
비디오의 현재 픽처와 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 다중 레퍼런스 픽처 또는 상기 현재 픽처 중 하나의 일부의 차원과 연관된 조건에 기초하여 코딩 툴의 사용을 결정하는 단계; 및
상기 결정에 따라 상기 변환을 수행하는 단계를 포함하는
방법.
A video processing method comprising:
determining use of a coding tool based on a condition associated with dimensions of multiple reference pictures or a portion of one of the current pictures for transformation between a current picture of the video and a bitstream representation of the video; and
performing the transformation according to the determination;
Way.
제1항에 있어서,
상기 사용은 상기 상기 코딩 툴이 상기 현재 픽처에 대해 활성화되는지 여부를 포함하는
방법.
According to claim 1,
The use includes whether the coding tool is activated for the current picture.
Way.
제1항 또는 제2항에 있어서,
픽처의 일부는 상기 비디오 출력 시 외부에 샘플을 처분할 수 있는 적합성 윈도우, 또는 샘플이 리샘플링되어야 하는 스케일링 윈도우, 또는 상기 픽처 전체를 포함하는
방법.
3. The method of claim 1 or 2,
A portion of the picture includes a fitness window that can dispose of samples externally when outputting the video, or a scaling window in which samples must be resampled, or the entire picture
Way.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 코딩 툴은 디코더측 모션 벡터 정제 코딩 툴, 양방향 광학 흐름 코딩 툴, 광학 흐름(PROF) 코딩 툴의 예측 정제, 또는 모션 보상을 위한 반화소 정밀도의 보간 필터를 포함하는
방법.
4. The method according to any one of claims 1 to 3,
The coding tool comprises a decoder-side motion vector refinement coding tool, a bidirectional optical flow coding tool, predictive refinement of an optical flow (PROF) coding tool, or a half-pixel precision interpolation filter for motion compensation.
Way.
제4항에 있어서,
상기 코딩 툴은 시간적 모션 벡터 예측 코딩 툴, 다중 트랜스폼 세트 코딩 툴, 크로스 컴포넌트 적응형 루프 필터링 코딩 툴, 기하학적 파티션 코딩 툴, 블록을 여러 파티션으로 분할하는 코딩 툴의 혼합 프로세스, 현재 픽처와 상이한 픽처에 저장된 정보를 필요로 하는 코딩 툴, 쌍별 병합 후보를 생성하는 코딩 툴, 코딩 유닛 레벨 가중치를 사용한 이중 예측, 가중 예측 코딩 툴, 아핀 예측 코딩 툴, 또는 적응형 모션 벡터 해상도 코딩 툴을 더 포함하는
방법.
5. The method of claim 4,
The coding tool is a temporal motion vector predictive coding tool, a multiple transform set coding tool, a cross component adaptive loop filtering coding tool, a geometric partition coding tool, a mixing process of a coding tool that divides a block into multiple partitions, a picture different from the current picture Further comprising a coding tool that requires information stored in
Way.
제1항 내지 제5항 중 어느 한 항에 있어서,
상기 코딩 툴은 상기 다중 레퍼런스 픽처 중 적어도 하나의 일부에서 차원을 지정하는 조건이 상기 현재 픽처의 차원과 상이한 경우 비활성화되는
방법.
6. The method according to any one of claims 1 to 5,
The coding tool is deactivated when a condition for specifying a dimension in at least one part of the multiple reference pictures is different from the dimension of the current picture
Way.
제1항 내지 제6항 중 어느 한 항에 있어서,
상기 일부의 차원은 결정하는 단계를 위해 수정되는
방법.
7. The method according to any one of claims 1 to 6,
The dimension of the part is modified for the step of determining
Way.
제1항 내지 제7항 중 어느 한 항에 있어서,
상기 코딩 툴의 사용은 (1) 상기 픽처의 폭에서 하나 이상의 수평 오프셋을 뺀 것, 또는 (2) 상기 픽처의 높이에서 하나 이상의 수직 오프셋을 뺀 것 중 적어도 하나에 기초하는
방법.
8. The method according to any one of claims 1 to 7,
wherein use of the coding tool is based on at least one of (1) the width of the picture minus one or more horizontal offsets, or (2) the height of the picture minus one or more vertical offsets.
Way.
제8항에 있어서,
상기 하나 이상의 수평 오프셋은 스케일링 윈도우에 대한 왼쪽 오프셋을 포함하는
방법.
9. The method of claim 8,
wherein the one or more horizontal offsets include a left offset relative to the scaling window.
Way.
제8항에 있어서,
상기 하나 이상의 수직 오프셋은 스케일링 윈도우에 대한 상단 오프셋을 포함하는
방법.
9. The method of claim 8,
wherein the one or more vertical offsets include a top offset relative to a scaling window.
Way.
제8항에 있어서,
상기 하나 이상의 수평 오프셋은 스케일링 윈도우에 대한 오른쪽 오프셋 및 왼쪽 오프셋을 포함하는
방법.
9. The method of claim 8,
wherein the one or more horizontal offsets include a right offset and a left offset relative to a scaling window.
Way.
제8항에 있어서,
상기 하나 이상의 수직 오프셋은 스케일링 윈도우에 대한 하단 오프셋 및 상단 오프셋을 포함하는
방법.
9. The method of claim 8,
wherein the one or more vertical offsets include a bottom offset and a top offset relative to the scaling window.
Way.
제8항에 있어서,
상기 하나 이상의 수평 오프셋은 스케일링 윈도우에 대한 오른쪽 오프셋과 왼쪽 오프셋의 합을 스케일링하는 것에 기초한 값을 포함하는
방법.
9. The method of claim 8,
wherein the one or more horizontal offsets include a value based on scaling a sum of a right offset and a left offset relative to a scaling window.
Way.
제8항에 있어서,
상기 하나 이상의 수직 오프셋은 스케일링 윈도우에 대한 하단 오프셋과 상단 오프셋의 합을 스케일링하는 것에 기초한 값을 포함하는
방법.
9. The method of claim 8,
wherein the one or more vertical offsets include a value based on scaling a sum of the bottom offset and the top offset for a scaling window.
Way.
제1항 내지 제5항 중 어느 한 항에 있어서,
상기 코딩 툴은 상기 다중 레퍼런스 픽처 중 적어도 두 개의 일부의 차원을 지정하는 조건이 상이하다는 것이 충족되는 경우에 비활성화되는
방법.
6. The method according to any one of claims 1 to 5,
The coding tool is deactivated when it is satisfied that the conditions for specifying the dimensions of at least two parts of the multiple reference pictures are different
Way.
제1항 내지 제5항 중 어느 한 항에 있어서,
제1 쌍별 병합 후보는 하나 또는 두 개의 레퍼런스 픽처 목록에 대한 상기 제1 쌍별 병합 후보를 유도하는 데 사용되는 상기 다중 레퍼런스 픽처 중 적어도 두 개의 일부의 차원이 상이한 경우에 이용불가능한 것으로 표시되는
방법.
6. The method according to any one of claims 1 to 5,
The first pairwise merge candidate is marked as unavailable when dimensions of at least two parts of the multiple reference pictures used to derive the first pairwise merge candidate for one or two reference picture lists are different.
Way.
제1항 내지 제16항 중 어느 한 항에 있어서,
상기 코딩 툴의 사용을 표시하는 신택스 요소는 상기 일부의 차원에 기초하여 상기 비트스트림 표현에서 조건부로 시그널링되는
방법.
17. The method according to any one of claims 1 to 16,
A syntax element indicating use of the coding tool is conditionally signaled in the bitstream representation based on the dimension of the part.
Way.
제17항에 있어서,
상기 코딩 툴의 사용을 나타내는 상기 신택스 요소는 상기 비트스트림 표현에서 생략되는
방법.
18. The method of claim 17,
The syntax element indicating use of the coding tool is omitted from the bitstream representation.
Way.
제17항에 있어서,
상기 코딩 툴의 사용을 표시하는 상기 신택스 요소는 레퍼런스 픽처 리샘플링(RPR) 프로세스가 활성화되는지 여부에 더 기초하여 상기 비트스트림 표현에 조건부로 포함되는
방법.
18. The method of claim 17,
wherein the syntax element indicating use of the coding tool is conditionally included in the bitstream representation further based on whether a reference picture resampling (RPR) process is activated.
Way.
제18항에 있어서,
상기 신택스 요소는 amvr_precision_idx, sym_mvd_flag 또는 mmvd_merge_flag 중 하나를 포함하는
방법.
19. The method of claim 18,
The syntax element includes one of amvr_precision_idx, sym_mvd_flag, or mmvd_merge_flag
Way.
제1항 내지 제20항 중 어느 한 항에 있어서,
상기 코딩 툴의 사용에 따른 상기 변환은 상기 일부의 차원에 기초하여 수정되는
방법.
21. The method according to any one of claims 1 to 20,
The transform according to the use of the coding tool is modified based on the dimension of the part.
Way.
제21항에 있어서,
상기 변환은 대칭 모션 벡터 차이 프로세스에서 레퍼런스 픽처 목록에 대한 모션 벡터 차이를 유도하는 단계를 포함하고, 상기 유도하는 단계는 상기 다중 레퍼런스 픽처 중 적어도 두 개의 일부의 차원의 차이에 기초하는
방법.
22. The method of claim 21,
The transformation includes deriving a motion vector difference for a reference picture list in a symmetric motion vector difference process, wherein the deriving step is based on a difference in dimensions of at least two portions of the multiple reference pictures
Way.
제21항에 있어서,
상기 변환은 쌍별 병합 후보를 유도하는 단계를 포함하고, 상기 유도하는 단계는 상기 다중 레퍼런스 픽처 중 적어도 두 개의 일부의 차원의 차이에 기초하여 가중 평균을 적용하는 단계를 포함하는
방법.
22. The method of claim 21,
The transformation includes deriving a pairwise merge candidate, and the deriving includes applying a weighted average based on a difference in dimensions of at least two parts of the multiple reference pictures.
Way.
비디오 처리 방법에 있어서,
비디오와 상기 비디오의 비트스트림 표현 사이의 변환을 수행하는 단계를 포함하고,
상기 변환 동안 레퍼런스 픽처 리샘플링 프로세스가 블록에 적용가능하기 때문에 1/2-펠 모션 벡터 정밀도의 적응형 모션 벡터 해상도(AMVR)가 블록에 대해 활성화되는
방법.
A video processing method comprising:
performing a conversion between a video and a bitstream representation of the video;
Adaptive Motion Vector Resolution (AMVR) of 1/2-pel motion vector precision is activated for the block because the reference picture resampling process is applicable to the block during the transformation.
Way.
제24항에 있어서,
1/2-펠 정밀도와 상이한 정밀도를 갖는 블록에 대해 상이한 보간 필터가 사용되는
방법.
25. The method of claim 24,
If different interpolation filters are used for blocks with different precision than 1/2-pel precision.
Way.
제1항 내지 제25항 중 어느 한 항에 있어서,
상기 레퍼런스 픽처의 일부의 차원과 연관된 조건은 상기 레퍼런스 픽처와 연관된 플래그에 의해 표시되는
방법.
26. The method according to any one of claims 1 to 25,
A condition associated with the dimension of a portion of the reference picture is indicated by a flag associated with the reference picture.
Way.
제26항에 있어서,
상기 플래그가 레퍼런스 픽처 목록 내의 적어도 하나의 레퍼런스 픽처가 스케일링됨을 나타내는 경우 상기 코딩 툴은 비활성화되는
방법.
27. The method of claim 26,
the coding tool is deactivated when the flag indicates that at least one reference picture in the reference picture list is to be scaled
Way.
제27항에 있어서,
상기 플래그는 RefPicIsScaled[0][refIdxL0]를 포함하고, refIdxL0은 제1 레퍼런스 픽처 목록에 대한 인덱스인
방법.
28. The method of claim 27,
The flag includes RefPicIsScaled[0][refIdxL0], where refIdxL0 is an index to the first reference picture list.
Way.
제27항에 있어서,
상기 플래그는 RefPicIsScaled[0][refIdxL1]을 포함하고, refIdxL1은 제2 제1 레퍼런스 픽처 목록에 대한 인덱스인
방법.
28. The method of claim 27,
The flag includes RefPicIsScaled[0][refIdxL1], where refIdxL1 is an index to the second first reference picture list.
Way.
제26항 내지 제29항 중 어느 한 항에 있어서,
상기 플래그는 레퍼런스 픽처 목록 구성 프로세스에서 결정되는
방법.
30. The method according to any one of claims 26 to 29,
The flag is determined in the reference picture list construction process
Way.
비디오 처리 방법에 있어서,
비디오의 블록과 상기 비디오의 비트스트림 표현 사이의 변환을 위해, 블록의 비트 깊이에 기초한 방식으로 양방향 광학 흐름(BDOF) 코딩 툴 또는 디코더측 모션 벡터 정제(DMVR) 코딩 툴에서 사용되는 절대차의 합을 결정하는 단계; 및
상기 결정하는 단계에 따라 상기 변환을 수행하는 단계를 포함하는
방법.
A video processing method comprising:
Sum of absolute differences used in a bidirectional optical flow (BDOF) coding tool or decoder-side motion vector refinement (DMVR) coding tool in a manner based on the bit depth of the block, for conversion between a block of video and a bitstream representation of said video determining; and
performing the transformation according to the determining
Way.
제31항에 있어서,
상기 절대차의 합은 상기 BDOF 코딩 툴 또는 상기 DMVR 코딩 툴에 대한 임계값과 비교되기 전에 상기 비트 깊이의 함수에 기초하여 시프트되는
방법.
32. The method of claim 31,
The sum of the absolute differences is shifted based on a function of the bit depth before being compared to a threshold for the BDOF coding tool or the DMVR coding tool.
Way.
제31항에 있어서,
상기 절대차의 합은 상기 비트 깊이의 함수에 기초하여 수정되는 임계값과 비교되는
방법.
32. The method of claim 31,
wherein the sum of the absolute differences is compared with a threshold that is modified based on a function of the bit depth.
Way.
제1항 내지 제33항 중 어느 한 항에 있어서,
상기 변환은 상기 비디오를 상기 비트스트림 표현으로 인코딩하는 단계를 포함하는
방법.
34. The method according to any one of claims 1 to 33,
wherein the transform comprises encoding the video into the bitstream representation.
Way.
제1항 내지 제33항 중 어느 한 항에 있어서,
상기 변환은 상기 비트스트림 표현을 비디오로 디코딩하는 단계를 포함하는
방법.
34. The method according to any one of claims 1 to 33,
wherein the transform comprises decoding the bitstream representation into video
Way.
제1항 내지 제35항 중 어느 한 항에 기재된 방법을 구현하도록 구성된 프로세서를 포함하는 비디오 처리 장치.
36. A video processing apparatus comprising a processor configured to implement the method according to any one of claims 1 to 35.
코드가 저장된 컴퓨터 판독 가능 매체에 있어서,
상기 코드는, 프로세서에 의해서 실행될 때, 상기 프로세서로 하여금 제1항 내지 제35항 중 어느 하나의 방법을 구현하게 하는 코드가 저장된 컴퓨터 판독 가능 매체.
A computer-readable medium having a code stored therein, comprising:
36. A computer readable medium having stored thereon the code, when executed by a processor, causing the processor to implement the method of any one of claims 1-35.
제1항 내지 제35항 중 어느 한 항에 따라 생성된 비트스트림 표현을 저장하는 컴퓨터 판독 가능 매체.36. A computer readable medium storing a bitstream representation generated according to any one of claims 1 to 35.
KR1020227009731A 2019-10-13 2020-10-13 Interaction between reference picture resampling and video coding tools KR20220073740A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962914544P 2019-10-13 2019-10-13
US62/914,544 2019-10-13
PCT/CN2020/120554 WO2021073488A1 (en) 2019-10-13 2020-10-13 Interplay between reference picture resampling and video coding tools

Publications (1)

Publication Number Publication Date
KR20220073740A true KR20220073740A (en) 2022-06-03

Family

ID=75537448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227009731A KR20220073740A (en) 2019-10-13 2020-10-13 Interaction between reference picture resampling and video coding tools

Country Status (7)

Country Link
US (2) US11722660B2 (en)
EP (1) EP4029274A4 (en)
JP (2) JP7414980B2 (en)
KR (1) KR20220073740A (en)
CN (2) CN114556955B (en)
MX (1) MX2022004200A (en)
WO (1) WO2021073488A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210115044A (en) * 2019-05-13 2021-09-24 삼성전자주식회사 Image encoding method and apparatus based on image size, image decoding method and apparatus
PT3970363T (en) * 2019-05-15 2023-06-15 Huawei Tech Co Ltd Handling of bi-directional optical flow (bio) coding tool for reference picture resampling in video coding
KR20220061108A (en) 2019-09-19 2022-05-12 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Deriving Reference Sample Positions in Video Coding
KR20220066045A (en) 2019-09-19 2022-05-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Scaling Window in Video Coding
WO2021063419A1 (en) 2019-10-05 2021-04-08 Beijing Bytedance Network Technology Co., Ltd. Downsampling filter type for chroma blending mask generation
JP7391203B2 (en) 2019-10-12 2023-12-04 北京字節跳動網絡技術有限公司 Use and signaling to refine video coding tools
CN112135146B (en) 2019-11-14 2021-12-24 杭州海康威视数字技术股份有限公司 Encoding and decoding method, device and equipment
CN114762352A (en) * 2019-11-27 2022-07-15 北京达佳互联信息技术有限公司 Deblocking filtering for video coding and decoding
US20230007281A1 (en) * 2019-12-11 2023-01-05 Hfi Innovation Inc. Video Encoding or Decoding Methods and Apparatuses with Scaling Ratio Constraint
US11632540B2 (en) * 2019-12-20 2023-04-18 Qualcomm Incorporated Reference picture scaling ratios for reference picture resampling in video coding
CN115299044A (en) 2020-03-20 2022-11-04 字节跳动有限公司 Sequence relation between sub-pictures
JP2023522224A (en) * 2020-04-20 2023-05-29 バイトダンス インコーポレイテッド Constraints on the reference picture list

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101309409A (en) 2008-02-22 2008-11-19 华为技术有限公司 Decoding method and device
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
US9215473B2 (en) 2011-01-26 2015-12-15 Qualcomm Incorporated Sub-slices in video coding
CN103096047B (en) 2011-11-01 2018-06-19 中兴通讯股份有限公司 A kind of fragment layer parameter set decoding and coding method and device
PL3016391T3 (en) 2012-01-17 2017-09-29 Telefonaktiebolaget Lm Ericsson (Publ) Reference picture list handling
WO2013128010A2 (en) 2012-03-02 2013-09-06 Canon Kabushiki Kaisha Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream
CN104169971B (en) 2012-03-15 2020-08-25 英特尔公司 Hierarchical motion estimation using non-linear scaling and adaptive source block size
US8798165B2 (en) 2013-01-04 2014-08-05 Vidyo, Inc. Techniques for prediction of unavailable samples in inter-layer predicted video coding
WO2014137322A1 (en) 2013-03-05 2014-09-12 Halliburton Energy Services Inc. System, method and computer program product for photometric system design and environmental ruggedization
US9992493B2 (en) 2013-04-01 2018-06-05 Qualcomm Incorporated Inter-layer reference picture restriction for high level syntax-only scalable video coding
EP2982118A4 (en) 2013-04-05 2016-05-18 Sharp Kk Video compression with color bit depth scaling
EP2984831A4 (en) 2013-04-08 2016-12-07 Nokia Technologies Oy Method and technical equipment for video encoding and decoding
US9813723B2 (en) 2013-05-03 2017-11-07 Qualcomm Incorporated Conditionally invoking a resampling process in SHVC
KR20140138538A (en) 2013-05-24 2014-12-04 주식회사 케이티 Method and apparatus for multi-layer video coding
US9509999B2 (en) 2013-06-11 2016-11-29 Qualcomm Incorporated Inter-layer prediction types in multi-layer video coding
US9906804B2 (en) 2014-01-16 2018-02-27 Qualcomm Incorporated Reference layer sample position derivation for scalable video coding
US20150264348A1 (en) * 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
US10158884B2 (en) * 2014-03-19 2018-12-18 Qualcomm Incorporated Simplified merge list construction process for 3D-HEVC
US9641851B2 (en) 2014-04-18 2017-05-02 Qualcomm Incorporated Conformance window information in multi-layer coding
WO2015168581A1 (en) 2014-05-01 2015-11-05 Arris Enterprises, Inc. Reference layer and scaled reference layer offsets for scalable video coding
US20150373362A1 (en) 2014-06-19 2015-12-24 Qualcomm Incorporated Deblocking filter design for intra block copy
US10200700B2 (en) 2014-06-20 2019-02-05 Qualcomm Incorporated Cross-component prediction in video coding
US10455249B2 (en) 2015-03-20 2019-10-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
US9736335B2 (en) 2015-04-15 2017-08-15 Apple Inc. Techniques for advanced chroma processing
US10638140B2 (en) 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
US9955186B2 (en) 2016-01-11 2018-04-24 Qualcomm Incorporated Block size decision for video coding
CN113612993B (en) 2016-02-05 2023-06-09 寰发股份有限公司 Motion compensation method and device for video data
US10397443B2 (en) 2016-03-01 2019-08-27 Qualcomm Incorporated Methods and systems for generating color remapping information supplemental enhancement information messages for video
WO2017173593A1 (en) 2016-04-06 2017-10-12 Mediatek Singapore Pte. Ltd. Separate coding secondary transform syntax elements for different color components
WO2017188566A1 (en) 2016-04-25 2017-11-02 엘지전자 주식회사 Inter-prediction method and apparatus in image coding system
US10652575B2 (en) 2016-09-15 2020-05-12 Qualcomm Incorporated Linear model chroma intra prediction for video coding
EP3306938A1 (en) * 2016-10-05 2018-04-11 Thomson Licensing Method and apparatus for binary-tree split mode coding
KR20180042098A (en) 2016-10-17 2018-04-25 에스케이텔레콤 주식회사 Apparatus and Method for Video Encoding or Decoding
KR20180043149A (en) 2016-10-19 2018-04-27 에스케이텔레콤 주식회사 Apparatus and Method for Video Encoding or Decoding
US20180192071A1 (en) 2017-01-05 2018-07-05 Mediatek Inc. Decoder-side motion vector restoration for video coding
US10715827B2 (en) * 2017-01-06 2020-07-14 Mediatek Inc. Multi-hypotheses merge mode
US10701366B2 (en) 2017-02-21 2020-06-30 Qualcomm Incorporated Deriving motion vector information at a video decoder
US10523964B2 (en) 2017-03-13 2019-12-31 Qualcomm Incorporated Inter prediction refinement based on bi-directional optical flow (BIO)
US10362332B2 (en) 2017-03-14 2019-07-23 Google Llc Multi-level compound prediction
US10805641B2 (en) 2017-06-15 2020-10-13 Qualcomm Incorporated Intra filtering applied together with transform processing in video coding
GB2564466B (en) 2017-07-13 2020-01-08 Advanced Risc Mach Ltd Storing YUV texture data in a cache in a graphics processing system
CN107483934B (en) 2017-08-17 2019-12-10 西安万像电子科技有限公司 Coding and decoding method, device and system
US10785494B2 (en) * 2017-10-11 2020-09-22 Qualcomm Incorporated Low-complexity design for FRUC
CN117061738A (en) 2018-04-02 2023-11-14 深圳市大疆创新科技有限公司 Method for image processing and image processing apparatus
US11575933B2 (en) 2018-04-06 2023-02-07 Vid Scale, Inc. Bi-directional optical flow method with simplified gradient derivation
US10779002B2 (en) 2018-04-17 2020-09-15 Qualcomm Incorporated Limitation of the MVP derivation based on decoder-side motion vector derivation
AU2018423422B2 (en) 2018-05-16 2023-02-02 Huawei Technologies Co., Ltd. Video coding method and apparatus
WO2019234578A1 (en) * 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Asymmetric weighted bi-predictive merges
EP3815374A1 (en) 2018-06-27 2021-05-05 Vid Scale, Inc. Methods and apparatus for reducing the coding latency of decoder-side motion refinement
KR102526578B1 (en) 2018-07-02 2023-04-28 엘지전자 주식회사 Method and apparatus for processing video signals based on quadratic transform
EP3861740A1 (en) 2018-10-02 2021-08-11 InterDigital VC Holdings, Inc. Generalized bi-prediction and weighted prediction
KR20210087078A (en) 2018-11-08 2021-07-09 인터디지털 브이씨 홀딩스 인코포레이티드 Quantization for video encoding or decoding based on the surface of a block
SG11202104531TA (en) 2018-11-08 2021-05-28 Guangdong Oppo Mobile Telecommunications Corp Ltd Video signal encoding and decoding method, and apparatus therefor
WO2020130600A1 (en) 2018-12-17 2020-06-25 주식회사 윌러스표준기술연구소 Video signal processing method and device for signaling prediction mode
WO2020164575A1 (en) * 2019-02-14 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Decoder side motion derivation based on processing parameters
CN113519160B (en) * 2019-03-05 2023-09-05 寰发股份有限公司 Bidirectional predictive video processing method and device with motion fine tuning in video coding
KR20220147731A (en) 2019-03-11 2022-11-03 엘지전자 주식회사 Method and apparatus for video encoding/decoding using ibc mode, and method for transmitting bitstream
CN113678463A (en) * 2019-03-11 2021-11-19 Vid拓展公司 Method and apparatus for sub-picture adaptive resolution change
WO2020185879A1 (en) 2019-03-11 2020-09-17 Dolby Laboratories Licensing Corporation Video coding using reference picture resampling supporting region of interest
KR20200109276A (en) 2019-03-12 2020-09-22 주식회사 엑스리스 Method for encoding/decoidng video signal and apparatus therefor
US11233988B2 (en) * 2019-05-17 2022-01-25 Qualcomm Incorporated Reference picture resampling and inter-coding tools for video coding
US11134275B2 (en) 2019-06-04 2021-09-28 Tencent America LLC Method and apparatus for performing primary transform based on filtering of blocks
US11252410B2 (en) 2019-06-11 2022-02-15 Tencent America LLC Method and apparatus for video coding
CN117440170A (en) 2019-06-21 2024-01-23 华为技术有限公司 Encoder, decoder and corresponding methods
US20220272378A1 (en) 2019-06-23 2022-08-25 Sharp Kabushiki Kaisha Systems and methods for performing an adaptive resolution change in video coding
JP2022543627A (en) 2019-08-06 2022-10-13 ドルビー ラボラトリーズ ライセンシング コーポレイション Drawing surface size expandable video coding
WO2021026363A1 (en) 2019-08-06 2021-02-11 Op Solutions, Llc Implicit signaling of adaptive resolution management based on frame type
BR112022002154A2 (en) 2019-08-06 2022-04-19 Op Solutions Llc Implicit signaling of adaptive resolution management based on frame type
JP2022544350A (en) 2019-08-15 2022-10-18 アリババ グループ ホウルディング リミテッド Block division method for video coding
US11659201B2 (en) 2019-08-16 2023-05-23 Qualcomm Incorporated Systems and methods for generating scaling ratios and full resolution pictures
CN114270864A (en) 2019-08-22 2022-04-01 夏普株式会社 System and method for signaling picture information in video coding
US11356684B2 (en) 2019-08-30 2022-06-07 Alibaba Group Holding Limited Method and system for signaling chroma quantization parameter table
US20220353537A1 (en) 2019-09-11 2022-11-03 Sharp Kabushiki Kaisha Systems and methods for signaling subpicture information in video coding
US11641475B2 (en) * 2019-09-12 2023-05-02 Alibaba Group Holding Limited Method and apparatus for encoding or decoding video
CN114424543A (en) 2019-09-12 2022-04-29 阿里巴巴集团控股有限公司 Method and apparatus for transmitting video encoding and decoding information
US11303909B2 (en) 2019-09-18 2022-04-12 Qualcomm Incorporated Scaling ratio and output full resolution picture in video coding
KR20220066045A (en) 2019-09-19 2022-05-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Scaling Window in Video Coding
KR20220061108A (en) 2019-09-19 2022-05-12 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Deriving Reference Sample Positions in Video Coding
KR20220049018A (en) * 2019-09-19 2022-04-20 엘지전자 주식회사 Video encoding/decoding method, apparatus and method for transmitting a bitstream for performing PROF
WO2021063419A1 (en) 2019-10-05 2021-04-08 Beijing Bytedance Network Technology Co., Ltd. Downsampling filter type for chroma blending mask generation
WO2021071183A1 (en) 2019-10-06 2021-04-15 현대자동차주식회사 Method and device for performing inverse transformation on transform coefficients of current block
JP7391203B2 (en) 2019-10-12 2023-12-04 北京字節跳動網絡技術有限公司 Use and signaling to refine video coding tools
US11758193B2 (en) 2019-11-04 2023-09-12 Hfi Innovation Inc. Signaling high-level information in video and image coding
BR112022009084A2 (en) 2019-11-11 2022-07-26 Lg Electronics Inc IMAGE CODING METHOD BASED ON A TRANSFORM, AND EQUIPMENT OF THE SAME
GB2590634A (en) 2019-12-20 2021-07-07 Canon Kk High Level syntax for video coding and decoding
US20210195179A1 (en) 2019-12-23 2021-06-24 Qualcomm Incorporated Picture header signaling for video coding
US11503342B2 (en) 2020-06-10 2022-11-15 Sharp Kabushiki Kaisha Systems and methods for signaling sequence parameter information in video coding
EP3984222A4 (en) 2020-08-13 2022-10-26 Beijing Dajia Internet Information Technology Co., Ltd. Chroma coding enhancement in cross-component sample adaptive offset

Also Published As

Publication number Publication date
JP2024015290A (en) 2024-02-01
US20220264086A1 (en) 2022-08-18
US11722660B2 (en) 2023-08-08
JP7414980B2 (en) 2024-01-16
MX2022004200A (en) 2022-05-02
CN117376557A (en) 2024-01-09
EP4029274A4 (en) 2022-11-30
US20230308641A1 (en) 2023-09-28
JP2022551937A (en) 2022-12-14
CN114556955B (en) 2024-04-05
EP4029274A1 (en) 2022-07-20
WO2021073488A1 (en) 2021-04-22
CN114556955A (en) 2022-05-27

Similar Documents

Publication Publication Date Title
JP7414980B2 (en) Interaction between reference picture resampling and video coding tools
KR102637881B1 (en) Usage and signaling of tablet video coding tools
JP7324940B2 (en) Scaling window in video coding
JP7391199B2 (en) Level-based signaling for video coding tools
JP7328445B2 (en) Derivation of reference sample positions in video coding
WO2021129866A1 (en) Signaling of slice types in video pictures headers
WO2021129867A1 (en) Restricting tile width in video coding

Legal Events

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