KR102546142B1 - 비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치 - Google Patents

비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치 Download PDF

Info

Publication number
KR102546142B1
KR102546142B1 KR1020187026075A KR20187026075A KR102546142B1 KR 102546142 B1 KR102546142 B1 KR 102546142B1 KR 1020187026075 A KR1020187026075 A KR 1020187026075A KR 20187026075 A KR20187026075 A KR 20187026075A KR 102546142 B1 KR102546142 B1 KR 102546142B1
Authority
KR
South Korea
Prior art keywords
block
reference block
division
division structure
unit
Prior art date
Application number
KR1020187026075A
Other languages
English (en)
Other versions
KR20180121908A (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 KR20180121908A publication Critical patent/KR20180121908A/ko
Application granted granted Critical
Publication of KR102546142B1 publication Critical patent/KR102546142B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

본 발명에 따른 디코딩 장치에 의하여 수행되는 비디오 디코딩 방법은 대상 블록에 대한 적어도 하나의 참조 블록을 도출하는 단계, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출하는 단계, 상기 도출된 분할 구조를 기반으로 상기 대상 블록을 다수의 세부 블록들로 분할하는 단계, 및 상기 다수의 세부 블록들을 디코딩하여 복원 샘플들을 생성하는 단계를 포함함을 특징으로 한다. 본 발명에 따르면, 주변 픽처의 참조 블록을 기반으로 현재 픽처의 분할 구조를 도출할 수 있으며, 이를 통하여 현재 픽처의 분할을 위하여 시그널링되는 부가 정보에 사용되는 데이터량을 줄이고, 전반적인 코딩 효율을 향상시킬 수 있다.

Description

비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치
본 발명은 비디오 코딩 기술에 관한 것으로서 보다 상세하게는 비디오 코딩 시스템에서 효율적인 블록 구조 도출에 기반한 코딩 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 영상 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다.
이에 따라, 고해상도, 고품질 영상의 정보를 효과적으로 전송하거나 저장하고, 재생하기 위해 고효율의 영상 압축 기술이 요구된다.
본 발명의 기술적 과제는 비디오 코딩 효율을 높이는 방법 및 장치를 제공함에 있다.
본 발명의 다른 기술적 과제는 픽처 내 블록 구조를 효율적으로 도출하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 주변 픽처들을 기반으로 현재 픽처의 블록 구조를 도출하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 주변 픽처의 분할 정보를 이용하여 현재 픽처를 분할하는 방법 및 장치를 제공함에 있다.
본 발명의 또 다른 기술적 과제는 적은 데이터를 가지고 현재 픽처의 분할을 수행하는 방법 및 장치를 제공함에 있다.
본 발명의 일 실시예에 따르면, 디코딩 장치에 의하여 수행되는 비디오 디코딩 방법을 제공한다. 상기 디코딩 방법은 대상 블록에 대한 적어도 하나의 참조 블록을 도출하는 단계, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출하는 단계, 상기 도출된 분할 구조를 기반으로 상기 대상 블록을 다수의 세부 블록들로 분할하는 단계, 및 상기 다수의 세부 블록들을 디코딩하여 복원 샘플들을 생성하는 단계를 포함함을 특징으로 한다.
본 발명의 다른 일 실시예에 따르면, 인코딩 장치에 의하여 수행되는 비디오 인코딩 방법을 제공한다. 상기 인코딩 방법은 대상 블록에 대한 적어도 하나의 참조 블록을 도출하는 단계, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출하는 단계, 상기 도출된 분할 구조를 기반으로 상기 대상 블록을 다수의 세부 블록들로 분할하는 단계, 및 상기 다수의 세부 블록들을 인코딩하여 인코딩 파라미터를 출력하는 단계를 포함함을 특징으로 한다.
본 발명에 따르면, 주변 픽처의 참조 블록을 기반으로 현재 픽처의 분할 구조를 도출할 수 있으며, 이를 통하여 현재 픽처의 분할을 위하여 시그널링되는 부가 정보에 사용되는 데이터량을 줄이고, 전반적인 코딩 효율을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 비디오 인코딩 장치를 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 비디오 디코딩 장치를 개략적으로 도시한 블록도이다.
도 3은 고정 블록 분할 구조와 가변 블록 분할 구조의 예를 나타낸다.
도 4는 코딩 유닛 분할의 개념을 나타낸다.
도 5는 코딩 유닛 분할의 예를 나타낸다.
도 6은 단위블록의 정방향 분할 및 비정방향 분할의 예를 나타낸다.
도 7은 단위 블록 분할에 필요한 정보의 예를 나타낸다.
도 8은 주변 픽처의 참조 블록과 그에 대응하는 현재 픽처의 대상 블록을 예시적으로 나타낸다.
도 9는 복수의 참조 블록을 기반으로 대상 블록의 분할 구조를 도출하는 예를 나타낸다.
도 10은 랜덤 억세스 형태로 픽처를 코딩하기 위한 순서 및 출력 순서의 일 예를 나타낸다.
도 11은 블록 분할 구조 통합의 다양한 예를 나타낸다.
도 12는 통합 블록 분할 구조 도출의 예를 나타낸다.
도 13은 기존의 분할 정보의 데이터량과 본 발명에 따른 분할 정보의 데이터량 비교를 예시적으로 나타낸다.
도 14는 본 발명에 따른 비디오 인코딩 방법의 일 예를 개략적으로 나타낸다.
도 15는 본 발명에 따른 비디오 디코딩 방법의 일 예를 개략적으로 나타낸다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니다. 본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
한편, 본 발명에서 설명되는 도면상의 각 구성들은 비디오 인코딩 장치/디코딩 장치에서 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명에 포함된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예를 보다 상세하게 설명하고자 한다.
도 1은 본 발명의 일 실시예에 따른 비디오 인코딩 장치를 개략적으로 도시한 블록도이다.
도 1을 참조하면, 인코딩 장치(100)는 픽처 분할부(105), 예측부(110), 변환부(115), 양자화부(120), 재정렬부(125), 엔트로피 인코딩부(130), 역양자화부(135), 역변환부(140), 필터부(145) 및 메모리(150)를 구비한다.
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 단위 블록으로 분할할 수 있다. 이때, 처리 단위로서의 블록은 예측 유닛(Prediction Unit, PU)일 수도 있고, 변환 유닛(Transform Unit, TU)일 수도 있으며, 코딩 유닛(Coding Unit, CU)일 수도 있다. 픽처는 복수의 코딩 트리 유닛(Coding Tree Unit, CTU)들로 구성될 수 있으며, 각각의 CTU는 쿼드 트리(quad-tree) 구조로 CU들로 분할(split)될 수 있다. CU는 보다 하위(deeper) 뎁스의 CU들로 쿼드 트리 구조로 분할될 수도 있다. PU 및 TU는 CU로부터 획득될 수 있다. 예를 들어, PU는 CU로부터 대칭 또는 비대칭 사각형 구조로 파티셔닝(partitioning)될 수 있다. 또한 TU는 CU로부터 쿼드 트리 구조로 분할될 수도 있다. CTU는 CTB(coding tree block)에 대응될 수 있고, CU는 CB(coding block)에 대응될 수 있고, PU는 PB(prediction block)에 대응될 수 있고, TU는 TB(transform block)에 대응될 수 있다.
예측부(110)는 후술하는 바와 같이, 인터 예측을 수행하는 인터 예측부와 인트라 예측을 수행하는 인트라 예측부를 포함한다. 예측부(110)는, 픽처 분할부(105)에서 픽처의 처리 단위에 대하여 예측을 수행하여 예측 샘플(또는 예측 샘플 어레이)을 포함하는 예측 블록을 생성한다. 예측부(110)에서 픽처의 처리 단위는 CU일 수도 있고, TU일 수도 있고, PU일 수도 있다. 또한, 예측부(110)는 해당 처리 단위에 대하여 실시되는 예측이 인터 예측인지 인트라 예측인지를 결정하고, 각 예측 방법의 구체적인 내용(예컨대, 예측 모드 등)을 정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 예측 방법의 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 PU 단위로 결정되고, 예측의 수행은 TU 단위로 수행될 수도 있다.
인터 예측을 통해서는 현재 픽처의 이전 픽처 및/또는 이후 픽처 중 적어도 하나의 픽처의 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다. 또한, 인트라 예측을 통해서는 현재 픽처 내의 픽셀 정보를 기초로 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 예측의 방법으로서, 스킵(skip) 모드, 머지(merge) 모드, AMVP(Advanced Motion Vector Prediction) 등을 이용할 수 있다. 인터 예측에서는 PU에 대하여, 참조 픽처를 선택하고 PU에 대응하는 참조 블록을 선택할 수 있다. 참조 블록은 정수 픽셀(또는 샘플) 또는 분수 픽셀(또는 샘플) 단위로 선택될 수 있다. 이어서, PU와의 레지듀얼(residual) 신호가 최소화되며 움직임 벡터 크기 역시 최소가 되는 예측 블록이 생성된다. 본 명세서에서 픽셀(pixel), 펠(pel) 및 샘플(sample)은 서로 혼용될 수 있다.
예측 블록은 정수 픽셀 단위로 생성될 수도 있고, 1/2 픽셀 단위 또는 1/4 픽셀 단위와 같이 정수 이하 픽셀 단위로 생성될 수도 있다. 이때, 움직임 벡터 역시 정수 픽셀 이하의 단위로 표현될 수 있다.
인터 예측을 통해 선택된 참조 픽처의 인덱스, 움직임 벡터 차분(motion vector difference, MVD), 움직임 벡터 예측자(motion vector predictor, MVP), 레지듀얼 신호 등의 정보는 엔트로피 인코딩되어 디코딩 장치에 전달될 수 있다. 스킵 모드가 적용되는 경우에는 예측 블록을 복원 블록으로 할 수 있으므로, 레지듀얼을 생성, 변환, 양자화, 전송하지 않을 수 있다.
인트라 예측을 수행하는 경우에는, PU 단위로 예측 모드가 정해져서 PU 단위로 예측이 수행될 수 있다. 또한, PU 단위로 예측 모드가 정해지고 TU 단위로 인트라 예측이 수행될 수도 있다.
인트라 예측에서 예측 모드는 예를 들어 33개의 방향성 예측 모드와 적어도 2개 이상의 비방향성 모드를 가질 수 있다. 비방향성 모드는 DC 예측 모드 및 플래너 모드(Planar 모드)을 포함할 수 있다.
인트라 예측에서는 참조 샘플에 필터를 적용한 후 예측 블록을 생성할 수 있다. 이때, 참조 샘플에 필터를 적용할 것인지는 현재 블록의 인트라 예측 모드 및/또는 사이즈에 따라 결정될 수 있다.
생성된 예측 블록과 원본 블록 사이의 레지듀얼 값(레지듀얼 블록 또는 레지듀얼 신호)은 변환부(115)로 입력된다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 레지듀얼 값과 함께 엔트로피 인코딩부(130)에서 인코딩되어 디코딩 장치에 전달된다.
변환부(115)는 변환 블록 단위로 레지듀얼 블록에 대한 변환을 수행하고 변환 계수를 생성한다.
변환 블록은 샘플들의 직사각형 블록으로서 동일한 변환이 적용되는 블록이다. 변환 블록은 변환 유닛(TU)일 수 있으며, 쿼드 트리(quad tree) 구조를 가질 수 있다.
변환부(115)는 레지듀얼 블록에 적용된 예측 모드와 블록의 크기에 따라서 변환을 수행할 수 있다.
예컨대, 레지듀얼 블록에 인트라 예측이 적용되었고 블록이 4x4의 레지듀얼 배열(array)이라면, 레지듀얼 블록을 DST(Discrete Sine Transform)를 이용하여 변환하고, 그 외의 경우라면 레지듀얼 블록을 DCT(Discrete Cosine Transform)를 이용하여 변환할 수 있다.
변환부(115)는 변환에 의해 변환 계수들의 변환 블록을 생성할 수 있다.
양자화부(120)는 변환부(115)에서 변환된 레지듀얼 값들, 즉 변환 계수들을 양자화하여 양자화된 변환 계수를 생성할 수 있다. 양자화부(120)에서 산출된 값은 역양자화부(135)와 재정렬부(125)에 제공된다.
재정렬부(125)는 양자화부(120)로부터 제공된 양자화된 변환 계수를 재정렬한다. 양자화된 변환 계수를 재정렬함으로써 엔트로피 인코딩부(130)에서의 인코딩 효율을 높일 수 있다.
재정렬부(125)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원 블록 형태의 양자화된 변환 계수들을 1차원의 벡터 형태로 재정렬할 수 있다.
엔트로피 인코딩부(130)는 재정렬부(125)에 의해 재정렬된 양자화된 변환 값들 또는 코딩 과정에서 산출된 인코딩 파라미터 값 등을 기초로 심볼(symbol)을 확률 분포에 따라 엔트로피 코딩하여 비트스트림(bitstream)을 출력할 수 있다. 엔트로피 인코딩 방법은 다양한 값을 갖는 심볼을 입력 받아, 통계적 중복성을 제거하면서, 디코딩 가능한 2진수의 열로 표현하는 방법이다.
여기서, 심볼이란 인코딩/디코딩 대상 구문 요소(syntax element) 및 코딩 파라미터(coding parameter), 레지듀얼 신호(residual signal)의 값 등을 의미한다. 인코딩 파라미터는 인코딩 및 디코딩에 필요한 매개변수로서, 구문 요소와 같이 인코딩 장치에서 인코딩되어 디코딩 장치로 전달되는 정보뿐만 아니라, 인코딩 혹은 디코딩 과정에서 유추될 수 있는 정보를 포함할 수 있으며 영상을 인코딩하거나 디코딩할 때 필요한 정보를 의미한다. 인코딩 파라미터는 예를 들어 인트라/인터 예측모드, 이동/움직임 벡터, 참조 영상 색인, 코딩 블록 패턴, 잔여 신호 유무, 변환 계수, 양자화된 변환 계수, 양자화 파라미터, 블록 크기, 블록 분할 정보 등의 값 또는 통계를 포함할 수 있다. 또한 잔여 신호는 원신호와 예측 신호의 차이를 의미할 수 있고, 또한 원신호와 예측 신호의 차이가 변환(transform)된 형태의 신호 또는 원신호와 예측 신호의 차이가 변환되고 양자화된 형태의 신호를 의미할 수도 있다. 잔여 신호는 블록 단위에서는 잔여 블록이라 할 수 있고, 샘플 단위에서는 잔여 샘플이라고 할 수 있다.
엔트로피 인코딩이 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 인코딩 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 인코딩을 통해서 영상 인코딩의 압축 성능이 높아질 수 있다.
엔트로피 인코딩을 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 인코딩 방법이 사용될 수 있다. 예를 들어, 엔트로피 인코딩부(130)에는 가변 길이 코딩(VLC: Variable Length Coding/Code) 테이블과 같은 엔트로피 인코딩을 수행하기 위한 테이블이 저장될 수 있고, 엔트로피 인코딩부(130)는 저장된 가변 길이 코딩(VLC) 테이블을 사용하여 엔트로피 인코딩을 수행할 수 있다. 또한 엔트로피 인코딩부(130)는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출(derive)한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 인코딩을 수행할 수도 있다.
또한, 엔트로피 인코딩부(130)는 필요한 경우에, 전송하는 파라미터 셋(parameter set) 또는 신택스에 일정한 변경을 가할 수도 있다.
역양자화부(135)는 양자화부(120)에서 양자화된 값(양자화된 변환 계수)들을 역양자화하고, 역변환부(140)는 역양자화부(135)에서 역양자화된 값들을 역변환한다.
역양자화부(135) 및 역변환부(140)에서 생성된 레지듀얼 값(또는 레지듀얼 샘플 또는 레지듀얼 샘플 어레이)과 예측부(110)에서 예측된 예측 블록이 합쳐져 복원 샘플(또는 복원 샘플 어레이)를 포함하는 복원 블록(Reconstructed Block)이 생성될 수 있다.
도 1에서는 가산기를 통해서, 레지듀얼 블록과 예측 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수도 있다.
필터부(145)는 디블록킹 필터, ALF(Adaptive Loop Filter), SAO(Sample Adaptive Offset)를 복원된 픽처에 적용할 수 있다.
디블록킹 필터는 복원된 픽처에서 블록 간의 경계에 생긴 왜곡을 제거할 수 있다. ALF(Adaptive Loop Filter)는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. ALF는 고효율을 적용하는 경우에만 수행될 수도 있다. SAO는 디블록킹 필터가 적용된 레지듀얼 블록에 대하여, 픽셀 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band Offset), 엣지 오프셋(Edge Offset) 등의 형태로 적용된다.
메모리(150)는 필터부(145)를 통해 산출된 복원 블록 또는 픽처를 저장할 수 있다. 메모리(150)에 저장된 복원 블록 또는 픽처는 인터 예측을 수행하는 예측부(110)에 제공될 수 있다.
도 2는 본 발명의 일 실시예에 따른 비디오 디코딩 장치를 개략적으로 나타낸 블록도이다. 도 2를 참조하면, 비디오 디코딩 장치(200)는 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 메모리(240)를 포함할 수 있다.
비디오 인코딩 장치에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 비디오 인코딩 장치에서 영상 정보가 처리된 절차에 따라서 디코딩될 수 있다.
엔트로피 디코딩부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 디코딩하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 디코딩 방법은 2진수의 열을 입력 받아 각 심볼들을 생성하는 방법이다. 엔트로피 디코딩 방법은 상술한 엔트로피 인코딩 방법과 유사하다.
예컨대, 비디오 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CAVLC 등의 가변 길이 코딩(Variable Length Coding: VLC, 이하 'VLC' 라 함)가 사용된 경우에, 엔트로피 디코딩부(210)도 인코딩 장치에서 사용한 VLC 테이블과 동일한 VLC 테이블로 구현하여 엔트로피 디코딩을 수행할 수 있다. 또한, 비디오 인코딩 장치에서 엔트로피 인코딩을 수행하기 위해 CABAC을 이용한 경우에, 엔트로피 디코딩부(210)는 이에 대응하여 CABAC을 이용한 엔트로피 디코딩을 수행할 수 있다.
보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다.
엔트로피 디코딩부(210)에서 디코딩된 정보 중 예측 블록을 생성하기 위한 정보는 예측부(230)로 제공되고, 엔트로피 디코딩부(210)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수는 재정렬부(215)로 입력될 수 있다.
재정렬부(215)는 엔트로피 디코딩부(210)에서 엔트로피 디코딩된 비트스트림의 정보, 즉 양자화된 변환 계수를 인코딩 장치에서 재정렬한 방법을 기초로 재정렬할 수 있다.
재정렬부(215)는 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부(215)는 현재 블록(변환 블록)에 적용된 예측 모드와 변환 블록의 크기를 기반으로 계수에 대한 스캐닝을 수행하여 2 차원 블록 형태의 계수(양자화된 변환 계수) 배열(array)을 생성할 수 있다.
역양자화부(220)는 인코딩 장치에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 비디오 인코딩 장치에서 수행된 양자화 결과에 대해, 인코딩 장치의 변환부가 수행한 DCT 및 DST에 대해 역DCT 및/또는 역DST를 수행할 수 있다.
역변환은 인코딩 장치에서 결정된 전송 단위 또는 영상의 분할 단위를 기초로 수행될 수 있다. 인코딩 장치의 변환부에서 DCT 및/또는 DST는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 선택적으로 수행될 수 있고, 디코딩 장치의 역변환부(225)는 인코딩 장치의 변환부에서 수행된 변환 정보를 기초로 역변환을 수행할 수 있다.
예측부(230)는 엔트로피 디코딩부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(240)에서 제공된 이전에 디코딩된 블록 및/또는 픽처 정보를 기초로 예측 샘플(또는 예측 샘플 어레이)를 포함하는 예측 블록을 생성할 수 있다.
현재 PU에 대한 예측 모드가 인트라 예측(intra prediction) 모드인 경우에, 현재 픽처 내의 픽셀 정보를 기초로 예측 블록을 생성하는 인트라 예측을 수행할 수 있다.
현재 PU에 대한 예측 모드가 인터 예측(inter prediction) 모드인 경우에, 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처에 포함된 정보를 기초로 현재 PU에 대한 인터 예측을 수행할 수 있다. 이때, 비디오 인코딩 장치에서 제공된 현재 PU의 인터 예측에 필요한 움직임 정보, 예컨대 움직임 벡터, 참조 픽처 인덱스 등에 관한 정보는 인코딩 장치로부터 수신한 스킵 플래그, 머지 플래그 등을 확인하고 이에 대응하여 유도될 수 있다.
현재 픽처에 대한 인터 예측 시, 현재 블록과의 레지듀얼(residual) 신호가 최소화되며 움직임 벡터 크기 역시 최소가 되도록 예측 블록을 생성할 수 있다.
한편, 움직임 정보 도출 방식은 현재 블록의 예측 모드에 따라 달라질 수 있다. 인터 예측을 위해 적용되는 예측 모드에는 AMVP(Advanced Motion Vector Prediction) 모드, 머지(merge) 모드 등이 있을 수 있다.
일 예로, 머지 모드가 적용되는 경우, 인코딩 장치 및 디코딩 장치는 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 머지 후보 리스트를 생성할 수 있다. 머지 모드에서는 머지 후보 리스트에서 선택된 후보 블록의 움직임 벡터가 현재 블록의 움직임 벡터로 사용된다. 인코딩 장치는 상기 머지 후보 리스트에 포함된 후보 블록들 중에서 선택된 최적의 움직임 벡터를 갖는 후보 블록을 지시하는 머지 인덱스를 디코딩 장치로 전송할 수 있다. 이 때, 디코딩 장치는 상기 머지 인덱스를 이용하여, 현재 블록의 움직임 벡터를 도출할 수 있다.
다른 예로, AMVP(Advanced Motion Vector Prediction) 모드가 적용되는 경우, 인코딩 장치 및 디코딩 장치는 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 움직임 벡터 예측자 후보 리스트를 생성할 수 있다. 즉, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터는 움직임 벡터 후보로 사용될 수 있다. 인코딩 장치는 상기 리스트에 포함된 움직임 벡터 후보 중에서 선택된 최적의 움직임 벡터를 지시하는 예측 움직임 벡터 인덱스를 디코딩 장치로 전송할 수 있다. 이 때, 디코딩 장치는 상기 움직임 벡터 인덱스를 이용하여, 움직임 벡터 후보 리스트에 포함된 움직임 벡터 후보 중에서, 현재 블록의 예측 움직임 벡터를 선택할 수 있다.
인코딩 장치는 현재 블록의 움직임 벡터(MV)와 움직임 벡터 예측자(MVP) 간의 움직임 벡터 차분(MVD)을 구할 수 있고, 이를 인코딩하여 디코딩 장치로 전송할 수 있다. 즉, MVD는 현재 블록의 MV에서 MVP를 뺀 값으로 구해질 수 있다. 이 때, 디코딩 장치는 수신된 움직임 벡터 차분을 디코딩할 수 있고, 디코딩된 움직임 벡터 차분과 움직임 벡터 예측자의 가산을 통해 현재 블록의 움직임 벡터를 도출할 수 있다.
인코딩 장치는 또한 참조 픽처를 지시하는 참조 픽처 인덱스 등을 디코딩 장치에 전송할 수 있다.
디코딩 장치의 예측부(230)는 주변 블록의 움직임 정보들을 이용하여 현재 블록의 움직임 벡터를 예측하고, 인코딩 장치로부터 수신한 레지듀얼을 이용하여 현재 블록에 대한 움직임 벡터를 유도할 수 있다. 디코딩 장치는 유도한 움직임 벡터와 인코딩 장치로부터 수신한 참조 픽처 인덱스 정보를 기반으로 현재 블록에 대한 예측 샘플(또는 예측 샘플 어레이)을 생성할 수 있다.
디코딩 장치는 예측 샘플(또는 예측 샘플 어레이)과 인코딩 장치로부터 전송되는 변환 계수들로부터 획득한 레지듀얼 샘플(레지듀얼 샘플 어레이)을 더하여 복원 샘플(또는 복원 샘플 어레이)를 생성할 수 있다. 이를 기반으로 복원 블록 및 복원 픽처가 생성될 수 있다.
상술한 AMVP 및 머지 모드에서는, 현재 블록의 움직임 정보를 도출하기 위해, 복원된 주변 블록의 움직임 정보 및/또는 콜 블록의 움직임 정보가 사용될 수 있다.
인터 예측에 이용되는 다른 모드 중 하나인 스킵 모드의 경우에, 주변 블록의 정보를 그대로 현재 블록에 이용할 수 있다. 따라서 스킵 모드의 경우에, 인코딩 장치는 현재 블록의 움직임 정보로서 어떤 블록의 움직임 정보를 이용할 것인지를 지시하는 정보 외에 레지듀얼 등과 같은 신택스 정보를 디코딩 장치에 전송하지 않는다.
복원 블록은 예측부(230)에서 생성된 예측 블록과 역변환부(225)에서 제공된 레지듀얼 블록을 이용해 생성될 수 있다. 도 2에서는 가산기에서 예측 블록과 레지듀얼 블록이 합쳐져 복원 블록이 생성되는 것으로 설명하고 있다. 이때, 가산기를 복원 블록을 생성하는 별도의 유닛(복원 블록 생성부)로 볼 수 있다. 여기서 상기 복원 블록은 상술한 바와 같이 복원 샘플(또는 복원 샘플 어레이)를 포함하고, 상기 예측 블록은 예측 샘플(또는 예측 샘플 어레이)를 포함하고, 상기 레지듀얼 블록은 레지듀얼 샘플(또는 레지듀얼 샘플 어레이)를 포함할 수 있다. 따라서, 복원 샘플(또는 복원 샘플 어레이)은 대응하는 예측 샘플(또는 예측 샘플 어레이)과 레지듀얼 샘플(레지듀얼 샘플 어레이)이 합쳐서 생성된다고 표현될 수도 있다.
스킵 모드가 적용되는 블록에 대하여는 레지듀얼이 전송되지 않으며 예측 블록을 복원 블록으로 할 수 있다.
복원된 블록 및/또는 픽처는 필터부(235)로 제공될 수 있다. 필터부(235)는 복원된 블록 및/또는 픽처에 디블록킹 필터링, SAO(Sample Adaptive Offset) 및/또는 ALF 등을 적용할 수 있다.
메모리(240)는 복원된 픽처 또는 블록을 저장하여 참조 픽처 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽처를 출력부로 제공할 수 있다.
디코딩 장치(200)에 포함되어 있는 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 및 메모리(240) 중 영상의 디코딩에 직접적으로 관련된 구성요소들, 예컨대, 엔트로피 디코딩부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235) 등을 다른 구성요소와 구분하여 디코더 또는 디코딩부로 표현할 수 있다.
또한, 디코딩 장치(200)는 비트스트림에 포함되어 있는 인코딩된 영상에 관련된 정보를 파싱(parsing)하는 도시되지 않은 파싱부를 더 포함할 수 있다. 파싱부는 엔트로피 디코딩부(210)를 포함할 수도 있고, 엔트로피 디코딩부(210)에 포함될 수도 있다. 이러한 파싱부는 또한 디코딩부의 하나의 구성요소로 구현될 수도 있다.
영상을 효율적으로 압축하기 위하여 블록 단위의 분할 구조가 사용된다. 픽처는 동일 크기를 갖는 복수의 단위 블록으로 구분될 수 있으며, 상기 단위 블록은 재귀적으로 분할되어, 각 단위블록마다 코딩 및 압축에 가장 적합한 형태의 블록으로 분할될 수 있다. 여기서 상기 단위블록은 코딩 트리 유닛(CTU)에 대응될 수 있고, 상기 단위블록에서 추가적으로 분할된 블록은 코딩 유닛에 대응될 수 있다. 여기서 코딩 유닛은 상술한 영상의 처리 과정, 예컨대 인트라(intra)/인터(inter) 예측, 변환(transform), 양자화(quantization) 및/또는 엔트로피 코딩(entropy coding) 등의 과정에서 영상을 처리하기 위한 기본 단위를 의미할 수 있다.
도 3은 고정 블록 분할 구조와 가변 블록 분할 구조의 예를 나타낸다.
도 3을 참조하면, 하나의 픽처는 (a)와 같이 고정 블록 분할 구조로 분할되거나, (b)와 같이 가변 블록 분할 구조로 분할될 수 있다. 고정 블록 분할 구조의 경우, 블록 분할을 위한 부가 정보(side information)을 최소화할 수 있다는 장점이 있으며, 가변 블록 분할 구조의 경우 부가 정보는 상대적으로 늘어나지만, 영상 특성을 고려하여 최적 사이즈의 코딩 유닛이 결정될 수 있는 장점이 있다.
도 4는 코딩 유닛 분할의 개념을 나타낸다.
코딩 유닛은 사각형 형태를 가질 수 있고, 하나의 코딩 유닛은 다시 여러 개의 코딩 유닛으로 분할될 수 있다. 예를 들어, 2Nx2N 크기를 가지는 하나의 코딩 유닛은 다시 네 개의 NxN 크기를 가지는 코딩 유닛으로 분할될 수 있다. 이러한 코딩 유닛의 분할 과정은 재귀적(recursive)으로 이루어질 수 있으며, 모든 코딩 유닛들이 동일한 형태로 분할될 필요는 없다. 다만, 부호화 및 처리 과정에서의 편의를 위하여 코딩 유닛의 최대 크기 또는 최소 크기에 대한 제한이 있을 수 있다. 코딩 유닛의 최대(largest) 크기가 정해진 경우 그것을 최대 코딩 유닛(largest coding unit, LCU)의 크기라고 하며, 코딩 유닛의 최소(smallest) 크기가 정해진 경우 그것을 최소 코딩 유닛(smallest coding unit, SCU)의 크기라고 한다. 여기서 최대 코딩 유닛은 코딩 트리 유닛(CTU)으로 불릴 수 있으며, 코딩 트리 유닛은 코딩 트리 블록(CTB)으로, 코딩 유닛은 코딩 블록(CB)으로 불릴 수 있다.
하나의 코딩 유닛에 대하여, 해당 코딩 유닛이 분할 되는지 여부를 나타내는 정보를 지정할 수 있다. 예를 들어, 분할 여부를 나타내는 분할 플래그(split flag)의 값이 1이면 해당 코딩 유닛은 다시 4개의 코딩 유닛으로 나누어진다. 분할 플래그의 값이 0이면 해당 코딩 유닛은 더 이상 나누어지지 않고 해당 코딩 유닛에 대한 처리 과정이 수행될 수 있으며, 예측 및 변환 등이 해당 코딩 유닛을 기반으로 수행될 수 있다.
상술한 코딩 유닛의 분할 구조는 트리 구조를 이용하여 나타낼 수 있다. 예를 들어, 최대 코딩 유닛을 루트(root)로 하여 분할이 이루어질 수 있다. 현재 분할이 이루어지는 코딩 유닛은 부모 노드(parent node)가 되며, 부모 노드로부터 분할된 코딩 유닛은 자식 노드(child node)가 된다. 이때, 현재 분할이 이루어지는 코딩 유닛(부모 노드)은 분할된 코딩 유닛의 개수만큼 자식 노드를 가지게 된다. 그리고 더 이상 분할되지 않는 코딩 유닛은 리프 노드(leaf node)가 된다. 리프 노드는 자식 노드가 없는 노드를 말한다.
하나의 코딩 유닛에 대하여 정방형 분할이 이루어진다고 가정할 때, 하나의 코딩 유닛은 최대 4개의 하위 코딩 유닛으로 분할될 수 있으므로, 코딩 유닛의 분할 구조는 쿼드 트리(Quard tree) 구조가 될 것이다.
인코딩 장치에서는 비디오 영상의 특성(예를 들어, 해상도 등)에 따라서 혹은 부호화의 효율을 고려하여 최대 및 최소 코딩 유닛 크기를 결정하고, 이에 대한 정보 또는 이를 유도할 수 있는 정보가 비트스트림에 포함될 수 있다. 또한, 트리 구조를 갖는 코딩 유닛은 뎁스 정보를 가지고 계층적으로 분할될 수 있다. 각각의 분할된 하위 코딩 유닛은 뎁스 정보를 가질 수 있다. 뎁스 정보는 코딩 유닛이 분할된 횟수 및/또는 정도를 나타내므로, 하위 코딩 유닛의 크기에 관한 정보를 포함할 수도 있다.
예컨대, 최대 코딩 유닛 크기 및 트리의 최대 깊이가 정의되었으며 정방형 분할을 한다고 가정하면, 코딩 유닛 크기는 부모 노드 코딩 유닛 크기의 반이 되므로, 최대 코딩 유닛 크기 및 최대 깊이 정보를 이용하면 최소 코딩 유닛 크기를 구할 수 있다. 또는 역으로, 최소 코딩 유닛 크기 및 트리의 최대 깊이를 미리 정의하면 최대 코딩 유닛 크기를 유도하여 이용할 수 있다. 정방형 분할에서 유닛의 크기는 2의 배수 형태로 구할 수 있기 때문에, 실제 코딩 유닛의 크기는 2를 밑으로 하는 로그 값으로 나타내어 전송됨으로써 전송 효율을 높일 수 있다.
디코딩 장치에서는 현재 코딩 유닛이 분할 되었는지를 나타내는 분할 정보를 획득할 수 있다. 이러한 분할 정보가 특정 조건하에서 획득하게 하거나, 또는 인코딩 장치에서 특정 조건하에서 전송하게 하면, 부호화/복호화 효율을 높일 수 있다. 예컨대, 현재 코딩 유닛이 최소 코딩 유닛(SCU)이라면 더 이상 작은 코딩 유닛으로 분할되지 않으므로, 이러한 경우에는 분할 정보를 획득할 필요가 없다.
도 4를 참조하면, 가장 상위 코딩 유닛(410)은 루트 노드로 불릴 수 있으며, 부모 노드를 가지지 않는다. 따라서, 가장 상위 코딩 유닛(410)은 자신보다 상위 코딩 유닛으로부터 분할되지 않은 유닛이며, 최대 코딩 유닛(LCU)일 수 있다. 예컨대, 가장 상위 코딩 유닛(410)은 가장 작은 뎁스 값을 가질 수 있다.
가장 상위 코딩 유닛(410)은 쿼드 트리 구조로 분할될 수 있으며, 그 결과 레벨1의 뎁스를 가지는 4개의 하위 코딩 유닛들(420)이 생성될 수 있다. 여기서, 레벨1의 뎁스를 가지는 하위 코딩 유닛들(420) 중 적어도 하나는 쿼드 트리 구조로 분할될 수도 있고, 또는 더 이상 분할되지 않을 수도 있다. 즉, 가장 상위 코딩 유닛(410)을 기준으로 코딩 유닛의 최대 뎁스(또는, 최대 레벨)에 도달할 때까지 코딩 유닛은 재귀적으로 쿼드 트리 구조로 분할될 수 있다.
예컨대, 도 4에 도시된 바와 같이, 코딩 유닛의 최대 허용 가능한 깊이가 레벨3이라고 하면, 가장 상위 코딩 유닛(410)은 레벨3의 깊이까지 재귀적으로 쿼드 트리 구조로 분할되어 하위 코딩 유닛들(420, 430, 440)이 생성될 수 있다. 여기서, 하위 코딩 유닛들(420, 430, 3440)은 가장 상위 코딩 유닛(즉, 하나의 LCU) 내에서 분할되어 도 4의 450과 같은 분할 형태를 가질 수 있다.
도 5는 코딩 유닛 분할의 예를 나타낸다.
도 5를 참조하면, 뎁스 0의 코딩 유닛(CU)는 분할 플래그(split flag)가 0인 경우 하위 코딩 유닛들로 분할되지 않고, 분할 플래그가 1인 경우 뎁스 1의 4개의 하위 코딩 유닛들로 쿼드 트리 구조로 분할된다. 여기서 4개의 하위 코딩 유닛들은 래스터 스캔 순서(raster scan order)로 0부터 3까지 인덱싱될 수 있다.
예를 들어, 뎁스 1의 2번 코딩 유닛을 기준으로 볼 때, 해당 코딩 유닛(410)의 분할 플래그가 0인 경우 하위 코딩 유닛들로 분할되지 않고, 분할 플래그가 1인 경우 재귀적으로 뎁스 2의 4개의 하위 코딩 유닛들로 쿼드 트리 구조로 분할된다. 최대 뎁스(또는 마지막 뎁스)에 도달할 때까지 코딩 유닛은 재귀적으로 쿼드 트리 구조로 분할될 수 있다.
이와 같은 CU 쿼드 트리 분할 방법에 따르면, 움직임이 적고 텍스처가 단순한 영역에서는 큰 사이즈의 코딩 유닛을 사용하여 중복되는 부가 정보(side information)를 최소화 하는 한편, 다양한 움직임이 많고 텍스처가 복잡한 영역에서는 작은 사이즈의 코딩 유닛을 기반으로 보다 정확한 예측을 통해 레지듀얼(residual) 신호를 최소화 할 수 있는 장점이 있다.
한편, 본 발명에 따른 블록 분할은 상술한 바와 같은 정방형 구조의 블록 분할을 포함할 뿐 아니라, 정방형 분할 외에 다양한 직사각형 분할을 포함하거나, 정방형 및 직사각형 형태의 분할을 조합하여 포함할 수도 있다.
도 6은 단위블록의 정방향 분할 및 비정방향 분할의 예를 나타낸다.
도 6을 참조하면, 본 발명에 따른 단위블록은 (a)와 같이 정방형 분할을 포함할 수도 있고, (b) 내지 (e)와 같이 다양한 형태의 비정방형 분할을 포함할 수도 있다.
한편, 상술한 바와 같이 단위 블록에 대한 분할 정보(ex. split flag)는 분할에 위하여 도출된 블록(ex. CU)이 더 이상 분할되지 않는 상태가 될 때까지 전송된다.
도 7은 단위 블록 분할에 필요한 정보의 예를 나타낸다.
도 7을 참조하면, (a)와 같은 분할 구조를 갖는 단위 블록의 경우, (b) 내지 (e)와 같이 매 단계에서 추가적인 분할이 일어날 지 여부가 판단되어야 한다. 즉, 상기 단위 블록의 경우 (b) 내지 (e)의 1 내지 15까지의 15개의 분할 정보가 필요하게 된다. 여기서 1 내지 15는 각 숫자가 나타내는 영역이 추가적으로 분할되는지 여부를 나타내는 정보가 존재함을 의미한다. 상기 분할 정보는 분할이 가능한 매 블록마다 플래그 또는 인덱스 형태로 전송될 수 있으며, 영상 또는 픽처의 크기가 커지면 상기 분할 정보의 양 또한 증가하게 된다.
본 발명에서는 현재 픽처에 시간적으로(temporally) 인접하거나 근접한 시간적 주변 픽처의 블록 분할 구조 또는 정보를 재사용하거나, 시간적 주변 픽처의 블록 분할 구조 또는 정보를 기반으로 추가적인 확장을 하여, 대상 블록의 분할 구조를 표현하기 위해 사용되는 데이터량을 감소시키는 방법을 제안한다. 이를 통하여 결과적으로 동영상 압축성능을 높이고 인코딩/디코딩 복잡도를 감소시킬 수 있다. 이하 주변 픽처라 함은 시간적 주변 픽처를 포함할 수 있다. 또한 이하 대상 블록이라 함은 상술한 단위 블록(또는 CTU)를 포함할 수도 있고, 임의의 크기의 블록을 포함할 수도 있다.
도 8은 주변 픽처의 참조 블록과 그에 대응하는 현재 픽처의 대상 블록을 예시적으로 나타낸다.
도 8을 참조하면, 대상 블록의 분할 구조의 일부 또는 전부는 주변 픽처의 참조 블록으로부터 유도될 수 있다. 이 경우 대상 블록의 분할정보는 전송된 정보를 통하여 획득하는 대신 주변 픽처의 참조 블록에 대하여 사용된 분할 정보를 기반하여 얻을 수 있다. 이 경우 상기 참조 블록은 상기 대상 블록에 대한 상기 주변 픽처의 동일 위치 또는 특정 위치의 단위 블록 또는 특정 크기의 블록일 수 있다. 참조 블록은 경우에 따라 참조 단위 블록이라고 불릴 수도 있다. 참조 블록에 사용된 분할 정보가 그대로 상기 대상 블록에 적용될 수도 있고, 또는 일정 기준에 따라 상기 분할 정보를 기반으로 리파인된 분할 정보가 상기 대상 블록에 적용될 수도 있다. 이 경우 예를 들어, 뎁스 레벨 n까지의 분할 정보는 그대로 사용하고, 뎁스 레벨 n+1부터의 분할 정보는 별도로 시그널링되거나 특정 기준에 따라 정의될 수도 있다. 여기서 n은 0보다 크고 최대 뎁스 레벨의 값보다 작은 임의의 정수일 수 있다. 예를 들어, n은 1, 2, 3 중 어느 하나일 수 있다.
한편, 주변 픽처의 블록 구조를 기반으로 현재 픽처의 블록 구조를 유도하기 위한 적용 단위는 다음과 같을 수 있다.
a. 픽처 전체
b. 하나 이상의 단위 블록
c. 특정 크기의 블록
상기 각 단위에 대해, 주변 픽처의 블록 분할 정보를 현재 픽처(또는 현재 단위 블록 등)에 적용할지 여부는, 별도의 정보 전송을 통하여 결정되거나, 또는 특정 기준에 따라 유도하여 결정되거나, 혹은 상기 두 가지 방법이 혼합되어 결정될 수 있다. 이하 대상 블록을 기준으로 설명하며, 본 발명에 따른 상기 대상 블록은 픽처 전체, 단위 블록 또는 특정 크기의 블록을 포함할 수 있다.
예를 들어, 상기 전송되는 정보는 주변 픽처의 참조 블록의 분할 구조를 기반으로 대상 블록의 분할 구조를 도출하는지 여부를 나타내는 플래그 정보(ex. 블록 구조 예측 플래그)가 될 수 있고, 또는 특정 픽처 또는 특정 참조 블록을 가리키는 인덱스 정보가 될 수도 있다.
또한 예를 들어, 주변 픽처의 참조 블록의 분할 정보를 대상 블록에 적용할지 여부를, 상기 특정 기준에 따라 유도하여 결정하는 경우, 상기 특정 기준은 다음을 포함할 수 있다.
a. 주변 픽처들 내 참조 블록들 간 분할 구조 변화량
b. 하나 이상의 주변 픽처 내 참조 블록의 움직임 벡터 크기 및/또는 변화량
c. a와 b의 조합
상기 a의 경우, 현재 픽처가 코딩되기 전에 코딩된 둘 이상의 주변 픽처에 각각 존재하는 참조 블록들 간의 분할 구조 변화량이 미리 정의된 기준보다 적은 경우, 상기 참조 블록들 중 적어도 하나에 대한 분할 정보를 기반으로 대상 블록의 분할 정보를 유도할 수 있다. 상기 참조 블록은 상기 대상 블록에 대한 상기 주변 픽처 내의 동일 위치 또는 특정 위치의 블록임은 상술한 바와 같다.
예를 들어, 현재 픽처가 코딩되기 전에 코딩된 주변 픽처가 2개(제1 주변 픽처 및 제2 주변 픽처) 있다고 가정하면, 대상 블록에 대응되는 참조 블록들은 상기 제1 주변 픽처 및 상기 제2 주변 픽처에 각각 하나씩 존재할 수 있다. 이 경우 상기 제1 주변 픽처에 존재하는 참조 블록을 제1 참조 블록, 상기 제2 주변 픽처에 존재하는 참조 블록을 제2 참조 블록이라 하면, 상기 제1 참조 블록 및 상기 제2 참조 블록을 기반으로 분할 구조 변화량을 검출할 수 있다. 일 예로, 상기 제1 참조 블록 및 상기 제2 참조 블록의 분할 구조가 같거나 거의 동일한 경우, 이는 상기 대상 블록이 위치한 영역이 변화가 적은 영역, 예를 들어 영상에서 움직이는 물체(object)가 있는 영역이 아니라 배경과 같은 영역임을 의미할 수 있다. 따라서 대상 블록 또한 상기 참조 블록들과 유사한 영상 특성을 가질 것으로 판단하고, 상기 참조 블록들 중 적어도 하나에 대한 분할 구조와 동일/유사한 블록 구조를 상기 대상 블록에 적용할 수 있다.
여기서, 상기 분할 구조 변화량은 다음과 같은 기준을 기반으로 결정될 수 있다. 일 예로, 상기 분할 구조 변화량은 전체 참조 블록들 간 동일하지 않은 분할 구조를 가진 영역의 면적을 기반으로 결정될 수 있다. 예를 들어, 제1 참조 블록 전체 영역 내에서 제2 참조 블록과 상이한 분할 구조를 갖는 영역이 미리 정의된 기준(예를 들어 10%) 이내일 때, 상기 참조 블록들 중 적어도 하나의 분할 정보를 기반으로 대상 블록의 분할 정보를 도출할 수 있다. 다른 예로, 상기 분할 구조 변화량은 상기 전체 참조 블록들 간에 동일하지 않은 영역을 표시하는 데 사용되는 정보량(예를 들어, split flag 또는 split index의 개수)을 기반으로 결정될 수 있다. 예를 들어, 제1 참조 블록 내 전체 분할 구조의 표현에 k(ex. 20)개의 분할 플래그가 사용되는데, 이 중에서 상기 제2 참조 블록과 상이한 분할 구조를 갖는 영역을 표시하기 위하여 사용된 분할 플래그의 개수가 미리 정의된 기준(ex. k/l; 20/10) 이내일 때, 상기 참조 블록들 중 적어도 하나의 분할 정보를 기반으로 대상 블록의 분할 정보를 도출할 수 있다.
상기 b의 경우, 현재 픽처가 코딩되기 전에 코딩된 주변 픽처에 존재하는 참조 블록의 움직임 벡터 크기가 미리 정의된 기준보다 작은 경우, 또는 상기 현재 픽처가 코딩되기 전에 코딩된 주변 픽처들에 각각 존재하는 참조 블록들 간의 움직임 벡터 변화량이 미리 정의된 기준보다 적은 경우, 상기 참조 블록들 중 적어도 하나에 대한 분할 정보를 기반으로 대상 블록의 분할 정보를 유도할 수 있다.
여기서 하나의 참조 블록이 다수의 블록들을 포함하고, 상기 다수의 블록에 대한 다수의 움직임 벡터가 존재하는 경우, 상기 하나의 참조 블록에 대한 대표 움직임 벡터 또는 대표 움직임 벡터 크기가 도출되어 사용될 수 있다. 여기서 상기 대표 움직임 벡터 및 상기 대표 움직임 벡터 크기는 상기 참조 블록 내 특정 위치의 움직임 벡터 및 그 크기를 나타낼 수도 있고, 또는 상기 대표 움직임 벡터 크기는 상기 다수의 움직임 벡터들의 절대값들의 평균 또는 중간값(median value)에 기반할 수도 있다. 예를 들어, DPB(decoded picture buffer) 내에 저장된 코딩된 픽처들에 대하여 m×m 영역(여기서 m은 2의 거듭제곱수, 예를 들어 m은 24=16) 단위로 하나의 움직임 벡터가 저장될 수 있다고 가정하면, 만약 참조 블록의 사이즈가 m×m인 경우 상기 참조 블록에 대하여 저장된 하나의 움직임 벡터가 상기 대표 움직임 벡터가 될 수 있다. 또는 참조 블록의 사이즈가 4m×4m인 경우 상기 참조 블록에 대하여 저장된 4개의 움직임 벡터들 중 특정 영역(예를 들어 좌상단 영역)에 대응하는 움직임 벡터가 상기 대표 움직임 벡터가 될 수도 있고, 또는 상기 4개의 움직임 벡터들의 절대값들의 평균 또는 중간값이 상기 대표 움직임 벡터 크기가 될 수도 있다. 또한, 제1 주변 픽처에 존재하는 제1 참조 블록, 제2 주변 픽처에 존재하는 제2 참조 블록이라 하면, 상기 제1 참조 블록 및 상기 제2 참조 블록을 기반으로 움직임 벡터 변화량을 검출할 수 있다. 이 경우 상술한 바와 같이 각 참조 블록별 대표 움직임 벡터를 검출하여 비교할 수도 있다.
여기서, 상기 참조 블록의 움직임 벡터 크기가 미리 정의된 기준보다 작거나, 또는 상기 제1 참조 블록 및 상기 제2 참조 블록의 움직임 벡터 변화량이 미리 정의된 기준보다 적은 경우, 이는 상기 대상 블록이 위치한 영역이 픽처가 바뀌더라도 거의 움직이거나 변경되지 않는 영역, 즉, 배경과 같은 영역일 가능성이 높음을 의미할 수 있다. 따라서 대상 블록 또한 상기 참조 블록들과 유사한 영상 특성을 가질 것으로 판단하고, 상기 참조 블록들 중 적어도 하나에 대한 분할 구조와 동일/유사한 블록 구조를 상기 대상 블록에 적용할 수 있다.
한편, 상기 참조 블록들 간 분할 구조 변화가 거의 없거나 작더라도, 움직임 벡터 차이는 클 수 있다. 예를 들어, 두 참조 블록들 간에 움직임 벡터의 방향 및 절대값이 서로 다른 경우에도, 블록 구조는 유사한 경우가 발생할 수 있다. 따라서, 이런 경우를 대비하여, 상술한 c와 같이 a, b의 방법을 조합하여, 참조 블록들 간 분할 구조 변화가 제1 임계값 이하이고, 상기 참조 블록들 중 적어도 하나의 움직임 벡터 크기가 제2 임계값보다 작거나 상기 참조 블록들 간의 움직임 벡터 변화량이 상기 제2 임계값보다 작은 경우에 한하여 상기 참조 블록들 중 적어도 하나에 대한 분할 구조와 동일/유사한 블록 구조를 상기 대상 블록에 적용할 수 있다. 일 예로, 적어도 하나의 참조 블록 내에서 움직임 벡터의 크기가 쿼터 펠(pel) 단위에서 4 미만이거나 참조 블록들 간 움직임 벡터 크기의 차이(또는 움직임 벡터 차이의 크기)가 쿼터 펠 단위에서 4 미만이고, 상기 참조 블록들 간 분할 구조가 동일하지 않은 영역의 비중이 10% 미만인 경우에, 상기 참조 블록들 중 적어도 하나에 대한 분할 구조와 동일/유사한 블록 구조를 상기 대상 블록에 적용할 수 있다.
상기 예시들에서 사용된 수치는 하나의 예일 뿐이며, 이러한 수치는 전체 영상에 대해 고정값으로 사용되거나, 또는 픽처나 슬라이스 또는 단위 블록별로 시그널링될 수 있다.
도 9는 복수의 참조 블록을 기반으로 대상 블록의 분할 구조를 도출하는 예를 나타낸다.
도 9를 참조하면, (b)는 대상 블록을 나타내고, (a), (c)는 대상 블록에 대응되는 주변 픽처들의 참조 블록들을 나타낸다. (a) 및 (c)에서 음영 부분은 분할 구조가 상이한 영역을 나타낸다. 즉, (a) 및 (c)에서 음영 부분을 제외한 나머지 부분들은 동일한 블록 분할 구조를 가진다. 따라서, (a) 및 (c)에서 동일한 분할 구조를 갖는 부분은 상기 대상 블록의 분할 구조로 이용할 수 있다.
한편, 상기 참조 블록들간에 분할 구조가 일치하지 않는 영역에 대응되는 상기 대상 블록의 영역에 대하여는 다음과 같은 방법을 적용할 수 있다.
a. 분할 구조를 표현하기 위한 정보 전송
b. 어떤 참조 블록의 분할 구조를 가져올 지에 대해 미리 정해진 기준에 따라 판단
c. 어떤 참조 블록의 분할 구조를 가져올 지에 대해 별도의 정보 전송
상기 a의 경우, 상기 참조 블록들간에 분할 구조가 일치하지 않는 영역에 대응되는 상기 대상 블록의 영역에 대하여 분할 구조를 나타내기 위한 하나 이상의 분할 정보(분할 플래그 또는 분할 인덱스 등)를 인코딩 장치에서 디코딩 장치로 전송할 수 있다. 이 경우 디코딩 장치는 상기 불일치 영역에 대응되는 상기 대상 블록의 영역에 대하여 상기 분할 정보를 기반으로 분할을 수행할 수 있다.
상기 b의 경우, 상기 참조 블록들간에 분할 구조가 일치하지 않는 영역에 대응되는 상기 대상 블록의 영역에 대하여 인코딩 장치 및 디코딩 장치는 미리 정해진 기준에 따라 분할 구조를 판단한다. 상기 미리 정해지 기준은 예를 들어, 현재 픽처에 대한 주변 픽처의 방향, 주변 픽처의 퀄리티, 해당 영역의 분할 정도, 상대적으로 다수의 주변 픽처에서 공통적으로 나타나는 분할 구조, 주변 픽처와 현재 픽처 사이의 거리, 등의 기준들 중 하나를 사용하거나 조합하여 결정될 수 있다.
도 10은 랜덤 억세스 형태로 픽처를 코딩하기 위한 순서 및 출력 순서의 일 예를 나타낸다. 도 10은 GOP(group of pictures)가 8인 경우의 예이다.
도 10을 참조하면, 픽처들의 코딩 순서와 출력 순서는 서로 상이할 수 있다. 상기 출력 순서는 POC(picture order count)에 기반할 수 있다. POC 3번 픽처를 현재 픽처로 고려하는 경우, 상기 참조 블록들간에 분할 구조가 일치하지 않는 영역에 대응되는 상기 대상 블록의 영역에 대하여 다음과 같은 기준들 중 적어도 하나 또는 다수의 기준들을 조합하여, 이를 기반으로 분할 구조를 판단할 수 있다.
(1) 복수의 주변 픽처가 존재할 때, 현재 픽처의 POC보다 낮은 POC 값을 갖는 픽처가 우선순위를 갖는다. 예를 들어, POC 1, 2, 4, 8의 픽처들이 현재 픽처(POC 3)의 주변 픽처들로 사용되는 경우, POC 1, 2번의 주변 픽처들이 POC 4, 8번 픽처들보다 우선순위를 갖는다.
(2) 복수의 주변 픽처가 존재할 때, 현재 픽처와 동일하거나 가장 근접한 퀄리티 기준을 가진 주변 픽처가 우선순위를 갖는다. 예를 들어, 픽처 퀄리티는 시간적 레이어(temporal layer) 및/또는 QP(quantization parameter)를 기반으로 결정될 수 있다. 높은 QP가 사용되는 경우 픽처 퀄리티는 낮아지며, 시간적 레이어가 증가함에 따라 QP가 증가한다. 따라서 도 10의 예시에서, POC 1번의 주변 픽처가 우선순위를 갖는다.
(3) 해당 영역의 분할 정도가 낮은 주변 픽처가 우선순위를 갖는다. 여기서 해당 영역이라 하면 주변 픽처들 간 분할 구조 불일치 영역을 나타낸다. 예를 들어, POC 2번 주변 픽처는 해당 영역이 분할되지 않았고, 나머지 주변 픽처들은 해당 영역이 분할되어 있다면, 상기 POC 2번 주변 픽처가 우선순위를 갖는다.
(3) 셋 이상의 주변 픽처가 존재할 때, 해당 영역에 대해 다수(majority)의 주변 픽처는 동일한 분할 구조를 갖고, 소수의 주변 픽처는 다른 분할 구조를 나타낸다면, 상기 다수의 주변 픽처에서 사용된 분할 구조가 우선순위를 갖는다. 여기서 해당 영역이라 하면 주변 픽처들 간 분할 구조 불일치 영역을 나타냄은 상술한 바와 같다. 예를 들어, 해당 영역에 대하여 상기 POC 1, 2, 4번 주변 픽처들은 동일한 분할 구조를 갖고, POC 8번 주변 픽처만 다른 분할 구조를 같는다면, POC 1, 2, 4번 주변 픽처에서 사용된 분할 구조가 우선하여 적용된다.
(4) 주변 픽처들 중 현재 픽처와 시간적으로 가장 가깝게 위치한 주변 픽처가 우선순위를 갖는다. 여기서 시간적으로 가장 가까운지 여부 판단은 POC 기반으로 한다. 즉, POC 3번의 현재 픽처에 상대적으로 가까운 POC 2, 4번 주변 픽처들이 POC 1, 8번 주변 픽처들보다 우선순위를 갖는다. 또한, 예를 들어 상기 (1)번 기준과 (4)번 기준을 조합하는 경우, 본 예에서 POC 2번 주변 픽처가 가장 우선순위가 높게 된다.
한편, 상기 c의 경우, 상기 참조 블록들간에 분할 구조가 일치하지 않는 영역에 대응되는 상기 대상 블록의 영역을 위하여 특정 참조 픽처 또는 참조 블록을 가리키기 위한 지시 정보를 인코딩 장치에서 디코딩 장치로 전송할 수 있다. 이 경우 디코딩 장치는 상기 수신된 지시 정보를 기반으로 상기 불일치 영역에 대응되는 상기 대상 블록의 상기 영역의 추가적인 분할 구조를 (어떤 참조 픽처 내의) 어떤 참조 블록의 대응되는 영역에 대한 분할 구조를 기반으로 도출할지 여부를 결정할 수 있다. 예를 들어 상기 도 9에서 상기 지시 정보가 상기 참조 블록 (a)를 가리키는 경우, 상기 음영 부분에 대응하는 대상 블록의 부분에 대하여는 상기 참조 블록 (a)의 분할 구조를 사용할 수 있다. 즉, 이 경우 대상 블록의 분할 구조는 상기 참조 블록 (a)의 분할 구조와 동일하게 된다. 예를 들어 상기 지시 정보는 참조 픽처 인덱스 또는 참조 블록 인덱스가 될 수 있다.
한편, 상기 도 10에서 나타낸 것과 같이 인코딩/디코딩 과정에서 픽처 단위로 다양한 퀄리티를 가지도록 할 수 있다. 특정 픽처가 보다 높은 퀄리티로 인코딩/디코딩 된다는 것은 크게 부가 정보와 잔차 신호의 측면에서 보다 많은 정보량을 허용한다는 의미가 될 수 있다.
인코딩의 대상이 되는 특정 블록에 대하여, 최적의 부가 정보 및 잔차 신호의 조합을 찾기 위한 코스트 함수는 다음과 같은 식으로 나타내어질 수 있다.
Figure 112018089250119-pct00001
여기서 D는 원본 신호와 예측 신호의 차이인 디스토션(distortion)을 나타내고, R은 부가 정보의 데이터율 나타내며, λ는 D와 R의 트레이드 오프(trade-off)를 위한 파라미터이다. λ는 양자화 파라미터인 QP에 비례하는 특성을 갖는다.
픽처의 퀄리티를 높이기 위해 QP 값을 낮추게 되면, 그에 따라 λ 역시 감소하게 되고, 결과적으로 비용함수는 R의 변화에 보다 덜 민감하게 된다. 즉, 부가 정보량의 증가가 전체 비용함수에 미치는 영향이 낮아지게 되어 보다 자세한 블록 구조로 분할하고, 분할된 영역별로 보다 세분화된 부가 정보를 사용하여 디스토션을 줄임으로써 전체 코스트를 줄일 수 있다.
따라서, 본 발명에 따르면 주변 픽처와 현재 픽처의 퀄리티 수준이 다른 경우에, 참조 블록을 기반으로 획득한 블록 분할 구조를 추가적으로 확장할 수 있다. 즉, 본 발명에 따르면 참조 블록을 기반으로 획득한 블록 분할 구조를 리파인하여 대상 블록을 위한 분할 구조를 도출할 수 있다.
상기 도 10의 예에서 코딩 순서와 시간적 레이어의 관계를 살펴 보면, 대부분의 경우에 나중에 코딩되는 픽처가 그 이전에 코딩된 픽처보다 일반적으로 QP가 같거나 높기 때문에 낮은 퀄리티를 갖게 된다. 이는 상기 비용함수 식의 관계로부터 알 수 있듯이, 코딩 순서대로 코딩이 진행되면서 이후 픽처는 종전 픽처들보다 상대적으로 낮은 퀄리티를 가진 픽처이고, 상대적으로 덜 세분화된 분할 구조를 가질 가능성이 높다. 따라서 이러한 특성을 고려하여 주변 픽처의 참조 블록의 분할 구조를 기반으로 대상 블록의 분할 구조를 도출할 때, 참조 블록의 분할 구조를 보다 덜 세분화된 단위로 통합하여 적용할 수 있다. 즉, 본 실시예에 따르면 참조 블록의 제1 분할 구조를 기반으로 보다 덜 세분화된 단위로 통합하여 제2 분할 구조(통합 블록 분할 구조)를 도출하고, 상기 제2 분할 구조를 기반으로 대상 블록을 위한 최종 분할 구조를 도출할 수 있다. 이 때, 예를 들어 제1 분할 구조에 따른 최종 뎁스가 n이라고 할 때, 상기 제2 분할 구조에 대하여는 뎁스 n 이하(ex. n-1 or n-2)까지의 분할 구조를 가질 수 있다. 상기 대상 블록을 위한 최종 분할 구조는 상기 제2 분할 구조와 동일할 수도 있고, 상기 제2 분할 구조를 기반으로 부가 정보 및/또는 특정 기준에 따라 세분화하여 도출된 분할 구조일 수 있다.
도 11은 블록 분할 구조 통합의 다양한 예를 나타낸다.
도 11을 참조하면, (a) 내지 (e)는 참조 블록의 일 부분에 대한 분할 구조와 그 통합 관계를 나타낸다. (a) 내지 (e)의 분할 구조는 화살표로 도시된 바와 같이 동등한 또는 보다 덜 세분화된 단위로 통합될 수 있다.
(a)의 경우 뎁스 레벨 2만큼이 통합된 예이다. (b)의 경우 뎁스 레벨 1만큼이 통합된 예이다. (c)의 경우 뎁스 레벨 1만큼 통합하되, 수직 방향으로 분할된 직사각형 세부 블록 구조를 통합한 예이다. (d)의 경우 뎁스 레벨 1만큼 통합하되, 수평 방향으로 분할된 직사각형 세부 블록 구조를 통합한 예이다. (e)는 기존 블록 분할 구조를 그대로 사용하는 예이다.
이와 같이 통합 블록 분할 구조를 도출함에 있어서, 크게 3가지 요소, 즉, 통합 블록 분할 구조 적용 여부, 통합 블록 분할 구조 적용 단위, 통합 블록 분할 구조 레벨이 결정되어야 한다. 상기 3가지 요소는 다음과 같은 방법으로 결정될 수 있다.
먼저, 통합 블록 분할 구조 적용 단위 및 적용 여부는 다음을 기반으로 결정될 수 있다.
a. 픽처 전체에 적용, 픽처 단위로 적용 여부를 나타내는 정보 전송
b. 혹은, 단위 블록별로 적용, 적용 여부를 나타내는 정보 전송
c. 혹은, 사전에 고정적으로 정의되거나, SPS(sequence parameter set), PPS(picture parameter set), APS(adaptation parameter set) 또는 슬라이스 헤더(slice header)와 같은 파라미터 전송단에서 적용 단위 및/또는 크기를 정의하고, 적용 여부를 나타내는 정보 전송
d. 혹은, 단위 블록별로 적용하되, 별도의 적용 여부 지시 정보를 전송하지 않고, 상술한 바와 같이 참조 블록들 간의 분할 구조 변화량, 움직임 벡터 크기, 움직임 벡터 변화량 중 적어도 하나를 기반으로 임계값과의 비교를 통하여 적용 여부 결정
또한, 통합 블록 분할 구조 레벨은 다음을 기반으로 결정될 수 있다. 여기서 상기 통합 블록 분할 구조 레벨은 분할 구조에서 얼마만큼의 뎁스 레벨을 통합할지 여부를 나타낸다.
a. 부가 정보를 전송하되, 참조 블록 구조를 기준으로 추가적인 분할 정보만을 전송하여 상기 통합 블록 분할 구조 레벨을 결정
b. 혹은, 통합 블록 분할 구조 적용 단위별로 사전에 미리 정의된 고정된 레벨을 적용하거나, SPS, PPS, APS 또는 슬라이스 헤더와 같은 파라미터 전송단에서 정의된 통합 블록 분할 구조 레벨을 적용하거나, 또는 통합 블록 분할 구조 레벨을 지시하는 정보를 전송
c. 혹은, 단위 블록에 대하여 통합 블록 분할 구조를 적용하되 별도의 통합 블록 분할 구조 레벨을 지시하는 정보를 전송하지 않고, 상술한 바와 같이 참조 블록들 간의 분할 구조 변화량, 움직임 벡터 크기, 움직임 벡터 변화량 중 적어도 하나를 기반으로 하되, 상기 분할 구조 변화량, 움직임 벡터 크기, 움직임 벡터 변화량 중 적어도 하나가 사전에 정의된 하나 이상의 기준 범위에 포함될 때, 해당 기준 범위에 대응되는 통합 블록 분할 구조 레벨을 적용
상기 a 방법에 따르면, 예를 들어 참조 블록의 분할 구조보다 덜 세분화된 통합 블록 분할 구조를 도출할 수 있고, 상기 참조 블록의 분할 구조와 상기 통합 블록 분할 구조를 비교하여, 이를 기반으로 분할 정보를 전송할 수 있다.
도 12는 통합 블록 분할 구조 도출의 예를 나타낸다.
도 12를 참조하면, (a)는 참조 블록 분할 구조를 나타내고, (b)는 상기 참조 블록 분할 구조를 참조하여 도출된 통합 블록 분할 구조를 나타낸다. 상기 (a)를 기반으로 이론적으로는 (c)와 같은 다양한 통합 블록 분할 구조 후보들이 존재할 수 있다. 이 경우 상술한 기준들 및/또는 명시적인 지시 정보를 기반으로 상기 통합 블록 분할 구조가 도출될 수 있다. 본 실시예에서는 상기 (c)의 통합 블록 분할 구조 후보들 중 세번째 후보가 상기 대상 블록을 위한 통합 블록 분할 구조로 도출된 경우를 나타낸다.
이 경우, 대상 블록의 분할 구조는 상기 도출된 통합 블록 분할 구조를 기반으로 도출될 수 있다. 이 경우 상기 참조 블록 분할 구조와 상기 통합 블록 분할 구조를 비교하여, 차이가 있는 영역(즉, 덜 세분화된 영역)에 대하여만 분할을 시도해 보고, 이를 통하여 가장 최소의 비용함수를 갖는 분할 구조를 상기 대상 블록을 위한 분할 구조로 선택할 수 있다. 예를 들어, 인코딩 장치는 상기 차이가 있는 영역에 대한 추가적인 분할 정보를 도출할 수 있고, 상기 추가적인 분할 정보를 인코딩하여 상기 디코딩 장치로 전송할 수 있다. 디코딩 장치는 상기 통합 블록 분할 구조 및 상기 추가적인 분할 정보를 기반으로 상기 대상 블록을 위한 분할 구조를 도출할 수 있다.
도 13은 기존의 분할 정보의 데이터량과 본 발명에 따른 분할 정보의 데이터량 비교를 예시적으로 나타낸다. 도 13은 상기 도 12에서 도출한 통합 블록 분할 구조가 사용되는 경우의 예이다.
도 13을 참조하면, (a)는 기존 방법에 따른 분할 정보의 데이터량을 나타내고, (b)는 본 발명에 따른 분할 정보의 데이터량을 나타낸다. (a)에 따르면 대상 블록의 분할 구조를 나타내기 위하여, 총 9개의 분할 플래그의 전송이 필요하다. 반면, (b)에 따르면 통합 블록 분할 구조를 기반으로 덜 세분화된 경우 (또는 동일한 경우)에 대하여만 분할 여부를 추가적으로 판단할 수 있다. 따라서, 참조 블록의 각 세부 블록별 뎁스 레벨과 동일 레벨에 도달하였을 경우에는 해당 세부 블록에 대하여는 분할 정보를 전송하지 않을 수 있다. 이 경우 (b)에 도시된 바와 같이 총 4개의 분할 정보(분할 플래그)를 전송하여 대상 블록의 분할 구조를 나타낼 수 있다. 상기 세부 블록은 CU에 대응될 수 있음은 상술한 바와 같다.
도 14는 본 발명에 따른 비디오 인코딩 방법의 일 예를 개략적으로 나타낸다. 도 14에서 개시된 방법은 인코딩 장치에 의하여 수행될 수 있다.
도 14를 참조하면, 인코딩 장치는 현재 픽처의 대상 블록에 대한 적어도 하나의 참조 블록을 도출한다(S1400). 상기 적어도 하나의 참조 블록은 각각 상기 현재 픽처의 시간적 주변 픽처에 위치할 수 있다. 즉, 참조 블록이 다수가 존재하는 경우, 각각의 참조 블록은 서로 다른 주변 픽처에 위치할 수 있다.
인코딩 장치는 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출한다(S1410). 인코딩 장치는 RD 코스트를 기반으로 대상 블록을 위한 최적의 분할 구조를 도출할 수 있다. 상기 적어도 하나의 참조 블록의 분할 구조를 이용하는 경우에 부가 정보를 줄일 수 있다. 인코딩 장치는 상기 적어도 하나의 참조 블록의 분할 구조를 이용하는 경우에 RD 코스트가 더 낮다고 판단되는 경우, 상기 적어도 하나의 참조 블록의 분할 구조를 이용하여 상기 대상 블록을 위한 분할을 수행할 수 있다.
이 경우, 인코딩 장치는 특정 경우에 한하여 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수 있다.
예를 들어, 상기 적어도 하나의 참조 블록은 제1 참조 블록 및 제2 참조 블록을 포함할 수 있으며, 인코딩 장치는 상기 제1 참조 블록 및 상기 제2 참조 블록 간 블록 분할 구조의 변화량이 제1 임계값보다 적은 경우, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수 있다.
또한, 예를 들어, 인코딩 장치는 상기 적어도 하나의 참조 블록에 대한 대표 움직임 벡터 크기를 도출하고, 상기 대표 움직임 벡터 크기가 제2 임계값보다 작은 경우, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수도 있다.
또한, 예를 들어, 인코딩 장치는 상기 제1 참조 블록 및 상기 제2 참조 블록 간 움직임 벡터 변화량이 제3 임계값보다 적은 경우, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수도 있다.
일 예로, 인코딩 장치는 상기 제1 참조 블록의 분할 구조 및 상기 제2 참조 블록의 분할 구조를 기반으로 서로 동일한 분할 구조를 가지는 영역을 검출할 수 있고, 상기 검출된 영역에 대한 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수 있다.
또한, 인코딩 장치는 다수의 참조 블록들 중에서 특정 참조 블록을 선택하여, 상기 선택된 특정 참조 블록의 분할 구조를 상기 대상 블록의 분할 구조로 사용할 수도 있다. 이 경우 상기 특정 참조 블록은 상기 다수의 참조 픽처들 각각의 POC(picture order count) 값, 시간적 레이어 값 중 적어도 하나를 기반으로 상기 다수의 참조 픽처들 중에서 선택된 특정 참조 픽처에 위치할 수 있다. 또는 상기 특정 참조 블록은 상기 다수의 참조 픽처들 중 현재 픽처의 POC 값과의 차가 가장 적은 POC 값을 가지는 참조 픽처에 위치할 수도 있다. 또는 상기 특정 참조 블록은 상기 다수의 참조 블록들 중 분할 정도가 가장 낮은 참조 블록일 수도 있다. 인코딩 장치는 상기 특정 참조 픽처 또는 상기 특정 참조 블록을 가리키기 위한 지시 정보를 인코딩하여 비트스트림을 통하여 출력할 수도 있다.
다른 예로, 인코딩 장치는 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 통합 블록 분할 구조를 도출하고, 상기 통합 블록 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수도 있다. 이 경우 상기 통합 블록 분할 구조의 최종 뎁스 레벨은 상기 적어도 하나의 참조 블록의 분할 구조의 최종 뎁스 레벨보다 더 낮게 설정될 수 있다. 이 경우 인코딩 장치는 통합 블록 분할 구조 적용 플래그를 생성하여 비트스트림을 통하여 출력할 수 있다. 인코딩 장치는 또한 상기 적어도 하나의 참조 블록의 분할 구조에 따른 영역의 최종 뎁스 레벨보다 상기 통합 블록 분할 구조에 따른 대응 영역의 뎁스 레벨 대응 부분의 뎁스 레벨이 더 낮은 경우, 상기 대상 블록의 해당 대응 영역의 추가적인 분할 여부를 지시하는 분할 플래그를 생성하여 상기 비트스트림을 통하여 디코딩 장치로 전송할 수도 있다.
인코딩 장치는 상기 도출된 분할 구조를 기반으로 상기 대상 블록을 다수의 세부 블록들로 분할한다(S1420). 여기서 대상 블록은 상술한 바와 같이 단위 블록(또는 CTU, CTB)를 포함할 수도 있고, 임의의 크기의 블록을 포함할 수도 있다. 또한 세부 블록은 CU(또는 CB)를 포함할 수 있다. 또는 세부 블록은 PU 또는 TU를 포함할 수도 있다.
인코딩 장치는 상기 다수의 세부 블록들을 인코딩하여 인코딩 파라미터를 출력한다(S1430). 인코딩 장치는 상기 인코딩 파라미터를 비트스트림 형태로 출력할 수 있다. 상기 비트스트림은 네트워크 또는 저장매체를 통하여 디코딩 장치로 전송될 수 있다. 인코딩 장치는 이 경우 상기 다수의 세부 블록들 각각에 대하여 예측 모드를 지시하기 위한 별개의 정보들을 전송할 수도 있다. 예를 들어 상기 세부 블록들 중 제1 세부 블록을 위한 예측 모드 정보와 상기 제2 세부 블록을 위한 예측 모드 정보가 개별적으로 생성되어 상기 비트스트림을 통하여 전송될 수 있다.
한편, 인코딩 장치는 정보는 주변 픽처의 참조 블록의 분할 구조를 기반으로 대상 블록의 분할 구조를 도출하는지 여부를 나타내는 플래그 정보(ex. 블록 구조 예측 플래그)를 생성하여 상기 비트스트림을 통하여 출력할 수 있다. 또는 인코딩 장치는 어떤 주변 픽처/참조 블록을 이용할지 여부를 나타내는 인덱스 정보를 생성하여 상기 비트스트림을 통하여 출력할 수도 있다.
도 15는 본 발명에 따른 비디오 디코딩 방법의 일 예를 개략적으로 나타낸다. 도 15에서 개시된 방법은 디코딩 장치에 의하여 수행될 수 있다.
도 15를 참조하면, 디코딩 장치는 현재 픽처의 대상 블록에 대한 적어도 하나의 참조 블록을 도출한다(S1500). 상기 적어도 하나의 참조 블록은 각각 상기 현재 픽처의 시간적 주변 픽처에 위치할 수 있다. 즉, 참조 블록이 다수가 존재하는 경우, 각각의 참조 블록은 서로 다른 주변 픽처에 위치할 수 있다.
디코딩 장치는 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출한다(S1510).
이 경우, 디코딩 장치는 특정 경우에 한하여 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수 있다.
예를 들어, 디코딩 장치는 주변 픽처의 참조 블록의 분할 구조를 기반으로 대상 블록의 분할 구조를 도출하는지 여부를 나타내는 플래그 정보(ex. 블록 구조 예측 플래그)를 수신된 비트스트림을 통하여 획득할 수 있다. 이 경우 디코딩 장치는 상기 획득된 블록 구조 예측 플래그의 값이 1을 나타내는 경우에, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수 있다.
또한, 예를 들어, 상기 적어도 하나의 참조 블록은 제1 참조 블록 및 제2 참조 블록을 포함할 수 있으며, 디코딩 장치는 상기 제1 참조 블록 및 상기 제2 참조 블록 간 블록 분할 구조의 변화량이 제1 임계값보다 적은 경우, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수 있다.
또한, 예를 들어, 디코딩 장치는 상기 적어도 하나의 참조 블록에 대한 대표 움직임 벡터 크기를 도출하고, 상기 대표 움직임 벡터 크기가 제2 임계값보다 작은 경우, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수도 있다.
또한, 예를 들어, 디코딩 장치는 상기 제1 참조 블록 및 상기 제2 참조 블록 간 움직임 벡터 변화량이 제3 임계값보다 적은 경우, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수도 있다.
일 예로, 디코딩 장치는 상기 제1 참조 블록의 분할 구조 및 상기 제2 참조 블록의 분할 구조를 기반으로 서로 동일한 분할 구조를 가지는 영역을 검출할 수 있고, 상기 검출된 영역에 대한 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수 있다.
또한, 디코딩 장치는 다수의 참조 블록들 중에서 특정 참조 블록을 선택하여, 상기 선택된 특정 참조 블록의 분할 구조를 상기 대상 블록의 분할 구조로 사용할 수도 있다. 이 경우 상기 특정 참조 블록은 상기 다수의 참조 픽처들 각각의 POC(picture order count) 값, 시간적 레이어 값 중 적어도 하나를 기반으로 상기 다수의 참조 픽처들 중에서 선택된 특정 참조 픽처에 위치할 수 있다. 또는 상기 특정 참조 블록은 상기 다수의 참조 픽처들 중 현재 픽처의 POC 값과의 차가 가장 적은 POC 값을 가지는 참조 픽처에 위치할 수도 있다. 또는 상기 특정 참조 블록은 상기 다수의 참조 블록들 중 분할 정도가 가장 낮은 참조 블록일 수도 있다. 또는 디코딩 장치는 특정 참조 픽처 또는 특정 참조 블록을 가리키기 위한 지시 정보를 비트스트림을 통하여 수신할 수도 있다.
다른 예로, 디코딩 장치는 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 통합 블록 분할 구조를 도출하고, 상기 통합 블록 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수도 있다. 이 경우 상기 통합 블록 분할 구조의 최종 뎁스 레벨은 상기 적어도 하나의 참조 블록의 분할 구조의 최종 뎁스 레벨보다 더 낮게 설정될 수 있다. 디코딩 장치는 통합 블록 분할 구조 적용 플래그를 비트스트림으로부터 획득할 수 있으며, 상기 획득된 통합 블록 분할 구조 적용 플래그의 값이 1을 나타내는 경우에, 상기 적어도 하나의 참조 블록의 분할 구조를 기반으로 통합 블록 분할 구조를 도출하고 상기 통합 블록 분할 구조를 기반으로 상기 대상 블록의 분할 구조를 도출할 수도 있다. 디코딩 장치는 또한 상기 적어도 하나의 참조 블록의 분할 구조에 따른 영역의 최종 뎁스 레벨보다 상기 통합 블록 분할 구조에 따른 대응 영역의 뎁스 레벨 대응 부분의 뎁스 레벨이 더 낮은 경우, 상기 대상 블록의 해당 대응 영역의 추가적인 분할 여부를 지시하는 분할 플래그를 상기 비트스트림으로부터 획득할 수도 있다.
디코딩 장치는 상기 도출된 분할 구조를 기반으로 상기 대상 블록을 다수의 세부 블록들로 분할한다(S1520). 여기서 대상 블록은 상술한 바와 같이 단위 블록(또는 CTU, CTB)를 포함할 수도 있고, 임의의 크기의 블록을 포함할 수도 있다. 또한 세부 블록은 CU(또는 CB)를 포함할 수 있다. 또는 세부 블록은 PU 또는 TU를 포함할 수도 있다.
디코딩 장치는 상기 다수의 세부 블록들을 디코딩하여 복원 샘플들을 생성한다(S1530). 디코딩 장치는 이 경우 상기 다수의 세부 블록들에 대하여 다양한 예측 방법을 적용하여 예측 샘플들을 생성할 수 있고, 상기 예측 샘플들을 기반으로 복원 샘플들을 생성할 수 있다. 예를 들어 상기 세부 블록들 중 제1 세부 블록에 대한 예측 모드로 인터 예측 모드가 사용되고, 제2 세부 블록에 대한 예측 모드로 인트라 예측 모드가 사용될 수도 있다. 또는 상기 다수의 세부 블록들에 대하여는 스킵 모드가 적용되어 해당 세부 블록들에 대한 예측 샘플들이 바로 복원 샘플들로 도출될 수도 있다.
상술한 본 발명에 따르면, 주변 픽처의 참조 블록의 분할 정보를 기반으로 현재 픽처의 대상 블록의 분할 구조를 도출할 수 있는바, 현재 픽처의 대상 블록의 분할을 위하여 시그널링되는 부가 정보에 대한 데이터량을 줄일 수 있으며, 전반적인 코딩 효율을 향상시킬 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 할 것이다.
본 발명에서 실시예들이 소프트웨어로 구현될 때, 상술한 방법은 상술한 기능을 수행하는 모듈(과정, 기능 등)로 구현될 수 있다. 모듈은 메모리에 저장되고, 프로세서에 의해 실행될 수 있다. 메모리는 프로세서 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 프로세서는 ASIC(application-specific integrated circuit), 다른 칩셋, 논리 회로 및/또는 데이터 처리 장치를 포함할 수 있다. 메모리는 ROM(read-only memory), RAM(random access memory), 플래쉬 메모리, 메모리 카드, 저장 매체 및/또는 다른 저장 장치를 포함할 수 있다.

Claims (19)

  1. 디코딩 장치에 의해 수행되는 비디오 디코딩 방법으로서,
    대상 블록에 대한 적어도 하나의 참조 블록을 도출하는 단계;
    상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 상기 대상 블록의 분할 구조를 도출하는 단계;
    상기 도출된 분할 구조에 기초하여 상기 대상 블록을 복수의 블록들로 분할하는 단계; 및
    상기 복수의 블록들을 디코딩하여 복원 샘플들을 생성하는 단계를 포함하고,
    상기 적어도 하나의 참조 블록은 적어도 제1 참조 블록 및 제2 참조 블록에 대응하고, 그리고
    상기 제1 참조 블록과 상기 제2 참조 블록 간 블록 분할 구조의 변화량이 제1 임계값보다 적은 경우, 상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 상기 대상 블록의 분할 구조가 도출되는, 디코딩 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 참조 블록은 상기 대상 블록이 위치되는 현재 픽처의 시간적(temporal) 주변 픽처에 위치되는, 디코딩 방법.
  3. 제1항에 있어서,
    상기 방법은, 블록 구조 예측 플래그를 비트스트림으로부터 획득하는 단계를 더 포함하고,
    상기 획득된 블록 구조 예측 플래그의 값이 1인 경우에, 상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 상기 대상 블록의 분할 구조가 도출되는, 디코딩 방법.
  4. 제1항에 있어서,
    상기 방법은, 상기 적어도 하나의 참조 블록에 대한 대표 움직임 벡터 크기를 도출하는 단계를 더 포함하고,
    상기 대표 움직임 벡터 크기가 제2 임계값보다 작은 경우, 상기 적어도 하나의 참조 블록의 분할 구조에 추가로 기초하여 상기 대상 블록의 분할 구조가 도출되는, 디코딩 방법.
  5. 제1항에 있어서,
    상기 제1 참조 블록과 상기 제2 참조 블록 간 움직임 벡터 변화량이 제3 임계값보다 적은 경우, 상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 상기 대상 블록의 분할 구조가 도출되는, 디코딩 방법.
  6. 제1항에 있어서,
    상기 방법은, 상기 제1 참조 블록의 분할 구조 및 상기 제2 참조 블록의 분할 구조에 기초하여 서로 동일한 분할 구조를 갖는 영역을 검출하는 단계를 더 포함하고,
    상기 대상 블록의 분할 구조는 상기 검출된 영역에 대한 분할 구조에 기초하여 도출되는, 디코딩 방법.
  7. 제1항에 있어서,
    상기 방법은, 복수의 참조 블록들 중에서 특정 참조 블록을 선택하는 단계를 더 포함하고,
    상기 적어도 하나의 참조 블록은 적어도 상기 복수의 참조 블록들에 대응하고,
    상기 복수의 참조 블록들은 복수의 참조 픽처들에 각각 위치되고, 그리고
    상기 선택된 특정 참조 블록의 분할 구조가 상기 대상 블록의 분할 구조로 사용되는, 디코딩 방법.
  8. 제7항에 있어서,
    상기 특정 참조 블록은 상기 복수의 참조 픽처들 각각의 POC(picture order count) 값 및 시간적 레이어 값 중 적어도 하나에 기초하여 상기 복수의 참조 픽처들 중에서 선택된 특정 참조 픽처에 위치되는, 디코딩 방법.
  9. 제7항에 있어서,
    상기 특정 참조 블록은 상기 복수의 참조 픽처들 중 현재 픽처의 POC 값과의 차이가 가장 적은 POC 값을 갖는 참조 픽처에 위치되는, 디코딩 방법.
  10. 제1항에 있어서,
    상기 대상 블록의 분할 구조를 도출하는 단계는:
    상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 통합 블록 분할 구조를 도출하는 단계; 및
    상기 통합 블록 분할 구조에 기초하여 상기 대상 블록의 분할 구조를 도출하는 단계를 포함하는, 디코딩 방법.
  11. 제10항에 있어서,
    상기 통합 블록 분할 구조의 최종 뎁스(depth) 레벨은 상기 적어도 하나의 참조 블록의 분할 구조의 최종 뎁스 레벨보다 더 낮은, 디코딩 방법.
  12. 제10항에 있어서,
    상기 방법은, 통합 블록 분할 구조 적용 플래그를 비트스트림으로부터 획득하는 단계를 더 포함하고,
    상기 획득된 통합 블록 분할 구조 적용 플래그의 값이 1을 표시하는 경우에, 상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 통합 블록 분할 구조가 도출되고, 그리고 상기 통합 블록 분할 구조에 기초하여 상기 대상 블록의 분할 구조를 도출되는, 디코딩 방법.
  13. 제11항에 있어서,
    상기 방법은, 분할 플래그를 비트스트림으로부터 획득하는 단계를 더 포함하고,
    상기 적어도 하나의 참조 블록의 분할 구조에 따른 영역의 최종 뎁스 레벨보다 상기 통합 블록 분할 구조에 따른 대응 영역의 뎁스 레벨 대응 부분의 뎁스 레벨이 더 낮은 경우, 상기 분할 플래그는 상기 대상 블록의 해당 대응 영역의 추가적인 분할 여부를 표시하는, 디코딩 방법.
  14. 인코딩 장치에 의해 수행되는 비디오 인코딩 방법으로서,
    대상 블록에 대한 적어도 하나의 참조 블록을 도출하는 단계;
    상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 상기 대상 블록의 분할 구조를 도출하는 단계;
    상기 도출된 분할 구조에 기초하여 상기 대상 블록을 복수의 블록들로 분할하는 단계; 및
    상기 복수의 블록들을 인코딩하여 인코딩 파라미터를 출력하는 단계를 포함하고,
    상기 적어도 하나의 참조 블록은 적어도 제1 참조 블록 및 제2 참조 블록에 대응하고, 그리고
    상기 제1 참조 블록과 상기 제2 참조 블록 간 블록 분할 구조의 변화량이 제1 임계값보다 적은 경우, 상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 상기 대상 블록의 분할 구조가 도출되는, 인코딩 방법.
  15. 제14항에 있어서,
    상기 방법은, 상기 적어도 하나의 참조 블록에 대한 대표 움직임 벡터 크기를 도출하는 단계를 더 포함하고,
    상기 대표 움직임 벡터 크기가 제2 임계값보다 작은 경우, 상기 적어도 하나의 참조 블록의 분할 구조에 추가로 기초하여 상기 대상 블록의 분할 구조가 도출되는, 인코딩 방법.
  16. 제14항에 있어서,
    상기 제1 참조 블록과 상기 제2 참조 블록 간 움직임 벡터 변화량이 제3 임계값보다 적은 경우, 상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 상기 대상 블록의 분할 구조가 도출되는, 인코딩 방법.
  17. 제14항에 있어서,
    상기 방법은, 상기 제1 참조 블록의 분할 구조 및 상기 제2 참조 블록의 분할 구조에 기초하여 서로 동일한 분할 구조를 갖는 영역을 검출하는 단계를 더 포함하고,
    상기 대상 블록의 분할 구조는 상기 검출된 영역에 대한 분할 구조에 기초하여 도출되는, 인코딩 방법.
  18. 제14항에 있어서,
    상기 방법은, 복수의 참조 블록들 중에서 특정 참조 블록을 선택하는 단계를 더 포함하고,
    상기 적어도 하나의 참조 블록은 적어도 상기 복수의 참조 블록들에 대응하고,
    상기 복수의 참조 블록들은 복수의 참조 픽처들에 각각 위치되고, 그리고
    상기 선택된 특정 참조 블록의 분할 구조가 상기 대상 블록의 분할 구조로 사용되는, 인코딩 방법.
  19. 제14항에 있어서,
    상기 대상 블록의 분할 구조를 도출하는 단계는:
    상기 적어도 하나의 참조 블록의 분할 구조에 기초하여 통합 블록 분할 구조를 도출하는 단계; 및
    상기 통합 블록 분할 구조에 기초하여 상기 대상 블록의 분할 구조를 도출하는 단계를 포함하는, 인코딩 방법.
KR1020187026075A 2016-03-18 2016-03-18 비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치 KR102546142B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/KR2016/002742 WO2017159901A1 (ko) 2016-03-18 2016-03-18 비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180121908A KR20180121908A (ko) 2018-11-09
KR102546142B1 true KR102546142B1 (ko) 2023-06-21

Family

ID=59852136

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187026075A KR102546142B1 (ko) 2016-03-18 2016-03-18 비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치

Country Status (3)

Country Link
US (1) US10694187B2 (ko)
KR (1) KR102546142B1 (ko)
WO (1) WO2017159901A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11601660B2 (en) 2018-03-30 2023-03-07 Hulu, LLC Reuse of block tree pattern in video compression
US11381825B2 (en) * 2018-11-27 2022-07-05 Advanced Micro Devices, Inc. Variable rate rendering based on motion estimation
US11166015B2 (en) * 2019-03-06 2021-11-02 Tencent America LLC Method and apparatus for video coding
US11240499B2 (en) * 2019-05-24 2022-02-01 Tencent America LLC Method and apparatus for video coding
US11375243B2 (en) * 2019-07-17 2022-06-28 Tencent America LLC Method and apparatus for video coding
US20240015308A1 (en) * 2020-11-24 2024-01-11 Hyundai Motor Company Apparatus and method for video encoding and decoding
WO2023023608A2 (en) * 2021-08-18 2023-02-23 Innopeak Technology, Inc. History-based rice parameter derivations for video coding
WO2023075568A1 (ko) * 2021-11-01 2023-05-04 엘지전자 주식회사 부호화 구조의 채널간 참조에 기반한 피쳐 부호화/복호화 방법, 장치, 비트스트림을 저장한 기록 매체 및 비트스트림 전송 방법
WO2023224279A1 (ko) * 2022-05-16 2023-11-23 현대자동차주식회사 기하학적 움직임 예측을 사용하는 비디오 코딩을 위한 방법 및 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2052546A4 (en) * 2006-07-12 2010-03-03 Lg Electronics Inc METHOD AND DEVICE FOR SIGNAL PROCESSING
ES2355850T3 (es) * 2007-01-18 2011-03-31 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Flujo de datos de vídeo con calidad ajustable a escala.
KR20080107965A (ko) 2007-06-08 2008-12-11 삼성전자주식회사 객체 경계 기반 파티션을 이용한 영상의 부호화, 복호화방법 및 장치
KR101678654B1 (ko) * 2010-06-11 2016-11-22 에스케이 텔레콤주식회사 효율적인 움직임 벡터 부호화/복호화를 위한 적응적 경쟁기반 움직임 후보 벡터 산출 기법 및 이를 이용한 움직임 벡터 부/복호화 장치
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
KR101449679B1 (ko) * 2010-08-18 2014-10-15 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법, 및 참조픽처 인덱싱 장치 및 방법
EP2661080A4 (en) * 2010-12-31 2016-06-29 Korea Electronics Telecomm METHOD FOR CODING VIDEO INFORMATION AND METHOD FOR DECODING VIDEO INFORMATION AND DEVICE THEREFOR
US9467694B2 (en) * 2011-11-21 2016-10-11 Google Technology Holdings LLC Implicit determination and combined implicit and explicit determination of collocated picture for temporal prediction
PL2822276T3 (pl) * 2012-02-29 2019-04-30 Lg Electronics Inc Sposób predykcji międzywarstwowej i stosujące go urządzenie
US20130287109A1 (en) * 2012-04-29 2013-10-31 Qualcomm Incorporated Inter-layer prediction through texture segmentation for video coding
FR2993084A1 (fr) * 2012-07-09 2014-01-10 France Telecom Procede de codage video par prediction du partitionnement d'un bloc courant, procede de decodage, dispositifs de codage et de decodage et programmes d'ordinateur correspondants
US9544612B2 (en) * 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
KR101502145B1 (ko) * 2013-06-21 2015-03-12 주식회사 에스원 영상 부호화/복호화 방법 및 장치
US10382791B2 (en) * 2015-03-06 2019-08-13 Qualcomm Incorporated Data structure for video coding unit

Also Published As

Publication number Publication date
KR20180121908A (ko) 2018-11-09
US10694187B2 (en) 2020-06-23
WO2017159901A1 (ko) 2017-09-21
US20190104312A1 (en) 2019-04-04

Similar Documents

Publication Publication Date Title
KR102383107B1 (ko) 비디오 신호 처리 방법 및 장치
KR102328179B1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR102644185B1 (ko) 비디오 코딩 시스템에서 레지듀얼 신호 코딩 방법 및 장치
KR102546142B1 (ko) 비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치
KR102383105B1 (ko) 비디오 신호 처리 방법 및 장치
KR102498289B1 (ko) 인터 예측 방법 및 그 장치
KR102383106B1 (ko) 비디오 신호 처리 방법 및 장치
KR101550723B1 (ko) 영상 부호화/복호화 방법 및 그 장치
KR20210135466A (ko) 화면내 예측 모드 부호화/복호화 방법 및 장치
KR20180069789A (ko) 영상 코딩 시스템에서 예측 향상을 위한 필터링 방법 및 장치
KR102390452B1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20180030791A (ko) 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
KR102568879B1 (ko) 어파인 움직임 예측에 기반한 영상 코딩 방법 및 그 장치
CN116866620A (zh) 对视频进行解码和编码的方法和传输视频数据的方法
US10812796B2 (en) Image decoding method and apparatus in image coding system
US11356703B2 (en) Image decoding method and device in accordance with block split structure in image coding system
KR20190133628A (ko) 비디오 신호 처리 방법 및 장치
RU2804482C1 (ru) Способ и устройство декодирования изображений в соответствии со структурой блочного разбиения в системе кодирования изображений
RU2818051C1 (ru) Способ и устройство декодирования изображений в соответствии со структурой блочного разбиения в системе кодирования изображений

Legal Events

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