KR20230156446A - 모션 벡터 획득 방법 및 장치 - Google Patents

모션 벡터 획득 방법 및 장치 Download PDF

Info

Publication number
KR20230156446A
KR20230156446A KR1020237038069A KR20237038069A KR20230156446A KR 20230156446 A KR20230156446 A KR 20230156446A KR 1020237038069 A KR1020237038069 A KR 1020237038069A KR 20237038069 A KR20237038069 A KR 20237038069A KR 20230156446 A KR20230156446 A KR 20230156446A
Authority
KR
South Korea
Prior art keywords
block
target
motion vector
sub
picture
Prior art date
Application number
KR1020237038069A
Other languages
English (en)
Inventor
후안방 첸
인 자오
하이타오 양
지안리 첸
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20230156446A publication Critical patent/KR20230156446A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/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/567Motion estimation based on rate distortion criteria

Landscapes

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

Abstract

본 출원은 모션 벡터 획득 방법 및 장치를 제공한다. 이 방법은 블럭의 타겟 오프셋 벡터 및 타겟 픽쳐의 식별자 정보를 결정하는 단계 ― 블럭은 적어도 하나의 서브 블럭을 포함함 ―와, 서브 블럭의 위치 좌표 값을 결정하는 단계와, 범위 내에서 초기 위치 좌표 값에 대해 클리핑 동작을 수행함으로써 획득된 위치 좌표 값을 병치된 서브 블럭의 타겟 위치 좌표 값으로서 결정하는 단계 ― 초기 위치 좌표 값은 서브 블럭의 위치 및 타겟 오프셋 벡터에 기반하여 결정됨 ―와, 타겟 위치 좌표 값에 대응하는 모션 벡터에 기반하여 서브 블럭의 모션 벡터를 획득하는 단계를 포함한다. 따라서, 타겟 오프셋 벡터의 범위가 제한되므로, 병치된 서브 블럭의 모션 벡터를 획득하는 프로세스에서 메모리 판독 시간량을 감소시킬 수 있다.

Description

모션 벡터 획득 방법 및 장치{MOTION VECTOR OBTAINING METHOD AND APPARATUS}
본 출원은 비디오 인코딩 및 디코딩 기술 분야에 관한 것으로, 보다 상세하게는 모션 벡터 획득 방법 및 장치에 관한 것이다.
디지털 비디오 기능은 디지털 텔레비전, 디지털 라이브 브로드캐스트 시스템, 무선 브로드캐스트 시스템, 퍼스널 디지털 어시스턴트(personal digital assistants)(PDA), 랩탑 또는 데스크탑 컴퓨터, 태블릿 컴퓨터, e-book 리더, 디지털 카메라, 디지털 레코딩 장치, 디지털 미디어 플레이어, 비디오 게임 장치, 비디오 게임 콘솔, 셀룰러 또는 위성 무선폰(소위 "스마트폰"), 비디오 컨퍼런싱 장치, 비디오 스트림 장치 등을 포함한 광범위한 장치에 통합될 수 있다. 디지털 비디오 장치는 비디오 압축 기술, 예를 들어, MPEG-2, MPEG-4, ITU-T H.263, 및 ITU-T H.264/MPEG-4 part 10 고급 비디오 코딩(advanced video coding)(AVC), 비디오 코딩 표준 H.265/고효율 비디오 코딩(high efficiency video coding)(HEVC) 표준, 및 이러한 표준의 확장판에 정의된 표준에 기술된 비디오 압축 기술을 구현한다. 비디오 장치는 이러한 비디오 압축 기술을 구현함으로써 디지털 비디오 정보를 보다 효율적으로 송신, 수신, 인코딩, 디코딩 및/또는 저장할 수 있다.
비디오 압축 기술은 비디오 시퀀스에서 고유한 중복성을 줄이거나 제거하기 위해 공간(인트라 픽처) 예측 및/또는 시간(인터 픽처) 예측을 수행하는 데 사용된다. 블럭 기반 비디오 코딩에서, 비디오 슬라이스(즉, 비디오 프레임 또는 비디오 프레임의 일부)는 수 개의 픽처 블럭으로 분할될 수 있으며, 픽처 블럭은 또한 트리 블럭, 코딩 단위(coding unit)(CU), 및/또는 코딩 노드로 지칭될 수 있다. 픽처의 인트라 코딩될 (I) 슬라이스 내의 픽처 블럭은 동일한 픽처 내의 이웃하는 블럭 내의 기준 샘플에 기반한 공간 예측을 통해 코딩된다. 픽처의 인터 코딩될 (P 또는 B) 슬라이스 내의 픽처 블럭의 경우, 동일한 픽처의 이웃하는 블럭 내의 기준 샘플에 기반한 공간 예측 또는 다른 기준 픽처 내의 기준 샘플에 기반한 시간 예측이 사용될 수 있다. 픽처는 프레임으로 지칭될 수 있고, 기준 픽처는 기준 픽처로 지칭될 수 있다.
HEVC 표준을 포함한 다양한 비디오 코딩 표준은 픽처 블럭에 사용되는 예측 코딩 모드를 제안한다. 구체적으로, 현재 코딩될 블럭은 코딩된 비디오 데이터 블럭에 기반하여 예측된다. 인트라 예측 모드에서, 현재 블럭은 현재 블럭과 동일한 픽처 내에서 하나 이상의 이전에 디코딩된 이웃하는 블럭들에 기반하여 예측된다. 인터 예측 모드에서, 현재 블럭은 상이한 픽처 내의 디코딩된 블럭에 기반하여 예측된다.
HEVC 인터 예측에서, 동일한 모션 정보를 사용하여 CU 내의 모든 샘플에 대해 모션 보상을 수행하여, CU 내의 샘플들의 예측된 값들을 획득한다. 그러나, CU 내의 샘플들은 반드시 동일한 모션 특징을 갖지는 않는다. 따라서, 동일한 모션 정보를 이용하여 CU 내의 모든 샘플들을 예측하게 되면, 모션 보상의 정확도가 감소될 수 있고 잔차 정보가 더욱 증가될 수 있다.
이러한 문제를 해결하기 위해, 기존 솔루션에서 진전된 시간 모션 벡터 예측(advanced temporal motion vector prediction)(ATMVP) 기술이 제안되었다.
ATMVP 기술을 사용하여 예측을 수행하는 프로세스는 주로 다음을 포함한다:
(1) 현재 처리 대상 블럭(current to-be-processed block)의 오프셋 벡터를 결정한다.
(2) 해당 픽처에서, 오프셋 벡터와 현재 처리 대상 블럭 내의 처리 대상 서브 블럭의 위치에 기반하여 처리 대상 서브 블럭의 병치된 서브 블럭을 결정한다.
(3) 병치된 서브 블럭의 모션 벡터에 기반하여 현재 처리 대상 서브 블럭의 모션 벡터를 결정한다.
(4) 처리 대상 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭에 대해 모션 보상 예측(motion-compensated prediction)을 수행하여, 처리 대상 서브 블럭의 예측된 샘플 값을 획득한다.
그러나, ATMVP 기술에서는, 해당 픽처 내에서 결정된 병치된 서브 블럭의 범위가 불확실하고, 해당 픽처로부터 병치된 서브 블럭의 모션 정보가 빈번하게 판독될 필요가 있다. 결과적으로, 메모리 판독 대역폭이 증가하고, 예측 프로세스의 복잡성이 증가하게 된다.
본 출원은 메모리 판독 시간량을 감소시키기 위해 모션 벡터 획득 방법 및 장치를 제공한다.
제 1 양태에 따르면, 모션 벡터 획득 방법이 제공된다. 방법은 제 1 값 범위 및 제 2 값 범위를 결정하는 단계와, 처리 대상 블럭의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정하는 단계 ― 상기 처리 대상 블럭은 적어도 하나의 처리 대상 서브 블럭을 포함함 ―와, 상기 타겟 픽처에서 상기 처리 대상 서브 블럭의 위치 및 상기 타겟 오프셋 벡터에 기반하여, 상기 처리 대상 서브 블럭의 병치된 서브 블럭을 결정하는 단계와, 상기 병치된 서브 블럭의 모션 벡터에 기반하여 상기 처리 대상 서브 블럭의 모션 벡터를 결정하는 단계를 포함한다.
제 1 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 1 값 범위 내에 속하고, 제 2 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 2 값 범위 내에 속하며, 그리고 제 1 방향 및 제 2 방향은 직교 관계에 있다.
적어도 하나의 처리 대상 서브 블럭은 처리 대상 블럭을 재분할함으로써 획득될 수 있음을 이해해야 한다. 또한, 처리 대상 블럭이 코딩 단위(CU)인 경우, 처리 대상 서브 블럭은 CU가 분할된 후 획득되는 서브 CU이다.
또한, 타겟 픽처 내에 있고 처리 대상 블럭에 대응하는 (픽처) 블럭은 해당 블럭이라고 지칭될 수 있으며, 해당 블럭은 적어도 하나의 병치된 서브 블럭을 포함하며, 타겟 오프셋 벡터는 처리 대상 블럭에 속하고 타겟 픽처 내에 있는 해당 블럭(의 위치)을 결정하는 데 사용된다. 여기서, 타겟 오프셋 벡터는 공통 모션 벡터와는 상이하다는 것을 이해해야 한다. 여기서, 타겟 오프셋 벡터는 해당 블럭을 결정하는 데 사용된다. 그러나, 일반적으로는 모션 벡터를 사용하여 픽처 블럭의 예측 블럭을 결정하여, 픽처 블럭의 예측된 샘플 값을 획득한다. 또한, 오프셋 벡터는 또한 시간 벡터(temporal vector)라고도 지칭될 수 있고, 타겟 픽처는 또한 해당 픽처라고도 지칭될 수 있다.
제 1 값 범위와 제 2 값 범위는 동일한 신택스 요소(syntax element)를 사용하여 표시될 수 있다.
구체적으로, 제 1 값 범위는 제 1 임계치 및 제 2 임계치를 포함하고, 제 2 값 범위는 제 3 임계치 및 제 4 임계치를 포함한다. 제 1 임계치는 신택스 요소를 파싱(parsing)함으로써 획득될 수 있다. 제 2 임계치, 제 3 임계치, 및 제 4 임계치는 각각 제 1 임계치와의 특정의 다중 관계(또는 다른 수치 관계)를 가지고 있다. 이러한 방식으로, 제 1 임계치가 획득된 후, 제 2 임계치 내지 제 4 임계치는 제 1 임계치와 각각의 제 2 임계치 내지 제 4 임계치 간의 다중 관계에 기반하여 획득될 수 있다.
선택적으로, 타겟 픽처의 식별자 정보는 픽처 시퀀스에서 타겟 픽처의 픽처 순서 카운트(picture order count)(POC)이다.
POC는 오리지널 픽처 시퀀스에서 픽처의 실제 위치를 표시하는 데 사용된다는 것을 이해해야 한다. 인코딩 순서/디코딩 순서와 구별하기 위해, POC는 또한 디스플레이 순서(display order) 또는 재생 순서(play order)라고 지칭될 수도 있다.
선택적으로, 타겟 픽처의 식별자 정보는 타겟 픽처의 인덱스 정보 또는 인덱스 값이다.
본 출원에서는 타겟 오프셋 벡터의 성분 값이 특정 값 범위 내에 속하기 때문에, 처리 대상 서브 블럭에 속하고 타겟 픽처에서 타겟 오프셋 벡터에 기반하여 결정되는 병치된 서브 블럭은 또한 타겟 픽처의 특정 범위 내에 속하게 된다. 따라서, 타겟 픽처의 특정 범위에서 시간 모션 벡터 필드를 사전 판독함으로써 메모리 대역폭과 메모리 판독 시간량을 감소시킬 수 있다.
제 1 양태를 참조하면, 제 1 양태의 일부 구현예에서, 병치된 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정하기 전에, 방법은 타겟 픽처 내의 사전 설정된 구역 내의 샘플의 모션 벡터를 획득하는 단계를 더 포함하며, 여기서 사전 설정된 구역은 처리 대상 서브 블럭의 병치된 서브 블럭이 나타날 수 있는 구역이다.
본 출원에서는 타겟 픽처에서 병치된 서브 블럭이 나타나는 구역이 결정되므로, 타겟 픽처 내의 특정 구역의 모션 벡터를 사전 획득함으로써 타겟 픽처로부터 모션 벡터를 판독하는 시간량을 감소시킬 수 있다. 즉, 메모리 판독 시간량이 감소된다. 또한, 모션 벡터는 타겟 픽처 내의 특정 구역에서만 획득되므로, 메모리 대역폭이 감소될 수 있다.
제 1 값 범위는 제 1 임계치 및 제 2 임계치를 포함하는 값 범위일 수 있고, 제 2 값 범위는 제 3 임계치 및 제 4 임계치를 포함하는 값 범위일 수 있음을 이해해야 한다. 제 1 임계치는 제 2 임계치보다 작고, 제 3 임계치는 제 4 임계치보다 작다.
선택적으로, 제 1 값 범위는 (제 1 임계치, 제 2 임계치), (제 1 임계치, 제 2 임계치], [제 1 임계치, 제 2 임계치), 및 [제 1 임계치, 제 2 임계치] 중 임의의 하나이다.
선택적으로, 제 2 값 범위는 (제 3 임계치, 제 4 임계치), (제 3 임계치, 제 4 임계치], [제 3 임계치, 제 4 임계치), 및 [제 3 임계치, 제 4 임계치] 중 임의의 하나이다.
즉, 제 1 값 범위 및 제 2 값 범위는 각각 개방 범위, 폐쇄 범위, 및 반 개방 및 반 폐쇄 범위 중 임의의 하나일 수 있다.
제 1 값 범위가 (제 1 임계치, 제 2 임계치)인 경우, 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값이 제 1 값 범위 내에 속한다는 것은 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값이 제 1 임계치보다 크고 제 2 임계치보다 작다는 것을 포함한다는 것을 이해해야 한다.
제 1 값 범위가 [제 1 임계치, 제 2 임계치]인 경우, 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값이 제 1 값 범위 내에 속한다는 것 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값이 제 1 임계치보다 크거나 같고 제 2 임계치보다 작거나 같다는 것을 포함한다는 것을 이해해야 한다.
제 1 양태를 참조하면, 제 1 양태의 일부 구현예에서, 처리 대상 블럭의 타겟 오프셋 벡터를 결정하는 것은 처리 대상 블럭의 초기 오프셋 벡터를 결정하는 것과, 제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위 내에 속하고, 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위 내에 속하는 경우, 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정하는 것, 또는 제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위를 초과하고 및/또는 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위를 벗어나는 경우, 제 1 방향으로의 초기 오프셋 벡터의 성분의 값에 속하고 제 1 값 범위를 초과하는 파트(part) 및/또는 제 2 방향으로의 초기 오프셋 벡터의 성분의 값에 속하고 제 2 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 그리고 클리핑 후 획득되는 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정하는 것을 포함한다.
클리핑 후 획득되는 초기 오프셋 벡터에 속하고 제 1 방향과 제 2 방향에 있는 성분들의 값들은 각각 제 1 값 범위와 제 2 값 범위 내에 속한다.
초기 오프셋 벡터의 성분들의 값들이 제 1 방향과 제 2 방향으로 제한되므로, 최종적으로 획득된 타겟 오프셋 벡터의 제 1 방향과 제 2 방향으로의 성분들의 값들은 각각 제 1 값 범위와 제 2 값 범위 내에 속할 수 있게 된다.
선택적으로, 제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위를 벗어나고 및/또는 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위를 벗어나는 경우, 제 1 방향으로의 초기 오프셋 벡터의 성분의 값에 속하고 제 1 값 범위를 초과하는 파트 및/또는 제 2 방향으로의 초기 오프셋 벡터의 성분의 값에 속하고 제 2 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 그리고 클리핑 후 획득되는 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정하는 것은 다음을 포함한다.
제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위 내에 속하고, 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위를 초과하는 경우, 제 2 방향으로의 초기 오프셋 벡터의 성분에 속하고 제 2 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 그리고 클리핑 후에 획득되는 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정하는 것; 또는
제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위를 초과하고, 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위 내에 속하는 경우, 제 1 방향으로의 초기 오프셋 벡터의 성분에 속하고 제 1 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 그리고 클리핑 후에 획득되는 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정하는 것; 또는
제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위를 초과하고, 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위를 초과하는 경우, 제 1 방향으로의 초기 오프셋 벡터의 성분에 속하고 제 1 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 제 2 방향으로의 초기 오프셋 벡터의 성분에 속하고 제 2 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 그리고 클리핑 후에 획득되는 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정하는 것.
일 방향으로의 초기 오프셋 벡터의 성분의 값이 그 방향으로의 최대 값을 초과할 경우, 클리핑은 실제로 그 성분 값에 속하고 최대 값을 초과하는 파트를 절삭하는 것이고, 그에 따라 절삭 후 획득되는 성분 값이 최대 값보다 작거나 같게 된다는 것을 이해해야 한다. 일 방향으로의 초기 오프셋 벡터의 성분의 값이 그 방향으로의 최소 값보다 작은 경우, 클리핑은 실제로 그 성분 값을 보상하는 것, 즉 그 성분 값을 증가시키는 것이고, 그에 따라 보상 후 획득되는 성분 값이 최소 값보다 크거나 같게 된다는 것을 이해해야 한다.
제 1 양태를 참조하면, 제 1 양태의 일부 구현예에서, 처리 대상 블럭의 초기 오프셋 벡터를 결정하는 것은 처리 대상 블럭의 사전 설정된 공간적으로 이웃하는 블럭의 모션 벡터를 초기 오프셋 벡터로서 결정하는 것을 포함한다.
선택적으로, 처리 대상 블럭의 사전 설정된 공간적으로 이웃하는 블럭의 모션 벡터를 초기 오프셋 벡터로서 결정하는 것은 제 1 이용 가능한 공간적으로 이웃하는 블럭의 모션 벡터를 사전 설정된 순서의 초기 오프셋 벡터로서 결정하는 것을 포함한다.
제 1 이용 가능한 공간적으로 이웃하는 블럭의 모션 벡터는 초기 오프셋 벡터로서 바로 결정되므로, 초기 오프셋 벡터를 결정하는 프로세스는 단순화될 수 있다.
제 1 양태를 참조하면, 제 1 양태의 일부 구현예에서, 처리 대상 블럭의 타겟 오프셋 벡터를 결정하는 것은 처리 대상 블럭의 사전 설정된 공간적으로 이웃하는 블럭들에서 공간적으로 이웃하는 타겟 블럭을 결정하는 것 ― 여기서 제 1 방향으로의 공간적으로 이웃하는 타겟 블럭의 모션 벡터의 성분의 값은 제 1 값 범위 내에 속하고, 제 2 방향으로의 공간적으로 이웃하는 타겟 블럭의 모션 벡터의 성분의 값은 제 2 값 범위 내에 속하게 됨 ―과, 공간적으로 이웃하는 타겟 블럭의 모션 벡터를 타겟 오프셋 벡터로서 사용하는 것을 포함한다.
공간적으로 이웃하는 블럭에 속하고 성분 값들이 제 1 값 범위와 제 2 값 범위 내에 속하는 모션 벡터는 타겟 오프셋 벡터로서 바로 결정되므로, 타겟 오프셋 벡터를 결정하는 프로세스는 단순화될 수 있다.
제 1 양태를 참조하면, 제 1 양태의 일부 구현예에서, 제 1 값 범위 및 제 2 값 범위를 결정하는 것은 처리 대상 블럭의 위치 및 사이즈, 처리 대상 블럭이 위치하는 코딩 트리 단위(coding tree unit)(CTU)의 위치 및 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여, 제 1 값 범위 및 제 2 값 범위를 결정하는 것을 포함한다.
선택적으로, 처리 대상 블럭의 위치 및 사이즈, 처리 대상 블럭이 위치하는 코딩 트리 단위(CTU)의 위치 및 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여, 제 1 값 범위를 결정하는 것은 처리 대상 블럭의 위치 및 사이즈, 처리 대상 블럭이 위치하는 코딩 트리 단위(CTU)의 위치 및 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여, 제 1 임계치 및 제 2 임계치를 결정하는 것 ― 여기서 제 1 임계치는 제 1 방향으로의 타겟 오프셋 벡터의 성분에 대해 사용 가능한 최소 값이고, 제 2 임계치는 제 1 방향으로의 타겟 오프셋 벡터의 성분에 대해 사용 가능한 최대 값이 됨 ―과, 제 1 임계치 및 제 2 임계치에 기반하여 제 1 값 범위를 획득하는 것을 포함한다.
선택적으로, 처리 대상 블럭의 위치 및 사이즈, 처리 대상 블럭이 위치하는 코딩 트리 단위(CTU)의 위치 및 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여, 제 2 값 범위를 결정하는 것은 처리 대상 블럭의 위치 및 사이즈, 처리 대상 블럭이 위치하는 코딩 트리 단위(CTU)의 위치 및 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여, 제 3 임계치 및 제 4 임계치를 결정하는 것 ― 여기서 제 3 임계치는 제 2 방향으로의 타겟 오프셋 벡터의 성분에 대해 사용 가능한 최소 값이고, 제 4 임계치는 제 2 방향으로의 타겟 오프셋 벡터의 성분에 대해 사용 가능한 최대 값이 됨 ―과, 제 3 임계치 및 제 4 임계치에 기반하여 제 2 값 범위를 획득하는 것을 포함한다.
제 1 양태를 참조하면, 제 1 양태의 일부 구현예에서, CTU의 시간 모션 벡터 필드의 확장 범위는 제 1 방향 및 제 2 방향으로의 CTU의 시간 모션 벡터 필드의 확장 범위들을 포함한다.
선택적으로, 제 1 방향은 수평 방향이고, 제 2 방향은 수직 방향이다.
선택적으로, 제 1 방향이 수평 방향이고 제 2 방향이 수직 방향인 경우, CTU의 시간 모션 벡터 필드의 확장 범위는 상부 방향, 하단 방향, 좌측 방향, 및 우측 방향으로의 CTU의 시간 모션 벡터 필드의 확장 범위들을 포함한다.
제 1 양태를 참조하면, 제 1 양태의 일부 구현예에서, CTU의 시간 모션 벡터 필드의 확장 범위에 관한 정보는 시퀀스 파라미터 세트(sequence parameter set)(SPS), 픽처 파라미터 세트(picture parameter set)(PPS), 및 헤더 필드 중 적어도 하나 내에서 운반된다.
선택적으로, CTU의 시간 모션 벡터 필드의 확장 범위는 사전 설정된다.
제 1 양태를 참조하면, 제 1 양태의 일부 구현예에서, 병치된 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정하는 것은 처리 대상 서브 블럭을 포함한 픽처의 픽처 순서 카운트(picture order count)(POC), 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것을 포함한다.
선택적으로, 처리 대상 서브 블럭을 포함한 픽처의 픽처 순서 카운트(POC), 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것은 처리 대상 서브 블럭을 포함한 픽처의 픽처 순서 카운트(POC)와 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC 간의 차이를 제 1 차이로서 결정하는 것과, 타겟 픽처의 POC와 타겟 픽처의 타겟 기준 픽처의 POC 간의 차이를 제 2 차이로서 결정하는 것과, 및 제 1 차이 대 제 2 차이의 비율에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것을 포함한다.
선택적으로, 제 1 차이 대 제 2 차이의 비율에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것은 제 1 차이 대 제 2 차이의 비율을 제 1 비율로서 결정하는 것과, 제 1 비율과 병치된 서브 블럭의 모션 벡터의 곱을 처리 대상 서브 블럭의 모션 벡터로서 결정하는 것을 포함한다.
제 1 양태를 참조하면, 제 1 양태의 일부 구현예에서, 처리 대상 서브 블럭의 모션 벡터는 다음의 수학식에 따라 획득된다.
.
여기서, P1은 처리 대상 서브 블럭을 포함한 픽처의 POC를 나타내고, P2는 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC를 나타내고, P3은 타겟 픽처의 POC를 나타내고, P4는 타겟 픽처의 타겟 기준 픽처의 POC를 나타내고, MV는 병치된 서브 블럭의 모션 벡터를 나타내고, 그리고 MVs는 처리 대상 서브 블럭의 모션 벡터를 나타낸다.
선택적으로, MV는 수평 방향 모션 벡터 MVx 및 수직 방향 모션 벡터 MVy로 분해되고, 수평 방향 모션 벡터 MVsx 및 수직 방향 모션 벡터 MVsy는 전술한 수학식에 따른 계산을 통해 별도로 획득된다.
제 2 양태에 따르면, 모션 벡터 획득 방법이 제공된다. 이 방법은 처리 대상 블럭의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정하는 단계 ― 상기 처리 대상 블럭은 적어도 하나의 처리 대상 서브 블럭을 포함함 ―와, 상기 처리 대상 서브 블럭의 위치와 상기 타겟 오프셋 벡터에 기반하여, 상기 처리 대상 서브 블럭에 속하고 상기 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치를 결정하는 단계와, 상기 초기 위치가 상기 타겟 픽처의 사전 설정된 모션 벡터 내에 있는 경우 상기 초기 위치를 타겟 위치로서 결정하는 단계, 또는 상기 초기 위치가 상기 사전 설정된 구역을 벗어나는 경우, 상기 사전 설정된 구역 내에 있고 상기 초기 위치에 가장 가까운 위치를 타겟 위치로서 결정하는 단계와, 상기 타겟 위치에 대응하는 모션 벡터에 기반하여 상기 처리 대상 서브 블럭의 모션 벡터를 결정하는 단계를 포함한다.
처리 대상 블럭은 적어도 하나의 처리 대상 서브 블럭을 포함할 수 있으며, 처리 대상 블럭의 모션 벡터의 획득은 각각의 처리 대상 서브 블럭의 모션 벡터의 획득으로 분해될 수 있음을 이해해야 한다. 또한, 처리 대상 블럭은 CU일 수 있고, 처리 대상 서브 블럭은 서브 CU일 수 있다.
타겟 픽처 내에 있고 처리 대상 블럭에 대응하는 블럭은 해당 블럭이라고 지칭될 수 있으며, 해당 블럭은 적어도 하나의 병치된 서브 블럭을 포함하며, 타겟 오프셋 벡터는 처리 대상 블럭에 속하고 타겟 픽처 내에 있는 해당 블럭(의 위치)을 결정하는 데 사용된다.
타겟 오프셋 벡터는 공통 모션 벡터와는 상이하다는 것을 이해해야 한다. 여기서, 타겟 오프셋 벡터는 해당 블럭을 결정하는 데 사용된다. 그러나, 일반적으로는 모션 벡터를 사용하여 픽처 블럭의 예측 블럭을 결정하여, 픽처 블럭의 예측된 샘플 값을 획득한다. 또한, 오프셋 벡터는 또한 시간 벡터(temporal vector)라고도 지칭될 수 있고, 타겟 픽처는 또한 해당 픽처라고도 지칭될 수 있다.
해당 위치는 사전 설정된 구역에 상대적이라는 것을 이해해야 한다. 단일 포인트가 사전 설정된 구역의 기본 구성 단위(basic composition unit)로서 사용되는 경우, 해당 위치가 또한 단일 포인트의 형태로 존재하기도 한다. 포인트 세트(point set)가 사전 설정된 구역의 기본 구성 단위로서 사용되는 경우, 해당 위치가 또한 포인트 세트의 형태로 존재하기도 한다. 이에 대응하여, 사전 설정된 구역 내의 위치와 해당 위치 간의 거리는 사전 설정된 구역 내의 단일 포인트와 해당 위치 간의 거리이거나 또는 사전 설정된 구역 내의 포인트 세트와 해당 위치의 포인트 세트 간의 거리이다.
본 출원에서, 타겟 픽처의 초기 위치와 사전 설정된 구역에 기반하여 사전 설정된 구역 내부의 타겟 위치를 탐색한 다음, 타겟 픽처의 특정 범위 내의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정한다. 따라서, 타겟 픽처의 특정 범위에서 시간 모션 벡터 필드를 사전 판독함으로써 메모리 대역폭과 메모리 판독 시간량을 감소시킬 수 있다.
선택적으로, 병치된 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정하기 전에, 방법은 타겟 픽처 내의 사전 설정된 구역 내의 샘플의 모션 벡터를 획득하는 단계를 더 포함하는데, 여기서 사전 설정된 구역은 처리 대상 서브 블럭의 병치된 서브 블럭이 나타날 수 있는 구역이다.
본 출원에서는 타겟 픽처에서 병치된 서브 블럭이 나타나는 구역이 결정되므로, 타겟 픽처 내의 특정 구역의 모션 벡터를 사전 획득함으로써 타겟 픽처로부터 모션 벡터를 판독하는 시간량을 감소시킬 수 있다. 즉, 메모리 판독 시간량이 감소된다. 또한, 모션 벡터는 타겟 픽처 내의 특정 구역에서만 획득되므로, 메모리 대역폭이 감소될 수 있다.
제 2 양태를 참조하면, 제 2 양태의 일부 구현예에서, 사전 설정된 구역은 처리 대상 블럭이 위치하는 코딩 트리 단위(CTU)의 위치 및 사이즈, 타겟 픽처의 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여 결정된다.
선택적으로, 사전 설정된 구역은 수평 좌표 값 범위와 수직 좌표 값 범위를 사용함으로써 표현될 수 있다.
제 2 양태를 참조하면, 제 2 양태의 일부 구현예에서, CTU의 시간 모션 벡터 필드의 확장 범위는 제 1 방향 및 제 2 방향으로의 CTU의 시간 모션 벡터 필드의 확장 범위들을 포함한다.
*선택적으로, 제 1 방향은 수평 방향이고, 제 2 방향은 수직 방향이다.
선택적으로, 제 1 방향이 수평 방향이고 제 2 방향이 수직 방향인 경우, CTU의 시간 모션 벡터 필드의 확장 범위는 상부 방향, 하단 방향, 좌측 방향, 및 우측 방향에서의 CTU의 시간 모션 벡터 필드의 확장 범위들을 포함한다.
제 2 양태를 참조하면, 제 2 양태의 일부 구현예에서, CTU의 시간 모션 벡터 필드의 확장 범위에 관한 정보는 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 및 헤더 필드 중 적어도 하나 내에서 운반된다.
선택적으로, CTU의 시간 모션 벡터 필드의 확장 범위는 사전 설정된다.
제 2 양태를 참조하면, 제 2 양태의 일부 구현예에서, 타겟 위치에 대응하는 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정하는 것은 처리 대상 서브 블럭을 포함한 픽처의 픽처 순서 카운트(POC), 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 타겟 위치에 대응하는 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것을 포함한다.
선택적으로, 처리 대상 서브 블럭을 포함한 픽처의 픽처 순서 카운트(POC), 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 타겟 위치에 대응하는 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것은 처리 대상 서브 블럭을 포함한 픽처의 픽처 순서 카운트(POC)와 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC 간의 차이를 제 3 차이로서 결정하는 것과, 타겟 픽처의 POC와 타겟 픽처의 타겟 기준 픽처의 POC 간의 차이를 제 4 차이로서 결정하는 것과, 제 3 차이 대 제 4 차이의 비율에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것을 포함한다.
선택적으로, 제 3 차이 대 제 4 차이의 비율에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것은 제 3 차이 대 제 4 차이의 비율을 제 2 비율로서 결정하는 것; 및 제 2 비율과 병치된 서브 블럭의 모션 벡터의 곱을 처리 대상 서브 블럭의 모션 벡터로서 결정하는 것을 포함한다.
제 2 양태를 참조하면, 제 2 양태의 일부 구현예에서, 처리 대상 서브 블럭의 모션 벡터는 다음의 수학식에 따라 획득된다:
.
여기서, P1은 처리 대상 서브 블럭을 포함한 픽처의 POC를 나타내고, P2는 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC를 나타내고, P3은 타겟 픽처의 POC를 나타내고, P4는 타겟 픽처의 타겟 기준 픽처의 POC를 나타내고, MV는 타겟 위치에 대응하는 모션 벡터를 나타내고, 그리고 MVs는 처리 대상 서브 블럭의 모션 벡터를 나타낸다.
선택적으로, MV는 수평 방향 모션 벡터 MVx 및 수직 방향 모션 벡터 MVy로 분해되고, 수평 방향 모션 벡터 MVsx 및 수직 방향 모션 벡터 MVsy는 전술한 수학식에 따른 계산을 통해 별도로 획득된다.
제 3 양태에 따르면, 모션 벡터 획득 장치가 제공된다. 장치는 제 1 양태 또는 제 2 양태의 임의의 구현예의 방법을 수행하도록 구성된 모듈들을 포함한다.
제 4 양태에 따르면, 서로 연결된 비 휘발성 메모리 및 프로세서를 포함하는 모션 벡터 획득 장치가 제공된다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여, 제 1 양태 또는 제 2 양태의 임의의 구현예의 방법의 일부 또는 모든 단계를 수행한다.
제 5 양태에 따르면, 컴퓨터 판독 가능 저장 매체가 제공된다. 컴퓨터 판독 가능 저장 매체는 프로그램 코드를 저장하고, 프로그램 코드는 제 1 양태 또는 제 2 양태의 임의의 구현예의 방법의 일부 또는 모든 단계를 수행하는 데 사용되는 인스트럭션을 포함한다.
제 6 양태에 따르면, 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때, 컴퓨터는 제 1 양태 또는 제 2 양태의 임의의 구현예의 방법의 일부 또는 모든 단계의 인스트럭션을 실행하도록 인에이블된다.
도 1은 비디오 인코딩 프로세스의 개략적인 다이어그램이다.
도 2는 비디오 디코딩 프로세스의 개략적인 다이어그램이다.
도 3은 본 출원의 일 실시예에 따른 모션 벡터 획득 방법의 개략적인 플로우차트이다.
도 4는 처리 대상 블럭의 이웃하는 블럭들의 개략적인 다이어그램이다.
도 5는 현재 픽처 내에 포함된 처리 대상 서브 블럭과 타겟 픽처 내의 병치된 서브 블럭의 개략적인 다이어그램이다.
도 6은 처리 대상 서브 블럭의 모션 벡터 및 병치된 서브 블럭의 모션 벡터의 개략적인 다이어그램이다.
도 7은 CTU의 시간 모션 벡터 필드의 확장 범위의 개략적인 다이어그램이다.
도 8은 현재 CTU 및 좌측 CTU의 시간 모션 벡터 필드들의 확장 범위들의 개략적인 다이어그램이다.
도 9는 본 출원의 일 실시예에 따른 모션 벡터 획득 방법의 개략적인 플로우차트이다.
도 10은 처리 대상 서브 블럭의 초기 위치를 결정하는 개략적인 다이어그램이다.
도 11은 타겟 위치를 결정하는 개략적인 다이어그램이다.
도 12는 처리 대상 서브 블럭의 모션 벡터 및 타겟 위치의 모션 벡터의 개략적인 다이어그램이다.
도 13은 본 출원의 일 실시예에 따른 모션 벡터 획득 방법의 플로우차트이다.
도 14는 본 출원의 일 실시예에 따른 모션 벡터 획득 방법의 플로우차트이다.
도 15는 본 출원의 일 실시예에 따른 모션 벡터 획득 방법의 플로우차트이다.
도 16은 기존 솔루션에서 처리 대상 서브 블럭의 병치된 서브 블럭을 결정하는 개략적인 다이어그램이다.
도 17은 본 출원에 따른 처리 대상 서브 블럭의 병치된 서브 블럭을 결정하는 개략적인 다이어그램이다.
도 18은 기존 병합 모드에서 후보 정보 리스트 구성 프로세스를 도시한 것이다.
도 19는 SMVP 기술이 적용되는 병합 모드에서 후보 정보 리스트 구성 프로세스를 도시한 것이다.
도 20은 본 출원의 일 실시예에 따른 모션 벡터 획득 장치의 개략적인 블럭 다이어그램이다.
도 21은 본 출원의 일 실시예에 따른 모션 벡터 획득 장치의 개략적인 블럭 다이어그램이다.
도 22는 본 출원의 일 실시예에 따른 비디오 인코더의 개략적인 블럭 다이어그램이다.
도 23은 본 출원의 일 실시예에 따른 비디오 디코더의 개략적인 블럭 다이어그램이다.
도 24는 본 출원의 일 실시예에 따른 비디오 전송 시스템의 개략적인 블럭 다이어그램이다.
도 25는 본 출원의 일 실시예에 따른 비디오 인코딩 및 디코딩 장치의 개략적인 블럭 다이어그램이다.
도 26은 본 출원의 일 실시예에 따른 비디오 인코딩 및 디코딩 시스템의 개략적인 블럭 다이어그램이다.
이하에서는 첨부 도면을 참조하여 본 출원의 기술적 솔루션을 기술한다.
본 출원의 실시예에서 모션 벡터 획득 방법의 프로세스를 더 잘 이해하기 위해, 이하에서는 먼저 도 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에 도시된 인터 예측 프로세스에 적용될 수 있다.
HEVC에는 2 개의 인터 예측 모드: 즉, 진전된 모션 벡터 예측(advanced motion vector prediction)(AMVP) 모드와 병합(merge) 모드가 있다. 본 출원의 실시예에서의 모션 벡터 획득 방법은 인터 예측의 병합 모드에 적용될 수 있다.
도 3에 도시된 방법은 단계(110) 내지 단계(140)를 포함한다. 이하에서는 단계(110) 내지 단계(140)를 상세히 설명한다.
110: 제 1 값 범위 및 제 2 값 범위를 결정한다.
선택적으로, 제 1 값 범위는 제 1 임계치 및 제 2 임계치를 포함하는 값 범위이고, 제 2 값 범위는 제 3 임계치 및 제 4 임계치를 포함하는 값 범위이다. 제 1 임계치는 제 2 임계치보다 작고, 제 3 임계치는 제 4 임계치보다 작다.
즉, 제 1 값 범위 및 제 2 값 범위는 각각 개방 범위, 폐쇄 범위, 및 반 개방 및 반 폐쇄 범위 중 임의의 하나일 수 있다는 것을 이해해야 한다.
제 1 값 범위의 특정 표현 형태는 (제 1 임계치, 제 2 임계치), (제 1 임계치, 제 2 임계치], 또는 [제 1 임계치, 제 2 임계치]일 수 있다.
제 2 값 범위의 특정 표현 형태는 (제 3 임계치, 제 4 임계치), (제 3 임계치, 제 4 임계치], 또는 [제 3 임계치, 제 4 임계치]일 수 있다.
120: 처리 대상 블럭의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정한다.
처리 대상 블럭은 적어도 하나의 처리 대상 서브 블럭을 포함하고, 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 1 값 범위 내에 속하고, 제 2 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 2 값 범위 내에 속하며, 그리고 제 1 방향 및 제 2 방향은 직교 관계에 있다.
타겟 픽처 내에 있고 처리 대상 블럭에 대응하는 (픽처) 블럭은 해당 블럭이라고 지칭될 수 있으며, 해당 블럭은 적어도 하나의 병치된 서브 블럭을 포함하며, 타겟 오프셋 벡터는 처리 대상 블럭에 속하고 타겟 픽처 내에 있는 해당 블럭(의 위치)을 결정하는 데 사용된다. 타겟 오프셋 벡터는 공통 모션 벡터와는 상이하다. 타겟 오프셋 벡터는 해당 블럭을 결정하는 데 사용된다. 그러나, 일반적으로는 모션 벡터를 사용하여 픽처 블럭의 예측 블럭을 결정하여, 픽처 블럭의 예측된 샘플 값을 획득한다. 또한, 오프셋 벡터는 또한 시간 벡터(temporal vector)라고도 지칭될 수 있고, 타겟 픽처는 또한 해당 픽처라고도 지칭될 수 있다.
타겟 픽처의 식별자 정보는 구체적으로 픽처 시퀀스 내의 픽처 프레임의 픽처 순서 카운트(picture order count)(POC)일 수 있거나, 타겟 픽처의 인덱스 정보 또는 인덱스 값일 수 있다.
POC는 오리지널 픽처 시퀀스에서 픽처의 실제 위치를 표시하는 데 사용된다는 것을 이해해야 한다. 인코딩 순서/디코딩 순서와 구별하기 위해, POC는 또한 디스플레이 순서(display order) 또는 재생 순서(play order)라고 지칭될 수도 있다.
적어도 하나의 처리 대상 서브 블럭은 처리 대상 블럭을 분할함으로써 획득될 수 있고, 적어도 하나의 처리 대상 서브 블럭은 처리 대상 블럭을 형성할 수 있다는 것을 이해해야 한다. 처리 대상 블럭이 CU인 경우, CU는 적어도 하나의 서브 CU를 포함할 수 있다. 또한, 제 1 방향 및 제 2 방향은 각각 수평 방향 및 수직 방향일 수 있다.
제 1 값 범위의 형태가 변할 경우, 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값이 제 1 값 범위 내에 속하는 이하의 특정 형태들이 존재한다:
(1) 제 1 값 범위가 (제 1 임계치, 제 2 임계치)인 경우, 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 1 임계치보다 크고 제 2 임계치보다 작다.
(2) 제 1 값 범위가 (제 1 임계치, 제 2 임계치]인 경우, 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 1 임계치보다 크고 제 2 임계치보다 작거나 같다.
(3) 제 1 값 범위가 [제 1 임계치, 제 2 임계치]인 경우, 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값이 제 1 임계치보다 크거나 같고 제 2 임계치보다 작거나 같다.
유사하게, 제 2 값 범위의 형태가 변할 경우, 제 2 방향으로의 타겟 오프셋 벡터의 성분의 값이 제 2 값 범위 내에 속하는 이하의 특정 형태들이 존재한다:
(4) 제 2 값 범위가 (제 3 임계치, 제 4 임계치)인 경우, 제 2 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 3 임계치보다 크고 제 4 임계치보다 작다.
(5) 제 2 값 범위가 (제 3 임계치, 제 4 임계치]인 경우, 제 2 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 3 임계치보다 크고 제 4 임계치보다 작거나 같다.
(6) 제 2 값 범위가 [제 3 임계치, 제 4 임계치]인 경우, 제 2 방향으로의 타겟 오프셋 벡터의 성분의 값이 제 3 임계치보다 크거나 같고 제 4 임계치보다 작거나 같다.
단계(120)에서, 타겟 오프셋 벡터는 복수의 방식으로 결정될 수 있다. 구체적으로, 초기 오프셋 벡터(이는 또한 시작 오프셋 벡터라고 지칭될 수도 있음)를 먼저 결정한 다음, 제 1 방향 및 제 2 방향으로의 초기 오프셋 벡터의 성분들의 값들을 각각 제 1 값 범위 및 제 2 값 범위로 제한하여 최종 타겟 오프셋 벡터를 획득할 수 있다. 또는, 제 1 방향 및 제 2 방향으로의 성분 값들이 각각 제 1 값 범위 및 제 2 값 범위 내에 속하는 모션 벡터가 타겟 오프셋 벡터로서 복수의 모션 벡터들로부터 직접 선택될 수도 있다. 이하에서는 타겟 오프셋 벡터를 결정하는 두 가지 방식을 상세히 설명한다.
제 1 방식은 초기 오프셋 벡터를 결정하는 것, 및 초기 오프셋 벡터의 성분들의 값을 제 1 방향 및 제 2 방향으로 제한하여, 타겟 오프셋 벡터를 획득하는 것을 포함한다.
구체적으로, 제 1 방식에서, 타겟 오프셋 벡터를 결정하는 것은 단계(1201) 내지 단계(1203)를 포함한다. 이하에서는 단계(1201) 내지 단계(1203)를 상세히 설명한다.
1201: 처리 대상 블럭의 초기 오프셋 벡터를 결정한다.
선택적으로, 처리 대상 블럭의 사전 설정된 공간적으로 이웃하는 블럭의 모션 벡터는 초기 오프셋 벡터로서 결정된다.
구체적으로, 획득된 제 1 이용 가능한 사전 설정된 공간적으로 이웃하는 블럭의 모션 벡터는 특정 순서의 초기 오프셋 벡터로서 결정될 수 있다.
예를 들어, 도 4에 도시된 바와 같이, A0, A1, B0, B1, 및 B2는 처리 대상 블럭의 공간적으로 이웃하는 블럭들이고, T는 처리 대상 블럭의 시간적으로 이웃하는 블럭이고, C는 처리 대상 블럭의 기준 픽처 내에 있고 처리 대상 블럭과 동일한 위치 내에 있는 픽처 블럭이다. 처리 대상 블럭의 초기 오프셋 벡터가 결정될 경우, 발견된 제 1 이용 가능한 이웃하는 블럭의 모션 벡터는 A1, B1, B0, 및 A0의 순서의 초기 오프셋 벡터로서 결정될 수 있다.
제 1 이용 가능한 공간적으로 이웃하는 블럭의 모션 벡터는 초기 오프셋 벡터로서 바로 결정되므로, 초기 오프셋 벡터를 결정하는 프로세스는 단순화될 수 있다.
1202: 제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위 내에 속하고, 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위 내에 속하는 경우, 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정한다.
예를 들어, 제 1 값 범위가 (제 1 임계치, 제 2 임계치)이고 제 2 값 범위가 (제 3 임계치, 제 4 임계치)인 경우, 제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 임계치보다 크고 제 2 임계치보다 작으며, 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 3 임계치보다 크고 제 4 임계치보다 작다면, 초기 오프셋 벡터는 타겟 오프셋 벡터로서 바로 결정될 수 있다.
1203: 제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위를 벗어나고 및/또는 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위를 벗어나는 경우, 제 1 방향으로의 초기 오프셋 벡터의 성분의 값에 속하고 제 1 값 범위를 초과하는 파트 및/또는 제 2 방향으로의 초기 오프셋 벡터의 성분의 값에 속하고 제 2 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 그리고 클리핑 후 획득되는 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정한다.
단계(1203)에서 클리핑 후 획득되는 초기 오프셋 벡터에 속하고 제 1 방향과 제 2 방향에 있는 성분들의 값들은 각각 제 1 값 범위와 제 2 값 범위 내에 속한다.
구체적으로, 제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위를 벗어나고 및/또는 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위를 벗어나는 경우, 초기 오프셋 벡터에 대한 처리는 사례 1 내지 사례 3을 포함한다. 이하는 3 개의 사례를 상세히 설명한다.
사례 1:
제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위 내에 속하고, 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위를 초과하는 경우, 제 2 방향으로의 초기 오프셋 벡터의 성분에 속하고 제 2 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 그리고 클리핑 후에 획득되는 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정한다.
예를 들어, 제 1 값 범위는 [제 1 임계치, 제 2 임계치]이고, 제 2 값 범위는 [제 3 임계치, 제 4 임계치]이며, 그리고 제 1 방향과 제 2 방향으로의 초기 오프셋 벡터의 성분들은 제 1 성분 및 제 2 성분이다. 제 1 성분은 제 2 임계치보다 작고 제 1 임계치보다 크며, 제 2 성분은 제 4 임계치보다 크다. 이 경우, 초기 오프셋 벡터의 제 2 성분은 [제 3 임계치, 제 4 임계치]에 의해 제한되는 값 범위를 벗어나며, 그리고 제 2 성분의 값에 속하고 제 4 임계치를 초과하는 파트에 대해 클리핑(그 대신 절삭이라고 지칭될 수도 있음)이 수행될 필요가 있으므로, 클리핑 후에 획득되는 제 2 성분은 제 3 임계치보다 크거나 같고 제 4 임계치보다 작거나 같게 된다.
사례 2:
제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위를 초과하고, 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위 내에 속하는 경우, 제 1 방향으로의 초기 오프셋 벡터의 성분에 속하고 제 1 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 그리고 클리핑 후에 획득되는 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정한다.
예를 들어, 제 1 값 범위는 [제 1 임계치, 제 2 임계치]이고, 제 2 값 범위는 [제 3 임계치, 제 4 임계치]이며, 그리고 제 1 방향과 제 2 방향으로의 초기 오프셋 벡터의 성분들은 제 1 성분 및 제 2 성분이다. 제 2 성분은 제 3 임계치보다 크고 제 4 임계치보다 작으며, 제 1 성분은 제 1 임계치보다 작다. 이 경우, 초기 오프셋 벡터의 제 1 성분은 [제 1 임계치, 제 2 임계치]에 의해 제한되는 값 범위를 벗어나고, 제 1 성분의 값은 [제 1 임계치, 제 2 임계치]에 의해 제한되는 갑 범위로 클리핑될 필요가 있고, 즉 제 1 임계치와 제 1 성분 간의 차이가 제 1 성분에 추가될 필요가 있으므로, 클리핑 후 획득되는 제 1 성분은 제 1 값 범위 내에 속하게 된다.
사례 3:
제 1 방향으로의 초기 오프셋 벡터의 성분의 값이 제 1 값 범위를 초과하고, 제 2 방향으로의 초기 오프셋 벡터의 성분의 값이 제 2 값 범위를 초과하는 경우, 제 1 방향으로의 초기 오프셋 벡터의 성분에 속하고 제 1 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 제 2 방향으로의 초기 오프셋 벡터의 성분에 속하고 제 2 값 범위를 초과하는 파트에 대해 클리핑을 수행하고, 그리고 클리핑 후에 획득되는 초기 오프셋 벡터를 타겟 오프셋 벡터로서 결정한다.
예를 들어, 제 1 값 범위는 [제 1 임계치, 제 2 임계치]이고, 제 2 값 범위는 [제 3 임계치, 제 4 임계치]이며, 그리고 제 1 방향과 제 2 방향으로의 초기 오프셋 벡터의 성분들은 제 1 성분 및 제 2 성분이다. 제 1 성분은 제 2 임계치보다 크고, 제 2 성분은 제 4 임계치보다 크다. 이 경우, 초기 오프셋 벡터의 제 1 성분은 [제 1 임계치, 제 2 임계치]에 의해 제한되는 값 범위를 벗어나고, 초기 오프셋 벡터의 제 2 성분은 [제 3 임계치, 제 4 임계치]에 의해 제한되는 값 범위를 벗어나고, 제 1 성분의 값에 속하고 제 2 임계치를 초과하는 파트에 대해 클리핑을 수행해야 하며, 그리고 제 2 성분의 값에 속하고 제 4 임계치를 초과하는 파트에 대해 클리핑을 수행해야 하므로, 클리핑 후 획득되는 제 1 성분의 값은 [제 1 임계치, 제 2 임계치] 범위 내에 속하게 되고, 그리고 클리핑 후 획득되는 제 2 성분의 값은 [제 3 임계치, 제 4 임계치] 범위 내에 속하게 된다.
제 2 방식은 처리 대상 블럭의 공간적으로 이웃하는 블럭들의 모션 벡터들 내에 있고 제 1 방향 및 제 2 방향으로의 성분 값들이 요구 사항을 충족하는 모션 벡터를 타겟 오프셋 벡터로서 결정하는 것을 포함한다.
구체적으로, 제 2 방식에서, 타겟 오프셋 벡터를 결정하는 것은 단계(1204) 및 단계(1205)를 포함한다. 이하에서는 단계(1204) 및 단계(1205)를 상세히 설명한다.
1204: 처리 대상 블럭의 사전 설정된 공간적으로 이웃하는 블럭들에서 공간적으로 이웃하는 타겟 블럭을 결정하며, 여기서 제 1 방향으로의 공간적으로 이웃하는 타겟 블럭의 모션 벡터의 성분의 값은 제 1 값 범위 내에 속하고, 제 2 방향으로의 공간적으로 이웃하는 타겟 블럭의 모션 벡터의 성분의 값은 제 2 값 범위 내에 속하게 된다.
구체적으로, 단계(1204)에서, 처리 대상 블럭의 공간적으로 이웃하는 블럭들의 모션 벡터들을 특정 순서로 획득한 다음, 제 1 방향 및 제 2 방향으로의 공간적으로 이웃하는 블럭들의 모션 벡터들의 성분 값들이 각각 제 1 값 범위 및 제 2 값 범위 내에 속하는지를 결정하고, 그리고 제 1 방향 및 제 2 방향으로의 성분 값들이 각각 제 1 값 범위 및 제 2 값 범위 내에 속하는 모션 벡터를 타겟 오프셋 벡터로서 결정한다.
1205: 공간적으로 이웃하는 타겟 블럭의 모션 벡터를 타겟 오프셋 벡터로서 사용한다.
예를 들어, 도 4에 도시된 바와 같이, 제 1 이용 가능한 이웃하는 블럭의 모션 벡터는 A1, B1 , B0, 및 A0의 순서로 탐색될 수 있다. 그 후, 모션 벡터의 성분 값들이 요구 사항을 충족하는지(이는 제 1 방향과 제 2 방향으로의 성분 값들이 각각 제 1 값 범위 및 제 2 값 범위 내에 속하게 되는 것임)의 여부를 결정한다. 모션 벡터가 요구 사항을 충족한다면, 모션 벡터는 타겟 오프셋 벡터로서 결정된다. 모션 벡터가 요구 사항을 충족하지 않으면, 사용 가능한 다음 이웃하는 블럭의 모션 벡터는 A1, B1, B0, 및 A0의 순서로 계속 검색된다. 그 후, 요구 사항을 충족하는 모션 벡터가 탐색될 때까지 요구 사항이 충족되는지 여부를 결정한다.
단계(120)에서 사용되는 타겟 오프셋 벡터는 제로 오프셋 벡터일 수도 있다는 것을 이해해야 한다. 이 경우, 타겟 픽처 내에 있고 처리 대상 블럭과 동일한 위치 내부에 있는 픽처 블럭은 처리 대상 블럭에 속하고 타겟 픽처 내에 있는 해당 블럭이 된다.
또한, 요구 사항을 충족하는 타겟 오프셋 벡터이 탐색될 수 없는 경우, ATMVP 기술이 사용될 수 없을 수도 있지만, 다른 기술을 사용하여 처리 대상 서브 블럭의 모션 벡터를 획득할 수도 있다.
130: 타겟 픽처에서 처리 대상 서브 블럭의 위치 및 타겟 오프셋 벡터에 기반하여, 처리 대상 서브 블럭의 병치된 서브 블럭을 결정한다.
타겟 오프셋 벡터는 처리 대상 블럭에 속하고 타겟 픽처 내에 있는 해당 블럭을 가리키기 때문에, 오프셋 벡터에 기반하여 먼저 해당 블럭을 획득한 다음, 처리 대상 서브 블럭의 위치에 기반하여, 타겟 픽처에서 처리 대상 서브 블럭과의 상대적인 위치 관계를 갖는 병치된 서브 블럭을 결정한다(이것은 또한 처리 대상 서브 블럭과의 상대적인 위치 관계를 갖는 병치된 서브 블럭이 해당 블럭 내에서 결정되는 것으로 이해될 수 있다).
처리 대상 서브 블럭과의 상대적인 위치 관계를 갖는 병치된 서브 블럭이 해당 블럭 내에서 결정되는 경우, 해당 블럭 내에 있고 상대적 위치가 처리 대상 서브 블럭의 것과 동일한 서브 블럭은 처리 대상 서브 블럭의 병치된 서브 블럭으로서 결정될 수 있다.
예를 들어, 도 5에 도시된 바와 같이, 현재 픽처는 처리 대상 블럭을 포함하고, 처리 대상 블럭은 4 개의 서브 블럭을 포함한다. 처리 대상 블럭의 위치와 처리 대상 블럭의 오프셋 벡터에 기반하여, 타겟 픽처 내에 있고 처리 대상 블럭에 해당하는 해당 블럭을 획득할 수 있다. 해당 블럭은 또한 4 개의 서브 블럭을 포함한다. 처리 대상 서브 블럭은 처리 대상 블럭의 좌측 상단 코너에 위치된다. 이 경우, 처리 대상 서브 블럭의 병치된 서브 블럭이 결정되는 경우, 해당 블럭의 좌측 상단 서브 블럭은 처리 대상 서브 블럭의 병치된 서브 블럭으로서 결정될 수 있다.
140: 병치된 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정한다.
본 출원에서는 타겟 오프셋 벡터의 성분 값이 특정 값 범위 내에 속하기 때문에, 타겟 픽처에서 타겟 오프셋 벡터에 기반하여 결정되는 처리 대상 서브 블럭은 또한 타겟 픽처의 특정 범위 내에 속하게 된다. 따라서, 타겟 픽처의 특정 범위에서 시간 모션 벡터 필드를 사전 판독함으로써 메모리 대역폭과 메모리 판독 시간량을 감소시킬 수 있다.
선택적으로, 단계(140) 이전에, 도 3에 도시된 방법은 타겟 픽처 내의 사전 설정된 구역 내의 샘플의 모션 벡터를 획득하는 단계를 더 포함하며, 여기서 사전 설정된 구역은 처리 대상 서브 블럭의 병치된 서브 블럭이 나타날 수 있는 구역이다.
본 출원에서는 타겟 픽처에서 병치된 서브 블럭이 나타나는 구역이 결정되므로, 타겟 픽처 내의 특정 구역의 모션 벡터를 사전 획득함으로써 타겟 픽처로부터 모션 벡터를 판독하는 시간량을 감소시킬 수 있다. 즉, 메모리 판독 시간량이 감소된다. 또한, 모션 벡터는 타겟 픽처 내의 특정 구역에서만 획득되므로, 메모리 대역폭이 감소될 수 있다.
병치된 서브 블럭의 모션 벡터를 획득한 후, 병치된 서브 블럭의 모션 벡터를 스케일링함으로써 처리 대상 서브 블럭의 모션 벡터를 획득할 수 있다.
구체적으로, 병치된 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정하는 것은: 처리 대상 서브 블럭을 포함한 픽처의 픽처 순서 카운트(picture order count)(POC), 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것을 포함한다.
예를 들어, 도 6에 도시된 바와 같이, 처리 대상 서브 블럭을 포함하는 픽처는 픽처 프레임 1이고, 픽처 프레임 1의 타겟 기준 픽처는 픽처 프레임 2이고, 타겟 픽처가 위치되는 픽처 프레임은 픽처 프레임 3이고, 픽처 프레임 3의 타겟 기준 픽처는 픽처 프레임 4이고, 그리고 병치된 서브 블럭의 모션 벡터는 MV가 된다. 이 경우, 픽처 프레임 1 내지 픽처 프레임 4의 POC들에 기반하여 MV를 스케일링하여 처리 대상 서브 블럭의 모션 벡터를 획득할 수 있다.
선택적으로, 처리 대상 서브 블럭을 포함한 픽처의 POC, 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것은: 처리 대상 서브 블럭을 포함한 픽처의 POC와 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC 간의 차이를 제 1 차이로서 결정하는 것; 타겟 픽처의 POC와 타겟 픽처의 타겟 기준 픽처의 POC 간의 차이를 제 2 차이로서 결정하는 것; 및 제 1 차이 대 제 2 차이의 비율에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것을 포함한다.
제 1 차이 대 제 2 차이의 비율에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 경우, 구체적으로, 제 1 차이 대 제 2 차이의 비율을 먼저 계산하여 제 1 비율을 획득할 수 있고, 그 후 제 1 비율과 병치된 서브 블럭의 모션 벡터의 곱을 처리 대상 서브 블럭의 모션 벡터로서 결정한다.
구체적으로, 도 6은 여전히 일 예로서 사용된다. 처리 대상 서브 블럭의 모션 벡터는 수학식 1에 따라 계산될 수 있다:
[수학식 1]
여기서, 는 처리 대상 서브 블럭의 모션 벡터이고, 는 병치된 서브 블럭의 모션 벡터이고, P1 내지 P4는 픽처 프레임 1 내지 픽처 프레임 4의 POC들이고, P1 - P2는 제 1 차이를 나타내고, P3 - P4는 제 2 차이를 나타낸다.
선택적으로, 일 실시예에서, 제 1 값 범위 및 제 2 값 범위를 결정하는 것은: 처리 대상 블럭의 위치 및 사이즈, 처리 대상 블럭이 위치하는 코딩 트리 단위(CTU)의 위치 및 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여, 제 1 값 범위 및 제 2 값 범위를 결정하는 것을 포함한다.
제 1 값 범위 및 제 2 값 범위는 각각의 제 1 방향 및 제 2 방향으로의 타겟 오프셋 벡터에 이용 가능한 최대 값 및 최소 값을 결정함으로써 결정될 수 있음을 이해해야 한다. 이하에서는 이러한 방식으로 제 1 값 범위 및 제 2 값 범위를 결정하는 상세한 설명을 제공한다.
구체적으로, 제 1 값 범위와 제 2 값 범위를 결정하는 것은 다음의 프로세스를 포함한다.
(1) 처리 대상 블럭의 위치 및 사이즈, 처리 대상 블럭이 위치하는 코딩 트리 단위(CTU)의 위치 및 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여, 제 1 임계치 및 제 2 임계치를 결정한다.
(2) 처리 대상 블럭의 위치 및 사이즈, 처리 대상 블럭이 위치하는 코딩 트리 단위(CTU)의 위치 및 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여, 제 3 임계치 및 제 4 임계치를 결정한다.
(3) 제 1 임계치 및 제 2 임계치에 기반하여 제 1 값 범위를 획득한다.
(4) 제 3 임계치 및 제 4 임계치에 기반하여 제 2 값 범위를 획득한다.
제 1 임계치는 제 1 방향으로의 타겟 오프셋 벡터의 성분에 이용 가능한 최소 값이고, 제 2 임계치는 제 1 방향으로의 타겟 오프셋 벡터의 성분에 이용 가능한 최대 값이다. 제 3 임계치는 제 2 방향으로의 타겟 오프셋 벡터의 성분에 이용 가능한 최소 값이고, 제 4 임계치는 제 2 방향으로의 타겟 오프셋 벡터의 성분에 이용 가능한 최대 값이다.
선택적으로, 일 실시예에서, CTU의 시간 모션 벡터 필드의 확장 범위는 제 1 방향 및 제 2 방향으로의 CTU의 시간 모션 벡터 필드의 확장 범위들을 포함한다.
제 1 방향과 제 2 방향은 직교 관계에 있는 두 개의 방향이다.
선택적으로, 제 1 방향은 수평 방향일 수 있고, 제 2 방향은 수직 방향일 수 있다.
제 1 방향이 수평 방향이고 제 2 방향이 수직 방향인 경우, CTU의 시간 모션 벡터 필드의 확장 범위는 상부 방향, 하단 방향, 좌측 방향, 및 우측 방향으로의 CTU의 시간 모션 벡터 필드의 확장 값들을 포함한다는 것을 이해해야 한다.
예를 들어, 도 7에 도시된 바와 같이, CTU가 위치한 직사각형과 파선으로 둘러싸인 구역은 CTU의 시간 모션 벡터 필드의 확장 범위이고, 상부 방향, 하단 방향, 좌측 방향, 및 우측 방향으로의 CTU의 시간 모션 벡터 필드의 확장 값들은 각각 U, B, L, 및 R이다.
U, B, L, 및 R이 모두 0인 경우, 각 방향으로의 CTU의 확장 값이 0임을 나타낸다. 이 경우, 현재 CTU의 시간 모션 벡터 필드는 해당 위치에 있는 CTU의 시간 모션 벡터 필드로 제한된다.
U와 B가 0이지만 L 또는 R이 0이 아닌 경우, 현재 CTU에 의해 획득되는 시간 모션 벡터 필드는 CTU의 상단 경계 또는 하단 경계를 가로지를 수는 없지만, CTU의 좌측 경계 및 우측 경계를 가로지를 수 있다. 도 8에 도시된 바와 같이, 현재 CTU의 MVF와 좌측 CTU의 MVF는 좌측 및 우측 방향으로 확장될 수 있지만, 상방 및 하방으로는 확장될 수 없다. 현재 CTU의 시간 모션 벡터 필드와 좌측 CTU의 시간 모션 벡터 필드는 부분적으로 중첩된다. 이 경우, 현재 CTU를 처리할 경우, 현재 CTU의 좌측에 있는 CTU에 의해 준비된 시간 모션 벡터 필드는 윈도우 슬라이딩을 통해 부분적으로 재사용될 수 있다.
구체적으로, 제 1 값 범위 및 제 2 값 범위는 수학식 2 내지 수학식 5에 따라 결정될 수 있다:
[수학식 2]
HorMin = CTUX - CUX - L
[수학식 3]
HorMax = CTUX + CTUW - CUX - CUW + R
[수학식 4]
VerMin = CTUY - CUY - U
[수학식 5]
VerMax = CTUY + CTUH - CUY - CUH + B
여기서, CUX와 CUY는 각각 처리 대상 블럭의 좌측 상단 샘플의 수평 좌표 및 수직 좌표를 나타내고, CUW와 CUH는 처리 대상 블럭의 폭 및 높이를 나타내며, CTUX와 CTUY는 각각 처리 대상 블럭이 위치한 CTU의 수평 좌표 및 수직 좌표를 나타내며, CTUW와 CTUH는 각각 처리 대상 블럭이 위치한 CTU의 폭 및 높이를 나타내며, U, B, L, 및 R은 각각 상부 방향, 하단 방향, 좌측 방향, 및 우측 방향으로의 CTU의 확장 값들을 나타내고, HorMin 및 HorMax는 각각 제 1 임계치 및 제 2 임계치를 나타내며, VerMin 및 VerMax는 각각 제 3 임계치 및 제 4 임계치를 나타낸다.
선택적으로, CTU의 시간 모션 벡터 필드의 확장 범위에 관한 정보는 시퀀스 파라미터 세트(SPS), 픽처 파라미터 세트(PPS), 및 헤더 필드 중 적어도 하나 내에서 운반된다.
SPS, PPS, 및 헤더 필드는 각각 운반되는 파라미터(U, B, L, 및 R)를 사용함으로써 CTU의 확장 범위를 나타낼 수 있음을 이해해야 한다.
선택적으로, CTU의 시간 모션 벡터 필드의 확장 범위는 사전 설정된다. 이 경우, CTU의 시간 모션 벡터 필드의 확장 범위는 프로토콜에 바로 기록될 수 있으며, SPS, PPS, 또는 헤더 필드에서 운반될 필요는 없다.
도 9는 본 출원의 일 실시예에 따른 모션 벡터 획득 방법의 개략적인 플로우차트이다. 도 9에 도시된 방법은 비디오 인코딩 및 디코딩 장치, 비디오 코덱, 비디오 인코딩 및 디코딩 시스템, 및 비디오 인코딩 및 디코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다.
도 9에 도시된 방법은 단계(210) 내지 단계(250)를 포함한다. 이하에서는 단계(210) 내지 단계(250)를 상세히 설명한다.
210: 처리 대상 블럭의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정한다.
처리 대상 블럭은 적어도 하나의 처리 대상 서브 블럭을 포함한다. 처리 대상 블럭의 모션 벡터를 획득하는 경우, 실제로는 처리 대상 블럭의 각 처리 대상 서브 블럭의 모션 벡터가 획득될 필요가 있다. 처리 대상 블럭이 CU인 경우, 처리 대상 서브 블럭은 서브 CU이다.
단계(210)에서의 타겟 오프셋 벡터는 도 3에 도시된 방법에서 언급된 타겟 오프셋 벡터와 동일한 의미를 가지며, 세부 사항은 여기서 다시 설명되지는 않는다.
타겟 픽처의 식별자 정보는 구체적으로 픽처 시퀀스 내의 타겟 픽처의 POC일 수 있거나, 타겟 픽처의 인덱스 정보 또는 인덱스 값일 수 있다.
220: 처리 대상 서브 블럭의 위치 및 타겟 오프셋 벡터에 기반하여, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치를 결정한다.
구체적으로, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치가 결정되는 경우, 처리 대상 서브 블럭의 병치된 서브 블럭이 먼저 결정될 수 있고, 그 후 병치된 서브 블럭 상의 특정 위치가 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치로서 결정된다. 예를 들어, 병치된 서브 블럭이 결정된 후, 병치된 서브 블럭의 중심점 또는 좌측 상단 코너는 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치로서 결정될 수 있다.
병치된 서브 블럭을 결정하는 방식에 대해서는 도 3에 도시된 방법에서 단계(130) 아래의 관련 단락의 설명이 참조된다.
또한, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치가 결정되는 경우, 병치된 서브 블럭이 대신 결정되지 않을 수도 있지만, 타겟 픽처 내에 있고 처리 대상 서브 블럭에 대응하는 위치는, 처리 대상 서브 블럭의 위치와 타겟 오프셋 벡터에 기반하여, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치로서 바로 결정된다. 예를 들어, 처리 대상 서브 블럭의 중심점 또는 좌측 상단 코너와 같은 특정 위치가 먼저 결정되고, 타겟 오프셋 벡터가 그 위치의 좌표에 추가되므로, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치가 결정될 수 있다.
230: 초기 위치가 타겟 픽처의 사전 설정된 구역 내부에 있는 경우 초기 위치를 타겟 위치로서 결정한다.
예를 들어, 도 10에 도시된 바와 같이, 현재 픽처는 처리 대상 블럭을 포함하고, 처리 대상 블럭은 좌측 상단의 처리 대상 서브 블럭을 포함하고, 타겟 픽처는 해당 블럭을 포함하고, 해당 블럭은 좌측 상단의 병치된 서브 블럭을 포함하고, 처리 대상 블럭의 타겟 오프셋 벡터는 해당 블럭을 가리키고, 그리고 타겟 픽처 내의 파선 박스 내의 직사각형 구역은 타겟 픽처의 사전 설정된 구역이다. 도 10을 통해, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치가 타겟 픽처의 사전 설정된 구역 내부에 있고, 초기 위치는 타겟 위치로서 바로 결정될 수 있음을 알 수 있다.
240: 초기 위치가 사전 설정된 구역을 벗어나는 경우 사전 설정된 구역 내에 있고 초기 위치에 가장 가까운 위치를 타겟 위치로서 결정한다.
예를 들어, 도 11에 도시된 바와 같이, 현재 픽처는 처리 대상 블럭을 포함하고, 처리 대상 블럭은 좌측 상단의 처리 대상 서브 블럭을 포함하고, 타겟 픽처는 해당 블럭을 포함하고, 해당 블럭은 좌측 상단의 병치된 서브 블럭을 포함하고, 처리 대상 블럭의 타겟 오프셋 벡터는 해당 블럭을 가리키고, 그리고 타겟 픽처 내의 파선 박스 내의 직사각형 구역은 타겟 픽처의 사전 설정된 구역이다. 도 11을 통해, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치가 타겟 픽처의 사전 설정된 구역을 벗어나 있음을 알 수 있다. 이 경우, 사전 설정된 구역 내에 있고 초기 위치에 가장 가까운 위치 A를 타겟 위치로서 결정해야 한다.
250: 타겟 위치에 대응하는 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정한다.
본 출원에서, 타겟 픽처의 초기 위치와 사전 설정된 구역에 기반하여 사전 설정된 구역 내부의 타겟 위치를 탐색한 다음, 타겟 픽처의 특정 범위 내의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정한다. 따라서, 타겟 픽처의 특정 범위에서 시간 모션 벡터 필드를 사전 판독함으로써 메모리 대역폭과 메모리 판독 시간량을 감소시킬 수 있다.
선택적으로, 단계(250) 이전에, 도 9에 도시된 방법은 타겟 픽처 내의 사전 설정된 구역 내의 샘플의 모션 벡터를 획득하는 단계를 더 포함한다.
단계(250)에서 타겟 위치의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정하기 전에, 먼저 타겟 위치에 대응하는 모션 벡터를 획득해야 함을 이해해야 한다. 메모리 판독 시간량과 점유된 메모리 대역폭의 양을 감소시키기 위해, 타겟 픽처의 사전 설정된 구역 내의 샘플의 모션 벡터를 미리 획득할 수 있다. 이와 같이, 타겟 위치의 모션 벡터를 사용해야 하는 경우, 타겟 위치에 대응하는 모션 벡터는 사전 설정된 구역 내의 샘플의 판독된 모션 벡터로부터 바로 획득될 수 있다. 또한, 타겟 픽처의 사전 설정된 구역 내에서만 샘플의 모션 벡터가 획득되므로, 전체 타겟 픽처 내에서 샘플의 모션 벡터를 획득해야 하는 기존 솔루션과는 달리 점유되는 메모리 대역폭이 감소될 수 있다.
선택적으로, 일 실시예에서, 단계(230)에서의 사전 설정된 구역은 처리 대상 블럭이 위치하는 코딩 트리 단위(CTU)의 위치 및 사이즈, 타겟 픽처의 사이즈, 및 CTU의 시간 모션 벡터 필드의 사전 설정된 확장 범위에 기반하여 결정된다.
CTU의 시간 모션 벡터 필드의 확장 범위는 제 1 방향 및 제 2 방향으로의 CTU의 시간 모션 벡터 필드의 확장 범위들을 포함한다.
선택적으로, 제 1 방향은 수평 방향이고, 제 2 방향은 수직 방향이다.
선택적으로, 제 1 방향이 수평 방향이고 제 2 방향이 수직 방향인 경우, CTU의 시간 모션 벡터 필드의 확장 범위는 상부 방향, 하단 방향, 좌측 방향, 및 우측 방향으로의 CTU의 시간 모션 벡터 필드의 확장 범위들을 포함한다.
사전 설정된 구역은 복수의 방식으로 제한될 수 있다. 예를 들어, 선택적으로, 사전 설정된 구역은 수평 좌표 값 범위와 수직 좌표 값 범위를 사용함으로써 표현될 수 있다.
구체적으로, 사전 설정된 구역은 수평 좌표 값 범위 [최소 수평 좌표 값, 최대 수평 좌표 값] 및 수직 좌표 값 범위 [최소 수직 좌표 값, 최대 수직 좌표 값]으로 표현될 수 있다.
수평 좌표 값 범위 및 수직 좌표 값 범위에서의 값들은 수학식 6 내지 수학식 9에 따라 계산될 수 있다:
[수학식 6]
HorMin = Max(CTUX - L, 0)
[수학식 7]
HorMax = Min(CTUX + CTUW + R - 1, PicW - 1)
[수학식 8]
VerMin = Max(CTUY - U, 0)
[수학식 9]
VerMax = Min(CTUY + CTUH + B - 1, PicH - 1)
여기서, CTUX는 처리 대상 블럭이 위치되는 CTU의 수평 좌표이고, CTUY는 처리 대상 블럭이 위치되는 CTU의 수직 좌표이고, CTUW 및 CTUH는 각각 처리 대상 블럭이 위치되는 CTU의 폭 및 높이이고, PicW 및 PicH는 각각 타겟 픽처의 폭 및 높이이고, U, B, L, 및 R은 각각 상부 방향, 하단 방향, 좌측 방향, 및 우측 방향으로의 CTU의 확장 값들을 나타내고, HorMin 및 HorMax는 각각 최소 수평 좌표 값 및 최대 수평 좌표 값이고, 그리고 VerMin 및 VerMax는 각각 최소 수직 좌표 값 및 최대 수직 좌표 값이다.
최소 수평 좌표 값, 최대 수평 좌표 값, 최소 수직 좌표 값, 및 최대 수직 좌표 값이 수학식 6 내지 수학식 9에 따른 계산을 통해 획득된 후, 수평 좌표 값 범위 및 수직 좌표 값 범위를 획득할 수 있으며, 그리고 타겟 픽처의 사전 설정된 구역이 결정된다.
선택적으로, CTU의 시간 모션 벡터 필드의 확장 범위에 관한 정보는 SPS, PPS, 및 헤더 필드 중 적어도 하나 내에서 운반된다.
이와 달리, CTU의 시간 모션 벡터 필드의 확장 범위는 사전 설정될 수도 있다. 이 경우, CTU의 모션 벡터의 확장 범위는 프로토콜에 바로 기록될 수 있으며, SPS, PPS, 또는 헤더 필드에서 운반될 필요는 없다.
선택적으로, 일 실시예에서, 타겟 위치에 대응하는 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정하는 것은: 처리 대상 서브 블럭을 포함한 픽처의 POC, 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 타겟 위치에 대응하는 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것을 포함한다.
구체적으로, 처리 대상 서브 블럭을 포함한 픽처의 POC, 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 타겟 위치에 대응하는 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 경우, 처리 대상 서브 블럭을 포함한 픽처의 픽처 순서 카운트(POC)와 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC 간의 차이를 먼저 제 3 차이로서 결정할 수 있고, 타겟 픽처의 POC와 타겟 픽처의 타겟 기준 픽처의 POC 간의 차이를 제 4 차이로서 결정하며, 그리고 타겟 위치에 대응하는 모션 벡터를 제 3 차이 대 제 4 차이의 비율에 기반하여 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득한다.
선택적으로, 제 3 차이 대 제 4 차이의 비율에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득하는 것은: 제 3 차이 대 제 4 차이의 비율을 제 2 비율로서 결정하는 것; 및 제 2 비율과 타겟 위치에 대응하는 모션 벡터의 곱을 처리 대상 서브 블럭의 모션 벡터로서 결정하는 것을 포함한다.
예를 들어, 도 12에 도시된 바와 같이, 처리 대상 서브 블럭을 포함하는 픽처는 픽처 프레임 1이고, 픽처 프레임 1의 타겟 기준 픽처는 픽처 프레임 2이고, 타겟 픽처가 위치되는 픽처 프레임은 픽처 프레임 3이고, 픽처 프레임 3의 타겟 기준 픽처는 픽처 프레임 4이고, 그리고 타겟 위치의 모션 벡터는 MV가 된다. 이 경우, 픽처 프레임 1 내지 픽처 프레임 4의 POC들에 기반하여 MV를 스케일링하여 처리 대상 서브 블럭의 모션 벡터를 획득할 수 있다.
구체적으로, 처리 대상 서브 블럭의 모션 벡터는 수학식 10에 따라 계산될 수 있다:
[수학식 10]
여기서, 는 처리 대상 서브 블럭의 모션 벡터이고, 는 타겟 위치의 모션 벡터이고, P1 내지 P4는 픽처 프레임 1 내지 픽처 프레임 4의 POC들이고, P1 - P2는 제 3 차이를 나타내고, P3 - P4는 제 4 차이를 나타낸다.
처리 대상 블럭에 대한 예측을 구현하기 위해, 처리 대상 블럭의 모든 처리 대상 서브 블럭들의 모션 벡터들을 획득한 후 처리 대상 블럭을 예측하여, 처리 대상 블럭의 예측된 샘플 값을 획득할 수 있다. 이와 달리, 각 처리 대상 서브 블럭의 모션 벡터를 획득한 후, 처리 대상 서브 블럭을 예측하여 각 처리 대상 서브 블럭의 예측된 샘플 값을 획득할 수도 있고, 모든 처리 대상 서브 블럭들을 예측한 후, 처리 대상 블럭의 예측된 샘플 값을 획득할 수도 있한다.
전술한 것은 도 3 내지 도 12를 참조하여 본 출원의 실시예의 모션 벡터 획득 방법을 설명한다. 본 출원의 기술적 솔루션을 더 잘 이해하기 위해, 이하에서는 특정 실시예를 참조하여 본 출원의 실시예의 모션 벡터 획득 방법을 상세히 설명한다.
실시예 1 및 실시예 2는 도 3에 도시된 방법에 대응하고, 타겟 오프셋 벡터의 값이 제한되므로, 최종적으로 탐색된 병치된 서브 블럭은 타겟 픽처의 특정 구역 내부에 있게 된다. 실시예 3에서, 타겟 오프셋 벡터의 값에는 제한이 없지만, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 타겟 위치는 특정 구역으로 바로 제한된다. 최종적으로, 실시예 1 내지 실시예 3 모두에서, 처리 대상 서브 블럭의 모션 벡터는 타겟 픽처의 특정 구역 내의 샘플의 모션 벡터에 기반하여 결정된다. 이하에서는 실시예 1 내지 실시예 3을 상세히 별도로 설명한다.
실시예 1
도 13에 도시된 바와 같이, 실시예 1의 특정 모션 벡터 획득 프로세스는 이하의 단계들을 포함한다.
310: 제약 범위를 결정한다.
여기서, 제약 범위는 전술한 제 1 값 범위 및 제 2 값 범위와 동등하다.
제약 범위는 처리 대상 블럭의 타겟 오프셋 벡터의 성분들의 값들을 제 1 방향과 제 2 방향으로 제약하도록 결정되므로, 제 1 방향 및 제 2 방향으로의 타겟 오프셋 벡터의 성분들의 값들이 제약 범위 내에 속한다는 것을 이해해야 한다.
선택적으로, 제약 범위는 CTU의 시간 모션 벡터 필드의 확장 범위, 처리 대상 블럭의 위치 및 사이즈, 및 처리 대상 블럭이 위치되는 CTU의 위치 및 사이즈에 기반하여 결정될 수 있다.
CTU의 시간 모션 벡터 필드의 확장 범위는 파라미터들(RangeL, RangeR, RangeU, 및 RangeB)(이들은 전술한 파라미터들(L, R, U, 및 B)과 동등함)을 사용함으로써 정의될 수 있고, 그리고 파라미터들(RangeL, RangeR, RangeU, 및 RangeB)은 각각 4 개의 방향들: 즉, 좌측 방향, 우측 방향, 상부 방향, 하단 방향으로의 CTU의 시간 모션 벡터 필드의 확장 값들을 나타낸다.
RangeL, RangeR, RangeU, 및 RangeB의 각각의 값은 0, 16, 32, 또는 64 등일 수 있다(샘플은 단위로서 사용된다).
전술한 파라미터들(RangeL, RangeR, RangeU, 및 RangeB)은 사전 정의된 방식으로 바로 결정될 수 있거나 상위 계층 신택스에서 운반될 수 있음을 이해해야 한다. 예를 들어, RangeL, RangeR, RangeU, 및 RangeB는 SPS, PPS, 및 헤더 필드에서 운반될 수 있다.
구체적으로, 제약 범위는 수학식 11 내지 수학식 14에 따라 결정될 수 있다:
[수학식 11]
HorMin = CTUX - CUX - RangeL
[수학식 12]
HorMax = CTUX + CTUW - CUX - CUW + RangeR
[수학식 13]
VerMin = CTUY - CUY - RangeU
[수학식 14]
VerMax = CTUY + CTUH - CUY - CUH + RangeB
여기서, CUX 및 CUY는 처리 대상 블럭의 좌측 상단 샘플의 위치 좌표들을 나타내고, CUW 및 CUH는 처리 대상 블럭의 폭 및 높이를 나타내며, CTUX 및 CTUY는 처리 대상 블럭이 위치되는 CTU의 좌측 상단 샘플의 위치 좌표들을 나타내며, 그리고 CTUW 및 CTUH는 CTU의 폭 및 높이를 나타낸다. HorMin 및 HorMax는 수평 방향으로의 제약 범위에서의 최소 값 및 최대 값을 나타낸다. VerMin 및 VerMax는 수직 방향으로의 제약 범위에서의 최소 값 및 최대 값을 나타낸다.
320: 처리 대상 블럭의 시작 오프셋 벡터를 결정한다.
여기서, 시작 오프셋 벡터는 전술한 초기 오프셋 벡터와 동등하다.
단계(310) 및 단계(320)는 동시에 수행될 수 있거나, 순서대로 개별적으로 수행될 수 있음을 이해해야 한다.
시작 오프셋 벡터는 처리 대상 블럭에 속하고 타겟 픽처 내에 있는 타겟 픽처 블럭의 위치를 결정하는 데 사용되며, 시작 오프셋 벡터는 다음의 두 가지 방식으로 결정될 수 있다.
제 3 방식은, 처리 대상 블럭의 공간적으로 이웃하는 블럭의 이용 가능한 모션 벡터를 시작 오프셋 벡터로서 결정하는 것을 포함한다.
구체적으로, 제 3 방식에서, 제 1 이용 가능한 이웃하는 블럭의 모션 벡터는 도 4에서의 A1, B1, B0, 및 A0의 순서로 탐색될 수 있으며, 처리 대상 블럭의 시작 오프셋 벡터로서 사용된다.
제 4 방식은, 먼저 타겟 픽처를 결정한 다음, 이웃하는 블럭에 속하고 타겟 픽처를 가리키는 모션 벡터를 시작 오프셋 벡터로서 결정하는 것을 포함한다.
구체적으로, 제 4 방식에서, 제 1 이용 가능한 이웃하는 블럭의 모션 벡터는 도 4에서의 A1, B1, B0, 및 A0의 순서로 탐색될 수 있고, 모션 벡터가 타겟 픽처를 가리키면, 모션 벡터는 처리 대상 블럭의 시작 오프셋 벡터로서 사용된다. 모션 벡터가 타겟 픽처를 가리키지 않는다면, 모션 벡터가 타겟 픽처를 가리키도록 모션 벡터가 스케일링되고, 그리고 스케일링된 모션 벡터는 시작 오프셋 벡터로서 사용된다.
330: 시작 오프셋 벡터가 제약 범위를 벗어나는지 여부를 결정한다.
제 1 방향 또는 제 2 방향 중 적어도 하나의 방향으로의 시작 오프셋 벡터의 성분의 값이 제약 범위를 벗어난 경우, 시작 오프셋 벡터가 제약 범위를 벗어난 것으로 결정됨을 이해해야 한다. 각각의 제 1 방향 및 제 2 방향으로의 시작 오프셋 벡터의 성분의 값이 제약 범위를 벗어나지 않는 경우, 시작 오프셋 벡터가 제약 범위를 벗어나지 않는 것으로 결정된다.
시작 오프셋 벡터가 제약 범위를 벗어나는 경우, 단계(340) 및 단계(350)가 수행되거나; 또는 시작 오프셋 벡터가 제약 범위를 벗어나지 않는 경우, 단계(360)가 수행된다.
340: 제약 범위에 기반하여 제한된 오프셋 벡터를 결정한다.
시작 오프셋 벡터가 제약 범위를 벗어나는 경우, 시작 오프셋 벡터는 제한된 오프셋 벡터를 획득하도록 제한되어야 하므로, 제한된 오프셋 벡터는 제약 범위 내에 속하게 된다.
구체적으로, 시작 오프셋 벡터가 제약 범위를 벗어나는 경우, 시작 오프셋 벡터의 성분들(, )은 제한된 오프셋 벡터를 획득하도록 수학식 15 및 수학식 16에 따라 제한될 수 있다:
[수학식 15]
[수학식 16]
여기서, Clip3 함수는 클리핑 함수이며, 구체적으로 다음과 같이 정의된다:
[수학식 17]
제약 범위에 기반하여 타겟 오프셋 벡터를 결정하는 방식과는 달리, 그 대신 제로 모션 벡터가 타겟 오프셋 벡터로서 바로 사용될 수도 있음을 이해해야 한다. 혹은, ATMVP 기술이 사용되지 않을 수도 있지만, 다른 기술을 사용하여 처리 대상 서브 블럭의 모션 벡터를 획득할 수도 있다.
350: 제한된 오프셋 벡터를 타겟 오프셋 벡터로서 결정한다.
제한된 오프셋 벡터는 제약 범위 내에 속하기 때문에, 제한된 오프셋 벡터는 타겟 오프셋 벡터로서 결정될 수 있다.
360: 시작 오프셋 벡터를 타겟 오프셋 벡터로서 결정한다.
시작 오프셋 벡터가 제약 범위 내에 속하는 경우, 시작 오프셋 벡터에 대해 제약이나 제한 연산을 수행할 필요가 없으며, 시작 오프셋 벡터는 타겟 오프셋 벡터로서 바로 결정될 수 있다.
370: 타겟 픽처에서 처리 대상 서브 블럭의 위치 및 타겟 오프셋 벡터에 기반하여, 처리 대상 서브 블럭의 병치된 서브 블럭을 결정한다.
380: 병치된 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정한다.
구체적으로, 처리 대상 서브 블럭을 포함한 픽처의 POC, 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득할 수 있다.
처리 대상 서브 블럭의 모션 벡터를 획득한 후, 처리 대상 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 예측된 샘블 값을 결정할 수 있다.
처리 대상 서브 블럭의 예측된 샘플 값이 결정되는 경우, 처리 대상 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 예측 서브 블럭을 결정할 수 있고, 그 후 예측 서브 블럭의 샘플 값을 처리 대상 서브 블럭의 예측된 샘플 값으로서 결정한다. 이와 같이, 각 처리 대상 서브 블럭의 예측된 샘플 값을 획득한 후, 전체 처리 대상 블럭의 예측된 샘플 값을 획득할 수 있다.
실시예 2
도 14에 도시된 바와 같이, 실시예 2의 특정 모션 벡터 획득 프로세스는 이하의 단계들을 포함한다.
410: 제약 범위를 결정한다.
여기서, 제약 범위의 의미 및 결정 방식은 실시예 1의 제약 범위의 것들과 동일하며, 세부 사항은 여기에 다시 설명되지는 않는다.
420: 처리 대상 블럭의 이웃하는 블럭의 모션 벡터를 획득한다.
구체적으로, 제 1 이용 가능한 이웃하는 블럭의 모션 벡터는 도 4에서의 A1, B1, B0, 및 A0의 순서로 획득될 수 있다.
이와 달리, 타겟 픽처가 먼저 결정될 수 있고, 그 후 처리 대상 블럭의 이웃하는 블럭의 모션 벡터가 도 4에서의 A1, B1, B0, 및 A0의 순서로 획득된다. 모션 벡터가 타겟 픽처를 가리킬 경우, 단계(430)가 수행된다. 모션 벡터가 타겟 픽처를 가리키지 않을 경우, 모션 벡터가 스케일링되므로, 스케일링된 모션 벡터는 타겟 픽처를 가리키게 된다. 그 후, 스케일링된 모션 벡터는 이웃하는 블럭의 모션 벡터로서 사용되고, 단계(440)가 계속 수행한다.
430: 이웃하는 블럭의 모션 벡터가 제약 범위 내에 속하는지 여부를 결정한다.
이웃하는 블럭의 모션 벡터의 성분의 값이 제약 범위 내에 속하는 경우, 단계(440)가 수행되거나; 또는 이웃하는 블럭의 모션 벡터의 성분의 값이 제약 범위 내에 속하지 않는 경우, 단계(420)는 이웃하는 블럭의 모션 벡터의 성분의 값이 제약 범위 내에 속할 때까지 계속 수행된다.
제 1 방향 및 제 2 방향 모두의 방향으로의 이웃하는 블럭의 모션 벡터의 성분들의 값들이 제약 범위 내에 속하는 경우, 이웃하는 블럭의 모션 벡터가 제약 범위 내에 속한다고 이해해야 한다. 제 1 방향으로의 이웃하는 블럭의 모션 벡터의 성분의 값 및/또는 제 2 방향으로의 이웃하는 블럭의 모션 벡터의 성분의 값이 제약 범위를 벗어나는 경우, 이웃하는 블럭의 모션 벡터가 제약 범위 내에 속하지 않는다(이웃하는 블럭의 모션 벡터가 제약 범위를 벗어난다)고 결정한다.
440: 이웃하는 블럭의 모션 벡터를 타겟 오프셋 벡터로서 결정한다.
450: 타겟 픽처에서 처리 대상 서브 블럭의 위치 및 타겟 오프셋 벡터에 기반하여, 처리 대상 서브 블럭의 병치된 서브 블럭을 결정한다.
460: 병치된 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정한다.
구체적으로, 처리 대상 서브 블럭을 포함한 픽처의 POC, 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 병치된 서브 블럭의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득할 수 있다.
처리 대상 서브 블럭의 모션 벡터를 획득한 후, 처리 대상 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 예측된 샘블 값을 결정할 수 있다.
실시예 3
도 15에 도시된 바와 같이, 실시예 3의 특정 모션 벡터 획득 프로세스는 이하의 단계들을 포함한다.
510: 처리 대상 블럭의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정한다.
단계(510)에서 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정하는 프로세스는 단계(210)에서의 것과 동일하다.
520: 처리 대상 서브 블럭의 위치 및 타겟 오프셋 벡터에 기반하여, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치를 결정한다.
구체적으로, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치의 위치 좌표들은 수학식 18에 따라 결정될 수 있다:
[수학식 18]
여기서, (x, y)는 처리 대상 블럭의 좌측 상단 꼭지점의 좌표들을 나타내고, i는 처리 대상 블럭에서 좌측으로부터 우측으로의 i 번째 서브 블럭을 나타내며, j는 처리 대상 블럭에서 상단으로부터 하단으로의 j 번째 서브 블럭을 나타내며, (xoff, yoff)는 제 1 방향과 제 2 방향으로의 타겟 오프셋 모션 벡터의 성분들의 값들을 나타내고, M 및 N은 처리 대상 서브 블럭의 사이즈를 나타내며(여기서, M은 처리 대상 서브 블럭의 폭을 나타낼 수 있고, N은 처리 대상 서브 블럭의 높이를 나타낼 수 있음), 그리고 (, )는 (i, j) 번째의 병치된 서브 블럭의 위치 좌표들을 나타낸다.
530: 초기 위치가 타겟 픽처의 사전 설정된 구역 내에 있는지 여부를 결정한다.
초기 위치가 해당 픽처의 사전 설정된 구역 내에 있는 경우, 단계(540)가 바로 수행된다. 초기 위치가 해당 픽처의 사전 설정된 구역을 벗어나는 경우, 단계(550)가 수행한다.
사전 설정된 구역은 타겟 픽처에서 고정된 범위일 수 있으며, 해당 픽처의 사전 설정된 구역은 수학식 19 내지 수학식 22에 따라 결정될 수 있다:
[수학식 19]
HorMin = Min(CTUX - RangeL, 0)
[수학식 20]
HorMax = Max(CTUX + CTUW + RangeR - 1, PicW - 1)
[수학식 21]
VerMin = Min(CTUY - RangeU, 0)
[수학식 22]
VerMax = Max(CTUY + CTUH + RangeB - 1, PicH - 1)
HorMin 및 HorMax는 수평 방향으로의 제약 범위에서의 최소 값 및 최대 값을 나타내고, VerMin 및 VerMax는 수직 방향으로의 제약 범위에서의 최소 값 및 최대 값을 나타내고, CTUX 및 CTUY는 처리 대상 블럭이 위치되는 CTU의 좌측 상단 샘플의 위치 좌표들을 나타내며, CTUW 및 CTUH는 CTU의 폭 및 높이를 나타내고, RangeU, RangeB, RangeL 및 RangeR은 각각 상부 방향, 하단 방향, 좌측 방향, 및 우측 방향으로 존재하며 CTU의 시간 모션 벡터 필드에 속하는 확장 값들을 나타내며, 그리고 PicW 및 PicH는 각각 타겟 픽처의 폭 및 높이이다.
540: 초기 위치를 타겟 위치로서 결정한다.
초기 위치가 타겟 픽처의 사전 설정된 구역 내부에 있는 경우 초기 위치를 타겟 위치로서 바로 결정할 수 있다.
550: 사전 설정된 구역 내에 있고 초기 위치에 가장 가까운 위치를 타겟 위치로서 결정한다.
구체적으로, 초기 위치가 타겟 픽처의 사전 설정된 구역을 벗어나는 경우 사전 설정된 구역 내에 있고 초기 위치에 가장 가까운 위치를 타겟 위치로서 결정할 수 있다. 구체적으로, 초기 위치가 타겟 픽처의 사전 설정된 구역을 벗어나는 경우, 타겟 위치는 수학식 23 및 수학식 24에 따라 결정될 수 있다:
[수학식 23]
= Clip3 (HorMin, HorMax, )
[수학식 24]
= Clip3 (VerMin, VerMax, )
여기서, Clip3 함수는 클리핑 함수이며, 특정 정의는 전술한 수학식 17에 나타나 있다.
560: 타겟 위치에 대응하는 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정한다.
구체적으로, 처리 대상 서브 블럭을 포함한 픽처의 POC, 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 타겟 픽처의 POC, 및 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 타겟 위치의 모션 벡터를 스케일링하여, 처리 대상 서브 블럭의 모션 벡터를 획득할 수 있다.
처리 대상 서브 블럭의 모션 벡터를 획득한 후, 처리 대상 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 예측된 샘블 값을 결정할 수 있다.
본 출원에 의해 도출되는 유익한 효과를 더 잘 이해하기 위해, 이하에서는 도 16 및 도 17을 참조하여 본 출원의 실시예의 모션 벡터 획득 방법의 유익한 효과를 상세히 설명한다.
도 16에 도시된 바와 같이, 현재 픽처는 현재 CTU를 포함하고, 현재 CTU는 복수의 처리 대상 블럭을 포함하고, 각 처리 대상 블럭은 복수의 처리 대상 서브 블럭을 포함하고, 그리고 각 처리 대상 블럭은 하나의 오프셋 벡터에 대응한다. 해당 오프셋 벡터에 기반하여 처리 대상 블럭의 해당 블럭을 탐색할 수 있다. 각 처리 대상 서브 블럭은 타겟 픽처 내의 하나의 병치된 서브 블럭에 대응한다. 타겟 픽처에서 처리 대상 서브 블럭에 대응하는 병치된 서브 블럭이 위치되는 구역이 불확실하거나, 타겟 픽처에서 처리 대상 서브 블럭에 대응하는 위치가 불확실하다면, 병치된 서브 블럭의 모션 벡터를 획득할 경우, 해당 픽처 전체의 시간 모션 벡터 필드를 사전에 획득해야 한다. 결과적으로, 메모리 대역폭은 증가한다.
도 17에 도시된 바와 같이, 현재 픽처는 현재 CTU를 포함하고, 현재 CTU는 복수의 처리 대상 블럭을 포함하고, 각 처리 대상 블럭은 복수의 처리 대상 서브 블럭을 포함하고, 그리고 타겟 픽처 내의 파선 구역은 타겟 픽처의 사전 설정된 구역을 나타낸다. 본 출원에서는 처리 대상 블럭의 오프셋 벡터의 범위가 제약되므로, 타겟 픽처 내에 있고 처리 대상 서브 블럭에 대응하는 병치된 서브 블럭은 타겟 픽처의 사전 설정된 구역 내부에 있거나, 또는 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 해당 위치는 타겟 픽처의 사전 설정된 구역 내부에 있게 된다. 이와 같이, 병치된 서브 블럭 또는 해당 위치만의 모션 벡터를 획득할 필요가 있으며, 전체 타겟 픽처의 모션 벡터를 획득할 필요는 없다. 이것은 메모리 대역폭을 감소시킬 수 있다. 또한, 사전 판독을 통해 메모리 판독 시간량을 감소시킬 수 있다.
본 출원의 실시예에서의 모션 벡터 획득 방법은 인터 예측의 병합 모드에 적용될 수 있다.
서브 코딩 단위 기반 모션 벡터 예측(Sub-CU based motion vector predict)(SMVP) 기술에서는, 현재 코딩 단위를 M x N 사이즈를 갖는 서브 코딩 단위로 분할하고, 각 서브 코딩 단위의 모션 정보를 추론하고, 그 후 각 서브 코딩 단위의 모션 정보에 기반하여 모션 보상을 수행하여, 현재 코딩 단위의 예측자를 획득한다.
병합 모드에 SMVP 기술을 적용하는 경우, 두 가지 타입의 후보 모션 정보: 즉 진전된 시간 모션 벡터 예측(advanced temporal motion vector prediction)(ATMVP)과 공간 시간 모션 벡터 예측(spatial-temporal motion vector prediction)(STMVP)이 오리지널 병합 모드에 기반하여 추가된다.
ATMVP 기술에서는, 먼저 병치된 기준 픽처(collocated reference picture)를 결정한 다음, 현재 코딩 단위를 M x N 사이즈를 갖는 서브 코딩 단위로 분할하고, 병치된 기준 픽처 내에 있고 각각의 현재 서브 코딩 단위에 대응하는 서브 코딩 단위의 중심점에서의 샘플의 모션 정보를 획득하고, 그리고 모션 정보를 스케일링하여, 모션 정보를 각각의 현재 서브 코딩 단위의 모션 정보로 변환한다. 본 출원의 실시예에서의 모션 벡터 획득 방법은 개선된 ATMVP 기술로서 이해될 수 있다.
도 4에 도시된 처리 대상 블럭의 이웃하는 블럭들에 기반하여, 이하에서는 도 18 및 도 19를 참조하여, 기존 병합 모드에서의 후보 정보 리스트 구성 프로세스와 SMVP 기술이 적용되는 병합 모드에서의 후보 정보 리스트 구성 프로세스를 개별적으로 설명한다.
기존 병합 모드에서의 후보 정보 리스트 구성 프로세스는 도 18에 도시된다.
도 18에 도시된 후보 정보 리스트 구성 프로세스는 이하의 단계들을 포함한다:
610: A1, B1, B0, 및 A0의 위치의 모션 정보를 삽입한다.
620: B2의 위치의 모션 정보를 삽입한다.
630: 시간적 위치(T 또는 C)의 모션 정보를 삽입한다.
640: 후보 모션 정보 리스트를 패딩(pad)한다.
SMVP 기술이 적용되는 병합 모드에서의 후보 정보 리스트 구성 프로세스가 도 19에 도시된다.
도 19에 도시된 후보 정보 리스트 구성 프로세스는 이하의 단계들을 포함한다:
710: A1, B1, B0, 및 A0의 위치의 모션 정보를 삽입한다.
720: ATMVP 모션 정보 및 STMVP 모션 정보를 삽입한다.
730: B2의 위치의 모션 정보를 삽입한다.
740: 시간적 위치(T 또는 C)의 모션 정보를 삽입한다.
750: 후보 모션 정보 리스트를 패딩(pad)한다.
도 18과 비교하여, 도 19는 ATMVP 모션 정보 및 STMVP 모션 정보를 삽입하는 단계(720)를 추가로 포함하고 있다. 다른 단계들은 변경되지 않고 유지된다.
처리 대상 서브 블럭에 속하고 본 출원의 실시예에서의 모션 벡터 획득 방법에 따라 획득되는 모션 벡터는 단계(720)에서 삽입된 ATMVP 모션 정보의 일부임을 이해해야 한다.
구체적으로, 도 4에 도시된 처리 대상 블럭의 이웃하는 블럭들에 기반하여, SMVP 기술이 병합 모드에 적용될 경우, 병합 모드에서의 인코딩은 구체적으로 다음과 같은 프로세스를 포함한다:
(1) 공간적으로 이웃하는 블럭들 A1, B1, B0, 및 A0의 위치에 대한 모션 정보를 순서대로 획득하고, 가용성을 체크하고, 반복된 항목을 삭제하고, 그리고 모션 정보를 후보 모션 정보 리스트에 삽입한다.
(2) ATMVP 모션 정보 및 STMVP 모션 정보를 획득하고, 가용성을 체크하고, 반복된 항목을 삭제하고, 그리고 모션 정보를 후보 모션 정보 리스트에 삽입한다.
(3) 후보 모션 정보 리스트의 길이가 6 미만인 경우, B2의 위치의 모션 정보를 획득하고, 가용성을 체크하고, 반복된 항목을 삭제하고, 그리고 모션 정보를 후보 모션 정보 리스트에 삽입한다.
(4) 이웃하는 인코딩된 프레임에서 위치 T에 대응하는 블럭의 모션 정보를 획득하고(만약 모션 정보가 존재하지 않으면, 위치 C에 대응하는 블럭의 모션 정보를 획득하고), 모션 정보를 스케일링하고, 그리고 스케일링된 모션 정보를 후보 모션 정보 리스트에 삽입한다.
(5) 후보 모션 정보 리스트의 길이가 7 미만이면, 패딩을 수행하여 길이가 7인 후보 모션 정보 리스트를 획득한다.
(6) 후보 모션 정보 리스트 내의 각 후보 모션 정보 피스(each piece of candidate motion information)를 트래버싱(traverse)하고, 모션 보상 및 재구성을 수행하여 재구성 값(reconstruction value)을 획득하고, 그리고 그 후 레이트 왜곡 최적화(rate distortion optimization)(RDO) 방법에 따라 최저 비율 왜곡 비용(rate distortion cost)(RD cost)을 갖는 후보 모션 정보를 결정하여, 병합 인덱스(index)를 획득한다.
(7) 병합 인덱스를 후보 모션 정보 리스트의 길이에 기반하여 비트스트림에 기입하고, 비트스트림을 디코더측으로 송신한다.
병합 모드에서의 후보 모션 정보 리스트 구성 프로세스가 도 19에 도시된다.
전술한 것은 도 3 내지 도 19를 참조하여 본 출원의 실시예의 모션 벡터 획득 방법을 상세히 설명하고 있다. 본 출원의 실시예의 모션 벡터 획득 방법은 도 1 및 도 2에 도시된 인터 예측에 대응할 수 있다는 것을 이해해야 한다. 본 출원의 실시예의 모션 벡터 획득 방법은 도 1 및 도 2에 도시된 인터 예측 프로세스에서 수행될 수 있다. 본 출원의 실시예의 모션 벡터 획득 방법은 구체적으로 인코더 또는 디코더 내의 인터 예측 모듈에 의해 수행될 수 있다. 또한, 본 출원의 실시예의 모션 벡터 획득 방법은 비디오 픽처를 인코딩 및/또는 디코딩할 필요가 있는 임의의 전자 디바이스 또는 장치에서 구현될 수 있다.
이하에서는 도 20 및 도 21을 참조하여 본 출원의 실시예의 모션 벡터 획득 장치를 상세히 설명한다. 도 20에 도시된 장치는 도 3, 도 13, 및 도 14에 도시된 방법들에 대응하고, 도 3, 도 13, 및 도 14에 도시된 방법들의 단계들을 수행할 수 있다. 도 21에 도시된 장치는 도 9 및 도 15에 도시된 방법들에 대응하고, 도 9 및 도 15에 도시된 방법들의 단계들을 수행할 수 있다. 간결성을 위해, 이하에서는 반복되는 설명을 적절히 생략한다.
도 20은 본 출원의 일 실시예에 따른 모션 벡터 획득 장치(800)의 개략적인 블럭 다이어그램이다. 도 20에 도시된 장치(800)는 다음을 포함한다:
결정 모듈(810) ― 여기서 결정 모듈(810)은:
제 1 값 범위 및 제 2 값 범위를 결정하고;
처리 대상 블럭의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정하고 - 여기서, 처리 대상 블럭은 적어도 하나의 처리 대상 서브 블럭을 포함하고, 제 1 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 1 값 범위 내에 속하고, 제 2 방향으로의 타겟 오프셋 벡터의 성분의 값은 제 2 값 범위 내에 속하며, 그리고 제 1 방향 및 제 2 방향은 직교 관계에 있음 -; 그리고
타겟 픽처에서 처리 대상 서브 블럭의 위치 및 타겟 오프셋 벡터에 기반하여, 처리 대상 서브 블럭의 병치된 서브 블럭을 결정하도록 구성됨 ―; 및
병치된 서브 블럭의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 획득하도록 구성되는 획득 모듈(820).
본 출원에서는 타겟 오프셋 벡터의 성분 값이 특정 값 범위 내에 속하기 때문에, 타겟 픽처에서 타겟 오프셋 벡터에 기반하여 결정되는 처리 대상 서브 블럭은 또한 타겟 픽처의 특정 범위 내에 속하게 된다. 따라서, 타겟 픽처의 특정 범위에서 시간 모션 벡터 필드를 사전 판독함으로써 메모리 대역폭과 메모리 판독 시간량을 감소시킬 수 있다.
결정 모듈(810) 및 획득 모듈(820)은 인코딩 및 디코딩 장치 내의 예측 모듈(구체적으로는 인터 예측 모듈일 수 있음)에 대응할 수 있다. 특정 구현 동안, 결정 모듈(810) 및 획득 모듈(820)은 소프트웨어 또는 하드웨어를 사용하여 구현될 수 있거나, 소프트웨어 및 하드웨어의 조합을 사용하여 구현될 수 있다.
도 21은 본 출원의 일 실시예에 따른 모션 벡터 획득 장치의 개략적인 블럭 다이어그램이다. 도 21에 도시된 장치(900)는 다음을 포함한다:
결정 모듈(910) ― 여기서 결정 모듈은:
처리 대상 블럭의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정하고 - 여기서 처리 대상 블럭은 적어도 하나의 처리 대상 서브 블럭을 포함함 -;
처리 대상 서브 블럭의 위치 및 타겟 오프셋 벡터에 기반하여, 처리 대상 서브 블럭에 속하고 타겟 픽처 내에 있는 병치된 서브 블럭의 초기 위치를 결정하고;
초기 위치가 타겟 픽처의 사전 설정된 구역 내부에 있는 경우 초기 위치를 타겟 위치로서 결정하거나; 또는
초기 위치가 사전 설정된 구역을 벗어나는 경우 사전 설정된 구역 내에 있고 초기 위치에 가장 가까운 위치를 타겟 위치로서 결정하도록 구성됨 ―; 및
타겟 위치에 대응하는 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 획득하도록 구성되는 획득 모듈(920).
본 출원에서, 타겟 픽처의 초기 위치와 사전 설정된 구역에 기반하여 사전 설정된 구역 내부의 타겟 위치를 탐색한 다음, 타겟 픽처의 특정 범위 내의 모션 벡터에 기반하여 처리 대상 서브 블럭의 모션 벡터를 결정한다. 따라서, 타겟 픽처의 특정 범위에서 시간 모션 벡터 필드를 사전 판독함으로써 메모리 대역폭과 메모리 판독 시간량을 감소시킬 수 있다.
결정 모듈(910) 및 획득 모듈(920)은 인코딩 및 디코딩 장치 내의 예측 모듈에 대응할 수 있고, 예측 모듈은 구체적으로는 인터 예측 모듈일 수 있다. 특정 구현 동안, 결정 모듈(910) 및 획득 모듈(920)은 소프트웨어 또는 하드웨어를 사용하여 구현될 수 있거나, 소프트웨어 및 하드웨어의 조합을 사용하여 구현될 수 있다.
본 출원의 실시예의 모션 벡터 획득 방법은 위와 달리 비디오 인코더 또는 비디오 디코더에 의해 수행될 수도 있다. 이하에서는 도 22 및 도 23을 참조하여 본 출원의 실시예에서의 비디오 인코더 및 비디오 디코더의 구조를 설명한다.
도 22는 본 출원의 일 실시예에 따른 비디오 인코더의 개략적인 블럭 다이어그램이다. 도 22에 도시된 비디오 인코더(1000)는 인코더측 예측 모듈(1001), 변환 및 양자화 모듈(1002), 엔트로피 인코딩 모듈(1003), 인코딩 및 재구성 모듈(1004), 및 인코더측 필터링 모듈을 포함한다.
도 22에 도시된 비디오 인코더(1000)는 비디오를 인코딩할 수 있다. 구체적으로, 비디오 인코더(1000)는 비디오를 인코딩하기 위해 도 1에 도시된 비디오 인코딩 프로세스를 수행할 수 있다. 또한, 비디오 인코더(1000)는 본 출원의 실시예에서의 모션 벡터 획득 방법을 더 수행할 수 있고, 비디오 인코더(1000)는 도 3, 도 9, 및 도 13 내지 도 15에 도시된 방법들의 단계들을 수행할 수 있다.
본 출원의 실시예의 모션 벡터 획득 장치는 비디오 인코더(1000) 내의 인코더측 예측 모듈(1001)일 수 있다. 구체적으로, 도 20 및 도 21에 도시된 장치(800) 및 장치(900)는 비디오 인코더(1000) 내의 인코더측 예측 모듈(1001)과 동등하다.
도 23은 본 출원의 일 실시예에 따른 비디오 디코더의 개략적인 블럭 다이어그램이다. 도 23에 도시된 비디오 디코더(2000)는 엔트로피 디코딩 모듈(2001), 역 변환 및 역 양자화 모듈(2002), 디코더측 예측 모듈(2003), 디코딩 및 재구성 모듈(2004), 및 디코더측 필터링 모듈(2005)을 포함한다.
도 23에 도시된 비디오 디코더(2000)는 비디오를 디코딩할 수 있다. 구체적으로, 비디오 디코더(2000)는 비디오를 디코딩하기 위해 도 2에 도시된 비디오 디코딩 프로세스를 수행할 수 있다. 또한, 비디오 디코더(2000)는 본 출원의 실시예에서의 모션 벡터 획득 방법을 더 수행할 수 있고, 비디오 디코더(2000)는 도 3, 도 9, 및 도 13 내지 도 15에 도시된 모션 벡터 획득 방법들의 단계들을 수행할 수 있다.
본 출원의 실시예의 모션 벡터 획득 장치는 비디오 디코더(2000) 내의 디코더측 예측 모듈(2003)일 수 있다. 구체적으로, 도 20 및 도 21에 도시된 장치(800) 및 장치(900)는 비디오 디코더(2000) 내의 디코더측 예측 모듈(2003)과 동등하다.
이하에서는 도 24 내지 도 26를 참조하여 본 출원의 실시예의 모션 벡터 획득 방법의 적용 시나리오를 설명한다. 본 출원의 실시예에서의 모션 벡터 획득 방법은 도 24 내지 도 26에 도시된 비디오 전송 시스템, 인코딩 및 디코딩 장치, 및 인코딩 및 디코딩 시스템에 의해 수행될 수 있다.
도 24는 본 출원의 일 실시예에 따른 비디오 전송 시스템의 개략적인 블럭 다이어그램이다.
도 24에 도시된 바와 같이, 비디오 전송 시스템은 수집 모듈(3001), 인코딩 모듈(3002), 전송 모듈(3003), 네트워크 전송(3004), 수신 모듈(3005), 디코딩 모듈(3006), 및 렌더링 모듈(3007)을 포함한다.
비디오 전송 시스템 내의 모듈들은 다음과 같은 특정 기능들을 갖는다:
수집 모듈(3001)은 카메라 또는 카메라 그룹을 포함하고, 그리고 비디오 픽처를 수집하고 인코딩 전에 수집된 비디오 픽처에 대한 처리를 수행하여, 광학 신호를 디지털화된 비디오 시퀀스로 변환하도록 구성된다.
인코딩 모듈(3002)은 비디오 시퀀스를 인코딩하여 비트스트림을 획득하도록 구성된다.
전송 모듈(3003)은 인코딩된 비트스트림을 전송하도록 구성된다.
수신 모듈(3005)은 전송 모듈(3003)에 의해 전송된 비트스트림을 수신하도록 구성된다.
네트워크(3004)는 전송 모듈(3003)에 의해 전송된 비트스트림을 수신 모듈(3005)에 송신하도록 구성된다.
디코딩 모듈(3006)은 수신 모듈(3005)에 의해 수신된 비트스트림을 디코딩하여 비디오 시퀀스를 재구성하도록 구성된다.
렌더링 모듈(3007)은 디코딩 모듈(3006)에 의한 디코딩을 통해 획득된 재구성된 비디오 시퀀스를 렌더링하여 비디오 디스플레이 효과를 개선하도록 구성된다.
도 24에 도시된 비디오 전송 시스템은 본 출원의 실시예에서의 모션 벡터 획득 방법을 수행할 수 있다. 구체적으로, 도 24에 도시된 비디오 전송 시스템의 인코딩 모듈(3002) 및 디코딩 모듈(3006)은 모두 본 출원의 실시예에서의 모션 벡터 획득 방법을 수행할 수 있다.
이하에서는 도 25 및 도 26을 참조하여 인코딩 및 디코딩 장치 및 인코딩 및 디코딩 장치를 포함한 인코딩 및 디코딩 시스템을 상세히 설명한다. 도 25 및 도 26에 도시된 인코딩 및 디코딩 장치 및 인코딩 및 디코딩 시스템은 본 출원의 실시예에서의 모션 벡터 획득 방법을 수행할 수 있음을 이해해야 한다.
도 25는 본 출원의 일 실시예에 따른 비디오 인코딩 및 디코딩 장치의 개략적인 다이어그램이다. 비디오 인코딩 및 디코딩 장치(50)는 비디오 픽처의 인코딩 및/또는 디코딩을 위해 전용되는 장치일 수 있거나, 또는 비디오 인코딩 및 디코딩 기능을 갖는 전자 디바이스일 수 있다. 이와 달리, 인코딩 및 디코딩 장치(50)는 무선 통신 시스템에서 모바일 단말기 또는 사용자 장비일 수도 있다.
인코딩 및 디코딩 장치(50)는 다음의 모듈 또는 유닛: 컨트롤러(56), 코덱(54), 무선 인터페이스(52), 안테나(44), 스마트 카드(46), 카드 리더(48), 키패드(34), 메모리(58), 적외선 포트(42), 및 디스플레이(32)를 포함할 수 있다. 도 25에 도시된 모듈 및 유닛 이외에도, 인코딩 및 디코딩 장치(50)는 마이크로폰 및 임의의 적절한 오디오 입력 모듈을 더 포함할 수 있다. 오디오 입력 모듈은 디지털 신호 또는 아날로그 신호를 입력할 수 있다. 인코딩 및 디코딩 장치(50)는 오디오 출력 모듈을 더 포함할 수 있다. 오디오 출력 모듈은 헤드셋, 스피커, 또는 아날로그 오디오 출력 커넥션 또는 디지털 오디오 출력 커넥션일 수 있다. 인코딩 및 디코딩 장치(50)는 배터리를 더 포함할 수 있다. 배터리는 태양 전지, 또는 연료 전지 등일 수 있다. 인코딩 및 디코딩 장치(50)는 다른 디바이스와의 근거리 라인 오브 사이트 통신(short-range line-of-sight communication)을 수행하도록 구성되는 적외선 포트를 더 포함할 수 있다. 인코딩 및 디코딩 장치(50)는 그 대신, 예를 들어, 블루투스 무선 접속 또는 USB/라이브 라인 유선 접속을 통해, 임의의 적절한 근거리 통신 모드에서 다른 디바이스와 통신할 수 있다.
메모리(58)는 픽처 형태의 데이터 및 오디오 형태의 데이터를 저장할 수 있으며, 또한 컨트롤러(56)에서 실행될 인스트럭션을 저장할 수도 있다.
코덱(54)은 오디오 및/또는 비디오 데이터를 인코딩 및 디코딩할 수 있거나, 컨트롤러(56)의 제어하에 오디오 및/또는 비디오 데이터에 대한 보조 인코딩 및 보조 디코딩을 구현할 수 있다.
스마트 카드(46) 및 카드 리더(48)는 사용자 정보를 제공할 수 있고, 또한 네트워크 인증 및 승인된 사용자의 인증 정보를 제공할 수 있다. 스마트 카드(46) 및 카드 리더(48)의 특정 구현 형태는 범용 집적 회로 카드(universal Integrated circuit card)(UICC) 및 UICC 리더일 수 있다.
무선 인터페이스(52)는 무선 통신 신호를 생성할 수 있다. 무선 통신 신호는 셀룰러 통신 네트워크, 무선 통신 시스템, 또는 무선 근거리 네트워크에서의 통신 중에 생성되는 통신 신호일 수 있다.
안테나(44)는 무선 인터페이스(52)에 의해 생성된 무선 주파수 신호를 다른 장치(하나 이상의 장치가 있을 수 있음)로 전송하도록 구성되고, 그리고 다른 장치(하나 이상의 장치가 있을 수 있음)로부터 무선 주파수 신호를 수신하도록 추가로 구성될 수 있다.
본 출원의 일부 실시예에서, 인코딩 및 디코딩 장치(50)는 처리 대상 비디오 픽처 데이터를 전송 및/또는 저장하기 전에 다른 디바이스로부터 수신할 수 있다. 본 출원의 일부 실시예에서, 인코딩 및 디코딩 장치(50)는 무선 또는 유선 접속을 통해 픽처를 수신할 수 있고, 그 수신된 픽처를 인코딩/디코딩할 수 있다.
도 26은 본 출원의 일 실시예에 따른 비디오 인코딩 및 디코딩 시스템(7000)의 개략적인 블럭 다이어그램이다.
도 26에 도시된 바와 같이, 비디오 인코딩 및 디코딩 시스템(7000)은 소스 장치(4000) 및 목적지 장치(5000)를 포함한다. 소스 장치(4000)는 인코딩된 비디오 데이터를 생성한다. 소스 장치(4000)는 또한 비디오 인코딩 장치 또는 비디오 인코딩 디바이스로 지칭될 수 있다. 목적지 장치(5000)는 소스 장치(4000)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있다. 목적지 장치(5000)는 또한 비디오 디코딩 장치 또는 비디오 디코딩 디바이스로 지칭될 수 있다.
소스 장치(4000) 및 목적지 장치(5000)의 특정 구현 형태들은 각각 이하의 디바이스들: 즉, 데스크탑 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예를 들어, 랩탑) 컴퓨터, 태블릿 컴퓨터, 셋탑 박스, 스마트폰, 핸드셋, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량 내 컴퓨터, 또는 다른 유사한 디바이스 중 임의의 하나일 수 있다.
목적지 장치(5000)는 소스 장치(4000)로부터 채널(6000)을 통해 인코딩된 비디오 데이터를 수신할 수 있다. 채널(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)(WWW) 서버(예를 들어, 웹사이트 용으로 사용됨), 파일 전송 프로토콜(file transfer protocol)(FTP) 서버, 네트워크 접속형 저장(network attached storage)(NAS) 장치, 또는 로컬 디스크 드라이브를 포함할 수 있다.
목적지 장치(5000)는 표준 데이터 접속(예를 들어, 인터넷 접속)을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 데이터 접속의 일 예의 타입은 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는 데 적합한 무선 채널, 또는 유선 접속(예를 들어, 케이블 모뎀), 또는 이들의 조합을 포함한다. 파일 서버로부터의 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송, 또는 이들의 조합일 수 있다.
본 출원의 모션 벡터 획득 방법은 무선 애플리케이션 시나리오에 제한되지는 않는다. 예를 들어, 본 출원의 모션 벡터 획득 방법은 방송 텔레비전 브로드캐스팅 애플리케이션, 케이블 텔레비전 전송 애플리케이션, 위성 텔레비전 전송 애플리케이션, 스트리밍 비디오 전송 애플리케이션(예를 들어, 인터넷을 통한), 데이터 저장 매체에 저장된 비디오 데이터의 인코딩 애플리케이션, 데이터 저장 매체에 저장된 비디오 데이터의 디코딩 애플리케이션, 또는 다른 애플리케이션과 같은 다수의 멀티미디어 애플리케이션을 지원하는 비디오 인코딩 및 디코딩에 적용될 수 있다. 일부 예에서, 비디오 인코딩 및 디코딩 시스템(7000)은 단방향 또는 양방향 비디오 전송을 지원하여, 비디오 스트리밍 전송, 비디오 재생, 비디오 브로드캐스팅 및/또는 비디오 전화와 같은 애플리케이션을 지원하도록 구성될 수 있다.
도 26에서, 소스 장치(4000)는 비디오 소스(4001), 비디오 인코더(4002), 및 출력 인터페이스(4003)를 포함한다. 일부 예에서, 출력 인터페이스(4003)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 비디오 소스(4001)는 비디오 캡처 장치(예를 들어, 비디오 카메라), 이전에 캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 컨텐츠 제공자로부터 비디오 데이터를 수신하도록 구성된 비디오 입력 인터페이스, 및/또는 비디오 데이터를 생성하도록 구성된 컴퓨터 그래픽 시스템을 포함할 수 있거나, 또는 전술한 비디오 데이터 소스의 조합을 포함할 수 있다.
비디오 인코더(4002)는 비디오 소스(4001)로부터의 비디오 데이터를 인코딩할 수 있다. 일부 예에서, 소스 장치(4000)는 인코딩된 비디오 데이터를 출력 인터페이스(4003)를 통해 목적지 장치(5000)로 직접 송신한다. 인코딩된 비디오 데이터는 저장 매체 또는 파일 서버에 추가로 저장될 수 있고, 그에 따라 목적지 장치(5000)는 디코딩 및/또는 재생을 위해 나중에 인코딩된 비디오 데이터에 액세스하게 된다.
도 26의 예에서, 목적지 장치(5000)는 입력 인터페이스(5003), 비디오 디코더(5002), 및 디스플레이 장치(5001)를 포함한다. 일부 예에서, 입력 인터페이스(5003)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스(5003)는 채널(6000)을 통해 인코딩된 비디오 데이터를 수신할 수 있다. 디스플레이 장치(5001)는 목적지 장치(5000)와 통합될 수 있거나 또는 목적지 장치(5000) 외부에 위치될 수 있다. 일반적으로, 디스플레이 장치(5001)는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 장치(5001)는 복수의 타입의 디스플레이 장치, 예를 들어, 액정 디스플레이, 플라즈마 디스플레이, 유기 발광 다이오드 디스플레이, 또는 다른 타입의 디스플레이 장치를 포함할 수 있다.
비디오 인코더(4002) 및 비디오 디코더(5002)는 비디오 압축 표준(예를 들어, 고효율 비디오 코딩 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/1000/12455에서 다운로드할 수 있다. 이 파일은 그 전체가 본 명세서에 참고로 포함된다.
본 기술 분야의 통상의 기술자는 본 명세서에 개시된 실시예에서 설명된 예와 결합하여, 유닛들 및 알고리즘 단계들이 전자 하드웨어 또는 컴퓨터 소프트웨어 및 전자 하드웨어의 조합에 의해 구현될 수 있음을 인식할 수 있다. 기능이 하드웨어 또는 소프트웨어에 의해 수행되는지는 기술적 솔루션의 특정 애플리케이션 및 디자인 제약 조건에 따라 달라진다. 본 기술 분야의 기술자는 각각의 특정 애플리케이션에 대해 설명된 기능을 구현하기 위해 다양한 방법을 사용할 수 있지만, 그 구현예가 본 출원의 범위를 넘어서는 것으로 간주되어서는 안된다.
전술한 시스템, 장치, 및 유닛의 상세한 작업 프로세스에 대해, 편리하고 간단한 설명을 목적으로, 방법 실시예에서의 대응하는 프로세스를 참조하는 것이 본 기술 분야의 기술자에 의해 명백하게 이해될 수 있다. 세부 사항들은 여기에 다시 기술되지는 않는다.
본 출원에 제공된 몇몇 실시예에서, 개시된 시스템, 장치, 및 방법은 다른 방식으로 구현될 수 있다는 것을 이해해야 한다. 예를 들어, 설명된 장치 실시예는 예에 불과할 뿐이다. 예를 들어, 유닛들로의 분할은 논리적인 기능 분할에 불과할 뿐이다. 실제 구현에는 다른 분할 방식이 있을 수 있다. 예를 들어, 복수의 유닛 또는 컴포넌트가 다른 시스템 내에 결합 또는 통합될 수 있거나, 또는 일부 특징이 무시되거나 수행되지 않을 수 있다. 또한, 표시되거나 설명된 상호 결합 또는 직접 결합 또는 통신 접속은 일부 인터페이스를 통해 구현될 수 있다. 장치들 또는 유닛들 간의 간접 결합 또는 통신 접속은 전자적, 기계적, 또는 다른 형태로 구현될 수 있다.
분리된 부분으로 설명된 유닛은 물리적으로 분리될 수도 있거나 그렇지 않을 수도 있으며, 유닛으로서 표시된 부분은 물리적 유닛일 수도 있거나 그렇지 아닐 수도 있거나, 한 위치 내부에 위치될 수 있거나, 또는 복수의 네트워크 유닛 상에 분산될 수 있다. 일부 또는 모든 유닛은 실시예의 솔루션의 목적을 달성하기 위한 실제의 요구 사항에 기반하여 선택될 수 있다.
또한, 본 출원의 실시예에서의 기능 유닛들은 하나의 처리 유닛 내에 통합될 수 있거나, 또는 각각의 유닛이 물리적으로 단독으로 존재할 수 있거나, 또는 두 개 이상의 유닛이 하나의 유닛 내에 통합될 수 있다.
기능이 소프트웨어 기능 유닛의 형태로 구현되고, 독립적인 제품으로서 판매되거나 사용되는 경우, 그 기능은 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 이러한 이해에 기반하여, 본 출원의 필수적인 기술적 솔루션, 또는 선행 기술에 기여하는 부분, 또는 기술적 솔루션의 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 컴퓨터 소프트웨어 제품은 저장 매체에 저장되며, 컴퓨터 디바이스(퍼스널 컴퓨터, 서버, 또는 네트워크 디바이스일 수 있음)에게 본 출원의 실시예에 설명된 방법의 모든 또는 일부의 단계를 수행하도록 지시하기 위한 몇 가지 인스트럭션을 포함한다. 전술한 저장 매체는 프로그램 코드를 저장할 수 있는 임의의 매체, 예를 들어, USB 플래시 드라이브, 착탈식 하드 디스크, 판독 전용 메모리(read-only memory)(ROM), 랜덤 액세스 메모리(random access memory)(RAM), 자기 디스크, 또는 컴팩트 디스크를 포함한다.
전술한 설명은 단지 본 출원의 특정 구현예일 뿐이지만, 본 출원의 보호 범위를 제한하려는 것이 아니다. 본 출원에 개시된 기술적 범위 내에서 본 기술 분야의 기술자에 의해 용이하게 이해되는 임의의 변형 또는 대체물은 본 출원의 보호 범위 내에 속하게 된다. 따라서, 본 출원의 보호 범위는 청구항의 보호 범위를 따라야 한다.

Claims (23)

  1. 모션 벡터 획득 방법으로서,
    적어도 하나의 처리 대상 서브 블럭(to-be-processed sub-block)을 포함하는 처리 대상 블럭(to-be-processed block)의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정하는 단계와,
    상기 처리 대상 서브 블럭의 위치 및 상기 타겟 오프셋 벡터에 기반하여 상기 처리 대상 서브 블록의 병치된(collocated) 서브 블록의 초기 위치를 결정하는 단계와,
    상기 초기 위치가 사전 설정된 구역(preset area) 내에 있는 경우 상기 초기 위치를 타겟 위치로서 결정하는 단계와,
    상기 초기 위치가 상기 사전 설정된 구역을 벗어나는 경우 상기 사전 설정된 구역 내에 있고 상기 초기 위치에 가장 가까운 위치를 타겟 위치로서 결정하는 단계와,
    상기 타겟 위치에 대응하는 모션 벡터에 기반하여 상기 처리 대상 서브 블럭의 모션 벡터를 획득하는 단계를 포함하고,
    상기 사전 설정된 구역은 상기 블럭이 포함되는 코딩 트리 단위(CTU)의 위치 및 사이즈, 상기 타겟 픽처의 사이즈, 및 상기 CTU의 시간 모션 벡터 필드의 확장 범위에 기반하여 결정되는
    모션 벡터 획득 방법.
  2. 제1항에 있어서,
    상기 사전 설정된 구역은 수평 좌표 값 범위 및 수직 좌표 값 범위를 사용하여 표현되고, 상기 수평 좌표 값 범위는 최소 수평 좌표 값 및 최대 수평 좌표 값을 포함하며, 상기 수직 좌표 값 범위는 최소 수직 좌표 값 및 최대 수직 좌표 값을 포함하고,
    상기 초기 위치가 사전 설정된 구역 내에 있는 경우 상기 초기 위치를 타겟 위치로서 결정하는 단계, 또는 상기 초기 위치가 상기 사전 설정된 구역을 벗어나는 경우 상기 사전 설정된 구역 내에 있고 상기 초기 위치에 가장 인접한 위치를 타겟 위치로서 결정하는 단계는,
    수학식 = Clip3 (HorMin, HorMax, ) 및 = Clip3 (VerMin, VerMax, )에 따라 상기 타겟 위치를 결정하는 단계를 포함하되,
    HorMin은 상기 최소 수평 좌표 값이고, HorMax는 상기 최대 수평 좌표 값이며, VerMin은 상기 최소 수직 좌표 값이고, VerMax는 상기 최대 수직 좌표 값이며, Clip3 함수는 클리핑 함수이고, 상기 Clip3 함수는 로 정의되는
    모션 벡터 획득 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 초기 위치는 수평 좌표 또는 수직 좌표 중 적어도 하나를 포함하고,
    상기 수평 좌표는 상기 서브 블럭의 위치의 수평 좌표와 상기 타겟 오프셋 모션 벡터의 수평 성분(xoff)의 합이며,
    상기 수직 좌표는 상기 서브 블럭의 위치의 수직 좌표와 상기 타겟 오프셋 모션 벡터의 수직 성분(yoff)의 합인
    모션 벡터 획득 방법.
  4. 제3항에 있어서,
    상기 초기 위치 좌표 값은
    에 따라 획득되되,
    (x, y)는 상기 처리 대상 블럭의 위치 좌표들을 나타내고, i는 수평 방향으로의 상기 처리 대상 블럭 내의 i 번째 서브 블럭을 나타내며, j는 수직 방향으로의 상기 처리 대상 블럭 내의 j 번째 서브 블럭을 나타내고, (xoff, yoff)는 상기 수평 방향 및 상기 수직 방향으로의 상기 타겟 오프셋 모션 벡터의 성분들의 값들을 나타내며, M 및 N은 각각 상기 서브 블럭의 폭 및 높이이고, (, )는 (i, j) 번째 서브 블럭에 대응하는 상기 병치된 서브 블럭의 초기 위치를 나타내는
    모션 벡터 획득 방법.
  5. 제4항에 있어서,
    (x, y)는 상기 처리 대상 블럭의 좌측 상단 꼭지점의 위치 좌표들을 나타내고, (, )는 상기 처리 대상 블럭의 상기 (i, j) 번째 서브 블럭에 대응하는 상기 병치된 서브 블럭의 중심점 또는 좌측 상단 꼭지점의 위치 좌표들을 나타내는
    모션 벡터 획득 방법.
  6. 제1항에 있어서,
    (, )가 (i, j) 번째 서브 블럭의 위치 좌표들을 나타내고, (x, y)는 상기 처리 대상 블럭의 위치 좌표들을 나타내며, i는 수평 방향으로의 상기 처리 대상 블럭 내의 i 번째 서브 블럭을 나타내고, j는 수직 방향으로의 상기 처리 대상 블럭 내의 j 번째 서브 블럭을 나타내며, M 및 N은 각각 상기 서브 블럭의 폭 및 높이인
    모션 벡터 획득 방법.
  7. 제1항에 있어서,
    상기 CTU의 시간 모션 벡터 필드의 확장 범위는, 수평 방향으로의 상기 CTU의 시간 모션 벡터 필드의 확장 범위 및 수직 방향으로의 상기 CTU의 시간 모션 벡터 필드의 확장 범위를 포함하는
    모션 벡터 획득 방법.
  8. 제1항 또는 제2항 또는 제7항에 있어서,
    상기 CTU의 상기 시간 모션 벡터 필드의 확장 범위는 사전 결정된 값인
    모션 벡터 획득 방법.
  9. 제1항 또는 제2항 또는 제7항에 있어서,
    상기 사전 설정된 구역은 다음 수학식들,
    HorMin = Max(CTUX - RangeL, 0);
    HorMax = Min(CTUX + CTUW + RangeR - 1, PicW - 1);
    VerMin = Max(CTUY - RangeU, 0); 및
    VerMax = Min(CTUY + CTUH + RangeB - 1, PicH - 1)
    에 따른 계산을 통해 획득되되,
    HorMin 및 HorMax는 각각 상기 수평 방향으로의 상기 사전 설정된 구역의 최소 값 및 최대 값이고, VerMin 및 VerMax는 각각 상기 수직 방향으로의 상기 사전 설정된 구역의 최소 값 및 최대 값이며, CTUX 및 CTUY는 상기 처리 대상 블럭이 포함되는 CTU의 위치 좌표들을 나타내고, CTUW 및 CTUH는 상기 처리 대상 블럭이 포함되는 CTU의 폭 및 높이를 나타내며, RangeU, RangeB, RangeL, 및 RangeR은 각각, 상부 방향, 하단 방향, 좌측 방향, 및 우측 방향으로 존재하고 상기 처리 대상 블럭이 포함되는 CTU의 시간 모션 벡터 필드에 속하는 확장 값들을 나타내며, PicW 및 PicH는 각각 상기 타겟 픽처의 폭 및 높이인
    모션 벡터 획득 방법.
  10. 제9항에 있어서,
    RangeU, RangeB, RangeL, 또는 RangeR은 사전 결정된 값인
    모션 벡터 획득 방법.
  11. 제1항 또는 제2항 또는 제7항에 있어서,
    상기 타겟 위치에 대응하는 모션 벡터에 기반하여 상기 처리 대상 서브 블럭의 모션 벡터를 획득하는 단계는,
    상기 처리 대상 서브 블럭을 포함한 픽처의 픽처 순서 카운트(POC), 상기 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC, 상기 타겟 픽처의 POC, 및 상기 타겟 픽처의 타겟 기준 픽처의 POC에 기반하여 상기 타겟 위치에 대응하는 모션 벡터를 스케일링하여, 상기 처리 대상 서브 블럭의 모션 벡터를 획득하는 것을 포함하는
    모션 벡터 획득 방법.
  12. 제11항에 있어서,
    상기 처리 대상 서브 블럭의 상기 모션 벡터는 수학식 에 따라 획득되되,
    P1은 상기 처리 대상 서브 블럭을 포함한 픽처의 POC를 나타내고, P2는 상기 처리 대상 서브 블럭을 포함한 픽처의 타겟 기준 픽처의 POC를 나타내며, P3은 상기 타겟 픽처의 POC를 나타내고, P4는 상기 타겟 픽처의 상기 타겟 기준 픽처의 POC를 나타내며, MV는 상기 타겟 위치에 대응하는 모션 벡터를 나타내고, MVs는 상기 처리 대상 서브 블럭의 모션 벡터를 나타내는
    모션 벡터 획득 방법.
  13. 제1항 또는 제2항 또는 제7항에 있어서,
    상기 처리 대상 블럭의 타겟 오프셋 벡터를 결정하는 것은,
    상기 처리 대상 블럭의 공간적으로 이웃하는 블럭의 모션 벡터를 상기 타겟 오프셋 벡터로서 결정하는 것을 포함하는
    모션 벡터 획득 방법.
  14. 제1항 또는 제2항 또는 제7항에 있어서,
    상기 타겟 위치는 상기 처리 대상 서브 블록의 상기 병치된 서브 블록의 타겟 위치를 나타내는
    모션 벡터 획득 방법.
  15. 제1항 또는 제2항 또는 제7항에 있어서,
    상기 타겟 오프셋 벡터는 시간 벡터인
    모션 벡터 획득 방법.
  16. 제1항 또는 제2항 또는 제7항에 있어서,
    상기 처리 대상 서브 블록의 예측 샘플 값을 획득하도록 상기 처리 대상 서브 블록의 상기 모션 벡터에 기반하여 모션 보상을 수행하는 단계와,
    상기 처리 대상 블록의 샘플 값과 상기 처리 대상 블록의 예측 샘플 값에 따라 잔차 정보를 획득하는 단계 - 상기 처리 대상 블록의 예측 샘플 값은 상기 처리 대상 서브 블록의 상기 예측 샘플 값을 포함함 - 와,
    상기 잔차 정보에 대해 변환, 양자화, 엔트로피 코딩을 수행하여 인코딩된 비트스트림을 획득하는 단계를 포함하는
    모션 벡터 획득 방법.
  17. 제1항, 제2항 또는 제7항에 있어서,
    상기 처리 대상 서브 블록의 모션 벡터에 기반하여 모션 보상을 수행하여 상기 처리 대상 서브 블록의 예측 샘플 값을 획득하는 단계와,
    비트스트림에 대해 엔트로피 디코딩, 역양자화, 역변환을 수행하여 잔차 정보를 획득하는 단계와,
    상기 처리 대상 블록의 잔차 정보 및 예측 샘플 값에 따라 상기 처리 대상 블록의 복원 샘플 값을 획득하는 단계 - 상기 처리 대상 블록의 예측 샘플 값은 상기 처리 대상 서브 블록의 예측 샘플 값을 포함하는
    모션 벡터 획득 방법.
  18. 디코딩 장치로서,
    비디오 데이터를 비트스트림 형태로 저장하도록 구성된 메모리와,
    상기 비트스트림 형태의 상기 비디오 데이터를 디코딩하도록 구성된 비디오 디코더를 포함하며, 상기 디코딩 프로세스는:
    적어도 하나의 처리 대상 서브 블록을 포함하는 처리 대상 블록의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정하는 단계와,
    상기 처리 대상 서브 블록의 위치 및 상기 타겟 오프셋 벡터에 기반하여, 상기 처리 대상 서브 블록의 병치된 서브 블록의 초기 위치를 결정하는 단계와,
    상기 초기 위치가 사전 설정된 구역 내에 있는 경우, 상기 초기 위치를 타겟 위치로서 결정하는 단계와,
    상기 초기 위치가 상기 사전 설정된 구역을 벗어나는 경우, 상기 사전 설정된 구역 내에 있고 상기 초기 위치에 가장 가까운 위치를 타겟 위치로서 결정하는 단계와,
    상기 타겟 위치에 대응하는 모션 벡터에 기반하여 상기 처리 대상 서브 블럭의 모션 벡터를 획득하는 단계를 포함하고,
    상기 사전 설정된 구역은 상기 블럭이 포함되는 코딩 트리 단위(CTU)의 위치 및 사이즈, 상기 타겟 픽처의 사이즈, 및 상기 CTU의 시간 모션 벡터 필드의 확장 범위에 기반하여 결정되는
    디코딩 장치.
  19. 제18항에 있어서,
    상기 CTU의 시간 모션 벡터 필드의 확장 범위는, 수평 방향으로의 상기 CTU의 시간 모션 벡터 필드의 확장 범위 및 수직 방향으로의 상기 CTU의 시간 모션 벡터 필드의 확장 범위를 포함하는
    디코딩 장치.
  20. 인코딩 장치로서,
    하나 이상의 픽처 블록을 포함하는 비디오 데이터를 저장하도록 구성된 메모리와,
    상기 비디오 데이터를 인코딩하도록 구성된 비디오 인코더를 포함하며, 상기 인코딩 프로세스는:
    적어도 하나의 처리 대상 서브 블록을 포함하는 처리 대상 블록의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정하는 단계와,
    상기 처리 대상 서브 블록의 위치 및 상기 타겟 오프셋 벡터에 기반하여, 상기 처리 대상 서브 블록의 병치된 서브 블록의 초기 위치를 결정하는 단계와,
    상기 초기 위치가 사전 설정된 구역 내에 있는 경우, 상기 초기 위치를 타겟 위치로서 결정하는 단계와,
    상기 초기 위치가 상기 사전 설정된 구역을 벗어나는 경우, 상기 사전 설정된 구역 내에 있고 상기 초기 위치에 가장 가까운 위치를 타겟 위치로서 결정하는 단계와,
    상기 타겟 위치에 대응하는 모션 벡터에 기반하여 상기 처리 대상 서브 블럭의 모션 벡터를 획득하는 단계를 포함하고,
    상기 사전 설정된 구역은 상기 블럭이 포함되는 코딩 트리 단위(CTU)의 위치 및 사이즈, 상기 타겟 픽처의 사이즈, 및 상기 CTU의 시간 모션 벡터 필드의 확장 범위에 기반하여 결정되는
    디코딩 장치.
  21. 제20항에 있어서,
    상기 CTU의 상기 시간 모션 벡터 필드의 확장 범위는, 수평 방향으로의 상기 CTU의 상기 시간 모션 벡터 필드의 확장 범위 및 수직 방향으로의 상기 CTU의 상기 시간 모션 벡터 필드의 확장 범위를 포함하는
    디코딩 장치.
  22. 방법에 의해 생성된 비트스트림을 포함하는 컴퓨터 판독가능 매체로서,
    상기 방법은,
    적어도 하나의 처리 대상 서브 블록을 포함하는 처리 대상 블록의 타겟 오프셋 벡터 및 타겟 픽처의 식별자 정보를 결정하는 단계와,
    상기 처리 대상 서브 블록의 위치 및 상기 타겟 오프셋 벡터에 기반하여, 상기 처리 대상 서브 블록의 병치된 서브 블록의 초기 위치를 결정하는 단계와,
    상기 초기 위치가 사전 설정된 구역 내에 있는 경우, 상기 초기 위치를 타겟 위치로 결정하는 단계 - 상기 사전 설정된 구역은 상기 블록이 포함된 코딩 트리 단위(CTU)의 위치 및 크기, 상기 타겟 픽처의 크기 및 상기 CTU의 시간 모션 벡터 필드의 확장 범위에 기반하여 결정됨 -, 또는
    상기 초기 위치가 상기 사전 설정된 구역을 벗어나는 경우, 상기 사전 설정된 구역 내에 있고, 상기 초기 위치에 가장 가까운 위치를 타겟 위치로서 결정하는 단계와,
    상기 타겟 위치에 대응하는 모션 벡터에 기반하여 처리 대상 서브 블록의 모션 벡터를 획득하는 단계와,
    상기 처리 대상 서브 블록의 모션 벡터에 기반하여 모션 보상을 수행하여 상기 처리 대상 서브 블록의 예측 샘플 값을 획득하는 단계와,
    상기 처리 대상 블록의 샘플 값과 상기 처리 대상 블록의 예측 샘플 값에 따라 잔차 정보를 획득하는 단계 - 상기 처리 대상 블록의 상기 예측 샘플 값은 상기 처리 대상 서브 블록의 상기 예측 샘플 값을 포함함 - 와,
    상기 잔차 정보에 대해 변환, 양자화, 엔트로피 코딩을 수행하여 인코딩된 비트스트림을 획득하는 단계를 포함하는,
    컴퓨터 판독가능 매체.
  23. 제20항에 있어서,
    상기 CTU의 상기 시간 모션 벡터 필드의 확장 범위는 수평 방향으로의 상기 CTU의 시간 모션 벡터 필드의 확장 범위와 수직 방향으로의 상기 CTU의 상기 시간 모션 벡터 필드의 확장 범위를 포함하는,
    컴퓨터 판독가능 매체.
KR1020237038069A 2018-06-04 2019-06-04 모션 벡터 획득 방법 및 장치 KR20230156446A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201810564560.8A CN110557641B (zh) 2018-06-04 2018-06-04 获取运动矢量的方法和装置
CN201810564560.8 2018-06-04
PCT/CN2019/090031 WO2019233423A1 (zh) 2018-06-04 2019-06-04 获取运动矢量的方法和装置
KR1020207037727A KR102600071B1 (ko) 2018-06-04 2019-06-04 모션 벡터 획득 방법 및 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207037727A Division KR102600071B1 (ko) 2018-06-04 2019-06-04 모션 벡터 획득 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230156446A true KR20230156446A (ko) 2023-11-14

Family

ID=68736012

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237038069A KR20230156446A (ko) 2018-06-04 2019-06-04 모션 벡터 획득 방법 및 장치
KR1020207037727A KR102600071B1 (ko) 2018-06-04 2019-06-04 모션 벡터 획득 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207037727A KR102600071B1 (ko) 2018-06-04 2019-06-04 모션 벡터 획득 방법 및 장치

Country Status (12)

Country Link
US (3) US11463721B2 (ko)
EP (2) EP3796657B1 (ko)
JP (2) JP7177181B2 (ko)
KR (2) KR20230156446A (ko)
CN (6) CN117956182A (ko)
BR (1) BR112020024666A2 (ko)
DK (1) DK3796657T3 (ko)
FI (1) FI3796657T3 (ko)
MX (1) MX2020013131A (ko)
PT (1) PT3796657T (ko)
SG (1) SG11202012078PA (ko)
WO (1) WO2019233423A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111050182B (zh) * 2019-12-27 2022-02-18 浙江大华技术股份有限公司 运动矢量的预测方法、视频编码方法及相关设备、装置
CN113706573B (zh) * 2020-05-08 2024-06-11 杭州海康威视数字技术股份有限公司 一种运动物体的检测方法、装置及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291433A (zh) * 2007-04-19 2008-10-22 上海中科计算技术研究所 视频编码技术中的模块运动矢量匹配评估方法
KR20120088488A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
CN103716629B (zh) * 2012-09-29 2017-02-22 华为技术有限公司 用于图像处理的方法、装置、编码器和解码器
JP2016526853A (ja) * 2013-07-12 2016-09-05 サムスン エレクトロニクス カンパニー リミテッド 深さ基盤ディスパリティベクトルを利用するインターレイヤビデオ復号化方法及びその装置、並びに深さ基盤ディスパリティベクトルを利用するインターレイヤビデオ符号化方法及びその装置
JP2015106747A (ja) * 2013-11-28 2015-06-08 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JP2015173404A (ja) * 2014-03-12 2015-10-01 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
GB2521491B (en) * 2014-06-17 2016-10-19 Imagination Tech Ltd Motion estimation
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
CN104918057B (zh) * 2015-05-08 2018-07-13 上海交通大学 一种利用邻域运动信息的运动矢量后处理系统
US10200713B2 (en) * 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
US10306258B2 (en) * 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning
US10560718B2 (en) * 2016-05-13 2020-02-11 Qualcomm Incorporated Merge candidates for motion vector prediction for video coding
CN105939475A (zh) * 2016-06-06 2016-09-14 中国矿业大学 一种高质量边信息生成方法
CN108076347B (zh) * 2016-11-15 2021-11-26 阿里巴巴集团控股有限公司 一种编码起始点的获取方法以及装置
WO2018210315A1 (en) * 2017-05-18 2018-11-22 Mediatek Inc. Method and apparatus of motion vector constraint for video coding
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
WO2019004283A1 (ja) * 2017-06-28 2019-01-03 シャープ株式会社 動画像符号化装置及び動画像復号装置
CN117579828A (zh) * 2018-01-09 2024-02-20 夏普株式会社 运动矢量推导装置、运动图像解码装置以及运动图像编码装置
JP7260562B2 (ja) * 2018-01-29 2023-04-18 ヴィド スケール インコーポレイテッド 複雑性の低いフレームレートアップ変換
WO2019190224A1 (ko) * 2018-03-30 2019-10-03 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
US11381834B2 (en) * 2018-04-02 2022-07-05 Hfi Innovation Inc. Video processing methods and apparatuses for sub-block motion compensation in video coding systems

Also Published As

Publication number Publication date
JP7177181B2 (ja) 2022-11-22
SG11202012078PA (en) 2021-01-28
EP3796657A1 (en) 2021-03-24
EP3796657B1 (en) 2024-03-06
CN110557641A (zh) 2019-12-10
CN112040243B (zh) 2021-06-29
CN117956182A (zh) 2024-04-30
JP2023017955A (ja) 2023-02-07
BR112020024666A2 (pt) 2021-03-02
MX2020013131A (es) 2021-03-25
KR20210015931A (ko) 2021-02-10
FI3796657T3 (fi) 2024-05-20
KR102600071B1 (ko) 2023-11-07
US20210092433A1 (en) 2021-03-25
CN115550664A (zh) 2022-12-30
PT3796657T (pt) 2024-05-20
JP2021526338A (ja) 2021-09-30
EP4369711A2 (en) 2024-05-15
CN110557641B (zh) 2024-01-16
CN115550664B (zh) 2023-08-22
US11463721B2 (en) 2022-10-04
EP3796657A4 (en) 2021-06-23
US20230070282A1 (en) 2023-03-09
CN117956183A (zh) 2024-04-30
CN112040243A (zh) 2020-12-04
WO2019233423A1 (zh) 2019-12-12
DK3796657T3 (da) 2024-05-21
US11812050B2 (en) 2023-11-07
US20240121421A1 (en) 2024-04-11
CN118075486A (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
EP3672249B1 (en) Inter frame prediction method and device for video images
CN109792535B (zh) 预测图像生成装置、运动图像解码装置以及运动图像编码装置
RU2715010C1 (ru) Способ и устройство кодирования и декодирования изображения с использованием межкадрового прогнозирования
KR20200070184A (ko) 비디오 부호화, 복호화 방법 및 장치
US20130034308A1 (en) Picture coding method and picture decoding method
CN104012096A (zh) 执行视频译码的运动向量预测
US11812050B2 (en) Motion vector obtaining method and apparatus
KR102602827B1 (ko) 양방향 인터 예측에 적용되는 참조 프레임 획득 방법 및 장치
KR20230162152A (ko) 모션 벡터 예측 방법 및 관련 장치
CN110868602A (zh) 视频编码器、视频解码器及相应方法
AU2019397944B2 (en) Inter-frame prediction method and device
US12015780B2 (en) Inter prediction method and apparatus, video encoder, and video decoder
CN111050164B (zh) 一种编解码的方法和装置
CN110677645B (zh) 一种图像预测方法及装置

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal