KR20210057101A - 모션 정보를 예측하는 디코딩 방법 및 디코딩 장치 - Google Patents

모션 정보를 예측하는 디코딩 방법 및 디코딩 장치 Download PDF

Info

Publication number
KR20210057101A
KR20210057101A KR1020217010321A KR20217010321A KR20210057101A KR 20210057101 A KR20210057101 A KR 20210057101A KR 1020217010321 A KR1020217010321 A KR 1020217010321A KR 20217010321 A KR20217010321 A KR 20217010321A KR 20210057101 A KR20210057101 A KR 20210057101A
Authority
KR
South Korea
Prior art keywords
motion information
candidate
motion vector
identifier
prediction
Prior art date
Application number
KR1020217010321A
Other languages
English (en)
Inventor
수 첸
지안후아 젱
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Priority claimed from PCT/CN2019/105711 external-priority patent/WO2020052653A1/zh
Publication of KR20210057101A publication Critical patent/KR20210057101A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

본 출원의 실시예들은 모션 정보를 예측하는 디코딩 방법과 디코딩 장치에 관한 것이다. 이 방법은: 제1 식별자를 얻기 위해 비트스트림을 파싱하는 단계; 상기 제1 식별자에 기초하여, 제1 후보 세트로부터 타겟 요소를 결정하되, 상기 제1 후보 세트의 요소는 적어도 하나의 제1 후보 모션 정보 및 복수의 제2 후보 모션 정보로 구성되고, 상기 제1 후보 모션 정보는 제1 모션 정보로 이루어지고, 상기 제2 후보 모션 정보는 사전 설정된 모션 정보 오프셋으로 이루어지는 결정 단계; 및 상기 타겟 요소가 상기 제1 후보 모션 정보이면, 처리될 사진 블록의 모션 정보를 예측하는 데 사용되는 타겟 모션 정보로서 상기 제1 후보 모션 정보를 이용하거나; 또는 상기 타겟 요소가 상기 복수의 제2 후보 모션 정보에 기초하여 얻어지면, 제2 식별자를 얻기 위해 상기 비트스트림을 파싱하고, 상기 제2 식별자 및 상기 복수의 제2 후보 모션 정보 중 하나에 기초하여 상기 타겟 모션 정보를 결정하는 단계를 포함한다.

Description

모션 정보 예측을 위한 디코딩 방법 및 장치
본 출원은 중국 국가 특허청에 각각 발명의 명칭이 "비디오 인코딩 및 디코딩을 위한 방법 및 장치" 및 "모션 정보를 예측하는 디코딩 방법 및 디코딩 장치"로 출원된, 2018년 9월 13일자 중국 특허출원 제201811068957.4호 및 2018년 10월 26일자 중국 특허출원 제201811264674.7호에 대한 우선권을 주장하며, 그 개시 내용 전체를 본 명세서에 참조로 포함하고 있다.
본 출원은 비디오 인코딩 및 디코딩 기술 분야, 특히 모션 정보를 예측하는 디코딩 방법과 디코딩 장치에 관한 것이다.
디지털 비디오 기술은 디지털 텔레비전, 디지털 라이브 방송 시스템, 무선 방송 시스템, 개인 디지털 보조 장치(personal digital assistant, PDA), 노트북 컴퓨터, 태블릿 컴퓨터, 전자책 리더, 디지털 카메라, 디지털 기록 장치, 디지털 미디어 플레이어, 비디오 게임 장치, 비디오 게임 콘솔, 휴대 전화 또는 위성 라디오 전화, 비디오 회의 장치, 비디오 스트리밍 전송 장치 등을 포함하는 다양한 기기에 광범위하게 적용될 수 있다. 디지털 비디오 장치는 비디오 디코딩 기술을 구현하여 디지털 비디오 정보를 전송, 수신, 인코딩, 디코딩 및/또는 저장할 수 있다.
비디오 디코딩 기술에 있어서, 비디오 압축 기술이 특히 중요하다. 비디오 압축 기술에서, 비디오 시퀀스 내의 고유한 리던던트 정보는 공간(인트라) 예측 및/또는 시간(인터) 예측을 수행함으로써 감소되거나 제거될 수 있다. 비디오 압축의 기본 원리는 공간 도메인, 시간 도메인, 및 코드워드 사이의 상관 관계에 기초하여 가능한 많이 리던던시를 제거하는 것이다. 현재, 일반적인 방법은 예측(인트라 예측 및 인터 예측을 포함함), 변환, 양자화, 및 엔트로피 인코딩과 같은 단계들을 수행함으로써 비디오 압축 코딩을 구현하기 위해 블록-기반 하이브리드 비디오 코딩 프레임워크를 사용하는 것이다.
인터 예측(inter prediction)은 비디오의 시간 영역(time-domain) 상관 관계 및 인접 인코딩된 사진의 픽셀을 사용하여 현재 사진의 픽셀을 예측하는 것으로, 비디오의 시간 영역 중복성(redundancy)을 효과적으로 제거하는 목적을 달성하는 것이다. 인터 예측하는 동안, 각 사진 블록의 예측 모션 정보는 후보 모션 정보 목록에서 결정되므로, 모션 보정 프로세스를 사용하여 사진 블록의 예측 블록이 생성된다. 모션 정보는 참조 사진 정보와 모션 벡터로 구성된다. 참조 사진 정보는 단방향/양방향 예측 정보, 참조 사진 목록 및 참조 사진 목록에 해당하는 참조 사진 인덱스로 구성된다. 모션 벡터는 수평 및 수직 방향의 위치 이동을 나타낸다.
현재, 머지(Merge) 모드, 어파인 머지(Affine Merge) 모드, 고급 모션 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드, 어파인 고급 모션 벡터 예측(Affine AMVP) 모드 등을 포함한 많은 인터 예측 방식이 있다.
인터 예측의 정확도를 향상시키기 위해, 더 많은 후보가 도입되면, 후보 모션 정보 목록의 길이가 길어지며, 이는 감지 프로세스 및 하드웨어 구현에 불리하다.
본 출원의 실시예는 더 많은 후보 모션 정보가 도입될 때 후보 모션 정보 목록의 길이를 효과적으로 제어하기 위해 모션 정보를 예측하는 디코딩 방법과 디코딩 장치를 제공한다.
전술한 목적들을 달성하기 위해, 본 출원의 실시예에는 다음과 같은 기술적 솔루션이 사용된다.
본 출원의 실시예들의 제1 양태에 있어서, 모션 정보를 예측하는 디코딩 방법이 제공되며, 이 디코딩 방법은 제1 식별자를 얻기 위해 비트스트림을 파싱(parsing)하는 단계; 제1 식별자에 기초하여, 제1 후보 세트로부터 타겟 요소를 결정하되, 제1 후보 세트의 요소는 적어도 하나의 제1 후보 모션 정보와 복수의 제2 후보 모션 정보로 구성되고, 제1 후보 모션 정보는 제1 모션 정보로 구성되며, 제2 후보 모션 정보는 사전 설정된 모션 정보 오프셋으로 구성되는 결정 단계; 및 타겟 요소가 제1 후보 모션 정보이면, 처리될 사진 블록의 모션 정보를 예측하는 데 사용되는 타겟 모션 정보로서 제1 후보 모션 정보를 이용하거나; 또는 타겟 요소가 복수의 제2 후보 후보 모션 정보 중 하나에 기초하여 타겟 모션 정보를 결정하는 단계를 포함한다.
본 출원에 제공된 모션 정보를 예측하는 디코딩 방법에 따르면, 제1 후보 세트의 요소는 제1 후보 모션 정보와 복수의 제2 후보 모션 정보로 구성된다. 이러한 방식으로, 다층 후보 세트의 구조에서, 더 많은 후보가 도입될 때, 어느 한 유형의 후보 모션 정보의 세트는 제1 요소로서 사용되어 제1 후보 세트에 추가될 수 있다. 제1 후보 세트에 후보 모션 정보를 직접 추가하는 것과 비교하면, 본 출원의 솔루션은 제1 후보 세트의 길이를 크게 단축시킨다. 제1 후보 세트가 인터 예측의 후보 모션 정보 목록일 경우, 더 많은 후보가 도입되더라도 후보 모션 정보 목록의 길이를 잘 제어할 수 있으므로, 감지 프로세스와 하드웨어 구현이 용이하다.
제1 양태의 실현 가능한 구현에 있어서, 제1 식별자는 타겟 요소가 속하는 카테고리를 나타내기 위해 사용되는 카테고리 식별자일 수 있다.
제1 양태의 실현 가능한 구현에 있어서, 본 출원의 실시예에 제공된 모션 정보를 예측하는 디코딩 방법은: 제4 식별자를 얻기 위해 비트스트림을 파싱하는 단계를 더 포함할 수 있고, 여기서 제4 식별자는 제1 후보 세트의 제1 식별자가 나타내는 카테고리의 타겟 요소의 인덱스이다. 이 구현예에 있어서, 타겟 요소는 제4 식별자와 제1 식별자를 사용하여 유일하게 결정된다.
제1 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 처리될 사진 블록의 공간적으로 인접한 사진 블록의 모션 정보를 포함한다.
제1 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 머지 모드에서 생성된 후보 모션 정보일 수 있다.
제1 양태의 실현 가능한 구현에 있어서, 제2 후보 모션 정보는 제1 모션 정보와 사전 설정된 모션 정보 오프셋에 기초하여 획득된다.
제1 양태의 실현 가능한 구현에 있어서, 제2 식별자와 제2 후보 모션 정보의 복수의 조각 중의 하나에 기초하여 타겟 모션 정보를 결정하는 단계는 제2 식별자에 기초하여 복수의 사전 설정 모션 정보 오프셋에서 타겟 오프셋을 결정하는 단계; 및 제1 모션 정보와 타겟 오프셋에 기초하여 타겟 모션 정보를 결정하는 단계를 포함한다.
제1 양태의 실현 가능한 구현에 있어서, 적어도 하나의 제1 후보 모션 정보에서, 제1 모션 정보를 식별하기 위해 사용되는 코드 워드는 가장 짧은 코드 워드가 사용된다.
제1 양태의 실현 가능한 구현에 있어서, 타겟 요소가 복수의 제2 후보 모션 정보에 기초하여 얻어지면, 본 출원에 제공된 모션 정보를 예측하는 디코딩 방법은 사전 설정 계수를 구성하는 제3 식별자를 얻기 위해 비트스트림을 파싱하는 단계를 더 포함할 수 있다.
제1 양태의 실현 가능한 구현에 있어서, 본 출원의 방법은 제2 식별자와 복수의 제2 후보 모션 정보의 하나에 기초하여 타겟 모션 정보를 결정하기 전에, 복수의 저정된 모션 정보 오프셋을 얻기 위해, 복수의 사전 설정 모션 정보 오프셋에 사전 설정 계수를 곱하는 단계를 더 포함한다.
제1 양태의 실현 가능한 구현에 있어서, 타겟 모션 정보는 처리될 사진 블록의 모션 정보를 예측하기 위해 이용되고, 이 타겟 모션 정보를 처리될 대상 사진 블록의 모션 정보로서 이용하는 단계 또는 예측 모션 정보로서 이용하는 단계를 포함한다. 처리될 사진의 모션 정보 또는 예측 모션 정보를 얻은 후에는 처리될 사진 블록의 사진 블록 또는 예측 블록을 생성하기 위해 모션 보정이 수행된다.
제1 양태의 실현 가능한 구현에서, 식별자가 점유하는 바이트의 양을 줄일 수 있도록 제2 식별자에 고정 길이 코딩 모드를 사용할 수 있다.
제1 양태의 실현 가능한 구현에 있어서, 더 많은 후보 동작 정보를 식별할 수 있도록 제2 식별자에 가변 길이 코딩 모드를 사용할 수 있다.
본 출원 실시예의 제2 양태에 있어서, 모션 정보를 예측하는 다른 디코딩 방법이 제공되며, 이 디코딩 방법은 제1 식별자를 얻기 위해 비트스트림을 파싱하는 단계; 제1 식별자에 기초하여, 제1 후보 세트로부터 타겟 요소를 결정하되, 제1 후보 세트의 요소는 적어도 하나의 제1 후보 모션 정보 및 적어도 하나의 제2 후보 세트로 구성되고, 제2 후보 세트의 요소는 복수의 제2 후보 모션 정보로 구성되는 결정 단계; 및 타겟 요소가 제1 후보 모션 정보이면, 타겟 요소로서 작용하는 제1 후보 모션 정보를, 처리될의 사진 블록의 제1 후보 모션 정보를 예측하는데 사용되는 타겟 모션 정보로서 이용하거나; 또는 타겟 요소가 제2 후보 세트이면, 제2 식별자를 얻기 위해 비트스트림을 파싱하는 단계; 또는 제2 식별자에 기초하여 타겟 모션 정보를 복수의 제2 후보 모션 정보로부터 결정하는 단계를 포함한다.
본 출원에 제공된 모션 정보를 예측하는 디코딩 방법에 따르면, 제1 후보 세트의 요소는 제1 후보 모션 정보 및 적어도 하나의 제2 후보 세트로 구성된다. 이러한 방식으로, 다층 후보 세트의 구조에 있어서, 더 많은 후보가 도입될 때, 어느 한 유형의 후보 모션 정보의 세트는 하나의 요소로서 사용되어 제1 후보 세트에 추가될 수 있다. 제1 후보 세트에 후보 모션 정보를 직접 추가하는 것과 비교하면, 본 출원의 솔루션은 제1 후보 세트의 길이를 크게 단축시킨다. 제1 후보 세트가 인터 예측의 후보 모션 정보 목록일 경우, 더 많은 후보가 도입되더라도, 후보 모션 정보 목록의 길이를 잘 제어할 수 있어, 감지 프로세스와 하드웨어 구현이 용이하다.
제2 양태의 실현 가능한 구현에 있어서, 제1 식별자는 타겟 요소가 속하는 카테고리를 나타내기 위해 사용되는 카테고리 식별자일 수 있다.
제2 양태의 실현 가능한 구현에 있어서, 본 출원의 실시예에 제공된 모션 정보를 예측하는 디코딩 방법은: 제1 후보 세트의 제1 식별자에 의해 표시된 카테고리의 타겟 요소의 인덱스인 제4 식별자를 얻기 위해 비트스트림을 파싱하는 단계를 더 포함한다. 이 실시예에 있어서, 타겟 요소는 제4 식별자와 제1 식별자를 이용하여 유일하게 결정된다.
제2 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 처리될 사진 블록의 공간적으로 인접한 사진 블록의 모션 정보로 구성된다.
제2 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 머지 모드에서 생성된 후보 모션 정보일 수 있다.
제2 양태의 실현 가능한 구현에 있어서, 제2 후보 모션 정보는 처리될 사진 블록의 공간적으로 인접하지 않은 사진 블록의 모션 정보로 구성된다.
제2 양태의 실현 가능한 구현에 있어서, 제2 후보 모션 정보는 어파인 머지 모드에서 생성된 후보 모션 정보일 수 있다.
제2 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되고, 제2 후보 모션 정보는 제2 모션 정보로 구성되며, 제2 모션 정보는 제1 모션 정보와 사전 설정된 모션 정보 오프셋에 기초하여 획득된다.
제2 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되며, 제2 후보 모션 정보는 사전 설정된 모션 정보 오프셋으로 구성된다. 이에 대응하여, 제2 식별자에 기초하여 타겟 모션 정보를 복수의 제2 후보 모션 정보로부터 결정하는 단계는 제2 식별자에 기초하여 타겟 오프셋을 복수의 사전 설정 모션 정보로부터 결정하는 단계; 및 제1 모션 정보 및 타겟 오프셋에 기초하여 타겟 모션 정보를 결정하는 단계를 포함한다.
제2 양태의 실현 가능한 구현에 있어서, 제1 후보 세트에 포함된 적어도 하나의 제2 후보 세트는 복수의 제2 후보 세트이고, 복수의 제2 후보 세트는 적어도 하나의 제3 후부 세트 및 적어도 하나의 제4 후보 세트를 구성하고, 제3 후보 세트의 요소는 복수의 처리될 사진 블록의 공간적으로 이웃하지 않는 사진 블록의 모션 정보를 구성하고, 제4 후보 세트의 요소는 제1 모션 정보 및 사전 설정 모션 정보 세트에 기초하여 획득된 복수의 모션 정보를 구성한다.
제2 양태의 실현 가능한 구현에 있어서, 적어도 하나의 제1 후보 모션 정보에서, 제1 모션 정보를 식별하는 데 사용되는 코딩 워드는 가장 짧은 코드 워드이다.
제2 양태의 실현 가능한 구현에 있어서, 제1 모션 정보는 대체 시간적 모션 벡터 예측(alternative temporal motion vector prediction, ATMVP) 모드에서 얻은 모션 정보로 구성되지 않는다.
제2 양태의 실현 가능한 구현에 있어서, 제1 후보 세트에 포함된 적어도 하나의 제1 후보 세트는 복수의 제2 후보 세트이고, 복수의 제2 후보 세트는 적어도 하나의 제5 후보 세트와 적어도 하나의 제6 후보 세트로 구성되고, 제5 후보 세트의 요소는 복수의 처리될 사진 블록의 공간적으로 이웃하는 사진 블록의 모션 정보를 구성하고, 제6 후보 세트의 요소는 복수의 사전 설정 모션 정보 오프셋을 구성한다.
제2 양태의 실현 가능한 구현에 있어서, 타겟 요소가 제2 후보 세트일 때, 본 출원에 제공된 모션 정보를 예측하는 디코딩 방법은 제3 식별자가 사전 설정된 계수로 구성되는 제3 식별자를 얻기 위해 비트스트림을 파싱하는 단계를 더 포함한다.
제2 양태의 실현 가능한 구현에 있어서, 제2 식별자에 기초하여 복수의 사전 설정 모션 정보 오프셋으로부터 타겟 대상 오프셋을 결정하기 전에, 디코딩 방법은 복수의 조정된 모션 정보 오프셋을 얻기 위해, 복수의 사전 설정 모션 정보에 제3 식별자에 구성된 사전 설정 계수를 곱하는 단계를 더 포함하고, 그리고 이에 상응하여, 제2 식별자에 기초하여 복수의 사전 설정 모션 정보 오프셋으로부터 타겟 오프셋을 결정하는 단계는 사전 설정 계수에 기초하여 조정된 복수의 조정 모션 정보 오프셋로부터 제2 식별자에 기초하여 타겟 오프셋을 결정하는 단계로 구성한다.
제2 양태의 실현 가능한 구현에 있어서, 제2 후보 모션 정보는 제1 후보 모션 정보와 다르다. 특히, 제1 후보 모션 정보와 제2 후보 모션 정보는 서로 다른 예측 모드에 따라 선택될 수 있다.
제2 양태의 실현 가능한 구현에 있어서, 처리될 사진 블록의 모션 정보를 예측하기 위해 사용되는 타겟 모션 정보는 처리될 사진 블록의 모션 정보로 사용되거나 예측 모션 정보로 사용되는 것으로 구성된다. 처리될 사진 블록의 모션 정보 또는 예측 모션 정보를 얻은 후에는, 처리될 사진 블록의 사진 블록 또는 예측 블록을 생성하기 위해 모션 보정이 수행된다.
제2 양태의 실현 가능한 구현에 있어서, 식별자가 점유하는 바이트의 양을 줄일 수 있도록 제2 식별자에 고정 길이 코딩 모드를 사용할 수 있다.
제2 양태의 실현 가능한 구현에 있어서, 더 많은 후보 모션 정보를 식별할 수 있도록 제2 식별자에 가변 길이 코딩 모드를 사용할 수 있다.
제1 양태와 제2 양태에서 제공되는 모션 정보를 예측하는 디코딩 방법의 구체적인 실시예에 대해서는 상호 참조가 이루어질 수 있으며, 세부 사항은 여기서 다시 설명되지 않는다는 점에 유의해야 한다.
본 출원 실시예의 제3 양태에 있어서, 모션 정보를 예측하는 디코딩 장치가 제공되며, 이러한 디코딩 장치는 제1 식별자를 얻기 위해 비트스트림을 파싱하도록 구성된 파싱 모듈; 제1 식별자에 기초하여 제1 후보 세트로부터 타겟 요소를 결정하도록 구성되고, 제1 후보 세트의 요소들은 적어도 하나의 제1 후보 모션 정보 및 복수의 제2 후보 모션 정보를 포함하고, 제1 후보 모션 정보는 제1 모션 정보를 포함하고, 및 상기 제2 후보 모션 정보는 사전 설정 모션 정보 오프셋을 포함하는, 결정 모듈; 및 타겟 요소가 제1 후보 모션 정보이면, 타겟 모션 정보로서 상기 제1 후보 모션 정보를 사용하도록 구성되고, 타겟 모션 정보는 상기 처리될 사진 블록의 예측 모션 정보로 사용되는 할당 모듈을 포함하고, 파싱 모듈은, 타겟 요소가 상기 복수의 제2 후보 모션 정보에 기초하여 얻어지면, 제2 식별자를 얻기 위해 비트스트림을 파싱하고, 제2 식별자 및 상기 복수의 제2 후보 모션 정보의 하나에 기초하여 타겟 모션 정보를 결정하도록 더 구성된다.
본 출원에 제공된 모션 정보를 예측하는 디코딩 장치에 따르면, 제1 후보 세트의 요소는 제1 후보 모션 정보와 복수의 제2 후보 모션 정보로 구성된다. 이러한 방식으로, 다층 후보 세트의 구조에서, 더 많은 후보가 도입될 때, 하나의 유형의 후보 모션 정보의 세트가 하나의 요소로 사용되어 제1 후보 세트에 추가될 수 있다. 제1 후보 세트에 후보 모션 정보를 직접 추가하는 것과 비교하면, 본 출원의 솔루션은 제1 후보 세트의 길이를 크게 단축시킨다. 제1 후보 세트가 인터 예측의 후보 모션 정보 목록일 경우, 더 많은 후보가 도입되더라도, 후보 모션 정보 목록의 길이를 잘 제어할 수 있어, 감지 프로세스와 하드웨어 구현이 용이하다.
제3 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 처리될 사진 블록의 공간적으로 인접한 사진 블록의 모션 정보로 구성될 수 있다.
제3 양태의 실현 가능한 구현에 있어서, 제2 후보 모션 정보는 제1 모션 정보와 사전 설정 모션 정보 오프셋에 기초하여 획득된다.
제3 양태의 실현 가능한 구현에 있어서, 파싱 모듈은 제2 식별자에 기초하여 복수의 사전 설정 모션 정보 오프셋으로부터 타겟 오프셋을 결정하고, 제1 모션 정보와 타겟 오프셋에 기초하여 타겟 모션 정보를 결정하도록 특별히 구성된다.
제3 양태의 실현 가능한 구현에 있어서, 적어도 하나의 제1 후보 모션 정보에서, 제1 모션 정보를 식별하는 데 사용되는 코딩 워드는 가장 짧은 코드 워드이다.
제3 양태의 실현 가능한 구현에 있어서, 타겟 요소가 복수의 제2 후보 모션 정보에 기초하여 획득되면, 파싱 모듈은 제3 식별자를 얻기 위해 비트스트림을 파싱하도록 더 구성되며, 여기서 제3 식별자는 사전 설정된 계수로 구성된다.
제3 양태의 실현 가능한 구현에 있어서, 디코딩 장치는 복수의 사전 설정 모션 정보 오프셋을 사전 설정된 계수와 곱하여 복수의 조정된 모션 정보 오프셋을 얻도록 구성된 계산 모듈을 더 포함한다.
제3 양태의 실현 가능한 구현에 있어서, 결정 모듈은 제2 식별자에 기초하여 계산 모듈에 의해 얻은 조정된 모션 정보 오프셋의 타겟 오프셋을 결정하고, 제1 모션 정보 및 타겟 오프셋에 기초하여 타겟 모션 정보를 결정하도록 특별히 구성된다.
제3 양태의 실현 가능한 구현에 있어서, 결정 모듈은 구체적으로, 타겟 모션 정보를 처리될 사진 블록의 모션 정보로 사용하거나, 또는 타겟 모션 정보를 상기 처리될 사진 블록에 대한 예측 모션 정보로 사용하도록 구성된다.
제3 양태의 실현 가능한 구현에 있어서, 제2 식별자에 고정 길이 코딩 모드를 사용한다.
제3 양태의 실현 가능한 구현에 있어서, 제2 식별자에 가변 길이 코딩 모드를 사용한다.
본 출원 실시예의 제3 양태에 제공되는 모션 정보를 예측하는 디코딩 장치는 제1 양태에서 제공되는 모션 정보를 예측하는 디코딩 방법을 수행하도록 구성되었다는 점에 유의해야 한다. 구체적인 구현은 동일하며, 세부 사항은 여기에 다시 설명되지 않는다.
본 출원 실시예의 제4 양태에 있어서, 모션 정보를 예측하는 디코딩 장치가 제공되며, 이러한 디코딩 장치는 제1 식별자를 얻기 위해 비트스트림을 파싱하도록 구성된 파싱 모듈; 제1 식별자에 기초하여 타겟 요소를 결정하도록 구성되며, 제1 후보 세트의 요소는 적어도 하나의 제1 후보 모션 벙보 및 적어도 하나의 제2 후보 세트로 구성되고, 제2 후보 세트의 요소는 복수의 제2 후보 모션 정보로 구성되는 결정 모듈; 및 타겟 요소가 제1 후보 모션 정보이면, 제1 후보 모션 정보를 타겟 모션 정보로서 이용하고, 타겟 모션 정보는 처리될 사진 블록의 모션 정보를 예측하는데 사용되도록 구성되는 할당 모듈을 포함한다. 파싱 모듈은 타겟 요소가 제2 후보 세트이면, 제2 식별자를 얻기 위해 비트스트림을 파싱하도록 더 구성되고, 결정 모듈은 제2 식별자에 기초하여 복수의 제2 후보 모션 정ㅊ보로부터 타겟 모션 정보를 결정하도록 더 구성된다.
본 출원에 제공된 모션 정보를 예측하는 디코딩 장치에 따르면, 제1 후보 세트의 요소는 제1 후보 모션 정보와 적어도 하나의 제2 후보 세트로 구성된다. 이러한 방식으로, 다층 후보 세트의 구조에서, 더 많은 후보가 도입될 때, 하나의 유형의 후보 모션 정보의 세트가 하나의 요소로 사용되어, 제1 후보 세트에 추가될 수 있다. 제1 후보 세트에 후보 모션 정보를 직접 추가하는 것과 비교하면, 본 출원의 솔루션은 제1 후보 세트의 길이를 크게 단축시킨다. 제1 후보 세트가 인터 예측의 후보 모션 정보 목록일 경우, 더 많은 후보가 도입되더라도, 후보 모션 정보 목록의 길이를 잘 제어할 수 있어, 감지 프로세스와 하드웨어 구현이 용이하다.
제4 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 처리될 사진 블록의 공간적으로 인접한 사진 블록의 모션 정보로 구성될 수 있다.
제4 양태의 실현 가능한 구현에 있어서, 제2 후보 모션 정보는 처리될 사진 블록의 공간적으로 인접하지 않은 사진 블록의 모션 정보로 구성될 수 있다.
제4 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되고, 제2 후보 모션 정보는 제2 모션 정보로 구성되며, 제2 모션 정보는 제1 모션 정보와 사전 설정 모션 오프셋에 기초하여 획득된다.
제4 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되고, 제2 후보 모션 정보는 사전 설정 모션 정보 오프셋으로 구성된다. 이에 따라, 파싱 모듈은 제2 식별자에 기초하여 복수의 사전 설정 모션 정보 오프셋으로부터 타겟 오프셋을 결정하고, 제1 모션 정보와 타겟 오프셋에 기초하여 타겟 모션 정보를 결정하도록 특별히 구성된다.
제4 양태의 실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되며, 복수의 제2 후보 세트는 복수의 제2 후보 세트이며, 복수의 제2 후보 세트는 적어도 하나의 제3 후보 세트와 적어도 하나의 제4 후보 세트를 구성하고, 제3 후보 세트의 요소는 복수의 처리될 사진 블록의 공간적으로 인접하지 않은 사진 블록의 모션 정보로 구성되며, 제4 후보 세트의 요소는 제1 모션 정보와 사전 설정된 모션 정보 오프셋을 기반으로 얻은 다중 모션 정보로 구성된다.
제4 양태의 실현 가능한 구현에 있어서, 적어도 하나의 제1 후보 모션 정보에서, 제1 모션 정보를 식별하는 데 사용되는 코딩 워드는 가장 짧은 코드 워드이다.
제4 양태의 실현 가능한 구현에 있어서, 제1 모션 정보는 ATMVP 모드에서 획득한 모션 정보로 구성되지 않는다.
제4 양태의 실현 가능한 구현에 있어서, 적어도 하나의 제1 후보 세트는 복 수의 제2 후보 세트이고, 복수의 제2 후보 세트는 적어도 하나의 제5 후보 세트와 적어도 하나의 제6 후보 세트로 구성되며, 제5 후보 세트의 요소는 복수의 처리될 사진 블록의 공간적으로 인접하지 않은 사진 블록의 모션 정보로 구성되고, 제6 후보 세트의 요소는 복수의 사전 설정된 모션 정보 오프셋으로 구성된다.
제4 양태의 실현 가능한 구현에 있어서, 타겟 요소가 제2 후보 세트일 때, 파싱 모듈은 제3 식별자를 얻기 위해, 비트 스트림을 파싱하도록 추가로 구성되며, 여기서 제3 식별자는 사전 설정 계수로 구성된다.
제4 양태의 실현 가능한 구현에 있어서, 디코딩 장치는 복수의 사전 설정된 모션 정보 오프셋을 사전 설정된 계수로 곱하여 복수의 조정된 모션 정보 오프셋을 얻도록 구성된 계산 모듈을 더 포함한다. 이에 대응하여, 결정 모듈은 제2 식별자에 기초하여 계산 모듈에 의해 얻어진 복수의 조정된 모션 정보 오프셋으로부터 타겟 오프셋을 결정한 다음, 제1 모션 정보와 타겟 오프셋에 기초하여 타겟 모션 정보를 결정하도록 특별히 구성된다.
제4 양태의 실현 가능한 구현에 있어서, 제2 후보 모션 정보는 제1 후보 모션 정보와 다르다.
제4 양태의 실현 가능한 구현에 있어서, 결정 모듈은 타겟 모션 정보를 처리될 사진 블록의 모션 정보로 사용하거나, 타겟 모션 정보를 처리될 사진 블록의 예측 모션 정보로 사용하도록 특별히 구성된다.
제4 양태의 실현 가능한 구현에 있어서, 제2 식별자에 고정 길이 코딩 모드를 사용한다.
제4 양태의 실현 가능한 구현에 있어서, 제2 식별자에 가변 길이 코딩 모드를 사용한다.
본 출원 실시예의 제5 양태에 있어서, 모션 정보를 예측하는 디코딩 장치가 제공되며, 이 디코딩 장치는 프로세서와 프로세서에 연결된 메모리로 구성된다. 프로세서는 제1 양태 또는 제2 양태에서의 모션 정보를 예측하는 디코딩 방법을 수행하도록 구성되어 있다.
본 출원 실시예의 제6 양태에 있어서, 비디오 디코더가 제공되며, 이 비디오 디코더는 비휘발성 저장 매체와 중앙 처리 장치로 구성된다. 비휘발성 저장 매체는 실행 가능한 프로그램을 저장한다. 중앙 처리 장치는 비휘발성 저장 매체에 연결되어, 제1 양태, 제2 양태 또는 가능한 구현예 중 하나에서 모션 정보를 예측하는 디코딩 방법을 수행한다.
본 출원 실시예의 제7 양태에 있어서, 컴퓨터가 읽을 수 있는 저장 매체가 제공된다. 컴퓨터가 읽을 수 있는 저장 매체는 명령을 저장하고, 명령이 컴퓨터에서 실행될 때, 컴퓨터는 제1 양태나 제2 양태의 모션 정보를 예측하는 디코딩 방법을 실행할 수 있다.
본 출원 실시예의 제8 양태에 있어서, 명령을 포함한 컴퓨터 프로그램 제품이 제공된다. 명령이 컴퓨터에서 실행될 때, 컴퓨터는 제1 양태 또는 제2 양태에서의 모션 정보를 예측하는 디코딩 방법을 실행할 수 있다.
본 출원의 제3 내지 제8 양태의 해결하고자 하는 기술적 과제는 본 출원의 제1 양태 또는 제2 양태의 것과 일치하며, 모든 양태와 해당 구현 가능한 설계 방식에 의해 달성되는 유익한 효과는 유사하다는 것을 이해해야 한다. 세부 사항은 다시 설명되지 않는다.
도 1은 본 출원의 실시예에 사용하도록 구성할 수 있는 비디오 코딩 시스템의 예에 대한 블록 다이어그램이다.
도 2는 본 출원의 실시예에 사용하도록 구성할 수 있는 비디오 인코더의 예에 대한 시스템 블록 다이어그램이다.
도 3은 본 출원의 실시예에 사용하도록 구성할 수 있는 비디오 디코더의 예에 대한 시스템 블록 다이어그램이다.
도 4는 본 출원의 실시예에 사용하도록 구성될 수 있는 인터 예측 모듈의 예에 대한 블록 다이어그램이다.
도 5는 머지 예측 모드의 실시예의 흐름도이다.
도 6은 고급 모션 벡터 예측 모드의 실시예의 흐름도이다.
도 7은 본 출원의 실시예에 사용하도록 구성할 수 있는 비디오 디코더에 의한 모션 보상의 실시예에 대한 흐름도이다.
도 8은 코딩 유닛 및 코딩 유닛과 관련된 인접 사진 블록의 예에 대한 개략 다이어그램이다.
도 9는 후보 예측 모션 벡터 목록의 실시예에 대한 흐름도이다.
도 10은 머지 모드 후보 예측 모션 벡터 목록에 결합된 후보 모션 벡터를 추가하는 실시예의 개략 다이어그램이다.
도 11은 머지 모드 후보 예측 모션 벡터 목록에 스케일링된 후보 모션 벡터를 추가하는 실시예의 개략 다이어그램이다.
도 12는 머지 모드 후보 예측 모션 벡터 목록에 제로 모션 벡터를 추가하는 실시예의 개략 다이어그램이다.
도 13은 다른 코딩 유닛의 예와 코딩 유닛과 관련된 인접 사진 블록의 개략 다이어그램이다.
도 14a는 후보 모션 벡터 세트를 구성하는 방법의 예에 대한 개략 다이어그램이다.
도 14b는 후보 모션 벡터 세트를 구성하는 방법의 예에 대한 개략 다이어그램이다.
도 15는 본 출원 실시예에 따른 모션 정보를 예측하는 디코딩 방법의 개략 흐름도이다.
도 16a는 후보 모션 벡터 세트를 구성하는 방법의 예에 대한 개략 다이어그램이다.
도 16b는 후보 모션 벡터 세트를 구성하는 방법의 예에 대한 개략 다이어그램이다.
도 16c는 후보 모션 벡터 세트를 구성하는 방법의 예에 대한 개략 다이어그램이다.
도 17은 본 출원의 실시예에 따른 모션 정보를 예측하는 디코딩 장치의 개략 블록 다이어그램이다.
도 18은 본 출원의 실시예에 따른 모션 정보를 예측하는 디코딩 장치의 개략 블록 다이어그램이다.
본 출원의 명세서, 청구 범위 및 첨부 도면에서 "제1", "제2", "제3", "제4"와 같은 용어는 서로 다른 대상을 구별하기 위한 것일 뿐으로, 특정 순서를 나타내지 않는다.
본 출원의 실시예에서, "예" 또는 "예시"와 같은 단어들은 예제, 보기 또는 설명을 제공하는 것을 나타내기 위해 사용된다. 본 출원의 실시예에서 "예" 또는 "예시"라는 단어로 기술된 실시예 또는 설계 체계는 다른 실시예 또는 설계 체계보다 더 바람직하거나 더 많은 이점을 갖는 것으로 설명되어서는 안 된다. 정확히, "예" 또는 "예시"와 같은 단어의 사용은 특정한 방식으로 관련 개념을 제시하기 위한 것이다.
다음은 본 출원의 실시예에서의 해결하고자 하는 기술적 과제를 첨부 도면을 참조하여 명확하게 설명한다.
도 1은 본 출원의 실시예에 따른 비디오 코딩 시스템(1)의 예에 대한 블록 다이어그램이다. 본 명세서에서 사용되는 것처럼, "비디오 코덱"이라는 용어는 일반적으로 비디오 인코더와 비디오 디코더를 가리킨다. 본 출원에서, "비디오 코딩" 또는 "코딩"이라는 용어는 일반적으로 비디오 인코딩 또는 비디오 디코딩을 가리킨다. 비디오 코딩 시스템(1)의 비디오 인코더(100)와 비디오 디코더(200)는, 현재 코딩된 사진 블록 또는 복수의 새로운 상호 예측 모드 중 하나에 기초하여 현재 코딩된 사진 블록의 하위-블록(sub-block)의 모션 정보, 예를 들어 모션 벡터를 예측하도록 구성되고, 예측된 모션 벡터는 모션 추정 방법을 사용하여 얻은 모션 벡터에 최대한 가깝다. 이러한 방식으로, 모션 벡터 차이는 인코딩 중에 전송될 필요가 없으므로, 인코딩 및 디코딩 성능이 더욱 향상된다.
도 1에 도시된 바와 같이, 비디오 코딩 시스템(1)은 소스 장치(10)와 데스티네이션 장치(20)로 구성된다. 소스 장치(10)은 인코딩된 비디오 데이터를 생성한다. 따라서 소스 장치(10)는 비디오 인코딩 기기라고 할 수 있다. 데스티네이션(destination) 장치(20)는 소스 장치(10)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있다. 따라서 데스티네이션 장치(20)는 비디오 디코딩 장치라고 할 수 있다. 소스 장치(10), 데스티네이션 장치(20) 또는 소스 장치(10) 및 데스티네이션 장치(20)의 다양한 구현 솔루션은 하나 이상의 프로세서와 하나 이상의 프로세서에 연결된 메모리로 구성할 수 있다. 메모리는 RAM, ROM, EEPROM, 플래시 메모리 또는 본 명세서에 설명된 바와 같이, 컴퓨터에 액세스할 수 있는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는 데 사용할 수 있는 다른 매체로 구성될 수 있지만, 이에 제한되는 것은 아니다.
소스 장치(10)와 데스티네이션 장치(20)는 데스크탑 컴퓨터, 모바일 컴퓨팅 기기, 노트북(예: 랩탑) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, "스마트" 폰, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차내 컴퓨터 및 이와 유사한 장치를 포함하는, 여러 다양한 장치를 구성할 수 있다.
데스티네이션 장치(20)는 소스 장치(10)에서 링크(30)를 통해 인코딩된 비디오 데이터를 수신할 수 있다. 링크(30)는 소스 장치(10)에서 데스티네이션 장치(20)로 인코딩된 비디오 데이터를 전송할 수 있는 하나 이상의 미디어 또는 장치로 구성될 수 있다. 예를 들어 링크(30)는 소스 장치(10)이 인코딩된 비디오 데이터를 데스티네이션 장치(20)에 실시간으로 직접 전송할 수 있는 하나 이상의 통신 매체로 구성될 수 있다. 이 예에서 소스 장치(10)는 통신 표준(예: 무선 통신 프로토콜)에 따라 인코딩된 비디오 데이터를 변조할 수 있으며, 변조된 비디오 데이터를 데스티네이션 장치(20)에 전송할 수 있다. 하나 이상의 통신 매체는 무선 및/또는 유선 통신 매체(예: 무선 주파수, RF) 또는 하나 이상의 물리적 송신선으로 구성될 수 있다. 하나 이상의 통신 매체는 패킷 기반 네트워크의 일부일 수 있으며, 패킷 기반 네트워크는, 예를 들어 로컬 영역 네트워크, 광역 네트워크 또는 전역 네트워크(예: 인터넷)이다. 하나 이상의 통신 매체는 라우터, 스위치, 기지국 또는 소스 장치(10)에서 데스티네이션 장치(20)로 통신을 촉진하는 다른 장치로 구성될 수 있다.
다른 예에 있어서, 인코딩된 데이터를 출력 인터페이스(140)를 통해 저장 장치(40)로 출력할 수 있다. 마찬가지로, 암호화된 데이터는 입력 인터페이스(240)를 통해 저장 장치(40)에서 액세스할 수 있다. 저장 장치(40)는 하드 드라이브, 블루레이, 디지털 다기능 디스크(digital versatile disc, DVD), 소형 디스크 읽기 전용 메모리(compact disc read-only memory, CD-ROM), 플래시 메모리, 휘발성 또는 비휘발성 메모리와 같은 다양한 분산 데이터 저장 매체 중 하나로 구성될 수 있고, 또는 인코딩된 비디오 데이터를 저장하도록 구성된 기타 모든 적절한 디지털 저장 매체로 구성할 수 있다.
다른 예에 있어서, 저장 장치(40)는 소스 장치(10)에 의해 생성된 인코딩된 비디오를 유지할 수 있는 파일 서버 또는 다른 중간 저장 장치에 해당될 수 있다. 데스티네이션 장치(20)는 스트리밍 전송 또는 다운로드를 통해 저장 장치(40)에 저장된 비디오 데이터에 접근할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장하고, 인코딩된 비디오 데이터를 데스티네이션 장치(20)에 전송할 수 있는 모든 유형의 서버일 수 있다. 예를 들어, 파일 서버는 네트워크 서버(예: 웹 사이트에 사용), 파일 전송 프로토콜(file transfer protocol, FTP) 서버, 네트워크 연결 스토리지(network attached storage, NAS) 장치 또는 로컬 자기 디스크 드라이브로 구성된다. 데스티네이션 장치(20)는 표준 데이터 연결(인터넷 연결 포함)을 통해 인코딩된 비디오 데이터에 액세스할 수 있습니다. 표준 데이터 연결은 무선 채널(예: 무선 충실도(Wireless-Fidity, Wi-Fi) 연결), 유선 연결(예: 디지털 가입자 회선(digital subscriber line, DSL) 또는 케이블 모뎀) 또는 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하는 데 적합한 조합으로 구성될 수 있다. 저장 장치(40)에서 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송 또는 이들의 조합일 수 있다.
본 출원의 실시예에 제공된 모션 정보를 예측하는 디코딩 방법은, 예를 들어 공중파 방송, 무선 텔레비전 전송, 위성 텔레비전 전송, 스트리밍 비디오 전송(예: 인터넷을 통해), 데이터 저장 매체에 저장된 비디오 데이터의 인코딩, 데이터 저장 매체에 저장된 비디오 데이터의 디코딩 또는 다른 응용 프로그램과 같은 복수의 멀티미디어 응용 프로그램을 지원하기 위해 비디오 코딩에 적용될 수 있다. 일부 예에서는 비디오 코딩 시스템(1)은 비디오 스트리밍 전송, 비디오 재생, 비디오 방송 및/또는 비디오 전화와 같은 응용 프로그램을 지원하기 위해, 단방향 또는 양방향 비디오 전송을 지원하도록 구성될 수 있다.
도 1에서 설명된 비디오 코딩 시스템(1)은 하나의 예일 뿐이며, 본 출원에서의 기술은 인코딩 장치와 디코딩 장치 사이의 데이터 통신을 반드시 구성하지 않는 비디오 코딩/디코딩 설정(예: 비디오 코딩 또는 비디오 디코딩)에 적용할 수 있다. 다른 예에서는, 로컬 메모리에서 데이터를 검색하고, 스트리밍 방식으로 네트워크를 통해 전송된다. 비디오 인코딩 장치는 데이터를 인코딩하고 메모리에 데이터를 저장할 수 있으며, 및/또는 비디오 디코딩 장치는 메모리에서 데이터를 검색하고 데이터를 디코딩할 수 있다. 많은 예에서, 데이터를 인코딩하여 메모리에 데이터만 저장하거나, 메모리에서 데이터를 검색하여 데이터를 디코딩하고 서로 통신하지 않는 장치는 인코딩과 디코딩을 수행한다.
도 1의 예에서, 소스 장치(10)은 비디오 소스(120), 비디오 인코더(100) 및 출력 인터페이스(140)로 구성된다. 일부 예에서는, 출력 인터페이스(140)는 모듈레이터/디모듈레이터(모뎀) 및/또는 송신기로 구성될 수 있다. 비디오 소스(120)는 비디오 캡처 장치(예: 카메라), 이전에 캡처한 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 공급자로부터 비디오 데이터를 수신하는 비디오 피드-인 인터페이스, 또는 앞서 언급한 비디오 데이터 소스를 생성하는 컴퓨터 그래픽 시스템으로 구성될 수 있다.
비디오 인코더(100)는 비디오 소스(120)의 비디오 데이터를 인코딩할 수 있다. 일부 예에서는, 소스 장치(10)는 출력 인터페이스(140)를 통해 인코딩된 비디오 데이터를 데스티네이션 장치(20)에 직접 전송한다. 다른 예에서는, 인코딩된 비디오 데이터를 저장 장치(40)에 저장하여 데스티네이션 장치(20)가 디코딩 및/또는 재생을 위해 인코딩된 비디오 데이터에 후속적으로 접근할 수 있다.
도 1의 예에서, 데스티네이션 장치(20)는 입력 인터페이스(240), 비디오 디코더(200) 및 디스플레이 장치(220)로 구성된다. 일부 예에서, 입력 인터페이스(240)는 수신기 및/또는 모뎀으로 구성된다. 입력 인터페이스(240)는 링크(30) 및/또는 저장 장치(40)를 통해 인코딩된 비디오 데이터를 수신할 수 있다. 디스플레이 장치(220)는 데스티네이션 장치(20)와 통합되거나, 데스티네이션 장치(20) 밖에 위치할 수 있다. 일반적으로 디스플레이 장치(220)는 디코딩된 비디오 데이터를 표시한다. 복수의 디스플레이 장치(220)가 있을 수 있다. 예를 들어 디스플레이 장치(220)는 액정 디스플레이(liquid crystal display, LCD), 플라스마 디스플레이, 유기 발광 다이오드(organic light-emitting diode, OLED) 디스플레이 또는 다른 유형의 디스플레이 장치일 수 있다.
도 1에 도시되지는 않았지만, 일부 양태에서는, 비디오 인코더(100)와 비디오 디코더(200)는 오디오 인코더와 오디오 디코더와 각각 통합될 수 있으며, 결합된 데이터 스트림 또는 별도의 데이터 스트림에서의 오디오와 비디오를 인코딩하기 위해 적절한 멀티플렉서-디멀티플렉서 유닛 또는 기타 하드웨어와 소프트웨어로 구성될 수 있다. 어떤 예에서, 해당되는 경우, 디멀티플렉서(MUX-DEMUX) 유닛은 국제 전기 통신 연합(international telecommunication union, ITU) H.223 멀티플렉서 프로토콜 또는 사용자 데이터그램 프로토콜(user datagram protocol, UDP)과 같은 다른 프로토콜을 준수할 수 있다.
예를 들어, 비디오 인코더(100)와 비디오 디코더(200)는 각각 복수의 회로, 즉 하나 이상의 마이크로프로세서, 디지털 신호 처리(digital signal processing, DSP), 애플리케이션-특정 통합 회로(application-specific integrated circuit, ASIC), 필드 프로그래밍머블 게이트 어레이(field-programmable gate array, FPGA), 이산(discrete) 로직, 하드웨어 또는 이들의 조합 중 하나로 구현될 수 있다. 본 출원이 소프트웨어를 통해 부분적으로 구현되는 경우, 장치는 소프트웨어에 사용되는 명령을, 적절한 비휘발성 컴퓨터 판독 저장 매체에 저장할 수 있으며, 본 출원의 기술을 구현하기 위해, 하나 이상의 프로세서를 사용하여 하드웨어에 명령을 실행할 수 있다. 전술한 내용 중 하나(하드웨어, 소프트웨어, 하드웨어 및 소프트웨어의 조합 등을 포함)는 하나 이상의 프로세서로 간주할 수 있다. 비디오 인코더(100)와 비디오 디코더(200)는 각각 하나 이상의 인코더 또는 디코더로 구성될 수 있으며, 인코더 또는 디코더는 해당 장치에 결합된 인코더/디코더(코덱)의 일부로 통합될 수 있다.
본 출원에서는, 일반적으로 비디오 인코더(100)를 다른 장치 "신호화" 또는 어떠한 정보 “전송” (예, 비디오 디코더(200)로의)이라고 부를 수 있다. "신호" 또는 "전송"이라는 용어는 압축된 비디오 데이터를 디코딩하는 데 사용되는 구문 요소 및/또는 기타 데이터의 전송을 대략적으로 나타낼 수 있다. 전송은 실시간으로 또는 거의 실시간으로 발생할 수 있다. 또는 일정 시간이 경과한 후에 통신이 발생할 수 있다. 예를 들어 인코딩된 비트스트림의 구문 요소를 인코딩하는 동안, 컴퓨터가 읽을 수 있는 저장 매체에 저장될 때 통신이 발생할 수 있으며, 디코딩 장치는 구문 요소가 미디어에 저장된 후 언제든지 구문 요소를 검색할 수 있다.
JCT-VC는 H.265(고효율 비디오 코딩-high efficiency video coding, HEVC) 표준을 개발한다. HEVC 표준화는 HEVC 테스트 모델(HEVC 모델, HM)이라 불리는 비디오 디코딩 장치의 진화된 모델에 기초한다. 최신 H.265 표준 문서는 http://www.itu.int/rec/T-REC-H.265에서 이용할 수 있다. 표준 문서의 최신 버전은 H.265(12/16)이며, 표준 문서는 참조에 의해 본 명세서에 내포하고 있다. HM에서 비디오 디코딩 장치는 ITU-TH.264/AVC의 기존 알고리즘과 관련된 몇 가지 추가 기능을 가지고 있다고 가정한다. 예를 들어 H.264는 9개의 예측 코딩 모드를 제공하는 반면, HM은 최대 35개의 예측 코딩 모드를 제공할 수 있다.
JVET는 H.266 표준 개발을 약속하고 있다. H.266 표준화 프로세스는 비디오 디코딩 장치의 진화된 모델을 기반으로 하며, 여기서 이 모델을 H.266 테스트 모델이라고 한다. H.266 알고리즘 설명은 http://phenix.int-evry.fr/jvet에서 확인할 수 있으며, 최신 알고리즘 설명은 JVET-F1001-v2로 구성된다. 알고리즘 설명 문서는 문서 전체의 내용을 참조하여 본 명세서에 내포하고 있다. 또한 JEM 테스트 모델의 참조 소프트웨어는 https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMS/를 이용할 수 있고, 이 소프트웨어 전체를 참조하여 본 명세서에 내포하고 있다.
일반적으로 HM의 운영 모델 설명은 비디오 프레임 또는 사진을 휘도와 채도 샘플 또는 최대 코딩 단위 시퀀스(largest coding unit, LCU)를 포함하는 트리 블록 시퀀스로 분할할 수 있다. 여기서 LCU는 코딩 트리 유닛(coding tree unit, CTU)이라고도 한다. 트리 블록은 H.264 표준의 매크로 블록과 유사한 기능을 가지고 있다. 슬라이스는 디코딩 순서로 여러 개의 연속적인 트리 블록으로 구성된다. 비디오 프레임 또는 사진을 하나 이상의 슬라이스로 분할할 수 있다. 각 트리 블록은 쿼드 트리를 기반으로 코딩 유닛으로 분할될 수 있다. 예를 들어 쿼드트리의 루트 노드 역할을 하는 트리 블록은 4개의 하위 노드로 분할될 수 있으며, 각 하위 노드는 상위 노드 역할을 할 수 있으며, 4개의 다른 하위 노드로 분할된다. 쿼드 트리의 리프 노드 역할을 하는 분할 불가능한 최종 하위 노드는 디코딩된 노드(예: 디코딩된 비디오 블록)로 구성된다. 디코딩된 비트스트림과 관련된 구문 데이터에서 트리 블록을 분할할 수 있는 최대 횟수와 디코딩 노드의 최소 크기를 정의할 수 있다.
코딩 유닛은 디코딩 노드와 관련된 예측 유닛(prediction unit, PU) 및 변환 유닛(transform unit, TU)으로 구성된다. CU의 크기는 디코딩 노드의 크기에 해당하며, CU의 모양은 정사각형이어야 한다. CU의 크기는 8 x 8 픽셀에서 최대 64 x 64 픽셀 사이이거나, 더 큰 트리 블록 크기일 수 있다. 각 CU는 하나 이상의 PU와 하나 이상의 TU로 구성될 수 있다. 예를 들어 CU와 관련된 구문 데이터는 CU를 하나 이상의 PU로 분할하는 것을 설명할 수 있다. 분할 패턴은 CU가 스킵 또는 직접 모드로 인코딩되거나, 인트라(intra) 예측 모드로 인코딩되거나, 인터(inter) 예측 모드로 인코딩될 때 달라질 수 있다. 분할을 통해 얻은 PU는 정사각형이 아닌 모양일 수 있다. 예를 들어, CU와 관련된 구문 데이터는 또한 쿼드트리에 기초한 하나 이상의 TU로 CU를 분할하는 것을 설명할 수 있다. TU는 정사각형 또는 비사각형 모양일 수 있다.
HEVC 표준은 TU 기반 변환을 허용한다. 다른 CU는 다른 TU로 구성될 수 있다. TU의 크기는 일반적으로 분할된 LCU에 대해 정의된 지정된 CU 내의 PU의 크기를 기반으로 설정된다. 그러나, 경우에 따라서는 항상 이와 같지 않을 수 있다. TU의 크기는 보통 PU의 크기와 같거나 더 작다. 일부 실현 가능한 구현에 있어서, 잔여 쿼드트리(residual quadtree, RQT)라고 불리는 쿼드트리 구조를 사용하여 CU에 해당하는 잔여 샘플을 더 작은 단위로 분할할 수 있다. RQT의 리프 노드는 TU라고 할 수 있다. TU와 관련된 픽셀 차이는 변환 계수를 생성하기 위해 변환될 수 있고, 변환 계수는 양자화될 수 있다.
일반적으로 PU는 예측 프로세스에 관한 것이다. 예를 들어, PU가 인트라 모드로 인코딩될 때, PU는 PU의 상호 예측 모드를 설명하는 데이터로 구성될 수 있다. PU가 인터 모드로 인코딩될 때, PU는 PU에 대한 모션 벡터를 정의하는 데이터로 구성될 수 있다. 예를 들어, PU에 대한 모션 벡터를 정의하는 데이터는 수평 구성 요소, 모션 벡터의 수직 구성 요소, 모션 벡터의 해상도(예: 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 가리키는 참조 사진, 및/또는 모션 벡터의 참조 사진 목록(예: 목록 0, 목록 1, 또는 목록 C)을 설명할 수 있다.
일반적으로 변환 및 양자화 프로세스는 TU에 사용된다. 하나 이상의 PU를 포함하는 주어진 CU는 하나 이상의 TUs를 포함할 수 있다. 예측 후, 비디오 인코더(100)은 PU에 해당하는 잔여 값을 계산할 수 있다. 잔여 값은 픽셀 차이로 구성된다. 픽셀 차이는 변환 계수로 변환될 수 있으며, 변환 계수는 양자화되고, TU를 사용하여 스캔되어, 엔트로피 디코딩을 위한 직렬 변환 계수를 생성할 수 있다. 본 출원에서, "비디오 블록"이라는 용어는 일반적으로 CU의 디코딩 노드를 나타내기 위해 사용된다. 특정 응용예에 따라, 본 출원에서는 "비디오 블록"이라는 용어가 디코딩 노드, PU, TU를 포함한 트리 블록(예, LCD 또는 CU)을 나타내기 위해 사용될 수 있다.
비디오 시퀀스는 일반적으로 일련의 비디오 프레임 또는 사진으로 구성된다. 예를 들어 사진 그룹(group of picture, GOP)은 일련의 비디오 사진 또는 하나 이상의 비디오 사진으로 구성된다. GOP는 GOP의 헤더 정보, 하나 이상의 사진의 헤더 정보, 또는 다른 곳의 헤더 정보에서 구문 데이터로 구성될 수 있고, 구문 데이터는 GOP에 포함된 사진의 양을 설명한다. 사진의 각각의 슬라이스는 해당 사진의 코딩 모드를 설명하는 슬라이스 구문 데이터로 구성될 수 있다. 비디오 인코더(100)는 일반적으로 비디오 데이터를 인코딩하기 위해 일부 비디오 슬라이스의 비디오 블록에서 작업을 수행한다. 비디오 블록은 CU의 디코딩 노드에 해당될 수 있다. 비디오 블록의 크기는 고정되거나 변경될 수 있으며, 지정된 디코딩 표준에 따라 달라질 수 있다.
실현 가능한 구현에 있어서, HM은 다양한 PU 크기에 대한 예측을 지원한다. 주어진 CU의 크기가 2N x 2N이라고 가정하면, HM은 2N x 2N 또는 N x N의 PU 크기에 대한 인트라 예측과 2N x 2N, N x 2N 또는 N x N의 대칭 PU 크기에 대한 인터 예측을 지원한다. HM은 또한 2N x nU, 2N x nD, nL x 2N 및 nR x 2N의 PU 크기에 대한 인터 예측의 비대칭 분할을 지원한다. 비대칭 분할에서 CU는 어느 한 방향으로 분할되지 않고, 다른 방향으로 두 부분으로 분할되며, 여기서 한 부분은 CU의 25%를 차지하고, 다른 부분은 75%를 차지한다. CU의 25%를 차지하는 부분은 "n"을 포함한 지표로 표시되고, "U(위), "D(아래)", "L(왼쪽)" 또는 "R(오른쪽)"이 그 뒤를 따른다. 따라서 예를 들어, "2N x nU"는 상단에는 2N x 0.5N PU, 하단에는 2N x 1.5N PU가 있는, 수평으로 분할된 2N x 2N CU를 의미한다.
본 출원에 있어서, "N x N"과 "N 곱하기 N"은 수직 치수와 수평 치수에 있는 비디오 블록의 픽셀 크기, 예를 들어, 16 x 16 픽셀 또는 16 곱하기 16 픽셀 크기를 나타내기 위해 서로 교환하여 사용될 수 있다. 일반적으로 16 x 16 블록은 수직 방향으로 16픽셀(y = 16)이고, 수평 방향으로 16픽셀(x = 16)이다. 마찬가지로, N x N 블록은 보통 수직 방향으로 N 픽셀, 수평 방향으로 N 픽셀을 가지며, 여기서 N 픽셀은 음이 아닌 정수 값이다. 블록의 픽셀은 행과 열에 배열될 수 있다. 또한, 블록에서, 수평 방향의 픽셀 양과 수직 방향의 픽셀 양이 반드시 동일하지 않을 수 있다. 예를 들어, 블록은 N x M 픽셀을 구성할 수 있고, 여기서 M은 반드시 N과 같지 않다.
CU에서의 PU의 인트라 예측 또는 인터 예측 디코딩 후, 비디오 인코더(100)는 CU에서의 TU의 잔여 데이터를 계산할 수 있다. PU는 공간 영역(픽셀 도메인이라고도 함)의 픽셀 데이터로 구성될 수 있고, TU는 변환(예들 들어, 이산 코사인 변환(discrete cosine transform, DCT), 정수 변환, 웨이블릿 변환 또는 기타 개념적으로 유사한 변환)이 잔여 비디오 데이터에 적용된 후의 변환 영역의 계수로 구성될 수 있다. 잔여 데이터는 인코딩되지 않은 사진의 픽셀과 PU에 해당하는 예측 변수의 픽셀 차이와 일치할 수 있다. 비디오 인코더(100)는 CU의 잔여 데이터를 포함하는 TU를 생성한 다음, TU를 변환하여 CU의 변환 계수를 생성할 수 있다.
변환 계수를 생성하기 위해, 변환을 수행한 후에는, 비디오 인코더(100)가 변환 계수를 양자화할 수 있다. 예를 들어, 양자화는 계수를 나타내는 데 사용되는 데이터의 양을 줄이고 추가 압축을 구현하기 위해 계수를 양자화하는 과정을 말한다. 양자화 프로세스는 계수의 일부 또는 전체와 관련된 비트 깊이를 줄일 수 있다. 예를 들어, 양자화 중에, n-비트 값은 반올림을 통해, m-비트 값으로 축소될 수 있으며, n은 m보다 크다.
JEM 모델은 비디오 사진 코딩 구조를 더욱 개선한다. 특히, "쿼드 트리 플러스 이진 트리"(quadtree plus binary tree, QTBT) 구조로 불리는 블록 코딩 구조가 도입된다. HEVC에서의 CU, PU, TU와 같은 개념을 사용하지 않고, QTBT 구조는 보다 유연한 CU 분할 모양을 지원한다. CU는 정사각형 또는 직사각형 모양일 수 있다. 쿼드트리 파티셔닝은 CTU에서 처음 수행되며, 이진 트리 파티셔닝은 쿼드 트리의 리프 노드에서 추가로 수행된다. 또한 대칭 수평 분할과 대칭 수직 분할의 두 가지 이진 트리 분할 모드가 있다. 이진 트리의 리프(leaf) 노드는 CU라고 한다. 예측 및 변환 중에는, JEM 모델의 CU를 더 이상 분할할 수 없다. 즉, JEM 모델에서의 CU, PU 및 TU는 동일한 블록 크기를 가진다. 기존 JEM 모델에서 최대 CTU 크기는 256 x 256 루마 픽셀이다.
일부 실현 가능한 구현에 있어서, 비디오 인코더(100)는 사전 정의된 스캔 순서로 양자화된 변환 계수를 스캔하여 엔트로피 코드화가 가능한 직렬화된 벡터를 생성할 수 있다. 다른 실현 가능한 구현에 있어서, 비디오 인코더(100)은 적응형 스캔을 수행할 수 있다. 1차원 벡터를 형성하기 위해 양자화된 변환 계수를 스캔한 후, 비디오 인코더(100)은 컨텍스트 기반 적응형 가변 길이 코드(context-based adaptive variable0length code, CAVLC), 컨텍스트 기반 적응형 이진 산술 코딩(context-based adaptive binary arithmetic coding, CABAC), 구문 기반 적응형 이진 산술 부호화(syntax-based adaptive binary arithmethic coding, SBAC), 확률 간격 분할 엔트로피(probability inteval partitioning entropy, PIPE) 디코딩, 또는 다른 엔트로피 디코딩 방법을 통해 1차원 벡터를 엔트로피 디코딩할 수 있다. 비디오 인코더(100)는 인코딩된 비디오 데이터와 관련된 구문 요소에 엔트로피 코딩을 추가로 수행하여, 비디오 디코더(200)가 비디오 데이터를 디코딩할 수 있게 할 수 있다.
CABAC를 수행하기 위해, 비디오 인코더(100)는 컨텍스트 모델의 컨텍스트를 전송 대상 기호에 할당할 수 있다. 컨텍스트는 기호의 인접 값이 0이 아닌지와 관련이 있을 수 있다. CAVLC를 수행하기 위해, 비디오 인코더(100)은 전송할 기호의 가변 길이 코드를 선택할 수 있다. 가변 길이 코드(variable-length code, VLC)의 코드 워드는 더 짧은 코드가 더 가능성 있는 기호에 해당하고, 더 긴 코드가 덜 가능성 있는 기호에 해당되도록 구성될 수 있다. 이러한 방식으로, 전송될 모든 기호에 대해 동일한 길이의 코드 워드를 사용하는 것과 비교하여 VLC를 사용하면, 비트 전송률을 줄일 수 있다. CABAC의 확률은 기호에 할당된 컨텍스트에 따라 결정할 수 있다.
본 출원의 실시예에 있어서, 비디오 인코더는 사진 사이의 시간 중복성을 줄이기 위해 인터 예측을 수행할 수 있다. 위에서 설명한 바와 같이, CU는 다른 비디오 압축 코딩 표준에 따라 하나 이상의 예측 유닛 PU을 가질 수 있다. 즉, 복수의 PU가 하나의 CU에 속하거나, PU와 CU의 크기가 같을 수 있다. 본 명세서에서 CU와 PU의 크기가 동일하면, CU에 해당하는 파티션 모드가 파티션이 없거나, CU가 하나의 PU로 분할되어 PU가 균일하게 설명에 사용된다. 비디오 인코더가 인터 예측을 수행할 때, 비디오 인코더는 비디오 디코더로 PU에 대한 모션 정보를 전송할 수 있다. 예를 들어, PU에 대한 모션 정보는 참조 사진 색인, 모션 벡터 및 예측 방향 식별자로 구성될 수 있다. 모션 벡터는 PU의 사진 블록(비디오 블록, 픽셀 블록, 픽셀 세트 등이라고도 함)과 PU의 참조 블록 사이의 변위를 나타낼 수 있다. PU의 참조 블록은 PU의 사진 블록과 유사한 참조 사진의 일부일 수 있다. 참조 블록은 참조 사진 인덱스와 예측 방향 식별자로 표시된 참조 사진에 위치할 수 있다.
PU에 대한 모션 정보를 나타내기 위해 필요한 코드화된 비트의 양을 줄이기 위해, 비디오 인코더는 머지 예측 모드 또는 고급 모션 벡터 예측 모드에 따라, 각 PU에 대한 후보 예측 모션 벡터(Motion Vector, MV) 목록을 생성할 수 있다. PU에 사용된 후보 예측 모션 벡터 목록의 각 후보 예측 모션 벡터는 모션 정보를 나타낼 수 있으며, MV 목록은 후보 모션 정보 목록이라고도 할 수 있다. 후보 예측 모션 벡터 목록의 일부 후보 예측 모션 벡터에 의해 표시되는 모션 정보는 다른 PU에 대한 모션 정보를 기반으로 할 수 있다. 후보 예측 모션 벡터가 지정된 공간 후보 예측 모션 벡터 위치 또는 지정된 시간 후보 예측 모션 벡터 위치의 모션 정보를 나타내는 경우, 후보 예측 모션 벡터는 본 출원에서 "원래" 후보 예측 모션 벡터라고 할 수 있다. 예를 들어, 본 출원에서 머지 예측 모드라고도 하는 머지(Merge) 모드에서는 5개의 원래 공간 후보 예측 모션 벡터 위치와 1개의 원래 시간 후보 예측 모션 벡터 위치가 있을 수 있다. 일부 예에서, 비디오 인코더는 다른 원래 후보 예측 모션 벡터의 일부 모션 벡터를 결합하거나, 원래 후보 예측 모션 벡터를 수정하거나, 후보 예측 모션 벡터로 제로 모션 벡터만 삽입하여, 추가 후보 예측 모션 벡터를 생성할 수 있다. 추가 후보 예측 모션 벡터는 원래 후보 예측 모션 벡터로 간주되지 않으며, 본 출원에서는 인위적으로 생성된 후보 예측 모션 벡터로 참조할 수 있다.
본 출원의 기술은 일반적으로 비디오 인코더에서 후보 예측 모션 벡터 목록을 생성하는 기술과 비디오 디코더에서 동일한 후보 예측 모션 벡터 목록을 생성하는 기술로 구성된다. 비디오 인코더와 비디오 디코더는 후보 예측 모션 벡터 목록을 구성하기 위해 동일한 기술을 구현함으로써 동일한 후보 예측 모션 벡터 목록을 생성할 수 있다. 예를 들어, 비디오 인코더와 비디오 디코더는 동일한 양의 후보 예측 모션 벡터(예: 5개의 후보 예측 모션 벡터)로 목록을 구성할 수 있다. 비디오 인코더와 비디오 디코더는 먼저 공간 후보 예측 모션 벡터(예: 동일한 사진의 인접 블록)를 고려한 다음, 시간 후보 예측 모션 벡터(예: 다른 사진의 후보 예측 모션 벡터)를 고려할 수 있으며, 마지막으로 인위적으로 생성된 후보 예측 모션 벡터를, 필요한 양의 후보 예측 모션 벡터가 목록에 추가될 때까지, 고려할 수 있다. 본 출원의 기술에 따르면, 후보 예측 모션 벡터 목록을 구성하는 동안, 후보 예측 모션 벡터 목록의 길이를 제어하기 위해, 후보 예측 모션 벡터의 한 유형을 나타내도록 플래그 비트를 사용할 수 있다. 예를 들어, 공간 후보 예측 모션 벡터 세트와 시간 후보 예측 모션 벡터는 원래 후보 예측 모션 벡터로 사용될 수 있다. 수동으로 생성된 후보 예측 모션 벡터가 후보 예측 모션 벡터 목록에 추가되면, 후보 예측 모션 벡터 목록에 하나의 플래그 비트 공간이 추가되어 수동으로 생성된 후보 예측 모션 벡터 세트를 나타낼 수 있다. 인코딩 및 디코딩 중에 플래그 비트를 선택하면, 플래그 비트로 표시된 후보 예측 모션 벡터 세트에서 예측 모션 벡터가 선택된다.
CU의 PU에 대한 후보 예측 모션 벡터 목록을 생성한 후, 비디오 인코더는 후보 예측 모션 벡터 목록에서 후보 예측 모션 벡터를 선택하고, 후보 예측 모션 벡터 인덱스를 비트스트림으로 출력할 수 있다. 선택한 후보 예측 모션 벡터는 디코딩되는 타겟 PU의 예측 변수와 가장 근접한 모션 벡터를 생성하기 위한 후보 예측 모션 벡터일 수 있다. 후보 예측 모션 벡터 인덱스는 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 나타낼 수 있다. 비디오 인코더는 PU에 대한 모션 정보로 표시된 참조 블록을 기반으로 PU에 대한 예측 사진 블록을 추가로 생성할 수 있다. PU에 대한 모션 정보는 선택된 후보 예측 모션 벡터로 표시된 모션 정보를 기반으로 결정할 수 있다. 예를 들어, 머지 모드에서 PU에 대한 모션 정보는 선택한 후보 예측 모션 벡터에 의해 표시된 모션 정보와 같을 수 있다. AMVP 모드에서 PU에 대한 모션 정보는 PU에 대한 모션 벡터 차이와 선택된 후보 예측 모션 벡터에 의해 표시된 모션 정보에 기초하여 결정될 수 있다. 비디오 인코더는 CU의 PU에 대한 예측 사진 블록과 CU에 대한 원래 사진 블록을 기반으로 CU에 대한 하나 이상의 잔여 사진 블록을 생성할 수 있다. 그런 다음 비디오 인코더는 하나 이상의 잔여 사진 블록을 인코딩하고, 하나 이상의 잔여 사진 블록을 비트스트림에 출력할 수 있다.
비트스트림은 PU의 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터를 식별하는 데이터로 구성될 수 있다. 명세서에서는 데이터를 식별자 또는 신호라고 한다. 데이터는 후보 예측 모션 벡터 목록의 인덱스로 구성될 수 있고, 타겟모션 벡터는 인덱스를 사용하여 결정된다. 또는 인덱스를 사용하여 대상 모션 벡터가 후보 예측 모션 벡터의 특정 유형에 속하는지를 확인한다. 이 경우, 데이터는 후보 예측 모션 벡터 유형에서 선택된 후보 예측 모션 벡터의 특정 데이터 위치를 나타내는 정보로 구성된다. 비디오 디코더는 PU에 대한 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터를 식별하는 데이터를 얻기 위해 비트 스트림을 파싱하고, 데이터에 기반한 선택된 후보 예측 모션 벡터의 데이터를 결정하고, PU에 대한 후보 예측 모션 벡터 목록에서 선택된 후보자에 의해 예측 모션 벡터에 의해 표시된 모션 정보에 기초한 PU의 모션 정보를 결정할 수 있다. 비디오 디코더는 PU에 대한 모션 정보를 기반으로 PU에 대한 하나 이상의 참조 블록을 식별할 수 있다. PU에 대한 하나 이상의 참조 블록을 식별한 후, 비디오 디코더는 PU에 대한 하나 이상의 참조 블록을 기반으로 PU에 대한 예측 사진 블록을 생성할 수 있다. 비디오 디코더는 CU의 PU에 대한 예측 사진 블록과 CU에 대한 하나 이상의 잔여 사진 블록을 기반으로 CU에 대한 사진 블록을 재구성할 수 있다.
설명의 편의상, 본 출원에 있어서, 위치 또는 사진 블록은 CU 또는 PU와 다양한 공간 관계를 가지는 것으로 설명될 수 있다. 설명은 다음과 같다. 위치 또는 사진 블록은 CU 또는 PU와 관련된 사진 블록과 다양한 공간 관계를 가진다. 또한, 본 출원에 있어서, 비디오 디코더에 의해 현재 디코딩되는 PU를 현재 PU라고 할 수 있고, 처리될 현재 사진 블록이라고도 한다. 본 출원에 있어서, 비디오 디코더가 현재 디코딩하는 CU를 현재 CU라고 할 수 있다. 본 출원에 있어서, 비디오 디코더가 현재 디코딩하는 사진을 현재 사진이라고 할 수 있다. 또한 본 출원에 있어서, PU와 CU의 크기가 동일하거나, PU가 CU인 경우에도 적용 가능하다는 점을 이해해야 한다. PU는 설명에 균일하게 사용된다.
위에서 간략히 설명한 바와 같이, 비디오 인코더(100)는 인터 예측을 통해 CU의 PU에 대한 예측 사진 블록과 모션 정보를 생성할 수 있다. 많은 예에서, 주어진 PU에 대한 모션 정보는 하나 이상의 인접한 PU(즉, 사진 블록이 주어진 PU의 사진 블록에 공간적으로 또는 일시적으로 인접하는 PU)에 대한 모션 정보와 동일하거나 유사할 수 있다. 인접한 PU는 종종 유사한 모션 정보를 가지고 있기 때문에, 비디오 인코더(100)는 인접한 PU에 대한 모션 정보에 기초하여 주어진 PU에 대한 모션 정보를 인코딩할 수 있다. 인접 PU에 대한 모션 정보에 기초하여 주어진 PU에 대한 모션 정보를 인코딩하면, 지정된 PU에 대한 모션 정보를 나타내는 비트스트림에 필요한 코딩된 비트의 양을 줄일 수 있다.
비디오 인코더(100)는 다양한 방식으로 인접한 PU에 대한 모션 정보를 기반으로 지정된 PU에 대한 모션 정보를 인코딩할 수 있다. 예를 들어 비디오 인코더(100)는 지정된 PU에 대한 모션 정보가 인접 PU에 대한 모션 정보와 동일함을 나타낼 수 있다. 본 출원에 있어서, 머지 모드는 주어진 PU에 대한 모션 정보가 인접 PU에 대한 모션 정보와 동일함을 나타내도록 사용되거나, 인접 PU에 대한 모션 정보를 통해 도출될 수 있음을 나타낼 수 있다. 다른 실행 가능한 구현에 있어서, 비디오 인코더(100)는 주어진 PU에 대한 모션 벡터 차이(Motion Vector Difference, MVD)를 계산할 수 있다. MVD는 주어진 PU의 모션 벡터와 인접한 PU의 모션 벡터 간의 차이를 나타낸다. 비디오 인코더(100)은 주어진 PU에 대한 모션 정보에서 주어진 PU에 대한 모션 벡터 대신 MVD로 구성될 수 있다. 비트스트림에서 MVD를 나타내는 데 필요한 코드화된 비트의 양은 주어진 PU에 대한 모션 벡터를 나타내는 데 필요한 코드화된 비트의 양보다 적다. 본 출원에 있어서, 고급 모션 벡터 예측 모드는 후보 모션 벡터를 식별하기 위해 사용되는 MVD와 인덱스 값을 사용하여 주어진 PU에 대한 모션 정보가 디코더에 신호를 보내는 것을 나타내기 위해 사용될 수 있다.
머지 모드 또는 AMVP 모드에서, 주어진 PU에 대한 모션 정보를 디코더에 신호하기 위해, 비디오 인코더(100)는 주어진 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다. 후보 예측 모션 벡터 목록은 하나 이상의 후보 예측 모션 벡터로 구성될 수 있다. 주어진 PU에 대한 후보 예측 모션 벡터 목록의 각 후보 예측 모션 벡터는 모션 정보를 지정할 수 있다. 각 후보 예측 모션 벡터에 의해 표시되는 모션 정보는 모션 벡터, 참조 사진 인덱스 및 예측 방향 식별자로 구성될 수 있다. 후보 예측 모션 벡터 목록의 후보 예측 모션 벡터는 "원래" 후보 예측 모션 벡터로 구성될 수 있고, 각 "원래" 후보 예측 모션 벡터는 주어진 PU와 다른 PU 내에서 지정된 후보 예측 모션 벡터 위치 중 하나의 모션 정보를 나타낸다.
PU에 대한 후보 예측 모션 벡터 목록을 생성한 후, 비디오 인코더(100)는 PU에 대한 후보 예측 모션 벡터 목록에서 후보 예측 모션 벡터 하나를 선택할 수 있다. 예를 들어, 비디오 인코더는 각 후보 예측 모션 벡터를 디코딩되는 PU와 비교하여, 원하는 요율-왜곡(rate-distortion) 비용을 가지는 후보 예측 모션 벡터를 선택할 수 있다. 비디오 인코더(100)는 PU에 대한 후보 예측 모션 벡터 인덱스를 출력할 수 있다. 후보 예측 모션 벡터 인덱스는 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 식별할 수 있다.
또한 비디오 인코더(100)는 PU에 대한 모션 정보로 표시된 참조 블록을 기반으로 PU에 대한 예측 사진 블록을 생성할 수 있다. PU에 대한 모션 정보는 PU에 대한 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터에 의해 표시된 모션 정보에 기초하여 결정될 수 있다. 예를 들어, 머지 모드에서, PU에 대한 모션 정보는 선택된 후보 예측 모션 벡터에 의해 표시된 모션 정보와 같을 수 있다. AMVP 모드에서, PU에 대한 모션 정보는 PU에 대한 모션 벡터 차이와 선택된 후보 예측 모션 벡터에 의해 표시된 모션 정보에 기초하여 결정될 수 있다. 위에서 설명한 바와 같이, 비디오 인코더(100)는 PU에 대한 예측 사진 블록을 처리될 수 있다.
위에서 설명한 바와 같이, 후보 예측 모션 벡터 목록에서 플래그 비트를 사용하여 후보 예측 모션 벡터 목록의 길이를 제어할 수 있다. 자세한 내용은 명세서에 다시 설명되지 않는다.
비디오 디코더(200)가 비트스트림을 수신하면, 비디오 디코더(200)은 CU의 각 PU에 대해 후보 예측 모션 벡터 목록을 생성할 수 있다. PU용 비디오 디코더(200)에 의해 생성된 후보 예측 모션 벡터 목록은 PU용 비디오 인코더(100)에 의해 생성된 후보 예측 모션 벡터 목록과 같을 수 있다. 비트스트림 분석을 통해 비디오 디코더(200)에 의해 얻어진 구문 요소는 선택된 후보 예측 모션 벡터의 위치를 나타낼 수 있다. PU에 대한 후보 예측 모션 벡터 목록 생성 후, 비디오 디코더(200)는 PU에 대한 모션 정보에 의해 표시된 하나 이상의 참조 블록을 기반으로 PU에 대한 예측 사진 블록을 생성할 수 있다. 비디오 디코더(200)는 비트스트림을 파싱하여 얻은 구문 요소에 기초하여 PU에 사용된 후보 예측 모션 벡터 목록에서 선택된 후보가 나타내는 모션 정보로부터 PU에 대한 모션 정보를 결정할 수 있다. 비디오 디코더(200)는 PU의 예측 사진 블록과 CU의 잔여 사진 블록을 기반으로 CU의 사진 블록을 재구성할 수 있다.
위에서 설명한 바와 같이, 후보 예측 모션 벡터 목록에서 플래그 비트를 사용하여 후보 예측 모션 벡터의 한 유형을 나타낼 수 있다. 이 경우 비트스트림 수신 후, 비디오 디코더(200)는 제1 식별자를 얻기 위해 비트 스트림을 먼저 파싱하고, 제1 식별자는 PU의 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 나타낸다. PU의 후보 예측 모션 벡터 목록은 적어도 하나의 제1 후보 모션 벡터와 적어도 하나의 제1 후보 세트로 구성되며, 제2 후보 세트는 적어도 하나의 제1 후보 모션 벡터로 구성된다. 비디오 디코더(200)는 제1 식별자에 기반한 PU의 후보 예측 모션 벡터 목록에서 제1 식별자에 해당하는 타겟 요소를 결정한다. 타겟 요소가 제1 후보 모션 벡터인 경우, 비디오 디코더(200)는 타겟 요소를 PU의 타겟 모션 벡터로 결정하고, 타겟 모션 정보를 사용하여 처리될 사진 블록(PU)의 모션 정보를 예측하여 후속 디코딩 절차를 수행한다. 타겟 요소가 제2 후보 세트인 경우, 비디오 디코더(200)는 비트스트림을 파싱하여 제2 식별자를 얻는데, 여기서 제2 식별자는 제1 식별자로 표시된 제2 후보 세트에서 선택된 후보 예측 모션 벡터의 위치를 식별하는 데 사용된다. 비디오 디코더(200)는 제2 식별자를 기반으로 제1 식별자로 표시된 복수의 제2 후보 모션 벡터에서 타겟 모션 정보를 결정하고, 타겟 모션 정보를 사용하여 처리될 사진 블록(PU)의 모션 정보를 예측하여 후속 디코딩 절차를 수행한다.
위에서 설명한 바와 같이, 후보 예측 모션 벡터 목록에서 플래그 비트를 사용하여 후보 예측 모션 벡터의 한 유형을 나타낼 수 있다. 이 경우, 비트스트림 수신 후, 비디오 디코더(200)는 제1 식별자를 얻기 위해 비트 스트림을 먼저 파싱하는데, 여기서 제1 식별자는 PU의 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 나타낸다. PU의 후보 예측 모션 벡터 목록은 적어도 하나의 후보 모션 벡터와 복수의 제2 후보 모션 정보로 구성되며, 제1 후보 모션 정보는 제1 모션 정보로 구성되며, 제2 후보 모션 정보는 사전 설정된 모션 정보 오프셋으로 구성된다. 비디오 디코더(200)는 제1 식별자에 기반한 PU의 후보 예측 모션 벡터 목록에서 제1 식별자에 해당하는 타겟 요소를 결정한다. 타겟 요소가 제1 후보 모션 벡터인 경우, 비디오 디코더(200)는 타겟 요소를 PU의 타겟 모션 벡터로 결정하고, 타겟 모션 정보를 사용하여 처리될 사진 블록(PU)의 모션 정보를 예측하여 후속 디코딩 절차를 수행한다. 타겟 요소가 복수의 제2 후보 모션 정보를 기반으로 얻어진 경우, 비디오 디코더(200)는 비트스트림을 파싱하여 제2 식별자를 얻고, 제2 식별자와 복수의 제2 후보 모션 정보 중 하나를 기반으로 타겟 모션 정보를 결정하고, 타겟 모션 정보를 사용하여 처리될 사진 블록(PU)의 모션 정보를 예측하여, 후속의 디코딩 절차를 수행한다.
후보 예측 모션 벡터 목록의 후보 모션 벡터는 다른 모드를 기반으로 얻을 수 있다는 점에 유의해야 한다. 이것은 본 출원에 특별히 제한되는 것은 아니다.
실행 가능한 구현에 있어서, 디코더에서, 후보 예측 모션 벡터 목록을 구성하고, 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 얻기 위한 비트스트림을 파싱하는 것은 서로 독립적이며 어떤 순서로든 또는 병행하여 수행될 수 있음을 이해해야 한다.
다른 실현 가능한 구현에 있어서, 디코더에서 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 비트스트림 파싱을 통해 먼저 얻고, 파싱으로 얻은 위치를 기반으로 후보 예측 모션 벡터 목록이 생성된다. 이 실시예에 있어서, 모든 후보 예측 모션 벡터 목록을 구성할 필요는 없으며, 특정하여 후보 예측 모션 벡터를 결정할 수 있다면, 파싱을 통해 얻은 위치의 후보 예측 모션 벡터 목록만 구성하면 된다. 예를 들어, 비트스트림 분석을 통해 선택된 후보 예측 모션 벡터가 후보 예측 모션 벡터 목록의 인덱스가 3인 후보 예측 모션 벡터임을 알 수 있을 때, 인덱스 0에서 인덱스 3까지의 후보 예측 모션 벡터 목록만 구성하여, 후보 예측 모션 벡터 목록을 생성시키면 되고, 인덱스가 3인 후보 예측 모션 벡터가 결정될 수 있다. 이렇게 하면 복잡성을 줄이고 디코딩 효율성을 개선할 수 있다.
도 2는 본 출원의 실시예에 따른 예시 비디오 인코더(100)의 블록 다이어그램이다. 비디오 인코더(100)는 비디오를 후처리 엔티티(41)로 출력하도록 구성된다. 후처리 엔티티(41)는 비디오 인코더(100)에서 인코딩된 비디오 데이터를 처리될 수 있는 비디오 엔티티의 예를 나타낸다. 예를 들어 비디오 엔티티는 미디어 인식 네트워크 요소(MANE) 또는 스티치 장치/편집 장치이다. 경우에 따라서는, 후처리 엔티티(41)는 네트워크 엔티티의 일 예가 될 수 있다. 일부 비디오 코딩 시스템에서는 후처리 엔티티(41)와 비디오 인코더(100)는 별도의 장치의 구성 요소일 수 있다. 그러나 다른 경우, 후처리 실체에 관하여 기술된 기능(41)은 비디오 인코더(100)을 포함하는 동일한 기기에 의해 구현될 수 있다. 예를 들어, 후처리 엔티티(41)는 도 1의 저장 장치(40)의 예이다.
도 2의 예에서 비디오 인코더(100)은 예측 처리 유닛(108), 필터 장치(106), 디코딩된 사진 버퍼(decoded picture buffer, DPB)(107), 섬메이터(summator)(112), 변환기(101), 퀀타이저(102) 및 엔트로피 인코더(103)로 구성된다. 예측 처리 유닛(108)은 인터 예측기(110)와 인트라 예측기(109)로 구성된다. 사진 블록 재구성의 경우, 비디오 인코더(100)는 추가로 역 퀀타이저(104), 역 변환기(105) 및 섬메이터(111)로 구성된다. 필터 장치(106)은 하나 이상의 루프 필터, 예를 들어, 디블록킹 필터, 적응형 루프 필터(adaptive loop filter, ALF), 샘플 적응형 오프셋(Sample Adaptive Offset, SAO) 필터를 나타낸다. 필터 장치(106)는 도 2에서 루프 필터로 표시되어 있지만, 다른 구현에서는 필터 장치(106)는 포스트 루프 필터로 구현될 수 있다. 예를 들어 비디오 인코더(100)는 비디오 데이터 메모리와 파티션 장치로 구성될 수 있다(도에는 도시되지 않음).
비디오 데이터 메모리는 비디오 인코더(100)의 구성 요소에 의해 인코딩된 비디오 데이터를 저장할 수 있다. 비디오 데이터 메모리에 저장된 비디오 데이터는 비디오 소스(120)에서 얻을 수 있다. DPB(107)는 비디오 인코더(100)에서 비디오 데이터를 인트라 또는 인터 코딩 모드로 인코딩하는 데 사용되는 참조 비디오 데이터를 저장하는 참조 이미지 메모리일 수 있다. 비디오 데이터 메모리와 DPB(107)는 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함하는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 자기 RAM(magnetic random access memory, MRAM), 저항 RAM(resistive random access memory, RRAM) 또는 다른 유형의 메모리 장치와 같은 다양한 유형의 메모리 중 하나를 구성할 수 있다. 비디오 데이터 메모리와 DPB(107)는 동일한 메모리 장치 또는 별도의 메모리 장치에 의해 제공될 수 있다. 다양한 예에서 비디오 데이터 메모리는 비디오 인코더(100의 다른 구성 요소와 함께 칩에 통합되거나, 이러한 구성 요소에 상대적인 칩 외부에 배치될 수 있다.
도 2에 도시된 바와 같이, 비디오 인코더(100)는 비디오 데이터를 수신하고, 비디오 데이터를 비디오 데이터 메모리에 저장한다. 분할 장치는 비디오 데이터를 여러 개의 사진 블록으로 분할하며, 이러한 사진 블록은 쿼드 트리 구조나 이진 트리 구조를 기반으로 하는 더 작은 블록으로 분할될 수 있다. 분할은 슬라이스(slice), 타일(tile) 또는 기타 더 큰 단위로 분할할 수 있다. 비디오 인코더(100)는 일반적으로 인코딩될 비디오 슬라이스에서 사진 블록을 인코딩하는 구성 요소이다. 슬라이스는 복수의 사진 블록(타일이라고 하는 사진 블록 세트로 분할될 수 있음)으로 분할될 수 있다. 예측 처리 유닛(108)은 현재 사진 블록에 사용될 수 있는 복수의 가능한 코딩 모드 중 하나를 선택할 수 있으며, 예를 들어, 복수의 인트라 코딩 모드 또는 복수의 인터 코딩 모드 중 하나를 선택할 수 있다. 예측 처리 유닛(108)은 잔여 블록을 생성하기 위해 획득한 인트라 코딩/디코딩 및 인터 코딩/디코딩 블록을 섬메이터(112)에 제공하고, 참조 영상으로 사용되는 인코딩 블록을 재구성하기 위해 섬메이터(111)에 제공할 수 있다.
예측 처리 유닛(108)의 인트라 예측기(109)는 공간 중복성을 제거하기 위해, 현재 사진 블록과 동일한 프레임 또는 슬라이스에 있는 하나 이상의 인접 블록에 대해 인코딩될 현재 사진 블록에 대해 인트라 예측 인코딩을 수행할 수 있다. 예측 처리 유닛(108)의 인터 예측기(110)는 시간 중복성을 제거하기 위해, 하나 이상의 참조 이미지에서 하나 이상의 예측 블록에 상대적인 현재 사진 블록에서 인터 예측 인코딩을 수행할 수 있다.
특히, 인터 예측기(110)는 현재 사진 블록을 인코딩하는 데 사용되는 인터 예측 모드를 결정하도록 구성할 수 있다. 예를 들어, 인터 예측기(110)는 후보 인터 예측 모드 세트에서 다양한 인터 예측 모드의 요율-왜곡 값을 계산하고, 인터 예측 모드에서 최적의 요율-왜곡 기능을 가지는 인터 예측 모드를 선택할 수 있다. 요율-왜곡 분석은 일반적으로 인코딩되지 않은 블록과 인코딩된 블록을 생성하기 위해 인코딩되어야 하는 원래 블록 사이의 왜곡(distortion)(또는 오류(error))과 인코딩된 블록을 생성하는 데 사용되는 비트 요률(bit rate)(즉, 비트 수)을 결정하는 데 사용된다. 예를 들어, 인터 예측기(110)는 인터 예측 모드에서 현재 사진 블록에서 인터 예측을 수행하는 데 사용되는 인터 예측 모드로서, 가장 작은 요율-왜곡 비용을 가지며 현재 사진 블록을 인코딩하는 데 사용되는 인터 예측 모드를 결정할 수 있다.
인터 예측기(110)는 결정된 인터 예측 모드를 기반으로 현재 사진 블록에서 하나 이상의 하위 블록의 모션 정보(예: 모션 벡터)를 예측하고, 모션 정보(예: 모션 벡터)를 사용하여 현재 사진 블록의 예측 블록을 얻거나 생성하도록 구성된다. 현재 사진 블록에 하나 이상의 하위 블록이 있다. 인터 예측기(110)는 참조 영상 목록의 한 참조 영상에서 모션 벡터가 가리키는 예측 블록을 찾을 수 있다. 인터 예측기(110)는 사진 블록 및 비디오 슬라이스와 관련된 구문 요소를 추가로 생성하고, 비디오 디코더(200)이 구문 요소를 사용하여, 비디오 슬라이스의 사진 블록을 디코딩할 수 있도록 한다. 또는 예제에서 인터 예측기(110)는 각 하위 블록의 모션 정보를 사용하여, 하위 블록의 예측 블록을 생성하여 현재 사진 블록의 예측 블록을 얻는 모션 보상 프로세스를 수행한다. 여기서 인터 예측기(110)는 모션 추정 프로세스와 모션 보상 프로세스를 수행한다는 점을 이해해야 한다.
특히, 현재 사진 블록에 대한 인터 예측 모드를 선택한 후, 인터 예측기(110)는 현재 사진 블록의 선택된 인터 예측 모드를 나타내는 정보를 엔트로피 인코더(103)에 제공하여, 엔트로피 인코더(103)가 선택한 인터 예측 모드를 나타내는 정보를 인코딩할 수 있다.
인트라 예측기(109)는 현재 사진 블록에 대해 인트라 예측을 수행할 수 있다. 특히, 인트라 예측기(109)는 현재 블록을 인코딩하는 데 사용되는 인트라 예측 모드를 결정할 수 있다. 예를 들어, 인트라 예측기(109)는 비트 요율-왜곡 분석을 통해 다양한 테스트 대상 예측 모드에 대한 비트 요율-왜곡 값을 계산하고, 테스트 대상 모드에서 최적의 비트 요율-왜곡 특성을 가진 인트라 예측 모드를 선택할 수 있다. 어떤 경우든 사진 블록의 인트라 예측 모드를 선택한 후, 인트라 예측기(109)는 현재 사진 블록의 선택된 인트라 예측 모드를 나타내는 정보를 엔트로피 인코더(103)에 제공하여, 엔트로피 인코더(103)가 선택한 인트라 예측 모드를 나타내는 정보를 인코딩할 수 있다.
예측 처리 유닛(108)이 인터 예측과 인트라 예측을 통해 현재 사진 블록의 예측 블록을 생성한 후, 비디오 인코더(100)는 인코딩될 현재 사진 블록에서 예측 블록을 감산하여 잔여 사진 블록을 형성한다. 섬메이터(112)는 감산 연산을 수행하는 하나 이상의 성분을 나타낸다. 잔여 블록의 잔여 비디오 데이터는 하나 이상의 변환 단위(변환 단위, TU)로 구성될 수 있고, 변환기(101)에 적용할 수 있다. 변환기(101)는 이산 코사인 변환(discrete cosine transform, DCT) 또는 개념적으로 유사한 변환과 같은 변환을 통해 잔여 비디오 데이터를 잔여 변환 계수로 변환한다. 변압기(101)은 픽셀 값 도메인의 잔여 비디오 데이터를 변환 도메인(예: 주파수 도메인)으로 변환할 수 있다.
변환기(101)는 획득한 변환 계수를 퀀타이저(102)로 보낼 수 있다. 퀀타이저(102)는 변환 계수를 양자화하여 비트 전송률을 더욱 낮춘다. 일부 예에서는 퀀타이저(102)는 양자화된 변환 계수를 포함하는 행렬을 추가로 스캔할 수 있다. 또는 엔트로피 인코더(103)가 스캔을 수행할 수 있다.
양자화 후, 엔트로피 인코더(103)는 양자화된 변환 계수에 엔트로피 인코딩을 수행한다. 예를 들어 엔트로피 인코더(103)은 컨텍스트 적응형 가변 길이 코딩(CAVLC), 컨텍스트 적응형 이진 산술 코딩(CABAC), 구문 기반 상황 적응형 이진 산술 코딩(SBAC), 확률 간격 분할 엔트로피 코딩 또는 다른 엔트로피 코딩 방법을 수행할 수 있다. 엔트로피 인코더(103)이 엔트로피 인코딩을 수행한 후, 인코딩된 비트스트림은 비디오 디코더(200)에 전송되거나, 이후 전송을 위해 보관되거나, 비디오 디코더(200)에 의해 검색될 수 있다. 엔트로피 인코더(103)은 인코딩될 현재 사진 블록의 구문 요소에 엔트로피 인코딩을 추가로 수행할 수 있다.
역 퀀타이저(104)와 역 변환기(105)는 각각 역 양자화와 역 변환을 적용하여 픽셀 영역의 잔여 블록을 재구성하여 나중에 참조 영상의 참조 블록으로 사용된다. 섬메이터(111)는 인터 예측기(110) 또는 인트라 예측기(109)에 의해 생성된 예측 블록에 재구성된 잔여 블록을 추가하여 재구성된 사진 블록을 생성한다. 필터 장치(106)는 재구성된 사진 블록에 적용되어, 블록 아티팩트(block artifacts)와 같은 왜곡을 줄일 수 있다. 그런 다음 재구성된 사진 블록은 디코딩된 영상 버퍼 (107)에 참조 블록으로 저장되고, 인터 예측기(110)는 참조 블록으로 사용하여 후속 비디오 프레임 또는 영상의 블록에 대해 인터 예측을 수행할 수 있다.
비디오 인코더(100)의 다른 구조 변형이 비디오 스트림을 인코딩하는 데 사용될 수 있다는 것을 이해해야 한다. 예를 들어, 일부 사진 블록이나 이미지 프레임의 경우, 비디오 인코더(100)는 잔여 신호를 직접 양자화할 수 있음에 따라, 변환기(101) 및 역 변환기(105)에 의한 처리가 필요하지 않다. 또는 일부 사진 블록이나 이미지 프레임의 경우, 비디오 인코더(100)는 잔여 데이터를 생성하지 않으며, 그에 따라 변환기(101), 퀀타이저(102), 역 퀀타이저(104) 및 역 변환기(105)에 의한 처리가 필요하지 않다. 또는, 비디오 인코더(100)은 필터 장치(106)에 의해 처리되지 않고 재구성된 사진 블록을 참조 블록으로 직접 저장할 수 있다. 이와 달리, 비디오 인코더(100)의 퀀타이저(102)와 역 퀀타이저(104)를 결합할 수 있다.
도 3은 본 출원의 실시예에 따른 예시 비디오 디코더(200)의 블록 다이어그램이다. 도 3의 예에 있어서, 비디오 디코더(200)는 엔트로피 디코더(203), 예측 처리 유닛(208), 역 퀀타이저(204), 역 변환기(205), 섬메이터(211), 필터 장치(206) 및 DPB(207)로 구성된다. 예측 처리 유닛(208)은 인터 예측기(210)와 인트라 예측기(209)로 구성될 수 있다. 일부 예에서, 비디오 디코더(200)는 도 2의 비디오 인코더(100)과 관련하여 기술된 인코딩 프로세스와 실질적으로 역행하는 디코딩 프로세스를 수행할 수 있다.
디코딩 중에, 비디오 디코더(200)는 인코딩된 비디오 슬라이스의 사진 블록과 관련 구문 요소를 나타내는 인코딩된 비디오 비트스트림을 비디오 인코더(100)로부터 수신한다. 비디오 디코더(200)는 네트워크 엔티티(42)로부터 비디오 데이터를 수신할 수 있고, 선택적으로 비디오 데이터를 비디오 데이터 메모리에 추가로 저장할 수 있다(도면에는 도시되지 않음). 비디오 데이터 메모리는 인코딩된 비디오 비트스트림과 같이 비디오 디코더(200)의 구성 요소에 의해 디코딩되는 비디오 데이터를 저장할 수 있다. 비디오 데이터 메모리에 저장된 비디오 데이터는 예를 들어 비디오 데이터의 유무선 네트워크 통신을 통해 저장 장치(40) 또는 카메라와 같은 로컬 영상 소스 또는 물리적 데이터 저장 매체에 액세스하여 얻을 수 있다. 비디오 데이터 메모리는 인코딩된 비디오 비트스트림에서 인코딩된 비디오 데이터를 저장하도록 구성된 디코딩된 사진 버퍼(DPB)로 사용될 수 있다. 따라서 비디오 데이터 메모리는 도 3에 나와 있지 않지만, 비디오 데이터 메모리와 DPB(207)는 동일한 메모리이거나, 별도로 배치된 메모리일 수 있다. 비디오 데이터 메모리와 DPB(207)은 동기식 DRAM(Synchronous DRAM), 자기저항 RAM(MRAM), 저항성 RAM(RRAM) 또는 다른 유형의 메모리 장치를 포함하는 동적 랜덤 액세스 메모리(DRAM) 중 하나에 의해 구성될 수 있다. 다양한 예에서, 비디오 데이터 메모리는 비디오 디코더(200)의 다른 구성 요소와 함께 칩에 통합되거나, 또는 이러한 구성 요소에 상대적으로 칩 외부에 배치될 수 있다.
네트워크 엔티티(42)는 예를 들어 서버, MANE, 비디오 편집기/클리퍼 또는 위에서 설명한 기술 중 하나 이상을 구현하도록 구성된 다른 장치일 수 있다. 네트워크 엔티티(42)는 비디오 인코더(예: 비디오 인코더(100))를 구성하거나, 구성하지 않을 수 있다. 네트워크 엔티티(42)가 인코딩된 비디오 비트스트림을 비디오 디코더(200)으로 보내기 전에, 네트워크 엔티티(42)는 본 출원에 기술된 기술의 일부를 구현할 수 있다. 일부 비디오 디코딩 시스템에서는 네트워크 엔티티(42)와 비디오 디코더(200)가 별도의 장치의 구성 요소일 수 있다. 또 다른 경우, 네트워크 엔티티(42)와 관련하여 기술된 기능은 비디오 디코더(200)를 포함하는 동일한 장치에 의해 구현될 수 있다. 경우에 따라서는, 네트워크 엔티티(42)가 도 1의 저장 장치(40)의 예가 될 수 있다.
비디오 디코더(200)의 엔트로피 디코더(203)는 비트스트림에서 엔트로피 디코딩을 수행하여 정량자화된 계수 및 일부 구문 요소를 생성한다. 엔트로피 디코더(203)는 구문 요소를 예측 처리 유닛(208)으로 전달한다. 비디오 디코더(200)는 비디오 슬라이스 수준 및/또는 사진 블록 수준에서 구문 요소들/하나의 구문 요소를 수신할 수 있다.
비디오 슬라이스가 인트라-디코딩된(I) 슬라이스로 디코딩되면, 예측 처리 유닛(208)의 인트라 예측기(209)는 표시된 인트라 예측 모드와 이전에 디코딩된 현재 프레임 또는 이미지의 블록 데이터를 기반으로 현재 비디오 슬라이스의 사진 블록에 대한 예측 블록을 생성할 수 있다. 비디오 슬라이스가 인터_디코딩된(즉, B 또는 P) 슬라이스로 디코딩되는 경우, 예측 처리 유닛(208)의 인터 예측기(210)는 엔트로피 디코더(203)에서 수신한 구문 요소를 기반으로 현재 비디오 슬라이스의 현재 사진 블록을 디코딩(예: 인터 예측을 수행)하는 데 사용되는 인터 예측 모드를 결정하고, 결정된 인터 예측 모드에 기반한 현재 사진 블록을 결정할 수 있다. 특히, 인터 예측기(210)는 현재 비디오 슬라이스의 현재 사진 블록을 예측하기 위해 새 인터 예측 모드를 사용할지의 여부를 결정할 수 있다. 구문 요소가 현재 사진 블록을 예측하기 위해 새 인터 예측 모드를 사용한다고 표시되면, 인터 예측기(210)는 현재 비디오 슬라이스의 현재 사진 블록의 모션 정보, 또는 새 인터 예측 모드(예: 구문 요소에 의해 표시된 새 인터 예측 모드 또는 디폴트 새로운 인터 예측 모드)를 기반으로 현재 사진 블록의 모션 정보를 예측하여, 현재 사진 블록의 예측 모션 정보 또는 현재 사진 블록의 예측 모션 정보를 기반으로 현재 사진 블록 또는 모션 보정 프로세스를 사용하여 현재 사진 블록의 하부 블록의 예측 모션 정보를 기반으로 현재 사진 블록 또는 현재 사진 블록의 하위 블록에 대한 예측 블록을 얻거나 생성한다. 여기에서 모션 정보는 참조 사진 정보와 모션 벡터로 구성될 수 있다. 참조 사진 정보는 단방향/양방향 예측 정보, 참조 사진 목록 번호 및 참조 사진 목록에 해당하는 참조 사진 인덱스로 구성될 수 있지만, 이에 제한되지는 않는다. 인터 예측을 위해, 예측 블록은 참조 사진 목록 중 하나에 있는 참조 사진 중 하나에서 생성될 수 있다. 비디오 디코더(200)는 DPB(207)에 저장된 참조 사진을 기반으로 참조 사진 목록 0과 목록 1을 구성할 수 있다. 현재 사진의 참조 프레임 인덱스는 참조 프레임 목록 0과 참조 프레임 목록 1 중 하나 또는 둘 다로 구성될 수 있다. 일부 예에서 비디오 인코더(100)은 새로운 인터 예측 모드를 사용하여 특정 블록의 특정 구문 요소를 디코딩할지의 여부를 나타내기 위해 신호를 보내거나, 새로운 인터 예측 모드를 사용할지의 여부를 나타내며, 어떤 새로운 인터 예측 모드가 특정 블록의 특정 구문 요소를 디코딩하기 위해 특별히 사용되는지를 나타내기 위해 신호를 보낼 수 있다. 여기서 인터 예측기(210)가 모션 보상 프로세스를 수행한다는 점을 이해해야 한다.
역 퀀다이저(204)는 비트스트림에 제공되고, 엔트로피 디코더(203)에 의해 디코딩되는 양자화된 변환 계수에 대해 역 양자화, 즉 디퀀타이즈(dequantizies)를 수행한다. 역 양자화 프로세스는 비디오 슬라이스의 각 사진 블록에 대해 비디오 인코더(100)에 의해 계산된 양자화 매개 변수를 사용하여 적용할 양자화 정도를 결정하는 것과 유사하게 적용될 역 양자화 정도를 결정하는 것으로 구성될 수 있다. 역 변환기(205)는 역 변환기(예: 역 DCT, 역 정수 변환 또는 개념적으로 유사한 역변환 프로세스)를 변환 계수에 적용하여 픽셀 도메인 잔여 블록을 생성한다.
인터 예측기(210)가 현재 사진 블록 또는 현재 사진 블록의 하위 블록에 사용되는 예측 블록을 생성한 후, 비디오 디코더(200)는 역 변환기(205)의 잔여 블록과 인터 예측기(210)에 의해 생성된 해당 예측 블록을 합계하여 재구성된 블록을 구한다. 사진 블록 섬메이터(211)는 합산 작업을 수행하는 구성 요소를 나타낸다. 필요한 경우, 루프 필터(어쨌든 디코딩 루프)를 사용하여 픽셀을 부드럽게 하거나, 다른 방법으로 비디오 품질을 개선할 수 있다. 필터 유닛(206)은 하나 이상의 루프 필터(예: 디블록킹 필터, 적응형 루프 필터(adaptive loop filter, ALF), 샘플 적응형 오프셋(Sample Adaptive Offset, SAO) 필터를 나타낼 수 있다. 필터 유닛(206)은 도 3에서 인 루프(in-loop) 필터로 표시되지만, 다른 구현에서는 필터 유닛(206)을 포스트 루프(post-loop) 필터로 구현할 수 있다. 예를 들어 필터 유닛(206)은 블록 변형을 줄이기 위해 블록 재구성에 적용되며, 이 결과는 디코딩된 비디오 스트림으로 출력된다. 또한, 주어진 프레임 또는 사진의 디코딩된 사진 블록은 디코딩된 사진 버퍼(207)에 추가로 저장될 수 있고, DPB(207)는 후속 모션 보정에 사용되는 참조 영상을 저장한다. DPB(207)는 메모리의 구성 요소일 수 있고, 이후에 디스플레이 장치(예: 도 1의 디스플레이 장치(220))에 표시하기 위해 디코딩된 비디오를 추가로 저장하거나, 이러한 메모리 형식과 분리될 수 있다.
인코딩된 비디오 비트 스트림을 디코딩하는 데 비디오 디코더(200)의 다른 구조 변형을 사용할 수 있다는 것을 이해해야 한다. 예를 들어, 비디오 디코더(200)는 필터 유닛(206)에 의해 처리되지 않고 출력 비디오 스트림을 생성할 수 있다. 또는 일부 사진 블록이나 이미지 프레임의 경우, 비디오 디코더(200)의 엔트로피 디코더(203)는 디코딩을 통해 양자화된 계수를 얻지 못하며, 그에 따라 역 퀀타이저(204)와 역 변환기(205)에 의한 처리가 필요하지 않다.
위에서 설명한 바와 같이, 본 출원의 기술은 예를 들어 인터 디코딩과 관련이 있다. 본 출원의 기술은 상기 설명된 모든 비디오 디코더에 의해 수행될 수 있고, 비디오 디코더는, 예를 들어 비디오 인코더(100)과 도 1 내지 도 3에 도시되어 설명한 비디오 디코더(200으로 구성되어 있다. 즉, 실현 가능한 구현에 있어서, 도 2를 참조하여 설명된 인터 예측기(110)는 비디오 데이터 블록에서 인코딩하는 동안 인터 예측을 수행할 때, 이하 기술되는 특정 기술을 수행할 수 있다. 다른 실현 가능한 구현에 있어서, 도 3을 참조하여 설명된 인터 예측기(210)는 비디오 데이터 블록에서 디코딩하는 동안 인터 예측을 수행할 때, 이하에 설명된 특정 기술을 수행할 수 있다. 그러므로, 일반적인 "비디오 인코더" 또는 "비디오 디코더"에 대한 참조는, 비디오 인코더(100), 비디오 디코더(200), 또는 다른 비디오 인코딩 유닛 또는 인코딩 유닛을 구성할 수 있다.
본 출원의 비디오 인코더(100) 및 비디오 디코더(200)에서 절차에 대한 처리 결과는 추가 처리 후 다음 절차로 출력될 수 있음을 이해해야 한다. 예를 들어 보간 필터링, 모션 벡터 유도 또는 루프 필터링과 같은 절차 후, 해당 절차에 대한 처리 결과에 대해 클리핑 또는 시프트와 같은 작업이 추가로 수행된다.
예를 들어, 현재 사진 블록의 제어점이고, 인접 어파인 코딩 블록의 모션 벡터에 기초하여 파생된 모션 벡터는 추가로 처리될 수 있다. 이는 본 출원에만 국한되는 것은 아니다. 예를 들어, 모션 벡터 값은 특정 비트 폭 범위 내에 있도록 제한된다. 모션 벡터의 허용되는 비트 폭을 비트깊이(bitDepth)라고 가정하면, 모션 벡터 값은 -2^(비트깊이 - 1)에서 2^(비트깊이 - 1) - 1까지이며, 여기서 기호 "^"는 지수(exponentiation)를 나타낸다. 비트깊이가 16이면, 값의 범위는 -32768 내지 32767 이다. 비트깊이가 18이면, 값 범위는 -131072 내지 131071 이다. 모션 벡터 값은 다음 두 가지 방법 중 하나로 제한될 수 있다.
방법 1: 모션 벡터의 가장 중요한 비트가 제거된다.
ux = (vx+2bitDepth) % 2bitdepth
vx = (ux > = 2bitDepth-1) ? (ux - 2bitDepth) : ux
uy=(vy+2bitDepth) % 2bitDepth
vy = (uy > = 2bitDepth-1) ? (uy - 2bitDepth) : uy
예를 들어, vx 값은 -32769이고, 32767은 전술한 공식에 따라 도출된다. 값은 두 개의 보완 표현으로 컴퓨터에 저장되며, -32769의 두 개의 보완 표현은 1,0111, 111, 111, 1111, 1111 (17 비트)이며, 오버플로를 위한 컴퓨터 처리 작업은 가장 중요한 비트를 폐기한다. 그러므로, vx의 값은 0111, 1111, 1111, 1111, 1111, 즉 32767이다. 이 값은 공식에 따라 처리를 통해 도출된 결과와 일치한다.
방법 2: 모션 벡터에 클리핑이 수행되고 다음 공식이 사용된다.
vx = Clip(-2bitDepth-1, 2bitDepth-1 - 1, vx)
vy = Clip3(-2bitDepth-1, 2bitDepth-1 - 1, vy)
전술한 공식에서 클립 3은 z 값을 [x, y] 범위로 클리핑하는 것으로 정의된다.
Figure pct00001
도 4는 본 출원의 실시예에 따른 인터 예측 모듈(121)의 개략 블록 다이어그램이다. 예를 들어, 인터 예측 모듈(121)은 모션 추정 장치와 모션 보정 장치로 구성될 수 있다. PU와 CU의 관계는 비디오 압축 코딩 표준에 따라 달라진다. 인터 예측 모듈(121)은 복수의 분할 패턴에 따라 현재의 CU를 PU로 분할할 수 있다. 예를 들어, 인터 예측 모듈(121)은 현재 CU를 2N x 2N, 2N x N, N x 2N 및 N x N 분할 패턴에 따라 PU로 분할할 수 있다. 다른 구현에 있어서, 현재 CU가 현재 PU이다. 이에 한정되지 않는다.
인터 예측 모듈(121)은 각 PU에 대한 정수 모션 추정(Integer Motion Estimation, IME)과 분수 모션 추정(Fraction Motion Estimation, FME)을 수행할 수 있다. 인터 예측 모듈(121)이 PU에서 IME를 수행할 때, 인터 예측 모듈(121)은 참조 블록을 위해 하나 이상의 참조 사진을 검색할 수 있다. PU에 대한 참조 블록을 찾은 후, 인터 예측 모듈(121)은 PU와 PU에 대한 참조 블록 사이의 공간 변위를 정수로 나타내는 모션 벡터를 생성할 수 있다. 인터 예측 모듈(121)이 PU에 FME를 수행할 때, 인터 예측 모듈(121)은 PU에서 IME를 수행함으로써 생성된 모션 벡터를 개선할 수 있다. PU에서 FME를 수행함으로써 생성된 모션 벡터는 부차적인 정밀도, 예를 들어 1/2 픽셀 정밀도 또는 1/4 픽셀 정밀도를 가질 수 있다. PU에 대한 모션 벡터를 생성한 후, 인터 예측 모듈(121)은 PU에 대한 모션 벡터를 사용하여 PU에 대한 예측 사진 블록을 생성할 수 있다.
인터 예측 모듈(121)이 AMVP 모드에서 PU에 대한 모션 정보를 디코더로 전송하는 일부 실현 가능한 구현에 있어서, 인터 예측 모듈(121)은 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다. 후보 예측 모션 벡터 목록은 하나 이상의 원래 후보 예측 모션 벡터와 하나 이상의 원래 후보 예측 모션 벡터에서 파생된 하나 이상의 추가 후보 예측 모션 벡터로 구성될 수 있다. PU에 대한 후보 예측 모션 벡터 목록을 생성한 후, 인터 예측 모듈(121)은 후보 예측 모션 벡터 목록에서 후보 예측 모션 벡터를 선택하고, PU에 대한 모션 벡터 차이(MVD)를 생성할 수 있다. PU에 대한 MVD는 선택된 후보 예측 모션 벡터에 의해 지시된 모션 벡터와 IME와 FME를 통해 PU에 대해 생성된 모션 벡터 간의 차이를 나타낼 수 있다. 이러한 실현 가능한 구현에 있어서, 인터 예측 모듈(121)은 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 식별하는 후보 예측 모션 벡터 인덱스를 출력할 수 있다. 인터 예측 모듈(121)은 PU용 MVD를 추가로 출력할 수 있다. 다음은 본 출원의 실시예에서의 도 6의 고급 모션 벡터 예측(AMVP) 모드의 실현 가능한 구현에 대해 자세히 설명한다.
PU에 대한 모션 정보를 생성하기 위해 PU에서 IME와 FME를 수행하는 것 외에, 인터예측 모듈(121)은 PU에서 머지(Merge) 작업을 추가로 수행할 수 있다. 인터 예측 모듈(121)이 PU에서 머지 작업을 수행할 때, 인터예측 모듈(121)은 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다. PU에 대한 후보 예측 모션 벡터 목록은 하나 이상의 원래 후보 예측 모션 벡터와 하나 이상의 원래 후보 예측 모션 벡터에서 얻은 하나 이상의 추가 후보 예측 모션 벡터로 구성될 수 있다. 후보 예측 모션 벡터 목록의 원래 후보 예측 모션 벡터는 하나 이상의 공간 후보 예측 모션 벡터와 시간 후보 예측 모션 벡터로 구성될 수 있다. 공간 후보 예측 모션 벡터는 현재 사진에서 다른 PU에 대한 모션 정보를 나타낼 수 있다. 시간 후보 예측 모션 벡터는 현재 사진과 다른 사진의 해당 PU에 대한 모션 정보에 기초할 수 있다. 시간 후보 예측 모션 벡터는 시간 운동 벡터 예측(TMVP)이라고도 할 수 있다.
후보 예측 모션 벡터 목록을 생성한 후, 인터 예측 모듈(121)은 후보 예측 모션 벡터 목록에서 후보 예측 모션 벡터 하나를 선택할 수 있다. 그런 다음, 인터 예측 모듈(121)은 PU에 대한 모션 정보에 의해 표시된 참조 블록을 기반으로 PU에 대한 예측 사진 블록을 생성할 수 있다. 머지 모드에서 PU에 대한 모션 정보는 선택된 후보 예측 모션 벡터에 의해 표시된 모션 정보와 같을 수 있다. 이하 설명된 도 5는 머지 모드의 예에 대한 흐름도이다.
본 출원의 기술에 따르면, 후보 예측 모션 벡터 목록을 구성하는 동안, 원래 후보 예측 모션 벡터는 후보 예측 모션 벡터 목록에 직접 구성될 수 있고, 플래그 비트는 후보 예측 모션 벡터 목록의 길이를 제어하도록 추가 후보 예측 모션 벡터의 한 유형을 나타내기 위해 사용될 수 있다. 특히, 다른 유형의 추가 후보 예측 모션 벡터는 다른 플래그 비트를 사용하여 표시된다. 인코딩 및 디코딩 중에, 플래그 비트를 선택하면, 플래그 비트로 표시된 후보 예측 모션 벡터 집합에서 예측 모션 벡터가 선택된다. 플래그 비트로 표시된 후보 예측 모션 벡터는 사전 설정된 모션 정보 오프셋일 수 있다.
IME와 FME를 통해 PU에 대한 예측 사진 블록을 생성하고 머지 작업을 통해 PU에 대한 예측 사진 블록을 생성한 후, 인터 예측 모듈(121)은 FME 작업을 수행하여 생성된 예측 사진 블록 또는 머지 작업을 수행하여 생성된 예측 사진 블록을 선택할 수 있다. 일부 실현 가능한 구현에 있어서, 인터 예측 모듈(121)은 FME 연산에 의해 생성된 예측 사진 블록과 머지 작업을 수행하여 생성된 예측 사진 블록의 요율-왜곡 비용을 분석하여 PU에 대한 예측 사진 블록을 선택할 수 있다.
인터 예측 모듈(121)이 각 분할 패턴에 따라, (일부 구현에 있어서 CTU가 CUs로 분할된 후, CU가 더 작은 PU로 분할되지 않으며, 이 경우 PU는 CU와 동일함), 현재 CU를 분할하여 생성된 PU의 예측 사진 블록을 선택한 후, 인터 예측 모듈(121)은 현재의 CU에 대한 분할 패턴을 선택할 수 있다. 일부 구현에 있어서, 인터 예측 모듈(121)은 각 분할 패턴에 따라 현재 CU를 분할함으로써 생성된 PU의 선택된 예측 사진 블록의 요율-왜곡 비용을 분석함으로써 현재 CU에 대한 분할 패턴을 선택할 수 있다. 인터 예측 모듈(121)은 선택된 분할 패턴에 속하는 PU와 관련된 예측 사진 블록을 잔여 생성 모듈(102)로 출력할 수 있다. 인터 예측 모듈(121)은 선택한 분할 패턴에 속하는 PU에 대한 모션 정보의 구문 요소를 엔트로피 코딩 모듈로 출력할 수 있다.
도 4에 도시된 개략 다이어그램에 있어서, 인터 예측 모듈(121)은 IME 모듈(180a~180n)("IME 모듈(180)"로 총칭한다), FME 모듈(182a~182n)("FME 모듈(182)"로 총칭한다), 머지 모듈(184a~184n)("머지 모듈(184)"로 총칭한다), PU 패턴 의사결정 모듈(186a~186n)("PU 패턴 의사결정 모듈(186)"로 총칭한다) 및 CU 패턴 의사결정 모듈(188)(CTU-to-CU 패턴 의사결정 프로세스를 추가로 수행할 수 있음)을 포함한다.
IME 모듈(180), FME 모듈(182) 및 머지 모듈(184)은 각각 IME 작동, FME 작동 및 현재 CU의 PU에 대한 머지 작업을 수행할 수 있다. 도 4에 도시된 개략 다이어그램에 있어서, 인터 예측 모듈(121)은 별도의 IME 모듈(180), 별도의 FME 모듈(182), 및 CU의 각 분할 패턴에서 각 PU에 대한 별도의 머지 모듈(184)을 포함하는 것으로 설명된다. 다른 실행 가능한 구현에 있어서, 인터 예측 모듈(121)은 별도의 IME 모듈(180), 별도의 FME 모듈(182) 또는 CU의 각 분할 패턴에서 각 PU에 대한 별도의 머지 모듈(184)을 구성하지 않는다.
도 4의 개략 다이어그램에 예시된 바와 같이, IME 모듈(180a), FME 모듈(182a) 및 머지 모듈(184a)는 각각 2N X 2N 분할 모드에서 CU를 분할하여 생성된 PU에 대해 IME 연산, FME 연산 및 머지 작업을 수행할 수 있다. PU 모드 의사결정 모듈(186a)은 IME 모듈(180a), FME 모듈(182a) 및 머지 모듈(184a)에 의해 생성되는 예측 사진 블록 중 하나를 선택할 수 있다.
IME 모듈(180b), FME 모듈(182b) 및 머지 모듈(184b)은 각각 N x 2N 분할 모드에서 CU를 분할하여 생성된 왼쪽 PU에서 IME 작업, FME 작업 및 머지 작업을 수행할 수 있다. PU 모드 의사결정 모듈(186b)은 IME 모듈(180b), FME 모듈(182b) 및 머지 모듈(184b)에 의해 생성된 예측 사진 블록 중 하나를 선택할 수 있다.
IME 모듈(180c), FME 모듈(182c) 및 머지 모듈(184c)은 각각 N x 2N 분할 모드에서 CU를 분할하여 생성된 오른쪽 PU에서 IME 연산, FME 연산 및 머지 작업을 수행할 수 있다. PU 모드 의사결정 모듈(186c)은 IME 모듈(180c), FME 모듈(182c) 및 머지 모듈(184c)에 의해 생성된 예측 사진 블록 중 하나를 선택할 수 있다.
IME 모듈(180n), FME 모듈(182n) 및 머지 모듈(184n)은 각각 N x N 분할 모드에서 CU를 분할하여 생성된 오른쪽 하단 PU에서 IME 연산, FME 연산 및 머지 작업을 수행할 수 있다. PU 모드 의사결정 모듈(186n)은 IME 모듈(180n), FME 모듈(182n) 및 머지 모듈(184n)에 의해 생성된 예측 사진 블록 중 하나를 선택할 수 있다.
PU 패턴 의사결정 모듈(186)은 복수의 가능한 예측 사진 블록에 대한 요율- 왜곡 비용을 분석하여 예측 사진 블록을 선택하고, 주어진 디코딩 시나리오에서 최적의 요율-왜곡 비용을 제공하는 예측 사진 블록을 선택할 수 있다. 예를 들어, 대역폭이 제한된 출원의 경우, PU 모드 의사결정 모듈(186)은 압축비가 증가하는 예측 사진 블록을 선호할 수 있으며, 다른 출원의 경우, PU 모드 의사결정 모듈(186)은 재구성된 비디오의 품질이 향상되는 예측 사진 블록을 선호할 수 있다. PU 패턴 의사결정 모듈(186)이 현재 CU의 PU에 대한 예측 사진 블록을 선택한 후, CU 패턴 의사결정 모듈(188)은 현재 CU에 대한 분할 패턴을 선택하고, 선택한 분할 패턴에 속하는 PU에 대한 예측 사진 블록 및 모션 정보를 출력한다.
도 5는 본 출원의 실시예에 따른 머지 모드 구현의 흐름도이다. 비디오 인코더(예: 비디오 인코더(20))는 머지 작업(200)을 수행할 수 있다. 머지 작업(200)은 다음과 같이 구성될 수 있다: 현재 예측 단위에 대한 후보 목록을 생성한다(202). 후보 목록에서 후보와 연관된 예측 비디오 블록을 생성한다(204). 후보 목록에서 후보를 선택한다(206). 후보를 출력한다(208). 후보는 후보 모션 벡터 또는 후보 모션 정보이다.
다른 실행 가능한 구현에 있어서, 비디오 인코더는 머지 작업(200)과 다른 머지 작업을 수행할 수 있다. 예를 들어, 다른 실행 가능한 구현에 있어서, 비디오 인코더는 머지 작업(200)의 단계보다 더 적은 단계 또는 머지 작업(200)의 단계와 다른 단계를 수행하는 머지 작업을 수행할 수 있다. 다른 실행 가능한 구현에 있어서, 비디오 인코더는 다른 순서 또는 병렬로 머지 작업(200) 단계를 수행할 수 있다. 인코더는 스킵(skip) 모드로 인코딩된 PU에서 머지 작업(200)을 추가로 수행할 수 있다.
비디오 인코더가 머지 작업(200)을 시작하면, 비디오 인코더가 현재 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다(202). 비디오 인코더는 다양한 방식으로 현재 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다. 예를 들어, 비디오 인코더는 도 8 내지 도 12를 참조하여 이하에 설명되는 기술 중 하나에 따라 현재 PU에 대한 모션 벡터 목록을 생성할 수 있다. 본 출원의 기술에 따르면, 현재 PU에 사용되는 예측 모션 벡터 목록은 적어도 하나의 제1 후보 모션 벡터와 적어도 하나의 제2 후보 모션 벡터 세트의 식별자를 구성한다.
상술한 바와 같이, 현재 PU에 대한 후보 예측 모션 벡터 목록은 시간 후보 예측 모션 벡터로 구성될 수 있다. 시간 후보 예측 모션 벡터는 공동 위치(co-located)된 해당 시간 영역 PU에 대한 모션 정보를 나타낼 수 있다. 함께 배치된 PU는 사진 프레임에서 현재 PU와 같은 위치에 공간적으로 위치할 수 있지만, 현재 사진 대신 참조 사진에 위치할 수 있다. 본 출원에 있어서, 해당 시간 PU를 포함하는 참조 사진을 관련 참조 사진으로 참조할 수 있다. 본 출원에 있어서, 관련 참조 사진의 참조 사진 인덱스를 관련 참조 사진 인덱스라고 할 수 있다. 상술한 바와 같이, 현재 사진은 하나 이상의 참조 사진 목록(예: 목록 0 및 목록 1)과 연결될 수 있다. 참조 사진 인덱스는 참조 사진 목록에서 참조 사진의 위치를 표시하여 참조 사진을 나타낼 수 있다. 일부 실현 가능한 구현에 있어서, 현재 사진은 결합된 참조 사진 목록과 연관될 수 있다.
일부 비디오 인코더에서 관련 참조 사진 인덱스는 현재 PU와 관련된 참조 인덱스 소스 위치를 포함하는 PU의 참조 사진 인덱스이다. 이러한 비디오 인코더에서 현재 PU와 관련된 참조 인덱스 소스 위치는 현재 PU의 왼쪽에 인접하거나 현재 PU의 상단에 인접해 있다. 본 출원에 있어서, PU와 관련된 사진 블록이 특정 위치를 구성하는 경우, PU는 특정 위치를 "덮을(cover)" 수 있다. 이러한 비디오 인코더에서 참조 인덱스 소스 위치를 사용할 수 없는 경우, 비디오 인코더는 참조 사진 인덱스 0을 사용할 수 있다.
그러나, 일부 예에서는, 현재 PU와 관련된 참조 인덱스 소스 위치가 현재 CU 내에 있다. 이 예에서는, 현재 PU와 관련된 참조 인덱스 소스 위치를 커버하는 PU가 현재 CU의 위 또는 왼쪽에 있는 경우 사용 가능한 것으로 간주될 수 있다. 이 경우, 비디오 인코더는 공동-배치된 PU를 포함하는 참조 사진을 결정하기 위해, 현재 CU의 다른 PU에 대한 모션 정보에 액세스하는 것이 필요할 수 있다. 따라서, 이러한 비디오 인코더는 현재 PU에 대한 시간 후보 예측 모션 벡터를 생성하기 위해 현재 CU에 속하는 PU에 대한 모션 정보(예: 참조 사진 인덱스)를 사용할 수 있다. 즉, 이러한 비디오 인코더는 현재 CU에 속하는 PU에 대한 모션 정보를 사용하여 시간 후보 예측 모션 벡터를 생성할 수 있다. 따라서 비디오 인코더는 현재 PU 및 현재 PU와 관련된 참조 인덱스 소스 위치를 포함하는 PU에 대한 후보 예측 모션 벡터 목록을 병렬로 생성할 수 없을 수 있다.
비디오 인코더는 다른 PU에 대한 참조 사진 인덱스를 참조하지 않고 관련 참조 사진 인덱스를 명시적으로 설정할 수 있다. 이 방법으로 비디오 인코더는 현재 PU와 현재 CU의 다른 PU에 대한 후보 예측 모션 벡터 목록을 병렬로 생성할 수 있다. 비디오 인코더가 관련 참조 사진 인덱스를 명시적으로 설정하기 때문에, 관련 참조 사진 인덱스는 현재 CU의 다른 PU에 대한 모션 정보에 기초하지 않는다. 비디오 인코더가 관련 참조 사진 인덱스를 명시적으로 설정하는 일부 실행 가능한 구현에 있어서, 비디오 인코더는 항상 관련 참조 사진 인덱스(예를 들어, 0)를 고정으로 사전 설정하도록 참조 사진 인덱스를 설정할 수 있다. 이러한 방식으로 비디오 인코더는 사전 설정된 참조 사진 인덱스로 표시된 참조 프레임에서 PU에 대한 모션 정보를 기반으로 시간 후보 예측 모션 벡터를 생성할 수 있고, 여기서 시간 후보 예측 모션 벡터는 현재 CU에 대한 후보 예측 모션 벡터 목록에 구성될 수 있다.
비디오 인코더가 관련 참조 사진 인덱스를 명시적으로 설정하는 실행 가능한 구현에 있어서, 비디오 인코더는 구문 구조(예: 사진 헤더, 슬라이스 헤더, APS 또는 다른 구문 구조)에서 관련 참조 사진 인덱스에 명시적으로 신호를 보낼 수 있다. 이러한 실현 가능한 구현에 있어서, 비디오 인코더는 다른 유형의 각 LCU(즉, CTU), CU, PU, TU 또는 하위 블록에 대한 관련 참조 사진 인덱스를 디코더로 신호할 수 있다. 예를 들어 비디오 인코더는 CU의 각 PU에 대한 관련 참조 사진 인덱스가 "1"과 같다는 신호를 보낼 수 있다.
일부 실현 가능한 구현에 있어서, 관련 참조 사진 인덱스는 명시적 설정이기보다는 암시적으로 설정될 수 있다. 이를 실현 가능한 구현에 있어서, 비디오 인코더는 현재 CU 외부의 위치, 즉 이 위치가 현재 PU에 엄격하게 인접하지 않은 경우를 커버하는 PU에 대한 참조 사진 인덱스로 표시된 참조 사진에서 PU에 대한 모션 정보를 사용하여 현재 CU의 후보 예측 모션 벡터 목록에서 각 시간 후보 예측 모션 벡터를 생성할 수 있다.
현재 PU에 대한 후보 예측 모션 벡터 목록을 생성한 후, 비디오 인코더는 후보 예측 모션 벡터 목록(204)에서 후보 예측 모션 벡터와 관련된 예측 사진 블록을 생성할 수 있다. 비디오 인코더는 표시된 후보 예측 모션 벡터의 모션 정보에 기초하여 현재 PU에 대한 모션 정보를 결정한 다음, 현재 PU에 대한 모션 정보에 의해 표시된 하나 이상의 참조 블록을 기반으로 예측 사진 블록을 생성하여 후보 예측 모션 벡터와 관련된 예측 사진 블록을 생성할 수 있다. 그런 다음, 비디오 인코더는 후보 예측 모션 벡터 목록(206)에서 후보 예측 모션 벡터 하나를 선택할 수 있다. 비디오 인코더는 다양한 방식으로 후보 예측 모션 벡터를 선택할 수 있다. 예를 들어, 비디오 인코더는 후보 예측 모션 벡터와 관련된 각 예측 사진 블록의 요율-왜곡 비용을 분석하여 하나의 후보 예측 모션 벡터를 선택할 수 있다.
후보 예측 모션 벡터를 선택한 후, 비디오 인코더가 후보 예측 모션 벡터 인덱스(208)를 출력할 수 있다. 후보 예측 모션 벡터 인덱스는 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 나타낼 수 있다. 일부 실현 가능한 구현에 있어서, 후보자 모션 벡터 인덱스를 "merge_idx"로 나타낼 수 있다.
도 6은 본 출원의 실시예에 따른 고급 모션 벡터 예측(AMVP) 모드 구현에 대한 흐름도이다. 비디오 인코더(예: 비디오 인코더 (20))는 AMVP 작업(210)을 수행할 수 있다. AMVP 작업(210)은: 현재 예측 단위에 대해 하나 이상의 모션 벡터를 생성한다(211). 현재 예측 단위에 대한 예측 비디오 블록을 생성한다(212). 현재 예측 단위에 사용되는 후보 목록을 생성한다(213). 모션 벡터 차이를 생성한다(214). 후보 목록에서 후보를 선택한다(215). 후보를 선택하는 데 사용되는 참조 사진 지수, 후보 지수 및 모션 벡터 차이를 출력한다(216)로 구성할 수 있다. 후보는 후보 모션 벡터 또는 후보 모션 정보이다.
비디오 인코더가 AMVP 작업(210)을 시작한 후에, 비디오 인코더는 현재 PU에 대한 하나 이상의 모션 벡터를 생성할 수 있다(211). 비디오 인코더는 현재 PU에 대한 모션 벡터를 생성하기 위해 정수 모션 추정 및 분수 모션 추정을 수행할 수 있다. 상술한 바와 같이, 현재 사진은 두 개의 참조 사진 목록(목록 0과 목록 1)과 연관될 수 있다. 현재 PU가 일방적으로 예측되는 경우, 비디오 인코더는 현재 PU에 대해 목록-0 모션 벡터 또는 목록-1 모션 벡터를 생성할 수 있다. 목록-0 모션 벡터는 현재 PU에 해당하는 사진 블록과 목록-0의 참조 사진의 참조 블록 사이의 공간 변위를 나타낼 수 있다. 목록-1 모션 벡터는 현재 PU에 해당하는 사진 블록과 목록-1의 참조 사진의 참조 블록 사이의 공간 변위를 나타낼 수 있다. 현재 PU가 양방향으로 예측되는 경우, 비디오 인코더는 현재 PU에 대해 목록-0 모션 벡터 및 목록-1 모션 벡터를 생성할 수 있다.
현재 PU에 대한 하나 이상의 모션 벡터를 생성한 후, 비디오 인코더는 현재 PU에 대한 예측 사진 블록을 생성할 수 있다(212). 비디오 인코더는 현재 PU에 대한 하나 이상의 모션 벡터로 표시된 하나 이상의 참조 블록을 기반으로 현재 PU에 대한 예측 사진 블록을 생성할 수 있다.
또한 비디오 인코더는 현재 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다(213). 비디오 디코더는 다양한 방법으로 현재 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다. 예를 들어, 비디오 인코더는 도 8 내지 도 12와 관련하여 이하에 설명된 하나 이상의 실현 가능한 구현에 따라, 현재 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다. 일부 실현 가능한 구현에 있어서, 비디오 인코더가 AMVP 작업(210)에서 후보 예측 모션 벡터 목록을 생성할 때, 후보 예측 모션 벡터 목록은 두 개의 후보 예측 모션 벡터로 제한될 수 있다. 대조적으로, 비디오 인코더가 머지 작업에서 후보 예측 모션 벡터 목록을 생성할 때, 후보 예측 모션 벡터 목록은 더 많은 후보 예측 모션 벡터(예: 5개의 후보 예측 모션 벡터)로 구성될 수 있다.
현재 PU에 대한 후보 예측 모션 벡터 목록을 생성한 후, 비디오 인코더는 후보 예측 모션 벡터 목록(214)에서 각 후보 예측 모션 벡터에 대해 하나 이상의 모션 벡터 차이(MVD)를 생성할 수 있다. 비디오 인코더는 후보 예측 모션 벡터에 대한 모션 벡터 차이를 생성하기 위해, 후보 예측 모션 벡터와 현재 PU에 대한 해당 모션 벡터 간의 차이를 결정할 수 있다.
현재 PU가 일방적으로 예측되는 경우, 비디오 인코더는 각 후보 예측 모션 벡터에 대해 단일 MVD를 생성할 수 있다. 현재 PU가 양방향으로 예측되는 경우, 비디오 인코더는 각 후보 예측 모션 벡터에 대해 두 개의 MVD를 생성할 수 있다. 제1 MVD는 후보 예측 모션 벡터와 현재 PU의 목록-0 모션 벡터 사이의 차이를 나타낼 수 있다. 제2 MVD는 후보 예측 모션 벡터와 현재 PU의 목록-1 모션 벡터 사이의 차이를 나타낼 수 있다.
비디오 인코더는 후보 예측 모션 벡터 목록(215)에서 하나 이상의 후보 예측 모션 벡터를 선택할 수 있다. 비디오 인코더는 다양한 방식으로 하나 이상의 후보 예측 모션 벡터를 선택할 수 있다. 예를 들어, 비디오 인코더는 최소의 오류로, 인코딩될 모션 벡터의 관련 모션 벡터와 일치하는 후보 예측 모션 벡터를 선택할 수 있다. 이렇게 하면 후보 예측 모션 벡터에 대한 모션 벡터 차이를 나타내는 데 필요한 비트의 양을 줄일 수 있다.
하나 이상의 후보 예측 모션 벡터를 선택한 후, 비디오 인코더는 현재 PU에 대한 하나 이상의 참조 사진 인덱스, 현재 PU에 대한 하나 이상의 후보 예측 모션 벡터 인덱스 및 하나 이상의 선택된 후보 예측 모션 벡터(216)에 대한 하나 이상의 모션 벡터 차이를 출력할 수 있다.
현재 사진이 두 개의 참조 사진 목록(목록 0과 목록 1)과 관련되어 있고, 현재 PU가 단방향적으로 예측되는 예에 있어서, 비디오 인코더는 목록 0에 대한 참조 사진 인덱스(ref_idx_10) 또는 목록 1에 대한 참조 사진 인덱스(ref_idx_11)를 출력할 수 있다. 비디오 인코더는 후보 예측 모션 벡터 목록에서 현재 PU에 대한 선택된 후보 예측 모션 벡터의 위치를 나타내는 후보 예측 모션 벡터 인덱스("mvp_10_flag")를 추가로 출력할 수 있다. 또는, 비디오 인코더는 후보 예측 모션 벡터 목록에서 현재 PU에 대한 목록-1 모션 벡터의 선택된 후보 예측 모션 벡터의 위치를 나타내는 후보 예측 모션 벡터 인덱스("mvp_11_flag")를 출력할 수 있다. 비디오 인코더는 목록-0 모션 벡터에 대한 MVD 또는 현재 PU에 대한 목록-1 모션 벡터에 대한 MVD를 추가로 출력할 수 있다.
현재 사진이 두 개의 참조 사진 목록(목록 0과 목록 1)과 연결되고, 현재 PU가 양방향으로 예측되는 예에 있어서, 비디오 인코더는 목록 0에 대한 참조 사진 인덱스(ref_idx_10)와 목록 1에 대한 참조 사진 인덱스(ref_idx_11)를 출력할 수 있다. 비디오 인코더는 후보 예측 모션 벡터 목록에서 현재 PU에 대해 선택된 후보 예측 모션 벡터의 위치를 나타내는 후보 예측 모션 벡터 인덱스("mvp_10_flag")를 추가로 출력할 수 있다. 게다가, 비디오 인코더는 후보 예측 모션 벡터 목록에서 현재 PU에 대한 목록-1 모션 벡터의 선택된 후보 예측 모션 벡터의 위치를 나타내는 후보 예측 모션 벡터 인덱스("mvp_11_flag")를 출력할 수 있다. 비디오 인코더는 현재 PU에 대한 목록-0 모션 벡터에 대한 MVD와 현재 PU에 대한 목록-1 모션 벡터에 대한 MVD를 추가로 출력할 수 있다.
도 7은 본 출원의 실시예에 따른 비디오 디코더(예: 비디오 디코더(30))에 의해 수행되는 모션 보상의 구현에 대한 흐름도이다.
비디오 디코더가 모션 보정 작업(220)을 수행할 때, 비디오 디코더는 현재 PU에 대해 선택된 후보 예측 모션 벡터에 대한 표시를 수신할 수 있다(222). 예를 들어, 비디오 디코더는 현재 PU에 대한 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 나타내는 후보 예측 모션 벡터 인덱스를 수신할 수 있다.
현재 PU에 대한 모션 정보가 AMVP 모드로 인코딩되고, 현재 PU가 양방향으로 예측되는 경우, 비디오 디코더는 제1 후보 예측 모션 벡터 인덱스와 제2 후보 예측 모션 벡터 인덱스를 수신할 수 있다. 제1 후보 예측 모션 벡터 인덱스는 후보 예측 모션 벡터 목록에서 현재 PU의 목록-0 모션 벡터에 대해 선택된 후보 예측 모션 벡터의 위치를 나타낸다. 제2 후보 예측 모션 벡터 인덱스는 후보 예측 모션 벡터 목록에서 현재 PU의 목록-1 모션 벡터에 대해 선택된 후보 예측 모션 벡터의 위치를 나타낸다. 일부 실현 가능한 구현에 있어서, 단일 구문 요소를 사용하여 두 후보 예측 모션 벡터 인덱스를 식별할 수 있다.
실현 가능한 일부 구현에 있어서, 만약 후보 예측 모션 벡터 목록이 본 출원의 기술에 따라 구성된다면, 비디오 디코더는 현재 PU의 후보 예측 모션 벡터 목록에서 선택된 후보 예측 모션 벡터의 위치를 나타내는 후보 예측 모션 벡터 인덱스를 수신할 수 있고, 현재 PU의 후보 예측 모션 벡터 목록에 선택된 후보 예측 모션 벡터가 속하는 카테고리의 위치를 나타내는 식별자와, 선택된 후보 예측 모션 벡터의 위치를 나타내는 후보 예측 모션 벡터가 속하는 선택된 후보 예측 모션 벡터의 위치를 나타내는 후보 예측 모션 인덱스를 수신한다.
또한 비디오 디코더는 현재 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다(224). 비디오 디코더는 다양한 방법으로 현재 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다. 예를 들어, 비디오 디코더는 도 8 내지 도 12를 참조하여 이하에 설명된 기술을 사용하여 현재 PU에 대한 후보 예측 모션 벡터 목록을 생성할 수 있다. 비디오 디코더가 후보 예측 모션 벡터 목록에 대한 시간 후보 예측 모션 벡터를 생성할 때, 비디오 디코더는 도 5를 참조하여 상술한 바와 같이, 공동 위치 PU를 포함하는 참조 사진을 식별하는 참조 사진 인덱스를 명시적으로 또는 암시적으로 설정할 수 있다. 본 출원의 기술에 따르면, 후보 예측 모션 벡터 목록의 구성 동안, 플래그 비트는 후보 예측 모션 벡터 목록의 길이를 제어하기 위해, 후보 예측 모션 벡터 목록의 한 유형의 후보 예측 모션 벡터를 나타내는데 사용될 수 있다.
현재 PU에 대한 후보 예측 모션 벡터 목록을 생성한 후, 비디오 디코더는 현재 PU에 대한 후보 예측 모션 벡터 목록에서 하나 이상의 선택된 후보 예측 모션 벡터로 표시된 모션 정보에 기초하여 현재 PU에 대한 모션 정보를 결정할 수 있다(225). 예를 들어 현재 PU에 대한 모션 정보가 머지 모드로 인코딩된 경우, 현재 PU에 대한 모션 정보는 선택한 후보 예측 모션 벡터에 의해 표시된 모션 정보와 같을 수 있다. 현재 PU에 대한 모션 정보가 AMVP 모드로 인코딩된 경우, 비디오 디코더는 선택된 후보 예측 모션 벡터에 의해 표시된 하나 이상의 모션 벡터와 비트스트림에 표시된 하나 이상의 MVD를 사용하여 현재 PU에 대한 하나 이상의 모션 벡터를 재구성할 수 있다. 현재 PU의 참조 사진 인덱스 및 예측 방향 식별자는 하나 이상의 참조 사진 인덱스 및 하나 이상의 선택된 후보 예측 모션 벡터의 예측 방향 식별자와 같을 수 있다. 현재 PU에 대한 모션 정보를 결정한 후, 비디오 디코더는 현재 PU에 대한 모션 정보로 표시된 하나 이상의 참조 블록을 기반으로 현재 PU에 대한 예측 사진 블록을 생성할 수 있다(226).
도 8은 본 출원의 실시예에 따른 코딩 유닛과 관련된 코딩 유닛(CU) 및 인접 사진 블록의 예에 대한 개략 다이어그램이다. 도 8은 CU(250)와 CU(250)와 관련된 후보 예측 모션 벡터 위치(252a~252e)를 설명하기 위한 개략 다이어그램이다. 본 출원에 있어서, 후보 예측 모션 벡터 위치(252a ~ 252e)는 후보 예측 모션 벡터 위치(252)로 총칭될 수 있다. 후보 예측 모션 벡터 위치(252)는 CU(250)와 동일한 사진에 있는 공간 후보 예측 모션 벡터를 나타낸다. 후보 예측 모션 벡터 위치(252a)는 CU(250)의 왼쪽에 있다. 후보 예측 모션 벡터 위치(252b)는 CU(250)의 위에 있다. 후보 예측 모션 벡터 위치(252c)는 CU(250)의 오른쪽 상단에 있다. 후보 예측 모션 벡터 위치(252d)는 CU(250)의 왼쪽 아래에 있다. 후보 예측 모션 벡터 위치(252e)는 CU(250)의 왼쪽 상단에 있다. 도 8은 인터 예측 모듈(121)과 모션 보상 모듈이 후보 예측 모션 벡터 목록을 생성하는 방법의 개략적인 구현을 나타내고 있다. 다음은 인터 예측 모듈(121)에 대한 구현을 설명하지만, 모션 보상 모듈이 동일한 기술을 구현하여 동일한 후보 예측 모션 벡터 목록을 생성할 수 있음을 이해해야 한다.
도 9는 본 출원의 실시예에 따른 후보 예측 모션 벡터 목록을 구성하는 구현의 흐름도이다. 도 9의 기술은 5 개의 후보 예측 모션 벡터를 포함하는 목록에 기초하여 설명되지만, 명세서에 설명된 기술은 다른 크기의 목록과 함께 사용될 수 있다. 5 개의 후보 예측 모션 벡터는 각각 인덱스를 가질 수 있다(예: 0 - 4). 도 9의 기술은 일반적인 비디오 디코더를 기반으로 설명된다. 일반적인 비디오 디코더는 예를 들어 비디오 인코더(예: 비디오 인코더(20)) 또는 비디오 디코더(예: 비디오 디코더(30))일 수 있다. 본 출원의 기술을 기반으로 구성된 후보 예측 모션 벡터 목록은 다음 실시예에서 자세히 설명되므로, 세부 사항은 여기에 설명되지 않는다.
도 9의 실시예에 따른 후보 예측 모션 벡터 목록을 재구성하기 위해 비디오 디코더는 먼저 4개의 공간 후보 예측 모션 벡터를 고려한다(9002). 네 개의 공간 후보 예측 모션 벡터는 후보 예측 모션 벡터 위치(252a, 252b, 252c 및 252d)와 일치할 수 있다. 네 개의 공간 후보 예측 모션 벡터는 현재 CU와 동일한 사진(예: CU(250))에 위치한 네 개의 PU에 대한 모션 정보에 해당될 수 있다. 비디오 디코더는 목록의 네 개의 공간 후보 예측 모션 벡터를 지정된 순서로 고려할 수 있다. 예를 들어 후보자는 모션 벡터 위치(252a)를 먼저 고려할 수 있다. 후보 예측 모션 벡터 위치(252a)를 사용할 수 있는 경우, 후보 예측 모션 벡터 위치(252a)를 인덱스 0에 할당할 수 있다. 후보 예측 모션 벡터 위치(252a)를 사용할 수 없는 경우, 비디오 디코더는 후보 예측 모션 벡터 위치(252a)를 후보 예측 모션 벡터 목록에 추가할 수 없다. 후보는 다양한 이유로 모션 벡터 위치의 사용이 없을 수도 있다. 예를 들어, 후보 예측 모션 벡터 위치가 현재 사진 내에 있지 않으면, 후보 예측 모션 벡터 위치의 사용이 없을 수 있다. 다른 실현 가능한 구현에 있어서, 후보 예측 모션 벡터 위치가 인트라 예측을 거치는 경우, 후보 예측 모션 벡터 위치의 사용이 없을 수 있다. 다른 실현 가능한 구현에 있어서, 후보 예측 모션 벡터 위치가 현재 CU에 해당하는 슬라이스와 다른 슬라이스에 있으면, 후보 예측 모션 벡터 위치의 사용이 없을 수 있다.
후보 예측 모션 벡터 위치(252a)를 고려한 후, 비디오 디코더는 후보 예측 모션 벡터 위치(252b)를 고려할 수 있다. 후보 예측 모션 벡터 위치(252b)가 가능하고, 후보 예측 모션 벡터 위치(252a)와 다를 경우, 비디오 디코더는 후보 예측 모션 벡터 위치(252b)를 후보 예측 모션 벡터 목록에 추가할 수 있다. 이를 특정하는 맥락에서, "동일" 또는 "다름"이라는 용어는 후보 예측 모션 벡터 위치와 관련된 모션 정보가 동일하거나 다르다는 것을 의미한다. 따라서 두 후보 예측 모션 벡터 위치가 동일한 모션 정보를 갖는 경우, 두 후보 예측 모션 벡터 위치가 동일한 것으로 간주되고, 또는 두 후보 예측 모션 벡터 위치가 서로 다른 모션 벡터 위치를 갖는 경우, 두 후보 예측 모션 벡터 위치가 서로 다른 것으로 간주된다. 후보 예측 모션 벡터 위치(252a)를 사용할 수 없는 경우, 비디오 디코더는 후보 예측 모션 벡터 위치(252b)를 인덱스 0에 할당할 수 있다. 후보 예측 모션 벡터 위치(252a)를 사용할 수 있는 경우, 비디오 디코더는 후보 예측 모션 벡터 위치(252)를 인덱스 1에 할당할 수 있다. 후보 예측 모션 벡터 위치(252b)를 사용할 수 없거나 후보 예측 모션 벡터 위치(252a)와 동일할 경우, 비디오 디코더는 후보 예측 모션 벡터 위치(252b)를 후보 예측 모션 벡터 목록에 추가하는 것을 스킵한다.
마찬가지로, 비디오 디코더는 후보 예측 모션 벡터 위치(252c)를 목록에 추가할지의 여부를 결정하기 위해 후보 예측 모션 벡터 위치(252c)를 고려한다. 후보 예측 모션 벡터 위치(252c)가 가능하고, 후보 예측 모션 벡터 위치(252b) 및 (252a)와 다를 경우, 비디오 디코더는 후보 예측 모션 벡터 위치(252c)를 사용 가능한 다음 인덱스에 할당할 수 있다. 후보 예측 모션 벡터 위치(252c)를 사용할 수 없거나, 후보 예측 모션 벡터 위치(252a) 및 (252b) 중 하나와 동일할 경우, 비디오 디코더는 후보 예측 모션 벡터 위치(252c)를 후보 예측 모션 벡터 목록에 추가하지 않는다. 다음으로, 비디오 디코더는 후보 예측 모션 벡터 위치(252d)를 고려한다. 후보 예측 모션 벡터 위치(252d)가 가능하고 후보 예측 모션 벡터 위치 (252a), (252b) 및 (252c)와 다를 경우, 비디오 디코더는 후보 예측 모션 벡터 위치(252d)를 사용 가능한 다음 인덱스에 할당할 수 있다. 후보 예측 모션 벡터 위치(252d)를 사용할 수 없거나 후보 예측 모션 벡터 위치(252a), (252b) 및 (252c) 중 하나와 동일하면, 비디오 디코더는 후보 예측 모션 벡터 위치(252d)를 후보 예측 모션 벡터 목록에 추가하지 않는다. 앞의 구현에 있어서, 후보 예측 모션 벡터 (252a ~ 252d)를 고려해서 후보 예측 모션 벡터(252a ~ 252d)를 후보 예측 모션 벡터 목록에 추가할지의 여부를 결정하는 예가 일반적으로 설명된다. 그러나 일부 구현에 있어서는, 모든 후보 예측 모션 벡터(252a ~ 252d)를 후보 예측 모션 벡터 목록에 먼저 추가한 다음, 후보 예측 모션 벡터 목록에서 반복된 후보 예측 모션 벡터 위치가 제거될 수 있다.
비디오 디코더는 처음 네 개의 공간 후보 예측 모션 벡터를 고려한 후, 후보 예측 모션 벡터 목록은 네 개의 공간 후보 예측 모션 벡터로 구성되거나, 목록이 네 개 미만의 공간 후보 예측 모션 벡터로 구성될 수 있다. 목록이 네 개의 공간 후보 예측 모션 벡터로 구성된 경우(904, yes), 비디오 디코더는 시간 후보 예측 모션 벡터를 고려한다(906). 시간 후보 예측 모션 벡터는 현재 사진과 다른 사진의 공동 위치 PU에 대한 모션 정보와 일치할 수 있다. 시간 후보 예측 모션 벡터가 사용 가능하고 처음 4개의 공간 후보 예측 모션 벡터와 다르면, 비디오 디코더는 시간 후보 예측 모션 벡터를 인덱스 4에 할당한다. 시간 후보 예측 모션 벡터를 사용할 수 없거나 처음 4개의 공간 후보 예측 모션 벡터 중 하나와 동일하면, 비디오 디코더는 시간 후보 예측 모션 벡터 목록에 시간 후보 예측 모션 벡터를 추가하지 않는다. 따라서, 비디오 디코더가 시간 후보 예측 모션 벡터를 고려(906)한 후, 후보 예측 모션 벡터 목록은 5 개의 후보 예측 모션 벡터(902에서 고려된 최초의 4개의 공간 후보 예측 모션 벡터 및 904에서 고려된 시간 후보 예측 모션 벡터)로 구성되거나, 또는 4개의 후보 예측 모션 벡터(902에서 고려된 최초의 4개의 공간 후보 예측 모션 벡터)로 구성될 수 있다. 후보 예측 모션 벡터 목록이 5개의 후보 예측 모션 벡터(908, yes)로 구성되면, 비디오 디코더는 목록 구성을 완료한다.
후보 예측 모션 벡터 목록이 4 개의 후보 예측 모션 벡터(908, no)로 구성되면, 비디오 디코더는 제5 공간 후보 예측 모션 벡터(910)를 고려할 수 있다. 제5 공간 후보 예측 모션 벡터는, 예를 들어 후보 예측 모션 벡터 위치(252e)에 해당될 수 있다. 후보 예측 모션 벡터 위치(252e)가 가능하고 후보 예측 모션 벡터 위치 (252a), (252b), (252c) 및 (252d)위치에서 후보 예측 모션 벡터와 다를 경우, 비디오 디코더는 후보 예측 모션 벡터 목록에 제5 공간 후보 예측 모션 벡터를 추가하고, 제5 공간 후보 예측 모션 벡터를 인덱스 4로 할당할 수 있다. 후보 예측 모션 벡터 위치(252e)에서 후보 예측 모션 벡터를 사용할 수 없거나 후보 예측 모션 벡터 위치(252a, 252b, 252c 및 252d)에서 후보 예측 모션 벡터와 동일할 경우, 비디오 디코더는 후보 예측 모션 벡터 목록에 후보 예측 모션 벡터를 추가할 수 없다. 따라서 제 공간 후보 예측 모션 벡터가 고려된 후(910), 목록은 다섯 개의 후보 예측 모션 벡터(902에서 고려된 첫 네 개의 공간 후보 예측 모션 벡터 및 910에서 고려된 제5 공간 후보 예측 모션 벡터)로 구성되거나, 네 개의 후보 예측 모션 벡터(902에서 고려된 처음 4개의 공간 후보 모션 벡터)로 구성될 수 있다.
후보 예측 모션 벡터 목록이 5개의 후보 예측 모션 벡터(912, yes)로 구성되면, 비디오 디코더는 후보 예측 모션 벡터 목록을 생성한다. 후보 예측 모션 벡터 목록이 4개의 후보 예측 모션 벡터(912, no)로 구성되면, 비디오 디코더는 목록이 5개의 후보 예측 모션 벡터(916, yes)로 구성될 때까지, 인공적으로 생성된 후보 예측 모션 벡터(914)를 추가한다.
비디오 디코더가 처음 네 개의 공간 후보 예측 모션 벡터를 고려한 후, 목록이 네 개 미만의 공간 후보 예측 모션 벡터(904, no)로 구성되면, 비디오 디코더는 제5 공간 후보 예측 모션 벡터(918)를 고려할 수 있다. 제5 공간 후보 예측 모션 벡터는, 예를 들어 후보 예측 모션 벡터 위치(252e)에 해당될 수 있다. 후보 예측 모션 벡터 위치(252e)에서 후보 예측 모션 벡터가 가능하고 후보 예측 모션 벡터 목록의 기존 후보 예측 모션 벡터와 다를 경우, 비디오 디코더는 후보 예측 모션 벡터 목록에 제5 공간 후보 예측 모션 벡터를 추가하고, 제5 공간 후보 예측 모션 벡터를 다음 사용가능한 인덱스에 할당할 수 있다. 후보 예측 모션 벡터 위치(252e)에서 후보 예측 모션 벡터를 사용할 수 없거나 후보 예측 모션 벡터 목록의 기존 후보 예측 모션 벡터 중 하나와 동일하다면, 비디오 디코더는 후보 예측 모션 벡터 목록에 위치(252e)에서 후보 예측 모션 벡터를 추가할 수 없다. 다음으로, 비디오 디코더는 시간 후보 예측 모션 벡터를 고려할 수 있다(920). 시간 후보 예측 모션 벡터가 사용 가능하고 후보 예측 모션 벡터 목록의 기존 후보 예측 모션 벡터와 다른 경우, 비디오 디코더는 후보 예측 모션 벡터 목록에 시간 후보 예측 모션 벡터를 추가하고 시간 후보 예측 모션 벡터를 다음 사용가능한 인덱스에 할당할 수 있다. 시간 후보 예측 모션 벡터를 사용할 수 없거나 후보 예측 모션 벡터 목록의 기존 후보 예측 모션 벡터 중 하나와 동일할 경우, 비디오 디코더는 후보 예측 모션 벡터 목록에 시간 후보 예측 모션 벡터를 추가할 수 없다.
제5 공간 후보 예측 모션 벡터(918에서)와 시간 후보 예측 모션 벡터(920에서)가 고려된 후, 후보 예측 모션 벡터 목록이 다섯 개 후보 예측 모션 벡터(922, yes)로 구성되면, 비디오 디코더는 후보 예측 모션 벡터 목록 생성을 완료한다. 후보 예측 모션 벡터 목록이 5개 후보 예측 모션 벡터(922, no) 미만으로 구성된 경우, 비디오 디코더는 목록이 5개 후보 예측 모션 벡터(916, yes)로 구성될 때까지 인공적으로 생성된 후보 예측 모션 벡터(914)를 추가한다.
가능한 구현에 있어서, 추가 머지 후보 예측 모션 벡터는 공간 후보 예측 모션 벡터와 시간 후보 예측 모션 벡터 후에 인위적으로 생성될 수 있고, 이에 따라 머지 후보 예측 모션 벡터 목록의 크기가 고정되고, 머지 후보 예측 모션 벡터의 지정된 양(예: 위의 도 9의 실현 가능한 구현에서의 5개)과 동일하다. 추가 머지 후보 예측 모션 벡터는 결합된 이진-예측 머지 후보 예측 모션 벡터(후보 예측 모션 벡터 1)와, 스케일 이진-예측 머지 후보 예측 모션 벡터(후보 예측 모션 벡터 2), 및 제로-벡터 머지/AMVP 후보 예측 모션 벡터(후보 예측 모션 벡터 3)의 예로 구성될 수 있다. 본 출원의 기술에 따르면, 후보 예측 모션 벡터 목록은 공간 후보 예측 모션 벡터와 시간 후보 예측 모션 벡터로 직접 구성될 수 있고, 후보 예측 모션 벡터 목록의 플래그 비트는 수동으로 생성된 추가 머지 후보 예측 모션 벡터를 나타내기 위해 사용된다.
도 10은 본 출원의 실시예에 따른 머지 모드 후보 예측 모션 벡터 목록에 결합된 후보 모션 벡터를 추가하는 예를 보여주는 개략 다이어그램이다. 결합 이진-예측 머지 후보 예측 모션 벡터는 원래 머지 후보 예측 모션 벡터를 결합하여 생성될 수 있다. 구체적으로, 두 개의 원래 후보 예측 모션 벡터(mvL0_A와 ref0 또는 mvL1-B와 ref0을 가짐)를 사용하여 이진-예측 머지 후보 예측 모션 벡터를 생성할 수 있다. 도 10에 있어서, 두 개의 후보 예측 모션 벡터는 원래 머지 후보 예측 모션 벡터 목록에 구성된다. 이는 어느 하나의 후보 예측 모션 벡터의 예측 유형은 목록 0을 사용하여 유니 예측하고, 다른 하나의 후보 예측 모션 벡터의 예측 유형은 목록 1을 사용하여 유니 예측한다. 이러한 실현 가능한 구현에 있어서, mvL0_A와 ref0은 목록 0에서, mvL1_B와 ref0은 목록 1에서 가져온다. 그런 다음, 이진-예측 머지 후보 예측 모션 벡터(목록 0에 mvL0_A와 목록 1에 mvL1_B와 ref0을 포함)가 생성될 수 있고, 이진-예측 머지 후보 예측 모션 벡터 목록에서 기존 후보 예측 모션 벡터와 다른지의 여부를 점검한다. 이진-예측 머지 후보 예측 모션 벡터가 기존 후보 예측 모션 벡터와 다를 경우, 비디오 디코더는 이진-예측 머지 후보 예측 모션 벡터를 후보 예측 모션 벡터 목록에 추가할 수 있다.
도 11은 본 출원의 실시예에 따른 머지 모드 후보 예측 모션 벡터 목록에 스케일링된 후보 모션 벡터를 추가하는 예를 보여주는 개략 다이어그램이다. 스케일된 이진-예측 머지 후보 예측 모션 벡터는 원래 머지 후보 예측 모션 벡터의 스케일링을 통해 생성될 수 있다. 구체적으로, 하나의 원래 후보 예측 모션 벡터(mvL0_A와 ref0 또는 mvL1-A와 ref1)를 사용하여 이진-예측 머지 후보 예측 모션 벡터를 생성할 수 있다. 도 11에서의 실현 가능한 구현에 있어서, 두 개의 후보 예측 모션 벡터는 원래의 머지 후보 예측 모션 벡터 목록에 구성된다. 어느 하나의 후보 예측 모션 벡터의 예측 유형은 목록 0을 사용하여 유니 예측하고, 다른 하나의 후보 예측 모션 벡터의 예측 유형은 목록 1을 사용하여 유니 예측한다. 이러한 실현 가능한 구현에 있어서, mvL0_A와 ref0은 목록 0에서 얻을 수 있고, ref0은 목록 1에 복사될 수 있으며, 참조 인덱스 ref0'로 표시된다. 다음으로, mvL0'_A는 ref0 및 ref0'으로 mvL0_A를 스케일링하여 계산할 수 있다. 스케일링은 POC 거리에 따라 달라질 수 있다. 다음으로, 양방향-예측 머지 후보 예측 모션 벡터(목록 0에 mvL0_A와 ref0이 있고, 목록 1에 mvL0'_A와 ref0이 있다)가 생성될 수 있고, 양방향-예측 머지 후보 예측 모션 벡터가 반복되는지의 여부를 점검한다. 양방향-예측 머지 후보 예측 모션 벡터가 반복되지 않으면, 양방향-예측 머지 후보 예측 모션 벡터가 머지 후보 예측 모션 벡터 목록에 추가될 수 있다.
도 12는 본 출원의 실시예에 따른 머지 모드 후보 예측 모션 벡터 목록에 제로 모션 벡터를 추가하는 예제의 개략 다이어그램이다. 제로-벡터 머지 후보 예측 모션 벡터는 참조할 수 있는 제로 벡터와 참조 인덱스를 결합하여 생성될 수 있다. 제로-벡터 후보 예측 모션 벡터가 반복되지 않는 경우, 제로-벡터 머지 후보 예측 모션 벡터는 머지 후보 예측 모션 벡터 목록에 추가될 수 있다. 생성된 각 머지 후보 예측 모션 벡터의 모션 정보는 목록의 이전 후보 예측 모션 벡터의 모션 정보와 비교할 수 있다.
실현 가능한 구현에 있어서, 새로 생성된 후보 예측 모션 벡터가 후보 예측 모션 벡터 목록의 기존 후보 예측 모션 벡터와 다를 경우, 생성된 후보 예측 모션 벡터가 머지 후보 예측 모션 벡터 목록에 추가된다. 후보 예측 모션 벡터가 후보 예측 모션 벡터 목록의 기존 후보 예측 모션 벡터와 다른지의 여부를 결정하는 프로세스를 프루닝(pruning)이라고 부르기도 한다. 프루닝을 통해 새로 생성된 각 후보 예측 모션 벡터를 목록의 기존 후보 예측 모션 벡터와 비교할 수 있다. 일부 실현 가능한 구현에 있어서, 프루닝 작업은 하나 이상의 새로운 후보 예측 모션 벡터와 후보 예측 모션 벡터 목록의 기존 후보 예측 모션 벡터를 비교하고, 후보 예측 모션 벡터 목록의 기존 후보 예측 모션과 동일한 새로운 후보 예측 모션 벡터의 추가를 스킵한다. 다른 실현 가능한 구현에 있어서, 프루닝 작업은 후보 예측 모션 벡터 목록에 하나 이상의 새로운 후보 예측 모션 벡터를 추가한 다음, 목록에서 반복된 후보 예측 모션 벡터를 제거하는 것으로 구성될 수 있다.
도 10 내지 도 12와 같은 다양한 실행 가능한 구현에 있어서, 본 출원의 기술을 기반으로, 새로 생성된 후보 예측 모션 벡터는 하나의 후보 모션 벡터로 사용될 수 있고, 플래그 비트는 새로 생성된 후보 예측 모션 벡터를 나타내기 위해 원래 후보 예측 모션 벡터 목록에 사용된다. 인코딩 동안, 선택된 후보 모션 벡터가 새로 생성된 후보 예측 모션 벡터일 때, 비트스트림은 새로 생성된 후보 예측 모션 벡터의 카테고리를 나타내는 식별자 1과 새로 생성된 후보 예측 모션 벡터의 카테고리에서 선택된 후보 예측 모션 벡터의 위치를 나타내는 식별자 2로 구성된다. 디코딩 동안 선택된 후보 모션 벡터는 후속 디코딩 절차를 수행하기 위해 식별자 1과 식별자 2를 기반으로 후보 예측 모션 벡터 목록에서 결정된다.
도 5 내지 도 7 및 도 9 내지 도 12의 실현 가능한 구현에 있어서, 공간 후보 예측 모드의 예는 도 8에 도시된 (252a~252e)의 5개 위치, 즉 처리될 사진 블록에 인접한 위치이다. 예를 들어 일부 실현 가능한 구현에 있어서, 공간 후보 예측 모드는 처리될 사진 블록에서 사전 설정된 거리 내에 있지만, 처리될 사진 블록에 인접하지 않은 위치로 구성될 수 있다. 예를 들어, 이러한 유형의 위치는 도 13의 (252f~252j)로 표시될 수 있다. 도 13은 본 출원의 실시예에 따른 코딩 유닛과 관련된 인접 위치의 사진 블록과 코딩 유닛을 예시하는 개략 다이어그램이라는 것을 이해해야 한다. 처리될 사진 블록이 처리될 때, 처리될 사진 블록과 동일한 사진 프레임에 위치하는 사진 블록의 위치는 재구성되며, 처리될 사진 블록과 인접하지 않은 사진 블록의 위치는 이러한 유형의 위치 범위 내에 있다.
이러한 유형의 위치를 공간적으로 인접하지 않은 사진 블록이라고 할 수 있고, 제1 공간적으로 인접하지 않은 사진 블록, 제2 공간적으로 인접하지 않은 사진 블록, 및 제3 공간적으로 인접하지 않은 사진 블록을 사용할 수 있다고 가정할 수 있다. "사용 가능"의 물리적 의미는 상술한 설명에서 참조하고 있으므로, 세부 사항은 다시 설명되지 않는다. 또한, 공간 후보 예측 모드가 도 8에 도시된 위치의 예측 모드에서 선택되었을 때, 후보 예측 모션 모드 목록이 다음 순서로 확인되는 것으로 구성된다고 가정할 수 있다. 검사 프로세스는 앞서 언급한 "사용 가능 여부" 점검 프로세스와 프루닝 프로세스로 구성된다는 점을 이해해야 한다. 세부 사항은 다시 설명되지 않는다. 후보 예측 모드 목록은 위치(252a)에 있는 사진 블록의 모션 벡터, 위치(252b)에 있는 사진 블록의 모션 벡터, 위치(252c)에 있는 사진 블록의 모션 벡터, 위치(252d)에 있는 사진 블록의 모션 벡터, 대체 시간 모션 벡터 예측(ATMVP) 기술을 사용하여 얻은 모션 벡터, 위치(252e)에 있는 사진 블록의 모션 벡터, 및 공간-시공간 모션 벡터 예측(STMVP) 기술을 사용하여 얻은 모션 벡터를 포함한다. ATMVP 기술과 STMVP 기술은 JVET-G1001-v1의 섹션 2.3.1.1과 2.3.1.2에 상세하게 기록되어 있고, JVET-G1001-v1이 본 명세서에 소개되어 있다. 자세한 내용은 설명되지 않는다. 예를 들어, 후보 예측 모드 목록은 전술한 7개의 예측 모션 벡터로 구성된다는 점을 이해해야 한다. 다른 특정 구현에 따르면, 후보 예측 모드 목록에 포함된 예측 모션 벡터의 양은 7보다 작을 수 있다. 예를 들어, 처음 5개의 예측 모션 벡터가 선택되어 후보 예측 모드 목록을 형성하며, 위에서 설명한 도 10 내지 도 12의 실현 가능한 구현에 있어서, 생성된 모션 벡터는 후보 예측 모드 목록에 추가되어 후보 예측 모드 목록은 이 더 많은 예측 모션을 포함할 수 있다. 벡터 실현 가능한 구현에 있어서, 제1 공간적으로 연속되지 않은 사진 블록, 제2 공간적으로 연속되지 않은 사진 블록 및 제3 공간적으로 연속되지 않은 사진 블록을 후보 예측 모드 목록에 추가할 수 있고, 처리될 사진 블록의 예측 모션 벡터로 사용된다. 또한, 위치(252a)에 있는 사진 블록의 모션 벡터, 위치252b)에 있는 사진 블록의 모션 벡터, 위치(252c)에 있는 사진 블록의 모션 벡터, 위치(252d)에 있는 사진 블록의 모션 벡터, ATMVP 기술을 사용하여 얻은 모션 벡터, 위치252E의 사진 블록의 모션 벡터, 및 STMVP 기술을 사용하여 얻은 모션 벡터는 각각 MVL, MVU, MVU, MVU, MVDL, 및 MVS이다. 제1 공간 비연속 사진 블록, 제2 공간 비연속 사진 블록, 제3 공간 비연속 사진 블록의 모션 벡터가 각각 MV0, MV1 및 MV2라고 가정하고, 후보 예측 모션 벡터 목록을 점검하여 다음 순서로 구성할 수 있다.
예 1: MVL, MVU, MVUR, MVDL, MV0, MV1, MV2, MVA, MVU 및 MVS;
예 2: MVL, MVU, MVUR, MVDL, MVA, MV0, MV1, MV2, MVUL 및 MVS;
예 3: MVL, MVU, MVUR, MVDL, MVA, MVUL, MV0, MV1, MV2 및 MVS;
예 4: MVL, MVU, MVUR, MVDL, MVA, MVUL, MV0, MV1 및 MV2;
예 5: MVL, MVU, MVUR, MVDL, MVA, MV0, MVUL, MV1, MVS 및 MV2;
예 6: MVL, MVU, MVUR, MVDL, MVA, MV0, MVUL, MV1, MV2 및 MVS; 및
예 7: MVL, MVU, MVUR, MVDL, MVA, MVUL, MV0, MV1, MV2 및 MVS.
후보 예측 모션 벡터 목록은 처리될 사진 블록의 예측 모션 벡터를 얻기 위해, 위에서 설명한 머지 모드 또는 다른 예측 모드에서 사용될 수 있고, 인코더 측에서 사용하거나 엔코에 해당하는 디코더 측에도 사용될 수 있음을 이해해야 한다. 이것은 한정되지 않는다. 또한 후보 예측 모션 벡터 목록의 후보 예측 모션 벡터 수량은 사전 설정되며, 인코더 측과 디코더 측에서 일치한다. 특정 수량이 한정되는 것은 아니다.
예 1 내지 예 7에 있어서, 후보 예측 모션 벡터 목록의 실현 가능한 구성 방법이 예로서 제공되는 점을 이해해야 한다. 공간적으로 인접하지 않은 사진 블록의 모션 벡터에 기초하여, 후보 예측 모션 벡터 목록의 다른 구성 방법과 후보 예측 모션 벡터의 다른 배열 방법이 목록에 있을 수 있다. 이것은 한정되지 않는다.
본 출원의 실시예는 후보 예측 모션 벡터 목록을 구성하는 다른 방법을 제공한다. 예 1 내지 예 7의 후보 예측 모션 벡터 목록을 구성하는 방법과 비교하여, 이 실시예는 다른 실시예에서 결정된 후보 예측 모션 벡터와 사전 설정된 벡터 차이를 결합하여 새로운 후보 예측 모션 벡터를 형성함에 따라, 예측 모션 벡터의 예측 정밀도를 향상시켜서, 코딩 효율성을 향상한다.
도 14a에 도시된 바오 같이, 본 출원의 실현 가능한 구현에 있어서, 처리될 사진 블록의 예측 모션 벡터 목록은 두 개의 하위 목록, 즉 제1 모션 벡터 세트와 벡터 차이 세트로 구성된다. 제1 모션 벡터 세트의 구성에 대해서는, 본 명세서의 전술한 실시예에서의 다양한 구성 방식, 예를 들어 머지 모드에서 후보 모션 벡터 세트의 구성 방식 또는 H.265 표준에 지정된 AMVP 모드를 참조한다. 벡터 차이 세트는 하나 이상의 사전 설정된 벡터 차이로 구성된다.
일부 실현 가능한 구현에 있어서, 벡터 차이 세트의 각각의 벡터 차이는 제1 모션 벡터 세트에서 결정된 원래 타깃 모션 벡터에 추가되고, 추가 후 얻은 벡터 차이와 원래 타깃 모션 벡터는 새로운 모션 벡터 세트를 형성한다.
일부 실현 가능한 구현에 있어서, 도 14a에 도시된 후보 예측 모션 벡터 목록에서 벡터 차이 세트는 하위 세트로서 후보 예측 모션 벡터 목록에서 구성될 수 있고, 후보 예측 모션 벡터 목록의 플래그 비트(벡터 차이 세트를 기반으로 계산된 MV)는 벡터 차이 세트를 나타내기 위해 사용된다. 벡터 차이 세트의 각각의 벡터 차이는 인덱스를 사용하여 표시되며, 생성된 후보 예측 모션 벡터 목록은 도 14b에 도시되어 있다.
플래그 비트를 사용하여 예측 모션 벡터 목록의 후보 모션 벡터를 표시하는 방법은 처리될 사진 블록의 예측 모션 벡터를 얻기 위해 상술한 머지 모드 또는 AMVP 모드 또는 다른 예측 모드가 사용될 수 있고, 인코드 측 또는 인코드 측에 해당하는 디코더 측에도 사용할 수 있다. 이것은 한정되지 않는다. 또한 후보 예측 모션 벡터 목록의 후보 예측 모션 벡터 수량은 사전 설정되며, 인코더 측과 디코더 측에서 일치한다. 특정 수량은 한정되지 않는다.
첨부 도면을 참조하여, 다음은 본 출원의 실시예에 제공된 모션 정보를 예측하기 위한 디코딩 방법을 자세히 설명한다. 본 출원 실시예의 기술에 따르면, 후보 모션 정보 목록을 구성할 때, 인코더 측 또는 디코더 측에서 목록의 길이를 제어하기 위해 목록의 후보 모션 정보의 한 유형을 플래그 비트를 사용하여 표시한다. 본 출원의 실시예에 제공된 모션 정보를 예측하기 위한 디코딩 방법은 이를 기반으로 설명된다. 이러한 방법은 디코딩 장치에 의해 수행되며, 디코딩 장치는 도 1에 도시된 비디오 코딩 시스템(1)의 비디오 디코더(200) 또는 비디오 디코더(200)의 기능 유닛일 수 있다. 이것은 본 출원에서 특별히 제한되는 것은 아니다.
도 15는 본 출원의 실시예에 대한 개략 흐름도이며, 모션 정보를 예측하는 디코딩 방법에 관한 것이다. 이 방법은 특히 다음과 같은 단계로 구성될 수 있다.
S1501: 디코딩 장치는 제1 식별자를 얻기 위해 비트스트림을 파싱한다.
상술한 바와 같이, 비트스트림은 인코더 측에서 현재 사진 블록을 인코딩한 후 전송되며, 제1 식별자는 현재 사진 블록을 인코딩할 때, 선택된 후보 모션 정보의 위치를 나타내며, 제1 식별자는 처리될 사진 블록의 모션 정보를 예측하도록 선택한 후보 모션 정보를 결정하기 위해 디코딩 장치에 의해 사용된다.
가능한 구현에 있어서, 제1 식별자는 선택된 후보 모션 정보의 특정 인덱스일 수 있다. 이 경우, 제1 식별자를 사용하여 하나의 후보 모션 정보를 유일하게 결정할 수 있다.
가능한 구현에 있어서, 제1 식별자는 선택된 후보 모션 정보가 속하는 카테고리의 식별자일 수 있다. 이 경우 비트스트림은 선택된 후보 모션 정보가 속하는 카테고리에서 선택된 후보 모션 정보의 특정 위치를 나타내기 위해 제4 식별자로 구성된다.
식별자를 얻기 위한 비트스트림 파싱의 구체적인 구현은 본 출원에서 특별히 제한되지 않으며, 비트스트림에서 제1 식별자와 제4 식별자의 위치와 형태도 본 출원의 실시예에서 특별히 제한되지 않는다는 점에 유의해야 한다.
선택적으로, 제1 식별자에 고정 길이 코딩 모드를 사용할 수 있다. 예를 들어, 제1 식별자는 1-비트 식별자일 수 있고, 제1 식별자로 표시된 유형은 제한된다.
선택적으로, 제1 식별자에 가변 길이 코딩 모드를 선택적으로 사용할 수 있다.
S1502: 디코딩 장치는 제1 식별자를 기반으로 제1 후보 세트에서 타겟 요소를 결정한다.
특히, 제1 후보 세트의 내용은 다음의 두 가지 가능한 구현으로 구성될 수 있다.
가능한 구현 1: 제1 후보 세트의 요소는 적어도 하나의 제1 후보 모션 정보와 적어도 하나의 제2 후보 세트를 구성하고, 제2 후보 세트의 요소는 복수의 제2 후보 모션 정보를 구성할 수 있다.
가능한 구현 2: 제1 후보 세트의 요소는 적어도 하나의 제1 후보 모션 정보와 복수의 제2 후보 모션 정보로 구성될 수 있고, 제1 후보 모션 정보는 제1 모션 정보로 구성되며, 제2 후보 모션 정보는 사전 설정된 모션 오프셋으로 구성된다. 제1 모션 정보와 사전 설정된 모션 정보 오프셋을 기반으로 새로운 모션 정보가 생성될 수 있다.
제1 후보 세트는 구성된 후보 모션 정보 목록일 수 있다. 제1 후보 세트는 직접적으로 적어도 하나의 제1 후보 모션 정보를 구성하고, 복수의 제2 후보 모션 정보는 제2 후보 세트의 형태로 제1 후보 세트에서 구성된다.
실현 가능한 구현에 있어서, 제2 후보 모션 정보는 제1 후보 모션 정보와 다르다.
예를 들어, 제1 후보 모션 정보와 제2 후보 모션 정보는 각각 다른 MV 예측 모드를 사용하여 결정되거나, 다른 유형의 후보 모션 정보가 될 수 있다. 이것은 본 출원의 실시예에서 특별히 한정되지 않는다.
예를 들어, 제1 후보 모션 정보는 머지 모드에서, 제2 후보 모션 정보는 어파인 머지 모드에서 얻을 수 있다.
예를 들어, 제1 후보 모션 정보는 원래 후보 모션 정보일 수 있고, 제2 후보 모션 정보는 원래 후보 모션 정보를 기반으로 생성된 모션 정보일 수 있다.
예를 들어, 도 16a와 도 16b에는 두 개의 머지 후보 목록이 도시된다. 도 16a 또는 도 16b에 도시된 머지 후보 목록에서, 목록의 플래그 비트는 후보 모션 정보 세트를 나타내기 위해 사용된다. 플래그 비트는 목록의 어느 위치에나 위치할 수 있다. 이것은 본 출원의 실시예에서 특별히 제한되지 않는다. 예를 들어, 플래그 비트는 도 16a에 도시된 목록의 끝에 위치할 수 있다. 또는 플래그 비트는 도 16b에 도시된 목록의 중간에 위치할 수 있다. 비트스트림의 제1 식별자가 플래그 비트를 나타낼 때, 타겟 요소가 플래그 비트로 표시된 후보 모션 정보 세트로 결정된다. 플래그 비트로 표시된 후보 모션 정보 세트는 복수의 제2 후보 모션 정보로 구성된다. 그런 다음, 플래그 비트로 표시된 후보 모션 정보 세트의 후보 모션 정보가 추가 식별자(S1504의 제2 식별자)에 기반하는 타겟 모션 정보로 선택되어 처리될 사진 블록의 모션 정보를 예측한다.
예를 들어, 도 16a와 도 16b에 두 개의 머지 후보 목록이 도시된다. 도 16a 또는 도 16b에 도시된 머지 후보 목록에서, 목록의 플래그 비트는 후보 모션 정보 세트를 나타내기 위해 사용된다. 플래그 비트는 목록의 어느 위치에나 위치할 수 있다. 이것은 본 출원의 실시예에서 특별히 제한되지 않는다. 예를 들어, 플래그 비트는 도 16a에 도시된 목록의 끝에 위치할 수 있다. 또는 플래그 비트는 도 16b에 도시된 목록의 중간에 위치할 수 있다. 비트스트림의 제1 식별자가 플래그 비트를 나타낼 때, 타겟 요소가 플래그 비트로 표시된 복수의 제2 후보 모션 정보인 것을 결정한다. 제2 후보 모션 정보는 사전 설정된 모션 정보 오프셋으로 구성된다. 그런 다음, 추가 식별자(S1504의 제2 식별자)를 기반으로 플래그 비트에 의해 표시된 복수의 제2 번째 후보 모션 정보에서 하나의 후보 모션 정보가 선택되고, 타겟 모션 정보는 선택된 제2 후보 모션 정보에 기초하여 결정되어, 처리될 사진 블록의 후보 모션 정보를 예측한다.
다른 실현 가능한 구현에 있어서, 도 16c에 도시된 바와 같이, 두 개 이상의 플래그 비트가 머지 후보 목록에 추가되고, 각 플래그 비트는 하나의 특정 후보 모션 정보 세트 또는 사전 설정된 모션 정보 오프셋을 구성하는 복수의 모션 정보를 가리킨다. 비트스트림의 제1 식별자가 플래그 비트를 나타내는 경우, 타겟 요소가 플래그 비트로 표시된 후보 모션 정보 세트의 후보 모션 정보 또는 플래그 비트로 표시된 복수의 후보 모션 정보(사전 설정된 모션 정보 오프셋 포함) 중 하나가 결정되고, 이 후 타깃 모션 정보가 결정된다.
도 16a, 도 16b 및 도 16c에서 후보 소개를 하위세트 방식으로 구현하기 위해 플래그 비트(포인트)가 머지 목록에 도입된다. 복수의 후보가 도입되면, 후보 목록의 길이가 크게 줄어들고, 목록 재구성의 복잡성이 줄어들며, 하드웨어 구현이 간소화된다.
실현 가능한 구현에 있어서, 제1 후보 모션 정보는 처리될 사진 블록의 공간적으로 인접한 사진 블록의 모션 정보로 구성될 수 있다. 공간적으로 인접한 사진 블록의 모션 정보에 대한 정의는 전술한 내용에 설명되어 있으며, 세부 사항은 여기에 다시 설명되지 않는다는 점에 유의해야 한다.
실현 가능한 구현에 있어서, 제2 후보 모션 정보는 처리될 사진 블록의 공간적으로 인접하지 않은 사진 블록의 모션 정보로 구성될 수 있다. 공간적으로 인접하지 않은 사진 블록의 모션 정보에 대한 정의는 전술한 내용에 설명되어 있으며, 세부 사항은 여기서 다시 설명되지 않는다는 점에 유의해야 한다.
제1 모션 정보를 얻는 방법은 실제 요구 사항에 따라 선택할 수 있다. 이것은 본 출원의 실시예에서 특별히 제한되지 않는다. 제2 모션 정보를 얻는 데 사용되는 사전 설정된 모션 정보 오프셋은 고정 값일 수도 있고, 세트로부터 선택한 값일 수도 있다. 콘텐츠와 사전 설정된 모션 정보 오프셋의 형태는 본 출원의 실시예에서 특별히 제한되지 않는다.
실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되고, 적어도 하나의 제1 후보 세트는 복수의 제2 후보 세트이고, 복수의 제2 후보 세트는 적어도 하나의 제3 후보 세트 및 적어도 하나의 제4 후보 세트를 구성하고, 제3 후보 세트의 요소는 복수의 처리될 사진 블록의 공간적으로 인접하지 않는 사진 블록의 모션 정보를 구성하고, 제4 후보 세트의 요소는 제1 모션 정보와 사전 설정된 모션 정보 오프셋을 기반으로 얻은 복수의 모션 정보를 구성한다.
실현 가능한 구현에 있어서, 적어도 하나의 제2 후보 세트는 복수의 제2 후보 세트이고, 복수의 제2 후보 세트는 적어도 하나의 제5 후보 세트와 적어도 하나의 제6 후보 세트를 구성하고, 제5 후보 세트의 요소는 복수의 처리될 사진 블록의 공간적으로 인접하지 않은 모션 정보를 구성하고, 제6 후보 세트의 요소는 복수의 사전 설정된 모션 정보 오프셋을 구성한다.
실현 가능한 구현에 있어서, 제1 모션 정보를 식별하는 데 사용되는 인코딩된 코드 워드는 적어도 하나의 제1 후보 모션 정보에서 가장 짧다.
실현 가능한 구현에 있어서, 제1 모션 정보는 ATMVP 모드에서 획득한 모션 정보로 구성되지 않는다.
S1501에서 설명된 바와 같이, 제1 식별자는 제1 후보 세트의 인덱스이거나 모션 정보의 카테고리의 식별자일 수 있다. 구체적인 내용에 기초하여, S1502는 다음의 두 가지 경우로 구현될 수 있다.
경우 1: 제1 식별자는 제1 후보 세트의 인덱스이다.
가능한 구현에 있어서, 경우 1에서, 디코딩 장치는 S1502의 타겟 요소로 설정된 제1 후보 세트의 제1 식별자가 가리키는 위치에서 타겟 요소를 결정할 수 있다. 제1 후보 세트는 적어도 하나의 제1 후보 모션 정보와 적어도 하나의 제2 후보 세트로 구성되기 때문에, 제1 식별자에 기초하여 결정된 타겟 요소는 제1 후보 모션 정보가 될 수도 있고, 제1 식별자로 표시된 위치에 배열된 내용에 따라, 제2 후보 세트일 수도 있다.
다른 가능한 구현에 있어서, 경우 1에서, 디코딩 장치는 S1502의 타겟 요소로 설정된 제1 후보 세트의 제1 식별자가 가리키는 위치에서의 요소를 타겟 요소로서 결정할 수 있다. 제1 후보 세트는 적어도 하나의 제1 후보 모션 정보와 복수의 제2 후보 모션 정보로 구성되기 때문에, 제1 식별자에 기초하여 결정된 타겟 요소는 제1 후보 모션 정보가 될 수도 있고, 제1 식별자에 의해 표시된 위치에 정렬된 내용에 따라, 복수의 제2 후보 모션 정보에 기초하여 얻을 수도 있다.
경우 2: 제1 식별자는 후보 모션 정보 카테고리의 식별자이다.
경우 2에서, 디코딩 장치는 제1 식별자를 기반으로 타겟 요소가 S1502에 속하는 카테고리를 결정한다. 디코딩 장치는 비트 스트림을 추가로 파싱하여, 제4 식별자를 얻는데, 여기서 제4 식별자는 카테고리 내 타겟 요소의 특정 위치를 나타내며, 제4 식별자를 기반으로 카테고리의 타겟 요소를 유일하게 결정한다. 구체적으로는, 제1 식별자는 타겟 요소가 제1 후보 모션 정보의 카테고리에 속한다고 표시할 경우, 제4 식별자를 기반으로 적어도 하나의 제1 후보 모션 정보에서 제1 후보 모션 정보가 타겟 요소로 결정된다. 제1 식별자는 타겟 요소가 제2 후보 모션 정보의 카테고리에 속함을 나타내는 경우, 제2 후보 세트 또는 제2 후보 모션 정보는 제4 식별자에 기초하여 타겟 요소로 결정된다.
예를 들어, 제1 후보 모션 정보는 머지 모션 정보이고, 제1 후보 세트는 두개의 제2 후보 세트를 구성하고, 어느 하나의 제1 후보 세트의 제2 후보 모션 정보는 제1 유형의 어파인 머지 모션 정보이고, 다른 하나의 제2 후보 세트의 제2 후보 모션 정보는 제2 유형의 어파인 머지 모션 정보인 것으로 가정된다. 구성은 다음과 같다. 식별자가 0이면, 식별자는 머지 모션 정보를 나타내고, 식별자가 1이면, 식별자는 어파인 머지 모션 정보를 나타낸다. S1501의 비트스트림에 대한 파싱을 통해 디코딩 장치가 얻은 제1 식별자가 0이면, 디코딩 장치는 S1502의 비트스트림을 추가로 파싱하여 제4 식별자를 얻는다. 디코딩 장치는 제4 식별자를 기반으로 타겟 요소로 설정된 제1 후보 세트의 적어도 하나의 머지 모션 정보에서 하나의 머지 모션 정보를 결정한다. S1501에서 비트스트림에 대해 파싱하여 디코딩 장치에 의해 얻은 제1 식별자가 1이면, 디코딩 장치는 S1502에서 비트스트림을 추가로 파싱하여 제4 식별자를 얻는다. 디코딩 장치는 제4 식별자를 기반으로 제2 후보 세트 중 하나를 타겟 요소로 결정한다.
예를 들어, 제1 후보 모션 정보는 머지 모션 정보이고, 제1 후보 세트는 두 개의 후보 세트로를 구성하고, 하나의 제2 후보 세트의 제2 후보 모션 정보는 제1 유형의 어파인 머지 모션 정보에 해당하는 사전 설정된 모션 정보 오프셋이고, 다른 하나의 제2 후보 세트의 제2 후보 모션 정보는 제2 유형 어파인 머지 정보에 대응하는 사전 설정된 모션 정보 오프셋인 것으로 가정된다. 구성은 다음과 같다. 식별자가 0이면, 식별자는 머지 모션 정보를 나타내고, 식별자가 1이면, 식별자는 어파인 머지 모션 정보를 나타낸다. S1501의 비트스트림에 대한 파싱을 통해 디코딩 장치가 얻은 제1 식별자가 0이면, 디코딩 장치는 S1502의 비트스트림를 추가로 파싱하여 제4 식별자를 얻는다. 디코딩 장치는 제4 식별자를 기반으로 타겟 요소로 설정된 제1 후보 세트의 적어도 하나의 머지 모션 정보에서 하나의 머지 모션 정보를 결정한다. S1501에서 비트스트림을 파싱하여 디코딩 장치에 의해 얻은 제1 식별자가 1이면, 디코딩 장치는 S1502에서 비트스트림을 추가로 파싱하여 제4 식별자를 얻는다. 디코딩 장치는 제4 식별자를 기반으로 제2 후보 세트에서 제2 후보 세트의 하나를 결정하고, 결정된 제2 후보 세트에서 제2 후보 모션 정보 중 하나를 기반으로 타겟 요소를 결정한다.
선택적으로, S1502에서 디코딩 장치가 타겟 요소를 제1 후보 모션 정보라고 판단하면 S1503을 수행한다. S1502에서, 디코딩 장치가 타겟 요소를 제2 후보 세트라고 결정하거나, 복수의 제2 후보 모션 정보를 기반으로 얻은 경우 S1504가 수행된다.
S1503: 타겟 요소가 제1 후보 모션 정보인 경우, 제1 후보 모션 정보를 타겟 모션 정보로 사용한다.
타겟 모션 정보는 처리될 사진 블록의 모션 정보를 예측하는 데 사용된다.
선택적으로, 처리될 사진 블록의 모션 정보를 예측하는 데 사용되는 타겟 모션 정보는 처리될 사진 블록의 모션 정보로 사용하거나, 처리될 사진 블록의 예측 모션 정보로 타겟 모션 정보를 사용하는 것으로 구성된다. 실제 적용 시, 처리될 사진 블록의 모션 정보를 예측하기 위한 실제 요구 사항에 기초하여 타겟 모션 정보를 선택할 수 있다. 구체적인 구현은 여기에 특별히 제한되지 않는다.
또한 처리될 사진 블록의 후속 처리에 대해서는 전술한 내용에 자세히 설명되어 있으므로, 세부 사항은 여기에 다시 설명되지 않는다.
S1504: 비트스트림을 파싱하여 제2 식별자와 복수의 제2 후보 모션 정보 중 하나를 기반으로 타겟 모션 정보를 결정한다.
제2 식별자를 얻기 위해 비트스트림을 파싱하여, 제2 식별자와 복수의 제2 후보 모션 정보의 하나에 기초한 타겟 모션 정보를 결정하는 S1504는 특히 다음과 같이 구현될 수 있다; 제2 식별자를 얻기 위해 비트스트림을 파싱하고, 제2 식별자에 기초한 복수의 제2 후보 모션 정보로부터 타겟 모션 정보를 결정한다.
식별자를 얻기 위한 비트스트림 파싱의 구체적인 구현은 본 출원에서 특별히 제한되지 않으며, 비트스트림에서의 제2 식별자의 위치와 형태도 본 출원의 실시예에서 특별히 제한되지 않는다는 점에 유의해야 한다.
선택적으로, 제2 식별자에 고정 길이 코딩 모드를 사용할 수 있다. 예를 들어, 제2 식별자는 1-비트 식별자일 수 있고, 제1 식별자로 표시된 유형은 제한된다.
선택적으로, 제2 식별자에 가변 길이 코딩 모드를 사용할 수 있다. 예를 들어, 제2 식별자는 다중 비트 식별자일 수 있다.
선택적으로, 제2 후보 모션 정보의 다른 내용에 기초하여, S1504에서의 제2 식별자와 복수의 제2 후보 모션 정보 중 하나에 기초한 타겟 모션 정보를 결정하는 것은 다음과 같은 실행 가능한 구현에서 구현될 수 있지만, 제한되지는 않는다.
실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되고, 제2 후보 모션 정보는 제2 모션 정보로 구성되며, 제2 모션 정보는 제1 모션 정보와 사전 설정된 모션 정보 오프셋을 기반으로 획득된다. 이러한 방식으로 제2 식별자는 제2 후보 세트에서 타겟 모션 정보의 특정 위치를 나타낼 수 있다. 디코딩 장치가 S1504의 제2 식별자에 기초한 복수의 제2 후보 모션 정보로부터 타겟 모션 정보를 결정하는 것은 특별히 다음과 같이 구현될 수 있다. 타겟 요소로 사용되는 제2 후보 세트의 제2 식별자에 의해 표시된 위치에서 제2 후보 모션 정보를 타겟 모션 정보로서 결정하는 것이다.
실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되고, 제2 후보 모션 정보는 사전 설정된 모션 정보 오프셋으로 구성된다. 이러한 방식으로, 제2 식별자는 제2 후보 세트에서 타겟 오프셋의 특정 위치를 나타낸다. 디코딩 장치가 S1504의 제2 식별자에 기초한 복수의 제2 후보 모션 정보로부터 타겟 모션 정보를 결정하는 것은 다음과 같이 구체적으로 구현될 수 있다. 제2 식별자에 기초한 복수의 사전 설정된 모션 정보 오프셋으로부터 타겟 오프셋을 결정하고, 제1 모션 정보와 타겟 오프셋을 기반으로 모션 정보를 결정한다.
실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되고, 제2 후보 모션 정보는 사전 설정된 모션 정보 오프셋으로 구성된다. 제2 식별자를 기반으로 복수의 사전 설정된 모션 정보 오프셋에서 대상 오프셋을 결정하기 전에, 본 출원에 제공된 모션 정보를 예측하는 디코딩 방법은 복수의 조정된 모션 정보 오프셋을 얻기 위해, 복수의 사전 설정된 모션 정보 오프셋을 사전 설정된 계수로 곱하는 구성을 추가로 구성할 수 있다. 이에 대응하여, 제2 식별자에 기초한 복수의 사전 설정된 모션 정보 오프셋에서 타겟 오프셋을 결정하는 것은 제2 식별자에 기반한 복수의 조정된 모션 정보 오프셋에서 타겟 오프셋을 결정하는 것으로 구성된다.
실현 가능한 구현에 있어서, 제1 후보 모션 정보는 제1 모션 정보로 구성되고, 제2 후보 모션 정보는 사전 설정된 모션 정보 오프셋으로 구성된다. 이러한 방식으로, 디코딩 장치가 제2 식별자에 기초한 타겟 모션 정보와 S1504에서 복수의 제2 후보 모션 정보 중 하나를 결정하는 것은 다음과 같이 구체적으로 구현될 수 있다. 제2 식별자에 기초한 복수의 사전 설정된 모션 정보 오프셋으로부터 하나의 모션 정보 오프셋을 결정하고, 결정된 하나의 모션 정보 오프셋에 사전 설정된 계수를 곱하여 얻은 값을 타겟 오프셋으로 이용하여, 제1 모션 정보와 타겟 오프셋을 기반으로 한 타겟 모션 정보를 결정한다.
사전 설정된 계수는 디코딩 장치에 고정 계수로 구성될 수 있고, 또는 비트스트림에 전달되는 계수일 수 있다는 점에 유의해야 한다. 이것은 본 출원의 실시예에서 특별히 제한되지 않는다.
또한 선택적으로, 사전 설정된 계수가 비트스트림에서 전달될 때, 본 출원에 제공된 모션 정보를 예측하는 디코딩 방법은 S1505로 구성될 수 있다.
S1505: 비트스트림을 파싱하여 제3 식별자를 얻는다.
제3 식별자는 사전 설정된 계수로 구성된다.
본 출원에 모션 정보를 예측하는 디코딩 방법에 따르면, 제1 후보 세트의 요소는 제1 후보 모션 정보와 적어도 하나의 제2 후보 세트로 구성하거나, 제1 후보 세트의 요소는 제1 후보 모션 정보와 복수의 제2 후보 모션 정보로 구성한다. 이러한 방식으로, 다층 후보 세트의 구조에서, 더 많은 후보가 도입될 때, 하나의 유형의 후보 모션 정보의 세트가 하나의 요소로 사용되어, 제1 후보 세트에 추가될 수 있다. 제1 후보 세트에 후보 모션 정보를 직접 추가하는 것과 비교하면, 본 출원의 솔루션은 제1 후보 세트의 길이를 크게 단축시킨다. 제1 후보 세트가 인터 예측의 후보 모션 정보 목록일 경우, 더 많은 후보가 도입되더라도 후보 모션 정보 목록의 길이를 잘 제어할 수 있어 감지 프로세스와 하드웨어 구현이 용이하다.
예로서, 다음은 본 출원의 실시예에 대한 몇 가지 구체적인 구현이다.
실시예 1
머지 후보 목록의 최대 길이는 7이고, 제1 인덱스 0에서 6은 머지 목록의 후보 공간을 나타낸다. 제1 인덱스 0에서 5에 해당하는 후보 모션 정보는 모션 벡터와 참조 사진으로 구성되며, 제1 인덱스 6은 인덱스 0과 사전 설정된 모션 벡터 오프셋에 해당하는 후보 모션 정보를 기반으로 생성되는 새로운 모션 정보에 해당한다. 제1 인덱스 0에 해당하는 후보 모션 정보는 전진 예측으로, 모션 벡터는 (2, -3)이며, 참조 프레임 POC는 2라고 가정한다. 사전 설정된 모션 벡터 오프셋은 (1, 0), (0, -1), (-1, 0) 및 (0, 1)이다. 비트스트림 파싱을 통해 얻은 제1 인덱스 값이 6일 때, 현재 사진 블록에서 사용하는 모션 정보가 인덱스 0과 사전 설정된 모션 벡터 오프셋에 해당하는 후보 모션 정보를 기반으로 생성된 새로운 모션 정보임을 나타내며, 제2 인덱스 값을 얻기 위해 추가 디코딩이 수행된다. 추가 디코딩 을 통해 얻은 제2 인덱스 값이 1일 때, 현재 사진 블록의 모션 정보는 전진 예측이고, 모션 벡터는 (2, -3) + (0, -1) = (2, -4)이고, 참조 프레임 POC는 2이다.
실시예 2
머지 후보 목록의 최대 길이는 7이고, 제1 인덱스 0에서 6은 머지 목록의 후보 공간을 나타낸다. 제1 인덱스 0에서 5에 해당하는 후보 모션 정보는 모션 벡터와 참조 사진으로 구성되며, 제1 인덱스 6은 제1 인덱스 0과 사전 설정된 모션 벡터 오프셋에 해당하는 후보 모션 정보를 기반으로 생성되는 새로운 모션 정보에 해당한다. 제1 인덱스 0에 해당하는 후보 모션 정보는 양방향 예측으로, 전진 모션 벡터는 (2, -3)이고, 참조 프레임 POC는 (2, -1)이고, 후진 모션 벡터는 (-2, -1)이고, 참조 프레임 POC는 4라고 가정한다. 사전 설정된 모션 벡터 오프셋은 (1, 0), (0, -1), (-1, 0) 및 (0, 1)이다. 비트스트림 파싱을 통해 얻은 제1 인덱스 값이 6일 때는, 현재 사진 블록에서 사용하는 모션 정보가 인덱스 0과 사전 설정된 모션 벡터 오프셋에 해당하는 후보 모션 정보를 기반으로 생성된 새로운 모션 정보임을 나타내며, 제2 인덱스 값을 얻기 위해 추가 디코딩이 수행된다. 추가 디코딩을 통해 얻은 제2 인덱스 값이 0일 때, 현재 사진 블록의 모션 정보가 양방향 예측이고, 현재 프레임 POC가 3일 때는 현재 프레임 POC와 비교했을 때, 전방 참조 프레임 POC와 후진 참조 프레임 POC의 방향이 다르다. 이 경우, 전진 운동 벡터는 (2, -3) + (1, 0) = (3, 3)이고, 참조 프레임 POC는 (-2, -1) - (1,0) = (-3, -1)이고, 참조 프레임 POC는 4이다. 현재 프레임 POC가 6인 경우, 전방 참조 프레임 POC 및 후방 참조 프레임 POC는 현재 프레임 POC와 동일한 방향에 있다. 이 경우, 전진 운동 벡터는 (2, -3) + (1, 0) = (3, 3)이고, 참조 프레임 POC는 (-2, -1) + (1,0) = (-1, 1)이고, 참조 프레임 POC는 4이다.
실시예 3
머지 후보 목록의 최대 길이는 7이고, 첫 번째 인덱스 0에서 6은 머지 목록의 후보 공간을 나타낸니다. 제1 인덱스 0에서 5에 해당하는 후보 모션 정보는 모션 벡터와 참조 사진으로 구성된다. 제1 인덱스 0으로 표시된 후보 모션 정보는 하위 블록 모션 정보에 의해 구성되고, 제1 인덱스 1에 해당하는 후보 모션 정보는 하위 블록 모션 정보에 의해 구성되지 않으며, 모션 정보는 전진 예측으로, 모션 벡터는 (2, -3)이고, 참조 프레임 POC는 2라고 가정한다. 제1 인덱스 6은 제1 인덱스 1과 사전 설정된 모션 벡터 오프셋에 해당하는 후보 모션 정보에 기초하여 생성된 새로운 모션 정보에 해당한다. 사전 설정된 모션 벡터 오프셋은 (1, 0), (0, -1), (-1, 0) 및 (0, 1)이다. 비트스트림 파싱을 통해 얻은 제1 인덱스 값이 6일 때, 현재 사진 블록에서 사용하는 모션 정보가 인덱스 1과 사전 설정된 모션 벡터 오프셋에 해당하는 후보 모션 정보를 기반으로 생성된 새로운 모션 정보임을 나타내며, 제2 인덱스 값을 얻기 위해 추가 디코딩이 수행된다. 추가 디코딩을 통해 얻은 제2 인덱스 값이 1일 때, 현재 블록의 모션 정보는 전진 예측으로, 모션 벡터는 (2, -3) + (0, -1) = (2, -4)이고, 참조 프레임 POC는 2이다.
실시예 4
머지 후보 목록의 최대 길이는 7이고, 제1 인덱스 0에서 6은 머지 목록의 후보 공간을 나타낸다. 제1 인덱스 6은 현재 블록의 공간적으로 인접하지 않은 후보 모션 정보가 현재 블록의 참조 모션 정보로 사용됨을 나타낸다. 공간적으로 인접하지 않은 후보 세트의 크기는 4라고 가정한다. 공간적으로 인접하지 않은 후보 세트의 경우, 사용 가능한 공간적으로 인접하지 않은 후보들이 사전 설정된 감지 시퀀스에 따라 세트에 배치된다. 세트에서 공간적으로 인접하지 않은 후보 모션 정보는다음과 같다고 가정한다.
제2 인덱스 0: 후보 0: 전진 예측으로, 모션 벡터는 (2, -3)이고, 참조 프레임 POC는 2이다.
제2 인덱스 1: 후보 1: 전진 예측으로, 모션 벡터는 (1, -3)이고, 참조 프레임 POC는 4이다.
제2 인덱스 2: 후보 2: 후방 예측으로, 모션 벡터는 (2, -4)이고, 참조 프레임 POC는 2이다.
제2 인덱스 3: 후보 3: 양방향 예측으로, 전진 운동 벡터는 (2, -3)이고, 참조 프레임 POC는 (2, 2)이며, 참조 프레임 POC는 4이다.
디코딩을 통해 얻은 제1 인덱스 값이 6일 때, 현재 블록의 공간적으로 인접하지 않은 후보 모션 정보가 현재 블록의 참조 모션 정보로 사용됨을 나타내며, 추가 디코딩을 수행하여 제2 인덱스 값을 얻는다. 추가 디코딩을 통해 얻은 제2 인덱스 값이 1일 때, 공간적으로 인접하지 않은 후보 세트에서 후보 1의 모션 정보가 현재 블록의 모션 정보로 사용된다.
실시예 5
머지 후보 목록의 최대 길이는 7이고, 제1 인덱스 0에서 6은 머지 목록의 후보 공간을 나타낸다. 제1 인덱스 0에 해당하는 후보 모션 정보는 전진 예측으로, 모션 벡터는 (2, -3)이며, 참조 프레임 POC는 2이다. 제1 인덱스 6은 제1 인덱스 0에 해당하는 후보 모션 정보 또는 공간적으로 인접하지 않은 후보 모션 정보에 기초하여 생성된 새로운 모션 정보가 현재 블록의 참조 모션 정보로 사용됨을 나타낸다. 공간적으로 인접하지 않은 후보 집합의 크기는 4라고 가정한다. 공간적으로 인접하지 않은 후보 세트의 경우, 사용 가능한 공간적으로 인접하지 않은 후보들이 사전 설정된 감지 시퀀스에 따라 세트에 배치된다. 세트에서 공간적으로 인접하지 않은 후보 모션 정보는 다음과 같다고 가정한다.
제2 인덱스 0: 후보 0: 전진 예측으로, 모션 벡터는 (-5, -3)이고, 참조 프레임 POC는 2이다.
제2 인덱스 1: 후보 1: 전진 예측으로, 모션 벡터는 (1, -3)이고, 참조 프레임 POC는 4이다.
제2 인덱스 2: 후보 2: 후진 예측으로, 모션 벡터는 (2, -4)이고, 참조 프레임 POC는 2이다.
제2 인덱스 2: 후보 3: 양방향 예측으로, 전방 모션 벡터는 (2, -3)이고, 참조 프레임 POC는 (2, -2)이며, 후방 모션 벡터는 (2, 2)이고, 참조 프레임 POC는 4이다.
다른 4개의 후보는 제1 인덱스 0과 사전 설정된 모션 벡터 오프셋(1, 0), (0, -1), (-1, 0), (0, 1)에 해당하는 후보 모션 정보를 기반으로 하여 얻으며 다음과 같다고 가정한다.
제2 인덱스 4: 후보 4: 전진 예측으로, 모션 벡터는 (2, -3) + (1, 0)이고, 참조 프레임 POC는 2이다.
제2 인덱스 5: 후보 5: 전진 예측으로, 모션 벡터는 (2, -3) + (0, -1)이고, 참조 프레임 POC는 2이다.
제2 인덱스 6: 후보 6: 전진 예측으로, 모션 벡터는 (2, -3) + (-1, 0)이고, 참조 프레임 POC는 2이다.
제2 인덱스 7: 후보 7: 전진 예측으로, 모션 벡터는 (2, -3) + (0, 1)이고, 참조 프레임 POC는 2이다.
디코딩을 통해 얻은 제1 인덱스 값이 6일 때, 제1 인덱스 0에 해당하는 후보 모션 정보 또는 공간적으로 인접하지 않은 후보 모션 정보를 기반으로 생성된 새로운 모션 정보가 현재 블록의 참조 모션 정보로 사용되고, 제2 인덱스 값을 얻기 위해 추가 디코딩이 수행된다. 추가 디코딩을 통해 얻은 제2 인덱스 값이 0일 때, 공간적으로 인접하지 않은 후보 세트에서 후보 0의 모션 정보는 모션 벡터가 (-5, -3)이고 참조 프레임 POC가 2이고, 현재 블록의 모션 정보로 사용된다. 추가 디코딩을 통해 얻은 두 번째 인덱스 값이 5일 때, 모션 벡터 오프셋을 거치는 후보 5의 모션 정보는 모션 벡터가 (2, -3) + (0, -1)이고, 참조 프레임 POC가 2이고, 현재 블록의 모션 정보로 사용된다.
실시예 6
머지 후보 목록의 최대 길이는 7이고, 제1 인덱스 0에서 6은 머지 목록의 후보 공간을 나타낸다. 제1 인덱스 0에 해당하는 후보 모션 정보는 전진 예측으로, 모션 벡터는 (2, -3)이고, 참조 프레임 POC는 2이다. 제1 인덱스 6은 현재 블록에서 사용하는 모션 정보가 제1 인덱스 0에 해당하는 후보 모션 정보에 기초하여 생성된 새로운 모션 정보임을 나타낸다. 사전 설정된 모션 벡터 오프셋은 다음과 같다.
(1, 0), (0, -1), (-1, 0), (0, 1) 및
(2, 0), (0, -2), (-2, 0), (0, 2).
제2 인덱스 값 0은 1의 간격을 가진 후보를 나타내고, 제2 인덱스 값 1은 2의 간격을 가진 후보를 나타내며, 제3 인덱스 값은 모션 벡터 오프셋의 후보 인덱스를 나타낸다. 비트스트림 파싱을 통해 얻은 제1 인덱스 값이 6일 때, 현재 블록에서 사용하는 모션 정보가 제1 인덱스 0에 해당하는 후보 모션 정보를 기반으로 생성된 새로운 모션 정보임을 나타내며, 제2 인덱스 값을 얻기 위해 추가 디코딩이 수행된다. 디코딩을 통해 추가로 얻은 제2 인덱스 값과 제3 인덱스 값이 각각 1과 3이면, 간격 2와 인덱스 2의 오프셋 모션 벡터(-2, 0)가 선택된다. 이 경우, 현재 블록의 모션 정보는 전진 예측으로, 모션 벡터는 (2, -3) + (-2, 0) = (0, -3)이며, 참조 프레임 POC는 2이다.
실시예 7
머지 후보 목록의 최대 길이는 7이고, 제1 인덱스 0 내지 6은 머지 목록의 후보 공간을 나타낸다. 첫 번째 인덱스 6은 AFFINE을 사용하여 얻은 모션 정보 후보 집합에서 한 후보가 현재 블록의 참조 모션 정보로 사용됨을 나타낸다. AFFINE 모션 정보 후보 세트는 AFFINE 모션 정보 후보 4개로 구성된다.
제2 인덱스 지수 0: AFFINE 후보 0;
제2 인덱스 1: AFFINE 후보 1;
제2 인덱스 2: AFFINE 후보 2; 및
제2 인덱스 3: AFFINE 후보 3.
디코딩을 통해 얻은 제1 인덱스 값이 6일 때 AFFINE을 사용하여 얻은 모션 정보 후보 세트에서 한 후보가 현재 블록의 참조 모션 정보로 사용되고, 제2 인덱스 값을 얻기 위해 추가 디코딩이 수행됨을 나타낸다. 추가 디코딩을 통해 얻은 제2 인덱스 값이 1일 때, AFFINE 후보 1의 모션 정보가 현재 블록의 모션 정보로 사용된다.
실시예 8
머지 후보 목록의 최대 길이는 7이고, 첫 번째 인덱스 0 내지 6은 머지 목록의 후보 공간을 나타낸다. 제1 인덱스 6은 공간적으로 인접한 모션 정보 후보 세트에서 한 후보가 현재 블록의 참조 모션 정보로 사용됨을 나타낸다. 공간적으로 인접한 모션 정보 후보 세트는 공간적으로 인접한 모션 정보 후보 4개로 구성된다고 가정한다.
제2 인덱스 0: 공간적으로 인접한 후보 0;
제2 인덱스 1: 공간적으로 인접한 후보 1;
제2 인덱스 2: 공간적으로 인접한 후보 2; 및
제2 인덱스 3: 공간적으로 인접한 후보 3.
디코딩을 통해 얻은 제1 인덱스 값이 6일 때, 공간적으로 인접한 모션 정보 후보 세트에서 한 후보가 현재 블록의 참조 모션 정보로 사용되고, 제2 인덱스 값을 얻기 위해 추가 디코딩이 수행됨을 나타낸다. 추가 디코딩을 통해 얻은 제2 인덱스 값이 1일 때, 공간적으로 인접한 후보 1의 모션 정보가 현재 블록의 모션 정보로 사용된다.
실시예 9
머지 후보 목록의 최대 길이는 7이고, 제1 인덱스 0 내지 6은 머지 목록의 후보 공간을 나타냅니다. 제1 인덱스 6은 일시적으로 인접한 모션 정보 후보 세트에서 한 후보가 현재 블록의 참조 모션 정보로 사용됨을 나타낸다. 일시적으로 인접한 모션 정보 후보 세트는 일시적으로 인접한 모션 정보 후보 4개로 구성된다.
제2 인덱스 0: 일시적으로 인접한 후보 0;
제2 인덱스 1: 일시적으로 인접한 후보 1;
제2 인덱스 2: 일시적으로 인접한 후보 2; 및
제2 인덱스 3: 일시적으로 인접한 후보 3.
디코딩을 통해 얻은 제1 인덱스 값이 6일 때, 일시적으로 인접한 모션 정보 후보 세트에서 한 후보가 현재 블록의 참조 모션 정보로 사용되고, 제2 인덱스 값을 얻기 위해 추가 디코딩이 수행됨을 나타낸다. 추가 디코딩을 통해 얻은 제2 인덱스 값이 1일 때, 일시적으로 인접한 후보 1의 모션 정보가 현재 블록의 모션 정보로 사용된다고 가정한다.
실시예 10
머지 후보 목록의 최대 길이는 7이고, 제1 인덱스 0 내지 6은 머지 목록의 후보 공간을 나타낸다. 제1 인덱스 6은 하위 블록 모션 정보로 구성된 모션 정보 후보 세트에서 한 후보가 현재 블록의 참조 모션 정보로 사용됨을 나타낸다. 하위 블록 모션 정보에 의해 구성된 모션 정보 후보 세트는 AFFIN 모션 정보 후보, ATMVP 후보 및 STMVP 후보로 구성된다고 가정한다.
제2 인덱스 0: AFFINE 후보;
제2 인덱스 1: ATMVP 후보; 및
제 2 인덱스 2: STMVP 후보.
디코딩을 통해 얻은 제1 인덱스 값이 6일 때, 하위 블록 모션 정보로 구성된 모션 정보 후보 세트에서 후보 하나가 현재 블록의 참조 모션 정보로 사용되고, 추가 디코딩이 수행돼어 제2 인덱스 값을 얻는다는 것을 나타낸다. 추가 디코딩을 통해 얻은 제2 인덱스 값이 1일 때, ATMVP 후보의 모션 정보가 현재 블록의 모션 정보로 사용된다고 가정한다.
실시예 11
머지 후보 공간에서 목록의 공간 0 내지 공간 5는 머지을 통해 얻은 모션 정보이며, 공간 6은 AFFINE을 통해 얻은 모션 후보 세트이다. 제1 인덱스 0은 머지을 통해 얻은 모션 정보가 현재 블록의 참조 모션 정보임을 나타내고, 제1 인덱스 1은 AFFINE을 통해 얻은 모션 정보 후보 세트에서 후보 하나가 현재 블록의 참조 모션 정보임을 나타내는 것으로 가정한다. AFFINE 모션 정보 후보 세트는 AFFINE 모션 정보 후보 4개로 구성된다고 가정한다.
제2 인덱스 0: AFFINE 후보 0;
제2 인덱스 1: AFFINE 후보 1;
제2 인덱스 2: AFFINE 후보 2; 및
제2 인덱스 3: AFFINE 후보 3.
경우에 따라, 디코딩을 통해 얻은 제1 인덱스 값이 1일 때 AFFINE을 사용하여 얻은 모션 정보 후보 세트에서 후보 하나가 현재 블록의 참조 모션 정보로 사용됨을 나타내며, 추가 디코딩을 수행하여 제2 식별자 값을 구한다. 추가 디코딩을 통해 얻은 제2 식별자 값이 1일 때, AFFINE 후보 1의 모션 정보가 현재 블록의 모션 정보로 사용된다.
다른 경우 디코딩을 통해 얻은 제1 인덱스 값이 0일 때, 머지을 통해 얻은 모션 정보가 현재 블록의 참조 모션 정보로 사용됨을 나타내며, 추가 디코딩을 수행하여 제4 인덱스를 얻는다. 추가 디코딩을 통해 얻은 제4 인덱스 값이 2일 때, 머지 후보 목록에서 공간 2의 모션 정보가 현재 블록의 모션 정보로 사용된다.
실시예 12
머지 후보 공간에서 목록의 공간 0 내지 공간 3은 머지을 통해 얻은 모션 정보, 공간 4는 일시적으로 인접한 모션 정보 후보 세트, 공간 5는 하위 블록 모션 정보로 구성된 모션 정보 후보 세트, 공간 6은 AFFINE을 통해 얻은 모션 정보 후보 세트이다. 제1 인덱스 0은 머지을 통해 얻은 모션 정보가 현재 블록의 참조 모션 정보로 사용됨을 나타내고, 제1 인덱스 1은 AFFINE을 통해 얻은 모션 정보 후보 세트의 후보 하나가 현재 블록의 참조 모션 정보로 사용됨을 나타내며, 제1 인덱스 01은 일시적으로 인접한 모션 정보 후보 세트의 후보 하나가 현재 블록의 참조 모션 정보로 사용됨을 나타내고, 제1 인덱스 11은 하위 블록 모션 정보에 의해 구성된 모션 정보 세트의 한 후보가 현재 블록의 참조 모션 정보로 사용됨을 나타낸다고 가정한다.
AFFINE 모션 정보 후보 세트는 AFFINE 모션 정보 후보 4개로 구성된다고 가정한다.
제2 식별자 0: AFFINE 후보 0;
제2 식별자 1: AFFINE 후보 1;
제2 식별자 2: AFFINE 후보 2; 및
제2 식별자 3: AFFINE 후보 3.
일시적으로 인접한 모션 정보 후보 세트는 다음의 네 가지 일시적으로 인접한 모션 정보 후보들로 구성된다고 가정한다.
제2 인덱스 0: 일시적으로 인접한 후보 0;
제2 인덱스 1: 일시적으로 인접한 후보 1;
제2 인덱스 2: 일시적으로 인접한 후보 2; 및
제2 인덱스 3: 일시적으로 인접한 후보 3.
하위 블록 모션 정보에 의해 구성된 모션 정보 후보 세트는 AFFINE 모션 정보 후보, ATMVP 후보 및 STMVP 후보자로 구성된다고 가정한다.
제2 인덱스 0: AFFINE 후보;
제2 인덱스 1: ATMVP 후보;
제2 인덱스 2: STMVP 후보.
경우에 따라, 디코딩을 통해 얻은 제1 인덱스 값이 0일 때, 머지을 통해 얻은 모션 정보가 현재 블록의 참조 모션 정보로 사용됨을 나타내며, 추가 디코딩을 수행하여 제4 인덱스를 얻는다. 추가 디코딩을 통해 얻은 제4 인덱스 값이 2일 때, 머지 후보 목록에서 공간 2의 모션 정보가 현재 블록의 모션 정보로 사용된다.
경우에 따라, 디코딩을 통해 얻은 제1 인덱스 값이 1일 때, AFFINE을 사용하여 얻은 모션 정보 후보 세트에서 후보 하나가 현재 블록의 참조 모션 정보로 사용됨을 나타내며, 추가 디코딩을 수행하여 제2 식별자 값을 구한다. 추가 디코딩을 통해 얻은 제2 식별자 값이 1일 때, AFFINE 후보 1의 모션 정보가 현재 블록의 모션 정보로 사용된다.
경우에 따라, 디코딩을 통해 얻은 제1 인덱스 값이 01일 때, 일시적으로 인접한 모션 정보 후보 세트에서 후보 하나가 현재 블록의 참조 모션 정보로 사용됨을 나타내며, 추가 디코딩을 수행하여 제2 식별자 값을 얻는다. 추가 디코딩을 통해 얻은 제2 식별자 값이 2일 때, 일시적으로 인접한 후보 2의 모션 정보가 현재 블록의 모션 정보로 사용된다.
경우에 따라, 디코딩을 통해 얻은 제1 인덱스 값이 11일 때, 하위 블록 모션 정보로 구성된 모션 정보 후보 세트에서 후보 하나를 현재 블록의 참조 모션 정보로 사용하고, 추가 디코딩을 수행하여 제2 인덱스 값을 얻는 것을 나타낸다. 추가 디코딩을 통해 얻은 제2 인덱스 값이 1일 때, ATMVP 후보의 모션 정보가 현재 블록의 모션 정보로 사용된다.
본 출원의 실시예는 모션 정보를 예측하는 디코딩 장치를 제공한다. 장치는 비디오 디코더, 비디오 인코더 또는 디코더일 수 있다. 특히, 모션 정보를 예측하는 디코딩 장치는 모션 정보를 예측하기 위해 상술한 디코딩 방법으로 디코딩 장치에 의해 수행되는 단계를 수행하도록 구성되어 있다. 본 출원의 실시예에 제공된 모션 정보를 예측하는 디코딩 장치는 해당 단계에 해당하는 모듈로 구성될 수 있다.
본 출원의 실시예에 있어서, 모션 정보를 예측하는 디코딩 장치는 전술한 방법의 예에 기초하여 기능 모듈로 분할될 수 있다. 예를 들어, 각 기능 모듈은 해당 기능에 기초한 분할을 통해 얻거나, 두 개 이상의 기능이 하나의 처리 모듈에 통합될 수 있다. 통합 모듈은 하드웨어의 형태로 구현되거나, 소프트웨어 기능 모듈의 형태로 구현될 수 있다. 본 출원의 실시예에 있어서, 모듈로의 분할은 하나의 예이며, 단지 논리 함수의 분할일 뿐이다. 실제 구현에는 다른 분할 방식이 있을 수 있다.
각 기능 모듈이 해당 기능에 기초한 분할을 통해 획득될 때, 도 17은 전술한 실시예에서 모션 정보를 예측하는 디코딩 장치의 가능한 구조의 개략 다이어그램다. 도 9에 도시된 바와 같이, 모션 정보를 예측하는 디코딩 장치(1700)는 파싱 모듈(1701), 결정 모듈(1702) 및 할당 모듈(1703)로 구성될 수 있다. 특히 모듈의 기능은 다음과 같다.
파싱 모듈(1701)은 비트스트림을 파싱하여 제1 식별자를 획득하도록 구성된다.
결정 모듈(1702)은 제1 식별자에 기초하여 제1 후보 세트로부터 타겟 요소를 결정하도록 구성되고, 여기서 제1 후보 세트 내의 요소들은 적어도 하나의 제1 후보 모션 정보 및 제2 후보 세트를 포함하고, 제2 후보 세트 내의 요소들은 복수의 제2 후보 모션 정보를 포함하고, 또는 제1 후보 모션 정보는 제1 모션 정보를 포함하고, 제2 후보 모션 정보는 사전 예정 모션 정보 오프셋을 포함한다.
할당 모듈(1703)은, 타겟 요소가 제1 후보 모션 정보일 때, 제2 후보 모션 정보를 타겟 모션 정보로서 사용하도록 구성되고, 타겟 모션 정보는 처리될 그림 블록의 모션 정보를 예측하기 위해 사용된다.
파싱 모듈(1701)은 또한, 타겟 요소가 제 2 후보 세트일 때, 비트스트림을 파싱하여 제 2 식별자를 획득하도록 더 구성되고; 결정 모듈(1702)은 제 2 식별자에 기초하여 제 2 후보 모션 정보의 복수의 조각으로부터 타겟 모션 정보를 결정하도록 더 구성된다. 이와 달리, 파싱 모듈(1701)은, 타겟 요소가 복수의 제2 후보 모션 정보에 기초하여 획득될 때, 비트스트림을 파싱하여 제2 식별자를 획득하고, 복수의 제1 후보 모션 정보 중 하나에 기초하여 타겟 모션 정보를 결정하도록 구성된다.
파싱 모듈(1701)은 전술한 실시예들에서 S1501, S1505 등을 수행할 때의 모션 정보를 예측하는 디코딩 장치(1700)를 지원하도록 구성되고, 및/또는 본 명세서에 설명된 기술의 다른 프로세스를 수행하도록 구성된다. 결정 모듈(1702)은 전술한 실시예들에서 S1502 등을 수행할 때의 모션 정보를 예측하는 디코딩 장치(1700)를 지원하도록 구성되고, 및/또는 본 명세서에 설명된 기술의 다른 프로세스를 수행하도록 구성된다. 할당 모듈(1703)은 전술한 실시예들에서 S1502 등을 수행할 때의 모션 정보를 예측하는 디코딩 장치(1700)를 지원하도록 구성되고, 및/또는 본 명세서에 설명된 기술의 다른 프로세스를 수행하도록 구성된다.
실현 가능한 구현예에 있어서, 결정 모듈(1702)에 의해 결정된 타겟 요소가 제2 후보 세트일 때, 또는 타겟 요소가 복수의 제2 후보 모션 정보에 기초하여 획득될 때, 파싱 모듈(1701)은 제3 식별자를 획득하기 위해 비트스트림을 파싱하도록 추가로 구성되고, 제3 식별자는 사전 설정된 계수를 포함한다.
또한, 도 17에 도시된 바와 같이, 모션 정보를 예측하는 디코딩 장치(1700)는 복수의 사전 설정된 모션 정보 오프셋을 사전 설정된 계수로 곱하도록 구성된 계산 모듈로 구성할 수 있다. 이에 따라, 결정 모듈(1702)은 제2 식별자를 기반으로 복수의 조정된 모션 정보 오프셋에서 타겟 오프셋을 결정하도록 특별히 구성된다.
전술한 방법의 구현에 포함된 단계의 모든 관련 내용은 해당 기능 모듈의 기능 설명에 인용될 수 있다. 자세한 내용은 여기에 다시 설명되지 않는다.
본 출원의 특정 양태들을 비디오 인코더(100)와 비디오 디코더(200)를 참조하여 설명되었지만, 본 출원의 기술은 많은 다른 비디오 인코딩 및/또는 디코딩 장치, 프로세서, 처리 장치(예: 인코더/디코더(CODEC)의 하드웨어-기반 코딩 장치)를 사용하여 적용될 수 있다는 것을 이해해야 한다. 또한 도 17에 도시되거나 설명된 단계는 단지 실현 가능한 구현으로 제공된다는 것을 이해해야 한다. 다시 말해서, 도 17의 실현 가능한 구현에 나타난 단계는 반드시 도 17에 도시된 순서대로 수행할 필요는 없으며, 더 적은 수의 추가 또는 대체 단계를 수행할 수 있다.
통합 장치를 사용할 때, 도 18은 본 출원의 실시예에 따른 모션 정보를 예측하는 디코딩 장치(1800)의 개략 구조 블록 다이어그램이다. 특히, 모션 정보를 예측하는 디코딩 장치(1800)는 프로세서(1801)와 프로세서와 연결된 메모리(1802)로 구성된다. 프로세서(1801)는 도 17에 도시된 실시예와 다양한 실행 가능한 구현을 실행하도록 구성된다.
처리 모듈(1801)은 프로세서 또는 컨트롤러일 수 있고, 예를 들어, 중앙 처리 장치(Central Processing Unit, CPU), 범용 프로세서, 디지털 신호 프로세서(Digital Signal Processor, DSP), ASIC, FPGA 또는 다른 프로그램 가능한 논리 장치, 트랜지스터 논리 장치, 하드웨어 구성 또는 모든 조합일 수 있다. 처리 장치(1202)는 본 출원에 개시된 내용을 참조하여 설명된 다양한 예제 논리 블록, 모듈 및 회로를 구현하거나 실행할 수 있다. 이와 달리, 프로세서는 컴퓨팅 기능을 구현하는 프로세서들의 조합일 수도 있고, 예를 들어 하나 이상의 마이크로프로세서 또는 DSP와 마이크로프로세서의 조합일 수 있다. 스토리지 모듈(102)은 메모리일 수 있다.
상술한 방법의 실시예에서의 시나리오의 모든 관련 내용은, 해당 기능 모듈의 기능 설명에 인용될 수 있다. 자세한 내용은 여기에 다시 설명되지 않는다.
모션 정보를 예측하는 디코딩 장치(1700)와 디코딩 장치(1800)의 모두, 도 15에 나온 모션 정보를 예측하는 디코딩 방법을 수행할 수 있다. 모션 정보를 예측하는 디코딩 장치(1700)와 디코딩 장치(1800)는 특히 비디오 인코딩 및 디코딩 기능이 있는 다른 장치일 수 있다. 모션 정보를 예측하는 디코딩 장치(1700)와 디코딩 장치(1800)는 디코딩 프로세스에서 사진 예측을 수행하도록 구성할 수 있다.
본 출원의 실시예는 인터 예측 장치를 제공한다. 인터 예측 장치는 비디오 디코더, 비디오 인코더 또는 디코더일 수 있다. 구체적으로, 인터 예측 장치는 전술한 인터 예측 방법에서의 인터 예측 장치에 의해 수행되는 단계를 수행하도록 구성된다. 본 출원의 실시예에 제공된 인터 예측 장치는 해당 단계에 해당하는 모듈로 구성될 수 있다.
본 출원의 실시예에 있어서, 인터 예측 장치는 전술한 방법의 예에 기초하여 기능 모듈로 분할될 수 있다. 예를 들어, 각 기능 모듈은 해당 기능에 기초한 분할을 통해 얻거나, 두 개 이상의 기능이 하나의 처리 모듈에 통합될 수 있다. 통합 모듈은 하드웨어의 형태로 구현되거나, 소프트웨어 기능 모듈의 형태로 구현될 수 있다. 본 출원의 실시예에 있어서, 모듈로의 분할은 하나의 예이며, 단지 논리 함수의 분할일 뿐이다. 실제 구현에는 또 다른 분할 방식이 있을 수 있다.
본 출원은 단말기를 추가로 제공한다. 터미널은 하나 이상의 프로세서, 메모리 및 통신 인터페이스로 구성된다. 메모리와 통신 인터페이스는 하나 이상의 프로세서와 결합된다. 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성되어 있다. 컴퓨터 프로그램 코드는 명령으로 구성된다. 하나 이상의 프로세서가 명령을 실행할 때, 터미널은 본 출원의 실시예에서의 모션 정보를 예측하는 디코딩 방법을 수행한다.
이러한 터미널은 비디오 디스플레이 장치, 스마트폰, 휴대용 컴퓨터 또는 비디오를 처리하거나 재생할 수 있는 다른 장치일 수 있다.
본 출원은 비휘발성 저장 매체 및 중앙 처리 장치를 포함한 비디오 디코더를 추가로 제공한다. 비휘발성 저장 매체는 실행 가능한 프로그램을 저장한다. 중앙 처리 장치는 비휘발성 저장 매체에 연결되고, 실행 가능한 프로그램을 실행하여, 본 출원의 실시예에서의 모션 정보를 예측하는 디코딩 방법을 수행한다.
본 출원은 디코더를 추가로 제공한다. 디코더는 본 출원의 실시예에서의 모션 정보를 예측하는 디코딩 장치로 구성된다.
본 출원의 다른 실시예는 컴퓨터가 읽을 수 있는 저장 매체를 추가로 제공한다. 컴퓨터가 읽을 수 있는 저장 매체는 하나 이상의 프로그램 코드로 구성된다. 하나 이상의 프로그램이 하나의 명령으로 구성된다. 터미널의 프로세서가 프로그램 코드를 실행할 때, 터미널은 도 15에 도시된 모션 정보를 예측하는 디코딩 방법을 수행한다.
본 출원의 다른 실시예에 있어서, 컴퓨터 프로그램 제품이 추가로 제공된다. 컴퓨터 프로그램 제품은 컴퓨터 실행 가능한 명령으로 구성되어 있다. 컴퓨터 실행 명령어는 컴퓨터가 읽을 수 있는 저장 매체에 저장된다. 터미널의 적어도 하나의 프로세서가 컴퓨터가 읽을 수 있는 저장 매체에서 컴퓨터 실행 가능한 명령을 읽을 수 있다. 적어도 하나의 프로세서가 컴퓨터 실행 명령을 실행하여, 터미널이 도 15에 도시된 모션 정보를 예측하는 디코딩 방법을 수행할 수 있도록 한다.
전술한 실시예의 전부 또는 일부는, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합을 통해 구현될 수 있다. 소프트웨어 프로그램이 실시예의 구현에 사용될 때, 실시예의 전부 또는 일부는 컴퓨터 프로그램 제품의 형태로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령으로 구성된다. 컴퓨터 프로그램 명령이 컴퓨터에 로드되고 실행될 때, 본 출원 실시예에 따른 절차나 기능은 전부 또는 부분적으로 생성된다.
컴퓨터는 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크 또는 기타 프로그램 가능한 장치일 수 있다. 컴퓨터 명령은 컴퓨터가 읽을 수 있는 저장 매체에 저장되거나, 하나의 컴퓨터가 읽을 수 있는 저장 매체에서 다른 컴퓨터가 읽을 수 있는 저장 매체로 전송될 수 있다. 예를 들어 컴퓨터 명령은 하나의 웹 사이트, 컴퓨터, 서버 또는 데이터 센터에서 유선(동축 케이블, 광섬유 또는 DSL) 또는 무선(예: 적외선, 무선 또는 마이크로파) 방식으로 다른 웹 사이트, 컴퓨터, 서버 또는 데이터 센터로 전송될 수 있다. 컴퓨터가 읽을 수 있는 저장 매체는 하나 이상의 사용 가능한 매체를 통합하여, 컴퓨터 또는 서버나 데이터 센터와 같은 데이터 저장 장치에 의해 접근할 수 있는 모든 사용 가능한 매체이다. 사용 가능한 매체는 자기 매체(예: 플로피 디스크, 하드 디스크 또는 자기 테이프), 광학 매체(예: DVD), 반도체 매체(예: 솔리드 스테이트 드라이브(Solid State Drive(SSD)), 등일 수 있다.
또한 실현 가능한 구현에 따라, 명세서에 설명된 방법의 특정 작동 또는 이벤트는 다른 순서로 수행될 수 있고, 작동 또는 이벤트가 추가되거나, 작동 또는 이벤트가 결합되거나 누락(예: 방법을 구현함에 있어 설명된 모든 작동 또는 이벤트가 전혀 필요없는 것)될 수 있다는 것을 이해해야 한다. 또한, 특정한 실현 가능한 구현에서, 작동이나 이벤트는, 예를 들어 다중 스레드 처리나 인터럽트 처리를 겪을 수도 있고, 순차적인 대신 복수의 프로세서에 의해 동시에 처리될 수도 있다. 또한, 본 출원의 특정 양태는 명확성을 위해 단일 모듈 또는 장치에 의해 수행되는 것으로 설명되지만, 본 출원의 기술은 비디오 디코더와 관련된 장치 또는 모듈의 조합에 의해 수행될 수 있다는 것을 이해해야 한다.
하나 이상의 실행 가능한 구현에서 기술된 기능은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 소프트웨어를 사용하여 기능을 구현하는 경우, 기능은 하나 이상의 명령이나 코드로 컴퓨터가 읽을 수 있는 매체에 저장되거나, 컴퓨터가 읽을 수 있는 매체를 통해 전송될 수 있으며, 하드웨어 기반 처리 장치에 의해 수행될 수 있다. 컴퓨터가 읽을 수 있는 매체는 컴퓨터가 읽을 수 있는 저장 매체 또는 통신 매체로 구성될 수 있다. 컴퓨터가 읽을 수 있는 저장 매체는 데이터 저장 매체와 같은 유형의 매체에 해당한다. 통신 매체는 통신 프로토콜에 따라 한 위치에서 다른 위치로 컴퓨터 프로그램의 전송을 용이하게 하는 매체로 구성된다.
이러한 방식으로, 컴퓨터가 판독할 수 있는 매체는, 예를 들어, (1) 비전시성의 컴퓨터 판독이 가능한 저장 매체 또는 (2) 신호 또는 캐리어와 같은 통신 매체에 해당될 수 있다. 데이터 저장 매체는 하나 이상의 컴퓨터 또는 하나 이상의 프로세서가 액세스하여, 본 출원에 설명된 기술을 구현하는 명령, 코드 및/또는 데이터 구조를 검색할 수 있는 모든 사용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터가 읽을 수 있는 매체로 구성될 수 있다.
컴퓨터 판독이 가능한 저장 매체는 제한 사항이 아닌 실현 가능한 구현을 통해 RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리 또는 필요한 코드를 명령 또는 데이터 구조의 형태로 저장하는 데 사용할 수 있고, 컴퓨터가 액세스할 수 있는 다른 매체로 구성될 수 있다. 마찬가지로, 어떠한 연결 수단을 컴퓨터가 읽을 수 있는 매체라고 할 수 있다. 예를 들어 동축 케이블, 광케이블, 연선, DSL(Digital Subscriber Line), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술을 통해 웹 사이트, 서버 또는 다른 원격 소스에서 명령이 전송되는 경우, 동축 케이블, 광케이블, 연선, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술은 매체의 정의로 구성된다.
그러나 컴퓨터가 읽을 수 있는 저장 매체와 데이터 저장 매체는 연결 수단, 캐리어, 신호 또는 다른 전송 매체로 구성될 수 없지만, 이와 달리 비전시성 유형의 저장 매체로 구성할 수 있음을 의미할 수도 있다는 점을 이해해야 한다. 명세서에 설명된 자기 디스크와 광학 디스크는 소형 디스크(CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크(DVD), 플로피 디스크 및 블루레이 디스크로 구성된다. 마그네틱 디스크는 보통 데이터를 자기적으로 복제하고, 광학 디스크는 레이저를 통해 데이터를 광학적으로 복제한다. 앞서 언급한 자기 디스크와 광학 디스크의 조합은 컴퓨터가 읽을 수 있는 매체의 범위에서도 구성되어야 한다.
하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로프로세서, 애플리케이션별 통합 회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA) 또는 기타 등가의 통합 또는 이산 로직 회로와 같은 하나 이상의 프로세서에 의해 명령이 실행될 수 있다. 따라서 명세서에 사용된 "프로세서"라는 용어는 전술한 구조 중 하나이거나, 명세서에 설명된 기술을 구현하는 데 사용되는 또 다른 구조일 수 있다. 또한, 어떤 양태에서는 명세서에서 기술된 기능성이 인코딩과 디코딩을 위해 구성된 전용 하드웨어 및/또는 소프트웨어 모듈에 제공되거나, 결합된 코덱에 통합될 수 있다. 마찬가지로, 하나 이상의 회로 또는 논리 요소에서 기술이 구현될 수 있다.
본 출원의 기술은 무선 휴대 전화, 집적 회로(IC) 또는 IC 세트(예: 칩 세트)를 포함하는 다양한 장치 또는 디바이스에 구현될 수 있다. 본 출원에서 개시된 기술을 수행하도록 구성된 장치의 기능적 양태를 강조하기 위해 다양한 구성 요소, 모듈 또는 유닛이 설명하고 있지만, 반드시 다른 하드웨어 유닛에 의해 구현되지 않는 것은 아니다. 보다 구체적으로, 상술한 바와 같이, 다양한 유닛이 적절한 소프트웨어 및/또는 펌웨어와 함께 코덱 하드웨어 유닛에 결합되거나 (위에서 설명한 하나 이상의 프로세서를 포함하는) 상호운용 가능한 하드웨어 유닛 세트에 의해 제공될 수 있다.
상술한 설명은 본 출원의 특정 실시예의 예일 뿐, 본 출원의 보호 범위를 제한하기 위한 것은 아니다. 명세서에 개시된 기술 범위 내에서 당업자가 용이하게 파악한 변형 또는 교체는 본 출원의 보호 범위에 속해야 한다. 따라서 본 출원의 보호 범위는 청구권의 보호 범위에 따라야 한다.

Claims (20)

  1. 모션 정보를 예측하는 디코딩 방법으로서,
    제1 식별자를 얻기 위해 비트스트림을 파싱하는 단계;
    상기 제1 식별자에 기초하여, 제1 후보 세트로부터 타겟 요소를 결정하는 단계 - 상기 제1 후보 세트의 요소는 적어도 하나의 제1 후보 모션 정보 및 복수의 제2 후보 모션 정보를 포함하고, 상기 제1 후보 모션 정보는 제1 모션 정보를 포함하고, 상기 제2 후보 모션 정보는 사전 설정 모션 정보 오프셋을 포함함 - ; 및
    상기 타겟 요소가 상기 제1 후보 모션 정보이면, 처리될 사진 블록의 모션 정보를 예측하는 데 사용되는 타겟 모션 정보로서 상기 제1 후보 모션 정보를 이용하는 단계; 또는
    상기 타겟 요소가 상기 복수의 제2 후보 모션 정보에 기초하여 얻어지면, 제2 식별자를 얻기 위해 상기 비트스트림을 파싱하고, 상기 제2 식별자 및 상기 복수의 제2 후보 모션 정보 중 하나에 기초하여 상기 타겟 모션 정보를 결정하는 단계를 포함하는,
    디코딩 방법.
  2. 제1항에 있어서,
    상기 제1 후보 모션 정보는 상기 처리될 사진 블록의 공간적으로 인접한 사진 블록의 모션 정보를 포함하는,
    디코딩 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제2 후보 모션 정보는 상기 제1 모션 정보 및 상기 사전 설정 모션 정보 오프셋에 기초하여 얻어지는,
    디코딩 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 제2 식별자 및 상기 복수의 제2 후보 모션 정보 중 하나에 기초하여 상기 타겟 모션 정보를 결정하는 단계는,
    상기 제2 식별자에 기초하여 상기 복수의 사전 설정 모션 정보 오프셋으로부터 타겟 오프셋을 결정하는 단계; 및
    상기 제1 모션 정보 및 상기 타겟 오프셋에 기초하여 상기 타겟 모션 정보를 결정하는 단계를 포함하는,
    디코딩 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 적어도 하나의 제1 후보 모션 정보에서, 상기 제1 모션 정보를 식별하는 데 사용되는 코딩된 코드 워드는 가장 짧은 코드 워드인,
    디코딩 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 타겟 요소가 상기 복수의 제2 후보 모션 정보에 기초하여 얻어지면, 상기 방법은 사전 설정 계수를 포함하는 제3 식별자를 얻기 위해 상기 비트스트림을 파싱하는 단계를 더 포함하는,
    디코딩 방법.
  7. 제6항에 있어서,
    상기 제2 식별자 및 상기 복수의 제2 후보 모션 정보 중 하나에 기초하여 상기 타겟 모션 정보를 결정하기 전에, 상기 방법은 복수의 조정된 모션 정보 오프셋을 얻기 위해, 상기 복수의 사전 설정 모션 정보와 상기 사전 설정 계수를 곱하는 단계를 더 포함하는,
    디코딩 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 타겟 모션 정보가 처리될 사진 블록의 모션 정보를 예측하는 데 사용되는 것은,
    상기 처리될 사진 블록의 상기 모션 정보로서 상기 타겟 모션 정보를 이용하는 것; 또는 상기 처리될 사진 블록의 예측 모션 정보로서 상기 타겟 모션 정보를 이용하는 것을 포함하는,
    디코딩 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 제2 식별자에 고정 길이 코딩 모드가 사용되는,
    디코딩 방법.
  10. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 제2 식별자에 가변 길이 코딩 모드가 사용되는,
    디코딩 방법.
  11. 모션 정보를 예측하는 디코딩 장치로서,
    제1 식별자를 얻기 위해 비트스트림을 파싱하도록 구성된 파싱 모듈;
    상기 제1 식별자에 기초하여 제1 후보 세트로부터 타겟 요소를 결정하도록 구성된 결정 모듈 - 상기 제1 후보 세트의 요소들은 적어도 하나의 제1 후보 모션 정보 및 복수의 제2 후보 모션 정보를 포함하고, 상기 제1 후보 모션 정보는 제1 모션 정보를 포함하고, 상기 제2 후보 모션 정보는 사전 설정 모션 정보 오프셋을 포함함 - ; 및
    상기 타겟 요소가 상기 제1 후보 모션 정보이면, 타겟 모션 정보로서 상기 제1 후보 모션 정보를 사용하도록 구성된 할당 모듈 - 상기 타겟 모션 정보는 상기 처리될 사진 블록의 모션 정보를 예측하는 데 사용됨 - 을 포함하고,
    상기 파싱 모듈은, 상기 타겟 요소가 상기 복수의 제2 후보 모션 정보에 기초하여 얻어지면, 제2 식별자를 얻기 위해 상기 비트스트림을 파싱하고, 상기 제2 식별자 및 상기 복수의 제2 후보 모션 정보 중 하나에 기초하여 상기 타겟 모션 정보를 결정하도록 더 구성되는,
    디코딩 장치.
  12. 제11항에 있어서,
    상기 제1 후보 모션 정보는 상기 처리될 사진 블록의 공간적으로 인접한 사진 블록의 모션 정보를 포함하는,
    디코딩 장치.
  13. 제11항 또는 제12항에 있어서,
    상기 제2 후보 모션 정보는 상기 제1 모션 정보 및 상기 사전 설정 모션 정보 오프셋에 기초하여 얻어지는,
    디코딩 장치.
  14. 제11항 또는 제12항에 있어서,
    상기 파싱 모듈은 구체적으로, 상기 제2 식별자에 기초하여 복수의 사전 설정 모션 정보 오프셋으로부터 타겟 오프셋을 결정하고, 상기 제1 모션 정보 및 상기 타겟 오프셋에 기초하여 상기 타겟 모션 정보를 결정하도록 구성되는,
    디코딩 장치.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 적어도 하나의 제1 후보 모션 정보에서 상기 제1 모션 정보를 식별하는 데 사용되는 코딩된 코드 워드는 가장 짧은 코드 워드인,
    디코딩 장치.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서,
    상기 타겟 요소가 상기 복수의 제2 후보 모션 정보에 기초하여 얻어지면, 상기 파싱 모듈은 사전 설정 계수를 포함하는 제3 식별자를 얻기 위해 상기 비트스트림을 파싱하도록 더 구성되는,
    디코딩 장치.
  17. 제16항에 있어서,
    상기 디코딩 장치는 복수의 조정된 모션 정보 오프셋을 얻기 위해, 상기 복수의 사전 설정 모션 정보 오프셋에 상기 사전 설정 계수를 곱하도록 구성된 계산 모듈을 더 포함하는,
    디코딩 장치.
  18. 제11항 내지 제17항 중 어느 한 항에 있어서,
    상기 결정 모듈은 구체적으로, 상기 처리될 사진 블록의 모션 정보로서 상기 타겟 모션 정보를 사용하거나, 상기 처리될 사진 블록의 예측된 모션 정보로서 상기 타겟 모션 정보를 사용하도록 구성되는,
    디코딩 장치.
  19. 제11항 내지 제18항 중 어느 한 항에 있어서,
    상기 제2 식별자에 고정 길이 코딩 모드가 사용되는,
    디코딩 장치.
  20. 제11항 내지 제18항 중 어느 한 항에 있어서,
    상기 제2 식별자에 가변 길이 코딩 모드가 사용되는,
    디코딩 장치.
KR1020217010321A 2018-09-13 2019-09-12 모션 정보를 예측하는 디코딩 방법 및 디코딩 장치 KR20210057101A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201811068957.4 2018-09-13
CN201811068957 2018-09-13
CN201811264674.7 2018-10-26
CN201811264674.7A CN110896485B (zh) 2018-09-13 2018-10-26 一种预测运动信息的解码方法及装置
PCT/CN2019/105711 WO2020052653A1 (zh) 2018-09-13 2019-09-12 一种预测运动信息的解码方法及装置

Publications (1)

Publication Number Publication Date
KR20210057101A true KR20210057101A (ko) 2021-05-20

Family

ID=69785620

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217010321A KR20210057101A (ko) 2018-09-13 2019-09-12 모션 정보를 예측하는 디코딩 방법 및 디코딩 장치

Country Status (9)

Country Link
US (1) US20210203944A1 (ko)
EP (1) EP3843404A4 (ko)
JP (1) JP7294576B2 (ko)
KR (1) KR20210057101A (ko)
CN (3) CN114125467A (ko)
BR (1) BR112021004429A2 (ko)
CA (1) CA3112289A1 (ko)
SG (1) SG11202102362UA (ko)
ZA (1) ZA202101890B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112541390B (zh) * 2020-10-30 2023-04-25 四川天翼网络股份有限公司 一种用于考试视频违规分析的抽帧动态调度方法及系统
CN112764635B (zh) * 2021-01-27 2022-07-08 浙江大华技术股份有限公司 一种显示方法、装置、计算机设备及存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090123066A1 (en) * 2005-07-22 2009-05-14 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, image decoding program, computer readable recording medium having image encoding program recorded therein,
EP2271102A1 (en) * 2009-06-29 2011-01-05 Thomson Licensing Adaptive residual image coding
US8908755B2 (en) * 2010-07-16 2014-12-09 Sony Corporation Multi-parameter motion for efficient prediction in video compression
US20120183047A1 (en) * 2011-01-18 2012-07-19 Louis Joseph Kerofsky Video decoder with reduced dynamic range transform with inverse transform clipping
CN102651814B (zh) * 2011-02-25 2015-11-25 华为技术有限公司 视频解码方法、编码方法及终端
HUE063990T2 (hu) * 2011-06-16 2024-02-28 Ge Video Compression Llc Módváltást támogató entrópia kódolás
EP2721824B1 (en) * 2011-06-17 2019-12-04 HFI Innovation Inc. Method and apparatus for coding of intra prediction mode
KR102498289B1 (ko) * 2011-09-09 2023-02-09 엘지전자 주식회사 인터 예측 방법 및 그 장치
WO2013053309A1 (en) * 2011-10-11 2013-04-18 Mediatek Inc. Method and apparatus of motion and disparity vector derivation for 3d video coding and hevc
US20130114717A1 (en) * 2011-11-07 2013-05-09 Qualcomm Incorporated Generating additional merge candidates
US9554150B2 (en) * 2013-09-20 2017-01-24 Qualcomm Incorporated Combined bi-predictive merging candidates for 3D video coding
US10080029B2 (en) * 2013-10-24 2018-09-18 Electronics And Telecommunications Research Institute Video encoding/decoding method and apparatus
KR102413529B1 (ko) * 2014-06-19 2022-06-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 통합된 인트라 블록 카피 및 인터 예측 모드
WO2017035833A1 (en) * 2015-09-06 2017-03-09 Mediatek Inc. Neighboring-derived prediction offset (npo)
WO2017131908A1 (en) * 2016-01-29 2017-08-03 Google Inc. Dynamic reference motion vector coding mode
US11343530B2 (en) * 2016-11-28 2022-05-24 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium having bitstream stored thereon
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US11533471B2 (en) * 2018-06-22 2022-12-20 Sony Corporation Image processing apparatus and image processing method
TWI822838B (zh) * 2018-08-24 2023-11-21 大陸商北京字節跳動網絡技術有限公司 使用空間鄰居的重疊塊運動補償
WO2020084465A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Simplified coding of generalized bi-directional index

Also Published As

Publication number Publication date
EP3843404A4 (en) 2021-10-27
CN114143554A (zh) 2022-03-04
BR112021004429A2 (pt) 2021-05-25
JP7294576B2 (ja) 2023-06-20
CN110896485A (zh) 2020-03-20
JP2022500910A (ja) 2022-01-04
CN114125467A (zh) 2022-03-01
ZA202101890B (en) 2022-08-31
EP3843404A1 (en) 2021-06-30
CN114143554B (zh) 2024-04-12
SG11202102362UA (en) 2021-04-29
CN110896485B (zh) 2021-10-15
CA3112289A1 (en) 2020-03-19
US20210203944A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
KR102295418B1 (ko) 인트라 블록 카피 병합 모드 및 이용가능하지 않는 ibc 참조 영역의 패딩
US9729873B2 (en) Video coding using parallel motion estimation
US9426463B2 (en) Restriction of prediction units in B slices to uni-directional inter prediction
US9699456B2 (en) Buffering prediction data in video coding
TWI544783B (zh) 寫碼視訊資料之方法、裝置及電腦可讀儲存媒體
US9736489B2 (en) Motion vector determination for video coding
US20150071357A1 (en) Partial intra block copying for video coding
KR20210024165A (ko) 인터 예측 방법 및 장치
JP7407741B2 (ja) ビデオ符号化方法および装置
JP7386301B2 (ja) 動きベクトル取得方法、装置、コンピュータ・デバイス及び記憶媒体
US11064192B2 (en) Simplification of spatial-temporal motion vector prediction
CN111200735A (zh) 一种帧间预测的方法及装置
US20210203944A1 (en) Decoding method and decoding apparatus for predicting motion information
US11394996B2 (en) Video coding method and apparatus
US11197018B2 (en) Inter-frame prediction method and apparatus
JP7331105B2 (ja) フレーム間予測方法及び関連する装置
WO2020052653A1 (zh) 一种预测运动信息的解码方法及装置
WO2020038232A1 (zh) 一种图像块的运动信息的预测方法及装置
WO2020024275A1 (zh) 一种帧间预测的方法及装置
TW202415068A (zh) 視訊寫碼中之三角合併模式索引之發信

Legal Events

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