KR20240011263A - 픽처 예측 방법과 장치, 및 코덱 - Google Patents

픽처 예측 방법과 장치, 및 코덱 Download PDF

Info

Publication number
KR20240011263A
KR20240011263A KR1020247001807A KR20247001807A KR20240011263A KR 20240011263 A KR20240011263 A KR 20240011263A KR 1020247001807 A KR1020247001807 A KR 1020247001807A KR 20247001807 A KR20247001807 A KR 20247001807A KR 20240011263 A KR20240011263 A KR 20240011263A
Authority
KR
South Korea
Prior art keywords
block
reference block
picture
positions
initial
Prior art date
Application number
KR1020247001807A
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 KR20240011263A publication Critical patent/KR20240011263A/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/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/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/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/182Methods 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 a pixel
    • 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/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Color Television Systems (AREA)

Abstract

현재 픽처 블록의 초기 움직임 정보를 획득하는 것과, 매칭 비용 기준에 근거하여, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치임을 결정하는 것 - 참조 블록의 각각의 쌍의 위치는 순방향 참조 블록의 위치와 역방향 참조 블록의 위치를 포함하고, 참조 블록의 각각의 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 미러 관계임 - 과, 타겟 순방향 참조 블록의 화소 값과 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하는 것을 포함하는 픽처 예측 방법이 제공된다.

Description

픽처 예측 방법과 장치, 및 코덱{PICTURE PREDICTION METHOD AND APPARATUS, AND CODEC}
본 출원은 비디오 코딩 기술 분야, 특히 픽처 예측 방법과 장치 및 코덱에 관한 것이다.
MPEG-2, MPEG-4, ITU-TH.263, ITU-TH.264/MPEG-4 Part 10 AVC(Advanced Video Coding), ITU-TH.265 HEVC(High Efficiency Viedo Coding)와 같은 비디오 압축 기술 및 이들 표준의 확장 부분에 설명된 비디오 압축 기술을 사용함으로써 장치간에 디지털 비디오 정보를 효율적으로 송수신할 수 있다. 일반적으로, 비디오 시퀀스의 픽처는 인코딩 또는 디코딩을 위해 픽처 블록으로 분할된다.
비디오 압축 기술에는, 픽처 블록에 기반한 공간 예측(인트라 예측) 및/또는 시간 예측(인터 예측)이 도입되어 비디오 시퀀스에서 중복 정보를 감소시키거나 또는 제거한다. 인터 예측 모드는 병합 모드(Merge Mode), 비병합 모드(예를 들어, AMVP(advanced motion vector prediction) 모드) 등을 포함할 수 있으나, 이에 한정되는 것은 아니며, 모든 인터 예측은 복수-움직임 정보 경합 방법을 사용하여 수행된다.
인터 예측 프로세스에는, 복수의 움직임 정보 그룹(또한 복수의 후보 움직임 정보 조각으로 지칭됨)을 포함하는 후보 움직임 정보 리스트(줄여서 후보 리스트)가 도입된다. 예를 들어, 인코더는 현재 코딩될 픽처 블록의 참조 픽처 블록(즉, 참조 샘플)을 획득하기 위해 후보 리스트로부터 선택된 움직임 정보 그룹을 사용하여 현재 코딩될 픽처 블록의 움직임 정보(예를 들어, 움직임 벡터)를 예측할 수 있다. 이에 대응하여, 디코더는 움직임 정보 그룹을 획득하기 위해 비트 스트림을 디코딩하여 표시 정보를 획득할 수 있다. 움직임 정보의 코딩 오버헤드(즉, 점유된 비트스트림의 비트 오버헤드)가 인터 예측 프로세스로 제한되기 때문에, 이것은 움직임 정보의 정확성에 어느 정도 영향을 미치고 나아가 픽처 예측 정확성에도 영향을 미친다.
픽처 예측 정확성을 개선하기 위해, 기존의 디코더 측 움직임 벡터 재정밀화(decoder-side motion vector refinement, DMVR) 기술이 움직임 정보를 재정밀화하는데 사용될 수 있다. 그러나 DMVR 솔루션을 이용하여 픽처 예측을 수행하는 경우, 템플릿 매칭 블록을 계산해야 하고, 템플릿 매칭 블록을 이용하여 순방향 참조 픽처와 역방향 참조 픽처에서 탐색 매칭 프로세스를 별도로 수행해야 하므로 탐색 복잡도가 비교적 높다. 따라서, 픽처 예측 정확성을 향상시키면서 픽처 예측 동안 복잡성을 어떻게 감소시킬 것인지가 해결되어야 할 문제이다.
본 출원의 실시예는 픽처 예측 정확성을 개선하고, 픽처 예측 복잡성을 어느 정도 감소시키며, 코딩 성능을 추가로 개선하는 픽처 예측 방법과 장치, 및 대응하는 인코더 및 디코더를 제공한다.
제 1 측면에 따르면, 본 출원의 실시예는 픽처 예측 방법을 제공한다. 이 방법은, 현재 픽처 블록의 초기 움직임 정보를 획득하는 것과, 초기 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수인 것과, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것으로서, 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고, 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 미러 관계이고, 제 1 위치 오프셋은 초기 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고, M은 1 이상의 정수이고, M은 N 이하인 것과, 타겟 순방향 참조 블록의 화소 값(샘플)과 타겟 역방향 참조 블록의 화소 값(샘플)에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하는 것을 포함한다.
본 출원의 이 실시예에서, N개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치 및 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하고, N개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치 및 (N-1)개의 후보 역방향 참조 블록의 위치를 포함한다는 점에 특히 유의해야 한다. 따라서, 초기 순방향 참조 블록의 위치에 대한 초기 순방향 참조 블록의 위치의 오프셋은 0이고, 초기 역방향 참조 블록의 위치에 대한 초기 역방향 참조 블록의 위치의 오프셋은 0이다. 오프셋 0 및 오프셋 0은 또한 미러 관계를 충족한다.
본 출원의 이 실시예에서, 순방향 참조 픽처에서의 N개의 순방향 참조 블록의 위치 및 역방향 참조 픽처에서의 N개의 역방향 참조 블록의 위치가 참조 블록의 N개의 쌍의 위치를 형성한다는 것을 알 수 있다. 참조 블록의 N개의 쌍의 위치의 참조 블록의 각 쌍의 위치에서, 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 미러 관계가 존재한다. 이를 기반으로, 참조 블록의 N개의 쌍의 위치로부터 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로 결정되고, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이 실시예의 방법은 템플릿 매칭 블록을 사전에 계산하는 프로세스 및 템플릿 매칭 블록을 사용하여 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확성을 향상시키고 픽처 예측 복잡성을 감소시킨다.
또한, 여기에서 현재 픽처 블록(현재 블록으로 지칭됨)은 현재 프로세싱되고 있는 픽처 블록으로 이해될 수 있음을 이해해야 한다. 예를 들어, 인코딩 프로세스에서, 현재 픽처 블록은 코딩 블록(인코딩 블록)이다. 디코딩 프로세스에서, 현재 픽처 블록은 코딩 블록(디코딩 블록)이다.
또한, 여기에서 참조 블록은 현재 블록에 대한 참조 신호를 제공하는 블록이라는 것을 이해해야 한다. 탐색 프로세스에서, 최적의 참조 블록을 발견하기 위해 복수의 참조 블록이 탐색될 필요가 있다. 순방향 참조 픽처에 위치한 참조 블록은 순방향 참조 블록으로 지칭된다. 역방향 참조 픽처에 위치한 참조 블록은 역방향 참조 블록으로 지칭된다.
또한, 현재 블록에 대한 예측을 제공하는 블록은 예측 블록으로 지칭됨을 이해해야 한다. 예를 들어, 복수의 참조 블록이 탐색된 후, 최적의 참조 블록이 발견된다. 최적의 참조 블록은 현재 블록에 대한 예측을 제공하고, 예측 블록으로 지칭된다. 예측 블록의 화소 값, 샘플링 값 또는 샘플링 신호는 예측 신호로 지칭된다.
또한, 여기에서 매칭 비용 기준은 쌍을 이루는 순방향 및 역방향 참조 블록 사이의 매칭 비용을 고려하는 기준으로 이해될 수 있음을 이해해야 한다. 매칭 비용은 2개의 블록 사이의 차이로 이해될 수 있고, 2개의 블록의 대응하는 위치에서 샘플의 누적된 차이로 간주될 수 있다. 차이는 일반적으로 SAD(sum of absolute difference) 기준 또는 다른 조건, 예를 들어, SATD(sum of absolute transform difference), MR-SAD(mean-removed sum of absolute difference) 또는 SSD(sum of squared differences)에 근거하여 계산된다.
또한, 본 출원의 이 실시예에서 현재 픽처 블록의 초기 움직임 정보는 움직임 벡터(MV) 및 참조 픽처 표시 정보를 포함할 수 있음에 유의해야 한다. 물론, 이와 달리 초기 움직임 정보는 움직임 벡터 또는 참조 픽처 표시 정보 중 하나, 또는 움직임 벡터 및 참조 픽처 표시 정보 모두를 포함할 수 있다. 예를 들어, 인코더 측과 디코더 측이 함께 참조 픽처에 합의한 경우, 초기 움직임 정보는 움직임 벡터(MV)만을 포함할 수 있다. 참조 픽처 표시 정보는 어떤 재구성된 픽처 또는 재구성된 픽처들이 현재의 블록에 대한 참조 픽처로서 사용되는지를 표시하는데 사용된다. 움직임 벡터는 현재 블록의 위치에 대한 사용된 참조 픽처에서의 참조 블록의 위치의 오프셋을 표시하며, 일반적으로 수평 컴포넌트 오프셋 및 수직 컴포넌트 오프셋을 포함한다. 예를 들어, (x,y)가 MV를 표현하는데 사용되고, x는 수평 방향의 위치 오프셋을 표현하고, y는 수직 방향의 위치 오프셋을 표현한다. 참조 픽처에서 현재 블록의 참조 블록의 위치는 현재 블록의 위치에 MV를 가산함으로써 획득될 수 있다. 참조 픽처 표시 정보는 참조 픽처 리스트 및/또는 참조 픽처 리스트에 대응하는 참조 픽처 인덱스를 포함할 수 있다. 참조 픽처 인덱스는 지정된 참조 픽처 리스트(RefPicList0 또는 RefPicList1)에서 사용된 움직임 벡터에 대응하는 참조 픽처를 식별하는데 사용된다. 픽처는 프레임으로 지칭될 수 있고, 참조 픽처는 참조 프레임으로 지칭될 수 있다.
본 출원의 이 실시예에서, 현재 픽처 블록의 초기 움직임 정보는 초기 양방향 예측 움직임 정보, 즉 순방향 예측 방향으로 사용되는 움직임 정보 및 역방향 예측 방향으로 사용되는 움직임 정보를 포함한다. 여기서, 순방향 및 역방향 예측 방향은 양방향 예측 모드의 2개의 예측 방향이다. "순방향" 및 "역방향"은 각각 현재 픽처의 참조 픽처 리스트 0(RefPicList0) 및 참조 픽처 리스트 1(RefPicList1)에 대응하는 것으로 이해될 수 있다.
또한, 본 출원의 이 실시예에서 초기 순방향 참조 블록의 위치는 순방향 참조 픽처에서 참조 블록의 위치이고 현재 블록의 위치를 초기 MV로 표현되는 오프셋에 가산함으로써 획득됨에 유의해야 한다. 본 출원의 이 실시예에서 초기 역방향 참조 블록의 위치는 역방향 참조 픽처에서 참조 블록의 위치이고 현재 블록의 위치를 초기 MV로 표현되는 오프셋에 가산함으로써 획득된다.
본 출원의 이 실시예에서 이 방법은 픽처 예측 장치에 의해 수행될 수 있음을 이해해야 한다. 예를 들어, 이 방법은 비디오 인코더, 비디오 디코더, 또는 비디오 코딩 기능을 갖는 전자 장치에 의해 수행될 수 있다. 예를 들어, 이 방법은 비디오 인코더의 인터 예측 유닛 또는 비디오 디코더의 움직임 보상 유닛에 의해 구체적으로 수행될 수 있다.
제 1 측면을 참조하면, 제 1 측면의 일부 구현예에서, 제 1 위치 오프셋과 제 2 위치 오프셋이 미러 관계라는 것은 제 1 위치 오프셋 값이 제 2 위치 오프셋 값과 동일하다는 것으로 이해할 수 있다. 예를 들어, 제 1 위치 오프셋의 방향(또한 벡터 방향으로 지칭됨)은 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 크기 값은 제 2 위치 오프셋의 크기 값과 동일하다.
일 예에서, 제 1 위치 오프셋은 제 1 수평 컴포넌트 오프셋 및 제 1 수직 컴포넌트 오프셋을 포함하고, 제 2 위치 오프셋은 제 2 수평 컴포넌트 오프셋 및 제 2 수직 컴포넌트 오프셋을 포함한다. 제 1 수평 컴포넌트 오프셋의 방향은 제 2 수평 컴포넌트 오프셋의 방향과 반대이고, 제 1 수평 컴포넌트 오프셋의 크기 값은 제 2 수평 컴포넌트 오프셋의 크기 값과 동일하다. 제 1 수직 컴포넌트 오프셋의 방향은 제 2 수직 컴포넌트 오프셋의 방향과 반대이고, 제 1 수직 컴포넌트 오프셋의 크기 값은 제 2 수직 컴포넌트 오프셋의 크기 값과 동일하다.
다른 예에서, 제 1 위치 오프셋 및 제 2 위치 오프셋은 모두 0이다.
제 1 측면을 참조하면, 제 1 측면의 일부 구현예에서, 이 방법은 현재 픽처 블록의 업데이트된 움직임 정보를 획득하는 것을 더 포함하며, 업데이트된 움직임 정보는 업데이트된 순방향 움직임 벡터 및 업데이트된 역방향 움직임 벡터를 포함하고, 업데이트된 순방향 움직임 벡터는 타겟 순방향 참조 블록의 위치를 가리키고, 업데이트된 역방향 움직임 벡터는 타겟 역방향 참조 블록의 위치를 가리킨다.
다른 예에서, 현재 픽처 블록의 업데이트된 움직임 정보는 타겟 순방향 참조 블록의 위치, 타겟 역방향 참조 블록의 위치 및 현재 픽처 블록의 위치에 근거하여 획득되거나, 또는 참조 블록의 하나의 쌍의 결정된 위치에 대응하는 제 1 위치 오프셋 및 제 2 위치 오프셋에 근거하여 획득된다.
본 출원의 이 실시예에서 현재 픽처 블록의 재정밀화된 움직임 정보가 획득될 수 있다는 것을 알 수 있다. 이것은 현재 픽처 블록의 움직임 정보의 정확성을 향상시키고, 또한 다른 픽처 블록의 예측을 용이하게 하며, 예를 들어 다른 픽처 블록의 움직임 정보의 예측 정확성을 향상시킨다.
제 1 측면을 참조하면, 제 1 측면의 일부 구현예에서, N개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치 및 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이거나, 또는
N개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치 및 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이다.
참조 블록의 N개의 쌍의 위치는 쌍을 이루는 초기 순방향 및 역방향 참조 블록의 위치 및 쌍을 이루는 후보 순방향 및 역방향 참조 블록의 위치를 포함한다는 것에 유의해야 한다. 순방향 참조 픽처에서 초기 순방향 참조 블록의 위치에 대한 후보 순방향 참조 블록의 위치의 오프셋은 역방향 참조 픽처에서 초기 역방향 참조 블록의 위치에 대한 후보 역방향 참조 블록의 위치의 오프셋과 미러 관계이다.
제 1 측면을 참조하면, 제 1 측면의 일부 구현예에서, 초기 움직임 정보는 순방향 예측 움직임 정보 및 역방향 예측 움직임 정보를 포함하고,
초기 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것은,
순방향 예측 움직임 정보 및 현재 픽처 블록의 위치에 근거하여, 순방향 참조 픽처에서 N개의 순방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록의 위치는 초기 순방향 참조 블록의 위치 및 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리인 것과,
역방향 예측 움직임 정보 및 현재 픽처 블록의 위치에 근거하여, 역방향 참조 픽처에서 N개의 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 역방향 참조 블록의 위치는 초기 역방향 참조 블록의 위치 및 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리인 것을 포함한다.
제 1 측면을 참조하면, 제 1 측면의 일부 구현예에서, 초기 움직임 정보는 순방향 예측 방향의 제 1 움직임 벡터와 제 1 참조 픽처 인덱스, 및 역방향 예측 방향의 제 2 움직임 벡터와 제 2 참조 픽처 인덱스를 포함하고,
초기 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것은,
제 1 움직임 벡터 및 현재 픽처 블록의 위치에 근거하여, 제 1 참조 픽처 인덱스에 대응하는 순방향 참조 픽처에서의 현재 픽처 블록의 초기 순방향 참조 블록의 위치를 결정하는 것과, 초기 순방향 참조 블록의 위치를 제 1 탐색 개시 포인트로서 사용하는 것과, 순방향 참조 픽처에서 (N-1)개의 후보 순방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록의 위치는 초기 순방향 참조 블록의 위치와 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하는 것과,
제 2 움직임 벡터 및 현재 픽처 블록의 위치에 근거하여, 제 2 참조 픽처 인덱스에 대응하는 역방향 참조 픽처에서의 현재 픽처 블록의 초기 역방향 참조 블록의 위치를 결정하는 것과, 초기 역방향 참조 블록의 위치를 제 2 탐색 개시 포인트로서 사용하는 것과, 역방향 참조 픽처에서 (N-1)개의 후보 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 역방향 참조 블록의 위치는 초기 역방향 참조 블록의 위치와 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하는 것을 포함한다.
제 1 측면을 참조하면, 제 1 측면의 일부 구현예에서, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것은,
참조 블록의 M개의 쌍의 위치로부터 최소 매칭 에러를 갖는 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것, 또는
참조 블록의 M개의 쌍의 위치로부터 매칭 에러 임계치 이하의 매칭 에러를 갖는 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것을 포함하고, M은 N 이하이다.
일 예에서, 매칭 비용 기준은 매칭 비용 최소화 기준이다. 예를 들어, 참조 블록의 M개의 쌍의 위치에 대해, 순방향 참조 블록의 화소 값과 역방향 참조 블록의 화소 값 사이의 차이는 참조 블록의 각 쌍에 대해 계산되고, 참조 블록의 M개의 쌍의 위치로부터, 화소 값이 최소 차이를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 순방향 타겟 참조 블록의 위치 및 현재 픽처 블록의 역방향 타겟 참조 블록의 위치로 결정된다.
다른 예에서, 매칭 비용 기준은 매칭 비용 최소화 및 조기 종료 기준이다. 예를 들어, 참조 블록의 n번째 쌍(하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 위치에서, 순방향 참조 블록의 화소 값과 역방향 참조 블록의 화소 값 사이의 차이가 계산되고, n은 1 이상 N 이하의 정수이고, 화소 값 차이가 매칭 에러 임계치 이하일 때, 참조 블록의 n번째 쌍(하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 위치는 현재 픽처 블록의 순방향 타겟 참조 블록의 위치 및 현재 픽처 블록의 역방향 타겟 참조 블록의 위치로 결정된다.
제 1 측면을 참조하면, 제 1 측면의 일부 구현예에서, 이 방법은 현재 픽처 블록을 코딩하는데 사용되고, 현재 픽처 블록의 초기 움직임 정보를 획득하는 것은, 현재 픽처 블록의 후보 움직임 정보 리스트로부터 초기 움직임 정보를 획득하는 것을 포함하거나, 또는
이 방법은 현재 픽처 블록을 디코딩하는데 사용되고, 현재 픽처 블록의 초기 움직임 정보를 획득하기 전에, 이 방법은 현재 픽처 블록의 비트스트림으로부터 표시 정보를 획득하는 것을 더 포함하고, 표시 정보는 현재 픽처 블록의 초기 움직임 정보를 표시하는데 사용된다.
본 출원의 이 실시예에서 픽처 예측 방법은 병합 예측 모드 및/또는 AMVP 모드에 적용 가능할뿐만 아니라 공간 참조 블록, 시간 참조 블록 및/또는 시점 간(inter-view) 참조 블록이 현재 픽처 블록의 움직임 정보를 예측하는데 사용되는 다른 모드에도 적용 가능하다. 이것은 코딩 성능을 향상시킨다.
본 출원의 제 2 측면은, 현재 픽처 블록의 초기 움직임 정보를 획득하는 것과, 초기 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수인 것과, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것으로서, 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고, 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 시간 도메인 거리에 근거한 비례 관계이고, 제 1 위치 오프셋은 초기 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고, M은 1 이상의 정수이고, M은 N 이하인 것과, 타겟 순방향 참조 블록의 화소 값과 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하는 것을 포함하는 픽처 예측 방법을 제공한다.
본 출원의 이 실시예에서, 초기 순방향 참조 블록의 위치에 대한 초기 순방향 참조 블록의 위치의 오프셋은 0이고, 초기 역방향 참조 블록의 위치에 대한 초기 역방향 참조 블록의 위치의 오프셋은 0이라는 것에 특히 유의해야 한다. 오프셋 0 및 오프셋 0은 또한 미러 관계를 충족하거나 또는 시간 도메인 거리에 근거한 비례 관계를 충족한다. 다시 말해서, 참조 블록의 (N-1)개의 쌍의 위치의 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 시간 도메인 거리에 근거한 비례 관계 또는 미러 관계이다. 여기서, 참조 블록의 (N-1)개의 쌍의 위치는 초기 순방향 참조 블록의 위치 또는 초기 역방향 참조 블록의 위치를 포함하지 않는다.
본 출원의 이 실시예에서, 순방향 참조 픽처에서 N개의 순방향 참조 블록의 위치 및 역방향 참조 픽처에서 N개의 역방향 참조 블록의 위치가 참조 블록의 N개의 쌍의 위치를 형성한다는 것을 알 수 있다. 참조 블록의 N개의 쌍의 위치의 참조 블록의 각 쌍의 위치에서, 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 시간 도메인 거리에 근거한 비례 관계(또한 시간 도메인 거리에 근거한 미러 관계로 지칭됨)가 존재한다. 이를 기반으로, 참조 블록의 N개의 쌍의 위치로부터 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로 결정되고, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이 실시예에서 이 방법은 템플릿 매칭 블록을 사전 계산하는 프로세스 및 템플릿 매칭 블록을 사용하여 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확성을 향상시키고 픽처 예측 복잡성을 감소시킨다.
제 2 측면을 참조하면, 제 2 측면의 일부 구현예에서, 참조 블록의 각 쌍에 대해, 제 1 위치 오프셋과 제 2 위치 오프셋이 시간 도메인 거리에 근거한 비례 관계인 것은,
참조 블록의 각 쌍에 대해, 제 1 위치 오프셋과 제 2 위치 오프셋 사이의 비례 관계는 제 1 시간 도메인 거리와 제 2 시간 도메인 거리 사이의 비례 관계에 근거하여 결정되는 것을 포함하고, 제 1 시간 도메인 거리는 현재 픽처 블록이 속하는 현재 픽처와 순방향 참조 픽처 사이의 시간 도메인 거리를 나타내고, 제 2 시간 도메인 거리는 현재 픽처와 역방향 참조 픽처 사이의 시간 도메인 거리를 나타낸다.
제 2 측면을 참조하면, 제 2 측면의 일부 구현예에서, 제 1 위치 오프셋과 제 2 위치 오프셋이 시간 도메인 거리에 근거한 비례 관계인 것은,
제 1 시간 도메인 거리가 제 2 시간 도메인 거리와 동일한 경우, 제 1 위치 오프셋의 방향은 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 크기 값은 제 2 위치 오프셋의 크기 값과 동일한 것이거나, 또는
제 1 시간 도메인 거리가 제 2 시간 도메인 거리와 다른 경우, 제 1 위치 오프셋의 방향은 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 크기 값과 제 2 위치 오프셋의 크기 값 사이의 비례 관계는 제 1 시간 도메인 거리와 제 2 시간 도메인 거리 사이의 비례 관계에 근거하는 것을 포함하고,
제 1 시간 도메인 거리는 현재 픽처 블록이 속하는 현재 픽처와 순방향 참조 픽처 사이의 시간 도메인 거리를 나타내고, 제 2 시간 도메인 거리는 현재 픽처와 역방향 참조 픽처 사이의 시간 도메인 거리를 나타낸다.
제 2 측면을 참조하면, 제 2 측면의 일부 구현예에서, 이 방법은 현재 픽처 블록의 업데이트된 움직임 정보를 획득하는 것을 더 포함하고, 업데이트된 움직임 정보는 업데이트된 순방향 움직임 벡터 및 업데이트된 역방향 움직임 벡터를 포함하고, 업데이트된 순방향 움직임 벡터는 타겟 순방향 참조 블록의 위치를 가리키고, 업데이트된 역방향 움직임 벡터는 타겟 역방향 참조 블록의 위치를 가리킨다.
본 출원의 이 실시예에서 현재 픽처 블록의 재정밀화된 움직임 정보가 획득될 수 있음을 알 수 있다. 이것은 현재 픽처 블록의 움직임 정보의 정확성을 향상시키고, 다른 픽처 블록의 예측을 용이하게 하며, 예를 들어 다른 픽처 블록의 움직임 정보의 예측 정확성을 향상시킨다.
제 2 측면을 참조하면, 제 2 측면의 일부 구현예에서, N개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치 및 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이거나, 또는
N개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치 및 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이다.
제 2 측면을 참조하면, 제 2 측면의 일부 구현예에서, 참조 블록의 N개의 쌍의 위치는 쌍을 이루는 초기 순방향 및 역방향 참조 블록의 위치 및 쌍을 이루는 후보 순방향 및 역방향 참조 블록의 위치를 포함한다. 시간 도메인 거리에 근거한 비례 관계는 순방향 참조 픽처에서 초기 순방향 참조 블록의 위치에 대한 후보 순방향 참조 블록의 위치의 오프셋과 역방향 참조 픽처에서 초기 역방향 참조 블록의 위치에 대한 후보 역방향 참조 블록의 위치의 오프셋 사이에 존재한다.
제 2 측면을 참조하면, 제 2 측면의 일부 구현예에서, 초기 움직임 정보는 순방향 예측 움직임 정보 및 역방향 예측 움직임 정보를 포함하고,
초기 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것은,
순방향 예측 움직임 정보 및 현재 픽처 블록의 위치에 근거하여, 순방향 참조 픽처에서 N개의 순방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록의 위치는 초기 순방향 참조 블록의 위치 및 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리인 것과,
역방향 예측 움직임 정보 및 현재 픽처 블록의 위치에 근거하여, 역방향 참조 픽처에서 N개의 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 역방향 참조 블록의 위치는 초기 역방향 참조 블록의 위치 및 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리인 것을 포함한다.
제 2 측면을 참조하면, 제 2 측면의 일부 구현예에서, 초기 움직임 정보는 순방향 예측 방향의 제 1 움직임 벡터와 제 1 참조 픽처 인덱스, 및 역방향 예측 방향의 제 2 움직임 벡터와 제 2 참조 픽처 인덱스를 포함하고,
초기 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것은,
제 1 움직임 벡터 및 현재 픽처 블록의 위치에 근거하여, 제 1 참조 픽처 인덱스에 대응하는 순방향 참조 픽처에서의 현재 픽처 블록의 초기 순방향 참조 블록의 위치를 결정하는 것과, 초기 순방향 참조 블록의 위치를 제 1 탐색 개시 포인트로서 사용하는 것과, 순방향 참조 픽처에서 (N-1)개의 후보 순방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록의 위치는 초기 순방향 참조 블록의 위치 및 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하는 것과,
제 2 움직임 벡터 및 현재 픽처 블록의 위치에 근거하여, 제 2 참조 픽처 인덱스에 대응하는 역방향 참조 픽처에서의 현재 픽처 블록의 초기 역방향 참조 블록의 위치를 결정하는 것과, 초기 역방향 참조 블록의 위치를 제 2 탐색 개시 포인트로서 사용하는 것과, 역방향 참조 픽처에서 (N-1)개의 후보 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 역방향 참조 블록의 위치는 초기 역방향 참조 블록의 위치 및 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하는 것을 포함한다.
제 2 측면을 참조하면, 제 2 측면의 일부 구현예에서, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것은,
참조 블록의 M개의 쌍의 위치로부터 최소 매칭 에러를 갖는 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것, 또는
참조 블록의 M개의 쌍의 위치로부터 매칭 에러 임계치 이하의 매칭 에러를 갖는 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것을 포함하고, M은 N 이하이다.
일 예에서, 매칭 비용 기준은 매칭 비용 최소화 기준이다. 예를 들어, 참조 블록의 M개의 쌍의 위치에서, 순방향 참조 블록의 화소 값과 역방향 참조 블록의 화소 값 사이의 차이는 참조 블록의 각 쌍에 대해 계산되고, 참조 블록의 M개의 쌍의 위치로부터, 화소 값이 최소 차이를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 순방향 타겟 참조 블록의 위치 및 현재 픽처 블록의 역방향 타겟 참조 블록의 위치로 결정된다.
다른 예에서, 매칭 비용 기준은 매칭 비용 최소화 및 조기 종료 기준이다. 예를 들어, 참조 블록의 n번째 쌍(하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 위치에서, 순방향 참조 블록의 화소 값과 역방향 참조 블록의 화소 값 사이의 차이가 계산되고, n은 1 이상 N 이하의 정수이고, 화소 값 차이가 매칭 에러 임계치 이하일 때, 참조 블록의 n번째 쌍(하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 위치는 현재 픽처 블록의 순방향 타겟 참조 블록의 위치 및 현재 픽처 블록의 역방향 타겟 참조 블록의 위치로 결정된다.
제 2 측면을 참조하면, 제 2 측면의 일부 구현예에서, 이 방법은 현재 픽처 블록을 코딩하는데 사용되고, 현재 픽처 블록의 초기 움직임 정보를 획득하는 것은, 현재 픽처 블록의 후보 움직임 정보 리스트로부터 초기 움직임 정보를 획득하는 것을 포함하거나, 또는
이 방법은 현재 픽처 블록을 디코딩하는데 사용되고, 현재 픽처 블록의 초기 움직임 정보를 획득하기 전에, 이 방법은 현재 픽처 블록의 비트스트림으로부터 표시 정보를 획득하는 것을 더 포함하고, 표시 정보는 현재 픽처 블록의 초기 움직임 정보를 표시하는데 사용된다.
본 출원의 제 3 측면은, 현재 픽처 블록의 i번째 라운드 움직임 정보를 획득하는 것과, i번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수인 것과, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것으로서, 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고, 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 미러 관계이고, 제 1 위치 오프셋은 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고, M은 1 이상의 정수이고, M은 N 이하인 것과, j번째 라운드 타겟 순방향 참조 블록의 화소 값과 j번째 라운드 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하는 것으로서, j는 i 이상이고, i와 j는 모두 1 이상의 정수인 것을 포함하는 픽처 예측 방법을 제공한다.
본 출원의 이 실시예에서, 초기 순방향 참조 블록의 위치에 대한 초기 순방향 참조 블록의 위치의 오프셋은 0이고, 초기 역방향 참조 블록의 위치에 대한 초기 역방향 참조 블록의 위치의 오프셋은 0이라는 것에 특히 유의해야 한다. 오프셋 0 및 오프셋 0은 또한 미러 관계를 충족한다.
본 출원의 이 실시예에서, 순방향 참조 픽처에서 N개의 순방향 참조 블록의 위치 및 역방향 참조 픽처에서 N개의 역방향 참조 블록의 위치가 참조 블록의 N개의 쌍의 위치를 형성한다는 것을 알 수 있다. 참조 블록의 N개의 쌍의 위치의 참조 블록의 각 쌍의 위치에서, 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 미러 관계가 존재한다. 이를 기반으로, 참조 블록의 N개의 쌍의 위치로부터 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로 결정되고, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이 실시예에서 이 방법은 템플릿 매칭 블록을 사전 계산하는 프로세스 및 템플릿 매칭 블록을 사용하여 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다. 또한, 본 출원의 이 실시예에서, 반복적 방법을 사용함으로써 움직임 벡터(MV)를 재정밀화하는 정확성이 추가로 향상되어 코딩 성능을 추가로 향상시킬 수 있다.
제 3 측면을 참조하면, 제 3 측면의 일부 구현예에서, i=1인 경우, i번째 라운드 움직임 정보는 현재 픽처 블록의 초기 움직임 정보이고, 이에 따라, N개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치 및 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이거나, 또는 N개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치 및 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이다.
i>1인 경우, i번째 라운드 움직임 정보는 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치를 가리키는 순방향 움직임 벡터 및 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치를 가리키는 역방향 움직임 벡터를 포함하고, 이에 따라, N개의 순방향 참조 블록의 위치는 하나의 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치 및 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하고, (i-1)번째 라운드 타겟 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이거나, 또는 N개의 역방향 참조 블록의 위치는 하나의 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치 및 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하고, (i-1)번째 라운드 타겟 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이다.
이 방법이 현재 픽처 블록을 코딩하는데 사용되는 경우, 현재 픽처 블록의 초기 움직임 정보는, 현재 픽처 블록의 후보 움직임 정보 리스트로부터 초기 움직임 정보를 결정하는 것을 사용함으로써 획득되거나, 또는 이 방법이 현재 픽처 블록을 디코딩하는데 사용되는 경우, 현재 픽처 블록의 초기 움직임 정보는, 현재 픽처 블록의 비트스트림으로부터 현재 픽처 블록의 초기 움직임 정보를 표시하는데 사용되는 표시 정보를 획득하는 것을 사용함으로써 획득된다는 점에 유의해야 한다.
제 3 측면을 참조하면, 제 3 측면의 일부 구현예에서, j번째 라운드 타겟 순방향 참조 블록의 화소 값 및 j번째 라운드 타겟 역방향 참조 블록의 화소 값에 근거하여 픽처 블록의 화소 값의 예측된 값을 획득하는 것으로서, j는 i 이상이고, i와 j는 모두 1 이상의 정수인 것은,
반복 종료 조건이 충족될 때, j번째 라운드 타겟 순방향 참조 블록의 화소 값 및 j번째 라운드 타겟 역방향 참조 블록의 화소 값에 근거하여 픽처 블록의 화소 값의 예측된 값을 획득하는 것으로서, j는 i 이상이고, i와 j는 모두 1 이상의 정수인 것을 포함한다.
제 3 측면을 참조하면, 제 3 측면의 일부 구현예에서, 제 1 위치 오프셋과 제 2 위치 오프셋이 미러 관계인 것은, 제 1 위치 오프셋의 방향이 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 크기 값이 제 2 위치 오프셋의 크기 값과 동일한 것을 포함한다.
제 3 측면을 참조하면, 제 3 측면의 일부 구현예에서, i번째 라운드 움직임 정보는 순방향 움직임 벡터, 순방향 참조 픽처 인덱스, 역방향 움직임 벡터 및 역방향 참조 픽처 인덱스를 포함하고,
i번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것은,
순방향 움직임 벡터 및 현재 픽처 블록의 위치에 근거하여, 순방향 참조 픽처 인덱스에 대응하는 순방향 참조 픽처에서의 현재 픽처 블록의 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치를 결정하는 것과, (i-1)번째 라운드 타겟 순방향 참조 블록의 위치를 if번째 탐색 개시 포인트로서 사용하는 것과, 순방향 참조 픽처에서 (N-1)개의 후보 순방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록의 위치는 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치와 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하는 것과,
역방향 움직임 벡터 및 현재 픽처 블록의 위치에 근거하여, 역방향 참조 픽처 인덱스에 대응하는 역방향 참조 픽처에서의 현재 픽처 블록의 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치를 결정하는 것과, (i-1)번째 라운드 타겟 역방향 참조 블록의 위치를 ib번째 탐색 개시 포인트로서 사용하는 것과, 역방향 참조 픽처에서 (N-1)개의 후보 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 역방향 참조 블록의 위치는 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치와 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하는 것을 포함한다.
제 3 측면을 참조하면, 제 3 측면의 일부 구현예에서, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것은,
참조 블록의 M개의 쌍의 위치로부터 최소 매칭 에러를 갖는 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것, 또는
참조 블록의 M개의 쌍의 위치로부터 매칭 에러 임계치 이하의 매칭 에러를 갖는 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것을 포함하고, M은 N 이하이다.
본 출원의 제 4 측면은, 현재 픽처 블록의 i번째 라운드 움직임 정보를 획득하는 것과, i번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수인 것과, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것으로서, 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고, 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 시간 도메인 거리에 근거한 비례 관계이고, 제 1 위치 오프셋은 순방향 참조 픽처에서 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 역방향 참조 픽처에서 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고, M은 1 이상의 정수이고, M은 N 이하인 것과, j번째 라운드 타겟 순방향 참조 블록의 화소 값과 j번째 라운드 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하는 것으로서, j는 i 이상이고, i와 j는 모두 1 이상의 정수인 것을 포함하는 픽처 예측 방법을 제공한다.
본 출원의 이 실시예에서, 초기 순방향 참조 블록의 위치에 대한 초기 순방향 참조 블록의 위치의 오프셋은 0이고, 초기 역방향 참조 블록의 위치에 대한 초기 역방향 참조 블록의 위치의 오프셋은 0이라는 것에 특히 유의해야 한다. 오프셋 0 및 오프셋 0은 또한 미러 관계를 충족하거나 또는 시간 도메인 거리에 근거한 비례 관계를 충족한다. 다시 말해서, 참조 블록의 (N-1)개의 쌍의 위치의 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 시간 도메인 거리에 근거한 비례 관계 또는 미러 관계이다. 여기서, 참조 블록의 (N-1)개의 쌍의 위치는 초기 순방향 참조 블록의 위치 또는 초기 역방향 참조 블록의 위치를 포함하지 않는다.
본 출원의 이 실시예에서, 순방향 참조 픽처에서 N개의 순방향 참조 블록의 위치 및 역방향 참조 픽처에서 N개의 역방향 참조 블록의 위치가 참조 블록의 N개의 쌍의 위치를 형성한다는 것을 알 수 있다. 참조 블록의 N개의 쌍의 위치의 참조 블록의 각 쌍의 위치에서, 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 시간 도메인 거리에 근거한 비례 관계가 존재한다. 이를 기반으로, 참조 블록의 N개의 쌍의 위치로부터 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로 결정되고, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이 실시예에서 이 방법은 템플릿 매칭 블록을 사전 계산하는 프로세스 및 템플릿 매칭 블록을 사용하여 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다. 또한, 본 출원의 이 실시예에서, 반복적 방법을 사용함으로써 움직임 벡터(MV)를 재정밀화하는 정확성이 추가로 향상되어 코딩 성능을 추가로 향상시킬 수 있다.
제 4 측면을 참조하면, 제 4 측면의 일부 구현예에서, i=1인 경우, i번째 라운드 움직임 정보는 현재 픽처 블록의 초기 움직임 정보이거나, 또는 i>1인 경우, i번째 라운드 움직임 정보는 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치를 가리키는 순방향 움직임 벡터 및 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치를 가리키는 역방향 움직임 벡터를 포함한다.
제 4 측면을 참조하면, 제 4 측면의 일부 구현예에서, j번째 라운드 타겟 순방향 참조 블록의 화소 값 및 j번째 라운드 타겟 역방향 참조 블록의 화소 값에 근거하여 픽처 블록의 화소 값의 예측된 값을 획득하는 것으로서, j는 i 이상이고, i와 j는 모두 1 이상의 정수인 것은,
반복 종료 조건이 충족될 때, j번째 라운드 타겟 순방향 참조 블록의 화소 값 및 j번째 라운드 타겟 역방향 참조 블록의 화소 값에 근거하여 픽처 블록의 화소 값의 예측된 값을 획득하는 것으로서, j는 i 이상이고, i와 j는 모두 1 이상의 정수인 것을 포함한다.
제 4 측면을 참조하면, 제 4 측면의 일부 구현예에서, 제 1 위치 오프셋과 제 2 위치 오프셋이 시간 도메인 거리에 근거한 비례 관계인 것은,
제 1 시간 도메인 거리가 제 2 시간 도메인 거리와 동일한 경우, 제 1 위치 오프셋의 방향은 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 크기 값은 제 2 위치 오프셋의 크기 값과 동일한 것이거나, 또는
제 1 시간 도메인 거리가 제 2 시간 도메인 거리와 다른 경우, 제 1 위치 오프셋의 방향은 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 크기 값과 제 2 위치 오프셋의 크기 값 사이의 비례 관계는 제 1 시간 도메인 거리와 제 2 시간 도메인 거리 사이의 비례 관계에 근거하는 것을 포함하고,
제 1 시간 도메인 거리는 현재 픽처 블록이 속하는 현재 픽처와 순방향 참조 픽처 사이의 시간 도메인 거리를 나타내고, 제 2 시간 도메인 거리는 현재 픽처와 역방향 참조 픽처 사이의 시간 도메인 거리를 나타낸다.
제 4 측면을 참조하면, 제 4 측면의 일부 구현예에서, i번째 라운드 움직임 정보는 순방향 움직임 벡터, 순방향 참조 픽처 인덱스, 역방향 움직임 벡터 및 역방향 참조 픽처 인덱스를 포함하고,
i번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것은,
순방향 움직임 벡터 및 상기 현재 픽처 블록의 위치에 근거하여, 순방향 참조 픽처 인덱스에 대응하는 순방향 참조 픽처에서의 현재 픽처 블록의 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치를 결정하는 것과, (i-1)번째 라운드 타겟 순방향 참조 블록의 위치를 if번째 탐색 개시 포인트로서 사용하는 것과, 순방향 참조 픽처에서 (N-1)개의 후보 순방향 참조 블록의 위치를 결정하는 것으로서, N개의 순방향 참조 블록의 위치는 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치와 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하는 것과,
역방향 움직임 벡터 및 현재 픽처 블록의 위치에 근거하여, 역방향 참조 픽처 인덱스에 대응하는 역방향 참조 픽처에서의 현재 픽처 블록의 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치를 결정하는 것과, (i-1)번째 라운드 타겟 역방향 참조 블록의 위치를 ib번째 탐색 개시 포인트로서 사용하는 것과, 역방향 참조 픽처에서 (N-1)개의 후보 역방향 참조 블록의 위치를 결정하는 것으로서, N개의 역방향 참조 블록의 위치는 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치와 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하는 것을 포함한다.
제 4 측면을 참조하면, 제 4 측면의 일부 구현예에서, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것은,
참조 블록의 M개의 쌍의 위치로부터 최소 매칭 에러를 갖는 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것, 또는
참조 블록의 M개의 쌍의 위치로부터 매칭 에러 임계치 이하의 매칭 에러를 갖는 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하는 것을 포함하고, M은 N 이하이다.
본 출원의 제 5 측면은, 제 1 측면의 임의의 방법을 구현하도록 구성된 몇몇 기능 유닛을 포함하는 픽처 예측 장치를 제공한다. 예를 들어, 픽처 예측 장치는, 현재 픽처 블록의 초기 움직임 정보를 획득하도록 구성되는 제 1 획득 유닛과, 초기 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하고, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하도록 구성되되, N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수이고, 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고, 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 미러 관계이고, 제 1 위치 오프셋은 초기 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고, M은 1 이상의 정수이고, M은 N 이하인, 제 1 탐색 유닛과, 타겟 순방향 참조 블록의 화소 값과 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성되는 제 1 예측 유닛을 포함할 수 있다.
다른 애플리케이션의 시나리오에서, 픽처 예측 장치는, 예를 들어 비디오 코딩 장치(비디오 인코더) 또는 비디오 디코딩 장치(비디오 디코더)에 적용된다.
본 출원의 제 6 측면은 제 2 측면의 임의의 방법을 구현하도록 구성된 몇몇 기능 유닛을 포함하는 픽처 예측 장치를 제공한다. 예를 들어, 픽처 예측 장치는, 현재 픽처 블록의 초기 움직임 정보를 획득하도록 구성되는 제 2 획득 유닛과, 초기 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하고, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하도록 구성되되, N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수이고, 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고, 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 시간 도메인 거리에 근거한 비례 관계이고, 제 1 위치 오프셋은 초기 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고, M은 1 이상의 정수이고, M은 N 이하인, 제 2 탐색 유닛과, 타겟 순방향 참조 블록의 화소 값과 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성되는 제 2 예측 유닛을 포함할 수 있다.
다른 애플리케이션의 시나리오에서, 픽처 예측 장치는, 예를 들어 비디오 코딩 장치(비디오 인코더) 또는 비디오 디코딩 장치(비디오 디코더)에 적용된다.
본 출원의 제 7 측면은 제 3 측면의 임의의 방법을 구현하도록 구성된 몇몇 기능 유닛을 포함하는 픽처 예측 장치를 제공한다. 예를 들어, 픽처 예측 장치는, 현재 픽처 블록의 i번째 라운드 움직임 정보를 획득하도록 구성되는 제 3 획득 유닛과, i번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하고, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하도록 구성되되, N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수이고, 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고, 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 미러 관계이고, 제 1 위치 오프셋은 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고, M은 1 이상의 정수이고, M은 N 이하인, 제 3 탐색 유닛과, j번째 라운드 타겟 순방향 참조 블록의 화소 값과 j번째 라운드 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측 값을 획득하도록 구성되되, j는 i 이상이고, i와 j는 모두 1 이상의 정수인, 제 3 획득 유닛을 포함할 수 있다.
다른 애플리케이션의 시나리오에서, 픽처 예측 장치는, 예를 들어 비디오 코딩 장치(비디오 인코더) 또는 비디오 디코딩 장치(비디오 디코더)에 적용된다.
본 출원의 제 8 측면은 제 4 측면의 임의의 방법을 구현하도록 구성된 몇몇 기능 유닛을 포함하는 픽처 예측 장치를 제공한다. 예를 들어, 픽처 예측 장치는, 현재 픽처 블록의 i번째 라운드 움직임 정보를 획득하도록 구성되는 제 4 획득 유닛과, i번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 근거하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하고, 매칭 비용 기준에 근거하여, 참조 블록의 M개의 쌍의 위치로부터 현재 픽처 블록의 i번째 라운드 타겟 순방향 참조 블록의 위치와 현재 픽처 블록의 i번째 라운드 타겟 역방향 참조 블록의 위치인 참조 블록의 하나의 쌍의 위치를 결정하도록 구성되되, N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수이고, 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고, 참조 블록의 각 쌍의 위치에서, 제 1 위치 오프셋과 제 2 위치 오프셋은 시간 도메인 거리에 근거한 비례 관계이고, 제 1 위치 오프셋은 순방향 참조 픽처에서 (i-1)번째 라운드 타겟 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 역방향 참조 픽처에서 (i-1)번째 라운드 타겟 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고, M은 1 이상의 정수이고, M은 N 이하인, 제 4 탐색 유닛과, j번째 라운드 타겟 순방향 참조 블록의 화소 값과 j번째 라운드 타겟 역방향 참조 블록의 화소 값에 근거하여 현재 픽처 블록의 화소 값의 예측 값을 획득하도록 구성되되, j는 i 이상이고, i와 j는 모두 1 이상의 정수인, 제 4 획득 유닛을 포함할 수 있다.
다른 애플리케이션의 시나리오에서, 픽처 예측 장치는, 예를 들어 비디오 코딩 장치(비디오 인코더) 또는 비디오 디코딩 장치(비디오 디코더)에 적용된다.
본 출원의 제 9 측면은 픽처 예측 장치를 제공하고, 이 장치는 프로세서 및 프로세서에 연결된 메모리를 포함한다. 프로세서는 제 1 측면, 제 2 측면, 제 3 측면, 제 4 측면 또는 전술한 측면의 구현예의 방법을 수행하도록 구성된다.
본 출원의 제 10 측면은 비디오 인코더를 제공한다. 비디오 인코더는 픽처 블록을 코딩하도록 구성되며, 제 5 측면, 제 6 측면, 제 7 측면 또는 제 8 측면에 따른 픽처 예측 장치를 포함하고, 예측을 통해 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성되는 인터 예측 모듈과, 픽처 블록의 초기 움직임 정보를 나타내는데 사용되는 표시 정보를 비트스트림으로 코딩하도록 구성되는 엔트로피 코딩 모듈과, 픽처 블록의 화소 값의 예측된 값에 근거하여 픽처 블록을 재구성하도록 구성되는 재구성 모듈을 포함한다.
본 출원의 제 11 측면은 비디오 디코더를 제공한다. 비디오 디코더는 픽처 블록을 획득하기 위해 비트스트림을 디코딩하도록 구성되고, 비트 스트림을 디코딩하여, 디코딩을 통해 현재 획득된 픽처 블록의 초기 움직임 정보를 표시하는데 사용되는 표시 정보를 획득하도록 구성되는 엔트로피 디코딩 모듈과, 제 5 측면, 제 6 측면, 제 7 측면 또는 제 8 측면에 따른 픽처 예측 장치를 포함하고, 예측을 통해 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성되는 인터 예측 모듈과, 픽처 블록의 화소 값의 예측된 값에 근거하여 픽처 블록을 재구성하도록 구성되는 재구성 모듈을 포함한다.
본 출원의 제 12 측면은 비휘발성 저장 매체 및 프로세서를 포함하는 비디오 코딩 장치를 제공한다. 비휘발성 저장 매체는 실행 가능한 프로그램을 저장한다. 프로세서와 비휘발성 저장 매체는 서로 연결되고, 프로세서는 제 1 측면, 제 2 측면, 제 3 측면 또는 제 4 측면의 방법 또는 제 1 측면, 제 2 측면, 제 3 측면 또는 제 4 측면의 구현예를 구현하는 실행 가능한 프로그램을 실행한다.
본 출원의 제 13 측면은 비휘발성 저장 매체 및 프로세서를 포함하는 비디오 디코딩 장치를 제공한다. 비휘발성 저장 매체는 실행 가능한 프로그램을 저장한다. 프로세서와 비휘발성 저장 매체는 서로 연결되고, 프로세서는 제 1 측면, 제 2 측면, 제 3 측면 또는 제 4 측면의 방법, 또는 제 1 측면, 제 2 측면, 제 3 측면 또는 제 4 측면의 구현예를 구현하는 실행 가능한 프로그램을 실행한다.
본 출원의 제 14 측면은 컴퓨터 판독 가능 저장 매체를 제공한다. 컴퓨터 판독 가능 저장 매체는 명령어를 저장한다. 명령어가 컴퓨터에서 실행될 때, 컴퓨터는 제 1 측면, 제 2 측면, 제 3 측면 또는 제 4 측면의 방법, 또는 제 1 측면, 제 2 측면, 제 3 측면 또는 제 4 측면의 구현예를 수행할 수 있다.
본 출원의 제 15 측면은 명령어를 포함하는 컴퓨터 프로그램 제품을 제공한다. 명령어가 컴퓨터에서 실행될 때, 컴퓨터는 제 1 측면, 제 2 측면, 제 3 측면 또는 제 4 측면의 방법, 또는 제 1 측면, 제 2 측면, 제 3 측면 또는 제 4 측면의 구현예를 수행할 수 있다.
본 출원의 제 16 측면은 제 10 측면의 비디오 인코더, 제 11 측면의 비디오 디코더, 또는 제 5 측면, 제 6 측면, 제 7 측면 또는 제 8 측면의 픽처 예측 장치를 포함하는 전자 장치를 제공한다.
이러한 측면 및 상응하는 구현 가능한 설계 방식에서 달성되는 유리한 효과는 유사하므로 반복되지 않는다는 것을 이해해야 한다.
도 1은 본 출원의 실시예에 따른 비디오 코딩 시스템의 개략적인 블록도이다.
도 2a는 본 출원의 실시예에 따른 비디오 인코더의 개략적인 블록도이다.
도 2b는 본 출원의 실시예에 따른 비디오 디코더의 개략적인 블록도이다.
도 3은 본 출원의 실시예에 따른 픽처 예측 방법의 개략적인 흐름도이다.
도 4는 인터 예측의 병합 모드에서 인코더 측에 의해 초기 움직임 정보를 획득하는 것의 개략도이다.
도 5는 인터 예측의 병합 모드에서 디코더 측에 의해 초기 움직임 정보를 획득하는 것의 개략도이다.
도 6은 현재 픽처 블록의 초기 참조 블록의 개략도이다.
도 7은 정수 화소 위치에서의 화소 및 분수 픽셀 위치에서의 화소의 개략도이다.
도 8은 탐색 개시 포인트의 개략도이다.
도 9는 본 출원의 실시예에 따른 미러 관계인 제 1 위치 오프셋 및 제 2 위치 오프셋의 개략적인 블록도이다.
도 10은 본 출원의 실시예에 따른 다른 픽처 예측 방법의 개략적인 흐름도이다.
도 11은 본 출원의 실시예에 따른 다른 픽처 예측 방법의 개략적인 흐름도이다.
도 12는 본 출원의 실시예에 따른 다른 픽처 예측 방법의 개략적인 흐름도이다.
도 13은 본 출원의 실시예에 따른 시간 도메인 거리에 근거한 비례 관계인 제 1 위치 오프셋 및 제 2 위치 오프셋의 개략적인 블록도이다.
도 14는 본 출원의 실시예에 따른 다른 픽처 예측 방법(1400)의 개략적인 흐름도이다.
도 15는 본 출원의 실시예에 따른 다른 픽처 예측 방법의 개략적인 흐름도이다.
도 16은 본 출원의 실시예에 따른 다른 픽처 예측 방법(1600)의 개략적인 흐름도이다.
도 17은 본 출원의 실시예에 따른 다른 픽처 예측 방법의 개략적인 흐름도이다.
도 18은 본 출원의 실시예에 따른 픽처 예측 장치의 개략적인 블록도이다.
도 19는 본 출원의 실시예에 따른 다른 픽처 예측 장치의 개략적인 블록도이다.
도 20은 본 출원의 실시예에 따른 다른 픽처 예측 장치의 개략적인 블록도이다.
도 21은 본 출원의 실시예에 따른 다른 픽처 예측 장치의 개략적인 블록도이다.
도 22는 본 출원의 실시예에 따른 코딩 장치 또는 디코딩 장치의 개략적인 블록도이다.
이하에서는 본 출원의 실시예의 첨부 도면을 참조하여 본 출원의 실시예의 기술적 해결책을 명확하게 설명한다.
도 1은 본 출원의 실시예에 따른 비디오 코딩 시스템의 개략적인 블록도이다. 이 시스템에서, 코딩 성능을 더 향상시키기 위해, 비디오 인코더(20) 및 비디오 디코더(30)는 본 출원에서 제공되는 다양한 예시적인 픽처 예측 방법에 근거하여 픽처 블록의 화소 값의 예측된 값을 예측하고, 현재 코딩되거나 또는 디코딩되는 픽처 블록의 움직임 벡터와 같은 움직임 정보를 재정밀화하도록 구성된다. 도 1에 도시된 것과 같이, 이 시스템은 소스 장치(12) 및 목적지 장치(14)를 포함한다. 소스 장치(12)는 목적지 장치(14)에 의해 디코딩될 코딩된 비디오 데이터를 생성한다. 소스 장치(12) 및 목적지 장치(14)는 데스크탑 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, "스마트" 폰과 같은 전화 핸드셋, "스마트" 터치 패드, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 전송 장치 등을 포함하는 넓은 범위의 장치 중 임의의 하나를 포함할 수 있다.
목적지 장치(14)는 링크(16)를 사용하여 디코딩될 코딩된 비디오 데이터를 수신할 수 있다. 링크(16)는 코딩된 비디오 데이터를 소스 장치(12)로부터 목적지 장치(14)로 이동시킬 수 있는 임의의 타입의 매체 또는 장치를 포함할 수 있다. 실현 가능한 구현예에서, 링크(16)는 소스 장치(12)가 코딩된 비디오 데이터를 목적지 장치(14)에 실시간으로 직접 전송할 수 있도록 하는 통신 매체를 포함할 수 있다. 코딩된 비디오 데이터를 변조하고 변조된 비디오 데이터를 목적지 장치(14)로 전송하기 위해 통신 표준(예를 들어, 무선 통신 프로토콜)을 따를 수 있다. 통신 매체는 임의의 무선 또는 유선 통신 매체, 예를 들어 무선 스펙트럼 또는 하나 이상의 물리적 전송 라인을 포함할 수 있다. 통신 매체는 패킷 기반 네트워크(예를 들어, 근거리 통신망, 광역 통신망 또는 인터넷의 글로벌 네트워크)의 일부를 형성할 수 있다. 통신 매체는 라우터, 스위치, 기지국, 또는 소스 장치(12)로부터 목적지 장치(14)로의 통신을 용이하게 하도록 구성될 수 있는 임의의 다른 장치를 포함할 수 있다.
이와 달리, 코딩된 데이터는 출력 인터페이스(22)로부터 저장 장치(24)로 출력될 수 있다. 유사하게, 코딩된 데이터는 입력 인터페이스를 통해 저장 장치(24)로부터 액세스될 수 있다. 저장 장치(24)는 복수의 분산 또는 로컬 데이터 저장 매체, 예를 들어 하드 디스크 드라이브, 블루레이 디스크, DVD, CD-ROM, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 코딩된 비디오 데이터를 저장하는데 사용되는 임의의 다른 적절한 디지털 저장 매체 중 임의의 것을 포함할 수 있다. 다른 실현 가능한 구현예에서, 저장 장치(24)는 소스 장치(12)에 의해 생성된 코딩된 비디오 데이터를 저장할 수 있는 파일 서버 또는 다른 중간 저장 장치에 대응할 수 있다. 목적지 장치(14)는 스트리밍 전송 또는 다운로딩을 통해 저장 장치(24)로부터 저장된 비디오 데이터에 액세스할 수 있다. 파일 서버는 코딩된 비디오 데이터를 저장하고 코딩된 비디오 데이터를 목적지 장치(14)로 전송할 수 있는 임의의 타입의 서버일 수 있다. 실현 가능한 구현예에서, 파일 서버는 웹 사이트 서버, 파일 전송 프로토콜 서버, 네트워크에 연결된 저장 장치 또는 로컬 디스크 드라이브를 포함한다. 목적지 장치(14)는 인터넷 접속을 포함하는 임의의 표준 데이터 접속을 통해 코딩된 비디오 데이터에 액세스할 수 있다. 데이터 접속은 무선 채널(예를 들어, Wi-Fi 접속), 유선 접속(예를 들어, 케이블 모뎀) 또는 파일 서버에 저장된 코딩된 비디오 데이터에 액세스하는데 적용 가능한 이들의 조합을 포함할 수 있다. 저장 장치(24)로부터 코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로딩 전송 또는 이들의 조합일 수 있다.
본 출원의 기술은 반드시 무선 애플리케이션 또는 설정에 한정되는 것은 아니다. 이 기술은 비디오 디코딩에 적용되어, 예를 들어 무선 텔레비전 방송, 케이블 텔레비전 전송, 위성 텔레비전 전송, 스트리밍 비디오 전송(예를 들어, 인터넷을 통한), 데이터 저장 매체 상에 저장하기 위한 디지털 비디오 코딩, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩 또는 다른 애플리케이션과 같은 복수의 멀티미디어 애플리케이션 중 임의의 하나를 지원할 수 있다. 일부 실현 가능한 구현예에서, 이 시스템은 단방향 또는 양방향 비디오 전송을 지원하도록 구성되어 스트리밍 비디오 전송, 비디오 재생, 비디오 방송 및/또는 비디오 전화와 같은 애플리케이션을 지원할 수 있다.
도 1의 실현 가능한 구현예에서, 소스 장치(12)는 비디오 소스(18), 비디오 인코더(20) 및 출력 인터페이스(22)를 포함한다. 일부 애플리케이션에서, 출력 인터페이스(22)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 소스 장치(12)에서, 비디오 소스(18)는, 예를 들어 비디오 캡처 장치(예를 들어, 비디오 카메라), 미리 캡처된 비디오를 포함하는 비디오 아카이브, 비디오 컨텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드-인(feed-in) 인터페이스, 및/또는 소스 비디오로서 컴퓨터 그래픽 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 이들의 조합을 포함할 수 있다. 실현 가능한 구현예에서, 비디오 소스(18)가 비디오 카메라인 경우, 소스 장치(12) 및 목적지 장치(14)는 카메라 폰 또는 비디오 폰을 구성할 수 있다. 예를 들어, 본 출원에 설명된 기술은 비디오 디코딩에 적용될 수 있고, 무선 및/또는 유선 애플리케이션에 적용될 수 있다.
비디오 인코더(20)는 컴퓨터에 의해 캡처된, 사전 캡처된 또는 생성된 비디오를 코딩할 수 있다. 코딩된 비디오 데이터는 소스 장치(12)의 출력 인터페이스(22)를 통해 목적지 장치(14)로 직접 전송될 수 있다. 코딩된 비디오 데이터는 또한(또는 이와 달리) 목적지 장치(14) 또는 디코딩 및/또는 재생을 위한 다른 장치에 의한 후속 액세스를 위해 저장 장치(24)에 저장될 수 있다.
목적지 장치(14)는 입력 인터페이스(28), 비디오 디코더(30) 및 디스플레이 장치(32)를 포함한다. 일부 애플리케이션에서, 입력 인터페이스(28)는 수신기 및/또는 모뎀을 포함할 수 있다. 목적지 장치(14)의 입력 인터페이스(28)는 링크(16)를 사용하여 코딩된 비디오 데이터를 수신한다. 링크(16)를 사용하여 저장 장치(24)에 전송되거나 또는 제공되는 코딩된 비디오 데이터는 비디오 인코더(20)에 의해 생성되고 비디오 데이터를 디코딩하기 위해 비디오 디코더(30)에 의해 사용되는 복수의 신택스 요소를 포함할 수 있다. 이들 신택스 요소는 통신 매체 상에서 전송되고 저장 매체에 저장되거나 또는 파일 서버에 저장되는 코딩된 비디오 데이터에 포함될 수 있다.
디스플레이 장치(32)는 목적지 장치(14)와 통합되거나 또는 목적지 장치(14) 외부에 배치될 수 있다. 일부 실현 가능한 구현예에서, 목적지 장치(14)는 통합된 디스플레이 장치를 포함할 수 있고, 또한 외부 디스플레이 장치의 인터페이스에 접속하도록 구성될 수 있다. 다른 실현 가능한 구현예에서, 목적지 장치(14)는 디스플레이 장치일 수 있다. 일반적으로, 디스플레이 장치(32)는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 복수의 디스플레이 장치, 예를 들어 액정 디스플레이, 플라즈마 디스플레이, 유기 발광 다이오드 디스플레이, 또는 다른 타입의 디스플레이 장치 중 임의의 하나를 포함할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30)는, 예를 들어, 현재 개발된 차세대 비디오 코딩 압축 표준(H.266)에 따라 동작할 수 있고, H.266 테스트 모델(JEM)을 준수할 수 있다. 이와 달리, 비디오 인코더(20) 및 비디오 디코더(30)는, 예를 들어 다른 전용 또는 산업 표준 또는 ITU-TH.265 표준 또는 ITU-TH.264 표준의 확장에 따라 동작할 수 있다. ITU-TH.265 표준은 또한 고효율 비디오 디코딩 표준으로 지칭되고, 이와 달리 ITU-TH.264 표준은 MPEG-4 Part 10 또는 AVC(Advanced Video Coding)로 지칭된다. 그러나, 본 출원의 기술은 임의의 특정 디코딩 표준으로 한정되지 않는다. 비디오 압축 표준의 다른 실현 가능한 구현예는 MPEG-2 및 ITU-TH.263을 포함한다.
도 1에는 도시되지 않았지만. 일부 측면에서, 비디오 인코더(20) 및 비디오 디코더(30)는 각각 오디오 인코더 및 오디오 디코더와 통합될 수 있고, 오디오 및 비디오 둘 모두를 공통의 데이터 스트림 또는 별도의 데이터 스트림에 코딩하기 위해 적절한 멀티플렉서-디멀티플렉서(MUX-DEMUX) 유닛 또는 다른 하드웨어 및 소프트웨어를 포함할 수 있다. 적용 가능한 경우, 일부 실현 가능한 구현예에서, MUX-DEMUX 유닛은 ITUH.223 멀티플렉서 프로토콜 또는 UDP(User Datagram Protocol)와 같은 다른 프로토콜을 준수할 수 있다.
비디오 인코더(20) 및 비디오 디코더(30) 각각은 복수의 적절한 인코더 회로, 예를 들어 하나 이상의 마이크로프로세서, DSP(digital signal processors), ASIC(application-specific integrated circuits), FPGA(field-programmable gate arrays), 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합 중 임의의 것으로 구현될 수 있다. 기술이 부분적으로 소프트웨어로 구현될 때, 장치는 소프트웨어에 대한 명령어를 적절한 비일시적 컴퓨터 판독 가능 매체에 저장하고, 하나 이상의 프로세서를 사용하여 하드웨어 형태로 명령어를 실행하여, 본 출원의 기술을 구현할 수 있다. 비디오 인코더(20) 및 비디오 디코더(30) 각각은 하나 이상의 인코더 또는 디코더에 포함될 수 있고, 하나 이상의 인코더 또는 디코더 중 임의의 것은 대응하는 장치에서 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
본 출원은, 예를 들어 비디오 인코더(20)가 특정 정보를, 예를 들어 비디오 디코더(30)에 시그널링하는 다른 장치에 관한 것일 수 있다. 그러나, 비디오 인코더(20)는 특정 신택스 요소를 비디오 데이터의 코딩된 부분에 연관시켜 정보를 시그널링할 수 있음을 이해해야 한다. 즉, 비디오 인코더(20)는 특정 신택스 요소를 비디오 데이터의 코딩된 부분의 헤더 정보에 저장하여 데이터를 시그널링할 수 있다. 일부 애플리케이션에서, 이들 신택스 요소는 비디오 디코더(30)에 의해 수신 및 디코딩되기 전에 코딩 및 저장(예를 들어, 저장 시스템(34) 또는 파일 서버(36)에 저장)될 수 있다. 따라서, "시그널링"이라는 용어는, 예를 들어 전송이 실시간으로 수행되는지, 거의 실시간으로 수행되는지 또는 시간 범위 내에서 수행되는지에 관계없이 압축된 비디오 데이터를 디코딩하는데 사용되는 신택스 또는 다른 데이터의 전송을 의미할 수 있다. 예를 들어, 신택스 요소가 코딩하는 동안 매체에 저장될 때 전송이 수행될 수 있고, 그러면 신택스 요소는 매체에 저장된 후 언제든지 디코딩 장치에 의해 검색될 수 있다.
JCT-VC는 H.265(HEVC) 표준을 개발하였다. HEVC 표준화는 비디오 디코딩 장치의 진화된 모델을 기초로 하며, 이 모델은 HEVC 테스트 모델(HM)로 지칭된다. 최신 H.265 표준 문서는 http://www.itu.int/rec/T-REC-H.265에서 입수 가능하다. 표준 문서의 최신 버전은 H.265(12/16)이며, 표준 문서는 그 전문이 여기에 참조로 포함된다. HM에서, 비디오 디코딩 장치는 기존의 ITU-TH.264/AVC 알고리즘과 비교하여 몇몇의 추가적인 기능을 갖는 것으로 가정된다. 예를 들어, H.264는 9개의 인트라 예측 및 코딩 모드를 제공하는 반면, HM은 최대 35개의 인트라 예측 및 코딩 모드를 제공할 수 있다.
JVET은 H.266 표준을 개발하기 위해 노력하고 있다. H.266 표준화 프로세스는 비디오 디코딩 장치의 진화된 모델에 기초하며, 이 모델은 H.266 테스트 모델로 지칭된다. H.266 알고리즘에 대한 설명은 http://phenix.int-evry.fr/jvet에서 입수 가능하고, 최신 알고리즘에 대한 설명은 JVET-F1001-v2에 포함되어 있다. 이 알고리즘 설명 문서는 그 전문이 여기에 참조로 포함된다. 또한, JEM 테스트 모델을 위한 참조 소프트웨어는 https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/에서 입수 가능하며, 그 전문이 여기에 참조로 포함된다.
일반적으로, HM 작업 모델에서 설명된 것과 같이, 비디오 프레임 또는 픽처는 휘도 및 색차 샘플 모두를 포함하는 트리 블록 또는 LCU(largest coding unit)의 시퀀스로 분할될 수 있다. LCU는 또한 CTU로 지칭된다. 트리 블록은 H.264 표준의 매크로블록과 유사한 기능을 갖는다. 슬라이스는 디코딩 순서로 몇몇의 연속적인 트리 블록을 포함한다. 비디오 프레임 또는 픽처는 하나 이상의 슬라이스로 분할될 수 있다. 각각의 트리 블록은 쿼드트리(quadtree)를 기반으로 코딩 유닛으로 분할될 수 있다. 예를 들어, 쿼드트리의 루트 노드로서 동작하는 트리 블록은 4개의 자식 노드로 분할될 수 있고, 각각의 자식 노드는 부모 노드로서 동작하여 4개의 다른 자식 노드로 분할될 수 있다. 쿼드트리의 리프 노드로서 동작하는 최종적인 분할 불가능 자식 노드는 디코딩 노드, 예를 들어, 디코딩된 픽처 블록을 포함한다. 디코딩된 비트스트림과 연관된 신택스 데이터에서, 트리 블록의 분할 가능 시간의 최대 양 및 디코딩 노드의 최소 크기가 정의될 수 있다.
코딩 유닛은 디코딩 노드, 예측 유닛(PU), 및 디코딩 노드와 연관된 변환 유닛(TU)을 포함한다. CU는 디코딩 노드의 크기에 대응하는 크기를 가지며, 정사각형의 형태일 필요가 있다. CU의 크기는 8 x 8 화소에서 최대 64 x 64 화소까지의 범위이거나 또는 더 큰 트리 블록 크기일 수 있다. 각각의 CU는 하나 이상의 PU 및 하나 이상의 TU를 포함할 수 있다. 예를 들어, CU와 연관된 신택스 데이터는 하나의 CU를 하나 이상의 PU로 분할하는 것을 설명할 수 있다. CU가 스킵 또는 다이렉트 모드로 코딩되거나, 인트라 예측 모드로 코딩되거나, 또는 인터 예측 모드로 코딩될 때, 분할 패턴이 달라질 수 있다. 분할을 통해 획득된 PU는 정사각형이 아닌 형태일 수 있다. 예를 들어, CU와 연관된 신택스 데이터는 쿼드트리에 기반하여 하나의 CU를 하나 이상의 TU로 분할하는 것을 설명할 수 있다. TU는 정사각형 또는 정사각형이 아닌 형태일 수 있다.
HEVC 표준은 TU 기반 변환을 허용하고, TU는 상이한 CU에 대해 상이할 수 있다. TU의 크기는 일반적으로 분할된 LCU에 대해 정의된 주어진 CU 내의 PU의 크기에 따라 정해진다. 그러나 항상 그런 것은 아니다. TU의 크기는 일반적으로 PU의 크기와 같거나 작다. 일부 실현 가능한 구현예에서, "RQT(residual quadtree)"로 지칭되는 쿼드트리 구조는 CU에 대응하는 잔차 샘플을 더 작은 유닛으로 분할하는데 사용될 수 있다. RQT의 리프 노드는 TU로 지칭될 수 있다. TU와 연관된 화소 차이는 변환되어 변환 계수를 생성할 수 있고, 변환 계수는 양자화될 수 있다.
일반적으로, TU에 대해 변환 및 양자화 프로세스가 사용된다. 하나 이상의 PU를 포함하는 주어진 CU는 또한 하나 이상의 TU를 포함할 수 있다. 예측 후, 비디오 인코더(20)는 PU에 대응하는 잔차 값을 계산할 수 있다. 잔차 값은 화소 차이를 포함하고, 화소 차이는 변환 계수로 변환될 수 있으며, 변환 계수는 양자화되고 TU 스캐닝을 거쳐 엔트로피 디코딩을 위한 직렬화된 변환 계수를 생성한다. 본 출원에서, "픽처 블록"이라는 용어는 일반적으로 CU의 디코딩 노드를 나타내는데 사용된다. 일부 특정 애플리케이션 및 본 출원에서, "픽처 블록"이라는 용어는 또한 디코딩 노드, PU 및 TU를 포함하는 트리 블록, 예를 들어 LCU 또는 CU를 나타내는데 사용될 수 있다. 본 출원의 이 실시예에서, 현재 픽처 블록(즉, 현재 변환 블록)에 대응하는 변환 계수의 역양자화 프로세스를 수행하여 코딩 성능을 향상시키는, 비디오 인코딩 또는 디코딩에서의 적응적 역양자화 방법으로 설명된 다양한 예시적 방법이 아래에서 상세히 설명된다.
비디오 시퀀스는 일반적으로 일련의 비디오 프레임 또는 픽처를 포함한다. 예를 들어, 픽처 그룹(group of picture, GOP)은 일련의 비디오 픽처, 하나의 비디오 픽처 또는 복수의 비디오 픽처를 포함한다. GOP는 GOP의 헤더 정보, 하나 이상의 픽처의 헤더 정보 또는 다른 곳에 신택스 데이터를 포함할 수 있고, 신택스 데이터는 GOP에 포함된 픽처의 양을 설명한다. 픽처의 각각의 슬라이스는 대응하는 픽처의 코딩 모드를 설명하는 슬라이스 신택스 데이터를 포함할 수 있다. 비디오 인코더(20)는 일반적으로 비디오 데이터를 코딩하기 위해 일부 비디오 슬라이스에서 픽처 블록에 대한 연산을 수행한다. 픽처 블록은 CU의 디코딩 노드에 대응할 수 있다. 픽처 블록의 크기는 고정 또는 변경 가능하며, 지정된 디코딩 표준에 따라 달라질 수 있다.
실현 가능한 구현예에서, HM은 다양한 PU 크기에 대한 예측을 지원한다. 주어진 CU의 크기가 2N x 2N이라고 가정하면, HM은 2N x 2N 또는 N x N의 PU 크기에 대한 인트라 예측 및 2N x 2N, 2N x N, N x 2N 또는 N x N의 대칭 PU 크기에 대한 인터 예측을 지원한다. HM은 또한 2N x nU, 2N x nD, nL x 2N 및 nR x 2N의 PU 크기에 대한 인터 예측의 비대칭 분할을 지원한다. 비대칭 분할에서 CU는 한 방향으로 분할되지 않고 다른 방향으로 2개의 부분으로 분할되는데, 한 부분은 CU의 25 %를 차지하고 다른 부분은 CU의 75 %를 차지한다. CU의 25%를 차지하는 부분은 "n" 다음에 "U(Up)", "D(Down)", "L(Left)" 또는 "R(Right)"을 포함하는 표시자에 의해 표시된다. 따라서, 예를 들어, "2N x nU"는 수평으로 분할된 2N x 2N CU를 지칭하며, 상단에는 2N x 0.5N PU가 있고 하단에는 2N x 1.5N PU가 있다.
본 출원에서, "N x M" 및 "N 곱하기 M", 예를 들어 16 x 8 화소 또는 16 곱하기 8 화소는 픽처 블록의 화소 크기를 수직 크기 및 수평 크기로 표시하는데 상호 교환적으로 사용될 수 있다. 일반적으로 16 x 8 블록은 수평 방향으로 16 화소, 수직 방향으로 8 화소를 포함한다. 다시 말해, 픽처 블록의 폭은 16 화소이고 픽처 블록의 높이는 8 화소이다.
CU에서 PU의 인트라 또는 인터 예측 디코딩 후, 비디오 인코더(20)는 CU에서 TU의 잔차 데이터를 계산할 수 있다. PU는 공간 도메인(또한 화소 도메인으로 지칭됨)의 화소 데이터를 포함할 수 있다. TU는 잔차 비디오 데이터에 대해 변환(예를 들어, DCT, 정수 변환, 웨이블릿 변환, 또는 다른 개념적으로 유사한 변환)이 수행된 후 변환 도메인의 계수를 포함할 수 있다. 잔차 데이터는 코딩되지 않은 픽처의 화소 값과 PU에 대응하는 예측된 화소 값 사이의 차이에 대응할 수 있다. 비디오 인코더(20)는 CU의 잔차 데이터를 포함하는 TU를 생성한 다음, TU를 변환하여 CU 변환 계수를 생성할 수 있다.
본 출원의 이 실시예에서, 현재 픽처 블록의 최적의 순방향 참조 블록의 샘플링 포인트의 샘플링 값과 현재 픽처 블록의 최적의 역방향 참조 블록의 샘플링 포인트의 샘플링 값을 획득하고 나아가 현재 픽처 블록의 샘플링 포인트의 샘플링 값을 예측하는, 비디오 인코딩 또는 디코딩에서의 인터 예측 프로세스의 다양한 예시적 방법이 이하에서 상세히 설명된다. 픽처 블록은 2차원 샘플링 포인트 어레이이고, 정사각형 어레이일 수 있거나 또는 직사각형 어레이일 수 있다. 예를 들어, 4 x 4 크기의 픽처 블록은 총 4 x 4 = 16 샘플링 포인트로 형성된 정사각형 샘플링 포인트 어레이로 간주될 수 있다. 픽처 블록의 신호는 픽처 블록의 샘플링 포인트의 샘플링 값이다. 또한, 샘플링 포인트는 샘플 또는 화소로 지칭될 수 있으며, 본 발명의 이 명세서에서 구분없이 사용된다. 이에 따라, 샘플링 포인트의 값은 또한 화소 값으로 지칭될 수 있으며, 본 출원에서 구분없이 사용된다. 픽처는 또한 2차원 샘플링 포인트 어레이로 표현될 수 있고, 픽처 블록에 사용된 방법과 유사한 방법을 사용하여 표시된다.
변환 계수를 생성하기 위한 임의의 변환을 수행한 후, 비디오 인코더(20)는 변환 계수를 양자화할 수 있다. 양자화는 계수를 나타내는데 사용되는 데이터의 양을 줄이고 추가의 압축을 구현하기 위해, 예를 들어 계수를 양자화하는 프로세스를 의미한다. 양자화 프로세스는 일부 또는 모든 계수와 연관된 비트 깊이를 감소시킬 수 있다. 예를 들어, 양자화 동안, n-비트 값은 m-비트 값으로 감소될 수 있으며, n은 m보다 크다.
JEM 모델은 비디오 픽처 코딩 구조를 추가로 개선한다. 구체적으로, "QTBT(quadtree plub binary tree)"로 지칭되는 블록 코딩 구조가 도입된다. HEVC의 CU, PU 및 TU와 같은 개념을 사용하지 않고, QTBT 구조는 더 유연한 CU 분할 형태를 지원한다. 하나의 CU는 정사각형 또는 직사각형의 형태일 수 있다. 쿼드트리 분할은 먼저 CTU에서 수행되고, 이진 트리 분할은 쿼드트리의 리프 노드에서 추가로 수행된다. 또한, 대칭 수평 분할 및 대칭 수직 분할의 2개의 이진 트리 분할 모드가 있다. 이진 트리의 리프 노드는 CU로 지칭된다. JEM의 CU는 예측 및 변환 동안 더 이상 분할될 수 없다. 즉, JEM의 CU, PU 및 TU는 동일한 블록 크기를 갖는다. 기존의 JEM에서 최대 CTU 크기는 256 x 256 휘도 화소이다.
일부 실현 가능한 구현예에서, 비디오 인코더(20)는 엔트로피 코딩될 수 있는 직렬화된 벡터를 생성하기 위해 미리 정의된 스캐닝 순서로 양자화된 변환 계수를 스캐닝할 수 있다. 다른 실현 가능한 구현예에서, 비디오 인코더(20)는 적응적 스캐닝을 수행할 수 있다. 양자화된 변환 계수를 스캐닝하여 1차원 벡터를 형성한 후, 비디오 인코더(20)는 CAVLC(context-based adaptive variable length coding), CABAC(context-based adpative binary arithmetic coding), SBAC(syntax-based context-adaptive binary arithmetic coding), PIPE(probability interval partitioning entropy) 디코딩, 또는 다른 엔트로피 디코딩 방법을 사용하여 1차원 벡터에 대해 엔트로피 디코딩을 수행할 수 있다. 비디오 인코더(20)는, 비디오 디코더(30)가 비디오 데이터를 디코딩할 수 있도록, 코딩된 비디오 데이터와 연관된 신택스 요소에 대해 엔트로피 코딩을 추가로 수행할 수 있다.
도 2a는 본 출원의 실시예에 따른 비디오 인코더(20)의 개략적인 블록도이다. 또한 도 3을 참조하면, 비디오 인코더(20)는 픽처 예측 프로세스를 수행할 수 있고, 특히 비디오 인코더(20)의 움직임 보상 유닛(44)은 픽처 예측 프로세스를 수행할 수 있다.
도 2a에 도시된 것과 같이, 비디오 인코더(20)는 예측 모듈(41), 가산기(50), 변환 모듈(52), 양자화 모듈(54) 및 엔트로피 코딩 모듈(56)을 포함할 수 있다. 예를 들어, 예측 모듈(41)은 움직임 추정 유닛(42), 움직임 보상 유닛(44) 및 인트라 예측 유닛(46)을 포함할 수 있다. 예측 모듈(41)의 내부 구조는 본 출원의 이 실시예에 한정되지 않는다. 선택적으로, 하이브리드 아키텍처를 갖는 비디오 인코더에 대해, 비디오 인코더(20)는 역양자화 모듈(58), 역변환 모듈(60), 및 가산기(62)를 더 포함할 수 있다.
도 2a의 실현 가능한 구현예에서, 비디오 인코더(20)는 분할 유닛(도시 안됨) 및 참조 픽처 메모리(64)를 더 포함할 수 있다. 이와 달리, 분할 유닛 및 참조 픽처 메모리(64)가 비디오 인코더(20)의 외부에 배치될 수 있다는 것을 이해해야 한다.
*다른 실현 가능한 구현예에서, 비디오 인코더(20)는 재구성된 비디오로부터 블록 효과 아티팩트를 제거하기 위해 블록 경계를 필터링하는 필터(도시 안됨)를 더 포함할 수 있다. 필요한 경우, 필터는 보통 가산기(62)의 출력에 대한 필터링을 수행한다.
도 2a에 도시된 것과 같이, 비디오 인코더(20)는 비디오 데이터를 수신하고, 분할 유닛은 데이터를 픽처 블록으로 분할한다. 이러한 분할은 슬라이스, 픽처 블록 또는 다른 더 큰 유닛으로의 분할, 예를 들어 LCU 및 CU의 쿼드트리 구조에 기반한 픽처 블록 분할을 더 포함할 수 있다. 일반적으로 슬라이스는 복수의 픽처 블록으로 분할될 수 있다.
예측 모듈(41)은 현재 코딩된 픽처 블록의 예측 블록을 생성하도록 구성된다. 예측 모듈(41)은 코딩 품질 및 비용 계산 결과(예를 들어, RDcost(rate-distortion cost))에 근거하여 현재 픽처 블록의 복수의 가능한 디코딩 모드 중 하나, 예를 들어 복수의 인트라 디코딩 모드 중 하나 또는 복수의 인터 디코딩 모드 중 하나를 선택할 수 있다. 예측 모듈(41)은 잔차 블록 데이터를 생성하기 위해 인트라-디코딩된 또는 인터-디코딩된 블록을 가산기(50)에 제공하고, 코딩된 블록을 재구성하고 재구성된 블록을 참조 픽처로 사용하기 위해 인트라-디코딩된 또는 인터-디코딩된 블록을 가산기(62)에 제공할 수 있다.
예측 모듈(41)의 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 시간 압축을 제공하기 위해 하나 이상의 참조 픽처에서 하나 이상의 예측 블록에 대한 현재 픽처 블록의 인터 예측 디코딩을 수행한다. 움직임 추정 유닛(42)은 비디오 시퀀스의 미리 설정된 모드에 따라 비디오 슬라이스에 대한 인터 예측 모드를 결정하도록 구성된다. 미리 설정된 모드에서, 시퀀스의 비디오 슬라이스는 P 슬라이스, B 슬라이스 또는 GPB 슬라이스로 지정될 수 있다. 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 통합될 가능성이 높지만, 개념을 설명하기 위해 분리하여 설명된다. 움직임 추정 유닛(42)에 의해 수행되는 움직임 추정은 픽처 블록을 추정하기 위한 움직임 벡터를 생성하는 프로세스이다. 예를 들어, 움직임 벡터는 참조 픽처의 예측 블록에 대한 현재 비디오 프레임 또는 픽처에서의 픽처 블록의 PU의 변위를 표시할 수 있다.
예측 블록은 화소 차이에 근거하여 디코딩될 픽처 블록과 밀접하게 매칭되는 것으로 발견된 PU의 블록이고, 화소 차이는 SAD(sum of absolute differences), SSD(sum of squared differences) 또는 다른 차이 메트릭(metric)에 따라 결정될 수 있다. 일부 실현 가능한 구현예에서, 비디오 인코더(20)는 참조 픽처 메모리(64)에 저장된 참조 픽처의 서브 정수(sub-integer) 화소 위치의 값을 계산할 수 있다.
움직임 추정 유닛(42)은, PU의 위치와 참조 픽처의 예측 블록의 위치를 비교함으로써, 인터-디코딩된 슬라이스에서 픽처 블록의 PU의 움직임 벡터를 계산한다. 참조 픽처는 제 1 참조 픽처 리스트(리스트 0) 또는 제 2 참조 픽처 리스트(리스트 1)로부터 선택될 수 있다. 리스트의 각각의 항목은 참조 픽처 메모리(64)에 저장된 하나 이상의 참조 픽처를 식별한다. 움직임 추정 유닛(42)은 계산된 움직임 벡터를 엔트로피 코딩 유닛(56) 및 움직임 보상 유닛(44)에 보낸다.
움직임 보상 유닛(44)에 의해 수행되는 움직임 보상은 움직임 추정을 통해 결정된 움직임 벡터에 근거하여 예측 블록을 추상화하거나 또는 생성하는 것을 포함할 수 있고, 서브 화소 레벨에서의 보간이 수행될 수 있다. 현재 픽처 블록의 PU의 움직임 벡터를 수신한 후에, 움직임 보상 유닛(44)은 움직임 벡터에 의해 지시된 예측 블록을 참조 픽처 리스트 중 하나에서 찾을 수 있다. 비디오 인코더(20)는 디코딩될 현재 픽처 블록의 화소 값으로부터 예측 블록의 화소 값을 감산하여, 잔차 픽처 블록을 획득하고, 화소 차이를 획득한다. 화소 차이는 블록의 잔차 데이터를 형성하며, 휘도 차이 컴포넌트 및 채도 차이 컴포넌트를 포함할 수 있다. 가산기(50)는 감산 연산을 수행하는 하나 이상의 컴포넌트이다. 움직임 보상 유닛(44)은, 비디오 디코더(30)가 비디오 슬라이스의 픽처 블록을 디코딩할 수 있도록, 픽처 블록 및 비디오 슬라이스와 연관된 신택스 요소를 추가로 생성할 수 있다. 본 출원의 실시예의 픽처 예측 프로세스는 도 3, 도 10 내지 도 12, 도 14 내지 도 17을 참조하여 이하에서 상세히 설명한다. 세부 사항은 여기에 설명되지 않는다.
예측 모듈(41)의 인트라 예측 유닛(46)은 공간 압축을 제공하기 위해 현재 디코딩될 블록과 동일한 픽처 또는 슬라이스에서 하나 이상의 주변 블록에 대한 현재 픽처 블록의 인트라 예측 디코딩을 수행한다. 따라서, (전술된 것과 같이) 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)에 의해 수행되는 인터 예측의 대안으로서, 인트라 예측 유닛(46)은 현재 블록에 대해 인트라 예측을 수행할 수 있다. 구체적으로, 인트라 예측 유닛(46)은 현재 블록을 코딩하기 위한 인트라 예측 모드를 결정할 수 있다. 일부 실현 가능한 구현예에서, 인트라 예측 유닛(46)은 (예를 들어) 별도의 코딩 탐색 동안 다양한 인트라 예측 모드를 사용하여 현재 블록을 코딩할 수 있고, 인트라 예측 유닛(46)(또는 일부 실현 가능한 구현예에서 모드 선택 유닛(40))은 테스트된 모드로부터 적절한 인트라 예측 모드를 선택할 수 있다.
예측 모듈(41)이 인터 예측 또는 인트라 예측을 수행하여 현재 픽처 블록의 예측 블록을 생성한 후, 비디오 인코더(20)는 현재 픽처 블록으로부터 예측 블록을 감산함으로써 잔차 픽처 블록을 생성한다. 잔차 블록의 잔차 비디오 데이터는 하나 이상의 TU에 포함되어 변환 모듈(52)에 적용될 수 있다. 변환 모듈(52)은 현재 코딩된 픽처 블록의 오리지널 블록과 현재 픽처 블록의 예측 블록 사이의 잔차를 변환하도록 구성된다. 변환 모듈(52)은 예를 들어, DCT 또는 개념적으로 유사한 변환(예를 들어, DST(discrete sine transform))을 수행하여 잔차 데이터를 잔차 변환 계수로 변환한다. 변환 모듈(52)은 잔차 비디오 데이터를 픽셀 도메인 데이터로부터 변환 도메인(예를 들어, 주파수 도메인) 데이터로 변환할 수 있다.
변환 모듈(52)은 획득된 변환 계수를 양자화 모듈(54)에 보낼 수 있다. 양자화 모듈(54)은 변환 계수를 양자화하여 비트 레이트를 더 감소시킨다. 일부 실현 가능한 구현예에서, 양자화 모듈(54)은 양자화된 변환 계수를 포함하는 행렬을 계속 스캔할 수 있다. 이와 달리, 엔트로피 코딩 모듈(56)이 스캐닝을 수행할 수 있다.
양자화 후, 엔트로피 코딩 모듈(56)은 양자화된 변환 계수에 대해 엔트로피 코딩을 수행할 수 있다. 예를 들어, 엔트로피 코딩 모듈(56)은 CAVLC, CABAC, SBAC, PIPE 디코딩 또는 다른 엔트로피 코딩 방법 또는 기술을 수행할 수 있다. 엔트로피 코딩 모듈(56)은 또한 코딩되고 있는 현재 비디오 슬라이스의 움직임 벡터 및 다른 신택스 요소에 대해 엔트로피 코딩을 수행할 수 있다. 엔트로피 코딩 모듈(56)이 엔트로피 코딩을 수행한 후, 코딩된 비트스트림은 비디오 디코더(30)로 전송되거나, 또는 비디오 디코더(30)에 의한 후속 전송 또는 검색을 위해 저장될 수 있다.
역양자화 모듈(58) 및 역변환 모듈(60)은 각각 화소 도메인에서 잔차 블록을 참조 픽처의 참조 블록으로서 재구성하기 위해 역양자화 및 역변환을 수행한다. 가산기(62)는 예측 모듈(41)에 의해 생성된 예측 블록에 재구성된 잔차 블록을 가산하여 재구성된 블록을 생성하고, 재구성된 블록을 참조 픽처 메모리(64)에 저장하기 위한 참조 블록으로서 사용한다. 움직임 추정 유닛(42) 및 움직임 보상 유닛(44)은 참조 블록을 후속 비디오 프레임 또는 픽처의 블록에 대한 인터 예측을 수행하기 위한 참조 블록으로서 사용할 수 있다.
비디오 인코더(20)의 다른 구조적 변형이 비디오 스트림을 코딩하는데 사용될 수 있다는 것이 이해되어야 한다. 예를 들어, 일부 픽처 블록 또는 픽처 프레임에 대해, 잔차 신호는 변환 모듈(52)에 의해 프로세싱되지 않고 비디오 인코더(20)에 의해 직접 양자화될 수도 있고, 이에 따라 잔차 신호는 역변환 모듈(58)에 의해 프로세싱될 필요가 없다. 이와 달리, 비디오 인코더(20)는 일부 픽처 블록 또는 픽처 프레임에 대해 잔차 데이터를 생성하지 않고, 따라서 변환 모듈(52), 양자화 모듈(54), 역양자화 모듈(58) 및 역변환 모듈(60)은 프로세싱을 수행할 필요가 없다. 이와 달리, 재구성된 픽처 블록은 필터 유닛에 의해 프로세싱되지 않고 비디오 인코더(20)에 의해 직접 참조 블록으로서 저장될 수 있다. 이와 달리, 비디오 인코더(20)의 양자화 모듈(54) 및 역양자화 모듈(58)은 통합될 수 있다. 이와 달리, 비디오 인코더(20)의 변환 모듈(52) 및 역변환 모듈(60)은 통합될 수 있다. 이와 달리, 가산기(50)와 가산기(62)는 통합될 수 있다.
도 2b는 본 출원의 실시예에 따른 비디오 디코더(30)의 개략적인 블록도이다. 또한, 도 3, 도 10 내지 도 12 및 도 14 내지 도 17를 참조하면, 비디오 디코더(30)는 픽처 예측 프로세스를 수행할 수 있고, 특히 비디오 디코더(30)의 움직임 보상 유닛(82)이 픽처 예측 프로세스를 수행할 수 있다.
도 2b에 도시된 것과 같이, 비디오 디코더(30)는 엔트로피 디코딩 모듈(80), 예측 프로세싱 모듈(81), 역양자화 모듈(86), 역변환 모듈(88) 및 재구성 모듈(90)을 포함할 수 있다. 예로서, 예측 모듈(81)은 움직임 보상 유닛(82) 및 인트라 예측 유닛(84)을 포함할 수 있다. 이것은 본 출원의 이 실시예에 한정되지 않는다.
실현 가능한 구현예에서, 비디오 디코더(30)는 참조 픽처 메모리(92)를 더 포함할 수 있다. 이와 달리, 참조 픽처 메모리(92)는 비디오 디코더(30)의 외부에 배치될 수 있는 것임을 이해해야 한다. 일부 실현 가능한 구현예에서, 비디오 디코더(30)는 도 2a의 비디오 인코더(20)에서 설명된 인코딩 프로세스와 반대의 예시적인 디코딩 프로세스를 수행할 수 있다.
디코딩 동안, 비디오 디코더(30)는 비디오 인코더(20)로부터 코딩된 비디오 슬라이스의 픽처 블록 및 연관된 신택스 요소를 나타내는 코딩된 비디오 비트스트림을 수신한다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 픽처 블록 레벨에서 신택스 요소를 수신할 수 있다. 비디오 디코더(30)의 엔트로피 디코딩 모듈(80)은 비트스트림에 대해 엔트로피 디코딩을 수행하여 양자화된 계수 및 일부 신택스 요소를 생성한다. 엔트로피 디코딩 모듈(80)은 신택스 요소를 예측 모듈(81)로 전달한다. 본 출원에서, 예시적으로, 여기에서의 신택스 요소는 현재 픽처 블록과 관련된 인터 예측 데이터를 포함할 수 있고, 인터 예측 데이터는 현재 픽처 블록에 의해 어떤 움직임 정보(또한 현재 픽처 블록의 초기 움직임 정보로 지칭됨)가 사용되는지를 표시하는 인덱스 식별자(block_based_index)를 포함할 수 있다. 선택적으로, 인터 예측 데이터는, 도 3 또는 도 14를 사용하여 현재 픽처 블록에 대한 픽처 예측을 수행할지 여부를 표시(다시 말해, 본 출원에서 제안된 MVD 미러 제약을 사용하여 현재 픽처 블록에 대한 인터 예측을 수행할지 여부를 표시)하거나, 또는, 도 12 또는 도 16을 사용하여 현재 픽처 블록에 대한 픽처 예측을 수행할지 여부를 표시(다시 말해, 본 출원에서 제안된 시간 도메인 거리에 근거한 비례 관계를 사용하여 현재 픽처 블록에 대한 인터 예측을 수행할지 여부를 표시)하는 스위치 플래그(block_based_enable_flag)를 추가로 포함할 수 있다.
비디오 슬라이스가 인트라 디코딩된(I) 슬라이스로 디코딩될 때, 예측 모듈(81)의 인트라 예측 유닛(84)은 현재 프레임 또는 픽처로부터 유래한 이전에 디코딩된 블록의 신호 및 데이터를 보냄으로써 통지된 인트라 예측 모드에 따라 현재 비디오 슬라이스의 픽처 블록의 예측 블록을 생성할 수 있다. 비디오 슬라이스가 인터 디코딩된(즉, B 또는 P) 슬라이스로 디코딩될 때, 예측 모듈(81)의 움직임 보상 유닛(82)은 엔트로피 디코딩 모듈(80)로부터 수신된 신택스 요소에 근거하여 현재 비디오 슬라이스의 현재 픽처 블록을 디코딩하는데 사용되는 인터 예측 모드를 결정하고, 결정된 인터 예측 모드에 따라 현재 픽처 블록을 디코딩(예를 들어, 인터 예측을 수행)할 수 있다. 구체적으로, 움직임 보상 유닛(82)은 현재 비디오 슬라이스의 현재 픽처 블록을 예측하는데 어떤 픽처 예측 방법이 사용되는지를 결정할 수 있는데, 예를 들어, 신택스 요소는 MVD 미러 제약에 근거한 픽처 예측 방법이 현재 픽처 블록을 예측하는데 사용될 것임을 표시한다. 현재 비디오 슬라이스의 현재 픽처 블록의 움직임 정보는 움직임 보상 프로세스를 사용하여 예측 또는 재정밀화되고, 현재 픽처 블록의 예측된 움직임 정보를 사용하여 현재 픽처 블록의 예측 블록을 획득 또는 생성한다. 여기에서 움직임 정보는 참조 픽처 정보 및 움직임 벡터를 포함할 수 있다. 참조 픽처 정보는 단방향/양방향 예측 정보, 참조 픽처 리스트 번호 및 참조 픽처 리스트에 대응하는 참조 픽처 인덱스를 포함할 수 있으나, 이에 한정되는 것은 아니다. 인터 예측을 위해, 예측 블록은 참조 픽처 리스트 중 하나의 참조 픽처 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 참조 픽처 메모리(92)에 저장된 참조 픽처에 근거하여 참조 픽처 리스트, 즉 리스트 0 및 리스트 1을 구성할 수 있다. 현재 픽처의 참조 프레임 인덱스는 참조 프레임 리스트 0 및 참조 프레임 리스트 1 중 어느 하나 또는 모두에 포함될 수 있다. 일부 경우에, 비디오 인코더(20)는 새로운 픽처 예측 방법이 사용되는지를 표시하는 신호를 보낼 수 있다.
이 실시예에서, 예측 모듈(81)은 현재 코딩 픽처 블록의 예측 블록을 생성하도록 구성된다. 구체적으로, 비디오 슬라이스가 인트라 디코딩된(I) 슬라이스로 디코딩된 경우, 예측 모듈(81)의 인트라 예측 유닛(84)은 보내진 시그널링된 인트라 예측 모드 및 현재 프레임 또는 픽처로부터 유래한 이전에 디코딩된 픽처 블록의 데이터에 근거하여 현재 비디오 슬라이스의 픽처 블록의 예측 블록을 생성할 수 있다. 비디오 픽처가 인터 디코딩된(예를 들어, B, P 또는 GPB) 슬라이스로 디코딩된 경우, 예측 모듈(81)의 움직임 보상 유닛(82)은 엔트로피 디코딩 유닛(80)으로부터 수신되는 움직임 벡터 및 다른 신택스 요소에 근거하여 현재 비디오 픽처의 픽처 블록의 예측 블록을 생성한다.
역양자화 모듈(86)은 엔트로피 디코딩 모듈(80)에 의한 디코딩을 통해 획득된 비트스트림에 제공되는 양자화된 변환 계수에 대해 역양자화를 수행, 즉 역양자화한다. 역양자화 프로세스는 비디오 슬라이스의 각각의 픽처 블록에 대해 비디오 인코더(20)에 의해 계산된 양자화 파라미터를 사용하여 적용될 양자화도를 결정하는 것과, 이와 유사하게 적용될 역양자화도를 결정하는 것을 포함할 수 있다. 역변환 모듈(88)은 변환 계수에 대해 역변환, 예를 들어 역 DCT, 역 정수 변환 또는 개념적으로 유사한 역변환 프로세스를 수행하여 화소-도메인 잔차 블록을 생성한다.
움직임 보상 유닛(82)이 현재 픽처 블록에 대한 예측 블록을 생성한 후, 비디오 디코더(30)는 역변환 모듈(88)로부터의 잔차 블록과 움직임 보상 유닛(82)에 의해 생성된 대응하는 예측 블록을 가산하여 재구성된 블록, 즉, 디코딩된 픽처 블록을 획득한다. 가산기(90)는 가산 연산을 수행하는 컴포넌트를 나타낸다. 필요한 경우, (디코딩 루프에서 또는 디코딩 루프 이후) 루프 필터를 추가로 사용하여 화소 변환을 매끄럽게 하거나 또는 비디오 품질을 다른 방식으로 개선할 수 있다. 필터 유닛(도시 안됨)은 하나 이상의 루프 필터, 예를 들어 디블로킹 필터, ALF(adaptive loop filter) 및 SAO(sample adaptive offset) 필터를 나타낼 수 있다. 또한, 주어진 프레임 또는 픽처의 디코딩된 픽처 블록은 디코딩된 픽처 버퍼(92)에 추가로 저장될 수 있고, 디코딩된 픽처 버퍼(92)는 후속 움직임 보상에 사용되는 참조 픽처를 저장한다. 디코딩된 픽처 버퍼(92)는 메모리의 일부일 수 있고, 디스플레이 장치(예를 들어, 도 1의 디스플레이 장치(32)) 상에 후속 프리젠테이션을 위해 디코딩된 비디오를 추가로 저장할 수 있다. 이와 달리, 디코딩된 픽처 버퍼(92)는 이러한 메모리로부터 분리될 수 있다.
비디오 디코더(30)의 다른 구조적 변형이 코딩된 비디오 비트스트림을 디코딩하는데 사용될 수 있음을 이해해야 한다. 예를 들어, 비디오 디코더(30)는 필터 유닛에 의한 프로세싱 없이 출력 비디오 스트림을 생성할 수 있다. 이와 달리, 일부 픽처 블록 또는 픽처 프레임에 대해, 비디오 디코더(30)의 엔트로피 디코딩 모듈(80)은 디코딩을 통해 양자화된 계수를 획득하지 않고, 이에 따라 역양자화 모듈(86) 및 역변환 모듈(88)에 의한 프로세싱은 필요하지 않다. 예를 들어, 비디오 디코더(30)의 역양자화 모듈(86) 및 역변환 모듈(88)은 통합될 수 있다.
도 3은 본 출원의 실시예에 따른 픽처 예측 방법의 개략적인 흐름도이다. 도 3에 도시된 방법은 비디오 코딩 장치, 비디오 코덱, 비디오 코딩 시스템, 또는 비디오 코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다. 도 3에 도시된 방법은 코딩 프로세스 또는 디코딩 프로세스에서 사용될 수 있다. 보다 구체적으로, 도 3에 도시된 방법은 인코딩 또는 디코딩 동안 인터 예측 프로세스에서 사용될 수 있다. 프로세스(300)는 비디오 인코더(20) 또는 비디오 디코더(30)에 의해 수행될 수 있고, 구체적으로는 비디오 인코더(20) 또는 비디오 디코더(30)의 움직임 보상 유닛에 의해 수행될 수 있다. 복수의 비디오 프레임을 갖는 비디오 데이터 스트림에 대해, 비디오 인코더 또는 비디오 디코더는 현재 비디오 프레임의 현재 픽처 블록의 화소 값의 예측된 값을 예측하기 위해, 다음과 같은 단계를 포함하는 프로세스(300)를 수행하는 데 사용되는 것으로 가정한다.
도 3에 도시된 방법은 단계(301) 내지 단계(304)를 포함하고, 단계(301) 내지 단계(304)는 아래에서 상세히 설명된다.
(301): 현재 픽처 블록의 초기 움직임 정보를 획득한다.
본 명세서에서 픽처 블록은 처리될 픽처 내의 픽처 블록 또는 처리될 픽처의 서브 픽처일 수 있다. 또한, 본 명세서에서 픽처 블록은 코딩 프로세스에서 코딩될 픽처 블록 또는 디코딩 프로세스에서 디코딩될 픽처 블록일 수 있다.
더욱이, 초기 움직임 정보는 (보통 양방향 예측인) 예측 방향의 표시 정보, (보통 주변 블록의 움직임 벡터인) 참조 픽처 블록을 가리키는 움직임 벡터 및 (보통 참조 픽처 정보로 이해되는) 참조 픽처 블록이 위치하는 픽처의 정보를 포함할 수 있다. 움직임 벡터는 순방향 움직임 벡터 및 역방향 움직임 벡터를 포함하고, 참조 픽처 정보는 순방향 예측 참조 픽처 블록 및 역방향 예측 참조 픽처 블록의 참조 프레임 인덱스 정보를 포함한다.
픽처 블록의 초기 움직임 정보는 복수의 방식으로 획득될 수 있다. 예를 들어, 픽처 블록의 초기 움직임 정보는 다음과 같은 방식 1 및 방식 2로 획득될 수 있다.
방식 1:
도 4 및 도 5를 참조하면, 인터 예측의 병합 모드(merge mode)에서, 후보 움직임 정보 리스트는 현재 픽처 블록의 주변 블록의 움직임 정보에 기초하여 구성되고, 한편의 후보 움직임 정보는 후보 움직임 정보 리스트로부터 현재 픽처 블록의 초기 움직임 정보로서 선택된다. 후보 움직임 정보 리스트는 움직임 벡터, 참조 프레임 인덱스 정보 등을 포함한다. 예를 들어, (도 5에서 인덱스가 0 인 후보 움직임 정보를 참조하는) 주변 블록 A0의 움직임 정보가 현재 픽처 블록의 초기 움직임 정보로서 선택된다. 구체적으로, A0의 순방향 움직임 벡터가 현재 블록의 순방향 예측 움직임 벡터로서 사용되고, A0의 역방향 움직임 벡터가 현재 블록의 역방향 예측 움직임 벡터로서 사용된다.
방식 2:
인터 예측의 비 병합 모드(non-merge mode)에서, 움직임 벡터 예측된 값 리스트는 현재 픽처 블록의 주변 블록의 움직임 정보에 기초하여 구성되고, 움직임 벡터는 움직임 벡터 예측된 값 리스트로부터 현재 픽처 블록의 움직임 벡터 예측된 값으로서 선택된다. 이 경우, 현재 픽처 블록의 움직임 벡터는 주변 블록의 움직임 벡터 값일 수 있거나 또는 선택된 주변 블록의 움직임 벡터와 현재 픽처 블록의 움직임 벡터 사이의 차의 합일 수 있다. 움직임 벡터 차는 현재 픽처 블록에 대해 움직임 추정을 수행함으로써 획득된 움직임 벡터와 선택된 주변 블록의 움직임 벡터 사이의 차이다. 예를 들어, 움직임 벡터 예측된 값 리스트에서 인덱스 1 및 2에 대응하는 움직임 벡터가 현재 픽처 블록의 순방향 움직임 벡터 및 역방향 움직임 벡터로서 선택된다.
전술한 방식 1 및 방식 2는 단지 픽처 블록의 초기 움직임 정보를 획득하는 2 개의 특정 방식일 뿐이라는 것을 이해해야 한다. 본 출원에서, 픽처 블록의 초기 움직임 정보를 획득하는 방식은 제한되지 않으며, 픽처 블록의 초기 움직임 정보가 획득될 수 있는 모든 방식은 본 출원의 보호 범위 내에 속할 것이다.
(302): 초기 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정하며, 여기서 N 개의 순방향 참조 블록은 순방향 참조 픽처 내에 위치하고, N 개의 역방향 참조 블록은 역방향 참조 픽처 내에 위치하고, N은 1보다 큰 정수이다.
도 6을 참조하면, 본 출원의 이러한 실시예에서 현재 픽처 블록이 속하는 현재 픽처는 2 개의 참조 픽처, 즉 순방향 참조 픽처 및 역방향 참조 픽처를 갖는다.
예에서, 초기 움직임 정보는 순방향 예측 방향의 제 1 움직임 벡터 및 제 1 참조 픽처 인덱스, 및 역방향 예측 방향의 제 2 움직임 벡터 및 제 2 참조 픽처 인덱스를 포함한다.
대응적으로, 단계(302)는,
제 1 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 제 1 참조 픽처 인덱스에 대응하는 순방향 참조 픽처 내 현재 픽처 블록의 초기 순방향 참조 블록의 위치를 결정하고, 초기 순방향의 위치를 제 1 탐색 개시 포인트(search start point)(도 8에서 (0, 0)으로 표시됨)로서 사용하고, 순방향 참조 픽처에서 (N-1) 개의 후보 순방향 참조 블록의 위치를 결정하는 단계; 및
제 2 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 제 2 참조 픽처 인덱스에 대응하는 역방향 참조 픽처 내 현재 픽처 블록의 초기 역방향 참조 블록의 위치를 결정하고, 초기 역방향 참조 블록의 위치를 제 2 탐색 개시 포인트로서 사용하고, 역방향 참조 픽처에서 (N-1) 개의 후보 역방향 참조 블록의 위치를 결정하는 단계를 포함할 수 있다.
예에서, 도 7을 참조하면, N 개의 순방향 참조 블록의 위치는 초기 순방향 참조 블록의 위치((0, 0)로 표시됨)와 (N-1) 개의 후보 순방향 참조 블록의 위치((0, -1), (-1, -1), (-1, 1), (1, -1), (1, 1) 등으로 표시됨)를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 (도 8에 도시된 바와 같은) 정수 화소 거리(integer pixel distance) 또는 분수 화소 거리(fractional pixel distance)이고, 여기서 N = 9이고; 또는 N 개의 역방향 참조 블록의 위치는 초기 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이며, 여기서 N = 9이다.
도 8을 참조하면, 움직임 추정 또는 움직임 보상 프로세스에서, MV 정밀도는 분수 화소 정밀도(예를 들어, 1/2 화소 정밀도 또는 1/4 화소 정밀도)일 수 있다. 픽처가 정수 화소의 화소 값만을 갖고, 현재의 MV 정밀도가 분수 화소 정밀도이면, 분수 화소 위치의 화소 값을 획득하기 위해서는 보간 필터를 사용하고 참조 픽처의 정수 화소 위치의 화소 값을 사용함으로써 보간이 수행되어야 하며, 획득된 화소 값은 현재 블록의 예측 블록의 값으로 사용된다. 특정 보간 프로세스는 사용되는 보간 필터와 관련된다. 일반적으로, 참조 샘플 주위의 정수 샘플의 화소 값이 선형적으로 가중되어 참조 샘플의 값을 획득할 수 있다. 공통 보간 필터는 4-탭, 6-탭 및 8-탭 보간 필터 등을 포함한다.
도 7에 도시된 바와 같이, Ai, j는 정수 화소 위치에 있는 샘플이고, 그 비트 폭은 bitDepth이다. a0,0, b0,0, c0,0, d0,0, h0,0, n0,0, e0,0, i0,0, p0,0, f0,0, j0,0, q0,0, g0,0, k0,0 및 r0,0은 분수 화소 위치에 있는 샘플이다. 8-탭 보간 필터가 사용되면, 다음의 공식을 사용함으로써 계산을 통해 a0,0 이 획득될 수 있다.
a0,0=(C0*A-3,0+C1*A-2,0+C2*A-1,0+C3*A0,0+C4*A1,0+C5*A2,0+C6*A3,0+C7*A4,0)>> shift1
전술한 수학식에서, Ck 는 보간 필터의 계수이고, k = 0, 1, ..., 7이다. 보간 필터의 계수의 합이 N의 2 제곱이면, 보간 필터의 이득은 N이다. 예를 들어, N이 6이면 보간 필터의 이득이 6 비트라는 것을 나타낸다. shift1은 우측 시프트의 비트 량이고, shift1은 bitDepth - 8로 설정될 수 있으며, 여기서 bitDepth는 타겟 비트 폭이다. 이러한 방식으로, 전술한 수학식에 기초하여, 예측 블록의 화소 값의 최종적으로 획득된 비트 폭은 bitDepth + 6 - shift1 = 14 비트이다.
(303): 매칭 비용 기준(matching cost criterion)에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하며, 여기서 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고; 참조 블록의 각 쌍의 위치에 대해, 제 1 위치 오프셋 및 제 2 위치 오프셋은 미러 관계(mirror relationship)에 있고, 제 1 위치 오프셋은 초기 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내며; M은 1 이상의 정수이고, M은 N 이하이다.
도 9를 참조하면, 초기 순방향 참조 블록(902)의 위치(즉, 순방향 탐색 개시 포인트)에 대한 순방향 참조 픽처(Ref0) 내 후보 순방향 참조 블록(904)의 위치의 오프셋은 MVD0(delta0x, delta0y)이다. 초기 역방향 참조 블록(903)의 위치(즉, 역방향 탐색 개시 포인트)에 대한 역방향 참조 픽처(Ref1) 내 후보 역방향 참조 블록(905)의 위치의 오프셋은 MVD1(delta1x, delta1y)이다.
MVD0 = -MVD1, 구체적으로는:
delta0x = -delta1x; 및
delta0y = -delta1y.
상이한 예에서, 단계(303)는,
참조 블록(하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 M 개 쌍의 위치로부터, 최소 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하는 단계; 또는 참조 블록의 M 개 쌍의 위치로부터, 매칭 에러 임계치 이하의 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하는 단계를 포함할 수 있으며, 여기서 M은 N이하이다. 또한, 순방향 참조 블록의 화소 값과 역방향 참조 블록의 화소 값 사이의 차는 절대 차의 합(Sum of absolute differences, SAD), 절대 변환 차의 합(Sum of absolute transformation differences, SATD), 절대 차 제곱의 합(sum of absolute square differences) 등을 사용함으로써 측정될 수 있다.
(304): 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다.
예에서, 단계(304)에서, 현재 화소 블록의 화소 값의 예측된 값을 획득하기 위해, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 대해 가중 처리(weighted processing)가 수행된다.
선택적으로, 실시예에서, 도 3에 도시된 방법은 현재 픽처 블록의 업데이트된 움직임 정보를 획득하는 단계를 더 포함하며, 여기서 업데이트된 움직임 정보는 업데이트된 순방향 움직임 벡터 및 업데이트된 역방향 움직임 벡터를 포함하고, 업데이트된 순방향 움직임 벡터는 타겟 순방향 참조 블록의 위치를 가리키며, 업데이트된 역방향 움직임 벡터는 타겟 역방향 참조 블록의 위치를 가리킨다. 현재 픽처 블록의 업데이트된 움직임 정보는 타겟 순방향 참조 블록의 위치, 타겟 역방향 참조 블록의 위치 및 현재 픽처 블록의 위치에 기초하여 획득될 수 있고; 또는 결정된 참조 블록의 쌍의 위치에 대응하는 제 1 위치 오프셋 및 제 2 위치 오프셋에 기초하여 획득될 수 있다.
픽처 블록의 움직임 벡터는 업데이트된다. 이러한 방식으로, 다음 픽처의 예측 동안 픽처 블록에 기초하여 다른 픽처 블록이 효과적으로 예측될 수 있다.
본 출원의 이러한 실시예에서, 순방향 참조 픽처 내 N 개의 순방향 참조 블록의 위치 및 역방향 참조 블록 내 N 개의 역방향 참조 블록의 위치는 참조 블록의 N 개 쌍의 위치를 형성한다는 것을 알 수 있다. 미러 관계는 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 존재한다. 이에 기초하여, 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치는 참조 블록의 N 개 쌍의 위치로부터, 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로서 결정되어, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이러한 실시예의 방법은 템플릿 매칭 블록을 미리 계산하는 프로세스 및 템플릿 매칭 블록을 사용함으로써 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 회피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다.
다음은 도 10을 참조하여 본 출원의 실시예의 픽처 예측 방법을 상세히 설명한다.
도 10은 본 출원의 실시예에 따른 픽처 예측 방법의 개략적인 흐름도이다. 도 10에 도시된 방법은 비디오 코딩 장치, 비디오 코덱, 비디오 코딩 시스템, 또는 비디오 코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다. 도 10에 도시된 방법은 코딩 프로세스 또는 디코딩 프로세스에서 사용될 수 있다. 보다 구체적으로, 도 10에 도시된 방법은 인코딩 또는 디코딩 동안 인터 예측 프로세스에서 사용될 수 있다.
도 10에 도시된 방법은 단계(1001) 내지 단계(1007)를 포함하고, 단계(1001) 내지 단계(1007)는 아래에서 상세히 설명된다.
(1001): 현재 블록의 초기 움직임 정보를 획득한다.
예를 들어, 인터 예측/코딩 모드가 병합인 픽처 블록의 경우, 움직임 정보 그룹이 병합 인덱스에 기초하여 병합 후보 리스트로부터 획득되고, 움직임 정보는 현재 블록의 초기 움직임 정보이다. 예를 들어, 인터 예측/코딩 모드가 AMVP 인 픽처 블록의 경우, MVP는 AMVP 모드의 인덱스에 기초하여 MVP 후보 리스트로부터 획득되고, 현재 블록의 MV는 MVP와 비트스트림에 포함된 MVD의 합을 획득함으로써 획득된다. 초기 움직임 정보는 참조 픽처 표시 정보 및 움직임 벡터를 포함한다. 순방향 참조 픽처 및 역방향 참조 픽처는 참조 픽처 표시 정보를 이용함으로써 결정된다. 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치는 움직임 벡터를 이용함으로써 결정된다.
(1002): 순방향 참조 픽처 내 현재 픽처 블록의 개시 순방향 참조 블록(start forward reference block)의 위치를 결정하며, 여기서 개시 순방향 참조 픽처의 위치는 순방향 참조 픽처 내의 탐색 개시 포인트(탐색 기준 포인트(search base point)라고도 함)이다.
구체적으로, 순방향 참조 픽처 내의 탐색 기준 포인트(이하 제 1 탐색 기준 포인트로 지칭함)는 순방향 MV 및 현재 블록의 위치 정보에 기초하여 획득된다. 예를 들어, 순방향 MV 정보는 (MV0x, MV0y)이다. 현재 블록의 위치 정보는 (B0x, B0y)이다. 순방향 참조 픽처에서 제 1 탐색 기준 포인트는 (MV0x + B0x, MV0y + B0y)이다.
(1003): 역방향 참조 픽처 내 현재 픽처 블록의 개시 역방향 참조 블록의 위치를 결정하며, 여기서 개시 역방향 참조 픽처의 위치는 역방향 참조 픽처 내의 탐색 개시 포인트이다.
구체적으로, 역방향 참조 픽처 내의 탐색 기준 포인트(이하 제 2 탐색 기준 포인트로 지칭함)는 역방향 MV 및 현재 블록의 위치 정보에 기초하여 획득된다. 예를 들어, 역방향 MV 정보는 (MV1x, MV1y)이다. 현재 블록의 위치 정보는 (B0x, B0y)이다. 역방향 참조 픽처에서 제 2 탐색 기준 포인트는 (MV1x + B0x, MV1y + B0y)이다.
(1004): MVD 미러 제약에 기초하여, 가장 잘 매칭되는 참조 블록(즉, 하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 하나의 쌍의 위치를 결정하고, 최적의 순방향 움직임 벡터 및 최적의 역방향 움직임 벡터를 획득한다.
본 명세서에서 MVD 미러 제약은 다음과 같이 설명될 수 있다: 순방향 탐색 기준 포인트에 대한 순방향 참조 픽처 내 블록 위치의 오프셋은 MVD0(delta0x, delta0y)이다. 역방향 탐색 기준 포인트에 대한 역방향 참조 픽처 내 블록 위치의 오프셋은 MVD1(delta1x, delta1y)이다. 다음의 관계가 충족된다.
MVD0 = -MVD1, 구체적으로는:
delta0x = -delta1x; 및
delta0y = -delta1y.
도 7을 참조하면, 순방향 참조 픽처에서, 정수 화소 스텝의 움직임 탐색은 ((0, 0)으로 표시된) 탐색 기준 포인트를 개시 포인트로 사용하여 수행된다. 정수 화소 스텝은 탐색 기준 포인트에 대한 후보 참조 블록의 위치의 오프셋이 정수 화소 거리(integer pixel distance)라는 것을 의미한다. 탐색 기준 포인트가 정수 샘플인지에 관계없이 (개시 포인트는 정수 화소 또는 서브 화소, 예를 들어 1/2, 1/4, 1/8 또는 1/16일 수 있음), 정수 화소 스텝의 움직임 탐색이 먼저 수행되어, 현재 화소 블록의 순방향 참조 블록의 위치를 획득할 수 있다는 것을 유의해야 한다. 탐색이 정수 화소 스텝을 사용하여 수행될 때, 탐색 개시 포인트는 정수 화소일 수 있거나 또는 분수 화소일 수 있다는 것, 예를 들면 정수 화소, 1/2 화소, 1/4 화소, 1/8 화소 또는 1/16 화소일 수 있다는 것을 이해해야 한다.
도 7에 도시된 바와 같이, 포인트 (0, 0)가 탐색 기준 포인트로서 사용되며, 탐색 기준 포인트 주위의 정수 화소 스텝의 8 개의 탐색 포인트가 탐색되어 대응하는 후보 참조 블록의 위치를 획득한다. 도 7은 8 개의 후보 참조 블록을 도시한다. 순방향 탐색 기준 포인트의 위치에 대한 순방향 참조 픽처 내 순방향 후보 참조 블록의 위치의 오프셋이 (-1, -1)이면, 역방향 탐색 기준 포인트의 위치에 대한 역방향 참조 픽처 내 대응하는 역방향 후보 참조 블록의 위치의 오프셋은 (1, 1)이다. 그러므로 쌍을 이루는 순방향 및 역방향 후보 참조 블록의 위치가 획득된다. 참조 블록 쌍의 획득된 위치에 대해, 대응하는 2 개의 후보 참조 블록 사이의 매칭 비용이 계산된다. 최소 매칭 비용을 갖는 순방향 참조 블록 및 역방향 참조 블록이 최적의 순방향 참조 블록 및 최적의 역방향 참조 블록으로서 선택되고, 최적의 순방향 움직임 벡터 및 최적의 역방향 움직임 벡터가 획득된다.
(1005) 및 (1006): 단계(1004)에서 획득된 최적의 순방향 움직임 벡터를 사용하여 움직임 보상 프로세스를 수행하여 최적의 순방향 참조 블록의 화소 값을 획득하고; 단계(1004)에서 획득된 최적의 역방향 움직임 벡터를 사용하여 움직임 보상 프로세스를 수행하여, 최적의 역방향 참조 블록의 화소 값을 획득한다.
(1007): 최적의 순방향 참조 블록의 획득된 화소 값 및 최적의 역방향 참조 블록의 획득된 화소 값에 대해 가중 처리가 수행되어, 현재 화소 블록의 화소 값의 예측된 값을 획득한다.
구체적으로, 현재 픽처 블록의 화소 값의 예측된 값은 수학식 (2)에 기초하여 획득될 수 있다:
전술한 수학식에서, predSamplesL0'은 최적의 순방향 참조 블록이고, predSamplesL1'은 최적의 역방향 참조 블록이고, predSamples'는 현재 픽처 블록의 예측 블록이고, predSamplesL0'[x][y]는 샘플(x, y)에서의 최적의 순방향 참조 블록의 화소 값이고, predSamplesL1'[x][y]는 샘플(x, y)에서의 최적의 역방향 참조 블록의 화소 값이며, predSamples'[x][y]는 샘플(x, y)에서의 예측 블록의 최종 화소 값이다.
본 출원의 이러한 실시예에서, 사용되는 탐색 방법은 제한되지 않으며, 임의의 탐색 방법이 사용될 수 있다는 것을 유의해야 한다. 탐색을 통해 획득된 각각의 순방향 후보 블록에 대해, 순방향 후보 블록과 대응하는 역방향 후보 블록 사이의 차가 계산되고, 최소 SAD를 갖는 순방향 후보 블록과 역방향 후보 블록, 순방향 후보 블록에 대응하는 순방향 움직임 벡터, 및 역방향 후보 블록에 대응하는 역방향 움직임 벡터는 각각 최적의 순방향 참조 블록, 최적의 역방향 참조 블록, 최적의 순방향 참조 블록에 대응하는 최적의 순방향 움직임 벡터 및 최적의 역방향 참조 블록에 대응하는 최적의 역방향 움직임 벡터로서 선택된다. 대안적으로, 탐색을 통해 획득된 각각의 역방향 후보 블록에 대해, 단계 4에서 역방향 후보 블록과 대응하는 순방향 후보 블록 사이의 차가 계산되고, 최소 SAD를 갖는 역방향 후보 블록과 순방향 후보 블록, 역방향 후보 블록에 대응하는 역방향 움직임 벡터, 및 순방향 후보 블록에 대응하는 순방향 움직임 벡터는 각각 최적의 역방향 참조 블록, 최적의 순방향 참조 블록, 최적의 역방향 참조 블록에 대응하는 최적의 역방향 움직임 벡터 및 최적의 순방향 참조 블록에 대응하는 최적의 순방향 움직임 벡터로서 선택된다.
단계(1004)에서는 정수 화소 스텝에 기초한 탐색 방법의 예만이 제공된다는 것을 유의해야 한다. 실제로, 정수 화소 스텝을 사용하여 탐색하는 것 외에도, 분수 화소 스텝을 사용하여 탐색이 또한 사용될 수 있다. 예를 들어, 단계(1004)에서, 정수 화소 스텝을 사용하는 탐색 이후에, 분수 화소 스텝을 사용하여 탐색이 수행된다. 대안적으로, 분수 화소 단계를 이용하여 탐색이 직접 수행된다. 특정 탐색 방법은 본 명세서에서 제한되지 않는다.
본 출원의 이러한 실시예에서, 매칭 비용을 계산하는 방법은 제한되지 않는다는 것을 유의해야 한다. 예를 들어, SAD 기준, MR-SAD 기준 또는 다른 기준이 사용될 수 있다. 또한, 매칭 비용은 휘도 성분만을 사용하여 또는 휘도 성분 및 색차 성분을 둘 모두 사용하여 계산될 수 있다.
탐색 프로세스에서, 매칭 비용이 0이거나 또는 미리 설정된 임계치에 도달하면, 순회 동작(traversal operation) 또는 탐색 동작이 미리 종료될 수 있다는 점을 유의해야 한다. 탐색 방법의 조기 종료 조건은 본 명세서에서 제한되지 않는다.
단계(1005) 및 단계(1006)의 순서는 제한되지 않으며, 이들 단계는 동시에 수행될 수 있거나 또는 순서대로 수행될 수 있다는 것을 이해해야 한다.
기존의 방법에서는 템플릿 매칭 블록이 먼저 계산되어야 하고, 순방향 탐색 및 역방향 탐색이 템플릿 매칭 블록을 사용하여 별도로 수행되지만, 본 출원의 이러한 실시예에서는 매칭 블록을 탐색하는 프로세스에서, 매칭 비용이 순방향 참조 픽처 내 후보 블록 및 역방향 참조 픽처 내 후보 블록을 사용하여 직접 계산되어, 최소 매칭 비용을 갖는 두 개의 블록을 결정한다는 것을 알 수 있다. 이것은 픽처 예측 프로세스를 단순화하고 픽처 예측 정확도를 향상시키며, 복잡성을 감소시킨다.
도 11은 본 출원의 실시예에 따른 픽처 예측 방법의 개략적인 흐름도이다. 도 11에 도시된 방법은 비디오 코딩 장치, 비디오 코덱, 비디오 코딩 시스템, 또는 비디오 코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다. 도 11에 도시된 방법은 단계(1101) 내지 단계(1105)를 포함한다. 단계(1101) 내지 단계(1103) 및 단계(1105)에 대해서는, 도 10의 단계(1001) 내지 단계(1003) 및 단계(1007)의 설명을 참조한다. 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예와 도 10에 도시된 실시예의 차이점은 현재 최적의 순방향 및 역방향 참조 블록의 화소 값이 탐색 프로세스에서 유지되고 업데이트된다는 점에 있다. 탐색이 완료된 후에, 현재 픽처 블록의 화소 값의 예측된 값은 현재 최적의 순방향 및 역방향 참조 블록의 화소 값을 사용하여 계산될 수 있다.
예를 들어, 참조 블록의 N 개 쌍의 위치는 순회되어야 한다. Costi는 i 번째 매칭 비용이며 MinCost는 현재 최소 매칭 비용을 나타낸다. Bfi는 순방향 참조 블록의 화소 값이고, Bbi는 역방향 참조 블록의 화소 값이며, 여기서 화소 값은 i 번째 시간 동안 획득된다. BestBf는 현재 최적의 순방향 참조 블록의 값이고 BestBb는 현재 최적의 역방향 참조 블록의 값이다. CalCost(M, N)은 블록 M과 블록 N의 매칭 비용을 나타낸다.
탐색이 개시될 때(i = 1), MinCost = Cost0 = CalCost(Bf0, Bb0), BestBf = Bf0 및 BestBb = Bb0이다.
이어서 참조 블록의 다른 쌍이 순회될 때, BestBf 및 BestBb가 실시간으로 업데이트된다. 예를 들어, i 번째(i>1) 탐색 라운드가 수행될 때, Costi<MinCost 이면, BestBf=Bfi 이고 BestBb=Bbi 이며; 그렇지 않으면, 업데이트가 수행되지 않는다.
탐색이 끝날 때, BestBf 및 BestBb는 현재 블록의 화소 값의 예측된 값을 획득하는데 사용된다.
도 12는 본 출원의 실시예에 따른 픽처 예측 방법의 개략적인 흐름도이다. 도 12에 도시된 방법은 비디오 코딩 장치, 비디오 코덱, 비디오 코딩 시스템, 또는 비디오 코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다. 도 12에 도시된 방법은 코딩 프로세스 또는 디코딩 프로세스에서 사용될 수 있다. 보다 구체적으로, 도 12에 도시된 방법은 인코딩 또는 디코딩 동안 인터 예측 프로세스에서 사용될 수 있다. 프로세스(1200)는 비디오 인코더(20) 또는 비디오 디코더(30)에 의해 수행될 수 있고, 구체적으로는 비디오 인코더(20) 또는 비디오 디코더(30)의 움직임 보상 유닛에 의해 수행될 수 있다. 복수의 비디오 프레임을 갖는 비디오 데이터 스트림에 대해, 비디오 인코더 또는 비디오 디코더는 현재 비디오 프레임의 현재 픽처 블록의 화소 값의 예측된 값을 예측하기 위해, 다음과 같은 단계를 포함하는 프로세스(1200)를 수행하는데 사용되는 것으로 가정된다.
도 12에 도시된 방법은 단계(1201) 내지 단계(1204)를 포함한다. 단계(1201), 단계(1202) 및 단계(1204)에 대해서는 도 3의 단계(301), 단계(302) 및 단계(304)의 설명을 참조한다. 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예와 도 3에 도시된 실시예 사이의 차이점은 다음과 같다: 단계(1203)에서, 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치는 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치로서 결정되며, 여기서 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고; 참조 블록의 각 쌍의 위치에 대해, 제 1 위치 오프셋 및 제 2 위치 오프셋은 시간 도메인 거리에 기초한 비례 관계에 있고, 제 1 위치 오프셋은 초기 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내며; M은 1 이상의 정수이고, M은 N 이하이다.
도 13을 참조하면, 초기 순방향 참조 블록(1302)의 위치(즉, 순방향 탐색 개시 포인트)에 대한 순방향 참조 픽처(Ref0) 내 후보 순방향 참조 블록(1304)의 위치의 오프셋은 MVD0(delta0x, delta0y)이다. 초기 역방향 참조 블록(1303)의 위치(즉, 역방향 탐색 개시 포인트)에 대한 역방향 참조 픽처(Ref1) 내 후보 역방향 참조 블록(1305)의 위치의 오프셋은 MVD1(delta1x, delta1y)이다.
탐색 프로세스에서, 2 개의 매칭 블록의 위치 offsetoffsets는 미러 관계를 충족시키며, 미러 관계에서는 시간 도메인 간격이 고려되어야 한다. 여기서, TC, T0 및 T1은 각각 현재 프레임의 순간, 순방향 참조 픽처의 순간 및 역방향 참조 픽처의 순간을 나타낸다. TD0 및 TD1은 두 순간 사이의 시간 간격을 나타낸다.
TD0 = TC-T0; 및
TD1 = TC-T1.
특정 코딩 프로세스에서, TD0 및 TD1은 픽처 순서 카운트(picture order count, POC)를 사용하여 계산될 수 있다. 예를 들면:
TD0 = POCc-POC0 및
TD1=POCc-POC1.
여기서, POCc, POC0 및 POC1은 각각 현재 픽처의 POC, 순방향 참조 픽처의 POC 및 역방향 참조 픽처의 POC를 나타낸다. TD0은 현재 픽처와 순방향 참조 픽처 사이의 픽처 순서 카운트(picture order count, POC) 거리를 나타내고, TD1은 현재 픽처와 역방향 참조 픽처 사이의 POC 거리를 나타낸다.
delta0 = (delta0x, delta0y); 및
delta1 = (delta1x, delta1y).
시간 도메인 간격을 고려하는 미러 관계는 다음과 같다:
delta0x = (TD0/TD1)*delta1x; 및
delta0y = (TD0/TD1)*delta1y; 또는
delta0x/delta1x = (TD0/TD1); 및
delta0y/delta1y = (TD0/TD1).
본 출원의 이러한 실시예에서, 순방향 참조 픽처 내 N 개의 순방향 참조 블록의 위치 및 역방향 참조 블록 내 N 개의 역방향 참조 블록의 위치는 참조 블록의 N 개 쌍의 위치를 형성한다는 것을 알 수 있다. 시간 도메인 거리에 기초한 비례 관계는 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 존재한다. 이에 기초하여, 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치는 참조 블록의 N 개 쌍의 위치로부터, 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로서 결정되어, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이러한 실시예의 방법은 템플릿 매칭 블록을 미리 계산하는 프로세스 및 템플릿 매칭 블록을 사용함으로써 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 회피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다.
전술한 실시예에서, 탐색 프로세스는 한 번 수행된다. 또한, 반복 방법을 이용하여 복수의 탐색 라운드가 수행될 수 있다. 구체적으로, 순방향 참조 블록 및 역방향 참조 블록이 각각의 탐색 라운드에서 획득된 후에, 현재 개선된 MV에 기초하여 한 번 이상의 탐색 라운드가 수행될 수 있다.
본 출원의 실시예에서 픽처 예측 방법의 프로세스는 도 14를 참조하여 아래에서 상세히 설명된다. 도 3에 도시된 방법과 유사하게, 도 14에 도시된 방법은 또한 비디오 코딩 장치, 비디오 코덱, 비디오 코딩 시스템, 또는 비디오 코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다. 도 14에 도시된 방법은 코딩 프로세스 또는 디코딩 프로세스에서 사용될 수 있다. 구체적으로, 도 14에 도시된 방법은 인코딩 또는 디코딩 동안 인터 예측 프로세스에서 사용될 수 있다.
도 14에 도시된 방법은 다음과 같은 단계(1401) 내지 단계(1404)를 포함한다.
(1401): 현재 픽처 블록의 i 번째 라운드 움직임 정보를 획득한다.
본 명세서에서 픽처 블록은 처리될 픽처 내의 픽처 블록 또는 처리될 픽처의 서브 픽처일 수 있다. 또한, 본 명세서에서 픽처 블록은 코딩 프로세스에서 코딩될 픽처 블록 또는 디코딩 프로세스에서 디코딩될 픽처 블록일 수 있다.
i = 1 이면, i 번째 라운드 움직임 정보는 현재 픽처 블록의 초기 움직임 정보이다.
i > 1 이면, i 번째 라운드 움직임 정보는 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치를 가리키는 순방향 움직임 벡터 및 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치를 가리키는 역방향 움직임 벡터를 포함한다.
또한, 초기 움직임 정보는 (보통 양방향 예측인) 예측 방향의 표시 정보, (보통 주변 블록의 움직임 벡터인) 참조 픽처 블록을 가리키는 움직임 벡터 및 (보통 참조 픽처 정보로 이해되는) 참조 픽처 블록이 위치하는 픽처의 정보를 포함할 수 있다. 움직임 벡터는 순방향 움직임 벡터 및 역방향 움직임 벡터를 포함하고, 참조 픽처 정보는 순방향 예측 참조 픽처 블록 및 역방향 예측 참조 픽처 블록의 참조 프레임 인덱스 정보를 포함한다.
픽처 블록의 초기 움직임 정보는 복수의 방식으로 획득될 수 있다. 예를 들어, 픽처 블록의 초기 움직임 정보는 다음과 같은 방식 1 및 방식 2로 획득될 수 있다.
방식 1:
도 4 및 도 5를 참조하면, 인터 예측의 병합 모드에서, 후보 움직임 정보 리스트는 현재 픽처 블록의 주변 블록의 움직임 정보에 기초하여 구성되고, 한편의 후보 움직임 정보는 후보 움직임 정보 리스트로부터 현재 픽처 블록의 초기 움직임 정보로서 선택된다. 후보 움직임 정보 리스트는 움직임 벡터, 참조 프레임 인덱스 정보 등을 포함한다. 예를 들어, (도 5에서 인덱스가 0 인 후보 움직임 정보를 참조하는) 주변 블록 A0의 움직임 정보가 현재 픽처 블록의 초기 움직임 정보로서 선택된다. 구체적으로, A0의 순방향 움직임 벡터가 현재 블록의 순방향 예측 움직임 벡터로서 사용되고, A0의 역방향 움직임 벡터가 현재 블록의 역방향 예측 움직임 벡터로서 사용된다.
방식 2:
인터 예측의 비 병합 모드에서, 움직임 벡터 예측된 값 리스트는 현재 픽처 블록의 주변 블록의 움직임 정보에 기초하여 구성되고, 움직임 벡터는 움직임 벡터 예측된 값 리스트로부터 현재 픽처 블록의 움직임 벡터 예측된 값으로서 선택된다. 이 경우, 현재 픽처 블록의 움직임 벡터는 주변 블록의 움직임 벡터 값일 수 있거나 또는 선택된 주변 블록의 움직임 벡터와 현재 픽처 블록의 움직임 벡터 사이의 차의 합일 수 있다. 움직임 벡터 차는 현재 픽처 블록에 대해 움직임 추정을 수행함으로써 획득된 움직임 벡터와 선택된 주변 블록의 움직임 벡터 사이의 차이다. 예를 들어, 움직임 벡터 예측된 값 리스트에서 인덱스 1 및 2에 대응하는 움직임 벡터가 현재 픽처 블록의 순방향 움직임 벡터 및 역방향 움직임 벡터로서 선택된다.
전술한 방식 1 및 방식 2는 단지 픽처 블록의 초기 움직임 정보를 획득하는 2 개의 특정 방식일 뿐이라는 것을 이해해야 한다. 본 출원에서, 예측 블록의 움직임 정보를 획득하는 방식은 제한되지 않으며, 픽처 블록의 초기 움직임 정보가 획득될 수 있는 모든 방식은 본 출원의 보호 범위 내에 속할 것이다.
(1402): i 번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정하며, 여기서 N 개의 순방향 참조 블록은 순방향 참조 픽처 내에 위치하고, N 개의 역방향 참조 블록은 역방향 참조 픽처 내에 위치하며, N은 1보다 큰 정수이다.
예에서, i 번째 라운드 움직임 정보는 순방향 움직임 벡터, 순방향 참조 픽처 인덱스, 역방향 움직임 벡터, 및 역방향 참조 픽처 인덱스를 포함한다.
대응적으로, 단계(1402)는,
순방향 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 순방향 참조 픽처 인덱스에 대응하는 순방향 참조 픽처 내 현재 픽처 블록의 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치를 결정하고, (i-1) 번째 라운드 타겟 순방향 참조 블록을 if 번째 탐색 개시 포인트로서 사용하고, 순방향 참조 픽처에서 (N-1) 개의 후보 순방향 참조 블록의 위치를 결정하는 단계; 및
역방향 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 역방향 참조 픽처 인덱스에 대응하는 역방향 참조 픽처 내 현재 픽처 블록의 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치를 결정하고, (i-1) 번째 라운드 타겟 역방향 참조 블록을 ib 번째 탐색 개시 포인트로서 사용하고, 역방향 참조 픽처에서 (N-1) 개의 후보 역방향 참조 블록의 위치를 결정하는 단계를 포함할 수 있다.
예에서, 도 7을 참조하면, N 개의 순방향 참조 블록의 위치는 i 번째 라운드 타겟 순방향 참조 블록의 위치((0)로 표시됨)와 (N-1) 개의 후보 순방향 참조 블록의 위치((0, -1), (-1, -1), (1, -1), (1,1) 등으로 표시됨)를 포함하고, i 번째 라운드 타겟 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 (도 8에 도시된 바와 같은) 정수 화소 거리 또는 분수 화소 거리이고, 여기서 N = 9이고; 또는 N 개의 역방향 참조 블록의 위치는 i 번째 라운드 타겟 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함하고, i 번째 라운드 타겟 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이며, 여기서 N = 9이다.
(1403): 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하며, 여기서 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고; 참조 블록의 각 쌍의 위치에 대해, 제 1 위치 오프셋 및 제 2 위치 오프셋은 미러 관계에 있고, 제 1 위치 오프셋은 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고; M은 1 이상의 정수이고, M은 N 이하이다.
제 1 위치 오프셋 및 제 2 위치 오프셋이 미러 관계에 있다는 것은, 제 1 위치 오프셋의 방향은 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 진폭 값은 제 2 위치 오프셋의 진폭 값과 동일하다는 것으로 이해될 수 있다.
도 9를 참조하면, (i-1) 번째 라운드 타겟 순방향 참조 블록(902)의 위치(즉, 순방향 탐색 기준 포인트)에 대한 순방향 참조 픽처(Ref0) 내 후보 순방향 참조 블록(904)의 위치의 오프셋은 MVD0(delta0x, delta0y)이다. (i-1) 번째 라운드 타겟 역방향 참조 블록(903)의 위치(즉, 역방향 탐색 기준 포인트)에 대한 역방향 참조 픽처(Ref1) 내 후보 역방향 참조 블록(905)의 위치의 오프셋은 MVD1(delta1x, delta1y)이다.
MVD0 = -MVD1, 구체적으로는:
delta0x = -delta1x; 및
delta0y = -delta1y.
상이한 예에서, 단계(1403)는,
참조 블록(하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 M 개 쌍의 위치로부터, 최소 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하는 단계; 또는 참조 블록의 M 개 쌍의 위치로부터, 매칭 에러 임계치 이하의 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하는 단계를 포함할 수 있으며, 여기서 M은 N이하이다. 또한, 순방향 참조 블록의 화소 값과 역방향 참조 블록의 화소 값 사이의 차는 절대 차의 합(Sum of absolute differences, SAD), 절대 변환 차의 합(Sum of absolute transformation differences, SATD), 절대 차 제곱의 합(sum of absolute square differences) 등을 사용함으로써 측정될 수 있다.
(1404): 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다.
예에서, 단계(1404)에서, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 대해 가중 처리가 수행되어, 현재 화소 블록의 화소 값의 예측된 값을 획득한다. 또한, 본 출원에서, 현재 픽처 블록의 화소 값의 예측된 값은 대안적으로 다른 방법을 사용하여 획득될 수 있다. 이것은 본 출원에서 제한되지 않는다.
픽처 블록의 움직임 벡터는 업데이트된다. 예를 들어, 초기 움직임 정보는 제 2 라운드 움직임 정보로 업데이트되고, 제 2 라운드 움직임 정보는 제 1 라운드 타겟 순방향 참조 블록의 위치를 가리키는 순방향 움직임 벡터 및 제 1 라운드 타겟 역방향 참조 블록의 위치를 가리키는 역방향 움직임 벡터를 포함한다. 이러한 방식으로, 다음 픽처의 예측 동안 픽처 블록에 기초하여 다른 픽처 블록이 효과적으로 예측될 수 있다.
본 출원의 이러한 실시예에서, 순방향 참조 픽처 내 N 개의 순방향 참조 블록의 위치 및 역방향 참조 블록 내 N 개의 역방향 참조 블록의 위치는 참조 블록의 N 개 쌍의 위치를 형성한다는 것을 알 수 있다. 미러 관계는 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 존재한다. 이에 기초하여, 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치는 참조 블록의 N 개 쌍의 위치로부터, 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로서 결정되어, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이러한 실시예의 방법은 템플릿 매칭 블록을 미리 계산하는 프로세스 및 템플릿 매칭 블록을 사용함으로써 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 회피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다. 또한, 반복 량을 증가시킴으로써 MV를 개선하는 정확도가 더욱 향상되어, 코딩 성능을 더욱 향상시킬 수 있다.
본 출원의 실시예에서 픽처 예측 방법의 프로세스는 도 15를 참조하여 아래에서 상세히 설명된다. 도 15에 도시된 방법은 또한 비디오 코딩 장치, 비디오 코덱, 비디오 코딩 시스템, 또는 비디오 코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다. 도 15에 도시된 방법은 코딩 프로세스 또는 디코딩 프로세스에서 사용될 수 있다. 구체적으로, 도 15에 도시된 방법은 인코딩 또는 디코딩 동안 인터 예측 프로세스에서 사용될 수 있다.
도 15에 도시된 방법은 구체적으로 단계(1501) 내지 단계(1508)를 포함하며, 단계(1501) 내지 단계(1508)는 아래에서 상세히 설명된다.
(1501): 현재 픽처 블록의 초기 움직임 정보를 획득한다.
예를 들어, 제 1 탐색 라운드의 경우, 현재 블록의 초기 움직임 정보가 사용된다. 예를 들어, 코딩 모드가 병합인 픽처 블록의 경우, 움직임 정보는 병합 모드의 인덱스에 기초하여 병합 후보 리스트로부터 획득되고, 움직임 정보는 현재 블록의 초기 움직임 정보이다. 예를 들어, 코딩 모드가 AMVP 인 픽처 블록의 경우, MVP는 AMVP 모드의 인덱스에 기초하여 MVP 후보 리스트로부터 획득되고, 현재 블록의 MV는 MVP와 비트스트림에 포함된 MVD의 합을 획득함으로써 획득된다. 제 1 탐색 라운드가 아닌 경우, 이전 탐색 라운드에서 업데이트된 MV 정보가 사용된다. 움직임 정보는 참조 픽처 표시 정보 및 움직임 벡터 정보를 포함한다. 순방향 참조 픽처 및 역방향 참조 픽처는 참조 픽처 표시 정보를 이용함으로써 결정된다. 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치는 움직임 벡터 정보를 이용함으로써 결정된다.
(1502): 순방향 참조 픽처에서 탐색 기준 포인트를 결정한다.
순방향 참조 픽처 내 탐색 기준 포인트는 순방향 MV 정보 및 현재 블록의 위치 정보에 기초하여 결정된다. 특정 프로세스는 도 10 또는 도 11의 실시예의 프로세스와 유사하다. 예를 들어, 순방향 MV 정보가 (MV0x, MV0y)이고 현재 블록의 위치 정보가 (B0x, B0y) 이면, 순방향 참조 픽처 내 탐색 기준 포인트는 (MV0x+B0x, MV0y+B0y)이다.
(1503): 역방향 참조 픽처에서 탐색 기준 포인트를 결정한다.
역방향 참조 픽처 내 탐색 기준 포인트는 역방향 MV 정보 및 현재 블록의 위치 정보에 기초하여 결정된다. 특정 프로세스는 도 10 또는 도 11의 실시예에서의 프로세스와 유사하다. 예를 들어, 역방향 MV 정보가 (MV1x, MV1y)이고 현재 블록의 위치 정보가 (B0x, B0y) 이면, 역방향 참조 픽처 내 탐색 기준 포인트는 (MV1x+B0x, MV1y+B0y)이다.
(1504): 순방향 참조 픽처 및 역방향 참조 픽처에서, MVD 미러 제약에 기초하여, 가장 잘 매칭되는 참조 블록(즉, 하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 하나의 쌍의 위치를 결정하고, 현재 픽처 블록의 개선된 순방향 움직임 벡터 및 개선된 역방향 움직임 벡터를 획득한다.
특정 프로세스는 도 10 또는 도 11의 실시예에서의 프로세스와 유사하다. 상세한 내용은 여기서 다시 설명되지 않는다.
(1505): 반복 종료 조건이 충족되는지를 결정하고, 반복 종료 조건이 충족되지 않으면 단계(1502 및 1503)를 수행한다. 반복 종료 조건이 충족되면, 단계(1506 및 1507)가 수행된다.
반복 탐색의 종료 조건의 설계는 본 명세서에서 제한되지 않는다. 예를 들어, 순회는 명시된 반복 량(L)에 기초하여 수행될 수 있거나 또는 다른 반복 종료 조건이 충족된다. 예를 들어, 현재의 반복 동작의 결과가 획득된 후에, MVD0 이 0에 가깝거나 0 이고 MVD1이 0에 가깝거나 0 이면, 예를 들어, MVD0 = (0, 0)이고 MVD1 = (0, 0 )이면, 반복 동작이 종료될 수 있다.
L은 미리 설정된 값이고 1보다 큰 정수이다. L은 픽처가 예측되기 전에 미리 설정된 숫자 값일 수 있고; L의 숫자 값은 픽처 예측의 정밀도 및 예측 블록의 탐색시의 복잡도에 기초하여 설정될 수 있고; L은 과거 경험적 값에 기초하여 설정될 수 있고; 또는 L은 중간의 탐색 프로세스의 결과에 대한 검증에 기초하여 결정될 수 있다.
예를 들면, 본 실시예에서, 정수 화소 스텝을 사용하여 총 2 개의 탐색 라운드가 수행된다. 제 1 탐색 라운드 동안, 초기 순방향 참조 블록의 위치는 탐색 기준 포인트로서 사용될 수 있고, (N-1) 개 후보 순방향 참조 블록의 위치는 순방향 참조 픽처(순방향 참조 영역이라고도 함)에서 결정된다. 초기 역방향 참조 블록의 위치는 탐색 기준 포인트로서 사용될 수 있고, (N-1) 개 후보 역방향 참조 블록의 위치는 역방향 참조 픽처(역방향 참조 영역이라고도 함)에서 결정된다. 참조 블록의 N 개 쌍의 위치에 있는 참조 블록의 하나 이상의 쌍에 대해, 대응하는 2 개의 참조 블록의 매칭 비용이 계산되는데, 예를 들면, 초기 순방향 참조 블록 및 초기 역방향 참조 블록의 매칭 비용이 계산되고, MVD 미러 제약을 충족시키는 후보 순방향 참조 블록 및 후보 역방향 참조 블록의 매칭 비용이 계산된다. 이러한 방식으로, 제 1 탐색 라운드에서 제 1 라운드 타겟 순방향 참조 블록의 위치 및 제 1 라운드 타겟 역방향 참조 블록의 위치가 획득되고, 업데이트된 움직임 정보가 또한 획득된다. 업데이트된 움직임 정보는 현재 픽처 블록의 위치가 제 1 라운드 타겟 순방향 참조 블록의 위치를 가리키는 것을 나타내는 순방향 움직임 벡터 및 현재 픽처 블록의 위치가 제 1 라운드 타겟 역방향 참조 블록의 위치를 가리키는 것을 나타내는 역방향 움직임 벡터를 포함한다. 업데이트된 움직임 정보 및 초기 움직임 정보는 동일한 참조 프레임 인덱스 등을 포함한다는 것을 이해해야 한다. 다음으로, 제 2 탐색 라운드가 수행된다. 제 1 라운드 타겟 순방향 참조 블록의 위치는 탐색 기준 포인트로서 사용되고, (N-1) 개 후보 순방향 참조 블록의 위치는 순방향 참조 픽처(순방향 참조 영역이라고도 함)에서 결정된다. 제 1 라운드 타겟 역방향 참조 블록의 위치는 탐색 기준 포인트로서 사용될 수 있고, (N-1) 개 후보 역방향 참조 블록의 위치는 역방향 참조 픽처(역방향 참조 영역이라고도 함)에서 결정된다. 참조 블록의 N 개 쌍의 위치에 있는 참조 블록의 하나 이상의 쌍에 대해, 대응하는 2 개의 참조 블록의 매칭 비용이 계산되는데, 예를 들면, 제 1 라운드 타겟 순방향 참조 블록 및 제 1 라운드 타겟 역방향 참조 블록의 매칭 비용이 계산되고, MVD 미러 제약을 충족시키는 후보 순방향 참조 블록 및 후보 역방향 참조 블록의 매칭 비용이 계산된다. 이러한 방식으로, 제 2 탐색 라운드에서 제 2 라운드 타겟 순방향 참조 블록의 위치 및 제 2 라운드 타겟 역방향 참조 블록의 위치가 획득되고, 업데이트된 움직임 정보가 또한 획득된다. 업데이트된 움직임 정보는 현재 픽처 블록의 위치가 제 2 라운드 타겟 순방향 참조 블록의 위치를 가리키는 것을 나타내는 순방향 움직임 벡터 및 현재 픽처 블록의 위치가 제 2 라운드 타겟 역방향 참조 블록의 위치를 가리키는 것을 나타내는 역방향 움직임 벡터를 포함한다. 업데이트된 움직임 정보 및 초기 움직임 정보는 참조 프레임 인덱스와 같이 다른 동일한 정보를 포함한다는 것을 이해해야 한다. 미리 설정된 반복 량(L)이 2일 때, 본 명세서의 제 2 탐색 프로세스에서, 제 2 라운드 타겟 순방향 참조 블록 및 제 2 라운드 타겟 역방향 참조 블록은 최종적으로 획득된 타겟 순방향 참조 블록 및 타겟 역방향 참조 블록(최적의 순방향 참조 블록 및 최적의 역방향 참조 블록이라고도 함)이다.
(1506) 및 (1507): 단계(1504)에서 획득된 최적의 순방향 움직임 벡터를 사용하여 움직임 보상 프로세스를 수행하여 최적의 순방향 참조 블록의 화소 값을 획득하고; 단계(1504)에서 획득된 최적의 역방향 움직임 벡터를 사용하여 움직임 보상 프로세스를 수행하여, 최적의 역방향 참조 블록의 화소 값을 획득한다.
(1508): 단계(1506 및 1507)에서 획득된 최적의 순방향 참조 블록의 화소 값 및 최적의 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다.
단계(1504)에서, 탐색(대안적으로 움직임 탐색으로 지칭함)은 순방향 참조 픽처 또는 역방향 참조 픽처에서 정수 화소 스텝을 이용하여 수행되어, 적어도 하나의 순방향 참조 블록의 위치 및 적어도 하나의 역방향 참조 블록의 위치를 획득할 수 있다. 탐색이 정수 화소 스텝을 사용하여 수행될 때, 탐색 개시 포인트는 정수 화소일 수 있거나 또는 분수 화소일 수 있는데, 예를 들면 정수 화소, 1/2 화소, 1/4 화소, 1/8 화소 또는 1/16 화소일 수 있다.
또한, 단계(1504)에서, 분수 화소 스텝은 또한 적어도 하나의 순방향 참조 블록의 위치 및 적어도 하나의 역방향 참조 블록의 위치를 탐색하는데 직접 사용될 수 있거나, 또는 정수 화소 스텝을 사용하는 탐색 및 분수 화소 스텝을 사용하는 탐색의 둘 모두에 직접 사용될 수 있다. 탐색 방법은 본 출원에서 제한되지 않는다.
단계(1504)에서, 참조 블록의 각 쌍의 어드레스에 대해, 순방향 참조 블록의 화소 값과 대응하는 역방향 참조 블록의 화소 값 사이의 차가 계산될 때, 각각의 순방향 참조 블록의 화소 값과 대응하는 역방향 참조 블록의 화소 값 사이의 차는 SAD, SATD, 절대 차 제곱의 합 등을 사용하여 측정될 수 있다. 그러나, 본 출원은 이것으로 제한되지 않는다.
현재 픽처 블록의 화소 값의 예측된 값이 최적의 순방향 예측된 블록 및 최적의 역방향 예측된 블록에 기초하여 결정될 때, 단계(1506) 및 단계(1507)에서 획득된 최적의 순방향 참조 블록의 화소 값 및 최적의 역방향 참조 블록에 대해 가중 처리가 수행될 수 있고, 가중 처리 후에 획득된 화소 값이 현재 픽처 블록의 화소 값의 예측된 값으로서 사용된다.
구체적으로, 현재 픽처 블록의 화소 값의 예측된 값은 수학식 (8)에 기초하여 획득될 수 있다:
전술한 수학식에서, predSamplesL0'[x][y]는 샘플(x, y)에서의 최적의 순방향 참조 블록의 화소 값이고, predSamplesL1'[x][y]는 샘플(x, y)에서의 최적의 역방향 참조 블록의 화소 값이며, predSamples'[x][y]는 샘플(x, y)에서의 현재 픽처 블록의 예측된 화소 값이다.
도 11을 참조하면, 현재 최적의 순방향 참조 블록 및 현재 최적의 역방향 참조 블록의 화소 값은 또한 본 출원의 이러한 실시예의 반복 탐색 프로세스에서 유지되고 업데이트될 수 있다. 탐색이 완료된 후에, 현재 픽처 블록의 화소 값의 예측된 값은 현재 최적의 순방향 및 역방향 참조 블록의 화소 값을 사용하여 직접 계산될 수 있다. 이러한 구현에서, 단계(1506 및 1507)는 선택적 단계이다.
예를 들어, 참조 블록의 N 개 쌍의 위치는 순회되어야 한다. Costi는 i 번째 매칭 비용이며 MinCost는 현재 최소 매칭 비용을 나타낸다. Bfi는 순방향 참조 블록의 화소 값이고, Bbi는 역방향 참조 블록의 화소 값이며, 여기서 화소 값은 i 번째 시간 동안 획득된다. BestBf는 현재 최적의 순방향 참조 블록의 화소 값이고 BestBb는 현재 최적의 역방향 참조 블록의 화소 값이다. CalCost(M, N)은 블록 M과 블록 N의 매칭 비용을 나타낸다.
탐색이 개시될 때(i = 1), MinCost = Cost0 = CalCost(Bf0, Bb0), BestBf = Bf0 및 BestBb = Bb0이다.
이어서 참조 블록의 다른 쌍이 순회될 때, BestBf 및 BestBb가 실시간으로 업데이트된다. 예를 들어, i 번째(i>1) 탐색 라운드가 수행될 때, Costi < MinCost 이면, BestBf=Bfi 이고 BestBb=Bbi 이며; 그렇지 않으면, 업데이트가 수행되지 않는다.
탐색이 끝날 때, BestBf 및 BestBb는 현재 블록의 화소 값의 예측된 값을 획득하는데 사용된다.
도 12에 도시된 전술한 실시예에서, 탐색 프로세스는 한 번 수행된다. 또한, 반복 방법을 이용하여 복수의 탐색 라운드가 수행될 수 있다. 구체적으로, 순방향 참조 블록 및 역방향 참조 블록이 각각의 탐색 라운드에서 획득된 후에, 현재 개선된 MV에 기초하여 하나 이상의 탐색 라운드가 수행될 수 있다.
본 출원의 실시예에서 픽처 예측 방법(1600)의 프로세스는 도 16를 참조하여 아래에서 상세히 설명된다. 도 16에 도시된 방법은 또한 비디오 코딩 장치, 비디오 코덱, 비디오 코딩 시스템, 또는 비디오 코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다. 도 16에 도시된 방법은 코딩 프로세스 또는 디코딩 프로세스에서 사용될 수 있다. 구체적으로, 도 16에 도시된 방법은 인코딩 또는 디코딩 동안 인터 예측 프로세스에서 사용될 수 있다.
도 16에 도시된 방법(1600)은 단계(1601) 내지 단계(1604)를 포함한다. 단계(1601), 단계(1602) 및 단계(1604)에 대해서는 도 14의 단계(1401), 단계(1402) 및 단계(1404)의 설명을 참조한다. 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예와 도 14에 도시된 실시예 사이의 차이점은 다음과 같다: 단계(1603)에서, 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치는 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치로서 결정되며, 여기서 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고; 참조 블록의 각 쌍의 위치에 대해, 제 1 위치 오프셋 및 제 2 위치 오프셋은 시간 도메인 거리에 기초한 비례 관계에 있고, 제 1 위치 오프셋은 초기 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내며; M은 1 이상의 정수이고, M은 N 이하이다.
도 13을 참조하면, 초기 순방향 참조 블록(1302)의 위치(즉, 순방향 탐색 개시 포인트)에 대한 순방향 참조 픽처(Ref0) 내 후보 순방향 참조 블록(1304)의 위치의 오프셋은 MVD0(delta0x, delta0y)이다. 초기 역방향 참조 블록(1303)의 위치(즉, 역방향 탐색 개시 포인트)에 대한 역방향 참조 픽처(Ref1) 내 후보 역방향 참조 블록(1305)의 위치의 오프셋은 MVD1(delta1x, delta1y)이다.
탐색 프로세스에서, 2 개의 매칭 블록의 위치 offsetoffsets는 미러 관계를 충족시키며, 미러 관계에서는 시간 도메인 간격이 고려되어야 한다. 여기서, TC, T0 및 T1은 각각 현재 프레임의 순간, 순방향 참조 픽처의 순간 및 역방향 참조 픽처의 순간을 나타낸다. TD0 및 TD1은 두 순간 사이의 시간 간격을 나타낸다.
TD0 = TC-T0; 및
TD1 = TC-T1.
특정 코딩 프로세스에서, TD0 및 TD1은 픽처 순서 카운트(picture order count, POC)를 사용하여 계산될 수 있다. 예를 들면:
TD0 = POCc-POC0; 및
TD1 = POCc-POC1.
여기서, POCc, POC0 및 POC1은 각각 현재 픽처의 POC, 순방향 참조 픽처의 POC 및 역방향 참조 픽처의 POC를 나타낸다. TD0은 현재 픽처와 순방향 참조 픽처 사이의 픽처 순서 카운트(picture order count, POC) 거리를 나타내고, TD1은 현재 픽처와 역방향 참조 픽처 사이의 POC 거리를 나타낸다.
delta0 = (delta0x, delta0y); 및
delta1 = (delta1x, delta1y).
시간 도메인 간격을 고려하는 미러 관계는 다음과 같다:
delta0x = (TD0/TD1)*delta1x; 및
delta0y = (TD0/TD1)*delta1y; 또는
delta0x/delta1x = (TD0/TD1); 및
delta0y/delta1y = (TD0/TD1).
상이한 예에서, 단계(1603)는,
참조 블록(하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 M 개 쌍의 위치로부터, 최소 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하는 단계; 또는 참조 블록의 M 개 쌍의 위치로부터, 매칭 에러 임계치 이하의 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하는 단계를 포함할 수 있으며, 여기서 M은 N 이하이다. 또한, 순방향 참조 블록의 화소 값과 역방향 참조 블록의 화소 값 사이의 차는 절대 차의 합(Sum of absolute differences, SAD), 절대 변환 차의 합(Sum of absolute transformation differences, SATD), 절대 차 제곱의 합 등을 사용함으로써 측정될 수 있다.
본 출원의 이러한 실시예에서, 순방향 참조 픽처 내 N 개의 순방향 참조 블록의 위치 및 역방향 참조 블록 내 N 개의 역방향 참조 블록의 위치는 참조 블록의 N 개 쌍의 위치를 형성한다는 것을 알 수 있다. 참조 블록의 N 개 쌍의 위치에 있는 참조 블록의 각 쌍의 위치에 대해, 시간 도메인 거리에 기초한 비례 관계가 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 존재한다. 이에 기초하여, 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치는 참조 블록의 N 개 쌍의 위치로부터, 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로서 결정되어, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이러한 실시예의 방법은 템플릿 매칭 블록을 미리 계산하는 프로세스 및 템플릿 매칭 블록을 사용함으로써 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 회피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다. 또한, 반복 량을 증가시킴으로써 MV를 개선하는 정확도가 더욱 향상되어, 코딩 성능을 더욱 향상시킬 수 있다.
본 출원의 실시예에서 픽처 예측 방법의 프로세스는 도 17를 참조하여 아래에서 상세히 설명된다. 도 17에 도시된 방법은 또한 비디오 코딩 장치, 비디오 코덱, 비디오 코딩 시스템, 또는 비디오 코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다. 도 17에 도시된 방법은 코딩 프로세스 또는 디코딩 프로세스에서 사용될 수 있다. 구체적으로, 도 17에 도시된 방법은 인코딩 또는 디코딩 동안 인터 예측 프로세스에서 사용될 수 있다.
도 17에 도시된 방법은 단계(1701) 내지 단계(1708)를 포함한다. 단계(1701) 내지 단계(1703) 및 단계(1705) 내지 단계(1708)에 대해서는, 도 15의 단계(1501) 내지 단계(1503) 및 단계(1505) 내지 단계(1508)의 설명을 참조한다. 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예와 도 15에 도시된 실시예 사이의 차이점은:
(1704): 시간 도메인 거리를 고려하는 MVD 미러 제약에 기초하여, 가장 잘 매칭되는 참조 블록(즉, 하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 하나의 쌍의 위치를 결정하고, 현재 픽처 블록의 개선된 순방향 움직임 벡터 및 개선된 역방향 움직임 벡터를 획득하는 데 있다.
MVD가 본 명세서의 시간 도메인 거리에 기초하는 미러 제약은 다음과 같이 설명될 수 있다: 순방향 탐색 기준 포인트에 대한 순방향 참조 픽처 내 블록 위치의 위치 오프셋 MVD0(delta0x, delta0y) 및 역방향 탐색 기준 포인트에 대한 역방향 참조 픽처의 블록 위치의 위치 오프셋 MVD1(delta1x, delta1y)은 다음의 관계를 충족시킨다:
2 개의 매칭 블록의 위치 offsetoffsets은 시간 도메인 거리에 기초한 미러 관계를 충족시킨다. 여기서, TC, T0 및 T1은 각각 현재 프레임의 순간, 순방향 참조 픽처의 순간 및 역방향 참조 픽처의 순간을 나타낸다. TD0 및 TD1은 두 순간 사이의 시간 간격을 나타낸다.
TD0 = TC-T0; 및
TD1 = TC-T1.
특정 코딩 프로세스에서, TD0 및 TD1은 픽처 순서 카운트(picture order count, POC)를 사용하여 계산될 수 있다. 예를 들면:
TD0 = POCc-POC0; 및
TD1 = POCc-POC1.
여기서, POCc, POC0 및 POC1은 각각 현재 픽처의 POC, 순방향 참조 픽처의 POC 및 역방향 참조 픽처의 POC를 나타낸다. TD0은 현재 픽처와 순방향 참조 픽처 사이의 픽처 순서 카운트(picture order count, POC) 거리를 나타내고, TD1은 현재 픽처와 역방향 참조 픽처 사이의 POC 거리를 나타낸다.
delta0 = (delta0x, delta0y); 및
delta1 = (delta1x, delta1y).
시간 도메인 거리(시간 도메인 간격이라고도 함)을 고려하는 미러 관계는 다음과 같이 설명된다:
delta0x = (TD0/TD1)*delta1x; 및
delta0y = (TD0/TD1)*delta1y; 또는
delta0x/delta1x = (TD0/TD1); 및
delta0y/delta1y = (TD0/TD1).
특정 프로세스는 도 10 또는 도 11의 실시예에서의 프로세스와 유사하다. 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예에서, 시간 도메인 간격은 미러 관계에서 고려되거나 또는 고려되지 않는다는 것을 이해해야 한다. 실제 사용에서, 움직임 벡터 개선이 현재 프레임 또는 현재 블록에 대해 수행될 때 시간 도메인 간격이 미러 관계에서 고려되는지는 적응적으로 선택될 수 있다.
예를 들어, 표시 정보는 시퀀스 레벨 헤더 정보(SPS), 픽처 레벨 헤더 정보(PPS), 슬라이스 헤더(slice header) 또는 블록 비트스트림 정보에 추가되어, 현재 시퀀스, 현재 픽처, 현재 슬라이스(Slice) 또는 현재 블록에 사용된 미러 관계에서 시간 간격이 고려되는지를 표시할 수 있다.
대안적으로, 순방향 참조 픽처의 POC 및 역방향 참조 픽처의 POC에 기초하여, 현재 블록은 시간 간격이 현재 블록에 사용된 미러 관계에서 고려되는지를 적응적으로 결정한다.
예를 들어, | POCc-POC0 | - | POCc-POC1 |> T 이면, 사용된 미러 관계에 간격이 고려되어야 하고; 그렇지 않으면 사용된 미러 관계에 시간 간격이 고려되지 않는다. T는 본 명세서에서 미리 설정된 임계치이다. 예를 들어, T = 2 또는 T = 3 이다. T의 특정 값은 본 명세서에서 제한되지 않는다.
다른 예에서, | POCc-POC0 | 및 | POCc-POC1 | 중 더 큰 값과 | POCc-POC0 | 및 | POCc-POC1 | 중 더 작은 값의 비율이 임계치(R)보다 크다고, 다시 말해서 다음과 같다고 가정한다.
(Max(|POCc-POC0|,|POCc-POC1|)/Min(|POCc-POC0|,|POCc-POC1|))>R.
Max(A, B)는 A와 B 중 더 큰 값을 나타내고, Min(A, B)는 A와 B 중 더 작은 값을 나타낸다.
이 경우, 사용된 미러 관계에 대해 간격이 고려되어야 한다. | POCc-POC0 | 및 | POCc-POC1 | 중 더 큰 값과 | POCc-POC0 | 및 | POCc-POC1 | 중 더 작은 값의 비율이 임계치 R보다 크지 않으면, 사용된 미러 관계에 대해 시간 간격이 고려되지 않는다. 여기서 R은 미리 설정된 임계치이다. 예를 들어, R = 2 또는 R = 3이다. R의 특정 값은 본 명세서에서 제한되지 않는다.
본 출원의 이러한 실시예의 픽처 예측 방법은 구체적으로 인코더(예를 들어, 인코더(20)) 또는 디코더(예를 들어, 디코더(30))의 움직임 보상 모듈에 의해 수행될 수 있다는 것을 이해해야 한다. 또한, 본 출원의 이러한 실시예의 픽처 예측 방법은 비디오 픽처를 코딩 및/또는 디코딩해야 하는 모든 전자 디바이스 또는 장치에서 수행될 수 있다.
다음은 도 18 내지 도 21을 참조하여 본 출원의 실시예의 픽처 예측 방법을 상세히 설명한다.
도 18은 본 출원의 실시예에 따른 픽처 예측 장치(1800)의 개략적인 블록도이다. 예측 장치(1800)는 비디오 픽처를 디코딩하기 위한 인터 예측 및 비디오 픽처를 코딩하기 위한 인터 예측 둘 모두에 적용 가능하다는 것을 유의해야 한다. 본 명세서에서 예측 장치(1800)는 도 2a의 움직임 보상 유닛(44)에 대응할 수 있거나 또는 도 2b의 움직임 보상 유닛(82)에 대응할 수 있다는 것을 이해해야 한다. 예측 장치(1800)는,
현재 픽처 블록의 초기 움직임 정보를 획득하도록 구성된 제 1 획득 유닛(1801);
제 1 탐색 유닛(1802) - 제 1 탐색 유닛은, 초기 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정 - 여기서 N 개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N 개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수임 - 하고; 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정 - 여기서 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고; 참조 블록의 각 쌍의 위치에 대해, 제 1 위치 오프셋 및 제 2 위치 오프셋은 미러 관계에 있고, 제 1 위치 오프셋은 초기 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고; M은 1 이상의 정수이고, M은 N 이하임 - 하도록 구성됨 - ; 및
타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성된 제 1 예측 유닛(1803)을 포함할 수 있다.
제 1 위치 오프셋 및 제 2 위치 오프셋이 미러 관계에 있다는 것은 제 1 위치 오프셋 값이 제 2 위치 cf와 동일하다는 것으로 이해될 수 있다. 예를 들어, 제 1 위치 오프셋의 방향은 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 진폭 값은 제 2 위치 오프셋의 진폭 값과 동일하다.
바람직하게, 본 출원의 이러한 실시예의 장치(1800)에서, 제 1 예측 유닛(1803)은 또한 현재 픽처 블록의 업데이트된 움직임 정보를 획득하도록 구성되고, 여기서 업데이트된 움직임 정보는 업데이트된 순방향 움직임 벡터 및 업데이트된 역방향 움직임 벡터를 포함하고, 업데이트된 순방향 움직임 벡터는 타겟 순방향 참조 블록의 위치를 가리키고, 업데이트된 역방향 움직임 벡터는 타겟 역방향 참조 블록의 위치를 가리킨다,
픽처 블록의 움직임 벡터가 업데이트된다는 것을 알 수 있다. 이러한 방식으로, 다음 픽처의 예측 동안 픽처 블록에 기초하여 다른 픽처 블록이 효과적으로 예측될 수 있다.
본 출원의 이러한 실시예의 장치(1800)에서, N 개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치 및 (N-1) 개의 후보 순방향 참조 블록의 위치를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이고; 또는
N 개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이다.
본 출원의 이러한 실시예의 장치(1800)에서, 초기 움직임 정보는 순방향 예측 방향의 제 1 움직임 벡터 및 제 1 참조 픽처 인덱스, 및 역방향 예측 방향의 제 2 움직임 벡터 및 제 2 참조 픽처 인덱스를 포함한다.
초기 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정하는 양태에서, 제 1 탐색 유닛은 구체적으로,
제 1 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 제 1 참조 픽처 인덱스에 대응하는 순방향 참조 픽처 내 현재 픽처 블록의 초기 순방향 참조 블록의 위치를 결정하고, 초기 순방향 참조 블록의 위치를 제 1 탐색 개시 포인트로서 사용하고, 순방향 참조 픽처에서 (N-1) 개의 후보 순방향 참조 블록의 위치를 결정 - 여기서 N 개의 순방향 참조 블록의 위치는 초기 순방향 참조 블록의 위치 및 (N-1) 개의 후보 순방향 참조 블록의 위치를 포함함 - 하고;
제 2 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 제 2 참조 픽처 인덱스에 대응하는 역방향 참조 픽처 내 현재 픽처 블록의 초기 역방향 참조 블록의 위치를 결정하고, 초기 역방향 참조 블록의 위치를 제 2 탐색 개시 포인트로서 사용하고, 역방향 참조 픽처에서 (N-1) 개의 후보 역방향 참조 블록의 위치를 결정하도록 구성되며, 여기서 N 개의 역방향 참조 블록의 위치는 초기 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함한다.
본 출원의 이러한 실시예의 장치(1800)에서, 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하는 양태에서, 제 1 탐색 유닛(1802)은 구체적으로,
참조 블록의 M 개 쌍의 위치로부터, 최소 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하도록 구성되거나; 또는
또는 참조 블록의 M 개 쌍의 위치로부터, 매칭 에러 임계치 이하의 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하도록 구성되며, 여기서 M은 N이하이다.
장치(1800)는 도 3, 도 10 및 도 11에 도시된 방법을 수행할 수 있고, 장치(1800)는 구체적으로 비디오 코딩 장치, 비디오 디코딩 장치, 비디오 코딩 시스템 또는 비디오 코딩 기능을 갖는 다른 디바이스일 수 있다는 것을 이해해야 한다. 장치(1800)는 코딩 프로세스에서 픽처 예측을 수행하도록 구성될 수 있을 뿐만 아니라, 디코딩 프로세스에서 픽처 예측을 수행하도록 구성될 수 있다.
상세한 내용에 대해서는 본 명세서의 픽처 예측 방법에 관한 설명을 참조한다. 간결성을 위해, 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예의 예측 장치에 따르면, 순방향 참조 픽처 내 N 개의 순방향 참조 블록의 위치 및 역방향 참조 블록 내 N 개의 역방향 참조 블록의 위치는 참조 블록의 N 개 쌍의 위치를 형성한다는 것을 알 수 있다. 참조 블록의 N 개 쌍의 위치에 있는 참조 블록의 각 쌍의 위치에 대해, 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 미러 관계가 존재한다. 이에 기초하여, 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치는 참조 블록의 N 개 쌍의 위치로부터, 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로서 결정되어, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이러한 실시예의 방법은 템플릿 매칭 블록을 미리 계산하는 프로세스 및 템플릿 매칭 블록을 사용함으로써 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 회피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다.
도 19는 본 출원의 실시예에 따른 다른 픽처 예측 장치의 개략적인 블록도이다. 예측 장치(1900)는 비디오 픽처를 디코딩하기 위한 인터 예측 및 비디오 픽처를 코딩하기 위한 인터 예측 둘 모두에 적용 가능하다는 것을 유의해야 한다. 본 명세서에서 예측 장치(1900)는 도 2a의 움직임 보상 유닛(44)에 대응할 수 있거나 또는 도 2b의 움직임 보상 유닛(82)에 대응할 수 있다는 것을 이해해야 한다. 예측 장치(1900)는,
현재 픽처 블록의 초기 움직임 정보를 획득하도록 구성된 제 2 획득 유닛(1901);
제 2 탐색 유닛(1902) - 제 2 탐색 유닛은, 초기 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정 - 여기서 N 개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N 개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수임 - 하고; 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정 - 여기서 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고; 참조 블록의 각 쌍의 위치에 대해, 제 1 위치 오프셋 및 제 2 위치 오프셋은 시간 도메인 거리에 기초한 비례 관계에 있고, 제 1 위치 오프셋은 초기 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고; M은 1 이상의 정수이고, M은 N 이하임 - 하도록 구성됨 - ; 및
타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성된 제 2 예측 유닛(1903)을 포함할 수 있다.
참조 블록의 각 쌍의 위치에 대해, 제 1 위치 오프셋 및 제 2 위치 오프셋이 시간 도메인 거리에 기초한 비례 관계에 있다는 것은,
참조 블록의 각 쌍에 대해, 제 1 위치 오프셋과 제 2 위치 오프셋 사이의 비례 관계가 제 1 시간 도메인 거리와 제 2 시간 도메인 거리 사이의 비례 관계에 기초하여 결정되는 것으로 이해될 수 있으며, 여기서 제 1 시간 도메인 거리는 현재 픽처 블록이 속하는 현재 픽처와 순방향 참조 픽처 사이의 시간 도메인 거리를 나타내고, 제 2 시간 도메인 거리는 현재 픽처와 역방향 참조 픽처 사이의 시간 도메인 거리를 나타낸다.
구현에서, 제 1 위치 오프셋 및 제 2 위치 오프셋이 시간 도메인 거리에 기초한 비례 관계에 있다는 것은,
제 1 시간 도메인 거리가 제 2 시간 도메인 거리와 동일하면, 제 1 위치 오프셋의 방향이 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 진폭 값이 제 2 위치 오프셋의 진폭 값과 동일하다는 것; 또는
제 1 시간 도메인 거리가 제 2 시간 도메인 거리와 상이하면, 제 1 위치 오프셋의 방향이 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 진폭 값과 제 2 위치 오프셋의 진폭 값 사이의 비례 관계가 제 1 시간 도메인 거리와 제 2 시간 도메인 거리 사이의 비례 관계에 기초한다는 것으로서 이해될 수 있다.
제 1 시간 도메인 거리는 현재 픽처 블록이 속하는 현재 픽처와 순방향 참조 픽처 사이의 시간 도메인 거리를 나타내고, 제 2 시간 도메인 거리는 현재 픽처와 역방향 참조 픽처 사이의 시간 도메인 거리를 나타낸다.
선택적으로, 이러한 실시예의 장치에서, 제 2 예측 유닛(1903)은 또한 현재 픽처 블록의 업데이트된 움직임 정보를 획득하도록 구성되고, 여기서 업데이트된 움직임 정보는 업데이트된 순방향 움직임 벡터 및 업데이트된 역방향 움직임 벡터를 포함하고, 업데이트된 순방향 움직임 벡터는 타겟 순방향 참조 블록의 위치를 가리키고, 업데이트된 역방향 움직임 벡터는 타겟 역방향 참조 블록의 위치를 가리킨다.
본 출원의 이러한 실시예에서 현재 픽처 블록의 개선된 움직임 정보가 획득될 수 있다는 것을 알 수 있다. 이것은 현재 픽처 블록의 움직임 정보의 정확성을 향상시키고, 또한 다른 픽처 블록의 예측을 용이하게 하며, 예를 들어 다른 픽처 블록의 움직임 정보의 예측 정확도를 향상시킨다.
구현에서, N 개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치 및 (N-1) 개의 후보 순방향 참조 블록의 위치를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이고; 또는
N 개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이다.
구현에서, 초기 움직임 정보는 순방향 예측 움직임 정보 및 역방향 예측 움직임 정보를 포함하며;
초기 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정하는 양태에서, 제 2 탐색 유닛(1902)은 구체적으로,
순방향 예측 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 순방향 참조 픽처에서 N 개의 순방향 참조 블록의 위치를 결정 - 여기서 N 개의 순방향 참조 블록의 위치는 초기 순방향 참조 블록의 위치 및 (N-1) 개의 후보 순방향 참조 블록의 위치를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리임 - 하고;
역방향 예측 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 역방향 참조 픽처에서 N 개의 역방향 참조 블록의 위치를 결정하도록 구성되고, 여기서 N 개의 역방향 참조 블록의 위치는 초기 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이다.
다른 구현에서, 초기 움직임 정보는 순방향 예측 방향의 제 1 움직임 벡터 및 제 1 참조 픽처 인덱스, 및 역방향 예측 방향의 제 2 움직임 벡터 및 제 2 참조 픽처 인덱스를 포함하며;
초기 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정하는 양태에서, 제 2 탐색 유닛은 구체적으로,
제 1 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 제 1 참조 픽처 인덱스에 대응하는 순방향 참조 픽처 내 현재 픽처 블록의 초기 순방향 참조 블록의 위치를 결정하고, 초기 순방향 참조 블록의 위치를 제 1 탐색 개시 포인트로서 사용하고, 순방향 참조 픽처에서 (N-1) 개의 후보 순방향 참조 블록의 위치를 결정 - 여기서 N 개의 순방향 참조 블록의 위치는 초기 순방향 참조 블록의 위치 및 (N-1) 개의 후보 순방향 참조 블록의 위치를 포함함 - 하고;
제 2 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 제 2 참조 픽처 인덱스에 대응하는 역방향 참조 픽처 내 현재 픽처 블록의 초기 역방향 참조 블록의 위치를 결정하고, 초기 역방향 참조 블록의 위치를 제 2 탐색 개시 포인트로서 사용하고, 역방향 참조 픽처에서 (N-1) 개의 후보 역방향 참조 블록의 위치를 결정하도록 구성되며, 여기서 N 개의 역방향 참조 블록의 위치는 초기 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함한다.
구현에서, 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하는 양태에서, 제 2 탐색 유닛(1902)은 구체적으로,
참조 블록의 M 개 쌍의 위치로부터, 최소 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하도록 구성되거나; 또는
참조 블록의 M 개 쌍의 위치로부터, 매칭 에러 임계치 이하의 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록의 위치인 것으로 결정하도록 구성되며, 여기서 M은 N 이하이다.
예에서, 매칭 비용 기준은 매칭 비용 최소화 기준이다. 예를 들어, 참조 블록의 M 개 쌍의 위치에 대해, 순방향 참조 블록의 화소 값과 역방향 참조 블록의 화소 값 사이의 차는 참조 블록의 각 쌍에 대해 계산되며; 참조 블록의 M 개 쌍의 위치로부터, 화소 값이 최소 차를 갖는 참조 블록의 하나의 쌍의 위치는 현재 픽처 블록의 순방향 타겟 참조 블록의 위치 및 현재 픽처 블록의 역방향 타겟 참조 블록의 위치로서 결정된다.
다른 예에서, 매칭 비용 기준은 매칭 비용 최소화 및 조기 종료 기준이다. 예를 들어, 참조 블록(하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 n 번째 쌍의 위치에 대해, 순방향 참조 블록의 화소 값과 역방향 참조 블록의 화소 값 사이의 차가 계산되고, 여기서 M은 1 이상의 정수이고 M은 N 이하이고; 화소 값 차가 매칭 에러 임계치 이하일 때, 참조 블록(하나의 순방향 참조 블록 및 하나의 역방향 참조 블록)의 n 번째 쌍의 위치는 현재 픽처 블록의 순방향 타겟 참조 블록의 위치 및 현재 픽처 블록의 역방향 타겟 참조 블록의 위치로서 결정된다.
구현에서, 제 2 획득 유닛(1901)은 현재 픽처 블록의 후보 움직임 정보 리스트로부터 초기 움직임 정보를 획득하도록 구성되거나, 또는 표시 정보에 기초하여 초기 움직임 정보를 획득하도록 구성되며, 여기서 표시 정보는 현재 픽처 블록의 초기 움직임 정보를 표시하는데 사용된다. 초기 움직임 정보는 개선된 움직임 정보와 관련된다는 것을 이해해야 한다.
장치(1900)는 도 12에 도시된 방법을 수행할 수 있고, 장치(1900)는 비디오 코딩 장치, 비디오 디코딩 장치, 비디오 코딩 시스템 또는 비디오 코딩 기능을 갖는 다른 디바이스일 수 있다는 것을 이해해야 한다. 장치(1900)는 코딩 프로세스에서 픽처 예측을 수행하도록 구성될 수 있을 뿐만 아니라, 디코딩 프로세스에서 픽처 예측을 수행하도록 구성될 수 있다.
상세한 내용에 대해서는 본 명세서의 픽처 예측 방법에 관한 설명을 참조한다. 간결성을 위해, 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예의 예측 장치에 따르면, 순방향 참조 픽처 내 N 개의 순방향 참조 블록의 위치 및 역방향 참조 블록 내 N 개의 역방향 참조 블록의 위치는 참조 블록의 N 개 쌍의 위치를 형성한다는 것을 알 수 있다. 참조 블록의 N 개 쌍의 위치에 있는 참조 블록의 각 쌍의 위치에 대해, 시간 도메인 거리에 기초한 비례 관계는 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 존재한다. 이에 기초하여, 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치는 참조 블록의 N 개 쌍의 위치로부터, 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로서 결정되어, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이러한 실시예의 방법은 템플릿 매칭 블록을 미리 계산하는 프로세스 및 템플릿 매칭 블록을 사용함으로써 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 회피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다.
도 20은 본 출원의 실시예에 따른 다른 픽처 예측 장치의 개략적인 블록도이다. 예측 장치(2000)는 비디오 픽처를 디코딩하기 위한 인터 예측 및 비디오 픽처를 코딩하기 위한 인터 예측 둘 모두에 적용 가능하다는 것을 유의해야 한다. 본 명세서에서 예측 장치(2000)는 도 2a의 움직임 보상 유닛(44)에 대응할 수 있거나 또는 도 2b의 움직임 보상 유닛(82)에 대응할 수 있다는 것을 이해해야 한다. 예측 장치(2000)는,
현재 픽처 블록의 i 번째 라운드 움직임 정보를 획득하도록 구성된 제 3 획득 유닛(2001);
제 3 탐색 유닛(2002) - 제 3 탐색 유닛은, i 번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정 - 여기서 N 개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N 개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수임 - 하고; 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정 - 여기서 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고; 참조 블록의 각 쌍의 위치에 대해, 제 1 위치 오프셋 및 제 2 위치 오프셋은 미러 관계에 있고, 제 1 위치 오프셋은 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고; M은 1 이상의 정수이고, M은 N 이하임 - 하도록 구성됨 - ; 및
j 번째 라운드 타겟 순방향 참조 블록의 화소 값 및 j 번째 라운드 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성된 제 3 예측 유닛(2003)을 포함할 수 있으며, 여기서 j는 i 이상이고, i 및 j는 둘 모두 1 이상의 정수이다.
i = 1 이면, i 번째 라운드 움직임 정보는 현재 픽처 블록의 초기 움직임 정보이고; 대응적으로 N 개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치 및 (N-1) 개의 후보 순방향 참조 블록의 위치를 포함하고, 초기 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이고; 또는 N 개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함하고, 초기 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리라는 것을 유의해야 한다.
i > 1 이면, i 번째 라운드 움직임 정보는 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치를 가리키는 순방향 움직임 벡터 및 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치를 가리키는 역방향 움직임 벡터를 포함하고; 대응적으로, N 개의 순방향 참조 블록의 위치는 하나의 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치 및 (N-1) 개의 후보 순방향 참조 블록의 위치를 포함하고, (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치에 대한 각각의 후보 순방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이고; 또는 N 개의 역방향 참조 블록의 위치는 하나의 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함하고, (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치에 대한 각각의 후보 역방향 참조 블록의 위치의 오프셋은 정수 화소 거리 또는 분수 화소 거리이다.
본 출원의 이러한 실시예에서, 제 3 예측 유닛(2003)은 구체적으로, 반복 종료 조건이 충족될 때, j 번째 라운드 타겟 순방향 참조 블록의 화소 값 및 j 번째 라운드 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성되며, 여기서 j는 i 이상이고, i 및 j는 둘 모두 1 이상의 정수이다. 반복 종료 조건에 관한 설명에 대해서는 다른 실시예를 참조한다. 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예의 장치에서, 제 1 위치 오프셋 및 제 2 위치 오프셋이 미러 관계에 있다는 것은 제 1 위치 오프셋 값이 제 2 위치 오프셋 값과 동일하다는 것으로 이해될 수 있다. 예를 들어, 제 1 위치 오프셋의 방향은 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 진폭 값은 제 2 위치 오프셋의 진폭 값과 동일하다.
구현에서, i 번째 라운드 움직임 정보는 순방향 움직임 벡터, 순방향 참조 픽처 인덱스, 역방향 움직임 벡터, 및 역방향 참조 픽처 인덱스를 포함하고;
i 번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정하는 양태에서, 제 3 탐색 유닛(2002)은 구체적으로,
순방향 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 순방향 참조 픽처 인덱스에 대응하는 순방향 참조 픽처 내 현재 픽처 블록의 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치를 결정하고, (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치를 if 번째 탐색 개시 포인트로서 사용하고, 순방향 참조 픽처에서 (N-1) 개의 후보 순방향 참조 블록의 위치를 결정 - 여기서 N 개의 순방향 참조 블록의 위치는 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치 및 (N-1) 개의 후보 순방향 참조 블록의 위치를 포함함 - 하고;
역방향 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 역방향 참조 픽처 인덱스에 대응하는 역방향 참조 픽처 내 현재 픽처 블록의 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치를 결정하고, (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치를 ib 번째 탐색 개시 포인트로서 사용하고, 역방향 참조 픽처에서 (N-1) 개의 후보 역방향 참조 블록의 위치를 결정하도록 구성되며, 여기서 N 개의 역방향 참조 블록의 위치는 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함한다.
구현에서, 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하는 양태에서, 제 3 탐색 유닛(2002)은 구체적으로,
참조 블록의 M 개 쌍의 위치로부터, 최소 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하도록 구성되거나; 또는
참조 블록의 M 개 쌍의 위치로부터, 매칭 에러 임계치 이하의 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하도록 구성되며, 여기서 M은 N 이하이다.
장치(2000)는 도 14 및 도 15에 도시된 방법을 수행할 수 있고, 장치(2000)는 구체적으로 비디오 코딩 장치, 비디오 디코딩 장치, 비디오 코딩 시스템 또는 비디오 코딩 기능을 갖는 다른 디바이스일 수 있다는 것을 이해해야 한다. 장치(2000)는 코딩 프로세스에서 픽처 예측을 수행하도록 구성될 수 있을 뿐만 아니라, 디코딩 프로세스에서 픽처 예측을 수행하도록 구성될 수 있다.
상세한 내용에 대해서는 본 명세서의 픽처 예측 방법에 관한 설명을 참조한다. 간결성을 위해, 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예의 예측 장치에 따르면, 순방향 참조 픽처 내 N 개의 순방향 참조 블록의 위치 및 역방향 참조 블록 내 N 개의 역방향 참조 블록의 위치는 참조 블록의 N 개 쌍의 위치를 형성한다는 것을 알 수 있다. 참조 블록의 N 개 쌍의 위치에 있는 참조 블록의 각 쌍의 위치에 대해, 미러 관계는 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 제 2 위치 오프셋 사이에 존재한다. 이에 기초하여, 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치는 참조 블록의 N 개 쌍의 위치로부터, 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로서 결정되어, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이러한 실시예의 방법은 템플릿 매칭 블록을 미리 계산하는 프로세스 및 템플릿 매칭 블록을 사용함으로써 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 회피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다. 또한, 반복 량을 증가시킴으로써 MV를 개선하는 정확도가 더욱 향상되어, 코딩 성능을 더욱 향상시킬 수 있다.
도 21은 본 출원의 실시예에 따른 다른 픽처 예측 장치의 개략적인 블록도이다. 예측 장치(2100)는 비디오 픽처를 디코딩하기 위한 인터 예측 및 비디오 픽처를 코딩하기 위한 인터 예측 둘 모두에 적용 가능하다는 것을 유의해야 한다. 본 명세서에서 예측 장치(2100)는 도 2a의 움직임 보상 유닛(44)에 대응할 수 있거나 또는 도 2b의 움직임 보상 유닛(82)에 대응할 수 있다는 것을 이해해야 한다. 예측 장치(2100)는,
현재 픽처 블록의 i 번째 라운드 움직임 정보를 획득하도록 구성된 제 4 획득 유닛(2101);
제 4 탐색 유닛(2102) - 제 4 탐색 유닛은, i 번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정 - 여기서 N 개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, N 개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수임 - 하고; 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정 - 여기서 참조 블록의 각 쌍의 위치는 순방향 참조 블록의 위치 및 역방향 참조 블록의 위치를 포함하고; 참조 블록의 각 쌍의 위치에 대해, 제 1 위치 오프셋 및 제 2 위치 오프셋은 시간 도메인 거리에 기초한 비례 관계에 있고, 제 1 위치 오프셋은 순방향 참조 픽처 내 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치에 대한 순방향 참조 블록의 위치의 오프셋을 나타내고, 제 2 위치 오프셋은 역방향 참조 픽처 내 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치에 대한 역방향 참조 블록의 위치의 오프셋을 나타내고; M은 1 이상의 정수이고, M은 N 이하임 - 하도록 구성됨 - ; 및
j 번째 라운드 타겟 순방향 참조 블록의 화소 값 및 j 번째 라운드 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성된 제 4 예측 유닛(2103)을 포함할 수 있으며, 여기서 j는 i 이상이고, i 및 j는 둘 모두 1 이상의 정수이다.
반복적 탐색 프로세스에서, i = 1 이면, i 번째 라운드 움직임 정보는 현재 픽처 블록의 초기 움직임 정보이다.
i > 1 이면, i 번째 라운드 움직임 정보는 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치를 가리키는 순방향 움직임 벡터 및 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치를 가리키는 역방향 움직임 벡터를 포함한다.
구현에서, 제 4 예측 유닛(2103)은 구체적으로, 반복 종료 조건이 충족될 때, j 번째 라운드 타겟 순방향 참조 블록의 화소 값 및 j 번째 라운드 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득하도록 구성되며, 여기서 j는 i 이상이고, i 및 j는 둘 모두 1 이상의 정수이다.
이러한 실시예의 장치에서, 제 1 위치 오프셋 및 제 2 위치 오프셋이 시간 도메인 거리에 기초한 비례 관계에 있다는 것은,
제 1 시간 도메인 거리가 제 2 시간 도메인 거리와 동일하면, 제 1 위치 오프셋의 방향이 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 진폭 값이 제 2 위치 오프셋의 진폭 값과 동일하다는 것; 또는
제 1 시간 도메인 거리가 제 2 시간 도메인 거리와 상이하면, 제 1 위치 오프셋의 방향이 제 2 위치 오프셋의 방향과 반대이고, 제 1 위치 오프셋의 진폭 값과 제 2 위치 오프셋의 진폭 값 사이의 비례 관계가 제 1 시간 도메인 거리와 제 2 시간 도메인 거리 사이의 비례 관계에 기초한다는 것으로서 이해될 수 있다.
제 1 시간 도메인 거리는 현재 픽처 블록이 속하는 현재 픽처와 순방향 참조 픽처 사이의 시간 도메인 거리를 나타내고, 제 2 시간 도메인 거리는 현재 픽처와 역방향 참조 픽처 사이의 시간 도메인 거리를 나타낸다.
구현에서, i 번째 라운드 움직임 정보는 순방향 움직임 벡터, 순방향 참조 픽처 인덱스, 역방향 움직임 벡터, 및 역방향 참조 픽처 인덱스를 포함하고; 대응적으로, i 번째 라운드 움직임 정보 및 현재 픽처 블록의 위치에 기초하여 N 개의 순방향 참조 블록의 위치 및 N 개의 역방향 참조 블록의 위치를 결정하는 양태에서, 제 4 탐색 유닛(2102)은 구체적으로,
순방향 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 순방향 참조 픽처 인덱스에 대응하는 순방향 참조 픽처 내 현재 픽처 블록의 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치를 결정하고, (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치를 if 번째 탐색 개시 포인트로서 사용하고, 순방향 참조 픽처에서 (N-1) 개의 후보 순방향 참조 블록의 위치를 결정 - 여기서 N 개의 순방향 참조 블록의 위치는 (i-1) 번째 라운드 타겟 순방향 참조 블록의 위치 및 (N-1) 개의 후보 순방향 참조 블록의 위치를 포함함 - 하고;
역방향 움직임 벡터 및 현재 픽처 블록의 위치에 기초하여, 역방향 참조 픽처 인덱스에 대응하는 역방향 참조 픽처 내 현재 픽처 블록의 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치를 결정하고, (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치를 ib 번째 탐색 개시 포인트로서 사용하고, 역방향 참조 픽처에서 (N-1) 개의 후보 역방향 참조 블록의 위치를 결정하도록 구성되며, 여기서 N 개의 역방향 참조 블록의 위치는 (i-1) 번째 라운드 타겟 역방향 참조 블록의 위치 및 (N-1) 개의 후보 역방향 참조 블록의 위치를 포함한다.
구현에서, 매칭 비용 기준에 기초하여 참조 블록의 M 개 쌍의 위치로부터, 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하는 양태에서, 제 4 탐색 유닛(2102)은 구체적으로,
참조 블록의 M 개 쌍의 위치로부터, 최소 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하도록 구성되거나; 또는
참조 블록의 M 개 쌍의 위치로부터, 매칭 에러 임계치 이하의 매칭 에러를 갖는 참조 블록의 하나의 쌍의 위치가 현재 픽처 블록의 i 번째 라운드 타겟 순방향 참조 블록의 위치 및 현재 픽처 블록의 i 번째 라운드 타겟 역방향 참조 블록의 위치인 것으로 결정하도록 구성되며, 여기서 M은 N 이하이다.
장치(2100)는 도 16 및 도 17에 도시된 방법을 수행할 수 있고, 장치(2100)는 비디오 코딩 장치, 비디오 디코딩 장치, 비디오 코딩 시스템 또는 비디오 코딩 기능을 갖는 다른 디바이스일 수 있다는 것을 이해해야 한다. 장치(2100)는 코딩 프로세스에서 픽처 예측을 수행하도록 구성될 수 있을 뿐만 아니라, 디코딩 프로세스에서 픽처 예측을 수행하도록 구성될 수 있다.
상세한 내용에 대해서는 본 명세서의 픽처 예측 방법에 관한 설명을 참조한다. 간결성을 위해, 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예의 예측 장치에 따르면, 순방향 참조 픽처 내 N 개의 순방향 참조 블록의 위치 및 역방향 참조 블록 내 N 개의 역방향 참조 블록의 위치는 참조 블록의 N 개 쌍의 위치를 형성한다는 것을 알 수 있다. 참조 블록의 N 개 쌍의 위치에 있는 참조 블록의 각 쌍의 위치에 대해, 시간 도메인 거리에 기초한 비례 관계는 초기 순방향 참조 블록에 대한 순방향 참조 블록의 제 1 위치 오프셋과 초기 역방향 참조 블록에 대한 역방향 참조 블록의 제 2 위치 오프셋 사이에 존재한다. 이에 기초하여, 참조 블록의 하나의 쌍(예를 들어, 최소 매칭 비용을 갖는 참조 블록의 하나의 쌍)의 위치는 참조 블록의 N 개 쌍의 위치로부터, 현재 픽처 블록의 타겟 순방향 참조 블록(즉, 최적의 순방향 참조 블록/순방향 예측 블록)의 위치 및 현재 픽처 블록의 타겟 역방향 참조 블록(즉, 최적의 역방향 참조 블록/역방향 예측 블록)의 위치로서 결정되어, 타겟 순방향 참조 블록의 화소 값 및 타겟 역방향 참조 블록의 화소 값에 기초하여 현재 픽처 블록의 화소 값의 예측된 값을 획득한다. 종래 기술과 비교하여, 본 출원의 이러한 실시예의 방법은 템플릿 매칭 블록을 미리 계산하는 프로세스 및 템플릿 매칭 블록을 사용함으로써 순방향 탐색 매칭 및 역방향 탐색 매칭을 수행하는 프로세스를 회피하고, 픽처 예측 프로세스를 단순화한다. 이것은 픽처 예측 정확도를 향상시키고 픽처 예측 복잡성을 감소시킨다. 또한, 반복 량을 증가시킴으로써 MV를 개선하는 정확도가 더욱 향상되어, 코딩 성능을 더욱 향상시킬 수 있다.
도 22는 본 출원의 실시예에 따른 비디오 코딩 디바이스 또는 비디오 디코딩 디바이스 (간단히 디코딩 디바이스(2200))의 구현의 개략적인 블록도이다. 디코딩 디바이스(2200)는 프로세서(2210), 메모리(2230) 및 버스 시스템(2250)을 포함할 수 있다. 프로세서 및 메모리는 버스 시스템을 사용하여 연결된다. 메모리는 명령어를 저장하도록 구성된다. 프로세서는 메모리에 저장된 명령어를 실행하도록 구성된다. 코딩 디바이스의 메모리는 프로그램 코드를 저장한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여, 본 출원에서 설명된 비디오 인코딩 또는 디코딩 방법, 특히 다양한 인터 예측 모드 또는 인트라 예측 모드에서의 비디오 인코딩 또는 디코딩 방법, 및 다양한 인터 예측 모드 또는 인트라 예측 모드에서의 움직임 정보 예측 방법을 수행할 수 있다. 반복을 피하기 위해 상세한 내용은 여기서 다시 설명되지 않는다.
본 출원의 이러한 실시예에서, 프로세서(2210)는 중앙 처리 유닛(Central Processing Unit, 간단히 "CPU")일 수 있거나, 또는 프로세서(2210)는 다른 범용 프로세서, 디지털 신호 프로세서(digital signal processor)(DSP), 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그램 가능 게이트 어레이(field programmable gate array)(FPGA) 또는 다른 프로그램 가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 디바이스, 이산 하드웨어 컴포넌트 등일 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 또는 임의의 통상적인 프로세서 등일 수 있다.
메모리(2230)는 판독 전용 메모리(read only memory)(ROM) 디바이스 또는 랜덤 액세스 메모리(random access memory)(RAM) 디바이스를 포함할 수 있다. 임의의 다른 적절한 타입의 저장 디바이스가 또한 메모리(2230)로서 사용될 수 있다. 메모리(2230)는 버스 시스템(2250)을 이용하여 프로세서(2210)에 의해 액세스되는 코드 및 데이터(2311)를 포함할 수 있다. 메모리(2230)는 오퍼레이팅 시스템(2233) 및 애플리케이션(2235)을 더 포함할 수 있다. 애플리케이션 프로그램(2235)은 프로세서(2210)가 본 출원에서 설명된 비디오 인코딩 또는 디코딩 방법(특히, 본 출원에서 설명된 픽처 예측 방법)을 수행할 수 있게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램(2235)은 애플리케이션 1 내지 N을 포함할 수 있고, 본 출원에서 설명된 비디오 인코딩 또는 디코딩 방법을 수행하는 비디오 인코딩 또는 디코딩 애플리케이션(간단히 비디오 디코딩 애플리케이션)을 더 포함한다.
버스 시스템(2250)은 데이터 버스 외에도 전력 버스, 제어 버스, 상태 신호 버스 등을 더 포함할 수 있다. 그러나, 명확한 설명을 위해, 도면에서는 다양한 타입의 버스가 버스 시스템(2250)으로서 표시된다.
선택적으로, 디코딩 디바이스(2200)는 하나 이상의 출력 디바이스, 예를 들어 디스플레이(2270)를 더 포함할 수 있다. 예에서, 디스플레이(2270)는 디스플레이와 터치 입력을 작동 가능하게 감지하는 터치 유닛을 결합한 터치 디스플레이 또는 터치스크린일 수 있다. 디스플레이(2270)는 버스(2250)를 이용하여 프로세서(2210)에 연결될 수 있다.
동일한 단계 또는 동일한 용어의 설명 및 제한은 상이한 실시예에도 또한 적용될 수 있다는 것을 유의해야 한다. 간결성을 위해, 반복되는 설명은 본 명세서에서 적절히 생략된다.
관련 기술분야의 통상의 기술자는 본 명세서에 개시되고 설명된 다양한 예시적인 논리 블록, 모듈 및 알고리즘 단계를 참조하여 설명된 기능이 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합에 의해 구현될 수 있다는 것을 이해할 수 있다. 소프트웨어에 의해 구현된다면, 예시적인 논리 블록, 모듈 및 단계를 참조하여 설명된 기능은 하나 이상의 명령어 또는 코드로서 컴퓨터 판독 가능 매체에 저장되거나 또는 컴퓨터 판독 가능 매체를 통해 송신될 수 있고 하드웨어 기반 처리 유닛에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독 가능 저장 매체, 또는 (예를 들어, 통신 프로토콜에 따라) 한 장소에서 다른 장소로 컴퓨터 프로그램의 이송을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독 가능 매체는 일반적으로 (1) 비 일시적인 유형의 컴퓨터 판독 가능 저장 매체 또는 (2) 신호 또는 캐리어와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 출원에서 설명된 기술을 구현하기 위한 명령어, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함할 수 있다.
제한이 아닌 예로서, 이러한 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 콤팩트 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리, 또는 원하는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결은 컴퓨터 판독 가능 매체라고 적절히 칭한다. 예를 들어, 명령어가 동축 케이블, 광섬유, 트위스트 페어, 디지털 가입자 회선(digital subscriber line)(DSL) 또는 적외선, 라디오 및 마이크로웨이브와 무선 기술을 통해 웹 사이트, 서버 또는 다른 원격 소스로부터 송신되면, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독 가능 저장 매체 및 데이터 저장 매체는 연결부, 캐리어, 신호 또는 다른 일시적 매체를 포함하지 않고, 실제로는 비 일시적인 유형의 매체를 의미한다는 것을 이해해야 한다. 본 명세서에서 사용된 디스크(disk) 및 디스크(disc)는 콤팩트 디스크(compact disc)(CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크(digital versatile disc)(DVD) 및 블루 레이(Blu-ray) 디스크를 포함한다. 디스크(disk)는 보통 데이터를 자기적으로 재생하는 반면 디스크(disc)는 레이저를 사용하여 광학적으로 데이터를 재생한다. 전술한 것의 조합이 또한 컴퓨터 판독 가능 매체의 범위에 포함되어야 한다.
대응하는 기능은 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로 프로세서, 주문형 집적회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA) 또는 다른 동등한 집적 또는 이산 로직 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 그러므로, 본 명세서에서 사용된 "프로세서"라는 용어는 전술한 구조 중 임의의 구조일 수 있거나 또는 본 명세서에서 설명된 기술을 구현하기에 적합한 임의의 다른 구조일 수 있다. 또한, 일부 양태에서, 본 명세서에서 설명된 예시적인 논리 블록, 모듈 및 단계를 참조하여 설명된 기능은 코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있거나 또는 결합된 코덱에 통합될 수 있다. 또한, 기술은 하나 이상의 회로 또는 로직 요소에서 완전히 구현될 수 있다. 예에서, 비디오 인코더(20) 및 비디오 디코더(30) 내의 다양한 예시적인 논리 블록, 유닛 및 모듈은 대응하는 회로 디바이스 또는 로직 요소로서 이해될 수 있다.
본 출원의 기술은 무선 핸드셋, 집적 회로(integrated circuit)(IC), 또는 IC 세트(예를 들어, 칩 세트)를 비롯한 다양한 장치 또는 디바이스에서 구현될 수 있다. 다양한 컴포넌트, 모듈 또는 유닛이 본 출원에 개시된 컴포넌트를 수행하도록 구성된 장치의 기능적 양태를 강조하기 위해 설명되지만, 반드시 상이한 하드웨어 유닛에 의해 구현될 필요는 없다. 실제로, 위에서 설명한 바와 같이, 다양한 유닛은 적합한 소프트웨어 및/또는 펌웨어와 함께, 코덱 하드웨어 유닛으로 통합될 수 있거나, 또는 (위에서 설명된 하나 이상의 프로세서를 비롯한) 상호 운용 가능한 하드웨어 유닛에 의해 제공될 수 있다.
전술한 설명은 본 출원의 특정 구현의 예일 뿐이지, 본 출원의 보호 범위를 제한하려는 것은 아니다. 본 출원에 개시된 기술 범위 내에서 관련 기술분야의 통상의 기술자에 의해 용이하게 파악되는 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 속한다. 따라서, 본 출원의 보호 범위는 청구 범위의 보호 범위의 대상이 되어야 한다.

Claims (18)

  1. 픽처 예측 방법으로서,
    현재 픽처 블록의 초기 움직임 정보를 획득하는 단계와,
    조기 종료 조건이 충족되지 않는 경우, N개의 순방향 참조 블록과 N개의 역방향 참조 블록의 위치로부터, 매칭 비용 기준에 기초하여, 상기 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 상기 현재 픽처 블록의 타겟 역방향 참조 블록의 위치를 결정하는 단계 ― N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치는 상기 초기 움직임 정보에 기초하여 결정되고, 상기 N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, 상기 N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수이고, 상기 N개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치와 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하며, 상기 초기 순방향 참조 블록의 위치에 대한 각 후보 순방향 참조 블록의 위치의 오프셋은 정수 픽셀 거리이고, 상기 N개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치와 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하며, 상기 초기 역방향 참조 블록의 위치에 대한 각 후보 역방향 참조 블록의 위치의 오프셋은 정수 픽셀 거리이고,
    후보 순방향 참조 블록과 후보 역방향 참조 블록의 각 쌍의 위치는 후보 순방향 참조 블록의 위치와 후보 역방향 참조 블록의 위치를 포함하고, 후보 순방향 참조 블록과 후보 역방향 참조 블록의 각 쌍의 상기 위치에 대해, 제1 위치 오프셋과 제2 위치 오프셋이 미러 관계에 있고, 상기 제1 위치 오프셋은 상기 초기 순방향 참조 블록의 위치에 대한 상기 후보 순방향 참조 블록의 위치의 오프셋을 나타내고, 상기 제2 위치 오프셋은 상기 초기 역방향 참조 블록의 위치에 대한 상기 후보 역방향 참조 블록의 위치 오프셋을 나타냄 ― 와,
    조기 종료 조건이 충족되는 경우, 상기 현재 픽처 블록의 상기 초기 순방향 참조 블록 및 상기 초기 역방향 참조 블록의 위치를, 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록 및 상기 타겟 역방향 참조 블록의 위치로 결정하는 단계와,
    상기 타겟 순방향 참조 블록의 픽셀 값 및 상기 타겟 역방향 참조 블록의 픽셀 값에 기초하여 상기 현재 픽처 블록의 픽셀 값의 예측값을 획득하는 단계를 포함하는,
    픽처 예측 방법.
  2. 제1항에 있어서,
    제1 위치 오프셋과 제2 위치 오프셋이 미러 관계에 있는 것은,
    상기 제1 위치 오프셋의 방향이 상기 제2 위치 오프셋의 방향과 반대이고, 상기 제1 위치 오프셋의 진폭 값이 상기 제2 위치 오프셋의 진폭 값과 동일하다는 것, 또는
    상기 제1 위치 오프셋은 (delta0x,delta0y)로 표현되고 상기 제2 위치 오프셋은 (delta1x,delta1y)로 표현되되, delta0x = - delta1x이고, delta0y = - delta1y인 것을 포함하는,
    픽처 예측 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 현재 픽처 블록의 업데이트된 움직임 정보를 획득하는 단계를 더 포함하되, 상기 업데이트된 움직임 정보는 업데이트된 순방향 움직임 벡터 및 업데이트된 역방향 움직임 벡터를 포함하고, 상기 업데이트된 순방향 움직임 벡터는 상기 타겟 순방향 참조 블록의 위치를 가리키고, 상기 업데이트된 역방향 움직임 벡터는 상기 타겟 역방향 참조 블록의 위치를 가리키는,
    픽처 예측 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 초기 움직임 정보는 순방향 예측 방향의 제1 움직임 벡터와 제1 참조 픽처 인덱스, 및 역방향 예측 방향의 제2 움직임 벡터와 제2 참조 픽처 인덱스를 포함하고,
    상기 초기 움직임 정보 및 상기 현재 픽처 블록의 위치에 기초하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 것은,
    상기 제1 움직임 벡터 및 상기 현재 픽처 블록의 위치에 기초하여, 상기 제1 참조 픽처 인덱스에 대응하는 상기 순방향 참조 픽처에서의 상기 현재 픽처 블록의 상기 초기 순방향 참조 블록의 위치를 결정하는 것과, 상기 초기 순방향 참조 블록의 위치를 제1 탐색 개시 포인트로서 사용하는 것과, 상기 순방향 참조 픽처에서의 상기 (N-1)개의 후보 순방향 참조 블록의 위치를 결정하는 것 ― 상기 N개의 순방향 참조 블록의 위치는 상기 초기 순방향 참조 블록의 위치와 상기 (N-1)개의 후보 순방향 참조 블록의 위치를 포함함 ― 과,
    상기 제2 움직임 벡터 및 상기 현재 픽처 블록의 위치에 기초하여, 상기 제2 참조 픽처 인덱스에 대응하는 상기 역방향 참조 픽처에서의 상기 현재 픽처 블록의 상기 초기 역방향 참조 블록의 위치를 결정하는 것과, 상기 초기 역방향 참조 블록의 위치를 제2 탐색 개시 포인트로서 사용하는 것과, 상기 역방향 참조 픽처에서의 상기 (N-1)개의 후보 역방향 참조 블록의 위치를 결정하는 것 ― 상기 N개의 역방향 참조 블록의 위치는 상기 초기 역방향 참조 블록의 위치와 상기 (N-1)개의 후보 역방향 참조 블록의 위치를 포함함 ― 을 포함하는,
    픽처 예측 방법.
  5. 제1항 또는 제2항에 있어서,
    N개의 순방향 참조 블록과 N개의 역방향 참조 블록의 위치로부터, 매칭 비용 기준에 기초하여, 상기 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 상기 현재 픽처 블록의 타겟 역방향 참조 블록의 위치를 결정하는 단계는,
    N개의 순방향 참조 블록과 N개의 역방향 참조 블록의 위치로부터, 최소 매칭 에러를 갖는 한 쌍의 순방향 참조 블록 및 역방향 참조 블록의 위치가 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록의 위치 및 상기 현재 픽처 블록의 상기 타겟 역방향 참조 블록의 위치인 것으로 결정하는 단계, 또는
    N개의 순방향 참조 블록과 N개의 역방향 참조 블록의 위치로부터, 매칭 에러 임계치 이하의 매칭 에러를 갖는 한 쌍의 순방향 참조 블록 및 역방향 참조 블록의 위치가 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록의 위치 및 상기 현재 픽처 블록의 상기 타겟 역방향 참조 블록의 위치인 것으로 결정하는 단계를 포함하는,
    픽처 예측 방법.
  6. 제1항 또는 제2항에 있어서,
    상기 방법은 상기 현재 픽처 블록을 인코딩하는 데 사용되고, 현재 픽처 블록의 초기 움직임 정보를 획득하는 상기 단계는 상기 현재 픽처 블록의 후보 움직임 정보 리스트에서 상기 초기 움직임 정보를 획득하는 단계를 포함하거나, 또는
    상기 방법은 상기 현재 픽처 블록을 디코딩하는 데 사용되고, 현재 픽처 블록의 초기 움직임 정보를 획득하는 상기 단계 전에, 상기 방법은 상기 현재 픽처 블록의 비트스트림으로부터 표시 정보를 획득하는 단계를 더 포함하며, 상기 표시 정보는 상기 현재 픽처 블록의 상기 초기 움직임 정보를 표시하는 데 사용되는,
    픽처 예측 방법.
  7. 제1항 또는 제2항에 있어서,
    조기 종료 조건이 충족되지 않는 경우, N개의 순방향 참조 블록과 N개의 역방향 참조 블록의 위치로부터, 매칭 비용 기준에 기초하여, 상기 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 상기 현재 픽처 블록의 타겟 역방향 참조 블록의 위치를 결정하는 단계는, 상기 초기 순방향 참조 블록의 픽셀 값과 상기 초기 역방향 참조 블록의 픽셀 값의 차이가 매칭 에러 임계치보다 큰 경우, N개의 순방향 참조 블록과 N개의 역방향 참조 블록의 위치로부터, 상기 매칭 비용 기준에 기초하여, 한 쌍의 순방향 참조 블록 및 역방향 참조 블록의 위치가 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록의 위치 및 상기 현재 픽처 블록의 상기 타겟 역방향 참조 블록의 위치인 것으로 결정하는 단계를 포함하고,
    조기 종료 조건이 충족되는 경우, 상기 현재 픽처 블록의 상기 초기 순방향 참조 블록 및 상기 초기 역방향 참조 블록의 위치를, 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록 및 상기 타겟 역방향 참조 블록의 위치로 결정하는 단계는, 상기 초기 순방향 참조 블록의 픽셀 값과 상기 초기 역방향 참조 블록의 픽셀 값의 차이가 상기 매칭 에러 임계치보다 작은 경우, 상기 현재 픽처 블록의 상기 초기 순방향 참조 블록 및 상기 초기 역방향 참조 블록의 위치를, 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록 및 상기 타겟 역방향 참조 블록의 위치로 결정하는 단계를 포함하는,
    픽처 예측 방법.
  8. 제1항 또는 제2항에 있어서,
    상기 초기 움직임 정보는 상기 현재 픽처 블록을 갖는 현재 픽처의 참조 픽처 리스트 0(RefPicList0)에 대응하는 제1 움직임 벡터와, 상기 현재 픽처의 참조 픽처 리스트 1(RefPicList1)에 대응하는 제2 움직임 벡터를 포함하고,
    상기 초기 순방향 참조 블록의 위치와 상기 초기 역방향 참조 블록의 위치는 각각 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 사용하여 결정되는,
    픽처 예측 방법.
  9. 픽처 예측 장치로서,
    현재 픽처 블록의 초기 움직임 정보를 획득하도록 구성된 제1 획득 유닛과,
    제1 탐색 유닛과,
    제1 예측 유닛을 포함하되,
    상기 제1 탐색 유닛은,
    조기 종료 조건이 충족되지 않는 경우, N개의 순방향 참조 블록과 N개의 역방향 참조 블록의 위치로부터, 매칭 비용 기준에 기초하여, 상기 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 상기 현재 픽처 블록의 타겟 역방향 참조 블록의 위치를 결정하고 ― N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치는 상기 초기 움직임 정보에 기초하여 결정되고, 상기 N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, 상기 N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수이고, 상기 N개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치와 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하며, 상기 초기 순방향 참조 블록의 위치에 대한 각 후보 순방향 참조 블록의 위치의 오프셋은 정수 픽셀 거리이고, 상기 N개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치와 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하며, 상기 초기 역방향 참조 블록의 위치에 대한 각 후보 역방향 참조 블록의 위치의 오프셋은 정수 픽셀 거리이고,
    후보 순방향 참조 블록과 후보 역방향 참조 블록의 각 쌍의 위치는 후보 순방향 참조 블록의 위치와 후보 역방향 참조 블록의 위치를 포함하고, 후보 순방향 참조 블록과 후보 역방향 참조 블록의 각 쌍의 상기 위치에 대해, 제1 위치 오프셋과 제2 위치 오프셋이 미러 관계에 있고, 상기 제1 위치 오프셋은 상기 초기 순방향 참조 블록의 위치에 대한 상기 후보 순방향 참조 블록의 위치의 오프셋을 나타내고, 상기 제2 위치 오프셋은 상기 초기 역방향 참조 블록의 위치에 대한 상기 후보 역방향 참조 블록의 위치 오프셋을 나타냄 ― ,
    조기 종료 조건이 충족되는 경우, 상기 현재 픽처 블록의 상기 초기 순방향 참조 블록 및 상기 초기 역방향 참조 블록의 위치를, 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록 및 상기 타겟 역방향 참조 블록의 위치로 결정하도록 구성되고,
    상기 제1 예측 유닛은,
    상기 타겟 순방향 참조 블록의 픽셀 값 및 상기 타겟 역방향 참조 블록의 픽셀 값에 기초하여 상기 현재 픽처 블록의 픽셀 값의 예측값을 획득하도록 구성되는,
    픽처 예측 장치.
  10. 제9항에 있어서,
    제1 위치 오프셋과 제2 위치 오프셋이 미러 관계에 있는 것은,
    상기 제1 위치 오프셋의 방향이 상기 제2 위치 오프셋의 방향과 반대이고, 상기 제1 위치 오프셋의 진폭 값이 상기 제2 위치 오프셋의 진폭 값과 동일하다는 것, 또는
    상기 제1 위치 오프셋은 (delta0x,delta0y)로 표현되고 상기 제2 위치 오프셋은 (delta1x,delta1y)로 표현되되, delta0x = - delta1x이고, delta0y = - delta1y인 것을 포함하는,
    픽처 예측 장치.
  11. 제9항 또는 제10항에 있어서,
    상기 제1 예측 유닛은 상기 현재 픽처 블록의 업데이트된 움직임 정보를 획득하도록 더 구성되되, 상기 업데이트된 움직임 정보는 업데이트된 순방향 움직임 벡터 및 업데이트된 역방향 움직임 벡터를 포함하고, 상기 업데이트된 순방향 움직임 벡터는 상기 타겟 순방향 참조 블록의 위치를 가리키고, 상기 업데이트된 역방향 움직임 벡터는 상기 타겟 역방향 참조 블록의 위치를 가리키는,
    픽처 예측 장치.
  12. 제9항 또는 제10항에 있어서,
    상기 초기 움직임 정보는 순방향 예측 방향의 제1 움직임 벡터와 제1 참조 픽처 인덱스, 및 역방향 예측 방향의 제2 움직임 벡터와 제2 참조 픽처 인덱스를 포함하고,
    상기 초기 움직임 정보 및 상기 현재 픽처 블록의 위치에 기초하여 N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치를 결정하는 양상에서, 상기 제1 탐색 유닛은 구체적으로,
    상기 제1 움직임 벡터 및 상기 현재 픽처 블록의 위치에 기초하여, 상기 제1 참조 픽처 인덱스에 대응하는 상기 순방향 참조 픽처에서의 상기 현재 픽처 블록의 상기 초기 순방향 참조 블록의 위치를 결정하고, 상기 초기 순방향 참조 블록의 위치를 제1 탐색 개시 포인트로서 사용하고, 상기 순방향 참조 픽처에서의 상기 (N-1)개의 후보 순방향 참조 블록의 위치를 결정하며 ― 상기 N개의 순방향 참조 블록의 위치는 상기 초기 순방향 참조 블록의 위치와 상기 (N-1)개의 후보 순방향 참조 블록의 위치를 포함함 ― ,
    상기 제2 움직임 벡터 및 상기 현재 픽처 블록의 위치에 기초하여, 상기 제2 참조 픽처 인덱스에 대응하는 상기 역방향 참조 픽처에서의 상기 현재 픽처 블록의 상기 초기 역방향 참조 블록의 위치를 결정하고, 상기 초기 역방향 참조 블록의 위치를 제2 탐색 개시 포인트로서 사용하며, 상기 역방향 참조 픽처에서의 상기 (N-1)개의 후보 역방향 참조 블록의 위치를 결정하도록 구성되되, 상기 N개의 역방향 참조 블록의 위치는 상기 초기 역방향 참조 블록의 위치와 상기 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하는,
    픽처 예측 장치.
  13. 제9항 또는 제10항에 있어서,
    상기 제1 탐색 유닛은 구체적으로,
    상기 초기 순방향 참조 블록의 픽셀 값과 상기 초기 역방향 참조 블록의 픽셀 값의 차이가 매칭 에러 임계치보다 큰 경우, N개의 순방향 참조 블록과 N개의 역방향 참조 블록의 위치로부터, 상기 매칭 비용 기준에 기초하여, 한 쌍의 순방향 참조 블록 및 역방향 참조 블록의 위치가 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록의 위치 및 상기 현재 픽처 블록의 상기 타겟 역방향 참조 블록의 위치인 것으로 결정하고,
    상기 초기 순방향 참조 블록의 픽셀 값과 상기 초기 역방향 참조 블록의 픽셀 값의 차이가 상기 매칭 에러 임계치보다 작은 경우, 상기 현재 픽처 블록의 상기 초기 순방향 참조 블록 및 상기 초기 역방향 참조 블록의 위치를, 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록 및 상기 타겟 역방향 참조 블록의 위치로 결정하도록 구성된,
    픽처 예측 장치.
  14. 제9항 또는 제10항에 있어서,
    상기 초기 움직임 정보는 참조 픽처 리스트 0(RefPicList0)에 대응하는 제1 움직임 벡터와, 참조 픽처 리스트 1(RefPicList1)에 대응하는 제2 움직임 벡터를 포함하고,
    상기 초기 순방향 참조 블록의 위치와 상기 초기 역방향 참조 블록의 위치는 각각 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 사용하여 결정되는,
    픽처 예측 장치.
  15. 픽처 블록을 코딩하도록 구성된 비디오 인코더로서,
    제9항 내지 제14항 중 어느 한 항에 따른 픽처 예측 장치를 포함하며, 예측을 통해 상기 픽처 블록의 픽셀 값의 예측값을 획득하도록 구성된 인터 예측 모듈과,
    표시 정보를 비트스트림 내에 코딩하도록 구성된 엔트로피 코딩 모듈 ― 상기 표시 정보는 상기 픽처 블록의 초기 움직임 정보를 표시하는 데 사용됨 ― 과,
    상기 픽처 블록의 상기 픽셀 값의 예측값에 기초하여 상기 픽처 블록을 재구성하도록 구성된 재구성 모듈을 포함하는,
    비디오 인코더.
  16. 픽처 블록을 획득하기 위해 비트스트림을 디코딩하도록 구성된 비디오 디코더로서,
    상기 비트스트림을 디코딩하여 표시 정보를 획득하도록 구성된 엔트로피 디코딩 모듈 ― 상기 표시 정보는 디코딩을 통해 획득된 현재 픽처 블록의 초기 움직임 정보를 표시하는 데 사용됨 ― 과,
    제9항 내지 제14항 중 어느 한 항에 따른 픽처 예측 장치를 포함하며, 예측을 통해 상기 픽처 블록의 픽셀 값의 예측값을 획득하도록 구성된 인터 예측 모듈과,
    상기 픽처 블록의 상기 픽셀 값의 예측값에 기초하여 상기 픽처 블록을 재구성하도록 구성된 재구성 모듈을 포함하는,
    비디오 디코더.
  17. 컴퓨터 디바이스에 의해 실행될 때, 상기 컴퓨터 디바이스가 제1항 내지 제8항 중 어느 한 항의 방법을 수행하도록 하는 프로그램 코드를 포함하는 비일시적 컴퓨터 판독가능 매체.
  18. 비디오 신호와 연관된 데이터를 저장하기 위한 비일시적 컴퓨터 판독가능 매체로서,
    상기 비일시적 컴퓨터 판독가능 매체에 저장된 상기 비디오 신호에 대한 비트스트림을 포함하되, 상기 비트스트림은 방법에 따라 생성되고,
    상기 방법은,
    현재 픽처 블록의 초기 움직임 정보를 획득하는 단계와,
    조기 종료 조건이 충족되지 않는 경우, N개의 순방향 참조 블록과 N개의 역방향 참조 블록의 위치로부터, 매칭 비용 기준에 기초하여, 상기 현재 픽처 블록의 타겟 순방향 참조 블록의 위치와 상기 현재 픽처 블록의 타겟 역방향 참조 블록의 위치를 결정하는 단계 ― N개의 순방향 참조 블록의 위치 및 N개의 역방향 참조 블록의 위치는 상기 초기 움직임 정보에 기초하여 결정되고, 상기 N개의 순방향 참조 블록은 순방향 참조 픽처에 위치하고, 상기 N개의 역방향 참조 블록은 역방향 참조 픽처에 위치하고, N은 1보다 큰 정수이고, 상기 N개의 순방향 참조 블록의 위치는 하나의 초기 순방향 참조 블록의 위치와 (N-1)개의 후보 순방향 참조 블록의 위치를 포함하며, 상기 초기 순방향 참조 블록의 위치에 대한 각 후보 순방향 참조 블록의 위치의 오프셋은 정수 픽셀 거리이고, 상기 N개의 역방향 참조 블록의 위치는 하나의 초기 역방향 참조 블록의 위치와 (N-1)개의 후보 역방향 참조 블록의 위치를 포함하며, 상기 초기 역방향 참조 블록의 위치에 대한 각 후보 역방향 참조 블록의 위치의 오프셋은 정수 픽셀 거리이고,
    후보 순방향 참조 블록과 후보 역방향 참조 블록의 각 쌍의 위치는 후보 순방향 참조 블록의 위치와 후보 역방향 참조 블록의 위치를 포함하고, 후보 순방향 참조 블록과 후보 역방향 참조 블록의 각 쌍의 상기 위치에 대해, 제1 위치 오프셋과 제2 위치 오프셋이 미러 관계에 있고, 상기 제1 위치 오프셋은 상기 초기 순방향 참조 블록의 위치에 대한 상기 후보 순방향 참조 블록의 위치의 오프셋을 나타내고, 상기 제2 위치 오프셋은 상기 초기 역방향 참조 블록의 위치에 대한 상기 후보 역방향 참조 블록의 위치 오프셋을 나타냄 ― 와,
    조기 종료 조건이 충족되는 경우, 상기 현재 픽처 블록의 상기 초기 순방향 참조 블록 및 상기 초기 역방향 참조 블록의 위치를, 상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록 및 상기 타겟 역방향 참조 블록의 위치로 결정하는 단계와,
    상기 현재 픽처 블록의 상기 타겟 순방향 참조 블록의 픽셀 값 및 상기 타겟 역방향 참조 블록의 픽셀 값에 기초하여 상기 현재 픽처 블록의 픽셀 값의 예측값을 획득하는 단계와,
    표시 정보를 상기 비트스트림 내로 인코딩하는 단계 ― 상기 표시 정보는 상기 현재 픽처 블록의 후보 움직임 정보 리스트 내의 상기 초기 움직임 정보를 나타냄 ―를 포함하는,
    비일시적 컴퓨터 판독가능 매체.
KR1020247001807A 2017-12-31 2018-12-27 픽처 예측 방법과 장치, 및 코덱 KR20240011263A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201711494274.0A CN109996081B (zh) 2017-12-31 2017-12-31 图像预测方法、装置以及编解码器
CN201711494274.0 2017-12-31
PCT/CN2018/124275 WO2019129130A1 (zh) 2017-12-31 2018-12-27 图像预测方法、装置以及编解码器
KR1020237006148A KR102627496B1 (ko) 2017-12-31 2018-12-27 픽처 예측 방법과 장치, 및 코덱

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020237006148A Division KR102627496B1 (ko) 2017-12-31 2018-12-27 픽처 예측 방법과 장치, 및 코덱

Publications (1)

Publication Number Publication Date
KR20240011263A true KR20240011263A (ko) 2024-01-25

Family

ID=67066616

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020247001807A KR20240011263A (ko) 2017-12-31 2018-12-27 픽처 예측 방법과 장치, 및 코덱
KR1020207022351A KR102503943B1 (ko) 2017-12-31 2018-12-27 픽처 예측 방법과 장치, 및 코덱
KR1020237006148A KR102627496B1 (ko) 2017-12-31 2018-12-27 픽처 예측 방법과 장치, 및 코덱

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020207022351A KR102503943B1 (ko) 2017-12-31 2018-12-27 픽처 예측 방법과 장치, 및 코덱
KR1020237006148A KR102627496B1 (ko) 2017-12-31 2018-12-27 픽처 예측 방법과 장치, 및 코덱

Country Status (11)

Country Link
US (2) US11528503B2 (ko)
EP (2) EP3734976A4 (ko)
JP (2) JP2021508213A (ko)
KR (3) KR20240011263A (ko)
CN (3) CN109996081B (ko)
AU (2) AU2018395081B2 (ko)
BR (1) BR112020012914A2 (ko)
CA (1) CA3087405A1 (ko)
SG (1) SG11202006258VA (ko)
TW (2) TWI791723B (ko)
WO (1) WO2019129130A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230085219A (ko) * 2018-08-13 2023-06-13 엘지전자 주식회사 히스토리 기반 움직임 벡터에 기반한 인터 예측 방법 및 그 장치
CN113424538A (zh) 2019-02-14 2021-09-21 北京字节跳动网络技术有限公司 解码器侧细化工具的选择性应用
WO2020228660A1 (en) 2019-05-11 2020-11-19 Beijing Bytedance Network Technology Co., Ltd. Selective use of coding tools in video processing
CN110545425B (zh) * 2019-08-21 2021-11-16 浙江大华技术股份有限公司 一种帧间预测方法、终端设备以及计算机存储介质
WO2021061023A1 (en) * 2019-09-23 2021-04-01 Huawei Technologies Co., Ltd. Signaling for motion vector refinement
WO2020251418A2 (en) * 2019-10-01 2020-12-17 Huawei Technologies Co., Ltd. Method and apparatus of slice-level signaling for bi-directional optical flow and decoder side motion vector refinement
JP2022552511A (ja) 2019-10-12 2022-12-16 北京字節跳動網絡技術有限公司 ビデオコーディングツールのための高レベルシンタックス
CN112770113B (zh) * 2019-11-05 2024-08-23 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN113452997B (zh) * 2020-03-25 2022-07-29 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
CN112565753B (zh) * 2020-12-06 2022-08-16 浙江大华技术股份有限公司 运动矢量差的确定方法和装置、存储介质及电子装置
CN114640856B (zh) 2021-03-19 2022-12-23 杭州海康威视数字技术股份有限公司 解码方法、编码方法、装置及设备
CN113691810B (zh) * 2021-07-26 2022-10-04 浙江大华技术股份有限公司 帧内帧间联合预测方法、编解码方法及相关设备、存储介质
CN113938690B (zh) * 2021-12-03 2023-10-31 北京达佳互联信息技术有限公司 视频编码方法、装置、电子设备及存储介质
US20230199171A1 (en) * 2021-12-21 2023-06-22 Mediatek Inc. Search Memory Management For Video Coding
WO2024010338A1 (ko) * 2022-07-05 2024-01-11 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195389B1 (en) * 1998-04-16 2001-02-27 Scientific-Atlanta, Inc. Motion estimation system and methods
CN1658673A (zh) * 2005-03-23 2005-08-24 南京大学 视频压缩编解码方法
CN101557514B (zh) * 2008-04-11 2011-02-09 华为技术有限公司 一种帧间预测编解码方法、装置及系统
TWI401972B (zh) * 2009-06-23 2013-07-11 Acer Inc 時間性錯誤隱藏方法
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
JP2012034225A (ja) * 2010-07-30 2012-02-16 Canon Inc 動きベクトル検出装置及び動きベクトル検出方法、コンピュータプログラム
GB2493755B (en) 2011-08-17 2016-10-19 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of images
CN104427347A (zh) * 2013-09-02 2015-03-18 苏州威迪斯特光电科技有限公司 网络摄像机视频监控系统图像质量提高方法
CN104427345B (zh) * 2013-09-11 2019-01-08 华为技术有限公司 运动矢量的获取方法、获取装置、视频编解码器及其方法
US11330284B2 (en) * 2015-03-27 2022-05-10 Qualcomm Incorporated Deriving motion information for sub-blocks in video coding
EP3457694A4 (en) 2016-05-24 2019-05-22 Huawei Technologies Co., Ltd. IMAGE FORECASTING METHOD AND ASSOCIATED DEVICE
EP3264769A1 (en) * 2016-06-30 2018-01-03 Thomson Licensing Method and apparatus for video coding with automatic motion information refinement
US10778999B2 (en) * 2016-09-30 2020-09-15 Qualcomm Incorporated Frame rate up-conversion coding mode with affine motion model
US10750203B2 (en) * 2016-12-22 2020-08-18 Mediatek Inc. Method and apparatus of adaptive bi-prediction for video coding
US12063387B2 (en) * 2017-01-05 2024-08-13 Hfi Innovation Inc. Decoder-side motion vector restoration for video coding
WO2019001741A1 (en) * 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
WO2019072370A1 (en) * 2017-10-09 2019-04-18 Huawei Technologies Co., Ltd. MEMORY ACCESS WINDOW AND FILLING FOR VECTOR MOVEMENT REFINEMENT

Also Published As

Publication number Publication date
EP3734976A1 (en) 2020-11-04
AU2018395081B2 (en) 2023-03-30
US20230232036A1 (en) 2023-07-20
AU2023204122A1 (en) 2023-07-13
CA3087405A1 (en) 2019-07-04
CN109996081A (zh) 2019-07-09
KR20230033021A (ko) 2023-03-07
US12069294B2 (en) 2024-08-20
JP2023103277A (ja) 2023-07-26
RU2020125254A3 (ko) 2022-01-31
WO2019129130A1 (zh) 2019-07-04
EP4362464A3 (en) 2024-05-29
BR112020012914A2 (pt) 2020-12-08
AU2018395081A1 (en) 2020-08-13
US20200396478A1 (en) 2020-12-17
JP2021508213A (ja) 2021-02-25
US11528503B2 (en) 2022-12-13
TW201931857A (zh) 2019-08-01
KR102627496B1 (ko) 2024-01-18
TW202318876A (zh) 2023-05-01
RU2020125254A (ru) 2022-01-31
EP4362464A2 (en) 2024-05-01
CN117336504A (zh) 2024-01-02
KR102503943B1 (ko) 2023-02-24
SG11202006258VA (en) 2020-07-29
KR20200101986A (ko) 2020-08-28
TWI828507B (zh) 2024-01-01
EP3734976A4 (en) 2021-02-03
TWI791723B (zh) 2023-02-11
CN109996081B (zh) 2023-09-12
CN111543059A (zh) 2020-08-14

Similar Documents

Publication Publication Date Title
KR102627496B1 (ko) 픽처 예측 방법과 장치, 및 코덱
US11297326B2 (en) Method and apparatus for predicting motion information of picture block, encoder, and decoder
US20150071357A1 (en) Partial intra block copying for video coding
US11765378B2 (en) Video coding method and apparatus
US11563949B2 (en) Motion vector obtaining method and apparatus, computer device, and storage medium
JP2017513346A (ja) 低複雑度符号化および背景検出のためのシステムおよび方法
US11394996B2 (en) Video coding method and apparatus
RU2772639C2 (ru) Кодек, устройство и способ предсказания изображения

Legal Events

Date Code Title Description
A107 Divisional application of patent