KR102494087B1 - 서브-블록 모션 벡터 예측을 위한 방법 및 장치 - Google Patents
서브-블록 모션 벡터 예측을 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR102494087B1 KR102494087B1 KR1020207028267A KR20207028267A KR102494087B1 KR 102494087 B1 KR102494087 B1 KR 102494087B1 KR 1020207028267 A KR1020207028267 A KR 1020207028267A KR 20207028267 A KR20207028267 A KR 20207028267A KR 102494087 B1 KR102494087 B1 KR 102494087B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- current block
- sub
- motion vector
- corner
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 개시의 관점은 비디오 인코딩/디코딩 방법 및 장치를 제공한다. 일부 예에서, 비디오 디코딩 장치는 프로세싱 회로를 포함한다. 프로세싱 회로는 코딩된 비디오 시퀀스의 일부인 현재 코딩된 픽처의 현재 블록에 대한 예측 정보를 디코딩한다. 예측 정보는 현재 블록에 평면 모션 벡터 예측 모드가 사용되는지를 나타낸다. 현재 블록은 복수의 서브-블록으로 분할된다. 현재 블록에 대해 평면 모션 벡터 예측 모드가 사용되는 것으로 지시되면, 프로세싱 회로는 평면 모션 벡터 예측 모드의 사용에 응답하여 현재 블록의 우측 하단(BR) 코너에 대한 적어도 하나의 시간적 모션 벡터 예측기(TMVP) 후보를 결정한다. 그런 다음 프로세싱 회로는 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 따라 현재 블록을 재구성한다.
Description
본 발명은 2018년 4월 9일 출원되고 발명의 명칭이 "서브-블록 모션 벡터 예측을 위한 방법 및 장치"인 미국 가특허 출원 No. 62/655,065 및 2019년 3월 22일에 출원되고 발명의 명칭이 "서브-블록 모션 벡터 예측을 위한 방법 및 장치"인 미국 실용신안 출원 No. 16/362,596에 대한 우선권의 이점을 주장하며, 상기 문헌들은 본 명세서에 그 전문이 포함된다.
본 발명은 일반적으로 비디오 코딩에 관한 실시예를 설명한다.
여기에 제공된 배경 설명은 일반적으로 본 개시 내용의 맥락을 제시하기 위한 것이다. 이 배경 섹션에서 저작물이 설명되는 한, 현재 지명된 발명가의 저작물뿐만 아니라 출원 당시의 선행 기술로서 달리 자격이 없을 수 있는 설명의 관점은 본 개시에 대한 선행 기술로서 명시적으로 또는 묵시적으로 인정되지 않는다.
비디오 코딩 및 디코딩은 모션 보상을 갖는 인터-픽처 예측을 사용하여 수행될 수 있다. 압축되지 않은 디지털 비디오는 일련의 픽처를 포함할 수 있으며, 각각의 픽처는 예를 들어 1920x1080 휘도 샘플 및 관련 색차 샘플의 공간 차원을 갖는다. 일련의 픽처는 예를 들어 초당 60 픽처 또는 60Hz의 고정 또는 가변 픽처 레이트(비공식적으로 프레임 레이트라고도 알려져 있다)를 가질 수 있다. 압축되지 않은 비디오에는 상당한 비트레이트 요구 사항이 있다. 예를 들어, 샘플 당 8 비트의 1080p60 4:2:0 비디오(60Hz 프레임 레이트에서 1920x1080 휘도 샘플 해상도)는 거의 1.5Gbit/s 대역폭이 필요하다. 이러한 비디오의 한 시간은 600GB 이상의 저장 공간이 필요하다.
비디오 코딩 및 디코딩의 한 가지 목적은 압축을 통해 입력 비디오 신호의 중복성을 줄이는 것이다. 압축은 앞서 언급한 대역폭 또는 저장 공간 요구 사항을 줄이는 데 도움이 될 수 있는데 어떤 경우에는 2배 이상의 규모가 될 수 있다. 무손실 압축과 손실 압축, 뿐만 아니라 이들의 조합이 모두 사용될 수 있다. 무손실 압축은 압축된 원래 신호로부터 원래 신호의 정확한 사본을 재구성할 수 있는 기술을 의미한다. 손실 압축을 사용하는 경우 재구성된 신호는 원래 신호와 동일하지 않을 수 있지만 원래 신호와 재구성된 신호 사이의 왜곡은 재구성된 신호가 의도한 애플리케이션에 유용할 만큼 충분히 작다. 비디오의 경우 손실 압축이 널리 사용된다. 허용되는 왜곡의 양은 애플리케이션에 따라 다르다: 예를 들어, 특정 소비자 스트리밍 애플리케이션의 사용자는 텔레비전 배포 애플리케이션의 사용자보다 더 높은 왜곡을 허용할 수 있다. 달성 가능한 압축 비율은: 허가/허용 왜곡이 높을수록 압축 비율이 높아질 수 있다는 것을 반영할 수 있다.
모션 보상은 손실 압축 기술일 수 있으며, 이전에 재구성된 픽처 또는 그 일부(참조 픽처)로부터의 샘플 데이터 블록이 모션 벡터(이후 MV)가 나타내는 방향으로 공간적으로 이동한 후, 새로 재구성된 픽처 또는 픽처 부분의 예측에 사용되는 기술과 관련될 수 있다. 일부의 경우에서 참조 픽처는 현재 재구성 중인 픽처와 동일할 수 있다. MV는 2차원 X 및 Y 또는 3차원을 가질 수 있으며, 세 번째는 사용중인 참조 픽처를 나타낸다(후자는 간접적으로 시간 차원이 될 수 있다).
일부 비디오 압축 기술에서, 샘플 데이터의 특정 영역에 적용할 수 있는 MV는 다른 MV로부터 예측될 수 있는데, 예를 들어 재구성 중인 영역에 공간적으로 인접하고, 디코딩 순서에서 그 MV에 선행하는 샘플 데이터의 다른 영역과 관련된 MV로부터 예측될 수 있다. 이렇게 하면 MV를 코딩하는 데 필요한 데이터 양을 크게 줄일 수 있으므로 중복성을 제거하고 압축을 높일 수 있다. 예를 들어, 카메라에서 파생된 입력 비디오 신호(자연 비디오라고 함)를 코딩할 때 단일 MV가 적용되는 영역보다 큰 영역이 유사한 방향으로 이동하는 통계적 가능성이 있고, 따라서 일부의 경우에 주변 영역의 MV로부터 파생된 유사한 모션 벡터를 사용하여 예측될 수 있기 때문에 MV 예측이 효과적으로 작동할 수 있다. 그 결과 주어진 영역에 대해 발견된 MV는 주변 MV에서 예측한 MV와 유사하거나 동일하며, 이는 엔트로피 코딩 후에는 MV를 직접 코딩할 때 사용될 비트 수보다 더 적은 수의 비트로 지시될 수 있다. 일부 경우에 MV 예측은 원래 신호(즉, 샘플 스트림)로부터 파생된 신호(즉, MV)의 무손실 압축의 예일 수 있다. 다른 경우에는 예를 들어 주변의 여러 MV로부터 예측기를 계산할 때 반올림 오류로 인해 MV 예측기체가 손실될 수 있다.
다양한 MV 예측 메커니즘이 H.265/HEVC(ITU-T Rec. H.265, "High Efficiency Video Coding", 2016년 12월)에 설명되어 있다. H.265가 제공하는 많은 MV 예측 메커니즘 중에서 여기서 설명하는 기술은 이후 "공간 병합(spatial merge)"이라고 한다.
도 1을 참조하면, 현재 블록(101)은 공간적으로 이동된 동일한 크기의 이전 블록으로부터 예측 가능하도록 모션 검색 프로세스 동안 인코더에 의해 발견된 샘플을 포함할 수 있다. MV를 직접 코딩하는 대신, MV는 A0으로 표시된 5개의 주변 샘플 중 하나와 연관된 MV를 사용하여 가장 최근(디코딩 순서로) 참조 픽처로부터 하나 이상의 참조 픽처와 연관된 메타 데이터에서 파생될 수 있다. , A1 및 B0, B1, B2(각각 102~106). H.265에서 MV 예측은 인접 블록이 사용하는 동일한 참조 픽처의 예측기를 사용할 수 있다.
본 개시의 양상들은 비디오 인코딩/디코딩을 위한 방법 및 장치를 제공한다. 일부 예들에서, 비디오 디코딩을 위한 장치는 수신 회로 및 프로세싱 회로를 포함한다.
프로세싱 회로는 코딩된 비디오 시퀀스의 일부인 현재 코딩된 화상의 현재 블록에 대한 예측 정보를 디코딩하도록 구성된다. 예측 정보는 현재 블록에 평면 모션 벡터 예측 모드가 사용되는지를 나타낸다. 현재 블록은 복수의 서브-블록으로 분할된다. 현재 블록에 대해 평면 모션 벡터 예측 모드가 사용되는 것으로 표시되면, 프로세싱 회로는 평면 모션 벡터 예측 모드의 사용에 응답하여 적어도 하나의 시간적 모션 벡터 예측기(TMVP)를 결정하도록 추가로 구성된다. 현재 블록의 우측 하단(BR) 코너 후보이다. 그 다음 프로세싱 회로는 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 따라 현재 블록을 재구성한다. 일 실시예에서, 현재 블록에 대한 참조 픽처는 예측 정보에서 시그널링될 수 있다.
다양한 실시예에서, BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나의 참조 픽처가 현재 블록의 참조 픽처와 다를 때, 프로세싱 회로는 현재 블록의 참조 픽처에 대해 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나를 스케일링하도록 추가로 구성될 수 있다. 따라서 현재 블록은 BR 코너에 대한 적어도 하나의 TMVP 후보 중 스케일링된 후보에 따라 재구성된다. 예측 정보가 BR 코너에 대한 모션 벡터 차이(MVD)를 포함할 때, 프로세싱 회로는 BR 코너에 대한 MVD 및 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 기초하여 최종 모션 벡터를 결정하도록 추가로 구성될 수 있다.
일 실시예에서, 적어도 하나의 TMVP 후보는 참조 픽처에서 공존 블록에 기초하여 결정되는 TMVP 후보를 포함한다. 참조 픽처에서 공존하는 블록은 현재 코딩된 픽처의 BR 코너에 있는 서브-블록과 동일한 위치에 있다. BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 내부에 위치하고 BR 코너에 인접한 서브-블록에 대한 TMVP 후보를 포함할 수 있다. BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 내부에 위치하고 현재 블록의 중심에 인접한 서브-블록에 대한 TMVP 후보를 포함할 수 있다.
본 개시에 따르면, BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 좌측 하단(bottom-left, BL) 인접 서브-블록에 대한 TMVP 후보를 포함한다. BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 우측 상단(above-right, AR) 인접 서브-블록에 대한 TMVP 후보를 포함할 수 있다. 또한, BR 코너를 위한 적어도 하나의 TMVP 후보는 현재 블록의 BL 인접 서브-블록과 현재 블록의 AR 인접 서브-블록의 모션 벡터의 가중 평균인 TMVP 후보를 포함할 수 있다.
일 실시예에서, 프로세싱 회로는 적어도 하나의 TMVP 후보 중 하나를 식별하는 수신된 인덱스에 기초하여 적어도 하나의 TMVP 후보로부터 적어도 하나의 TMVP 후보 중 하나를 선택하도록 추가로 구성된다. 프로세싱 회로는 미리 결정된 후보 순서에 기초하여 적어도 하나의 TMVP 후보로부터 적어도 하나의 TMVP 후보 중 하나를 선택하도록 추가로 구성될 수 있다. 프로세싱 회로는 미리 선택된 TMVP 후보에 기초하여 적어도 하나의 TMVP 후보로부터 적어도 하나의 TMVP 후보 중 하나를 선택하도록 추가로 구성될 수 있다.
일 실시예에서, BR 코너에 있는 서브-블록은 현재 블록의 외부에 위치한다. BR 코너에 있는 서브-블록은 현재 블록의 내부에 있을 수 있다.
실시예에 따르면, 프로세싱 회로는 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 따라 현재 블록의 각각의 서브-블록에 대한 모션 벡터 예측기를 유도하도록 추가로 구성될 수 있다. 그런 다음 프로세싱 회로는 현재 블록의 각각의 서브-블록에 대한 모션 벡터 예측기에 따라 현재 블록을 재구성한다.
본 개시의 관점들은 또한 비디오 디코딩을 위해 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 비디오 디코딩 방법을 수행하게 하는 명령을 저장하는 비 일시적 컴퓨터 판독 가능형 매체를 제공한다.
개시된 주제의 추가 특징, 본질 및 다양한 이점은 다음의 상세한 설명 및 첨부 도면으로부터 더욱 명백해질 것이다.
도 1은 일 예에서 현재 블록 및 현재 블록의 주변 공간 병합 후보들의 개략도이다.
도 2는 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 3은 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 4는 실시예에 따른 디코더의 단순화된 블록도의 개략도이다.
도 5는 실시예에 따른 인코더의 단순화된 블록도의 개략도이다.
도 6은 다른 실시예에 따른 인코더의 블록도를 도시한다.
도 7은 다른 실시예에 따른 디코더의 블록도를 도시한다.
도 8a는 본 개시의 일 실시예에 따른, 양방향 매칭으로 지칭되는 블록 레벨 모션 보상 방법을 도시한다.
도 8b는 본 개시의 일 실시예에 따른, 템플릿 매칭이라고 하는 다른 블록 레벨 모션 보상 방법을 도시한다.
도 9는 본 개시의 일 실시예에 따른 방향성 서브-블록 레벨 모션 벡터 예측 방법을 나타낸다.
도 10은 본 개시의 일 실시예에 따른 예시적인 평면 모션 예측 방법을 도시한다.
도 11은 본 개시의 일 실시예에 따라 현재 블록의 상이한 위치로부터 현재 블록의 우측 하단 서브-블록의 시간적 모션 벡터 예측기를 결정하기 위한 예시적인 다이어그램을 도시한다.
도 12는 본 개시 내용의 실시예에 따른 예시적인 프로세스를 개략적으로 나타내는 흐름도를 도시한다.
도 13은 실시예에 따른 컴퓨터 시스템의 개략도이다.
도 1은 일 예에서 현재 블록 및 현재 블록의 주변 공간 병합 후보들의 개략도이다.
도 2는 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 3은 실시예에 따른 통신 시스템의 단순화된 블록도의 개략도이다.
도 4는 실시예에 따른 디코더의 단순화된 블록도의 개략도이다.
도 5는 실시예에 따른 인코더의 단순화된 블록도의 개략도이다.
도 6은 다른 실시예에 따른 인코더의 블록도를 도시한다.
도 7은 다른 실시예에 따른 디코더의 블록도를 도시한다.
도 8a는 본 개시의 일 실시예에 따른, 양방향 매칭으로 지칭되는 블록 레벨 모션 보상 방법을 도시한다.
도 8b는 본 개시의 일 실시예에 따른, 템플릿 매칭이라고 하는 다른 블록 레벨 모션 보상 방법을 도시한다.
도 9는 본 개시의 일 실시예에 따른 방향성 서브-블록 레벨 모션 벡터 예측 방법을 나타낸다.
도 10은 본 개시의 일 실시예에 따른 예시적인 평면 모션 예측 방법을 도시한다.
도 11은 본 개시의 일 실시예에 따라 현재 블록의 상이한 위치로부터 현재 블록의 우측 하단 서브-블록의 시간적 모션 벡터 예측기를 결정하기 위한 예시적인 다이어그램을 도시한다.
도 12는 본 개시 내용의 실시예에 따른 예시적인 프로세스를 개략적으로 나타내는 흐름도를 도시한다.
도 13은 실시예에 따른 컴퓨터 시스템의 개략도이다.
도 2는 본 개시의 일 실시예에 따른 통신 시스템(200)의 단순화된 블록도를 예시한다. 통신 시스템(200)은 예를 들어 네트워크(250)를 통해 서로 통신할 수 있는 복수의 단말 장치를 포함한다. 예를 들어, 통신 시스템(200)은 네트워크(250)를 통해 상호 연결된 제1 쌍의 단말 장치(210) 및 (220)를 포함한다. 예를 들어, 제1 쌍의 단말 장치(210) 및 (220)은 데이터의 단방향 전송을 수행한다. 예를 들어, 단말 장치(210)는 네트워크(250)를 통해 다른 단말 장치(220)로 전송하기 위해 비디오 데이터(예를 들어, 단말 장치(210)에 의해 캡처된 비디오 픽처의 스트림)를 코딩할 수 있다. 인코딩된 비디오 데이터는 하나 이상의 코딩된 비디오 비트 스트림의 형태로 전송될 수 있다. 단말 장치(220)는 네트워크(250)로부터 코딩된 비디오 데이터를 수신하고, 코딩된 비디오 데이터를 디코딩하여 비디오 픽처를 복원하고, 복원된 비디오 데이터에 따라 비디오 픽처를 표시할 수 있다. 단방향 데이터 전송은 미디어 서비스 애플리케이션 등에서 일반적일 수 있다.
다른 예에서, 통신 시스템(200)은 예를 들어 화상 회의 동안 발생할 수 있는 코딩된 비디오 데이터의 양방향 전송을 수행하는 제2 쌍의 단말 장치(230) 및 (240)를 포함한다. 데이터의 양방향 전송의 경우, 하나의 예에서, 단말 장치(230) 및 단말 장치(240)의 각각의 단말 장치는 네트워크(250)를 통해 단말 장치(230) 및 (240)의 다른 단말 장치로의 전송을 위해 비디오 데이터(예를 들어, 단말 장치에 의해 캡처된 비디오 픽처의 스트림)를 코딩할 수 있다. 단말 장치(230) 및 (240)의 각각의 단말 장치는 또한 단말 장치(230) 및 (240)의 다른 단말 장치에서 전송 한 코딩된 비디오 데이터를 수신할 수 있으며, 코딩된 비디오 데이터를 디코딩하여 비디오를 복원할 수 있으며, 복원된 비디오 데이터에 따라 액세스 가능한 디스플레이 장치에 비디오 픽처를 표시할 수 있다.
도 2에서, 예를 들어, 단말 장치(210), (220), (230), (240)은 서버, 퍼스널 컴퓨터 및 스마트 폰으로 예시될 수 있지만, 본 개시의 원리는 이에 제한되지 않을 수 있다. 본 개시 내용의 실시예는 랩톱 컴퓨터, 태블릿 컴퓨터, 미디어 플레이어 및/또는 전용 화상 회의 장비를 갖는 애플리케이션을 찾는다. 네트워크(250)는 예를 들어 유선(wired) 및/또는 무선 통신 네트워크를 포함하여 단말 장치(210), (220), (230) 및 (240) 사이에서 코딩된 비디오 데이터를 전달하는 임의의 수의 네트워크를 나타낸다. 통신 네트워크(250)는 회선 교환 및/또는 패킷 교환 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크에는 통신 네트워크, 근거리 통신망, 광역 통신망 및/또는 인터넷이 포함된다. 본 논의의 목적을 위해, 네트워크(250)의 아키텍처 및 토폴로지는 아래에서 설명되지 않는 한 본 개시의 동작에 중요하지 않을 수 있다.
도 3은 개시된 주제에 대한 애플리케이션의 예로서 스트리밍 환경에서 비디오 인코더 및 비디오 디코더의 배치를 예시한다. 개시된 주제는 예를 들어, 화상 회의, 디지털 TV, CD, DVD, 메모리 스틱 등을 포함하는 디지털 매체에 압축된 비디오의 저장을 포함하는 다른 비디오 가능 애플리케이션에 동일하게 적용될 수 있다.
스트리밍 시스템은 비디오 소스(301), 예를 들어 디지털 카메라를 포함할 수 있는 캡처 서브 시스템(313)을 포함하여, 예를 들어 압축되지 않은 비디오 픽처(302)의 스트림을 생성할 수 있다. 예에서, 비디오 픽처 스트림(302)은 디지털 카메라에 의해 촬영된 샘플을 포함한다. 인코딩된 비디오 데이터(304)(또는 코딩된 비디오 비트 스트림)와 비교할 때 높은 데이터 볼륨을 강조하기 위해 굵은 선으로 표시된 비디오 픽처 스트림(302)은 비디오를 포함하는 전자 장치(320)에 의해 처리될 수 있다. 인코더(303)는 비디오 소스(301)에 결합된다. 비디오 인코더(303)는 하드웨어, 소프트웨어 또는 이들의 조합을 포함하여 아래에서 더 상세히 설명되는 바와 같이 개시된 주제의 관점을 가능하게 하거나 구현할 수 있다. 인코딩된 비디오 데이터(304)(또는 인코딩된 비디오 비트 스트림(304))는 비디오 픽처(302)의 스트림과 비교할 때 더 낮은 데이터 볼륨을 강조하기 위해 가는 선으로 도시되어 향후 사용을 위해 스트리밍 서버(305)에 저장될 수 있다. 도 3의 클라이언트 서브 시스템(306) 및 (308)과 같은 하나 이상의 스트리밍 클라이언트 서브 시스템은 인코딩된 비디오 데이터(304)의 사본(307) 및 (309)을 검색하기 위해 스트리밍 서버(305)에 액세스할 수 있다. 클라이언트 서브 시스템(306)은 예를 들어 전자 장치(330)에 비디오 디코더(310)를 포함할 수 있다. 비디오 디코더(310)는 인코딩된 비디오 데이터의 입력 사본(307)을 디코딩하고 디스플레이(312)(예를 들어, 디스플레이 화면) 또는 다른 렌더링 장치(도시되지 않음)에서 렌더링될 수 있는 비디오 픽처(311)의 아웃고잉 스트림을 생성한다. 일부 스트리밍 시스템에서, 인코딩된 비디오 데이터(304), (307) 및 (309)(예를 들어, 비디오 비트 스트림)은 특정 비디오 코딩/압축 표준에 따라 인코딩될 수 있다. 이러한 표준의 예로는 ITU-T 권고 H.265가 있다. 예를 들어, 개발중인 비디오 코딩 표준은 비공식적으로 버서타일 비디오 코딩(Versatile Video Coding, VVC)로 알려져 있다. 개시된 주제는 VVC의 맥락에서 사용될 수 있다.
전자 장치(320) 및 (330)은 다른 구성 요소(도시되지 않음)를 포함할 수 있음에 유의한다. 예를 들어, 전자 장치(320)는 비디오 디코더(도시되지 않음)를 포함할 수 있고, 전자 장치(330)도 비디오 인코더(도시되지 않음)를 포함할 수 있다.
도 4는 본 개시의 일 실시예에 따른 비디오 디코더(410)의 블록도를 도시한다. 비디오 디코더(410)는 전자 장치(430)에 포함될 수 있다. 전자 장치(430)는 수신기(431)(예를 들어, 수신 회로)를 포함할 수 있다. 비디오 디코더(410)는 도 3의 예에서 비디오 디코더(310) 대신에 사용될 수 있다.
수신기(431)는 비디오 디코더(410)에 의해 디코딩될 하나 이상의 코딩된 비디오 시퀀스를 수신할 수 있고; 동일한 또는 다른 실시예에서, 한 번에 하나의 코딩된 비디오 시퀀스를 수신할 수 있고, 각각의 코딩된 비디오 시퀀스의 디코딩은 다른 코딩된 비디오 시퀀스와 독립적이다. 코딩된 비디오 시퀀스는 인코딩된 비디오 데이터를 저장하는 저장 장치에 대한 하드웨어/소프트웨어 링크일 수 있는 채널(401)로부터 수신될 수 있다. 수신기(431)는 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 함께 인코딩된 비디오 데이터를 수신할 수 있으며, 이들은 각각의 사용 엔티티(도시되지 않음)로 전달될 수 있다. 수신기(431)는 코딩된 비디오 시퀀스를 다른 데이터와 분리할 수 있다. 네트워크 지터(network jitter)를 방지하기 위해, 버퍼 메모리(415)가 수신기(431)와 엔트로피 디코더/파서(decoder/parser)(420)(이하 "파서(420)") 사이에 결합될 수 있다. 특정 애플리케이션에서, 버퍼 메모리(415)는 비디오 디코더(410)의 일부이다. 다른 애플리케이션에서, 비디오 디코더(410)(도시되지 않음) 외부에 있을 수 있다. 또 다른 애플리케이션에서, 예를 들어 네트워크 지터와 방지하기 위해 비디오 디코더(410) 외부에 버퍼 메모리(도시되지 않음)가 있을 수 있으며, 예를 들어 플레이 아웃 타이밍을 처리하기 위해 추가로 비디오 디코더(410) 내부에 다른 버퍼 메모리(415)가 있을 수 있다. 수신기(431)가 충분한 대역폭과 제어 가능성을 갖는 저장/전달 장치로부터 또는 등시성 네트워크로부터 데이터를 수신할 때, 버퍼 메모리(415)는 필요하지 않거나 작을 수 있다. 인터넷과 같은 최선의(best effort) 패킷 네트워크에서 사용하기 위해, 버퍼 메모리(415)가 필요할 수 있고, 비교적 클 수 있으며, 적응형 크기가 유리할 수 있으며, 비디오 디코더(410) 외부에 있는 운영 체제 또는 유사한 요소(도시되지 않음)에서 적어도 부분적으로 구현될 수 있다.
비디오 디코더(410)는 코딩된 비디오 시퀀스로부터 심볼(421)을 재구성하기 위해 파서(420)를 포함할 수 있다. 이러한 심볼의 카테고리에는 비디오 디코더(410)의 작동을 관리하는 데 사용되는 정보와, 도 4에 도시된 바와 같이, 전자 제품의 필수 부분은 아니지만 전자 장치(430)에 전자 장치(430)에 결합될 수 있는 렌더링 장치(412)(예를 들어, 디스플레이 화면)와 같은 렌더링 장치를 제어하기 위한 정보가 포함된다. 렌더링 장치(들)에 대한 제어 정보는 보충 강화 정보(Supplemental Enhancement Information, SEI 메시지) 또는 비디오 이용 가능 정보(Video Usability Information, VUI) 파라미터 집합 조각(도시되지 않음)의 형태일 수 있다. 파서(420)는 수신된 코딩된 비디오 시퀀스를 파싱/엔트로피 디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준에 따를 수 있으며, 가변 길이 코딩, 허프만(Huffman) 코딩, 컨텍스트 민감도가 있거나 없는 산술 코딩 등을 포함한 다양한 원칙을 따를 수 있다. 파서(420)는 그룹에 대응하는 적어도 하나의 파라미터에 기초하여 비디오 디코더의 픽셀의 서브 그룹 중 적어도 하나에 대한 서브 그룹 파라미터의 세트를 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브 그룹에는 픽처의 그룹(Group of Pictures, GOP), 픽처, 타일, 슬라이스, 매크로 블록, 코딩 유닛(Coding Unit, CU), 블록, 변환 유닛(Transform Unit, TU), 예측 유닛(Prediction Unit, PU) 등이 포함될 수 있다. 파서(420)는 또한 변환 계수, 양자화기 파라미터 값, 모션 벡터 등과 같은 코딩된 비디오 시퀀스 정보로부터 추출할 수 있다.
파서(420)는 버퍼 메모리(415)로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행하여 심볼(421)을 생성할 수 있다.
심볼의 재구성(421)은 코딩된 비디오 픽처 또는 그 일부(예를 들어, 인터 및 인트라 픽처, 인터 및 인트라 블록)의 유형 및 기타 요인에 따라 여러 다른 유닛을 포함할 수 있다. 파서(420)에 의해 코딩된 비디오 시퀀스로부터 파싱된 서브 그룹 제어 정보에 의해 어떤 유닛이 관련되는지와 방법이 제어될 수 있다. 파서(420)와 아래의 다중 유닛 사이의 그러한 서브 그룹 제어 정보의 흐름은 명확성을 위해 도시되지 않는다.
이미 언급된 기능 블록을 넘어, 비디오 디코더(410)는 아래에 설명된 바와 같이 개념적으로 다수의 기능 유닛으로 세분될 수 있다. 상업적 제약 하에서 작동하는 실제 구현에서 이러한 장치 중 다수는 서로 밀접하게 상호 작용하며 적어도 부분적으로는 서로 통합될 수 있다. 그러나 공개된 주제를 설명하기 위해서는 아래의 기능 단위로 개념적으로 세분화하는 것이 적절하다.
제1 유닛은 스케일러/역변환 유닛(451)이다. 스케일러/역변환 유닛(451)은 파서(420)로부터의 심볼(들)(421)로서, 사용할 변환, 블록 크기, 양자화 인자, 양자화 스케일링 매트릭스 등을 포함하는 제어 정보뿐만 아니라 양자화된 변환 계수를 수신한다. 스케일러/역변환 유닛(451)은 수집기(455)에 입력될 수 있는 샘플 값을 포함하는 블록을 출력할 수 있다.
일부 경우에, 스케일러/역변환(451)의 출력 샘플은 인트라 코딩된 블록에 속할 수 있으며; 즉: 이전에 재구성된 픽처의 예측 정보를 사용하지 않지만 현재 픽처의 이전에 재구성된 부분의 예측 정보를 사용할 수 있는 블록이다. 이러한 예측 정보는 인트라-픽처 예측 유닛(452)에 의해 제공될 수 있다. 일부 경우에, 인트라 픽처 예측 유닛(452)은 현재 픽처 버퍼(458)로부터 가져온 이미 재구성된 주변 정보를 이용하여 재구성 중인 블록과 동일한 크기 및 형태의 블록을 생성한다. 현재 화상 버퍼(458)는 예를 들어 부분적으로 재구성된 현재 화상 및/또는 완전히 재구성된 현재 화상을 버퍼링한다. 집계기(aggregator)(455)는 경우에 따라 인트라 예측 유닛(452)이 생성한 예측 정보를 스케일러/역변환 유닛(451)에 의해 제공되는 출력 샘플 정보에 샘플 단위로 추가한다.
다른 경우에, 스케일러/역변환 유닛(451)의 출력 샘플은 인터 코딩되고 잠재적으로 모션 보상된 블록에 속할 수 있다. 이러한 경우, 모션 보상 예측 유닛(453)은 예측에 사용되는 샘플을 가져 오기 위해 참조 픽처 메모리(457)에 액세스할 수 있다. 블록에 속하는 심볼(421)에 따라 가져온 샘플을 모션 보상한 후, 이러한 샘플은 출력 샘플 정보를 생성하기 위해 집계기(455)에 의해 스케일러/역변환 유닛(451)의 출력에 추가될 수 있다(이 경우에는 샘플 또는 잔여 신호라고 함). 모션 보상 예측 유닛(453)이 예측 샘플을 가져 오는 참조 픽처 메모리(457) 내의 주소는 모션 벡터에 의해 제어될 수 있으며, 모션 보상 예측 유닛(453)이 이용할 수 있는 심볼(421)의 형태로 예를 들어 X, Y 및 참조 픽처 구성 요소가 있다. 모션 보상은 또한 서브-샘플 정확한 모션 벡터가 사용 중일 때 참조 픽처 메모리(457)로부터 인출된 샘플 값의 보간, 모션 벡터 예측 메커니즘 등을 포함할 수 있다.
집계기(455)의 출력 샘플은 루프 필터 유닛(456)에서 다양한 루프 필터링 기술의 대상이 될 수 있다. 비디오 압축 기술은 코딩된 비디오 시퀀스(코딩된 비디오 비트 스트림이라고도 함)에 포함된 파라미터에 의해 제어되고 파서(420)로부터의 심볼(421)로서 루프 필터 유닛(456)에 이용 가능하게 되는 인-루프 필터 기술을 포함할 수 있으나, 코딩된 픽처 또는 코딩된 비디오 시퀀스의(디코딩 순서로) 이전 부분을 디코딩하는 동안 획득된 메타 정보에 응답할 수 있을 뿐만 아니라 이전에 재구성되고 루프 필터링된 샘플 값에 응답할 수도 있다.
루프 필터 유닛(456)의 출력은 렌더 장치(412)로 출력될 수 있을 뿐만 아니라 미래의 인터-픽처 예측에 사용하기 위해 참조 픽처 메모리(457)에 저장될 수 있는 샘플 스트림일 수 있다.
완전히 재구성된 특정 코딩된 픽처는 향후 예측을 위한 참조 픽처로 사용할 수 있다. 예를 들어, 현재 픽처에 대응하는 코딩된 픽처가 완전히 재구성되고 코딩된 픽처가(예를 들어 파서(420)에 의해) 참조 픽처로 식별되면, 현재 픽처 버퍼(458)는 참조 픽처 메모리(457)의 일부가 될 수 있고, 새로운 현재 픽처 버퍼는 다음의 코딩된 픽처의 재구성을 시작하기 전에 재할당될 수 있다.
비디오 디코더(410)는 ITU-T Rec. H.265와 같은 표준에서 미리 정해진 비디오 압축 기술에 따라 디코딩 동작을 수행할 수 있다. 코딩된 비디오 시퀀스는 비디오 압축 기술 또는 표준의 구문과 비디오 압축 기술 또는 표준에 문서화된 프로파일을 모두 준수한다는 점에서 사용 중인 비디오 압축 기술 또는 표준에 의해 지정된 구문을 따를 수 있다. 구체적으로, 프로필은 비디오 압축 기술 또는 표준에서 사용할 수 있는 모든 도구에서 해당 프로필에서 사용할 수 있는 유일한 도구로 특정 도구를 선택할 수 있다. 또한 컴플라이언스에 필요한 것은 코딩된 비디오 시퀀스의 복잡성이 비디오 압축 기술 또는 표준의 수준에 정의된 범위 내에 있다는 것이다. 경우에 따라 레벨은 최대 픽처 크기, 최대 프레임 레이트, 최대 재구성 샘플 레이트(예를 들어, 초당 메가 샘플로 측정됨), 최대 참조 픽처 크기 등을 제한한다. 레벨별로 설정된 제한은 일부의 경우에 가상 참조 디코더(Hypothetical Reference Decoder, HRD) 사양 및 코딩된 비디오 시퀀스에서 시그널링된 HRD 버퍼 관리를 위한 메타 데이터를 통해 추가로 제한될 수 있다.
일 실시예에서, 수신기(431)는 인코딩된 비디오와 함께 추가(중복) 데이터를 수신할 수 있다. 추가 데이터는 코딩된 비디오 시퀀스(들)의 일부로 포함될 수 있다. 추가 데이터는 데이터를 적절하게 디코딩하고 /하거나 원래 비디오 데이터를 더 정확하게 재구성하기 위해 비디오 디코더(410)에 의해 사용될 수 있다. 추가 데이터는 예를 들어 시간적, 공간적 또는 신호 잡음비(signal noise ratio, SNR) 향상 계층, 중복 슬라이스, 중복 픽처, 순방향 오류 수정 코드 등의 형태일 수 있다.
도 5는 본 개시의 일 실시예에 따른 비디오 인코더(503)의 블록도를 도시한다. 비디오 인코더(503)는 전자 장치(520)에 포함된다. 전자 장치(520)는 전송기(540)(예를 들어, 송신 회로)를 포함한다. 비디오 인코더(503)는 도 3의 예에서의 비디오 인코더(303) 대신에 사용될 수 있다.
비디오 인코더(503)는 비디오 인코더(503)에 의해 코딩될 비디오 이미지(들)를 캡처할 수 있는 비디오 소스(501)(도 5의 예에서의 전자 장치(520)의 일부가 아님)로부터 비디오 샘플을 수신할 수 있다. 다른 예에서, 비디오 소스(501)는 전자 장치(520)의 일부이다.
비디오 소스(501)는 임의의 적절한 비트 깊이(예를 들어, 8 비트, 10 비트, 12 비트, ...), 임의의 색 공간(예를 들어, BT.601 Y CrCb, RGB, ...) 및 임의의 적절한 샘플링 구조(예를 들어, Y CrCb 4:2:0, Y CrCb 4:4:4)일 수 있는 디지털 비디오 샘플 스트림의 형태로 비디오 인코더(503)에 의해 코딩될 소스 비디오 시퀀스를 제공할 수 있다. 미디어 서빙 시스템에서 비디오 소스(501)는 미리 준비된 비디오를 저장하는 저장 장치일 수 있다. 화상 회의 시스템에서, 비디오 소스(501)는 로컬 이미지 정보를 비디오 시퀀스로 캡처하는 카메라일 수 있다. 비디오 데이터는 순차적으로 볼 때 모션을 전달하는 복수의 개별 픽처로 제공될 수 있다. 픽처 자체는 픽셀의 공간 어레이로 구성될 수 있으며, 각각의 픽셀은 사용중인 샘플링 구조, 색 공간 등에 따라 하나 이상의 샘플을 포함할 수 있다. 당업자는 픽셀과 샘플 사이의 관계를 쉽게 이해할 수 있다. 아래 설명은 샘플에 중점을 둔다.
일 실시예에 따르면, 비디오 인코더(503)는 소스 비디오 시퀀스의 픽처를 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약하에 코딩된 비디오 시퀀스(543)로 코딩하고 압축할 수 있다. 적절한 코딩 레이트를 적용하는 것은 컨트롤러(550)의 기능 중 하나이다. 일부 실시예에서, 제어기(550)는 후술되는 바와 같이 다른 기능 유닛을 제어하고 다른 기능 유닛에 기능적으로 결합된다. 명확성을 위해 커플링은 표시되지 않는다. 제어기(550)에 의해 설정된 파라미터는 레이트 제어 관련 파라미터(레이트 왜곡 최적화 기술의 픽처 스킵, 양자화기, 람다 값, ...), 픽처 크기, 픽처 그룹(GOP) 레이아웃, 최대 모션 벡터 검색 범위 등을 포함할 수 있다. 제어기(550)는 특정 시스템 설계에 최적화된 비디오 인코더(503)에 속하는 다른 적절한 기능을 갖도록 구성될 수 있다.
일부 실시예에서, 비디오 인코더(503)는 코딩 루프에서 동작하도록 구성된다. 지나치게 단순화된 설명으로서, 예에서, 코딩 루프는 소스 코더(530)(예를 들어, 코딩될 입력 픽처 및 참조 픽처(들)에 기초하여 심볼 스트림과 같은 심볼을 생성하는 책임이 있는), 및 비디오 인코더(503)에 내장된(로컬) 디코더(533)를 포함할 수 있다. (심볼과 코딩된 비디오 비트 스트림 간의 압축은 개시된 주제에서 고려되는 비디오 압축 기술에서 무손실이기 때문에) 디코더(533)는(원격) 디코더가 생성하는 것과 유사한 방식으로 샘플 데이터를 생성하기 위해 심볼을 재구성한다. 재구성된 샘플 스트림(샘플 데이터)은 참조 픽처 메모리(534)에 입력된다. 심볼 스트림의 디코딩이(로컬 또는 원격의) 디코더 위치와 무관한 비트-정확한 결과로 이어지므로, 참조 픽처 메모리(534)의 콘텐츠도 로컬 인코더와 원격 인코더 간에 비트 정확하다. 다시 말해, 인코더의 예측 부분은 디코딩 중에 예측을 사용할 때 디코더가 "보는" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플링으로 정확하게 "본다". 참조 픽처 동기성의 이 기본 원리(예를 들어 채널 오류로 인해 동기성을 유지할 수 없는 경우 드리프트가 생긴다)는 일부 관련 기술에서도 사용된다.
"로컬" 디코더(533)의 동작은 비디오 디코더(410)와 같은 "원격" 디코더의 동작과 동일할 수 있으며, 이는 이미 도 4와 관련하여 상세하게 설명되었다. 도 4를 간략히 참조하면, 그렇지만, 심볼이 이용 가능하고 엔트로피 코더(545) 및 파서(420)에 의해 코딩된 비디오 시퀀스로 심볼의 인코딩/디코딩이 무손실일 수 있으므로, 버퍼 메모리(415) 및 파서(420)를 포함하는 비디오 디코더(410)의 엔트로피 디코딩 부분은 로컬 디코더(533)에서 완전히 구현되지 않을 수 있다.
이 시점에서 관찰할 수 있는 점은 디코더에 존재하는 파싱/엔트로피 디코딩을 제외한 모든 디코더 기술이 반드시 상응하는 인코더에 실질적으로 동일한 기능적 형태로 존재해야 한다는 것이다. 이러한 이유로, 개시된 주제는 디코더 동작에 초점을 맞춘다. 인코더 기술에 대한 설명은 포괄적으로 설명된 디코더 기술의 반대이므로 생략할 수 있다. 특정 영역에서만 더 자세한 설명이 필요하며 이하에 제공된다.
동작 동안, 일부 예들에서, 소스 코더(530)는 "참조 픽처들"로 지정된 비디오 시퀀스로부터 하나 이상의 이전에 코딩된 픽처를 참조하여 입력 픽처를 예측적으로 코딩하는 모션 보상된 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(532)은 입력 픽처에 대한 예측 참조(들)로서 선택될 수 있는 입력 픽처의 픽셀 블록과 참조 픽처(들)의 픽셀 블록 간의 차이를 코딩한다.
로컬 비디오 디코더(533)는 소스 코더(530)에 의해 생성된 심볼에 기초하여 참조 픽처로 지정될 수 있는 픽처의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(532)의 동작은 유리하게 손실 프로세스일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 5에 도시되지 않음)에서 디코딩될 수 있을 때, 재구성된 비디오 시퀀스는 일반적으로 약간의 오류가 있는 소스 비디오 시퀀스의 사본일 수 있다. 로컬 비디오 디코더(533)는 참조 픽처에 대해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스를 복제하고 재구성된 참조 픽처가 참조 픽처 캐시(534)에 저장되게 할 수 있다. 이러한 방식으로, 비디오 인코더(503)는 원본 비디오 디코더(전송 오류 없음)에 의해 획득될 재구성된 참조 픽처로서 공통 콘텐츠를 갖는 재구성된 참조 픽처의 사본을 국부적으로 저장할 수 있다.
예측기(535)는 코딩 엔진(532)에 대한 예측 검색을 수행할 수 있다. 즉, 코딩될 새로운 픽처에 대해 예측기(535)는 참조 픽처 메모리(534)에서 샘플 데이터(후보 참조 픽셀 블록) 또는 참조 픽처 모션 벡터, 블록 모양 등과 같은 특정 메타데이터를 검색할 수 있다. 이는 새로운 픽처에 대한 적절한 예측 참조 역할을 할 수 있다. 예측기(535)는 적절한 예측 참조를 찾기 위해 샘플 블록 단위로 동작할 수 있다. 일부 경우에, 예측기(535)에 의해 획득된 검색 결과에 의해 결정된 바와 같이, 입력 픽처는 참조 픽처 메모리(534)에 저장된 다수의 참조 픽처로부터 추출된 예측 참조를 가질 수 있다.
제어기(550)는 예를 들어 비디오 데이터를 인코딩하기 위해 사용되는 파라미터 및 서브 그룹 파라미터의 설정을 포함하는 소스 코더(530)의 코딩 동작을 관리할 수 있다.
전술한 모든 기능 유닛의 출력은 엔트로피 코더(545)에서 엔트로피 코딩을 받을 수 있다. 엔트로피 코더(545)는 허프만 코딩, 가변 길이 코딩, 산술 코딩 등과 같은 기술에 따라 심볼을 무손실 압축함으로써 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 변환한다.
전송기(540)는 엔트로피 코더(545)에 의해 생성된 코딩된 비디오 시퀀스(들)를 버퍼링하여 인코딩된 비디오 데이터를 저장하는 저장 장치에 대한 하드웨어/소프트웨어 링크일 수 있는 통신 채널(560)을 통한 전송을 준비할 수 있다. 전송기(540)는 비디오 코더(503)로부터 코딩된 비디오 데이터를 전송될 다른 데이터, 예를 들어 코딩된 오디오 데이터 및/또는 보조 데이터 스트림과 병합할 수 있다(소스는 도시되어 있지 않다).
제어기(550)는 비디오 인코더(503)의 동작을 관리할 수 있다. 코딩 동안, 제어기(550)는 각각의 픽처에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있는 특정 코딩된 픽처 유형을 각각의 코딩된 픽처에 할당할 수 있다. 예를 들어, 픽처는 종종 다음 픽처 유형 중 하나로 지정될 수 있다:
인트라 픽처(I 픽처)는 예측 소스로 시퀀스의 다른 픽처를 사용하지 않고 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱은 예를 들어 독립적인 디코더 리프레시(Independent Decoder Refresh)("IDR")를 포함하는, 서로 다른 유형의 인트라 픽처를 허용한다. 당업자는 I 픽처의 이러한 변형 및 각각의 응용 및 특징을 알고 있다.
예측 픽처(P 픽처)는 각 블록의 샘플 값을 예측하기 위해 최대 하나의 모션 벡터 및 참조 인덱스를 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양방향 예측 픽처(B Picture)는 각 블록의 샘플 값을 예측하기 위해 최대 2개의 모션 벡터 및 참조 인덱스를 사용하여 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다중 예측 픽처는 단일 블록의 재구성을 위해 2개 이상의 참조 픽처 및 관련 메타 데이터를 사용할 수 있다.
소스 픽처는 일반적으로 공간적으로 복수의 샘플 블록(예를 들어, 각각 4x4, 8x8, 4x8 또는 16x16 샘플 블록)으로 세분화되고 블록 단위로 코딩될 수 있다. 블록은 블록의 각각의 픽처에 적용된 코딩할당에 의해 결정된 대로 다른(이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비 예측적으로 코딩될 수 있거나, 동일한 픽처의 이미 코딩된 블록(공간 예측 또는 인트라 예측)을 참조하여 예측적으로 코딩될 수 있다. P 픽처의 픽셀 블록은 하나의 이전에 코딩된 참조 픽처를 참조하여 공간 예측 또는 시간적 예측을 통해 예측적으로 코딩될 수 있다. B 픽처의 블록은 하나 또는 두 개의 이전에 코딩된 참조 픽처를 참조하여 공간 예측을 통해 또는 시간적 예측을 통해 예측적으로 코딩될 수 있다.
비디오 인코더(503)는 ITU-T Rec. H.265와 같은 미리 결정된 비디오 코딩 기술 또는 표준에 따라 코딩 동작을 수행할 수 있다. 동작 중에, 비디오 인코더(503)는 입력 비디오 시퀀스에서 시간적 및 공간적 중복성을 이용하는 예측 코딩 동작을 포함하는 다양한 압축 동작을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 지정된 구문을 따를 수 있다.
일 실시예에서, 전송기(540)는 인코딩된 비디오와 함께 추가 데이터를 전송할 수 있다. 소스 코더(530)는 코딩된 비디오 시퀀스의 일부로서 이러한 데이터를 포함할 수 있다. 추가 데이터는 시간/공간/SNR 향상 계층, 중복 픽처 및 슬라이스와 같은 다른 형태의 중복 데이터, SEI 메시지, VUI 파라미터 세트 프래그먼트 등을 포함할 수 있다.
비디오는 시간적 시퀀스에서 복수의 소스 픽처(비디오 픽처)로 캡처될 수 있다. 인트라 픽처 예측(종종 인트라 예측으로 약칭)은 주어진 픽처에서 공간적 상관 관계를 사용하고, 픽처 간 예측은 픽처 간의(시간적 또는 기타) 상관 관계를 사용한다. 일 예에서, 현재 픽처라 불리는 인코딩/디코딩 중인 특정 픽처는 블록으로 분할된다. 현재 픽처의 블록이 이전에 코딩되고 비디오에서 여전히 버퍼링된 참조 픽처의 참조 블록과 유사할 때, 현재 픽처의 블록은 모션 벡터라고 하는 벡터에 의해 코딩될 수 있다. 모션 벡터는 참조 픽처에서 참조 블록을 가리키며, 여러 참조 픽처가 사용 중인 경우 참조 픽처를 식별하는 3차원을 가질 수 있다.
일부 실시예에서, 이중 예측 기술(bi-prediction technique)이 인터-픽처 예측에 사용될 수 있다. 이중 예측 기술에 따르면, 비디오에서 현재 픽처에 대해 디코딩 순서가 모두 선행된(그러나 표시 순서에서 각각 과거 및 미래일 수 있는) 제1 참조 픽처 및 제2 참조 픽처와 같은 2개의 참조 픽처가 사용된다. 현재 픽처의 블록은 제1 참조 픽처의 제1 참조 블록을 가리키는 제1 모션 벡터 및 제2 참조 픽처의 제2 참조 블록을 가리키는 제2 모션 벡터에 의해 코딩될 수 있다. 블록은 제1 참조 블록과 제2 참조 블록의 조합에 의해 예측될 수 있다.
또한, 인터-픽처 예측에 병합 모드 기술을 사용하여 코딩 효율을 향상시킬 수 있다.
본 개시의 일부 실시예에 따르면, 인터-픽처 예측 및 인트라-픽처 예측과 같은 예측이 블록 단위로 수행된다. 예를 들어, HEVC 표준에 따르면 비디오 픽처 시퀀스의 픽처는 압축을 위해 코딩 트리 단위(CTU)로 분할되고 픽처의 CTU는 64x64 픽셀, 32x32 픽셀 또는 16x16 픽셀과 같은 동일한 크기를 가진다. 일반적으로 CTU에는 루마 CTB 1개와 크로마 CTB 2개인 3개의 코딩 트리 블록(coding tree block, CTB)이 포함된다. 각각의 CTU는 반복적으로 쿼드트리를 하나 또는 여러 CU(코딩 단위)로 분할할 수 있다. 예를 들어 64x64 픽셀의 CTU는 64x64 픽셀의 CU 1개 또는 32x32 픽셀의 4개 CU 또는 16x16 픽셀의 16개 CU로 분할될 수 있다. 일 예에서, 각각의 CU는 인터 예측 유형 또는 인트라 예측 유형과 같은 CU에 대한 예측 유형을 결정하기 위해 분석된다. CU는 시간적 및/또는 공간적 예측 가능성에 따라 하나 이상의 예측 단위(prediction unit, PU)로 분할된다. 일반적으로 각각의 PU는 루마 예측 블록(PB)과 두 개의 크로마 PB를 포함한다. 일 실시예에서, 코딩에서의 예측 동작(인코딩/디코딩)은 예측 블록 단위로 수행된다. 예측 블록의 예로서 루마 예측 블록을 사용하여, 예측 블록은 8x8 픽셀, 16x16 픽셀, 8x16 픽셀, 16x8 픽셀 등과 같은 픽셀에 대한 값(예를 들어, 루마 값)의 행렬을 포함한다.
도 6은 본 개시의 다른 실시예에 따른 비디오 인코더(603)의 다이어그램을 도시한다. 비디오 인코더(603)는 일련의 비디오 픽처에서 현재 비디오 인트라-픽처의 샘플 값의 처리 블록(예를 들어, 예측 블록)을 수신하고 처리 블록을 코딩된 비디오 시퀀스의 일부인 코딩된 화상으로 인코딩하도록 구성된다. 일 예에서, 비디오 인코더(603)는 도 3의 예에서의 비디오 인코더(303) 대신에 사용된다.
HEVC 예에서, 비디오 인코더(603)는 8x8 샘플의 예측 블록 등과 같은 처리 블록에 대한 샘플 값의 행렬을 수신한다. 비디오 인코더(603)는 프로세싱 블록이 예를 들어 레이트 왜곡 최적화를 사용하여 인트라 모드, 인터 모드 또는 이중 예측 모드를 사용하여 최상으로 코딩되는지를 결정한다. 처리 블록이 인트라 모드에서 코딩될 때, 비디오 인코더(603)는 처리 블록을 코딩된 픽처로 인코딩하기 위해 인트라 예측 기술을 사용할 수 있고; 처리 블록이 인터 모드 또는 이중 예측 모드에서 코딩될 때, 비디오 인코더(603)는 처리 블록을 코딩된 화상으로 인코딩하기 위해 각각 인터 예측 또는 이중 예측 기술을 사용할 수 있다. 특정 비디오 코딩 기술에서, 병합 모드는 예측기 외부의 코딩된 모션 벡터 구성 요소의 이점 없이 모션 벡터가 하나 이상의 모션 벡터 예측기로부터 유도되는 인터-픽처 예측 서브 모드 일 수 있다. 주제 블록에 적용할 수 있는 모션 벡터 성분이 존재할 수 있다. 예에서, 비디오 인코더(603)는 처리 블록의 모드를 결정하기 위한 모드 결정 모듈(도시되지 않음)과 같은 다른 구성 요소를 포함한다.
도 6의 예에서, 비디오 인코더(603)는 도 6에 도시된 바와 같이 함께 결합된 인터 인코더(630), 인트라 인코더(622), 잔여 계산기(623), 스위치(626), 잔여 인코더(624), 일반 제어기(621) 및 엔트로피 인코더(625)를 포함한다.
인터 인코더(630)는 현재 블록(예를 들어, 처리 블록)의 샘플을 수신하고, 블록을 참조 픽처(예를 들어, 이전 픽처 및 이후 픽처의 블록)의 하나 이상의 참조 블록과 비교하고, 인터 예측 정보(예를 들어, 인터 인코딩 기술에 따른 중복 정보의 설명, 모션 벡터, 병합 모드 정보)는 임의의 적절한 기술을 사용하여 인터 예측 정보를 기반으로 인터 예측 결과(예를 들어, 예측 블록)를 계산한다. 일부 예에서, 참조 픽처는 인코딩된 비디오 정보에 기초하여 디코딩되는 디코딩된 참조 픽처이다.
인트라 인코더(622)는 현재 블록(예를 들어, 처리 블록)의 샘플을 수신하고, 일부 경우는 블록을 동일한 픽처에서 이미 코딩된 블록과 비교하고, 변환 후 양자화된 계수를 생성하고, 일부 경우는 또한 인트라 예측 정보(예를 들어, 하나 이상의 인트라 인코딩 기술에 따른 인트라 예측 방향 정보)를 생성한다. 일 예에서, 인트라 인코더(622)는 또한 동일한 픽처의 인트라 예측 정보 및 참조 블록에 기초하여 인트라 예측 결과(예를 들어, 예측 블록)를 계산한다.
일반 제어기(621)는 일반 제어 데이터를 결정하고 일반 제어 데이터에 기초하여 비디오 인코더(603)의 다른 구성 요소를 제어하도록 구성된다. 일 예에서, 일반 제어기(621)는 블록의 모드를 결정하고, 모드에 따라 제어 신호를 스위치(626)에 제공한다. 예를 들어, 모드가 인트라 모드인 경우 일반 제어기(621)는 잔여 계산기(623)에서 사용할 인트라 모드 결과를 선택하도록 스위치(626)를 제어하고, 인트라 예측 정보를 선택하고 비트 스트림에 인트라 예측 정보를 포함하도록 엔트로피 인코더(625)를 제어하고; 모드가 인터 모드인 경우, 일반 제어기(621)는 잔여 계산기(623)에서 사용할 인터 예측 결과를 선택하도록 스위치(626)를 제어하고, 인터 예측 정보를 선택하고 인터 예측 정보를 비트 스트림에 포함하도록 엔트로피 인코더(625)를 제어한다.
잔여 계산기(623)는 수신된 블록과 인트라 인코더(622) 또는 인터 인코더(630)로부터 선택된 예측 결과 간의 차이(잔여 데이터)를 계산하도록 구성된다. 잔여 인코더(624)는 잔여 데이터에 기초하여 동작하여 잔여 데이터를 인코딩하여 변환 계수를 생성하도록 구성된다. 예에서, 잔여 인코더(624)는 잔여 데이터를 공간 도메인에서 주파수 도메인으로 변환하고 변환 계수를 생성하도록 구성된다. 변환 계수는 양자화된 변환 계수를 얻기 위해 양자화 처리를 거친다. 다양한 실시예에서, 비디오 인코더(603)는 또한 잔여 디코더(628)를 포함한다. 잔여 디코더(628)는 역변환을 수행하고 디코딩된 잔여 데이터를 생성하도록 구성된다. 디코딩된 잔여 데이터는 인트라 인코더(622) 및 인터 인코더(630)에 의해 적절하게 사용될 수 있다. 예를 들어, 인터 인코더(630)는 디코딩된 잔여 데이터 및 인터 예측 정보에 기초하여 디코딩된 블록을 생성할 수 있고, 인트라 인코더(622)는 디코딩된 잔여 데이터 및 인트라 예측 정보에 기초하여 디코딩된 블록을 생성할 수 있다. 디코딩된 블록은 디코딩된 픽처를 생성하도록 적절하게 처리되고 디코딩된 픽처는 메모리 회로(도시되지 않음)에서 버퍼링될 수 있고 일부 예들에서 참조 픽처로서 사용될 수 있다.
엔트로피 인코더(625)는 인코딩된 블록을 포함하도록 비트 스트림을 포맷하도록 구성된다. 엔트로피 인코더(625)는 HEVC 표준과 같은 적합한 표준에 따라 다양한 정보를 포함하도록 구성된다. 일 예에서, 엔트로피 인코더(625)는 일반 제어 데이터, 선택된 예측 정보(예를 들어, 인트라 예측 정보 또는 인터 예측 정보), 잔여 정보 및 기타 적절한 정보를 비트 스트림에 포함하도록 구성된다. 개시된 주제에 따르면, 인터 모드 또는 양방향 예측 모드의 병합 서브 모드에서 블록을 코딩할 때, 잔여 정보가 없음을 유의한다.
도 7은 본 개시의 다른 실시예에 따른 비디오 디코더(710)의 다이어그램을 도시한다. 비디오 디코더(710)는 코딩된 비디오 시퀀스의 일부인 코딩된 화상을 수신하고, 코딩된 화상을 디코딩하여 재구성된 화상을 생성하도록 구성된다. 일 예에서, 비디오 디코더(710)는 도 3의 예에서의 비디오 디코더(310) 대신에 사용된다.
도 7의 예에서, 비디오 디코더(710)는 다음과 같이 함께 연결된 엔트로피 디코더(771), 인터 디코더(780), 잔여 디코더(773), 재구성 모듈(774) 및 인트라 디코더(772)를 포함한다.
엔트로피 디코더(771)는 코딩된 픽처로부터 코딩된 픽처가 구성되는 신택스 요소를 나타내는 특정 심볼을 재구성하도록 구성될 수 있다. 이러한 심볼은 예를 들어 블록이 코딩되는 모드(예를 들어, 인트라 모드, 인터 모드, 이중 예측 모드, 병합 서브 모드 또는 다른 서브 모드에서 후자의 두 가지), 특정 샘플을 식별할 수 있는 예측 정보(예를 들어, 인트라 예측 정보 또는 인터 예측 정보) 또는 인트라 디코더(772) 또는 인터 디코더(780)에 의한 예측에 각각 사용되는 메타 데이터, 예를 들어 양자화된 변환 계수 형태의 잔여 정보 등을 포함할 수 있다. 일 예에서, 예측 모드가 인터 또는 이중 예측 모드인 경우, 인터 예측 정보는 인터 디코더(780)에 제공되고; 예측 유형이 인트라 예측 유형인 경우, 인트라 예측 정보는 인트라 디코더(772)에 제공된다. 잔여 정보는 역 양자화될 수 있으며 잔여 디코더(773)에 제공된다.
인터 디코더(780)는 인터 예측 정보를 수신하고 인터 예측 정보에 기초하여 인터 예측 결과를 생성하도록 구성된다.
인트라 디코더(772)는 인트라 예측 정보를 수신하고 인트라 예측 정보에 기초하여 예측 결과를 생성하도록 구성된다.
잔여 디코더(773)는 역 양자화를 수행하여 역 양자화된 변환 계수를 추출하고 역 양자화된 변환 계수를 처리하여 주파수 도메인에서 공간 도메인으로 잔여를 변환하도록 구성된다. 잔여 디코더(773)는 또한 특정 제어 정보(QP(Quantizer Parameter)를 포함)를 요구할 수 있으며, 해당 정보는 엔트로피 디코더(771)에 의해 제공될 수 있다(이 정보는 저용량 제어 정보일 수 있을 뿐이므로 데이터 경로는 도시되지 않는다).
재구성 모듈(774)은 공간 영역에서 잔여 디코더(773)에 의해 출력된 잔여 및 예측 결과(경우에 따라 인터 또는 인트라 예측 모듈에 의해 출력됨)를 결합하도록 구성된다. 재구성된 픽처의 일부일 수 있는 재구성된 블록을 형성하고, 재구성된 비디오의 일부일 수 있다. 디 블로킹 동작 등과 같은 다른 적절한 동작이 시각적 품질을 향상시키기 위해 수행될 수 있다는 점에 유의한다.
비디오 인코더(303), (503) 및 (603) 및 비디오 디코더(310), (410) 및 (710)은 임의의 적절한 기술을 사용하여 구현될 수 있다는 점에 유의한다. 일 실시예에서, 비디오 인코더(303), (503) 및 (603) 및 비디오 디코더(310), (410) 및 (710)은 하나 이상의 집적 회로를 사용하여 구현될 수 있다. 다른 실시예에서, 비디오 인코더(303), (503), (503) 및 비디오 디코더(310), (410) 및 (710)은 소프트웨어 명령을 실행하는 하나 이상의 프로세서를 사용하여 구현될 수 있다.
일반적으로 모션 보상은 블록 수준에서 수행할 수 있다. 즉, 블록은 모션 보상을 수행하기 위한 처리 단위이며 블록 내의 모든 픽셀은 동일한 모션 정보를 사용하여 모션 보상을 수행한다.
도 8a는 본 개시의 일 실시예에 따른, 양방향 매칭(800)으로 지칭되는 블록 레벨 모션 보상 방법을 도시한다. 양방향 매칭(800)은 두 개의 서로 다른 참조 픽처 Ref0(802) 및 Ref1(803)에서 현재 블록(801)의 모션 궤적을 따라 두 블록 간의 클로젯 매칭(closet match)을 찾아내어 현재 픽처(801) 내의 현재 블록(811)의 모션 정보를 도출하는 데 사용된다. 연속 모션 궤적을 가정하면 두 참조 블록(812) 및 (813)을 가리키는 모션 벡터 MV0 및 MV1은 현재 픽처(801)와 두 개의 참조 픽처(802) 및 (803) 간의 시간적 거리, 즉 TD0 및 TD1에 비례할 수 있다. 일부 실시예에서, 현재 픽처(801)가 2개의 참조 픽처(802) 및 (803) 사이에 시간적으로 있고 현재 픽처로부터 2개의 참조 픽처까지의 시간적 거리가 동일한 경우(즉, TD0=TD1), 양방향 매칭은 미러 기반 양방향 모션 벡터 예측이 된다.
도 8b는 본 개시의 일 실시예에 따른 템플릿 매칭(850)으로 지칭되는 또 다른 블록 레벨 모션 보상 방법을 도시한다. 템플릿 매칭(850)은 현재 픽처(851)에서 현재 블록(861)의 상위 인접 블록(862) 및/또는 좌측 인접 블록(862)과 같은 템플릿 간의 클로젯 매칭 및 참조 픽처(852)에서 템플릿과 동일한 크기의 블록을 찾아내어 현재 픽처(851)에서 현재 블록(861)의 모션 정보를 유도하는 데 사용된다.
경우에 따라 블록 내의 다른 위치에 있는 픽셀은 동작 보상을 수행하기 위해 다른 동작 정보를 가질 수 있다. 이러한 모션 보상 방법을 서브-블록 레벨 모션 보상 방법이라고 하며, 블록의 모션 보상을 위한 실제 처리 단위는 블록 자체보다 작을 수 있다. 다시 말해서, 블록은 모션 보상을 수행하기 위해 서로 다른 모션 벡터와 같은 서로 다른 모션 정보를 사용할 수 있는 다수의 서브-블록으로 분할될 수 있다. 예를 들어, 블록은 MxN 서브-블록으로 분할될 수 있으며, 여기서 M은 행 수이고 N은 열 수이다.
도 9는 본 개시의 일 실시예에 따른 방향성 서브-블록 레벨 모션 벡터 예측 방법을 나타낸다. 방향성 서브-블록 레벨 모션 벡터 예측 모드에서, 현재 블록의 서브-블록은 주어진 방향에 대해 서브-블록의 주변 참조 블록의 모션 정보를 이용하여 서브-블록의 모션 벡터를 예측한다. 도 9는 수직 방향으로 이러한 모션 벡터 예측을 보여준다. 도 9에 예시된 예에서, 현재 블록(901)은 4x4(M=4 및 N=4) 서브-블록 C11~C44로 분할되고, 현재 블록(901)의 상위 인접 블록은 현재 블록(901)의 참조 블록으로 사용될 수 있는 서브-블록 A01~A04이다. 이 예측 방법에서 C11~C14, C21~C24, C31~C34, C41~C44는 각각 위의 인접한 서브-블록 A01, A02, A03, A04에서 예측된다. 예를 들어, C21~C24는 위의 인접한 서브-블록 A02에 의해 예측된다.
서브-블록 레벨 모션 벡터 예측 방법 중 일부는 주변 인접 블록 및 그 모션 정보의 가용성에 기초할 수 있다. 이러한 모션 벡터 예측 방법의 경우 이러한 인접 항목 중 하나를 사용할 수 없거나 존재하지 않거나(예를 들어, 픽처 경계 또는 슬라이스 경계) 아직 코딩되지 않았거나 유효한 모션 정보 세트가 없는 경우(예를 들어, 인터 모드에서 코딩됨) 현재 블록의 모션 보정이 제대로 작동하지 않는다. 이러한 서브-블록 레벨 모션 벡터 예측 방법이 더 많은 조건에서 작동하도록 하기 위해, 주변 인접 블록으로부터 유용하고 상당히 유리한 모션 정보를 생성하는 방법이 아래에 설명될 것이다.
일부 실시예에 따르면, 현재 블록의 서브-블록에 대해, 서브-블록의 모션 벡터 예측기를 연관시키는 참조 픽처는 현재 블록의 다른 서브-블록의 모션 벡터 예측기를 연관시키는 참조 픽처와 다를 수 있다. 블록. 또한, 현재 블록을 예측하기 위해 공통 참조 픽처(또는 양방향 예측의 경우 한 쌍의 공통 참조 픽처, 픽처 쌍이라고 함)가 사용된다. 따라서, 현재 블록의 서브-블록의 모션 벡터가 공통 참조 픽처(또는 픽처 쌍)를 가리 키도록 스케일링 프로세스가 수행된다. 또한, 인접 서브-블록으로부터의 모든 모션 벡터 예측기는 현재 블록에 대한 공통 참조 픽처(또는 픽처 쌍)로 스케일링된다.
일 실시예에서, 목록 0의 제1 참조 픽처가 현재 블록에 대한 공통 참조 픽처로 선택된다. 또한, 양방향 예측의 경우, 목록 1의 제2 참조 픽처가 제1 참조 픽처와 함께 한 쌍의 공통 참조 픽처로 선택될 수 있다.
일 실시예에서, (슬라이스 헤더, 픽처 파라미터 세트 또는 시퀀스 파라미터 세트에서와 같은) 고레벨 플래그는 어느 참조 픽처(또는 픽처 쌍)가 스케일링 프로세스를 위한 공통 참조 픽처(또는 픽처 쌍)인지를 나타내는 데 사용된다.
일 실시예에서, 현재 블록에 대한 시간적 모션 벡터 예측기(TMVP)를 도출하기 위해 지정된 공동 위치 픽처(co-located picture)(또는 픽처 쌍)가 공통 참조 픽처(또는 픽처 쌍)로 사용된다.
양방향 예측 사례에서 서브-블록은 일반적으로 두 개의 모션 벡터로 예측된다. 일 실시예에서, 이들 2개의 모션 벡터는 공통 참조 픽처의 상이한 목록에 의해 예측되고, 단지 하나의 공통 참조 픽처가 지정되는 경우, 상이한 목록의 지정되지 않은 공통 참조 픽처에 의해 예측된 모션 벡터는 지정된 공통 참조 픽처에 의해 예측된 모션 벡터가 유지되는 동안 폐기될 수 있다.
일부 실시예들에 따르면, 적어도 하나의 상위 인접 참조 서브-블록을 갖는 현재 블록에 대해, 적어도 하나의 상위 인접 참조 서브-블록 중 하나의 모션 정보가 이용 가능하지 않으면, 상기 적어도 하나의 인접 서브-블록은 적어도 하나의 상위 인접 참조 서브-블록 중 하나는 현재 블록의 상위 인접 참조 서브-블록으로서 적어도 하나의 서브-블록 중 하나를 대체하는 데 사용될 것이다.
도 9의 예를 참조하면, 서브-블록 A0X(X=1, 2, 3 또는 4)는 현재 블록(901)의 상위 인접 참조 서브-블록이다. 서브-블록 A0X의 일부 인접 서브-블록은 좌측 인접 서브-블록 A0(X-1), 우측 인접 서브-블록 A0(X+1), 및 상위 인접 서브-블록 A(-1)X이고, 여기서(-1)은 서브-블록 A0X의 위 위치를 나타낸다.
일 실시예에서, 서브-블록 A0X의 모션 정보가 이용 가능하지 않지만 서브-블록 A0X의 인접 서브-블록의 모션 정보가 이용 가능한 경우, 서브-블록 A0X의 인접 서브-블록은 서브-블록 A0X를 현재 블록(901)의 상위 인접 참조 서브-블록으로 대체하여 사용될 수 있다. 예를 들어, 서브-블록 A0X의 좌측 인접 서브-블록 A0(X-1)의 모션 정보가 이용 가능하다면, 서브-블록 A0(X-1)은 현재 블록(901)의 상위 인접 참조 서브-블록으로 서브-블록 A0X를 대체할 수 있다. 다른 예에서, 서브-블록 A0X의 우측 인접 서브-블록 A0(X+1)의 모션 정보가 이용 가능하다면, 서브-블록 A0(X+1)은 서브-블록 A0(X)를 현재 블록(901)의 상위 인접 참조 서브-블록으로서 대체할 수 있다. 제3 예에서, 서브-블록 A0X의 상위 인접 서브-블록 A(-1)X의 모션 정보가 이용 가능하다면, 서브-블록 A(-1)X는 서브-블록 A0(X)를 현재 블록(901)의 상위 인접 참조 서브-블록으로서 대체할 수 있다.
제4 예에서, 서브-블록 A0(X-1), A0(X+1), A(-1)X의 모션 정보를 가중 결합하여 서브-블록 A0X에 대한 모션 정보로 사용할 수 있다. 가중치는 이러한 인접 서브-블록의 모션 정보의 가용성에 따라 달라질 수 있다. 예를 들어 가중치는 사용 가능한 모션 정보가 있는 서브-블록 간에 균등하게 분산될 수 있다. 또한, 참조 서브-블록 A0X의 모션 정보를 이용할 수 없는 일부 예들에서 서브-블록 A00의 모션 벡터가 사용될 수 있다.
일부 실시예들에 따르면, 적어도 하나의 좌측 인접 참조 서브-블록을 갖는 현재 블록에 대해, 적어도 하나의 좌측 인접 참조 서브-블록 중 하나의 모션 정보가 이용 가능하지 않다면, 적어도 하나의 좌측 인접 참조 서브-블록 중 하나의 인접 서브-블록은 현재 블록의 좌측 인접 참조 서브-블록으로서 적어도 하나의 서브-블록 중 하나를 대체하는데 사용될 것이다.
도 9의 예를 여전히 참조하면, 서브-블록 LX0(X=1, 2, 3 또는 4)는 현재 블록(901)의 좌측 인접 참조 서브-블록이다. 서브-블록 LX0의 일부 인접 서브-블록은 상위 인접 서브-블록 L(X-1)0, 하단 인접 서브-블록 L(X+1)0 및 좌측 인접 서브-블록 LX(-1)이고, 여기서 -1은 서브-블록 LX0의 좌측 위치를 나타낸다.
일 실시예에서, 서브-블록 LX0의 모션 정보가 이용 가능하지 않지만 서브-블록 LX0의 인접 서브-블록의 모션 정보가 이용 가능하다면, 서브-블록 LX0의 인접 서브-블록은 현재 블록(901)의 좌측 인접 참조 서브-블록으로서 서브-블록 LX0를 대체하는 데 사용될 수 있다. 예를 들어, 서브-블록 LX0의 상기 인접 서브-블록 L(X-1)0의 모션 정보가 이용 가능하다면, 서브-블록 L(X-1)0은 현재 블록의 좌측 인접 참조 서브-블록(901)으로서 서브-블록 LX0를 대체할 수 있다. 다른 예에서, 서브-블록 LX0의 하단 인접 서브-블록 L(X+1)0의 모션 정보가 이용 가능하다면, 서브-블록 L(X+1)0은 서브-블록 L(X)0을 현재 블록(901)의 좌측 인접 참조 서브-블록으로 대체할 수 있다. 제3 예에서, 서브-블록 LX0의 좌측 인접 서브-블록 LX(-1)의 모션 정보가 이용 가능하다면, 서브-블록 LX(-1)은 서브-블록 L(X)0을 현재 블록(901)의 좌측 인접 참조 서브-블록으로서 대체할 수 있다. 제4 예에서, 서브-블록 L(X-1)0, L(X+1)0, LX(-1)의 모션 정보는 가중 결합되어 서브-블록의 모션 정보로 사용될 수 있다. LX0. 가중치는 이러한 인접 서브-블록의 모션 정보의 가용성에 따라 달라질 수 있다. 예를 들어 가중치는 사용 가능한 모션 정보가 있는 서브-블록 간에 균등하게 분산될 수 있다. 또한, 참조 서브-블록 LX0의 모션 정보를 이용할 수 없는 일부 예들에서는 서브-블록 A00의 모션 벡터가 사용될 수 있다.
일부 실시예들에 따르면, 인접 서브-블록의 모션 정보의 가용성을 확인하는 순서는 현재 블록의 상위 인접 참조 서브-블록에 있어서 최 좌측 인접 서브-블록에서 최 우측 인접 서브-블록까지일 수 있고, 그 반대의 경우도 마찬가지이다. 도 9에 예시된 예를 참조하면, 일 실시예에서 현재 블록(901)의 상위 인접 참조 서브-블록(A01~A04)에 있어서, 서브-블록 A00의 모션 정보를 먼저 확인한 다음, 서브-블록 A01, A02 등을 확인할 수 있으며, 필요한 모든 서브-블록의 모션 정보 가용성이 확인될 때까지 계속 확인한다. 다른 실시예에서, 서브-블록 A0(N+1)(도 9의 예에서 N=4)의 모션 정보를 먼저 확인한 다음, 서브-블록 A0(N), A0(N-1)을 확인하며, 필요한 모든 서브-블록의 모션 정보 가용성이 확인될 때까지 계속 확인한다.
일부 실시예들에 따르면, 인접 서브-블록의 모션 정보의 가용성을 확인하는 순서는 현재 블록의 좌측 인접 참조 서브-블록에 있어서, 상위 인접 서브-블록에서 하위 인접 서브-블록까지일 수 있고 그 반대의 경우도 마찬가지이다. 도 9를 여전히 참조하면, 일 실시예에서, 현재 블록(901)의 좌측 인접 참조 서브-블록(L10~L40)에 있어서, 서브-블록 A00의 모션 정보를 먼저 확인한 다음, 서브-블록 L10, L20 등을 확인할 수 있고, 필요한 모든 서브-블록의 모션 정보 가용성이 확인될 때까지 계속 확인한다. 다른 실시예에서, 서브-블록 L(M+1) 0(도 9의 예에서 M=4)의 모션 정보를 먼저 확인한 다음, 서브-블록 L(M)0, L(M-1)0 등을 확인하고, 필요한 모든 서브-블록의 모션 정보 가용 여부를 확인할 때까지 확인한다.
도 10은 본 개시의 일 실시예에 따른 예시적인 평면 모션 예측 방법을 도시한다. 평면 모션 예측 방법에서 각각의 서브-블록의 모션 벡터는 평면 인트라 예측 모드와 유사한 방식으로 도출된다.
첫째, 현재 블록(1001) 외부의 우측 하단(BR) 코너 서브-블록(1002)(별도 언급이 없는 한 BR 서브-블록이라고 함)의 모션 벡터를 공동 배치된 참조 픽처에서 BR 서브-블록(1002)의 공동 배치된 서브-블록의 시간적 모션 벡터 예측기(TMVP)를 이용하여 예측한다.
둘째, 현재 블록(1001) 외부에 있는 BR 서브-블록(1002)의 모션 벡터와 우측 상단(AR) 코너 서브-블록(1004)(AR 서브-블록이라고 함)의 모션 벡터의 가중 평균을 사용하여 외부 우측 열 서브-블록 R(W, y)(1003)의 모션 벡터를 생성한다. 유사하게, 현재 블록(1001) 외부에 있는 BR 서브-블록(1002)의 모션 벡터와 하단 좌측(BL) 코너 서브-블록(1006)(BL 서브-블록이라고 함)의 모션 벡터의 가중 평균을 사용하여 외부 하단 행 서브-블록 B(x, H)(1005)의 모션 벡터를 생성한다.
서브-블록 B(x, H)에 대한 모션 벡터가 생성된 후, 현재 블록(1001)의 현재 서브-블록 C(x, y)(1010)에 대한 모션 벡터 예측은 2개의 모션 벡터 예측기에 의해 형성된다. 하나의 모션 벡터 예측기는 서브-블록 R(W, y)(1003)의 모션 벡터와 외부 좌측 열 서브-블록 L(-1, y)(1007)의 모션 벡터의 가중 평균을 사용하여 형성된 수평 예측기이다. 다른 모션 벡터 예측기는 서브-블록 B(x, H)(1005)의 모션 벡터와 외부 상위 행 서브-블록 A(x, -1)(1008)의 모션 벡터의 가중 평균을 사용하여 형성된 수직 예측기이다. 현재 서브-블록 C(x, y)(1010)의 모션 벡터 예측은 수평 예측기와 수직 예측기의 가중 평균에 의해 이후 형성된다.
평면 모션 벡터 예측 방법에 따라 주변 모션 벡터의 가중치가 다를 수 있지만, 현재 블록의 BR 서브-블록의 모션 정보를 사용하는 방법은 현재 블록의 BR 서브-블록의 모션 정보에 따라 모션 벡터 예측을 수행하는 방법에서 일반적이다. 이와 관련하여, BR 서브-블록의 모션 정보가 결정되면, 평면 모션 벡터 예측 방법이 주어지는 경우 현재 블록의 다른 서브-블록의 예측 변수를 결정할 수 있다. 따라서, 현재 블록을 구성하기 위해 평면 모션 벡터 예측 방법을 사용하는 경우, 평면 모션 벡터 예측 모드의 사용에 응답하여 현재 블록의 우측 하단(BR) 코너에 대한 적어도 하나의 시간적 모션 벡터 예측기(TMVP) 후보를 결정하는 몇 가지 방법이 이하에서 설명된다.
도 11은 본 개시의 일 실시예에 따라 현재 블록(1101)의 상이한 위치로부터 현재 블록(1101)의 BR 서브-블록의 TMVP를 결정하기 위한 예시적인 다이어그램을 도시한다. BR 서브-블록 C0(1102)은 현재 블록(1101) 외부의 우측 하단 코너에 있다. BR 코너 위치는 현재 블록(1101) 내부에 있는 C2 위치에 있을 수도 있다. 서브-블록 C2(1103)가 BR 서브-블록으로 선택되면, AR 및 BL 서브-블록(1105) 및 (1106)은 선택적으로 하나의 서브-블록에 대해 안쪽으로 이동할 수 있다. 즉, AR 서브-블록(1105)은 서브-블록 거리만큼 좌측으로 이동하고 BL 서브-블록(1106)은 서브-블록 거리만큼 위로 이동한다. 나머지 서브-블록 기반 평면 모션 벡터 유도는 그에 따라 수행될 수 있다. 예를 들어, 현재 블록(1101)의 외부 우측 열 위치는 현재 블록(1101)의 맨 우측 열 위치가 된다. 따라서, 단순화된 설명을 위해, 달리 언급되지 않는 한, BR 서브-블록 C0(1102) 및 C2(1103) 중 하나를 나타내기 위해 이하에서 BR 코너가 사용된다.
일 실시예에서, BR 코너의 TMVP는 참조 픽처에서 BR 서브-블록의 공존 블록을 사용함으로써 결정될 수 있다. 참조 픽처의 공존 블록은 현재 코딩된 픽처의 BR 코너와 동일한 위치에 있다. 또한 시그널링된 MVD를 TMVP에 추가하여 BR 코너의 최종 모션 벡터를 형성할 수 있도록 모션 벡터 차이(MVD)를 시그널링한다. BR 코너의 최종 모션 벡터가 결정되면, 평면 모션 벡터 예측 방법을 이용하여 현재 블록(1101)의 각각의 서브-블록의 모션 벡터를 도출할 수 있다.
다른 실시예에서, BR 코너의 모션 벡터를 예측하기 위한 후보 목록을 형성하기 위해 하나 이상의 가능한 TMVP가 사용된다. 후보 목록의 인덱스는 BR 코너에 대한 모션 벡터 예측기를 선택하기 위해 시그널링된다. 또한, 인덱스로 식별되는 선택된 TMVP에 그 시그널링된 MVD를 더하여 BR 코너의 최종 모션 벡터를 형성할 수 있도록 MVD를 시그널링할 수 있다.
후보 목록을 형성하기 위해, 몇몇 가능한 TMVP가 아래에 설명된다.
예에서, 하나의 가능한 TMVP는 현재 블록(1101)의 중앙 위치에 인접한 BR 위치에 있는 서브-블록 C1(1104)(공동 위치 픽처에서)의 공동 위치 블록을 사용하여 형성될 수 있다.
다른 예에서, 하나의 가능한 TMVP는 현재 블록(1101) 내부의 BR 코너에 있는 서브-블록 C2(1103)(공동 위치 픽처에서)의 공동 위치 블록을 사용하여 형성될 수 있다.
다른 예에서, BR 코너에 대한 다른 가능한 TMVP는 현재 블록(1101)과 관련된 다른 위치, 예를 들어, 서브-블록 C1(1104), AR(1105) 및 BR(1106)의 서브-블록의 TMVP를 사용하여, 이러한 서브-블록의 모션 정보가 사용 가능한 경우에 형성될 수 있다.
또한, 일부 실시예에서, AR(1105) 위치 및 BL(1106) 위치에서 서브-블록의 모션 벡터 중 적어도 하나가 사용 가능한 경우, 현재 블록(1101)의 AR(1105) 위치 및 BL(1106) 위치에서 서브-블록의 모션 벡터의 가중 평균은 BR 코너에 대한 모션 벡터 예측기로 사용될 수 있다. 하나의 모션 벡터를 사용할 수 없는 경우 사용 가능한 벡터를 BR 코너에 대한 예측기로 사용할 수 있다. 둘 다 사용할 수 있지만 두 개의 서브-블록 AR(1105) 및 BL(1106)의 참조 픽처 중 적어도 하나가 현재 블록(1101)을 예측하는 데 사용되는 참조 픽처와 다를 때, 다른 참조 픽처를 가진 모션 벡터(들)가 그것(또는 그것들)을 모션 벡터 예측기로 사용하기 전에 현재 블록의 참조 픽처로 스케일링되도록 스케일링 프로세스가 수행된다. 현재 슬라이스가 두 목록에서 참조 픽처가 있는 B 슬라이스인 경우 BR 코너에 대한 추정된 모션 벡터 예측기는 양방향 검색 또는 디코더 측 모션 벡터 개선 검색(decoder-side motion vector refinement search)을 수행하기 위한 시작점이 될 수 있다. 이러한 검색의 출력은 BR 코너에 대한 최종 모션 벡터 예측기로 사용할 수 있다.
MVD는 항상 0일 수 있으므로 위의 예에서는 신호가 표시되지 않는다. 또한 후보목록의 후보 순서를 미리 정할 수 있다. 예를 들어, 후보 순서는 서브-블록의 위치에 의해 미리 결정될 수 있다. 이 경우, 서브-블록 C0(1102)의 TMVP 가용성을 먼저 확인한 다음 서브-블록 C2(1103)의 TMVP 가용성을 확인한 후 서브-블록 C1(1104)의 TMVP를 확인할 수 있다. 이러한 모션 벡터 예측기로부터의 선택은 제1 이용 가능한 예측기와 같은 미리 결정된 순서에 따라 후보 목록에서 이용 가능한 예측기를 선택함으로써 이루어질 수 있다. 이러한 모션 벡터 예측기로부터의 선택은 사용 가능한 경우 BR 서브-블록 C0(1102)의 TMVP와 같은 미리 선택된 TMVP를 선택하여 이루어질 수도 있다.
일부 실시예에 따르면, 상기 방법은 시그널링된 MVD를 갖는 일종의 고급 모션 벡터 예측 모드로서 사용될 수 있다. 현재 블록이 병합 또는 스킵 모드로 코딩되지 않은 경우, MVD와 함께 평면 모션 벡터 예측 모드의 사용을 나타내기 위해 블록 레벨 플래그가 사용될 수 있다.
일부 실시예에 따르면, 상기 방법은 시그널링된 참조 픽처와 연관될 수 있다. 이와 관련해서, 참조 픽처를 식별하기 위해 예측 방향(L0, L1 또는 양방향 예측)과 각각의 방향에 대한 참조 인덱스가 사용된다. 대안적으로, 현재 슬라이스에 대한 미리 정의된 공동 위치 픽처(co-located picture), 선택된(디폴트에 의해 L0 사용과 같은) 또는 시그널링된 예측 목록과 같이, 디폴트(추론된) 참조 픽처가 사용될 수 있다.
일 실시예에서, 예측 방향 및 참조 픽처가 시그널링되지만 BR 코너에 대한 모션 벡터 예측기가 상이한 참조 픽처를 갖는 경우, BR 코너에 대한 모션 벡터 예측기는 시그널링된 참조 픽처로 스케일링된다. 또한, 상위 인접 서브-블록과 좌측 인접 서브-블록으로부터의 모든 모션 정보도 시그널링된 참조 픽처로 스케일링된다.
다른 실시예에서, 평면 모션 벡터 예측을 사용할 때 예측 방향 및 참조 픽처가 추론되면, BR 코너에 대한 모션 벡터 예측기는 추론된 참조 픽처로 스케일링된다. 또한, 상위 인접 서브-블록 및 좌측 인접 서브-블록으로부터의 모든 모션 정보는 추론된 참조 픽처로 스케일링된다. 이 경우 평면 모션 벡터 예측 방법을 사용하면 예측 방향과 참조 인덱스의 시그널링을 생략할 수 있다.
다른 실시예에서, BR 코너에 대한 모션 벡터 예측기가 두 개의 모션 벡터로 양방향 예측되지만 시그널링되거나 유추된 예측 방향이 단방향이면, 추론된 모션 벡터 예측기의 모션 정보 만 또는 신호 방향이 유지된다.
도 12는 본 개시 내용의 실시예에 따른 예시적인 프로세스(1200)를 개략적으로 설명하는 흐름도를 도시한다. 프로세스(1200)는 재구성 중인 블록에 대한 예측 블록을 생성하기 위해 인트라 모드로 코딩된 블록의 재구성에 사용될 수 있다. 다양한 실시예에서, 프로세스(1200)는 단말 장치(210), (220), (230) 및 (240)의 프로세싱 회로와 같은 프로세싱 회로, 비디오 인코더(303)의 기능을 수행하는 프로세싱 회로, 비디오 디코더(310)의 기능을 수행하는 프로세싱 회로, 비디오 디코더(410)의 기능을 수행하는 프로세싱 회로, 인트라 예측 모듈(452)의 기능을 수행하는 프로세싱 회로, 비디오 인코더(503)의 기능을 수행하는 프로세싱 회로, 예측기(535)의 기능을 수행하는 프로세싱 회로, 인트라 인코더(622)의 기능을 수행하는 프로세싱 회로, 인트라 디코더(772)의 기능을 수행하는 프로세싱 회로 등에 의해 실행된다. 일부 실시예에서, 프로세스(1200)는 소프트웨어 명령어로 구현되고, 따라서 프로세싱 회로가 소프트웨어 명령어를 실행할 때, 프로세싱 회로는 프로세스(1200)를 수행한다.
프로세스는 일반적으로 단계(S1210)에서 시작할 수 있으며, 여기서 프로세스(1200)는 코딩된 비디오 시퀀스의 일부인 현재 코딩된 픽처의 현재 블록에 대한 예측 정보를 디코딩한다. 예측 정보는 현재 블록에 평면 모션 벡터 예측 모드가 사용되는지를 나타낸다. 또한, 현재 블록은 복수의 서브-블록으로 분할된다. 일 실시예에서, 현재 블록에 대한 참조 픽처는 예측 정보에서 시그널링된다. 예측 정보가 현재 블록에 평면 모션 벡터 예측 모드를 사용함을 나타내는 경우, 프로세스(1200)는 단계(S1220)로 진행한다.
프로세스(1200)는 단계(S1220)에 대한 프로세스로서, 여기서 프로세스(1200)는 평면 모션 벡터 예측 모드의 사용에 응답하여 현재 블록의 우측(BR) 코너에 대한 적어도 하나의 시간적 모션 벡터 예측기(TMVP) 후보를 결정한다.
일 실시예에서, BR 코너는 현재 블록의 내부에 있을 수 있다. 다른 실시예에서, BR 코너는 현재 블록의 외부에 있을 수 있다.
일 실시예에서, 예측 정보는 BR 코너에 대한 모션 벡터 차이(MVD)를 포함하고, 프로세스(1200)는 BR 코너의 MVD 및 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 기초하여 최종 모션 벡터를 결정하는 단계를 더 포함한다.
일 실시예에서, BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나의 참조 픽처가 현재 블록의 참조 픽처와 다를 때, 프로세스(1200)는 적어도 하나의 TMVP 중 하나를 스케일링한다. BR 코너에 대한 후보를 현재 블록의 참조 픽처에 추가하여 현재 블록이 BR 코너에 대한 적어도 하나의 TMVP 후보 중 스케일링된 후보에 따라 재구성되도록한다.
일 실시예에서, 적어도 하나의 TMVP 후보는 참조 픽처에서 공동 배치된 블록에 기초하여 결정되는 TMVP 후보를 포함한다. 참조 픽처에서 공존하는 블록은 현재 코딩된 픽처의 BR 코너에 있는 서브-블록과 동일한 위치에 있다.
일 실시예에서, BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 내부에 있고 BR 코너에 인접한 서브-블록에 대한 TMVP 후보를 포함한다.
일 실시예에서, BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 내부에 위치하고 현재 블록의 중심에 인접한 서브-블록을 포함한다.
일 실시예에서, BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 좌측 하단(BL) 인접 서브-블록의 TMVP 후보를 포함한다.
일 실시예에서, BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 우측 상단(AR) 인접 서브-블록의 TMVP 후보를 포함한다.
일 실시예에서, BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 BL 인접 서브-블록의 모션 벡터와 현재 블록의 AR 인접 서브-블록의 모션 벡터의 가중 평균인 TMVP 후보를 포함한다.
일 실시예에서, 프로세스(1200)는 적어도 하나의 TMVP 후보 중 하나를 식별하는 수신된 인덱스에 기초하여 적어도 하나의 TMVP 후보로부터 적어도 하나의 TMVP 후보 중 하나를 선택한다.
일 실시예에서, 프로세스(1200)는 미리 결정된 후보 순서에 기초하여 적어도 하나의 TMVP 후보로부터 적어도 하나의 TMVP 후보 중 하나를 선택한다.
일 실시예에서, 프로세스(1200)는 미리 선택된 TMVP 후보에 기초하여 적어도 하나의 TMVP 후보로부터 적어도 하나의 TMVP 후보 중 하나를 선택한다.
현재 블록의 우측 하단(BR) 코너에 대한 적어도 하나의 시간적 모션 벡터 예측기(TMVP) 후보 중 하나를 결정한 후, 프로세스(1200)는 단계(S1230)로 진행한다.
단계(S1230)에서, 프로세스(1200)는 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 따라 현재 블록의 각각의 서브-블록에 대한 모션 벡터 예측기를 도출하고, 현재 블록의 각각의 서브-블록에 대한 모션 벡터 예측기에 따라 현재 블록을 재구성한다.
현재 블록을 구성한 후 프로세스(1200)가 종료된다.
전술한 기술은 컴퓨터 판독 가능 명령어를 사용하여 컴퓨터 소프트웨어로서 구현될 수 있고 하나 이상의 컴퓨터 판독 가능형 매체에 물리적으로 저장될 수 있다. 예를 들어, 도 13은 개시된 주제의 특정 실시예를 구현하기에 적합한 컴퓨터 시스템(1300)을 도시한다.
컴퓨터 소프트웨어는 임의의 적절한 기계 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있으며, 이는 하나 이상의 컴퓨터 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU) 등에 의해, 직접적으로 또는 해석을 통하거나 마이크로-코드를 통해 실행될 수 있는 명령을 포함하는 코드를 생성하기 위해 어셈블리, 컴파일, 링크 또는 유사한 메커니즘에 종속될 수 있다.
명령은 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트 폰, 게임 장치, 사물 인터넷 장치 등을 포함하는 다양한 유형의 컴퓨터 또는 그 구성 요소에서 실행될 수 있다.
컴퓨터 시스템(1300)에 대한 도 13에 도시된 구성 요소는 본질적으로 예시적이며 본 개시 내용의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 제한도 제안하려는 것이 아니다. 구성 요소의 구성은 컴퓨터 시스템(1300)의 예시적인 실시예에 예시된 구성 요소의 임의의 하나 또는 조합과 관련된 임의의 종속성 또는 요구 사항을 갖는 것으로 해석되어서는 안 된다.
컴퓨터 시스템(1300)은 특정 휴먼 인터페이스 입력 장치를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 장치는 촉각 입력(예: 키 입력, 스와이프, 데이터 글러브 무브먼트), 오디오 입력(예: 음성, 박수), 시각적 입력(예: 제스처), 후각 입력(도시되지 않음)을 통해 한 명 이상의 인간 사용자의 입력에 응답할 수 있다. 휴먼 인터페이스 장치는 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔한 이미지, 정지 이미지 카메라에서 얻은 픽처 이미지), 비디오(예를 들어, 2차원 비디오, 입체 비디오를 포함한 3차원 비디오)와 같이 사람의 의식적 입력과 반드시 직접 관련이 없는 특정 미디어를 캡처하는데도 사용할 수 있다.
입력 휴먼 인터페이스 장치는: 키보드(1301), 마우스(1302), 트랙 패드(1303), 터치 스크린(1310), 데이터-글러브(도시되지 않음), 조이스틱(1305), 마이크(1306), 스캐너(1307), 카메라(1308) 중(단지 각각의 도시된 것 중) 하나 이상을 포함할 수 있다.
컴퓨터 시스템(1300)은 또한 특정 휴먼 인터페이스 출력 장치를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 장치는 예를 들어 촉각 출력, 소리, 빛 및 냄새/미각을 통해 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 장치는 촉각 출력 장치(예를 들어, 터치 스크린(1310), 데이터-글러브(도시되지 않음) 또는 조이스틱(1305), 그러나 입력 장치로서 기능하지 않는 촉각 피드백 장치일 수 있다), 오디오 출력 장치(예: 스피커(1309), 헤드폰(도시되지 않음)), 시각 출력 장치(예를 들어, CRT 화면, LCD 화면, 플라즈마 화면, OLED 화면을 포함하는 화면(1310)), 각각의 스크린은 터치 스크린 입력 기능이 있거나 없으며, 각각의 스크린은 촉각 피드백 기능이 있거나 없으며 - 이 중 일부는 스테레오 그래픽 출력; 가상-현실 안경(도시되지 않음), 홀로그램 디스플레이 및 스모크 탱크(도시되지 않음)) 및 프린터(도시되지 않음)와 같은 수단을 통해 2차원 시각적 출력 또는 3차원 출력을 출력할 수 있다)를 포함할 수 있다.
컴퓨터 시스템(1300)은 또한 사람이 액세스할 수 있는 저장 장치 및 광학 미디어와 같은 관련 미디어를 포함할 수 있으며, 광학 미디어로는 CD/DVD 또는 유사한 미디어(1321)를 가진 CD/DVD ROM/RW(1320), 썸 드라이브(thumb-drive)(1322), 이동식 하드 드라이브 또는 솔리드 스테이트 드라이브(1323), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(도시되지 않음)과 같은 특수 ROM/ASIC/PLD 기반 장치 등을 들 수 있다.
당업자는 또한 현재 개시된 주제와 관련하여 사용되는 용어 "컴퓨터 판독 가능형 매체"가 전송 매체, 반송파 또는 다른 일시적인 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(1300)은 또한 하나 이상의 통신 네트워크에 대한 인터페이스를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등이 될 수 있다. 네트워크의 예로는 이더넷, 무선 LAN, GSM, 3G, 4G, 5G, LTE 등을 포함하는 셀룰러 네트워크, 케이블 TV, 위성 TV 및 지상파 방송을 포함하는 TV 유선 또는 무선 광역 디지털 네트워크와 같은 근거리 통신망이 있다. CANbus 등을 포함하는 TV, 차량 및 산업용. 특정 네트워크에는 일반적으로 특정 범용 데이터 포트 또는 주변 장치 버스(1349)에 연결된 외부 네트워크 인터페이스 어댑터가 필요하다(예를 들어, 컴퓨터 시스템의 USB 포트(1300)). 다른 것들은 일반적으로 아래에 설명된 바와 같이 시스템 버스에 부착하여 컴퓨터 시스템(1300)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템에 대한 이더넷 인터페이스 또는 스마트 폰 컴퓨터 시스템에 대한 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 하나를 사용하여 컴퓨터 시스템(1300)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예를 들어, 방송 TV), 단방향 전송 전용(예를 들어, CANbus에서 특정 CANbus 장치로) 또는 양방향(예를 들어, 로컬 또는 광역을 사용하는 다른 컴퓨터 시스템) 일 수 있다. 디지털 네트워크. 특정 프로토콜 및 프로토콜 스택은 위에서 설명한 대로 각 네트워크 및 네트워크 인터페이스에서 사용할 수 있다.
전술한 휴먼 인터페이스 장치, 휴먼 액세스 가능한 저장 장치 및 네트워크 인터페이스는 컴퓨터 시스템(1300)의 코어(1340)에 부착될 수 있다.
코어(1340)는 하나 이상의 중앙 처리 장치(CPU)(1341), 그래픽 처리 장치(GPU)(1342), FPGA(Field Programmable Gate Areas)(1343) 형태의 특수 프로그램 가능 처리 장치, 하드웨어를 포함할 수 있다. 특정 작업에 대한 가속기(1344) 등. 읽기 전용 메모리(ROM)(1345), 랜덤 액세스 메모리(1346), 내부 비 사용자 액세스 하드 드라이브, SSD 등과 같은 내부 대용량 저장소(1347)와 함께 이러한 장치는 시스템 버스(1348)를 통해 연결될 수 있다. 일부 컴퓨터 시스템에서, 시스템 버스(1348)는 추가 CPU, GPU 등에 의한 확장을 가능하게 하기 위해 하나 이상의 물리적 플러그의 형태로 액세스 가능할 수 있다. 주변 장치는 코어의 시스템 버스(1348)에 직접 연결하거나 주변 장치 버스(1349)를 통해 연결할 수 있다. 주변 버스의 아키텍처에는 PCI, USB 등이 포함된다.
CPU(1341), GPU(1342), FPGA(1343) 및 가속기(1344)는 조합하여 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령을 실행할 수 있다. 이 컴퓨터 코드는 ROM(1345) 또는 RAM(1346)에 저장할 수 있다. 과도기 데이터(Transitional data)는 RAM(1346)에도 저장될 수 있는 반면 영구 데이터는 예를 들어 내부 대용량 저장소(1347)에 저장될 수 있다. 하나 이상의 CPU(1341), GPU(1342), 대용량 저장소(1347), ROM(1345), RAM(1346) 등과 밀접하게 연관될 수 있는 캐시 메모리를 사용하여 모든 메모리 장치에 대한 빠른 저장 및 검색을 활성화 할 수 있다.
컴퓨터 판독 가능형 매체는 다양한 컴퓨터 구현 동작을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구성된 것일 수 있거나, 컴퓨터 소프트웨어 분야의 숙련자에게 잘 알려져 있고 이용 가능한 종류일 수 있다.
예로서 제한 없이, 아키텍처(1300)를 갖는 컴퓨터 시스템, 구체적으로 코어(1340)를 가지는 컴퓨터 시스템은 하나 이상의 감지 가능한 컴퓨터 판독 가능형 매체에 구현된 소프트웨어 실행하는 프로세서(CPU, GPU, FPGA, 가속기 등을 포함)의 결과로 기능을 제공할 수 있다. 이러한 컴퓨터 판독 가능형 매체는 위에서 소개한 사용자 액세스 가능 대용량 저장소와 관련된 미디어일 수 있으며, 코어-내부 대용량 저장소(1347) 또는 ROM(1345)과 같은 비 일시적 특성인 코어(1340)의 특정 저장소일 수 있다. 본 발명의 다양한 실시예를 구현하는 소프트웨어는 이러한 장치에 저장되어 코어(1340)에 의해 실행될 수 있다. 컴퓨터 판독 가능형 매체는 특정 요구에 따라 하나 이상의 메모리 장치 또는 칩을 포함할 수 있다. 소프트웨어는 코어(1340) 및 구체적으로(CPU, GPU, FPGA 등을 포함하는) 그 내부의 프로세서가 RAM(1346)에 저장된 데이터 구조를 정의하는 것을 포함하여 소프트웨어에서 정의한 프로세스에 따라 이러한 데이터 구조를 수정하는 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하게 할 수 있다. 추가로 또는 대안으로, 컴퓨터 시스템은 특정 프로세스를 실행하기 위해 소프트웨어 또는 여기에 설명된 특정 프로세스의 특정 부분 대신에 또는 소프트웨어와 함께 작동할 수 있는 회로(예: 가속기(1344))에 고정되거나 다른 방식으로 구현된 로직의 결과로 기능을 제공할 수 있다. 소프트웨어에 대한 참조는 논리를 포함할 수 있으며 해당되는 경우 그 반대의 경우도 마찬가지이다. 컴퓨터 판독 가능형 매체에 대한 언급은 실행을 위한 소프트웨어를 저장하는 회로(예를 들어, 집적 회로(IC)), 실행을 위한 로직을 구현하는 회로 또는 적절한 경우 둘 다를 포함할 수 있다. 본 개시는 하드웨어 및 소프트웨어의 임의의 적절한 조합을 포함한다.
(1) 디코더에서의 비디오 디코딩 방법은 코딩된 비디오 시퀀스의 일부인 현재 코딩된 픽처의 현재 블록에 대한 예측 정보를 디코딩하는 단계 - 이 예측 정보는 평면 모션 벡터 예측 모드가 현재 블록에 대해 사용되는지를 나타냄 - ; 평면 모션 벡터 예측 모드의 사용에 응답하여, 현재 블록의 우측 하단(bottom-right, BR) 코너에 대한 적어도 하나의 시간적 모션 벡터 예측기(temporal motion vector predictor, TMVP) 후보를 결정하는 단계; 및 BR 코너에 대한 상기 적어도 하나의 TMVP 후보 중 하나에 따라 상기 현재 블록을 재구성하는 단계를 포함한다.
(2) 특징(1)의 방법으로서, 예측 정보에서 현재 블록에 대한 참조 픽처가 시그널링된다.
(3) 특징(2)의 방법으로서, BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나의 참조 픽처가 현재 블록의 참조 픽처와 다르다고 결정하는 것에 응답하여, BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나를 현재 블록의 참조 픽처에 대해 스케일링하는 단계를 포함하며, 여기서 현재 블록은 BR 코너에 대한 적어도 하나의 TMVP 후보 중 스케일링된 후보에 따라 재구성된다.
(4) 특징(2)의 방법으로서, 예측 정보가 BR 코너에 대한 모션 벡터 차이(MVD)를 포함하며, 이 방법은 BR 코너에 대한 MVD 및 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 기초하여 최종 모션 벡터를 결정하는 단계를 더 포함한다.
(5) 특징(2)의 방법으로서, 적어도 하나의 TMVP 후보가 참조 픽처의 동일 위치 블록에 기초하여 결정되는 TMVP 후보를 포함하며, 참조 인트라-픽처의 동일 위치 블록은 현재 코딩된 픽처의 BR 코너에 있는 서브-블록과 동일한 위치에 있다.
(6) 특징(5)의 방법으로서, BR 코너에 있는 서브-블록이 현재 블록 외부에 위치한다.
(7) 특징(5)의 방법으로서, BR 코너에 있는 서브-블록이 현재 블록의 내부에 있다.
(8) 특징(2)의 방법으로서, BR 코너에 대한 적어도 하나의 TMVP 후보는: 현재 블록의 내부에 위치하고 BR 코더에 인접하는 제1 서브-블록 및 현재 블록의 내부에 위치하고 현재 블록의 중심에 인접하는 제2 서브-블록 중 하나에 대한 TMVP 후보; 현재 블록의 좌측 하단(BL) 인접 서브-블록의 TMVP 후보; 및 현재 블록의 우측 상단(AR) 인접 서브-블록의 TMVP 후보 중 적어도 하나를 포함한다.
(9) 특징(2)의 방법으로서, BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 BL 인접 서브-블록의 모션 벡터와 현재 블록의 AR 인접 서브-블록의 모션 벡터의 평균인 TMVP 후보를 포함한다.
(10) 특징(2)의 방법은: 적어도 하나의 TMVP 후보 중 하나를 식별하는 수신된 인덱스, 미리 결정된 후보 순서 및 미리 선택된 TMVP 후보 중 적어도 하나에 기초하여, 후보 목록에서 적어도 하나의 TMVP 후보로부터 적어도 하나의 TMVP 후보 중 하나를 선택하는 단계를 더 포함한다.
(11) 청구항(2)의 방법은: 수신된 인덱스 및 미리 결정된 후보 순서에 기초하여 후보 목록에서 적어도 하나의 TMVP 후보 중 하나를 선택하는 단계를 더 포함하고, 상기 수신된 인덱스는 적어도 하나의 TMVP 후보 중 하나를 식별한다.
(12) 청구항(2)의 방법으로서, 상기 재구성하는 단계는 상기 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 따라 현재 블록의 각각의 서브-블록에 대한 모션 벡터 예측기를 유도하는 단계, 및 현재 블록의 각각의 서브-블록에 대한 모션 벡터 예측기에 따라 현재 블록을 재구성하는 단계를 포함한다.
(13) 프로세싱 회로를 포함하는 장치로서, 상기 프로세싱 회로는 코딩된 비디오 시퀀스의 일부인 현재 코딩된 픽처의 현재 블록에 대한 예측 정보를 디코딩하고 - 상기 예측 정보는 평면 모션 벡터 예측 모드가 현재 블록에 대해 사용되는지를 나타내며, 상기 현재 블록은 복수의 서브-블록으로 분할됨 - ; 평면 모션 벡터 예측 모드의 사용에 응답하여, 현재 블록의 우측 하단(BR) 코너에 대한 적어도 하나의 시간적 모션 벡터 예측기(TMVP) 후보를 결정하고; 그리고 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 따라 현재 블록을 재구성하도록 구성된다.
(14) 특징(13)의 장치로서, 현재 블록에 대한 참조 픽처가 예측 정보에서 시그널링된다.
(15) 특징(14)의 장치로서, 상기 프로세싱 회로는 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나의 참조 픽처가 현재 블록의 참조 픽처와 다르다고 결정하는 것에 응답하여, BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나를 현재 블록의 참조 픽처로 스케일링하도록 추가로 구성되며, 여기서 현재 블록은 BR 코너에 대한 적어도 하나의 TMVP 후보 중 스케일링된 후보에 따라 재구성된다.
(16) 특징(14)의 장치로서, 예측 정보는 BR 코너에 대한 모션 벡터 차이(MVD)를 포함하고, 상기 프로세싱 회로는 BR 코너에 대한 MVD 및 BR 코너에 대한 적어도 하나의 TMVP 후보 중 하나에 기초하여 최종 모션 벡터를 결정하도록 추가로 구성된다.
(17) 특징(14)의 장치로서, 적어도 하나의 TMVP 후보는 참조 픽처의 공동 위치 블록에 기초하여 결정되는 TMVP 후보를 포함하며, 상기 참조 픽처의 공동 위치 블록은 현재 코딩된 픽처의 BR 코너에서 서브-블록과 동일한 위치에 있다.
(18) 특징(14)의 장치로서, BR 코너에 대한 적어도 하나의 TMVP 후보는: 현재 블록의 내부에 위치하고 BR 코너에 인접하는 제1 서브-블록 및 현재 블록의 내부에 위치하고 현재 블록의 중심에 인접하는 제2 서브-블록 중 하나에 대한 TMVP 후보; 현재 블록의 좌측 하단(BL) 인접 서브-블록의 TMVP 후보; 및 현재 블록의 우측 상단(AR) 인접 서브-블록의 TMVP 후보를 포함한다.
(19) 특징(14)의 장치로서, BR 코너에 대한 적어도 하나의 TMVP 후보는 현재 블록의 BL 인접 서브-블록의 모션 벡터와 현재 블록의 AR 인접 서브-블록의 모션 벡터의 가중 평균인 TMVP 후보를 포함한다.
(20) 비 일시적 컴퓨터 판독 가능형 저장 매체로서, 적어도 하나의 프로세서에 의해 실행 가능한 프로그램을 저장하며, 상기 적어도 하나의 프로세서는: 코딩된 비디오 시퀀스의 일부인 현재 코딩된 픽처의 현재 블록에 대한 예측 정보를 디코딩하는 단계 - 상기 예측 정보는 상기 현재 블록에 평면 모션 벡터 예측 모드(planar motion vector prediction mode)가 사용되는지를 나타내며, 상기 현재 블록은 복수의 서브-블록으로 분할됨 - ; 상기 평면 모션 벡터 예측 모드의 사용에 응답하여, 상기 현재 블록의 우측 하단(bottom-right, BR) 코너에 대한 적어도 하나의 시간적 모션 벡터 예측기(temporal motion vector predictor, TMVP) 후보를 결정하는 단계; 및 상기 BR 코너에 대한 상기 적어도 하나의 TMVP 후보 중 하나에 따라 상기 현재 블록을 재구성하는 단계를 수행한다.
부록 A : 약어
JEM : 공동 탐사 모델
VVC : 다양한 비디오 코딩
BMS : 벤치 마크 세트
MV : 모션 벡터
HEVC : 고효율 비디오 코딩
SEI : 추가 개선 정보
VUI : 비디오 사용성 정보
GOP : 픽처 그룹
TU : 변환 유닛
PU : 예측 단위
CTU : 코딩 트리 유닛
CTB : 코딩 트리 블록
PB : 예측 블록
HRD : 가상 참조 디코더
SNR : 신호 잡음 비율
CPU : 중앙 처리 장치
GPU : 그래픽 처리 장치
CRT : 음극선관
LCD : 액정 디스플레이
OLED : 유기 발광 다이오드
CD : 컴팩트 디스크
DVD : 디지털 비디오 디스크
ROM : 읽기 전용 메모리
RAM : 랜덤 액세스 메모리
ASIC : 애플리케이션별 집적 회로
PLD : 프로그래밍 가능 논리 장치
LAN : 근거리 통신망
GSM : 이동 통신을 위한 글로벌 시스템
LTE : 장기적인 진화
CANbus : 컨트롤러 영역 네트워크 버스
USB : 범용 직렬 버스
PCI : 주변 부품 상호 연결
FPGA : 필드 프로그래밍 가능 게이트 영역
SSD : 솔리드 스테이트 드라이브
IC : 집적 회로
CU : 코딩 단위
본 개시가 몇몇 예시적인 실시예를 설명했지만, 본 개시의 범위 내에 속하는 변경, 순열 및 다양한 대체 등가물이 있다. 따라서, 당업자는 본 명세서에 명시적으로 도시되거나 설명되지 않았지만, 본 개시의 원리를 구현하고 따라서 그 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있다는 것을 이해할 것이다.
JEM : 공동 탐사 모델
VVC : 다양한 비디오 코딩
BMS : 벤치 마크 세트
MV : 모션 벡터
HEVC : 고효율 비디오 코딩
SEI : 추가 개선 정보
VUI : 비디오 사용성 정보
GOP : 픽처 그룹
TU : 변환 유닛
PU : 예측 단위
CTU : 코딩 트리 유닛
CTB : 코딩 트리 블록
PB : 예측 블록
HRD : 가상 참조 디코더
SNR : 신호 잡음 비율
CPU : 중앙 처리 장치
GPU : 그래픽 처리 장치
CRT : 음극선관
LCD : 액정 디스플레이
OLED : 유기 발광 다이오드
CD : 컴팩트 디스크
DVD : 디지털 비디오 디스크
ROM : 읽기 전용 메모리
RAM : 랜덤 액세스 메모리
ASIC : 애플리케이션별 집적 회로
PLD : 프로그래밍 가능 논리 장치
LAN : 근거리 통신망
GSM : 이동 통신을 위한 글로벌 시스템
LTE : 장기적인 진화
CANbus : 컨트롤러 영역 네트워크 버스
USB : 범용 직렬 버스
PCI : 주변 부품 상호 연결
FPGA : 필드 프로그래밍 가능 게이트 영역
SSD : 솔리드 스테이트 드라이브
IC : 집적 회로
CU : 코딩 단위
본 개시가 몇몇 예시적인 실시예를 설명했지만, 본 개시의 범위 내에 속하는 변경, 순열 및 다양한 대체 등가물이 있다. 따라서, 당업자는 본 명세서에 명시적으로 도시되거나 설명되지 않았지만, 본 개시의 원리를 구현하고 따라서 그 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있다는 것을 이해할 것이다.
Claims (20)
- 디코더에서의 비디오 디코딩 방법으로서,
코딩된 비디오 시퀀스의 일부인 현재 코딩된 픽처의 현재 블록에 대한 예측 정보를 디코딩하는 단계 - 상기 예측 정보는 상기 현재 블록에 평면 모션 벡터 예측 모드(planar motion vector prediction mode)가 사용되는지를 나타내며, 상기 현재 블록은 복수의 서브 블록으로 분할됨 - ;
상기 평면 모션 벡터 예측 모드의 사용에 응답하여, 상기 현재 블록의 우측 하단(bottom-right, BR) 코너에 대한 적어도 하나의 시간적 모션 벡터 예측기(temporal motion vector predictor, TMVP) 후보를 결정하는 단계 - 상기 현재 블록의 하단 좌측(bottom-left, BL) 인접 서브 블록의 모션 벡터와 상기 현재 블록의 우측 상단(above-right, AR) 인접 서브 블록의 모션 벡터 중 적어도 하나가 사용 가능한 경우, 상기 BR 코너에 대한 상기 적어도 하나의 TMVP 후보는 상기 현재 블록의 BL 인접 서브 블록의 모션 벡터와 상기 현재 블록의 AR 인접 서브 블록의 모션 벡터의 가중 평균인 TMVP 후보를 포함함 - ;
상기 예측 정보가 상기 BR 코너에 대한 모션 벡터 차이(motion vector difference, MVD)를 포함하면, 상기 BR 코너에 대한 상기 적어도 하나의 TMVP 후보 및 상기 BR 코너에 대한 상기 MVD에 기초하여 최종 모션 벡터를 결정하는 단계;
상기 BR 코너의 상기 최종 모션 벡터에 따라 평면 모션 벡터 예측 방법을 이용하여, 상기 현재 블록의 각각의 서브 블록에 대한 모션 벡터 예측기를 유도하는 단계; 및
상기 현재 블록의 각각의 서브 블록에 대한 상기 모션 벡터 예측기에 따라 상기 현재 블록을 재구성하는 단계
를 포함하는 비디오 디코딩 방법. - 제1항에 있어서,
상기 현재 블록의 참조 픽처는 상기 예측 정보에서 시그널링되는, 비디오 디코딩 방법. - 제2항에 있어서,
상기 BR 코너에 대한 상기 적어도 하나의 TMVP 후보 중 하나의 참조 픽처가 상기 현재 블록의 참조 픽처와 다를 때,
상기 BR 코너에 대한 상기 적어도 하나의 TMVP 후보 중 하나를 상기 현재 블록의 참조 픽처로 스케일링하는 단계
를 더 포함하며,
상기 현재 블록은 상기 BR 코너에 대한 상기 적어도 하나의 TMVP 후보 중 스케일링된 후보에 따라 재구성되는, 비디오 디코딩 방법. - 제2항에 있어서,
상기 적어도 하나의 TMVP 후보는 상기 참조 픽처의 공동 위치 블록(co-located block)에 기초하여 결정되는 TMVP 후보를 포함하고, 상기 참조 픽처의 공동 위치 블록은 상기 현재 코딩된 픽처의 상기 BR 코너에 있는 서브 블록과 동일한 위치에 있는, 비디오 디코딩 방법. - 제4항에 있어서,
상기 BR 코너에 있는 서브 블록은 상기 현재 블록의 외부에 위치하는, 비디오 디코딩 방법. - 제4항에 있어서,
상기 BR 코너에 있는 서브 블록은 상기 현재 블록의 내부에 있는, 비디오 디코딩 방법. - 제2항에 있어서,
상기 BR 코너에 대한 상기 적어도 하나의 TMVP 후보는:
상기 현재 블록의 내부에 위치하고 상기 BR 코너에 인접하는 제1 서브 블록과 상기 현재 블록의 내부에 위치하고 상기 현재 블록의 중앙에 인접하는 제2 서브 블록 중 하나에 대한 TMVP 후보;
상기 현재 블록의 BL 인접 서브 블록의 TMVP 후보; 및
상기 현재 블록의 우측 상단 AR 인접 서브 블록의 TMVP 후보
중 하나 이상을 포함하는, 비디오 디코딩 방법. - 제2항에 있어서,
적어도 하나의 TMVP 후보 중 하나를 식별하는 수신된 인덱스;
미리 결정된 후보 순서; 및
미리 선택된 TMVP 후보
중 적어도 하나에 기초하여 후보 목록에서 상기 적어도 하나의 TMVP 후보 중 하나를 선택하는 단계
를 더 포함하는 비디오 디코딩 방법. - 제2항에 있어서,
수신된 인덱스 및 미리 결정된 후보 순서에 기초하여 후보 목록에서 상기 적어도 하나의 TMVP 후보 중 하나를 선택하는 단계
를 더 포함하며,
상기 수신된 인덱스는 상기 적어도 하나의 TMVP 후보 중 하나를 식별하는, 비디오 디코딩 방법. - 컴퓨터 시스템으로서,
메모리, 프로세서 및 상기 메모리에 저장되고 상기 프로세서 상에서 실행될 수 있는 컴퓨터 프로그램을 포함하며,
상기 프로세서는 상기 컴퓨터 프로그램을 실행할 때, 제1항 내지 제9항 중 어느 한 항에 따른 방법을 실행하는, 컴퓨터 시스템. - 비 일시적 컴퓨터 판독 가능형 저장 매체로서,
프로그램을 저장하며, 적어도 하나의 프로세서에 의해 실행될 때, 제1항 내지 제9항 중 어느 한 항에 따른 방법을 수행하는, 비 일시적 컴퓨터 판독 가능형 저장 매체. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862655065P | 2018-04-09 | 2018-04-09 | |
US62/655,065 | 2018-04-09 | ||
US16/362,596 US10728542B2 (en) | 2018-04-09 | 2019-03-22 | Methods and apparatuses for sub-block motion vector prediction |
US16/362,596 | 2019-03-22 | ||
PCT/US2019/025758 WO2019199563A1 (en) | 2018-04-09 | 2019-04-04 | Methods and apparatuses for sub-block motion vector prediction |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200125698A KR20200125698A (ko) | 2020-11-04 |
KR102494087B1 true KR102494087B1 (ko) | 2023-01-30 |
Family
ID=68097559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020207028267A KR102494087B1 (ko) | 2018-04-09 | 2019-04-04 | 서브-블록 모션 벡터 예측을 위한 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10728542B2 (ko) |
EP (1) | EP3753243A4 (ko) |
JP (1) | JP7080434B2 (ko) |
KR (1) | KR102494087B1 (ko) |
CN (1) | CN111316639B (ko) |
WO (1) | WO2019199563A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019091292A1 (en) * | 2017-11-13 | 2019-05-16 | Mediatek Singapore Pte. Ltd. | Method and apparatus for intra prediction fusion in image and video coding |
CN118764640A (zh) * | 2018-04-06 | 2024-10-11 | 艾锐势有限责任公司 | 减少双向时间预测中的运动矢量信息传输 |
WO2019204234A1 (en) * | 2018-04-15 | 2019-10-24 | Arris Enterprises Llc | Unequal weight planar motion vector derivation |
CN113453005B (zh) * | 2020-03-26 | 2022-11-01 | 杭州海康威视数字技术股份有限公司 | 解码方法、编码方法、装置及设备 |
CN112055207B (zh) * | 2020-08-06 | 2024-05-31 | 浙江大华技术股份有限公司 | 时域运动矢量预测方法、设备及存储介质 |
US20240031578A1 (en) * | 2022-07-15 | 2024-01-25 | Tencent America LLC | Decoder-side motion vector refinement and bi-directional optical flow in subblock-based temporal motion vector prediction (sbtmvp) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012115420A2 (ko) * | 2011-02-23 | 2012-08-30 | 엘지전자 주식회사 | 필터링을 이용한 화면 내 예측 방법 및 이러한 방법을 사용하는 장치 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1668111A (zh) | 1997-12-01 | 2005-09-14 | 三星电子株式会社 | 运动向量预测方法 |
US9258519B2 (en) * | 2005-09-27 | 2016-02-09 | Qualcomm Incorporated | Encoder assisted frame rate up conversion using various motion models |
KR101306834B1 (ko) * | 2008-09-22 | 2013-09-10 | 에스케이텔레콤 주식회사 | 인트라 예측 모드의 예측 가능성을 이용한 영상 부호화/복호화 장치 및 방법 |
US8526495B2 (en) | 2010-11-22 | 2013-09-03 | Mediatek Singapore Pte. Ltd. | Apparatus and method of constrained partition size for high efficiency video coding |
US20130294511A1 (en) * | 2011-01-14 | 2013-11-07 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and Devices for Intra Coding of Video |
US9049452B2 (en) | 2011-01-25 | 2015-06-02 | Mediatek Singapore Pte. Ltd. | Method and apparatus for compressing coding unit in high efficiency video coding |
US9148666B2 (en) * | 2011-02-09 | 2015-09-29 | Lg Electronics Inc. | Method for storing motion information and method for inducing temporal motion vector predictor using same |
WO2012134046A2 (ko) * | 2011-04-01 | 2012-10-04 | 주식회사 아이벡스피티홀딩스 | 동영상의 부호화 방법 |
US9083983B2 (en) * | 2011-10-04 | 2015-07-14 | Qualcomm Incorporated | Motion vector predictor candidate clipping removal for video coding |
US20130089136A1 (en) * | 2011-10-10 | 2013-04-11 | Texas Instruments Incorporated | Spatial Intra Prediction Estimation Based on Mode Suppression in Macroblocks of a Video Frame |
JP2013145971A (ja) * | 2012-01-13 | 2013-07-25 | Jvc Kenwood Corp | 画像復号装置、画像復号方法及び画像復号プログラム |
US20130188716A1 (en) * | 2012-01-20 | 2013-07-25 | Qualcomm Incorporated | Temporal motion vector predictor candidate |
US9491458B2 (en) * | 2012-04-12 | 2016-11-08 | Qualcomm Incorporated | Scalable video coding prediction with non-causal information |
JP5970609B2 (ja) * | 2012-07-05 | 2016-08-17 | 聯發科技股▲ふん▼有限公司Mediatek Inc. | 3dビデオ符号化における統一された視差ベクトル導出の方法と装置 |
CN104521236B (zh) * | 2012-07-27 | 2017-10-20 | 寰发股份有限公司 | 三维视频编码或解码方法 |
WO2014107853A1 (en) * | 2013-01-09 | 2014-07-17 | Mediatek Singapore Pte. Ltd. | Methods for disparity vector derivation |
US9667996B2 (en) * | 2013-09-26 | 2017-05-30 | Qualcomm Incorporated | Sub-prediction unit (PU) based temporal motion vector prediction in HEVC and sub-PU design in 3D-HEVC |
US20180249176A1 (en) * | 2015-03-11 | 2018-08-30 | Lg Electronics Inc. | Method and apparatus for encoding and decoding video signal |
WO2017020021A1 (en) * | 2015-07-29 | 2017-02-02 | Vid Scale, Inc. | Scalable high efficiency video coding to high efficiency video coding transcoding |
CN106878752B (zh) * | 2015-12-11 | 2022-03-04 | 北京三星通信技术研究有限公司 | 一种视频编码模式的编解码方法和装置 |
ES2710807B1 (es) * | 2016-03-28 | 2020-03-27 | Kt Corp | Metodo y aparato para procesar senales de video |
EP3442232A4 (en) * | 2016-04-06 | 2019-12-04 | KT Corporation | METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL |
US10230961B2 (en) | 2016-06-03 | 2019-03-12 | Mediatek Inc. | Method and apparatus for template-based intra prediction in image and video coding |
US20170374369A1 (en) | 2016-06-24 | 2017-12-28 | Mediatek Inc. | Methods and Apparatuses of Decoder Side Intra Mode Derivation |
CN106454378B (zh) | 2016-09-07 | 2019-01-29 | 中山大学 | 一种基于变形运动模型的帧率上转换视频编码方法及系统 |
CN116389728A (zh) * | 2016-09-20 | 2023-07-04 | 株式会社Kt | 对视频进行解码和编码的方法以及传输方法 |
CN117336474A (zh) * | 2017-01-02 | 2024-01-02 | Lx 半导体科技有限公司 | 图像编码/解码设备以及发送图像数据的设备 |
WO2018128379A1 (ko) * | 2017-01-03 | 2018-07-12 | 엘지전자(주) | 어파인 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치 |
US20190268611A1 (en) * | 2018-02-26 | 2019-08-29 | Mediatek Inc. | Intelligent Mode Assignment In Video Coding |
US11451816B2 (en) * | 2018-04-24 | 2022-09-20 | Mediatek Inc. | Storage of motion vectors for affine prediction |
-
2019
- 2019-03-22 US US16/362,596 patent/US10728542B2/en active Active
- 2019-04-04 WO PCT/US2019/025758 patent/WO2019199563A1/en unknown
- 2019-04-04 EP EP19786212.1A patent/EP3753243A4/en active Pending
- 2019-04-04 KR KR1020207028267A patent/KR102494087B1/ko active IP Right Grant
- 2019-04-04 CN CN201980005537.8A patent/CN111316639B/zh active Active
- 2019-04-04 JP JP2021502740A patent/JP7080434B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012115420A2 (ko) * | 2011-02-23 | 2012-08-30 | 엘지전자 주식회사 | 필터링을 이용한 화면 내 예측 방법 및 이러한 방법을 사용하는 장치 |
Non-Patent Citations (1)
Title |
---|
Na Zhang, et. al., "Planar Motion Vector Prediction", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, US, 2018.04.03., JVET-J0061-v2.* |
Also Published As
Publication number | Publication date |
---|---|
EP3753243A1 (en) | 2020-12-23 |
US20190313091A1 (en) | 2019-10-10 |
CN111316639B (zh) | 2023-12-15 |
KR20200125698A (ko) | 2020-11-04 |
US10728542B2 (en) | 2020-07-28 |
CN111316639A (zh) | 2020-06-19 |
WO2019199563A1 (en) | 2019-10-17 |
JP7080434B2 (ja) | 2022-06-06 |
EP3753243A4 (en) | 2021-03-31 |
JP2021518093A (ja) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7426465B2 (ja) | 履歴ベースの動きベクトル予測のための方法並びにその装置及びコンピュータプログラム | |
KR102497697B1 (ko) | 병렬 처리로 히스토리 기반 모션 벡터 예측을 위한 방법 및 장치 | |
KR102435382B1 (ko) | 디코더 측 mv 도출 및 리파인먼트를 위한 개선 | |
JP7358487B2 (ja) | イントラ画像ブロック補償のためのデコードされたブロックベクトルの変換 | |
KR102487359B1 (ko) | 비디오 코딩을 위한 방법 및 장치 | |
US11394983B2 (en) | Method and apparatus for merge mode with additional middle candidates in video coding | |
KR102494087B1 (ko) | 서브-블록 모션 벡터 예측을 위한 방법 및 장치 | |
KR102646839B1 (ko) | 비디오 코딩을 위한 방법 및 장치 | |
JP2022508074A (ja) | スキップ及びマージモードのためのマルチ仮説のシグナリング及び動きベクトル差分によるマージの距離オフセットテーブルのシグナリングのための方法及び装置 | |
JP7238150B2 (ja) | イントラピクチャブロック補償のための予測候補リストサイズシグナリングのための方法および装置 | |
KR20210089749A (ko) | 비디오 코딩을 위한 방법 및 장치 | |
JP2022532032A (ja) | ビデオコーディングのための方法及び装置 | |
KR102592192B1 (ko) | 예측자 후보 리스트 크기를 시그널링하는 방법 및 장치 | |
JP2023111920A (ja) | ビデオ符号化における隣接ブロックの利用可能性のための方法および装置 | |
JP7457170B2 (ja) | サブブロックに基づく時間的動きベクトル予測のための方法並びにその機器及びコンピュータプログラム | |
JP2023158110A (ja) | ビデオ復号方法、ビデオ復号装置、コンピュータプログラム、およびビデオ符号化方法 | |
KR102504009B1 (ko) | 비디오 코딩에서 적응적 그리드 크기를 갖는 확장된 병합 모드를 위한 방법 및 장치 | |
KR20230129574A (ko) | 비디오 코딩을 위한 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |