KR20220027173A - 비디오 인코딩 및 디코딩에서의 모션 벡터 예측 - Google Patents

비디오 인코딩 및 디코딩에서의 모션 벡터 예측 Download PDF

Info

Publication number
KR20220027173A
KR20220027173A KR1020227002621A KR20227002621A KR20220027173A KR 20220027173 A KR20220027173 A KR 20220027173A KR 1020227002621 A KR1020227002621 A KR 1020227002621A KR 20227002621 A KR20227002621 A KR 20227002621A KR 20220027173 A KR20220027173 A KR 20220027173A
Authority
KR
South Korea
Prior art keywords
flag
coded
prediction mode
decoding
coding
Prior art date
Application number
KR1020227002621A
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 KR20220027173A publication Critical patent/KR20220027173A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/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/527Global motion vector estimation
    • 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/537Motion estimation other than block-based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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

Landscapes

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

Abstract

비디오 코덱은 픽처 정보 및 제1 및 제2 플래그들을 인코딩 및 디코딩하는 것을 수반할 수 있고, 상기 픽처 정보의 인코딩 또는 디코딩은 상기 제1 플래그 또는 상기 제2 플래그에 의해 지시된 코딩 모드에 기초하고, 상기 제1 플래그는 서브블록 병합 모드를 지시하고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시하고, 상기 제1 플래그의 인코딩 또는 디코딩은 제1 확률 모델에 기초한 CABAC 코딩을 사용하고 상기 제2 플래그의 인코딩 또는 디코딩은 제2 확률 모델에 기초한 CABAC 코딩을 사용한다.

Description

비디오 인코딩 및 디코딩에서의 모션 벡터 예측
본 개시내용은 비디오 인코딩 및 디코딩에 관한 것이다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 방식들은 보통 예측 및 변환을 이용하여 비디오 콘텐츠에서의 공간 및 시간 중복성을 활용한다. 일반적으로, 인트라 또는 인터 예측을 사용하여 인트라 또는 인터 프레임 상관을 활용하고, 그 후 원래 픽처 블록과 예측된 픽처 블록 간의 차이들 - 종종 예측 오차 또는 예측 잔차들로 표시됨 - 을 변환, 양자화 및 엔트로피 코딩한다. 비디오를 복원하기 위해, 압축된 데이터를 예측, 변환, 양자화 및 엔트로피 코딩에 대응하는 역 프로세스들에 의해 디코딩한다. 증가된 압축 또는 코딩 효율 및 감소된 복잡도 중 하나 또는 둘 다를 포함하지만 이에 제한되지 않는 비디오 인코딩 및/또는 디코딩 시스템에 대한 개선들을 제공할 수 있는 다양한 수정들 및 실시예들이 아래에 기술되는 바와 같이 구상된다.
일반적으로, 실시예의 예는 코딩된 비트스트림에 포함된 제1 플래그를 디코딩하는 단계 - 상기 제1 플래그는 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -; 상기 코딩된 비트스트림에 포함된 제2 플래그를 디코딩하는 단계 - 상기 제2 플래그는 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -; 및 상기 제1 플래그 또는 상기 제2 플래그에 의해 지시된 코딩 모드에 기초하여 상기 코딩된 비트스트림에 포함된 픽처 정보를 디코딩하는 단계를 포함하는 방법을 수반할 수 있고; 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시한다.
일반적으로, 실시예의 다른 예는 픽처 정보를 인코딩하는 것과 연관된 제1 예측 모드를 지시하는 제1 플래그의 값을 결정하는 단계; 픽처 정보를 인코딩하는 것과 연관된 제2 예측 모드를 지시하는 제2 플래그의 값을 결정하는 단계; 및 상기 픽처 정보 및 상기 제1 및 제2 플래그들 중 적어도 일부를 인코딩하여 인코딩된 비트스트림을 형성하는 단계를 포함하는 방법을 수반할 수 있고, 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시하고 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩된다.
일반적으로, 실시예의 다른 예는 코딩된 비트스트림에 포함된 제1 플래그를 디코딩하고 - 상기 제1 플래그는 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -; 상기 코딩된 비트스트림에 포함된 제2 플래그를 디코딩하고 - 상기 제2 플래그는 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -; 상기 제1 플래그 또는 상기 제2 플래그에 의해 지시된 코딩 모드에 기초하여 상기 코딩된 비트스트림에 포함된 인코딩된 픽처 정보를 디코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있고; 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시한다.
일반적으로, 실시예의 다른 예는 픽처 정보를 인코딩하는 것과 연관된 제1 예측 모드를 지시하는 제1 플래그의 값을 결정하고; 픽처 정보를 인코딩하는 것과 연관된 제2 예측 모드를 지시하는 제2 플래그의 값을 결정하고; 상기 픽처 정보 및 상기 제1 및 제2 플래그들 중 적어도 일부를 인코딩하여 인코딩된 비트스트림을 형성하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있고, 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시하고 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩된다.
일반적으로, 실시예의 다른 예는 인코딩된 픽처 정보를 포함하도록 포맷팅된 비트스트림을 수반할 수 있고, 상기 인코딩된 픽처 정보는 본 개시내용에 따른 방법들의 실시예들의 예들 중 어느 하나 이상에 기초하여 픽처 정보를 처리하는 것에 의해 인코딩된다.
일반적으로, 실시예의 하나 이상의 다른 예는 또한 본 명세서에서 기술된 방법들 또는 장치에 따라 비디오 데이터와 같은 픽처 정보를 인코딩 또는 디코딩하기 위한 명령어들이 저장되어 있는, 컴퓨터 판독가능 저장 매체, 예를 들어, 비휘발성 컴퓨터 판독가능 저장 매체를 제공할 수 있다. 하나 이상의 실시예는 또한 본 명세서에서 기술된 방법들 또는 장치에 따라 생성된 비트스트림이 저장되어 있는 컴퓨터 판독가능 저장 매체를 제공할 수 있다. 하나 이상의 실시예는 또한 본 명세서에서 기술된 방법들 또는 장치에 따라 생성된 비트스트림을 송신 또는 수신하기 위한 방법들 및 장치를 제공할 수 있다.
증가된 압축 효율 및/또는 코딩 효율 및/또는 처리 효율 및/또는 감소된 복잡도 중 하나 이상을 포함하지만 이에 제한되지 않는 비디오 인코딩 및/또는 디코딩 시스템에 대한 개선들을 제공할 수 있는 다양한 수정들 및 실시예들이 아래에 기술되는 바와 같이 구상된다.
상기한 내용은 본 개시내용의 일부 양태들에 대한 기본적인 이해를 제공하기 위해 본 주제의 단순화된 요약을 제시한다. 이 요약은 본 주제에 대한 광범위한 개요가 아니다. 그것은 실시예들의 핵심/중요 요소들을 식별하거나 본 주제의 범위를 묘사하기 위해 의도된 것이 아니다. 그것의 유일한 목적은 본 주제의 일부 개념을 아래에 제공되는 보다 상세한 설명의 서두로서 단순화된 형식으로 제시하는 것이다.
본 개시내용은 첨부 도면들과 함께 아래의 상세한 설명을 고려하여 더 잘 이해될 수 있다.
도 1은 비디오 인코더의 실시예의 예를 묘사하는 블록도를 제공한다.
도 2는 비디오 디코더의 실시예의 예를 묘사하는 블록도를 제공한다.
도 3은 코딩 트리 유닛(CTU)을 수반하는 본 개시내용의 양태들을 예시한다.
도 4는 CTU 또는 코딩 유닛(CU)을 수반하는 본 개시내용의 양태들을 예시한다.
도 5는 예를 들어 VTM-5에서, 인터 모드의 예를 예시하는 흐름도를 제공한다.
도 6은 예를 들어 HEVC에 따라, 인터 예측 정보를 시그널링하는 예를 예시하는 흐름도를 제공한다.
도 7은 예를 들어 HEVC에서, 병합 모드에서 사용되는 공간 및 시간 모션 벡터 예측자들(좌측: 공간 병합 후보들; 우측: 시간 병합 후보들)의 위치들의 예를 예시하는 블록도를 제공한다.
도 8은 예를 들어 HEVC에서, 병합 모션 벡터 예측자 후보들의 리스트의 구성의 예를 예시하는 흐름도를 제공한다.
도 9는 예를 들어 HEVC에서, 병합 모션 벡터 예측자 후보들의 리스트의 구성의 다른 예를 예시하는 다른 흐름도를 제공한다.
도 10은 예를 들어 JEM에서, CU에 대한 SbTMVP 모션 예측의 예를 예시한다.
도 11은 시간 병합 리스트를 사용한 인터 모드 시그널링의 예를 예시한다.
도 12는 모션 벡터 예측자(좌측: 공간 예측자들; 우측: 시간 예측자들)의 위치의 예를 예시한다.
도 13은 서브-블록 기반 모션 벡터 예측자 후보들의 리스트의 구성의 실시예의 예를 예시한다.
도 14는 시간 병합 리스트를 사용한 인터 디코딩 프로세스의 실시예의 예를 예시하는 흐름도를 제공한다.
도 15는 본 명세서에서 기술된 다양한 양태들에 따른 장치 또는 시스템의 실시예의 예를 예시하는 블록도를 제공한다.
도 16 및 도 17은 본 명세서에서 기술된 바와 같은 실시예들의 예들을 예시한다.
도면들은 다양한 양태들 및 실시예들의 예들을 예시하기 위한 것일 뿐이고 반드시 유일한 가능한 구성들은 아니라는 점을 이해해야 한다. 다양한 도면들 전체에 걸쳐, 같은 참조 지정 부호들은 동일하거나 유사한 특징들을 지칭한다.
이제 도면들을 참조하면, 도 1은 HEVC 인코더와 같은 비디오 인코더(100)의 예를 예시한다. HEVC는 JCT-VC(Joint Collaborative Team on Video Coding)가 개발한 압축 표준이다(예를 들어, "ITU-T H.265 TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (10/2014), SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS, Infrastructure of audiovisual services - Coding of moving video, High efficiency video coding, Recommendation ITU-T H.265" 참조). 도 1은 또한 HEVC 표준에 대해 개선이 이루어진 인코더 또는 HEVC와 유사한 기술들을 이용하는 인코더, 예컨대 JVET이 개발 중인 JEM(Joint Exploration Model)에 기초한 또는 그것이 개선된 인코더를 예시할 수 있다.
본 출원에서, "복원된(reconstructed)" 및 "디코딩된(decoded)"이라는 용어들은 교환 가능하게 사용될 수 있고, "픽셀" 및 "샘플"이라는 용어들은 교환 가능하게 사용될 수 있고, "픽처" 및 "프레임"이라는 용어들은 교환 가능하게 사용될 수 있다.
HEVC 사양은 "블록"과 "유닛"을 구별하는데, 여기서 "블록"은 샘플 어레이(예를 들어, 루마, Y) 내의 특정 영역을 어드레싱하고 "유닛"은 인코딩된 모든 색상 성분들(Y , Cb, Cr, 또는 단색), 구문 요소들, 및 블록들과 연관된 예측 데이터(예를 들어, 모션 벡터들)의 동위치 블록들을 포함한다.
코딩을 위해, 픽처가 구성 가능한 크기를 갖는 정사각형 형상의 코딩 트리 블록(CTB)들로 파티셔닝되고, 코딩 트리 블록들의 연속적인 세트가 슬라이스로 그룹화된다. 코딩 트리 유닛(CTU)은 인코딩된 색상 성분들의 CTB들을 포함한다. CTB는 코딩 블록(CB)들로 파티셔닝되는 쿼드트리의 루트이고, 코딩 블록은 하나 이상의 예측 블록(PB)으로 파티셔닝될 수 있고 변환 블록(TB)들로 파티셔닝되는 쿼드트리의 루트를 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하여, 코딩 유닛(CU)은 예측 유닛(PU)들 및 트리 구조 세트의 변환 유닛(TU)들을 포함하고, PU는 모든 색상 성분에 대한 예측 정보를 포함하고, TU는 각각의 색상 성분에 대한 잔차 코딩 구문 구조를 포함한다. 루마 성분의 CB, PB 및 TB의 크기는 대응하는 CU, PU 및 TU에 적용된다. 본 출원에서, "블록"이라는 용어는 CTU, CU, PU, TU, CB, PB 및 TB 중 임의의 것을 지칭하기 위해 사용될 수 있다. 또한, "블록"은 H.264/AVC 또는 다른 비디오 코딩 표준들에 지정된 바와 같은 매크로블록 및 파티션을 지칭하기 위해 사용될 수 있고, 더 일반적으로는 다양한 크기의 데이터 어레이를 지칭하기 위해 사용될 수 있다.
도 1의 인코더(100)에서는, 아래에 기술되는 바와 같은 인코더 요소들에 의해 픽처가 인코딩된다. 인코딩될 픽처는 CU들의 단위로 처리된다. 각각의 CU는 인트라 또는 인터 모드를 사용하여 인코딩된다. CU가 인트라 모드에서 인코딩될 때, 그것은 인트라 예측(160)을 수행한다. 인터 모드에서는, 모션 추정(175) 및 보상(170)이 수행된다. 인코더는 CU를 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 하나를 사용할지를 결정하고(105), 예측 모드 플래그에 의해 인트라/인터 결정을 지시한다. 원래 이미지 블록으로부터 예측 블록을 빼는 것(110)에 의해 예측 잔차들을 계산한다.
그 후 예측 잔차들을 변환(125)하고 양자화(130)한다. 양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 구문 요소들을 엔트로피 코딩하여(145) 비트스트림을 출력한다. 인코더는 변환을 생략하고 4x4 TU 기반으로 변환되지 않은 잔차 신호에 직접 양자화를 적용할 수도 있다. 인코더는 또한 변환 및 양자화 모두를 우회할 수도 있는데, 즉, 변환 또는 양자화 프로세스의 적용 없이 잔차가 직접 코딩된다. 직접 PCM 코딩에서는, 예측이 적용되지 않고 코딩 유닛 샘플들이 비트스트림으로 직접 코딩된다.
인코더는 인코딩된 블록을 디코딩하여 추가 예측을 위한 참조를 제공한다. 양자화된 변환 계수들을 역양자화(140)하고 역변환(150)하여 예측 잔차들을 디코딩한다. 디코딩된 예측 잔차들과 예측 블록을 결합(155)하여, 이미지 블록을 복원한다. 복원된 픽처에 인-루프 필터들(165)을 적용하여, 예를 들어, 디블로킹/SAO(Sample Adaptive Offset) 필터링을 수행하여 인코딩 아티팩트들을 감소시킨다. 필터링된 이미지는 참조 픽처 버퍼(180)에 저장된다.
도 2는 HEVC 디코더와 같은 비디오 디코더(200)의 예의 블록도를 예시한다. 예시적인 디코더(200)에서는, 아래에 기술되는 바와 같은 디코더 요소들에 의해 신호 또는 비트스트림이 디코딩된다. 비디오 디코더(200)는 일반적으로, 인코딩 비디오 데이터의 일부로서 비디오 디코딩을 수행하는, 도 1에 기술된 바와 같은 인코딩 패스와 상반되는 디코딩 패스를 수행한다. 도 2는 또한 HEVC 표준에 대한 개선이 이루어진 디코더 또는 HEVC와 유사한 기술들을 이용하는 디코더, JEM에 기초한 또는 그것이 개선된 디코더를 예시할 수 있다.
특히, 디코더의 입력은, 도 1의 비디오 인코더(100)와 같은 비디오 인코더에 의해 생성될 수 있는, 비디오 신호 또는 비트스트림을 포함한다. 이 신호 또는 비트스트림을 먼저 엔트로피 디코딩(230)하여 변환 계수들, 모션 벡터들, 및 다른 코딩된 정보를 획득한다. 변환 계수들을 역양자화(240)하고 역변환(250)하여 예측 잔차들을 디코딩한다. 디코딩된 예측 잔차들과 예측 블록을 결합(255)하여, 이미지 블록을 복원한다. 예측된 블록은 인트라 예측(260) 또는 모션 보상 예측(즉, 인터 예측)(275)으로부터 획득될 수 있다(270). AMVP(Advanced Motion Vector Prediction) 및 병합 모드 기법들을 사용하여 모션 보상을 위한 모션 벡터들을 도출할 수 있고, 이는 보간 필터들을 사용하여 참조 블록의 정수 이하 샘플(sub-integer sample)들에 대한 보간된 값들을 계산할 수 있다. 복원된 이미지에 인-루프 필터들(265)이 적용된다. 필터링된 이미지는 참조 픽처 버퍼(280)에 저장된다.
HEVC 비디오 압축 표준에서는, 비디오의 연속적인 픽처들 사이에 존재하는 중복성을 이용하기 위해 모션 보상된 시간 예측이 사용된다. 이를 위해, 모션 벡터가 각각의 예측 유닛(PU)과 연관된다. 각각의 코딩 트리 유닛(CTU)은 압축된 영역에서 코딩 트리(CT)로 표현된다. 이는 CTU의 쿼드-트리 분할이고, 여기서 각각의 리프는 도 3에 예시된 바와 같이 코딩 유닛(CU)이라고 불린다.
그 후 각각의 CU에는 일부 인트라 또는 인터 예측 파라미터들(예측 정보)이 제공된다. 이를 위해, 그것은 공간적으로 하나 이상의 예측 유닛(PU)으로 파티셔닝되고, 각각의 PU에는 일부 예측 정보가 할당된다. 인트라 또는 인터 코딩 모드는 코딩 트리 유닛을 코딩 유닛들, 예측 유닛들 및 변환 유닛들로 분할하는 예를 보여주는 도 4에 예시된 바와 같이 CU 레벨에서 할당된다.
HEVC에서 각각의 PU에 정확히 하나의 모션 벡터가 할당된다. 이 모션 벡터는 고려되는 PU의 모션 보상된 시간 예측을 위해 사용된다. 따라서, HEVC에서는, 예측 블록과 그것의 참조 블록을 연결하는 모션 모델은 병진(translation)을 수반한다.
모션 데이터를 인코딩하기 위해 HEVC에서는 두 가지 모드가 이용된다. 그것들은 제각기 AMVP(Adaptive Motion Vector Prediction) 및 병합(Merge)이라고 불린다. AMVP는 현재 PU를 예측하기 위해 사용되는 참조 픽처(들), 모션 벡터 예측자 인덱스(2개의 예측자의 리스트 중에서 취해짐) 및 모션 벡터 차이를 시그널링하는 것을 수반한다. 일반적으로, 본 명세서에서 기술된 적어도 하나의 실시예는 병합 모드를 수반한다.
병합 모드는 모션 데이터 예측자들의 리스트에서 수집된 일부 모션 데이터의 인덱스를 시그널링 및 디코딩하는 것을 포함한다. 리스트는 5개의 후보로 이루어지고 디코더 측에서 그리고 인코더 측에서 동일한 방식으로 구성된다. 따라서, 병합 모드는 병합 리스트에서 취해진 일부 모션 정보를 도출하는 것을 목표로 한다. 병합 리스트는 전형적으로 현재 PU가 처리되고 있을 때 그들의 디코딩된 상태에서 이용 가능한 일부 공간 및 시간 주변 블록들과 연관된 모션 정보를 포함한다.
JVET(Joint Video Exploration Team) 그룹이 개발한 JEM(Joint Exploration Model)에서는, 디코더 측에서 결정된 연관된 파라미터들을 갖는 일부 추가 시간 예측 툴들이, 때때로 ATMVP(Alternative Temporal Motion Vector Prediction)라고 지칭되는, 서브-블록 시간 모션 벡터 예측(Sub-block Temporal Motion Vector Prediction, SbTMVP)을 포함한다. SbTMVP의 기본 원리는 현재 픽처의 참조 픽처에 포함된 일부 모션 정보로부터 현재 CU에 대한 일부 모션 정보를 도출하는 것이다. 이를 위해, 현재 CU의 첫 번째 병합 후보의 모션 벡터로서, 소위 시간 벡터가 먼저 획득된다. 그것의 연관된 참조 픽처 인덱스를 갖는 이 시간 벡터는 고려되는 참조 픽처로부터 모션 벡터들을 검색하기 위해 사용될 수 있다. 이를 위해, 현재 CU가 NxN개의 서브-CU로 분할되고, 고려되는 서브-CU 중심 위치에서 시간적으로 가리키는 모션 데이터가 서브-CU MV SbTMVP 예측자로 간주된다.
SbTMVP 모션 예측 모드는 고전적인 병합 리스트에 추가 후보로서 포함될 수 있다. 다른 접근법은 아핀 병합 리스트(Affine Merge list)에 SbTMVP 모션 예측 모드를 삽입하는 것일 수 있고, 아핀 병합 리스트는 초기에 현재 CU에 대해 아핀 모션 보상이 사용되는 경우 현재 CU의 아핀 모션 모델을 예측하기 위해 병합 후보들의 세트의 구성에 전용된다. 현재 CU에 대한 아핀 모션 보상의 사용은 소위 아핀 플래그(affine flag)라고 하는 CU-레벨을 통해 시그널링된다. SbTMVP 모션 예측자를 아핀 병합 리스트로 이동시키면 다른 접근법들(예를 들어, SbTMVP 후보가 고전적인 병합 후보 리스트의 일부인 경우)에 비해 압축 효율의 증가로 이어질 수 있는 것 같다.
도 5는 예를 들어 VTM-5에서, 인터 모드 코딩의 예를 도시한다:
- 먼저 CU가 임의의 잔차를 포함하는지를 지시하는, 스킵 플래그가 디코딩된다
- 그 후, TMVP(temporal Motion Vector Predictor) 후보들을 포함하는 정규 병합의 사용을 지시하는, regular_merge 플래그가 디코딩된다
- 그렇지 않으면, 병합 모션 벡터 차이(Merge Motion Vector Difference) 모드의 사용을 지시하는, mmvd 플래그가 디코딩된다. 이 모드는 TMVP 후보로부터 구성된 후보를 또한 포함할 수 있다.
- MMDV가 아니면, 서브블록 플래그가 디코딩된다. 서브-블록 후보는 아핀 후보의 SbTMVP일 수 있다.
- 서브블록이 아니면, 병합(스킵 아님)의 경우, CIIP 플래그(Combined Intra-Inter Prediction)가 디코딩된다. 이 모드는 TMVP 후보로부터 구성된 후보를 또한 포함할 수 있다.
- 마지막으로, 위의 모드들 중 아무것도 선택되지 않으면 삼각형 모드가 추론된다. 이 모드는 TMVP 후보로부터 구성된 후보를 또한 포함할 수 있다.
AMVP 모드(Advanced Motion Vector Prediction)에서, 블록은 병진 또는 아핀일 수 있다. AMVP에서의 아핀 플래그는 스킵 또는 병합 모드에서의 서브-블록 플래그와 동일한 CABAC 컨텍스트를 사용하여 코딩된다.
HEVC 표준에서의 병합 모드는 선택된 모션 정보 예측자 후보로부터 주어진 예측 유닛의 인터 예측 정보(이하 모션 정보라고도 불림)를 도출하는 것을 수반한다. 모션 정보는 PU의 모든 인터 예측 파라미터들, 즉 다음을 포함한다:
- 단방향 또는 양방향 시간 예측 유형
- 각각의 참조 픽처 리스트 내의 참조 픽처 인덱스
- 모션 벡터(들)
HEVC에서의 인터 예측 정보의 코딩 및 디코딩은 인터 예측 정보의 시그널링을 예시하는 도 6에 요약되어 있다. 알 수 있는 바와 같이, 병합 모드에 따른 모션 정보 코딩/디코딩은: 스킵 모드와 병합 모드의 두 가지 모드에서 행해진다. 이들 두 가지 모드에서, 디코더가 PU의 모션 정보를 검색할 수 있도록 하기 위해 하나의 단일 필드가 시그널링되고 있다: 소위 병합 인덱스. 병합 인덱스는 병합 모션 정보 예측자의 리스트에서 어느 모션 벡터 예측자가 현재 PU의 모션 정보를 도출하기 위해 사용되는지를 지시한다. 이하에서는, 모션 정보 예측자들의 리스트가 병합 리스트, 또는 병합 후보 리스트라고 불린다. 더욱이, 후보 모션 정보 예측자가 병합 후보라고 불린다.
HEVC에서는, 병합 후보 리스트가 체계적으로 5개의 병합 후보로 이루어진다. 병합 리스트는 인코더 측에서 그리고 디코더 측에서 양쪽 모두에서 다음과 같이 구성된다. 도 7은 병합 모드에서 사용되는 공간 및 시간 모션 벡터 예측자들의 위치들을 예시한다. 공간 병합 후보들은 도 7의 좌측에 예시되어 있다. 시간 병합 후보들은 도 7의 우측에 예시되어 있다. 도 7에서 알 수 있는 바와 같이, 일부 잠재적인 후보들을 검색하기 위해 최대 5개의 공간 위치가 고려될 수 있다. 그것들은 다음의 순서에 따라 방문된다:
1- 좌측(A1)
2- 위(B1)
3- 우측 위(B0)
4- 좌측 아래(A0)
5- 좌측 위(B2)
여기서 기호 A0, A1, B0, B1, B2는 도 7의 좌측에 도시된 공간 위치를 표시한다. 상이한 4개의 공간 후보가 선택된다. 그 후 위치 H에 위치한 시간 모션 정보를 고려하여, TMVP로 표시된 시간 예측자가 선택되고, 그 후 이용 가능하지 않은 고려되는 참조 픽처에서 위치 H에서 "중앙"이 후보이다. 그 후, 선택된 공간 및 시간 후보들의 세트가 중복 후보들을 포함하지 않도록 하기 위해 행해지는 마지막 프루닝 프로세스를 도시하는 도 8에 예시된 바와 같이 병합 모션 벡터 예측자 후보들의 리스트가 구성된다.
다음으로, B 슬라이스의 경우, 병합 리스트가 가득 차 있지 않으면 다른 유형의 후보가 병합 리스트에 푸시된다: 소위 결합된 후보들. 이는 리스트에 이미 존재하는 하나의 후보로부터의 하나의 참조 픽처 리스트(L0)와 연관된 모션 정보와, 병합 리스트에 이미 존재하는 다른 후보로부터의 다른 참조 픽처 리스트(L1)와 연관된 모션으로 이루어진 후보를 형성하는 것을 수반할 수 있다. 병합 리스트가 여전히 가득 차(5개 요소) 있지 않으면 병합 리스트가 가득 찰 때까지 그 뒤쪽으로 제로 모션 벡터들이 푸시된다. HEVC에서의 병합 리스트 구성의 전체 프로세스는 도 9의 다이어그램에 상세히 설명되어 있다.
서브-블록 시간 모션 벡터 예측 방법(SbTMVP; ATMVP라고도 지칭됨)에서, 현재 CU에 대한 참조 픽처(들)로부터 현재 CU에 대한 하나 또는 여러 개의 시간 모션 벡터 예측자가 검색된다. 먼저, 현재 CU의 보통 병합 리스트 후보에서 첫 번째 후보와 연관된 모션 데이터로서 소위 시간 모션 벡터 및 연관된 참조 픽처 인덱스가 획득된다. 다음으로, 현재 CU는 NxN 서브-CU로 분할되고, N은 전형적으로 4와 동등하다. 이는 도 9에 도시되어 있다. 각각의 NxN 서브-블록에 대해, 시간 MV와 연관된 참조 픽처에서, 시간 모션 벡터의 도움으로 모션 벡터(들) 및 참조 픽처 인덱스(들)가 식별된다. 현재 서브-CU 위치로부터 시간 MV가 가리키는 참조 픽처 내의 NxN 서브-블록이 고려된다. 그것의 모션 데이터가 현재 서브-CU에 대한 SbTMVP 모션 데이터 예측으로 간주된다. 그 후 그것은 적절한 모션 벡터 스케일링을 통해, 현재 서브-CU의 모션 벡터들 및 참조 픽처 인덱스들로 변환된다.
일반적으로, 실시예의 적어도 하나의 예의 양태는, 코딩 효율을 개선하는 방식으로, 모션 데이터 예측자들의 다양한 리스트들의 수 및 콘텐츠를 조직화하는 것을 수반한다. 일반적으로, 적어도 하나의 실시예의 다른 양태는, 예를 들어, 주어진 모드에 대해 구성할 병합 후보의 수를 감소시키는 것에 의해, 디코더 측에서 최악의 경우를 개선하기 위해 복잡도를 감소시키는 것을 수반한다. 일반적으로, 적어도 하나의 실시예의 다른 양태는 서브-블록 플래그 코딩 및 아핀 플래그 코딩을 혼합하지 않음으로써 아핀 모드 코딩을 보다 일관성 있게 만드는 것을 수반한다.
실시예의 적어도 하나의 예는 하나 이상의 시간 예측자, 예를 들어, SbTMVP, TMVP, TMVP에 기초한 MMVD, TMVP에 기초한 CIIP, TMVP에 기초한 삼각형을 포함하는 시간 병합 리스트를 제공하고, 여기서 이들 후보는 전통적인 병합 리스트로부터 제거됨으로써, 디코더에서 최악의 경우의 복잡도를 감소시킨다.
실시예의 적어도 하나의 예는 시간 병합 리스트에 포함되지 않은 시간 모드들이 그들의 각자의 리스트(예를 들어, MMVD, CIIP, 삼각형)에 유지되는 것을 수반한다.
실시예의 적어도 하나의 예는 각각의 리스트를 시간 예측자로부터 자유롭게 유지하기 위해 시간 병합 리스트에 포함되지 않은 시간 모드들이 완전히 제거되는 것을 수반한다.
실시예의 적어도 하나의 예는 서브-블록으로부터 SbTMVP를 추출하고 병합/스킵 모드와 AMVP 모드 사이에서 아핀 플래그의 코딩을 일관성 있게 만드는 것을 제공하는 것을 수반한다.
실시예의 적어도 하나의 예는 서브-블록 및 아핀 플래그 코딩을 분리하는 것을 수반한다.
도 11은 고전적인(서브-블록과는 대조적으로) 병합 리스트 구성의 예를 예시한다. 여기서 고전적인은 병진 모션 보상된 시간 예측을 위해 사용되는 병합 리스트를 의미하고, 여기서 각각의 참조 픽처 리스트에 대해 하나의 모션 벡터가 CU와 연관된다. 이 프로세스는 다음을 포함한다:
- 공간 후보들 A1, B1, B0 A0 B2의 추가와 그것들 사이의 일부 프루닝(예측자 위치들에 대해서는 도 13 참조).
- 시간 후보(TMVP)(H 또는 중앙)의 추가
- HMVP(History based Motion Vector Predictor) 후보의 추가와 첫 번째 추가된 후보에 대해 최대 A1 및 B1에 대한 일부 프루닝
- 리스트에 적어도 2개의 후보가 있다면, 쌍별(평균) 후보를 생성
- 필요하다면 널 모션 벡터로 리스트를 채우기
이제 서브-블록 기반 모션 예측자 후보들의 리스트의 구성의 예가 제공된다. 아핀 병합 리스트는 서브-블록 기반 모션 보상된 시간 예측을 수반하는 모든 병합 MV 예측자들을 수집한다. 따라서, 이는 위에 기술한 SbTMVP 병합 모드 및 아핀 병합 모드들을 포함한다. 아핀 병합 후보들은 그로부터 현재 CU에 대해 4x4 블록 기반 아핀 모션 필드가 도출되고 현재 CU의 시간 예측에서 사용되는 병합 후보들을 나타낸다. 아핀 모션 보상에 대해 여기서는 상세히 설명되지 않는다. 여기서 유의해야 할 일 양태는 적어도 하나의 예에서 SbTMVP 후보가 아핀 병합 리스트의 앞에 배치된다는 것이다.
병합 리스트들의 다른 예들은 다음을 포함할 수 있다:
- MMVD 병합 리스트는, 비트스트림에서 시그널링된 일부 주어진 모션 벡터 차이만큼 변위된, 처음 2개의 고전적인 병합 후보로 구성된다. 따라서 이 리스트는 시간 후보(변위된 TMVP 후보)에 기초한 후보들을 포함할 수 있다.
- CIIP 병합 리스트는 고전적인 병합 리스트와 동일한다. 따라서 이 리스트는 시간 후보에 기초한 후보를 포함할 수 있다. 최종 예측자는 모션 기반 예측자와 인트라 예측 간의 혼합이다.
- 삼각형 병합 리스트는 고전적인 병합 리스트의 후보들로부터 생성된 후보들로 구성된다. 따라서 이 리스트는 시간 후보에 기초한 후보들을 포함할 수 있다.
일반적으로, 본 명세서에서 기술된 실시예의 적어도 하나의 예의 적어도 하나의 양태는 시간 후보들을 포함하는 병합 리스트를 생성하는 것을 수반한다.
도 14는 적어도 다음을 포함하는 시간 병합 리스트를 디코딩하기 위한 수정된 프로세스의 실시예의 예를 도시한다:
- mmvd 모드 플래그 디코딩 후에, mmvd 플래그가 거짓이면 시간 모드 플래그가 디코딩된다.
- 시간 모드가 참이면, 고전적인 병합 후보 인덱스와 유사하게, 시간 후보 인덱스가 디코딩된다.
- 그렇지 않으면, 아핀 모드 플래그가 디코딩된다. 리스트로부터 SbTMVP 후보가 제거되었으므로, 아핀 플래그가 서브-블록 모드 플래그를 대체한다는 점에 유의한다. 이 분할 덕분에, 병합 모드에서 그리고 AMVP 모드에서의 아핀 플래그 코딩은 일관성 있는 방식으로 동일한 CABAC 빈들을 사용한다(서브블록 플래그가 SbTMVP 또는 아핀 모드를 둘 다를 의미하는 접근법과 대조적으로).
일반적으로, 실시예의 적어도 하나의 예의 적어도 하나의 양태는 시간 병합 리스트의 다양한 배치들을 제공하는 것을 수반할 수 있다. 예를 들어, 시간 병합 리스트가 또한 삽입될 수 있다:
- 첫 번째 병합 리스트로서
- 정규 병합 리스트 후에
- 아핀 병합 리스트 후에
- ciip 병합 리스트 후에
- 삼각형 병합 리스트 후에. 이 경우, 삼각형 모드가 거짓이면 시간 모드는 참으로 추론된다.
일반적으로, 잠재적 후보들(그것들이 존재하는 경우)을 병합 후보들의 최대수(전형적으로 2개 또는 3개)까지 고정된 순서로 추가하는 것에 의해 병합 리스트가 생성되는 것과 동일한 방식으로 시간 후보들의 리스트가 생성할 수 있다. 그 후 사용할 시간 후보들의 리스트 내의 위치를 지시하는 인덱스가 디코더에 송신된다. 시간 후보들의 리스트의 예는:
- SbTMVP 후보
- TMVP 후보
- 시간 CIIP 후보이다
변형들은 다음 중 하나 이상을 포함할 수 있다:
- 추가 시그널링으로 MMVD 및 삼각형 모드에 대한 TMVP 후보들이 리스트에 추가될 수도 있다. 이를 위해, 추가 정보(전형적으로 mmvd 플래그 및 mmvd 변위).
- MMVD, 및/또는 삼각형, 및/또는 CIIP에 대한 TMVP 후보들은 그들의 원래 리스트들에 유지된다.
- MMVD, 및/또는 삼각형, 및/또는 CIIP에 대한 TMVP 후보들은 완전히 제거되어, 다른 모든 리스트들이 시간 후보들을 갖지 못하게 한다. 옵션으로, 이 변형에서, 복원된 아핀 후보들은 아핀 병합 리스트를 시간 모션 벡터들로부터 명확하게 유지하기 위해 시간 모션 벡터를 사용하지 않는다.
- 순수하게 시간 복원된 아핀 후보들도 시간 리스트에 추가된다.
일반적으로, 기술된 실시예들 중 하나 이상이 다음을 제공할 수 있다:
- 주어진 병합 리스트(정규, mmvd, 시간, 아핀, ciip, 또는 삼각형)가 감소된 최악의 경우 복잡도를 갖는 디코더 프로세스의 감소된 복잡도(예를 들어, 리스트(들)의 길이(들)가 감소됨).
- 시간 메모리 버퍼에 액세스할 필요 없이, 모든 공간 후보들이 별도의 리스트에 있으므로 리스트의 각각의 후보들을 구성하기 위해 필요한 대역폭이 감소된다. 전형적으로, 시간 리스트를 제외한 모든 리스트들에서, 현재 블록을 둘러싼 공간 정보만을 캐시에 넣으면 된다.
본 개시내용에 첨부된 표 1은 시간 병합 리스트 플래그의 코딩을 위한 구문의 실시예의 예를 제공한다. 표 1에 제시된 예는 MMVD 플래그 후에 시간 병합 리스트 플래그의 코딩을 위한 구문을 제공하는 것을 수반한다. 서브블록 구문은 AMVP 도출에서와 같이 아핀 구문으로 대체된다는 점에 유의한다(회색으로 음영).
SbTMVP 및 TMVP 전용 시간 병합 리스트의 경우, 양쪽 후보가 이용 가능할 때 변수 MaxNumTemporalMergeCand가 최대 2와 동등하다. 후보 이용 가능성이 이전과 같이 도출되고, 여기서
- SbTMVP SPS 레벨 플래그가 참이고 현재 블록 크기가 폭과 높이 둘 다 8 이상이면 SbTMVP가 이용 가능하다
- SPS 레벨의 시간 플래그가 참이고 폭+높이가 12보다 크면 TMVP가 이용 가능하다.
실시예의 적어도 하나의 예의 다른 양태는 아핀 및 서브-블록 플래그 코딩을 수반할 수 있다. 특정 시스템들에서, merge_subblock_flag(병합/스킵 모드들에서) 및 inter_affine_flag(AMVP에서)의 코딩은 동일한 CABAC 코딩을 공유하는 것을 수반할 수 있다. 본 명세서에서 기술된 적어도 하나의 실시예에서와 같은 별도의 시간 리스트의 경우(즉, SbTMVP가 더 이상 서브-블록 리스트에 없음), CABAC 코딩이 더 일관성이 있도록 merge_subblock_flag는 실제로 merge_affine_flag가 된다. 별도의 시간 병합 리스트를 사용하지 않는 다른 변형은 2개의 별개의 CABAC 코딩을 사용하는 것이다: merge_subblock_flag에 대한 하나와 inter_affine_flag에 대한 하나.
일반적으로, 실시예의 다른 예가 도 16에 예시되어 있다. 도 16에서, 인코딩된 픽처 정보를 포함하는 비트스트림은 플래그들과 같은 인코딩된 제어 정보를 또한 포함한다. 1610에서는, 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩된 비트스트림에 포함된 제1 플래그가 디코딩된다. 1620에서는, 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩된 비트스트림에 포함된 제2 플래그가 디코딩된다. 즉, 제1 및 제2 플래그들을 디코딩하기 위해 2개의 별개의 CABAC 코딩이 사용된다. 그 후, 1630에서는, 디코딩된 픽처 정보를 생성하기 위해 제1 플래그 또는 제2 플래그에 의해 지시된 코딩 모드에 기초하여 비트스트림에 포함된 인코딩된 픽처 정보가 디코딩된다. 예를 들어, 제1 플래그는 서브블록 병합 예측 모드와 같은 코딩 모드를 지시하거나, 그에 대응하거나, 그와 연관될 수 있고, 제2 플래그는 인터 아핀 예측 모드와 같은 코딩 모드를 지시하거나, 그에 대응하거나, 그와 연관될 수 있다.
일반적으로, 실시예의 다른 예가 도 17에 예시되어 있다. 도 17에서, 1710에서는, 제1 플래그의 값이 결정된다 - 여기서 제1 플래그는 입력에 포함된 픽처 정보를 인코딩하는 것과 연관된 제1 예측 모드를 지시한다. 1720에서는, 제2 플래그의 값이 결정된다 - 여기서 제2 플래그는 픽처 정보를 인코딩하는 것과 연관된 제2 예측 모드를 지시한다. 1730에서는, 상기 픽처 정보 및 상기 제1 및 제2 플래그들 중 적어도 일부를 인코딩하여 인코딩된 비트스트림을 형성한다 - 상기 제1 플래그는, 예를 들어, 서브블록 병합 예측 모드를 지시하고 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되고, 상기 제2 플래그는, 예를 들어, 인터 아핀 예측 모드를 지시하고 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩된다. 즉, 제1 및 제2 플래그들을 인코딩하기 위해 2개의 별개의 CABAC 코딩이 사용된다.
이 문서는 실시예들, 특징들, 모델들, 접근법들 등의 다양한 예들을 설명한다. 그러한 많은 예들이 구체적으로 설명되고, 적어도 개별적인 특성들을 보여주기 위해 종종 제한적으로 보일 수 있는 방식으로 기술된다. 그러나, 이는 설명의 명료성을 위한 것이고, 적용 또는 범위를 제한하지 않는다. 사실, 본 명세서에서 기술된 실시예들, 특징들 등의 다양한 예들은 실시예들의 추가 예들을 제공하기 위해 다양한 방식으로 조합 및 교환될 수 있다. 본 개시내용에 따른 실시예들의 예들은 다음을 포함하지만 이에 제한되지 않는다.
일반적으로, 실시예의 예는 코딩된 비트스트림에 포함된 제1 플래그를 디코딩하는 단계 - 상기 제1 플래그는 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -; 상기 코딩된 비트스트림에 포함된 제2 플래그를 디코딩하는 단계 - 상기 제2 플래그는 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -; 및 상기 제1 플래그 또는 상기 제2 플래그에 의해 지시된 코딩 모드에 기초하여 상기 코딩된 비트스트림에 포함된 픽처 정보를 디코딩하는 단계를 포함하는 방법을 수반할 수 있고; 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시한다.
일반적으로, 실시예의 다른 예는 픽처 정보를 인코딩하는 것과 연관된 제1 예측 모드를 지시하는 제1 플래그의 값을 결정하는 단계; 픽처 정보를 인코딩하는 것과 연관된 제2 예측 모드를 지시하는 제2 플래그의 값을 결정하는 단계; 및 상기 픽처 정보 및 상기 제1 및 제2 플래그들 중 적어도 일부를 인코딩하여 인코딩된 비트스트림을 형성하는 단계를 포함하는 방법을 수반할 수 있고, 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시하고 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩된다.
일반적으로, 실시예의 다른 예는 코딩된 비트스트림에 포함된 제1 플래그를 디코딩하고 - 상기 제1 플래그는 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -; 상기 코딩된 비트스트림에 포함된 제2 플래그를 디코딩하고 - 상기 제2 플래그는 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -; 상기 제1 플래그 또는 상기 제2 플래그에 의해 지시된 코딩 모드에 기초하여 상기 코딩된 비트스트림에 포함된 인코딩된 픽처 정보를 디코딩하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있고; 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시한다.
일반적으로, 실시예의 다른 예는 픽처 정보를 인코딩하는 것과 연관된 제1 예측 모드를 지시하는 제1 플래그의 값을 결정하고; 픽처 정보를 인코딩하는 것과 연관된 제2 예측 모드를 지시하는 제2 플래그의 값을 결정하고; 상기 픽처 정보 및 상기 제1 및 제2 플래그들 중 적어도 일부를 인코딩하여 인코딩된 비트스트림을 형성하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있고, 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시하고 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩된다.
일반적으로, 실시예의 다른 예는 인코딩된 픽처 정보를 포함하도록 포맷팅된 비트스트림을 수반할 수 있고, 상기 인코딩된 픽처 정보는 본 개시내용에 따른 방법들의 실시예들의 예들 중 어느 하나 이상에 기초하여 픽처 정보를 처리하는 것에 의해 인코딩된다.
일반적으로, 실시예의 하나 이상의 다른 예는 또한 본 명세서에서 기술된 방법들 또는 장치에 따라 비디오 데이터와 같은 픽처 정보를 인코딩 또는 디코딩하기 위한 명령어들이 저장되어 있는, 컴퓨터 판독가능 저장 매체, 예를 들어, 비휘발성 컴퓨터 판독가능 저장 매체를 제공할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는, 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 본 명세서에서 기술된 실시예들의 하나 이상의 예에 따른 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품을 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 실행가능한 프로그램 명령어들을 실행하는 컴퓨터로 하여금 본 명세서에서 기술된 실시예들의 하나 이상의 예에 따른 방법을 수행하게 하는 상기 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체를 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에서 기술된 실시예의 어느 하나 이상의 예에 따라 생성된 데이터를 포함하는 신호를 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에서 기술된 실시예들의 예들 중 어느 하나 이상의 예에 따라 생성된 구문 요소들 및 인코딩된 이미지 정보를 포함하도록 포맷팅된 비트스트림을 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에서 기술된 방법들 또는 장치에 따라 생성된 비트스트림이 저장되어 있는 컴퓨터 판독가능 저장 매체를 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에서 기술된 방법들 또는 장치에 따라 생성된 비트스트림 또는 신호를 송신 또는 수신하는 것을 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에서 기술된 실시예들의 예들 중 어느 하나 이상의 예에 따른 장치; 및 (i) 신호를 수신하도록 구성된 안테나 - 상기 신호는 이미지 정보를 나타내는 데이터를 포함함 -, (ii) 상기 수신된 신호를 상기 이미지 정보를 나타내는 데이터를 포함하는 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 및 (iii) 상기 이미지 정보로부터 이미지를 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는 디바이스를 수반할 수 있다.
일반적으로, 실시예의 적어도 하나의 예는 본 명세서에서 기술된 바와 같은 디바이스를 수반할 수 있고, 상기 디바이스는 텔레비전, 텔레비전 신호 수신기, 셋톱 박스, 게이트웨이 디바이스, 모바일 디바이스, 휴대폰, 태블릿, 또는 다른 전자 디바이스 중 하나를 포함한다.
일반적으로, 실시예의 다른 예는
픽처 정보를 인코딩하는 것과 연관된 제1 예측 모드를 지시하는 제1 플래그의 값을 결정하고; 픽처 정보를 인코딩하는 것과 연관된 제2 예측 모드를 지시하는 제2 플래그의 값을 결정하고; 상기 픽처 정보 및 상기 제1 및 제2 플래그들 중 적어도 일부를 인코딩하여 인코딩된 비트스트림을 형성하도록 구성된 하나 이상의 프로세서를 포함하는 장치를 수반할 수 있고, 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시하고 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩된다.
일반적으로, 이 문서에서 설명되고 고려되는 실시예들의 예들은 많은 상이한 형태들로 구현될 수 있다. 위에 기술된 도 1 및 도 2와 아래에 기술되는 도 15는 일부 실시예들을 제공하지만, 다른 실시예들이 고려되고 도 1, 도 2 및 도 15의 논의는 구현들의 폭을 제한하지 않는다. 적어도 하나의 실시예는 일반적으로 비디오 인코딩 및/또는 디코딩과 관련된 예를 제공하고, 적어도 하나의 다른 실시예는 일반적으로 생성되거나 인코딩된 비트스트림 또는 신호를 송신하는 것과 관련된다. 이들 및 다른 실시예들은 방법, 장치, 기술된 방법들 중 임의의 방법에 따라 비디오 데이터를 인코딩 또는 디코딩하기 위한 명령어들이 저장되어 있는 컴퓨터 판독가능 저장 매체, 및/또는 기술된 방법들 중 임의의 방법에 따라 생성된 비트스트림 또는 신호가 저장되어 있는 컴퓨터 판독가능 저장 매체로서 구현될 수 있다.
본 개시내용에서는 HDR(high dynamic range, 하이 다이내믹 레인지) 및 SDR(standard dynamic range, 표준 다이내믹 레인지)이라는 용어들이 사용된다. 해당 용어들은 종종 본 기술분야의 통상의 기술자들에게 다이내믹 레인지의 특정 값들을 전달한다. 그러나, HDR에 대한 언급은 "더 높은 다이내믹 레인지"를 의미하는 것으로 이해되고 SDR에 대한 언급은 "더 낮은 다이내믹 레인지"를 의미하는 것으로 이해되는 추가 실시예들도 의도된다. 그러한 추가 실시예들은 "하이 다이내믹 레인지" 및 "표준 다이내믹 레인지"라는 용어들과 종종 연관될 수도 있는 다이내믹 레인지의 임의의 특정 값에 의해 제한되지 않는다.
다양한 방법들이 본 명세서에서 기술되고, 그 방법들 각각은 기술된 방법을 달성하기 위한 하나 이상의 단계 또는 액션을 포함한다. 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 수정되거나 조합될 수 있다.
이 문서에서 기술된 다양한 방법들 및 다른 양태들은 모듈들, 예를 들어, 도 1에 도시된 인코더(100)와 같은 비디오 인코더의 모듈들(170 및/또는 175) 및/또는 도 2에 도시된 비디오 디코더(200)의 모션 보상 모듈(275)과 같은 모션 추정 및/또는 보상 모듈들을 수정하기 위해 사용될 수 있다. 더욱이, 본 양태들은 VVC 또는 HEVC에 제한되지 않고, 예를 들어, 다른 표준들 및 권고들 - 이전부터 존재하는 것이든 미래에 개발되는 것이든 관계없이 -, 및 임의의 그러한 표준들 및 권고들(VVC 및 HEVC를 포함)의 연장판들에 적용될 수 있다. 달리 지시되거나, 기술적으로 제외되지 않는 한, 이 문서에서 기술된 양태들은 개별적으로 또는 조합하여 사용될 수 있다.
예를 들어, 본 문서에서는 다양한 수치 값들이 사용된다. 그 특정 값들은 예시를 위한 것이고 기술된 양태들은 이들 특정 값으로 제한되지 않는다.
도 15는 다양한 양태들 및 실시예들이 구현될 수 있는 시스템의 예의 블록도를 예시한다. 시스템(1000)은 아래에 기술되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있고 이 문서에서 기술된 양태들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은, 개인용 컴퓨터들, 랩톱 컴퓨터들, 스마트폰들, 태블릿 컴퓨터들, 디지털 멀티미디어 셋톱 박스들, 디지털 텔레비전 수신기들, 개인용 비디오 녹화 시스템들, 연결된 가전 제품들, 및 서버들과 같은 다양한 전자 디바이스들을 포함하지만, 이에 제한되지는 않는다. 시스템(1000)의 요소들은, 단독으로 또는 조합하여, 단일 집적 회로, 다수의 IC들, 및/또는 개별 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(1000)의 처리 및 인코더/디코더 요소들은 다수의 IC들 및/또는 개별 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(1000)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해 다른 유사한 시스템들에, 또는 다른 전자 디바이스들에 통신 가능하게 결합된다. 다양한 실시예들에서, 시스템(1000)은 이 문서에서 기술된 양태들 중 하나 이상을 구현하도록 구성된다.
시스템(1000)은, 예를 들어, 이 문서에서 기술된 다양한 양태들을 구현하기 위해 그 안에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1010)를 포함한다. 프로세서(1010)는 임베디드 메모리, 입력 출력 인터페이스, 및 본 기술분야에 알려진 다양한 다른 회로들을 포함할 수 있다. 시스템(1000)은 적어도 하나의 메모리(1020)(예를 들어, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(1000)은 비휘발성 메모리 및/또는 EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이에 제한되지는 않는 휘발성 메모리를 포함할 수 있는 저장 디바이스(1040)를 포함한다. 저장 디바이스(1040)는, 비제한적인 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스, 및/또는 네트워크 액세스 가능한 저장 디바이스를 포함할 수 있다.
시스템(1000)은, 예를 들어, 데이터를 처리하여 인코딩된 비디오 또는 디코딩된 비디오를 제공하도록 구성된 인코더/디코더 모듈(1030)을 포함하고, 인코더/디코더 모듈(1030)은 그 자체의 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(1030)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 다를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(1030)은 시스템(1000)의 개별 요소로서 구현될 수 있거나, 본 기술분야의 통상의 기술자들에게 알려진 바와 같이 하드웨어 및 소프트웨어의 조합으로서 프로세서(1010) 내에 통합될 수 있다.
이 문서에서 기술된 다양한 양태들을 수행하기 위해 프로세서(1010) 또는 인코더/디코더(1030)에 로딩될 프로그램 코드는 저장 디바이스(1040)에 저장될 수 있고 후속하여 프로세서(1010)에 의한 실행을 위해 메모리(1020)에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(1010), 메모리(1020), 저장 디바이스(1040), 및 인코더/디코더 모듈(1030) 중 하나 이상은 이 문서에서 기술된 프로세스들의 수행 동안 다양한 항목들 중 하나 이상을 저장할 수 있다. 그러한 저장된 항목들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 일부, 비트스트림 또는 신호, 행렬들, 변수들, 및 방정식들, 공식들, 연산들, 및 연산 논리의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이에 제한되지는 않는다.
여러 실시예들에서, 프로세서(1010) 및/또는 인코더/디코더 모듈(1030) 내부의 메모리가 명령어들을 저장하고 인코딩 또는 디코딩 동안 필요한 처리를 위한 작업 메모리를 제공하기 위해 사용된다. 그러나, 다른 실시예들에서, 처리 디바이스 외부의 메모리(예를 들어, 처리 디바이스는 프로세서(1010) 또는 인코더/디코더 모듈(1030)일 수 있음)가 이들 기능 중 하나 이상을 위해 사용된다. 외부 메모리는 메모리(1020) 및/또는 저장 디바이스(1040), 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 여러 실시예들에서, 외부 비휘발성 플래시 메모리가 텔레비전의 운영 체제를 저장하기 위해 사용된다. 적어도 하나의 실시예에서, RAM과 같은 고속 외부 동적 휘발성 메모리가 MPEG-2, HEVC, 또는 VVC(Versatile Video Coding)와 같은 비디오 코딩 및 디코딩 동작들을 위한 작업 메모리로서 사용된다.
시스템(1000)의 요소들에 대한 입력은 블록(1130)에 지시된 바와 같은 다양한 입력 디바이스들을 통해 제공될 수 있다. 그러한 입력 디바이스들은, (i) 예를 들어, 방송사에 의해 방송을 통해 송신된 RF 신호를 수신하는 RF 부분, (ii) 복합 입력 단자, (iii) USB 입력 단자, 및/또는 (iv) HDMI 입력 단자를 포함하지만, 이에 제한되지는 않는다.
다양한 실시예들에서, 블록(1130)의 입력 디바이스들은 본 기술분야에 알려진 바와 같은 연관된 각자의 입력 처리 요소들을 갖는다. 예를 들어, RF 부분은 (i) 원하는 주파수를 선택하는 것(신호를 선택하는 것, 또는 신호를 주파수들의 대역으로 대역 제한하는 것이라고도 지칭됨), (ii) 선택된 신호를 하향 변환하는 것, (iii) 특정 실시예들에서 채널이라고 지칭될 수 있는 (예를 들어) 신호 주파수 대역을 선택하기 위해 더 좁은 대역의 주파수들로 다시 대역 제한하는 것, (iv) 하향 변환되고 대역 제한된 신호를 복조하는 것, (v) 오류 정정을 수행하는 것, 및 (vi) 데이터 패킷들의 원하는 스트림을 선택하기 위해 역다중화하는 것을 위한 요소들과 연관될 수 있다. 다양한 실시예의 RF 부분은 이들 기능을 수행하기 위한 하나 이상의 요소, 예를 들어, 주파수 선택기들, 신호 선택기들, 대역 제한기들, 채널 선택기들, 필터들, 하향 변환기들, 복조기들, 오류 정정기들, 및 역다중화기들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 기저대역에 가까운 주파수)로 또는 기저대역으로 하향 변환하는 것을 포함하여, 이들 기능 중 다양한 것들을 수행하는 튜너를 포함할 수 있다. 하나의 셋톱 박스 실시예에서, RF 부분 및 그와 연관된 입력 처리 요소는 유선(예를 들어, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 필터링, 하향 변환, 및 원하는 주파수 대역으로 다시 필터링하는 것에 의해 주파수 선택을 수행한다. 다양한 실시예들은 위에 기술된(및 다른) 요소들의 순서를 재배열하고, 이들 요소 중 일부를 제거하고, 및/또는 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소들을 추가하는 것은 기존 요소들 사이에 요소들을 삽입하는 것, 예를 들어, 증폭기들 및 아날로그-디지털 변환기를 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
추가적으로, USB 및/또는 HDMI 단자들은 USB 및/또는 HDMI 연결들을 통해 시스템(1000)을 다른 전자 디바이스들에 연결하기 위한 각자의 인터페이스 프로세서들을 포함할 수 있다. 예를 들어, 별도의 입력 처리 IC 내에서 또는 프로세서(1010) 내에서 입력 처리의 다양한 양태들, 예를 들어, 리드-솔로몬 오류 정정이 구현될 수 있다는 것을 이해해야 한다. 유사하게, 별도의 인터페이스 IC들 내에서 또는 프로세서(1010) 내에서 USB 또는 HDMI 인터페이스 처리의 양태들이 구현될 수 있다. 복조되고, 오류 정정되고, 역다중화된 스트림은 출력 디바이스 상의 프레젠테이션을 위해 데이터스트림을 처리하기 위한 다양한 처리 요소들, 예를 들어, 프로세서(1010), 및 메모리 및 저장 요소와 조합하여 동작하는 인코더/디코더(1030)에 제공된다.
시스템(1000)의 다양한 요소들은 통합 하우징 내에 제공될 수 있고, 통합 하우징 내에서, 다양한 요소들은 적합한 연결 배열(1140), 예를 들어, I2C 버스를 포함하는, 본 기술분야에 알려진 바와 같은 내부 버스, 와이어링, 및 프린팅 회로 보드를 사용하여 상호 연결되고 그것들 사이에서 데이터를 송신할 수 있다.
시스템(1000)은 통신 채널(1060)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(1050)를 포함한다. 통신 인터페이스(1050)는 통신 채널(1060)을 통해 데이터를 송신하고 수신하도록 구성된 트랜시버를 포함할 수 있지만, 이에 제한되지는 않는다. 통신 인터페이스(1050)는 모뎀 또는 네트워크 카드를 포함할 수 있지만, 이에 제한되지는 않고 통신 채널(1060)은, 예를 들어, 유선 및/또는 무선 매체 내에서 구현될 수 있다.
다양한 실시예들에서, IEEE 802.11과 같은 Wi-Fi 네트워크를 사용하여 데이터가 시스템(1000)으로 스트리밍된다. 이들 실시예의 Wi-Fi 신호는 Wi-Fi 통신에 적합한 통신 채널(1060) 및 통신 인터페이스(1050)를 통해 수신된다. 이들 실시예의 통신 채널(1060)은 전형적으로 스트리밍 애플리케이션 및 다른 오버톱 통신을 허용하기 위해 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 연결된다. 다른 실시예들은 입력 블록(1130)의 HDMI 연결을 통해 데이터를 전달하는 셋톱 박스를 사용하여 시스템(1000)에 스트리밍된 데이터를 제공한다. 또 다른 실시예들은 입력 블록(1130)의 RF 연결을 사용하여 시스템(1000)에 스트리밍된 데이터를 제공한다.
시스템(1000)은, 디스플레이(1100), 스피커들(1110), 및 다른 주변 디바이스들(1120)를 포함하는, 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다른 주변 디바이스들(1120)은, 다양한 실시예들에서, 독립형 DVR, 디스크 플레이어, 스테레오 시스템, 조명 시스템, 및 시스템(1000)의 출력에 기초한 기능을 제공하는 다른 디바이스들 중 하나 이상을 포함한다. 다양한 실시예들에서, 제어 신호들은 AV.Link, CEC, 또는 사용자 개입과 함께 또는 사용자 개입 없이 디바이스 대 디바이스 제어를 가능하게 하는 다른 통신 프로토콜과 같은 시그널링을 사용하여 시스템(1000)과 디스플레이(1100), 스피커들(1110), 또는 다른 주변 디바이스들(1120) 사이에서 통신된다. 출력 디바이스들은 각자의 인터페이스들(1070, 1080, 및 1090)을 통한 전용 연결들을 통해 시스템(1000)에 통신 가능하게 결합될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(1050)를 통해 통신 채널(1060)을 사용하여 시스템(1000)에 연결될 수 있다. 디스플레이(1100) 및 스피커들(1110)은 전자 디바이스, 예를 들어, 텔레비전에서 시스템(1000)의 다른 컴포넌트들과 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(1070)는 디스플레이 드라이버, 예를 들어, 타이밍 컨트롤러(T Con) 칩을 포함한다.
디스플레이(1100) 및 스피커(1110)는 대안적으로, 예를 들어, 입력(1130)의 RF 부분이 별도의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상과 분리될 수 있다. 디스플레이(1100) 및 스피커(1110)가 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함하는, 전용 출력 연결들을 통해 제공될 수 있다.
실시예들은 프로세서(1010)에 의해 구현되는 컴퓨터 소프트웨어에 의해 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 실시예들은 하나 이상의 집적 회로에 의해 구현될 수 있다. 메모리(1020)는 기술 환경에 적합한 임의의 유형일 수 있고, 비제한적인 예들로서, 광학 메모리 디바이스들, 자기 메모리 디바이스들, 반도체 기반 메모리 디바이스들, 고정 메모리, 및 이동 가능한 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(1010)는 기술 환경에 적합한 임의의 유형일 수 있고, 비제한적인 예들로서, 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 멀티-코어 아키텍처에 기초한 프로세서들 중 하나 이상을 포함할 수 있다.
본 개시내용의 전체에 걸쳐, 다양한 구현들이 디코딩을 수반한다. 본 출원에서 사용되는, "디코딩"은, 예를 들어, 디스플레이에 적합한 최종 출력을 생성하기 위해 수신된 인코딩된 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 디코더에 의해 전형적으로 수행되는 프로세스들, 예를 들어, 엔트로피 디코딩, 역양자화, 역변환, 및 차동 디코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에서 기술된 다양한 구현들의 디코더에 의해 수행되는 프로세스들, 예를 들어, 타일링된(패킹된) 픽처로부터 픽처를 추출하고, 사용할 업샘플 필터를 결정하고 그 후 픽처를 업샘플링하고, 픽처를 다시 그것의 의도된 방향으로 뒤집은 것을 포함한다.
추가 예로서, 일 실시예에서 "디코딩"은 엔트로피 디코딩만을 지칭하고, 다른 실시예에서 "디코딩"은 차동 디코딩만을 지칭하고, 다른 실시예에서 "디코딩"은 엔트로피 디코딩과 차동 디코딩의 조합을 지칭한다. "디코딩 프로세스"라는 문구가 동작들의 서브세트를 구체적으로 지칭하도록 의도되었는지 또는 일반적으로 더 넓은 디코딩 프로세스를 지칭하도록 의도되었는지는 특정 설명의 컨텍스트에 기초하여 명확할 것이고 본 기술분야의 통상의 기술자들에 의해 잘 이해될 것이라고 생각된다.
또한, 다양한 구현들이 인코딩을 수반한다. "디코딩"에 대한 위의 논의와 유사한 방식으로, 본 출원에서 사용되는 "인코딩"은, 예를 들어, 인코딩된 비트스트림 또는 신호를 생성하기 위해 입력 비디오 시퀀스에 대해 수행되는 프로세스들의 전부 또는 일부를 포함할 수 있다. 다양한 실시예들에서, 그러한 프로세스들은 인코더에 의해 전형적으로 수행되는 프로세스들, 예를 들어, 파티셔닝, 차동 인코딩, 변환, 양자화, 및 엔트로피 인코딩 중 하나 이상을 포함한다. 다양한 실시예들에서, 그러한 프로세스들은 또한, 또는 대안적으로, 본 출원에서 기술된 다양한 구현들의 인코더에 의해 수행되는 프로세스들을 포함한다.
추가 예들로서, 일 실시예에서 "인코딩"은 엔트로피 인코딩만을 지칭하고, 다른 실시예에서 "인코딩"은 차동 인코딩만을 지칭하고, 다른 실시예에서 "인코딩"은 차동 인코딩과 엔트로피 인코딩의 조합을 지칭한다. "인코딩 프로세스"이라는 문구가 동작들의 서브세트를 구체적으로 지칭하도록 의도되었는지 또는 일반적으로 더 넓은 인코딩 프로세스를 지칭하도록 의도되었는지는 특정 설명의 컨텍스트에 기초하여 명확할 것이고 본 기술분야의 통상의 기술자들에 의해 잘 이해될 것이라고 생각된다.
본 명세서에서 사용되는 구문 요소들은 설명적인 용어들이라는 점에 유의한다. 그에 따라, 그것들은 다른 구문 요소 이름들의 사용을 제외하지 않는다.
도면이 흐름도로서 제시될 때, 그것은 대응하는 장치의 블록도도 제공한다는 것을 이해해야 한다. 유사하게, 도면이 블록도로서 제시될 때, 그것은 대응하는 방법/프로세스의 흐름도도 제공한다는 것을 이해해야 한다.
다양한 실시예들이 레이트 왜곡 최적화(rate distortion optimization)를 언급한다. 특히, 인코딩 프로세스 동안, 종종 계산 복잡도의 제약을 고려하여, 레이트와 왜곡 사이의 균형 또는 절충이 보통 고려된다. 레이트 왜곡 최적화는 보통 레이트와 왜곡의 가중된 합계인 레이트 왜곡 함수를 최소화하는 것으로서 공식화된다. 레이트 왜곡 최적화 문제를 해결하기 위한 다양한 접근법들이 있다. 예를 들어, 이 접근법들은, 고려되는 모든 모드 또는 코딩 파라미터 값들을 포함하는 모든 인코딩 옵션들에 대한 광범위한 테스트와 함께, 코딩 및 디코딩 후 복원된 신호의 그들의 코딩 비용 및 관련 왜곡에 대한 완전한 평가에 기초할 수 있다. 특히, 복원된 신호가 아니라, 예측 또는 예측 잔차 신호에 기초한 근사 왜곡의 계산과 함께, 인코딩 복잡도를 줄이기 위해 더 빠른 접근법들이 사용될 수도 있다. 가능한 인코딩 옵션들 중 일부에 대해서만 근사 왜곡을 사용하고, 다른 인코딩 옵션들에 대해서는 완전한 왜곡을 사용하는 것과 같이, 이들 두 가지 접근법의 혼합이 사용될 수도 있다. 다른 접근법들은 가능한 인코딩 옵션들의 서브세트만 평가한다. 더 일반적으로는, 많은 접근법들이 최적화를 수행하기 위해 각종 기법들 중 하나를 이용하지만, 최적화가 반드시 코딩 비용과 관련 왜곡 둘 다에 대한 완전한 평가는 아니다.
본 명세서에서 기술된 구현들 및 양태들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현의 컨텍스트에서만 논의(예를 들어, 방법으로서만 논의)되더라도, 논의된 특징들의 구현은 다른 형태들(예를 들어, 장치 또는 프로그램)로 구현될 수도 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 프로세서에서 구현될 수 있고, 프로세서는, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래머블 로직 디바이스를 포함하는, 일반적으로 처리 디바이스들을 언급한다. 프로세서들은, 예를 들어, 컴퓨터들, 휴대폰들, 휴대용/개인용 디지털 단말기들("PDA들"), 및 최종 사용자들 간의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 또한 포함한다.
"일 실시예" 또는 "일 실시예" 또는 "일 구현" 또는 "구현", 뿐만 아니라 이들의 다른 변형들에 대한 언급은 실시예와 관련하여 기술된 특정 특징, 구조, 특성 등이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 이 문서의 전체에 걸쳐 다양한 곳들에 출현하는 "일 실시예에서" 또는 "실시예에서" 또는 "일 구현에서" 또는 "구현에서"라는 문구, 뿐만 아니라 임의의 다른 변형들의 출현들은 반드시 모두가 동일 실시예를 언급하는 것은 아니다.
추가적으로, 이 문서는 다양한 정보들을 "획득하는 것"을 언급할 수 있다. 정보를 획득하는 것은, 예를 들어, 정보를 결정하는 것, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 이 문서는 다양한 정보들에 "액세스하는 것"을 언급할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하는 것, 정보를 검색하는 것(예를 들어, 메모리로부터), 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
추가적으로, 이 문서는 다양한 정보들을 "수신하는 것"을 언급할 수 있다. 수신하는 것은, "액세스하는 것"과 마찬가지로, 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 정보를 검색하는 것(예를 들어, 메모리로부터) 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 전형적으로, 예를 들어, 정보를 저장하는 것, 정보를 처리하는 것, 정보를 송신하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 소거하는 것, 정보를 계산하는 것, 정보를 결정하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것과 같은 동작들 동안 어떤 식으로든 관련된다.
다음의 "/", "및/또는", 및 "중 적어도 하나"의 사용은, 예를 들어, "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우에, 첫 번째 열거된 옵션 (A)만의 선택, 또는 두 번째 열거된 옵션 (B)만의 선택, 또는 양쪽 옵션 (A 및 B)의 선택을 포함하도록 의도되어 있다는 점을 알아야 한다. 추가 예로서, "A, B, 및/또는 C" 및 "A, B, 및 C 중 적어도 하나"의 경우에, 그러한 문구는 첫 번째 열거된 옵션 (A)만의 선택, 또는 두 번째 열거된 옵션 (B)만의 선택, 또는 세 번째 열거된 옵션 (C)만의 선택, 또는 첫 번째 및 두 번째 열거된 옵션들 (A 및 B)만의 선택, 또는 첫 번째 및 세 번째 열거된 옵션들 (A 및 C)만의 선택, 또는 두 번째 및 세 번째 열거된 옵션들 (B 및 C)만의 선택, 또는 3개의 모든 옵션 (A 및 B 및 C)의 선택을 포함하도록 의도되어 있다. 이는, 이 기술분야 및 관련 기술분야의 통상의 기술자에게 명백한 바와 같이, 열거되어 있는 만큼의 수의 항목들에 대해 연장될 수 있다.
또한, 본 명세서에서 사용되는, "신호"라는 단어는, 특히, 대응하는 디코더에 무엇인가를 지시하는 것을 언급한다. 예를 들어, 특정 실시예들에서 인코더는 세련(refinement)을 위해 복수의 파라미터 중 특정 파라미터를 시그널링한다. 이렇게 하여, 실시예에서 동일한 파라미터가 인코더 측과 디코더 측 양쪽 모두에서 사용된다. 따라서, 예를 들어 ,인코더는 디코더가 동일한 특정 파라미터를 사용할 수 있도록 특정 파라미터를 디코더에 송신할 수 있다(명시적 시그널링). 반대로, 디코더가 이미 특정 파라미터뿐만 아니라 다른 파라미터들을 가지고 있다면, 단순히 디코더가 특정 파라미터를 알고 선택할 수 있게 하기 위해 송신 없이 시그널링이 사용될 수 있다(암시적 시그널링). 임의의 실제 기능들의 송신을 피하는 것에 의해, 다양한 실시예들에서 비트 절약이 실현된다. 시그널링은 각종 방식으로 달성될 수 있다는 점을 알아야 한다. 예를 들어, 다양한 실시예들에서 대응하는 디코더에 정보를 시그널링하기 위해 하나 이상의 구문 요소, 플래그 등이 사용된다. 앞의 내용은 "signal"이라는 단어의 동사 형태와 관련이 있지만, "signal"이라는 단어는 본 명세서에서 명사로도 사용될 수 있다.
본 기술분야의 통상의 기술자에게 명백하겠지만, 구현들은, 예를 들어, 저장 또는 송신될 수 있는 정보를 전달하도록 포맷팅된 각종 신호를 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 기술된 구현들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 기술된 실시예의 비트스트림 또는 신호를 전달하도록 포맷팅될 수 있다. 그러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 무선 주파수 부분을 사용하여) 또는 기저대역 신호로서 포맷팅될 수 있다. 이 포맷팅은, 예를 들어, 데이터 스트림을 인코딩하고 인코딩된 데이터 스트림으로 반송파를 변조하는 것을 포함할 수 있다. 신호가 전달하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 알려진 바와 같이, 각종 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체에 저장될 수 있다.
다양한 실시예들이 기술되었다. 실시예들은 다음의 특징들 또는 엔티티들 중 임의의 것을, 단독으로 또는 임의의 조합으로, 다양한 상이한 청구 범주들 및 유형들에 걸쳐 포함할 수 있다.
Figure pct00001
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 시간 후보들을 포함하는 병합 리스트에 기초하여 적어도 하나의 병합 모드를 제공하는 것.
Figure pct00002
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 코딩 효율을 개선하는 방식으로, 모션 데이터 예측자들의 다양한 리스트들의 수 및 콘텐츠를 조직하는 것에 기초하여 적어도 하나의 병합 모드를 제공하는 것.
Figure pct00003
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 예를 들어, 주어진 모드에 대해 구성할 병합 후보의 수를 감소시키는 것에 의해, 디코더 측에서 최악의 경우를 개선하기 위해 복잡도를 감소시키는 것에 기초하여 제공하는 것.
Figure pct00004
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 서브-블록 플래그 코딩 및 아핀 플래그 코딩을 혼합하지 않는 것에 기초하여 아핀 모드의 코딩의 개선된 일관성을 갖는 것을 제공하는 것.
Figure pct00005
비디오를 처리하기 위한 인코더 및/또는 디코더에서, SbTMVP, 또는 TMVP, TMVP에 기초한 MMVD, 또는 TMVP에 기초한 CIIP, 또는 TMVP에 기초한 삼각형 중 하나 이상을 포함하는, 하나 이상의 시간 예측자를 포함하는 시간 병합 리스트에 기초하여 제공하는 것 - 여기서 이들 후보는 전통적인 병합 리스트로부터 제거됨으로써, 디코더에서 최악의 경우의 복잡도를 감소시킨다.
Figure pct00006
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 시간 병합 리스트에 포함되지 않은 적어도 하나의 시간 모드가 각자의 리스트(예를 들어, MMVD, CIIP, 삼각형)에 유지되는 것에 기초하여 제공하는 것.
Figure pct00007
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 각각의 리스트를 시간 예측자로부터 자유롭게 유지하기 위해 시간 병합 리스트에 포함되지 않은 적어도 하나의 시간 모드가 완전히 제거되는 것에 기초하여 제공하는 것.
Figure pct00008
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 서브-블록으로부터 SbTMVP를 추출하고 병합/스킵 모드와 AMVP 모드 사이에서 아핀 플래그의 코딩을 일관성 있게 만드는 것을 제공하는 것에 기초하여 제공하는 것.
Figure pct00009
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 서브-블록 코딩 및 아핀 플래그 코딩을 분리하는 것에 기초하여 제공하는 것.
Figure pct00010
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 다음을 포함하는 시간 병합 리스트를 디코딩하기 위한 수정된 프로세스에 기초하여 제공하는 것:
Figure pct00011
mmvd 모드 플래그 디코딩 후에, mmvd 플래그가 거짓이면 시간 모드 플래그가 디코딩되고,
Figure pct00012
시간 모드가 참이면, 시간 후보 인덱스가 디코딩되고,
Figure pct00013
시간 모드가 참이 아니면, 아핀 모드 플래그가 디코딩되고, 병합 리스트로부터 SbTMVP 후보가 제거된 것에 기초하여 아핀 플래그가 서브-블록 모드 플래그를 대체하고, 병합 모드에서 그리고 AMVP 모드에서의 아핀 플래그 코딩은 일관성 있는 방식으로 동일한 CABAC 빈들을 사용한다.
Figure pct00014
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 시간 병합 리스트의 다양한 배치들을 제공하는 것에 기초하여 제공하는 것 - 여기서 시간 병합 리스트가 또한 삽입될 수 있다:
Figure pct00015
첫 번째 병합 리스트로서, 또는
Figure pct00016
정규 병합 리스트 후에, 또는
Figure pct00017
아핀 병합 리스트 후에, 또는
Figure pct00018
ciip 병합 리스트 후에, 또는
Figure pct00019
삼각형 병합 리스트 후에 - 여기서 삼각형 모드가 거짓이면 시간 모드는 참으로 추론된다.
Figure pct00020
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 잠재적 후보들을 병합 후보들의 최대수까지 고정된 순서로 추가하는 것에 의해 시간 후보들의 리스트가 생성되는 것에 기초하여 제공하는 것 - 그 후 사용할 시간 후보들의 리스트 내의 위치를 지시하는 인덱스가 디코더에 송신되고, 여기서 잠재적 후보들은
Figure pct00021
SbTMVP 후보, 또는
Figure pct00022
TMVP 후보, 또는
Figure pct00023
시간 CIIP 후보 중 하나 이상을 포함한다.
Figure pct00024
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 다음 중 적어도 하나를 포함하여 생성된 병합 리스트에 기초하여 제공하는 것:
Figure pct00025
MMVD 및 삼각형 모드에 대한 TMVP 후보가 병합 리스트에 추가될 수 있음을 지시하는 시그널링, 또는
Figure pct00026
MMVD, 및/또는 삼각형, 및/또는 CIIP에 대한 TMVP 후보가 각자의 원래 리스트들에 유지되고, 또는
Figure pct00027
MMVD, 및/또는 삼각형, 및/또는 CIIP에 대한 TMVP 후보가 완전히 제거되어, 다른 모든 리스트들이 시간 후보들을 갖지 못하게 하고, 또는
Figure pct00028
MMVD, 및/또는 삼각형, 및/또는 CIIP에 대한 TMVP 후보가 완전히 제거되어, 다른 모든 리스트들이 시간 후보들을 갖지 못하게 하고, 여기서 복원된 아핀 후보들은 아핀 병합 리스트를 시간 모션 벡터들로부터 명확하게 유지하기 위해 시간 모션 벡터를 사용하지 않고, 또는
Figure pct00029
순수하게 시간 복원된 아핀 후보가 시간 리스트에 추가된다.
Figure pct00030
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 디코더 프로세스의 복잡도를 감소시키는 것에 기초하여 제공하는 것 - 여기서 주어진 병합 리스트가 감소된 최악의 경우 복잡도를 갖는다.
Figure pct00031
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 디코더 프로세스의 복잡도를 감소시키는 것에 기초하여 제공하는 것 - 여기서 주어진 병합 리스트가 감소된 최악의 경우 복잡도를 갖는 것은 하나 이상의 병합 리스트의 길이가 감소되는 것을 포함한다.
Figure pct00032
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 디코더 프로세스의 복잡도를 감소시키는 것에 기초하여 제공하는 것 - 여기서 주어진 병합 리스트가 감소된 최악의 경우 복잡도를 갖는 것은 하나 이상의 병합 리스트의 길이가 감소되는 것을 포함하고, 주어진 병합 리스트는 정규, mmvd, 시간, 아핀, ciip, 또는 삼각형 중 적어도 하나를 포함한다.
Figure pct00033
비디오를 처리하기 위한 인코더 및/또는 디코더에서, 병합 리스트의 각각의 후보를 구성하는 것과 연관된 대역폭이 감소되는 것에 기초하여 제공하는 것 - 여기서 시간 메모리 버퍼에 액세스할 필요 없이, 모든 공간 후보들이 별도의 리스트에 있다.
Figure pct00034
인코더가 본 명세서에서 기술된 바와 같은 병합 후보 리스트에 기초하여 적어도 하나의 병합 모드를 제공할 수 있게 하는 시그널링 구문 요소들에 삽입하는 것.
Figure pct00035
이들 구문 요소에 기초하여, 디코더에서 적용할 병합 모드를 선택하는 것.
Figure pct00036
기술된 구문 요소들, 또는 이들의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호.
Figure pct00037
디코더가 인코더에 의해 사용되는 방식에 대응하는 방식으로 병합 모드를 제공할 수 있게 하는 시그널링 구문 요소들에 삽입하는 것.
Figure pct00038
기술된 구문 요소들, 또는 이들의 변형들 중 하나 이상을 포함하는 비트스트림 또는 신호를 생성 및/또는 송신 및/또는 수신 및/또는 디코딩하는 것.
Figure pct00039
기술된 실시예들 중 임의의 것에 따라 비디오 인코딩 및/또는 디코딩을 수행하는, 그리고 결과 이미지를 디스플레이하는(예를 들어, 모니터, 스크린, 또는 다른 유형의 디스플레이를 사용하여) TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
Figure pct00040
인코딩된 이미지를 포함하는 신호를 수신하기 위해 채널을 튜닝하는(예를 들어, 튜너를 사용하여), 그리고 기술된 실시예들 중 임의의 것에 따라 비디오 인코딩 및/또는 디코딩을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
Figure pct00041
인코딩된 이미지를 포함하는 신호를 방송을 통해 수신하는(예를 들어, 안테나를 사용하여), 그리고 기술된 실시예들 중 임의의 것에 따라 비디오 인코딩 및/또는 디코딩을 수행하는 TV, 셋톱 박스, 휴대폰, 태블릿, 또는 다른 전자 디바이스.
Figure pct00042
컴퓨터에 의해 실행될 때 기술된 실시예들 중 임의의 것에 따라 비디오 인코딩 및/또는 디코딩을 구현하는 프로그램 코드를 저장하는 컴퓨터 프로그램 제품.
Figure pct00043
실행가능한 프로그램 명령어들을 실행하는 컴퓨터로 하여금 기술된 실시예들 중 임의의 것에 따라 비디오 인코딩 및/또는 디코딩을 구현하게 하는 상기 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체.
다양한 다른 일반화된 실시예들뿐만 아니라 특정화된 실시예들도 본 개시내용의 전체에 걸쳐 지원되고 고려된다.
Figure pct00044
Figure pct00045

Claims (10)

  1. 방법으로서,
    코딩된 비트스트림에 포함된 제1 플래그를 디코딩하는 단계 - 상기 제1 플래그는 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -;
    상기 코딩된 비트스트림에 포함된 제2 플래그를 디코딩하는 단계 - 상기 제2 플래그는 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -; 및
    상기 제1 플래그 또는 상기 제2 플래그에 의해 지시된 코딩 모드에 기초하여 상기 코딩된 비트스트림에 포함된 인코딩된 픽처 정보를 디코딩하는 단계를 포함하고;
    상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고,
    상기 제2 플래그는 인터 아핀 예측 모드를 지시하는, 방법.
  2. 방법으로서,
    픽처 정보를 인코딩하는 것과 연관된 제1 예측 모드를 지시하는 제1 플래그의 값을 결정하는 단계;
    픽처 정보를 인코딩하는 것과 연관된 제2 예측 모드를 지시하는 제2 플래그의 값을 결정하는 단계; 및
    상기 픽처 정보 및 상기 제1 및 제2 플래그들 중 적어도 일부를 인코딩하여 인코딩된 비트스트림을 형성하는 단계를 포함하고, 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시하고 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되는, 방법.
  3. 장치로서,
    코딩된 비트스트림에 포함된 제1 플래그를 디코딩하고 - 상기 제1 플래그는 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -;
    상기 코딩된 비트스트림에 포함된 제2 플래그를 디코딩하고 - 상기 제2 플래그는 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩됨 -;
    상기 제1 플래그 또는 상기 제2 플래그에 의해 지시된 코딩 모드에 기초하여 상기 코딩된 비트스트림에 포함된 인코딩된 픽처 정보를 디코딩하도록 구성된 하나 이상의 프로세서를 포함하고;
    상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고,
    상기 제2 플래그는 인터 아핀 예측 모드를 지시하는, 장치.
  4. 장치로서,
    픽처 정보를 인코딩하는 것과 연관된 제1 예측 모드를 지시하는 제1 플래그의 값을 결정하고;
    픽처 정보를 인코딩하는 것과 연관된 제2 예측 모드를 지시하는 제2 플래그의 값을 결정하고; 및
    상기 픽처 정보 및 상기 제1 및 제2 플래그들 중 적어도 일부를 인코딩하여 인코딩된 비트스트림을 형성하도록 구성된 하나 이상의 프로세서를 포함하고, 상기 제1 플래그는 서브블록 병합 예측 모드를 지시하고 제1 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되고, 상기 제2 플래그는 인터 아핀 예측 모드를 지시하고 제2 확률 모델에 기초한 CABAC 코딩을 사용하여 코딩되는, 장치.
  5. 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 제1항 또는 제2항에 따른 방법을 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품.
  6. 실행가능한 프로그램 명령어들을 실행하는 컴퓨터로 하여금 제1항 또는 제2항에 따른 방법을 수행하게 하는 상기 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체.
  7. 제2항의 방법에 따른 생성된 데이터를 포함하는 신호.
  8. 제2항의 방법에 따라 생성된 구문 요소들 및 인코딩된 이미지 정보를 포함하도록 포맷팅된 비트스트림.
  9. 디바이스로서,
    제3항 또는 제4항에 따른 장치; 및
    (i) 신호를 수신하도록 구성된 안테나 - 상기 신호는 이미지 정보를 나타내는 데이터를 포함함 -, (ii) 상기 수신된 신호를 상기 이미지 정보를 나타내는 데이터를 포함하는 주파수들의 대역으로 제한하도록 구성된 대역 제한기, 및 (iii) 상기 이미지 정보로부터 이미지를 디스플레이하도록 구성된 디스플레이 중 적어도 하나를 포함하는 디바이스.
  10. 제10항에 있어서, 상기 디바이스는 텔레비전, 텔레비전 신호 수신기, 셋톱 박스, 게이트웨이 디바이스, 모바일 디바이스, 휴대폰, 태블릿, 또는 다른 전자 디바이스 중 하나를 포함하는, 디바이스.
KR1020227002621A 2019-06-25 2020-06-23 비디오 인코딩 및 디코딩에서의 모션 벡터 예측 KR20220027173A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19305833.6 2019-06-25
EP19305833 2019-06-25
PCT/EP2020/067497 WO2020260280A1 (en) 2019-06-25 2020-06-23 Motion vector prediction in video encoding and decoding

Publications (1)

Publication Number Publication Date
KR20220027173A true KR20220027173A (ko) 2022-03-07

Family

ID=67437763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227002621A KR20220027173A (ko) 2019-06-25 2020-06-23 비디오 인코딩 및 디코딩에서의 모션 벡터 예측

Country Status (7)

Country Link
US (1) US20230018401A1 (ko)
EP (1) EP3991417A1 (ko)
JP (1) JP2022537746A (ko)
KR (1) KR20220027173A (ko)
CN (1) CN114450951A (ko)
BR (1) BR112021026310A2 (ko)
WO (1) WO2020260280A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020116456A1 (ja) * 2018-12-07 2020-06-11 シャープ株式会社 動画像復号装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140029670A1 (en) * 2012-07-27 2014-01-30 Motorola Mobility Llc Devices and methods for processing of partition mode in high efficiency video coding
US10129550B2 (en) * 2013-02-01 2018-11-13 Qualcomm Incorporated Inter-layer syntax prediction control
US9930363B2 (en) * 2013-04-12 2018-03-27 Nokia Technologies Oy Harmonized inter-view and view synthesis prediction for 3D video coding
US10148977B2 (en) * 2015-06-16 2018-12-04 Futurewei Technologies, Inc. Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
GB2577318B (en) * 2018-09-21 2021-03-10 Canon Kk Video coding and decoding
CN113170210A (zh) * 2018-10-10 2021-07-23 交互数字Vc控股公司 视频编码和解码中的仿射模式信令
WO2020108650A1 (en) * 2018-11-29 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Flag indication method in intra block copy mode
EP3923582A4 (en) * 2019-03-08 2022-06-08 Jvckenwood Corporation IMAGE CODING DEVICE, IMAGE CODING METHOD, IMAGE CODING PROGRAM, IMAGE DECODING DEVICE, IMAGE DECODING METHOD, AND IMAGE DECODING PROGRAM
JP7335365B2 (ja) * 2019-06-24 2023-08-29 エルジー エレクトロニクス インコーポレイティド 動きベクトル差分を利用した映像コーディング方法及び装置

Also Published As

Publication number Publication date
JP2022537746A (ja) 2022-08-29
BR112021026310A2 (pt) 2022-03-03
WO2020260280A1 (en) 2020-12-30
US20230018401A1 (en) 2023-01-19
EP3991417A1 (en) 2022-05-04
CN114450951A (zh) 2022-05-06

Similar Documents

Publication Publication Date Title
US20210377553A1 (en) Virtual pipeline for video encoding and decoding
CN113228676A (zh) 在合并列表中运动矢量预测量候选排序
US20210400276A1 (en) Quantization for video encoding and decoding
JP2022521893A (ja) ビデオの符号化および復号における動きベクトルの導出
WO2020132168A1 (en) Syntax for motion information signaling in video coding
WO2020061395A1 (en) Motion vector prediction in video encoding and decoding
KR20220047729A (ko) 비디오 인코딩 및 디코딩을 위한 움직임 벡터 처리
EP3815373A1 (en) Virtual temporal affine candidates
US20230018401A1 (en) Motion vector prediction in video encoding and decoding
JP2024513873A (ja) 切り替え可能な補間フィルタを用いる幾何学的分割
US11831872B2 (en) Video encoding and decoding using multiple transform selection
US11375202B2 (en) Translational and affine candidates in a unified list
WO2021122416A1 (en) Subblock merge candidates in triangle merge mode
EP3963886A1 (en) Chroma processing for video encoding and decoding
EP3878179A1 (en) Parameter grouping among plural coding units for video encoding and decoding
JP7506063B2 (ja) ビデオ符号化および復号のための複数のコーディングユニットの中でグループ化するパラメータ
US20210344925A1 (en) Block size based motion vector coding in affine mode
WO2021052792A1 (en) Coding mode information propagation for video coding
WO2021052804A1 (en) Secondary transform for fast video encoder

Legal Events

Date Code Title Description
N231 Notification of change of applicant