KR102580875B1 - 비디오 코딩을 위한 무손실 코딩 모드 - Google Patents

비디오 코딩을 위한 무손실 코딩 모드 Download PDF

Info

Publication number
KR102580875B1
KR102580875B1 KR1020217043013A KR20217043013A KR102580875B1 KR 102580875 B1 KR102580875 B1 KR 102580875B1 KR 1020217043013 A KR1020217043013 A KR 1020217043013A KR 20217043013 A KR20217043013 A KR 20217043013A KR 102580875 B1 KR102580875 B1 KR 102580875B1
Authority
KR
South Korea
Prior art keywords
flag
coding
current block
bit flag
turn
Prior art date
Application number
KR1020217043013A
Other languages
English (en)
Other versions
KR20220000962A (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 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드
Priority to KR1020237031708A priority Critical patent/KR20230135187A/ko
Publication of KR20220000962A publication Critical patent/KR20220000962A/ko
Application granted granted Critical
Publication of KR102580875B1 publication Critical patent/KR102580875B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/513Processing of motion vectors
    • 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

무손실 코딩 모드를 사용한 비디오 코딩을 위한 방법 및 장치가 제공된다. 상기 방법은, 비디오 픽처를 무손실 코딩 단위(CU)를 포함하는 복수의 CU들로 분할하는 단계; 상기 무손실 CU의 잔여 코딩 블록 사이즈를 확정하는 단계; 및 상기 무손실 CU의 상기 잔여 코딩 블록 사이즈가 미리 정의된 최대값보다 크다는 확정에 응답하여, 상기 잔여 코딩 블록을 잔여 코딩을 위한 두개 또는 그 이상의 잔여 블록들로 분할하는 단계, 를 포함한다.

Description

비디오 코딩을 위한 무손실 코딩 모드
본 개시는 일반적으로 비디오 코딩 및 압축에 관한 것이다. 보다 구체적으로, 본 개시는 비디오 코딩을 위한 무손실 코딩의 개선 및 단순화에 관한 것이다.
다양한 비디오 코딩 기술이 비디오 데이터 압축에 사용될 수 있다. 하나 혹은 그 이상의 비디오 코딩 표준에 따라 비디오 코딩을 수행할 수 있다. 예를 들어, 비디오 코딩 표준은 다용도 비디오 코딩(Versatile Video Coding, VVC), 공동 탐사 테스트 모델(Joint Exploration Test Model, JEM), 고 효율 비디오 코딩(High-Efficiency Video Coding, H.265/HEVC), 고급 비디오 코딩(Advanced Video Coding, H.264/AVC), 동영상 전문가 그룹(Moving Picture Expert Group, MPEG) 등을 포함한다.
일반적으로, 비디오 코딩은 비디오 이미지들 또는 시퀀스들에 존재하는 중복성을 활용하는 예측 방법(예를 들어, 인터-예측, 인트라-예측 등)을 사용할 수 있다. 비디오 코딩 기술들의 중요한 목표는 비디오 데이터를 더 낮은 비트 레이트(bit rate)을 사용하는 형식으로 압축하면서도 비디오 품질 저하를 방지하거나 최소화하는 것이다.
HEVC의 첫 번째 버전은 2013년 10월에 완성되었는데, 이는 이전 세대의 비디오 코딩 표준 H.264/MPEG AVC에 비해 약 50%의 비트 레이트 절감 또는 동등한 수준의 인지 화질(perceptual quality)을 제공한다. HEVC 표준은 전작보다 상당한 코딩 개선을 제공하지만, 추가적인 코딩 도구를 사용하여 HEVC에 비해 우수한 코딩 효율성을 달성할 수 있다는 증거가 존재한다. 이에 기반하여, VCEG와 MPEG는 모두 미래의 비디오 코딩 표준화를 위한 새로운 코딩 기술 탐구를 시작하였다. ITU-T VECG와 ISO/IEC MPEG는 2015년 10월에 공동 비디오 탐사팀(Joint Video Exploration Team, JVET)을 구성하여 코딩 효율성을 크게 향상시킬 수 있는 첨단 기술에 대한 중요한 연구를 시작하였다. JVET는 HEVC 테스트 모델(HEVC test model, HM) 위에 몇몇 추가 코딩 도구를 통합함으로써 공동 탐사 모델(Joint Exploration Model, JEM)이라고 불리는 하나의 참조 소프트웨어를 유지한다.
2017년 10월, ITU-T와 ISO/IEC는 HEVC를 능가한 기능을 갖춘 비디오 압축에 대한 공동 제안 요청(Joint Call for Proposal, CfP)을 발표하였다. 2018년 4월, 제10차 JVET 회의에서 23개의 CfP 응답을 접수하고 평가하였는데, 이는 HEVC보다 약 40%를 초과하는 압축 효율성 이득을 입증하였다. JVET는 이와 같은 평가 결과를 기반으로 "다용도 비디오 코딩(Versatile Video Coding, VVC)"으로 명명된 신세대 비디오 코딩 표준을 개발하는 새로운 프로젝트를 런칭하였다. 같은 달에 VVC 표준의 참조 구현을 입증하기 위해 VVC 테스트 모델(VTM)이라고 불리는 하나의 참조 소프트웨어 코드베이스(codebase)가 설립되었다.
본 개시에 개시된 실시예는 비트스트림으로부터 도출되는 인디케이션들에 기반하여 비디오 픽처의 변환 스킵 모드에서의 블록을 위한 잔여 코딩 방안을 확정하는데 그 목적이 있다.
본 개시의 제1 측면에 의하면, 비디오 코딩을 위한 무손실 코딩 모드 방법을 제공하였으며, 상기 방법은, 비디오 픽처를 무손실 코딩 단위(CU)를 포함하는 복수의 CU들로 분할하는 단계; 상기 무손실 CU의 잔여 코딩 블록 사이즈를 확정하는 단계; 및 상기 무손실 CU의 상기 잔여 코딩 블록 사이즈가 미리 정의된 최대값보다 크다는 확정에 응답하여, 상기 잔여 코딩 블록을 잔여 코딩을 위한 두개 또는 그 이상의 잔여 블록들로 분할하는 단계, 를 포함한다.
본 개시의 제2 측면에 의하면, 비디오 코딩을 위한 무손실 코딩 모드 방법을 제공하였으며, 상기 방법은, 비디오 픽처를 무손실 코딩 단위(CU)를 포함하는 복수의 CU들로 분할하는 단계; 및 상기 무손실 CU에 대하여 잔여 코딩 방안을 선택하되, 상기 무손실 CU에 대하여 선택한 상기 잔여 코딩 방안은 비-변환 스킵 모드 CU들에 의해 사용되는 잔여 코딩 방안과 동일한 단계, 를 포함한다.
본 개시의 제3 측면에 의하면, 비디오 코딩을 위한 무손실 코딩 모드 장치를 제공하였으며, 상기 장치는, 하나 또는 그 이상의 프로세서; 및 상기 하나 또는 그 이상의 프로세서들에 의해 실행 가능한 명령어를 저장하도록 구성된 메모리, 를 포함하되, 상기 하나 또는 그 이상의 프로세서들은 상기 명령어를 실행시 아래와 같은 동작을 수행하도록 구성되며: 비디오 픽처를 무손실 코딩 단위(CU)를 포함하는 복수의 CU들로 분할하고; 상기 무손실 CU의 잔여 코딩 블록 사이즈를 확정하고; 및 상기 무손실 CU의 상기 잔여 코딩 블록 사이즈가 미리 정의된 최대값보다 크다는 확정에 응답하여, 상기 잔여 코딩 블록을 잔여 코딩을 위한 두개 또는 그 이상의 잔여 블록들로 분할한다.
본 개시의 제4 측면에 의하면, 비디오 코딩을 위한 무손실 코딩 모드 장치를 제공하였으며, 상기 장치는, 하나 또는 그 이상의 프로세서; 및 상기 하나 또는 그 이상의 프로세서들에 의해 실행 가능한 명령어를 저장하도록 구성된 메모리, 를 포함하되, 상기 하나 또는 그 이상의 프로세서들은 상기 명령어를 실행시 아래와 같은 동작을 수행하도록 구성되며: 비디오 픽처를 무손실 코딩 단위(CU)를 포함하는 복수의 CU들로 분할하고; 및 상기 무손실 CU에 대하여 잔여 코딩 방안을 선택하되, 상기 무손실 CU에 대하여 선택한 상기 잔여 코딩 방안은 비-변환 스킵 모드 CU들에 의해 사용되는 잔여 코딩 방안과 동일하다.
본 개시의 제5 측면에 의하면, 비디오 코딩을 위한 장치를 제공하였으며, 상기 장치는, 하나 또는 그 이상의 프로세서; 및 상기 하나 또는 그 이상의 프로세서들에 의해 실행 가능한 명령어를 저장하도록 구성된 비-일시적 저장 매체, 를 포함하되, 상기 명령어들은 실행시 상기 하나 또는 그 이상의 프로세서들로 하여금 동작들을 수행하도록 하며, 상기 동작들은, 비디오 픽처를 무손실 코딩 단위(CU)를 포함하는 복수의 CU들로 분할하고; 상기 무손실 CU의 잔여 코딩 블록 사이즈를 확정하고; 및 상기 무손실 CU의 상기 잔여 코딩 블록 사이즈가 미리 정의된 최대값보다 크다는 확정에 응답하여, 상기 잔여 코딩 블록을 잔여 코딩을 위한 두개 또는 그 이상의 잔여 블록들로 분할하는 것, 을 포함한다.
본 개시의 제6 측면에 의하면, 비디오 코딩을 위한 장치를 제공하였으며, 상기 장치는, 하나 또는 그 이상의 프로세서; 및 상기 하나 또는 그 이상의 프로세서들에 의해 실행 가능한 명령어를 저장하도록 구성된 비-일시적 저장 매체, 를 포함하되, 상기 명령어들은 실행시 상기 하나 또는 그 이상의 프로세서들로 하여금 동작들을 수행하도록 하며, 상기 동작들은, 비디오 픽처를 무손실 코딩 단위(CU)를 포함하는 복수의 CU들로 분할하고; 및 상기 무손실 CU에 대하여 잔여 코딩 방안을 선택하되, 상기 무손실 CU에 대하여 선택한 상기 잔여 코딩 방안은 비-변환 스킵 모드 CU들에 의해 사용되는 잔여 코딩 방안과 동일한 것,을 포함한다.
본 개시는 비트스트림으로부터 도출되는 인디케이션들에 기반하여 비디오 픽처의 변환 스킵 모드에서의 블록을 위한 잔여 코딩 방안을 확정함으로써, 비디오 코딩을 위한 무손실 코딩을 개선 및 단순화시킬 수 있다.
본 개시의 실시예들에 대한 보다 구체적인 설명은 첨부된 도면에 예시된 특정 실시예들을 참조하여 설명될 것이다. 이러한 도면들이 일부 실시예만을 도시하고 범위를 제한하는 것으로 간주하여서는 아니되며, 첨부된 도면 및 추가적인 특수성 및 세부사항을 통하여 실시예들은 설명될 것이다.
도 1은 본 개시의 일부 구현 방식들에 따른 예시적인 비디오 인코더를 도시하는 블록도이다.
도 2a는 본 개시의 일부 구현 방식들에 따른 멀티-타입 트리(multi-type tree) 구조의 쿼터너리 블록 분할(quaternary block partition)을 도시하는 개략도이다.
도 2b는 본 개시의 일부 구현 방식들에 따른 멀티-타입 트리 구조의 수평 바이너리 블록 분할(horizontal binary block partition)을 도시하는 개략도이다.
도 2c는 본 개시의 일부 구현 방식들에 따른 멀티-타입 트리 구조의 수직 바이너리 블록 분할(vertical binary block partition)을 도시하는 개략도이다.
도 2d는 본 개시의 일부 구현 방식들에 따른 멀티-타입 트리 구조의 수평 터너리 블록 분할(horizontal ternary block partition)을 도시하는 개략도이다.
도 2e는 본 개시의 일부 구현 방식들에 따른 멀티-타입 트리 구조의 수직 터너리 블록 분할(vertical ternary block partition)을 도시하는 개략도이다.
도 3a는 본 개시의 일부 구현 방식들에 따른 예시적인 비디오 디코더를 도시하는 블록도이다.
도 3b는 본 개시의 일부 구현 방식들에 따른 디코더측 움직임 벡터 미세화(Decoder-side Motion Vector Refinement, DMVR)의 일 예를 도시하는 개략도이다.
도 4는 본 개시의 일부 구현 방식들에 따른 픽처를 CTU들로 분할하고 타일 및 타일 그룹들로 더 분할하는 일 예를 도시하는 개략도이다.
도 5는 본 개시의 일부 구현 방식들에 따른 픽처를 CTU들로 분할하고 타일 및 타일 그룹들로 더 분할하는 다른 예를 도시하는 개략도이다.
도 6a는 본 개시의 일부 구현 방식들에 따른 허용되지 않는 TT 및 BT 분할의 일 예를 도시하는 개략도이다.
도 6b는 본 개시의 일부 구현 방식들에 따른 허용되지 않는 TT 및 BT 분할의 일 예를 도시하는 개략도이다.
도 6c는 본 개시의 일부 구현 방식들에 따른 허용되지 않는 TT 및 BT 분할의 일 예를 도시하는 개략도이다.
도 6d는 본 개시의 일부 구현 방식들에 따른 T허용되지 않는 T 및 BT 분할의 일 예를 도시하는 개략도이다.
도 6e는 본 개시의 일부 구현 방식들에 따른 허용되지 않는TT 및 BT 분할의 일 예를 도시하는 개략도이다.
도 6f는 본 개시의 일부 구현 방식들에 따른 허용되지 않는 TT 및 BT 분할의 일 예를 도시하는 개략도이다.
도 6g는 본 개시의 일부 구현 방식들에 따른 허용되지 않는 TT 및 BT 분할의 일 예를 도시하는 개략도이다.
도 6h는 본 개시의 일부 구현 방식들에 따른 허용되지 않는 TT 및 BT 분할의 일 예를 도시하는 개략도이다.
도 7은 본 개시의 일부 구현 방식들에 따른 비디오 코딩을 위한 무손실 코딩 모드들의 예시적인 장치를 도시하는 블록도이다.
도 8은 본 개시의 일부 구현 방식들에 따른 비디오 코딩을 위한 무손실 코딩 모드들의 예시적인 프로세스를 도시하는 흐름도이다.
도 9는 본 개시의 일부 구현 방식들에 따른 비디오 코딩을 위한 무손실 코딩 모드들의 다른 예시적인 프로세스를 도시하는 흐름도이다.
이하 그 예가 첨부 도면에 도시되어 있는 특정 구현 방식들을 상세히 설명한다. 다음의 상세한 설명에서, 본 명세서에 기재된 내용의 이해를 돕기 위하여 복수의 비-제한적인 특정 세부 사항이 설명된다. 그러나, 다양한 변경을 진행할 수 있음은 당업자에게 자명한 것이다. 예를 들어, 본 명세서에 기재한 기술적 방안은 디지털 비디오 기능을 구비한 다양한 유형의 전자 장치에서 구현될 수 있음은 당업자에게 자명한 것이다.
본 명세서 전반에 걸쳐 "일 실시예", "실시예", "예", "일부 실시예", "일부 예"또는 유사한 용어는 설명 된 특정 특징, 구조 또는 특성이 적어도 하나의 실시예 또는 예에 포함된다는 것을 의미한다. 하나 또는 일부 실시예와 관련하여 설명된 특징, 구조, 요소 또는 특성은 달리 명시적으로 명시되지 않는 한 다른 실시예에도 적용이 가능하다.
달리 명시적으로 명시하지 않는 한, 본 개시 전반에 걸쳐, "제1", "제2", "제3" 등의 용어는 관련요소(예를 들어, 장치, 요소, 구성, 단계 등)에 대한 참조를 위한 명명법으로만 사용되는 것이지, 공간적 또는 시간적 순서를 암시하지 않는다. 예를 들어, "제1 장치" 및 "제2 장치"는 별도로 형성된 두개의 장치 또는 동일한 장치의 두 부분, 구성 또는 동작 상태를 의미할 수 있으며, 임의로 명명될 수 있다.
본 명세서에서 사용된 바와 같이, 용어 "만약" 또는 "...경우"는 문맥에 따라 "...할때" 또는 "...응답하여"를 의미하는 것으로 이해될 수 있다. 만약 이러한 용어가 청구항에 기재되면, 관련 제한 또는 특징이 조건부 또는 선택 사항임을 가리키지 않을 수 있다.
용어 "모듈", "서브-모듈", "회로", "서브-회로", "회로망", "서브-회로망", "유닛" 또는 "서브-유닛"은 하나 또는 그 이상의 프로세서에서 실행할 수 있는 코드 또는 명령어를 저장하는 메모리(공유, 전용 또는 그룹)를 포함할 수 있다. 모듈은 저장된 코드 또는 명령어를 가지거나 가지지 않는 하나 또는 그 이상의 회로를 포함할 수 있다. 모듈 또는 회로는 직접 또는 간접적으로 연결된 하나 또는 그 이상의 구성 요소들을 포함할 수 있다. 이러한 구성 요소들은 서로 물리적으로 부착되거나 인접하여 위치할 수도 있고 그렇지 않을 수도 있다.
유닛 또는 모듈은 단순히 소프트웨어, 단순히 하드웨어, 또는 하드웨어와 소프트웨어의 조합에 의해 구현될 수 있다. 예를 들어, 단순한 소프트웨어 구현방식에서, 유닛 또는 모듈은 특정 기능을 수행하기 위하여 함께 직접 또는 간접적으로 연결된 기능적으로 관련된 코드 블록 또는 소프트웨어 구성 요소들을 포함할 수 있다.
도 1은 블록-기반 프로세스를 사용하는 복수의 비디오 코딩 표준들과 함께 사용할 수 있는 예시적인 블록-기반 하이브리드 비디오 인코더(100)를 도시하는 블록도를 도시한다. VVC는 블록-기반 하이브리드 비디오 코딩 프레임워크(framework)상에 구축된다. 인코더 100에서, 입력 비디오 신호는 블록별로 처리되며, 블록은 코딩 단위(coding unit, CU)라고 한다. VTM-1.0에서, CU는 128Х128에 달하는 픽셀들일 수 있다. 다만, 쿼드-트리들만을 기반으로 블록들을 분할하는 HEVC와는 달리, VVC에서는 하나의 코딩 트리 단위(CTU)가 다양한 국부 특성에 적응하기 위해 쿼드-트리/바이너리-트리/터너리-트리를 기반으로 하여 CU들로 분할된다. 정의에 따르면, 코딩 트리 블록(CTB)은, 컴포넌트를 CTB들로 분할하는 것이 파티셔닝이 되도록, 어떤 N값에 대한 NХN 샘플 블록이다. CTU는 3개의 샘플 어레이들을 가진 픽처의 루마 샘플들의 CTB와 크로마 샘플들의 2개의 대응되는 CTB, 또는 모노크롬(monochrome) 픽처 혹은 3개의 별도의 컬러 평면들과 샘플들을 코딩하는데 사용되는 신택스 구조를 사용하여 코딩된 픽처의 샘플들의 CTB를 포함한다. 또한, HEVC에서 다중 분할 단위(multiple partition unit) 타입의 개념은 제거된다. 즉, CU, 예측 단위(prediction unit, PU) 및 변환 단위(transform unit, TU)의 구분은 더 이상 VVC에 존재하지 않는다. 대신, 각 CU는 항상 추가 분할 없이 예측과 변환을 위한 기본 단위로 사용된다.
멀티-타입 트리 구조에서, 하나의 CTU를 먼저 쿼드-트리 구조로 분할한다. 다음, 각 쿼드-트리 리프 노드(leaf node)를 바이너리 트리 및 터너리 트리 구조로 더 분할한다. 도 2a 내지 도 2e에 도시된 바와 같이, 쿼터너리 분할(도 2a), 수평 이진 분할(도 2b), 수직 이진 분할(도 2c), 수평 삼진 분할(도 2d) 및 수직 삼진 분할(도 2e) 등 5가지 분할 타입들이 존재한다.
각각의 주어진 비디오 블록에 대하여, 인터 예측 방법 또는 인트라 예측 방법에 기반하여 예측을 형성된다. 인터 예측에서, 사전에 재구성된 프레임들의 픽셀들을 기반으로 움직임 추정 및 움직임 보상을 통해 하나 혹은 그 이상의 예측자를 형성한다. 인트라 예측에서, 현재 프레임 중의 재구성된 픽셀들을 기반으로 예측자를 형성한다. 모드 결정을 통하여 최적의 예측자를 선택하여 현재 블록을 예측할 수 있다.
현재 비디오 블록과 그 예측자 사이의 차이를 나타내는 예측 잔여는 변환 회로(102)로 전송된다. 변환 계수들은 엔트로피 감소를 위해 변환 회로(102)에서 양자화 회로(104)로 전송된다. 다음, 양자화된 계수들은 엔트로피 코딩 회로(106)에 공급되어 압축된 비디오 비트스트림을 생성한다. 도 1에 도시된 바와 같이, 인터 예측 회로 및/또는 인트라 예측 회로(112)로부터의 비디오 블록 파티션 정보, 움직임 벡터들, 참조 픽처 인덱스 및 인트라 예측 모드와 같은 예측 관련 정보(110)도 엔트로피 코딩 회로(106)를 통해 공급되고 압축된 비디오 비트스트림(114)에 저장된다.
인코더(100)에서, 예측 목적을 위하여 픽셀들을 재구성하기 위하여, 디코더 관련 회로들도 또한 필요하다. 먼저, 예측 잔여는 역양자화(116) 및 역변환 회로(118)를 통해 재구성된다. 이와 같이 재구성된 예측 잔여는 블록 예측자(120)와 결합되어 현재 비디오 블록에 대한 필터링되지 않은 재구성된 픽셀들을 생성한다.
공간적 예측(또는 "인트라 예측")은 현재 비디오 블록과 동일한 비디오 프레임 중의 이미 코딩된 인접 블록(참조 샘플이라고 함)들의 샘플들의 픽셀들을 사용하여 현재 비디오 블록을 예측한다.
시간적 예측("인터 예측"이라고도 알려짐)은 이미 코딩된 비디오 픽처들의 재구성된 픽셀들을 사용하여 현재 비디오 블록을 예측한다. 시간적 예측은 비디오 신호에 내재된 시간적 중복성을 줄여준다. 주어진 코딩 단위(CU)에 대한 시간적 예측 신호는 일반적으로 하나 혹은 그 이상의 움직임 벡터(MV)에 의해 시그널링되되, 상기 하나 혹은 그 이상의 움직임 벡터(MV)는 현재 CU와 그의 시간적 참조 사이의 움직임의 양과 방향을 가리킬 수 있다. 또한, 복수의 참조 픽처들을 지원하는 경우, 하나의 참조 픽처 인덱스가 추가로 전송되며, 이는 참조 픽처 스토리지 중의 어느 참조 픽처에서 시간적 예측 신호가 오는지 식별하기 위하여 사용된다.
공간적 및/또는 시간적 예측을 수행한 다음, 인코더(100) 중의 인트라/인터 모드 결정 회로(121)는 예를 들어 레이트-왜곡 최적화 방법(rate-distortion optimization method)에 기반하여 최적의 예측 모드를 선택한다. 그 다음, 현재 비디오 블록으로부터 블록 예측자(120)를 감산하고, 그 결과인 예측 잔여는 변환 회로(102) 및 양자화 회로(104)를 사용하여 역상관한다. 그 결과인 양자화된 잔여 계수는 역양자화 회로(116)에 의해 역양자화되고 역변환 회로(118)에 의해 역변환되어 재구성된 잔여가 형성되고,다음 재구성된 잔여는 예측 블록에 다시 가산되어 CU의 재구성된 신호를 형성한다. 재구성된 CU를 픽처 버퍼(117)의 참조 픽처 스토리지에 저장하기 전에 및 미래의 비디오 블록들을 코딩하기 위하여 사용하기 전에, 디블록킹 필터(deblocking filter), 샘플 적응적 오프셋(sample adaptive offset, SAO) 및 적응적 인-루프 필터(adaptive in-loop filter, ALF)와 같은 추가 인-루프 필터링(115)을 재구성된 CU에 추가로 적용할 수 있다. 출력 비디오 비트스트림(114)을 형성하기 위하여, 코딩 모드(인터 또는 인트라), 예측 모드 정보, 움직임 정보 및 양자화된 잔여 계수가 모두 엔트로피 코딩 유닛(106)으로 전송되어 추가로 압축되고 패킹되어 비트스트림을 형성한다.
예를 들어, 디블로킹 필터는 AVC, HEVC 및 현재 버전의 VVC에서 사용할 수 있다. HEVC에서, 코딩 효율성을 더욱 향상시키기 위해 샘플 적응적 오프셋(sample adaptive offset, SAO)라는 추가 인-루프 필터가 정의되었다. 현재 버전의 VVC 표준에서,적응적 루프 필터(adaptive loop filter, ALF)라는 또 다른 인-루프 필터에 대한 연구가 활발히 진행되고 있으며 최종 표준에 포함될 가능성이 높다.
이러한 인-루프 필터 동작은 선택 사항이다. 이러한 동작들을 수행하면 코딩 효율과 시각적 품질을 개선하는데 도움이 된다. 이들은 또한 계산 복잡성을 줄이기 위해 인코더(100)에 의해 렌더링된 결정으로서 턴-오프될 수 있다.
이러한 필터 옵션이 인코더(100)에 의하여 턴-온 된 경우, 인트라 예측은 일반적으로 필터링되지 않은 재구성된 픽셀을 기반으로 진행하는 반면 인터 예측은 필터링된 재구성된 픽셀을 기반으로 진행한다는 점에 유의해야 한다.
도 3a는 복수 비디오 코딩 표준들과 함께 사용할 수 있는 예시적인 블록-기반 비디오 디코더(200)를 도시하는 블록도이다. 당해 디코더(200)는 도 1의 인코더(100)에 상주하는 재구성 관련 부분과 유사하다. 디코더(200)에서 먼저 엔트로피 디코딩(202)을 통해 입력되는 비디오 비트스트림(201)을 디코딩하여 양자화된 계수 레벨들 및 예측 관련 정보를 도출한다. 다음, 양자화된 계수 레벨들은 역양자화(204) 및 역변환(206)을 통해 양자화된 계수 레벨들은 처리하여 재구성된 예측 잔여를 획득한다. 인트라/인터 모드 선택기(212)에서 구현되는 블록 예측자 메커니즘은 디코딩된 예측 정보에 기반하여 인트라 예측(208) 또는 움직임 보상(210)을 수행하도록 구성된다. 가산기(214)를 사용하여 역변환(206)의 재구성된 예측 잔차와 블록 예측자 메커니즘에 의해 생성된 예측 출력을 합산하여 필터링되지 않은 재구성된 픽셀 세트를 획득한다.
재구성된 블록은 참조 픽처 스토리지로 기능하는 픽처 버퍼(213)에 저장되기 전에 인-루프 필터(209)를 먼저 거칠 수 있다. 픽처 버퍼(213) 중의 재구성된 비디오는 전송되어 디스플레이 장치를 구동할 수 있을 뿐만 아니라 미래의 비디오 블록을 예측하기 위하여 사용될 수 있다. 인-루프 필터(209)를 턴-온한 경우, 이러한 재구성된 픽셀들에 대해 필터링 작업을 수행하여 최종 재구성된 비디오 출력(222)을 유도할 수 있다.
일반적으로 VVC에서 적용하는 기본 인트라 예측 방안은, 몇 가지 모듈이 추가로 확장 및/또는 개선되는 점(예를 들어, 인트라 서브-분할(Intra Sub-Partition, ISP) 코딩 모드, 광각 인트라 방향(wide-angle intra directions)을 가진 확장 인트라 예측(extended intra prediction), 위치-의존적 인트라 예측 조합(position-dependent intra prediction combination, PDPC) 및 4-탭 인트라 보간(4-tap intra interpolation))을 제외하면 HEVC의 기본 인트라 예측 방안과 동일하게 유지한다.
VVC에서의 픽처들, 타일 그룹들, 타일들 및 CTU들의 분할
VVC에서, 타일을 픽처의 특정 타일 열과 특정 타일 행 내에 있는 CTU들의 직사각형 영역으로 정의한다. 타일 그룹은 픽처의 단일 NAL 유닛에 배타적으로 포함된 정수개의 타일들의 그룹이다. 기본적으로, 타일 그룹의 개념은 HEVC에서 정의한 슬라이스와 동일하다. 예를 들어, 픽처들은 타일 그룹들과 타일들로 나뉜다.
타일은 픽처의 직사각형 영역을 커버하는 CTU들의 시퀀스이다. 타일 그룹은 픽처의 복수의 타일들을 포함한다. 타일 그룹들의 두가지 모드들을 지원하는데, 래스터-스캔(raster-scan) 타일 그룹 모드와 직사각형 타일 그룹 모드이다. 래스터-스캔 타일 그룹 모드에서, 타일 그룹은 픽처의 타일 래스터별로 스캔한 타일들의 시퀀스를 포함한다. 직사각형 타일 그룹 모드에서, 타일 그룹은 픽처의 직사각형 영역을 공동으로 형성하는 픽처의 복수의 타일들을 포함한다. 직사각형 타일 그룹 내의 타일들은 타일 그룹의 타일 래스터 스캔 순서이다.
도 4는 픽처를 12개의 타일들과 3개의 래스터-스캔 타일 그룹들로 분할하는 픽처의 래스터-스캔 타일 그룹 분할의 일 예를 도시한다.
도 5는 픽처를 24개의 타일들(6개의 타일 열과 4개의 타일 행)과 9개의 직사각형 타일 그룹들로 분할하는 픽처의 직사각형 타일 그룹 분할의 일 예를 보여준다.
VVC에서의 고주파 제로잉(high-frequency zeroing)을 통한 라지 블록-사이즈 변환
VTM4에서, 사이즈가 64Х64에 달하는 라지 블록-사이즈 변환이 인에이블(enable)되는데, 이는 주로 고해상도 비디오, 예를 들어 1080p 및 4K 시퀀스 등에 사용된다. 사이즈(너비 또는 높이, 혹은 너비 및 높이)가 64와 동일한 변환 블록의 경우, 고주파 변환 계수가 제로잉되어 저주파 계수만 유지된다. 예를 들어, MХN 변환 블록의 경우, M이 블록 너비이고 N이 블록 높이일때, M이 64와 동일하면 변환 계수의 좌측 32개 열만 유지된다. 마찬가지로, N이 64와 동일하면 변환 계수의 상측 32개 행만 유지된다. 라지 블록에 변환 스킵 모드를 사용할 경우, 전체 블록을 사용하되 값을 제로잉하지 않는다.
VVC에서의 가상 파이프라인 데이터 단위(Virtual pipeline data unit, VPDU)
가상 파이프라인 데이터 단위(Virtual pipeline data unit, VPDU)는 픽처의 비중첩 단위(non-overlapping unit)로 정의된다. 하드웨어 디코더에서, 연속적인 VPDU들은 복수의 파이프라인 스테이지들에서 동시에 처리된다. VPDU 사이즈는 대부분의 파이프라인 스테이지들에서 버퍼 사이즈에 대략적으로 비례하므로, VPDU 사이즈를 작게 유지하는 것이 중요하다. 대부분의 하드웨어 디코더들에서, VPDU 사이즈는 최대 변환 블록(TB) 사이즈로 설정할 수 있다. 그러나, VVC에서는 터너리 트리(Ternary Tree, TT) 및 바이너리 트리(Binary Tree, BT) 분할로 인해 VPDU 사이즈가 증가할 수 있다.
VPDU 사이즈를 64×64 루마 샘플들로 유지하기 위하여, 도 6a 내지 도 6h에 도시된 바와 같이, VTM5에 다음과 같은 규범적 분할 제한(normative partition restriction, 신택스 시그널링으로 수정함)을 적용한다.
- 너비 또는 높이 혹은 너비 및 높이가 모두 128과 동일한 CU의 경우, TT 분할을 허용하지 않는다. (도 6a, 6b, 6e, 6f, 6g 및 6h).
- N≤128인 128×N CU의 경우(즉, 너비가 128과 동일하고 높이가 128보다 작거나 동일한 경우), 수평 BT를 허용하지 않는다. (도 6d).
- N ≤ 128인 N×128 CU의 경우(즉, 높이가 128과 동일하고 너비가 128보다 작거나 동일한 경우), 수직 BT를 허용하지 않는다. (도 6c).
VVC에서의 변환 계수 코딩
변환 계수 코딩은 TU의 변환 계수 양자화 레벨 값들의 코딩 프로세스를 의미한다. HEVC에서, 코딩 블록의 변환 계수들은 비중첩 계수 그룹들(또는 서브 블록들)을 사용하여 코딩되고, 각 CG는 코딩 블록의 4×4 블록의 계수들을 포함한다. 코딩 블록 내의 CG들 및 CG 내의 변환 계수들을 미리 정의된 스캔 순서들에 따라 코딩한다. 적어도 하나의 0이 아닌 변환 계수를 갖는 CG의 변환 계수 레벨들의 코딩은 복수의 스캔 패스(scan pass)들로 분리할 수 있다. 첫 번째 패스에서, 제1 빈(bin0으로 표시됨, 계수의 크기가 0보다 큼을 가리키는 Important_coeff_flag이라고도 함)을 코딩한다. 다음으로, 제2 빈 및 제3 빈(각각 bin1 및 bin2로 표시됨, coeff_abs_greater1_flag 및 coeff_abs_greater2_flag이라고도 함)을 컨텍스트 코딩하기 위한 2개의 스캔 패스를 적용할 수 있다. 마지막으로, 필요한 경우, 계수 레벨들의 부호 정보 및 나머지 값(coeff_abs_level_remaining이라고도 함)을 코딩하기 위한 다른 2개의 스캔 패스를 호출한다. 유의해야 할 점은, 처음 3개 스캔 패스들의 빈만 레귤러 모드에서 코딩하며 다음의 설명에서는 이러한 빈들을 레귤러 빈(regular bin)들이라고 한다.
VVC 3에서, 각 서브블록에 대해, 레귤러 코딩된 빈(regular coded bin)들과 바이패스 코딩된 빈(bypass coded bin)들을 코딩 순서로 분리하고; 먼저 서브 블록에 대한 모든 레귤러 코딩된 빈들을 전송한 후 바이패스 코딩된 빈들을 전송한다. 서브 블록의 변환 계수 레벨들을 다음과 같이 스캔 위치들에 대해 4개의 패스들로 코딩한다.
패스 1: 유효성(signific_sign), 1보다 큰 플래그(gt1_sign), 패리티(parity, par_level_sign), 2보다 큰 플래그(gt2_sign)의 코딩을 코딩 순서대로 처리한다. sig_flag가 1과 동일하면, gt1_flag를 먼저 코딩한다(절대 레벨이 1보다 큰지 여부를 지정). gt1_flag가 1과 동일하면, par_level_flag를 추가로 코딩한다(절대 레벨-2의 패리티를 지정).
패스 2: gt2_flag가 1과 동일하거나 gt1_flag가 1과 동일한 모든 스캔 위치에 대해 나머지 절대 레벨(나머지 부분)의 코딩을 처리한다. 비-바이너리 신택스 요소(non-binary syntax element)는 Golomb-Rice 코드로 이진화하며, 획득한 빈들은 산술 코딩 엔진의 바이패스 모드에서 코딩한다.
패스 3: 첫 번째 패스에서 sig_flag를 코팅하지 않은 계수들의 절대 레벨(absLevel)은 Golomb-Rice 코드를 사용하여 산술 코딩 엔진의 바이패스 모드에서 완전히 코딩한다.
패스 4: sig_coeff_flag가 1과 동일한 모든 스캔 위치들에 대한 부호(sign_flag)의 코딩을 처리한다.
4×4 서브 블록의 경우, 32개를 초과하지 않는 레귤러 코딩된 빈(sig_flag, par_flag, gt1_flag 및 gt2_flag)들이 인코딩 또는 디코딩됨을 보장한다. 2×2 크로마 서브 블록들의 경우, 레귤러 코딩된 빈들의 수는 8로 제한한다.
HEVC와 유사하게, 비-바이너리 신택스 요소의 나머지 부분(패스 3에서)을 코딩하기 위한 Rice 파라미터(ricePar)를 도출한다. 각 서브 블록의 시작에서, ricePar는 0과 동일하도록 설정한다. 신택스 요소의 나머지 부분을 코딩한 후, Rice 파라미터를 미리 정의된 식에 따라 수정한다. 비-바이너리 신택스 요소 absLevel(패스 4에서)을 코딩하기 위하여, 로컬 템플릿(local template)에서 절대값 sumAbs의 합을 확정한다. 변수 ricePar 및 posZero는 종속 양자화(dependent quantization) 및 sumAbs를 기반으로 테이블 조회(look-up)를 통해 확정한다. 중간 변수 codeValue는 다음과 같이 도출한다.
- absLevel[k]가 0과 동일하면, codeValue를 posZero와 동일하도록 설정한다.
- 그렇지 않을 경우, absLevel[k]가 posZero보다 작거나 posZero와 동일하면, codeValue를 absLevel[k]-1과 동일하도록 설정한다.
- 그렇지 않을 경우(absLevel[k]가 posZero보다 큼), codeValue를 absLevel[k]과 동일하도록 설정한다.codeValue 값은 Rice 파라미터 ricePar를 가지는 Golomb-Rice 코드를 사용하여 코딩한다.
본 개시의 다음의 설명에서, 변환 계수 코딩은 잔여 코딩(residual coding)으로도 지칭한다.
VVC의 디코더측 움직임 벡터 미세화(Motion Vector Refinement, DMVR)
디코더측 움직임 벡터 미세화(Motion Vector Refinement, DMVR)는 양방향 예측 머지 모드(bi-prediction Merge mode)에서 코딩하고 SPS 시그널링 sps_dmvr_enabled_flag 플래그에 의해 제어되는 블록에 대한 기술이다. 이 모드하에서, 블록의 두 움직임 벡터(MV)들은 양방향 매칭(bilateral matching) 예측을 사용하여 더 세분화될 수 있다.
도 3b는 디코더측 움직임 벡터 미세화(DMVR)의 일 예를 도시하는 개략도이다. 도 3b에 도시된 바와 같이, 양방향 매칭 방법을 사용하여, 현재 픽처(320)에서의 현재 CU(322)의 2개의 연관된 참조 픽처들(즉, 리스트 L0(300)의 refPic 및 리스트 L1(310)의 refPic)에서 현재 CU의 움직임 궤적을 따라 현재 CU(322)의 2개의 참조 블록(302, 312) 사이의 가장 가까운 매치를 검색함으로써 현재 CU(322)의 움직임 정보를 미세화하는 데 사용된다. 패터닝된 직사각형 블록들(322, 302, 312)은 현재 CU와 머지 모드로부터의 초기 움직임 정보를 기반으로 하는 2개의 참조 블록을 가리킨다. 패터닝된 직사각형 블록(304, 314)은 움직임 미세화 탐색 프로세스(즉, 움직임 벡터 미세화 프로세스)에서 사용하는 MV 후보에 기반한 한 쌍의 참조 블록을 카리킨다.
MV 후보와 초기 MV(오리지널 MV라고도 함) 간의 MV 차이는 각각 MVdiff 및 -MVdiff이다. MV 후보와 초기 MV는 모두 양방향 움직임 벡터들이다. DMVR 동안에는 초기 MV 주변의 복수의 이러한 MV 후보들을 검사할 수 있다. 구체적으로, 각각의 주어진 MV 후보에 대해, 이들의 2개의 연관된 참조 블록들은 각각 리스트 0 및 리스트 1의 참조 픽처들로부터 로케이팅(locating)될 수 있고, 이들 사이의 차이를 계산한다. 이러한 블록 차이는 일반적으로 SAD(또는 절대 차이의 합) 또는 행-서브샘플링된(row-subsampled) SAD(즉, 한 행간격으로 포함된 블록으로 계산한 SAD)로 측정한다. 결국, 두 참조 블록들 사이에서 가장 낮은 SAD를 갖는 MV 후보는 미세화된 MV가 되고 현재 CU에 대한 실제 예측인 양방향 예측 신호를 생성하기 위하여 사용된다.
VVC에서, DMVR은 다음의 조건들을 만족하는 CU에 적용된다.
- 양방향 예측 MV가 있는 CU 레벨 머지 모드(서브 블록 머지 모드 아님)로 코딩한다;
- 현재 픽처와 관련하여, CU의 하나의 참조 픽처는 과거에 있고(즉, 현재 픽처 POC보다 작은 POC를 가짐), 다른 참조 픽처는 미래에 있다(즉, 현재 픽처 POC보다 큰 POC를 가짐);
- 두 참조 픽처들에서 현재 픽처까지의 POC 거리(즉, 절대 POC 차이)는 동일하다.
- CU의 사이즈는 64개 루마 샘플들을 초과하고 CU 높이는 8개 루마 샘플들을 초과한다.
DMVR 프로세스에 의해 도출된 미세화된 MV는 인터 예측 샘플들을 생성하기 위하여 사용되며 미래의 픽처 코딩을 위한 시간적 움직임 벡터 예측에도 사용된다. 다만, 오리지널 MV는 디블록킹(deblocking) 프로세스와 미래 CU 코딩을 위한 공간적 움직임 벡터 예측에 사용된다. DMVR의 일부 추가적인 기능들은 다음의 서브-클로즈(sub-clause)들에 도시되어 있다.
VVC에서의 양방향 광학 흐름(Bi-directional Optical Flow, BDOF)
VTM5에는 양방향 광학 흐름(Bi-directional Optical Flow, BDOF) 도구가 포함되어 있다. 이전에 BIO라고 불리던 BDOF는 JEM에 포함되었다. JEM 버전과 비교하면, VTM5의 BDOF는 특히 곱셈의 횟수와 승수의 크기 측면에서 훨씬 적은 계산을 필요로 하는 간단한 버전이다. BDOF는 SPS 플래그 sps_bdof_enabled_flag로 제어한다.
BDOF를 사용하여 4×4 서브-블록 레벨에서 CU의 양방향 예측 신호를 미세화한다.다음의 조건을 만족하는 경우 BDOF는 CU에 적용된다: 1) CU의 높이가 4가 아니고, CU의 사이즈가 4Х8이 아님; 2) CU가 아핀 모드 또는 ATMVP 머지 모드를 사용하여 코딩되는 것이 아님; 3) CU가 "진정한" 양방향 예측 모드를 사용하여 코딩됨, 즉, 두 참조 픽처들 중 하나는 표시 순서에서 현재 픽처 이전이고 다른 하나는 표시 순서에서 현재 픽처 이후이다. BDOF는 루마 구성 요소에만 적용된다.
BDOF 모드는 그 이름에서 알 수 있듯, 물체의 움직임이 부드럽다고 가정하는 광류 개념에 기반한다. BDOF는 현재 블록의 기울기를 계산하여 예측 샘플을 조정하여 코딩 효율을 높인다.
VVC에서의 DMVR 및 BDOF을 위한 디코더측 제어
현재 VVC에서, BDOF/DMVR은, SPS 플래그가 인에이블되고 레귤러 머지 후보에 대해 일부 양방향 예측 및 사이즈 제약이 충족되는 경우 항상 적용된다.
DMVR은 다음의 조건이 모두 참인 경우 레귤러 머지 모드에 적용된다:
- sps_dmvr_enabled_flag는 1과 동일함.
- general_merge_flag[xCb][yCb]는 1과 동일함.
- predFlagL0[0][0] 및 predFlagL1[0][0] 는 모두 1과 동일함.
- mmvd_merge_flag[ xCb ][ yCb ]는 0과 동일함.
- DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])는 DiffPicOrderCnt(RefPicList[1][refIdxL1],currPic)과 동일함.
- BcwIdx[xCb][yCb]는 0과 동일함.
- luma_weight_l0_flag[refIdxL0] 및 luma_weight_l1_flag[refIdxL1]는 모두 0과 동일함.
- cbWidth는 8보다 크거나 8과 동일함.
- cbHeight는 8보다 크거나 8과 동일함.
- cbHeightХcbWidth는 128보다 크거나 128과 동일함.
BDOF은 다음의 조건이 모두 참인 경우 양방향 예측 모드에 적용된다:
- sps_bdof_enabled_flag는1과 동일함.
- predFlagL0[xSbIdx][ySbIdx] 및 predFlagL1[xSbIdx][ySbIdx]는 모두 1과 동일함.
- DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0]) ×DiffPicOrderCnt(currPic,RefPicList[1][refIdxL1])은 0보다 작음.
- MotionModelIdc[xCb][yCb]는 0과 동일함.
- merge_subblock_flag[xCb][yCb]는 0과 동일함.
- sym_mvd_flag[xCb][yCb]는 0과 동일함.
- BcwIdx[xCb][yCb]는 0과 동일함.
- luma_weight_l0_flag[refIdxL0] 및 luma_weight_l1_flag[refIdxL1]는 모두 0과 동일함.
- cbHeight는 8보다 크거나 8과 동일함.
- cIdx는 0과 동일함.
VVC에서의 변환 스킵 모드 CU에 대한 잔여 코딩
VTM5는 사이즈가 32×32(32×32포함)에 달하는 루마 블록들에 변환 스킵 모드를 사용하는 것을 허용한다. CU를 변환 스킵 모드에서 코딩할 때, 그 예측 잔여는 변환 스킵 잔여 코딩 프로세스를 사용하여 양자화되고 코딩된다. 이러한 잔여 코딩 프로세스는 이전 섹션에서 설명한 변환 계수 코딩 프로세스로부터 수정한 것이다. 이러한 변환 스킵 모드에서, CU의 잔여도 사이즈가 4×4인 비중첩 서브 블록들을 단위로 하여 코딩한다. 레귤러 변환 계수 코딩 프로세스와 달리, 변환 스킵 모드에서 마지막 계수 위치는 시그널링되지 않고; 대신, CU의 모든 4×4 서브 블록들에 대해 포워드(forward) 스캔 순서(즉, 왼쪽 상단 서브 블록에서 마지막 서브 블록까지)로 coded_subblock_flag를 시그널링한다.
각 서브 블록에 대해, coded_subblock_flag가 1과 동일하면(즉, 서브 블록에 적어도 하나의 0이 아닌 양자화된 잔여가 존재함), 3개의 스캔 패스들에서 양자화된 잔여 레벨들의 코딩을 수행한다.
- 첫 번째 스캔 패스: 유효성 플래그(sig_coeff_flag), 부호 플래그(coeff_sign_flag), 절대 레벨이 1보다 큰 플래그(abs_level_gtx_flag[0]) 및 패리티(par_level_flag)를 코딩한다. 주어진 스캔 위치에 대해, coeff_sig_flag가 1과 동일하면, coeff_sign_flag를 코딩하고 그 다음 abs_level_gtx_flag[0](절대 레벨이 1보다 큰지 여부를 지정)를 뒤따라 코딩한다. abs_level_gtx_flag[0]이 1과 동일하면, par_level_flag를 추가로 코딩하여 절대 레벨의 패리티를 지정한다.
- x보다 큰 스캔 패스: 절대 레벨이 1보다 큰 각 스캔 위치에 대해, 4개에 달하는 abs_level_gtx_flag[i](그 중, i=1...4)를 코딩하여 주어진 위치의 절대 레벨이 각각 3, 5, 7 또는 9보다 큰지 가리킨다.
- 나머지 부분의 스캔 패스: abs_level_gtx_flag[4]가 1과 동일한(즉, 절대 레벨이 9보다 큼) 모든 스캔 위치에 대해, 절대 레벨의 나머지 부분을 코딩한다. 절대 레벨의 나머지 부분은 간소화된 라이스 파라미터 도출 템플릿을 사용하여 이진화한다.
스캔 패스 #1 및 스캔 패스 #2(첫 번째 스캔 패스 및 x보다 큰 스캔 패스)의 빈들은 CU에서 컨텍스트 코딩된 빈들의 최대 수가 소진될 때까지 컨텍스트 코딩된다. 잔여 블록의 컨텍스트 코딩된 빈들의 최대 수는2×block_width*block_height, 또는 동등하게 샘플 위치당 평균 2개의 컨텍스트 코딩된 빈들로 제한한다. 마지막 스캔 패스(나머지 부분 스캔 패스)의 빈들은 바이패스 코딩된다.
HEVC에서의 무손실 코딩
HEVC에서의 무손실 코딩 모드는 단순히 변환, 양자화 및 인루프 필터(디블로킹 필터, 샘플 적응 오프셋 및 적응 루프 필터)들을 바이패싱하여 달성한다. 이러한 디자인은 주류 애플리케이션을 위한 레귤러 HEVC 인코더 및 디코더의 구현에 필요한 최소한의 변경으로 무손실 코딩을 가능하게 하는 것을 목표로 한다.
이하의 표 1 내지 표 4를 참조하면, EVC에서, 무손실 코딩 모드는 개별 CU 레벨에서 턴온하거나 턴오프할 수 있다. 이는 CU 레벨에서 시그널링된 cu_transquant_bypass_flag 신택스를 통하여 수행한다. 무손실 코딩 모드가 불필요한 경우의 시그널링 오버헤드(signaling overhead)를 줄이기 위하여, cu_transquant_bypass_flag 신택스가 항상 시그널링되는 것은 아니다. transquant_bypass_enabled_flag라는 다른 신택스가 1의 값을 가질 때만 시그널링된다. 즉, cu_transquant_bypass_flag의 신택스 시그널링을 턴온하기 위해 신택스 transquant_bypass_enabled_flag를 사용한다.
HEVC에서, 신택스 transquant_bypass_enabled_flag는 픽처 파라미터 세트(PPS)에서 시그널링되어 신택스 cu_transquant_bypass_flag가 PPS를 참조하는 픽쳐 내의 각 CU에 대해 시그널링될 필요가 있는지 여부를 가리킨다. 이러한 플래그를 1과 동일하게 설정하면, CU 레벨에서 신택스 cu_transquant_bypass_flag를 전송하여 현재 CU가 무손실 모드로 코딩되었는지 여부를 시그널링한다. 이러한 플래그를 PPS에서 0으로 설정하면, cu_transquant_bypass_flag를 전송하지 않고, 픽처의 모든 CU를 프로세스에서 연관된 변환, 양자화 및 루프 필터들로 인코딩하는데, 이는 일반적으로 특정 레벨의 비디오 품질 하락을 초래한다. 전체 픽처를 무손실로 코딩하려면, 픽처의 모든 CU에 대해, 반드시 PPS의 플래그 transquant_bypass_enabled_flag를 1로 설정하고CU 레벨 플래그 cu_transquant_bypass_flag를 1로 설정해야 한다. HEVC에서의 무손실 모드와 연관된 상세한 신택스 시그널링을 다음과 같이 도시한다.
- 1과 동일한 transquant_bypass_enabled_flag는 cu_transquant_bypass_flag가 존재함을 지정한다. 0과 동일한 transquant_bypass_enabled_flag는 cu_transquant_bypass_flag가 존재하지 않음을 지정한다.
- 1과 동일한 cu_transquant_bypass_flag는 클로즈8.6에 명시된 스케일링 및 변환 프로세스와 클로즈8.7에 명시된 인루프 필터 프로세스를 바이패싱하도록 지정한다. cu_transquant_bypass_flag가 존재하지 않는 경우, 0과 동일한 것으로 추정한다.
pic_parameter_set_rbsp(){ 기술어
pps_pic_parameter_set_id ue(v)
pps_seq_parameter_set_id ue(v)
...
transquant_bypass_enabled_flag u(1)
...
}
coding_unit(x0,y0,log2CbSize){ 기술어
if(transquant_bypass_enabled_flag)
cu_transquant_bypass_flag ae(v)
if(slice_type!=I)
cu_skip_flag[x0][y0] ae(v)
...
}
transform_unit(x0,y0,xBase,yBase,log2TrafoSize,trafoDepth,blkIdx){
기술어
...
If(cbfChroma&&!cu_transquant_bypass_flag) ae(v)
chroma_qp_offset()
...
}
residual_coding(x0,y0,log2TrafoSize,cIdx){ 기술어
if(transform_skip_enabled_flag&&!cu_transquant_bypass_flag&&(log2TrafoSize<=Log2MaxTransformSkipSize))
transform_skip_flag[x0][y0][cIdx] ae(v)
...
if(cu_transquant_bypass_flag(CuPredMode[x0][y0]==MODE_INTRA&&implicit_rdpcm_enabled_flag&&transform_skip_flag[x0][y0][cIdx]&&(predModeIntra==10predModeIntra==26))explicit_rdpcm_flag[x0][y0][cIdx])
signHidden=0
...
}
VVC에서, 최대 CU 사이즈는 64×64이고 VPDU도 64×64로 설정한다. 너비/높이가 32보다 큰 경우의 계수 제로-아웃 메커니즘으로 인하여, VVC에서의 계수들 코딩을 위한 최대 블록 사이즈는 32×32이다. 이러한 제약 조건하에서, 현재 변환 스킵은 32×32까지의 CU만 지원하므로, 잔여 코딩을 위한 최대 블록 사이즈는 계수 코딩을 위한 최대 블록 사이즈 32×32와 얼라인될 수 있다. 그러나 VVC에서는 무손실 CU에 대한 잔여 코딩의 블록 사이즈에 대한 제약이 정의되어 있지 않다. 결과적으로, 현재 VVC에서는 32×32보다 큰 사이즈의 무손실 코딩 모드하에서 잔여 블록을 생성할 수 있으며, 이는 32×32보다 큰 블록에 대한 잔여 코딩의 지원을 요구한다. 이는 코덱 구현에 바람직하지 않다. 본 개시에서는 이러한 문제를 해결하기 위하여 몇 가지 방법을 제안한다.VVC에서 무손실 코딩 지원과 연관된 다른 문제는 잔여(또는 계수라고 함) 코딩 방식을 어떻게 선택하는 것이다. 현재 VVC에서는 두 가지 다른 잔여 코딩 방식을 사용할 수 있다. 주어진 블록(또는 CU)에 대해, 잔여 코딩 방식의 선택은 주어진 블록(또는 CU)의 변환 스킵 플래그를 기반으로 한다. 따라서, 무손실 모드 하에서, 변환 스킵 플래그가 HEVC에서와 같이 VVC에서 1로 가정된다면, 변환 스킵 모드에서 사용되는 잔여 코딩 방식은 항상 무손실 모드 CU에 대해 사용될 것이다. 그러나 변환 스킵 플래그가 참일 때 사용되는 현재 잔여 코딩 방식은 주로 스크린 콘텐츠 코딩을 위해 설계되었다. 레귤러 콘텐츠(즉, 논-스크린 콘텐츠)의 무손실 코딩에 현재 잔여 코딩 방식을 사용하는 것은 최적이 아닐 수 있다. 본 개시에서, 무손실 CU에 대한 잔여 코딩을 선택하기 위해 몇몇 방법들을 제안한다.현재 VVC에서는, BDOF와 DMVR이라는 2개의 디코더측 도구가 현재 블록을 필터링하여 디코딩된 픽셀을 미세화함으로써 코딩 성능을 향상시킨다. 그러나, 무손실 코딩에서는, 예측 픽셀들이 이미 완벽하게 예측되었기 때문에 BDOF 및 DMVR은 코딩 게인(coding gain)에 기여하지 않는다. 따라서, 이러한 디코더측 도구는 VVC에 이점이 없기 때문에 BDOF 및 DMVR을 무손실 코딩에 적용해서는 안 된다. 그러나 현재 VVC에서, BDOF 및 DMVR은 SPS 플래그가 인에이블되고 레귤러 머지 후보에 대해 일부 양방향 예측 및 사이즈 제약이 충족되는 경우 항상 적용된다. 따라서, 무손실 VVC 코딩의 경우, DMVR 및 BDOF를 낮은 레벨, 즉 슬라이스 레벨 및 CU 레벨에서 제어하면 VVC 무손실 코딩의 성능 효율에 이점이 있다.
무손실 CU에 대한 잔여 블록 분할
본 개시의 일 예에 따르면, 무손실 CU에 대한 최대 잔여 코딩 블록 사이즈를 변환 스킵 모드에 의해 지원하는 최대 블록 사이즈에 얼라인하는 것을 제안한다. 일 예에서, 변환 스킵 모드는 너비와 높이가 모두 32보다 작거나 동일한 잔여 블록에 대해서만 인에이블될 수 있으며, 이는 변환 스킵 모드하에서 최대 잔여 코딩 블록 사이즈가 32×32임을 의미한다. 예시에 따르면, 무손실 CU에 대한 잔여 블록의 최대 너비 및/또는 높이도 32로 설정하며, 최대 잔여 블록 사이즈는 32×32이다. 무손실 CU의 너비/높이가 32보다 클 때마다, CU 잔여 블록은 사이즈가 32×N 및/또는 N×32인 복수 개의 더 작은 잔여 블록들로 분할되어 더 작은 잔여 블록들의 너비 또는 높이가 32보다 크지 않도록 한다. 예를 들어, 128×32 무손실 CU는 잔여 코딩을 위해 4개의 32×32 잔여 블록들로 분할된다. 다른 예에서, 64×64 무손실 CU는 4개의 32×32 잔여 블록들로 분할된다.
본 개시의 다른 예에 따르면, 무손실 CU에 대한 잔여 코딩을 위한 최대 블록 사이즈를 VPDU의 사이즈에 얼라인하는 것을 제안한다. 일 예에서, 무손실 CU에 대한 최대 잔여 블록의 너비/높이는 VPDU 사이즈(예를 들어, 현재 VVC의 64×64)로 설정한다. 무손실 CU의 너비/높이가 64보다 클 때마다, CU 잔여 블록은 사이즈가 64×N 및/또는 N×64인 복수의 더 작은 잔여 블록들로 분할되어 더 작은 잔여 블록들의 너비 또는 높이가 VPDU의 너비 및/또는 높이보다 크지 않도록 한다. 예를 들어, 128×128 무손실 CU는 잔여 코딩을 위해 4개의 64×64 잔여 블록들로 분할된다. 다른 예에서, 128×32 무손실 CU는 2개의 64×32 잔여 블록들로 분할된다.
무손실 CU에 대한 잔여 코딩 방안의 선택
현재 VVC에서, CU가 변환 스킵 모드로 코딩되는지 여부에 따라, CU에서 상이한 잔여 코딩 방안을 사용한다. 변환 스킵 모드하에서 사용하는 현재 잔여 코딩은 일반적으로 스크린 콘텐츠 코딩에 더 적합하다.
본 개시의 일 예에 따르면, 무손실 CU는 변환 스킵 모드 CU들에서 사용하는 것과 동일한 잔여 코딩 방안을 사용한다.
본 개시의 다른 예에 따르면, 무손실 CU는 비-변환 스킵 모드 CU들에서 사용하는 것과 동일한 잔여 코딩 방안을 사용한다.
본 개시의 다른 예에 따르면, 특정 조건 및/또는 미리 정의된 절차에 기반하여 기존의 잔여 코딩 방안 중에서 무손실 CU를 위한 잔여 코딩 방안을 적응적으로 선택한다. 인코더 및 디코더는 모두 이러한 조건 및/또는 미리 정의된 절차를 따름으로써, 비트스트림에서 시그널링으로 선택을 가리킬 필요가 없다. 일 예로, 인코더와 디코더 모두에서 간단한 스크린 콘텐츠 검출 방안을 지정하여 활용할 수 있다. 검출 방식에 기반하여, 현재 비디오 블록은 스크린 콘텐츠 또는 레귤러 콘텐츠로 분류될 수 있으며, 스크린 콘텐츠인 경우, 변환 스킵 모드하에서 사용하는 잔여 코딩 방안을 선택한다. 그렇지 않은 경우, 다른 잔여 코딩 방안을 선택한다.
본 개시의 다른 예에 따르면, 신택스는 무손실 CU에 의해 사용되는 잔여 코딩 방안을 명시적으로 지정하기 위해 비트스트림에서 시그널링된다. 이러한 신택스는 이진 플래그일 수 있으며, 각 이진 값은 두 개의 잔여 코딩 방안 중 하나의 선택을 가리킨다. 신택스는 상이한 레벨에서 시그널링될 수 있다. 예를 들어, 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 슬라이스 헤더, 타일 그룹 헤더 또는 타일에서 시그널링될 수 있다. CTU 또는 CU 레벨에서도 시그널링될 수 있다. 이러한 신택스가 시그널링되면, 동일하거나 더 낮은 레벨의 모든 무손실 CU들은 신택스가 가리키는 동일한 잔여 코딩 방안을 사용하게 된다. 예를 들어, SPS 레벨에서 신택스를 시그널링할 경우, 시퀀스의 모든 무손실 CU들은 가리키는 동일한 잔여 코딩 방안을 사용하게 된다. PPS 레벨에서 신택스를 시그널링할 경우, 픽처의 모든 무손실 CU들은 관련된 PPS에서 가리킨 동일한 잔여 코딩 방안을 사용한다. cu_transquant_bypass_flag와 같은 CU가 무손실 모드에서 코딩되는지 여부를 가리키기 위한CU 레벨에서의 신택스가 존재하는 경우, CU의 무손실 모드 플래그에 기반하여 잔여 코딩 방안을 가리키는 신택스를 조건부로 시그널링한다. 예를 들어, 무손실 모드 플래그 cu_transquant_bypass_flag가 현재 CU가 무손실 모드로 코딩됨을 가리킬 경우에만 CU에 대해 잔여 코딩 방식을 가리키는 신택스를 시그널링한다. 슬라이스 헤더 레벨에서의 플래그에 의해 신택스를 시그널링할 경우, 이러한 슬라이스 내에서 무손실 모드로 코딩된 모든 CU들은 시그널링된 플래그에 기반하여 식별된 동일한 잔여 코딩 방안을 사용하게 된다. 복수의 CU들 각각에 대한 잔여 코딩 방안은 시그널링된 첫 번째 플래그에 기반하여 선택하며, 여기서, 슬라이스 헤더에서 시그널링한 플래그에 따라, 무손실 CU에 대해 선택한 잔여 코딩 방안은 변환 스킵 모드 CU들 또는 비-변환 스킵 모드 CU들에서 사용하는 잔여 코딩 방안이다.
본 개시의 일예에 따르면, 무손실 모드로 코딩된 CU에 대해서도 변환 스킵 모드 플래그를 시그널링한다. 이 경우, CU가 무손실 모드로 코딩되는지 여부에 상관없이, CU에 대한 잔여 코딩 방안의 선택은 그 변환 스킵 모드 플래그를 기반으로 한다.
DMVR 디스에이블링
현재 VVC에서는, 무손실 코딩 모드에 대하여 DMVR 온/오프 제어가 정의되어 있지 않다. 본 개시의 일 예에서는, 1-비트 시그널링 slice_disable_dmvr_flag 플래그에 의해 슬라이스 레벨에서 DMVR 턴 온/턴 오프를 제어하는 것을 제안한다. 일 예에서, 만약 sps_dmvr_enabled_flag가 1과 동일하도록 설정되고 transquant_bypass_enabled_flag 플래그가 0과 동일하도록 설정되면, slice_disable_dmvr_flag 플래그를 시그널링할 필요가 있다. 만약 sps_dmvr_enabled_flag를 시그널링하지 않으면, 1로 추정한다. 만약 sps_dmvr_enabled_flag 가 1과 동일하면, DMVR가 턴 오프된다. 이 경우, 시그널링은 다음의 표 5와 같다.
if(sps_dmvr_enabled_flag&&!transquant_bypass_enabled_flag)
slice_disable_dmvr_flag u(1)
다른 예에서, cu_transquant_bypass_flag에 의해 cu 레벨에서 DMVR 턴 온/턴 오프를 제어하는 것을 제안한다. 일 예에서, DMVR에 대한 cu 레벨 제어는 다음과 같다:DMVR은 다음의 조건이 모두 참인 경우 레귤러 머지 모드에 적용된다:
- sps_dmvr_enabled_flag 는 1과 동일함.
- cu_transquant_bypass_flag i는 0과 동일하도록 설정됨.
- general_merge_flag[xCb][yCb]는 1과 동일함.
- predFlagL0[0][0] 및 predFlagL1[0][0]들은 모두 1과 동일함.
- mmvd_merge_flag[xCb][yCb]는 0과 동일함.
- DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])는 DiffPicOrderCnt(RefPicList[1][refIdxL1],currPic)와 동일함.
- BcwIdx[xCb][yCb]는 0과 동일함.
- luma_weight_l0_flag[refIdxL0] 및 luma_weight_l1_flag[refIdxL1]는 모두 0과 동일함.
- cbWidth는 8보다 크거나 동일함.
- cbHeight는 8보다 크거나 동일함.
- cbHeightХcbWidth는 128보다 크거나 128과 동일함.
BDOF 디스에이블링
현재 VVC에서는, 무손실 코딩 모드에 대하여 BDOF 온/오프 제어가 정의되어 있지 않다. 본 개시의 일 예에서는, 1-비트 시그널링 slice_disable_bdof_flag 플래그에 의해 BDOF 턴 온/턴 오프를 제어하는 것을 제안한다. 일 예에서, 만약 sps_bdof_enabled_flag가 1과 동일하도록 설정되거나 transquant_bypass_enabled_flag 플래그가 0과 동일하도록 설정되면, slice_disable_bdof_flag 플래그를 시그널링한다. 만약 slice_disable_bdof_flag 플래그를 시그널링하지 않으면, 1로 추정한다. 만약 slice_disable_bdof_flag 플래그가 1과 동일하면, BDOF를 디스에이블링한다. 이 경우, 시그널링은 다음의 표 6과 같이 설명된다.
if(sps_bdof_enabled_flag&&!transquant_bypass_enabled_flag)
slice_disable_bdof_flag u(1)
본 개시의 다른 예에서, cu_transquant_bypass_flag에 의해 cu 레벨에서 BDOF 턴 온/턴 오프를 제어하는 것을 제안한다. 일 예에서, BDOF에 대한 cu 레벨 제어는 다음과 같다:BDOF는 다음의 조건이 모두 참인 경우 레귤러 머지 모드에 적용된다:- sps_bdof_enabled_flag는 1과 동일함.
- cu_transquant_bypass_flag는 0과 동일하도록 설정됨.
- predFlagL0[xSbIdx][ySbIdx] 및 predFlagL1[xSbIdx][ySbIdx]는 모두 1과 동일함.
- DiffPicOrderCnt(currPic,RefPicList[0][refIdxL0])ХDiffPicOrderCnt(currPic,RefPicList[1][refIdxL1])는 0보다 작음.
- MotionModelIdc[xCb][yCb]는 0과 동일함.
- merge_subblock_flag[xCb][yCb]는 0과 동일함.
- sym_mvd_flag[xCb][yCb]는 0과 동일함.
- BcwIdx[xCb][yCb]는 0과 동일함.
- luma_weight_l0_flag[refIdxL0] 및 luma_weight_l1_flag[refIdxL1]는 모두 0과 동일함.
- cbHeight가 8보다 크거나 8과 동일함.
- cIdx는 0과 동일함.
BDOF 및 DMVR 디스에이블링
현재 VVC에서는, BDOF와 DMVR은 모두 디코더측 미세화를 위해 항상 적용되어 코딩 효율을 향상시키고 각 SPS 플래그에 의해 제어되며, 레귤러 머지 후보에 대해 일부 양방향 예측 및 사이즈 제약 조건을 충족한다. 본 개시의 일 예에서, 1-비트 slice_disable_bdof_dmvr_flag 슬라이스 플래그에 의해 BDOF와 DMVR을 모두 디스에이블링하는 것을 제안한다. slice_disable_bdof_dmvr_flag 플래그가 1과 동일하도록 설정되면, BDOF와 DMVR이 모두 턴 오프된다. slice_disable_bdof_dmvr를 시그널링하지 않으면, 1로 추정한다. 일 예에서, 다음의 표 7의 조건이 충족될 경우 slice_disable_bdof_dmvr_flag를 시그널링한다.
if( (sps_bdof_enabled_flag || sps_dmvr_enabled_flag) &&
!transquant_bypass_enabled_flag )
slice_disable_bdof_dmvr_flag u(1)
상기 방법은 주문형 집적 회로(application specific integrated circuit, ASIC), 디지털 신호 프로세서(digital signal processor, DSP), 디지털 신호 프로세싱 디바이스(digital signal processing device, DSPD), 프로그래머블 논리 디바이스(programmable logic device, PLD), 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA), 컨트롤러, 마이크로-컨트롤러, 마이크로프로세서 또는 기타 전자 컴포넌트들을 포함하는 하나 또는 그 이상의 회로를 포함하는 장치를 사용하여 구현할 수 있다. 장치는 다른 하드웨어 또는 소프트웨어 컴포넌트와 결합한 회로를 사용하여 상술한 방법을 수행할 수 있다. 위에 개시한 각 모듈, 서브-모듈 , 유닛 또는 서브-유닛은 하나 또는 그 이상의 회로를 사용하여 적어도 부분적으로 구현될 수 있다.도 7은 본 개시의 일부 구현 방식들에 따른 비디오 코딩을 위한 장치를 도시하는 블록도이다. 장치(700)는 모바일 폰, 태블릿 컴퓨터, 디지털 방송 단말기, 태블릿 디바아스, 또는 개인 휴대 단말기와 같은 단말기일 수 있다.
도 7에 도시된 바와 같이, 장치(700)는 프로세싱 컴포넌트(702), 메모리(704), 전력 공급 컴포넌트(706), 멀티미디어 컴포넌트(708), 오디오 컴포넌트(710), 입출력(I/O) 인터페이스(712), 센서 컴포넌트(714) 및 통신 컴포넌트(716)와 같은 구성 중의 하나 또는 그 이상을 포함할 수 있다.
프로세싱 컴포넌트(702)는 디스플레이, 전화 통화, 데이터 통신, 카메라 동작 및 레코딩 동작과 관련된 동작들과 같은 장치 (700)의 전체 동작들을 제어한다. 프로세싱 컴포넌트(702)는 상기 방법의 전부 또는 일부 단계를 완성하기 위한 명령어를 실행하기 위한 하나 또는 그 이상의 프로세서(720)를 포함할 수 있다. 또한, 프로세싱 컴포넌트(702)는 프로세싱 컴포넌트(702)와 다른 컴포넌트 간의 상호 작용을 용이하게 하기 위해 하나 혹은 그 이상의 모듈을 포함할 수 있다. 예를 들어, 프로세싱 컴포넌트(702)는 멀티미디어 컴포넌트(708)와 프로세싱 컴포넌트(702)간의 상호 작용을 용이하게 하기 위해 멀티미디어 모듈을 포함할 수 있다.
메모리(704)는 장치(700)의 동작을 지원하기 위해 서로 다른 유형의 데이터를 저장하도록 구성된다. 이러한 데이터의 예로는 장치(700)에서 동작하는 임의의 애플리케이션 또는 방법에 대한 명령어, 연락처 데이터, 전화번호부 데이터, 메시지, 사진, 비디오 등을 포함한다. 메모리(704)는 임의의 유형의 휘발성 또는 비 휘발성 저장 장치 또는 이들의 조합에 의해 구현할 수 있고, 메모리(704)는 SRAM(Static Random Access Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), EPROM(Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), ROM(Read-Only Memory), 자기 메모리(magnetic memory), 플래시 메모리(flash memory), 자기 디스크(magnetic disk) 또는 컴팩트 디스크(compact disk)일 수 있다.
전력 공급 컴포넌트(706)는 장치(700)의 다양한 컴포넌트들에 전력을 공급한다. 전력 공급 컴포넌트(706)는 전력 공급 관리 시스템, 하나 또는 그 이상의 전원 및 장치(700)의 전력을 생성, 관리 및 분배하는 것과 관련된 기타 컴포넌트를 포함할 수 있다.
멀티미디어 컴포넌트(708)는 장치(700)와 사용자 사이의 출력 인터페이스를 제공하는 스크린을 포함한다. 일부 예들에서, 스크린은LCD 및 터치 패널(TP)을 포함할 수 있다. 스크린이 터치 패널을 포함하는 경우, 스크린은 사용자로부터 입력 신호를 수신하는 터치 스크린으로 구현할 수 있다. 터치 패널은 터치 패널상의 터치, 슬라이드 및 제스처를 감지하기 위한 하나 또는 그 이상의 터치 센서를 포함할 수 있다. 터치 센서는 터치 또는 슬라이딩 동작의 경계를 감지할 뿐만 아니라 터치 또는 슬라이딩 동작과 관련된 지속 시간 및 압력도 감지할 수 있다. 일부 예들에서, 멀티미디어 컴포넌트(708)는 전방 카메라 및/또는 후방 카메라를 포함할 수 있다. 장치(700)가 촬영 모드 또는 비디오 모드와 같은 동작 모드에 있을 경우, 전방 카메라 및/또는 후방 카메라는 외부 멀티미디어 데이터를 수신할 수 있다.
오디오 컴포넌트(710)는 오디오 신호를 출력 및/또는 입력하도록 구성된다. 예를 들어, 오디오 컴포넌트(710)는 마이크(MIC)를 포함한다. 장치(700)가 통화 모드, 녹음 모드 및 음성 인식 모드와 같은 동작 모드일 경우, 마이크는 외부 오디오 신호를 수신하도록 구성된다. 수신된 오디오 신호는 또한 메모리(704)에 저장되거나 통신 컴포넌트(716)를 통해 전송될 수 있다. 일부 예들에서, 오디오 컴포넌트(710)는 오디오 신호를 출력하기 위한 스피커를 더 포함한다.
I/O 인터페이스(712)는 프로세싱 컴포넌트(702)와 주변 인터페이스 모듈사이의 인터페이스를 제공한다. 상기 주변 인터페이스 모듈은 키보드, 클릭 휠, 버튼 등일 수 있다. 이러한 버튼에는 홈 버튼, 볼륨 버튼, 시작 버튼 및 잠금 버튼이 포함될 수 있지만 이에 제한되지는 않는다.
센서 컴포넌트(714)는 장치(700)에 대해 상이한 측면들에서 상태 평가를 제공하기 위한 하나 또는 그 이상의 센서를 포함한다. 예를 들어, 센서 컴포넌트(714)는 장치(700)의 온/오프 상태 및 컴포넌트의 상대적 위치를 검출할 수 있다. 예를 들어, 컴포넌트는 장치(700)의 디스플레이 및 키패드이다. 센서 컴포넌트(714)는 또한 장치(700) 또는 장치(700)의 컴포넌트의 위치 변화, 장치에 대한 사용자의 접촉 유무를 감지할 수 있다. 센서 컴포넌트(714)는 물리적 터치없이 주변 물체의 존재를 감지하도록 구성된 근접 센서를 포함할 수 있다. 센서 컴포넌트(714)는 이미징 애플리케이션에 사용되는 CMOS 또는 CCD 이미지 센서와 같은 광학 센서를 더 포함할 수 있다. 일부 예에서, 센서 컴포넌트(714)는 가속도 센서(acceleration sensor), 자이로스코프 센서(gyroscope sensor), 자기 센서(magnetic sensor), 압력 센서(pressure sensor) 또는 온도 센서(temperature sensor)를 더 포함할 수 있다.
통신 컴포넌트(716)는 장치(700)와 기타 장치 사이의 유선 또는 무선 통신을 용이하게 하도록 구성된다. 장치(700)는 WiFi, 4G, 또는 이들의 조합과 같은 통신 표준에 기반한 무선 네트워크에 접속할 수 있다. 일 예에서, 통신 컴포넌트(716)는 방송 채널을 통해 외부 방송 관리 시스템으로부터 방송 신호 또는 방송 관련 정보를 수신한다. 일 예에서, 통신 컴포넌트(716)는 근거리 통신을 촉진하기 위한 근거리 무선 통신(Near Field Communication, NFC) 모듈을 더 포함할 수 있다. 예를 들어, NFC 모듈은 RFID(Radio Frequency Identification)기술, IrDA(Infrared Data Association)기술, UWB(Ultra-Wide Band)기술, BT(Bluetooth)기술 및 기타 기술을 기반으로 구현될 수 있다.
일 예에서, 장치(700)는 상기 방법을 수행하기 위해 ASIC(Application Specific Integrated Circuit), DSP(Digital Signal Processor), DSPD(Digital Signal Processing Devices), PLD(Programmable Logic Device), FPGA(Field Programmable Gate Array), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 또는 기타 전자 요소중 하나 또는 그 이상에 의해 구현될 수 있다.
비-일시적 컴퓨터 판독 가능 저장 매체는 예를 들어 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD), 플래시 메모리, 하이브리드 드라이브 또는 솔리드 스테이트 하이브리드 드라이브 (SSHD), ROM(Read-Only Memory), 컴팩트 디스크 ROM(CD-ROM), 자기 테이프, 플로피 디스크 등일 수 있다.
도 8은 본 개시의 일부 구현 방식들에 따른 비디오 코딩에서의 무손실 코딩 모드들에 관한 기술들의 예시적인 프로세스를 도시하는 흐름도이다.
단계 801에서, 프로세서(720)는 비디오 픽처를 복수의 코딩 단위(CU)들로 분할하되, 복수의 CU들 중 적어도 하나는 무손실 CU이다.
단계 802에서, 프로세서(720)는 무손실 CU의 잔여 코딩 블록 사이즈를 확정한다.
단계 803에서, 프로세서(720)는 무손실 CU의 잔여 코딩 블록 사이즈가 미리 정의된 최대값보다 크다는 확정에 응답하여, 잔여 코딩 블록을 잔여 코딩을 위한 두개 또는 그 이상의 잔여 블록들로 분할한다.
일부 예들에서, 비디오 코딩을 위한 장치가 제공된다. 상기 장치는 프로세서(720) 및 프로세서에 의해 실행 가능한 명령어를 저장하도록 구성된 메모리(704)를 포함하며, 프로세서는 명령어 실행시 도 8에 도시된 방법을 수행하도록 구성된다.
일부 다른 예들에서, 명령어가 저장된 비-일시적 컴퓨터 판독 가능 저장 매체(704)가 제공된다. 명령어가 프로세서(720)에 의해 실행될 경우, 명령어는 프로세서로 하여금 도 8에 도시된 방법을 수행하도록 한다.
도 9는 본 개시의 일부 구현 방식들에 따른 비디오 코딩에서의 무손실 코딩 모드들에 관한 기술들의 예시적인 프로세스를 도시하는 흐름도이다.
단계 901에서, 프로세서(720)는 비디오 픽처를 복수의 코딩 단위(CU)들로 분할하되, 복수의 CU들 중 적어도 하나는 무손실 CU이다.
단계 902에서, 프로세서(720)는 무손실 CU에 대하여 잔여 코딩 방안을 선택하되, 무손실 CU에 대하여 선택한 잔여 코딩 방안은 비-변환 스킵 모드 CU들에 의해 사용되는 잔여 코딩 방안과 동일하다.
일부 예들에서, 비디오 코딩을 위한 장치가 제공된다. 상기 장치는 프로세서(720) 및 프로세서에 의해 실행 가능한 명령어를 저장하도록 구성된 메모리(704)를 포함하며, 프로세서는 명령어 실행시 도 9에 도시된 방법을 수행하도록 구성된다.
일부 다른 예들에서, 명령어가 저장된 비-일시적 컴퓨터 판독 가능 저장 매체(704)가 제공된다. 명령어가 프로세서(720)에 의해 실행될때, 명령어는 프로세서로 하여금 도 9에 도시된 방법을 수행하도록 한다.
본 개시 내용의 설명은 예시의 목적으로 제시된 것이며, 본 개시 내용을 망라하거나 제한하고자 하는 것은 아니다. 전술한 설명 및 관련 도면들의 시사로부터 당업자들은 다양한 수정, 변경 및 대안적인 구현 방식들은 명백히 이해할 것이다.
예시들은 본 개시의 원리 및 당업자가 본 개시를 다양한 구현 방식으로 구현하도록 이해하고, 특정된 용도에 적합하도록 본 개시를 수정하도록 본 개시의 기본적인 원리 및 다양한 구현 방식을 제일 적합하게 사용하도록 설명되었다. 따라서, 본 개시의 범위는 개시된 구현 방식들의 특정 예에 제한되지 않으며, 변형 및 다른 구현 방식들은 본 개시에 포함되는 것으로 해석되어야 한다.

Claims (16)

  1. 비트스트림으로부터 도출한 제1 지시에 기반하여 현재 블록이 변환 스킵모드에 있는지 여부를 확정하는 단계;
    상기 현재 블록이 상기 변환 스킵 모드에 있지 않다는 결정에 응답하여, 제 1 잔여 코딩 방안이 상기 현재 블록에 대하여 적용되는 것을 결정하되, 상기 제1 잔여 코딩 방안은 비-변환 스킵 블록(non-transform-skip block)에 대하여 미리 정의된 잔여 코딩 방안인 단계; 및
    상기 현재 블록이 상기 변환 스킵 모드에 있다는 결정에 응답하여, 상기 비트 스트림으로부터 도출한 제 2 지시에 더 기반하여 상기 변환 스킵 모드에서 상기 현재 블록에 대하여 상기 제 1 잔여 코딩 방안 또는 제 2 잔여 코딩 방안을 적용할지 여부를 확정하는 단계를 포함하는,
    비디오 디코딩을 위한 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 현재 블록에 대하여 1-비트 플래그를 수신하되, 상기 1-비트 플래그는 슬라이스 레벨 또는 픽처 레벨에서 디코더측 움직임 벡터 미세화(DMVR)의 턴 온/턴 오프를 제어하기 위한 것인 단계를 더 포함하는,
    비디오 디코딩을 위한 방법.
  4. 제 1 항에 있어서,
    상기 현재 블록에 대하여 1-비트 플래그를 수신하되, 상기 1-비트 플래그는 CU 레벨에서DMVR의 턴 온/턴 오프를 제어하기 위한 것인 단계를 더 포함하는,
    비디오 디코딩을 위한 방법.
  5. 제 1 항에 있어서,
    상기 현재 블록에 대하여 1-비트 플래그를 수신하되, 상기 1-비트 플래그는 슬라이스 레벨 또는 픽처 레벨에서 양방향 광학 흐름(BDOF)의 턴 온/턴 오프를 제어하기 위한 것인 단계를 더 포함하는,
    비디오 디코딩을 위한 방법.
  6. 제 1 항에 있어서,
    상기 현재 블록에 대하여 1-비트 플래그를 수신하되, 상기 1-비트 플래그는 CU 레벨에서 BDOF의 턴 온/턴 오프를 제어하기 위한 것인 단계를 더 포함하는,
    비디오 디코딩을 위한 방법.
  7. 제 1 항에 있어서,
    상기 현재 블록에 대하여 1-비트 플래그를 수신하되, 상기 1-비트 플래그는 슬라이스 레벨 또는 픽처 레벨에서 DMVR 및 BDOF 모두의 턴 온/턴 오프를 제어하기 위한 것인 단계를 더 포함하는,
    비디오 디코딩을 위한 방법.
  8. 하나 또는 그 이상의 프로세서; 및
    상기 하나 또는 그 이상의 프로세서들에 의해 실행 가능한 명령어들을 저장하도록 구성된 메모리를 포함하되,
    상기 하나 또는 그 이상의 프로세서들은 상기 명령어들을 실행시 아래와 같은 동작을 수행하도록 구성되며:
    비트스트림으로부터 도출한 제1 지시에 기반하여 현재 블록이 변환 스킵모드에 있는지 여부를 확정하고;
    상기 현재 블록이 상기 변환 스킵 모드에 있지 않다는 결정에 응답하여, 제 1 잔여 코딩 방안이 상기 현재 블록에 대하여 적용되는 것을 결정하되, 상기 제1 잔여 코딩 방안은 비-변환 스킵 블록(non-transform-skip block)에 대하여 미리 정의된 잔여 코딩 방안이고; 및
    상기 현재 블록이 상기 변환 스킵 모드에 있다는 결정에 응답하여, 상기 비트 스트림으로부터 도출한 제 2 지시에 더 기반하여 상기 변환 스킵 모드에서 상기 현재 블록에 대하여 상기 제 1 잔여 코딩 방안 또는 제 2 잔여 코딩 방안을 적용할지 여부를 확정하는,
    비디오 디코딩을 위한 장치.
  9. 삭제
  10. 제 8 항에 있어서,
    상기 하나 또는 그 이상의 프로세서들은 상기 명령어들을 실행 시,
    상기 현재 블록에 대하여 1-비트 플래그를 수신하도록 더 구성되되, 상기 1-비트 플래그는 슬라이스 레벨 또는 픽처 레벨에서 디코더 측 움직임 벡터 미세화(DMVR)의 턴 온/턴 오프를 제어하기 위한 것인,
    비디오 디코딩을 위한 장치.
  11. 제 8 항에 있어서,
    상기 하나 또는 그 이상의 프로세서들은,
    상기 현재 블록에 대하여 1-비트 플래그를 수신하도록 더 구성되되, 상기 1-비트 플래그는 CU 레벨에서DMVR의 턴 온/턴 오프를 제어하기 위한 것인,
    비디오 디코딩을 위한 장치.
  12. 제 8 항에 있어서,
    상기 하나 또는 그 이상의 프로세서들은,
    상기 현재 블록에 대하여 1-비트 플래그를 수신하도록 더 구성되되, 상기 1-비트 플래그는 슬라이스 레벨 또는 픽처 레벨에서 양방향 광학 흐름(BDOF)의 턴 온/턴 오프를 제어하기 위한 것인,
    비디오 디코딩을 위한 장치.
  13. 제 8 항에 있어서,
    상기 하나 또는 그 이상의 프로세서들은,
    상기 현재 블록에 대하여 1-비트 플래그를 수신하도록 더 구성되되, 상기 1-비트 플래그는 CU 레벨에서 BDOF의 턴 온/턴 오프를 제어하기 위한 것인,
    비디오 디코딩을 위한 장치.
  14. 하나 또는 그 이상의 프로세서들을 갖는 컴퓨팅 장치에 의하여 실행하기 위한 복수의 프로그램들을 저장하는 비-일시적 컴퓨터 판독 가능 저장 매체로서,
    상기 복수개의 프로그램들은 상기 하나 혹은 그 이상의 프로세서들에 의하여 실행될 경우 상기 컴퓨팅 장치로 하여금 비트스트림을 수신하고, 상기 비트스트림에 기반하여 제1항 및 제3항 내지 제7항 중 어느 한 항의 비디오 디코딩을 위한 방법을 수행하도록 하는,
    비-일시적 컴퓨터 판독 가능 저장 매체.
  15. 컴퓨터로 하여금 제1항 및 제3항 내지 제7항 중 어느 한 항의 비디오 디코딩을 위한 방법을 수행하도록 하기 위하여 매체에 저장된 컴퓨터 프로그램.
  16. 삭제
KR1020217043013A 2019-06-28 2020-06-29 비디오 코딩을 위한 무손실 코딩 모드 KR102580875B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237031708A KR20230135187A (ko) 2019-06-28 2020-06-29 비디오 코딩을 위한 무손실 코딩 모드

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962868857P 2019-06-28 2019-06-28
US62/868,857 2019-06-28
US201962871134P 2019-07-06 2019-07-06
US62/871,134 2019-07-06
PCT/US2020/040195 WO2020264529A1 (en) 2019-06-28 2020-06-29 Lossless coding modes for video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237031708A Division KR20230135187A (ko) 2019-06-28 2020-06-29 비디오 코딩을 위한 무손실 코딩 모드

Publications (2)

Publication Number Publication Date
KR20220000962A KR20220000962A (ko) 2022-01-04
KR102580875B1 true KR102580875B1 (ko) 2023-09-20

Family

ID=74059652

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237031708A KR20230135187A (ko) 2019-06-28 2020-06-29 비디오 코딩을 위한 무손실 코딩 모드
KR1020217043013A KR102580875B1 (ko) 2019-06-28 2020-06-29 비디오 코딩을 위한 무손실 코딩 모드

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237031708A KR20230135187A (ko) 2019-06-28 2020-06-29 비디오 코딩을 위한 무손실 코딩 모드

Country Status (7)

Country Link
US (1) US20220124347A1 (ko)
EP (1) EP3973704A4 (ko)
JP (2) JP2022538331A (ko)
KR (2) KR20230135187A (ko)
CN (2) CN115567708A (ko)
MX (1) MX2021015957A (ko)
WO (1) WO2020264529A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3086485A1 (fr) * 2018-09-21 2020-03-27 Orange Procedes et dispositifs de codage et de decodage d'un flux de donnees representatif d'au moins une image.
US20220256151A1 (en) * 2019-08-23 2022-08-11 Sony Group Corporation Image processing device and method
KR20220053580A (ko) 2019-09-09 2022-04-29 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 블록 복제 코딩 및 디코딩

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140131352A (ko) * 2012-02-06 2014-11-12 노키아 코포레이션 코딩을 위한 방법 및 장치
KR20140089485A (ko) * 2013-01-04 2014-07-15 삼성전자주식회사 무손실 코딩 방식의, 비디오 부호화 방법 및 장치, 그 복호화 방법 및 장치.
ES2810253T3 (es) * 2013-04-23 2021-03-08 Qualcomm Inc Reposicionamiento de bloques residuales de predicción en codificación de vídeo
CN111064965B (zh) * 2014-03-16 2022-05-24 Vid拓展公司 用于无损视频译码的信令的方法、设备和计算机可读介质
CN113170097B (zh) * 2018-11-20 2024-04-09 北京字节跳动网络技术有限公司 视频编解码模式的编解码和解码
JP2022525399A (ja) * 2019-03-11 2022-05-13 ヴィド スケール インコーポレイテッド サブピクチャ適応解像度変更のための方法および装置
WO2020254335A1 (en) * 2019-06-20 2020-12-24 Interdigital Vc Holdings France, Sas Lossless mode for versatile video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jianle Chen, et al. Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5), Joint Video exploration Team(JVET), JVET-N1002-v2, 2019-06-11, pp. 1-79*
Sriram sethuraman, Non-CE9: Header flags to disable DMVR and BDOF at finer granularities, Joint Video exploration Team(JVET), JVET-O0504-v1, 2019-07-03, pp. 1-3*

Also Published As

Publication number Publication date
WO2020264529A1 (en) 2020-12-30
CN115567708A (zh) 2023-01-03
KR20220000962A (ko) 2022-01-04
US20220124347A1 (en) 2022-04-21
JP2022538331A (ja) 2022-09-01
JP2024069342A (ja) 2024-05-21
EP3973704A4 (en) 2022-07-27
CN113994673A (zh) 2022-01-28
EP3973704A1 (en) 2022-03-30
KR20230135187A (ko) 2023-09-22
MX2021015957A (es) 2022-02-03

Similar Documents

Publication Publication Date Title
KR102580875B1 (ko) 비디오 코딩을 위한 무손실 코딩 모드
EP2497271A2 (en) Hybrid video coding
CN113892264A (zh) 使用非矩形预测模式来减少用于视频数据预测的运动场存储
KR20210088697A (ko) 인코더, 디코더 및 대응하는 디블록킹 필터 적응의 방법
CN114009039A (zh) 视频译码中的时间运动矢量预测候选的推导
JP7488358B2 (ja) ビデオ符号化における構文要素のシグナリングのための方法および装置
JP2024016288A (ja) ビデオコーディングにおけるデコーダ側動きベクトル補正のための方法および装置
US20230370604A1 (en) Flexible scaling factors for joint mvd coding
KR102663465B1 (ko) 비디오 코딩을 위한 예측 종속 잔차 스케일링을 위한 방법 및 장치
KR102642367B1 (ko) 비디오 코딩에서의 신택스 요소들의 시그널링을 위한 방법 및 장치
KR20230091169A (ko) 모션 벡터 차이의 향상된 시그널링을 위한 방법 및 장치
KR20240042245A (ko) 삼각형 분할을 이용한 비디오 코딩을 위한 방법 및 장치
US11936903B2 (en) Bilateral matching based scaling factor derivation for JMVD
KR102667418B1 (ko) 비디오 코딩에서의 신택스 엘리먼트의 시그널링을 위한 방법 및 장치
KR20240074009A (ko) 비디오 코딩에서의 신택스 엘리먼트의 시그널링을 위한 방법 및 장치
CN113841406A (zh) 使用三角形分割用于视频编解码的方法和装置
KR20240074907A (ko) 비디오 코딩에서의 신택스 엘리먼트의 시그널링을 위한 방법 및 장치
KR20240074908A (ko) 비디오 코딩에서의 신택스 엘리먼트의 시그널링을 위한 방법 및 장치
KR20240074008A (ko) 비디오 코딩에서의 신택스 엘리먼트의 시그널링을 위한 방법 및 장치
KR20230117598A (ko) 모션 벡터 차이의 공동 코딩
CN114080807A (zh) 利用三角分区进行视频编解码的方法和装置
CN114402618A (zh) 用于视频编解码中的解码器端运动矢量细化的方法和装置
WO2024015092A1 (en) Method and apparatus for boundary filtering for intrabc and intratmp modes
CN114982230A (zh) 用于使用三角形分区的视频编解码的方法和装置

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)