KR20190110065A - 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체 - Google Patents

영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체 Download PDF

Info

Publication number
KR20190110065A
KR20190110065A KR1020190031329A KR20190031329A KR20190110065A KR 20190110065 A KR20190110065 A KR 20190110065A KR 1020190031329 A KR1020190031329 A KR 1020190031329A KR 20190031329 A KR20190031329 A KR 20190031329A KR 20190110065 A KR20190110065 A KR 20190110065A
Authority
KR
South Korea
Prior art keywords
block
sad
motion information
motion
unit
Prior art date
Application number
KR1020190031329A
Other languages
English (en)
Inventor
안용조
류호찬
Original Assignee
인텔렉추얼디스커버리 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔렉추얼디스커버리 주식회사 filed Critical 인텔렉추얼디스커버리 주식회사
Publication of KR20190110065A publication Critical patent/KR20190110065A/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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

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

Abstract

본 발명은 영상 부호화 방법 및 영상 복호화 방법을 제공한다. 본 발명의 영상 복호화 방법은, 디코더 측면의 움직임 정보를 유도하여 영상을 복호화하는 것에 있어서, 복수의 움직임 정보 유도 기법들 중, 현재 블록에 적용된 움직임 정보 유도 기법을 확인하는 단계, 및 상기 확인된 움직임 유도 기법에 따라, 현재 블록의 움직임 정보를 유도하는 단계를 포함하되, 상기 움직임 정보 유도 기법에 따라 서로 다른 움직임 정보 보정 방식을 적용할 수 있다.

Description

영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체{IMAGE DECODING METHOD/APPARATUS, IMAGE ENCODING METHOD/APPARATUS AND RECORDING MEDIUM FOR STORING BITSTREAM}
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것이다. 더욱 상세하게는, 디코더 측면의 움직임 유도를 사용하는 영상 복호화 방법/장치 및 이에 대응하는 영상 부호화 방법/장치에 관한 것이다.
고해상도 비디오에 대한 시장의 수요가 증가하고 있으며, 이에 따라 고해상도 영상을 효율적으로 압축할 수 있는 기술이 필요하다. 이러한 시장의 요구에 따라 ISO/IEC의 MPEG (Moving Picture Expert Group)과 ITU-T의 VCEG (Video Coding Expert Group)이 공동으로 JCT-VC (Joint Collaborative Team on Video Coding)를 결성하여, HEVC (High Efficiency Video Coding) 비디오 압축 표준을 2013년 1월에 개발을 완료했으며, 차세대 압축 표준에 대한 연구 및 개발을 활발히 진행해오고 있다.
동영상 압축은 크게 화면 내 예측 (또는 인트라 예측), 화면 간 예측(또는 인터 예측), 변환, 양자화, 엔트로피(Entropy coding) 부호화, 인루프 필터(In-loop filter)로 구성된다. 한편, 고해상도 영상에 대한 수요가 증가함과 함께, 새로운 영상 서비스로서 입체 영상 컨텐츠에 대한 수요도 함께 증가하고 있다. 고해상도 및 초고해상도의 입체 영상 콘텐츠를 효과적으로 제공하기 위한 비디오 압축 기술에 대하여 논의가 진행되고 있다.
관련하여, 화면 간 예측을 위해, 현재 블록별로 움직임 정보를 생성하고, 생성된 모든 움직임 정보를 시그널링하여 전송하는 것은 부호화 또는 인코더(encoder) 측면에서 효율을 떨어뜨리는 문제점이 될 수 있다.
본 발명은 효율이 향상된 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다. 특히, 본 발명은 디코더 측면의 움직임 정보 유도를 적용하는 영상 복호화 방법 및 장치를 제공하는 것을 목적으로 한다. 또한, 본 발명은 디코더 측면의 움직임 정보 유도에 적용되는 영상 부호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 디코더 측면에서 하나 이상의 움직임 정보 유도 기법을 사용하여 움직임 정보를 유도함에 있어서, 대상 움직임 정보 유도 기법에 따라 서로 다른 움직임 정보 보정 기법을 사용하는 영상 복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 디코더 측면에서 하나 이상의 움직임 정보 유도 기법을 사용하여 움직임 정보를 유도함에 있어서, 특정 조건 만족시 움직임 정보 유도 과정을 조기 종료하는 기법을 포함하는 영상 복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 디코더 측면에서 하나 이상의 움직임 정보 유도 기법을 사용하여 움직임 정보를 유도함에 있어서, 서브-샘플링된 블록 매칭을 사용하는 영상 복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 디코더 측면에서 하나 이상의 움직임 정보 유도 기법을 사용하여 움직임 정보를 유도하기 위해, 관련 정보를 시그널링하여 제공하는 영상 부호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 상기 영상 부호화 방법/장치에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체를 제공하는 것을 목적으로 한다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치는, 현재 블록의 움직임 정보의 개선을 위한 탐색 영역을 결정하고, 상기 탐색 영역에 대한 SAD 리스트를 생성하며, 상기 SAD 리스트의 SAD 후보에 기초하여, 상기 현재 블록의 델타 움직임 정보를 유도하고, 상기 현재 블록의 움직임 정보와 상기 델타 움직임 정보를 이용하여, 상기 현재 블록의 움직임 정보를 갱신할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 SAD 리스트는 복수의 SAD 후보를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 탐색 영역은, 참조 블록 또는 상기 참조 블록의 인접 영역 중 적어도 하나를 포함하는 영역으로 결정되고, 상기 인접 영역은, 상기 참조 블록의 경계를 기준으로 N개의 샘플 라인만큼 확장된 영역일 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 SAD 후보는, L0 블록과 L1 블록 간의 SAD 값으로 결정되고, 상기 L0 블록은, 상기 현재 블록의 L0 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정되며, 상기 L1 블록은, 상기 현재 블록의 L1 참조 블록의 위치 및 상기 소정의 오프셋에 기초하여 결정될 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 오프셋은, 넌-방향성 오프셋 또는 방향성 오프셋 중 적어도 하나를 포함하고, 상기 방향성 오프셋은, 좌측, 우측, 상단, 하단, 좌상단, 우상단, 좌하단 또는 우하단 중 적어도 하나의 방향에 대한 오프셋을 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 델타 움직임 정보를 유도하는 단계는, 기준 SAD 후보와 소정의 문턱값 간의 비교 결과에 기초하여 수행되고, 상기 기준 SAD 후보는, 넌-방향성 오프셋에 대응하는 SAD 후보를 의미할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 기준 SAD 후보가 상기 문턱값보다 크거나 같은 경우, 상기 델타 움직임 정보를 유도하는 단계는, 상기 SAD 리스트에 속한 SAD 후보 중에서 최소값을 가진 SAD 후보를 식별하는 단계; 및 상기 식별된 SAD 후보에 대응하는 오프셋을 기반으로, 델타 움직임 정보를 결정하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 기준 SAD 후보가 상기 문턱값보다 작은 경우, 상기 델타 움직임 정보를 유도하는 단계는, 상기 SAD 리스트에 속한 SAD 후보 전부 또는 일부를 이용하여 소정의 파리미터를 산출하는 단계; 및 상기 산출된 파라미터를 기반으로, 상기 델타 움직임 정보를 결정하는 단계를 포함할 수 있다.
본 발명에 따른 영상 부호화/복호화 방법 및 장치에 있어서, 상기 현재 블록의 움직임 정보의 갱신은, 블록 크기, 현재 픽쳐와 참조 픽쳐 간의 거리, 인터 예측 모드, 예측 방향, 움직임 정보의 단위 또는 해상도 중 적어도 하나를 고려하여 제한적으로 수행될 수 있다.
본 발명에 따르면, 다음과 같은 효율이 향상된 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
첫째, 본 발명에 따르면, 디코더 측면에서 하나 이상의 움직임 정보 유도 기법을 사용하여 움직임 정보를 유도함에 따라, 부호화 효율을 향상 시키는 영상 복호화 방법 및 장치가 제공될 수 있다.
둘째, 본 발명에 따르면, 디코더 측면에서 하나 이상의 움직임 정보 유도 기법을 사용시, 움직임 정보 유도 기법에 따라 서로 다른 움직임 정보 보정 기법을 사용함에 따라, 복호화 효율을 향상 시키는 영상 복호화 방법 및 장치가 제공될 수 있다.
셋째, 본 발명에 따르면, 디코더 측면에서 하나 이상의 움직임 정보 유도 기법을 사용시, 특정 조건 만족시 움직임 정보 유도 과정을 조기 종료하는 기법을 사용함에 따라, 복호화 효율을 향상 시키는 영상 복호화 방법 및 장치가 제공될 수 있다.
또한, 본 발명에 따르면, 본 발명에 따른 영상 부호화 방법/장치에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독 가능한 기록 매체가 제공될 수 있다.
도 1은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 발명에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3은 본 발명에 따른, 디코더 측면에서 움직임 정보를 유도하는 기법으로서, 템플릿 매칭(template matching)을 이용한 움직임 정보 유도 기술의 개념을 도시한 것이다.
도 4는 본 발명에 따른, 디코더 측면에서 움직임 정보를 유도하는 기법으로서, 양방향 매칭(bilateral matching)을 이용한 움직임 정보 유도 기술의 개념을 도시한 것이다.
도 5는 본 발명의 실시예에 따른, 복호화 방법의 흐름도를 예를 들어 도시한 것이다.
도 6 및 도 7은 본 발명의 실시예에 따른, 복호화 방법의 다른 흐름도를 예를 들어 도시한 것이다.
도 8은 본 발명의 실시예에 따른, 복호화 방법의 또 다른 흐름도를 예를 들어 도시한 것이다.
도 9는 본 발명의 실시예에 따른, 다이아몬드 탐색 및 크로스 탐색 방법을 설명하기 위해 도시한 것이다.
도 10 및 도 11은 본 발명의 실시예에 따른, 복호화 방법의 또 다른 흐름도를 예를 들어 도시한 것이다.
도 12는 블록 매칭을 수행하는 대상 블록과 해당 블록 내의 서브 샘플링된 화소들을 예를 들어 도시한 것이다.
도 13은 템플릿 매칭을 이용한 움직임 정보 유도 기술에, 전술한 도 12의 서브-샘플링된 화소들을 적용한 방법을 도시한 것이다.
도 14는 양방향 매칭을 이용한 움직임 정보 유도 기술에, 전술한 도 12의 서브-샘플링된 화소들을 적용한 방법을 도시한 것이다.
도 15는 디코더 측면에서 움직임 정보를 유도하기 위하여 초기 탐색 위치 선정을 위한 움직임 후보 리스트를 구성하는 일 예를 도시한 것이다.
도 16은 본 발명에 따른, 서브 블록의 병렬 처리 개념을 도시한 것이다.
도 17은 서브 블록 병렬처리에 적용되는 수정된 움직임 후보 리스트를 예를 들어 도시한 것이다.
본 명세서에 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다.
또한, 본 명세서 전체에서 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 제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은 본 발명에 따른 영상 부호화 장치를 나타낸 블록도 이다. 도 1을 참조하면, 종래 영상 부호화 장치(100)는 픽쳐 분할부(110), 예측부(120, 125), 변환부(130), 양자화부(135), 재정렬부(160), 엔트로피 부호화부(165), 역양자화부(140), 역변환부(145), 필터부(150) 및 메모리(155)를 포함할 수 있다.
픽쳐 분할부(110)는 입력된 픽쳐를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 단위(Prediction Unit: PU)일 수도 있고, 변환 단위(Transform Unit: TU)일 수도 있으며, 부호화 단위(Coding Unit: CU)일 수도 있다. 이하, 본 발명의 실시예에서는 부호화 단위는 부호화를 수행하는 단위의 의미로 사용할 수도 있고, 복호화를 수행하는 단위의 의미로 사용할 수도 있다.
예측 단위는 하나의 부호화 단위 내에서 동일한 크기의 적어도 하나의 정사각형 또는 직사각형 등의 형태를 가지고 분할된 것일 수도 있고, 하나의 부호화 단위 내에서 분할된 예측 단위 중 어느 하나의 예측 단위가 다른 하나의 예측 단위와 상이한 형태 및/또는 크기를 가지도록 분할된 것일 수도 있다. 부호화 단위를 기초로 인트라 예측을 수행하는 예측 단위를 생성시 최소 부호화 단위가 아닌 경우, 복수의 예측 단위 NxN 으로 분할하지 않고 인트라 예측을 수행할 수 있다.
예측부(120, 125)는 인터 예측 또는 화면 간 예측을 수행하는 인터 예측부(120)와 인트라 예측 또는 화면 내 예측을 수행하는 인트라 예측부(125)를 포함할 수 있다. 예측 단위에 대해 인터 예측을 사용할 것인지 또는 인트라 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 인트라 예측 모드, 모션 벡터, 참조 픽쳐 등)를 결정할 수 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(130)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 모션 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(165)에서 부호화되어 복호화기에 전달될 수 있다. 단, 본 발명에 따른 디코더 측면의 움직임 정보 유도 기법이 적용되는 경우에는, 상기 예측 모드 정보, 모션 벡터 정보 등을 부호화기에서는 생성하지 않으므로, 해당 정보가 복호화기에도 전달되지 않게 된다. 반면, 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 상기 움직임 정보 유도에 사용된 기법에 대한 정보를 상기 부호화기에서 시그널링(signaling)하여 전송하는 것이 가능하다.
인터 예측부(120)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 단위를 예측할 수도 있고, 경우에 따라서는 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로 예측 단위를 예측할 수도 있다. 인터 예측부(120)는 참조 픽쳐 보간부, 모션 예측부, 움직임 보상부를 포함할 수 있다.
참조 픽쳐 보간부에서는 메모리(155)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 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) 방법, 인트라 블록 카피(Intra Block Copy) 방법 등 다양한 방법이 사용될 수 있다. 또한, 본 발명에 따른, 디코더 측면의 움직임 정보 유도 기법을 적용시에는, 모션 예측부에서 수행되는 방법으로는 템플릿 매칭 (template matching) 방법 및 움직임 궤도(motion trajectory)를 활용한 양방향 매칭 (bilateral matching) 방법이 적용될 수 있다. 관련하여, 상기 템플릿 매칭 (template matching) 방법 및 양방향 매칭 (bilateral matching) 방법에 대해서는 도 3에서 상세히 후술하고자 한다.
인트라 예측부(125)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 단위를 생성할 수 있다. 현재 예측 단위의 주변 블록이 인터 예측을 수행한 블록이어서, 참조 픽셀이 인터 예측을 수행한 픽셀일 경우, 인터 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 인트라 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
또한, 예측부(120, 125)에서 생성된 예측 단위를 기초로 예측을 수행한 예측 단위와 예측 단위의 원본 블록과 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(130)로 입력될 수 있다.
변환부(130)에서는 원본 블록과 예측부(120, 125)를 통해 생성된 예측 단위의 잔차값(residual)정보를 포함한 잔차 블록을 DCT(Discrete Cosine Transform), DST(Discrete Sine Transform), KLT와 같은 변환 방법을 사용하여 변환시킬 수 있다. 잔차 블록을 변환하기 위해 DCT를 적용할지, DST를 적용할지 또는 KLT를 적용할지는 잔차 블록을 생성하기 위해 사용된 예측 단위의 인트라 예측 모드 정보를 기초로 결정할 수 있다.
양자화부(135)는 변환부(130)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(135)에서 산출된 값은 역양자화부(140)와 재정렬부(160)에 제공될 수 있다.
재정렬부(160)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다.
재정렬부(160)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다. 예를 들어, 재정렬부(160)에서는 지그-재그 스캔(Zig-Zag Scan)방법을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원 벡터 형태로 변경시킬 수 있다. 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔 대신 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔이 사용될 수도 있다. 즉, 변환 단위의 크기 및 인트라 예측 모드에 따라 지그-재그 스캔, 수직 방향 스캔 및 수평 방향 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(165)는 재정렬부(160)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다. 관련하여, 엔트로피 부호화부(165)는 재정렬부(160) 및 예측부(120, 125)로부터 부호화 단위의 잔차값 계수 정보를 부호화 할 수 있다. 또한, 본 발명에 따라 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보를 시그널링(signaling)하여 전송하는 것이 가능하다.
역양자화부(140) 및 역변환부(145)에서는 양자화부(135)에서 양자화된 값들을 역양자화하고 변환부(130)에서 변환된 값들을 역변환한다. 역양자화부(140) 및 역변환부(145)에서 생성된 잔차값(Residual)은 예측부(120, 125)에 포함된 움직임 추정부, 움직임 보상부 및 인트라 예측부를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다.
필터부(150)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다. ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다.
메모리(155)는 필터부(150)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있고, 저장된 복원 블록 또는 픽쳐는 인터 예측을 수행 시 예측부(120, 125)에 제공될 수 있다.
도 2는 본 발명에 따른 영상 복호화 장치를 나타낸 블록도 이다. 도 2를 참조하면, 영상 복호화기(200)는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230, 235), 필터부(240), 메모리(245)가 포함될 수 있다.
영상 부호화기에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 부호화기와 반대의 절차로 복호화될 수 있다.
엔트로피 복호화부(210)는 영상 부호화기의 엔트로피 부호화부에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화기에서 수행된 방법에 대응하여 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다.
엔트로피 복호화부(210)에서는 부호화기에서 수행된 인트라 예측 및 인터 예측에 관련된 정보를 복호화할 수 있다.
재정렬부(215)는 엔트로피 복호화부(210)에서 엔트로피 복호화된 비트스트림을 부호화부에서 재정렬한 방법을 기초로 재정렬을 수행할 수 있다. 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다.
역양자화부(220)는 부호화기에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 부호화기에서 수행한 양자화 결과에 대해 변환부에서 수행한 변환 즉, DCT, DST, 및 KLT에 대해 역변환 즉, 역 DCT, 역 DST 및 역 KLT를 수행할 수 있다. 역변환은 영상 부호화기에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 복호화기의 역변환부(225)에서는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 변환 기법(예를 들어, DCT, DST, KLT)이 선택적으로 수행될 수 있다.
예측부(230, 235)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(245)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화기에서의 동작과 동일하게 인트라 예측 또는 화면 내 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 동일할 경우, 예측 단위의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 단위에 대한 인트라 예측을 수행하지만, 인트라 예측을 수행시 예측 단위의 크기와 변환 단위의 크기가 상이할 경우, 변환 단위를 기초로 한 참조 픽셀을 이용하여 인트라 예측을 수행할 수 있다. 또한, 최소 부호화 단위에 대해서만 NxN 분할을 사용하는 인트라 예측을 사용할 수도 있다.
예측부(230, 235)는 예측 단위 판별부, 인터 예측부 및 인트라 예측부를 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(210)에서 입력되는 예측 단위 정보, 인트라 예측 방법의 예측 모드 정보, 인터 예측 방법의 모션 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 인터 예측을 수행하는지 아니면 인트라 예측을 수행하는지 여부를 판별할 수 있다. 반면, 만약 부호화기(100)에서 상기 인터 예측을 위한 모션 예측 관련 정보를 전송하지 않고, 대신 움직임 정보를 디코더 측면에서 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보를 전송하는 경우에는, 상기 예측 단위 판별부는 부호화기(100)로부터 전송된 정보를 기초로 하여, 인터 예측부(23)의 예측 수행을 판별하게 된다.
인터 예측부(230)는 영상 부호화기에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 인터 예측을 수행할 수 있다. 인터 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 모션 예측 방법이 스킵 모드(Skip Mode), 머지 모드(Merge 모드), AMVP 모드(AMVP Mode), 인트라 블록 카피 모드 중 어떠한 방법인지 여부를 판단할 수 있다. 또는, 상기 영상 부호화기에서 제공하는, 디코더 측면에서 움직임 정보를 유도하여 사용함을 지시하는 정보 및 움직임 정보 유도에 사용된 기법에 대한 정보로부터, 인터 예측부(230) 자체적으로 움직임 정보를 유도하여 인터 예측을 수행할 수 있다.
인트라 예측부(235)는 현재 픽쳐 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 단위가 인트라 예측을 수행한 예측 단위인 경우, 영상 부호화기에서 제공된 예측 단위의 인트라 예측 모드 정보를 기초로 인트라 예측을 수행할 수 있다. 인트라 예측부(235)에는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화기에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽쳐는 필터부(240)로 제공될 수 있다. 필터부(240)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화기로부터 해당 블록 또는 픽쳐에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화기의 디블록킹 필터에서는 영상 부호화기에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화기에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다. ALF는 부호화기로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(245)는 복원된 픽쳐 또는 블록을 저장하여 참조 픽쳐 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽쳐를 출력부로 제공할 수 있다.
도 3은 본 발명에 따른, 디코더 측면에서 움직임 정보를 유도하는 기법들 중 하나로서, 템플릿 매칭(template matching)을 이용한 움직임 정보 유도 기술의 개념을 도시한 것이다. 즉, 후술할 템플릿 매칭(template matching)을 이용한 움직임 정보 유도 기법을, 상기 부호화기(100)내의 인터 예측부(120) 및 복호화기(200)내의 인터 예측부(230)가 동일하게 수행하게 된다. 따라서, 부호화기(100)는 인코딩시 생성되는 예측 관련 움직임 정보와 잔차신호(residual signal)를 전송하지 않고 혹은, 잔차 신호(residual signal)만을 전송하더라도, 복호화기(200)에서 자체적으로 템플릿 매칭 기법을 적용한 움직임 정보를 유도한 후, 동일하게 복원하는 것이 가능하게 된다. 이하, 템플릿 매칭(template matching)을 이용한 움직임 정보 유도 기법을 상세히 설명한다.
도 3을 참조하면, 템플릿 매칭 (template matching, 이하 'TM' 이라고도 한다)을 이용한 움직임 정보 유도에서는 현재 부호화 및 복호화 대상 픽쳐(300)내의 현재 대상 블록(310)과 공간적으로 인접한 다수개의 화소 집합과 참조 픽쳐들(301, 302)내에 위치하는 동일한 형태의 화소 집합 간의 화소 유사성에 기반하여 움직임 정보를 유도하는 기술이다. 여기서, 현재 대상 블록(300)과 공간적으로 인접한 다수개의 화소 집합과 참조 픽쳐들 (301, 302)내에 위치하는 동일한 형태의 화소 집합을 템플릿 (template)이라고 지칭한다. 따라서, 템플릿의 형태는 기 결정된 형태이거나 상위 신택스를 통해 전송될 수 있다.
현재 대상 블록(300)에 대하여 하나 이상의 템플릿을 구성할 수 있으며, 도 3에서 도시한 실시예와 같이, 상단에 인접한 템플릿 (130)과 좌측에 인접한 템플릿(330)을 각각 사용할 수 있다. 또한, 각 템플릿은 참조 픽쳐에서 동일한 형태와 크기의 템플릿으로 구성될 수 있다. 상기 참조 픽쳐에서 구성되는 템플릿은 현재 대상 블록(300)의 상단에 인접한 템플릿(320)에 대응하는 상단 템플릿(321, 322)과, 현재 대상 블록(300)의 좌측에 인접한 템플릿(330)에 대응하는 좌측 템플릿(331, 332)으로 구성될 수 있다.
이때, 상단과 좌측 인접한 화소들이 구성 가능한지에 대한 여부를 검토하여 상단 및 좌측 인접 화소들을 이용하여 템플릿 구성이 가능한 경우에만 템플릿을 구성하며, 미리 정의된 하나 이상의 템플릿 중 구성 불가능한 템플릿을 제외한 일부 템플릿을 이용하여 템플릿 매칭을 수행할 수 있다.
관련하여, 상기 템플릿이 구성 가능하지 않은 경우는, 현재 대상 블록이 픽쳐, 타일, 및 슬라이스 경계에 위치하는 경우일 수 있다.
도 4는 본 발명에 따른, 디코더 측면에서 움직임 정보를 유도하는 기법들 중 하나로서, 양방향 매칭(bilateral matching)을 이용한 움직임 정보 유도 기술의 개념을 도시한 것이다. 즉, 양방향(bilateral) 매칭을 이용한 움직임 정보 유도 기법을, 상기 부호화기(100)내의 인터 예측부(120) 및 복호화기(200)내의 인터 예측부(230)가 동일하게 수행하게 된다. 따라서, 부호화기(100)는 인코딩시 생성되는 예측 관련 움직임 정보와 잔차 신호(residual signal)를 전송하지 않고 혹은, 잔차 신호(residual signal)만을 전송하더라도, 복호화기(200)에서 자체적으로 양방향 매칭 기법을 적용한 움직임 정보를 유도한 후, 동일하게 복원하는 것이 가능하게 된다. 이하, 양방향(bilateral) 매칭을 이용한 움직임 정보 유도 기법을 상세히 설명한다.
도 4를 참조하면, 양방향 매칭(bilateral matching, 이하 'BM'이라고도 한다)을 이용한 움직임 정보 유도에서는 현재 부호화 및 복호화 대상 픽쳐(300)내의 현재 대상 블록(310)을 중심으로 양방향에 위치하는 참조 픽쳐들(301, 302) 내에 위치하는 서로 다른 두 참조 블록 (401, 402)의 화소 유사성에 기반하여 움직임 정보를 유도하는 기술이다.
이때, 상기 현재 대상 블록(310)을 중심으로 양방향에 위치하는 참조 픽쳐들(301, 302) 내에 위치하는 서로 다른 두 참조 블록들 (401, 402)은 하나의 움직임 궤도 (motion trajectory, 400)를 이용하여 선정한다.
도 4를 참조하면, 본 발명의 일 실시예에 따라 현재 대상 블록(310)을 중심으로 두 개의 서로 다른 참조 픽쳐들 (301, 302)을 하나의 움직임 궤도 (motion trajectory, 400)를 이용하여 연결할 수 있으며, 상기 연결된 위치에 현재 대상 블록(310)과 대응하는 동일한 크기와 형태의 참조 블록들(401, 402)을 구성할 수 있다.
본 발명의 일 실시예에 따른 양방향 매칭 방법은 상기 현재 대상 블록(310)과 대응하는 동일한 크기와 형태의 참조 블록들(401, 402)을 구성하고, 상기 두 참조 블록(401, 402) 내의 화소 간의 오차를 최소화하는 하나의 움직임 궤도 (motion trajectory, 400)를 획득하는 과정을 포함한다.
도 5는 본 발명의 실시예에 따른, 복호화 방법의 흐름도를 예를 들어 도시한 것이다. 특히, 현재 블록이 디코더 측면에서 움직임 정보를 유도하는 모드로 선택되었을 때 복호화 수행의 흐름도에 관한 것이다.
본 발명에서는 디코더 측면의 움직임 정보를 유도하기 위하여 하나 이상의 움직임 정보 유도 기법을 사용하는 경우를 실시예로 설명한다. 상기 하나 이상의 움직임 정보 유도 기법으로써, 템플릿 매칭 (TM) 기법과 양방향 매칭 (BM) 기법을 예로 들 수 있다.
구체적으로, 현재 대상 블록이 디코더 측면의 움직임 정보 유도 (DMVD: decoder-side motion vector derivation) 기법을 사용하는 모드로 선택된 경우, 다수개의 디코더 측면의 움직임 정보 유도 기법 중 하나의 기법을 이용하여, 하나 이상의 부호화 단위에 따라 움직임 정보를 유도하고, 이를 보정하는 단계를 수행함에 따라, 현재 대상 블록과 현재 대상 블록을 다수개로 분할하는 서브-블록들의 움직임 정보를 시그널링 정보 없이도 디코더 측면에서 움직임 정보를 직접 유도하여 획득하는 방법에 관한 것이다.
도 5를 참조하면, 본 발명의 일 실시예에 따라 현재 대상 블록이 디코더 측면의 움직임 정보 유도 기법을 사용하는 모드로 선택된 경우를 가정한다(S300), 이 때 다수개의 디코더 측면의 움직임 정보 유도 기법 중 하나의 기법을 의미하는 정보로서, 상기 하나의 기법을 의미하는 정보가 템플릿 매칭(TM)인지 판별하는 단계(S310)를 포함한다. 상기 S310 단계에서 현재 대상 블록이 템플릿 매칭(TM)을 사용하는 경우, CU 단위로 템플릿 매칭 기법을 이용하여 움직임 정보를 유도하고 이를 보정하는 단계(S320); 및 서브-블록 단위로 템플릿 매칭 기법을 이용하여 움직임 정보를 추가 보정하는 단계(S330)를 포함한다. 또한, 상기 S310 단계에서 현재 대상 블록이 양방향 매칭(BM)을 사용하는 경우, CU 단위로 양방향 매칭 기법을 이용하여 움직임 정보를 유도하고 이를 보정하는 단계(S321), 및 서브-블록 단위로 양방향 매칭 기법을 이용하여 움직임 정보를 추가 보정하는 단계(S331)를 포함한다.
여기서, CU는 코딩 유닛(Coding Unit)을 나타내며, 부호화 및 복호화 단계에서의 코딩 단위를 의미한다. 또한, 서브 블록 (SUB-BLOCK)은 상기 CU를 복수개의 서브 블록으로 분할한 것을 의미한다.
상기 CU 단위로 움직임 정보를 유도하는 단계들(S320, S321)에서 획득한 결과는 현재 부호화 대상 블록에 대한 CU 단위의 최적의 움직임 정보이며, CU 단위 최적의 움직임 정보는 서브-블록 단위로 움직임 정보를 추가 보정하는 단계들(S330, S331)에서 보정을 위한 초기값으로 사용될 수 있다.
도 6은 본 발명의 실시예에 따른, 복호화 방법의 다른 흐름도를 예를 들어 도시한 것이다. 특히, 현재 블록이 디코더 측면에서 움직임 정보를 유도하는 모드로 선택되었을 때 복호화 수행 방법을 보다 상세히 도시한 것이다.
본 발명에서 제안하는 디코더 측면에서 움직임 정보를 유도하는 모드로 선택된 경우, 크게 두 가지 단계의 움직임 정보 유도 과정을 수행하며, 상기 움직임 정보 유도 과정은 부호화기와 복호화기에서 동일하게 수행하므로 부호화기에서 복호화기로 전송되는 정보 없이 움직임을 유도할 수 있다.
도 5와 도 6에서 도시한 바와 같이, 본 발명에서 제안하는 디코더 측면에서 움직임 정보를 유도하는 과정은 CU 단위 개선 단계(S400)와 서브 블록 (SUB-BLOCK) 단위 개선 단계(S420)로 분류할 수 있다.
상기 CU 단위 개선 단계(S400)와 SUB-BLOCK 단위 개선 단계(S420)는 순차적으로 두 단계가 연속하여 수행될 수도 있으나, SUB-BLOCK 단위 개선 단계(S420)를 수행할지에 대한 여부를 판단하는 단계(S410)의 판단 결과에 따라, CU 단위 개선 단계(S400)만 독립적으로 수행하는 것도 가능하다.
상기 CU 단위 개선 단계(S400)와 SUB-BLOCK 단위 개선 단계(S420)에서 포함하는 수행 과정들은 전술한 템플릿 매칭 기법과 양방향 매칭 기법에 동일하게 적용되지만, 탐색 및 결정 단계에서 화소 유사성을 판단하는 매칭 방법이 상이하게 적용되는 차이점이 존재한다.
구체적으로, CU 단위 개선 단계(S400)는 CU 단위 움직임 후보 리스트 생성 단계(S401), CU 단위 최적의 움직임 결정 단계(S402) 및 CU 단위 개선 탐색 단계(S403)를 포함한다.
상기 CU 단위 움직임 후보 리스트 생성 단계(S401)는 CU 단위의 디코더 측면의 움직임 유도를 수행하기 위하여 초기 탐색 위치 선정에 필요한 움직임 후보 리스트를 생성하는 단계이다. 이때, 상기 움직임 후보 리스트에 추가되는 움직임 후보들은 미리 정의되어 부호화기 및 복호화기에서 동일한 순서에 따라 추가 될 수 있다. 관련하여, CU 단위 움직임 후보 리스트를 구성하는 방법은 도 15 에서 상세히 후술할 예정이다.
상기 CU 단위 최적의 움직임 결정 단계(S402)는 CU 단위 움직임 후보 리스트 생성 단계(S401)에서 생성된 움직임 후보 리스트에 추가된 움직임 후보들에 대하여 순차적으로 탐색을 수행하여 다수개의 움직임 후보들 중 최소 코스트(cost)을 갖는 하나의 최적(best) 움직임 후보를 선정하는 단계이다.
관련하여, 상기 최적 움직임 후보를 결정하는데 사용되는 코스트(cost)로 블록 내에 포함된 화소 간의 유사성을 판단하는 SAD(Sum of absolute difference)를 사용할 수 있다. 단, SAD외에 SATD(Sum of absolute transformed difference), SSE(Sum of square error) 등이 다양하게 사용될 수 있으며, 화소 간의 유사성과 함께 비트율에 대한 값을 함께 고려하여 율-왜곡값 (RD-cost)를 사용할 수 있다.
상기 CU 단위 개선 탐색 단계(S403)는 CU 단위 최적의 움직임 결정 단계(S402)에서 결정된 최적 움직임 정보를 시작 위치로 추가적인 탐색을 수행하여 CU 단위 최적의 움직임을 최종적으로 결정하는 단계이다.
상기 CU 단위 개선 탐색 단계(S403)에서 CU 단위 최적의 움직임을 결정하기 위하여 탐색하는 움직임 탐색 기법으로는 다양한 탐색 방법이 사용 될 수 있으며, 상기 움직임 탐색 기법의 실시예로 스퀘어 탐색(Square search), 헥사곤 탐색(Hexagon search), 다이아몬드 탐색(diamond search), 크로스 탐색(Cross search), 및 적응적 크로스 탐색(Adaptive cross search)을 들 수 있다.
본 발명의 일 실시예에 따르면, 상기 CU 단위 개선 탐색 단계(S403)에서는 하나 이상의 서로 다른 움직임 탐색 기법이 순차적으로 수행 될 수 있으며, 최초 다이아몬드 탐색으로 1차 탐색 과정을 수행하는 과정에서 탐색 위치가 변경되지 않을 때, 해당 위치의 상, 하, 좌, 우의 네 개의 화소 위치를 탐색하는 크로스 탐색 기법을 적용하여 2차 탐색 과정을 수행할 수 있다. 이에 대해서는 도 9에서 상세히 후술하고자 한다.
관련하여, 상기 탐색 과정에서 탐색 위치가 변경되지 않는다는 의미는, 탐색하는 다수개의 위치 중 탐색 단계별 초기 위치의 탐색값이 최소를 나타내는 경우를 의미한다. 상기 CU 단위 개선 탐색 단계(S403)에서 사용되는 탐색 기법 및 탐색 기법의 순서는 미리 정의된 순서를 따르거나, 상위 레벨 신택스를 통해 어떤 탐색 기법을 사용하는지에 대한 정보가 전송될 수 있다.
본 발명에 따른, 디코더 측면에서 움직임 정보를 유도하는 과정에서 CU 단위 개선 단계(S400) 수행 이후, SUB-BLOCK 단위 개선 단계의 수행 여부를 판단하는 단계(S410)를 통해 SUB-BLOCK 단위 개선 단계(S420)의 수행여부를 결정하고, 만약 상기 S410 단계의 결과로서, SUB-BLOCK 단위 개선 단계(S420)을 수행키로 한 경우에만(S410, 'Yes' 가지), SUB-BLOCK 단위 개선 단계(S420)를 수행한다.
상기 S410 단계에서, SUB-BLOCK 단위 개선 단계의 수행 여부를 판단함에 있어, 현재 CU 단위 움직임 정보 유도 단계(S400)에서 결정된 CU 단위 최적의 움직임 정보가 존재하는 경우에는 SUB-BLOCK 단위 개선 단계(S420)의 수행 여부를 참(Yes)으로 판단한다. 이때, 상기 CU 단위 최적의 움직임 정보가 존재한다는 의미는 CU 단위 움직임 유도를 위한 움직임 후보 리스트를 구성하고 해당 구성 리스트에 포함된 움직임 후보들 중 최소한 하나의 움직임 정보를 이용하여 움직임 유도가 가능한 경우를 의미한다.
SUB-BLOCK 단위 개선 단계(S420)는 SUB-BLOCK 단위 움직임 후보 리스트 생성 단계(S421); SUB-BLOCK 단위 최적의 움직임 결정 단계(S422); 및 SUB-BLOCK 단위 개선 탐색 단계(S423)를 포함한다. 또한, 상기 SUB-BLOCK 단위 개선 단계(S420)는 현재 대상 블록 내의 다수개의 모든 SUB-BLOCK들에 대하여 순차적으로 수행한다.
상기 SUB-BLOCK 단위 움직임 후보 리스트 생성 단계(S421)는 SUB-BLOCK 단위의 디코더 측면의 움직임 유도를 수행하기 위하여 초기 탐색 위치 선정에 필요한 움직임 후보 리스트를 생성하는 단계이다.
이때, 상기 움직임 후보 리스트에 추가되는 움직임 후보들은 미리 정의 되어 부호화기 및 복호화기에서 동일한 순서에 따라 추가 될 수 있다. 단, SUB-BLOCK 단위 움직임 후보 리스트를 생성하기에 앞서 CU 단위 개선 단계를 수행한 경우, CU 단위에서 결정된 최적의 움직임 정보를 상기 SUB-BLOCK 단위 움직임 후보 리스트에 포함한다. 관련하여, SUB-BLOCK 단위 움직임 후보 리스트를 구성하는 방법은 도 15 에서 상세히 후술할 예정이다.
상기 SUB-BLOCK 단위 최적의 움직임 결정 단계(S422)는 SUB-BLOCK 단위 움직임 후보 리스트 생성 단계(S421)에서 결정된 움직임 후보 리스트에 추가된 움직임 후보들에 대하여 순차적으로 탐색을 수행하여 다수개의 움직임 후보들 중 최소 값(cost)을 갖는 하나의 움직임 후보를 선정하는 단계이다.
상기 SUB-BLOCK 단위 개선 탐색 단계(S423)는 SUB-BLOCK 단위 최적의 움직임 결정 단계(S422)에서 결정된 움직임 정보를 시작 위치로 추가적인 탐색을 수행하여 SUB-BLOCK 단위 최적의 움직임을 최종적으로 결정하는 단계이다.
상기 SUB-BLOCK 단위로 하나의 움직임 후보를 결정함에 있어, 디코더 측면의 움직임 유도 기법에 따라 서로 다른 최적의 움직임 정보 결정값을 사용할 수 있다. 본 발명의 실시예에 따라, 템플릿 매칭을 이용하여 움직임을 유도하는 기법의 경우, 상기 하나의 움직임 후보를 결정하는 데 사용되는 코스트로 블록내에 포함된 화소간의 유사성을 판단하는 SAD를 사용할 수 있다. 반면, 양방향 매칭(BM)을 이용하여 움직임을 유도하는 기법의 경우, 상기 하나의 움직임 후보를 결정하는 데 사용되는 코스트로 블록내에 포함된 화소간의 유사성을 판단하는 SAD와 움직임 벡터의 크기 정보와 가중치 합으로 유도되는 율-왜곡값 (RD-cost)를 사용할 수 있다. 상기 율-왜곡값은 아래 수학식(1)과 같이 표현할 수 있다.
[수학식 1]
RDcost=SAD+W*(|mvx-mv'y|+|mvy-mv'y|)
w는 움직임 벡터의 크기 정보에 대한 가증치를 의미하며, mv 는 CU단위 최적의 움직임 벡터를 의미하며, mv' 은 SUB-BLOCK 단위로 탐색하는 대상 움직임 벡터를 의미한다. 단, 상기 율-왜곡값의 사용에 한정되는 아니며, SAD, SATD, SSE 등이 단독으로 사용될 수도 있고, 상기 가중치가 경우에 따라 변경되는 것도 가능하다.
이하, 디코더 측면에서 움직임 정보를 개선하는 방법에 대해서 자세히 살펴 보도록 한다. 본 실시예는, 전술한 CU 단위 개선 단계 및/또는 SUB-BLOCK 단위 개선 단계에서 적용될 수 있다.
현재 블록에 대해 기-복원된 움직임 정보는 소정의 델타 움직임 정보에 기초하여 개선될 수 있으며, 이는 다음 수학식 2와 같이 표현될 수 있다.
[수학식 2]
MVref=MVrec+deltaMV
수학식 2에서, MVref는 개선된 움직임 정보를 의미하고, MVrec와 deltaMV는 각각 기-복원된 움직임 정보와 델타 움직임 정보를 의미할 수 있다. 디코더는, 델타 움직임 정보의 초기값을 0으로 설정할 수 있다. 디코더는, 현재 블록의 참조 블록의 위치를 기준으로 탐색을 수행하여 최적의 참조 블록을 결정할 수 있다. 여기서, 현재 블록의 참조 블록은 상기 기-복원된 움직임 정보에 의해 지시되는 영역을 의미할 수 있다. 디코더는, 최적의 참조 블록의 위치를 기반으로 델타 움직임 정보를 갱신할 수 있다. 여기서, 참조 블록은 L0/L1 참조 블록을 포함할 수 있다. L0 참조 블록은, 참조 픽쳐 리스트0(L0)의 참조 픽쳐에 속한 참조 블록을 의미하고, L1 참조 블록은, 참조 픽쳐 리스트1(L1)의 참조 픽쳐에 속한 참조 블록을 의미할 수 있다.
구체적으로, 디코더는 움직임 정보의 개선을 위한 탐색 영역을 결정할 수 있다(S1). 상기 탐색 영역은, 참조 블록 또는 상기 참조 블록의 인접 영역 중 적어도 하나를 포함하는 영역으로 결정될 수 있다. 이때, 상기 참조 블록의 좌상단 샘플의 위치가 탐색의 기준 위치가 될 수 있다. 탐색 영역은, L0 방향과 L1 방향에 대해서 각각 결정될 수 있다. 인접 영역은, 참조 블록의 경계(boundary)를 기준으로 N개의 샘플 라인만큼 확장된 영역을 의미할 수 있다. 여기서, N은 1, 2, 3 또는 그 이상의 정수일 수 있다.
인접 영역은, 참조 블록의 좌측, 상단, 우측, 하단, 좌상단, 좌하단, 우상단 또는 우하단 중 적어도 하나의 방향에 위치할 수 있다. 이때, 현재 블록이 WxH인 경우, 탐색 영역은 (W+2N)x(H+2N)으로 표현될 수 있다. 다만, 개선 과정의 복잡도를 줄이기 위해, 인접 영역은 전술한 방향 중 일부 방향에만 위치할 수도 있다. 예를 들어, 참조 블록의 좌측 및 상단에 인접한 영역으로 제한될 수도 있고, 참조 블록의 우측 및 하단에 인접한 영역으로 제한될 수도 있다.
샘플 라인의 개수(N)는, 디코더에 기-정의된 고정된 값일 수도 있고, 블록 속성을 고려하여 가변적으로 결정될 수도 있다. 여기서, 블록 속성은, 블록의 크기/형태, 블록 위치, 인터 예측 모드, 성분 타입 등을 의미할 수 있다. 상기 블록 위치는, 참조 블록이 픽쳐 또는 소정의 조각 영역의 경계에 접하는지 여부를 의미할 수 있다. 상기 조각 영역은, 타일, 코딩 트리 블록 열/행, 또는 코딩 트리 블록을 의미할 수 있다. 예를 들어, 블록 속성에 따라, 0개, 1개 또는 2개의 샘플 라인 중 어느 하나가 선택적으로 이용될 수 있다.
디코더는, 탐색 영역 내의 탐색 위치 별 SAD(sum of absolute difference)를 특정하는 리스트(이하, SAD 리스트라 함)를 결정할 수 있다(S2).
SAD 리스트는, 복수의 SAD 후보를 포함할 수 있다. SAD 리스트를 구성하는 SAD 후보의 개수는 M개이며, M은 2보다 크거나 같은 정수일 수 있다. 상기 M은 최대 9개로 제한될 수도 있다.
SAD 후보는 L0 블록과 L1 블록 간의 SAD 값으로 결정될 수 있다. 이때, SAD 값은, L0/L1 블록에 속한 모든 샘플을 기초로 산출될 수도 있고, L0/L1 블록 내의 일부 샘플을 기초로 산출될 수도 있다. 여기서, 일부 샘플은 L0/L1 블록의 서브 블록을 의미하고, 서브 블록의 너비 또는 높이 중 적어도 하나는 L0/L1 블록의 너비 또는 높이의 절반일 수 있다. 즉, L0 및 L1 블록은 WxH의 크기를 가지며, 상기 일부 샘플은 WxH/2, W/2xH 또는 W/2xH/2의 크기를 가진 서브 블록일 수 있다. 이때, 일부 샘플이 WxH/2인 경우, 일부 샘플은 L0/L1 블록 내에서 상단 서브 블록(혹은 하단 서브 블록)일 수 있다. 일부 샘플이 W/2xH인 경우, 일부 샘플은 L0/L1 블록 내에서 좌측 서브 블록(혹은 우측 서브 블록)일 수 있다. 일부 샘플이 W/2xH/2인 경우, 일부 샘플은 L0/L1 블록 내에서 좌상단 서브 블록일 수 있으나, 이에 한정되지 아니한다. 또는, 일부 샘플은, L0/L1 블록의 짝수번째 또는 홀수번째 샘플 라인(수직 또는 수평 방향)의 그룹으로 정의될 수도 있다. 또한, 여기서, 일부 샘플은 L0/L1 블록의 너비 또는 높이 방향으로 서브 샘플링된 블록일 수 있다. 즉, L0 및 L1 블록은 WxH의 크기를 가지며, 상기 일부 샘플에 대응하는 블록은 WxH의 크기를 가지지만, 해당 블록에 포함되는 샘플 중 홀수 행의 집합, 짝수 행의 집합, 홀수 열의 집합, 혹은 짝수 열의 집합 중 하나일 수 있다.
상기 L0 블록의 위치는, 현재 블록의 L0 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정될 수 있다. 오프셋은, L0 참조 블록의 위치와 탐색 위치 간의 변이 벡터를 의미할 수 있다. 즉, 탐색 위치는, L0 참조 블록의 위치 (x0,y0)에서 x축 방향으로 p만큼, y축 방향으로 q만큼 쉬프트된 위치일 수 있다. 여기서, p와 q는 -1, 0, 또는 1 중 적어도 하나일 수 있다. 이때, p와 q의 조합으로 생성되는 변이 벡터가 오프셋을 의미할 수 있다. L0 블록의 위치는, L0 참조 블록의 위치 (x0,y0)에서 (p,q)만큼 쉬프트된 위치로 결정될 수 있다. 상기 p와 q의 크기(또는 절대값)은 0 또는 1이나, 이에 한정되지 아니한다. 예를 들어, 상기 p와 q의 크기는 2, 3, 또는 그 이상일 수 있다.
상기 오프셋은, 넌-방향성 오프셋 (0,0) 또는 방향성 오프셋 중 적어도 하나를 포함할 수 있다. 상기 방향성 오프셋은, 좌측, 우측, 상단, 하단, 좌상단, 우상단, 좌하단 또는 우하단 중 적어도 하나의 방향에 대한 오프셋을 포함할 수 있다. 예를 들어, 상기 방향성 오프셋은, (-1,0), (0,1), (0,-1), (0,1), (-1,-1), (-1,1), (1,-1) 또는 (1,1) 중 적어도 하나를 포함할 수 있다.
마찬가지로, 상기 L1 블록의 위치는, 현재 블록의 L1 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정될 수 있다. 여기서, L1 블록의 오프셋은 L0 블록의 오프셋에 기초하여 결정될 수 있다. 예를 들어, L0 블록의 오프셋이 (p,q)인 경우, L1 블록의 오프셋은 (-p,-q)으로 결정될 수 있다.
전술한 오프셋의 크기 및/또는 방향에 관한 정보는, 디코더에 기-정의된 것일 수도 있고, 인코더에서 부호화되어 디코더로 시그날링될 수도 있다. 상기 정보는, 전술한 블록 속성을 고려하여 가변적으로 결정될 수도 있다.
일예로, 오프셋은 다음 표 1과 같이 정의될 수 있다.
i 0 1 2 3 4 5 6 7 8
dX[ i ] -1 0 1 -1 0 1 -1 0 1
dY[ i ] -1 -1 -1 0 0 0 1 1 1
표 1은, 인덱스 i 별로, 탐색 위치 결정을 위한 오프셋을 정의한다. 다만, 표 1은 인덱스 i에 대응하는 오프셋의 위치를 한정하는 것은 아니며, 인덱스 별 오프셋의 위치는 표 1과 상이할 수 있다. 표 1에 따른 오프셋은, 전술한 넌-방향성 오프셋 (0,0) 및 8개의 방향성 오프셋을 포함할 수 있다.
이 경우, 0번째 SAD 후보는, 참조 블록의 위치 (x,y)와 오프셋 (-1,-1)에 기초하여 결정될 수 있다. 구체적으로, L0 참조 블록의 위치 (x0,y0)에서 오프셋 (-1,-1)만큼 쉬프트된 위치를 탐색 위치로 설정하고, 해당 탐색 위치를 좌상단 샘플로 포함하는 WxH 블록을 L0 블록으로 결정할 수 있다.
마찬가지로, L1 참조 블록의 위치 (x1,y1)에서 오프셋 (1,1)만큼 쉬프트된 위치를 탐색 위치로 설정하고, 해당 탐색 위치를 좌상단 샘플로 포함하는 WxH 블록을 L1 블록으로 결정할 수 있다. 상기 L0 블록과 L1 블록 간의 SAD를 산출하여 0번째 SAD 후보를 결정할 수 있다.
전술한 과정을 통해, 1번째 내지 8번째의 SAD 후보를 결정하고, 9개의 SAD 후보를 포함한 SAD 리스트를 결정할 수 있다.
표 1은 움직임 정보 개선을 위한 오프셋의 개수를 한정하는 것은 아니다. 상기 9개의 오프셋 중 k개의 오프셋만이 이용될 수도 있다. 여기서, k는 2 내지 8 중 임의의 값일 수 있다. 예를 들어, 표 1에서, [0,4,8], [1,4,7], [2,4,6], [3,4,5] 등과 같은 3개의 오프셋이 이용될 수도 있고, [0,1,3,4], [4,5,7,8] 등과 같은 4개의 오프셋이 이용될 수도 있으며, [0,1,3,4,6,7,], [0,1,2,3,4,5,] 등과 같은 6개의 오프셋이 이용될 수도 있다.
일예로, 오프셋은 다음 표 2와 같이 정의될 수 있다. 즉, 오프셋은 넌-방향성 오프셋 (0,0), 수평 방향의 오프셋 ((-1,0), (1,0)) 및 수직 방향의 오프셋 ((0,-1), (0,1))만으로 구성될 수도 있다.
i 0 1 2 3 4
dX[ i ] 0 -1 0 1 0
dY[ i ] -1 0 0 0 1
이와 같이, 오프셋의 크기 및/또는 개수에 따라서, 전술한 탐색 영역의 크기 및/또는 형태는 가변적으로 결정될 수 있다. 탐색 영역는 사각형 이외에 기하학적인 형태를 가질 수 있으며, 이에 대해서는 도 9를 참조하여 살펴 보기로 한다.
디코더는, 전술한 SAD 리스트의 SAD 후보에 기초하여, 현재 블록의 움직임 정보의 개선을 위한 제1 방법 또는 제2 방법 중 어느 하나를 선택할 수 있다(S3).
상기 선택은, 기준 SAD 후보와 소정의 문턱값 간의 비교 결과에 기초하여 수행될 수 있다(실시예 1).
상기 기준 SAD 후보는, 오프셋 (0,0)에 대응하는 SAD 후보를 의미할 수 있다. 또는, 상기 기준 SAD 후보는, 참조 블록의 위치 또는 후술하는 제1 방법에 의해 변경된 기준 위치에 대응하는 SAD 후보를 의미할 수 있다.
상기 문턱값은, 현재 블록 또는 참조 블록의 너비(W) 또는 높이(H) 중 적어도 하나에 기초하여 결정될 수 있다. 예를 들어, 상기 문턱값은, W*H, W*(H/2), (W/2)*H, 2*W*H, 4*W*H 등으로 결정될 수 있다.
상기 기준 SAD 후보가 문턱값보다 크거나 같은 경우, 제1 방법에 기초하여 델타 움직임 정보가 갱신되고, 그렇지 않은 경우, 제2 방법에 기초하여 델타 움직임 정보가 갱신될 수 있다.
(1) 제1 방법의 경우
SAD 리스트에 속한 SAD 후보 중에서 최소값을 가진 SAD 후보를 식별할 수 있다. 상기 식별 방법에 대해서는 후술하도록 한다. 상기 식별된 SAD 후보에 대응하는 오프셋을 기반으로, 델타 움직임 정보가 갱신될 수 있다.
그런 다음, 상기 식별된 SAD 후보에 대응하는 탐색 위치가 탐색을 위한 기준 위치로 변경될 수 있다. 변경된 기준 위치에 기반하여, 전술한 SAD 리스트 결정 및/또는 최소값의 SAD 후보 식별 과정을 재수행할 수 있으며, 중복된 설명은 생략하기로 한다. 재수행 결과에 기초하여, 상기 델타 움직임 정보가 갱신될 수 있다.
(2) 제2 방법의 경우
SAD 리스트에 속한 SAD 후보 전부 또는 일부를 이용하여 산출된 파라미터를 기반으로, 델타 움직임 정보가 갱신될 수 있다.
상기 파라미터는, x축 방향에 관한 파라미터(dX) 또는 y축 방향에 관한 파라미터(dY) 중 적어도 하나를 포함할 수 있다. 예를 들어, 상기 파라미터는, 다음과 같이 산출될 수 있으며, 설명의 편의를 위해 전술한 표 1를 기반으로 설명하기로 한다.
sadList[3]와 sadList[5]의 합이 (sadList[4]<<1)와 같은 경우, dX는 0으로 설정될 수 있다. 여기서, sadList[3]는 오프셋 (-1,0)에 대응하는 SAD 후보이고, sadList[5]는 오프셋 (1,0)에 대응하는 SAD 후보이며, sadList[4]는 오프셋 (0,0)에 대응하는 SAD 후보를 의미할 수 있다.
sadList[3]와 sadList[5]의 합이 (sadList[4]<<1)보다 큰 경우, dX는 다음 수학식 3과 같이 결정될 수 있다.
[수학식 3]
dX=((sadList[3]sadList[5])<<3)/(sadList[3]+sadList[5](sadList[4]<<1))
sadList[1]와 sadList[7]의 합이 (sadList[4]<<1)와 같은 경우, dY는 0으로 설정될 수 있다. 여기서, sadList[1]는 오프셋 (0,-1)에 대응하는 SAD 후보이고, sadList[7]는 오프셋 (0,1)에 대응하는 SAD 후보이며, sadList[4]는 오프셋 (0,0)에 대응하는 SAD 후보를 의미할 수 있다.
sadList[1]와 sadList[7]의 합이 (sadList[4]<<1)보다 큰 경우, dY는 다음 수학식 4와 같이 결정될 수 있다.
[수학식 4]
dY=((sadList[1]sadList[7])<<3)/(sadList[1]+sadList[7](sadList[4]<<1))
상기 산출된 파라미터에 기초하여, 델타 움직임 정보는 갱신될 수 있다.
또는, 전술한 S3의 선택은, 기준 SAD 후보가 SAD 리스트에 속한 SAD 후보 중 최소값인지 여부에 기초하여 수행될 수 있다(실시예 2).
예를 들어, SAD 리스트에 속한 SAD 후보 중 최소값이 기준 SAD 후보가 아닌 경우, 제1 방법에 기초하여 델타 움직임 정보가 갱신되고, 그렇지 않은 경우, 제2 방법에 기초하여 델타 움직임 정보가 갱신될 수 있다. 제1 방법 및 제2 방법은 전술한 바와 같은바, 자세한 설명은 생략하기로 한다.
또는, 전술한 S3의 선택은, 전술한 실시예1 및 실시예 2의 조합에 기초하여 수행될 수도 있다(실시예 3).
예를 들어, 상기 기준 SAD 후보가 문턱값보다 작은 경우, 전술한 제2 방법에 따른 파라미터를 이용하여 델타 움직임 정보가 갱신될 수 있다.
그러나, 상기 기준 SAD 후보가 문턱값보다 크거나 같은 경우, SAD 리스트에 속한 SAD 후보 중 최소값을 가진 SAD 후보를 식별할 수 있다. 식별된 SAD 후보가 기준 SAD 후보인 경우, 전술한 제2 방법에 따른 파라미터를 이용하여 델타 움직임 정보가 갱신될 수 있다. 반면, 식별된 SAD 후보가 기준 SAD 후보가 아닌 경우, 전술한 제1 방법에 따라 델타 움직임 정보가 갱신될 수 있다.
상기 최소값의 SAD 후보를 식별하는 방법을 살펴 보기로 한다. SAD 리스트에 속한 SAD 후보를 2개, 3개 또는 그 이상의 개수로 그룹핑할 수 있다. 이하 설명의 편의를 위해 SAD 후보를 2개의 그룹으로 그룹핑하는 경우를 살펴 보도록 한다.
복수의 SAD 후보는 제1 그룹과 제2 그룹으로 그룹핑될 수 있다. 각 그룹은 SAD 리스트 내의 SAD 후보 중 적어도 2개의 SAD 후보를 포함할 수 있다. 다만, 상기 그룹에는 기준 SAD 후보는 포함되지 않도록 제한될 수 있다. 각 그룹에 대해 minimum operation을 적용하여, 각 그룹 별로 최소값을 가진 SAD 후보를 추출할 수 있다.
제1 그룹으로부터 추출된 SAD 후보와 제2 그룹으로부터 추출된 SAD 후보 중 최소값을 가진 SAD 후보(이하, 임시 SAD 후보라 함)를 다시 추출할 수 있다.
상기 임시 SAD 후보와 기준 SAD 후보 간의 비교 결과에 기초하여, 상기 최소값의 SAD 후보를 식별할 수 있다. 예를 들어, 임시 SAD 후보가 기준 SAD 후보보다 작은 경우, 임시 SAD 후보가 SAD 리스트 내 최소값의 SAD 후보로 식별될 수 있다. 반면, 임시 SAD 후보가 기준 SAD 후보보다 크거나 같은 경우, 기준 SAD 후보가 SAD 리스트 내 최소값의 SAD 후보로 식별될 수 있다.
전술한 디코더 측면에서의 움직임 정보 개선 방법은, 블록 크기에 기초하여 서브 블록 단위로 수행될 수 있다. 예를 들어, 현재 블록의 크기가 소정의 문턱크기보다 크거나 같은 경우, 상기 문턱크기의 단위로 움직임 정보 개선 방법이 수행될 수 있다. 반면, 현재 블록의 크기가 소정의 문턱크기보다 작은 경우, 현재 블록의 단위로 움직임 정보 개선 방법이 수행될 수 있다. 여기서, 문턱크기는, 블록 너비 또는 높이 중 적어도 하나가 T 값인 것으로 결정될 수 있다. T 값은 16, 32, 64 또는 그 이상의 정수일 수 있다.
전술한 디코더 측면에서의 움직임 정보 개선 방법은, 블록 크기, 현재 픽쳐와 참조 픽쳐 간의 거리, 인터 예측 모드, 예측 방향, 움직임 정보의 단위 또는 해상도 등을 고려하여 제한적으로 수행될 수도 있다.
예를 들어, 현재 블록의 너비 또는 높이 중 어느 하나가 8, 16 또는 32보다 크거나 같은 경우에 한하여 개선 방법이 수행될 수 있다. 또는, 현재 블록의 너비 및 높이가 8, 16 또는 32보다 크거나 같은 경우에 한하여 개선 방법이 적용될 수 있다. 또는, 현재 블록의 넓이 또는 샘플 개수가 64, 128 또는 256보다 크거나 같은 경우에 한하여 개선 방법이 적용될 수도 있다.
현재 픽쳐와 L0 참조 픽쳐 간의 POC 차이와 현재 픽쳐와 L1 참조 픽쳐 간의 POC 차이가 동일한 경우에 한하여 개선 방법이 적용될 수 있다.
현재 블록의 인터 예측 모드가 머지 모드인 경우에 한하여 개선 방법이 적용될 수도 있고, 기타 다른 모드(e.g., 어파인 모드, AMVP 모드 등)인 경우에는 개선 방법이 적용되지 않을 수 있다.
현재 블록이 양방향 예측을 수행하는 경우에 한하여 개선 방법이 적용될 수 있다. 또한, 움직임 정보의 단위가 정수펠인 경우에 한하여 개선 방법이 적용될 수도 있고, 쿼터펠 또는 하프펠 이하인 경우에 한하여 개선 방법이 적용? 수도 있다.
도 7은 본 발명의 실시예에 따른, 복호화 방법의 또 다른 흐름도를 예를 들어 도시한 것이다. 특히, 현재 블록이 디코더 측면에서 움직임 정보를 유도하는 모드로 선택되었을 때 SUB-BLOCK 단위 개선 단계(S420)의 수행 여부를 판단하는 기준에 대해 예를 들어 도시한 것이다. 도 7에 의하면, CU 단위 개선 단계(S400)에서 선택된 움직임을 이용하여 블록 매칭 코스트(cost)를 계산하였을 때, 상기 블록 매칭 코스트 값이 미리 정의된 특정 문턱치 값(THR: threshold)과 비교하여(S411), 블록 매칭 코스트 값이 특정 문턱치 값(THR) 보다 작거나 동일한 경우에는 SUB-BLOCK 단위 개선 단계(S420)의 수행을 하지 않는 것으로 판단할 수 있다. 즉, 블록 매칭 코스트 값이 특정 문턱치 값(THR) 보다 큰 경우에만 SUB-BLOCK 단위 개선 단계(S420)의 수행 하는 것으로 판단할 수 있다.
본 발명의 일 실시예에 따르면, 상기 미리 정의된 특정 문턱치 값(THR)을 '0'으로 설정할 수 있다. 이는 CU 단위 개선 단계(S400)에서 유도된 최적의 움직임을 이용하여 템플릿 매칭(TM) 혹은 양방향 매칭(BM)을 수행 하였을 때, 블록 매칭에 사용된 템플릿 혹은 참조 블록 간에 오차가 존재하지 않음을 의미한다. 단, 상기 문턱치 값은 '0'으로 한정되지 않으며, 미리 정의된 값 혹은 상위-레벨 신택스(syntax)를 통해 전송될 수 있다. 따라서, 상기 블록 매칭 값을 이용하여 추가적인 SUB-BLOCK 단위 개선 여부를 판단 함으로서 효율적으로 복잡도를 감소 시킬 수 있다.
도 6의 S410 단계 및 도 7의 S411 단계를 통해, 특정 조건에서 SUB-BLOCK 단위 개선 단계(S420)의 수행 없이 움직임 정보 유도 과정을 조기 종료하는 것이 가능하게 되어, 복호화 복잡도 감소에 크게 기여할 수 있다.
단, 상기 블록 매칭 코스트를 이용한 조기 종료 판별 단계(S411)는 도 7에서 도시한 CU 단위 개선 단계(S400)와 SUB-BLOCK 단위 개선 단계(S420) 사이에서만 수행되는 것에 국한되지 않으며, 본 발명에서 제안하는 디코더 측면의 움직임 예측 방법을 이용하여 블록 매칭 코스트를 계산하는 다수의 단계에 적용되어 사용될 수 있다. 즉, 블록 매칭 코스트를 계산하는 과정에서, 상기 S411 단계와 같은 조건을 만족 시, 블록 매칭 코스트 계산을 종료함에 따라, 복호화 복잡도 감소에 기여할 수 있게 된다.
도 8은 본 발명의 실시예에 따른, 복호화 방법의 또 다른 흐름도를 예를 들어 도시한 것이다. 특히, CU 단위 개선 탐색을 수행하지 않고, SUB-BLOCK 단위 개선 탐색만을 수행하는 움직임 유도의 흐름도을 도시한 것이다. 즉, 본 발명의 일 실시예에 따라, 디코더 측면의 움직임 유도를 수행하기 위하여 CU 단위 개선 탐색은 수행하지 않고, SUB-BLOCK 단위 개선 탐색만을 수행할 수 있다.
도 8을 참조하면, SUB-BLOCK 단위 개선 탐색만을 수행하는 움직임 유도 과정은, 전술한 도 6에서 도시한 움직임 유도 과정과 달리 CU 단위 개선 단계에 포함되는 CU 단위 개선 탐색(S403)를 포함하지 않으며, 대신 더욱 개선된 SUB-BLOCK 단위 개선 탐색(S501)을 포함하는 것을 특징으로 한다. 다만, CU 단위 개선 탐색 없이, SUB-BLOCK 단위 개선 탐색(S501)만을 수행하므로, 전술한 도 6의 SUB-BLOCK 단위 개선 탐색(S423) 보다 상세한 탐색 기법을 이용하여 탐색을 수행하는 것을 특징으로 한다. 반면, CU 단위 개선 탐색 단계를 수행하지 않고, SUB-BLOCK 단위 개선 탐색 만을 수행하기 때문에, 상대적으로 움직임 유도 과정에서 발생하는 복잡도를 효율적으로 감소 시킬 수 있게 된다.
도 8을 참조하면, 디코더 측면의 움직임 유도 과정에서는 CU 단위 움직임 후보 리스트 생성 단계(S401), CU 단위 최적의 움직임 결정 단계(S402), SUB-BLOCK 단위 움직임 후보 리스트 생성 단계(S421), SUB-BLOCK 단위 최적의 움직임 결정 단계(S422)를 포함하고, 상기 각 단계의 동작은 전술한 도 6에서 동일 부호 단계(S401, S402, S421, S422)와 동일하다. 대신, 본 발명에 따른 실시예로 SUB-BLOCK 단위 개선 탐색 단계(501)를 보완하는 것을 특징으로 한다.
구체적으로, 전술한 도 6에서 도시한 SUB-BLOCK 단위 개선 탐색 단계(S423)에서는, CU 단위 개선 탐색 및 SUB-BLOCK 단위 최적의 움직임 결정 단계 등의 다수의 탐색 단계를 수행하여 최적의 움직임을 탐색하였기 때문에 탐색 복잡도가 상대적으로 낮은 크로스 탐색(Cross search), 적응적 크로스 탐색 (Adaptive cross search)을 사용하여 움직임 개선 탐색을 수행할 수 있다.
반면, 도 8에서 도시한 SUB-BLOCK 단위 개선 탐색만을 수행하는 경우의 SUB-BLOCK 단위 개선 탐색 단계(501)에서는 CU 단위 개선 탐색을 수행하지 않고, 미리 정의된 다수개의 움직임 정보만을 이용하여 최적의 움직임을 탐색하였기 때문에 탐색 복잡도가 상대적으로 높은 다이아몬드 탐색(Diamond search)을 사용하여 1차 개선 탐색을 수행한 이후, 크로스 탐색(Cross search)를 이용하여 2차 개선 탐색을 수행한다. 단, 상기 탐색 복잡도가 상대적으로 높은 탐색으로 다이아몬드 탐색만으로 국한되지 않으며, 스퀘어 탐색(Square search), 헥사곤 탐색(Hexagon search) 등이 추가로 사용될 수 있으며, 서로 상이한 다수개의 단계를 사용하여 움직임 개선 탐색을 수행할 수 있다.
이하, 디코더 측면에서 움직임 보상을 개선하는 방법에 대해서 자세히 살펴 보기로 한다. 본 실시예는, SUB-BLOCK 단위의 개선 단계에 적용될 수 있다. 다만, 이에 한정되지 아니하며, 전술한 CU 단위 개선 단계에서도 동일/유사하게 적용될 수 있다.
디코더는, 소정의 참조 영역에 속한 샘플의 변화도(gradient)를 고려하여 움직임 보상을 개선할 수 있으며, 이하 GMC 방법이라 한다.
디코더는, GMC 방법을 위한 소정의 참조 영역을 결정할 수 있다(. 상기 참조 영역은, 현재 블록의 참조 블록 또는 상기 참조 블록의 인접 영역 중 적어도 하나를 포함하는 영역으로 결정될 수 있다. 참조 영역은, L0 방향과 L1 방향에 대해서 각각 결정될 수 있다. 인접 영역은, 참조 블록의 경계(boundary)를 기준으로 K개의 샘플 라인만큼 확장된 영역을 의미할 수 있다. 여기서, K은 1, 2, 3 또는 그 이상의 정수일 수 있다.
인접 영역은, 참조 블록의 좌측, 상단, 우측, 하단, 좌상단, 좌하단, 우상단 또는 우하단 중 적어도 하나의 방향에 위치할 수 있다. 이때, 현재 블록이 WxH인 경우, 참조 영역은 (W+2K)x(H+2K)으로 표현될 수 있다. 다만, 개선 과정의 복잡도를 줄이기 위해, 인접 영역은 전술한 방향 중 일부 방향에만 위치할 수도 있다. 예를 들어, 참조 블록의 좌측 및 상단에 인접한 영역으로 제한될 수도 있고, 참조 블록의 우측 및 하단에 인접한 영역으로 제한될 수도 있다.
샘플 라인의 개수(K)는, 디코더에 기-정의된 고정된 값일 수도 있고, 블록 속성을 고려하여 가변적으로 결정될 수도 있다. 여기서, 블록 속성은, 블록의 크기/형태, 블록 위치, 인터 예측 모드, 성분 타입 등을 의미할 수 있다. 상기 블록 위치는, 참조 블록이 픽쳐 또는 소정의 조각 영역의 경계에 접하는지 여부를 의미할 수 있다. 상기 조각 영역은, 타일, 코딩 트리 블록 열/행, 또는 코딩 트리 블록을 의미할 수 있다. 예를 들어, 블록 속성에 따라, 0개, 1개 또는 2개의 샘플 라인 중 어느 하나가 선택적으로 이용될 수 있다.
디코더는, 상기 참조 영역에 속한 샘플의 변화도(gradient)를 산출할 수 있다. 현재 샘플의 변화도는, 현재 샘플에 인접한 복수의 이웃 샘플 간의 차이로 산출될 수 있다. 상기 복수의 이웃 샘플은, 현재 샘플과 동일한 수평 라인 및/또는 수직 라인에 위치할 수 있다. 또는, 복수의 이웃 샘플은, 현재 샘플과 동일한 대각선 라인에 위치할 수도 있다. 또는, 복수의 이웃 샘플 중 어느 하나는 다른 하나와 상이한 라인에 위치할 수도 있다. 상기 복수의 이웃 샘플의 개수는, 2개, 3개, 4개 또는 그 이상일 수 있다.
상기 변화도는, L0 참조 영역 또는 L1 참조 영역 중 적어도 하나에 대해서 산출될 수 있다. 이때, L0/L1 참조 영역에 대한 변화도는, 수평 방향(H) 또는 수직 방향(V) 중 적어도 하나에 대해서 산출될 수 있다.
예를 들어, L0 참조 영역에 대한 수평 방향의 변화도(gradientHL0)는, 현재 샘플에 좌측 및 우측으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출될 수 있다. L0 참조 영역에 대한 수직 방향의 변화도(gradientVL0)는, 현재 샘플에 상단 및 하단으로 인접한 2개의 이웃 샘플 간의 차이에 기초하여 산출될 수 있다. L1 참조 영역에 대한 수평/수직 방향의 변화도(gradientHL1, gradientVL1)는, 전술한 방식과 동일한 방식으로 산출될 수 있다.
전술한 방법을 통해, 참조 영역 내의 샘플에 대해서 변화도를 각각 산출할 수 있다. 다만, 상기 참조 영역의 경계에 위치한 샘플(이하, 경계 샘플이라 함)의 변화도는, 해당 경계 샘플에 인접한 이웃 샘플의 변화도를 공유할 수 있다.
예를 들어, 참조 영역의 상단 경계 샘플의 변화도는, 상단 경계 샘플 아래로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 하단 경계 샘플의 변화도는, 하단 경계 샘플 위로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 좌측 경계 샘플의 변화도는, 좌측 경계 샘플 왼쪽으로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 우측 경계 샘플의 변화도는, 우측 경계 샘플 오른쪽으로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 코너 경계 샘플은, 코너 경계 샘플에 대각선 방향으로 인접한 이웃 샘플의 변화도로 설정될 수 있다. 참조 영역의 각 코너에 위치한 2x2 영역의 샘플들은 동일한 변화도를 공유할 수 있다.
디코더는, GMC 방법을 위한 하나 또는 그 이상의 파라미터를 결정할 수 있다. 상기 파라미터는, L0/L1 참조 영역의 샘플값 또는 샘플의 변화도 중 적어도 하나에 기초하여 유도될 수 있다. 구체적으로, 제1 파라미터(diff)는, L0 참조 영역과 L1 참조 영역 간의 샘플값 차이에 기초하여 유도될 수 있다. 제2 파라미터(tempH)는, 전술한 gradientHL0 또는 gradientHL1 중 적어도 하나에 기초하여 유도되고, 제3 파라미터(tempV)는, 전술한 gradientVL0 또는 gradientVL1 중 적어도 하나에 기초하여 유도될 수 있다. 예를 들어, 상기 파라미터는 다음 수학식 5와 같이 유도될 수 있다.
[수학식 5]
diff[x][y]=(predSamplesL0[hx][vy]>>shift2)(predSamplesL1[hx][vy]>>shift2)
tempH[x][y]=(gradientHL0[x][y]+gradientHL1[x][y])>>shift3
tempV[x][y]=(gradientVL0[x][y]+gradientVL1[x][y])>>shift3
수학식 5에서, (x,y) 위치의 샘플에 대한 제1 파라미터(diff)는, L0/L1 참조 영역 내의 (hx,vy) 위치에 대응하는 샘플에 기초하여 유도되며, 여기서 hx,vy는 다음 수학식 6과 같이 결정될 수 있다. 수학식 6에서, nCbW와 nCbH는 현재 블록(또는 참조 블록)의 너비와 높이를 각각 의미한다.
[수학식 6]
hx = Clip3( 1, nCbW, x )
vy = Clip3( 1, nCbH, y )
디코더는, 앞서 결정된 변화도 또는 파라미터 중 적어도 하나에 기초하여, 움직임 보상 개선을 위한 보상값을 유도할 수 있다.
구체적으로, 상기 보상값은, 움직임 오프셋과 상기 변화도에 기초하여 유도될 수 있다. 상기 움직임 오프셋은, 수평 방향의 움직임 오프셋(Vx) 또는 수직 방향의 움직임 오프셋(Vy) 중 적어도 하나로 정의될 수 있다. 여기서, 상기 변화도는, gradientHL0, gradientHL1, gradientVL0, 또는 gradientVL1 중 적어도 하나를 포함할 수 있다.
예를 들어, 보상값(mcOffset)은 다음 수학식 7과 같이 유도될 수 있다.
[수학식 7]
mcOffset = Round( ( Vx * ( gradientHL1[ x + 1 ][ y + 1 ] gradientHL0[ x + 1 ][ y + 1 ] ) ) >> 1 ) + Round( ( Vy * (gradientVL1[ x + 1 ][ y + 1 ] gradientVL0[ x + 1 ][ y + 1 ] ) ) >> 1 )
수학식 7에서, Vx는 수평 방향의 움직임 오프셋을 의미할 수 있다. 이는, 전술한 제1 파라미터(diff) 또는 제2 파라미터(tempH) 중 적어도 하나에 기초하여 결정될 수 있다. Vy는 수직 방향의 움직임 오프셋을 의미할 수 있다. 이는, 수평 방향의 움직임 오프셋(Vx), 제1 파라미터(diff), 제2 파라미터(tempH) 또는 제3 파라미터(tempW) 중 적어도 하나에 기초하여 유도될 수 있다.
디코더는, 현재 블록의 참조 블록 및 상기 보상값(mcOffset)을 이용하여 현재 블록의 예측 샘플을 생성할 수 있다. 여기서, 참조 블록은, L0 참조 블록 또는 L1 참조 블록 중 적어도 하나를 포함할 수 있다.
예를 들어, 디코더는, L0 참조 블록의 샘플과 L1 참조 블록의 샘플 간의 가중 평균값에 상기 보상값을 가산함으로써, 상기 현재 블록의 예측 샘플을 생성할 수 있다.
전술한 GMC 방법은, 소정의 부호화 파라미터에 기초하여 선택적으로 이용될 수 있다. 여기서, 부호화 파라미터는, 블록 크기/형태, 참조 픽쳐의 위치, 인터 예측 모드, 예측 방향, 성분 타입, 참조 블록 간의 차이 등을 의미할 수 있다. 부호화 파라미터는, 인코더에서 부호화되어 시그날링되는 정보뿐만 아니라 디코더에서 유도되는 정보를 포함할 수 있다.
예를 들어, 현재 블록이 소정의 문턱크기보다 작거나 혹은 큰 경우에 한하여 적용될 수 있다. 상기 문턱크기는, GMC 방법이 허용되는 블록의 최소크기 또는 최대크기로 정의될 수 있다. 상기 문턱크기의 너비 또는 높이 중 적어도 하나는, 8, 16, 32 또는 64일 수 있다. 또는, 현재 블록의 형태가 정사각형인 경우에 한하여 적용될 수도 있다. 또는, L0/L1 참조 픽쳐 중 어느 하나는 현재 픽쳐보다 작은 POC를 가지고, 나머지 하나는 큰 POC를 가지는 경우에만 적용될 수도 있다. 또는, L0 참조 블록과 L1 참조 블록 간의 샘플값 차이가 소정의 문턱값보다 크거나 같은 경우에 한하여 적용될 수 있다. 여기서, 문턱값은, 비트 뎁스 또는 참조 블록(또는 현재 블록)의 너비와 높이 중 적어도 하나에 기초하여 결정될 수 있다.
GMC 방법은, 전술한 제한 조건 중 어느 하나에 기초하여 선택적으로 수행될 수도 있고, 전술한 제한 조건 중 적어도 2개의 조합에 기초하여 선택적으로 수행될 수도 있다.
도 9는 상기 SUB-BLOCK 단위 개선 탐색 단계(S501)에 적용되는, 다이아몬드 탐색 및 크로스 탐색 방법을 설명하기 위해 도시한 것이다. 특히, 도 9 (a)는 다이아몬드 탐색 패턴을 예를 들어 도시한 것이고, 도 9 (b)는 크로스 탐색 패턴을 예를 들어 도시한 것이다.
도 9 (a)를 참조하면, 복수의 단계 또는 라운드(Round)로 다이아몬드 탐색를 수행하게 되는 바, 예를 들어, 최초 시작 위치 (예를 들어, 최적 움직임 후보 위치)에 해당되는 픽셀(601)을 다이아몬드 방향으로 둘러싼 픽셀들로부터 탐색을 시작한다 (Round 1). 상기 Round 1 탐색 결과 가장 최소의 코스트 값을 가지는 픽셀(602)을 선정하고, 해당 픽셀(602)을 중심으로 동일한 다이아몬드 탐색을 수행한다 (Round 2). 또한, 동일하게 상기 Round 2 탐색 결과 가장 최소의 코스트를 가지는 픽셀(603)을 선정하고, 해당 픽셀(603)을 중심으로 동일한 다이아몬드 탐색을 수행한다 (Round 3). 상기 다이아몬드 탐색 라운드는 목표로 하는 코스트에 도달할 때까지 반복적으로 수행되거나, 기 정의된 횟수 (예, 3회 Round) 만큼 수행되는 것을 정의하는 것이 가능하다.
도 9 (b)는 크로스 탐색의 일 예를 도시한 것으로, 예를 들어, 상기 다이아몬드 탐색 라운드가 종료되면, 최종 선정된 픽셀(예, 603) 위치에서, 해당 픽셀(603)을 좌우 상하로 둘러싼 픽셀들(611, 612, 613, 614)에서 크로스 탐색을 수행한다. 상기 크로스 탐색 이후, 가장 최소의 코스트 값을 가지는 픽셀 위치가 최종 움직임 정보 위치로 결정된다.
도 10은 본 발명의 실시예에 따른, 복호화 방법의 또 다른 흐름도를 예를 들어 도시한 것이다. 특히, 디코더 측면의 움직임 정보를 유도하기 위하여 하나 이상의 움직임 정보 유도 기법을 사용하는 경우, 대상 움직임 정보 유도 기법에 따라 서로 다른 움직임 정보 보정 기법을 사용하는 것을 도시한 흐름도이다.
도 10을 참조하면, 디코더 측면에서 움직임 정보 유도 기법으로 템플릿 매칭(TM)과 양방향 매칭(BM)을 사용하는 경우에 대하여, 템플릿 매칭으로 움직임 유도를 수행하는 경우에는 CU 단위 움직임 유도 및 보정만을 수행한다. 반면, 양방향 매칭으로 움직임 유도를 수행하는 경우에는 움직임 탐색을 위한 초기화 과정은 CU 단위로 수행하되, SUB-BLOCK 단위 움직임 유도 및 보정을 수행한다.
따라서, 디코더 측면의 움직임 정보를 유도하기 위하여 하나 이상의 움직임 정보 유도 기법을 사용하는 경우, 대상 움직임 정보 유도 기법에 따라 서로 다른 움직임 정보 유도를 위한 블록 단위를 사용하는 것을 의미한다. 예를 들어, 템플릿 매칭을 사용하여 움직임 유도를 수행하는 경우에는 CU 단위 움직임 유도를 수행하고, 양방향 매칭을 사용하여 움직임 유도를 수행하는 경우에는 SUB-BLOCK 단위 움직임 유도를 수행하는 것이 가능하다.
구체적으로, 단계 S300 및 S310을 통해, 현재 대상 블록이 디코더 측면의 움직임 정보 유도 모드로 선택되고 템플릿 매칭 기법을 이용하여 움직임을 유도하는 모드로 선택된 경우(S310 'Yes' 가지), CU 단위 움직임 후보 리스트 생성 단계(S401), CU 단위 최적의 움직임 결정 단계(S402) 및 CU 단위 개선 탐색 단계(S403)를 포함한다.
반면, 단계 S300 및 S310을 통해, 현재 대상 블록이 디코더 측면의 움직임 유도 모드로 선택되고 양방향 매칭 기법을 이용하여 움직임을 유도하는 모드로 선택된 경우(S310 'No' 가지), CU 단위 움직임 후보 리스트 생성 단계(S401), CU 단위 최적의 움직임 결정 단계(S402), SUB-BLOCK 단위 움직임 후보 리스트 생성 단계(S421), SUB-BLOCK 단위 최적의 움직임 결정 단계(S422) 및 SUB-BLOCK 단위 개선 탐색 단계(S501)를 포함한다.
다른 대안으로, 도 11에 도시한 바와 같이, 단계 S300 및 S310을 통해, 현재 대상 블록이 디코더 측면의 움직임 정보 유도 모드로 선택되고 양방향 매칭 기법을 이용하여 움직임을 유도하는 모드로 선택된 경우(S310 'No' 가지), 전술한 CU 단위 움직임 후보 리스트 생성 단계(S401) 및 CU 단위 최적의 움직임 결정 단계(S402)를 생략하고, SUB-BLOCK 단위 움직임 후보 리스트 생성 단계(S421), SUB-BLOCK 단위 최적의 움직임 결정 단계(S422) 및 SUB-BLOCK 단위 개선 탐색 단계(S501)만을 포함하는 것도 가능하다.
도 12는 블록 매칭을 수행하는 대상 블록과 해당 블록 내의 대상 화소들을 도시한 것이다. 도 12는 블록 매칭을 수행하는 대상 블록과 해당 블록 내의 대상 화소들을 도시한 것이다. 특히, 도 12 (a)는 일반적인 블록 매칭에서 블록(700) 내의 모든 화소들을 이용하여 대상 블록과 참조 블록의 오차를 계산하는 방식을 도시한 것이고, 반면, 도 12 (b)는 블록 매칭에 소요되는 연산 복잡도를 감소시키기 위하여 블록(710) 내의 일부 화소들(예, 711 or 712)만을 이용하여 대상 블록과 참조 블록의 오차를 계산하는 방식의 일 예를 도시한 것이다.
예를 들어, 본 발명의 일 실시예에 따르면, 710 블록을 서브 샘플링하여, 짝수행(EVEN ROWS)(711)에 속한 화소들과 홀수행(ODD ROWS)(712)에 속한 화소들로 분류하여, 블록의 매칭 코스트, 블록간의 오차 등을 계산함에 있어 짝수행에 속한 화소들 혹은 홀수행에 속한 화소들 만을 이용하여 계산하므로써 연산 복잡도를 감소 시킬 수 있다.
이때, 상기 연산 복잡도 감소를 위해 매칭에 사용되는 대상 화소들을 분류하는 기준은 짝수행과 홀수행에 국한되지 않으며, 2의 배수인 정수 행 단위로 대상 행을 결정하는 방법 또는 현재 블록에 인접한 화소들 만으로 결정하는 방법을 활용할 수 있다. 이하, 상기 블록내 서브-샘플링된 화소들을 이용하여, 전술한 템플릿 매칭(TM) 및 양방향 매칭(BM)에 적용한 경우를 설명한다.
도 13은 디코더 측면에서 움직임 정보를 유도하는 기술 중 템플릿 매칭을 이용한 움직임 정보 유도 기술에 전술한 도 12의 서브-샘플링된 화소들을 이용한 매칭을 적용한 개념을 도시한 것이다.
전술한 바와 같이, 템플릿 매칭을 이용한 움직임 정보 유도에서는 현재 부호화 및 복호화 대상 픽쳐(300)내의 현재 대상 블록(310)과 공간적으로 인접한 다수개의 화소 집합과 참조 픽쳐들(301, 302)내에 위치하는 동일한 형태의 화소 집합간의 화소 유사성에 기반하여 움직임 정보를 유도하는 기술이다. 현재 대상 블록(300)과 공간적으로 인접한 다수개의 화소 집합과 참조 픽쳐들(301, 302)내에 위치하는 동일한 형태의 화소 집합을 템플릿 (template)이라고 지칭한다. 이때, 상기 템플릿을 구성함에 있어, 전술한 도 12에서 도시한 바와 같이, 특정한 템플릿 범위에 포함되는 모든 화소들을 사용하지 않고, 일부 서브-샘플링된 화소들을 사용하여 연산 복잡도를 감소 시킬 수 있다.
구체적으로, 현재 대상 블록(300)에 대하여 하나 이상의 템플릿을 구성할 수 있으며, 도 13에서 도시한 실시예와 같이, 상단에 인접한 템플릿 (800)과 좌측에 인접한 템플릿(810)을 사용할 수 있으며, 각 템플릿은 참조 픽쳐에서 동일한 형태와 크기의 템플릿으로 구성될 수 있다. 단, 도 3에서 도시한 템플릿(320, 330)과 같이 템플릿 내의 모든 화소들을 이용하여 매칭을 수행하는 것이 아니라, 상기 템플릿(800, 810)에 포함된 화소들 중 일부의 특정한 화소들만을 템플릿 매칭에 사용하는 것을 특징으로 한다.
상기 참조 픽쳐에서 구성되는 템플릿은 현재 대상 블록(300)의 상단에 인접한 템플릿(800)에 대응하는 상단 템플릿(801, 802)과 현재 대상 블록(300)의 좌측에 인접한 템플릿(810)에 대응하는 좌측 템플릿(811, 812)으로 구성될 수 있다. 이때, 상단과 좌측 인접한 화소들이 구성 가능한지에 대한 여부를 검토하여 상단 및 좌측 인접 화소들을 이용하여 템플릿 구성이 가능한 경우에만 템플릿을 구성하며, 미리 정의된 하나 이상의 템플릿 중 구성 불가능한 템플릿을 제외한 일부 템플릿을 이용하여 템플릿 매칭을 수행할 수 있다. 상기 템플릿이 구성 가능 하지 않은 경우는 현재 대상 블록이 픽쳐, 타일, 및 슬라이스 경계에 위치하는 경우에 해당될 수 있다.
도 14는 디코더 측면에서 움직임 정보를 유도하는 기술 중 양방향(bilateral) 매칭을 이용한 움직임 정보 유도 기술에 전술한 도 12의 서브-샘플링된 화소들을 이용한 매칭을 적용한 개념을 도시한 것이다.
전술한 바와 같이, 양방향 매칭을 이용한 움직임 정보 유도에서는 현재 부호화 및 복호화 대상 픽쳐(300)내의 현재 대상 블록(310)을 중심으로 양방향에 위치하는 참조 픽쳐들(301, 302) 내에 위치하는 서로 다른 두 참조 블록 (901, 902)의 화소 유사성에 기반하여 움직임 정보를 유도하는 기술이다. 이때, 상기 현재 대상 블록(310)을 중심으로 양방향에 위치하는 참조 픽쳐들(301, 302) 내에 위치하는 서로 다른 두 참조 블록들 (901, 902)은 하나의 움직임 궤도 (400, motion trajectory)를 이용하여 선정한다.
또한, 상기 서로 다른 두 참조 블록(901, 902)를 이용하여 블록 매칭을 수행하는 과정에서 블록 내에 포함된 모든 화소를 이용하지 아니하고, 블록(901, 902) 내의 일부 서브-샘플링된 화소들 만을 사용하여 연산 복잡도를 감소 시킬 수 있다.
구체적으로, 본 발명의 일 실시예에 따라 현재 대상 블록(310)을 중심으로 두개의 서로 다른 참조 픽쳐들(301, 302)을 하나의 움직임 궤도 (400, motion trajectory)를 이용하여 연결할 수 있으며, 상기 연결된 위치에 현재 대상 블록(310)과 대응하는 동일한 크기와 형태의 참조 블록들(901,902)을 구성할 수 있다. 단, 도 4에서 도시한 참조 블록(201, 202) 같이 참조 블록 내의 모든 화소들을 이용하여 매칭을 수행하는 것이 아니라, 참조 블록(901, 902)에 포함된 화소들 중 일부의 특정한 화소들만을 양방향 매칭에 사용하는 것을 특징으로 한다.
즉, 본 발명의 일 실시예에 따른 양방향 매칭 방법은 상기 현재 대상 블록(310)과 대응하는 동일한 크기와 형태의 참조 블록들(901, 902)을 구성하고, 상기 두 참조 블록(901, 902) 내의 일부 화소들 간의 오차를 최소화하는 하나의 움직임 궤도 (400, motion trajectory)를 획득하는 과정을 포함한다.
도 15는 디코더 측면에서 움직임 정보를 유도하기 위하여 초기 탐색 위치 선정을 위한 움직임 후보 리스트를 구성하는 방법을 설명하기 위해 도시한 것이다.
도 15 (a)는 전술한 CU 단위 움직임 후보 리스트 생성 단계(S401)에서 CU 단위 움직임 후보 리스트(1000)의 구성을 나타낸 일 실시예이다. 본 발명의 일 실시예에 따라 도 15 (a)를 참조하면, 현재 CU가 AMVP 모드인 경우, AMVP 후보 움직임 정보(1501)를 CU 단위 움직임 후보 리스트(1000)에 추가할 수 있으며, 현재 대상 블록의 병합 후보들(merge candidates) 중 서브-블록 단위 움직임 후보를 제외한 CU 단위 움직임 후보들(1502)을 CU 단위 움직임 후보 리스트(1000)에 추가할 수 있다. 추가적으로 현재 대상 서브-블록의 단방향 예측 후보를 보간하여 생성한 움직임 후보(1503)를 최대 네 개까지 추가할 수 있으며, 공간적으로 인접한 좌측과 상단 움직임 후보(1504)를 추가하여 CU 단위 움직임 후보 리스트(1000)를 구성할 수 있다.
도 15 (b)는 전술한 SUB-BLOCK 단위 움직임 후보 리스트 생성 단계(S421)에서 SUB-BLOCK 단위 움직임 후보 리스트(1010)의 구성을 나타낸 일 실시예이다. 본 발명의 일 실시예에 따라 도 15 (b)를 참조하면, 현재 SUB-BLOCK이 속한 대상 CU의 CU 단위 최적의 움직임 후보(1511), 현재 SUB-BLOCK의 공간적으로 인접한 SUB-BLOCK 중 좌측과 상단에 위치한 SUB-BLOCK의 움직임 후보(1512), 현재 SUB-BLOCK의 공간적으로 인접한 SUB-BLOCK 중 좌상단과 우상단에 위치한 SUB-BLOCK의 움직임 후보(1513), 참조 픽쳐의 co-located에 위치한 SUB-BLOCK의 스케일된 움직임 후보(1514) 및 ATMVP (1515)와 STMVP (1516) 중 현재 SUB-BLOCK에 대응하는 움직임 후보을 추가하여 SUB-BLOCK 단위 움직임 후보 리스트(1010)를 구성할 수 있다.
단, 현재 대상 서브-블록의 병렬처리를 위하여 공간적으로 인접한 좌측, 상단, 좌상단, 및 우상단의 움직임을 참조함에 있어, 후술하는 도 16의 설명과 같이, 병렬처리를 위한 특정한 영역(1120)을 설정하고 해당 영역의 외에 위치한 서브-블록들(1130)의 움직임을 참조하도록 변경할 수 있다.
혹은, 현재 대상 서브-블록의 병렬처리를 위하여 공간적으로 인접한 움직임들(1020)을 제외하고, SUB-BLOCK 단위 움직임 후보 리스트를 구성할 수 있다.
도 16은 본 발명에 따른, 서브 블록의 병렬 처리 개념을 도시한 것이다. 특히, 서브-블록의 공간적으로 인접한 움직임을 참조함에 있어, 병렬 처리를 고려하여 특정한 영역 외에 위치한 움직임을 참조하는 개념을 도시한 것이다.
하나의 부호화 및 복호화 대상 블록을 다수개의 더 작은 블록으로 분할한 단위를 서브-블록이라 지칭하며, 현재 부호화 및 복호화에서 사용하는 서브-블록의 크기 정보를 미리 정의하거나, 상위 레벨 신택스로 전송할 수 있다.
기존의 서브-블록의 공간적으로 인접한 움직임을 참조하는 방법을 이용하여 현재 대상 서브-블록(1100)의 공간적으로 인접한 움직임을 참조함에 있어, 좌측 서브-블록(1110), 상단 서브-블록(1112), 좌상단 서브-블록(1111), 및 우상단 서브-블록(1113)의 움직임 중 하나 이상의 움직임을 참조한다.
하지만, 기존의 방법을 이용하여 상기 좌측 서브-블록(1110), 상단 서브-블록(1112), 좌상단 서브-블록(1111), 및 우상단 서브-블록(1113)의 움직임을 참조하는 경우, 해당 서브-블록들의 움직임 결정 과정이 완료된 이후 현재 대상 서브-블록(1100)의 움직임 결정 과정이 수행되어야 하므로 서브-블록간의 의존성(redundancy)이 발생한다. 상기 서브-블록간의 의존성 발생 문제점을 해결하기 위하여, 본 발명에서는 서브-블록의 병렬처리를 고려하여 병렬처리를 위한 특정한 영역(1120)을 설정하고, 해당 영역 외에 위치한 서브-블록들(1130)의 움직임을 참조하는 것을 특징으로 한다.
상기 병렬처리를 위한 특정한 영역(1120)은 하나의 CU 이거나, 다수개의 서브-블록의 갯수로 정의되는 영역, 혹은 일정한 크기를 가지는 영역일 수 있으며, 해당 정보는 미리 정의되거나 혹은 상위 레벨 신택스로 전송할 수 있다.
또한, 도 16의 서브 블록 병렬 처리 개념은, 전술한 디코더 측면에서 움직임 정보를 유도하는 경우, 서브 블록의 움직임 후보를 결정시에 적용할 수 있다. 아울러, 디코더 측면에서 움직임 정보를 유도하는 경우가 아닌 경우에도 동일하게 적용가능하며, 특히, 서브 블록 단위 움직임 정보 생성 과정 및 서브 블록 단위 움직임 참조 과정에서 동일하게 적용할 수 있다.
도 17은 도 16의 병렬처리에 적용되는 수정된 움직임 후보 리스트를 예를 들어 도시한 것이다. 전술한 도 15의 움직임 후보 리스트와 비교시, CU 단위 움직임 후보 리스트(1000a)는 전술한 도 15의 CU 단위 움직임 후보 리스트(1000) 와 동일하다. 단, 서브 블록 단위로 병렬 처리가 수행됨에 따라, 서브 블록 단위 움직임 후보 리스트(1010a)는 전술한 도 15의 서브 블록 단위 움직임 후보 리스트(1010)와 비교시, 현재 SUB-BLOCK의 공간적으로 인접한 SUB-BLOCK 중 좌측과 상단에 위치한 SUB-BLOCK의 움직임 후보(1512), 및 현재 SUB-BLOCK의 공간적으로 인접한 SUB-BLOCK 중 좌상단과 우상단에 위치한 SUB-BLOCK의 움직임 후보(1513)를 제외하여 구성한다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(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)를 포함한다.
100 : 부호화기
200 : 복호화기

Claims (8)

  1. 현재 블록의 움직임 정보의 개선을 위한 탐색 영역을 결정하는 단계;
    상기 탐색 영역에 대한 SAD 리스트를 생성하는 단계; 여기서, 상기 SAD 리스트는 복수의 SAD 후보를 포함함,
    상기 SAD 리스트의 SAD 후보에 기초하여, 상기 현재 블록의 델타 움직임 정보를 유도하는 단계; 및
    상기 현재 블록의 움직임 정보와 상기 델타 움직임 정보를 이용하여, 상기 현재 블록의 움직임 정보를 갱신하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 탐색 영역은, 참조 블록 또는 상기 참조 블록의 인접 영역 중 적어도 하나를 포함하는 영역으로 결정되고,
    상기 인접 영역은, 상기 참조 블록의 경계를 기준으로 N개의 샘플 라인만큼 확장된 영역인, 영상 복호화 방법.
  3. 제1항에 있어서,
    상기 SAD 후보는, L0 블록과 L1 블록 간의 SAD 값으로 결정되고,
    상기 L0 블록은, 상기 현재 블록의 L0 참조 블록의 위치 및 소정의 오프셋에 기초하여 결정되고, 상기 L1 블록은, 상기 현재 블록의 L1 참조 블록의 위치 및 상기 소정의 오프셋에 기초하여 결정되는, 영상 복호화 방법.
  4. 제3항에 있어서,
    상기 오프셋은, 넌-방향성 오프셋 또는 방향성 오프셋 중 적어도 하나를 포함하고,
    상기 방향성 오프셋은, 좌측, 우측, 상단, 하단, 좌상단, 우상단, 좌하단 또는 우하단 중 적어도 하나의 방향에 대한 오프셋을 포함하는, 영상 복호화 방법.
  5. 제1항에 있어서, 상기 델타 움직임 정보를 유도하는 단계는,
    기준 SAD 후보와 소정의 문턱값 간의 비교 결과에 기초하여 수행되고,
    상기 기준 SAD 후보는, 넌-방향성 오프셋에 대응하는 SAD 후보를 의미하는 영상 복호화 방법.
  6. 제5항에 있어서,
    상기 기준 SAD 후보가 상기 문턱값보다 크거나 같은 경우, 상기 델타 움직임 정보를 유도하는 단계는,
    상기 SAD 리스트에 속한 SAD 후보 중에서 최소값을 가진 SAD 후보를 식별하는 단계; 및
    상기 식별된 SAD 후보에 대응하는 오프셋을 기반으로, 델타 움직임 정보를 결정하는 단계를 포함하는, 영상 복호화 방법.
  7. 제5항에 있어서,
    상기 기준 SAD 후보가 상기 문턱값보다 작은 경우, 상기 델타 움직임 정보를 유도하는 단계는,
    상기 SAD 리스트에 속한 SAD 후보 전부 또는 일부를 이용하여 소정의 파리미터를 산출하는 단계; 및
    상기 산출된 파라미터를 기반으로, 상기 델타 움직임 정보를 결정하는 단계를 포함하는, 영상 복호화 방법.
  8. 제7항에 있어서, 상기 현재 블록의 움직임 정보의 갱신은, 블록 크기, 현재 픽쳐와 참조 픽쳐 간의 거리, 인터 예측 모드, 예측 방향, 움직임 정보의 단위 또는 해상도 중 적어도 하나를 고려하여 제한적으로 수행되는, 영상 복호화 방법.
KR1020190031329A 2018-03-19 2019-03-19 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체 KR20190110065A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180031343 2018-03-19
KR1020180031343 2018-03-19

Publications (1)

Publication Number Publication Date
KR20190110065A true KR20190110065A (ko) 2019-09-27

Family

ID=67987951

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190031329A KR20190110065A (ko) 2018-03-19 2019-03-19 영상 복호화 방법/장치, 영상 부호화 방법/장치 및 비트스트림을 저장한 기록 매체

Country Status (4)

Country Link
US (3) US11356692B2 (ko)
KR (1) KR20190110065A (ko)
CN (5) CN117544787A (ko)
WO (1) WO2019182329A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023091775A1 (en) * 2021-11-22 2023-05-25 Beijing Dajia Internet Information Technology Co., Ltd. Decoder side motion information derivation

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190114912A (ko) * 2018-03-29 2019-10-10 세종대학교산학협력단 영상 부호화/복호화 방법 및 장치
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
CN113596475A (zh) * 2021-06-24 2021-11-02 浙江大华技术股份有限公司 图像/视频编码方法、装置、系统及计算机可读存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100446235B1 (ko) * 2001-05-07 2004-08-30 엘지전자 주식회사 다중 후보를 이용한 움직임 벡터 병합 탐색 방법
US8913660B2 (en) 2005-04-14 2014-12-16 Fastvdo, Llc Device and method for fast block-matching motion estimation in video encoders
CN101031088A (zh) * 2006-02-28 2007-09-05 展讯通信(上海)有限公司 一种用于视频编码器实现的快速十字运动估计方法
JP4843482B2 (ja) * 2006-12-27 2011-12-21 株式会社東芝 情報処理装置およびプログラム
JP4882956B2 (ja) * 2007-10-22 2012-02-22 ソニー株式会社 画像処理装置および画像処理方法
JP4506875B2 (ja) * 2008-05-19 2010-07-21 ソニー株式会社 画像処理装置および画像処理方法
KR101377527B1 (ko) * 2008-10-14 2014-03-25 에스케이 텔레콤주식회사 복수 개의 참조 픽처의 움직임 벡터 부호화/복호화 방법 및장치와 그를 이용한 영상 부호화/복호화 장치 및 방법
JP4760923B2 (ja) * 2009-02-03 2011-08-31 ソニー株式会社 画像処理装置、画像処理方法および撮像装置
US8494056B2 (en) * 2009-05-21 2013-07-23 Ecole De Technologie Superieure Method and system for efficient video transcoding
US8446524B2 (en) * 2010-06-21 2013-05-21 Realtek Semiconductor Corp. Apparatus and method for frame rate conversion
SI3554079T1 (sl) * 2011-01-07 2023-01-31 Lg Electronics Inc. Postopek za kodiranje video informacij, postopek za dekodiranje video informacij in dekodirna naprava za dekodiranje video informacij
US8755437B2 (en) * 2011-03-17 2014-06-17 Mediatek Inc. Method and apparatus for derivation of spatial motion vector candidate and motion vector prediction candidate
US20130329007A1 (en) * 2012-06-06 2013-12-12 Qualcomm Incorporated Redundancy removal for advanced motion vector prediction (amvp) in three-dimensional (3d) video coding
CN106537918B (zh) 2014-08-12 2019-09-20 英特尔公司 用于视频编码的运动估计的系统和方法
US10958927B2 (en) 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
US10511835B2 (en) 2015-09-02 2019-12-17 Mediatek Inc. Method and apparatus of decoder side motion derivation for video coding
KR20180048736A (ko) * 2015-09-24 2018-05-10 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
KR20170058838A (ko) * 2015-11-19 2017-05-29 한국전자통신연구원 화면간 예측 향상을 위한 부호화/복호화 방법 및 장치
KR20190114912A (ko) * 2018-03-29 2019-10-10 세종대학교산학협력단 영상 부호화/복호화 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023091775A1 (en) * 2021-11-22 2023-05-25 Beijing Dajia Internet Information Technology Co., Ltd. Decoder side motion information derivation

Also Published As

Publication number Publication date
US20230345034A1 (en) 2023-10-26
US20220264140A1 (en) 2022-08-18
CN117640962A (zh) 2024-03-01
WO2019182329A1 (ko) 2019-09-26
US11729410B2 (en) 2023-08-15
CN111886869A (zh) 2020-11-03
CN117336506A (zh) 2024-01-02
US20210006815A1 (en) 2021-01-07
CN117640961A (zh) 2024-03-01
CN117544787A (zh) 2024-02-09
US11356692B2 (en) 2022-06-07
CN111886869B (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
CN112369034B (zh) 使用合并候选的视频编码方法和装置
US11490077B2 (en) Image encoding/decoding method and apparatus involving merge candidate list and triangular shape partitions
US11729410B2 (en) Image decoding method/apparatus, image encoding method/apparatus, and recording medium storing bitstream
CN111937399B (zh) 基于仿射模型的图像编码/解码方法和装置
CN117376558A (zh) 用于将图像编码/解码的方法和存储比特流的记录介质
CN112136325B (zh) 图像解码方法/装置、图像编码方法/装置以及存储比特流的记录介质
US20230379494A1 (en) Method and apparatus for encoding/decoding image
JP2024038412A (ja) ビデオ信号符号化/復号方法及びその機器
KR20210008105A (ko) 영상 부호화/복호화 방법 및 장치
KR20160093565A (ko) 비디오 신호 처리 방법 및 장치
US20230283795A1 (en) Video coding method and device using motion compensation of decoder side
KR20190142750A (ko) 영상 부호화/복호화 방법 및 장치
KR20240059507A (ko) 처리율 향상을 위한 영상 부호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal