KR101642092B1 - 영상의 부호화/복호화 방법 및 이를 이용하는 장치 - Google Patents
영상의 부호화/복호화 방법 및 이를 이용하는 장치 Download PDFInfo
- Publication number
- KR101642092B1 KR101642092B1 KR1020140134255A KR20140134255A KR101642092B1 KR 101642092 B1 KR101642092 B1 KR 101642092B1 KR 1020140134255 A KR1020140134255 A KR 1020140134255A KR 20140134255 A KR20140134255 A KR 20140134255A KR 101642092 B1 KR101642092 B1 KR 101642092B1
- Authority
- KR
- South Korea
- Prior art keywords
- conversion
- information
- block
- flag
- unit
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명에 따른 영상의 복호화 방법은 현재 코딩 유닛의 크기가 변환 생략이 가능한 변환 블록을 포함할 수 있는 경우, 상기 코딩 유닛으로부터 분할되는 변환 블록의 변환 생략 여부를 지시하는 제1 정보를 대표하는 대표 플래그를 상기 코딩 유닛에 대한 정보로 파싱하는 단계와; 상기 대표 플래그에 기초하여 상기 제1 정보의 파싱 여부를 판단하는 단계와; 상기 제1 정보의 파싱이 필요 없는 경우 상기 대표 플래그에 기초하여 상기 제1 정보를 유추하고, 상기 제1 정보의 파싱이 필요한 경우 상기 제1 정보를 파싱하는 단계와; 상기 제1 정보에 따라 상기 변환 블록에 대한 변환을 수행하는 단계를 포함할 수 있다.
Description
본 발명은 영상의 부호화 및 복호화 처리에 관한 것으로서, 보다 상세하게는 현재 픽쳐를 이용하여 예측 블록을 생성하는 영상의 부/복호화 방법 및 그 장치에 관한 것이다.
최근 HD(High Definition) 해상도를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되면서, 많은 사용자들이 고해상도, 고화질의 영상에 익숙해지고 있으며 이에 따라 많은 기관들이 차세대 영상기기에 대한 개발에 박차를 가하고 있다. 또한 HDTV와 더불어 HDTV의 4배 이상의 해상도를 갖는 UHD(Ultra High Definition)에 대한 관심이 증대되면서 보다 높은 해상도, 고화질의 영상에 대한 압축기술이 요구되고 있다.
영상 압축을 위해, 시간적으로 이전 및/또는 이후의 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 인터(inter, 화면 내) 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 인트라(intra, 화면 간) 예측 기술, 출현 빈도가 높은 심볼(symbol)에 짧은 부호를 할당하고 출현 빈도가 낮은 심볼에 긴 부호를 할당하는 엔트로피 부호화 기술 등이 사용될 수 있다.
한편, 영상 복호화 시, 구체적으로 영상에 대한 잔차 신호의 복호화 시 변환 과정을 생략하는 변환 생략 모드가 적용될 수 있다. 현재, 변환 생략 모드는 CBF(coded block flag) 가 1인 모든 4x4 크기의 변환 블록(transform block, TB) 에 적용될 수 있으며, 변환 생략 모드가 적용되는지를 나타내는 플래그 (transform_skip_flag) 정보는 변환 블록마다 시그널링 되고 있다.
본 발명은 변환 생략을 시그널링하기 위한 비트량을 감소시키고, 영상 부호화 효율을 증가시키는 영상 부호화/복호화 방법 및 이를 이용하는 장치를 제공한다.
본 발명은 화면 내에서 반복적으로 유사한 패턴이 발생하며, 고주파를 다량 포함하는 잔차 신호가 빈번히 발생하는 경우, 소정의 단위 내의 변환 블록들은 공통적으로 변환 생략 모드가 적용되거나 적용되지 않을 가능성이 존재하므로, 이 경우 이들의 변환 생략 여부를 대표하는 플래그를 시그널링함으로써 부호화 효율을 증가시킬 수 있는 영상 부호화/복호화 방법 및 이를 이용하는 장치를 제공한다.
본 발명의 일 실시예에 따른 영상의 복호화 방법은 현재 코딩 유닛의 크기가 변환 생략이 가능한 변환 블록을 포함할 수 있는 경우, 상기 코딩 유닛으로부터 분할되는 변환 블록의 변환 생략 여부를 지시하는 제1 정보를 대표하는 대표 플래그를 상기 코딩 유닛에 대한 정보로 파싱하는 단계와; 상기 대표 플래그에 기초하여 상기 제1 정보의 파싱 여부를 판단하는 단계와; 상기 제1 정보의 파싱이 필요 없는 경우 상기 대표 플래그에 기초하여 상기 제1 정보를 유추하고, 상기 제1 정보의 파싱이 필요한 경우 상기 제1 정보를 파싱하는 단계와; 상기 제1 정보에 따라 상기 변환 블록에 대한 변환을 수행 또는 생략하는 단계를 포함할 수 있다.
상기 제1 정보의 파싱 여부를 판단하는 단계는, 상기 대표 플래그가 1이고, 상기 변환 블록이 상기 코딩 유닛으로부터 분할되는 최대 깊이의 변환 유닛에 포함되고, 상기 변환 블록의 크기가 상기 변환 생략이 적용되는 최대 변환 블록 크기 이하인 경우, 상기 제1 정보의 파싱이 필요 없는 것으로 판단하고, 상기 제1 정보를 상기 변환 블록에 변환 생략을 적용하는 것으로 유추할 수 있다.
상기 제1 정보의 파싱 여부를 판단하는 단계는, 상기 대표 플래그가 1이고, 상기 변환 블록의 크기가 상기 변환 생략이 적용되는 최대 변환 블록 크기 이하인 경우, 상기 제1 정보의 파싱이 필요 없는 것으로 판단하고, 상기 제1 정보를 상기 변환 블록에 변환 생략을 적용하는 것으로 유추할 수 있다.
상기 대표 플래그에 기초하여 변환 유닛의 분할 여부를 나타내는 제2 정보의 파싱 여부를 판단하는 단계와; 상기 제2 정보의 파싱이 필요 없는 경우 상기 대표 플래그에 기초하여 상기 제2 정보를 유추하고, 상기 제2 정보의 파싱이 필요한 경우 상기 제2 정보를 수신하여 파싱하는 단계와; 상기 제2 정보에 따라 상기 변환 유닛에 대한 분할을 수행할 수 있다.
상기 제2 정보의 파싱 여부를 판단하는 단계는, 상기 대표 플래그가 1이고, 상기 변환 유닛에 대한 변환 깊이가 0이면, 상기 제2 정보의 파싱이 필요 없는 것으로 판단하고, 상기 제2 정보를 상기 변환 유닛이 분할되는 것으로 유추할 수 있다.
상기 제2 정보의 파싱 여부를 판단하는 단계는, 상기 대표 플래그가 1이고, 상기 변환 유닛에 대한 변환 깊이가 0이고, 상기 변환 깊이가 0인 변환 유닛이 포함하는 모든 변환 블록의 크기가 상기 변환 생략이 적용되는 최대 변환 블록 크기보다 큰 경우, 상기 제2 정보의 파싱이 필요 없는 것으로 판단하고, 상기 제2 정보를 상기 변환 유닛이 분할되는 것으로 유추할 수 있다.
상기 대표 플래그는 상기 코딩 유닛에 적용된 예측 모드에 대응하여 수신될 수 있다.
상기 대표 플래그는 상기 코딩 유닛의 예측 모드가 현재 픽쳐 내에서 움직임 예측을 수행하여 현재 블록과 유사한 영역을 상기 현재 블록에 대한 예측값으로 설정하는 인트라 블록 카피 예측 모드이면 시그널링될 수 있다.
상기 대표 플래그를 이용하여 상기 변환 생략 여부를 유추하는 기능을 사용하는지 여부를 나타내는 플래그 정보를 더 수신하고, 상기 플래그 정보는 시퀀스 파라미터 세트 또는 픽쳐 파라미터 세트에서 시그널링 될 수 있다.
본 발명의 다른 실시예에 따른 영상의 부호화 방법은 코딩의 대상이 되는 코딩 유닛으로부터 분할되는 변환 블록에 변환 생략이 적용되는지 판단하는 단계와; 상기 변환 블록에 변환 생략 여부를 지시하는 제1 정보를 대표하는 대표 플래그를 코딩하고, 상기 대표 플래그를 상기 코딩 유닛에 대한 정보로 시그널링하는 단계와; 상기 대표 플래그에 기초하여 상기 제1 정보의 코딩이 필요한 경우, 상기 제1 정보를 코딩하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 변환 생략을 시그널링하기 위한 비트량을 감소시키고, 영상 부호화 효율을 증가시키는 영상 부호화/복호화 방법 및 이를 이용하는 장치가 제공된다.
본 발명에 따르면, 화면 내에서 반복적으로 유사한 패턴이 발생하며, 고주파를 다량 포함하는 잔차 신호가 빈번히 발생하는 경우, 소정의 단위 내의 변환 블록들은 공통적으로 변환 생략 모드가 적용되거나 적용되지 않을 가능성이 존재하므로, 이 경우 이들의 변환 생략 여부를 대표하는 플래그를 시그널링함으로써 부호화 효율을 증가 시킬 수 있는 영상 부호화/복호화 방법 및 이를 이용하는 장치가 제공된다.
구체적으로, 이러한 본 발명의 효과는 컴퓨터에 의하여 만들어진 인공 영상의 부호화 및 복호화에서 두드러지게 나타날 수 있다.
도 1은 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 2는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상의 복호화 방법을 설명하기 위한 도면이다
도 4는 본 발명의 일 실시예에 따른 대표 플래그가 대표하는 블록을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따라 대표 플래그를 참조하여 분할 플래그의 유추 과정을 설명하는 도면이다.
도 6은 본 발명의 다른 실시예에 따른 대표 플래그 적용 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 대표 플래그가 대표하는 블록을 설명하기 위한 도면이다.
도 8은 본 발명의 다른 실시예에 따라 대표 플래그를 참조하여 분할 플래그의 유추 과정을 설명하는 도면이다.
도 9는 본 발명에 따른 IBC 예측을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 영상의 부호화 방법을 설명하기 위한 도면이다.
도 2는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상의 복호화 방법을 설명하기 위한 도면이다
도 4는 본 발명의 일 실시예에 따른 대표 플래그가 대표하는 블록을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따라 대표 플래그를 참조하여 분할 플래그의 유추 과정을 설명하는 도면이다.
도 6은 본 발명의 다른 실시예에 따른 대표 플래그 적용 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 대표 플래그가 대표하는 블록을 설명하기 위한 도면이다.
도 8은 본 발명의 다른 실시예에 따라 대표 플래그를 참조하여 분할 플래그의 유추 과정을 설명하는 도면이다.
도 9는 본 발명에 따른 IBC 예측을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 영상의 부호화 방법을 설명하기 위한 도면이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 아울러, 본 발명에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
도 1은 영상 부호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다. 스케일러블(scalable) 비디오 부호화/복호화 방법 또는 장치는 스케일러빌리티(scalability)를 제공하지 않는 일반적인 영상 부호화/복호화 방법 또는 장치의 확장(extension)에 의해 구현될 수 있으며, 도 1의 블록도는 스케일러블 비디오 부호화 장치의 기초가 될 수 있는 영상 부호화 장치의 일 실시예를 나타낸다.
도 1을 참조하면, 상기 영상 부호화 장치(100)는 예측부(110), 감산기(125), 변환부(130), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 참조영상 버퍼(190)를 포함한다.
영상 부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림(bit stream)을 출력할 수 있다. 인트라 예측은 화면 내 예측, 인터 예측은 화면 간 예측을 의미한다. 인트라 모드인 경우 스위치(미도시)가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환된다. 영상 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분을 부호화할 수 있다.
예측부는 인트라 예측을 수행하는 인트라 예측부, 인터 예측을 수행하는 움직임 예측부 및 움직임 보상부, 인트라 카피 예측(intra block copy(IBC) prediction)을 수행하는 IBC 예측부를 세부적인 구성 요소로 포함할 수 있다. 또한, 영상 부호화 장치는 도시하지 않은 스위치를 포함할 수 있고, 스위치는 인터 예측부, 인트라 예측부, IBC 예측부 사이에서 전환될 수 있다.
인트라 모드인 경우, 인트라 예측부는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 움직임 예측부는, 움직임 예측 과정에서 참조 영상 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록과 가장 매치가 잘 되는 영역을 찾아 움직임 벡터를 구할 수 있다. 움직임 보상부는 움직임 벡터와 참조 영상 버퍼(190)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
IBC 예측부는 현재 픽쳐 내에서 움직임 예측, 즉 탐색을 수행하여 현재 블록과 유사한 영역을 판별하여, 현재 블록에 대한 예측값, 블록 벡터를 구할 수 있다. IBC 예측부에 의한 예측은 이하에서 상세히 기술된다.
감산기(125)는 입력 블록과 생성된 예측 블록의 차분에 의해 잔여 블록(residual block)을 생성할 수 있다. 변환부(130)는 잔여 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 일부 잔여 블록에 대하여 변환부(130)는 변환(transform)을 생략하도록 구성될 수도 있으며, 이 경우에도 변환부(130)의 출력을 편의상 변환 계수(transform coefficient)라고 부른다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로, 심볼(symbol)을 확률 분포에 따라 엔트로피 부호화하여 비트스트림(bit stream)을 출력할 수 있다. 엔트로피 부호화 방법은 다양한 값을 갖는 심볼을 입력 받아, 통계적 중복성을 제거하면서, 복호 가능한 2진수의 열로 표현하는 방법이다.
여기서, 심볼이란 부호화/복호화 대상 구문 요소(syntax element) 및 부호화 파라미터(coding parameter), 잔여 신호(residual signal)의 값 등을 의미한다. 부호화 파라미터는 부호화 및 복호화에 필요한 매개변수로서, 구문 요소와 같이 부호화 장치에서 부호화되어 복호화 장치로 전달되는 정보뿐만 아니라, 부호화 혹은 복호화 과정에서 유추될 수 있는 정보를 포함할 수 있으며 영상을 부호화하거나 복호화할 때 필요한 정보를 의미한다. 부호화 파라미터는 예를 들어 인트라/인터 예측모드, 이동/움직임 벡터(motion vector), 참조 영상 색인, 부호화 블록 패턴, 잔여 신호 유무, 변환 계수, 양자화된 변환 계수, 양자화 파라미터, 블록 크기, 블록 분할 정보 등의 값 또는 통계를 포함할 수 있다. 또한 잔여 신호는 원신호와 예측 신호의 차이를 의미할 수 있고, 또한 원신호와 예측 신호의 차이가 변환(transform)된 형태의 신호 또는 원신호와 예측 신호의 차이가 변환되고 양자화된 형태의 신호, 또는 원신호와 예측 신호의 차이 신호 또는 원신호와 예측 신호의 차이 신호가 양자화된 형태의 신호를 의미할 수도 있다. 잔여 신호는 블록 단위에서는 잔여 블록이라 할 수 있다.
엔트로피 부호화가 적용되는 경우, 높은 발생 확률을 갖는 심볼에 적은 수의 비트가 할당되고 낮은 발생 확률을 갖는 심볼에 많은 수의 비트가 할당되어 심볼이 표현됨으로써, 부호화 대상 심볼들에 대한 비트열의 크기가 감소될 수 있다. 따라서 엔트로피 부호화를 통해서 영상 부호화의 압축 성능이 높아질 수 있다.
엔트로피 부호화를 위해 지수 골룸(exponential golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 부호화 방법이 사용될 수 있다. 예를 들어, 엔트로피 부호화부(150)에는 가변 길이 부호화(VLC: Variable Lenghth Coding/Code) 테이블과 같은 엔트로피 부호화를 수행하기 위한 테이블이 저장될 수 있고, 엔트로피 부호화부(150)는 저장된 가변 길이 부호화(VLC) 테이블을 사용하여 엔트로피 부호화를 수행할 수 있다. 또한 엔트로피 부호화부(150)는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼/빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 부호화를 수행할 수도 있다.
양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환될 수 있다. 일부 블록에 대하여 역변환부(170)는 역변환을 생략하도록 구성될 수도 있으며, 이 경우에도 역변환부(170)의 출력을 편의상 역변환된 계수라고 부른다. 역양자화, 역변환된 계수는 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성될 수 있다.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(180)를 거친 복원 블록은 참조 영상 버퍼(190)에 저장될 수 있다.
도 2는 영상 복호화 장치의 일 실시예에 따른 구성을 나타내는 블록도이다. 도 1에서 상술한 바와 같이 스케일러블 비디오 부호화/복호화 방법 또는 장치는 스케일러빌리티를 제공하지 않는 일반적인 영상 부호화/복호화 방법 또는 장치의 확장에 의해 구현될 수 있으며, 도 2의 블록도는 스케일러블 비디오 복호화 장치의 기초가 될 수 있는 영상 복호화 장치의 일 실시예를 나타낸다.
도 2를 참조하면, 상기 영상 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 예측부(240), 필터부(260) 및 참조 영상 버퍼(270)를 포함한다.
영상 복호화 장치(200)는 부호화 장치에서 출력된 비트스트림을 입력 받아 인트라 모드, 인터 모드 또는 IBC 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다.
영상 복호화 장치(200)는 입력 받은 비트스트림으로부터 복원된 잔여 블록(residual block)을 얻고 예측 블록을 생성한 후 복원된 잔여 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화하여, 양자화된 계수(quantized coefficient) 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 복호화 방법은 2진수의 열을 입력 받아 각 심볼들을 생성하는 방법이다. 엔트로피 복호화 방법은 상술한 엔트로피 부호화 방법과 유사하다.
양자화된 계수는 역양자화부(220)에서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환 된 결과, 복원된 잔여 블록(residual block)이 생성될 수 있다. 일부 블록에 대하여 역변환부(230)는 역변환을 생략하도록 구성될 수도 있다. 또한, 역양자화부(220)도 일부 블록에 대하여 생략되도록 구성될 수 도 있다.
예측부(240)는 인트라 예측을 수행하는 인트라 예측부, 인터 예측을 수행하는 움직임 예측부 및 움직임 보상부, 인트라 카피 예측(intra block copy(IBC) prediction)을 수행하는 IBC 예측부를 세부적인 구성 요소로 포함할 수 있다.
인트라 모드인 경우, 인트라 예측부는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 움직임 보상부는 움직임 벡터 및 참조 영상 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
IBC 예측의 경우, IBC 예측부는 현재 픽쳐 내에서 움직임 예측, 즉 탐색을 수행하여 현재 블록과 유사한 영역을 판별하여 현재 블록에 대한 예측값, 블록 벡터를 구할 수 있다. IBC 예측부에 의한 예측은 이하에서 상세히 기술된다.
복원된 잔여 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거친다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력한다. 복원 영상은 참조 영상 버퍼(270)에 저장되어 화면 간 예측에 사용될 수 있다.
상기 영상 복호화 장치(200)에 포함되어 있는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 예측부(240), 필터부(260) 및 참조 영상 버퍼(270) 중 영상의 복호화에 직접적으로 관련된 구성요소들, 예컨대, 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 예측부(240) 필터부(260) 등을 다른 구성요소와 구분하여 복호화부 또는 디코딩부로 표현할 수 있다.
또한, 영상 복호화 장치(200)는 비트스트림에 포함되어 있는 인코딩된 영상에 관련된 정보를 파싱하는 도시하지 않은 파싱부를 더 포함할 수 있다. 파싱부는 엔트로피 복호화부(210)를 포함할 수도 있고, 엔트로피 복호화부(210)에 포함될 수도 있다. 이러한 파싱부는 또한 디코딩부의 하나의 구성요소로 구현될 수도 있다.
한편, 기존의 영상 코딩 방법 중에는 고주파 성분을 많이 포함하고 있는 블록에 대하여 변환을 생략하는 변환 생략(Transform Skip)을 적용하고 있다.
예를 들어, 픽쳐 파라미터 세트(picture parameter set)와 같은 상위 단에서 시그널링되는 transform_skip_enabled_flag에 대한 값이 1이고, 잔차 신호의 부/복호화시, CBF(codedblockflag)가 1인 모든 4x4 크기의 변환 블록(transformblock, TB)에 대하여 변환 생략 여부를 지시하는 플래그(transform_skip_flag )를 개별적으로 시그널링 할 수 있다.
또는 transform_skip_enabled_flag에 대한 값이 1이고, 현재 변환 블록의 크기가 픽쳐 파라미터 세트에서 시그널링되는 변환 생략이 적용될 수 있는 변환 블록의 최대 크기를 나타내는 정보(예를 들어, log2_max_transform_skip_block_size_minus2)에 의하여 정의되는 최대 블록 크기보다 작거나 같고, CBF가 1인 모든 변환 블록에 대하여 변환 생략 여부를 지시하는 플래그 (transform_skip_flag )를 개별적으로 시그널링 할 수 있다.
이러한 변환 생략 시그널링 방법의 경우, CBF가 1인 변환 생략가능한 모든 변환 블록에 대하여 개별적으로 변환 생략 여부를 지시하는 플래그 (transform_skip_flag )정보가 시그널링 되므로 비트량이 증가하는 문제점이 발생할 수 있다.
이에, 본 발명은 소정 단위(일 실시예에 의하면, 코딩 유닛(coding unit, CU)) 내에 포함된 하나 또는 복수개의 변환 유닛들의 변환 생략 여부를 대표하여 표시하는 정보를 설정하고, 이를 복호화 장치로 시그널링 하는 방법을 제안함으로써, 변환 생략을 시그널링하기 위한 비트량을 감소시키고, 궁극적으로 영상 부호화 효율을 증대시키는 것을 목적으로 한다.
특히, 화면 내에서 반복적으로 유사한 패턴이 발생하거나 고주파를 다량 포함하는 잔차 신호가 빈번히 발생하는 영상의 경우, 소정 단위 내에 속하는 변환 블록들은 모두 변환이 생략되거나 모두 변환이 수행될 가능성이 높으므로, 이 경우 개별 변환 블록별로 변환 생략 여부를 지시하는 플래그를 시그널링하는 대신, 소정 단위의 변환 생략 여부를 대표하는 플래그를 시그널링 함으로써 부호화 효율을 증가시킬 수 있다.
예를 들어, 컴퓨터에 의하여 만들어진 인공 영상의 경우, 반복적인 유사 패턴이 발생하거나 고주파를 포함할 수 있는 경향이 강하므로, 본 발명을 적용할 경우 그 효과가 증대될 수 있다.
본 발명의 설명에서는 편의상 소정 단위를 구체적으로 코딩 유닛의 용어를 사용하여 기술하나, 본 발명의 소정 단위가 반드시 코딩 유닛으로는 한정되지는 않는다. 한편, 본 발명 명세서에서 사용하는 코딩 유닛, 코딩 블록 (coding block, CB)을 설명하면 다음과 같다.
코딩 유닛은 하나의 코딩 블록 또는 복수개의 코딩 블록과 이들이 사용하는 신택스 요소정보로 구성된다. 컬러 영상의 경우 일반적으로 세개의 컴포넌트를 가지고 있으므로, 하나의 코딩 유닛은 각 컴포넌트별로 하나의 코딩블록을 가져 총 세개의 코딩 블록(예를 들어 세개의 컴포넌트를 갖는 영상이면서 각 컴포넌트별로 독립적으로 부호화 되지 않을 경우)을 가지거나, 하나의 코딩 블록 (예를 들어, 모노크롬 (Monochrome) 영상의 경우, 또는 컬러 영상이라도 각 컴포넌트별로 독립적으로 부호화될 경우)을 가질 수 있다.
또한, 변환이 적용되거나 변환 생략이 적용되는 변환 블록(transform block, TB)과, 분할의 단위가 되는 변환 유닛 transform unit, TU)에 대하여 설명하면 다음과 같다.
본 발명에 따른 변환 유닛(transform unit, TU)은 코딩 유닛으로부터 분할될 수 있는 단위이다. 하나의 코딩 유닛은 변환부호화를 위하여 하나 또는 복수개의 변환 유닛으로 분할 될 수 있는데, 구체적으로 어떻게 분할 되는 가는 코딩 유닛을 root로 하는 쿼드트리 정보에 의하여 지시된다. 이를 분할(split 정보 또는 split_transform_flag 정보) 라고 한다. 변환 유닛은 하나의 변환 블록 또는 복수개의 변환 블록과 이들이 사용하는 신택스 요소 정보로 구성된다. 변환 유닛은 각 색상 컴퍼넌트(예를 들어, Y,Cb,Cr)를 구성하는 변환 블록(transform block)들의 집합적인 개념을 가질 수 있으며, 하나의 변환유닛이 갖는 변환 블록의 개수는 색상 포맷에 따라 다를 수 있다
변환 블록은 변환 및 양자화를 수행하는 기본 단위에 해당한다.
세개의 컴포넌트를 가지고 있는 컬러 영상의 경우, 만일 색상 포맷이 4:2:0 또는 4:4:4 일 경우, 하나의 변환 유닛은 세개의 변환 블록 (하나는 루마 컴포넌트에 대한 변환 블록이고, 나머지 두개는 크로마 컴포넌트에 대한 변환블록이다)을 갖는다. 한편, 4:2:2 색상 포멧의 경우, 다섯개의 변환 블록 (하나는 루마 컴포넌트에 대한 변환 블록이고, 나머지 네 개는 크로마 컴포넌트에 대한 변환블록이다)을 가지며, 모노크롬 영상이거나 컬러 영상이라도 각 컴포넌트별로 독립적으로 부호화될 경우, 한개의 변환 블록을 가질 수 있다.
한편, 색상 포맷이 4:4:4인 경우, 하나의 변환 유닛에 속하는 변환 블록들은 모두 동일한 크기를 가질 수 있다.
색상 포맷이 4:2:0인 경우, 루마 변환 블록의 크기는 변환 유닛의 크기와 동일하지만 크로마 변환 블록의 크기는 변환 유닛보다 작을 수 있다. 즉, 동일한 변환 유닛에 속하는 변환 블록이라고 할지라도 루마와 크로마에 따라 변환 블록의 크기는 달라 질 수 있다. 그러나, 예외적으로 8X8 코딩 유닛이 한 차례 쿼드트리로 분할 되어 변환 유닛이 4x4의 크기를 가질 경우, 루마와 크로마 변환블록 모두 4x4의 동일한 크기를 갖도록 할 수 있다. 이것은 너무 작은 (예를 들어 4x4보다 작은) 변환 블록은 실제 응용에 있어서 복잡도 증가대비 효용이 별로 없기 때문이다.
도 3은 본 발명의 일 실시예에 따른 영상의 복호화 방법을 설명하기 위한 도면이다. 도 3을 참조하여 본 실시예에 따라 변환 생략이 적용되는 변환 블록에 대한 변환 생략 여부를 대표하는 대표 플래그 (transform_skip_all_ones_in_cu_flag) 및 이에 따라 수행되는 영상의 변환 과정을 설명하면 다음과 같다.
우선, 복호화 장치는 현재 코딩 유닛(CU)에 대하여 대표 플래그를 파싱할 것인지를 결정하기 위하여, 대표 플래그 파싱 조건 만족 여부를 판단한다(S310).
영상의 부호화 및 복호화 과정에서는 변환 생략이 적용될 수 있는 변환 블록의 크기를 미리 정한 후, 이를 시그널링하고 있다. 예를 들어 변환 생략이 적용될 수 있는 변환 블록의 크기는 4X4로 한정되거나, 변환 생략이 적용될 수 있는 최대 변환 블록의 크기가 정해질 수 있다. 따라서, 현재 코딩 유닛내 변환 블록의 크기가 변환 생략이 적용될 수 있는 크기에 해당하지 않는 경우에는 변환 생략 자체가 원천적으로 발생하지 않으므로, 변환 생략 여부를 대표하여 표시하는 대표 플래그의 파싱자체가 필요없게 된다.
본 단계 (S310)는, 현재 코딩 유닛의 크기가 이러한 변환 생략이 적용될 수 있는 크기 조건을 만족하는, 즉, 변환 블록의 변환 생략 여부를 지시하는 플래그(transform_skip_flag)의 파싱이 필요한 변환 블록이 현재 코딩 유닛 내에 존재할 수 있는지의 판단을 포함한다. 변환 생략 여부를 지시하는 플래그는 설명의 편의 상 변환 생략 플래그 (transform_skip_flag) 또는 제1 정보로 표현될 수 있다.
한편, 본 발명의 일 실시예에 따르면, 대표 플래그를 파싱하기 전에 대표 플래그를 이용하여 변환 생략 여부를 결정하는 기능을 사용하는지 여부를 나타내는 플래그 정보를 더 수신할 수 있다. 대표 플래그를 사용하여 변환 생략을 대표하는 기능을 사용하는지 여부를 지시하는 플래그 정보는 아래 표 1과 같이 시그널링될 수 있으며, 복호화 장치는 이를 수신할 수 있다.
또한, 변환 생략기능 자체가 사용되지 않을 경우는 변환 생략 정보를 대표하여 시그널링하는 기능 자체도 필요없게 되므로, 대표 플래그를 사용하여 변환 생략 기능을 사용하는지 여부를 지시하는 플래그 정보인 transform_skip_enabled_flag 정보와 연계하여, 대표 플래그를 사용하여 변환 생략을 대표하는 기능을 사용하는지 여부를 지시하는 플래그 정보는 아래 표 2와 같이 시그널링될 수 있으며, 복호화 장치는 이를 수신한다.
표 2에 따른 실시예에서 transform_skip_enabled_flag가 0일 경우에는 transform_skip_group_signalling_enabled_flag는 시그널링 되지 않으며, 이때, 복호화 장치는 이 값을 0으로 유추한다.
표 1과 표 2에 개시된 본 발명의 기능 사용 여부를 나타내는 플래그 정보(transform_skip_group_signalling_enabled_flag)는 소정의 파라메터 set()를 사용하여 전송될 수 있다.
더욱 구체적으로, 상위 레벨인 시퀀스 파라미터 세트(Sequence parameter set) 또는 픽쳐 파라미터 세트(Picture parameter set)의 익스텐션(extension) 레벨을 통하여 시그널링 될 수 있다. 예를 들어, sps_range_extension (sequence parameter set range extension), sps_scc_extension (sequence parameter set screen content coding extension), pps_range_extension (picture parameter set range extension)또는 pps_range_extension (picture parameter set screen content coding extension)을 통하여 시그널링 될 수 있다.
표 1과 표 2에 개시된 본 발명의 transform_skip_group_signalling_enabled_flag 정보의 동작 설명은 다음과 같다.
transform_skip_group_signalling_enabled_flag가 1이면 변환 생략을 대표하는 기능을 사용하는 것을 나타내므로 코딩 유닛 레벨에서 대표 플래그가 시그널링 될 수 있다. transform_skip_group_signalling_enabled_flag가 0이면 변환 생략을 대표하는 기능을 사용하지 않는 것을 나타낼 수 있으며, 또는 부호화 장치 및 복호화 장치에서 사전에 설정된 다른 의미로 사용될 수 있다.
변환 생략 정보를 대표하여 시그널링하는 기능이 사용되지 않는 경우, 상기 transform_skip_group_signalling_enabled_flag는 시그널링되지 않을 수 있다.
본 발명에 따른 대표 플래그는 표 3과 같이 시그널링 될 수 있다.
표 3를 참조하여 S310 단계에서의 대표 플래그 파싱 조건이 만족되는 경우는 다음을 포함한다. 표 1에서 시그널링되는 transform_skip_group_signalling_enabled_flag가 1이고, 변환 생략의 적용이 가능한지 여부를 지시하는 플래그(transform_skip_enabled_flag)가 1이고, 현재 코딩 유닛이 무손실 부호화 되지 않고(!cu_transquant_bypass_flag), 현재 코딩 유닛에서 분할될 수 있는 최소 크기의 변환 블록이 변환 생략이 적용될 수 있는 최대 변환 블록 크기보다 작거나 같은 경우(if ( ( log2CbSize ? MaxTrafoDepth ? (ChromaArrayType % 3 = = 0 ? 0 : 1 ) )<= Log2MaxTransformSkipSize), 변환 생략 여부를 지시하는 제1 정보를 대표하는 대표 플래그(transform_skip_all_ones_in_cu_flag)를 파싱할 것으로 판단될 수 있다.
여기서, 현재 코딩 유닛에서 분할될 수 있는 최소 크기의 변환 블록이라 함은, 최대 깊이(MaxTrafoDepth)로 변환 유닛이 분할되는 것을 포함한다. 또한, 최대 깊이라는 표현에서 깊이란 다음을 의미할 수 있다. 깊이가 0 인 경우는 변환을 위하여 현재 코딩 유닛이 더 이상 분할 되지 않음을 의미할 수 있다. 또한 깊이가 1은, 변환을 위하여 코딩 유닛이 쿼드 트리로 한 단계 분할 된다는 의미할 수 있다. 이때, 분할 후 변환 유닛을 구성하는 특정 변환 블록이 부호화 장치가 미리 정한 최소 변환 블록 크기보다 작아지는 경우는 그 해당 변환 블록은 더 이상 분할 되지 않을 수 있다. 또한 깊이가 1씩 증가할 때 마다, 위와 같이 최소 변환 블록 크기 보다 작아지지 않는다는 조건하에서 쿼드 트리로 한 단계 더 분할될 수 있다. 또한, 본 발명의 설명에서 깊이는, 코딩 유닛이 변환을 위하여 분할 되는 것을 의미하므로, 특별한 설명이 없는 경우 변환 깊이(trafoDepth)라는 용어와 같은 의미로 사용된다.
상기 표 3을 참조하여 설명한 대표 플래그 파싱 조건이 만족되는 경우에는 변환 생략 여부를 지시하는 제1 정보를 대표하는 대표 플래그가 파싱 될 수 있다 (S320).
반면, 상기 조건이 만족되지 않는 경우 (예를 들어, 현재 코딩 유닛 내에 변환 생략이 가능한 크기의 변환 블록이 존재할 수 없는 경우, 또는 본 발명의 대표 플래그를 사용하지 않는다고 지시되는 경우등), 대표 플래그 파싱 조건이 만족되지 않은 것으로 판단될 수 있다. 대표 플래그 파싱 조건이 만족 되지 않아 파싱을 안 하는 경우에는 대표 플래그(transform_skip_all_ones_in_cu_flag) 의 값을 0으로 간주하고(S311) 후속 복호화를 수행한다(S315).
본 발명의 기능 사용 여부를 나타내는 플래그 정보(transform_skip_group_signalling_enabled_flag)가 상기의 표 2에 개시된 것과 같이 시그널링 되는 실현예에서는, 표 3과 연관하여 설명된 상기 조건문의 처음 두 조건, 즉, transform_skip_group_signalling_enabled_flag가 1이고, 변환 생략의 적용이 가능한지 여부를 지시하는 플래그(transform_skip_enabled_flag)가 1이라는 앤드(AND) 조건으로 묶인 두 조건은 실질적으로 transform_skip_group_signalling_enabled_flag로 대체 될 수 있다. 왜냐하면 표 2에서 보는 바와 같이 transform_skip_group_signalling_enabled_flag 값이 1이 되는 것은 transform_skip_enabled_flag 값이 1인 경우에만 가능하기 때문이다.
표 3에서 ChromaArrayType 은 현재 복호화할 영상의 컬러 포멧을 지칭한다ChromaArrayType 은 1,2,3의 값을 가질 수 있으며 그 값 각각의 의미는 색상 포맷이 각각 4:2:0, 4:2:2, 4:4:4인 것을 의미한다. 또한, 주어진 영상이 monochrome 영상의 경우 또는 4:4:4 컬러영상에서 복호화시 각 컬러채널간의 상호 의존 없이 (즉, 복호화시 다른 컬러채널에서의 정보를 사용하지 않는다) 각 컬러 채널을 별개로 부호화(또는 복호화) 할 경우는 ChromaArrayType은 0의 값을 갖는다. 한편, 표 2에서 (ChromaArrayType % 3 = = 0 ? 0 : 1 )의 식은 ChromaArrayType 이 0 또는 3인 경우에는 0의 값을, 그리고 그 이외의 경우는 1의 값을 갖는 것을 의미한다.
예를 들어, 코딩 유닛의 크기를 NxN 이며 해당 코딩 유닛에서 분할 가능한 최소 크기의 변환 블록 크기는 (N/4)x(N/4) 이고, 변환 생략이 적용될 수 있는 최대 변환 블록의 크기가 4x4 로 설정된 경우를 가정하자. 이런 경우, 코딩 유닛의 크기가 64x64 이면 (즉, N=64), 코딩 유닛이 가질 수 있는 최소 크기의 변환 블록 크기는 16x16 이다. 따라서 64x64 크기의 코딩 유닛 내에는 변환 생략이 가능한 변환 블록은 존재할 수 없다. 따라서, S310 단계의 대표 플래그 파싱 조건이 만족되지 못하므로, 변환 생략 여부를 지시하는 제1 정보를 대표하는 대표 플래그(transform_skip_all_ones_in_cu_flag)의 파싱은 수행되지 않는다.
표 3을 참조하여 설명한 본 발명의 실시예에 따르면, 상기 대표 플래그(transform_skip_all_ones_in_cu_flag)는 변환 블록의 제1 정보를 대표할 수 있다. 즉, 표 3을 참조하여 설명한 S310 단계의 대표 플래그 파싱 조건에 따르면, 본 발명의 대표 플래그 (transform_skip_all_ones_in_cu_flag)는 변환 생략이 적용될 수 있는 최대 변환 블록 크기보다 같거나 작은, 현재 코딩 유닛에서 분할되는 최소 크기의 모든 변환 블록에 대한 제1정보를 대표할 수 있다.
본 발명의 다른 실시예에 따르면, 상기 대표 플래그(transform_skip_all_ones_in_cu_flag)는 루마 변환 블록의 제1 정보만을 대표할 수 있도록 구성될 수 있다. 즉, 대표 플래그는 코딩 유닛내의 루마 변환 블록의 변환 생략 여부를 지시하는 제1 정보를 대표할 수 있다 (즉, 크로마 변환 블록의 제1 정보는 대표하지 않는다). 이때, 부호화 장치로부터 복호화 장치로 대표 플래그는 표 4와 같이 시그널링 될 수 있다.
표 4를 참조하면, 표 1 또는 표 2에서 시그널링되는 transform_skip_group_signalling_enabled_flag가 1이고, 변환 생략의 적용이 가능한지 여부를 지시하는 플래그(transform_skip_enabled_flag)가 1이고, 현재 코딩 유닛이 무손실 부호화되지 않고(!cu_transquant_bypass_flag), 현재 코딩 유닛에서 분할될 수 있는 최소 크기의 루마 변환 블록의 크기가 변환 생략이 적용될 수 있는 최대 변환 블록 크기보다 작거나 같은 경우(if ( ( log2CbSize ? MaxTrafoDepth )<= Log2MaxTransformSkipSize), 변환 생략 여부를 지시하는 제1 정보 중 루마 변환 블록의 제1 정보를 대표하는 대표 플래그(transform_skip_all_ones_in_cu_flag)를 파싱할 것으로 판단될 수 있다. 반면, 상기 모든 조건이 만족되지 않는 경우, 대표 플래그의 파싱을 하지 않을 것으로 판단될 수 있다. 대표 플래그가 파싱되지 않는 경우에는 대표 플래그(transform_skip_all_ones_in_cu_flag) 의 값을 0으로 간주하고(S311) 후속 복호화를 수행한다(S315).
단계 S320를 통하여 대표 플래그가 파싱되고 그 값이 1이면(S330), 복호화 장치는 대표 플래그가 대표하는 제1 정보가 적용될 변환 블록인지 여부를 판단하기 위하여 (즉, 만일 제1 정보가 적용될 변환 블록이라면 제1 정보를 파싱하지 않기 위하여), 제1 정보의 파싱 생략 조건이 만족되는지 판단한다(S340). 이는 현재 복호화를 수행하는 코딩 유닛 내에 변환 생략이 적용될 수 있는 여러 크기의 변환블록 (루마 변환 블록, 크로마 변환 블록 포함)이 존재 할 수 있으므로, 각 실현예에 따라, 이 들중 특정 조건에 맞는 변환 블록에 대하여 제1 정보를 대표하도록 실현이 가능하기 때문이다.
우선 표 3과 연관된 실현예에 대한, S340의 제1 정보 파싱 생략 조건은 현재 복호화할 변환 블록이 현재 복호화를 수행하는 코딩 유닛이 분할되는 최대 깊이(MaxTrafoDepth)의 변환 유닛에 해당하는지 여부일 수 있다.
만약, 복호화할 변환 블록이 단계 S340의 판단 결과, 최대 깊이(MaxTrafoDepth)의 변환 유닛에 해당되는 경우, 복호화 장치는 복호화할 변환 블록에 대한 제1 정보를 파싱하지 않고 제1 정보를 변환생략을 의미하는 1로 유추할 수 있다(S350).
즉, 단계 S340을 만족하면, 복호화 장치는 코딩 유닛으로부터 분할된 최대 깊이의 변환 유닛에 포함되는 변환 블록에 변환 생략이 적용된 것으로 판단하고 변환 생략 플래그인 제1 정보의 파싱이 필요없는 것으로 판단할 수 있다. 물론, 이때, 해당 변환 블록의 크기는 변환 생략이 가능한 최대 변환 블록 크기 이하인 기본 조건을 만족해야한다. 예를 들어, 변환 생략이 적용될 수 있는 최대 변환 블록의 크기가 4x4 이고, 부호화 영상의 색상 포멧이 4:2:0 이며, 32x32 크기의 코딩 유닛에서 분할된 최대 깊이의 변환 유닛인 8x8 크기의 변환 유닛을 복호화 중인 상황을 가정하자. 이때, 현재 변환 유닛은 8x8 크기의 루마 변환 블록과 4x4 크기의 크로마 변환 블록을 가진다. 이때 8x8 크기의 루마 변환 블록은 변환 생략이 가능한 최대 변환 블록 크기보다 크기 때문에 변환 생략 여부가 판단될 필요가 원천적으로 없다. 그러나 크로마 변환 블록은 4x4 크기이기 때문에 변환 생략 여부가 판단될 필요가 있으며, 이들에 대한 제1 정보는 파싱하지 않고 대표 플래그(즉, 1의 값으로)를 통하여 유추될 수 있다.
또한, 현재 변환 블록의 CBF는 1인 조건을 만족해야 한다. 즉, 부호화되는 변환블록이어야 한다. CBF가 0인 변환 블록은 해당 블록이 포함하는 영역의 부호화된 잔차신호를 0으로 간주되어 부호화 되지 않으므로 변환 및 변환 생략의 사용 자체가 불필요하고 변환 생략 여부 또한 판단될 필요가 없다.
본 발명의 대표 플래그를 사용하는 실시예들에 있어서, 부호화 장치로부터 복호화 장치로 선택적으로 시그널링되는 변환 생략 플래그 (transform_skip_flag)에 대한 신택스 구조를 나타내면 표 5와 같다.
표 5를 참조하는 실시예에 따르면, 대표 플래그는 제1 정보 파싱생략 조건 (S340)을 만족하는 변환 블록들의 변환 생략 플래그를 대표할 수 있다. 따라서, 복호화 장치는 대표 플래그가 1인 경우 제1 정보 파싱생략 조건을 판단함으로써 개별적인 변환 생략 플래그의 파싱 여부를 판단할 수 있다.
제1정보 파싱생략 조건은 대표 플래그인 transform_skip_all_ones_in_cu_flag가 1이고, 변환 블록이 코딩 유닛으로부터 분할되는 최대 깊이의 변환 유닛에 포함되는 (log2TrafoSize==Max(2,log2CbSize?MaxTrafoDepth?(ChromaArrayType%3==0?0:(cIdx?1:0))))것을 포함 할 수 있다. 이 파싱 생략 조건을 만족하는 경우 현재 복호화하는 변환블록의 제1 정보는 파싱되지 않고, 대신 변환생략을 의미하는 값인 1로 설정될 수 있다(transform_skip_flag[x0][y0][cIdx]=1).
S340의 조건 적용은, 기본적으로 기존 기술에서 사용하는 변환 생략 기능이 적용될 수 있는 블록 (예로써, 현재 복호화하는 변환 블록이 변환 생략이 적용되는 최대 변환 블록 크기 이하의 변환 블록으로써, 부호화된 변환계수 정보가 있는 (즉, CBF가 1이라는 의미) 변환 블록)을 대상으로 한다는 것은 기존 기술과 동일하므로, 이곳에서의 중복된 설명은 생략한다.
본 실시예에 따를 경우, 대표 플래그는 현재 코딩 유닛으로부터 분할될 수 있는 최대 깊이의 분할 유닛에 속하는 변환 블록의 변환 생략을 대표할 수 있다.
표 4를 참조하여 설명한 실현예, 즉, 대표 플래그가 루마 변환 블록의 제 1 정보만을 대표하는 실시예에 따라, 부호화 장치로부터 복호화 장치로 전송되는 변환 생략 플래그에 대한 신택스 구조는 표 6과 같이 나타낼 수 있다.
표 6을 참조하는 실시예에 따르면, 대표 플래그는 제1정보 파싱 생략 조건을 만족하는 루마 변환 블록들의 변환 생략 플래그를 대표할 수 있다.
표 6에 따른 제1정보 파싱생략 조건은 대표 플래그인 transform_skip_all_ones_in_cu_flag가 1이고, 루마 변환 블록이고 (cIdx 가 0을 갖음), 변환 블록이 코딩 유닛으로부터 분할되는 최대 깊이의 변환 유닛에 포함되는 (log2TrafoSize==Max(2,log2CbSize?MaxTrafoDepth))것을 포함 할 수 있다. 이 조건을 만족하는 경우, 현재 복호화중인 루마 변환 블록의 제1 정보는 파싱되지 않고 대신 변환 생략을 의미하는 값인 1로 설정될 수 있다(transform_skip_flag[x0][y0][cIdx=0]=1).
본 실시예에 대한 여타의 설명은 앞선 실현예와 동일하므로 생략한다.
본 실시예에 따를 경우, 대표 플래그는 현재 코딩 유닛으로부터 분할될 수 있는 최대 깊이의 분할 유닛에 속하는 루마 변환 블록의 변환 생략을 대표할 수 있다.
도 4는 본 발명의 일 실시예에 따른 대표 플래그가 대표하는 블록을 설명하기 위한 도면이다.
변환 생략이 4X4에서부터 16X16 크기의 변환 블록에 적용되는 것으로 가정하면, 16X16의 코딩 유닛의 경우 최대 깊이로 분할 된 4X4 변환 유닛에 포함된 변환 블록을 대표하는 대표 플래그가 시그널링 될 수 있다.
즉, 도 4에서 16X16의 코딩 유닛이 최대 깊이를 갖는 변환 유닛으로 분할되고, 최대 깊이에 해당하는 4X4 변환 유닛이 포함하는 부호화 되는 변환 블록의 변환 생략여부 즉, 제1 정보를 대표 플래그가 대표로 시그널링할 수 있다. 도 4에서는 회색으로 도시된 블록들은 대표 플래그가 대표하는 변환 블록을 포함하는 변환 유닛을 나타낸다.
지금까지의 실시예에 따를 경우, 대표 플래그는 현재 코딩 유닛으로부터 분할될 수 있는 최대 깊이의 분할 유닛에 속하는 변환 블록의 변환 생략을 대표하거나, 현재 코딩 유닛으로부터 분할될 수 있는 최대 깊이의 분할 유닛에 속하는 루마 변환 블록의 변환 생략을 대표할 수 있다. 그러나, 본 발명의 또 다른 실시예에 따르면, 대표 플래그는 최대 깊이를 갖는 변환 유닛이 아닌 특정 깊이를 갖는 변환 유닛의 변환 생략을 대표하도록 할 수도 있다. 이는 도 3의 S340 단계를 변형하여 구현함으로써 쉽게 실현될 수 있다. 이 실현예는 도 6에 나타나 있다.
본 실시예에 따른 대표 플래그는 표 3 및 표 4와 같이 시그널링 될 수 있고, 대표 플래그가 파싱되면, 복호화 장치는 대표 플래그에 기초하여 제1 정보의 파싱 여부를 판단할 수 있다.
만약, 대표 플래그가 1이면(S630), 복호화 장치는 코딩 유닛으로부터 분할될 변환 유닛에 포함되는 변환 블록의 변환 생략 여부를 지시하는 제1 정보를 파싱하지 않고 변환 블록 (또는 다른 실현예에서는 루마 변환 블록)에 대한 제1 정보를 1로 유추할 수 있다(S650).
만일 대표 플래그가 0이면 복호화 장치는 변환 블록에 대한 제1 정보를 파싱하고, 이 파싱된 값에 따라 변환 생략(S660)하거나 (제1 정보가 1인 경우), 변환을 수행 (S680)하고 (제1 정보가 0인 경우) 후속 복호화를 수행한다.
즉, 복호화 장치는 코딩 유닛이 포함하는 부호화되는 변환 블록 (또는 다른 실현예에서는 루마 변환 블록)중 그 블록이 변환 생략이 적용될 수 있는 최대 변환 블록의 크기 보다 크지 않고, 대표 플래그가 1의 값을 갖는 경우 그 블록에 대한 제1 정보의 파싱이 필요없는 것으로 판단하고, 제1 정보는 1로 유추할 수 있다.
본 실시예에 따르면, 변환 깊이를 고려하지 않고, 복호화중인 코딩 유닛내의 변환 생략이 가능한 조건 (변환 생략이 가능한 블록크기를 갖는 부호화된 변환블록)을 만족하는 변환 블록(또는 다른 실현예에서는 루마 변환 블록)들의 변환 생략 플래그를 대표할 수 있다.
이 실현예에서 부호화 장치로부터 복호화 장치로 전송되는 신호들의 신택스 구조는 표 7과 같다.
표 7을 참조하면, 대표 플래그 (transform_skip_all_ones_in_cu_flag)가 1이면, 제1 정보는 파싱되지 않고 1로 설정될 수 있다(transform_skip_flag[x0][y0][cIdx]=1).
즉, 본 실시예에 따를 경우, 복호화 장치는 대표 플래그가 1인 경우 변환생략이 적용될 수 있는 변환 블록들이라도 개별적인 변환 생략 플래그를 파싱하지 않는다.
도 7은 본 발명의 일 실시예에 따른 대표 플래그가 대표하는 블록을 설명하기 위한 도면이다. 도시된 바와 같이, 16x16의 코딩 유닛은 16x16, 8x8과 4x4의 변환 유닛으로 분할될 수 있다. 변환 생략이 4X4에서부터 16X16 크기의 변환 블록에 적용되는 것으로 가정하면, 16x16, 8x8, 4x4 크기를 갖는 모든 변환 유닛에 변환 생략이 적용될 수 있다. 도 7에서 회색으로 도시된 블록들은 대표 플래그가 적용되는 변환 블록을 포함하는 변환 유닛을 나타낸다. 즉, 대표 플래그가 1로 시그널링 된 경우, 16x16의 코딩 유닛에서 분할된 변환 유닛이 포함하는 부호화된 변환 블록에 변환 생략이 적용될 수 있다.
만약, 16x16의 코딩 유닛이 8x8의 변환 유닛으로 분할되고 추가적으로 분할되지 않는 경우, 대표 플래그는 4개의 8x8의 변환 유닛 각각이 포함하는 변환 블록의 변환 생략 모두를 대표할 수 있다.
제1 정보가 1로 유추되면, 복호화 장치는 상기 제1 정보에 의해 변환 생략여부가 결정되는 변환 블록에 대하여 변환 과정을 수행하지 않고, 즉 변환을 생략하고 후속적인 복호화를 수행할 수 있다(S660).
만약, 단계 S630에서 대표 플래그가 0이면, 복호화 장치는 기존 방법 대로 변환 블록에 대하여 개별적으로 변환 생략 플래그를 파싱한다(S670).
즉, 대표 플래그가 0이면, 각 변환 블록의 transform_skip_flag 파싱을 위한 일련의 과정은 종래의 방법 대로 수행되는 것을 의미한다. 즉, transform_skip_flag 시그널링이 요구되는 변환 블록 마다 제1 정보가 파싱된다.
만약, 대표 플래그(transform_skip_all_ones_in_cu_flag)가 존재하지 않는 경우, 대표 플래그는 0으로 간주될 수 있다.
제1 정보에 따라 변환 블록은 변환이 수행될 수도 있고, 변환이 생략될 수도 있다. 변환 생략 여부에 따른 변환 과정 및 후속적인 복호화 과정이 수행될 수 있다(S680, S660).
본 발명의 또 다른 실현예는, 변환 깊이를 고려하지 않고, 복호화중인 코딩 유닛내의 변환 생략이 가능한 조건 (예를 들어, 변환 생략이 가능한 블록크기를 갖는 부호화된 변환블록)을 만족하는 루마 변환 블록들의 변환 생략 플래그를 대표할 수 있다.
이 실현예에서 부호화 장치로부터 복호화 장치로 전송되는 신호들의 신택스 구조는 표 8과 같다.
표 8에 따르면, 대표 플래그가 1 일때, 루마 변환 블록(cIdx 가 0을 갖음) 에 대하여, 복호화 장치는 코딩 유닛으로부터 분할될 변환 유닛에 포함되는 루마 변환 블록의 변환 생략 여부를 지시하는 제1 정보를 파싱하지 않고 제1 정보를 1로 유추할 수 있다(S650) (즉, transform_skip_flag[x0][y0][cIdx=0]=1).
만일 대표 플래그가 0이면 복호화 장치는 루마 변환 블록에 대한 제1 정보를 파싱하고, 이 파싱된 값에 따라 변환 생략(S660)하거나 (제1 정보가 1인 경우), 변환을 수행 (S680)하고 (제1 정보가 0인 경우) 후속 복호화를 수행한다.
즉, 복호화 장치는 코딩 유닛이 포함하는 부호화되는 루마 변환 블록중 그 블록이 변환 생략이 적용될 수 있는 최대 변환 블록의 크기 보다 크지 않고, 대표 플래그가 1의 값을 갖는 경우 그 블록에 대한 제1 정보의 파싱이 필요없는 것으로 판단하고, 제1 정보는 1로 유추할 수 있다. 본 실시예에 대한 여타의 설명은 앞선 실현예와 동일 하므로 생략한다.
본 실시예에 따를 경우, 대표 플래그는 현재 코딩 유닛으로부터 분할될 수 있는 최대 깊이의 분할 유닛에 속하는 루마 변환 블록의 변환 생략을 대표할 수 있다.
또는, 대표 플래그는 개별적인 채널에 대한 변환 블록의 변환 생략을 대표할 수도 있다. 이 경우, 대표 플래그에는 대표하는 채널이 표시될 수 있다. 예를 들어 루마 블록을 대표하는 경우, 대표 플래그는 transform_skip_all_ones_in_cu_luma_flag으로 시그널링 되거나 크로마 블록을 대표하는 경우 transform_skip_all_ones_in_cu_chroma_flag으로 시그널링 될 수도 있다. 물론, 색상 채널이 RGB인 경우, 모든 채널을 대표하는 대표 플래그가 시그널링 될 수도 있고, 각 색상인 R,G,B 각각을 대표하는 대표 플래그가 시그널링될 수도 있을 것이다.
다시 도 3으로 돌아가, S350 단계에서 제1 정보가 1로 유추되면, 복호화 장치는 해당 변환 블록에 대하여 변환 과정을 수행하지 않고, 즉 변환을 생략하고 후속적인 복호화를 수행할 수 있다(S360).
만약, 단계 S330에서 대표 플래그가 0이거나, S340의 제1정보 파싱 생략 조건을 만족하지 못하였을 경우, 복호화 장치는 기존 방법 대로 변환 블록에 대하여 개별적으로 변환 생략 플래그를 파싱한다(S370).
즉, 대표 플래그가 0이면, 현재 transform_skip_flag 시그널링을 위한 일련의 과정은 종래의 방법 대로 수행되는 것을 의미하고, 이는 transform_skip_flag 시그널링이 요구되는 변환 블록 마다 제1 정보가 시그널링되는 것을 뜻한다.
만약, 대표 플래그(transform_skip_all_ones_in_cu_flag)가 존재하지 않는 경우, 대표 플래그는 0으로 간주될 수 있다.
제1 정보에 따라 변환 블록은 변환이 수행될 수도 있고, 변환이 생략될 수도 있다. 변환 생략 여부에 따른 변환 과정 및 후속적인 복호화 과정이 수행될 수 있다(S360, S380).
지금까지의 변환 생략이라는 용어에서 변환이라 함은 복호화 과정에 수행되는 것이기 때문에 실질적으로 부호화 장치에서 실행한 변환의 역과정인 역변환 (inverse transform)을 의미하지만, 역변환 7역시 변환의 일종이므로 그 실질적인 의미하는 바에 있어 혼동의 소지가 없을 것 이다.
도 5는 본 발명의 다른 실시예에 따른 영상의 복호화 방법을 설명하기 위한 도면이다. 구체적으로 도 5는 대표 플래그를 참조하여 분할 플래그를 유추하는 과정을 설명하는 도면이다.
도 5의 단계 S510 및 단계 S530은 도 3의 단계 S310 및 단계 S330과 유사하므로 중복된 설명은 생략한다. 즉, 본 실시예에 따른 대표 플래그는 현재 코딩 유닛으로부터 분할될 수 있는 최대 깊이의 분할 유닛에 속하는 변환 블록의 변환 생략을 대표하고, 이러한 대표 플래그에 기초하여 변환 유닛의 분할 여부가 판단될 수 있다.
대표 플래그가 파싱되면, 복호화 장치는 대표 플래그에 기초하여 변환 유닛의 분할 여부를 나타내는 제2 정보(split_transform_flag)의 파싱 여부를 판단할 수 있다. 판단 결과, 제2 정보의 파싱이 필요 없는 경우 대표 플래그에 기초하여 제2 정보를 유추하고, 제2 정보의 파싱이 필요한 경우 제2 정보를 파싱할 수 있다.
만약, 대표 플래그가 1이면, 복호화 장치는 변환 유닛에 대한 변환 깊이가 0인지 여부를 판단할 수 있다(S540).
만약, 변환 유닛에 대한 변환 깊이가 0이면, 복호화 장치는 변환 깊이가 0인 변환 유닛에 대한 제2 정보를 파싱하지 않고 제2 정보를 1로 유추할 수 있다(S550).
즉, 단계 S540을 만족하면, 복호화 장치는 코딩 유닛의 크기와 동일한 크기를 갖는 변환 유닛의 분할 여부를 지시하는 제2 정보(변환 깊이 0 ? 1 의 분할 여부를 지시하는 split_transform_flag)의 파싱이 필요없는 것으로 판단할 수 있다.
이때, 현재 코딩 유닛의 크기는 분할된 변환 유닛을 가질 수 있는 조건을 만족해야 한다. 예를 들어, 최소 변환 유닛의 크기가 8X8로 설정되어 있고, 현재 코딩 유닛의 크기가 8X8인 경우, 현재 코딩 유닛은 분할된 변환 유닛을 가질 수 없기 때문에 분할 여부가 판단될 필요가 없다.
본 실시예에 따라 부호화 장치가 복호화 장치로 제2 정보를 시그널링하는 신택스 구조를 나타내면 표 9와 같다.
표 9를 참조하면, 대표 플래그(transform_skip_all_ones_in_cu_flag)가 1이고, 변환 깊이가 0이면(trafoDepth = 0), 제2 정보는 파싱되지 않고 1로 설정될 수 있다(split_transform_flag[ x0 ][ y0 ][ trafoDepth ] = 1).
제2 정보가 1로 유추되면, 복호화 장치는 해당 변환 유닛에 대하여 분할을 수행하고 (S560), 후속적인 복호화를 수행할 수 있다(S580).
한편, 변환 깊이가 0이 아닌 변환 유닛에 대하여는 기존의 방식과 같이 제2 정보(변환 깊이 0 ? 1 이외의 분할 여부를 지시하는 split_transform_flag)를 파싱하여 변환 유닛의 분할 여부를 판단한다.
만약, 단계 S530에서 대표 플래그가 0이거나, 단계 S540에서 변환 유닛의 변환 깊이가 0이 아니면, 복호화 장치는 기존 방법 대로, 제2 정보를 파싱하여 변환 유닛의 분할 여부를 판단한다(S570).
제2 정보가 파싱되면, 변환 블록은 분할이 수행(S560)될 수도 있고, 분할이 생략될 수도 있고, 이에 따라 복호화 장치는 후속적인 복호화 과정을 수행할 수 있다(S580).
본 실시예를 정리하면, 대표 플래그가 1인 경우, 코딩 유닛이 최대 변환 깊이까지 분할될 수 있으므로, 변환 깊이가 0인 변환 유닛에 대하여는 분할 플래그를 시그널링 하지 않고 분할 유닛이 분할되는 것으로 유추한다.
도 8은 본 발명의 다른 실시예에 따라 대표 플래그를 참조하여 분할 플래그의 유추 과정을 설명하는 도면이다.
도시된 바와 같이, 도 8은 도 5와 대부분의 단계가 동일하고, 대표 플래그가 1인 경우, 제2 정보를 1로 유추하기 위하여 판단하는 단계(S840)만이 다르다. 중복되는 설명은 생략한다.
단계 S840에 따르면, 복호화 장치는 변환 깊이가 0인 변환 유닛, 즉 코딩 유닛과 동일한 크기를 갖는 변환 유닛의 크기가 변환 생략이 적용될 수 없는 크기인지를 판단한다.
판단 결과, 변환 유닛의 크기가 변환 생략이 적용될 수 없는 크기인 경우(즉, 변환 깊이가 0인 변환 유닛에 해당하는 모든 변환 블록의 크기가 변환 생략이 가능한 변환 블록의 최대 크기 보다 큰 경우), 복호화 장치는 변환 깊이가 0인 변환 유닛에 대한 제2 정보(변환 깊이 0 ? 1 의 분할 여부를 지시하는 split_transform_flag)를 파싱하지 않고 제2 정보를 1로 유추할 수 있다(S850).
또 다른 실현에서는, 상기의 1로 유추된 제 2 정보에 따라 변환 유닛을 한 단계 쿼드 트리 분할한 다음의 변환 유닛의 크기가 아직도 변환 생략이 적용될 수 없는 크기인 경우, 복호화 장치는, 이 변환 유닛에 대한 제2 정보(split_transform_flag)를 파싱하지 않고 제2 정보를 1로 또 한번 유추하도록 추가로 구성할 수 있다. 이 추가 구성은 1회 또는 2회 등 소정의 회수만큼으로 제한되거나, 상기의 1로 유추된 제 2 정보에 따라 변환 유닛을 다시 한 단계 쿼드트리 분할 한 다음의 변환 유닛의 크기가 변환 생략이 적용될 수 있는 크기에 도달할 때까지 반복적으로 되도록 구성할 수 있다.
한편, 변환 유닛의 변환 깊이가 0이 아니거나, 변환 깊아가 0이더라도 변환유닛의 크기가 변환 생략이 적용될 수 있는 크기이면 기존의 방식과 같이 제2 정보(split_transform_flag)를 파싱하여 변환 유닛의 분할 여부를 판단한다.
본 실시예에 따른 부호화 장치로부터 복호화 장치로 전송되는 제2 정보에 대한 신택스 구조를 나타내면 표 10과 같다.
표 10을 참조하면, 대표 플래그인 transform_skip_all_ones_in_cu_flag가 1이고, 변환 유닛의 크기가 변환 생략이 적용될 수 없는 크기인 경우(Max( 2, log2TrafoSize ? ( ChromaArrayType %3 = = 0 ? 0 : 1 ) ) > Log2MaxTransformSkipSize), 제2 정보는 파싱되지 않고 1로 설정될 수 있다(split_transform_flag[ x0 ][ y0 ][ trafoDepth ] = 1).
한편, 본 발명의 다른 실시예에 따르면, 상술된 대표 플래그는 코딩 유닛에 적용된 예측 모드에 대응하여 적용될 수 있다. 즉, 코딩 유닛에 적용된 특정 예측 모드에 대응하여 대표 플래그의 시그널링 여부가 결정될 수 있다.
예를 들어, 코딩 유닛의 예측 모드가 미리 약속된 특정 예측 모드인 경우에만 제안된 대표 플래그가 시그널링될 수 있다.
또 다른 예를 들어, 코딩 유닛의 예측 모드가 인트라 모드 또는 IBC 예측 모드인 경우에 제안된 대표 플래그가 시그널링될 수 있다. 이 경우, 복호화 장치는 예측 모드가 인트라 모드 또는 IBC 예측 모드인 경우에만 대표 플래그를 파싱할 수있다. 또는 스크린 컨텐츠에 대한 예측 모드인 경우, 또는 특정 모드를 한정하는 시그널링에 의하여 코딩 유닛의 예측 모드가 한정되는 경우, 해당 예측 모드에만 대표 플래그가 시그널링 될 수 있다.
IBC 예측은 현재 픽쳐 내에서 동일한(또는 유사한) 영역 또는 객체가 존재하는 경우 사용될 수 있는 예측 방법으로, 복호화 장치는 IBC 모드를 사용하여 현재 블록에 대한 예측 값을 생성할 수 있다.
도 9는 본 발명의 일 실시예에 따른 IBC 예측을 설명하기 위한 도면이다.
IBC 예측의 경우, 현재 픽쳐에 있는 특정 영역이 현재 블록의 참조 블록으로 사용될 수 있으며, 이 특정 영역의 위치를 표시하기 위하여 인터 예측에 사용된 움직임 벡터와 유사하게 블록 벡터(block vector, 이하, BV)가 사용될 수 있다.
기존의 인터 예측의 경우, 참조 픽쳐는 현재 픽쳐와 다른 이전 픽쳐 또는 이후 픽쳐 이지만, IBC 예측의 경우의 경우 참조 픽쳐는 현재 픽쳐가 되고, 블록 벡터는 현재 픽쳐에서 참조 블록을 지시하는 벡터를 나타낸다.
도시된 바와 같이, 본 발명의 일 예에 따르면 현재 픽쳐 내 현재 예측 블록과 이웃한 좌측의 CTU(coding tree unit)에 존재하는 영역이 현재 예측 블록의 참조 블록으로 선택될 수 있다.
IBC 예측을 수행할 때 참조 블록의 탐색을 위한 영역이 제한되거나 특정 영역으로 설정될 수 있다. 일 예에 따라 참조 블록은 현재 예측 블록이 속하는 현재 CTU 또는 현재 CTU와 인접한 좌측 CTU 내에서 탐색되는 것으로 한정될 수 있다.
반대로, IBC 예측을 수행할 때 참조 블록의 탐색을 위한 영역을 현재 픽쳐 내에서 현재 코딩 유닛 이전에 복호화가 완료된 모든 영역으로 확장하는 것도 가능할 수 있다.
IBC 예측이 수행되는 예측 블록의 타입은 2Nx2N, 2NxN, Nx2N, NxN 일 수 있다.
BV는 움직임 벡터와 유사하게 BV 예측자(BV predictor)와 BV 차이값(BV difference)으로부터 도출될 수 있다.
현재 블록에 대한 BV 예측자는 부호화 장치에서 코딩되어 복호화 장치로 시그널링 될 수 있으며, 특정 영역, 예를 들어 현재 CTU 내에서 이전에 IBC 모드로 예측된 블록의 BV가 예측자로 사용될 수 있으며, 현재 블록과 인접한 블록 중 IBC 모드로 예측된 블록의 BV 또한 예측자로 사용될 수도 있다.
이 때, 영상 처리 중간에 데이트를 리셋하거나 리프레쉬할 필요가 존재하므로 각 CTU 별로 BV 예측자는 (-2*w,0) 또는 (-w,0)와 같은 초기값으로 초기화될 수 있다. 여기서, w는 현재 코딩 유닛(Coding Unit)의 폭(width)일 수 있다.
BV 차이값은 BV와 BV 예측자의 차이를 나타내며, BVdx, BVdy 값으로 부호화 장치에서 코딩되어 복호화 장치로 시그널링 될 수 있다.
상술된 IBC 예측 모드가 적용된 경우에만 대표 플래그가 시그널링 되도록 하는 실현예의 경우, 본 발명과 관련하여 코딩 유닛 레벨에서 부호화 장치가 복호화 장치로 시그널링 하는 신택스를 도시하면 표 11과 같이 표현할 수 있다.
표 11을 참조하면, 코딩 유닛 레벨에서, transform_skip_group_signalling_enabled_flag, transform_skip_enabled_flag가 1이고, 무손실 영상 부호화가 아니고(!cu_transquant_bypass_flag), IBC 예측이 적용되는 경우(intra_bc_flag[ x0 ][ y0 ]), 대표 플래그가 수신될 수 있다. 또한 복호화 장치는 이러한 일련의 조건이 만족되는 경우, 대표 플래그를 파싱할 수 있다.
물론, 현재 코딩 유닛이 변환 생략이 적용되는 최대 변환 블록의 크기보다 작은 변환 블록을 포함할 수 있다는 조건((log2CbSize ? MaxTrafoDepth ? (ChromaArrayType % 3 = = 0? 0: 1)) <= Log2MaxTransformSkipSize )이 만족되어야 대표 플래그(transform_skip_all_ones_in_cu_flag)가 수신되거나 파싱될 수 있다.
표 11은 상기 도 3 내지 도 8를 참조하여 설명되는 실시예에 적용될 수 있다. 이해를 돕기 위하여 일례를 들면, 도 3의 S310의 대표 플래그 파싱 조건은 transform_skip_group_signalling_enabled_flag, transform_skip_enabled_flag가 1이고, 무손실 영상 부호화가 아니고(!cu_transquant_bypass_flag), IBC 예측이 적용되는 경우(intra_bc_flag[ x0 ][ y0 ]) 일 것을 포함할 수 있다. 한편, 표 2의 실시예처럼 transform_skip_enabled_flag가 0일 경우에는 transform_skip_group_signalling_enabled_flag는 시그널링 되지 않고, 이때 복호화 장치는 이 값을 0으로 유추하는 실시예에서는, 도 3의 S310의 대표 플래그 파싱 조건은 transform_skip_group_signalling_enabled_flag가 1이고, 무손실 영상 부호화가 아니고(!cu_transquant_bypass_flag), IBC 예측이 적용되는 경우(intra_bc_flag[ x0 ][ y0 ]) 일 것을 포함할 수 있다.
도 10은 본 발명의 일 실시예에 따른 영상의 부호화 방법을 설명하기 위한 도면이다.
우선, 부호화 장치는 코딩의 대상이 되는 코딩 유닛으로부터 분할되는 변환 블록에 변환 생략이 적용되는지 여부를 판단한다(S1010).
판단 결과, 도 3 및 도 6을 참조하여 설명된 소정의 조건을 만족하면서 변환 생략이 적용된 변환 블록에 대하여, 변환 생략 여부를 지시하는 제1 정보를 대표하는 대표 플래그를 코딩하고, 대표 플래그를 상기 코딩 유닛에 대한 정보로 시그널링할 수 있다(S1020).
부호화 장치는 코딩 유닛으로부터 분할되는 최대 깊이의 변환 유닛에 해당하는 변환 블록 중 변환 생략이 적용될 수 있는 기본 조건 (즉, 변환 블록의 크기가 변환 생략이 적용되는 최대 변환 블록 크기 이하임과 동시에 부호화되는 변환계수가 존재하여야 함 (즉, CBF가 1임))을 만족하는 모든 변환 블록에 변환 생략이 사용된 경우, 대표 플래그를 1로 코딩할 수 있다.
또는, 코딩 유닛으로부터 분할되는 변환 유닛이 포함하는 변환 유닛 중, 변환 생략이 적용될 수 있는 기본 조건을 만족하는 모든 변환 블록에 변환 생략이 사용된 경우, 부호화 장치는 대표 플래그를 1로 코딩할 수 있다.
부호화 장치는 대표 플래그가 1이면(S1030), 상기와 같은 조건을 만족하는변환 블록에 대하여는 제1 정보의 코딩을 생략하고, 제1 정보의 코딩이 필요한 변환 블록에 대하여는 제1 정보를 코딩할 수 있다(S1040).
또한, 부호화 장치는 대표 플래그에 기초하여 변환 유닛의 분할 여부를 나타내는 제2 정보의 코딩 여부를 판단할 수도 있다.
부호화 장치는 대표 플래그가 1이고 변환 유닛에 대한 변환 깊이가 0이면, 제2 정보의 코딩이 필요 없는 것으로 판단할 수도 있고, 대표 플래그가 1이고 변환 유닛에 대한 변환 깊이가 0이고 변환 유닛의 크기가 상기 변환 생략이 적용되는 최대 변환 블록 크기보다 큰 경우에 제2 정보의 코딩이 필요 없는 것으로 판단할 수도 있다. 이 경우, 변환 깊이가 0인 변환 유닛에 대하여는 제2 정보에 대하여 코딩하지 않을 수 있다.
부호화 장치는 제2 정보의 코딩이 필요한 변환 유닛, 즉 변환 깊이가 0 ?1 로 분할되는 분할 유닛 이외의 분할 유닛에 대하여 분할 여부를 지시하는 제2 정보를 코딩한다(S1050).
단계 S1040 및 S1050는 순차적으로 수행될 수도 있지만, 각각 독립적인 단계로 수행될 수도 있고, 제2 정보에 대한 코딩이 먼저 수행될 수도 있다. 즉, 대표 플래그가 코딩된 이후의 단계의 순서는 도면에 도시한 것에 한정되지 않는다.
대표 플래그가 0이면 제1 정보 및 제2 정보를 기존의 코딩 방식대로 코딩되어 시그널링 된다(S1060).
상술된 바와 같이, 본 발명에 따를 경우, 현재 코딩 유닛 내에서 변환 생략이 발생할 수 있는 크기인 경우, 변환 생략 플래그를 대표하는 대표 플래그를 코딩 유닛 별로 시그널링함으로써 비트량을 감소시키고, 이를 통하여 영상 압축시 부호화 효율을 증대시킬 수 있는 방법 및 이를 이용하는 장치가 제공된다.
상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
상술한 실시예는 다양한 양태의 예시들을 포함한다. 다양한 양태들을 나타내기 위한 모든 가능한 조합을 기술할 수는 없지만, 해당 기술 분야의 통상의 지식을 가진 자는 다른 조합이 가능함을 인식할 수 있을 것이다. 따라서, 본 발명은 이하의 특허청구범위 내에 속하는 모든 다른 교체, 수정 및 변경을 포함한다고 할 것이다.
100 : 영상 부호화 장치 110: 예측부
130 : 변환부 140 : 양자화부
150 : 엔트로피 부호화부 160 : 역양자화부
170 : 역변환부 180 : 필터부
130 : 변환부 140 : 양자화부
150 : 엔트로피 부호화부 160 : 역양자화부
170 : 역변환부 180 : 필터부
Claims (22)
- 영상의 복호화 방법에 있어서,
현재 코딩 유닛의 크기가 변환 생략이 가능한 변환 블록을 포함할 수 있는 경우, 상기 코딩 유닛으로부터 분할되는 변환 블록의 변환 생략 여부를 지시하는 제1 정보를 대표하는 대표 플래그를 상기 코딩 유닛에 대한 정보로 파싱하는 단계와;
상기 대표 플래그에 기초하여 상기 제1 정보의 파싱 여부를 판단하는 단계와;
상기 제1 정보의 파싱이 필요 없는 경우 상기 대표 플래그에 기초하여 상기 제1 정보를 유추하고, 상기 제1 정보의 파싱이 필요한 경우 상기 제1 정보를 파싱하는 단계와;
상기 제1 정보에 따라 상기 변환 블록에 대한 변환을 수행 또는 생략하는 단계를 포함하되,
상기 대표 플래그는 상기 코딩 유닛의 예측 모드가 현재 픽쳐 내에서 움직임 예측을 수행하여 현재 블록과 유사한 영역을 상기 현재 블록에 대한 예측값으로 설정하는 인트라 블록 카피 예측 모드이면 시그널링되는 것을 특징으로 하는 영상의 복호화 방법. - 제1항에 있어서,
상기 제1 정보의 파싱 여부를 판단하는 단계는,
상기 대표 플래그가 1이고, 상기 변환 블록이 상기 코딩 유닛으로부터 분할되는 최대 깊이의 변환 유닛에 포함되고, 상기 변환 블록의 크기가 상기 변환 생략이 적용되는 최대 변환 블록 크기 이하인 경우, 상기 제1 정보의 파싱이 필요 없는 것으로 판단하고,
상기 제1 정보를 상기 변환 블록에 변환 생략을 적용하는 것으로 유추하는 것을 특징으로 하는 영상의 복호화 방법. - 제1항에 있어서,
상기 제1 정보의 파싱 여부를 판단하는 단계는,
상기 대표 플래그가 1이고, 상기 변환 블록의 크기가 상기 변환 생략이 적용되는 최대 변환 블록 크기 이하인 경우, 상기 제1 정보의 파싱이 필요 없는 것으로 판단하고,
상기 제1 정보를 상기 변환 블록에 변환 생략을 적용하는 것으로 유추하는 것을 특징으로 하는 영상의 복호화 방법. - 제1항에 있어서,
상기 대표 플래그에 기초하여 변환 유닛의 분할 여부를 나타내는 제2 정보의 파싱 여부를 판단하는 단계와;
상기 제2 정보의 파싱이 필요 없는 경우 상기 대표 플래그에 기초하여 상기 제2 정보를 유추하고, 상기 제2 정보의 파싱이 필요한 경우 상기 제2 정보를 파싱하는 단계와;
상기 제2 정보에 따라 상기 변환 유닛에 대한 분할을 수행하는 것을 특징으로 하는 영상의 복호화 방법. - 제4항에 있어서,
상기 제2 정보의 파싱 여부를 판단하는 단계는,
상기 대표 플래그가 1이고, 상기 변환 유닛에 대한 변환 깊이가 0이면, 상기 제2 정보의 파싱이 필요 없는 것으로 판단하고,
상기 제2 정보를 상기 변환 유닛이 분할되는 것으로 유추하는 것을 특징으로 하는 영상의 복호화 방법. - 제4항에 있어서,
상기 제2 정보의 파싱 여부를 판단하는 단계는,
상기 대표 플래그가 1이고, 상기 변환 유닛에 대한 변환 깊이가 0이고, 상기 변환 깊이가 0인 변환 유닛이 포함하는 모든 변환 블록의 크기가 상기 변환 생략이 적용되는 최대 변환 블록 크기보다 큰 경우, 상기 제2 정보의 파싱이 필요 없는 것으로 판단하고,
상기 제2 정보를 상기 변환 유닛이 분할되는 것으로 유추하는 것을 특징으로 하는 영상의 복호화 방법. - 제1항에 있어서,
상기 대표 플래그는 상기 코딩 유닛에 적용된 예측 모드에 대응하여 시그널링되는 것을 특징으로 하는 영상의 복호화 방법. - 삭제
- 제1항에 있어서,
상기 대표 플래그를 이용하여 상기 변환 생략 여부를 유추하는 기능을 사용하는지 여부를 나타내는 플래그 정보를 더 수신하고,
상기 플래그 정보는 시퀀스 파라미터 세트 또는 픽쳐 파라미터 세트에서 시그널링 되는 것을 특징으로 하는 영상의 복호화 방법. - 영상의 부호화 방법에 있어서,
코딩의 대상이 되는 코딩 유닛으로부터 분할되는 변환 블록에 변환 생략이 적용되는지 판단하는 단계와;
상기 변환 블록에 변환 생략 여부를 지시하는 제1 정보를 대표하는 대표 플래그를 코딩하는, 상기 대표 플래그를 상기 코딩 유닛에 대한 정보로 시그널링하는 단계와;
상기 대표 플래그에 기초하여 상기 제1 정보의 코딩이 필요한 경우, 상기 제1 정보를 코딩하는 단계를 포함하되,
상기 대표 플래그는 상기 코딩 유닛의 예측 모드가 현재 픽쳐 내에서 움직임 예측을 수행하여 현재 블록과 유사한 영역을 상기 현재 블록에 대한 예측값으로 설정하는 인트라 블록 카피 예측 모드이면 시그널링되는 것을 특징으로 하는 영상의 부호화 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 영상의 복호화 방법에 있어서,
현재 코딩 유닛으로부터 분할되는 변환 블록의 변환 생략 여부를 지시하는 정보를 파싱 하는 단계와;
상기 정보에 따라 상기 변환 블록에 대한 변환을 수행 또는 생략하는 단계와;
현재 픽쳐 내에서 움직임 예측을 수행하여 현재 블록과 유사한 영역을 상기 현재 블록에 대한 예측값으로 설정하는 단계를 포함하되,
상기 변환 블록의 변환 생략 여부를 지시하는 정보를 파싱 하는 단계는 변환 생략의 적용이 가능한지 여부를 지시하는 플래그가 1이고, 상기 현재 코딩 유닛이 무손실 부호화되지 않고, 상기 변환 블록의 크기가 변환 생략이 적용될 수 있는 변환 블록 크기보다 작거나 같은 경우, 상기 변환 생략 여부를 지시하는 정보를 파싱하는 단계인 것을 특징으로 하는 영상의 복호화 방법. - 삭제
- 삭제
- 영상의 복호화 방법에 있어서,
현재 코딩 유닛으로부터 분할되는 변환 블록의 변환 생략 여부를 지시하는 정보를 파싱 하는 단계와;
상기 정보에 따라 상기 변환 블록에 대한 변환을 수행 또는 생략하는 단계와;
현재 픽쳐에 있는 특정 영역을 현재 블록의 참조 블록으로 사용하는 단계를 포함하되,
상기 변환 블록의 변환 생략 여부를 지시하는 정보를 파싱 하는 단계는 변환 생략의 적용이 가능한지 여부를 지시하는 플래그가 1이고, 상기 현재 코딩 유닛이 무손실 부호화되지 않고, 상기 변환 블록의 크기가 변환 생략이 적용될 수 있는 변환 블록 크기보다 작거나 같은 경우, 상기 변환 생략 여부를 지시하는 정보를 파싱하는 단계인 것을 특징으로 하는 영상의 복호화 방법. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140134255A KR101642092B1 (ko) | 2014-10-06 | 2014-10-06 | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140134255A KR101642092B1 (ko) | 2014-10-06 | 2014-10-06 | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140175076A Division KR102138197B1 (ko) | 2014-12-08 | 2014-12-08 | 영상 압축을 위한 변환생략 여부를 지시하는 방법 및 장치 |
KR1020160029803A Division KR101707164B1 (ko) | 2016-03-11 | 2016-03-11 | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160040838A KR20160040838A (ko) | 2016-04-15 |
KR101642092B1 true KR101642092B1 (ko) | 2016-07-22 |
Family
ID=55801686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140134255A KR101642092B1 (ko) | 2014-10-06 | 2014-10-06 | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101642092B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160043496A (ko) * | 2014-10-13 | 2016-04-21 | 성균관대학교산학협력단 | 예측 모드에 기초한 변환 생략 정보의 엔트로피 복호화 방법 및 장치 |
US11109041B2 (en) * | 2019-05-16 | 2021-08-31 | Tencent America LLC | Method and apparatus for video coding |
JP7446046B2 (ja) * | 2020-03-27 | 2024-03-08 | 三星電子株式会社 | 映像の復号化方法及び装置 |
CN114531595B (zh) * | 2022-04-24 | 2022-08-09 | 浙江芯昇电子技术有限公司 | cabac二进制化和上下文模型产生的编码方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101431545B1 (ko) * | 2008-03-17 | 2014-08-20 | 삼성전자주식회사 | 영상의 부호화, 복호화 방법 및 장치 |
KR102399795B1 (ko) * | 2012-07-02 | 2022-05-23 | 한국전자통신연구원 | 영상 부호화/복호화 방법 및 장치 |
KR101462637B1 (ko) * | 2013-02-28 | 2014-11-21 | 성균관대학교산학협력단 | 영상 부호화/복호화 방법 및 장치 |
-
2014
- 2014-10-06 KR KR1020140134255A patent/KR101642092B1/ko active IP Right Grant
Non-Patent Citations (1)
Title |
---|
"High-Efficiency Video Coding", SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMSInfrastructure of audiovisual services - Coding of moving video, ITU-T H.265, (04/2013)* |
Also Published As
Publication number | Publication date |
---|---|
KR20160040838A (ko) | 2016-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101937213B1 (ko) | 인트라 예측 모드 부호화/복호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체 | |
KR101707164B1 (ko) | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 | |
KR101973568B1 (ko) | 영상 변환 부호화/복호화 방법 및 장치 | |
KR102486026B1 (ko) | 병렬 엔트로피 부호화/복호화 방법 및 장치 | |
KR102516821B1 (ko) | 예측 모드에 기초한 변환 생략 정보의 엔트로피 복호화 방법 및 장치 | |
JP6172162B2 (ja) | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法およびプログラム | |
KR101642092B1 (ko) | 영상의 부호화/복호화 방법 및 이를 이용하는 장치 | |
KR102138197B1 (ko) | 영상 압축을 위한 변환생략 여부를 지시하는 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A107 | Divisional application of patent | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E90F | Notification of reason for final refusal | ||
A107 | Divisional application of patent | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |