KR20240046631A - 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법 - Google Patents

비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법 Download PDF

Info

Publication number
KR20240046631A
KR20240046631A KR1020247010542A KR20247010542A KR20240046631A KR 20240046631 A KR20240046631 A KR 20240046631A KR 1020247010542 A KR1020247010542 A KR 1020247010542A KR 20247010542 A KR20247010542 A KR 20247010542A KR 20240046631 A KR20240046631 A KR 20240046631A
Authority
KR
South Korea
Prior art keywords
picture
block
temporal distance
motion vector
video
Prior art date
Application number
KR1020247010542A
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 KR20240046631A publication Critical patent/KR20240046631A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/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/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

Landscapes

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

Abstract

비디오의 현재 픽처 내의 현재 이미지 블록을 인터 예측하기 위한 방법이 제공된다. 이 방법은, 제1 시간적 거리(이를테면, TD0)가 제2 시간적 거리(이를테면, TD1)와 동일한지 여부를 결정하는 단계 ―제1 시간적 거리는 현재 픽처의 픽처 순서 카운트 값과 제1 참조 이미지의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현되고, 제2 시간적 거리는 현재 픽처의 픽처 순서 카운트 값과 제2 참조 이미지의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현됨―; 및 제1 시간적 거리(TD0)가 제2 시간적 거리(TD1)와 동일하지 않은 것으로 결정되는 때, 어떠한 모션 벡터 정제(DMVR) 절차도 수행하지 않는 단계를 포함한다. 따라서, 모션 벡터 정제(DMVR) 절차는 등거리 참조들을 갖는 이미지 블록으로만 제한된다.

Description

비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법{APPARATUS AND METHOD FOR CONDITIONAL DECODER-SIDE MOTION VECTOR REFINEMENT IN VIDEO CODING}
본 특허출원은 2018년 09월 13일자로 출원된 인도 가특허출원 제 IN201831034607호를 우선권으로 주장한다. 이로써, 전술한 특허 출원은 그 전체가 인용에 의해 본원에 포함된다.
본 개시의 실시예들은 일반적으로 비디오 데이터 인코딩 및 디코딩 기법들에 관련되며, 특히 비디오 코딩에서의 디코더측 모션 벡터 정제(DMVR: decoder-side motion vector refinement)와 관련된다.
비교적 짧은 비디오라도 묘사하는 데 필요한 비디오 데이터의 양은 상당할 수 있으며, 이는 데이터가 스트리밍되거나 아니면 대역폭 용량이 제한된 통신 네트워크를 통해 통신할 때 어려움을 초래할 수 있다. 따라서, 비디오 데이터는 일반적으로, 현대의 원격통신 네트워크들을 통해 통신되기 전에 압축된다. 메모리 자원들은 제한될 수 있기 때문에, 비디오가 저장 디바이스에 저장될 때 비디오의 크기가 또한 문제시될 수 있다. 비디오 압축 디바이스들은 종종, 전송 또는 저장 전에 비디오 데이터를 코딩하기 위해 소스에서 소프트웨어 및/또는 하드웨어를 사용하며, 이로써 디지털 비디오 이미지들을 표현하는 데 필요한 데이터양을 줄인다. 이후, 압축된 데이터는, 비디오 데이터를 디코딩하는 비디오 압축해제 디바이스에 의해 목적지에서 수신된다. 제한된 네트워크 자원들로 그리고 더 높은 비디오 품질에 대한 요구들이 계속 증가함에 따라, 이미지 품질을 거의 또는 전혀 희생하지 않고 압축 비율을 향상시키는 향상된 압축 및 압축해제 기술이 바람직하다.
본 출원의 실시예들은, 비디오의 현재 픽처(picture) 내의 현재 이미지 블록의 인터-예측(inter-prediction)을 위한 장치 및 방법, 디코더측 모션 벡터 정제(DMVR)를 조건적으로 수행할 수 있는 인코더 및 디코더를 제공하며, 이에 따라 코딩 효율이 향상될 수 있다.
본 발명의 실시예들은 독립항들의 특징들에 의해 정의되고, 및 실시예들의 추가적인 유리한 구현들은 종속항들의 특징들에 의해 정의된다.
특정 실시예들은, 종속항들에서의 다른 실시예들과 함께, 첨부된 독립항들에 서술된다.
제1 측면에 따르면, 본 개시는 비디오의 현재 픽처 내의 현재 이미지 블록의 인터 예측(양-예측(bi-prediction))을 위한 방법에 관한 것이며, 이 방법은: 현재 픽처가 시간적으로(시간과 관련하여) 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 있는지 여부 그리고 제1 시간적 거리(이를테면, TD0)와 제2 시간적 거리(이를테면, TD1)가 동일한 거리인지 여부를 결정하는 단계 ―제1 시간적 거리(TD0)는 현재 픽처와 제1 참조 픽처(RefPic0) 사이에 있고, 제2 시간적 거리(TD1)는 현재 픽처와 제2 참조 픽처(RefPic1) 사이에 있음―; 및 현재 픽처가 시간적으로 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 있고 그리고 제1 시간적 거리(TD0)와 제2 시간적 거리(TD1)가 동일한 거리라는 것이 결정될 때, 제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션을 획득하기 위해 모션 벡터 정제(DMVR) 절차를 수행하고, 제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션에 기반하여 현재 이미지 블록의 예측 블록(예측된 샘플 값들)을 결정하는 단계를 포함한다.
"현재 픽처가 시간적으로 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 있고 그리고 제1 시간적 거리(TD0)와 제2 시간적 거리(TD1)가 동일한 거리라는 것이 결정될 때"라는 것이, "현재 픽처가 시간적으로 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 있고 그리고 제1 시간적 거리(TD0)와 제2 시간적 거리(TD1)가 동일한 거리라는 것이 결정될 때만"인 것으로 이해되지 않아야 한다는 것이 주목된다. 모션 벡터 정제(DMVR) 절차를 수행할지 여부를 결정할 때 다른 조건들도 또한 고려될 수 있다.
"제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션"과 관련하여, 포지션은, 참조 픽처에서의 포지션인 절대적 포지션이거나 또는 초기 참조 블록의 포지션에 기반한 포지션 오프셋인 상대적 포지션일 수 있다.
DMVR이 과거의 참조 픽처로부터의 하나의 모션 벡터(MV) 및 미래의 다른 참조 픽처로부터의 다른 MV를 이용하는 양-예측(bi-prediction)의 병합 모드에 적용된다는 것이 주목된다. 참조 픽처들은, 현재 이미지 블록을 보유하는 현재 픽처에 대해 시간적으로 상이한 방향들의 2개의 픽처들일 수 있다. 본 개시은, 이 두 예측들 모두 동일한 시간 방향(둘 다 과거로부터의 또는 둘 다 미래로부터)에서 발생하는 시나리오에는 적용할 수 없다.
제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 상기 현재 픽처가 시간적으로(시간과 관련하여) 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 있는지 여부 그리고 제1 시간적 거리(이를테면, TD0)와 제2 시간적 거리(이를테면, TD1)가 동일한 거리임을 결정하는 단계 ―제1 시간적 거리(TD0)는 현재 픽처와 제1 참조 픽처(RefPic0) 사이에 있고, 제2 시간적 거리(TD1)는 현재 픽처와 제2 참조 픽처(RefPic1) 사이에 있음―는,
를 포함한다.
양방향을 지시하는 각 병합 후보들에 대해, 현재 픽처로부터 L0 및 L1 참조 픽처의 시간적 거리로서 TD0 및 TD1을 계산한다. TD0 및 TD1은 픽처 순서 카운트(POC, picture order count)를 사용하여 계산될 수 있다. 예컨대:
.
여기서, POCC, POC0 및 POC1은 현재 픽처의 POC, 제1 참조 픽처의 POC, 제2 참조 픽처의 POC를 각각 나타낸다.
제1 측면 또는 제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 이 방법은 제1 시간적 거리(TD0)와 제2 시간적 거리(TD1)가 상이한 거리이거나 현재 픽처가 시작적으로 제1 참조 픽처(예: RefPic0)와 제2 참조 픽처(예: RefPic1) 사이에 있지 않은 것으로 결정된 때, 제1 초기 모션 벡터(MV0) 및 제2 초기 모션 벡터(MV1)를 사용하여 모션 보상을 수행하는 단계; 일례에서, TD0 = POCc -POC0 TD1 = POCc -POC1인 경우 또는 이면, 제1 초기 모션 벡터(MV0) 및 제2 초기 모션 벡터(MV1)를 이용하여 모션 보상을 수행하는 단계를 더 포함한다. 또는 다른 예에서, TD0=POCc-POC0, TD1=POC1-POCc 인 경우, 이면, 제1 초기 모션 벡터(MV0)와 제2 초기 모션 벡터(MV1)를 이용하여 모션 보상을 수행한다.
제1 측면 또는 제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 이 방법은: 현재 픽처에서 현재 이미지 블록의 초기 모션 정보를 획득하는 단계를 더 포함하고, 여기서 초기 모션 정보는 제1 초기 모션 벡터, 제1 참조 인덱스, 제2 초기 모션 벡터 및 제2 참조 인덱스를 포함하며, 여기서 제1 참조 인덱스는 제1 참조 픽처를 나타내고, 제2 참조 인덱스는 제2 참조 픽처를 나타낸다.
제1 측면 또는 제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 모션 벡터 정제(DMVR) 절차를 수행하는 단계는:
상기 제1 초기 모션 벡터에 기초하여 제1 참조 픽처에서 제1 초기 참조 블록을 결정하는 단계;
상기 제2 초기 모션 벡터에 기초하여 제2 참조 픽처에서 제2 초기 참조 블록을 결정하는 단계;
상기 제1 초기 참조 블록 및 상기 제2 초기 참조 블록에 기초하여 양자간 참조 블록(bilateral reference block)을 생성하는 단계 - 예를 들어, 양자간 참조 블록은 양자간 템플릿으로 지칭될 수 있고 이 템플릿은 이미지 예측 블록의 모양과 크기를 가짐 -;
제1 정제된 참조 블록 또는 제1 정제된 모션 벡터의 포지션을 결정하기 위해 상기 양자간 참조 블록과 상기 제1 참조 픽처 내의 복수의 제1 참조 블록 각각 사이의 비용을 비교하는 단계; 및
제2 정제된 참조 블록 또는 제2 정제된 모션 벡터의 포지션을 결정하기 위해 양자간 참조 블록과 제2 참조 픽처 내의 복수의 제2 참조 블록 각각 사이의 비용을 비교하는 단계.
제1 측면 또는 제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 모션 벡터 정제(motion vector refinement)(DMVR) 절차를 수행하는 단계는 다음을 포함한다:
제1 참조 픽처(예: RefPic0)에서 제1 초기 모션 벡터가 가리키는 제1 초기 참조 블록과 제2 참조 픽처(예: RefPic1)에서 제2 초기 모션 벡터가 가리키는 제2 초기 참조 블록을 기반으로 현재 이미지 블록에 대한 템플릿을 획득하는 단계; 및
제1 검색 공간 및 제2 검색 공간에서 각각 상기 템플릿과 매칭하는 템플릿에 의해 제1 정제 모션 벡터 및 제2 정제 모션 벡터를 결정하는 단계 - 제1 검색 공간은 제1 초기 모션 벡터에 의해 주어진 포지션을 포함하고 제2 검색 공간은 제2 초기 모션 벡터에 의해 주어진 포지션을 포함함 -.
제1 측면 또는 제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 모션 벡터 정제(DMVR) 절차를 수행하는 단계는 다음을 포함한다:
매칭 비용 기준에 기초하여(예를 들어, 각 참조 블록 쌍의 매칭 비용에 기초하여) 복수의 참조 블록 쌍으로부터 최상의 모션 벡터에 의해 가리키는 한 쌍의 최상 매칭 블록을 결정하는 단계. 여기서 참조 블록 쌍은 제1 참조 픽처의 샘플 영역으로서 제1 초기 모션 벡터에 기반하여 결정되는 샘플 영역의 제1 참조 블록과 제2 참조 픽처의 샘플 영역으로서 또 제2 초기 모션 벡터에 기반하여 결정되는 샘플 영역의 제2참조 블록을 포함하고,
최상 모션 벡터는 제1 정제된 모션 벡터 및 제2 정제된 모션 벡터를 포함한다.
제1 측면 또는 제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션을 획득하기 위해 모션 벡터 정제(DMVR) 절차를 수행하는 단계는 다음을 포함한다:
상기 제1 초기 모션 벡터, 상기 제2 초기 모션 벡터 및 상기 현재 이미지 블록의 포지션에 기초하여 N개의 제1 참조 블록의 포지션 및 N개의 제2 참조 블록의 포지션을 결정하는 단계 - 상기 N개의 제1 참조 블록은 상기 제1 참조 이미지에 포함되고, N개의 제2 참조 블록은 제2 참조 이미지에 포함되며, N은 1보다 큰 정수임 -; 및
M개의 참조 블록 쌍의 포지션에서 한 쌍의 참조 블록의 포지션을 매칭 비용 기준에 따라 제1 정제된 참조 블록의 포지션와 제2 정제된 참조 블록의 포지션으로 결정하는 단계 - 여기서 각 쌍의 참조 블록의 포지션은 제1 참조 블록의 포지션와 제2 참조 블록의 포지션을 포함하며, 참조 블록의 각 쌍에 대해 제1 포지션 오프셋(delta0x, delta0y) 및 제2 포지션 오프셋(delta1x, delta1y)이 미러링되고, 제1 포지션 오프셋(delta0x, delta0y)은 제1 초기 참조 블록의 포지션에 대한 제1 참조 블록의 포지션 오프셋을 나타내고, 제2 포지션 오프셋(delta1x, delta1y)은 제1 초기 참조 블록의 포지션에 대한 제2 참조 블록의 포지션의 오프셋을 나타내며, M은 1보다 크거나 같은 정수이고, M은 N보다 작거나 같음 -.
예를 들어, 제1 포지션 오프셋(delta0x, delta0y)과 제2 포지션 오프셋(delta1x, delta1y)이 미러링된다는 표현은 다음과 같이 이해될 수 있다. 제1 포지션 오프셋의 방향은 제2 포지션 오프셋의 방향과 반대이고 제1 포지션 오프셋의 크기는 제2 포지션 오프셋의 크기와 동일하다.
제1 측면 또는 제1 측면의 임의의 이전 구현에 따른 방법의 가능한 구현 형태에서, 제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션에 기초하여 현재 이미지 블록의 예측 블록을 결정하는 단계는 다음을 포함한다:
제1 정제된 참조 블록 및 제2 정제된 참조 블록에 기초하여 예측 블록을 결정하는 단계 - 여기서 제1 정제된 참조 블록은 제1 정제된 참조 블록의 포지션에 기초하여 제1 참조 픽처에서 결정되고, 제2 정제된 참조 블록은 제2 정제된 참조 블록의 포지션에 기초하여 제2 참조 픽처에서 결정됨 -; 또는
제1 정제된 참조 블록 및 제2 정제된 참조 블록을 기반으로 예측 블록을 결정하는 단계 - 제1 정제된 참조 블록 및 제2 정제된 참조 블록은 제1 정제된 모션 벡터 및 제2 정제된 모션 벡터를 이용하여 모션 보상을 수행함으로써 결정됨 -.
제1 측면 또는 제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 제1 참조 픽처는 현재 픽처를 시간적으로 앞서는 참조 이미지이고 제2 참조 픽처는 현재 픽처를 시간적으로 뒤따라는 참조 이미지이거나; 또는 제1 참조 픽처는 현재 픽처를 시간적으로 뒤따르는 참조 이미지이고, 제2 참조 픽처는 현재 픽처를 시간적으로 앞서는 참조 이미지이거나; 또는
상기 제1 참조 픽처는 과거의 참조 이미지이고 상기 제2 참조 픽처는 미래의 참조 이미지이거나; 또는 제1 참조 픽처은 미래의 참조 이미지이고 제2 참조 픽처은 과거의 참조 이미지이다.
즉, 현재 픽처의 이전 픽처는 제1 참조 픽처이고 현재 픽처의 다음 이미지는 제2 참조 픽처이거나; 또는 현재 픽처의 이전 픽처가 제2 참조 픽처이고, 현재 픽처의 다음 이미지가 제1 참조 픽처이다.
제1 측면 또는 제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 제1 시간적 거리(TD0)는 현재 픽처와 제1 참조 픽처 사이의 픽처 순서 카운트(POC) 거리를 나타내고, 제2 시간적 거리(TD1)는 현재 픽처와 제2 참조 픽처 사이의 POC 거리를 나타내거나; 또는
제1 시간적 거리(TD0)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 제1 참조 이미지의 픽처 순서 카운트 값(POC0) 사이의 차이로 표현되고; 제2 시간적 거리(TD1)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 제2 참조 이미지의 픽처 순서 카운트 값(POC1)의 차이로 표현된다.
제1 측면 또는 제1 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 현재 픽처가 제1 참조 픽처(예를 들어 RefPic0)와 제2 참조 픽처 사이에 시간적으로 존재하는지를 결정하는 단계(예: RefPic1)은 다음을 포함한다:
현재 픽처의 픽처 순서 카운트 값(POCc)이 제1 참조 이미지의 픽처 순서 카운트 값(POC0)보다 크고 현재 픽처의 픽처 순서 카운트 값(POCc)이 제2 참조 이미지의 픽처 순서 카운트 값(POC1)보다 작은지 또는 현재 픽처의 픽처 순서 카운트 값(POCc)이 제1 참조 이미지의 픽처 순서 카운트 값(POC0)보다 작고 현재 픽처 순서 카운트 값(POCc)이 제2 참조 이미지의 픽처 순서 카운트 값(POC1)보다 큰지를 결정하는 단계.
제2 측면에 따르면, 본 개시는 비디오의 현재 픽처에서 현재 이미지 블록의 인터-예측(bi-prediction) 방법에 관한 것으로, 상기 방법은 현재 픽처가 시간적으로 제1 참조 픽처(예: RefPic0)와 제2 참조 픽처(예: RefPic1) 사이에 있는지 여부 및 제1 시간적 거리(예: TD0) 및 제2 시간적 거리(예: TD1)가 동일한 거리인지 여부를 결정하는 단계 - 제1 시간적 거리(TD0)는 현재 픽처와 제1 참조 픽처(RefPic0) 사이이고, 제2 시간적 거리(TD1)는 현재 픽처와 제2 참조 픽처(RefPic1) 사이임 -; 및 제1 시간적 거리(TD0)와 제2 시간적 거리(TD1)가 서로 다른 거리이거나 현재 픽처가 시간적으로 제1 참조 픽처(예: RefPic0)와 제2 참조 픽처(예: RefPic1) 사이에 있지 않은 경우, 제1 초기 모션 벡터(MV0)와 제2 초기 모션 벡터(MV1)를 이용하여 모션 보상을 수행하는 단계를 포함한다.
제2 측면에 따른 방법의 가능한 구현 형태에서, 현재 이미지 블록의 초기 모션 정보는 제1 초기 모션 벡터, 제1 참조 인덱스, 제2 초기 모션 벡터 및 제2 참조 인덱스를 포함하고, 여기서 제1 참조 인덱스는 제1 참조 픽처를 나타내고, 제2 참조 인덱스는 제2 참조 픽처를 나타낸다.
제2 측면 또는 제2 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 제1 시간적 거리는 현재 픽처와 제1 참조 픽처 사이의 픽처 순서 카운트(POC) 거리를 나타내고, 제2 시간적 거리는 현재 픽처와 제2 참조 픽처 사이의 POC 거리를 나타내거나; 또는
상기 제1 시간적 거리(TD0)는 현재 픽처의 픽처 순서 카운트 값(POCc,picture order count value)와 상기 제1 참조 이미지의 픽처 순서 카운트 값(POC0) 사이의 차이로 표현되고; 제2 시간적 거리(TD1)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 제2 참조 이미지의 픽처 순서 카운트 값(POC1)의 차이로 표현된다.
제3 측면에 따르면, 본 개시는 비디오의 현재 픽처에서 현재 이미지 블록의 인터-예측(bi-prediction)을 위한 방법에 관한 것으로, 상기 방법은:
제1 시간적 거리(예: TD0)가 제2 시간적 거리(예: TD1)와 동일한지 여부를 결정하는 단계 - 여기서 제1 시간적 거리(TD0)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 제1 참조 이미지의 픽처 순서 카운트 값(POC0) 간의 차이로 표현되고, 제2 시간적 거리(TD1)는 제2 참조 이미지의 픽처 순서 카운트 값(POC1)과 현재 픽처의 픽처 순서 계수 값(POCc) 사이의 차이로 표현됨 -; 및 상기 제1 시간적 거리(TD0)가 상기 제2 시간적 거리(TD1)와 동일하다고 판단되면, 현재 이미지 블록의 예측 블록을 결정하기 위한 모션 벡터 정제(DMVR) 절차를 수행하는 단계를 포함한다.
이와 같이 제3 측면에 따른 방법의 가능한 구현 형태에서, 이 방법은, 제1 시간적 거리가 제2 시간적 거리와 동일하지 않다고 결정되면, 현재 이미지 블록의 예측 블록을 결정하기 위해 제1 초기 모션 벡터 및 제2 초기 모션 벡터를 사용하여 모션 보상을 수행하는 단계를 더 포함한다.
제4 측면에 따르면, 본 개시는 비디오의 현재 픽처에서 현재 이미지 블록의 인터-예측(bi-prediction)을 위한 방법에 관한 것으로, 상기 방법은:
제1 시간적 거리(예: TD0)가 제2 시간적 거리(예: TD1)와 동일한지 여부를 결정하는 단계 - 제1 시간적 거리(TD0)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 제1 참조 이미지의 픽처 순서 카운트 값(POC0) 간의 차이로 표현되고, 제2 시간적 거리(TD1)는 제2 참조 이미지의 픽처 순서 카운트 값(POC1)과 현재 픽처의 픽처 순서 카운트 값(POCc) 사이의 차이로 표현됨 -; 및
제1 시간적 거리(TD0)가 제2 시간적 거리(TD1)와 같지 않다고 결정되는 경우, 모션 벡터 정제(DMVR) 절차를 수행하지 않는 단계(또는 모션 벡터 정제(DMVR) 절차를 비활성화하는 단계)를 포함한다.
양방향을 나타내는 각 병합 후보에 대해 POC(Picture Order Count)를 사용하여 TD0 및 TD1을 계산할 수 있다. 예컨대:
TD0 = POCc -POC0
TD1 = POC1 -POCc
여기서, POCc, POC0, POC1은 각각 현재 픽처의 POC, 제1 참조 픽처의 POC, 제2 참조 픽처의 POC를 나타낸다.
제2 또는 제3 또는 제4 측면 또는 제2 또는 제3 또는 제4 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 제1 참조 픽처은 현재 픽처를 시간적으로 선행하는 참조 이미지이고, 제2 참조 픽처는 현재 픽처를 시간적으로 뒤따르는 참조 이미지이거나; 또는 제1 참조 픽처가 현재 픽처를 시간적으로 뒤따르는 참조 이미지이고, 제2 참조 픽처는 현재 픽처를 시간적으로 앞서는 참조 이미지이거나; 또는
상기 제1 참조 픽처는 과거의 참조 이미지이고 상기 제2 참조 픽처는 미래의 참조 이미지이거나; 또는 제1 참조 픽처은 미래의 참조 이미지이고 제2 참조 픽처은 과거의 참조 이미지이다.
즉, 현재 픽처의 이전 픽처은 제1 참조 픽처이고 현재 픽처의 다음 이미지는 제2 참조 픽처이거나; 또는 현재 픽처의 이전 픽처가 제2 참조 픽처이고, 현재 픽처의 다음 이미지가 제1 참조 픽처이다.
제5 측면에 따르면, 본 개시는 비디오 이미지를 인코딩하는 방법에 관한 것으로, 이 방법은:
상기 방법에 따라 현재 이미지 블록의 예측 블록을 획득하기 위해 상기 비디오의 현재 픽처에서 현재 이미지 블록의 인터 예측을 수행하는 단계; 및
현재 이미지 블록과 예측 블록 사이의 차이(예: 잔차 또는 잔차 블록)를 인코딩하고, 인코딩된 차이를 포함하는 비트 스트림과 초기 모션 정보를 나타내는 인덱스(예: 병합 후보 인덱스)를 생성하는 단계를 포함하고, 여기서 초기 모션 정보는 제1 초기 모션 벡터 및 제2 초기 모션 벡터를 포함한다.
제6 측면에 따르면, 본 개시는 비트 스트림으로부터 비디오 이미지를 디코딩하는 방법에 관한 것으로, 이 방법은:
현재 이미지 블록과 현재 이미지 블록의 예측 블록 간의 초기 모션 정보 및 인코딩된 차이(예: 잔차 또는 잔차 블록)를 나타내는 인덱스(예: 병합 후보 인덱스)를 비트 스트림에서 파싱하는 단계 - 상기 정보는 제1 초기 모션 벡터 및 제2 초기 모션 벡터를 포함함 -;
전술한 방법에 따라, 현재 이미지 블록의 예측 블록을 획득하기 위해 비디오의 현재 픽처에서 현재 이미지 블록의 인터 예측을 수행하는 단계; 및
파싱된 차이와 예측 블록의 합으로 현재 이미지 블록을 재구성하는 단계를 포함한다.
제7 측면에 따르면, 본 개시는 인코딩 장치에 의해 구현되는 인코딩 방법에 관한 것으로, 이 방법은:
상기 방법의 활성화 여부를 나타내는 신택스 요소의 값을 결정하는 단계; 및
신택스 요소를 포함하는 비트 스트림을 생성하는 단계를 포함한다.
제7 측면 또는 제7 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 신택스 요소는 시퀀스 파라미터 세트(SPS) 레벨, 픽처 파라미터 세트(PPS) 레벨, 슬라이스 헤더, 코딩 트리 단위(CTU) 신택스 또는 코딩 단위(CU) 신택스 중 어느 하나에서 시그널링된다.
제7 측면 또는 제7 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 신택스 요소는 제1 플래그(예: sps_conditional_dmvr_flag) 및/또는 제2 플래그(예: pps_conditional_dmvr_flag)를 포함하고;
제1 플래그(sps_conditional_dmvr_flag)가 0이면 앞에서 설명한 방법이 시퀀스의 이미지 블록에 대해 수행되지 않거나;
제1 플래그(sps_conditional_dmvr_flag)가 1이고 제2 플래그(pps_conditional_dmvr_flag)가 0이면, 앞서 설명한 방법은 시퀀스의 픽처의 이미지 블록에 대해 수행되지 않거나; 또는
제1 플래그(sps_conditional_dmvr_flag)가 1이고 제2 플래그(pps_conditional_dmvr_flag)가 1이면 시퀀스의 픽처의 이미지 블록에 대해 앞서 설명한 방법이 수행된다.
제8 측면에 따르면, 본 개시는 디코딩 장치에 의해 구현되는 디코딩 방법에 관한 것으로서, 이 방법은:
전술한 방법이 활성화되었는지 여부를 나타내는 신택스 요소를 비트 스트림으로부터 파싱하는 단계; 및
상기 방법의 활성화 여부를 나타내는 신택스 요소에 따라 디코더측 DMVR(Motion Vector Refinement) 절차를 적응적으로 활성화 또는 비활성화하는 단계를 포함한다.
제8 측면 또는 제8 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 신택스 요소는 비트 스트림의 SPS(시퀀스 파라미터 세트) 레벨, 픽처 파라미터 세트(PPS) 레벨, 슬라이스 헤더, 코딩 트리 단위(CTU) 신택스 또는 코딩 단위(CU) 신택스 중 어느 하나로부터 획득된다.
제8 측면 또는 제8 측면의 임의의 상기 구현에 따른 방법의 가능한 구현 형태에서, 신택스 요소는 제1 플래그(sps_conditional_dmvr_flag) 및 제2 플래그(pps_conditional_dmvr_flag)를 포함하고;
제1 플래그(sps_conditional_dmvr_flag)가 0이면 앞에서 설명한 방법이 시퀀스의 이미지 블록에 대해 수행되지 않거나;
제1 플래그(sps_conditional_dmvr_flag)가 1이고 제2 플래그(pps_conditional_dmvr_flag)가 0이면, 앞서 설명한 방법은 시퀀스의 픽처의 이미지 블록에 대해 수행되지 않거나; 또는
제1 플래그(sps_conditional_dmvr_flag)가 1이고 제2 플래그(pps_conditional_dmvr_flag)가 1이면 시퀀스의 픽처의 이미지 블록에 대해 앞서 설명한 방법이 수행된다.
제9 측면에 따르면, 본 개시는 코딩 디바이스에 관한 것으로, 이 코딩 디바이스는:
명령을 저장하는 메모리; 및
메모리에 결합된 프로세서로서, 메모리에 저장된 명령어를 실행하여 프로세서가 상술한 방법을 수행하게 하는 프로세서를 포함한다.
제10 측면에 따르면, 본 개시는 비디오의 현재 픽처에서 현재 이미지 블록의 인터-예측을 위한 장치에 관한 것으로, 이 장치는:
현재 픽처가 시간적으로 제1 참조 픽처(예: RefPic0)와 제2 참조 픽처(예: RefPic1) 사이에 있는지 여부 및 제1 시간적 거리(예: TD0) 및 제2 시간적 거리(예: TD1)가 동일한 거리인지 여부를 결정하도록 구성된 결정 유닛 - 여기서 제1 시간적 거리(TD0)는 현재 픽처와 제1 참조 픽처(RefPic0) 사이이고 제2 시간적 거리(TD1)는 현재 픽처와 제2 참조 픽처(RefPic1) 사이임 -; 및
현재 픽처가 시간적으로 제1 참조 픽처(예: RefPic0)와 제2 참조 픽처(예: RefPic1) 사이에 있고, 제1 시간적 거리(예: TD0) 및 제2 시간적 거리(예: TD1)가 동일한 거리인 것으로 결정되면, DMVR(motion vector refinement) 절차를 수행하여 제1 정제된 참조 블록의 포지션와 제2 정제된 참조 블록의 포지션을 획득하고, 제1 정제된 참조 블록의 포지션와 제2 정제된 참조 블록의 포지션에 기초하여 현재 이미지 블록의 예측 블록을 결정하도록 구성된 인터 예측 처리 유닛을 포함한다.
제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 결정 유닛은 다음 수식을 통해 현재 픽처가 시간적으로 제1 참조 픽처(예: RefPic0)와 제2 참조 픽처(예: RefPic1) 사이에 있는지 여부와 제1 시간적 거리(예: TD0) 및 제2 시간적 거리(예: TD1)가 동일한 거리인지 여부를 결정한다:
양방향을 지시하는 각 병합 후보들에 대해, 현재 픽처로부터 L0 및 L1 참조 픽처의 시간적 거리로서 TD0 및 TD1을 계산한다. TD0 및 TD1은 픽처 순서 카운트(POC, picture order count)를 사용하여 계산될 수 있다. 예컨대:
.
여기서, POCC, POC0 및 POC1은 현재 픽처의 POC, 제1 참조 픽처의 POC, 제2 참조 픽처의 POC를 각각 나타낸다.
제10 측면에 따른 장치의 가능한 구현 형태에서, 인터 예측 처리 유닛은 또한, 제1 시간적 거리(TD0)와 제2 시간적 거리(TD1)가 상이한 거리이거나 현재 픽처가 시작적으로 제1 참조 픽처(예: RefPic0)와 제2 참조 픽처(예: RefPic1) 사이에 있지 않은 것으로 결정된 때, 제1 초기 모션 벡터(MV0) 및 제2 초기 모션 벡터(MV1)를 사용하여 모션 보상을 수행하도록 구성된다. 일 예에서, 인터 예측 처리 유닛은 TD0 = POCc -POC0 TD1 = POCc -POC1인 경우 또는 이면, 제1 초기 모션 벡터(MV0) 및 제2 초기 모션 벡터(MV1)를 이용하여 모션 보상을 수행하도록 구성된다. 대안적으로, 다른 예에서, 인터 예측 처리 유닛은 TD0=POCc-POC0, TD1=POC1-POCc 인 경우, 이면, 제1 초기 모션 벡터(MV0)와 제2 초기 모션 벡터(MV1)를 이용하여 모션 보상을 수행하도록 구성된다.
제10 측면 또는 제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 인터 예측 처리 유닛은 또한,
현재 픽처에서 현재 이미지 블록의 초기 모션 정보를 획득하도록 구성되고, 여기서 초기 모션 정보는 제1 초기 모션 벡터, 제1 참조 인덱스, 제2 초기 모션 벡터 및 제2 참조 인덱스를 포함하며, 여기서 제1 참조 인덱스는 제1 참조 픽처를 나타내고, 제2 참조 인덱스는 제2 참조 픽처를 나타낸다.
제10 측면 또는 제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션을 획득하기 위해 모션 벡터 정제(DMVR) 절차를 수행하는 것과 관련하여, 인터 예측 처리 유닛은 구체적으로:
상기 제1 초기 모션 벡터에 기초하여 제1 참조 픽처에서 제1 초기 참조 블록을 결정하고;
상기 제2 초기 모션 벡터에 기초하여 제2 참조 픽처에서 제2 초기 참조 블록을 결정하며;
상기 제1 초기 참조 블록 및 상기 제2 초기 참조 블록에 기초하여 양자간 참조 블록(bilateral reference block)을 생성하고 - 예를 들어, 양자간 참조 블록은 양자간 템플릿으로 지칭될 수 있고 이 템플릿은 이미지 예측 블록의 모양과 크기를 가짐 -;
제1 정제된 참조 블록 또는 제1 정제된 모션 벡터의 포지션을 결정하기 위해 상기 양자간 참조 블록과 상기 제1 참조 픽처 내의 복수의 제1 참조 블록 각각 사이의 비용을 비교하고;
제2 정제된 참조 블록 또는 제2 정제된 모션 벡터의 포지션을 결정하기 위해 양자간 참조 블록과 제2 참조 픽처 내의 복수의 제2 참조 블록 각각 사이의 비용을 비교하도록 구성된다.
제10 측면 또는 제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션을 획득하기 위해 모션 벡터 정제(DMVR) 절차를 수행하는 것과 관련하여, 인터 예측 처리 유닛은 구체적으로:
제1 참조 픽처(예: RefPic0)에서 제1 초기 모션 벡터가 가리키는 제1 초기 참조 블록과 제2 참조 픽처(예: RefPic1)에서 제2 초기 모션 벡터가 가리키는 제2 초기 참조 블록을 기반으로 현재 이미지 블록에 대한 템플릿을 획득하고;
제1 검색 공간 및 제2 검색 공간에서 각각 상기 템플릿과 매칭하는 템플릿에 의해 제1 정제 모션 벡터 및 제2 정제 모션 벡터를 결정하도록 구성되고, 제1 검색 공간은 제1 초기 모션 벡터에 의해 주어진 포지션에 위치하고, 제2 검색 공간은 제2 초기 모션 벡터에 의해 주어진 포지션에 위치한다.
제10 측면 또는 제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션을 획득하기 위해 모션 벡터 정제(DMVR) 절차를 수행하는 것과 관련하여, 인터 예측 처리 유닛은 구체적으로:
매칭 비용 기준에 기초하여(예를 들어, 각 참조 블록 쌍의 매칭 비용에 기초하여) 복수의 참조 블록 쌍으로부터 최상의 모션 벡터에 의해 가리키는 한 쌍의 최상 매칭 블록을 결정하도록 구성되고, 여기서 참조 블록 쌍은 제1 참조 픽처의 샘플 영역으로서 제1 초기 모션 벡터에 기반하여 결정되는 샘플 영역의 제1 참조 블록과 제2 참조 픽처의 샘플 영역으로서 또 제2 초기 모션 벡터에 기반하여 결정되는 샘플 영역의 제2참조 블록을 포함하고,
최상 모션 벡터는 제1 정제된 모션 벡터 및 제2 정제된 모션 벡터를 포함한다.
제10 측면 또는 제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션을 획득하기 위해 모션 벡터 정제(DMVR) 절차를 수행하는 것과 관련하여, 인터 예측 처리 유닛은 구체적으로:
상기 제1 초기 모션 벡터, 상기 제2 초기 모션 벡터 및 상기 현재 이미지 블록의 포지션에 기초하여 N개의 제1 참조 블록의 포지션 및 N개의 제2 참조 블록의 포지션을 결정하고 - 상기 N개의 제1 참조 블록은 상기 제1 참조 이미지에 포함되고, N개의 제2 참조 블록은 제2 참조 이미지에 포함되며, N은 1보다 큰 정수임 -;
M개의 참조 블록 쌍의 포지션에서 한 쌍의 참조 블록의 포지션을 매칭 비용 기준에 따라 제1 정제된 참조 블록의 포지션와 제2 정제된 참조 블록의 포지션로 결정하도록 구성되고, 여기서 각 쌍의 참조 블록의 포지션은 제1 참조 블록의 포지션와 제2 참조 블록의 포지션을 포함하며, 참조 블록의 각 쌍에 대해 제1 포지션 오프셋(delta0x, delta0y) 및 제2 포지션 오프셋(delta1x, delta1y)이 미러링되고, 제1 포지션 오프셋(delta0x, delta0y)은 제1 초기 참조 블록의 포지션에 대한 제1 참조 블록의 포지션 오프셋을 나타내고, 제2 포지션 오프셋(delta1x, delta1y)은 제1 초기 참조 블록의 포지션에 대한 제2 참조 블록의 포지션의 오프셋을 나타내며, M은 1보다 크거나 같은 정수이고, M은 N보다 작거나 같다.
제10 측면 또는 제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 제1 정제된 참조 블록의 포지션 및 제2 정제된 참조 블록의 포지션을 획득하기 위해 모션 벡터 정제(DMVR) 절차를 수행하는 것과 관련하여, 인터 예측 처리 유닛은 구체적으로:
제1 정제된 참조 블록 및 제2 정제된 참조 블록에 기초하여 예측 블록을 결정하거나 - 여기서 제1 정제된 참조 블록은 제1 정제된 참조 블록의 포지션에 기초하여 제1 참조 픽처에서 결정되고 제2 정제된 참조 블록은 제2 정제된 참조 블록의 포지션에 기초하여 제2 참조 픽처에서 결정됨 -; 또는
제1 정제된 참조 블록 및 제2 정제된 참조 블록을 기반으로 예측 블록을 결정 - 여기서 제1 정제된 참조 블록 및 제2 정제된 참조 블록은 제1 정제된 모션 벡터 및 제2 정제된 모션 벡터를 사용하여 모션 보상을 수행함으로써 결정됨 -하도록 구성된다.
제10 측면 또는 제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 제1 참조 픽처는 현재 픽처를 시간적으로 앞서는 참조 이미지이고 제2 참조 픽처는 현재 픽처를 시간적으로 뒤따라는 참조 이미지이거나; 또는 제1 참조 픽처는 현재 픽처를 시간적으로 뒤따르는 참조 이미지이고, 제2 참조 픽처는 현재 픽처를 시간적으로 앞서는 참조 이미지이거나; 또는
상기 제1 참조 픽처는 과거의 참조 이미지이고 상기 제2 참조 픽처는 미래의 참조 이미지이거나; 또는 제1 참조 픽처은 미래의 참조 이미지이고 제2 참조 픽처은 과거의 참조 이미지이다.
제10 측면 또는 제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 제1 시간적 거리(TD0)는 현재 픽처와 제1 참조 픽처 사이의 픽처 순서 카운트(POC) 거리를 나타내고, 제2 시간적 거리(TD1)는 현재 픽처와 제2 참조 픽처 사이의 POC 거리를 나타내거나; 또는
제1 시간적 거리(TD0)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 제1 참조 이미지의 픽처 순서 카운트 값(POC0) 사이의 차이로 표현되고; 제2 시간적 거리(TD1)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 제2 참조 이미지의 픽처 순서 카운트 값(POC1)의 차이로 표현된다.
제10 측면 또는 제10 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 현재 픽처가 시간적으로 제1 참조 픽처(예: RefPic0)와 제2 참조 픽처(예: RefPic1) 사이에 있는지를 결정하기 위해, 인터 예측 처리 유닛은 구체적으로:
현재 픽처의 픽처 순서 카운트 값(POCc)이 제1 참조 이미지의 픽처 순서 카운트 값(POC0)보다 크고 현재 픽처의 픽처 순서 카운트 값(POCc)이 제2 참조 이미지의 픽처 순서 카운트 값(POC1)보다 작은지 또는 현재 픽처의 픽처 순서 카운트 값(POCc)이 제1 참조 이미지의 픽처 순서 카운트 값(POC0)보다 작고 현재 픽처 순서 카운트 값(POCc)이 제2 참조 이미지의 픽처 순서 카운트 값(POC1)보다 큰지를 결정하도록 구성된다.
제11 측면에 따르면, 본 개시는 비디오 이미지를 인코딩하기 위한 인코딩 장치에 관한 것으로, 이 인코딩 장치는:
현재 픽처가 시간적으로 제1 참조 픽처와 제2 참조 픽처 사이에 있는지, 제1 시간적 거리와 제2 시간적 거리가 동일한 거리인지를 결정하도록 구성된 결정 유닛 - 여기서 제1 시간적 거리는 현재 픽처와 제1 참조 픽처 사이이고 제2 시간적 거리는 현재 픽처와 제2 참조 픽처 사이임 -; 및
제1 시간적 거리와 제2 시간적 거리가 상이한 거리이거나, 또는 현재 픽처가 제1 참조 픽처와 제2 참조 픽처 사이에 시간적으로 있지 않다고 결정되면, 현재 이미지 블록의 예측 블록을 결정하기 위해 제1 초기 모션 벡터와 제2 초기 모션 벡터를 이용하여 모션 보상을 수행하도록 구성된 인터 예측 처리 유닛을 포함한다.
제11 측면에 따른 장치의 가능한 구현 형태에서, 현재 이미지 블록의 초기 모션 정보는 제1 초기 모션 벡터, 제1 참조 인덱스, 제2 초기 모션 벡터 및 제2 참조 인덱스를 포함하고, 여기서 제1 참조 인덱스는 제1 참조 픽처를 나타내고, 제2 참조 인덱스는 제2 참조 픽처를 나타낸다.
제11 측면 또는 제11 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 제1 시간적 거리는 현재 픽처와 제1 참조 픽처 사이의 픽처 순서 카운트(POC) 거리를 나타내고, 제2 시간적 거리는 현재 픽처와 제2 참조 픽처 사이의 POC 거리를 나타내거나; 또는 상기 제1 시간적 거리(TD0)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 상기 제1 참조 이미지의 픽처 순서 카운트 값(POC0) 사이의 차이로 표현되고; 제2 시간적 거리(TD1)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 제2 참조 이미지의 픽처 순서 카운트 값(POC1)의 차이로 표현된다.
제12 측면에 따르면, 본 개시는 비디오 이미지를 인코딩하기 위한 인코딩 장치에 관한 것으로, 인코딩 장치는:
현재 이미지 블록의 예측 블록을 획득하기 위한 상술한 장치,
현재 이미지 블록과 현재 이미지 블록의 예측 블록 간의 차이(잔차 등)를 인코딩하고, 인코딩된 차이를 포함하는 비트 스트림과 초기 모션 정보를 나타내는 인덱스(예: 병합 후보 인덱스)를 생성하도록 구성된 엔트로피 코딩 유닛을 포함하고, 여기서, 초기 모션 정보는 제1 초기 모션 벡터 및 제2 초기 모션 벡터를 포함한다.
제13 측면에 따르면, 본 개시는 비트 스트림으로부터 비디오 이미지를 디코딩하기 위한 디코딩 장치에 관한 것으로, 상기 디코딩 장치는:
현재 이미지 블록과 현재 이미지 블록의 예측 블록 간의 초기 모션 정보 및 인코딩된 차이(예: 잔차)를 나타내는 인덱스를 비트 스트림으로부터 파싱하도록 구성된 엔트로피 디코딩 유닛 - 상기 초기 모션 정보는 제1 초기 모션 벡터 및 제2 초기 모션 벡터를 포함함 -;
현재 이미지 블록의 예측 블록을 획득하기 위한 상술한 장치, 및
파싱된 차이(예: 잔차) 및 예측 블록의 합으로서 현재 이미지 블록을 재구성하도록 구성된 이미지 재구성 유닛을 포함한다.
제14 측면에 따르면, 본 개시는 하나 이상의 처리 회로를 포함하는 인코딩 장치에 관한 것으로, 상기 처리 회로는:
상술한 방법이 활성화되는지를 나타내는 신택스 요소의 값을 결정하고, 신택스 요소를 포함하는 비트 스트림을 생성하도록 구성된다.
제14 측면에 따른 방법의 가능한 구현 형태에서, 신택스 요소는 시퀀스 파라미터 세트(SPS) 레벨, 픽처 파라미터 세트(PPS) 레벨, 슬라이스 헤더, 코딩 트리 단위(CTU) 신택스 또는 코딩 단위(CU) 신택스 중 어느 하나에서 시그널링된다.
제14 측면 또는 제14 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 신택스 요소는 제1 플래그(sps_conditional_dmvr_flag) 및 제2 플래그(pps_conditional_dmvr_flag)를 포함하고;
제1 플래그(sps_conditional_dmvr_flag)가 0이면 시퀀스의 이미지 블록에 대해 이전에 표시된 방법이 수행되지 않거나;
제1 플래그(sps_conditional_dmvr_flag)가 1이고 제2 플래그(pps_conditional_dmvr_flag)가 0이면 상술한 방법이 시퀀스의 픽처의 이미지 블록에 대해 수행되지 않거나; 또는
제1 플래그(sps_conditional_dmvr_flag)가 1이고 제2 플래그(pps_conditional_dmvr_flag)가 1이면 시퀀스의 픽처의 이미지 블록에 대해 상술한 방법이 수행된다.
제15 측면에 따르면, 본 개시는 하나 이상의 처리 회로를 포함하는 디코딩 장치에 관한 것으로, 상기 처리 회로는:
비트 스트림에서 상술한 방법이 활성화되는지 여부를 나타내는 신택스 요소를 파싱하고;
신택스 요소에 따라 디코더측 DMVR(motion vector refinement) 절차를 적응적으로 활성화 또는 비활성화하도록 구성된다.
이와 같은 제15 측면에 따른 장치의 가능한 구현 형태에서, 신택스 요소는 비트 스트림의 시퀀스 파라미터 세트(SPS) 레벨, 비트 스트림의 픽처 파라미터 세트(PPS) 레벨, 슬라이스 헤더, 코딩 트리 단위(CTU) 신택스 또는 코딩 단위(CU) 신택스 중 어느 하나로부터 획득된다.
제15 측면 또는 제15 측면의 임의의 상기 구현에 따른 장치의 가능한 구현 형태에서, 신택스 요소는 제1 플래그(sps_conditional_dmvr_flag) 및 제2 플래그(pps_conditional_dmvr_flag)를 포함하고;
제1 플래그(sps_conditional_dmvr_flag)가 0이면 시퀀스의 이미지 블록에 대해 이전에 표시된 방법이 수행되지 않거나;
제1 플래그(sps_conditional_dmvr_flag)가 1이고 제2 플래그(pps_conditional_dmvr_flag)가 0이면 상술한 방법이 시퀀스 그림의 이미지 블록에 대해 수행되지 않거나; 또는
제1 플래그(sps_conditional_dmvr_flag)가 1이고 제2 플래그(pps_conditional_dmvr_flag)가 1이면 시퀀스 그림의 이미지 블록에 대해 상술한 방법이 수행된다.
제16 측면에 따르면, 본 개시는 프로세서상에서 실행될 때 상술한 방법에 따른 단계를 수행하는 컴퓨터 판독 가능 명령어를 저장하는 컴퓨터 판독 가능 매체에 관한 것이다.
제17 측면에 따르면, 본 개시는 비디오의 현재 픽처에서 현재 이미지 블록의 인터-예측 방법에 관한 것으로, 상기 방법은:
적어도 하나의 조건이 충족되는지 여부를 결정하는 단계 - 여기서 적어도 하나의 조건은: 제1 시간적 거리(예: TD0)가 제2 시간적 거리(예: TD1)와 동일하다는 것이고, 여기서 제1 시간적 거리는 현재 픽처의 픽처 순서 카운트 값과 제1 참조 이미지의 픽처 순서 카운트 값의 차이이고 제2 시간적 거리는 제2 참조 이미지의 픽처 순서 카운트 값과 현재 픽처의 픽처 순서 카운트 값 사이의 차이로 표현됨 -; 및
적어도 하나의 조건이 충족되면, 현재 이미지 블록의 예측 블록을 결정하기 위해 디코더측 DMVR(motion vector refinement) 절차를 수행하는 단계를 포함한다.
제18 측면에 따르면, 본 개시 내용은 비디오의 현재 픽처에서 현재 이미지 블록의 인터-예측 방법에 관한 것으로, 상기 방법은:
하나 이상의 조건이 충족되면 DMVR(motion vector refinement) 절차를 수행하여 현재 이미지 블록의 서브 블록에 대한 제1 정제된 모션 벡터 및 제2 정제된 모션 벡터를 획득하는 단계 - 여기서 제1 정제된 모션 벡터는 제1 참조 픽처에 대응하고, 제2 정제된 모션 벡터는 제2 참조 픽처에 대응함 -; 및
현재 이미지 블록의 예측 블록(예: 예측된 샘플 값)을 결정하는 단계 - 여기서 현재 이미지 블록의 예측 블록은 서브 블록의 예측 블록을 포함하며, 여기서 서브 블록의 예측 블록은 적어도 부분적으로 제1 정제된 모션 벡터 및 제2 정제된 모션 벡터에 기초하여 결정됨 -;을 포함하고,
여기서 하나 이상의 조건은 적어도 다음:
제1 시간적 거리(예: TD0)는 제2 시간적 거리(예: TD1)와 동일한 것을 포함하며, 여기서 제1 시간적 거리(TD0)는 현재 픽처의 픽처 순서 카운트 값(POCc)과 제1 참조 이미지의 픽처 순서 카운트 값(POC0) 사이의 차이로 나타내어지고, 제2 시간적 거리(TD1)는 제2 참조 픽처의 픽처 순서 카운트 값(POCc)과 현재 이미지의 픽처 순서 카운트 값(POC1) 사이의 차이로 나타내어진다.
제15, 16, 17 및 18 측면 또는 제15, 16, 17 및 18 측면의 임의의 상술한 구현에 따른 방법의 가능한 구현 형태에서, 제1 참조 픽처는 현재 픽처보다 시간적으로 앞서는 참조 이미지이고, 제2 참조 픽처는 현재 픽처를 시간적으로 뒤따르는 참조 이미지이거나; 또는 제1 참조 픽처는 현재 픽처를 시간적으로 뒤따르는 참조 이미지이고, 제2 참조 픽처는 현재 픽처보다 시간적으로 앞서는 참조 이미지이거나; 또는
상기 제1 참조 픽처는 과거의 참조 이미지이고 상기 제2 참조 픽처는 미래의 참조 이미지이거나; 또는 제1 참조 픽처은 미래의 참조 이미지이고 제2 참조 픽처은 과거의 참조 이미지이다.
본 발명의 일부 측면에 따른 방법은 본 발명의 일부 측면에 따른 장치에 의해 수행될 수 있다. 본 발명의 일부 측면에 따른 방법의 추가 특징 및 구현 형태는 본 발명의 일부 측면에 따른 장치의 기능 및 그 상이한 구현 형태로부터의 직접적인 결과이다.
코딩 디바이스는 인코딩 디바이스 또는 디코딩 디바이스일 수 있다는 점에 유의한다.
다른 측면에 따르면, 본 발명은 프로세서 및 메모리를 포함하는 비디오 스트림을 디코딩하기 위한 장치에 관한 것이다. 메모리는 프로세서가 상술한 방법을 수행하도록 하는 명령을 저장하고 있다.
다른 측면에 따르면, 본 발명은 프로세서 및 메모리를 포함하는 비디오 스트림을 인코딩하기 위한 장치에 관한 것이다. 메모리는 프로세서가 상술한 방법을 수행하도록 하는 명령을 저장하고 있습니다.
다른 측면에 따르면, 실행될 때 하나 이상의 프로세서로 하여 비디오 데이터를 코딩하도록 하는 명령어를 저장한 컴퓨터 판독 가능 저장 매체가 제안된다. 이 명령은 하나 이상의 프로세서가 상술한 방법을 수행하도록 한다.
다른 측면에 따르면, 컴퓨터 프로그램이 컴퓨터에서 실행될 때 상술한 방법을 수행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램 제품이 제공된다.
하나 이상의 실시예들의 세부사항들은 첨부한 도면들 및 아래의 설명에서 기재된다. 다른 특징들, 목적들 및 이점들은 상세한 설명, 도면들 및 청구항들로부터 명백할 것이다.
명확성을 위해, 전술한 실시예들 중 임의의 하나는 본 개시의 범위 내에서 새로운 실시예를 생성하기 위해 다른 전술한 실시예들 중 임의의 하나 이상과 결합될 수 있다.
이들 및 다른 특징들은 첨부된 도면들 및 청구항들 함께 취해지는 다음의 상세한 설명으로부터 더 명확하게 이해될 것이다.
본 개시의 보다 완벽한 이해를 위해, 첨부된 도면들 및 상세한 설명과 관련하여 취해지는 다음의 간략한 설명이 이제 참조되며, 여기서 동일한 참조 번호들은 동일한 부분들을 표현한다.
도 1은 조건적 디코더측 모션 벡터 정제 기법들을 활용할 수 있는 예시적인 코딩 시스템을 예시하는 블록도이다.
도 2는 조건적 디코더측 모션 벡터 정제 기법들을 구현할 수 있는 예시적인 비디오 인코더를 예시하는 블록도이다.
도 3은 조건적 디코더측 모션 벡터 정제 기법들을 구현할 수 있는 비디오 디코더의 예를 예시하는 블록도이다.
도 4는 코딩 디바이스의 개략도이다.
도 5는 인코딩 장치 또는 디코딩 장치의 예를 예시하는 블록도이다.
도 6a는 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 시간적 거리들의 그래픽 예시이다.
도 6b는 디코더측 모션 벡터 정제(DMVR) 절차의 예의 그래픽 예시이다.
도 6c는 도 6b를 참조로 디코더측 모션 벡터 정제(DMVR) 절차의 예를 예시하는 흐름도이다.
도 6d는 디코더측 모션 벡터 정제(DMVR) 절차의 다른 예를 예시하는 흐름도이다.
도 7은 인코딩 방법의 예를 예시하는 흐름도이다.
도 8은 디코딩 방법의 예를 예시하는 흐름도이다.
도 9는 비디오의 현재 픽처 내의 현재 이미지 블록의 인터-예측을 위한 방법의 예를 예시하는 흐름도이다.
도 10은 비디오의 현재 픽처 내의 현재 이미지 블록의 인터-예측을 위한 장치의 예시적인 구조를 도시하는 블록도이다.
도 11은 콘텐츠 전달 서비스를 제공하는 콘텐츠 공급 시스템의 예시적인 구조를 도시하는 블록도이다.
도 12는 단말 디바이스의 예의 구조를 도시하는 블록도이다.
하나 이상의 실시예들의 예시적인 구현이 아래에서 제공되지만, 개시되는 시스템들 및/또는 방법들이, 현재 알려져 있는 것이든 또는 존재하는 것이든, 임의의 수의 기법들을 사용하여 구현될 수 있다는 것이 처음부터 이해되어야 한다. 본 개시은, 본원에서 예시되고 설명되는 예시적인 설계들 및 구현들을 포함하여, 아래에 예시되는 예시적인 구현들, 도면들 및 기법들로 결코 제한되지 않아야 하며, 그들의 등가물들의 전체 범위와 함께 첨부된 청구항들의 범위 내에서 수정될 수 있다.
용어해설 및 약어들의 정의들
DMVR 코더측 모션 벡터 정제
SAD 절대 차들의 합
MV 모션 벡터
MCP 모션 보상된 예측
HEVC 고효율 비디오 코딩
도 1은 양방향 예측(bidirectional prediction) 기법들을 활용할 수 있는 예시적인 코딩 시스템(10)을 예시하는 블록도이다. 도 1에 도시된 바와 같이, 코딩 시스템(10)은 목적지 디바이스(14)에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스(12)를 포함한다. 특히, 소스 디바이스(12)는 컴퓨터-판독가능 매체(16)를 통해 목적지 디바이스(14)에 비디오 데이터를 제공할 수 있다. 소스 디바이스(12) 및 목적지 디바이스(14)는, 데스크톱 컴퓨터들, 노트북(즉, 랩톱) 컴퓨터들, 태블릿 컴퓨터들, 셋-톱 박스들, 텔레폰 핸드셋들, 이를테면 소위 "스마트" 폰들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함하는 광범위한 디바이스들 중 임의의 것을 포함할 수 있다. 일부 경우들에서, 소스 디바이스(12) 및 목적지 디바이스(14)는 무선 통신을 위해 장착될 수 있다.
목적지 디바이스(14)는 컴퓨터-판독가능 매체(16)를 통해 디코딩될 인코딩된 비디오 데이터를 수신할 수 있다. 컴퓨터-판독가능 매체(16)는 소스 디바이스(12)로부터 목적지 디바이스(14)로 인코딩된 비디오 데이터를 이동할 수 있는 임의의 타입의 매체 또는 디바이스를 포함할 수 있다. 일 예에서, 컴퓨터-판독가능 매체(16)는, 소스 디바이스(12)가 인코딩된 비디오 데이터를 목적지 디바이스(14)로 실시간으로 직접 전송하는 것을 가능하게 하는 통신 매체를 포함할 수 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고 목적지 디바이스(14)로 전송될 수 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 이를테면 라디오 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인들을 포함할 수 있다. 통신 매체는, 근거리 네트워크, 광역 네트워크 또는 글로벌 네트워크(이를테면, 인터넷)와 같은 패킷-기반 네트워크의 일부를 형성할 수 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스(12)로부터 목적지 디바이스(14)로의 통신을 가능하게 하는 데 유용할 수 있는 임의의 다른 장비를 포함할 수 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스(22)로부터 저장 디바이스로 출력될 수 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수 있다. 저장 디바이스는, 다양한 분산형 또는 로컬로 액세스되는 데이터 저장 매체들, 이를테면 하드 드라이브, 블루-레이 디스크들, 디지털 비디오 디스크(DVD: digital video disk)들, 콤팩트 디스크 판독-전용 메모리(CD-ROM: Compact Disc Read-Only Memory)들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적절한 디지털 저장 매체들 중 임의의 것을 포함할 수 있다. 추가 예에서, 저장 디바이스는 소스 디바이스(12)에 의해 생성된 인코딩된 비디오를 저장할 수 있는 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수 있다. 목적지 디바이스(14)는, 스트리밍 또는 다운로드를 통해 저장 디바이스로부터, 저장된 비디오 데이터에 액세스할 수 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스(14)로 전송할 수 있는 임의의 타입의 서버일 수 있다. 예시적인 파일 서버들은, (예를 들어, 웹 사이트용) 웹 서버, 파일 전송 프로토콜(FTP) 서버, NAS(Network Attached Storage) 디바이스들 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스(14)는, 인터넷 연결을 포함하는 임의의 표준 데이터 연결을 통해, 인코딩된 비디오 데이터에 액세스할 수 있다. 이는, 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는 데 적합한, 무선 채널(예를 들어, Wi-Fi 연결), 유선 연결(예를 들어, 디지털 가입자 회선(DSL), 케이블 모뎀 등) 또는 이 둘의 조합을 포함할 수 있다. 저장 디바이스로부터 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송 또는 이들의 조합일 수 있다.
본 개시의 기법들이 반드시 무선 애플리케이션들 또는 설정들로 제한되는 것은 아니다. 이 기법들은 다양한 멀티미디어 애플리케이션들 중 임의의 것, 이를테면, 오버 디 에어 텔레비전(over-the-air television) 방송들, 케이블 텔레비전 전송들, 위성 텔레비전 전송들, 인터넷 스트리밍 비디오 전송들, 이를테면 HTTP 동적 적응 스트리밍(DASH: dynamic adaptive streaming over HTTP), 데이터 저장 매체에 인코딩된 디지털 비디오, 데이터 저장 매체에 저장된 디지털 비디오의 디코딩 또는 다른 애플리케이션들을 지원하는 비디오 코딩에 적용될 수 있다. 일부 예들에서, 코딩 시스템(10)은, 비디오 스트리밍, 비디오 재생, 비디오 방송 및/또는 비디오 텔레포니와 같은 애플리케이션들을 지원하기 위해 단방향 또는 양방향 비디오 전송을 지원하도록 구성될 수 있다.
도 1의 예에서, 소스 디바이스(12)는 비디오 소스(18), 비디오 인코더(20) 및 출력 인터페이스(22)를 포함한다. 목적지 디바이스(14)는 입력 인터페이스(28), 비디오 디코더(30) 및 디스플레이 디바이스(32)를 포함한다. 본 개시에 따르면, 소스 디바이스(12)의 비디오 인코더(20) 및/또는 목적지 디바이스(14)의 비디오 디코더(30)는 양방향 예측을 위한 기법들을 적용하도록 구성될 수 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 어레인지먼트(arrangement)들을 포함할 수 있다. 예를 들어, 소스 디바이스(12)는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수 있다. 마찬가지로, 목적지 디바이스(14)는, 통합된 디스플레이 디바이스를 포함하는 대신, 외부 디스플레이 디바이스와 인터페이싱할 수 있다.
도 1의 예시된 코딩 시스템(10)은 단지 일 예일뿐이다. 양방향 예측을 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수 있다. 본 개시의 기법들은 일반적으로, 비디오 코딩 디바이스에 의해 수행되지만, 이 기법들은 또한, 통상적으로 "CODEC"으로 지칭되는 비디오 인코더/디코더에 의해 수행될 수 있다. 더욱이, 본 개시의 기법들은 또한, 비디오 전처리 프로세서(video preprocessor)에 의해 수행될 수 있다. 비디오 인코더 및/또는 디코더는 그래픽 처리 장치(GPU: graphics processing unit) 또는 유사한 디바이스일 수 있다.
소스 디바이스(12) 및 목적지 디바이스(14)는, 소스 디바이스(12)가 목적지 디바이스(14)로의 전송을 위해, 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 소스 디바이스(12) 및 목적지 디바이스(14)는, 소스 디바이스(12) 및 목적지 디바이스(14) 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수 있다. 따라서, 코딩 시스템(10)은, 예를 들어 비디오 스트리밍, 비디오 재생, 비디오 방송 또는 비디오 텔레포니를 위해 비디오 디바이스들(12, 14) 간의 단방향 또는 양방향 비디오 전송을 지원할 수 있다.
소스 디바이스(12)의 비디오 소스(18)는 비디오 캡처 디바이스, 이를테면 비디오 카메라, 이전에 캡처된 비디오를 보유하는 비디오 아카이브(video archive), 및/또는 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스를 포함할 수 있다. 추가 대안으로서, 비디오 소스(18)는, 소스 비디오로서 또는 라이브 비디오, 아카이브된(archived) 비디오 및 컴퓨터-생성 비디오의 조합으로서 컴퓨터 그래픽-기반 데이터를 생성할 수 있다.
일부 경우들에서, 비디오 소스(18)가 비디오 카메라인 경우, 소스 디바이스(12) 및 목적지 디바이스(14)는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수 있다. 그러나, 위에서 언급된 바와 같이, 본 개시에서 설명되는 기법들은 일반적으로 비디오 코딩에 적용될 수 있고, 그리고 무선 및/또는 유선 애플리케이션들에 적용될 수 있다. 각각의 경우에, 캡처된, 사전-캡처된 또는 컴퓨터-생성 비디오는 비디오 인코더(20)에 의해 인코딩될 수 있다. 이후, 인코딩된 비디오 정보는 출력 인터페이스(22)에 의해 컴퓨터-판독가능 매체(16)에 출력될 수 있다.
컴퓨터-판독가능 매체(16)는 일시적 매체들, 이를테면 무선 방송 또는 유선 네트워크 전송, 또는 저장 매체들(즉, 비-일시적 저장 매체들), 이를테면 하드 디스크, 플래시 드라이브, 컴팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크 또는 다른 컴퓨터-판독가능 매체들을 포함할 수 있다. 일부 예들에서, 네트워크 서버(미도시)는 소스 디바이스(12)로부터 인코딩된 비디오 데이터를 수신하고 인코딩된 비디오 데이터를, 예를 들어, 네트워크 전송을 통해 목적지 디바이스(14)에 제공할 수 있다. 유사하게, 디스크 스탬핑 설비(disc stamping facility)와 같은 매체 생산 설비의 컴퓨팅 디바이스는, 소스 디바이스(12)로부터 인코딩된 비디오 데이터를 수신할 수 있고, 그리고 인코딩된 비디오 데이터를 보유하는 디스크를 생성할 수 있다. 따라서, 컴퓨터-판독가능 매체(16)는 다양한 예들에서 다양한 형태들의 하나 이상의 컴퓨터-판독가능 매체들을 포함하는 것으로 이해될 수 있다.
목적지 디바이스(14)의 입력 인터페이스(28)는 컴퓨터-판독가능 매체(16)로부터 정보를 수신한다. 컴퓨터-판독가능 매체(16)의 정보는 비디오 인코더(20)에 의해 정의되는 신택스 정보(syntax information)를 포함할 수 있으며, 이는 또한 비디오 디코더(30)에 의해 사용되며, 블록들 및 다른 코딩된 유닛들, 예를 들어, 픽처들의 그룹(GOPs: group of pictures)의 처리 및/또는 특징들을 설명하는 신택스 요소들을 포함한다. 디스플레이 디바이스(32)는 디코딩된 비디오 데이터를 사용자에게 표시하며, 다양한 디스플레이 디바이스들 중 임의의 것, 이를테면 음극선관(CRT), 액정 디스플레이(LCD), 플라즈마 디스플레이, 유기 발광 다이오드(OLED) 디스플레이 또는 다른 타입의 디스플레이 디바이스를 포함할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는 현재 개발중인 HEVC(High Efficiency Video Coding) 표준과 같은 비디오 코딩 표준에 따라 동작할 수 있으며, HEVC 테스트 모델(HM)을 따를 수 있다. 대안적으로, 비디오 인코더(20) 및 비디오 디코더(30)는 다른 독점적 또는 산업 표준들, 이를테면, ITU-T(International Telecommunications Union Telecommunication Standardization Sector) H.264 표준(대안적으로, MPEG(Motion Picture Expert Group)-4, Part 10, AVC(Advanced Video Coding), H.265/HEVC, 또는 그러한 표준들의 확장들로 지칭됨) 따라 동작할 수 있다. 그러나, 본 개시의 기법들은 임의의 특정 코딩 표준으로 제한되지 않는다. 비디오 코딩 표준들의 다른 예들은 MPEG-2 및 ITU-T H.263을 포함한다. 도 1에 도시되지 않았지만, 일부 양상들에서, 비디오 인코더(20) 및 비디오 디코더(30)는 각각 오디오 인코더 및 디코더와 통합될 수 있으며, 그리고 공통 데이터 스트림 또는 별도의 데이터 스트림들에서 오디오 및 비디오 둘 다의 인코딩을 처리하기 위해, 적절한 멀티플렉서-디멀티플렉서(MUX-DEMUX) 유닛들 또는 다른 하드웨어 및 소프트웨어를 포함할 수 있다. 적용가능한 경우, MUX-DEMUX 유닛들은, ITU H.223 멀티플렉서 프로토콜 또는 다른 프로토콜들, 이를테면 사용자 데이터그램 포로토콜(UDPl)을 준수할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는 각각, 다양한 적절한 인코더 회로소자 중 임의의 것, 이를테면, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서(DSP)들, 주문형 집적 회로(ASIC)들, 필드 프로그램가능 어레이(FPGA)들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 기법들이 소프트웨어로 부분적으로 구현되는 경우, 디바이스는, 소프트웨어에 대한 명령들을 적절한 비-일시적 컴퓨터-판독가능 매체에 저장할 수 있으며, 본 개시의 기법들을 수행하기 위해 하나 이상의 프로세서들을 사용하여 하드웨어에서 명령들을 실행할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수 있으며, 이들 중 어느 하나는 개별 디바이스에 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다. 비디오 인코더(20) 및/또는 비디오 디코더(30)를 포함하는 디바이스는, 집적 회로, 마이크로프로세서, 및/또는 무선 통신 디바이스, 이를테면 셀룰러 텔레폰을 포함할 수 있다.
도 2는, 양방향 예측 기법들을 구현할 수 있는 비디오 인코더(20)의 예를 예시하는 블록도이다. 비디오 인코더(20)는 비디오 슬라이스들 내에서 비디오 블록들의 인트라-코딩 및 인터-코딩을 수행할 수 있다. 인트라-코딩은 주어진 비디오 프레임 또는 픽처 내에서 비디오의 공간적 리던던시(spatial redundancy)를 감소시키나 제거하기 위해 공간적 예측에 의존한다. 인터-코딩은 비디오 시퀀스의 인접한 프레임들 또는 픽처들 내에서 비디오의 시간적 리던던시(temporal redundancy)를 감소시키거나 제거하기 위해 시간적 예측에 의존한다. 인트라-모드(I 모드)는 여러 공간적 기반 코딩 모드들 중 임의의 것을 지칭할 수 있다. 단방향 예측(P 모드) 또는 양-예측(B 모드)와 같은 인터-모드들은 여러 시간적-기반 코딩 모드들 중 임의의 것을 지칭할 수 있다.
도 2에 도시된 바와 같이, 비디오 인코더(20)는 인코딩될 비디오 프레임 내에서 현재 비디오 블록을 수신한다. 도 2의 예에서, 비디오 인코더(20)는 모드 선택 유닛(40), 참조 프레임 메모리(64), 합산기(50), 변환 처리 유닛(52), 양자화 유닛(54) 및 엔트로피 코딩 유닛(56)을 포함한다. 모드 선택 유닛(40)은 차례로 모션 보상 유닛(44), 모션 추정 유닛(42), 인트라-예측 유닛(46) 및 파티션 유닛(partition unit)(48)을 포함한다. 비디오 블록 재구성을 위해, 비디오 인코더(20)는 또한 역양자화 유닛(58), 역변환 유닛(60) 및 합산기(62)를 포함한다. 블록 경계들을 필터링하여, 재구성된 비디오로부터 블록성 아티팩트(blockiness artifact)들을 제거하기 위해, 디블록킹 필터(도 2에 도시되지 않음)가 또한 포함될 수 있다. 원하는 경우, 디블로킹 필터는 통상적으로 합산기(62)의 출력을 필터링할 것이다. 디블로킹 필터와 함께 추가의 필터들(루프 내 또는 루프 뒤)이 또한 사용될 수 있다. 이러한 필터들은 간결함을 위해 도시되지 않지만, 원하는 경우, 합산기(50)의 출력을 (루프 내 필터로서) 필터링할 수 있다.
인코딩 프로세스 동안, 비디오 인코더(20)는 코딩될 비디오 프레임 또는 슬라이스를 수신한다. 프레임 또는 슬라이스는 다수의 비디오 블록들로 분할될 수 있다. 모션 추정 유닛(42) 및 모션 보상 유닛(44)은 시간적 예측을 제공하기 위해, 하나 이상의 참조 프레임들에서 하나 이상의 블록들에 대해 수신된 비디오 블록의 인터-예측 코딩을 수행한다. 인트라-예측 유닛(46)은 대안적으로, 공간적 예측을 제공하기 위해, 코딩될 블록과 동일한 프레임 또는 슬라이스에서 하나 이상의 이웃하는 블록들에 대해 수신된 비디오 블록의 인트라-예측 코딩을 수행할 수 있다. 비디오 인코더(20)는, 예를 들어, 비디오 데이터의 각각의 블록에 대한 적절한 코딩 모드를 선택하기 위해 다수의 코딩 패스(coding pass)들을 수행할 수 있다.
더욱이, 파티션 유닛(48)은, 이전 코딩 패스들에서의 이전 파티셔닝 방식들의 평가에 기반하여, 비디오 데이터의 블록들을 서브-블록들로 파티셔닝할 수 있다. 예를 들어, 파티션 유닛(48)은 초기에 프레임 또는 슬라이스를 최대 코딩 유닛(LCU: largest coding unit)들로 파티셔닝하고, LCU들 각각을 레이트-왜곡(rate-distortion) 분석(예를 들어, 레이트-왜곡 최적화)에 기반하여 서브-코딩 유닛(서브-CU)들로 파티셔닝할 수 있다. 모드 선택 유닛(40)은 추가로, LCU를 서브-CU들로 파티셔닝하는 것을 지시하는 쿼드트리 데이터 구조(quadtree data structure)를 생성할 수 있다. 쿼드트리의 리프-노드(leaf-node) CU들은 하나 이상의 예측 유닛(PU)들 및 하나 이상의 변환 유닛(TU)들을 포함할 수 있다.
본 개시은, HEVC의 맥락에서 CU, PU 또는 TU 중 임의의 것을 또는 다른 표준들의 맥락에서 유사한 데이터 구조들(예를 들어, H.264/AVC에서 매크로블록들 및 이의 서브-블록들)을 지칭하기 위해 "블록"이란 용어를 사용한다. CU는 코딩 노드, 코딩 노드와 연관된 PU들 및 TU들을 포함한다. CU의 크기는 코딩 노드의 크기에 해당하며 형상이 정사각형이다. CU의 크기는 범위가 8x8 픽셀들에서 최대 64x64 픽셀들 이상인 트리블록 크기까지일 수 있다. 각각 CU는 하나 이상의 PU들 및 하나 이상의 TU들을 포함할 수 있다. CU와 연관된 신택스 데이터는 예를 들어 CU를 하나 이상의 PU들로 파티셔닝하는 것을 설명할 수 있다. 파티셔닝 모드들은, CU가 스킵하는지, 직접 모드 인코딩되는지, 인트라-예측 모드 인코딩되는지 또는 인터-예측 모드 인코딩되는지 사이에서 상이할 수 있다. PU들은 정사각형이 아닌 형상으로 파티셔닝될 수 있다. CU와 연관된 신택스 데이터는 또한, 예를 들어, 쿼드트리에 따라 CU를 하나 이상의 TU들로 파티셔닝하는 것을 설명할 수 있다. 실시예에서, CU, PU 또는 TU는 정사각형 또는 정사각형이 아닌 (예를 들어, 직사각형) 형상일 수 있다.
모드 선택 유닛(40)은, 예를 들어 에러 결과들에 기반하여 코딩 모드들 중 하나(인트라 또는 인터)를 선택할 수 있으며, 결과적인 인트라-코딩된 또는 인터-코딩된 블록을, 잔차 블록 데이터(residual block data)를 생성하기 위해 합산기(50)에 그리고 참조 프레임으로서 사용하기 위한 인코딩된 블록을 재구성하기 위해 합산기(62)에 제공할 수 있다. 모드 선택 유닛(40)은 또한 신택스 요소들, 이를테면 모션 벡터들, 인트라-모드 지시자(indicator)들, 파티션 정보 및 다른 그러한 신택스 정보를 엔트로피 코딩 유닛(56)에 제공한다.
모션 추정 유닛(42) 및 모션 보상 유닛(44)은 고도로 통합될 수 있지만, 개념적 목적을 위해 별도로 예시된다. 모션 추정 유닛(42)에 의해 수행되는 모션 추정은 비디오 블록들에 대한 모션을 추정하는 모션 벡터를 생성하는 프로세스이다. 예를 들어, 모션 벡터는, 현재 프레임(또는 다른 코딩된 유닛) 내에서 코딩되고 있는 현재 블록에 대한 기준 프레임(또는 다른 코딩된 유닛) 내의 예측 블록에 대한 현재 비디오 프레임 또는 픽처 내에서의 비디오 블록의 PU의 변위를 지시할 수 있다. 예측 블록은, 절대 차의 합(SAD), 제곱 차의 합(SSD: sum of square difference) 또는 다른 차 메트릭들에 의해 결정될 수 있는, 픽셀 차 측면에서 코딩될 블록과 밀접하게 매칭하는 것으로 확인된 블록이다. 일부 예들에서, 비디오 인코더(20)는 참조 프레임 메모리(64)에 저장된 참조 픽처들의 서브-정수 픽셀(sub-integer pixel) 포지션들에 대한 값을 계산할 수 있다. 예를 들어, 비디오 인코더(20)는 참조 픽처의 1/4 픽셀 포지션들, 1/8 픽셀 포지션들, 또는 다른 분수 픽셀 포지션들의 값들을 보간할 수 있다. 따라서, 모션 추정 유닛(42)은 전체 픽셀 포지션들 및 분수 픽셀 포지션들에 대한 모션 서치를 수행하고 분수 픽셀 정밀도로 모션 벡터를 출력할 수 있다.
모션 추정 유닛(42)은, PU의 포지션을 참조 픽처의 예측 블록의 포지션과 비교함으로써, 인터-코딩된 슬라이스에서 비디오 블록의 PU에 대한 모션 벡터를 계산한다. 참조 픽처는 제1 참조 픽처 목록(목록 0) 또는 제2 참조 픽처 목록(목록 1)으로부터 선택될 수 있으며, 이들 각각은 참조 프레임 메모리(64)에 저장된 하나 이상의 참조 픽처들을 식별한다. 모션 추정 유닛(42)은 계산된 모션 벡터를 엔트로피 코딩 유닛(56) 및 모션 보상 유닛(44)으로 송신한다.
모션 보상 유닛(44)에 의해 수행되는 모션 보상은 모션 추정 유닛(42)에 의해 결정된 모션 벡터에 기반하여 예측 블록을 페칭(fetching)하거나 생성하는 것을 수반할 수 있다. 다시, 모션 추정 유닛(42) 및 모션 보상 유닛(44)은 일부 예들에서 기능적으로 통합될 수 있다. 현재 비디오 블록의 PU에 대한 모션 벡터를 수신할 때, 모션 보상 유닛(44)은, 참조 픽처 목록들 중 하나에서 모션 벡터가 가리키는 예측 블록의 위치를 찾을 수 있다. 합산기(50)는, 아래에서 논의되는 바와 같이, 코딩되는 현재 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여, 픽셀 차 값들을 형성함으로써 잔차 비디오 블록을 형성한다. 일반적으로, 모션 추정 유닛(42)은 루마(luma) 성분들에 대한 모션 추정을 수행하고, 모션 보상 유닛(44)은, 루마 성분에 기반하여, 크로마(chroma) 성분들 및 루마 성분들 둘 다에 대해 계산된 모션 벡터를 사용한다. 모드 선택 유닛(40)은 또한, 비디오 슬라이스의 비디오 블록들의 디코딩에서 비디오 디코더(30)가 사용할 비디오 블록들 및 비디오 슬라이스와 연관된 신택스 요소들을 생성할 수 있다.
인트라-예측 유닛(46)은, 위에서 설명된 바와 같이, 모션 추정 유닛(42) 및 모션 보상 유닛(44)에 의해 수행되는 인터-예측에 대한 대안으로서, 현재 블록을 인트라-예측할 수 있다. 특히, 인트라-예측 유닛(46)은 현재 블록을 인코딩하기 위해 사용할 인트라-예측 모드를 결정할 수 있다. 일부 예들에서, 인트라-예측 유닛(46)은 다양한 인트라-예측 모드들을 사용하여, 예를 들어 개별 인코딩 패스들 동안, 현재 블록을 인코딩할 수 있으며, 인트라-예측 유닛(46)(또는 일부 예들에서, 모드 선택 유닛(40))은 테스트된 모드들로부터 사용할 적절한 인트라-예측 모드를 선택할 수 있다.
예를 들어, 인트라-예측 유닛(46)은 다양한 테스트된 인트라-예측 모드들에 대한 레이트-왜곡 분석을 사용하여 레이트-왜곡 값들을 계산하고, 테스트된 모드들 중에서 최상 레이트-왜곡 특징들을 갖는 인트라-예측 모드를 선택할 수 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록과, 인코딩된 블록을 생성하기 위해 인코딩되었던 원래의, 인코딩되지 않은 블록 사이의 왜곡(또는 에러)의 양뿐만 아니라, 인코딩된 블록을 생성하기 위해 사용되는 비트레이트(즉, 비트들의 수)를 결정한다. 인트라-예측 유닛(46)은, 어떤 인트라-예측 모드가 블록에 대한 최상 레이트-왜곡 값을 나타내는 지를 결정하기 위해, 다양한 인코딩된 블록들에 대한 레이트들 및 왜곡들로부터 비율(ration)들을 계산할 수 있다.
또한, 인트라-예측 유닛(46)은 깊이 모델링 모드(DMM: depth modeling mode)를 사용하여 깊이 맵의 깊이 블록들을 코딩하도록 구성될 수 있다. 모드 선택 유닛(40)은, 이용가능한 DMM 모드가, 예를 들어, 레이트-왜곡 최적화(RDO)를 사용하여 인트라-예측 모드 및 다른 DMM 모드들보다 더 나은 코딩 결과들을 생성하는지 여부를 결정할 수 있다. 깊이 맵에 대응하는 텍스처 이미지에 대한 데이터는 참조 프레임 메모리(64)에 저장될 수 있다. 모션 추정 유닛(42) 및 모션 보상 유닛(44)은 또한, 깊이 맵의 깊이 블록들을 인터-예측하도록 구성될 수 있다.
블록에 대한 인트라-예측 모드(예를 들어, 종래의 인트라-예측 모드, 또는 DMM 모드들 중 하나)를 선택한 후, 인트라-예측 유닛(46)은 블록에 대해 선택된 인트라-예측 모드를 지시하는 정보를 엔트로피 코딩 유닛(56)에 제공할 수 있다. 엔트로피 코딩 유닛(56)은 선택된 인트라-예측 모드를 지시하는 정보를 인코딩할 수 있다. 비디오 인코더(20)는, 복수의 인트라-예측 모드 인덱스 표들 및 복수의 수정된 인트라-예측 모드 인덱스 표들(또한 코드워드 맵핑 표들로 지칭됨)을 포함할 수 있는 전송된 비트스트림 구성 데이터에, 다양한 블록들에 대한 인코딩 컨텍스트들의 정의들, 및 컨텍스트들 각각에 대해 사용할 가장 가능성있는 인트라-예측 모드, 인트라-예측 모드 인덱스 표 및 수정된 인트라-예측 모드 인덱스 표의 지시(indication)들을 포함할 수 있다.
비디오 인코더(20)는, 코딩되는 원래의 비디오 블록으로부터, 모드 선택 유닛(40)으로부터의 예측 데이터를 감산함으로써 잔차 비디오 블록을 형성한다. 합산기(50)는 이 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 표현한다.
변환 처리 유닛(52)은, 이산 코사인 변환(DCT: discrete cosine transform) 또는 개념적으로 유사한 변환과 같은 변환을 잔차 블록에 적용하여, 잔차 변환 계수 값들을 포함하는 비디오 블록을 생성한다. 변환 처리 유닛(52)은 개념적으로 DCT와 유사한 다른 변환들을 수행할 수 있다. 웨이블릿 변환, 정수 변환들, 서브-밴드 변환들 또는 다른 타입들의 변환들이 또한 사용될 수 있다.
변환 처리 유닛(52)은 변환을 잔차 블록에 적용하여, 잔차 변환 계수들의 블록을 생성한다. 변환은, 잔차 정보를 픽셀 값 도메인으로부터 주파수 도메인과 같은 변환 도메인으로 컨버팅할 수 있다. 변환 처리 유닛(52)은 결과적인 변환 계수들을 양자화 유닛(54)에 송신할 수 있다. 양자화 유닛(54)은 비트 레이트를 더욱 감소시키기 위해 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 깊이를 감소시킬 수 있다. 양자화의 정도는 양자화 파라미터를 조정함으로써 수정될 수 있다. 그런 다음, 일부 예들에서, 양자화 유닛(54)은 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수 있다. 대안적으로, 엔트로피 코딩 유닛(56)이 스캔을 수행할 수 있다.
양자화 후에, 엔트로피 코딩 유닛(56)은 양자화된 변환 계수들을 엔트로피 코딩한다. 예를 들어, 엔트로피 코딩 유닛(56)은 컨텍스트 적응 가변 길이 코딩(CAVLC: context adaptive variable length coding), 컨텍스트 적응 이진 산술 코딩(CABAC: context adaptive binary arithmetic coding), 신택스-기반 컨텍스트-적응 이진 산술 코딩(SBAC: syntax-based context-adaptive binary arithmetic coding), 확률 간격 파티셔닝 엔트로피(PIPE: probability interval partitioning entropy) 코딩 또는 다른 엔트로피 코딩 기법을 수행할 수 있다. 컨텍스트-기반 엔트로피 코딩의 경우, 컨텍스트는 이웃하는 블록들에 기반할 수 있다. 엔트로피 코딩 유닛(56)에 의한 엔트로피 코딩 후에, 인코딩된 비트스트림은 다른 디바이스(예를 들어, 비디오 디코더(30))로 전송되거나 또는 나중 전송 또는 검색을 위해 아카이브될 수 있다.
역양자화 유닛(58) 및 역변환 유닛(60)은 각각 역양자화 및 역변환을 적용하여, 예를 들어 나중에 참조 블록으로서 사용하기 위해 픽셀 도메인에 잔차 블록을 재구성한다. 모션 보상 유닛(44)은 참조 프레임 메모리(64)의 프레임들 중 하나의 프레임의 예측 블록에 잔차 블록을 더함으로써 참조 블록을 계산할 수 있다. 모션 보상 유닛(44)은 또한, 하나 이상의 보간 필터들에 재구성된 잔차 블록에 적용하여 모션 추정에 사용할 서브-정수 픽셀 값들을 계산할 수 있다. 합산기(62)는 모션 보상 유닛(44)에 의해 생성된 모션 보상된 예측 블록에 재구성된 잔차 블록을 더하여 참조 프레임 메모리(64)에 저장할 재구성된 비디오 블록을 생성한다. 재구성된 비디오 블록은 모션 추정 유닛(42) 및 모션 보상 유닛(44)에 의해 후속 비디오 프레임에서 블록을 인터-코딩하기 위한 참조 블록으로서 사용될 수 있다.
비디오 인코더(20)의 다른 구조적 변경들이 비디오 스트림을 인코딩하기 위해 사용될 수 있다. 예컨대, 비-변환(non-transform) 기반 인코더(20)는 특정 블록들 또는 프레임들에 대한 변환 처리 유닛(52)없이 직접 잔차 신호를 양자화할 수 있다. 다른 구현에서, 인코더(20)는 단일 유닛으로 결합된 양자화 유닛(54) 및 역양자화 유닛(58)을 가질 수 있다.
도 3은 양방향 예측 기법들을 구현할 수 있는 비디오 디코더(30)의 예를 예시하는 블록도이다. 도 3의 예에서, 비디오 디코더(30)는 엔트로피 디코딩 유닛(70), 모션 보상 유닛(72), 인트라-예측 유닛(74), 역양자화 유닛(76), 역변환 유닛(78), 참조 프레임 메모리(82) 및 합산기(80)를 포함한다. 일부 예들에서, 비디오 디코더(30)는 비디오 인코더(20)(도 2)와 관련하여 설명된 인코딩 패스와 일반적으로 상반되는(reciprocal) 디코딩 패스를 수행할 수 있다. 모션 보상 유닛(72)은 엔트로피 디코딩 유닛(70)으로부터 수신된 모션 벡터들에 기반하여 예측 데이터를 생성할 수 있는 반면, 인트라-예측 유닛(74)은 엔트로피 디코딩 유닛(70)으로부터 수신된 인트라-예측 모드 지시자들에 기반하여 예측 데이터를 생성할 수 있다.
디코딩 프로세스 동안, 비디오 디코더(30)는, 인코딩된 비디오 슬라이스의 비디오 블록들 그리고 비디오 인코더(20)로부터의 연관된 신택스 요소들을 표현하는 인코딩된 비디오 비트스트림을 수신한다. 비디오 디코더(30)의 엔트로피 디코딩 유닛(70)은 비트스트림을 엔트로피 디코딩하여 양자화된 계수들, 모션 벡터들 또는 인트라-예측 모드 지시자들 및 다른 신택스 요소들을 생성한다. 엔트로피 디코딩 유닛(70)은 모션 벡터들 및 다른 신택스 요소들을 모션 보상 유닛(72)으로 포워딩한다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨에서 신택스 요소들을 수신할 수 있다.
비디오 슬라이스가 인트라-코딩된(I) 슬라이스로서 코딩되면, 인트라 예측 유닛(74)은 현재 프레임 또는 픽처의 이전에 디코딩된 블록으로부터의 데이터 및 시그널링된 인트라 예측 모드에 기반하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수 있다. 비디오 프레임이 인터-코딩된(즉, B, P 또는 GPB) 슬라이스로서 코딩된 경우, 모션 보상 유닛(72)은 엔트로피 디코딩 유닛(70)으로부터 수신된 모션 벡터들 및 다른 신택스 요소들에 기반하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 픽처 목록들 중 하나 내의 참조 픽처들 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는, 참조 프레임 메모리(82)에 저장된 참조 픽처들에 기반한 디폴트 구성 기법들을 사용하여 참조 프레임 목록들, 목록 0 및 목록 1을 구성할 수 있다.
모션 보상 유닛(72)은 모션 벡터들 및 다른 신택스 요소들을 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 예측 정보를 사용하여, 디코딩되고 있는 현재 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 모션 보상 유닛(72)은, 수신된 신택스 요소들 중 일부를 사용하여, 비디오 슬라이스의 비디오 블록들을 코딩하기 위해 사용되는 예측 모드(예를 들어, 인트라- 또는 인터-예측), 인터-예측 슬라이스 타입(예를 들어, B 슬라이스, P 슬라이스 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 목록들 중 하나 이상의 목록에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-인코딩된 비디오 블록의 인터-예측 상태, 및 현재 비디오 슬라이스의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정한다.
모션 보상 유닛(72)은 또한 보간 필터들에 기반하여 보간을 수행할 수 있다. 모션 보상 유닛(72)은 비디오 블록들의 인코딩 동안 비디오 인코더(20)에 의해 사용되는 보간 필터들을 사용하여, 참조 블록들의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수 있다. 이 경우, 모션 보상 유닛(72)은, 수신된 신택스 요소들로부터 비디오 인코더(20)에 의해 사용되는 보간 필터들을 결정하고, 보간 필터들을 사용하여 예측 블록들을 생성할 수 있다.
깊이 맵에 대응하는 텍스처 이미지에 대한 데이터가 참조 프레임 메모리(82)에 저장될 수 있다. 모션 보상 유닛(72)은 또한 깊이 맵의 깊이 블록들을 인터-예측하도록 구성될 수 있다.
당업자들에 의해 인식되는 바와 같이, 도 1의 코딩 시스템(10)은 다양한 비디오 코딩 또는 압축 기법들을 구현하는 데 적합하다. 일부 비디오 압축 기법들, 이를테면, 인터 예측, 인트라 예측 및 루프 필터들이 효과적인 것으로 입증되었다. 따라서, 비디오 압축 기법들이 다양한 비디오 코딩 표준들, 이를테면 H.264/AVC 및 H.265/HEVC에 채택되어 왔다.
다양한 코딩 툴들, 이를테면 적응 모션 벡터 예측(AMVP: adaptive motion vector prediction) 및 병합 모드(MERGE: merge mode)가 모션 벡터(MV)들을 예측하기 위해 그리고 인터 예측 효율성을, 그에 따라 전체 비디오 압축 효율성을 향상시키기 위해 사용된다.
위에서 언급된 MV들은 양-예측(bi-prediction)에 활용된다. 양-예측 연산에서, 2개의 예측 블록들이 형성된다. 하나의 예측 블록은 목록 0의 MV(본원에서 MV0로 지칭됨)를 사용하여 형성된다. 다른 예측 블록은 목록 1의 MV(본원에서 MV1으로 지칭됨)를 사용하여 형성된다. 그런 다음, 2개의 예측 블록들은 단일 예측 신호(예를 들어, 예측 블록 또는 예측자 블록)를 형성하기 위해 결합(예를 들어, 평균화)된다.
압축된 비트스트림을 디코딩하기 위해 비디오 디코더(30)의 다른 변형이 사용될 수 있다. 예를 들어, 디코더(30)는 루프 필터링 유닛없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비-변환 기반 디코더(30)는, 특정 블록들 또는 프레임들에 대한 역변환 처리 유닛(78)없이 직접 잔차 신호를 역-양자화할 수 있다. 다른 구현에서, 비디오 디코더(30)는 단일 유닛으로 결합된 역양자화 유닛(76) 및 역변환 처리 유닛(78)을 가질 수 있다.
도 5는 본 개시의 실시예에 따른 코딩 디바이스(500)의 개략도이다. 코딩 디바이스(500)는, 본원에서 설명되는 바와 같이, 개시된 실시예들을 구현하는 데 적합하다. 실시예에서, 코딩 디바이스(500)는 도 1의 비디오 디코더(30)와 같은 디코더 또는 도 1의 비디오 인코더(20)와 같은 인코더일 수 있다. 실시예에서, 코딩 디바이스(500)는, 위에서 설명된 바와 같이, 도 1의 비디오 디코더(30) 또는 도 1의 비디오 인코더(20)의 하나 이상의 컴포넌트들일 수 있다.
코딩 디바이스(500)는 데이터를 수신하기 위한 진입 포트들(510) 및 수신기 유닛들(Rx)(520); 데이터를 처리하는 프로세서, 로직 유닛 또는 중앙 처리 장치(CPU)(530); 데이터를 전송하기 위한 전송기 유닛들(Tx)(540) 및 배출 포트들(550); 및 데이터를 저장하기 위한 메모리(560)를 포함한다. 코딩 디바이스(500)는 또한, 광학 또는 전기 신호들의 배출 및 진입을 위한 진입 포트들(510), 수신기 유닛들(520), 전송기 유닛들(540) 및 배출 포트들(550)에 커플링된, 광학-전기(OE) 컴포넌트들 및 전기-광학(EO) 컴포넌트들을 포함할 수 있다.
프로세서(530)는 하드웨어 및 소프트웨어로 구현된다. 프로세서(530)는 하나 이상의 CPU 칩들, 코어들(예를 들어, 멀티 코어 프로세서로서), FPGA들, ASIC들 및 DSP들로서 구현될 수 있다. 프로세서(530)는 진입 포트들(510), 수신기 유닛들(520), 전송기 유닛들(540), 배출 포트들(550) 및 메모리(560)와 통신한다. 프로세서(530)는 코딩 모듈(570)을 포함한다. 코딩 모듈(570)은 위에서 설명된 개시된 실시예들을 구현한다. 예컨대, 코딩 모듈(570)은 다양한 코딩 동작들을 구현, 처리, 준비 또는 제공한다. 따라서, 코딩 모듈(570)의 포함은 코딩 디바이스(500)의 기능에 대한 실질적인 개선을 제공하고, 코딩 디바이스(500)의 상이한 상태로의 변환을 달성한다. 대안적으로, 코딩 모듈(570)은, 메모리(560)에 저장되고 프로세서(530)에 의해 실행되는 명령들로서 구현된다.
메모리(560)는, 하나 이상의 디스크들, 테이프 드라이브들 및 솔리드 스테이트 드라이브들을 포함하며, 오버-플로우 데이터 저장 디바이스로서 사용되어, 이러한 프로그램들이 실행을 위해 선택될 때, 프로그램들을 저장하고 프로그램 실행 동안 판독되는 명령들 및 데이터를 저장할 수 있다. 메모리(560)는 휘발성 및/또는 비-휘발성일 수 있고, ROM(read-only memory), RAM(random access memory), TCAM(ternary content-addressable memory) 및/또는 SRAM(static random-access memory)일 수 있다.
도 4는, 예시적인 실시예에 따라, 도 1a로부터의 소스 디바이스(12) 및 목적지 디바이스(14) 중 하나 또는 둘 모두로서 사용될 수 있는 장치(1000)의 단순화된 블록도이다. 장치(1000)는 본 출원의 기법들을 구현할 수 있다. 장치(1000)는, 다수의 컴퓨팅 디바이스들을 포함하는 컴퓨팅 시스템의 형태일 수 있거나, 또는 단일 컴퓨팅 디바이스, 예컨대 모바일 폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터 등의 형태일 수 있다.
장치(1000) 내의 프로세서(1002)는 중앙 처리 유닛일 수 있다. 대안적으로, 프로세서(1002)는 현재-존재하거나 이후에 개발되는, 정보를 조작 또는 처리할 수 있는 임의의 다른 타입의 디바이스 또는 다수의 디바이스들일 수 있다. 개시된 구현들은, 도시된 바와 같은 단일 프로세서, 예를 들어 프로세서(1002)로 실행될 수 있지만, 속도 및 효율성에서의 이점들이 2개 이상의 프로세서를 사용하여 달성될 수 있다.
장치(1000) 내의 메모리(1004)는 구현에서 판독 전용 메모리(ROM) 디바이스 또는 랜덤 액세스 메모리(RAM) 디바이스일 수 있다. 임의의 다른 적합한 타입의 저장 디바이스가 메모리(1004)로서 사용될 수 있다. 메모리(1004)는 버스(1012)를 사용하여 프로세서(1002)에 의해 액세스되는 코드 및 데이터(1006)를 포함할 수 있다. 메모리(1004)는 운영 시스템(1008) 및 애플리케이션 프로그램들(1010)을 더 포함할 수 있으며, 애플리케이션 프로그램들(1010)은 프로세서(1002)가 본원에서 설명되는 방법들을 수행하게 허용하는 적어도 하나의 프로그램을 포함한다. 예컨대, 애플리케이션 프로그램들(1010)은, 본 명세서에 설명되는 방법들을 수행하는 비디오 코딩 애플리케이션을 더 포함하는 애플리케이션들 1 내지 N을 포함할 수 있다. 장치(1000)는 또한, 예컨대 모바일 컴퓨팅 디바이스와 함께 사용되는 메모리 카드일 수 있는 보조 저장소(1014) 형태의 추가 메모리를 포함할 수 있다. 비디오 통신 세션들이 상당한 양의 정보를 포함할 수 있기 때문에, 그들은 보조 저장소(1014)에 전체적으로 또는 부분적으로 저장되고, 처리를 위해 필요할 때 메모리(1004)로 로딩될 수 있다.
장치(1000)는 또한, 디스플레이(1018)와 같은 하나 이상의 출력 디바이스들을 포함할 수 있다. 일 예에서, 디스플레이(1018)는 터치 입력들을 감지하도록 동작가능한 터치 감지 엘리먼트와 디스플레이를 결합하는 터치 감지 디스플레이일 수 있다. 디스플레이(1018)는 버스(1012)를 통해 프로세서(1002)에 커플링될 수 있다. 사용자가 장치(1000)를 프로그램하게 하거나 그렇지 않으면 사용하게 허용하는 다른 출력 디바이스들이 디스플레이(1018)에 부가하여 또는 그 대안으로서 제공될 수 있다. 출력 디바이스가 디스플레이이거나 또는 이를 포함하는 경우, 디스플레이는 액정 디스플레이(LCD), 음극선관(CRT) 디스플레이, 플라즈마 디스플레이 또는 발광 다이오드(LED) 디스플레이, 이를테면 유기 LED(OLED) 디스플레이를 포함하는 다양한 방식들로 구현될 수 있다.
장치(1000)는 또한, 이미지-감지 디바이스(1020), 예컨대 카메라, 또는 장치(1000)를 동작시키는 사용자의 이미지와 같은 이미지를 감지할 수 있는 현재 존재하거나 이후에 개발되는 임의의 다른 이미지-감지 디바이스(1020)를 포함하거나 이와 통신할 수 있다. 이미지-감지 디바이스(1020)는, 그 디바이스가 장치(1000)를 동작시키는 사용자를 향해 지향되도록 포지셔닝될 수 있다. 예에서, 이미지-감지 디바이스(1020)의 포지션 및 광학 축은 시야가 일 구역을 포함하도록 구성될 수 있으며, 이 구역은 디스플레이(1018)에 바로 인접하며, 그 영역으로부터 디스플레이(1018)는 가시적이다.
장치(1000)는 또한, 사운드-감지 디바이스(1022), 예컨대 마이크로폰, 또는 장치(1000) 근처의 사운드들을 감지할 수 있는 현재 존재하거나 이후에 개발되는 임의의 다른 사운드-감지 디바이스를 포함하거나 이와 통신할 수 있다. 사운드-감지 디바이스(1022)는, 그 디바이스가 장치(1000)를 동작시키는 사용자를 향해 지향되도록 포지셔닝될 수 있고, 그리고 사용자가 장치(1000)를 동작시키는 동안 사용자에 의해 만들어진 사운드들, 예컨대, 스피치 또는 다른 발언(utterance)들을 수신하도록 구성될 수 있다.
도 4가 단일 유닛으로 통합되는 것으로 장치(1000)의 프로세서(1002) 및 메모리(1004)를 도시하지만, 다른 구성들이 활용될 수 있다. 프로세서(1002)의 동작들은, 근거리 또는 다른 네트워크에 걸쳐 또는 직접 커플링될 수 있는 다수의 머신들(각각의 머신은 프로세서들 중 하나 이상을 가짐)에 걸쳐 분산될 수 있다. 메모리(1004)는, 장치(1000)의 동작들을 수행하는 다수의 머신들 내의 메모리 또는 네트워크-기반 메모리와 같이, 다수의 머신들에 걸쳐 분산될 수 있다. 본원에 단일 버스로서 도시되지만, 장치(1000)의 버스(1012)는 다수의 버스들로 구성될 수 있다. 추가로, 보조 저장소(1014)는 장치(1000)의 다른 컴포넌트들에 직접 커플링될 수 있거나, 또는 네트워크를 통해 액세스될 수 있으며, 메모리 카드와 같은 단일의 통합된 유닛 또는 다수의 메모리 카드들과 같은 다수의 유닛들을 포함할 수 있다. 따라서, 장치(1000)는 광범위하게 다양한 구성들로 구현될 수 있다.
비디오 압축에서, 인터 예측은 현재 블록에 대한 모션 벡터들을 지정함으로써 이전에 디코딩된 참조 픽처들의 재구성된 샘플들을 사용하는 프로세스이다. 이러한 모션 벡터들은 공간적 또는 시간적 모션 벡터 예측자들을 사용함으로써 예측 잔차로서 코딩될 수 있다. 모션 벡터들은 서브-픽셀 정확도로 있을 수 있다. 재구성된 정수 포지션 값들로부터 참조 프레임들의 서브-픽셀 정밀도 픽셀 값을 도출하기 위해, 보간 필터가 적용된다. 양-예측은, 현재 블록에 대한 예측이 2개의 참조 픽처 구역들로부터의 2개의 모션 벡터들을 사용하여 도출되는 2개의 예측 블록들의 가중 조합으로서 도출되는 프로세스를 지칭한다. 이 경우, 모션 벡터들 외에, 2개의 예측 블록들이 도출되는 참조 픽처들에 대한 참조 인덱스들도 또한 코딩되어야 한다. 현재 블록에 대한 모션 벡터들은, 공간 이웃의 모션 벡터들 및 참조 인덱스들이 임의의 모션 벡터 잔차들을 코딩하지 않고 상속되는 병합 프로세스를 통해 또한 도출될 수 있다. 공간 이웃들 외에, 이전에 코딩된 참조 프레임들의 모션 벡터들이 또한 저장되고, 이는 현재 블록에 대한 참조 프레임들까지의 거리를 기준으로 참조 프레임들까지의 거리를 고려하기 위해 모션 벡터들의 적절한 스케일링과 함께 시간적 병합 옵션들로서 사용된다.
모션 벡터 잔차 코딩 비트들이 더욱 감소될 수 있도록, 디코더측 모션 벡터 정제 또는 도출을 수행하기 위한 여러 방법들이 제안되었다.
양자간 매칭(BM: bilateral matching) 방법들로 불리는 부류의 방법들에서, 현재 CU의 모션 정보는 2개의 상이한 참조 픽처들에서 현재 CU의 모션 궤적을 따라 2개의 블록들 사이에서 가장가까운 매치를 찾음으로써 도출된다. 이는 도 6a에 도시된다. 연속적인 모션 궤적의 가정 하에, 2개의 참조 블록들을 가리키는 모션 벡터들(MV0 및 MV1)은 현재 픽처와 2개의 참조 픽처들 사이의 시간적 거리들, 즉 TD0 및 TD1에 비례해야 한다.
양자간 매칭 병합 모드에서, 2개의 상이한 참조 픽처들에서 현재 CU의 모션 궤적을 따라 2개의 블록들 사이에서 가장가까운 매치를 기반으로 CU의 모션 정보가 도출되기 때문에, 양-예측이 항상 적용된다.
템플릿 매칭 병합 또는 양자간 매칭 병합을 지시하는 명시적 병합 모드는, 이러한 모드들을 임의의 디코더측 모션 벡터 도출을 요구하지 않는 디폴트 병합 모드와 구별하도록 시그널링될 수 있다.
일부 예들에서, 시간적 거리들은 무시되고, 양자간 매칭은 과거 및 미래의 참조 프레임들에서 동일한 크기 및 반대 부호들 갖는 모션 벡터들을 사용하여 수행된다.
일부 예들에서는, 어떠한 병합 인덱스도 시그널링되지 않는 반면, 다른 예들에서는, 다수의 모션 보상들을 수행하는 디코더 복잡성을 단순화하기 위해, 명시적 병합 인덱스가 시그널링된다.
도 6b는 DMVR 방법(400)의 예의 그래픽 예시이다. 예에서, DMVR 방법(400)은 현재 픽처(404) 내의 현재 블록(402)으로 시작한다. 예에서, 현재 블록(402)은 정사각형 또는 정사각형이 아닌 형상일 수 있다. 현재 픽처(404)는 또한 현재 영역, 이미지, 타일 등으로 지칭될 수 있다. 도 6b에 도시된 바와 같이, MV0은 제1 참조 픽처(408) 내의 제1 참조 블록(또한 제1 초기 참조 블록으로 지칭됨)(406)을 가리키고, MV1은 제2 참조 픽처(412) 내의 제2 참조 블록(410)(또한 제2 초기 참조 블록으로 지칭됨)을 가리킨다. 예에서, 제1 참조 블록(406)은 시간, 시퀀스, 디코딩 순서, 또는 일부 다른 파라미터에서 현재 블록(402)보다 앞서 있다. 예에서, 제2 참조 블록(410)은 시간, 시퀀스, 디코딩 순서, 또는 일부 다른 파라미터에서 현재 블록(402)보다 앞서 있다. 제1 참조 블록(406) 및 제2 참조 블록(410)은 본원에서 초기 참조 블록들로 지칭될 수 있다.
제1 참조 블록(406) 및 제2 참조 블록(410)은 결합되어 양자간 템플릿 블록(bilateral template block)(414)을 형성한다. 예에서, 제1 참조 블록(406) 및 제2 참조 블록(410)은 양자간 템플릿 블록(414)을 생성하기 위해 함께 평균화된다. 예에서, 양자간 템플릿 블록(414)은 제1 참조 블록(406) 및 제2 참조 블록(410)의 가중 조합으로서 생성된다.
양자간 템플릿 블록(414)이 생성되었다면, 템플릿 매칭 동작이 수행된다. 템플릿 매칭 동작은, 제1 참조 블록(406) 주위의 샘플 영역의 각각의 후보 참조 블록과 양자간 템플릿 블록(414) 간의 제1 비용, 및 제2 참조 블록(410) 주위의 샘플 영역의 각각의 후보 참조 블록과 양자간 템플릿 블록(414) 간의 제2 비용을 계산하는 것을 수반한다. 예를 들어, 해당하는 최저 비용(예를 들어, 최소 템플릿 비용)을 산출하는 잠재적 참조 블록은, 각각의 샘플 영역에서 어떤 참조 블록이 정제된 참조 블록(일명, 정정된(revised) 참조 블록)의 역할을 할지를 결정한다. 예에서 제1 비용 및 제2 비용은 SAD를 사용하여 결정된다. 실제 애플리케이션들에서는 다른 비용 측정들이 활용될 수 있다.
도 6b의 예에서, MV0'가 가리키는, 제1 참조 픽처(408) 내의 제1 정제된 참조 블록(416)은 최저 제1 비용을 초래하며, MV1'이 가리키는, 제2 참조 픽처(412) 내의 제2 정제된 참조 블록(418)은 최저 제2 비용을 제공한다. 예에서, 제1 정제된 참조 블록(416) 및 제2 정제된 참조 블록(418)은 각각 제1 참조 블록(406) 및 제2 참조 블록(410)을 대신한다.
그 후, 제1 정제된 참조 블록(416) 및 제2 정제된 참조 블록(418)을 사용하여 예측 블록(420)이 생성된다. 예측 블록(420)은 예측자 블록 또는 최종 양-예측 결과들로 지칭될 수 있다. 예측 블록(420)은, 일단 생성되면, 전자 디바이스(예를 들어, 스마트 폰, 태블릿 디바이스, 랩톱 컴퓨터 등)의 디스플레이상에 표시할 이미지를 생성하는 데 사용될 수 있다.
DMVR 방법(400)은, 추가적인 신택스 요소들을 전송하지 않고, 과거의 참조 픽처로부터의 하나의 MV와 미래의 참조 픽처로부터의 다른 하나의 MV를 이용하는 양-예측의 병합 모드에 적용될 수 있다. DMVR 방법(400)은, JEM(Joint Exploration Model) 참조 소프트웨어에서 CU에 대해 로컬 조명 보상(LIC: local illumination compensation), 아핀 모션, 프레임-레이트 업-컨버전(FRUC: frame-rate up-conversion) 또는 CU 병합 후보가 인에이블링되는 경우, 적용되지 않는다.
JEM 참조 소프트웨어에서, 9개의 MV 후보들(9개의 후보 참조 블록들을 가리킴)가 참조 픽처 내의 각각의 참조 블록에 대해(예를 들어, 각각의 목록에 대해, 예를 들어 목록 0 또는 목록 1에 대해) 검색된다. 9개의 MV 후보들은, 참조 블록(즉, 초기 참조 블록, 예를 들어 참조 블록(406) 또는 참조 블록(410))을 가리키는 원래의 MV(즉, 초기 MV, 예를 들어 초기 MV0 또는 초기 MV1), 및 수평 방향이나 수직 방향 또는 이 둘 다에서 원래의 MV에 대한 하나의 루마 샘플 오프셋을 갖는, 참조 블록 주위의 참조 블록들을 가리키는 8개의 MV들을 포함한다. 그러나, 원래의 MV에 대한 하나의 루마 샘플 오프셋을 갖는 MV 후보들을 사용하면 최상 MV 후보를 제공하지 못할 수 있다.
예시적인 방법에서, 양자간 템플릿 매칭 기반 디코더측 모션 벡터 정제(DMVR) 방법이 제공되고, 명시적으로 시그널링된 병합 후보 인덱스로부터 획득되는 L0 및 L1 참조에서 참조 블록들을 사용하여 양자간 평균 템플릿이 먼저 생성되고, 이 템플릿에 대해 양자간 매칭이 수행된다. 이는 도 6b 및 도 6c에 예시된다. 템플릿은, 초기 모션 벡터에 의해 참조되는 초기 참조 블록(406, 410)과 최신 최상 모션 벡터에 의해 참조되는 참조 블록(416, 418) 간에 임의의 이동이 있는 경우, 업데이트된다. 또한, 일부 예들에서, 정제는 하나의 참조에서 수행되고, 다른 참조에서의 모션 벡터가 이 정제된 모션 벡터의 미러링을 통해 획득된다. 정제는, 중심 포지션에 최소 매칭 에러가 있거나 최대 반복 횟수에 도달될 때까지, 두 참조들 간을 오간다(alternate).
도 6c는 코딩 방법(600)의 예를 예시하는 흐름도이다. 예에서, 코딩 방법(600)은 도 1의 비디오 디코더(30)와 같은 디코더에서 구현된다. 코딩 방법(600)은, 예를 들어, 전자 디바이스의 디스플레이에 표시될 이미지를 생성하기 위해, 인코더, 이를테면 도 1의 비디오 인코더(20)로부터 수신되는 비트스트림이 디코딩되어야 하는 경우 구현될 수 있다. 코딩 방법(600)은 또한 도 1의 비디오 인코더(20)와 같은 인코더에서 구현될 수 있다. 코딩 방법(600)은 도 6b에서 식별된 엘리먼트들을 참조로 설명될 것이다.
블록(602)에서, 제1 참조 픽처(예를 들어, 참조 픽처(408)) 내의 제1 참조 블록(예를 들어, 참조 블록(406))은 현재 픽처(예를 들어, 현재 픽처(404)) 내의 현재 블록(예를 들어, 현재 블록(402))에 대응하는 제1 모션 벡터(예를 들어, MV0)에 기반하여 결정된다.
블록(604)에서, 제2 참조 픽처(예를 들어, 참조 픽처(412)) 내의 제2 참조 블록(예를 들어, 참조 블록(410))은 현재 픽처(예를 들어, 현재 픽처(604)) 내의 현재 블록(예를 들어, 현재 블록(402))에 대응하는 제2 모션 벡터(예를 들어, MV1)에 기반하여 결정된다.
블록(606)에서, 양자간 참조 블록(예를 들어, 양자간 참조 블록(414))이 제1 참조 블록 및 제2 참조 블록에 기반하여 생성된다. 예에서, 양자간 참조 블록은 제1 참조 블록 및 제2 참조 블록의 가중 평균을 사용하여 획득된다.
블록(608)에서, 양자간 참조 블록과 제1 참조 픽처 내의 복수의 제1 참조 블록 후보들 각각 간의 비용 비교가 수행된다. 제1 참조 블록 후보들은, 예를 들어, 제1 참조 픽처(408) 내의 제1 참조 블록(406) 주위의 다양한 참조 블록들일 수 있다. 비용 비교는 제1 정제된 모션 벡터(예를 들어, MV0')를 결정하는 데 사용된다. 예에서, 제1 참조 블록 후보들은 복수의 이용가능한 스텝 크기들(예를 들어, 1/8, 1/4, 1/2, 1 등)로부터 선택된 스텝 크기에 기반하여 결정된다.
블록(610)에서, 양자간 참조 블록과 제2 참조 픽처 내의 복수의 제2 참조 블록 후보들 각각 간의 비용 비교가 수행된다. 제2 참조 블록 후보들은, 예를 들어, 제2 참조 픽처(412) 내의 제2 참조 블록(410) 주위의 다양한 참조 블록들일 수 있다. 비용 비교는 제2 정제된 모션 벡터(예를 들어, MV1')를 결정하는 데 사용된다. 예에서, 제2 참조 블록 후보들은 복수의 이용가능한 스텝 크기들(예를 들어, 1/8, 1/4, 1/2, 1 등)로부터 선택된 스텝 크기에 기반하여 결정된다.
블록(612)에서, 제1 참조 픽처 내의 제1 정제된 참조 블록(예를 들어, 정제된 참조 블록(416))은 제1 정제된 모션 벡터에 기반하여 선택되며, 제2 참조 픽처 내의 제2 정제된 참조 블록(예를 들어, 정제된 참조 블록(418))은 제2 정제된 모션 벡터에 기반하여 선택된다.
블록(614)에서, 예측 블록(예를 들어, 예측 블록(420))은 제1 정제된 참조 블록 및 제2 정제된 참조 블록에 기반하여 결정된다.
블록(616)에서, 예측 블록을 사용하여 생성된 이미지는 전자 디바이스의 디스플레이 상에 표시된다.
정제 방법들의 일부 예들에서, CU 레벨 정제가 먼저 수행된다. 그런 다음, CU-레벨의 정제된 MV들을 다수의 후보들로 사용하여, 서브-CU(즉, 서브-블록) 레벨 다중-후보 평가가 수행된다. 선택적으로, 각각의 서브-CU는 최상 매칭 후보에 대해 자체적 정제를 수행할 수 있다. 다른 예에서, CU 레벨 정제가 수행되지 않고, 각각의 서브-CU가 자체적 정제를 수행할 수 있다.
일부 비용 함수들은 모션 벡터 정제 거리를 바이어스 항으로 사용한다.
암시적 디코더측 도출 또는 정제 프로세스가 주어지면, 인코더측 재구성이 디코더측 재구성과 매칭하도록, 인코더는 디코더와 정확히 동일한 방식으로 이러한 단계들을 수행해야 한다.
통상적으로, 디코더측 모션 벡터 정제 또는 도출 프로세스 동안에는 루마 샘플들만이 사용된다. 그러나, 일부 경우들에서, 크로미넌스(chrominance)는 루마 모션 보상에 사용되는 최종 정제 모션 벡터들(임의의 크로마 다운샘플링을 고려하도록 적절하게 스케일링됨)을 사용하여 모션 보상된다.
디코더측에서 모션 벡터 정제를 위한 하나의 다른 기법은 양방향 옵티컬 흐름(BIO: bi-directional optical flow) 기법을 호출하는 것이다. 이 방법에서, 모션 보상된 보간은, 코딩 유닛과 연관된 모션 벡터들 및 참조 인덱스들이 지시하는 2개의 참조 프레임들로부터의 샘플들을 사용하는 규범적(normative) 모션 보상 방법을 사용하여, 주어진 코딩 유닛에 대해 수행된다. 또한, 서브-픽셀 정밀도 포지션들에서의 수평 및 수직 구배들은 모션 보상에 사용되는 참조 샘플들로부터 또는 모션 보상된 샘플들 자체를 사용하여 평가된다. 코딩 유닛은 균일한 크기의 서브-블록들로 파티셔닝되며, 서브-블록 크기들은 1x1 픽셀, 2x2 픽셀, 4x4 픽셀 등일 수 있다. 현재 프레임에서 서브-블록의 샘플 값들 predBIO의 추정치를 생성하기 위해 참조 프레임들과 연관된 다양한 값들을 관련시키는 옵티컬 흐름 기반 방정식이 아래 방정식(1)에 제공된다. 방정식(1)에서, (,)는 참조 프레임(L0)에서 현재 프레임으로, 그런 다음 참조 프레임(L1)으로의 서브-블록의 흐름을 표현한다. Gx0 및 Gy0은 각각 L0에서 수평 방향 및 수직 방향의 구배들을 표현한다. Gx1 및 Gy1은 각각 L1에서 수평 방향 및 수직 방향의 구배들을 표현한다. I0 및 I1은 각각 L0 및 L1에 있는 2개의 참조 패치들의 강도 값들을 표현한다. 는 각각 현재 프레임에서 기준 프레임들(L0 및 L1)까지의 거리들을 나타낸다. = POC(current) - POC(Ref0)이고, = POC(Ref1) - POC(current)이다.
(1)
각각의 시간 간격의 개별 흐름 방정식들을 사용하여, L0 샘플을 사용하는 예측자(즉, 서브-블록의 예측된 샘플 값들)와 L1 샘플들을 사용하는 예측자 간의 차이는 다음과 같이 작성될 수 있다:
차이()를 최소화함으로써, vx와 vy의 추정치들이 획득될 수 있다. 예를 들어, vx 및 vy 각각에 대한 차이()의 제곱의 편미분(partial differential)을 취하고 미분을 0으로 설정함으로써, 서브-블록 내의 샘플들 및 서브 블록에 인접한 샘플들에 대해 미지수들로서 vx 및 vy를 갖는 방정식이 획득된다. 이 과잉-제약된 방정식들의 세트는 최소 제곱을 통해 풀려져 vx 및 vy 추정치들이 획득될 수 있다. 위에서 언급된 방정식 (1), 컴퓨팅된 vx, vy 추정치들 및 구배들 Gx0 및 Gy0을 사용하여, 보정항(correction term)이 일반적인 양-예측 모션 보상에 더해진다. 일부 방법들에서, 는 이들 방정식들에서 동일한 것으로 가정된다.
위에서 설명된 바와 같이, 양자간 매칭 기반 디코더측 모션 벡터 도출/정제 방법들은, (양-예측을 위해 사용되는) 2개의 참조들에서 병합-모드 모션 벡터들(즉, 초기 모션 벡터들(MV0 및 MV1)을 포함하는 병합 후보)에 입각하여 델타 모션 벡터들(즉, 초기 모션 벡터들(MV0 및 MV1)에 대한 변경들)를 컴퓨팅한다. 컴퓨팅된 델타 모션 벡터들은 현재 픽처에서 2개의 참조들까지의 시간적 거리들(TD0 및 TD1)에 따른다. 그러나, 하나의 참조에서의 정수 거리의 이동이 TD1과 TD0 간의 비율로 인해 다른 참조에서는 비-정수 거리의 이동일 수 있기 때문에, 정제를 평가하는 것은, 정제의 시작 포지션들을 구성하는 병합 모드 모션 벡터들의 페이즈와 비교할 때 상이한 페이즈의 서브-픽셀 정밀도 포지션들의 평가를 필요로 한다(예를 들어, TD1과 TD0이 같지 않을 때, L0 pic가 2의 거리에 있고 L1이 1의 거리에 있는 경우, L0에서 1 픽셀의 정제 이동은 L1에서 0.5 픽셀 이동으로 이어진다). 따라서, 이는 정제 절차의 높은 계산 복잡성으로 이어진다. 정제 절차를 단순화하기 위해, 정제 절차는 TD0 및 TD1을 무시할 수 있고, 그리고 2개의 참조들에서 크기가 같고 방향이 반대인 델타 모션 벡터들을 사용하며, 이로써 한 참조에서의 정수 거리 이동이 다른 참조에서의 정수 거리 이동으로서 유지된다. 미리정의된 최대 반복 횟수가 도달될 때까지 또는 주어진 반복의 중심 포지션이 비용이 가장 낮은 포지션인 것으로 판명될 때까지, 여러번의 정제 반복들이 적용된다. 이 방법은 또한, 다용도 비디오 코딩(Versatile Video Coding)에 채택된 일반적 테스트 조건들에서 사용될 때, 이원적 구성(dyadic configuration)의 계층적 B-픽처들이 이용되는 경우들에도 잘 작동한다. 이러한 이원적 구성에서, 현재 시간적 레이어에 있는 픽처들 수보다, 그 다음의 시간적 레이어에 있는 픽처들의 수가 2배 많다. 따라서, B-픽처들은 현재 픽처로부터 등거리인, 과거의 참조와 미래의 참조를 하나씩 갖는다.
그러나, 참조들 중 하나에서의 폐색(occlusion)들으로 인해, 후보 병합 모션 벡터가 단-예측(uni-prediction)에 적용가능할 수 있거나, 또는 후보 병합 모션 벡터들이 현재 픽처와 등거리가 아닌 2개의 참조 프레임들을 참조할 수 있다. 또한, 상업용 인코더들에서, 엄격한 이원적 계층 B-픽처들은, 이들이 시간적 상관관계에 기반하는 픽처-타입들에 적응하는 경향이 있기 때문에, 사용되지 않을 수 있다. 예를 들어, 일부 인코더들은, 매 2개의 참조 픽처들 사이에 2개의 비-참조 픽처들을 사용한다. 특정 다른 인코더들은 기본 모션 특징들로 인해 동일한 시간적 레이어에 속하는 픽처들 간에 가변 거리들을 갖는다. 이러한 경우들에, 동등한 그리고 반대인 델타 모션 벡터들 기반 정제의 사용은 임의의 주요 코딩 이득을 생성하지 못하며, 명시적 플래그가 정제의 필요성을 지시하는 데 사용되지 않을 때마다, 코딩 이득에 영향을 미칠 수 있다. 그러나, 정제의 사용을 지시하기 위해 각각의 모든 CU에 플래그를 시그널링하는 것은 정제에 의해 제공되는 코딩 이득들 중 일부를 상쇄시킨다.
따라서, 예를 들어, 동등한 그리고 반대인 델타 모션 벡터들을 이용하는 양자간 매칭 기반 정제가 사용될 때마다, 등거리 참조들을 갖는 코딩 유닛들에 대한 디코더측 정제를 제한하거나 또는 이를 활성화시키는 능력을 선택적으로 또는 적응적으로 제공할 필요가 있다.
또한, BIO 방법이 τ0와 τ1이 같다고 가정할 때마다, 시간적 거리들이 실제로 동일할 때만 BIO 방법이 적용되도록 제한하거나 또는 이를 활성화시키는 능력을 제공할 필요가 있다.
본 발명은, 한 그룹의 프레임들의 적어도 하나의 액세스 유닛에 코딩된 양-예측 병합 모드 코딩 유닛이 그 2개의 참조들에 대한 코딩 유닛의 시간적 거리들에 기반한 디코더측 모션 벡터 정제를 사용하는 것을 선택적으로 제한하거나 또는 이를 활성화시키는 방법을 제공함으로써, 상기 문제들을 해결한다. 이러한 제한은, 2개의 참조들에 대한 코딩 유닛의 시간적 거리들이 실질적으로 동일할 때만 디코더측 MV 정제를 허용하도록, 인코딩측에 대한 시퀀스 파라미터 세트 레벨에서 플래그를 설정하는 것을 통해 수행될 수 있다. 이 방법은, 디코더측 MV 정제가 활성화될 때 인코딩측 및 디코딩측 둘 다에서 사용된다.
제시된 방법의 상세한 예들
본 개시의 실시예는, 디코더측 모션 벡터 도출/정제를 등거리 참조들을 갖는 코딩 유닛들로만 제한하는 방법을 제공한다. 실시예는 디코더측 MV 정제가 사용되는 경우에 사용될 수 있다. 예를 들어, 방법은, 양자간 매칭 기반 디코더측 MV 정제가 양-예측에 사용되는 2개의 참조들에서 크기가 같고 부호가 반대인 델타 모션 벡터들과 함께 사용되는 경우(양자간 템플릿이 사용되는지 여부에 관계없이) 사용될 수 있다. 이전에 설명된 바와 같이, 이러한 방법들은, 현재 픽처로부터 참조 프레임들까지의 시간적 거리들을 무시하므로, 서브-픽셀 정밀도 병합 모션 벡터 중심들에서 시작하는 정수-거리 정제들이 참조들 각각의 단일 서브-픽셀 페이즈에서 샘플들의 보간을 사용하여 수행될 수 있다. 병합 후보 목록에서 획득된 병합 모션 벡터는 임의의 서브- 픽셀 위치에 있을 수 있다. 예를 들어, 서브-픽셀 정밀도는 1/16일 수 있다. 이 방법은 또한, 양방향 옵티컬 흐름(BDOF) 기반 디코더측 모션 벡터 정제가 시간적 거리들에 의존하지 않거나 시간적 거리들이 동일하다고 가정할 때 사용될 수 있다.
이 실시예에서, 디코더측 MV 정제는, 코딩 블록으로부터 양-예측에 사용되는 참조 픽처들까지의 시간적 거리가 크기가 실질적으로 동일하고 부호 또는 방향이 반대인 경우에만, 주어진 코딩 유닛 또는 코딩 블록에 대해 사용된다. 도 7은 인코딩 방법(700)의 실시예를 예시하는 흐름도이다. 실시예에서, 인코딩 방법(700)은 도 1의 비디오 인코더(20)와 같은 인코더에서 구현된다. 블록(701)에서, 하나 이상의 병합 후보를 포함하는 병합 후보 목록이 인코딩측 또는 디코딩측에 대한 규범적 프로세스에 따라 구성되면, 병합 모션 벡터들 및 이들의 참조 인덱스들이 이용가능해진다. 블록(703)에서, 양-예측을 지시하는 각각의 병합 후보에 대해, 양-예측에 필요한 2개의 참조 인덱스들에 대응하는, L0 및 L1 참조들로 지칭되는 2개의 참조 프레임들이 식별되고 현재 픽처에 대한 그들의 시간적 거리들 즉, TD0 및 TD1이 획득된다. 블록(705)에서, 양-예측에 사용되는 참조 픽처들까지의 시간적 거리가 크기가 실질적으로 동일하고 부호가 반대인지 여부가 결정된다. 블록(707)에서, 시간적 거리들이 크기가 실질적으로 동일하고 부호가 반대인 경우, 인코더 또는 디코더는 병합 후보에 대한 규범적 디코더측 MV 정제 프로세스를 수행한다. 정제된 모션 벡터들은 참조 프레임들(L0 및 L1)을 사용하여 모션 보상된 양-예측을 수행하는 데 사용된다. 블록(705)에서, 양-예측에 사용되는 참조 픽처들까지의 시간적 거리가 크기가 실질적으로 동일하고 부호가 반대인 것으로 결정될 때, 블록(709)에서, 디코더측 MV 정제가 스킵되고, 병합 모션 벡터들이 양-예측에 사용된다. 블록(711)에서, 최상 병합 모드 후보가 평가된 임의의 다른 모드보다 더 낮은 비용을 갖는다면, 인코더는 코딩 유닛에 대해 병합 플래그를 1로 시그널링할 것이다. 추가적으로, 인코더는 또한, 병합 목록에서 우승한 병합 후보에 대한 병합 후보 인덱스를 명시적으로 시그널링할 수 있다. 일부 경우들에서, 이는 디코딩측에서 암시적으로 도출될 수 있다.
도 8은 디코딩 방법(800)의 실시예를 예시하는 흐름도이다. 실시예에서, 디코딩 방법(800)은 도 1의 비디오 디코더(30)와 같은 디코더에서 구현된다. 블록(801)에서, 코딩 유닛에 대해, 병합 플래그가 수신된 비트스트림으로부터 파싱되고, 병합 플래그가 참(이를테면, 1)으로 설정되면, 병합 후보는 명시적으로 시그널링된 병합 인덱스를 디코딩함으로써 또는 디코딩 측에서 이를 암시적으로 도출함으로써 획득된다. 블록(803)에서, 병합 인덱스와 연관된 모션 벡터(들) 및 참조 인덱스(또는 인덱스들)에 도달하기 위해 규범적 병합 목록 구성 프로세스가 사용된다. 블록(805)에서, 병합 후보가 양-예측을 지시하면, 2개의 참조 인덱스들에 대응하는 2개의 참조 프레임들이 식별되고, 현재 픽처들에 대한 그들의 시간적 거리들, 즉 TD0 및 TD1가 획득된다. 블록(807)에서, 양-예측에 사용되는 참조 픽처들까지의 시간적 거리가 크기가 실질적으로 동일하고 부호가 반대인지 여부가 결정된다. 블록(809)에서, 시간적 거리들이 크기가 실질적으로 동일하고 부호가 반대인 경우, 디코더는 병합 후보에 대한 규범적 디코더측 MV 정제 프로세스를 수행한다. 특히, 디코더측 모션 벡터 정제의 채택이 시퀀스 레벨에서 가능해지면, 디코더측 MV 정제는, TD0 및 TD1이 크기가 실질적으로 같고 부호가 반대일 때만 수행된다. 정제된 모션 벡터들은, 참조 프레임들(L0 및 L1)을 사용하여 모션 보상된 양-예측을 수행하기 위해 사용된다. 그렇지 않으면, 블록(811)에서, 디코더측 MV 정제가 스킵되고 병합 인덱스에 대한 모션 벡터들이 모션 보상된 양-예측을 수행하는 데 사용된다. 블록(813)에서, 코딩 블록은 모션 보상된 데이터, 예를 들어 파싱된 잔차 데이터 및 예측된 데이터의 합에 기반하여 재구성된다.
다른 실시예에서, TD0 및 TD1에 대한 동일한 체크들이 또한, 양방향 옵티컬 흐름(BIO) 기반 방법(여기서, TD0은 위에서 설명된 τ0에 해당하고 TD1은 -τ1에 해당함)에 사용되어, TD0 및 TD1이 실질적으로 동일하고 반대 부호들을 가질 때만, 주어진 코딩 유닛에 BIO 기반 방법을 가능하게 할 수 있다.
도 9는 비디오의 현재 픽처 내의 현재 이미지 블록의 인터 예측(bi-prediction) 방법의 흐름도이다. 방법은 단계(901)에서 시작한다.
단계(903)에서, 현재 픽처가 시간적으로(시간과 관련하여) 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 있는지 여부 그리고 제1 시간적 거리(이를테면, TD0)와 제2 시간적 거리(이를테면, TD1)가 동일한 거리인지 여부가 결정되며, 제1 시간적 거리(TD0)는 현재 픽처와 제1 참조 픽처(RefPic0) 사이에 있고, 제2 시간적 거리(TD1)는 현재 픽처와 제2 참조 픽처(RefPic1) 사이에 있다.
단계(905)에서, 현재 픽처가 시간적으로 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 있고 그리고 제1 시간적 거리(TD0)와 제2 시간적 거리(TD1)가 동일한 거리라는 것이 결정될 때, 현재 이미지 블록의 예측 블록을 결정하기 위해 모션 벡터 정제(DMVR: motion vector refinement) 절차가 수행된다. 모션 벡터 정제(DMVR) 절차는 도 6c의 블록들(602 내지 610) 또는 도 6d의 블록들(632 내지 640)에 대해 위에서 설명된 바와 같이 수행될 수 있다. 모션 벡터 정제를 수행하는 다른 방식들이 또한 활용될 수 있다.
단계(907)에서, 제1 시간적 거리(TD0)와 제2 시간적 거리(TD1)가 상이한 거리이거나 현재 픽처가 시간적으로, 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 존재하지 않는다는 것이 결정될 때, 제1 초기 모션 벡터(MV0) 및 제2 초기 모션 벡터(MV1)를 사용하여 현재 이미지 블록의 예측 블록을 획득하기 위해 모션 보상이 수행된다.
도 10은 비디오의 현재 픽처 내의 현재 이미지 블록의 인터-예측을 위한 장치의 예시적인 구조를 도시하는 블록도이다. 이 장치는,
현재 픽처가 시간적으로(시간과 관련하여) 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 있는지 여부 그리고 제1 시간적 거리(이를테면, TD0)와 제2 시간적 거리(이를테면, TD1)가 동일한 거리인지 여부를 결정하도록 구성된 결정 유닛(101) ―제1 시간적 거리(TD0)는 현재 픽처와 제1 참조 픽처(RefPic0) 사이에 있고, 제2 시간적 거리(TD1)는 현재 픽처와 제2 참조 픽처(RefPic1) 사이에 있음―; 및
현재 픽처가 시간적으로 제1 참조 픽처(이를테면, RefPic0)와 제2 참조 픽처(이를테면, RefPic1) 사이에 있고 그리고 제1 시간적 거리(TD0)와 제2 시간적 거리(TD1)가 동일한 거리라는 것이 결정될 때, 현재 이미지 블록의 예측 블록을 결정하기 위해 모션 벡터 정제(DMVR) 절차를 수행하도록 구성된 인터 예측 처리 유닛(103)을 포함할 수 있다.
일부 실시예들에서, 코딩 유닛 또는 코딩 블록 레벨에서 디코더측 모션 벡터 정제를 조건적으로 수행하기 위해 위에서 언급된 시간적 거리 기반 체크들을 항상 적용하는 대신, 체크들은 특정 플래그가 시퀀스 파라미터 세트 레벨 및/또는 픽처 레벨에서 시그널링될 때만 조건적으로 수행될 수 있다.
일 실시예에서, sps_conditional_dmvr_flag와 같은 플래그는, 디코더측 모션 벡터 정제가 시퀀스 파라미터 세트 레벨에서 활성화될 때마다 시퀀스 파라미터 세트 레벨에서 시그널링된다. 이 플래그가 0으로 설정되면, 모든 액세스 유닛들에서 현재 픽처에서 참조 프레임들까지의 시간적 거리들과 무관하게 디코더측 MV 정제가 수행될 수 있다. 이 플래그가 1로 설정되면, pps_conditional_dmvr_flag와 같은 추가 플래그가 픽처 파라미터 세트 레벨에서 시그널링된다. pps_conditional_dmvr_flag가 0으로 설정되면, 현재 픽처에서 참조 프레임들까지의 시간적 거리들과 무관하게 디코더측 MV 정제가 수행될 수 있다. pps_conditional_dmvr_flag가 1로 설정되면, 주어진 CU에 대한 현재 픽처에서 참조 프레임들까지의 시간적 거리들이 크기가 실질적으로 같고 부호가 반대인 경우에만 디코더측 MV 정제가 수행될 수 있다.
인코더는, 정규 이원적 계층 B-픽처 GOP(group of pictures) 구조가 사용되고, B-픽처의 최대 참조 프레임들 수가 2로 설정되고, 참조 픽처 선택이 항상, 현재 픽처와의 시간적 거리가 같고 현재 픽처의 반대편들에 속하는 참조 프레임들을 선택하는 경우, sps_conditional_dmvr_flag를 0으로 설정할 수 있다. 표시 순서에서 이원적 GOP 구조의 예는 I00 B14 B23 B34 B42 B54 B63 B74 B81 B94 B103 B114 B122 B134 B143 B154 P160이고, 여기서 아래 첨자는 시간적 레이어를 지시하며 픽처 타입 옆의 숫자는 표시 순서 프레임 수를 지시한다.
인코더는, (a) 정규 이원적 계층 B-픽처 GOP 구조가 사용되지만, B-픽처에 대한 최대 참조 프레임들 수가 2보다 크게 설정되거나, 또는 (b) 참조 픽처 선택이 현재 픽처와 실질적으로 동일한 시간적 거리를 갖지 않거나 표시 순서에서 현재 픽처의 반대편들에 속하지 않는 참조 픽처들을 선택할 가능성이 있는 경우, 또는 (c) 비-이원적(non-dyadic) 계층 B-픽처들 또는 비-이원적 단일 B-픽처 레이어 GOP 구조가 사용되는 경우, sps_conditional_dmvr_flag를 1로 설정할 수 있다. 비-이원적 GOP-구조의 예는 I00 B11 B21 P30 B41 B51 P60이며, 이는 B-픽처들의 하나의 레이어만 갖는다. 적응 계층적 B-픽처들의 예는 I00 B12 B22 B31 B42 P50이며, 여기서 동일한 시간적 레이어 레벨에서의 2개의 픽처들 간의 간격은 콘텐츠 속성들에 기반하여 적응적으로 판단된다.
대안적으로, sps_conditional_dmvr_flag는 위에서 언급된 조건들에 기반하여 사용자에 의해 인코더 파라미터로서 수동으로 구성될 수 있다.
sps_conditional_dmvr_flag가 1로 설정되는 경우, 인코더는, 최대 참조 프레임들 수가 2로 설정된 프레임들(이의 참조 프레임들은 현재 픽처로부터의 시간적 거리가 실질적으로 동일하고 표시 순서에서 현재 픽처의 반대편들에 속함)에서 pps_conditional_dmvr_flag를 0으로 설정할 수 있다.
sps_conditional_dmvr_flag가 1로 설정되는 경우, 인코더는, CU에 대한 양-예측에 사용되는 2개의 참조 프레임들이 현재 픽처로부터 실질적으로 동일한 시간적 거리에 있을 필요가 없는 경우 또는 두 참조 픽처들이 표시 순서에서 현재 픽처의 반대편들에 속하지 않는 경우에 또는 최대 참조 프레임들의 수가 2보다 큰 값으로 설정된 프레임들에서 pps_conditional_dmvr_flag를 1로 설정할 수 있다. 인코딩/디코딩 순서 시퀀스가 I00 P10, P60, B41, B22, B32, B52이고 표시 순서가 I00 P10 B22 B32 B41 B52 P60인 예에서, 픽처 B22는 그의 참조 픽처들로서 I00 P10, P60, B41을 가질 수 있다. 이들 참조 픽처들 중에서, 참조 픽처들 I0 및 B4는 거리가 같고 방향이 반대이다. 따라서, I0과 B4를 B2에 대한 참조들로서 사용되는 경우, 시간적 거리들은 같고, P1과 B4가 참조들로서 사용되는 경우에는 그렇지 않다. pps_conditional_dmvr_flag가 1로 설정되는 경우, (미리결정된 비율 임계치, 예를 들어, 현재 픽처와 제1 참조(refL0) 사이의 거리 대 제2 참조(refL1)와 현재 픽처 사이의 거리의 비율에 따라) I0 및 B4를 참조들로서 사용하는 B2의 코딩 유닛은 디코더측 MV 정제를 사용할 것인 반면, P1 및 B4를 참조들로서 사용하는 B2의 코딩 유닛은 디코더측 MV 정제를 사용할 수 없다.
오브젝트의 모션이 L0에서 현재 픽처로 그리고 현재 픽처에서 L1로 반드시 선형인 것은 아니기 때문에, 참조 픽처들이 실질적으로 동일한 시간적 거리에 있지 않을 때에도 동일하고 반대되는 모션 가정이 때때로 작동하는 것이 가능하다. 특정 실시예들에서, 인코더는, pps_conditional_dmvr_flag가 0으로 설정된 프레임에 대한 인코딩 및 pps_conditional_dmvr_flag가 1로 설정된 동일한 프레임에 대한 다른 인코딩을 수행할 수 있고 그리고 더 낮은 레이트-왜곡 최적화 비용을 제공하는 설정을 선택할 수 있다. 레이트-왜곡 최적화 비용은, 소스 프레임과 관련하여 재구성된 프레임의 왜곡 측정치와 프레임에 사용된 평균 양자화 파라미터에 의존하는 적절한 라그랑지 승수를 곱한 소비된 비트들의 합으로서 컴퓨팅된다.
다른 실시예들에서, 레이트-왜곡 최적화 비용은 디코더측 MV 정제를 이용하는 경우 및 시간적 거리들이 실질적으로 동일하지 않은 코딩 유닛에 대해 디코더측 MV 정제가 없는 경우 모두에 대해 누적될 수 있으며, 플래그는, 정제를 이용하지 않는 것이 정제를 이용하는 것 보다 더 낮은 누적 비용을 산출하는 경우 후속 픽처에 대해 1로 설정될 수 있다.
인코더에서 결정된 GOP 구조를 기반으로 하는 임의의 코딩 유닛에 대해 참조 프레임들에 대한 실질적으로 동일한 시간적 거리가 가능하지 않는 경우, 시퀀스 파라미터 세트(SPS: sequence parameter set) 레벨 또는 픽처 파라미터 세트 레벨에서 디코더측 모션 벡터 정제 자체를 비활성화하는 것이 또한 가능하다. 존재하는 경우, SPS 레벨에서의 조건적 플래그는, 디코더측 모션 벡터 정제가 SPS 레벨에서 가능한 경우에만 시그널링된다. 존재하는 경우, PPS 레벨에서의 조건적 플래그는, 디코더측 모션 벡터 정제가 PPS 레벨에서 (명시적으로 또는 암시적으로) 가능한 경우에만 시그널링된다. SPS/PPS 레벨에서 디코더측 MV 정제를 시그널링하는 임의의 대안적 방법, 참조에 대한 시간적 거리들에 대해 조건화되지 않은 정제를 시그널링하는 능력 및 참조에 대한 시간적 거리들에 대한 조건화된 정제를 시그널링하는 능력이 본 발명에 의해 예상된다. 예를 들어, 2개의 플래그들 대신, 2개의 플래그들을 함께 연접시킴으로써 3개의 가능한 값들(예를 들어, 0, 1, 2) 중 하나를 취하는 신택스 요소를 코딩하는 것이 가능하다.
도 6d는 디코더측 모션 벡터 정제(DMVR) 절차 또는 프로세스를 수행하기 위한 다른 예를 예시하는 흐름도이다. 실시예에서, 프로세스는 도 1의 비디오 디코더(30)와 같은 디코더에서 구현된다. 프로세스는, 예를 들어, 전자 디바이스의 디스플레이 상에 이미지를 생성하기 위해, 도 1의 비디오 인코더(20)와 같은 인코더로부터 수신되는 비트스트림이 디코딩되어야 하는 경우 구현될 수 있다. 프로세스는 또한 도 1의 비디오 인코더(20)와 같은 인코더에서 구현된다. 프로세스는 도 6b에서 식별된 엘리먼트들을 참조로 설명될 것이다.
블록(632)에서, 제1 참조 픽처(예를 들어, 참조 픽처(408)) 내의 제1 참조 초기 블록(예를 들어, 참조 블록(406))의 포지션은 현재 픽처(예를 들어, 현재 픽처(404)) 내의 현재 블록(예를 들어, 현재 블록(402))에 대응하는 제1 모션 벡터(예를 들어, MV0)에 기반하여 결정된다.
블록(634)에서, 제2 참조 픽처(예를 들어, 참조 픽처(412)) 내의 제2 초기 참조 블록(예를 들어, 참조 블록(410))의 포지션은 현재 픽처(예를 들어, 현재 픽처(404)) 내의 현재 블록(예를 들어, 현재 블록(402))에 대응하는 제2 모션 벡터(예를 들어, MV1)에 기반하여 결정된다.
블록(636)에서, 제1 참조 픽처 내의 복수의 제1 참조 블록들(예를 들어, N-1개의 제1 참조 블록들)의 포지션들이 결정된다.
블록(638)에서, 제2 참조 픽처 내의 복수의 제2 참조 블록들(예를 들어, N-1개의 제2 참조 블록들)의 포지션들이 결정된다. 블록들(636 및 638)에서, 각각의 쌍의 참조 블록들의 포지션들은 제1 참조 블록의 포지션과 제2 참조 블록의 포지션을 포함하고, 각각의 쌍의 참조 블록들에 대해, 제1 포지션 오프셋(delta0x, delta0y) 및 제2 포지션 오프셋(delta1x, delta1y)이 미러링되며(즉, 크기가 같고 부호가 반대임), 그리고 제1 포지션 오프셋(delta0x, delta0y)은 제1 초기 참조 블록의 포지션에 대한 제1 참조 블록의 포지션의 오프셋을 표현하고, 제2 포지션 오프셋(delta1x, delta1y)은 제2 초기 참조 블록의 포지션에 대한 제2 참조 블록의 포지션의 오프셋을 표현한다. 특히, 각각의 쌍의 제1 및 제2 참조 블록들의 포지션들에 대해, 제1 오프셋의 방향은 제2 오프셋의 방향과 반대이고, 제1 오프셋의 크기는 제2 오프셋의 크기와 동일하고, 제1 오프셋 및 제2 오프셋은 각각, 쌍의 각각의 제1 참조 블록 및 각각의 제2 참조 블록과 연관된다.
블록(640)에서, 제1 참조 픽처 내의 복수의 제1 참조 블록들과 제2 참조 픽처 내의 복수의 제2 참조 블록들 중에서 각각의 쌍의 제1 참조 블록과 제2 참조 블록 간의 비용 비교가 수행된다. 제1 초기 참조 블록과 제2 초기 참조 블록 간의 비용 비교가 또한 수행될 수 있다. 제1 참조 블록들은, 예를 들어, 제1 참조 픽처(408) 내의 제1 초기 참조 블록(406)을 주위의 다양한 참조 블록들일 수 있다. 비용 비교는 제1 정제된 모션 벡터(예를 들어, MV0') 및 제2 정제된 모션 벡터(예를 들어, MV1')를 결정하는 데 사용된다. 제2 참조 블록들은, 예를 들어, 제2 참조 픽처(412) 내의 제2 초기 참조 블록(410)을 주위의 다양한 참조 블록들일 수 있다. 대안적으로, N개 쌍들의 참조 블록들의 포지션으로부터 한 쌍의 참조 블록들의 포지션들은 매칭 비용 기준에 기반하여 제1 정제된 참조 블록의 포지션과 제2 정제된 참조 블록의 포지션으로서 결정된다. N개 쌍들의 참조 블록들은 한 쌍의 제1 및 제 2 초기 참조 블록을 포함할 수 있다는 것이 이해될 수 있다.
블록(642)에서, 제1 참조 픽처 내의 제1 정제된 참조 블록(예를 들어, 정제된 참조 블록(416))은 제1 정제된 모션 벡터에 기반하여 선택되며, 제2 참조 픽처 내의 제2 정제된 참조 블록(예를 들어, 정제된 참조 블록(418))은 제2 정제된 모션 벡터에 기반하여 선택된다. 대안적으로, 제1 정제된 참조 블록은 제1 정제된 참조 블록의 포지션에 기반하여 제1 참조 픽처에서 결정되고, 제2 정제된 참조 블록은 제2 정제된 참조 블록의 포지션에 기반하여 제2 참조 픽처에서 결정된다.
블록(644)에서, 예측 블록(예를 들어, 예측 블록(420))은 제1 정제된 참조 블록 및 제2 정제된 참조 블록에 기반하여 결정된다.
블록(646)에서, 예측 블록을 사용하여 생성된 이미지는 전자 디바이스의 디스플레이 상에 표시된다.
당업자들은, 디코더측 모션 벡터 정제(DMVR) 절차를 수행하기 위해 많은 솔루션들이 적용될 수 있다는 것을 인식할 것이며, 본 발명은 이전에 도시된 예시적인 프로세스들로 제한되지 않는다.
상기 내용에 기반하여, 본 개시은, 각각의 CU에 의해 사용되는 2개의 참조들에 대한 시간적 거리들에 기반하여 디코더측 모션 벡터 정제를 조건적으로 제한(예를 들어, 활성화 또는 비활성화)할 수 있게 하며, 따라서, 정제를 가정하는 동일한 그리고 반대의 델타 모션 벡터들의 기본 가정이 사실일 가능성이 없는 경우 정제를 적용하지 않음으로써 코딩 효율성을 향상시킨다.
상기 내용에 기반하여, 본 개시은 또한, 모든 액세스 유닛들에 대한 정제를 비조건적으로 비활성화하고 특정 액세스 유닛들 대한 정제를 조건적으로 비활성화하고, 액세스 유닛 레벨에서 비조건적 정제를 활성화하거나, 또는 그 액세스 유닛 내의 코딩 유닛에 의해 사용되는 현재 픽처로부터의 참조들에 대한 시간적 거리들에 기반하여 액세스 유닛에서 조건적 정제를 활성화하는 그래뉼래리티(granularity)를 제공한다.
상기 내용에 기반하여, 본 개시은 또한, 압축 이득(gain)들을 향상시킬 가능성이 없는 병합 인덱스들에 대해서는 디코더측에서 수행되는 정제들을 비활성화하는 이점을 제공한다.
또한, 상기 내용에 기반하여, 본 개시은 단지 2개의 등거리 참조들로만 정제들을 제한하여, 디코더측의 다른 참조들에 의한 캐시 오염(cache pollution)이 적다는 이점을 가질 수 있다.
상기 내용에 기반하여, 본 개시은, 2개의 참조들에 대한 시간적 거리들이 크기가 실질적으로 동일하지 않고 방향이 반대일 때마다, CU 레벨에서 양자간 매칭 기반 디코더측 모션 벡터 정제의 규범적 비활성화를 허용한다. 특히, 이러한 비활성화는, 정제 프로세스가 델타 모션 벡터들을 스케일링하는 데 시간적 거리들을 사용하지 않는 경우 적용된다.
상기 내용에 기반하여, 본 개시은 시퀀스 및 픽처 파라미터 세트 레벨들에 플래그들을 추가하여, CU 레벨에서의 시간적 거리 기반 체크가, 인코더가 GOP 구조 및 표시된 코딩 이득들과 같은 팩터들을 기반으로 적절한 플래그 값을 시그널링하는 옵션을 갖도록 이러한 플래그들에 의해 표시될 때만 수행되게 허용한다.
다음은 위에서 논의된 실시예들에서 나타낸 바와 같은 인코딩 방법뿐만 아니라 디코딩 방법의 애플리케이션들 및 이들을 사용하는 시스템의 설명이다.
도 11은 콘텐츠 배포 서비스를 실현하기 위한 콘텐츠 공급 시스템(3100)을 나타내는 블록도이다. 이 콘텐츠 공급 시스템(3100)은 캡처 디바이스(3102), 단말 디바이스(3106)를 포함하고, 선택적으로 디스플레이(3126)를 포함한다. 캡처 디바이스(3102)는 통신 링크(3104)를 통해 단말 디바이스(3106)와 통신한다. 통신 링크는 위에서 설명된 통신 채널(13)을 포함할 수 있다. 통신 링크(3104)는 WIFI, 이더넷, 케이블, 무선(3G/4G/5G), USB 또는 이들의 임의의 종류의 조합 등을 포함하지만 이에 제한되지 않는다.
캡처 디바이스(3102)는 데이터를 생성하고, 상기 실시예들에서 나타낸 바와 같은 인코딩 방법에 의해 데이터를 인코딩할 수 있다. 대안적으로, 캡처 디바이스(3102)는 데이터를 스트리밍 서버(도면들에 도시되지 않음)에 분배할 수 있고, 서버는 데이터를 인코딩하고 인코딩된 데이터를 단말 디바이스(3106)로 전송한다. 캡처 디바이스(3102)는 카메라, 스마트 폰 또는 패드, 컴퓨터 또는 랩톱, 화상 회의 시스템, PDA, 차량 탑재 디바이스, 또는 이들 중 임의의 것의 조합 등을 포함하지만, 이에 제한되지는 않는다. 예를 들어, 캡처 디바이스(3102)는 위에서 설명된 바와 같은 소스 디바이스(12)를 포함할 수 있다. 데이터가 비디오를 포함하는 경우, 캡처 디바이스(3102)에 포함된 비디오 인코더(20)는 실제로 비디오 인코딩 처리를 수행할 수 있다. 데이터가 오디오(즉, 음성)를 포함하는 경우, 캡처 디바이스(3102)에 포함된 오디오 인코더는 실제로 오디오 인코딩 처리를 수행할 수 있다. 일부 실제 시나리오들에 대해, 캡처 디바이스(3102)는 인코딩된 비디오 및 오디오 데이터를 함께 멀티플렉싱함으로써 이들을 분배한다. 다른 실제 시나리오들에 대해, 예를 들어 화상 회의 시스템에서, 인코딩된 오디오 데이터와 인코딩된 비디오 데이터는 멀티플렉싱되지 않는다. 캡처 디바이스(3102)는 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터를 단말 디바이스(3106)에 개별적으로 분배한다.
콘텐츠 공급 시스템(3100)에서, 단말 디바이스(310)는 인코딩된 데이터를 수신하여 재생한다. 단말 디바이스(3106)는 데이터 수신 및 복구 능력이 있는 디바이스, 이를테면, 스마트 폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(NVR)/디지털 비디오 레코더(DVR)(3112), TV(3114), 셋톱 박스(STB)(3116), 화상 회의 시스템(3118), 비디오 감시 시스템(3120), PDA(Personal Digital Assistant)(3122), 차량 탑재 디바이스(3124), 또는 이들 중 임의의 것의 조합, 또는 위에서 언급된 인코딩된 데이터를 디코딩할 수 것 등일 수 있다. 예를 들어, 단말 디바이스(3106)는 위에서 설명된 바와 같은 목적지 디바이스(14)를 포함할 수 있다. 인코딩된 데이터가 비디오를 포함하는 경우, 단말 디바이스에 포함된 비디오 디코더(30)가 비디오 디코딩을 수행하도록 우선순위화된다. 인코딩된 데이터가 오디오를 포함하는 경우, 단말 디바이스에 포함된 오디오 디코더가 오디오 디코딩 처리를 수행하도록 우선순위화된다.
자체 디스플레이가 있는 단말 디바이스(예를 들어, 스마트 폰 또는 패드(3108), 컴퓨터 또는 랩톱(3110), 네트워크 비디오 레코더(NVR)/디지털 비디오 레코더(DVR)(3112), TV(3114), PDA(personal digital assistant)(3122) 또는 차량 장착 디바이스(3124))의 경우, 단말 디바이스는 디코딩된 데이터를 자신의 디스플레이에 공급할 수 있다. 디스플레이가 장착되지 않은 단말 디바이스(예를 들어, STB(3116), 화상 회의 시스템(3118) 또는 비디오 감시 시스템(3120))의 경우, 외부 디스플레이(3126)가 그 내부에 접촉되어 디코딩된 데이터를 수신하고 이를 보여준다.
본 시스템 내의 각각의 디바이스가 인코딩 또는 디코딩을 수행하는 경우, 위에서 논의된 실시예들에 도시된 바와 같이, 픽처 인코딩 디바이스 또는 픽처 디코딩 디바이스가 사용될 수 있다.
도 12는 단말 디바이스(3106)의 예의 구조를 도시하는 도면이다. 단말 디바이스(3106)가 캡처 디바이스(3102)로부터 스트림을 수신한 후, 프로토콜 처리 유닛(3202)은 스트림의 전송 프로토콜을 분석한다. 프로토콜은 실시간 스트리밍 프로토콜(RTSP: Real Time Streaming Protocol), 하이퍼 텍스트 전송 프로토콜(HTTP: Hyper Text Transfer Protocol), HTTP 라이브 스트리밍 프로토콜(HLS: HTTP Live streaming protocol), MPEG-DASH, 실시간 전송 프로토콜(RTP: Real-time Transport protocol), 실시간 메시징 프로토콜(RTMP: Real Time Messaging Protocol), 또는 이의 임의의 종류의 조합 등을 포함하지만, 이로 제한되지 않는다.
프로토콜 처리 유닛(3202)이 스트림을 처리한 후, 스트림 파일이 생성된다. 파일은 디멀티플렉싱 유닛(3204)으로 출력된다. 디멀티플렉싱 유닛(3204)은 멀티플렉싱된 데이터를 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터로 분리할 수 있다. 위에서 설명된 바와 같이, 일부 실제 시나리오들에 대해, 예를 들어 화상 회의 시스템에서, 인코딩된 오디오 데이터와 인코딩된 비디오 데이터는 멀티플렉싱되지 않는다. 이러한 상황에서, 인코딩된 데이터는 디멀티플렉싱 유닛(3204)을 통하지 않고 비디오 디코더(3206) 및 오디오 디코더(3208)로 전송된다.
디멀티플렉싱 처리를 통해, 비디오 기본 스트림(ES: elementary stream), 오디오 ES 및 선택적으로 자막이 생성된다. 위에서 논의된 실시예들에서 설명된 바와 같은 비디오 디코더(30)를 포함하는 비디오 디코더(3206)는, 위에서 논의된 실시예들에 도시된 바와 같은 디코딩 방법에 의해 비디오 ES를 디코딩하여 비디오 프레임을 생성하고, 이 데이터를 동기 유닛(3212)에 공급한다. 오디오 디코더(3208)는 오디오 ES를 디코딩하여 오디오 프레임을 생성하고, 이 데이터를 동기 유닛(3212)에 공급한다. 대안적으로, 비디오 프레임은 동기 유닛(3212)에 공급되기 전에 버퍼(도 12에 도시되지 않음)에 저장될 수 있다. 유사하게, 오디오 프레임은 동기 유닛(3212)에 공급되기 전에 버퍼(도 12에 도시되지 않음)에 저장될 수 있다.
동기 유닛(3212)은 비디오 프레임과 오디오 프레임을 동기화하고, 비디오/오디오를 비디오/오디오 디스플레이(3214)에 공급한다. 예를 들어, 동기 유닛(3212)은 비디오 및 오디오 정보의 프리젠 테이션을 동기화한다. 정보는, 코딩된 오디오 및 시각 데이터의 프리젠테이션에 관한 타임 스탬프들 및 데이터 스트림 자체의 전달에 관한 타임 스탬프들을 사용하여 신택스으로 코딩할 수 있다.
스트림에 자막이 포함된 경우, 자막 디코더(3210)는 자막을 디코딩하고, 이를 비디오 프레임 및 오디오 프레임과 동기화하고, 비디오/오디오/자막을 비디오/오디오/자막 디스플레이(3216)에 공급한다.
본 발명은 위에서 논의된 시스템으로 제한되지 않고, 위에서 논의된 실시예들에서의 픽처 인코딩 디바이스 또는 픽처 디코딩 디바이스는 다른 시스템, 예를 들어, 자동차 시스템에 통합될 수 있다.
하나 이상의 예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 결합으로 구현될 수 있다. 소프트웨어로 구현된다면, 이 기능들은, 하나 이상의 명령들 또는 코드로서 컴퓨터-판독가능 매체 상에 저장되거나 이를 통해 전송될 수 있고, 하드웨어-기반 처리 유닛에 의해 실행될 수 있다. 컴퓨터-판독가능 매체들은 컴퓨터-판독가능 저장 매체들을 포함할 수 있으며, 이는 데이터 저장 매체들과 같은 유형 매체, 또는 예컨대, 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 가능하게 하는 임의의 매체를 포함하는 통신 매체들에 대응한다. 이런 식으로, 컴퓨터-판독가능 매체들은 일반적으로, (1) 비-일시적인, 유형의 컴퓨터-판독가능 저장 매체들 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체들은, 본 발명에 설명된 기법들의 구현을 위해 명령들, 코드 및/또는 데이터 구조들을 리트리브하기 위하여 하나 이상의 컴퓨터들 또는 하나 이상의 프로세서들에 의해 액세스될 수 있는 이용가능한 매체들일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터-판독가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 그러한 컴퓨터-판독가능 저장 매체들은, RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 플래시 메모리, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고, 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결수단(connection)이 컴퓨터-판독가능 매체로 적절히 지칭된다. 예를 들어, 명령들이 동축 케이블, 광섬유 케이블, 꼬임 쌍선, 디지털 가입자 회선(DSL: digital subscriber line), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 송신된다면, 동축 케이블, 광섬유 케이블, 꼬임 쌍선, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 그러나, 컴퓨터-판독가능 저장 매체들 및 데이터 저장 매체들은 접속들, 반송파들, 신호들 또는 다른 일시적 매체들을 포함하는 것이 아니라, 대신 비-일시적인, 유형의 저장 매체들에 관련된다고 이해되어야 한다. 본 명세서에서 사용된 것과 같은 디스크(disk 및 disc)는 콤팩트 디스크(CD: compact disc), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크(DVD: digital versatile disc), 플로피 디스크(floppy disk) 및 블루레이 디스크(Blu-ray disc)를 포함하며, 여기서 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 한편, 디스크(disc)들은 데이터를 레이저들에 의해 광학적으로 재생한다. 상기의 것들의 결합들이 또한 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 프로세서들, 이를테면 하나 이상의 디지털 신호 프로세서(DSP)들, 범용 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드 프로그램가능 로직 어레이(FPGA)들 또는 다른 동등한 집적 회로 또는 이산 로직 회로에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용된 바와 같이, 용어 "프로세서"는, 본 명세서에 설명된 기법들의 구현에 적합한 전술한 구조 또는 임의의 다른 구조 중 임의의 구조를 지칭할 수도 있다. 부가적으로, 몇몇 양상들에서, 본 명세서에 설명된 기능은, 인코딩 및 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈들 내에서 제공되거나, 결합된 코덱으로 포함될 수도 있다. 또한, 기법들은 하나 이상의 회로들 또는 로직 엘리먼트로 완전히 구현될 수 있다.
본 발명의 기법들은, 무선 핸드셋, 집적 회로(IC) 또는 IC들의 세트(예를 들어, 칩셋)를 포함하는 광범위하게 다양한 디바이스들 또는 장치들에서 구현될 수 있다. 본 개시에서는, 기재된 기법들을 수행하도록 구성된 디바이스들의 기능 양상들을 강조하기 위해 다양한 컴포넌트들, 모듈들, 또는 유닛들이, 설명되지만, 이들이 상이한 하드웨어 유닛들에 의한 실현을 반드시 요구하는 것은 아니다. 오히려, 상술된 바와 같이, 다양한 유닛들은, 코덱 하드웨어 유닛으로 결합될 수도 있거나, 적절한 소프트웨어 및/또는 펌웨어와 함께 상술된 바와 같은 하나 이상의 프로세서들을 포함하는 상호동작하는(interoperative) 하드웨어 유닛들의 집합에 의해 제공될 수 있다.
본 개시에서 여러 실시예들이 제공되었지만, 개시된 시스템들 및 방법들은 본 개시의 사상 또는 범위를 벗어나지 않고 많은 다른 특정 형태들로 구현될 수 있다는 것이 이해되어야 한다. 본 예들은 제한적이지 않고 예시적인 것으로 고려되어야 하며, 그 의도가 본원에 제시되는 세부사항들로 제한되지 않는다. 예를 들어, 다양한 엘리먼트들 또는 컴포넌트들은 다른 시스템에 결합되거나 또는 통합될 수 있거나, 또는 특정 특징들이 생략되거나 구현되지 않을 수 있다.
또한, 다양한 실시예들에서 개별적 또는 별개로 설명되고 예시된 기법들, 시스템들, 서브시스템들 및 방법들은 본 개시의 범위를 벗어나지 않고 다른 시스템들, 모듈들, 기법들 또는 방법들과 결합되거나 통합될 수 있다. 커플링되거나 직접 커플링되거나 또는 서로 통신하는 것으로 도시되거나 논의된 다른 항목들은 간접적으로 커플링되거나, 전기적으로, 기계적으로 또는 다른 방식으로 일부 인터페이스, 디바이스 또는 중간 컴포넌트를 통해 통신할 수 있다. 변경들, 대체들 및 변경들의 다른 예들은 당업자에 의해 확인될 수 있으며, 본원에 개시된 정신 및 범위를 벗어나지 않고 이루어질 수 있다.
본 개시에서 여러 실시예들이 제공되었지만, 개시된 시스템들 및 방법들은 본 개시의 사상 또는 범위를 벗어나지 않고 많은 다른 특정 형태들로 구현될 수 있다는 것이 이해되어야 한다. 본 예들은 제한적이지 않고 예시적인 것으로 고려되어야 하며, 그 의도가 본원에 제시되는 세부사항들로 제한되지 않는다. 예를 들어, 다양한 엘리먼트들 또는 컴포넌트들은 다른 시스템에 결합되거나 또는 통합될 수 있거나, 또는 특정 특징들이 생략되거나 구현되지 않을 수 있다.
또한, 다양한 실시예들에서 개별적 또는 별개로 설명되고 예시된 기법들, 시스템들, 서브시스템들 및 방법들은 본 개시의 범위를 벗어나지 않고 다른 시스템들, 모듈들, 기법들 또는 방법들과 결합되거나 통합될 수 있다. 커플링되거나 직접 커플링되거나 또는 서로 통신하는 것으로 도시되거나 논의된 다른 항목들은 간접적으로 커플링되거나, 전기적으로, 기계적으로 또는 다른 방식으로 일부 인터페이스, 디바이스 또는 중간 컴포넌트를 통해 통신할 수 있다. 변경들, 대체들 및 변경들의 다른 예들은 당업자에 의해 확인될 수 있으며, 본원에 개시된 정신 및 범위를 벗어나지 않고 이루어질 수 있다.

Claims (10)

  1. 비디오의 현재 픽처 내의 현재 이미지 블록의 인터-예측(inter-prediction)을 위한 방법으로서,
    제1 시간적 거리가 제2 시간적 거리와 동일한지의 여부를 판정하는 단계 - 상기 제1 시간적 거리는 상기 현재 픽처의 픽처 순서 카운트 값과 제1 참조 픽처의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현되고, 상기 제2 시간적 거리는 제2 참조 픽처의 픽처 순서 카운트 값과 상기 현재 픽처의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현됨 - ; 및
    복수의 조건이 만족된다는 결정에 응답하여, 상기 현재 이미지 블록에 대해 양방향 옵티컬 흐름(BIO) 또는 양방향 옵티컬 흐름(BDOF) 절차를 수행하는 단계
    를 포함하고,
    상기 복수의 조건은,
    시퀀스 파라미터 세트 레벨 또는 픽처 레벨에서 시그널링되는 플래그의 값이 상기 픽처 레벨에서 상기 BIO 또는 상기 BDOF 절차가 활성화됨을 나타내는 것; 및
    상기 제1 시간적 거리가 상기 제2 시간적 거리와 동일하다는 것
    을 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 시간적 거리가 상기 제2 시간적 거리와 동일하지 않다는 결정에 응답하여, 상기 현재 이미지 블록의 예측 블록을 결정하기 위해 제1 초기 모션 벡터 및 제2 초기 모션 벡터를 사용하여 모션 보상을 수행하는 단계
    를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 현재 이미지 블록의 초기 모션 정보를 획득하는 단계 - 상기 초기 모션 정보는 제1 초기 모션 벡터, 제1 참조 인덱스, 제2 초기 모션 벡터 및 제2 참조 인덱스를 포함하며, 상기 제1 참조 인덱스는 상기 제1 참조 픽처를 나타내고, 상기 제2 참조 인덱스는 상기 제2 참조 픽처를 나타냄 -
    를 더 포함하는 방법.
  4. 코딩 디바이스로서,
    명령을 저장하는 메모리; 및
    상기 메모리에 커플링된 프로세서
    를 포함하고,
    상기 프로세서는, 상기 메모리에 저장된 명령을 실행하여, 상기 프로세서로 하여금,
    제1 시간적 거리가 제2 시간적 거리와 동일한지의 여부를 판정하고 - 상기 제1 시간적 거리는 상기 현재 픽처의 픽처 순서 카운트 값과 제1 참조 픽처의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현되고, 상기 제2 시간적 거리는 제2 참조 픽처의 픽처 순서 카운트 값과 상기 현재 픽처의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현됨 - ; 및
    복수의 조건이 만족된다는 결정에 응답하여, 현재 이미지 블록에 대해 양방향 옵티컬 흐름(BIO) 또는 양방향 옵티컬 흐름(BDOF) 절차를 수행하게
    하도록 구성되며,
    상기 복수의 조건은,
    픽처 레벨에서 시그널링되는 플래그의 값이 상기 픽처 레벨에서 상기 BIO 또는 상기 BDOF 절차가 활성화됨을 나타내는 것; 및
    상기 제1 시간적 거리가 상기 제2 시간적 거리와 동일하다는 것
    을 포함하는, 코딩 디바이스.
  5. 제4항에 있어서,
    상기 프로세서는 추가로,
    상기 제1 시간적 거리가 상기 제2 시간적 거리와 동일하지 않다는 결정에 응답하여, 상기 현재 이미지 블록의 예측 블록을 결정하기 위해 제1 초기 모션 벡터 및 제2 초기 모션 벡터를 사용하여 모션 보상을 수행
    하도록 구성되는, 코딩 디바이스.
  6. 제4항에 있어서,
    상기 프로세서는 추가로,
    상기 현재 이미지 블록의 초기 모션 정보를 획득 - 상기 초기 모션 정보는 제1 초기 모션 벡터, 제1 참조 인덱스, 제2 초기 모션 벡터 및 제2 참조 인덱스를 포함하며, 상기 제1 참조 인덱스는 상기 제1 참조 픽처를 나타내고, 상기 제2 참조 인덱스는 상기 제2 참조 픽처를 나타냄 -
    하도록 구성되는, 코딩 디바이스.
  7. 복수의 신택스 요소를 포함하여 비디오 신호를 위한 인코딩된 비트스트림을 포함하는 비일시적 저장 매체로서, 상기 복수의 신택스 요소는 제1 신택스 요소를 포함하고, 상기 제1 신택스 요소의 값은 양방향 옵티컬 흐름(BIO) 또는 양방향 옵티컬 흐름(BDOF)이 활성화되는지의 여부를 나타내며; 복수의 작동이 적어도 상기 제1 신택스 요소의 값에 기초하여 수행되고, 상기 작동은:
    제1 시간적 거리가 제2 시간적 거리와 동일한지의 여부를 판정하는 작동 - 상기 제1 시간적 거리는 현재 픽처의 픽처 순서 카운트 값과 제1 참조 픽처의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현되고, 상기 제2 시간적 거리는 제2 참조 픽처의 픽처 순서 카운트 값과 상기 현재 픽처의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현됨 - ; 및
    복수의 조건이 만족된다는 결정에 응답하여, 상기 현재 이미지 블록에 대해 양방향 옵티컬 흐름(BIO) 또는 양방향 옵티컬 흐름(BDOF) 절차를 수행하는 작동
    을 포함하고,
    상기 복수의 조건은,
    픽처 레벨에서 시그널링되는 플래그인 상기 제1 신택스 요소의 값이 상기 픽처 레벨에서 상기 BIO 또는 상기 BDOF 절차가 활성화됨을 나타내는 것; 및
    상기 제1 시간적 거리가 상기 제2 시간적 거리와 동일하다는 것
    을 포함하는, 비일시적 저장 매체.
  8. 명령을 저장하는, 컴퓨터가 판독 가능한 비일시적인 매체로서, 상기 명령이 프로세서에 의해 실행될 때, 상기 프로세서로 하여금:
    제1 시간적 거리가 제2 시간적 거리와 동일한지의 여부를 판정하는 작동 - 상기 제1 시간적 거리는 현재 픽처의 픽처 순서 카운트 값과 제1 참조 픽처의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현되고, 상기 제2 시간적 거리는 제2 참조 픽처의 픽처 순서 카운트 값과 상기 현재 픽처의 픽처 순서 카운트 값 사이의 차이와 관련하여 표현됨 - ;
    복수의 조건이 만족된다는 결정에 응답하여, 상기 현재 이미지 블록에 대해 양방향 옵티컬 흐름(BIO) 또는 양방향 옵티컬 흐름(BDOF) 절차를 수행하는 작동
    을 포함하는 작동을 수행하도록 야기하고,
    상기 복수의 조건은,
    픽처 레벨에서 시그널링되는 플래그의 값이 상기 픽처 레벨에서 상기 BIO 또는 상기 BDOF 절차가 활성화됨을 나타내는 것; 및
    상기 제1 시간적 거리가 상기 제2 시간적 거리와 동일하다는 것
    을 포함하는, 컴퓨터가 판독 가능한 비일시적 저장 매체.
  9. 제8항에 있어서,
    상기 작동은:
    상기 제1 시간적 거리가 상기 제2 시간적 거리와 동일하지 않다는 결정에 응답하여, 상기 현재 이미지 블록의 예측 블록을 결정하기 위해 제1 초기 모션 벡터 및 제2 초기 모션 벡터를 사용하여 모션 보상을 수행하는 작동
    을 더 포함하는, 컴퓨터가 판독 가능한 비일시적 저장 매체.
  10. 제8항에 있어서,
    상기 작동은:
    상기 현재 이미지 블록의 초기 모션 정보를 획득하는 작동 - 상기 초기 모션 정보는 제1 초기 모션 벡터, 제1 참조 인덱스, 제2 초기 모션 벡터 및 제2 참조 인덱스를 포함하며, 상기 제1 참조 인덱스는 상기 제1 참조 픽처를 나타내고, 상기 제2 참조 인덱스는 상기 제2 참조 픽처를 나타냄 -
    을 더 포함하는, 컴퓨터가 판독 가능한 비일시적 저장 매체.
KR1020247010542A 2018-09-13 2019-09-12 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법 KR20240046631A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN201831034607 2018-09-13
IN201831034607 2018-09-13
KR1020217010891A KR102653856B1 (ko) 2018-09-13 2019-09-12 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법
PCT/CN2019/105717 WO2020052654A1 (en) 2018-09-13 2019-09-12 Apparatus and method for conditional decoder-side motion vector refinement in video coding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217010891A Division KR102653856B1 (ko) 2018-09-13 2019-09-12 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20240046631A true KR20240046631A (ko) 2024-04-09

Family

ID=69778183

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217010891A KR102653856B1 (ko) 2018-09-13 2019-09-12 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법
KR1020247010542A KR20240046631A (ko) 2018-09-13 2019-09-12 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217010891A KR102653856B1 (ko) 2018-09-13 2019-09-12 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법

Country Status (10)

Country Link
US (2) US11563948B2 (ko)
EP (2) EP4415364A3 (ko)
JP (2) JP7297874B2 (ko)
KR (2) KR102653856B1 (ko)
CN (8) CN117241015A (ko)
BR (1) BR112021004800A8 (ko)
MX (1) MX2021003048A (ko)
PL (1) PL3847807T3 (ko)
SG (1) SG11202102569QA (ko)
WO (1) WO2020052654A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020084509A1 (en) 2018-10-23 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Harmonized local illumination compensation and modified inter coding tools
CN112913247B (zh) 2018-10-23 2023-04-28 北京字节跳动网络技术有限公司 使用局部照明补偿的视频处理
WO2020130710A1 (ko) * 2018-12-21 2020-06-25 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2020147747A1 (en) 2019-01-15 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Weighted prediction in video coding
CN113316933B (zh) 2019-01-17 2024-10-11 北京字节跳动网络技术有限公司 使用运动预测进行去方块滤波
CN118612456A (zh) * 2019-02-14 2024-09-06 Lg 电子株式会社 基于dmvr的帧间预测方法和设备
US20210092427A1 (en) * 2019-09-23 2021-03-25 Qualcomm Incorporated Harmonized early termination in bdof and dmvr in video coding
CN118765498A (zh) * 2021-12-07 2024-10-11 抖音视界有限公司 用于视频处理的方法、装置和介质
CN118575478A (zh) * 2022-01-18 2024-08-30 北京达佳互联信息技术有限公司 视频编解码中考虑边界外条件的运动补偿

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102123283B (zh) * 2011-03-11 2013-10-30 杭州海康威视数字技术股份有限公司 视频帧率转换中的插值帧获取方法及其装置
US11330284B2 (en) * 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
US10944963B2 (en) * 2016-05-25 2021-03-09 Arris Enterprises Llc Coding weighted angular prediction for intra coding
JPWO2018092870A1 (ja) * 2016-11-21 2019-10-17 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
WO2018105582A1 (ja) * 2016-12-09 2018-06-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
WO2018113658A1 (en) * 2016-12-22 2018-06-28 Mediatek Inc. Method and apparatus of motion refinement for video coding
US10750203B2 (en) * 2016-12-22 2020-08-18 Mediatek Inc. Method and apparatus of adaptive bi-prediction for video coding
US10911761B2 (en) * 2016-12-27 2021-02-02 Mediatek Inc. Method and apparatus of bilateral template MV refinement for video coding
CN107360433B (zh) * 2017-07-20 2020-06-19 北京奇艺世纪科技有限公司 一种帧间预测编码方法和装置
WO2019234578A1 (en) * 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Asymmetric weighted bi-predictive merges
CN118612456A (zh) * 2019-02-14 2024-09-06 Lg 电子株式会社 基于dmvr的帧间预测方法和设备

Also Published As

Publication number Publication date
CN112740679A (zh) 2021-04-30
PL3847807T3 (pl) 2024-09-09
CN116405666A (zh) 2023-07-07
KR20210057146A (ko) 2021-05-20
EP4415364A2 (en) 2024-08-14
BR112021004800A2 (pt) 2021-06-08
JP2023126226A (ja) 2023-09-07
EP4415364A3 (en) 2024-10-23
US20220368921A9 (en) 2022-11-17
EP3847807A1 (en) 2021-07-14
MX2021003048A (es) 2021-08-11
JP7297874B2 (ja) 2023-06-26
CN112740679B (zh) 2023-03-24
BR112021004800A8 (pt) 2021-06-22
US20210203946A1 (en) 2021-07-01
SG11202102569QA (en) 2021-04-29
CN117478873A (zh) 2024-01-30
CN116743992A (zh) 2023-09-12
EP3847807B1 (en) 2024-06-19
US20230188722A1 (en) 2023-06-15
CN116489345A (zh) 2023-07-25
CN117241015A (zh) 2023-12-15
CN116437076A (zh) 2023-07-14
US11563948B2 (en) 2023-01-24
WO2020052654A1 (en) 2020-03-19
KR102653856B1 (ko) 2024-04-01
EP3847807A4 (en) 2021-11-03
JP2022500930A (ja) 2022-01-04
CN116405667A (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
US10477237B2 (en) Decoder side motion vector refinement in video coding
KR102653856B1 (ko) 비디오 코딩에서 조건적 디코더측 모션 벡터 정제를 위한 장치 및 방법
US10757442B2 (en) Partial reconstruction based template matching for motion vector derivation
US10887597B2 (en) Systems and methods of determining illumination compensation parameters for video coding
US10356416B2 (en) Systems and methods of determining illumination compensation status for video coding
KR102483942B1 (ko) 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법
CN107534766B (zh) 于视频译码中针对子块推导运动信息方法、装置
US10542280B2 (en) Encoding optimization with illumination compensation and integer motion vector restriction
US20180278950A1 (en) Decoder-side motion vector derivation
KR20210068439A (ko) 히스토리 기반 모션 벡터 예측자에 대한 개선들
KR20200108432A (ko) 개선된 디코더측 모션 벡터 도출
KR20200006099A (ko) 비디오 압축에서의 양방향 예측
US9479788B2 (en) Systems and methods for low complexity encoding and background detection
WO2020007261A1 (en) V refinement of video motion vectors in adjacent video data
KR20230150284A (ko) 효율적인 비디오 인코더 아키텍처
KR20240152970A (ko) 비디오 인코더, 비디오 디코더 및 대응하는 인코딩 및 디코딩 방법

Legal Events

Date Code Title Description
A107 Divisional application of patent