KR102319033B1 - 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치 - Google Patents

효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치 Download PDF

Info

Publication number
KR102319033B1
KR102319033B1 KR1020200001229A KR20200001229A KR102319033B1 KR 102319033 B1 KR102319033 B1 KR 102319033B1 KR 1020200001229 A KR1020200001229 A KR 1020200001229A KR 20200001229 A KR20200001229 A KR 20200001229A KR 102319033 B1 KR102319033 B1 KR 102319033B1
Authority
KR
South Korea
Prior art keywords
block
motion information
candidate
sub
prediction
Prior art date
Application number
KR1020200001229A
Other languages
English (en)
Other versions
KR20200085235A (ko
Inventor
문주희
원동재
하재민
Original Assignee
세종대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세종대학교산학협력단 filed Critical 세종대학교산학협력단
Priority to PCT/KR2020/000211 priority Critical patent/WO2020141962A1/ko
Priority to US17/420,784 priority patent/US20220116588A1/en
Publication of KR20200085235A publication Critical patent/KR20200085235A/ko
Priority to KR1020210142326A priority patent/KR102585178B1/ko
Application granted granted Critical
Publication of KR102319033B1 publication Critical patent/KR102319033B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

Abstract

본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 현재 블록의 후보 리스트를 생성하고, 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여 현재 블록의 인터 예측을 수행할 수 있다. 여기서, 복수의 후보는, 공간적 후보, 시간적 후보 또는 복원정보기반 후보 중 적어도 하나를 포함하고, 복원정보기반 후보는 현재 블록 이전에 복호화된 움직임정보를 저장하는 버퍼로부터 추가될 수 있다.

Description

효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치{IMAGE ENCODING/DECODING METHOD AND APPARATUS USING EFFICIENT MOTION INFORMATION PREDICTION}
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것으로, 보다 상세하게는 현재 블록의 예측 블록 생성 시, 복원된 복수의 움직임정보들 중 현재 블록의 최적 움직임정보를 결정하기 위한 예측기에 해당하는 움직임정보를 효율적으로 결정하는 방법 및 장치에 관한 것이다.
최근, 인터넷에서는 동영상과 같은 멀티미디어 데이터의 수요가 급격히 증가하고 있다. 하지만 채널(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에서는 화면 내 예측(또는 인트라 예측), 화면 간 예측(또는 인터 예측), 변환, 양자화, 엔트로피 부호화 및 인-루프 필터 등의 기술을 정의하고 있다.
본 발명은 MERGE/AMVP 후보 리스트를 생성할 때 이용되는 움직임정보들을 효율적으로 유도하여 예측 효율을 향상시킬 수 있는 방법을 제안하고자 한다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 현재 블록의 후보 리스트를 생성하고, 상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 복수의 후보는, 서브 블록 단위 시간적 후보를 포함하고, 상기 서브 블록 단위 시간적 후보는, 상기 현재 블록의 서브 블록 별로 움직임정보를 유도하기 위한 후보로서, 상기 현재 블록에 시간적으로 인접한 타깃 블록의 움직임정보를 가질 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 서브 블록은, 복호화 장치에 기-설정된 고정된 크기인 NxM 블록일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 타깃 블록의 서브 블록은, 상기 현재 블록의 서브 블록의 위치에서 소정의 시간적 움직임벡터만큼 쉬프트된 위치의 블록으로 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 시간적 움직임벡터는, 상기 현재 블록의 공간적 주변 블록 중 특정 위치의 주변 블록만을 이용하여 설정되고, 상기 특정 위치의 주변 블록은 상기 현재 블록의 좌측 블록일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 시간적 움직임벡터의 설정은, 상기 특정 위치의 주변 블록의 참조 픽쳐와 상기 타깃 블록이 속한 타깃 픽쳐가 동일한 경우에 한하여 수행될 수 있다.
본 발명에 따른 컴퓨터로 판독가능한 기록 매체는 영상 복호화 방법에 의해 복호화되는 비트스트림을 저장할 수 있다.
본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 영상 복호화 방법은, 현재 블록의 후보 리스트를 생성하는 단계 및 상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행하는 단계를 포함할 수 있다.
본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 복수의 후보는, 서브 블록 단위 시간적 후보를 포함하고, 상기 서브 블록 단위 시간적 후보는, 상기 현재 블록의 서브 블록 별로 움직임정보를 유도하기 위한 후보로서, 상기 현재 블록에 시간적으로 인접한 타깃 블록의 움직임정보를 가질수 있다.
본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 서브 블록은, 복호화 장치에 기-설정된 고정된 크기인 NxM 블록일 수 있다.
본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 타깃 블록의 서브 블록은, 상기 현재 블록의 서브 블록의 위치에서 소정의 시간적 움직임벡터만큼 쉬프트된 위치의 블록으로 결정될 수 있다.
본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 시간적 움직임벡터는, 상기 현재 블록의 공간적 주변 블록 중 특정 위치의 주변 블록만을 이용하여 설정되고, 상기 특정 위치의 주변 블록은 상기 현재 블록의 좌측 블록일 수 있다.
본 발명에 따른 컴퓨터로 판독가능한 기록 매체에 있어서, 상기 시간적 움직임벡터의 설정은, 상기 특정 위치의 주변 블록의 참조 픽쳐와 상기 타깃 블록이 속한 타깃 픽쳐가 동일한 경우에 한하여 수행될 수 있다.
본 발명에 따르면, MERGE/AMVP 후보 리스트를 생성할 때 이용되는 움직임정보들을 효율적으로 유도하여 예측 효율을 향상시킬 수 있다.
도 1은 영상 부호화 장치를 간략하게 나타낸 흐름도이다.
도 2는 영상 부호화 장치의 예측부를 상세히 설명하기 위한 도면이다.
도 3은 SKIP, MERGE 모드의 후보 움직임정보를 유도하는 방법을 설명하기 위한 도면이다.
도 4는 AMVP 모드의 후보 움직임정보를 유도하는 방법을 나타낸 흐름도이다.
도 5는 예측 정보를 부호화하는 방법을 나타낸 흐름도이다.
도 6은 영상 복호화 장치를 간략하게 나타낸 흐름도이다.
도 7은 영상 복호화 장치의 예측부를 설명하기 위한 도면이다.
도 8은 예측 정보를 복호화하는 방법을 나타낸 흐름도이다.
도 9는 본 실시예에 따른 MERGE/AMVP 후보 리스트를 구성하는 방법을 설명하기 위한 흐름도이다.
도 10은 본 실시예에 따른 시간적 후보 움직임정보를 유도하는 방법을 설명하기 위한 도면이다.
도 11은 본 실시예에 따른 시간적 후보 움직임정보를 유도할 때, 타깃 픽쳐에서 타깃 블록을 결정하는 제1 방법을 설명하기 위한 도면이다.
도 12는 본 실시예에 따른 시간적 후보 움직임정보를 유도할 때, 타깃 픽쳐에서 타깃 블록을 결정하는 제2 방법을 설명하기 위한 도면이다.
도 13은 본 실시예에 따른 시간적 후보 움직임정보를 유도할 때, 타깃 픽쳐에서 타깃 블록을 결정하는 제3 방법을 설명하기 위한 도면이다.
도 14는 본 실시예에 따른 History-based 후보 움직임정보를 유도하는 제1 방법을 설명하기 위한 도면이다.
도 15는 본 실시예에 따른 History-based 후보 움직임정보를 유도하는 제2 방법을 설명하기 위한 도면이다.
도 16은 본 실시예에 따른 평균 후보 움직임정보를 유도하는 제1 방법을 설명하기 위한 도면이다.
도 17은 본 실시예에 따른 평균 후보 움직임정보를 유도하는 제2 방법을 설명하기 위한 도면이다.
본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
또한, 본 명세서에서 설명되는 장치 및 방법에 관한 실시예에 있어서, 장치의 구성 일부 또는 방법의 단계 일부는 생략될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부의 순서가 변경될 수 있다. 또한 장치의 구성 일부 또는 방법의 단계 일부에 다른 구성 또는 다른 단계가 삽입될 수 있다.
또한, 본 발명의 제1 실시예의 일부 구성 또는 일부 단계는 본 발명의 제2 실시예에 부가되거나, 제2 실시예의 일부 구성 또는 일부 단계를 대체할 수 있다.
덧붙여, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
본 명세서에서, 블록은 단위, 영역, 유닛, 파티션 등으로 다양하게 표현될 수 있고, 샘플은 화소, 펠(pel), 픽셀 등으로 다양하게 표현될 수 있다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 영상 부호화 장치의 구성을 간략하게 나타낸 블록 흐름도이다. 영상 부호화 장치는 영상을 부호화하는 장치로써 크게 블록 분할부, 예측부, 변환부, 양자화부, 엔트로피 부호화부, 역 양자화부, 역 변환부, 가산부, 인루프 필터부, 메모리부, 감산부를 포함할 수 있다.
블록 분할부(101)는 최대 크기의 부호화 하고자 하는 블록(이하, 최대 부호화 블록이라 칭함)으로부터 최소 크기의 부호화 하고자 하는 블록(이하, 최소 부호화 블록이라 칭함)까지 분할해 나간다. 블록 분할 방법에는 다양한 방법이 있다. 쿼드-트리 분할(이하, QT(Quad-Tree) 분할이라 칭함)은 현재 부호화 블록을 정확히 사분하는 분할이다. 이진-트리 분할(이하, BT(Binary-Tree) 분할이라 칭함)은 부호화 블록을 가로 방향 혹은 세로 방향으로 정확히 이분하는 분할이다. 터너리-트리(Ternary-tree) 분할은 부호화 블록을 가로 또는 세로 방향 중 어느 하나의 방향으로 삼분할하는 분할이다. 부호화 블록이 가로 방향으로 분할된 경우, 분할된 블록의 높이의 비는 {1:n:1}일 수 있다. 또는, 부호화 블록이 세로 방향으로 분할된 경우, 분할된 블록의 너비의 비는 {1:n:1}일 수 있다. 여기서, n은 1, 2, 3, 또는 그 이상의 자연수일 수 있다. 이 외에 다양한 분할 방법이 있을 수 있다. 또한, 여러 분할 방법들을 동시에 고려하여 분할해 나가는 방법도 가능하다.
예측부(102)는 현재 원본 블록에서 현재 예측 하고자 하는 블록(이하, 예측 블록이라 칭함)의 주변 화소나 이전에 이미 부호화/복호화가 끝난 참조 픽쳐 내 화소들을 이용하여 예측 블록을 생성한다. 예측 블록은 부호화 블록 내에서 1개 혹은 그 이상의 예측 블록들이 생성될 수 있다. 부호화 블록 내 예측 블록이 1개일 경우, 예측 블록은 부호화 블록과 동일한 형태이다. 동영상 신호의 예측 기술에는 크게 화면 내 예측과 화면 간 예측으로 구성 되어 있는데, 화면 내 예측은 현재 블록의 주변 화소들을 이용하여 예측 블록을 생성하는 방식이고, 화면 간 예측은 이전에 이미 부호화/복호화가 끝난 참조 픽쳐에서 현재 블록과 가장 유사한 블록을 찾아서 예측 블록을 생성하는 방식이다. 그 후, 원본 블록과 예측 블록을 뺀 잔차 블록을 율-왜곡 최적화(RDO: Rate-Distortion Optimization) 등 다양한 기법을 이용하여 예측 블록의 최적 예측 모드를 결정한다. RDO 비용 계산식은 수학식 1과 같다.
Figure 112020000969493-pat00001
D, R, J는 각각 양자화에 의한 열화, 압축 스트림의 레이트, RD 비용이고, Φ는 부호화 모드, λ는 라그랑지안 승수(Lagrangian multiplier)로 에러의 양과 비트량 간의 단위를 일치시키기 위한 스케일 보정용 계수로 사용한다. 부호화 과정에서 최적의 부호화 모드로 선택되기 위해서는 해당 모드를 적용했을 때의 J 즉, RD-비용값이 다른 모드를 적용했을 때보다 작아야 하는데, RD-비용값을 구하는 식에는 비트율과 에러를 동시에 고려하여 계산한다.
화면 내 예측부(미도시)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 블록을 생성할 수 있다. 화면 내 예측이 수행될 현재 블록의 주변 블록의 예측 모드가 화면 간 예측 예측인 경우, 화면 간 예측 예측이 적용된 주변 블록에 포함되는 참조 픽셀을, 화면 내 예측이 적용된 주변의 다른 블록 내의 참조 픽셀로 대체될 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를, 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
화면 내 예측에서 예측 모드는 참조 픽셀 정보를 예측 방향에 따라 사용하는 방향성 예측 모드와 예측을 수행시 방향성 정보를 사용하지 않는 비방향성 모드를 가질 수 있다. 휘도 정보를 예측하기 위한 모드와 색차 정보를 예측하기 위한 모드가 상이할 수 있고, 색차 정보를 예측하기 위해 휘도 정보를 예측하기 위해 사용된 화면 내 예측 예측 모드 정보 또는 예측된 휘도 신호 정보를 활용할 수 있다.
화면 내 예측부는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 필터로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 적응적으로 결정할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
화면 내 예측부의 참조 화소 보간부는 예측 단위의 화면 내 예측 예측 모드가 참조 화소를 보간한 화소값을 기초로 화면 내 예측 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 분수 단위 위치의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
화면 간 예측부(미도시)는, 메모리(110)에 저장된 기-복원된 참조영상과 움직임 정보를 이용하여 예측 블록을 생성한다. 움직임 정보는 예컨대 움직임 벡터, 참조픽처 인덱스, 리스트 1 예측 플래그, 리스트 0 예측 플래그 등을 포함할 수 있다.
화면 간 예측부는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 블록을 유도할 수 있다. 또한, 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로, 현재 블록의 예측 블록을 유도할 수도 있다. 본 발명의 일 실시예에 따른 화면 간 예측부는 참조 픽쳐 보간부, 움직임 예측부, 움직임 보상부를 포함할 수 있다.
참조 픽쳐 보간부에서는 메모리(110)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8 탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4 탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.
움직임 예측부는 참조 픽쳐 보간부에 의해 보간된 참조 픽쳐를 기초로 움직임 예측을 수행할 수 있다. 움직임 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 움직임 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 움직임 벡터값을 가질 수 있다. 움직임 예측부에서는 움직임 예측 방법을 다르게 하여 현재 블록의 예측 블록을 예측할 수 있다. 움직임 예측 방법으로 스킵(Skip) 모드, 머지(Merge) 모드, AMVP(Advanced Motion Vector Prediction) 모드 등 다양한 방법이 사용될 수 있다.
도 2는 영상 부호화 장치의 예측부 내의 흐름을 설명한 흐름도이다. 원본 정보와 복원 정보를 이용하여 화면 내 예측을 수행(201)하는 경우, 각 예측 모드 별로 최적 화면 내 예측 모드를 RD-비용값을 이용하여 결정(202)하고, 예측 블록을 생성한다. 원본 정보와 복원 정보를 이용하여 화면 간 예측을 수행(203)하는 경우, SKIP 모드, MERGE 모드, AMVP 모드에 대해서 RD-비용값을 계산한다. MERGE 후보 탐색부(204)에서는 SKIP 모드와, MERGE 모드를 위한 후보 움직임정보 세트를 구성한다. 해당 후보 움직임정보 세트 중, 최적 움직임정보를 RD-비용값을 이용하여 결정(205)한다. AMVP 후보 탐색부(206)에서는 AMVP 모드를 위한 후보 움직임정보 세트를 구성한다. 해당 후보 움직임정보 세트들을 이용하여 움직임 추정을 수행(207)하고, 최적 움직임정보를 결정한다. 각 모드들에서 결정된 최적 움직임정보를 이용하여 움직임보상을 수행(208)하여 예측 블록을 생성한다.
상기 전술한 화면 간 예측은 3가지 모드(SKIP 모드, MERGE 모드, AMVP 모드)로 구성되어 있을 수 있다. 각 예측 모드는 움직임정보(예측 방향 정보, 참조 픽쳐 정보, 움직임 벡터)를 이용하여 현재 블록의 예측 블록을 구하고, 움직임정보를 이용한 추가적인 예측 모드가 있을 수 있다.
SKIP 모드는 이미 복원된 영역의 움직임정보를 이용하여 최적 예측 정보를 결정한다. 복원된 영역 내에서 움직임정보 후보군을 구성하여 해당 후보군 중, RD-비용값이 최소인 후보를 예측 정보로 사용하여 예측 블록을 생성하는데, 여기서 움직임정보 후보군을 구성하는 방법은 하기 설명할 MERGE 모드의 움직임정보 후보군을 구성하는 방법과 동일하므로, 본 설명에서는 생략한다.
MERGE 모드는 이미 복원된 영역의 움직임정보를 이용하여 최적 예측 정보를 결정한다는 점에서 SKIP 모드와 동일하다. 그러나 SKIP 모드는 예측 에러가 0이 되도록 하는 움직임정보를 움직임정보 후보군에서 탐색하고, MERGE 모드는 예측 에러가 0이 아닌 움직임 정보를 움직임정보 후보군에서 탐색한다는 점에서 그 차이를 달리한다. SKIP 모드와 마찬가지로, 복원된 영역 내에서 움직임정보 후보군을 구성하여 해당 후보군 중, RD-비용값이 최소인 후보를 예측 정보로 사용하여 예측 블록을 생성한다.
도 3의 301은 SKIP 모드와 MERGE 모드의 움직임정보 후보군을 생성하는 방법을 나타낸 것이다. 움직임정보 후보군의 최대 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일하게 결정할 수도 있고, 영상 부호화 장치의 상위 헤더(상위 헤더란, 비디오 파라미터단, 시퀀스 파라미터단, 픽쳐 파라미터단 등 블록의 상위단에서 전송되는 파라미터들을 의미함)에서 해당 개수 정보가 기 전송될 수도 있다. S305 단계와 S306 단계의 설명에서 공간적 후보 블록과 시간적 후보 블록이 화면 간 예측 모드로 부호화 되었을 때에만, 해당 움직임정보를 이용하여 유도된 움직임정보를 움직임정보 후보군에 포함시킨다. S305 단계에서는 동일 픽쳐 내에서 현재 블록 주변의 공간적 후보 블록 5개 중, 4개 후보를 선택한다. 공간적 후보의 위치는 도 3의 302를 참조하고, 각 후보들의 위치는 복원된 영역 내에서 어떤 블록으로든 변경 가능하다. 공간적 후보는 A1, A2, A3, A4, A5 순으로 고려하여 먼저 사용 가능한 공간적 후보 블록의 움직임정보를 공간적 후보로 결정한다. 다만, 이는 우선 순위의 일예에 불과하며, 우선 순위는 A2, A1, A3, A4, A5 순일 수도 있고, A2, A1, A4, A3, A5 순일 수도 있다. 중복되는 움직임정보가 있을 경우, 우선 순위가 높은 후보의 움직임정보만을 고려한다. S306 단계에서는 시간적 후보 블록 2개 중, 1개 후보를 선택한다. 시간적 후보의 위치는 도 3의 302를 참조하고, 각 후보들의 위치는 Collocated 픽쳐 내에서 현재 픽쳐의 현재 블록 위치와 동일한 위치의 블록을 기준으로 결정된다. 여기서, Collocated 픽쳐는 복원 픽쳐 내에서 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 설정 가능하다. 시간적 후보는 B1, B2 블록 순으로 고려하여 먼저 사용 가능한 후보 블록의 움직임 정보를 시간적 후보로 결정한다. 시간적 후보의 움직임정보를 결정하는 방법은 도 3의 303을 참조한다. Collocated 픽쳐 내의 후보 블록(B1, B2) 움직임정보는 참조 픽쳐 B에 있는 예측 블록을 가리키고 있다. (단, 각 후보 블록의 참조 픽쳐는 서로 다를 수 있음. 본 설명에서는 편의상 이를 모두 참조 픽쳐 B라고 표현함) 해당 움직임벡터를 Collocated 픽쳐와 참조 픽쳐 B의 거리 대비, 현재 픽쳐와 참조 픽쳐 A의 거리의 비율을 계산하여 해당 비율만큼 후보 블록의 움직임벡터를 스케일하여 시간적 후보 움직임정보의 움직임벡터를 결정한다. 수학식 2는 스케일링 수식을 의미한다.
Figure 112020000969493-pat00002
MV는 시간적 후보 블록 움직임정보의 움직임벡터, MVscale은 스케일링된 움직임벡터, TB는 Collocated 픽쳐와 참조 픽쳐 B의 시간적 거리, TD는 현재 픽쳐와 참조 픽쳐 A의 시간적 거리를 의미한다. 또한, 참조 픽쳐 A, 참조 픽쳐 B는 동일한 참조 픽쳐일 수도 있다. 이렇게 스케일링된 움직임벡터를 시간적 후보의 움직임벡터로 결정하고, 시간적 후보 움직임정보의 참조 픽쳐 정보는 현재 픽쳐의 참조 픽쳐로 결정하여, 시간적 후보의 움직임정보를 유도한다. S307 단계는 S305, S306 단계에서 최대 움직임정보 후보군 개수를 채우지 못했을 경우에만 수행되며, 이전 단계에서 유도된 움직임정보 후보들의 조합으로 새로운 양방향 움직임정보 후보군을 추가하는 단계이다. 양방향 움직임정보 후보란, 이전까지 유도된 과거 혹은 미래 방향의 움직임정보들을 하나씩 가져와서 새로운 후보로 조합하여 만들어내는 것이다. 도 3의 304 표는 양방향 움직임정보 후보 조합의 우선순위를 나타낸 것이다. 본 표의 조합 이외에 추가적인 조합이 나올 수 있으며, 본 표는 하나의 예시를 나타낸 것이다. 양방향 움직임정보 후보를 이용하여도 최대 움직임정보 후보군 개수를 채우지 못했을 경우, S307 단계를 수행한다. S308 단계에서는 움직임정보 후보의 움직임벡터를 제로 움직임벡터로 고정하고, 예측 방향에 따른 참조 픽쳐를 달리하여서 최대 움직임정보 후보군의 개수를 채운다.
AMVP 모드는 예측 방향에 따른 참조 픽쳐 별로 움직임 추정을 거쳐 최적 움직임정보를 결정한다. 여기서, 예측 방향은 과거/미래 중 한 방향만을 사용하는 단방향 일수도 있고, 과거와 미래 방향 모두를 사용하는 양방향 일수도 있다. 움직임 추정을 통해 결정된 최적 움직임정보를 이용하여 움직임 보상을 수행하여 예측 블록을 생성한다. 여기서, 예측 방향에 따른 참조 픽쳐마다 움직임 추정을 위한 움직임정보 후보군을 유도한다. 해당 움직임정보 후보군은 움직임 추정의 시작 지점으로 사용된다. AMVP 모드의 움직임 추정을 위한 움직임정보 후보군을 유도하는 방법은 도 4를 참조한다.
움직임정보 후보군의 최대 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일하게 결정할 수도 있고, 영상 부호화 장치의 상위 헤더에서 해당 개수 정보가 기 전송될 수도 있다. S401 단계와 S402 단계의 설명에서 공간적 후보 블록과 시간적 후보 블록이 화면 간 예측 모드로 부호화 되었을 때에만, 해당 움직임정보를 이용하여 유도된 움직임정보를 움직임정보 후보군에 포함시킨다. S401 단계에서는 S305 단계의 설명과 다르게, 공간적 후보로서 유도되는 개수(2개)가 다를 수 있고, 공간적 후보를 선택하기 위한 우선 순위 또한 다를 수 있다. 나머지 설명은 S305 단계의 그것과 동일하다. S402 단계는 S306 단계의 설명과 동일하다. S403 단계에서는 현재까지 유도된 후보들 중, 중복되는 움직임정보가 있다면 제거한다. S404 단계는 S308 단계의 설명과 동일하다. 이렇게 유도된 움직임정보 후보들 중, RD-비용값이 최소인 움직임정보 후보를 최적 움직임정보 후보로 선택하여 해당 움직임정보를 기준으로 움직임 추정 과정을 거쳐 AMVP 모드의 최적 움직임정보를 구한다.
변환부(103)는 원본 블록과 예측 블록의 차이인 잔차 블록을 변환하여 변환 블록을 생성한다. 변환 블록은 변환 및 양자화 과정을 위해 사용되는 가장 작은 단위이다. 변환부는 잔차 신호를 주파수 영역으로 변환하여 변환 계수를 가지는 변환 블록을 생성한다. 여기서 잔차 신호를 주파수 영역으로 변환하는 방법으로는 이산 코사인 변환(DCT: Discrete Cosine Transform)기반 변환, 이산 사인 변환(DST: Discrete Sine Transform), KLT(Karhunen Loeve Transform) 등 다양한 변환 기법을 이용할 수 있으며, 이를 이용하여 잔차 신호가 주파수 영역으로 변환되어 변환 계수가 생성 된다. 변환 기법을 편하게 사용하기 위해 기저벡터(basis vector)를 이용하여 행렬 연산을 하게 되는데 예측 블록이 어떤 예측 모드로 부호화 되었는지에 따라서 행렬 연산 시 변환 기법들을 다양하게 섞어 사용할 수 있다. 예를 들어, 화면 내 예측 시 예측 모드에 따라 가로 방향으로는 이산 코사인 변환을 사용하고 세로 방향으로는 이산 사인 변환을 사용 할 수도 있다.
양자화부(104)는 변환 블록을 양자화 하여 양자화된 변환 블록을 생성한다. 즉, 양자화부는 변환부(103)로부터 생성되는 변환 블록의 변환 계수들을 양자화 하여 양자화된 변환 계수를 가지는 양자화된 변환 블록(Quantized Transform Coefficient)을 생성한다. 양자화 방법으로는 데드존 균일 경계 양자화(DZUTQ: Dead Zone Uniform Threshold Quantization) 또는 양자화 가중치 행렬 (Quantization Weighted Matrix) 등이 이용될 수 있지만, 이를 개량한 양자화 등 다양한 양자화 방법이 이용될 수 있다.
한편, 이상에서는 영상 부호화 장치가 변환부 및 양자화부를 포함하는 것을 도시하고 설명 했지만, 변환부 및 양자화부는 선택적으로 포함될 수 있다. 즉, 영상 부호화 장치는 잔차 블록을 변환하여 변환 블록을 생성하고 양자화 과정은 수행하지 않을 수 있으며, 잔차 블록을 주파수 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 심지어는 변환과 양자화 과정을 모두 수행하지 않을 수 있다. 영상 부호화 장치에서 변환부와 양자화부 중 일부 과정이 수행되지 않거나, 모든 과정이 수행 되지 않더라도 엔트로피 부호화부의 입력으로 들어가는 블록을 통상적으로 '양자화된 변환 블록'이라 일컫는다.
엔트로피 부호화부(105)는 양자화된 변환 블록을 부호화하여 비트스트림을 출력한다. 즉, 엔트로피 부호화부는 양자화부로부터 출력되는 양자화된 변환 블록의 계수들을 엔트로피 부호화(Entropy Encoding) 등 다양한 부호화 기법을 이용하여 부호화하고, 후술하는 영상 복호화 장치에서 해당 블록을 복호화 하는데 필요한 부가적인 정보들(예를 들면, 예측 모드에 대한 정보(예측 모드에 대한 정보란 예측부에서 결정된 움직임정보 혹은 화면 내 예측 모드 정보 등이 포함될 수 있음), 양자화 계수 등)을 포함하는 비트스트림을 생성하고 출력한다.
역 양자화부(106)는 양자화된 변환 블록에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화 변환 블록을 복원한다.
역 변환부(107)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화 변환 블록을 역 변환하여 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.
한편, 이상에서는 역 양자화부와 역 변환부는 양자화부와 변환부에서 사용한 양자화 방식과 변환 방식을 역으로 사용하여 역 양자화 및 역 변환 할 수 있다. 또한 변환부와 양자화부에서 양자화만을 수행하고 변환을 수행하지 않은 경우에는 역 양자화만을 수행하고 역 변환을 수행하지 않을 수 있다. 만약, 변환 및 양자화를 모두 수행하지 않은 경우, 역 양자화부와 역 변환부도 역 변환 및 역 양자화를 모두 수행하지 않거나 영상 부호화 장치에 포함되지 않고 생략 될 수 있다.
가산부(108)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원한다.
필터부(109)는 현재 픽쳐 내 모든 블록들이 복원된 이후, 픽쳐 전체에 걸쳐서 추가적으로 필터링 해주는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 등이 있다. 디블로킹 필터링이란 영상을 블록 단위로 부호화하면서 발생하는 블록 왜곡을 감소시키는 작업을 말하며, SAO(Sample Adaptive Offset)란 복원 화소에 특정 값을 감산하거나 가산함으로써, 복원 영상과 원본 영상간 차이를 최소화시키는 작업을 말한다. ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. ALF를 적용할지 여부에 관련된 정보는 부호화 단위(Coding Unit, CU) 별로 전송될 수 있고, 각각의 블록에 따라 적용될 ALF 필터의 모양 및/또는 필터 계수는 달라질 수 있다. 또한, 적용 대상 블록의 특성에 상관없이 동일한 형태(고정된 형태)의 ALF 필터가 적용될 수도 있다.
메모리(110)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용 될 수 있다.
감산부(111)는 현재 원본 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다.
도 5는 영상 부호화 장치 내 엔트로피 부호화부에서 코딩 정보의 부호화 흐름을 나타낸 흐름도이다. S501 단계에서는 SKIP 모드의 동작 정보를 부호화한다. S502 단계에서는 SKIP 모드의 동작 여부를 판단한다. S502 단계에서 SKIP 모드가 동작한다면 S507 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다. S502 단계에서 SKIP 모드가 동작하지 않는다면 S503 단계에서 예측 모드를 부호화한다. S503 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S504 단계에서 예측 모드가 화면 간 예측 모드였다면, S505 단계에서 MERGE 모드의 동작 정보를 부호화한다. S506 단계에서는 MERGE 모드의 동작 여부를 판단한다. S506 단에서 MERGE 모드가 동작한다면 S507 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 부호화한 후, 본 흐름도를 종료한다. S506 단계에서 MERGE 모드가 동작하지 않는다면 S508 단계에서 예측 방향을 부호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다. S509 단계에서는 예측 방향이 미래방향인지 아닌지를 판단한다. S509 단계에서 예측 방향이 미래 방향이 아니었다면 S510 단계에서 과거 방향의 참조 픽쳐 색인 정보를 부호화한다. S511 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 부호화한다. S512 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 부호화한다. S509 단계에서 예측 방향이 미래 방향 혹은 양방향이거나 S512 단계가 끝나면 S513 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. S513 단계에서 예측 방향이 과거 방향이 아니었다면 S514 단계에서 미래 방향 참조 픽쳐 색인 정보를 부호화한다. S515 단계에서는 미래 방향의 MVD 정보를 부호화한다. S516 단계에서는 미래 방향의 MVP 정보를 부호화한 후, 본 흐름도를 종료한다. S504 단계에서 예측 모드가 화면 내 예측 모드였다면, S517 단계에서 화면 내 예측 모드 정보를 부호화한 후, 본 흐름도를 종료한다.
도 6은 영상 복호화 장치(600)의 구성을 간략하게 나타낸 블록 흐름도이다.
영상 복호화 장치(600)는 영상을 복호화하는 장치로서, 크게 블록 엔트로피 복호화부, 역-양자화부, 역-변환부, 예측부, 가산부, 인루프 필터부, 메모리를 포함할 수 있다. 영상 부호화 장치에서 부호화 블록은 영상 복호화 장치에서 복호화 블록이라 칭한다.
엔트로피 복호화부(601)는 영상 부호화 장치로부터 전송받은 비트스트림을 해석하여 해당 블록을 복호화 하는데 필요한 여러 정보들과 양자화된 변환 계수를 읽어 들인다.
역 양자화부(602)는 엔트로피 복호화부에서 복호화한 양자화 계수에 대하여 양자화 시에 사용한 양자화 기법을 역으로 수행하여 역 양자화된 계수를 가지는 역 양자화된 블록을 복원한다.
역 변환부(603)는 변환 시에 사용한 방법과 동일한 방법을 이용하여 역 양자화된 변환 블록을 역 변환하여 차분 신호를 가지는 잔차 블록을 복원하는데, 변환부에서 이용한 변환 기법을 역으로 수행하여 역 변환한다.
예측부(604)는 엔트로피 복호화부에서 복호화한 예측 모드 정보를 이용하여 예측 블록을 생성하는데, 이는 영상 부호화 장치의 예측부에서 수행했던 예측 방식과 동일한 방식을 이용한다.
가산부(605)는 역 변환부에서 복원된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산하여 현재 블록을 복원한다.
필터부(606)는 현재 픽쳐 내 모든 블록을 복원한 이후, 픽쳐 전체에 걸쳐서 추가적인 필터링은 하는 과정으로 디블로킹 필터링, SAO(Sample Adaptive Offset), ALF 등이 있으며, 상세한 내용은 기 전술한 영상 부호화 장치의 인루프 필터부에서 설명한 바와 동일하다.
메모리(607)는 역 변환부에서 생성된 잔차 신호와, 예측을 통하여 생성된 예측 블록을 가산한 후, 인루프 필터부에서 추가적인 필터링을 거친 복원된 현재 블록을 저장하며, 다음 블록 또는 다음 사진 등을 예측하는데 활용 될 수 있다.
도 7은 영상 복호화 장치의 예측부 내의 흐름을 설명한 흐름도이다. 예측 모드가 화면 내 예측이라면, 최적 화면 내 예측 모드 정보를 결정(701)하고, 화면 내 예측을 수행(702)하여 예측 블록을 생성한다. 예측 모드가 화면 간 예측이라면, SKIP, MERGE, AMVP 모드 중 최적 예측 모드를 결정(703)한다. SKIP 모드 혹은 MERGE 모드로 복호화할 경우, MERGE 후보 탐색부(704)에서 SKIP 모드와, MERGE 모드를 위한 후보 움직임정보 세트를 구성한다. 해당 후보 움직임정보 세트 중, 전송된 후보 인덱스(e.g., 머지 인덱스)를 이용하여 최적 움직임정보를 결정(705)한다. AMVP 모드로 복호화할 경우, AMVP 후보 탐색부(706)에서는 AMVP 모드를 위한 후보 움직임정보 세트를 구성한다. 해당 후보 움직임정보 후보들 중, 전송된 후보 인덱스(e.g., MVP 정보)를 이용하여 최적 움직임 정보를 결정(707)한다. 이후, 각 모드들에서 결정된 최적 움직임정보를 이용하여 움직임 보상을 수행(708)하여 예측 블록을 생성한다.
도 8은 영상 복호화 장치에서 코딩 정보의 복호화 흐름을 나타낸 흐름도이다. S801 단계에서는 SKIP 모드의 동작 정보를 복호화한다. S802 단계에서는 SKIP 모드의 동작 여부를 판단한다. S802 단계에서 SKIP 모드가 동작한다면 S807 단계에서 SKIP 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료한다. S802 단계에서 SKIP 모드가 동작하지 않는다면 S803 단계에서 예측 모드를 복호화한다. S803 단계에서는 예측 모드가 화면 간 예측인지 화면 내 예측 모드인지를 판단한다. S804 단계에서 예측 모드가 화면 간 예측 모드였다면, S805 단계에서 MERGE 모드의 동작 정보를 복호화한다. S806 단계에서는 MERGE 모드의 동작 여부를 판단한다. S806 단계에서 MERGE 모드가 동작한다면 S807 단계로 넘어가서 MERGE 모드를 위한 MERGE 후보 색인 정보를 복호화한 후, 본 흐름도를 종료한다. S806 단계에서 MERGE 모드가 동작하지 않는다면 S808 단계에서 예측 방향을 복호화한다. 여기서 예측 방향은 과거 방향, 미래 방향, 양방향 중 하나일 수 있다. S809 단계에서는 예측 방향이 미래방향인지 아닌지를 판단한다. S809 단계에서 예측 방향이 미래 방향이 아니었다면 S810 단계에서 과거 방향의 참조 픽쳐 색인 정보를 복호화한다. S811 단계에서는 과거 방향의 MVD(Motion Vector Difference) 정보를 복호화한다. S812 단계에서는 과거 방향의 MVP(Motion Vector Predictor) 정보를 복호화한다. S809 단계에서 예측 방향이 미래 방향 혹은 양방향이거나 S812 단계가 끝나면 S813 단계에서 예측 방향이 과거 방향인지 아닌지를 판단한다. S813 단계에서 예측 방향이 과거 방향이 아니었다면 S814 단계에서 미래 방향 참조 픽쳐 색인 정보를 복호화한다. S815 단계에서는 미래 방향의 MVD 정보를 복호화한다. S816 단계에서는 미래 방향의 MVP 정보를 복호화한 후, 본 흐름도를 종료한다. S804 단계에서 예측 모드가 화면 내 예측 모드였다면, S1317 단계에서 화면 내 예측 모드 정보를 복호화한 후, 본 흐름도를 종료한다.
(공통 실시예)
하기 실시예에서는 영상 부호화 장치와 영상 복호화 장치의 예측부에서 MERGE 후보 탐색부(204, 704), AMVP 후보 탐색부(206, 706)에서 현재 블록의 화면 간 예측을 위한 후보 움직임정보를 유도하는 방법에 대해서 설명할 것이다. 후보 움직임정보는 MERGE 후보 탐색부에서는 현재 블록의 움직임정보로 바로 결정되고, AMVP 후보 탐색부에서는 현재 블록의 최적 움직임정보를 전송하기 위한 예측기(Predictor)로 사용된다.
도 9는 MERGE/AMVP 모드를 위한 후보 움직임정보를 유도하는 방법을 나타낸 흐름도이다. 본 흐름도에서 Merge 모드와 AMVP 모드의 후보 움직임정보를 유도하는 방법을 동일한 흐름도에 나타냈지만, 각 모드 별로 일부 후보들은 사용하지 않을 수도 있다. 따라서 모드 별로 유도 되는 후보 움직임정보는 다를 수 있으며, 유도되는 후보 움직임정보의 개수 또한 다를 수 있다. 예를 들어, Merge 모드는 공간적 후보 5(A)개 중 4(B)개의 후보를 선택할 수 있으며 AMVP 모드에서는 공간적 후보 4(A)개 중 2(B)개의 후보만을 선택할 수 있다. S901, S902 단계에서 A, B, C, D (A, B, C, D는 1 이상의 정수)는 각각 공간적 후보의 개수, 선택되는 공간적 후보의 개수, 시간적 후보의 개수, 선택되는 시간적 후보의 개수를 의미한다.
S901 단계의 설명은 전술한 S305, S401단계의 설명과 동일하다. 단, 공간적 후보를 위한 주변 블록들의 위치는 상이할 수 있다. 또한, 공간적 후보를 위한 주변 블록은, 제1 그룹, 제2 그룹 또는 제3 그룹 중 적어도 하나에 속할 수 있다. 여기서, 제1 그룹은, 현재 블록의 좌측 블록(A1) 또는 좌하단 블록(A4) 중 적어도 하나를 포함하고, 제2 그룹은 현재 블록의 상단 블록(A2) 또는 우상단 블록(A3) 중 적어도 하나를 포함하고, 제3 그룹은 현재 블록의 좌상단 블록(A5), 좌상단 블록의 하단에 인접한 블록 또는 좌상단 블록의 좌측에 인접한 블록 중 적어도 하나를 포함할 수 있다.
S902 단계의 설명은 전술한 S306, S402 단계의 설명과 동일하다. 마찬가지로 시간적 후보를 위한 블록들의 위치는 상이할 수 있다.
S903 단계에서는 서브 블록 단위 시간적 후보를 추가한다. 단, AMVP 후보 리스트에서 서브 블록 단위 시간적 후보를 추가할 경우, 전술한 AMVP 모드의 움직임벡터 유도 방법에 의거하여 임의의 서브 블록 1개의 후보 움직임정보만을 예측기로 이용해야 하지만, 때에 따라서 2개 이상의 서브 블록 후보 움직임정보를 이용하여 예측기로 이용할 수도 있다. 본 단계의 내용은 하기 실시예 1에서 상세히 설명할 것이다.
S904 단계에서는 History-based 후보를 추가한다. 본 단계의 내용은 하기 실시예 2에서 상세히 설명할 것이다.
S905 단계에서는 Merge/AMVP list의 후보 움직임정보들 간 평균 후보를 추가한다. 본 단계의 내용은 하기 실시예 3에서 상세히 설명할 것이다.
S905 단계까지 거친 후, Merge/AMVP list의 후보 움직임정보들이 최대 개수까지 채워지지 않을 경우, S906 단계에서 제로 움직임정보를 추가하여 최대 개수까지 채운 후, 본 흐름도를 종료하고, 각 모드를 위한 후보 움직임정보 리스트 구성을 완료한다. 본 실시예에서 설명한 후보 움직임정보는 Merge/AMVP 모드 이외에 다양한 예측 모드에서 활용될 수도 있다. 또한, 도 9는 후보 리스트는 추가된 후보의 순서를 한정하는 것은 아니다. 예를 들어, 서브 블록 단위 시간적 후보는 공간적 후보보다 우선적으로 후보 리스트에 추가될 수 있다. 또는 평균 후보가 History-based 후보보다 우선적으로 후보 리스트에 추가될 수도 있다. 본 명세서에서, 후보 움직임정보 리스트, 후보 움직임정보 세트, 움직임정보 후보군, 후보 리스트는 서로 동일한 의미로 이해될 수 있다.
(실시예 1)
본 실시예에서는 도 9의 S902, S903 단계의 시간적 후보, 서브 블록 단위 시간적 후보를 유도하는 방법에 대해서 상세히 설명할 것이다. 시간적 후보는 블록 단위 시간적 후보를 의미하며, 서브 블록 단위 시간적 후보와 구별될 수 있다. 여기서 서브 블록이란 현재 부호화 또는 복호화하고자 하는 블록(이하, 현재 블록)을 임의의 NxM (N, M ≥ 0) 크기의 블록으로 나눈 것으로, 현재 블록의 움직임정보를 유도하기 위한 기본 블록 단위를 의미한다. 서브 블록은 부호화기 및/또는 복호화기에 기-설정된 크기를 가질 수 있다. 예를 들어, 서브 블록은 4x4 또는 8x8와 같이 고정된 크기를 가진 정방형일 수 있다. 다만, 이에 한정되지 아니하며, 서브 블록의 형태는 비정방형일 수 있고, 서브 블록의 너비와 높이 중 적어도 하나는 8보다 클 수도 있다. 서브 블록 단위 시간적 후보는, 현재 블록이 NxM보다 큰 경우에 한하여 후보 리스트에 추가되도록 제한될 수 있다. 예를 들어, N과 M이 각각 8인 경우, 현재 블록의 너비와 높이가 각각 8보다 큰 경우에 한하여, 서브 블록 단위 시간적 후보가 후보 리스트에 추가될 수 있다.
도 10은 본 실시예를 설명하기 위한 기본 개념도이다. 도 10에는 현재 픽쳐의 현재 (서브) 블록 1개가 도시되어 있다. 해당 (서브) 블록에 대한 타깃 (서브) 블록을 타깃 픽쳐 내에서 탐색한다. 여기서 타깃 픽쳐와 타깃 (서브) 블록 정보는 각각 상위 헤더 혹은 현재 블록 단위로 전송될 수도 있고, 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 타깃 픽쳐와 타깃 (서브) 블록을 지정할 수도 있다. 현재 (서브) 블록의 타깃 픽쳐와 타깃 (서브) 블록이 결정된 후, 타깃 (서브) 블록의 움직임정보를 이용하여 현재 (서브) 블록의 움직임정보를 유도한다.
구체적으로, 현재 블록의 각 서브 블록은 타깃 블록의 각 서브 블록과 대응 관계를 가진다. 서브 블록 단위 시간적 후보는 현재 블록 내 서브 블록 별로 움직임 정보를 가지며, 각 서브 블록의 움직임정보는 타깃 블록 내에서 대응 관계를 가진 서브 블록의 움직임정보를 이용하여 유도될 수 있다. 다만, 상기 대응 관계를 가진 서브 블록의 움직임정보가 가용하지 않은 경우가 존재할 수 있다. 이 경우, 해당 서브 블록의 움직임정보는, 디폴트 움직임정보로 설정될 수 있다. 여기서, 디폴트 움직임 정보는, 해당 서브 블록에 수평 방향 또는 수직 방향으로 인접한 주변 서브 블록의 움직임정보를 의미할 수 있다. 또는, 디폴트 움직임정보는, 타깃 블록의 중앙 샘플을 포함한 서브 블록의 움직임정보를 의미할 수도 있다. 다만, 이에 한정되지 아니하며, 디폴트 움직임정보는, 타깃 블록의 n개의 코너 샘플 중 어느 하나를 포함한 서브 블록의 움직임정보를 의미할 수 있다. n은 1, 2, 3, 또는 4일 수 있다. 또는, 중앙 샘플을 포함한 서브 블록 및/또는 n개의 코너 샘플을 포함한 서브 블록 중에서, 소정의 우선순서에 따라 가용한 움직임정보를 가진 서브 블록을 탐색하고, 가장 먼저 탐색된 서브 블록의 움직임정보를 디폴트 움직임정보로 설정할 수도 있다.
한편, 전술한 디폴트 움직임정보가 가용한지 여부에 대한 판단을 선제적으로 수행할 수 있다. 판단 결과, 디폴트 움직임정보가 가용하지 않은 경우에는 서브 블록 단위 시간적 후보의 움직임정보 유도 및 후보 리스트에의 추가 과정은 생략될 수 있다. 즉, 디폴트 움직임정보가 가용한 경우에 한하여, 서브 블록 단위 시간적 후보가 유도되고, 후보 리스트에 추가될 수 있다.
한편, 움직임정보의 움직임벡터는 스케일링 처리가 된 움직임벡터를 의미할 수도 있다. 타깃 픽쳐와 타깃 (서브) 블록의 참조 픽쳐의 시간적 거리를 TD, 현재 픽쳐와 현재 (서브) 블록의 참조 픽쳐의 시간적 거리를 TB로 정하고, 수식 2를 이용하여 타깃 (서브) 블록의 움직임벡터(MV)를 스케일링한다. 스케일링된 움직임벡터(MVscale)는 현재 (서브) 블록의 예측 (서브) 블록을 참조 픽쳐 내에서 가리킬 때 사용되거나, 현재 (서브) 블록의 시간적 후보 또는 서브 블록 단위 시간적 후보의 움직임벡터로 이용될 수 있다. 단, 스케일링된 움직임벡터 유도 시에 수식 2에서 사용된 변수 MV는 타깃 (서브) 블록의 움직임벡터를 의미하고, MVscale은 현재 (서브) 블록의 스케일링된 움직임벡터를 의미한다.
또한, 현재 (서브) 블록의 참조 픽쳐 정보는 영상 부호화 장치와 영상 복호화 장치가 동일한 조건으로 지정될 수도 있고, 현재 (서브) 블록의 참조 픽쳐 정보를 현재 (서브) 블록 단위로 전송하는 것도 가능하다.
하기 현재 (서브) 블록의 타깃 (서브) 블록을 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 결정하는 방법에 대해서 좀 더 상세히 설명할 것이다. 현재 (서브) 블록의 타깃 (서브) 블록은 Merge/AMVP 후보 리스트에 있는 후보 움직임정보들 중 하나를 이용하여 가리킬 수 있다. 좀 더 상세하게는 후보 리스트에 있는 후보 움직임정보들의 예측 모드를 파악한 후, 예측 모드에 우선 순위를 부여하여 결정할 수도 있다. 예를 들어, AMVP 모드, MERGE 모드, SKIP 모드 순으로 우선순위를 두어서 후보 리스트에 있는 움직임정보들 중 하나를 선택하여 타깃 (서브) 블록을 가리킬 수 있다.
또한 단순하게, 후보 리스트에 있는 가장 첫번째 후보 움직임정보를 무조건적으로 선택하여 타깃 (서브) 블록을 가리킬 수도 있다. 만약 동일한 예측 모드로 코딩된 후보 움직임정보들의 경우에는 후보 리스트상에서 우선 순위가 높았던 순으로 선택을 하는 등 다양한 우선 순위 조건을 이용할 수 있다. 단, 후보 움직임정보의 참조 픽쳐와 타깃 픽쳐가 다를 경우에는 해당 후보 움직임정보는 제외할 수도 있다. 혹은 현재 (서브) 블록과 동일 위치에 해당하는 타깃 픽쳐 내 타깃 (서브) 블록으로 결정할 수도 있다.
구체적으로, 타킷 (서브) 블록은, 현재 (서브) 블록의 위치에서 소정의 시간적 움직임벡터(temporal MV)만큼 쉬프트된 위치의 블록으로 결정될 수 있다. 여기서, 시간적 움직임벡터는, 현재 블록에 공간적으로 인접한 주변 블록의 움직임벡터로 설정될 수 있다. 상기 주변 블록은, 현재 블록의 좌측, 상단, 좌하단, 우상단 또는 좌상단 블록 중 어느 하나일 수 있다. 또는, 시간적 움직임벡터는, 부호화/복호화 장치에 기-약속된 고정된 위치의 주변 블록만을 이용하여 유도될 수도 있다. 예를 들어, 상기 고정된 위치의 주변 블록은 현재 블록의 좌측 블록(A1)일 수 있다. 또는, 상기 고정된 위치의 주변 블록은 현재 블록의 상단 블록(A2)일 수 있다. 또는, 상기 고정된 위치의 주변 블록은 현재 블록의 좌하단 블록(A3)일 수 있다. 또는, 상기 고정된 위치의 주변 블록은 현재 블록의 우상단 블록(A4)일 수 있다. 또는, 상기 고정된 위치의 주변 블록은 현재 블록의 좌상단 블록(A5)일 수 있다.
상기 설정은, 주변 블록의 참조 픽쳐와 타깃 픽쳐가 동일한 경우(예를 들어, 참조 픽쳐와 타깃 픽쳐 간의 POC 차이가 0인 경우)에 한하여 수행될 수 있다. 주변 블록의 참조 픽쳐와 타깃 픽쳐가 동일하지 않은 경우, 시간적 움직임벡터는 (0,0)으로 설정될 수 있다.
상기 설정된 시간적 움직임벡터는 소정의 오프셋 또는 쉬프트값 중 적어도 하나에 기초하여 라운딩될 수 있다. 여기서, 오프셋은, 쉬프트값에 기초하여 유도되고, 쉬프트값은 우측 방향의 쉬프트값(rightShift) 또는 좌측 방향의 쉬프트값(leftShift) 중 적어도 하나를 포함할 수 있다. 쉬프트값은 부호화/복호화 장치에 기-설정된 정수일 수 있다. 예를 들어, rightShift는 4로, leftShift는 0으로 각각 설정될 수 있다. 예를 들어, 시간적 움직임벡터의 라운딩은 다음 수학식 3과 같이 수행될 수 있다.
[수학식 3]
offset = ( rightShift = = 0 ) ? 0 : ( 1 << ( rightShift - 1 ) )
mvXR[ 0 ] = ( ( mvX[ 0 ] + offset - ( mvX[ 0 ] >= 0 ) ) >> rightShift ) << leftShift
mvXR[ 1 ] = ( ( mvX[ 1 ] + offset - ( mvX[ 1 ] >= 0 ) ) >> rightShift ) << leftShift
좀 더 상세한 설명을 위해서 2가지 조건을 가정한다. 첫번째는 이미 코딩이 끝난 픽쳐 내에서는 움직임정보를 4x4 서브 블록 단위로 저장하여 보관하고, (여기서, 움직임정보 저장을 위한 4x4 서브 블록 단위 경계들과 타깃 픽쳐 내 타깃 (서브) 블록의 경계들은 일치함) 두번째는 현재 블록 내 서브 블록의 크기를 4x4로 한다는 것이다. 전술한 블록들의 크기는 다양하게 결정할 수 있다. 이 때, 현재 (서브) 블록에서 동일 위치에 해당하는 타깃 픽쳐 내 타깃 (서브) 블록의 위치 혹은 현재 (서브) 블록의 Merge/AMVP 후보 리스트에 있는 움직임정보를 이용하여 타깃 픽쳐 내에서 가리킨 타깃 (서브) 블록의 위치를 결정하는 경우, 타깃 픽쳐 내에서 움직임 정보가 저장된 4x4 서브 블록 단위상에서 각 서브 블록의 기준 좌표와 현재 (서브) 블록의 기준 좌표가 대응하지 못할 수도 있다. 예를 들어, 현재 (서브) 블록의 맨 좌상단 화소의 좌표는 (12, 12) 인데 타깃 (서브) 블록의 맨 좌상단 좌표는 (8, 8) 일 수도 있는 등의 불일치가 발생할 수 있다. 이는 타깃 픽쳐의 블록 분할 구조가 현재 픽쳐와 다르기 때문에 발생하는 어쩔 수 없는 현상이다.
도 11은 서브 블록 단위가 아닌 현재 블록 단위에서 시간적 후보 움직임정보를 유도할 때, 타깃 블록을 결정하는 방법을 설명하기 위한 예시 도면이다. 현재 블록의 기준 좌표에서 타깃 위치를 가리키는 움직임벡터가 (동일 위치 (즉, 제로 움직임) 혹은 후보 리스트에서 유도된 움직임벡터) 결정된 후, 타깃 픽쳐 내에서 해당 움직임벡터가 가리키는 지점을 찾는다. 타깃 픽쳐 내에서 해당 타깃 지점을 포함하는 4x4 타깃 서브 블록의 움직임정보를 현재 블록의 스케일링된 움직임벡터를 유도할 때 이용할 수 있다. 혹은 현재 블록에서 복수개의 기준 좌표를 두고 각 기준 좌표들이 가리키는 타깃 지점을 탐색하여, 타깃 지점이 모두 동일한 4x4 타깃 서브 블록을 가리킨다면 해당 타깃 서브 블록의 움직임정보를 현재 블록의 스케일링된 움직임벡터를 유도할 때 사용하면 되지만, 복수개의 4x4 타깃 서브 블록들을 가리킨다면 각 타깃 서브 블록들의 평균 움직임정보를 이용하여 현재 블록의 스케일링된 움직임벡터를 유도할 때 사용할 수도 있다. 타깃 지점은 도 11의 예시처럼 현재 블록 중앙 영역의 2개의 타깃 위치를 사용할 수도 있지만 그 이상을 사용하는 것도 물론이고 다른 현재 블록 내 있는 화소 위치 어디든 사용 가능하다. 평균 움직임정보를 계산하기 위한 움직임 정보도 당연히 2개 이상이 될 수 있다. 혹은 각 복수개의 타깃 서브 블록들을 이용하여 복수개의 스케일링된 움직임벡터를 유도 후, 복수개의 예측 블록을 생성하여 해당 예측 블록들을 가중합하여 최종 예측 블록을 생성할 수도 있다.
도 12, 13은 현재 블록 내 서브 블록 단위로 시간적 후보 움직임정보를 유도할 때, 타깃 블록을 결정하는 방법에 대해서 설명하기 위한 예시 도면이다. 도 12는 서브 블록 단위로 기준 위치가 1개인 경우의 예시 도면이고, 도 13은 서브 블록 단위로 복수개의 기준 위치가 사용될 때의 예시 도면이다.
도 12에서는 서브 블록 단위로 기준 위치가 서브 블록의 좌상단 화소 위치로 예시하였다. 현재 블록의 맨 우하단 서브 블록의 기준 좌표를 기점으로 찾은 타깃 픽쳐의 4x4 타깃 서브 블록을 기준으로 현재 블록과 동일한 크기의 타깃 블록을 결정한 후, 현재 블록과 타깃 블록의 동일 위치 서브 블록들끼리 타깃 서브 블록들의 움직임 정보를 이용하여 현재 서브 블록의 스케일링된 움직임벡터를 각각 유도할 수도 있다. 혹은 서브 블록의 기준 좌표에서 타깃 위치를 가리키는 움직임벡터를 통해 타깃 픽쳐의 타깃 위치를 파악한 후, 해당 타깃 위치가 포함된 4x4 타깃 서브 블록의 움직임정보를 현재 서브 블록의 스케일링된 움직임벡터를 유도할 때 사용할 수 있다.
도 13에서는 현재 서브 블록 별로 복수개의 타깃 서브 블록을 이용하여 스케일링된 움직임벡터를 유도하는 방법을 설명하기 위한 예시 도면이다. 도 13의 예시처럼 서브 블록 D의 스케일링된 움직임벡터를 유도할 경우에는, 서브 블록 D 내의 복수개의 기준 좌표를 기점으로 타깃 픽쳐 내 타깃 위치를 파악한다. 이 후, 타깃 위치가 동일한 타깃 서브 블록을 가리킬 경우 해당 타깃 서브 블록의 움직임정보를 이용하여 현재 서브 블록의 스케일링된 움직임벡터를 유도할 수 있지만, 도 13처럼 타깃 위치들이 서로 다른 타깃 서브 블록을 가리킬 경우에는 각 타깃 서브 블록들의 평균 움직임정보를 계산하여 현재 서브 블록의 스케일링된 움직임벡터를 유도할 수도 있다. 또한, 각 타깃 서브 블록들의 움직임정보를 이용하여 서로 다른 스케일링된 움직임벡터를 따로 유도한 후, 예측 서브 블록을 각각 생성하고, 각 예측 서브 블록들을 가중합하여 최종 예측 블록을 생성할 수도 있다. 현재 블록 내 다른 서브 블록들(서브 블록 A, B, C)도 전술한 방법으로 예측 서브 블록을 생성할 수 있다.
(실시예 2)
본 실시예에서는 도 9의 904 단계를 상세히 설명할 것이다. History-based 후보는 (이하, '복원정보기반 후보'라 칭함) 시퀀스, 픽쳐 혹은 슬라이스 단위로, 현재 블록 이전에 부호화/복호화된 움직임정보를 저장하기 위한 복원정보기반 움직임 후보 저장 버퍼(이하, 'H 버퍼'라 칭함)가 존재한다. 해당 버퍼는 코딩된 움직임정보를 FIFO(First-in First-out) 방식으로 버퍼를 업데이트하면서 관리한다. H 버퍼는 CTU, CTU행, 슬라이스 혹은 픽쳐 단위로 초기화될 수 있고, 현재 블록이 움직임 정보에 의해 예측되어 코딩된 경우, 해당 움직임 정보들을 H 버퍼에 업데이트 한다. H 버퍼에 저장된 움직임정보들은 도 9의 S904 단계에서 Merge/AMVP 후보로 이용될 수 있다. H 버퍼의 후보 움직임정보를 후보 리스트에 추가할 때에는 H 버퍼에 가장 최근에 업데이트된 움직임정보 순으로 추가할 수도 있고, 그 반대도 가능하다. 혹은 화면 간 예측 모드에 따라서, H 버퍼의 움직임정보를 어느 순서로 꺼내어 후보 리스트에 추가할지를 결정할 수도 있다.
구체적으로, 일 예로, H 버퍼와 후보 리스트 간의 중복성 체크를 통해서, H 버퍼의 움직임정보가 후보 리스트에 추가될 수 있다. 머지 모드(Merge mode)의 경우, 중복성 체크는, 후보 리스트의 머지 후보 일부와 H 버퍼의 움직임정보 일부에 대해서 수행될 수 있다. 후보 리스트의 일부는, 공간적 머지 후보 중 좌측 블록 및 상단 블록을 포함할 수 있다. 다만, 이에 한정되지 아니하며, 공간적 머지 후보 중 어느 하나의 블록으로 제한될 수도 있고, 좌하단 블록, 우상단 블록, 좌상단 블록 또는 시간적 머지 후보 중 적어도 하나를 더 포함할 수도 있다. 한편, H 버퍼의 일부는, H 버퍼에 가장 최근에 추가된 m개의 움직임정보를 의미할 수 있다. 여기서, m은 1, 2, 3 또는 그 이상이고, 부호화/복호화 장치에 기-약속된 고정된 값일 수 있다. H 버퍼에 5개의 움직임정보가 저장되어 있고, 각 움직임정보에 1 내지 5의 인덱스가 할당되어 있다고 가정한다. 인덱스가 클수록 나중에 저장된 움직임정보를 의미한다. 이때, 인덱스 5, 4 및 3을 가진 움직임정보와 상기 후보 리스트의 머지 후보 간의 중복성을 체크할 수 있다. 또는, 인덱스 5 및 4를 가진 움직임정보와 상기 후보 리스트의 머지 후보 간의 중복성을 체크할 수도 있다. 또는, 가장 나중에 추가된 인덱스 5의 움직임정보는 제외하고, 인덱스 4 및 3을 가진 움직임정보와 상기 후보 리스트의 머지 후보 간의 중복성을 체크할 수도 있다. 중복성 체크 결과, 동일한 움직임정보가 하나라도 존재하는 경우, H 버퍼의 움직임정보는 후보 리스트에 추가되지 않을 수 있다. 반면 동일한 움직임정보가 존재하지 않는 경우, H 버퍼의 움직임정보는 후보 리스트의 마지막 위치에 추가될 수 있다. 이때, H 버퍼에서 최근에 저장된 움직임정보의 순서로(즉, 인덱스가 큰 순서부터 작은 순서로) 후보 리스트에 추가될 수 있다. 다만, H 버퍼에서 가장 나중에 저장된 움직임정보(가장 큰 인덱스를 가진 움직임정보)는 후보 리스트에 추가되지 않도록 제한될 수도 있다.
반면, AMVP 모드의 경우, H 버퍼에 먼저 저장된 움직임정보(특히, 움직임벡터)의 순서로 후보 리스트에 추가될 수 있다. 즉, H 버퍼에 저장된 움직임정보 중 작은 인덱스를 가진 움직임정보가 큰 인덱스를 가진 움직임정보보다 먼저 후보 리스트에 추가될 수 있다.
한편, H 버퍼에 저장된 움직임벡터가 후보 리스트에 동일하게 추가될 수도 있고, 전술한 라운딩 과정이 적용된 움직임벡터가 후보 리스트에 추가될 수도 있다. 라운딩은, 현재 블록의 움직임벡터의 정확도에 대응되도록 후보 움직임정보의 정확도를 조절하기 위함이다. 수학식 3을 참조하면, mvXR는 라운딩 과정이 적용된 움직임벡터를, mvX는 H 버퍼에 저장된 움직임벡터를 각각 의미할 수 있다. 또한, 쉬프트값인 rightShift 또는 leftShift 중 적어도 하나는, 움직임벡터의 정확도(혹은 해상도)를 고려하여 결정될 수 있다. 예를 들어, 움직임벡터의 정확도가 1/4 샘플인 경우, 쉬프트값은 2로 결정되고, 1/2 샘플인 경우, 쉬프트값은 3으로 결정될 수 있다. 움직임벡터의 정확도가 1 샘플인 경우, 쉬프트값은 4로 결정되고, 4 샘플인 경우, 쉬프트값은 6으로 결정될 수 있다. RightShift와 leftShift는 동일한 값으로 설정될 수 있다.
H 버퍼에 저장되는 움직임정보를 Merge/AMVP 후보 리스트에 추가할 때, 추가 될 수 있는 움직임정보의 개수를 제한할 수도 있다. 예를 들어, Merge/AMVP 후보 리스트의 최대 후보 개수까지 모두 H 버퍼에 있는 움직임정보를 이용하여 채울 수도 있지만, (최대 후보 개수 - 1)개 까지만 채울 수도 있다.
H 버퍼에 저장되는 후보 움직임정보의 개수는 영상 부호화 장치와 영상 복호화 장치에서 동일한 조건으로 결정할 수도 있고, 상위 헤더에서 영상 복호화 장치로 전송될 수도 있다.
구체적으로, Merge 후보 리스트의 경우, H 버퍼의 움직임정보를 이용하여 (최대 후보 개수-n)개까지만 채울 수 있다. 여기서, n은 1, 2, 또는 그 이상의 정수일 수 있다. 최대 후보 개수는, 부호화/복호화 장치에 기-정의된 고정된 개수(예를 들어, 5개, 6개, 7개, 8개)로 결정되거나, 최대 후보 개수를 지시하기 위해 시그날링된 정보에 기초하여 가변적으로 결정될 수도 있다. 한편, AMVP 후보 리스트의 경우, H 버퍼의 움직임정보를 이용하여 최대 후보 개수까지 채울 수 있다. AMVP 후보 리스트의 최대 후보 개수는 2개, 3개, 4개 또는 그 이상일 수 있다. AMVP 후보 리스트의 경우, Merge 후보 리스트와 달리 최대 후보 개수가 가변적이지 않을 수 있다.
H 버퍼를 업데이트하는 제1 방법은 도 14를 참조한다. H 버퍼는 첫번째 CTU 행에서는 블록의 코딩 순으로 움직임정보들을 업데이트 한다. 두번째 CTU행부터는 블록의 코딩 순으로 움직임정보들을 업데이트 하는 것은 동일하지만, 상단 CTU 내에서 현재 CTU행과 인접한 복원 블록들에 저장된 움직임정보들을 추가 고려하여 H 버퍼를 업데이트할 수도 있다. 도 14에서 CTU 내의 mi는 Motion Information의 약어로써, 마지막 CTU행을 제외한 나머지 CTU행에서 맨 하단 블록들에 저장되어 있는 복원 움직임정보이다. H 버퍼에는 최대 P(P는 1 이상의 정수)개의 움직임정보가 업데이트 될 수 있으며, H 버퍼가 초기화되는 단위에 따라서 업데이트 방법이 달라질 수 있다. 본 실시예 에서는 CTU 단위로 초기화될 때와, CTU행 단위로 초기화될 때에 따른 H 버퍼 업데이트 방법에 대해서 설명할 것이다. 먼저 H 버퍼가 CTU 단위로 초기화될 때 두번째 CTU행의 각 CTU는 코딩을 시작하기 전에 H 버퍼를 mi를 이용하여 초기화할 수 있다. 여기서 초기화의 의미는 완전히 비워진 H 버퍼에 어떠한 움직임정보를 다시 업데이트한다는 것을 의미한다. 예를 들어, CTU8을 코딩 하기 전에 CTU3의 하단 4개의 mi를 이용하여 H 버퍼를 초기화할 수 있다. mi를 업데이트하는 순서 또한 다양하게 결정할 수 있다. 현재 좌측에 있는 mi부터 업데이트할 수도 있고, 그 반대로 우측에 있는 mi부터 업데이트할 수도 있다. H 버퍼가 CTU행 단위로 초기화될 때에는 각 CTU행의 첫번째 CTU에서만 상단 CTU의 mi를 이용해서 업데이트할 수도 있다. 또한, 각 초기화 단위로 H 버퍼를 모두 비워서 초기화를 할 수도 있다. 한편, 가장 최근에 부호화/복호화된 움직임정보가 H 버퍼에 기-저장된 움직임정보와 동일한 경우, 가장 최근의 움직임정보는 H 버퍼에 추가되지 않을 수 있다. 또는, 가장 최근의 움직임정보와 동일한 움직임정보를 H 버퍼에서 제거하고, 가장 최근의 움직임정보를 H 버퍼에 저장할 수도 있다. 이때, 가장 최근의 움직임 정보는, H 버퍼의 가장 마지막 위치에 저장될 수 있다.
H 버퍼를 업데이트하는 제2 방법은 도 15를 참조한다. 제2 방법은 H 버퍼 이외에 추가 움직임후보 저장 버퍼를 둔다. 이 버퍼는 상단 CTU의 복원 움직임정보(이하, 'Vmi'라 칭함)를 저장하는 버퍼(이하, 'V 버퍼'라 칭함)이다. 이 V 버퍼는 전술한 H 버퍼가 CTU행 혹은 슬라이스 단위로 초기화될 때 이용 가능할 수 있으며, V 버퍼는 CTU행 단위로 초기화될 수 있다. 현재 픽쳐에서 마지막 CTU행을 제외한 나머지 CTU행에서는 하단 CTU행을 위해서 V 버퍼 내 Vmi를 업데이트 해야 한다. 여기서 V 버퍼에는 최대 Q(Q는 1 이상의 정수)개의 움직임정보가 업데이트 될 수 있고, Vmi에 해당하는 움직임정보는 다양한 방법으로 결정할 수 있다. 예를 들어, Vmi는 CTU의 센터 좌표가 포함된 블록의 복원 움직임정보가 될 수도 있고, 상단 CTU에서 센터 좌표가 포함된 블록을 코딩 할 때, H 버퍼에 포함된 가장 최신 순의 움직임정보일 수도 있다. 하나의 CTU에서 업데이트되는 Vmi는 1개 이상일 수 있으며 업데이트된 Vmi는 하단 CTU의 H 버퍼를 업데이트할 때 사용된다. 첫번째 CTU행을 제외한 나머지 CTU행에서는 각 CTU 별로 상단 CTU행의 V 버퍼에 저장된 Vmi를 현재 H 버퍼에 업데이트한다. 상단 CTU 행의 V 버퍼에 저장된 Vmi가 복수개일 경우, 가장 먼저 업데이트 된 움직임 정보를 먼저 꺼내어 H 버퍼에 업데이트 할 수도 있고 그 반대의 순서로 업데이트 할 수도 있다. 업데이트를 하는 시기는 각 CTU를 코딩 하기 전 일 수도 있고, 각 CTU에서 상단 CTU와 접경하는 블록들을 코딩 하기 전 일 수도 있는 등 다양한 시점에서 V 버퍼에 저장된 상단 CTU의 Vmi를 H 버퍼에 업데이트를 할 수 있다. 또한, 상단 CTU 뿐 아니라 좌상단 CTU, 우상단 CTU의 Vmi도 H 버퍼에 업데이트할 수 있다.
전술한 V 버퍼의 후보 움직임정보는 도 9의 MERGE/AMVP 후보 리스트 유도 과정에 독립적으로 추가될 수도 있다. V 버퍼 후보 움직임정보를 추가할 때 MERGE/AMVP 후보 리스트 내에서의 해당 우선 순위는 다양하게 결정할 수 있다. 예를 들어, S904 단계 이후에 V 버퍼 내 유효한 움직임정보가 있다면 해당 후보 움직임정보를 S904, S905 단계 사이에서 추가될 수도 있다.
(실시예 3)
본 실시예에서는 도 9의 905 단계를 상세히 설명할 것이다. S901~S904 단계를 거쳐서 Merge/AMVP 후보 리스트에 채워진 움직임정보가 1개 이하인 경우에는 본 단계를 생략한다. Merge/AMVP 후보 리스트에 채워진 움직임정보가 2개 이상인 경우에는 각 후보들 간 평균 후보 움직임정보를 생성하여 후보 리스트를 채울 수 있다. 평균 후보 움직임정보의 움직임벡터는 움직임정보의 각 예측 방향 별로(List 0 혹은 List 1) 유도되는데, 후보 리스트에 저장된 동일한 방향의 움직임벡터를 평균하여 생성한 움직임벡터를 의미한다. 평균 후보 움직임정보를 유도할 때, 평균할 때 이용된 움직임정보의 참조 픽쳐 색인 정보가 다르다면 우선 순위가 높았던 움직임정보의 참조 픽쳐 정보를 평균 후보 움직임정보의 참조 픽쳐 색인 정보로 결정할 수 있다. 혹은 우선 순위가 낮았던 움직임정보의 참조 픽쳐 정보를 평균 후보 움직임정보의 참조 픽쳐 색인 정보로 결정할 수도 있다.
평균 후보 움직임정보를 Merge/AMVP 후보 리스트에 추가할 때, 생성된 평균 후보 움직임정보를 또 다른 평균 후보 움직임정보를 생성할 때 이용할 수도 있다. 이러한 예시를 설명하기 위해 도 16을 참조한다. 도 16에서 좌측 테이블은 도 9의 S905 단계를 거치기 전 Merge/AMVP 후보 리스트이고, 우측 테이블은 도 9의 S905 단계를 거친 후 Merge/AMVP 후보 리스트이다. 좌측 테이블을 보면 2개의 후보 리스트에는 0, 1번에 해당하는 후보 움직임정보가 채워져 있다. 이 2개의 움직임정보를 이용하여 2번에 해당하는 평균 후보 움직임정보를 생성할 수 있다. 도 16의 예시에서는 0번 후보의 List 0 방향 움직임벡터 (1, 1), 참조 픽쳐 색인 1인 움직임 정보와 1번 후보의 List 0 방향 움직임벡터 (3, -1), 참조 픽쳐 색인 0인 움직임정보를 평균하여 2번 후보의 List 0 방향 움직임정보를 채운다. List 1 방향의 경우 0번 후보의 움직임정보가 존재하지 않는다. 이런 경우에는 List 1 방향의 후보가 존재하는 1번 후보의 움직임정보를 그대로 가져와서 2번 후보의 List 1 방향 움직임정보를 채운다. 만약 평균 후보 움직임정보를 유도할 때 어느 한 방향의 움직임정보가 모두 없을 경우에는, 해당 방향은 따로 유도하지 않는다. 이렇게 유도된 2번의 평균 후보 움직임정보를 이용하여 추가적인 평균 후보 움직임정보를 생성할 수 있다. 3번의 평균 후보 움직임정보는 0, 2번 후보의 평균 후보 움직임정보이고, 4번의 평균 후보 움직임정보는 1, 2번 후보의 평균 후보 움직임정보이다. 평균 후보 움직임정보를 생성하는 방법은 전술한 바와 같다.
도 9의 S905 단계를 거치기 전의 Merge/AMVP 후보 리스트에는 중복된 후보 움직임정보가 존재할 수도 있다. 평균 후보 움직임정보를 이러한 중복된 후보 움직임정보를 제거하는데 이용할 수도 있다. 도 17은 이러한 예시를 나타낸 것이다. 좌측, 우측 테이블은 도 16에서 설명한 바와 같다. 좌측 테이블을 보면 0, 2번의 후보 움직임정보가 완전히 동일하다. 이럴 경우, 우선 순위가 낮은 2번 후보 움직임정보를 평균 후보 움직임정보로 대체할 수 있다. 도 17의 예시에서는 0, 1번의 평균 후보 움직임정보로 기존의 2번 후보 움직임정보를 대체하였고, 3번은 0, 2번의 평균 후보 움직임정보, 4번은 1, 2번의 평균 후보 움직임정보를 이용하여 후보 리스트를 채운 것이다.
평균 후보 움직임정보를 이용하여 Merge/AMVP 후보 리스트를 채울 수 있는 개수 또한 제한될 수 있다. 예를 들어, Merge/AMVP 후보 리스트의 최대 후보 개수까지 모두 평균 후보 움직임정보를 이용하여 채울 수도 있지만, (후보 리스트 최대 개수 - 1)개 까지만 채울 수도 있다. 또한 평균 후보 움직임정보를 계산할 때 이용되는 후보 움직임정보가 3개 이상일 수 있으며, 3개 이상의 후보 움직임정보를 평균한 정보가 아닌 Median 정보를 평균 후보 움직임정보로 결정할 수도 있다.
전술한 실시예는 복호화 장치에서의 동작을 중심으로 살펴보았으나, 부호화 장치에서도 동일/유사하게 동작할 수 있으며, 자세한 설명은 생략하기로 한다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(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 (15)

  1. 현재 블록의 후보 리스트를 생성하는 단계; 및
    상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행하는 단계를 포함하되,
    상기 복수의 후보는, 서브 블록 단위 시간적 후보를 포함하고,
    상기 서브 블록 단위 시간적 후보는, 상기 현재 블록의 서브 블록 별로 움직임정보를 유도하기 위한 후보로서, 상기 현재 블록에 시간적으로 인접한 타깃 블록의 움직임정보를 가지고,
    상기 서브 블록은, 복호화 장치에 기-설정된 고정된 크기인 NxM 블록이고,
    상기 타깃 블록의 서브 블록은, 상기 현재 블록의 서브 블록의 위치에서 소정의 시간적 움직임벡터만큼 쉬프트된 위치의 블록으로 결정되고,
    상기 시간적 움직임벡터는, 상기 현재 블록의 공간적 주변 블록 중 특정 위치의 주변 블록만을 이용하여 설정되고,
    상기 특정 위치의 주변 블록은 상기 현재 블록의 좌측 블록인, 영상 복호화 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 시간적 움직임벡터의 설정은, 상기 특정 위치의 주변 블록의 참조 픽쳐와 상기 타깃 블록이 속한 타깃 픽쳐가 동일한 경우에 한하여 수행되는, 영상 복호화 방법.
  6. 현재 블록의 후보 리스트를 생성하는 단계; 및
    상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행하는 단계를 포함하되,
    상기 복수의 후보는, 서브 블록 단위 시간적 후보를 포함하고,
    상기 서브 블록 단위 시간적 후보는, 상기 현재 블록의 서브 블록 별로 움직임정보를 유도하기 위한 후보로서, 상기 현재 블록에 시간적으로 인접한 타깃 블록의 움직임정보를 가지고,
    상기 서브 블록은, 복호화 장치에 기-설정된 고정된 크기인 NxM 블록이고,
    상기 타깃 블록의 서브 블록은, 상기 현재 블록의 서브 블록의 위치에서 소정의 시간적 움직임벡터만큼 쉬프트된 위치의 블록으로 결정되고,
    상기 시간적 움직임벡터는, 상기 현재 블록의 공간적 주변 블록 중 특정 위치의 주변 블록만을 이용하여 설정되고,
    상기 특정 위치의 주변 블록은 상기 현재 블록의 좌측 블록인, 영상 부호화 방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 제6항에 있어서,
    상기 시간적 움직임벡터의 설정은, 상기 특정 위치의 주변 블록의 참조 픽쳐와 상기 타깃 블록이 속한 타깃 픽쳐가 동일한 경우에 한하여 수행되는, 영상 부호화 방법.
  11. 영상 복호화 방법에 의해 복호화되는 비트스트림을 저장하는 컴퓨터로 판독가능한 기록 매체에 있어서,
    상기 영상 복호화 방법은,
    현재 블록의 후보 리스트를 생성하는 단계; 및
    상기 후보 리스트에 속한 복수의 후보 중 어느 하나를 이용하여, 상기 현재 블록의 인터 예측을 수행하는 단계를 포함하되,
    상기 복수의 후보는, 서브 블록 단위 시간적 후보를 포함하고,
    상기 서브 블록 단위 시간적 후보는, 상기 현재 블록의 서브 블록 별로 움직임정보를 유도하기 위한 후보로서, 상기 현재 블록에 시간적으로 인접한 타깃 블록의 움직임정보를 가지고,
    상기 서브 블록은, 복호화 장치에 기-설정된 고정된 크기인 NxM 블록이고,
    상기 타깃 블록의 서브 블록은, 상기 현재 블록의 서브 블록의 위치에서 소정의 시간적 움직임벡터만큼 쉬프트된 위치의 블록으로 결정되고,
    상기 시간적 움직임벡터는, 상기 현재 블록의 공간적 주변 블록 중 특정 위치의 주변 블록만을 이용하여 설정되고,
    상기 특정 위치의 주변 블록은 상기 현재 블록의 좌측 블록인, 컴퓨터로 판독가능한 기록 매체.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 제11항에 있어서,
    상기 시간적 움직임벡터의 설정은, 상기 특정 위치의 주변 블록의 참조 픽쳐와 상기 타깃 블록이 속한 타깃 픽쳐가 동일한 경우에 한하여 수행되는, 컴퓨터로 판독가능한 기록 매체.
KR1020200001229A 2019-01-04 2020-01-06 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치 KR102319033B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2020/000211 WO2020141962A1 (ko) 2019-01-04 2020-01-06 영상 부호화/복호화 방법 및 장치
US17/420,784 US20220116588A1 (en) 2019-01-04 2020-01-06 Method and apparatus for image encoding/decoding
KR1020210142326A KR102585178B1 (ko) 2019-01-04 2021-10-25 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190001414 2019-01-04
KR20190001414 2019-01-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210142326A Division KR102585178B1 (ko) 2019-01-04 2021-10-25 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치

Publications (2)

Publication Number Publication Date
KR20200085235A KR20200085235A (ko) 2020-07-14
KR102319033B1 true KR102319033B1 (ko) 2021-10-29

Family

ID=71526738

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020200001228A KR102342157B1 (ko) 2019-01-04 2020-01-06 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치
KR1020200001229A KR102319033B1 (ko) 2019-01-04 2020-01-06 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치
KR1020210142326A KR102585178B1 (ko) 2019-01-04 2021-10-25 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치
KR1020230129394A KR20230141723A (ko) 2019-01-04 2023-09-26 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치
KR1020230129395A KR20230145277A (ko) 2019-01-04 2023-09-26 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020200001228A KR102342157B1 (ko) 2019-01-04 2020-01-06 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020210142326A KR102585178B1 (ko) 2019-01-04 2021-10-25 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치
KR1020230129394A KR20230141723A (ko) 2019-01-04 2023-09-26 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치
KR1020230129395A KR20230145277A (ko) 2019-01-04 2023-09-26 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치

Country Status (1)

Country Link
KR (5) KR102342157B1 (ko)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Benjamin Bross, et. al., "Versatile Video Coding(draft 2)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 11th Meeting, JVET-K1001-V7.*

Also Published As

Publication number Publication date
KR20200085234A (ko) 2020-07-14
KR20230145277A (ko) 2023-10-17
KR20210131289A (ko) 2021-11-02
KR102585178B1 (ko) 2023-10-05
KR102342157B1 (ko) 2021-12-22
KR20200085235A (ko) 2020-07-14
KR20230141723A (ko) 2023-10-10

Similar Documents

Publication Publication Date Title
KR101316060B1 (ko) 인터 예측 부호화된 동영상 복호화 방법
CN112369034B (zh) 使用合并候选的视频编码方法和装置
KR20180109055A (ko) 영상 복호화 방법 및 장치
KR20210058782A (ko) 영상의 부호화/복호화 방법 및 장치
US20140177725A1 (en) Image encoding method and image decoding method
CN112385231B (zh) 图像编码/解码方法和装置
KR102551609B1 (ko) 비디오 신호 처리 방법 및 장치
JP7275326B2 (ja) インター予測を利用した映像符号化方法、映像復号化方法、及び映像復号化装置
KR102425722B1 (ko) 영상 신호 부호화/복호화 방법 및 장치
KR20120129726A (ko) 인트라 예측 모드 복호화 방법 및 복호화 장치
CN117041544A (zh) 用于对图像信号进行编码/解码的方法和设备
KR20200084300A (ko) 영상 복호화 방법, 영상 부호화 방법, 영상 복호화 장치, 영상 부호화 장치 및 컴퓨터 판독 가능한 기록 매체
KR102319033B1 (ko) 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치
KR102585179B1 (ko) 효율적인 움직임 정보 예측을 이용한 영상 부호화/복호화 방법과 장치
KR20220107139A (ko) 영상 신호 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant