KR20130040414A - 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치 - Google Patents

인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치 Download PDF

Info

Publication number
KR20130040414A
KR20130040414A KR1020110105156A KR20110105156A KR20130040414A KR 20130040414 A KR20130040414 A KR 20130040414A KR 1020110105156 A KR1020110105156 A KR 1020110105156A KR 20110105156 A KR20110105156 A KR 20110105156A KR 20130040414 A KR20130040414 A KR 20130040414A
Authority
KR
South Korea
Prior art keywords
transform
intra prediction
prediction mode
target block
unit
Prior art date
Application number
KR1020110105156A
Other languages
English (en)
Inventor
이선영
Original Assignee
주식회사 팬택
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 팬택 filed Critical 주식회사 팬택
Priority to KR1020110105156A priority Critical patent/KR20130040414A/ko
Priority to PCT/KR2012/007306 priority patent/WO2013055040A1/ko
Publication of KR20130040414A publication Critical patent/KR20130040414A/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

본 발명은 영상 정보 압축에 관한 것으로서, 본 발명의 일 실시형태는 변환 대상 블록에 적용하는 제1 변환과 제2 변환 사이의 적용 순서를 결정하는 단계 및 상기 적용 순서에 따라서 상기 제1 변환과 상기 제2 변환을 적용하는 단계를 포함하며, 상기 적용 순서는 상기 변환 대상 블록의 인트라 예측 모드에 따라서 결정되는 영상 정보 변환 방법이다. 본 발명에 의하면, 대상 영상에 관한 예측 모드를 고려하여 적절한 변환 및 역변환 타입을 결정할 수 있다.

Description

인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치{Intra Prediction Mode Dependent Transforming And Inverse Transforming Method And Encoding Apparatus And Decoding Apparatus Using The Same}
본 발명은 영상 정보 압축에 관한 기술로서, 더 구체적으로는 인트라 예측 모드에 따라서 처리 대상 영상 정보에 변환 및 역변환을 수행하는 방법 및 장치에 관한 것이다.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 응용 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 데이터량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 전송하거나 기존의 저장 매체를 이용해 저장하는 경우, 전송 비용과 저장 비용이 증가하게 된다. 영상 데이터가 고해상도, 고품질화 됨에 따라 발생하는 이러한 문제들을 해결하기 위해서는 고효율의 영상 압축 기술들이 활용될 수 있다.
영상 압축 기술로 현재 픽쳐의 이전 또는 이후 픽쳐로부터 현재 픽쳐에 포함된 화소값을 예측하는 화면 간 예측 기술, 현재 픽쳐 내의 화소 정보를 이용하여 현재 픽쳐에 포함된 화소값을 예측하는 화면 내 예측 기술, 출현 빈도가 높은 값에 짧은 부호를 할당하고 출현 빈도가 낮은 값에 긴 부호를 할당하는 엔트로피 부호화 기술 등 다양한 기술이 존재하고 이러한 영상 압축 기술을 이용해 영상 데이터를 효과적으로 압축하여 전송 또는 저장할 수 있다.
본 발명의 기술적 과제는 영상 정보 압축 기술에 있어서, 압축 효율을 높이고 복잡도를 감소시키는 방법 및 장치를 제공하는데 있다.
본 발명의 기술적 과제는 압축 처리의 대상이 되는 영상에 적합한 변환 및 역변환 타입을 결정하는 방법 및 장치를 제공하는데 있다.
본 발명의 기술적 과제는 대상 영상에 관한 예측 모드를 고려하여 적절한 변환 및 역변환 타입을 결정하는 방법 및 장치를 제공하는데 있다.
본 발명의 기술적 과제는 대상 영상에 관한 예측 모드에 따라서 결정된 최적의 변환 및 역변환을 수행하는 방법 및 장치를 제공하는데 있다.
(1) 본 발명의 일 실시형태는 영상 정보 변환 방법으로서, 변환 대상 블록에 적용하는 제1 변환과 제2 변환 사이의 적용 순서를 결정하는 단계 및 상기 적용 순서에 따라서 상기 제1 변환과 상기 제2 변환을 적용하는 단계를 포함하며, 상기 적용 순서는 상기 변환 대상 블록의 인트라 예측 모드에 따라서 결정될 수 있다.
(2) (1)에서, 상기 인트라 예측 모드에 대하여 상기 제1 변환과 상기 제2 변환이 상이한 경우에는, 상기 제1 변환과 상기 제2 변환 중 상기 인트라 예측 모드의 방향과 동일한 방향으로 적용되는 변환을 우선 적용할 수 있다.
(3) (1)에서, 상기 인트라 예측 모드에 대하여 상기 제1 변환과 상기 제2 변환이 상이한 경우에는, 상기 제1 변환과 상기 제2 변환 중 상기 인트라 예측 모드의 방향과 상이한 방향으로 적용되는 변환을 우선 적용할 수 있다.
(4) (1)에서, 상기 변환 대상 블록은 4x4 픽셀의 휘도 블록일 수 있다.
(5) 본 발명의 다른 실시형태는 영상 정보 역변환 방법으로서, 역변환 대상 블록에 적용하는 제1 역변환과 제2 역변환 사이의 적용 순서를 결정하는 단계 및 상기 적용 순서에 따라서 상기 제1 역변환과 상기 제2 역변환을 적용하는 단계를 포함하며, 상기 적용 순서는 상기 역변환 대상 블록의 인트라 예측 모드에 따라서 결정될 수 있다.
(6) (5)에서, 상기 인트라 예측 모드에 대하여 상기 제1 역변환과 제2 역변환이 상이한 경우에는, 상기 제1 역변환과 상기 제2 역변환 중 상기 인트라 예측 모드의 방향과 동일한 방향으로 적용되는 역변환을 우선 적용할 수 있다.
(7) (5)에서, 상기 인트라 예측 모드에 대하여 상기 제1 역변환과 제2 역변환이 상이한 경우에는, 상기 제1 역변환과 상기 제2 역변환 중 상기 인트라 예측 모드의 방향과 상이한 방향으로 적용되는 역변환을 우선 적용할 수 있다.
(8) 본 발명의 또 다른 실시형태는 영상 정보 역변환 방법으로서, 역변환 대상 블록에 적용하는 제1 역변환과 제2 역변환 사이의 적용 순서를 결정하는 단계 및 상기 적용 순서에 따라서 상기 제1 역변환과 상기 제2 역변환을 적용하는 단계를 포함하며, 상기 적용 순서는 상기 제1 역변환에 대응하는 제1 변환과 상기 제2 역변환에 대응하는 제2 변환이 상기 역변환 대상 블록에 적용된 변환 순서의 역순으로 적용되고, 상기 변환 순서는 상기 역변환 대상 블록의 인트라 예측 모드의 방향에 따라서 정해질 수 있다.
(9) (8)에서, 상기 변환 순서는 상기 제1 변환과 상기 제2 변환 중에서 상기 인트라 예측 모드의 방향과 동일한 방향을 갖는 변환을 우선 적용하는 순서일 수 있다.
(10) (8)에서, 상기 변환 순서는 상기 제1 변환과 상기 제2 변환 중에서 상기 인트라 예측 모드의 방향과 상이한 방향을 갖는 변환을 우선 적용하는 순서일 수 있다.
(11) 본 발명의 또 다른 실시 형태는 부호화 장치로서, 대상 블록에 대한 예측을 수행하는 예측부 및 상기 대상 블록에 대한 변환을 수행하는 변환부를 포함하며, 상기 변환부는, 상기 예측부에서 수행한 인트라 예측 블록의 모드에 따라서 상기 대상 블록에 적용되는 제1 및 제2 변환의 적용 순서를 결정할 수 있다.
(12) 본 발명의 또 다른 실시 형태는 복호화 장치로서 수신한 비트스트림을 엔트로피 복호화하여 정보를 획득하는 엔트로피 복호화부, 상기 정보를 기반으로 대상 블록에 대한 역변환을 수행하는 역변환부 및 상기 대상 블록에 대한 예측을 수행하는 예측부를 포함하며, 상기 역변환부는, 상기 대상 블록에 적용된 인트라 예측 블록의 모드에 따라서 상기 대상 블록에 적용되는 제1 및 제2 역변환의 적용 순서를 결정할 수 있다.
본 발명에 의하면, 영상 정보를 처리하는데 있어서, 압축 효율을 높이고 복잡도를 감소시킬 수 있다.
본 발명에 의하면, 압축 처리의 대상이 되는 영상에 적합한 변환 및 역변환 타입을 결정할 수 있다.
본 발명에 의하면, 대상 영상에 관한 예측 모드를 고려하여 적절한 변환 및 역변환 타입을 결정할 수 있다.
본 발명에 의하면, 대상 영상에 관한 예측 모드에 따라서 결정된 최적의 변환 및 역변환을 수행할 수 있다.
도 1은 본 발명의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 영상 복호화기를 나타낸 블록도이다.
도 3은 부호화기에서 인트라 예측 후 엔트로피 부호화가 이루어지는 과정을 개략적으로 설명하는 블록도이다.
도 4는 복호화기에서 엔트로피 복호화 후 예측이 이루어지는 과정을 개략적으로 설명하는 블록도이다.
도 5는 부호화 유닛의 재귀적인 분할에 관한 쿼드 트리 구조를 개략적으로 설명하는 도면이다.
도 6은 인트라 예측 모드를 개략적으로 설명하는 도면이다.
도 7은 인트라 예측의 경우에 인트라 예측 모드별로 사용되는 변환 타입을 개략적으로 도시한 것이다.
도 8 내지 도 15는 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 방향의 변환을 적용하는 경우에, 부호화기와 복호화기에서 인트라 예측 모드에 따라서 변환 또는 역변환의 적용 순서를 결정하는 방법의 일 예를 개략적으로 설명하는 순서도이다.
도 16은 부호화기에서 수행할 수 있는 변환과 그에 대응하여 복호화기에서 수행되는 역변환의 순서를 개략적으로 도시한 것이다.
도 17은 본 발명이 적용되는 시스템에서 부호화기의 동작을 개략적으로 설명하는 순서도이다.
도 18은 본 발명이 적용되는 시스템에서 복호화기의 동작을 개략적으로 설명하는 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 영상 부호화 장치(100)는 픽처 분할부(105), 예측부(110), 변환부(115), 양자화부(120), 재정렬부(125), 엔트로피 부호화부(130), 역양자화부(135), 역변환부(140), 필터부(145) 및 메모리(150)를 포함할 수 있다.
도 1에 나타난 각 구성부들은 영상 부호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벋어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 단위로 분할할 수 있다. 이때, 처리 단위는 예측 유닛(Prediction Unit)일 수도 있고, 변환 유닛(Transform Unit: TU)일 수도 있으며, 부호화 유닛(Coding Unit: CU)일 수도 있다. 픽처 분할부(105)에서는 하나의 픽처에 대해 복수의 부호화 유닛, 예측 유닛 및 변환 유닛의 조합으로 분할하고 소정의 기준(예를 들어, 비용 함수)으로 하나의 부호화 유닛, 예측 유닛 및 변환 유닛의 조합을 선택하여 픽처를 부호화 할 수 있다. 예를 들어, 하나의 픽처는 복수 개의 부호화 유닛으로 분할될 수 있다. 픽처에서 부호화 유닛을 분할하기 위해서는 쿼드 트리 구조(Quad Tree Structure)와 같은 재귀적인 트리 구조를 사용할 수 있다. 하나의 영상 또는 최대 크기 부호화 유닛을 루트로 하여 다른 부호화 유닛으로 분할되는 부호화 유닛은 분할된 부호화 유닛의 개수만큼의 자식 노드를 가지고 분할될 수 있다. 일정한 제한에 따라 더 이상 분할되지 않는 부호화 유닛은 리프(leaf) 노드가 된다. 즉, 하나의 부호화 유닛에 대하여 정방형 분할만을 고려하는 경우, 하나의 부호화 유닛은 최대 4개의 다른 부호화 유닛으로 분할될 수 있다. 분할에 관한 구체적인 내용은 후술한다.
본 명세서에서는 부호화 유닛은 부호화를 하는 유닛이라는 의미뿐만 아니라 복호화를 하는 유닛을 의미할 수 있다.
예측부(110)는 화면 간 예측을 수행하는 화면 간 예측부와 화면 내 예측을 수행하는 화면 내 예측부를 포함할 수 있다. 예측 유닛에 대해 화면 간 예측을 사용할 것인지 또는 화면 내 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 화면 내 예측 모드, 움직임 벡터, 참조 픽처 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 예측 유닛으로 결정되고, 예측의 수행은 변환 유닛으로 수행될 수도 있다. 생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(115)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 움직임 벡터 정보 등은 잔차값과 함께 엔트로피 코딩부(130)에서 부호화되어 복호화기에 전달될 수 있다. 특정한 부호화 모드를 사용할 경우, 예측부(110)를 통해 예측 블록을 생성하지 않고, 원본 블록을 그대로 부호화하여 복호화부에 전송하는 것도 가능하다
화면 간 예측부는 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처의 정보를 기초로 예측 유닛을 예측할 수 있다. 화면 간 예측부는 참조 픽처 보간부, 움직임 예측부, 움직임 보상부가 포함할 수 있다.
참조 픽처 보간부에서는 메모리(150)로부터 참조 픽처 정보를 제공받고 참조 픽처에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 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)방법 등 다양한 방법이 사용될 수 있다.
화면 내 예측부는 현재 픽처 내의 화소 정보인 현재 블록 주변의 참조 픽셀정보를 기초로 예측 유닛을 생성할 수 있다. 현재 예측 유닛의 주변 블록이 화면 간 예측을 수행한 블록이어서, 참조 픽셀이 화면 간 예측을 수행한 픽셀일 경우, 화면 간 예측을 수행한 블록에 포함되는 참조 픽셀을 주변의 화면 내 예측을 수행한 블록의 참조 픽셀 정보로 대체하여 사용할 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
화면 내 예측에서 예측 모드는 참조 픽셀 정보를 예측 방향에 따라 사용하는 방향성 예측 모드와 예측을 수행시 방향성 정보을 사용하지 않는 비 방향성 모드를 가질 수 있다. 휘도 정보를 예측하기 위한 모드와 색차 정보를 예측하기 위한 모드가 상이할 수 있고, 색차 정보를 예측하기 위해 휘도 정보를 예측한 화면 내 예측 모드 정보 또는 예측된 휘도 신호 정보를 활용할 수 있다.
화면 내 예측을 수행시 예측 유닛의 크기와 변환 유닛의 크기가 동일할 경우, 예측 유닛의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 유닛에 대한 화면 내 예측을 수행하지만, 화면 내 예측을 수행시 예측 유닛의 크기와 변환 유닛의 크기가 상이할 경우, 변환 유닛을 기초로 한 참조 픽셀을 이용하여 화면 내 예측을 수행할 수 있다. 또한, 최소 부호화 유닛에 대해서만 NxN 분할을 사용하는 화면 내 예측을 사용할 수 있다.
화면 내 예측 방법은 예측 모드에 따라 참조 화소에 AIS(Adaptive Intra Smoothing) 필터를 적용한 후 예측 블록을 생성할 수 있다. 참조 화소에 적용되는 AIS 필터의 종류는 상이할 수 있다. 화면 내 예측 방법을 수행하기 위해 현재 예측 유닛의 화면 내 예측 모드는 현재 예측 유닛의 주변에 존재하는 예측 유닛의 화면 내 예측 모드로부터 예측할 수 있다. 주변 예측 유닛으로부터 예측된 모드 정보를 이용하여 현재 예측 유닛의 예측 모드를 예측하는 경우, 현재 예측 유닛과 주변 예측 유닛의 화면 내 예측 모드가 동일할 경우, 소정의 플래그 정보를 이용하여 현재 예측 유닛과 주변 예측 유닛의 예측 모드가 동일하다는 정보를 전송할 수 있고, 만약, 현재 예측 유닛과 주변 예측 유닛의 예측 모드가 상이할 경우, 엔트로피 부호화를 수행하여 현재 블록의 예측 모드 정보를 부호화할 수 있다.
또한, 예측부(110)에서 생성된 예측 유닛을 기초로 예측을 수행한 예측 유닛과 예측 유닛의 원본 블록과 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(115)로 입력될 수 있다. 변환부(115)에서는 원본 블록과 예측부(110)를 통해 생성된 예측 유닛의 잔차값(residual) 정보를 포함한 잔차 블록을 DCT(Discrete Cosine Transform) 또는 DST(Discrete Sine Transform)와 같은 변환 방법을 사용하여 변환시킬 수 있다. 잔차 블록을 변환하기 위해 DCT를 적용할지 DST를 적용할지는 잔차 블록을 생성하기 위해 사용된 예측 유닛의 화면 내 예측 모드 정보를 기초로 결정할 수 있다.
양자화부(120)는 변환부(115)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(120)에서 산출된 값은 역양자화부(135)와 재정렬부(125)에 제공될 수 있다.
재정렬부(125)는 양자화된 잔차값에 대해 계수값의 재정렬을 수행할 수 있다.
재정렬부(125)는 계수 스캐닝(Coefficient Scanning) 방법을 통해 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다. 예를 들어, 재정렬부(125)에서는 지그재그 스캔(Zig-Zag Scan)방법을 이용하여 DC 계수부터 고주파수 영역의 계수까지 스캔하여 1차원 벡터 형태로 변경시킬 수 있다. 변환 유닛의 크기 및 화면 내 예측 모드에 따라 지그 재그 스캔 방법이 아닌 2차원의 블록 형태 계수를 열 방향으로 스캔하는 수직 스캔 방법, 2차원의 블록 형태 계수를 행 방향으로 스캔하는 수평 스캔 방법이 사용될 수 있다. 즉, 변환 유닛의 크기 및 화면 내 예측 모드에 따라 지그재그 스캔, 수직 방향 스캔 및 수평 방향 스캔 중 어떠한 스캔 방법이 사용될지 여부를 결정할 수 있다.
엔트로피 부호화부(130)는 재정렬부(125)에 의해 산출된 값들을 기초로 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다.
엔트로피 부호화부(130)는 재정렬부(125) 및 예측부(110)로부터 부호화 유닛의 잔차값 계수 정보 및 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, 예측 유닛 정보 및 전송 단위 정보, 움직임 벡터 정보, 참조 프레임 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 부호화할 수 있다.
엔트로피 부호화부(130)에서는 재정렬부(125)에서 입력된 부호화 유닛의 계수값을 엔트로피 부호화할 수 있다.
엔트로피 부호화부(130)에서는 가변 길이 부호화 테이블(Variable Length Coding Table)과 같은 엔트로피 부호화를 수행하기 위한 테이블이 저장될 수 있고 저장된 가변 길이 부호화 테이블을 사용하여 엔트로피 부호화를 수행할 수 있다. 엔트로피 부호화를 수행함에 있어서 테이블에 포함된 일부의 코드 워드(Codeword)에 카운터(Counter)를 이용한 방법 또는 직접 변환(Direct Swapping)방법을 사용하여 해당 정보의 코드 번호에 대한 코드 워드 할당을 변화시킬 수 있다. 예를 들어, 코드 번호와 코드 워드를 매핑하는 테이블에서 적은 비트수의 코드 워드가 할당된 상위 몇 개의 코드 번호의 경우, 카운터를 사용해 코드 번호의 합산된 발생 횟수가 가장 많은 코드 번호에 짧은 길이의 코드 워드를 할당할 수 있도록 적응적으로 코드 워드와 코드 번호를 매핑하는 테이블의 매핑 순서를 바꿀 수 있다. 카운터에서 카운팅된 횟수가 소정의 임계값에 이른 경우, 카운터에 기록된 카운팅 횟수를 반으로 나누어 다시 카운팅을 수행할 수 있다.
카운팅을 수행하지 않는 테이블 내의 코드 번호는 직접 변환(Direct Swapping) 방법을 사용하여 코드 번호에 해당하는 정보가 발생할 경우, 바로 위의 코드 번호와 자리를 변환하는 방법을 통해 해당 코드 번호에 할당되는 비트 수를 적게하여 엔트로피 부호화를 수행할 수 있다.
역양자화부(135) 및 역변환부(140)에서는 양자화부(120)에서 양자화된 값들을 역양자화하고 변환부(115)에서 변환된 값들을 역변환한다. 역양자화부(135) 및 역변환부(140)에서 생성된 잔차값(Residual)은 예측부(110)에 포함된 움직임 추정부, 움직임 보상부 및 인트라 예측부를 통해서 예측된 예측 유닛과 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다.
필터부(145)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter) 중 적어도 하나를 포함할 수 있다.
디블록킹 필터(145)는 복원된 픽처에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 디블록킹을 수행할지 여부를 판단하기 위해 블록에 포함된 몇 개의 열 또는 행에 포함된 픽셀을 기초로 현재 블록에 디블록킹 필터 적용할지 여부를 판단할 수 있다. 블록에 디블록킹 필터를 적용하는 경우 필요한 디블록킹 필터링 강도에 따라 강한 필터(Strong Filter) 또는 약한 필터(Weak Filter)를 적용할 수 있다. 또한 디블록킹 필터를 적용함에 있어 수직 필터링 및 수평 필터링을 수행시 수평 방향 필터링 및 수직 방향 필터링이 병행 처리되도록 할 수 있다.
오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽처에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다.
ALF (Adaptive Loop Filter)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. ALF를 적용할지 여부에 관련된 정보는 휘도 신호는 부호화 유닛(Coding Unit, CU) 별로 전송될 수 있고, 각각의 블록에 따라 적용될 ALF의 크기 및 계수는 달라질 수 있다. ALF는 다양한 형태를 가질 수 있으며, 필터에 그에 따라 포함되는 계수의 갯수도 달라질 수 있다. 이러한 ALF의 필터링 관련 정보(필터 계수 정보, ALF On/Off 정보, 필터 형태 정보)는 비트스트림에서 소정의 파라메터 셋에 포함되어 전송될 수 있다.
메모리(150)는 필터부(145)를 통해 산출된 복원 블록 또는 픽처를 저장할 수 있고, 저장된 복원 블록 또는 픽처는 화면 간 예측을 수행 시 예측부(110)에 제공될 수 있다.
도 2는 본 발명의 일 실시예에 따른 영상 복호화기를 나타낸 블록도이다.
도 2를 참조하면, 영상 복호화기(200)는 엔트로피 복호화부(210), 재정렬부(215), 역양자화부(220), 역변환부(225), 예측부(230), 필터부(235), 메모리(240)가 포함될 수 있다.
영상 부호화기에서 영상 비트스트림이 입력된 경우, 입력된 비트스트림은 영상 부호화기와 반대의 절차로 복호화될 수 있다.
엔트로피 복호화부(210)는 영상 부호화기의 엔트로피 부호화부에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화기에서 엔트로피 부호화를 수행하기 위해 사용된 VLC 테이블은 엔트로피 복호화부에서도 동일한 가변 길이 부호화 테이블로 구현되어 엔트로피 복호화를 수행할 수 있다. 엔트로피 복호화부(210)에서 복호화된 정보 중 예측 블록을 생성하기 위한 정보는 예측부(230)로 제공되고 엔트로피 복호화부에서 엔트로피 복호화를 수행한 잔차값은 재정렬부(215)로 입력될 수 있다.
엔트로피 복호화부(210)에서도 엔트로피 부호화부와 마찬가지로 카운터(Counter) 또는 직접 변환(Direct Swapping) 방법을 이용해 코드 워드 할당 테이블을 변화시킬 수 있고, 변화된 코드 워드 할당 테이블에 기초하여 엔트로피 복호화를 수행할 수 있다.
부호화기에서 수행된 화면 내 예측 및 화면 간 예측에 관련된 정보를 복호화할 수 있다. 전술한 바와 같이 영상 부호화기에서 화면 내 예측 및 화면 간 예측을 수행시 소정의 제약이 있는 경우, 이러한 제약을 기초로 한 엔트로피 복호화를 수행해 현재 블록에 대한 화면 내 예측 및 화면 간 예측에 관련된 정보를 제공받을 수 있다.
재정렬부(215)는 엔트로피 복호화부(210)에서 엔트로피 복호화된 비트스트림을 부호화부에서 재정렬한 방법을 기초로 재정렬을 수행할 수 있다. 1차원 벡터 형태로 표현된 계수들을 다시 2차원의 블록 형태의 계수로 복원하여 재정렬할 수 있다. 재정렬부에서는 부호화부에서 수행된 계수 스캐닝에 관련된 정보를 제공받고 해당 부호화부에서 수행된 스캐닝 순서에 기초하여 역으로 스캐닝하는 방법을 통해 재정렬을 수행할 수 있다.
역양자화부(220)는 부호화기에서 제공된 양자화 파라미터와 재정렬된 블록의 계수값을 기초로 역양자화를 수행할 수 있다.
역변환부(225)는 영상 부호화기에서 수행한 양자화 결과에 대해 변환부에서 수행한 DCT 및 DST에 대해 역DCT 및 역 DST를 수행할 수 있다. 역변환은 영상 부호화기에서 결정된 전송 단위를 기초로 수행될 수 있다. 영상 부호화기의 변환부에서는 DCT와 DST는 예측 방법, 현재 블록의 크기 및 예측 방향 등 복수의 정보에 따라 선택적으로 수행될 수 있고, 영상 복호화기의 역변환부(225)에서는 영상 부호화기의 변환부에서 수행된 변환 정보를 기초로 역변환을 수행할 수 있다.
변환을 수행시 변환 유닛이 아닌 부호화 유닛을 기준으로 변환을 수행할 수 있다.
예측부(230)는 엔트로피 복호화부(210)에서 제공된 예측 블록 생성 관련 정보와 메모리(240)에서 제공된 이전에 복호화된 블록 또는 픽처 정보를 기초로 예측 블록을 생성할 수 있다.
전술한 바와 같이 영상 부호화기에서의 동작과 동일하게 화면 내 예측을 수행시 예측 유닛의 크기와 변환 유닛의 크기가 동일할 경우, 예측 유닛의 좌측에 존재하는 픽셀, 좌측 상단에 존재하는 픽셀, 상단에 존재하는 픽셀을 기초로 예측 유닛에 대한 화면 내 예측을 수행하지만, 화면 내 예측을 수행시 예측 유닛의 크기와 변환 유닛의 크기가 상이할 경우, 변환 유닛을 기초로 한 참조 픽셀을 이용하여 화면 내 예측을 수행할 수 있다. 또한, 최소 부호화 유닛에 대해서만 NxN 분할을 사용하는 화면 내 예측을 사용할 수 있다.
예측부(230)는 예측 유닛 판별부, 화면 간 예측부 및 화면 내 예측부를 포함할 수 있다. 예측 유닛 판별부는 엔트로피 복호화부에서 입력되는 예측 유닛 정보, 화면 내 예측 방법의 예측 모드 정보, 화면 간 예측 방법의 움직임 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 유닛에서 예측 유닛을 구분하고, 예측 유닛이 화면 간 예측을 수행하는지 아니면 화면 내 예측을 수행하는지 여부를 판별할 수 있다. 화면 간 예측부는 영상 부호화기에서 제공된 현재 예측 유닛의 화면 간 예측에 필요한 정보를 이용해 현재 예측 유닛이 포함된 현재 픽처의 이전 픽처 또는 이후 픽처 중 적어도 하나의 픽처에 포함된 정보를 기초로 현재 예측 유닛에 대한 화면 간 예측을 수행할 수 있다.
화면 간 예측을 수행하기 위해 부호화 유닛을 기준으로 해당 부호화 유닛에 포함된 예측 유닛의 움직임 예측 방법이 스킵 모드(Skip Mode), 머지 모드(Merge 모드), AMVP 모드(AMVP Mode) 중 어떠한 방법인지 여부를 판단할 수 있다.
화면 내 예측부는 현재 픽처 내의 화소 정보를 기초로 예측 블록을 생성할 수 있다. 예측 유닛이 화면 내 예측을 수행한 예측 유닛인 경우, 영상 부호화기에서 제공된 예측 유닛의 화면 내 예측 모드 정보를 기초로 화면 내 예측을 수행할 수 있다. 화면 내 예측부에는 AIS 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 부분으로써 현재 예측 유닛의 예측 모드에 따라 필터의 적용 여부를 결정하여 적용할 수 있다. 영상 부호화기에서 제공된 예측 유닛의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
참조 화소 보간부는 예측 유닛의 예측 모드가 참조 화소를 보간한 화소값을 기초로 화면 내 예측을 수행하는 예측 유닛일 경우, 참조 화소를 보간하여 정수값 이하의 화소 단위의 참조 화소을 생성할 수 있다. 현재 예측 유닛의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
복원된 블록 또는 픽처는 필터부(235)로 제공될 수 있다. 필터부(235)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화기로부터 해당 블록 또는 픽처에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화기의 디블록킹 필터에서는 영상 부호화기에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화기에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다. 영상 부호화기에서와 마찬가지로 우선 수직 디블록킹 필터링 및 수평 디블록킹 필터링을 수행하되, 겹치는 부분에 있어서는 수직 디블록킹 및 수평 디블록킹 중 적어도 하나를 수행할 수 있다. 수직 디블록킹 필터링 및 수평 디블록킹 필터링이 겹치는 부분에서 이전에 수행되지 못한 수직 디블록킹 필터링 또는 수평 디블록킹 필터링이 수행될 수 있다. 이러한 디블록킹 필터링 과정을 통해서 디블록킹 필터링의 병행 처리(Parallel Processing)이 가능하다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다.
ALF는 필터링을 수행 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 부호화기로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 유닛에 ALF를 적용할 수 있다. 이러한 ALF 정보는 특정한 파라메터 셋에 포함되어 제공될 수 있다.
메모리(240)는 복원된 픽처 또는 블록을 저장하여 참조 픽처 또는 참조 블록으로 사용할 수 있도록 할 수 있고 또한 복원된 픽처를 출력부로 제공할 수 있다.
도 3은 부호화기에서 인트라 예측 후 엔트로피 부호화가 이루어지는 과정을 개략적으로 설명하는 블록도이다. 도 3에서는 인트라 예측이 예측 대상 블록에 적용되는 예를 설명한다.
도 3을 참조하면, 부호화기에서는 예측 대상 블록의 화소들에 대해 예측이 수행된 뒤에, 예측 블록과 대상 블록의 잔차에 대하여 변환(transform)이 수행된다. 변환 계수(coeffiecients)는 다시 양자화(quantization)된 후 스캐닝되어 정렬 되며 엔트로피 부호화 과정을 거친다. 엔트로피 부호화를 거친 정보는 비트 스트림으로 복호화기에 전달된다. 각 과정의 구체적인 내용은 도 1에서 상술한 바와 같다.
도 4는 복호화기에서 엔트로피 복호화 후 예측이 이루어지는 과정을 개략적으로 설명하는 블록도이다. 도 4에서는 인트라 예측이 예측 대상 블록에 적용되는 예를 설명한다.
도 4를 참조하면, 복호화기에서는 부호화기로부터 수신한 비트스트림의 정보에 대해서 엔트로피 복호화를 수행한다. 양자화된 변환 계수들은 복호화된 후 스캐닝을 거쳐서 재정렬된 후 역양자화를 거치고 다시 역변환을 거친다. 역변환된 정보를 기반으로 복호화기는 인트라 예측을 수행해서 복호화 대상 블록의 픽셀을 출력할 수 있다. 각 과정의 구체적인 내용은 도 2에서 상술한 바와 같다.
상술한 바와 같이, 하나의 프레임은 압축의 기본 단위인 복수의 블록, 예컨대 부호화 유닛으로 분할될 수 있다. 부호화 유닛의 최대 사이즈는 소정의 크기, 예컨대 64x64 픽셀로 정해질 수 있다. 또한, 사용자 등에 의해 가변적으로 결정될 수도 있다.
부호화 유닛은 압축 성능에 따라 복수의 부호화 유닛으로 재분할 될 수 있다.
도 5는 부호화 유닛의 재귀적인 분할에 관한 쿼드 트리 구조를 개략적으로 설명하는 도면이다. 쿼드 트리 구조에서는 부호화 유닛은 더 작은 사이즈의 부호화 유닛으로 분할될 수 있으며, 더 이상 분할되지 않는 최소 사이즈의 부호화 유닛을 정할 수 있다.
부호화 유닛은 예측을 위한 예측 유닛(Prediction Unit: PU)으로 분할될 수 있으며, 인터 예측과 인트라 예측에 다양한 사이즈의 예측 유닛을 이용할 수 있다. 또한, 예측 유닛의 사이즈는 인트라 예측 또는 인터 예측에 따라 다양할 수 있다. 예측 유닛은 또한 변환을 위한 변환 유닛(Transform Unit: TU)로 분할될 수 있다.
도 5의 부호화 유닛의 최대 사이즈가 64x64인 경우를 예로서 설명한다.
도 5를 참조하면, 64x64의 최대 사이즈 부호화 유닛(Largest Coding Unit: LCU, CU1)은 분할을 지시하는 스플릿 플래그(split_flag)의 값이 1인 경우에는 4 개의 부호화 유닛으로 분할될 수 있다. 네 개의 부호화 유닛(CU20~CU24)으로 분할된 최대 사이즈 부호화 유닛(510)의 각 부호화 유닛에 대하여 스플릿 플래그를 통해 다시 분할 여부를 지시할 수 있다.
부호화 유닛(CU12)에 대한 스플릿 플래그의 값이 1인 경우를 예로서 생각하면, 부호화 유닛(CU12)는 다시 네 개의 부호화 유닛(CU20~CU23)로 분할될 수 있다. 쿼드 트리의 계층적 구조에서 CU1의 깊이(depth)를 1이라고 할 때, 분할된 부호화 유닛(CU12)의 깊이는 2가 된다.
다시 분할된 각 부호화 유닛(CU20~CU23)에 대하여 스플릿 플래그를 통해 분할 여부를 지시할 수 있다. 분할하는 경우(split_flag=1)에는 아래 깊이에서 더 작은 사이즈를 갖는 부호화 유닛(0~3)으로 분할될 수 있다.
한편, 더 이상 분할되지 않는(예컨대, split_flag=0) 부호화 유닛의 경우에는 예측 유닛(580)으로 분할될 수 있다. 예측 유닛은 부호화 유닛과 동일하거나 더 작은 사이즈를 가질 수 있다. 이때, 각 예측 유닛의 사이즈 혹은 형태에 관한 정보는 분할을 지시하는 플래그가 아니라 해당 유닛의 사이즈를 특정하는 신택스를 통해 복호화기에 전달될 수 있다. 예측 유닛의 사이즈는 형태별로 특정될 수 있으며, 예컨대, NxN 의 예측 유닛은 8x8인 경우에만 정의되도록 할 수도 있다. 또한, 예측 유닛을 기반으로 변환 유닛(590)이 정해질 수도 있다.
여기서는 도시된 부호화 유닛(680)과 같은 형태를 예로서 설명하였으나, 그 외에도 인트라 예측에 대하여 SDIP(Short Distance Intra Prediction)의 경우에는 NxhN 및/또는 hNxN (h는 반(half)을 의미)의 사이즈를 갖는 예측 유닛을 고려할 수 있다.
인트라 예측에 대하여, 어떤 예측 모드를 사용할 것인지는 예측 유닛별로 정해질 수 있으며, 정해진 예측 모드를 이용한 예측은 변환 유닛별로 수행될 수 있다.
부호화 유닛에 관한 정보는 휘도 성분인 루마(Luma, luminance) 데이터와 색차 성분인 크로마(chroma, chrominance) 데이터로 구분할 수 있다. 표 1은 루마 데이터에 대하여, 인트라 예측을 위해 이용되는 예측 모드(intra prediction mode)의 개수를 현재 블록의 사이즈(log2TrafoSize)별로 분류한 것이다. log2TrafoSize는 현재 변환 유닛의 사이즈 또는 현재 예측 유닛의 사이즈를 나타내는 것으로서, 현재 블록의 사이즈를 특정할 수 있다. 표 1은 크기가 최대 64X64 픽셀 사이즈로부터 4X4까지 정방형의 블록이 예측에 이용되는 경우를 예로서 설명하는 것이다.
현재 블록의 사이즈
( log2TrafoSize )
인트라 예측 모드 개수
( intraPredModeNum )
2(4X4) 18
3(8X8) 35
4(16X16) 35
5(32X32) 35
6(64X64) 4
표 1을 참조하면, 현재 블록의 사이즈에 따라 다르지만, 최대 35개의 인트라 예측 모드가 이용될 수 있다는 것을 알 수 있다.
인트라 예측 모드는 인트라 예측을 수행하는 방향에 따라서 결정된다.
인트라 예측 모드 관련 명칭
0 Intra _ Vertical
1 Intra _ Horizontal
2 Intra _ DC
그 외 (3..33) Intra _ Angular
34 Intra _ Planar
35 Intra _ FromLuma
( 크로마에 대해서만 이용)
표 2는 인트라 예측 모드와 인트라 예측 모드에 대응하는 번호 (모드 번호)를 매핑한 표이다.
인트라 예측 모드 관련 명칭
0 Intra _ Planar
1 Intra _ Vertical
2 Intra _ Horizontal
3 Intra _ DC
그 외 (4..34) Intra _ Angular
35 Intra_FromLuma
( 크로마에 대해서만 사용)
표 3은 인트라 예측 모드와 인트라 예측 모드에 대응하는 번호 (모드 번호)를 매핑한 표이다. 표 2와 달리, 표 3에서는 플래너 모드를 우선시 하여 인트라 예측 모드들을 배열하였다.
표 2와 표 3에서 보이는 것처럼, 인트라 예측 모드에 대응하는 인트라 예측 모드 번호를 예측 모드의 우선 순위에 따라 부여할 수 있다. 본 발명에서는 편의상 표 2에 근거하여, 인트라 예측 모드 번호를 사용하며, 인트라 예측 모드는 표 3에 해당하는 모드 번호로 매핑 할 수도 있다. 예를 들어, 표 2의 Intra_DC mode (예측 모드 번호 2)는 표 3의 Intra_DC mode (예측 모드 번호 3)으로 변환 할 수 있고, 표 2의 Intra_Angular (예측 모드 번호 3-33) 는 표 3의 Intra_ Angular (예측 모드 번호 4-34)으로 변환 할 수 있다.
도 6은 인트라 예측 모드를 개략적으로 설명하는 도면이다. 도 6을 참조하면, DC 모드, 플래너 모드, 크로마에 대하여 루마의 모드를 적용하는 경우를 제외하고, 0, 1, 3~33 의 인트라 예측 모드가 방향에 따라서 정의되어 있는 것을 확인할 수 있다. 표 2 및 표 3에 관해서 설명한 바와 같이, 인트라 예측 모드의 번호는 인트라 플래너 모드(Intra_Planar)의 우선 순위를 어떻게 정할 것인지에 따라서 달라진다. 본 발명에서는 상술한 바와 같이 표 2에 따라서 정의된 인트라 예측 모드를 이용하며, 도 6 역시 표 2에 따른 인트라 모드 번호를 이용하여 도시된 것이다. 표 3에 따라서도 인트라 예측 모드를 도시할 수 있으며, 이 경우 도 6과의 차이는 표 3에 따라서, 인트라 예측 모드의 번호에 상술한 바와 같은 변경이 있을 수 있다.
한편, 부호화기에서 DCT(Descrete Cosine Transform)가 기본적인 코어 변환 방법으로 사용되며, 복호화기에서는 IDCT(Inverse descrete Cosine Transform)이 기본적인 코어 역변환 방법으로 사용된다.
일반적으로 DCT는 NxN 샘플의 블록 X ( i , j )에 대해서 변환 행렬 A u , v ( i , j )를 이용하여 수행되며, NxN 의 계수 블록 Y ( u , v )를 수학식 1과 같이 생성한다.
Figure pat00001
여기서, i, j, u, v = 0, 1, ..., N-1 이며 C(U)와 C(V)는
Figure pat00002
로 정의된다.
변환 행렬 A u , v ( i , j )은 수학식 2와 같다.
Figure pat00003
한편, 변환 방법과 역변환 방법 역시 현재 블록의 사이즈, 예컨대 변환 유닛 또는 예측 유닛의 사이즈에 따라 다르게 적용될 수 있다. 가령, 가장 작은 사이즈에 대한 루마 예측이 수행되는 경우, 예컨대 4X4 인트라 예측이 수행되는 경우에는 DCT와 IDCT 외에 DST(Descrete Sine Transform)과 IDST(Inverse Descrete Sine Transform)이 적용되도록 할 수도 있다.
일반적으로 DST는 NxN 샘플의 블록 X ( i , j )에 대해서 변환 행렬 B u , v ( i , j )를 이용하여 수행되며, NxN 의 계수 블록 Y ( u , v )를 수학식 3과 같이 생성한다.
Figure pat00004
여기서, i, j, u, v = 0, 1, ..., N-1 이며, C(U)와 C(V)는
Figure pat00005
로 정의된다.
변환 행렬 B u , v ( i , j )은 수학식 4와 같다.
Figure pat00006
표 4는 인트라 예측의 경우에 인트라 예측 모드별로 사용되는 변환 타입의 예를 나타낸 것이다. 표 3에서 0은 DCT를 나타내고, 1은 DST를 나타낸다.
Figure pat00007
표 4를 참조하면, 모드 0의 경우에는 수평 방향으로 DCT를 적용하고, 수직 방향으로 DST를 적용하는 것을 알 수 있다.
일반적으로 2 차원(2 dimension)의 예측 유닛 데이터를 변환하기 위해서, 부호화기는 수평 방향으로 1 차원 DCT를 적용하고, 그 결과값에 대하여 다시 수직 방향으로 1차원 DCT를 적용한다. 이렇게 변환된 데이터를 수신한 복호화기는, 부호화기의 처리에 대응해서, 우선 수직 방향으로 1차원 IDCT를 적용하고, 그 결과값에 대하여 수평 방향으로 1차원 IDCT를 적용해서 인트라 예측에 필요한 정보를 획득한다.
일반적으로 1차원 DCT의 변환 행렬 A u ( i )는 수학식 5, 1차원 DST의 변환 행렬 B u ( i ) 는 수학식 6와 같다.
Figure pat00008
Figure pat00009
이와 관련하여, 수평 방향과 수직 방향으로 서로 다른 변환을 적용하는 경우에 그 적용 순서가 문제된다.
수학식 1과 같이 동일한 변환을 적용하는 경우에는 그 적용 순서에 관계없이 동일한 결과를 얻을 수 있다. 예컨대, 수평 방향과 수직 방향 모두 DCT를 적용할 때는, 수평 방향으로 먼저 변환을 한 후 수직 방향으로 변환하는 경우와 수직 방향으로 먼저 변환을 한 후 수평 방향으로 변환하는 경우가 동일한 결과값을 얻을 수 있다. 또한, 수평 방향과 수직 방향 모두 DST를 적용할 때에도, 수평 방향으로 먼저 변환을 한 후 수직 방향으로 변환하는 경우와 수직 방향으로 먼저 변환을 한 후 수평 방향으로 변환하는 경우가 동일한 결과값을 얻을 수 있다.
하지만, 수학식 5 및 수학식 6과 같이 수평 방향과 수직 방향에 대하여 서로 다른 변환을 적용하는 경우에는, 적용 순서에 따라서 서로 다른 결과값이 나올 수 있다. 예컨대, 수평 방향으로 DCT를 적용하고 수직 방향으로 DST를 적용하는 경우 혹은 수평 방향으로 DST를 적용하고 수직 방향으로 DCT를 적용하는 경우에는, 어떤 방향의 변환을 먼저 수행하느냐에 따라서 결과값이 달라질 수 있다.
따라서, 이차원 변환을 수행할 때, 각 방향에 대하여 서로 다른 변환 타입이 적용되는 경우에 변환의 순서를 특정함으로써 압축 부호화의 성능을 높일 수 있다.
예컨대, 수평 방향의 인트라 예측 모드에 수평 방향의 변환이 먼저 적용된다면, 대칭적으로 수직 방향의 인트라 예측 모드에 대해서는 수직 방향의 변환이 먼저 적용될 수 있다. 반대로, 수평 방향의 인트라 예측 모드에 수직 방향의 변환이 먼저 적용된다면, 대칭적으로 수직 방향의 인트라 예측 모드에 대해서는 수평 방향의 변환이 먼저 적용될 수 있다.
도 7은 인트라 예측의 경우에 인트라 예측 모드별로 사용되는 변환 타입을 도 6에 표시한 것이다. 변환 유닛에 대한 변환은 인트라 예측 모드의 방향에 대하여 대칭적으로 수행될 수 있다. 예컨대, 수평 방향의 예측 모드에 대하여, 수평 방향의 변환이 먼저 적용된다면, 수직 방향의 예측 모드에 대해서는 수직 방향의 모드가 먼저 적용되도록 할 수 있다. 도 7을 참조하면, 수직 방향의 인트라 예측 모드와 수평 방향의 인트라 예측 모드에 대칭적으로 수직 방향/수평 방향의 변환이 적용될 수 있는 것을 확인할 수 있다. 상술한 바와 같이 도 7은 표 2에 따라서 도시된 것이며, 표 3에 따라서 인트라 예측 모드의 번호를 정하는 경우에는 도 7에 도시된 번호에 앞서 설명한 바와 같은 변경이 있을 수 있다.
따라서, 수평 방향과 수직 방향으로 상이한 변환 타입을 적용하는 경우에는 해당 변환 유닛의 인트라 예측 모드의 방향에 따라서 적응적으로 변환의 순서를 정할 수 있다. 즉, 해당 변환 유닛에 대한 인트라 예측 모드에 따라 수평 방향 변환과 수직 방향 변환의 적용 순서를 결정할 수 있다.
이하, 대상 블록에 대하여 수직 방향과 수평 방향으로 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법을 구체적으로 설명한다.
인트라 예측 모드의 방향과 동일 방향의 변환을 우선 적용하는 방법
서로 다른 변환을 적용하는 경우에 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 일 예로서, 인트라 예측 모드의 방향과 동일한 방향의 변환을 우선 적용하는 방법을 생각할 수 있다.
수직 방향으로 예측을 하는 경우에는 수직 방향의 변환을 먼저 적용하고, 그 결과값에 수평 방향의 변환을 적용할 수 있다. 여기서, 수직 방향의 예측이라 함은 정확한 수직 방향의 인트라 예측 모드(인트라 예측 모드 0)뿐만 아니라, 대상 블록의 상측(top) 방향에 있는 인트라 예측 모드로서 서로 다른 변환이 적용되는 인트라 예측 모드를 포함한다. 예컨대, 도 7을 참조하면, 수직 모드 (VER mode) 우측에 위치하는 인트라 예측 모드(0, 22, 12, 23, 5, 24, 13, 25, 6)를 수직 방향의 예측 모드라 할 수 있다.
수평 방향으로 예측을 하는 경우에는 수평 방향의 변환을 먼저 적용하고, 그 결과값에 수직 방향의 변환을 적용할 수 있다. 여기서, 수평 방향의 예측이라 함은, 정확한 수평 방향의 인트라 예측 모드(인트라 예측 모드 1)뿐만 아니라, 대상 블록의 좌측(left) 방향에 있는 인트라 예측 모드로서 서로 다른 변환이 적용되는 인트라 예측 모드를 포함한다. 예컨대, 도 7을 참조하면, 수평 모드 (HOR mode) 아래쪽에 위치하는 인트라 예측 모드(1, 30, 16, 31, 8, 32, 17, 33, 9)를 수평 방향의 예측 모드라 할 수 있다.
도 8은 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 일 예를 개략적으로 설명하는 순서도이다. 도 8에서는 대상 블록에 적용되는 인트라 예측 모드의 방향과 동일한 방향의 변환을 우선 적용하는 예를 설명한다.
도 8을 참조하면, 부호화기는 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용되는 변환의 타입이 동일한지를 판단한다(S810). 변환의 타입은 DST와 DCT 중 어느 하나로서, 수직 방향과 수평 방향에 동일한 타입의 변환이 적용될 수도 있고, 수직 방향과 수평 방향에 서로 다른 타입의 변환이 적용될 수도 있다. 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용되는 변환의 타입이 동일한지 여부는 예컨대, 변환 대상 블록의 사이즈 및/또는 적용된 인트라 예측 모드를 기반으로 판단될 수 있다.
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용되는 경우에, 부호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인지를 판단할 수 있다(S820). 상술한 바와 같이, 수직 방향의 인트라 예측 모드라 함은 대상 블록의 상측(top) 방향에 있는 인트라 예측 모드로서 서로 다른 변환이 적용되는 인트라 예측 모드를 포함한다.
대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 부호화기는 수직 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 변환을 수행한다(S830). 예컨대, 대상 블록에 대한 수직 방향의 변환 타입이 DCT인 경우에는, DCT를 수직 방향으로 우선 적용하고, 대상 블록에 대한 수직 방향의 변환 타입이 DST인 경우에는 DST를 수직 방향으로 우선 적용한다. 따라서, 인트라 예측 블록의 방향과 동일한 방향의 변환이 먼저 적용된다.
이어서, 수평 방향의 변환 타입을 이용하여 대상 블록에 대한 수평 방향의 변환을 수행한다(S840). 예컨대, 대상 블록에 대한 수직 방향의 변환 타입이 DCT 였다면, 수직 방향으로 DCT가 적용된 결과값에 수평 방향으로 DST가 적용될 수 있다. 대상 블록에 대한 수직 방향의 변환 타입이 DST였다면, 수직 방향으로 DST가 적용된 결과값에 수평 방향으로 DCT가 적용될 수 있다.
한편, 상술한 바와 같이, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에는 수평 방향의 변환을 먼저 적용할 수 있다(S850).
수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이하지만, 대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 부호화기는 수평 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 변환을 수행한다(S850). 따라서, 인트라 예측 모드의 방향과 동일한 방향의 변환이 먼저 적용된다. 상술한 바와 같이, 수평 방향의 인트라 예측 모드라 함은 대상 블록의 좌측(top) 방향에 있는 인트라 예측 모드로서 서로 다른 변환이 적용되는 인트라 예측 모드를 포함한다. 부호화기는 대상 블록에 대한 수평 방향의 변환 타입이 DCT인 경우에는, DCT를 수평 방향으로 우선 적용하고, 대상 블록에 대한 수평 방향의 변환 타입이 DST인 경우에는 DST를 수평 방향으로 우선 적용한다.
이어서, 부호화기는 수직 방향의 변환 타입을 이용하여 대상 블록에 대한 수직 방향의 변환을 수행한다(S860). 예컨대, 대상 블록에 대한 수평 방향의 변환 타입이 DCT 였다면, 수평 방향으로 DCT가 적용된 결과값에 수직 방향으로 DST가 적용될 수 있다. 대상 블록에 대한 수평 방향의 변환 타입이 DST였다면, 수평 방향으로 DST가 적용된 결과값에 수직 방향으로 DCT가 적용될 수 있다.
여기서는 부호화기가 변환을 수행하는 것으로 설명하였으나, 부호화기 내의 특정 모듈, 예컨대 변환부에서 상술한 바와 같은 변환 동작을 수행할 수 있다.
또한, S820 단계에서는 대상 블록에 적용된 인트라 예측 모드가 수직 방향인지를 판단하여 이후의 단계를 수행하지만, 본 발명은 이에 한정되지 않으며, 대상 블록에 적용된 인트라 예측 모드가 수평 방향인지를 판단하여 판단 결과에 따라 이후의 단계를 적용할 수도 있다.
도 9는 본 발명이 적용되는 복호화기에서 역변환 대상 블록에 서로 다른 역변환을 적용하는 경우에, 인트라 예측 모드에 따라서 역변환의 적용 순서를 결정하는 방법의 일 예를 개략적으로 설명하는 순서도이다. 도 9에서는 부호화기에서 대상 블록에 적용되는 인트라 예측 모드의 방향과 동일한 방향의 변환을 우선 적용한 경우에 복호화기에서 수행되는 역변환 방법의 예를 설명한다.
도 9를 참조하면, 복호화기는 엔트로피 복호화의 결과, 변환 대상 블록에 수평 방향과 수직 방향으로 동일한 변환 타입이 적용되었는지를 판단한다(S910). 변환의 타입은 DST와 DCT 중 어느 하나일 수 있다. 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용된 변환의 타입이 동일한지 여부는 예컨대, 변환 대상 블록의 사이즈 및/또는 적용된 인트라 예측 모드를 기반으로 판단될 수 있다.
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용된 경우에, 복호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인지를 판단할 수 있다(S920).
대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 복호화기는 수평 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 역변환을 수행한다(S930). 복호화기에서는 후술하는 바와 같이, 부호화기에서 적용된 변환 순서의 역순으로, 부호화기에서 적용된 변환에 대응하는 역변환을 적용할 수 있다.
이어서, 복호화기는 수직 방향의 역변환 타입을 이용하여 대상 블록에 대한 수직 방향의 역변환을 수행한다(S940). 예컨대, 대상 블록에 대한 수평 방향의 역변환 타입이 IDCT였다면, 수평 방향으로 IDCT가 적용된 결과값에 수직 방향으로 IDST가 적용될 수 있다. 대상 블록에 대한 수평 방향의 역변환 타입이 IDST였다면, 수평 방향으로 IDST가 적용된 결과값에 수직 방향으로 IDCT가 적용될 수 있다.
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 복호화기는 수직 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 역변환을 수행한다(S950).
이어서, 복호화기는 수평 방향의 역변환 타입을 이용하여 대상 블록에 대한 수평 방향의 역변환을 수행한다(S960). 예컨대, 대상 블록에 대한 수직 방향의 역변환 타입이 IDCT 였다면, 수직 방향으로 IDCT가 적용된 결과값에 수평 방향으로 IDST가 적용될 수 있다. 대상 블록에 대한 수직 방향의 역변환 타입이 IDST였다면, 수직 방향으로 IDST가 적용된 결과값에 수평 방향으로 IDCT가 적용될 수 있다.
또한, 대상 블록에 적용된 수평 방향의 변환과 수직 방향의 변환이 동일한 경우(S910)에도, 수직 방향의 역변환을 먼저 수행하고(S950), 수평 방향의 역변환을 이어서 수행할 수 있다(S960).
여기서는 복호화기가 변환을 수행하는 것으로 설명하였으나, 복호화기 내의 특정 모듈, 예컨대 역변환부에서 상술한 바와 같은 역변환 동작을 수행할 수 있다.
또한, S920 단계에서는 대상 블록에 적용된 인트라 예측 모드가 수직 방향인지를 판단하여 이후의 단계를 수행하지만, 본 발명은 이에 한정되지 않으며, 대상 블록에 적용된 인트라 예측 모드가 수평 방향인지를 판단하여 판단 결과에 따라 이후의 단계를 적용할 수도 있다.
한편, 도 9의 예에서는 복호화기가 대상 블록에 적용된 인트라 예측 모드를 판단하여, 역변환의 적용 순서를 결정하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 복호화기는 엔트로피 복호화의 결과로 획득한 변환에 대한 정보를 기반으로, 부호화기에서 수행된 변환에 대응하는 역변환을, 부호화기에서 변환이 적용된 순서의 역순으로 적용할 수도 있다. 이 경우에 변환의 순서에 관한 정보는 부호화기로부터 복호화기로 시그널링 될 수 있다.
도 8과 9에서는 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한지를 먼저 판단한 후에, 인트라 예측 모드의 방향을 판단하였으나, 이와 달리 인트라 예측 모드의 방향을 먼저 판단하고, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한지를 판단할 수도 있다.
도 10은 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 10에서는 도 8과 달리 인트라 예측 모드의 방향을 먼저 판단한다.
도 10을 참조하면, 부호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인지를 우선 판단할 수 있다(S1010). 대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 부호화기는 대상 블록에 적용되는 수평 방향 변환 타입과 수평 방향 변환 타입이 상이한지를 판단할 수 있다(S1020).
대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한 경우에, 부호화기는 수직 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 변환을 수행한다(S1030). 따라서, 대상 블록에 대한 인트라 예측 모드의 방향과 동일한 방향의 변환 타입이 먼저 적용된다. 이어서, 수평 방향의 변환 타입을 이용하여 대상 블록에 대한 수평 방향의 변환을 수행한다(S1040).
한편, 인트라 예측 모드의 각도가 수평인 경우에는 수평 방향의 변환 타입을 먼저 적용하고(S1050), 이어서 수직 방향의 변환 타입을 적용한다(S1060). 따라서, 인트라 예측 모드의 방향과 동일한 방향의 변환 모드가 먼저 적용된다.
또한, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에는, 일반적인 변환 방법과 동일하게, 수평 방향의 변환 타입을 먼저 적용하고(S1050), 이어서 수직 방향의 변환 타입을 적용한다(S1060).
도 10의 각 단계에서 수행되는 구체적인 동작은 도 8의 대응하는 단계에서 설명한 바와 같다.
도 11은 본 발명이 적용되는 복호화기에서 역변환 대상 블록에 서로 다른 역변환을 적용하는 경우에, 인트라 예측 모드에 따라서 역변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 11에서는 도 9와 달리, 인트라 예측 모드의 각도를 먼저 판단한다.
도 11을 참조하면, 엔트로피 복호화의 결과, 복호화기는 먼저 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인지를 판단할 수 있다(S1110). 대상 블록에 적용된 인트라 예측 모드의 각도가 수직 방향인 경우에, 복호화기는 대상 블록에 수평 방향과 수직 방향으로 동일한 변환 타입이 적용되었는지를 판단한다(S1120).
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용된 경우에, 복호화기는 수평 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 역변환을 수행한다(S1130). 이어서, 복호화기는 수직 방향의 역변환 타입을 이용하여 대상 블록에 대한 수직 방향의 역변환을 수행한다(S1140). 따라서, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 역변환을 적용할 수 있다.
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 복호화기는 수직 방향의 역변환 타입을 우선 적용하고(S1150), 수평 방향의 역변환 타입을 이어서 적용한다(S1160). 따라서, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 역변환을 적용할 수 있다.또한, 인트라 예측 모드의 각도는 수직이지만, 대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에도, 복호화기는 수직 방향의 역변환 타입을 우선 적용하고(S1150), 수평 방향의 역변환 타입을 이어서 적용할 수 있다(S1160).
도 11의 각 단계에서 수행되는 구체적인 동작은 도 9의 대응하는 단계에서 설명한 바와 같다.
인트라 예측 모드의 방향과 다른 방향의 변환을 우선 적용하는 방법
서로 다른 변환을 적용하는 경우에 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 다른 예로서, 인트라 예측 모드의 방향과 다른 방향의 변환을 우선 적용하는 방법을 생각할 수 있다.
수직 방향으로 예측을 하는 경우에는 수평 방향의 변환을 먼저 적용하고, 그 결과값에 수직 방향의 변환을 적용할 수 있다.
수직 방향으로 예측을 하는 경우에는 수평 방향의 변환을 먼저 적용하고, 그 결과값에 수직 방향의 변환을 적용할 수 있다.
도 12은 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 12에서는 대상 블록에 적용되는 인트라 예측 모드의 방향과 다른 방향의 변환을 우선 적용하는 예를 설명한다.
도 12를 참조하면, 부호화기는 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용되는 변환의 타입이 동일한지를 판단한다(S1210). 변환의 타입은 DST와 DCT 중 어느 하나로서, 수직 방향과 수평 방향에 동일한 타입의 변환이 적용될 수도 있고, 수직 방향과 수평 방향에 서로 다른 타입의 변환이 적용될 수도 있다. 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용되는 변환의 타입이 동일한지 여부는 예컨대, 변환 대상 블록의 사이즈 및/또는 적용된 인트라 예측 모드를 기반으로 판단될 수 있다.
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용되는 경우에, 부호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인지를 판단할 수 있다(S1220).
대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 부호화기는 수직 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 변환을 수행한다(S1230). 따라서, 인트라 예측 모드의 방향과 다른 방향의 변환이 먼저 적용된다.
이어서, 수평 방향의 변환 타입을 이용하여 대상 블록에 대한 수평 방향의 변환을 수행한다(S1240).
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 부호화기는 수평 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 변환을 수행한다(S1250). 따라서, 인트라 예측 모드의 방향과 다른 방향의 변환이 먼저 적용된다.
이어서, 부호화기는 수직 방향의 변환 타입을 이용하여 대상 블록에 대한 수직 방향의 변환을 수행한다(S1060).
또한, 대상 블록에 적용되는 수평 방향과 수직 방향의 변환 타입이 동일한 경우(S1210)에도, 일반적인 경우와 같이 수평 방향의 변환을 먼저 수행하고(S1250) 수직 방향의 변환을 수행(S1260)할 수 있다.
여기서는 부호화기가 변환을 수행하는 것으로 설명하였으나, 부호화기 내의 특정 모듈, 예컨대 변환부에서 상술한 바와 같은 변환 동작을 수행할 수 있다.
또한, S1220 단계에서는 대상 블록에 적용된 인트라 예측 모드가 수평 방향인지를 판단하여 이후의 단계를 수행하지만, 본 발명은 이에 한정되지 않으며, 대상 블록에 적용된 인트라 예측 모드가 수직 방향인지를 판단하여 판단 결과에 따라 이후의 단계를 적용할 수도 있다.
도 13은 본 발명이 적용되는 복호화기에서 역변환 대상 블록에 서로 다른 방향의 역변환을 적용하는 경우에, 인트라 예측 모드에 따라서 역변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 13에서는 부호화기에서 대상 블록에 적용되는 인트라 예측 모드의 방향과 다른 방향의 변환을 우선 적용한 경우에 복호화기에서 수행되는 역변환 방법의 예를 설명한다.
도 13을 참조하면, 복호화기는 엔트로피 복호화의 결과, 변환 대상 블록에 수평 방향과 수직 방향으로 동일한 변환 타입이 적용되었는지를 판단한다(S1310). 변환의 타입은 DST와 DCT 중 어느 하나일 수 있다. 변환 대상 블록에 수평 방향으로 적용되는 변환과 수직 방향으로 적용된 변환의 타입이 동일한지 여부는 예컨대, 변환 대상 블록의 사이즈 및/또는 적용된 인트라 예측 모드를 기반으로 판단될 수 있다.
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용된 경우에, 복호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인지를 판단할 수 있다(S1320).
대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 복호화기는 수평 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 역변환을 수행한다(S1330). 복호화기에서는 후술하는 바와 같이, 부호화기에서 적용된 변환 순서의 역순으로, 부호화기에서 적용된 변환에 대응하는 역변환을 적용할 수 있다.
이어서, 복호화기는 수직 방향의 역변환 타입을 이용하여 대상 블록에 대한 수직 방향의 역변환을 수행한다(S1340). 예컨대, 대상 블록에 대한 수평 방향의 역변환 타입이 IDCT였다면, 수평 방향으로 IDCT가 적용된 결과값에 수직 방향으로 IDST가 적용될 수 있다. 대상 블록에 대한 수평 방향의 역변환 타입이 IDST였다면, 수평 방향으로 IDST가 적용된 결과값에 수직 방향으로 IDCT가 적용될 수 있다.
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 복호화기는 수직 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 역변환을 수행한다(S1350).
이어서, 복호화기는 수평 방향의 역변환 타입을 이용하여 대상 블록에 대한 수평 방향의 역변환을 수행한다(S1360). 예컨대, 대상 블록에 대한 수직 방향의 역변환 타입이 IDCT 였다면, 수직 방향으로 IDCT가 적용된 결과값에 수평 방향으로 IDST가 적용될 수 있다. 대상 블록에 대한 수직 방향의 역변환 타입이 IDST였다면, 수직 방향으로 IDST가 적용된 결과값에 수평 방향으로 IDCT가 적용될 수 있다.
또한, 대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에도(S1310), 수직 방향의 역변환을 수행(S1350)한 뒤 수평 방향의 역변환을 수행(S1360)할 수 있다.
여기서는 복호화기가 변환을 수행하는 것으로 설명하였으나, 복호화기 내의 특정 모듈, 예컨대 역변환부에서 상술한 바와 같은 역변환 동작을 수행할 수 있다.
한편, 도 13의 예에서는 복호화기가 대상 블록에 적용된 인트라 예측 모드를 판단하여, 역변환의 적용 순서를 결정하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 예컨대, 복호화기는 엔트로피 복호화의 결과로 획득한 변환에 대한 정보를 기반으로, 부호화기에서 수행된 변환에 대응하는 역변환을, 부호화기에서 변환이 적용된 순서의 역순으로 적용할 수도 있다. 이 경우에 변환의 순서에 관한 정보는 부호화기로부터 복호화기로 시그널링 될 수 있다.
도 12와 13에서는 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한지를 먼저 판단한 후에, 인트라 예측 모드의 방향을 판단하였으나, 이와 달리 인트라 예측 모드의 방향을 먼저 판단하고, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한지를 판단할 수도 있다.
도 14는 본 발명이 적용되는 부호화기에서 변환 대상 블록에 서로 다른 변환을 적용하는 경우에, 인트라 예측 모드에 따라서 변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 14에서는 도 12와 달리 인트라 예측 모드의 방향을 먼저 판단한다.
도 14를 참조하면, 부호화기는 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인지를 우선 판단할 수 있다(S1410). 대상 블록에 적용된 인트라 예측 모드의 방향이 수평 방향인 경우에, 부호화기는 대상 블록에 적용되는 수평 방향 변환 타입과 수평 방향 변환 타입이 상이한지를 판단할 수 있다(S1420).
대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 상이한 경우에, 부호화기는 수직 방향의 변환 타입을 우선 적용해서 대상 블록에 대한 수직 방향의 변환을 수행한다(S1430). 따라서, 대상 블록에 대한 인트라 예측 모드의 방향과 다른 방향의 변환 타입이 먼저 적용된다. 이어서, 수평 방향의 변환 타입을 이용하여 대상 블록에 대한 수평 방향의 변환을 수행한다(S1440).
한편, 인트라 예측 모드의 각도가 수직인 경우(S1410)에는 수평 방향의 변환 타입을 먼저 적용하고(S1450), 이어서 수직 방향의 변환 타입을 적용한다(S1460). 따라서, 인트라 예측 모드의 방향과 다른 방향의 변환 모드를 먼저 적용할 수 있다.
또한, 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에는, 일반적인 변환 방법과 동일하게, 수평 방향의 변환 타입을 먼저 적용하고(S1450), 이어서 수직 방향의 변환 타입을 적용한다(S1460).
도 14의 각 단계에서 수행되는 구체적인 동작은 도 8의 대응하는 단계에서 설명한 바와 같다.
도 15는 본 발명이 적용되는 복호화기에서 역변환 대상 블록에 서로 다른 역변환을 적용하는 경우에, 인트라 예측 모드에 따라서 역변환의 적용 순서를 결정하는 방법의 다른 예를 개략적으로 설명하는 순서도이다. 도 15에서는 도 13과 달리, 인트라 예측 모드의 각도를 먼저 판단한다.
도 15를 참조하면, 엔트로피 복호화의 결과, 복호화기는 먼저 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인지를 판단할 수 있다(S1510). 대상 블록에 적용된 인트라 예측 모드의 각도가 수평 방향인 경우에, 복호화기는 대상 블록에 수평 방향과 수직 방향으로 동일한 변환 타입이 적용되었는지를 판단한다(S1520).
수평 방향과 수직 방향으로 서로 다른 타입의 변환이 적용된 경우에, 복호화기는 수평 방향의 역변환 타입을 우선 적용해서 대상 블록에 대한 수평 방향의 역변환을 수행한다(S1530). 이어서, 복호화기는 수직 방향의 역변환 타입을 이용하여 대상 블록에 대한 수직 방향의 역변환을 수행한다(S1540). 따라서, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 역변환을 적용할 수 있다.
한편, 대상 블록에 적용된 인트라 예측 모드의 방향이 수직 방향인 경우에, 복호화기는 수직 방향의 역변환 타입을 우선 적용하고(S1550), 수평 방향의 역변환 타입을 이어서 적용한다(S1160). 따라서, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 역변환을 적용할 수 있다.
또한, 인트라 예측 모드의 각도는 수평이지만, 대상 블록에 적용된 수평 방향의 변환 타입과 수직 방향의 변환 타입이 동일한 경우에도, 복호화기는 수직 방향의 역변환 타입을 우선 적용하고(S1550), 수평 방향의 역변환 타입을 이어서 적용할 수 있다(S1560).
도 15의 각 단계에서 수행되는 구체적인 동작은 도 13의 대응하는 단계에서 설명한 바와 같다.
도 8, 10, 12 및 14에서 설명한 내용을 참조하면, 부호화기는 6 가지 경우의 변환 순서 조합 중 어느 하나를 수행할 수 있다. 도 9, 11, 13 및 15에서 설명한 내용을 참조하면, 복호화기는 6가지 경우의 역변환 순서 조합 중 어느 하나를 수행할 수 있다.
도 16은 부호화기에서 수행할 수 있는 변환과 그에 대응하여 복호화기에서 수행되는 역변환의 순서를 개략적으로 도시한 것이다.
도 16의 (a) ~ (f)를 참조하면, 복호화기에서는 부호화기에서 적용된 변환 순서의 역순으로 각 변환에 대응하는 역변환을 적용한다.
부호화기(1610a)에서 수직 방향으로 DST를 적용한 뒤 수평 방향으로 DCT를 적용한 경우에, 복호화기(1610a)에서는 수평 방향으로 IDCT를 적용한 뒤 수직 방향으로 IDST를 적용할 수 있다.
부호화기(1610b)에서 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DCT를 적용한 경우에, 복호화기(1610b)에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
부호화기(1610c)에서 수평 방향으로 DCT를 적용한 뒤 수직 방향으로 DST를 적용한 경우에, 복호화기(1610c)에서는 수직 방향으로 IDST를 적용한 뒤 수평 방향으로 IDCT를 적용할 수 있다.
부호화기(1610d)에서 수직 방향으로 DCT를 적용한 뒤 수평 방향으로 DST를 적용한 경우에, 복호화기(1610d)에서는 수평 방향으로 IDST를 적용한 뒤 수직 방향으로 IDCT를 적용할 수 있다.
부호화기(1610e)에서 수평 방향으로 DCT를 적용한 뒤 수직 방향으로 DCT를 적용한 경우에, 복호화기(1610e)에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDCT를 적용할 수 있다.
부호화기(1610f)에서 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DST를 적용한 경우에, 복호화기(1610f)에서는 수직 방향으로 IDST를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
대상 블록에 대한 수직 방향의 변환과 수평 방향의 변환에 서로 다른 변환 타입이 적용되는 경우에는, 수직과 수평의 두 변환 방향과 DCT와 DST의 두 변환 타입을 고려할 때 4가지 변환의 경우를 생각할 수 있다. 예컨대, 루마 데이터에 대한 4X4의 변환 유닛에 대하여는, 4가지 변환의 경우 중 어느 하나가 적용될 수 있다.
표 5는 도 7을 기반으로 인트라 예측 모드에 따른 변환 타입을 개략적으로 나타낸 것이다.
Figure pat00010
표 5에서, 이종 변환은 수평 방향으로 적용되는 변환 타입(DCT와 DST 중 어느 하나)와 수직 방향으로 적용되는 변환 타입이 상이한 경우를 나타내고, 동종 변환은 수평 방향으로 적용되는 변환 타입과 수직 방향으로 적용되는 변환 타입이 동일한 경우를 나타낸다.
표 5에서 인트라 예측 모드 0, 5, 6, 12, 13, 22, 23, 24, 25는, 도 7을 참조하면, 수평 방향 변환 타입(horizTrType)과 수직 방향 변환 타입(verTrType)이 상이한 수직 방향 인트라 예측 모드들이다.
또한, 표 5에서 인트라 예측 모드 1, 8, 9, 16, 17, 30, 31, 32, 33는, 도 7을 참조하면, 수평 방향 변환 타입(horizTrType)과 수직 방향 변환 타입(verTrType)이 상이한 수평 방향 인트라 예측 모드들이다.
표 5에 대하여, 본 발명에 따라 대상 블록에 대한 인트라 예측 모드를 고려하여 대상 블록에 대한 수평 방향 변환 타입과 수직 방향 변환 타입의 적용 순서를 결정할 수 있다.
표 6는 대상 블록에 대한 인트라 예측 모드의 방향과 동일한 방향의 변환 타입을 우선 적용하는 실시예에 대하여, 인트라 예측 모드와 변환 타입의 적용 순서를 개략적으로 나타낸 것이다.
Figure pat00011
표 6을 참조하면, 대상 블록에 대한 인트라 예측 모드의 방향과 동일한 방향의 변환 타입을 우선 적용하는 경우에, 인트라 예측 모드가 수직 방향의 모드(0, 5, 6, 12, 13, 22, 23, 24, 25) 중 어느 하나의 모드라면, 도 16의 (a)에 따라서 부호화기에서는 수직 방향으로 DST를 적용한 뒤 수평 방향으로 DCT를 적용하며, 복호화기에서는 수평 방향으로 IDCT를 적용한 뒤 수직 방향으로 IDST를 적용할 수 있다.
또한, 인트라 예측 모드가 수평 방향의 모드(1, 8, 9, 16, 17, 30, 31, 32, 33) 중 어느 하나의 모드라면, 도 16의 (b)에 따라서 부호화기에서는 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DCT를 적용하고, 복호화기에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
또한, 인트라 예측 모드가 DC 모드(모드 2)인 경우는, 수직 방향과 수평 방향으로 변환 타입이 다르게 적용되는 경우가 아니며, 상술한 바와 같이 종래의 적용 순서에 따라 수평 방향의 변환이 먼저 적용될 수 있다. 따라서, 도 16(e)와 같이 부호화기에서는 수평 방향으로 DCT를 적용한 뒤 수직 방향으로 DCT를 적용하고, 복호화기에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDCT를 적용할 수 있다.
또한, 인트라 예측 모드가 3, 4, 7, 10, 11, 14, 15, 18, 19, 20, 21, 26, 27, 28, 29, 34 중 어느 하나인 경우도, 수직 방향과 수평 방향으로 변환 타입이 다르게 적용되는 경우가 아니며, 상술한 바와 같이, 수평 방향의 변환이 먼저 적용될 수 있다. 따라서, 도 16(f)와 같이 부호화기에서는 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DST를 적용하고, 복호화기에서는 수직 방향으로 IDST를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
표 7은 대상 블록에 대한 인트라 예측 모드의 방향과 다른 방향의 변환 타입을 우선 적용하는 실시예에 대하여, 인트라 예측 모드와 변환 타입의 적용 순서를 개략적으로 나타낸 것이다.
Figure pat00012
표 7을 참조하면, 대상 블록에 대한 인트라 예측 모드의 방향과 다른 방향의 변환 타입을 우선 적용하는 경우에, 인트라 예측 모드가 수직 방향의 모드(0, 5, 6, 12, 13, 22, 23, 24, 25) 중 어느 하나의 모드라면, 도 16의 (c)에 따라서 부호화기에서는 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DCT를 적용하고, 복호화기에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
또한, 인트라 예측 모드가 수평 방향의 모드(1, 8, 9, 16, 17, 30, 31, 32, 33) 중 어느 하나의 모드라면, 도 16의 (d)에 따라서 부호화기에서는 수직 방향으로 DCT를 적용한 뒤 수평 방향으로 DST를 적용하고, 복호화기에서는 수평 방향으로 IDST를 적용한 뒤 수직 방향으로 IDCT를 적용할 수 있다.
또한, 인트라 예측 모드가 DC 모드(모드 2)인 경우는, 수직 방향과 수평 방향으로 변환 타입이 다르게 적용되는 경우가 아니며, 상술한 바와 같이 종래의 적용 순서에 따라 수평 방향의 변환이 먼저 적용될 수 있다. 따라서, 도 16(e)와 같이 부호화기에서는 수평 방향으로 DCT를 적용한 뒤 수직 방향으로 DCT를 적용하고, 복호화기에서는 수직 방향으로 IDCT를 적용한 뒤 수평 방향으로 IDCT를 적용할 수 있다.
또한, 인트라 예측 모드가 3, 4, 7, 10, 11, 14, 15, 18, 19, 20, 21, 26, 27, 28, 29, 34 중 어느 하나인 경우도, 수직 방향과 수평 방향으로 변환 타입이 다르게 적용되는 경우가 아니며, 상술한 바와 같이, 수평 방향의 변환이 먼저 적용될 수 있다. 따라서, 도 16(f)와 같이 부호화기에서는 수평 방향으로 DST를 적용한 뒤 수직 방향으로 DST를 적용하고, 복호화기에서는 수직 방향으로 IDST를 적용한 뒤 수평 방향으로 IDST를 적용할 수 있다.
지금까지 본 발명이 적용되는 시스템에서 대상 블록에 적용하는 수직 방향의 변환과 수평 방향의 변환이 상이한 경우에, 인트라 예측 모드의 방향에 따라서 수직 방향과 수평 방향의 상이한 변환 중 어떤 변환을 먼저 적용할 것인지를 결정하는 방법을 설명하였으나, 본 발명은 상술한 발명에 한정되지 않는다. 예컨대, 대상 블록에 적용하는 수직 방향의 변환과 수평 방향의 변환이 상이한 경우에, 방향과 상관없이 특정 변환 타입을 먼저 적용하도록 할 수 있다. 즉, DCT를 수직 방향과 수평 방향 중 소정의 방향으로 먼저 적용한 후에, 다른 방향으로 DST를 적용하도록 할 수 있다. 또한, DST를 수직 방향과 수평 방향 중 소정의 방향으로 먼저 적용한 후에, 다른 방향으로 DCT를 적용하도록 할 수 있다.
도 17은 본 발명이 적용되는 시스템에서 부호화기의 동작을 개략적으로 설명하는 순서도이다.
도 17을 참조하면, 부호화기는 대상 블록에 적용되는 예측 모드를 판단한다(S1710). 부호화기는 대상 블록에 적용되는 인트라 예측 모드가 무엇인지를 파악하고, 예측 모드의 방향을 판단할 수 있다.
이어서, 부호화기는 대상 블록에 대하여 예측 모드에 따른 변환을 수행한다(S1720). 부호화기는 대상 블록에 적용하는 수직 및 수평 방향의 변환 타입이 상이한 경우에는 인트라 예측 모드의 방향에 따라서 어떤 방향의 변환 타입을 먼저 적용할 것인지를 결정할 수 있다. 수직 및 수평 방향의 변환 타입이 상이한지는 인트라 예측 모드와 함께 대상 블록의 사이즈를 고려하여 판단할 수 있다. 예컨대, 4X4의 변환 유닛의 경우, 서로 다른 변환 타입 DCT와 DST가 대상 블록에 적용될 수 있다. 부호화기에서 예측 모드에 따른 변환을 수행하는 구체적인 방법은 상술한 바와 같다.
또한, 도 17에서는 부호화기가 각 단계를 수행하는 것으로 설명하였으나, 부호화기 내의 특정 모듈, 예컨대 변환부에서 상술한 바와 같은 각 단계를 수행할 수 있다.
도 18은 본 발명이 적용되는 시스템에서 복호화기의 동작을 개략적으로 설명하는 순서도이다.
도 18을 참조하면, 복호화기는 대상 블록에 적용된 예측 모드를 판단한다(S1810). 복호화기는 대상 블록에 적용된 인트라 예측 모드가 무엇인지를 파악하고, 예측 모드의 방향을 판단할 수 있다.
이어서, 복호화기는 대상 블록에 대하여 예측 모드에 따른 역변환을 수행한다(S1820). 복호화기는 인트라 예측 모드에 따라서 대상 블록에 적용한 수직 및 수평 방향의 변환 타입이 상이한 경우에는 인트라 예측 모드의 방향에 따라서 어떤 방향의 역변환 타입을 먼저 적용할 것인지를 결정할 수 있다. 수직 및 수평 방향의 변환 타입이 상이한지는 인트라 예측 모드와 함께 대상 블록의 사이즈를 고려하여 판단할 수 있다. 예컨대, 4X4의 변환 유닛의 경우, 서로 다른 변환 타입 DCT와 DST가 대상 블록에 적용될 수 있다.
인트라 예측 모드에 따라서 적용되는 변환/역변환의 순서는 부호화기와 복호화기 사이에 미리 정해져 있을 수 있다. 예컨대, 복호화기가 인트라 예측 모드에 대응해서 수직 방향의 역변환을 먼저 수행하고 수평 방향의 역변환을 이어서 수행한 경우라면, 대상 블록은 부호화기에서 수평 방향의 변환이 먼저 수행되고 수직 방향의 변환이 이어서 수행된 것일 수 있다. 또한, 복호화기가 인트라 예측 모드에 대응해서 수평 방향의 역변환을 먼저 수행하고 수직 방향의 역변환을 이어서 수행한 경우라면, 대상 블록은 부호화기에서 수직 방향의 변환이 먼저 수행되고 수평 방향의 변환이 이어서 수행된 것일 수 있다.
한편, 복호화기는 대상 변환 유닛의 인트라 예측 모드에 따라서 역변환을 수행하는 방법 외에, 부호화기에서 적용된 변환에 대응하는 역변환을 부호화기에서 적용된 변환의 역순으로 적용할 수도 있다. 대상 변환 유닛에 적용된 예측 모드에 관한 정보 및/또는 대상 블록 변환 유닛에 적용된 변환 타입과 적용 순서는 비트스트림상으로 복호화기에 전달될 수 있다.
복호화기에서 예측 모드에 따른 변환을 수행하는 구체적인 방법은 상술한 바와 같다. 또한, 도 18에서는 복호화기가 각 단계를 수행하는 것으로 설명하였으나, 복호화기 내의 특정 모듈, 예컨대 역변환부에서 상술한 바와 같은 각 단계를 수행할 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (12)

  1. 변환 대상 블록에 적용하는 제1 변환과 제2 변환 사이의 적용 순서를 결정하는 단계; 및
    상기 적용 순서에 따라서 상기 제1 변환과 상기 제2 변환을 적용하는 단계를 포함하며,
    상기 적용 순서는 상기 변환 대상 블록의 인트라 예측 모드에 따라서 결정되는 것을 특징으로 하는 영상 정보 변환 방법.
  2. 제1항에 있어서, 상기 인트라 예측 모드에 대하여 상기 제1 변환과 상기 제2 변환이 상이한 경우에는,
    상기 제1 변환과 상기 제2 변환 중 상기 인트라 예측 모드의 방향과 동일한 방향으로 적용되는 변환을 우선 적용하는 것을 특징으로 하는 영상 정보 변환 방법.
  3. 제1항에 있어서, 상기 인트라 예측 모드에 대하여 상기 제1 변환과 상기 제2 변환이 상이한 경우에는,
    상기 제1 변환과 상기 제2 변환 중 상기 인트라 예측 모드의 방향과 상이한 방향으로 적용되는 변환을 우선 적용하는 것을 특징으로 하는 영상 정보 변환 방법.
  4. 제1항에 있어서, 상기 변환 대상 블록은 4x4 픽셀의 휘도 블록인 것을 특징으로 하는 영상 정보 변환 방법.
  5. 역변환 대상 블록에 적용하는 제1 역변환과 제2 역변환 사이의 적용 순서를 결정하는 단계; 및
    상기 적용 순서에 따라서 상기 제1 역변환과 상기 제2 역변환을 적용하는 단계를 포함하며,
    상기 적용 순서는 상기 역변환 대상 블록의 인트라 예측 모드에 따라서 결정되는 것을 특징으로 하는 영상 정보 역변환 방법.
  6. 제5항에 있어서, 상기 인트라 예측 모드에 대하여 상기 제1 역변환과 제2 역변환이 상이한 경우에는,
    상기 제1 역변환과 상기 제2 역변환 중 상기 인트라 예측 모드의 방향과 동일한 방향으로 적용되는 역변환을 우선 적용하는 것을 특징으로 하는 영상 정보 역변환 방법.
  7. 제5항에 있어서, 상기 인트라 예측 모드에 대하여 상기 제1 역변환과 제2 역변환이 상이한 경우에는,
    상기 제1 역변환과 상기 제2 역변환 중 상기 인트라 예측 모드의 방향과 상이한 방향으로 적용되는 역변환을 우선 적용하는 것을 특징으로 하는 영상 정보 역변환 방법.
  8. 역변환 대상 블록에 적용하는 제1 역변환과 제2 역변환 사이의 적용 순서를 결정하는 단계; 및
    상기 적용 순서에 따라서 상기 제1 역변환과 상기 제2 역변환을 적용하는 단계를 포함하며,
    상기 적용 순서는 상기 제1 역변환에 대응하는 제1 변환과 상기 제2 역변환에 대응하는 제2 변환이 상기 역변환 대상 블록에 적용된 변환 순서의 역순으로 적용되며,
    상기 변환 순서는 상기 역변환 대상 블록의 인트라 예측 모드의 방향에 따라서 정해지는 것을 특징으로 하는 영상 정보 역변환 방법.
  9. 제8항에 있어서, 상기 변환 순서는
    상기 제1 변환과 상기 제2 변환 중에서 상기 인트라 예측 모드의 방향과 동일한 방향을 갖는 변환을 우선 적용하는 순서인 것을 특징으로 하는 영상 정보 역변환 방법.
  10. 제8항에 있어서, 상기 변환 순서는
    상기 제1 변환과 상기 제2 변환 중에서 상기 인트라 예측 모드의 방향과 상이한 방향을 갖는 변환을 우선 적용하는 순서인 것을 특징으로 하는 영상 정보 역변환 방법.
  11. 대상 블록에 대한 예측을 수행하는 예측부; 및
    상기 대상 블록에 대한 변환을 수행하는 변환부를 포함하며,
    상기 변환부는,
    상기 예측부에서 수행한 인트라 예측 블록의 모드에 따라서 상기 대상 블록에 적용되는 제1 및 제2 변환의 적용 순서를 결정하는 것을 특징으로 하는 부호화 장치.
  12. 수신한 비트스트림을 엔트로피 복호화하여 정보를 획득하는 엔트로피 복호화부;
    상기 정보를 기반으로 대상 블록에 대한 역변환을 수행하는 역변환부; 및
    상기 대상 블록에 대한 예측을 수행하는 예측부를 포함하며,
    상기 역변환부는,
    상기 대상 블록에 적용된 인트라 예측 블록의 모드에 따라서 상기 대상 블록에 적용되는 제1 및 제2 역변환의 적용 순서를 결정하는 것을 특징으로 하는 복호화 장치.
KR1020110105156A 2011-10-14 2011-10-14 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치 KR20130040414A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110105156A KR20130040414A (ko) 2011-10-14 2011-10-14 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치
PCT/KR2012/007306 WO2013055040A1 (ko) 2011-10-14 2012-09-12 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110105156A KR20130040414A (ko) 2011-10-14 2011-10-14 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치

Publications (1)

Publication Number Publication Date
KR20130040414A true KR20130040414A (ko) 2013-04-24

Family

ID=48082057

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110105156A KR20130040414A (ko) 2011-10-14 2011-10-14 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치

Country Status (2)

Country Link
KR (1) KR20130040414A (ko)
WO (1) WO2013055040A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD809642S1 (en) 2016-01-08 2018-02-06 Samsung Electronics Co., Ltd. Air conditioner

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3040578A1 (fr) 2015-08-31 2017-03-03 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2900998B2 (ja) * 1997-07-31 1999-06-02 日本ビクター株式会社 ブロック間内挿予測符号化装置、復号化装置、符号化方法及び復号化方法
JP4776505B2 (ja) * 2006-11-15 2011-09-21 日本放送協会 画像符号化装置、画像復号装置及び画像処理プログラム
JP5082548B2 (ja) * 2007-03-30 2012-11-28 富士通株式会社 画像処理方法、符号化器および復号化器
KR101619972B1 (ko) * 2008-10-02 2016-05-11 한국전자통신연구원 이산 여현 변환/이산 정현 변환을 선택적으로 이용하는 부호화/복호화 장치 및 방법
JP5007761B2 (ja) * 2010-07-12 2012-08-22 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD809642S1 (en) 2016-01-08 2018-02-06 Samsung Electronics Co., Ltd. Air conditioner

Also Published As

Publication number Publication date
WO2013055040A1 (ko) 2013-04-18

Similar Documents

Publication Publication Date Title
KR101809731B1 (ko) 영상 부호화/복호화 방법 및 장치
KR101801902B1 (ko) 인트라 예측 모드 부호화/복호화 방법 및 장치
KR101575777B1 (ko) 복수개의 후보 화면 내 예측 모드를 이용한 화면 내 예측 모드의 부호화/복호화 방법 및 이러한 방법을 사용하는 장치
KR101549911B1 (ko) 화면 내 예측 모드에 기초한 적응적인 변환 방법 및 이러한 방법을 사용하는 장치
KR101425772B1 (ko) 영상 부호화 및 복호화 방법과 이를 이용한 장치
KR20130086333A (ko) 쿼드 트리를 이용한 영상 부호화 장치
KR20130116831A (ko) 영상 부호화/복호화 방법 및 장치
WO2013055040A1 (ko) 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid