KR20200087088A - 영상 부호화/복호화 방법 및 장치 - Google Patents
영상 부호화/복호화 방법 및 장치 Download PDFInfo
- Publication number
- KR20200087088A KR20200087088A KR1020200002612A KR20200002612A KR20200087088A KR 20200087088 A KR20200087088 A KR 20200087088A KR 1020200002612 A KR1020200002612 A KR 1020200002612A KR 20200002612 A KR20200002612 A KR 20200002612A KR 20200087088 A KR20200087088 A KR 20200087088A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- intra
- prediction mode
- chroma
- prediction
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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/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/186—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 a colour or a chrominance component
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것으로서, 본 발명의 일 실시예에 따른 영상의 복호화 방법은, 크로마 블록에 대응하는 루마 블록의 화면 내 예측 모드에 기초하여, 상기 크로마 블록의 화면 내 예측 모드를 결정하는 단계 및 상기 크로마 블록의 화면 내 예측 모드에 기초하여 상기 크로마 블록에 대해 화면 내 예측을 수행함으로써, 예측 블록을 생성하는 단계를 포함하고, 상기 루마 블록의 화면 내 예측 모드는 상기 크로마 블록 내의 소정의 위치에 해당하는 루마 블록의 화면 내 예측 모드일 수 있다.
Description
본 발명은 영상 부호화/복호화 방법 및 장치에 관한 것으로서, 보다 구체적으로는 화면 내 예측을 수행하는 영상 부호화/복호화 방법 및 장치에 관한 것이다.
최근, 인터넷에서는 동영상과 같은 멀티미디어 데이터의 수요가 급격히 증가하고 있다. 하지만 채널(Channel)의 대역폭(Bandwidth)이 발전하는 속도는, 급격히 증가하고 있는 멀티미디어 데이터의 양을 따라가기 힘든 상황이다. 이러한 상황을 고려하여, 국제 표준화 기구인 ITU-T의 VCEG(Video Coding Expert Group)과 ISO/IEC의 MPEG(Moving Picture Expert Group)은 2014년 2월, 동영상 압축 표준인 HEVC(High Efficiency Video Coding) 버전 1을 제정하였다.
HEVC에서는 화면 내 예측, 화면 간 예측, 변환, 양자화, 엔트로피 부호화 및 인-루프 필터와 같은 다양한 기술을 가지고 있다.
화면 내 예측을 수행하기 위해 화면 내 예측 모드가 결정 및/또는 유도되어야 한다. 크로마 블록의 화면 내 예측 모드는 대응하는 루마 블록의 화면 내 예측 모드로부터 유도될 수 있다. 대응하는 루마 블록의 화면 내 예측 모드로부터 크로마 블록의 화면 내 예측 모드를 유도하는 모드 또는 그와 같은 방법으로 유도된 크로마 블록의 화면 내 예측 모드를 크로마 DM(direct mode)이라고 한다.
최근, 루마 성분과 크로마 성분을 서로 독립적인 트리 구조를 이용하여 분할하는 것에 관한 연구가 진행 중이며, 이 경우, 크로마 블록과 루마 블록이 서로 정확히 대응하지 않게 되어, 크로마 DM을 적절히 유도할 수 없는 문제가 있다. 따라서, 크로마 DM을 유도하는 방법에 대한 개선이 요구된다.
본 발명은 크로마 DM을 개선함으로써 압축 효율이 향상된 영상 부호화/복호화 방법 및 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 본 발명의 영상 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체를 제공하는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상에 따른 영상 복호화 방법은, 크로마 블록에 대응하는 루마 블록의 화면 내 예측 모드에 기초하여, 상기 크로마 블록의 화면 내 예측 모드를 결정하는 단계 및 상기 크로마 블록의 화면 내 예측 모드에 기초하여 상기 크로마 블록에 대해 화면 내 예측을 수행함으로써, 예측 블록을 생성하고,
상기 루마 루마 블록의 화면 내 예측 모드는 상기 크로마 블록 내의 소정의 위치에 해당하는 루마 블록의 화면 내 예측 모드일 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서,상기 소정 위치는, 상기 크로마 블록의 중앙 위치일 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 소정 위치는, 상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 가장 크기가 큰 루마 블록에 대응하는 위치일 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 소정 위치는, 상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 상기 크로마 블록과 중첩되는 면적이 가장 큰 루마 블록에 대응하는 위치일 수 있다.
본 발명에 따른 영상 복호화 방법에 있어서, 상기 루마 블록의 화면 내 예측 모드는, 상기 크로마 블록을 소정 크기의 복수의 서브 블록들로 분할하고, 상기 복수의 서브 블록들의 각각에 대응하는 루마 블록의 화면 내 예측 모드를 유도하고, 상기 유도된 화면 내 예측 모드들 중 빈도수가 가장 높은 화면 내 예측 모드일 수 있다.
본 발명의 다른 양상에 따른 영상 부호화 방법은, 크로마 블록에 대응하는 루마 블록의 화면 내 예측 모드에 기초하여, 상기 크로마 블록의 화면 내 예측 모드를 결정하는 단계 및 상기 크로마 블록의 화면 내 예측 모드에 기초하여 상기 크로마 블록에 대해 화면 내 예측을 수행함으로써, 예측 블록을 생성하고, 상기 루마 블록의 화면 내 예측 모드는 상기 크로마 블록 내의 소정의 위치에 해당하는 루마 블록의 화면 내 예측 모드일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 소정의 위치는 상기 크로마 블록의 중앙 위치일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 소정 위치는, 상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 가장 크기가 큰 루마 블록에 대응하는 위치일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 소정 위치는, 상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 상기 크로마 블록과 중첩되는 면적이 가장 큰 루마 블록에 대응하는 위치일 수 있다.
본 발명에 따른 영상 부호화 방법에 있어서, 상기 루마 블록의 화면 내 예측 모드는, 상기 크로마 블록을 소정 크기의 복수의 서브 블록들로 분할하고, 상기 복수의 서브 블록들의 각각에 대응하는 루마 블록의 화면 내 예측 모드를 유도하고, 상기 유도된 화면 내 예측 모드들 중 빈도수가 가장 높은 화면 내 예측 모드일 수 있다.
본 발명의 또 다른 양상에 따른 컴퓨터 판독 가능한 기록 매체는, 본 발명에 따른 영상 부호화 방법 및/또는 장치에 의해 생성된 비트스트림을 저장할 수 있다.
본 발명에 따르면, 크로마 DM을 개선함으로써 압축 효율이 향상된 영상 부호화/복호화 방법 및 장치가 제공될 수 있다.
또한, 본 발명에 따르면, 본 발명의 영상 부호화 방법 또는 장치에 의해 생성된 비트스트림을 저장한 기록 매체가 제공될 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3은 크로마 DM의 대응하는 루마 블록을 특정하는 일 실시예를 설명하기 위한 도면이다.
도 4는 크로마 DM의 대응하는 루마 블록을 특정하는 다른 실시예를 설명하기 위한 도면이다.
도 5는 크로마 DM의 대응하는 루마 블록을 특정하는 또 다른 실시예를 설명하기 위한 도면이다.
도 6은 도 5의 실시예를 구현하는 방법을 설명하기 위한 도면이다.
도 7은 크로마 DM의 대응하는 루마 블록을 특정하는 또 다른 실시예를 설명하기 위한 도면이다.
도 8은 두 개의 블록의 중첩되는 면적을 유도하는 방법을 설명하기 위한 도면이다.
도 9는 도 8을 참조하여, 중첩되는 면적을 유도하는 신택스의 일 예이다.
도 10은 도 7의 실시예를 구현하는 방법을 설명하기 위한 도면이다.
도 11은 크로마 DM을 유도하는 또 다른 실시예를 설명하기 위한 도면이다.
도 12는 도 11의 실시예를 구현하는 방법을 설명하기 위한 도면이다.
도 13은 DM 위치 후보의 다양한 실시예를 설명하기 위한 도면이다.
도 14는 본 발명의 일 실시 예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 3은 크로마 DM의 대응하는 루마 블록을 특정하는 일 실시예를 설명하기 위한 도면이다.
도 4는 크로마 DM의 대응하는 루마 블록을 특정하는 다른 실시예를 설명하기 위한 도면이다.
도 5는 크로마 DM의 대응하는 루마 블록을 특정하는 또 다른 실시예를 설명하기 위한 도면이다.
도 6은 도 5의 실시예를 구현하는 방법을 설명하기 위한 도면이다.
도 7은 크로마 DM의 대응하는 루마 블록을 특정하는 또 다른 실시예를 설명하기 위한 도면이다.
도 8은 두 개의 블록의 중첩되는 면적을 유도하는 방법을 설명하기 위한 도면이다.
도 9는 도 8을 참조하여, 중첩되는 면적을 유도하는 신택스의 일 예이다.
도 10은 도 7의 실시예를 구현하는 방법을 설명하기 위한 도면이다.
도 11은 크로마 DM을 유도하는 또 다른 실시예를 설명하기 위한 도면이다.
도 12는 도 11의 실시예를 구현하는 방법을 설명하기 위한 도면이다.
도 13은 DM 위치 후보의 다양한 실시예를 설명하기 위한 도면이다.
도 14는 본 발명의 일 실시 예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예들을 상세하게 설명한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 영상 부호화 장치(100)는 영상 분할부(101), 화면 내 예측부(102), 화면 간 예측부(103), 감산부(104), 변환부(105), 양자화부(106), 엔트로피 부호화부(107), 역양자화부(108), 역변환부(109), 가산부(110), 필터부(111) 및 메모리(112)를 포함할 수 있다.
도 1에 나타난 각 구성부들은 영상 부호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
영상 분할부(100)는 입력된 영상을 적어도 하나의 블록으로 분할할 수 있다. 이 때, 입력된 영상은 픽처, 슬라이스, 타일, 세그먼트 등 다양한 형태와 크기를 가질 수 있다. 블록은 부호화 단위(CU), 예측 단위(PU) 또는 변환 단위(TU)를 의미할 수 있다. 상기 분할은 쿼드 트리(Quadtree), 바이너리 트리(Biniary tree) 및 3분할 트리(ternary tree) 중 적어도 하나에 기반하여 수행될 수 있다. 쿼드 트리는 상위 블록을 너비와 높이가 상위 블록의 절반인 하위 블록으로 사분할하는 방식이다. 바이너리 트리는 상위 블록을 너비 또는 높이 중 어느 하나가 상위 블록의 절반인 하위 블록으로 이분할하는 방식이다. 3분할 트리는 상위 블록을 3개의 하위 블록으로 분할하는 방식이다. 예컨대, 상기 3개의 하위 블록은 상기 상위 블록의 너비 또는 높이를 1:2:1의 비율로 분할함으로써 획득될 수 있다. 전술한 바이너리 트리 기반의 분할을 통해, 블록은 정방형뿐만 아니라 비정방형의 형태를 가질 수 있다.
예측부(102, 103)는 인터 예측을 수행하는 화면 간 예측부(103)와 인트라 예측을 수행하는 화면 내 예측부(102)를 포함할 수 있다. 예측 단위에 대해 인터 예측을 사용할 것인지 또는 인트라 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 인트라 예측 모드, 모션 벡터, 참조 픽쳐 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수도 있다.
생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(105)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 모션 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(107)에서 부호화되어 복호화기에 전달될 수 있다. 특정한 부호화 모드를 사용할 경우, 예측부(102, 103)를 통해 예측 블록을 생성하지 않고, 원본 블록을 그대로 부호화하여 복호화부에 전송하는 것도 가능하다.
화면 내 예측부(102)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 블록을 생성할 수 있다. 인트라 예측이 수행될 현재 블록의 주변 블록의 예측 모드가 인터 예측인 경우, 인터 예측이 적용된 주변 블록에 포함되는 참조 픽셀을, 인트라 예측이 적용된 주변의 다른 블록 내의 참조 픽셀로 대체될 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를, 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
인트라 예측에서 예측 모드는 참조 픽셀 정보를 예측 방향에 따라 사용하는 방향성 예측 모드와 예측을 수행시 방향성 정보를 사용하지 않는 비방향성 모드를 가질 수 있다. 휘도 정보를 예측하기 위한 모드와 색차 정보를 예측하기 위한 모드가 상이할 수 있고, 색차 정보를 예측하기 위해 휘도 정보를 예측하기 위해 사용된 인트라 예측 모드 정보 또는 예측된 휘도 신호 정보를 활용할 수 있다.
화면 내 예측부(102)는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 필터로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 적응적으로 결정할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
화면 내 예측부(102)의 참조 화소 보간부는 예측 단위의 인트라 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 분수 단위 위치의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
화면 간 예측부(103)은, 메모리(112)에 저장된 기 복원된 참조영상과 움직임 정보를 이용하여 예측 블록을 생성한다. 움직임 정보는 예컨대 움직임 벡터, 참조픽처 인덱스, 리스트 1 예측 플래그, 리스트 0 예측 플래그 등을 포함할 수 있다.
예측부(102, 103)에서 생성된 예측 단위와 예측 단위의 원본 블록 간의 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(130)로 입력되어 변환될 수 있다.
화면 간 예측부(103)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 블록을 유도할 수 있다. 또한, 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로, 현재 블록의 예측 블록을 유도할 수도 있다. 본 발명의 일 실시예에 따른 화면 간 예측부(103)는 참조 픽쳐 보간부, 움직임 예측부, 움직임 보상부를 포함할 수 있다.
참조 픽쳐 보간부에서는 메모리(112)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.
움직임 예측부는 참조 픽쳐 보간부에 의해 보간된 참조 픽쳐를 기초로 모션 예측을 수행할 수 있다. 모션 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 모션 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 모션 벡터값을 가질 수 있다. 움직임 예측부에서는 움직임 예측 방법을 다르게 하여 현재 블록의 예측 블록을 예측할 수 있다. 모션 예측 방법으로 스킵(Skip) 방법, 머지(Merge) 방법, AMVP(Advanced Motion Vector Prediction) 방법 등 다양한 방법이 사용될 수 있다.
감산부(104)는, 현재 부호화하려는 블록과 화면 내 예측부(102) 혹은 화면 간 예측부(103)에서 생성된 예측 블록을 감산하여 현재 블록의 잔차 블록을 생성한다.
변환부(105)에서는 잔차 데이터를 포함한 잔차 블록을 DCT, DST, KLT(Karhunen Loeve Transform) 등과 같은 변환 방법을 사용하여 변환시킬 수 있다. 이때 변환 방법은 잔차 블록을 생성하기 위해 사용된 예측 단위의 인트라 예측 모드에 기반하여 결정될 수 있다. 예를 들어, 인트라 예측 모드에 따라, 가로 방향으로는 DCT를 사용하고, 세로 방향으로는 DST를 사용할 수도 있다.
양자화부(106)는 변환부(105)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(106)에서 산출된 값은 역양자화부(108)와 엔트로피 부호화부(107)에 제공될 수 있다.
상기 변환부(105) 및/또는 양자화부(106)는, 영상 부호화 장치(100)에 선택적으로 포함될 수 있다. 즉, 영상 부호화 장치(100)는, 잔차 블록의 잔차 데이터에 대해 변환 또는 양자화 중 적어도 하나를 수행하거나, 변환 및 양자화를 모두 스킵하여 잔차 블록을 부호화할 수 있다. 영상 부호화 장치(100)에서 변환 또는 양자화 중 어느 하나가 수행되지 않거나, 변환 및 양자화 모두 수행되지 않더라도, 엔트로피 부호화부(107)의 입력으로 들어가는 블록을 통상적으로 변환 블록이라 일컫는다. 엔트로피 부호화부(107)는 입력 데이터를 엔트로피 부호화한다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다.
엔트로피 부호화부(107)는 변환 블록의 계수 정보, 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, 예측 단위 정보, 전송 단위 정보, 모션 벡터 정보, 참조 프레임 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 부호화할 수 있다. 변환 블록의 계수들은, 변환 블록 내 서브 블록 단위로, 부호화될 수 있다.
변환 블록의 계수의 부호화를 위하여, 역스캔 순서로 최초의 0이 아닌 계수의 위치를 알리는 신택스 요소(syntax element)인 Last_sig, 서브블록 내에 0이 아닌 계수가 적어도 하나 이상 있는지를 알리는 플래그인 Coded_sub_blk_flag, 0이 아닌 계수인지를 알리는 플래그인 Sig_coeff_flag, 계수의 절대값이 1 보다 큰지를 알리는 플래그인 Abs_greater1_flag, 계수의 절대값이 2 보다 큰지를 알리는 플래그인 Abs_greater2_flag, 계수의 부호를 나타내는 플래그인 Sign_flag 등의 다양한 신택스 요소들이 부호화될 수 있다. 상기 신택스 요소들만으로 부호화되지 않는 계수의 잔여값은 신택스 요소 remaining_coeff를 통해 부호화될 수 있다.
역양자화부(108) 및 역변환부(109)에서는 양자화부(106)에서 양자화된 값들을 역양자화하고 변환부(105)에서 변환된 값들을 역변환한다. 역양자화부(108) 및 역변환부(109)에서 생성된 잔차값(Residual)은 예측부(102, 103)에 포함된 움직임 추정부, 움직임 보상부 및 화면 내 예측부(102)를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다. 가산부(110)는, 예측부(102, 103)에서 생성된 예측 블록과, 역 변환부(109)를 통해 생성된 잔차 블록을 가산하여 복원 블록을 생성한다.
필터부(111)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다.
디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 디블록킹을 수행할지 여부를 판단하기 위해 블록에 포함된 몇 개의 열 또는 행에 포함된 픽셀을 기초로 현재 블록에 디블록킹 필터 적용할지 여부를 판단할 수 있다. 블록에 디블록킹 필터를 적용하는 경우 필요한 디블록킹 필터링 강도에 따라 강한 필터(Strong Filter) 또는 약한 필터(Weak Filter)를 적용할 수 있다. 또한 디블록킹 필터를 적용함에 있어 수직 필터링 및 수평 필터링 수행시 수평 방향 필터링 및 수직 방향 필터링이 병행 처리되도록 할 수 있다.
오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다.
ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. ALF를 적용할지 여부에 관련된 정보는 휘도 신호는 부호화 단위(Coding Unit, CU) 별로 전송될 수 있고, 각각의 블록에 따라 적용될 ALF 필터의 모양 및 필터 계수는 달라질 수 있다. 또한, 적용 대상 블록의 특성에 상관없이 동일한 형태(고정된 형태)의 ALF 필터가 적용될 수도 있다.
메모리(112)는 필터부(111)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있고, 저장된 복원 블록 또는 픽쳐는 화면 간 예측을 수행할 때 예측부(102, 103)에 제공될 수 있다.
다음으로, 본 발명의 일 실시예에 따른 영상 복호화 장치를 도면을 참조하여 설명한다. 도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치(200)를 나타낸 블록도이다.
도 2를 참조하면, 영상 복호화 장치(200)는 엔트로피 복호화부(201), 역양자화부(202), 역변환부(203), 가산부(204), 필터부(205), 메모리(206) 및 예측부(207, 208)를 포함할 수 있다.
영상 부호화 장치(100)에 의해 생성된 영상 비트스트림이 영상 복호화 장치(200)로 입력되는 경우, 입력된 비트스트림은 영상 부호화 장치(100)에서 수행된 과정과 반대의 과정에 따라 복호될 수 있다.
엔트로피 복호화부(201)는 영상 부호화 장치(100)의 엔트로피 부호화부(107)에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화기에서 수행된 방법에 대응하여 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다. 엔트로피 복호화부(201)는, 전술한 바와 같은 신택스 요소들, 즉 Last_sig, Coded_sub_blk_flag, Sig_coeff_flag, Abs_greater1_flag, Abs_greater2_flag, Sign_flag 및 remaining_coeff를 복호화할 수 있다. 또한, 엔트로피 복호화부(201)는 영상 부호화 장치(100)에서 수행된 인트라 예측 및 인터 예측에 관련된 정보를 복호화할 수 있다.
역 양자화부(202)는 양자화된 변환 블록에 역 양자화를 수행하여 변환 블록을 생성한다. 도 1의 역 양자화부(108)와 실질적으로 동일하게 동작한다.
역 변환부(203)은 변환 블록에 역 변환을 수행하여 잔차 블록을 생성한다. 이때, 변환 방법은 예측 방법(인터 또는 인트라 예측), 블록의 크기 및/또는 형태, 인트라 예측 모드 등에 관한 정보를 기반으로 결정될 수 있다. 도 1의 역 변환부(109)와 실질적으로 동일하게 동작한다.
가산부(204)는, 화면 내 예측부(207) 혹은 화면 간 예측부(208)에서 생성된 예측 블록과 역 변환부(203)를 통해 생성된 잔차 블록를 가산하여 복원 블록을 생성한다. 도 1의 가산부(110)와 실질적으로 동일하게 동작한다.
필터부(205)는, 복원된 블록들에 발생하는 여러 종류의 노이즈를 감소시킨다.
필터부(205)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화 장치(100)로부터 해당 블록 또는 픽쳐에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화 장치(200)의 디블록킹 필터에서는 영상 부호화 장치(100)에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화 장치(200)에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다.
ALF는 영상 부호화 장치(100)로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라미터 셋에 포함되어 제공될 수 있다. 필터부(205)는 도 1의 필터부(111)와 실질적으로 동일하게 동작한다.
메모리(206)는 가산부(204)에 의해 생성된 복원 블록을 저장한다. 도 1의 메모리(112)와 실질적으로 동일하게 동작한다.
예측부(207, 208)는 엔트로피 복호화부(201)에서 제공된 예측 블록 생성 관련 정보와 메모리(206)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
예측부(207, 208)는 화면 내 예측부(207) 및 화면 간 예측부(208)를 포함할 수 있다. 별도로 도시되지는 아니하였으나, 예측부(207, 208)는 예측 단위 판별부를 더 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(201)에서 입력되는 예측 단위 정보, 인트라 예측 방법의 예측 모드 정보, 인터 예측 방법의 모션 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 인터 예측을 수행하는지 아니면 인트라 예측을 수행하는지 여부를 판별할 수 있다. 화면 간 예측부(208)는 영상 부호화 장치(100)에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 화면 간 예측을 수행할 수 있다. 또는, 현재 예측 단위가 포함된 현재 픽쳐 내에서 기-복원된 일부 영역의 정보를 기초로 화면 간 예측을 수행할 수도 있다.
화면 간 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 모션 예측 방법이 스킵 모드(Skip Mode), 머지 모드(Merge 모드), AMVP 모드(AMVP Mode) 중 어떠한 방법인지 여부를 판단할 수 있다.
화면 내 예측부(207)는, 현재 부호화하려는 블록 주변에 위치한, 그리고 기 복원된 화소들을 이용하여 예측 블록을 생성한다.
화면 내 예측부(207)는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 필터로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 적응적으로 결정할 수 있다. 영상 부호화 장치(100)에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
화면 내 예측부(207)의 참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 분수 단위 위치의 참조 화소를 생성할 수 있다. 생성된 분수 단위 위치의 참조 화소가 현재 블록 내의 화소의 예측 화소로 이용될 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
화면 내 예측부(207)는 도 1의 화면 내 예측부(102)와 실질적으로 동일하게 동작한다.
화면 간 예측부(208)는, 메모리(206)에 저장된 참조 픽처, 움직임 정보를 이용하여 화면간 예측 블록을 생성한다. 화면 간 예측부(208)는 도 1의 화면 간 예측부(103)와 실질적으로 동일하게 동작한다.
이하, 본 발명의 다양한 실시예들을 도면들을 참조하면서 보다 상세하게 설명한다.
크로마(chroma) 블록의 화면 내 예측 모드는 부호화 블록(coding block, CB) 단위로 결정될 수 있다. 크로마 성분에는 cb 성분과 cr 성분이 있고, 두 개의 성분은 같은 분할 구조를 공유할 수 있다.
크로마 블록의 화면 내 예측 모드는 색 성분 간 선형 모델을 이용한 화면 내 예측(cross-component linear model intra prediction)이 가용한지 여부에 따라 아래의 표 1 또는 표 2를 이용하여 유도되거나 결정될 수 있다. 색 성분 간 선형 모델을 이용한 화면 내 예측이 가용한지 여부는 소정의 플래그에 의해 나타내어지거나 시그널링될 수 있다. 상기 소정의 플래그는 sps_cclm_enabled_flag일 수 있다. 예컨대, 상기 소정의 플래그는 시퀀스 파라미터 셋(SPS)을 통해 시그널링될 수 있다.
색 성분 간 선형 모델을 이용한 화면 내 예측이 가용한 경우(sps_cclm_enabled_flag가 1인 경우), (xCb, yCb) 위치의 크로마 블록의 화면 내 예측 모드 (IntraPredModeC[xCb][yCb])는 intra_chroma_pred_mode[xCb][yCb], 대응 루마 블록의 화면 내 예측 모드 (IntraPredModeY[x][y]) 및 표 1에 기초하여 유도되거나 결정될 수 있다.
intra_chroma_pred_mode[ xCb ][ yCb ] | IntraPredModeY[x][y] | ||||
0 | 50 | 18 | 1 | X ( 0 <= X <= 66 ) | |
0 | 66 | 0 | 0 | 0 | 0 |
1 | 50 | 66 | 50 | 50 | 50 |
2 | 18 | 18 | 66 | 18 | 18 |
3 | 1 | 1 | 1 | 66 | 1 |
4 | 0 | 50 | 18 | 1 | X |
색 성분 간 선형 모델을 이용한 화면 내 예측이 가용하지 않은 경우(sps_cclm_enabled_flag가 0인 경우), (xCb, yCb) 위치의 크로마 블록의 화면 내 예측 모드 (IntraPredModeC[xCb][yCb])는 intra_chroma_pred_mode[xCb][yCb], 대응 루마 블록의 화면 내 예측 모드 (IntraPredModeY[x][y]) 및 표 2에 기초하여 유도되거나 결정될 수 있다.
intra_chroma_pred_mode[ xCb ][ yCb ] | IntraPredModeY[x][y] | ||||
0 | 50 | 18 | 1 | X ( 0 <= X <= 66 ) | |
0 | 66 | 0 | 0 | 0 | 0 |
1 | 50 | 66 | 50 | 50 | 50 |
2 | 18 | 18 | 66 | 18 | 18 |
3 | 1 | 1 | 1 | 66 | 1 |
4 | 81 | 81 | 81 | 81 | 81 |
5 | 82 | 82 | 82 | 82 | 82 |
6 | 83 | 83 | 83 | 83 | 83 |
7 | 0 | 50 | 18 | 1 | X |
크로마 DM(direct mode)은 표 1에서 intra_chroma_pred_mode 값이 4이거나, 표 2에서 intra_chroma_pred_mode 값이 7인 경우에 해당한다. 이 경우, 크로마 블록의 화면 내 예측 모드(IntraPredModeC[xCb][yCb])는 대응 루마 블록의 화면 내 예측 모드(IntraPredModeY[x][y])로 유도되거나 결정될 수 있다.
이하에서, 크로마 DM을 개선하는 다양한 실시예가 개시된다.
도 3은 크로마 DM의 대응하는 루마 블록을 특정하는 일 실시예를 설명하기 위한 도면이다.
도 3은 하나의 크로마 블록(chroma CB 또는 chroma partition)에 대응되는 루마 블록들(luma CBs)을 도시한다. 크로마 블록과 루마 블록은 각각 다른 분할 트리에 의해 분할될 수 있으므로, 크로마 블록에 대응하는 루마 블록(luma CB)은 복수일 수 있다.
도 3에 도시된 실시예에서, 대응 루마 블록의 위치(DM position)는 크로마 블록의 좌상단 위치(left-top position)에 기초하여 결정될 수 있다. 예컨대, 크로마 블록의 좌상단 위치가 (xCb, yCb)일 때, DM 위치는 (xCb, yCb)로 결정될 수 있다.
도 3에 있어서, 대응 루마 블록은 음영처리된 블록이며, 크로마 DM은 대응 루마 블록의 화면 내 예측 모드로 유도될 수 있다.
도 4는 크로마 DM의 대응하는 루마 블록을 특정하는 다른 실시예를 설명하기 위한 도면이다.
도 3과 마찬가지로 도 4에 있어서도, 하나의 크로마 블록은 복수의 루마 블록들에 대응될 수 있다.
도 4에 도시된 실시예에서, 크로마 DM을 유도하기 위한 대응 루마 블록의 위치는 크로마 블록의 중앙 위치(center position)에 기초하여 결정될 수 있다. 예컨대, 크로마 블록의 좌상단 위치가 (xCb, yCb)이고, 크로마 블록의 너비 및 높이가 각각 cbWidth 및 cbHeight일 때, DM 위치는 (xCb + cbWidth/2, yCb + cbHeight/2)로 결정될 수 있다. 상기 cbWidth 및 cbHeight는 각각 루마 영역에서 차지하는 현재 크로마 블록의 너비 및 높이일 수 있다.
도 4에 있어서, 대응 루마 블록은 음영처리된 블록이며, 크로마 DM은 대응 루마 블록의 화면 내 예측 모드로 유도될 수 있다.
도 5는 크로마 DM의 대응하는 루마 블록을 특정하는 또 다른 실시예를 설명하기 위한 도면이다.
도 3과 마찬가지로 도 5에 있어서도, 하나의 크로마 블록은 복수의 루마 블록들에 대응될 수 있다.
도 5에 도시된 실시예에서, 크로마 DM을 유도하기 위해 복수의 DM 위치 후보들(DM position candidates)이 고려될 수 있다. 복수의 DM 위치 후보들의 각각에 대응하는 복수의 루마 블록들 중 크기가 가장 큰 루마 블록이 특정될 수 있다. 상기 특정된 가장 큰 루마 블록의 화면 내 예측 모드가 크로마 DM으로 유도될 수 있다.
예컨대, 크로마 블록의 좌상단 위치가 (xCb, yCb)일 때, 상기 복수의 DM 위치 후보들은 좌상단 위치 (xCb, yCb)와 중앙 위치 (xCb + cbWidth/2, yCb + cbHeight/2)일 수 있다. 그러나, 이에 한정되지 않으며 크로마 블록내의 임의의 위치가 DM 위치 후보로서 고려될 수 있다.
다시 도 5를 참조하면, 크로마 블록의 좌상단 위치에 해당하는 루마 블록(좌상단의 음영처리된 블록)이 크로마 블록의 중앙 위치에 해당하는 루마 블록(우중단의 음영처리된 블록)보다 크기가 큰 것을 알 수 있다. 따라서, 최종적으로 좌상단 위치가 DM 위치로 특정되며, 좌상단의 음영처리된 루마 블록의 화면 내 예측 모드가 크로마 DM으로 유도될 수 있다.
도 6은 도 5의 실시예를 구현하는 방법을 설명하기 위한 도면이다.
도 6은 크로마 블록의 좌상단 위치와 중앙 위치가 DM 위치 후보로서 고려되는 경우를 가정한다.
도 6에 있어서, log2_cb_width[x][y]는 x, y 위치에 있는 루마 블록의 너비를 의미하며, log2_cb_height[x][y]는 x, y위치에 있는 루마 블록의 높이를 의미한다. 따라서, c1_size는 크로마 블록의 좌상단 위치에 대응하는 루마 블록의 크기를 의미하고, c2_size는 크로마 블록의 중앙 위치에 대응하는 루마 블록의 크기를 의미한다. 도 6에 있어서 루마 블록의 크기는 로그 스케일로 표현하였으나, 이에 한정되지 않으며, 가로와 세로의 곱으로 표현될 수도 있다.
이 후, c1_size와 c2_size의 비교에 의해 하나의 루마 블록이 특정될 수 있다. 도 6에 있어서, "x ? y : z" 는 삼항 연산자로서, x가 참이면 y를 고려(evaluate)하고, x가 거짓이면 z를 고려한다.
도 7은 크로마 DM의 대응하는 루마 블록을 특정하는 또 다른 실시예를 설명하기 위한 도면이다.
도 3과 마찬가지로 도 7에 있어서도, 하나의 크로마 블록은 복수의 루마 블록들에 대응될 수 있다.
도 7에 도시된 실시예에서, 크로마 DM을 유도하기 위해 복수의 DM 위치 후보들(DM position candidates)이 고려될 수 있다. 복수의 DM 위치 후보들의 각각에 대응하는 복수의 루마 블록들 중 크로마 블록과 중첩되는 면적이 가장 큰 루마 블록이 특정될 수 있다. 상기 특정된 루마 블록의 화면 내 예측 모드가 크로마 DM으로 유도될 수 있다.
예컨대, 크로마 블록의 좌상단 위치가 (xCb, yCb)일 때, 상기 복수의 DM 위치 후보들은 좌상단 위치 (xCb, yCb)와 중앙 위치 (xCb + cbWidth/2, yCb + cbHeight/2)일 수 있다. 그러나, 이에 한정되지 않으며 크로마 블록내의 임의의 위치가 DM 위치 후보로서 고려될 수 있다.
다시 도 7을 참조하면, 크로마 블록의 좌상단 위치에 해당하는 루마 블록(좌상단의 음영처리된 블록)과 크로마 블록의 중첩되는 빗금친 부분의 면적(면적1) 및 크로마 블록의 중앙 위치에 해당하는 루마 블록(우중단의 음영처리된 블록)과 크로마 블록의 중첩되는 빗금친 부분의 면적(면적2)이 유도될 수 있다. 이 후, 면적1과 면적2를 비교하고, 보다 큰 쪽의 루마 블록(우중단의 블록)을 대응 루마 블록으로 선택할 수 있다. 선택된 대응 루마 블록의 화면 내 예측 모드가 크로마 DM으로 유도될 수 있다.
도 8은 두 개의 블록의 중첩되는 면적을 유도하는 방법을 설명하기 위한 도면이다.
도 9는 도 8을 참조하여, 중첩되는 면적을 유도하는 신택스의 일 예이다.
도 10은 도 7의 실시예를 구현하는 방법을 설명하기 위한 도면이다.
도 8에 있어서, 블록0의 좌상단 좌표는 (x0, y0)이고, 가로와 세로는 각각 w0, h0이다. 또한, 블록1의 좌상단 좌표는 (x1, y1)이고, 가로와 세로는 각각 w1, h1이다.
블록0와 블록1이 중첩되기 위해서는 min(x0+w0, x1+w1)이 max(x0, x1)보다 커야 하고, 동시에 min(y0+h0, y1+h1)가 max(y0, y1)보다 커야 한다. 도 9의 신택스는, min(x0+w0, x1+w1) > max(x0, x1)이고, min(y0+h0, y1+h1) > max(y0, y1)일 때, 중첩되는 면적을 반환한다. 중첩되는 면적은 로그 스케일로 표현하였으나, 이에 한정되지 않으며, 가로와 세로의 곱으로 표현될 수도 있다.
도 10에 있어서, (c1x, c1y)는 크로마 블록의 좌상단 위치이며, (c2x, c2y) 는 크로마 블록의 중앙 위치로 설정된다. 도 9를 참조하여 설명된 방법에 의해, 크로마 블록의 좌상단 위치에 해당하는 루마 블록과 크로마 블록의 중첩되는 면적(c1_size) 및 크로마 블록의 중앙 위치에 해당하는 루마 블록과 크로마 블록의 중첩되는 면적(c2_size)이 유도될 수 있다.
이 후, c1_size와 c2_size의 비교에 의해 DM 위치와 하나의 루마 블록이 특정될 수 있다. 도 10에 있어서, c1_size가 더 큰 경우, DM 위치는 크로마 블록의 좌상단 위치 (c1x, c1y)으로 결정되고, c2_size가 더 큰 경우, DM 위치는 크로마 블록의 중앙 위치 (c2x, c2y)으로 결정된다.
도 11은 크로마 DM을 유도하는 또 다른 실시예를 설명하기 위한 도면이다.
크로마 블록은 복수의 서브 블록으로 분할될 수 있다. 상기 서브 블록은 2x2 또는 4x4와 같은 소정의 크기(예컨대, 최소 크기)를 갖는 블록일 수 있다. 이 후, 분할된 각각의 서브 블록에 대해 대응 루마 블록의 화면 내 예측 모드가 유도될 수 있다. 유도된 화면 내 예측 모드들 중 빈도수가 가장 큰 화면 내 예측 모드가 크로마 DM으로 결정될 수 있다.
도 11에 있어서, 크로마 블록은 16개의 서브 블록으로 분할될 수 있다. 각각의 서브 블록의 위치에 해당하는 대응 루마 블록의 화면 내 예측 모드가 유도될 수 있다. 도 11의 각 서브 블록의 내부에 표시된 숫자는 대응 루마 블록의 화면 내 예측 모드를 의미한다. 도 11에서, 모드 0은 4번, 모드 1은 2번, 모드 25는 1번, 모드 26은 7번, 모드 27은 2번의 빈도수를 갖는다. 따라서, 크로마 DM은 가장 빈도수가 큰 모드 26으로 결정될 수 있다.
크로마 블록을 분할하여 획득한 서브 블록에 대해 대응 루마 블록의 화면 내 예측 모드를 유도할 때, 도 3 내지 도 10을 참조하여 설명한 전술한 다양한 실시예가 적어도 하나 이상 적용될 수 있다.
도 12는 도 11의 실시예를 구현하는 방법을 설명하기 위한 도면이다.
도 12에 있어서, subCbW 및 subCbH 는 서브 블록의 너비 및 높이를 각각 의미하며, log2SbSize로부터 유도될 수 있다. log2SbSize는 블록의 상위 레벨(시퀀스, 픽처, 슬라이스, 타일, CTB)에서 시그널링되거나, 고정된 값(예컨대, 2)으로 정의될 수 있다. 상기 상위 레벨은 예컨대, 시퀀스 파라미터 셋일 수 있다.
hist 는 각 서브 블록에 대한 대응 루마 블록의 화면 내 예측 모드를 카운팅하기 위한 히스토그램이다. 상기 히스토그램은 화면 내 예측 모드를 키(key)로 갖고, 해당 모드의 카운트를 값으로 갖는 맵(map) 자료 형식 또는 해쉬 테이블(hash table)로 구현될 수 있다. 또는, 상기 히스트그램은 루마 블록의 화면 내 예측 모드의 개수(35 또는 65)만큼의 크기를 갖고, 0으로 초기화된 배열을 사용하여 구현될 수도 있다.
이 후, 모든 서브 블록에 대해 대응 루마 블록의 화면 내 예측 모드를 이용하여 히스토그램을 생성하고, 가장 높은 빈도수를 보이는 모드 MFIntraPredModeY를 크로마 DM으로 결정할 수 있다.
도 12에 있어서, arg_max(hist)는 히스토그램에서 가장 큰 값을 갖는 원소의 인덱스 또는 키 값을 반환하는 함수를 의미한다.
도 13은 DM 위치 후보의 다양한 실시예를 설명하기 위한 도면이다.
도 14는 본 발명의 일 실시 예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 14를 참고하면, 영상 복호화기는 크로마 블록에 대응하는 루마 블록의 화면 내 예측 모드에 기초하여, 상기 크로마 블록의 화면 내 예측 모드를 결정할 수 있다(S1410).
여기서, 루마 블록의 화면 내 예측 모드는 상기 크로마 블록 내의 소정의 위치에 해당하는 루마 블록의 화면 내 예측 모드일 수 있다. 그리고, 상기 소정 위치는, 상기 크로마 블록의 중앙 위치일 수 있다.
일 예로, 크로마 블록의 좌상단 위치가 (xCb, yCb)이고, 크로마 블록의 너비 및 높이가 각각 cbWidth 및 cbHeight일 때, 크로마 블록의 중앙 위치는 (xCb + cbWidth/2, yCb + cbHeight/2)로 결정될 수 있다. 상기 cbWidth 및 cbHeight는 각각 루마 영역에서 차지하는 현재 크로마 블록의 너비 및 높이일 수 있다.
또한, 상기 소정 위치는, 상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 가장 크기가 큰 루마 블록에 대응하는 위치일 수 있다.
또한, 상기 소정 위치는, 상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 상기 크로마 블록과 중첩되는 면적이 가장 큰 루마 블록에 대응하는 위치일 수 있다.
한편, 상기 루마 블록의 화면 내 예측 모드는, 상기 크로마 블록을 소정 크기의 복수의 서브 블록들로 분할하고, 상기 복수의 서브 블록들의 각각에 대응하는 루마 블록의 화면 내 예측 모드를 유도하고, 상기 유도된 화면 내 예측 모드들 중 빈도수가 가장 높은 화면 내 예측 모드일 수 있다.
그리고, 영상 복호화기는 상기 크로마 블록의 화면 내 예측 모드에 기초하여 상기 크로마 블록에 대해 화면 내 예측을 수행함으로써, 예측 블록을 생성할 수 있다(S1420).
본 발명의 영상 부호화 방법은 도 14에서 설명한 영상 복호화 방법과 유사하게 설명될 수 있으므로, 중복 설명은 생략한다.
또한, 본 발명의 영상 부호화 방법으로 생성된 비트스트림은 생성된 비트스트림은 컴퓨터 판독가능한 비일시적 기록 매체에 일시적으로 저장될 수 있으며, 상술한 영상 복호화 방법에 의해 복호화될 수 있다.
전술한 다양한 실시예에서, 크로마 블록의 좌상단 위치와 중앙 위치를 DM 위치 후보로서 이용하였다. 그러나, DM 위치 후보는 이에 한정되지 않는다. 예컨대, 도 13에 도시된 바와 같이, 크로마 블록을 기준으로, 음영 처리된 복수의 위치들 중 적어도 하나 이상이 DM 위치 후보로서 이용될 수 있다.
또한, 전술한 실시예들은 각각 단독으로 구현될 수도 있고, 둘 이상의 실시예들이 복합적으로 사용될 수도 있다. 예컨대, 도 11을 참조하여 설명한 실시예에서, 하나의 서브 블록에 대한 대응 루마 블록의 화면 내 예측 모드를 유도할 때, 도 3 내지 도 9를 참조하여 설명한 실시예 중 적어도 하나가 이용될 수 있다.
본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
Claims (11)
- 크로마 블록에 대응하는 루마 블록의 화면 내 예측 모드에 기초하여, 상기 크로마 블록의 화면 내 예측 모드를 결정하는 단계; 및
상기 크로마 블록의 화면 내 예측 모드에 기초하여 상기 크로마 블록에 대해 화면 내 예측을 수행함으로써, 예측 블록을 생성하는 단계를 포함하고,
상기 루마 블록의 화면 내 예측 모드는 상기 크로마 블록 내의 소정의 위치에 해당하는 루마 블록의 화면 내 예측 모드인 영상 복호화 방법. - 제1항에 있어서,
상기 소정 위치는,
상기 크로마 블록의 중앙 위치인 영상 복호화 방법. - 제1항에 있어서,
상기 소정 위치는,
상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 가장 크기가 큰 루마 블록에 대응하는 위치인 영상 복호화 방법. - 제1항에 있어서,
상기 소정 위치는,
상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 상기 크로마 블록과 중첩되는 면적이 가장 큰 루마 블록에 대응하는 위치인 영상 복호화 방법. - 제1항에 있어서,
상기 루마 블록의 화면 내 예측 모드는,
상기 크로마 블록을 소정 크기의 복수의 서브 블록들로 분할하고, 상기 복수의 서브 블록들의 각각에 대응하는 루마 블록의 화면 내 예측 모드를 유도하고, 상기 유도된 화면 내 예측 모드들 중 빈도수가 가장 높은 화면 내 예측 모드인 영상 복호화 방법. - 크로마 블록에 대응하는 루마 블록의 화면 내 예측 모드에 기초하여, 상기 크로마 블록의 화면 내 예측 모드를 결정하는 단계; 및
상기 크로마 블록의 화면 내 예측 모드에 기초하여 상기 크로마 블록에 대해 화면 내 예측을 수행함으로써, 예측 블록을 생성하는 단계를 포함하고,
상기 루마 블록의 화면 내 예측 모드는 상기 크로마 블록 내의 소정의 위치에 해당하는 루마 블록의 화면 내 예측 모드인 영상 부호화 방법. - 제6항에 있어서,
상기 소정 위치는,
상기 크로마 블록의 중앙 위치인 영상 부호화 방법. - 제6항에 있어서,
상기 소정 위치는,
상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 가장 크기가 큰 루마 블록에 대응하는 위치인 영상 부호화 방법. - 제6항에 있어서,
상기 소정 위치는,
상기 크로마 블록 내의 복수의 위치의 각각에 대응하는 루마 블록들 중, 상기 크로마 블록과 중첩되는 면적이 가장 큰 루마 블록에 대응하는 위치인 영상 부호화 방법. - 제6항에 있어서,
상기 루마 블록의 화면 내 예측 모드는,
상기 크로마 블록을 소정 크기의 복수의 서브 블록들로 분할하고, 상기 복수의 서브 블록들의 각각에 대응하는 루마 블록의 화면 내 예측 모드를 유도하고, 상기 유도된 화면 내 예측 모드들 중 빈도수가 가장 높은 화면 내 예측 모드인 영상 부호화 방법. - 영상 부호화 방법에 의해 생성된 비트스트림을 저장한 컴퓨터 판독 가능한 기록 매체로서, 상기 영상 부호화 방법은,
크로마 블록에 대응하는 루마 블록의 화면 내 예측 모드에 기초하여, 상기 크로마 블록의 화면 내 예측 모드를 결정하는 단계; 및
상기 크로마 블록의 화면 내 예측 모드에 기초하여 상기 크로마 블록에 대해 화면 내 예측을 수행함으로써, 예측 블록을 생성하는 단계를 포함하고,
상기 루마 블록의 화면 내 예측 모드는 상기 크로마 블록 내의 소정의 위치에 해당하는 루마 블록의 화면 내 예측 모드인 것을 특징으로 하는 컴퓨터 판독 가능한 기록 매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190003541 | 2019-01-10 | ||
KR20190003541 | 2019-01-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200087088A true KR20200087088A (ko) | 2020-07-20 |
Family
ID=71832009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200002612A KR20200087088A (ko) | 2019-01-10 | 2020-01-08 | 영상 부호화/복호화 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20200087088A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022103240A1 (ko) * | 2020-11-16 | 2022-05-19 | 현대자동차주식회사 | 크로마 인트라 방향성 예측모드를 적응적으로 결정하는 영상 부호화 및 복호화 방법 |
WO2022108422A1 (ko) * | 2020-11-23 | 2022-05-27 | 현대자동차주식회사 | 적응적 참조화소 선택을 이용한 영상 부호화 및 복호화 방법 |
WO2023182698A1 (ko) * | 2022-03-24 | 2023-09-28 | 현대자동차주식회사 | 복원 루마 정보 기반 크로마 성분 예측을 위한 방법 |
-
2020
- 2020-01-08 KR KR1020200002612A patent/KR20200087088A/ko unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022103240A1 (ko) * | 2020-11-16 | 2022-05-19 | 현대자동차주식회사 | 크로마 인트라 방향성 예측모드를 적응적으로 결정하는 영상 부호화 및 복호화 방법 |
WO2022108422A1 (ko) * | 2020-11-23 | 2022-05-27 | 현대자동차주식회사 | 적응적 참조화소 선택을 이용한 영상 부호화 및 복호화 방법 |
WO2023182698A1 (ko) * | 2022-03-24 | 2023-09-28 | 현대자동차주식회사 | 복원 루마 정보 기반 크로마 성분 예측을 위한 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11297343B2 (en) | Method and apparatus for encoding/decoding video signal | |
AU2012328924C1 (en) | Determining boundary strength values for deblocking filtering for video coding | |
EP3114838B1 (en) | Hash table construction and availability checking for hash-based block matching | |
EP3750308A1 (en) | Palette coding for video coding | |
CA3118429C (en) | Image signal encoding/decoding method and apparatus therefor | |
US11659174B2 (en) | Image encoding method/device, image decoding method/device and recording medium having bitstream stored therein | |
KR20200104251A (ko) | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 | |
KR102596896B1 (ko) | 비디오 신호 처리 방법 및 장치 | |
JP2024020503A (ja) | ビデオ信号符号化/復号方法及び前記方法に用いられる機器 | |
KR102422485B1 (ko) | 비디오 신호 처리 방법 및 장치 | |
KR102422484B1 (ko) | 비디오 신호 처리 방법 및 장치 | |
US20220345703A1 (en) | Image encoding method/device, image decoding method/device and recording medium having bitstream stored therein | |
JP7566014B2 (ja) | ビデオコーディングのためのクロスコンポーネント適応ループフィルタリングのためのビットシフティング | |
KR20230110701A (ko) | 영상 신호 부호화/복호화 방법 및 장치 | |
KR20200087088A (ko) | 영상 부호화/복호화 방법 및 장치 | |
US20220224932A1 (en) | Image encoding/decoding method and device, and recording medium storing bitstream | |
KR20150048637A (ko) | 색 성분 간 예측 방법 및 장치 | |
KR102575576B1 (ko) | 비디오 부호화/복호화 방법 및 장치 | |
KR20230118538A (ko) | 영상의 부호화/복호화 방법 및 장치 | |
KR20200093469A (ko) | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 | |
KR20190140422A (ko) | 양자화 파라미터 기반의 잔차 블록 부호화/복호화 방법 및 장치 | |
KR20190133628A (ko) | 비디오 신호 처리 방법 및 장치 | |
KR20190113654A (ko) | 비디오 신호 처리 방법 및 장치 | |
KR102557740B1 (ko) | 영상 신호 부호화/복호화 방법 및 장치 | |
US20220086461A1 (en) | Image encoding/decoding method and apparatus |