KR20230081711A - 비디오 압축을 위한 기하학적 모델을 사용한 모션 코딩 - Google Patents

비디오 압축을 위한 기하학적 모델을 사용한 모션 코딩 Download PDF

Info

Publication number
KR20230081711A
KR20230081711A KR1020237011645A KR20237011645A KR20230081711A KR 20230081711 A KR20230081711 A KR 20230081711A KR 1020237011645 A KR1020237011645 A KR 1020237011645A KR 20237011645 A KR20237011645 A KR 20237011645A KR 20230081711 A KR20230081711 A KR 20230081711A
Authority
KR
South Korea
Prior art keywords
camera parameters
frame
current
motion
epipolar
Prior art date
Application number
KR1020237011645A
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 KR20230081711A publication Critical patent/KR20230081711A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • 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
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

비디오 코딩 시스템은 에피폴라 기하구조에 기초하여 모션 예측을 수행한다. 제1 카메라는 현재 프레임에 대응하고, 제2 카메라는 기준 프레임에 대응하고, 에피폴라 기하구조는 기준 프레임과 현재 프레임 사이에서 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하는 데 사용된다.

Description

비디오 압축을 위한 기하학적 모델을 사용한 모션 코딩
본 실시예들 중 적어도 하나는 대체적으로, 기하학적 모델을 사용한 그리고 예를 들어 클라우드 게이밍을 위한 렌더링된 합성 비디오의 맥락에서의 비디오를 위한 모션 코딩에 관한 것이다.
높은 압축 효율을 달성하기 위해, 이미지 및 비디오 코딩 스킴들은 일반적으로, 예측을 채용하고, 비디오 콘텐츠에서 공간적 및 시간적 리던던시를 레버리징하도록 변환한다. 대체적으로, 인트라 또는 인터 예측은 인트라 또는 인터 프레임 상관관계를 이용하는 데 사용되고, 이어서, 종종 예측 에러들 또는 예측 잔차들로 표시되는, 오리지널 블록과 예측 블록 사이의 차이들은 변환되고, 양자화되고, 엔트로피 코딩된다. 비디오를 재구성하기 위해, 압축 데이터는 엔트로피 코딩, 양자화, 변환, 및 예측에 대응하는 역 프로세스들에 의해 디코딩된다.
클라우드 게이밍은 비디오 코딩을 사용하여 게임 액션을 사용자에게 전달한다. 실제로, 그러한 맥락에서, 게임의 3D 환경은 서버에서 렌더링되고, 비디오 인코딩되고, 비디오 스트림으로서 디코더에 제공된다. 디코더는 비디오를 디스플레이하고, 이에 응답하여, 사용자 입력을 다시 서버로 송신하여, 이에 따라, 게임 요소들 및/또는 다른 사용자들과의 상호작용을 허용한다.
본 실시예들 중 적어도 하나는 에피폴라 기하구조(epipolar geometry)에 기초하여 모션 예측을 수행하는 비디오 코딩 시스템에 관한 것이다. 제1 카메라는 현재 프레임에 대응하고, 제2 카메라는 기준 프레임에 대응하고, 에피폴라 기하구조는 기준 프레임과 현재 프레임 사이에서 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하는 데 사용된다.
적어도 하나의 실시예의 제1 태양에 따르면, 비디오의 현재 프레임의 픽셀들의 블록을 디코딩하기 위한 방법은, 에피폴라 기하구조에 기초하여 모션 예측을 수행하는 단계를 포함하고, 여기서 제1 카메라는 현재 프레임에 대응하고, 제2 카메라는 기준 프레임에 대응하고, 에피폴라 기하구조는 기준 프레임의 블록과 현재 프레임의 블록 사이에서 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하는 데 사용된다.
적어도 하나의 실시예의 제2 태양에 따르면, 비디오의 현재 프레임의 픽셀들의 블록을 인코딩하기 위한 방법은, 에피폴라 기하구조에 기초하여 모션 예측을 수행하는 단계를 포함하고, 제1 카메라는 현재 프레임에 대응하고, 제2 카메라는 기준 프레임에 대응하고, 에피폴라 기하구조는 기준 프레임의 블록과 현재 프레임의 블록 사이에서 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하는 데 사용된다.
적어도 하나의 실시예의 제3 태양에 따르면, 장치는 비디오의 현재 프레임의 픽셀들의 블록을 디코딩하기 위한 디코더를 포함하고, 디코더는 에피폴라 기하구조에 기초하여 모션 예측을 수행하도록 구성되고, 제1 카메라는 현재 프레임에 대응하고, 제2 카메라는 기준 프레임에 대응하고, 디코더는 에피폴라 기하구조를 사용하여 기준 프레임의 블록과 현재 프레임의 블록 사이에서 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하도록 구성된다.
적어도 하나의 실시예의 제4 태양에 따르면, 장치는 비디오의 현재 프레임의 픽셀들의 블록을 인코딩하기 위한 인코더를 포함하고, 인코더는 에피폴라 기하구조에 기초하여 모션 예측을 수행하도록 구성되고, 제1 카메라는 현재 프레임에 대응하고, 제2 카메라는 기준 프레임에 대응하고, 디코더는 에피폴라 기하구조를 사용하여 기준 프레임의 블록과 현재 프레임의 블록 사이에서 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하도록 구성된다.
적어도 하나의 실시예의 제5 태양에 따르면, 프로세서에 의해 실행가능한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램이 제시되며, 컴퓨터 프로그램은 적어도 제1 태양 또는 제2 태양에 따른 방법의 단계들을 구현한다.
적어도 하나의 실시예의 제6 태양에 따르면, 비일시적 컴퓨터 판독가능 매체에 저장되고, 프로세서에 의해 실행가능한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램 제품이 제시되며, 컴퓨터 프로그램 제품은 프로세서 상에서 실행될 때 적어도 제1 태양 또는 제2 태양에 따른 방법의 단계들을 구현한다.
도 1은 비디오 인코더(100)의 일례의 블록도를 도시한다.
도 2는 비디오 디코더(200)의 일례의 블록도를 도시한다.
도 3은 다양한 태양들 및 실시예들이 구현되는 시스템의 일례의 블록도를 도시한다.
도 4는 다양한 태양들 및 실시예들이 구현되는 클라우드 게이밍 시스템의 일례를 도시한다.
도 5a, 도 5b, 도 5c는 아핀(affine) 예측 모드에 대한 제어 포인트들의 예들을 도시한다.
도 6은 대칭 모션 벡터 차이(symmetrical motion vector difference(MVD), SMVD) 모드의 일례를 도시한다.
도 7은 MVD와의 병합 모드를 사용할 때의 방향 포지션을 도시한다.
도 8은 디코더 측 모션 벡터(motion vector, MV) 개선의 일례를 도시한다.
도 9는 핀홀 카메라의 단순화된 모델의 일례를 도시한다.
도 10은 에피폴라 평면 및 에피폴라 라인의 원리들을 도시한다.
도 11은 적어도 하나의 실시예에 따른, 에피폴라 기하구조에 기초한 모션 예측의 일례를 도시한다.
도 12는 적어도 하나의 실시예에 따른, 에피폴라 기하구조에 기초하여 모션 벡터를 도출하기 위한 예시적인 흐름도를 도시한다.
도 13은 에피폴라 라인 상으로의 모션 예측자의 투영의 일례를 도시한다.
도 14는 적어도 하나의 실시예에 따른, 병합 후보 필터링 프로세스의 예시적인 흐름도를 도시한다.
도 15는 적어도 하나의 실시예에 따른, 저장된 모션 정보로부터 모션 예측자를 도출하기 위한 예시적인 흐름도를 도시한다.
도 1은 비디오 인코더(100)의 일례의 블록도를 도시한다. 비디오 인코더들의 예들은 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) 표준에 순응하는 HEVC 인코더 또는 HEVC 표준에 대해 개선들이 이루어진 HEVC 인코더, 또는 HEVC와 유사한 기술들을 채용한 인코더, 예컨대, 범용 비디오 코딩(Versatile Video Coding, VVC) 표준을 위한 JVET(Joint Video Exploration Team)에 의해 개발 중인 JEM(Joint Exploration Model) 인코더, 또는 다른 인코더들을 포함한다.
인코딩되기 전에, 비디오 시퀀스는 사전-인코딩 프로세싱(101)을 거칠 수 있다. 이는, 예를 들어, 입력 컬러 픽처에 컬러 변환을 적용함으로써(예를 들어, RGB 4:4:4로부터 YCbCr 4:2:0으로의 변환) 또는 (예를 들어, 컬러 성분들 중 하나의 성분의 히스토그램 등화를 사용하여) 압축에 대해 더 탄력적인 신호 분포를 얻기 위해 입력 픽처 성분들의 재맵핑(remapping)을 수행함으로써 수행된다. 메타데이터는 사전-프로세싱과 연관될 수 있고, 비트스트림에 부착될 수 있다.
HEVC에서, 하나 이상의 픽처들로 비디오 시퀀스를 인코딩하기 위해, 픽처는 하나 이상의 슬라이스들로 파티셔닝되며(102), 여기서 각각의 슬라이스는 하나 이상의 슬라이스 세그먼트들을 포함할 수 있다. 슬라이스 세그먼트는 코딩 단위들, 예측 단위들, 및 변환 단위들로 조직화된다. HEVC 규격은 "블록들"과 "단위들"을 구별하며, 여기서 "블록"은 샘플 어레이(예를 들어, 루마, Y) 내의 특정 영역을 설명하고, "단위"는 모든 인코딩된 컬러 성분들(Y, Cb, Cr, 또는 모노크롬), 신택스 요소들, 및 블록들과 연관되는 예측 데이터(예를 들어, 모션 벡터들)의 공동위치된 블록들을 포함한다.
HEVC에서의 코딩을 위해, 픽처는 구성가능한 크기를 갖는 정사각형 형상의 코딩 트리 블록(coding tree block, CTB)들로 파티셔닝되고, 코딩 트리 블록들의 연속적인 세트는 슬라이스로 그룹화된다. 코딩 트리 단위(Coding Tree Unit, CTU)는 인코딩된 컬러 성분들의 CTB들을 포함한다. CTB는 코딩 블록(Coding Block, CB)들로의 쿼드트리 파티셔닝의 근원이며, 코딩 블록은 하나 이상의 예측 블록(Prediction Block, PB)들로 파티셔닝될 수 있고 변환 블록(Transform Block, TB)들로의 쿼드트리 파티셔닝의 근원을 형성한다. 코딩 블록, 예측 블록 및 변환 블록에 대응하여, 코딩 단위(Coding Unit, CU)는 예측 단위(Prediction Unit, PU)들, 및 변환 단위(Transform Unit, TU)들의 트리-구조 세트를 포함하고, PU는 모든 컬러 성분들에 대한 예측 정보를 포함하고, TU는 각각의 컬러 성분에 대한 잔차 코딩 신택스 구조를 포함한다. 루마 성분의 CB, PB 및 TB의 크기는 대응하는 CU, PU 및 TU에 적용된다.
본 출원에서, 용어 "블록"은, 예를 들어, CTU, CU, PU, TU, CB, PB, 및 TB 중 임의의 것을 지칭하기 위해 사용될 수 있다. 덧붙여, "블록"은 또한, H.264/AVC 또는 다른 비디오 코딩 표준들에서 명시된 바와 같은 매크로블록 및 파티션을 지칭하고, 보다 대체적으로는, 다양한 크기들의 데이터의 어레이를 지칭하는 데 사용될 수 있다. 실제로, JVET에 의해 개발 중인 것과 같은 다른 코딩 표준들에서, 블록 형상들은 정사각형 블록들과는 상이할 수 있고(예를 들어, 직사각형 블록들), 최대 블록 크기는 더 클 수 있고 블록들의 배열은 상이할 수 있다.
인코더(100)의 예에서, 픽처는 후술되는 바와 같이 인코더 요소들에 의해 인코딩된다. 인코딩될 픽처는 CU들의 단위들로 프로세싱된다. 각각의 CU는 인트라 모드 또는 인터 모드 중 어느 하나를 사용하여 인코딩된다. CU가 인트라 모드에서 인코딩될 때, 그것은 인트라 예측을 수행한다(160). 인터 모드에서는 모션 추정(175) 및 보상(170)이 수행된다. 인코더는 CU를 인코딩하기 위해 인트라 모드 또는 인터 모드 중 어느 것을 사용할지를 결정하고, 예측 모드 플래그에 의해 인트라/인터 결정을 나타낸다(105). 예측 잔차들은 오리지널 이미지 블록에서 예측된 블록을 감산함으로써 계산된다(110).
인트라 모드에서의 CU들은 동일한 슬라이스 내에서 재구성된 이웃 샘플들로부터 예측된다. DC, 평면, 및 33개의 각도 예측 모드들을 포함하는 35개의 인트라 예측 모드들의 세트가 HEVC에서 이용가능하다. 인트라 예측 기준은 현재 블록에 인접한 행(row) 및 열(column)로부터 재구성된다. 기준은 이전에 재구성된 블록들로부터의 이용가능한 샘플들을 사용하여 수평 및 수직 방향들에서 블록 크기의 2배에 걸쳐 확장된다. 각도 예측 모드가 인트라 예측을 위해 사용될 때, 기준 샘플들은 각도 예측 모드에 의해 나타난 방향을 따라 복사될 수 있다.
현재 블록에 대한 적용가능한 루마 인트라 예측 모드는 2개의 상이한 옵션들을 사용하여 코딩될 수 있다. 적용가능한 모드가 3개의 최고 확률 모드(most probable mode, MPM)들의 구성된 목록에 포함되는 경우, 모드는 MPM 목록에서의 인덱스에 의해 시그널링된다. 그렇지 않은 경우, 모드는 모드 인덱스의 고정 길이 이진화에 의해 시그널링된다. 3개의 최고 확률 모드들은 상측 및 좌측 이웃 블록들의 인트라 예측 모드들로부터 도출된다.
인터 CU의 경우, 대응하는 코딩 블록은 하나 이상의 예측 블록들로 추가로 파티셔닝된다. 인터 예측이 PB 레벨에 대해 수행되고, 대응하는 PU는 인터 예측이 어떻게 수행되는지에 관한 정보를 포함한다. 모션 정보(예를 들어, 모션 벡터 및 기준 픽처 인덱스)는 2개의 방법들, 즉, "병합 모드" 및 "고급 모션 벡터 예측(advanced motion vector prediction, AMVP)"으로 시그널링될 수 있다.
병합 모드에서, 비디오 인코더 또는 디코더는 이미 코딩된 블록들에 기초하여 후보 목록을 구축하고, 비디오 인코더는 후보 목록 내의 후보들 중 하나의 후보에 대한 인덱스를 시그널링한다. 디코더 측에서, 모션 벡터(MV) 및 기준 픽처 인덱스는 시그널링된 후보에 기초하여 재구성된다.
AMVP에서, 비디오 인코더 또는 디코더는 이미 코딩된 블록들로부터 결정된 모션 벡터들에 기초하여 후보 목록들을 구축한다. 이어서, 비디오 인코더는 후보 목록 내의 인덱스를 시그널링하여 모션 벡터 예측자(motion vector predictor, MVP)를 식별하고, 모션 벡터 차이(MVD)를 시그널링한다. 디코더 측에서, 모션 벡터(MV)는 MVP+MVD로서 재구성된다. 적용가능한 기준 픽처 인덱스는 또한, AMVP에 대한 PU 신택스에서 명시적으로 코딩된다.
이어서, 예측 잔차들은, 후술되는 크로마 양자화 파라미터를 적응시키기 위한 적어도 하나의 실시예를 포함하여, 변환되고(125) 양자화된다(130). 변환들은 대체적으로, 분리가능한 변환들에 기초한다. 예를 들어, DCT 변환이 먼저 수평 방향으로, 이어서, 수직 방향으로 적용된다. JEM과 같은 최근 코덱들에서, 양쪽 방향들 모두에서 사용되는 변환들은 상이할 수 있는 반면(예를 들어, 하나의 방향에서는 DCT, 다른 방향에서는 DST) - 이는 매우 다양한 2D 변환들로 이어짐 -, 이전의 코덱들에서, 주어진 블록 크기에 대한 다양한 2D 변환들은 일반적으로 제한된다.
양자화된 변환 계수들뿐만 아니라 모션 벡터들 및 다른 신택스 요소들은 엔트로피 코딩되어(145) 비트스트림을 출력한다. 인코더는 또한, 변환을 스킵할 수 있고, 4x4 TU 단위의 변환되지 않은 잔차 신호에 양자화를 직접적으로 적용시킬 수 있다. 인코더는 또한, 변환 및 양자화 둘 모두를 우회할 수 있으며, 즉, 잔차는 변환 또는 양자화 프로세스의 적용 없이 직접적으로 코딩된다. 직접 PCM 코딩에서, 어떠한 예측도 적용되지 않으며, 코딩 단위 샘플들이 비트스트림에 직접적으로 코딩된다.
인코더는 인코딩된 블록을 디코딩하여 추가 예측들을 위한 기준을 제공한다. 양자화된 변환 계수들은 예측 잔차들을 디코딩하기 위해 역양자화되고(140) 역변환된다(150). 디코딩된 예측 잔차들 및 예측된 블록을 조합하여(155) 이미지 블록이 재구성된다. 인루프 필터들(165)이, 예를 들어, 인코딩 아티팩트들을 감소시키기 위해 디블록킹/SAO(Sample Adaptive Offset) 필터링을 수행하도록, 재구성된 픽처에 적용된다. 필터링된 이미지는 기준 픽처 버퍼(180)에 저장된다.
도 2는 비디오 디코더(200)의 일례의 블록도를 도시한다. 비디오 디코더들의 예들은 고효율 비디오 코딩(HEVC) 표준에 순응하는 HEVC 디코더 또는 HEVC 표준에 대해 개선들이 이루어진 HEVC 디코더, 또는 HEVC와 유사한 기술들을 채용한 디코더, 예컨대, 범용 비디오 코딩(VVC) 표준을 위한 JVET에 의해 개발 중인 JEM 디코더, 또는 다른 디코더들을 포함한다.
디코더(200)의 예에서, 비트스트림은 후술되는 바와 같이 디코더 요소들에 의해 디코딩된다. 비디오 디코더(200)는 대체적으로, 도 1에 기술된 바와 같이, 인코딩 패스(encoding pass)에 상반되는 디코딩 패스(decoding pass)를 수행하는데, 이는 비디오 데이터를 인코딩하는 것의 일부로서 비디오 디코딩을 수행한다.
특히, 디코더의 입력은 비디오 인코더(100)에 의해 생성될 수 있는 비디오 비트스트림을 포함한다. 비트스트림은 변환 계수들, 모션 벡터들, 픽처 파티셔닝 정보, 및 다른 코딩된 정보를 획득하기 위해 먼저 엔트로피 디코딩된다(230). 픽처 파티셔닝 정보는 CTU들의 크기, 및 CTU가 CU들로, 그리고 가능하게는, 적용가능할 때 PU들로 분할되는 방식을 나타낸다. 따라서, 디코더는 디코딩된 픽처 파티셔닝 정보에 따라, 픽처를 CTU들로, 그리고 각각의 CTU를 CU들로 분할할 수 있다(235). 변환 계수들은 예측 잔차들을 디코딩하기 위해, 후술되는 크로마 양자화 파라미터를 적응시키기 위한 적어도 하나의 실시예를 포함하여, 역양자화되고(240) 역변환(250)된다.
디코딩된 예측 잔차들 및 예측된 블록을 조합하여(255) 이미지 블록이 재구성된다. 예측된 블록은 인트라 예측(260) 또는 모션 보상된 예측(즉, 인터 예측)(275)으로부터 획득될 수 있다(270). 전술된 바와 같이, AMVP 및 병합 모드 기법들은 모션 보상을 위한 모션 벡터들을 도출하는 데 사용될 필요가 있는데, 이들은 내삽 필터들을 사용하여 기준 블록의 정수 이하(sub-integer) 샘플들에 대한 내삽된 값들을 계산할 수 있다. 재구성된 이미지에 인루프 필터들(265)이 적용된다. 필터링된 이미지는 기준 픽처 버퍼(280)에 저장된다.
디코딩된 픽처는 사후-디코딩 프로세싱(285), 예를 들어, 사전-인코딩 프로세싱(101)에서 수행된 재맵핑 프로세스의 역을 수행하는 역 재맵핑 또는 역 컬러 변환(예를 들어, YCbCr 4:2:0으로부터 RGB 4:4:4로의 변환)을 추가로 거칠 수 있다. 사후-디코딩 프로세싱은, 사전-인코딩 프로세싱에서 도출되고 비트스트림에서 시그널링된 메타데이터를 사용할 수 있다.
도 3은 다양한 태양들 및 실시예들이 구현되는 시스템의 일례의 블록도를 도시한다. 시스템(1000)은 후술되는 다양한 컴포넌트들을 포함하는 디바이스로서 구현될 수 있고, 본 출원에 기술된 태양들 중 하나 이상을 수행하도록 구성된다. 그러한 디바이스들의 예들은, 다양한 전자 디바이스들, 예컨대 개인용 컴퓨터, 랩톱 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 멀티미디어 셋톱 박스, 디지털 TV 수신기, 개인 비디오 기록 시스템, 커넥티드 가전, 인코더, 트랜스코더, 및 서버를 포함하지만, 이들로 제한되지 않는다. 시스템(1000)의 요소들은, 단독으로 또는 조합하여, 단일 집적 회로, 다수의 IC들, 및/또는 이산 컴포넌트들로 구현될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 시스템(1000)의 처리 및 인코더/디코더 요소들은 다수의 IC들 및/또는 별개의 컴포넌트들에 걸쳐 분산된다. 다양한 실시예들에서, 시스템(1000)은, 예를 들어, 통신 버스를 통해 또는 전용 입력 및/또는 출력 포트들을 통해, 다른 유사한 시스템들, 또는 다른 전자 디바이스들에 통신가능하게 커플링된다. 다양한 실시예들에서, 시스템(1000)은 본 문서에 기술된 태양들 중 하나 이상을 구현하도록 구성된다.
시스템(1000)은, 예를 들어, 본 문헌에 기술된 다양한 태양들을 구현하기 위해 그 내부에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(1010)를 포함한다. 프로세서(1010)는 내장된 메모리, 입력 출력 인터페이스, 및 당업계에 알려진 바와 같은 다양한 다른 회로부들을 포함할 수 있다. 시스템(1000)은 적어도 하나의 메모리(1020)(예컨대, 휘발성 메모리 디바이스, 및/또는 비휘발성 메모리 디바이스)를 포함한다. 시스템(1000)은, EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이들로 제한되지 않는 비휘발성 메모리 및/또는 휘발성 메모리를 포함할 수 있는 저장 디바이스(1040)를 포함한다. 저장 디바이스(1040)는, 비제한적인 예들로서, 내부 저장 디바이스, 부착된 저장 디바이스, 및/또는 네트워크 액세스가능 저장 디바이스를 포함할 수 있다.
시스템(1000)은, 예를 들어, 인코딩된 비디오 또는 디코딩된 비디오를 제공하기 위해 데이터를 처리하도록 구성된 인코더/디코더 모듈(1030)을 포함하고, 인코더/디코더 모듈(1030)은 자체 프로세서 및 메모리를 포함할 수 있다. 인코더/디코더 모듈(1030)은 인코딩 및/또는 디코딩 기능들을 수행하기 위해 디바이스에 포함될 수 있는 모듈(들)을 나타낸다. 알려진 바와 같이, 디바이스는 인코딩 및 디코딩 모듈들 중 하나 또는 둘 모두를 포함할 수 있다. 추가적으로, 인코더/디코더 모듈(1030)은 시스템(1000)의 별개의 요소로서 구현될 수 있거나, 또는 당업자에게 알려진 바와 같은 하드웨어와 소프트웨어의 조합으로서 프로세서(1010) 내에 통합될 수 있다.
본 문헌에서 기술된 다양한 태양들을 수행하기 위해 프로세서(1010) 또는 인코더/디코더(1030)에 로딩될 프로그램 코드는 저장 디바이스(1040)에 저장될 수 있고 후속적으로 프로세서(1010)에 의한 실행을 위해 메모리(1020)에 로딩될 수 있다. 다양한 실시예들에 따르면, 프로세서(1010), 메모리(1020), 저장 디바이스(1040), 및 인코더/디코더 모듈(1030) 중 하나 이상은 본 문헌에 기술된 프로세스들의 수행 동안 다양한 항목들 중 하나 이상을 저장할 수 있다. 이러한 저장된 항목들은 입력 비디오, 디코딩된 비디오 또는 디코딩된 비디오의 일부들, 비트스트림, 행렬들, 변수들, 및 식들, 공식들, 연산들 및 연산 로직의 처리로부터의 중간 또는 최종 결과들을 포함할 수 있지만, 이들로 제한되지 않는다.
여러 실시예들에서, 프로세서(1010) 및/또는 인코더/디코더 모듈(1030) 내부의 메모리는 명령어들을 저장하기 위해 그리고 인코딩 또는 디코딩 동안 필요한 프로세싱을 위한 작업 메모리를 제공하기 위해 사용된다. 그러나, 다른 실시예들에서, 처리 디바이스(예를 들어, 처리 디바이스는 프로세서(1010) 또는 인코더/디코더 모듈(1030) 중 어느 하나일 수 있음) 외부의 메모리가 이러한 기능들 중 하나 이상에 사용된다. 외부 메모리는 메모리(1020) 및/또는 저장 디바이스(1040), 예를 들어, 동적 휘발성 메모리 및/또는 비휘발성 플래시 메모리일 수 있다. 여러 실시예들에서, 외부 비휘발성 플래시 메모리가 텔레비전의 운영 체제를 저장하는 데 사용된다. 적어도 하나의 실시예에서, RAM과 같은 고속의 외부 동적 휘발성 메모리는 비디오 코딩 및 디코딩 동작들을 위한, 예컨대 MPEG-2, HEVC, 또는 VVC를 위한 작업 메모리로서 사용된다.
시스템(1000)의 요소들에 대한 입력은 블록(1130)에 표시된 바와 같은 다양한 입력 디바이스들을 통해 제공될 수 있다. 그러한 입력 디바이스들은 (i) 예를 들어, 브로드캐스터에 의해 무선으로 송신되는 RF 신호를 수신하는 RF 부분, (ii) 복합 입력 단자(Composite input terminal), (iii) USB 입력 단자, 및/또는 (iv) HDMI 입력 단자를 포함하지만, 이들로 제한되지 않는다.
다양한 실시예들에서, 블록(1130)의 입력 디바이스들은 당업계에 알려진 바와 같은 연관된 각자의 입력 처리 요소들을 갖는다. 예를 들어, RF 부분은, (i) 원하는 주파수를 선택하는 것(신호를 선택하는 것, 신호를 주파수들의 대역으로 대역-제한하는 것으로도 지칭됨), (ii) 선택된 신호를 하향 변환(down converting)하는 것, (iii) (예를 들어) 소정 실시예들에서 채널로 지칭될 수 있는 신호 주파수 대역을 선택하기 위해 주파수들의 더 좁은 대역으로 다시 대역-제한하는 것, (iv) 하향 변환되고 대역-제한된 신호를 복조하는 것, (v) 에러 정정을 수행하는 것, 및 (vi) 데이터 패킷들의 원하는 스트림을 선택하기 위해 역다중화하는 것에 필요한 요소들과 연관될 수 있다. 다양한 실시예들의 RF 부분은 이러한 기능들을 수행하기 위한 하나 이상의 요소들, 예를 들어 주파수 선택기들, 신호 선택기들, 대역-제한기들, 채널 선택기들, 필터들, 하향변환기들, 복조기들, 오류 보정기들, 및 역다중화기들을 포함한다. RF 부분은, 예를 들어, 수신된 신호를 더 낮은 주파수(예를 들어, 중간 주파수 또는 기저대역 인근 주파수)로 또는 기저대역으로 하향변환하는 것을 포함한, 다양한 이들 기능들을 수행하는 동조기를 포함할 수 있다. 하나의 셋톱박스 실시예에서, RF 부분 및 그의 연관된 입력 프로세싱 요소는 유선(예를 들어, 케이블) 매체를 통해 송신된 RF 신호를 수신하고, 원하는 주파수 대역에 대해 필터링, 하향변환, 및 다시 필터링함으로써 주파수 선택을 수행한다. 다양한 실시예들은 전술한(및 다른) 요소들의 순서를 재배열하고, 이들 요소들 중 일부를 제거하고/하거나 유사하거나 상이한 기능들을 수행하는 다른 요소들을 추가한다. 요소를 추가하는 것은, 예를 들어, 증폭기들 및 아날로그-디지털 변환기를 삽입하는 것과 같이, 기존 요소들 사이에 요소들을 삽입하는 것을 포함할 수 있다. 다양한 실시예들에서, RF 부분은 안테나를 포함한다.
또한, USB 및/또는 HDMI 단자들은 시스템(1000)을 USB 및/또는 HDMI 접속부들을 통해 다른 전자 디바이스들에 접속하기 위한 각자의 인터페이스 프로세서들을 포함할 수 있다. 입력 처리의 다양한 태양들, 예를 들어, 리드-솔로몬(Reed-Solomon) 에러 정정은 필요에 따라, 예를 들어, 별개의 입력 처리 IC 내에서 또는 프로세서(1010) 내에서 구현될 수 있다는 것이 이해되어야 한다. 유사하게, USB 또는 HDMI 인터페이스 처리의 태양들은 필요에 따라, 별개의 인터페이스 IC들 내에서 또는 프로세서(1010) 내에서 구현될 수 있다. 복조, 에러 정정, 및 역다중화된 스트림은, 예를 들어, 출력 디바이스 상에서의 프리젠테이션을 위해 필요에 따라 데이터 스트림을 프로세싱하도록 메모리 및 저장 요소들과 조합하여 동작하는 프로세서(1010), 및 인코더/디코더(1030)를 포함한 다양한 프로세싱 요소들에 제공된다.
시스템(1000)의 다양한 요소들이 집적 하우징 내에 제공될 수 있다. 집적 하우징 내에서, 다양한 요소들은 I2C 버스, 배선, 및 인쇄 회로 기판들을 포함한 적합한 접속 배열물, 예를 들어, 당업계에 알려져 있는 바와 같은 내부 버스를 사용하여, 상호접속될 수 있고 그들 사이에서 데이터를 송신할 수 있다.
시스템(1000)은 통신 채널(1060)을 통해 다른 디바이스들과의 통신을 가능하게 하는 통신 인터페이스(1050)를 포함한다. 통신 인터페이스(1050)는 통신 채널(1060)을 통해 데이터를 송신하도록 그리고 수신하도록 구성된 송수신기를 포함할 수 있지만, 이에 제한되지 않는다. 통신 인터페이스(1050)는 모뎀 또는 네트워크 카드를 포함할 수 있지만 이에 제한되지 않으며, 통신 채널(1060)은 예를 들어 유선 및/또는 무선 매체 내에서 구현될 수 있다.
데이터는, 다양한 실시예들에서, IEEE 802.11과 같은 Wi-Fi 네트워크를 사용하여 시스템(1000)으로 스트리밍된다. 이들 실시예들의 Wi-Fi 신호는 Wi-Fi 통신들에 대해 적응된 통신 채널(1060) 및 통신 인터페이스(1050)를 통해 수신된다. 이러한 실시예들의 통신 채널(1060)은 전형적으로, 스트리밍 애플리케이션들 및 다른 오버더톱(over-the-top) 통신을 허용하기 위한 인터넷을 포함하는 외부 네트워크들에 대한 액세스를 제공하는 액세스 포인트 또는 라우터에 접속된다. 다른 실시예들은 입력 블록(1130)의 HDMI 접속을 통해 데이터를 전달하는 셋톱 박스를 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다. 또 다른 실시예들은 입력 블록(1130)의 RF 접속을 사용하여 스트리밍된 데이터를 시스템(1000)에 제공한다.
시스템(1000)은 디스플레이(1100), 스피커들(1110), 및 다른 주변 디바이스들(1120)을 포함하는 다양한 출력 디바이스들에 출력 신호를 제공할 수 있다. 다른 주변기기 디바이스들(1120)은, 실시예들의 다양한 예들에서, 독립형 DVR, 디스크 플레이어, 스테레오 시스템, 조명 시스템, 및 시스템(1000)의 출력에 기초하여 기능을 제공하는 다른 디바이스들 중 하나 이상을 포함한다. 다양한 실시예들에서, 제어 신호들은, 사용자 개입으로 또는 사용자 개입 없이 디바이스-대-디바이스 제어를 인에이블시키는 AV.Link, CEC, 또는 다른 통신 프로토콜들과 같은 시그널링을 사용하여 시스템(1000)과 디스플레이(1100), 스피커들(1110), 또는 다른 주변기기 디바이스들(1120) 사이에서 통신된다. 출력 디바이스들은 각자의 인터페이스들(1070, 1080, 1090)을 통해 전용 접속들을 거쳐 시스템(1000)에 통신가능하게 커플링될 수 있다. 대안적으로, 출력 디바이스들은 통신 인터페이스(1050)를 통해 통신 채널(1060)을 사용하여 시스템(1000)에 접속될 수 있다. 디스플레이(1100) 및 스피커들(1110)은, 예를 들어, 텔레비전과 같은 전자 디바이스에서 시스템(1000)의 다른 컴포넌트들과 단일 유닛으로 통합될 수 있다. 다양한 실시예들에서, 디스플레이 인터페이스(1070)는, 예를 들어, 타이밍 제어기(T Con) 칩과 같은 디스플레이 드라이버를 포함한다.
디스플레이(1100) 및 스피커(1110)는 대안적으로, 예를 들어, 입력(1130)의 RF 부분이 별개의 셋톱 박스의 일부인 경우, 다른 컴포넌트들 중 하나 이상과 별개일 수 있다. 디스플레이(1100) 및 스피커들(1110)이 외부 컴포넌트들인 다양한 실시예들에서, 출력 신호는, 예를 들어, HDMI 포트들, USB 포트들, 또는 COMP 출력들을 포함하는 전용 출력 접속들을 통해 제공될 수 있다. 본 명세서에 기술된 구현예들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현예의 맥락에서만 논의되더라도(예를 들어, 방법으로서만 논의됨), 논의된 특징들의 구현예는 또한 다른 형태들(예를 들어, 장치 또는 프로그램)로 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 예컨대 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 로직 디바이스를 포함하는, 대체적으로 프로세싱 디바이스들로 지칭되는, 예를 들어, 프로세서와 같은 장치에서 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터들, 휴대폰들, 휴대용/개인 디지털 어시스턴트들("PDA들"), 및 최종 사용자들 사이의 정보의 통신을 용이하게 하는 다른 디바이스들과 같은 통신 디바이스들을 포함한다.
도 4는 다양한 태양들 및 실시예들이 구현되는 클라우드 게이밍 시스템의 일례를 도시한다. 종래의 게이밍 생태계에서, 사용자들은 3D 가상 환경들을 렌더링하기 위한 충분한 계산 능력들을 갖는 디바이스들, 예컨대 고급 그래픽 카드들을 갖춘 게임 콘솔들 또는 컴퓨터들을 소유한다. 따라서, 환경의 상호작용들 및 업데이트들, 예를 들어 렌더링이 로컬로 수행된다. 다수의 플레이어들 내에서 가상 환경을 동기화하기 위해 상호작용 데이터가 서버로 전송될 수 있다.
클라우드 게이밍 생태계는, 렌더링 하드웨어가 클라우드에 상주하여 사용자가 제한된 계산 능력들을 갖는 로컬 디바이스들을 사용할 수 있도록 한다는 점에서 매우 상이하다. 따라서, 클라이언트 디바이스는 더 저렴할 수 있거나, 또는 심지어, 저가 컴퓨터, 태블릿, 저가 스마트폰, 셋톱 박스, 텔레비전 등과 같이 가정에 이미 존재하는 디바이스일 수 있다.
그러한 시스템(400)에서, 고가의 전력 소비 디바이스들을 필요로 하는 게임 엔진(411) 및 3D 그래픽 렌더링(413)은, 예를 들어 클라우드에서, 사용자로부터 원격으로 위치된 게임 서버(410)에 의해 호스팅된다. 다음으로, 렌더링된 프레임들은 비디오 인코더(415)에 의해 인코딩되고 비디오 스트림은, 예컨대 종래의 통신 네트워크를 통해, 클라이언트 디바이스(420)로 송신되며, 여기서 그것은 종래의 비디오 디코더(425)에 의해 디코딩될 수 있다. 추가적인 경량 모듈(422)이, 사용자의 상호작용들 및 프레임 동기화를 관리하고 커맨드들을 서버로 다시 송신하는 역할을 한다.
이러한 시스템의 변형 구현예가, 일부 경우들에 있어서, 3D 그래픽 렌더링 하드웨어 능력들을 포함하는 랩톱, 스마트폰, 태블릿 및 셋톱 박스와 같은 디바이스들에서 증가하는 계산 능력들을 이용한다. 그러나, 이러한 능력들은 고급 3D 렌더링 품질(종종, 상당한 데이터 메모리 및 3D 그래픽 렌더링 전력을 필요로 함)을 제공하기에 충분하지 않을 수 있고, 기본 레벨의 렌더링만을 제공할 수 있다. 이러한 경우, 서버 측에서의 고품질 그래픽 렌더링에 의해 렌더링된 바와 같은 전체 능력 게임 렌더링된 이미지들과 클라이언트 그래픽 기본 레벨 렌더링 사이의 차이로서 계산된 향상된 계층을 코딩함으로써 클라이언트 그래픽 기본 레벨 렌더링을 보완하기 위해 하이브리드 접근법이 사용될 수 있다. 이러한 차이는, 서버 상의 비디오 인코더 모듈에 의해 비디오 신호로서 인코딩되고, 통신 네트워크를 통해 클라이언트 디바이스로 송신되고, 비디오 디코더에 의해 디코딩되고, 클라이언트 그래픽 기본 레벨 렌더링된 이미지에 향상 계층으로서 추가된다.
따라서, 클라우드 게이밍 시스템들은 도 1의 것과 같은 비디오 인코더 및 도 2의 것과 같은 비디오 디코더에 기초한다. 인코더 및 디코더는 모션 보상 예측을 사용하는 비디오 코딩 모드들에 의존한다. 이러한 모드들 중 일부는 후술되며, 적어도 하나의 실시예에 따라 사용될 수 있다.
인터 예측에서, 하나의 모션 벡터 및 하나의 기준 픽처 인덱스는 명시적으로 코딩되거나(AMVP 모드), 또는 이전에 재구성된 CU들로부터 도출된다(병합 모드). CU 예측은 기준 픽처 내의 블록들의 모션 보상에 기초하여 결정된다. 양방향 예측의 경우, 2개의 모션 벡터들 및 2개의 기준 픽처 인덱스들이 사용되고, 2개의 모션 보상 예측들이 결정되고, CU마다 가중화를 사용하여 조합된다. AMVP의 경우, 이전에 재구성된 CU들(예: 이웃)로부터 모션 벡터 예측자들과 기준 인덱스들의 목록이 구축되고, 어느 것이 예측자(MVP)로서 사용될지를 표시하는 인덱스가 코딩된다. 값 MVD가 코딩되고, 재구성된 모션 벡터는 MV=MVP+MVD이다. 병합의 경우, MVD는 코딩되지 않는다(0과 동일하게 추론됨). CU가 재구성된 후, 모션 벡터들 및 인덱스들은 모션 정보 버퍼에 저장되어, 후속 CU들 및 후속 프레임들의 모션 벡터 후보들을 구축하는 데 사용될 수 있다.
도 5a, 도 5b, 도 5c는 아핀 예측 모드에 대한 제어 포인트들의 예들을 도시한다. 아핀 예측 모드는, 2개의 제어 포인트로서의 모션 벡터(motion vector as control point, CPMV)들(도 5a) 또는 3개의 CPMV(도 5b)들을 사용하여 4-파라미터 또는 6-파라미터 모션 모델을 도출하여, 도 5c에 도시된 바와 같이, 현재 블록(Cur) 내의 각각의 4x4 서브블록에 대한 모션 벡터들을 계산한다.
아핀 병합 모드에서, CPMV들은 MV 병합 후보들로부터 도출된다.
도 6은 대칭 MVD 모드의 일례를 도시한다. 일반 단방향 예측 및 양방향 예측 모드 MVD 시그널링 외에도, 2개의 MVD 값들(MVD0 및 MVD1) 및 기준 인덱스들(목록 0 및 목록 1)이 시그널링되는 경우, 대칭 모션 벡터 차이(SMVD) 모드는 하기와 같이, 목록 0 및 목록 1 둘 모두의 기준 픽처 인덱스들 및 목록 1의 MVD를 포함하는 모션 정보를 추론함으로써 비트들을 절감하는 것을 허용한다:
- 목록 0 내의 가장 가까운 기준 픽처 및 목록 1 내의 가장 가까운 기준 픽처가 기준 픽처들의 순방향 및 역방향 쌍 또는 기준 픽처들의 역방향 및 순방향 쌍을 형성하는 경우, SMVD 모드가 인에이블될 수 있으며, 목록 0 및 목록 1 기준 픽처들 둘 모두는 단기 기준 픽처들이다. 그렇지 않은 경우, SMVD 모드가 디스에이블된다.
- 현재 코딩 단위에서 SMVD가 인에이블될 때, MVD1 값은 '-MVD0', 다시 말해, 도 6에 도시된 바와 같이, MVD0에 상반되는 벡터와 동일하게 추론된다.
도 7은 MVD와의 병합 모드를 사용할 때의 방향 포지션을 도시한다. VVC에 기초한 예시적인 구현예에서, 암시적으로 도출된 모션 정보가 현재 CU의 예측 샘플 생성을 위해 직접 사용되는 병합 모드에 더하여, 모션 벡터 차이들이 있는 병합 모드(merge mode with motion vector differences, MMVD)가 사용될 수 있다. 이러한 모드에서, 병합 후보가 선택된 후, 그것은 시그널링된 MVD 정보에 의해 추가로 개선된다. MVD는 도 7에 도시된 바와 같은 모션 크기를 특정하는 제1 인덱스 및 모션 방향을 표시하는 제2 인덱스와 코딩된다.
표 1은 8개의 인덱스 값들을 사용한 모션 크기들의 대응성의 일례를 예시한다.
Figure pct00001
표 2는 모션 방향들을 나열하는 표의 일례를 예시한다.
Figure pct00002
도 8은 디코더 측 모션 벡터 개선의 일례를 도시한다. 양방향 예측 병합 모드의 경우, 모션 벡터들은 디코더 측 모션 벡터 개선(decoder side motion vector refinement, DMVR 프로세스를 통해 개선될 수 있다. 기준 픽처 목록들 L0 및 L1 내의 초기 모션 벡터들 주위에서 개선된 모션 벡터들이 검색된다. 방법은 기준 픽처 목록 L0 및 목록 L1 내의 2개의 후보 블록들 사이의 왜곡을 계산한다. 도면에 도시된 바와 같이, 초기 모션 벡터들(MV0 및 MV1) 주위의 각각의 모션 벡터 후보에 기초하여 우하향 대시표시된 블록들(810, 811) 사이의 평균 거리 합(sum of average distance, SAD)이 계산된다. SAD가 가장 낮은 모션 벡터 후보의 쌍은 개선된 모션 벡터들이 되고, 양방향 예측된 신호를 생성하는 데 사용된다. 모션 벡터 변위 후보 쌍들은 초기 모션 벡터들 주위에 대칭 값(mvOffset)들을 가져야 한다.
도 9는 핀홀 카메라의 단순화된 모델의 일례를 도시한다. 스테레오 비전 또는 3D 비디오 프로세싱의 맥락에서, 동일한 정적 객체의 상이한 뷰들에서 쌍을 이룬 샘플들을 제한하기 위해 에피폴라 기하구조가 사용된다. 2개의 카메라들이 2개의 별개의 포지션들로부터 3D 장면을 캡처할 때, 3D 포인트들과 2D 이미지들로의 그들의 투영들 사이에 기하학적 관계들이 있고, 이들은 이미지 포인트들 사이에 제약들을 초래한다. 대체적으로 이러한 관계들은 핀홀 카메라 모델에 의해 카메라들이 근사화될 수 있다는 가정에 기초하여 도출된다. 핀홀 모델은 카메라 광학 중심(C)의 포지션 및 가상 이미지 평면으로 장면 내의 임의의 포인트 P(X, Y, Z)의 이미지에서 픽셀 포지션(x, y)을 도출하는 것을 허용한다. 가상 이미지 평면은 광학 중심까지의 그의 거리 및 그의 배향(도면에서 주축)으로 정의된다. 따라서, "카메라 파라미터들"은 광학 중심 포지션 좌표들 및 이러한 가상 이미지 평면 파라미터들을 포함하는 파라미터 세트에 대응한다.
도 10은 에피폴라 평면 및 에피폴라 라인의 원리들을 도시한다. 장면 내의 포인트 P(X, Y, Z) 및 각자의 광학 중심들(C1, C2)을 갖는 2개의 카메라들을 고려하면, 에피폴라 평면은 3개의 포인트들(P, C1, C2)에 의해 정의된다. 카메라(C2)로의 라인(C1, P)의 투영은 C2의 가상 평면에 에피폴라 라인을 그린다.
보다 대체적으로, 컴퓨터 비전에서, 외부 파라미터들(KE)은, 전형적으로 시간에 따라 달라질 수 있는 광학 카메라의 회전(R) 및 병진(T)을 정의하는 한편, 내부 파라미터들(KI)은, 대체적으로 일정하지만 예를 들어 줌의 경우에 달라질 수 있는 프레임 평면에 대한 초점, 픽셀비(pixel ratio), 스큐(skew), 광학 중심 거리를 결정한다. 하기에서, 파라미터들의 세트{KE, KI}는 {K}로 표기되고, 카메라 파라미터들로 명명된다.
컴퓨터 비전에서, "기본 행렬"(F)은 스테레오 이미지들의 대응하는 포인트들과 관련된 3×3 행렬이다. F는 각각의 뷰와 연관된 카메라들의 외부 및 내부 파라미터들의 함수이고, 각각의 뷰에 대한 카메라 파라미터들인 K1 및 K2로 결정될 수 있다. 예를 들어, F는 하기와 같이 외부 및 내부 파라미터들로부터 결정될 수 있으며:
Figure pct00003
여기서,
[a]x는 하기를 표기한다:
Figure pct00004
상기의 행렬은 벡터 a의 벡터적(외적)과 연관된 행렬이다. 이것은 비대칭(skew-symmetric) 행렬이고, [a]x로 표기된다.
A-T는 행렬(A)의 역의 전치를 표기하며: A-T = (A-1)T,
카메라(C)의 내부 행렬은 하기와 같이 정의되며:
Figure pct00005
여기서 f는 초점 거리이고, ku 및 kv는 카메라(C)의 샘플비(각각, 이미지 내의 거리 단위당 이미지 샘플들의 수평 및 수직 개수)이고,
Figure pct00006
Figure pct00007
은 이미지의 하부 좌측 코너의 좌표들이고,
Q1, R1 및 t1은 각각 카메라(C1)의 내부 행렬, 회전 행렬 및 병진이다. Q2, R2 및 t2는 각각 카메라(C2)의 내부 행렬, 회전 행렬 및 병진이다.
회전 행렬은, 예를 들어 오일러 각도들(α,β,γ)을 사용할 때, 하기와 같이 표현할 수 있으며:
Figure pct00008
t는 카메라(C)의 병진이다:
Figure pct00009
에피폴라 기하구조에서, F(p1)는 다른 이미지 상의 대응하는 포인트(p2)가 놓여야 하는 에피폴라 라인을 나타낸다. 따라서, 대응하는 포인트들의 모든 쌍들에 대해, 하기의 관계가 사용될 수 있다:
Figure pct00010
이후 기술되는 실시예들은 전술한 내용을 염두에 두고 설계되었다.
적어도 하나의 실시예에서, 비디오 코딩 시스템은 에피폴라 기하구조에 기초하여 모션 예측을 수행한다. 그러한 실시예에서, 제1 카메라는 현재 프레임에 대응하고, 제2 카메라는 기준 프레임에 대응하고, 에피폴라 기하구조는 기준 프레임과 현재 프레임 사이에서 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하는 데 사용된다.
그러한 원리는 장면의 객체들이 움직이고 있지 않다는 가정에 기초한다. 게이밍 애플리케이션의 예에서, 몇 개의 객체들만이 연속 프레임들 사이에서 이동하고 있는 경우가 발생할 수 있다. 가장 중요한 이동들은 가상 환경 내에서의 사용자의 이동이다. 이러한 경우, 클라우드 게이밍 환경에서 에피폴라 기하구조 기반 비디오 인코딩 및 디코딩이 사용될 수 있다. 유사한 제약들이 있는 다른 영역들의 응용이 또한 그러한 원리를 사용할 수 있다.
적어도 하나의 실시예에서, 비디오 코딩 시스템은 카메라 포지션 또는 픽셀의 깊이와 같은 장면의 추가적인 3D 기하학적 정보로부터 도출된 일부 모션 벡터 후보들을 제공한다. 렌더링된 합성 콘텐츠에 기초한 게이밍 콘텐츠의 경우, 그러한 종류의 정보는 게임 엔진의 인코더 측에서 용이하게 획득될 수 있다. 그러나, 그러한 정보는 또한, 종래의 기법들 또는 전용 센서들을 사용하여 자연스러운(비디오 기반) 장면들로부터 추출될 수 있다.
하나의 예시적인 응용은 렌더링된 합성 콘텐츠의 인코딩된 비디오에 기초한 클라우드 게이밍에 관한 것이지만, 그것은 인코더 측에서, 깊이 정보, 카메라 파라미터들 또는 기본 행렬이 이용가능한 더 일반적인 비디오 코딩 응용들에 적용될 수 있다.
깊이 정보는 코딩 프로세스를 가속화하고 개선하는 데 사용될 수 있다. 그러나 대체적으로, 기본 그래픽을 갖춘 클라우드 게이밍의 경우를 제외하면, 깊이 정보는 디코더 측에서 이용가능하지 않다. 대체적으로, 이미지들의 각각의 샘플들에 대한 깊이의 코딩은, 서브 샘플링 이후에도, 수용가능한 솔루션이 아닌데, 그 이유는 그러한 정보를 디코더에 제공하면 비트레이트가 극적으로 증가하고 코딩 효율성이 위태로워지기 때문이다.
한편, 광학 중심 포지션 및 이미지 평면 배향 또는 2개의 카메라들(예를 들어, 하나의 카메라는 현재 픽처를 위한 것이고, 하나의 카메라는 기준 픽처를 이한 것임)의 세트에 대해 정의되는 기본 행렬을 포함하는 카메라 파라미터들은 각각의 이미지에 대해 한번에 비트스트림에 인코딩될 수 있는 훨씬 더 작은 데이터 항목이다. 카메라 파라미터들은 가상 환경 3D 데이터로부터 직접 추출될 수 있거나, 또는 비디오 녹화 단계에서 수집되거나 또는 심지어 인코더 측에서 추정될 수 있다.
도 11은 적어도 하나의 실시예에 따른, 에피폴라 기하구조에 기초한 모션 예측의 일례를 도시한다. 제1 코딩 단위는 현재 프레임(I1) 내의 포지션(p1)에 중심이 있다. 현재 프레임(I1)과 연관된 카메라 파라미터들은 K1인 한편, K2는 기준 프레임(I2)과 연관된 카메라 파라미터들이다. 상기에서 소개된 바와 같이, 카메라 파라미터들(K1, K2)은 외부 파라미터들(R=회전, T=병진), 내부 파라미터(초점, 픽셀비, 스큐, 광학 중심 투영 포지션) 및 다른 왜곡 모델(있는 경우)을 포함한다. p1은 장면 내의 어딘가에 있는 포인트(P)의 투영에 대응한다. 이러한 포인트는 이동하고 있지 않은 것으로 가정되고, 두 프레임들 모두에서 가시적이다. P는 프레임(I1) 내에서 p1에 그리고 프레임(I2) 내에서 p2에 투영한다. 카메라 파라미터들(K1, K2)(또는 이러한 파라미터들로부터 계산된 기본 행렬)은, 예를 들어 상기에서 소개된 수학식들을 사용하여, 기준 프레임에서 에피폴라 라인을 도출하는 것을 허용하며, 여기서 대응하는 포인트(p2)는 도 4에 도시된 바와 같이 기준 프레임(2)에 위치된다.
현재 프레임 내의 p1에 위치된 현재 블록의 인터 모드에서의 코딩의 경우, 모션 벡터
Figure pct00011
를 도출하기 위해 p2의 포지션을 알 필요가 있다. 전통적으로 에피폴라 라인을 사용하지 않을 때, 이러한 벡터 v (vx; vy)를 코딩하기 위해 2개의 스칼라 값들이 필요하다. 에피폴라 라인이 알려져 있는 경우, 하나의 단일 값 d만이 필요한데, 이는 모션 벡터 방향이 에피폴라 라인 상에 있는 것으로 알려져 있기 때문이다. 하기에서, 이러한 속성은 "에피폴라 기하구조 제약"으로 불린다. d는, 예를 들어 에피폴라 라인 상에 위치된 기준 포인트(p'2)까지의 p2의 부호있는 거리로서 정의될 수 있으며, 여기서 p'2는 C1로부터 임의적인 선택된 거리(Z)에 위치된 라인(C1, P)에 속하는 포인트(P')의 투영으로서 계산된다.
일 변형 실시예에서, P'은 하기의 규칙들에 따라 디코더 측에서 추론될 수 있다:
- P'은 두 이미지 평면 모두에서 가시적이어야 한다.
- P'은 광학 라인들(즉, 도 9에 도시된 바와 같은 Ci 및 주요 포인트를 통과하는 라인)까지의 거리를 최소화할 수 있다.
도 12는 적어도 하나의 실시예에 따른, 에피폴라 기하구조에 기초하여 모션 벡터를 도출하기 위한 예시적인 흐름도를 도시한다. 이러한 실시예는 에피폴라 라인 상에 투영된 모션 예측자(mvP)(예: 이웃 재구성된 CU로부터의 모션 벡터 또는 공동위치된 모션 벡터)를 사용하여 도 13에 도시된 바와 같이 p'2를 결정한다. 투영 방향은, 예를 들어, 에피폴라 라인에 수직일 수 있다.
흐름도(1200)는, 예를 들어 디코더 디바이스(200)의 프로세서(1010) 또는 디코더(1030)에 의해 구현되는 바와 같은 디코더 디바이스의 맥락에서 기술된다. 단계(1210)에서, 예를 들어 디코딩될 비트스트림에서 에피폴라 모드를 표현하는 플래그 또는 임의의 정보를 테스트함으로써, 에피폴라 모드의 사용(즉, 에피폴라 기하구조 제약을 사용함)이 테스트된다. 이러한 모드가 사용되지 않는 경우, 모션 벡터(
Figure pct00012
)를 결정하기 위해 종래의 모드가 사용된다. 에피폴라 모드가 사용될 때, 단계(1220)에서, 현재 프레임 및 기준 프레임 각각의 카메라 파라미터들(K1, K2) 및 기본 행렬이 획득된다. 이러한 파라미터들은, 예를 들어 프레임들의 파라미터들로서 고레벨 신택스 요소들에서 전달되거나, 또는 다른 수단에 의해 획득될 수 있다. 이어서, 단계(1230)에서, 에피폴라 라인이 현재 코딩 단위를 통과하는(예를 들어, 현재 CU 중심 또는 현재 CU의 상단 좌측 샘플을 통과함) 기준 프레임 내의 라인으로서 계산된다. 단계(1240)에서, 에피폴라 라인 상의 거리 파라미터("d")가 획득되는데, 예를 들어 비트스트림에서 거리 파라미터를 표현하는 정보로부터 추출된다. 이어서 대응하는 모션 벡터(
Figure pct00013
)가 단계(1250)에서 결정되고, 수평 및 수직 방향들 각각에 대한 2개의 값들을 포함한다. 마지막으로, 모션 벡터(
Figure pct00014
) 및 기준 프레임을 사용하여 CU를 재구성하기 위해 단계(1260)에서 모션 보상이 수행될 수 있다.
이러한 방법은, 인터(320)에서의 코딩 모드로서 정규 코덱에서 구현될 수 있거나, 또는 AMVP 또는 병합 모션 벡터 후보 목록에 대한 추가적인 모션 벡터 예측자를 구축하는 데 사용될 수 있다. 이러한 모델은, 장면 내의 포인트(P)가 이동하고 있지 않고 프레임들(1, 2) 내의 P의 상대 모션이 카메라 모션에 의해서만 야기된다고 가정한다.
도 14는 적어도 하나의 실시예에 따른, 병합 후보 필터링 프로세스의 예시적인 흐름도를 도시한다. 실제로, 적어도 하나의 실시예에서, 에피폴라 기하구조 제약을 사용하여 모션 벡터를 인코딩하는 대신에, 에피폴라 기하구조가 잠재적인 예측자 후보들을 제약하는 데 사용된다. 병합 모드에서, 상기에서 소개된 바와 같이, 후보들의 목록이 공간, 시간 및 히스토리 기반 모션 벡터들로부터 계산된다. 목록은 최대 N개에 이르는 후보들(전형적으로, N=5)로 채워지고, 사용될 후보를 표시하는 인덱스가 송신된다. 목록 생성 동안, 일부 후보들은 (전형적으로, 후보가 이용가능하지 않을 때 또는 동일한 모션 정보가 이미 존재할 때) 목록에 삽입되지 않는다. 이러한 실시예에서, 임계치까지, 에피폴라 기하구조 제약을 중시하는(respect) 후보들만을 후보들의 목록에 추가함으로써 잠재적 후보들을 필터링하는 것이 제안된다. 그를 기본 행렬 F(이는 카메라 파라미터들(K1, K2)로부터 계산될 수 있거나, 또는 다른 수단에 의해 디코더에 제공될 수 있음)로부터 상기하면, 에피폴라 제약은
Figure pct00015
= 0로서 표현되며, 여기서
Figure pct00016
은 현재 프레임 내의 투영 좌표의 블록 좌표이고,
Figure pct00017
는 기준 이미지 내의 대응하는 블록이고,
Figure pct00018
는 블록의 모션 벡터이다.
Figure pct00019
로서 주어진 임계치
Figure pct00020
을 사용하여 제약이 완화될 수 있다.
병합 후보 필터링 프로세스는 에피폴라 모드가 활성화될 때에만 일어난다. 이러한 모드는 블록 레벨, CTU 레벨 또는 프레임 레벨 중 어느 하나에서 시그널링된다. 이러한 프로세스는, 예를 들어 인코더 디바이스(100)의 프로세서(1010) 또는 인코더(1030)에 의해 실행된다. 단계(1410)에서, 현재 블록 좌표 포지션(x)이 획득된다. 블록 좌표 포지션은 CU의 미리결정된 포지션, 예를 들어 상단 좌측 코너로부터 취해진다. 또한, 카메라 파라미터들이 획득된다. 일 변형 실시예에서, CU의 미리결정된 포지션은 블록 중심이다. 이어서, 단계(1420) 내지 단계(1470)까지, 프로세스는 모션 벡터 후보들(mv)에 대해 반복하고, 각각의 잠재적 후보에 대해, 기준 이미지 내의 대응하는 블록 좌표 포지션이 모션 벡터로부터 계산된다. 단계(1430)에서, 그것은
Figure pct00021
을 결정하고, 단계(1440)에서, 카메라(기본 행렬) 파라미터들에 기초하여 에피폴라 제약
Figure pct00022
을 결정한다. 단계(1450)에서, 이러한 값
Figure pct00023
가 임계치
Figure pct00024
에 비교된다. 더 낮은 경우, 그것은, 이러한 후보가 에피폴라 기하구조 제약을 중시하고, 단계(1460)에서, 이러한 후보가 병합 후보들의 목록에 추가됨을 의미한다. 더 높거나 동일한 경우, 제약은 중시되지 않고, 후보는 목록에 추가되지 않는다. 단계(1470)에서, 모든 모션 벡터 후보들이 테스트되었음이 검증된다.
동일한 논리에 기초하여, AMVP 모션 벡터 예측자 목록에 대해 유사한 후보 필터링 프로세스가 구현될 수 있다.
도 15는 적어도 하나의 실시예에 따른, 저장된 모션 정보로부터 모션 예측자를 도출하기 위한 예시적인 흐름도를 도시한다. 이러한 실시예는 현재 CU가 재구성된 경우를 고려하고, 이전에 저장된 모션 정보로부터 모션 예측자를 유도하는 것을 목표로 한다. 다시 말해, 포인트(p2)는 p1 + 도출된 모션 벡터로부터 도출되었으며, 여기서 모션 벡터를 도출하기 위한 프로세스는 정규 인터 예측(예컨대, HEVC 또는 VVC에서 정의된 것들) 또는 상기에 묘사된 방법을 따랐을 수 있다. 모션 벡터는 다음 프레임(프레임 3)을 디코딩하기 위한 "공동위치된" 모션 벡터로서 사용되도록 모션 정보 버퍼에 저장될 수 있다. 장면 내의 P의 절대 포지션(또는 동등한 프레임들(1, 2) 내의 P의 깊이)은 포인트들(p1, p2)의 세트 및 카메라 파라미터들(K1, K2)(또는 기본 행렬)로부터 도출될 수 있다. 카메라 파라미터들(K3)을 갖는 프레임(3)과 같은 후속 프레임들의 경우, P는 프레임(3)에 투영되어, 프레임(3)에 대한 예측으로서 사용될 수 있다. P는 프레임(1) 내의 픽셀(p1) 및 프레임(2) 내의 픽셀(p2)과 연관된다.
일 변형예에서, 프레임(1) 및 프레임(2) 내의 P의 깊이가 알려져 있기 때문에, 카메라 파라미터들(K3)로 프레임(3)에 대한 깊이 맵을 구축할 수 있다. 이것은 2개의 단계들로 행해질 수 있다: 첫째, 에피폴라 원리를 사용하여 프레임(2)의 재구성/디코딩 동안에 프레임(2)에 대한 깊이 맵을 구축하고, 둘째, K2 및 K3 파라미터들을 사용하여 프레임(2)의 깊이 맵으로부터 프레임(3)에 대한 깊이 맵을 도출한다. 유리하게는, 깊이 맵은 CU를 재구성하는 데 사용되는 정규 모션 벡터들과 함께 모션 정보 버퍼에 저장될 수 있다. 일 변형예에서, 이것은 프레임(3) 내의 모든 CU들에 대해 "즉시" 행해질 수 있다. 프레임(3) 내의 포지션(p3)에 위치된 프레임(3) 내의 주어진 현재 CU에 대해(예를 들어, p3은 CU의 중심일 수 있음), 프레임(2)의 재구성 후 모션 정보에 저장된 모션 벡터 및 카메라 파라미터들(K1, K2)은 프레임(2) 내의 현재 CU의 깊이 또는 P를 도출하는 데 사용될 수 있다. 이어서, 카메라 파라미터들(K2)을 사용한 프레임(2) 내의 P의 역투영은 p2를 도출하는 데 사용될 수 있고, 다음 모션 벡터 예측자는
Figure pct00025
이다.
프로세스(1500)는 이제 여기서, 예를 들어 디코더 디바이스(200)의 프로세서(1010) 또는 디코더(1030)에 의해 구현되는 바와 같은 디코더 디바이스의 맥락에서 기술된다. 단계(1510)에서, 프레임(2)에 의해 기준으로서 사용되는 프레임(프레임(1)) 및 현재 프레임(3)에 대한 기준 프레임 각각의 카메라 파라미터들(K1, K2)이 획득된다. 단계(1520)에서, 모션 벡터 및 p2의 깊이가 결정된다. 단계(1530)에서, p2의 깊이가 저장된다. 단계들(1520, 1530)은 프레임(2)의 모든 CU에 대해 반복된다. 이어서, 단계(1540)에서, 다음 프레임(프레임(3))의 카메라 파라미터들(K3)이 획득되고, 에피폴라 모드의 사용(즉, 에피폴라 기하구조 제약을 사용하는 것)이 앞서 언급된 바와 같이 테스트된다. 이러한 모드가 사용되지 않는 경우, 모션 벡터(
Figure pct00026
)를 결정하기 위해 종래의 모드가 사용된다. 단계(1550)에서, 에피폴라 모드가 사용되는지의 여부가 결정된다. 에피폴라 모드가 사용될 때, 단계(1560)에서, 프레임(2)의 깊이 맵은 K2 및 K3 파라미터들을 사용하여 프레임(3)에 역투영된다. 마지막으로, 단계(1570)에서, P는 기준 프레임(2) 상에 투영되고, p2뿐만 아니라 모션 벡터
Figure pct00027
이 결정된다. 단계(1550)는 모든 인코딩 가능성들을 테스트할 때, RDO 루프 동안 설정된 플래그를 테스트함으로써 인코더에서 구현된다. 디코더에서, 이러한 플래그는 인코딩된 비트스트림에서 시그널링된다.
이러한 프로세스는, 인터에서의 코딩 모드로서 정규 코덱에서 구현될 수 있거나, 또는 AMVP 또는 병합 모션 벡터 후보 목록에 대한, 또는 상기에서 설명된 바와 같은 모션 벡터 후보 목록을 필터링하는 것에 대한 추가적인 모션 벡터 예측자를 구축하는 데 사용될 수 있다. 이전과 유사하게, 이러한 방법은, 장면 내의 포인트(P)가 이동하고 있지 않고 프레임들(1, 2, 3) 내의 P의 상대 모션이 카메라 모션에 의해서만 야기된다고 가정한다.
적어도 하나의 실시예에서, 정규 아핀 모션 예측 모드로부터 도출된 새로운 에피폴라 아핀 모드를 정의하는 것이 제안되며, 여기서 제어 포인트들로서 사용되는 정규 아핀 모션 벡터들은 제1 실시예에서 표현된 바와 같은 에피폴라 제약을 따르도록 적응된다. 이러한 제약은 제어 포인트 모션 벡터(CPMV)들이 제어 포인트 위치를 통과하는 에피폴라 라인 상에 있어야 한다는 것일 것이다. 적응은 하기 중 하나를 포함할 수 있다:
- 예를 들어 도 2의 프로세스(1200)에 기술된 바와 같이, 에피폴라 라인 상으로의 CPMV의 투영,
- 예를 들어 도 12의 프로세스(1200)에 기술된 바와 같이, MV 병합 후보들로부터의 CPMV의 선택이 MV 후보들의 필터링에 기초하는 것,
- CPMV가 에피폴라가 아니라, 도출된 서브블록들이 에피폴라가 되도록 적응되는 것.
적어도 하나의 실시예에서, 정규 MMVD 모드로부터 도출된 새로운 에피폴라 MMVD 모드를 정의하는 것이 제안된다. 이러한 MMVD 코딩 모드의 2개의 인덱스 테이블들을 재정의하기 위해 에피폴라 기하구조 제약이 사용될 수 있다. 예를 들어, 도 12의 프로세스(1200)와 유사하게 에피폴라 기하구조 제약을 중시하지 않는 모션 벡터들에 대응하는 인덱스들을 테이블로부터 필터링(제거)할 수 있거나, 또는 에피폴라 아핀 모드와 유사하게 모션 벡터 후보들을 수정/적응할 수 있다.
적어도 하나의 실시예에서, 정규 SMVD 모드로부터 도출된 새로운 에피폴라 SMVD 모드를 정의하는 것이 제안된다. 하나의 실시예에서, 예를 들어 도 12의 프로세스(1200)에서 기술된 바와 같이, MVD0을 코딩하기 위해 단지 하나의 값만이 코딩된다. 일 변형 실시예에서, 재구성된 모션 벡터(MV0=MVP+MVD0)의 값은, 예를 들어 새로운 에피폴라 아핀 모드에 대해 전술된 바와 같이, 재구성된 모션 벡터가 에피폴라 기하구조 제약을 중시하도록 수정/적응된다. 다른 변형 실시예에서, MVP를 도출하기 위한 모션 벡터 후보들의 목록은, 예를 들어 도 14의 프로세스(1400)에 기술된 바와 같이, MVP'로 수정되거나 필터링된다.
덧붙여, 새로운 에피폴라 SMVD 모드의 원리들은 상기에서 소개된 "대칭" 벡터에 적용될 수 있으며, 여기서 MV1=MVP-MVD0이다. 일 변형예에서, MV1은 MV1=MVP'-MVD0과 같이 직접 도출되며, 이때 MVP'은, 예를 들어, 도 14의 프로세스(1400)에 기술된 바와 같이 계산된다.
적어도 하나의 실시예에서, 모션 벡터 개선(DMVR) 프로세스를 적응시키는 것이 제안된다. 정규 DMVR 모드에서, 검색 프로세스는 오리지널 모션 벡터들 주위의 윈도우 내의 모든 정수 포지션들을 평가하고, 최소 SAD를 갖는 것들을 유지한다. 최종 서브-펠(sub-pel) 모션 벡터는 2차원 포물선 오차 표면 수학식을 최소화함으로써 도출된다. 하나의 실시예에서, 그러한 DMVR 프로세스는 새로운 에피폴라 아핀 모드와 유사하게 수정되어, 테스트된 모션 벡터 쌍들이 에피폴라 기하구조 제약을 따르게 한다. 일 변형예에서, DMVR 개선 프로세스는 유사하게 수정되는 최종 모션 벡터를 제외하고는 수정되지 않는다.
이러한 제안된 모드들 모두는 정규 모드들과 공존할 수 있다. 이러한 경우, 그들은 예를 들어, CU 레벨에서 새로운 플래그를 사용함으로써 명시적으로 시그널링되거나, 또는 병합 경우에서와 같이, CU 레벨에서 계승될 수 있다.
제안된 모드들은 또한, 대응하는 정규 모드를 대체할 수 있다. 이러한 경우, 플래그는, 예를 들어 슬라이스 레벨에서 또는 픽처 레벨에서(픽처 헤더들에서) 고레벨 신택스에 코딩된다.
이러한 플래그들에 더하여, 상기의 실시예들에서 제안된 바와 같이 에피폴라 모드를 사용하여 현재 프레임에 대한 하나의 기준 프레임과 연관된 카메라 파라미터들 또는 기본 행렬이 또한 전달될 필요가 있다. 다시 말해, 이러한 파라미터들은 인코딩된 비디오 비트스트림 내에서 인코딩될 필요가 있다. 이것은, 예를 들어, 슬라이스 레벨에서 또는 픽처 레벨에서, 예를 들어 각각의 프레임에 대해 추가된, 대응하는 고레벨 신택스 요소들에 의해 행해질 수 있다. 적어도 하나의 실시예에서, 카메라 파라미터들이 하나의 프레임으로부터 다음 프레임으로 변경되지 않을 때, 파라미터들은 송신되지 않아서, 이에 따라, 일부 대역폭을 절감한다.
유리하게는, 카메라 파라미터 값들 또는 기본 행렬 각도들 또는 계수들이 이전 카메라 파라미터들 또는 기본 행렬들로부터 예측될 수 있고, 이어서, 차이 값들만이 송신될 수 있다.
카메라 파라미터들을 전달하기 위한 신택스의 예가 표 3에서 확인된다.
Figure pct00028
기본 행렬을 전달하기 위한 신택스의 예가 표 4에서 확인된다.
Figure pct00029
"하나의 실시예" 또는 "일 실시예" 또는 "하나의 구현예" 또는 "일 구현예"뿐만 아니라 그의 다른 변형들에 대한 언급은, 실시예와 관련하여 기술된 특정 특징부, 구조, 특성 등이 적어도 하나의 실시예에 포함됨을 의미한다. 따라서, 본 명세서 전반에 걸친 다양한 곳에서 나타나는 "하나의 실시예에서" 또는 "일 실시예에서" 또는 "하나의 구현예에서" 또는 "일 구현예에서"라는 문구뿐만 아니라 임의의 다른 변형들의 출현들은 반드시 모두 동일한 실시예를 언급하는 것은 아니다.
또한, 본 출원 또는 그의 청구범위는 다양한 정보들을 "결정하는 것"을 지칭할 수 있다. 정보를 결정하는 것은, 예를 들어, 정보를 추정하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 메모리로부터 정보를 검색하는 것 중 하나 이상을 포함할 수 있다.
또한, 본 출원 또는 그의 청구범위는 다양한 정보들에 "액세스하는 것"을 지칭할 수 있다. 정보에 액세스하는 것은, 예를 들어, 정보를 수신하는 것, (예를 들어, 메모리로부터) 정보를 검색하는 것, 정보를 저장하는 것, 정보를 이동시키는 것, 정보를 복사하는 것, 정보를 계산하는 것, 정보를 예측하는 것, 또는 정보를 추정하는 것 중 하나 이상을 포함할 수 있다.
추가적으로, 본 출원 또는 그의 청구범위는 다양한 정보들을 "수신하는 것"을 지칭할 수 있다. 수신하는 것은 "액세스하는 것"과 마찬가지로 광의의 용어인 것으로 의도된다. 정보를 수신하는 것은, 예를 들어, 정보에 액세스하는 것, 또는 (예를 들어, 메모리 또는 광학 매체 저장소로부터) 정보를 검색하는 것 중 하나 이상을 포함할 수 있다. 또한, "수신하는 것"은 전형적으로, 예를 들어 정보를 저장하는 동작, 정보를 처리하는 동작, 정보를 전송하는 동작, 정보를 이동하는 동작, 정보를 복사하는 동작, 정보를 소거하는 동작, 정보를 계산하는 동작, 정보를 결정하는 동작, 정보를 예측하는 동작, 또는 정보를 추정하는 동작 동안 어떤 방식으로든 수반된다.
예를 들어 다음의 "A/B", "A 및/또는 B" 및 "A 및 B 중 적어도 하나"의 경우들에서 "/", "및/또는", 및 "적어도 하나" 중 임의의 것의 사용은 제1 열거된 옵션(A) 단독의 선택, 또는 제2 열거된 옵션(B) 단독의 선택, 또는 옵션들(A 및 B) 둘 모두의 선택을 포함하도록 의도됨을 이해해야 한다. 또 다른 예로서, "A, B 및/또는 C" 및 "A, B 및 C 중 적어도 하나"의 경우들에서, 이러한 어구는 제1 열거된 옵션(A) 단독의 선택, 또는 제2 열거된 옵션(B) 단독의 선택, 또는 제3 열거된 옵션(C) 단독의 선택, 또는 제1 및 제2 열거된 옵션들(A 및 B) 단독의 선택, 또는 제1 및 제3 열거된 옵션들(A 및 C) 단독의 선택, 또는 제2 및 제3 열거된 옵션들(B 및 C) 단독의 선택, 또는 3개의 모든 옵션들(A, B 및 C)의 선택을 포함하도록 의도된다. 이는, 열거된 많은 항목들에 대해, 본 분야 및 관련 분야의 당업자에 의해 용이하게 명백한 바와 같이 확장될 수 있다.
당업자에게 명백한 바와 같이, 구현예들은, 예를 들어 저장되거나 송신될 수 있는 정보를 전달하도록 포맷화된 다양한 신호들을 생성할 수 있다. 정보는, 예를 들어, 방법을 수행하기 위한 명령어들, 또는 기술된 구현예들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 예를 들어, 신호는 기술된 실시예의 비트스트림을 전달하도록 포맷화될 수 있다. 그러한 신호는, 예를 들어, 전자기파로서(예를 들어, 스펙트럼의 무선 주파수 부분을 사용함) 또는 기저대역 신호로서 포맷화될 수 있다. 포맷화는, 예를 들어, 데이터 스트림을 인코딩하는 것, 및 인코딩된 데이터 스트림으로 캐리어를 변조하는 것을 포함할 수 있다. 신호가 전달하는 정보는, 예를 들어, 아날로그 또는 디지털 정보일 수 있다. 신호는, 알려진 바와 같이, 다양한 상이한 유선 또는 무선 링크들을 통해 송신될 수 있다. 신호는 프로세서 판독가능 매체 상에 저장될 수 있다.
제1 또는 제3 태양의 일 변형예에 따르면, 방법 또는 장치는, 에피폴라 모드의 사용을 표현하는 정보를 획득하는 것, 및 이에 응답하여, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 획득하는 것, 획득된 카메라 파라미터들에 기초하여, 현재 프레임의 현재 블록을 통과하는 기준 프레임 내의 에피폴라 라인을 결정하는 것, 거리 모션을 획득하는 것, 및 거리 모션 및 에피폴라 라인에 기초하여 모션 벡터를 결정하는 것, 및 결정된 모션 벡터에 기초하여 모션 보상을 사용하여 현재 블록을 재구성하는 것을 추가로 포함한다.
제1 또는 제3 태양의 일 변형예에 따르면, 방법 또는 장치는, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 획득하는 것, 모션 벡터 후보에 대해, 획득된 카메라 파라미터들 및 블록의 포지션에 기초하여 에피폴라 제약을 결정하는 것, 에피폴라 제약이 임계치보다 더 낮은 경우, 후보들의 목록에 후보를 추가하는 것, 및 목록의 후보에 기초하여 모션 보상을 사용하여 현재 블록을 재구성하는 것을 추가로 포함한다.
제1 또는 제3 태양의 일 변형예에 따르면, 방법 또는 장치는, 이전 프레임의 제1 카메라 파라미터들, 기준 프레임의 제2 카메라 파라미터들, 및 현재 프레임의 제3 카메라 파라미터들을 획득하는 것, 에피폴라 모드의 사용을 표현하는 정보를 획득하는 것, 및 이에 응답하여, 제1 및 제2 카메라 파라미터들을 사용하여, 모션 정보 버퍼에 저장된 현재 모션 벡터로 이전 프레임의 깊이 맵을 결정하는 것, 제1 및 제3 카메라 파라미터들 및 이전 프레임에 대한 저장된 깊이 맵에 기초하여 이전 프레임의 깊이 맵을 현재 프레임에 역투영하여 현재 깊이 맵을 획득하는 것, 및 제2 및 제3 카메라 파라미터들을 사용하여 현재 블록 포지션 및 현재 깊이 맵에 기초하여 모션 벡터를 결정하는 것, 및 결정된 모션 벡터에 기초하여 모션 보상을 사용하여 현재 블록을 재구성하는 것을 추가로 포함한다.
제2 또는 제4 태양의 일 변형예에 따르면, 방법 또는 장치는, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 획득하는 것, 획득된 카메라 파라미터들에 기초하여, 현재 프레임의 현재 블록을 통과하는 기준 프레임 내의 에피폴라 라인을 결정하는 것, 거리 모션을 획득하는 것, 거리 모션 및 에피폴라 라인에 기초하여 모션 벡터를 결정하는 것, 및 모션 벡터에 기초하여 모션 보상을 사용하여 현재 블록을 재구성하는 것, 및 적어도, 에피폴라 모드의 사용을 표현하는 정보, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 인코딩하는 것을 추가로 포함한다.
제2 또는 제4 태양의 일 변형예에 따르면, 방법 또는 장치는, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 획득하는 것, 모션 벡터 후보에 대해, 획득된 카메라 파라미터들 및 블록의 포지션에 기초하여 에피폴라 제약을 결정하는 것, 에피폴라 제약이 임계치보다 더 낮은 경우, 후보들의 목록에 후보를 추가하는 것, 및 적어도, 에피폴라 모드의 사용을 표현하는 정보, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 인코딩하는 것을 추가로 포함한다.
제2 또는 제4 태양의 일 변형예에 따르면, 방법 또는 장치는, 이전 프레임의 제1 카메라 파라미터들, 기준 프레임의 제2 카메라 파라미터들, 및 현재 프레임의 제3 카메라 파라미터들을 획득하는 것, 에피폴라 모드의 사용을 표현하는 정보를 획득하는 것, 및 이에 응답하여, 제1 및 제2 카메라 파라미터들을 사용하여, 모션 정보 버퍼에 저장된 현재 모션 벡터로 이전 프레임의 깊이 맵을 결정하는 것, 제1 및 제3 카메라 파라미터들 및 이전 프레임에 대한 저장된 깊이 맵에 기초하여 이전 프레임의 깊이 맵을 현재 프레임에 역투영하여 현재 깊이 맵을 획득하는 것, 제2 및 제3 카메라 파라미터들을 사용하여 현재 블록 포지션 및 현재 깊이 맵에 기초하여 모션 벡터를 결정하는 것, 결정된 모션 벡터에 기초하여 모션 보상을 사용하여 현재 블록을 재구성하는 것, 및 적어도, 에피폴라 모드의 사용을 표현하는 정보, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 인코딩하는 것을 추가로 포함한다.

Claims (18)

  1. 비디오의 현재 프레임의 픽셀들의 블록을 디코딩하기 위한 방법으로서, 기준 프레임의 블록과 상기 현재 프레임의 블록 사이에서 모션 예측을 수행하는 단계를 포함하고, 상기 모션 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하기 위해 에피폴라 기하구조(epipolar geometry)가 사용되고, 상기 에피폴라 기하구조는 상기 현재 프레임 및 상기 기준 프레임의 카메라 파라미터들에 기초하는, 방법.
  2. 제1항에 있어서,
    - 에피폴라 모드의 사용을 표현하는 정보를 획득하는 단계(1210), 및 이에 응답하여,
    - 상기 현재 프레임의 제1 카메라 파라미터들 및 상기 기준 프레임의 제2 카메라 파라미터들을 획득하는 단계(1220),
    - 상기 획득된 카메라 파라미터들에 기초하여, 상기 현재 프레임의 현재 블록을 통과하는 상기 기준 프레임 내의 에피폴라 라인을 결정하는 단계(1230),
    - 거리 모션을 획득하는 단계(1240), 및
    - 상기 거리 모션 및 상기 에피폴라 라인에 기초하여 모션 벡터를 결정하는 단계(1250), 및
    - 상기 결정된 모션 벡터에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하는 단계(1260)를 추가로 포함하는, 방법.
  3. 제1항에 있어서,
    - 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 획득하는 단계(1410),
    - 모션 벡터 후보에 대해, 상기 획득된 카메라 파라미터들 및 대응하는 블록의 포지션에 기초하여 에피폴라 제약을 결정하는 단계(1440),
    - 상기 에피폴라 제약이 임계치보다 더 낮은 경우, 후보들의 목록에 상기 후보를 추가하는 단계(1460), 및
    - 상기 목록의 후보에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하는 단계를 추가로 포함하는, 방법.
  4. 제1항에 있어서,
    - 이전 프레임의 제1 카메라 파라미터들, 기준 프레임의 제2 카메라 파라미터들, 및 현재 프레임의 제3 카메라 파라미터들을 획득하는 단계(1510, 1540),
    - 에피폴라 모드의 사용을 표현하는 정보를 획득하는 단계(1550), 및 이에 응답하여,
    - 제1 및 제2 카메라 파라미터들을 사용하여, 모션 정보 버퍼에 저장된 현재 모션 벡터로 상기 이전 프레임의 깊이 맵을 결정하는 단계,
    - 상기 제1 및 제3 카메라 파라미터들 및 이전 프레임에 대한 저장된 깊이 맵에 기초하여 상기 이전 프레임의 깊이 맵을 상기 현재 프레임에 역투영하여 현재 깊이 맵을 획득하는 단계, 및
    - 상기 제2 및 제3 카메라 파라미터들을 사용하여 상기 현재 블록의 포지션 및 상기 현재 깊이 맵에 기초하여 모션 벡터를 결정하는 단계, 및
    - 상기 결정된 모션 벡터에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하는 단계를 추가로 포함하는, 방법.
  5. 비디오의 현재 프레임의 픽셀들의 블록을 인코딩하기 위한 방법으로서,
    기준 프레임의 블록과 상기 현재 프레임의 블록 사이에서 모션 예측을 수행하는 단계를 포함하고, 상기 모션 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하기 위해 에피폴라 기하구조가 사용되고, 상기 에피폴라 기하구조는 상기 현재 프레임 및 상기 기준 프레임의 카메라 파라미터들에 기초하는, 방법.
  6. 제5항에 있어서,
    - 상기 현재 프레임의 제1 카메라 파라미터들 및 상기 기준 프레임의 제2 카메라 파라미터들을 획득하는 단계,
    - 상기 획득된 카메라 파라미터들에 기초하여, 상기 현재 프레임의 현재 블록을 통과하는 상기 기준 프레임 내의 에피폴라 라인을 결정하는 단계,
    - 거리 모션을 획득하는 단계,
    - 상기 거리 모션 및 상기 에피폴라 라인에 기초하여 모션 벡터를 결정하는 단계, 및
    - 상기 모션 벡터에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하는 단계, 및
    - 적어도, 에피폴라 모드의 사용을 표현하는 정보, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 인코딩하는 단계를 추가로 포함하는, 방법.
  7. 제5항에 있어서,
    - 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 획득하는 단계,
    - 모션 벡터 후보에 대해, 상기 획득된 카메라 파라미터들 및 대응하는 블록의 포지션에 기초하여 에피폴라 제약을 결정하는 단계,
    - 상기 에피폴라 제약이 임계치보다 더 낮은 경우, 후보들의 목록에 상기 후보를 추가하는 단계, 및
    - 적어도, 에피폴라 모드의 사용을 표현하는 정보, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 인코딩하는 단계를 추가로 포함하는, 방법.
  8. 제5항에 있어서,
    - 이전 프레임의 제1 카메라 파라미터들, 기준 프레임의 제2 카메라 파라미터들, 및 현재 프레임의 제3 카메라 파라미터들을 획득하는 단계,
    - 에피폴라 모드의 사용을 표현하는 정보를 획득하는 단계, 및 이에 응답하여,
    - 제1 및 제2 카메라 파라미터들을 사용하여, 모션 정보 버퍼에 저장된 현재 모션 벡터로 상기 이전 프레임의 깊이 맵을 결정하는 단계,
    - 상기 제1 및 제3 카메라 파라미터들 및 상기 이전 프레임에 대한 저장된 깊이 맵에 기초하여 상기 이전 프레임의 깊이 맵을 상기 현재 프레임에 역투영하여 현재 깊이 맵을 획득하는 단계,
    - 제2 및 제3 카메라 파라미터들을 사용하여 상기 현재 블록의 포지션 및 상기 현재 깊이 맵에 기초하여 모션 벡터를 결정하는 단계,
    - 상기 결정된 모션 벡터에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하는 단계, 및
    - 적어도, 에피폴라 모드의 사용을 표현하는 정보, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 인코딩하는 단계를 추가로 포함하는, 방법.
  9. 장치(1000)로서, 비디오의 현재 프레임의 픽셀들의 블록을 디코딩하기 위한 디코더(1030)를 포함하고, 상기 디코더는 기준 프레임의 블록과 상기 현재 프레임의 블록 사이에서 모션 예측을 수행하도록 구성되고, 상기 모션 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하기 위해 에피폴라 기하구조가 사용되고, 상기 에피폴라 기하구조는 상기 현재 프레임 및 상기 기준 프레임의 카메라 파라미터들에 기초하는, 장치(1000).
  10. 제9항에 있어서, 상기 디코더는,
    - 에피폴라 모드의 사용을 표현하는 정보를 획득하도록, 그리고 이에 응답하여,
    - 상기 현재 프레임의 제1 카메라 파라미터들 및 상기 기준 프레임의 제2 카메라 파라미터들을 획득하도록,
    - 상기 획득된 카메라 파라미터들에 기초하여, 상기 현재 프레임의 현재 블록을 통과하는 상기 기준 프레임 내의 에피폴라 라인을 결정하도록,
    - 거리 모션을 획득하도록, 그리고
    - 상기 거리 모션 및 상기 에피폴라 라인에 기초하여 모션 벡터를 결정하도록, 그리고
    - 상기 결정된 모션 벡터에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하도록 추가로 구성되는, 장치.
  11. 제9항에 있어서, 상기 디코더는,
    - 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 획득하도록,
    - 모션 벡터 후보에 대해, 상기 획득된 카메라 파라미터들 및 대응하는 블록의 포지션에 기초하여 에피폴라 제약을 결정하도록,
    - 상기 에피폴라 제약이 임계치보다 더 낮은 경우, 후보들의 목록에 상기 후보를 추가하도록, 그리고
    - 상기 목록의 후보에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하도록 추가로 구성되는, 장치.
  12. 제9항에 있어서, 상기 디코더는,
    - 이전 프레임의 제1 카메라 파라미터들, 기준 프레임의 제2 카메라 파라미터들, 및 현재 프레임의 제3 카메라 파라미터들을 획득하도록,
    - 에피폴라 모드의 사용을 표현하는 정보를 획득하도록, 그리고 이에 응답하여,
    - 제1 및 제2 카메라 파라미터들을 사용하여, 모션 정보 버퍼에 저장된 현재 모션 벡터로 상기 이전 프레임의 깊이 맵을 결정하도록,
    - 상기 제1 및 제3 카메라 파라미터들 및 이전 프레임에 대한 저장된 깊이 맵에 기초하여 상기 이전 프레임의 깊이 맵을 상기 현재 프레임에 역투영하여 현재 깊이 맵을 획득하도록, 그리고
    - 상기 제2 및 제3 카메라 파라미터들을 사용하여 상기 현재 블록의 포지션 및 상기 현재 깊이 맵에 기초하여 모션 벡터를 결정하도록, 그리고
    - 상기 결정된 모션 벡터에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하도록 추가로 구성되는, 장치.
  13. 장치(1000)로서, 비디오의 현재 프레임의 픽셀들의 블록을 인코딩하기 위한 인코더(1030)를 포함하고, 상기 인코더는 기준 프레임의 블록과 상기 현재 프레임의 블록 사이에서 모션 예측을 수행하도록 구성되고, 상기 모션 예측을 수행할 수 있게 하는 모션 파라미터들을 결정하기 위해 에피폴라 기하구조가 사용되고, 상기 에피폴라 기하구조는 상기 현재 프레임 및 상기 기준 프레임의 카메라 파라미터들에 기초하는, 장치(1000).
  14. 제13항에 있어서, 상기 인코더는,
    - 상기 현재 프레임의 제1 카메라 파라미터들 및 상기 기준 프레임의 제2 카메라 파라미터들을 획득하도록,
    - 상기 획득된 카메라 파라미터들에 기초하여, 상기 현재 프레임의 현재 블록을 통과하는 상기 기준 프레임 내의 에피폴라 라인을 결정하도록,
    - 거리 모션을 획득하도록,
    - 상기 거리 모션 및 상기 에피폴라 라인에 기초하여 모션 벡터를 결정하도록, 그리고
    - 상기 모션 벡터에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하도록, 그리고
    - 적어도, 에피폴라 모드의 사용을 표현하는 정보, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 인코딩하도록 추가로 구성되는, 장치.
  15. 제13항에 있어서, 상기 인코더는,
    - 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 획득하도록,
    - 모션 벡터 후보에 대해, 상기 획득된 카메라 파라미터들 및 대응하는 블록의 포지션에 기초하여 에피폴라 제약을 결정하도록,
    - 상기 에피폴라 제약이 임계치보다 더 낮은 경우, 후보들의 목록에 상기 후보를 추가하도록, 그리고
    - 적어도, 에피폴라 모드의 사용을 표현하는 정보, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 인코딩하도록 추가로 구성되는, 장치.
  16. 제13항에 있어서, 상기 인코더는,
    - 이전 프레임의 제1 카메라 파라미터들, 기준 프레임의 제2 카메라 파라미터들, 및 현재 프레임의 제3 카메라 파라미터들을 획득하도록,
    - 에피폴라 모드의 사용을 표현하는 정보를 획득하도록, 그리고 이에 응답하여,
    - 제1 및 제2 카메라 파라미터들을 사용하여 모션 정보 버퍼에 저장된 현재 모션 벡터로 상기 이전 프레임의 깊이 맵을 결정하도록,
    - 상기 제1 및 제3 카메라 파라미터들 및 상기 이전 프레임에 대한 저장된 깊이 맵에 기초하여 상기 이전 프레임의 깊이 맵을 상기 현재 프레임에 역투영하여 현재 깊이 맵을 획득하도록,
    - 제2 및 제3 카메라 파라미터들을 사용하여 상기 현재 블록의 포지션 및 상기 현재 깊이 맵에 기초하여 모션 벡터를 결정하도록,
    - 상기 결정된 모션 벡터에 기초하여 모션 보상을 사용하여 상기 현재 블록을 재구성하도록, 그리고
    - 적어도, 에피폴라 모드의 사용을 표현하는 정보, 현재 프레임의 제1 카메라 파라미터들 및 기준 프레임의 제2 카메라 파라미터들을 인코딩하도록 추가로 구성되는, 장치.
  17. 프로세서에 의해 실행될 때 제1항 내지 제8항 중 적어도 한 항에 따른 방법을 구현하기 위한 프로그램 코드 명령어들을 포함하는 컴퓨터 프로그램.
  18. 프로세서에 의해 실행될 때 제1항 내지 제8항 중 적어도 한 항에 따른 방법을 구현하기 위한 프로그램 코드 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체.
KR1020237011645A 2020-10-06 2021-09-21 비디오 압축을 위한 기하학적 모델을 사용한 모션 코딩 KR20230081711A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP20306161 2020-10-06
EP20306161.9 2020-10-06
PCT/EP2021/075972 WO2022073760A1 (en) 2020-10-06 2021-09-21 Motion coding using a geometrical model for video compression

Publications (1)

Publication Number Publication Date
KR20230081711A true KR20230081711A (ko) 2023-06-07

Family

ID=72944090

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237011645A KR20230081711A (ko) 2020-10-06 2021-09-21 비디오 압축을 위한 기하학적 모델을 사용한 모션 코딩

Country Status (5)

Country Link
US (1) US20230403406A1 (ko)
EP (1) EP4226621A1 (ko)
KR (1) KR20230081711A (ko)
CN (1) CN116325744A (ko)
WO (1) WO2022073760A1 (ko)

Also Published As

Publication number Publication date
EP4226621A1 (en) 2023-08-16
WO2022073760A1 (en) 2022-04-14
US20230403406A1 (en) 2023-12-14
CN116325744A (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
CN112823518A (zh) 用于译码块的三角划分块的帧间预测的装置及方法
JP2022515088A (ja) Mmvdおよびsmvdと動きモデルおよび予測モデルとの組み合わせ
US20220159277A1 (en) Method and apparatus for video encoding and decoding with subblock based local illumination compensation
CN113016180A (zh) 用于视频编码和解码的虚拟管线
CN117528114A (zh) 图像解码和编码方法、存储介质及数据的发送方法
CN114145022A (zh) 推导双向预测的权重索引信息的图像解码方法及其装置
CN114631318A (zh) 应用双向预测时推导用于加权平均的权重索引信息的图像解码方法和设备
CN114208171A (zh) 用于推导用于生成预测样本的权重索引信息的图像解码方法和装置
KR20220123666A (ko) 가중-예측 파라미터들의 추정
CN114303375A (zh) 使用双向预测的视频解码方法和用于该方法的装置
CN115104318A (zh) 基于子画面的图像编码设备和方法
KR20220041898A (ko) 적응적 루프 필터링 기반 영상 코딩 장치 및 방법
CN114270833A (zh) 用于在视频/图像编译系统中移除重叠信令的方法和装置
CN114208168A (zh) 视频或图像编码系统中的帧间预测
CN113615173A (zh) 对仿射译码块进行光流预测修正的方法及装置
CN113678455B (zh) 用于导出双预测的权重索引信息的视频或图像编码
KR20230145097A (ko) 공간 국소 조명 보상
CN114375573A (zh) 使用合并候选推导预测样本的图像解码方法及其装置
JP2023508133A (ja) 空間予測子走査順序
US20230403406A1 (en) Motion coding using a geometrical model for video compression
CN114342405A (zh) 图像解码方法和用于该图像解码方法的装置
CN114208194A (zh) 用于视频编码和解码的帧间预测参数推导
RU2812840C2 (ru) Способ и устройство декодирования изображения для выведения информации индекса веса для генерации выборки предсказания
US20240179345A1 (en) Externally enhanced prediction for video coding
US20240040142A1 (en) Method and apparatus for warp sample selection and grouping

Legal Events

Date Code Title Description
N231 Notification of change of applicant