KR20210099129A - 비디오 코딩에서 인터 예측을 수행하기 위한 시스템들 및 방법들 - Google Patents

비디오 코딩에서 인터 예측을 수행하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20210099129A
KR20210099129A KR1020217021666A KR20217021666A KR20210099129A KR 20210099129 A KR20210099129 A KR 20210099129A KR 1020217021666 A KR1020217021666 A KR 1020217021666A KR 20217021666 A KR20217021666 A KR 20217021666A KR 20210099129 A KR20210099129 A KR 20210099129A
Authority
KR
South Korea
Prior art keywords
flag
video
prediction
block
motion vector
Prior art date
Application number
KR1020217021666A
Other languages
English (en)
Inventor
키란 무케쉬 미스라
프랭크 보센
크리스토퍼 앤드류 시걸
Original Assignee
샤프 가부시키가이샤
에프쥐 이노베이션 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샤프 가부시키가이샤, 에프쥐 이노베이션 컴퍼니 리미티드 filed Critical 샤프 가부시키가이샤
Publication of KR20210099129A publication Critical patent/KR20210099129A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 비디오 코딩에 관한 것으로, 보다 구체적으로는, 인터 예측을 수행하기 위한 기법들에 관한 것이다. 본 발명의 태양에 따르면, 병합 서브 블록 플래그의 값이 0이고 모션 벡터 차이 플래그의 값이 1인 경우 모션 벡터 차이 병합 플래그가 디코딩되고, 여기서 모션 벡터 차이 플래그는 모션 벡터 차이를 갖는 병합 모드가 사용가능한지 여부를 특정한다.

Description

비디오 코딩에서 인터 예측을 수행하기 위한 시스템들 및 방법들
본 발명은 비디오 코딩에 관한 것으로, 보다 구체적으로는, 인터 예측(inter prediction)을 수행하기 위한 기법들에 관한 것이다.
디지털 비디오 능력은 디지털 텔레비전, 랩톱 또는 데스크톱 컴퓨터, 태블릿 컴퓨터, 디지털 레코딩 디바이스, 디지털 미디어 플레이어, 비디오 게이밍(gaming) 디바이스, 소위 스마트 폰을 포함한 셀룰러 전화, 의료 이미징 디바이스 등을 포함한 광범위한 디바이스들에 통합될 수 있다. 디지털 비디오는 비디오 코딩 표준에 따라 코딩될 수 있다. 비디오 코딩 표준들은 비디오 압축 기법들을 포함할 수 있다. 비디오 코딩 표준들의 예는 ISO/IEC MPEG-4 Visual 및 ITU-T H.264(ISO/IEC MPEG-4 AVC로도 알려짐) 및 HEVC(High-Efficiency Video Coding)를 포함한다. HEVC는 문헌[High Efficiency Video Coding (HEVC), Rec. ITU-T H.265, December 2016]에 기술되어 있으며, 이는 참고로 포함되고 본 명세서에서 ITU-T H.265로 지칭된다. 차세대 비디오 코딩 표준들의 개발을 위해 ITU-T H.265에 대한 확장 및 개선이 현재 고려되고 있다. 예를 들어, ITU-T VCEG(Video Coding Experts Group) 및 ISO/IEC(MPEG(Moving Picture Experts Group)(집합적으로 JVET(Joint Video Exploration Team)로 지칭됨))는 현재 HEVC 표준의 압축 능력을 현저히 초과하는 압축 능력을 가진 미래 비디오 코딩 기술의 표준화에 대한 잠재적 필요성을 연구하고 있다. 본 명세서에 참고로 포함되는 문헌[The Joint Exploration Model 7 (JEM 7), Algorithm Description of Joint Exploration Test Model 7 (JEM 7), ISO/IEC JTC1/SC29/WG11 Document: JVET-G1001, July 2017, Torino, IT]은 JVET에 의한 공동 테스트 모델 연구 하의 코딩 피처(coding feature)들을, ITU-T H.265의 능력들을 능가하여 비디오 코딩 기술을 잠재적으로 향상시키는 것으로서 기술하고 있다. JEM 7의 코딩 피처들은 JEM 레퍼런스 소프트웨어로 구현된다는 점에 유의해야 한다. 본 명세서에서 사용된 바와 같이, 용어 "JEM"은 JEM 7에 포함된 알고리즘들 및 JEM 레퍼런스 소프트웨어의 구현들을 집합적으로 지칭할 수 있다. 추가로, VCEG 및 MPEG에 의해 공동으로 발행된 문헌["Joint Call for Proposals on Video Compression with Capabilities beyond HEVC"]에 응답하여, 비디오 코딩의 다수의 설명들이 미국 캘리포니아주 샌디에고에서의 2018년 4월 16일 내지 20일의 ISO/IEC JTC1/SC29/WG11의 10번째 회의에서 다양한 그룹들에 의해 제안되었다. 비디오 코딩의 다수의 설명들의 결과로서, 비디오 코딩 사양의 초안이 문헌[“Versatile Video Coding (VVC) (Draft 1),” 10th Meeting of ISO/IEC JTC1/SC29/WG11 16-20 April 2018, San Diego, CA, document JVET-J1001-v2]에 기재되어 있으며, 이는 본 명세서에 참고로 포함되고 JVET-J1001로 지칭된다. 본 명세서에 참고로 포함되고 JVET-K1001로 지칭되는 문헌[“Versatile Video Coding (Draft 2),” 11th Meeting of ISO/IEC JTC1/SC29/WG11 10-18 July 2018, Ljubljana, SI, document JVET-K1001-v7]은 JVET-J1001의 업데이트(update)이다. 또한, 본 명세서에 참고로 포함되고 JVET-L1001로 지칭되는 문헌[“Versatile Video Coding (Draft 3),” 12th Meeting of ISO/IEC JTC1/SC29/WG11 3-12 October 2018, Macao, CN, document JVET-L1001-v6]은 JVET-K1001의 업데이트이다.
비디오 압축 기법은 비디오 데이터를 저장하고 송신하기 위한 데이터 요건들이 감소될 수 있게 한다. 비디오 압축 기법은 비디오 시퀀스 내의 고유 중복성을 활용함으로써 데이터 요건들을 감소시킬 수 있다. 비디오 압축 기법은 비디오 시퀀스를 연속적으로 더 작은 부분들(즉, 비디오 시퀀스 내의 프레임들의 그룹들, 프레임들의 그룹 내의 프레임, 프레임 내의 영역들, 영역 내의 비디오 블록들, 및 비디오 블록 내의 서브 블록들)로 세분할 수 있다. 인트라 예측(intra prediction) 코딩 기법(예컨대, 인트라-픽처(intra-picture)(공간적)) 및 인터 예측 기법(즉, 인터-픽처(시간적))은 코딩될 비디오 데이터의 유닛과 비디오 데이터의 기준 유닛 사이의 차이 값들을 생성하는 데 사용될 수 있다. 차이 값들은 잔차 데이터로 지칭될 수 있다. 잔차 데이터는 양자화된 변환 계수들로서 코딩될 수 있다. 신택스 요소(syntax element)들은 잔차 데이터와 기준 코딩 유닛(예컨대, 인트라-예측 모드 인덱스들, 모션 벡터들, 및 블록 벡터들)을 관련시킬 수 있다. 잔차 데이터 및 신택스 요소들은 엔트로피 코딩될 수 있다. 엔트로피 인코딩된 잔차 데이터 및 신택스 요소들은 컴플라이언트 비트스트림(compliant bitstream) 내에 포함될 수 있다. 컴플라이언트 비트스트림 및 연관된 메타데이터가 데이터 구조에 따라 포맷될 수 있다.
일례에서, 비디오 데이터를 디코딩하는 방법은, 코딩 유닛에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 병합 서브 블록 플래그를 디코딩하는 단계; 및 병합 서브 블록 플래그의 값이 0이고 모션 벡터 차이 플래그의 값이 1인 경우, 모션 벡터 차이 병합 플래그를 디코딩하는 단계를 포함하고, 모션 벡터 차이 병합 플래그는 모션 벡터 차이를 갖는 예측 파라미터가 사용되는지를 특정하고,
모션 벡터 차이 플래그는 모션 벡터 차이를 갖는 병합 모드가 사용가능한지 여부를 특정한다.
일례에서, 비디오 데이터를 코딩하는 방법은, 코딩 유닛에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 병합 서브 블록 플래그를 코딩하는 단계; 및 병합 서브 블록 플래그의 값이 0이고 모션 벡터 차이 플래그의 값이 1인 경우, 모션 벡터 차이 병합 플래그를 코딩하는 단계를 포함하고, 모션 벡터 차이 병합 플래그는 모션 벡터 차이를 갖는 예측 파라미터가 사용되는지를 특정하고, 모션 벡터 차이 플래그는 모션 벡터 차이를 갖는 병합 모드가 사용가능한지 여부를 특정한다.
도 1은 본 발명의 하나 이상의 기법들에 따른, 쿼드트리 멀티 트리 분할(quad tree multi tree partitioning)에 따라 코딩되는 픽처들의 그룹의 일례를 도시한 개념도이다.
도 2a는 본 발명의 하나 이상의 기법들에 따른, 비디오 데이터의 블록을 코딩하는 예를 도시한 개념도이다.
도 2b는 본 발명의 하나 이상의 기법들에 따른, 비디오 데이터의 블록을 코딩하는 예를 도시한 개념도이다.
도 3은 본 발명의 하나 이상의 기법들에 따른, 모션 벡터 예측자(motion vector predictor, MVP)들을 위한 후보의 세트 내에 포함시킬 이웃 비디오 블록들의 위치를 도시한 개념도이다.
도 4는 본 발명의 하나 이상의 기법들에 따른, 후보 모션 벡터 예측자들의 세트 내에 포함시킬 비디오 블록들에 이웃하는 위치를 도시한 개념도이다
도 5는 본 발명의 하나 이상의 기법들에 따른, 비디오 데이터를 인코딩 및 디코딩하도록 구성될 수 있는 시스템의 일례를 도시한 블록도이다.
도 6은 본 발명의 하나 이상의 기법들에 따른, 비디오 데이터를 인코딩하도록 구성될 수 있는 비디오 인코더의 일례를 도시한 블록도이다.
도 7은 본 발명의 하나 이상의 기법들에 따른, 비디오 데이터를 디코딩하도록 구성될 수 있는 비디오 디코더의 일례를 도시한 블록도이다.
일반적으로, 본 발명은 비디오 데이터를 코딩하기 위한 다양한 기법들을 기술한다. 구체적으로, 본 발명은 비디오 코딩에서의 인터 예측을 위한 기법들을 설명한다. 구체적으로, 본 발명은 다양한 인터 예측 도구들이 비디오를 코딩하는 데 사용가능한지 또는 사용가능하지 않은지를 나타내기 위한 기법들을 설명한다. 다양한 인터 예측 도구들이 본 명세서에 설명된 기법들에 따라 사용가능한지 또는 사용가능하지 않은지를 나타내는 것은 현재 비디오 블록을 코딩하는 데 사용되는 예측 기법을 효율적으로 시그널링하는 데 특히 유용할 수 있다. 본 발명의 기법들이 ITU-T H.264, ITU-T H.265, JVET-J1001, JVET-K1001, 및 JVET-L1001과 관련하여 기술되지만, 본 발명의 기법들은 대체로 비디오 코딩에 적용가능하다는 것에 유의하여야 한다. 예를 들어, 본 명세서에 기술되는 코딩 기법들은 블록 구조, 인트라 예측 기법, 인터 예측 기법, 변환 기법, 필터링 기법, 및/또는 ITU-T H.265에 포함된 것들 이외의 엔트로피 코딩 기법을 포함하는 비디오 코딩 시스템들(미래 비디오 코딩 표준들에 기초한 비디오 코딩 시스템들을 포함함)에 통합될 수 있다. 따라서, ITU-T H.264, ITU-T H.265, JVET-J1001, JVET-K1001, 및 JVET-L1001에 대한 언급은 설명 목적을 위한 것이며, 본 명세서에서 기술되는 기법들의 범주를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에 문헌을 참고로 포함시키는 것은 본 명세서에서 사용된 용어들에 대하여 모호함을 제한하거나 생성하는 것으로 해석되어서는 안 된다는 것에 유의해야 한다. 예를 들어, 포함되는 참고 문헌이 다른 포함되는 참고 문헌과는 상이한 정의의 용어를 제공하는 경우 그리고/또는 그 용어가 본 명세서에서 사용될 때, 그 용어는 각자의 정의 각각을 폭넓게 포함하는 방식으로 그리고/또는 대안에서 특정 정의들 각각을 포함하는 방식으로 해석되어야 한다.
일례에서, 비디오 데이터를 코딩하기 위한 인터 예측을 수행하는 방법은, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 결정하는 단계, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 시그널링하는 단계, 및 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 시그널링하는 단계를 포함한다.
일례에서, 디바이스는, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 결정하도록, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 시그널링하도록, 그리고 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 시그널링하도록 구성된 하나 이상의 프로세서들을 포함한다.
일례에서, 비일시적 컴퓨터 판독가능 저장 매체에는 명령어들이 저장되고, 명령어들은, 실행될 때, 디바이스의 하나 이상의 프로세서들로 하여금, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 결정하게 하고, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 시그널링하게 하고, 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 시그널링하게 한다.
일례에서, 장치는, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 결정하기 위한 수단, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 시그널링하기 위한 수단, 및 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 시그널링하기 위한 수단을 포함한다.
일례에서, 비디오 데이터를 코딩하기 위한 인터 예측을 수행하는 방법은, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 파싱(parse)하는 단계, 및 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 파싱된 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 파싱하는 단계를 포함한다.
일례에서, 디바이스는, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 파싱하도록, 그리고 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 파싱된 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 파싱하도록 구성된 하나 이상의 프로세서들을 포함한다.
일례에서, 비일시적 컴퓨터 판독가능 저장 매체에는 명령어들이 저장되고, 명령어들은, 실행될 때, 디바이스의 하나 이상의 프로세서들로 하여금, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 파싱하게 하고, 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 파싱된 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 파싱하게 한다.
일례에서, 장치는, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 파싱하기 위한 수단, 및 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 파싱된 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 파싱하기 위한 수단을 포함한다.
하나 이상의 예의 상세 사항들이 첨부 도면들 및 아래의 설명에 기재된다. 다른 특징들, 목적들 및 이점들이 설명 및 도면들로부터, 그리고 청구범위로부터 명백할 것이다.
비디오 콘텐츠는, 전형적으로, 일련의 프레임들(또는 픽처들)로 구성된 비디오 시퀀스들을 포함한다. 일련의 프레임들은 또한 GOP(group of pictures)로 지칭될 수 있다. 각각의 비디오 프레임 또는 픽처는 하나 이상의 영역들로 분할될 수 있다. 영역들은 기본 유닛(예컨대, 비디오 블록) 및 영역을 정의하는 규칙들의 세트들에 따라 정의될 수 있다(예컨대, 영역은 직사각형으로 배열된 정수 개수의 비디오 블록들이어야 함). 본 명세서에서 사용되는 바와 같이, 용어 “비디오 블록”은 일반적으로 픽처의 영역을 지칭할 수 있거나, 또는 더 구체적으로, 예측적으로 코딩될 수 있는 샘플 값들의 최대 어레이, 그의 서브분할부(sub-division)들, 및/또는 대응하는 구조들을 지칭할 수 있다. 또한, 용어 “현재 비디오 블록”은 인코딩 또는 디코딩되고 있는 픽처의 영역을 지칭할 수 있다. 비디오 블록은 예측적으로 코딩될 수 있는 샘플 값들의 어레이로서 정의될 수 있다. 일부 경우에, 픽셀 값들은, 컬러 성분들(예컨대, 루마(Y) 및 크로마(Cb, Cr) 성분들 또는 적색, 녹색, 및 청색 성분들)로도 지칭될 수 있는, 비디오 데이터의 각각의 성분들에 대한 샘플 값들을 포함하는 것으로서 설명될 수 있다는 것에 유의하여야 한다. 일부 경우에, 용어들 “픽셀 값” 및 “샘플 값”은 상호교환가능하게 사용된다는 것에 유의하여야 한다. 추가로, 일부 경우에, 픽셀 또는 샘플은 펠(pel)로 지칭될 수 있다. 크로마 포맷으로도 지칭될 수 있는 비디오 샘플링 포맷은 비디오 블록에 포함된 루마 샘플들의 수와 관련하여 비디오 블록에 포함된 크로마 샘플들의 수를 정의할 수 있다. 예를 들어, 4:2:0 샘플링 포맷의 경우, 루마 성분에 대한 샘플링 레이트(sampling rate)는 수평 방향 및 수직 방향 양측 모두에 대해 크로마 성분들의 샘플링 레이트의 2배이다. 그 결과, 4:2:0 포맷에 따라 포맷된 비디오 블록의 경우, 루마 성분에 대한 샘플들의 어레이의 폭 및 높이는 크로마 성분들에 대한 샘플들의 각각의 어레이의 폭 및 높이의 2배이다. 4:2:2 포맷에 따라 포맷된 비디오 블록의 경우, 루마 성분에 대한 샘플들의 어레이의 폭은 각각의 크로마 성분에 대한 샘플들의 어레이의 폭의 2배이지만, 루마 성분에 대한 샘플들의 어레이의 높이는 각각의 크로마 성분에 대한 샘플들의 어레이의 높이와 동일하다. 또한, 4:4:4 포맷에 따라 포맷된 비디오 블록의 경우, 루마 성분에 대한 샘플들의 어레이는 각각의 크로마 성분에 대한 샘플들의 어레이와 같은 폭 및 높이를 갖는다.
비디오 블록들은 스캔 패턴(예컨대, 래스터(raster) 스캔)에 따라 픽처 및/또는 영역 내에 정리될 수 있다. 비디오 인코더는 비디오 블록들 및 그의 서브분할부들에 대해 예측 인코딩을 수행할 수 있다. 비디오 블록들 및 그의 서브분할부들은 노드들로 지칭될 수 있다. ITU-T H.264는 16x16개의 루마 샘플들을 포함하는 매크로블록(macroblock)을 명시한다. 즉, ITU-T H.264에서, 픽처는 매크로블록들로 세그먼트화된다. ITU-T H.265는 유사한 코딩 트리 유닛(Coding Tree Unit, CTU) 구조(최대 코딩 유닛(largest coding unit, LCU)으로도 지칭됨)를 명시한다. ITU-T H.265에서, 픽처들은 CTU들로 세그먼트화된다. ITU-T H.265에서, 픽처에 대해, CTU 크기는 16x16, 32x32, 또는 64x64개의 루마 샘플들을 포함하는 것으로 설정될 수 있다. ITU-T H.265에서, CTU는 비디오 데이터의 각각의 성분(예컨대, 루마(Y) 및 크로마(Cb, Cr))에 대한 각각의 코딩 트리 블록(Coding Tree Block, CTB)들로 구성된다. 또한, ITU-T H.265에서, CTU는 쿼드트리(quadtree, QT) 분할 구조에 따라 분할될 수 있으며, 이는 CTU의 CTB들이 코딩 블록(Coding Block, CB)들로 분할되는 결과를 가져온다. 즉, ITU-T H.265에서, CTU는 쿼드트리 리프 노드(quadtree leaf node)들로 분할될 수 있다. ITU-T H.265에 따르면, 2개의 대응하는 크로마 CB들 및 연관된 신택스 요소들과 함께 하나의 루마 CB는 코딩 유닛(coding unit, CU)으로 지칭된다. ITU-T H.265에서, CB의 최소 허용 크기가 시그널링될 수 있다. ITU-T H.265에서, 루마 CB의 가장 작은 최소 허용 크기는 8x8개의 루마 샘플들이다. ITU-T H.265에서, 인트라 예측 또는 인터 예측을 사용하여 픽처 영역을 코딩하는 결정이 CU 레벨에서 이루어진다.
ITU-T H.265에서, CU는 CU에서 그의 루트(root)를 갖는 예측 유닛(prediction unit, PU) 구조와 연관된다. ITU-T H.265에서, PU 구조들은 루마 및 크로마 CB들이 대응하는 기준 샘플들을 생성할 목적으로 분할될 수 있게 한다. 즉, ITU-T H.265에서, 루마 및 크로마 CB들은 각자의 루마 및 크로마 예측 블록(PB)들로 분할될 수 있으며, 여기서 PB는 동일한 예측이 그에 대해 적용되는 샘플 값들의 블록을 포함한다. ITU-T H.265에서, CB는 1개, 2개 또는 4개의 PB로 분할될 수 있다. ITU-T H.265는 64x64개 샘플들로부터 4x4개 샘플들에 이르기까지의 PB 크기들을 지원한다. ITU-T H.265에서, 정사각형 PB들이 인트라 예측을 위해 지원되며, 여기서 CB가 PB를 형성할 수 있거나 CB가 4개의 정사각형 PB들로 분할될 수 있다(즉, 인트라 예측 PB 타입들은 MxM 또는 M/2xM/2을 포함하고, 이때 M은 정사각형 CB의 높이 및 폭이다). ITU-T H.265에서, 정사각형 PB들에 더하여, 직사각형 PB들이 인터 예측을 위해 지원되며, 여기서 CB가 수직으로 또는 수평으로 반분되어 PB들을 형성할 수 있다(즉, 인터 예측 PB 타입들은 MxM, M/2xM/2, M/2xM, 또는 MxM/2을 포함한다). 또한, ITU-T H.265에서, 인터 예측을 위해, 4개의 비대칭 PB 파티션들이 지원되며, 여기서 CB는 CB의 높이(상부 또는 하부에서) 또는 폭(좌측 또는 우측에서)의 1/4에서 2개의 PB들로 분할된다(즉, 비대칭 파티션들은 M/4xM 좌측, M/4xM 우측, MxM/4 상부, 및 MxM/4 하부를 포함한다)는 것에 유의해야 한다. PB에 대응하는 인트라 예측 데이터(예컨대, 인트라 예측 모드 신택스 요소들) 또는 인터 예측 데이터(예컨대, 모션 데이터 신택스 요소들)가 PB에 대한 기준 및/또는 예측된 샘플 값들을 생성하는 데 사용된다.
전술된 바와 같이, 각각의 비디오 프레임 또는 픽처는 하나 이상의 영역들로 분할될 수 있다. 예를 들어, ITU-T H.265에 따르면, 각각의 비디오 프레임 또는 픽처는 하나 이상의 슬라이스들을 포함하도록 분할될 수 있고, 하나 이상의 타일(tile)들을 포함하도록 추가로 분할될 수 있으며, 여기서 각각의 슬라이스는 (예컨대, 래스터 스캔 순서로) CTU들의 시퀀스를 포함하고, 타일은 픽처의 직사각형 영역에 대응하는 CTU들의 시퀀스이다. ITU-T H.265에서, 슬라이스는 독립 슬라이스 세그먼트로 시작하고 같은 액세스 유닛 내의 다음 독립 슬라이스 세그먼트(존재하는 경우)에 선행하는 모든 후속 종속 슬라이스 세그먼트들(존재하는 경우)을 포함하는 하나 이상의 슬라이스 세그먼트의 시퀀스라는 점에 유의해야 한다. 슬라이스 세그먼트는, 슬라이스와 같이, CTU들의 시퀀스이다. 따라서, 일부 경우들에 있어서, 용어 "슬라이스" 및 "슬라이스 세그먼트"는 CTU들의 시퀀스를 나타내기 위해 상호교환가능하게 사용될 수 있다. 추가로, ITU-T H.265에서, 타일은 하나 초과의 슬라이스에 포함된 CTU들로 이루어질 수 있고, 슬라이스는 하나 초과의 타일에 포함된 CTU들로 이루어질 수 있다는 점에 유의해야 한다. 그러나, ITU-T H.265는 다음의 조건들 중 하나 또는 둘 모두가 충족되어야 한다고 규정한다: (1) 슬라이스 내의 모든 CTU들이 같은 타일에 속한다; 그리고 (2) 타일 내의 모든 CTU들이 같은 슬라이스에 속한다. JVET-L1001과 관련하여, 슬라이스들은 정수 개수의 완전한 CTU들로만 이루어지도록 요구되는 대신에, 정수 개수의 완전한 타일들로 이루어지도록 요구된다. 이와 같이, 픽처의 직사각형 영역을 형성하지 않는 CTU들의 세트를 포함하는 슬라이스는 일부 비디오 코딩 기법들에서 지원될 수 있거나 지원되지 않을 수 있다. 추가로, 정수 개수의 완전한 타일들로 이루어지도록 요구되는 슬라이스는 타일 그룹으로 지칭된다. 본 명세서에 설명된 기법들은 슬라이스들, 타일들, 및/또는 타일 그룹들에 적용가능할 수 있다. 도 1은 타일 그룹들을 포함하는 픽처들의 그룹의 예를 도시한 개념도이다. 도 1에 도시된 예에서, Pic3은 2개의 타일 그룹들(즉, 타일 그룹1 및 타일 그룹2)을 포함하는 것으로 도시되어 있다. 일부 경우들에서, 타일 그룹1 및 타일 그룹2는 슬라이스들 및/또는 타일들로서 분류될 수 있으며, 그 이유는 각각이 슬라이스 및 타일의 요건들을 충족하기 때문임에 유의해야 한다.
JEM은 최대 크기가 256x256개 루마 샘플들인 CTU를 명시한다. JEM은 쿼드트리 플러스 이진 트리(quadtree plus binary tree, QTBT) 블록 구조를 명시한다. JEM에서, QTBT 구조는 쿼드트리 리프 노드들이 이진 트리(binary tree, BT) 구조에 의해 추가로 분할될 수 있게 한다. 즉, JEM에서, 이진 트리 구조는 쿼드트리 리프 노드들이 수직으로 또는 수평으로 재귀적으로 분할될 수 있게 한다. JVET-L1001에서, CTU들은 쿼드트리 플러스 멀티 타입 트리(quadtree plus multi-type tree, QTMT) 구조에 따라 분할된다. JVET-L1001에서의 QTMT는 JEM에서의 QTBT와 유사하다. 그러나, JVET-L1001에서, 이진 분할을 나타내는 것에 더하여, 멀티 타입 트리는 소위 삼진(ternary)(또는 삼중 트리(triple tree, TT)) 분할들을 나타낼 수 있다. 삼진 분할은 블록을 수직으로 또는 수평으로 3개의 블록들로 분할한다. 수직 TT 분할의 경우에, 블록은 좌측 에지로부터 그의 폭의 1/4에서 그리고 우측 에지로부터 그의 폭의 1/4에서 분할되고, 수평 TT 분할의 경우에, 블록은 상부 에지로부터 그의 높이의 1/4에서 그리고 하부 에지로부터 그의 높이의 1/4에서 분할된다. 다시 도 1을 참조하면, 도 1은 CTU가 쿼드트리 리프 노드들로 분할되고 쿼드트리 리프 노드들이 BT 분할 또는 TT 분할에 따라 추가로 분할되는 예를 도시한다. 즉, 도 1에서 파선은 쿼드트리에서 추가 이진 및 삼진 분할들을 나타낸다.
전술된 바와 같이, 인트라 예측 데이터 또는 인터 예측 데이터는 현재 비디오 블록에 대한 기준 샘플 값들을 생성하는 데 사용된다. 현재 비디오 블록과 기준 샘플 값들로부터 생성된 예측에 포함된 샘플 값들 사이의 차이는 잔차 데이터로 지칭될 수 있다. 잔차 데이터는 비디오 데이터의 각각의 성분에 대응하는 차이 값들의 각자의 어레이들을 포함할 수 있다. 잔차 데이터는 픽셀 도메인에 있을 수 있다. 이산 코사인 변환(discrete cosine transform, DCT), 이산 사인 변환(discrete sine transform, DST), 정수 변환, 웨이블릿(wavelet) 변환, 또는 개념적으로 유사한 변환과 같은 변환이 차이 값들의 어레이에 적용되어 변환 계수들을 생성할 수 있다. ITU-T H.265 및 JVET-L1001에서, CU는 CU 레벨에서 그의 루트를 갖는 변환 유닛(transform unit, TU) 구조와 연관된다는 것에 유의하여야 한다. 즉, 차이 값들의 어레이는 변환 계수들을 생성할 목적으로 분할될 수 있다(예컨대, 4개의 8x8 변환들이 잔차 값들의 16x16 어레이에 적용될 수 있다). 비디오 데이터의 각각의 성분에 대해, 차이 값들의 그러한 서브분할부들은 변환 블록(Transform Block, TB)들로 지칭될 수 있다. 일부 경우에서, 코어 변환 및 후속 2차 변환이 변환 계수들을 생성하기 위해 (비디오 인코더에서) 적용될 수 있다는 것에 유의해야 한다. 비디오 디코더에 대해, 변환 순서가 반전된다.
양자화 프로세스가 변환 계수들에 대해 수행될 수 있다. 양자화는 본질적으로, 변환 계수들의 그룹을 표현하는 데 요구되는 데이터의 양을 변화시키기 위해 변환 계수들을 스케일링(scaling)한다. 양자화는 양자화 스케일링 팩터 및 (예컨대, 가장 가까운 정수로 반올림하는) 임의의 연관된 반올림 함수들에 의한 변환 계수들의 분할을 포함할 수 있다. 양자화된 변환 계수들은 계수 레벨 값들로 지칭될 수 있다. 역양자화(inverse quantization)(또는 "탈양자화")는 양자화 스케일링 팩터에 의한 계수 레벨 값들의 곱셈을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, 일부 경우에서의 용어 “양자화 프로세스”는, 일부 경우에, 레벨 값들을 생성하기 위한 스케일링 팩터에 의한 나눗셈 및 변환 계수들을 복구하기 위한 스케일링 팩터에 의한 곱셈을 지칭할 수 있다는 것에 유의하여야 한다. 즉, 양자화 프로세스는 몇몇 경우에는 양자화를 그리고 몇몇 경우에는 역양자화를 지칭할 수 있다.
도 2a 및 도 2b는 비디오 데이터의 블록을 코딩하는 예들을 도시한 개념도들이다. 도 2a에 도시된 바와 같이, 비디오 데이터의 현재 블록은 비디오 데이터의 현재 블록으로부터 예측 값들의 세트를 감산(subtracting)하여 잔차를 생성하고, 그 잔차에 대해 변환을 수행하고, 변환 계수들을 양자화하여 레벨 값들을 생성함으로써 인코딩된다. 도 2b에 도시된 바와 같이, 비디오 데이터의 현재 블록은, 레벨 값들에 대해 역양자화를 수행하고, 역변환을 수행하고, 예측 값들의 세트를 생성된 잔차에 가산함으로써 디코딩된다. 도 2a 및 도 2b의 예들에서, 재구성된 블록의 샘플 값들은 인코딩되는 현재 비디오 블록의 샘플 값들과는 상이하다는 것에 유의하여야 한다. 이러한 방식에서, 코딩은 손실이 있다고 할 수 있다. 그러나, 샘플 값들의 차이는 재구성된 비디오의 뷰어(viewer)에게 허용가능하고/하거나 인지불가능한 것으로 간주될 수 있다. 추가로, 도 2a 및 도 2b에 도시된 바와 같이, 스케일링 팩터들의 어레이를 이용하여 스케일링이 수행된다.
도 2a에 도시된 바와 같이, 양자화된 변환 계수들은 비트스트림으로 코딩된다. 양자화된 변환 계수들 및 신택스 요소들(예컨대, 비디오 블록에 대한 코딩 구조를 표시하는 신택스 요소들)은 엔트로피 코딩 기법에 따라 엔트로피 코딩될 수 있다. 엔트로피 코딩 기법들의 예들은 콘텐츠 적응성 가변 길이 코딩(content adaptive variable length coding, CAVLC), 콘텍스트 적응성 이진 산술 코딩(context adaptive binary arithmetic coding, CABAC), 확률 간격 분할 엔트로피 코딩(probability interval partitioning entropy coding, PIPE) 등을 포함한다. 엔트로피 인코딩된 양자화된 변환 계수들 및 대응하는 엔트로피 인코딩된 신택스 요소들은 비디오 디코더에서 비디오 데이터를 복원하는 데 사용될 수 있는 컴플라이언트 비트스트림을 형성할 수 있다. 엔트로피 코딩 프로세스는 신택스 요소들에 대해 이진화를 수행하는 것을 포함할 수 있다. 이진화는 신택스 값의 값을 일련의 하나 이상의 비트들로 변환하는 프로세스를 지칭한다. 이러한 비트들은 "빈(bin)"들로 지칭될 수 있다. 이진화는 무손실 프로세스이며, 하기 코딩 기법들 중 하나 또는 이들의 조합을 포함할 수 있다: 고정 길이 코딩(fixed length coding), 일진 코딩(unary coding), 트런케이트형 일진 코딩(truncated unary coding), 트런케이트형 라이스 코딩(truncated Rice coding), 골룸 코딩(Golomb coding), k-차 지수 골룸 코딩(k-th order exponential Golomb coding), 및 골룸-라이스 코딩(Golomb-Rice coding). 예를 들어, 이진화는, 8 비트 고정 길이 이진화 기법을 이용하여 신택스 요소에 대한 5의 정수 값을 00000101로서 표현하는 것 또는 일진 코딩 이진화 기법을 이용하여 5의 정수 값을 11110으로서 표현하는 것을 포함할 수 있다. 본 명세서에 사용되는 바와 같이, 용어들 “고정 길이 코딩”, “일진 코딩”, “트런케이트형 일진 코딩”, “트런케이트형 라이스 코딩”, “골룸 코딩”, “k-차 지수 골룸 코딩”, 및 “골룸-라이스 코딩” 각각은 이러한 기법의 일반적인 구현 및/또는 이러한 코딩 기법의 더 구체적인 구현을 지칭할 수 있다. 예를 들어, 골룸-라이스 코딩 구현은 비디오 코딩 표준, 예를 들어 ITU-T H.265에 따라 구체적으로 정의될 수 있다.
엔트로피 코딩 프로세스는 무손실 데이터 압축 알고리즘들을 사용하여 빈 값들을 코딩하는 것을 추가로 포함한다. CABAC의 예에서, 특정 빈에 대해, 콘텍스트 모델은 빈과 연관된 사용가능한 콘텍스트 모델들의 세트로부터 선택될 수 있다. 일부 예들에서, 콘텍스트 모델은 이전 신택스 요소들의 값들 및/또는 이전 빈에 기초하여 선택될 수 있다. 콘텍스트 모델은 빈이 특정 값을 가질 확률을 식별할 수 있다. 예를 들어, 콘텍스트 모델은 0-값 빈을 코딩하는 확률 0.7을 나타낼 수 있다. 사용가능한 콘텍스트 모델을 선택한 후, CABAC 엔트로피 인코더는 식별된 콘텍스트 모델에 기초하여 빈을 산술적으로 코딩할 수 있다. 콘텍스트 모델은 코딩된 빈의 값에 기초하여 업데이트될 수 있다. 콘텍스트 모델은 콘텍스트와 함께 저장된 연관된 변수, 예컨대, 적응 윈도우 크기, 콘텍스트를 사용하여 코딩된 빈들의 수에 기초하여 업데이트될 수 있다. CABAC 엔트로피 인코더는 일부 신택스 요소들이 명시적으로 할당된 콘텍스트 모델의 사용 없이 산술 인코딩을 이용하여 엔트로피 인코딩될 수 있도록 구현될 수 있다는 것에 유의해야 하며, 그러한 코딩은 바이패스(bypass) 코딩으로 지칭될 수 있다.
전술된 바와 같이, 인트라 예측 데이터 또는 인터 예측 데이터는 현재 비디오 블록에 대해 예측이 어떻게 생성되는지를 나타낸다. 인트라 예측 코딩의 경우, 인트라 예측 모드는 예측을 생성하는 데 사용되는 픽처 내의 기준 샘플들의 위치를 특정할 수 있다. ITU-T H.265에서, 정의된 가능한 인트라 예측 모드들은 평면(즉, 표면 피팅(surface fitting)) 예측 모드(predMode: 0), DC(즉, 플랫 오버올 에버리징(flat overall averaging)) 예측 모드(predMode: 1), 및 33개의 각도 예측 모드들(predMode: 2-34)을 포함한다. JVET-L1001에서, 루마에 대해 정의된 가능한 인트라 예측 모드들은 평면 예측 모드(predMode: 0), DC 예측 모드(predMode: 1), 및 65개의 각도 예측 모드들(predMode: 2-66)을 포함한다. 평면 및 DC 예측 모드들은 비-방향성 예측 모드들로 지칭될 수 있고 각도 예측 모드들은 방향성 예측 모드들로 지칭될 수 있다는 것에 유의해야 한다. 추가로, 크로마 성분들에 대한 인트라 예측 모드들이 루마 성분에 대한 인트라 예측 모드에 기초하여 도출될 수 있는 다양한 방식들이 있을 수 있다. 본 명세서에서 기술된 기법들은 정의된 가능한 예측 모드들의 수에 무관하게 일반적으로 적용가능할 수 있다는 것에 유의해야 한다.
인터 예측 코딩의 경우, 하나 이상의 이전에 디코딩된 픽처들, 즉, 기준 픽처가 결정되고, 모션 벡터(motion vector, MV)는 현재 비디오 블록에 대한 예측을 생성하는 데 사용되는 기준 픽처 내의 샘플들을 식별한다. 예를 들어, 현재 비디오 블록이 하나 이상의 이전에 코딩된 픽처(들)에 위치된 기준 샘플 값들을 사용하여 예측될 수 있고 모션 벡터가 현재 비디오 블록에 대한 기준 블록의 위치를 나타내는 데 사용된다. 모션 벡터는, 예를 들어, 모션 벡터의 수평 변위 성분(즉, MVx), 모션 벡터의 수직 변위 성분(즉, MVy), 및 모션 벡터에 대한 해상도(예컨대, 1/4 픽셀 정밀도, 1/2 픽셀 정밀도, 1 픽셀 정밀도, 2 픽셀 정밀도, 4 픽셀 정밀도)를 나타낼 수 있다. 현재 픽처 이전 또는 이후에 출력된 픽처들을 포함할 수 있는 이전에 디코딩된 픽처들은 하나 이상의 기준 픽처 목록들로 조직화될 수 있고, 기준 픽처 인덱스 값을 사용하여 식별될 수 있다. 추가로, 인터 예측 코딩에서, 단방향 예측은 단일 기준 픽처로부터의 샘플 값들을 사용하여 예측을 생성하는 것을 지칭하고, 양방향 예측은 2개의 기준 픽처들로부터의 각자의 샘플 값들을 사용하여 예측을 생성하는 것을 지칭한다. 즉, 단방향 예측에서는, 단일 기준 픽처 및 대응하는 모션 벡터가 현재 비디오 블록에 대한 예측을 생성하는 데 사용되고, 양방향 예측에서는, 제1 기준 픽처 및 대응하는 제1 모션 벡터와 제2 기준 픽처 및 대응하는 제2 모션 벡터가 현재 비디오 블록에 대한 예측을 생성하는 데 사용된다. 양방향 예측에서는, 각자의 샘플 값들이 조합(예컨대, 가산, 반올림, 및 버림, 가중치에 따른 평균)되어 예측을 생성한다. 픽처들 및 그의 영역들은 그의 비디오 블록들을 인코딩하는 데 어느 타입들의 예측 모드들이 이용될 수 있는지에 기초하여 분류될 수 있다. 즉, B 타입을 갖는 영역들(예컨대, B 슬라이스)의 경우, 양방향 예측, 단방향 예측, 및 인트라 예측 모드들이 이용될 수 있고, P 타입을 갖는 영역들(예컨대, P 슬라이스)의 경우, 단방향 예측 및 인트라 예측 모드들이 이용될 수 있고, I 타입을 갖는 영역들(예컨대, I 슬라이스)의 경우, 인트라 예측 모드들만이 이용될 수 있다. 전술된 바와 같이, 기준 픽처들은 기준 인덱스들을 통해 식별된다. ITU-T H.265에서, P 슬라이스의 경우에는, 단일 기준 픽처 목록(RefPicList0)이 있고, B 슬라이스의 경우에는, RefPicList0에 더하여, 제2 독립 기준 픽처 목록(RefPicList1)이 있다. B 슬라이스에서의 단방향 예측의 경우, RefPicList0 또는 RefPicList1 중 하나가 예측을 생성하는 데 사용될 수 있음에 유의하여야 한다. 추가로, ITU-T H.265에서, 디코딩 프로세스 동안, 픽처를 디코딩하기 시작할 때, 기준 픽처 목록(들)이 디코딩된 픽처 버퍼(decoded picture buffer, DPB)에 저장된 이전에 디코딩된 픽처로부터 생성된다는 것에 유의하여야 한다.
추가로, 코딩 표준은 다양한 모드들의 모션 벡터 예측을 지원할 수 있다. 모션 벡터 예측은 모션 벡터의 값이 다른 모션 벡터에 기초하여 도출될 수 있게 한다. 모션 벡터 예측의 예들은 어드밴스드 모션 벡터 예측(advanced motion vector prediction, AMVP), 시간 모션 벡터 예측(temporal motion vector prediction, TMVP), 소위 "병합(merge)" 모드, 및 "스킵(skip)" 및 "디렉트(direct)" 모션 추론을 포함한다. 또한, 모션 벡터 예측의 다른 예들은 어드밴스드 시간 모션 벡터 예측(advanced temporal motion vector prediction, ATMVP) 및 공간-시간 모션 벡터 예측(Spatial-temporal motion vector prediction, STMVP)을 포함한다. ITU-T H.265는 모션 벡터 예측에 대한 2개의 모드들을 지원한다: 병합 모드 및 소위 어드밴스드 모션 벡터 예측(AMVP). ITU-T H.265에서, 현재 PB에 대한 병합 모드 및 AMVP 둘 모두의 경우, 후보 블록들의 세트가 도출된다. 비디오 인코더 및 비디오 디코더 둘 모두는 후보들의 세트를 도출하기 위해 동일한 프로세스를 수행한다. 따라서, 현재 비디오 블록에 대해, 인코딩 및 디코딩 동안 동일한 후보들의 세트가 생성된다. 후보 블록은, 현재 비디오 블록에 대한 예측을 생성하는 데 사용되는 모션 정보가 도출될 수 있는 연관된 모션 정보를 갖는 비디오 블록을 포함한다. ITU-T H.265에서의 병합 모드의 경우, 선택된 후보와 연관된 모든 모션 정보(즉, 모션 벡터 변위 값들, 기준 픽처 인덱스들, 및 기준 픽처 목록들)는 현재 PB에 대한 모션 정보로서 이어진다(inherit). 즉, 비디오 인코더에서, 후보 블록은 도출된 후보들의 세트로부터 선택되고, 비트스트림에 포함된 인덱스 값은 선택된 후보를 나타내며, 그에 따라, 현재 PB에 대한 모션 정보를 나타낸다. ITU-T H.265에서의 AMVP의 경우, 선택된 후보에 대한 모션 벡터 정보는 현재 PB의 모션 벡터에 대한 모션 벡터 예측자(MVP)로서 사용된다. 즉, 비디오 인코더에서, 후보 블록은 도출된 후보 세트로부터 선택되고, 선택된 후보를 나타내는 인덱스 값 및 모션 벡터 예측자와 현재 PB에 대한 모션 벡터 사이의 차이를 나타내는 델타 값(즉, 모션 벡터 델타(motion vector delta, MVD))이 비트스트림 내에 포함된다. 추가로, ITU-T H.265에서의 AMVP의 경우, 기준 픽처를 식별하는 신택스 요소들이 비트스트림 내에 포함된다.
ITU-T H.265에서, 후보 블록들의 세트는 공간 이웃 블록들 및 시간 블록들로부터 도출될 수 있다. 추가로, 생성된(또는 디폴트) 모션 정보는 모션 벡터 예측에 사용될 수 있다. ITU-T H.265에서, 현재 PB의 모션 벡터 예측에 사용되는 모션 정보가 공간 이웃 블록들과 연관된 모션 정보, 시간 블록들과 연관된 모션 정보, 또는 생성된 모션 정보를 포함하는지 여부는 세트에 포함되는 후보들의 수, 시간 모션 벡터 예측이 가능한지 여부, 블록들의 이용가능성, 및/또는 블록들과 연관된 모션 정보가 중복되는지 여부에 종속한다.
ITU-T H.265에서의 병합 모드의 경우, 후보 블록들의 세트 내에 포함될 수 있는 후보들의 최대 수는 비디오 인코더에 의해 설정 및 시그널링될 수 있고 최대 5개일 수 있다. 추가로, 비디오 인코더는 (예컨대, 비디오 디코더에 모션 정보를 저장하는 데 필요한 메모리 리소스들의 양을 감소시키기 위해) 시간 모션 벡터 후보들의 사용을 가능하지 않게 하고, 시간 모션 벡터 후보들의 사용이 픽처에 대해 가능한지 또는 가능하지 않은지를 시그널링할 수 있다. 도 3은 ITU-T H.265에서의 병합 모드에 대한 후보 블록들의 세트 내에 포함될 수 있는 공간 이웃 블록들 및 시간 블록의 위치를 도시한다. ITU-T H.265에서 병합 모드에 대한 후보들의 세트의 도출은 A1, B1, B0, A0, 및 B2의 이용가능성을 결정하는 것을 포함한다. 블록이 인트라 예측되거나(즉, 대응하는 모션 정보를 갖지 않음) 또는 현재 슬라이스(또는 타일)에 포함되지 않는 경우, 블록은 이용가능하지 않은 것으로 간주된다는 것에 유의하여야 한다. A1, B1, B0, A0, 및 B2의 이용가능성을 결정한 후, 후보들의 세트로부터 중복 엔트리들을 제거하기 위해 한 세트의 비교들(도 3에 파선 화살표들로 도시됨)이 수행된다. 예를 들어, B2가 B1과 비교되어, B1이 B2의 것과 동일한 연관된 모션 정보를 갖는 경우, 그것은 후보들의 세트로부터 제거된다. 후보들의 세트로부터의 엔트리들의 제거는 프루닝(pruning) 프로세스로 지칭될 수 있다. 도 3에서, 복잡성을 감소시키기 위해, 후보들의 완전한 비교가 수행되지 않고(예컨대, A0이 B0과 비교되지 않음), 이와 같이 하여, 중복 엔트리들이 후보들의 세트 내에 포함되는 것이 가능하다는 것에 유의하여야 한다.
다시 도 3을 참조하면, Temp로 표시된 파선 블록은 후보들의 세트 내에 포함될 수 있는 시간 후보를 지칭한다. 병합 모드에 대한 ITU-T H.265에서, 시간 후보의 경우, 기준 픽처 내에 포함된 공간적으로 병치(collocating)된 PU가 정의되고, 시간 후보는, 이용가능하다면, 병치된 PU의 하부 우측 바로 외부에의 위치를 갖는 블록 또는 병치된 PU의 중심 위치에의 블록을 포함한다. 전술된 바와 같이, 후보 블록들의 세트 내에 포함될 수 있는 후보들의 최대 수가 설정된다. (프루닝 후의) 이용가능한 공간 후보들 및 시간 후보의 수가 N 이상인 경우에, 후보들의 최대 수가 N으로 설정되면, N-1개의 공간 후보들 및 시간 후보가 세트 내에 포함된다. (프루닝 후의) 이용가능한 공간 후보들 및 시간 후보의 수가 N 미만인 경우에, 생성된 모션 정보가 세트를 채우기 위해 세트 내에 포함된다.
ITU-T H.265에서의 AMVP에 대해, 도 4를 참조하면, 후보들의 세트의 도출은 A0 또는 A1 중 하나(즉, 좌측 후보) 및 B0, B1 또는 B2 중 하나(상단 후보)를 그들의 이용가능성에 기초하여 세트에 추가하는 것을 포함한다. 즉, 제1 이용가능 좌측 후보 및 제1 이용가능 상단 후보가 세트에 추가된다. 좌측 후보 및 상단 후보가 중복 모션 벡터 성분들을 가질 때, 하나의 중복 후보가 세트로부터 제거된다. 세트 내에 포함된 후보들의 수가 2 미만이고, 시간 모션 벡터 예측이 가능한 경우, 시간 후보(Temp)가 세트 내에 포함된다. 세트 내에 포함된 (프루닝 후의) 이용가능한 공간 후보들 및 시간 후보의 수가 2 미만인 경우에, 0 값 모션 벡터가 세트를 채우기 위해 세트 내에 포함된다.
Figure pct00001
Figure pct00002
Figure pct00003
JVET-L1001은 ITU-T H.265에 정의된 병합 모드에 기초한 병합 모드, 및 ITU-T H.256에 정의된 AMVP에 기초한 AMVP 모드를 포함한다. 전술된 바와 같이, ITU-T H.265에서는, 현재 PB에 대해 모션 벡터 예측이 수행되며, 이는 CU를 추가로 분할하는 것으로부터 생성될 수 있다. 추가로, 전술한 바와 같이, JVET-L1001에서, QTMT는 CTU를 CU들로 분할하는 데 사용된다. 일부 경우들에서, JVET-L1001에서는, CU 단위(CU-by-CU basis)로 모션 정보를 도출함으로써 현재 CU에 대해 예측이 생성될 수 있다(예컨대, 각각의 CB에 대해, 단일 모션 벡터 또는 단일 모션 벡터 쌍이 도출되고 예측을 생성하는 데 사용된다). 다른 경우들에서, CU 내의 서브 블록들에 대한 모션 정보를 도출함으로써 현재의 CU에 대해 예측이 생성될 수 있다. 예를 들어, 32x32 CU는 64개의 4x4 서브 블록들로 분할될 수 있고, 각각의 서브 블록에 대해 모션 정보가 도출될 수 있고, 각각의 서브 블록에 대한 각자의 모션 정보가 CU에 대한 예측을 생성하는 데 사용될 수 있다. CU에 대한 예측을 생성하는 데 서브 블록들을 사용하는 것은 서브 블록 인터 예측으로 지칭될 수 있다. 서브 블록 인터 예측의 예는 JVET-L1001에 기술된 소위 아핀(affine) 모드를 포함한다. 모션 벡터 예측 기법들은 서브 블록 인터 예측 기법들에 이용될 수 있다. 일부 경우들에서, 그러한 기법들은 서브 블록 기반 모션 벡터 예측으로 지칭될 수 있다. 따라서, JVET-L1001에서, 현재 CU에 대한 예측을 생성하기 위해 인터 예측이 수행될 수 있는 다양한 방식들이 있다. 현재 CU에 대한 예측을 생성하기 위해 인터 예측이 수행될 수 있는 다양한 방식들은 인터 예측 도구들로 지칭될 수 있다.
표 1은 특정 인터 예측 도구가 현재 CU에 대한 예측을 생성하기 위해 어떻게 사용되는지를 나타내는 데 사용되는, JVET-L1001에 제공된 CU 레벨 신택스를 나타낸다.
Figure pct00004
Figure pct00005
Figure pct00006
Figure pct00007
표 1과 관련하여, JVET-L1001은 각자의 신택스 요소들의 하기의 정의들을 제공한다:
cu_skip_flag[ x0 ][ y0 ]이 1이라는 것은, 현재 코딩 유닛에 대해, P 또는 B 슬라이스를 디코딩할 때, 병합 플러스 MVD 플래그 mmvd_flag[ x0 ][ y0 ], 병합 플러스 MVD 인덱스 mmvd_merge_flag[ x0 ][ y0 ], 병합 플러스 MVD 거리 인덱스 mmvd distance_idx[ x0 ][ y0 ], 병합 플러스 MVD 방향 인덱스 mmvd_direction_idx[ x0 ][ y0 ], 병합 후보 인덱스 merge_idx[ x0 ][ y0 ], 서브 블록 기반 병합 플래그 merge_subblock_flag[ x0 ][ y0 ], 및 서브 블록 기반 병합 후보 인덱스 merge_subblock_idx[ x0 ][ y0 ]를 제외한 더 이상의 신택스 요소들은 cu_skip_flag[ x0 ][ y0 ] 이후에 파싱되지 않는다는 것을 특정한다. cu_skip_flag[ x0 ][ y0 ]이 0이라는 것은 코딩 유닛이 스킵되지 않는다는 것을 특정한다. 어레이 인덱스들 x0, y0는 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
cu_skip_flag[ x0 ][ y0 ]가 존재하지 않을 때, 그것은 0이라고 추론된다.
pred_mode_flag가 0이라는 것은 현재 코딩 유닛이 인터 예측 모드로 코딩된다는 것을 특정한다. pred_mode_flag가 1이라는 것은 현재 코딩 유닛이 인트라 예측 모드로 코딩된다는 것을 특정한다. 변수 CuPredMode[ x ][ y ]는 x = x0..x0 + cbWidth - 1 및 y = y0..y0 + cbHeight - 1에 대해서 하기와 같이 도출된다:
- pred_mode_flag가 0인 경우, CuPredMode[ x ][ y ]는 MODE_INTER로 설정된다.
- 그렇지 않으면(pred_mode_flag가 1인 경우), CuPredMode[ x ][ y ]는 MODE_INTRA로 설정된다.
pred_mode_flag가 존재하지 않을 때, 변수 CuPredMode[ x ][ y ]는 x = x0..x0 + cbWidth - 1 및 y = y0..y0 + cbHeight - 1에 대해서 MODE_INTRA라고 추론된다.
mmvd_flag[ x0 ][ y0 ]가 1인 것은 모션 벡터 차이를 갖는 병합 모드를 사용하여 현재 코딩 유닛의 인터 예측 파라미터들이 생성된다는 것을 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
mmvd_flag[ x0 ][ y0 ]가 존재하지 않을 때, 그것은 0이라고 추론된다.
mmvd_merge_flag[ x0 ][ y0 ]은 병합 후보 목록 내의 제1 후보(0) 또는 제2 후보(1)가 mmvd_distance_idx[ x0 ][ y0 ] 및 mmvd_direction_idx[ x0 ][ y0 ]로부터 도출된 모션 벡터 차이와 함께 사용되는지 여부를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
mmvd_distance_idx[ x0 ][ y0 ]은 표 2에 특정된 바와 같이 MmvdDistance[ x0 ][ y0 ]을 도출하는 데 사용되는 인덱스를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
Figure pct00008
mmvd_direction_idx[ x0 ][ y0 ]은 표 3에 특정된 바와 같이 MmvdSign[ x0 ][ y0 ]을 도출하는 데 사용되는 인덱스를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
Figure pct00009
병합 플러스 MVD 오프셋 MmvdOffset[ x0 ][ y0 ]의 두 성분 모두는 하기와 같이 도출된다: MmvdOffset[ x0 ][ y0 ][ 0 ] = (MmvdDistance[ x0 ][ y0 ] << 2) * MmvdSign[ x0 ][ y0 ][ 0 ]
MmvdOffset[ x0 ][ y0 ][ 1 ] = (MmvdDistance[ x0 ][ y0 ] << 2) * MmvdSign[ x0 ][ y0 ][ 1 ]
merge_subblock_flag[ x0 ][ y0 ]은 현재 코딩 유닛에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다. merge_subblock_flag[ x0 ][ y0 ]가 존재하지 않을 때, 그것은 0이라고 추론된다.
merge_idx[ x0 ][ y0 ]은 병합 후보 목록의 병합 후보 인덱스를 특정하고, 여기서 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
merge_idx[ x0 ][ y0 ]가 존재하지 않을 때, 그것은 하기와 같이 추론된다:
- mmvd_flag[ x0 ][ y0 ]이 1인 경우, merge_idx[ x0 ][ y0 ]는 mmvd_merge flag[ x0 ][ y0 ]과 동일하다고 추론된다.
- 그렇지 않으면(mmvd_flag[ x0 ][ y0 ]이 0인 경우), merge_idx[ x0 ][ y0 ]는 0이라고 추론된다.
merge_subblock_idx[ x0 ][ y0 ]은 서브 블록 기반 병합 후보 목록의 병합 후보 인덱스를 특정하고, 여기서 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
merge_subblock_idx[ x0 ][ y0 ]가 존재하지 않을 때, 그것은 0이라고 추론된다.
merge_flag[ x0 ][ y0 ]은 현재 코딩 유닛에 대한 인터 예측 파라미터들이 이웃 인터 예측 분할부로부터 추론되는지 여부를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
merge_flag[ x0 ][ y0 ]가 존재하지 않을 때, 그것은 하기와 같이 추론된다:
- cu_skip_flag[ x0 ][ y0 ]이 1인 경우, merge_flag[ x0 ][ y0 ]은 1이라고 추론된다.
- 그렇지 않으면, merge_flag[ x0 ] [ y0 ]은 0이라고 추론된다.
mh_intra_flag[ x0 ][ y0 ]은 조합된 인터 픽처 병합 및 인트라 픽처 예측이 현재 코딩 유닛에 적용되는지 여부를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
mh_intra_flag[ x0 ][ y0 ]이 존재하지 않을 때, 그것은 0이라고 추론된다.
신택스 요소들 mh_intra_luma_mpm_flag[ x0 ][ y0 ] 및 mh_intra_luma_mpm_idx[ x0 ][ y0 ]은 조합된 인터 픽처 병합 및 인트라 픽처 예측에 사용되는 루마 샘플들에 대한 인트라 예측 모드를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다. 인트라 예측 모드는 JVET-L1001에 제공된 기법들에 따라 도출된다.
inter_pred_idc[ x0 ][ y0 ]은 표 4에 따라 list0, list1, 또는 양방향 예측이 현재 코딩 유닛에 사용되는지 여부를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
Figure pct00010
inter_pred_idc[ x0 ][ y0 ]이 존재하지 않을 때, 그것은 PRED_L0이라고 추론된다.
inter_affine_flag[ x0 ][ y0 ]이 1이라는 것은, 현재 코딩 유닛에 대해, P 또는 B 슬라이스를 디코딩할 때, 아핀 모델 기반 모션 보상을 사용하여 현재 코딩 유닛의 예측 샘플들이 생성된다는 것을 특정한다. inter_affine_flag[ x0 ][ y0 ]이 0이라는 것은 코딩 유닛이 아핀 모델 기반 모션 보상에 의해 예측되지 않는다는 것을 특정한다. inter_affine_flag[ x0 ][ y0 ]이 존재하지 않을 때, 그것은 0이라고 추론된다.
cu_affine_type_flag[ x0 ][ y0 ]이 1이라는 것은, 현재 코딩 유닛에 대해, P 또는 B 슬라이스를 디코딩할 때, 6-파라미터 아핀 모델 기반 모션 보상을 사용하여 현재 코딩 유닛의 예측 샘플들이 생성된다는 것을 특정한다. cu_affine_type_flag[ x0 ][ y0 ]이 0이라는 것은 4-파라미터 아핀 모델 기반 모션 보상을 사용하여 현재 코딩 유닛의 예측 샘플들이 생성된다는 것을 특정한다.
MotionModelIdc[ x ] [ y ]는 표 5에 나타낸 바와 같은 코딩 유닛의 모션 모델을 표현한다. 어레이 인덱스들 x, y는 픽처의 상부-좌측 루마 샘플에 대한 루마 샘플 위치(x, y)를 특정한다.
변수 MotionModelIdc[ x ][ y ]는 x = x0..x0 + cbWidth - 1 및 y = y0..y0 + cbHeight - 1에 대해서 하기와 같이 도출된다:
- merge_flag[ x0 ][ y0 ]이 1인 경우, 하기가 적용된다:
MotionModelIdc[ x ][ y ] = merge_subblock_flag[ x0 ][ y0 ]
- 그렇지 않으면(merge_flag[ x0 ][ y0 ]이 0인 경우), 하기가 적용된다:
MotionModelIdc[ x ][ y ] = inter_affine_flag[ x0 ][ y0 ] + cu_affine_type_flag[ x0 ][ y0 ]
Figure pct00011
ref_idx_l0[ x0 ][ y0 ]은 현재 코딩 유닛에 대한 list0 기준 픽처 인덱스를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
ref_idx_l0[ x0 ][ y0 ]이 존재하지 않을 때 그것은 0이라고 추론된다.
ref_idx_l1[ x0 ][ y0 ]은, l0 및 list0이 각각 l1 및 list1로 대체되면서, ref_idx_l0과 같은 시맨틱스(semantics)를 갖는다.
mvp_l0_flag[ x0 ][ y0 ]은 list0의 모션 벡터 예측자 인덱스를 특정하고, 여기서 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
mvp_l0_flag[ x0 ][ y0 ]이 존재하지 않을 때, 그것은 0이라고 추론된다.
mvp_l1_flag[ x0 ][ y0 ]은, l0 및 list0이 각각 l1 및 list1로 대체되면서, mvp_l0_flag과 같은 시맨틱스를 갖는다.
amvr_mode[ x0 ][ y0 ]은 모션 벡터 차이의 해상도를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
amvr_mode[ x0 ][ y0 ]이 존재하지 않을 때, 그것은 0이라고 추론된다.
변수 MvShift는 amvr_mode[ x0 ] [ y0 ] << 1로 설정되고, 변수 MvdL0[ x0 ][ y0 ][ 0 ], MvdL0[ x0 ][ y0 ][ 1 ], MvdL1[ x0 ][ y0 ][ 0 ], MvdL1[ x0 ][ y0 ][ 1 ]은 하기와 같이 수정된다:
MvdL0[ x0 ][ y0 ][ 0 ] = MvdL0[ x0 ][ y0 ][ 0 ] << (MvShift + 2)
MvdL0[ x0 ][ y0 ][ 1 ] = MvdL0[ x0 ][ y0 ][ 1 ] << (MvShift + 2)
MvdL1[ x0 ][ y0 ][ 0 ] = MvdL1[ x0 ][ y0 ][ 0 ] << (MvShift + 2)
MvdL1[ x0 ][ y0 ][ 1 ] = MvdL1[ x0 ][ y0 ][ 1 ] << (MvShift + 2)
gbi_idx[ x0 ][ y0 ]은 CU 가중치들을 갖는 양방향 예측의 가중치 인덱스를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다.
gbi_idx[ x0 ][ y0 ]이 존재하지 않을 때, 그것은 0이라고 추론된다.
cu_cbf가 1이라는 것은 transform_tree() 신택스 구조가 현재 코딩 유닛에 대해 존재한다는 것을 특정한다. cu_cbf가 0이라는 것은 transform_tree() 신택스 구조가 현재 코딩 유닛에 대해 존재하지 않는다는 것을 특정한다.
cu_cbf가 존재하지 않을 때, 그것은 하기와 같이 추론된다:
- cu_skip_flag[ x0 ][ y0 ]이 1 인 경우, cu_cbf는 0이라고 추론된다.
그렇지 않으면, cu_cbf는 1이라고 추론된다.
특정 인터 예측 도구가 현재의 CU에 대한 예측을 생성하는 데 어떻게 사용되는지를 나타내기 위한 JVET-L1001에 제공된 CU 레벨 신택스는 이상적인 것보다 작을 수 있다. 예를 들어, 일부 인터 예측 도구들은 서로 상호 배타적이다. 따라서, 하나의 도구가 ON으로 시그널링된 경우, 예를 들어, 다른 상호 배타적인 인터 예측 도구와 연관된 신택스 요소들을 시그널링하는 것은 비효율적일 수 있다.
JVET-L1001에 관련하여, 현재 CU에 대한 예측을 생성하는 데 사용될 수 있는 인터 예측 도구들에 관련하여 수정들이 제안되었다. 구체적으로, 표 6은 특정 인터 예측 도구가 현재 CU에 대한 예측을 생성하는 데 어떻게 사용되는지를 나타내기 위해 사용되는, VTM3(VVC Test Model 3) 알고리즘에 구현된 기법들과 연관된 CU 레벨 신택스를 나타낸다.
Figure pct00012
Figure pct00013
Figure pct00014
Figure pct00015
표 6에 관련하여 각자의 신택스 요소들의 정의들은 상기 및 하기와 같이 제공될 수 있다:
triangle_mode_flag[ x0 ][ y0 ]은 삼각형 모드 예측(문헌[“CE10.3.1.b: Triangular prediction unit mode,” 12th Meeting of ISO/IEC JTC1/SC29/WG11 3-12 October 2018, Macao, CN, document JVET-L0124-v2]에 설명된 바와 같음, 이는 본 명세서에서 JVET-L0124로 지칭됨)이 현재 코딩 블록에 사용되는지 여부를 특정한다. 어레이 인덱스들 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다. triangle_mode_flag[ x0 ][ y0 ]이 존재하지 않을 때, 그것은 0이라고 추론된다.
triangle_merge_idx[ x0 ][ y0 ]은 삼각형 모드 병합 후보 목록의 병합 후보 인덱스를 특정하고, 여기서 x0, y0은 픽처의 상부-좌측 루마 샘플에 대한, 고려된 코딩 블록의 상부-좌측 루마 샘플의 위치(x0, y0)를 특정한다. triangle_merge_idx[ x0 ][ y0 ]이 존재하지 않을 때, 그것은 0이라고 추론된다.
따라서, 표 6에 나타낸 신택스는 삼각형 모드 예측의 인터 예측 도구를 지원한다. JVET-L1001에 제공된 CU 레벨 신택스와 유사하게, VTM3 알고리즘에 대응하는 CU 레벨 신택스는 이상적인 것보다 작을 수 있다.
도 5는 본 발명의 하나 이상의 기법에 따라 비디오 데이터를 코딩(즉, 인코딩 및/또는 디코딩)하도록 구성될 수 있는 시스템의 예를 도시한 블록도이다. 시스템(100)은 본 발명의 하나 이상의 예들에 따라 설명된 모션 벡터 예측 기법들을 사용하여 비디오 코딩을 수행할 수 있는 시스템의 일례를 표현한다. 도 5에 도시된 바와 같이, 시스템(100)은 소스 디바이스(102), 통신 매체(110), 및 목적지 디바이스(120)를 포함한다. 도 5에 도시된 예에서, 소스 디바이스(102)는 비디오 데이터를 인코딩하도록 그리고 인코딩된 비디오 데이터를 통신 매체(110)에 송신하도록 구성된 임의의 디바이스를 포함할 수 있다. 목적지 디바이스(120)는 인코딩된 비디오 데이터를 통신 매체(110)를 통해 수신하도록 그리고 인코딩된 비디오 데이터를 디코딩하도록 구성된 임의의 디바이스를 포함할 수 있다. 소스 디바이스(102) 및/또는 목적지 디바이스(120)는 유선 및/또는 무선 통신을 위해 구비된 컴퓨팅 디바이스들을 포함할 수 있고, 셋톱박스, 디지털 비디오 레코더, 텔레비전, 데스크톱, 랩톱, 또는 태블릿 컴퓨터, 게이밍 콘솔, 예를 들어 "스마트" 폰, 셀룰러 전화, 개인 게이밍 디바이스들, 및 의료용 이미징 디바이스를 포함하는 모바일 디바이스를 포함할 수 있다.
통신 매체(110)는 무선 및 유선 통신 매체, 및/또는 저장 디바이스들의 임의의 조합을 포함할 수 있다. 통신 매체(110)는 동축 케이블, 광섬유 케이블, 트위스티드 페어 케이블(twisted pair cable), 무선 송신기 및 수신기, 라우터, 스위치, 리피터(repeater), 기지국, 또는 다양한 디바이스들과 사이트들 사이의 통신을 용이하게 하는 데 유용할 수 있는 임의의 다른 장비를 포함할 수 있다. 통신 매체(110)는 하나 이상의 네트워크를 포함할 수 있다. 예를 들어, 통신 매체(110)는 월드 와이드 웹, 예를 들어 인터넷에의 액세스를 가능하게 하도록 구성된 네트워크를 포함할 수 있다. 네트워크는 하나 이상의 전기통신 프로토콜의 조합에 따라 동작할 수 있다. 전기통신 프로토콜들은 독점적인 태양들을 포함할 수 있고/있거나 표준화된 전기통신 프로토콜들을 포함할 수 있다. 표준화된 전기통신 프로토콜들의 예들은 DVB(Digital Video Broadcasting) 표준, ATSC(Advanced Television Systems Committee) 표준, ISDB(Integrated Services Digital Broadcasting) 표준, DOCSIS(Data Over Cable Service Interface Specification) 표준, GSM(Global System Mobile Communications) 표준, CDMA(code division multiple access) 표준, 3GPP(3rd Generation Partnership Project) 표준, ETSI(European Telecommunications standards Institute) 표준, IP(Internet Protocol) 표준, WAP(Wireless Application Protocol) 표준, 및 IEEE(Institute of Electrical and Electronics Engineers) 표준을 포함한다.
저장 디바이스들은 데이터를 저장할 수 있는 임의의 타입의 디바이스 또는 저장 매체를 포함할 수 있다. 저장 매체는 유형의(tangible) 또는 비일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 광학 디스크, 플래시 메모리, 자기 메모리, 또는 임의의 다른 적합한 디지털 저장 매체들을 포함할 수 있다. 몇몇 예에서, 메모리 디바이스 또는 그의 부분들은 비휘발성 메모리로서 기술될 수 있고 다른 예들에서 메모리 디바이스들의 부분들은 휘발성 메모리로서 기술될 수 있다. 휘발성 메모리들의 예들은 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 정적 랜덤 액세스 메모리(SRAM)를 포함할 수 있다. 비휘발성 메모리들의 예들은 자기 하드 디스크, 광학 디스크, 플로피 디스크, 플래시 메모리, 또는 EPROM(electrically programmable memory) 또는 EEPROM(electrically erasable and programmable memory)의 형태를 포함할 수 있다. 저장 디바이스(들)는 메모리 카드(예컨대, SD(Secure Digital) 메모리 카드), 내부/외부 하드 디스크 드라이브, 및/또는 내부/외부 솔리드 스테이트 드라이브(solid state drive)를 포함할 수 있다. 데이터는 정의된 파일 포맷에 따라 저장 디바이스에 저장될 수 있다.
다시 도 5를 참조하면, 소스 디바이스(102)는 비디오 소스(104), 비디오 인코더(106), 및 인터페이스(108)를 포함한다. 비디오 소스(104)는 비디오 데이터를 캡처하고/하거나 저장하도록 구성된 임의의 디바이스를 포함할 수 있다. 예를 들어, 비디오 소스(104)는 비디오 카메라 및 그에 동작가능하게 결합된 저장 디바이스를 포함할 수 있다. 비디오 인코더(106)는 비디오 데이터를 수신하고 비디오 데이터를 표현하는 컴플라이언트 비트스트림을 생성하도록 구성된 임의의 디바이스를 포함할 수 있다. 컴플라이언트 비트스트림은 비디오 디코더가 그로부터 비디오 데이터를 수신 및 재생할 수 있는 비트스트림을 지칭할 수 있다. 컴플라이언트 비트스트림의 태양들은 비디오 코딩 표준에 따라 정의될 수 있다. 컴플라이언트 비트스트림을 생성할 때 비디오 인코더(106)는 비디오 데이터를 압축할 수 있다. 압축은 (식별가능하거나 식별불가능한) 손실이 있을 수 있거나 또는 손실이 없을 수 있다. 인터페이스(108)는 컴플라이언트 비디오 비트스트림을 수신하도록 그리고 컴플라이언트 비디오 비트스트림을 통신 매체에 송신하고/하거나 저장하도록 구성된 임의의 디바이스를 포함할 수 있다. 인터페이스(108)는 이더넷 카드와 같은 네트워크 인터페이스 카드를 포함할 수 있고, 광학 송수신기, 무선 주파수 송수신기, 또는 정보를 전송 및/또는 수신할 수 있는 임의의 다른 타입의 디바이스를 포함할 수 있다. 또한, 인터페이스(108)는 컴플라이언트 비디오 비트스트림이 저장 디바이스 상에 저장되는 것을 가능하게 할 수 있는 컴퓨터 시스템 인터페이스를 포함할 수 있다. 예를 들어, 인터페이스(108)는 PCI(Peripheral Component Interconnect) 및 PCIe(Peripheral Component Interconnect Express) 버스 프로토콜, 독점적인 버스 프로토콜, USB(Universal Serial Bus) 프로토콜, I2C, 또는 피어(peer) 디바이스들을 상호접속시키는 데 사용될 수 있는 임의의 다른 논리적 및 물리적 구조를 지원하는 칩셋을 포함할 수 있다.
다시 도 5를 참조하면, 목적지 디바이스(120)는 인터페이스(122), 비디오 디코더(124), 및 디스플레이(126)를 포함한다. 인터페이스(122)는 통신 매체로부터 컴플라이언트 비디오 비트스트림을 수신하도록 구성된 임의의 디바이스를 포함할 수 있다. 인터페이스(108)는 이더넷 카드와 같은 네트워크 인터페이스 카드를 포함할 수 있고, 광학 송수신기, 무선 주파수 송수신기, 또는 정보를 수신하고/하거나 전송할 수 있는 임의의 다른 타입의 디바이스를 포함할 수 있다. 또한, 인터페이스(122)는 컴플라이언트 비디오 비트스트림이 저장 디바이스로부터 검색되는 것을 가능하게 하는 컴퓨터 시스템 인터페이스를 포함할 수 있다. 예를 들어, 인터페이스(122)는 PCI 및 PCIe 버스 프로토콜, 독점적 버스 프로토콜, USB 프로토콜, I2C, 또는 피어 디바이스들을 상호 접속시키는 데 사용될 수 있는 임의의 다른 논리적 및 물리적 구조를 지원하는 칩셋을 포함할 수 있다. 비디오 디코더(124)는 컴플라이언트 비트스트림 및/또는 그의 허용가능한 변형들을 수신하도록 그리고 이들로부터 비디오 데이터를 복원하도록 구성된 임의의 디바이스를 포함할 수 있다. 디스플레이(126)는 비디오 데이터를 디스플레이하도록 구성된 임의의 디바이스를 포함할 수 있다. 디스플레이(126)는 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 다른 타입의 디스플레이와 같은 다양한 디스플레이 디바이스들 중 하나를 포함할 수 있다. 디스플레이(126)는 고화질 디스플레이 또는 초고화질 디스플레이를 포함할 수 있다. 도 5에 예시된 예에서, 비디오 디코더(124)가 디스플레이(126)에 데이터를 출력하는 것으로 기술되지만, 비디오 디코더(124)는 비디오 데이터를 다양한 타입의 디바이스들 및/또는 그의 서브-컴포넌트들에 출력하도록 구성될 수 있다는 것에 유의해야 한다. 예를 들어, 비디오 디코더(124)는, 본 명세서에 기술된 바와 같이, 비디오 데이터를 임의의 통신 매체에 출력하도록 구성될 수 있다.
도 6은 본 명세서에서 기술된 비디오 데이터를 인코딩하기 위한 기법들을 구현할 수 있는 비디오 인코더(200)의 예를 도시한 블록도이다. 예시적인 비디오 인코더(200)가 별개의 기능 블록들을 갖는 것으로 예시되지만, 그러한 예시는 설명의 목적을 위한 것이고 비디오 인코더(200) 및/또는 그의 서브-컴포넌트들을 특정 하드웨어 또는 소프트웨어 아키텍처로 제한하지 않는다는 것에 유의해야 한다. 비디오 인코더(200)의 기능들은 하드웨어, 펌웨어, 및/또는 소프트웨어 구현의 임의의 조합을 이용하여 실현될 수 있다. 일례에서, 비디오 인코더(200)는 본 명세서에 기술된 기법들에 따라 비디오 데이터를 인코딩하도록 구성될 수 있다. 비디오 인코더(200)는 픽처 영역들의 인트라 예측 코딩 및 인터 예측 코딩을 수행할 수 있고, 이 때문에, 하이브리드 비디오 인코더로 지칭될 수 있다. 도 6에 예시된 예에서, 비디오 인코더(200)는 소스 비디오 블록들을 수신한다. 몇몇 예에서, 소스 비디오 블록들은 코딩 구조에 따라 분할된 픽처의 영역들을 포함할 수 있다. 예를 들어, 소스 비디오 데이터는 매크로블록들, CTU들, CB들, 그의 서브분할부들, 및/또는 다른 동등한 코딩 유닛을 포함할 수 있다. 몇몇 예에서, 비디오 인코더(200)는 소스 비디오 블록들의 추가 세분을 수행하도록 구성될 수 있다. 본 명세서에서 기술되는 일부 기법들은, 일반적으로, 인코딩 전에 그리고/또는 인코딩 동안에 소스 비디오 데이터가 어떻게 분할되는 지와는 무관하게 비디오 코딩에 적용가능할 수 있다는 것에 유의하여야 한다. 도 6에 도시된 예에서, 비디오 인코더(200)는 합산기(202), 변환 계수 생성기(204), 계수 양자화 유닛(206), 역양자화/역변환 프로세싱 유닛(208), 합산기(210), 인트라 예측 프로세싱 유닛(212), 인터 예측 프로세싱 유닛(214), 필터 유닛(216), 및 엔트로피 인코딩 유닛(218)을 포함한다.
도 6에 예시된 바와 같이, 비디오 인코더(200)는 소스 비디오 블록들을 수신하고 비트스트림을 출력한다. 비디오 인코더(200)는 소스 비디오 블록으로부터 예측 비디오 블록을 감산함으로써 잔차 데이터를 생성할 수 있다. 합산기(202)는 이러한 감산 연산을 수행하도록 구성된 컴포넌트를 표현한다. 일례에서, 비디오 블록들의 감산은 픽셀 도메인에서 발생한다. 변환 계수 생성기(204)는 이산 코사인 변환(DCT), 이산 사인 변환(DST), 또는 개념적으로 유사한 변환과 같은 변환을, 잔차 블록 또는 그의 서브분할부들에 적용하여(예컨대, 4개의 8x8 변환이 잔차 값들의 16x16 어레이에 적용될 수 있음), 잔차 변환 계수들의 세트를 생성한다. 변환 계수 생성기(204)는 이산 삼각 변환(discrete trigonometric transform)의 계열에 포함되는 변환들 중 임의의 것 및 그의 모든 조합들을 수행하도록 구성될 수 있다. 변환 계수 생성기(204)는 변환 계수들을 계수 양자화 유닛(206)으로 출력할 수 있다. 계수 양자화 유닛(206)은 변환 계수들의 양자화를 수행하도록 구성될 수 있다. 전술된 바와 같이, 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다. 계수 양자화 유닛(206)은 양자화 파라미터(quantization parameter, QP)들을 결정하도록, 그리고 비디오 디코딩 동안 역양자화를 수행하기 위해 양자화 파라미터를 재구성하도록 비디오 디코더에 의해 사용될 수 있는 QP 데이터(예컨대, 양자화 그룹 크기 및/또는 델타 QP 값들을 결정하는 데 사용되는 데이터)를 출력하도록 추가로 구성될 수 있다. 다른 예들에서, 하나 이상의 추가의 또는 대안의 파라미터들이 양자화의 레벨(예컨대, 스케일링 팩터들)을 결정하는 데 사용될 수 있다는 것에 유의하여야 한다. 본 명세서에 기술된 기법들은, 일반적으로, 비디오 데이터의 다른 성분에 대응하는 변환 계수들에 대한 양자화의 레벨에 기초하여 비디오 데이터의 성분에 대응하는 변환 계수들에 대한 양자화 레벨을 결정하는 데 적용가능할 수 있다.
도 6에 도시된 바와 같이, 양자화된 변환 계수들은 역양자화/역변환 프로세싱 유닛(208)으로 출력된다. 역양자화/역변환 프로세싱 유닛(208)은 재구성된 잔차 데이터를 생성하기 위해 역양자화 및 역변환을 적용하도록 구성될 수 있다. 도 6에 예시된 바와 같이, 합산기(210)에서, 재구성된 잔차 데이터가 예측 비디오 블록에 추가될 수 있다. 이러한 방식으로, 인코딩된 비디오 블록은 재구성될 수 있고 결과적인 재구성된 비디오 블록은 주어진 예측, 변환, 및/또는 양자화에 대한 인코딩 품질을 평가하는 데 사용될 수 있다. 비디오 인코더(200)는 다수의 코딩 패스들을 수행하도록(예컨대, 예측, 변환 파라미터들, 및 양자화 파라미터들 중 하나 이상을 변경하면서 인코딩을 수행하도록) 구성될 수 있다. 비트스트림 또는 다른 시스템 파라미터들의 레이트-왜곡은 재구성된 비디오 블록들의 평가에 기초하여 최적화될 수 있다. 또한, 재구성된 비디오 블록들은 저장되고 후속 블록들을 예측하기 위한 기준으로서 사용될 수 있다.
전술된 바와 같이, 비디오 블록은 인트라 예측 모드를 사용하여 코딩될 수 있다. 인트라 예측 프로세싱 유닛(212)은 현재 비디오 블록에 대한 인트라 예측 모드를 선택하도록 구성될 수 있다. 인트라 예측 프로세싱 유닛(212)은 프레임 및/또는 그의 영역을 평가하도록 그리고 현재 블록을 인코딩하는 데 사용할 인트라 예측 모드를 결정하도록 구성될 수 있다. 도 6에 예시된 바와 같이, 인트라 예측 프로세싱 유닛(212)은 인트라 예측 데이터(예컨대, 신택스 요소들)를 엔트로피 인코딩 유닛(218) 및 변환 계수 생성기(204)에 출력한다. 전술된 바와 같이, 가능한 인트라 예측 모드들은 평면 예측 모드들, DC 예측 모드들, 및 각도 예측 모드들을 포함할 수 있다. 인터 예측 프로세싱 유닛(214)은 현재 비디오 블록에 대한 인터 예측 코딩을 수행하도록 구성될 수 있다. 인터 예측 프로세싱 유닛(214)은 소스 비디오 블록들을 수신하도록 그리고 비디오 블록의 PU들에 대한 모션 정보를 계산하도록 구성될 수 있다. 모션 벡터는 기준 프레임 내의 예측 블록에 대한 현재 비디오 프레임 내의 비디오 블록의 PU(또는 유사한 코딩 구조)의 변위를 나타낼 수 있다. 인터 예측 코딩은 하나 이상의 기준 픽처를 사용할 수 있다. 예를 들어, 인터 예측 프로세싱 유닛(214)은 프레임 버퍼(도 6에 도시되지 않음) 내에 예측 비디오 블록을 위치시킬 수 있다. 인터 예측 프로세싱 유닛(214)은, 추가로, 하나 이상의 보간 필터를 재구성된 잔류 블록에 적용하여 모션 추정에 사용하기 위한 서브-정수 픽셀 값들을 계산하도록 구성될 수 있다는 것에 유의해야 한다. 또한, 모션 예측은 단방향 예측(하나의 모션 벡터를 사용) 또는 양방향 예측(2개의 모션 벡터를 사용)일 수 있다. 인터 예측 프로세싱 유닛(214)은, 예를 들어 절대차의 합(sum of absolute difference, SAD), 제곱차의 합(sum of square difference, SSD), 또는 다른 차이 메트릭(metric)들에 의해 결정된 픽셀차를 계산함으로써 예측 블록을 선택하도록 구성될 수 있다. 인터 예측 프로세싱 유닛(214)은 계산된 모션 벡터에 대한 모션 예측 데이터를 엔트로피 인코딩 유닛(218)에 출력할 수 있다.
전술된 바와 같이, 모션 정보는 모션 벡터 예측 기법들에 따라 결정 및 특정될 수 있다. 인터 예측 프로세싱 유닛(214)은, 예를 들어, 전술된 것들을 포함하는, 모션 벡터 예측 기법들을 수행하도록 구성될 수 있다. 추가로, 인터 예측 프로세싱 유닛(214)은, 전술된 기법들에 따라 모션 벡터 예측을 수행하도록 구성될 수 있다. 구체적으로, 인터 예측 프로세싱 유닛(214)은 서브 블록 기반 모션 벡터 예측을 수행하도록 구성될 수 있다.
전술된 바와 같이, JVET-L1001에서의 CU 레벨 신택스 및 VTM3 알고리즘에 대응하는 CU 레벨 신택스는 이상적인 것보다 작을 수 있다. 일례에서, 본 명세서의 기법들에 따르면, mmvd_merge_flag는 비-서브 PU 병합 모드가 선택된 경우에(즉, merge_subblock_flag가 0일 때)만 시그널링된다. 표 7은 본 명세서의 기법들에 따라, 비-서브 PU 병합 모드가 선택된 경우에만 mmvd_merge_flag가 시그널링되는 예를 나타낸다. 표 7의 신택스에 나타낸 바와 같이, mmvd_merge_flag의 시그널링은 표 1의 신택스와 비교하여 merge_subblock_flag의 수신 아래로 이동된다.
Figure pct00016
Figure pct00017
표 7에 관련하여, 각자의 신택스 요소들의 정의들은 상기에 제공된 바와 같을 수 있다.
표 8은 본 명세서의 기법들에 따라, 비-서브 PU 병합 모드가 선택된 경우에만 mmvd_merge_flag가 시그널링되는 예를 나타낸다. 표 8의 신택스에 나타낸 바와 같이, mmvd_merge_flag의 시그널링은 표 6의 신택스와 비교하여 merge_subblock_flag의 수신 아래로 이동된다.
Figure pct00018
Figure pct00019
표 8에 관련하여, 각자의 신택스 요소들의 정의들은 상기에 제공된 바와 같을 수 있다.
일례에서, 본 발명의 기법들에 따르면, 조합된 인터 픽처 병합 및 인트라 픽처 예측 시그널링은 if(cu_skip_flag[ x0 ] [ y0 ]){...} 브랜치(branch)에 반영된다. 이는 스킵 모드가 사용될 때 다중 가설 예측의 사용을 허용하며, 이는 코딩 효율을 개선할 수 있다. 표 9는 표 1의 신택스와 비교하여, 조합된 인터 픽처 병합 및 인트라 픽처 예측 시그널링이 if(cu_skip_flag[ x0 ][ y0 ]){...} 브랜치에 반영되는 예를 나타낸다. 표 10은 표 6의 신택스와 비교하여, 조합된 인터 픽처 병합 및 인트라 픽처 예측 시그널링이 if(cu_skip_flag[ x0 ][ y0 ]){...} 브랜치에 반영되는 예를 나타낸다.
Figure pct00020
Figure pct00021
Figure pct00022
Figure pct00023
표 9 및 표 10에 관련하여, 각자의 신택스 요소들의 정의들은 상기에 제공된 바와 같을 수 있다.
일례에서, 본 명세서의 기법들에 따르면, 조합된 인터 픽처 병합 및 인트라 픽처 예측(즉, 다중 가설 예측)을 시그널링하는 것에 대한 하기의 조건:
if(mmvd_flag[ x0 ][ y0 ] == 0 && merge_subblock_flag[ x0 ][ y0 ] == 0 && (cbWidth * cbHeight) >= 64 && cbWidth < 128 && cbHeight < 128) {
은 하기와 같이 높은 레벨 플래그(즉, CU 레벨보다 더 높은 레벨의 플래그) 상에서 추가로 조건화될 수 있다:
if(sps_mh_intra_flag && mmvd_flag[ x0 ][ y0] == 0 && merge_subblock_flag[ x0 ][ y0 ] == 0 && (cbWidth * cbHeight) >= 64 && cbWidth < 128 && cbHeight < 128) {
추가로, 일례에서, 본 명세서의 기법들에 따르면, 높은 레벨 플래그는 다중 가설 예측 시그널링 또는 삼각형 모드 시그널링 중 하나가 시그널링되는지 여부를 나타낼 수 있다. 즉, 하기의 조건들:
if(mmvd_flag[ x0 ][ y0 ] == 0 && merge_subblock_flag[ x0 ][ y0 ] == 0 && (cbWidth * cbHeight) >= 64 && cbWidth < 128 && cbHeight < 128) {
및(AND)
if (sps_triangle_mode flag && slice_type == B && cbWidth*cbHeight >= 64 && merge_subblock_flag[ x0 ][ y0 ] == 0 && mmvd_flag[ x0 ][ y0 ] == 0 && mh_intra_flag[ x0 ][ y0 ] == 0)
은 하기와 같이 수정될 수 있으며:
if(use_mh_or_triangle_flag == MH && mmvd_flag[ x0 ][ y0 ] == 0 && merge_subblock_flag[ x0 ][ y0 ] == 0 && (cbWidth * cbHeight) >= 64 && cbWidth < 128 && cbHeight < 128) {
및(AND)
if (use_mh_or_triangle_flag == TRIANGLE && slice_type == B && cbWidth*cbHeight >= 64 && merge_subblock_flag[ x0 ][ y0 ] == 0 && mmvd_flag[ x0 ][ y0 ] == 0 && mh_intra_flag[ x0 ][ y0 ] == 0)
여기서,
use_mh_or_triangle_flag는 MH 또는 TRIANGLE 중 하나일 수 있다.
일례에서, 본 명세서의 기법들에 따르면, 삼각형 모드 시그널링은 비-스킵/비-병합 브랜치에 반영된다. 이는 비-스킵/비-병합 모드가 사용될 때 삼각형 예측의 사용을 허용하며, 이는 코딩 효율을 개선할 수 있다. 비-스킵/비-병합이 또한, AMVP 브랜치로 지칭될 수 있다는 것에 유의하여야 한다. 표 11은 표 6의 신택스와 비교하여, 삼각형 모드 시그널링이 비-스킵/비-병합 브랜치에서 반영되는 예를 나타낸다.
Figure pct00024
Figure pct00025
Figure pct00026
표 11에 관련하여, 각자의 신택스 요소들의 정의들은 상기와 같이 제공될 수 있다.
표 6과 관련하여, 현재, 삼각형 병합 목록 구성 프로세스는 서브 블록 병합 목록 구성 프로세스 및 비-서브 블록 병합 목록 구성 프로세스와는 별개이다. 일례에서, 본 명세서의 기법들에 따르면, 비-서브 블록 병합 목록은 삼각형 모드에 대한 병합 목록으로서 사용될 수 있다. 이러한 선택이 이루어지는 경우, 삼각형 병합 인덱스 이진화를 다른 (예컨대, 비-서브 블록) 병합 인덱스 이진화와 동일하게 만드는 것이 허용가능할 수 있다. 이진화가 동일할 때, 일례에서, 삼각형 병합 인덱스를 엔트로피 코딩하기 위해 선택된 콘텍스트는 비-서브 블록 병합 인덱스의 콘텍스트와 상이할 수 있다. 일례에서, 비-서브 블록 병합 인덱스는 신택스 요소 merge_idx[ x0 ][ y0 ]을 지칭한다. 일례에서, 삼각형 병합 인덱스는 신택스 요소 triangle_merge_idx[ x0 ][ y0 ]을 지칭한다.
일례에서, 본 명세서의 기법들에 따르면, 신택스는, triangle_mode_flag[ x0 ][ y0 ]가 0일 때는 플래그 triangle_mode_flag[ x0 ][ y0 ] 이후에 플래그 mh_intra_flag[ x0 ][ y0 ]을 시그널링하도록 그리고 triangle_mode_flag[ x0 ][ y0 ]가 1일 때는 플래그 triangle_mode_flag[ x0 ][ y0 ] 이후에 플래그 mh_intra_flag[ x0 ][ y0 ]을 시그널링하지 않도록 수정될 수 있다. 일례에서, multi-hypothesis flag의 값은 존재하지 않을 때는 0으로 추론된다. 표 12는 플래그 mh_intra_flag[ x0 ][ y0 ]이 플래그 triangle_mode_flag[ x0 ][ y0 ] 이후에 조건부로 존재하는 예를 나타낸다.
Figure pct00027
표 12에 관련하여, 각자의 신택스 요소들의 정의들은 상기와 같이 제공될 수 있다.
일례에서, 본 명세서의 기법들에 따르면, triangle_mode_flag[ x0 ][ y0 ]은 삼각형 모드 프로세싱에 사용되는 모션 정보(예컨대, (MV0, refldx0), (MV1, refldx1), InterDir 및 MMVD 데이터)를 나타내는 데 사용될 수 있다. 표 6에 관련하여, 현재, 삼각형 모드는 병합 목록 내의 모션 정보를 활용한다. 일례에서, MMVD의 추가에 의해, 병합 목록 내의 모션 정보가 추가로 수정될 수 있다. 일례에서, 삼각형 모드가, 직접 병합 목록으로부터의 모션 정보 대신에, 이러한 수정된 모션 정보를 사용하게 하는 것이 효율적일 수 있다. 이는 도구가 효율적으로 함께 작동하게 할 것이다. 일례에서, 그러한 접근법을 가능하게 하기 위해, 삼각형 모드는 그 자신의 병합 목록을 갖지 않고, 비-서브 블록 모드에 대한 MMVD 시그널링 및 병합 목록을 사용할 것이다. 표 13은 본 명세서의 기술들에 따라, 삼각형 모드가 그 자신의 병합 목록을 갖지 않고, 비-서브 블록 모드에 대한 MMVD 시그널링 및 병합 목록을 사용하는 예를 나타낸다.
Figure pct00028
표 13에 관련하여, 각자의 신택스 요소들의 정의들은 상기와 같이 제공될 수 있다.
다시 도 6을 참조하면, 도 6에 도시된 바와 같이, 인터 예측 프로세싱 유닛(214)은 필터 유닛(216)을 통해 재구성된 비디오 블록을 수신할 수 있으며, 이는 루프내(in-loop) 필터링 프로세스의 일부일 수 있다. 필터 유닛(216)은 디블록킹 및/또는 SAO(Sample Adaptive Offset) 필터링을 수행하도록 구성될 수 있다. 디블록킹은 재구성된 비디오 블록들의 경계들을 평활화하는 프로세스를 지칭한다(예컨대, 뷰어에게 덜 인지가능한 경계를 만든다). SAO 필터링은 재구성된 비디오 데이터에 오프셋을 추가함으로써 재구성을 개선하는 데 사용될 수 있는 비선형 진폭 매핑이다. 엔트로피 인코딩 유닛(218)은 양자화된 변환 계수들 및 예측 신택스 데이터(즉, 인트라 예측 데이터, 모션 예측 데이터, QP 데이터 등)를 수신한다. 엔트로피 인코딩 유닛(218)은 본 명세서에 기술되는 기법들 중 하나 이상에 따라 엔트로피 인코딩을 수행하도록 구성될 수 있다. 엔트로피 인코딩 유닛(218)은 컴플라이언트 비트스트림, 즉 비디오 디코더가 그로부터 비디오 데이터를 수신 및 복원할 수 있는 비트스트림을 출력하도록 구성될 수 있다. 이러한 방식으로, 비디오 인코더(200)는, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 결정하도록, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 시그널링하도록, 그리고 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 시그널링하도록 구성된 디바이스의 예를 표현한다.
도 7은 본 발명의 하나 이상의 기법들에 따라 비디오 데이터를 디코딩하도록 구성될 수 있는 비디오 디코더의 예를 도시한 블록도이다. 일례에서, 비디오 디코더(300)는 전술된 기법들 중 하나 이상에 기초하여, 비디오 데이터를 재구성하도록 구성될 수 있다. 즉, 비디오 디코더(300)는 전술된 비디오 인코더(200)에 대해 상반되는 방식으로 동작할 수 있다. 비디오 디코더(300)는 인트라 예측 디코딩 및 인터 예측 디코딩을 수행하도록 구성될 수 있고, 이 때문에, 하이브리드 디코더로 지칭될 수 있다. 도 7에 도시된 예에서, 비디오 디코더(300)는 엔트로피 디코딩 유닛(302), 역양자화 유닛(304), 역변환 프로세싱 유닛(306), 인트라 예측 프로세싱 유닛(308), 인터 예측 프로세싱 유닛(310), 합산기(312), 필터 유닛(314), 및 기준 버퍼(316)를 포함한다. 비디오 디코더(300)는 비디오 인코딩 시스템과 일치하는 방식으로 비디오 데이터를 디코딩하도록 구성될 수 있는데, 이는 비디오 코딩 표준의 하나 이상의 태양들을 구현할 수 있다. 예시적인 비디오 디코더(300)가 별개의 기능 블록들을 갖는 것으로 예시되지만, 그러한 예시는 설명의 목적을 위한 것이고 비디오 디코더(300) 및/또는 그의 서브-컴포넌트들을 특정 하드웨어 또는 소프트웨어 아키텍처로 제한하지 않는다는 것에 유의해야 한다. 비디오 디코더(300)의 기능들은 하드웨어, 펌웨어, 및/또는 소프트웨어 구현들의 임의의 조합을 이용하여 실현될 수 있다.
도 7에 예시된 바와 같이, 엔트로피 디코딩 유닛(302)은 엔트로피 인코딩된 비트스트림을 수신한다. 엔트로피 디코딩 유닛(302)은 엔트로피 인코딩 프로세스에 상반되는 프로세스에 따라 비트스트림으로부터 양자화된 신택스 요소들 및 양자화된 계수들을 디코딩하도록 구성될 수 있다. 엔트로피 디코딩 유닛(302)은 전술된 엔트로피 코딩 기법들 중 임의의 것에 따라 엔트로피 디코딩을 수행하도록 구성될 수 있다. 엔트로피 디코딩 유닛(302)은 비디오 코딩 표준과 일치하는 방식으로, 인코딩된 비트스트림을 파싱할 수 있다. 비디오 디코더(300)는 인코딩된 비트스트림을 파싱하도록 구성될 수 있는데, 여기서 인코딩된 비트스트림은 전술한 기법들에 기초하여 생성된다. 역양자화 유닛(304)은 엔트로피 디코딩 유닛(302)으로부터 양자화된 변환 계수들(즉, 레벨 값들) 및 양자화 파라미터 데이터를 수신한다. 양자화 파라미터 데이터는 전술된 델타 QP 값들 및/또는 양자화 그룹 크기 값들 등의 임의의 그리고 모든 조합들을 포함할 수 있다. 비디오 디코더(300) 및/또는 역양자화 유닛(304)은 비디오 인코더에 의해 시그널링된 값들에 기초하여 그리고/또는 비디오 속성들 및/또는 코딩 파라미터들을 통해 역양자화에 사용되는 QP 값들을 결정하도록 구성될 수 있다. 즉, 역양자화 유닛(304)은 전술된 계수 양자화 유닛(206)에 대해 상반되는 방식으로 동작할 수 있다. 역양자화 유닛(304)은 역양자화를 적용하도록 구성될 수 있다. 역변환 프로세싱 유닛(306)은 역변환을 수행하여, 재구성된 잔차 데이터를 생성하도록 구성될 수 있다. 역양자화 유닛(304) 및 역변환 프로세싱 유닛(306)에 의해 각각 수행되는 기법들은 전술된 역양자화/역변환 프로세싱 유닛(208)에 의해 수행되는 기법들과 유사할 수 있다. 역변환 프로세싱 유닛(306)은 역-DCT, 역-DST, 역-정수 변환, NSST(Non-Separable Secondary Transform), 또는 개념적으로 유사한 역변환 프로세스들을 변환 계수들에 적용하여 픽셀 도메인에서 잔차 블록들을 생성하도록 구성될 수 있다. 또한, 전술된 바와 같이, 특정 변환(또는 특정 변환의 타입)이 수행되는지의 여부는 인트라 예측 모드에 의존적일 수 있다. 도 7에 도시된 바와 같이, 재구성된 잔차 데이터가 합산기(312)에 제공될 수 있다. 합산기(312)는 재구성된 잔차 데이터를 예측 비디오 블록에 추가하고 재구성된 비디오 데이터를 생성할 수 있다.
전술된 바와 같이, 예측 비디오 블록은 예측 비디오 기법(즉, 인트라 예측 및 인터 프레임 예측)에 따라 결정될 수 있다. 인트라 예측 프로세싱 유닛(308)은 인트라 예측 신택스 요소들을 수신하도록 그리고 기준 버퍼(316)로부터 예측 비디오 블록을 검색하도록 구성될 수 있다. 기준 버퍼(316)는 비디오 데이터의 하나 이상의 프레임을 저장하도록 구성된 메모리 디바이스를 포함할 수 있다. 인트라 예측 신택스 요소들은 전술된 인트라 예측 모드들과 같은 인트라 예측 모드를 식별할 수 있다. 일례에서, 인트라 예측 프로세싱 유닛(308)은 본 명세서에 기술된 인트라 예측 코딩 기법들 중 하나 이상에 따라 비디오 블록을 재구성할 수 있다. 인터 예측 프로세싱 유닛(310)은 인터 예측 신택스 요소들을 수신하고 모션 벡터들을 생성하여 기준 버퍼(316)에 저장된 하나 이상의 기준 프레임들 내의 예측 블록을 식별할 수 있다. 인터 예측 프로세싱 유닛(310)은 모션 보상된 블록들을 생성하여, 가능하게는 보간 필터들에 기초하여 보간을 수행할 수 있다. 서브픽셀 정밀도로 모션 추정에 사용될 보간 필터들에 대한 식별자들이 신택스 요소들에 포함될 수 있다. 인터 예측 프로세싱 유닛(310)은 보간 필터들을 사용하여 기준 블록의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다.
전술한 바와 같이, 비디오 디코더(300)는 인코딩된 비트스트림을 파싱할 수 있는데, 여기서 인코딩된 비트스트림은 전술된 기법들에 기초하여 생성되고, 전술된 바와 같이, 비디오 인코더(200)는 전술된 모션 벡터 예측 기법들에 따라 비트스트림을 생성할 수 있다. 따라서, 비디오 디코더(300)는 전술된 기법들에 따라 모션 벡터 예측을 수행하도록 구성될 수 있다. 이러한 방식으로, 비디오 디코더(300)는, 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 플래그를 파싱하도록, 그리고 모션 벡터 차이 값들을 갖는 병합 모드가 현재 비디오 블록에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 파싱된 플래그의 값에 기초하여 현재 비디오 블록의 인터 예측 파라미터들을 생성하는 데 사용되는지 여부를 특정하는 플래그를 조건부로 파싱하도록 구성된 디바이스의 예를 표현한다.
다시 도 7을 참조하면, 필터 유닛(314)은 재구성된 비디오 데이터에 대해 필터링을 수행하도록 구성될 수 있다. 예를 들어, 필터 유닛(314)은, 필터 유닛(216)과 관련하여 전술된 바와 같이, 디블록킹 및/또는 SAO 필터링을 수행하도록 구성될 수 있다. 또한, 몇몇 예들에서, 필터 유닛(314)은 독점적인 임의적 필터링(예컨대, 시각적 향상)을 수행하도록 구성될 수 있다는 것에 유의해야 한다. 도 7에 도시된 바와 같이, 재구성된 비디오 블록은 비디오 디코더(300)에 의해 출력될 수 있다.
하나 이상의 예들에서, 기술된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독가능 매체 상에 하나 이상의 명령어들 또는 코드로서 저장되거나 이를 통해 송신될 수 있고, 하드웨어 기반 프로세싱 유닛에 의해 실행될 수 있다. 컴퓨터 판독가능 매체는 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체, 또는 예컨대 통신 프로토콜에 따라 하나의 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독가능 매체는, 대체적으로, (1) 비일시적인 유형적 컴퓨터 판독가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 개시에 기술된 기법들의 구현을 위한 명령어들, 코드 및/또는 데이터 구조들을 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 컴퓨터 프로그램 제품이 컴퓨터 판독가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 그러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소, 또는 다른 자기 저장 디바이스, 플래시 메모리, 또는 명령어들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는 데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독가능 매체로 적절히 지칭된다. 예를 들어, 명령어들이 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL(digital subscriber line), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 접속, 반송파, 신호, 또는 다른 일시적 매체를 포함하는 것이 아니라, 대신에 비일시적인 유형의 저장 매체에 관한 것이라는 것을 이해해야 한다. 본 명세서에서 사용되는 바와 같은 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(compact disc, CD), 레이저 디스크(laser disc), 광학 디스크, 디지털 다기능 디스크(digital versatile disc, DVD), 플로피 디스크(floppy disk) 및 블루레이 디스크(Blu-ray disc)를 포함하며, 여기서 디스크(disk)는 통상적으로 자기적으로 데이터를 재생하는 반면, 디스크(disc)는 레이저로 광학적으로 데이터를 재생한다. 상기의 것들의 조합이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령어들은 하나 이상의 DSP(digital signal processor), 범용 마이크로프로세서, ASIC(application specific integrated circuit), FPGA(field programmable logic array), 또는 다른 동등한 집적 또는 개별 로직 회로망과 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용된 바와 같은 용어 "프로세서"는 본 명세서에 기술된 기법의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 것을 지칭할 수 있다. 또한, 몇몇 태양에서, 본 명세서에 기술된 기능은 인코딩 및 디코딩을 위해 구성되거나 조합된 코덱에 포함된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수 있다. 또한, 기법들은 하나 이상의 회로 또는 로직 요소로 완전히 구현될 수 있다.
본 개시의 기법들은 무선 핸드셋, 집적 회로(IC) 또는 IC들의 세트(예컨대, 칩셋)를 포함한 매우 다양한 디바이스들 또는 장치들로 구현될 수 있다. 다양한 컴포넌트, 모듈, 또는 유닛이 개시된 기법들을 수행하도록 구성된 디바이스들의 기능적 태양들을 강조하기 위해 본 개시에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의한 실현을 요구하는 것은 아니다. 오히려, 위에 설명된 바와 같이, 다양한 유닛들이 코덱 하드웨어 유닛에서 조합되거나, 적합한 소프트웨어 및/또는 펌웨어와 관련하여, 위에 설명된 바와 같은 하나 이상의 프로세서를 포함한 상호 작용적 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
더욱이, 전술한 실시예들 각각에서 사용되는 기지국 디바이스 및 단말기 디바이스의 각각의 기능 블록 또는 다양한 특징부는, 전형적으로 집적 회로 또는 복수의 집적 회로인 회로망에 의해 구현되거나 실행될 수 있다. 본 명세서에 기술된 기능들을 실행하도록 설계된 회로부는 범용 프로세서, DSP, ASIC, FPGA, 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 또는 이산 하드웨어 컴포넌트, 또는 이들의 조합을 포함할 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 대안적으로, 프로세서는 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신(state machine)일 수 있다. 전술된 범용 프로세서 또는 각각의 회로는 디지털 회로에 의해 구성될 수 있거나 아날로그 회로에 의해 구성될 수 있다. 또한, 반도체 기술의 발전으로 인해 현재의 집적 회로들을 대체하는 집적 회로로 제조하는 기술이 나타날 때, 이러한 기술에 의한 집적 회로가 또한 사용될 수 있다.
다양한 예들이 기술되었다. 이들 및 다른 예들은 다음의 청구범위의 범위 내에 있다.
<상호 참조>
본 정규 출원은 35 U.S.C. §119 하에서 2018년 12월 21일자의 가출원 제62/784,014호에 대한 우선권을 주장하며, 이로써 그 전체 내용이 참고로 포함된다.

Claims (4)

  1. 비디오 데이터를 디코딩하는 방법으로서,
    코딩 유닛에 대한 서브 블록 기반 인터 예측 파라미터(subblock-based inter prediction parameter)들이 이웃 블록들로부터 추론되는지 여부를 특정하는 병합 서브 블록 플래그를 디코딩하는 단계; 및
    상기 병합 서브 블록 플래그의 값이 0이고 모션 벡터 차이 플래그의 값이 1인 경우, 모션 벡터 차이 병합 플래그를 디코딩하는 단계를 포함하고,
    상기 모션 벡터 차이 병합 플래그는 모션 벡터 차이를 갖는 예측 파라미터가 사용되는지를 특정하고,
    상기 모션 벡터 차이 플래그는 모션 벡터 차이를 갖는 병합 모드가 사용가능한지 여부를 특정하는, 방법.
  2. 비디오 데이터를 코딩하는 방법으로서,
    코딩 유닛에 대한 서브 블록 기반 인터 예측 파라미터들이 이웃 블록들로부터 추론되는지 여부를 특정하는 병합 서브 블록 플래그를 코딩하는 단계; 및
    상기 병합 서브 블록 플래그의 값이 0이고 모션 벡터 차이 플래그의 값이 1인 경우, 모션 벡터 차이 병합 플래그를 코딩하는 단계를 포함하고,
    상기 모션 벡터 차이 병합 플래그는 모션 벡터 차이를 갖는 예측 파라미터가 사용되는지를 특정하고,
    상기 모션 벡터 차이 플래그는 모션 벡터 차이를 갖는 병합 모드가 사용가능한지 여부를 특정하는, 방법.
  3. 제1항 및 제2항의 단계들의 임의의 그리고 모든 조합들을 수행하도록 구성된 하나 이상의 프로세서들을 포함하는, 디바이스.
  4. 제1항에 있어서,
    조합된 인터 픽처(inter-picture) 병합 및 인트라 픽처(intra-picture) 예측이 상기 병합 서브 블록 플래그 및 상기 조합된 인터 픽처 병합 및 인트라 픽처 예측에 대한 플래그를 사용함으로써 코딩 유닛에 적용되는지 여부를 특정하는 조합 플래그를 디코딩하는 단계를 추가로 포함하는, 방법.
KR1020217021666A 2018-12-21 2019-12-17 비디오 코딩에서 인터 예측을 수행하기 위한 시스템들 및 방법들 KR20210099129A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862784014P 2018-12-21 2018-12-21
US62/784,014 2018-12-21
PCT/JP2019/049315 WO2020129950A1 (en) 2018-12-21 2019-12-17 Systems and methods for performing inter prediction in video coding

Publications (1)

Publication Number Publication Date
KR20210099129A true KR20210099129A (ko) 2021-08-11

Family

ID=71101760

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217021666A KR20210099129A (ko) 2018-12-21 2019-12-17 비디오 코딩에서 인터 예측을 수행하기 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (2) US11706437B2 (ko)
EP (1) EP3900354A4 (ko)
KR (1) KR20210099129A (ko)
CN (1) CN113170188A (ko)
BR (1) BR112021012163A2 (ko)
WO (1) WO2020129950A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023249468A1 (ko) * 2022-06-24 2023-12-28 주식회사 케이티 영상 부호화/복호화 방법 및 비트스트림을 저장하는 기록 매체

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11611759B2 (en) * 2019-05-24 2023-03-21 Qualcomm Incorporated Merge mode coding for video coding
WO2021136747A1 (en) * 2019-12-30 2021-07-08 Interdigital Vc Holdings France Merge mode, adaptive motion vector precision, and transform skip syntax
CN113298147B (zh) * 2021-05-25 2022-10-25 长春大学 基于区域能量和直觉模糊集的图像融合方法及装置
US20240015305A1 (en) * 2022-07-07 2024-01-11 Tencent America LLC Subblock intra and inter coding

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860529B2 (en) * 2013-07-16 2018-01-02 Qualcomm Incorporated Processing illumination compensation for video coding
US10244253B2 (en) * 2013-09-13 2019-03-26 Qualcomm Incorporated Video coding techniques using asymmetric motion partitioning
KR20150110357A (ko) * 2014-03-21 2015-10-02 주식회사 케이티 다시점 비디오 신호 처리 방법 및 장치
KR102413529B1 (ko) * 2014-06-19 2022-06-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 통합된 인트라 블록 카피 및 인터 예측 모드
KR102034938B1 (ko) * 2014-09-01 2019-10-21 에이치에프아이 이노베이션 인크. 스크린 콘텐츠 및 비디오 코딩을 위한 인트라 픽처 블록 카피의 방법
CN113196751B (zh) * 2018-10-23 2023-10-13 韦勒斯标准与技术协会公司 通过使用基于子块的运动补偿处理视频信号的方法和设备
US10827171B2 (en) * 2018-11-14 2020-11-03 Tencent America LLC Method and apparatus for video coding
US10917636B2 (en) * 2018-12-03 2021-02-09 Tencent America LLC Method and apparatus for video coding
CN113273209A (zh) * 2018-12-17 2021-08-17 交互数字Vc控股公司 Mmvd和smvd与运动和预测模型的组合

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023249468A1 (ko) * 2022-06-24 2023-12-28 주식회사 케이티 영상 부호화/복호화 방법 및 비트스트림을 저장하는 기록 매체

Also Published As

Publication number Publication date
US20230308675A1 (en) 2023-09-28
EP3900354A4 (en) 2022-09-14
US11706437B2 (en) 2023-07-18
BR112021012163A2 (pt) 2021-08-31
CN113170188A (zh) 2021-07-23
US20220078460A1 (en) 2022-03-10
EP3900354A1 (en) 2021-10-27
WO2020129950A1 (en) 2020-06-25

Similar Documents

Publication Publication Date Title
US20230283810A1 (en) Systems and methods for varying quantization parameters
US11889123B2 (en) Systems and methods for partitioning video blocks at a boundary of a picture
WO2019194147A1 (en) Systems and methods for deriving quantization parameters for video blocks in video coding
US11706437B2 (en) Systems and methods for performing inter prediction in video coding
US20220116646A1 (en) Method of deriving motion information
WO2020184637A1 (en) Systems and methods for performing intra prediction coding in video coding
AU2019381454B2 (en) Systems and methods for deriving a motion vector prediction in video coding
CN112997501B (zh) 导出用于对视频数据进行解码的预测亮度样本值的方法
WO2020141598A1 (en) Systems and methods for performing intra prediction coding
WO2020017513A1 (en) Systems and methods for generating prediction blocks for coding of video data
WO2019188942A1 (en) Systems and methods for performing motion compensated prediction for video coding
WO2020262470A1 (en) Systems and methods for performing intra prediction coding in video coding
WO2020262176A1 (en) Systems and methods for deriving quantization parameters for video blocks in video coding
JP7448549B2 (ja) ビデオ符号化におけるビデオブロックのための量子化パラメータを導出するシステム及び方法
WO2020166556A1 (en) Systems and methods for performing inter prediction in video coding
US11330260B2 (en) Systems and methods for adaptively partitioning video blocks for video coding