WO2019245260A1 - 영상 부호화/복호화 방법 및 장치 - Google Patents

영상 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
WO2019245260A1
WO2019245260A1 PCT/KR2019/007328 KR2019007328W WO2019245260A1 WO 2019245260 A1 WO2019245260 A1 WO 2019245260A1 KR 2019007328 W KR2019007328 W KR 2019007328W WO 2019245260 A1 WO2019245260 A1 WO 2019245260A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
prediction
motion vector
mode
block
Prior art date
Application number
PCT/KR2019/007328
Other languages
English (en)
French (fr)
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 to CN201980041236.0A priority Critical patent/CN112292854A/zh
Priority to US17/253,924 priority patent/US11647222B2/en
Priority to EP19822723.3A priority patent/EP3809701A4/en
Publication of WO2019245260A1 publication Critical patent/WO2019245260A1/ko
Priority to US18/187,338 priority patent/US20230239496A1/en

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/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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks

Landscapes

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

Abstract

본 발명은 영상 부호화 방법 및 영상 복호화 방법에 관한 것으로서, 본 발명의 일 실시예에 따른 영상 복호화 방법은, 복원 영역의 움직임 벡터를 이용하여 현재 블록의 초기 움직임 벡터를 결정하는 단계, 상기 초기 움직임 벡터를 기초로 상기 현재 블록의 움직임 벡터를 탐색하는 단계 및 상기 움직임 벡터를 이용하여 상기 현재 블록의 예측 샘플을 생성하는 단계를 포함하고, 상기 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함할 수 있다.

Description

영상 부호화/복호화 방법 및 장치
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것으로서, 보다 구체적으로는 복수의 예측 정보에 기초하여 생성된 복수의 예측 블록들을 이용한 현재 블록의 예측 방법 및 장치에 관한 것이다.
최근, 인터넷에서는 동영상과 같은 멀티미디어 데이터의 수요가 급격히 증가하고 있다. 하지만 채널(Channel)의 대역폭(Bandwidth)이 발전하는 속도는 급격히 증가하고 있는 멀티미디어 데이터의 양을 따라가기 힘든 상황이다. 이에 따라, 국제 표준화 기구인 ITU-T의 VCEG(Video Coding Expert Group)과 ISO/IEC의 MPEG(Moving Picture Expert Group)은 2014년 2월, 동영상 압축 표준인 HEVC(High Efficiency Video Coding) 버전1을 제정하였다.
HEVC에서는 화면 내 예측(또는 인트라 예측), 화면 간 예측(또는 인터 예측), 변환, 양자화, 엔트로피 부호화 및 인-루프 필터 등의 기술을 정의하고 있다.
본 발명은 복수의 예측 정보에 기초하여 생성된 복수의 예측 블록들을 이용하여 현재 블록을 예측하는 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 더 정확한 움직임 정보를 유도하는 부호화 및 복호화 방법을 제공하는 것에 주된 목적이 있다.
또한, 본 발명은 복원 영역을 이용한 부호화 정보의 효율적인 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 움직임 벡터 차분 정보의 효율적인 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 본 발명의 영상 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
또한, 본 발명은 본 발명의 영상 복호화 방법 또는 장치에 의해 복호화되는 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상에 따른 영상 복호화 방법은, 현재 블록에 대해 화면 간 예측을 수행하여 제1 예측 블록을 생성하는 단계, 상기 현재 블록에 대해 화면 내 예측을 수행하여 제2 예측 블록을 생성하는 단계, 및 상기 제1 예측 블록 및 상기 제2 예측 블록을 가중합하여 최종 예측 블록을 생성하는 단계를 포함할 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 제2 예측 블록은 이용 가능한 화면 내 예측 모드들 중 일부 화면 내 예측 모드만을 이용하여 예측된 블록일 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 제1 예측 블록을 생성하는 단계는, 복원 영역의 움직임 벡터를 이용하여 상기 현재 블록의 초기 움직임 벡터를 결정하는 단계, 상기 초기 움직임 벡터를 기초로 상기 현재 블록의 움직임 벡터를 탐색하는 단계, 및 상기 움직임 벡터를 이용하여 상기 현재 블록의 예측 샘플을 생성하는 단계를 포함하고, 상기 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함할 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 움직임 벡터를 탐색하는 단계는, 상기 과거 방향의 움직임 벡터가 지시하는 과거 방향의 예측 블록 및 상기 미래 방향의 움직임 벡터가 지시하는 미래 방향의 예측 블록 간의 차이를 이용하여 상기 움직임 벡터를 탐색할 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 움직임 벡터를 탐색하는 단계는, 상기 과거 방향의 예측 블록 및 상기 미래 방향의 예측 블록 간의 차이를 SAD(Sum of Absolute Difference) 계산 방법에 적용하여 생성된 예측 에러에 기초하여 상기 움직임 벡터를 탐색할 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 움직임 벡터를 탐색하는 단계는, 기 정의된 크기의 탐색 영역에서 상기 움직임 벡터를 탐색할 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 복원 영역의 움직임 벡터는, 머지 모드의 후보 움직임 정보일 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 머지 모드의 후보 움직임 정보는, 현재 블록의 공간적 후보 블록들의 움직임 정보 및 시간적 후보 블록의 움직임 정보 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 복호화하는 단계를 더 포함하고, 상기 DMVD 모드 동작 정보가 DMVD 모드 동작을 지시하는 경우, 상기 초기 움직임 벡터를 기초로 상기 현재 블록의 움직임 벡터를 탐색하는 단계를 수행할 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 탐색된 움직임 벡터는, 상기 현재 블록 이후에 복호화되는 블록의 움직임 벡터 유도에 이용될 수 있다.
본 발명의 다른 양상에 따른 영상 부호화 방법은, 현재 블록에 대해 화면 간 예측을 수행하여 제1 예측 블록을 생성하는 단계, 상기 현재 블록에 대해 화면 내 예측을 수행하여 제2 예측 블록을 생성하는 단계, 및 상기 제1 예측 블록 및 상기 제2 예측 블록을 가중합하여 최종 예측 블록을 생성하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 제2 예측 블록은 이용 가능한 화면 내 예측 모드들 중 일부 화면 내 예측 모드만을 이용하여 예측된 블록일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 제1 예측 블록을 생성하는 단계는, 복원 영역의 움직임 벡터를 이용하여 상기 현재 블록의 초기 움직임 벡터를 결정하는 단계, 상기 초기 움직임 벡터를 기초로 상기 현재 블록의 최적 움직임 벡터를 탐색하는 단계, 및 상기 최적 움직임 벡터의 이용 여부를 판단하여 DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 부호화하는 단계를 포함하고, 상기 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함할 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 최적 움직임 벡터를 탐색하는 단계는, 상기 과거 방향의 움직임 벡터가 지시하는 과거 방향의 예측 블록 및 상기 미래 방향의 움직임 벡터가 지시하는 미래 방향의 예측 블록 간의 차이를 이용하여 상기 최적 움직임 벡터를 탐색할 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 최적 움직임 벡터를 탐색하는 단계는, 상기 과거 방향의 예측 블록 및 상기 미래 방향의 예측 블록 간의 차이를 SAD(Sum of Absolute Difference) 계산 방법에 적용하여 생성된 예측 에러에 기초하여 상기 최적 움직임 벡터를 탐색할 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 최적 움직임 벡터를 탐색하는 단계는, 기 정의된 크기의 탐색 영역에서 상기 최적 움직임 벡터를 탐색할 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 복원 영역의 움직임 벡터는, 머지 모드의 후보 움직임 정보일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 머지 모드의 후보 움직임 정보는, 현재 블록의 공간적 후보 블록들의 움직임 정보 및 시간적 후보 블록의 움직임 정보 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 최적 움직임 벡터는, 상기 현재 블록 이후에 부호화되는 블록의 움직임 벡터 유도에 이용될 수 있다.
본 발명의 일 실시 예에 따른 영상 복호화 방법은, 복원 영역의 움직임 벡터를 이용하여 현재 블록의 초기 움직임 벡터를 결정하는 단계, 상기 초기 움직임 벡터를 기초로 상기 현재 블록의 움직임 벡터를 탐색하는 단계 및 상기 움직임 벡터를 이용하여 상기 현재 블록의 예측 샘플을 생성하는 단계를 포함하고, 상기 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함할 수 있다.
상기 영상 복호화 방법에 있어서, 상기 움직임 벡터를 탐색하는 단계는, 상기 과거 방향의 움직임 벡터가 지시하는 과거 방향의 예측 블록 및 상기 미래 방향의 움직임 벡터가 지시하는 미래 방향의 예측 블록 간의 차이를 이용하여 상기 움직임 벡터를 탐색할 수 있다.
상기 영상 복호화 방법에 있어서, 상기 움직임 벡터를 탐색하는 단계는, 상기 과거 방향의 예측 블록 및 상기 미래 방향의 예측 블록 간의 차이를 SAD(Sum of Absolute Difference) 계산 방법에 적용하여 생성된 예측 에러에 기초하여 상기 움직임 벡터를 탐색할 수 있다.
상기 영상 복호화 방법에 있어서, 상기 움직임 벡터를 탐색하는 단계는, 기 정의된 크기의 탐색 영역에서 상기 움직임 벡터를 탐색할 수 있다.
상기 영상 복호화 방법에 있어서, 상기 복원 영역의 움직임 벡터는, 머지 모드의 후보 움직임 정보일 수 있다.
상기 영상 복호화 방법에 있어서, 상기 머지 모드의 후보 움직임 정보는, 현재 블록의 공간적 후보 블록들의 움직임 정보 및 시간적 후보 블록의 움직임 정보 중 적어도 하나를 포함할 수 있다.
상기 영상 복호화 방법에 있어서, DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 복호화하는 단계를 더 포함하고, 상기 DMVD 모드 동작 정보가 DMVD 모드 동작을 지시하는 경우, 상기 초기 움직임 벡터를 기초로 상기 현재 블록의 움직임 벡터를 탐색하는 단계를 수행할 수 있다.
상기 영상 복호화 방법에 있어서, 상기 탐색된 움직임 벡터는, 상기 현재 블록 이후에 복호화되는 블록의 움직임 벡터 유도에 이용될 수 있다.
본 발명의 일 실시 예에 따른 영상 부호화 방법은, 복원 영역의 움직임 벡터를 이용하여 현재 블록의 초기 움직임 벡터를 결정하는 단계, 상기 초기 움직임 벡터를 기초로 상기 현재 블록의 최적 움직임 벡터를 탐색하는 단계 및 상기 최적 움직임 벡터의 이용 여부를 판단하여 DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 부호화하는 단계를 포함하고, 상기 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함할 수 있다.
상기 영상 부호화 방법에 있어서, 상기 최적 움직임 벡터를 탐색하는 단계는, 상기 과거 방향의 움직임 벡터가 지시하는 과거 방향의 예측 블록 및 상기 미래 방향의 움직임 벡터가 지시하는 미래 방향의 예측 블록 간의 차이를 이용하여 상기 최적 움직임 벡터를 탐색할 수 있다.
상기 영상 부호화 방법에 있어서, 상기 최적 움직임 벡터를 탐색하는 단계는, 상기 과거 방향의 예측 블록 및 상기 미래 방향의 예측 블록 간의 차이를 SAD(Sum of Absolute Difference) 계산 방법에 적용하여 생성된 예측 에러에 기초하여 상기 최적 움직임 벡터를 탐색할 수 있다.
상기 영상 부호화 방법에 있어서, 상기 최적 움직임 벡터를 탐색하는 단계는, 기 정의된 크기의 탐색 영역에서 상기 최적 움직임 벡터를 탐색할 수 있다.
상기 영상 부호화 방법에 있어서, 상기 복원 영역의 움직임 벡터는, 머지 모드의 후보 움직임 정보일 수 있다.
상기 영상 부호화 방법에 있어서, 상기 머지 모드의 후보 움직임 정보는, 현재 블록의 공간적 후보 블록들의 움직임 정보 및 시간적 후보 블록의 움직임 정보 중 적어도 하나를 포함할 수 있다.
상기 영상 부호화 방법에 있어서, 상기 최적 움직임 벡터는, 상기 현재 블록 이후에 부호화되는 블록의 움직임 벡터 유도에 이용될 수 있다.
본 발명의 일 실시 예에 따른 영상 복호화에 사용되는 비트스트림을 포함하는 컴퓨터 판독 가능한 비일시적 기록매체에서, 상기 비트스트림은 DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 포함하고, 상기 영상 복호화에서, 상기 DMVD 모드 동작 정보가 DMVD 모드 동작을 지시하는 경우, 초기 움직임 벡터를 기초로 현재 블록의 움직임 벡터의 탐색이 수행되고, 상기 초기 움직임 벡터는 복원 영역의 움직임 벡터를 이용하여 결정되고, 상기 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 영상 복호화 방법은, 현재 블록에 대한 초기 움직임 벡터를 유도하는 단계, 상기 초기 움직임 벡터에 대한 움직임 벡터 차분 정보를 복호화하는 단계, 상기 움직임 벡터 차분 정보를 이용하여 상기 움직임 벡터에 대한 움직임 벡터 차분을 유도하는 단계 및 상기 초기 움직임 벡터에 상기 움직임 벡터 차분을 더하여, 현재 블록에 대한 최종 움직임 벡터를 유도하는 단계를 포함하되, 상기 움직임 벡터 차분 정보는 상기 움직임 벡터 차분에 대한 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트에 대한 정보를 포함할 수 있다.
상기 영상 복호화 방법에 있어서, 상기 움직임 벡터 차분 정보는, 상기 움직임 벡터 차분에 대한 X 성분 절대값 정보 또는 상기 움직임 벡터 차분에 대한 Y 성분 절대값 정보 중 적어도 하나를 포함할 수 있다.
상기 영상 복호화 방법에 있어서, 상기 부호 세트에 대한 정보는 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트들 중 하나를 지시할 수 있다.
상기 영상 복호화 방법에 있어서, 상기 부호 세트들은 부호 세트 별로 이진 정보가 할당될 수 있다.
상기 영상 복호화 방법에 있어서, 상기 부호 세트에 대한 정보는 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트들 중 하나를 지시하는 인덱스 일 수 있다.
상기 영상 복호화 방법에 있어서, 상기 초기 움직임 벡터는 상기 현재 블록에 대한 머지 후보 리스트를 이용하여 유도될 수 있다.
본 발명의 또 다른 실시예에 따른 영상 부호화 방법은, 현재 블록에 대한 최종 움직임 벡터를 결정하는 단계, 상기 최종 움직임 벡터에 대한 움직임 벡터 차분을 결정하는 단계 및 상기 움직임 벡터 차분에 대한 움직임 벡터 차분 정보를 부호화 하는 단계를 포함하되, 상기 움직임 벡터 차분은 상기 현재 블록에 대한 초기 움직임 벡터와 더해져 상기 최종 움직임 벡터를 유도하기 위해 이용되고, 상기 움직임 벡터 차분 정보는 상기 움직임 벡터 차분에 대한 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트에 대한 정보를 포함할 수 있다.
상기 영상 부호화 방법에 있어서, 상기 움직임 벡터 차분 정보는, 상기 움직임 벡터 차분에 대한 X 성분 절대값 정보 또는 상기 움직임 벡터 차분에 대한 Y 성분 절대값 정보 중 적어도 하나를 포함할 수 있다.
상기 영상 부호화 방법에 있어서, 상기 부호 세트에 대한 정보는 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트들 중 하나를 지시할 수 있다.
상기 영상 부호화 방법에 있어서, 상기 부호 세트들은 부호 세트 별로 이진 정보가 할당될 수 있다.
상기 영상 부호화 방법에 있어서, 상기 부호 세트에 대한 정보는 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트들 중 하나를 지시하는 인덱스 일 수 있다.
상기 영상 부호화 방법에 있어서, 상기 초기 움직임 벡터는 상기 현재 블록에 대한 머지 후보 리스트를 이용하여 유도될 수 있다.
본 발명의 또 다른 실시예에 따른 컴퓨터 판독가능한 기록매체는, 영상 복호화 장치에 수신되고 영상에 포함된 현재 블록을 복원하는데 이용되는 비트스트림을 저장하고, 상기 비트스트림은 상기 현재 블록에 대한 초기 움직임 벡터 정보 및 상기 초기 움직임 벡터에 대한 움직임 벡터 차분 정보를 포함하고, 상기 초기 움직임 벡터 정보는 상기 현재 블록의 초기 움직임 벡터를 유도하기 위해 이용되고, 상기 움직임 벡터 차분 정보는 상기 현재 블록에 대한 움직임 벡터 차분을 유도하기 위해 이용되고, 상기 현재 블록에 대한 최종 움직임 벡터는 상기 초기 움직임 벡터와 상기 움직임 벡터 차분을 더하여 유도되고, 상기 움직임 벡터 차분 정보는 상기 움직임 벡터 차분에 대한 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트에 대한 정보를 포함할 수 있다.
본 발명의 또 다른 양상에 따른 컴퓨터 판독 가능한 기록 매체는, 본 발명에 따른 영상 부호화 방법 및/또는 장치에 의해 생성된 비트스트림을 저장할 수 있다.
본 발명의 또 다른 양상에 따른 컴퓨터 판독 가능한 기록 매체는, 본 발명에 따른 영상 복호화 방법 및/또는 장치에 의해 복호화되는 비트스트림을 저장할 수 있다.
본 발명에 따르면, 압축 효율이 향상된 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 발명에 따르면, 복수의 예측 정보에 기초하여 생성된 복수의 예측 블록들을 이용하여 현재 블록을 예측하는 방법 및 장치가 제공될 수 있다.
또한, 본 발명에 따르면, 더 정확한 움직임 정보를 유도하여 화면 간 예측 성능을 향상시킬 수 있다.
또한, 본 발명에 따르면, 부호화 정보의 양을 줄일 수 있어 부호화 효율을 향상시킬 수 있다.
또한, 본 발명에 따르면, 움직임 정보를 영상 부호화/복호화 장치에서 동일한 방법으로 움직임 정보의 전송 없이 움직임 정보를 보정하기 위한 방법을 설계할 때, 움직임 정보 보정을 수행시 사용되는 현재 블록 주변 복원 영역 내에서 사용할 수 있는 템플릿 영역을 제한함으로써, 효율적인 병렬처리 코딩 구조를 설계할 수 있다. 이는 영상을 부호화할 때 발생하는 시간을 대폭 절감시킬 수 있으므로 부호화 장치의 복잡성을 낮출 수 있다.
또한, 본 발명에 따르면, 템플릿 매칭 기술을 이용하여 해당 이진 정보를 효율적으로 할당하는 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체가 제공될 수 있다.
또한, 본 발명에 따르면, 움직임 벡터 차분 정보를 효율적으로 부호화/ 복호화하는 방법, 장치 및 비트스트림을 저장한 기록매체가 제공될 수 있다.
또한, 본 발명에 따르면, 본 발명에 따른 영상 부호화 방법/장치에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체가 제공될 수 있다.
또한, 본 발명에 따르면, 본 발명에 따른 영상 복호화 방법 및/또는 장치에 의해 복호화되는 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체가 제공될 수 있다.
도 1은 영상 부호화 장치(100)의 구성을 간략하게 나타낸 예시도이다.
도 2는 영상 부호화 장치의 예측부의 일 실시예를 도시한 도면이다.
도 3은 SKIP 모드 또는 MERGE 모드에서, 움직임 정보 후보군을 생성하는 방법을 설명하기 위한 도면이다.
도 4는 공간적 후보 블록의 위치와 시간적 후보 블록의 위치를 설명하기 위한 도면이다.
도 5는 시간적 후보의 움직임 정보를 결정하는 방법을 설명하기 위한 도면이다.
도 6은 DC 모드에 따른 화면 내 예측 블록 생성 방법을 설명하기 위한 도면이다.
도 7은 Planar 모드에 따른 화면 내 예측 블록 생성 방법을 설명하기 위한 도면이다.
도 8은 N개의 방향성 예측 모드를 도시한 도면이다.
도 9는 MPM 후보 모드 리스트를 구성하는 방법을 설명하기 위한 도면이다.
도 10은 영상 부호화 장치에서 부호화 정보를 부호화하는 일 실시예를 설명하기 위한 도면이다.
도 11은 본 발명에 따른 영상 복호화 장치의 구성을 설명하기 위한 도면이다.
도 12는 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
도 13은 영상 복호화 장치에서 부호화 정보를 복호화하는 일 실시예를 설명하기 위한 도면이다.
도 14는 영상 부호화 장치의 예측부를 설명하기 위한 도면이다.
도 15는 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
도 16은 본 발명의 일 실시예에 따른 부호화 정보의 부호화 방법을 설명하기 위한 방법이다.
도 17은 본 발명의 일 실시예에 따른 부호화 정보의 복호화 방법을 설명하기 위한 방법이다.
도 18은 영상 부호화/복호화 장치 내 예측부에서의 DMVD 모드의 초기 움직임 정보 탐색부의 결과 리스트를 나타낸 예시도이다.
도 19는 영상 부호화/복호화 장치 내 예측부에서의 DMVD 움직임 추정부의 동작을 설명하기 위한 도면이다.
도 20은 템플릿 매칭 모드 및 양방향 매칭 모드를 설명하기 위한 도면이다.
도 21은 템플릿 블록을 설정하는 방법의 예시도이다.
도 22는 화면 내 예측 모드에서 현재 블록 주변의 복원 영역에서 템플릿 영역을 이용한 템플릿 매칭 기술을 설명하기 위한 도면이다.
도 23은 크로마 블록을 위한 LM(Linear Mode) 모드를 설명하기 위한 도면이다.
도 24는 예측 블록에 단일 가중치를 적용하는 방법을 설명하기 위한 도면이다.
도 25는 예측 블록에 복수의 가중치를 적용하는 방법을 설명하기 위한 도면이다.
도 26은 예측 블록에 복수의 가중치를 적용하는 다른 방법을 설명하기 위한 도면이다.
도 27은 예측 블록의 일부 영역에만 가중치를 적용하는 방법을 설명하기 위한 도면이다.
도 28은 예측 블록의 일부 영역에만 가중치를 적용하는 다른 방법을 설명하기 위한 도면이다.
도 29는 영상 부호화 장치를 나타내는 흐름도이다.
도 30은 영상 부호화 장치의 예측부를 상세히 설명하기 위한 도면이다.
도 31은 SKIP, MERGE 모드의 후보 움직임정보를 유도하는 방법을 나타낸 흐름도이다.
도 32는 AMVP 모드의 후보 움직임정보를 유도하는 방법을 나타낸 흐름도이다.
도 33은 SKIP, MERGE, AMVP 모드의 후보 움직임정보 중, 공간적/시간적 후보를 유도하기 위해서 사용되는 복원 블록들의 위치를 나타낸 도면이다.
도 34는 SKIP, MERGE, AMVP 모드의 후보 움직임정보 중, 시간적 후보를 유도하는 방법을 설명하기 위한 도면이다.
도 35는 SKIP, MERGE 모드의 후보 움직임정보 중, 결합된 양방향 후보 모드를 유도하는 방법을 설명하기 위한 도면이다.
도 36은 예측 정보를 부호화하는 방법을 나타낸 흐름도이다.
도 37은 영상 복호화 장치를 간략하게 나타낸 흐름도이다.
도 38은 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
도 39는 예측 정보를 복호화하는 방법을 나타낸 흐름도이다.
도 40은 본 발명의 일 실시예에 따른 영상 부호화 장치의 예측부를 설명하기 위한 도면이다.
도 41은 본 발명의 일 실시예에 따른 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
도 42는 본 발명의 일 실시예에 따른 영상 부호화/복호화 장치 내 예측부의 DMVD 초기 움직임정보 탐색부를 설명하기 위한 표이다.
도 43은 본 발명의 일 실시예에 따른 영상 부호화/복호화 장치 내 예측부의 DMVD 움직임 추정부를 설명하기 위한 도면이다.
도 44는 본 발명의 일 실시예에 따른 DMVD 모드의 템플릿 매칭 모드를 설명하기 위한 도면이다.
도 45는 본 발명의 일 실시예에 따른 DMVD 모드의 양방향 매칭 모드를 설명하기 위한 도면이다.
도 46은 본 발명의 일 실시예에 따른 DMVD 모드의 움직임 추정 방법을 설명하기 위한 도면이다.
도 47은 본 발명의 일 실시예에 따른 예측 정보의 부호화 흐름을 나타낸 흐름도이다.
도 48은 본 발명의 일 실시예에 따른 예측 정보의 복호화 흐름을 나타낸 흐름도이다.
도 49는 본 발명의 일 실시예에 따른 템플릿 매칭 모드의 최적 움직임정보를 SKIP, MERGE 모드의 후보 움직임정보로써 이용하는 방법을 설명하기 위한 도면이다.
도 50은 본 발명의 일 실시예에 따른 템플릿 매칭 모드의 최적 움직임정보를 AMVP 모드의 후보 움직임정보로써 이용하는 방법을 설명하기 위한 도면이다.
도 51은 본 발명의 일 실시예에 따른 템플릿 매칭 모드의 최적 움직임정보 유도 시, 복수개의 템플릿을 이용한 움직임정보 결정 방법을 설명하기 위한 도면이다.
도 52는 본 발명의 일 실시예에 따른 SKIP, MERGE 모드의 후보 움직임 리스트의 움직임정보를 템플릿 매칭 모드를 이용하여 보정하는 방법을 설명하기 위한 도면이다.
도 53은 본 발명의 일 실시예에 따른 SKIP, MERGE 모드의 후보 움직임정보 보정 시, 참조 픽쳐를 변경하는 방법에 대해서 설명하기 위한 도면이다.
도 54눈 본 발명의 일 실시예에 따른 SKIP, MERGE 모드의 후보 움직임 리스트의 움직임정보를 템플릿 매칭 모드를 이용하여 재정렬하는 방법을 설명하기 위한 도면이다.
도 55는 본 발명의 일 실시예에 따른 템플릿 매칭 모드의 템플릿을 서브 템플릿으로 나누어 각 서브 템플릿 별로 비용값의 가중치를 달리하는 방법을 설명하기 위한 도면이다.
도 56은 본 발명의 일 실시 예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 57은 본 발명의 일 실시 예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 58은 영상 부호화 장치를 나타내는 흐름도이다.
도 59는 영상 부호화 장치의 예측부를 설명하기 위한 도면이다.
도 60은 예측 정보를 부호화하는 방법을 나타내는 흐름도이다.
도 61은 영상 복호화 장치를 나타내는 흐름도이다.
도 62는 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
도 63은 예측 정보를 복호화하는 방법을 나타낸 흐름도이다.
도 64는 본 발명의 일 실시예에 따른 영상 부호화 장치의 예측부를 설명하기 위한 도면이다.
도 65는 본 발명의 일 실시예에 따른 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
도 66은 본 발명의 일 실시예에 따른 코딩 정보들의 부호화 방법을 나타낸 흐름도이다.
도 67은 본 발명의 일 실시예에 따른 코딩 정보들의 복호화 방법을 나타낸 흐름도이다.
도 68은 본 발명의 일 실시예에 따른 움직임 벡터 차분 정보의 부호화/복호화 방법을 나타낸 흐름도이다.
도 69는 본 발명의 일 실시예에 따른 움직임 벡터 차분 정보 부호화 시, 템플릿 매칭 비용값을 이용하여 이진 정보를 결정하는 방법을 나타낸 표이다.
도 70은 본 발명의 일 실시예에 따른 움직임 벡터 차분 정보의 이진 정보 결정 시, 템플릿 매칭 기술을 설명하기 위한 도면이다.
도 71은 본 발명의 일 실시예에 따른 DIMD 모드를 위한 템플릿 매칭 기술의 템플릿 매칭 비용값을 이용하여 MPM 후보 모드 리스트의 후보 별 이진 정보 할당 방법, Chroma 후보 모드의 이진 정보 할당 방법을 설명하기 위한 도면이다.
도 72는 본 발명의 일 실시예에 따른 DIMD 모드의 템플릿 매칭 기술을 설명하기 위한 도면이다.
도 73은 본 발명의 일 실시예에 따른 지역 밝기 보상 기술 수행 시, 현재 블록 주변 복원 영역 내에서 템플릿 사용 여부에 따른 예측 블록 주변 복원 영역 내에서 템플릿 사용 여부를 결정하는 방법을 설명하기 위한 도면이다.
도 74는 본 발명의 일 실시예에 따른 영상 부호화 장치의 변환부이다.
도 75는 본 발명의 일 실시예에 따른 영상 부호화/복호화 장치의 역 변환부이다.
도 76은 본 발명의 일 실시예에 따른 영상 부호화/복호화 장치의 변환부/역 변환부에서 변환 타입의 이진 정보를 결정하기 위해서 템플릿 매칭 기술을 이용하는 방법을 설명하기 위한 도면이다.
도 77은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 78은 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 본 명세서에서 설명되는 장치 및 방법에 관한 실시예에 있어서, 장치의 구성 일부 또는 방법의 단계 일부는 생략될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부의 순서가 변경될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부에 다른 구성 또는 다른 단계가 삽입될 수 있다.
또한, 본 발명의 제1 실시예의 일부 구성 또는 일부 단계는 본 발명의 제2 실시예에 부가되거나, 제2 실시예의 일부 구성 또는 일부 단계를 대체할 수 있다.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
먼저, 본 출원에서 사용되는 용어를 간략히 설명하면 다음과 같다.
이하에서 후술할 복호화 장치(Video Decoding Apparatus)는 민간 보안 카메라, 민간 보안 시스템, 군용 보안 카메라, 군용 보안 시스템, 개인용 컴퓨터(PC, Personal Computer), 노트북 컴퓨터, 휴대형 멀티미디어 플레이어(PMP, Portable MultimediaPlayer), 무선 통신 단말기(Wireless Communication Terminal), 스마트 폰(Smart Phone), TV 응용 서버와 서비스 서버 등 서버 단말기에 포함된 장치일 수 있으며, 각종 기기 등과 같은 사용자 단말기, 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 복호화하거나 복호화를 위해 화면 간 또는 화면 내 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리, 프로그램을 실행하여 연산 및 제어하기 위한 마이크로프로세서 등을 구비하는 다양한 장치를 의미할 수 있다.
또한, 부호화기에 의해 비트스트림(bitstream)으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망 등을 통하거나 케이블, 범용 직렬 버스(USB, Universal Serial Bus)등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 복호화되어 영상으로 복원되고 재생될 수 있다. 또는 부호화기에 의해 생성된 비트스트림은 메모리에 저장될 수 있다. 상기 메모리는 휘발성 메모리와 비휘발성 메모리를 모두 포함할 수 있다. 본 명세서에서 메모리는 비트스트림을 저장한 기록 매체로 표현될 수 있다.
통상적으로 동영상은 일련의 픽쳐(Picture)들로 구성될 수 있으며, 각 픽쳐들은 블록(Block)과 같은 코딩 유닛(coding unit)으로 분할될 수 있다. 또한, 이하에 기재된 픽쳐라는 용어는 영상(Image), 프레임(Frame) 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다. 그리고 코딩 유닛이라는 용어는 단위 블록, 블록 등과 같은 동등한 의미를 갖는 다른 용어로 대치되어 사용될 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있을 것이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 영상 부호화 장치(100)의 구성을 간략하게 나타낸 예시도이다.
영상 부호화 장치(100)는 영상을 부호화하는 장치로써 크게 영상 분할부(101), 예측부(102, 103), 변환부(105), 양자화부(106), 엔트로피 부호화부(107), 역 양자화부(108), 역 변환부(109), 가산부(110), 인루프 필터부(111), 메모리부(112), 감산부(104)를 포함할 수 있다.
영상 분할부(101)는 최대 크기의 부호화 대상 블록(이하, “최대 부호화 블록”이라 함)으로부터 최소 크기의 부호화 대상 블록(이하, “최소 부호화 블록”이라 함)까지 입력 영상을 분할해 나간다. 블록 분할 방법에는 다양한 방법이 있다. 쿼드-트리 분할(이하, “QT(Quad-Tree) 분할”이라 함)은 현재 부호화 블록을 정확히 사분하는 분할이다. 이진-트리 분할(이하, “BT(Binary-Tree) 분할”이라 함)은 부호화 블록을 가로 방향 혹은 세로 방향으로 정확히 이분하는 분할이다. 이 외에 다양한 분할 방법이 있을 수 있다. 또한, 여러 분할 방법들을 동시에 고려하여 분할해 나가는 방법도 가능하다.
예측부(102, 103)는 현재 원본 블록 내 현재 예측 대상 블록의 주변 화소나 이전에 이미 부호화/복호화가 끝난 참조 픽쳐 내 화소들을 이용하여 예측 블록을 생성한다. 1개의 부호화 블록에 대해 1개 혹은 그 이상의 예측 블록들이 생성될 수 있다. 부호화 블록에 대한 예측 블록이 1개일 경우, 예측 블록은 부호화 블록과 동일한 형태를 가질 수 있다.
동영상 신호의 예측 기술은 크게 화면 내 예측과 화면 간 예측으로 구성될 수 있다. 화면 내 예측은 현재 블록의 주변 화소들을 이용하여 예측 블록을 생성하는 방식이다. 화면 간 예측은 이전에 이미 부호화/복호화가 끝난 참조 픽쳐에서 현재 블록과 가장 유사한 블록을 찾아서 예측 블록을 생성하는 방식이다.
예측 블록이 생성되면, 원본 블록으로부터 예측 블록을 차감하여 잔차 블록을 생성할 수 있다. 생성된 잔차 블록에 대해 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 등 다양한 기법을 이용하여 예측 블록을 생성하는 최적의 예측 모드를 결정할 수 있다. 예컨대, RDO 비용의 계산식은 수학식 1과 같을 수 있다.
Figure PCTKR2019007328-appb-M000001
상기 수학식 1에서, D, R, J는 각각 양자화에 의한 열화, 압축 스트림의 레이트, RD 비용을 의미한다. 또한 Φ는 부호화 모드, λ는 라그랑지안 승수(Lagrangian multiplier)이다. λ는 에러의 양과 비트량 간의 단위를 일치시키기 위한 스케일 보정용 계수로 사용된다. 부호화 과정에서 최적의 부호화 모드로 선택되기 위해서는 해당 모드를 적용했을 때의 J 즉, RD-비용값이 다른 모드를 적용했을 때보다 작아야 한다. 상기 수학식 1과 같이, RD-비용값은 비트율(R)과 에러(D)를 동시에 고려하여 계산된다.
도 2는 영상 부호화 장치의 예측부의 일 실시예를 도시한 도면이다.
화면 내 예측부(201)는 원본 정보와 복원 정보를 이용하여 화면 내 예측을 수행할 수 있다. 예컨대, 복수의 참조 화소 라인 중 적어도 하나의 참조 화소 라인의 선택, 참조 화소의 생성, 참조 화소의 필터링, 참조 화소를 이용하여 예측 블록 생성, 및/또는 생성된 예측 블록의 필터링을 수행할 수 있다. 화면 내 예측 모드 탐색부(202)는 각 예측 모드 별로 계산된 RD-비용값을 이용하여 예컨대, 최적의 화면 내 예측 모드를 결정하고, 그에 따른 예측 블록을 생성하거나 선택하여 최종적으로 출력할 수 있다.
화면 간 예측부(203)는 원본 정보와 복원 정보를 이용하여 화면 간 예측을 수행할 수 있다. 화면 간 예측부(203)는, SKIP 모드, MERGE 모드, AMVP 모드 등을 포함하는 복수의 화면 간 예측 모드들의 각각에 대해 RD-비용값을 계산할 수 있다. 머지(MERGE) 후보 탐색부(204)는 SKIP 모드와 MERGE 모드를 위한 후보 움직임 정보 세트를 구성한다. 머지 후보 결정부(205)는 RD-비용값을 이용하여 후보 움직임 정보 세트 중 예컨대, 최적의 움직임 정보를 결정한다. AMVP 후보 탐색부(206)는 AMVP 모드를 위한 후보 움직임 정보 세트를 구성한다. 움직임 추정부(207)는 후보 움직임 정보 세트를 이용하여 움직임 추정을 수행하고, 예컨대, 최적의 움직임 정보를 결정한다. 움직임 보상부(208)는 최적의 움직임 정보를 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 또는 움직임 보상부(208)는 최적의 움직임 정보와 관련하여 이미 생성된 예측 블록을 최종적으로 선택/출력할 수 있다.
전술한 화면 간 예측 모드는 3가지 모드(SKIP 모드, MERGE 모드, AMVP 모드)를 포함할 수 있다. 각 예측 모드는 움직임 정보(예측 방향 정보, 참조 픽쳐 정보, 움직임 벡터)를 이용하여 현재 블록의 예측 블록을 생성할 수 있다. 또한, 움직임 정보를 이용한 추가적인 예측 모드가 존재할 수 있다.
SKIP 모드의 경우, 이미 복원된 영역의 움직임 정보를 이용하여 현재 블록의 예측 정보(예컨대, 최적의 예측 정보)를 결정할 수 있다. 복원된 영역 내에서 움직임 정보 후보군을 구성하고, 해당 후보군 중 예컨대, RD-비용값이 최소인 후보를 현재 블록의 예측 정보로 사용할 수 있다. SKIP 모드의 움직임 정보 후보군 구성 방법은 후술할 머지 모드의 움직임 정보 후보군 구성 방법과 동일하다.
MERGE 모드의 경우, 이미 복원된 영역의 움직임 정보를 이용하여 현재 블록의 예측 정보(예컨대, 최적의 예측 정보)를 결정한다는 점에서 SKIP 모드와 동일하다. 그러나 SKIP 모드는 예측 에러가 0이 되도록 하는 움직임 정보를 움직임 정보 후보군에서 탐색하고, MERGE 모드는 예측 에러가 0이 아닌 움직임 정보를 움직임 정보 후보군에서 탐색한다는 점에서 양자는 차이가 있다. SKIP 모드와 마찬가지로, 복원된 영역 내에서 움직임 정보 후보군을 구성하고, 해당 후보군 중 예컨대, RD-비용값이 최소인 후보를 현재 블록의 예측 정보로 사용하여 예측 블록을 생성할 수 있다.
도 3은 SKIP 모드 또는 MERGE 모드에서, 움직임 정보 후보군을 생성하는 방법을 설명하기 위한 도면이다.
도 4는 공간적 후보 블록의 위치와 시간적 후보 블록의 위치를 설명하기 위한 도면이다.
도 5는 시간적 후보의 움직임 정보를 결정하는 방법을 설명하기 위한 도면이다.
움직임 정보 후보군의 최대 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일하게 결정될 수도 있고, 영상 부호화 장치의 상위 헤더(상위 헤더란, 비디오 파라미터 셋, 시퀀스 파라미터 셋, 픽쳐 파라미터 셋, 타일 헤더, 슬라이스 헤더 등 블록의 상위 레벨에서 전송되는 파라미터들을 의미함)에서 해당 개수 정보가 전송될 수도 있다.
S301 단계와 S302 단계에서 공간적 후보 블록과 시간적 후보 블록이 화면 간 예측 모드로 부호화되었을 때에만, 해당 움직임 정보를 이용하여 유도된 움직임 정보를 움직임 정보 후보군에 포함시킬 수 있다.
S301 단계에서는 동일 픽쳐 내에서 현재 블록 주변으로부터 공간적 후보를 선택할 수 있다. 예컨대, 소정 위치의 공간적 후보 블록 5개 중 4개를 공간적 후보로서 선택할 수 있다. 공간적 후보 블록의 위치는 예컨대, 도 4에 도시된 A1 내지 A5의 위치일 수 있다. 그러나 공간적 후보 블록의 개수와 위치는 이에 한정되지 않으며, 복원된 영역 내에서 어떤 블록으로든 변경 가능하다. 공간적 후보는 A1, A2, A3, A4, A5 순으로 고려되어, 먼저 사용 가능한 공간적 후보 블록의 움직임 정보를 공간적 후보로 결정할 수 있다. 그러나 복수의 후보간의 고려 순서는 상기 순서로 한정되지 않는다. 만약, 복수의 공간적 후보들의 움직임 정보가 중복될 경우, 우선 순위가 높은 후보의 움직임 정보만을 고려할 수 있다.
S302 단계에서는 현재 픽쳐 이전에 부호화/복호화된 픽쳐 내에서 시간적 후보를 선택할 수 있다. 예컨대, 콜로케이티드(Collocated) 픽쳐 내의 2개의 시간적 후보 블록들 중, 1개를 시간적 후보로서 선택할 수 있다. 시간적 후보 블록의 위치는 도 4에 도시된 B1, B2일 수 있다. 각 후보들의 위치는 픽쳐 내에서 현재 픽쳐의 현재 블록 위치와 동일한 위치의 블록을 기준으로 결정된다. 여기서, 콜로케이티드 픽쳐는 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 설정 가능하다. 예컨대, 소정의 참조 픽쳐 인덱스에 해당하는 참조 픽쳐가 콜로케이티드 픽쳐로 선택될 수 있다. 또는, 콜로케이티드 픽쳐를 지시하는 인덱스 정보가 시그널링될 수도 있다. 시간적 후보는 B1, B2 블록 순으로 고려되어, 먼저 사용 가능한 후보 블록의 움직임 정보를 시간적 후보로 결정할 수 있다. 그러나, 시간적 후보 블록의 개수, 위치 및 고려 순서는 상기 설명된 실시예로 한정되지 않는다.
도 4 및 도 5에 도시된 바와 같이, 예컨대, 콜로케이티드 픽쳐 내의 후보 블록(B1또는 B2)의 움직임 정보는 참조 픽쳐 B에 있는 예측 블록을 가리킬 수 있다. 각 후보 블록의 참조 픽쳐는 서로 다를 수 있으나, 본 설명에서는 편의상 이를 모두 참조 픽쳐 B라고 표현한다. 해당 움직임 벡터는 콜로케이티드 픽쳐와 참조 픽쳐 B 사이의 거리(TD), 현재 픽쳐와 참조 픽쳐 A 사이의 거리(TB)의 비율을 이용하여 스케일링됨으로써, 시간적 후보의 움직임 벡터로서 결정될 수 있다. 예컨대, 상기 스케일링은 아래의 수학식 2를 이용하여 수행될 수 있다.
Figure PCTKR2019007328-appb-M000002
MV는 시간적 후보 블록의 움직임 정보의 움직임 벡터, MVscale은 스케일링된 움직임 벡터, TB는 콜로케이티드 픽쳐와 참조 픽쳐 B 사이의 시간적 거리, TD는 현재 픽쳐와 참조 픽쳐 A 사이의 시간적 거리를 의미한다. 이때, 참조 픽쳐 A, 참조 픽쳐 B는 동일한 참조 픽쳐일 수도 있다. 상기 스케일링된 움직임 벡터가 시간적 후보의 움직임 벡터로 결정될 수 있다. 또한, 시간적 후보 움직임 정보의 참조 픽쳐 정보는 현재 픽쳐의 참조 픽쳐로 결정하여, 시간적 후보의 움직임 정보를 유도할 수 있다.
S303 단계는 S301, S302 단계에서 유도된 움직임 정보 후보의 개수가 최대 개수 미만일 경우에만 수행될 수 있다. S303 단계에서 중복된 후보는 제거될 수 있다. 또한, S301, S302 단계에서 유도된 움직임 정보 후보들의 조합으로 새로운 양방향 움직임 정보 후보를 추가할 수 있다. 양방향 움직임 정보 후보란, 이전까지 유도된 과거 혹은 미래 방향의 움직임 정보들을 하나씩 선택하여 조합함으로써 유도된 새로운 후보를 의미한다.
아래의 표 1은 양방향 움직임 정보 후보 조합의 우선 순위를 나타낸 것이다. 그러나, 표 1은 하나의 예시를 나타낸 것이며, 표 1의 조합과는 상이한 조합이 존재할 수 있다.
구성순서 0 1 2 3 4 5 6 7 8 9 10 11
후보색인(과거) 0 1 0 2 1 2 0 3 1 3 2 3
후보색인(미래) 1 0 2 0 2 1 3 0 3 1 3 2
양방향 움직임 정보 후보를 이용하여도 움직임 정보 후보의 최대 개수를 채우지 못하는 경우, S304 단계를 수행한다. S304 단계에서는 움직임 정보 후보의 움직임 벡터를 제로 움직임 벡터로 고정하고, 예측 방향에 따른 참조 픽쳐를 달리하여 움직임 정보 후보의 최대 개수를 채울 수 있다.AMVP 모드는 예측 방향에 따른 참조 픽쳐 별로 움직임 추정을 거쳐 현재 블록의 움직임 정보(예컨대, 최적의 움직임 정보)를 결정한다. 여기서, 예측 방향은 과거/미래 중 한 방향만을 사용하는 단방향일 수도 있고, 과거와 미래 방향 모두를 사용하는 양방향일 수도 있다. 움직임 추정을 통해 결정된 움직임 정보를 이용하여 움직임 보상을 수행하여 예측 블록을 생성한다. 여기서, 예측 방향에 따른 참조 픽쳐마다 움직임 추정을 위한 움직임 정보 후보군을 유도한다. 해당 움직임 정보 후보군은 움직임 추정의 시작 지점으로 사용된다.
AMVP 모드의 움직임 추정을 위한 움직임 정보 후보군을 유도하는 방법은 도 3을 참조하여 설명한 방법과 일부 유사하다. AMVP 모드의 움직임 정보 후보의 최대 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일하게 결정할 수도 있고, 블록의 상위 레벨에서 해당 개수 정보가 전송될 수도 있다. AMVP 모드에서도 공간적 후보 블록과 시간적 후보 블록이 화면 간 예측 모드로 부호화되었을 때에만, 해당 움직임 정보를 이용하여 유도된 움직임 정보를 움직임 정보 후보군에 포함시킬 수 있다.
AMVP 모드의 경우, 공간적 후보 블록의 개수는 2개일 수 있고, 공간적 후보를 선택하기 위한 우선 순위 또한 MERGE 모드의 경우와는 다를 수 있다. 그러나 나머지 설명은 S301 단계에 대한 설명과 동일할 수 있다. 또한, AMVP 모드의 시간적 후보는 S306 단계에서 설명한 방법과 동일하게 유도될 수 있다.
AMVP 모드의 경우, 현재까지 유도된 후보들 중, 중복되는 움직임 정보가 있으면 제거할 수 있다. 또한, 유도된 후보들의 개수가 후보의 최대 개수 미만인 경우, S308 단계와 동일하세 제로 움직임 정보 후보를 추가할 수 있다.
상기와 같이 유도된 움직임 정보 후보들 중 하나의 움직임 정보 후보를 선택할 수 있다. 예컨대, RD-비용값이 최소인 움직임 정보 후보를 최적 움직임 정보 후보로서 선택하고, 해당 움직임 정보를 기준으로 움직임 추정 과정을 거쳐 AMVP 모드의 최적 움직임 정보를 획득할 수 있다.
도 6은 DC 모드에 따른 화면 내 예측 블록 생성 방법을 설명하기 위한 도면이다.
화면 내 예측 모드는 Planar 모드, DC 모드 및 N개의 방향성 모드((Angular mode 또는 directional mode)를 포함하여 총 (N+2)개의 예측 모드를 포함할 수 있다. DC 모드의 경우, 현재 블록을 구성하는 R1 내지 R4의 영역은 각각 상이한 방법으로 예측될 수 있다. 예컨대, 참조 화소 a 내지 참조 화소 s의 평균값을 계산하여 R1 내지 R4 영역의 모든 예측 화소에 적용시킬 수 있다. 이 후, R1 영역은 2개의 인접 참조 화소 a와 j를 이용한 FIR 필터링을 통해 최종 예측 블록을 생성할 수 있다. 또한, R2, R3 영역은 1개의 인접 참조 화소(b 내지 h, k 내지 q 중 1개)와의 FIR 필터링을 통해 최종 예측 블록을 생성할 수 있다.
도 7은 Planar 모드에 따른 화면 내 예측 블록 생성 방법을 설명하기 위한 도면이다.
Planar 모드는 예측 화소 위치 별로 상단 및 좌측 위치의 참조 화소와 하단 및 우측 위치에 해당하는 복사된 참조 화소와의 선형 보간 방식을 이용하여 최종 예측 블록을 생성한다.
도 8은 N개의 방향성 예측 모드를 도시한 도면이다.
방향성 예측 모드는 예측 방향 별로 인접한 참조 화소의 값을 예측 블록에 적용하여 최종 예측 블록을 생성한다.
화면 내 예측 모드의 효율적인 부호화/복호화를 위하여 MPM(Most Probable Mode) 모드를 이용할 수 있다. 이 때, 현재 블록의 MPM 후보 모드 리스트를 구성하기 위하여 현재 블록 주변의 공간적 후보 블록들로부터 후보 모드를 유도할 수 있다. 이 때, 이용 가능한 공간적 후보 블록들은 도 4의 공간적 후보 블록들과 동일할 수 있다. 그러나 이에 한정되지 않으며, 공간적 후보 블록들의 개수 및/또는 위치는 달라질 수 있다.
도 9는 MPM 후보 모드 리스트를 구성하는 방법을 설명하기 위한 도면이다.
S901 단계에서는 공간적 후보 블록들의 복원된 화면 내 예측 모드를 MPM 후보 모드로서 먼저 유도한다. A1, A2, A3, A4, A5 블록 순으로 각 블록의 화면 내 예측 모드가 MPM 후보 모드가 될 수 있다. 이 중, 화면 내 예측 모드가 복원이 안된 후보 블록들은 제외될 수 있다. 또한, 공간적 후보 블록의 우선 순위도 달라질 수 있음은 전술한 바와 같다.
S902 단계에서는 S901 단계에서 유도된 후보 화면 내 예측 모드 중 우선 순위가 높은 순으로 방향성 모드의 바로 인접한 방향성 모드를 MPM 후보 모드로서 추가한다. 예를 들어, S901 단계에서 방향성 모드 4번, 방향성 모드 11번이 후보 모드인 경우, 4번에 인접한 방향성 모드인 3, 5번 모드, 11번에 인접한 방향성 모드인 10, 12번 모드가 MPM 후보 모드로서 추가될 수 있다.
S903 단계에서는 비방향성 모드를 MPM 후보 모드로서 추가할 수 있다.
S904 단계에서는 현재 MPM 후보 모드의 개수가 최대 MPM 후보 모드 개수보다 크거나 같은지를 판단한다. S904 단계에서 현재 MPM 후보 모드 개수가 최대 MPM 후보 모드 개수보다 작으면, 최대 MPM 후보 모드 개수까지 디폴트(Default) 후보 모드를 추가하여 MPM 후보 모드 리스트를 구성할 수 있다. 이 때, 디폴트 후보 모드는 수직 모드, 수평 모드, DC 모드, Planar 모드 등 임의의 화면 내 예측 모드를 포함할 수 있다. 디폴트 후보 모드 간의 우선 순위는 상기 순서로 한정되지 않으며 변경될 수 있다. 현재 MPM 후보 모드 개수가 최대 MPM 후보 모드 개수보다 크거나 같다면, 우선 순위가 높은 순서에 따라 최대 MPM 후보 모드 개수에 해당하는 MPM 후보 모드들을 이용하여 MPM 후보 모드 리스트를 구성할 수 있다.
변환부(105)는 원본 블록과 예측 블록의 차이인 잔차 블록을 변환하여 변환 블록을 생성한다. 변환 블록은 변환 및 양자화 과정을 위해 사용되는 가장 작은 단위이다. 변환부(105)는 잔차 신호를 공간 영역으로부터 주파수 영역으로 변환하여 변환 계수를 가지는 변환 블록을 생성한다. 여기서 잔차 신호를 주파수 영역으로 변환하는 방법으로는 이산 코사인 변환(DCT: Discrete Cosine Transform), 이산 사인 변환(DST: Discrete Sine Transform), KLT(Karhunen Loeve Transform) 등 다양한 변환 기법을 이용할 수 있다. 변환에 의해, 잔차 신호가 주파수 영역으로 변환되어 변환 계수가 생성된다. 변환 기법을 편하게 사용하기 위해 기저 벡터(basis vector)를 이용하여 행렬 연산을 하게 되는데 예측 블록이 어떤 예측 모드로 부호화 되었는지에 따라서 행렬 연산 시 변환 기법들을 다양하게 섞어 사용할 수 있다. 예를 들어, 화면 내 예측 시 예측 모드에 따라 가로 방향으로는 이산 코사인 변환을 사용하고 세로 방향으로는 이산 사인 변환을 사용할 수도 있다. 또는 현재 블록의 종횡비, 크기(가로와 세로 중 한쪽의 길이 또는 양쪽의 길이), 형태, 예측 모드(화면간 예측 또는 화면내 예측), 화면간 예측 모드 등에 따라 가로 방향과 세로 방향으로 서로 다른 변환 기법들을 사용할 수도 있다.
양자화부(106)는 변환 블록을 양자화하여 양자화된 변환 블록을 생성한다. 즉, 양자화부는 변환부(105)로부터 생성되는 변환 블록의 변환 계수들을 양자화 하여 양자화된 변환 계수를 갖는 양자화된 변환 블록(Quantized Transform Coefficient)을 생성한다. 양자화 방법으로는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization) 또는 양자화 가중치 행렬 (Quantization Weighted Matrix) 등이 이용될 수 있다. 그러나, 상기 예에 한정되지 않으며, 예컨대, 상기 양자화 방법을 개량한 다양한 양자화 방법이 이용될 수 있다.
이상에서, 영상 부호화 장치가 변환부 및 양자화부를 포함하는 것으로 도시하고 설명하였다. 그러나, 영상 부호화 장치는 변환부 및/또는 양자화부를 선택적으로 포함할 수도 있다. 즉, 영상 부호화 장치는 잔차 블록을 변환하여 변환 블록을 생성하고 양자화 과정은 수행하지 않을 수 있다. 또는, 영상 부호화 장치는 잔차 블록을 변환하지 않고 양자화만을 수행할 수도 있다. 또는, 영상 부호화 장치는 변환과 양자화를 모두 수행하지 않을 수도 있다. 영상 부호화 장치에서 변환부와 양자화부 중 일부만이 수행되거나, 모든 과정이 수행되지 않더라도 엔트로피 부호화부(107)의 입력으로 들어가는 블록은 통상 '양자화된 변환 블록'이라 일컫는다.
엔트로피 부호화부(107)는 양자화된 변환 블록을 부호화하여 비트스트림을 출력한다. 즉, 엔트로피 부호화부는 양자화부로부터 출력되는 양자화된 변환 블록의 계수들을 엔트로피 부호화(Entropy Encoding) 등 다양한 부호화 기법을 이용하여 부호화하고, 후술하는 영상 복호화 장치에서 해당 블록을 복호화하는데 필요한 부가적인 정보(예를 들면, 예측 모드에 대한 정보(예측 모드에 대한 정보란 화면 내 예측인지 또는 화면 간 예측인지에 대한 정보, 움직임 정보 혹은 화면 내 예측 모드 정보 등을 포함할 수 있다.), 양자화 계수 등)를 포함하는 비트스트림을 생성하고 출력한다.
역 양자화부(108)는 양자화된 변환 블록에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역양자화 변환 블록을 복원한다.
역 변환부(109)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.
이상에서, 역 양자화부와 역 변환부는 양자화부와 변환부에서 사용한 양자화 방식과 변환 방식을 역으로 사용하여 역 양자화 및 역 변환할 수 있다. 또한 부호화 단계에서 양자화만을 수행하고 변환을 수행하지 않은 경우에는 복원 단계에서 역 양자화만을 수행하고 역 변환을 수행하지 않을 수 있다. 만약, 부호화 단계에서 변환 및 양자화를 모두 수행하지 않은 경우, 복호화 단계에서 역 변환 및 역 양자화를 모두 수행하지 않을 수 있다. 또는 해당 블록에 대한 정보는 영상 부호화 장치에 포함되지 않고 생략될 수 있다.
가산부(110)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원한다.
필터부(111)는 현재 픽쳐 내 모든 블록들이 복원된 이후, 픽쳐 전체에 걸쳐서 추가적으로 필터링 해주는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset) 등이 있다. 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 필터링이다. SAO(Sample Adaptive Offset)란 복원 화소에 특정 값을 감산하거나 가산함으로써, 복원 영상과 원본 영상간 차이를 최소화시키는 필터링이다.
메모리(112)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 픽쳐 등을 예측하는데 활용될 수 있다.
감산부(104)는 현재 원본 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다.
도 10은 영상 부호화 장치에서 부호화 정보를 부호화하는 일 실시예를 설명하기 위한 도면이다.
S1001 단계에서는 SKIP 모드의 동작 정보를 부호화한다. 스킵 모드에서의 현재 블록의 예측은 Merge 모드를 이용하고, 복호화 장치에서는 현재 블록의 예측 블록을 복원 블록으로 사용한다. 화면 간 예측의 S1002 단계에서는 SKIP 모드의 동작 여부를 판단한다. S1002 단계에서 SKIP 모드가 동작한다면(Yes), S1007 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다. S1002 단계에서 SKIP 모드가 동작하지 않는다면(No), S1003 단계에서 예측 모드를 부호화한다. S1004 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S1004 단계에서 예측 모드가 화면 간 예측 모드였다면(Yes), S1005 단계에서 MERGE 모드의 동작 정보를 부호화한다. S1006 단계에서는 MERGE 모드의 동작 여부를 판단한다. S1006 단계에서 MERGE 모드가 동작한다면(Yes), S1007 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다. S1006 단계에서 MERGE 모드가 동작하지 않는다면(No), S1008 단계에서 예측 방향을 부호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다. S1009 단계에서는 예측 방향이 미래 방향인지 아닌지를 판단한다. S1009 단계에서 예측 방향이 미래 방향이 아니었다면(Yes), S1010 단계에서 과거 방향의 참조 픽쳐 색인 정보를 부호화한다. S1011 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 부호화한다. S1012 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 부호화한다. S1009 단계에서 예측 방향이 미래 방향 혹은 양방향이거나(No), S1012 단계가 끝나면 S1013 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. S1013 단계에서 예측 방향이 과거 방향이 아니었다면(Yes), S1014 단계에서 미래 방향 참조 픽쳐 색인 정보를 부호화한다. S1015 단계에서는 미래 방향의 MVD 정보를 부호화한다. S1016 단계에서는 미래 방향의 MVP 정보를 부호화한 후, 본 흐름도를 종료한다.
S1004 단계에서 예측 모드가 화면 내 예측 모드였다면(No), S1017 단계에서 MPM(Most Probable Mode) 모드 동작 정보를 부호화한다. MPM 모드란, 현재 블록 주변의 복원된 화면 내 예측 모드 등을 이용하여 MPM 후보 화면 내 예측 모드를 구성한 후, 영상 부호화 장치에서 결정된 현재 블록의 최적 화면 내 예측 모드 정보가 MPM 후보 화면 내 예측 모드 내에 존재한다면, MPM 후보 화면 내 예측 모드 색인 정보를 전송하는 방법을 말한다. S1018 단계에서 MPM 모드의 동작 여부를 판단한다. MPM 모드는 현재 블록 주변의 복원된 블록의 예측 모드들 중 현재 블록의 예측 모드와 동일한 모드가 있는 경우, 색인 정보를 부호화하는 모드이다. S1018 단계에서 MPM 모드 동작이 참이라면(Yes), S1019 단계에서 MPM 후보 화면 내 예측 모드의 색인 정보를 부호화한다. S1018 단계에서 MPM 모드 동작이 거짓이라면(No), S1020 단계에서 MPM 후보 화면 내 예측 모드를 제외한 나머지 화면 내 예측 모드들 중 Luma의 최적 화면 내 예측 모드 정보를 부호화한다.
S1019, S1020 단계가 종료된 후, Chroma의 최적 화면 내 예측 모드 정보를 부호화한 후, 본 흐름도를 종료할 수 있다. 여기서 S1008 단계 내지 S1016 단계를 수행하는 모듈을 움직임 정보 부호화부라고 칭할 수 있다. 또한, S1017 단계 내지 S1020 단계를 수행하는 모듈을 루마 화면 내 예측 모드 부호화부라고 칭할 수 있다.
도 11은 본 발명에 따른 영상 복호화 장치의 구성을 설명하기 위한 도면이다.
영상 복호화 장치는 영상을 복호화하는 장치이며, 엔트로피 복호화부, 역 양자화부, 역 변환부, 예측부, 가산부, 인루프 필터부, 메모리부를 포함할 수 있다. 영상 부호화 장치에서 부호화 블록은 영상 복호화 장치에서 복호화 블록이라 칭할 수 있다.
엔트로피 복호화부(1101)는 영상 부호화 장치로부터 전송받은 비트스트림을 해석하여 해당 블록을 복호화하는데 필요한 여러 정보와 양자화된 변환 계수를 복원할 수 있다.
역 양자화부(1102)는 엔트로피 복호화부에서 복호화한 양자화 계수에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화된 계수를 가지는 역 양자화된 블록을 복원한다.
역 변환부(1103)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 차분 신호를 가지는 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.
예측부(1107, 1108)는 엔트로피 복호화부에서 복호화한 예측 모드 정보를 이용하여 예측 블록을 생성하는데, 이는 영상 부호화 장치의 예측부에서 수행했던 예측 방식과 동일한 방식을 이용한다.
가산부(1104)는 역 변환부에서 복원된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원한다.
필터부(1105)는 현재 픽쳐 내 모든 블록을 복원한 이후, 픽쳐 전체에 걸쳐서 필터링을 수행하며, 필터링은 디블로킹 필터링, SAO(Sample Adaptive Offset) 등을 포함할 수 있다. 상세한 내용은 기 전술한 영상 부호화 장치의 필터부(111)에서 설명한 바와 동일하다.
메모리(1106)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 픽쳐 등을 예측하는데 활용될 수 있다.
도 12는 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
화면 내 예측부(1201)에서 예측 모드가 화면 내 예측이라면, 화면 내 예측 모드 결정부(1202)는 화면 내 예측 모드 정보를 결정하고, 화면 내 예측을 수행하여 예측 블록을 생성한다.
화면 간 예측부(1203)에서 예측 모드가 화면 간 예측이라면, SKIP, MERGE, AMVP 모드 중 현재 블록의 예측 모드를 복원한다. SKIP 모드 혹은 MERGE 모드인 경우, MERGE 후보 탐색부(1204)에서 SKIP 모드와 MERGE 모드를 위한 후보 움직임 정보 세트를 구성한다. 머지 후보 결정부(1205)는 해당 후보 움직임 정보 세트 중, 현재 블록의 움직임 정보를 결정한다. AMVP 모드인 경우, AMVP 후보 탐색부(1206)는 AMVP 모드를 위한 후보 움직임 정보 세트를 구성한다. 움직임 정보 결정부(1207)는 해당 후보 움직임 정보 세트들 중, 전송된 MVP 정보를 이용하여 현재 블록의 움직임 정보를 결정한다. 이 후, 각 모드에서 결정된 현재 블록의 움직임 정보를 이용하여 움직임 보상부(1208)에서 움직임 보상을 수행하여 예측 블록을 생성한다.
도 13은 영상 복호화 장치에서 부호화 정보를 복호화하는 일 실시예를 설명하기 위한 도면이다.
S1301 단계에서는 SKIP 모드의 동작 정보를 복호화한다. S1302 단계에서는 SKIP 모드의 동작 여부를 판단한다. S1302 단계에서 SKIP 모드가 동작한다면(Yes), S1307 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료한다. S1302 단계에서 SKIP 모드가 동작하지 않는다면(No), S1303 단계에서 예측 모드를 복호화한다. S1304 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S1304 단계에서 예측 모드가 화면 간 예측 모드였다면(Yes), S1305 단계에서 MERGE 모드의 동작 정보를 복호화한다. S1306 단계에서는 MERGE 모드의 동작 여부를 판단한다. S1306 단계에서 MERGE 모드가 동작한다면(Yes), S1307 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료한다. S1306 단계에서 MERGE 모드가 동작하지 않는다면(No), S1308 단계에서 예측 방향을 복호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다. S1309 단계에서는 예측 방향이 미래 방향인지 아닌지를 판단한다. S1309 단계에서 예측 방향이 미래 방향이 아니었다면(Yes), S1310 단계에서 과거 방향의 참조 픽쳐 색인 정보를 복호화한다. S1311 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 복호화한다. S1312 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 복호화한다. S1309 단계에서 예측 방향이 미래 방향 혹은 양방향이거나(No), S1312 단계가 끝나면 S1313 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. S1313 단계에서 예측 방향이 과거 방향이 아니었다면(Yes), S1314 단계에서 미래 방향 참조 픽쳐 색인 정보를 복호화한다. S1315 단계에서는 미래 방향의 MVD 정보를 복호화한다. S1316 단계에서는 미래 방향의 MVP 정보를 복호화한 후, 본 흐름도를 종료한다. S1304 단계에서 예측 모드가 화면 내 예측 모드였다면(No), S1317 단계에서 MPM 모드 동작 정보를 복호화한다. S1318 단계에서 MPM 모드의 동작 여부를 판단한다. S1318 단계에서 MPM 모드 동작이 참이라면(Yes), S1319 단계에서 MPM 후보 화면 내 예측 모드의 색인 정보를 복호화한다. S1318 단계에서 MPM 모드 동작이 거짓이라면(No), S1320 단계에서 MPM 후보 화면 내 예측 모드를 제외한 나머지 화면 내 예측 모드들 중 Luma의 최적 화면 내 예측 모드 정보를 복호화한다. S1319, S1320 단계가 종료된 후, Chroma의 최적 화면 내 예측 모드 정보를 복호화한 후, 본 흐름도를 종료할 수 있다. 여기서 S1308 단계 내지 S1316 단계를 수행하는 모듈을 움직임 정보 복호화부라 칭할 수 있다. 또한, S1317 단계 내지 S1320 단계를 수행하는 모듈을 루마 화면 내 예측 모드 복호화부라 칭할 수 있다.
이하에서, 2개 이상의 예측 정보를 이용하여 생성된 예측 블록들을 가중합하여 가중합된 예측 블록을 생성하는 실시예를 설명한다. 도 14 내지 도 17은 이하에서 설명하는 실시예들에 공통적으로 해당되는 도면이다.
도 14는 영상 부호화 장치의 예측부를 설명하기 위한 도면이다.
화면 내 예측부(1401)는 원본 정보와 복원 정보를 이용하여 화면 내 예측을 수행할 수 있다. DIMD 모드를 이용하여 화면 내 예측 모드를 결정할 지 말지를 RD-비용값으로 결정한다. DIMD 모드를 이용하지 않는 경우, 루마 화면 내 예측 모드 탐색부(1402)는 화면 내 예측 모드들 중 루마 블록에 최적인 화면 내 예측 모드를 RD-비용값을 이용하여 결정할 수 있다. DIMD 모드를 이용하는 경우, DIMD를 이용한 루마 화면 내 예측 모드 탐색부(1403)는 현재 블록 주변 복원 영역에서 템플릿 영역을 설정하고, 템플릿 영역에 최적인 루마 화면 내 예측 모드를 템플릿 영역 주변의 복원 화소를 이용하여 탐색하고, 템플릿 영역에 최적인 화면 내 예측 모드를 현재 블록의 최적 루마 화면 내 예측 모드로 결정할 수 있다. 이 후, 크로마 화면 내 예측 모드 탐색부(1404)는 크로마 블록에 최적인 화면 내 예측 모드를 RD-비용값으로 탐색할 수 있다.
화면 간 예측부(1405)는 원본 정보와 복원 정보를 이용하여 화면 간 예측을 수행할 수 있다. SKIP 모드, MERGE 모드, AMVP 모드, DMVD 모드에 대해서 RD-비용값을 계산하고 최적 예측 모드를 결정할 수 있다. 도면 부호 1406 내지 1409에 대한 설명은 도 2의 도면 부호 204 내지 207에 대한 설명과 동일하다. DMVD 초기 움직임 정보 탐색부(1410)는 DMVD 모드를 위한 초기 움직임 정보를 현재 블록 주변 및 참조 픽쳐 내 복원 블록의 화면 간 예측 모드를 이용하여 유도할 수 있다. DMVD 움직임 추정부(1411)는 유도된 초기 움직임 정보를 이용하여 DMVD 움직임 추정을 수행하여, 최적 움직임 정보를 결정할 수 있다. 움직임 보상부(1412)는 각 모드에서 결정된 최적 움직임 정보를 이용하여 움직임 보상을 수행하여 예측 블록을 생성할 수 있다. 여기서, 움직임 정보는 움직임 벡터, 참조 픽쳐 인덱스 및 예측 방향 정보 중 적어도 하나를 포함할 수 있다.
가중합 예측 블록 생성을 위한 예측 정보 탐색부(1413)는 화면 내 예측 모드, 화면 간 예측 모드를 이용하여 결정된 최적 예측 정보(이하, '주 예측 정보'라 칭함)와 더불어 가중합하기 위한 추가 예측 정보(이하 '제N 부 예측 정보'라 칭함, N은 1 이상의 정수)를 탐색할 수 있다. 추가 예측 정보는 1개 이상일 수 있으며 화면 내 예측 모드, 화면 간 예측 모드들 중 어떠한 예측 정보도 해당할 수 있다. 예를 들어, 주 예측 정보가 화면 내 예측 모드 중 Planar 모드이면서 제1 부 예측 정보는 Merge 후보 리스트의 첫 번째 움직임 정보, 제2 부 예측 정보는 화면 내 예측 모드의 수직 모드 일 수도 있다. 또한, 각 예측 정보의 예측 블록 별 가중치 정보도 RD-비용값을 통해 결정하여 추가 예측 정보에 포함되어 전송될 수 있다.
도 15는 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
화면 내 예측부(1501)는 복원 정보를 이용하여 DIMD 모드를 이용하여 화면 내 예측 모드를 결정할 지 말지를 결정할 수 있다. DIMD 모드를 이용하지 않는 경우, 루마 화면 내 예측 모드 결정부(1502)는 복원 정보를 이용하여 루마 블록의 화면 내 예측 모드를 결정할 수 있다. DIMD 모드를 이용하는 경우, DIMD를 이용한 루마 화면 내 예측 모드 탐색부(1503)는 현재 블록 주변 복원 영역에서 템플릿 영역을 설정하고, 템플릿 영역에 최적인 루마 화면 내 예측 모드를 템플릿 영역 주변의 복원 화소를 이용하여 탐색하고, 템플릿 영역에 최적인 화면 내 예측 모드를 현재 블록의 루마 화면 내 예측 모드로 결정할 수 있다. 이 후, 크로마 화면 내 예측 모드 결정부(1504)는 크로마 블록의 화면 내 예측 모드를 결정할 수 있다.
화면 간 예측부(1505)는 복원 정보를 이용하여 화면 간 예측을 수행하는 경우, SKIP 모드, MERGE 모드, AMVP 모드, DMVD 모드 중 하나의 예측 모드를 결정할 수 있다. 도면 부호 1506 내지 1509에 대한 설명은 도 12의 도면 부호 1204 내지 1207에 대한 설명과 동일하다. 도면 부호 1510 및 1511에 대한 설명은 도 14의 도면 부호 1410 및 1411에 대한 설명과 동일하다. 움직임 보상부(1512)는 각 모드에서 결정된 움직임 정보를 이용하여 움직임 보상을 수행하고 예측 블록을 생성할 수 있다. 가중합 예측 적용 여부 결정 및 가중합 예측 블록 생성을 위한 예측 정보 결정부(1513)는 화면 내 예측 모드, 화면 간 예측 모드를 이용하여 결정된 주 예측 정보와 더불어 가중합하기 위한 N개의 부 예측 정보(즉, 제N 부 예측 정보)를 결정할 수 있다.
도 16은 본 발명의 일 실시예에 따른 부호화 정보의 부호화 방법을 설명하기 위한 방법이다.
S1601 단계에서는 SKIP 모드의 동작 정보를 부호화한다. S1602 단계에서는 SKIP 모드의 동작 여부를 판단한다. SKIP 모드 동작이 참이라면, S1607 단계에서 DMVD 모드 동작 정보를 부호화한다. S1608 단계에서는 DMVD 모드의 동작 여부를 판단하고, DMVD 모드 동작이 참이면 S1609 단계에서 DMVD 모드 정보를 부호화한다. DMVD 모드 동작이 거짓이면 S1610 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 부호화한다. SKIP 모드 동작이 거짓이라면 S1603 단계에서 예측 모드를 부호화한다. S1604 단계에서는 예측 모드가 화면 간 예측인지 아닌지를 판단한다. 예측 모드가 화면 간 예측이라면 S1605 단계에서 MERGE 모드의 동작 정보를 부호화한다. S1606 단계에서는 MERGE 모드의 동작 여부를 판단한다. MERGE 모드 동작이 참이라면 S1607 내지 S1610 단계를 수행할 수 있는데, 이는 전술한 설명과 동일하다. 단, S1610 단계에서 MERGE 후보 색인 정보는 SKIP 모드가 아닌 MERGE 모드를 위한 후보 색인 정보이다. MERGE 모드 동작이 거짓이라면 S1620 단계에서, 움직임 정보 부호화부는 움직임 정보들을 부호화할 수 있다. S1620 단계는 도 10에서 S1008 내지 S1010 단계의 과정에 해당할 수 있다. 예측 모드가 화면 간 예측이 아니라 화면 내 예측 모드였다면 S1611 단계에서 DIMD 모드 동작 정보를 부호화한다. S1612 단계에서는 DIMD 모드의 동작 여부를 판단한다. DIMD 모드 동작이 거짓이라면 S1630 단계에서, 루마 화면 내 예측 모드 부호화부는 화면 내 예측 모드 정보들을 부호화할 수 있다. S1630 단계는 도 10에서 S1017 내지 S1020 단계의 과정에 해당할 수 있다. S1613 단계에서는 크로마 화면 내 예측 모드 정보를 부호화할 수 있다. 전술한 부호화 방법을 통하여 주 예측 정보는 부호화될 수 있다.
S1614 단계에서는 주 예측 정보와의 가중합 여부를 결정하기 가중합 예측 동작 정보를 부호화할 수 있다. 해당 정보의 부호화없이 무조건 가중합 예측을 적용할 수도 있고(가중합 예측 동작이 무조건 참), 적용하지 않을 수도 있다(가중합 예측 동작이 무조건 거짓). S1615 단계에서는 가중합 예측 동작 여부를 판단한다. 가중합 예측 동작이 거짓이면 본 흐름도를 종료하고, 가중합 예측 동작이 참이면 S1616 단계에서 가중합 예측 정보를 부호화한다. 가중합 예측 정보는 주 예측 정보, 부 예측 정보를 이용하여 생성된 각 예측 블록에 할당된 가중치 정보와 가중합 방법 등을 포함할 수 있다.
도 17은 본 발명의 일 실시예에 따른 부호화 정보의 복호화 방법을 설명하기 위한 방법이다.
S1701 단계에서는 SKIP 모드의 동작 정보를 복호화한다. S1702 단계에서는 SKIP 모드의 동작 여부를 판단한다. SKIP 모드 동작이 참이라면, S1707 단계에서 DMVD 모드 동작 정보를 복호화한다. S1708 단계에서는 DMVD 모드의 동작 여부를 판단하고, DMVD 모드 동작이 참이면 S1709 단계에서 DMVD 모드 정보를 복호화한다. DMVD 모드 동작이 거짓이면 S1710 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 복호화한다. SKIP 모드 동작이 거짓이라면 S1703 단계에서 예측 모드를 복호화한다. S1704 단계에서는 예측 모드가 화면 간 예측인지 아닌지를 판단한다. 예측 모드가 화면 간 예측이라면 S1705 단계에서 MERGE 모드의 동작 정보를 복호화한다. S1706 단계에서는 MERGE 모드의 동작 여부를 판단한다. MERGE 모드 동작이 참이라면 S1707 내지 S1710 단계를 수행할 수 있는데, 이는 전술한 설명과 동일하다. 단, S1710 단계에서 MERGE 후보 색인 정보는 SKIP 모드가 아닌 MERGE 모드를 위한 후보 색인 정보이다. MERGE 모드 동작이 거짓이라면, S1720 단계에서 움직임 정보 복호화부는 움직임 정보들을 복호화할 수 있다. S1720 단계는 도 13에서 S1308 내지 S1310 단계의 과정에 해당할 수 있다. 예측 모드가 화면 간 예측이 아니라 화면 내 예측 모드였다면 S1711 단계에서 DIMD 모드 동작 정보를 복호화한다. S1712 단계에서는 DIMD 모드의 동작 여부를 판단한다. DIMD 모드 동작이 거짓이라면, S1730 단계에서 루마 화면 내 예측 모드 복호화부는 루마 화면 내 예측 모드 정보들을 복호화할 수 있다. S1730 단계는 도 13에서 S1317 내지 S1320 단계의 과정에 해당할 수 있다. S1713 단계에서는 크로마 화면 내 예측 모드 정보를 복호화할 수 있다. S1714 단계에서는 주 예측 정보와의 가중합 여부를 결정하기 가중합 예측 동작 정보를 복호화한다. 가중합 예측 동작이 거짓이면 본 흐름도를 종료하고, 가중합 예측 동작이 참이면 S1716 단계에서 가중합 예측 정보를 복호화한다.
(실시예 1)
실시예 1은 화면 간 예측 모드(SKIP 모드, MERGE 모드, AMVP 모드, DMVD 모드)의 예측 정보와 추가적인 화면 간 예측 모드의 예측 정보를 이용하여 가중합 예측 블록을 생성하는 방법에 관한 것이다.
가중합 예측 블록 생성 방법을 구체적으로 설명하기에 앞서, 본 실시예에서 필요로 하는 예측 정보를 생성하는 예측 모드들에 대해서 상세히 설명한다. SKIP 모드, MERGE 모드, AMVP 모드는 전술한 설명과 동일하다. DMVD 모드란 영상 부호화 장치와 영상 복호화 장치에서 움직임정보의 부호화/복호화 없이 움직임 정보를 동일하게 생성하여 예측 블록을 생성하는 방법을 의미한다.
도 18은 영상 부호화/복호화 장치 내 예측부에서의 DMVD 모드의 초기 움직임 정보 탐색부의 결과 리스트를 나타낸 예시도이다.
본 리스트에 나와 있지 않은 추가적인 움직임 정보 또한 초기 움직임 정보 리스트에 포함될 수 있다.
도 19는 영상 부호화/복호화 장치 내 예측부에서의 DMVD 움직임 추정부의 동작을 설명하기 위한 도면이다.
영상 부호화/복호화 장치 내의 DMVD 초기 움직임 정보 탐색부에서 결정된 초기 움직임 정보를 이용하여 DMVD 모드를 수행 후, 최적 움직임 정보를 결정한다. 여기서, DMVD 모드를 수행한다는 것은 초기 움직임 정보를 보정한다는 의미일 수 있다.
DMVD 모드에는 템플릿을 사용하는 모드(이하, '템플릿 매칭 모드'라 칭함)와 템플릿을 사용하지 않는 모드(이하, '양방향 매칭 모드'라 칭함)가 있다.
양방향 매칭 모드를 이용(1901)할 경우, 각 초기 움직임 정보들의 단방향 움직임 벡터를 선형적으로 반대 예측 방향의 참조 픽쳐로 스케일링한다. 여기서, 움직임 벡터의 스케일링은 현재 픽쳐와 각 방향의 참조 픽쳐들간의 거리에 비례하여 수행된다. 이렇게 양방향으로 움직임 벡터를 결정(1902)한 후, 과거 방향과 미래 방향의 예측 블록 간 차이가 최소가 되게 하는 각 방향의 움직임 벡터를 최적 움직임 정보로 결정(1903)한다.
도 20은 템플릿 매칭 모드 및 양방향 매칭 모드를 설명하기 위한 도면이다.
양방향 매칭 모드(2002)에서 현재 블록의 과거, 미래 방향의 움직임 벡터가 선형적으로 생성된 후, 양방향의 두 예측 블록의 평균으로 현재 블록의 예측 블록을 생성할 수 있다.
템플릿 매칭 모드를 이용할 경우(1904), 복원 영역에서 템플릿 블록의 개수를 결정한다. 단일 템플릿 블록을 사용(1905)할 경우(이하, '단일 템플릿 매칭 모드'라 칭함) 현재 블록 주변과 인접한 좌측, 상단의 복원 영역을 템플릿 블록으로 결정하고, 해당 템플릿 블록을 이용한 움직임 추정(1907)을 통해 최적 움직임 정보를 결정한다.
단일 템플릿 매칭 모드(2001)에서 템플릿 블록과 가장 유사한 템플릿 블록의 예측 블록을 탐색한 후, 해당 템플릿 블록과 인접한 블록을 현재 블록의 예측 블록으로 결정할 수 있다. 움직임 추정의 비용값은 예측 에러의 양과 움직임 정보의 가상 비트량의 합을 의미한다. 예측 에러는 SAD(Sum of Absolute Difference), SATD(Sum of Absolute hadamard Trnasform Difference), SSD(Sum of Square Difference) 등 다양한 계산 방법을 통해서 얻을 수 있다. 수학식 3, 수학식 4, 수학식 5는 각각 SAD, SATD, SSD의 계산 방법을 나타낸 수식이다.
Figure PCTKR2019007328-appb-M000003
Figure PCTKR2019007328-appb-M000004
Figure PCTKR2019007328-appb-M000005
상기 수학식에 있어서, i, j는 화소의 위치, Template(i, j)는 템플릿 블록의 화소를 의미하고, PredBlk(i, j)는 예측 블록의 화소를 의미한다. 여기서, 수학식 4의 HT() 함수는 템플릿 블록과 예측 블록의 차이값 블록을 Hadamard 변환하여 얻어진 함수값을 의미한다. 움직임 정보의 가상 비트량이란 실제로 전송되는 정보는 아니지만, 영상 부호화 장치와 영상 복호화 장치에서 동일하게 예상되는 움직임 정보의 가상 비트량을 계산한 것이다. 예를 들어, 초기 움직임 정보의 움직임 벡터와 현재 움직임 추정 중인 움직임 정보 내 움직임 벡터의 차분 벡터 크기량을 계산하여 가상 비트량으로 결정할 수도 있다. 이 외에 참조 픽쳐 정보에 대한 비트량을 이용하여 움직임 정보 가상 비트량을 계산할 수도 있다. 복수 템플릿 블록을 사용(1906)할 경우(이하, '복수 템플릿 매칭 모드'라 칭함) 복원 영역에서 복수의 템플릿 블록을 결정할 수 있다.
도 21은 템플릿 블록을 설정하는 방법의 예시도이다.
템플릿 블록은 도 21의 도면 부호 2101 내지 2103의 예시도처럼 설정할 수 있다. 템플릿 블록 설정 방법 A(2101)에 따르면, 템플릿 블록을 현재 블록의 좌하단(Template A), 좌상단(Template B), 상좌측(Template C), 상우측(Template D)에서 각각 결정할 수 있다. 각 템플릿 블록의 크기와 모양은 다양하게 결정될 수 있다. 템플릿 블록 설정 방법 B(2102)에 따르면, 템플릿 블록 설정 방법 A와 마찬가지로 템플릿 블록을 현재 블록의 좌하단(Template A), 좌상단(Template B), 상좌측(Template C), 상우측(Template D)에서 결정할 수 있지만, 현재 블록과 인접한 좌측, 상단의 복원 영역을 모두 사용한다 점에서 차이가 있다. 템플릿 블록 설정 방법 C(2103)에 따르면, 템플릿 블록 설정 방법 A와 템플릿 블록 설정 방법 B를 동시에 고려하여 템플릿 블록을 생성할 수 있다. 이 외에 현재 블록과 인접한 좌측, 상단의 복원 영역을 하나의 템플릿 블록으로 결정하여 사용할 수도 있다. 도 21을 참조하여 설명한 바와 같이, 다양한 방법으로 현재 블록 주변의 복원 영역에서 템플릿 블록을 생성할 수 있다. 단, 템플릿 블록의 모양 및 크기를 나타내는 정보를 영상 부호화 장치에서 전송하여 사용할 수도 있다. 결정된 각 템플릿 블록과 가장 유사한 예측 블록을 참조 픽쳐에서 탐색하는 움직임 추정(1907)을 수행한 후, 각 템플릿 블록에 최적인 움직임 정보를 추정하고, 해당 움직임 정보들 중 현재 블록에 가장 적합한 움직임 정보를 탐색하여 최적 움직임 정보로 결정한다. 이 최적 움직임 정보의 색인 정보(즉, 템플릿 블록의 색인 정보를 전송하는 것과 같음)를 전송할 수도 있다.
이와 같이, 화면 간 예측 모드에서는 4가지 예측 모드들을 이용하여 주 예측 정보를 생성할 수 있다. 이 외에 주 예측 정보를 생성하기 위한 추가적인 화면 간 예측 모드가 사용될 수도 있다. 추가적인 부 예측 정보들을 유도하는 방법은 다양할 수 있다.
주 예측 정보가 SKIP 모드 혹은 MERGE 모드로 생성된 움직임 정보일 경우, 1-a 방법은 SKIP, MERGE 모드의 후보 움직임 정보 리스트에 있는 또 다른 후보 움직임 정보와 가중합할 수도 있다. 이 때 부 예측 정보에 해당하는 또 다른 후보 움직임 정보는 후보 움직임 정보의 색인 정보를 전송할 수도 있고, 전송하지 않고 주 예측 정보에 해당하는 후보 움직임 정보의 차순위 움직임 정보로 약속하여 사용하는 등 기 설정된 후보 움직임 정보를 부 예측 정보로 결정할 수도 있다. 1-b 방법은 현재 블록 주변의 복원된 움직임 정보를 초기 움직임 정보로 이용하여 추가적인 움직임 추정을 수행하여 결정된 움직임 정보와 가중합할 수도 있다. 이 때 부 예측 정보에 해당하는 움직임 정보는 예측 방향, 참조 픽쳐, 2D 움직임 벡터가 아닌 다른 파라미터를 이용하여 움직임을 표현할 수도 있다. 예를 들어, 3D(픽쳐 간 거리, X좌표, Y좌표) 움직임 벡터로써 표현할 수도 있다. 또한, 일부 움직임 정보만을 전송할 수도 있다. 예를 들어 예측 방향을 전송하지 않고, SKIP, MERGE 모드의 움직임 정보의 예측 방향과 반대 방향으로 무조건적으로 결정하게 할 수도 있다. 1-c 방법은 DMVD 모드로 생성된 움직임 정보와 가중합할 수도 있다. 이 때 부 예측 정보에 해당하는 움직임 정보는 DMVD 모드의 템플릿 매칭 모드, 양방향 매칭 모드를 이용하여 유도할 수 있는데 각 모드 별로 결정된 움직임 정보 중, 어떤 모드의 최적 움직임 정보와 가중합 하는 것이 좋은지를 결정하여 해당 모드 정보를 전송할 수도 있다.
주 예측 정보가 AMVP 모드로 생성된 움직임 정보일 경우, 2-a 방법은 SKIP, MERGE 모드의 후보 움직임 정보들 중, 하나를 선택하여 가중합 할 수도 있다. 이 때 부 예측 정보에 해당하는 후보 움직임 정보의 색인 정보를 전송할 수도 있고, 기 설정된 후보 움직임 정보를 무조건적으로 사용할 수도 있다. 예를 들어 우선 순위가 가장 높은 후보 움직임 정보와 무조건적으로 가중합할 수도 있다. 2-b 방법은 1-b의 방법처럼 추가적인 움직임 추정을 통하여 결정된 움직임 정보를 부 예측 정보로 결정할 수 있다. 이 때 주 예측 정보의 움직임 정보를 유도할 때 사용된 초기 움직임 정보를 제외한 다른 초기 움직임 정보를 이용하여 움직임 추정을 수행한다. 이것을 제외하곤 1-b의 방법과 동일하다. 2-c 방법은 1-c 방법과 동일하다.
주 예측 정보가 DMVD 모드로 생성된 움직임 정보일 경우, 3-a 방법은 1-a 방법과 동일하다. 3-b 방법은 1-b 방법과 동일하다. 3-c 방법은 주 예측 정보로 결정된 DMVD 모드가 양방향 매칭 모드일 경우, 단일 템플릿 블록 매칭 모드의 최적 움직임 정보를 부 예측 정보로 결정한다. 주 예측 정보가 단일 템플릿 블록 매칭 모드일 경우, 반대로 양방향 매칭 모드의 최적 움직임 정보를 부 예측 정보로 결정할 수도 있고, 복수 템플릿 매칭 모드에서 현재 블록에 최적인 서브 템플릿 블록의 움직임 정보를 부 예측 정보로 결정할 수도 있다. 주 예측 정보가 복수 템플릿 블록 매칭 모드일 경우, 주 예측 정보에 해당하는 서브 템플릿 블록의 움직임 정보를 제외하고, 또 다른 서브 템플릿 블록의 움직임 정보를 부 예측 정보로써 결정할 수 있다.
전술한 방법에서 주 예측 정보와 부 예측 정보는 서로 달라야 한다. 또한, 1개의 부 예측 정보가 아닌 2개 이상의 부 예측 정보를 이용하는 것도 가능하다. 주 예측 정보와 부 예측 정보를 이용하여 생성된 예측 블록 별로 적용되는 가중치는 기 설정된 주 예측 정보, 부 예측 정보의 가중치 세트 중, 임의의 세트 정보를 전송하여 가중치 정보를 결정할 수도 있다. 가중치는 음수가 될 수도 있으며, 예측 블록 별 할당되는 가중치의 합은 1이다.
도 24 내지 도 28은 부 예측 정보가 1개일 경우에 대해서 주 예측 정보와 부 예측 정보를 이용한 예측 블록 간 가중합 방법을 설명하기 위한 도면이다. 해당 도면들에서 예측 블록 A가 주 예측 정보로 생성된 예측 정보이고, 예측 블록 B가 부 예측 정보로 생성된 예측 정보이다. 또한 예측 블록 A, B의 크기는 4x4로 가정하며, 예측 블록 A와 예측 블록 B에서 동일 위치의 예측 화소끼리 적용된 가중치를 이용하여 가중합을 수행한다.
도 24는 예측 블록에 단일 가중치를 적용하는 방법을 설명하기 위한 도면이다.
도 24에 따르면, 예측 블록 A의 모든 화소에 가중치 W1을, 예측 블록 B의 모든 화소에 가중치 W2를 적용하여 가중합을 수행하고 최종 예측 블록을 생성할 수 있다.
도 25는 예측 블록에 복수의 가중치를 적용하는 방법을 설명하기 위한 도면이다.
도 25에 따르면, 예측 블록 A를 세로 방향으로 N개의 임의 영역을 나누고, 각 임의 영역 별로 가중치를 달리둔다. 본 예시에서는 4개의 임의 영역으로 나누어 예측 블록 A에는 각 영역 별로 좌측부터 W1, W2, W3, W4의 가중치를 적용하고 예측 블록 B에는 각 영역 별로 좌측부터 W5, W6, W7, W8의 가중치를 적용한다. 여기서 W1, W5의 합, W2, W6 합, W3, W7의 합, W4, W9의 합은 1이다. 이렇게 가중치가 결정된 후, 가중합을 수행하고 최종 예측 블록을 생성한다.
도 26은 예측 블록에 복수의 가중치를 적용하는 다른 방법을 설명하기 위한 도면이다.
도 26에 따른 방법은 N개의 임의 영역을 가로 방향으로 나눈 것을 제외하고 도 25에 따른 방법과 동일하다.
도 27 및 도 28은 예측 블록 전체 영역에 가중합을 적용하는 것이 아니라 일부 영역에 가중합을 적용하는 방법에 대한 예시이다.
도 27은 예측 블록의 일부 영역에만 가중치를 적용하는 방법을 설명하기 위한 도면이다.
도 27에 따르면, 예측 블록 A, B의 좌상단 영역에만 가중치를 적용할 수 있다. 도 27을 참조하면 좌상단 4개 화소를 좌상단 영역으로 결정하고, 예측 블록 A, B에서 해당 영역에 해당하는 예측 화소들만 가중합하여 최종 예측 블록을 생성한다.
도 28은 예측 블록의 일부 영역에만 가중치를 적용하는 다른 방법을 설명하기 위한 도면이다.
도 28에 따른 방법은 가중합 영역이 예측 블록의 우하단 영역이라는 것으로 제외하곤 도 27에 따른 방법과 동일하다.
또한, 도 27, 도 28의 예측 블록 A, B의 예측 화소에 적용되는 가중치는 각각 W1, W2이며 가중치의 합은 1이다.
가중합 방법은 가중합되는 주 예측 정보와 부 예측 정보의 종류에 따라서 기 설정된 가중합 방법과 가중치 정보를 사용할 수도 있다. 또한, 3개 이상의 예측 블록이 가중합 될 경우, 각 예측 블록을 한번에 가중합 하는 것이 아니라 주 예측 정보와 제1 부 예측 정보를 먼저 가중합 한 후, 결과 예측 블록에 제2 부 예측 정보, 제3 부 예측 정보를 순차적으로 2개 예측 블록으로만 가중합시키는 등의 방법 또한 가능하다.
(실시예 2)
본 실시예에서는 화면 내 예측 모드의 예측 정보와 추가적인 화면 내 예측 모드의 예측 정보를 이용하여 가중합 예측 블록을 생성하는 방법에 대해서 설명할 것이다.
가중합 예측 블록 생성 방법을 구체적으로 설명하기에 앞서, 본 실시예에서 필요로 하는 예측 정보를 생성하는 예측 모드들에 대해서 상세히 설명할 것이다. DIMD 모드란 영상 부호화 장치와 영상 복호화 장치에서 화면 내 예측 정보의 부호화/복호화 없이 화면 내 예측 모드를 동일하게 생성하여 예측 블록을 생성하는 방법을 의미한다.
도 22는 화면 내 예측 모드에서 현재 블록 주변의 복원 영역에서 템플릿 영역을 이용한 템플릿 매칭 기술을 설명하기 위한 도면이다.
도 22에서 현재 블록 주변의 복원 영역에서 템플릿 영역을 결정한다. 템플릿 영역의 크기는 다양하게 결정될 수 있다. 이후, 템플릿 영역의 주변에서 템플릿 영역의 참조 영역을 결정한다. 이 참조 영역의 복원 화소들을 이용하여 템플릿 영역을 화면 내 예측하고, 예측된 값과 템플릿 영역의 복원값 간 차이, 즉 예측 에러의 양을 템플릿 매칭 비용값으로 결정한다. 예측 에러의 양 계산 방법은 전술한 SAD, SATD, SSD 등 다양한 방법이 사용될 수 있다.
도 23은 크로마 블록을 위한 LM(Linear Mode) 모드를 설명하기 위한 도면이다.
크로마 블록에서 LM 모드를 이용한 예측 블록은 수학식 6을 참조하여 생성될 수 있다.
Figure PCTKR2019007328-appb-M000006
여기서, predC(i, j)는 크로마 블록의 위치(i, j) 별 예측 화소를 의미하고, rec'L(i, j)는 루마 블록의 최적 화면 내 예측 모드를 이용하여 얻어진 다운 샘플링된 복원 화소를 의미한다. α, β는 선형 회귀 방법을 이용하여 루마 블록 주변의 템플릿 영역의 복원 화소와 크로마 블록 주변의 템플릿 영역의 복원 화소 간의 차이를 최소화시켜주기 위한 선형 회귀 파라미터이다. 선형 회귀 파라미터 α, β는 수학식 7을 참조하여 유도될 수 있다.
Figure PCTKR2019007328-appb-M000007
여기서, L(n)은 다운샘플링된 루마 블록 주변의 템플릿 영역 복원 화소를 의미하고, C(n)은 크로마 블록 주변의 템플릿 영역 복원 화소를 의미한다. 이와 같은 방법을 통해 크로마 블록의 예측 블록을 생성하는 모드가 LM 모드이다. 루마 블록과 크로마 블록 주변의 템플릿 영역은 도면 부호 2301에 도시된 바와 같이 결정될 수 있다.
이와 같이, 화면 내 예측 모드에서는 DC, Planar, 방향성 모드(이하, 'Norma Intra 모드'라 칭함)를 포함한 DIMD 모드까지 총 4가지 예측 모드들을 이용하여 Luma 블록의 주 예측 정보를 생성할 수 있고, 여기에 크로마 블록에서는 LM 모드를 이용하여 주 예측 정보를 생성할 수도 있다. 이 외에 주 예측 정보를 생성하기 위한 추가적인 화면 간 예측 모드가 사용될 수도 있다. 추가적인 부 예측 정보들을 유도하는 방법은 다양할 수 있다.
루마 블록의 주 예측 정보가 Normal Intra 모드로 생성된 화면 내 예측 모드일 경우, 4-a 방법은 주 예측 정보에 해당하는 화면 내 예측 모드를 제외하고, 다른 화면 내 예측 모드를 부 예측 정보로 결정할 수 있다. 이 때 부 예측 정보인 화면 내 예측 모드는 MPM 후보 리스트 중 하나인 예측 모드를 선택할 수 있는데 이 경우에는 후보 색인 정보를 전송할 수도 있고, 우선 순위가 가장 높은 후보 화면 내 예측 모드를 고정하여 부 예측 정보로 이용할 수도 있다. 4-b 방법은 주 예측 정보에 해당하는 화면 내 예측 모드를 제외하고, DIMD 모드로 결정된 화면 내 예측 모드를 부 예측 정보로 이용할 수도 있다.
루마 블록의 주 예측 정보가 DIMD 모드로 생성된 화면 내 예측 모드일 경우, 5-a 방법은 주 예측 정보에 해당하는 화면 내 예측 정보를 제외하고, MPM 후보 리스트에 있는 화면 내 예측 모드들 중 하나를 부 예측 정보로 결정할 수도 있다. 이 때 MPM 후보 모드 정보를 전송할 수도 있고, 우선 순위가 가장 높은 후보 화면 내 예측 모드를 고정하여 부 예측 정보로 이용할 수도 있다. 5-b 방법은 DIMD 모드로 유도된 또 다른 화면 내 예측 모드를 부 예측 정보로 이용하는 것이다. 이 때, 부 예측 정보인 화면 내 예측 모드는 DIMD 모드 수행 시 템플릿을 일부만 이용하여 유도할 수도 있고, 전체 템플릿을 이용하여 유도할 수도 있다.
크로마 블록의 주 예측 정보가 LM 모드로 생성된 화면 내 예측 모드일 경우, 6-a 방법은 도 23의 도면 부호 2302를 참조한다. LM 모드에서 루마 블록, 크로마 블록의 복원 영역 내 템플릿 영역에서 선형 회귀 파라미터 1세트만을 유도하여 수학식 6을 이용해 크로마 블록의 예측 블록을 생성할 수 있지만 2세트 이상의 선형 회귀 파라미터 이용하여 각 세트 별 선형 회귀 파라미터를 수학식 6을 이용하여 예측 블록을 각각 생성 후, 이를 가중합 할 수도 있다. 도면 부호 2302는 LM 모드에서 선형 회귀 파라미터 α, β를 2세트 유도하는 예시이다. 루마 블록 주변 템플릿 영역의 복원 화소들을 임의의 임계점을 기준으로 나누고, 임계값을 기준으로 나뉜 A 영역의 루마 복원 화소와 크로마 블록 주변 템플릿 영역에서 A 영역에 포함되는 루마 블록 주변 템플릿 영역의 복원 화소와 동일 위치에 해당하는 화소들을 이용하여 각각 따로 선형 회귀 파라미터를 유도한다. B 영역의 선형 회귀 파라미터도 마찬가지의 방법으로 유도한다. 유도된 선형 회귀 파라미터 2세트를 각각 수학식 6을 이용하여 예측 블록들을 생성하고, 생성된 예측 블록 간 가중합을 수행하여 최종 예측 블록을 생성할 수 있다.
전술한 방법에서 주 예측 정보와 부 예측 정보는 서로 달라야 한다. 또한, 1개의 부 예측 정보가 아닌 2개 이상의 부 예측 정보를 이용하는 것도 가능하다. 주 예측 정보와 부 예측 정보를 이용하여 생성된 예측 블록 별로 적용되는 가중치는 기 설정된 주 예측 정보, 부 예측 정보의 가중치 세트 중, 임의의 세트 정보를 전송하여 가중치 정보를 결정할 수도 있다. 가중치는 음수가 될 수도 있으며, 예측 블록 별 할당되는 가중치의 합은 1이다.
도 24 내지 도 28에 대한 설명은 전술한 설명과 동일하며, 결정된 주 예측 정보, 부 예측 정보, 가중합 방법, 가중치 정보 등이 가중합 예측 정보로 결정되어 전송될 수 있으나, 일부 정보는 영상 부호화 장치와 영상 복호화 장치에서 기 설정되어 사용될 수도 있다.
가중합 방법은 가중합되는 주 예측 정보와 부 예측 정보의 종류에 따라서 기 설정된 가중합 방법과 가중치 정보를 사용할 수도 있다. 또한, 3개 이상의 예측 블록이 가중합 될 경우, 각 예측 블록을 한번에 가중합 하는 것이 아니라 주 예측 정보와 제1 부 예측 정보를 먼저 가중합 한 후, 결과 예측 블록에 제2 부 예측 정보, 제3 부 예측 정보를 순차적으로 2개 예측 블록으로만 가중합시키는 등의 방법 또한 가능하다.
(실시예 3)
본 실시예에서는 화면 간 예측 모드의 예측 정보와 추가적인 화면 내 예측 모드의 예측 정보 혹은 화면 내 예측 모드의 예측 정보와 추가적인 화면 간 예측 정보를 이용하여 가중합 예측 블록을 생성하는 방법에 대해서 설명할 것이다.
주 예측 정보가 Normal Intra 모드 혹은 DIMD 모드로 생성된 화면 내 예측 모드일 경우, SKIP, MERGE, AMVP, DMVD 모드들 중, 부 예측 정보로써 최적인 예측 모드를 선택한 후 해당 모드의 움직임 정보를 부 예측 정보로써 결정할 수 있다. 부 예측 정보의 움직임 정보는 주 예측 모드와 동일한 방식으로 모두 전송할 수도 있지만, 일부 움직임 정보만을 전송할 수도 있고, 전송하지 않고 영상 부호화 장치와 영상 복호화 장치에서 기 설정된 예측 정보만을 이용하여 부 예측 정보로 결정할 수도 있다.
주 예측 정보가 SKIP, MERGE, AMVP, DMVD 모드로 생성된 움직임 정보일 경우, Normal Intra 모드 혹은 DIMD 모드로 결정된 화면 내 예측 모드를 부 예측 정보로써 결정할 수 있다. 예컨대, MERGE 모드의 경우, 주 예측 정보는 머지 인덱스일 수 있다. 부 예측 정보인 화면 내 예측 모드 정보는 화면 내 예측 모드 개수를 줄여서 일부 화면 내 예측 모드에 대해서만 결정할 수도 있다. 일부 화면 내 예측 모드는 이용 가능한 모든 화면 내 예측 모드들 중 일부만을 의미할 수 있다. 예컨대, 일부 화면 내 예측 모드는 비방향성 모드를 의미할 수 있다. 또는 고정된 하나의 화면 내 예측 모드만을 디폴트 모드로 사용할 수 있다. 예컨대, 디폴트 모드는 Planar 모드일 수 있다.
1개의 부 예측 정보가 아닌 2개 이상의 부 예측 정보를 이용하는 것도 가능하다. 주 예측 정보와 부 예측 정보를 이용하여 생성된 예측 블록 별로 적용되는 가중치는 기 설정된 주 예측 정보, 부 예측 정보의 가중치 세트 중, 임의의 세트 정보를 전송하여 가중치 정보를 결정할 수도 있다. 가중치는 음수가 될 수도 있으며, 예측 블록 별 할당되는 가중치의 합은 1이다.
또는 가중치는 현재 블록의 주변 블록의 예측 모드에 기초하여 결정될 수 있다. 예컨대, 주변 블록은 상단 주변 블록과 좌측 주변 블록일 수 있다. 예컨대, 상단 주변 블록은 현재 블록의 상단 블록들 중 최우측에 존재하는 블록일 수 있다. 예컨대, WxH 크기의 현재 블록의 좌상단 좌표가 (0, 0)일 때, 상단 주변 블록은 (-1, H-1) 좌표의 픽셀을 포함하는 블록일 수 있다. 예컨대, 좌측 주변 블록은 현재 블록의 좌측 블록들 중 최하단에 존재하는 블록일 수 있다. 예컨대, WxH 크기의 현재 블록의 좌상단 좌표가 (0, 0)일 때, 좌측 주변 블록은 (W-1, -1) 좌표의 픽셀을 포함하는 블록일 수 있다. 예컨대, 주변 블록들 중 화면 내 예측된 블록과 화면 간 예측된 블록의 수에 기초하여 가중치를 결정할 수 있다. 예컨대, 주변 블록들 중 화면 내 예측된 블록이 많을 경우, 현재 블록의 화면 내 예측 블록에 화면 간 예측 블록보다 더 큰 가중치를 부여할 수 있다. 예컨대, 상단 주변 블록과 좌측 주변 블록이 모두 화면 내 예측된 경우, 현재 블록의 화면 내 예측 블록과 화면 간 예측 블록에 각각 0.75:0.25의 가중치를 부여할 수 있다. 반대로, 상단 주변 블록과 좌측 주변 블록이 모두 화면 간 예측된 경우, 현재 블록의 화면 내 예측 블록과 화면 간 예측 블록에 각각 0.25:0.75의 가중치를 부여할 수 있다. 상단 주변 블록과 좌측 주변 블록이 각각 화면 간 예측 및 화면 내 예측된 경우, 현재 블록의 화면 내 예측 블록과 화면 간 예측 블록에 각각 0.5:0.5의 가중치를 부여할 수 있다.
도 24 내지 도 28에 대한 설명은 전술한 설명과 동일하며, 결정된 주 예측 정보, 부 예측 정보, 가중합 방법, 가중치 정보 등이 가중합 예측 정보로 결정되어 전송될 수 있으나, 일부 정보는 영상 부호화 장치와 영상 복호화 장치에서 기 설정되어 사용될 수도 있다.
가중합 방법은 가중합되는 주 예측 정보와 부 예측 정보의 종류에 따라서 기 설정된 가중합 방법과 가중치 정보를 사용할 수도 있다. 또한, 3개 이상의 예측 블록이 가중합 될 경우, 각 예측 블록을 한번에 가중합 하는 것이 아니라 주 예측 정보와 제1 부 예측 정보를 먼저 가중합 한 후, 결과 예측 블록에 제2 부 예측 정보, 제3 부 예측 정보를 순차적으로 2개 예측 블록으로만 가중합시키는 등의 방법 또한 가능하다.
도 25 및 도 26에서 주 예측 모드 혹은 부 예측 모드 중 하나가 방향성 화면 내 예측 모드일 경우, 방향성 모드 방향에 따라 가중치 정보를 기 설정할 수 있다. 예를 들어, 수평 방향 모드와 움직임 정보가 가중합될 경우 도 25의 가중합 방법을 사용하며, 방향성 모드에 해당하는 예측 블록에서 W1, W2, W3, W4 순으로 가중치를 높게 할당하고, 움직임 정보로 생성된 예측 블록에는 W4, W3, W2, W1 순으로 가중치를 높게 할당한다. 수직 방향 모드일 경우에는 도 26의 가중합 방법을 사용하며 이외 설명은 전술한 예시와 동일하다.
도 29은 영상 부호화 장치의 구성을 간략하게 나타낸 블록도이다.
도 29을 참조하면, 영상 부호화 장치는 영상을 부호화하는 장치로써 블록 분할부(2901), 예측부(2902), 변환부(2903), 양자화부(2904), 엔트로피 부호화부(2905), 역 양자화부(2906), 역 변환부(2907), 가산부(2908), 인루프 필터부(2909), 메모리부(2910) 및 감산부(2911)를 포함할 수 있다.
도 29에 나타난 각 구성부들은 영상 부호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
블록 분할부(2901)은 입력된 영상을 적어도 하나의 블록으로 분할할 수 있다. 이 때, 입력된 영상은 픽처, 슬라이스, 타일, 브릭, 세그먼트 등 다양한 형태와 크기를 가질 수 있다. 블록은 부호화 단위(CU), 예측 단위(PU) 또는 변환 단위(TU)를 의미할 수 있다. 상기 분할은 쿼드 트리(Quadtree), 이진 트리(Biniary tree) 및 3분할 트리(ternary tree) 중 적어도 하나에 기반하여 수행될 수 있다.
쿼드 트리는 현재 부호화 블록을 정확히 사분하는 분할이다. 이진 트리는 부호화 블록을 가로 방향 혹은 세로 방향으로 정확히 이분하는 분할이다. 3분할 트리는 상위 블록을 3개의 하위 블록으로 분할하는 방식이다. 예컨대, 상기 3개의 하위 블록은 상기 상위 블록의 너비 또는 높이를 1:2:1의 비율로 분할함으로써 획득될 수 있다. 전술한 바이너리 트리 기반의 분할을 통해, 블록은 정방형뿐만 아니라 비정방형의 형태를 가질 수 있다. 또한, 여러 분할 방법들을 동시에 고려하여 분할해 나가는 방법도 가능하다.
블록 분할부(2901)는 최대 크기의 부호화 하고자 하는 블록(이하, 최대 부호화 블록이라 칭함)으로부터 최소 크기의 부호화 하고자 하는 블록(이하, 최소 부호화 블록이라 칭함)까지 분할할 수 있다.
예측부(2902)는 현재 원본 블록에서 현재 예측 하고자 하는 블록(이하, 예측 블록이라 칭함)의 주변 화소나 이전에 이미 부호화/복호화가 끝난 참조 픽쳐 내 화소들을 이용하여 예측 블록을 생성할 수 있다.
예측 블록은 부호화 블록 내에서 1개 혹은 그 이상의 예측 블록들이 생성될 수 있다. 부호화 블록 내 예측 블록이 1개일 경우, 예측 블록은 부호화 블록과 동일한 형태이다.
동영상 신호의 예측 기술에는 화면 내 예측과 화면 간 예측이 있다.
화면 내 예측은 현재 블록의 주변 화소들을 이용하여 예측 블록을 생성하는 방식이다.
화면 간 예측은 이전에 이미 부호화/복호화가 끝난 참조 픽쳐에서 현재 블록과 가장 유사한 블록을 찾아서 예측 블록을 생성하는 방식이다.
한편, 예측부(2902)는 예측 블록 생성 후, 원본 블록과 예측 블록을 뺀 잔차 블록을 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 등 다양한 기법을 이용하여 예측 블록의 최적 예측 모드를 결정할 수 있다. RDO 비용 계산식은 수학식 8과 같다.
Figure PCTKR2019007328-appb-M000008
D, R, J는 각각 양자화에 의한 열화, 압축 스트림의 레이트, RD 비용이고, Φ는 부호화 모드, λ는 라그랑지안 승수(Lagrangian multiplier)로 에러의 양과 비트량 간의 단위를 일치시키기 위한 스케일 보정용 계수로 사용한다. 부호화 과정에서 최적의 부호화 모드로 선택되기 위해서는 해당 모드를 적용했을 때의 J 즉, RD-비용값이 다른 모드를 적용했을 때보다 작아야 하는데, RD-비용값을 구하는 식에는 비트율과 에러를 동시에 고려하여 계산할 수 있다.
도 30는 영상 부호화 장치의 예측부 내의 흐름을 설명한 흐름도이다.
원본 정보와 복원 정보를 이용하여 화면 내 예측을 수행(3001)하는 경우, 각 예측 모드 별로 최적 화면 내 예측 모드를 RD-비용값을 이용하여 결정(3002)하고, 예측 블록을 생성할 수 있다.
원본 정보와 복원 정보를 이용하여 화면 간 예측을 수행(3003)하는 경우, SKIP 모드, MERGE 모드, AMVP 모드에 대해서 RD-비용값을 계산한다.
MERGE 후보 탐색부(3004)에서는 SKIP 모드와, MERGE 모드를 위한 후보 움직임 정보 세트를 구성할 수 있다. 그리고, 해당 후보 움직임 정보 세트 중, 최적 움직임 정보를 RD-비용값을 이용하여 결정(3005)할 수 있다.
AMVP 후보 탐색부(3006)에서는 AMVP 모드를 위한 후보 움직임 정보 세트를 구성할 수 있다. 그리고, 해당 후보 움직임 정보 세트들을 이용하여 움직임 추정을 수행(3007)하고, 최적 움직임 정보를 결정할 수 있다.
각 모드들에서 결정된 최적 움직임 정보를 이용하여 움직임보상을 수행(3008)하여 예측 블록을 생성될 수 있다.
전술한 화면 간 예측은 3가지 모드(SKIP 모드, MERGE 모드, AMVP 모드)로 구성되어 있을 수 있다. 각 예측 모드에 따라 움직임 정보(예측 방향 정보, 참조 픽쳐 정보, 움직임 벡터)는 부호화될 수 있다.
SKIP 모드는 이미 복원된 영역의 움직임 정보를 이용하여 최적 예측 정보를 결정할 수 있다. SKIP 모드에서는 복원된 영역 내에서 움직임 정보 후보군을 구성하고, 해당 후보군 중, RD-비용값이 최소인 후보를 예측 정보로 사용하여 예측 블록을 생성할 수 있다. 여기서 움직임 정보 후보군을 구성하는 방법은 하기 설명할 MERGE 모드의 움직임 정보 후보군을 구성하는 방법과 동일하므로, 본 설명에서는 생략한다.
MERGE 모드는 이미 복원된 영역의 움직임 정보를 이용하여 최적 예측 정보를 결정한다는 점에서 SKIP 모드와 동일하다. 그러나 SKIP 모드는 예측 에러가 0이 되도록 하는 움직임 정보를 움직임 정보 후보군에서 탐색하고, MERGE 모드는 예측 에러가 0이 아닌 움직임 정보를 움직임 정보 후보군에서 탐색한다는 점에서 차이점이 있다. SKIP 모드와 마찬가지로, 복원된 영역 내에서 움직임 정보 후보군을 구성하여 해당 후보군 중, RD-비용값이 최소인 후보를 예측 정보로 사용하여 예측 블록을 생성할 수 있다.
도 31은 SKIP 모드와 MERGE 모드의 움직임 정보 후보군을 생성하는 방법을 나타낸 것이다. 움직임 정보 후보군의 최대 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일하게 결정할 수도 있고, 영상 부호화 장치의 상위 헤더(상위 헤더란, 비디오 파라미터단, 시퀀스 파라미터단, 픽쳐 파라미터단 등 블록의 상위단에서 전송되는 파라미터들을 의미함)에서 해당 개수 정보가 기 전송될 수도 있다.
도 31을 참고하면, S3101 단계에서는 동일 픽쳐 내에서 현재 블록 주변의 공간적 후보 블록 5개 중, 4개 후보가 선택될 수 있다. 도 33는 공간적 후보의 위치을 나타내는 도면이다. 한편, 공간적 후보들의 위치는 복원된 영역 내에서 어떤 블록으로든 변경 가능하다. 공간적 후보는 A1, A2, A3, A4, A5 순으로 고려하여 먼저 사용 가능한 공간적 후보 블록의 움직임 정보를 공간적 후보로 결정될 수 있다. 여기서, 중복되는 움직임 정보가 있을 경우, 우선 순위가 높은 후보의 움직임 정보만 고려될 수 있다.
S3102 단계에서는 시간적 후보 블록 2개 중, 1개 후보가 선택될 수 있다. 도 33에서는 시간적 후보의 위치를 나타낸다. 각 후보들의 위치는 Collocated 픽쳐 내에서 현재 픽쳐의 현재 블록 위치와 동일한 위치의 블록을 기준으로 결정될 수 있다. 여기서, Collocated 픽쳐는 복원 픽쳐 내에서 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 설정될 수 있다. 시간적 후보는 B1, B2 블록 순으로 고려하여 먼저 사용 가능한 후보 블록의 움직임 정보를 시간적 후보로 결정될 수 있다.
시간적 후보의 움직임 정보를 결정하는 방법은 도 34을 참고한다.
도 34을 참고하면, Collocated 픽쳐 내의 후보 블록(B1, B2) 움직임 정보는 참조 픽쳐 B에 있는 예측 블록을 가리키고 있다. (단, 각 후보 블록의 참조 픽쳐는 서로 다를 수 있음. 본 설명에서는 편의상 이를 모두 참조 픽쳐 B라고 표현함) 해당 움직임 벡터를 Collocated 픽쳐와 참조 픽쳐 B의 거리 및 현재 픽쳐와 참조 픽쳐 A의 거리의 비율을 계산하여 해당 비율만큼 후보 블록의 움직임 벡터를 스케일하여 유도된 움직임 벡터를 시간적 후보 움직임 정보의 움직임 벡터로 결정될 수 있다. 수학식 9는 스케일링 수식을 의미한다.
Figure PCTKR2019007328-appb-M000009
여기서, MV는 시간적 후보 블록 움직임 정보의 움직임 벡터, MVscale은 스케일링된 움직임 벡터, TB는 Collocated 픽쳐와 참조 픽쳐 B의 시간적 거리, TD는 현재 픽쳐와 참조 픽쳐 A의 시간적 거리를 의미한다. 또한, 참조 픽쳐 A, 참조 픽쳐 B는 동일한 참조 픽쳐일 수도 있다. 이렇게 스케일링된 움직임 벡터를 시간적 후보의 움직임 벡터로 결정하고, 시간적 후보 움직임 정보의 참조 픽쳐 정보는 현재 픽쳐의 참조 픽쳐로 결정하여, 시간적 후보의 움직임 정보를 유도할 수 있다.
한편, S3101 단계와 S3102 단계에서 공간적 후보 블록과 시간적 후보 블록이 화면 간 예측 모드로 부호화 되었을 때에만, 해당 움직임 정보를 움직임 정보 후보군에 포함시킬 수 있다.
S3103 단계는 S3101, S3102 단계에서 최대 움직임 정보 후보군 개수를 채우지 못했을 경우에만 수행되며, 이전 단계에서 유도된 움직임 정보 후보들의 조합으로 새로운 양방향 움직임 정보 후보군을 추가하는 단계이다. 양방향 움직임 정보 후보란, 이전까지 유도된 과거 혹은 미래 방향의 움직임 정보들을 하나씩 가져와서 새로운 후보로 조합하여 만들어내는 것이다.
도 35의 표는 양방향 움직임 정보 후보 조합의 우선순위를 나타낸 것이다. 도 35의 표의 조합 이외에 추가적인 조합이 나올 수 있으며, 본 표는 하나의 예시를 나타낸 것이다. 양방향 움직임 정보 후보를 이용하여도 최대 움직임 정보 후보군 개수를 채우지 못했을 경우, S3104 단계가 수행될 수 있다. S3104 단계에서는 움직임 정보 후보의 움직임 벡터를 제로 움직임 벡터로 고정하고, 예측 방향에 따른 참조 픽쳐를 달리하여서 최대 움직임 정보 후보군의 개수를 만족시킬 수 있다.
AMVP 모드는 예측 방향에 따른 참조 픽쳐 별로 움직임 추정을 거쳐 최적 움직임 정보를 결정할 수 있다. 여기서, 예측 방향은 과거/미래 중 한 방향만을 사용하는 단방향 일수도 있고, 과거와 미래 방향 모두를 사용하는 양방향 일수도 있다. 움직임 추정을 통해 결정된 최적 움직임 정보를 이용하여 움직임 보상을 수행하여 예측 블록이 생성될 수 있다. 여기서, 예측 방향에 따른 참조 픽쳐마다 움직임 추정을 위한 움직임 정보 후보군이 유도될 수 있다. 해당 움직임 정보 후보군은 움직임 추정의 시작 지점으로 사용될 수 있다.
도 32는 AMVP 모드의 움직임 추정을 위한 움직임 정보 후보군을 유도하는 방법을 나타내는 흐름도이다. 여기서, 움직임 정보 후보군의 최대 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일하게 결정할 수도 있고, 영상 부호화 장치의 상위 헤더에서 해당 개수 정보가 기 전송될 수도 있다.
도 32를 참고하면, S3201 단계에서는 도 31의 S3101 단계의 설명과 다르게, 공간적 후보로서 유도되는 개수(2개)가 다를 수 있고, 공간적 후보를 선택하기 위한 우선 순위 또한 다를 수 있다. 이외의, S3201의 설명은 S3101 단계와 동일하므로, 중복 설명은 생략한다.
S3202 단계 또한 S3102 단계의 설명과 동일하므로, 중복 설명은 생략한다.
S3203 단계에서는 현재까지 유도된 후보들 중, 중복되는 움직임 정보가 있는 경우, 이를 제거할 수 있다.
S3204 단계 또한 S3104 단계의 설명과 동일하므로, 중복 설명은 생략한다.
위와 같이 유도된 움직임 정보 후보들 중, RD-비용값이 최소인 움직임 정보 후보를 최적 움직임 정보 후보로 선택하여 해당 움직임 정보를 기준으로 움직임 추정 과정을 거쳐 AMVP 모드의 최적 움직임 정보를 구할 수 있다.
한편, S3201 단계와 S3202 단계의 설명에서 공간적 후보 블록과 시간적 후보 블록이 화면 간 예측 모드로 부호화 되었을 때에만, 해당 움직임 정보를 이용하여 유도된 움직임 정보를 움직임 정보 후보군에 포함시킬 수 있다.
변환부(2903)는 원본 블록과 예측 블록의 차이인 잔차 블록을 변환하여 변환 블록을 생성한다. 변환 블록은 변환 및 양자화 과정을 위해 사용되는 가장 작은 단위이다. 변환부(2903)는 잔차 신호를 주파수 영역으로 변환하여 변환 계수를 가지는 변환 블록을 생성한다. 여기서 잔차 신호를 주파수 영역으로 변환하는 방법으로는 이산 코사인 변환(DCT: Discrete Cosine Transform)기반 변환, 이산 사인 변환(DST: Discrete Sine Transform), KLT(Karhunen Loeve Transform) 등 다양한 변환 기법이 이용될 수 있으며, 이를 이용하여 잔차 신호가 주파수 영역으로 변환되어 변환 계수가 생성될 수 있다. 변환 기법을 편하게 사용하기 위해 기저벡터(basis vector)를 이용하여 행렬 연산을 하게 되는데 예측 블록이 어떤 예측 모드로 부호화 되었는지에 따라서 행렬 연산 시 변환 기법들을 다양하게 섞어 사용할 수 있다. 예를 들어, 화면 내 예측 시 예측 모드에 따라 가로 방향으로는 이산 코사인 변환이 사용되고 세로 방향으로는 이산 사인 변환이 사용될 수 있다.
양자화부(2904)는 변환 블록을 양자화 하여 양자화된 변환 블록을 생성한다. 즉, 양자화부(2904)는 변환부(2903)로부터 생성되는 변환 블록의 변환 계수들을 양자화 하여 양자화된 변환 계수를 가지는 양자화된 변환 블록(Quantized Transform Coefficient)을 생성할 수 있다. 양자화 방법으로는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization) 또는 양자화 가중치 행렬 (Quantization Weighted Matrix) 등이 이용될 수 있지만, 이를 개량한 양자화 등 다양한 양자화 방법이 이용될 수 있다.
한편, 이상에서는 영상 부호화 장치가 변환부(2903) 및 양자화부(2904)를 포함하는 것을 도시하고 설명했지만, 변환부 및 양자화부는 선택적으로 영상 부호화 장치에 포함될 수 있다. 즉, 영상 부호화 장치는 잔차 블록을 변환하여 변환 블록을 생성하고 양자화 과정은 수행하지 않을 수 있으며, 잔차 블록을 주파수 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 심지어는 변환과 양자화 과정을 모두 수행하지 않을 수 있다. 영상 부호화 장치에서 변환부와 양자화부 중 일부 과정이 수행되지 않거나, 모든 과정이 수행되지 않더라도 엔트로피 부호화부의 입력으로 들어가는 블록을 통상적으로 '양자화된 변환 블록'이라 일컫는다.
엔트로피 부호화부(2905)는 양자화된 변환 블록을 부호화하여 비트스트림을 출력한다. 즉, 엔트로피 부호화부(2905)는 양자화부(2904)로부터 출력되는 양자화된 변환 블록의 계수들을 엔트로피 부호화(Entropy Encoding) 등 다양한 부호화 기법을 이용하여 부호화하고, 후술하는 영상 복호화 장치에서 해당 블록을 복호화 하는데 필요한 부가적인 정보들(예를 들면, 예측 모드에 대한 정보(예측 모드에 대한 정보란 예측부에서 결정된 움직임 정보 혹은 화면 내 예측 모드 정보 등이 포함될 수 있음), 양자화 계수 등)을 포함하는 비트스트림을 생성하고 출력할 수 있다.
역 양자화부(2906)는 양자화된 변환 블록에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화 변환 블록을 복원한다.
역 변환부(2907)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.
한편, 이상에서는 역 양자화부와 역 변환부는 양자화부와 변환부에서 사용한 양자화 방식과 변환 방식을 역으로 사용하여 역 양자화 및 역 변환할 수 있다. 또한 변환부와 양자화부에서 양자화만을 수행하고 변환을 수행하지 않은 경우에는 역 양자화만을 수행하고 역 변환을 수행하지 않을 수 있다. 만약, 변환 및 양자화를 모두 수행하지 않은 경우, 역 양자화부와 역 변환부도 역 변환 및 역 양자화를 모두 수행하지 않거나 영상 부호화 장치에 포함되지 않고 생략될 수 있다.
가산부(2908)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원한다.
필터부(2909)는 현재 픽쳐 내 모든 블록들이 복원된 이후, 픽쳐 전체에 걸쳐서 추가적으로 필터링 해주는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset) 등이 있다. 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, SAO(Sample Adaptive Offset)란 복원 화소에 특정 값을 감산하거나 가산함으로써, 복원 영상과 원본 영상간 차이를 최소화시키는 작업을 말한다.
메모리(2910)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용될 수 있다.
감산부(2911)는 현재 원본 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다.
도 36은 영상 부호화 장치에서 부호화 정보의 부호화 흐름을 나타낸 흐름도이다.
도 36을 참고하면, S3601 단계에서는 SKIP 모드의 동작 정보를 부호화한다.
그리고, S3602 단계에서는 SKIP 모드의 동작 여부를 판단한다. S3602 단계에서 SKIP 모드가 동작한다면 S3607 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료할 수 있다.
반대로, S3602 단계에서 SKIP 모드가 동작하지 않는다면 S3603 단계에서 예측 모드를 부호화한다.
그리고, S3604 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S3604 단계에서 예측 모드가 화면 내 예측 모드였다면, S3608 단계에서 화면 내 예측 모드 정보들을 부호화한 후, 본 흐름도를 종료할 수 있다.
반대로, S3604 단계에서 예측 모드가 화면 간 예측 모드였다면, S3605 단계에서 MERGE 모드의 동작 정보를 부호화한다.
그리고, S3606 단계에서는 MERGE 모드의 동작 여부를 판단한다. S3606 단계에서 MERGE 모드가 동작한다면 S3607 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료할 수 있다.
반대로, S3606 단계에서 MERGE 모드가 동작하지 않는다면 S3609 단계에서 예측 방향을 부호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다.
그리고, S3610 단계에서는 예측 방향이 미래방향인지 아닌지를 판단한다. S3610 단계에서 예측 방향이 미래 방향이 아니었다면 S3611 단계에서 과거 방향의 참조 픽쳐 색인 정보를 부호화한다. 그리고, S3612 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 부호화한다. 그리고, S3613 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 부호화한다.
반대로, S3610 단계에서 예측 방향이 미래 방향 혹은 양방향이거나 S3613 단계가 끝나면 S3614 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. 그리고, S3614 단계에서 예측 방향이 과거 방향이 아니었다면 S3615 단계에서 미래 방향 참조 픽쳐 색인 정보를 부호화한다. 그리고, S3616 단계에서는 미래 방향의 MVD 정보를 부호화한다. S3617 단계에서는 미래 방향의 MVP 정보를 부호화한 후, 본 흐름도를 종료할 수 있다.
도 37는 영상 복호화 장치의 구성을 간략하게 나타낸 블록도이다.
도 37를 참조하면, 영상 복호화 장치는 영상을 복호화하는 장치로써 엔트로피 복호화부(3701), 역 양자화부(3702), 역 변환부(3703), 예측부(3704), 가산부(3705), 인루프 필터부(3706) 및 메모리부(3707)를 포함할 수 있다.
도 37에 나타난 각 구성부들은 영상 복호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
영상 부호화 장치에서 부호화 블록은 영상 복호화 장치에서 복호화 블록 또는 그대로 부호화 블록이라 칭해질 수 있다.
엔트로피 복호화부(3701)는 영상 부호화 장치로부터 전송받은 비트스트림을 해석하여 해당 블록을 복호화 하는데 필요한 여러 정보들과 양자화된 변환 계수를 읽어 들일 수 있다.
역 양자화부(3702)는 엔트로피 복호화부에서 복호화한 양자화 계수에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화된 계수를 가지는 역 양자화되 블록을 복원할 수 있다.
역 변환부(3703)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 차분 신호를 가지는 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환할 수 있다.
예측부(3704)는 엔트로피 복호화부에서 복호화한 예측 모드 정보를 이용하여 예측 블록을 생성하는데, 이는 영상 부호화 장치의 예측부에서 수행했던 예측 방식과 동일한 방식이 이용될 수 있다.
가산부(3705)는 역 변환부에서 복원된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원할 수 있다.
필터부(3706)는 현재 픽쳐 내 모든 블록을 복원한 이후, 픽쳐 전체에 걸쳐서 추가적인 필터링은 하는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset) 등이 있으며, 상세한 내용은 기 전술한 영상 부호화 장치의 인루프 필터부에서 설명한 바와 동일하다.
메모리(3707)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용될 수 있다.
도 38은 영상 복호화 장치의 예측부 내의 흐름을 설명한 흐름도이다.
도 38을 참고하면, 예측 모드가 화면 내 예측이라면, 최적 화면 내 예측 모드 정보를 결정(3801)하고, 화면 내 예측을 수행(3802)하여 예측 블록을 생성할 수 있다.
예측 모드가 화면 간 예측이라면, SKIP, MERGE, AMVP 모드 중 최적 예측 모드를 결정(3803)한다. 그리고, SKIP 모드 혹은 MERGE 모드로 복호화할 경우, MERGE 후보 탐색부(3804)에서 SKIP 모드와, MERGE 모드를 위한 후보 움직임 정보 세트를 구성할 수 있다. 해당 후보 움직임 정보 세트 중, 최적 움직임 정보를 결정(3805)할 수 있다.
AMVP 모드로 복호화할 경우, AMVP 후보 탐색부(3806)에서는 AMVP 모드를 위한 후보 움직임 정보 세트를 구성할 수 있다. 해당 후보 움직임 정보 후보들 중, 전송된 MVP 정보를 이용하여 최적 움직임 정보를 결정(3807)할 수 있다. 이후, 각 모드들에서 결정된 최적 움직임 정보를 이용하여 움직임 보상을 수행(3808)하여 예측 블록을 생성할 수 있다.
도 39은 영상 복호화 장치에서 코딩 정보의 복호화 흐름을 나타낸 흐름도이다.
도 39을 참고하면, S3901 단계에서는 SKIP 모드의 동작 정보를 복호화한다.
그리고, S3902 단계에서는 SKIP 모드의 동작 여부를 판단한다. S3902 단계에서 SKIP 모드가 동작한다면 S3907 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료할 수 있다.
반대로, S3902 단계에서 SKIP 모드가 동작하지 않는다면 S3903 단계에서 예측 모드를 복호화한다.
그리고, S3904 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S3904 단계에서 예측 모드가 화면 내 예측 모드였다면, S3908 단계에서 화면 내 예측 모드 정보들을 복호화한 후, 본 흐름도를 종료할 수 있다.
한편, S3904 단계에서 예측 모드가 화면 간 예측 모드였다면, S3905 단계에서 MERGE 모드의 동작 정보를 복호화한다.
그리고, S3906 단계에서는 MERGE 모드의 동작 여부를 판단한다. S3906 단계에서 MERGE 모드가 동작한다면 S3907 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료할 수 있다.
반대로, S3906 단계에서 MERGE 모드가 동작하지 않는다면 S3909 단계에서 예측 방향을 복호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다.
그리고, S3910 단계에서는 예측 방향이 미래방향인지 아닌지를 판단한다. S3910 단계에서 예측 방향이 미래 방향이 아니었다면 S3911 단계에서 과거 방향의 참조 픽쳐 색인 정보를 복호화한다. 그리고, S3912 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 복호화한다. 그리고, S3913 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 복호화한다.
한편, S3910 단계에서 예측 방향이 미래 방향 혹은 양방향이거나 S3913 단계가 끝나면 S3914 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. 그리고, S3914 단계에서 예측 방향이 과거 방향이 아니었다면 S3915 단계에서 미래 방향 참조 픽쳐 색인 정보를 복호화한다. 그리고, S3916 단계에서는 미래 방향의 MVD 정보를 복호화한다. 그리고, S3917 단계에서는 미래 방향의 MVP 정보를 복호화한 후, 본 흐름도를 종료할 수 있다.
이하, 본 발명의 다양한 실시예들을 도면들을 참조하면서 보다 상세하게 설명한다.
본 발명의 일 실시 예에 따른 영상 부호화/복호화 방법은 화면 간 예측 모드 중 하나로 DMVD(Deocder-side Motion Vector Derication) 모드를 포함할 수 있다.
DMVD 모드는 영상 부호화 장치에서 일부 혹은 전체의 움직임 정보의 전송 없이 영상 복호화 장치에서 일부 혹은 전체 움직임 정보를 직접 유도하는 모드를 의미할 수 있다.
즉, DMVD 모드는 영상 복호화 장치 자체에서 움직임 정보를 유도하는 모드를 의미할 수 있다. 또는, DMVD 모드는 영상 부호화 장치에서 전송된 정보에 기초하여 유도된 초기 움직임 정보를 영상 복호화 장치 자체에서 보정하는 모드를 의미할 수 있다.
도 40는 본 발명의 일 실시예에 따른 영상 부호화 장치 내 예측부를 설명하는 도면이다.
도 40를 참고하면, 4001~4007 과정은 도 30의 3001~3007 과정과 동일한 과정을 수행할 수 있다. 즉, 4001~4002 과정을 거쳐 결정된 최적 화면 내 예측 모드를 이용하여 예측 블록을 생성하거나, 4003~4007 과정을 거쳐 결정된 최적 움직임 정보를 이용하여 움직임 보상(4010)을 수행하고 예측 블록을 생성할 수 있다.
도 40의 영상 부호화 장치는 추가적으로 화면 간 예측이 수행될 경우 DMVD 모드를 이용한 움직임 정보 결정 방법이 수행할 수 있다. 영상 부호화/복호화 장치에서 동일하게 움직임 추정을 하기 위해 복원 영역의 움직임 정보들을 이용하여 초기 움직임 정보를 결정(4008)할 수 있다. 그리고, 결정된 초기 움직임 정보들을 이용하여 움직임 추정을 수행(4009)하여 최적 움직임 정보를 결정하고, 결정된 최적 움직임 정보를 이용하여 움직임 보상(4010)을 수행하여 예측 블록을 생성할 수 있다. 여기서, 움직임 정보는 움직임 벡터, 참조 픽쳐 인덱스 및 예측 방향 정보 중 적어도 하나를 포함할 수 있다.
도 41은 일 실시예에 따른 영상 복호화 장치 내 예측부를 설명하는 도면이다.
도 41을 참고하면, 4101~4107 과정은 도 38의 3801~3807 과정과 동일한 과정을 수행할 수 있다. 4101~4102 과정을 거쳐 결정된 화면 내 예측 모드를 이용하여 예측 블록을 생성하거나, 4103~4107 과정을 거쳐 결정된 움직임 정보를 이용하여 움직임 보상(4110)을 수행하고 예측 블록을 생성할 수 있다.
도 41의 영상 복호화 장치는 추가적으로 화면 간 예측이 수행될 경우 DMVD 모드를 이용한 움직임 정보 결정 방법이 수행할 수 있다. 영상 부호화/복호화 장치에서 동일하게 움직임 추정을 하기 위해 복원 영역의 움직임 정보들을 이용하여 초기 움직임 정보를 결정(4108)할 수 있다. 그리고, 결정된 초기 움직임 정보들을 이용하여 움직임 추정을 수행(4109)하여 움직임 정보를 결정하고, 결정된 움직임 정보를 이용하여 움직임 보상(4110)을 수행하여 예측 블록을 생성할 수 있다. 즉, DMVD 모드인 경우, 영상 복호화 장치는 초기 움직임 정보를 시그널링 정보 없이 자체적으로 보정하여 움직임 보상에 이용되는 움직임 정보를 유도할 수 있다.
한편, 도 41의 DMVD 초기 움직임 정보 탐색부(4108)는 4104~4105 과정에서 도출되는 MERGE 후보의 움직임 정보를 DMVD 초기 움직임 정보로 결정하거나, 4106~4107 과정에서 도출되는 움직임 정보를 DMVD 초기 움직임 정보로 결정할 수 있다.
도 42는 DMVD 초기 움직임 정보 탐색부(4008, 4108)을 설명하기 위한 도면이다.
도 42의 표를 참고하면, 도 42의 표의 색인은 초기 움직임 정보 우선 순위를 의미할 수 있다. SKIP 모드의 후보 움직임 정보, AMVP 모드의 후보 움직임 정보, MERGE 모드의 후보 움직임 정보, 현재 블록 주변의 상단, 좌측, 좌상단, 우상단, 좌하단 방향에 있는 복원 영역 내 서브 블록이 가지고 있는 움직임 정보, 제로 움직임 정보 중 적어도 하나를 초기 움직임 정보로 이용할 수 있다. 또한, 이외에 복원 정보를 이용하여 유도된 다양한 움직임 정보 후보들을 이용할 수 있다.
위와 같이, 초기 움직임 정보는 도 31 내지 도 35에서 설명한 SKIP 모드, AMVP 모드 또는 MERGE 모드 등의 화면 간 예측 모드를 이용하여 유도되는 움직임 정보일 수 있다.
도 43는 영상 부호화/복호화 장치 내 예측부에서의 DMVD 움직임 추정부(4009, 4109)를 설명하는 도면이다.
영상 부호화 장치는 DMVD 초기 움직임 정보 탐색부에서 결정된 초기 움직임 정보를 이용하여 DMVD 모드를 수행한 후, 최적 움직임 정보를 결정할 수 있다.
영상 복호화 장치는 DMVD 초기 움직임 정보 탐색부에서 결정된 초기 움직임 정보를 이용하여 DMVD 모드를 수행한 후, 움직임 보상에 사용할 움직임 정보를 결정할 수 있다. 여기서, DMVD 모드를 수행한다는 것은 초기 움직임 정보를 보정한다는 의미일 수 있다.
DMVD 모드에는 템플릿을 사용하는 모드(이하, '템플릿 매칭 모드'라 칭함)와 템플릿을 사용하지 않는 모드(이하, '양방향 매칭 모드'라 칭함)가 있을 수 있다.
양방향 매칭 모드를 이용(4301)할 경우, 각 초기 움직임 정보들의 단방향 움직임 벡터를 선형적으로 반대 예측 방향의 참조 픽쳐로 스케일링할 수 있다. 여기서, 움직임 벡터의 스케일링은 현재 픽쳐와 각 방향의 참조 픽쳐들간의 거리에 비례하여 수행될 수 있다. 이렇게 양방향으로 움직임 벡터를 결정(4302)한 후, 과거 방향과 미래 방향의 예측 블록 간 차이가 최소가 되게 하는 각 방향의 움직임 벡터를 최적 움직임 정보로 결정(4304)할 수 있다.
한편, 초기 움직임 정보가 과거 방향의 움직임 정보 및 미래 방향의 움직임 정보를 모두 갖는 양방향 움직임 정보인 경우, 각 방향의 움직임 정보가 지시하는 예측 블록 간의 차이가 최소가 되게 하는 움직임 정보를 최적 움직임 정보로 결정(4304)할 수 있다.
일 예로, 과거 방향의 초기 움직임 벡터가 지시하는 예측 블록 및 미래 방향의 초기 움직임 벡터가 지시하는 예측 블록 간의 차이가 최소가 되게하는 움직임 벡터를 최적 움직임 벡터로 결정할 수 있다. 여기서, 결정된 최적 움직임 벡터는 현재 블록의 움직임 정보로 이용될 수 있다.
도 45은 양방향 매칭 모드에서 현재 블록의 과거, 미래 방향의 움직임 벡터가 지시하는 예측 블록을 기초로 움직임 벡터를 탐색하는 방법을 나타내는 도면이다. 도 45의 각 방향의 예측 블록 간의 차이가 최소가 되게 하는 지점을 탐색하고, 상기 탐색된 지점을 지시하도록 각 방향의 움직임 벡터를 보정할 수 있다. 이때, 보정된 움직임 벡터는 최적 움직임 벡터 또는 움직임 보상(또는 화면 간 예측)에 사용되는 움직임 벡터로 이용할 수 있다.
템플릿 매칭 모드를 이용(4305)할 경우, 복원 영역에서 템플릿 영역이 결정(4306)될 수 있다. 현재 블록 주변과 인접한 좌측, 상단의 복원 영역을 템플릿 블록으로 결정하는 등 다양한 방법으로 템플릿 블록의 크기와 모양이 결정될 수 있다. 해당 템플릿 블록을 이용한 움직임 추정(4307)을 통해 최적 움직임 정보가 결정될 수 있다. 도 44은 템플릿 매칭 모드에서 템플릿 블록과 가장 유사한 템플릿 블록의 예측 블록을 탐색한 후, 해당 템플릿 블록과 인접한 블록을 현재 블록의 예측 블록으로 결정하는 방법을 설명한 그림이다.
양방향 매칭 모드 및 템플릿 매칭 모드의 최적 움직임 정보를 탐색하는 과정에서는 탐색 패턴이 다양하게 결정될 수 있다. 여기서, 최적 움직임 정보를 탐색하는 과정은 움직임 추정 과정일 수 있다.
도 46은 다이아몬드 모양의 탐색 패턴으로 탐색하는 과정을 예시한 도면이다.
도 46을 참고하면, P1은 탐색의 시작점으로 P1을 포함하여 다이아몬드 모양 내에 위치한 화소 S1들에 대해서 움직임추정의 비용값이 계산될 수 있다. 여기서, P1은 초기 움직임 정보에 기초하여 결정될 수 있다.
이를 계산 후, 비용값이 가장 작았던 지점 P2를 기준으로 다시 다이아몬드 모양 내에 위치한 화소 S2들에 대해서 움직임 추정의 비용값이 계산하고, 비용값이 가장 작았던 지점 P3를 결정할 수 있다. 전술한 과정을 반복하여, 탐색 영역 내에서 위와 같은 과정을 진행하고 다이아몬드 모양 내 위치한 가운데 화소의 비용값이 최소가 될 때까지 탐색 과정을 진행하여 최적 지점을 지시하는 움직임 정보를 템플릿 매칭 모드 또는 양방향 매칭 모드의 움직임 정보로 결정할 수 있다. 한편, 도 46에서는 탐색 패턴내에서 최소의 비용값을 갖는 지점을 탐색하는 과정의 기 정의된 횟수만 반복될 수 있다.
도 44, 45과 같이 양방향 매칭 모드 및 템플릿 매칭 모드에서 최적 움직임 정보를 탐색(또는 움직임 추정)할 때, 참조 픽쳐 내에서 탐색 영역(또는 움직임추정 영역)을 제한(4303)할 수 있다.
특히 템플릿 매칭 모드 수행 시 현재 픽쳐 내 현재 블록의 템플릿 설정 가능 영역(이하, '템플릿추정 영역'이라 칭함)도 제한(4303)할 수 있다.
영상 복호화 장치에서 탐색 영역을 제한하지 않고, 최적 움직임 지점을 찾을 때까지 탐색을 반복하면 영상 복호화 장치의 계산 복잡도가 매우 높을 수밖에 없다. 또한 템플릿추정 영역을 제한하지 않으면 현재 픽쳐의 병렬 처리 설계가 어려우므로 이를 제한하여 처리 속도를 높일 필요가 있다.
양방향 매칭 모드의 경우, 과거/미래 방향의 예측 블록이 움직임추정 영역을 벗어나면 안되고, 템플릿 매칭 모드의 경우 참조 픽쳐 내 예측 블록의 템플릿 블록이 움직임추정 영역을 벗어나면 안되는 것으로 제한이 설정될 수 있다. 그리고, 템플릿 매칭 모드에서는 현재 픽쳐 내 현재 블록의 템플릿 블록이 템플릿추정 영역을 벗어나면 안되는 것으로 제한이 설정될 수 있다.
한편, 탐색 영역은 임의 크기의 윈도우(IxJ)로 설정될 수 있다. 이 윈도우의 크기는 현재 픽쳐와 참조 픽쳐 간 거리에 따라서 달라질 수 있고, 이 윈도우의 크기를 상위 헤더(비디오 파라미터 단, 시퀀스 파라미터 단, 픽쳐 파라미터 단, 슬라이스 단 등)에서 전송할 수도 있다.
또한, 탐색 영역은 영상 부호화 장치 및 영상 복호화 장치에서 기설정된 크기를 동일하게 사용할 수도 있다.
또한, 탐색 영역은 슬라이스 및 타일과 같은 상위 헤더에서 결정되는 분할 경계를 침범하여 결정될 수 없다.
단, 양방향 매칭 모드의 경우, 각 방향 별로 움직임 벡터의 선형적인 방향성을 갖는 것을 전제로 하기 때문에 각 방향 별로 탐색 영역이 다를 수 있다.
또한, 탐색 영역은 현재 블록이 포함된 최대 부호화 블록으로 결정할 수 있다.
한편, 탐색 영역처럼 임의 크기의 윈도우(KxL)를 설정하여 해당 윈도우를 템플릿추정 탐색 영역으로 결정할 수도 있다. 이 윈도우의 크기는 상위 헤더 전송할 수도 있으며, 영상 부호화/복호화 장치에서 기설정된 크기를 동일하게 사용할 수도 있다. 또한, 슬라이스 및 타일과 같은 상위 헤더에서 결정되는 분할 경계를 침범하여 결정할 수는 없다. 템플릿추정 영역에 포함되지 않은 템플릿 영역은 템플릿 매칭 모드의 템플릿으로써 사용할 수 없다.
움직임 정보 탐색 과정의 비용값은 예측 에러의 양과 움직임 정보의 가상 비트량의 합을 의미한다. 예측 에러는 SAD(Sum of Absolute Difference), SATD(Sum of Absolute hadamard Trnasform Difference), SSD(Sum of Square Difference) 등 다양한 계산 방법을 통해서 얻을 수 있다. 수학식 10, 수학식 11, 수학식 12는 각각 SAD, SATD, SSD의 계산 방법을 나타낸 수식이다.
Figure PCTKR2019007328-appb-M000010
Figure PCTKR2019007328-appb-M000011
Figure PCTKR2019007328-appb-M000012
i, j는 화소의 위치 Template(i, j)는 템플릿 블록의 화소를 의미하고, PredBlk(i, j)는 예측 블록의 화소를 의미한다. 여기서, 수학식 4의 HT() 함수는 템플릿 블록과 예측 블록의 차이값 블록을 Hadamard 변환하여 얻어진 함수값을 의미한다. 움직임 정보의 가상 비트량이란 실제로 전송되는 정보는 아니지만, 영상 부호화 장치와 영상 복호화 장치에서 동일하게 예상되는 움직임 정보의 가상비트량을 계산한 것이다. 예를 들어, 초기 움직임 정보의 움직임 벡터와 현재 움직임 추정중인 움직임 정보 내 움직임 벡터의 차분벡터 크기량을 계산하여 가상비트량으로 결정할 수도 있다. 이 외에 참조 픽쳐 정보에 대한 비트량을 이용하여 움직임 정보 가상비트량을 계산할 수도 있다.
도 47는 일 실시예에 따른 코딩 정보를 부호화하는 흐름도이다.
도 47을 참고하면, S4701 단계에서는 SKIP 모드의 동작 정보를 부호화한다. S4702 단계에서 SKIP 모드의 동작 여부를 판단한다. S4702 단계에서 SKIP 모드 동작이 참이었다면 S4703 단계에서 DMVD 모드의 동작정보를 부호화한다. S4704 단계에서 DMVD 모드의 동작 여부를 판단한다. S4704 단계에서 DMVD 모드 동작이 참이었다면 S4705 단계에서 DMVD 정보를 부호화한 후, 본 흐름도를 종료한다. 여기서 DMVD 정보란 양방향 매칭 모드인지 템플릿 매칭 모드인지 알려주는 플래그 정보를 의미한다. 만약 현재 블록 주변의 상단/좌측 템플릿 블록이 모두 템플릿추정 영역에 포함되지 않을 경우 DMVD 정보를 부호화하지 않고, DMVD 정보는 양방향 매칭 모드로 결정한다. S4704 단계에서 DMVD 모드 동작이 거짓이었다면 S4706 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다. S4702 단계에서 SKIP 모드 동작이 거짓이었다면 S4707 단계에서 예측 모드 정보를 부호화한다. S4708 단계에서는 예측 모드가 화면 간 예측인지 아닌지를 판단한다. S4708 단계에서 예측 모드가 화면 간 예측이 아닌 화면 내 예측 모드였다면 S4709 단계에서 화면 내 예측 정보를 부호화한 후, 본 흐름도를 종료한다. S4708 단계에서 예측 모드가 화면 간 예측이었다면 S4710 단계에서 MERGE 모드 동작 정보를 부호화한다. S4711 단계에서 MERGE 모드의 동작 여부를 판단한다. S4711 단계에서 MERGE 모드 동작이 참이었다면 S4712 단계에서 DMVD 모드 동작 정보를 부호화한다. S4713 단계에서 DMVD 모드 동작이 참이었다면 S4714 단계에서 DMVD 정보를 부호화한 후, 본 흐름도를 종료한다. S4713 단계에서 DMVD 모드 동작이 거짓이었다면 S4706 단계에서 MERGE 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다. S4711 단계에서 MERGE 모드 동작이 거짓일 경우, S4715 단계 ~ S4723 단계가 수행되는데 이는 도 36의 S3609 단계 ~ S3617 단계의 설명과 동일하다. S4723 단계가 종료된 후, 본 흐름도를 종료한다.
도 48은 일 실시예에 따른 코딩 정보를 복호화하는 흐름도이다.
도 48을 참고하면, S4801 단계에서는 SKIP 모드의 동작 정보를 복호화한다. S4802 단계에서 SKIP 모드의 동작 여부를 판단한다. S4802 단계에서 SKIP 모드 동작이 참이었다면 S4803 단계에서 DMVD 모드의 동작정보를 복호화한다. S4804 단계에서 DMVD 모드의 동작 여부를 판단한다. S4804 단계에서 DMVD 모드 동작이 참이었다면 S4805 단계에서 DMVD 정보를 복호화한 후, 본 흐름도를 종료한다. S4804 단계에서 DMVD 모드 동작이 거짓이었다면 S4806 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료한다. S4802 단계에서 SKIP 모드 동작이 거짓이었다면 S4807 단계에서 예측 모드 정보를 복호화한다. S4808 단계에서는 예측 모드가 화면 간 예측인지 아닌지를 판단한다. S4808 단계에서 예측 모드가 화면 간 예측이 아닌 화면 내 예측 모드였다면 S4809 단계에서 화면 내 예측 정보를 복호화한 후, 본 흐름도를 종료한다. S4808 단계에서 예측 모드가 화면 간 예측이었다면 S4810 단계에서 MERGE 모드 동작 정보를 복호화한다. S4811 단계에서 MERGE 모드의 동작 여부를 판단한다. S4811 단계에서 MERGE 모드 동작이 참이었다면 S4812 단계에서 DMVD 모드 동작 정보를 복호화한다. S4813 단계에서 DMVD 모드 동작이 참이었다면 S4814 단계에서 DMVD 정보를 복호화한 후, 본 흐름도를 종료한다. S4813 단계에서 DMVD 모드 동작이 거짓이었다면 S4806 단계에서 MERGE 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료한다. S4811 단계에서 MERGE 모드 동작이 거짓일 경우, S4815 단계 ~ S4823 단계가 수행되는데 이는 도 39의 S3909 단계 ~ S3917 단계의 설명과 동일하다. S4823 단계가 종료된 후, 본 흐름도를 종료한다.
이하, 본 실시예에서는 현재 블록 주변의 복원 영역에서 템플릿 영역을 결정할 때, 단일 템플릿 블록만을 이용하는 것이 아니라 복수개의 서브 템플릿 블록을 이용할 수 있다. 전술한 템플릿 매칭 모드를 이용하여 각 서브 템플릿 블록의 움직임 정보를 유도하고, 해당 움직임 정보를 SKIP, MERGE, AMVP 모드를 위한 후보 움직임 정보로 이용하는 방법에 대해서 설명하도록 한다.
도 49은 본 발명의 일 실시 예에 따른 템플릿 매칭 모드를 이용한 SKIP, MERGE 모드를 위한 후보 움직임 정보 유도 방법을 나타내는 흐름도이다.
도 49을 참고하면, S4901 단계에서는 서브 템플릿 블록에 복원되어 있는 움직임 정보를 초기 움직임 정보로 이용하여 전술한 도 43의 4305, 4306, 4303, 4307의 과정을 통해 서브 템플릿 블록의 최적 움직임 정보를 유도한다. 이 때, 서브 템플릿 블록의 개수는 L개(L≥1인 정수)가 될 수 있다.
도 51은 현재 블록 주변의 복원 영역에서 서브 템플릿 블록을 결정하는 예시를 나타낸 도면이다.
도 51을 참고하면, 서브 템플릿 블록은 5101~5103의 예시처럼 설정할 수 있다.
도 51의 5101은 서브 템플릿 블록을 현재 블록의 좌하단(Template A), 좌상단(Template B), 상좌측(Template C), 상우측(Template D)에서 각각 결정한다. 각 서브 템플릿 블록의 크기와 모양은 다양하게 결정할 수 있다.
도 51의 5102는 5101의 방법과 마찬가지로 서브 템플릿 블록을 현재 블록의 좌하단(Template A), 좌상단(Template B), 상좌측(Template C), 상우측(Template D)에서 결정할 수 있지만, 현재 블록과 인접한 좌측, 상단의 복원 영역을 모두 사용한다 점에서 그 차이를 달리할 수 있다.
도 51의 5103은 5101, 5102의 서브 템플릿 블록 생성 방법을 동시에 고려하여 서브 템플릿 블록을 생성한 방법이다.
이 외에 현재 블록과 인접한 좌측, 상단의 복원 영역을 하나의 서브 템플릿 블록으로 결정하여 사용할 수도 있는 등 다양한 방법으로 현재 블록 주변의 복원 영역에서 서브 템플릿 블록을 생성할 수 있다.
S4902 단계에서는 공간적 후보 M개(M≥1인 정수)를 선택한다. 생성 방법은 도 31의 S3101 단계의 설명과 동일하다. S4903 단계에서는 시간적 후보 N개(N≥1인 정수)를 선택한다. 생성 방법은 도 31의 S3102 단계의 설명과 동일하다. S4904, S4905 단계는 도 31의 S3103, S3104 단계의 설명과 동일하다. 본 흐름도에서 각 단계의 순서는 바뀔 수 있다. 또한, 각 단계별로 이전에 유도된 움직임 정보가 현재 유도된 움직임 정보와 동일할 경우, 해당 중복 후보는 제거될 수 있다.
도 50는 본 발명의 일 실시 예에 따른 템플릿 매칭 모드를 이용한 AMVP 모드를 위한 후보 움직임 정보 유도방법을 나타내는 흐름도이다.
도 50를 참고하면, S5001 단계의 설명은 도 49의 S4901 단계의 설명과 동일하다. S5002 단계에서는 공간적 후보 M개(M≥1인 정수)를 선택한다. 생성 방법은 도 32의 S3201 단계의 설명과 동일하다. S5003 단계에서는 시간적 후보 N개(N≥1인 정수)를 선택한다. 생성 방법은 도 32의 S3202 단계의 설명과 동일하다. S5004 단계는 도 32의 S3204 단계의 설명과 동일하다. 본 흐름도에서 각 단계의 순서는 바뀔 수 있다. 또한, 각 단계별로 이전에 유도된 움직임 정보가 현재 유도된 움직임 정보와 동일할 경우, 해당 중복 후보는 제거될 수 있다.
이하, 본 실시예에서는 SKIP, MERGE 모드의 후보 움직임 정보를 DMVD 모드(템플릿 매칭 모드 또는 양방향 매칭 모드)를 이용하여 보정된 후보 움직임 정보를 유도하는 방법과 SKIP, MERGE 모드의 후보 움직임 정보를 템플릿 매칭 모드의 비용값을 이용하여 재정렬하는 방법에 대해서 설명하도록 한다.
도 52는 SKIP, MERGE 모드의 후보 움직임 정보를 DMVD 모드를 이용하여 보정하는 방법에 대해서 설명한 표이다.
도 52를 참고하면, 도 52의 5201 표는 도 31 혹은 도 49의 방법을 이용하여 SKIP, MERGE 모드의 후보 움직임 정보를 유도한 것이다. 본 예시에서 후보 움직임 정보의 개수는 5개이다. 유도된 후보 움직임 정보는 과거/미래 방향의 움직임 정보를 가질 수 있다.
각 후보 움직임 정보 별로 전술한 도 43의 과정을 통해 보정된 움직임 정보를 얻을 수 있다. 도 52의 5202 표에서는 5201 표의 후보 움직임 정보들 중 일부 후보 움직임 정보가 보정 되었다. 여기서, 후보 움직임 정보의 보정은 모든 후보 움직임 정보에 대해서 다 수행할 수도 있지만 우선 순위가 높은 일부 후보 움직임 정보만을 보정하는 등 몇몇 후보 움직임 정보만을 보정할 수도 있다.
도 52의 5202 표에서는 상위 3개의 후보 움직임 정보가 보정되었다. 도 52의 5202 표에서 1, 3번 후보 움직임 정보의 경우에는 움직임 정보가 보정 되었는데, 2번은 보정되지 않았다. 이는 2번 후보 움직임 정보를 보정할 필요가 없었다는 것을 의미할 수 있다. 1번 후보 움직임 정보의 예시처럼 움직임 정보 중 움직임 벡터만 보정 될 수 있고, 3번 후보 움직임 정보의 예시처럼 움직임 정보 중 움직임 벡터, 참조 픽쳐 색인까지 보정될 수도 있다.
위와 같이, DMVD 모드를 이용하여 보정된 후보 움직임 정보는 현재 블록의 움직임 보상에 이용될 수 있다. 또한, DMVD 모드를 이용하여 보정된 후보 움직임 정보는 현재 블록 이후에 부호화/복호화 되는 블록을 위해 저장될 수 있다. 이 경우, DMVD 모드를 이용하여 보정된 후보 움직임 정보는 현재 블록 이후에 부호화/복호화 되는 블록의 움직임 정보 유도에 이용될 수 있다.
한편, 참조 픽쳐가 달라질 경우, 전술한 도 43의 4303 과정에서 움직임추정 탐색 영역은 원래 참조 픽쳐의 그것 대비 달라질 수 있다. 예를 들어, 도 53를 참조하면, SKIP, MERGE 모드의 기존 후보 움직임 정보를 템플릿 매칭 모드를 이용하여 보정할 경우, 참조 픽쳐 또한 보정될 수 있다. 이 때, 움직임추정 탐색 영역 또한 변경될 수 있는데 이는 움직임 벡터의 선형적인 방향성에 따라서 움직임추정 탐색 영역을 이동할 수 있다. 참조 픽쳐가 현재 픽쳐보다 더 멀어질 경우, 현재 움직임추정 탐색 영역을 포함하여 움직임추정 탐색 영역을 더 확대하거나 아니면 축소하는 것도 가능하다.
도 54은 SKIP, MERGE 모드의 후보 움직임 정보를 템플릿 매칭 모드를 이용하여 재정렬하는 방법에 대해서 설명한 표이다.
도 54의 5401 표는 도 52의 5201표와 마찬가지로 도 31 혹은 도 49의 방법을 이용하여 SKIP, MERGE 모드의 후보 움직임 정보를 유도한 것이다.
도 54의 5402 표에서는 5401 표에서 유도된 후보 움직임 정보들을 이용하여 템플릿 매칭 모드 비용값(이하, '비용값'이라 칭함)을 계산한다. 해당 비용값이 낮은 순으로 후보 움직임 정보를 재정렬한 것이 표 5402이다. 만약 후보 움직임 정보가 과거, 미래의 움직임 정보를 모두 가지고 있다면, 각 방향 별 후보 움직임 정보를 이용하여 비용값을 계산하고 방향 별 평균 비용값을 해당 후보 움직임 정보의 비용값으로 결정한다. 혹은 각 방향 별로 비용값이 낮은 후보 움직임 정보의 비용값을 해당 후보 움직임 정보의 비용값으로 결정할 수도 있다.
전술한 도 32를 참조하면, AMVP 모드의 후보 움직임 정보들 중, 최적 후보 움직임 정보인 MVP 정보가 엔트로피 부호화부에서 부호화부되고, 엔트로피 복호화부에서 복호화될 수 있다. 템플릿 매칭 모드를 이용하여 AMVP 모드의 후보 움직임 정보 각각에 대해서 템플릿 매칭 모드 비용값을 전술한 방법과 동일하게 계산한다. 이후, 템플릿 매칭 모드 비용값이 낮은순으로 정렬하고, 해당 비용값이 가장 낮은 후보 움직임 정보를 MVP 정보로 결정할 수 있다. 이렇게 되면 엔트로피 부호화부에서 MVP 정보의 부호화 없이 영상 복호화 장치에서 MVP 정보를 복원할 수 있다.
이하, 본 실시예에서는 전술한 실시예에서 공통적으로 언급된 템플릿 매칭 모드에서 템플릿 매칭 모드 비용값 계산 시, 템플릿 영역에 따른 가중 비용값 계산 방법에 대해서 설명할 것이다.
도 55은 본 발명의 일 실시예에 따른 템플릿 매칭 모드의 템플릿을 서브 템플릿으로 나누어 각 서브 템플릿 별로 비용값의 가중치를 달리하는 방법을 설명하기 위한 도면이다.
각 서브 템플릿 별로 계산되는 비용값의 가중치는 달라질 수 있다. 수학식 13은 비용값을 계산하는 일반화 수식이다.
Figure PCTKR2019007328-appb-M000013
수학식 13에서 TempDist는 템플릿 매칭 모드에서 움직임추정의 비용값 중, 예측 에러의 양을 의미한다. 예측 에러의 양은 각 서브 템플릿 블록의 예측 에러의 양은 SubTempDisti에다가 해당 서브 템플릿 블록의 가중치인 Wi의 곱의 합으로 계산된다. i는 서브 템플릿 블록의 색인 정보를 의미한다.
도 55의 5501은 템플릿 블록을 동일한 크기의 서브 템플릿 블록들로 구성한 예시이다. 서브 템플릿 블록의 크기는 동일한 크기로 다양하게 설정할 수 있다.
도 55의 5502은 템플릿 블록을 복원 블록의 실제 분할 경계선을 기준으로 서브 템플릿을 구성한 예시이다.
도 55의 5503에서는 템플릿 블록을 복원 화소 특성이 유사한 것들끼리 서브 템플릿 블록을 구성한 예시이다. 여기서 복원 화소 특성이란, 복원 화소값 자체가 될 수도 있고, 복원 화소의 움직임 정보일 수도 있다. 이외에도 템플릿 블록을 다양한 방법으로 서브 템플릿 블록을 구성할 수 있다.
위와 같이 결정된 서브 템플릿 블록의 위치에 따라서 예측 에러의 양에 대한 가중치가 달라질 수 있다.
본 발명의 일 실시 예에 따른 가중치 결정 방법은 서브 템플릿 블록이 현재 블록의 좌상단에 위치한 화소와 가까울수록 에러의 양에 대한 가중치를 낮추고, 멀어질수록 에러의 양에 대한 가중치를 높이는 것이다. 물론 반대의 경우도 가능하다.
본 발명의 다른 실시 예에 따른 가중치 결정 방법는 각 서브 템플릿 블록의 움직임 정보와 현재 움직임추정 중인 움직임 정보와의 유사 정도에 따라서 각 서브 템플릿 블록의 가중치를 달리하는 것이다. 유사도가 높을수록 가중치를 낮추고, 유사도가 낮을수록 가중치를 높일 수도 있고, 그 반대의 경우도 가능하다.
도 56은 본 발명의 일 실시 예에 따른 영상 복호화 방법을 나타내는 흐름도이다.
도 56을 참고하면, 영상 복호화 장치는 복원 영역의 움직임 벡터를 이용하여 현재 블록의 초기 움직임 벡터를 결정할 수 있다(5601).
여기서, 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함할 수 있다. 즉, 초기 움직임 벡터는 양방향 예측의 움직임 정보일 수 있다.
한편, 복원 영역의 움직임 벡터는, 머지(MERGE) 모드의 후보 움직임 정보일 수 있다. 여기서, 머지 모드의 후보 움직임 정보는, 현재 블록의 공간적 후보 블록들의 움직임 정보 및 시간적 후보 블록의 움직임 정보 중 적어도 하나를 포함할 수 있다.
그리고, 영상 복호화 장치는 5601 단계에서 결정된 초기 움직임 벡터를 기초로 상기 현재 블록의 움직임 벡터를 탐색할 수 있다(5602).
구체적으로, 움직임 벡터를 탐색하는 단계는, 과거 방향의 움직임 벡터가 지시하는 과거 방향의 예측 블록 및 미래 방향의 움직임 벡터가 지시하는 미래 방향의 예측 블록 간의 차이를 이용하여 움직임 벡터를 탐색할 수 있다.
일 예로, 움직임 벡터를 탐색하는 단계는, 과거 방향의 예측 블록 및 미래 방향의 예측 블록 간의 차이를 SAD(Sum of Absolute Difference) 계산 방법에 적용하여 생성된 예측 에러에 기초하여 움직임 벡터를 탐색할 수 있다.
한편, 움직임 벡터를 탐색하는 단계는, 기 정의된 크기의 탐색 영역에서 움직임 벡터를 탐색할 수 있다.
그리고, 영상 복호화 장치는 5612 단계에서 탐색된 움직임 벡터를 이용하여 상기 현재 블록의 예측 샘플을 생성할 수 있다(5603).
한편, 도 56의 영상 복호화 방법은 DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 복호화하는 단계를 더 포함할 수 있다. 이 단계는 S2801단계 이후 수행될 수 있으며, DMVD 모드 동작 정보가 DMVD 모드 동작을 지시하는 경우에 초기 움직임 벡터를 기초로 현재 블록의 움직임 벡터를 탐색하는 단계를 수행할 수 있다.
도 56의 영상 복호화 방법에서 탐색된 움직임 벡터는, 현재 블록 이후에 복호화되는 블록의 움직임 벡터 유도에 이용될 수 있다. 여기서, 탐색된 움직임 벡터는 DMVD 모드에 의해 보정된 움직임 벡터를 의미할 수 있다.
도 57은 본 발명의 일 실시 예에 따른 영상 부호화 방법을 나타내는 흐름도이다.
도 57를 참고하면, 영상 부호화 장치는 복원 영역의 움직임 벡터를 이용하여 현재 블록의 초기 움직임 벡터를 결정할 수 있다(5701).
여기서, 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함할 수 있다. 즉, 초기 움직임 벡터는 양방향 예측의 움직임 정보일 수 있다.
한편, 복원 영역의 움직임 벡터는, 머지(MERGE) 모드의 후보 움직임 정보일 수 있다. 여기서, 머지 모드의 후보 움직임 정보는, 현재 블록의 공간적 후보 블록들의 움직임 정보 및 시간적 후보 블록의 움직임 정보 중 적어도 하나를 포함할 수 있다.
그리고, 영상 부호화 장치는 초기 움직임 벡터를 기초로 현재 블록의 최적 움직임 벡터를 탐색할 수 있다(5702).
구체적으로, 최적 움직임 벡터를 탐색하는 단계는, 과거 방향의 움직임 벡터가 지시하는 과거 방향의 예측 블록 및 미래 방향의 움직임 벡터가 지시하는 미래 방향의 예측 블록 간의 차이를 이용하여 최적 움직임 벡터를 탐색할 수 있다.
일 예로, 최적 움직임 벡터를 탐색하는 단계는, 과거 방향의 예측 블록 및 미래 방향의 예측 블록 간의 차이를 SAD(Sum of Absolute Difference) 계산 방법에 적용하여 생성된 예측 에러에 기초하여 최적 움직임 벡터를 탐색할 수 있다.
한편, 최적 움직임 벡터를 탐색하는 단계는, 기 정의된 크기의 탐색 영역에서 최적 움직임 벡터를 탐색할 수 있다.
그리고, 영상 부호화 장치는 최적 움직임 벡터의 이용 여부를 판단하여 DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 부호화할 수 있다(5703).
도 57의 영상 부호화 방법에서 탐색된 최적 움직임 벡터는, 현재 블록 이후에 부호화되는 블록의 움직임 벡터 유도에 이용될 수 있다. 여기서, 탐색된 최적 움직임 벡터는 DMVD 모드에 의해 보정된 움직임 벡터를 의미할 수 있다.
도 57의 영상 부호화 방법에 의해 생성된 비트스트림(또는 부호화 데이터)는 컴퓨터 판독가능한 비일시적 기록매체에 저장될 수 있다. 또한, 비트스트림은 DMVD 모드 동작 정보를 더 포함할 수 있다.
도 58은 영상 부호화 장치를 나타내는 흐름도이다.
도 58을 참조하면, 영상 부호화 장치는 영상을 부호화하는 장치로써 블록 분할부(5801), 예측부(5802), 변환부(5803), 양자화부(5804), 엔트로피 부호화부(5805), 역 양자화부(5806), 역 변환부(5807), 가산부(5808), 인루프 필터부(5809), 메모리부(5810) 및 감산부(5811)를 포함할 수 있다.
도 58에 나타난 각 구성부들은 영상 부호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
블록 분할부(5801)은 입력된 영상을 적어도 하나의 블록으로 분할할 수 있다. 이 때, 입력된 영상은 픽처, 슬라이스, 타일, 브릭, 세그먼트 등 다양한 형태와 크기를 가질 수 있다. 블록은 부호화 단위(CU), 예측 단위(PU) 또는 변환 단위(TU)를 의미할 수 있다. 상기 분할은 쿼드 트리(Quadtree), 이진 트리(Biniary tree) 및 3분할 트리(ternary tree) 중 적어도 하나에 기반하여 수행될 수 있다.
쿼드 트리는 현재 부호화 블록을 정확히 사분하는 분할이다. 이진 트리는 부호화 블록을 가로 방향 혹은 세로 방향으로 정확히 이분하는 분할이다. 3분할 트리는 상위 블록을 3개의 하위 블록으로 분할하는 방식이다. 예컨대, 상기 3개의 하위 블록은 상기 상위 블록의 너비 또는 높이를 1:2:1의 비율로 분할함으로써 획득될 수 있다. 전술한 바이너리 트리 기반의 분할을 통해, 블록은 정방형뿐만 아니라 비정방형의 형태를 가질 수 있다. 또한, 여러 분할 방법들을 동시에 고려하여 분할해 나가는 방법도 가능하다.
예측부(5802)는 현재 원본 블록에서 현재 예측하고자 하는 블록(이하, 예측 블록이라 칭함)의 주변 화소나 이전에 이미 부호화/복호화가 끝난 참조 픽쳐 내 화소들을 이용하여 예측 블록을 생성할 수 있다.
예측 블록은 부호화 블록 내에서 1개 혹은 그 이상의 예측 블록들이 생성될 수 있다. 부호화 블록 내 예측 블록이 1개일 경우, 예측 블록은 부호화 블록과 동일한 형태이다.
동영상 신호의 예측 기술에는 화면 내 예측과 화면 간 예측이 있다.
화면 내 예측은 현재 블록의 주변 화소들을 이용하여 예측 블록을 생성하는 방식이다.
화면 간 예측은 이전에 이미 부호화/복호화가 끝난 참조 픽쳐에서 현재 블록과 가장 유사한 블록을 찾아서 예측 블록을 생성하는 방식이다.
한편, 예측부(5802)는 예측 블록 생성 후, 원본 블록과 예측 블록을 뺀 잔차 블록을 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 등 다양한 기법을 이용하여 예측 블록의 최적 예측 모드를 결정할 수 있다. RDO 비용 계산식은 수학식 14과 같다.
Figure PCTKR2019007328-appb-M000014
D, R, J는 각각 양자화에 의한 열화, 압축 스트림의 레이트, RD 비용이고, Φ는 부호화 모드, λ는 라그랑지안 승수(Lagrangian multiplier)로 에러의 양과 비트량 간의 단위를 일치시키기 위한 스케일 보정용 계수로 사용한다. 부호화 과정에서 최적의 부호화 모드로 선택되기 위해서는 해당 모드를 적용했을 때의 J 즉, RD-비용값이 다른 모드를 적용했을 때보다 작아야 하는데, RD-비용값을 구하는 식에는 비트율과 에러를 동시에 고려하여 계산할 수 있다.
도 59는 영상 부호화 장치의 예측부를 설명하기 위한 도면이다.
원본 정보와 복원 정보를 이용하여 화면 내 예측을 수행(5901)하는 경우, 각 예측 모드 별로 최적 화면 내 예측 모드를 RD-비용값을 이용하여 결정(5902)하고, 예측 블록을 생성할 수 있다.
원본 정보와 복원 정보를 이용하여 화면 간 예측을 수행(5903)하는 경우, SKIP 모드, MERGE 모드, AMVP 모드에 대해서 RD-비용값을 계산한다.
MERGE 후보 탐색부(5904)에서는 SKIP 모드와, MERGE 모드를 위한 후보 움직임 정보 세트를 구성할 수 있다. 그리고, 해당 후보 움직임 정보 세트 중, 최적 움직임 정보를 RD-비용값을 이용하여 결정(5905)할 수 있다.
AMVP 후보 탐색부(5906)에서는 AMVP 모드를 위한 후보 움직임 정보 세트를 구성할 수 있다. 그리고, 해당 후보 움직임 정보 세트들을 이용하여 움직임 추정을 수행(5907)하고, 최적 움직임 정보를 결정할 수 있다.
각 모드들에서 결정된 최적 움직임 정보를 이용하여 움직임보상을 수행(5908)하여 예측 블록을 생성될 수 있다.
전술한 화면 간 예측은 3가지 모드(SKIP 모드, MERGE 모드, AMVP 모드)로 구성되어 있을 수 있다. 각 예측 모드에 따라 움직임 정보(예측 방향 정보, 참조 픽쳐 정보, 움직임 벡터)는 부호화될 수 있다.
SKIP 모드는 이미 복원된 영역의 움직임 정보를 이용하여 최적 예측 정보를 결정할 수 있다. SKIP 모드에서는 복원된 영역 내에서 움직임 정보 후보군을 구성하고, 해당 후보군 중, RD-비용값이 최소인 후보를 예측 정보로 사용하여 예측 블록을 생성할 수 있다. 여기서 움직임 정보 후보군을 구성하는 방법은 하기 설명할 MERGE 모드의 움직임 정보 후보군을 구성하는 방법과 동일하므로, 본 설명에서는 생략한다.
MERGE 모드는 이미 복원된 영역의 움직임 정보를 이용하여 최적 예측 정보를 결정한다는 점에서 SKIP 모드와 동일하다. 그러나 SKIP 모드는 예측 에러가 0이 되도록 하는 움직임 정보를 움직임 정보 후보군에서 탐색하고, MERGE 모드는 예측 에러가 0이 아닌 움직임 정보를 움직임 정보 후보군에서 탐색한다는 점에서 차이점이 있다. SKIP 모드와 마찬가지로, 복원된 영역 내에서 움직임 정보 후보군을 구성하여 해당 후보군 중, RD-비용값이 최소인 후보를 예측 정보로 사용하여 예측 블록을 생성할 수 있다.
AMVP 모드는 예측 방향에 따른 참조 픽쳐 별로 움직임 추정을 거쳐 최적 움직임 정보를 결정할 수 있다. 여기서, 예측 방향은 과거/미래 중 한 방향만을 사용하는 단방향 일수도 있고, 과거와 미래 방향 모두를 사용하는 양방향 일수도 있다. 움직임 추정을 통해 결정된 최적 움직임 정보를 이용하여 움직임 보상을 수행하여 예측 블록이 생성될 수 있다. 여기서, 예측 방향에 따른 참조 픽쳐마다 움직임 추정을 위한 움직임 정보 후보군이 유도될 수 있다. 해당 움직임 정보 후보군은 움직임 추정의 시작 지점으로 사용될 수 있다.
화면 내 예측은 최적 화면 내 예측 모드의 효율적인 부호화/복호화를 위하여 MPM(Most Probable Mode) 모드가 이용될 수 있다. MPM 모드란 현재 블록 주변의 복원된 화면 내 예측 모드를 이용하여 MPM 후보 리스트를 구성하되, 현재 블록의 최적 화면 내 예측 모드가 MPM 후보 리스트에 있는 화면 내 예측 모드들 중 하나라면, MPM 후보 색인 정보만을 전송하여 화면 내 예측 모드를 부호화 하는 방법이다. 여기서 MPM 후보 리스트는 최적의 휘도 화면 내 예측 모드를 부호화하기 위해 사용될 수 있다. 반면 색차 화면 내 예측 모드를 부호화할 때는, 휘도 화면 내 예측 모드를 이용하여 색차 후보 리스트를 구성할 수 있다. 구성된 색차 후보 리스트의 모드들 중, RD-비용값 계산을 통해 최적 색차 화면 내 예측 모드에 대한 예측 블록이 생성될 수 있다.
변환부(5803)는 원본 블록과 예측 블록의 차이인 잔차 블록을 변환하여 변환 블록을 생성한다. 변환 블록은 변환 및 양자화 과정을 위해 사용되는 가장 작은 단위이다. 변환부(5803)는 잔차 신호를 주파수 영역으로 변환하여 변환 계수를 가지는 변환 블록을 생성한다. 여기서 잔차 신호를 주파수 영역으로 변환하는 방법으로는 이산 코사인 변환(DCT: Discrete Cosine Transform)기반 변환, 이산 사인 변환(DST: Discrete Sine Transform), KLT(Karhunen Loeve Transform) 등 다양한 변환 기법이 이용될 수 있으며, 이를 이용하여 잔차 신호가 주파수 영역으로 변환되어 변환 계수가 생성될 수 있다. 변환 기법을 편하게 사용하기 위해 기저벡터(basis vector)를 이용하여 행렬 연산을 하게 되는데 예측 블록이 어떤 예측 모드로 부호화 되었는지에 따라서 행렬 연산 시 변환 기법들을 다양하게 섞어 사용할 수 있다. 예를 들어, 화면 내 예측 시 예측 모드에 따라 가로 방향으로는 이산 코사인 변환이 사용되고 세로 방향으로는 이산 사인 변환이 사용될 수 있다.
양자화부(5804)는 변환 블록을 양자화 하여 양자화된 변환 블록을 생성한다. 즉, 양자화부(5804)는 변환부(5803)로부터 생성되는 변환 블록의 변환 계수들을 양자화 하여 양자화된 변환 계수를 가지는 양자화된 변환 블록(Quantized Transform Coefficient)을 생성할 수 있다. 양자화 방법으로는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization) 또는 양자화 가중치 행렬 (Quantization Weighted Matrix) 등이 이용될 수 있지만, 이를 개량한 양자화 등 다양한 양자화 방법이 이용될 수 있다.
한편, 이상에서는 영상 부호화 장치가 변환부(5803) 및 양자화부(5804)를 포함하는 것을 도시하고 설명했지만, 변환부 및 양자화부는 선택적으로 영상 부호화 장치에 포함될 수 있다. 즉, 영상 부호화 장치는 잔차 블록을 변환하여 변환 블록을 생성하고 양자화 과정은 수행하지 않을 수 있으며, 잔차 블록을 주파수 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 심지어는 변환과 양자화 과정을 모두 수행하지 않을 수 있다. 영상 부호화 장치에서 변환부와 양자화부 중 일부 과정이 수행되지 않거나, 모든 과정이 수행되지 않더라도 엔트로피 부호화부의 입력으로 들어가는 블록을 통상적으로 '양자화된 변환 블록'이라 일컫는다.
엔트로피 부호화부(5805)는 양자화된 변환 블록을 부호화하여 비트스트림을 출력한다. 즉, 엔트로피 부호화부(5805)는 양자화부(5804)로부터 출력되는 양자화된 변환 블록의 계수들을 엔트로피 부호화(Entropy Encoding) 등 다양한 부호화 기법을 이용하여 부호화하고, 후술하는 영상 복호화 장치에서 해당 블록을 복호화 하는데 필요한 부가적인 정보들(예를 들면, 예측 모드에 대한 정보(예측 모드에 대한 정보란 예측부에서 결정된 움직임 정보 혹은 화면 내 예측 모드 정보 등이 포함될 수 있음), 양자화 계수 등)을 포함하는 비트스트림을 생성하고 출력할 수 있다.
역 양자화부(5806)는 양자화된 변환 블록에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화 변환 블록을 복원한다.
역 변환부(5807)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.
한편, 이상에서는 역 양자화부와 역 변환부는 양자화부와 변환부에서 사용한 양자화 방식과 변환 방식을 역으로 사용하여 역 양자화 및 역 변환할 수 있다. 또한 변환부와 양자화부에서 양자화만을 수행하고 변환을 수행하지 않은 경우에는 역 양자화만을 수행하고 역 변환을 수행하지 않을 수 있다. 만약, 변환 및 양자화를 모두 수행하지 않은 경우, 역 양자화부와 역 변환부도 역 변환 및 역 양자화를 모두 수행하지 않거나 영상 부호화 장치에 포함되지 않고 생략될 수 있다.
가산부(5808)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원한다.
필터부(5809)는 현재 픽쳐 내 모든 블록들이 복원된 이후, 픽쳐 전체에 걸쳐서 추가적으로 필터링 해주는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset) 등이 있다. 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, SAO(Sample Adaptive Offset)란 복원 화소에 특정 값을 감산하거나 가산함으로써, 복원 영상과 원본 영상간 차이를 최소화 시키는 작업을 말한다.
메모리(5810)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용될 수 있다.
감산부(5811)는 현재 원본 블록에서 예측 블록을 감산하여 잔차 블록을 생성할 수 있다.
도 60은 예측 정보를 부호화하는 방법을 나타내는 흐름도이다.
도 60을 참고하면, S6001 단계에서는 SKIP 모드의 동작 정보를 부호화한다. S6002 단계에서는 SKIP 모드의 동작 여부를 판단한다. S6002 단계에서 SKIP 모드가 동작한다면 S6007 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다.
S6002 단계에서 SKIP 모드가 동작하지 않는다면 S6003 단계에서 예측 모드를 부호화한다. S6003 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S6004 단계에서 예측 모드가 화면 간 예측 모드였다면, S6005 단계에서 MERGE 모드의 동작 정보를 부호화한다.
S6006 단계에서는 MERGE 모드의 동작 여부를 판단한다. S6006 단계에서 MERGE 모드가 동작한다면 S6007 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다. S6006 단계에서 MERGE 모드가 동작하지 않는다면 S6008 단계에서 예측 방향을 부호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다.
S6009 단계에서는 예측 방향이 미래방향인지 아닌지를 판단한다. S6009 단계에서 예측 방향이 미래 방향이 아니었다면 S6010 단계에서 과거 방향의 참조 픽쳐 색인 정보를 부호화한다.
S6011 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 부호화한다. S6012 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 부호화한다.
S6009 단계에서 예측 방향이 미래 방향 혹은 양방향이거나 S6012 단계가 끝나면 S6013 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. S6013 단계에서 예측 방향이 과거 방향이 아니었다면 S6014 단계에서 미래 방향 참조 픽쳐 색인 정보를 부호화한다.
S6015 단계에서는 미래 방향의 MVD 정보를 부호화한다. S6016 단계에서는 미래 방향의 MVP 정보를 부호화한 후, 본 흐름도를 종료한다.
S6004 단계에서 예측 모드가 화면 내 예측 모드였다면, S6017 단계에서 MPM(Most Probable Mode) 모드 동작 정보를 부호화한다. MPM 모드란, 현재 블록 주변의 복원된 화면 내 예측 모드 등을 이용하여 MPM 후보 화면 내 예측 모드를 구성한 후, 영상 부호화 장치에서 결정된 현재 블록의 최적 화면 내 예측 모드 정보가 MPM 후보 화면 내 예측 모드 내에 존재한다면, MPM 후보 화면 내 예측 모드 색인 정보를 전송하는 방법을 말한다.
S6018 단계에서 MPM 모드의 동작 여부를 판단한다. S6018 단계에서 MPM 모드 동작이 참이라면 S6019 단계에서 MPM 후보 화면 내 예측 모드의 색인 정보를 부호화한다. S6018 단계에서 MPM 모드 동작이 거짓이라면 S6020 단계에서 MPM 후보 화면 내 예측 모드를 제외한 나머지 화면 내 예측 모드들 중 Luma의 최적 화면 내 예측 모드 정보를 부호화한다.
S6019, S6020 단계가 종료된 후, S6021 단계에서는 Chroma의 최적 화면 내 예측 모드 정보를 부호화한 후, 본 흐름도를 종료할 수 있다. 여기서 S6008 단계 내지 S6016 단계를 수행하는 부를 움직임정보 부호화부(601)라 칭한다. 또한, S6017 단계 내지 S6020 단계를 수행하는 부를 휘도 화면 내 예측 모드 부호화부(602)라 칭한다.
도 61은 영상 복호화 장치를 나타내는 흐름도이다.
도 61을 참조하면, 영상 복호화 장치는 영상을 복호화하는 장치로써 엔트로피 복호화부(6101), 역 양자화부(6102), 역 변환부(6103), 예측부(6104), 가산부(6105), 인루프 필터부(6106) 및 메모리부(6107)를 포함할 수 있다.
도 61에 나타난 각 구성부들은 영상 복호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
영상 부호화 장치에서 부호화 블록은 영상 복호화 장치에서 복호화 블록 또는 그대로 부호화 블록이라 칭해질 수 있다.
엔트로피 복호화부(6101)는 영상 부호화 장치로부터 전송받은 비트스트림을 해석하여 해당 블록을 복호화 하는데 필요한 여러 정보들과 양자화된 변환 계수를 읽어 들일 수 있다.
역 양자화부(6102)는 엔트로피 복호화부에서 복호화한 양자화 계수에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화된 계수를 가지는 역 양자화되 블록을 복원할 수 있다.
역 변환부(6103)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 차분 신호를 가지는 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환할 수 있다.
예측부(6104)는 엔트로피 복호화부에서 복호화한 예측 모드 정보를 이용하여 예측 블록을 생성하는데, 이는 영상 부호화 장치의 예측부에서 수행했던 예측 방식과 동일한 방식이 이용될 수 있다.
가산부(6105)는 역 변환부에서 복원된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원할 수 있다.
필터부(6106)는 현재 픽쳐 내 모든 블록을 복원한 이후, 픽쳐 전체에 걸쳐서 추가적인 필터링은 하는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset) 등이 있으며, 상세한 내용은 기 전술한 영상 부호화 장치의 인루프 필터부에서 설명한 바와 동일하다.
메모리(6107)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용될 수 있다.
도 62는 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
도 62를 참고하면, 예측 모드가 화면 내 예측이라면, 최적 화면 내 예측 모드 정보를 결정(6201)하고, 화면 내 예측을 수행(6202)하여 예측 블록을 생성할 수 있다.
예측 모드가 화면 간 예측이라면, SKIP, MERGE, AMVP 모드 중 최적 예측 모드를 결정(6203)한다. 그리고, SKIP 모드 혹은 MERGE 모드로 복호화할 경우, MERGE 후보 탐색부(6204)에서 SKIP 모드와, MERGE 모드를 위한 후보 움직임 정보 세트를 구성할 수 있다. 해당 후보 움직임 정보 세트 중, 최적 움직임 정보를 결정(6205)할 수 있다.
AMVP 모드로 복호화할 경우, AMVP 후보 탐색부(6206)에서는 AMVP 모드를 위한 후보 움직임 정보 세트를 구성할 수 있다. 해당 후보 움직임 정보 후보들 중, 전송된 MVP 정보를 이용하여 최적 움직임 정보를 결정(6207)할 수 있다. 이후, 각 모드들에서 결정된 최적 움직임 정보를 이용하여 움직임 보상을 수행(6208)하여 예측 블록을 생성할 수 있다.
도 63은 예측 정보를 복호화하는 방법을 나타낸 흐름도이다.
도 63을 참고하면, S6301 단계에서는 SKIP 모드의 동작 정보를 복호화한다. S6302 단계에서는 SKIP 모드의 동작 여부를 판단한다. S6302 단계에서 SKIP 모드가 동작한다면 S6307 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료한다.
S6302 단계에서 SKIP 모드가 동작하지 않는다면 S6303 단계에서 예측 모드를 복호화한다. S6303 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S6304 단계에서 예측 모드가 화면 간 예측 모드였다면, S6305 단계에서 MERGE 모드의 동작 정보를 복호화한다.
S6306 단계에서는 MERGE 모드의 동작 여부를 판단한다. S6306 단계에서 MERGE 모드가 동작한다면 S6307 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료할 수 있다. S6306 단계에서 MERGE 모드가 동작하지 않는다면 S6308 단계에서 예측 방향을 복호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다. S6309 단계에서는 예측 방향이 미래방향인지 아닌지를 판단한다. S6309 단계에서 예측 방향이 미래 방향이 아니었다면 S6310 단계에서 과거 방향의 참조 픽쳐 색인 정보를 복호화한다.
S6311 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 복호화한다. S6312 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 복호화한다.
S6309 단계에서 예측 방향이 미래 방향 혹은 양방향이거나 S6312 단계가 끝나면 S6313 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. S6313 단계에서 예측 방향이 과거 방향이 아니었다면 S6314 단계에서 미래 방향 참조 픽쳐 색인 정보를 복호화한다.
S6315 단계에서는 미래 방향의 MVD 정보를 복호화한다. S6316 단계에서는 미래 방향의 MVP 정보를 복호화한 후, 본 흐름도를 종료한다.
S6304 단계에서 예측 모드가 화면 내 예측 모드였다면, S6317 단계에서 MPM 모드 동작 정보를 복호화한다. S6318 단계에서 MPM 모드의 동작 여부를 판단한다. S6318 단계에서 MPM 모드 동작이 참이라면 S6319 단계에서 MPM 후보 화면 내 예측 모드의 색인 정보를 복호화한다. S6318 단계에서 MPM 모드 동작이 거짓이라면 S6320 단계에서 MPM 후보 화면 내 예측 모드를 제외한 나머지 화면 내 예측 모드들 중 Luma의 최적 화면 내 예측 모드 정보를 복호화한다.
S6319, S6320 단계가 종료된 후, S6321 단계에서는 Chroma의 최적 화면 내 예측 모드 정보를 복호화한 후, 본 흐름도를 종료할 수 있다. 여기서 S6308 단계 내지 S6316 단계를 수행하는 부를 움직임정보 부호화부(631)라 칭한다. 또한, S6317 단계 내지 S6320 단계를 수행하는 부를 Luma 화면 내 예측 모드 부호화부(632)라 칭한다.
이하, 본 발명의 다양한 실시예들을 도면들을 참조하면서 보다 상세하게 설명한다.
도 64은 본 발명의 일 실시예에 따른 영상 부호화 장치의 예측부를 설명하기 위한 도면이다.
원본 정보와 복원 정보를 이용하여 화면 내 예측을 수행(6401)하는 경우, DIMD(Decoder side Intra prediction Mode Derivation) 모드를 이용하여 화면 내 예측 모드를 결정할지 말지를 RD-비용값으로 판단될 수 있다. DIMD 모드를 이용하지 않을 경우, Luma 화면 내 예측 모드를 결정(6402)한다. 이때, 화면 내 예측 모드들 중 RD-비용값이 최소가 되는 화면 내 예측 모드가 결정될 수 있다.
반면, DIMD 모드를 이용할 경우, 화면 내 예측 모드 정보가 전송되지 않고, 영상 복호화 장치와 동일한 예측 방법을 이용하여 Luma의 화면 내 예측 모드가 결정될 수 있다. DIMD 예측 방법에 대해서는 도 72를 이용하여 상세히 설명한다.
이후, Luma 화면 내 예측 모드를 이용하여 Chroma 화면 내 예측 모드를 위한 후보 모드를 결정하고, 해당 후보 모드들 중 RD-비용값이 최소가 되는 화면 내 예측 모드를 Chroma 화면 내 예측 모드로 결정(6404)할 수 있다. 영상 부호화 장치 예측부(6400)는 결정된 Luma, Chroma 화면 내 예측 모드를 이용하여 현재 블록의 화면 내 예측 블록이 생성할 수 있다.
원본 정보와 복원 정보를 이용하여 화면 간 예측이 수행(6405)되는 경우, SKIP 모드, MERGE 모드, AMVP 모드에 대해서 RD-비용값이 계산될 수 있다.
MERGE 후보 탐색부(6406)에서는 SKIP 모드와, MERGE 모드를 위한 후보 움직임정보 세트가 구성(6406)될 수 있다. 여기서 구성된 후보 움직임정보 세트 중, 최적 움직임정보가 RD-비용값을 이용하여 결정(6407)될 수 있다.
AMVP 후보 탐색부(6408)에서는 AMVP 모드를 위한 후보 움직임정보 세트가 구성(6408)될 수 있다. 여기서 구성된 후보 움직임정보 세트들을 이용하여 움직임 추정이 수행(6409)될 수 있고, 최적 움직임정보가 결정될 수 있다.
SKIP, MERGE, AMVP 모드의 최적 움직임정보가 결정된 이후, 지역 밝기 보상 적용 여부가 결정(6410)될 수 있다. SKIP, MERGE 모드에서는 최적 후보 움직임정보로 복원된 예측 블록의 지역 밝기 보상 여부를 그대로 적용하여 결정될 수 있고, 지역 밝기 보상을 적용한 RD-비용값과 적용하지 않은 RD-비용값을 비교하여 결정될 수도 있다. AMVP 모드에서는 지역 밝기 보상을 적용한 RD-비용값과 적용하지 않은 RD-비용값을 비교하여 지역 밝기 보상 여부가 결정될 수 있다.
최적 움직임정보(움직임벡터 정밀도 포함), 지역 밝기 보상 적용 여부가 결정된 이후 결정된 정보들을 이용하여 움직임 보상이 수행(6411)될 수 있다. 영상 부호화 장치의 예측부(6400)은 움직임 보상(6411)을 통해 화면 간 예측 블록을 생성한다.
도 65는 본 발명의 일 실시예에 따른 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
복원 정보를 이용하여 화면 내 예측을 수행(6501)하는 경우, DIMD(Decoder side Intra prediction Mode Derivation) 모드를 이용하여 화면 내 예측 모드를 결정할지 여부가 결정될 수 있다.
이때, DIMD 모드를 이용하지 않을 경우, 복원 정보를 통해 Luma 화면 내 예측 모드가 결정(6502)될 수 있다. DIMD 모드를 사용하는 경우, 복원 정보를 통해 영상 부호화 장치와 동일한 예측 방법을 이용하여 Luma의 화면 내 예측 모드가 결정될 수 있다.
이후, 복원 정보를 통해 Chroma 화면 내 예측 모드가 결정(6504)될 수 있다. 영상 복호화 장치의 예측부(6500)는 결정된 Luma, Chroma 화면 내 예측 모드를 이용하여 현재 블록의 화면 내 예측 블록을 생성할 수 있다.
복원 정보를 이용하여 화면 간 예측을 수행(6505)하는 경우, 화면 간 예측 모드 중 현재 예측 모드가 SKIP 모드, MERGE 모드, AMVP 모드인지를 결정되어야 한다.
현재 예측 모드가 SKIP, MERGE 모드 중 하나라면, MERGE 후보 탐색부(6506)는 SKIP 모드와, MERGE 모드를 위한 후보 움직임정보 세트를 구성할 수 있다. 복원 정보를 통해 해당 후보 움직임정보 세트 중, 최적 움직임정보가 결정(6507)될 수 있다.
AMVP 후보 탐색부(6508)는 AMVP 모드를 위한 후보 움직임정보 세트를 구성할 수 있다. 복원 정보를 통해 해당 후보 움직임정보 세트 중 최적 후보를 선택하고, 복원된 움직임 정보를 통해 최적 움직임정보를 결정(6509)될 수 있다.
SKIP, MERGE, AMVP 모드의 최적 움직임정보가 결정된 후, 지역 밝기 보상 적용 여부가 복원 정보를 통해 결정(6510)될 수 있다. 최적 움직임정보(움직임벡터 정밀도 포함), 지역 밝기 보상 적용 여부가 결정된 이후, 결정된 정보들을 이용하여 움직임 보상이 수행(6511)될 수 있다. 영상 복호화 장치의 예측부(6500)는 움직임 보상을 통해 화면 간 예측 블록을 생성할 수 있다.
도 66은 본 발명의 일 실시예에 따른 코딩 정보들의 부호화 방법을 나타낸 흐름도이다.
도 66을 참고하여, 본 특허의 일 실시예에 따른 영상 부호화 장치의 엔트로피 부호화부에서 각 코딩 정보들을 부호화하는 방법에 대해서 설명한다. 도 66의 S6601 ~ S6607 단계의 설명은 도 60의 S6001 ~ S6007 단계의 설명과 동일할 수 있다.
S6606 단계에서 MERGE 모드 동작이 거짓이거나 S6607 단계가 끝난 후, S6608 단계에서 지역 밝기 보상 동작 정보가 부호화될 수 있다. 단, 예측 모드가 SKIP, MERGE 모드이면서 최적 후보 움직임정보로 복원된 예측 블록의 지역 밝기 보상 여부를 그대로 따라갈 경우, 본 단계는 생략될 수 있다.
S6608 단계가 종료된 후, 움직임정보 부호화부(601) (도 60의 S6008 ~ S6016 단계)를 통해 움직임정보가 부호화될 수 있다.
S6604 단계에서 예측 모드가 화면 간 예측 모드가 아닌 화면 내 예측 모드였다면 S6609 단계에서 DIMD 모드 동작 정보가 부호화될 수 있다. S6610 단계에서는 DIMD 모드 동작 여부를 판단한다. DIMD 모드 동작이 참이라면, 추가적인 화면 내 예측 모드 정보는 부호화되지 않을 수 있다. DIMD 모드 동작이 거짓이라면 Luma 화면 내 예측 모드 부호화부(602)(도 60의 S6017 ~ S6020 단계)를 통해 Luma의 최적 화면 내 예측 모드가 부호화될 수 있다.
S911 단계에서 Chroma의 최적 화면 내 예측 모드를 부호화될 수 있다. 이후, S912 단계에서 변환 타입의 고정적 적용 여부 정보가 부호화될 수 있다.
S913 단계에서는 변환 타입이 고정적인지 아닌지 여부가 판단될 수 있다. 변환 타입이 고정적으로 사용될 경우 본 흐름도를 종료될 수 있고, 변환 타입이 적응적으로 결정될 경우 변환 방향 별 변환 타입 정보를 부호화한 후, 본 흐름도를 종료될 수 있다.
도 67은 본 발명의 일 실시예에 따른 코딩 정보들의 복호화 방법을 나타낸 흐름도이다.
도 67을 참고하여, 본 특허의 일 실시예에 따른 영상 복호화 장치의 엔트로피 복호화부에서 각 코딩 정보들을 복호화하는 방법에 대해서 설명한다. S6701 ~ S6707 단계의 설명은 도 63의 S6301 ~ S6307 단계의 설명과 동일할 수 있다.
S6706 단계에서 MERGE 모드 동작이 거짓이거나 S6707 단계가 끝난 후, S6708 단계에서 지역 밝기 보상 동작 정보가 복호화될 수 있다. 단, 예측 모드가 SKIP, MERGE 모드이면서 최적 후보 움직임정보로 복원된 예측 블록의 지역 밝기 보상 여부를 그대로 따라갈 경우, 본 단계는 생략될 수 있다.
S6708 단계가 종료된 후, 움직임정보 복호화부(631)(도 63의 S6308 ~ S6316 단계)을 통해 움직임정보가 복호화될 수 있다. S6704 단계에서 예측 모드가 화면 내 예측 모드라면 S6709 단계에서 DIMD 모드 동작 정보가 복호화될 수 있다.
S6710 단계에서는 DIMD 모드 동작 여부가 판단될 수 있다. DIMD 모드 동작이 참이라면, 추가적인 화면 내 예측 모드 정보는 복호화되지 않을 수 있다. DIMD 모드 동작이 거짓이라면 Luma 화면 내 예측 모드 부호화부(632)(도 63의 S6317 ~ S6320 단계)를 통해 최적 Luma 화면 내 예측 모드가 복호화될 수 있다.
S6711 단계에서 최적 Chroma 화면 내 예측 모드가 복호화될 수 있다. 이후, S6712 단계에서 변환 타입의 고정적 적용 여부 정보가 복호화될 수 있다.
S6713 단계에서는 변환 타입이 고정적인지 아닌지를 여부가 판단될 수 있다. 변환 타입이 고정적으로 사용되는 경우 본 흐름도가 종료될 수 있고, 변환 타입이 적응적으로 결정되는 경우 변환 방향 별 변환 타입 정보를 복호화한 후, 본 흐름도가 종료될 수 있다.
이하에서는, 화면 간 예측 모드에서 움직임 벡터 차분(MVD : Motion Vector Difference)을 움직임 벡터 차분 정보를 이용하여 부호화/복호화하는 방법에 대해서 설명한다.
이하에서, 움직임 벡터 차분이란 최종 움직임 벡터를 유도하기 위해 사용되는 벡터 값을 의미할 수 있다. 예컨대, 현재 블록에 대한 움직임 벡터 차분은 현재 블록에 대한 초기 움직임 벡터와 더해져 현재 블록에 대한 최종 움직임 벡터를 유도하기 위해 사용될 수 있다.
움직임 벡터 차분 정보는 현재 블록에 대한 움직임 벡터 차분을 유도하기 위해 사용되는 정보일 수 있다. 영상 복호화 장치는 현재 블록에 대한 움직임 벡터 차분을 유도하기 위해 움직임 벡터 차분 정보를 복호화할 수 있다.
본 실시예에 따른 화면 간 예측 모드는 MERGE 모드, AMVP 모드, SKIP 모드 중 하나일 수 있다.
일예로, 현재 블록의 화면간 예측모드가 AMVP 모드인 경우, 움직임 벡터 차분은 MVP와 더해져, 현재 블록에 대한 최종 움직임 벡터를 유도할 수 있다.
다른 예로, 현재 블록의 화면간 예측 모드가 MERGE 모드인 경우, 움직임 벡터 차분은 MERGE 모드를 통해 유도된 초기 움직임 벡터와 더해져, 현재 블록에 대한 최종 움직임 벡터를 유도할 수 있다. 즉, 움직임 벡터 차분은 Merge 모드를 통해 유도된 초기 움직임 벡터를 보정하기 위해 사용되는 벡터 값일 수 있다. 예컨대, 움직임 벡터 차분은 초기 움직임 벡터에 대한 정밀도 정보를 지칭하는 것일 수 있다. MERGE 모드에서의 초기 움직임 벡터는 현재 블록에 대한 머지 후보 리스트를 이용하여 유도될 수 있다.
도 68은 화면 간 예측 모드에서 움직임 벡터 차분 정보를 부호화/복호화하는 방법에 대해서 설명한 흐름도이다.
도 68의 6801 방법 및 6802 방법은 각각 움직임정보 부호화부(601), 움직임정보 복호화부(631)에서 움직임 벡터 차분 정보를 부호화(S6011, S6015 단계)/복호화(S6311, S6315 단계)하는 방법을 상세히 나타낸 것일 수 있다.
다른 예로, 도 68의 6801 방법 및 6802 방법은 각각 MERGE 모드 동작 정보 부호화(S305 단계)/MERGE 모드 동작 정보 복호화(S605 단계)에서의 동작을 상세히 나타낸 것일 수 있다.
일예로, 움직임 벡터 차분 정보는 현재 블록에 움직임 대한 움직임 벡터 차분이 존재하는지 여부를 지시하는 정보를 포함할 수 있다. 움직임 벡터 차분이 존재하는지 여부에 대한 정보는 flag 값으로 표현될 수 있다.
일예로, 움직임 벡터 차분 정보는 움직임 벡터 차분에 대한 X 성분 절대값 정보 또는 Y 성분 절대값 정보 중 적어도 하나를 포함할 수 있다.
S6803 단계에서, 영상 부호화 장치는 움직임 벡터 차분에 대한 X 성분의 절대값 정보를 부호화하고, S6804 단계에서는 Y 성분의 절대값 정보를 부호화할 수 있다. 다른 예로, 영상 부호화 장치는 움직임 벡터 차분에 대한 Y 성분의 절대값 정보를 먼저 부호화하고, 움직임 벡터 차분에 대한 X 성분 절대값 정보를 부호화할 수 있다.
반면, S6807 단계에서, 영상 복호화 장치는 움직임 벡터 차분에 대한 X 성분의 절대값 정보를 복호화하고, S6808 단계에서는 Y 성분의 절대값 정보를 복호화할 수 있다. 다른 예로, 영상 복호화 장치는 움직임 벡터 차분에 대한 Y 성분의 절대값 정보를 먼저 복호화하고, 움직임 벡터 차분에 대한 X 성분 절대값 정보를 복호화할 수 있다.
다른 예로, 영상 부호화 장치/복호화 장치는 움직임 벡터 차분에 대한 X 성분 및 Y 성분 절대값 정보를 동시에 부호화/복호화할 수 있다. 움직임 벡터 차분에 대한 X 성분 및 Y 성분을 동시에 부호화/복호화하기 위해, 움직임 벡터 차분 정보는 X 성분 절대값 또는 Y 성분 절대값 정보 중 적어도 하나로 구성되는 움직임 벡터 절대값 세트 정보를 포함할 수 있다.
한편, 움직임 벡터 차분 정보는 움직임 벡터 차분에 대한 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트에 대한 정보를 포함할 수 있다. 예컨대, 부호 세트에 대한 정보는 움직임 벡터 차분에 대한 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트들 중 하나를 지시하는 정보 일 수 있다. 이때, 부호 세트들은 부호 세트 별로 이진 정보가 할당될 수 있으며, 부호 세트에 대한 정보는 이러한 부호 세트들 중 하나를 지시하는 인덱스(index)로 표현될 수 있다.
일예로, 부호 세트에 대한 정보는 다음의 표 2에 따라 정의되는 부호 세트 중 하나를 지시하는 인덱스일 수 있다.
움직임 벡터 차분 부호 세트 인덱스 X 성분 부호 Y 성분 부호
0 + 0
1 - 0
2 0 +
3 0 -
S6805 단계에서 부호화 장치는 움직임 벡터 차분의 부호 세트 별로 템플릿 매칭 비용값을 계산하여 움직임 벡터 차분의 부호 세트 별로 이진 정보 혹은 인덱스를 할당할 수 있다.
도 69는 본 발명의 일 실시예에 따른 움직임 벡터 차분 정보 부호화 시, 템플릿 매칭 비용값을 이용하여 이진 정보를 결정하는 방법을 나타낸 표이다.
일예로, 움직임 벡터 차분의 X, Y 성분이 모두 절대값이 0이 아니었다면 도 69의 6901에 따라 움직임 벡터 차분 부호 세트의 이진 정보가 할당될 수 있다. 이때, 각 움직임 벡터 차분 부호 세트 별로, 템플릿 매칭 비용값이 계산될 수 있다.
다른 예로, 움직임 벡터 차분의 X, Y 성분 중 하나의 절대값이 0이라면 6902, 6903에 따라 움직임 벡터 차분 부호 세트의 이진 정보가 할당될 수 있다. 6902는 움직임 벡터 차분의 X 성분의 절대값이 0인 경우이고, 6903은 움직임 벡터 차분의 Y 성분의 절대값이 0인 경우일 수 있다. 이 경우, 2가지 부호 세트에 대해서만 템플릿 매칭 비용값이 계산될 수 있다.
영상 부호화 장치는 각 경우(6901, 6902, 6903)에 대해, 계산된 템플릿 매칭 비용값이 낮은 순으로 각 부호 세트에 할당되는 이진 정보를 효율적으로 결정함으로써, 코딩 효율을 높일 수 있다. 6902, 6903과 같은 경우에는 할당 이진 정보의 이진수는 각 움직임 벡터 차분 부호 세트 별로 1자리 이지만, 엔트로피 부호화부, 엔트로피 복호화부에서 각 이진정보에 해당하는 CABAC 확률 정보를 템플릿 매칭 비용값이 낮은 이진 정보의 확률을 높임으로써 코딩 효율을 높일 수 있다.
도 69의 템플릿 매칭 비용값과 할당 이진 정보는 예시에 해당하는 것으로, 비용값은 당연히 달라질 수 있으며 이진 정보를 할당하는 방법 역시 달라질 수 있다.
도 70은 본 발명의 일 실시예에 따른 움직임 벡터 차분 정보의 이진 정보 결정 시, 템플릿 매칭 기술을 설명하기 위한 도면이다.
도 70을 참고하여, 전술한 템플릿 매칭 기술에 대해 설명한다. 현재 픽쳐 내 현재 블록의 복원된 영역 내에서 템플릿 영역이 결정될 수 있다. 템플릿 영역은 도 70에서처럼 현재 블록의 좌측(Lh x Lw, Lh, Lw는 0보다 큰 정수), 상단(Aw x Ah, Aw, Ah는 0보다 큰 정수) 영역에서 결정될 수도 있다. 이때 템플릿 영역의 모양, 위치 및 크기는 다양하게 결정될 수도 있다.
참조 픽쳐 내 움직임 추정 탐색 영역 내에서 현재 픽쳐의 템플릿과 가장 유사한 영역이 참조 픽쳐의 템플릿 영역으로 탐색될 수 있다. 이때, 현재 블록 주변의 템플릿 영역들과 움직임추정 탐색 영역 내의 템플릿 영역 간 에러의 양이 템플릿 매칭 비용값으로 결정될 수 있다. 여기서 에러의 양은 SAD(Sum of Absolute Difference), SSD(Sum of Square Difference) 등의 계산 방법을 통해서 유도될 수 있다. 아래의 수학식 15 및 수학식 16은 각각 SAD, SSD의 계산 방법을 나타낸 수학식이다.
Figure PCTKR2019007328-appb-M000015
Figure PCTKR2019007328-appb-M000016
여기서, i, j는 화소의 위치 Template(i, j)는 템플릿 블록의 화소를 의미하고, PredBlk(i, j)는 예측 블록의 화소를 의미한다.
이후, S6806 단계 및 S6810에서는 결정된 움직임 벡터 차분의 부호 세트의 이진 정보 혹은 인덱스가 부호화/복호화 될 수 있다.
이하에서는, 화면 내 예측 모드에서 최적 Luma Chroma 화면 내 예측 모드를 부호화/복호화하는 경우, 템플릿 매칭 기술을 이용하여 이진 정보를 결정하는 방법에 대해서 설명한다.
도 71은 본 발명의 일 실시예에 따른 DIMD 모드를 위한 템플릿 매칭 기술의 템플릿 매칭 비용값을 이용하여 MPM 후보 모드 리스트의 후보 별 이진 정보 할당 방법, Chroma 후보 모드의 이진 정보 할당 방법을 설명하기 위한 도면이다.
도 71은 도 60의 Luma 화면 내 예측 모드를 부호화부, 도 63의 Luma 화면 내 예측 모드 복호화부에서 MPM 모드 동작이 참일 때, MPM 색인 정보를 부호화(S6019), MPM 색인 정보를 복호화(S6319)시에, 색인 정보의 이진 정보를 템플릿 매칭 비용값을 바탕으로 결정하는 방법을 나타낸 예시이다. 화면 내 예측 모드에서의 템플릿 매칭 기술은 화면 간 예측 모드에서의 템플릿 매칭 기술과 상이할 수 있다.
도 72는 본 발명의 일 실시예에 따른 DIMD 모드의 템플릿 매칭 기술을 설명하기 위한 도면이다.
도 72를 참고하여, 화면 내 예측 모드에서 현재 블록 주변의 복원 영역에서 템플릿 영역을 이용한 템플릿 매칭 기술을 설명한다. 도 72에 따르면, 현재 블록 주변의 복원 영역에서 템플릿 영역이 결정될 수 있다.
여기서, 템플릿 영역의 크기는 다양하게 결정될 수 있다. 이후, 템플릿 영역의 주변에서 템플릿 영역의 참조 영역이 결정될 수 있다. 이 참조 영역의 복원 화소들을 이용하여 템플릿 영역을 화면 내 예측하고, 예측된 값과 템플릿 영역의 복원값 간 차이, 즉 예측 에러의 양이 템플릿 매칭 비용값으로 결정될 수 있다. 예측 에러의 양 계산 방법은 전술한 SAD, SSD 등 다양한 방법이 사용될 수 있다.
도 71의 7101에서는 최적 Luma 화면 내 예측 모드를 부호화되는 경우, MPM 후보 리스트에 포함되어 있는 화면 내 예측 모드에 대한 템플릿 매칭 비용값이 먼저 계산될 수 있다.
이후, 템플릿 매칭 비용값이 작은 순으로 화면 내 예측 모드에 이진 정보가 더 적게 할당될 수 있다.
예를 들어 7101의 표에서처럼 MPM 후보 리스트에 수직(Ver) 모드, DC 모드, Planar 모드, 수평(Hor) 모드, Angular 20번 모드가 포함되고, 각 화면 내 예측 모드 별로 템플릿 매칭 비용값이 100, 120, 80, 140, 150인 경우, 템플릿 매칭 비용값이 작은 순으로 할당 이진 정보가 0, 10, 110, 1110, 1111로 결정될 수 있다. 7101 표에서의 템플릿 매칭 비용값과 할당 이진 정보는 예시에 해당하는 것으로, 비용값은 달라질 수 있으며 이진 정보를 할당하는 방법 역시 달라질 수 있다.
도 71의 7102에서는 최적 Chroma 화면 내 예측 모드를 부호화되는 경우, Chroma 후보 모드 리스트에 있는 화면 내 예측 모드에 대한 템플릿 매칭 비용값이 먼저 계산될 수 있다.
이후, 템플릿 매칭 비용값이 작은 순으로 Chroma 화면 내 예측 모드에 이진 정보가 더 작게 할당될 수 있다.
Chroma 후보 모드 리스트의 화면 내 예측 모드들로 Luma 블록에서 복원된 화면 내 예측 모드들이 이용될 수 있다. 4:2:0 포맷의 영상에서는 Chroma 블록은 Luma 블록의 1/4 크기이다. 또한, Intra only 픽쳐에서는 Luma 블록과 Chroma 블록의 블록 분할이 독립적으로 이루어 질 수 있기 때문에, 7102의 그림 예시처럼, Luma 블록과 Chroma 블록의 블록 분할은 상이할 수 있다.
Chroma 후보 모드 리스트 구성 시, Luma 블록의 서로 다른 5개 블록(A1, A2, A3, A4, A5)에서 복원된 화면 내 예측 모드를 이용하여 Chroma 후보 모드 리스트가 구성될 수 있다. 구성된 Chroma 후보 모드 리스트에서 A1, A2, A3, A4, A5 블록에 있는 화면 내 예측 모드의 템플릿 매칭 비용값을 계산하고, 해당 비용값이 작은 순으로 7102의 표에서처럼 할당 이진 정보의 양이 작게 할당될 수 있다. 7102의 표에서의 템플릿 매칭 비용값과 할당 이진 정보는 예시에 해당하는 것으로, 비용값은 달라질 수 있으며 이진 정보를 할당하는 방법 역시 달라질 수 있다.
이하에서는, 화면 간 예측 모드에서 지역적 밝기 보상을 과정을 수행될 때, 현재 블록 주변 복원 영역에서 템플릿 영역을 이용하는 방법에 대해서 설명한다.
도 73은 본 발명의 일 실시예에 따른 지역 밝기 보상 기술 수행 시, 현재 블록 주변 복원 영역 내에서 템플릿 사용 여부에 따른 예측 블록 주변 복원 영역 내에서 템플릿 사용 여부를 결정하는 방법을 설명하기 위한 도면이다.
지역적 밝기 보상 수행되는 경우, 최적 움직임정보가 가리키는 예측 블록 주변 복원 영역의 템플릿 영역과 현재 블록의 주변 복원 영역 템플릿 영역의 차이가 최소가 되게 하는 보상 과정이 수행될 수 있다. 이 보상 과정은 선형 회귀 분석을 통해 직선의 최소제곱합이 최소가 되게 하는 파라미터 α, β를 유도하는 과정일 수 있다. α, β를 이용한 지역적 밝기 보상은 수학식 17를 통해 수행될 수 있다.
Figure PCTKR2019007328-appb-M000017
α, β를 유도하는 경우, 현재 블록 주변 복원 영역의 템플릿 영역이 도 73에 도시되어 있는 것처럼 제한될 수 있다. 이러한 제한은 영상의 효율적인 병렬처리 구조 설계를 위한 것 일 수 있다.
현재 블록 주변 복원 영역의 템플릿 영역의 이용 여부를 결정할 때, 현재 블록이 포함된 최대 부호화 블록을 벗어나는 영역은 템플릿 영역으로 이용되지 않을 수 있다. 또한, 임의 크기의 윈도우(KxL)를 설정하여 해당 윈도우를 벗어나는 템플릿 영역은 이용되지 않을 수도 있다. 이 윈도우의 크기는 상위 헤더(비디오 파라미터 단, 시퀀스 파라미터 단, 픽쳐 파라미터 단, 슬라이스 단 등)를 통해 전송될 수 있으며, 영상 부호화/복호화 장치에서 기 설정된 크기를 동일하게 사용할 수도 있다.
또한, 템플릿 영역의 이용여부는 슬라이스 및 타일과 같은 분할 경계를 침범하여 결정할 수는 없다.
예측 블록 주변 복원 영역의 템플릿 영역에서도 현재 블록 주변에서 이용 가능한 템플릿 영역의 위치만을 동일하게 이용할 수 있다.
도 73은 본 발명의 일 실시예에 따른 지역 밝기 보상 기술 수행 시, 현재 블록 주변 복원 영역 내에서 템플릿 사용 여부에 따른 예측 블록 주변 복원 영역 내에서 템플릿 사용 여부를 결정하는 방법을 설명하기 위한 도면이다.
도 73의 7301은, 현재 블록 주변 복원 영역의 상단 영역이 템플릿 영역으로 사용 불가능하므로, 예측 블록 상단 영역의 템플릿 영역도 사용이 불가능함을 나타내는 예시이다. 도 73의 7302는 현재 블록 주변 복원 영역에서 좌측 영역이 템플릿 영역으로 사용 불가능하므로, 예측 블록 좌측 영역의 템플릿 영역도 사용이 불가능함을 나타내는 예시이다. 도 73의 7303은 현재 블록 주변 복원 영역에서 상단, 좌측 영역이 템플릿 영역으로 모두 이용 불가능하므로, 예측 블록 상단, 좌측 영역의 템플릿 영역도 모두 이용이 불가능함을 나타내는 예시이다.
7303 예시의 경우에는 지역적 밝기 보상 과정이 수행되지 않을 수 있다. 이 경우 도 9의 S908 단계에서 지역 밝기 보상 동작 정보가 부호화 되지 않고, 도 10의 S1008 단계에서도 지역 밝기 보상 동작 정보가 복호화 되지 않을 수 있다. 이때 지역적 밝기 보상 과정 동작 정보는 거짓(false)으로 결정될 수 있다.
이하에서는, 영상의 블록 단위 변환을 위하여 변환 타입을 부호화/복호화하는 경우, 템플릿 매칭 기술을 이용하여 변환 타입의 이진 정보를 결정하는 방법에 대해서 설명한다.
도 74는 본 발명의 일 실시예에 따른 영상 부호화 장치의 변환부이다.
영상 부호화 장치의 변환부(7400)는 잔차 정보를 주파수 도메인으로 변환하여 변환 계수를 유도할 수 있다. 잔차 정보 변환 시, 변환 타입은 고정적으로 결정(7401)되거나 적응적으로 결정(7402)될 수 있다.
변환 타입이 고정되어 있는 경우, 고정된 변환 타입으로 잔차 정보를 가로 방향으로 변환(7404) 후, 세로 방향으로 변환(7405)하여 변환 계수가 얻어질 수 있다. 이 때, 변환 타입은 DCT-2 타입 등 다양한 변환 타입 중 하나가 고정적으로 사용될 수 있다.
반면, 변환 타입이 적응적으로 결정되는 경우, 변환 타입은 여러 변환 타입들 중에서 적응적으로 결정될 수 있다. 예를 들어 DCT-2, DCT-5, DCT-8, DST-1, DST-7 타입 중 하나의 변환 타입이 적응적으로 결정될 수 있다. 이때, 각 변환 방향 별로 변환 타입이 결정(7403)될 수 있다. 결정된 변환 방향 별 변환 타입을 이용하여 가로 방향 변환(7404) 및 세로 방향 변환(7405)이 수행되어 변환 계수가 유도될 수 있다. 이 때, 방향 별 변환 타입은 블록 단위에서 전송될 수도 있고, 변환 블록의 크기나 모양 등을 고려하여 상위 헤더에서 기 설정되어 사용될 수도 있다.
도 75는 본 발명의 일 실시예에 따른 영상 부호화/복호화 장치의 역 변환부이다.
영상 부호화/복호화 장치의 역 변환부(7500)에서는 역 양자화된 계수를 픽셀 도메인으로 변환하여 복원된 잔차 계수가 유도될 수 있다. 역 양자화된 계수를 역 변환 시, 역 변환 타입을 고정적으로 결정되거나(7501), 적응적으로 결정(7502)될 수 있다.
영상 부호화 장치의 변환부(7400)에서 변환 타입을 고정하여 변환하였다면, 영상 부호화/복호화 장치의 역 변환부(7500)에서도 역 변환 타입을 고정하여 역 변환이 수행될 수 있다. 역 변환 타입은 변환부에서 결정된 변환 타입의 세로 방향 역 변환(7504) 및 가로 방향 역 변환(7505)이 수행되어 복원된 잔차 계수가 유도될 수 있다.
역 변환 타입이 적응적으로 결정될 경우, 역 변환 타입은 변환부에서 결정된 변환 방향 별 변환 타입의 세로 방향 역 변환(7504), 가로 방향 역 변환(7505)이 수행되어 복원된 잔차 계수가 유도될 수 있다.
도 76은 본 발명의 일 실시예에 따른 영상 부호화/복호화 장치의 변환부/역 변환부에서 변환 타입의 이진 정보를 결정하기 위해서 템플릿 매칭 기술을 이용하는 방법을 설명하기 위한 도면이다.
도 76을 참고하여, 변환부에서 변환 방향 별 변환 타입이 적응적으로 결정되는 경우 변환 방향 별 변환 타입 정보를 부호화/복호화할 때, 이진 정보를 결정하는 방법과 이진 정보를 결정할 때 템플릿 매칭 기술 적용 시 현재 블록 주변 복원 영역에서 템플릿 영역의 이용 여부를 결정하는 방법에 대해서 설명한다.
7604의 예시에 따르면, 변환 타입 세트가 5개가 정의되어 있고, 각 변환 타입 세트 별로 가로/세로 변환 타입이 결정되어 있다. 이 때, 각 변환 세트 별로 템플릿 매칭 기술을 이용하여 템플릿 매칭 비용값이 계산될 수 있다.
변환부에서의 템플릿 매칭 기술에서 템플릿 매칭 비용값을 계산하기 위해서는 현재 블록 주변 복원 영역에서의 템플릿 영역만이 필요할 수 있다. 7601~7603의 예시에서, 각 변환 타입 세트를 이용하여 현재 블록의 좌측, 상단 1줄에 대해서 복원 화소값이 계산될 수 있다. 복원 영역에 해당하는 잔차값들을 변환/양자화 한 후, 역 양자화/역 변환한 뒤 예측값을 더하면 복원 영역의 복원 화소값이 얻어질 수 있다. 템플릿 매칭 비용값은 복원 영역과 템플릿 영역을 이용하여 아래의 수학식 18를 이용하여 계산될 수 있다.
Figure PCTKR2019007328-appb-M000018
수학식 18에서 TempDist는 템플릿 매칭 비용값을 의미한다. i는 좌측 템플릿 영역의 좌표를 의미하고, j는 상단 템플릿 영역의 좌표를 의미한다. Width, Height는 현재 블록의 가로, 세로 길이를 의미한다.
수학식 5를 통해서 변환 타입 세트 별로 템플릿 매칭 비용값을 계산하고, 해당 비용값이 작은순으로 이진 정보의 양이 작게 할당될 수 있다. 7604 표에서의 가로/세로 변환의 변환 타입, 템플릿 매칭 비용값과 할당 이진 정보는 예시에 해당하는 것으로, 변환 타입은 다양한 조합으로 바뀔 수 있고 비용값은 달라질 수 있으며 이진 정보를 할당하는 방법 역시 달라질 수 있다.
템플릿 매칭 비용값 계산 시, 현재 블록 주변 복원 영역의 템플릿 영역이 7601, 7602, 7603의 예시처럼 제한될 수 있다. 현재 블록이 포함된 최대 부호화 블록을 벗어나는 영역은 템플릿 영역으로 사용되지 않을 수 있다. 또한, 임의 크기의 윈도우(KxL)를 설정하여 해당 윈도우를 벗어나는 템플릿 영역을 이용되지 않을 수도 있다. 이 윈도우의 크기는 상위 헤더에서 전송될 수도 있으며, 영상 부호화/복호화 장치에서 기 설정된 크기가 동일하게 사용될 수도 있다.
또한, 슬라이스 및 타일과 같은 상위 헤더에서 결정되는 분할 경계를 침범하여 결정할 수는 없다.
도 76의 7601은 현재 블록 주변 복원 영역에서 상단 영역이 템플릿 영역으로 사용 불가능한 경우를 예시한다. 7602는 현재 블록 주변 복원 영역에서 좌측 영역이 템플릿 영역으로 사용 불가능한 경우를 예시한다. 7603은 현재 블록 주변 복원 영역에서 상단, 좌측 영역이 템플릿 영역으로 모두 이용 불가능한 경우를 예시한다.
7603 예시의 예시에서는, 변환 타입이 고정적으로 사용될 수 있다. 그러므로 도 66의 S6612 단계에서 변환 타입의 고정적 적용 여부 정보가 부호화 되지 않고, 변환 타입이 고정적으로 사용될 수 있다. 도 67의 S6712 단계에서도 변환 타입의 고정적 적용 여부 정보를 복호화되지 않고, 변환 타입이 고정적으로 사용될 수 있다.
도 77은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 77을 참고하면, 영상 복호화 장치는 현재 블록에 대한 초기 움직임 벡터를 유도할 수 있다(S7701).
여기서, 초기 움직임 벡터는 현재 블록에 대한 머지 후보 리스트를 이용하여 유도될 수 있다. 예컨대, 초기 움직임 벡터는 Merge 모드를 통해 유도되는 후보 움직임 정보를 통해 유도될 수 있다. 머지 후보 리스트는 현재 블록의 공간적 후보 블록들의 움직임 정보 및 시간적 후보 블록의 움직임 정보 중 적어도 하나를 이용하여 유도될 수 있다.
그리고, 영상 복호화 장치는 S7701에서 유도된 초기 움직임 벡터에 대한 움직임 벡터 차분 정보를 복호화하고(S7702), 복호화된 움직임 벡터 차분 정보를 이용하여 초기 움직임 벡터에 대한 움직임 벡터 차분을 유도할 수 있다(S7703). 그리고, 영상 복호화 장치는 S7701에서 유도된 초기 움직임 벡터에 S7703에서 유도된 움직임 벡터 차분을 더하여, 현재 블록에 대한 최종 움직임 벡터를 유도할 수 있다(S7704).
여기서, 움직임 벡터 차분 정보는 움직임 벡터 차분에 대한 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트에 대한 정보를 포함할 수 있다. 또한 움직임 벡터 차분 정보는 움직임 벡터 차분에 대한 X 성분 절대값 정보 또는 Y 성분 절대값 정보 중 적어도 하나를 포함할 수 있다.
이때 부호 세트에 대한 정보는 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트들 중 하나를 지시할 수 있으며, 이는 인덱스의 형태로 표현될 수 있다.
도 78은 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 78을 참고하면, 영상 부호화 장치는 현재 블록에 대한 최종 움직임 벡터를 결정할 수 있다(S7801).
이때 영상 부호화 장치는 RD-비용값 비교 등을 통해 현재 블록에 대한 최종 움직임 벡터를 유도할 수 있다.
그리고, 영상 부호화 장치는 S7801에서 결정된 최종 움직임 벡터에 대한 움직임 벡터 차분을 결정할 수 있다(S7802). 영상 부호화 장치는 S7801에서 결정된 움직임 벡터 차분에 대한 움직임 벡터 차분 정보를 부호화할 수 있다.
여기서, 움직임 벡터 차분은 영상 복호화 장치에서 현재 블록에 대한 초기 움직임 벡터와 더해져 S7801에서 결정된 최종 움직임 벡터를 유도하기 위해 이용될 수 있다.
여기서, 움직임 벡터 차분 정보는 움직임 벡터 차분에 대한 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트에 대한 정보를 포함할 수 있다. 또한 움직임 벡터 차분 정보는 움직임 벡터 차분에 대한 X 성분 절대값 정보 또는 Y 성분 절대값 정보 중 적어도 하나를 포함할 수 있다.
이때 부호 세트에 대한 정보는 X 성분 부호 및 Y 성분 부호 중 어느 하나로 구성되는 부호 세트들 중 하나를 지시할 수 있으며, 이는 인덱스의 형태로 표현될 수 있다.
도 78의 영상 부호화 방법에 의해 생성된 비트스트림(또는 부호화 데이터)은 컴퓨터 판독가능한 기록매체에 저장될 수 있다. 또한, 비트스트림은 초기 움직임 벡터 정보 및 초기 움직임 벡터에 대한 움직임 벡터 차분 정보를 더 포함할 수 있다.
상술한 실시예들은 영상 부호화 장치 및 영상 복호화 장치에서 동일한 방법 혹은 대응되는 방법으로 수행될 수 있다.
상기 실시예들 중 적어도 하나 혹은 적어도 하나의 조합을 이용해서 영상을 부호화/복호화할 수 있다.
상기 실시예를 적용하는 순서는 영상 부호화 장치와 영상 복호화 장치에서 상이할 수 있고, 상기 실시예를 적용하는 순서는 영상 부호화 장치와 영상 복호화 장치에서 동일할 수 있다.
휘도 및 색차 신호 각각에 대하여 상기 실시예를 수행할 수 있고, 휘도 및 색차 신호에 대한 상기 실시예를 동일하게 수행할 수 있다.
본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
본 발명은 영상을 부호화/복호화하는데 이용될 수 있다.

Claims (16)

  1. 복원 영역의 움직임 벡터를 이용하여 현재 블록의 초기 움직임 벡터를 결정하는 단계;
    상기 초기 움직임 벡터를 기초로 상기 현재 블록의 움직임 벡터를 탐색하는 단계; 및
    상기 움직임 벡터를 이용하여 상기 현재 블록의 예측 샘플을 생성하는 단계를 포함하고,
    상기 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 움직임 벡터를 탐색하는 단계는,
    상기 과거 방향의 움직임 벡터가 지시하는 과거 방향의 예측 블록 및 상기 미래 방향의 움직임 벡터가 지시하는 미래 방향의 예측 블록 간의 차이를 이용하여 상기 움직임 벡터를 탐색하는 것을 특징으로 하는 영상 복호화 방법.
  3. 제2항에 있어서,
    상기 움직임 벡터를 탐색하는 단계는,
    상기 과거 방향의 예측 블록 및 상기 미래 방향의 예측 블록 간의 차이를 SAD(Sum of Absolute Difference) 계산 방법에 적용하여 생성된 예측 에러에 기초하여 상기 움직임 벡터를 탐색하는 것을 특징으로 하는 영상 복호화 방법.
  4. 제1항에 있어서,
    상기 움직임 벡터를 탐색하는 단계는,
    기 정의된 크기의 탐색 영역에서 상기 움직임 벡터를 탐색하는 것을 특징으로 하는 영상 복호화 방법.
  5. 제1항에 있어서,
    상기 복원 영역의 움직임 벡터는,
    머지 모드의 후보 움직임 정보인 것을 특징으로 하는 영상 복호화 방법.
  6. 제5항에 있어서,
    상기 머지 모드의 후보 움직임 정보는,
    현재 블록의 공간적 후보 블록들의 움직임 정보 및 시간적 후보 블록의 움직임 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 복호화 방법.
  7. 제1항에 있어서,
    DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 복호화하는 단계를 더 포함하고,
    상기 DMVD 모드 동작 정보가 DMVD 모드 동작을 지시하는 경우, 상기 초기 움직임 벡터를 기초로 상기 현재 블록의 움직임 벡터를 탐색하는 단계를 수행하는 것을 특징으로 하는 영상 복호화 방법.
  8. 제1항에 있어서,
    상기 탐색된 움직임 벡터는,
    상기 현재 블록 이후에 복호화되는 블록의 움직임 벡터 유도에 이용되는 것을 특징으로 하는 영상 복호화 방법.
  9. 복원 영역의 움직임 벡터를 이용하여 현재 블록의 초기 움직임 벡터를 결정하는 단계;
    상기 초기 움직임 벡터를 기초로 상기 현재 블록의 최적 움직임 벡터를 탐색하는 단계; 및
    상기 최적 움직임 벡터의 이용 여부를 판단하여 DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 부호화하는 단계를 포함하고,
    상기 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  10. 제9항에 있어서,
    상기 최적 움직임 벡터를 탐색하는 단계는,
    상기 과거 방향의 움직임 벡터가 지시하는 과거 방향의 예측 블록 및 상기 미래 방향의 움직임 벡터가 지시하는 미래 방향의 예측 블록 간의 차이를 이용하여 상기 최적 움직임 벡터를 탐색하는 것을 특징으로 하는 영상 부호화 방법.
  11. 제10항에 있어서,
    상기 최적 움직임 벡터를 탐색하는 단계는,
    상기 과거 방향의 예측 블록 및 상기 미래 방향의 예측 블록 간의 차이를 SAD(Sum of Absolute Difference) 계산 방법에 적용하여 생성된 예측 에러에 기초하여 상기 최적 움직임 벡터를 탐색하는 것을 특징으로 하는 영상 부호화 방법.
  12. 제9항에 있어서,
    상기 최적 움직임 벡터를 탐색하는 단계는,
    기 정의된 크기의 탐색 영역에서 상기 최적 움직임 벡터를 탐색하는 것을 특징으로 하는 영상 부호화 방법.
  13. 제9항에 있어서,
    상기 복원 영역의 움직임 벡터는,
    머지 모드의 후보 움직임 정보인 것을 특징으로 하는 영상 부호화 방법.
  14. 제13항에 있어서,
    상기 머지 모드의 후보 움직임 정보는,
    현재 블록의 공간적 후보 블록들의 움직임 정보 및 시간적 후보 블록의 움직임 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  15. 제9항에 있어서,
    상기 최적 움직임 벡터는,
    상기 현재 블록 이후에 부호화되는 블록의 움직임 벡터 유도에 이용되는 것을 특징으로 하는 영상 부호화 방법.
  16. 영상 복호화에 사용되는 비트스트림을 포함하는 컴퓨터 판독 가능한 비일시적 기록매체에 있어서,
    상기 비트스트림은 DMVD(Decoder-side Motion Vector Derivation) 모드 동작 정보를 포함하고,
    상기 영상 복호화에서,
    상기 DMVD 모드 동작 정보가 DMVD 모드 동작을 지시하는 경우, 초기 움직임 벡터를 기초로 현재 블록의 움직임 벡터의 탐색이 수행되고,
    상기 초기 움직임 벡터는 복원 영역의 움직임 벡터를 이용하여 결정되고,
    상기 초기 움직임 벡터는 과거 방향의 움직임 벡터 및 미래 방향의 움직임 벡터를 포함하는 것을 특징으로 하는 컴퓨터 판독 가능한 비일시적 기록매체.
PCT/KR2019/007328 2018-06-18 2019-06-18 영상 부호화/복호화 방법 및 장치 WO2019245260A1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201980041236.0A CN112292854A (zh) 2018-06-18 2019-06-18 影像编码/解码方法及装置
US17/253,924 US11647222B2 (en) 2018-06-18 2019-06-18 Method and apparatus for encoding/decoding image
EP19822723.3A EP3809701A4 (en) 2018-06-18 2019-06-18 METHOD AND APPARATUS FOR ENCODING/DECODING AN IMAGE
US18/187,338 US20230239496A1 (en) 2018-06-18 2023-03-21 Method and apparatus for encoding/decoding image

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR10-2018-0069606 2018-06-18
KR20180069606 2018-06-18
KR10-2018-0069604 2018-06-18
KR20180069605 2018-06-18
KR10-2018-0069605 2018-06-18
KR20180069604 2018-06-18

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US17/253,924 A-371-Of-International US11647222B2 (en) 2018-06-18 2019-06-18 Method and apparatus for encoding/decoding image
US18/187,338 Continuation US20230239496A1 (en) 2018-06-18 2023-03-21 Method and apparatus for encoding/decoding image

Publications (1)

Publication Number Publication Date
WO2019245260A1 true WO2019245260A1 (ko) 2019-12-26

Family

ID=68984296

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/007328 WO2019245260A1 (ko) 2018-06-18 2019-06-18 영상 부호화/복호화 방법 및 장치

Country Status (4)

Country Link
US (2) US11647222B2 (ko)
EP (1) EP3809701A4 (ko)
CN (1) CN112292854A (ko)
WO (1) WO2019245260A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022063729A1 (en) * 2020-09-28 2022-03-31 Interdigital Vc Holdings France, Sas Template matching prediction for versatile video coding
WO2023277535A1 (ko) * 2021-06-28 2023-01-05 주식회사 윌러스표준기술연구소 인트라 예측을 이용한 비디오 신호 처리 방법 및 이를 위한 장치

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11956460B2 (en) * 2018-08-31 2024-04-09 Hulu, LLC Selective template matching in video coding
EP3709644A1 (en) * 2019-03-12 2020-09-16 Ateme Method for image processing and apparatus for implementing the same
EP4022922A4 (en) * 2019-09-24 2022-11-23 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR COMBINED INTRA-INTER PREDICTION
US11671616B2 (en) 2021-03-12 2023-06-06 Lemon Inc. Motion candidate derivation
US11936899B2 (en) * 2021-03-12 2024-03-19 Lemon Inc. Methods and systems for motion candidate derivation
CN117981299A (zh) * 2021-09-27 2024-05-03 Oppo广东移动通信有限公司 帧内预测的方法、编码器、解码器和编解码系统
WO2023044918A1 (zh) * 2021-09-27 2023-03-30 Oppo广东移动通信有限公司 帧内预测的方法、编码器、解码器和编解码系统
WO2023044916A1 (zh) * 2021-09-27 2023-03-30 Oppo广东移动通信有限公司 帧内预测的方法、编码器、解码器和编解码系统
US20230139186A1 (en) * 2021-10-28 2023-05-04 Tencent America LLC Template-matching based adaptive motion vector resolution (amvr)
EP4258669A1 (en) * 2022-04-07 2023-10-11 Beijing Xiaomi Mobile Software Co., Ltd. Method and apparatus for dimd intra prediction mode selection in a template area, and encoder/decoder including the same

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160345011A1 (en) * 2014-04-28 2016-11-24 Panasonic Intellectual Property Corporation Of America Image coding method and decoding method related to motion estimation on decoder side
US20170310990A1 (en) * 2014-11-18 2017-10-26 Mediatek Inc. Method of Bi-prediction Video Coding Based on Motion Vectors from Uni-Prediction and Merge Candidate
KR20170131447A (ko) * 2015-03-27 2017-11-29 퀄컴 인코포레이티드 비디오 코딩에서의 모션 벡터 유도
US20180041769A1 (en) * 2016-08-08 2018-02-08 Mediatek Inc. Pattern-based motion vector derivation for video coding
KR20180061060A (ko) * 2016-11-28 2018-06-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170084055A (ko) * 2014-11-06 2017-07-19 삼성전자주식회사 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
WO2018066990A1 (ko) * 2016-10-04 2018-04-12 김기백 영상 데이터 부호화/복호화 방법 및 장치
CN107995489A (zh) * 2017-12-20 2018-05-04 北京大学深圳研究生院 一种用于p帧或b帧的帧内帧间组合预测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160345011A1 (en) * 2014-04-28 2016-11-24 Panasonic Intellectual Property Corporation Of America Image coding method and decoding method related to motion estimation on decoder side
US20170310990A1 (en) * 2014-11-18 2017-10-26 Mediatek Inc. Method of Bi-prediction Video Coding Based on Motion Vectors from Uni-Prediction and Merge Candidate
KR20170131447A (ko) * 2015-03-27 2017-11-29 퀄컴 인코포레이티드 비디오 코딩에서의 모션 벡터 유도
US20180041769A1 (en) * 2016-08-08 2018-02-08 Mediatek Inc. Pattern-based motion vector derivation for video coding
KR20180061060A (ko) * 2016-11-28 2018-06-07 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3809701A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022063729A1 (en) * 2020-09-28 2022-03-31 Interdigital Vc Holdings France, Sas Template matching prediction for versatile video coding
WO2023277535A1 (ko) * 2021-06-28 2023-01-05 주식회사 윌러스표준기술연구소 인트라 예측을 이용한 비디오 신호 처리 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
EP3809701A4 (en) 2022-06-22
EP3809701A1 (en) 2021-04-21
US11647222B2 (en) 2023-05-09
CN112292854A (zh) 2021-01-29
US20210274214A1 (en) 2021-09-02
US20230239496A1 (en) 2023-07-27

Similar Documents

Publication Publication Date Title
WO2019245260A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2020060376A1 (ko) 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치
WO2019112394A1 (ko) 채널들 간의 선택적인 정보 공유를 사용하는 부호화 및 복호화를 위한 방법 및 장치
WO2020067835A1 (ko) 어파인 예측을 이용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2017043816A1 (ko) 인터-인트라 병합 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2020141911A1 (ko) 화면간 예측을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2020009434A1 (ko) 이차 변환을 기반으로 비디오 신호를 처리하는 방법 및 장치
WO2018131982A1 (ko) 영상 신호 부호화/복호화 방법 및 장치
WO2018135885A1 (ko) 변환 처리를 제공하는 영상 복호화 및 부호화 방법
WO2021015524A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020139059A1 (ko) 움직임 벡터 차분의 부호화 방법 및 부호화 장치, 및 움직임 벡터 차분의 복호화 방법 및 복호화 장치
WO2015122550A1 (ko) 동영상 처리 방법 및 장치
WO2021101317A1 (ko) 무손실 색상 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2011129672A2 (ko) 영상 부호화/복호화 장치 및 방법
WO2020009449A1 (ko) 어파인 예측을 이용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2020013541A1 (ko) 비디오 신호를 처리하기 위한 방법 및 장치
WO2020184964A1 (ko) 인터 예측을 위한 비디오 신호의 처리 방법 및 장치
WO2020032609A1 (ko) 영상 코딩 시스템에서 어파인 머지 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2020251269A1 (ko) 영상 디코딩 방법 및 그 장치
WO2020184952A1 (ko) 비디오 신호에서 인터 예측을 위한 움직임 벡터 차분 정보를 처리하기 위한 비디오 신호의 처리 방법 및 장치
WO2020122654A1 (ko) 현재 픽쳐 참조를 이용한 비디오 신호 처리 방법 및 장치
WO2020060374A1 (ko) 어파인 예측을 이용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2020050695A1 (ko) 영상 코딩 시스템에서 머지 후보 리스트를 사용하는 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2011021915A2 (ko) 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
WO2019117645A1 (ko) 예측 네트워크를 사용하는 영상의 부호화 및 복호화를 위한 방법 및 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19822723

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019822723

Country of ref document: EP

Effective date: 20210118