KR102628530B1 - 영상 부호화 또는 복호화하기 위한 장치 및 방법 - Google Patents

영상 부호화 또는 복호화하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102628530B1
KR102628530B1 KR1020180001860A KR20180001860A KR102628530B1 KR 102628530 B1 KR102628530 B1 KR 102628530B1 KR 1020180001860 A KR1020180001860 A KR 1020180001860A KR 20180001860 A KR20180001860 A KR 20180001860A KR 102628530 B1 KR102628530 B1 KR 102628530B1
Authority
KR
South Korea
Prior art keywords
scan pattern
current block
block
transform coefficients
intra prediction
Prior art date
Application number
KR1020180001860A
Other languages
English (en)
Other versions
KR20190044472A (ko
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 PCT/KR2018/012477 priority Critical patent/WO2019078693A1/ko
Publication of KR20190044472A publication Critical patent/KR20190044472A/ko
Application granted granted Critical
Publication of KR102628530B1 publication Critical patent/KR102628530B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/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/184Methods 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 bits, e.g. of the compressed video stream

Abstract

본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 보다 상세하게는, (양자화된) 변환 계수들에 대해 수행되는 스캐닝 기법들에 관한 것이다. 본 개시의 스캐닝 기법들에 따르면, 현재 블록에 연관된 양자화된 변환 계수들을 스캔하는 데에 사용되는 스캔 패턴은 이전에 복호화된 데이터 블록(즉, 현재 블록의 주변 블록)에 관한 의존성을 더이상 가지지 않는다. 따라서, 스캔 패턴을 인트라 예측 모드와 연관시킴으로써 발생하는 계수에 관한 신택스 엘리먼트들의 파싱의 지체 문제가 해결된다.

Description

영상 부호화 또는 복호화하기 위한 장치 및 방법{Apparatus and Method for Video Encoding or Decoding}
본 발명은 영상을 효율적으로 부호화하기 위한 영상 부호화 또는 복호화에 관한 것이다. 보다 상세하게는, 변환 계수들에 대해 수행되는 스캐닝 기법들에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래 기술을 구성하는 것은 아니다.
HEVC 표준은 변환 계수들의 블록을 부호화하는 데 이용되는 세 가지 형태의 스캔 패턴을 지원한다. 도 1은 정사각형(8×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다. 도 1의 (a)는 대각(up-right diagonal) 스캔 패턴, (b) 수평(horizontal) 스캔 패턴, (c)는 수직(vertical) 스캔 패턴을 보인다. 도 1에 보인 바와 같이, 계수 블록 내 서브 블록들에 대한 스캔 순서는 각 서브 블록 내 계수들에 대한 스캔 순서와 동일한 형태이다. 예를 들어, 수평 스캔 패턴의 경우, 서브 블록들의 스캔 순서도 수평 방향이고, 각 서브 블록 내 계수들의 스캔 순서도 수평 방향이다. 다만, 실제 비트스트림에 실리는 순서는 스캔 패턴의 역순이다.
HEVC 표준에서는, 비-제로 계수들의 위치를 효율적으로 시그널링하기 위해, 몇몇 신택스 엘리먼트들이 이용된다. 예컨대, sub-block significant flag는 계수 블록에 대한 스캔 패턴 상 마지막 비-제로 계수(즉, 마지막 유효 계수)가 존재하는 마지막 유효 서브 블록에 선행하는 4×4 서브 블록들에 대해 표현되는 플래그로서, 해당 서브 블록 내 모든 계수들이 제로이면 "0", 하나 이상의 비-제로 계수가 존재하면 "1"로 표시된다. DC 성분이 포함된 좌상귀 서브 블록에 대해서는 sub-block significant flag가 시그널링되지 않는다.
도 2처럼 16×16 계수 블록에 3개의 비-제로 계수들이 존재하는 경우를 고려하자. 도 2에서, 회색으로 마킹된 픽셀은 비-제로 계수(즉, 유효 계수)를, 검정색으로 마킹된 픽셀은 스캔 패턴상 마지막 비-제로 계수(즉, 마지막 유효 계수)를 의미하며, 그 이외의 픽셀들은 모두 제로 값을 가지는 계수들을 의미한다. 대각 스캔 패턴의 경우에, 8개의 서브 블록(도 3의 (a)에 진하게 표시된 서브 블록들)에 대해 sub-block significant flag가 시그널링되어야 하며, 따라서 8비트가 소요된다. 수평 스캔 패턴의 경우, 2개의 서브 블록(도 3의 (b)에 진하게 표시된 서브 블록들)에 대해 sub-block significant flag가 시그널링되어야 하며, 따라서 2비트가 소요된다. 이와 같이, 주어진 계수 블록에 대해, sub-block significant flag가 시그널링되어야 하는 서브 블록들의 수가 스캔 패턴에 따라 달라지기 때문에, 계수 블록의 스캔 패턴을 알기 전에는 계수들의 관련 신택스 엘리먼트들의 파싱이 불가능하다.
HEVC에서는, 주어진 블록이 인터 예측 방식으로 부호화된 경우에는 해당 블록과 관련된 변환 계수들의 블록은 대각 스캔 패턴으로 스캐닝된다.
일부 인트라 코딩 모드는 종종, 블록의 좌측 수직 에지 또는 블록의 상측 에지를 향해 바이어스되는 유효 계수들의 분포들을 발생시킨다. 따라서, 다수의 경우에 있어서, 가로축 방향의 모드로 예측되는 블록의 계수들은 수직 스캔 패턴으로 스캔되는 것이 유리하고, 세로축 방향의 모드로 예측되는 블록의 계수들은 수평 스캔 패턴으로 스캔되는 것이 유리하다. 이를 고려하여, HEVC에서는, 일부 인트라 예측 모드(모드 번호 6 내지 14)에 대해 수직 스캔 패턴을 사용하고, 다른 일부 인트라 예측 모드(모드 번호 22 내지 30)까지는 수평 스캔 패턴을 사용하며, 나머지 인트라 예측 모드들에서는 대각 스캔 패턴을 사용한다. 즉, 주어진 블록이 인트라 예측 방식으로 부호화된 경우에는 인트라 예측 모드에 따라 상기 세 가지 스캔 패턴 중 하나를 선택하여 해당 블록의 계수들을 스캐닝하게 된다.
이와 같이, HEVC에서는, 주어진 블록이 인트라 예측 방식으로 부호화된 경우에, 해당 인트라 예측 모드가 무엇이냐에 따라 해당 블록과 관련된 계수 블록의 스캔 패턴이 정해진다. 더욱이, 어떠한 인트라 예측 모드가 사용되었는지를 시그널링함에 있어서, 사용된 인트라 예측 모드의 번호(혹은 인덱스) 자체가 시그널링 되지 않고, MPM 인덱스 값이나 non-MPM 인덱스 값의 형태로 인트라 예측 모드가 시그널링 된다. 따라서, 해당 블록의 MPM 및 non-MPM 구성 정보를 알아야 해당 블록의 실제 인트라 예측 모드를 알 수 있으며, 해당 블록의 MPM 및 non-MPM 정보를 알기 위해서는 주변 블록의 인트라 예측 모드를 알아야 하고, 그 주변 블록의 인트라 예측 모드를 알기 위해서는 그 주변 블록의 주변 블록 정보를 알아야 한다.
이상에서 설명한 바와 같이, 주어진 블록의 스캔 패턴을 알기 전에는 해당 블록과 관련된 변환 계수들에 관한 신택스 엘리먼트들의 파싱이 불가능한데, 주어진 블록이 인트라 예측 방식으로 부호화된 경우에는, 영상 복호화 장치는 해당 블록의 인트라 예측 모드를 결정하기 전까지는 신택스 엘리먼트들의 파싱이 불가능하다. 즉, 주어진 블록의 주변 블록, 그 주변 블록의 주변 블록들의 인트라 예측 모드를 결정하기 전까지 변환 계수들에 관한 신택스 엘리먼트들의 파싱이 지연된다.
본 발명은 위에서 설명한 단점을 제거할 수 있는 스캔 패턴의 결정 기법들을 제공하는 데 그 목적이 있다.
본 발명의 일 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 방법으로서, 현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계; 상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및 상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 포함하는 방법을 제공한다.
본 발명의 다른 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 장치로서, 메모리 및 다음과 같은 단계들을 수행하도록 구성된 하나 이상의 프로세서들을 포함하는 장치를 제공한다. 상기 하나 이상의 프로세서들은, 현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계; 상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및 상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 변환 계수들의 블록이 정사각형이면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 수행하도록 구성된다.
본 발명의 또 다른 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 방법으로서, 상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계를 포함하는 방법을 제공한다.
본 발명의 또 다른 측면에 따르면, 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 장치로서, 메모리 및 다음과 같은 단계들을 수행하도록 구성된 하나 이상의 프로세서들을 포함하는 장치를 제공한다. 상기 하나 이상의 프로세서들은, 상기 변환 계수들의 블록 내에서 마지막 유효 계수의 위치를 나타내는 신택스 엘리먼트를 파싱하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 큰지 여부를 판단하는 단계; 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크면, 복수의 가용 스캔 패턴 중에서 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴을 지시하는 신택스 엘리먼트를 파싱하는 단계; 및 상기 마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않으면, 상기 복수의 가용 스캔 패턴 중에서 디폴트로 설정된 스캔 패턴을 상기 변환 계수들의 1차원 어레이에 대한 스캔 패턴으로 결정하는 단계를 수행하도록 구성된다.
도 1은 정사각형(8×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다.
도 2는 3개의 비-제로 계수들이 존재하는 16×16 계수 블록의 일례를 도시한 도면이다.
도 3은 도 2의 16×16 계수 블록에 대해 유효한 서브 블록인지 여부를 시그널링해야 하는 서브 블록들의 개수를 설명하기 위한 도면이다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 블록도이다.
도 5는 QTBT 구조를 이용한 블록 분할의 예시도이다.
도 6은 복수의 인트라 예측 모드에 대한 예시를 나타낸다.
도 7은 현재 블록의 주변블록에 대한 예시도이다.
도 8은 비정사각형(8×16 혹은 16×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다.
도 9는 도 4의 영상 부호화 장치에서 사용되는 엔트로피 부호화부의 일 예를 도시하는 블록도이다.
도 10은 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치를 도시한 것이다.
도 11은 도 10의 영상 복호화 장치에서 사용되는 엔트로피 복호화부의 일 예를 도시하는 블록도이다.
도 12는 본 발명의 일 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다.
도 13은 본 발명의 다른 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성 요소들에 식별 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하에서 개시된 일부 스캐닝 기법은, 가로로 긴 직사각형 블록은, (참조 픽셀로부터 가까울수록 인트라 예측이 정교할 것이므로) 세로축 방향의 인트라 예측 모드로 부호화되는 경향이 강하고, 세로로 긴 직사각형 블록은 가로축 방향의 인트라 예측 모드로 부호화되는 경향이 강하다는 경험에 착안한다. 또한, 세로축 방향의 인트라 예측 모드는 종종 상측 수평 에지를 향해 바이어스되는 유효 계수들의 분포들을 발생시키고, 가로축 방향의 인트라 예측 모드는 좌측 수직 에지를 향해 바이어스되는 유효 계수들의 분포들을 발생시킨다는 점에 주목한다. 따라서, 가로로 긴 직사각형의 변환 계수들의 블록은 수평 스캔 패턴으로 스캐닝되는 것이 유리하고, 세로로 긴 직사각형의 변환 계수들의 블록은 수직 스캔 패턴으로 스캐닝되는 것이 유리하다고 볼 수 있다. 이에, 개시된 일부 스캐닝 기법에서는, 인트라 예측된 블록의 변환 계수들의 블록에 대한 스캔 패턴을 결정함에서, 스캔 패턴을 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지)에 연관시킨다. 즉, 현재 블록의 형태에 따라 스캔 패턴을 결정한다.
이하에서 개시된 다른 일부 스캐닝 기법은 복수의 가용 스캔 패턴들(예컨대, 대각, 수평, 및 수직 스캔 패턴) 중에서 실제 적용된 스캔 패턴을 명시적으로 시그널링하는 것이다. 예컨대, 복수의 가용 스캔 패턴들을 적용한 결과들을 압축 및/또는 영상 품질 측면에서 비교함으로써 영상 부호화 장치에서 바람직한 스캔 패턴을 결정할 수 있다. 영상 부호화 장치에 의해 선택된 스캔 패턴은 비트스트림 내의 인덱스로서(예를 들어, 블록 레벨 신택스로서) 영상 복호화 장치에 전달될 수 있다.
본 개시의 스캐닝 기법들에 따르면, 현재 블록에 연관된 양자화된 변환 계수들을 스캔하는 데에 사용되는 스캔 패턴은 현재 블록에 적용된 인트라 예측 모드(그에 따라, 이전에 복호화된 데이터 블록)에 관한 의존성을 더이상 가지지 않는다. 따라서, 스캔 패턴을 인트라 예측 모드와 연관시킴으로써 발생하는 계수에 관한 신택스 엘리먼트들의 파싱의 지연 문제가 해결된다. 또한, 복호화 장치는 인트라 예측 모드의 결정 프로세스와 스캔 패턴에 따른 2차원 변환 계수들의 블록의 재구성 프로세스를 병렬적으로 수행할 수 있다.
도 4는 본 개시의 기술들을 구현할 수 있는 영상 부호화 장치에 대한 블록도이다.
영상 부호화 장치는 블록 분할부(410), 예측부(420), 감산기(430), 변환부(440), 양자화부(445), 엔트로피 부호화부(450), 역양자화부(460), 역변환부(465), 가산기(470), 필터부(480) 및 메모리(490)를 포함한다. 영상 부호화 장치는 각 구성요소는 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
블록 분할부(410)는 영상을 구성하는 각 픽처(picture)를 복수의 CTU(Coding Tree Unit)으로 분할한 이후에, CTU를 트리 구조(tree structure)를 이용하여 반복적으로(recursively) 분할한다. 트리 구조에서의 리프 노드(leaf node)가 부호화의 기본 단위인 CU (coding unit)가 된다. 트리 구조로는 상위 노드(혹은 부모 노드)가 동일한 크기의 네 개의 하위 노드(혹은 자식 노드)로 분할되는 쿼드트리(QuadTree, QT), 또는 이러한 QT 구조 및 상위 노드가 두 개의 하위 노드로 분할되는 바이너리트리(BinaryTree, BT) 구조를 혼용한 QTBT (QuadTree plus BinaryTree) 구조가 사용될 수 있다. 즉, CTU를 다수의 CU로 분할하기 위해 QTBT를 사용할 수 있다.
QTBT (QuadTree plus BinaryTree) 구조에서, CTU는 먼저 QT 구조로 분할될 수 있다. 쿼드트리 분할은 분할 블록(splitting block)의 크기가 QT에서 허용되는 리프 노드의 최소 블록 크기(MinQTSize)에 도달 할 때까지 반복 될 수 있다. 쿼드트리의 리프 노드가 BT에서 허용되는 루트 노드의 최대 블록 크기(MaxBTSize)보다 크지 크지 않은 경우, BT 구조로 더 파티셔닝될 수 있다. BT에서는 복수의 분할 타입이 존재할 수 있다. 예컨대, 일부 예시에서, 해당 노드의 블록을 동일 크기의 두 개 블록으로 가로로 분할하는 타입(즉, symmetric horizontal splitting)과 세로로 분할하는 타입(즉, symmetric vertical splitting) 두 가지가 존재할 수 있다. 또한, 해당 노드의 블록을 서로 비대칭 형태의 두 개의 블록으로 분할하는 타입이 추가로 더 존재할 수도 있다. 비대칭 형태로는 해당 노드의 블록을 1:3의 크기 비율을 가지는 두 개의 직사각형 블록으로 분할하는 형태를 포함할 수 있고, 혹은 해당 노드의 블록을 대각선 방향으로 분할하는 형태를 포함할 수도 있다.
도 5은 QTBT 구조를 이용한 블록 분할의 예시도이다. 도 5의 (a)는 QTBT 구조에 의해 블록이 분할되는 예시이고, (b)는 이를 트리구조로 표현한 것이다. 도 5에서 실선은 QT 구조에 의한 분할을, 점선은 BT 구조에 의한 분할을 나타낸다. 또한, 도 5의 (b)에서 layer 표기와 관련하여, 괄호가 없는 것은 QT의 레이어를, 괄호가 있는 것은 BT의 레이어를 나타낸다. 점선으로 표현된 BT 구조에서 숫자는 분할 타입 정보를 나타낸다.
블록 분할부(410)가 QTBT 구조에 의해 CTU를 분할하여 생성하는 분할 정보는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 전달된다.
이하에서는, 부호화 또는 복호화하고자 하는 CU(즉, QTBT의 리프 노드)에 해당하는 블록을 '현재 블록'이라 칭한다.
예측부(420)는 현재 블록을 예측하여 예측블록을 생성한다. 예측부(420)는 인트라 예측부(422)와 인터 예측부(424)를 포함한다.
인트라 예측부(422)는 현재 블록이 포함된 현재 픽처 내에서 현재 블록의 주변에 위치한 픽셀(참조 픽셀)들을 이용하여 현재 블록 내의 픽셀들을 예측한다. 예측 방향에 따라 복수의 인트라 예측 모드가 존재하며, 각 예측 모드에 따라 사용할 주변 픽셀과 연산식이 다르게 정의된다. 특히, 인트라 예측부(422)는 현재 블록을 부호화하는데 사용할 인트라 예측 모드를 결정할 수 있다. 일부 예들에서, 인트라 예측부(422)는 여러 인트라 예측 모드들을 사용하여 현재 블록을 인코딩하고, 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측부(422)는 여러 테스트된 인트라 예측 모드들에 대한 레이트 왜곡(rate-distortion) 분석을 사용하여 레이트 왜곡 값들을 계산하고, 테스트된 모드들 중 최선의 레이트 왜곡 특징들을 갖는 인트라 예측 모드를 선택할 수도 있다.
도 6은 복수의 인트라 예측 모드에 대한 예시를 나타낸다.
도 6에 보인 바와 같이, 복수의 인트라 예측 모드는 2개의 비방향성 모드(planar 모드 및 DC 모드)와 65개의 방향성 모드를 포함할 수 있다.
인트라 예측부(422)는 복수의 인트라 예측 모드 중에서 하나의 인트라 예측 모드를 선택하고, 선택된 인트라 예측 모드에 따라 결정되는 주변 픽셀(참조 픽셀)과 연산식을 사용하여 현재 블록을 예측한다. 선택된 인트라 예측 모드에 대한 정보는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 전달된다.
한편, 인트라 예측부(422)는, 복수의 인트라 예측 모드 중 어느 모드가 현재 블록의 인트라 예측 모드로 사용되었는지를 지시하는 인트라 예측 모드 정보를 효율적으로 부호화하기 위해, 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드로서 가능성이 높은 일부의 모드를 MPM(most probable mode)으로 결정할 수 있다. 그리고, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보를 생성하여 엔트로피 부호화부(450)로 전달한다. 일반적으로, 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 엔트로피 부호화부(450)로 전달한다. 반면 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않은 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 엔트로피 부호화부(450)로 전달한다.
이하에서는, MPM 리스트를 구성하는 방법을 설명한다. 여기서는, 6개의 MPM으로 MPM 리스트를 구성하는 것을 예로 설명하나, 본 발명이 이에 한정되는 것은 아니며 MPM 리스트에 포함되는 MPM의 개수는 3개 내지 10개의 범위 내에서 선택될 수 있다.
먼저, 현재 블록의 주변 블록들의 인트라 예측 모드를 이용하여 MPM 리스트를 구성한다. 주변 블록은, 예컨대 도 7에 도시된 바와 같이, 현재 블록의 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL) 중에서 전부 또는 일부를 포함할 수 있다.
이 주변 블록들의 인트라 예측 모드가 MPM 리스트에 포함된다. 여기서, 좌측블록(L), 상단블록(A), 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순서로 유효한 블록의 인트라 예측 모드가 MPM 리스트에 포함되고, 이 주변 블록들의 인트라 예측 모드들에 planar 모드 및 DC 모드를 추가하여 후보를 구성한다. 또는, 좌측블록(L), 상단블록(A), planar 모드, DC 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL)의 순으로 유효한 모드가 MPM 리스트에 추가될 수도 있다. 또는, 좌측블록(L), 상단블록(A), planar 모드, 좌하단블록(BL), 우상단블록(AR), 좌상단블록(AL), DC 모드의 순으로 유효한 모드가 MPM 리스트에 추가될 수도 있다.
MPM 리스트에는 서로 다른 인트라 예측 모드만이 포함된다. 즉, 중복된 모드(duplicated mode)가 존재하는 경우 그 중 하나의 모드만이 MPM 리스트에 포함된다.
만약, 리스트 내의 MPM의 개수가 기결정된 개수(예컨대, 6)보다 작은 경우에는, 리스트 내의 방향성 모드들에 -1 또는 +1을 가산하여 MPM을 유도할 수도 있다. 또한, 리스트 내의 MPM의 개수가 기결정된 개수보다 작은 경우에는, 수직 모드(vertical mode), 수직 모드(horizontal mode), 대각선 모드(diagonal mode) 등의 순서로 부족한 개수만큼의 모드를 MPM 리스트에 추가할 수도 있다.
인터 예측부(424)는 현재 픽처보다 먼저 부호화 및 복호화된 참조 픽처 내에서 현재 블록과 가장 유사한 블록을 탐색하고, 그 탐색된 블록을 이용하여 현재 블록에 대한 예측블록을 생성한다. 그리고, 현재 픽처 내의 현재 블록과 참조 픽처 내의 예측블록 간의 변위(displacement)에 해당하는 움직임벡터(motion vector)를 생성한다. 현재 블록을 예측하기 위해 사용된 참조 픽처에 대한 정보 및 움직임벡터에 대한 정보를 포함하는 움직임 정보는 엔트로피 부호화부(450)에 의해 부호화되어 영상 복호화 장치로 전달된다.
감산기(430)는 현재 블록으로부터 인트라 예측부(422) 또는 인터 예측부(424)에 의해 생성된 예측블록을 감산하여 잔차 블록을 생성한다.
변환부(440)는 공간 영역의 픽셀 값들을 가지는 잔차 블록 내의 잔차 신호를 주파수 도메인의 변환 계수로 변환한다. 변환부(440)는 잔차 블록 내의 잔차 신호들을 현재 블록의 크기를 변환 단위로 사용하여 변환할 수 있으며, 또는 잔차 블록을 더 작은 복수의 서브블록을 분할하고 서브블록 크기의 변환 단위로 잔차 신호들을 변환할 수도 있다. 잔차 블록을 더 작은 서브블록으로 분할하는 방법은 다양하게 존재할 수 있다. 예컨대, 기정의된 동일한 크기의 서브블록으로 분할할 수도 있으며, 또는 잔차 블록을 루트 노드로 하는 QT(quadtree) 방식의 분할을 사용할 수도 있다.
양자화부(445)는 변환부(440)로부터 출력되는 변환 계수들을 양자화하고, 양자화된 변환 계수들을 엔트로피 부호화부(450)로 출력한다.
역양자화부(460)는 양자화부(445)로부터 출력되는 양자화된 변환 계수들을 역양자화하여 변환 계수들을 생성한다. 역변환부(465)는 역양자화부(460)로부터 출력되는 변환 계수들을 주파수 도메인으로부터 공간 도메인으로 변환하여 잔차블록을 복원한다.
가산부(470)는 복원된 잔차블록과 예측부(420)에 의해 생성된 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 다음 순서의 블록을 인트라 예측할 때 참조 픽셀로서 사용된다.
필터부(480)는 블록 단위의 부호화/복호화로 인해 발생하는 블록킹 현상(blocking artifact)을 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(490)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 부호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
엔트로피 부호화부(450)는 양자화된 변환 계수들을 CABAC 등의 엔트로피 부호화 방식을 사용하여 부호화하여 비트스트림을 생성한다. 또한, 엔트로피 부호화부(450)는 모션 벡터 정보 및 영상 복호화 장치에서 영상 데이터를 복호화할 때 유용한 다양한 신택스 엘리먼트들을 엔트로피 부호화할 수도 있다. 신택스 엘리먼트들은, 이를테면, 블록 분할 정보, 예측 타입에 대한 정보, 인트라 예측정보, 인터 예측정보 등을 포함할 수 있다. 또한, 신택스 엘리먼트들은 특정 계수들이 유효한지 (예를 들어, 비-제로인지) 여부를 나타내는 유효 계수 플래그 및 특정 계수가 마지막 유효 계수인지 여부를 나타내는 마지막 유효 계수 플래그를 갖는 유효도 맵을 포함할 수도 있다.
양자화된 변환 계수들의 블록(즉, 계수 블록)을 엔트로피 코딩하기 위해, 스캐닝 프로세스가 일반적으로 수행되어 계수 블록 내의 계수들의 2차원 어레이가, 특정 스캔 패턴에 따라, 변환 계수들의 순서화된 1차원 어레이로 처리되도록 한다. 이러한 스캐닝 프로세스는 복수의 가용 스캔 패턴 중 하나를 이용하여 계수 블록에 대해 수행된다. 변환 계수들이 스캐닝되었다면, 엔트로피 부호화부(450)는 엔트로피 부호화를 계수들의 1차원 어레이에 적용한다. 스캐닝은 유효(즉, 비-제로) 계수들의 포지션들을 부호화하기 위해, 유효(즉, 비제로) 계수들의 레벨들을 부호화하기 위해, 그리고 유효 계수들의 부호들을 부호화하기 위해 적용될 수도 있다.
본 개시에서는 엔트로피 부호화부(450)가 스캐닝을 수행하는 것으로 설명하고 있으나, 다른 예들에서는 다른 처리 유닛들(예컨대, 양자화부(460))이 본 개시의 스캐닝 기법들을 수행할 수도 있다는 점을 유의한다.
도 8은 비정사각형(8×16 혹은 16×8)의 계수 블록의 부호화에 이용되는 예시적인 스캔 패턴들을 나타내는 도면이다. 이들 스캔 패턴은 대각선 패턴(도 8의 (a)), 수직 스캔 패턴(도 8의 (b)), 및 수평 스캔 패턴(도 8의 (c))을 포함한다. 예시된 스캔 패턴들은 각각의 계수 블록 의 좌상귀 계수에서 시작하고 우하귀 계수에서 끝난다. 또한, 예시된 스캔 패턴들에서, 계수 블록 내 4×4 서브 블록들 및 각 서브 블록 내 계수들에 대해서 동일한 형태의 스캔 형태를 보인다.
도 9은 도 4의 영상 부호화 장치에서 사용되는 엔트로피 부호화부의 일 예를 도시하는 블록도이다. 도 9에 도시된 바와 같이, 엔트로피 부호화부는 스캔 패턴 선택부(910), 스캔부(920), 엔트로피 부호화 엔진(930), 및 스캔 패턴 메모리(940)를 포함할 수 있다. 도 9에는 엔트로피 부호화부의 기능적인 측면에서 구분된 콤포넌트들(910~940)이 도시되어 있지만, 이들 콤포넌트들(910~940)은 서로 고도로 통합될 수도 있음에 유의한다.
스캔 패턴 선택부(910)는 가용 스캔 패턴들(예컨대, 대각, 수평, 및 수직 스캔 패턴) 중에서, 유효도 맵 스캔 및 계수 레벨 스캔을 위해 스캔부(920)에 의해 사용될, 스캔 패턴을 선택한다. 몇몇 예시들에서, 스캔 패턴 선택부(910)는 가용한 스캔 패턴들을 적용한 결과들을 압축 및/또는 영상 품질 측면에서 비교함으로써, 바람직한 스캔 패턴을 결정할 수 있다. 몇몇 예시들에서, 스캔 패턴 선택부(910)는 예측 타입, 블록 사이즈, 변환 여부, 또는 부호화된 영상의 다른 특징들에 기초하여, 복수의 가용한 스캔 패턴들에서 하나의 스캔 패턴을 선택할 수도 있다. 스캔 메모리(940)는 특정 상황들에 대해 어떤 스캔 패턴을 사용할지를 정의하는 명령들, 테이블 및/또는 데이터를 저장할 수도 있다. 예컨대, 부호화하고자 하는 현재 블록이 인터 예측된 경우, 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예컨대, 대각 스캐닝)일 수 있다. 일부 실시예에서, 계수 블록 내 마지막 유효 계수의 위치가 기설정된 임계 위치(예컨대, 계수 블록의 크기의 절반)보다 크지 않은 경우에, 디폴트로 설정된 스캔 패턴(예컨대, 대각 스캐닝)이 선택될 수 있다. 일부 실시예에서, 부호화하고자 하는 현재 블록이 인트라 예측된 경우, 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지, 블록이 기설정된 임계값보다 큰지)에 따라 복수의 가용한 스캔 패턴 중에서 하나의 스캔 패턴이 선택될 수 있다.
스캔부(920)는 스캔 패턴 선택부(910)로부터 스캔 패턴을 수신하며, 수신된 스캔 패턴을 변환 계수들의 블록에 적용하여 변환 계수들의 블록으로부터 계수들의 1차원 어레이를 생성한다.
엔트로피 부호화 엔진(930)은 엔트로피 부호화 프로세스를 스캐닝된 계수들에 적용하여 비트스트림을 생성할 수 있다. 엔트로피 부호화 프로세스는 계수들이 1차원 어레이로 스캐닝된 후에 적용될 수도 있다. 다른 예들에서는, 계수들은 스캔 패턴을 사용하여 2차원 어레이(즉, 계수 블록) 내에서 직접적으로 처리될 수도 있다. 변환 계수 데이터에 추가하여, 비트스트림 내의 부호화된 영상을 복호화하는 데에 유용한 움직임벡터 데이터 및 다양한 신택스 엘리먼트들이 비트스트림 내에 부호화될 수 있다.
추가적으로, 엔트로피 부호화부는 엔트로피 부호화 프로세스에서 사용되는 스캔 패턴을 나타내는 시그널링을 비트스트림 내에 제공할 수도 있다. 예컨대, 스캔 패턴은 비트스트림 내의 인덱스로서(예를 들어, 블록 레벨 신택스로서) 영상 복호화 장치에 전달될 수도 있다. 특정 상황들에 대해 어떤 스캔 패턴을 사용할지가 미리 설정되어 있다면, 비트스트림 내에 시그널링을 제공할 필요성이 존재하지 않을 수도 있다.
이하에서는 영상 복호화 장치에 대해 설명한다.
도 10는 본 개시의 기술들을 구현할 수 있는 영상 복호화 장치를 도시한 것이다.
영상 복호화 장치는 엔트로피 복호화부(1010), 역양자화부(1020), 역변환부(1030), 예측부(1040), 가산기(1050), 필터부(1060) 및 메모리(1070)를 포함한다. 도 4의 영상 부호화 장치와 마찬가지로, 영상 복호화 장치는 각 구성요소가 하드웨어 칩으로 구현될 수 있으며, 또는 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.
엔트로피 복호화부(1010)는 영상 부호화 장치가 생성한 비트스트림에 CABAC 등의 엔트로피 복호화 프로세스를 적용하여, 현재 블록의 양자화된 변환 계수들의 1차원 어레이를 재구성할 수 있다. 또한, 엔트로피 복호화부(1010)는 엔트로피 복호화 프로세스를 적용하여 비트스트림 내에 부호화된 영상을 복호화하는 데에 유용한 움직임벡터 데이터, 및 다양한 신택스 엘리먼트들을 재생성할 수도 있다.
엔트로피 복호화부(1010)는 SPS (Sequence Parameter Set) 또는 PPS (Picture Parameter Set)과 같은 하이 레벨 신택스(high level syntax)로부터 CTU size에 대한 정보를 추출하여 CTU의 크기를 결정하고, 픽처를 결정된 크기의 CTU로 분할한다. 그리고 CTU를 트리 구조의 최상위 레이어, 즉, 루트 노드로 결정하고, CTU에 대한 분할 정보를 추출함으로써 CTU를 트리 구조(예컨대, QTBT 구조)를 이용하여 분할한다.
엔트로피 복호화부(1010)는 트리 구조의 분할을 통해 복호화하고자 하는 현재 블록(현재 블록)을 결정하게 되면, 현재 블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 지시하는 예측 타입에 대한 정보를 추출한다.
예측 타입 정보가 인트라 예측을 지시하는 경우, 엔트로피 복호화부(1010)는 현재 블록의 인트라 예측정보(인트라 예측 모드)에 대한 신택스 요소를 추출한다. 먼저, 엔트로피 복호화부(1010)는 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되는지 여부를 지시하는 모드 정보(즉, MPM 플래그)를 추출한다. 또한, 일반적으로, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우, MPM 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제1 인트라 식별정보를 추출하고, 인트라 모드 부호화 정보가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택되지 않음을 지시하는 경우, MPM이 아닌 나머지 모드들 중 어느 모드가 현재 블록의 인트라 예측 모드로 선택되었는지를 지시하기 위한 제2 인트라 식별정보를 추출한다.
한편, 엔트로피 복호화부(1010)는 현재 블록의 양자화된 변환 계수들의 1차원 어레이를, 영상 부호화 장치의 엔트로피 부호화부(460)에 의해 사용된 스캔 패턴을 미러링하는 스캔 패턴(즉, 역 스캔 패턴)을 사용하여 스캔하여, 다시 2차원 블록 포맷의 양자화된 변환 계수들의 블록(즉, 계수 블록)으로 재변환할 수 있다.
엔트로피 복호화부(1010)는 부호화된 비트스트림 내의 시그널링에 기초하여 스캔 패턴을 결정할 수도 있다. 예를 들어, 엔트로피 복호화부(1010)는 스캔 패턴을 명백하게 시그널링하는 신택스 엘리먼트를 수신할 수도 있다. 또한, 몇몇 실시예들에서, 엔트로피 복호화부(1010)는, 시그널링 없이, 스캔 패턴을 추론하는 것이 가능할 수도 있다. 스캔 패턴의 추론은 예측 타입, 블록 사이즈, 변환 유무 등의 부호화된 영상의 다른 특징들에 기초할 수도 있다. 일부 예시에서, 영상 부호화 장치로부터 시그널링된 계수 블록 내 마지막 유효 계수의 위치가 기설정된 임계값(예컨대, 계수 블록의 크기의 절반)보다 큰 경우에, 엔트로피 복호화부(1010)는 디폴트로 설정된 스캔 패턴(예컨대, 대각 스캐닝)을 사용할 수 있다. 일부 예시에서, 복호화하고자 하는 현재 블록이 인터 예측된 경우, 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예컨대, 대각 스캔)일 수 있다. 일부 예시에서, 복호화하고자 하는 현재 블록이 인트라 예측된 경우, 스캔 패턴은 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지, 블록이 기설정된 임계값보다 큰지)에 따라 복수의 가용한 스캔 패턴 중에서 추론될 수 있다.
엔트로피 복호화부(1010)는 2차원의 양자화된 변환 계수들의 블록(즉, 계수 블록)을 재구성하기 위해, 결정된 스캔 패턴을 기초로, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱할 수 있다.
역양자화부(1020)는 양자화된 변환계수들을 역양자화하고 역변환부(1030)는 역양자화된 변환계수들을 주파수 도메인으로부터 공간 도메인으로 역변환하여 잔차신호들을 복원함으로써 현재 블록에 대한 잔차블록을 생성한다.
예측부(1040)는 인트라 예측부(1042) 및 인터 예측부(1044)를 포함한다. 인트라 예측부(1042)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화되고, 인터 예측부(1044)는 현재 블록의 예측 타입인 인트라 예측일 때 활성화된다.
인트라 예측부(1042)는 엔트로피 복호화부(1010)로부터 추출된 인트라 예측 모드에 대한 신택스 요소로부터 복수의 인트라 예측 모드 중 현재 블록의 인트라 예측 모드를 결정하고, 인트라 예측 모드에 따라 현재 블록 주변의 참조 픽셀들을 이용하여 현재 블록을 예측한다.
현재 블록의 인트라 예측 모드를 결정하기 위해, 인트라 예측부(1042)는 현재 블록의 주변 블록으로부터 기 결정된 개수의 MPM들을 포함하는 MPM 리스트를 구성한다. MPM 리스트를 구성하는 방법은 도 4의 인트라 예측부(422)와 동일하다.
일반적으로, 인트라 예측의 모드 정보(즉, MPM 플래그)가 현재 블록의 인트라 예측 모드가 MPM 중에서 선택됨을 지시하는 경우에는, 인트라 예측부(1042)는 MPM 리스트 내의 MPM들 중 제1 인트라 식별정보에 의해 지시되는 MPM을 현재 블록의 인트라 예측 모드로 선택한다. 반면, 모드 정보가 현재 블록의 인트라 예측 모드가 MPM으로부터 선택되지 않음을 지시하는 경우, 제2 인트라 식별정보를 이용하여 MPM 리스트 내의 MPM들을 제외한 나머지 인트라 예측 모드들 중에서 현재 블록의 인트라 예측 모드를 결정한다.
인터 예측부(1044)는 엔트로피 복호화부(1010)로부터 추출된 신택스 요소를 이용하여 현재 블록의 움직임정보를 결정하고, 결정된 움직임정보를 이용하여 현재 블록을 예측한다.
가산기(1050)는 역변환부로부터 출력되는 잔차블록과 인터 예측부 또는 인트라 예측부로부터 출력되는 예측블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록 내의 픽셀들은 이후에 복호화할 블록을 인트라 예측할 때의 참조픽셀로서 활용된다.
필터부(1060)는 블록 단위의 복호화로 인해 발생하는 블록킹 현상(blocking artifact)를 제거하기 위해 복원된 블록 간의 경계를 디블록킹 필터링하고 메모리(1070)에 저장한다. 한 픽처 내의 모든 블록들이 복원되면, 복원된 픽처는 이후에 복호화하고자 하는 픽처 내의 블록을 인터 예측하기 위한 참조 픽처로 사용된다.
도 11은 도 10의 영상 복호화 장치에서 사용되는 엔트로피 복호화부(1010)의 일 예를 도시하는 블록도이다. 도 11에 도시된 바와 같이, 엔트로피 복호화부는 스캔 패턴 선택부(1110), 스캔부(1120), 엔트로피 복호화 엔진(1130), 및 스캔 패턴 메모리(1140)를 포함할 수 있다. 도 11에는 엔트로피 복호화부의 기능적인 측면에서 구분된 콤포넌트들(1110~1140)이 도시되어 있지만, 이들 콤포넌트들(1110~1140)은 서로 고도로 통합될 수도 있음에 유의한다.
엔트로피 복호화 엔진(1130)은 엔트로피 복호화 프로세스, 예를 들어, CABAC 프로세스를 비트스트림에 적용하여 변환 계수들의 1차원 어레이를 재구성할 수 있다. 잔차 변환 계수 데이터에 추가하여, 엔트로피 복호화 엔진(1130)은 비트스트림에 엔트로피 복호화를 적용하여 비트스트림 내에 부호화된 영상을 복호화하는 데에 유용한 다양한 신택스 엘리먼트들을 재구성할 수도 있다.
스캔 패턴 선택부(1110)는 가용한 스캔 패턴들(예컨대, 대각, 수평, 및 수직 스캔 패턴) 중에서, 스캔부(1120)에 의해 사용될, 스캔 패턴을 선택한다. 몇몇 예시들에서, 스캔 패턴 선택부(1110)는 비트스트림 내의 시그널링에 기초하여 스캔 패턴을 결정할 수 있다. 예를 들어, 스캔 패턴 선택부(1110)는 스캔 패턴을 명시적으로 시그널링하는 신택스 엘리먼트(예컨대, 인덱스)을 엔트로피 복호화 엔진로부터 수신할 수도 있다. 몇몇 예시들에서, 스캔 패턴 선택부(1110)는, 시그널링의 수신 없이, 스캔 패턴을 추론할 수 있다. 스캔 패턴은 예측 타입, 블록 사이즈, 변환 여부, 또는 부호화된 영상의 다른 특징들에 기초할 수도 있다. 일부 실시예에서, 복호화하고자 하는 현재 블록이 인터 예측된 경우, 스캔 패턴은 미리 정해진 하나의 스캔 패턴(예컨대, 대각 스캔)일 수 있다. 일부 실시예에서, 복호화하고자 하는 현재 블록이 인트라 예측된 경우, 블록의 형태(예컨대, 가로로 긴 직사각형인지, 세로로 긴 직사각형인지, 정사각형인지, 블록이 기설정된 임계값보다 큰지)에 따라 복수의 가용한 스캔 패턴 중에서 추론될 수 있다. 스캔 패턴 메모리(1140)는 스캔 패턴을 정의하는 명령들, 테이블 및/또는 데이터를 저장할 수도 있다.
스캔부(1120)는 스캔 패턴 선택부(1110)로부터 스캔 패턴을 수신하며, 수신된 스캔 패턴을 적용하여 변환 계수들의 1차원 어레이로부터 2차원 변환 계수의 블록을 생성한다.
도 12는 본 발명의 일 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다. 도 12에 예시된 방법은 예를 들어, 도 10의 영상 복호화 장치의 엔트로피 복호화부(1010)에 의해 수행될 수도 있다. 다른 예들에서, 영상 복호화 장치의 하나 이상의 다른 유닛들이 추가적으로 본 개시의 기법들을 수행하는 데 관여할 수도 있다.
사전 단계로서, 영상 복호화 장치는, 영상 부호화 장치로부터 수신한 비트스트림을 엔트로피 복호화하여, 블록 분할과 관련된 정보를 추출하여 복호화하고자 하는 현재 블록을 결정할 수 있다.
영상 복호화 장치는, 현재 블록이 인트라 예측되었는지 아니면 인터 예측되었는지를 판단하기 위해, 비트스트림으로부터 예측 타입에 대한 정보를 추출한다(S1210).
예측 타입에 대한 정보가 인터 예측되었다고 지시하는 경우에(S1210의 ‘아니오’), 영상 복호화 장치는 대각 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1250).
예측 타입에 대한 정보가 인트라 예측되었다고 지시하는 경우에(S1210의 ‘예’), 영상 복호화 장치는 현재 블록의 너비 및 높이가 각각 임계값(th)보다 작은지 여부를 더 판단한다(S1220). 현재 블록의 너비 및 높이 중 적어도 하나가 임계값보다 작지 않은 경우에(S1220의 ‘아니오’), 영상 복호화 장치는 대각 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1250). 현재 블록의 너비 및 높이가 각각 임계값보다 작은 경우에(S1220의 ‘예’), 영상 복호화 장치는 현재 블록의 너비와 높이가 서로 동일한지 여부(즉, 현재 블록이 정사각형인지 여부)를 더 판단한다(S1230).
현재 블록의 너비와 높이가 동일한 경우에(즉, 현재 블록이 정사각형인 경우에; S1230의 ‘예’), 영상 복호화 장치는 대각 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1250).
현재 블록의 너비와 높이가 동일하지 않은 경우에(즉, 현재 블록이 정사각형이 아닌 경우에; S1230의 ‘아니오’), 영상 복호화 장치는 현재 블록의 높이가 너비보다 큰지 여부(즉, 현재 블록이 세로로 긴 직사각형인지 여부; S1240)를 더 판단한다.
현재 블록의 높이가 너비보다 큰 경우에(즉, 현재 블록이 세로로 긴 직사각형인 경우에; S1240의 ‘예’), 영상 복호화 장치는 수직 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1260).
현재 블록의 높이가 너비보다 작은 경우에(즉, 현재 블록이 가로로 긴 직사각형인 경우에; S1240의 ‘아니오’), 영상 복호화 장치는 수평 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1270).
영상 복호화 장치는 결정된 스캔 패턴에 기초하여, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱한다.
영상 복호화 장치는 2차원의 양자화된 변환 계수들의 블록(즉, 계수 블록)을 재구성하기 위해, 결정된 스캔 패턴을 기초로, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱할 수 있다.
도 13는 본 발명의 다른 실시예에 따른, 영상 복호화 장치가 스캔 패턴을 결정하는 방법을 도시한 흐름도이다. 본 실시예의 스캔 패턴 결정 방식은, 변환 계수들의 블록 내에서 스캔 패턴에 따른 마지막 유효 계수의 위치가 변환 블록 내 좌상귀 픽셀 (0,0) 위치에 충분히 가까우면 기설정된 디폴트 스캔 패턴을 사용하고, 반대로 (0,0)에서 멀리 떨어진 경우에는, 복수의 가용 스캔 패턴 중 영상 부호화 장치에 의해 선택된 스캔 패턴이 명시적으로 시그널링되는 방식이다.
영상 복호화 장치는, 비트스트림으로부터, 계수 블록 내에서 스캔 패턴에 따른 마지막 유효 계수의 위치를 가리키는 정보를 추출한다. 마지막 유효 계수는 변수들 last_significant_coeff_x 및 last_significant_coeff_y에 의해 식별될 수 있다(S1310).
영상 복호화 장치는 마지막 유효 계수의 위치가 기설정된 임계 위치(혹은 임계값)보다 큰지 여부를 판단한다(S1320). 상기 임계 위치는 현재 블록의 너비와 높이의 함수일 수 있으며, 현재 블록의 너비와 높이와 무관한 특정 상수일 수도 있다. 예를 들어, last_significant_coeff_x에 관련된 임계값은 "현재 블록의 너비/2"이고, last_signicant_coeff_y에 관련된 임계값은 "현재 블록의 높이/2"일 수 있다.
마지막 유효 계수의 위치가 기설정된 임계값보다 크지 않은 경우에(S1320의 ‘아니오’), 영상 복호화 장치는 디폴트로 설정된 스캔 패턴(예컨대, 대각 스캐닝)을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다(S1350).
마지막 유효 계수의 위치가 기설정된 임계값보다 큰 경우에(S1320의 ‘예’), 영상 복호화 장치는 스캔 패턴 후보들의 세트 중에서 인코더에 의해 선택된 스캔 패턴을 가리키는 신택스 엘리먼트를 파싱한다(S1330). 영상 복호화 장치는 신택스 엘리먼트가 가리키는 스캔 패턴을 현재 블록의 변환 계수들에 적용할 스캔 패턴으로 결정한다. 신택스 엘리먼트는 스캔 패턴 후보들의 세트에서 선택된 스캔 패턴의 인덱스 값을 포함할 수 있다. 스캔 패턴을 표현하는 이진화 방법에는 TU(truncated unary) 코딩이 사용될 수 있다. 예를 들어, diagonal 스캐닝에 대해서는 “0”으로 표현하고, vertical 스캐닝에 대해서는 “10”으로 표현하며, horizontal 스캐닝에 대해서는 “11”로 표현 가능하다. 다른 예시로서, 스캔 패턴이 4개인 경우에, 각 스캔 패턴들은 2 bits의 FL(fixed length) 코드로 표현 가능하다. 또 다른 예시로서, 스캔 패턴이 2개인 경우에, 각 스캔 패턴들은 1bit의 FL(fixed length) 코드로 표현 가능하다.
영상 복호화 장치는 2차원의 양자화된 변환 계수들의 블록(즉, 계수 블록)을 재구성하기 위해, S1330 또는 S1350 단계에서 결정된 스캔 패턴을 기초로, 변환 계수들에 관한 신택스 엘리먼트들(예컨대, 유효(즉, 비-제로) 계수들의 포지션들에 관한 신택스 엘리먼트들, 유효 계수들의 레벨들에 관한 신택스 엘리먼트들, 및/또는 유효 계수들의 부호들에 관한 신택스 엘리먼트들)을 파싱할 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (12)

  1. 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 방법으로서,
    현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계;
    상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및
    상기 현재 블록에 적용될 인트라 예측 모드와 무관하게, 상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 정사각형이면 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계;
    를 포함하고,
    상기 수직 스캔 패턴, 상기 수평 스캔 패턴 및 상기 대각 스캔 패턴에서, 상기 현재 블록의 변환 계수들은 4×4 서브블록들 단위로 스캔되는, 방법.
  2. 제1항에 있어서,
    상기 현재 블록의 너비 및 높이를 각각 기설정된 임계값과 비교하는 과정; 및
    상기 현재 블록의 너비 및 높이가 각각 기설정된 임계값보다 작지 않으면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서,
    상기 현재 블록이 인터 예측 방식으로 부호화된 경우에,
    대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 포함하는, 방법.
  4. 영상 복호화 프로세스에서 현재 블록의 변환 계수들에 적용할 스캔 패턴을 결정하는 장치로서,
    메모리; 및
    하나 이상의 프로세서들을 포함하며,
    상기 하나 이상의 프로세서들은,
    현재 블록이 인트라 예측 방식으로 부호화되었는지 아니면 인터 예측 방식으로 부호화되었는지 여부를 판단하는 단계;
    상기 현재 블록이 인트라 예측 방식으로 부호화된 경우에, 상기 현재 블록의 너비와 높이를 서로 비교하는 단계; 및
    상기 현재 블록에 적용될 인트라 예측 모드와 무관하게, 상기 현재 블록이 세로로 긴 직사각형이면 수직 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 가로로 긴 직사각형이면 수평 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하고, 상기 현재 블록이 정사각형이면 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 수행하도록 구성되고,
    상기 수직 스캔 패턴, 상기 수평 스캔 패턴 및 상기 대각 스캔 패턴에서, 상기 현재 블록의 변환 계수들은 4×4 서브블록들 단위로 스캔되는 것을 특징으로 하는, 장치.
  5. 제4항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 현재 블록의 너비 및 높이를 각각 기설정된 임계값과 비교하는 과정; 및
    상기 현재 블록의 너비 및 높이가 각각 기설정된 임계값보다 작지 않으면, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 수행하도록 구성된 것을 특징으로 하는, 장치.
  6. 제4항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 현재 블록이 인터 예측 방식으로 부호화된 경우에, 대각 스캔 패턴을 상기 변환 계수들에 적용할 스캔 패턴으로 결정하는 단계를 더 수행하도록 구성된 것을 특징으로 하는, 장치.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
KR1020180001860A 2017-10-20 2018-01-05 영상 부호화 또는 복호화하기 위한 장치 및 방법 KR102628530B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2018/012477 WO2019078693A1 (ko) 2017-10-20 2018-10-22 영상 부호화 또는 복호화하기 위한 장치 및 방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170136811 2017-10-20
KR1020170136811 2017-10-20

Publications (2)

Publication Number Publication Date
KR20190044472A KR20190044472A (ko) 2019-04-30
KR102628530B1 true KR102628530B1 (ko) 2024-01-24

Family

ID=66285884

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180001860A KR102628530B1 (ko) 2017-10-20 2018-01-05 영상 부호화 또는 복호화하기 위한 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102628530B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101569259B1 (ko) * 2010-10-22 2015-11-13 퀄컴 인코포레이티드 비디오 코딩을 위한 변환 계수들의 적응적 스캐닝

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101712103B1 (ko) * 2011-01-13 2017-03-03 삼성전자 주식회사 선택적 스캔 모드를 이용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US9621921B2 (en) * 2012-04-16 2017-04-11 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101569259B1 (ko) * 2010-10-22 2015-11-13 퀄컴 인코포레이티드 비디오 코딩을 위한 변환 계수들의 적응적 스캐닝

Also Published As

Publication number Publication date
KR20190044472A (ko) 2019-04-30

Similar Documents

Publication Publication Date Title
RU2765234C1 (ru) Способ внутреннего предсказания и кодер и декодер, использующие его
WO2020211776A1 (en) Methods and apparatuses for coding video data with adaptive secondary transform signaling
CN108702501B (zh) 用于色度分量预测的方法及装置
KR20220151140A (ko) 영상 부호화 방법 및 컴퓨터로 읽을 수 있는 기록 매체
KR102030952B1 (ko) 하나 이상의 코딩 유닛의 인코딩 및 디코딩하기 위한 방법, 장치 및 컴퓨터 판독가능한 저장 매체
WO2020211777A1 (en) Methods and apparatuses for coding video data with secondary transform
WO2020035066A1 (en) Methods and apparatuses of chroma quantization parameter derivation in video processing system
KR20220127948A (ko) 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
KR102546142B1 (ko) 비디오 코딩 시스템에서 블록 구조 도출 방법 및 장치
US11659174B2 (en) Image encoding method/device, image decoding method/device and recording medium having bitstream stored therein
JP7293376B2 (ja) イントラ予測ベースのビデオ信号処理方法及び装置
KR20200110214A (ko) 예측 유닛을 서브 유닛들로 분할하여 예측하는 인트라 예측 방법 및 장치
KR102528365B1 (ko) 해상도 향상 기법을 이용한 영상의 부호화 및 복호화
KR20220140675A (ko) 비-제로 계수들의 위치를 표현하는 방법 및 장치
KR102465994B1 (ko) 동화상 부호화 장치, 동화상 부호화 방법, 동화상 부호화용 컴퓨터 프로그램, 동화상 복호 장치 및 동화상 복호 방법 그리고 동화상 복호용 컴퓨터 프로그램
US20220353505A1 (en) Method for reconstructing residual blocks of chroma blocks, and video decoding apparatus
KR102628530B1 (ko) 영상 부호화 또는 복호화하기 위한 장치 및 방법
KR20210037508A (ko) 이스케이프 샘플을 처리하는 방법 및 영상 복호화 장치
KR20200132761A (ko) 동영상 데이터의 병렬 부호화 및 복호화를 위한 방법 및 장치
KR20200081207A (ko) 움직임정보 표현 방법 및 이를 이용한 영상 복호화 장치
RU2804482C1 (ru) Способ и устройство декодирования изображений в соответствии со структурой блочного разбиения в системе кодирования изображений
KR102453811B1 (ko) 비-제로 계수들의 위치를 표현하는 방법 및 장치
KR20210037506A (ko) 크로마블록의 잔차블록 복원 방법 및 영상 복호화 장치
KR20210025507A (ko) 차등 부호화를 이용하는 비디오 부호화 및 복호화
KR20240045089A (ko) 분리 불가능한 1차 변환 기반 비디오 코딩방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)