KR20130119478A - 시간적 블록 병합 모드 - Google Patents

시간적 블록 병합 모드 Download PDF

Info

Publication number
KR20130119478A
KR20130119478A KR1020137021353A KR20137021353A KR20130119478A KR 20130119478 A KR20130119478 A KR 20130119478A KR 1020137021353 A KR1020137021353 A KR 1020137021353A KR 20137021353 A KR20137021353 A KR 20137021353A KR 20130119478 A KR20130119478 A KR 20130119478A
Authority
KR
South Korea
Prior art keywords
block
current block
motion parameters
merge mode
blocks
Prior art date
Application number
KR1020137021353A
Other languages
English (en)
Other versions
KR101538710B1 (ko
Inventor
지안 로우
리민 왕
유에 유
Original Assignee
모토로라 모빌리티 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모토로라 모빌리티 엘엘씨 filed Critical 모토로라 모빌리티 엘엘씨
Publication of KR20130119478A publication Critical patent/KR20130119478A/ko
Application granted granted Critical
Publication of KR101538710B1 publication Critical patent/KR101538710B1/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
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Abstract

일 실시예에서, 방법은 비디오 콘텐츠의 현재 블록에 대한 시간적으로 위치된 블록의 움직임 파라미터들을 결정하는 단계를 포함한다. 시간적으로 위치된 블록은 현재 블록과 상이한 화상에 위치된다. 시간적으로 위치된 블록은 병합 모드 후보 리스트에서 식별된다. 병합 모드 후보 리스트는 움직임 파라미터들이 현재 블록에 사용될 후보들인 후보 블록들을 포함한다. 그 다음, 방법은 현재 블록을 디코딩할 시에 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 표시하는 정보를 디코더에 시그널링한다. 시간적으로 위치된 블록이 식별되면, 방법은 비디오 콘텐츠의 현재 블록을 디코딩할 시에 시간적으로 위치된 블록의 움직임 파라미터들을 사용한다.

Description

시간적 블록 병합 모드{TEMPORAL BLOCK MERGE MODE}
관련 출원들에 대한 교차 참조
본 출원은 2011년 1월 14일자로 출원된 "Temporal Block Merge Mode"의 미국 가출원 제61/433,010호에 대한 우선권을 주장하며, 그의 내용은 본 명세서에서 그 전체가 참조문헌으로 포함되어 있다.
본 출원은 동시에 출원된 "Joint Spatial and Temporal Merge Mode for HEVC"의 미국 출원 제13/351,906호 및 "Spatial Block Merge Mode"의 미국 출원 제13/351,782호에 관한 것이며, 그의 내용은 본 명세서에서 그 전체가 참조문헌으로 포함되어 있다.
특정 실시예들은 일반적으로 비디오 압축에 관한 것이다.
비디오 시퀀스들에서, 큰 정도의 시간적 중복성이 존재할 수 있다. 즉, 매우 짧은 기간 내에, 화상 내에서 전경 객체(들)의 형상(들) 및 배경은 매우 많이 변하지 않을 수 있고, 전경 객체들 내의 픽셀들은 유사한 본질을 따라 이동할 수 있다. 객체 기반 비디오 코딩에서, 상이한 화상 부분들은 비디오 객체들로서 별도로 코딩 및 송신될 수 있다. 동일한 객체 내의 상이한 픽셀들의 움직임 정보는 일부 경우들에서 동일해야 한다. 그러나, 임의의 객체 형상을 설명하기 위해 많은 비트들이 여전히 사용되어야 하며, 이는 코딩 효율을 감소시킨다. 따라서, 객체 움직임의 효율적인 표현이 과제이다.
HEVC(High efficiency video coding)는 블록 기반 하이브리드 공간적 및 시간적 예측 코딩 방식이다. HEVC는 입력 화상을 64x64까지의 크기일 수 있었던 LCU들(largest coding units)로 지칭되는 정사각형 블록들로 분할한다. 이론적으로, 더 큰 코딩 단위는 바로 인접한 픽셀들 간의 상관을 이용하는 것보다 선호된다. 각각의 LCU는 CU들(coding units)로 칭해지는 더 작은 정사각형 블록들로 분할될 수 있다. 도 1a는 CU들의 LCU 분할의 예를 도시한다. LCU(100)는 우선 4개의 CU들(102)로 분할된다. 각각의 CU(102)는 CU(102)의 크기의 1/4인 4개의 더 작은 CU들(102)로 더 분할될 수도 있다. 분할 프로세스는 CU가 분할될 수 있는 횟수의 제한들이 도입될 수 있는 것과 같이, 특정 기준에 기초하여 반복될 수 있다. 도시된 바와 같이, CU들(102-1, 102-3, 및 102-4)은 LCU(100)의 크기의 1/4이다. 게다가, CU(102-2)는 4개의 CU들(102-5, 102-6, 102-7, 및 102-8)로 분할되어 있다.
유연한 움직임 표현 및 더 높은 코딩 효율을 허용하기 위해, LCU(100)가 CU들(102)로 어떻게 분할되는지를 설명하는데 쿼드트리 데이터 표현이 사용된다. 도 1b는 도 1a에 도시된 LCU 분할의 쿼드트리(104)를 도시한다. 쿼드트리(104)의 각 노드는 노드가 4개의 서브노드들로 더 분할되면 "1"의 플래그를 할당받고 노드가 분할되지 않으면 "0"의 플래그를 할당받는다. 플래그는 분할 비트(예를 들어 1) 또는 정지 비트(예를 들어, 0)로 칭해지고 압축된 비트스트림으로 코딩된다.
LCU(100)가 4 CU들로 분할되기 때문에 상단 CU 레벨에서 노드(106-1)는 플래그 "1"을 포함한다. 중간 CU 레벨에서, 플래그들은 CU(102)가 4개의 CU들로 더 분할되는지를 표시한다. 이 경우에, 노드(106-3)는 CU(102-2)가 4개의 CU들(102-5-102-8)로 분할되었기 때문에 "1"의 플래그를 포함한다. 노드들(106-2, 106-4, 및 106-5)은 이들 CU들(102)이 분할되지 않기 때문에 "0"의 플래그를 포함한다. 노드들(106-6, 106-7, 106-8, 및 106-9)은 바닥 CU 레벨에 있고, 따라서 대응하는 CU들(102-5 - 102-8)이 분할되지 않기 때문에 "0" 또는 "1"의 어떤 플래그 비트도 이 노드들에 필요하지 않다. 분할 프로세스는 4x4 블록들까지 내내 계속할 수 있다. 도 1b에 도시된 쿼드트리(104)에 대한 쿼드트리 데이터 표현은 각 비트가 쿼드트리(104)의 노드(106)를 표현하는 "10100"의 이진 데이터에 의해 표현될 수 있다. 이진 데이터는 LCU 분할을 인코더 및 디코더에 표시하고, 이 이진 데이터는 오버헤드로서 코딩 및 송신될 필요가 있다.
각각의 CU(102)는 하나 이상의 PU들(prediction units)을 포함할 수 있다. 공간적 예측 또는 시간적 예측을 수행하기 위해 PU들이 사용될 수 있다. 도 2는 PU들(202)의 CU 분할의 예를 도시한다. 도시된 바와 같이, CU(102)는 4개의 PU들(202-1 - 202-4)로 분할되어 있다. 공간적 또는 시간적 예측 코딩이 각각의 PU(202)를 통해 수행될 수 있다. 인터모드에서, 각각의 PU에 대해 움직임 파라미터들이 코딩 및 송신된다. 구조는 움직임 정보, 특히 불규칙적으로 형상화된 객체들에 대한 많은 비트들을 필요로 할 수 있다.
코딩 효율을 개선하기 위해 공간적 병합 모드가 사용될 수 있다. 공간적 병합 모드는 "영역"을 형성하기 위해 현재 블록을 인접한 블록(들)과 병합할 수 있다. 영역 내의 모든 픽셀들은 동일한 움직임 파라미터들을 공유한다. 따라서, 영역의 각각의 개별 블록에 대한 움직임 파라미터들을 코딩 및 송신할 필요가 없다. 그 대신, 영역에 대해, 단지 하나의 움직임 파라미터 세트가 코딩 및 송신된다. 현재 블록은 좌측 또는 상단의 현재 블록과 인접하는 공간적으로 위치된 블록과 병합하도록 허용된다. 현재 블록이 이용가능한 인접한 블록과 병합되는지를 명시하기 위해 플래그(merge_flag)가 사용된다. 부가적으로, 좌측의 인접한 블록 또는 상단의 인접한 블록이 공간적 병합에 사용되어야 하는지를 표시하기 위해 플래그(merge_left_flag)가 사용된다. 공간적 병합 모드는 동일한 화상 내의 공간적으로 위치된 블록들과의 병합으로 제한된다.
일 실시예에서, 방법은 비디오 콘텐츠의 현재 블록에 대한 시간적으로 위치된 블록의 움직임 파라미터들을 결정하는 단계를 포함한다. 시간적으로 위치된 블록은 현재 블록과 상이한 화상에 위치된다. 시간적으로 위치된 블록은 병합 모드 후보 리스트에서 식별된다. 병합 모드 후보 리스트는 움직임 파라미터들이 현재 블록에 사용될 후보들인 후보 블록들을 포함한다. 그 다음, 방법은 현재 블록을 디코딩할 시에 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 표시하는 정보를 디코더에 시그널링한다.
일 실시예에서, 방법은 병합 모드 후보 리스트를 포함하는 시그널링을 수신하는 단계 - 병합 모드 후보 리스트는 움직임 파라미터들이 현재 블록에 사용될 후보들인 후보 블록들을 식별함 - ; 비디오 콘텐츠의 현재 블록을 디코딩하기 위해 어느 후보 블록이 병합 모드 후보 리스트에서 식별되는지를 판단하는 단계; 및 시간적으로 위치된 블록이 식별되면, 비디오 콘텐츠의 현재 블록을 디코딩할 시에 시간적으로 위치된 블록의 움직임 파라미터들을 사용하는 단계 - 시간적으로 위치된 블록은 현재 블록과 상이한 화상에 위치됨 - 를 포함한다.
일 실시예에서, 장치는 하나 이상의 컴퓨터 프로세서들, 및 하나 이상의 컴퓨터 프로세서들이, 비디오 콘텐츠의 현재 블록에 대한 시간적으로 위치된 블록의 움직임 파라미터들을 결정하고 - 시간적으로 위치된 블록은 현재 블록과 상이한 화상에 위치됨 -; 시간적으로 위치된 블록을 병합 모드 후보 리스트에서 식별하고 - 병합 모드 후보 리스트는 움직임 파라미터들이 현재 블록에 사용될 후보들인 후보 블록들을 포함함 -; 현재 블록을 디코딩할 시에 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 표시하는 정보를 디코더에 시그널링하도록 동작가능하도록 제어하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체를 포함한다.
일 실시예에서, 장치는 하나 이상의 컴퓨터 프로세서들, 및 하나 이상의 컴퓨터 프로세서들이, 병합 모드 후보 리스트를 포함하는 시그널링을 수신하고 - 병합 모드 후보 리스트는 움직임 파라미터들이 현재 블록에 사용될 후보들인 후보 블록들을 식별함 -; 비디오 콘텐츠의 현재 블록을 디코딩하기 위해 어느 후보 블록이 병합 모드 후보 리스트에서 식별되는지를 판단하고; 시간적으로 위치된 블록이 식별되면, 비디오 콘텐츠의 현재 블록을 디코딩할 시에 시간적으로 위치된 블록의 움직임 파라미터들을 사용하도록 - 시간적으로 위치된 블록은 현재 블록과 상이한 화상에 위치됨 - 동작가능하도록 제어하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체를 포함한다.
일 실시예는 비디오 콘텐츠의 현재 블록에 대한 병합 모드를 결정하는 단계 - 병합 모드는 후보 리스트로부터 선택되는 하나 이상의 블록들이고, 후보 리스트는 하나 이상의 공간적으로 위치된 인접한 블록 및 하나 이상의 시간적으로 위치된 인접한 블록들 중 적어도 하나를 포함함 - ; 및 현재 블록을 디코딩할 시에 적어도 하나의 선택된 블록의 어느 움직임 파라미터들이 사용되는지를 표시하는 정보를 디코더에 시그널링하는 단계를 포함하는 방법을 포함하고, 적어도 하나의 공간적으로 위치된 인접한 블록은 현재 블록과 동일한 화상에 상주하고; 적어도 하나의 시간적으로 위치된 인접한 블록은 현재 블록과 상이한 화상에 상주한다. 병합 모드는 현재 블록에 대한 공간적으로 위치된 인접한 블록, 시간적으로 위치된 인접한 블록, 공간적으로 위치된 블록들의 조합, 시간적으로 위치된 블록들의 조합, 및 공간적으로 위치된 및 시간적으로 위치된 블록들의 조합 중 하나일 수 있다. 방법은 비디오 콘텐츠의 현재 블록에 대한 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 결정하는 단계 - 적어도 하나의 공간적으로 위치된 블록은 현재 블록과 동일한 화상에 위치됨 - ; 및 적어도 하나의 공간적으로 위치된 블록을 병합 모드 후보 리스트에서 식별하는 단계를 더 포함한다.
일 실시예에서, 현재 블록을 디코딩할 시에 사용되는 움직임 파라미터들은 현재 블록에 대한 시간적으로 위치된 블록, 공간적으로 위치된 블록, 또는 공간적으로 위치된 블록들로부터의 움직임 파라미터들의 조합에서 나올 수 있다. 시그널링하는 단계는 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 디코더가 판단하는 것을 허용하기 위해 인코더에서 인덱스로 된 정보를 설정하는 단계를 포함할 수 있다. 식별하는 단계는 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 표시하기 위해 플래그 세트를 설정하는 단계를 포함할 수 있다. 플래그 세트는 시간적으로 위치된 블록 및 공간적으로 위치된 블록 중 어느 하나가 사용되는지를 표시하는 제1 플래그, 시간적으로 위치된 블록이 사용되는지를 표시하는 제2 플래그, 및 공간적으로 위치된 블록이 사용되는지를 표시하는 제3 플래그를 포함할 수 있다.
일 실시예는 비디오 콘텐츠의 현재 블록에 대한 병합 모드를 포함하는 시그널링을 수신하는 단계 - 병합 모드는 후보 리스트로부터 선택되는 하나 이상의 블록들이고, 후보 리스트는 하나 이상의 공간적으로 위치된 인접한 블록, 및 하나 이상의 시간적으로 위치된 인접한 블록들 중 적어도 하나를 포함함 -; 비디오 콘텐츠의 현재 블록을 디코딩하기 위해 어느 후보 블록이 병합 모드 후보 리스트에서 식별되는지를 판단하는 단계를 포함하는 방법을 포함하며, 적어도 하나의 공간적으로 위치된 인접한 블록은 현재 블록과 동일한 화상에 상주하고, 적어도 하나의 시간적으로 위치된 인접한 블록은 현재 블록과 상이한 화상에 상주한다. 병합 모드는 현재 블록에 대한 공간적으로 위치된 인접한 블록, 시간적으로 위치된 인접한 블록, 공간적으로 위치된 블록들의 조합, 시간적으로 위치된 블록들의 조합, 및 공간적으로 위치된 및 시간적으로 위치된 블록들의 조합 중 하나일 수 있다. 일 실시예에서, 방법은 비디오 콘텐츠의 현재 블록에 대한 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 결정하는 단계 - 적어도 하나의 공간적으로 위치된 블록은 현재 블록과 동일한 화상에 위치됨 -; 및 병합 모드 후보 리스트에서 적어도 하나의 공간적으로 위치된 블록을 식별하는 단계를 더 포함하고, 현재 블록을 디코딩하기 위해 후보 리스트에서 공간적으로 위치된 블록이 식별되면, 방법은 비디오 콘텐츠의 현재 블록을 디코딩할 시에 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 사용하는 단계를 더 포함한다.
현재 블록을 디코딩할 시에 사용되는 움직임 파라미터들은 현재 블록에 대한 시간적으로 위치된 블록, 공간적으로 위치된 블록, 또는 공간적으로 위치된 블록들로부터의 움직임 파라미터들의 조합에서 나올 수 있다. 어느 후보 블록인지를 판단하는 단계는 현재 블록을 디코딩할 시에 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 판단하기 위해 인덱스를 사용하는 단계를 포함할 수 있다. 어느 후보 블록인지를 판단하는 단계는 현재 블록을 디코딩할 시에 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 판단하기 위해 플래그 세트를 사용하는 단계를 포함할 수 있다.
일 실시예는 하나 이상의 컴퓨터 프로세서들, 및 하나 이상의 컴퓨터 프로세서들이, 비디오 콘텐츠의 현재 블록에 대한 적어도 하나의 시간적으로 위치된 블록의 움직임 파라미터들을 결정하고 - 시간적으로 위치된 블록은 현재 블록과 상이한 화상에 위치됨 -, 적어도 하나의 시간적으로 위치된 블록을 병합 모드 후보 리스트에서 식별하고 - 병합 모드 후보 리스트는 움직임 파라미터들이 현재 블록에 사용될 후보들인 후보 블록들을 포함함 -, 현재 블록을 디코딩할 시에 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 표시하는 정보를 디코더에 인코딩하도록 동작가능하도록 제어하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체를 포함하는 장치를 포함한다. 장치는 비디오 콘텐츠의 현재 블록에 대한 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 결정하고 - 적어도 하나의 공간적으로 위치된 블록이 현재 블록과 동일한 화상에 위치됨 -, 적어도 하나의 공간적으로 위치된 블록을 병합 모드 후보 리스트에 식별하도록 더 동작가능할 수 있다.
일 실시예에서, 적어도 하나의 시간적으로 위치된 블록 및 적어도 하나의 공간적으로 위치된 블록은 병합 모드 후보 리스트 상에 포함될 수 있고, 현재 블록을 디코딩할 시에 적어도 하나의 시간적으로 위치된 블록 및 적어도 하나의 공간적으로 위치된 블록의 어느 움직임 파라미터들이 사용되는지를 표시하는 정보가 시그널링된다. 현재 블록을 디코딩할 시에 사용되는 움직임 파라미터들은 현재 블록에 대한 적어도 하나의 시간적으로 위치된 블록, 적어도 하나의 공간적으로 위치된 블록, 또는 공간적으로 위치된 블록들로부터의 움직임 파라미터들의 조합에서 나올 수 있다. 시그널링하는 것은 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직 파라미터들이 사용되는지를 디코더가 판단하는 것을 허용하기 위해 인코더에서 인덱스로 된 정보를 설정하는 것을 포함할 수 있다. 일 실시예에서, 식별하는 것은 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 표시하기 위해 플래그 세트를 설정하는 것을 포함할 수 있다. 플래그 세트는 시간적으로 위치된 블록 및 공간적으로 위치된 블록 중 어느 하나가 사용되는지를 표시하는 제1 플래그, 시간적으로 위치된 블록이 사용되는지를 표시하는 제2 플래그, 및 공간적으로 위치된 블록이 사용되는지를 표시하는 제3 플래그를 포함할 수 있다.
또 다른 실시예는 하나 이상의 컴퓨터 프로세서들, 및 하나 이상의 컴퓨터 프로세서들이, 병합 모드 후보 리스트를 포함하는 시그널링을 수신하고 - 병합 모드 후보 리스트는 움직임 파라미터들이 현재 블록에 사용될 후보들인 후보 블록들을 식별함 -, 비디오 콘텐츠의 현재 블록을 디코딩하기 위해 병합 모드 후보 리스트에서 어느 후보 블록이 식별되는지를 판단하고, 시간적으로 위치된 블록이 식별되면, 비디오 콘텐츠의 현재 블록을 디코딩할 시에 시간적으로 위치된 블록에 대한 움직임 파라미터들을 사용하도록 - 시간적으로 위치된 블록은 현재 블록과 상이한 화상에 위치됨 - 동작가능하도록 제어하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체를 포함하는 장치를 포함한다. 병합 모드 후보 리스트는 현재 블록에 대한 적어도 하나의 공간적으로 위치된 블록 - 적어도 하나의 공간적으로 위치된 블록은 현재 블록과 동일한 화상에 위치됨 - 을 포함할 수 있고, 현재 블록을 디코딩하기 위해 후보 리스트에서 적어도 하나의 공간적으로 위치된 블록이 식별되면, 비디오 콘텐츠의 현재 블록을 디코딩할 시에 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 사용하도록 더 동작가능하다.
일 실시예에서, 병합 모드 후보 리스트 내의 후보 블록들로부터의 움직임 파라미터들은 현재 블록에 대한 적어도 하나의 시간적으로 위치된 블록, 적어도 하나의 공간적으로 위치된 블록 또는 공간적으로 위치된 블록들로부터의 움직임 파라미터들의 조합에서 나온다. 어느 후보 블록인지 판단하는 것은 현재 블록을 디코딩할 시에 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 판단하기 위해 인덱스를 사용하는 것을 포함할 수 있다. 어느 후보 블록인지 판단하는 것은 현재 블록을 디코딩할 시에 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 판단하기 위해 플래그 세트를 사용하는 것을 포함할 수 있다.
이하의 상세한 설명 및 첨부 도면들은 본 발명의 본질 및 장점의 더 상세한 이해를 제공한다.
도 1a는 LCU 분할의 예를 도시한다.
도 1b는 도 1a에 도시된 LCU 분할의 쿼드트리를 도시한다.
도 2는 PU들의 CU 분할의 예를 도시한다.
도 3은 일 실시예에 따른 비디오 콘텐츠를 인코딩 및 디코딩하는 시스템의 예를 도시한다.
도 4는 일 실시예에 따른 시간적 및 공간적 인접한 블록들을 도시한다.
도 5는 일 실시예에 따른 블록 X가 임의의 병합 모드에 있지 않을 때의 시나리오를 도시한다.
도 6은 일 실시예에 따른 블록 X가 공간적 병합 모드에서 블록 A와 병합될 때의 시나리오를 도시한다.
도 7은 일 실시예에 따른 블록 X가 공간적 병합 모드에서 블록 B와 병합될 때의 시나리오를 도시한다.
도 8은 일 실시예에 따른 블록 X가 시간적 병합 모드에서 블록 C와 병합될 때의 시나리오를 도시한다.
도 9는 일 실시예에 따른 어느 모드가 인코딩 프로세스에서 사용되는지를 판단하는 방법의 간략한 순서도를 도시한다.
도 10은 일 실시예에 따른 현재 블록을 디코딩하는 방법의 간략한 순서도를 도시한다.
도 11은 일 실시예에 따른 인코더의 예를 도시한다.
도 12는 일 실시예에 따른 디코더의 예를 도시한다.
비디오 압축 시스템에 대한 기술들이 본 명세서에서 설명된다. 이하의 기재에서, 설명할 목적으로, 다수의 예들 및 특정 상세들은 본 발명의 실시예들의 완전한 이해를 제공하기 위해 진술되어 있다. 청구항들에 의해 정의된 바와 같은 특정 실시예들은 이 예들에서의 특징들의 일부 또는 전부를 단독으로 또는 후술되는 다른 특징들과 조합하여 포함할 수 있고, 본 명세서에 설명되는 특징들 및 개념들의 수정들 및 등가물들을 더 포함할 수 있다.
도 3은 일 실시예에 따른 비디오 콘텐츠를 인코딩 및 디코딩하는 시스템의 예를 도시한다. 시스템은 인코더(300) 및 디코더(301)를 포함하며, 그의 둘 다는 아래에 더 상세히 설명될 것이다. 인코더(300)는 공간적-시간적 병합 매니저(302-1)를 인코딩 프로세스에서 사용하고 디코더(301)는 공간적-시간적 병합 매니저(302-2)를 디코딩 프로세스에서 사용한다. 일 실시예에서, 인코더(300) 및 디코더(301)는 HEVC 코딩 방식을 사용한다.
각각의 공간적-시간적 병합 매니저(302)는 병합 모드에 있는 동안 시간적 상관이 공간적으로 위치된 블록들에 더하여 고려되는 것을 허용한다. 즉, 현재 블록이 병합 모드에 주어지면, 공간적으로 위치된 블록들은 시간적으로 위치된 블록(즉, 시간적 병합 모드)에 더하여 현재 블록과의 병합에 사용될 수 있다(즉, 공간적 병합 모드). 예를 들어, 좌측 및 상단의 인접한 블록들은 공간적으로 위치된 블록들로서 사용될 수 있고, 현재 블록에 대한 다른 화상(예를 들어, 이전에 코딩된 화상) 내의 동위 블록과 같은 이전에 코딩된 화상 내의 블록은 시간적으로 위치된 블록으로서 사용될 수 있다. 동위 블록은 현재 블록이 사용될 수 있기 전에 코딩되었던 임의의 화상과 같은 다른 화상 내의 현재 블록과 유사한 위치에 있는 블록일 수 있다. 동위 블록 외의 화상들 내의 블록들이 사용될 수도 있다. 현재 블록의 움직임 파라미터들은 공간적으로 위치된 블록들로부터 유도되고 공간적 병합에 사용될 수 있으며, 및/또는 시간적으로 위치된 블록들로부터 유도되고 시간적 병합에 사용될 수 있다.
공간적 병합 모드에서와 같이, 시간적 병합 모드는 "영역"을 형성하기 위해 현재 블록을 시간적으로 위치된 블록과 병합할 수 있다. 영역 내의 모든 픽셀들은 동일한 움직임 파라미터들을 공유한다. 따라서, 현재 블록에 대한 움직임 파라미터들을 코딩하고 송신할 필요가 없다. 그 대신에, 시간적으로 위치된 블록의 움직임 파라미터들이 현재 블록을 위해 사용된다.
게다가, 현재 블록은 개념적으로 하나보다 많은 공간적으로 위치된 블록 및/또는 시간적으로 위치된 블록과 병합하고, 하나보다 많은 공간적으로 위치된 블록 및/또는 시간적으로 위치된 블록들의 움직임 파라미터들을 사용하여 그 자체의 움직임 파라미터들을 형성할 수 있다. 예를 들어, 현재 블록은 개념적으로 2개의 상이한 공간적으로 위치된 블록들과 병합하고, 공간적 병합에서 2개의 상이한 공간적으로 위치된 블록들로부터 움직임 파라미터들을 사용하여 움직임 파라미터들을 형성할 수 있다.
움직임 파라미터들(예를 들어, 움직임 벡터들)은 기준 화상과 현재의 화상 사이의 시간적 차이에 따라 스케일링될 수 있다. 예를 들어, 블록 A는 화상 3 내의 현재 블록이고 그것은 화상 2 내의 기준을 획득할 필요가 있다. 블록 B는 상부 블록이고 그의 움직임 파라미터는 화상 1 내의 기준을 가리킨다. 상이한 기준 화상들로 인해, 블록 B의 움직임 파라미터는 병합 모드에서 블록 A에 적용되기 전에 스케일링될 필요가 있다.
상술한 시간적으로 위치된 및 공간적으로 위치된 블록들은 병합 모드 후보 리스트 상에서 식별될 수 있다. 예를 들어, 시간적으로 위치된 블록, 좌측 및 상단의 공간적으로 위치된 블록들, 및 개념적으로 결합된 블록들은 현재 블록과 병합될 후보들일 수 있다. 특정 실시예들은 현재 블록이 어느 블록과 병합되는지를 표시하기 위해 시그널링을 공간적-시간적 병합 매니저(302-1)로부터 공간적-시간적 병합 매니저(302-2)로 제공한다. 그러므로, 디코더는 현재 블록을 디코딩할 시에 어느 블록의 움직임 파라미터들이 사용되어야 하는지를 인식할 것이다. 예를 들어, 어느 블록의 움직임 파라미터들이 사용되는지를 표시하기 위해 인덱스가 설정 및 시그널링될 수 있다. 또한, 어느 블록의 움직임 파라미터들이 사용되어야 하는지를 표시하기 위해 플래그들이 설정 및 시그널링될 수 있다. 일 실시예에서, 현재 블록이 병합 모드를 사용하는지를 표시하기 위해 제1 플래그(merge_flag)가 사용된다. 현재 블록이 공간적으로 또는 시간적으로 병합되는지를 표시하기 위해 제2 플래그(merge_temporal_flag)가 사용된다. 공간적 병합 모드가 선택되면 좌측의 인접한 블록 또는 상단의 인접한 블록이 사용되는지를 표시하기 위해 제3 플래그(merge_left_flag)가 사용된다. 이 플래그들이 설명되었지만, 다른 시그널링 방법들이 사용될 수 있다. 예를 들어, 병합 모드가 인코더(300) 및 디코더(301)로서 수행되지 않을 수 있는 시그널링은 어느 병합 모드가 사용되는지를 판단하기 위해 규칙 세트를 따를 수 있다. 부가적으로, 다른 플래그들이 사용될 수 있다.
비디오 시퀀스들에 존재할 수 있는 시간적 중복성을 레버리지(leverage)하기 위해 시간적으로 위치된 블록이 사용될 수 있다. 즉, 객체들의 형상은 단기간에 큰 정도로 변경될 수 없다. 따라서, 시간적으로 위치된 블록에 대한 움직임 파라미터들이 현재 블록에 사용될 수 있다.
도 4 내지 도 8은 일 실시예에 따른 공간적-시간적 병합에 대한 다양한 병합 시나리오들을 예시한다. 어느 병합 모드, 즉, 비병합 모드, 공간적 병합 모드, 또는 시간적 병합 모드가 사용되는지는 상이한 방법들로 결정될 수 있다. 예를 들어, "Joint Spatial and Temporal Block Merge Mode for HEVC"의 미국 출원 제13/351,906호는 어느 병합 모드가 사용되는지를 판단하는 상이한 방법들 설명한다. 도 4는 일 실시예에 따른 시간적 및 공간적 인접한 블록들을 도시한다. 화상 t에서, 현재 블록은 블록 X이다. 현재 블록 X는 좌측의 인접한 블록, 블록 B, 또는 상단의 인접한 블록, 블록 A와 공간적으로 병합하도록 허용된다. 부가적으로, 현재 블록 X는 상이한 화상 t-1 내의 블록 C와 시간적으로 병합하도록 허용된다. 블록 C는 현재 블록 X와 시간적으로 동위에 있다. 즉, 블록 C는 블록 X와 동일한 위치에 있지만, 상이한 시간에 위치된다. 예를 들어, 블록 C는 이전 시간에 코딩되었을 수 있다.
도 5는 블록 X가 일 실시예에 따른 임의의 병합 모드에 있지 않을 때의 시나리오를 도시한다. 움직임 벡터들(502-1, 502-2, 및 502-3)은 화상 t 내의 블록들을 위해 도시된다. 움직임 벡터(502-4)는 화상 t-1 내의 블록 C를 위해 도시된다. 이 경우에, 움직임 벡터와 같은 움직임 파라미터들은 코딩될 필요가 있다. 부가적으로, 움직임 파라미터들은 어느 기준 화상이 예측을 위해 사용되는지를 표시하는 기준 화상 인덱스일 수 있다. 움직임 파라미터들은 이 경우에 인코더(300)로부터 디코더(301)로 송신된다.
도 6은 일 실시예에 따른 블록 X가 공간적 병합 모드에서 블록 A와 병합될 때의 시나리오를 도시한다. 이 경우에, 블록 X에 대한 움직임 벡터(502-1)는 움직임 벡터(502-2)와 동일하다. 따라서, 블록 X는 블록 A와 공간적으로 병합되며, 이는 상단의 인접한 블록이다. 움직임 벡터(502-1)에 대한 움직임 파라미터들은 이 예에서 블록 X 및 블록 A에 대해 한 번만 코딩될 필요가 있다. 아래에 논의되는 바와 같이, 블록 X가 블록 A와 병합되는 것을 표시하기 위해 플래그들이 설정될 수 있다.
도 7은 일 실시예에 따른 블록 X가 공간적 병합 모드에서 블록 B와 병합될 때의 시나리오를 도시한다. 블록 B는 블록 X의 좌측의 인접한 블록이고, 움직임 벡터(502-1)는 블록 B에 대한 움직임 벡터(502-3)와 동일하다. 움직임 파라미터들은 이 예에서 블록 X 및 블록 B에 대해 한 번만 코딩될 필요가 있다. 즉, 움직임 벡터(502-3)와 같은 블록 B에 사용되는 동일한 움직임 파라미터들이 블록 X에 사용된다.
도 8은 일 실시예에 따른 블록 X가 시간적 병합 모드에서 블록 C와 병합될 때의 시나리오를 도시한다. 블록 X에 대한 움직임 벡터(502-1)는 블록 C에 대한 움직임 벡터(502-4)와 동일하다. 이 경우에, 움직임 파라미터들은 이 예에서 블록 X 및 블록 C에 대해 한 번만 코딩될 필요가 있다. 예를 들어, 움직임 파라미터들은 블록 X를 위해 코딩되지 않고, 블록 C에 대한 움직임 벡터(502-4)와 같은 움직임 파라미터들이 사용된다.
특정 실시예들은 어느 블록이 병합 모드 후보 리스트로부터 사용되는지를 시그널링하는 상이한 방법들을 사용한다. 일 실시예에서, 인덱스가 사용될 수 있다. 또한, 3개의 플래그들(merge_flag, merge_temporal_flag, and merge_left_flag)과 같은 플래그들이 사용될 수 있다. 이하의 것은 인코딩 및 디코딩 프로세스들에서의 시그널링을 설명한다. 도 9는 일 실시예에 따른 어느 모드가 인코딩 프로세스에 사용되는지를 판단하는 방법의 간략한 순서도를 도시한다. 902에서, 공간적-시간적 병합 매니저(302-1)는 현재 블록 X가 병합 모드에 있어야 하는지를 판단한다. 그렇지 않다면, 904에서, 블록 X에 대한 움직임 파라미터들이 코딩된다. 이것은 블록 X에 대한 통상의 코딩 프로세스일 수 있다. 또한, 공간적-시간적 병합 매니저(302-1)는 현재 블록 X에 대한 병합 모드가 인에이블되지 않은 것을 표시하기 위해 플래그(merge_flag)를 "0"으로 설정한다. 0의 값이 사용되었지만, 다른 값들이 사용될 수 있다. 다른 실시예에서, 병합 모드가 인에이블되지 않은 것을 표시하기 위해 인덱스로 된 정보가 설정된다.
병합 모드가 선택되면, 906에서, 공간적-시간적 병합 매니저(302-1)는 병합 모드를 인에이블한다. 예를 들어, 공간적-시간적 병합 매니저(302-1)는 병합 모드가 인에이블되는 것을 표시하기 위해 플래그(merge_flag)를 "1"의 값으로 설정한다. 1의 값이 설명되었지만, 병합 모드가 인에이블되는 것을 표시하기 위해 다른 값이 사용될 수 있다. 다른 실시예에서, 병합 모드가 인에이블되는 것을 표시하기 위해 인덱스로 된 정보가 설정된다.
908에서, 공간적-시간적 병합 매니저(302-1)는 시간적 병합 모드가 인에이블되어야 하는지를 판단한다. 시간적 병합 모드가 인에이블되어야 한다면, 910에서, 공간적-시간적 병합 매니저(302-1)는 시간적 병합 모드를 인에이블한다. 예를 들어, 공간적-시간적 병합 매니저(302-1)는 시간적 병합 모드가 사용되어야 하는 것을 표시하기 위해 플래그(merge_temporal_flag)를 "1"의 값으로 설정한다. 이 경우에, 현재 블록 X는 시간적으로 위치된 블록 C와 병합된다. 다른 실시예에서, 시간적 병합 모드가 인에이블되는 것을 표시하기 위해 인덱스로 된 정보가 설정된다.
시간적 병합 모드가 사용되지 않으면, 이 때 공간적 병합 모드가 사용된다. 912에서, 공간적-시간적 병합 매니저(302-1)는 좌측의 인접한 블록이 공간적 병합 모드에 사용되어야 하는지를 판단한다. 좌측의 인접한 블록이 사용되어야 한다면, 914에서, 공간적-시간적 병합 매니저(302-1)는 좌측의 인접한 블록을 사용하기 위해 시간적 병합 모드를 설정한다. 예를 들어, 공간적-시간적 병합 매니저(302-1)는 플래그(merge_left_flag)를 "1"의 값으로 설정한다. 916에서, 상단의 인접한 블록이 공간적 병합에 사용되어야 한다면, 공간적-시간적 병합 매니저(302-1)는 상단의 인접한 블록이 블록 X와 공간적으로 병합되어야 하는 것을 표시하기 위해 플래그(merge_left_flag)를 "0"의 값으로 설정한다. 좌측 및 상단의 인접한 블록들과 다른 블록들이 사용되어야 하는 것을 표시하기 위해 다른 플래그들이 사용될 수 있다. 다른 실시예에서, 공간적으로 위치된 블록들 중 어느 것이 사용되어야 하는지를 표시하기 위해 인덱스로 된 정보가 설정된다.
918에서, 공간적-시간적 병합 매니저(302-1)는 사용되는 병합 모드를 표시하는 정보를 시그널링한다. 예를 들어, 공간적-시간적 병합 매니저(302-1)는 플래그들의 값들을 시그널링한다. 다른 실시예에서, 인덱스로 된 정보가 시그널링된다. 일부 실시예들에서, 사용되는 병합 모드에 따라 플래그들의 값들 전부가 시그널링될 필요는 없다. 예를 들어, 병합 모드가 인에이블되지 않으면, 플래그(merge_flag)에 대한 "0"의 값이 시그널링될 필요가 있을 수 있다. 인코더(300)는 또한 적어도 한 번 병합된 영역에 대한 움직임 파라미터들을 시그널링한다. 병합된 영역 내의 각각의 블록은 동일한 움직임 파라미터들을 사용하므로 영역 내의 각 블록에 대한 움직임 파라미터들을 송신하는 것이 회피되며, 이는 오버헤드를 감소시킨다.
도 10은 일 실시예에 따른 현재 블록을 디코딩하는 방법의 간략한 순서도(1000)를 도시한다. 1002에서, 공간적-시간적 병합 매니저(302-2)는 병합 모드가 현재 블록 X를 위해 인에이블되는지를 판단한다. 예를 들어, 공간적-시간적 병합 매니저(302-2)는 현재 블록 X가 임의의 병합 모드에 있지 않은 것을 표시하기 위해 플래그(merge_flag)가 "0"의 값으로 설정되거나 또는 현재 블록 X가 병합 모드에 있는 것을 표시하기 위해 "1"의 값으로 설정되는지를 판단한다. 병합 모드가 인에이블되지 않으면, 1004에서, 블록 X에 대한 움직임 파라미터들이 결정되고 디코더(301)에서 움직임 예측에 사용된다. 다른 실시예에서, 병합 모드가 인에이블되거나 인에이블되지 않는지를 판단하기 위해 인덱스로 된 정보가 사용된다.
1006에서, 공간적-시간적 병합 매니저(302-2)는 시간적 병합 모드가 인에이블되는지를 판단한다. 예를 들어, 플래그(merge_temporal_flag)가 0으로 설정되면, 현재 블록이 공간적으로 병합된다. 다른 실시예에서, 시간적 병합 모드가 인에이블되지 않는지를 판단하기 위해 인덱스로 된 정보가 사용된다. 그러나, 플래그(merge_temporal_flag)가 "1"의 값으로 설정되면, 1008에서, 현재 블록은 시간적으로 위치된 블록과 시간적으로 병합된다. 예를 들어, 현재 블록 X는 시간적으로 동위인 블록 C와 병합될 수 있다. 이 경우에, 블록 C에 대한 코딩 파라미터들이 움직임 예측에 사용될 수 있다.
1010에서, 시간적 병합 모드가 인에이블되지 않으면, 공간적-시간적 병합 매니저(302-2)는 공간적으로 위치된 블록이 공간적 병합 모드에서 사용되어야 하는지를 판단한다. 예를 들어, 플래그(merge_left_flag)는 상단의 인접한 블록이 사용되어야 하는 것을 표시하기 위해 "0"의 값으로 설정될 수 있거나 또는 좌측의 인접한 블록이 사용되어야 하는 것을 표시하기 위해 "1"의 값으로 설정될 수 있다. 다른 실시예에서, 상단 또는 좌측의 인접한 블록이 사용되는지를 판단하기 위해 인덱스로 된 정보가 사용된다. 1012에서, 좌측의 인접한 블록이 사용되지 않아야 한다면, 이 때 현재 블록은 상단의 인접한 블록과 병합된다. 이 경우에, 상단의 인접한 블록에 대한 코딩 파라미터들이 움직임 예측에 사용된다. 1014에서, 좌측의 인접한 블록이 사용되어야 한다면, 현재 블록은 좌측의 인접한 블록과 병합된다. 이 경우에, 좌측의 인접한 블록에 대한 코딩 파라미터들이 움직임 예측에 사용된다.
도 11은 일 실시예에 따른 인코더(300)의 예를 도시한다. 인코더(300)의 일반적 동작이 이제 설명될 것이다. 설명되는 인코딩 프로세스 상의 변화들은 본 명세서에서의 개시 및 교시들에 기초하여 당업자에 의해 인식된다는 것이 이해될 것이다.
현재의 PU(x)에 대해, 예측 PU(x')는 공간적 예측 또는 시간적 예측을 통해 획득된다. 그 다음, 예측 PU는 현재의 PU로부터 감산되어, 잔여 PU(e)를 야기한다. 공간적 예측 블록(1104)은 수평, 수직, 45도 대각선, 135도 대각선, DC(플랫 평균화(flat averaging)), 및 평면과 같은 PU 마다의 서로 다른 공간적 예측 방향들을 포함할 수 있다.
시간적 예측 블록(1106)은 시간적 예측을 움직임 추정 및 움직임 보상 동작을 통해 수행한다. 움직임 추정 동작은 기준 화상들을 통해 현재의 PU에 대한 최상의 정합 예측을 검색한다. 최상의 정합 예측은 움직임 벡터(MV) 및 연관된 기준 화상(refIdx)에 의해 설명된다. 움직임 벡터 및 연관된 기준 화상은 코딩된 비트 스트림에 포함된다. 움직임 보상에서, 현재의 PU에 대한 최상의 정합 예측은 MV 및 refIdx를 사용하여 결정된다.
공간적-시간적 병합 매니저(302-1)는 현재의 PU에 대한 움직임 예측을 수행하기 위해 시간적 예측 블록(306)과 통신할 수 있다. 현재 블록이 공간적으로 위치된 블록 또는 시간적으로 위치된 블록과 병합되면, 공간적-시간적 병합 매니저(302)는 현재 블록을 디코딩할 시에 어느 블록이 사용되어야 하는지를 표시하는 정보를 시그널링할 수 있다. 현재 블록에 대한 움직임 파라미터들은 현재 블록이 공간적으로 또는 시간적으로 병합되면 다시 시그널링될 필요가 없다.
변환 블록(1107)은 잔여 PU(e)를 이용하여 변환 동작을 수행한다. 변환 블록(1107)은 잔여 PU를 변환 도메인(E)으로 출력한다.
그 다음, 양자화기(1108)는 잔여 PU(E)의 변환 계수들을 양자화한다. 양자화기(1108)는 변환 계수들을 유한 수의 가능한 값들로 변환한다. 엔트로피 코딩 블록(1110)은 양자화된 계수들을 엔트로피 코딩하며, 이는 송신될 최종 압축 비트들을 야기한다. CAVLC(context-adaptive variable length coding) 또는 CABAC(context-adaptive binary arithmetic coding)와 같은 상이한 엔트로피 코딩 방법들이 사용될 수 있다.
또한, 인코더(300) 내의 디코딩 프로세스에서, 탈양자화기(1112)는 잔여 PU의 양자화된 변환 계수들을 탈양자화한다. 그 다음, 탈양자화기(1112)는 탈양자화된 변환 계수들(E')을 출력한다. 역변환 블록(1114)은 탈양자화된 변환 계수들을 수신한 다음에, 탈양자화 변환 계수들이 역변환되어 재구성된 잔여 PU(e')를 야기한다. 그 다음, 재구성된 PU(e')는 공간적 또는 시간적으로, 대응하는 예측(x')에 추가되어, 새로운 재구성된 PU(x")를 형성한다. 루프 필터(1116)는 재구성된 PU(x")에 대해 블록 해제를 수행하여, 블록킹 아티팩트들을 감소시킨다. 부가적으로, 루프 필터(1116)은 디코딩된 화상에 대한 블록 해제 필터 프로세스의 완료 후에 샘플 적응 오프셋 프로세스를 수행할 수 있으며, 이는 재구성된 픽셀들과 원래의 픽셀들 사이의 픽셀 값 오프셋을 보상한다. 또한, 루프 필터(1116)는 재구성된 PU를 통해 적응 필터링을 수행할 수 있으며, 이는 입력 화상과 출력 화상들 사이의 코딩 왜곡을 최소화한다. 부가적으로, 재구성된 화상들이 기준 화상들이면, 기준 화상들은 장래의 시간적 예측을 위해 기준 버퍼(1118)에 저장된다.
도 12는 일 실시예에 따른 디코더(301)의 예를 도시한다. 디코더(301)의 일반적 동작이 이제 설명될 것이다. 설명되는 디코딩 프로세스 상의 변화들은 본 명세서에서의 개시 및 교시들에 기초하여 당업자에 의해 인식된다는 점이 이해될 것이다. 디코더(301)는 압축된 비디오 콘텐츠를 위해 인코더(300)로부터 입력 비트들을 수신한다.
엔트로피 디코딩 블록(1230)은 잔여 PU의 양자화된 변환 계수들에 대응하는 입력 비트들 상에 엔트로피 디코딩을 수행한다. 탈양자화기(1232)는 잔여 PU의 양자화 변환 계수들을 탈양자화한다. 그 다음, 탈양자화기(1232)는 잔여 PU(E')의 탈양자화 변환 계수들을 출력한다. 역변환 블록(1234)은 탈양자화된 변환 계수들을 수신한 다음에, 탈양자화된 변환 계수들이 역변환되어 재구성된 잔여 PU(e')를 야기한다.
그 다음, 재구성된 PU(e')는 공간적 또는 시간적으로, 대응하는 예측(x')에 추가되어, 새로운 구성된 PU(x")를 형성한다. 루프 필터(1236)는 재구성된 PU(x") 상에 블록 해제를 수행하여, 블록킹 아티팩트들을 감소시킨다. 부가적으로, 루프 필터(1236)는 디코딩된 화상에 대한 블록 해제 필터 프로세스의 완료 후에 샘플 적응 오프셋 프로세스를 수행할 수 있으며, 이는 재구성된 픽셀들과 원래의 픽셀들 사이의 픽셀 값 오프셋을 보상한다. 또한, 루프 필터(1236)는 재구성된 PU를 통해 적응 루프 필터를 수행할 수 있으며, 이는 입력 화상과 출력 화상 사이의 코딩 왜곡을 최소화한다. 부가적으로, 재구성된 화상들이 기준 화상들이면, 기준 화상들은 장래의 시간적 예측을 위해 기준 버퍼(1238)에 저장된다.
예측 PU(x')는 공간적 예측 또는 시간적 예측을 통해 획득된다. 공간적 예측 블록(1240)은 수평, 수직, 45도 대각선, 135도 대각선, DC(플랫 평균화), 및 평면과 같은 PU 마다의 디코딩된 공간적 예측 방향들을 수신할 수 있다. 예측 PU(x')를 결정하기 위해 공간적 예측 방향들이 사용된다.
시간적 예측 블록(1242)은 시간적 예측을 움직임 추정 및 움직임 보상 동작을 통해 수행한다. 그 다음, 예측 PU(x')를 결정하기 위해 다른 움직임 정보로부터 유도되는 디코딩된 움직임 벡터 또는 움직임 벡터가 사용된다.
공간적-시간적 병합 매니저(302-2)는 어느 블록의 움직임 파라미터들이 현재의 PU에 사용되는지를 표시하는 시그널링을 공간적-시간적 병합 매니저(302-1)로부터 수신한다. 공간적-시간적 병합 매니저(302-2)는 현재의 PU가 공간적으로 위치된 블록 또는 시간적으로 위치된 블록의 움직임 파라미터들을 사용해야 하는지를 표시하기 위해 시간적 예측 블록(1242)과 통신할 수 있다. 예를 들어, 시간적으로 위치된 블록의 디코딩된 움직임 벡터(들)가 사용될 수 있거나 공간적으로 위치된 블록의 디코딩된 움직임 벡터(들)가 시간적 예측에 사용될 수 있다.
특정 실시예들은 명령어 실행 시스템, 장치, 시스템, 또는 기계에 의해 또는 이들과 함께 사용되는 비일시적 컴퓨터 판독가능 저장 매체로 구현될 수 있다. 컴퓨터 판독가능 저장 매체는 특정 실시예들에 의해 설명되는 방법을 수행하기 위해 컴퓨터 시스템을 제어하는 명령어들을 포함한다. 명령어들은 하나 이상의 컴퓨터 프로세서들에 의해 실행될 때, 특정 실시예들에 설명되는 것을 수행하도록 동작가능할 수 있다.
본 명세서에서의 설명 및 이어지는 청구항들 도처에 사용되는 바와 같이, "하나의(a, an)", 및 "상기(the)"는 문맥이 명백히 다르게 서술되지 않으면 복수의 참조들을 포함한다. 또한, 본 명세서에서의 설명 및 이어지는 청구항들 도처에 사용되는 바와 같이, "내(in)"의 의미는 문맥이 명백히 다르게 서술되지 않으면 "내(in)" 및 "상(on)"을 포함한다.
상기 설명은 본 발명의 양태들이 어떻게 구현될 수 있는지의 예와 함께 본 발명의 다양한 실시예들을 예시한다. 상기 예들 및 실시예들은 유일한 실시예들인 것으로 간주되지 않아야 하고, 이하의 청구항들에 의해 정의된 바와 같은 본 발명의 유연성 및 장점들을 예시하기 위해 제공된다. 상기 명세서 및 이하의 청구항들에 기초하여, 다른 배열들, 실시예들, 구현들 및 등가물들이 청구항들에 의해 정의된 바와 같은 본 발명의 범위로부터 벗어나는 것 없이 이용될 수 있다.

Claims (25)

  1. 비디오 콘텐츠의 현재 블록에 대한 병합 모드를 결정하는 단계 - 상기 병합 모드는 후보 리스트로부터 선택되는 하나 이상의 블록들이고, 상기 후보 리스트는 하나 이상의 공간적으로 위치된 인접한 블록, 및 하나 이상의 시간적으로 위치된 인접한 블록들 중 적어도 하나를 포함함 - ; 및
    상기 현재 블록을 디코딩할 시에 상기 적어도 하나의 선택된 블록의 어느 움직임 파라미터들이 사용되는지를 표시하는 정보를 디코더에 시그널링하는 단계
    를 포함하고,
    상기 적어도 하나의 공간적으로 위치된 인접한 블록은 상기 현재 블록과 동일한 화상에 상주하고,
    상기 적어도 하나의 시간적으로 위치된 인접한 블록은 상기 현재 블록과 상이한 화상에 상주하는 방법.
  2. 제1항에 있어서, 상기 병합 모드는 상기 현재 블록에 대한 공간적으로 위치된 인접한 블록, 시간적으로 위치된 인접한 블록, 공간적으로 위치된 블록들의 조합, 시간적으로 위치된 블록들의 조합, 및 공간적으로 위치된 및 시간적으로 위치된 블록들의 조합 중 하나인 방법.
  3. 제1항에 있어서, 상기 비디오 콘텐츠의 현재 블록에 대한 상기 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 결정하는 단계 - 상기 적어도 하나의 공간적으로 위치된 블록은 상기 현재 블록과 동일한 화상에 위치됨 - ; 및 상기 적어도 하나의 공간적으로 위치된 블록을 상기 병합 모드 후보 리스트에서 식별하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 현재 블록을 디코딩할 시에 사용되는 상기 움직임 파라미터들은 상기 현재 블록에 대한 상기 시간적으로 위치된 블록, 상기 공간적으로 위치된 블록, 또는 공간적으로 위치된 블록들로부터의 움직임 파라미터들의 조합에서 나오는 방법.
  5. 제1항에 있어서, 시그널링하는 단계는 상기 병합 모드 후보 리스트 상의 상기 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 상기 디코더가 판단하는 것을 허용하기 위해 인코더에서 인덱스로 된 정보를 설정하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 식별하는 단계는 상기 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 표시하기 위해 플래그 세트를 설정하는 단계를 포함하는 방법.
  7. 제6항에 있어서, 상기 플래그 세트는 상기 시간적으로 위치된 블록 및 공간적으로 위치된 블록 중 어느 하나가 사용되는지를 표시하는 제1 플래그, 상기 시간적으로 위치된 블록이 사용되는지를 표시하는 제2 플래그, 및 공간적으로 위치된 블록이 사용되는지를 표시하는 제3 플래그를 포함하는 방법.
  8. 비디오 콘텐츠의 현재 블록에 대한 병합 모드를 포함하는 시그널링을 수신하는 단계 - 상기 병합 모드는 후보 리스트로부터 선택되는 하나 이상의 블록들이고, 상기 후보 리스트는 하나 이상의 공간적으로 위치된 인접한 블록, 및 하나 이상의 시간적으로 위치된 인접한 블록들 중 적어도 하나를 포함함 - ; 및
    비디오 콘텐츠의 현재 블록을 디코딩하기 위해 어느 후보 블록이 상기 병합 모드 후보 리스트에서 식별되는지를 판단하는 단계
    를 포함하고,
    상기 적어도 하나의 공간적으로 위치된 인접한 블록은 상기 현재 블록과 동일한 화상에 상주하고,
    상기 적어도 하나의 시간적으로 위치된 인접한 블록은 상기 현재 블록과 상이한 화상에 상주하는 방법.
  9. 제8항에 있어서, 상기 병합 모드는 상기 현재 블록에 대한 공간적으로 위치된 인접한 블록, 시간적으로 위치된 인접한 블록, 공간적으로 위치된 블록들의 조합, 시간적으로 위치된 블록들의 조합, 및 공간적으로 위치된 및 시간적으로 위치된 블록들의 조합 중 하나인 방법.
  10. 제8항에 있어서, 상기 비디오 콘텐츠의 현재 블록에 대한 상기 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 결정하는 단계 - 상기 적어도 하나의 공간적으로 위치된 블록은 상기 현재 블록과 동일한 화상에 위치됨 - ; 및 상기 적어도 하나의 공간적으로 위치된 블록을 상기 병합 모드 후보 리스트에서 식별하는 단계를 더 포함하고, 상기 현재 블록을 디코딩하기 위해 상기 후보 리스트에서 상기 공간적으로 위치된 블록이 식별되면, 상기 방법은
    상기 비디오 콘텐츠의 현재 블록을 디코딩할 시에 상기 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 사용하는 단계를 더 포함하는 방법.
  11. 제8항에 있어서, 상기 현재 블록을 디코딩할 시에 사용되는 상기 움직임 파라미터들은 상기 현재 블록에 대한 상기 시간적으로 위치된 블록, 상기 공간적으로 위치된 블록, 또는 공간적으로 위치된 블록들로부터의 움직임 파라미터들의 조합에서 나오는 방법.
  12. 제8항에 있어서, 어느 후보 블록인지를 판단하는 단계는 상기 현재 블록을 디코딩할 시에 상기 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 판단하기 위해 인덱스를 사용하는 단계를 포함하는 방법.
  13. 제8항에 있어서, 어느 후보 블록인지를 판단하는 단계는 상기 현재 블록을 디코딩할 시에 상기 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 판단하기 위해 플래그 세트를 사용하는 단계를 포함하는 방법.
  14. 하나 이상의 컴퓨터 프로세서들; 및
    상기 하나 이상의 컴퓨터 프로세서들이
    비디오 콘텐츠의 현재 블록에 대한 적어도 하나의 시간적으로 위치된 블록의 움직임 파라미터들을 결정하고 - 상기 시간적으로 위치된 블록은 상기 현재 블록과 상이한 화상에 위치됨 -,
    상기 적어도 하나의 시간적으로 위치된 블록을 병합 모드 후보 리스트에서 식별하고 - 상기 병합 모드 후보 리스트는 움직임 파라미터들이 상기 현재 블록에 사용될 후보들인 후보 블록들을 포함함 -,
    상기 현재 블록을 디코딩할 시에 상기 병합 모드 후보 리스트 상의 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 표시하는 정보를 디코더에 인코딩하도록
    동작가능하도록 제어하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체
    를 포함하는 장치.
  15. 제14항에 있어서,
    상기 비디오 콘텐츠의 현재 블록에 대한 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 결정하고 - 상기 적어도 하나의 공간적으로 위치된 블록은 상기 현재 블록과 동일한 화상에 위치됨 -,
    상기 적어도 하나의 공간적으로 위치된 블록을 상기 병합 모드 후보 리스트에서 식별하도록 더 동작가능한 장치.
  16. 제14항에 있어서, 상기 적어도 하나의 시간적으로 위치된 블록 및 상기 적어도 하나의 공간적으로 위치된 블록은 상기 병합 모드 후보 리스트 상에 포함되고, 상기 현재 블록을 디코딩할 시에 상기 적어도 하나의 시간적으로 위치된 블록 및 상기 적어도 하나의 공간적으로 위치된 블록의 어느 움직임 파라미터들이 사용되는지를 표시하는 정보가 시그널링되는 장치.
  17. 제14항에 있어서, 상기 현재 블록을 디코딩할 시에 사용되는 상기 움직임 파라미터들은 상기 현재 블록에 대한 상기 적어도 하나의 시간적으로 위치된 블록, 상기 적어도 하나의 공간적으로 위치된 블록, 또는 공간적으로 위치된 블록들로부터의 움직임 파라미터들의 조합에서 나오는 장치.
  18. 제14항에 있어서, 시그널링하는 것은 상기 병합 모드 후보 리스트 상의 상기 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 상기 디코더가 판단하는 것을 허용하기 위해 인코더에서 인덱스로 된 정보를 설정하는 것을 포함하는 장치.
  19. 제14항에 있어서, 식별하는 것은 상기 병합 모드 후보 리스트 상의 상기 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 표시하기 위해 플래그 세트를 설정하는 것을 포함하는 장치.
  20. 제19항에 있어서, 상기 플래그 세트는 시간적으로 위치된 블록 및 공간적으로 위치된 블록 중 어느 하나가 사용되는지를 표시하는 제1 플래그, 상기 시간적으로 위치된 블록이 사용되는지를 표시하는 제2 플래그, 및 공간적으로 위치된 블록이 사용되는지를 표시하는 제3 플래그를 포함하는 장치.
  21. 하나 이상의 컴퓨터 프로세서들; 및
    상기 하나 이상의 컴퓨터 프로세서들이
    병합 모드 후보 리스트를 포함하는 시그널링을 수신하고 - 상기 병합 모드 후보 리스트는 움직임 파라미터들이 현재 블록에 사용될 후보들인 후보 블록들을 식별함 -,
    비디오 콘텐츠의 현재 블록을 디코딩하기 위해 상기 병합 모드 후보 리스트에서 어느 후보 블록이 식별되는지를 판단하고,
    시간적으로 위치된 블록이 식별되면, 상기 비디오 콘텐츠의 현재 블록을 디코딩할 시에 상기 시간적으로 위치된 블록의 움직임 파라미터들을 사용하도록 - 상기 시간적으로 위치된 블록은 상기 현재 블록과 상이한 화상에 위치됨 -
    동작가능하도록 제어하는 명령어들을 포함하는 컴퓨터 판독가능 저장 매체
    를 포함하는 장치.
  22. 제21항에 있어서, 상기 병합 모드 후보 리스트는 상기 현재 블록에 대한 적어도 하나의 공간적으로 위치된 블록 - 상기 적어도 하나의 공간적으로 위치된 블록은 상기 현재 블록과 동일한 화상에 위치됨 - 을 포함하고, 상기 현재 블록을 디코딩하기 위해 상기 후보 리스트에서 상기 적어도 하나의 공간적으로 위치된 블록이 식별되면,
    상기 비디오 콘텐츠의 현재 블록을 디코딩할 시에 상기 적어도 하나의 공간적으로 위치된 블록의 움직임 파라미터들을 사용하도록 더 동작가능한 장치.
  23. 제21항에 있어서, 상기 병합 모드 후보 리스트 내의 후보 블록들로부터의 상기 상기 움직임 파라미터들은 상기 현재 블록에 대한 상기 적어도 하나의 시간적으로 위치된 블록, 상기 적어도 하나의 공간적으로 위치된 블록 또는 공간적으로 위치된 블록들로부터의 움직임 파라미터들의 조합에서 나오는 장치.
  24. 제21항에 있어서, 어느 후보 블록인지 판단하는 것은 상기 현재 블록을 디코딩할 시에 상기 후보 블록으로부터의 어느 움직 파라미터들이 사용되는지를 판단하기 위해 인덱스를 사용하는 것을 포함하는 장치.
  25. 제21항에 있어서, 어느 후보 블록인지 판단하는 것은 상기 현재 블록을 디코딩할 시에 상기 후보 블록으로부터의 어느 움직임 파라미터들이 사용되는지를 판단하기 위해 플래그 세트를 사용하는 것을 포함하는 장치.
KR1020137021353A 2011-01-14 2012-01-17 시간적 블록 병합 모드 KR101538710B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161433010P 2011-01-14 2011-01-14
US61/433,010 2011-01-14
US13/351,682 2012-01-17
PCT/US2012/021606 WO2012097378A1 (en) 2011-01-14 2012-01-17 Temporal block merge mode
US13/351,682 US8929450B2 (en) 2011-01-14 2012-01-17 Temporal block merge mode

Publications (2)

Publication Number Publication Date
KR20130119478A true KR20130119478A (ko) 2013-10-31
KR101538710B1 KR101538710B1 (ko) 2015-09-15

Family

ID=45531596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137021353A KR101538710B1 (ko) 2011-01-14 2012-01-17 시간적 블록 병합 모드

Country Status (4)

Country Link
US (1) US8929450B2 (ko)
EP (1) EP2664144A1 (ko)
KR (1) KR101538710B1 (ko)
WO (1) WO2012097378A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015152509A1 (ko) * 2014-03-31 2015-10-08 인텔렉추얼디스커버리 주식회사 깊이 정보를 이용한 움직임 정보 유도방법 및 장치, 움직임 병합 후보 유도방법 및 장치
WO2015152505A1 (ko) * 2014-03-31 2015-10-08 인텔렉추얼디스커버리 주식회사 깊이 정보를 이용한 움직임 병합 후보 부호화/복호화 방법 및 장치
WO2016175550A1 (ko) * 2015-04-27 2016-11-03 엘지전자 주식회사 비디오 신호의 처리 방법 및 이를 위한 장치

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101438471B1 (ko) * 2011-01-03 2014-09-16 미디어텍 인크. 필터 유닛 기반 인-루프 필터링 방법
US20120294353A1 (en) * 2011-05-16 2012-11-22 Mediatek Inc. Apparatus and Method of Sample Adaptive Offset for Luma and Chroma Components
SG194746A1 (en) * 2011-05-31 2013-12-30 Kaba Gmbh Image encoding method, image encoding device, image decoding method, image decoding device, and image encoding/decoding device
CA2833032C (en) * 2011-06-15 2016-08-30 Mediatek Inc. Method and apparatus of texture image compression in 3d video coding
WO2013005966A2 (ko) 2011-07-01 2013-01-10 한국전자통신연구원 비디오 부호화 방법 및 복호화 방법과 이를 이용한 장치
US20140126645A1 (en) 2011-07-01 2014-05-08 Electronics And Telecommunications Research Institute Video encoding and decoding methods and device using same
RU2718230C2 (ru) * 2011-11-08 2020-03-31 Кт Корпорейшен Способ декодирования видеосигнала
US20130188716A1 (en) * 2012-01-20 2013-07-25 Qualcomm Incorporated Temporal motion vector predictor candidate
US9531990B1 (en) 2012-01-21 2016-12-27 Google Inc. Compound prediction using multiple sources or prediction modes
US8737824B1 (en) 2012-03-09 2014-05-27 Google Inc. Adaptively encoding a media stream with compound prediction
US9185414B1 (en) 2012-06-29 2015-11-10 Google Inc. Video encoding using variance
US9699450B2 (en) 2012-10-04 2017-07-04 Qualcomm Incorporated Inter-view predicted motion vector for 3D video
US9628790B1 (en) 2013-01-03 2017-04-18 Google Inc. Adaptive composite intra prediction for image and video compression
US9374578B1 (en) 2013-05-23 2016-06-21 Google Inc. Video coding using combined inter and intra predictors
EP2838268B1 (en) * 2013-07-31 2019-02-20 Axis AB Method, device and system for producing a merged digital video sequence
US9609343B1 (en) 2013-12-20 2017-03-28 Google Inc. Video coding using compound prediction
GB201420061D0 (en) 2014-11-11 2014-12-24 Univ Glasgow Nebulisation of liquids
WO2016085231A1 (ko) * 2014-11-27 2016-06-02 주식회사 케이티 비디오 신호 처리 방법 및 장치
KR20190044533A (ko) 2017-10-20 2019-04-30 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2019093279A1 (ja) * 2017-11-07 2019-05-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法および復号方法
JP2021516006A (ja) * 2018-07-02 2021-06-24 エルジー エレクトロニクス インコーポレイティド インター予測モードに基づいた映像処理方法及びそのための装置
CN113170184A (zh) 2018-11-22 2021-07-23 北京字节跳动网络技术有限公司 默认运动候选的配置方法
WO2020135465A1 (en) 2018-12-28 2020-07-02 Beijing Bytedance Network Technology Co., Ltd. Modified history based motion prediction
EP3935839A4 (en) * 2019-04-09 2022-06-22 Beijing Dajia Internet Information Technology Co., Ltd. METHODS AND DEVICES FOR SIGNALING MERGE MODES IN VIDEO ENCODING

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8913660B2 (en) * 2005-04-14 2014-12-16 Fastvdo, Llc Device and method for fast block-matching motion estimation in video encoders
US7843995B2 (en) 2005-12-19 2010-11-30 Seiko Epson Corporation Temporal and spatial analysis of a video macroblock
JP4788649B2 (ja) * 2007-04-27 2011-10-05 株式会社日立製作所 動画像記録方法及びその装置
KR101712915B1 (ko) 2007-10-16 2017-03-07 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
TWI405469B (zh) 2009-02-20 2013-08-11 Sony Corp Image processing apparatus and method
US8675736B2 (en) 2009-05-14 2014-03-18 Qualcomm Incorporated Motion vector processing

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015152509A1 (ko) * 2014-03-31 2015-10-08 인텔렉추얼디스커버리 주식회사 깊이 정보를 이용한 움직임 정보 유도방법 및 장치, 움직임 병합 후보 유도방법 및 장치
WO2015152505A1 (ko) * 2014-03-31 2015-10-08 인텔렉추얼디스커버리 주식회사 깊이 정보를 이용한 움직임 병합 후보 부호화/복호화 방법 및 장치
WO2016175550A1 (ko) * 2015-04-27 2016-11-03 엘지전자 주식회사 비디오 신호의 처리 방법 및 이를 위한 장치
KR20170140196A (ko) * 2015-04-27 2017-12-20 엘지전자 주식회사 비디오 신호의 처리 방법 및 이를 위한 장치
US10638129B2 (en) 2015-04-27 2020-04-28 Lg Electronics Inc. Method for processing video signal and device for same

Also Published As

Publication number Publication date
EP2664144A1 (en) 2013-11-20
US8929450B2 (en) 2015-01-06
KR101538710B1 (ko) 2015-09-15
US20130022117A1 (en) 2013-01-24
WO2012097378A1 (en) 2012-07-19

Similar Documents

Publication Publication Date Title
KR101538710B1 (ko) 시간적 블록 병합 모드
US9066104B2 (en) Spatial block merge mode
US8737480B2 (en) Joint spatial and temporal block merge mode for HEVC
KR101606131B1 (ko) 변환 유닛 분할의 잔여 트리 구조
US9210425B2 (en) Signaling of temporal motion vector predictor (MVP) flag for temporal prediction
US9210442B2 (en) Efficient transform unit representation
US9549177B2 (en) Evaluation of signaling of collocated reference picture for temporal prediction
KR101623507B1 (ko) 시간적 예측을 위해 병치된 화상의 암묵적 결정
US9380319B2 (en) Implicit transform unit representation
US20200296366A1 (en) Video encoding method, video decoding method, video encoding device, video decoding device, and program
US20140023142A1 (en) Signaling of temporal motion vector predictor (mvp) enable flag
US20120189059A1 (en) Buffer compression for motion vector competition
US10536724B2 (en) Video encoding method, video decoding method, video encoding device, video decoding device, and program
US20190253737A1 (en) Video encoding method, video decoding method, video encoding device, video decoding device, and program
WO2014028631A1 (en) Signaling of temporal motion vector predictor (mvp) enable flag

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180710

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190709

Year of fee payment: 5