KR102655127B1 - 양방향 인터 예측 방법 및 장치 - Google Patents

양방향 인터 예측 방법 및 장치 Download PDF

Info

Publication number
KR102655127B1
KR102655127B1 KR1020217009929A KR20217009929A KR102655127B1 KR 102655127 B1 KR102655127 B1 KR 102655127B1 KR 1020217009929 A KR1020217009929 A KR 1020217009929A KR 20217009929 A KR20217009929 A KR 20217009929A KR 102655127 B1 KR102655127 B1 KR 102655127B1
Authority
KR
South Korea
Prior art keywords
reference image
motion vector
index
image
video
Prior art date
Application number
KR1020217009929A
Other languages
English (en)
Other versions
KR20210047950A (ko
Inventor
황방 천
장러 천
하이타오 양
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20210047950A publication Critical patent/KR20210047950A/ko
Application granted granted Critical
Publication of KR102655127B1 publication Critical patent/KR102655127B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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 picture, frame or field
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/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/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/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)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 출원의 실시예는 양방향 인터 예측 방법 및 장치를 개시하며, 비디오 영상 코딩 기술 분야와 관련이 있다. 상기 양방향 인터 예측 방법은, 제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하는 단계; 제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하는 단계; 및 상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인에 기초하여 상기 현재 블록을 예측하는 단계를 포함한다. 상기 참조 영상 색인 i1에 대응하는 POC는, 상기 제1 참조 영상 리스트에 있고 현재 영상의 POC보다 작은 모든 POC 중, 상기 현재 블록의 POC에 가장 가까운 POC이고, 상기 참조 영상 색인 i2에 대응하는 POC는, 상기 제2 참조 영상 리스트에 있고 상기 현재 영상의 POC보다 큰 모든 POC 중, 상기 현재 블록의 POC에 가장 가까운 POC이고, 상기 현재 영상은 상기 현재 블록을 포함한다. 비트스트림 자원을 절약할 수 있고, 코딩 효율을 향상시킬 수 있다.

Description

양방향 인터 예측 방법 및 장치
본 출원의 실시예는 비디오 영상 코딩 기술 분야에 관한 것으로, 특히 양방향 인터 예측(bi-directional inter prediction) 방법 및 장치에 관한 것이다.
비디오 코딩 기술에서, 현재 블록의 예측 영상 블록은 오직 하나의 참조 영상 블록에 기초하여 생성될 수 있거나(이를 단방향 인터 예측이라 함), 현재 블록의 예측 영상 블록은 둘 이상의 참조 영상 블록에 기초하여 생성될 수 있다(이를 양방향 인터 예측이라고 함). 둘 이상의 참조 영상 블록은 동일한 참조 영상(프레임) 또는 상이한 참조 영상에서 온 것일 수 있다.
디코더 측과 인코더 측이 동일한 참조 영상 블록을 사용할 수 있도록 하기 위해, 인코더 측은 각각의 영상 블록의 움직임 정보를 비트스트림을 통해 디코더 측에 전송해야 한다. 일반적으로 현재 블록의 움직임 정보는 참조 영상 색인 값, 움직임 벡터 예측자(motion Vector Predictor, MVP) 플래그, 움직임 벡터 차(Motion Vector Difference, MVD)를 포함한다. 디코더 측은 참조 영상 색인 값, MVP 플래그 및 MVD에 기초하여, 선택된 참조 영상에서 정확한 참조 영상 블록을 찾을 수 있다.
이에 상응하여, 양방향 인터 예측에서, 인코더 측은 각 방향의 각 영상 블록의 움직임 정보를 디코더 측에 전송할 필요가 있다. 결과적으로, 움직임 정보는 비교적 많은 양의 송신 자원을 점유한다. 이는 송신 자원의 효과적인 이용, 송신 레이트, 및 코딩 압축 효율을 감소시킨다.
본 출원의 실시예는 비트스트림에서 영상 블록의 참조 영상 색인을 송신하지 않고서 인코딩 또는 디코딩 중에 도출 방법(derivation method)에 따라 영상 블록의 참조 영상 색인을 결정하기 위한, 양방향 인터 예측 방법 및 장치, 비디오 인코딩 기기 및 비디오 디코딩 기기를 제공하여, 송신 자원이 될 수 있도록 하고, 코딩 압축 효율이 어느 정도 향상될 수 있도록 한다.
전술한 목적을 달성하기 위해, 본 출원의 실시예에서 이하의 기술적 방안이 사용된다.
제1 측면에 따르면, 본 발명은 양방향 인터 예측 방법을 제공한다. 상기 양방향 인터 예측 방법은,
제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하는 단계 - 상기 참조 영상 색인 i1에 대응하는 영상 순서 카운트(picture order count, POC)는 현재 영상의 POC보다 작고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i1에 대응하는 POC를 감산하여 획득되는 차(difference)는 상기 현재 영상의 POC에서 참조 영상 색인 ix에 대응하는 POC를 감산하여 획득되는 차보다 작고, 상기 참조 영상 색인 ix는 상기 제1 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i1 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 ix에 대응하는 POC는 상기 현재 영상의 POC보다 작음 -;
제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하는 단계 - 상기 참조 영상 색인 i2에 대응하는 POC는 상기 현재 영상의 POC보다 크고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i2에 대응하는 POC를 감산하여 획득되는 차는 상기 현재 영상의 POC에서 참조 영상 색인 iy에 대응하는 POC를 감산하여 획득되는 차보다 크고, 상기 참조 영상 색인 iy는 상기 제2 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i2 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 iy에 대응하는 POC는 상기 현재 영상의 POC보다 큼 -; 및
상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인에 기초하여 상기 현재 블록을 예측하는 단계 - 상기 현재 영상은 상기 현재 블록을 포함함 -를 포함한다.
본 발명에서 참조 영상 색인은 간단히 색인으로 지칭할 수도 있음을 이해해야 한다.
제2 측면에 따르면, 본 발명은 양방향 인터 예측 방법을 제공한다. 상기 양방향 인터 예측 방법은,
제1 조건 그룹이 충족되는 경우, 제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하는 단계 - 상기 제1 조건 그룹은 적어도 다음 조건 1 및 조건 2을 포함한다:
조건 1: 상기 참조 영상 색인 i1에 대응하는 POC가 현재 영상의 POC보다 작다; 및
조건 2: 상기 현재 영상의 POC에서 상기 참조 영상 색인 i1에 대응하는 POC를 감산하여 획득되는 차가 상기 현재 영상의 POC에서 참조 영상 색인 ix에 대응하는 POC를 감산하여 획득되는 차보다 작고, 상기 참조 영상 색인 ix는 상기 제1 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i1 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 ix에 대응하는 POC는 상기 현재 영상의 POC보다 작다 -;
제2 조건 그룹이 충족되는 경우, 제2 참조 영상 리스트의 참조 영상 색인 i2를 상기 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하는 단계 - 상기 제2 그룹의 조건은 적어도 다음 조건 11 및 조건 12를 포함한다:
조건 11: 상기 참조 영상 색인 i2에 대응하는 POC가 상기 현재 영상의 POC보다 크다; 및
조건 12: 상기 현재 영상의 POC에서 상기 참조 영상 색인 i2에 대응하는 POC를 감산하여 획득되는 차가 상기 현재 영상의 POC에서 참조 영상 색인 iy에 대응하는 POC를 감산하여 획득되는 차보다 크고, 상기 참조 영상 색인 iy는 상기 제2 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i2 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 iy에 대응하는 POC는 상기 현재 영상의 POC보다 크다 -; 및
상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인에 기초하여 상기 현재 블록을 예측하는 단계 - 상기 현재 영상은 상기 현재 블록을 포함함 -를 포함한다.
본 발명의 실시예에서, 상기 조건 1 및 상기 조건 2 더하여, 상기 제1 조건 그룹은 다른 조건을 더 포함할 수 있고, 상기 조건 11 및 상기 조건 12에 더하여, 상기 제2 조건 그룹은 다른 조건을 더 포함할 수 있음을 이해해야 한다. 이러한 조건으로는 종래 기술의 선택적 실행 조건 또는 표준적 진화의 선택적 실행 조건을 포함하지만 이에 한정되지 않으며, 본 발명의 실시예에서 총망라하지 않다.
제3 측면에 따르면, 본 발명은 양방향 인터 예측 방법을 제공한다. 상기 양방향 인터 예측 방법은,
제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하도록 허용하는 단계 - 상기 참조 영상 색인 i1에 대응하는 POC는 현재 영상의 POC보다 작고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i1에 대응하는 POC를 감산하여 획득되는 차는 상기 현재 영상의 POC에서 참조 영상 색인 ix에 대응하는 POC를 감산하여 획득되는 차보다 작고, 상기 참조 영상 색인 ix는 상기 제1 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i1 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 ix에 대응하는 POC는 상기 현재 영상의 POC보다 작음 -;
제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 허용하는 단계 - 상기 참조 영상 색인 i2에 대응하는 POC는 상기 현재 영상의 POC보다 크고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i2에 대응하는 POC를 감산하여 획득되는 차는 상기 현재 영상의 POC에서 참조 영상 색인 iy에 대응하는 POC를 감산하여 획득되는 차보다 크고, 상기 참조 영상 색인 iy는 상기 제2 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i2 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 iy에 대응하는 POC는 상기 현재 영상의 POC보다 큼 -; 및
상기 참조 영상 색인 i1이 상기 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정되고 상기 참조 영상 색인 i2가 상기 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정되는 경우, 상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인에 기초하여 상기 현재 블록을 예측하는 단계 - 상기 현재 영상은 상기 현재 블록을 포함함 -를 포함한다.
본 발명의 제1 측면, 제2 측면 또는 제3 측면에 따르면, 가능한 설계에서, 상기 제1 참조 영상 리스트는 제1 방향에 대응할 수 있고, 상기 제2 참조 영상 리스트는 제2 방향에 대응할 수 있다. 상기 제1 방향과 상기 제2 방향은 각각 순방향과 역방향, 또는 역방향과 순방향이거나, 또는 상기 제1 방향 및 상기 제2 방향이 모두 순방향 또는 역방향일 수 있다. 상기 방향은 또한 시간 시퀀스로 이해될 수 있으며 본 발명에서는 이를 한정하지 않는다.
본 발명의 제1 측면, 제2 측면 또는 제3 측면에 따르면, 가능한 설계에서, 상기 양방향 인터 예측 방법은 디코딩 기기에서 사용되며, 상응하게, 상기 양방향 인터 예측 방법은,
제1 식별자를 획득하는 단계를 더 포함하고, 상기 제1 식별자의 값은 제1 미리 설정된 값이며(1 또는 2일 수 있지만 이에 한정되지 않음), 상기 제1 참조 영상 리스트의 참조 영상 색인 i1을 상기 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하고, 상기 제2 참조 영상 리스트의 참조 영상 색인 i2를 상기 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 지시하는 데 사용된다.
선택적으로, 상기 제1 식별자의 값이 제2 미리 설정된 값(제1 미리 설정된 값과 다르고, 0 또는 1일 수 있지만 이에 한정되지 않음)인 경우, 상기 제1 식별자는 상기 현재 블록의 참조 영상 색인을 획득하기 위해 비트스트림이 파싱되어야 하거나 다른 방식이 사용되어야 함을 지시할 수 있다.
본 발명의 제1 측면, 제2 측면, 또는 제3 측면에 따르면, 가능한 설계에서, 상기 제1 식별자가 제1 미리 설정된 값(0 또는 1일 수 있지만 이에 한정되지 않음)인 경우, 상기 제1 식별자는 상기 현재 블록의 제1 움직임 벡터 차(motion vector difference)에 기초하여 상기 현재 블록의 제2 움직임 벡터 차를 결정하도록 지시하는 데 추가로 사용되고, 상기 양방향 인터 예측 방법은,
상기 현재 블록의 제1 움직임 벡터 차를 획득하는 단계; 및
하기 공식에 따라 상기 제1 움직임 벡터 차에 기초하여 상기 현재 블록의 제2 움직임 벡터 차를 획득하는 단계를 더 포함한다:
.
여기서, 는 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타내며, 상기 제1 움직임 벡터 차와 상기 제2 움직임 벡터 차 중 하나는 상기 제1 참조 영상 리스트에 대응하고, 상기 제1 움직임 벡터 차와 상기 제2 움직임 벡터 차 중 다른 하나는 상기 제2 움직임 벡터 차에 대응한다.
선택적으로, 제1 식별자의 값이 제2 미리 설정된 값(제1 미리 설정된 값과 다르며 0 또는 1로 제한되지는 않음)인 경우, 상기 제1 식별자는 현재 블록의, 상기 제1 참조 영상 리스트 및/또는 상기 제2 참조 영상 리스트에 대응하는 상기 제1 움직임 벡터 차 및/또는 상기 제2 움직임 벡터 차를 획득하기 위해 비트스트림이 파싱되어야 하거나 다른 방식이 사용되어야 함을 지시할 수 있다.
요컨대, 제1 식별자의 값이 제1 미리 설정된 값인 경우, 제1 식별자는 제1 움직임 정보와 제2 움직임 정보가 상호 도출될 수 있음을 지시할 수 있다. 예를 들어, 제2 움직임 정보가 제1 움직임 정보에 기초하여 도출될 수 있거나, 제1 움직임 정보가 제2 움직임 정보에 기초하여 도출될 수 있다. 보다 구체적으로, 제2 움직임 벡터가 제1 움직임 벡터에 기초하여 도출될 수 있거나, 제1 움직임 벡터가 제2 움직임 벡터에 기초하여 도출될 수 있다. 제2 움직임 벡터 차는 제1 움직임 벡터 차에 기초하여 도출될 수 있거나, 제1 움직임 벡터 차는 제2 움직임 벡터 차에 기초하여 도출될 수 있다.
이 경우, 모든 움직임 정보(예: MVD)이 비트스트림에서 송신하지 않아도 되므로, 비트스트림을 송신하기 위한 자원이 감소되어, 비트스트림 송신 효율을 향상시킬 수 있다.
또한, 제1 움직임 벡터가 제2 움직임 벡터에 기초하여 도출되거나, 제2 움직임 벡터가 제1 움직임 벡터에 기초하여 도출되는 경우, 제1 참조 영상 색인 및 제2 참조 영상 색인은 도출을 통해 결정될 수 있다. 다시 말해, 제1 참조 영상 색인 및 제2 참조 영상 색인은 비트스트림을 파싱하지 않고 획득될 수 있다.
결론적으로, 제1 식별자의 값이 제1 미리 설정된 값인 경우, 제1 식별자는 현재 블록의 참조 영상 색인이 도출을 통해 획득 또는 결정될 수 있음을 지시하는 데 사용될 수 있음을 알 수 있다. 구체적으로, 제1 식별자의 값이 제1 미리 설정된 값인 경우, 제1 식별자는 제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하고, 제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 지시하는 데 사용될 수 있다. 이 경우, 비트스트림 전송 효율을 향상시키기 위해, 참조 영상 색인을 비트스트림에서 송신하지 않을 수 있다.
또한, 제1 식별자의 값이 제2 미리 설정된 값인 경우, 제1 식별자는 제1 움직임 벡터가 제2 움직임 벡터에 기초하여 도출되지 않았거나, 제2 움직임 벡터가 제1 움직임 벡터에 기초하여 도출되지 않음을 지시하는 데 사용될 수 있다. 이 경우, 현재 블록의 제1 참조 영상 색인 및 제2 참조 영상 색인을 획득하기 위해서는 비트스트림을 파싱해야 한다.
또한, 제1 식별자의 값이 제2 미리 설정된 값인 경우, 제1 식별자는 제1 움직임 벡터 차가 제2 움직임 벡터 차에 기초하여 도출되지 않았거나, 제2 움직임 벡터 차가 제1 움직임 벡터 차에 기초하여 도출되지 않음을 지시하는 데 사용될 수 있다. 이 경우, 현재 블록의 제1 참조 영상 색인 및 제2 참조 영상 색인을 획득하기 위해서는 비트스트림을 파싱해야 한다.
본 발명의 제1 측면, 제2 측면, 또는 제3 측면에 따르면, 가능한 설계에서, 상기 양방향 인터 예측 방법은,
제1 예측된 움직임 벡터 및 제2 예측된 움직임 벡터를 획득하는 단계;
상기 제1 예측된 움직임 벡터 및 상기 제1 움직임 벡터 차에 기초하여 상기 제1 움직임 벡터를 결정하는 단계; 및
상기 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 상기 제2 움직임 벡터를 결정하는 단계를 더 포함한다.
상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인에 기초하여 상기 현재 블록을 예측하는 단계는, 상기 제1 참조 영상 색인, 상기 제2 참조 영상 색인, 상기 제1 참조 영상 리스트, 상기 제2 참조 영상 리스트, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 기초하여 상기 현재 블록을 예측하는 단계를 포함한다.
선택적으로, 구체적인 구현 과정에서, 상기 제1 예측된 움직임 벡터 및 상기 제2 예측된 움직임 벡터는 본 발명의 실시예에서 파싱 및/또는 도출을 통해 획득될 수 있고, 상기 제1 움직임 벡터 차 및 상기 제2 움직임 벡터 차도 또한 본 발명의 실시예에서 파싱 및/또는 도출을 통해 획득될 수 있고, 상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인은 전술한 결정 방법에 따라 결정될 수 있으며, 상기 제1 참조 영상 리스트 및 상기 제2 참조 영상 리스트는 비트스트림으로부터 획득될 수 있거나 구축될 수 있다. 이러한 움직임 정보가 완성된 후, 상기 현재 블록이 예측될 수 있다. 구체적인 예측 방법은 종래 기술에 따라 구현될 수 있다.
전술한 방법에 따르면, 한 방향의 MVD는 다른 방향의 MVD에 기초하여 도출될 수 있고, 참조 영상 색인은 특정 규칙에 따라 결정될 수 있다. 이러한 방식으로, 현재 블록의 두 개의 움직임 정보에 대해 하나 이상의 MVD와 두 개의 참조 영상 색인이 비트스트림에서 송신되지 않을 수 있어, 비트스트림 송신을 위한 자원을 절약할 수 있다.
본 발명의 제1 측면, 제2 측면 또는 제3 측면에 따르면, 가능한 설계에서, 상기 제1 식별자를 획득하는 단계 전에, 상기 양방향 인터 예측 방법은 미리 설정된 조건이 충족되는지를 결정하는 단계를 더 포함하며, 상기 미리 설정된 조건은,
상기 제1 참조 영상 리스트가 제1 색인을 갖고, 상기 제2 참조 영상 리스트가 제2 색인을 가지며, 상기 현재 영상의 POC는 상기 제1 색인에 대응하는 POC와 상기 제2 색인에 대응하는 POC 사이에 있는 것을 포함한다.
예를 들어, 다음 조건이 충족되는 것으로 표시될 수도 있다.
.
여기서 는 현재 영상의 POC를 나타내고, 는 제1 참조 영상 리스트에서의 참조 영상의 POC를 나타내고, 는 제2 참조 영상 리스트에서의 참조 영상의 POC를 나타낼 수 있다.
본 발명의 제1 측면, 제2 측면 또는 제3 측면에 따르면, 가능한 설계에서, 상기 제1 식별자를 획득하기 전에, 상기 양방향 인터 예측 방법은 미리 설정된 조건이 충족되는지를 결정하는 단계를 더 포함하며, 상기 미리 설정된 조건은, 상기 현재 영상의, 상기 제2 참조 영상 리스트에 대응하는 획득된 움직임 벡터 잔차 식별자는 제3 미리 설정된 값이다. 예를 들어, 현재 영상의 mvd_l1_zero_flag는 0이다.
본 발명의 제1 측면, 제2 측면 또는 제3 측면에 따르면, 가능한 설계에서, 일 때, 처리 대상 블록(to-be-processed block)(즉, 현재 블록)이 위치하는 영상과의 POC 차가 최소인 영상이 상기 처리 대상 블록의 제1 참조 영상 리스트에서 제1 타깃 참조 영상으로 결정되고, 상기 제1 타깃 참조 영상의 POC는 상기 처리 대상 블록이 위치하는 영상의 POC보다 작고; 상기 처리 대상 블록이 위치하는 영상과의 POC 차가 최소인 영상이 상기 처리 대상 블록의 상기 제2 참조 영상 리스트에서 제2 타깃 참조 영상으로 결정되고, 상기 제2 타깃 참조 영상의 POC는 상기 처리 대상 블록이 위치하는 영상의 POC보다 크다. 상기 제1 타깃 참조 영상과 상기 제2 타깃 참조 영상이 모두 존재하는 경우, 상기 제1 참조 영상 리스트에서 상기 제1 타깃 참조 영상의 참조 영상 색인은 i1이고, 상기 제2 참조 영상 리스트에서 상기 제2 타깃 참조 영상의 참조 영상 색인은 i2이다.
선택적으로, 상기 제1 타깃 참조 영상 또는 상기 제2 타깃 참조 영상이 존재하지 않는 경우, 상기 처리 대상 블록이 위치하는 영상과의 POC 차가 최소인 영상이 상기 처리 대상 블록의 상기 제1 참조 영상 리스트에서 제3 타깃 참조 영상으로 결정되며, 상기 제3 타깃 참조 영상의 POC는 상기 처리 대상 블록이 위치하는 영상의 POC보다 크고; 상기 처리 대상 블록이 위치하는 영상과의 POC 차가 최소인 영상이 상기 처리 대상 블록의 상기 제2 참조 영상 리스트에서 제4 타깃 참조 영상으로 결정되며, 상기 제4 타깃 참조 영상의 POC는 상기 처리 대상 블록이 위치하는 영상의 POC보다 작다. 제3 타깃 참조 영상과 제4 타깃 참조 영상이 모두 존재하는 경우, 상기 제2 참조 영상 리스트에서 상기 제4 타깃 참조 영상의 색인은 i2이고, 상기 제1 참조 영상 리스트에서 상기 제3 타깃 참조 영상의 참조 영상 색인은 i1이다.
제4 측면에 따르면, 양방향 인터 예측 장치가 제공된다. 상기 양방향 인터 예측 장치는,
제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하고 - 상기 참조 영상 색인 i1에 대응하는 POC는 현재 영상의 POC보다 작고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i1에 대응하는 POC를 감산하여 획득되는 차는 상기 현재 영상의 POC에서 참조 영상 색인 ix에 대응하는 POC를 감산하여 획득되는 차보다 작고, 상기 참조 영상 색인 ix는 상기 제1 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i1 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 ix에 대응하는 POC는 상기 현재 영상의 POC보다 작음 -; 제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 구성된 결정 유닛 - 상기 참조 영상 색인 i2에 대응하는 POC는 상기 현재 영상의 POC보다 크고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i2에 대응하는 POC를 감산하여 획득되는 차는 상기 현재 영상의 POC에서 참조 영상 색인 iy에 대응하는 POC를 감산하여 획득되는 차보다 크고, 상기 참조 영상 색인 iy는 상기 제2 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i2 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 iy에 대응하는 POC는 상기 현재 영상의 POC보다 큼 -; 및
상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인에 기초하여 상기 현재 블록을 예측하도록 구성된 예측 유닛 - 상기 현재 영상은 상기 현재 블록을 포함함 -을 포함한다.
제4 측면에 따르면, 가능한 설계에서, 상기 양방향 인터 예측 장치는, 제1 식별자를 획득하도록 구성된 획득 유닛을 더 포함하고, 상기 제1 식별자의 값은 제1 미리 설정된 값이며, 상기 제1 식별자의 값이 상기 제1 미리 설정된 값인 경우, 상기 제1 식별자는 상기 제1 참조 영상 리스트의 참조 영상 색인 i1을 상기 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하고, 상기 제2 참조 영상 리스트의 참조 영상 색인 i2를 상기 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 지시하는 데 사용된다.
제4 측면에 따르면, 가능한 설계에서, 상기 제1 식별자가 제1 미리 설정된 값인 경우, 상기 제1 식별자는 상기 현재 블록의 제1 움직임 벡터 차에 기초하여 상기 현재 블록의 제2 움직임 벡터 차를 결정하도록 지시하는 데 추가로 사용되고; 상기 획득 유닛은 추가로, 상기 현재 블록의 제1 움직임 벡터 차를 획득하도록 구성되고; 상기 결정 유닛은 추가로 하기 공식에 따라 상기 제1 움직임 벡처 차에 기초하여 상기 현재 블록의 제2 움직임 벡터 차를 획득하도록 구성된다:
.
여기서 는 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타내며, 상기 제1 움직임 벡터 차와 상기 제2 움직임 벡터 차 중 하나는 상기 제1 참조 영상 리스트에 대응하는 움직임 정보에 속하고, 상기 제1 움직임 벡터 차와 상기 제2 움직임 벡터 차 중 다른 하나는 상기 제2 참조 영상 리스트에 대응하는 움직임 정보에 속한다.
제4 측면에 따르면, 가능한 설계에서, 상기 획득 유닛은 구체적으로, 제1 예측된 움직임 벡터 및 제2 예측된 움직임 벡터를 획득하도록 구성되고, 상기 결정 유닛은, 상기 제1 예측된 움직임 벡터 및 상기 제1 움직임 벡터 차에 기초하여 제1 움직임 벡터를 결정하고, 상기 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하도록 구성되고; 상기 인터 예측 처리 유닛은, 상기 제1 참조 영상 색인, 상기 제2 참조 영상 색인, 상기 제1 참조 영상 리스트, 상기 제2 참조 영상 리스트, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 기초하여 상기 현재 블록을 예측하도록 구성된다.
구체적인 구현 시에, 전술한 유닛(가상 모듈)으로는 개별 컴퓨팅 모듈 또는 동일한 통합된 컴퓨팅 모듈을 포함하지만 이에 한정되는 것은 아니다. 구현 형태를 총망라하여 열거하지는 않는다. 상이한 명칭은 기능 간의 구분을 위해 사용되는 것일 뿐이며, 구조에 대한 어떠한 불필요한 한정도 구성해서는 안 된다.
제5 측면에 따르면, 본 발명은 양방향 인터 예측 방법을 제공하며, 상기 양방향 인터 예측 방법은,
처리 대상 블록의 보조 정보가 미리 설정된 조건을 충족하는 경우, 비트스트림을 파싱하여 지시 정보를 획득하는 단계 - 상기 지시 정보는 제1 움직임 벡터의 획득 방식과 제2 움직임 벡터의 획득 방식을 지시하는 데 사용되며, 상기 제1 움직임 벡터는 상기 처리 대상 블록의 제1 참조 영상 리스트에서의 참조 영상을 가리키는 움직임 벡터이고, 상기 제2 움직임 벡터는 상기 처리 대상 블록의 제2 참조 영상 리스트에서의 참조 영상을 가리키는 움직임 벡터임 -;
상기 지시 정보에 의해 지시되는 획득 방식에 기초하여 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 결정하는 단계; 및
상기 제1 움직임 벡터, 상기 제2 움직임 벡터, 제1 참조 영상 색인 및 제2 참조 영상 색인에 기초하여 상기 처리 대상 블록의 예측자를 결정하는 단계 - 상기 제1 참조 영상 색인은 상기 제1 움직임 벡터가 가리키는, 상기 제1 참조 영상 리스트에서의 참조 영상을 지시하는 데 사용되고, 상기 제2 참조 영상 색인은 상기 제2 움직임 벡터가 가리키는, 상기 제2 참조 영상 리스트에서의 참조 영상을 지시하는 데 사용됨 -를 포함한다.
제6 측면에 따르면, 본 발명은 양방향 인터 예측 장치를 제공하며, 상기 양방향 인터 예측 장치는, 처리 대상 블록의 보조 정보가 미리 설정된 조건을 충족하는 경우, 비트스트림을 파싱하여 지시 정보를 획득하도록 구성된 획득 유닛 - 상기 지시 정보는 제1 움직임 벡터의 획득 방식과 제2 움직임 벡터의 획득 방식을 지시하는 데 사용되며, 상기 제1 움직임 벡터는 상기 처리 대상 블록의 제1 참조 영상 리스트에서의 참조 영상을 가리키는 움직임 벡터이고, 상기 제2 움직임 벡터는 상기 처리 대상 블록의 제2 참조 영상 리스트에서의 참조 영상을 가리키는 움직임 벡터임 -; 및 상기 지시 정보에 의해 지시되는 획득 방식에 기초하여 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 결정하고, 상기 제1 움직임 벡터, 상기 제2 움직임 벡터, 제1 참조 영상 색인 및 제2 참조 영상 색인에 기초하여 상기 처리 대상 블록의 예측자를 결정하도록 구성된 결정 유닛 - 상기 제1 참조 영상 색인은 상기 제1 움직임 벡터가 가리키는, 상기 제1 참조 영상 리스트에서의 참조 영상을 지시하는 데 사용되고, 상기 제2 참조 영상 색인은 상기 제2 움직임 벡터가 가리키는, 상기 제2 참조 영상 리스트에서의 참조 영상을 지시하는 데 사용됨 -을 포함한다.
제5 측면 및 제6 측면은 서로 대응하는 방법과 장치를 설명한다. 다음의 가능한 설계에서는, 가능한 구현 방안을 설명하기 위해 방법만을 예로 사용하며, 장치 측에 대한 세부 사항은 설명하지 않는다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 지시 정보는 제1 식별자 및 제5 식별자를 포함하고, 상기 비트스트림을 파싱하여 지시 정보를 획득하는 단계는, 상기 비트스트림을 파싱하여 상기 제1 식별자를 획득하는 단계; 및 상기 제1 식별자가 0인 경우, 상기 비트스트림을 파싱하여 상기 제5 식별자를 획득하는 단계를 포함한다. 이에 상응하여, 상기 지시 정보에 의해 지시되는 획득 방식에 기초하여 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 결정하는 단계는,
상기 제1 식별자가 1인 경우, 상기 비트스트림을 파싱하여 제1 예측된 움직임 벡터 색인 및/또는 제1 움직임 벡터 잔차를 획득하는 단계; 상기 제1 예측된 움직임 벡터 색인 및/또는 상기 제1 움직임 벡터 잔차에 기초하여 상기 제1 움직임 벡터를 계산하는 단계; 및 상기 제1 움직임 벡터에 기초하여 상기 제2 움직임 벡터를 도출하는 단계 - 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터는 미리 설정된 수학적 관계에 있음 -; 또는
상기 제1 식별자가 0이고 상기 제5 식별자가 1인 경우, 상기 비트스트림을 파싱하여 제2 예측된 움직임 벡터 색인 및/또는 제2 움직임 벡터 잔차를 획득하는 단계; 상기 제2 예측된 움직임 벡터 색인 및/또는 상기 제2 움직임 벡터 잔차에 기초하여 상기 제2 움직임 벡터를 계산하는 단계; 및 상기 제2 움직임 벡터에 기초하여 상기 제1 움직임 벡터를 도출하는 단계 - 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터는 미리 설정된 수학적 관계에 있음 -; 또는
상기 제1 식별자가 0이고 상기 제5 식별자가 0인 경우, 상기 비트스트림을 파싱하여 제1 예측된 움직임 벡터 색인 및/또는 제1 움직임 벡터 잔차를 획득하는 단계; 상기 제1 예측된 움직임 벡터 색인 및/또는 상기 제1 움직임 벡터 잔차에 기초하여 상기 제1 움직임 벡터를 계산하는 단계; 상기 비트스트림을 파싱하여 제2 예측된 움직임 벡터 색인 및/또는 제2 움직임 벡터 잔차를 획득하는 단계; 및 상기 제2 예측된 움직임 벡터 색인 및/또는 상기 제2 움직임 벡터 잔차에 기초하여 상기 제2 움직임 벡터를 계산하는 단계를 포함한다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 지시 정보는 제2 식별자 및 제3 식별자를 포함하고, 상기 비트스트림을 파싱하여 지시 정보를 획득하는 단계는, 상기 비트스트림을 파싱하여 상기 제2 식별자를 획득하는 단계; 상기 제2 식별자가 1인 경우, 상기 비트스트림을 파싱하여 상기 제3 식별자를 획득하는 단계를 포함한다. 이에 상응하여, 상기 지시 정보에 의해 지시되는 획득 방식에 기초하여 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 결정하는 단계는, 상기 제2 식별자가 0인 경우, 상기 비트스트림을 파싱하여 제1 예측된 움직임 벡터 색인 및/또는 제1 움직임 벡터 잔차를 획득하는 단계; 상기 제1 예측된 움직임 벡터 색인 및/또는 상기 제1 움직임 벡터 잔차에 기초하여 상기 제1 움직임 벡터를 계산하는 단계; 상기 비트스트림을 파싱하여 제2 예측된 움직임 벡터 색인 및/또는 제2 움직임 벡터 잔차를 획득하는 단계; 및 상기 제2 예측된 움직임 벡터 색인 및/또는 상기 제2 움직임 벡터 잔차에 기초하여 상기 제2 움직임 벡터를 계산하는 단계; 또는 상기 제2 식별자가 1이고 상기 제3 식별자가 제1 값인 경우, 상기 비트스트림을 파싱하여 제1 예측된 움직임 벡터 색인 및/또는 제1 움직임 벡터 잔차를 획득하는 단계; 상기 제1 예측된 움직임 벡터 색인 및/또는 상기 제1 움직임 벡터 잔차에 기초하여 상기 제1 움직임 벡터를 계산하는 단계; 및 상기 제1 움직임 벡터에 기초하여 상기 제2 움직임 벡터를 도출하는 단계 - 상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 미리 설정된 수학적 관계에 있음 -; 또는 상기 제2 식별자가 1이고 상기 제3 식별자가 제2 값인 경우, 상기 비트스트림을 파싱하여 제2 예측된 움직임 벡터 색인 및/또는 제2 움직임 벡터 잔차를 획득하는 단계; 상기 제2 예측된 움직임 벡터 색인 및/또는 상기 제2 움직임 벡터 잔차에 기초하여 상기 제2 움직임 벡터를 계산하는 단계; 및 상기 제2 움직임 벡터에 기초하여 상기 제1 움직임 벡터를 도출하는 단계 - 상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 미리 설정된 수학적 관계에 있고, 상기 제1 값은 상기 제2 값과 동일하지 않음 -를 포함한다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 지시 정보는 제2 식별자를 포함하고, 상기 비트스트림을 파싱하여 지시 정보를 획득하는 단계는,
상기 비트스트림을 파싱하여 상기 제2 식별자를 파싱하는 단게를 포함한다.
이에 상응하여, 상기 지시 정보에 의해 지시되는 획득 방식에 기초하여 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터를 결정하는 단계는,
상기 제2 식별자가 0인 경우, 상기 비트스트림을 파싱하여 제1 예측된 움직임 벡터 색인 및/또는 제1 움직임 벡터 잔차를 획득하는 단계; 상기 제1 예측된 움직임 벡터 색인 및/또는 상기 제1 움직임 벡터 잔차에 기초하여 상기 제1 움직임 벡터를 계산하는 단계; 상기 비트스트림을 파싱하여 제2 예측된 움직임 벡터 색인 및/또는 제2 움직임 벡터 잔차를 획득하는 단계; 및 상기 제2 예측된 움직임 벡터 색인 및/또는 상기 제2 움직임 벡터 잔차에 기초하여상기 제2 움직임 벡터를 계산하는 단계; 또는
상기 제2 식별자가 1인 경우, 상기 비트스트림을 파싱하여 제1 예측된 움직임 벡터 색인 및/또는 제1 움직임 벡터 잔차를 획득하는 단계; 상기 제1 예측된 움직임 벡터 색인 및/또는 상기 제1 움직임 벡터 잔차에 기초하여 상기 제1 움직임 벡터를 계산하는 단계; 및 상기 제1 움직임 벡터에 기초하여 상기 제2 움직임 벡터를 도출하는 단계 - 상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 미리 설정된 수학적 관계에 있음 -를 포함한다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 제1 움직임 벡터와 상기 제2 움직임 벡터가 미리 설정된 수학적 관계에 있다는 것은, 상기 제1 움직임 벡터와 상기 제2 움직임 벡터는 크기가 같고 방향이 반대인 것, 및/또는, 상기 제1 움직임 벡터 잔차와 상기 제2 움직임 벡터 잔차는 크기가 같고 방향이 반대인 것을 포함한다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 보조 정보는 상기 처리 대상 블록의 참조 영상의 수량을 포함하고, 상기 처리 대상 블록의 보조 정보가 상기 미리 설정된 조건을 충족한다는 것은 다음을 포함한다: 상기 처리 대상 블록의 참조 영상의 수량이 2보다 크거나 같다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 보조 정보는 상기 처리 대상 블록이 위치하는 영상과 상기 처리 대상 블록의 참조 영상 사이의 영상 순서 카운트(POC) 관계를 포함하고, 상기 처리 대상 블록의 보조 정보가 미리 설정된 조건을 충족한다는 것은 다음을 포함한다:
.
여기서 는 상기 처리 대상 블록이 위치하는 영상의 POC이고, 는 상기 제1 참조 영상 리스트에서의 상기 처리 대상 블록의 참조 영상의 POC이고, 는 상기 제2 참조 영상 리스트에서의 상기 처리 대상 블록의 참조 영상의 POC이다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 보조 정보는 상기 처리 대상 블록이 위치하는 영상과 상기 처리 대상 블록의 참조 영상 사이의 영상 순서 카운트(POC) 관계를 포함하고, 상기 처리 대상 블록의 보조 정보가 미리 설정된 조건을 충족한다는 것은 다음을 포함한다:
.
여기서 는 상기 처리 대상 블록이 위치하는 영상의 POC이고, 는 상기 제1 참조 영상 리스트에서의 상기 처리 대상 블록의 참조 영상의 POC이고, 는 상기 제2 참조 영상 리스트에서의 상기 처리 대상 블록의 참조 영상의 POC이다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 보조 정보는 상기 처리 대상 블록이 위치하는 영상의 시간 식별자(Temporal ID)를 포함하고, 상기 처리 대상 블록의 보조 정보가 상기 미리 설정된 조건을 충족한다는 것은 다음을 포함한다: 상기 처리 대상 블록이 위치하는 영상의 시간 식별자가 미리 설정된 값보다 크거나 같다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 보조 정보는 상기 처리 대상 블록의 움직임 벡터 잔차(mvd_l1_zero_flag) 식별자를 포함하고, 상기 처리 대상 블록의 보조 정보가 상기 미리 설정된 조건을 충족한다는 것은 다음을 포함한다: 상기 처리 대상 블록의 움직임 벡터 잔차 식별자는 상기 처리 대상 블록의 움직임 벡터 잔차가 0임을 지시하며, 상기 움직임 벡터 잔차는 상기 제1 움직임 벡터 잔차 또는 상기 제2 움직임 벡터 잔차이다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 처리 대상 블록의 예측자를 결정하는 전에, 상기 양방향 인터 예측 방법은,
상기 제1 움직임 벡터가 상기 제2 움직임 벡터에 기초하여 도출되거나, 상기 제2 움직임 벡터가 상기 제1 움직임 벡터에 기초하여 도출되는 경우, 상기 보조 정보가 충족하는 미리 설정된 조건에 기초하여 상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인을 결정하는 단계; 또는
상기 제1 움직임 벡터가 상기 제2 움직임 벡터에 기초하여 도출되지 않고, 상기 제2 움직임 벡터가 상기 제1 움직임 벡터에 기초하여 도출되지 않는 경우, 상기 비트스트림을 파싱하여 상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인을 획득하는 단계를 더 포함한다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 제1 참조 영상 색인 및 제2 참조 영상 색인을 결정하는 것은, 상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인을 각각 미리 설정된 상수로 설정하는 것을 포함한다. 상기 미리 설정된 상수는 0일 수 있다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 인 경우, 상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인을 결정하는 단계는, 상기 처리 대상 블록이 위치하는 영상과의 POC 차가 최소인 영상을 상기 처리 대상 블록에서의 제1 타깃 참조 영상으로서 결정하는 단계 - 상기 제1 타깃 참조 영상의 POC는 상기 처리 댕상 블록이 위치하는 영상의 POC보다 작음 -; 상기 처리 대상 블록의 제2 참조 영상 리스트에서 제2 타깃 참조 영상을 검색하는 단계 - 상기 제2 타깃 참조 영상의 POC는 POC_Cur - POC_1 = POC_2 - POC_Cur을 충족하고, POC_1은 상기 제1 타깃 참조 영상의 PO이고, POC_2는 상기 제2 타깃 참조 영상의 POC임 -; 및 상기 제1 타깃 참조 영상과 제2 타깃 참조 영상이 모두 존재하는 경우, 상기 제1 참조 영상 색인을 상기 제1 타깃 참조 영상의 식별자로 설정하고, 상기 제2 참조 영상 색인을 상기 제2 타깃 참조 영상의 식별자로 설정하는 단계를 포함한다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 방법은 다음을 상기 양방향 인터 예측 방법은,
상기 제1 타깃 참조 영상 또는 상기 제2 타깃 참조 영상이 존재하지 않는 경우, 상기 처리 대상 블록이 위치하는 영상과의 POC 차가 최소인 영상을 상기 처리 대상 블록의 제1 참조 영상 리스트에서의 제3 타깃 참조 영상으로서 결정하는 단계 - 상기 제3 타깃 참조 영상의 POC가 상기 처리 대상 블록이 위치하는 영상의 POC보다 큼 - 상기 처리 대상 블록의 제2 참조 영상 리스트에서 제4 타깃 참조 영상을 검색하는 단계 - 상기 제4 타깃 참조 영상의 POC는 다음: POC_Cur - POC_3 = POC_4 - POC_Cur이고, POC_3은 제3 대상 참조 영상의 POC이고, POC_4는 상기 제4 타깃 참조 영상의 POC인 것을 충족함 -; 및 상기 제1 참조 영상 색인을 상기 제3 타깃 참조 영상의 식별자로 설정하고, 상기 제2 참조 영상 색인을 상기 제4 타깃 참조 영상의 식별자로 설정하는 단계를 더 포함한다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 인 경우, 상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인을 결정하는 단계는,
상기 처리 대상 블록이 위치하는 영상과의 POC 차가 최소인 영상을, 상기 처리 대상 블록의 제1 참조 영상 리스트에서의 제1 타깃 참조 영상으로서 결정하는 단계 - 상기 제1 타깃 참조 영상의 POC는 상기 처리 대상 블록이 위치하는 영상의 POC보다 작음 -;
상기 처리 대상 블록이 위치하는 영상과의 POC 차가 최소인 영상을, 상기 처리 대상 블록의 제2 참조 영상 리스트에서의 제2 타깃 참조 영상으로서 결정하는 단계 - 상기 제2 타깃 참조 영상의 POC는 상기 처리 대상 블록이 위치하는 영상의 POC보다 큼 -; 및
상기 제1 타깃 참조 영상과 상기 제2 타깃 참조 영상이 모두 존재하는 경우, 상기 제1 참조 영상 색인을 상기 제1 타깃 참조 영상의 식별자로 설정하고, 상기 제2 참조 영상 색인을 상기 제2 타깃 참조 영상의 식별자로 설정한다.
제5 측면 또는 제6 측면에 따르면, 가능한 설계에서, 상기 양방향 인터 예측 방법은,
상기 제1 타깃 참조 영상 또는 상기 제2 타깃 참조 영상이 존재하지 않는 경우, 상기 처리 대상 블록이 위치하는 영상과의 POC 차가 최소인 영상을, 상기 처리 대상 블록의 제1 참조 영상 리스트에서의 제3 타깃 참조 영상으로서 결정하는 단계 - 상기 제3 타깃 참조 영상의 POC는 상기 처리 대상 블록이 위치하는 영상의 POC보다 큼 -; 상기 처리 대상 블록이 위치하는 영상과의 POC 차가 최소인 영상을, 상기 처리 대상 블록의 제2 참조 영상 리스트에서의 제4 타깃 참조 영상으로서 결정하는 단계 - 상기 제4 타깃 참조 영상의 POC는 상기 처리 대상 블록이 위치하는 영상의 POC보다 작음 -; 및 상기 제1 참조 영상 색인을 상기 제3 타깃 참조 영상의 식별자로 설정하고, 상기 제2 참조 영상 색인을 상기 제4 타깃 참조 영상의 식별자로 설정하는 단계를 더 포함한다.
제7 측면에 따르면, 본 발명은 양방향 인터 예측 방법을 제공하며, 상기 양방향 인터 예측 방법은,
비트스트림에서의 적어도 신택스 요소(syntax element)가 현재 영상의 제2 움직임 벡터 차가 파싱되어야 함을 지시하는 경우, 제1 식별자를 획득하는 단계; 현재 블록의 제1 움직임 벡터 차를 획득하는 단계; 및 상기 제1 식별자의 값이 제1 미리 설정된 값인 경우, 상기 제1 움직임 벡터 차에 기초하여 상기 현재 블록의 제2 움직임 벡터 차를 결정하는 단계 - 상기 제1 움직임 벡터 차는 제1 방향에서의 상기 현재 블록의 움직임 정보에 속하고, 상기 제2 움직임 벡터 차는 제2 방향에서의 상기 현재 블록의 움직임 정보에 속하며, 상기 제1 움직임 벡터 차와 상기 제2 움직임 벡터 차는 상기 현재 블록을 예측에 사용됨 -를 포함한다.
제8 측면에 따르면, 양방향 인터 예측 방법이 제공되며, 상기 양방향 인터 예측 방법은, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하도록 지시하는 데 사용되는 지시 정보를 획득하는 단계 - 상기 제1 움직임 정보는 제1 방향에서의 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 상기 제1 움직임 정보를 획득하는 단계; 및 획득된 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정하는 단계를 포함한다. 이러한 방식으로, 획득된 제1 움직임 정보 및 결정된 제2 움직임 정보에 기초하여 현재 블록의 예측 샘플이 결정될 수 있다.
본 출원에서 제공되는 양방향 인터 예측 방법에 따르면, 지시 정보가 획득된 후, 제1 움직임 정보에 기초하여 제2 움직임 정보가 결정된다. 이러한 방식으로, 비트스트림은 지시 정보와 제1 움직임 정보만을 포함할 필요가 있고, 더이상 제2 움직임 정보를 포함할 필요가 없다. 비트스트림이 각각의 방향에서 각각의 영상 블록의 움직임 정보를 포함하는 종래 기술에 비해, 본 출원에서 제공되는 양방향 인터 예측 방법은 비트스트림에 포함되는 움직임 정보를 효과적으로 감소시키고, 송신 자원의 효과적인 이용, 송신 레이트 및 코딩 레이트를 향상시킨다.
선택적으로, 본 출원의 가능한 구현예에서, "상기 제1 움직임 정보에 기초하여 상기 제2 움직임 정보 결정"하는 방법은, 상기 제1 움직임 정보에서의 제1 참조 영상의 색인 값을 획득하고, 상기 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 상기 제1 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제1 참조 영상은 제1 방향에서의 현재 블록의 참조 영상이고, 상기 제1 참조 영상의 색인 값은 상기 제1 참조 영상 리스트에서의 상기 제1 참조 영상의 번호임 -; 제2 참조 영상의 색인 값을 획득하고, 상기 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 제2 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상의 색인 값은 상기 제2 참조 영상 리스트에서의 상기 제2 참조 영상의 번호임 -; 상기 제1 움직임 정보에 있는 제1 움직임 벡터 차 및 제1 움직임 벡터 예측자 플래그에 기초하여 제1 움직임 벡터를 결정하고 - 상기 제1 움직임 벡터는 상기 제1 방향에서의 상기 현재 블록의 움직임 벡터임 -; 하기 공식에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터를 결정하는 것이다:
.
위 공식에서, 는 제2 움직임 벡터를 나타내고, 는 현재 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 상기 제2 참조 영상의 영상 순서 카운트를 나타내고, 는 제1 움직임 벡터를 나타내고, 상기 제2 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 움직임 벡터이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "상기 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정"하는 방법은, 상기 제1 움직임 정보에서의 제1 참조 영상의 색인 값을 획득하고, 상기 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 상기 제1 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제1 참조 영상은 상기 제1 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제1 참조 영상의 색인 값은 상기 제1 참조 영상 리스트에서의 상기 제1 참조 영상의 번호임 -; 제2 참조 영상의 색인 값을 획득하고, 상기 제2 참조 영상의 색인 값 및 상기 제2 참조 영상 리스트에 기초하여 상기 제2 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상의 색인 값은 상기 제2 참조 영상 리스트에서의 상기 제2 참조 영상의 번호임 -; 상기 제1 움직임 정보에 있는 제1 움직임 벡터 차 및 제1 움직임 벡터 예측자 플래그에 기초하여 제1 움직임 벡터를 결정하고 - 상기 제1 움직임 벡터는 상기 제1 방향에서의 상기 현재 블록의 움직임 벡터임 -; 상기 제1 참조 영상이 상기 현재 블록의 순방향 참조 영상이고 상기 제2 참조 영상이 상기 현재 블록의 역방향 참조 영상인 경우, 또는 상기 제1 참조 영상이 상기 현재 블록의 역방향 참조 영상이고 상기 제2 참조 영상이 상기 현재 블록의 순방향 참조 영상인 경우, 또는 상기 제1 참조 영상과 상기 제2 참조 영상이 각각 상기 현재 블록의 순방향 참조 영상인 경우, 또는 상기 제1 참조 영상과 상기 제2 참조 영상이 각각 상기 현재 블록의 역방향 참조 영상인 경우, 공식 에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터를 결정하는 것이며, 이 공식에서, 는 상기 제2 움직임 벡터를 나타내고, 는 상기 제1 움직임 벡터를 나타내며, 상기 제2 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 움직임 벡터이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "상기 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정"하는 방법은 공식: 에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터를 결정하는 것이며, 이 공식에서, 는 상기 제2 움직임 벡터를 나타내고, 는 상기 제1 움직임 벡터를 나타내며, 상기 제2 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 움직임 벡터이다.
"상기 제1 참조 영상은 상기 현재 블록의 순방향 참조 영상이고, 상기 제2 참조 영상은 상기 현재 블록의 역방향 참조 영상이다"와 "상기 제1 참조 영상은 상기 현재 블록의 역방향 참조 영상이고 상기 제2 참조 영상은 상기 현재 블록의 순방향 참조 영상이다"는 모두 공식 을 사용하여 나타낼 수 있거나, 공식 을 사용하여 나타낼 수 있다. 본 출원에서는 이를 특별히 한정하지 않는다.
또한, "상기 제1 참조 영상과 상기 제2 참조 영상은 각각 상기 현재 블록의 순방향 참조 영상이다"와 상기 제1 참조 영상과 상기 제2 참조 영상은 각각 상기 현재 블록의 역방향 참조 영상이다"는 모두 공식 을 사용하여 나타낼 수 있다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "상기 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정"하는 방법은, 상기 제1 움직임 정보에 있는 제1 참조 영상의 색인 값 및 제1 움직임 벡터 차를 획득하고, 상기 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 상기 제1 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제1 참조 영상은 상기 제1 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제1 참조 영상의 색인 값은 상기 제1 참조 영상 리스트에서의 상기 제1 참조 영상의 번호임 -; 제2 참조 영상의 색인 값을 획득하고, 상기 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 상기 제2 참조 영상의 영상 순서 카운트를 결정하고, 상기 제2 참조 영상의 색인 값 및 제2 후보 예측된 움직임 벡터 리스트에 기초하여 제2 예측된 움직임 벡터를 결정하고 - 상기 제2 예측된 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 예측된 움직임 벡터이고, 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상의 색인 값은 상기 제2 참조 영상 리스트에서의 상기 제2 참조 영상의 번호임 -; 다음 공식:
에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터 차를 결정하고 - 이 공식에서, 는 상기 제2 움직임 벡터 차를 나타내고, 는 상기 현재 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 상기 제2 참조 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 움직임 벡터 차를 나타냄 -; 상기 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하는 것 - 상기 제2 움직임 벡터는 상기 제2 방향에서의 현재 블록의 움직임 벡터임 -이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "상기 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정"하는 방법은, 상기 제1 움직임 정보에 있는 상기 제1 참조 영상의 색인 값, 및 상기 제1 움직임 벡터를 획득하고, 상기 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 상기 제1 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제1 참조 영상은 상기 제1 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제1 참조 영상의 색인 값은 상기 제1 참조 영상 리스트에서의 상기 제1 참조 영상의 번호임 -; 제2 참조 영상의 색인 값을 획득하고, 상기 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 상기 제2 참조 영상의 영상 순서 카운트를 결정하고, 상기 제2 참조 영상의 색인 값 및 제2 후보 예측된 움직임 벡터 리스트에 기초하여 제2 예측된 움직임 벡터를 결정하고 - 상기 제2 예측된 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 예측된 움직임 벡터이고, 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상의 색인 값은 상기 제2 참조 영상 리스트에서의 상기 제2 참조 영상의 번호임 -; 상기 제1 참조 영상이 상기 현재 블록의 순방향 참조 영상이고 상기 제2 참조 영상이 상기 현재 블록의 역방향 참조 영상인 경우, 또는 상기 제1 참조 영상이 상기 현재 블록의 역방향 참조 영상이고 상기 제2 참조 영상이 상기 현재 블록의 순방향 참조 영상인 경우, 또는 상기 제1 참조 영상과 상기 제2 참조 영상이 각각 상기 현재 블록의 순방향 참조 영상인 경우, 또는 상기 제1 참조 영상과 상기 제2 참조 영상이 각각 상기 현재 블록의 역방향 참조 영상인 경우, 공식 에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터 차를 결정하고 - 이 공식에서, 는 상기 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타냄 -; 상기 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하는 것 - 상기 제2 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 움직임 벡터임 -이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "상기 제1 움직임 정보에 기초하여 사익 제2 움직임 정보를 결정"하는 방법은, 공식: 에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터 차를 결정하고 - 이 공식에서, 는 상기 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타냄 -; 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하는 것 - 상기 제2 움직임 벡터는 상기 제2 방향의 상기 현재 블록의 움직임 벡터임 -이다.
마찬가지로, "상기 제1 참조 영상은 상기 현재 블록의 순방향 참조 영상이고, 상기 제2 참조 영상은 상기 현재 블록의 역방향 참조 영상이다"와 "상기 제1 참조 영상은 상기 현재 블록의 역방향 참조 영상이고, 상기 제2 참조 영상은 상기 현재 블록의 순방향 참조 영상이다"는 모두 공식 을 사용하여 나타낼 수 있거나, 공식 를 사용하여 나타낼 수 있다. 본 출원에서는 이를 특별히 한정하지 않는다.
또한, "상기 제1 참조 영상과 상기 제2 참조 영상은 각각 상기 현재 블록의 순방향 참조 영상이다"와 상기 제1 참조 영상과 상기 제2 참조 영상은 각각 상기 현재 블록의 역방향 참조 영상이다"는 모두 공식 을 사용하여 나타낼 수 있다.
본 출원에서 제공되는 양방향 인터 예측 방법은, 제1 움직임 벡터에 기초하여 제2 움직임 벡터를 결정하는 것일 수 있거나, 또는 제1 움직임 벡터 차에 기초하여 제2 움직임 벡터 차를 결정하고, 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하는 것일 수 있음을 알 수 있다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "제2 참조 영상의 색인 값을 획득하는" 방법은, 상기 현재 영상의 영상 순서 카운트 및 상기 제1 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제1 영상 순서 카운트를 계산하고 - 여기서 는 상기 현재 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 제1 영상 순서 카운트를 나타냄 -; 상기 제2 참조 영상 리스트가 상기 제1 영상 순서 카운트를 포함하는 경우, 상기 제2 참조 영상 리스트에서의 상기 제1 영상 순서 카운트로 나타낸 참조 영상의 번호를, 상기 제2 참조 영상의 색인 값으로서 결정하는 것이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "제2 참조 영상의 색인 값을 획득하는" 방법은 상기 현재 영상의 영상 순서 카운트와 상기 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제2 영상 순서 카운트를 계산하고 - 여기서 는 제2 영상 순서 카운트를 나타냄 -; 상기 제2 참조 영상 리스트가 상기 제2 영상 순서 카운트를 포함하는 경우, 상기 제2 참조 영상 리스트에서의 상기 제2 영상 순서 카운트로 나타낸 참조 영상의 번호를, 상기 제2 참조 영상의 색인 값으로서 결정하는 것이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "제2 참조 영상의 색인 값을 획득하는" 방법은, 상기 현재 영상의 영상 순서 카운트 및 상기 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제3 영상 순서 카운트를 계산하고 - 여기서 는 상기 제3 영상 순서 카운트를 나타냄 -; 상기 제2 참조 영상 리스트에서의 상기 제3 영상 순서 카운트로 나타낸 참조 영상의 번호를, 상기 제2 참조 영상의 색인 값으로서 결정하는 것이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "제2 참조 영상의 색인 값을 획득하는" 방법은, 상기 현재 영상의 영상 순서 카운트 및 상기 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제1 영상 순서 카운트를 계산하는 것이며, 여기서, 는 상기 현재 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 영상 순서 카운트를 나타낸다. 상기 제2 참조 영상 리스트가 상기 제1 영상 순서 카운트를 포함하는 경우, 상기 제2 참조 영상 리스트에서의 상기 제1 영상 순서 카운트가 나타내는 참조 영상의 번호가 상기 제2 참조 영상의 색인 값으로서 결정된다. 상기 제2 참조 영상 리스트가 상기 제1 영상 순서 카운트를 포함하지 않는 경우, 제2 영상 순서 카운트는 상기 현재 영상의 영상 순서 카운트와 상기 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 계산되며, 여기서 는 상기 제2 영상 순서 카운트를 나타낸다. 제2 참조 영상 리스트가 제2 영상 순서 카운트를 포함하는 경우, 상기 제2 참조 영상 리스트에서의 상기 제2 영상 순서 카운트가 나타내는 참조 영상의 번호가 상기 제2 참조 영상의 색인 값으로 결정된다. 상기 제2 참조 영상 리스트가 제2 영상 순서 카운트를 포함하지 않는 경우, 상기 현재 영상의 영상 순서 카운트와 상기 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제3 영상 순서 카운트가 계산되며, 는 상기 제3 영상 순서 카운트를 나타내고; 상기 제2 참조 영상 리스트에서의 상기 제3 영상 순서 카운트가 나타내는 참조 영상의 번호가 상기 제2 참조 영상의 색인 값으로 결정된다.
선택적으로, 본 출원의 다른 가능한 구현예에서, "제2 참조 영상의 색인 값을 획득하는" 방법은, 비트스트림을 파싱하여 상기 제2 참조 영상의 색인 값을 획득하는 것이다.
본 출원에서 "제2 참조 영상의 색인 값을 획득하는" 방법은 여러 가지가 있음을 알 수 있다. 제2 참조 영상의 색인 값을 획득하는 구체적인 방법은 실제 요건에 결정되거나 미리 설정되어야 한다.
제9 측면에 따르면, 양방향 인터 예측 장치가 제공된다. 상기 양방향 인터 예측 장치는 획득 유닛 및 결정 유닛을 포함한다.
구체적으로, 상기 획득 유닛은 지시 정보를 획득하고 - 상기 지시 정보는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하도록 지시하는 데 사용되며, 상기 제1 움직임 정보는 제1 방향에서의 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 상기 제1 움직임 정보를 획득하도록 구성된다. 상기 결정 유닛은 상기 획득 유닛에 의해 획득되는 상기 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정하고, 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하도록 구성된다.
선택적으로, 본 출원의 가능한 구현예에서, 상기 결정 유닛은 구체적으로, 상기 제1 움직임 정보에서의 제1 참조 영상의 색인 값을 획득하고, 상기 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 상기 제1 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제1 참조 영상은 상기 제1 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제1 참조 영상의 색인 값은 상기 제1 참조 영상 리스트에서의 상기 제1 참조 영상의 번호임 -; 제2 참조 영상의 색인 값을 획득하고, 상기 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 제2 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상의 색인 값은 상기 제2 참조 영상 리스트에서의 상기 제2 참조 영상의 번호임 -; 상기 제1 움직임 정보에 있는 제1 움직임 벡터 차 및 제1 움직임 벡터 예측자 플래그에 기초하여 제1 움직임 벡터를 결정하고 - 상기 제1 움직임 벡터는 상기 제1 방향에서의 상기 현재 블록의 움직임 벡터임 -; 하기 공식에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터를 결정하도록 구성된다:
.
여기서 는 상기 제2 움직임 벡터를 나타내고, 는 현재 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 상기 제2 참조 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 움직임 벡터를 나타내고, 상기 제2 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 움직임 벡터이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, 상기 결정 유닛은 구체적으로, 상기 제1 움직임 정보에서의 제1 참조 영상의 색인 값을 획득하고, 상기 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 상기 제1 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제1 참조 영상은 상기 제1 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제1 참조 영상의 색인 값은 상기 제1 참조 영상 리스트에서의 상기 제1 참조 영상의 번호임 -; 제2 참조 영상의 색인 값을 획득하고, 상기 제2 참조 영상의 색인 값 및 상기 제2 참조 영상 리스트에 기초하여 상기 제2 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상의 색인 값은 상기 제2 참조 영상 리스트에서의 상기 제2 참조 영상의 번호임 -; 상기 제1 움직임 정보에 있는 제1 움직임 벡터 차 및 제1 움직임 벡터 예측자 플래그에 기초하여 제1 움직임 벡터를 결정하고 - 상기 제1 움직임 벡터는 상기 제1 방향에서의 상기 현재 블록의 움직임 벡터임 -; 상기 제1 참조 영상이 상기 현재 블록의 순방향 참조 영상이고 상기 제2 참조 영상이 상기 현재 블록의 역방향 참조 영상인 경우, 또는 상기 제1 참조 영상이 상기 현재 블록의 역방향 참조 영상이고 상기 제2 참조 영상이 상기 현재 블록의 순방향 참조 영상인 경우, 또는 상기 제1 참조 영상과 상기 제2 참조 영상이 각각 상기 현재 블록의 순방향 참조 영상인 경우, 또는 상기 제1 참조 영상과 상기 제2 참조 영상이 각각 상기 현재 블록의 역방향 참조 영상인 경우, 공식 에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터를 결정하는 것이며, 이 공식에서, 는 상기 제2 움직임 벡터를 나타내고, 는 상기 제1 움직임 벡터를 나타내며, 상기 제2 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 움직임 벡터이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, 상기 결정 유닛은 구체적으로, 공식 에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터를 결정하도록 구성되며, 이 공식에서, 는 상기 제2 움직임 벡터를 나타내고, 는 제1 움직임 벡터를 나타내며, 상기 제2 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 움직임 벡터이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, 상기 결정 유닛은 구체적으로, 상기 제1 움직임 정보에 있는 제1 참조 영상의 색인 값 및 제1 움직임 벡터 차를 획득하고, 상기 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 상기 제1 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제1 참조 영상은 상기 제1 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제1 참조 영상의 색인 값은 상기 제1 참조 영상 리스트에서의 상기 제1 참조 영상의 번호임 -; 제2 참조 영상의 색인 값을 획득하고, 상기 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 상기 제2 참조 영상의 영상 순서 카운트를 결정하고, 상기 제2 참조 영상의 색인 값 및 제2 후보 예측된 움직임 벡터 리스트에 기초하여 제2 예측된 움직임 벡터를 결정하고 - 상기 제2 예측된 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 예측된 움직임 벡터이고, 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상의 색인 값은 상기 제2 참조 영상 리스트에서의 상기 제2 참조 영상의 번호임 -; 다음 공식:
에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터 차를 결정하고 - 여기서, 는 상기 제2 움직임 벡터 차를 나타내고, 는 현재 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 상기 제2 참조 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 움직임 벡터 차를 나타냄 -; 상기 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하도록 구성되며, 상기 제2 움직임 벡터는 상기 제2 방향에서의 현재 블록의 움직임 벡터이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, 상기 결정 유닛은 구체적으로, 상기 제1 움직임 정보에 있는 상기 제1 참조 영상의 색인 값, 및 제1 움직임 벡터를 획득하고, 상기 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 상기 제1 참조 영상의 영상 순서 카운트를 결정하고 - 상기 제1 참조 영상은 상기 제1 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제1 참조 영상의 색인 값은 상기 제1 참조 영상 리스트에서의 상기 제1 참조 영상의 번호임 -; 제2 참조 영상의 색인 값을 획득하고, 상기 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 상기 제2 참조 영상의 영상 순서 카운트를 결정하고, 상기 제2 참조 영상의 색인 값 및 제2 후보 예측된 움직임 벡터 리스트에 기초하여 제2 예측된 움직임 벡터를 결정하고 - 상기 제2 예측된 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 예측된 움직임 벡터이고, 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상의 색인 값은 상기 제2 참조 영상 리스트에서의 상기 제2 참조 영상의 번호임 -; 상기 제1 참조 영상이 상기 현재 블록의 순방향 참조 영상이고 상기 제2 참조 영상이 상기 현재 블록의 역방향 참조 영상인 경우, 또는 상기 제1 참조 영상이 상기 현재 블록의 역방향 참조 영상이고 상기 제2 참조 영상이 상기 현재 블록의 순방향 참조 영상인 경우, 또는 상기 제1 참조 영상과 상기 제2 참조 영상이 각각 상기 현재 블록의 순방향 참조 영상인 경우, 또는 상기 제1 참조 영상과 상기 제2 참조 영상이 각각 상기 현재 블록의 역방향 참조 영상인 경우, 공식 에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터 차를 결정하고 - 여기서 는 상기 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타냄 -; 상기 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하는 하도록 구성되며, 상기 제2 움직임 벡터는 상기 제2 방향에서의 상기 현재 블록의 움직임 벡터이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, 상기 결정 유닛은 구체적으로, 공식 에 따라 상기 제2 움직임 정보에서의 제2 움직임 벡터 차를 결정하고 - 이 공식에서, 는 상기 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타냄 -; 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하도록 구성되며, 상기 제2 움직임 벡터는 상기 제2 방향의 상기 현재 블록의 움직임 벡터이다.
선택적으로, 본 출원의 다른 가능한 구현예에서, 상기 획득 유닛은 구체적으로, 상기 현재 영상의 영상 순서 카운트 및 상기 제1 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제1 영상 순서 카운트를 계산하고 - 여기서 는 상기 현재 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 상기 제1 영상 순서 카운트를 나타냄 -; 상기 제2 참조 영상 리스트가 상기 제1 영상 순서 카운트를 포함하는 경우, 상기 제2 참조 영상 리스트에서의 상기 제1 영상 순서 카운트가 나타내는 참조 영상의 번호를, 상기 제2 참조 영상의 색인 값으로서 결정도록 구성된다.
선택적으로, 본 출원의 다른 가능한 구현예에서, 상기 획득 유닛은 구체적으로, 상기 현재 영상의 영상 순서 카운트와 상기 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제2 영상 순서 카운트를 계산하고 - 여기서 는 상기 제2 영상 순서 카운트를 나타냄 -; 상기 제2 참조 영상 리스트가 상기 제2 영상 순서 카운트를 포함하는 경우, 상기 제2 참조 영상 리스트에서의 상기 제2 영상 순서 카운트가 나타내는 참조 영상의 번호를, 상기 제2 참조 영상의 색인 값으로서 결정하도록 구성된다.
선택적으로, 본 출원의 다른 가능한 구현예에서, 상기 획득 유닛은 구체적으로, 상기 현재 영상의 영상 순서 카운트 및 상기 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제3 영상 순서 카운트를 계산하고 - 여기서 는 상기 제3 영상 순서 카운트를 나타냄 -; 상기 제2 참조 영상 리스트에서의 상기 제3 영상 순서 카운트가 나타내는 참조 영상의 번호를, 상기 제2 참조 영상의 색인 값으로서 결정하도록 구성된다.
제10 측면에 따르면, 양방향 인터 예측 방법이 제공된다. 상기 양방향 인터 예측 방법에 대한 구현예는 여러 가지가 있다.
일 구현예는, 비트스트림을 파싱하여 제1 식별자를 획득하는 단계 - 상기 제1 식별자는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정할 것인지의 여부를 지시하는 데 사용되며, 상기 제1 움직임 정보는 제1 방향에서의 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 상기 제1 식별자의 값이 제1 미리 설정된 값이면, 상기 제1 움직임 정보를 획득하고, 상기 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정하는 단계; 및 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현예는, 비트스트림을 파싱하여 제2 식별자를 획득하는 단계 - 상기 제2 식별자는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산할 것인지의 여부를 지시하는 데 사용됨 -; 상기 제2 식별자의 값이 제2 미리 설정된 값이면, 제3 식별자를 획득하고 - 상기 제3 식별자는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정할 것인지의 여부를 지시하는 데 사용되며, 상기 제1 움직임 정보는 제1 방향에서의 상기 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 상기 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 상기 제3 식별자의 값이 제3 미리 설정된 값이면, 상기 제1 움직임 정보를 획득하고, 상기 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정하는 단계; 및 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현예는, 비트스트림을 파싱하여 제2 식별자를 획득하는 단계 - 상기 제2 식별자는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산할 것인지의 여부를 지시하는 데 사용됨 -; 상기 제2 식별자의 값이 제2 미리 설정된 값이면, 제1 움직임 정보를 획득하고, 상기 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하는 단계 - 상기 제1 움직임 정보는 제1 방향에서의 상기 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 및 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현예는, 비트스트림을 파싱하여 제4 식별자를 획득하는 단계 - 상기 제4 식별자는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산할 것인지의 여부를 지시하는 데 사용됨 -; 상기 제4 식별자의 값이 제4 미리 설정된 값이면, 제1 참조 영상 리스트 및 제2 참조 영상 리스트에 기초하여 제1 참조 영상의 색인 값과 제2 참조 영상의 색인 값을 결정하는 단계 - 상기 제1 참조 영상 리스트는 제1 방향에서의 상기 현재 블록의 참조 영상 리스트이고, 상기 제2 참조 영상 리스트는 제2 방향에서의 상기 현재 블록의 참조 영상 리스트이고, 상기 제1 참조 영상은 상기 제1 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상임 -; 제1 움직임 벡터 차 및 제1 움직임 벡터 예측자 플래그를 획득하고, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하는 단계 - 상기 제1 움직임 정보는 상기 제1 참조 영상의 색인 값, 상기 제1 움직임 벡터 차 및 상기 제1 움직임 벡터 예측자 플래그를 포함 하고, 상기 제2 움직임 정보는 상기 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 및 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현예는, 비트스트림을 파싱하여 제1 식별자를 획득하는 단계 - 상기 제1 식별자는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정할 것인지의 여부를 지시하는 데 사용되고, 상기 제1 움직임 정보는 제1 방향에서의 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 상기 제1 식별자의 값이 제8 미리 설정된 값이면, 제5 식별자를 획득하는 단계 - 상기 제5 식별자는 상기 제2 움직임 정보에 기초하여 상기 제1 움직임 정보를 결정할 것인지의 여부를 지시하는 데 사용됨 -; 상기 제5 식별자의 값이 제5 미리 설정된 값이면, 상기 제2 움직임 정보를 획득하고, 상기 제2 움직임 정보에 기초하여 상기 제1 움직임 정보를 결정하는 단계; 및 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현예는, 비트스트림을 파싱하여 제2 식별자를 획득하는 단계 - 상기 제2 식별자는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산할 것인지의 여부를 지시하는 데 사용됨; 상기 제2 식별자의 값이 제2 미리 설정된 제2 값이면, 제3 식별자를 획득하는 단계 - 상기 제3 식별자는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정할 것인지의 여부를 지시하는 데 사용되고, 상기 제1 움직임 정보는 제1 방향에서의 상기 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 제3 식별자의 값이 제6 미리 설정된 값이면, 상기 제2 움직임 정보를 획득하고, 상기 제2 움직임 정보에 기초하여 상기 제1 움직임 정보를 결정하는 단계; 및 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하는 단계를 포함한다.
제1 식별자 내지 제4 식별자에 대한 구체적인 설명에 대해서는, 이하의 설명을 참조하기 바란다.
본 출원에서 제공되는 양방향 인터 예측 방법에서는, 비트스트림을 파싱하여 식별자를 획득한 후, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정할 것인지의 여부를 식별자의 값에 기초하여 판정한다. 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정해야 한다고 판정하면, 제1 움직임 정보를 획득한 다음, 획득한 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다. 이러한 방식으로, 비트스트림은 대응하는 식별자와 제1 움직임 정보만 포함하면 되고, 더이상 제2 움직임 정보를 포함할 필요가 없다. 비트스트림이 각각의 방향의 영상 블록 각각의 움직임 정보를 포함하는 종래 기술에 비해, 본 출원에서 제공하는 양방향 인터 예측 방법은 비트스트림에 포함되는 움직임 정보를 효과적으로 감소시키고, 송신 자원의 효과적인 이용, 송신 레이트 및 코딩 레이트를 향상시킨다.
제11 측면에 따르면, 양방향 인터 예측 장치가 제공된다. 상기 양방향 인터 예측 장치는 획득 유닛 및 결정 유닛을 포함한다.
구체적으로, 일 구현예에서, 상기 획득 유닛은, 비트스트림을 파싱하여 제1 식별자를 획득하고 - 상기 제1 식별자는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정할 것인지의 여부를 지시하는 데 사용되며, 상기 제1 움직임 정보는 제1 방향에서의 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 상기 제1 식별자의 값이 제1 미리 설정된 값이면, 상기 제1 움직임 정보를 획득하도록 구성된다. 상기 결정 유닛은, 상기 획득 유닛에 의해 획득되는 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정하고, 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하도록 구성된다.
다른 구현예에서, 상기 획득 유닛은 비트스트림을 파싱하여 제2 식별자를 획득하고 - 상기 제2 식별자는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산할 것인지의 여부를 지시하는 데 사용됨 -; 상기 제2 식별자의 값이 제2 미리 설정된 값이면, 제3 식별자를 획득하고 - 상기 제3 식별자는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정할 것인지의 여부를 지시하는 데 사용되며, 상기 제1 움직임 정보는 제1 방향에서의 상기 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 상기 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 상기 제3 식별자의 값이 제3 미리 설정된 값이면, 상기 제1 움직임 정보를 획득하도록 구성된다. 상기 결정 유닛은 상기 획득 유닛에 의해 획득되는 제1 움직임 정보에 기초하여 상기 제2 움직임 정보를 결정하고, 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하도록 구성된다.
다른 구현예에서, 상기 획득 유닛은, 비트스트림을 파싱하여 제2 식별자를 획득하고 - 상기 제2 식별자는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산할 것인지의 여부를 지시하는 데 사용됨 -; 상기 제2 식별자의 값이 제2 미리 설정된 값이면, 제1 움직임 정보를 획득하도록 구성된다. 상기 결정 유닛은, 상기 획득 유닛에 의해 획득되는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하고 - 상기 제1 움직임 정보는 제1 방향에서의 상기 현재 블록의 움직임 정보이고, 상기 제2 움직임 정보는 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 및 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하도록 구성된다.
다른 구현예에서, 상기 획득 유닛은 비트스트림을 파싱하여 제4 식별자를 획득하도록 구성되며, 상기 제4 식별자는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산할 것인지의 여부를 지시하는 데 사용된다. 상기 결정 유닛은 상기 획득 유닛에 의해 획득되는 제4 식별자의 값이 제4 미리 설정된 값이면, 제1 참조 영상 리스트 및 제2 참조 영상 리스트에 기초하여 제1 참조 영상의 색인 값과 제2 참조 영상의 색인 값을 결정하도록 구성되며, 상기 제1 참조 영상 리스트는 제1 방향에서의 상기 현재 블록의 참조 영상 리스트이고, 상기 제2 참조 영상 리스트는 제2 방향에서의 상기 현재 블록의 참조 영상 리스트이고, 상기 제1 참조 영상은 상기 제1 방향에서의 상기 현재 블록의 참조 영상이고, 상기 제2 참조 영상은 상기 제2 방향에서의 상기 현재 블록의 참조 영상이다. 상기 획득 유닛은 추가로, 제1 움직임 벡터 차 및 제1 움직임 벡터 예측자 플래그를 획득하도록 구성된다. 상기 결정 유닛은 추가로, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하고 - 상기 제1 움직임 정보는 상기 제1 참조 영상의 색인 값, 상기 제1 움직임 벡터 차 및 상기 제1 움직임 벡터 예측자 플래그를 포함하고, 상기 제2 움직임 정보는 상기 제2 방향에서의 상기 현재 블록의 움직임 정보임 -; 상기 제1 움직임 정보 및 상기 제2 움직임 정보에 기초하여 상기 현재 블록의 예측 샘플을 결정하도록 구성된다.
제12 측면에 따르면, 단말기가 제공된다. 상기 단말기는 하나 이상의 프로세서, 메모리 및 통신 인터페이스를 포함한다. 상기 메모리와 상기 통신 인터페이스는 하나 이상의 프로세서에 연결된다. 상기 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성되고, 상기 컴퓨터 프로그램 코드는 명령어를 포함한다. 상기 하나 이상의 프로세서가 상기 명령어를 실행할 때, 상기 단말기는 전술한 측면들 및 전술한 측면들의 가능한 구현예 중 어느 하나에 따른 방법(또는 장치에 대응하는 방법)을 수행한다.
제13 측면에 따르면, 비휘발성 저장 매체 및 중앙 처리 유닛을 포함하는 비디오 디코더가 제공된다. 상기 비휘발성 저장 매체는 실행 가능한 프로그램을 저장한다. 상기 중앙 처리 유닛은 상기 비휘발성 저장 매체에 연결되고, 상기 실행 가능한 프로그램을 실행하여 전술한 측면들 및 전술한 측면들의 가능한 구현예 중 어느 하나에 따른 방법(또는 장치에 대응하는 방법)을 수행한다.
제14 측면에 따르면, 디코더가 제공된다. 상기 디코더는 양방향 인터 예측 장치 및 재구축 모듈을 포함한다. 상기 재구축 모듈은 상기 양방향 인터 예측 장치에 의해 획득되는 예측 샘플에 기초하여 현재 블록의 재구축된 샘플 값을 결정하도록 구성된다. 상기 양방향 인터 예측 장치는 전술한 측면들 및 전술한 측면들의 가능한 구현예 중 어느 하나에 따른 방법(또는 장치에 대응하는 방법)을 구현할 수 있다.
제15 측면에 따르면, 인코더가 제공되며, 전술한 디코더에 대응하거나 전술한 디코더에 결합되는 전술한 측면들 및 전술한 측면들의 가능한 구현예 중 어느 하나에 따른 방법(또는 장치에 대응하는 방법)을 구현할 수 있다.
제16 측면에 따르면, 컴퓨터로 판독 가능한 저장 매체가 제공된다. 상기 컴퓨터로 판독 가능한 저장 매체는 명령어를 저장하고, 상기 명령어가 전술한 단말기에서 실행될 때, 상기 단말기는 전술한 측면들 및 전술한 측면들의 가능한 구현예 중 어느 하나에 따른 방법(또는 장치에 대응하는 방법)을 수행할 수 있게 된다.
제17 측면에 따르면, 명령어를 포함하는 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품이 전술한 단말기에서 실행될 때, 상기 단말기는 전술한 측면들 및 전술한 측면들의 가능한 구현예 중 어느 하나에 따른 양방향 인터 예측 방법을 수행할 수 있게 된다.
본 출원에서, 양방향 인터 예측 장치의 명칭은 기기 또는 기능 모듈을 한정하는 것은 아니다. 실제 구현 시에, 기기 또는 기능 모듈은 다른 명칭을 가질 수 있다. 기기 또는 기능 모듈의 기능이 본 출원의 기능과 유사하다면, 그 기기 또는 기능 모듈은 본 출원 및 그에 상응하는 기술의 청구 범위 내에 속한다.
본 출원에서 제1 측면 내지 제16 측면의 구체적인 설명 및 제1 측면 내지 제16 측면의 다양한 구현예에서, 자연법칙에 위배되지 않는 자유로운 조합이 구현될 수 있다. 또한, 일부 표현과 효과는 다른 방안에 보편적일 수 있다. 세부항은 여기서 설명하지 않는다.
본 출원의 이러한 측면 또는 다른 측면은 이하의 설명에서 더 간결하고 이해하기 쉽다.
도 1은 본 출원의 일 실시예에 따른 비디오 코딩 시스템의 개략 구성도이다.
도 2는 본 출원의 일 실시예에 따른 비디오 인코더의 개략 구성도이다.
도 3은 본 출원의 일 실시예에 따른 비디오 디코더의 개략 구성도이다.
도 4는 본 출원의 일 실시예에 따른 양방향 인터 예측 방법의 개략 흐름도이다.
도 5a는 본 출원의 일 실시예에 따른 다른 양방향 인터 예측 방법의 개략 흐름도이다.
도 5b는 본 출원의 일 실시예에 따른 양방향 인터 예측 장치의 개략 구성도이다.
도 5c는 본 출원의 일 실시예에 따른 다른 양방향 인터 예측 장치의 개략 구성도이다.
도 6a는 본 출원의 일 실시예에 따른 또 다른 양방향 인터 예측 장치의 개략 구성도이다.
도 6b는 본 출원의 일 실시예에 따른 코딩 장치의 개략 구성도이다.
도 7은 콘텐츠 배포 서비스(content delivery service)를 구현하는 콘텐츠 공급 시스템(3100)의 예시적인 구성의 블록도이다.
도 8은 단말 기기의 예시적인 구성의 블록도이다.
본 출원의 명세서, 청구 범위 및 첨부 도면에서, "제1", "제2", "제3" 및 "제4"와 같은 용어는 서로 다른 객체를 구별하기 위한 것이고, 반드시 특정 순서를 나타내는 것은 아니다.
본 출원의 실시예에서, "예" 또는 "예를 들어"와 같은 단어는 예, 예시 또는 설명을 제공하는 것을 나타내는 데 사용된다. 본 출원의 실시예에서 "예" 또는 "예를 들어"라는 단어로 설명되는 임의의 실시예 또는 설계 방식이 다른 실시예 또는 설계 방식보다 더 바람직하거나 더 많은 이점을 갖는 것으로 설명되어서는 안 된다. 정확하게는, "예" 또는 "예를 들어"와 같은 단어의 사용은 특정 방식으로 관련 개념을 제시하기 위한 것이다.
본 출원의 실시예의 이해를 용이하게 하기 위해, 본 출원의 실시예의 관련 요소를 여기서 먼저 설명한다.
영상 인코딩(picture encoding): 영상 시퀀스를 비트스트림으로 압축하는 프로세스.
영상 디코딩(picture decoding): 특정 신택스 규칙 및 특정 처리 방법에 따라 비트스트림을 재구축된 영상(reconstructed picture)으로 복원하는 프로세스.
현재, 비디오 영상 인코딩 프로세스는 다음과 같다. 인코더 측은 먼저 원본 영상(original picture)을 중첩되지 않는 복수의 부분으로 분할하고, 각각의 부분을 영상 블록으로서 사용할 수 있다. 그런 다음, 인코더 측은 각각의 영상 블록에 대해 예측(Prediction), 변환(Transform) 및 양자화(Quantization)와 같은 작업을 수행하여, 영상 블록에 대응하는 비트스트림을 획득한다. 예측은 영상 블록의 예측 블록을 획득하는 것이어서, 영상 블록과 영상 블록의 예측 블록 사이의 차이(또는 잔차 또는 잔차 블록이라고 함)만이 인코딩되고 송신될 수 있도록 하여, 송신 오버헤드를 감소시킬 수 있다. 마지막으로, 인코더 측은 영상 블록에 대응하는 비트스트림을 디코더 측에 전송한다.
이에 상응하여, 디코더 측은 비트스트림을 수신한 후, 비디오 디코딩 프로세스를 수행한다. 구체적으로, 특히, 디코더 측은 수신된 비트스트림에 대해 예측, 역양자화 및 역변환과 같은 작업을 수행하여 재구축된 영상 블록(또는 재구축 후의 영상 블록이라고 함)을 획득한다. 이 프로세스를 영상 재구축 프로세스(또는 영상 재건 프로세스)라고 한다. 그 후, 디코더 측은 원본 영상에서의 모든 영상 블록의 재구축된 블록을 조합하여 원본 영상의 재구축된 영상을 획득하고 재구축된 영상을 재생한다.
기존의 비디오 영상 코딩 기술은 인트라 예측(intra prediction) 및 인터 예측을 포함한다. 인터 예측은 현재 영상과 현재 영상의 참조 영상 사이의 상관관계를 이용하여 영상 블록을 코딩/영상 블록 디코딩함으로써 완성되는 예측이다. 현재 영상은 하나 이상의 참조 영상을 가질 수 있다. 구체적으로, 현재 블록의 예측 영상 블록은 현재 블록의 참조 영상에서의 샘플에 기초하여 생성된다.
일반적으로, 현재 블록의 예측 영상 블록은 하나의 참조 영상 블록만에 기초하여 생성될 수 있거나, 현재 블록의 예측 영상 블록은 둘 이상의 참조 영상 블록에 기초하여 생성될 수 있다. 하나의 참조 영상 블록에 기초하여 현재 블록의 예측 영상 블록을 생성하는 것을 단방향 예측이라고 하고, 둘 이상의 참조 영상 블록에 기초하여 현재 블록의 예측 영상 블록을 생성하는 것을 양방향 인터 예측이라고 한다. 양방향 인터 예측에서 둘 이상의 참조 영상 블록은 동일한 참조 영상 또는 상이한 참조 영상으로부터 온 것일 수 있다. 다시 말해, 본 출원에서 "방향"은 일반화된 정의이다. 본 출원에서 하나의 방향은 하나의 참조 영상 블록에 대응한다. 이하에서 제1 방향과 제2 방향은 상이한 참조 영상 블록에 대응한다. 두 개의 참조 영상 블록은 현재 블록의 순방향 참조 영상/역방향 참조 영상에 포함될 수 있거나; 또는 하나의 참조 영상 블록은 현재 블록의 순방향 참조 영상에 포함될 수 있고, 다른 참조 영상 블록은 현재 블록의 역방향 참조 영상에 포함될 수 있다. 따라서, 제1 방향과 제2 방향은 상이한 참조 블록에 대응하고, 또한 상이한 참조 영상에 대응하고, 나아가 상이한 참조 영상 리스트(예: L0 및/또는 L1)에 대응한다는 것을 이해할 수 있다. 제1 방향과 제2 방향은 모두 순방향 또는 역방향일 수 있거나, 제1 방향과 제2 방향은 각각 순방향과 역방향일 수 있거나 각각 역방향과 순방향일 수 있다.
선택적으로, 양방향 인터 예측은 현재 비디오 영상과 현재 비디오 영상 이전에 인코딩 및 재생되는 비디오 영상 사이의 상관관계, 및 현재 비디오 영상과 현재 비디오 이전에 인코딩되고 현재 비디오 영상 이후에 재생되는 비디오 영상 사이의 상관관계를 이용하여 수행되는 인터 예측일 수 있다.
양방향 인터 예측은 일반적으로 순방향 인터 예측 및 역방향 인터 예측이라고 하는 두 방향의 인터 예측을 포함한다는 것을 알 수 있다. 순방향 인터 예측은 현재 비디오 영상과 현재 비디오 영상 이전에 인코딩되어 재생되는 비디오 영상 사이의 상관관계를 이용하여 수행되는 인터 예측일 수 있다. 역방향 인터 예측은 현재 비디오 영상과 현재 비디오 영상 이전에 인코딩되고 현재 비디오 영상 이후에 재생되는 비디오 영상 사이의 상관관계를 이용하여 수행되는 인터 예측일 수 있다.
순방향 인터 예측은 L0(또는 L1)과 같은 순방향 참조 영상 리스트에 대응하고, 역방향 인터 예측은 L1(또는 L0)과 같은 역방향 참조 영상 리스트에 대응한다. 두 개의 참조 영상 리스트는 동일한 수량의 참조 영상 또는 상이한 수량의 참조 영상을 포함할 수 있다.
움직임 보상(Motion Compensation, MC)은 참조 영상 블록을 사용하여 현재 블록을 예측하는 프로세스이다.
대부분의 코딩 프레임 워크에서, 비디오 시퀀스는 일련의 영상(picture)을 포함하고, 영상은 하나 이상의 슬라이스(slice)로 분할되고, 각각의 슬라이스는 영상 블록(block)으로 세분된다. 비디오 인코딩/디코딩은 영상 블록 단위로 수행된다. 인코딩/디코딩은 영상의 좌측에서 우측으로 그리고 상단(top)에서 하단(bottom)으로 행(row) 단위로 수행될 수 있다. 여기서, 영상 블록은 비디오 코딩 표준 H.264에서의 매크로블록(macroblock, MB)이거나, 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) 표준에서의 코딩 유닛(Coding Unit, CU)일 수 있다. 본 출원의 실시예에서는 이를 특별히 한정하지 않는다.
본 출원에서, 인코딩/디코딩중인 영상 블록을 현재 영상 블록 또는 현재 블록(current block)이라 하고, 현재 블록이 위치하는 영상을 현재 영상이라 한다.
일반적으로, 현재 영상은 단방향 예측 영상(P 영상)이거나 양방향 예측 영상(B 영상)일 수 있다. 현재 영상이 P 영상인 경우, 현재 영상은 하나의 참조 영상 리스트를 가진다. 현재 영상이 B 영상인 경우, 현재 영상은 두 개의 참조 영상 리스트를 가지며, 두 개의 리스트를 일반적으로 L0과 L1이라고 한다. 각각의 참조 영상 리스트는 현재 영상을 재구축하는 데 사용되는 하나 이상의 참조 영상을 포함한다. 참조 영상은 현재 영상에 대한 인터 예측을 위한 참조 샘플을 제공하는 데 사용된다.
현재 영상에서, 현재 블록의 이웃 영상 블록(예: 현재 블록의 좌측, 상단 또는 우측)이 인코딩/디코딩되어 재구축된 영상이 획득될 수 있다. 이웃 영상 블록은 재구축된 영상 블록이라고 한다. 재구축된 영상 블록의 코딩 모드 및 재구축된 샘플과 같은 정보를 사용할 수 있다(available).
현재 영상이 인코딩/디코딩되기 전에 인코딩/디코딩된 영상을 재구축된 영상이라 한다.
움직임 벡터(Motion Vector, MV)는 인터 예측 프로세스에서 중요한 파라미터이며, 현재 블록에 대한 인코딩된 영상 블록의 공간 변위를 나타낸다. 일반적으로, 움직임 벡터를 획득하기 위해 움직임 탐색(motion search)과 같은 움직임 추정(Motion Estimation, ME) 방법이 사용될 수 있다. 예비적인 인터 예측 기술에서, 인코더 측은 현재 블록의 움직임 벡터를 비트스트림에서 송신하므로, 디코더 측은 현재 블록의 예측 샘플을 재생하여, 재구축된 블록을 획득한다. 인코딩 효율을 더욱 향상시키기 위해, 참조 움직임 벡터를 사용하여 움직임 벡터를 차분적으로(differentially) 인코딩하는 것, 즉 움직임 벡터 차(Motion Vector Difference, MVD)만을 인코딩하는 것이 추가로 제안된다.
디코더 측과 인코더 측이 동일한 참조 영상 블록을 사용할 수 있도록 하기 위해, 인코더 측은 비트스트림을 통해 디코더 측에 영상 블록 각각의 움직임 정보를 전송해야 한다. 인코더 측이 영상 블록 각각의 움직임 벡터를 직접 인코딩하면, 대량의 송신 자원이 소모된다. 공간적으로 이웃하는 영상 블록의 움직임 벡터는 강한 상관관계가 있기 때문에, 현재 블록의 움직임 벡터는 이웃하는 인코딩된 영상 블록의 움직임 벡터에 기초하여 예측될 수 있다. 예측을 통해 획득된 움직임 벡터를 MVP라고 하며, 현재 블록의 움직임 벡터와 MVP의 차이를 MVD라고 한다.
비디오 코딩 표준 H.264에서, 다중 참조 영상 예측(multi-reference picture prediction)은 예측 정확도를 향상시키기 위해 움직임 추정 프로세스에서 사용된다. 구체적으로, 복수의 재구축된 영상을 저장하는 버퍼가 생성되고, 시간 리던던시(temporal redundancy)를 더 잘 제거하기 위해, 버퍼 내의 모든 재구축된 영상에서 움직임 보상을 위한 최적의 참조 영상 블록을 검색한다. 비디오 코딩 표준 H.264에서, 두 개의 버퍼: 참조 영상 리스트 0(reference list 0/L0)과 참조 영상 리스트 1((reference list 1/L1)이 인터 예측에 사용된다. 각각 리스트에서 최적의 참조 블록이 위치하는 참조 영상은 색인 값 즉, ref_idx_l0 또는 ref_idx_l1로 표시된다. 각각의 참조 영상 리스트에서, 참조 영상 블록의 움직임 정보는 참조 영상 색인 값(ref_idx_l0 또는 ref_idx_l1), MVP 플래그(또는 MVP), MVD를 포함한다. 디코더 측은 참조 영상 색인 값, MVP 플래그 및 MVD에 기초하여, 선택된 참조 영상에서 정확한 참조 영상 블록을 찾을 수 있다. 구체적인 애플리케이션에서, 참조 영상 색인 값, MVP 플래그(또는 MVP) 및/또는 MVD는 또한 당업자에 의해 움직임 정보로 통칭될 수 있음을 이해해야 한다. 따라서, 움직임 정보의 구체적인 의미는 구체적인 애플리케이션 시나리오를 참조하여 해석 및 설명되어야 하며, 개념의 이해에 한정해서는 안 된다.
현재, HEVC 표준에서 자주 사용되는 인터 예측 모드는 고급 움직임 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드, 병합(Merge) 모드 및 비병진(non-translational) 움직임 모델 예측 모드이다.
AMVP 모드에서, 인코더 측은 현재 블록에 공간적 또는 시간적으로 인접한 인코딩된 영상 블록의 움직임 정보를 사용하여 후보 움직임 벡터 리스트를 구축하고, 레이트 왜곡(rate-distortion) 비용에 기초하여 후보 움직임 벡터 리스트에서의 최적 움직임 벡터를 현재 블록의 MVP로서 결정한다. 또한, 인코더 측은 MVP를 중심으로 한 이웃에서 움직임 검색을 수행하여 현재 블록의 움직임 벡터를 획득한다. 인코더 측은 후보 움직임 벡터 리스트에서의 MVP의 색인 값(즉, MVP 플래그), 참조 영상 색인 값 및 MVD를 디코더 측에 송신한다.
병합 모드에서, 인코더 측은 현재 블록에 공간적 또는 시간적으로 인접한 인코딩된 영상 블록의 움직임 정보를 사용하여 후보 움직임 정보 리스트를 구축하고, 레이트 왜곡 비용에 기초하여 후보 움직임 정보 리스트에서의 최적 움직임 정보를 현재 블록의 움직임으로서 결정한다. 인코더 측은 후보 움직임 정보 리스트에서의 최적 움직임 정보의 위치에 대한 색인 값을 디코더 측에 송신한다.
비병진 움직임 모델 예측 모드에서, 인코더 측과 디코더 측은 동일한 움직임 모델을 사용하여 현재 블록의 모든 서브블록의 움직임 정보를 도출하고, 모든 서브블록의 움직임 정보에 기초하여 움직임 보상을 수행하여 예측 영상 블록을 획득한다. 이는 예측 효율을 향상시킨다. 인코더 측과 디코더 측에 의해 자주 사용되는 움직임 모델은 4-파라미터 아핀 모델(affine model), 6-파라미터 아핀 변환 모델(affine transform model) 또는 8-파라미터 이중 선형 모델(bilinear model)이다.
예를 들어, 4-파라미터 아핀 변환 모델은 두 개의 샘플의 움직임 벡터와, 현재 블록의 좌측 상단 모서리에 있는 샘플에 대한 두 개의 샘플의 좌표를 사용하여 나타낼 수 있다. 여기서, 움직임 모델 파라미터를 나타내기 위해 사용되는 샘플을 제어점(control point)이라고 한다. 현재 블록의 좌측 상단 모서리 (0, 0)에 있는 샘플과 현재 블록의 우측 상단 모서리 (W, 0)에 있는 샘플이 제어점이고, 현재 블록의 좌측 상단 모서리와 우측 상단 모서리의 움직임 벡터는 각각 ()과 ()이면, 현재 블록의 서브블록 각각의 움직임 정보는 아래의 공식 (1)에 따라 획득된다. 아래의 공식 (1)에서, ()는 현재 블록의 좌측 상단 모서리에 있는 샘플에 대한 서브블록의 좌표이고, ()는 서브블록의 움직임 벡터이고, 는 현재 블록의 폭이다.
(1)
예를 들어, 6-파라미터 아핀 변환 모델은 세 개의 샘플의 움직임 벡터와, 현재 블록의 좌측 상단 모서리에 있는 샘플에 대한 세 개의 샘플의 좌표를 사용하여 나타낼 수 있다. 현재 블록의 좌측 상단 모서리(0, 0)에 있는 샘플, 현재 블록의 우측 상단 모서리(, 0)에 있는 샘플 및 우측 하단 모서리에 있는 샘플(0, )이 현재 블록의 제어점이고, 현재 블록의 좌측 상단 모서리, 우측 상단 모서리, 및 좌측 하단 모서리의 움직임 벡터는 각각 (), () 및 ()이면, 현재 블록의 서브블록 각각의 움직임 정보는 아래의 공식(2)에 따라 획득된다. 아래의 공식(2)에서, ()는 현재 블록의 좌측 상단 모서리에 있는 샘플에 대한 서브블록의 좌표이고, ()는 서브블록의 움직임 벡터이고, 는 각각 현재 블록의 폭과 높이이다.
(2)
예를 들어, 8-파라미터 이중 선형 모델은 네 개의 샘플의 움직임 벡터와, 현재 블록의 좌측 상단 모서리에 있는 샘플에 대한 네 개의 샘플의 좌표를 사용하여 나타낼 수 있다. 현재 블록의 좌측 상단 모서리(0, 0)에 있는 샘플, 현재 블록의 우측 상단 모서리(, 0)에 있는 샘플, 현재 블록의 우측 하단 모서리에 있는 샘플(0, ) 및 현재 블록의 우측 하단 모서리(, )에 있는 샘플이 제어점이고, 현재 블록의 좌측 상단 모서리, 우측 상단 모서리, 좌측 하단 모서리, 및 우측 하단 모서리의 움직임 벡터가 각각 (), (), (), 및 ()이면, 현재 블록의 서브블록 각각의 움직임 정보는 아래의 공식(4)에 따라 획득된다. 아래의 공식(3)에서, ()는 현재 블록의 좌측 상단 모서리에 있는 샘플에 대한 서브블록의 좌표이고, ()는 서브블록의 움직임 벡터이고, 는 각각 현재 블록의 폭과 높이이다.
(3)
전술한 인터 예측 모드 중 어느 하나에서, 인터 예측이 양방향 인터 예측이면, 인코더 측은 각각의 방향에서의 영상 블록 각각의 움직임 정보를 디코더 측에 전송해야 한다는 것을 쉽게 알 수 있다. 결과적으로, 움직임 정보는 비교적 많은 양의 송신 자원을 점유한다. 이는 송신 자원의 효과적인 이용, 송신 레이트 및 코딩 압축 효율을 감소시킨다.
전술한 문제를 해결하기 위해, 본 출원은 양방향 인터 예측 방법을 제공한다. 양방향 인터 예측에서, 인코더 측은 제1 방향에서의 현재 블록의 움직임 정보를 디코더 측으로 전송하고, 디코더 측은 제1 방향에서의 현재 블록의 움직임 정보를 수신한 후, 제1 방향에서의 현재 블록의 움직임 정보에 기초하여 제2 방향에서의 현재 블록의 움직임 정보를 계산한다. 이러한 방식으로, 제1 방향에서의 현재 블록의 움직임 정보와 제2 방향에서의 현재 블록의 움직임 정보에 기초하여 현재 블록의 예측 샘플이 계산될 수 있다.
본 출원에서 제공되는 양방향 인터 예측 방법은 양방향 인터 예측 장치, 비디오 코딩 장치, 비디오 코덱 또는 비디오 코딩 기능을 갖는 다른 기기에 의해 수행될 수 있다.
본 출원에서 제공되는 양방향 인터 예측 방법은 비디오 코딩 시스템에 적용할 수 있다. 비디오 코딩 시스템에서, 비디오 인코더 및 비디오 디코더는 본 출원에서 제공되는는 양방향 인터 예측 방법의 예에 따라 현재 블록의 움직임 정보를 계산하도록 구성된다. 구체적으로, 제2 방향에서의 현재 블록의 움직임 정보는 제1 방향에서의 현재 블록의 움직임 정보에 기초하여 계산될 수 있으므로, 현재 블록의 예측 샘플은 제1 방향에서의 현재 블록의 움직임 정보 및 제2 방향에서의 현재 블록의 움직임 정보에 기초하여 결정될 수 있다. 이러한 방식으로, 비디오 인코더와 비디오 인코더 사이에는 제1 방향에서의 현재 블록의 방향 움직임 정보만 송신하면 된다. 이는 송신 자원 이용 및 코딩 압축 효율을 효과적으로 향상시킨다.
도 1은 비디오 코딩 시스템의 구성을 도시한다. 도 1에 도시된 바와 같이, 비디오 코딩 시스템(1)은 근원지 장치(10) 및 목적지 장치(20)를 포함한다. 근원지 장치(10)는 인코딩된 비디오 데이터를 생성한다. 근원지 장치(10)는 비디오 인코딩 장치 또는 비디오 인코딩 기기라고도 할 수 있다. 목적지 장치(20)는 근원지 장치(10)에 의해 생성되는 인코딩된 비디오 데이터를 디코딩할 수 있다. 목적지 장치(20)는 비디오 디코딩 장치 또는 비디오 디코딩 기기로 지칭될 수 있다. 근원지 장치(10) 및/또는 목적지 장치(20)는 하나 이상의 프로세서 및 하나 이상 의 프로세서에 연결된 메모리를 포함할 수 있다. 메모리는 판독 전용 메모리(Read-Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 전기적으로 소거 가능하고 프로그래밍 가능한 판독 전용 메모리(Electrically Erasable Programmable Read-Only Memory, EEPROM), 플래시 메모리 또는 컴퓨터에 의해 액세스될 수 있는 명령어 또는 데이터 구조의 형태로 필요한 프로그램 코드를 저장하도록 구성될 수 있는 기타 매체를 포함할 수 있다. 본 출원에서는 이를 특별히 한정하지 않는다.
근원지 장치(10) 및 대상 장치(20)는 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예: 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, "스마트"폰과 같은 핸드헬드형 전화기 세트, 텔레비전 세트, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량내(in-vehicle) 컴퓨터 및 유사한 장치를 포함한, 다양한 장치를 포함할 수 있다.
목적지 장치(20)는 링크(30)를 통해 근원지 장치(10)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 링크(30)는 인코딩된 비디오 데이터를 근원지 장치(10)로부터 목적지 장치(20)로 전송할 수 있는 하나 이상의 매체 및/또는 장치를 포함할 수 있다. 일례에서, 링크(30)는 근원지 장치(10)가 인코딩된 비디오 데이터를 목적지 장치(20)에 실시간으로 직접 전송할 수 있게 하는 하나 이상의 통신 매체를 포함할 수 있다. 이 예에서, 근원지 장치(10)는 인코딩된 비디오 데이터를 통신 표준(예: 무선 통신 프로토콜)에 따라 변조할 수 있고, 변조된 비디오 데이터를 목적지 장치(20)에 송신할 수 있다. 하나 이상의 통신 매체로는 무선 및/또는 유선 통신 매체, 예를 들어 무선 주파수(Radio Frequency, RF) 스펙트럼 또는 하나 이상의 물 송신선를 포함할 수 있다. 하나 이상의 통신 매체는 패킷 기반 네트워크(예: 근거리 통신망, 광역 통신망 또는 글로벌 네트워크(예: 인터넷))의 일부일 수 있다. 하나 이상의 통신 매체는 라우터, 교환기, 기지국, 또는 근원지 장치(10)와 목적지 장치(20) 사이의 통신을 구현하는 다른 기기를 포함할 수 있다.
다른 예에서, 인코딩된 비디오 데이터는 출력 인터페이스(103)를 통해 저장 장치(40)에 출력될 수 있다. 유사하게, 인코딩된 비디오 데이터는 입력 인터페이스(203)를 통해 저장 장치(40)로부터 액세스될 수 있다. 저장 장치(40)는 블루레이(Blu-ray) 디스크, 고밀도 디지털 비디오 디스크(Digital Video Disc, DVD), 컴팩트 디스크 판독 전용 메모리(Compact Disc Read-Only Memory, CD-ROM), 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하도록 구성된 다른 적합한 디지털 저장 매체와 같은, 로컬로 액세스 가능한 여러 유형의 데이터 저장 매체를 포함할 수 있다.
다른 예에서, 저장 장치(40)는 근원지 장치(10)에 의해 생성되는 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 장치에 대응할 수 있다. 이 예에서, 목적지 장치(20)는 스트리밍 송신 또는 다운로드를 통해 저장 장치(40)로부터 저장된 비디오 데이터를 획득할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고 인코딩된 비디오 데이터를 목적지 장치(20)에 송신할 수 있는 임의의 유형의 서버일 수 있다. 예를 들어, 파일 서버로는 월드와이드웹(World Wide Web, WWW) 서버(예: 웹 사이트에 사용됨), 파일 전송 프로토콜(File Transfer Protocol, FTP) 서버, 네트워크 부착형 저장(Network Attached Storage, NAS) 장치 또는 로컬 디스크 드라이브를 포함할 수 있다.
목적지 장치(20)는 임의의 표준 데이터 연결(예: 인터넷 연결)을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 데이터 연결 유형의 예로는 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는 데 사용할 수 있는 무선 채널 또는 유선 연결(예: 케이블 모뎀) 또는 이들의 조합이 포함된다. 파일 서버로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신 또는 이들의 조합일 수 있다.
본 출원에서의 양방향 인터 예측 방법은 무선 애플리케이션 시나리오에 한정되지 않는다. 예를 들어, 본 출원에서의 양방향 인터 예측 방법은 다음 애플리케이션: 공중파 텔레비전 방송, 케이블 텔레비전 송신, 위성 텔레비전 송신, 스트리밍 비디오 송신(예: 인터넷을 통한), 데이터 저장 매체에 저장된 비디오 데이터 인코딩, 데이터 저장 매체에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션과 같은 복수의 멀티미디어 애플리케이션을 지원하는 비디오 코딩에 사용될 수 있다. 일부 예에서, 비디오 코딩 시스템(1)은 스트리밍 비디오 송신, 비디오 재생, 비디오 방송, 및/또는 비디오 전화와 같은 애플리케이션을 지원하기 위해, 단방향 또는 양방향 비디오 송신을 지원하도록 구성될 수 있다.
도 1에 도시된 비디오 코딩 시스템(1)은 비디오 코딩 시스템의 예일 뿐이며, 본 출원에서는 비디오 코딩 시스템을 한정하지 않는다. 본 출원에서 제공되는 양방향 인터 예측 방법은 인코딩 장치와 디코딩 장치 사이에 데이터 통신이 없는 시나리오에도 적용 가능하다. 다른 예에서, 인코딩될 비디오 데이터 또는 인코딩된 비디오 데이터는 로컬 메모리로부터 검색될 수 있고, 네트워크 등에서 스트리밍 방식으로 송신될 수 있다. 비디오 인코딩 장치는 인코딩될 비디오 데이터를 인코딩하고 인코딩된 비디오 데이터를 메모리에 저장할 수 있다. 비디오 디코딩 장치는 메모리로부터 인코딩된 비디오 데이터를 획득하고 인코딩된 비디오 데이터를 디코딩할 수 있다.
도 1에서, 근원지 장치(10)는 비디오 소스(101), 비디오 인코더(102) 및 출력 인터페이스(103)를 포함한다. 일부 예에서, 출력 인터페이스(103)는 변조기/복조기(모뎀) 및/또는 송신기를 포함할 수 있다. 비디오 소스(101)는 비디오 캡처 장치(예: 카메라), 이전에 캡처된 비디오 데이터를 포함하는 비디오 아카이브(video archive), 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 입력 인터페이스, 및/또는 비디오 데이터 생성하기 위한 컴퓨터 그래픽 시스템, 또는 전술한 비디오 데이터 소스의 조합을 포함할 수 있다.
비디오 인코더(102)는 비디오 소스(101)로부터의 비디오 데이터를 인코딩할 수 있다. 일부 예에서, 근원지 장치(10)는 인코딩된 비디오 데이터를 출력 인터페이스(103)를 통해 목적지 장치(20)에 직접 송신한다. 다른 예에서, 인코딩된 비디오 데이터는 비디오 데이터는 대안으로 저장 장치(40)에 저장될 수 있어서, 목적지 장치(20)는 디코딩 및/또는 재생을 위해 인코딩된 비디오 데이터에 후속적으로 액세스할 수 있다.
도 1의 예에서, 목적지 장치(20)는 디스플레이 장치(201), 비디오 디코더(202) 및 입력 인터페이스(203)를 포함한다. 일부 예에서, 입력 인터페이스(203)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스(203)는 링크(30)를 통해 및/또는 저장 장치(40)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 디스플레이 장치(201)는 목적지 장치(20)와 통합될 수 있거나 목적지 장치(20) 외부에 배치될 수 있다. 일반적으로, 디스플레이 장치(201)는 디코딩된 비디오 데이터를 표시한다. 디스플레이 장치(201)는 예를 들어, 액정 디스플레이, 플라즈마 디스플레이, 유기 발광 다이오드 디스플레이, 또는 기타 유형의 디스플레이 장치와 같은, 복수의 유형의 디스플레이 장치를 포함할 수 있다.
선택적으로, 비디오 인코더(102)와 비디오 디코더(202)는 각각 오디오 인코더 및 오디오 디코더와 통합될 수 있으며, 적절한 멀티플렉서-디멀티플렉서 유닛 또는 기타 하드웨어 및 소프트웨어를 포함하여, 오디오 및 비디오를 모두 결합된 데이터 스트림 또는 별개의 데이터 스트림으로 인코딩할 수 있다.
비디오 인코더(102) 및 비디오 디코더(202)는 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(Digital Signal Processor, DSP), 주문형 반도체(Application-Specific Integrated Circuit, ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array, FPGA), 이산 로직, 하드웨어 또는 이들의 조합을 포함할 수 있다. 본 출원에서 제공되는 양방향 인터 예측 방법이 소프트웨어를 사용하여 구현되면, 소프트웨어에 사용되는 명령어는 컴퓨터로 판독 가능한 적절한 비휘방성 저장 매체에 저장될 수 있으며, 하나 이상의 프로세서가 하드웨어 내의 명령어를 실행하여 본 출원을 구현하는 데 사용될 수 있다. 전술한 내용(하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 포함) 중 어느 하나가 하나 이상의 프로세서로 간주될 수 있다. 비디오 인코더(102)는 인코더에 포함될 수 있고, 비디오 디코더(202)는 디코더에 포함될 수 있으며, 인코더 또는 디코더는 대응하는 장치에서 결합된 인코더/디코더(코덱)의 일부일 수 있다.
본 출원에서의 비디오 인코더(102) 및 비디오 디코더(202)는 비디오 압축 표준(예: HEVC 또는 VVC)에 따라 작업을 수행할 수 있거나, 다른 산업 표준에 따라 작업을 수행할 수 있다. 본 출원에서는 이를 특별히 한정하지 않는다.
비디오 인코더(102)는, 현재 블록에 대해 양방향 움직임 추정을 수행하여, 제1 방향에서의 현재 블록의 움직임 정보를 결정하고, 제1 방향에서의 현재 블록의 움직임 정보에 기초하여 제2 방향에서의 현재 블록의 움직임 정보를 계산하도록 구성된다. 이러한 방식으로, 비디오 인코더(102)는 제1 방향에서의 현재 블록의 움직임 정보 및 제2 방향에서의 현재 블록의 움직임 정보에 기초하여 현재 블록의 예측 영상 블록을 결정한다. 또한, 비디오 인코더(102)는 현재 블록과 현재 블록의 예측 영상 블록 사이의 잔차에 대해 변환 및 양자화와 같은 작업을 수행하여 비트스트림을 생성하고, 비트스트림을 비디오 디코더(202)에 전송한다. 비트스트림은 제1 방향에서의 현재 블록의 움직임 정보 및 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하도록 지시하는 데 사용되는 지시 정보를 포함한다. 지시 정보는 서로 다른 식별자를 사용하여 나타낼 수 있다. 지시 정보를 나타내는 방법에 대해서는, 후속하는 예에서의 설명을 참조하기 바란다.
선택적으로, "비디오 인코더(102)가 제1 방향에서의 현재 블록의 움직임 정보에 기초하여 제2 방향에서의 현재 블록의 움직임 정보를 계산"하는 방법은 다음과 같을 수 있다: 비디오 인코더(102)는 제1 방향에서의 현재 블록의 움직임 벡터에 기초하여 제2 방향에서의 현재 블록의 움직임 벡터를 결정한다; 또는 비디오 인코더(102)는 제1 방향에서의 현재 블록의 움직임 벡터 차에 기초하여 제2 방향에서의 현재 블록의 움직임 벡터 차를 결정하고, 제2 방향에서의 현재 블록의 움직임 벡터 차와 제2 방향에서의 현재 블록의 예측된 움직임 벡터에 기초하여 제2 방향에서의 현재 블록의 움직임 벡터를 결정한다.
이하, 도 4를 참조하면, 비디오 디코더(202)는 다음 단계를 수행하도록 구성될 수 있다:
S400: 비트스트림을 획득하고, 비트스트림을 파싱하여, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하도록 지시하는 데 사용되는 지시 정보를 획득한다. 즉, 다른 방향에서의 움직임 정보에 기초하여 하나의 방향에서의 움직임 정보를 도출하고 계산하기로 결정하며, 제1 움직임 정보는 제1 방향에서의 현재 블록의 움직임 정보를 포함하고, 제2 움직임 정보는 제2 방향에서의 현재 블록의 움직임 정보를 포함하고, 제1 방향은 제2 방향과 다르다.
S401: 제1 움직임 정보를 획득한다.
S402: 획득된 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다.
S403: 비디오 디코더(202)는 제1 움직임 정보 및 제2 움직임 정보에 기초하여 현재 블록의 예측 샘플을 결정한다.
"비디오 디코더(202)가 제1 방향에서의 현재 블록의 움직임 정보에 기초하여 제2 방향에서의 현재 블록의 움직임 정보를 계산"하는 방법은 다음과 같을 수 있다: 비디오 디코더(202)는 제1 방향에서의 현재 블록의 움직임 벡터에 기초하여 제2 방향에서의 현재 블록의 움직임 벡터를 결정하거나; 또는 비디오 디코더(202)는 제1 방향에서의 현재 블록의 움직임 벡터 차에 기초하여 제2 방향에서의 현재 블록의 움직임 벡터 차를 결정하고, 제2 방향에서의 현재 블록의 움직임 벡터 차 및 제2 방향에서의 현재 블록의 예측된 움직임 벡터에 기초하여 제2 방향에서의 현재 블록의 움직임 벡터를 결정한다.
도 2는 본 출원의 일 실시예에 따른 비디오 인코더(102)의 개략 구성도이다. 도 2에 도시된 바와 같이, 비디오 인코더(102)는 비디오를 후처리 엔티티(post-processing entity)(41)에 출력하도록 구성된다. 후처리 엔티티(41)는, 예를 들어 미디어 인식 네트워크 요소(media aware network element, MANE) 또는 스티칭 장치(stitching apparatus)/편집 장치와 같은, 비디오 인코더(102)로부터의 인코딩된 비디오 데이터를 처리할 수 있는 비디오 엔티티의 예를 나타낸다. 경우에 따라서는, 후처리 엔티티(41)는 네트워크 엔티티의 일례일 수 있다. 일부 비디오 코딩 시스템에서, 후처리 엔티티(41)와 비디오 인코더(102)는 개별 장치의 구성요소일 수 있는 반면, 다른 경우에 후처리 엔티티(41)에 대해 설명된 기능은 비디오 인코더(102)를 포함하는 동일한 장치에 의해 구현될 수 있다. 일례에서, 후처리 엔티티(41)는 도 1의 저장 장치(40)의 일례이다.
비디오 인코더(102)는 제1 방향에서의 현재 블록의 움직임 정보에 기초하여 제2 방향에서의 현재 블록의 움직임 정보를 도출 및 계산할 수 있으며, 제1 방향에서의 현재 블록의 움직임 정보 및 제2 방향에서의 현재 블록의 움직임 정보에 기초하여 현재 블록의 예측 영상 블록을 추가로 결정하여, 양방향 인터 예측 인코딩을 완료한다.
도 2에 도시된 바와 같이, 비디오 인코더(102)는 변환기(301), 양자화기(302), 엔트로피 인코더(303), 필터(306), 메모리(307), 예측 처리 유닛(308) 및 합산기(summator)(312)를 포함한다. 예측 처리 유닛(308)은 인트라 예측기(309) 및 인터 예측기(310)를 포함한다. 영상 블록을 재구축하기 위해, 비디오 인코더(102)는 역양자화기(304), 역변환기(305) 및 합산기(311)를 더 포함한다. 필터(306)는 하나 이상의 루프 필터, 예를 들어 디블로킹 필터(deblocking filter), 적응형 루프 필터(adaptive loop filter) 및 샘플 적응형 오프셋 필터(sample adaptive offset filter)를 나타내도록 지덩된다.
메모리(307)는 비디오 인코더(102)의 구성요소에 의해 인코딩된 비디오 데이터를 저장할 수 있다. 메모리(307)에 저장된 비디오 데이터는 비디오 소스(101)로부터 획득될 수 있다. 메모리(307)는 인트라 또는 인터 코딩 모드에서 비디오 데이터를 인코딩하기 위해 비디오 인코더(102)에 의해 사용되는 참조 비디오 데이터를 저장하는 참조 영상 메모리일 수 있다. 메모리(307)는 동기식 동적 랜덤 액세스 메모리(synchronous dynamic RAM, SDRAM)을 포함하는 동적 랜덤 액세스 메모리(dynamic RAM, DRAM), 자기 저항식 RAM(magnetoresistive RAM, MRAM), 저항식 RAM(resistive RAM, RRAM) 또는 기타 유형의 메모리일 수 있다.
비디오 인코더(102)는 비디오 데이터를 수신하고 비디오 데이터 메모리에 비디오 데이터를 저장한다. 분할 유닛은 비디오 데이터를 여러 개의 영상 블록으로 분할하고, 이들 영상 블록은 더 작은 블록으로 세분될 수 있다. 예를 들어, 쿼드 트리 구조 또는 바이너리 트리 구조에 기초한 영상 블록 분할이 수행된다. 분할은 슬라이스(slice), 타일(tile), 또는 기타 더 큰 유닛으로의 분할을 더 포함할 수 있다. 비디오 인코더(102)는 일반적으로 인코딩될 비디오 슬라이스 내의 영상 블록을 인코딩하기 위한 구성요소이다. 슬라이스는 복수의 영상 블록으로 분할될 수 있다(그리고 타일이라고 하는 영상 블록 세트로 분할될 수 있다).
예측 처리 유닛(308) 내의 인트라 예측기(309)는 현재 블록과 동일한 영상 또는 슬라이스에 있는 하나 이상의 이웃 영상 블록에 대한 현재 블록에 대해 인트라 예측 인코딩을 수행하여, 공간 리던던시를 제거할 수 있다. 예측 처리 유닛(308) 내의 인터 예측기(310)는 하나 이상의 참조 영상에서의 하나 이상의 예측 영상 블록에 대한 현재 블록에 대해 인터 예측 인코딩을 수행하여, 시간 리던던시를 제거할 수 있다.
예측 처리 유닛(308)은 획득된 인트라 코딩 및 인터 코딩된 영상 블록을 합산기(312)에 제공하여 잔차 블록을 생성하도록 하고, 잔차 블록을 합산기(311)에 제공하여 참조 영상으로서 사용되는 코딩 블록을 재구축하도록 할 수 있다.
예측 처리 유닛(308)이 인터 예측 및 인트라 예측을 통해 현재 블록의 예측 영상 블록을 생성한 후, 비디오 인코더(102)는 인코딩될 현재 블록에서 예측 영상 블록을 감산하여 잔차 영상 블록을 생성한다. 합산기(312)는 이 감산 연산을 수행하는 하나 이상의 구성요소를 나타낸다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 변환 유닛(transform unit, TU)에 포함되어, 변환기(301)에 의해 사용될 수 있다. 변환기(301)는 이산 코사인 변환(discrete cosine transform, DCT) 또는 개념적으로 유사한 변환과 같은, 변환을 통해 잔차 비디오 데이터를 잔차 변환 계수로 변환한다. 변환기(301)는 잔차 비디오 데이터를 샘플 값 영역으로부터 변환 영역, 예를 들어 주파수 영역으로 변환할 수 있다.
변환기(301)는 획득된 변환 계수를 양자화기(302)에 전송할 수 있다. 양자화기(302)는 비트 레이트를 더 감소시키기 위해 변환 계수를 양자화한다. 일부 예에서, 양자화기(302)는 양자화된 변환 계수를 포함하는 매트릭스를 추가로 스캔할 수 있다. 대안으로, 엔트로피 인코더(303)는 스캐닝을 수행할 수 있다.
양자화 후에, 엔트로피 인코더(303)는 양자화된 변환 계수에 대해 엔트로피 인코딩을 수행한다. 예를 들어, 엔트로피 인코더(303)는 컨텍스트 적응형 가변 길이 코딩(context-adaptive variable-length coding, CAVLC), 컨텍스트 적응형 이진 산술 코딩(context-adaptive binary arithmetic coding, CABAC) 또는 다른 엔트로피 코딩 방법 또는 기술을 수행할 수 있다. 엔트로피 인코더(303)가 엔트로피 인코딩을 수행한 후, 인코딩된 비트스트림이 비디오 디코더(202)에 전송되거나, 비디오 디코더(202)에 의한 후속 전송 또는 후속 검색을 위해 보관될 수 있다. 엔트로피 인코더(303)는 인코딩될 현재 블록의 신택스 요소에 대해 엔트로피 인코딩을 추가로 수행할 수 있다.
역양자화기(304) 및 역변환기(305)는 각각 역양자화 및 역변환을 수행하여, 예를 들어, 참조 영상의 참조 블록으로 후속하여 사용될, 샘플 영역에서의 잔차 블록을 재구축한다. 합산기(311)는 재구축된 잔차 블록을 인터 예측기(310) 또는 인트라 예측기(309)에 의해 생성되는 예측 영상 블록에 더하여, 재구축된 영상 블록을 생성한다. 영상 블록의 예측 영상 블록은 영상 블록의 참조 영상 블록에 대해 (보간과 같은) 처리를 수행함으로써 획득될 수 있다.
비디오 인코더(102)의 다른 구성 변형이 비디오 스트림을 인코딩하는 데 사용될 수 있음을 이해해야 한다. 예를 들어, 일부 영상 블록 또는 영상에 대해, 비디오 인코더(102)는 잔차 신호를 직접 양자화할 수 있으며, 이에 상응하여 변환기(301) 및 역변환기(305)에 의한 처리가 불필요하다. 대안으로, 일부 영상 블록 또는 영상에 대해, 비디오 인코더(102)는 잔차 데이터를 생성하지 않으며, 이에 상응하여, 변환기(301), 양자화기(302), 역양자화기(304) 및 역변환기(305)에 의한 처리가 불필요하다. 대안으로, 비디오 인코더(102)는 재구축된 영상 블록을 필터(306)에 의해 처리 없이 참조 블록으로서 직접 저장할 수 있다. 대안으로, 비디오 인코더(102) 내의 양자화기(302)와 역양자화기(304)는 결합될 수 있다.
도 3은 본 출원의 실시예에 따른 비디오 디코더(202)의 개략 구성도이다. 도 3에 도시된 바와 같이, 비디오 디코더(202)는 엔트로피 디코더(401), 역양자화기(402), 역변환기(403), 필터(404), 메모리(405), 예측 처리 유닛(406) 및 합산기(409)를 포함한다. 예측 처리 유닛(406)은 인트라 예측기(407) 및 인터 예측기(408)를 포함한다. 일부 예에서, 비디오 디코더(202)는 도 2의 비디오 인코더(102)와 관련하여 설명된 인코딩 프로세스에 대략 역인 디코딩 프로세스를 수행할 수 있다.
디코딩 프로세스에서, 비디오 디코더(202)는 비디오 인코더(102)로부터 비트스트림을 수신한다. 비디오 디코더(202)는 네트워크 엔티티(42)로부터 비디오 데이터를 수신할 수 있고, 선택적으로, 또한 비디오 데이터를 비디오 데이터 메모리(도시되지 않음)에 저장할 수 있다. 비디오 데이터 메모리는 비디오 디코더(202)의 구성요소에 의해 디코딩될 비디오 데이터, 예를 들어 인코딩된 비트스트림을 저장할 수 있다. 비디오 데이터 메모리에 저장된 비디오 데이터는, 예를 들어, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해 저장 장치(40) 또는 카메라와 같은 로컬 비디오 소스, 또는 물리 데이터 저장 매체에 액세스함으로써 획득될 수 있다. 비디오 데이터 메모리는 도 3에 도시되지 않았지만, 비디오 데이터 메모리와 메모리(405)는 동일한 메모리일 수 있거나, 별도로 배치된 메모리일 수 있다. 비디오 데이터 메모리 및 메모리(405)는 각각, 예를 들어, 동기식 DRAM(SDRAM)을 포함하는 동적 랜덤 액세스 메모리(DRAM), 자기 저항식 RAM(MRAM), 저항식 RAM(RRAM) 또는 기타 유형의 메모리 장치와 같은, 복수 유형의 메모리 장치 중 어느 하나를 포함할 수 있다. 다양한 예에서, 비디오 데이터 메모리는 비디오 디코더(202)의 다른 구성요소와 함께 칩에 통합될 수 있거나, 이들 구성요소에 대해 칩 외부에 배치될 수 있다.
네트워크 엔티티(42)는 예를 들어, 서버, MANE, 비디오 편집기(video editor)/클리퍼(clipper), 또는 전술한 기술 중 하나 이상을 구현하도록 구성된 기타 장치일 수 있다. 네트워크 엔티티(42)는 비디오 인코더, 예를 들어, 비디오 인코더(102)를 포함하거나 포함하지 않을 수 있다. 네트워크 엔티티(42)가 비트스트림을 비디오 디코더(202)에 전송하기 전에, 네트워크 엔티티(42)는 본 출원에서 설명된 기술의 일부를 구현할 수 있다. 일부 비디오 디코딩 시스템에서, 네트워크 엔티티(42)와 비디오 디코더(202)는 개별 장치의 구성요소일 수 있다. 다른 경우에, 네트워크 엔티티(42)와 관련하여 설명된 기능은 비디오 디코더(202)를 포함하는 동일한 장치에 의해 구현될 수 있다. 경우에 따라서는, 네트워크 엔티티(42)는 도 1에서의 저장 장치(40)의 일례일 수 있다.
비디오 디코더(202)의 엔트로피 디코더(401)는 비트스트림에 대해 엔트로피 디코딩을 수행하여 양자화된 계수 및 일부 신택스 요소를 생성한다. 엔트로피 디코더(401)는 신택스 요소를 필터(404)에 포워딩한다. 비디오 디코더(202)는 비디오 슬라이스 레벨 및/또는 영상 블록 레벨에서 신택스 요소들/신택스 요소를 수신할 수 있다. 본 출원에서, 일례로, 신택스 요소는 여기서 현재 블록과 관련된 지시 정보를 포함할 수 있고, 지시 정보는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하도록 지시하는 데 사용된다. 또한, 일부 예에서, 비디오 인코더(102)는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정할 것인지의 여부를 지시하는 특정 신택스 요소를 통지하기 위해 신호를 전송할 수 있다.
역양자화기(402)는 비트스트림에 제공되고 엔트로피 디코딩기(401)에서 디코딩된 양자화된 변환 계수에 대해 역양자화, 즉 양자화 해제(dequantize)를 수행한다. 역양자화 프로세스는 다음을 포함할 수 있다: 비디오 슬라이스에서의 영상 블록 각각에 대해 비디오 인코더(102)에 의해 계산된 양자화 파라미터를 사용하여 적용될 양자화 정도를 결정하고, 유사하게 적용될 역양자화 정도를 결정한다. 역변환기(403)는 역변환 계수에 역변환, 예를 들어 역 DCT, 역 정수 변환 또는 개념적으로 유사한 역변환 프로세스를 적용하여, 샘플 영역에서의 잔차 블록을 생성한다.
예측 처리 유닛(406)이 현재 블록 또는 현재 블록의 서브블록에 대한 예측 영상 블록을 생성한 후, 비디오 디코더(202)는 역변환기(403)로부터의 잔차 블록과 예측 처리 유닛(406)에 의해 생성되는 대응하는 예측 영상 블록을 합산하여, 재구축된 블록, 즉 디코딩된 영상 블록을 획득한다. 합산기(409)(재구축기(409)라고도 함)는 이 합산 작업을 수행하는 구성요소를 나타낸다. 필요한 경우, 필터(디코딩 루프 내에 또는 후에)가 샘플을 평활화하는 데 추가로 사용될 수 있거나, 비디오 품질은 다른 방식으로 개선될 수 있다. 필터(404)는 하나 이상의 루프 필터, 예를 들어, 디블로킹 필터, 적응형 루프 필터(adaptive loop filter, ALF) 및 샘플 적응형 오프셋(sample adaptive offset, SAO) 필터일 수 있다.
비디오 디코더(202)의 다른 구성적 변형이 비트스트림을 디코딩하는 데 사용될 수 있음을 이해해야 한다. 예를 들어, 일부 영상 블록 또는 영상에 대해, 비디오 디코더(202)의 엔트로피 디코더(401)는 디코딩을 통해 양자화된 계수를 획득하지 못하며, 이에 상응하여, 역양자화기(402) 및 역변환기(403)에 의한 처리가 불필요하다. 예를 들어, 비디오 디코더(202) 내의 역양자화기(402)와 역변환기(403)는 결합될 수 있다.
도 1에 도시된 비디오 코딩 시스템(1), 도 2에 도시된 비디오 인코더(102)는, 및 도 3에 도시된 비디오 디코더(202)를 참조하여, 본 출원에서 제공되는 양방향 인터 예측 방법에 대해 자세히 설명한다.
도 4는 본 출원의 실시예에 따른 양방향 인터 예측 방법의 개략 흐름도이다. 도 4에 도시된 방법은 양방향 인터 예측 장치에 의해 수행된다. 양방향 인터 예측 장치는 도 1에서의 비디오 디코더(202)일 수 있다. 도 4는 양방향 인터 예측 장치가 비디오 디코더(202)인 예를 사용하여 설명된다.
도 4에 도시된 바와 같이, 본 출원의 이 실시예에서의 양방향 인터 예측 방법은 다음 단계를 포함할 수 있다.
S400: (비디오 디코더(202))가 획득된 비트스트림을 파싱하여, 지시 정보를 획득한다.
선택적으로, 비디오 디코더(202)는 비트스트림을 파싱하고, 비트스트림에서의 신택스 요소의 값에 기초하여, 현재 영상의 현재 블록에 대한 인터 예측을 수행하는 데 사용되는 인터 예측 모드를 결정할 수 있다. 인터 예측 모드가 양방향 인터 예측 모드인 경우, 비디오 디코더(202)는 지시 정보를 획득한다.
비디오 디코더(202)는 비디오 인코더(102)에 의해 전송되는 인코딩된 비트스트림을 수신할 수 있거나, 저장 장치(40)로부터 인코딩된 비트스트림을 획득할 수 있다.
선택적으로, 본 출원의 이 실시예에서 비디오 디코더(202)는 신택스 요소 inter_pred_idc의 값에 기초하여 현재 영상의 현재 블록에 대한 인터 예측을 수행하는 데 사용되는 인터 예측 모드를 결정한다. 전술한 설명으로부터 인터 예측은 단방향 인터 예측과 양방향 인터 예측을 포함한다는 것을 알 수 있다. 선택적으로, 신택스 요소 inter_pred_idc의 값이 0인 경우, 비디오 디코더(202)는 현재 영상의 현재 블록에 대한 인터 예측을 수행하는 데 사용되는 인터 예측 모드가 순방향 인터 예측이라고 결정할 수 있다. 신택스 요소 inter_pred_idc의 값이 1인 경우, 비디오 디코더(202)는 현재 영상의 현재 블록에 대한 인터 예측을 수행하는 데 사용되는 인터 예측 모드가 역방향 인터 예측이라고 결정할 수 있다. 신택스 요소 inter_pred_idc의 값이 2인 경우, 비디오 디코더(202)는 현재 영상의 현재 블록에 대한 인터 예측을 수행하기 위해 사용되는 인터 예측 모드가 양방향 인터 예측이라고 결정할 수 있다.
선택적으로, 신택스 요소 inter_pred_idc의 값이 2라고 결정한 후, 비디오 디코더(202)는 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하도록 지시하는 데 사용되는 지시 정보를 획득한다. 제1 움직임 정보는 제1 방향에서의 현재 블록의 움직임 정보이고, 제2 움직임 정보는 제2 방향에서의 현재 블록의 움직임 정보이고, 제1 방향은 제2 방향과 다르다.
본 출원에서 영상 블록은 비디오 인코딩 또는 비디오 디코딩을 수행하는 기본 유닛, 예를 들어, 인코딩 유닛(Coding Unit, CU)이거나, 예측 연산을 수행하는 기본 유닛, 예를 들어 예측 유닛(Prediction Unit, PU)일 수 있다. 본 출원의 이 실시예에서는 이를 특별히 한정하지 않는다.
선택적으로, 본 출원의 이 실시예에서 현재 블록은 하나 이상의 서브블록을 더 포함할 수 있다. 이에 상응하여, 제1 움직임 정보는 제1 방향에서의 현재 블록의 하나 이상의 서브블록 각각의 움직임 정보를 포함할 수 있고, 제2 움직임 정보는 제2 방향에서의 현재 블록의 하나 이상의 서브블록 각각의 움직임 정보를 포함할 수 있으며, 지시 정보는 제1 방향에서의 서브블록의 움직임 정보에 기초하여 제2 방향에서의 서브블록의 움직임 정보를 결정하도록 지시하는 데 사용될 수 있다. 선택적으로, 현재 블록은 대안으로 분할될 수 없는 서브블록일 수 있다.
비디오 디코더(202)는 이하의 구현예를 포함하지만 이에 한정되지 않는 복수의 방식으로 지시 정보를 획득할 수 있다.
제1 구현예에서, 비디오 디코더(202)는 제1 식별자를 파싱한다. 제1 식별자의 값이 제1 미리 설정된 값인 경우, 비디오 디코더(202)는 제1 움직임 정보를 파싱하기로 결정하고, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다. 제1 식별자의 값이 제8 미리 설정된 값인 경우, 비디오 디코더(202)는 비트스트림을 파싱하여 제5 식별자를 획득한다. 제5 식별자의 값이 제5 미리 설정된 값인 경우, 비디오 디코더(202)는 제2 움직임 정보를 파싱하기로 결정하고, 제2 움직임 정보에 기초하여 제1 움직임 정보를 계산한다. 제5 식별자의 값이 제9 미리 설정된 값인 경우, 비디오 디코더(202)는 제1 움직임 정보 및 제2 움직임 정보를 획득한다. 예를 들어, 제1 미리 설정된 값, 제8 미리 설정된 값, 제9 미리 설정된 값, 및 제5 미리 설정된 값이 참을 나타내는 경우, 제1 미리 설정된 값, 제8 미리 설정된 값, 제9 미리 설정된 값, 및 제5 미리 설정된 값은 각각 1일 수 있다. 대안으로, 제1 미리 설정된 값, 제8 미리 설정된 값, 제9 미리 설정된 값, 및 제5 미리 설정된 값이 참을 나타내는 경우, 제1 미리 설정된 값, 제8 미리 설정된 값, 제9 미리 설정된 값, 및 제5 미리 설정된 값은 각각 0일 수 있다. 본 출원의 이 실시예에서는 이를 특별히 한정하되지 않는다. 예를 들어, 제1 미리 설정된 값, 제8 미리 설정된 값, 제9 미리 설정된 값, 및 제5 미리 설정된 값은 동일할 수도 있고 다를 수도 있으며, 예를 들어 각각은 0과 1 중 하나일 수 있다. 본 출원의 이 실시예에서는 이를 특별히 한정하지 않는다. 구체적으로, 제1 식별자가 먼저 획득된다. 제1 식별자가 제1 미리 설정된 값인 경우, 제1 움직임 정보에 기초하여 제2 움직임 정보가 결정될 수 있음을 지시한다. 제1 식별자가 제8 미리 설정된 값인 경우, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정할 수 없음을 지시한다. 이 경우, 제5 식별자가 획득되어야 한다. 제5 식별자가 제5 미리 설정된 값인 경우, 제2 움직임 정보에 기초하여 제1 움직임 정보가 결정될 수 있음을 지시한다. 제5 식별자가 제9 미리 설정된 값이면, 파싱을 통해 제1 움직임 정보와 제2 움직임 정보를 획득할 수 있음을 지시한다. 이 경우, 제1 움직임 정보와 제2 움직임 정보는 서로로부터 도출될 수 없다.
예를 들어, 제1 식별자는 mv_derived_flag_l0일 수 있고, 제5 식별자는 mv_derived_flag_l1일 수 있고, 제1 미리 설정된 값과 제5 미리 설정된 값은 모두 1일 수 있으며, 제8 미리 설정된 값과 제9 미리 설정된 값이 모두 0일 수 있다. 비디오 디코더(202) 먼저 mv_derived_flag_l0을 파싱한다. mv_derived_flag_l0의 값이 1인 경우, 비디오 디코더(202)는 제1 움직임 정보를 파싱하고, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다. mv_derived_flag_l0의 값이 0인 경우, 비디오 디코더(202)는 mv_derived_flag_l1을 파싱한다. mv_derived_flag_l1의 값이 1인 경우, 비디오 디코더(202)는 제2 움직임 정보를 파싱하고, 제2 움직임 정보에 기초하여 제1 움직임 정보를 계산한다. mv_derived_flag_l0의 값과 mv_derived_flag_l1의 값이 모두 0인 경우, 비디오 디코더(202)는 제1 움직임 정보와 제2 움직임 정보를 파싱한다.
본 발명의 이 실시예에서 식별자 및 값은 단지 예일 뿐이며, 식별자 및 값의 다양성은 본 발명에서 완전하거나 제한되지 않는다는 것을 이해해야 한다.
제2 구현예에서, 비디오 디코더(202)는 제2 식별자를 파싱한다. 제2 식별자의 값이 미리 설정된 제2 값인 경우, 비디오 디코더(202)는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산하기로 결정한다. 그 후, 비디오 디코더(202)는 제3 식별자를 파싱한다. 제3 식별자의 값이 미리 설정된 제3 값인 경우, 비디오 디코더(202)는 제1 움직임 정보를 파싱하기로 결정하고, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다. 다시 말해, 비디오 디코더(202)는 지시 정보를 획득한다. 제3 식별자의 값이 미리 설정된 제6 값인 경우, 비디오 디코더(202)는 제2 움직임 정보를 파싱하기로 결정하고, 제2 움직임 정보에 기초하여 제1 움직임 정보를 계산한다.
구체적으로, 제2 식별자가 먼저 획득된다. 제2 식별자가 제2 미리 설정된 값인 경우, 하나의 움직임 정보가 다른 움직임 정보에 기초하여 도출될 수 있음을 지시한다. 또한, 제3 식별자가 획득된다. 제3 식별자의 값이 미리 설정된 제3 값인 경우, 제2 움직임 정보가 제1 움직임 정보에 기초하여 결정될 수 있음을 지시한다. 제3 식별자의 값이 제6 미리 설정된 값인 경우, 제1 움직임 정보가 제2 움직임 정보에 기초하여 결정될 수 있음을 지시한다.
예를 들어, 제2 식별자는 derived_mv_flag이고, 제3 식별자는 derived_mv_direction이고, 제3 미리 설정된 값은 1이고, 제6 미리 설정된 값은 0이다. 비디오 디코더(202)는 먼저 derived_mv_flag를 파싱한다. derived_mv_flag의 값이 1인 경우, 비디오 디코더(202)는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산하기로 결정한다. derived_mv_flag의 값이 0인 경우, 비디오 디코더(202)는 제1 움직임 정보 및 제2 움직임 정보를 파싱한다. derived_mv_direction의 값이 1인 경우, 비디오 디코더(202)는 제1 움직임 정보를 파싱하고, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다. derived_mv_direction의 값이 0인 경우, 비디오 디코더(202)는 제2 움직임 정보를 파싱하기로 결정하고, 제2 움직임 정보에 기초하여 제1 움직임 정보를 계산한다.
제3 구현예에서, 비디오 디코더(202)는 제2 식별자를 파싱한다. 제2 식별자의 값이 미리 설정된 제2 값인 경우, 비디오 디코더(202)는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산하기로 결정한다. 그 후, 비디오 디코더(202)는 미리 설정된 도출 방향에 기초하여, 제1 움직임 정보를 파싱하기로 결정하고, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다. 다시 말해, 비디오 디코더(202)는 지시 정보를 획득한다. 다시 말해, 이 구현예에서, "제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하는 것"이 미리 설정되어 있다. 제2 식별자의 값이 제7 미리 설정된 값인 경우, 제1 움직임 정보와 제2 움직임 정보가 파싱된다. 다시 말해, 이 경우, 제1 움직임 정보와 제2 움직임 정보는 도출을 통해 획득될 수 없다.
예를 들어, 제2 식별자는 derived_mv_flag이고, 제2 미리 설정된 값은 1이고, 제7 미리 설정된 값은 0이다. 비디오 디코더(202)는 derived_mv_flag를 파싱한다. derived_mv_flag의 값이 1인 경우, 비디오 디코더(202)는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산하기로 결정한다. 또한, 비디오 디코더(202)는 제1 움직임 정보를 파싱하기로 결정하고, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다. derived_mv_flag의 값이 0인 경우, 비디오 디코더(202)는 제1 움직임 정보 및 제2 움직임 정보를 파싱한다.
제4 구현예에서, 비디오 디코더(202)는 제4 식별자(예: mv_derived_flag_l0)를 파싱한다. 제4 식별자의 값이 제4 미리 설정된 값인 경우, 비디오 디코더(202)는 움직임 정보 도출 알고리즘을 사용하여 현재 블록의 움직임 정보를 계산하기로 결정하고, 제1 참조 영상 리스트와 제2 참조에 기초하여 변수 derived_ref_num을 계산한다. 변수는 제1 참조 영상 및 제2 참조 영상에 기초하여 형성될 수 있는 미러링된/선형(mirrored/linear) 참조 영상 쌍의 수량을 나타낸다. 참조 영상 쌍의 수가 1인 경우, 비디오 디코더(202)는 참조 영상 색인 값을 직접 결정한다. 그 후, 비디오 디코더(202)는 미리 설정된 도출 방향에 기초하여, 제1 움직임 정보를 파싱하기로 결정하고, 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다. 제1 참조 영상 리스트는 제1 방향에서의 현재 블록의 참조 영상 리스트이고, 제2 참조 영상 리스트는 제2 방향에서의 현재 블록의 참조 영상 리스트이고, 제1 참조 영상은 제1 방향에서의 현재 블록의 참조 영상이고, 제2 참조 영상은 제2 방향에서의 현재 블록의 참조 영상이다. 본 출원의 이 실시예에서 참조 영상 색인 값은 대응하는 참조 영상 리스트에서의 참조 영상의 번호를 참조할 수 있다.
예를 들어, 현재 영상의 영상 순서 카운트(POC, picture order count)는 4이고, 제1 참조 영상 리스트는 {2, 0}이고, 제2 참조 영상 리스트는 {6, 7}이다. (예: 이하의 조건 B 또는 조건 C에 따라) 제1 참조 영상 리스트에서의 영상 순서 카운트가 2인 참조 영상(제1 참조 영상으로 이해될 수 있음)과 제2 참조 영상 리스트에서의 영상 순서 카운트가 6인 참조 영상(제2 참조 영상으로 이해될 수 있음)이 참조 영상 쌍을 형성할 수 있는 것으로 결정된다고 가정한다. 따라서, 제1 참조 영상 리스트에서의 제1 참조 영상의 색인 값과 제2 참조 영상 리스트에서의 제2 참조 영상의 색인 값이 0임을 알 수 있다. 구체적으로, 참조 영상 쌍이 하나뿐인 경우, 참조 영상 쌍은 타깃 참조 영상으로서 직접 사용될 수 있으며, 참조 영상 리스트에서의 타깃 참조 영상에 대응하는 위치의 색인은 참조 영상의 색인이다. 이 경우, 참조 영상의 색인 값은 파싱을 통해 획득될 필요가 없다.
가능한 구체적인 구현예에서, 참조 영상 리스트의 요소는 참조 영상의 영상 순서 카운트(POC)를 포함하지만 이에 한정되지 않는 일부 마크일 수 있다. 하나의 영상 순서 카운트는 참조 영상 리스트에서의 하나의 특정 참조 영상 및/또는 참조 영상의 위치의 색인, 즉 참조 영상 색인에 대응할 수 있다.
가능한 구체적인 구현예에서, 참조 영상 리스트의 요소는 영상(참조 영상)일 수 있다. 하나의 영상은 참조 영상 리스트에서의 하나의 특정 POC 및 영상의 위치의 색인, 즉 참조 영상 색인에 대응할 수 있다.
현재 영상의 영상 순서 카운트는 4이고, 제1 참조 영상 리스트는 {2, 0}이고, 제2 참조 영상 리스트는 {6, 7}이며, (아래의 조건 B 또는 조건 C에 따라) 제1 참조 영상 리스트에서의 영상 순서 카운트가 2인 참조 영상(제1 참조 영상으로 이해될 수 있음)과 제2 참조 영상 리스트에서의 영상 순서 카운트가 6인 참조 영상(제2참조 영상으로 이해될 수 있음)이 참조 영상 쌍을 형성할 수 있고, 제2 참조 영상 리스트에서의 영상 순서 카운트가 0인 참조 영상과 제2 참조 영상 리스트에서의 영상 순서 카운트가 7인 참조 영상이 또한 참조 영상 쌍을 형성할 수 있는 것으로 결정된다고 가정한다. 이 경우, 비디오 디코더(202)는 참조 영상 색인 값을 파싱해야 한다. 다시 말해, 복수 쌍의 참조 영상이 있는 경우, 참조 영상의 색인 값은 파싱을 통해 획득될 수 있다.
또한, 인터 예측 모드가 양방향 인터 예측 모드인 것으로 결정한 경우, 비디오 디코더(202)는 현재 영상의 특징 정보가 미리 설정된 조건(아래의 조건 A, B, C 및/또는 E를 포함하지만 이에 한정되지 않음)을 충족하는지의 여부를 판정할 수 있다. 이러한 방식으로, 현재 영상의 특징 정보가 미리 설정된 조건을 충족하는 경우, 비디오 디코더(202)는 지시 정보를 획득한다. 다시 말해, S400의 구체적인 프로세스는 대안으로 다음과 같을 수 있다: 비디오 디코더(202)는 인터 예측 모드가 양방향 인터 예측 모드이고 현재 영상의 특징 정보가 미리 설정된 조건을 충족한다고 판정하는 경우에 지시 정보를 획득한다. 현재 영상의 특징 정보는 영상 순서 카운트(POC), 시간 레벨 식별자(Temporal Level ID, TID), 및/또는 참조 영상의 수량 중 적어도 하나를 포함할 수 있지만 이에 한정되지 않는다. 비디오 디코더(202)에 의해 획득되는 비트스트림은 시퀀스 파라미터 세트(Sequence Parameter Set, SPS), 영상 파라미터 세트(Picture Parameter Set, PPS), 슬라이스 헤더(slice header) 또는 슬라이스 세그먼트 헤더(slice segment header), 및 인코딩된 영상 데이터를 포함한다. 그 후, 비디오 디코더(202)는 비트스트림을 파싱하여 현재 영상의 특징 정보를 획득한다.
선택적으로 미리 설정된 조건으로는 다음 조건 중 하나 이상이 포함한다:
조건 A: 현재 블록은 둘 이상의 참조 영상을 갖는다.
조건 B: 현재 영상의 영상 순서 카운트, 제1 참조 영상의 영상 순서 카운트, 및 제2 참조 영상의 영상 순서 카운트는 다음 공식을 충족한다:
.
여기서, 는 현재 영상의 영상 순서 카운트를 나타내고, 는 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 제2 참조 영상의 영상 순서 카운트를 나타내며, 제1 참조 영상은 제1 방향에서의 현재 블록의 참조 영상이고, 제2 참조 영상은 제2 방향에서의 현재 블록의 참조 영상이고, 제1 참조 영상은 제1 참조 영상 리스트에 있을 수 있고, 제2 참조 영상은 제2 참조 영상 리스트에 있을 수 있다.
조건 C: 현재 영상의 영상 순서 카운트, 제1 참조 영상의 영상 순서 카운트, 제2 참조 영상의 영상 순서 카운트는 다음 공식을 충족한다:
.
여기서, 는 현재 영상의 영상 순서 카운트를 나타내고, 는 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 제2 참조 영상의 영상 순서 카운트를 나타내며, 제1 참조 영상은 제1 방향에서의 현재 블록의 참조 영상이다. 제2 참조 영상은 제2 방향에서의 현재 블록의 참조 영상이다. 이 공식은 구체적으로 현재 영상의 영상 순서 카운트가 제1 참조 영상의 영상 순서 카운트와 제2 참조 영상의 영상 순서 카운트 사이에 있어야 한다는 것을 지시한다. 보다 구체적으로, 이 공식은, 제1 참조 영상 및 제2 참조 영상 중 하나가 시간 시퀀스에서 현재 영상보다 앞이고 다른 하나가 시간 시퀀스에서 현재 영상 이후임을 지시할 수 있다.
조건 D: 현재 영상의 TID가 미리 설정된 값보다 크거나 같다.
본 출원의 이 실시예에서 미리 설정된 조건은 미리 설정될 수 있거나, 예를 들어 SPS, PPS, 슬라이스 헤더(slice header) 또는 슬라이스 세그먼트 헤더(slice segment header)와 같은 파라미터 세트에서, 상위 계층 신택스(higher layer syntax)로 지정될 수 있다. 본 출원의 이 실시예에서 이를 특별히 한정하지 않는다.
조건 E: 현재 영상의 mvd_l1_zero_flag는 0이다.
mvd_l1_zero_flag는 비디오 디코더(202)에 의해 파싱을 통해 획득되는 플래그 비트이다. mvd_l1_zero_flag가 1인 경우, List1의 MVD가 파싱될 필요가 없음을 지시한다. (mvd_l1_zero_flag equal to 1은 mvd_coding(x0, y0, 1)을 신택스 구조가 파싱되지 않고 MvdL1 [x0][y0][compIdx]가 compIdx = 0..1에 대해 0으로 설정됨을 지시한다. mvd_l1_zero_flag equal to 0은 mvd_coding(x0, y0, 1) 신택스 구조가 파싱됨을 지시한다). 구체적으로, mvd_l1_zero_flag = 1은 제2 움직임 벡터 차가 0임을 지시하는 데 사용될 수 있고, mvd_l1_zero_flag = 0은 제2 움직임 벡터 차가 파싱 또는 유도되어야 하는지의 여부를 지시하는 데 사용될 수 있다.
구체적으로, 조건 B(또는 조건 C)에 대해, 비디오 디코더(202)는 제1 참조 영상 리스트 및 제2 참조 영상 리스트 각각으로부터 하나의 참조 영상의 영상 순서 카운트를 획득하고, 획득된 참조 영상의 영상 순서 카운트 및 현재 영상의 영상 순서 카운트가 조건 B 또는 조건 C를 충족하는지의 여부를 판정한다. 지시 정보는 조건 B(또는 조건 C)가 충족되는 경우에 획득된다. 비디오 디코더(202)는 조건 매칭을 수행하기 위해 제1 참조 영상 리스트 및 제2 참조 영상 리스트 각각으로부터 임의의 참조 영상을 획득할 수 있음을 이해해야 한다.
선택적으로, 조건 A에 대해, 비디오 디코더(202)는 제1 방향에서의 참조 영상 색인 값(SymRefIdxX)을 0으로 설정하고, 제2 방향에서의 참조 영상 색인 값(SymRefIdxY)을 0으로 설정한다.
선택적으로, 조건 B에 대해, 비디오 디코더(202)는 제1 참조 영상 리스트에서 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 작은 참조 영상을 검색하며, 여기서 참조 영상 또는 참조 영상의 영상 순서 카운트는 POC_listX로 나타낼 수 있고; 비디오 디코더(202)는 제2 참조 영상 리스트에서 P를 충족하는 참조 영상을 검색하고, 참조 영상 또는 참조 영상의 영상 순서 카운트는 POC_listY로 나타낼 수 있다. 이러한 검색 방식으로 요건을 충족하는 참조 영상 POC_listX 및 POC_listY를 발견할 수 있으면, 제1 방향에서의 참조 영상 색인 값(SymRefIdxX)은 제1 참조 영상 리스트에서의 POC_listX의 색인 값으로 설정되고, 제2 방향에서의 참조 영상 색인 값(SymRefIdxY)은 제2 참조 영상 리스트에서의 POC_listY의 색인 값으로 설정된다. 선택적으로, 요건을 충족하는 참조 영상 POC_listX 및 POC_listY를 발견할 수 없으면, 비디오 디코더(202)는 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 큰 참조 영상 POC_listX를 추가로 검색하고; 비디오 디코더(202)는 제2 참조 영상 리스트에서 를 충족하는 참조 영상 POC_listY를 검색한다. 이러한 검색 방식으로 요건을 충족하는 참조 영상 POC_listX 및 POC_listY를 찾을 수 있으면, 제1 방향에서의 참조 영상 색인 값(SymRefIdxX)은 제1 참조 영상 리스트에서의 POC_listX의 색인 값으로 설정되고, 제2 방향에서의 참조 영상 색인 값(SymRefIdxY)은 제2 참조 영상 리스트에서의 POC_listY의 색인 값으로 설정된다. 제1 방향은 제1 참조 영상 리스트에 대응할 수 있고, 제2 방향은 제2 참조 영상 리스트에 대응할 수 있다.
선택적으로, 조건 C와 같은 전술한 가능한 조건에 대해, 비디오 디코더(202)는 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 작은 참조 영상을 제1 참조 영상 리스트에서 검색하며, 여기서 참조 영상 또는 참조 영상의 영상 순서 카운트는 POC_listX로 나타낼 수 있고; 비디오 디코더(202)는 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 큰 참조 영상을 제2 참조 영상 리스트에서 검색하며, 여기서 참조 영상은 POC_listY로 나타낼 수 있다. 이러한 검색 방식으로 요건을 충족하는 참조 영상 POC_listX 및 POC_listY를 찾을 수 있으면, 제1 방향에서의 참조 영상 색인 값(SymRefIdxX)은 제1 참조 영상 리스트에서의 POC_listX(POC가 POC_listX인 참조 영상에 대응할 수도 있음)의 색인 값으로 설정되고, 제2 방향에서의 참조 영상 색인 값(SymRefIdxY)은 제2 참조 영상 리스트에서의 POC_listY(POC가 POC_listY인 참조 영상에 대응할 수도 있음)의 색인 값으로 설정된다. 선택적으로, 요건을 충족하는 참조 영상 POC_listX 및 POC_listY를 찾을 수 없으면, 비디오 디코더(202)는 추가로 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 큰 참조 영상 POC_listX을 검색하고; 비디오 디코더(202)는 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 작은 참조 영상 POC_listY를 제2 참조 영상 리스트에서 검색한다. 이러한 검색 방식으로 요건을 충족하는 참조 영상 POC_listX 및 POC_listY를 찾을 수 있는 경우, 제1 방향에서의 참조 영상 색인 값(SymRefIdxX)은 제1 참조 영상 리스트에서의 POC_listX의 색인 값으로 설정되고, 제2 방향에서의 참조 영상 색인 값(SymRefIdxY)은 제2 참조 영상 리스트에서의 POC_listY의 참조 영상 색인 값으로 설정된다. 제1 방향은 제1 참조 영상 리스트에 대응할 수 있고, 제2 방향은 제2 참조 영상 리스트에 대응할 수 있으며, 그 반대의 경우도 마찬가지이다.
제1 참조 영상 리스트(예: L0)에서 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 작은 참조 영상을 검색하는 것은 다음 표현식을 사용하여 신택스적으로 표현될 수 있다:
제1 참조 영상 리스트에서, 색인이 RefIdxSymL0인 참조 영상이 검색된 참조 영상이다.
제2 참조 영상 리스트(예: L1)에서 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 큰 참조 영상을 검색하는 것은 다음 표현식을 사용하여 신택스적으로 표현될 수 있다:
제2 참조 영상 리스트에서, 색인이 RefIdxSymL1인 참조 영상이 검색된 참조 영상이다.
제2 참조 영상 리스트(예: L1)에서 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 작은 참조 영상을 검색하는 것은 다음 표현식을 사용하여 신택스적으로 표현될 수 있다:
제2 참조 영상 리스트에서, 색인이 RefIdxSymL1인 참조 영상이 검색된 참조 영상이다.
제1 참조 영상 리스트(예: L0)에서 현재 영상에 가장 가깝고 영상 순서 카운트가 현재 영상의 영상 순서 카운트보다 큰 참조 영상을 검색하는 것은 다음 표현식을 신택스적으로 표현될 수 있다:
제1 참조 영상 리스트에서, 색인이 RefIdxSymL0인 참조 영상이 검색된 참조 영상이다.
결론적으로, 참조 영상(또는 색인)를 결정하기 위한 정책이 제공된다. 먼저 L0에서 가장 가까운 순방향 POC를 가진 참조 영상(또는 색인)이 검색되고, L1에서 가장 가까운 역방향 POC를 가진 참조 영상(또는 색인)이 검색된다. 참조 영상 중 하나를 찾을 수 없거나 참조 영상 중 어느 것도 찾을 수 없으면, 먼저 L1에서 가장 가까운 순방향 POC를 가진 참조 영상(또는 색인)를 검색 한 다음, L0에서 가장 가까운 역방향 POC를 가진 참조 영상(또는 색인)을 검색한다. "순방향"은 POC가 현재 영상의 POC보다 작다는 것을 지시할 수 있다, 즉, 재생 시퀀스/표시 시퀀스에 있어 특정 참조 영상이 현재 영상보다 앞에 있음을 지시할 수 있고, "역방향"은 POC가 현재 영상의 POC보다 크다는 것을 지시할 수 있다, 즉, 재생 시퀀스/표시 시퀀스에 있어 특정 참조 영상이 현재 영상 뒤에 있음을 지시할 수 있다.
본 출원의 이 실시예에서, 인터 예측 모드가 양방향 인터 예측 모드이고 현재 영상의 특징 정보가 미리 설정된 조건을 충족하는 것으로 결정되는 경우, "비디오 디코더(202)가 지시 정보를 획득하는" 방법은 인터 예측 모드가 양방향 인터 예측 모드인 것으로 결정되는 되는 경우에 사용되는 것과 동일할 수 있다.
전술한 설명을 참조하면, 표 1은 인터 예측 모드가 양방향 인터 예측 모드이고 현재 영상의 특징 정보가 미리 설정된 조건을 충족하는 것으로 결정되는 경우 제1 구현예에서 비디오 디코더(202)가 지시 정보를 획득하기 위해 사용하는 신택스 표이다. predict_unit()은 예측 영상 블록의 신택스 구조이며, 현재 블록에서의 서브블록 각각의 움직임 정보를 결정하는 방법을 기술할 수 있다.
표 1에서 x0 및 y0은 현재 블록의 좌측 상단에 대한 현재 블록에서의 서브블록의 수평 좌표 오프셋과 수직 좌표 오프셋을 각각 나타내고, nPbW는 현재 블록의 폭을 나타내고, nPbH는 현재 블록의 높이를 나타낸다. inter_pred_idc[x0][y0]의 값이 PRED_L0이면, 현재 서브블록에 대한 인터 예측이 순방향 예측임을 지시한다. inter_pred_idc[x0][y0]의 값이 PRED_L1이면, 현재 서브블록에 대한 인터 예측이 역방향 예측임을 지시한다. inter_pred_idc[x0][y0]의 값이 PRED_BI이면, 현재 서브블록의 인터 예측이 양방향 예측임을 지시한다.
양방향 인터 예측(즉, inter_pred_idc[x0][y0]==PRED_BI)의 경우, 미리 설정된 조건(조건들)이 충족되면, mv_derived_flag_l0[x0][y0]이 파싱된다. mv_derived_flag_l0의 값이 제1 미리 설정된 값이 아니면, mv_derived_flag_l1[x0][y0]이 파싱된다. mv_derived_flag_l0의 값이 제1 미리 설정된 값이거나 mv_derived_flag_l1[x0][y0]의 값이 제5 미리 설정된 값이면, 현재 블록의 서브블록의 움직임 정보가 결정된다. 구체적으로, 참조 영상 색인 값 ref_idx_l0[x0][y0], 움직임 벡터 예측 플래그 mvp_l0_flag[x0][y0], 움직임 벡터 차 mvd_coding(x0, y0, 0)이 결정된다.
[표 1]
전술한 설명을 참조하면, 표 2는 인터 예측 모드가 양방향 인터 예측 모드이고 현재 영상의 특징 정보가 미리 설정된 조건을 충족하는 것으로 결정되는 경우 제3 구현예에서 지시 정보를 획득하기 위해 비디오 디코더(202)에 의해 사용되는 신택스 표이다.
표 2에서, 양방향 인터 예측(즉, inter_pred_idc[x0][y0]==PRED_BI)의 경우, 미리 설정된 조건(조건들)이 충족되면, derived_mv_flag[x0][y0]이 파싱된다. derived_mv_flag[x0][y0]의 값이 제2 미리 설정된 값이면, 현재 블록의 서브블록의 움직임 정보가 결정된다. 구체적으로, 참조 영상 색인 값 ref_idx_lx[x0][y0], 움직임 벡터 예측 플래그 mvp_lx_flag[x0][y0], 움직임 벡터 차 mvd_coding(x0, y0, x)이 결정된다.
[표 2]
전술한 설명을 참조하면, 표 3은 인터 예측 모드가 양방향 인터 예측 모드이고 현재 영상의 특징 정보가 미리 설정된 조건을 충족하는 것으로 결정되는 경우 제4 구현예에서 지시 정보를 획득하기 위해 비디오 디코더(202)에 의해 사용되는 신택스 표이다.
표 3에서, 양방향 인터 예측(즉, inter_pred_idc [x0][y0]==PRED_BI)의 경우, 미리 설정된 조건(조건들)이 충족되면 derived_mv_flag[x0][y0]이 파싱된다. derived_mv_flag[x0][y0]의 값이 미리 설정된 제4 미리 설정된 값이면derived_ref_num가 결정되고, derived_ref_num의 값이 1보다 큰 경우, 현재 블록의 서브블록의 움직임 정보가 결정된다. 구체적으로, 참조 영상 색인 값 ref_idx_lx[x0][y0], 움직임 벡터 예측 플래그 mvp_lx_flag[x0][y0], 움직임 벡터 차 mvd_coding(x0, y0, x)가 결정된다.
[표 3]
제1 식별자, 제2 식별자, 제3 식별자 및 제4 식별자는 모두 미리 설정되거나 상위 계층 신택스에서, 예를 들어, SPS, PPS, 슬라이스 헤더(slice header), 또는 슬라이스 세그먼트 헤더(slice segment header)와 같은 파라미터 세트에서 지정될 수 있다. 본 출원의 이 실시예에서는 이를 특별히 한정하지 않는다.
비디오 디코더(202)는 인터 예측 모드가 양방향 인터 예측 모드이고 현재 영상의 특징 정보가 미리 설정된 조건을 충족한다고 결정하는 경우, 지시 정보를 획득한다. 이는 비디오 디코더(202)의 디코딩 레이트를 효과적으로 향상시키고, 정보 리던던시를 감소시킨다.
S401: 비디오 디코더(202)가 제1 움직임 정보를 획득한다.
선택적으로, 비디오 디코더(202)는 비트스트림을 파싱하여 제1 참조 영상의 색인 값, 제1 움직임 벡터 예측자 플래그, 및 제1 움직임 벡터 차를 획득한다, 즉, 제1 움직임 정보를 획득한다. 제1 움직임 벡터 예측자 플래그는 제1 후보 예측된 움직임 벡터 리스트에서의 제1 예측된 움직임 벡터의 색인 값을 지시하는 데 사용되며, 제1 예측된 움직임 벡터는 제1 방향에서의 현재 블록의 예측된 움직임 벡터이고, 제1 움직임 벡터 차는 제1 예측된 움직임 벡터와 제1 움직임 벡터의 차이이고, 제1 움직임 벡터는 제1 방향에서의 현재 블록의 움직임 벡터이다.
선택적으로, 참조 영상 리스트에서 첫 번째 위치에 있는 참조 영상은 일반적으로 현재 영상에 가장 가까운 영상이다. 따라서, 제1 참조 영상의 색인 값 ref_lX_idx는 직접 0으로 설정될 수 있다.
선택적으로, 비디오 디코더(202)가 미리 설정된 조건 B 또는 C에 따라, 지시 정보의 획득 여부를 판정하는 경우, 비디오 디코더(202)는 제1 참조 영상의 색인 값 ref_lX_idx을 미리 결정된 값 SymRefIdxX로 설정할 수 있다. 예를 들어, 미리 설정된 조건 B 또는 C가 충족되면, 지시 정보가 획득될 수 있고, 제1 참조 영상의 색인 값 ref_lX_idx는 미리 설정된 값 SymRefIdxX로 설정될 수 있다. X는 0 또는 1일 수 있다.
선택적으로, 제1 후보 예측 움직임 벡터 리스트는 제1 참조 영상의 색인 값에 기초하여 구축된다. 구체적으로, 제1 후보 예측된 움직임 벡터 리스트를 구축하는 과정에서, 현재 블록의 이웃하는 디코딩된 영상 블록의 움직임 벡터가 획득된다. 제1 참조 영상의 영상 순서 카운트는 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 결정된다. 이웃하는 디코딩된 영상 블록의 참조 영상의 영상 순서 카운트가 제1 참조 영상의 영상 순서 카운트와 다르면, 이웃하는 디코딩된 영상 블록의 움직임 벡터는 제1 참조 영상을 가리키도록 스케일링되어야 하며, 그런 다음 제1 후보 예측된 움직임 벡터 리스트에 추가된다.
표 1 내지 표 3에 나타낸 각각의 신택스 표에서, 비디오 디코더(202)는 제1 방향에서의 현재 블록의 서브블록의 움직임 정보를 결정한다.
S402: 비디오 디코더(202)가 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정한다.
제1 구현예에서, 제2 움직임 정보를 결정하기 위해 비디오 디코더(202)에 의해 사용되는 방법은 다음과 같다: 비디오 디코더(202)는 제1 참조 영상의 색인 값(간단히 색인라고도 함)을 제1 움직임 정보로부터 선택하고, 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 제1 참조 영상의 영상 순서 카운트를 결정하고; 미리 설정된 공식에 따라 현재 영상의 영상 순서 카운트 및 제1 참조 영상의 영상 순서 카운트에 기초하여 제2 참조 영상의 영상 순서 카운트를 계산하고; 제2 참조 영상의 영상 순서 카운트 및 제2 참조 영상 리스트에 기초하여 제2 참조 영상의 색인 값을 결정하고; 제1 움직임 정보 및 제2 참조 영상의 색인에 기초하여 제2 움직임 정보를 결정한다.
여기서, 미리 설정된 공식은 일 수 있다. 는 현재 영상의 영상 순서 카운트를 나타내고, 는 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 제2 참조 영상의 영상 순서 카운트를 나타낸다.
예를 들어, 현재 영상의 영상 순서 카운트가 4이고, 제1 참조 영상의 영상 순서 카운트는 2이고, 제2 참조 영상 리스트가 {6, 8}이며, 공식 에 따라, 제2 참조 영상의 영상 순서 카운트가 6이라고 결정되면, 비디오 디코더(202)는 제2 참조 영상의 색인 값 ref_lY_idx가 0이라고 결정한다.
선택적으로, 미리 설정된 공식은 대안으로 일 수도 있다. 제2 참조 영상 리스트에서의 복수의 참조 영상의 영상 순서 카운트가 공식을 충족하면, 비디오 디코더(202)는 먼저 최소 를 가진 참조 영상을 선택한 다음, 최소 를 가진 참조 영상을 선택하여, 제2 참조 영상의 색인 값을 결정한다. 여기서 abs는 절대 값 함수이다.
예를 들어, 현재 영상의 영상 순서 카운트가 4이고, 제1 참조 영상의 영상 순서 카운트가 2이고, 제2 참조 영상 리스트가 {5, 7, 8}이며, 공식 에 따라, 제2 참조 영상의 영상 순서 카운트가 5인 것으로 결정되면, 비디오 디코더(202)는 제2 참조 영상의 색인 값 ref_lY_idx가 0이라고 결정한다.
선택적으로 미리 설정된 공식은 대안으로 일 수 있다. 제2 참조 영상 리스트에서의 복수의 참조 영상의 영상 순서 카운트가 공식을 충족하면, 비디오 디코더(202)는 먼저 최소 를 가진 참조 영상을 선택한 다음, 최소 를 가진 참조 영상을 선택하여, 제2 참조 영상의 색인 값을 결정한다. 여기서 abs는 절대 값 함수이다.
예를 들어, 현재 영상의 영상 순서 카운트가 4이고, 제1 참조 영상의 영상 순서 카운트는 2이고, 제2 참조 영상 리스트는 {3, 2, 1, 0}이며, 공식에 따라, 제2 참조 영상의 영상 순서 카운트가 3인 것으로 결정되면면, 비디오 디코더(202)는 제2 참조 영상의 색인 값 ref_lY_idx가 0이라고 결정한다.
선택적으로, 미리 설정된 공식 또는 조건은 대안으로 , , 및 일 수 있다. 선택적인 경우는 이 세 가지 조건이 모두 충족되어야 한다는 것이다. 이 경우, 비디오 디코더(202)가 제2 참조 영상의 색인 값을 결정하기 위해 사용하는 방법은 구체적으로, 현재 영상의 영상 순서 카운트 및 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제1 영상 순서 카운트를 계산하고 - 여기서 는 현재 영상의 영상 순서 카운트를 나타내고, 는 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 제1 영상 순서 카운트를 나타냄 -; 제2 참조 영상 리스트가 제1 영상 순서 카운트를 포함하는 경우, 제2 참조 영상 리스트에서의 제1 영상 순서 카운트로 나타낸 참조 영상의 번호를, 제2 참조 영상의 색인 값으로서 결정하거나; 또는 제2 참조 영상 리스트가 제1 영상 순서 카운트를 포함하지 않는 경우, 현재 영상의 영상 순서 카운트와 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제2 영상 순서 카운트를 계산하고 - 여기서 는 제2 영상 순서 카운트를 나타냄 -, 제2 참조 영상 리스트가 제2 영상 순서 카운트를 포함하는 경우, 제2 참조 영상 리스트에서의 제2 영상 순서 카운트로 나타낸 참조 영상의 번호를, 제2 참조 영상의 색인 값으로서 결정하거나, 제2 참조 영상 리스트가 제2 영상 순서 카운트를 포함하지 않는 경우, 현재 영상의 영상 순서 카운트 및 제1 참조 영상의 영상 순서 카운트에 기초하여 공식 에 따라 제3 영상 순서 카운트를 계산하고 - 여기서 는 제3 영상 순서 카운트를 나타냄 -, 제2 참조 영상 리스트에서의 제3 영상 순서 카운트로 나타낸 참조 영상의 번호를, 제2 참조 영상의 색인 값으로서 결정하는 것이다.
선택적으로, 참조 영상 리스트의 첫 번째 위치에 있는 참조 영상은 일반적으로 현재 영상에 가장 가까운 영상이다. 따라서, 제2 참조 영상의 색인 값 ref_lY_idx는 직접 0으로 설정될 수 있다. 0으로 설정하는 것은 참조 영상 리스트에서의 첫 번째 위치를 가리킴을 지시한다.
선택적으로, 비디오 디코더(202)가 미리 설정된 조건 B 또는 C에 따라, 지시 정보의 획득 여부를 판정하는 경우, 비디오 디코더(202)는 제2 참조 영상의 색인 값 ref_lY_idx을 미리 결정된 값 SymRefIdxY로 설정할 수 있다. 예를 들어, 미리 설정된 조건 B 또는 C가 충족되면, 지시 정보가 획득될 수 있고, 제2 참조 영상의 색인 값 ref_lY_idx은 미리 설정된 값 SymRefIdxY로 설정될 수 있다.
제2 구현예에서, 비디오 디코더(202)에 의해 제2 참조 영상의 색인 값을 획득하기 위해 사용되는 방법은 다음과 같다: 비디오 디코더(202)는 비트스트림을 파싱하여 제2 참조 영상의 색인 값을 획득하고, 제1 움직임 정보 및 제2 참조 영상의 색인 값에 기초하여 제2 움직임 정보를 결정한다. 제2 참조 영상의 색인 값은 미리 설정될 수 있거나, SPS, PPS, 슬라이스 헤더(slice header) 또는 슬라이스 세그먼트 헤더(slice segment header)와 같은 파라미터 세트에 지정될 수 있다. 본 출원의 이 실시예에서는 이를 특별히 한정하지 않는다.
제1 구현예 및 제2 구현예 모두에서, 비디오 디코더(202)는 제1 움직임 정보 및 제2 참조 영상의 색인 값에 기초하여 제2 움직임 정보를 결정한다는 것을 알 수 있다.
선택적으로, 비디오 디코더(202)는 제2 방향에서의 현재 블록의 모든 움직임 정보를 계산할 수 있거나, 제2 방향에서의 현재 블록의 일부 움직임 정보를 계산할 수 있다.
이하에서는 비디오 디코더(202)가 제1 움직임 정보 및 제2 참조 영상의 색인 값에 기초하여 제2 움직임 정보를 결정하는 프로세스를 설명한다.
선택적으로, "비디오 디코더(202)가 "제1 움직임 정보 및 제2 참조 영상의 색인 값에 기초하여 제2 움직임 정보 결정"하는 방법은,
제1 움직임 정보에서의 제1 참조 영상의 색인 값을 획득하고, 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 제1 참조 영상의 영상 순서 카운트를 결정하고; 제2 참조 영상의 색인 값을 획득하고, 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 제2 참조 영상의 영상 순서 카운트를 결정하고; 제1 움직임 정보에 있는 제1 움직임 벡터 차 및 제1 움직임 벡터 예측자 플래그에 기초하여 제1 움직임 벡터(제1 방향에서의 현재 블록의 움직임 벡터)를 결정하고; 하기 공식에 따라 제2 움직임 정보에서의 제2 움직임 벡터를 결정하는 것이다:
.
여기서 는 제2 움직임 벡터를 나타내고, 는 현재 영상의 영상 순서 카운트를 나타내고, 는 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 제2 참조 영상의 영상 순서 카운트를 나타내고, 는 제1 움직임 벡터를 나타내고, 제2 움직임 벡터는 제2 방향에서의 현재 블록의 움직임 벡터이다.
비디오 디코더(202)는 인코더 측이 AMVP 모드 또는 병합 모드에서 후보 움직임 정보 리스트를 구축하는 방식과 동일한 방식으로 후보 움직임 정보 리스트를 구축하고, 제1 움직임 벡터 예측자 플래그에 기초하여 후보 움직임 정보 리스트에서의 제1 예측된 움직임 벡터를 결정한다. 이러한 방식으로, 비디오 디코더(202)는 제1 예측된 움직임 벡터와 제1 움직임 벡터 차의 합을 제1 움직임 벡터로서 결정할 수 있다.
선택적으로, 제1 참조 영상이 현재 블록의 순방향 참조 영상이고 제2 참조 영상이 현재 블록의 역방향 참조 영상인 경우, 또는 제1 참조 영상이 현재 블록의 역방향 참조 영상이고 제2 참조 영상이 현재 블록의 순방향 참조 영상인 경우, 또는 제1 참조 영상과 제2 참조 영상이 각각 현재 블록의 순방향 참조 영상인 경우, 또는 제1 참조 영상과 제2 참조 영상이 각각 현재 블록의 역방향 참조 영상인 경우, 비디오 디코더(202)는 를 직접 설정할 수 있다.
선택적으로, 비디오 디코더(202)는 순방향 참조 영상 및 역방향 참조 영상에 관한 전술한 상황을 결정하는 것이 아니라, 를 직접 설정할 수 있다.
예를 들어, " 제1 참조 영상은 현재 블록의 순방향 참조 영상이고, 제2 참조 영상은 현재 블록의 역방향 참조 영상이다"와 "제1 참조 영상은 현재 블록의 역방향 참조 영상이고 제2 참조 영상은 현재 블록의 순방향 참조 영상이다"는 모두 공식 을 사용하여 나타낼 수 있거나, 공식 를 사용하여 나타낼 수 있다. 다시 말해, 두 공식은 모두 제1 참조 영상과 제2 참조 영상 중 하나는 시간 시퀀스에 있어 현재 영상 앞에 있고, 다른 하나는 시간 시퀀스에 있어 현재 영상 뒤에 있다는 것을 지시할 수 있다.
"제1 참조 영상과 제2 참조 영상은 각각 현재 블록의 순방향 참조 영상이다"와 "제1 참조 영상과 제2 참조 영상은 각각 현재 블록의 역방향 참조 영상이다"는 모두 공식 을 사용하여 나타낼 수 있다.
선택적으로, "비디오 디코더(202)가 제1 움직임 정보 및 제2 참조 영상의 색인 값에 기초하여 제2 움직임 정보를 결정"하는 방법은, 제1 움직임 정보에 있는 제1 참조 영상의 색인 값 및 제1 움직임 벡터 차를 획득하고, 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 제1 참조 영상의 영상 순서 카운트를 결정하고; 제2 참조 영상의 색인 값을 획득하고, 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 제2 참조 영상의 영상 순서 카운트를 결정하고, 제2 참조 영상의 색인 값 및 제2 후보 예측된 움직임 벡터 리스트에 기초하여 제2 예측된 움직임 벡터를 결정하고 - 여기서 제2 예측된 움직임 벡터는 제2 방향에서의 현재 블록의 예측된 움직임 벡터임 -; 다음 공식:
에 따라 제2 움직임 정보에서의 제2 움직임 벡터 차를 결정하고 - 여기서 는 제2 움직임 벡터 차를 나타내고, 는 현재 영상의 영상 순서 카운트를 나타내고, 는 제1 참조 영상의 영상 순서 카운트를 나타내고, 는 제2 참조 영상의 영상 순서 카운트를 나타내고, 는 제1 움직임 벡터 차를 나타냄 -; 제2 예측된 움직임 벡터 및 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하는 것 - 여기서 제2 움직임 벡터는 제2 방향에서의 현재 블록의 움직임 벡터임 -이다.
선택적으로, 제2 후보 예측 움직임 벡터리스트는 제2 참조 영상의 색인 값에 기초하여 구축된다. 구체적으로, 제2 후보 예측된 움직임 벡터 리스트를 구축하는 과정에서, 현재 블록의 이웃하는 디코딩된 영상 블록의 움직임 벡터가 획득된다. 제2 참조 영상의 영상 순서 카운트는 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 결정된다. 이웃하는 디코딩된 영상 블록의 참조 영상의 영상 순서 카운트가 제2 참조 영상의 영상 순서 카운트와 다르면, 이웃하는 디코딩된 영상 블록의 움직임 벡터는 제2 참조 영상을 가리키도록 스케일링되어야 하며, 그런 다음 제2 후보 예측된 움직임 벡터 리스트에 추가된다.
선택적으로, 제1 참조 영상이 현재 블록의 순방향 참조 영상이고 제2 참조 영상이 현재 블록의 역방향 참조 영상인 경우, 또는 제1 참조 영상이 현재 블록의 역방향 참조 영상이고 제2 참조 영상이 현재 블록의 순방향 참조 영상인 경우, 또는 제1 참조 영상과 제2 참조 영상이 각각 현재 블록의 순방향 참조 영상인 경우, 또는 제1 참조 영상과 제2 참조 영상이 각각 현재 블록의 역방향 참조 영상인 경우, 비디오 디코더(202)는 를 직접 설정할 수 있다. 예를 들어, , , 또는 이면, 비디오 디코더(202)는 를 직접 설정한다.
선택적으로, 비디오 디코더(202)는 순방향 참조 영상 및 역방향 참조 영상에 관한 전술한 상황을 결정하는 것이 아니라, 를 직접 설정할 수 있다.
선택적으로, 비디오 디코더(202)는 순방향 참조 영상 및 역방향 참조 영상에 대한 전술한 상황을 결정하지 않고 를 직접 설정할 수 있다.
를 획득한 다음, 제2 움직임 벡터가 제2 예측된 움직임 벡터와 제2 움직임 벡터 차에 기초하여 결정될 수 있다. 이 방법에서, 제2 움직임 벡터 차의 도출은 참조 영상의 영상 순서 카운트와 관련이 없다.
결론적으로, 본 발명의 이 실시예에서, 제2 움직임 벡터가 제1 움직임 벡터에 기초하여 도출될 수 있거나, 제2 움직임 벡터 차가 제1 움직임 벡터 차에 기초하여 도출될 수 있어서, 제1 움직임 벡터와 제2 움직임 벡터를 획득할 수 있다. 움직임 벡터 예측자의 획득과 움직임 벡터의 계산은 모두 종래 기술에 속하며, 여기서는 세부 사항을 설명하지 않는다는 것을 이해해야 한다.
S403: 비디오 디코더(202)가 제1 움직임 정보 및 제2 움직임 정보에 기초하여 현재 블록의 예측 샘플을 결정한다.
선택적으로, 비디오 디코더(202)는 S402에서 제1 움직임 벡터 및 제2 움직임 벡터를 결정한다. 이러한 방식으로, 비디오 디코더(202)는 제1 움직임 벡터, 제1 참조 영상의 색인 값 및 제1 참조 영상 리스트에 기초하여 제1 참조 영상 블록을 결정하고, 제2 움직임 벡터, 제2 참조 영상의 색인 값 및 제2 참조 영상 리스트에 기초하여 제2 참조 영상 블록을 결정할 수 있다. 또한, 비디오 디코더(202)는 제1 참조 영상 블록 및 제2 참조 영상 블록에 기초하여 현재 블록의 예측 샘플을 결정한다. 다시 말해, 비디오 디코더(202)는 움직임 보상 프로세스를 완료한다.
비디오 디코더(202)가 제1 참조 영상 블록 및 제2 참조 영상 블록에 기초하여 현재 블록의 예측 샘플을 결정하기 위해 사용하는 방법에 대해서는, 임의의 기존의 방법을 참조한다. 본 출원의 이 실시예에서는 이를 특별히 한정하지 않는다.
본 출원의 이 실시예에서 제공되는 양방향 인터 예측 방법에서, 비디오 디코더(202)는 인코딩된 비트스트림으로부터 제1 움직임 정보만을 획득할 수 있다. 제1 움직임 정보를 획득한 후, 비디오 디코더(202)는 제1 움직임 정보에 기초하여 제2 움직임 정보를 계산하고, 또한 제1 움직임 정보 및 제2 움직임 정보에 기초하여 현재 블록의 예측 샘플을 결정한다. 종래 기술과 비교하면, 본 출원에서 제공되는 방법에서는 모든 방향에서의 모든 영상 블록의 움직임 정보를 더이상 송신할 필요가 없다. 이는 송신되는 움직임 정보의 양을 효과적으로 감소시키고, 송신 자원의 효과적인 이용, 송신 레이트 및 코딩 압축 효율을 향상시킨다.
도 4에 도시된 양방향 인터 예측 방법은 현재 블록에 대해 설명된다, 즉, AMVP 모드에 기초하여 현재 블록에 대해 인터 예측을 수행하는 것으로 이해될 수 있다.
본 출원에서 제공하는 양방향 인터 예측 방법은 예를 들어 4-파라미터 아핀 변환 움직임 모델, 6-파라미터 아핀 변환 움직임 모델, 또는 8-파라미터 이중 선형 움직임 모델과 같은, 비병진 움직임 모델 예측 모드에도 적용 가능하다는 것을 쉽게 이해할 수 있다. 이 시나리오에서, 현재 블록은 하나 이상의 서브블록을 포함하고, 현재 블록의 움직임 정보는 현재 블록의 모든 서브블록 각각의 움직임 정보를 포함한다. 비디오 디코더(202)가 각각의 서브블록의 움직임 정보(제1 방향에서의 움직임 정보 및 제2 방향에서의 움직임 정보)를 결정하기 위해 사용하는 방법은 현재의 움직임 정보를 결정하기 위해 비디오 디코더(202)가 사용하는 방법과 유사하다.
비병진 움직임 모델 예측 모드에서, 비디오 디코더(202)는 아래의 공식에 따라 제1 방향에서의 i번째 제어점의 움직임 벡터에 기초하여 제2 방향에서의 i번째 제어점의 움직임 벡터를 계산한다:
.
이 공식에서 는 제2 방향에서의 i번째 제어점의 움직임 벡터를 나타내고, 는 제1 방향에서의 i번째 제어점의 움직임 벡터를 나타내고, 는 현재 영상의 영상 순서 카운트를 나타내고, 는 제2 참조 영상의 영상 순서 카운트를 나타내며, 는 제1 참조 영상의 영상 순서 카운트를 나타낸다.
이에 상응하여, 비디오 디코더(202)는 아래의 공식에 따라 제1 방향에서의 i번째 제어점의 움직임 벡터 차에 기초하여 제2 방향에서의 i번째 제어점의 움직임 벡터 차를 계산한다:
.
이 공식에서 는 제2 방향에서의 i번째 제어점의 움직임 벡터 차를 나타내고, 는 제1 방향에서의 i번째 제어점의 움직임 벡터 차를 나타내고, 는 현재 영상의 영상 순서 카운트를 나타내고, 는 제2 참조 영상의 영상 순서 카운트를 나타내며, 는 제1 참조 영상의 영상 순서 카운트를 나타낸다.
비디오 디코더(202)에 대응하여, 본 출원의 이 실시예에서, 비디오 인코더(102)는 현재 블록에 대해 양방향 움직임 추정을 수행하여, 제1 방향에서의 현재 블록의 움직임 정보를 결정하고, 제1 방향에서의 현재 블록의 움직임 정보에 기초하여 제2 방향에서의 현재 블록의 움직임 정보를 계산한다. 이러한 방식으로, 비디오 인코더(102)는 제1 방향에서의 현재 블록의 움직임 정보 및 제2 방향에서의 현재 블록의 움직임 정보에 기초하여 현재 블록의 예측 영상 블록을 결정한다. 그런 다음, 비디오 인코더(102)는 현재 블록과 현재 블록의 예측 영상 블록 사이의 잔차에 대해 변환 및 양자화와 같은 작업을 수행하여 비트스트림을 생성하고, 비트스트림을 비디오 디코더(202)에 전송한다. 비트스트림은 제1 방향에서의 현재 블록의 움직임 정보를 포함한다. 또한, 비트스트림은 제1 방향에서의 움직임 정보에 기초하여 제2 방향에서의 움직임 정보를 계산하도록 지시하는 데 사용되는 지시 정보를 포함할 수 있다.
"비디오 인코더(102)가 제1 방향에서의 현재 블록의 움직임 정보에 기초하여 제2 방향에서의 현재 블록의 움직임 정보를 계산"하는 방법에 대해서는, "비디오 디코더(202)가 제1 움직임 정보에 기초하여 제2 움직임 정보를 결정하는" 전술한 방법을 참조한다, 즉 S402에서의 설명을 참조한다. 본 출원에서는 세부사항을 설명하지 않는다.
전술한 내용에 따르면, 본 발명에서의 양방향 인터 예측 방법을 얻을 수 있다. 도 5a를 참조하면, 이 방법은 다음 단계를 포함한다.
S500: 비트스트림으로부터 제1 식별자를 획득하며, 여기서 제1 식별자의 값은 제1 미리 설정된 값(1 또는 0을 포함하지만 이에 한정되지 않음)이다.
제1 식별자의 값이 제1 미리 설정된 값인 경우, 제1 식별자는 제1 참조 영상 리스트의 참조 영상 색인 i1을 제1 참조 영상 리스트의, 현재 블록에 대응하는 제1 참조 영상 색인으로 결정하고, 제2 참조 영상 리스트의 참조 영상 색인 i2를 제2 참조 영상 리스트의, 현재 블록에 대응하는 제2 참조 영상 색인으로 결정하도록 지시하는 데 사용된다.
이 경우, 디코더는 비트스트림을 파싱하지 않고 참조 영상 색인을 획득할 수 있으며, 참조 영상 색인도 비트스트림에서 송신될 필요가 없다. S500은 S501 이전에 발생할 수 있음을 이해해야 한다. 일부 예에서, S500은 S501의 필수 조건으로 사용되지 않을 수 있다. 본 발명에서는 이를 한정하지 않는다.
S501: 제1 참조 영상 리스트의 참조 영상 색인 i1을 제1 참조 영상 리스트의, 현재 블록에 대응하는 제1 참조 영상 색인으로 결정하며, 여기서 참조 영상 색인 i1에 대응하는 POC는 현재 영상의 POC보다 작고, 현재 영상의 POC에서 참조 영상 색인 i1에 대응하는 POC를 감산하여 획득되는 차는 현재 영상의 POC에서 참조 영상 색인 ix에 대응하는 POC를 감산하여 획득되는 차보다 작고, 참조 영상 색인 ix는 제1 참조 영상 리스트의 참조 영상 색인 중, 참조 영상 색인 i1 이외의 임의의 참조 영상 색인이며, 참조 영상 색인 ix에 대응하는 POC는 현재 영상의 POC보다 작다. 구체적으로, 참조 영상 색인 i1에 대응하는 POC는 제1 참조 영상 리스트에 있고 현재 영상의 POC보다 작은 모든 POC 중, 현재 영상의 POC에 가장 가까운 POC이다.
예는 다음과 같다:
예 A:
현재 블록이 위치하는 현재 영상의 POC는 8이고, 현재 영상은 두 개의 참조 영상 리스트: L0 {2, 3, 5, 6}(여기서 2, 3, 5, 6은 L0에서 참조 영상의 POC를 나타낼 수 있음) 및 L1 {9, 10, 11}(여기서 9, 10 및 11은 L1에서 참조 영상의 POC를 나타낼 수 있음)을 갖는다.
L0의 경우, 2, 3, 5, 6은 모두 8보다 작지만, 6은 2, 3, 5보다 8에 더 가깝다. L0에서의 6에 대응하는 참조 영상의 색인은 3이다(즉, 리스트에서의 네 번째 요소). 따라서 i1 = 3이다.
예 B:
현재 블록이 위치하는 현재 영상의 POC는 7이고, 현재 영상은 두 개의 참조 영상 리스트: L0 {9, 10, 12}(여기서 9, 10, 12는 L0에서 참조 영상의 POC를 나타낼 수 있음) 및 L1 {2, 4, 5}(여기서 2, 4, 5는 L1에서 참조 영상의 POC를 나타낼 수 있음)을 갖는다.
선택적으로, L0에서 7 미만의 POC가 발견되지 않는다. 이 경우, L1에서 7보다 작고 7에 가장 가까운 POC를 검색할 수 있고, L0은 7보다 크고 7에 가장 가까운 POC를 검색할 수 있다(자세한 것은 S502의 예 B 참조).
L1의 경우, 2, 4, 5는 모두 7보다 작지만, 5는 2와 4보다 7에 가깝다. L0에서의 5에 대응하는 참조 영상의 색인은 2이다(즉, 리스트에서의 세 번째 요소). 따라서 i1 = 2이다.
예 C:
현재 블록이 위치하는 현재 영상의 POC는 7이고, 현재 영상은 두 개의 참조 영상 리스트: L0 {2, 4, 5, 8}(여기서 2, 4, 5, 8은 L0에서 참조 영상의 POC를 나타낼 수 있음) 및 L1 {6, 9, 10}(여기서 6, 9, 10은 L1에서 참조 영상의 POC를 나타낼 수 있음)을 갖는다.
L0의 경우, 2, 4, 5는 모두 7보다 작지만, 5는 2와 4보다 7에 더 가깝다. L0에서의 5에 대응하는 참조 영상의 색인은 2이다(즉, 리스트의 세 번째 요소). 따라서 i1 = 2이다.
S502: 제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하며, 여기서 참조 영상 색인 i2에 대응하는 POC는 현재 영상의 POC보다 크고, 현재 영상의 POC에서 참조 영상 색인 i2에 대응하는 POC를 감산하여 획득되는 차는 현재 영상의 POC에서 참조 영상 색인 iy에 대응하는 POC를 감산하여 획득되는 차보다 크고, 참조 영상 색인 iy는 제2 참조 영상 리스트의 참조 영상 색인 중, 참조 영상 색인 i2 이외의 임의의 참조 영상 색인이며, 참조 영상 색인 iy에 대응하는 POC는 현재 영상의 POC보다 크다. 구체적으로, 참조 영상 색인 i2에 대응하는 POC는 제2 참조 영상 리스트에 있고 현재 영상의 POC보다 큰 모든 POC 중, 현재 영상의 POC에 가장 가까운 POC이다.
S501의 참조 영상 리스트를 여전히 예로서 사용한다.
예 A:
L1의 경우, 9, 10, 11은 모두 8보다 크지만, 9는 10과 11보다 8에 더 가깝다. L1에서의 9에 대응하는 참조 영상의 색인은 0이다(즉, 리스트의 첫 번째 요소). 따라서, i2 = 0이다.
예 B:
L0의 경우, 9, 10, 12는 모두 7보다 크지만, 9는 10과 12보다 7에 더 가깝다. L0에서의 9에 대응하는 참조 영상의 색인은 0이다(즉, 리스트의 첫 번째 요소). 따라서, i2 = 0이다.
예 C:
현재 블록이 위치하는 현재 영상의 POC는 7이고, 현재 영상은 두 개의 참조 영상 리스트: L0 {2, 4, 5, 8}(여기서 2, 4, 5, 8은 L0에서 참조 영상의 POC를 나타냄) 및 L1 {6, 9, 10}(여기서 6, 9, 10은 L1에서 참조 영상의 POC를 나타낼 수 있음).
L1의 경우, 9 및 10은 모두 7보다 크지 만 9는 10보다 7에 더 가깝다. L1에서 9에 대응하는 참조 영상의 색인은 1(즉, 리스트의 두 번째 요소)이다. 따라서, i2 = 1이다.
S501과 S502를 수행하는 순서는 본 출원에서 한정되지 않으며, 도면에서의 시간 시퀀스 관계는 단지 예일뿐 임을 이해해야 한다.
가능한 구체적인 구현예에서, 참조 영상 리스트에서의 요소는 참조 영상의 영상 순서 카운트(POC)를 포함하지만 이에 한정되지 않는 소정의 마크일 수 있다는 것을 이해해야 한다. 하나의 영상 순서 카운트는 하나의 구체적인 참조 영상 및/또는 참조 영상 리스트에서의 참조 영상의 위치의 색인, 즉 참조 영상 색인에 대응할 수 있다. 가능한 구체적인 구현예에서, 참조 영상 리스트에서의 요소는 영상(참조 영상)일 수 있다. 하나의 영상은 하나의 구체적인 POC 및 참조 영상 리스트에서의 영상의 위치의 색인, 즉 참조 영상 색인에 대응할 수 있다.
S501 및 S502는 현재 블록의 참조 영상 색인을 결정하는 방법을 제공함을 이해해야 한다. 구체적으로, 비트스트림을 파싱할 필요는 없지만, 일부 제약 조건에 따라 현재 블록의 참조 영상 색인이 결정된다. 본 발명에서 제공되는 제약 조건은 설명을 위한 예시일 뿐, 한정 사항은 아니다. 구체적인 구현 프로세스에서, 제약 조건의 변형이 있을 수 있거나, 더 많은 다른 제약 조건, 예를 들어 본 발명에서 총망라하지 않은, 표준 진화의 일부 제약 조건이 있을 수 있다.
L0 및 L1의 시퀀스는 한정 사항이 아님을 이해해야 한다. 즉, 제1 참조 영상 리스트와 제2 참조 영상 리스트 사이의 시퀀스 관계가 한정 사항이어서는 안됨을 이해해야 한다. 제1 참조 영상 리스트는 제1 방향에 대응하고, 제2 참조 영상 리스트는 제2 방향에 대응할 수 있다. 제1 방향과 제2 방향은 각각 순방향과 역방향, 또는 역방향과 순방향이거나, 또는 제1 방향과 제2 방향이 모두 순방향 또는 역방향일 수 있다. 방향은 또한 시간 시퀀스로 이해될 수 있으며, 본 발명에서는 이를 한정하지 않는다.
본 발명은 참조 영상(또는 색인)를 결정하기 위한 정책을 더 제공한다. L0에서 먼저 가장 가까운 순방향 POC를 가진 참조 영상(또는 참조 영상 색인 i1)를 검색 한 다음, L1에서 가장 가까운 역방향 POC를 가진 참조 영상(또는 참조 영상 색인 i2)를 검색한다. 참조 영상 중 하나를 찾을 수 없거나 참조 영상 중 어느 것도 찾을 수 없으면, L1에서 먼저 가장 가까운 순방향 POC를 가진 참조 영상(또는 참조 영상 색인 i2)를 검색한 다음, L0에서 가장 가까운 역방향 POC를 가진 참조 영상(또는 참조 영상 색인 i1)을 검색한다.
제1 참조 영상 색인과 제2 참조 영상 색인은 현재 블록의 최적 참조 블록이 위치하는 참조 영상, 즉, ref_idx_l0과 ref_idx_l1 또는 ref_idx_l1과 ref_idx_l0에 대응한다.
선택적으로, 다른 구현예의 경우, S400의 참조 영상 색인 결정 방법을 참조한다. 여기서는 자세한 내용을 다시 설명하지 않는다.
S503: 제1 참조 영상 색인 및 제2 참조 영상 색인에 기초하여 현재 블록을 예측하며, 여기서 현재 영상은 현재 블록을 포함한다.
선택적으로, 이 방법은,
제1 예측된 움직임 벡터 및 제2 예측된 움직임 벡터를 획득하는 단계;
제1 예측된 움직임 벡터 및 제1 움직임 벡터 차에 기초하여 제1 움직임 벡터를 결정하는 단계; 및
제2 예측된 움직임 벡터 및 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하는 단계를 더 포함한다.
이에 상응하여, 제1 참조 영상 색인 및 제2 참조 영상 색인에 기초하여 현재 블록을 예측하는 단계는, 제1 참조 영상 색인, 제2 참조 영상 색인, 제1 참조 영상 리스트, 제2 참조 영상 리스트, 제1 움직임 벡터 및 제2 움직임 벡터에 기초하여 현재 블록을 예측하는 단계를 포함할 수 있다. 이 단계에서, 종래 기술의 일반적인 예측 방법이 사용될 수 있다.
가능한 구현예에서, 제1 식별자가 제1 미리 설정된 값인 경우, 제1 식별자는 현재 블록의 제1 움직임 벡터 차에 기초하여 현재 블록의 제2 움직임 벡터 차를 결정하도록 지시하는 데 추가로 사용된다. 이 경우, 제2 움직임 벡터 차는 제1 움직임 벡터 차에 기초하여 도출될 수 있고, 제2 움직임 벡터 차는 비트스트림에서 송신될 필요가 없어, 비트스트림을 감소시킬 수 있다. 이 경우, 현재 블록의 제1 움직임 벡터 차가 먼저 획득될 수 있고, 현재 블록의 제2 움직임 벡터 차는 제1 움직임 벡터 차에 기초하여 아래의 식에 따라 획득된다:
.
여기서 는 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타내며, 제1 움직임 벡터 차와 제2 움직임 벡터 차 중 하나는 제1 참조 영상 리스트에 대응하는 움직임 정보에 속하고, 제1 움직임 벡터 차와 제2 움직임 벡터 차 중 다른 하나는 제2 참조 영상 리스트에 대응하는 움직임 정보에 속한다.
결론적으로, 본 출원에서 제공하는 양방향 인터 예측 방법에 따르면, 양방향 인터 예측 시에는, 모든 방향에서의 모든 영상 블록의 움직임 정보를 송신할 필요가 없고, 특정 방향의 움직임 정보만 송신하면 된다. 이는 송신되는 움직임 정보의 양을 효과적으로 감소시키고, 송신 자원의 효과적인 이용, 송신 레이트 및 코딩 압축 효율을 향상시킨다.
본 출원의 일 실시예는 양방향 인터 예측 장치를 제공한다. 양방향 인터 예측 장치는 비디오 디코더일 수 있다. 구체적으로, 양방향 인터 예측 장치는 전술한 양방향 인터 예측 방법에서 비디오 디코더(202)에 의해 수행되는 단계를 수행하도록 구성된다. 본 출원의 이 실시예에서 제공되는 양방향 인터 예측 장치는 대응하는 단계에 대한 모듈을 포함할 수 있다.
본 출원의 실시예에서, 양방향 인터 예측 장치는 전술한 방법 예에 기초하여 기능 모듈로 분할될 수 있다. 예를 들어, 각각의 기능 모듈은 대응하는 기능에 기초한 분할을 통해 획득될 수 있거나, 둘 이상의 기능이 하나의 처리 모듈에 통합할 수 있다. 통합된 모듈은 하드웨어 형태로 구현되거나 소프트웨어 기능 모듈의 형태로 구현될 수 있다. 본 출원의 실시예에서, 모듈로의 분할은 예이며, 논리적 기능 분할일 뿐이다. 실제 구현 시에는 다른 분할 방식이 있을 수 있다.
각각의 기능 모듈이 대응하는 기능에 따라 분할을 통해 획득되는 경우, 도 5b는 전술한 실시예에서의 양방향 인터 예측 장치의 가능한 개략 구성도이다. 도 5b에 도시된 바와 같이, 양방향 인터 예측 장치(5)는 획득 유닛(50) 및 결정 유닛(51)을 포함한다.
획득 유닛(50)은 전술한 실시예에서의 S400, S401 등, 및/또는 본 명세서에서 설명된 기술의 다른 프로세스의 수행 시에 양방향 인터 예측 장치를 지원하도록 구성된다.
결정 유닛(51)은 전술한 실시예에서의 S402, S403 등, 및/또는 본 명세서에서 설명된 기술의 다른 프로세스의 수행 시에 양방향 인터 예측 장치를 지원하도록 구성된다.
전술한 방법 실시예의 단계의 모든 관련 내용은 대응하는 기능 모듈의 기능 설명에 인용될 수 있으며, 여기서는 세부 사항을 다시 설명하지 않는다.
물론, 본 출원의 이 실시예에서 제공되는 양방향 인터 예측 장치는 전술한 모듈을 포함하지만 이에 한정되지 않는다. 예를 들어, 양방향 인터 예측 장치는 저장 유닛(52)을 더 포함할 수 있다.
저장 유닛(52)은 양방향 인터 예측 장치의 프로그램 코드 및 데이터를 저장하도록 구성될 수 있다.
도 5a의 방법에 대응하여, 선택적인 예에서, 본 발명은 양방향 인터 예측 장치(5000)를 더 제공할 수 있다. 도 5c를 참조하면, 이 양방향 인터 예측 장치는 결정 유닛(5002) 및 인터 예측 처리 유닛(5003)을 포함하고,
결정 유닛(5002)은 제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하도록 구성되고 - 여기서 참조 영상 색인 i1에 대응하는 POC는 현재 영상의 POC보다 작고, 현재 영상의 POC에서 참조 영상 색인 i1에 대응하는 POC를 감산하여 획득되는 차는 현재 영상의 POC에서 참조 영상 색인 ix에 대응하는 POC를 감산하여 획득되는 차보다 작고, 참조 영상 색인 ix는 제1 참조 영상 리스트의 참조 영상 색인 중, 참조 영상 색인 i1 이외의 임의의 참조 영상 색인이며, 참조 영상 색인 ix에 대응하는 POC는 현재 영상의 POC보다 작음 -;
결정 유닛(5002)은 추가로, 제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 구성되며 - 여기서 참조 영상 색인 i2에 대응하는 POC는 현재 영상의 POC보다 크고, 현재 영상의 POC에서 참조 영상 색인 i2에 대응하는 POC를 감산하여 획득되는 차는 현재 영상의 POC에서 참조 영상 색인 iy에 대응하는 POC를 감산하여 획득되는 차보다 크고, 참조 영상 색인 iy는 제2 참조 영상 리스트의 참조 영상 색인 중, 참조 영상 색인 i2 이외의 임의의 참조 영상 색인이며, 참조 영상 색인 iy에 대응하는 POC는 현재 영상의 POC보다 큼 -;
인터 예측 처리 유닛(5003)은 제1 참조 영상 색인 및 제2 참조 영상 색인에 기초하여 현재 블록을 예측하도록 구성되며, 여기서 현재 영상은 현재 블록을 포함한다.
선택적으로, 이 양방향 인터 예측 장치는, 제1 식별자를 획득하도록 구성된 획득 유닛(5001)을 더 포함하고, 여기서 제1 식별자의 값은 제1 미리 설정된 값이며, 제1 식별자의 값이 제1 미리 설정된 값인 경우, 제1 식별자는 제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하고, 제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 지시하는 데 사용된다.
선택적으로, 제1 식별자가 제1 미리 설정된 값인 경우, 제1 식별자는 현재 블록의 제1 움직임 벡터 차에 기초하여 현재 블록의 제2 움직임 벡터 차를 결정하도록 지시하는 데 추가로 사용되고; 획득 유닛은 추가로, 현재 블록의 제1 움직임 벡터 차를 획득하도록 구성되고; 결정 유닛은 추가로 하기 공식에 따라 제1 움직임 벡처 차에 기초하여 현재 블록의 제2 움직임 벡터 차를 획득하도록 구성된다:
.
여기서 는 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타내며, 제1 움직임 벡터 차와 제2 움직임 벡터 차 중 하나는 제1 참조 영상 리스트에 대응하는 움직임 정보에 속하고, 제1 움직임 벡터 차와 제2 움직임 벡터 차 중 다른 하나는 제2 참조 영상 리스트에 대응하는 움직임 정보에 속한다.
선택적으로, 획득 유닛(5001)은 구체적으로, 제1 예측된 움직임 벡터 및 제2 예측된 움직임 벡터를 획득하도록 구성되고, 결정 유닛(5002)은 추가로, 제1 예측된 움직임 벡터 및 제1 움직임 벡터 차에 기초하여 제1 움직임 벡터를 결정하고, 제2 예측된 움직임 벡터 및 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하도록 구성되고; 인터 예측 처리 유닛(5003)은 구체적으로, 제1 참조 영상 색인, 제2 참조 영상 색인, 제1 참조 영상 리스트, 제2 참조 영상 리스트, 제1 움직임 벡터 및 제2 움직임 벡터에 기초하여 현재 블록을 예측하도록 구성된다.
획득 유닛(5001)은 전술한 예에서 S500에서 언급된 관련 방법 및 동등한 대체를 위해 사용될 수 있는 방법을 수행하도록 구성될 수 있다. 결정 유닛(5002)은 전술한 예의 S501 및/또는 S502에서 언급된 관련 방법 및 동등한 대체에 사용될 수 있는 방법을 수행하도록 구성될 수 있다. 획득 유닛(5001), 결정 유닛(5002) 및 인터 예측 처리 유닛(5003)은 전술한 예에서 S503에서 언급된 관련 방법 및 동등한 대체에 사용될 수 있는 방법을 수행하도록 구성될 수 있다. 획득 유닛(5001), 결정 부(5002) 및 인터 예측 유닛(5003)은 프로세서에 의해 메모리에서 대응하는 프로그램 명령어를 호출함으로써 구현될 수 있다.
전술한 구체적인 방법 예, 실시예에서의 기술적 특징의 해석 및 설명, 및 여러 구현예의 확장은 또한 장치에서 대응하는 방법 실행에 적용될 수 있으며, 세부 사항은 장치 실시예에서 설명되지 않음을 이해해야 한다.
통합된 유닛을 사용하는 경우, 도 6a는 본 출원의 일 실시예에 따른 양방향 인터 예측 장치의 개략 구성도이다. 도 6a에서, 양방향 인터 예측 장치(6)는 처리 모듈(60) 및 통신 모듈(61)을 포함한다. 처리 모듈(60)은 양방향 인터 예측 장치의 동작을 제어하고 관리하도록 구성되며, 예를 들어 획득 유닛(50) 및 결정 유닛(51)에 의해 수행되는 방법 또는 단계와, 획득 유닛(5001), 결정 유닛(5002) 및 인터 예측 처리 유닛(5003)에 의해 수행되는 방법 또는 단계, 및/또는 본 명세서에서 기재된 기술의 다른 프로세스를 수행한다. 통신 모듈(61)은 양방향 인터 예측 장치와 다른 장치 간의 상호작용을 지원하도록 구성된다. 도 6a에 도시된 바와 같이, 양방향 인터 예측 장치는 저장 모듈(62)을 더 포함할 수 있다. 저장 모듈(62)은 양방향 인터 예측 장치의 프로그램 코드 및 데이터, 예를 들어 저장 유닛(52)에 의해 저장되는 컨텐츠를 저장하도록 구성된다.
처리 모듈(60)은 프로세서 또는 제어기일 수 있으며, 예를 들어 중앙 처리 유닛(Central Processing Unit, CPU), 범용 프로세서, 디지털 신호 프로세서(Digital Signal Processor, DSP), ASIC, FPGA 또는 다른 프로그래밍 가능한 논리 소자, 트랜지스터 논리 소자, 하드웨어 구성요소 또는 이들의 조합일 수 있다. 프로세서 또는 제어기는 본 출원에 개시된 내용을 참조하여 설명된 다양한 예의 논리 블록, 모듈 및 회로를 구현하거나 실행할 수 있다. 프로세서는 대안으로 컴퓨팅 기능을 구현하는 프로세서의 조합, 예를 들어 하나 이상의 마이크로프로세서의 조합 또는 DSP와 마이크로프로세서의 조합일 수 있다. 통신 모듈(61)은 송수신기, RF 회로, 통신 인터페이스 등일 수 있다. 저장 모듈(62)은 메모리일 수 있다.
전술한 방법 실시예에서의 시나리오의 모든 관련 내용은 대응하는 기능 모듈의 기능 설명에 인용될 수 있다. 여기서는 세부 사항을 다시 설명하지 않는다.
양방향 인터 예측 장치(5)와 양방향 인터 예측 장치(6)는 모두 전술한 방법(도 4에 도시된 양방향 인터 예측 방법과 같지만 이에 한정되지 않음)을 수행할 수 있다. 양방향 인터 예측 장치(5) 및 양방향 인터 예측 장치(6)는 구체적으로 비디오 디코딩 기기 또는 비디오 코딩 기능을 갖는 다른 장치일 수 있다. 양방향 인터 예측 장치(5) 및 양방향 인터 예측 장치(6)는 디코딩 프로세스에서 영상 예측을 수행하도록 구성될 수 있다.
본 출원은 단말기를 제공한다. 단말기는 하나 이상의 프로세서, 메모리 및 통신 인터페이스를 포함한다. 메모리 및 통신 인터페이스는 하나 이상의 프로세서에 연결된다. 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성된다. 컴퓨터 프로그램 코드는 명령어를 포함한다. 하나 이상의 프로세서가 명령어를 실행할 때, 단말기는 본 출원의 실시예에서의 양방향 인터 예측 방법을 수행한다.
여기서 단말기는 영상 표시 기기, 스마트폰, 휴대형 컴퓨터, 또는 비디오를 처리하거나 재생할 수 있는 다른 기기일 수 있다.
본 출원은 또한 비휘발성 저장 매체 및 중앙 처리 유닛을 포함하는 비디오 디코더를 제공한다. 비휘발성 저장 매체는 실행 가능한 프로그램을 저장한다. 중앙 처리 유닛은 비휘발성 저장 매체에 연결되고, 실행 가능한 프로그램을 실행하여 본 출원의 실시예에서의 양방향 인터 예측 방법을 수행한다.
본 출원은 디코더를 더 제공한다. 디코더는 본 출원의 실시예에서의 양방향 인터 예측 장치(양방향 인터 예측 장치(5) 또는 양방향 인터 예측 장치(6)) 및 재구축 모듈을 포함한다. 재구축 모듈은 양방향 인터 예측 장치에 의해 획득되는 예측 샘플에 기초하여 현재 블록의 재구축된 샘플 값을 결정하도록 구성된다.
본 출원의 다른 실시예는 컴퓨터로 판독 가능한 저장 매체를 더 제공한다. 컴퓨터로 판독 가능한 저장 매체는 하나 이상의 프로그램 코드를 포함한다. 하나 이상의 프로그램은 명령어를 포함한다. 단말기의 프로세서가 프로그램 코드를 실행할 때, 단말기는 전술한 방법 예(도 4 또는 도 5a와 같은 것이지만 이에 한정되지 않음)에 도시된 양방향 인터 예측 방법을 수행한다.
본 출원의 다른 실시예에서, 컴퓨터 프로그램 제품이 더 제공된다. 컴퓨터 프로그램 제품은 컴퓨터로 실행 가능한 명령어를 포함한다. 컴퓨터로 실행 가능한 명령어는 컴퓨터로 판독 가능한 저장 매체에 저장된다. 단말기의 하나 이상의 프로세서는 컴퓨터로 판독 가능한 저장 매체로부터 컴퓨터로 실행 가능한 명령어를 판독할 수 있다. 하나 이상의 프로세서는 컴퓨터로 실행 가능한 명령어를 실행하여, 단말기가 전술한 방법(도 4 또는 도 5a에 도시된 양방향 인터 예측 방법과 같은 것이지만 이에 한정되지 않음), 및 비디오 디코더(202)에 의해 구현될 수 있는 방법 또는 단계를 수행할 수 있게 한다.
도 6b는 도 1의 근원지 장치(10) 및 목적지 장치(20) 중 하나 또는 둘로서 사용될 수 있는 장치의 단순화된 블록도이다. 예시적인 실시예에 따른 장치(555)는본 출원의 기술을 구현할 수 있다. 다시 말해, 도 6b는 본 출원의 일 실시예에 따른 인코딩 기기 또는 디코딩 기기(간단히 코딩 기기(555)라고 함)의 구현예의 개략 블록도이다. 코딩 기기(555)는 프로세서(510), 메모리(530) 및 버스 시스템(550)을 포함할 수 있다. 프로세서와 메모리는 버스 시스템을 통해 연결된다. 메모리는 명령어를 저장하도록 구성된다. 프로세서는 메모리에 저장된 명령어를 실행하도록 구성된다. 코딩 기기의 메모리는 프로그램 코드를 저장하고, 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 본 출원에 설명된 다양한 비디오 영상 인코딩 또는 디코딩 방법, 특히 다양한 인터 예측 모드 또는 인트라 예측 모드에서의 비디오 인코딩 또는 디코딩 방법을 수행할 수 있다. 반복을 피하기 위해 여기서는 세부 사항을 설명하지 않는다.
이하에서는 전술한 실시예에서 나타낸 인코딩 방법 및 디코딩 방법의 적용 과, 인코딩 방법 및 디코딩 방법을 사용하는 시스템에 대해 설명한다.
도 7은 콘텐츠 배포 서비스를 구현하는 콘텐츠 공급 시스템(3100)의 블록도이다. 콘텐츠 공급 시스템(3100)은 캡처 기기(3102), 단말 기기(3106) 및 선택적으로 디스플레이(3126)를 포함한다. 캡처 기기(3102)는 통신 링크(3104)를 통해 단말 기기(3106)와 통신한다. 통신 링크는 통신 채널(13)을 포함할 수 있다. 링크(3104)는 Wi-Fi, 이더넷, 유선 연결, 무선 (3G/4G/5G) 연결, USB 또는 이들의 임의 유형의 조합을 포함하지만 이에 한정되는 것은 아니다.
캡처 기기(3102)는 데이터를 생성하고, 전술한 실시예에서 나타낸 인코딩 방법에 따라 데이터를 인코딩할 수 있다. 대안으로, 캡처 기기(3102)는 스트리밍 서버(도면에 도시되지 않음)에 데이터를 배포할 수 있고, 서버는 데이터를 인코딩하고 인코딩된 데이터를 단말 기기(3106)에 송신한다. 캡처 기기(3102)는 카메라, 스마트폰 또는 태블릿 컴퓨터, 컴퓨터 또는 노트북 컴퓨터, 비디오 회의 시스템, PDA, 차량 장착형 기기 또는 이들의 조합을 포함하지만 이에 한정되는 아니다. 예를 들어, 캡처 기기(3102)는 전술한 근원지 장치(10)를 포함할 수 있다. 데이터가 비디오를 포함하는 경우, 캡처 기기(3102)에 포함된 비디오 인코더(102)가 실제로 비디오를 인코딩할 수 있다. 데이터가 오디오(즉, 음성)를 포함하는 경우, 캡처 기기(3102)에 포함된 오디오 인코더가 실제로 오디오를 인코딩할 수 있다. 일부 실제 시나리오에서, 캡처 기기(3102)는 인코딩된 비디오 데이터와 인코딩된 오디오 데이터를 다중화함으로써 인코딩된 비디오 데이터 및 인코딩된 오디오 데이터를 배포한다. 다른 실제 시나리오에서, 예를 들어 비디오 회의 시스템에서, 인코딩된 오디오 데이터와 인코딩된 비디오 데이터는 다중화되지 않는다. 캡처 기기(3102)는 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터를 단말 기기(3106)에 개별적으로 배포한다.
콘텐츠 공급 시스템(3100)에서, 단말 기기(3106)는 인코딩된 데이터를 수신하여 재생한다. 단말 기기(3106)는 데이터 수신 및 복구 능력이 있는 기기, 예를 들어 스마트폰 또는 태블릿 컴퓨터(3108), 컴퓨터 또는 노트북 컴퓨터(3110), 네트워크 비디오 레코더(network video recorder, NVR)/디지털 비디오 레코더(digital video recorder, DVR)(3112), TV(3114), 셋톱 박스(set top box, STB)(3116), 비디오 회의 시스템(3118), 비디오 감시 시스템(3120), 개인 휴대 정보 단말기(personal digital assistant, PDA)(3122), 차량 장착형 기기(3124), 또는 인코딩된 데이터를 디코딩할 수 있는 전술한 기기의 임의의 조합일 수 있다. 예를 들어, 단말 기기(3106)는 전술한 목적지 장치(20)를 포함할 수 있다. 인코딩된 데이터가 비디오를 포함하는 경우, 단말 기기에 포함된 비디오 디코더(202)가 비디오 디코딩의 수행을 우선적으로 처리한다. 인코딩된 데이터가 오디오를 포함하는 경우, 단말 기기에 포함된 오디오 디코더가 오디오 디코딩의 수행을 우선적으로 처리한다.
디스플레이를 구비한 단말 기기, 예를 들어 스마트폰 또는 태블릿 컴퓨터(3108), 컴퓨터 또는 노트북 컴퓨터(3110), 네트워크 비디오 레코더(network video recorder, NVR)/디지털 비디오 레코더(digital video recorder, DVR)(3112), TV(3114), 개인 휴대 정보 단말기(personal digital assistant, PDA)(3122), 또는 차량 장착형 기기(3124)의 경우, 단말 기기가 디코딩된 데이터를 단말 기기의 디스플레이에 공급할 수 있다. 디스플레이가 없는 단말 기기, 예를 들어 STB(3116), 비디오 회의 시스템(3118) 또는 비디오 감시 시스템(3120)의 경우, 외부 디스플레이(3126)가 단말 기기에 연결되어 디코딩된 데이터를 수신하고 표시한다.
시스템 내의 기기 각각이 인코딩 또는 디코딩을 수행하는 경우, 전술한 실시예에 도시된 영상 인코딩 기기 또는 영상 디코딩 기기가 사용될 수 있다.
도 8은 단말 기기(3106)의 예시적인 구성의 도면이다. 단말 기기(3106)가 캡처 기기(3102)로부터 스트림을 수신한 후, 프로토콜 처리 유닛(3202)은 스트림의 전송 프로토콜을 분석한다. 프로토콜로는 실시간 스트리밍 프로토콜(Real-Time Streaming Protocol, RTSP), 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol, HTTP), HTTP 라이브 스트리밍 프로토콜(HTTP Live streaming protocol, HLS, HLS), MPEG-DASH, 실시간 전송 프로토콜(Real-time Transport protocol, RTP), 실시간 메시징 프로토콜(Real-Time Messaging Protocol, RTMP) 또는 이들의 조합을 .
스트림을 처리한 후, 프로토콜 처리 유닛(3202)은 스트림 파일을 생성한다. 이 파일은 역다중화 유닛(3204)에 출력된다. 역다중화 유닛(3204)은 다중화된 데이터를 인코딩된 오디오 데이터 및 인코딩된 비디오 데이터로 나눌 수 있다. 전술한 바와 같이, 다른 실제 시나리오, 예를 들어, 비디오 회의 시스템에서, 인코딩된 오디오 데이터와 인코딩된 비디오 데이터는 다중화되지 않는다. 이 경우, 인코딩된 데이터는 역다중화 유닛(3204)을 통해 송신되지 않고 비디오 디코더(3206) 및 오디오 디코더(3208)에 송신된다.
비디오 기본 스트림(elementary stream, ES), 오디오 ES 및 선택적 자막을 생성하기 위해 역다중화가 수행된다. 비디오 디코더(3206)는 전술한 실시예에서 설명된 비디오 디코더(202)를 포함하고, 전술한 실시예에 도시된 디코딩 방법에 따라 비디오 ES를 디코딩하여 비디오 영상을 생성하고, 그러한 데이터를 동기화 유닛(3212)에 공급한다. 오디오 디코더(3208)는 오디오 ES를 디코딩하여 오디오 영상을 생성하고, 그러한 데이터를 동기화 유닛(3212)에 공급한다. 대안으로, 비디오 영상이 동기화 유닛(3212)에 공급되기 전에 비디오 영상은 버퍼(도 8에 도시되지 않음)에 저장될 수 있다. 유사하게, 오디오 영상이 동기화 유닛(3212)에 공급되기 전에 오디오 영상은 버퍼(도 8에 도시되지 않음)에 저장될 수 있다.
동기화 유닛(3212)은 비디오 영상과 오디오 영상을 동기화하고, 비디오/오디오 디스플레이(3214)에 비디오/오디오를 제공한다. 예를 들어, 동기화 유닛(3212)은 비디오 정보 및 오디오 정보의 제시를 동기화한다. 정보는 인코딩된 오디오 및 시각 데이터의 제시와 관련된 타임스탬프와 데이터 스트림의 송신과 관련된 타임스탬프를 사용하여 신택스적으로 인코딩될 수 있다.
스트림에 자막이 포함되어 있는 경우, 자막 디코더(3210)는 자막을 디코딩하여 자막을 비디오 영상 및 오디오 영상과 동기화하고, 비디오/오디오/자막 디스플레이(3216)에 비디오/오디오/자막을 제공한다.
본 발명은 전술한 시스템에 한정되지 않으며, 전술한 실시예에서의 영상 인코딩 기기 또는 영상 디코딩 기기는 다른 시스템, 예를 들어 자동차 시스템에 결합될 수 있다.
전술한 실시예의 전부 또는 일부는 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 실시예의 구현에 소프트웨어 프로그램이 사용되는 경우, 실시예는 컴퓨터 프로그램 제품의 형태로 전적으로 또는 부분적으로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령어를 포함한다. 컴퓨터 프로그램 명령어가 컴퓨터에 로드되어 실행될 때, 본 출원의 실시예에 따른 프로시저 또는 기능이 전부 또는 부분적으로 생성된다.
컴퓨터는 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크 또는 다른 프로그램 가능 장치일 수 있다. 컴퓨터 명령어는 컴퓨터로 판독 가능한 저장 매체에 저장될 수 있거나 하나의 컴퓨터로 판독 가능한 저장 매체에서 다른 컴퓨터로 판독 가능한 저장 매체로 전송될 수 있다. 예를 들어, 컴퓨터 명령어는 하나의 웹 사이트, 컴퓨터, 서버 또는 데이터 센터에서 다른 웹 사이트, 컴퓨터, 서버 또는 데이터 센터로 유선(예: 동축 케이블, 광섬유 또는 디지털 가입자 회선(digital subscriber line, DSL)) 또는 무선(예: 적외선, 라디오 또는 마이크로파) 방식으로 송신될 수 있다. 컴퓨터로 판독 가능한 저장 매체는 컴퓨터, 또는 하나 이상의 사용 가능한 매체를 통합한 서버 또는 데이터 센터와 같은 데이터 저장 기기에 의해 액세스 가능한 임의의 사용 가능한 매체일 수 있다. 사용 가능한 매체는 자기 매체(예: 플로피 디스크, 하드 디스크 또는 자기 테이프), 광학 매체(예: DVD), 반도체 매체(예: 솔리드 스테이트 드라이브(Solid-State Drive, SSD) 등일 수 있다.
구현예에 관한 전술한 설명은, 편리하고 간단한 설명을 위해, 전술한 기능 모듈로만 분할하는 것이 예시를 위한 예로서 사용됨을 당업자가 명확하게 이해할 수 있도록 해준다. 실제 적용 시에, 전술한 기능들은 요건에 기초하여 구현을 위해 서로 다른 기능 모듈에 할당될 수 있다. 즉, 장치의 내부 구성은 전술한 기능의 전부 또는 일부를 구현하기 위한 서로 다른 기능 모듈로 분할된다.
본 출원에서 제공되는 여러 실시예에서, 개시된 장치 및 방법은 다른 방식으로 구현될 수 있음을 이해해야 한다. 예를 들어, 설명된 장치 실시예는 단지 예일 뿐이다. 예를 들어, 모듈 또는 유닛으로의 분할은 단지 논리적 기능 분할일 뿐이다. 실제 구현 시에는 다른 분할 방식이 있을 수 있다. 예를 들어, 복수의 유닛 또는 구성요소가 결합될 수 있거나 다른 장치에 통합될 수 있거나, 일부 특징이 무시 되거나 수행되지 않을 수 있다. 또한, 표시되거나 논의된 상호 결합 또는 직접 결합 또는 통신 연결은 일부 인터페이스를 사용하여 구현될 수 있다. 장치 또는 유닛 사이의 간접 결합 또는 통신 연결은 전자적 형태, 기계적 형태 또는 다른 형태로 구현될 수 있다.
개별 구성요소로 설명된 유닛은 물리적으로 분리될 수도 있고 그렇지 않을 수도 있으며, 유닛으로 표시된 구성요소는 하나 이상의 물리 유닛일 수 있다, 즉, 한 장소에 위치할 수도 있고, 복수의 다른 장소에 분산될 수도 있다. 유닛들 중 일부 또는 전부는 실시예의 방안의 목적을 달성하기 위해 실제 요건에 기초하여 선택될 수 있다.
또한, 본 출원의 실시예에서 기능 유닛은 하나의 처리 유닛으로 통합될 수 있거나, 각각의 유닛은 물리적으로 단독으로 존재할 수 있거나, 둘 이상의 유닛이 하나의 유닛으로 통합될 수 있다. 통합된 유닛은 하드웨어 형태로 구현될 수도 있고 소프트웨어 기능 유닛의 형태로 구현될 수도 있다.
통합된 유닛이 소프트웨어 기능 유닛의 형태로 구현되어 독립적인 제품으로 판매 또는 사용되는 경우, 통합된 유닛은 판독 가능한 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본질적으로 본 출원의 실시예에서의 기술적 방안, 또는 종래 기술에 기여하는 부분, 또는 기술적 방안의 전부 또는 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 저장 매체에 저장되며, 본 출원의 실시예에 설명된 방법의 단계의 전부 또는 일부를 수행하도록 기기(단일 칩 마이크로컴퓨터, 칩 등일 수 있음) 또는 프로세서(processor)에 명령하기 위한 여러 명령어를 포함한다. 전술한 저장 매체는 USB 플래시 드라이브, 탈착 가능한 하드 디스크, 판독 전용 메모리(Read-Only Memory, ROM), 랜덤 액세스 메모리(Random Access Memory, RAM), 자기 디스크 또는 광 디스크와 같은, 프로그램 코드를 저장할 수 있는 모든 매체를 포함한다.
이상의 설명은 본 출원의 구체적인 구현예일 뿐이며, 본 출원의 보호 범위를 한정하려는 의도는 아니다. 본 출원에 개시된 기술적 범위 내의 모든 변형 또는 대체는 본 출원의 보호 범위에 속합니다. 따라서 본 출원의 보호 범위는 청구 범위의 보호 범위에 따른다.

Claims (15)

  1. 양방향 인터 예측 방법으로서,
    제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하는 단계 - 상기 참조 영상 색인 i1에 대응하는 영상 순서 카운트(picture order count, POC)는 현재 영상의 POC보다 작고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i1에 대응하는 POC를 감산하여 획득되는 차는 상기 현재 영상의 POC에서 참조 영상 색인 ix에 대응하는 POC를 감산하여 획득되는 차보다 작고, 상기 참조 영상 색인 ix는 상기 제1 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i1 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 ix에 대응하는 POC는 상기 현재 영상의 POC보다 작음 -;
    제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하는 단계 - 상기 참조 영상 색인 i2에 대응하는 POC는 상기 현재 영상의 POC보다 크고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i2에 대응하는 POC를 감산하여 획득되는 차는 상기 현재 영상의 POC에서 참조 영상 색인 iy에 대응하는 POC를 감산하여 획득되는 차보다 크고, 상기 참조 영상 색인 iy는 상기 제2 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i2 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 iy에 대응하는 POC는 상기 현재 영상의 POC보다 큼 -; 및
    상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인에 기초하여 상기 현재 블록을 예측하는 단계 - 상기 현재 영상은 상기 현재 블록을 포함함 -
    를 포함하고,
    상기 제1 참조 영상 리스트가 참조 영상 색인 i1에 대해 검색되고, 상기 제2 참조 영상 리스트가 참조 영상 색인 i2에 대해 검색되며, 상기 참조 영상 색인들 중 하나가 발견되지 않거나 상기 참조 영상 색인들 중 어떤 것도 발견되지 않으면, 상기 제2 참조 영상 리스트가 참조 영상 색인 i1에 대해 검색되고 상기 제1 참조 영상 리스트가 참조 영상 색인 i2에 대해 검색되는, 양방향 인터 예측 방법.
  2. 제1항에 있어서,
    상기 양방향 인터 예측 방법은,
    제1 식별자를 획득하는 단계 - 상기 제1 식별자의 값은 제1 미리 설정된 값임 -를 더 포함하고,
    상기 제1 식별자의 값이 상기 제1 미리 설정된 값인 경우, 상기 제1 식별자는 상기 제1 참조 영상 리스트의 참조 영상 색인 i1을 상기 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하고, 상기 제2 참조 영상 리스트의 참조 영상 색인 i2를 상기 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 지시하는 데 사용되는, 양방향 인터 예측 방법.
  3. 제2항에 있어서,
    상기 제1 식별자가 제1 미리 설정된 값인 경우, 상기 제1 식별자는 상기 현재 블록의 제1 움직임 벡터 차(motion vector difference)에 기초하여 상기 현재 블록의 제2 움직임 벡터 차를 결정하도록 지시하는 데 추가로 사용되고, 상기 양방향 인터 예측 방법은,
    상기 현재 블록의 제1 움직임 벡터 차를 획득하는 단계; 및
    공식: - 여기서 는 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타냄 -에 따라 상기 제1 움직임 벡터 차에 기초하여 상기 현재 블록의 제2 움직임 벡터 차를 획득하는 단계를 더 포함하며, 상기 제1 움직임 벡터 차와 상기 제2 움직임 벡터 차 중 하나는 상기 제1 참조 영상 리스트에 대응하고, 상기 제1 움직임 벡터 차와 상기 제2 움직임 벡터 차 중 다른 하나는 상기 제2 움직임 벡터 차에 대응하는, 양방향 인터 예측 방법.
  4. 제3항에 있어서,
    상기 양방향 인터 예측 방법은,
    제1 예측된 움직임 벡터 및 제2 예측된 움직임 벡터를 획득하는 단계;
    상기 제1 예측된 움직임 벡터 및 상기 제1 움직임 벡터 차에 기초하여 제1 움직임 벡터를 결정하는 단계; 및
    상기 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하는 단계를 더 포함하고,
    상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인에 기초하여 상기 현재 블록을 예측하는 단계는,
    상기 제1 참조 영상 색인, 상기 제2 참조 영상 색인, 상기 제1 참조 영상 리스트, 상기 제2 참조 영상 리스트, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 기초하여 상기 현재 블록을 예측하는 단계를 포함하는, 양방향 인터 예측 방법.
  5. 양방향 인터 예측 장치로서,
    제1 참조 영상 리스트의 참조 영상 색인 i1을 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하고 - 상기 참조 영상 색인 i1에 대응하는 POC는 현재 영상의 POC보다 작고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i1에 대응하는 POC를 감산하여 획득되는 차는 상기 현재 영상의 POC에서 참조 영상 색인 ix에 대응하는 POC를 감산하여 획득되는 차보다 작고, 상기 참조 영상 색인 ix는 상기 제1 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i1 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 ix에 대응하는 POC는 상기 현재 영상의 POC보다 작음 -;
    제2 참조 영상 리스트의 참조 영상 색인 i2를 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 구성된 결정 유닛 - 상기 참조 영상 색인 i2에 대응하는 POC는 상기 현재 영상의 POC보다 크고, 상기 현재 영상의 POC에서 상기 참조 영상 색인 i2에 대응하는 POC를 감산하여 획득되는 차는 상기 현재 영상의 POC에서 참조 영상 색인 iy에 대응하는 POC를 감산하여 획득되는 차보다 크고, 상기 참조 영상 색인 iy는 상기 제2 참조 영상 리스트의 참조 영상 색인 중, 상기 참조 영상 색인 i2 이외의 임의의 참조 영상 색인이며, 상기 참조 영상 색인 iy에 대응하는 POC는 상기 현재 영상의 POC보다 큼 -; 및
    상기 제1 참조 영상 색인 및 상기 제2 참조 영상 색인에 기초하여 상기 현재 블록을 예측하도록 구성된 인터 예측 처리 유닛 - 상기 현재 영상은 상기 현재 블록을 포함함 -
    을 포함하고,
    상기 제1 참조 영상 리스트가 참조 영상 색인 i1에 대해 검색되고, 상기 제2 참조 영상 리스트가 참조 영상 색인 i2에 대해 검색되며, 상기 참조 영상 색인들 중 하나가 발견되지 않거나 상기 참조 영상 색인들 중 어떤 것도 발견되지 않으면, 상기 제2 참조 영상 리스트가 참조 영상 색인 i1에 대해 검색되고 상기 제1 참조 영상 리스트가 참조 영상 색인 i2에 대해 검색되는, 양방향 인터 예측 장치.
  6. 제5항에 있어서,
    상기 양방향 인터 예측 장치는,
    제1 식별자를 획득하도록 구성된 획득 유닛을 더 포함하고,
    상기 제1 식별자의 값은 제1 미리 설정된 값이며, 상기 제1 식별자의 값이 상기 제1 미리 설정된 값인 경우, 상기 제1 식별자는 상기 제1 참조 영상 리스트의 참조 영상 색인 i1을 상기 현재 블록에 대응하는, 상기 제1 참조 영상 리스트의 제1 참조 영상 색인으로 결정하고, 상기 제2 참조 영상 리스트의 참조 영상 색인 i2를 상기 현재 블록에 대응하는, 상기 제2 참조 영상 리스트의 제2 참조 영상 색인으로 결정하도록 지시하는 데 사용되는, 양방향 인터 예측 장치.
  7. 제6항에 있어서,
    상기 제1 식별자가 제1 미리 설정된 값인 경우, 상기 제1 식별자는 상기 현재 블록의 제1 움직임 벡터 차에 기초하여 상기 현재 블록의 제2 움직임 벡터 차를 결정하도록 지시하는 데 추가로 사용되고,
    상기 획득 유닛은 추가로, 상기 현재 블록의 제1 움직임 벡터 차를 획득하도록 구성되고;
    상기 결정 유닛은 추가로, 하기 공식:

    에 따라 상기 제1 움직임 벡터 차에 기초하여 상기 현재 블록의 제2 움직임 벡터 차를 획득하도록 구성되며, 여기서 는 제2 움직임 벡터 차를 나타내고, 는 제1 움직임 벡터 차를 나타내며, 상기 제1 움직임 벡터 차와 상기 제2 움직임 벡터 차 중 하나는 상기 제1 참조 영상 리스트에 대응하고, 상기 제1 움직임 벡터 차와 상기 제2 움직임 벡터 차 중 다른 하나는 상기 제2 움직임 벡터 차에 대응하는, 양방향 인터 예측 장치.
  8. 제7항에 있어서,
    상기 획득 유닛은 추가로,
    제1 예측된 움직임 벡터 및 제2 예측된 움직임 벡터를 획득하도록 구성되고,
    상기 결정 유닛은 추가로 구체적으로,
    상기 제1 예측된 움직임 벡터 및 상기 제1 움직임 벡터 차에 기초하여 제1 움직임 벡터를 결정하고;
    상기 제2 예측된 움직임 벡터 및 상기 제2 움직임 벡터 차에 기초하여 제2 움직임 벡터를 결정하도록 구성되고,
    상기 인터 예측 처리 유닛은 구체적으로, 상기 제1 참조 영상 색인, 상기 제2 참조 영상 색인, 상기 제1 참조 영상 리스트, 상기 제2 참조 영상 리스트, 상기 제1 움직임 벡터 및 상기 제2 움직임 벡터에 기초하여 상기 현재 블록을 예측하도록 구성되는, 양방향 인터 예측 장치.
  9. 비디오 인코딩 기기로서,
    제1항 내지 제4항 중 어느 한 항에 따른 방법을 수행하도록 구성된 인터 예측 모듈; 및
    상기 인터 예측 모듈에 의해 획득되는 예측된 샘플 값에 기초하여 현재 블록을 재구축하도록 구성된 재구축 모듈
    을 포함하는 비디오 인코딩 기기.
  10. 비디오 디코딩 기기로서,
    제1항 내지 제4항 중 어느 한 항에 따른 방법을 수행하도록 구성된 인터 예측 모듈; 및
    상기 인터 예측 모듈에 의해 획득되는 예측된 샘플 값에 기초하여 현재 블록을 재구축하도록 구성된 재구축 모듈
    을 포함하는 비디오 디코딩 기기.
  11. 서로 결합된 비휘발성 메모리 및 프로세서를 포함하는 비디오 인코딩 기기로서,
    상기 프로세서는 상기 메모리에 저장된 프로그램 코드를 호출하여, 제1항 내지 제4항 중 어느 한 항에 따른 방법을 수행하는,
    비디오 인코딩 기기.
  12. 서로 연결된 비휘발성 메모리 및 프로세서를 포함하는 비디오 디코딩 기기로서,
    상기 프로세서는 상기 메모리에 저장된 프로그램 코드를 호출하여, 제1항 내지 제4항 중 어느 한 항에 따른 방법을 수행하는,
    비디오 디코딩 기기.
  13. 컴퓨터 프로그램을 저장하는, 컴퓨터로 판독 가능한 저장 매체로서,
    상기 컴퓨터 프로그램이 프로세서에서 실행될 때, 제1항 내지 제4항 중 어느 한 항에 따른 방법이 수행되는,
    컴퓨터로 판독 가능한 저장 매체.
  14. 하나 이상의 프로세서, 메모리 및 통신 인터페이스를 포함하는 단말기로서,
    상기 메모리와 상기 통신 인터페이스는 하나 이상의 프로세서에 연결되고, 상기 단말기는 상기 통신 인터페이스를 통해 다른 기기와 통신하며, 상기 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성되고, 상기 컴퓨터 프로그램 코드는 명령어를 포함하며, 상기 하나 이상의 프로세서가 상기 명령어를 실행할 때, 상기 단말기는 제1항 내지 제4항 중 어느 한 항에 따른 양방향 인터 예측 방법을 수행하는,
    단말기.
  15. 제1항 내지 제4항 중 어느 하나의 방법에 의해 인코딩되거나 디코딩되는 비트스트림을 포함하는 컴퓨터로 판독 가능한 저장 매체.
KR1020217009929A 2018-09-04 2019-09-04 양방향 인터 예측 방법 및 장치 KR102655127B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862726975P 2018-09-04 2018-09-04
US62/726,975 2018-09-04
US201862727534P 2018-09-05 2018-09-05
US62/727,534 2018-09-05
US201862734226P 2018-09-20 2018-09-20
US62/734,226 2018-09-20
PCT/CN2019/104462 WO2020048502A1 (zh) 2018-09-04 2019-09-04 一种双向帧间预测方法及装置

Publications (2)

Publication Number Publication Date
KR20210047950A KR20210047950A (ko) 2021-04-30
KR102655127B1 true KR102655127B1 (ko) 2024-04-04

Family

ID=69722245

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217009653A KR102602827B1 (ko) 2018-09-04 2019-06-30 양방향 인터 예측에 적용되는 참조 프레임 획득 방법 및 장치
KR1020217009929A KR102655127B1 (ko) 2018-09-04 2019-09-04 양방향 인터 예측 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020217009653A KR102602827B1 (ko) 2018-09-04 2019-06-30 양방향 인터 예측에 적용되는 참조 프레임 획득 방법 및 장치

Country Status (13)

Country Link
US (3) US11792389B2 (ko)
EP (2) EP3840386A4 (ko)
JP (4) JP7242861B2 (ko)
KR (2) KR102602827B1 (ko)
CN (3) CN112640468A (ko)
AU (3) AU2019335839B2 (ko)
BR (2) BR112021004060A2 (ko)
CA (1) CA3111112A1 (ko)
MX (2) MX2021002488A (ko)
PH (1) PH12021550454A1 (ko)
SG (1) SG11202102171TA (ko)
WO (2) WO2020048205A1 (ko)
ZA (1) ZA202102188B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3840386A4 (en) * 2018-09-04 2021-09-22 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DETERMINING A REFERENCE FRAME FOR BIDIRECTIONAL INTER-FRAME PREDICTION
CN112771873A (zh) * 2018-09-20 2021-05-07 夏普株式会社 用于发信号通知视频编码中的参数的***和方法
JP7303330B2 (ja) * 2019-04-28 2023-07-04 北京字節跳動網絡技術有限公司 対称動きベクトル差分符号化
CN113099241B (zh) * 2021-03-31 2022-11-01 北京百度网讯科技有限公司 参考帧列表更新方法、装置、设备以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018058526A1 (zh) * 2016-09-30 2018-04-05 华为技术有限公司 视频编码方法、解码方法及终端

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7400681B2 (en) * 2003-11-28 2008-07-15 Scientific-Atlanta, Inc. Low-complexity motion vector prediction for video codec with two lists of reference pictures
JP2007067731A (ja) * 2005-08-30 2007-03-15 Sanyo Electric Co Ltd 符号化方法
JP2008154015A (ja) 2006-12-19 2008-07-03 Hitachi Ltd 復号化方法および符号化方法
CN101309427B (zh) * 2008-07-09 2010-07-07 中兴通讯股份有限公司 视频编码方法和装置
JP2011082683A (ja) * 2009-10-05 2011-04-21 Sony Corp 画像処理装置、画像処理方法、及び、プログラム
RU2549157C1 (ru) 2010-04-23 2015-04-20 М энд К ХОЛДИНГС ИНК. Устройство для кодирования движущегося изображения
TWI508534B (zh) 2010-05-18 2015-11-11 Sony Corp Image processing apparatus and image processing method
US9008181B2 (en) 2011-01-24 2015-04-14 Qualcomm Incorporated Single reference picture list utilization for interprediction video coding
US9288501B2 (en) 2011-03-08 2016-03-15 Qualcomm Incorporated Motion vector predictors (MVPs) for bi-predictive inter mode in video coding
JP5786499B2 (ja) 2011-06-30 2015-09-30 株式会社Jvcケンウッド 画像復号装置、画像復号方法及び画像復号プログラム
JP5485969B2 (ja) * 2011-11-07 2014-05-07 株式会社Nttドコモ 動画像予測符号化装置、動画像予測符号化方法、動画像予測符号化プログラム、動画像予測復号装置、動画像予測復号方法及び動画像予測復号プログラム
KR101607038B1 (ko) * 2011-11-21 2016-04-11 모토로라 모빌리티 엘엘씨 시간 예측을 위한 병치된 픽처의 암시적 결정 및 결합된 암시적 및 명시적 결정
US20130272409A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Bandwidth reduction in video coding through applying the same reference index
US20150103911A1 (en) * 2012-04-15 2015-04-16 Samsung Electronics Co., Ltd. Method and apparatus for determining reference images for inter-prediction
EP3079363B1 (en) * 2012-06-29 2017-09-27 Telefonaktiebolaget LM Ericsson (publ) Encoding and decoding video sequences comprising reference picture sets
US9357195B2 (en) * 2012-08-16 2016-05-31 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
CN103079072A (zh) * 2013-01-15 2013-05-01 清华大学 帧间预测方法、编码设备和解码设备
KR20140122195A (ko) 2013-04-05 2014-10-17 삼성전자주식회사 인터 레이어 복호화 및 부호화 방법 및 장치를 위한 인터 예측 후보 결정 방법
CN104717513B (zh) * 2015-03-31 2018-02-09 北京奇艺世纪科技有限公司 一种双向帧间预测方法及装置
US10404979B2 (en) * 2016-03-17 2019-09-03 Mediatek Inc. Video coding with interpolated reference pictures
US10939125B2 (en) * 2016-04-29 2021-03-02 Industry Academy Cooperation Foundation Of Sejong University Method and apparatus for encoding/decoding image signal
KR102322437B1 (ko) * 2016-09-30 2021-11-05 후아웨이 테크놀러지 컴퍼니 리미티드 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스
CN110140355B (zh) * 2016-12-27 2022-03-08 联发科技股份有限公司 用于视频编解码的双向模板运动向量微调的方法及装置
US10595035B2 (en) 2017-03-22 2020-03-17 Qualcomm Incorporated Constraining motion vector information derived by decoder-side motion vector derivation
JP6344508B2 (ja) * 2017-06-12 2018-06-20 株式会社Jvcケンウッド 画像復号装置、画像復号方法、画像復号プログラム
CN108124154B (zh) * 2017-12-28 2020-04-24 北京数码视讯科技股份有限公司 帧间预测模式的快速选择方法、装置及电子设备
WO2020003262A1 (en) * 2018-06-30 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Symmetric bi-prediction mode for video coding
CN115052162A (zh) * 2018-07-02 2022-09-13 华为技术有限公司 用于解码端运动矢量修正的基于误差面的子像素精确修正方法
EP3840386A4 (en) * 2018-09-04 2021-09-22 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DETERMINING A REFERENCE FRAME FOR BIDIRECTIONAL INTER-FRAME PREDICTION
JP7303330B2 (ja) * 2019-04-28 2023-07-04 北京字節跳動網絡技術有限公司 対称動きベクトル差分符号化

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018058526A1 (zh) * 2016-09-30 2018-04-05 华为技术有限公司 视频编码方法、解码方法及终端

Also Published As

Publication number Publication date
MX2021002489A (es) 2021-07-16
JP2023109819A (ja) 2023-08-08
EP3840385A1 (en) 2021-06-23
KR20210047945A (ko) 2021-04-30
BR112021003967A2 (pt) 2021-05-25
US20210185310A1 (en) 2021-06-17
EP3840386A4 (en) 2021-09-22
WO2020048502A1 (zh) 2020-03-12
AU2022221499B2 (en) 2023-12-21
US20230421755A1 (en) 2023-12-28
CN112640468A (zh) 2021-04-09
US20210185324A1 (en) 2021-06-17
US11792389B2 (en) 2023-10-17
US11659161B2 (en) 2023-05-23
AU2024201857A1 (en) 2024-04-11
CA3111112A1 (en) 2020-03-12
JP7242861B2 (ja) 2023-03-20
CN112866721A (zh) 2021-05-28
JP2021536715A (ja) 2021-12-27
WO2020048205A1 (zh) 2020-03-12
JP7277587B2 (ja) 2023-05-19
AU2019335839B2 (en) 2022-05-26
CN112567753A (zh) 2021-03-26
KR102602827B1 (ko) 2023-11-15
KR20210047950A (ko) 2021-04-30
JP2023109818A (ja) 2023-08-08
JP2021535707A (ja) 2021-12-16
BR112021004060A2 (pt) 2021-05-25
EP3840386A1 (en) 2021-06-23
EP3840385A4 (en) 2021-09-22
SG11202102171TA (en) 2021-04-29
AU2019335839A1 (en) 2021-04-01
MX2021002488A (es) 2021-07-16
PH12021550454A1 (en) 2021-12-06
AU2022221499A1 (en) 2022-09-22
ZA202102188B (en) 2022-06-29

Similar Documents

Publication Publication Date Title
KR102655127B1 (ko) 양방향 인터 예측 방법 및 장치
KR102525178B1 (ko) 양방향 인터 예측 방법 및 장치
RU2795934C2 (ru) Способ и устройство двунаправленного интер-предсказания
RU2818520C2 (ru) Способ и устройство двунаправленного интер-предсказания
CN111355958B (zh) 视频解码方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant