KR20130029695A - 근거리 인트라 예측에서의 예측 블록 생성 방법 - Google Patents

근거리 인트라 예측에서의 예측 블록 생성 방법 Download PDF

Info

Publication number
KR20130029695A
KR20130029695A KR1020110093125A KR20110093125A KR20130029695A KR 20130029695 A KR20130029695 A KR 20130029695A KR 1020110093125 A KR1020110093125 A KR 1020110093125A KR 20110093125 A KR20110093125 A KR 20110093125A KR 20130029695 A KR20130029695 A KR 20130029695A
Authority
KR
South Korea
Prior art keywords
block
mode
pixels
prediction
chrominance
Prior art date
Application number
KR1020110093125A
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 KR1020110093125A priority Critical patent/KR20130029695A/ko
Publication of KR20130029695A publication Critical patent/KR20130029695A/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명에 따른 색차 인트라 블록 생성 방법은 휘도 블록이 SDIP인 경우의 색차 블록 생성 방법에 있어서, 현재 블록의 색차 인트라 예측 모드를 복원하기 위해 휘도 블록의 luma 모드의 수에 따라 서로 다른 테이블을 이용하여 색차 블록의 인트라 예측 모드를 결정하고, 상기 복원된 색차 인트라 예측 모드에 따라 색차 예측 블록을 생성하고, 색차 잔차 블록을 복원하고, 상기 색차 예측 블록과 색차 잔차 블록을 이용하여 색차 블록을 생성한다.
따라서, 색차 모드에서의 예측 모드 부호화 방식에 대응하는 예측 모드 복호화 방식을 제공할 뿐 아니라, 원본 영상에 가까운 예측 블록을 생성함으로써 부호화량을 줄이는 부호화방식에 대응하는 복호화 방식을 제공하여, 동영상 부호화/복호화시의 고성능 압축 및 재생효율을 발휘하도록 하는 효과가 있다.

Description

근거리 인트라 예측에서의 예측 블록 생성 방법{METHOD FOR GENERATING PREDICTION BLOCK IN SHORT DISTANCE INTRA PREDICTION }
본 발명은 근거리 인트라 예측에서의 인트라 예측 블록 생성 방법에 관한 것으로, 더욱 상세하게는 근거리 인트라 예측에서의 인트라 예측 모드를 복원하고, 이를 이용하여 원신호에 가까운 예측 블록을 생성하는 인트라 모드에서의 예측 블록 생성 방법에 관한 것이다.
MPEG-1, MPEG-2, MPEG-4 H.264/MPEG-4 AVC(Advanced Video coding)와 같은 영상 압축 방식에서는 영상을 부호화하기 위해서 하나의 픽처를 매크로 블록으로 나눈다. 그리고, 인터 예측(inter prediction) 또는 인트라 예측(intra prediction)을 이용해 각각의 매크로 블록을 부호화한다.
이 중에서 인트라 예측은 현재 픽처(picture)의 블록을 부호화하기 위해서 참조 픽처를 참조하는 것이 아니라, 부호화하려는 현재 블록과 공간적으로 인접한 화소값을 이용하여 부호화를 수행한다. 우선, 인접한 화소값을 이용하여 원본 매크로 블록과 비교하여 왜곡이 적은 인트라 예측 모드를 선택한다. 다음으로, 선택된 인트라 예측 모드 및 인접한 화소값을 이용하여 부호화하려는 현재 블록에 대한 예측값을 계산하고, 예측값과 원본 현재 블록의 화소값의 차이를 구한 후 이를 변환부호화, 양자화, 엔트로피 부호화를 통해 부호화한다. 그리고, 예측 모드도 부호화된다.
종래 기술에 따른 색차 인트라 예측 모드는 4개로 한정되어 있다. 이에 따라 색차 인트라 예측의 정확도가 떨어지게 되는 문제점이 있다.
따라서, 기존의 인트라 예측 모드를 부호화하는 방법보다 효과적인 색차 블록에 대한 인트라 예측 모드의 도입, 인트라 예측 모드를 부호화하는 방식이 필요하고, 이에 대응하여 효과적으로 인트라 예측 모드를 복호화하여 복원블록을 생성하는 방식이 필요하다.
본 발명이 이루고자 하는 목적은 인트라 예측 모드 따라 원본 영상과 유사한 색차 예측 블록을 생성하고, 잔차신호를 복호화하여 잔차 블록을 생성하고, 상기 생성된 잔차 블록과 예측 블록을 이용하여 복원블록을 생성하는 방법을 제공하는데 있다.
본 발명에 따른 휘도 블록이 SDIP인 경우의 색차 블록 생성 방법은 현재 블록의 색차 인트라 예측 모드를 복원하기 위해 휘도 블록의 luma 모드의 수에 따라 서로 다른 테이블을 이용하여 색차 블록의 인트라 예측 모드를 결정하고 상기 복원된 색차 인트라 예측 모드에 따라 색차 예측 블록을 생성하고, 색차 잔차 블록을 복원하고, 상기 색차 예측 블록과 색차 잔차 블록을 이용하여 색차 블록을 생성한다.
본 발명에 따른 휘도 블록이 SDIP인 경우의 색차 블록 생성 방법은 현재 블록의 색차 인트라 예측 모드를 복원하기 위해 휘도 블록의 luma 모드의 수에 따라 서로 다른 테이블을 이용하여 색차 블록의 인트라 예측 모드를 결정하고, 상기 복원된 색차 인트라 예측 모드에 따라 색차 예측 블록을 생성하고, 색차 잔차 블록을 복원하고, 상기 색차 예측 블록과 색차 잔차 블록을 이용하여 색차 블록을 생성한다.
따라서, 색차 모드에서의 예측 모드 부호화 방식에 대응하는 예측 모드 복호화 방식을 제공할 뿐 아니라, 원본 영상에 가까운 예측 블록을 생성함으로써 부호화량을 줄이는 부호화방식에 대응하는 복호화 방식을 제공하여, 동영상 부호화/복호화시의 고성능 압축 및 재생효율을 발휘하도록 하는 효과가 있다.
도 1은 본 발명에 따른 인트라 예측 모드 수를 제한하는 도면이다.
도 2는 본 발명에 따른 휘도 방향성 인트라 예측 모드를 나타내는 도면이다.
도 3은 본 발명에 따른 SDIP에서의 planar 예측 블록을 생성하는 것을 설명하기 위한 도면이다.
도 4는 본 발명에 따른 지그재그 스캔의 일예를 나타내는 도면이다.
도 5는 본 발명에 따른 지그재그 스캔의 다른예를 나타내는 도면이다.
도 6은 본 발명에 따른 수직 스캔의 일예를 나타내는 도면이다.
도 7은 본 발명에 따른 수평 스캔의 일예를 나타내는 도면이다.
도 8은 본 발명에 따른 제1 스캔의 일예를 나타내는 도면이다.
도 9는 본 발명에 따른 직사각형 블록을 정사각형 블록으로 변환하기 위해 스캔하는 제1예를 나타내는 도면이다.
도 10은 본 발명에 따른 직사각형 블록을 정사각형 블록으로 변환하기 위해 스캔하는 제2예를 나타내는 도면이다.
도 11은 본 발명에 따른 직사각형 블록을 정사각형 블록으로 변환하기 위해 스캔하는 제3예를 나타내는 도면이다.
도 12는 본 발명에 따른 색차 인트라 예측에 사용되는 참조 화소들의 위치를 나타내는 도면이다.
도 13은 본 발명에 따른 LM 모드에서의 휘도 참조화소의 제1 서브 샘플링 형태를 나타내는 도면이다.
도 14는 본 발명에 따른 LM 모드에서의 휘도 참조화소의 제2 서브 샘플링 형태를 나타내는 도면이다.
도 15는 본 발명에 따른 휘도 블록의 복원영상을 서브 샘플링하는 형태를 나타내는 도면이다.
도 16은 본 발명에 따른 휘도 신호의 동영상 부호화 장치를 나타내는 블록도이다.
도 17은 본 발명에 따른 색차 신호의 동영상 복호화 장치를 나타내는 블록도이다.
이하, 본 발명의 여러가지 실시예들을 예시적인 도면을 통해 상세히 설명한다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
먼저, SDIP에서의 휘도 성분의 허용 가능한 인트라 예측 모드들에 대해 설명한다.
[허용 가능한 인트라 예측 파티션의 크기]
현재의 SDIP는 하나의 CU를 hNx2N, 2NxhN 크기를 가지는 4개의 직사각형 블록(파티션)으로 나누어 각각의 직사각형 블록을 인트라 예측함으로써 압축효율을 높이는 기술이다. SDIP를 사용하는 경우, 휘도성분의 예측모드는 직사각형 블록 단위로 수행된다.
그러나, 모든 크기의 CU에 대해 hNx2N, 2NxhN 크기의 4개의 직사각형 블록을 허용할 경우에는 오히려 복잡도가 증가하게 되고, 복잡도 증가만큼의 부호화효율이 증대되는 것을 기대하기는 어렵다. 따라서, 특정 크기보다 작은 직사각형 예측 유닛은 허용하지 않는 것이 바람직하다.
<제1 타입>
32x32 CU에 대해서는 8x32, 32x8 파티션을 허용할 수 있다. 이 경우, 8x32는 4개의 2x32로, 32x8은 4개의 32x2로 분할되는 것을 허용할 수 있다. 4개의 2x32 또는 32x2는 동일한 인트라 예측 모드를 갖는다. 즉, 8x32 또는 32x8 단위로 인트라 예측 모드를 결정한다.
16x16 CU에 대해서는 4개의 4x16, 16x4를 허용할 수 있다. 그러나, 4x16, 16x4에 대해서는 16x1 또는 1x16은 허용하지 않는다.
8x8 크기 이하의 CU에 대해서는 직사각형 블록을 허용하지 않는다.
<제2 타입>
제1 타입에서 8x8 CU가 4개의 2x8, 8x2로 분할되는 것을 추가로 허용한다. 이 경우, 2x8 또는 8x2는 동일한 인트라 예측 모드를 갖는다. 즉, 8x8 CU 단위로 인트라 예측 모드를 결정한다. 또한, 2x8 또는 8x2는 더 작은 단위의 TU로 분할되지 않는다.
<제3 타입>
제1 타입에서 8x32이 2x32로, 32x8은 32x2로 분할되는 것을 허용하지 않는다. 그리고, 모든 허용 가능한 2NxhN 또는 hNx2N이 동일 형태의 4개의 TU로 분할 가능하다.
<제4 타입>
제1 타입에서 8x8이 2개의 4x8 또는 8x4로 분할될 수 있다.
[크기에 따라 허용 가능한 인트라 예측 모드의 수]
8x32, 32x8 파티션에 대해서는 허용 가능한 인트라 예측 모드의 수를 8x8에 대응하는 인트라 예측 모드를 모두 허용할 수 있다. 이 경우, 33개의 방향성 인트라 예측 모드와 2개의 비방향성 인트라 예측 모드(DC, Planar)가 존재한다.
마찬가지로 4x16, 16x4 파티션에 대해서는 허용 가능한 수는 4x4의 허용 가능한 인트라 예측 모드를 허용할 수 있다. 이 경우, 16개의 방향성 예측 모드와 2개의 비방향성 예측 모드가 허용될 수 있다.
2x8, 8x2의 경우에는 2개의 비방향성 모드와 16보다 작은 개수 방향성 모드들을 포함할 수 있다. 예를 들어, 2x8의 경우에는 비방향성 모드들과 미리 정해진 개수의 수평 방향의 방향성 모드들만을 적용할수도 있다. 마찬가지로 8x2의 경우에는 미리 정해진 개수의 수직 방향성 모드들과 비방향성 모드들만을 적용할수도 있다.
[방향성에 따라 허용 가능한 모드의 수]
도 1에서와 같이 일부 모드는 허용하지 않을 수도 있다.
예를 들어, 상측이 큰 경우(예를 들어, 16x4, 32x8, 8x2)에는 수평 모드들 중 일부는 허용하지 않을 수 있다. 즉, 참조 화소수를 각 방향 화소수의 2배로 할 때 참조 화소를 이용하여 예측 블록을 생성할 수 있는 모드들만을 이용할 수 있다. 이 경우, 빨간색 아래의 방향의 방향성 모드들은 off 시킬 수 있다. 또는 수평 방향 아래 방향의 모드들을 off 시킬 수 있다.
마찬가지로, 짧은 길이 방향의 참조 화소수를 길이의 4배로 할 때 참조 화소를 이용하여 예측 블록을 생성할 수 있는 모드들만을 이용할 수도 있다.
또는 직사각형 블록의 방향성에 따라 일부 모드들을 제한할 수 있다. 예를 들어, 가로 방향이 긴 직사각형 블록에서 수직방향의 모드들 중 일부만을 사용할 수 있다. 예로서, 직사각형의 크기에 따라 1, 11, 12 또는 1, 11, 12, 21, 22로 제한할 수도 있다.
[방향성에 따른 인트라 예측 모드의 우선순위]
인트라 예측 모드 부호화시 현재 블록의 인트라 예측 모드가 MPM과 동일하지 않을 경우, remaining 모드들을 재정렬하여 VLC 테이블을 이용하여 부호화한다.
이 경우, remainina 모드들을 재정렬할때의 우선순위를 달리 설정할 수 있다. 즉, 상기 직사각형 블록들은 정사각형 블록보다 특정 방향의 방향성이 더 강하게 나타날 가능성이 높으므로, 특정방향의 예측 모드값에 더 작은 인덱스를 두어 부호화할 수 있다.
예를 들어, 가로 방향이 길 경우에는 방향성 모드들 간의 우선순위는 수직 방향의 인트라 예측 모드들이 수평 방향의 인트라 예측 모드들보다 우선할 수 있다. 도 2를 참조하여 설명한다.
예를 들어, 수직 방향들간의 우선순위는 다음의 순서로 설정할 수 있다.
0, 21, 22, 11, 12, 20, 23, 4, 5, 19, 24, 10, 13, 18, 25, 3, 6
마찬가지로 수평 방향성 모드들간의 우선순위도 동일한 방법으로 설정할 수 있다.
상기 수직 및 수평 방향성 모드들 중 허용되지 않는 모드들은 삭제할 수 있다. 예를 들어, 16개의 방향성 모드들만 허용되는 경우에는 16~33은 제외시킬 수 있다.
수직 방향이 길 경우 수평 방향에 우선순위를 둘 수도 있다. 이 경우에는 별도의 정보로 시그널링할 수도 있다.
비방향성 모드들(DC, Planar)이 방향성 모드들보다 우선할 수 있다.
Planar 모드가 DC 모드보다 우선할 수 있다.
다음으로, 휘도 성분의 인트라 예측 모드 부호화 방법에 대해 설명한다.
1)MPM candidate가 2개
2)MPM candidate가 3개 또는 4개
3)Remaining intra prediction mode 부호화
다음으로, 휘도 성분의 참조 화소 스무딩 방법에 대해 설명한다.
직사각형 블록의 경우, 참조 화소 스무딩은 직사각형 블록의 크기 및 인트라 예측 모드에 따라 적응적으로 수행한다.
방향성 모드들에 대해서는 정사각형 블록들에 적용하는 참조 화소 스무딩 조건을 그대로 이용할 수 있다. 즉, 아래의 표와 같이 적응적으로 인트라 예측 모드 및 크기에 따라 적응적으로 스무딩을 할 수 있다. 여기서, 4, 8, 16, 32는 직사각형 블록의 짧은 면의 길이를 의미한다.
M ode 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
4
8 1 1 1 1
16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
32 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
플래너 모드에 대해서는 상기 표의 4, 8, 16, 32가 긴면의 길이를 나타낼 수도 있다. 이 경우, 8x2 또는 2x8이 허용되지 않는 경우에는 16, 32에 대해서만 스무딩을 적용할 수 있다.
다음으로, 휘도 성분의 인트라 예측 블록 생성 방법에 대해 설명한다.
예측 블록의 생성은 직사각형 블록(파티션) 단위로 수행될 수도 있고, 상기 직사각형 블록의 서브 파티션 단위로 수행될 수도 있다. 예를 들어, 상기 직사각형 블록이 복수개(4개)의 서브 파티션으로 분할되어 변환 부호화될 경우에는 동일한 크기의 서브 파티션 단위로 인트라 예측 블록이 생성된다.
예를 들어, 32x8 또는 8x32 직사각형 블록이 4개의 16x4 또는 4x16으로 분할되어 변환부호화될 경우, 인트라 예측 블록 생성도 16x4 또는 4x16 단위로 수행된다. 마찬가지로, 32x8 또는 8x32 직사각형 블록이 4개의 32x2 또는 2x32로 나누어질 경우에도 마찬가지이다. 다만, 마찬가지로, 32x8 또는 8x32 직사각형 블록이 4개의 32x2 또는 2x32로 나누어질 경우에는 동일한 인트라 예측 모드가 적용되어 예측 블록을 생성한다.
이하에서는 각 모드별 인트라 예측 블록 생성 방법에 대해 설명한다.
1)DC 모드
통상적으로 DC 예측 모드에서는, 현재 블록의 좌측 및 상측의 참조 화소들의 평균값으로 현재 블록의 예측 블록을 생성한다. 평균값은 다음과 같다.
DCVal =
Figure pat00001
, with x, y = 0, .., nS-1 여기서 k=log2(nS).
그러나, 앞서 허용된 직사각형 블록의 경우 평균값을 구하기 위한 참조화소들의 수가 2n이 되지 않는다. 예를 들어, 32x8 또는 8x32 직사각형 블록의 경우에는 40개의 참조 화소들이 이용되어야 하고, 16x4 또는 4x16 직사각형 블록의 경우에는 20개의 참조 화소들이 사용되어야 한다. 이에 따라 shift register를 이용한 연산이 용이하지 않게 되는 문제점이 발생한다.
따라서, 상기 복잡도를 줄이면서 기존 DC 예측에 필요한 새로운 DC 예측 방법이 요구된다.
먼저, 현재 직사각형 블록의 긴 방향에 인접한 참조화소들의 평균값을 이용하여 DC 예측을 수행할 수 있다. 특히, 현재 직사각형 블록의 짧은 면이 슬라이스 또는 픽쳐 경계에 위치하는 경우에는 유효한 긴 면에 인접한 참조화소들의 평균값을 이용하여 DC 예측을 수행할 수 있다.
현재 직사각형 블록의 짧은 면이 슬라이스 또는 픽쳐 경계에 위치하는 경우에는 짧은 면에 인접한 참조화소들이 평균값을 이용하여 DC 예측을 수행할 수 있다.
현재 직사각형 블록의 긴 방향에 인접한 참조화소들의 평균값 및 짧은 방향에 인접한 참조화소들의 평균값 또는 가중 평균값을 이용하여 DC 예측 블록을 생성할 수 있다.
한편, 생성된 예측 블록내의 화소들 중 참조 화소들과 인접한 경계면의 예측 화소들은 참조 화소들을 이용하여 필터링할 수 있다. 이 경우, 필터는 ~
2)Planar 모드
Planar 모드에서는 코너 참조 화소, 좌측 참조 화소 및 상측 참조 화소를 이용하여 예측 블록의 참조 화소를 생성할 수 있다. 생성하고자 하는 예측 화소의 위치가 (a, b)인 경우 생성되는 예측 화소 X(a, b)는 코너 참조 화소 C(x=-1, y=-1), 상측 참조 화소 T(x=a, y=-1) 및 좌측 참조 화소 L(x=-1, y=b)를 이용할 수 있다. 플래너 모드에서는 예측 블록을 필터링하지 않는다.
또한, Planar 모드에서는 도 3에 도시된 바와 같이, 현재 직사각형 블록의 우상측 대각선 방향으로 인접한 참조화소(A)와 좌하측 대각선 방향으로 인접한 참조화소(B) 및 상측 및 좌측 참조화소를 이용하여 예측 픽셀을 생성할 수 있다. 예를 들어, 예측 화소의 위치가 (a, b)인 경우, 예측 화소 X(a, b)는 참조 화소 A(N, -1), 참조화소 B(-1, M), 상측 참조화소 T(a, -1), 좌측 참조화소(-1, b)를 이용하여 생성된다.
Figure pat00002

한편, 예측 블록을 생성하기 전에 참조화소는 [1 2 1] 필터로 스무딩된다. 다만, 직사각형 블록의 크기에 따라 적응적으로 스무딩이 적용될 수 있다. 예를 들어, 짧은 면의 길이가 4보다 큰 경우에만 스무딩을 적용할 수 있다. 또는 긴 면의 길이가 8이상인 경우에만 적용할 수도 있다.
3)V, H 모드
직사각형 블록의 형태와 인트라 예측 방향에 따라 적응적으로 예측 블록을 필터링할 수 있다.
예를 들어, 수평 방향이 긴 직사각형 블록의 경우에 수평 모드이면 직사각형 블록의 상측에 인접한 참조화소를 이용하여 상기 참조 화소에 인접한 직사각형 블록내의 예측 화소를 필터링한다. 그러나, 수직 모드이면 복잡도 감소를 위해 필터링을 수행하지 않을 수도 있다.
또한, 수직 방향이 긴 직사각형 블록의 경우에는 수직 모드이면, 직사각형 블록의 좌측에 인접한 참조화소를 이용하여 상기 참조 화소에 인접한 직사각형 블록내의 예측 화소를 필터링한다. 그러나, 수평 모드이면 복잡도 감소를 위해 필터링을 수행하지 않을 수도 있다.
한편, 상기 직사각형 블록의 형태 및 인트라 예측 방향에 관계없이 예측 블록을 필터링할 수도 있다.
수직 모드(모드 번호 0)에서는 상측 참조 화소를 그대로 복사할 경우, 직사각형 블록 내의 좌측 화소들과 이에 인접하는 좌측 참조화소들 사이에 correlation이 떨어지게 된다. 상측으로부터 멀어질수록 correlation이 감소하게 된다. 마찬가지로, 수평 모드(모드 번호 1)에서는 직사각형 블록 내의 상측 화소들과 상측 참조픽셀 사이의 관계도 우측으로 갈수록 correlation이 떨어지게 된다. 이로 인해 수직 모드에서는 예측 블록의 아래쪽으로 갈수록 원본 예측 유닛과의 차이값이 커지게 된다.
따라서, 상기 차이값을 줄이기 위해 수직 모드인 경우에는 예측 블록의 좌측 부분의 픽셀들을 예측 블록 생성에 이용되지 않은 좌측 참조픽셀들을 이용하여 필터링할 수 있다. 마찬가지로, 수평 모드인 경우에는 예측 블록의 상측 부분의 픽셀들을 예측 블록 생성에 이용되지 않은 상측 참조픽셀들을 이용하여 필터링할 수 있다.
4)Angular 모드 : SDIP에서의 Angular 모드에 관한 것임. 중복 방지(특허6과)를 위해 향후 수정 또는 예측 블록 필터링 방식에 관한 다른 특허 내용 삽입 필요
모드번호 0과 6 사이의 방향성을 갖는 인트라 예측 모드들(모드번호 22, 12, 23, 5, 24, 13, 25) 및 모드번호 6을 갖는 인트라 예측 모드의 경우, 현재 예측 유닛의 상측 참조픽셀들만을 이용하여 예측 블록이 생성되면, 참조픽셀과 인접하는 생성된 예측블록의 좌측 라인의 픽셀들과 상기 참조픽셀 사이의 단차는 아래쪽으로 갈수록 커질 수 있다.
마찬가지로, 모드번호 1과 9 사이의 방향성을 갖는 인트라 예측 모드(모드번호 30, 16, 31, 8, 32, 17, 33)들 및 모드번호 9를 갖는 인트라 예측 모드의 경우, 현재 예측 유닛의 좌측 참조픽셀들만을 이용하여 예측 블록이 생성되면, 참조픽셀과 인접하는 생성된 예측블록의 상측 라인의 픽셀들과 상기 참조픽셀 사이의 단차는 오른쪽으로 갈수록 단차가 커질 수 있다.
따라서, 상기 단차를 보완하기 위해 DC 이외의 방향성 모드에 대해서도 적응적으로 예측 블록의 일부 화소들을 필터링할 수 있다. 또는 상기 단차를 보완하기 위해 예측 블록 생성을 위해 상측 및 좌측 참조픽셀들을 모두 이용할 수도 있다.
먼저, 예측 블록의 일부 화소들을 필터링하는 방법에 대해 설명한다.
모드번호가 6일 경우에는 상측 참조화소들을 이용하여 예측 블록을 생성하고, 상기 좌측 참조화소와 인접하는 생성된 예측 블록내의 좌측 화소들을 필터링한다. 현재 예측 유닛의 크기에 따라 생성된 예측 블록내의 필터링하는 예측블록에 화소의 영역이 달라질 수 있다. 즉, 예측 유닛의 크기에 따라 필터링 되는 라인의 수와 라인 내에서의 필터링되는 픽셀들의 비율이 달라질 수 있다. 예측 유닛의 크기가 커질수록 필터링 되는 라인의 수가 같거나 증가할 수 있다. 도한, 라인 내에서의 필터링되는 픽셀들의 비율이 감소할 수 있다. 또한, 참조픽셀로부터 멀어질수록 필터링 강도를 낮출 수 있다.
예를 들어, 4x4 예측 유닛에 대해서는 생성된 예측 블록내의 좌측 첫번째 라인에 위치하는 픽셀들, 즉, (x=0, y=0~3)에 위치하는 픽셀들만을 필터링할 수 있다. 8x8 예측 유닛에 대해서는 좌측 첫번째 라인에 위치하는 모든 픽셀들 및 두번째 라인에 위치하는 일부 픽셀들을 필터링할 수 있다. 상기 일부 픽셀들은, 예를 들어, (x=1, y=4~7)에 위치하는 픽셀들일 수 있다. 16x16 예측 유닛에 대해서는 좌측 첫번째 라인에 위치하는 모든 픽셀들, 두번째 라인에 위치하는 제1 개수의 픽셀들, 세번째 라인에 위치하는 제2개수의 픽셀들을 필터링할 수 있다. 상기 제1 개수의 픽셀들은, 예를 들어, (x=1, y=4~7)에 위치하는 픽셀들일 수 있다. 상기 제2 개수의 픽셀들은, 예를 들어, (x=2, y=8~15)에 위치하는 픽셀들일 수 있다. 또한, 32x32 예측 유닛에 대해서는 좌측 첫번째 라인에 위치하는 모든 픽셀들, 두번째 라인에 위치하는 제1 개수의 픽셀들, 세번째 라인에 위치하는 제2개수의 픽셀들 및 네번째 라인의 제3 개수의 픽셀들을 필터링할 수 있다. 제3 개수의 픽셀들은 (x=3, y=16~31)에 위치하는 픽셀들일 수 있다.
모드번호 0, 6 사이의 방향성을 갖는 모드들 중 모드 번호 6에 가까운 방향성을 갖는 소정 개수의 모드들에 대해서도 모드번호 6와 동일한 방법으로 필터링을 수행할 수 있다. 이 경우 모드 번호 6으로부터 먼 모드일수록 멀어질수록 필터링 해야 할 화소의 수가 같거나 작아질 수 있다. 모드번호 0, 6 사이의 방향성을 갖는 모드들 중 모드 번호 0에 가까운 방향성을 갖는 소정 개수의 모드들에 대해서는 수직 모드와 동일한 방법으로 필터링이 수행될 수도 있다.
모드번호가 9인 경우에도 모드번호 6과 동일한 방법을 적용한다. 그리고, 상기 모드번호 1, 9 사이의 방향성을 갖는 모드들에 대해서는 모드번호 0과 6 사이의 방향성을 갖는 모드들과 동일한 방법 적용한다.
한편, 모드번호 6 및 이에 인접한 소정 개수의 모드들에 대해서는 상기한 예측 블록의 일부 화소들을 필터링하는 방법을 적용하지 않고, 상측 및 좌측 참조픽셀들을 모두 이용하여 예측 블록을 생성할 수 있다. 마찬가지로 모드번호 9와 이에 인접한 소정 개수의 모드들에 대해서도 동일한다.
상기한 예측 블록의 일부 화소들을 필터링하는 방법은, 예측 블록의 생성시에 필터링 효과와 동일한 효과를 갖도록 예측 블록의 화소의 위치(즉, 필터링할 화소의 위치)에 따라 서로 다른 방식으로 예측 픽셀을 생성할 수 있다.
다음으로, 휘도 성분의 잔차신호 부호화 방법에 대해 설명한다.
[제1실시예]
SDIP의 잔차 블록의 크기가 nxm일 때, 상기 잔차 블록은 다음과 같이 변환될 수 있다.
Cnxm = Tm x Rnxm x Tn T
여기서, Rnxm은 잔차 블록을 의미한다. Tm 및 Tn 은 mxm, nxn 크기의 변환 매트릭스를 나타낸다. Cnxm 은 변환된 블록을 의미한다.
변환 부호화된 변환 블록은 양자화 매트릭스에 의해 부호화된다. 이때 양자화 매트릭스는 기존의 정사각형 매트릭스가 아닌 nxm 매트릭스를 이용한다. 이를 위해 nxm 매트릭스가 별도로 정의될 수 있다.
문의사항:소프트웨어에는 어떻게 되어 있나?
또한, 상기 변환 블록을 스캔하여 lxl 정사각형으로 변환한 후 lxl 매트릭스를 이용하여 양자화할 수도 있다. 또는 lxl 양자화 매트릭스에 대응하는 nxm 양자화 매트릭스로 변환하여 상기 변환 블록을 변환할 수도 있다.
다음으로, 양자화된 변환 블록을 스캐닝한다. 양자화된 변환 블록이 nxm의 직사각형 블록일 경우에는 복수개의 스캐닝 패턴 중 하나를 이용할 수 있다. 스캐닝 패턴은 지그재그, 수평스캔, 수직스캔을 포함할 수 있다.
지그재그 스캔은 도 4 또는 도 5와 같을 수 있다.
Figure pat00003
또는
Figure pat00004
수직수캔은 도 6과 같을 수 있다.
Figure pat00005
수평스캔은 도 7과 같을 수 있다.
Figure pat00006
또한 스캐닝 패턴은 제1 스캔, 제2 스캔(수직 스캔), 제3 스캔(수평 스캔)으로 나뉠 수 있다. 이때 제1 스캔은 도 8과 같을 수도 있다.
Figure pat00007

이때, 스캐닝 패턴은 인트라 예측 모드 및 직사각형 블록의 사이즈(또는 직사각형을 이루는 화소의 수)에 따라 달리 설정될 수 있다.
예를 들어, 직사각형 블록의 크기가 특정 사이즈보다 작거나 같으면 복수개의 스캐닝 패턴 중 하나를 인트라 예측 모드에 따라 적응적으로 결정할 수 있다. 그러나, 직사각형 블록의 크기가 특정 사이즈보다 크면 미리 정해진 패턴(지그재그 또는 제1 패턴)을 적용할 수 있다. 상기 미리 정해진 크기는 화소수가 64인 블록일 수 있다. 따라서, 4x16 또는 16x4 블록보다 작거나 같은 블록일 경우로 볼 수 있다. 이때, 4x16 또는 16x4 직사각형 블록과 8x8 정사각형 블록은 인트라 예측 모드에 따라 동일한 패턴이 적용될 수도 있다. 따라서, 다음과 같은 표를 구성할 수 있다.
Figure pat00008
[제2실시예]
SDIP의 잔차 블록의 크기가 nxm일 때, 상기 잔차 블록을 lxl의 정사각형 블록으로 변환한다. 변환 방법은 도 9, 10, 11의 방법 중 어느 하나를 이용할 수 있다.
Figure pat00009
또는
Figure pat00010
또는
Figure pat00011

그리고, 정사각형 블록을 변환 부호화한다. 변환 매트릭스는 정사각형 변환 매트릭스와 동일한 것을 사용할 수 있다. 또는 별도의 변환 매트릭스가 정의될 수 있다.
변환 부호화된 변환 블록은 양자화 매트릭스에 의해 부호화된다. 이때 양자화 매트릭스 정사각형 블록에 적용하는 양자화 매트릭스를 사용할 수 있다. 또는 별도의 양자화 매트릭스가 제공될 수도 있다.
다음으로, 양자화된 변환 블록을 스캐닝한다. 복수개의 스캐닝 패턴 중 하나를 이용할 수 있다. 스캐닝 패턴은 지그재그(또는 제1 패턴), 수평스캔, 수직스캔을 포함할 수 있다.
한편, 양자화된 블록이 소정 크기보다 큰 경우에는 복수개의 서브셋으로 나뉘어 스캐닝 될 수 있다. 예를 들어, 양자화된 블록이 8x8인 경우에는 4개의 4x4 서브셋들로 나뉘어 각 서브셋 단위로 스캔 될 수 있다. 상기 미리 정해진 크기는 4x4 또는 8x8 블록인 것이 바람직하다.
다음으로, 휘도 블록에SDIP 적용시의 색차 인트라 예측 모드 부호화 방법에 대해 설명한다.
색차 블록에 대하여 허용 가능한 인트라 예측 모드는 luma 모드, LM 모드, Vertical 모드, Horizontal 모드, DC 모드, Planar 모드가 존재한다. 이 경우, 색차 블록에 대응하는 휘도 블록이 SDIP로 부호화될 경우에는 색차 블록의 luma 모드가 1~4개가 존재할 수 있다. 즉, 휘도 블록의 각 직사각형 블록의 인트라 예측 모드가 모두 동일할 경우에는, 색차 블록의 luma 모드는 1개가 존재한다. 휘도 블록의 각 직사각형 블록의 인트라 예측 모드들 중 2개, 2개가 동일하거나, 3개, 1개가 동일한 경우에는 색차 블록의 luma 모드는 2개가 존재한다. 휘도 블록의 각 직사각형 블록의 인트라 예측 모드들 중 2개가 동일하거 나머지 2개는 각각 다른 경우에는 색차 블록의 luma 모드는 3개가 존재한다. 휘도 블록의 각 직사각형 블록의 인트라 예측 모드들 중 4개가 모두 다른 경우에는 색차 블록의 luma 모드는 4개가 존재한다. 따라서, 휘도 블록이 SDIP로 부호화된 경우에는 색차 블록의 인트라 예측 모드의 달라질 수 있게 되므로, 이에 따라 허용 가능한 모드 수들이 변하게 된다. 이에 따라 부호화 효율이 떨어질 수 있는 문제점이 있으므로, 색차 블록의 인트라 예측 모드 부호화는 luma 모드의 수에 따라 적응적으로 결정하는 것이 바람직하다.
1)Luma 모드 수가 1개인 경우
이 경우에는 휘도 블록이 SDIP로 분할되지 않은 경우와 동일한 방식으로 부호화할 수 있다. 따라서 다음의 방식이 적용될 수 있다.
모드들 사이에 인덱스를 부여하는 순서는 다음과 같다. 여기서 작은 값을 갖는 인덱스에 짧은 코드워드가 할당된다. 즉, 작은 값을 갖는 인덱스일수록 우선순위가 높다. 상기 관계는 테이블로 설정될 수 있다.
(1)Luma 모드, LM 모드, DC 모드, planar 모드, vertical 모드, Horizontal 모드 순서
(2)Luma 모드, LM 모드, planar 모드, DC 모드, vertical 모드, Horizontal 모드 순서
(3)Luma 모드, LM 모드, vertical 모드, Horizontal 모드, DC 모드, planar 모드 순서
(4)Luma 모드, LM 모드, vertical 모드, Horizontal 모드, planar 모드, DC 모드 순서
상기와 같은 순서들 중 하나로 인덱스를 부여한다. 즉, luma mode에 인덱스 0(또는 최우선순위)를 할당하고, 다음 순서들로 인덱스 1~5를 할당할 수 있다. 그러나, Luma 모드가 DC 모드, planar 모드, vertical 모드 또는 horizontal mode일 경우에는 후순위의 중복되는 모드는 삭제된 후에 모드 인덱스가 부여된다. 따라서, Luma 모드에 따라 chroma 모드의 인덱스(또는 우선순위)가 달리 결정될 수 있다. Luma 모드가 DC 모드, planar 모드, vertical 모드 및 horizontal mode가 아닌 경우에는 상기 순서대로 적용된다.
Luma 모드가 DC 모드, planar 모드, vertical 모드 또는 horizontal mode일 경우와, 그렇지 않은 경우에 따라 서로 다른 엔트로피 부호화 테이블이 설정될 수 있다. 즉, 전자의 경우에는 5개의 인덱스와 이에 대응하는 코드워드를 갖는 테이블, 후자의 경우에는 6개의 인덱스와 이에 대응하는 코드워드를 갖는 테이블을 이용하여 모드 부호화가 수행될 수 있다. 또한, 후자의 하나의 테이블로 이용할 수도 있다.
예를 들어, (3)의 경우이고, luma mode가 DC 모드인 경우에는 다음과 같은 테이블을 이용할 수 있다.
Intra chroma prediction mode codeword index Codeword
Luma Mode 0 0
LM mode 1 10
vertical 2 110
horizontal 3 1110
planar 4 1111
LM 모드는 시퀀스 또는 픽쳐 단위로 ON/OFF 할 수 있다. 따라서, LM 모드가 off 된 경우에는 LM 모드를 제외하므로, Luma 모드가 DC 모드, planar 모드, vertical 모드 또는 horizontal mode일 경우에는 4개의 인덱스와 이에 대응하는 코드워드를 갖는 테이블, 그렇지 않을 경우에는 5개의 인덱스와 이에 대응하는 코드워드를 갖는 테이블을 이용하여 모드 부호화가 수행될 수 있다. 또한, 후자의 하나의 테이블을 이용할 수도 있다.
예를 들어, LM 모드가 off 되고, (3)의 경우이고, luma mode가 dc 모드인 경우에는 다음과 같은 테이블이 사용될 수 있다.
Intra chroma prediction mode codeword index Codeword
Luma Mode 0 0
Vertical 1 10
Horizontal 2 110
planar 3 111
상기 순서들 중, luma 모드와 LM 모드의 우선순위가 바뀔 수 있다. 이에 따라 대응하는 인덱스 및 코드워드도 달라질 수 있다.
또한, SDIP에서는 luma 모드보다 LM 모드에 우선순위를 줄 수 있다. 이 경우, 위의 개시된 내용들 중 luma 모드와 LM 모드의 우선순위만 바뀌면 된다.
한편, 상기 모드에 새로운 모드(SDIP 모드)가 추가될 수 있다. SDIP 모드는 휘도 직사각형 블록에 대응하는 색차 직사각형 블록마다 휘도 직사각형 블록의 인트라 예측 모드를 이용하여 인트라 예측을 수행하는 경우를 말한다. 즉, 색차 블록에 SDIP를 적용하여 인트라 예측을 수행하되, 인트라 예측 모드는 휘도 블록의 인트라 예측 모드를 이용하는 모드이다. 상기 모드가 위의 모드들 중에 luma mode 다음의 위치에 위치할 수 있다. 이 경우, 미리 정해진 수만큼의 색차 블록의 인트라 예측 모드만을 허용하는 것이 바람직하다.
한편, 참조화소들 중 일부가 이용가능하지 않은 경우, 허용되지 않는 모드들이 존재한다. 예를 들어 상측 화소들이 존재하지 않는 경우에는 Luma 모드가 상측 방향성 모드일 경우, 또는 수평 모드 상측 방향의 모드들일 경우, 색차 블록의 luma 모드가 이용가능하지 않는다. 또한, planar 모드도 존재하지 않는다. 이와 같이, 일부 모드들이 존재하지 않는 경우에는 VLC 테이블에서 이를 삭제하고 허용 가능한 모드들만으로 재정렬하여 이용할 수 있다.
2)Luma 모드 수가 2개인 경우
휘도 블록의 각 직사각형 블록의 인트라 예측 모드들 중 2개씩 동일하거나, 3개가 동일하고, 1개가 다른 경우에는 색차 블록의 luma 모드는 2개가 존재한다.
전자의 경우에는 2개의 luma 모드가 추가될 수 있다. 이 경우, 모드들 사이에 인덱스를 부여하는 순서는 다음과 같이 변경될 수 있다.
(1)LM 모드, luma 모드1, luma 모드 2, DC 모드, planar 모드, vertical 모드, Horizontal 모드 순서
(2)LM 모드, luma 모드1, luma 모드 2, planar 모드, DC 모드, vertical 모드, Horizontal 모드 순서
(3)LM 모드, luma 모드1, luma 모드 2, vertical 모드, Horizontal 모드, DC 모드, planar 모드 순서
(4)LM 모드, luma 모드1, luma 모드 2, vertical 모드, Horizontal 모드, planar 모드, DC 모드 순서
후자의 경우에는 전자의 경우와 달리 luma 모드 2(1개가 다른 경우)는 추가하지 않는다.
한편, 상기 모드에 새로운 모드(SDIP 모드)가 추가될 수 있다. SDIP 모드는 휘도 직사각형 블록에 대응하는 색차 직사각형 블록마다 휘도 직사각형 블록의 인트라 예측 모드를 이용하여 인트라 예측을 수행하는 경우를 말한다. 즉, 색차 블록에 SDIP를 적용하여 인트라 예측을 수행하되, 인트라 예측 모드는 휘도 블록의 인트라 예측 모드를 이용하는 모드이다.
상기 모드가 위의 모드들 중에 luma mode 다음의 위치에 위치할 수 있다. 이 경우, 미리 정해진 수만큼의 색차 블록의 인트라 예측 모드만을 허용하는 것이 바람직하다.
상기와 같은 순서들 중 하나로 인덱스를 부여한다. 그러나, Luma 모드1 또는 luma 모드 2가 DC 모드, planar 모드, vertical 모드 또는 horizontal mode일 경우에는 후순위의 중복되는 모드는 삭제하고 후순위 모드에 인덱스가 부여된다. 따라서, Luma 모드1 또는 luma 모드 2에 따라 chroma 모드의 인덱스(또는 우선순위)가 달리 결정될 수 있다. Luma 모드1 과 luma 모드 2가 DC 모드, planar 모드, vertical 모드 및 horizontal mode가 아닌 경우에는 상기 순서대로 적용된다.
예를 들어, 전자의 경우이고 (1)의 경우이고, luma 모드 1이 DC 모드이고, luma 모드 2가 DC, planar가 아닌 경우에는 다음과 같은 테이블을 이용할 수 있다.
Intra chroma prediction mode codeword index Codeword
LM mode 0 0
Luma Mode1 1 10
Luma Mode2 2 110
SDIP mode 3 1110
Planar mode 4 1111
예를 들어, 후자의 경우이고 (1)의 경우이고, luma 모드 1이 DC 모드이고, luma 모드 2가 DC, planar가 아닌 경우에는 다음과 같은 테이블을 이용할 수 있다.
Intra chroma prediction mode codeword index Codeword
LM mode 0 0
Luma Mode1 1 10
SDIP mode 2 110
Planar mode 3 1110
Vertical mode 4 1111
상기 테이블에서 허용 가능한 모드의 수를 4개로 제한할 수 있다. 이 경우에는 다음의 테이블리 사용될 수 있다.
codeword index Codeword
0 0
1 10
2 110
3 111
한편, 참조화소들 중 일부가 이용가능하지 않은 경우, 허용되지 않는 모드들이 존재한다. 예를 들어 상측 화소들이 존재하지 않는 경우에는 Luma 모드가 상측 방향성 모드일 경우, 또는 수평 모드 상측 방향의 모드들일 경우, 색차 블록의 luma 모드가 이용가능하지 않는다. 또한, planar 모드도 존재하지 않는다. 이와 같이, 일부 모드들이 존재하지 않는 경우에는 VLC 테이블에서 이를 삭제하고 허용 가능한 모드들만으로 재정렬하여 이용할 수 있다.
3)Luma 모드 수가 3개인 경우
이 경우에는 luma 모드 수가 1개인 경우와 동일한 방식을 적용할 수 있다.
4)Luma 모드 수가 4개인 경우
이 경우에는 휘도 직사각형 블록의 첫번째 luma mode만을 이용할 수 있다. 이 경우 luma 모드 수가 1개인 경우와 동일한 방식이 적용될 수 있다. 또는 luma 모드를 삭제하고 SDIP 모드를 추가할 수 있다.
다음으로, SDIP 적용시의 색차 인트라 예측 블록 생성 방법에 대해 설명한다.
(1)색차 참조 화소 생성
현재의 표준관련 문서들에서는 색차 참조화소 생성여부에 대한 논의가 없다. 그러나, 색차 블록의 인트라 예측의 경우에도 색차 블록의 인트라 예측에서 참조 화소를 생성하여 예측 블록을 생성하는 것이 부호화 효율을 높일 수 있다.
또한, 색차 블록의 위치 및/또는 luma mode에 따라 luma mode를 사용할 수 없는 경우가 존재한다. 예를 들어, 색차 블록이 슬아이스 경계에 접하는 경우에는 도 1의 상측의 색차 참조화소들(영역 C, D 및 (-1, -1) 위치의 참조 화소)가 존재하지 않는다. 이 경우, luma 모드가 상측의 luma 참조 화소를 이용하는 모드인 경우에는 색차블록의 경우 luma mode를 이용할 수 없다. 현재 색차 블록이 LCU의 우측에 접하는 경우에는 현재 색차 블록의 상측의 우측에 대응하는 참조 화소들(영역 D)이 존재하지 않는다. 이 경우에는 luma 모드가 수직 모드 우측의 방향성 모드들인 경우에는 색차 블록의 luma mode가 존재하지 않는 문제가 발생한다.
이와 같은 문제들을 해결하기 위해, 색차 블록의 유효하지 않은 참조 화소들을 생성하는 것이 필요하다. 이를 위해 다음의 과정을 수행할 수 있다. 아래의 과정은 부호화 및 복호화 과정에 모두 적용 가능하다.
먼저, 이용 가능한 색차 참조 화소들을 유도한다. 그리고, 이용 가능하지 않은 참조 화소들이 존재할 경우에는 이용 가능한 참조 화소들을 이용하여 이용 가능하지 않은 위치의 참조 화소들을 생성한다.
도 12에 도시된 바와 같이, 현재 색차 블록의 상측 참조 화소들은 상측 참조 화소들, 좌측 참조 화소들 및 코너 참조화소로 구성된다. 현재 색차 블록의 상측 참조 화소들은 현재 색차 블록의 가로 길이의 2배에 걸쳐 존재하는 화소들(영역 C, D)이고, 현재 색차 블록의 좌측 화소들은 좌측 참조 화소들은 현재 색차 블록의 세로길이의 2배에 걸쳐 존재하는 화소들(영역 A, B)이다. 현재 색차 블록의 코너 참조화소는 (x=-1, y=-1)에 위치한다.
현재 색차 블록이 픽쳐 또는 슬라이스의 상측 경계에 위치하는 경우에는 현재 색차 블록의 상측 참조화소들(영역 C, D)과 코너 참조화소가 존재하지 않는다. 마찬가지로, 현재 색차 블록이 픽쳐 또는 슬라이스의 좌측 경계에 위치하는 경우에는 좌측 참조 화소들(영역 A, B)과 코너 참조화소가 존재하지 않는다. 이와 같이 어느 한쪽의 참조화소들 및 코너 참조화소가 이용 가능하지 않을 경우, 가장 인접한 이용 가능한 참조 화소를 복사하여 참조 화소를 생성할 수 있다. 전자의 경우, 가장 인접한 이용 가능한 참조 화소는 좌측 가장 위쪽의 참조화소(즉, 영역 A의 가장 위쪽 참조화소)이다. 후자의 경우, 가장 인접한 이용 가능한 참조 화소는 상측 가장 왼쪽의 참조화소(즉, 영역 C의 가장 왼쪽의 참조화소)이다.
다음으로, 부호화할 현재 색차 블록의 상측 또는 좌측의 참조 화소들 중 일부분이 이용 가능하지 않은 경우에 대해 설명한다. 이용 가능하지 않은 참조화소를 기준으로 1) 한쪽 방향으로만 이용 가능한 참조 화소들이 존재하는 경우와, 2) 양쪽 모두 이용 가능한 참조 화소들이 존재하는 경우의 2가지가 존재한다.
먼저, 이용 가능하지 않은 참조화소를 기준으로 한쪽 방향으로만 이용 가능한 참조 화소들이 존재하는 경우에 대해 설명한다.
현재 색차 블록의 상측에 인접하는 참조 화소들(영역 C)은 유효하나 우상측 참조 화소들(영역 D)이 유효하지 않을 수 있다. 현재 색차 블록이 픽쳐 또는 슬라이스의 우측 경계 또는 최대 코딩 유닛의 우측 경계에 위치하는 경우에는 영역 D의 참조화소들이 이용 가능하지 않다. 이 경우에는 하나 이상의 상측 참조화소들을 이용하여 우상측 참조 화소들(영역 D)을 생성한다. 바람직하게는 상측 최우측 참조 화소를 복사할 수 있다. 또한, 2개 이상의 상측 참조 화소를 이용하여 우상측 참조 화소들을 생성할 수도 있다.
현재 예측 블록의 좌측에 인접하는 참조 화소들(영역 A)은 유효하나 좌하측 참조 화소들(영역 B)이 유효하지 않을 수 있다. 현재 색차 블록이 픽쳐 또는 슬라이스의 아래측 경계 또는 최대 코딩 유닛의 아래측 경계에 위치하는 경우에는 영역 B의 참조화소들이 이용 가능하지 않다. 이 경우에는 하나 이상의 좌측 참조 화소들을 이용하여 좌하측 참조 화소들(영역 B)을 생성한다. 바람직하게는 좌측 최하측 참조 화소를 복사할 수 있다. 또한, 2개 이상의 좌측 참조 화소를 이용하여 좌하측 참조 화소들을 생성할 수도 있다.
상기 경우와 같이, 이용 가능하지 않은 참조화소를 기준으로 한쪽 방향으로만 이용 가능한 참조 화소들이 존재하는 경우에는 가장 가까운 위치에 존재하는 이용 가능한 참조 화소를 복사하여 참조 화소들을 생성할 수 있다. 또 다른 방법으로 가장 가까운 위치에 존재하는 복수개의 이용 가능한 참조 화소들을 이용하여 참조 화소들을 생성할 수도 있다.
다음으로, 이용 가능하지 않은 참조화소를 기준으로 양쪽 방향 모두 이용 가능한 참조 화소들이 존재하는 경우에 대해 설명한다.
예를 들어, 현재 색차 블록이 슬라이스의 상측 경계에 위치하고, 상기 현재 색차 블록의 우상측 색차 블록이 이용 가능한 경우, 현재 색차 블록의 영역 C에 대응하는 참조 화소들은 이용 가능하지 않지만, 영역 A 및 영역 D에 위치하는 참조화소들은 이용 가능하다. 이와 같이 양쪽 모두 이용 가능한 참조화소가 존재하는 경우에는, 각 방향으로 가장 가까운 위치에 존재하는 이용 가능한 참조화소 1개씩을 선택하여, 이들(즉, 영역 A의 가장 위쪽 참조화소와 영역 D의 가장 왼쪽 참조화소)을 이용하여 이용 가능하지 않은 위치의 참조화소들을 생성한다.
상기 2개 참조 화소(각 방향으로 가장 가까운 위치에 존재하는 화소)의 반올림한 평균값을 참조화소값으로 생성할 수도 있다. 그러나, 상기 2개의 참조 화소값의 차이가 클 경우가 발생할 가능성이 있으므로, 선형 보간 방법을 사용하여 참조 화소를 생성할 수도 있다. 구체적으로 이용 가능한 2개의 참조 화소들과의 위치를 고려하여 현재 위치의 이용 가능하지 않은 참조 화소를 생성할 수 있다.
한편, 색차 블록의 인트라 예측의 경우에도 색차 블록의 인트라 예측에서 참조 화소를 생성하여 예측 블록을 생성하는 것이 복잡도를 높일 수 있으므로, 참조 화소를 생성하지 않을 수도 있다.
첫번째로, 현재 색차 블록의 이용 가능하지 않은 참조 화소들이 존재하는 경우에는 luma 모드를 off 시킬 수 있다.
두번째로, 현재 색차 블록이 슬라이스의 상측 경계 또는 좌측 경계에 있을 때 luma mode를 off 시킬 수 있다.
세번째로, 이용 가능한 luma mode인지를 판단하여 luma mode를 on/off 시킬 수 있다. 즉, 현재 색차 블록이 상측 경계에 위치하고, luma mode가 horizontal인 경우에는 luma 모드를 이용할 수 있으므로, luma 모드를 on 시키고, luma 모드가 vertical 인 경우에는 색차 블록의 luma mode가 이용 가능하지 않으므로 off시킬 수 있다.
네번째로 항상 luma 모드를 on 시켜 놓고, 색차 블록의 모드를 결정할 수 있다.
(2)색차 참조 화소 필터링
색차 참조 화소들에 대해서는 색차 인트라 예측 모드에 따라 적응적으로 필터링을 할 수 있다.
예를 들어, 색차 블록의 인트라 예측 모드가 DC, Vertical, Horizontal 모드의 경우에는 필터링하지 않는다.
Planar 모드의 경우에는 색차 블록의 크기에 따라 적응적으로 필터링할 수 있다. 예를 들어, 색차 블록의 크기가 4x4보다 큰 경우에는 참조 화소를 필터링할 수 있다.
Luma 모드의 경우에는 luma mode에 따라 적응적으로 할 수 있다. 즉, 휘도 블록의 참조 화소들이 luma mode 및 휘도 블록의 크기에 따라 적응적으로 필터링될 경우, 색차 블록의 참조 화소들도 동일하게 적응적으로 필터링될 수 있다. 이 경우, 대응하는 휘도 블록의 참조 화소가 필터링될 경우에 색차 블록의 참조 화소를 필터링할 수도 있고, 휘도 블록의 참조 화소 필터링 조건을 그대로 색차 화소에 적용할 수도 있다. 이 경우, 4:2:0 포맷의 경우, 색차 블록의 크기가 휘도 블록의 크기의 1/4이므로 이를 기준으로 휘도 참조 화소의 필터링 조건을 색차 참조 화소에 적용할 수도 있다.
필터링이 수행될 경우, 현재 색차 블록의 상측의 참조화소들 중 가장 오른쪽의 참조 화소(즉 (x=2N-1, y=-1)에 위치하는 참조 화소)와 현재 예측 유닛의 좌측의 참조 화소들 중 가장 아래쪽에 위치하는 참조 화소(즉 (x=-1, y=2N-1)에 위치하는 참조 화소)는 필터링 하지 않고, 나머지 화소들은 이웃하는 2개의 화소들을 이용하여 필터링한다. 상기 필터링은 참조화소들 사이의 화소값의 변화량을 스무딩(smoothing)하기 위한 것으로, low-pass filter를 적용한다. Low-pass filter는 3-tap 필터인 [1, 2, 1] 또는 5-tap 필터인 [1, 2, 4, 2, 1]일 수 있다.
수직 또는 수평 모드와, 상기 수평 또는 수직 모드에 대해 45° 각도를 갖는 모드들 사이에 존재하는 모드들에 대해서는 색차 블록의 크기에 따라 적응적으로 필터를 적용한다. 이 경우, 상기 수평 또는 수직 모드에 대해 45° 각도를 갖는 모드에 인접하는 미리 정해진 개수의 모드들에서만 필터를 적용할 수 있다. 휘도의 방향성 인트라 예측 모드의 수가 동일한 대응하는 색차 블록 또는 대응하는 크기의 색차 블록들에 대해서는, 상기 미리 정해진 개수는 색차 블록의 크기가 클수록 증가한다. 예를 들어, 8x8 예측 유닛에 대해서는 수평 또는 수직 모드에 대해 45° 각도를 갖는 모드와 이에 인접하는 제1 개수의 모드에서 필터링을 수행하고, 16x16 예측 유닛에 대해서는 수평 또는 수직 모드에 대해 45° 각도를 갖는 모드와 이에 인접하는 제2 개수의 모드에서 필터링을 수행하고, 32x32 예측 유닛에 대해서는 수평 또는 수직 모드에 대해 45° 각도를 갖는 모드와 이에 인접하는 제3 개수의 모드에서 필터링을 수행한다. 여기서, 제1개수는 제2개수보다 작거나 같고, 제2개수는 제3개수보다 작거나 같다.
LM 모드의 경우에도 색차 블록의 참조 화소들을 필터링할 수 있다. 휘도 참조 화소와 색차 참조화소의 상관성을 높이기 위해 휘도 참조 화소의 서브 샘플링 형태에 따라 색차 화소를 필터링할수도 있다.
한편, 복잡도 감소를 위해, 색차 화소는 모두 필터링을 수행하지 않을 수도 있다. 또는 luma 모드의 경우에만 적응적으로 참조 화소를 필터링할 수도 있다.
색차 참조 화소들 중 일부가 이용 가능하지 않은 경우, 이용 가능하지 않는 참조 화소들을 생성하지 않는 경우에는 색차 참조 화소 필터링을 하지 않는 것이 바람직하다.
(3)색차 예측 블록 생성
DC 모드의 경우에는 예측 블록이 참조화소들의 평균값으로 이루어지기 때문에 참조화소들과 인접하는 예측 블록 내의 화소 사이에는 단차가 발생할 수 있다. 따라서, 참조화소들과 인접하는 예측 블록 내의 상측 라인의 화소들 및 좌측 라인의 화소들은 참조화소들을 이용하여 필터링할 수 있다. 구체적으로, 예측 블록 내의 좌상측 코너에 위치하는 화소는 인접하는 참조화소가 2개(상측 참조화소와 좌측 참조화소)이므로, 3-tap 필터를 이용하여 상기 좌상측 코너의 화소를 필터링(또는 스무딩)한다. 그리고, 그 이외의 화소들(즉, 예측 블록 내의 상측 라인의 화소들 및 좌측 라인의 화소들)은 인접하는 참조화소가 1개이므로 2-tap 필터를 이용하여 필터링한다. 나머지 위치의 예측 화소들은 참조 화소들의 평균값으로 결정된다. 상기 필터링은 이용되는 색차 참조화소들이 모두 이용 가능한 경우에 적용할 수 있다. 즉, DC 모드의 예측 블록에 사용되는 색차 참조화소들 중 일부가 원래 이용 가능하지 않은 경우에는 필터링을 수행하지 않을 수 있다. 또한, 소정 크기 이하의 색차 블록에 대해서만 예측 화소들의 일부를 필터링할 수도 있다.
Planar 모드의 경우에는 휘도 화소와 동일한 방식으로 예측 블록을 생성한다. 구체적인 방법은 다음과 같다.
predSamples[ x, y ] = (
( nS - 1 -x ) * p[ -1, y ] + ( x + 1 ) * p[ nS - 1 ,-1 ] + 
( nS - 1 - y ) * p[ x ,-1 ] + ( y + 1 ) * p[ -1, nS - 1 ] + nS ) >> ( k + 1 )
with x, y = 0..nS-1 where k = log2( nS )
한편, planer 모드의 경우 코너 참조 화소, 좌측 참조 화소 및 상측 참조 화소를 이용하여 예측 블록의 참조 화소를 생성할수도 있다. 생성하고자 하는 참조 화소의 위치가 (a, b)인 경우 생성되는 참조 화소 X(a, b)는 코너 참조 화소 C(x=-1, y=-1), 상측 참조 화소 T(x=a, y=-1) 및 좌측 참조 화소 L(x=-1, y=b)를 이용할 수 있다. 플래너 모드에서는 예측 블록을 필터링하지 않는다.
Vertical 모드에서는 상측 참조 화소를 그대로 복사할 경우, 예측 블록 내의 좌측 화소들과 이에 인접하는 좌측 참조화소들 사이에 correlation이 떨어지게 된다. 상측으로부터 멀어질수록 correlation이 감소하게 된다. 마찬가지로, 수평 모드(모드 번호 1)에서는 예측 블록 내의 상측 화소들과 상측 참조픽셀 사이의 관계도 우측으로 갈수록 correlation이 떨어지게 된다. 이로 인해 수직 모드에서는 예측 블록의 아래쪽으로 갈수록 원본 예측 유닛과의 차이값이 커지게 된다. 따라서, 상기 차이값을 줄이기 위해 수직 모드인 경우에는 예측 블록의 좌측 부분의 픽셀들을 예측 블록 생성에 이용되지 않은 좌측 참조픽셀들을 이용하여 필터링할 수 있다. 마찬가지로, 수평 모드인 경우에는 예측 블록의 상측 부분의 픽셀들을 예측 블록 생성에 이용되지 않은 상측 참조픽셀들을 이용하여 필터링할 수 있다.
Luma 모드의 경우에는 휘도 블록의 luma mode에 따라 적응적으로 예측 블록을 생성하고, 생성된 예측 블록의 일부 화소들을 필터링할 수 있다. luma 모드에서의 모드번호 0과 6 사이의 방향성을 갖는 인트라 예측 모드들(모드번호 22, 12, 23, 5, 24, 13, 25) 및 모드번호 6을 갖는 인트라 예측 모드의 경우, 현재 색차 블록의 상측 참조픽셀들만을 이용하여 예측 블록이 생성되면, 참조픽셀과 인접하는 생성된 예측블록의 좌측 라인의 픽셀들과 상기 참조픽셀 사이의 단차는 아래쪽으로 갈수록 커질 수 있다. 마찬가지로, luma 모드에서의 모드번호 1과 9 사이의 방향성을 갖는 인트라 예측 모드(모드번호 30, 16, 31, 8, 32, 17, 33)들 및 모드번호 9를 갖는 인트라 예측 모드의 경우, 현재 색차 블록의 좌측 참조픽셀들만을 이용하여 예측 블록이 생성되면, 참조픽셀과 인접하는 생성된 예측블록의 상측 라인의 픽셀들과 상기 참조픽셀 사이의 단차는 오른쪽으로 갈수록 단차가 커질 수 있다.
따라서, 상기 단차를 보완하기 위해 DC 이외의 방향성 모드에 대해서도 적응적으로 예측 블록의 일부 화소들을 필터링할 수 있다. 또는 상기 단차를 보완하기 위해 예측 블록 생성을 위해 상측 및 좌측 참조픽셀들을 모두 이용할 수도 있다.
luma 모드에서의 모드번호가 6일 경우에는 상측 참조화소들을 이용하여 예측 블록을 생성하고, 상기 좌측 참조화소와 인접하는 생성된 예측 블록내의 좌측 화소들을 필터링할 수 있다. 현재 색차 블록의 크기에 따라 생성된 예측 블록내의 필터링하는 예측블록에 화소의 영역이 달라질 수 있다. 즉, 색차 블록의 크기에 따라 필터링 되는 라인의 수와 라인 내에서의 필터링되는 픽셀들의 비율이 달라질 수 있다. 예측 유닛의 크기가 커질수록 필터링 되는 라인의 수가 같거나 증가할 수 있다. 또한, 라인 내에서의 필터링되는 픽셀들의 비율이 감소할 수 있다. 또한, 참조픽셀로부터 멀어질수록 필터링 강도를 낮출 수 있다.
luma 모드에서의 모드번호 0, 6 사이의 방향성을 갖는 모드들 중 모드 번호 6에 가까운 방향성을 갖는 소정 개수의 모드들에 대해서도 모드번호 6와 동일한 방법으로 필터링을 수행할 수 있다. 이 경우 모드 번호 6으로부터 먼 모드일수록 멀어질수록 필터링 해야 할 화소의 수가 같거나 작아질 수 있다. 모드번호 0, 6 사이의 방향성을 갖는 모드들 중 모드 번호 0에 가까운 방향성을 갖는 소정 개수의 모드들에 대해서는 수직 모드와 동일한 방법으로 필터링이 수행될 수도 있다.
luma 모드에서의 모드번호가 9인 경우에도 모드번호 6과 동일한 방법을 적용한다. 그리고, 상기 모드번호 1, 9 사이의 방향성을 갖는 모드들에 대해서는 모드번호 0과 6 사이의 방향성을 갖는 모드들과 동일한 방법 적용한다.
한편, 모드번호 6 및 이에 인접한 소정 개수의 모드들에 대해서는 상기한 예측 블록의 일부 화소들을 필터링하는 방법을 적용하지 않고, 상측 및 좌측 참조픽셀들을 모두 이용하여 예측 블록을 생성할 수 있다. 마찬가지로 모드번호 9와 이에 인접한 소정 개수의 모드들에 대해서도 동일한다.
상기한 예측 블록의 일부 화소들을 필터링하는 방법은, 예측 블록의 생성시에 필터링 효과와 동일한 효과를 갖도록 예측 블록의 화소의 위치(즉, 필터링할 화소의 위치)에 따라 서로 다른 방식으로 예측 픽셀을 생성할 수 있다.
한편, 휘도 블록이 8x8(모드수 35개)이고 색차 블록이 4x4인 경우(모드수 10개)에는 예측 블록의 생성을 색차 블록의 크기에 대응하는 모드 수로 매핑하여 색차 예측 블록을 생성할 수도 있다.
다음으로 LM 모드의 예측 블록 생성 방법에 대해 설명한다.
색차성분과 휘도성분은 특정한 영역에서는 다음의 식과 같은 관계를 가질 수 있다.
Figure pat00012
여기서
Figure pat00013
는 예측된 색차성분 픽셀값이고,
Figure pat00014
'은 재생된 휘도성분을 서브샘플링한 값이다. 이러한 상관성이 있는 영역에서는 상기 상관성을 이용하는 것이 색차성분의 부호화 효율을 향상시킬 수 있다. 두 성분간의 상관성은 매개변수가 각각 a와 b인 선형관계로 표현될 수 있다. 색차성분의 예측블럭을 생성할 때, 이미 재생되어 있는 주변블럭의 휘도성분과 색차성분을 사용하여 a와 b를 구하고, 이 매개변수를 색차성분의 예측블럭 생성에 활용한다.
먼저, 현재 색차 블록에 대응하는 luma 대응 블록의 참조 화소를 색차 포맷에 따라 서브 샘플링한다. 도 13은 4:2:0 컬러포맷에 대한 Y 성분의 서브샘플링을 보여주는 제1 실시예이다. 예를 들어, 색차 포맷이 4:2:0인 경우에는 도 3에 도시된 바와 같이, 4개의 휘도 참조 화소들을 1개의 휘도 화소로 서브 샘플링할 수 있다. 이 경우, 서브 샘블핑된 휘도 참조 화소는 다음의 수식을 통해 구할 수 있다.
Figure pat00015

그러나, 이 경우 상측 휘도 성분을 2라인 저장해야 하므로, 2라인 버퍼를 유지해야 하기 때문에 부호화기 및 복호화기 모두 하드웨어가 복잡해지는 문제가 발생한다. 따라서, 도 14에서와 같이, 하나의 휘도의 참조 화소 라인만을 이용할 수도 있다.
이 경우, 좌측의 서브 샘블핑된 휘도 참조 화소는 다음의 수식을 통해 구할 수 있다.
Figure pat00016
그러나, 상측의 서브 샘플링된 휘도 참조 화소는 수직 방향으로는 서브 샘블링을 할수 없으므로, 수평 방향으로만 서브 샘블링한 값이다. 따라서, 다음과 같은 수식을 통해 구할 수 있다. 즉, 서브 샘블링된 휘도의 참조 화소를 구하기 위해 수평 방향으로의 [1 0] 필터를 사용할 수 있다(제2 실시예).
Figure pat00017
또는 상기 수직 방향으로의 서브 샘플링을 수행하지 않았기 때문에 발생하는 문제점들을 보완하기 위해 다음의 수식을 통해 구할 수도 있다. 즉, 서브 샘블링된 휘도의 참조 화소를 구하기 위해 수평 방향으로의 [1 2 1] 필터를 사용할 수 있다(제3실시예).
Figure pat00018
한편, 서브 샘블링된 휘도의 참조 화소를 구하기 위해 [1 1] 필터 또는 [3 1] 필터를 사용할 수도 있다. 이 경우, 각각 다음의 수식을 사용할 수 있다(제4 및 제5 실시예).
Figure pat00019
Figure pat00020
한편, 상기에서 제2 내지 제4 실시예는 상측의 휘도 참조 화소들 중 하나의 휘도의 참조 화소 라인만을 이용하는 경우에 적용 가능하다. 이러한 경우를 모든 휘도 블록에 적용할 수도 있지만, 휘도 블록이 LCU 라인의 상측에 접한 경우에만 적용할 수도 있다. 이 명세서에서의 휘도 블록 또는 색차 블록들은 예측 블록들을 의미한다.
다음으로, 색차의 참조 화소와 상기 서브 샘플링된 휘도의 참조 화소를 이용하여 a와 b를 구한다. a와 b는 다음의 수식에 의해 구해진다. 즉, 선형 최소 자승 방식(linear least square method)을 이용한다.
Figure pat00021
Figure pat00022

그러나, 블록의 크기가 클수록, a와 b를 구하기 위한 복잡도가 증가하는 문제가 발생한다.따라서, 소정 크기 이상의 블록들에 대해서는 색차 블록의 참조 화소들을 서브 샘플링하고, 이에 대응하는 휘도 블록의 참조 화소들도 서브 샘플링하는 것이 복잡도를 낯출 수 있다. 이하 색차 블록의 크기를 기준으로 설명한다.
(실시예 1)
색차 블록의 크기가 4x4보다 큰 경우 서브 샘플링한다. 이 경우, 색차 블록의 크기가 8x8인 경우에는 색차 블록의 참조 화소들을 2:1로 서브 샘플링한다. 16x16인 경우에는 2:1 또는 4:1로 서브 샘플링한다.
색차 블록의 참조 화소들을 2:1로 서브 샘플링할 경우에는 [1 0] 필터 또는 [1 1] 필터 또는 [0 1] 필터를 이용한다. [1 0] 필터는 상측 2개의 참조 화소들 중 좌측의 값, 좌측 2개의 참조 화소들 중 아래쪽 값을 선택하는 것을 의미한다. [0 1] 필터는 상측 2개의 참조 화소들 중 우측의 값, 좌측 2개의 참조 화소들 중 위쪽 값을 선택하는 것을 의미한다. [1 1] 필터는 2개의 참조 화소들의 평균값을 의미한다. 평균값은 반올림 또는 버림할 수 있다. 또한, [1 2 1] 필터를 사용할수도 있다. 이 필터는 제3 실시예의 방식과 동일하다.
이 경우, 휘도 블록의 좌측 참조화소들은 8:1 서브샘플링되고, 상측 참조화소들은 4:1 서브 샘플링된다. 좌측 참조화소들은 휘도 블록에 인접한 2번째 라인의 화소들만을 이용하여 서브 샘블링된 참조 화소들을 생성할 수 있다. 이 때 [1 1 1 1] 필터, [1 3 3 1] 필터, [0 1 1 0] 필터 등이 사용될 수 있다. 이때 첫번째 라인의 참조화소들은 이용하지 않는다. 상측 참조화소들은 휘도 블록에 인접한 1번째 라인의 화소들만을 이용하므로 [1 1 1 1] 필터, [1 3 3 1] 필터, [0 1 1 0] 필터 등이 사용될 수 있다.
색차 블록의 참조 화소들을 4:1로 서브 샘블링할 경우에는 [1 1 1 1] 필터, [1 3 3 1] 필터, [0 1 1 0] 필터 들 중 하나를 이용할 수 있다.
이 경우, 휘도 블록의 좌측 참조화소들은 16:1 서브샘플링되고, 상측 참조화소들은 8:1 서브 샘플링된다. 좌측 참조화소들은 휘도 블록에 인접한 2번째 라인의 화소들만을 이용하여 서브 샘블링된 참조 화소들을 생성할 수 있다. 이 때 평균값 또는 화소들간의 가중평균을 이용하여 서브 샘플링한다. [1 0 1 0 1 0 1 0] 필터, [0 1 0 1 0 1 0 1] 필터, [1 1 1 1 1 1 1] 필터 중 하나가 사용될 수 있다. 또는 [1 1 1 1 0 0 0 0], [0 0 0 0 1 1 1 1] 필터가 사용될 수도 있다.
상측 참조화소들은 휘도 블록에 인접한 1번째 라인의 화소들만을 이용한다. 상기한좌측 참조화소의 서브샘플링 필터 중 하나가 사용될 수 있다.
한편, 휘도 블록의 좌측 및 상측 참조화소들 모두 평균값으로 서브샘블링을 수행할 수 있다. 이때 좌측은 2:1 서브샘플링의 경우 8개의 평균값이 서브 샘플링된 값일수 있다.
(실시예 2)
색차 블록의 크기가 8x8보다 큰 경우 서브 샘플링한다. 이 경우, 색차 블록의 크기가 16x16인 경우에는 색차 블록의 참조 화소들을 2:1로 서브 샘플링한다. 32x32인 경우에는 2:1 또는 4:1로 서브 샘플링한다.
색차 블록의 참조 화소들을 2:1로 서브 샘플링할 경우에는 [1 0] 필터 또는 [1 1] 필터 또는 [0 1] 필터를 이용한다. [1 0] 필터는 상측 2개의 참조 화소들 중 좌측의 값, 좌측 2개의 참조 화소들 중 아래쪽 값을 선택하는 것을 의미한다. [0 1] 필터는 상측 2개의 참조 화소들 중 우측의 값, 좌측 2개의 참조 화소들 중 위쪽 값을 선택하는 것을 의미한다. [1 1] 필터는 2개의 참조 화소들의 평균값을 의미한다. 평균값은 반올림 또는 버림할 수 있다. 또한, [1 2 1] 필터를 사용할수도 있다. 이 필터는 제3 실시예의 방식과 동일하다.
이 경우, 휘도 블록의 좌측 참조화소들은 8:1 서브샘플링되고, 상측 참조화소들은 4:1 서브 샘플링된다. 좌측 참조화소들은 휘도 블록에 인접한 2번째 라인의 화소들만을 이용하여 서브 샘블링된 참조 화소들을 생성할 수 있다. 이 때 [1 1 1 1] 필터, [1 3 3 1] 필터, [0 1 1 0] 필터 등이 사용될 수 있다. 이때 첫번째 라인의 참조화소들은 이용하지 않는다. 상측 참조화소들은 휘도 블록에 인접한 1번째 라인의 화소들만을 이용하므로 [1 1 1 1] 필터, [1 3 3 1] 필터, [0 1 1 0] 필터 등이 사용될 수 있다.
색차 블록의 참조 화소들을 4:1로 서브 샘블링할 경우에는 [1 1 1 1] 필터, [1 3 3 1] 필터, [0 1 1 0] 필터 들 중 하나를 이용할 수 있다.
이 경우, 휘도 블록의 좌측 참조화소들은 16:1 서브샘플링되고, 상측 참조화소들은 8:1 서브 샘플링된다. 좌측 참조화소들은 휘도 블록에 인접한 2번째 라인의 화소들만을 이용하여 서브 샘블링된 참조 화소들을 생성할 수 있다. 이 때 평균값 또는 화소들간의 가중평균을 이용하여 서브 샘플링한다. [1 0 1 0 1 0 1 0] 필터, [0 1 0 1 0 1 0 1] 필터, [1 1 1 1 1 1 1] 필터 중 하나가 사용될 수 있다. 또는 [1 1 1 1 0 0 0 0], [0 0 0 0 1 1 1 1] 필터가 사용될 수도 있다.
상측 참조화소들은 휘도 블록에 인접한 1번째 라인의 화소들만을 이용한다. 상기한좌측 참조화소의 서브샘플링 필터 중 하나가 사용될 수 있다.
한편, 휘도 블록의 좌측 및 상측 참조화소들 모두 평균값으로 서브샘블링을 수행할 수 있다. 이때 좌측은 2:1 서브샘플링의 경우 8개의 평균값이 서브 샘플링된 값일수 있다.
한편, 휘도 블록(색차 블록)이 픽쳐 또는 슬라이스 경계에 상측으로 인접하여 상측의 참조 화소들이 존재하지 않는 경우에는 좌측의 참조 화소들만을 이용하여 a와 b의 값을 결정하는 것이 바람직하다. 마찬가지로 휘도 블록(색차 블록)이 픽쳐 또는 슬라이스 경계에 좌측으로 인접하여 좌측의 참조 화소들이 존재하지 않는 경우에는 상측의 참조 화소들만을 이용하여 a와 b의 값을 결정하는 것이 바람직하다. 이 경우, 상기한 색차 화소의 서브 샘블링 과정은 달라질 수 있다. 예를 들어, 2:1 서브샘플링은 하지 않고, 4:1 서브샘플링을 2:1 서브 샘플링으로 바꾸어 구현할 수도 있다.
다음으로, 휘도블록을 서브샘블링한다. 그리고, a와 b 및 아래의 수식을 이용하여 색차 블록의 예측 블록을 생성한다. 즉, 휘도 블록의 복원화소들을 서브샘플링하여 색차 블록의 예측 화소를 생성한다.
Figure pat00023
휘도 블록의 복원화소들의 서브샘플링 방식은 3x2 필터를 사용할 수 있다. 도 15를 참조하면, 6개의 휘도 복원화소를 이용하여 색차 화소 위치에 대응하는 서브샘블링된 화소를 생성한다. 필터는 다음과 같다.
Figure pat00024
or
Figure pat00025

또는 휘도 블록의 복원화소들의 서브샘플링 방식은 2x2 필터를 사용할 수 있다. 4개의 휘도 복원화소를 이용하여 색차 화소 위치에 대응하는 서브샘블링된 화소를 생성한다. 상기 4개의 휘도 복원화소의 위치는 4:4:4 포맷의 색차 화소의 위치의 동일하다. 필터는 다음과 같다.
Figure pat00026
or
Figure pat00027

한편, 상기 인트라 예측 블록을 생성하는 단위는 색차 블록의 변환 블록의 크기 단위로 수행될 수 있다. 즉, 색차 블록의 인트라 예측 모드는 색차 블록 단위로 수행되지만, 인트라 예측을 수행하는 단위는 변환 블록의 크기 단위로 수행될 수 있다. 따라서, 색차 블록은 그대로 변환 블록으로 사용될 수도 있고, 복수개의 변환 블록으로 분할될 수도 있다.
복수개의 변환블록으로 분할될 경우에는 하나의 인트라 예측 모드를 이용하되, 변환 블록마다 예측 블록을 생성한다.
도 16은 본 발명에 따른 동영상 부호화 장치를 나타내는 블록도이다.
도 16을 참조하면, 본 발명에 따른 동영상 부호화 장치(100)는 픽쳐 분할부(110), 변환부(120), 양자화부(130), 스캐닝부(131), 엔트로피 부호화부(140), 인트라 예측부(150), 인터 예측부(160), 역양자화부(135), 역변환부(125), 후처리부(170), 픽쳐 저장부(180), 감산부(190) 및 가산부(195)를 포함한다.
픽쳐 분할부(110)는 입력되는 비디오 신호를 분석하여 픽쳐를 가장 큰 코딩 유닛마다 소정 크기의 코딩 유닛으로 분할하여 예측 모드를 결정하고, 상기 코딩 유닛별로 색차 블록의 크기를 결정한다. 그리고, 픽쳐 분할부(110)는 부호화할 색차 블록을 예측 모드에 따라 인트라 예측부(150) 또는 인터 예측부(160)로 보낸다. 또한, 픽쳐 분할부(110)는 부호화할 색차 블록을 감산부(190)로 보낸다.
변환부(120)는 입력된 색차 블록의 원본 블록과 인트라 예측부(150) 또는 인터 예측부(160)에서 생성된 예측 블록의 잔차신호인 잔차 블록을 변환한다. 상기 잔차 블록은 코딩 유닛으로 구성된다. 코딩 유닛으로 구성된 잔차 블록은 최적의 변환 단위로 분할되어 변환된다. 예측 모드(intra or inter)에 따라 서로 다른 변환 매트릭스가 결정될 수 있다. 또한, 인트라 예측의 잔차 신호는 인트라 예측 모드에 따라 방향성을 가지므로 인트라 예측 모드에 따라 적응적으로 변환 매트릭스가 결정될 수 있다. 변환 단위는 2개(수평, 수직)의 1차원 변환 매트릭스에 의해 변환될 수 있다. 예를 들어, 인터 예측의 경우에는 미리 결정된 1개의 변환 매트릭스가 결정된다. 반면에, 인트라 예측의 경우, 인트라 예측 모드가 수평인 경우에는 잔차 블록이 수직방향으로의 방향성을 가질 확률이 높아지므로, 수직방향으로는 DCT 기반의 정수 매트릭스를 적용하고, 수평방향으로는 DST 기반 또는 KLT 기반의 정수 매트릭스를 적용한다. 인트라 예측 모드가 수직인 경우에는 수직방향으로는 DST 기반 또는 KLT 기반의 정수 매트릭스를, 수평 방향으로는 DCT 기반의 정수 매트릭스를 적용한다. DC 모드의 경우에는 양방향 모두 DCT 기반 정수 매트릭스를 적용한다. 또한, 인트라 예측의 경우, 변환 단위의 크기에 의존하여 변환 매트릭스가 적응적으로 결정될 수도 있다.
양자화부(130)는 상기 변환 매트릭스에 의해 변환된 잔차 블록의 계수들을 양자화하기 위한 양자화 스텝 사이즈를 코딩 유닛별로 결정한다. 양자화 스텝 사이즈는 미리 정해진 크기 이상의 부호화 단위별로 결정된다. 상기 미리 정해진 크기는 8x8 또는 16x16일 수 있다. 그리고, 결정된 양자화 스텝 사이즈 및 예측 모드에 따라 결정되는 양자화 매트릭스를 이용하여 상기 변환 블록의 계수들을 양자화한다. 양자화부(130)는 현재 부호화 단위의 양자화 스텝 사이즈 예측자로서 현재 부호화 단위에 인접한 부호화 단위의 양자화 스텝 사이즈를 이용한다.
양자화부(130)는 현재 부호화 단위의 좌측 부호화 단위, 상측 부호화 단위, 좌상측 부호화 단위 순서로 검색하여 1개 또는 2개의 유효한 양자화 스텝 사이즈를 이용하여 현재 부호화 단위의 양자화 스텝 사이즈 예측자를 생성한다. 예를 들어, 상기 순서로 검색된 유효한 첫번째 양자화 스텝 사이즈를 양자화 스텝 사이즈 예측자로 결정할 수 있다. 또한, 상기 순서로 검색된 유효한 2개의 양자화 스텝 사이즈의 평균값을 양자화 스텝 사이즈 예측자로 결정할 수도 있고, 1개만이 유효한 경우에는 이를 양자화 스텝 사이즈 예측자로 결정할 수 있다. 상기 양자화 스텝 사이즈 예측자가 결정되면, 현재 부호화 단위의 양자화 스텝 사이즈와 상기 양자화 스텝 사이즈 예측자 사이의 차분값을 엔트로피 부호화부(140)로 전송한다.
한편, 현재 코딩 유닛의 좌측 코딩 유닛, 상측 코딩 유닛, 좌상측 코딩 유닛 모두가 존재하지 않을 가능성이 있다. 반면에 최대 코딩 유닛 내의 부호화 순서 상으로 이전에 존재하는 코딩 유닛이 존재할 수 있다. 따라서, 현재 코딩 유닛에 인접한 코딩 유닛들과 상기 최대 코딩 유닛 내에서는 부호화 순서상 바로 이전의 코딩 유닛이 후보자가 될 수 있다. 이 경우, 1) 현재 코딩 유닛의 좌측 코딩 유닛, 2) 현재 코딩 유닛의 상측 코딩 유닛, 3) 현재 코딩 유닛의 좌상측 코딩 유닛, 4) 부호화 순서상 바로 이전의 코딩 유닛 순서로 우선순위를 둘 수 있다. 상기 순서는 바뀔 수 있고, 상기 좌상측 코딩 유닛은 생략될 수도 있다.
상기 양자화된 변환 블록은 역양자화부(135)와 스캐닝부(131)로 제공된다.
스캐닝부(131)는 양자화된 변환 블록의 계수들을 스캐닝하여 1차원의 양자화 계수들로 변환한다. 양자화 후의 변환 블록의 계수 분포가 인트라 예측 모드에 의존적일 수 있으므로, 스캐닝 방식은 인트라 예측 모드에 따라 결정된다. 또한, 계수 스캐닝 방식은 변환 단위의 크기에 따라 달리 결정될 수도 있다. 상기 스캔 패턴은 방향성 인트라 예측 모드에 따라 달라질 수 있다. 양자화 계수들의 스캔순서는 역방향으로 스캔한다.
상기 양자화된 계수들이 복수개의 서브셋으로 분할된 경우에는 각각의 서브셋 내의 양자화 계수들에 동일한 스캔패턴을 적용한다. 상기 복수개의 서브셋은 하나의 메인 서브셋과 적어도 하나 이상의 잔여 서브셋으로 구성된다. 메인 서브셋은 DC 계수를 포함하는 좌상측에 위치하고, 상기 잔여 서브셋은 메인 서브셋 이외의 영역을 커버한다.
서브셋 간의 스캔패턴은 지그재그 스캔을 적용한다. 스캔 패턴은 메인 서브셋으로부터 순방향으로 잔여 서브셋들로 스캔하는 것이 바람직하나, 그 역방향도 가능하다. 또한, 서브셋 내의 양자화된 계수들의 스캔패턴과 동일하게 서브셋 간의 스캔패턴을 설정할 수도 있다. 이 경우, 서브셋 간의 스캔패턴이 인트라 예측 모드에 따라 결정된다. 한편, 부호기는 상기 변환 유닛내의 0이 아닌 마지막 양자화 계수의 위치를 나타낼 수 있는 정보를 복호기로 전송한다. 각 서브셋 내의 0이 아닌 마지막 양자화 계수의 위치를 나타낼 수 있는 정보도 복호기로 전송한다. 상기 정보는 각각의 서브셋 내의 0이 아닌 마지막 양자화 계수의 위치를 나타내는 정보일 수 있다.
역양자화(135)는 상기 양자화된 양자화 계수를 역양자화한다. 역변환부(125)는 역양자화된 변환 계수를 공간 영역의 잔차 블록으로 복원한다. 가산기는 상기 역변환부에 의해 복원된 잔차블록과 인트라 예측부(150) 또는 인터 예측부(160)로부터의 예측 블록을 합쳐서 복원 블록을 생성한다.
후처리부(170)는 복원된 픽쳐에 발생하는 블록킹 효과의 제거하기 위한 디블록킹 필터링 과정, 화소 단위로 원본 영상과의 차이값을 보완하기 위한 적응적 오프셋 적용 과정 및 코딩 유닛으로 원본 영상과의 차이값을 보완하기 위한 적응적 루프 필터링 과정을 수행한다.
디블록킹 필터링 과정은 미리 정해진 크기 이상의 크기를 갖는 색차 블록 및 변환 단위의 경계에 적용하는 것이 바람직하다. 상기 크기는 8x8일 수 있다. 상기 디블록킹 필터링 과정은 필터링할 경계(boundary)를 결정하는 단계, 상기 경계에 적용할 경계 필터링 강도(bounary filtering strength)를 결정하는 단계, 디블록킹 필터의 적용 여부를 결정하는 단계, 상기 디블록킹 필터를 적용할 것으로 결정된 경우, 상기 경계에 적용할 필터를 선택하는 단계를 포함한다.
상기 디블록킹 필터의 적용 여부는 i) 상기 경계 필터링 강도가 0보다 큰지 여부 및 ii) 상기 필터링할 경계에 인접한 2개의 블록(P 블록, Q블록) 경계 부분에서의 화소값들이 변화 정도를 나타내는 값이 양자화 파라미터에 의해 결정되는 제1 기준값보다 작은지 여부에 의해 결정된다.
상기 필터는 적어도 2개 이상인 것이 바람직하다. 블록 경계에 위치한 2개의 화소들간의 차이값의 절대값이 제2 기준값보다 크거나 같은 경우에는 상대적으로 약한 필터링을 수행하는 필터를 선택한다. 상기 제2 기준값은 상기 양자화 파라미터 및 상기 경계 필터링 강도에 의해 결정된다.
적응적 오프셋 적용 과정은 디블록킹 필터가 적용된 영상내의 화소와 원본 화소간의 차이값(distortion)을 감소시키기 위한 것이다. 픽쳐 또는 슬라이스 단위로 상기 적응적 오프셋 적용 과정을 수행할지 여부를 결정할 수 있다. 픽쳐 또는 슬라이스는 복수개의 오프셋 영역들로 분할될 수 있고, 각 오프셋 영역별로 오프셋 타입이 결정될 수 있다. 오프셋 타입은 미리 정해진 개수(예를 들어, 4개)의 에지 오프셋 타입과 2개의 밴드 오프셋 타입을 포함할 수 있다. 오프셋 타입이 에지 오프셋 타입일 경우에는 각 화소가 속하는 에지 타입을 결정하여, 이에 대응하는 오프셋을 적용한다. 상기 에지 타입은 현재 화소와 인접하는 2개의 화소값의 분포를 기준으로 결정한다.
적응적 루프 필터링 과정은 디블록킹 필터링 과정 또는 적응적 오프셋 적용 과정을 거친 복원된 영상과 원본 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 적응적 루프 필터링은 상기 결정된 ALF는 4x4 크기 또는 8x8 크기의 블록에 포함된 화소 전체에 적용될 수 있다. 적응적 루프 필터의 적용 여부는 코딩 유닛별로 결정될 수 있다. 각 코딩 유닛에 따라 적용될 루프 필터의 크기 및 계수는 달라질 수 있다. 코딩 유닛별 상기 적응적 루프 필터의 적용 여부를 나타내는 정보는 각 슬라이스 헤더에 포함될 수 있다. 색차 신호의 경우에는, 픽쳐 단위로 적응적 루프 필터의 적용 여부를 결정할 수 있다. 루프 필터의 형태도 휘도와 달리 직사각형 형태를 가질 수 있다.
적응적 루프 필터링은 슬라이스별로 적용 여부를 결정할 수 있다. 따라서, 현재 슬라이스에 적응적 루프 필터링이 적용되는지 여부를 나타내는 정보는 슬라이스 헤더 또는 픽쳐 헤더에 포함된다. 현재 슬라이스에 적응적 루프 필터링이 적용됨을 나타내면, 슬라이스 헤더 또는 픽쳐 헤더는 추가적으로 적응적 루프 필터링 과정에 사용되는 휘도 성분의 수평 및/또는 수직 방향의 필터 길이를 나타내는 정보를 포함한다.
슬라이스 헤더 또는 픽쳐 헤더는 필터 세트의 수를 나타내는 정보를 포함할 수 있다. 이때 필터 세트의 수가 2 이상이면, 필터 계수들이 예측 방법을 사용하여 부호화될 수 있다. 따라서, 슬라이스 헤더 또는 픽쳐 헤더는 필터 계수들이 예측 방법으로 부호화되는지 여부를 나타내는 정보를 포함할 수 있으며, 예측 방법이 사용되는 경우에는 예측된 필터 계수를 포함한다.
한편, 휘도뿐만 아니라, 색차 성분들도 적응적으로 필터링될 수 있다. 따라서, 색차 성분 각각이 필터링되는지 여부를 나타내는 정보를 슬라이스 헤더 또는 픽쳐 헤더가 포함할 수 있다. 이 경우, 비트수를 줄이기 위해 Cr과 Cb에 대한 필터링 여부를 나타내는 정보를 조인트 코딩(즉, 다중화 코딩)할 수 있다. 이때, 색차 성분들의 경우에는 복잡도 감소를 위해 Cr과 Cb를 모두 필터링하지 않는 경우가 가장 빈번할 가능성이 높으므로, Cr과 Cb를 모두 필터링하지 않는 경우에 가장 작은 인덱스를 할당하여 엔트로피 부호화를 수행한다. 그리고, Cr 및 Cb를 모두 필터링하는 경우에 가장 큰 인덱스를 할당하여 엔트로피 부호화를 수행한다.
픽쳐 저장부(180)는 후처리된 영상 데이터를 후처리부(160)로부터 입력 받아 픽쳐(picture) 단위로 영상을 복원하여 저장한다. 픽쳐는 프레임 단위의 영상이거나 필드 단위의 영상일 수 있다. 픽쳐 저장부(180)는 다수의 픽쳐를 저장할 수 있는 버퍼(도시되지 않음)를 구비한다.
인터 예측부(160)는 상기 픽쳐 저장부(180)에 저장된 적어도 하나 이상의 참조 픽쳐를 이용하여 움직임 추정을 수행하고, 참조 픽쳐를 나타내는 참조 픽쳐 인덱스 및 움직임 벡터를 결정한다. 그리고, 결정된 참조 픽쳐 인덱스 및 움직임 벡터에 따라, 픽쳐 저장부(180)에 저장된 다수의 참조 픽쳐들 중 움직임 추정에 이용된 참조 픽쳐로부터, 부호화하고자 하는 색차 블록에 대응하는 예측 블록을 추출하여 출력한다.
인트라 예측부(150)는 현재 색차 블록이 포함되는 픽처 내부의 재구성된 화소값을 이용하여 인트라 예측 부호화를 수행한다. 인트라 예측부(150)는 예측 부호화할 현재 색차 블록을 입력 받아 현재 블록의 크기에 따라 미리 설정된 개수의 인트라 예측 모드 중에 하나를 선택하여 인트라 예측을 수행한다. 인트라 예측부는 인트라 예측 블록을 생성하기 위해 참조 화소를 적응적으로 필터링한다. 참조 화소가 이용 가능하지 않은 경우에는 이용 가능한 참조 화소들을 이용하여 참조 화소들을 생성할 수 있다.
엔트로피 부호화부(140)는 양자화부(130)에 의해 양자화된 양자화 계수, 인트라 예측부(140)로부터 수신된 인트라 예측 정보, 인터 예측부(150)로부터 수신된 움직임 정보 등를 엔트로피 부호화한다.
도17은 본 발명의 실시예에 따른 동영상 복호화 장치를 나타내는 블록도이다.
도 17을 참조하면, 본 발명에 따른 동영상 복호화 장치는, 엔트로피 복호부(210), 역스캐닝부(220), 역양자화부(230), 역변환부(240), 인트라 예측부(250), 인터 예측부(260), 후처리부(270), 픽쳐 저장부(280), 가산부(290), 및 인트라/인터전환 스위치(295)를 구비한다.
엔트로피 복호부(210)는, 수신된 부호화 비트 스트림을 복호하여, 인트라 예측 정보, 인터 예측 정보, 양자화 계수 정보 등으로 분리한다. 엔트로피 복호부(210)는 복호된 인터 예측 정보를 인터 예측부(260)에 공급한다. 엔트로피 복호부(210)는 인트라 예측 정보를 복호하여 인트라 예측부(250)로 공급한다. 또한, 상기 엔트로피 복호화(210)는 상기 역양자화 계수 정보를 역스캔부(220)로 공급한다.
역스캐닝부(220)는 상기 양자화 계수 정보를 2차원 배열의 역양자화 블록으로 변환한다. 상기 변환을 위해 복수개의 역스캐닝 패턴 중에 하나를 선택한다. 계수 역스캐닝 패턴은 인트라 예측 모드에 따라 결정될 수 있다. 현재 변환 유닛의 크기가 미리 정해진 크기보다 큰 경우에는 미리 정해진 크기의 서브셋 단위로 역스캔하여 양자화된 변환 유닛을 구성한다. 그리고, 현재 변환 유닛의 크기가 미리 정해진 크기인 경우와 동일한 경우에는 변환 유닛 단위로 역스캔하여 양자화된 변환 유닛을 구성한다. 상기 양자화된 계수들이 복수개의 서브셋 단위로 역스캔될 경우에는 각각의 서브셋 내의 양자화 계수들에 동일한 역스캔패턴을 적용한다. 상기 복수개의 서브셋은 하나의 메인 서브셋과 적어도 하나 이상의 잔여 서브셋으로 구성된다. 메인 서브셋은 DC 계수를 포함하는 좌상측에 위치하고, 상기 잔여 서브셋은 메인 서브셋 이외의 영역을 커버한다.
서브셋 간의 역스캔패턴은 역지그재그 스캔을 적용한다. 스캔 패턴은 잔여 서브셋들로부터 메인 서브셋으로 역스캔하는 것이 바람직하나, 그 역방향도 가능하다. 또한, 서브셋 내의 양자화된 계수들의 역스캔패턴과 동일하게 서브셋 간의 역스캔패턴을 설정할 수도 있다. 역스캐닝부(220)는 현재 변환 유닛 내의 0이 아닌 마지막 양자화 계수의 위치를 나타내는 정보를 이용하여 역스캐닝을 수행한다.
역양자화부(230)는 현재 코딩 유닛의 양자화 스텝 사이즈 예측자를 결정한다. 상기 예측자의 결정과정은 도 6의 양자화부(130)의 예측자 결정 과정과 동일하므로 생략한다. 역양자화부(230)는 결정된 양자화 스텝 사이즈 예측자와 수신한 잔차 양자화 스텝 사이즈를 더하여 현재 역양자화 블록에 적용된 양자화 스텝 사이즈를 얻는다. 역양자화부(230)는 양자화 스텝 사이즈가 적용된 양자화 매트릭스를 이용하여 역양자화 계수를 복원한다. 복원하고자 하는 현재 블록의 크기에 따라 서로 다른 양자화 매트릭스가 적용되며, 동일 크기의 블록에 대해서도 상기 현재 블록의 예측 모드 및 인트라 예측 모드 중 적어도 하나에 기초하여 양자화 매트릭스가 선택된다.
역변환부(240)는 역양자화 블록을 역변환하여 잔차 블록을 복원한다. 그리고, 상기 복원된 양자화 계수를 역변환하여 잔차 블록을 복원한다. 상기 역양자화 블록에 적용할 역변환 매트릭스는 예측 모드(인트라 또는 인터) 및 인트라 예측 모드에 따라 적응적으로 결정될 수 있다. 도 6의 변환부(120)에 적용된 변환 매트릭스의 역변환 매트릭스가 결정되므로 구체적인 기재는 생략한다.
가산부(290)는 역변환부(240)에 의해 복원된 잔차 블록과 인트라 예측부(250) 또는 인터 예측부(260)에 의해 생성되는 예측 블록을 가산함으로써, 영상 블록을 복원한다.
인트라 예측부(250)는 엔트로피 복호화부(210)로부터 수신된 인트라 예측 정보에 기초하여 현재 블록의 인트라 예측 모드를 복원한다. 그리고, 복원된 인트라 예측 모드에 따라 예측 블록을 생성한다.
인터 예측부(260)는 엔트로피 복호화부(210)로부터 수신된 인터 예측 정보에 기초하여 참조 픽쳐 인덱스와 움직임 벡터를 복원한다. 그리고, 상기 참조 픽쳐 인덱스와 움직임 벡터를 이용하여 현재 블록에 대한 예측 블록을 생성한다. 소수 정밀도의 움직임 보상이 적용될 경우에는 선택된 보간 필터를 적용하여 예측 블록을 생성한다.
후처리부(270)의 동작은 도 6의 후처리부(160)의 동작과 동일하므로 생략한다.
픽쳐 저장부(280)는 후처리부(270)에 의해 후처리된 복호 영상을 픽쳐 단위로 저장한다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (1)

  1. 휘도 블록이 SDIP인 경우의 색차 블록 생성 방법에 있어서,
    현재 블록의 색차 인트라 예측 모드를 복원하기 위해 휘도 블록의 luma 모드의 수에 따라 서로 다른 테이블을 이용하여 색차 블록의 인트라 예측 모드를 결정하는 단계;
    상기 복원된 색차 인트라 예측 모드에 따라 색차 예측 블록을 생성하는 단계:
    색차 잔차 블록을 복원하는 단계;
    상기 색차 예측 블록과 색차 잔차 블록을 이용하여 색차 블록을 생성하는 단계를 포함하는 것을 특징으로 하는 인트라 예측 복호화 방법.
KR1020110093125A 2011-09-15 2011-09-15 근거리 인트라 예측에서의 예측 블록 생성 방법 KR20130029695A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110093125A KR20130029695A (ko) 2011-09-15 2011-09-15 근거리 인트라 예측에서의 예측 블록 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110093125A KR20130029695A (ko) 2011-09-15 2011-09-15 근거리 인트라 예측에서의 예측 블록 생성 방법

Publications (1)

Publication Number Publication Date
KR20130029695A true KR20130029695A (ko) 2013-03-25

Family

ID=48179542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110093125A KR20130029695A (ko) 2011-09-15 2011-09-15 근거리 인트라 예측에서의 예측 블록 생성 방법

Country Status (1)

Country Link
KR (1) KR20130029695A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020017987A1 (en) * 2018-06-29 2020-01-23 Huawei Technologies Co., Ltd Intra-prediction apparatus, encoding apparatus, decoding apparatus and methods

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020017987A1 (en) * 2018-06-29 2020-01-23 Huawei Technologies Co., Ltd Intra-prediction apparatus, encoding apparatus, decoding apparatus and methods
KR20210021080A (ko) * 2018-06-29 2021-02-24 후아웨이 테크놀러지 컴퍼니 리미티드 인트라 예측 장치, 인코딩 장치, 디코딩 장치 및 방법들
US11483554B2 (en) 2018-06-29 2022-10-25 Huawei Technologies Co., Ltd. Intra-prediction apparatus, encoding apparatus, decoding apparatus and methods for non-square video coding blocks

Similar Documents

Publication Publication Date Title
USRE48564E1 (en) Image decoding apparatus adaptively determining a scan pattern according to an intra prediction mode
KR101854489B1 (ko) 인트라 예측 모드 복호화 방법
KR20210131951A (ko) 영상 부호화 장치
KR20210145091A (ko) 영상 부호화 장치
KR20170034799A (ko) 영상 복호화 장치
KR20130029695A (ko) 근거리 인트라 예측에서의 예측 블록 생성 방법
KR20130029694A (ko) 인트라 모드에서의 색차 예측 블록 생성 방법
KR20170034354A (ko) 영상 복호화 장치
KR20170034355A (ko) 영상 복호화 장치
KR20120058384A (ko) 인트라 프리딕션 방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination