KR20240047943A - 동영상 인코딩 및 디코딩 장치와 방법 - Google Patents

동영상 인코딩 및 디코딩 장치와 방법 Download PDF

Info

Publication number
KR20240047943A
KR20240047943A KR1020230132408A KR20230132408A KR20240047943A KR 20240047943 A KR20240047943 A KR 20240047943A KR 1020230132408 A KR1020230132408 A KR 1020230132408A KR 20230132408 A KR20230132408 A KR 20230132408A KR 20240047943 A KR20240047943 A KR 20240047943A
Authority
KR
South Korea
Prior art keywords
block
transform
transformation
kernel
order
Prior art date
Application number
KR1020230132408A
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 세종대학교산학협력단
Publication of KR20240047943A publication Critical patent/KR20240047943A/ko

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/124Quantisation
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/18Methods 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 set of transform coefficients
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

본 개시는, 비트스트림으로부터 획득한 양자화 블록을 역양자화하여 2차 변환 블록을 획득하고, 상기 2차 변환 블록에 대한 2차 역변환의 수행 여부를 결정하고, 상기 2차 역변환을 수행하는 것으로 결정된 경우, 상기 2차 변환 블록에 대한 상기 2차 역변환을 수행하여 1차 변환 블록을 획득하며, 상기 1차 변환 블록에 대한 1차 역변환을 수행할 수 있다.

Description

동영상 인코딩 및 디코딩 장치와 방법{VIDEO ENCODING AND DECODING DEVICE AND METHOD}
본 발명은 동영상 인코딩 및 디코딩 장치와 방법에 관한 것으로, 보다 상세하게는 1차 또는 2차 중 적어도 하나의 변환기(transform)의 커널(kernel)을 유도하고, 유도된 변환기의 커널을 해당 변환기에 적용하는 동영상 인코딩 및 디코딩 장치와 방법에 관한 것이다.
최근, 인터넷에서는 동영상과 같은 멀티미디어 데이터의 수요가 급격히 증가하고 있다. 하지만 채널(Channel)의 대역폭(Bandwidth)이 발전하는 속도는 급격히 증가하고 있는 멀티미디어 데이터의 양을 따라가기 힘든 상황이다.
본 발명은 동영상 신호의 부호화 효율을 향상시키고자 함에 있다.
본 발명의 부/복호화 방법 및 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체는, 비트스트림으로부터 획득한 양자화 블록을 역양자화하여 2차 변환 블록을 획득하는 단계, 상기 2차 변환 블록에 대한 2차 역변환의 수행 여부를 결정하는 단계, 상기 2차 역변환을 수행하는 것으로 결정된 경우, 상기 2차 변환 블록에 대한 상기 2차 역변환을 수행하여 1차 변환 블록을 획득하는 단계, 상기 1차 변환 블록에 대한 1차 역변환을 수행하는 단계를 포함할 수 있다.
본 발명의 부/복호화 방법 및 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서, 상기 2차 역변환의 변환 커널 및 상기 1차 역변환의 변환 커널은 상기 비트스트림으로부터 시그널링되는 인덱스에 의해 특정될 수 있다.
본 발명의 부/복호화 방법 및 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서, 상기 인덱스의 최대값 및 구성은, 적용되는 변환 커널이 1차원 변환 커널인지 2차원 변환 커널인지 여부에 따라 상이할 수 있다.
본 발명의 부/복호화 방법 및 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서, 상기 2차 역변환의 변환 커널 및 상기 1차 역변환의 변환 커널은 KLT(Karhunen Loeve Transform)를 포함할 수 있다.
본 발명의 부/복호화 방법 및 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서, 상기 2차 역변환 또는 상기 1차 역변환 중 적어도 하나의 출력 블록은 입력 블록의 크기보다 작은 크기를 가질 수 있다.
본 발명의 부/복호화 방법 및 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서, 상기 2차 변환의 수행 여부는, 변환 커널의 종류, 변환 계수의 개수 또는 블록의 크기 중 적어도 하나를 기초로 결정될 수 있다.
본 발명의 부/복호화 방법 및 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체는, 비트스트림으로부터 획득한 양자화 블록을 역양자화하여 1차 변환 블록을 획득하는 단계, 상기 1차 변환 블록에 대한 1차 역변환의 변환 커널을 결정하는 단계, 상기 결정된 1차 역변환의 변환 커널을 기초로, 상기 1차 변환 블록에 대한 1차 역변환을 수행하여 잔차 블록을 획득하는 단계를 포함할 수 있다.
본 발명의 부/복호화 방법 및 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체는, 현재 블록의 화면 내 예측 모드를 결정하는 단계, 상기 화면 내 예측 모드에 이용되는 참조 화소를 보간하는 단계를 포함하되, 상기 참조 화소는 상기 현재 블록에 주변에 인접한 참조 블록에 포함되고, 상기 보간에 적용되는 보간 필터는 8-tap 필터를 포함하는 것을 특징으로 할 수 있다.
본 발명에 따른 동영상 인코딩 및 디코딩 장치와 방법은 적합한 커널을 변환기에 적용하여 동영상 신호의 부호화 효율을 향상시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치(200)를 나타낸 블록도이다.
도 3은 변환 커널 유도를 위한 오프라인 트레이닝(off-line training) 과정을 도시한 도면이다.
도 4는 군집화 및 대표값을 획득하여 얻은 대표 블록을 도시한다.
도 5는 1D(1 dimension) 변환 커널을 적용하는 실시예를 도시한다.
도 6은 2D 변환 커널을 적용하는 실시예를 도시한다.
도 7은 부호화기에서의 변환 과정을 도시한 도면이다.
도 8은 복호화기에서의 역변환 과정을 도시한 도면이다.
도 9는 차원 감소(dimension reduction)를 활용하여 1D 변환 커널을 적용하는 제1 실시예를 도시한 도면이다.
도 10은 dimension reduction을 활용하여 1D 변환 커널을 적용하는 제2 실시예를 도시한 도면이다.
도 11은 dimension reduction을 활용하여 1D 변환 커널을 적용하는 제3 실시예를 도시한 도면이다.
도 12은 dimension reduction 없이 데이터 전체를 변환한 경우로 1D 변환 커널을 적용하는 제4 실시예를 도시한 도면이다.
도 13은 dimension reduction을 활용하여 2D 변환 커널을 적용하는 제1 실시예를 도시한 도면이다.
도 14는 dimension reduction을 활용하여 2D 변환 커널을 적용하는 제2 실시예를 도시한 도면이다.
도 15는 dimension reduction을 활용하여 2D 변환 커널을 적용하는 제2 실시예를 도시한 도면이다.
도 16는 dimension reduction 없이 2D 변환 커널을 적용하는 제3 실시예를 도시한 도면이다.
도 17은 벡터들의 2D 블록으로 재배치하는 예를 도시한다.
도 18은 재배치된 블록의 계수들을 스캐닝하는 실시예를 도시한다.
도 19는 1차 변환에 대한 1D 변환 커널이 시그널링되는 실시예를 도시한 도면이다.
도 20는 1차 변환에 대한 2D 변환 커널이 시그널링되는 실시예를 도시한 도면이다.
도 21는 2차 변환에 대한 1D 변환 커널이 시그널링되는 실시예를 도시한 도면이다.
도 22는 2차 변환에 대한 2D 변환 커널이 시그널링되는 실시예를 도시한 도면이다.
도 23은 부호화기에서 1차 변환만 적용되는 예를 도시한다.
도 24는 복호화기에서 1차 역변환만 적용되는 예를 도시한다.
도 25는 MN(=M×N)개의 column 중 일부 column만 사용하는 예를 설명하기 위한 도면이다.
도 26은 signal-dependent transform kernel size 및 그에 대응하는 inverse kernel을 도시하는 도면이다.
도 27은 1차원 데이터의 스캐닝을 나타내는 도면이다.
도 28은 8-tap 계수를 획득하기 위한 h[n], y[n], z[n]을 나타내는 도면이다.
도 29은 8-tap SIF 계수를 유도하는 데 사용되는 정수 기준 샘플을 도시한다.
도 30는 화면 내 예측 모드의 방향 및 각도를 도시한 도면이다.
도 31는 다양한 비디오 해상도와 각 nTbS에 대한 참조 샘플의 평균 상관 값을 나타내는 도면이다.
도 32는 Frequency 정보를 이용하여 보간 필터를 선택하는 방법의 예를 도시한다.
도 33는 8-tap DCT 보간 필터 계수들에 대한 실시예들을 도시한다.
도 34는 8-tap smoothing 보간 필터 계수들에 대한 실시예를 도시한다.
도 35는 4-tap DCT-IF, 4-tap SIF, 8-tap DCT-IF 및 8-tap SIF의 16/32픽셀 위치에서 크기 응답을 도시한다.
도 36은 nTbS에 따른 각 임계값과 관련된 도면을 도시한다.
도 37은 각 클래스에 대한 CTC 비디오 시퀀스의 시퀀스 이름, 화면 크기, 화면 속도 및 비트 깊이를 도시한다.
도 38은 8-tap/4-tap 보간 필터의 효율을 테스트하기 위해 보간 필터 선택 방법과 선택된 방법에 따라 적용된 보간 필터를 도시한다.
도 39의 Table IX 및 Table X는 A, B, C 및 D 방법의 시뮬레이션 결과를 나타낸다.
도 40의 Table XI는 모든 테스트 시퀀스에 대해 제안된 방법에서 VVC 앵커에서 4탭 DCT-IF를 적용하고 high_freq_ratio를 기반으로 8탭 DCT-IF를 적용하는 CU의 비율을 도시한다.
도 41은 제안된 필터링 방법에 대한 실험 결과를 도시한다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예들을 상세하게 설명한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명은 비디오 압축/복원 표준시 사용하는 신호 독립적 (signalindependent) DCT-2 (Discrete Cosine Transform-2), DCT-8 (Discrete Cosine Transform-8), DST-7 (Discrete Sine Transform-7) 등과 같은 separable 수평, 수직 1차원 트랜스폼을 사용하는 경우와 다르게, 각 2차원 블록 (여기서 블록은 잔차(residual) 신호 블록 또는 트랜스폼 된 블록을 의미) 의 covariance (공분산) 및 correlation(상관관계)을 이용한 신호 의존적인 (signal-dependent) KL (Karhunen-Loeve) 또는 SVD (Singular Value Decomposition) 트랜스폼을 사용하는 경우 트랜스폼 후 데이터를 얻는 방법 및 이에 따른 transform 계수의 재배치 와 scanning 방법을 제안한다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 나타낸 블록도이다.
도 1을 참조하면, 영상 부호화 장치(100)는 영상 분할부(101), 화면 내 예측부(102), 화면 간 예측부(103), 감산부(104), 변환부(105), 양자화부(106), 엔트로피 부호화부(107), 역양자화부(108), 역변환부(109), 증산부(110), 필터부(111) 및 메모리(112)를 포함할 수 있다.
도 1에 나타난 각 구성부들은 영상 부호화 장치에서 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시한 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수개의 구성부로 나뉘어져 기능을 수행할 수 있고 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
영상 분할부(100)는 입력된 영상을 적어도 하나의 블록으로 분할할 수 있다. 이 때, 입력된 영상은 픽쳐, 슬라이스, 타일, 세그먼트 등 다양한 형태와 크기를 가질 수 있다. 블록은 부호화 단위(CU), 예측 단위(PU) 또는 변환 단위(TU)를 의미할 수 있다. 상기 분할은 쿼드 트리(Quadtree) 또는 바이너리 트리(Biniary tree) 중 적어도 하나에 기반하여 수행될 수 있다. 쿼드 트리는 상위 블록을 너비와 높이가 상위 블록의 절반인 하위 블록으로 사분할하는 방식이다. 바이너리 트리는 상위 블록을 너비 또는 높이 중 어느 하나가 상위 블록의 절반인 하위 블록으로 이분할하는 방식이다. 전술한 바이너리 트리 기반의 분할을 통해, 블록은 정방형뿐만 아니라 비정방형의 형태를 가질 수 있다.
예측부(102, 103)는 인터 예측을 수행하는 화면 간 예측부(103)와 인트라 예측을 수행하는 화면 내 예측부(102)를 포함할 수 있다. 예측 단위에 대해 인터 예측을 사용할 것인지 또는 인트라 예측을 수행할 것인지를 결정하고, 각 예측 방법에 따른 구체적인 정보(예컨대, 인트라 예측 모드, 모션 벡터, 참조 픽쳐 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 다를 수 있다. 예컨대, 예측의 방법과 예측 모드 등은 예측 단위로 결정되고, 예측의 수행은 변환 단위로 수행될 수도 있다.
생성된 예측 블록과 원본 블록 사이의 잔차값(잔차 블록)은 변환부(105)로 입력될 수 있다. 또한, 예측을 위해 사용한 예측 모드 정보, 모션 벡터 정보 등은 잔차값과 함께 엔트로피 부호화부(107)에서 부호화되어 복호화기에 전달될 수 있다. 특정한 부호화 모드를 사용할 경우, 예측부(102, 103)를 통해 예측 블록을 생성하지 않고, 원본 블록을 그대로 부호화하여 복호화부에 전송하는 것도 가능하다.
화면 내 예측부(102)는 현재 픽쳐 내의 화소 정보인 현재 블록 주변의 참조 픽셀 정보를 기초로 예측 블록을 생성할 수 있다. 인트라 예측이 수행될 현재 블록의 주변 블록의 예측 모드가 인터 예측인 경우, 인터 예측이 적용된 주변 블록에 포함되는 참조 픽셀을, 인트라 예측이 적용된 주변의 다른 블록 내의 참조 픽셀로 대체될 수 있다. 즉, 참조 픽셀이 가용하지 않는 경우, 가용하지 않은 참조 픽셀 정보를, 가용한 참조 픽셀 중 적어도 하나의 참조 픽셀로 대체하여 사용할 수 있다.
인트라 예측에서 예측 모드는 참조 픽셀 정보를 예측 방향에 따라 사용하는 방향성 예측 모드와 예측을 수행시 방향성 정보를 사용하지 않는 비방향성 모드를 가질 수 있다. 휘도 정보를 예측하기 위한 모드와 색차 정보를 예측하기 위한 모드가 상이할 수 있고, 색차 정보를 예측하기 위해 휘도 정보를 예측하기 위해 사용된 인트라 예측 모드 정보 또는 예측된 휘도 신호 정보를 활용할 수 있다.
화면 내 예측부(102)는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 필터로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 적응적으로 결정할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
화면 내 예측부(102)의 참조 화소 보간부는 예측 단위의 인트라 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 분수 단위 위치의 참조 화소를 생성할 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
화면 간 예측부(103)은, 메모리(112)에 저장된 기 복원된 참조영상과 움직임 정보를 이용하여 예측 블록을 생성한다. 움직임 정보는 예컨대 움직임 벡터, 참조픽쳐 인덱스, 리스트 1 예측 플래그, 리스트 0 예측 플래그 등을 포함할 수 있다.
예측부(102, 103)에서 생성된 예측 단위와 예측 단위의 원본 블록 간의 차이값인 잔차값(Residual) 정보를 포함하는 잔차 블록이 생성될 수 있다. 생성된 잔차 블록은 변환부(130)로 입력되어 변환될 수 있다.
화면 간 예측부(103)는 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐의 정보를 기초로 예측 블록을 유도할 수 있다. 또한, 현재 픽쳐 내의 부호화가 완료된 일부 영역의 정보를 기초로, 현재 블록의 예측 블록을 유도할 수도 있다. 본 발명의 일 실시예에 따른 화면 간 예측부(103)는 참조 픽쳐 보간부, 움직임 예측부, 움직임 보상부를 포함할 수 있다.
참조 픽쳐 보간부에서는 메모리(112)로부터 참조 픽쳐 정보를 제공받고 참조 픽쳐에서 정수 화소 이하의 화소 정보를 생성할 수 있다. 휘도 화소의 경우, 1/4 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 8탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다. 색차 신호의 경우 1/8 화소 단위로 정수 화소 이하의 화소 정보를 생성하기 위해 필터 계수를 달리하는 DCT 기반의 4탭 보간 필터(DCT-based Interpolation Filter)가 사용될 수 있다.
움직임 예측부는 참조 픽쳐 보간부에 의해 보간된 참조 픽쳐를 기초로 모션 예측을 수행할 수 있다. 모션 벡터를 산출하기 위한 방법으로 FBMA(Full search-based Block Matching Algorithm), TSS(Three Step Search), NTS(New Three-Step Search Algorithm) 등 다양한 방법이 사용될 수 있다. 모션 벡터는 보간된 화소를 기초로 1/2 또는 1/4 화소 단위의 모션 벡터값을 가질 수 있다. 움직임 예측부에서는 움직임 예측 방법을 다르게 하여 현재 블록의 예측 블록을 예측할 수 있다. 모션 예측 방법으로 스킵(Skip) 방법, 머지(Merge) 방법, AMVP(Advanced Motion Vector Prediction) 방법 등 다양한 방법이 사용될 수 있다.
감산부(104)는, 현재 부호화하려는 블록과 화면 내 예측부(102) 혹은 화면 간 예측부(103)에서 생성된 예측 블록을 감산하여 현재 블록의 잔차 블록을 생성한다.
변환부(105)에서는 잔차 데이터를 포함한 잔차 블록을 DCT, DST, KLT(Karhunen Loeve Transform, KL), SVD 등과 같은 변환 방법을 사용하여 변환시킬 수 있다. 이때, 변환 방법(또는 변환 커널)은 잔차 블록을 생성하기 위해 사용된 예측 단위의 인트라 예측 모드에 기반하여 결정될 수 있다. 예를 들어, 인트라 예측 모드에 따라, 가로 방향으로는 DCT를 사용하고, 세로 방향으로는 DST를 사용할 수도 있다.
양자화부(106)는 변환부(105)에서 주파수 영역으로 변환된 값들을 양자화할 수 있다. 블록에 따라 또는 영상의 중요도에 따라 양자화 계수는 변할 수 있다. 양자화부(106)에서 산출된 값은 역양자화부(108)와 엔트로피 부호화부(107)에 제공될 수 있다.
상기 변환부(105) 및/또는 양자화부(106)는, 영상 부호화 장치(100)에 선택적으로 포함될 수 있다. 즉, 영상 부호화 장치(100)는, 잔차 블록의 잔차 데이터에 대해 변환 또는 양자화 중 적어도 하나를 수행하거나, 변환 및 양자화를 모두 스킵하여 잔차 블록을 부호화할 수 있다. 영상 부호화 장치(100)에서 변환 또는 양자화 중 어느 하나가 수행되지 않거나, 변환 및 양자화 모두 수행되지 않더라도, 엔트로피 부호화부(107)의 입력으로 들어가는 블록을 통상적으로 변환 블록이라 일컫는다. 엔트로피 부호화부(107)는 입력 데이터를 엔트로피 부호화한다. 엔트로피 부호화는 예를 들어, 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 부호화 방법을 사용할 수 있다.
엔트로피 부호화부(107)는 변환 블록의 계수 정보, 블록 타입 정보, 예측 모드 정보, 분할 단위 정보, 예측 단위 정보, 전송 단위 정보, 모션 벡터 정보, 참조 프레임 정보, 블록의 보간 정보, 필터링 정보 등 다양한 정보를 부호화할 수 있다. 변환 블록의 계수들은, 변환 블록 내 서브 블록 단위로, 부호화될 수 있다.
변환 블록의 계수의 부호화를 위하여, 스캔 순서에 따른 최초의 0이 아닌 계수의 위치를 나타내는 신택스 요소(syntax element)인 Last_sig, 서브블록 내에 0이 아닌 계수가 적어도 하나 이상 있는지를 알리는 플래그인 Coded_sub_blk_flag, 계수가 0이 아닌지 여부를 나타내는 플래그인 Sig_coeff_flag, 계수의 절대값 N보다 큰지를 나타내는 플래그인 Abs_greaterN_flag (여기서, N은 1, 2, 3, 4, 5 등의 자연수 일 수 있음), 계수의 부호를 나타내는 플래그인 Sign_flag 등의 다양한 신택스 요소들이 부호화될 수 있다. 상기 신택스 요소들만으로 부호화되지 않는 계수의 잔여값은 신택스 요소 remaining_coeff를 통해 부호화될 수 있다.
역양자화부(108) 및 역변환부(109)에서는 양자화부(106)에서 양자화된 값들을 역양자화하고 변환부(105)에서 변환된 값들을 역변환한다. 역양자화부(108) 및 역변환부(109)에서 생성된 잔차값(Residual)은 예측부(102, 103)에 포함된 움직임 추정부, 움직임 보상부 및 화면 내 예측부(102)를 통해서 예측된 예측 단위와 합쳐져 복원 블록(Reconstructed Block)을 생성할 수 있다. 증산기(110)는, 예측부(102, 103)에서 생성된 예측 블록과, 역 변환부(109)를 통해 생성된 잔차 블록을 증산하여 복원 블록을 생성한다.
필터부(111)는 디블록킹 필터, 오프셋 보정부, ALF(Adaptive Loop Filter)중 적어도 하나를 포함할 수 있다.
디블록킹 필터는 복원된 픽쳐에서 블록간의 경계로 인해 생긴 블록 왜곡을 제거할 수 있다. 디블록킹을 수행할지 여부를 판단하기 위해 블록에 포함된 몇 개의 열 또는 행에 포함된 픽셀을 기초로 현재 블록에 디블록킹 필터 적용할지 여부를 판단할 수 있다. 블록에 디블록킹 필터를 적용하는 경우 필요한 디블록킹 필터링 강도에 따라 강한 필터(Strong Filter) 또는 약한 필터(Weak Filter)를 적용할 수 있다. 또한 디블록킹 필터를 적용함에 있어 수직 필터링 및 수평 필터링 수행시 수평 방향 필터링 및 수직 방향 필터링이 병행 처리되도록 할 수 있다.
오프셋 보정부는 디블록킹을 수행한 영상에 대해 픽셀 단위로 원본 영상과의 오프셋을 보정할 수 있다. 특정 픽쳐에 대한 오프셋 보정을 수행하기 위해 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후 오프셋을 수행할 영역을 결정하고 해당 영역에 오프셋을 적용하는 방법 또는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법을 사용할 수 있다.
ALF(Adaptive Loop Filtering)는 필터링한 복원 영상과 원래의 영상을 비교한 값을 기초로 수행될 수 있다. 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행할 수 있다. ALF를 적용할지 여부에 관련된 정보는 휘도 신호는 부호화 단위(Coding Unit, CU) 별로 전송될 수 있고, 각각의 블록에 따라 적용될 ALF 필터의 모양 및 필터 계수는 달라질 수 있다. 또한, 적용 대상 블록의 특성에 상관없이 동일한 형태(고정된 형태)의 ALF 필터가 적용될 수도 있다.
메모리(112)는 필터부(111)를 통해 산출된 복원 블록 또는 픽쳐를 저장할 수 있고, 저장된 복원 블록 또는 픽쳐는 화면 간 예측을 수행할 때 예측부(102, 103)에 제공될 수 있다.
다음으로, 본 발명의 일 실시예에 따른 영상 복호화 장치를 도면을 참조하여 설명한다. 도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치(200)를 나타낸 블록도이다.
도 2를 참조하면, 영상 복호화 장치(200)는 엔트로피 복호화부(201), 역양자화부(202), 역변환부(203), 증산부(204), 필터부(205), 메모리(206) 및 예측부(207, 208)를 포함할 수 있다.
영상 부호화 장치(100)에 의해 생성된 영상 비트스트림이 영상 복호화 장치(200)로 입력되는 경우, 입력된 비트스트림은 영상 부호화 장치(100)에서 수행된 과정과 반대의 과정에 따라 복호될 수 있다.
엔트로피 복호화부(201)는 영상 부호화 장치(100)의 엔트로피 부호화부(107)에서 엔트로피 부호화를 수행한 것과 반대의 절차로 엔트로피 복호화를 수행할 수 있다. 예를 들어, 영상 부호화기에서 수행된 방법에 대응하여 지수 골롬(Exponential Golomb), CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding)과 같은 다양한 방법이 적용될 수 있다. 엔트로피 복호화부(201)는, 전술한 바와 같은 신택스 요소들, 즉 Last_sig, Coded_sub_blk_flag, Sig_coeff_flag, Abs_greaterN_flag, Sign_flag 및 remaining_coeff를 복호화할 수 있다. 또한, 엔트로피 복호화부(201)는 영상 부호화 장치(100)에서 수행된 인트라 예측 및 인터 예측에 관련된 정보를 복호화할 수 있다.
역 양자화부(202)는 양자화된 변환 블록에 역 양자화를 수행하여 변환 블록을 생성한다. 도 1의 역 양자화부(108)와 실질적으로 동일하게 동작한다.
역 변환부(203)은 변환 블록에 역 변환을 수행하여 잔차 블록을 생성한다. 이때, 변환 방법은 예측 방법(인터 또는 인트라 예측), 블록의 크기 및/또는 형태, 인트라 예측 모드 등에 관한 정보를 기반으로 결정될 수 있다. 도 1의 역 변환부(109)와 실질적으로 동일하게 동작한다.
증산부(204)는, 화면 내 예측부(207) 혹은 화면 간 예측부(208)에서 생성된 예측 블록과 역 변환부(203)를 통해 생성된 잔차 블록를 증산하여 복원 블록을 생성한다. 도 1의 증산부(110)과 실질적으로 동일하게 동작한다.
필터부(205)는, 복원된 블록들에 발생하는 여러 종류의 노이즈를 감소시킨다.
필터부(205)는 디블록킹 필터, 오프셋 보정부, ALF를 포함할 수 있다.
영상 부호화 장치(100)로부터 해당 블록 또는 픽쳐에 디블록킹 필터를 적용하였는지 여부에 대한 정보 및 디블록킹 필터를 적용하였을 경우, 강한 필터를 적용하였는지 또는 약한 필터를 적용하였는지에 대한 정보를 제공받을 수 있다. 영상 복호화 장치(200)의 디블록킹 필터에서는 영상 부호화 장치(100)에서 제공된 디블록킹 필터 관련 정보를 제공받고 영상 복호화 장치(200)에서 해당 블록에 대한 디블록킹 필터링을 수행할 수 있다.
오프셋 보정부는 부호화시 영상에 적용된 오프셋 보정의 종류 및 오프셋 값 정보 등을 기초로 복원된 영상에 오프셋 보정을 수행할 수 있다.
ALF는 영상 부호화 장치(100)로부터 제공된 ALF 적용 여부 정보, ALF 계수 정보 등을 기초로 부호화 단위에 적용될 수 있다. 이러한 ALF 정보는 특정한 파라미터 셋에 포함되어 제공될 수 있다. 필터부(205)는 도 1의 필터부(111)와 실질적으로 동일하게 동작한다.
메모리(206)는 증산부(204)에 의해 생성된 복원 블록을 저장한다. 도 1의 메모리(112)와 실질적으로 동일하게 동작한다.
예측부(207, 208)는 엔트로피 복호화부(201)에서 제공된 예측 블록 생성 관련 정보와 메모리(206)에서 제공된 이전에 복호화된 블록 또는 픽쳐 정보를 기초로 예측 블록을 생성할 수 있다.
예측부(207, 208)는 화면 내 예측부(207) 및 화면 간 예측부(208)를 포함할 수 있다. 별도로 도시되지는 아니하였으나, 예측부(207, 208)는 예측 단위 판별부를 더 포함할 수 있다. 예측 단위 판별부는 엔트로피 복호화부(201)에서 입력되는 예측 단위 정보, 인트라 예측 방법의 예측 모드 정보, 인터 예측 방법의 모션 예측 관련 정보 등 다양한 정보를 입력 받고 현재 부호화 단위에서 예측 단위를 구분하고, 예측 단위가 인터 예측을 수행하는지 아니면 인트라 예측을 수행하는지 여부를 판별할 수 있다. 화면 간 예측부(208)는 영상 부호화 장치(100)에서 제공된 현재 예측 단위의 인터 예측에 필요한 정보를 이용해 현재 예측 단위가 포함된 현재 픽쳐의 이전 픽쳐 또는 이후 픽쳐 중 적어도 하나의 픽쳐에 포함된 정보를 기초로 현재 예측 단위에 대한 화면 간 예측을 수행할 수 있다. 또는, 현재 예측 단위가 포함된 현재 픽쳐 내에서 기-복원된 일부 영역의 정보를 기초로 화면 간 예측을 수행할 수도 있다.
화면 간 예측을 수행하기 위해 부호화 단위를 기준으로 해당 부호화 단위에 포함된 예측 단위의 모션 예측 방법이 스킵 모드(Skip Mode), 머지 모드(Merge 모드), AMVP 모드(AMVP Mode) 중 어떠한 방법인지 여부를 판단할 수 있다.
화면 내 예측부(207)는, 현재 부호화하려는 블록 주변에 위치한, 그리고 기 복원된 화소들을 이용하여 예측 블록을 생성한다.
화면 내 예측부(207)는 AIS(Adaptive Intra Smoothing) 필터, 참조 화소 보간부, DC 필터를 포함할 수 있다. AIS 필터는 현재 블록의 참조 화소에 필터링을 수행하는 필터로써 현재 예측 단위의 예측 모드에 따라 필터의 적용 여부를 적응적으로 결정할 수 있다. 영상 부호화 장치(100)에서 제공된 예측 단위의 예측 모드 및 AIS 필터 정보를 이용하여 현재 블록의 참조 화소에 AIS 필터링을 수행할 수 있다. 현재 블록의 예측 모드가 AIS 필터링을 수행하지 않는 모드일 경우, AIS 필터는 적용되지 않을 수 있다.
화면 내 예측부(207)의 참조 화소 보간부는 예측 단위의 예측 모드가 참조 화소를 보간한 화소값을 기초로 인트라 예측을 수행하는 예측 단위일 경우, 참조 화소를 보간하여 분수 단위 위치의 참조 화소를 생성할 수 있다. 생성된 분수 단위 위치의 참조 화소가 현재 블록 내의 화소의 예측 화소로 이용될 수 있다. 현재 예측 단위의 예측 모드가 참조 화소를 보간하지 않고 예측 블록을 생성하는 예측 모드일 경우 참조 화소는 보간되지 않을 수 있다. DC 필터는 현재 블록의 예측 모드가 DC 모드일 경우 필터링을 통해서 예측 블록을 생성할 수 있다.
화면 내 예측부(207)는 도 1의 화면 내 예측부(102)와 실질적으로 동일하게 동작한다.
화면 간 예측부(208)는, 메모리(206)에 저장된 참조 픽쳐, 움직임 정보를 이용하여 화면간 예측 블록을 생성한다. 화면 간 예측부(208)는 도 1의 화면 간 예측부(103)와 실질적으로 동일하게 동작한다.
도 3은 변환 커널 유도를 위한 오프라인 트레이닝(off-line training) 과정을 도시한 도면이다.
변환기의 커널이 유도되는 방법은 도 3으로 설명될 수 있다. 먼저, 군집화 및 각 군집의 대표값을 유도하기 위해서는 부호화 과정에서 뽑은 정보를 사용할 수 있다. 여기서, 상기 정보는 잔차 블록, 1차 변환 블록 등을 포함할 수 있다. 상기 정보는 변환 커널 유도 단계에서 입력 정보로 이용될 수 있다. 일 예로, 1차 변환 커널을 유도하는 경우, 오프라인 트레이닝의 입력 정보로 잔차 블록(residual block)이 이용될 수 있다. 2차 변환 커널을 유도하는 경우, 오프라인 트레이닝의 입력 정보로 1차 변환(transform) 블록이 이용될 수 있다.
또한, 훈련(=트레이닝) 데이터를 빨리 획득하기 위하여 복호화기에서 직접 복원(reconstruction)된 잔차 블록을 이용하여 1차 변환 커널을 유도할 수 있고, 복원된 1차 변환 블록을 이용하여 2차 변환 커널을 유도할 수 있다.
이하, 변환 커널을 유도하는 도 3의 각각의 단계를 구체적으로 설명한다.
[1] 군집화 및 각 군집의 대표값 설정 단계
K-means 알고리즘 (또는 Iso데이터 알고리즘)등을 사용하여 복수의 블록들을 군집화하고, 각 군집의 대표값을 설정할 수 있다.
1차 변환의 경우, M×N (M: height, N: width) 크기의 잔차 블록들을 이용될 수 있다. 2차 변환의 경우, M×N (M: height, N: width) 크기의 1차 변환된 블록들이 이용될 수 있다.
이 때, 1차/2차 변환 모두 군집의 개수 및 대표값의 개수를 임의의 K개로 setting 할 수 있다. 여기서, K는 1, 2, 3, 4 등의 정수 일 수 있다.
변환 커널을 유도하는데 있어서 K개의 대표값들 전부 또는 일부가 사용될 수 있다. 일 예로, K개의 대표값들 중 x개 선택하여 변환기의 커널을 유도하는데 사용할 수 있다. 여기서, x는 K보다 작은 자연수 일 수 있다.
일 실시예로, 3만개의 4×4 블록 크기의 잔차 블록들의 대표값을 구한다고 할 때, K를 3으로 설정할 수 있다. K를 3으로 설정하였기 때문에, 대표값은 총 3개가 획득될 수 있다. 이때, 3개의 대표값들 중 2개를 선택하여 변환 커널 유도에 사용할 수 있다. 따라서, 2개의 대표값을 통해서 [2]변환 커널 유도 단계에서 2개의 변환 커널을 유도할 수 있다.
[2] 변환 커널 유도 단계
'[1] 군집화 및 각 군집의 대표값 설정 단계'를 통해 군집화된 블록들의 Covariance matrix 혹은 Correlation matrix를 이용하여 KL 또는 SVD 변환 커널을 유도한다. 이때, 커널을 유도하기 위한 블록의 크기는 M×N일 수 있다(M×N은 행렬 notation을 사용할 수 있음).
[2]-A. Covariance matrix를 통한 2D KL Transform kernel 유도 방법
먼저,
Figure pat00001
에 대한 Eigen value λ를 유도할 수 있다.
(참고로, SVD 변환 커널을 유도하는 경우에는 covariance 대신 correlation
Figure pat00002
을 사용할 수 있다.
먼저, Eigen value λ의 유도의 조건으로,
Figure pat00003
이고, λ는
Figure pat00004
부터
Figure pat00005
의 범위를 가질 수 있다.
Figure pat00006
는 energy가 높은 순서를 나타낼 수 있다.
Covariance Matrix 유도는 다음 수학식 1로 수행될 수 있다.
Figure pat00007
여기서,
Figure pat00008
는 군집화 된 블록을 MN×1 vector형태로 나타낸 것일 수 있다. 또한, 는 L개의 sample data에 대한 MN×1 평균 vector를 나타낸 것일 수 있다.
이후,
Figure pat00009
값에 따른 orthonormal
Figure pat00010
vectors (
Figure pat00011
)를 (i=1,2,3, … ,MN)을 계산할 수 있다. 이후, 이를 이용하여
Figure pat00012
(KL Transform kernel)를 수학식 2와 같이 유도할 수 있다.
Figure pat00013
Figure pat00014
의 transpose를 의미할 수 있다. MN은 M×N을 의미한다. 일 예로서 M=4 이고 N=8 이면 MN=32일 수 있다. 수학식 2는
Figure pat00015
에 대한 정의를 식으로 나타낸 것일 수 있다.
Figure pat00016
[2]-B. 1D KL Transform kernel 유도 방법 (Vertical covariance matrix 및 Horizontal covariance matrix를 통한 유도)
[Vertical covariance matrix를 이용한 1D KL Transform kernel 유도 방법]
Vertical kernel을 유도하기 위해서,
Figure pat00017
에 대한 Eigen value λ를 유도할 수 있다.
(참고로, SVD 변환 커널을 유도하는 경우에는 covariance 대신 correlation
Figure pat00018
를 사용할 수 있다.)
먼저, Eigen value λ의 유도 조건으로,
Figure pat00019
이고, λ는
Figure pat00020
부터
Figure pat00021
의 범위를 가질 수 있다.
Figure pat00022
는 energy가 높은 순서를 나타낼 수 있다.
Figure pat00023
값에 따른 orthonormal
Figure pat00024
vectors를 계산한 후,
Figure pat00025
(Vertical KL Transform kernel)를 수학식 3와 같이 유도할 수 있다.
Figure pat00026
Figure pat00027
의 transpose일 수 있다.
Vertical Covariance Matrix 유도는 다음 수학식 3으로 수행될 수 있다.
Figure pat00028
여기서,
Figure pat00029
이고, i=1,2,3, … ,N이고,
Figure pat00030
는 M×1 벡터이고, i는 column, j는 sample block number,
Figure pat00031
Figure pat00032
의 i-th column의 M×1 평균 벡터일 수 있다.
여기서, '[1] 군집화 및 각 군집의 대표값 설정 단계'를 통해 얻은
Figure pat00033
Figure pat00034
는 도 4에 도시되어 있다.
이후, 이를 이용하여
Figure pat00035
(Vertical KL Transform kernel)를 수학식 4와 같이 유도할 수 있다. 수학식 4는
Figure pat00036
에 대한 정의를 식으로 나타낸 것일 수 있다.
Figure pat00037
[Horizontal covariance matrix를 이용한 1D KL Transform kernel 유도 방법]
Horizontal kernel 유도를 유도하기 위해서,
Figure pat00038
에 대한 Eigen value λ를 유도할 수 있다.
(참고로, SVD 변환 커널을 유도하는 경우에는 covariance 대신 correlation
Figure pat00039
를 사용할 수 있다.)
먼저, Eigen value λ의 유도 조건으로,
Figure pat00040
이고, λ는
Figure pat00041
부터
Figure pat00042
의 범위를 가질 수 있다.
Figure pat00043
는 energy가 높은 순서를 나타낼 수 있다.
Figure pat00044
값에 따른 orthonormal
Figure pat00045
vectors를 계산한 후,
Figure pat00046
(Horizontal KL Transform kernel)를 수학식 5와 같이 유도할 수 있다.
Figure pat00047
Figure pat00048
의 transpose일 수 있다.
Figure pat00049
여기서,
Figure pat00050
이고, , i=1,2,3, … ,N이고,
Figure pat00051
는 N×1 벡터이고, i는 row, j는 sample block number,
Figure pat00052
Figure pat00053
의 i-th row의 N×1 평균 벡터일 수 있다.
이후, 이를 이용하여
Figure pat00054
(Horizontal KL Transform kernel)를 수학식 6와 같이 유도할 수 있다.
Figure pat00055
다음은 [2] 변환 커널 유도 단계에서 유도한 커널을 적용하는 실시예를 설명한다. 이때, 주로 KL 변환 커널을 기준으로 설명하나 SVD 변환 커널의 경우도 동일하게 적용될 수 있다.
*도 5는 1D(1 dimension) 변환 커널을 적용하는 실시예를 도시한다.
도 5의 실시예는 1D 변환 커널(separable KLT) 적용하는 예로, primary transform (1차 변환) 또는 secondary transform (2차 변환)에 1D 변환 커널을 적용하는 예를 설명한다. 도 5의 입력값은 잔차 블록 또는 1차 변환된 블록이고, 출력값은 수직 커널 또는 수평 커널 중 적어도 하나를 사용하여 1차 또는 2차 변환된 블록일 수 있다.
도 6은 2D 변환 커널을 적용하는 실시예를 도시한다. 도 6의 실시예는 2D 변환 커널(non-separable KLT)을 적용하는 예일 수 있다. 도 6의 입력값은 잔차 블록 또는 1차 변환 블록을 1차원 벡터 형태로 재배열한 것이고, 출력값은 2D 변환 커널을 사용하여 1차 또는 2차 변환된 벡터를 재배치한 블록일 수 있다.
도 7은 부호화기에서의 변환 과정을 도시한 도면이다.
먼저, 잔차 블록에 대해 1차 변환을 수행하여, 1차 변환 블록이 획득될 수 있다. 상기 1차 변환 블록에 대해 2차 변환의 수행 여부를 결정될 수 있다. 상기 2차 변환을 수행하는 것으로 결정된 경우, 상기 2차 변환을 수행하여 2차 변환 블록을 획득할 수 있다. 상기 2차 변환 블록을 양자화하여 획득한 양자화 블록을 비트스트림에 부호화할 수 있다.
잔차 블록을 입력으로 하는 1차 변환에 적용되는 변환 커널은, DST, DCT 와 같은 커널을 포함할 뿐만 아니라 KLT 같은 커널을 더 포함할 수 있다. KLT 커널은 선택적으로 포함될 수 있다. KLT 커널이 포함되는지 여부는 잔차 블록의 특성에 따라 결정될 수 있다. 여기서, 잔차 블록의 특성은, 잔차 블록의 너비, 높이, 크기, 형태, 분할 깊이 등을 포함할 수 있다. 이와 달리, KLT 커널이 선택적으로 포함되는지 여부를 나타내는 정보가 비트스트림에 부호화될 수 있다.
1차 변환이 적용되면 1차 변환에 적용된 커널의 종류를 나타내는 정보가 비트스트림으로 부호화 될 수 있다.
다음으로, 2차 변환을 위한 조건을 고려하여 2차 변환을 수행할 수 있다. 2차 변환을 위한 조건의 예시는 다음과 같다. 아래 조건 중 적어도 하나에 해당하는 경우, 2차 변환을 수행할 수 있다.
1) 1차 변환 커널이 DCT 2, DCT 2 (수직 커널, 수평 커널)인 경우
2) 1차 변환 후의 0이 아닌 변환 계수가 4개 이상인 경우
3) 블록의 크기가 4 x 4 ~ 16 x 16 이하인 경우
상기 조건 중 어느 하나에 해당하면, 2차 변환의 적용 여부를 나타내는 플래그를 부호화할 수 있다.
1차 변환된 블록을 입력으로 2차 변환이 수행될 수 있다. 2차 변환에는 DST, DCT 와 같은 커널 뿐만 아니라 KLT 커널이 적용될 수 있다. KLT 커널은 선택적으로 적용될 수 있다. KLT 커널이 적용되는지 여부는 잔차 블록의 특성에 따라 결정될 수 있다. 여기서, 잔차 블록의 특성은, 잔차 블록의 너비, 높이, 크기, 형태, 분할 깊이 등을 포함할 수 있다. 이와 달리, KLT 커널이 선택적으로 적용되는지 여부를 나타내는 정보가 비트스트림에 부호화될 수 있다.
2차 변환이 적용되면 2차 변환에 적용된 커널의 종류를 나타내는 정보가 비트스트림으로 부호화 될 수 있다.
1차 또는 2차 변환 커널의 부호화의 일 실시예는 다음과 같다.
1) 화면 내 예측 방향성 모드가 DC, planar이면 kernel 제1 인덱스로 부호화
2) horizontal mode ± 5 이면 Kernel 제2 인덱스로 부호화
3) vertical mode ± 5 이면 kernel 제3 인덱스로 부호화
4) diagonal mode 0 이면 kernel 제4 인덱스로 부호화
4개의 인덱스 부호화 예를 도시하나, 이 중 일부가 생략될 수 있다.
2차 변환된 벡터는 에너지(Energy)가 큰 주파수(frequency)정보를 2차원 좌표 (0,0)부터 diagonal scanning 방향으로 블록 형태로 배치될 수 있다. 또한, 상기 블록은, 양자화 단계의 입력값이 될 수 있다.
도 8은 복호화기에서의 역변환 과정을 도시한 도면이다.
먼저, 비트스트림으로부터 획득한 양자화 블록을 역양자화하여 2차 변환 블록을 획득할 수 있다. 상기 2차 변환 블록에 대한 2차 역변환의 수행 여부를 결정할 수 있다. 상기 2차 역변환을 수행하는 것으로 결정된 경우, 상기 2차 변환 블록에 대한 상기 2차 역변환을 수행하여 1차 변환 블록을 획득할 수 있다. 상기 1차 변환 블록에 대한 1차 역변환을 수행하는 단계를 포함할 수 있다.
역양자화 단계가 수행되고, diagonal scanning에 의해 계수들이 재배치될 수 있다. 2차 역변환이 적용되는 경우 벡터의 형태로 재배치될 수 있다.
다음으로, 비트스트림으로부터 시그널링된 2차 역변환 적용 여부에 관한 정보를 기초로 2차 역변환 수행 여부를 결정할 수 있다. 이와 달리, 2차 역변환 조건을 고려하여, 2차 역변환을 수행할 수도 있다. 상기 조건은 부호화 단계에서 고려한 조건과 동일할 수 있다.
2차 역변환이 적용되는 것으로 결정되면, 비트스트림으로부터 시그널링된 2차 변환 커널 정보에 의해 2차 역변환에 적용될 커널 결정될 수 있다. 결정된 2차 역변환 커널을 기초로, 2차 역변환이 수행될 수 있다.
다음으로, 1차 역변환을 위한 1차 변환 커널 정보를 비트스트림으로부터 시그널링할 수 있다. 상기 1차 변환 커널 정보를 기초로, 1차 역변환에 적용될 변환 커널이 결정될 수 있다. 상기 결정된 변환 커널로 1차 역변환이 수행될 수 있다. 1차 역변환을 통해 잔차 블록을 획득할 수 있다.
변환 커널 적용단계에서 입력(input)과 출력(output)은 다음과 같이 정의될 수 있다.
1차 정변환 시 input, output 정의
- input: M x N 크기의 잔차(residual) 블록 (M: height, N: width)
- ouput: energy가 작은 basis들을(작은 λ값들에 대응하는) 제거한 KLT를 수행한 1차 변환된 블록 (dimension reduction에 따라 크기가 달라짐)
1차 역변환 시 input, output 정의
- input: 1차 변환된 블록 (dimension reduction에 따라 크기가 달라짐)
- output: M x N 크기의 잔차(residual) 블록
2차 정변환 시 input, output 정의
- input: P x Q 1차 변환된 블록 (P≤M, Q≤N)
- ouput: energy가 작은 basis들을(작은 λ값들에 대응하는) 제거한 KLT를 수행한 2차 변환된 블록 (dimension reduction에 따라 크기가 달라짐)
2차 역변환 시 input, output 정의
- input: 2차 변환된 블록
- output: P x Q 1차 변환된 블록
도 9는 차원 감소(dimension reduction)를 활용하여 1D 변환 커널을 적용하는 제1 실시예를 도시한 도면이다.
도 9의 제1 실시예는 1D 변환 커널(separable KLT)을 적용하는 예로, primary transform (1차 변환) 또는 secondary transform (2차 변환)에 1D 변환 커널이 적용되는 예일 수 있다. 도 9의 실시예에서는 dimension reduction이 수행되는 바, 입력 블록이 MxN인 경우, 도 5와 달리 출력 블록의 크기는 M/2 x N/2일 수 있다(도 5의 경우 출력 블록은 MxN). 구체적으로, 수직 방향의 KL 변환 커널과 수평 방향의 KL 변환 커널을 사용하며, 수직과 수평 방향에 각각 1/2의 dimension reduction을 보여주는 예시를 나타낸다.
도 10은 dimension reduction을 활용하여 1D 변환 커널을 적용하는 제2 실시예를 도시한 도면이다.
도 10의 제2 실시예는 1D 변환 커널(separable KLT)을 적용하는 예로, primary transform (1차 변환) 또는 secondary transform (2차 변환)에 1D 변환 커널을 적용하는 것 일 수 있다. 도 10의 실시예에서는 dimension reduction이 수행되는 바, 입력 블록이 MxN인 경우, 출력 블록의 크기는 M/4 x N/2일 수 있다. 구체적으로, 수직 방향의 KL 변환 커널과 수평 방향의 KL 변환 커널을 사용하며, 수직 방향에 14의 dimension reduction과 수평 방향에 1/2의 dimension reduction을 나타낼 수 있다.
도 11은 dimension reduction을 활용하여 1D 변환 커널을 적용하는 제3 실시예를 도시한 도면이다.
도 11의 제3 실시예는 1D 변환 커널(separable KLT)을 적용하는 예로, primary transform (1차 변환) 또는 secondary transform (2차 변환)에 1D 커널을 적용하는 것 일 수 있다. 도 11의 실시예에서는 dimension reduction이 수행되는 바, 입력 블록이 MxN인 경우, 출력 블록의 크기는 M/4 x N/4일 수 있다. 구체적으로, 수직 방향의 KL 변환 커널과 수평 방향의 KL 변환 커널을 사용하며, 수직과 수평 방향에 각각 14의 dimension reduction을 나타낼 수 있다.
도 12은 dimension reduction 없이 데이터 전체를 변환한 경우로 1D 변환 커널을 적용하는 제4 실시예를 도시한 도면이다.
도 12의 제4 실시예는 1D 변환 커널(separable KLT)을 적용하는 예로, primary transform (1차 변환) 또는 secondary transform (2차 변환)에 1D 커널을 적용하는 것 일 수 있다. 도 11의 실시예에서는 dimension reduction없이 데이터 전체를 변환하는 경우인 바, 입력 블록과 출력 블록의 크기는 모두 MxN일 수 있다. 구체적으로, dimension reduction을 활용하지 않고 수직 방향의 KL 변환 커널과 수평 방향의 KL 변환 커널을 사용하는 것을 나타낼 수 있다.
도 13은 dimension reduction을 활용하여 2D 변환 커널을 적용하는 제1 실시예를 도시한 도면이다.
도 13의 2D 변환 커널을 적용하는 제1 실시예는 dimension reduction이 수행되는 바, 입력 블록이 MxN인 경우, 출력 벡터는 MN이 아닌 MN/2일 수 있다. 구체적으로, 2D KL 변환 커널을 사용하며, 1/2의 dimension reduction을 나타낼 수 있다.
도 14는 dimension reduction을 활용하여 2D 변환 커널을 적용하는 제2 실시예를 도시한 도면이다.
2D 변환 커널을 적용하는 제2 실시예는 dimension reduction이 수행되는 바, 입력 블록이 MxN인 경우, 출력 벡터는 MN이 아닌 MN/4일 수 있다. 구체적으로, 2D KL 변환 커널을 사용하며, 1/4의 dimension reduction을 나타낼 수 있다.
도 15는 dimension reduction을 활용하여 2D 변환 커널을 적용하는 제2 실시예를 도시한 도면이다.
2D 변환 커널을 적용하는 제2 실시예는 dimension reduction이 수행되는 바, 입력 블록이 MxN인 경우, 출력 벡터는 MN이 아닌 MN/4일 수 있다. 구체적으로, 2D KL 변환 커널을 사용하며, 1/4의 dimension reduction을 나타낼 수 있다.
도 16는 dimension reduction 없이 2D 변환 커널을 적용하는 제3 실시예를 도시한 도면이다.
2D 변환 커널을 적용하는 제3 실시예는 dimension reduction이 수행되지 않는 바, 입력 블록이 MxN인 경우, 출력 벡터는 MN일 수 있다. 구체적으로, MN×MN 크기의 2D 변환 커널을 적용을 나타낼 수 있다.
Dimension reduction을 활용할지 여부는, 전술한 블록의 특성 또는 비트스트림으로부터 시그널링된 정보에 의해 결정될 수 있다. 이는 블록 단위는 물론 블록의 상위 단위에서 시그널링될 수 있다.
도 17은 벡터들의 2D 블록으로 재배치하는 예를 도시한다.
*구체적으로, 변환 커널 적용 단계에서 유도된 MN × 1 벡터들을 2D M × N 변환 블록으로 구성 시, energy가 큰 순서에 기반하여 2D로 재배치하는 예들을 도시한다.
상기 재배치는 bottom-up diagonal 배치, horizontal 배치, zigzag 배치, vertical 배치 등을 포함할 수 있다. 각 포함 방법에 따라, energy가 큰 순서대로 벡터 내 계수를 2D 블록으로 재배치할 수 있다. 이는 1차 또는 2차 변환에서도 동일하게 적용될 수 있고, SVD의 경우도 동일하게 적용될 수 있다.
도 18은 재배치된 블록의 계수들을 스캐닝하는 실시예를 도시한다.
변환 커널 적용 단계에서 재배치한 방법에 따라 양자화 계수에 대한 스캔 순서가 달라질 수 있다. 스캔 순서는 bottom-up diagonal 배치에 대한 스캔 순서, horizontal 배치에 대한 스캔 순서, zigzag 배치에 대한 스캔 순서, vertical 배치에 대한 스캔 순서를 포함할 수 있다. 결정된 스캔 순서에 대한 정보 또는 재배치에 대한 정보는 비트스트림을 통해 부/복호화될 수 있다. 재배치에 대한 정보로 스캔 순서가 결정되는 경우 재배치 방법과 스캔 순서는 1:1관계일 수 있다.
도 19는 1차 변환에 대한 1D 변환 커널이 시그널링되는 실시예를 도시한 도면이다.
먼저, H-KLT와 V-KLT는 각각 본 발명에서 유도한 Horizontal KL/SVD Transform 커널 및 Vertical KL/SVD Transform 커널을 의미할 수 있다. 1차 변환의 경우, mts_idx를 통해 변환 커널을 시그널링을 한다.
제안하는 1D 변환 커널을 1차 변환에 적용하는 경우, 도 19A, 도 19B, 도 19C의 예시와 같이 mts_idx 정의 및 시그널링을 할 수 있다.
유도 및 적용하고자 하는 커널의 개수에 따라 mts_idx의 최댓값을 늘리거나 DCT 및 DST 커널 쌍들을 대체하여 시그널링을 할 수 있다. DCT-2, V-KLT 와 같은 예도 가능할 수 있다.
도 20는 1차 변환에 대한 2D 변환 커널이 시그널링되는 실시예를 도시한 도면이다.
제안하는 2D 변환 커널을 1차 변환에 적용하는 경우, 도 20A, 도 20B, 도 20C와 같이 mts_idx 정의 및 시그널링을 할 수 있다.
유도 및 적용하고자 하는 커널의 개수에 따라 mts_idx의 최댓값을 늘리거나 DCT 및 DST 커널 쌍을 대체하여 시그널링을 할 수 있다. KLT는 본 발명에서 유도한 KL/SVD Transform 커널을 의미할 수 있다. 일 예로, 도 20A의 경우 mts_idx의 최대값은 4이나, 도 20B의 경우 mts_idx의 최대값은 5일 수 있다.
도 21는 2차 변환에 대한 1D 변환 커널이 시그널링되는 실시예를 도시한 도면이다.
2차 변환의 경우, secondary_idx를 통해 변환기의 커널을 시그널링할 수 있다.
제안하는 1D 변환 커널을 2차 변환에 적용하는 경우, 도 21A, 도 21B, 도 21C과 같이 secondary_idx 정의 및 시그널링을 할 수 있다.
유도 및 적용하고자 하는 커널의 개수에 따라 secondary_idx의 최댓값을 늘리거나 secondary 커널을 대체하여 시그널링을 할 수 있다. H-KLT와 V-KLT는 각각 본 발명에서 유도한 Horizontal KL/SVD Transform 커널 및 Vertical KL/SVD Transform 커널을 의미할 수 있다.
도 22는 2차 변환에 대한 2D 변환 커널이 시그널링되는 실시예를 도시한 도면이다.
제안하는 2D 변환 커널을 2차 변환에 적용하는 경우, 도 22A, 도 22B, 도 22C와 같이 secondary_idx 정의 및 시그널링을 할 수 있다.
유도 및 적용하고자 하는 커널의 개수에 따라 secondary_idx의 최댓값을 늘리거나 secondary 커널을 대체하여 시그널링을 할 수 있다. KLT는 본 발명에서 유도한 KL Transform/SVD Transform 커널을 의미할 수 있다.
도 23은 부호화기에서 1차 변환만 적용되는 예를 도시한다.
잔차 블록에 대한 1차 변환의 변환 커널을 결정할 수 있다. 상기 결정된 1차 변환의 변환 커널을 기초로, 상기 잔차 블록에 대한 1차 변환을 수행하여 1차 변환 블록을 획득할 수 있다. 상기 1차 변환 블록을 양자화하여 획득한 양자화 블록을 비트스트림에 부호화할 수 있다.
도 23에 따른 변환기의 encoder 적용하는 과정은, 도 2와 달리 2차 변환 단계가 생략된 것일 수 있다. 즉, 1차 변환만 수행하는 과정일 수 있다. 이는, 전술한 2차 변환 여부의 조건이 No인 경우에 해당할 수 있으나, 2차 변환 여부 조건과 관계없이 생략되는 경우도 포함할 수 있다.
도 23의 변환 과정의 수행 여부는 예측 모드 또는 블록의 사이즈(또는 블록의 너비 및 높이의 곱) 중 적어도 하나에 기초하여 결정될 수 있다.
일 예로, 도 23의 변환 과정은 인트라 예측 모드에만 수행될 수 있다. 이와 달리, 도 23의 변환 과정은 인터 예측 모드에만 수행될 수 있다.
다른 예로, 도 23의 변환 과정은 블록의 사이즈가 4x4, 4x8, 8x4 및 8x8 인 경우에만 적용될 수 있다. 다른 예로, 도 23의 변환 과정은 블록의 사이즈가 4x4, 4x8, 8x4, 8x8, 4x16, 16x4인 경우에만 적용될 수 있다.
다른 예로, 도 23의 변환 과정은 블록의 너비 및 높이의 곱이 64보다 작은 경우에만 적용될 수 있다.
다른 예로, 도 23의 변환 과정은 현재 블록의 예측 모드가 인트라 예측 모드이며, 블록의 사이즈가 4x4, 4x8, 8x4, 8x8, 4x16 및 16x4인 경우에만 적용될 수 있다.
다른 예로, 도 23의 변환 과정은 현재 블록의 예측 모드가 인트라 예측 모드이며, 블록의 사이즈가 4x4, 4x8, 8x4 및 8x8인 경우에만 적용될 수 있다.
다른 예로, 도 23의 변환 과정은 현재 블록의 예측 모드가 인트라 예측 모드이며, 블록의 너비 및 높이의 곱이 64보다 작은 경우에만 적용될 수 있다.
도 23의 과정에 있어서 도 2와 동일한 단계는 도 2와 동일한 방법으로 수행될 수 있다.
일 예로, 도 23의 1차 변환 커널 시그널링 단계는 도 2와 같이, 다음과 같이 시그널링 될 수 있다.
1) 화면 내 예측 방향성 모드가 DC, planar이면 kernel 1
2) horizontal mode ± 5 이면 Kernel 2
3) vertical mode ± 5 이면 kernel 3
4) diagonal mode 0 이면 kernel 4
도 23의 scanning은, 변환기의 커널 적용 단계에서 배치한 방법에 따라 양자화된 계수를 전송하기 위한 scan order가 달라질 수 있다. (Energy 가 낮은 것부터 scan 해도 결과는 유사할 수 있다)
도 23의 scanning의 예로, 도 17은 bottom-up diagonal 배치에 대한 scan order를 나타내고, 도 18은 horizontal 배치에 대한 scan order를 나타내고, 도 19는 vertical 배치에 대한 scan order를 나타내고, 및 도 20는 지그재그 배치에 대한 scan order를 나타낼 수 있다.
도 24는 복호화기에서 1차 역변환만 적용되는 예를 도시한다.
비트스트림으로부터 획득한 양자화 블록을 역양자화하여 1차 변환 블록을 획득할 수 있다. 상기 1차 변환 블록에 대한 1차 역변환의 변환 커널을 결정할 수 있다. 상기 결정된 1차 역변환의 변환 커널을 기초로, 상기 1차 변환 블록에 대한 1차 역변환을 수행하여 잔차 블록을 획득할 수 있다.
도 24에 따른 변환기의 decoder 적용하는 과정은, 도 3과 달리 2차 역변환 단계가 생략된 것일 수 있다. 즉, 1차 역변환만 수행하는 과정일 수 있다. 이는, 전술한 2차 변환 여부의 조건이 No인 경우에 해당할 수 있으나, 2차 변환 여부 조건과 관계없이 생략되는 경우도 포함할 수 있다.
도 24의 역변환 과정의 수행 여부는 예측 모드 또는 블록의 사이즈(또는 블록의 너비 및 높이의 곱) 중 적어도 하나에 기초하여 결정될 수 있다.
일 예로, 도 24의 역변환 과정은 인트라 예측 모드에만 수행될 수 있다. 이와 달리, 도 24의 역변환 과정은 인터 예측 모드에만 수행될 수 있다.
다른 예로, 도 24의 역변환 과정은 블록의 사이즈가 4x4, 4x8, 8x4 및 8x8 인 경우에만 적용될 수 있다. 다른 예로, 도 24의 역변환 과정은 블록의 사이즈가 4x4, 4x8, 8x4, 8x8, 4x16, 16x4인 경우에만 적용될 수 있다.
다른 예로, 도 24의 역변환 과정은 블록의 너비 및 높이의 곱이 64보다 작은 경우에만 적용될 수 있다.
다른 예로, 도 24의 역변환 과정은 현재 블록의 예측 모드가 인트라 예측 모드이며, 블록의 사이즈가 4x4, 4x8, 8x4, 8x8, 4x16 및 16x4인 경우에만 적용될 수 있다.
다른 예로, 도 24의 역변환 과정은 현재 블록의 예측 모드가 인트라 예측 모드이며, 블록의 사이즈가 4x4, 4x8, 8x4 및 8x8인 경우에만 적용될 수 있다.
다른 예로, 도 24의 역변환 과정은 현재 블록의 예측 모드가 인트라 예측 모드이며, 블록의 너비 및 높이의 곱이 64보다 작은 경우에만 적용될 수 있다.
도 24의 과정에 있어서 도 3과 동일한 단계는 도 3과 동일한 방법으로 수행될 수 있다.
도 24의 scanning은, 변환기의 커널 적용 단계에서 배치한 방법에 따라 양자화된 계수를 전송하기 위한 scan order가 달라질 수 있다. (Energy 가 낮은 것부터 scan 해도 결과는 유사할 수 있다)
도 24의 scanning의 예로, 도 17은 bottom-up diagonal 배치에 대한 scan order를 나타내고, 도 18은 horizontal 배치에 대한 scan order를 나타내고, 도 19는 vertical 배치에 대한 scan order를 나타내고, 및 도 20는 지그재그 배치에 대한 scan order를 나타낼 수 있다.
도 25는 MN(=M×N)개의 column 중 일부 column만 사용하는 예를 설명하기 위한 도면이다. 도 26은 signal-dependent transform kernel size 및 그에 대응하는 inverse kernel을 도시하는 도면이다.
먼저, 도 25를 참조하면 위에서 설명한 수학식 2와 같은 과정으로,
Figure pat00056
는 MN 개의 column을 가지도록 획득될 수 있다. 각 column은 λ로 표현되고, column은
Figure pat00057
개 발생할 수 있다. 상기 column들 중 일부만을 변환 커널로 이용할 수 있다. 이는 신호의 에너지 특성을 고려한 것이다.
참고로, 에너지를 고려하지 않은 전체 data에 대한 signal-dependent transform(SDT)는 수학식 7 및 8로 표현될 수 있다.
Figure pat00058
Forward transform
Figure pat00059
Inverse transform
이와 달리,
Figure pat00060
,
Figure pat00061
, …
Figure pat00062
전체 에너지 중 일부만을 고려하여 signal-dependent transform은 변환 커널의 크기를 줄여 수행될 수 있다.
도 26을 참조하면, 일부 에너지만을 고려하여 변환 커널의 크기를 축소한 예를 확인할 수 있다. 또한, 도 26의 실시예보다 변환 커널의 크기를 더 축소하여 데이터의 차원을 더 줄일 수도 있다.
일 예로 M=16, N은 8인 경우, MN=128이므로 전체 에너지를 고려한 커널의 크기는 128×128 (lossless coding)이지만 높은 에너지에 기여하는
Figure pat00063
,
Figure pat00064
, …
Figure pat00065
까지만 선택하여
Figure pat00066
를 32×128로 구성하여 변환하면 128개의 데이터가 32개의 데이터로 표현되지만 에너지가 어느정도 보전되므로 압축 성능의 향상을 얻을 수 있다.
다른 예로, N은 8인 경우, MN=128이므로 전체 에너지를 고려한 커널의 크기는 128×128 (lossless coding)이지만 높은 에너지에 기여하는
Figure pat00067
,
Figure pat00068
, …
Figure pat00069
까지만 선택하여
Figure pat00070
를 16×128로 구성하여 변환하면 128개의 데이터가 16개의 데이터로 표현되지만 에너지가 어느정도 보전되므로 압축 성능의 향상을 얻을 수 있다.
변환된 데이터를 양자화 한 quantized transform coefficients를 코딩하기 위해, coefficient group 단위로 정의되는 non-zero 계수 존재 여부를 나타내는 플래그, 계수 단위로 정의되는 계수가 non-zero인지 여부를 나타내는 플래그, 계수 단위로 정의되는 계수의 절대값이 특정 값보다 큰지 여부를 나타내는 플래그, 계수 단위로 정의되는 계수의 나머지 절대값 정보 등이 부/복호화될 수 있다.
도 27은 1차원 데이터의 스캐닝을 나타내는 도면이다.
도 27과 같이, 2차원 non-separable KLT 또는 SVD를 적용하는 경우 2차원 블록에 대한 변환 결과는 데이터의 차원이 줄은 1차원 데이터가 될 수 있다 (4×4는 제외). 따라서, 양자화 후 1차원 데이터를 있는 그대로 도 27과 같이 scanning하면서 entropy coding (CABAC, VLC 등)이 수행될 수 있다.
Signal-dependent transform 구성 시, intra prediction의 경우, intra mode 정보에 따라 각각 3~4개의 변환 커널을 트레이닝하여 구성할 수 있다. 이 경우 transform에 사용된 특정 변환 커널에 대한 인덱스도 복호화기로 전달해주어야 한다. Inter coding 경우에도, AMVP (Advanced Motion Vector Prediction) 또는 MV(Motion Vector) Merge후 residual block size 별로 각각 3~4개의 변환 커널을 트레이닝하여 구성할 수 있다. 이 경우, 변환에 사용된 특정 변환 커널에 대한 인덱스도 복호화기로 전달해주어야 한다.
이외에도, 기존의 신호 독립적 변환을 사용하는 inter prediction에서의 SubBlock Partition transform 및 Intra sub-partition의 잔차 (residual) 신호를 통해 신호 의존적 변환을 미리 트레이닝한 후 적용할 수 있다.
coefficient group을 이용하여 계수의 존재여부를 비트스트림의 플래그를 통해 부/복호화할 수 있다.
신호 적응형 변환을 적용한 경우 변환 커널의 크기를 줄이기 때문에 비디오의 무손실 코딩 (lossless coding)의 경우는 트랜스폼을 bypass 하여 압축해야 한다.
만약, 신호 적응형 변환 후 (first transform, 1차 변환), data를 더 압축하기 위하여 1번 더 신호 적응형 변환 (secondary transform, 2차 변환)을 수행하는 것도 가능하다. 이때에는 2차 변환을 적용하기 전 1차 변환 계수를 1차원 data를 2차원 배열 (수평, 수직, diagonal 또는 zigzag 순)로 만들어 본 제안된 방법을 적용하도록 한다. 그 후, 2차 변환 후 2차원 block에 대한 변환 결과는 data의 개수(차원)가 준 1차원 data가 될 수 있다(4x4는 제외). 따라서 양자화 후, 1차원 data를 있는 그대로 scanning 하면서 entropy coding (CABAC, VLC 등) 하면 된다.
*본 개시의 주파수를 이용한 보간 필터는 부/복호화 각 단계들 적어도 하나의 단계에 적용될 수 있다. 일 예로, 보간 필터는 참조 샘플을 보간하는데 이용될 수 있고, 예측 값을 조정하기 위해 이용될 수 있고, 잔차 값을 조정하기 위해 이용될 수 있고, 예측이 완료된 후 부/복호화 효율을 향상시키기 위해 이용될 수 있고, 부/복호화 전처리 단계로 수행될 수도 있다.
VVC 화면 내 예측에서 기존에 사용하던 4-tap Discrete Cosine Transform-based interpolation filter (DCT-IF) 와 4-tap Smoothing interpolation filer (SIF)를 대체하여 더 많은 참조 샘플을 이용하는 8-tap DCT-IF와 8-tap SIF를 적용한다. 경우에 따라서는 상기 8-tap 필터 대신에, 10-tap, 12-tap, 14-tap, 16-tap 등의 필터가 사용될 수 있다. 일 예로, 블록의 크기 및 참조 샘플의 주파수 특성을 이용하여 블록의 특성이 결정되며, 상기 블록에 적용되는 보간 필터의 종류가 선택될 수 있다.
8-tap DCT-IF는 아래 수학식 9로 획득될 수 있다.
Figure pat00071
Figure pat00072
p/32 픽셀 보간 필터(p=0,1,2,3,…,31, 1/32 분수 샘플을 사용하는 경우)는 상기 수학식 9에서 n=3+p/32를 이산 코사인 계수와 x(m) (m=0,1,2,…,7)의 선형 조합으로 대체하여 획득될 수 있다.
일 예로, (0/32, 1/32, 2/32, …, 16/32) 분수 샘플 위치에 대해 파생된 8-tap DCT-IF 계수는 n=3+(0/32, 1/ 32, 2/32, ..., 16/32)을 이용하여 획득될 수 있다. (17/32, 18/32, 19/32, …, 31/32)에 대한 8-tap DCT-IF 계수도 위와 같은 방법으로 획득될 수 있다.
8-tap SIF 계수는 z[n] 및 1/32 분수 선형 필터의 컨볼루션으로부터 획득될 수 있다. 여기서, 도 28의 z[n]은, 수학식 10 및 11의 h[n] 및 y[n]의 컨볼루션으로부터 획득될 수 있다. 여기서, h[n]은 3점 [1, 2, 1] LPF(Low Pass filter)일 수 있다.
수학식 10과 11는 y[n]과 z[n]을 유도하는 절차를 보여준다. 도 28은 h[n], y[n], z[n]을 나타내며, 8-tap SIF 계수는 z[n]과 1/32 fractional linear filter의 선형 보간을 통해 획득될 수 있다.
Figure pat00073
Figure pat00074
다음 수학식 12 및 13은 8-탭 SIF 계수를 계산하는 절차를 설명합니다. 여기서, g[n] = z[n-3], n = 0, 1, 2, …, 6일 수 있습니다.
Figure pat00075
수학식 13은 p=16일 때
Figure pat00076
위치에서 SIF 계수 유도의 예를 보여줍니다.
Figure pat00077
도 29은 8-tap SIF 계수를 유도하는 데 사용되는 정수 기준 샘플을 도시한다. 도 29을 참조하면, 검은색
Figure pat00078
위치에 대한 필터 계수를 유도하기 위한 8개의 정수 샘플
Figure pat00079
은 회색으로 표시됩니다. 또한,
Figure pat00080
은 8개의 기준 샘플의 시작 샘플일 수 있다. 필터 계수는 정수 구현으로 조정될 수 있다.
8-tap DCT-IF가 4-tap DCT-IF보다 high frequency 특성을 가지고, 8-tap SIF가 4-tap SIF보다 low frequency 특성을 가지기 때문에 블록의 특성에 따라 8-tap interpolation filter 종류를 선택하여 사용할 수 있다.
블록의 크기와 참조 샘플의 frequency 특성을 이용하여 블록의 특성이 결정되며, 해당 블록에 사용되는 보간 필터의 종류가 선택될 수 있다.
블록의 크기가 작을수록 correlation이 낮으며 high frequency가 많고, 크기가 클수록 correlation이 높고 low frequency가 많다는 특성이 이용될 수 있다.
[correlation의 획득]
CU 크기에 기초하여 참조 샘플 특성을 결정하기 위해, 수학식 14에서의 correlation은 인트라 예측 모드에 따라 현재 CU의 상단 또는 좌측 참조 샘플로부터 계산된다. 여기서, N은 현재 CU의 너비 또는 높이일 수 있다.
Figure pat00081
도 30는 화면 내 예측 모드의 방향 및 각도를 도시한 도면이다. 현재 CU의 예측 모드가 도 30의 대각 모드(34)보다 크면 현재 CU의 상단에 위치한 참조 샘플이 수학식 14에서 사용될 수 있다. 그렇지 않으면 현재 CU의 좌측에 위치한 참조 샘플이 수학식 14에서 사용될 수 있다.
도 31는 다양한 비디오 해상도와 각 nTbS에 대한 참조 샘플의 평균 상관 값을 나타내는 도면이다. 구체적으로, 도 31은 수학식 15에서 정의된 다양한 비디오 해상도와 각 nTbS에 대한 참조 샘플의 평균 상관 값을 나타내며, 이는 각 화면 해상도에서 CU 크기에 따라 결정될 수 있다. 도 31과 같이 CU 크기가 커지고 비디오 해상도가 높을수록 상관 관계가 증가할 수 있다. 여기서 비디오 해상도 A1, A2, B, C 및 D는 괄호 안에 표시될 수 있다.
Figure pat00082
비디오 코딩의 인트라 CU 크기 파티션은 비트 레이트 및 왜곡 측면에서 코딩을 향상시키기 위한 예측 성능에 의존할 수 있다. 예측 성능은 예측 샘플과 현재 CU의 샘플 간의 예측 오차에 따라 다를 수 있다. 현재 블록이 고주파수를 포함하여 세부 영역이 많은 경우, CU 크기는 작은 너비와 높이의 경계 참조 샘플을 사용하여 비트율과 왜곡을 고려하여 작게 분할될 수 있다. 그러나 현재 블록이 균질한 영역으로 구성되어 있는 경우 CU 크기는 너비와 높이가 큰 경계 참조 샘플을 사용하여 비트율과 왜곡을 고려하여 크게 분할될 수 있다.
도 31을 참조하면, A1, A2, B, C, D로 나타낸 nTbS 크기와 비디오 해상도에 따른 참조 샘플의 상관 값을 알 수 있다. 이는 각각 nTbS가 작은 nTbS는 낮은 상관 관계와 일치하는 고주파 특성을 갖고 큰 nTbS는 높은 상관 관계와 일치하는 저주파 특성을 가짐을 의미할 수 있다.
블록의 참조 샘플에 DCT-II를 이용하여 transform을 적용하여 참조 샘플의 frequency 특성을 구할 수 있다. 화면 내 예측 모드에 따라, 참조 샘플의 frequency 특성을 구하는 데 이용되는 참조 샘플이 결정될 수 있다. 일 예로, 화면 내 예측 모드의 방향이 수직 방향일 경우에는 현재 부호화 블록(또는 서브 블록)의 위쪽 참조샘플을 사용되고, 화면 내 예측 모드의 방향이 수평 방향일 경우에는 현재 부호화 블록(또는 서브 블록)의 왼쪽 참조 샘플을 사용한다. 화면 내 예측 모드의 방향이 대각선 방향일 경우에는 현재 부호화 블록(또는 서브 블록)의 왼쪽 또는 상단 참조 샘플 중 적어도 하나를 사용한다. 여기서, 참조 샘플은 현재 부호화 블록(또는 서브 블록)에 인접하거나, 현재 부호화 블록(또는 서브 블록)으로부터 k 픽셀 만큼 떨어져 있을 수 있다. 여기서, k는 1, 2, 3, 4 등의 자연수 일 수 있다.
high frequency energy 퍼센트가 높을수록 블록이 high frequency 특성을 가질 수 있다. high frequency energy 퍼센트와 블록 크기에 따른 threshold를 비교하여 블록의 frequency 특성을 결정하고, 블록에 적용될 interpolation filter가 선택될 수 있다.
Frequency 정보에 따라 high frequency가 많은 블록에는 강한 high pass filter (HPF) 인 8-tap DCT-IF를 적용하고, low frequency가 많은 블록에는 강한 low pass filter (LPF) 인 8-tap SIF를 적용할 수 있다.
블록의 크기가 작을수록 correlation이 낮다는 특성과 frequency 정보에 따라 high frequency가 많은 블록에 강한 HPF를 적용하는 방법을 이용하여 블록의 크기가 작을 때는 강한 HPF인 8-tap DCT-IF를 적용할 수 있다. high frequency가 적을 때는 약한 LPF인 4-tap SIF를 적용할 수 있다.
블록의 크기가 클수록 correlation이 높다는 특성과 frequency 정보에 따라 low frequency가 많은 블록에 강한 LPF를 적용하는 방법을 이용하여 블록의 크기가 클 때는 강한 LPF인 8-tap SIF를 적용할 수 있다. high frequency가 많을 때는 약한 HPF인 4-tap DCT-IF를 적용할 수 있다.
High frequency energy 퍼센트 구하는 예시는 다음과 같을 수 있다.
화면 내 예측 모드가 수평 방향인 경우 N은 블록의 높이이며, 화면 내 예측 모드가 수직 방향인 경우 N은 블록의 너비이다. 더 적은 수의 참조샘플을 사용하거나 더 많은 참조샘플을 사용하는 경우 N의 값은 더 작아지거나 커질 수도 있다. X는 참조샘플을 의미할 수 있다. 이 경우 high frequency 영역은 N의 1/4길이의 참조샘플을 사용하며, 더 적은 참조샘플을 사용하여 high frequency 에너지를 구하거나 더 많은 참조샘플을 사용하는 경우 이 영역의 길이는 줄어들거나 늘어날 수 있다. 수학식 16는 High frequency energy 퍼센트 구하는 예시를 나타낼 수 있다.
Figure pat00083
도 32는 Frequency 정보를 이용하여 보간 필터를 선택하는 방법의 예를 도시한다.
TbS가 2인 블록의 high frequency energy 퍼센트가 threshold보다 작을 경우에는 4-tap SIF가 적용되고, 그 외의 경우에는 8-tap DCT-IF가 적용된다.
nTbS가 5 이상인 블록의 high frequency energy 퍼센트가 threshold보다 작을 경우에는 8-tap SIF가 적용되고, 그 외의 경우에는 4-tap DCT-IF가 적용된다.
상기 8-tap 필터 대신에 10-tap, 12-tap, 14-tap, 16-tap 등의 필터가 사용될 수 있다.
또한, 도 32에서 각각의 nTbS 및 high_freq_ratio에 따른 필터는 1개씩 기재되어 있으나, 복수의 필터가 사용될 수 있다.
일 예로, nTbS가 2인 경우 4-tap SIF 대신 4-tap SIF 및 8-tap SIF가 사용될 수 있다. 일 예로, 8-tap DCT-IF 대신 8-tap DCT-IF 및 16-tap DCT-IF가 사용될 수 있다.
이와 같이 복수의 필터가 사용될 경우, 부호화 장치에서는 그 중 어느 하나를 특정하는 정보(인덱스)가 부호화될 수 있고, 복호화 장치에서는 상기 정보를 비트스트림으로부터 시그날링하여 상기 복수의 필터 중 어느 하나를 특정할 수 있다.
또는, 복수의 필터가 사용될 경우, 화면 내 예측 모드에 의해서 상기 복수의 필터 중 어느 하나가 묵시적으로 특정될 수도 있다.
또한, 필터의 종류를 결정함에 있어서 nTbS 및 high_freq_ratio 외에 블록의 형태가 정사각형인지 직사각형인지 여부도 추가로 고려할 수 있다.
도 33는 8-tap DCT 보간 필터 계수들에 대한 실시예들을 도시한다. 도 34는 8-tap smoothing 보간 필터 계수들에 대한 실시예를 도시한다. 여기서 index=0 및 index=7은 필터 계수를 유도하기 위한 8개의 정수 샘플
Figure pat00084
에 해당할 수 있다.
도 35는 4-tap DCT-IF, 4-tap SIF, 8-tap DCT-IF 및 8-tap SIF의 16/32픽셀 위치에서 크기 응답을 도시한다. 여기서 X축은 정규화된 라디안 주파수를 나타내고, Y축은 크기 응답을 나타낼 수 있다.
8-tap DCT-IF는 4-tap DCT-IF보다 HPF 특성이 우수하고 8-tap SIF는 4-tap SIF보다 LPF 특성이 우수합니다. 따라서, 8-tap SIF는 저주파 참조 샘플에서 4-tap SIF보다 더 나은 보간을 제공하고 8-tap DCT-IF는 고주파 참조 샘플에서 4-tap DCT-IF보다 더 나은 보간을 제공합니다.
VVC는 두 개의 보간 필터를 사용합니다. nTbS = 2일 때 4-tap DCT-IF는 모든 블록에 사용되고, nTbS = 3, 4일 때 4-tap DCT-IF 또는 4-tap SIF가 minDistVerHor 및 intraHorVerDistThres[nTbS]에 기초하여 사용되고, nTbS ≥ 5일 때 4-tap SIF가 모든 블록에서 사용된다.
본 개시에서는 제안된 보간 필터 외에 정수 참조 샘플의 주파수 정보를 이용하여 정확한 분수 경계 예측 샘플을 생성하기 위한 보간 필터 선택 방법을 제안한다.
CU 참조 샘플이 저주파 특성을 가지더라도 VVC 표준에서 nTbS=2인 CU 참조 샘플에는 DCT-IF가 사용됩니다. 그러나 도 35에서 볼 수 있듯이 nTbS 크기에 관계없이 참조 샘플의 저주파 특성에 따라 DCT-IF보다 SIF를 사용하는 것이 더 효과적일 수 있다. 마찬가지로 CU 기준 샘플이 고주파 특성을 가지더라도 VVC 표준에서 nTbS>4인 CU에는 SIF가 사용됩니다. 그러나 nTbS 크기에 관계없이 참조 샘플의 고주파 특성에 따라 도 35의 SIF보다 DCT-IF를 사용하는 것이 더 효과적이다. 이 문제를 해결하기 위해 참조 샘플의 주파수 특성에 따라 SIF와 DCT-IF로 구성된 두 개의 서로 다른 필터를 선택하는 방법이 개발되었습니다. 참조 샘플은 참조 샘플의 고주파 에너지를 감지하기 위해 스케일링된 정수 1차원(1-D) DCT-II 커널을 사용하여 변환될 수 있다. 스케일링된 DCT-II 계수 X[k], k=0,1,2,…,N-1은 다음과 같이 수학식 17 및 18에서 파생됩니다.
Figure pat00085
Figure pat00086
Figure pat00087
여기서, N은 X[k]에 필요한 참조 샘플의 수입니다. 1차원 변환 후 변환 영역에서 고주파 에너지가 관찰됩니다. 에너지가 저주파 성분에 집중되기 때문에 참조 샘플은 동종 샘플로 구성됩니다. 그러나 고주파 성분에 에너지가 존재하기 때문에 참조 샘플에는 고주파수 샘플이 포함되며, 이는 CU의 샘플에 고주파 성분이 있음을 나타냅니다. 참조 샘플의 변환 크기는 현재 블록의 인트라 예측 모드에 따라 설절될 수 있다. 인트라 예측 모드가 모드 34(대각선 모드)보다 크면 상위 CU 참조 샘플은 수학식 17 및 수학식 18에서 N=CU 폭으로 변환될 수 있다. 그리고, 인트라 예측 모드가 모드 34보다 작은 경우, 수학식 17 및 수학식 18에서 N=CU 높이로 왼쪽 참조 샘플이 사용될 수 있다. X[k]는 고주파 계수의 에너지 비율을 측정하는 데 사용될 수 있다. 고주파 데이터에 에너지가 있는 경우 참조 샘플이 고주파 데이터로 구성되므로 DCT-IF를 사용할 수 있다. 대조적으로, SIF는 저주파 데이터의 고에너지 참조 샘플에 사용될 수 있다. 고주파 계수의 에너지 백분율인 high_freq_ratio는 수학식 19에서 계산될 수 있다.
Figure pat00088
도 32에서 high_freq_ratio의 임계값(THR)은 실험적으로 결정된 것일 수 있다.
도 36은 nTbS에 따른 각 임계값 THR1, THR2, … , 도 36(a)와 도 36(b)는 각각 nTbS=2와 nTbS=5의 결과이다. 도 36(a)에서는 high_freq_ratio가 주어진 임계값보다 작기 때문에 4-tap SIF가 사용될 수 있다. 그렇지 않으면 8탭 DCT-IF가 사용될 수 있다. 도 36(a)에서 가장 효율적인 BD-율 감소는 THR5와 THR6에서 발생한다. 따라서 본 제안 방법에서는 high_freq_ratio의 THR로 THR5를 선택할 수 있다.
도 36(b)에서 nTbS = 5에서 high_freq_ratio로 실험할 때 THR4에서 더 나은 코딩 효율을 얻었고 nTbS가 6일 때 비슷한 결과를 얻음을 확인할 수 있다. 따라서 nTbS가 5와 6일 때 THR4가 THR로 선택될 수 있다. 제안하는 방법에서 high_freq_ratio의 nTbS > 4인 CU의 경우 high_freq_ratio < THR일 때 8-탭 SIF가 사용될 수 있다. 그렇지 않으면 4탭 DCT-IF가 사용될 수 있다. 예를 들어, CU가 4×4이면 nTbS 값은 2가 될 수 있다. 8-tap DCT-IF는 도 36(a)에서 high_freq_ratio ≥ THR5일 때 사용된다. 그렇지 않으면 CU에 4탭 SIF가 사용됩니다. 제안하는 방법은 nTbS와 high_freq_ratio에 의존한다. CU의 nTbS 크기가 2인 경우 high_freq_ratio < THR이면 도 35와 같이 약한 LPF 특성을 갖는 4-tap SIF가 참조 샘플에 적용됩니다. 그렇지 않고 high_freq_ratio ≥ THR이면 도 35와 같이 HPF 특성이 강한 8-tap DCT-IF가 참조 샘플에 적용된다.
마찬가지로, CU의 nTbS 크기가 4보다 큰 경우 high_freq_ratio < THR이면 도 35와 같이 LPF 특성이 강한 8-tap SIF를 참조 샘플에 적용할 수 있다. 도 36과 같이 nTbS > 4에서 nTbS = 2일 때보다 상대적으로 높을 수 있다. 그렇지 않고 high_freq_ratio ≥ THR이면 도 35와 같이 HPF 특성이 약한 4탭 DCT-IF가 참조 샘플에 적용될 수 있다.
도 37은 각 클래스에 대한 CTC 비디오 시퀀스의 시퀀스 이름, 화면 크기, 화면 속도 및 비트 깊이를 도시한다.
제안된 방법은 VVC 참조 소프트웨어인 VTM-14.2[37]에서 구현되었으며, JVET CTC(Common Test Conditions)[38]에서 All Intra(AI) 구성으로 수행되었다. 클래스 A1, A2, B, C 및 D의 시퀀스는 각각 22, 27, 32 및 37의 양자화 매개변수(QP) 값으로 테스트되었습니다.
도 38은 8-tap/4-tap 보간 필터의 효율을 테스트하기 위해 보간 필터 선택 방법과 선택된 방법에 따라 적용된 보간 필터를 도시한다.
방법 A는 nTbS = 2에 대해 8-탭 DCT-IF를 사용하고 nTbS > 4에 대해 4-탭 SIF를 사용하고 방법 B는 nTbS > 4에 대해 8-탭 SIF를 사용하고 nTbS = 2에 대해 4-탭 DCT-IF를 사용하고 DCT-를 선택합니다. VVC 앵커와 같은 방식으로 IF 또는 SIF. 방법 A와 VVC 방법의 차이점은 방법 A는 nTbS = 2인 경우에만 4탭 DCT-IF 대신 8탭 DCT-IF를 사용한다는 것입니다. 방법 B와 VVC 방법의 차이점은 방법 B는 nTbS > 4에 대해서만 4탭 SIF 대신 8탭 SIF를 사용한다는 것입니다.
도 39의 Table IX 및 Table X는 A, B, C 및 D 방법의 시뮬레이션 결과를 나타낸다.
방법 C는 nTbS = 2에 대해 수학식 19의 high_freq_ratio에 따라 8-탭 DCT-IF 또는 4-탭 SIF를 사용하고 nTbS > 4에 대해 4-탭 SIF를 사용합니다. 방법 D는 8-탭 SIF 또는 4-탭 DCT-IF를 사용합니다. nTbS > 4인 경우 high_freq_ratio에 따라, nTbS = 2인 경우 4-tap DCT-IF에 따라 달라집니다. 여기서 필터 선택 방법과 보간 필터는 VVC 앵커는 nTbS = 3 및 nTbS = 4의 CU에 사용됩니다.
방법 A의 경우 Y, Cb 및 Cr 성분에 대해 각각 -0.13%, -0.12% 및 -0.08%의 BD-rate의 전체 증가가 관찰되며, 여기서 부호(-)는 비트 절약을 의미합니다. . 방법 C의 경우 Y, Cb 및 Cr 성분에 대해 각각 -0.14%, -0.09% 및 -0.11%의 BD 비율의 전체 증가가 관찰되었습니다.
특히, 832 x 480의 해상도를 가진 클래스 C와 416 x 240의 해상도를 가진 D 클래스에서 각각 A 및 Y 방법, 클래스 C 및 D의 구성 요소 이득(-0.40%, -0.30%)은 방법 C에서 달성됩니다. 방법 A와 C는 nTbS = 2에 대한 8-탭 DCT-IF 및 4-탭 nTbS > 4에 대한 SIF는 필터 선택 방법에 관계없이 각 CU에 적용됩니다.
방법 B의 경우 전체 BD 비율 이득은 Y, Cb 및 Cr 구성요소에 대해 각각 -0.02%, -0.03% 및 -0.02%입니다. 방법 D의 경우 전체 BD 비율 이득은 Y, Cb 및 Cr 구성요소에 대해 각각 -0.01%, -0.01% 및 0.03%입니다.
방법 B는 nTbS > 4에 대해 8-탭 SIF를 사용하고, nTbS = 2에 대해 4-탭 DCT-IF를 사용하고, 방법 D는 nTbS > 4에 대해 제안된 high_freq_ratio에 따라 8-탭 SIF 또는 4-탭 DCT-IF를 사용하고, nTbS = 2에 대해 4-탭 DCT-IF를 사용한다.
방법 B와 D에서는 BD 비율의 전반적인 증가가 거의 없었지만 방법 B와 D에서 분해능 3840x2160을 갖는 클래스 A1의 Y 구성요소에서 BD 비율의 증가(-0.08%, -0.09%)가 각각 얻어집니다. 제안하는 high_freq_ratio 및 nTbS를 사용한 주파수 기반 적응형 보간 필터링과 기존 VVC 방법은 방법 C와 D를 활용하기 위해 개발되었습니다.
도 40의 Table XI는 모든 테스트 시퀀스에 대해 제안된 방법에서 VVC 앵커에서 4탭 DCT-IF를 적용하고 high_freq_ratio를 기반으로 8탭 DCT-IF를 적용하는 CU의 비율을 도시한다.
nTbS = 2의 경우 VVC 앵커의 4x4 CU, 4x8 CU 및 8x4 CU에서 4탭 DCT-IF가 100% 선택되지만, high_freq_ratio를 기반으로 제안된 적응 필터 방법에서 8-tap DCT-IF는 4x4 CU에서 97.16%, 4x8 CU에서 95.80%, 8x4 CU에서 96.77%로 선택됩니다. nTbS = 2인 4탭 SIF 선택의 백분율은 Table XI의 DCT-IF 선택 백분율에서 추론할 수 있습니다.
도 41은 제안된 필터링 방법에 대한 실험 결과를 도시한다.
4-tap SIF 및 8-tap DCT-IF의 퍼센트 선택 증가는 Table XII에서 BD 레이트 이득을 가져온다. 작은 CU의 high_freq_ratio에 맞춰 낮은 LPF 특성을 가진 4-tap SIF와 강력한 HPF 특성을 가진 8-tap DCT-IF를 사용하면 제안하는 방법에서 BD rate를 높이는 데 도움이 됩니다. 그리고 큰 CU에서 high_freq_ratio에 따라 LPF 특성이 강한 8-tap SIF와 HPF 특성이 좋지 않은 4-tap DCT-IF를 사용하면 제안하는 방법에서 BD rate를 약간 높이는 데 도움이 된다.
nTbS > 4를 제외하고 4탭 DCT-IF는 VVC 앵커에서 MRL 또는 ISP 도구를 사용하는 CU에만 적용됩니다.
그러나 제안하는 방법에서는 MRL 또는 ISP를 사용하는 CU에 high_freq_ratio 기반의 8-tap DCT-IF와 4-tap SIF를 적용하는바, 32x32 CU에서 0.07%, 16x64 CU에서 0.04%, 64x16 CU에서 0.07%, 64x64 CU에서 0.07%로 8-tap DCT-IF가 선택된다. 이는, VVC 앵커의 32x32 CU에서 10.59%, 16x64 CU에서 100%, 64x16 CU에서 100%, 64x64 CU에서 5.56%로 선택되는 것과 비교됩니다.
Table XII는 high_freq_ratio에 기반한 제안된 적응 필터 방법의 결과를 나타내며, AI Main 10 구성에서 EncT 및 DecT는 클래스 A1에서 D의 다양한 테스트 시퀀스에 대한 VVC 앵커와 비교한 총 인코딩 및 디코딩 시간 비율을 각각 나타냅니다.
제안된 방법은 Y, Cb 및 Cr 구성 요소에 대해 각각 -0.16%, -0.13% 및 -0.09%의 전체 BD 비율 증가를 달성할 수 있으며 인코더 및 디코더 각각에서 계산 복잡성이 VVC 앵커와 비교하여 평균 2% 및 5% 증가합니다.
계산 복잡도가 약간 증가하면 제안된 방법을 사용하면 VVC 앵커에 비해 BD 속도를 줄일 수 있습니다. 가장 높은 BD 비율 감소를 보이는 시퀀스는 클래스 C의 BasketballDrill 시퀀스로, 제안된 방법은 -1.20%의 Y 성분 이득을 산출합니다.
결론적으로 본 개시에서는 방향성 VVC 인트라 예측을 위한 부분 참조 샘플을 생성하기 위한 적응 필터 방법을 제안한다. 1차원 스케일링된 DCT에서 파생된 high_freq_ratio를 사용하여 분수 참조 샘플의 정밀도를 높이기 위해 4탭 DCT-IF 및 4탭 SIF 외에 8탭 DCT-IF 및 8탭 SIF를 제안합니다. 블록 크기에 대한 high_freq_ratio에 따라 보간 필터가 참조 샘플에 적용됩니다. 샘플 간의 상관관계가 높은 경우 HPF가 강한 8-tap 보간 필터나 LPF가 강한 경우 BD rate gain에 미미한 영향을 주지만, 샘플 간의 상관관계가 낮은 경우에는 강한 8-tap 보간 필터를 사용하는 것으로 결론지었다. HPF 또는 강한 LPF 특성은 BD 비율 향상에 영향을 미칩니다. high_freq_ratio에 기반한 제안된 적응 필터 방법의 경우 VVC 앵커와 비교하여 Y, Cb 및 Cr 구성 요소에 대해 각각 -0.16%, -0.13% 및 -0.09%의 전체 BD 속도 이득이 관찰됩니다. 주파수 영역에서 고주파수 용어를 검색하는 방법은 차세대 비디오 코딩 표준에 대해 강/약 HPF 및 강/약 LPF가 필요한 비디오 코딩 모듈에 도움이 됩니다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.

Claims (14)

  1. 비트스트림으로부터 획득한 양자화 블록을 역양자화하여 2차 변환 블록을 획득하는 단계;
    상기 2차 변환 블록에 대한 2차 역변환의 수행 여부를 결정하는 단계;
    상기 2차 역변환을 수행하는 것으로 결정된 경우, 상기 2차 변환 블록에 대한 상기 2차 역변환을 수행하여 1차 변환 블록을 획득하는 단계;
    상기 1차 변환 블록에 대한 1차 역변환을 수행하는 단계를 포함하는, 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 2차 역변환의 변환 커널 및 상기 1차 역변환의 변환 커널은 상기 비트스트림으로부터 시그널링되는 인덱스에 의해 특정되는 것을 특징으로 하는, 영상 복호화 방법.
  3. 제1항에 있어서,
    상기 인덱스의 최대값 및 구성은, 적용되는 변환 커널이 1차원 변환 커널인지 2차원 변환 커널인지 여부에 따라 상이한 것을 특징으로 하는, 영상 복호화 방법.
  4. 제1항에 있어서,
    상기 2차 역변환의 변환 커널 및 상기 1차 역변환의 변환 커널은 KLT(Karhunen Loeve Transform)를 포함하는 것을 특징으로 하는, 영상 복호화 방법.
  5. 제1항에 있어서,
    상기 2차 역변환 또는 상기 1차 역변환 중 적어도 하나의 출력 블록은 입력 블록의 크기보다 작은 크기를 가지는 것을 특징으로 하는, 영상 복호화 방법.
  6. 잔차 블록에 대해 1차 변환을 수행하여, 1차 변환 블록을 획득하는 단계;
    상기 1차 변환 블록에 대해 2차 변환의 수행 여부를 결정하는 단계;
    상기 2차 변환을 수행하는 것으로 결정된 경우, 상기 2차 변환을 수행하여 2차 변환 블록을 획득하는 단계;
    상기 2차 변환 블록을 양자화하여 획득한 양자화 블록을 비트스트림에 부호화 하는 단계를 포함하는, 영상 부호화 방법.
  7. 제6항에 있어서,
    상기 2차 변환의 수행 여부는, 변환 커널의 종류, 변환 계수의 개수 또는 블록의 크기 중 적어도 하나를 기초로 결정되는 것을 특징으로 하는, 영상 부호화 방법.
  8. 부호화 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서,
    상기 부호화 방법은, 잔차 블록에 대해 1차 변환을 수행하여, 1차 변환 블록을 획득하는 단계;
    상기 1차 변환 블록에 대해 2차 변환의 수행 여부를 결정하는 단계;
    상기 2차 변환을 수행하는 것으로 결정된 경우, 상기 2차 변환을 수행하여 2차 변환 블록을 획득하는 단계;
    상기 2차 변환 블록을 양자화하여 획득한 양자화 블록을 상기 비트스트림에 부호화 하는 단계를 포함하는, 컴퓨터 판독가능한 기록매체.
  9. 비트스트림으로부터 획득한 양자화 블록을 역양자화하여 1차 변환 블록을 획득하는 단계;
    상기 1차 변환 블록에 대한 1차 역변환의 변환 커널을 결정하는 단계;
    상기 결정된 1차 역변환의 변환 커널을 기초로, 상기 1차 변환 블록에 대한 1차 역변환을 수행하여 잔차 블록을 획득하는 단계를 포함하는, 영상 복호화 방법.
  10. 잔차 블록에 대한 1차 변환의 변환 커널을 결정하는 단계;
    상기 결정된 1차 변환의 변환 커널을 기초로, 상기 잔차 블록에 대한 1차 변환을 수행하여 1차 변환 블록을 획득하는 단계;
    상기 1차 변환 블록을 양자화하여 획득한 양자화 블록을 비트스트림에 부호화 하는 단계를 포함하는, 영상 부호화 방법.
  11. 부호화 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서,
    상기 부호화 방법은, 잔차 블록에 대한 1차 변환의 변환 커널을 결정하는 단계;
    상기 결정된 1차 변환의 변환 커널을 기초로, 상기 잔차 블록에 대한 1차 변환을 수행하여 1차 변환 블록을 획득하는 단계;
    상기 1차 변환 블록을 양자화하여 획득한 양자화 블록을 비트스트림에 부호화 하는 단계를 포함하는, 컴퓨터 판독가능한 기록매체.
  12. 현재 블록의 화면 내 예측 모드를 결정하는 단계;
    상기 화면 내 예측 모드에 이용되는 참조 화소를 보간하는 단계를 포함하되,
    상기 참조 화소는 상기 현재 블록에 주변에 인접한 참조 블록에 포함되고,
    상기 보간에 적용되는 보간 필터는 8-tap 필터를 포함하는 것을 특징으로 하는, 영상 복호화 방법.
  13. 현재 블록의 화면 내 예측 모드를 결정하는 단계;
    상기 화면 내 예측 모드에 이용되는 참조 화소를 보간하는 단계를 포함하되,
    상기 참조 화소는 상기 현재 블록에 주변에 인접한 참조 블록에 포함되고,
    상기 보간에 적용되는 보간 필터는 8-tap 필터를 포함하는 것을 특징으로 하는, 영상 부호화 방법.
  14. 부호화 방법에 의해 생성된 비트스트림을 저장하는 컴퓨터 판독가능한 기록매체에 있어서,
    현재 블록의 화면 내 예측 모드를 결정하는 단계;
    상기 화면 내 예측 모드에 이용되는 참조 화소를 보간하는 단계를 포함하되,
    상기 참조 화소는 상기 현재 블록에 주변에 인접한 참조 포함되고,
    상기 보간에 적용되는 보간 필터는 8-tap 필터를 포함하는 것을 특징으로 하는, 컴퓨터 판독가능한 기록매체.
KR1020230132408A 2022-10-05 2023-10-05 동영상 인코딩 및 디코딩 장치와 방법 KR20240047943A (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
KR1020220126883 2022-10-05
KR20220126883 2022-10-05
KR20220132667 2022-10-14
KR1020220132667 2022-10-14
KR20230049909 2023-04-17
KR1020230049909 2023-04-17
KR1020230109205 2023-08-21
KR20230109205 2023-08-21

Publications (1)

Publication Number Publication Date
KR20240047943A true KR20240047943A (ko) 2024-04-12

Family

ID=90608313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230132408A KR20240047943A (ko) 2022-10-05 2023-10-05 동영상 인코딩 및 디코딩 장치와 방법

Country Status (2)

Country Link
KR (1) KR20240047943A (ko)
WO (1) WO2024076134A1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3088026C (en) * 2017-12-15 2023-10-03 Lg Electronics Inc. Image coding method on basis of transformation and device therefor
KR20210031783A (ko) * 2018-04-01 2021-03-22 주식회사 비원영상기술연구소 영상 부호화/복호화 방법 및 장치
WO2019235797A1 (ko) * 2018-06-03 2019-12-12 엘지전자 주식회사 축소된 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
JP7456441B2 (ja) * 2019-06-11 2024-03-27 ソニーグループ株式会社 画像処理装置及び画像処理方法
JP7302037B2 (ja) * 2019-06-19 2023-07-03 エルジー エレクトロニクス インコーポレイティド 画像コーディングにおいて変換カーネルセットを表す情報のシグナリング
KR20210023911A (ko) * 2021-02-10 2021-03-04 인텔렉추얼디스커버리 주식회사 인트라 예측 방법 및 장치

Also Published As

Publication number Publication date
WO2024076134A1 (ko) 2024-04-11

Similar Documents

Publication Publication Date Title
KR102402045B1 (ko) 비디오 신호 처리 방법 및 장치
KR102622465B1 (ko) 영상 코딩 시스템에서 인트라 예측에 따른 영상 디코딩 방법 및 장치
JP6155361B2 (ja) 映像復号化装置
CN109644281B (zh) 用于处理视频信号的方法和设备
EP2600613B1 (en) Intra-prediction decoding device
AU2022252821B2 (en) Image decoding method and apparatus relying on intra prediction in image coding system
KR20230110701A (ko) 영상 신호 부호화/복호화 방법 및 장치
KR20240047943A (ko) 동영상 인코딩 및 디코딩 장치와 방법
KR20200004749A (ko) 잔차신호 재배열 방법 및 영상 복호화 장치
KR102557740B1 (ko) 영상 신호 부호화/복호화 방법 및 장치
US20230029682A1 (en) Method and apparatus for controlling coding tools
KR20230115935A (ko) 영상 부호화/복호화 방법 및 장치
KR20200145773A (ko) 코딩 툴들을 제어하는 방법 및 장치
KR20210039062A (ko) 주변 움직임에 따른 영상 변환 방법 및 그 장치
KR20210039061A (ko) 서브블록 분할에 따른 영상 변환 방법 및 그 장치