KR20210046777A - 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더 - Google Patents

인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더 Download PDF

Info

Publication number
KR20210046777A
KR20210046777A KR1020217009077A KR20217009077A KR20210046777A KR 20210046777 A KR20210046777 A KR 20210046777A KR 1020217009077 A KR1020217009077 A KR 1020217009077A KR 20217009077 A KR20217009077 A KR 20217009077A KR 20210046777 A KR20210046777 A KR 20210046777A
Authority
KR
South Korea
Prior art keywords
picture block
current
motion information
block
inter prediction
Prior art date
Application number
KR1020217009077A
Other languages
English (en)
Other versions
KR102566569B1 (ko
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 KR20210046777A publication Critical patent/KR20210046777A/ko
Application granted granted Critical
Publication of KR102566569B1 publication Critical patent/KR102566569B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

본 출원은 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더를 제공한다. 이 방법은, 현재 픽처 블록의 M개의 이웃 위치가 제각기 위치하는 M개의 픽처 블록으로부터 N개의 타겟 픽처 블록을 결정하는 단계 - 상기 N개의 타겟 픽처 블록 중 임의의 두 개는 상이하고, M 및 N은 모두 양의 정수이며, M은 N보다 크거나 같음 - 와, N개의 타겟 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보를 결정하고, 현재 픽처 블록의 후보 모션 정보를 상기 현재 픽처 블록의 모션 정보 후보 리스트에 추가하는 단계와, 모션 정보 후보 리스트에 기초하여 현재 픽처 블록에 대해 인터 예측을 수행하는 단계를 포함한다. 본 출원에서, 모션 정보 후보 리스트를 획득하는 동안 비교 동작이 감소되어, 인터 예측 효율이 향상될 수 있다.

Description

인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더
본 출원은, 2018년 8월 28일 중국특허청에 출원된, 발명의 명칭이 "인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더"인 중국 특허출원번호 제201810990444.2호를 우선권 주장하며, 그 전체가 참조로 본 명세서에 포함된다.
본 출원은 비디오 인코딩 및 디코딩 기술 분야에 관한 것으로, 보다 구체적으로는 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더에 관한 것이다.
디지털 비디오 기능은 디지털 텔레비전, 디지털 생방송 시스템, 무선 방송 시스템, 개인용 디지털 어시스턴트(Personal Digital Assistant: PDA), 랩톱 또는 데스크톱 컴퓨터, 태블릿 컴퓨터, 이북 리더, 디지털 카메라, 디지털 기록 장치, 디지털 미디어 플레이어, 비디오 게임 장치, 비디오 게임 콘솔, 셀룰러 또는 위성 무선 전화(즉, "스마트폰"), 화상 회의 장치, 비디오 스트리밍 장치 등을 포함하는 다양한 장치에 포함될 수 있다. 디지털 비디오 장치는 MPEG-2, MPEG-4, ITU-T H.263 및 ITU-T H.264/MPEG-4 파트 10 어드밴스드 비디오 코딩, 비디오 코딩 표준 H.265/고효율 비디오 코딩(high efficiency video coding: HEVC) 표준 및 이들 표준의 확장에 정의된 표준에 설명된 비디오 압축 기술과 같은 비디오 압축 기술을 구현한다. 비디오 장치는 이러한 비디오 압축 기술을 구현함으로써 디지털 비디오 정보를 보다 효율적으로 송신, 수신, 인코딩, 디코딩 및/또는 저장할 수 있다.
비디오 압축 기술은 비디오 시퀀스에서 고유의 중복성을 감소 또는 제거하기 위해 공간(화면 내) 예측 및/또는 시간(화면 간) 예측을 수행하는 데 사용된다. 블록 기반 비디오 코딩에서, 비디오 슬라이스(즉, 비디오 프레임 또는 비디오 프레임의 부분)는 픽처 블록들로 분할될 수 있고, 픽처 블록은 트리 블록, 코딩 유닛(CU), 및/또는 코딩 노드라고도 한다. 픽처의 인트라코딩될(I) 슬라이스 내의 픽처 블록은 동일 픽처의 이웃 블록 내의 참조 샘플에 기초하여 공간 예측을 통해 코딩된다. 픽처의 인터코딩될(P 또는 B) 슬라이스 내의 픽처 블록의 경우, 동일 픽처의 이웃 블록 내의 참조 샘플에 기초한 공간 예측 또는 다른 참조 픽처의 참조 샘플에 기초한 시간적 예측이 사용될 수 있다. 픽처는 프레임이라고도 하며, 참조 픽처는 참조 프레임이라고도 한다.
HEVC에서, 2개의 인터 예측 모드, 즉 어드밴스드 모션 벡터 예측(advanced motion vector prediction: AMVP) 모드 및 병합(merge) 모드가 사용된다.
AMVP 모드 및 병합 모드 모두에서, 모션 정보 후보 리스트가 유지될 필요가 있다. 모션 정보 후보 리스트에 매번 새로운 모션 정보를 추가하기 전에, 현재 추가될 모션 정보와 동일한 모션 정보가 모션 정보 후보 리스트에 이미 존재하는지 확인해야 한다. 모션 정보 후보 리스트에 동일한 모션 정보가 이미 존재한다면, 현재 추가될 모션 정보는 폐기된다. 모션 정보 후보 리스트에 동일한 모션 정보가 없으면, 현재 추가될 모션 정보가 모션 정보 후보 리스트에 추가된다.
전술한 모션 정보 후보 리스트 업데이트 과정에서, 두 모션 정보가 동일한 지 여부를 판단할 필요가 있다. 종래의 해결책에서는, 두 모션 정보가 동일한지 여부는 일반적으로 두 모션 정보의 모션 벡터의 예측 방향, 참조 프레임, 수평 및 수직 성분과 같은 파라미터가 동일한지 여부를 판단하여 결정된다. 복수의 비교 동작이 요구되고, 복잡도가 비교적 높다.
본 출원은 인터 예측 효율을 향상시키기 위해, 모션 정보 후보 리스트를 획득하는 동안 비교 연산의 양을 줄이기 위한 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더를 제공한다.
제1 양태에 따르면, 인터 예측 방법이 제공된다. 이 방법은, 현재 픽처 블록의 M개의 이웃 위치가 위치하는 M개의 픽처 블록으로부터 N개의 타겟 픽처 블록을 결정하는 단계와, N개의 타겟 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보를 결정하고, 현재 픽처 블록의 후보 모션 정보를 상기 현재 픽처 블록의 모션 정보 후보 리스트에 추가하는 단계와, 모션 정보 후보 리스트에 기초하여 현재 픽처 블록에 대해 인터 예측을 수행하는 단계를 포함한다.
N개의 타겟 픽처 블록 중 임의의 2개는 상이하다(즉, N개의 타겟 픽처 블록에 동일한 픽처 블록이 존재하지 않는다). M과 N은 모두 양의 정수이고, M은 N보다 크거나 같다. 또한, N개의 타겟 픽처 블록 중 임의의 두 개가 상이하다는 것은 각각의 N개의 타겟 픽처 블록이 다른 (N-1)개의 타겟 픽처 블록과 상이하다는 것을 의미할 수 있다.
각각의 M개의 이웃 위치는 하나의 픽처 블록에 위치하며, M개의 이웃 위치는 M개의 픽처 블록에 제각기 위치한다는 것을 이해해야 한다. M개의 픽처 블록 중 일부는 동일할 수도 있다는 것을 이해해야 한다. 즉, 상이한 이웃 위치가 모두 동일한 픽처 블록에 있을 수 있다. N개의 픽처 블록이 M개의 픽처 블록으로부터 결정되어, M개의 픽처 블록 내 중복 픽처 블록이 걸러질 수 있다(M개의 픽처 블록 중 일부가 동일할 경우). 이런 방식으로, 서로 다른 N개의 타겟 픽처 블록이 결정된다.
또한, N개의 타겟 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보를 결정하는 것은, 각각의 N개의 타겟 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보를 결정하는 것일 수 있다.
현재 픽처 블록의 이웃 위치는 현재 픽처 블록의 경계에 인접한 위치일 수 있다. 또한, 현재 픽처 블록의 이웃 위치는 현재 픽처 블록의 경계까지 특정 거리를 갖도록 연장되는 위치(예컨대, 현재 픽처 블록의 경계까지의 거리가 특정 범위 내에 있는 위치)일 수 있다. 또한, 이웃 위치는 현재 픽처 블록의 경계 주위의 4×4 서브블록일 수 있다. 한 예에서, 이웃 위치는 현재 픽처 블록의 주변 이웃 위치가 위치하는 A1, B1, B0, A0, 및 B2와 같은 블록의 위치일 수 있다. 예를 들어, 이웃 위치는, 주변 이웃 위치가 위치하는 블록(A1, B1, B0, A0, 및 B2)의 중심 포인트 또는 좌상단 코너 위치일 수 있다.
선택적으로, 모션 정보 후보 리스트에 기초하여 현재 픽처 블록에 대해 인터 예측을 수행하는 것은, 모션 정보 후보 리스트에서 타겟 모션 정보를 결정하는 것과, 타겟 모션 정보에 기초하여 현재 픽처 블록에 대해 인터 예측을 수행하는 것을 포함한다. 이 방법이 픽처 블록을 인코딩하는 데 사용될 경우, 모션 정보 후보 리스트에서 타겟 모션 정보를 결정하는 것은, 레이트 왜곡 코스트 기준에 따라 모션 정보 후보 리스트에서 타겟 모션 정보(또는 타겟 후보 모션 정보라고도 함)를 결정하는 것일 수 있다. 예를 들어, 타겟 후보 모션 정보를 사용함으로써 현재의 픽처 블록을 인코딩하는 레이트 왜곡 코스트가 최소가 된다.
이 방법이 픽처 블록을 디코딩하는데 사용될 경우, 모션 정보 후보 리스트에서 타겟 모션 정보를 결정하는 것은, 비트스트림을 파싱하여 획득된 제1 식별자 정보(예컨대, 인덱스)에 기초하여 모션 정보 후보 리스트에서 타겟 모션 정보(타겟 후보 모션 정보라고도 함)를 결정하는 것을 포함할 수 있다. 타겟 후보 모션 정보는 현재 픽처 블록의 모션 정보를 예측하는 데 사용된다. 선택적으로, 모션 정보 후보 리스트의 길이가 1인 경우, 타겟 모션 정보를 표사히기 위한 어떠한 인덱스도 필요치 않고, 고유 후보 모션 정보가 타겟 후보 모션 정보로 결정된다.
현재 코딩 픽처 블록의 모션 정보는 타겟 후보 모션 정보에 기초하여 예측/획득된다. 예를 들어, 타겟 후보 모션 정보가 현재 픽처 블록의 모션 정보로 결정된다. 또는, 타겟 후보 모션 정보가 모션 벡터 예측자이면, 모션 벡터 예측자 및 비트스트림을 파싱하여 획득되는 현재 픽처 블록의 모션 벡터 차(MVD)에 기초하여 현재 픽처 블록의 모션 정보가 결정된다. 현재 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록에 대해 인터 예측이 수행되어 현재 픽처 블록의 예측 블록(즉, 예측된 픽셀 값)을 획득한다.
타겟 모션 정보는 모션 정보 후보 리스트로부터 결정된 최적의 모션 정보일 수 있다.
구체적으로, 현재 픽처 블록이 넌아핀 코딩 블록인 경우, 타겟 모션 정보에 기초하여 현재 픽처 블록에 대해 인터 예측을 수행하는 것은, 타겟 모션 정보에 기초하여 현재 픽처 블록에 대해 모션 보상을 수행하여, 현재 픽처 블록의 예측자를 획득하는 것을 포함할 수 있다.
현재 픽처 블록이 아핀 코딩 블록이면, 타겟 모션 정보(현재 픽처 블록의 제어 포인트의 모션 정보)는 모션 정보 후보 리스트로부터 결정되어야 한다. 그러면, 현재 픽처 블록의 각각의 서브블록의 모션 정보는 타겟 모션 정보에 기초하여 결정된다. 그 후, 각각의 서브블록의 모션 정보에 기초하여 각 서브블록에 대해 모션 보상(motion compensation)이 수행되어 각 서브블록의 예측자를 획득한다. 각 서브블록의 예측자가 획득된 후에 현재 픽처 블록의 예측자가 획득된다는 것을 이해해야 한다.
선택적으로, M과 N은 미리 설정된 값이다.
예를 들어, N의 값은 5이다.
제1 양태의 인터 예측 방법은 병진 모델에서의 인터 예측 방법 또는 비병진 모델(예컨대, 아핀 모션 모델)에서의 인터 예측 방법일 수 있다는 것을 이해해야 한다.
선택적으로, 현재 픽처 블록은 현재 코딩 블록(예컨대, 아핀 코딩 블록) 또는 현재 디코딩 블록(예컨대, 아핀 디코딩 블록)이다. 본 출원에서 픽처 블록은 구체적으로 코딩 프로세스에서의 코딩 유닛(coding unit)을 지칭하고, 구체적으로 디코딩 프로세스에서의 디코딩 유닛(decoding unit)을 지칭한다.
현재 픽처 블록의 이웃 위치가 위치하는 픽처 블록은 현재 픽처 블록의 이웃 픽처 블록이라고도 하며, 현재 픽처 블록의 이웃 픽처 블록은 현재 픽처 블록의 공간적으로 이웃하는 픽처 블록 또는 시간적으로 이웃하는 픽처 블록일 수 있다.
즉, M개의 이웃 위치는 모두 공간적으로 이웃하는 위치 또는 시간적으로 이웃하는 위치일 수도 있고, M개의 이웃 위치는 공간적으로 이웃하는 위치 및 시간적으로 이웃하는 위치를 모두 포함할 수 있다.
따라서, M개의 픽처 블록은 모두 현재 픽처 블록의 공간적으로 이웃하는 픽처 블록 또는 현재 픽처 블록의 시간적으로 이웃하는 픽처 블록일 수 있다. 또는, M개의 픽처 블록은 현재 픽처 블록의 공간적으로 이웃하는 픽처 블록과 현재 픽처 블록의 시간적으로 이웃하는 픽처 블록을 모두 포함한다.
본 출원에서는, 현재 픽처 블록의 이웃 위치가 위치하는 복수의 픽처 블록으로부터 적어도 하나의 다른 타겟 픽처 블록이 결정되어, 현재 픽처 블록의 후보 모션 정보가 적어도 하나의 타겟 픽처 블록에 기초하여 결정될 수 있다. 또한, 후보 모션 정보가 동일한지 여부를 비교하지 않고 현재 픽처 블록의 모션 정보 후보 리스트에 획득된 후보 모션 정보가 추가된다. 이것은 인터 예측 동안 모션 정보 후보 리스트가 획득될 때 수행되는 비교 동작을 어느 정도 감소시켜, 인터 예측 효율과 인코딩 및 디코딩 성능을 향상시킬 수 있다.
제1 양태의 일부 구현예에서, 현재 픽처 블록의 M개의 이웃 위치가 위치하는 M개의 픽처 블록으로부터 N개의 타겟 픽처 블록을 결정하는 것은, 현재 픽처 블록의 현재 이웃 위치가 위치하는 픽처 블록을 결정하는 것과, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 상이한 경우, 현재 이웃 위치가 위치하는 픽처 블록을 현재 픽처 블록의 타겟 픽처 블록으로 결정하는 것을 포함한다.
현재 이웃 위치는 M개의 이웃 위치 중 하나일 수 있고, 현재 이웃 위치가 위치하는 픽처 블록이 M개의 픽처 블록 중 임의의 하나일 수 있다는 것을 이해해야 한다. 획득된 타겟 픽처 블록은 N개의 타겟 픽처 블록의 일부일 수 있다.
제1 양태의 일부 구현예에서, 현재 이웃 위치에 있는 픽처 블록은 현재 픽처 블록의 제1 측에 있고, 이 방법은, 현재 픽처 블록의 제1 측의 적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록 내에 존재할 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하는 것과, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 다른 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 다르다고 판단하는 것을 더 포함한다.
선택적으로, 제1 측은 좌측 및 상측을 포함한다.
또한, 제1 측은 우측 및 하측을 포함할 수 있다.
두 이웃 픽처 블록이 현재 픽처 블록의 상이한 쪽에 있는 경우(예컨대, 하나의 픽처 블록은 현재 픽처 블록의 상측에 있고, 다른 픽처 블록은 현재 픽처 블록의 좌측에 있는 경우), 두 이웃하는 픽처 블록은 동일할 수 없다. 이 경우, 두 이웃 픽처 블록은 상이한 픽처 블록으로 바로 결정될 수 있다. 따라서, 획득된 타겟 픽처 블록과 현재 이웃 위치가 위치하는 픽처 블록이 다른 쪽에 있으면, 현재 이웃하는 위치가 위치하는 픽처 블록은 타겟 픽처 블록으로 바로 결정될 수 있다.
그러나, 획득된 타겟 픽처 블록 중 일부가 현재 이웃 위치가 위치하는 픽처 블록과 동일한 쪽에 있으면, 현재 이웃 위치가 위치하는 픽처 블록만이 현재 이웃 위치가 위치하는 픽처 블록과 동일한 쪽에 있는 획득된 타겟 픽처 블록의 타겟 픽처 블록과 비교되면 된다. 현재 이웃 위치가 위치하는 픽처 블록이 획득된 타겟 픽처 블록의 동일한 쪽에 있는 모든 픽처 블록과 상이하면, 현재 이웃 위치가 위치하는 픽처 블록은 타겟 픽처 블록으로 결정될 수 있다.
본 출원에서, 현재 이웃 위치가 위치하는 픽처 블록과 동일한 쪽에 있는 픽처 블록이 획득된 타겟 픽처 블록에 존재하는 경우, 현재 이웃 위치가 위치하는 픽처 블록은 획득된 타겟 픽처 블록의 동일한 쪽에 있는 픽처 블록과 비교되기만 하면 된다. 이는 모션 정보 후보 리스트를 구성하는 프로세스에서 비교 양을 더욱 줄일 수 있다.
선택적으로, 이 방법은 현재 픽처 블록의 제1 측에 있는 적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록들에 존재하는지 여부를 판단하는 것을 더 포함한다.
구체적으로, 획득된 타겟 픽처 블록이 현재 픽처 블록의 제1 측에 있는지 여부는 획득된 타겟 픽처 블록의 좌표와 현재 픽처 블록의 좌표에 기초하여 판정될 수 있다는 것을 이해해야 한다.
선택적으로, 현재 픽처 블록의 제1 측의 적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록에 존재하는지 여부를 판단하는 것은, 획득된 타겟 픽처 블록의 미리 설정된 위치의 픽셀 좌표와 현재 픽처 블록의 미리 설정된 위치의 픽셀 좌표에 기초하여, 획득된 타겟 픽처 블록이 현재 픽처 블록의 제1 측에 있는지 여부를 판단하는 것을 포함한다.
미리 설정된 위치는 픽처 블록의 좌상단 코너(또는 우상단 코너 또는 다른 특정 위치)일 수 있다.
예를 들어, 현재 픽처 블록의 좌상단 코너의 픽셀 좌표는 (x0, y0)이다. 획득된 타겟 픽처 블록은 타겟 픽처 블록 1 및 타겟 픽처 블록 2를 포함한다. 타겟 픽처 블록 1의 좌상단 코너의 픽셀 좌표는 (x1, y1)이다. 타겟 픽처 블록 2의 좌상단 코너의 픽셀 좌표는 (x2, y2)이다. 현재 이웃 위치가 위치하는 픽처 블록은 픽처 블록 3이고, 픽처 블록 3의 좌상단 코너의 픽셀 좌표는 (x3, y3)이다. x1<x0이면, 타겟 픽처 블록 1은 현재 픽처 블록의 좌측에 있다. y2<y0이면, 타겟 픽처 블록 2는 현재 픽처 블록의 상측에 있다. y3<y0이면, 타겟 픽처 블록 3은 현재 픽처 블록의 상측에 있다. 이 경우, 픽처 블록 3 및 타겟 픽처 블록 2 모두가 현재 픽처 블록의 상측에 있고, 픽처 블록 3과 타겟 픽처 블록 2가 동일한지 여부만 비교하면 된다.
제1 양태의 일부 구현예에서, 현재 이웃 위치가 위치하는 픽처 블록이 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판정하는 것은, 현재 이웃 위치가 위치하는 픽처 블록의 미리 설정된 위치의 픽셀 좌표가 각각의 적어도 하나의 제1 타겟 픽처 블록의 미리 설정된 위치의 픽셀 좌표와 동일한지 여부를 판단하고, 현재 이웃 위치가 위치하는 픽처 블록의 미리 설정된 위치의 픽셀 좌표가 각각의 적어도 하나의 제1 타겟 픽처 블록의 미리 설정된 위치의 픽셀 좌표와 상이한 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판정하는 것을 포함한다.
선택적으로, 미리 설정된 위치는 픽처 블록의 좌상단 코너, 우상단 코너, 좌하단 코너, 우하단 코너, 중앙 위치 중 어느 하나이다.
또한, 미리 설정된 위치는 픽처 블록 내의 또 다른 특정 위치일 수도 있다. 예를 들어, 미리 설정된 위치는 픽처 블록의 경계(좌측 경계, 우측 경계, 상측 경계 및 하측 경계)의 중앙 위치일 수도 있다.
본 출원에서, 픽처 블록의 미리 설정된 위치의 픽셀 좌표들은 현재 이웃 위치가 위치하는 픽셀 블록이 획득된 타겟 픽처 블록과 동일한지 여부를 판단하기 위해 비교될 수 있다. 모션 정보를 직접 비교하는 방법(예측 방향, 참조 프레임, 및 모션 벡터의 수평 성분과 수직 성분을 포함한 보다 많은 파라미터가 비교되어야 함)에 비해, 이는 모션 정보 후보 리스트를 구성하는 프로세스에서 수행되어야 하는 비교 동작을 줄일 수 있다.
제1 양태의 일부 구현예에서, 현재 이웃 위치가 위치하는 픽처 블록이 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판정하는 것은, 현재 이웃 위치가 위치하는 픽처 블록의 수가 각각의 적어도 하나의 제1 타겟 픽처 블록의 수와 동일한지 여부를 판단하고, 현재 이웃 위치가 위치하는 픽처 블록의 수가 각각의 적어도 하나의 제1 타겟 픽처 블록의 수와 상이한 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판정하는 것을 포함한다.
각각의 픽처 블록은 하나의 번호에 대응하고, 픽처 블록과 번호는 일대일로 대응한다는 것을 이해해야 한다. 번호는 인코딩 또는 디코딩 프로세스에서 정의되는 번호일 수 있다.
선택적으로, 번호는 카운트 값일 수도 있고, 각 픽처 블록은 고유한 카운트 값에 대응한다.
본 출원에서, 상이한 픽처 블록의 번호가 비교되고, 두 픽처 블록이 동일한 픽처 블록인지 여부는 단 한 번의 파라미터 비교를 통해 결정될 수 있다. 모션 정보를 비교하는 방법에 비해, 이것은 모션 정보 후보 리스트를 구성하는 프로세스에서 수행되어야 하는 비교 동작을 줄일 수 있다.
제1 양태의 일부 구현예에서, 현재 이웃 위치가 위치하는 픽처 블록이 현재 픽처 블록의 제1 측에 있고, 이 방법은, 현재 픽처 블록의 제1 측의 어떠한 제1 타겟 픽처 블록도 획득된 타겟 픽처 블록에 존재하지 않는 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 다르다고 판단하는 것을 더 포함한다.
본 출원에서, 획득된 타겟 픽처 블록 및 현재 이웃 위치가 위치하는 픽처 블록이 상이한 쪽에 있는 경우, 현재 이웃 위치가 위치하는 픽처 블록 및 획득된 타겟 픽처 블록이 상이한 픽처 블록에 속한다고 바로 판정될 수 있다. 이것은 모션 정보 후보 리스트를 구성하는 프로세스에서 수행되어야 하는 비교 동작을 줄일 수 있다.
제1 양태의 일부 구현예에서, 이 방법은 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 동일한지 여부를 판단하는 것을 더 포함한다.
본 출원에서, 현재 이웃 위치가 위치하는 픽처 블록이 타겟 픽처 블록일 수 있는지 여부가 판단될 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록들과 동일한지 여부가 판단되어야 한다. 따라서, 현재 이웃 위치가 위치하는 픽처 블록과 동일 측에 있는 픽처 블록이 획득된 타겟 픽처 블록에 존재하는지 여부를 고려할 필요가 없다. 이는 모션 정보 후보 리스트를 구성하는 처리 로직을 단순화할 수 있다.
제1 양태의 일부 구현예에서, N개의 타겟 픽처 블록은 아핀 픽처 블록이고, 현재 픽처 블록의 후보 모션 정보는 현재 픽처 블록의 제어 포인트의 후보 모션 정보이다. N개의 타겟 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보를 결정하는 것은, N개의 타겟 픽처 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보를 결정하는 것을 포함한다.
선택적으로, N개의 타겟 픽처 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보를 결정하는 것은, N개의 타겟 픽처 블록의 제어 포인트의 모션 정보 및 N개의 타겟 픽처 블록에 대응하는 아핀 모델에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보를 결정하는 것을 포함한다.
현재 픽처 블록의 제어 포인트의 후보 모션 정보가 N개의 타겟 픽처 블록의 제어 포인트의 모션 정보 및 N개의 타겟 픽처 블록에 대응하는 아핀 모델에 기초하여 결정될 경우, 현재 픽처 블록의 제어 포인트의 후보 모션 정보는 각각의 N개의 타겟 픽처 블록의 제어 포인트의 모션 정보 및 타겟 픽처 블록에 대응하는 아핀 모델에 기초하여 결정될 수 있다는 것을 이해해야 한다.
선택적으로, 타겟 픽처 블록에 대응하는 아핀 모델은 4-파라미터 아핀 모션 모델 및 6-파라미터 아핀 모션 모델을 포함할 수 있다.
제2 측면에 따르면, 인터 예측 방법이 제공된다. 이 방법은, 현재 픽처 블록의 모션 정보 후보 리스트를 구성하는 단계와, 현재 픽처 블록의 제1 이웃 위치(A1)를 획득하는 단계 - A1은 현재 픽처 블록의 좌측에 있고, A1은 현재 픽처 블록의 제1 인접 픽처 블록(CU 1)에 위치함 - 와, CU 1의 모션 정보가 이용가능한 경우, CU 1의 모션 정보에 기초하여 현재 픽처 블록의 제1 후보 모션 정보를 결정하고, 상기 제1 후보 모션 정보를 상기 모션 정보 후보 리스트에 추가하는 단계와, 상기 현재 픽처 블록의 제2 이웃 위치(B1)를 획득하는 단계 - B1은 현재 픽처 블록의 상측에 있고, B1은 상기 현재 픽처 블록의 제2 이웃 픽처 블록(CU 2)에 위치함 - 와, CU 2의 모션 정보가 이용가능한 경우, CU 2의 모션 정보에 기초하여 현재 픽처 블록의 제2 후보 모션 정보를 결정하고, 제2 후보 모션 정보를 모션 정보 후보 리스트에 추가하는 단계와, 현재 픽처 블록의 제3 이웃 위치(B0)를 획득하는 단계 - B0는 현재 픽처 블록의 상측에 있고, B0는 현재 픽처 블록의 제3 이웃 픽처 블록(CU 3) 내에 위치함 - 와, CU 3의 모션 정보가 이용가능한 경우, CU 3이 CU 2와 동일한지 여부를 판단하는 단계와, CU 3의 모션 정보가 이용가능하고, CU 3이 CU 2와 상이한 경우, CU 3의 모션 정보에 기초하여 현재 픽처 블록의 제3 후보 모션 정보를 결정하고, 제3 후보 모션 정보를 모션 정보 후보 리스트에 추가하는 단계와, 현재 픽처 블록의 제4 이웃 위치(A0)를 획득하는 단계 - A0는 현재 픽처 블록의 좌측에 있고, A0는 현재 픽처 블록의 제4 이웃 픽처 블록(CU 4) 내에 위치함 - 와, CU 4의 모션 정보가 이용가능한 경우, CU 4가 CU 1과 동일한지 여부를 판단하는 단계와, CU 4의 모션 정보가 이용가능하고, CU 4가 CU 1과 상이한 경우, CU 4의 모션 정보에 기초하여 현재 픽처 블록의 제4 후보 모션 정보를 결정하고, 제4 후보 모션 정보를 모션 정보 후보 리스트에 추가하는 단계와, 현재 픽처 블록의 제5 이웃 위치(B2)를 획득하는 단계 - B2는 현재 픽처 블록의 상측에 있고, B2는 현재 픽처 블록의 제5 이웃 픽처 블록(CU 5) 내에 위치함 - 와, CU 5의 모션 정보가 이용가능한 경우, CU 5가 CU 1 및 CU 2와 동일한지 여부를 판단하는 단계와, CU 5의 모션 정보가 이용가능하고, CU 5가 CU 1 및 CU 2와 상이한 경우, CU 5의 모션 정보에 기초하여 현재 픽처 블록의 제5 후보 모션 정보를 결정하고, 제5 후보 모션 정보를 모션 정보 후보 리스트에 추가하는 단계와, 모션 정보 후보 리스트에 기초하여 현재 픽처에 대해 인터 예측을 수행하는 단계를 포함한다.
본 출원에서, 모션 정보 후보 리스트를 구성하는 프로세스에서, 현재 픽처 블록의 이웃 위치들이 순차적으로 순회된다. 또한, 일부 경우에, 현재 이웃 위치가 위치하는 픽처 블록에 기초하여 결정된 모션 정보가 모션 정보 후보 리스트에 추가되어야 하는지 여부는 이들 픽처 블록이 동일한지 여부를 비교하는 방식으로 결정된다. 이는 모션 정보 후보 리스트를 구성하는 프로세스에서 비교 동작을 감소시켜, 인터 예측 효율을 향상시킬 수 있다.
제2 양태의 방법에서, 모션 정보가 이용가능하다는 것은 CU가 인코딩되었다는 것을 의미하며, 구체적으로는 인터 인코딩되었다는 것을 의미한다. 또한, 아핀 인코딩 모드에서 모션 정보 후보 리스트가 구성되는 경우, CU는 또한 아핀 모드에서 인코딩되어야 한다.
제2 양태의 방법에서, 현재 픽처 블록의 이웃 위치들은 특정 순서(A1, B1, B0, A0, 및 B2)로 순회되고, 현재 픽처 블록의 이웃 위치들을 특정 순서로 순회하는 것은 상이한 픽처 블록들 사이의 비교 양을 감소시킬 수 있다. 예를 들어, A1 및 B1은 제각기 현재 픽처 블록의 좌측 및 상측에 있기 때문에, B1이 위치하는 픽처 블록(CU 2)이 획득될 경우, CU 2를 CU 1과 비교할 필요가 없다. 대신에, CU 2의 모션 정보에 기초하여 결정된 제2 후보 모션 정보가 바로 모션 정보 후보 리스트에 추가될 수 있다.
제2 양태의 일부 구현예에서, CU 3이 CU 2와 동일한 경우, CU 3은 폐기되고, 현재 픽처 블록의 이웃 위치들이 계속 순회되어 제4 이웃 위치(A0)를 획득한다.
제2 양태의 일부 구현예에서, CU 4가 CU 1과 동일한 경우, CU 4는 폐기되고, 현재 픽처 블록의 이웃 위치들이 계속 순회되어 제5 이웃 위치(B2)를 획득한다.
본 출원에서의 인터 예측 방법이 수행되는 프로세스는 인터 예측 방법이 디코더 측에서 수행되는 프로세스와 약간 상이하다는 것을 이해해야 한다. 본 출원의 본 실시예에서의 인터 예측 방법이 인코더 측에서 수행되는 경우, 모션 정보 후보 리스트에서 최적의 모션 정보가 선택되어야 하며, 그 후 최적의 모션 정보에 기초하여 인터 예측이 수행된다.
본 출원의 이 실시예에서의 인터 예측 방법이 디코더 측에서 수행되는 경우, 최적의 모션 정보의 인덱스는 비트스트림을 파싱함으로써 획득된다. 다음으로, 최적의 모션 정보의 인덱스에 기초하여 모션 정보 후보 리스트로부터 최적의 모션 정보가 결정된다. 그 다음에, 최적의 모션 정보에 기초하여 인터 예측이 수행된다.
제3 양태에 따르면, 인터 예측 장치가 제공된다. 이 장치는 제1 양태의 임의의 구현예 또는 제2 양태의 임의의 구현예에서의 방법을 수행하도록 구성된 모듈을 포함한다.
제4 양태에 따르면, 비디오 인코더가 제공된다. 이 비디오 인코더는 제3 양태의 인터 예측 장치, 엔트로피 인코딩 유닛 및 재구성 유닛을 포함한다. 인터 예측 장치는 현재 코딩 픽처 블록에 대해 인터 예측을 수행하여 현재 코딩 픽처 블록의 예측 블록을 획득하도록 구성된다. 엔트로피 인코딩 유닛은 제1 식별자를 비트스트림으로 인코딩하도록 구성된다. 제1 식별자는, 모션 정보 후보 리스트에 있으며 현재 코딩 픽처 블록의 모션 정보를 예측하는 데 사용되는 후보 모션 정보를 나타내는 데 사용된다. 재구성 유닛은 예측 블록에 기초하여 현재 코딩 픽처 블록을 재구성하도록 구성된다.
제5 양태에 따르면, 비디오 디코더가 제공된다. 비디오 인코더는 엔트로피 디코딩 유닛, 제3 양태의 인터 예측 장치 및 재구성 유닛을 포함한다. 엔트로피 디코딩 유닛은 비트스트림을 디코딩하여 제1 식별자를 획득하도록 구성된다. 제1 식별자는, 모션 정보 후보 리스트에 있으며 현재 코딩 픽처 블록의 모션 정보를 예측하는 데 사용되는 후보 모션 정보를 나타내는 데 사용된다. 인터 예측 장치는 현재 코딩 픽처 블록에 대해 인터 예측을 수행하여 현재 코딩 픽처 블록의 예측 블록을 획득하도록 구성된다. 재구성 유닛은 예측 블록에 기초하여 현재 코딩 픽처 블록을 재구성하도록 구성된다.
제6 양태에 따르면, 인코더가 제공된다. 인코더는 메모리와 프로세서를 포함한다. 메모리는 프로그램 코드를 저장하고, 프로세서는 메모리에 저장된 프로그램 코드를 실행하도록 구성된다. 메모리에 저장된 프로그램 코드가 실행될 경우, 프로세서는 제1 양태의 임의의 구현예 또는 제2 양태의 임의의 구현예에서의 방법을 수행하도록 구성된다.
인코더는 비디오 인코더일 수 있다.
제7 양태에 따르면, 디코더가 제공된다. 디코더는 메모리와 프로세서를 포함한다. 메모리는 프로그램 코드를 저장하고, 프로세서는 메모리에 저장된 프로그램 코드를 실행하도록 구성된다. 메모리에 저장된 프로그램 코드가 실행될 경우, 프로세서는 제1 양태의 임의의 구현예 또는 제2 양태의 임의의 구현예에서의 방법을 수행하도록 구성된다.
디코더는 비디오 디코더일 수 있다.
제8 양태에 따르면, 서로 결합된 비 휘발성 메모리 및 프로세서를 포함하는 인터 예측 장치가 제공된다. 프로세서는 제1 양태의 임의의 구현예 또는 제2 양태의 임의의 구현예에서의 방법의 일부 또는 모든 단계를 수행하기 위해 메모리에 저장된 프로그램 코드를 호출한다.
제9 양태에 따르면, 컴퓨터 판독가능 저장 매체가 제공된다. 컴퓨터 판독 가능 저장 매체는 프로그램 코드를 저장하고, 프로그램 코드는 제1 양태의 임의의 구현예 또는 제2 양태의 임의의 구현예에서의 방법의 일부 또는 모든 단계를 수행하는 데 사용되는 명령어를 포함한다.
제10 양태에 따르면, 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 프로그램 제품이 컴퓨터에서 실행될 경우, 컴퓨터는 제1 양태의 임의의 구현예 또는 제2 양태의 임의의 구현예에서의 방법의 일부 또는 모든 단계의 명령어를 수행할 수 있다.
도 1은 비디오 인코딩 프로세스의 개략도이다.
도 2는 비디오 디코딩 프로세스의 개략도이다.
도 3은 본 출원의 일 실시예에 따른 인터 예측 방법의 개략적인 흐름도이다.
도 4는 현재 픽처 블록의 이웃 픽처 블록 및 이웃 위치의 개략도이다.
도 5는 본 출원의 일 실시예에 따른 인터 예측 방법의 흐름도이다.
도 6은 본 출원의 일 실시예에 따른 인터 예측 방법의 흐름도이다.
도 7은 현재 픽처 블록의 이웃 픽처 블록 및 이웃 위치의 개략도이다.
도 8은 본 출원의 일 실시예에 따른 인터 예측 방법의 흐름도이다.
도 9는 본 출원의 일 실시예에 따른 인터 예측 방법의 흐름도이다.
도 10은 본 출원의 일 실시예에 따른 인터 예측 방법의 흐름도이다.
도 11은 본 출원의 일 실시예에 따른 인터 예측 방법의 흐름도이다.
도 12는 본 출원의 일 실시예에 따른 인터 예측 장치의 개략적인 블록도이다.
도 13은 본 출원의 일 실시예에 따른 비디오 인코더의 개략적인 블록도이다.
도 14는 본 출원의 일 실시예에 따른 비디오 디코더의 개략적인 블록도이다.
도 15는 본 출원의 일 실시예에 따른 인코딩 장치 또는 디코딩 장치의 구조의 개략도이다.
도 16은 본 출원의 일 실시예에 따른 비디오 코딩 시스템의 개략적인 블록도이다.
도 17은 본 출원의 일 실시예에 따른 비디오 전송 시스템의 개략적인 블록도이다.
도 18은 본 출원의 일 실시예에 따른 비디오 코딩 시스템의 개략적인 블록도이다.
다음은 첨부 도면을 참조하여 본 출원의 기술적 해법을 설명한다.
본 출원의 실시예들에서의 인터 예측 방법이 수행되는 프로세스를 보다 잘 이해하기 위해, 이하에서는 먼저 도 1 및 2를 참조하여 전체 비디오 코딩 프로세스를 간략하게 설명한다.
도 1은 비디오 인코딩 프로세스의 개략도이다.
도 1에 도시되어 있는 바와 같이, 현재 프레임(Fn) 내의 현재 픽처 블록에 대해 예측이 수행될 때, 인트라 예측 또는 인터 예측이 수행될 수 있다. 구체적으로, 현재 프레임(Fn)의 유형에 따라 인트라 코딩 또는 인터 코딩이 선택될 수 있다. 예를 들어, 현재 프레임(Fn)이 I 프레임이면, 인트라 예측이 사용된다. 현재 프레임(Fn)이 P 프레임 또는 B 프레임이면, 인터 예측이 사용된다. 인트라 예측이 사용되는 경우, 현재 픽처 블록 내의 샘플의 샘플 값은 현재 프레임(Fn)의 재구성 영역 내의 샘플의 샘플 값을 이용하여 예측될 수 있다. 인터 예측이 사용되는 경우, 현재 픽처 블록 내의 샘플의 샘플 값은, 참조 프레임(F'n-1) 내에 있고 현재 픽처 블록과 매칭되는 참조 블록 내의 샘플의 샘플 값을 사용하여 예측될 수 있다.
인터 예측 또는 인트라 예측에 따라 현재 픽처 블록의 예측 블록이 획득된 후, 현재 픽처 블록 내의 샘플의 샘플 값과 예측 블록 내의 샘플의 샘플 값의 차가 계산되어, 잔차 정보를 획득하고, 잔차 정보에 대해 변환, 양자화 및 엔트로피 코딩이 수행되어 인코딩된 비트스트림을 획득한다. 또한, 인코딩 프로세스에서, 현재 프레임(Fn)의 잔차 정보는 현재 프레임(Fn)의 예측 정보와 중첩될 필요가 있고, 현재 프레임의 재구성된 프레임(F'n)을 얻기 위해 필터링 동작이 수행된다. 재구성된 프레임(F'n)은 후속 인코딩에 대한 참조 프레임으로 사용된다.
도 2는 비디오 디코딩 프로세스의 개략도이다.
도 2에 도시된 비디오 디코딩 프로세스는 도 1에 도시된 비디오 인코딩 프로세스의 역 프로세스와 같다. 디코딩 동안, 엔트로피 디코딩, 역 양자화, 역 변환을 통해 잔차 정보를 획득하고, 현재 픽처 블록에 인트라 예측 또는 인터 예측이 사용되는지 여부는 디코딩된 비트스트림에 기초하여 결정된다. 인트라 예측이 사용될 경우, 현재 프레임 내의 재구성된 영역 내의 샘플의 샘플 값을 사용하여 인트라 예측 방법에 따라 예측 정보가 구성된다. 인터 예측이 사용될 경우, 모션 정보가 파싱되어야 하고, 파싱된 모션 정보를 사용하여 재구성된 픽처 내의 참조 블록이 결정되며, 참조 블록 내의 샘플의 샘플 값이 예측 정보로 사용되고, 그 후 예측 정보가 잔차 정보와 중첩되며, 재구성된 정보를 획득하기 위해 필터링 동작이 수행된다.
종래의 인터 예측 방법에서는, 모션 정보 후보 리스트를 획득할 때, 현재 획득된 후보 모션 정보와 획득된 후보 모션 정보를 하나씩 비교해야 한다. 현재 획득된 후보 모션 정보는, 현재 획득된 후보 모션 정보가 획득된 후보 모션 정보와 다른 경우에만 모션 정보 후보 리스트에 추가될 수 있다. 현재 획득된 후보 모션 정보가 획득한 후보 모션 정보와 동일한지 여부를 비교를 통해 판단할 경우, 모션 벡터의 예측 방향, 대응하는 참조 프레임, 수평 성분 및 수직 성분과 같은 복수의 파라미터가 비교될 필요가 있다. 비교 양이 지나치게 많고, 결과적으로 코딩 효율이 저하된다.
일반적으로, 현재 픽처 블록의 후보 모션 정보를 얻기 위해 현재 블록 주변의 이웃 위치들이 순회된다. 현재 픽처 블록의 후보 모션 정보는 이들 이웃 위치가 위치해 있는 픽처 블록의 모션 정보에 기초하여 결정된다.
동일한 픽처 블록에 대응하는 모션 정보는 동일하기 때문에, 본 출원은 새로운 인터 예측 방법을 제공한다. 본 출원에서, 특정 이웃 위치가 위치하는 픽처 블록은 현재 픽처 블록 주변의 이웃 위치가 위치하는 픽처 블록으로부터 직접 결정될 수 있다. 이들 특정 위치가 위치하는 픽처 블록들은 서로 다르며, 현재 픽처 블록의 후보 모션 정보는 특정 이웃 위치가 위치하는 픽처 블록의 모션 정보에 기초하여 결정된다. 이는 현재 획득된 모션 정보를 획득된 모션 정보와 비교하는 동작을 회피하며, 따라서, 인터 예측 프로세스에 필요한 시간을 줄일 수 있다.
본 출원의 실시예들에서의 인터 예측 방법은, 도 1에 도시된 인코딩 프로세스에서 수행될 수도 있고, 도 2에 도시된 디코딩 프로세스에서 수행될 수도 있다.
본 출원의 실시예들에서의 인터 예측 방법은 인터 예측에서 AMVP 모드 및 병합 모드에 적용될 수 있다.
다음은 도 3 내지 도 11을 참조하여 본 출원의 실시예들에서의 인터 예측 방법을 상세히 설명한다.
도 3은 본 출원의 일 실시예에 따른 인터 예측 방법의 개략적인 흐름도이다. 도 3에 도시된 방법은 비디오 코딩 장치(비디오 인코딩 장치 또는 비디오 디코딩 장치), 비디오 코덱(비디오 인코더 또는 비디오 디코더), 비디오 코딩 시스템(비디오 인코딩 및 비디오 디코딩을 모두 구현할 수 있는 시스템), 및 비디오 코딩 기능이 있는 다른 장치에 의해 수행될 수 있다.
도 3에 도시된 방법은 단계 101 내지 단계 103을 포함한다. 다음은 단계 101 내지 단계 103을 각각 상세히 설명한다.
101: 현재 픽처 블록의 M개의 이웃 위치가 위치하는 M개의 픽처 블록으로부터 N개의 타겟 픽처 블록을 결정한다.
N개의 타겟 픽처 블록 중 임의의 2개는 상이하다. M과 N은 모두 양의 정수이고, M은 N보다 크거나 같다. N의 값은 미리 설정될 수 있다. 예를 들어, N의 값은 5일 수 있다.
또한, M개의 이웃 위치는 현재 픽처 블록의 후보 모션 정보를 획득하는 프로세스에서 순회되는 모든 또는 일부의 이웃 위치일 수 있다.
본 출원에서, 현재 픽처 블록의 이웃 위치는 현재 픽처 블록의 경계에 인접한 위치일 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 현재 픽처 블록은 CU 0이고, 현재 픽처 블록의 이웃 위치는 A0, A1, B0, B1, B2를 포함한다. 또한, 본 출원에서, 현재 픽처 블록의 이웃 위치는 현재 픽처 블록의 경계까지 특정 거리를 갖는 위치(예컨대, 현재 픽처 블록의 경계까지의 거리가 특정 범위 내에 있는 위치)까지 확장될 수 있다. 예를 들어, 도 4에 도시된 바와 같이, 현재 픽처 블록은 CU 0이고, 현재 픽처 블록의 이웃 위치는 A3, A4 및 B5를 포함한다. 또한, A0, A1, B0, B1, B2와 같은 이웃 위치는 4×4 서브블록일 수 있다.
도 4에 도시된 바와 같이, 현재 픽처 블록은 CU 0이다. 이 경우, CU 0의 M개의 이웃 위치는 A0, A1, B0, B1, B2를 포함할 수 있다. 또한, CU 0의 M개의 이웃 위치는 A3, A4, B5를 포함할 수 있다. 도 4에서, 각각의 이웃 위치는 하나의 CU 내에 위치한다. 구체적으로 A1, A2, A3, A4, B2, B5는 모두 CU 1 내에 있고 B1과 B0은 각각 CU 2와 CU 3에 있다. M개의 픽처 블록으로부터 N개의 픽처 블록을 결정하는 것은 A0, A1, A2, A3, A4, B0, B1, B2 및 B5가 위치해 있는 픽처 블록(6개의 CU 1, 1개의 CU 2 및 1개의 CU 3)에서 CU 1, CU 2 및 CU 3을 결정하는 것과 동일한다.
본 출원에서, 현재 픽처 블록의 이웃 위치는 공간적으로 이웃하는 위치 또는 시간적으로 이웃하는 위치일 수 있음을 이해해야 한다.
따라서, M개의 이웃 위치는 현재 픽처 블록의 공간적으로 이웃하는 위치만 포함할 수도 있고, 현재 픽처 블록의 시간적으로 이웃하는 위치만 포함할 수도 있으며, 또는 현재 픽처 블록의 공간적으로 이웃하는 위치와 시간적으로 이웃하는 위치 모두를 포함할 수도 있다. 이에 대응하여, M개의 픽처 블록은 현재 픽처 블록의 공간적으로 이웃하는 픽처 블록만 포함할 수도 있고, 현재 픽처 블록의 시간적으로 이웃하는 픽처 블록만 포함할 수도 있으며, 또는 현재 픽처 블록의 공간적으로 이웃하는 픽처 블록과 시간적으로 이웃하는 픽처 블록 모두를 포함할 수도 있다.
102: N개의 타겟 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보를 결정하고, 현재 픽처 블록의 후보 모션 정보를 현재 픽처 블록의 모션 정보 후보 리스트에 추가한다.
단계 102에서, N개의 타겟 픽처 블록이 모두 획득된 후 N개의 타겟 픽처 블록의 모션 정보 또는 후보 모션 정보에 기초하여 현재 픽처 블록의 모션 정보가 결정될 수도 있고, 타겟 픽처 블록이 획득될 때마다 현재 획득된 타겟 픽처 블록에 기초하여 현재 픽처 블록의 후보 모션 정보가 결정될 수도 있음을 이해해야 한다.
본 출원의 이 실시예에서의 인터 예측 방법은 병진 모션 모델에 기초한 인터 예측에 적용될 수 있고, 비 병진 모션 모델에 기초한 인터 예측에도 적용될 수 있다.
선택적으로, N개의 타겟 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보를 결정하는 것은, N개의 타겟 픽처 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보를 결정하는 것을 포함한다.
비 병진 모션 모델에서, 본 출원의 이 실시예에서의 인터 예측 방법은 구체적으로 상속된 제어 포인트 모션 벡터 예측 방법일 수 있다는 것을 이해해야 한다. 이 경우, 현재 픽처 블록의 후보 모션 정보는 실제로 현재 픽처 블록의 제어 포인트의 후보 모션 정보이다.
상속된 제어 포인트 모션 벡터 예측 방법에서, 현재 픽처 블록의 제어 포인트의 모션 벡터는 이웃하는 인코딩된 아핀 코딩 블록의 제어 포인트의 모션 벡터 및 아핀 코딩 블록의 모션 모델을 이용하여 도출된다.
예를 들어, 현재 픽처 블록이 제1 이웃 픽처 블록을 갖고, 제1 이웃 픽처 블록이 아핀 코딩 블록인 경우, 현재 픽처 블록의 제어 포인트의 모션 정보는 제1 이웃 픽처 블록의 제어 포인트의 모션 정보 및 제1 이웃 픽처 블록에 대응하는 아핀 모델에 기초하여 도출될 수 있다.
선택적으로, N개의 타겟 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보를 결정하는 것은, N개의 타겟 픽처 블록의 모션 정보를 현재 픽처 블록의 후보 모션 정보로 결정하는 것을 포함한다.
병진 모션 모델에서, 각 픽처 블록의 각 위치의 모션 정보는 동일하다는 것을 이해해야 한다. 따라서, 현재 픽처 블록의 이웃 픽처 블록의 모션 정보는 현재 픽처 블록의 후보 모션 정보로서 직접 결정될 수 있다.
103: 모션 정보 후보 리스트에 기초하여 현재 픽처 블록에 대해 인터 예측을 수행한다.
본 출원에서는, 상이한 타겟 픽처 블록들이 현재 픽처 블록의 복수의 이웃 위치가 위치하는 픽처 블록으로부터 결정되어, 현재 블록의 후보 모션 정보는 획득한 타겟 픽처 블록에 기초하여 직접 결정될 수 있다. 또한, 후보 모션 정보가 동일한지 여부를 비교하지 않고 모션 정보 후보 리스트에 후보 모션 정보가 직접 추가된다. 이것은 모션 정보 후보 리스트를 획득하는 동안 비교 동작을 감소시켜, 인터 예측 효율을 향상시킨다.
선택적으로, 일 실시예에서, 현재 픽처 블록의 M개의 이웃 위치가 위치하는 M개의 픽처 블록으로부터 N개의 타겟 픽처 블록을 결정하는 것은, 현재 픽처 블록의 현재 이웃 위치가 위치하는 픽처 블록을 결정하는 것과, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 상이한 경우, 현재 이웃 위치가 위치하는 픽처 블록을 현재 픽처 블록의 타겟 픽처 블록으로 결정하는 것을 포함한다.
현재의 이웃 위치가 위치하는 픽처 블록이 획득된 타겟 픽처 블록 중 적어도 하나의 제1 타겟 픽처 블록과 동일한 경우, 이는 현재의 이웃 위치가 위치하는 픽처 블록과 동일한 픽처 블록이 획득된 타겟 픽처 블록에 존재함을 나타낸다는 것을 이해해야 한다. 이후에 반복되는 후보 모션 정보를 얻는 것을 피하기 위해, 현재 이웃 위치가 위치하는 픽처 블록이 폐기되어야 하고, 그 후 현재 픽처 블록의 다음 이웃 위치들이 계속해서 순회된다.
모션 정보 후보 리스트를 구성하는 프로세스에서 비교 양을 더욱 줄이기 위해, 현재 픽처 블록의 서로 다른 쪽에 있는 픽처 블록만 비교될 수 있다. 현재 픽처 블록의 서로 다른 쪽에 위치한 픽처 블록의 경우, 현재 블록의 다른 쪽에 현재 위치하는 픽처 블록은 서로 다른 픽처 블록임을 비교없이 바로 판단할 수 있다.
선택적으로, 현재 이웃 위치에 있는 픽처 블록이 현재 픽처 블록의 제1 측에 있는 경우, 도 3에 도시된 방법은, 현재 픽처 블록의 제1 측의 적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록 내에 존재할 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하는 것과, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 다른 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 다르다고 판단하는 것을 더 포함한다.
또한, 도 3에 도시된 방법은, 현재 픽처 블록의 제1 측의 어떠한 제1 타겟 픽처 블록도 획득된 타겟 픽처 블록에 존재하지 않는 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 다르다고 판단하는 것을 포함한다.
획득된 타겟 픽처 블록에 현재 픽처 블록의 제1 측에 어떠한 제1 타겟 픽처 블록도 존재하지 않는 경우(획득된 타겟 픽처 블록이 현재 픽처 블록의 제1 측에 위치하지 않음), 현재 이웃 위치가 위치하는 픽처 블록이 획득된 타겟 픽처 블록 중 어느 하나와 다르다고 바로 판단할 수 있다는 것을 이해해야 한다.
즉, 현재 이웃 위치가 위치하는 픽처 블록에 기초하여 현재 픽처 블록의 타겟 픽처 블록이 결정되기 전에, 먼저 현재 이웃 위치가 위치하는 픽처 블록과 동일 측(현재 픽처 블록의 동일 측)에 있는 타겟 픽처 블록이 획득된 타겟 픽처 블록인지 여부가 판정된다. 현재 이웃 위치가 위치하는 픽처 블록과 동일 측에 있는 타겟 픽처 블록이 획득된 타겟 픽처 블록에 존재하지 않으면, 현재 이웃 위치가 위치하는 픽처 블록은 바로 타겟 픽처 블록으로 결정될 수 있다.
그러나, 현재 이웃 위치가 위치하는 픽처 블록과 동일 측에 있는 타겟 픽처 블록이 획득된 타겟 픽처 블록에 존재하면, 후속적으로, 현재 이웃 위치가 위치하는 픽처 블록과 동일 측에 있는 타겟 픽처 블록만 현재 이웃 위치가 위치하는 픽처 블록과 비교하면 된다. 현재 이웃 위치가 위치하는 픽처 블록과 동일한 픽처 블록이 현재 이웃 위치가 위치하는 픽처 블록과 동일 측의 타겟 픽처 블록에 존재하지 않으면, 현재 이웃 위치가 위치하는 픽처 블록은 현재 픽처 블록의 타겟 픽처 블록으로 결정될 수 있다.
두 개의 이웃 픽처 블록이 현재 픽처 블록의 동일 측에 있다는 것은 두 개의 이웃 픽처 블록이 모두 현재 픽처 블록의 좌측 또는 상측에 있다는 것을 의미할 수 있다는 것을 이해해야 한다. 또한, 서로 다른 이웃 픽처 블록이 현재 픽처 블록의 동일 측 또는 상이한 측에 있다는 것은 현재 픽처 블록의 공간적으로 이웃하는 픽처 블록에 대해 상대적이다. 공간적으로 이웃하는 픽처 블록들 사이에만 동일 측과 상이한 측의 개념이 있다.
선택적으로, 일 실시예에서, 이 방법은 현재 픽처 블록의 제1 측에 있는 적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록들에 존재하는지 여부를 판단하는 것을 더 포함한다.
획득된 타겟 픽처 블록이 현재 픽처 블록의 제1 측에 있는지 여부는 획득된 타겟 픽처 블록의 좌표와 현재 픽처 블록의 좌표에 기초하여 판정될 수 있다는 것을 이해해야 한다.
현재 픽처 블록의 제1 측의 픽처 블록이 획득된 타겟 픽처 블록에 존재하는지 여부를 판단하는 것은 또한 현재 이웃 위치가 위치하는 픽처 블록과 동일 측에 있는 타겟 픽처 블록이 획득된 타겟 픽처 블록에 존재하는지 여부를 판단하는 것으로 고려될 수 있다(왜냐하면 이 경우에는, 현재 이웃 위치가 위치하는 픽처 블록이 현재 픽처 블록의 제1 측에 있기 때문에).
선택적으로, 일 실시예에서, 현재 픽처 블록의 제1 측의 적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록에 존재하는지 여부를 판단하는 것은, 획득된 타겟 픽처 블록의 미리 설정된 위치의 픽셀 좌표와 현재 픽처 블록의 미리 설정된 위치의 픽셀 좌표에 기초하여, 획득된 타겟 픽처 블록이 현재 픽처 블록의 제1 측에 있는지 여부를 판단하는 것을 포함한다.
미리 설정된 위치는 픽처 블록의 좌상단 코너(또는 우상단 코너 또는 다른 특정 위치)일 수 있다.
예를 들어, 도 4에 도시된 바와 같이, 현재 픽처 블록의 좌상단 코너의 픽셀 좌표는 (x0, y0)이다. 획득된 타겟 픽처 블록은 타겟 픽처 블록 1 및 타겟 픽처 블록 2를 포함한다. 타겟 픽처 블록 1의 좌상단 코너의 픽셀 좌표는 (x1, y1)이다. 타겟 픽처 블록 2의 좌상단 코너의 픽셀 좌표는 (x2, y2)이다. 현재 이웃 위치가 위치하는 픽처 블록은 픽처 블록 3이고, 픽처 블록 3의 좌상단 코너의 픽셀 좌표는 (x3, y3)이다. x1<x0이면, 타겟 픽처 블록 1은 현재 픽처 블록의 좌측에 있다. y2<y0이면, 타겟 픽처 블록 2는 현재 픽처 블록의 상측에 있다. y3<y0이면, 타겟 픽처 블록 3은 현재 픽처 블록의 상측에 있다. 이 경우, 픽처 블록 3 및 타겟 픽처 블록 2 모두가 현재 픽처 블록의 상측에 있고, 픽처 블록 3과 타겟 픽처 블록 2가 동일한지 여부만 비교하면 된다.
예를 들어, 도 4에 도시되어 있는 바와 같이, 현재 픽처 블록은 CU 0이고, 현재 픽처 블록의 이웃 픽처 블록은 CU 1, CU 2, 및 CU 3을 포함한다. CU 1은 CU 0의 좌측에 있고, CU 2 및 CU 3은 모두 CU 0의 상측에 있다. 따라서, CU 2 및 CU 3은 CU 0의 동일 측에 있고, CU 1 및 CU 2는 CU 0의 다른 측에 있으며, CU 2 및 CU 3은 또한 CU 0의 동일 측에 있다.
도 4에 도시되어 있는 바와 같이, 현재 이웃 위치는 B0이고, B0이 위치하는 픽처 블록은 CU 3이며, CU 3은 CU 0의 상측에 있다고 가정한다. CU 0 상측의 픽처 블록이 획득된 타겟 픽처 블록에 존재하지 않으면, CU 3은 각각의 획득된 타겟 픽처 블록과 상이하다고 바로 판단할 수 있다. 이 경우, CU 3은 CU 0의 타겟 픽처 블록으로 바로 결정될 수 있다. 그러나, CU 0 상측의 픽처 블록(CU 2)이 획득된 타겟 픽처 블록에 존재한다면, CU 2와 CU 3이 동일한지 여부를 더 비교해야 한다. 비교 후에, CU 2와 CU 3은 상이한 픽처 블록이다. 이 경우, CU 3은 CU 0의 타겟 픽처 블록으로 결정될 수 있다.
다음은 도 5 내지 도 7을 참조하여 전술한 비교 프로세스를 자세히 설명한다.
도 5는 본 출원의 이 실시예에 따른 현재 픽처 블록의 타겟 픽처 블록을 결정하는 개략적인 흐름도이다. 도 5는 각각의 현재 이웃 위치에 기초하여 현재 픽처 블록의 타겟 픽처 블록을 결정하는 프로세스를 보여준다. 도 5에 도시된 프로세스는 단계 101을 세분한 것으로 생각할 수 있다. 도 5에 도시된 프로세스는 단계 201 내지 단계 204를 포함한다. 다음은 단계 201 내지 단계 204를 상세히 설명한다.
201: 현재 픽처 블록의 현재 이웃 위치가 위치하는 픽처 블록을 결정한다.
단계 101에서의 이웃 위치 및 픽처 블록에 대한 설명이 단계 201에도 적용가능하다. 설명을 간단히 하기 위해, 세부사항은 여기서 다시 설명하지 않는다.
202: 현재 픽처 블록의 제1 측에 있는 적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록들에 존재하는지 여부를 판단한다.
현재 이웃 위치가 위치하는 픽처 블록은 현재 픽처 블록의 제1 측에 있고, 단계 202의 프로세스는 현재 이웃 위치가 위치하는 픽처 블록과 동일한 쪽에 있는 픽처 블록이 획득된 타겟 픽처 블록에 존재하는지 여부를 판단하는 것임을 이해해야 한다.
적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록에 존재한다고 단계 202에서 판정되면, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 더 비교할 필요가 있다. 즉, 단계 203이 수행된다.
단계 202에서, 적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록에 존재하지 않는다고 판정될 경우, 획득된 타겟 픽처 블록 각각은 현재 이웃 위치가 위치하는 픽처 블록과 상이한 것으로 간려될 수 있다. 이 경우, 현재 이웃 위치가 위치하는 픽처 블록은 현재 픽처 블록의 타겟 픽처 블록으로 바로 결정될 수 있다. 즉, 단계 204가 바로 수행된다.
203: 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이한지 여부를 판단한다.
단계 203에서 현재 이웃 위치가 위치하는 픽처 블록이 단계 202에서 획득된 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판정되면, 현재 이웃 위치가 위치하는 픽처 블록이 획득된 타겟 픽처 블록과 상이한 것으로 간주될 수 있다. 이 경우, 현재 이웃 위치가 위치하는 픽처 블록은 현재 픽처 블록의 타겟 픽처 블록으로 결정될 수 있다. 즉, 단계 204가 수행된다.
단계 203에서 현재 이웃 위치가 위치하는 픽처 블록이 적어도 하나의 제1 타겟 픽처 블록의 일부와 동일하다고 판정되면, 현재 이웃 위치가 위치하는 픽처 블록은 폐기되어야 하고, 현재 픽처 블록의 이웃 위치가 위치하는 픽처 블록들이 계속 순회된다. 즉, 단계 201이 수행된다.
204: 현재 이웃 위치가 위치하는 픽처 블록을 현재 픽처 블록의 타겟 픽처 블록으로 결정한다.
단계 201 내지 단계 204는 현재 픽처 블록의 타겟 픽처 블록을 결정하는 프로세스로서 고려될 수 있다는 것을 이해해야 한다. 실제로, M개의 픽처 블록 중에서 단계 101에서 현재 픽처 블록의 M개의 이웃 위치가 제각기 위치하는 N개의 타겟 픽처 블록을 결정하기 위해, 단계 201 내지 단계 204는 획득된 타겟 픽처 블록의 개수가 미리 설정된 개수에 도달하거나 또는 미리 설정된 요건을 만족할 때까지 복수 회 반복해서 수행될 수 있다.
다음은 도 4를 예로서 이용하여 단계 201 내지 단계 204의 프로세스를 설명한다. 도 4에 도시되어 있는 바와 같이, 현재 픽처 블록은 CU 0이라고 가정한다. 이 경우, 현재 이웃 위치는 B0이고, 현재 이웃 위치(B0)가 위치하는 픽처 블록은 CU 3이다. 획득된 타겟 픽처 블록들 중 CU 2만 CU 0의 상측에 있다고 가정한다. 이 경우, CU 3과 CU 2가 동일한지 여부만 비교하면 된다. 도 4에 도시되어 있는 바와 같이, CU 3과 CU 2는 서로 다른 픽처 블록에 속한다. 따라서, CU 3이 현재 픽처 블록의 타겟 픽처 블록으로 결정될 수 있다.
현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부는, 현재 이웃 위치가 위치하는 픽처 블록의 특정 위치의 픽셀 좌표가 각각의 제1 타겟 픽처 블록의 특정 위치의 픽셀 좌표와 동일한지 여부를 비교하거나 또는 이웃 위치가 위치하는 픽처 블록의 번호를 각각의 제1 타겟 픽처 블록의 번호와 직접 비교함으로써 판정될 수 있다. 특정 위치의 픽셀 좌표가 동일하거나 픽처 블록의 번호가 동일한 경우, 두 픽처 블록은 동일하다고 간주될 수 있다.
따라서, 본 출원에서, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하는 것은 다음 두 구현을 포함한다.
제1 구현예에서, 픽처 블록들이 동일한지 여부를 판단하기 위해 특정 위치의 픽셀 좌표들을 비교한다.
제1 구현예에 포함되는 특정 비교 프로세스는 다음과 같다.
(1) 현재 이웃 위치가 위치하는 픽처 블록의 미리 설정된 위치의 픽셀 좌표가 적어도 하나의 제1 타겟 픽처 블록 각각의 미리 설정된 위치의 픽셀 좌표와 동일한지의 여부를 판단한다.
(2) 현재 이웃 위치가 위치하는 픽처 블록의 미리 설정된 위치의 픽셀 좌표가 적어도 하나의 제1 타겟 픽처 블록 각각의 미리 설정된 위치의 픽셀 좌표와 상이한 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 결정한다.
제1 구현예에서, 현재 이웃 위치가 위치하는 픽처 블록의 미리 설정된 위치의 픽셀 좌표가 적어도 하나의 제1 타겟 픽처 블록 내의 제1 타겟 픽처 블록의 미리 설정된 위치의 픽셀 좌표와 완전히 동일한 경우, 현재 이웃 위치가 위치하는 픽처 블록은 제1 타겟 픽처 블록과 동일하다고 판정한다는 것을 이해해야 한다.
선택적으로, 제1 구현예에서, 미리 설정된 위치는 픽처 블록의 좌상단 코너, 우상단 코너, 좌하단 코너, 우하단 코너, 중앙 위치 등일 수 있다.
이상은 미리 설정된 위치의 단지 몇몇 예일 뿐이라는 것을 이해해야 한다. 실제로, 여기서 미리 설정된 위치는 이와 달리 픽처 블록의 임의의 다른 특정 위치(예컨대, 픽처 블록의 상측, 하측, 좌측 또는 우측의 중심점 위치)일 수도 있다. 이는 본 출원에 제한되지 않는다.
제2 구현예에서, 픽처 블록들이 동일한지 여부를 판단하기 위해 픽처 블록의 번호가 비교된다.
제2 구현예에 포함되는 특정 비교 프로세스는 다음과 같다.
(3) 현재 이웃 위치가 위치하는 픽처 블록의 번호가 각각의 적어도 하나의 제1 타겟 픽처 블록 번호와 동일한지 여부를 판단한다.
(4) 현재 이웃 위치가 위치하는 픽처 블록의 번호가 각각의 적어도 하나의 제1 타겟 픽처 블록 번호와 상이한 경우, 현재 이웃 위치가 위치하는 픽처 블록은 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 결정한다.
제2 구현예에서, 현재 이웃 위치가 위치하는 픽처 블록의 번호가 적어도 하나의 제1 타겟 픽처 블록 내의 제1 타겟 픽처 블록의 번호와 동일한 경우, 현재 이웃 위치가 위치하는 픽처 블록은 제1 타겟 픽처 블록과 동일하다고 판정한다는 것을 이해해야 한다.
선택적으로, 제2 구현예에서, 각각의 픽처 블록은 고유 번호에 대응하고, 픽처 블록과 번호는 일대일로 대응한다. 픽처 블록의 번호는 코딩 프로세스에서 각 픽처 블록에 대해 설정된 번호일 수 있다. 또한, 여기서 번호는 아이덴티티(identity, ID) 번호라고도 한다.
선택적으로, 일 실시예에서, 도 3에 도시된 방법은 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록들과 동일한지 여부를 판단하는 것을 더 포함한다.
구체적으로, 도 3에 도시된 방법에서는, 현재 이웃 위치가 위치하는 픽처 블록과 동일 측에 있는 픽처 블록이 획득된 타겟 픽처 블록에 존재하는지 여부가 고려되지 않을 수 있다. 대신에, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록들과 동일한지 여부를 판단하기 위해, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록들과 일대일로 비교된다.
도 6은, 본 출원의 이 실시예에서 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록들과 동일한지 여부를 판단하는 프로세스를 보여준다.
도 6에 도시된 프로세스는 단계 301 내지 단계 303을 포함한다. 다음은 단계 301 내지 단계 303을 상세히 설명한다.
301: 현재 픽처 블록의 현재 이웃 위치가 위치하는 픽처 블록을 결정한다.
302: 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이한지 여부를 판단한다.
적어도 하나의 제1 타겟 픽처 블록은, 획득된 타겟 픽처 블록들 내에 있으며 현재 이웃 위치가 위치하는 픽처 블록과 동일한 쪽에 있는 픽처 블록임을 이해해야 한다.
예를 들어, 현재 이웃 위치가 위치하는 픽처 블록이 현재 픽처 블록의 상측에 있다고 가정한다. 이 경우, 적어도 하나의 제1 타겟 픽처 블록은 현재 픽처 블록의 상측에 있는 픽처 블록이다.
단계 302에서 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판정될 경우, 현재 이웃 위치가 위치하는 픽처 블록이 현재 픽처 블록의 획득된 타겟 픽처 블록과 상이한 것으로 간주될 수 있다. 이 경우, 현재 이웃 위치가 위치하는 픽처 블록은 현재 픽처 블록의 타겟 픽처 블록으로 바로 결정될 수 있다.
단계 302에서 현재 이웃 위치가 위치하는 픽처 블록이 적어도 하나의 제1 타겟 픽처 블록의 일부와 동일하다고 판정되면, 현재 이웃 위치가 위치하는 픽처 블록은 폐기되어야 하고, 현재 픽처 블록의 이웃 위치가 위치하는 픽처 블록이 계속 순회된다. 즉, 단계 301이 수행된다.
303: 현재 이웃 위치가 위치하는 픽처 블록을 현재 픽처 블록의 타겟 픽처 블록으로 결정한다.
선택적으로, 일 실시예에서, N개의 타겟 픽처 블록이 아핀 픽처 블록인 경우, 현재 픽처 블록의 후보 모션 정보는 구체적으로 현재 픽처 블록의 제어 포인트의 후보 모션 정보이다. 이 경우, 도 3에 도시된 방법의 단계(102)는 구체적으로, N개의 타겟 픽처 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 보션 정보를 결정하는 것을 포함한다.
현재 픽처 블록의 제어 포인트의 후보 모션 정보가 N개의 타겟 픽처 블록들 각각의 제어 포인트의 모션 정보에 기초하여 결정될 경우, 특히 현재 픽처 블록의 제어 포인트의 후보 모션 정보는 각각의 타겟 픽처 블록의 제어 포인트의 모션 정보 및 타겟 픽처 블록에 대응하는 아핀 모델에 기초하여 결정될 수 있다는 것을 이해해야 한다.
아핀 모델은 실제로 비 병진 모션 모델에서 특정 예측 모델이다. 비 병진 모션 모델 기반의 예측에서, 현재 코딩 블록 내 각 서브모션 보상 유닛의 모션 정보를 도출하기 위해 인코더측과 디코더측에 동일한 모션 모델이 사용되며, 예측 효율을 높이기 위해, 서브모션 보상 유닛의 모션 정보에 기초하여 모션 보상이 수행되어 예측 블록을 획득한다.
아핀 모델은 4-파라미터 아핀 모션 모델 및 6-파라미터 아핀 모션 모델을 포함할 수 있다. 아핀 모델에 특별히 포함된 모델의 유형은 본 출원에서 제한되지 않는다.
다음은 4-파라미터 아핀 모션 모델 및 6-파라미터 아핀 모션 모델을 각각 상세히 설명한다.
4-파라미터 아핀 모션 모델은 수식 (1)로 표현될 수 있다.
Figure pct00001
(1)
수식 (1)에서 볼 수 있듯이, 4-파라미터 아핀 모션 모델은 두 샘플의 모션 벡터 및 현재 픽처 블록의 좌상단 코너의 픽셀에 대한 두 샘플의 좌표를 이용하여 표현될 수 있다. 모션 모델 파라미터를 나타내는 데 사용되는 샘플은 제어 포인트라고도 한다.
좌상단 코너(0, 0)의 샘플과 우상단 코너(W, 0)의 샘플이 제어 포인트로 사용될 경우, 현재 코딩 블록의 좌상단 코너 및 우상단 코너의 제어 포인트의 모션 벡터 (vx0, vy0) 및 (vx1, vy1)이 먼저 결정된다. 그 다음에, 현재 코딩 블록 내의 각 서브모션 보상 유닛의 모션 정보가 수식 (2)에 따라 도출된다. (x, y)는 현재 코딩 블록의 좌상단 코너의 픽셀에 대한 서브모션 보상 유닛의 좌표이고, W는 현재 코딩 블록의 폭이다.
Figure pct00002
(2)
6-파라미터 아핀 모션 모델은 수식 (3)으로 표현된다.
Figure pct00003
(3)
6-파라미터 아핀 모션 모델은 세 샘플의 모션 벡터 및 현재 코딩 블록의 좌상단 코너의 픽셀에 대한 이들 세 샘플의 좌표로 표현될 수 있다.
좌상단 코너(0, 0)의 샘플, 우상단 코너(W, 0)의 샘플, 및 좌하단 코너(0, H)의 샘플이 제어 포인트로 사용될 경우, 현재 코딩 블록의 좌상단 코너, 우상단 코너, 및 좌하단 코너의 제어 포인트의 모션 벡터 (vx0, vy0), (vx1, vy1), 및 (vx2, vy2)가 먼저 결정된다. 그 다음에, 현재 코딩 블록 내의 각 서브모션 보상 유닛의 모션 정보가 수식 (4)에 따라 도출된다. (x, y)는 현재 코딩 블록의 좌상단 코너의 픽셀에 대한 서브모션 보상 유닛의 좌표이고, W 및 H는 제각기 현재 코딩 블록의 폭 및 높이이다.
Figure pct00004
(4)
상속된 제어 포인트 모션 벡터 예측 방법에서, 현재 블록의 제어 포인트의 모션 벡터는 이웃하는 인코딩된 아핀 코딩 블록의 모션 모델을 이용하여 도출된다는 것을 이해해야 한다.
도 7을 참조하면, 다음은 타겟 픽처 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 모션 정보를 도출하는 프로세스를 설명하기 위한 예로서 A1을 사용한다.
도 7에 도시되어 있는 바와 같이, A1이 위치하느 코딩 블록은 CU 1이고, 현재 픽처 블록은 CU 0이다. CU 1이 4-파라미터 아핀 코딩 블록인 경우, 블록(CU 1)의 좌상단 코너(x4, y4)의 모션 벡터(vx4, vy4)와 우상단 코너(x5, y5)의 모션 벡터(vx5, vy5)가 획득된다. CU 1의 제어 포인트의 모션 정보가 획득된 후에, 수식 (5)에 따른 계산을 통해 CU 0의 좌상단 코너(x0, y0)의 모션 벡터(vx0, vy0)가 획득되고, 수식 (6)에 따른 계산을 통해 CU 0의 우상단 코너(x1, y1)의 모션 벡터(vx1, vy1)가 획득된다.
Figure pct00005
(5)
Figure pct00006
(6)
CU 1이 6-파라미터 아핀 코딩 블록인 경우, CU 1의 좌상단 코너(x4, y4)의 모션 벡터(vx4, vy4), 우상단 코너(x5, y5)의 모션 벡터(vx5, vy5), 및 좌하단 코너(x6, y6)의 모션 벡터(vx6, vy6)가 획득된다. 그 다음에, 수식 (7)에 따른 계산을 통해 CU 0의 좌상단 코너(x0, y0)의 모션 벡터(vx0, vy0)가 획득되고, 수식 (8)에 따른 계산을 통해 CU 0의 우상단 코너(x1, y1)의 모션 벡터(vx1, vy1)가 획득되며, 그리고 수식 (9)에 따른 계산을 통해 현재 아핀 코딩 블록의 우상단 코너(x2, vy2)의 모션 벡터(vx2, vy2)가 획득된다.
Figure pct00007
(8)
Figure pct00008
(9)
Figure pct00009
(10)
타겟 픽처 블록의 제어 포인트의 모션 정보 및 대응하는 아핀 모델에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보가 계산될 때, 이웃 코딩 블록 및 현재 코딩 블록의 모션 모델을 표현하기 위해 다른 제어 포인트를 사용하는 방법이 이 응용에도 적용가능함을 이해해야 하며, 세부사항은 여기서 다시 설명하지 않는다.
선택적으로, 일 실시예에서, N개의 타겟 픽처 블록이 정상 픽처 블록(넌-아핀 픽처 블록)인 경우, 도 3에 도시된 방법의 단계 102는 특히 N개의 타겟 픽처 블록의 모션 정보를 현재 픽처 블록의 후보 모션 정보로 결정하는 것을 포함한다.
다음은 도 2를 참조하여 본 출원의 실시예들에서의 인터 예측 방법을 상세히 설명한다. 도 2 내지 도 7에 설명된 방법은 인코더 측 및 디코더 측 모두에 대해 수행될 수 있으며, 비병진 모델에서의 인터 예측 및 병진 모델에서의 인터 예측 모두에 적용할 수 있다는 것을 이해해야 한다.
특정 예들을 참조하여, 이하에서는 상이한 모델의 본 출원의 실시예들에서 인터 예측의 모션 정보 후보 리스트를 획득하는 프로세스를 상세히 설명한다.
예 1: 아핀 모드에서 모션 정보 후보 리스트를 구성하는 방식 1
예 1에서, 요건을 만족하는 아핀 코딩 블록이 발견될 때마다, 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보가 결정되고, 획득된 후보 모션 정보가 모션 정보 후보 리스트에 추가된다.
예 1에서, 현재 픽처 블록의 제어 포인트의 후보 모션 정보는 주로 상속된 제어 포인트 모션 벡터 예측 방법을 사용하여 도출되고, 도출된 제어 포인트의 후보 모션 정보는 모션 정보 후보 리스트에 추가된다. 예 1의 특정 프로세스가 도 8에 도시되어 있다. 도 8에 도시된 프로세스는 단계 401 내지 단계 405를 포함하며, 다음은 단계 401 내지 단계 405를 상세하게 설명한다.
401: 현재 픽처 블록의 모션 정보 후보 리스트를 획득한다.
단계 401에서 획득된 모션 정보 후보 리스트는 현재 픽처 블록에 대해 새로 확립된 모션 정보 후보 리스트일 수 있다(이 경우에는, 모션 정보 후보 리스트가 비어있고 어떠한 모션 정보도 포함하지 않는다). 또는, 모션 정보 후보 리스트는 현재 픽처 블록에 대해 이미 확립된 모션 정보 후보 리스트이고, 이 모션 정보 후보 리스트는 일부 모션 정보를 이미 포함하고 있다.
402: 현재 픽처 블록의 이웃 위치들을 순회하여 현재 이웃 위치가 위치하는 아핀 코딩 블록을 획득한다.
예 1에서, 본 출원의 실시예들의 인터 예측 방법을 설명하기 위한 예로서 아핀 코딩 모델이 사용된다는 것을 이해해야 한다. 따라서, 단계 402에서, 현재 픽처 블록의 이웃 위치들을 순회하는 프로세스에서, 순회된 이웃 위치가 위치하는 픽처 블록이 아핀 코딩 블록인지 여부가 결정될 필요가 있다. 픽처 블록이 아핀 코딩 블록이면, 아핀 코딩 블록이 획득되고, 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보가 도출된다. 이웃 위치가 위치하는 픽처 블록이 병진 블록이면, 병진 블록에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보가 도출될 수 있다. 따라서, 단계 S402에서, 이웃 위치가 위치하는 픽처 블록이 병진 블록이면, 이웃 위치가 위치하는 순회된 픽처 블록이 아핀 코딩 블록이 될 때까지 현재 픽처 블록의 다른 이웃 위치들이 계속해서 순회되어야 한다.
예를 들어, 도 4에 도시된 바와 같이, 현재 픽처 블록의 이웃 위치는 A1, B1, B0, A0, 및 B2의 순서로 순회될 수 있고, 이웃 위치가 위치하는 아핀 코딩 블록이 획득된다.
403: 모션 정보 후보 리스트가 비어있는지 여부를 판단한다.
단계 403에서 모션 정보 후보 리스트가 비어있다고 판정되면, 현재 픽처 블록의 제어 포인트의 후보 모션 정보는 이웃 위치가 위치하는 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 바로 도출될 수 있고, 도출된 제어 포인트의 후보 모션 정보는 모션 정보 후보 리스트에 추가된다. 즉, 단계 405가 바로 수행된다.
단계 403에서 모션 정보 후보가 비어있지 않다고 판정되면, 반복된 모션 정보를 모션 정보 후보 리스트에 추가하는 것을 피하기 위해, 추가적인 판단이 수행되어야 한다. 즉, 단계 404가 수행된다.
404: 현재 이웃 위치가 위치하는 아핀 코딩 블록이 모션 정보 후보 리스트 내의 각각의 모션 정보에 대응하는 아핀 코딩 블록과 상이한지 여부를 판단한다.
모션 정보 후보 리스트 내의 각각의 모션 정보는 하나의 아핀 코딩 블록에 대응하며, 각각의 모션 정보는 대응하는 아핀 코딩 블록으로부터 도출된다는 것을 이해해야 한다.
현재 이웃 위치가 위치하는 아핀 코딩 블록이 모션 정보 후보 리스트 내의 각각의 모션 정보에 대응하는 아핀 코딩 블록과 상이한 경우, 현재 이웃 위치가 위치하는 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 도출되는 현재 픽처 블록의 후보 모션 정보는 모션 정보 후보 리스트 내의 모션 정보와 상이할 확률이 높다. 이 경우, 현재 픽처 블록의 후보 모션 정보는 현재 이웃 위치가 위치하는 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 결정될 수 있고, 이 후보 모션 정보는 모션 정보 후보 리스트에 추가된다. 즉, 단계 405가 수행된다.
단계 404에서, 현재 이웃 위치가 위치하는 아핀 코딩 블록이 모션 정보 후보 리스트 내의 일부 모션 정보에 대응하는 아핀 코딩 블록과 동일한 경우, 현재 이웃 위치가 위치하는 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 도출되는 현재 픽처 블록의 제어 포인트의 후보 모션 정보는 모션 정보 후보 리스트 내의 기존의 후보 모션 정보와 동일하다. 이 경우, 현재 픽처 블록의 이웃 위치들은 다시 순회되어야 하고, 현재 이웃 위치가 위치하는 아핀 코딩 블록이 계속해서 탐색된다. 즉, 단계 402가 수행된다.
단계 404에서, 현재 이웃 위치가 위치하는 코딩 블록이 모션 정보 후보 리스트 내의 각각의 모션 정보에 대응하는 아핀 코딩 블록과 동일한지 여부는 현재 이웃 위치가 위치하는 코딩 블록의 특정 위치의 좌표가 모션 정보 후보 리스트 내의 각각의 모션 정보에 대응하는 아핀 코딩 블록의 특정 위치의 좌표와 동일한지 여부를 비교함으로써 판정될 수 있다는 것을 이해해야 한다.
구체적으로, 현재 이웃 위치가 위치하는 아핀 코딩 블록의 좌상단 코너의 픽셀 좌표(x, y)가 모션 정보 후보 리스트 내의 지존의 모션 정보에 대응하는 아핀 코딩 블록의 좌상단 코너의 픽셀 좌표(xn, yn)와 비교될 수 있다. n은 0 이상이고 N-1보다 작으며, N은 모션 정보 후보 리스트에 포함된 모션 정보의 수량(구성된 모션 정보 후보 리스트의 길이)이다.
예를 들어, 도 4에 도시된 바와 같이, 현재 이웃 위치가 B1이고, B1이 속하는 아핀 코딩 블록이 CU 2이며, CU 2의 좌상단 코너의 좌표는 (x2, y2)라고 가정한다. 이 경우, 모션 정보 후보 리스트가 비어있으면, 현재 픽처 블록의 제어 포인트의 모션 정보는 CU 2의 제어 포인트의 모션 정보에 기초하여 바로 도출될 수 있으며, 도출된 제어 포인트의 모션 정보는 모션 정보 후보 리스트에 추가된다. 이 경우, 모션 정보 호부 리스트가 비어있지 않고, 하나의 모션 정보만 모션 정보 리스트에 존재하며, 모션 정보에 대응하는 픽처 블록이 CU 1이고, CU 1의 좌상단 코너의 좌표가 (x1, y1)이면, x1이 x2와 같은지 여부와 y1이 y2와 같은지 여부가 판정되어 CU 2가 CU 1과 동일한지 여부를 판단할 수 있다. 도 4에 도시된 바와 같이, CU 2의 좌상단 코너의 수직 좌표는 CU 1의 좌상단 좌표의 수직 좌표와 동일하고, CU 2의 좌상단 코너의 수평 좌표는 CU 1의 좌상단 코너의 수평 좌표와 상이하다. 따라서, CU 2는 CU 1과 상이하다. 다음으로, 현재 픽처 블록의 제어 포인트의 후보 모션 정보는 CU 2의 제어 포인트의 모션 정보에 기초하여 도출될 수 있으며, 제어 포인트의 후보 모션 정보는 모션 정보 후보 리스트에 추가된다.
또한, 단계 404에서, 이웃 위치가 위치해 있고 현재 픽처 블록의 동일 측에 있는 아핀 코딩 블록만이 비교될 수 있다. 현재 이웃 위치가 위치하는 아핀 코딩 블록은 모션 정보 후보 리스트 내의 각각의 모션 정보에 대응하는 아핀 코딩 블록과 비교되지 않는다. 이것은 모션 정보 후보 리스트를 구성하는 것의 복잡도를 감소시킨다.
또한, 현재 이웃 위치가 위치하는 아핀 코딩 블록이 모션 정보 후보 리스트 내의 각각의 모션 정보에 대응하는 아핀 코딩 블록과 동일한지 여부를 판단하기 위해, 고유의 카운트 값 또는 고율의 ID 값이 각각의 아핀 코딩 블록에 더 할당될 수 있다. 아핀 코딩 블록들이 동일한지 여부는 아핀 코딩 블록의 카운트 값이나 ID 값을 비교함으로써 판정된다.
405: 현재 이웃 위치가 위치하는 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보를 도출하고, 이 제어 포인트의 후보 모션 정보를 모션 정보 후보 리스트에 추가한다.
단계 401 내지 단계 405는 모션 정보 후보 리스트를 구성하는 프로세스의 일부만 보여준다는 것을 이해해야 한다. 실제로, 모션 정보 후보 리스트를 구성하는 프로세스에서, 모션 정보 후보 리스트에 추가된 모션 정보의 수량이 미리 설정된 수량(예컨대, 최대 리스트 길이가 구체적으로 1, 2, 3, 4 또는 5일 수 있다)에 도달하는지 여부가 또한 판단될 수 있다. 모션 정보의 수량이 미리 설정된 수량에 도달하면, 모션 정보 후보 리스트의 구성이 완료된다. 모션 정보의 수량이 미리 설정된 수량에 도달하지 않으면, 모션 정보를 획득하기 위해 현재 픽처 블록의 이웃 위치들이 계속 순회된다.
본 출원에서, 모션 정보 후보 리스트에서 모션 정보를 획득하기 위해, 코딩 블록 후보 리스트가 먼저 구성될 수 있고, 다른 아핀 코딩 블록이 코딩 블록 후보 리스트에 추가된다. 이런 방식으로, 코딩 블록 후보 리스트가 완료된 후에, 코딩 블록 후보 리스트 내의 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보가 바로 도출될 수 있고, 제어 포인트의 후보 모션 정보는 모션 정보 후보 리스트에 추가된다. 예 2를 참조하여, 이하에서는 코딩 블록 후보 리스트를 먼저 구성한 다음, 코딩 블록 후보 리스트에 기초하여 모션 정보 후보를 획득하는 것을 자세히 설명한다.
예 2: 아핀 모드에서 모션 정보 후보 리스트를 구성하는 방식 2
예 1과 달리, 예 2에서는, 코딩 블록 후보 리스트가 먼저 구성되고, 그 다음에 코딩 블록 후보 리스트에 기초하여 모션 정보 후보 리스트가 획득된다.
예 1에서, 이웃 위치가 위치하는 아핀 코딩 블록이 결정될 때마다, 아핀 코딩 블록의 현재 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보가 도출된다는 것을 이해해야 한다. 그러나, 예 2에서, 모든 아핀 코딩 블록이 먼저 결정되고, 그 다음에 모든 아핀 코딩 블록이 결정된 후의 모든 아핀 코딩에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보가 도출된다. 예 2에서, 모션 정보 후보 리스트 내의 후보 모션 정보가 한번 구성된다. 예 1에서 후보 모션 정보를 복수 회 구성하는 방식에 비해, 후보 모션 정보를 구성하는 이 방식은 더 간단하다. 다음은 예 2의 프로세스를 설명한다. 전술한 분석에서의 차이 외에, 예 2의 프로세스의 다른 부분은 기본적으로 예 1과 유사하다는 것을 이해해야 한다. 불필요하게 반복하지 않기 위해, 예 2는 아래에서 간략하게 설명한다.
예 2의 특정 프로세스가 도 9에 도시되어 있다. 도 9에 도시된 프로세스는 단계 501 내지 단계 507을 포함하며, 다음은 이들 단계를 설명한다.
501: 현재 픽처 블록의 코딩 블록 후보 리스트를 확립한다.
단계 501에서 코딩 블록 후보 리스트를 확립하는 목적은 현재 픽처 블록의 복수의 이웃 위치가 위치하는 복수의 아핀 코딩 블록을 획득하고, 복수의 아핀 코딩 블록을 코딩 블록 후보 리스트에 추가하는 것이다. 코딩 블록 후보 리스트에는 동일한 아핀 코딩 블록이 존재하지 않는다.
502: 현재 픽처 블록의 이웃 위치들을 순회하여, 현재 이웃 위치가 위치하는 아핀 코딩 블록을 획득한다.
단계 502의 특정 프로세스 및 단계 502의 설명은 예 1의 단계 402의 프로세스 및 단계 402의 설명과 동일하므로, 세부사항은 여기서 다시 설명하지 않는다.
503: 코딩 블록 후보 리스트가 비어있는지 여부를 판단한다.
단계 503에서, 코딩 블록 후보 리스트가 비어있으면, 현재 이웃 위치가 위치하는 아핀 코딩 블록이 코딩 블록 후보 리스트에 바로 추가될 수 있다. 즉, 단계 505가 수행된다.
단계 503에서, 코딩 블록 후보 리스트가 비어있지 않으면, 새로 추가된 아핀 코딩 블록이 코딩 블록 후보 리스트 내의 기존의 코딩 블록과 반복되지 않도록 하기 위해, 현재 이웃 위치가 위치하는 아핀 코딩 블록이 코딩 블록 후보 리스트 내의 기존의 코딩 블록과 비교되어야 하며, 그 후 현재 이웃 위치가 위치하는 아핀 코딩 블록을 코딩 블록 후보 리스트에 추가할지 여부가 결정된다. 즉, 단계 504가 수행된다.
504: 현재 이웃 위치가 위치하는 아핀 코딩 블록이 코딩 블록 후보 리스트 내의 아핀 코딩 블록과 상이한지 여부를 판단한다.
단계 504에서 현재 이웃 위치가 위치하는 아핀 코딩 블록이 코딩 블록 후보 리스트 내의 아핀 코딩 블록과 상이하면, 현재 이웃 위치가 위치하는 아핀 코딩 블록이 코딩 블록 후보 리스트에 추가될 수 있다. 즉, 단계 505가 수행된다.
단계 504에서, 현재 이웃 위치가 위치하는 아핀 코딩 블록과 동일한 코딩 블록이 코딩 블록 후보 리스트 내에 존재하면, 현재 픽처 블록의 이웃 위치들을 다시 순회해서, 이웃 위치가 위치하는 아핀 코딩 블록을 계속 획득한다. 즉, 단계 502가 수행된다.
또한, 단계 504에서, 두 코딩 블록이 동일한지 여부는 코딩 블록의 특정 위치의 픽셀 좌표 또는 번호에 기초하여 판정될 수 있다. 구체적인 판정 프로세스는 예 1의 판정 프로세스와 동일하며, 세부사항은 여기서 다시 설명하지 않는다.
505: 현재 이웃 위치가 위치하는 아핀 코딩 블록을 코딩 블록 후보 리스트에 추가한다.
예를 들어, 도 4에 도시되어 있는 바와 같이, 현재 블록의 주변 이웃 위치들이 위치하는 블록들을 A1, B1, B0, A0, 및 B2의 순서로 순회하여, 이들 위치가 위치하는 아핀 코딩 블록을 찾을 수 있다. 현재 코딩 블록 후보 리스트가 비어있으면, 현재 이웃 위치가 위치하는 아핀 코딩 블록이 코딩 블록 후보 리스트에 바로 추가될 수 있다. 그렇지 않으면(코딩 블록 후보 리스트가 비어있지 않으면), 코딩 블록 후보 리스트 내의 각 코딩 블록을 순회하여, 현재 이웃 위치가 위치하는 아핀 코딩 블록과 동일한 코딩 블록이 코딩 블록 후보 리스트에 존재하는지 여부를 확인한다. 동일한 코딩 블록이 존재하지 않으면, 아핀 코딩 블록이 코딩 블록 후보 리스트에 추가된다.
506: 코딩 블록 후보 리스트가 완료되었는지 여부를 판단한다.
구체적으로, 단계 506에서, 코딩 블록 후보 리스트에 포함된 코딩 블록의 수량이 미리 설정된 수량(또는 최대 리스트 길이)에 도달하는지 여부가 판단될 수 있다. 코딩 블록 후보에 포함된 코딩 블록의 수량이 미리 설정된 수량에 도달하지 않으면, 단계 502는 계속 수행된다.
코딩 블록 후보 리스트에 포함된 코딩 블록의 수량이 미리 설정된 수량에 도달하면, 코딩 블록 후보 리스트의 구성이 완료된다. 그 다음에, 단계 507이 수행될 수 있다.
507: 코딩 블록 후보 리스트 내의 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보를 도출하고, 이 제어 포인트의 후보 모션 정보를 현재 픽처 블록의 모션 정보 후보 리스트에 추가한다.
이상은 예 1 및 예 2를 참조하여 아핀 모델에서 모션 정보 후보 리스트를 결정하는 프로세스를 상세히 설명하였다. 아핀 모델에서, 현재 픽처 블록의 후보 모션 정보는 이웃 위치가 위치하는 아핀 코딩 블록의 제어 포인트의 모션 정보에 기초하여 결정되어야 한다. 그러나, 병진 모델에서는, 현재 픽처 블록의 후보 모션 정보가 이웃 위치가 위치하는 픽처 블록의 모션 정보에 기초하여 바로 결정될 수 있다(이웃 위치가 위치하는 픽처 블록의 모션 정보가 현재 픽처 블록의 후보 모션 정보로서 결정된다).
다음은 예 3 및 예 4를 참조하여 병진 모델에서 모션 정보 후보 리스트를 결정하는 프로세스를 상세히 설명한다.
예 3 및 예 4와 전술한 예 1 및 예 2 사이의 주요 차이점은, 예 3 및 예 4에서는 이웃 위치가 위치하는 코딩 블록의 모션 정보가 현재 픽처 블록의 모션 정보로서 모션 정보 후보 리스트에 바로 추가된다는 데 있다는 것을 이해해야 한다. 그러나, 예 1 및 예 2에서는, 현재 픽처 블록의 제어 포인트의 모션 정보가 이웃 위치가 위치하는 아핀 코딩 블록의 제어 포인트의 모션 정보에만 기초하여 도출될 수 있고, 현재 픽처 블록의 제어 포인트의 모션 정보가 후보 모션 정보로서 모션 정보 후보 리스트에 추가된다. 따라서, 아래에서 예 3 및 예 4를 설명할 때, 불필요하게 반복하지 않기 위해, 반복되는 설명은 가급적 생략한다.
예 3: 병진 모드에서 모션 정보 후보 리스트를 구성하는 방식 1
예 3의 특정 프로세스가 도 10에 도시되어 있다. 도 10에 도시된 프로세스는 단계 601 내지 단계 605를 포함하며, 다음은 이들 단계를 설명한다.
601: 현재 픽처 블록의 모션 정보 후보 리스트를 획득한다.
단계 601에서의 특정 프로세스는 예 1의 단계 401에서의 특정 프로세스와 동일하므로, 세부사항은 여기서 다시 설명하지 않는다.
602: 현재 픽처 블록의 이웃 위치들을 순회하여, 현재 이웃 위치가 위치하는 픽처 블록을 획득한다.
예 1의 단계 402와 달리, 여기서는 이웃 위치들을 순회함으로써 공통 병진 블록이 발견될 수 있다. 분명히, 여기서 순회된 코딩 블록은 대안으로 아핀 코딩 블록일 수 있다. 이것은 여기에 제한되지 않는다.
603: 모션 정보 후보 리스트가 비어있는지 여부를 판단한다.
단계 603에서, 모션 정보 후보 리스트가 비어있다고 판정되면, 현재 이웃 위치가 위치하는 픽처 블록의 모션 정보가 모션 정보 후보 리스트에 현재 픽처 블록의 후보 모션 정보로 바로 추가될 수 있다. 즉, 단계 605가 수행된다.
단계 603에서, 모션 정보 후보 리스트가 비어있지 않다고 판정되면, 모션 정보의 반복을 피하기 위해, 현재 이웃 위치가 위치하는 코딩 블록이 모션 정보 후보 리스트 내의 모션 정보에 대응하는 코딩 블록과 동일한지 여부를 먼저 비교해야 한다. 즉, 단계 604가 수행된다.
또한, 단계 603의 판정 프로세스에서, 모션 정보 후보 리스트가 비어있지 않다고 판정되고, 현재 이웃 위치가 위치하는 픽처 블록이 서브블록 모드의 픽처 블록이 아니면, 현재 이웃 위치가 위치하는 코딩 블록이 모션 정보 후보 리스트 내의 모션 정보에 대응하는 코딩 블록과 동일한지 여부를 비교해야 한다. 즉, 단계 604가 수행된다.
그러나, 모션 정보 후보 리스트가 비어있지 않고, 현재 이웃 위치가 위치하는 픽처 블록이 서브블록 모드의 픽처 블록이면, 현재 이웃 위치가 위치하는 코딩 블록이 모션 정보 후보 리스트 내의 모션 정보에 대응하는 코딩 블록과 동일한지 여부를 비교할 필요가 없다. 현재 이웃 위치가 위치하는 픽처 블록의 모션 정보는 모션 정보 후보 리스트에 바로 추가될 수 있다. 즉, 단계 605가 바로 수행된다.
604: 현재 이웃 위치가 위치하는 코딩 블록이 모션 정보 후보 리스트 내의 각각의 모션 정보에 대응하는 코딩 블록과 동일한지 여부를 판단한다.
단계 604에서, 현재 이웃 위치가 위치하는 코딩 블록이 모션 정보 후보 리스트 내의 각각의 모션 정보에 대응하는 코딩 블록과 상이할 경우, 모션 정보는 반복되지 않는다. 현재 이웃 위치가 위치하는 픽처 블록의 모션 정보는 현재 픽처 블록의 후보 모션 정보로 사용될 수 있고, 후보 모션 정보는 모션 정보 후보 리스트에 추가된다. 즉, 단계 605가 수행된다.
단계 604에서, 현재 이웃 위치가 위치하는 코딩 블록의 모션 정보가 모션 정보 후보 리스트 내의 일부 모션 정보와 동일한 경우, 현재 픽처 블록의 이웃 위치들을 계속 순회해서 현재 이웃 위치가 위치하는 코딩 블록을 획득해야 한다. 즉, 단계 602가 수행된다.
또한, 단계 604에서, 두 코딩 블록이 동일한지 여부는 코딩 블록의 특정 위치의 픽셀 좌표 또는 번호에 기초하여 판정될 수 있다. 구체적인 판정 프로세스는 예 1의 판정 프로세스와 동일하며, 세부사항은 여기서 다시 설명하지 않는다.
605: 현재 이웃 위치가 위치하는 픽처 블록의 모션 정보를 모션 정보 후보 리스트에 추가한다.
단계 605에서, 실제로, 현재 이웃 위치가 위치하는 픽처 블록의 모션 정보는 먼저 현재 픽처 블록의 후보 모션 정보로 결정될 수 있고, 그 다음에 이 후보 모션 정보가 모션 정보 후보 리스트에 추가된다.
예 4: 병진 모드에서 모션 정보 후보 리스트를 구성하는 방식 2
예 3에서, 현재 이웃 위치가 위치하는 코딩 블록이 결정될 때마다, 코딩 블록의 모션 정보가 모션 정보 후보 리스트에 추가된다. 그러나, 예 4에서, 모든 블록이 먼저 결정되고, 모든 코딩 블록이 결정된 후에 모든 코딩 블록의 모션 정보가 모션 정보 후보 리스트에 추가된다. 예 1에서 복수 회 동안 후보 모션 정보를 모션 정보 후보 리스트에 추가하는 방식에 비해, 모션 정보 후보 리스트 내의 모든 후보 모션 정보가 한 동작을 통해 결정될 수 있다. 예 4에서 후보 모션 정보를 구성하는 방식이 더 간단하다.
예 4의 특정 프로세스가 도 11에 도시되어 있다. 도 11에 도시된 프로세스는 단계 701 내지 단계 707을 포함하며, 다음은 이들 단계를 설명한다.
701: 현재 픽처 블록의 코딩 블록 후보 리스트를 확립한다.
단계 701에서의 특정 프로세스는 예 2의 단계 501에서의 특정 프로세스와 동일하므로, 세부사항은 여기서 다시 설명하지 않는다.
702: 현재 픽처 블록의 이웃 위치들을 순회하여, 현재 이웃 위치가 위치하는 코딩 블록을 획득한다.
예 2의 단계 502와 달리, 여기서는 이웃 위치들을 순회함으로써 공통 병진 블록이 발견될 수 있다. 분명히, 여기서 순회된 코딩 블록은 대안으로 아핀 코딩 블록일 수 있다. 이것은 여기에 제한되지 않는다.
703: 코딩 블록 후보 리스트가 비어있는지 여부를 판단한다.
단계 703에서, 코딩 블록 후보 리스트가 비어있으면, 현재 이웃 위치가 위치하는 코딩 블록이 코딩 블록 후보 리스트에 바로 추가될 수 있다. 즉, 단계 705가 수행된다.
단계 703에서, 코딩 블록 후보 리스트가 비어있지 않으면, 새로 추가된 아핀 코딩 블록이 코딩 블록 후보 리스트 내의 기존의 코딩 블록과 반복되지 않도록 하기 위해, 현재 이웃 위치가 위치하는 아핀 코딩 블록과 코딩 블록 후보 리스트 내의 기존의 코딩 블록을 비교해야 한다. 즉, 단계 704가 수행된다.
또한, 단계 703의 판정 프로세스에서, 코딩 블록 후보 리스트가 비어있지 않고, 현재 이웃 위치가 위치하는 픽처 블록이 서브블록 모드의 픽처 블록이 아니면, 현재 이웃 위치가 위치하는 코딩 블록이 코딩 블록 후보 리스트 내의 코딩 블록과 동일한지 여부를 비교해야 한다. 즉, 단계 704가 수행된다.
그러나, 모션 정보 후보 리스트가 비어있지 않고, 현재 이웃 위치가 위치하는 픽처 블록이 서브블록 모드의 픽처 블록이면, 현재 이웃 위치가 위치하는 코딩 블록이 코딩 블록 후보 리스트 내의 코딩 블록과 동일한지 여부를 비교할 필요가 없다. 현재 위치가 위치하는 코딩 블록은 코딩 블록 후보 리스트에 바로 추가될 수 있다. 즉, 단계 705가 바로 수행된다.
704: 현재 이웃 위치가 위치하는 코딩 블록이 코딩 블록 후보 리스트 내의 코딩 블록과 상이한지 여부를 판단한다.
단계 704에서 현재 이웃 위치가 위치하는 코딩 블록이 코딩 블록 후보 리스트 내의 코딩 블록과 상이하면, 현재 이웃 위치가 위치하는 코딩 블록이 코딩 블록 후보 리스트에 추가될 수 있다. 즉, 단계 705가 수행된다.
단계 704에서, 현재 이웃 위치가 위치하는 코딩 블록과 동일한 코딩 블록이 코딩 블록 후보 리스트에 존재하면, 현재 픽처 블록의 이웃 위치들을 다시 순회해서, 이웃 위치가 위치하는 아핀 코딩 블록을 획득한다. 즉, 단계 702가 수행된다.
또한, 단계 704에서, 두 코딩 블록이 동일한지 여부는 코딩 블록의 특정 위치의 픽셀 좌표 또는 번호에 기초하여 판정될 수 있다. 구체적인 판정 프로세스는 예 1의 판정 프로세스와 동일하며, 세부사항은 여기서 다시 설명하지 않는다.
705: 현재 이웃 위치가 위치하는 코딩 블록을 코딩 블록 후보 리스트에 추가한다.
706: 코딩 블록 후보 리스트의 구성이 완료되었는지 여부를 판단한다.
구체적으로, 단계 706에서, 코딩 블록 후보 리스트에 포함된 코딩 블록의 수량이 미리 설정된 수량에 도달하는지 여부가 판단될 수 있다. 코딩 블록 후보에 포함된 코딩 블록의 수량이 미리 설정된 수량에 도달하지 않으면, 단계 702가 계속 수행된다.
코딩 블록 후보 리스트에 포함된 코딩 블록의 수량이 미리 설정된 수량에 도달하면, 코딩 블록 후보 리스트의 구성이 완료된다. 그 다음에, 단계 707이 수행될 수 있다.
707: 코딩 블록 후보 리스트 내의 코딩 블록의 모션 정보를 판단하고, 코딩 블록 후보 리스트 내의 코딩 블록의 모션 정보를 현재 픽처 블록의 모션 정보 후보 리스트에 추가한다.
선택적으로, 단계 707에서 코딩 블록의 모션 정보를 현재 픽처 블록의 모션 정보 후보 리스트에 추가하는 프로세스에서, 반복성(repeatability) 검출이 또한 수행될 수 있다. 추가될 모션 정보가 모션 정보 후보 리스트에 이미 추가된 모션 정보와 동일한 경우(예컨대, 하나의 추가된 모션 정보가 추가될 모션 정보와 동일한 경우), 추가될 모션 정보는 모션 정보 후보 리스트에 추가되지 않는다.
예 3에 도시된 경우를 더 설명하기 위해, 다음은 예 5를 참조하여, 병진 모델의 병합 모드에서 인터 예측이 수행될 때 모션 정보 후보 리스트를 구성하는 프로세스를 상세히 설명한다.
예 5: 병진 모델의 병합 모드에서 인터 예측이 수행될 때 모션 정보 후보 리스트를 구성하는 프로세스
도 4를 참조하여, 다음은 예 5에서 모션 정보 후보 리스트를 구성하는 프로세스를 상세히 설명한다.
도 4에 도시되어 있는 바와 같이, 병진 모델의 병합 모드에서 모션 정보 후보 리스트는 A1, B1, B0, A0, B2 및 T(여기서, T가 이용가능하지 않을 경우 T는 C로 대체된다)의 순서로 확립된다. A1, B1, B0, A0, B2는 현재 픽처 블록의 공간적으로 이웃하는 블록이고(이웃 블록은 여기서 이웃 위치가 위치하는 블록으로 지칭되며, 코딩 프로세스에서의 픽처 블록 또는 코딩 블록을 가리키지는 않는다), T 및 C는 현재 픽처 블록의 시간적으로 이웃하는 블록이다.
도 4에 도시되어 있는 바와 같이, 현재 블록의 주변 이웃 위치가 위치하는 블록들은 A1, B1, B0, A0, B2, T, 및 C의 순서로 순회될 수 있다. 이 경우, 후보 리스트가 비어있거나 또는 현재 이웃 위치가 위치하는 CU가 서브블록 모드에서 코딩된 CU이면, 현재 이웃 위치가 위치하는 픽처 블록의 모션 정보가 획득되고, 현재 이웃 위치가 위치하는 픽처 블록의 모션 정보가 모션 정보 후보 리스트에 추가된다.
그렇지 않으면(후보 리스트가 비어있지 않고 이웃 위치가 위치하는 CU가 서브블록 모드에서 인코딩된 CU가 아니면), 모션 정보 후보 리스트 내의 모션 정보가 순차적으로 순회되고, 현재 이웃 위치가 위치하는 CU가 모션 정보 후보 리스트 내의 기존의 모션 정보가 비롯된 CU와 동일한지 여부가 판단된다. 동일 CU로부터의 모션 정보가 모션 정보 호부 리스트에 존재하지 않으면, 현재 이웃 위치가 위치하는 픽처 블록의 모션 정보가 획득되고, 현재 이웃 위치가 위치하는 픽처 블록의 모션 정보가 모션 정보 후보 리스트에 추가된다.
현재 이웃 위치가 위치하는 CU가 모션 정보 후보 리스트 내의 기존의 모션 정보가 비롯되는 CU와 동일한 경우, 현재 이웃 위치가 위치하는 CU의 좌상단 코너의 픽셀 좌표(x, y)가 모션 정보 후보 리스트 내의 기논의 모션 정보가 비롯되는 CU의 좌상단 코너의 픽셀 좌표(xn, yn)와 동일한지 여부가 비교될 수 있다. n은 0 내지 N-1 사이의 정수이고, N은 구성된 모션 정보 후보 리스트의 길이이다. 이 경우, 두 번위 비교만(수평 좌표 비교 및 수직 좌표 비교) 필요하다.
예를 들어, 도 4에 도시된 공간적으로 이웃하는 블록(B1)에 대해, 공간적으로 이웃하는 블록(B1)이 속하는 CU는 CU 2이고, CU 2의 좌표는 (x2, y2)이다. 이 경우, 후보 리스트가 비어있으면, B1이 위치하는 블록의 모션 정보가 획득되고, B1이 위치하는 블록의 모션 정보가 모션 정보 후보 리스트에 추가된다. 이 경우, 모션 정보 후보 리스트가 비어있지 않으면, 예컨대 A1이 위치하는 블록에 대응하는 모션 정보가 리스트에 이미 존재할 수 있으면(여기서 A1은 CU 1에 위치하며, CU 1의 좌상단 코너의 좌표는 (x1, y1)임), x2≠x1|| y2≠y1이 만족되는지 여부를 판단할 필요가 없다. x2≠x1|| y2≠y1이면, B1이 위치하는 블록의 모션 정보가 획득되고, B1이 위치하는 블록의 모션 정보가 모션 정보 후보 리스트에 추가된다. B2가 위치하는 CU가 서브블록(예컨대 아핀 코딩 블록) 모드에서 인코딩된 CU이면, B2가 위치하는 모션 정보가 모션 정보 후보 리스트에 추가된다.
현재 픽처 블록의 모션 정보 후보 리스트가 완료될 때까지, 전술한 프로세스에서 현재 픽처 블록의 주변 이웃 위치들이 하나씩 순회된다.
본 출원의 실시예에서의 인터 예측 방법을 더 잘 이해하기 위해, 다음은 도 6을 참조하여, 모션 정보 후보 리스트를 특정 순회 순서(A1, B1, B0, A0, 및 B2)로 구성하는 프로세스를 상세히 설명한다.
예 6: 모션 정보 후보 리스트를 A1, B1, B0, A0, 및 B2의 순회 순서로 구성한다.
예 6에서는, 모션 정보 후보 리스트를 구성하는 예로서 현재 픽처 블록 및 도 4에 도시된 현재 픽처 블록의 이웃 픽처 블록을 사용한다. 예 6의 특정 프로세스는 단계 801 내지 단계 809를 포함하며, 다음은 이들 단계를 상세히 설명한다.
801: 현재 픽처 블록의 모션 정보 후보 리스트를 구성한다.
802: 현재 픽처 블록의 제1 이웃 위치(A1)를 획득한다.
A1은 현재 픽처 블록(CU 0)의 좌측에 있고, A1은 현재 픽처 블록의 제1 이웃 픽처 블록(CU 1)에 위치한다.
803: CU 1의 모션 정보가 이용가능한 경우, CU 1의 모션 정보에 기초하여 현재 픽처 블록의 제1 후보 모션 정보를 결정하고, 제1 후보 모션 정보를 모션 정보 후보 리스트에 추가한다.
CU 1의 모션 정보가 이용가능하지 않으면, 현재 픽처 블록의 제2 이웃 위치(B1)가 획득된다는 것을 이해해야 한다. 즉, 단계 803이 수행되지 않고, 단계 804가 바로 수행된다.
804: 현재 픽처 블록의 제2 이웃 위치(B1)를 획득한다.
단계 804에서, B1은 현재 픽처 블록의 상측에 있고, B1은 현재 픽처 블록의 제2 이웃 픽처 블록(CU 2)에 위치한다.
805: CU 2의 모션 정보가 이용가능한 경우, CU 2의 모션 정보에 기초하여 현재 픽처 블록의 제2 후보 모션 정보를 결정하고, 제2 후보 모션 정보를 모션 정보 후보 리스트에 추가한다.
CU 2의 모션 정보가 이용가능하지 않으면, 현재 픽처 블록의 제3 이웃 위치(B0)가 획득된다는 것을 이해해야 한다. 즉, 단계 805가 수행되지 않고, 단계 806이 바로 수행된다.
806: 현재 픽처 블록의 제3 이웃 위치(B0)를 획득한다.
B0은 현재 픽처 블록의 상측에 있고, B0은 현재 픽처 블록의 제3 이웃 픽처 블록(CU 3)에 위치한다.
807: CU 3의 모션 정보가 이용가능한 경우, CU 3이 CU 2와 동일한지 여부를 판단한다.
808: CU 3의 모션 정보가 이용가능하고 CU 3이 CU 2와 다른 경우, CU 3의 모션 정보에 기초하여 현재 픽처 블록의 제3 후보 모션 정보를 결정하고, 제3 후보 모션 정보를 모션 정보 후보 리스트에 추가한다.
CU 3의 모션 정보가 이용가능하지만, CU 3이 CU 2와 동일하면, CU 3은 폐기된다는 것을 이해해야 한다. 즉, 단계 808이 수행되지 않고, 단계 809가 바로 수행된다.
809: 현재 픽처 블록의 제4 이웃 위치(A0)를 획득한다.
A0은 현재 픽처 블록의 좌측에 있고, A0은 현재 픽처 블록의 제4 이웃 픽처 블록(CU 4)에 위치한다.
810: CU 4의 모션 정보가 이용가능한 경우, CU 4가 CU 1과 동일한지 여부를 판단한다.
811: CU 4의 모션 정보가 이용가능하고 CU 4가 CU 1과 상이한 경우, CU 4의 모션 정보에 기초하여 현재 픽처 블록의 제4 후보 모션 정보를 결정하고, 제4 후보 모션 정보를 모션 정보 후보 리스트에 추가한다.
CU 4의 모션 정보가 이용가능하지만, CU 4가 CU 1과 동일하면, CU 4는 폐기된다는 것을 이해해야 한다. 즉, 단계 811이 수행되지 않고, 단계 812가 바로 수행된다.
812: 현재 픽처 블록의 제5 이웃 위치(B2)를 획득한다.
B2는 현재 픽처 블록의 상측에 있고, B2는 현재 픽처 블록의 제5 이웃 픽처 블록(CU 5)에 위치한다.
813: CU 5의 모션 정보가 이용가능한 경우, CU 5가 CU 1 및 CU 2와 동일한지 여부를 판단한다.
814: CU 5의 모션 정보가 이용가능하고, CU 5가 CU 1 및 CU 2와 상이한 경우, CU 5의 모션 정보에 기초하여 현재 픽처 블록의 제5 후보 모션 정보를 결정하고, 제5 후보 모션 정보를 모션 정보 후보 리스트에 추가한다.
CU 5의 모션 정보가 이용가능하지만, CU 5가 CU 1과 동일하거나 또는 CU 5가 CU 2와 동일하면, CU 5는 폐기된다는 것을 이해해야 한다. 즉, 단계 814가 수행되지 않는다.
815: 모션 정보 후보 리스트에 기초하여 현재 픽처 블록에 대해 인터 예측을 수행한다.
단계 815 전에, 모션 정보 후보 리스트에 포함된 모션 정보가 미리 설정된 요건을 만족하지 않으면(예컨대, 모션 정보 후보 리스트 내의 모션 정보의 양이 미리 설정된 양에 도달하지 않으면), 모션 정보 후보 리스트가 미리 설정된 요건을 만족할 때까지, 이웃 위치가 위치하는 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 주변 이웃 위치들이 계속 순회될 수 있고, 현재 픽처 블록의 후보 모션 정보가 획득된다는 것을 이해해야 한다.
본 출원의 예 6에서, 모션 정보 후보 리스트를 구성하는 프로세스에서, 현재 픽처 블록의 이웃 위치들이 순차적으로 순회된다는 것을 이해해야 한다. 또한, 일부 경우에, 현재 이웃 위치가 위치하는 픽처 블록에 기초하여 결정된 모션 정보가 모션 정보 후보 리스트에 추가되어야 하는지 여부는 이들 픽처 블록이 동일한지 여부를 비교하는 방식으로 결정된다. 이것은 모션 정보 후보 리스트를 구성하는 프로세스에서 비교 동작을 감소시켜, 인터 예측 효율을 향상시킬 수 있다.
예 6에서, 현재 픽처 블록의 이웃 위치들은 특정 순서(A1, B1, B0, A0, 및 B2)로 순회되고, 현재 픽처 블록의 이웃 위치들을 특정 순서로 순회하는 것은 상이한 픽처 블록들 사이의 비교 양을 감소시킬 수 있다. 예를 들어, A1 및 B1은 제각기 현재 픽처 블록의 좌측 및 상측에 있기 때문에, B1이 위치하는 픽처 블록(CU 2)이 획득될 경우, CU 2를 CU 1과 비교할 필요가 없다. 대신에, CU 2의 모션 정보에 기초하여 결정된 제2 후보 모션 정보가 바로 모션 정보 후보 리스트에 추가될 수 있다.
다음은 도 3 내지 도 11을 참조하여 본 출원의 실시예들에서의 인터 예측 방법을 상세히 설명한다. 본 출원의 실시예에서의 인터 예측 방법은 도 1 및 도 2에 도시된 인터 예측에 대응할 수 있다는 것을 이해해야 한다. 본 출원의 실시예에서의 인터 예측 방법은 도 1 및 도 2에 도시된 인터 예측 프로세스에서 수행될 수 있다. 본 출원의 실시예에서의 인터 예측 방법은 구체적으로는 인코더 또는 디코더의 인터 예측 모듈에 의해 수행될 수 있다. 또한, 본 출원의 실시예에서의 인터 예측 방법은 비디오 픽처를 인코드 및/또는 디코드해야 하는 임의의 전자 디바이스 또는 장치에서 수행될 수 있다.
다음은 도 12를 참조하여 본 출원의 실시예에서의 인터 예측 방법을 상세히 설명한다. 도 12에 도시된 인터 예측 장치(800)는 도 3, 도 5, 도 6 및 도 8 내지 도 11에 도시된 방법에 대응한다. 인터 예측 장치(800)는 도 3, 도 5, 도 6 및 도 8 내지 도 11에 도시된 방법의 단계들을 수행할 수 있다. 전술한 제한 및 관련 내용에 대한 설명은 도 12에 도시된 인터 예측 장치(800)에도 적용될 수 있다. 간략히 하기 위해 도 12에 도시된 인터 예측 장치(800)에 대한 이하의 설명에서는 중복되는 설명은 적절히 생략한다.
도 12는 본 출원의 일 실시예에 따른 인터 예측 장치(800)의 개략적인 블록도이다. 도 12에 도시된 인터 예측장치(800)는,
현재 픽처 블록의 M개의 이웃 위치가 위치하는 M개의 픽처 블록으로부터 N개의 타겟 픽처 블록을 결정하도록 구성된 모듈(801) - 여기서 N개의 타겟 픽처 블록 중 임의의 두 개는 상이하고, M 및 N은 모두 양의 정수이며, M은 N보다 크거나 같고,
결정 모듈(801)은 또한 N개의 타겟 픽처 블록의 모션 정보에 기초하여 현재 픽처 블록의 후보 모션 정보를 결정하고, 현재 픽처 블록의 후보 모션 정보를 현재 픽처 블록의 모션 정보 후보 리스트에 추가하도록 구성됨 - 과,
모션 정보 후보 리스트에 기초하여 현재 픽처 블록에 대해 인터 예측을 수행하도록 구성된 인터 예측 모듈(802)을 포함한다.
본 출원에서는, 현재 픽처 블록의 이웃 위치가 위치하는 복수의 픽처 블록으로부터 적어도 하나의 다른 타겟 픽처 블록이 결정되어, 현재 픽처 블록의 후보 모션 정보가 적어도 하나의 타겟 픽처 블록에 기초하여 결정될 수 있다. 또한, 후보 모션 정보가 동일한지 여부를 비교하지 않고 현재 픽처 블록의 모션 정보 후보 리스트에 획득된 후보 모션 정보가 추가된다. 이것은 인터 예측 동안 모션 정보 후보 리스트가 획득될 때 비교 동작을 감소시켜, 인터 예측 효율을 향상시킨다.
선택적으로, 일 실시예에서, 결정 모듈(801)은, 현재 픽처 블록의 현재 이웃 위치가 위치하는 픽처 블록을 결정하고, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록들과 상이할 경우, 현재 이웃 위치가 위치하는 픽처 블록을 현재 픽처 블록의 타겟 픽처 블록으로 결정하도록 구성된다.
선택적으로, 일 실시예에서, 현재 이웃 위치 내의 픽처 블록은 현재 픽처 블록의 제1 측에 있다. 결정 모듈(801)은 또한, 현재 픽처 블록의 제1 측에 있는 적어도 하나의 제1 타겟 픽처 블록이 획득된 타겟 픽처 블록에 존재할 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하고, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 다른 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 다르다고 판단하도록 구성된다.
선택적으로, 일 실시예에서, 결정 모듈(801)은, 현재 이웃 위치가 위치하는 픽처 블록의 미리 설정된 위치의 픽셀 좌표가 적어도 하나의 제1 타겟 픽처 블록 각각의 미리 설정된 위치의 픽셀 좌표와 동일한지 여부를 판단하고, 현재 이웃 위치가 위치하는 픽처 블록의 미리 설정된 위치의 픽셀 좌표가 적어도 하나의 제1 타겟 픽처 블록 각각의 미리 설정된 위치의 픽셀 좌표와 상이한 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판정하도록 구성된다.
선택적으로, 일 실시예에서, 결정 모듈(801)은, 현재 이웃 위치가 위치하는 픽처 블록의 번호가 각각의 적어도 하나의 제1 타겟 픽처 블록 번호와 동일한지 여부를 판단하고, 현재 이웃 위치가 위치하는 픽처 블록의 번호가 각각의 적어도 하나의 제1 타겟 픽처 블록 번호와 상이한 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판정하도록 구성된다.
선택적으로, 일 실시예에서, 현재 이웃 위치 내의 픽처 블록은 현재 픽처 블록의 제1 측에 있다. 결정 모듈(801)은 또한, 현재 픽처 블록의 제1 측의 어떠한 제1 타겟 픽처 블록도 획득된 타겟 픽처 블록에 존재하지 않는 경우, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 다르다고 판단하도록 구성된다.
선택적으로, 일 실시예에서, 결정 모듈(801)은 또한, 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록들과 동일한지 여부를 판단하도록 구성된다.
선택적으로, 일 실시예에서, N개의 타겟 픽처 블록은 아핀 픽처 블록이고, 현재 픽처 블록의 후보 모션 정보는 현재 픽처 블록의 제어 포인트의 후보 모션 정보이다. 결정 모듈(801)은 N개의 타겟 픽처 블록의 제어 포인트의 모션 정보에 기초하여 현재 픽처 블록의 제어 포인트의 후보 모션 정보를 결정하도록 구성된다.
본 출원의 실시예들의 인터 예측 방법은 비디오 인코더 또는 비디오 디코더에 의해 수행될 수도 있다. 다음은 도 13 및 도 14를 참조하여 본 출원의 실시예들의 비디오 인코더 및 비디오 디코더의 구조를 상세히 설명한다.
도 13은 본 출원의 일 실시예에 따른 예시적인 비디오 인코더(100)의 블록도이다. 비디오 인코더(100)는 후처리 엔티티(41)에 비디오를 출력하도록 구성된다. 후처리 엔티티(41)는 비디오 인코더(100)로부터의 인코딩된 비디오 데이터를 처리할 수 있는 비디오 엔티티의 예를 나타낸다. 예를 들어, 비디오 엔티티는 미디어 인식 네트워크 요소 또는 스티칭(stitching) 장치/편집 장치이다. 일부 경우에, 후처리 엔티티(41)는 네트워크 엔티티의 일례일 수 있다. 일부 비디오 코딩 시스템에서, 후처리 엔티티(41) 및 비디오 인코더(100)는 개별 장치의 구성요소일 수 있다. 그러나, 다른 경우에, 후처리 엔티티(41)에 대해 설명한 기능이 비디오 인코더(100)를 포함하는 동일 장치에 의해 구현될 수 있다. 일례에서, 후처리 엔티티(41)는 도 1의 저장 장치(40)의 일례이다.
비디오 인코더(100)는 비디오 픽처 블록을 인코딩할 수 있는데, 예를 들면, 모드 0, 1, 2, ..., 및 10를 포함하며 본 출원에서 제안되는 후보 인터 예측 모드 세트 내의 임의의 새로운 인터 예측 모드에 기초하여, 비디오 픽처 블록에 대해 인터 예측을 수행할 수 있다.
도 13의 예에서, 비디오 인코더(100)는 예측 처리 유닛(108), 필터 유닛(106), 디코딩된 픽처 버퍼(decoded picture buffer: DPB)(107), 합산 유닛(112), 변환 유닛(101), 양자화 유닛(102), 및 엔트로피 인코딩 유닛(103)을 포함한다. 예측 처리 유닛(108)은 인터 예측 유닛(110)과 인트라 예측 유닛(109)을 포함할 수 있다. 픽처 블록 재구성을 위해, 비디오 인코더(100)는 역 양자화 유닛(104), 역 변환 유닛(105), 및 합산 유닛(111)을 더 포함한다. 필터 유닛(106)은 하나 이상의 루프 필터 유닛, 예컨대, 디블로킹 필터 유닛, 적응 루프 필터(adaptive loop filter: ALF) 유닛, 및 샘플 적응 오프셋(sample adaptive offset: SAO) 필터 유닛을 나타내기 위한 것이다. 필터 유닛(106)은 도 13에 인-루프(in-loop) 필터로 도시되어 있지만, 다른 구현예에서는, 필터 유닛(106)이 포스트-루프(post-loop) 필터로 구현될 수도 있다. 일례에서, 비디오 인코더(100)는 비디오 데이터 저장 유닛 및 분할 유닛(도면에 도시되어 있지 않음)을 더 포함할 수 있다.
비디오 데이터 저장 유닛은 비디오 인코더(100)의 구성요소에 의해 인코딩된 비디오 데이터를 저장할 수 있다. 비디오 데이터 저장 유닛에 저장된 비디오 데이터는 비디오 소스(120)로부터 획득될 수 있다. DPB(107)는 비디오 데이터를 인트라 또는 인터 코딩 모드에서 인코딩하기 위해 비디오 인코더(100)에 의해 사용되는 참조 비디오 데이터를 저장하는 참조 픽처 저장 유닛일 수 있다. 비디오 데이터 저장 유닛 및 DPB(107)는 각각, 예컨대, 동적 랜덤 액세스 메모리(dynamic random access memory: DRAM) 또는 동기식 동적 랜덤 액세스 메모리(synchronous dynamic random access memory, SDRAM)을 포함하는 동적 랜덤 액세스 저장 유닛(DRAM), 자기저항 랜덤 액세스 메모리(random access memory: RAM) 또는 자기 랜덤 액세스 메모리(magnetic random access memory: MRAM), 저항 RAM 또는 저항 랜덤 액세스 메모리(resistive random access memory: RRAM), 또는 다른 유형의 저장 유닛 장치와 같은, 복수의 저장 유닛 장치 중 어느 하나에 의해 구성될 수 있다. 비디오 데이터 저장 유닛 및 DPB(107)는 동일 저장 유닛 장치 또는 개별 저장 유닛 장치에 의해 제공될 수 있다. 다양한 예들에서, 비디오 데이터 저장 유닛은 비디오 인코더(100)의 다른 구성요소들과 함께 칩에 통합될 수도 있고, 이들 구성요소에 관해 칩 외부에 배치될 수도 있다.
도 13에 도시된 바와 같이, 비디오 인코더(100)는 비디오 데이터를 수신하고 비디오 데이터를 비디오 데이터 저장 유닛에 저장한다. 분할 유닛은 비디오 데이터를 여러 픽처 블록으로 분할하고, 이들 픽처 블록은 또한, 예컨대 쿼드트리 구조 또는 이진 트리 구조에 기초하여 더 작은 블록들로 분할될 수 있다. 분할은 또한 슬라이스, 타일, 또는 다른 보다 큰 유닛들로 분할하는 것을 포함할 수 있다. 비디오 인코더(100)는 일반적으로 인코딩될 비디오 슬라이스 내의 픽처 블록을 인코딩하기 위한 구성요소이다. 슬라이스는 복수의 픽처 블록으로 분할될 수 있다(그리고 타일이라고 하는 픽처 블록 세트로 분할될 수 있다). 예측 처리 유닛(108)은 현재 픽처 블록에 사용되는 복수의 가능한 코딩 모드 중 하나, 예컨대 복수의 인트라 코딩 모드 중 하나 또는 복수의 인터 코딩 모드 중 하나를 선택할 수 있다. 복수의 인터 코딩 모드는 본 출원에 제시된 모드 0, 1, 2, 3, ..., 10 중 하나 이상을 포함하지만 이들로 제한되지는 않는다. 예측 처리 유닛(108)은 획득된 인트라 코딩 및 인터 코딩된 블록을 합산 유닛(112)에 제공하여 잔차 블록을 생성할 수 있고, 이들 블록을 합산 유닛(111)에 제공하여 참조 픽처로 사용되는 인코딩된 블록을 재구성할 수 있다.
예측 처리 유닛(108) 내의 인트라 예측 유닛(109)은, 공간 중복을 제거하기 위해, 현재 인코딩될 블록과 동일한 프레임 또는 슬라이스에 있는 하나 이상의 이웃 블록에 대해 현재 픽처 블록에 대해 인트라 예측 인코딩을 수행할 수 있다. 예측 처리 유닛(108) 내의 인터 예측 유닛(110)은, 시간 중복을 제거하기 위해, 하나 이상의 참조 픽처 내의 하나 이상의 예측 블록에 대해 현재 픽처 블록에 대해 인터 예측 인코딩을 수행할 수 있다.
구체적으로, 인터 예측 유닛(110)은 현재 픽처 블록을 인코딩하는 데 사용될 인터 예측 모드를 결정하도록 구성될 수 있다. 예를 들어, 인터 예측 유닛(110)은 레이트 왜곡 분석을 통해 부호 인터 예측 모드 세트 내의 다양한 인터 예측 모드의 레이트 왜곡 값을 계산할 수 있고, 인터 예측 모드로부터 최적의 레이트 왜곡 특징을 갖는 인터 예측 모드를 선택할 수 있다. 레이트 왜곡 분석은 일반적으로 인코딩된 블록과 인코딩되지 않았지만 인코딩되어 인코딩된 블록을 생성할 원래의 블록 사이의 왜곡(또는 에러)의 양 및 인코딩된 블록을 생성하는 데 사용된 비트 레이트(즉, 비트 수)를 결정하는 데 사용된다. 예를 들어, 인터 예측 유닛(110)은, 후보 인터 예측 모드 세트에서, 가장 작은 레이트 왜곡 코스트를 가지며 현재 픽처 블록을 인코딩하는 데 사용되는 인터 예측 모드를, 현재 픽처 블록에 대해 인터 예측을 수행하는 데 사용되는 인터 예측 모드로 결정할 수 있다. 다음은, 인터 예측 인코딩 프로세스, 구체적으로는 본 출원에서 무지향성(non-directional) 또는 지향성 모션 필드에 사용되는 다양한 인터 예측 모드에서 현재 픽처 블록 내의 하나 이상의 서브블록(이는 구체적으로 각 서브블록 또는 모든 서브블록일 수 있음)의 예측 모션 정보의 프로세스를 상세히 설명한다.
인터 예측 유닛(110)은, 결정된 인터 예측 모드에 기초하여 현재 픽처 블록 내의 하나 이상의 서브블록의 모션 정보(예컨대, 모션 벡터)를 예측하고, 현재 픽처 블록 내의 하나 이상의 서브블록의 모션 정보(예컨대, 모션 벡터)를 사용하여 현재 픽처 블록의 예측 블록을 획득하거나 생성하도록 구성된다. 인터 예측 유닛(110)은, 참조 픽처 리스트 내의 한 참조 픽처에서, 모션 벡터가 가리키는 예측 블록을 찾아낼 수 있다. 인터 예측 유닛(110)은 또한 픽처 블록과 연관된 신택스 요소를 더 생성할 수 있으며, 따라서 비디오 디코더(200)는 신택스 요소를 사용하여 비디오 슬라이스의 픽처 블록을 디코딩할 수 있다. 또는, 일 실시예에서, 인터 예측 유닛(110)은 각 서브블록의 모션 정보를 사용하여 모션 비교 프로세스를 수행하여 서브블록의 예측 블록을 생성하며, 이에 따라 현재 픽처 블록의 예측 블록을 획득한다. 인터 예측(110)은 여기서 모션 추정 프로세스 및 모션 보상 프로세스를 수행한다는 것을 이해해야 한다.
구체적으로, 현재 픽처 블록에 대한 인터 예측 모드를 선택한 후에, 인터 예측 유닛(110)은, 엔트로피 인코딩 유닛(103)에게 현재 픽처 블록의 선택된 인터 예측 모드를 나타내는 정보를 제공할 수 있으며, 따라서 엔트로피 인코딩 유닛(103)은 선택된 인터 예측 모드를 나타내는 정보를 인코딩한다. 본 출원에서, 비디오 인코더(100)는 전송된 비트스트림에 현재 픽처 블록에 관한 인터 예측 데이터를 포함할 수 있고, 인터 예측 데이터는, 모션 정보 후보 리스트 내에 있으며 현재 픽처 블록의 모션 정보를 예측하는 데 사용되는 후보 모션 정보를 나타내는 제1 식별자를 포함할 수 있다. 예를 들어, 모션 정보 후보 리스트 내의 타겟 후보 모션 정보(예컨대, 최적의 후보 모션 정보)의 위치가 표시된다.
인트라 예측 유닛(109)은 현재 픽처 블록에 대한 인트라 예측을 수행할 수 있다. 구체적으로, 인트라 예측 유닛(109)은 현재 블록을 인코딩하는 데 사용되는 인트라 예측 모드를 결정할 수 있다. 예를 들어, 인트라 예측 유닛(109)은 레이트 왜곡 분석을 통해 다양한 테스트될 인트라 예측 모드의 레이트 왜곡 값을 계산할 수 있고, 테스트될 모드로부터 최적의 레이트 왜곡 특성을 갖는 인트라 예측 모드를 선택할 수 있다. 어느 경우든, 픽처 블록에 대한 인트라 예측 모드를 선택한 후에, 인터 예측 유닛(109)은, 엔트로피 인코딩 유닛(103)에게 현재 픽처 블록의 선택된 인트라 예측 모드를 나타내는 정보를 제공할 수 있으며, 따라서 엔트로피 인코딩 유닛(103)은 선택된 인트라 예측 모드를 나타내는 정보를 인코딩한다.
예측 처리 유닛(108)이 인터 예측 및 인트라 예측을 통해 현재 픽처 블록의 예측 블록을 생성한 후에, 비디오 인코더(100)는 현재 인코딩될 픽처 블록에서 예측 블록을 감산하여 잔차 픽처 블록을 형성한다. 합산 유닛(112)은 감산 연산을 수행하는 하나 이상의 구성요소를 나타낸다. 잔차 블록 내의 잔차 비디오 데이터는 하나 이상의 TU에 포함될 수 있고, 변환 유닛(101)에 의해 사용될 수 있다. 변환 유닛(101)은 이산 코사인 변환(discrete cosine transform: DCT) 또는 개념적으로 유사한 변환과 같은 변환을 통해 잔차 비디오 데이터를 잔차 변환 계수로 변환한다. 변환 유닛(101)은 잔차 비디오 데이터를 픽셀 값 도메인으로부터 예컨대, 주파수 도메인과 같은 변환 도메인으로 변환할 수 있다.
변환 유닛(101)은 획득된 변환 계수를 양자화 유닛(102)으로 송신할 수 있다. 양자화 유닛(102)은 변환 계수를 양자화 하여 비트 레이트를 더 줄인다. 일부 예에서, 양자화 유닛(102)은 양자화된 변환 계수를 포함하는 매트릭스를 더 스캔할 수 있다. 또는, 엔트로피 인코딩 유닛(103)은 스캔을 수행할 수 있다.
양자화 후에, 엔트로피 인코딩 유닛(103)은 양자화된 변환 계수에 대해 엔트로피 인코딩을 수행한다. 예를 들어, 엔트로피 인코딩 유닛(103)은 컨텍스트 적응 가변 길이 코딩(context-adaptive variable-length coding, CAVLC), 컨텍스트 기반 적응 이진 산술 코딩(context-based adaptive binary arithmetic coding, CABAC), 신택스 기반 컨텍스트 적응 이진 산술 코딩, 확률 간격 분할 엔트로피 인코딩(probability interval partitioning entropy encoding), 또는 다른 엔트로피 인코딩 방법 또는 기술을 수행할 수 있다. 엔트로피 인코딩 유닛(103)이 엔트로피 인코딩을 수행한 후에, 인코딩된 비트스트림은 비디오 디코더(200)로 전송되거나, 후속 전송을 위해 아카이브되거나, 또는 비디오 디코더(200)에 의해 검색될 수 있다. 엔트로피 인코딩 유닛(103)은 또한 현재 인코딩될 픽처 블록의 신택스 요소에 대해 엔트로피 인코딩을 수행할 수 있다.
역 양자화 유닛(104) 및 역 변환 유닛(105)은 제각기 역 양자화 및 역 변환을 적용하여, 예컨대 참조 픽처의 참조 블록으로서의 후속 사용을 위해, 픽셀 도메인에서 잔차 블록을 재구성한다. 합산 유닛(111)은 재구성된 잔차 블록을 인터 예측 유닛(110) 또는 인트라 예측 유닛(109)에 의해 생성된 예측 블록에 추가하여, 재구성된 픽처 블록을 생성한다. 필터 유닛(106)은 블로킹 아티팩트(블록 아티팩트)와 같은 왜곡을 줄이기 위해 재구성된 픽처 블록에 적용가능할 수 있다. 그러면, 복원된 픽처 블록은 디코딩된 픽처 버퍼(107)에 참조 블록으로 저장되고, 인터 예측 유닛(110)에 의해 참조 블록으로 사용되어 후속 비디오 프레임 또는 픽처의 블록에 대한 인터 예측을 수행할 수 있다.
비디오 인코더(100)의 또 다른 구조적 변형이 비디오 스트림을 인코딩하는 데 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 일부 픽처 블록 또는 픽처 프레임의 경우, 비디오 인코더(100)는 잔차 신호를 직접 양자화할 수 있다. 따라서, 변환 유닛(101) 및 역 변환 유닛(105)에 의한 처리가 필요치 않다. 또는, 일부 픽처 블록 또는 픽처 프레임의 경우, 비디오 인코더(100)는 잔차 데이터를 생성하지 않는다. 따라서, 변환 유닛(101), 양자화 유닛(102), 역 양자화 유닛(104), 및 역 변환 유닛(105)이 필요치 않다. 또는, 비디오 인코더(100)가 재구성된 픽처 블록을 참조 블록으로서 직접 저장할 수 있어, 필터 유닛(106)에 의한 처리가 필요치 않다. 또는, 비디오 인코더(100) 내의 양자화 유닛(102) 및 역 양자화 유닛(104)이 결합될 수도 있다. 루프 필터 유닛은 선택적이다. 또한, 무손실 압축 코딩의 경우, 변환 유닛(101), 양자화 유닛(102), 역 양자화 유닛(104), 및 역 변환 유닛(105)은 선택적이다. 다른 응용 시나리오에서, 인터 예측 유닛 및 인트라 예측 유닛은 선택적으로 인에이블될 수 있다는 것을 이해해야 한다. 이 해법에서는, 인터 예측 유닛이 인에이블된다.
도 13에 도시된 비디오 인코더는 본 출원 실시예에서의 인터 예측 방법을 수행할 수 있다는 것을 이해해야 한다. 구체적으로, 도 13에 도시된 비디오 인코더 내의 인터 예측 유닛(110)은 본 출원의 실시예에서 인터 예측 방법을 수행할 수 있다.
또한, 도 12에 도시된 인터 예측 장치(800)는 도 13에 도시된 비디오 인코더 내의 인터 예측 유닛(110)에 해당한다.
도 14는 본 출원의 일 실시예에 따른 예시적인 비디오 디코더(200)의 블록도이다. 도 14의 예에서, 비디오 디코더(200)는 엔트로피 디코딩 유닛(203), 예측 처리 유닛(208), 역 양자화 유닛(204), 역 변환 유닛(205), 합산 유닛(211), 필터 유닛(206), 및 디코딩된 픽처 버퍼(207)를 포함한다. 예측 처리 유닛(208)은 인터 예측 유닛(210)과 인트라 예측 유닛(209)을 포함할 수 있다. 일부 예에서, 비디오 디코더(200)는 도 13의 비디오 인코더(100)를 참조하여 설명한 인코딩 프로세서와 사실상 반대되는 디코딩 프로세스를 수행할 수 있다.
디코딩 동안, 비디오 디코더(200)는, 비디오 인코더(100)로부터 인코딩된 비디오 슬라이스의 픽처 블록을 나타내는 인코딩된 비디오 비트스트림 및 관련 신택스 요소를 수신한다. 비디오 디코더(200)는 네트워크 엔티티(42)로부터 비디오 데이터를 수신할 수 있고, 선택적으로 비디오 데이터를 비디오 데이터 저장 유닛(도면에 도시되어 있지 않음)에 저장할 수도 있다. 비디오 데이터 저장 유닛은, 비디오 디코더(200)의 구성요소에 의해 디코딩될, 인코딩된 비디오 비트스트림과 같은 비디오 데이터를 저장할 수 있다. 비디오 데이터 저장 유닛에 저장되는 비디오 데이터는, 예를 들어, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해 또는 물리적 데이터 저장 매체에 액세스함으로써, 저장 장치(40)와 같은 로컬 비디오 소스 또는 카메라로부터 획득될 수 있다. 비디오 데이터 저장 유닛은 인코딩된 비디오 비트스트림으로부터의 인코딩된 비디오 데이터를 저장하도록 구성된 코딩된 픽처 버퍼(CPB)로서 사용될 수 있다. 따라서, 비디오 데이터 저장 유닛은 도 14에 도시되어 있지 않지만, 비디오 데이터 저장 유닛 및 DPB(207)가 동일한 저장 유닛일 수도 있고, 별도로 배치된 저장 유닛일 수도 있다. 비디오 데이터 저장 유닛 및 DPB(207)는 각각, 예를 들어 동기식 DRAM(SDRAM)을 포함하는 DRAM(Dynamic Random Access Memory), 자기저항 RAM(MRAM), 저항 RAM(RRAM), 또는 다른 유형의 저장 유닛 장치와 같은, 복수의 저장 유닛 장치 중 어느 하나로 구성될 수 있다. 다양한 예들에서, 비디오 데이터 저장 유닛은 비디오 디코더(200)의 다른 구성요소들과 함께 칩에 통합될 수도 있고, 이들 구성요소에 관해 칩 외부에 배치될 수도 있다.
네트워크 엔티티(42)는, 예컨대 서버, 비디오 에디터/스플라이서일 수 있다. 네트워크 엔티티(42)는 비디오 인코더, 예컨대 비디오 인코더(100)를 포함할 수도 있고, 포함하지 않을 수도 있다. 네트워크 엔티티(42)가 인코딩된 비디오 비트스트림을 비디오 디코더(200)로 송신하기 전에, 네트워크 엔티티(42)는 본 출원에 설명된 기술의 일부를 구현할 수 있다. 일부 비디오 디코딩 시스템에서, 네트워크 엔티티(42) 및 비디오 디코더(200)는 개별 장치의 구성요소일 수 있다. 또 다른 경우에, 네트워크 엔티티(42)에 대해 설명한 기능이 비디오 디코더(200)를 포함하는 동일 장치에 의해 구현될 수 있다. 일부 경우에, 네트워크 엔티티(42)는 도 1의 저장 장치(40)의 일례일 수 있다.
비디오 디코더(200)의 엔트로피 디코딩 유닛(203)은 비트스트림에 대해 엔트로피 디코딩을 수행하여 양자화된 계수 및 일부 신택스 요소를 생성한다. 엔트로피 디코딩 유닛(203)은 신택스 요소를 예측 처리 유닛(208)으로 포워딩한다. 비디오 디코더(200)는 비디오 슬라이스 레벨 및/또는 픽처 블록 레벨에서 신택스 요소들/신택스 요소를 수신할 수 있다.
비디오 슬라이스가 인트라 디코딩된(I) 슬라이스로 디코딩되는 경우, 예측 처리 유닛(208)의 인트라 예측 유닛(209)은 시그널링된 인트라 예측 모드 및 현재 프레임 또는 픽처의 이전에 디코딩된 블록의 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록의 예측 블록을 생성할 수 있다. 비디오 슬라이스가 인터코딩된(즉, B 또는 P) 슬라이스로 디코딩되는 경우, 예측 처리 유닛(208)의 인터 예측 유닛(210)은, 엔트로피 디코딩 유닛(203)으로부터 수신된 신택스 요소에 기초하여, 현재 비디오 슬라이스의 현재 픽처 블록을 디코딩하는 데 사용되는 인터 예측 모드를 결정할 수 있고, 결정된 인터 예측 모드에 기초하여 현재 픽처 블록을 디코딩할 수 있다(예컨대, 인터 예측을 수행할 수 있다). 구체적으로, 인터 예측 유닛(210)은 현재 비디오 슬라이스의 현재 픽처 블록을 예측하기 위해 새로운 인터 예측 모드를 사용할지 여부를 결정할 수 있다. 신택스 요소가 현재 픽처 블록을 예측하기 위해 새로운 인터 예측 모드를 사용하도록 표시하면, 인터 예측 유닛(210)은 새로운 인터 예측 모드(예컨대, 신택스 요소에 의해 표시된 새로운 인터 예측 모드 또는 디폴트 새 인터 예측 모드)에 기초하여 현재 비디오 슬라이스의 현재 픽처 블록의 모션 정보 또는 현재 픽처 블록의 서브블록의 모션 정보를 예측해서, 모션 보상 프로세스를 이용하여 현재 픽처 블록의 예측된 모션 정보 또는 현재 픽처 블록의 서브블록의 예측된 모션 정보에 기초하여 현재 픽처 블록 또는 현재 픽처 블록의 서브블록에 대한 예측 블록을 획득하거나 생성한다. 여기서 모션 정보는 참조 픽처 정보 및 모션 벡터를 포함할 수 있다. 참조 픽처 정보는 단일 방향/양방향 예측 정보, 참조 픽처 리스트 번호, 및 참조 픽처 리스트에 대응하는 참조 픽처 인덱스를 포함할 수 있지만 이에 제한되지는 않는다. 인터 예측의 경우, 예측 블록은 참조 픽처 리스트 중 하나 내의 참조 픽처들 중 하나로부터 생성될 수 있다. 비디오 디코더(200)는 DPB(207)에 저장된 참조 픽처에 기초하여, 참조 픽처 리스트들, 즉, 리스트 0 및 리스트 1을 구성할 수 있다. 현재 픽처의 참조 프레임 인덱스는 참조 프레임 리스트 0 및 참조 프레임 리스트 1 중 하나 또는 둘 모두에 포함될 수 있다. 일부 에에서, 비디오 인코더(100)는 새로운 인터 예측 모드를 사용하여 특정 블록의 특정 신택스 요소를 디코딩할지 여부를 나타내도록 시그널링하거나, 또는새로운 인터 예측 모드를 사용할지 여부를 나타내고 어느 새로운 인터 예측 모드가 특정 블록의 특정 신택스 요소를 디코딩하기 위해 특별히 사용되는지를 나타내기 시그널링할 수 있다. 여기서 인터 예측 유닛(210)은 모션 보상 프로세스를 수행한다는 것을 이해해야 한다. 다음은, 다양한 새로운 인터 예측 모드에서, 참조 블록의 모션 정보를 사용하여 현재 픽처 블록의 모션 정보 또는 현재 픽처 블록의 서브블록의 모션 정보를 예측하는 인터 예측 프로세스를 상세히 설명한다.
역 양자화 유닛(204)은, 비트스트림에 제공되며 엔트로피 디코딩 유닛(203)에 의해 디코딩된 양자화된 변환 계수에 대해 역 양자화를 수행한다. 역 양자화 프로세스는, 비디오 슬라이스 내의 각 픽처 블록에 대해 비디오 인코더(100)에 의해 계산된 양자화 파라미터를 사용하여 적용될 양자화 정도를 결정하는 것과, 양자화될 역 양자화 정도를 유사하게 결정하는 것을 포함할 수 있다. 역 변환 처리 유닛(205)은 변환 계수에 역 변환, 예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역 변환 프로세스를 적용하여, 픽셀 도메인에서 잔차 블록을 생성한다.
인터 예측 유닛(210)이 현재 픽처 블록 또는 현재 픽처 블록의 서브블록에 사용되는 예측 블록을 생성한 후, 비디오 디코더(200)는 역 변환 유닛(205)으로부터의 잔차 블록과 인터 예측 유닛(210)에 의해 생성된 대응하는 예측 블록을 합산하여, 재구성된 블록, 즉 디코딩된 픽처 블록을 획득한다. 합산 유닛(211)은 합산 연산을 수행하는 구성요소를 나타낸다. 필요한 경우, 루프 필터 유닛(디코딩 루프 내 또는 그 이후)이 또한 픽셀들을 평활화하는 데 사용될 수도 있고, 또는 비디오 품질이 다른 방식으로 개선될 수도 있다. 필터 유닛(206)은 하나 이상의 루프 필터 유닛, 예컨대, 디블로킹 필터 유닛, 적응 루프 필터(ALF) 유닛, 및 샘플 적응 오프셋(SAO) 필터 유닛을 나타낼 수 있다. 필터 유닛(206)은 도 14에 인-루프(in-loop) 필터 유닛으로 도시되어 있지만, 다른 구현예에서는, 필터 유닛(206)이 포스트-루프(post-loop) 필터 유닛으로 구현될 수도 있다. 일례에서, 필터 유닛(206)은 블록 왜곡을 감소시키기 위해 블록 재구성에 적용될 수 있으며, 이 결과는 디코딩된 비디오 스트림으로 출력된다. 또한, 주어진 프레임 또는 픽처의 디코딩된 픽처 블록은 또한 디코딩된 픽처 버퍼(207)에 저장될 수 있고, 디코딩된 픽처 버퍼(207)는 후속 모션 보상을 위해 사용되는 참조 픽처를 저장한다. 디코딩된 픽처 버퍼(207)는 저장 유닛의 일부일 수 있고, 또한 디스플레이 장치에서의 후속 프리젠테이션을 위해 디코딩된 비디오를 저장할 수도 있고, 그러한 저장 유닛과 분리될 수도 있다.
비디오 디코더(200)의 또 다른 구조적 변형이 인코딩된 비디오 스트림을 디코딩하는 데 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 비디오 디코더(200)는 필터 유닛(206)에 의한 처리 없이 출력 비디오 스트림을 생성할 수 있다. 또는, 일부 픽처 블록 또는 픽처 프레임에 대해, 비디오 디코더(200)의 엔트로피 디코딩 유닛(203)은 디코딩을 통해 양자화된 계수를 얻지 못한다. 따라서, 역 양자화 유닛(204) 및 역 변환 유닛(205)에 의한 처리가 필요치 않다. 루프 필터 유닛은 선택적이다. 또한, 무손실 압축을 위해, 역 양자화 유닛(204) 및 역 변환 유닛(205)은 선택적이다. 다른 응용 시나리오에서, 인터 예측 유닛 및 인트라 예측 유닛은 선택적으로 인에이블될 수 있다는 것을 이해해야 한다. 이 해법에서는, 인터 예측 유닛이 인에이블된다.
도 14에 도시된 비디오 디코더는 본 출원의 실시예에서의 인터 예측 방법을 수행할 수 있다는 것을 이해해야 한다. 구체적으로, 도 14에 도시된 비디오 디코더 내의 인터 예측 유닛(210)은 본 출원의 실시예에서 인터 예측 방법을 수행할 수 있다.
또한, 도 12에 도시된 인터 예측 장치(800)는 도 14에 도시된 비디오 디코더 내의 인터 예측 유닛(210)에 해당한다.
도 15는 본 출원의 실시예에 따른 인코딩 장치 또는 디코딩 장치(간단히 코딩 장치(1000)로 지칭됨)의 구현의 개략적인 블록도이다. 코딩 장치(1000)는 프로세서(1010), 메모리(1030) 및 버스 시스템(1050)을 포함할 수 있다. 프로세서와 메모리는 버스 시스템을 통해 연결된다. 메모리는 명령어를 저장하도록 구성된다. 프로세서는 메모리에 저장된 명령을 실행하도록 구성된다. 코딩 장치의 메모리는 프로그램 코드를 저장한다. 프로세서는, 본 출원에서 설명된 다양한 비디오 인코딩 또는 디코딩 방법, 특히 다양한 새로운 인터 예측 모드에서의 비디오 인코딩 또는 디코딩 방법 및 새로운 인터 예측 모드에서의 모션 정보 예측 방법을 수행하기 위해, 메모리에 저장된 프로그램 코드를 호출할 수 있다. 반복을 피하기 위해 세부사항은 여기서 다시 설명하지 않는다.
본 출원의 이 실시예에서, 프로세서(1010)는 중앙 처리 장치(central processing unit: CPU)일 수 있다. 프로세서(1010)는, 대안적으로 다른 범용 프로세서, 디지털 신호 처리기(digital signal processor: DSP), 주문형 집적 회로(application specific integrated circuit: ASIC), 필드 프로그램 가능 게이트 어레이(field programmable gate array: FPGA), 또는 다른 프로그램 가능한 논리 장치, 개별 게이트 또는 트랜지스터 논리 장치, 개별 하드웨어 구성요소 등일 수 있다. 범용 프로세서는 마이크로 프로세서일 수도 있고, 또는 프로세서는 임의의 종래 프로세서 등일 수 있다.
메모리(1030)는 판독 전용 메모리(read-only memory: ROM) 장치 또는 랜덤 액세스 메모리(random access memory: RAM) 장치를 포함할 수 있다. 메모리(1030)는 적절한 유형의 다른 저장 장치가 대안적으로 사용될 수 있다. 메모리(1030)는 버스 시스템(1050)을 통해 프로세서(1010)에 의해 액세스되는 코드 및 데이터(1031)를 포함할 수 있다. 메모리(1030)는 운영 체제(1033) 및 애플리케이션 프로그램(1035)을 더 포함할 수 있다. 애플리케이션 프로그램(1035)은 프로세서(1010)로 하여금 본 출원에서 설명된 비디오 인코딩 또는 디코딩 방법(특히, 본 출원에서 설명된 인코딩 방법 또는 디코딩 방법)을 수행하게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(1035)은 애플리케이션 1 내지 N을 포함할 수 있고, 본 출원션에서 설명된 비디오 인코딩 또는 디코딩 방법을 수행하기 위한 비디오 인코딩 또는 디코딩 애플리케이션(간단히 비디오 코딩 애플리케이션이라고도 함)을 더 포함할 수 있다.
버스 시스템(1050)은 데이터 버스 외에 전력 버스, 제어 버스, 상태 신호 버스 등을 더 포함할 수 있다. 그러나, 설명을 명확히 하기 위해, 도면에서 다양한 유형의 버스가 버스 시스템(1050)으로 표시되어 있다.
선택적으로, 코딩 장치(1000)는 하나 이상의 출력 장치, 예컨대 디스플레이(1070)를 더 포함할 수 있다. 일례에서, 디스플레이(1070)는 디스플레이를 터치 입력을 감지할 수 있는 터치 유닛과 통합하는 터치 디스플레이일 수 있다. 디스플레이(1070)는 버스 시스템(1050)을 통해 프로세서(1010)에 연결될 수 있다.
도 16은 일 실시예에 따른, 도 13의 인코더(100) 및/또는 도 14의 디코더(200)를 포함하는 비디오 코딩 시스템(1100)의 한 예를 도시한 것이다. 시스템(1100)은 본 출원의 다양한 기술의 조합을 구현할 수 있다. 설명된 구현예에서, 비디오 코딩 시스템(1100)은 이미징 장치(1101), 비디오 인코더(100), 비디오 디코더(200)(및/또는 처리 유닛(1106)의 로직 회로(1107)로 구현된 비디오 디코더), 안테나(1102), 하나 이상의 프로세서(1103), 하나 이상의 메모리(1104), 및/또는 디스플레이 장치(1105)를 포함할 수 있다.
도면에 도시되어 있는 바와 같이, 이미징 장치(1101), 안테나(1102), 처리 유닛(1106), 로직 회로(1107), 비디오 인코더(100), 비디오 디코더(200), 프로세서(1103), 메모리(1104), 및/또는 디스플레이 장치(1105)는 서로 통신할 수 있다. 상술한 바와 같이, 비디오 코딩 시스템(1100)이 비디오 인코더(100) 및 비디오 디코더(200)를 사용하여 예시되어 있지만, 다른 예에서는, 비디오 코딩 시스템(1100)이 비디오 인코더(100) 또는 비디오 디코더(200)만 포함할 수도 있다.
일부 예에서, 도면에 도시되어 있는 바와 같이, 비디오 코딩 시스템(1100)은 안테나(1102)를 포함할 수 있다. 예를 들어, 안테나(1102)는 비디오 데이터의 인코딩된 비트스트림을 송신 또는 수신하도록 구성될 수 있다. 또한, 일부 예에서, 비디오 코딩 시스템(1100)은 디스플레이 장치(1105)를 포함할 수도 있다. 디스플레이 장치(1105)는 비디오 데이터를 제시하도록 구성될 수 있다. 일부 예에서, 도면에 도시되어 있는 바와 같이, 로직 회로(1107)는 처리 유닛(1106)에 의해 구현될 수 있다. 처리 유닛(1106)은 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 처리 유닛, 범용 프로세서 등을 포함할 수 있다. 비디오 코딩 시스템(1100)은 또한 선택적 프로세서(1103)를 포함할 수도 있다. 선택적 프로세서(1103)는 마찬가지로 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 처리 유닛, 범용 프로세서 등을 포함할 수 있다. 일부 예에서, 로직 회로(1107)는 하드웨어, 예컨대 비디오 코딩을 위한 전용 하드웨어를 사용하여 구현될 수 있다. 프로세서(1103)는 범용 소프트웨어, 운영체제 등을 사용하여 구현될 수 있다. 또한, 메모리(1104)는 임의의 유형의 메모리, 예를 들면, 휘발성 메모리(예컨대, 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM) 또는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)) 또는 비휘발성 메모리(예컨대, 플래시 메모리)일 수 있다. 비제한적인 예에서, 메모리(1104)는 캐시 메모리로 구현될 수 있다. 일부 예에서, 로직 회로(1107)는 (예를 들어, 픽처 버퍼를 구현하는)메모리(1104)에 액세스할 수 있다. 다른 예에서, 로직 회로(1107) 및/또는 처리 유닛(1106)은 픽처 버퍼를 구현하는 메모리(예컨대, 캐시)를 포함할 수 있다.
일부 예에서, 로직 회로를 사용하여 구현되는 비디오 인코더(100)는 픽처 버퍼(예컨대 처리 유닛(1106) 또는 메모리(1104)에 의해 구현됨) 및 그래픽 처리 유닛(예컨대 처리 유닛(1106)에 의해 구현됨)을 포함할 수 있다. 그래픽 처리 유닛은 픽처 버퍼에 통신가능하게 결합될 수 있다. 그래픽 처리 유닛은, 도 13을 참조하여 설명되는 다양한 모듈 및/또는 본 명세서에 기술된 임의의 다른 인코더 시스템 또는 서브시스템을 구현하도록, 로직 회로(1107)에 의해 구현되는 비디오 인코더(100)을 포함할 수 있다. 로직 회로는 본 명세서에 기술된 다양한 동작을 수행하도록 구성될 수 있다.
비디오 디코더(200)는, 도 14의 디코더(200)를 참조하여 설명한 다양한 모듈 및/또는 본 명세서에 기술된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하도록, 로직 회로(1107)에 의해 유사하게 구현될 수 있다. 일부 예에서, 로직 회로를 사용하여 구현되는 비디오 디코더(200)는 픽처 버퍼(예컨대, 처리 유닛(1106) 또는 메모리(1104)에 의해 구현됨) 및 그래픽 처리 유닛(예컨대, 처리 유닛(1106)에 의해 구현됨)을 포함할 수 있다. 그래픽 처리 유닛은 픽처 버퍼에 통신가능하게 결합될 수 있다. 그래픽 처리 유닛은, 도 14를 참조하여 설명한 다양한 모듈 및/또는 본 명세서에 기술된 임의의 다른 디코더 시스템 또는 서브시스템을 구현하도록, 로직 회로(1107)를 사용하여 구현되는 비디오 디코더(200)를 포함할 수 있다.
일부 예에서, 비디오 코딩 시스템(1100)의 안테나(1102)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 상술한 바와 같이, 인코딩된 비트스트림은 본 명세서에 기술된, 비디오 프레임 인코딩과 관련되는 데이터, 지표, 인덱스 값, 모드 선택 데이터 등, 예를 들어, 코딩 분할(예컨대, 변환 계수 또는 양자화된 변환 계수, (상술한)선택적 지표 및/또는 코딩 분할을 정의하는 데이터)과 관련된 데이터를 포함할 수 있다. 비디오 코딩 시스템(1100)은, 안테나(1102)에 결합되어 인코딩된 비트스트림을 디코딩하도록 구성되는 비디오 디코더(200)를 더 포함할 수 있다. 디스플레이 장치(1105)는 비디오 프레임을 제시하도록 구성된다.
본 출원의 절차에서, 단계들의 설명 순서는 단계들의 실행 순서를 엄격하게 나타내지는 않는다. 이들 단계는 전술한 설명 순서에 따라 수행될 수도 있고 그렇게 수행되지 않을 수도 있다. 예를 들어, 단계 701은 단계 702 이후에 수행될 수도 있고, 단계 702 이전에 수행될 수도 있다. 다른 단계들은 여기서 하나씩 설명하지 않는다.
본 출원의 실시예들에서의 인터 예측 방법의 적용 시나리오는 도 17 및 도 18을 참조하여 아래에 설명한다. 본 출원의 실시예들에서 인터 예측 방법은 도 17 및 도 18에 도시된 비디오 전송 시스템, 코딩 장치 및 코딩 시스템에 의해 수행될 수 있다.
도 17은 본 출원의 일 실시예에 따른 비디오 전송 시스템의 개략적인 블록도이다.
도 17에 도시된 바와 같이, 비디오 전송 시스템은 캡처링 모듈(3001), 인코딩 모듈(3002), 송신 모듈(3003), 네트워크 전송 모듈(3004), 수신 모듈(3005), 디코딩 모듈(3006), 렌더링 모듈(3007)을 포함한다.
비디오 전송 시스템의 모듈은 다음과 같은 특정 기능을 가지고 있다.
캡처링 모듈(3001)은 카메라 또는 카메라 그룹을 포함하고, 광학 신호를 디지털화된 비디오 시퀀스로 변환하기 위해 인코딩 전에 비디오 픽처를 캡처하고 캡처된 비디오 픽처에 대해 처리를 수행하도록 구성된다.
인코딩 모듈(3002)은 비디오 시퀀스를 인코딩하여 비트스트림을 획득하도록 구성된다.
송신 모듈(3003)은 인코딩된 비트스트림을 송신하도록 구성된다.
수신 모듈(3005)은 송신 모듈(3003)에 의해 송신된 비트스트림을 수신하도록 구성된다.
네트워크 전송 모듈(3004)은 송신 모듈(3003)에 의해 송신된 비트스트림을 수신 모듈(3005)로 전송하도록 구성된다.
디코딩 모듈(3006)은 수신 모듈(3005)에 의해 수신된 비트스트림을 디코딩하여 비디오 시퀀스를 재구성하도록 구성된다.
렌더링 모듈(3007)은 디코딩을 통해 디코딩 모듈(3006)에 의해 획득된 재구성된 비디오 시퀀스를 렌더링하여 비디오의 디스플레이 효과를 향상시키도록 구성된다.
도 17에 도시된 비디오 전송 시스템은 본 출원의 실시예들에서 인터 예측 방법을 수행할 수 있다. 구체적으로, 도 17에 도시된 비디오 전송 시스템에서 인코딩 모듈(3001) 및 디코딩 모듈(3006) 모두는 본 출원의 실시예들에서 인터 예측 방법을 수행할 수 있다.
다음은 도 18을 참조하여 코딩 장치 및 코딩 장치를 포함하는 코딩 시스템에 대해 상세히 설명한다. 도 18에 도시된 코딩 장치 및 코딩 시스템은 본 출원의 실시예에서 인터 예측 방법을 수행할 수 있다는 것을 이해해야 한다.
도 18은 본 출원의 일 실시예에 따른 비디오 코딩 시스템(7000)의 개략적인 블록도이다.
도 18에 도시된 바와 같이, 비디오 코딩 시스템(7000)은 소스 장치(4000) 및 목적지 장치(5000)를 포함한다. 소스 장치(4000)는 인코딩된 비디오 데이터를 생성한다. 소스 장치(4000)는 또한 비디오 인코딩 장치 또는 비디오 인코딩 디바이스라고도 한다. 목적지 장치(5000)는 소스 장치(4000)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있다. 목적지 장치(5000)는 또한 비디오 디코딩 장치 또는 비디오 디코딩 디바이스라고도 한다.
소스 장치(4000) 및 목적지 장치(5000)의 특정 구현은, 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예컨대, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 스마트폰, 핸드셋, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량 내 컴퓨터 또는 다른 유사한 장치 중 어느 하나일 수 있다.
목적지 장치(5000)는 채널(6000)을 통해 소스 장치(4000)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 채널(6000)은 인코딩된 비디오 데이터를 소스 장치(4000)에서 목적지 장치(5000)로 이동할 수 있는 하나 이상의 미디어 및/또는 장치를 포함할 수 있다. 일 예에서, 채널(6000)은 소스 장치(4000)가 인코딩된 비디오 데이터를 목적지 장치(5000)에 실시간으로 직접 전송하도록 할 수 있는 하나 이상의 통신 매체를 포함할 수 있다. 이 예에서, 소스 장치(4000)는 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라 인코딩된 비디오 데이터를 변조하고 변조된 비디오 데이터를 목적지 장치(5000)로 전송할 수 있다. 하나 이상의 통신 매체는 무선 및/또는 유선 통신 매체, 예를 들어 무선 주파수(radio frequency: RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인을 포함할 수 있다. 하나 이상의 통신 매체는 패킷 기반 네트워크(예를 들어, 근거리 통신망, 광역 통신망 또는 글로벌 네트워크(예컨대, 인터넷))의 일부를 형성할 수 있다. 하나 이상의 통신 매체는 라우터, 스위치, 기지국, 또는 소스 장치(4000)와 목적지 장치(5000) 사이의 통신을 구현하는 다른 장치를 포함할 수 있다.
다른 예에서, 채널(6000)은 소스 장치(4000)에 의해 생성된 인코딩된 비디오 데이터를 저장하는 저장 매체를 포함할 수 있다. 이 예에서, 목적지 장치(5000)는 디스크 액세스 또는 카드 액세스를 통해 저장 매체에 액세스할 수 있다. 저장 매체는 블루레이(Blu-ray), 고밀도 디지털 비디오 디스크(digital video disc: DVD), 컴팩트 디스크 판독 전용 메모리(compact disc read-only memory: CD-ROM), 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하도록 구성된 다른 적절한 디지털 저장 매체와 같은 복수의 로컬 액세스가능 데이터 저장 매체를 포함할 수 있다.
다른 예에서, 채널(6000)은 소스 장치(4000)에 의해 생성된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 장치를 포함할 수 있다. 이 예에서, 목적지 장치(5000)는 스트리밍 전송 또는 다운로드를 통해, 파일 서버 또는 다른 중간 저장 장치에 저장된 인코딩된 비디오 데이터에 액세스할 수 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 장치(5000)로 전송할 수 있는 서버 타입일 수 있다. 예를 들어, 파일 서버는 월드 와이드 웹(world wide web: Web) 서버(예컨대, 웹 사이트에 사용됨), 파일 전송 프로토콜(file transfer protocol: FTP) 서버, 네트워크 연결 스토리지(network attached storage: NAS) 장치 및 로컬 디스크 드라이브를 포함할 수 있다.
목적지 장치(5000)는 표준 데이터 접속(예컨대, 인터넷 접속)을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 데이터 접속 유형의 예로는 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는 데 사용될 수 있는 무선 채널 또는 유선 연결(예컨대, 케이블 모뎀) 또는 이들의 조합이 있다. 파일 서버로부터의 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송 또는 이들의 조합일 수 있다.
본 출원에서의 인터 예측 방법은 무선 애플리케이션 시나리오에 제한되지 않는다. 예를 들어, 본 출원의 인터 예측 방법은 OTA(Over-the-Air) 텔레비전 방송, 케이블 텔레비전 전송, 위성 텔레비전 전송, 스트리밍-전송 비디오 전송(예컨대, 인터넷을 통해), 데이터 저장 매체에 저장된 비디오 데이터의 인코딩, 데이터 저장 매체에 저장된 비디오 데이터의 디코딩 또는 다른 애플리케이션과 같은 복수의 멀티미디어 애플리케이션을 지원하는 비디오 코딩에 적용될 수 있다. 일부 예에서, 비디오 인코딩 및 디코딩 시스템(7000)은 비디오 스트리밍 전송, 비디오 재생, 비디오 브로드캐스팅 및/또는 영상 통화와 같은 애플리케이션을 지원하기 위해, 단방향 또는 양방향 비디오 전송을 지원하도록 구성될 수 있다.
도 18에서, 소스 장치(4000)는 비디오 소스(4001), 비디오 인코더(100) 및 출력 인터페이스(4003)를 포함한다. 일부 예들에서, 출력 인터페이스(4003)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 비디오 소스(4001)는 비디오 캡처 장치(예컨대, 비디오 카메라), 미리 캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하도록 구성된 비디오 입력 인터페이스 및/또는 비디오 데이터를 생성하도록 구성된 컴퓨터 그래픽 시스템, 또는 전술한 비디오 데이터 소스들의 조합을 포함할 수 있다.
비디오 인코더(100)는 비디오 소스(4001)로부터 비디오 데이터를 인코딩할 수 있다. 일부 예들에서, 소스 장치(4000)는 인코딩된 비디오 데이터를 출력 인터페이스(4003)를 통해 목적지 장치(5000)로 직접 전송한다. 인코딩된 비디오 데이터는 또한 저장 매체 또는 파일 서버에 저장될 수 있으며, 따라서 목적지 장치(5000)는 디코딩 및/또는 재생을 위해 나중에 인코딩된 비디오 데이터에 액세스할 수 있다.
도 18의 예에서, 목적지 장치(5000)는 입력 인터페이스(5003), 비디오 디코더(200) 및 디스플레이 장치(5001)를 포함한다. 일부 예들에서, 입력 인터페이스(5003)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스(5003)는 채널(6000)을 통해 인코딩된 비디오 데이터를 수신할 수 있다. 디스플레이 장치(5001)는 목적지 장치(5000)와 통합될 수도 있고, 목적지 장치(5000) 외부에 있을 수도 있다. 일반적으로, 디스플레이 장치(5001)는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 장치(5001)는 액정 디스플레이, 플라즈마 디스플레이, 유기 발광 다이오드 디스플레이 또는 다른 유형의 디스플레이 장치와 같은 복수의 유형의 디스플레이 장치를 포함할 수 있다.
비디오 인코더(100) 및 비디오 디코더(200)는 비디오 압축 표준(예컨대, 고효율 비디오 코딩 H.265 표준)에 따라 동작할 수 있고, 고효율 비디오 코딩(high efficiency video coding: HEVC) 테스트 모델(HM)과 호환될 수 있다. H.265 표준의 텍스트 설명 ITU-TH.265(V3)(04/2015)는 2015년 4월 29일에 출시되었으며 http://handle.itu.int/11.1002/7000/12455에서 다운로드할 수 있다. 이 파일은 그 전체가 참고로 본 명세서에 포함된다.
당업자는, 본 출원에 개시된 실시예를 참조하여 설명한 예들의 유닛, 알고리즘 및 단계가 전자 하드웨어 또는 컴퓨터 소프트웨어와 전자 하드웨어의 조합에 의해 구현될 수 있음을 알 수 있을 것이다. 기능이 하드웨어 또는 소프트웨어에 의해 수행되는지 여부는 특정 응용 및 기술적 해법의 설계 제약 조건에 의존한다. 당업자는 각각의 특정 응용에 대해 설명한 기능을 구현하기 위해 다른 방법을 사용할 수 있지만, 그 구현이 본 출원의 범위를 벗어나는 것으로 간주되어서는 안 된다.
당업자는, 설명을 편리하고 간략하게 하기 위해, 전술한 시스템, 장치 및 유닛의 세부적인 작업 프로세스는 전술한 방법 실시예의 대응하는 프로세스를 참조하며, 그 세부사항은 여기서 다시 설명되지 않는다는 것을 명확하게 이해할 수 있을 것이다.
본 출원에서 제공되는 여러 실시예에서, 개시된 시스템, 장치 및 방법은 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 설명된 장치 실시예는 단지 예일 뿐이다. 예를 들어, 유닛들로의 분할은 단순히 논리적 기능 분할이며 실제 구현예에서는 다른 분할일 수 있다. 예를 들어, 복수의 유닛 또는 구성요소가 다른 시스템에 결합되거나 통합될 수 있거나, 일부 기능이 무시되거나 수행되지 않을 수 있다. 또한, 표시되거나 논의된 상호 결합 또는 직접 결합 또는 통신 연결은 일부 인터페이스를 사용하여 구현될 수 있다. 장치들 또는 유닛들 사이의 간접 결합 또는 통신 연결은 전자적 형태, 기계적 형태 또는 다른 형태로 구현될 수 있다.
별개의 부분으로 기술된 유닛들은 물리적으로 분리될 수도 있고 그렇지 않을 수도 있으며, 유닛들로 표시되는 부분들은 물리적 유닛일 수도 있고 아닐 수도 있으며, 한 위치에 위치할 수도 있고, 또는 복수의 네트워크 유닛에 분산될 수도 있다. 유닛들 중 일부 또는 전부는 실시예들의 해법의 목적을 달성하기 위한 실제 요건에 기초하여 선택될 수 있다.
또한, 본 출원의 실시예에서의 기능 유닛은 하나의 처리 유닛에 통합될 수도 있고, 또는 각각의 유닛이 물리적으로 단독으로 존재하거나, 또는 둘 이상의 유닛이 하나의 유닛으로 통합될 수도 있다.
이들 기능이 소프트웨어 기능 유닛의 형태로 구현되어 독립적인 제품으로 판매 또는 사용되는 경우, 이들 기능은 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다. 이러한 이해를 바탕으로, 본 출원의 기술적 해법, 또는 종래 기술에 기여하는 부분, 또는 기술적 해법의 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 저장 매체에 저장되고, 컴퓨터 장치(개인용 컴퓨터, 서버 또는 네트워크 장치일 수 있음)로 하여금 본 출원의 실시예에서 설명된 방법의 단계들 전부 또는 일부를 수행하도록 지시하기 위한 여러 명령어를 포함한다. 전술한 저장 매체는 USB 플래시 드라이브, 이동식 하드 디스크, 판독 전용 메모리(read-only memory: ROM), 랜덤 액세스 메모리(read-only memory: RAM), 자기 디스크 또는 광 디스크와 같은 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
전술한 설명은 본 출원의 특정 구현일뿐이며, 본 출원의 보호 범위를 제한하려는 것은 아니다. 본 출원에 개시된 기술적 범위 내에서 당업자에 의해 용이하게 파악되는 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 속한다. 따라서, 본 출원의 보호 범위는 청구 범위의 보호 범위에 따른다.

Claims (16)

  1. 인터 예측 방법으로서,
    현재 픽처 블록의 M개의 이웃 위치가 위치하는 M개의 픽처 블록으로부터 N개의 타겟 픽처 블록을 결정하는 단계 - 상기 N개의 타겟 픽처 블록 중 임의의 두 개는 상이하고, M 및 N은 모두 양의 정수이며, M은 N보다 크거나 같음 - 와,
    상기 N개의 타겟 픽처 블록의 모션 정보에 기초하여 상기 현재 픽처 블록의 후보 모션 정보를 결정하고, 상기 현재 픽처 블록의 상기 후보 모션 정보를 상기 현재 픽처 블록의 모션 정보 후보 리스트에 추가하는 단계와,
    상기 모션 정보 후보 리스트에 기초하여 상기 현재 픽처 블록에 대해 인터 예측을 수행하는 단계를 포함하는,
    인터 예측 방법.
  2. 제1항에 있어서,
    상기 현재 픽처 블록의 M개의 이웃 위치가 위치하는 M개의 픽처 블록으로부터 N개의 타겟 픽처 블록을 결정하는 단계는,
    상기 현재 픽처 블록의 현재 이웃 위치가 위치하는 픽처 블록을 결정하는 단계와,
    상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 상이한 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록을 상기 현재 픽처 블록의 타겟 픽처 블록으로 결정하는 단계를 포함하는,
    인터 예측 방법.
  3. 제2항에 있어서,
    상기 현재 이웃 위치가 위치하는 픽처 블록은 상기 현재 픽처 블록의 제1 측에 있고, 상기 방법은,
    상기 현재 픽처 블록의 상기 제1 측에 있는 적어도 하나의 제1 타겟 픽처 블록이 상기 획득된 타겟 픽처 블록에 존재하는 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하는 단계와,
    상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 상이한 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 획득된 타겟 픽처 블록과 상이하다고 판단하는 단계를 더 포함하는,
    인터 예측 방법.
  4. 제3항에 있어서,
    상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하는 단계는,
    상기 현재 이웃 위치가 위치하는 픽처 블록의 미리 설정된 위치의 픽셀 좌표가 각각의 상기 적어도 하나의 제1 타겟 픽처 블록의 상기 미리 설정된 위치의 픽셀 좌표와 동일한지 여부를 판단하는 단계와,
    상기 현재 이웃 위치가 위치하는 상기 픽처 블록의 상기 미리 설정된 위치의 픽셀 좌표가 각각의 상기 적어도 하나의 제1 타겟 픽처 블록의 상기 미리 설정된 위치의 픽셀 좌표와 상이한 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판단하는 단계를 더 포함하는,
    인터 예측 방법.
  5. 제3항에 있어서,
    상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하는 단계는,
    상기 현재 이웃 위치가 위치하는 픽처 블록의 번호가 각각의 상기 적어도 하나의 제1 타겟 픽처 블록의 번호와 동일한지 여부를 판단하는 단계와,
    상기 현재 이웃 위치가 위치하는 픽처 블록의 번호가 각각의 상기 적어도 하나의 제1 타겟 픽처 블록의 번호와 상이한 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록은 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판단하는 단계를 포함하는,
    인터 예측 방법.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 현재 이웃 위치가 위치하는 픽처 블록은 상기 현재 픽처 블록의 제1 측에 있고, 상기 방법은,
    상기 현재 픽처 블록의 제1 측의 어떠한 제1 타겟 픽처 블록도 상기 획득된 타겟 픽처 블록에 존재하지 않는 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 획득된 타겟 픽처 블록과 상이하다고 판단하는 단계를 더 포함하는,
    인터 예측 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 N개의 타겟 픽처 블록은 아핀 픽처 블록이고, 상기 현재 픽처 블록의 상기 후보 모션 정보는 상기 현재 픽처 블록의 제어 포인트의 후보 모션 정보이며, 상기 N개의 타겟 픽처 블록의 모션 정보에 기초하여 상기 현재 픽처 블록의 후보 모션 정보를 결정하는 것은,
    상기 N개의 타겟 픽처 블록의 제어 포인트의 모션 정보에 기초하여 상기 현재 픽처 블록의 상기 제어 포인트의 후보 모션 정보를 결정하는 것을 포함하는,
    인터 예측 방법.
  8. 인터 예측 장치로서,
    현재 픽처 블록의 M개의 이웃 위치가 위치하는 M개의 픽처 블록으로부터 N개의 타겟 픽처 블록을 결정하도록 구성된 결정 모듈 - 상기 N개의 타겟 픽처 블록 중 임의의 두 개는 상이하고, M 및 N은 모두 양의 정수이며, M은 N보다 크거나 같고, 상기 결정 모듈은 또한 상기 N개의 타겟 픽처 블록의 모션 정보에 기초하여 상기 현재 픽처 블록의 후보 모션 정보를 결정하고, 상기 현재 픽처 블록의 상기 후보 모션 정보를 상기 현재 픽처 블록의 모션 정보 후보 리스트에 추가하도록 구성됨 - 과,
    상기 모션 정보 후보 리스트에 기초하여 상기 현재 픽처 블록에 대해 인터 예측을 수행하도록 구성된 인터 예측 모듈을 포함하는,
    인터 예측 장치.
  9. 제8항에 있어서,
    상기 현재 픽처 블록의 M개의 이웃 위치가 위치하는 상기 M개의 픽처 블록으로부터 상기 N개의 타겟 픽처 블록을 결정하는 데 있어서, 상기 결정 모듈은,
    상기 현재 픽처 블록의 현재 이웃 위치가 위치하는 픽처 블록을 결정하고,
    상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 획득된 타겟 픽처 블록과 상이한 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록을 상기 현재 픽처 블록의 타겟 픽처 블록으로 결정하도록 구성되는,
    인터 예측 장치.
  10. 제9항에 있어서,
    상기 현재 이웃 위치가 위치하는 픽처 블록은 상기 현재 픽처 블록의 제1 측에 있고, 상기 결정 모듈은 또한,
    상기 현재 픽처 블록의 상기 제1 측에 있는 적어도 하나의 제1 타겟 픽처 블록이 상기 획득된 타겟 픽처 블록에 존재하는 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하고,
    상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 상이한 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 획득된 타겟 픽처 블록과 상이하다고 판단하도록 구성되는,
    인터 예측 장치.
  11. 제10항에 있어서,
    상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하는 데 있어서, 상기 결정 모듈은,
    상기 현재 이웃 위치가 위치하는 픽처 블록의 미리 설정된 위치의 픽셀 좌표가 각각의 상기 적어도 하나의 제1 타겟 픽처 블록의 상기 미리 설정된 위치의 픽셀 좌표와 동일한지 여부를 판단하고,
    상기 현재 이웃 위치가 위치하는 상기 픽처 블록의 상기 미리 설정된 위치의 픽셀 좌표가 각각의 상기 적어도 하나의 제1 타겟 픽처 블록의 상기 미리 설정된 위치의 픽셀 좌표와 상이한 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판단하도록 구성되는,
    인터 예측 장치.
  12. 제10항에 있어서,
    상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 동일한지 여부를 판단하는 데 있어서, 상기 결정 모듈은,
    상기 현재 이웃 위치가 위치하는 픽처 블록의 번호가 각각의 상기 적어도 하나의 제1 타겟 픽처 블록의 번호와 동일한지 여부를 판단하고,
    상기 현재 이웃 위치가 위치하는 픽처 블록의 번호가 각각의 상기 적어도 하나의 제1 타겟 픽처 블록의 번호와 상이한 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록은 각각의 상기 적어도 하나의 제1 타겟 픽처 블록과 상이하다고 판단하도록 구성되는,
    인터 예측 장치.
  13. 제9항 내지 제12항에 있어서,
    상기 현재 이웃 위치가 위치하는 픽처 블록은 상기 현재 픽처 블록의 제1 측에 있고, 상기 결정 모듈은 또한,
    상기 현재 픽처 블록의 제1 측의 어떠한 제1 타겟 픽처 블록도 상기 획득된 타겟 픽처 블록에 존재하지 않는 경우, 상기 현재 이웃 위치가 위치하는 픽처 블록이 각각의 상기 획득된 타겟 픽처 블록과 상이하다고 판단하도록 구성되는,
    인터 예측 장치.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서,
    상기 N개의 타겟 픽처 블록은 아핀 픽처 블록이고, 상기 현재 픽처 블록의 상기 후보 모션 정보는 상기 현재 픽처 블록의 제어 포인트의 후보 모션 정보이며, 상기 N개의 타겟 픽처 블록의 모션 정보에 기초하여 상기 현재 픽처 블록의 후보 모션 정보를 결정하는 데 있어서, 상기 결정 모듈은,
    상기 N개의 타겟 픽처 블록의 제어 포인트의 모션 정보에 기초하여 상기 현재 픽처 블록의 상기 제어 포인트의 후보 모션 정보를 결정하도록 구성되는,
    인터 예측 장치.
  15. 비디오 인코더로서,
    제8항 내지 제14항 중 어느 한 항에 따른 인터 예측 장치 - 상기 인터 예측 장치는 현재 코딩 픽처 블록에 대해 인터 예측을 수행하여, 상기 현재 코딩 픽처 블록의 예측 블록을 획득하도록 구성됨 - 와,
    제1 식별자를 비트스트림으로 인코딩하도록 구성된 엔트로피 인코딩 유닛 - 상기 제1 식별자는, 모션 정보 후보 리스트에 있으며 상기 현재 코딩 픽처 블록의 모션 정보를 예측하는 데 사용되는 후보 모션 정보를 표시하는 데 사용됨 - 과,
    상기 예측 블록에 기초하여 상기 현재 코딩 픽처 블록을 재구성하도록 구성된 재구성 유닛을 포함하는,
    비디오 인코더.
  16. 비디오 디코더로서,
    비트스트림을 디코딩하여 제1 식별자를 획득하도록 구성된 엔트로피 디코딩 유닛 - 상기 제1 식별자는, 모션 정보 후보 리스트에 있으며 상기 현재 코딩 픽처 블록의 모션 정보를 예측하는 데 사용되는 후보 모션 정보를 표시하는 데 사용됨 - 과,
    제8항 내지 제14항 중 어느 한 항에 따른 인터 예측 장치 - 상기 인터 예측 장치는 상기 현재 코딩 픽처 블록에 대해 인터 예측을 수행하여, 상기 현재 코딩 픽처 블록의 예측 블록을 획득하도록 구성됨 - 와,
    상기 예측 블록에 기초하여 상기 현재 코딩 픽처 블록을 재구성하도록 구성된 재구성 유닛을 포함하는,
    비디오 디코더.
KR1020217009077A 2018-08-28 2019-06-13 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더 KR102566569B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810990444.2 2018-08-28
CN201810990444.2A CN110868601B (zh) 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器
PCT/CN2019/091005 WO2020042724A1 (zh) 2018-08-28 2019-06-13 帧间预测方法、装置以及视频编码器和视频解码器

Publications (2)

Publication Number Publication Date
KR20210046777A true KR20210046777A (ko) 2021-04-28
KR102566569B1 KR102566569B1 (ko) 2023-08-11

Family

ID=69643405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217009077A KR102566569B1 (ko) 2018-08-28 2019-06-13 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더

Country Status (6)

Country Link
US (1) US20210185323A1 (ko)
EP (1) EP3840382A4 (ko)
JP (2) JP7234346B2 (ko)
KR (1) KR102566569B1 (ko)
CN (2) CN117241039A (ko)
WO (1) WO2020042724A1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140031384A (ko) * 2011-06-30 2014-03-12 가부시키가이샤 제이브이씨 켄우드 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
KR20160071477A (ko) * 2012-01-19 2016-06-21 미디어텍 싱가폴 피티이. 엘티디. 단순화된 움직임 벡터 예측자 유도를 위한 방법 및 장치
KR20180028513A (ko) * 2015-08-04 2018-03-16 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI375472B (en) * 2008-02-04 2012-10-21 Ind Tech Res Inst Intra prediction method for luma block of video
DK2568706T3 (en) * 2010-05-04 2019-03-11 Lg Electronics Inc METHOD AND DEVICE FOR PROCESSING A VIDEO SIGNAL
AU2016231582B2 (en) * 2010-07-20 2018-07-05 Ntt Docomo, Inc. Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
FI3907999T3 (fi) * 2010-09-02 2023-12-14 Lg Electronics Inc Inter-ennustus
JP5781313B2 (ja) * 2011-01-12 2015-09-16 株式会社Nttドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
EP3627839B1 (en) * 2011-03-21 2021-10-20 LG Electronics Inc. Method for selecting motion vector predictor
JP2013042235A (ja) * 2011-08-11 2013-02-28 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
GB2559226B (en) * 2011-09-09 2018-11-28 Kt Corp Method for deriving a temporal predictive motion vector
JP5942782B2 (ja) * 2011-10-31 2016-06-29 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
RU2566973C2 (ru) * 2011-11-08 2015-10-27 Самсунг Электроникс Ко., Лтд. Способ и устройство для определения вектора движения в кодировании или декодировании видео
JP5747816B2 (ja) * 2011-12-28 2015-07-15 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、送信装置、送信方法及び送信プログラム
JP2013141187A (ja) * 2012-01-06 2013-07-18 Sony Corp 画像処理装置及び画像処理方法
ES2832573T3 (es) * 2012-01-19 2021-06-10 Electronics & Telecommunications Res Inst Método para codificación/decodificación de imágenes
DK3716621T3 (da) * 2012-04-12 2021-12-06 Jvc Kenwood Corp Indretning til kodning af levende billeder, fremgangsmåde til kodning af levende billeder, program til kodning af levende billeder og indretning til afkodning af levende billeder, fremgangsmåde til afkodning af levende billeder, program til afkodning af levende billeder
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
US10021367B2 (en) * 2013-04-10 2018-07-10 Hfi Innovation Inc. Method and apparatus of inter-view candidate derivation for three-dimensional video coding
CN103338372A (zh) * 2013-06-15 2013-10-02 浙江大学 一种视频处理方法及装置
CN104079944B (zh) * 2014-06-30 2017-12-01 华为技术有限公司 视频编码的运动矢量列表构建方法和系统
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
WO2017003063A1 (ko) * 2015-06-28 2017-01-05 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017035831A1 (en) * 2015-09-06 2017-03-09 Mediatek Inc. Adaptive inter prediction
WO2017048008A1 (ko) * 2015-09-17 2017-03-23 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
CN106559669B (zh) * 2015-09-29 2018-10-09 华为技术有限公司 预测图像编解码方法及装置
US10225572B2 (en) * 2015-09-30 2019-03-05 Apple Inc. Configurable motion estimation search systems and methods
US10812822B2 (en) * 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
US20190028731A1 (en) * 2016-01-07 2019-01-24 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US11638027B2 (en) * 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
MX2019003553A (es) * 2016-09-30 2019-08-12 Huawei Tech Co Ltd Metodo de codificacion de video, metodo de decodificacion de video y terminal.
EP3664454A1 (en) * 2017-08-03 2020-06-10 LG Electronics Inc. -1- Method and device for inter-prediction mode-based image processing
US10958934B2 (en) * 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
CN116708815A (zh) * 2018-08-09 2023-09-05 Lg电子株式会社 编码设备、解码设备和数据发送设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140031384A (ko) * 2011-06-30 2014-03-12 가부시키가이샤 제이브이씨 켄우드 화상 인코딩 장치, 화상 인코딩 방법, 화상 인코딩 프로그램, 화상 디코딩 장치, 화상 디코딩 방법 및 화상 디코딩 프로그램
EP2728882A1 (en) * 2011-06-30 2014-05-07 JVC Kenwood Corporation Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
KR20160071477A (ko) * 2012-01-19 2016-06-21 미디어텍 싱가폴 피티이. 엘티디. 단순화된 움직임 벡터 예측자 유도를 위한 방법 및 장치
KR20180028513A (ko) * 2015-08-04 2018-03-16 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A. Robert et al, CE4.1: Affine mode enhancement (Test 4.1.4), JVET-K0218 version 2 (2018.07.09.) 1부.* *

Also Published As

Publication number Publication date
US20210185323A1 (en) 2021-06-17
JP7234346B2 (ja) 2023-03-07
WO2020042724A1 (zh) 2020-03-05
JP2023075158A (ja) 2023-05-30
CN110868601A (zh) 2020-03-06
JP2021535670A (ja) 2021-12-16
CN110868601B (zh) 2024-03-15
JP7485809B2 (ja) 2024-05-16
CN117241039A (zh) 2023-12-15
KR102566569B1 (ko) 2023-08-11
EP3840382A4 (en) 2021-12-15
EP3840382A1 (en) 2021-06-23

Similar Documents

Publication Publication Date Title
US11252436B2 (en) Video picture inter prediction method and apparatus, and codec
JP2019508971A (ja) ビデオコーディングのための固定フィルタからのフィルタ係数を予測すること
KR102607443B1 (ko) 비디오 데이터 인터 예측 방법 및 장치
KR20130126688A (ko) 모션 벡터 예측
JP2015510358A (ja) Bスライス中の予測単位の単方向インター予測への制限
KR102606146B1 (ko) 모션 벡터 예측 방법 및 관련 장치
CN110868587B (zh) 一种视频图像预测方法及装置
KR102621958B1 (ko) 후보 모션 벡터 리스트 획득 방법, 장치, 인코더 및 디코더
CN111200735A (zh) 一种帧间预测的方法及装置
KR20220003037A (ko) 인터 예측 방법 및 장치
CN112740663B (zh) 图像预测方法、装置以及相应的编码器和解码器
US11601667B2 (en) Inter prediction method and related apparatus
CN110876057B (zh) 一种帧间预测的方法及装置
KR102566569B1 (ko) 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더
CN110677645B (zh) 一种图像预测方法及装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant