KR102210230B1 - 스캔 순서 선택을 위한 방법 및 장치 - Google Patents

스캔 순서 선택을 위한 방법 및 장치 Download PDF

Info

Publication number
KR102210230B1
KR102210230B1 KR1020187026089A KR20187026089A KR102210230B1 KR 102210230 B1 KR102210230 B1 KR 102210230B1 KR 1020187026089 A KR1020187026089 A KR 1020187026089A KR 20187026089 A KR20187026089 A KR 20187026089A KR 102210230 B1 KR102210230 B1 KR 102210230B1
Authority
KR
South Korea
Prior art keywords
scan order
block
scan
coefficient
concealment
Prior art date
Application number
KR1020187026089A
Other languages
English (en)
Other versions
KR20180111975A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20180111975A publication Critical patent/KR20180111975A/ko
Application granted granted Critical
Publication of KR102210230B1 publication Critical patent/KR102210230B1/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • 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

본 개시는 비트스트림으로부터 비디오 시퀀스의 블록의 계수를 디코딩하는 디코더를 제안한다. 디코더는 하나 이상의 미리 정의된 스캔 순서를 제공하는 스캔 패턴 리스트 모듈, 하나 이상의 스캔 순서를 생성하는 스캔 순서 생성기, 상기 비트스트림에 포함된 스캔 순서 정보에 기초해서 미리 정의되고 생성된 스캔 순서 중에서 스캔 순서를 선택하는 스캔 순서 선택기, 상기 비트스트림으로부터 각각의 블록의 하나 이상의 계수 벡터를 디코딩하는 디코딩 모듈, 및 각각의 블록에 대해, 계수 행렬을 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 하나 이상의 계수 벡터를 역 스캐닝하도록 구성되어 있는 디시리얼라이저를 포함한다. 스캔 순서 생성기는 비디오 시퀀스의 블록의 하나 이상의 이전에 획득된 계수 행렬에 의존해서 하나 이상의 스캔 순서를 생성한다.

Description

스캔 순서 선택을 위한 방법 및 장치
본 개시는 일반적으로 비디오 프로세싱 및 스캔 순서 선택을 위한 방법 및 장치에 관한 것이며, 특히 콘텐츠-적응형 스캔 순서 선택에 관한 것으로, 구체적으로 비디오 시퀀스의 블록 계수를 디코딩하는 디코더 및 비디오 시퀀스의 블록 계수를 인코딩하는 인코더에 관한 것이다.
디지털 비디오 통신 및 저장 애플리케이션은 디지털 카메라, 셀룰러 무선 전화기, 랩톱, 방송 시스템 및 화상 원격 회의 시스템과 같은 광범위한 디지털 장치에 의해 구현된다. 이러한 애플리케이션의 가장 중요하고 도전적인 작업 중 하나는 비디오 압축이다. 비디오 압축 작업은 복잡하며 두 가지 상충되는 파라미터: 압축 효율성과 계산 복잡성으로 인해 제한된다. ITU-T H.264/AVC 또는 고효율 비디오 코딩(High-Efficiency Video Coding, HEVC) 표준 ITU-T H.265/HEVC와 같은 비디오 코딩 표준은 이러한 파라미터 간의 좋은 절충점을 제공한다. 이러한 이유로 비디오 코딩 표준 지원은 거의 모든 비디오 압축 응용 프로그램의 필수 요구 사항이다.
최첨단 비디오 코딩 표준은 소스 픽처를 블록으로 분할하는 것을 기반으로 한다. 이러한 블록의 처리는 크기, 공간 위치 및 인코더에 의해 지정된 코딩 모드에 따라 다르다. 코딩 모드는 예측 유형에 따라 내부 및 내부 예측 모드로 분류할 수 있습니다. 코딩 모드는 예측의 유형에 따라 2 그룹: 인트라 예측 모드 및 인터 예측 모드로 분류될 수 있다. 인트라-예측 모드는 재구성되는 블록의 픽셀에 대한 예측 값을 계산하기 위해 동일한 픽처의 픽셀을 사용하여 참조 샘플을 생성한다. 인트라 예측은 공간 예측이라고도 한다. 인터 예측 모드는 시간 예측을 위해 설계되고, 현재 픽처의 블록의 픽셀을 예측하기 위해 이전 또는 다음 픽처의 참조 샘플을 사용한다. 예측 단계 후에, 원래의 신호와 그 예측 간의 차이인 예측 오차에 대해 변환 코딩이 수행된다. 그런 다음, 예를 들어, AVC/H.264 및 HEVC/H.265에 대한 컨텍스트-적응 이진 산술 부호화(Context-Adaptive Binary Arithmetic Coding, CABAC)와 같은 엔트로피 코더를 사용하여 변환 계수 및 부가 정보를 인코딩한다.
분명히, 예측 오차는 상이한 예측 모드에 대해 상이한 통계치를 가지며 예측되는 내용에 강하게 의존한다. 따라서 서로 다른 변환은 서로 다른 경우에 대해 압축의 관점에서 유리하다. 변환 코딩 스테이지의 코딩 효율을 증가시키기 위해, 상이한 특정 경우에 대해 상이한 에너지 압축을 갖는 다수의 변환이 사용될 수있 다.
예를 들어 ISO/IEC 23008-2: 2013, "정보 기술 - 이기종 환경에서의 고효율 코딩 및 미디어 전달 - 제2부: 고효율 비디오 코딩", 2013년 11월로부터 공지된 ITU-T H.265/HEVC 표준은 코딩 효율과 계산 복잡성 간의 적절한 균형을 제공하는 최첨단 비디오 코딩 도구 세트를 선언하고 있다. ITU-T H.265/HEVC 표준에 대한 개요는 게리 J. 설리번(Gary J. Sullivan)의 "고효율 비디오 부호화(High Efficiency Video Coding, HEVC) 표준 개요", 비디오 및 비디오 기술을 위한 회로 및 시스템의 IEEE 트랜잭션 Vol. 22, No. 12, 2012년 12월에 개시되어 있으며, 이 문헌 전체 내용은 본 명세서에 원용되어 포함된다.
ITU-T H.264/AVC 비디오 코딩 표준과 유사하게, HEVC/H.265 비디오 코딩 표준은 소스 픽처를 블록, 예를 들어 코딩 단위(coding unit, CU)로 분할한다. 각 CU는 더 작은 CU 또는 예측 단위(prediction unit, PU)로 추가로 분할될 수 있다. PU는 PU 픽셀에 적용되는 처리 유형에 따라 인트라 예측되거나 인터 예측될 수 있다. 인터 예측의 경우, PU는 하나의 PU에 대해 지정된 모션 벡터를 사용하여 모션 보상에 의해 처리되는 픽셀 영역을 나타낸다. 인트라 예측의 경우, PU는 변환 단위(transform unit, TU) 집합에 대한 예측 모드를 지정한다. TU는 다양한 크기(예를 들어: 4x4, 8x8, 16x16 및 32x32 픽셀)를 가질 수 있으며 다양한 방식으로 처리될 수 있다. TU 변환 코딩이 수행될 때, 즉, 예측 오차가 이산 코사인 변환 또는 이산 사인 변환으로 변환되는 경우, 이는 HEVC/H.265 표준에서 인트라 코딩된 블록에 적용되고 양자화된다. 따라서, 재구성된 픽셀은 예측 정확도에 영향을 미칠 수 있는 양자화 노이즈 및 블로킹 인공물을 포함한다.
HEVC/H.265를 제외한 이전의 모든 비디오 코딩 표준에서는 설계를 단순하게 유지하기 위해 하나의 변환만 사용되었다. HEVC/H.265 표준은 인트라 코딩을 위한 두 개의 변환을 규정한다: 4x4 블록에 대한 DST - 이 변환은 작은 인트라 예측 블록에 대해 더 나은 에너지 압축을 제공함 - , 및 다른 블록에 대한 DCT.
또한, 모드-종속 계수 스캔(mode-dependent coefficient scan, MDCS) 기술은 HEVC/H.265 표준에 채택된다. 그 뒤에 있는 기본 아이디어는 선택된 인트라 예측 모드에 따라 스캔 순서를 선택하는 것이다. 인트라-코딩된 블록들에 대해, 4×4 변환 블록(TB) 및 8×8 루마 TB의 스캐닝 순서는 인트라 예측 모드에 의해 결정되며, 이에 대해서는 Joel Sole, Rajan Joshi, Nguyen Nguyen, Tianying Ji, Marta Karczewicz, Gordon Clare, Felix 헨리, 그리고 알베르토 Due_as. "HEVC에서 변환 계수 코딩", IEEE 회로 및 시스템 비디오 기술, vol. 22, no. 12, 2012년 12월 12일, 1765-1777를 참조한다. 35개의 인트라-예측 모드 각각은 대각선, 수평 또는 수직의 3가지 가능한 스캔 순서 중 하나를 사용한다. 룩업 테이블은 인트라-예측 모드를 스캔 중 하나에 맵핑한다.
이 도구는 인트라 예측 모드에 따라 잔여의 수평 또는 수직 상관을 이용한다. 예를 들어, 수평 예측 모드의 경우, 변환 계수 에너지가 처음 몇 개의 열에서 클러스터링되므로 수직 스캔은 더 적은 수의 빈(bin)이 엔트로피 코딩되게 한다. 마찬가지로 수직 예측의 경우 수평 주사가 유용하다. 실험 결과 큰 TB에 대한 수평 및 수직 스캔을 포함하면 압축 효율이 낮으므로 이러한 스캔의 적용은 두 개의 작은 TB로 제한된다.
MDCS와 유사한 기법이 이영렬, 한기훈, 심동규, 서정일의 문헌 "H.264/AVC 인트라 코딩을 위한 적응형 스캐닝", ETRI 저널, Volume 28, Number 5, 2006년 10월, 668-671 페이지, 최병두, 김진형, 고성자의 "인트라 예측 모드를 기반으로 한 적응 계수 스캐닝", ETRI Journal, Volume 29, Number 5, 2007년 10월, 694-696 페이지, Salah Uddin Yusuf 및 Mohiuddin Ahmad의 "AVS 인트라 코딩 방향성 공간 예측을 위한 새로운 스캐닝 기법", 전기 전자 및 계측 공학 고급 연구지, Vol. 2, Issue 8, August 2013, pp. 4120-4126에서 고려된다. 스캔 순서는 HEVC/H.265 표준에서 사용되는 것과 다르다. 또한, 인트라 예측 모드를 스캔 오더로 맵핑하는 것이 제안되어 있다.
또한, 이배근, 권재철, 김주영의 "예측 유닛의 파티션 모드에 기초한 계수 스캔을 위한 방법 및 장치", 미국특허출원 공개공보 US 2014/0314143 A1, PCT/KR2012/009373, 2012년 11월 8일에 공지되어 있는 파티셔닝 모드 및 Thai-Ha Nguyen, Yoichi Yagasaki, and Ali Tabatabai의 "QP 적응 계수 스캐닝 및 응용", 미국특허출원 공보, US 2011/0249726 A1, 2011년 4월 1일에 공지되어 있는 양자화 파라미터(QP)는 인트라 코딩뿐만 아니라 인터 코딩을 위한 스캔 순서를 선택하기 위한 피처로서 사용될 수 있다.
따라서 동일한 모드 및 TU 크기에 대해 효율적일 수 있는 매우 다양한 스캔 순서가 있다. 레이트 왜곡 최적화(Rate-Distortion Optimization, RDO) 기반 또는 유사한 - 예를 들어 왜곡 또는 활동 분석에 기반한 - 절차를 사용하여 잠재적 스캔 순서 중 어떤 것을 선택해야 하는지에 대한 최종 결정을 내릴 수 있는 주된 이유이다.
RDO 기반 절차에서 스캔 순서를 선택하는 방법의 일례는 예를 들어 다음과 같다: Muhammed Zeyd Coban과 Marta Karczewicz의 "비디오 코딩을 위한 변환 계수의 적응형 스캐닝", 미국특허출원 공보, US 2012/0099646 A1, 2011년 10월 17일. 이 경우, 최저 RD-비용을 제공하는 스캔 순서가 선택된다. 따라서, 이 접근법의 주요 이점은 선택된 스캔 순서가 가장 높은 코딩 이득을 제공한다는 것이다. 따라서 시그널링 오버 헤드가 고려되지 않는다면 이 방법의 코딩 효율은 다른 방법보다 높다.
이 종래 기술은 가장 높은 코딩 이득을 제공하는 스캔 순서를 선택하기 위한 2개의 알고리즘을 제안한다. 이들 2개의 알고리즘 사이의 구분되는 주요 특징은 이 적응성 스캔 순서 선택 기술이 적용 불가능한, 즉 디폴트 스캔 순서가 사용되는 그러한 TB를 검출하기 위해 상이한 메커니즘이 사용된다는 것이다. 제1 알고리즘에서, 중요한 변환 계수의 수는 임계 수와 비교된다. 제2 알고리즘에서, 최종 유효 변환 계수들의 위치가 임계 위치와 비교된다. 이전에 서술된 기술들과는 대조적으로, 디코더가 수신된 변환 계수들에 정확한 스캔 순서를 적용할 수 있도록, 선택된 스캔 순서가 이들 두 경우에 대해 시그널링되어야 한다. 따라서 RDO 기반 의사 결정 절차를 사용하는 접근법의 주요 단점은 신호 오버헤드이다.
MDCS와 비교하여 압축 효율을 향상시키는 또 다른 방법은 미리 정의된 스캔 순서를 사용하는 대신 인트라 예측 모드, 파티셔닝 모드, 블록 크기 등과 같은 유사한 파라미터 값을 가지는 블록에 대해 수집된 통계에 따라 스캔 순서를 조정하는 것이다. 따라서 초기 스캔 순서는 통계가 충분하지 않은 경우에 사용하기 위해 정의된다. 통계를 수집하는 데 사용된 블록의 수량이 임계값을 초과할 때, 스캔 순서는 수집된 통계에 따라 조정될 수 있다. Yan Ye 및 Marta Karczewicz의 "비디오 코딩을 위한 적응 계수 스캐닝", 미국특허, US 8,488,668 B2, 2008년 6월 4일을 참조한다. 유사한 접근법이 Sridhar Srinivasan의 "적응 계수 스캔 순서", 유럽 특허 명세서, EP 1679903 B1, 30.11.2005에 공지되어 있다.
그렇지만, 이전에 인코딩 또는 디코딩된 블록들의 수집된 통계에 기초한 그러한 적응형 스캔 순서는 지그재그, 대각선, 수직, 수평, 시계방향 및 반시계방향 헬릭스 스캔 등과 같은 미리 정의된 스캔 순서보다 높은 코딩 효율성을 항상 제공하지는 않는다.
전술한 단점 및 문제점을 인식하여, 본 개시는 최신 기술을 개선하는 것을 목적으로 한다. 특히, 본 개시의 목적은 향상된 코딩 효율을 위한 비디오 디코더, 디코딩 방법, 비디오 인코더 및 인코딩 방법을 제공하는 것이다.
본 개시는 특히, 계수 행렬을 하나 이상의 계수 벡터로 스캐닝하거나 하나 이상의 계수 벡터를 계수 행렬로 역 스캐닝하는 개선된 스캔 순서에 의해 코딩 효율을 향상시키는 것을 목적으로 한다.
또한, 본 개시는 시그널링 오버헤드를 감소시킴으로써 코딩 효율을 향상시키는 것을 목적으로 한다.
본 개시의 전술한 목적은 첨부된 독립 청구항에 제공된 솔루션에 의해 달성된다. 본 개시의 이로운 실시는 각각의 첨부된 청구항에 추가로 정의된다.
본 개시의 제1 관점은 비트스트림으로부터 비디오 시퀀스의 블록의 계수를 디코딩하는 디코더를 제공한다. 디코더는 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있는 스캔 패턴 리스트 모듈을 포함한다. 스캔 순서는 당기술분야에서 스캔 패턴으로 알려져 있다. 디코더는 하나 이상의 스캔 순서를 생성하도록 구성되어 있는 스캔 순서 생성기를 포함한다. 디코더는 상기 비트스트림에 포함된 스캔 순서 정보에 기초해서 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기를 포함한다. 디코더는 상기 비트스트림으로부터 각각의 블록의 하나 이상의 계수 벡터를 디코딩하도록 구성되어 있는 디코딩 모듈을 포함한다. 디코더는 각각의 블록에 대해, 계수 행렬을 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 하나 이상의 계수 벡터를 역 스캐닝하도록 구성되어 있는 디시리얼라이저(deserializer)를 포함한다. 상기 스캔 순서 생성기는 상기 비디오 시퀀스의 블록의 하나 이상의 이전에 획득된 계수 행렬에 의존해서 하나 이상의 스캔 순서를 생성하도록 구성되어 있다.
이에 의해 본 개시는 미리 정의된 스캔 순서 및 콘텐츠-적응 수집 스캔 순서 모두를 제공한다는 점에서 이점이 있다. 이용 가능한 스캔 순서 세트를 확장함으로써, 양자화의 레이트-왜곡 효율성이 그에 따라 향상될 수 있다.
본 개시의 제1 관점에 따른 디코더의 실시 형태에서, 스캔 패턴 리스트 모듈은 복수의 코딩 파라미터 세트 각각에 대해 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있다. 스캔 순서 생성기는 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 획득된 계수 행렬에 의존해서 각각의 코딩 파라미터에 대해 스캔 순서를 생성하도록 구성되어 있다. 상기 스캔 순서 선택기는 각각의 블록에 대한 스캔 순서를, 그 블록의 코딩 파라미터 세트를 결정하는 단계 및 상기 결정된 코딩 파라미터 세트에 대해 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 그 블록에 대해 획득된 계수 행렬에 대한 스캔 순서를 선택하는 단계에 의해 선택하도록 구성되어 있다.
이에 의해 미리 정의된 스캔 순서 및 콘텐츠-적응 수집 스캔 순서 모두가 각각의 코딩 파라미터 세트에 제공될 수 있다. 이와 같이, 서로 다른 순서가 서로 다른 코딩 파라미터 세트에 대해 생성될 수 있으므로 이용 가능한 스캔 순서 세트는 증가할 수 있고 각각의 코딩 파라미터 세트에 채용될 수 있다. 그러므로 선택된 스캔 순서는 레이트-왜곡 효율성을 더 향상시킬 수 있다.
특히, 각각의 코딩 파라미터 세트는 예를 들어 예측 모드, 파티션 모드, 하나 이상의 변환 파라미터, 및 하나 이상의 양자화 파라미터 중 하나 이상의 조합에 대응할 수 있다.
본 개시의 제1 관점에 따른 디코더의 실시 형태에서, 디코더는, 코딩 파라미터 세트 각각에 대해, 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 획득된 계수 행렬의 분포 통계를 제공하도록 구성되어 있는 계수 분포 추정기를 포함한다. 상기 스캔 순서 생성기는 그 코딩 파라미터 세트에 대한 분포 통계에 의존해서 각각의 코딩 파라미터 세트에 대한 스캔 순서를 생성하도록 구성되어 있다.
이에 의해 생성된 스캔 순서는 이전의 계수 행렬의 분포 통계를 반영할 수 있다. 따라서 생성된 스캔 순서는 후속의 행렬의 분포 통계가 이전의 계수 행렬의 분포 통계와 유사하면 후속의 계수 행렬에 대해 우수한 코딩 효율성을 제공할 수 있다.
본 개시의 제1 관점에 따른 디코더의 실시 형태에서, 주어진 블록에 대해 선택된 스캔 순서가 미리 정의되어 있으면, 계수 분포 추정기는 그 주어진 블록의 코딩 파라미터 세트에 대한 분포 통계를 갱신하지 않거나 리셋하도록 구성되어 있다.
이에 의해, 주어진 블록에 대해 선택된 스캔 순서가 미리 정의된 스캔 순서이면, 이것은 주어진 블록의 코딩 파라미터 세트에 대해, 생성된 스캔 순서가 미리 정의된 스캔 순서의 코딩 효율보다 나쁜 코딩 효율을 제공할 수 있음을 의미한다. 그러므로 주어진 블록은 이전의 코딩 행렬의 분포 통계에 대응하지 않는 분포 통계를 제공하므로, 주어진 블록의 분포 통계는 계수 분포 추정기에 의해 제공되는 분포 통계를 갱신하는 데 우선적으로 사용되지 않는다. 대안으로, 이전의 계수 행렬의 통계가 현재의 계수 행렬의 통계에 더 이상 대응할 수 없기 때문에 계수 분포 추정기에 의해 제공되는 분포 통계를 리셋하는 것이 바람직할 수 있다.
본 개시의 제1 관점에 따른 디코더의 실시 형태에서, 디코딩 모듈은 각각의 블록에 대해 비트스트림으로부터 코딩 파라미터 정보를 파싱하도록 구성되어 있다. 상기 스캔 순서 선택기는 그 주어진 블록에 대한 파싱된 코딩 파라미터 정보에 따라 주어진 블록의 코딩 파라미터 세트를 결정하도록 구성되어 있다.
이에 의해, 디코더는 코딩 파라미터 세트에 관한 정보를 획득하고 이 코딩 파라미터 세트에 대응하는 미리 정의된 스캔 순서 및 생성된 스캔 순서를 사용하여 코딩 효율을 향상시킬 수 있다.
본 개시의 제1 관점에 따른 디코더의 실시 형태에서, 디코딩 모듈은 비트스트림으로부터 상기 선택된 스캔 순서를 인식하는 스캔 순서 정보를 파싱하도록 구성되어 있다.
이에 의해, 디코더는 비트스트림으로부터 선택된 스캔 순서를 식별할 수 있으며, 이 선택된 스캔 순서가 미리 정의된 스캔 순서인지 생성된 스캔 순서인지에 따라, 디코더는 계수 벡터를 정확하게 역 스캐닝할 수 있으며, 예를 들어, 계수 분포 추정기에 의해 제공되는 분포 통계를 정확하게 갱신할 수도 있고 갱신하지 않을 수도 있다.
본 개시의 제1 관점에 따른 디코더의 기능 및 그 실시 형태 중 임의의 형태의 임의의 기능은 프로세서 또는 컴퓨터에 의해 수행될 수 있으며, 그 수단 중 어느 것도 그러한 프로세서 또는 컴퓨터 내의 소프트웨어 및/또는 하드웨어로 실행될 수 있다.
본 개시의 제2 관점은 비트스트림으로부터 비디오 시퀀스의 블록의 계수를 디코딩하는 방법을 제공한다. 상기 방법은 하나 이상의 미리 정의된 스캔 순서를 제공하는 단계를 포함한다. 상기 방법은 하나 이상의 스캔 순서를 생성하는 단계를 포함한다. 상기 방법은 상기 비트스트림에 포함된 스캔 순서 정보에 기초해서 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하는 단계를 포함한다. 상기 방법은 상기 비트스트림으로부터 각각의 블록의 하나 이상의 계수 벡터를 디코딩하는 단계를 포함한다. 상기 방법은 각각의 블록에 대해, 계수 행렬을 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 하나 이상의 계수 벡터를 역 스캐닝하는 단계를 포함한다. 상기 하나 이상의 스캔 순서를 생성하는 단계는 상기 비디오 시퀀스의 블록의 하나 이상의 이전에 획득된 계수 행렬에 의존해서 상기 하나 이상의 스캔 순서를 생성하는 단계를 포함한다.
본 개시의 제2 관점에 따른 방법의 추가의 특징 또는 실시는 본 개시의 제1 관점 및 그 다른 실시 형태에 따른 디코더의 기능성을 수행할 수 있다.
본 개시의 제2 관점 및 그 실시 형태 중 임의의 형태에 따른 방법은 프로세서 또는 컴퓨터에 의해 실행될 수 있다.
본 개시의 제3 관점은 비트스트림으로 비디오 시퀀스의 블록의 계수를 인코딩하는 인코더를 제공하며, 각각의 블록의 계수는 각각의 계수 행렬에 포함되어 있다. 인코더는 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있는 스캔 패턴 리스트 모듈을 포함한다. 인코더는 하나 이상의 스캔 순서를 생성하도록 구성되어 있는 스캔 순서 생성기를 포함한다. 인코더는 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기를 포함한다. 인코더는 각각의 블록에 대해, 하나 이상의 계수 벡터를 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 계수 행렬을 스캐닝하도록 구성되어 있는 시리얼라이저(serializer)를 포함한다. 인코더는 상기 비트스트림으로 계수 벡터를 코딩하도록 구성되어 있는 코딩 모듈을 포함한다. 상기 스캔 순서 생성기는 상기 비디오 시퀀스의 블록의 하나 이상의 이전에 스캐닝된 계수 행렬에 의존해서 하나 이상의 스캔 순서를 생성하도록 구성되어 있다.
이에 의해, 본 개시는 미리 정의된 스캔 순서 및 콘텐츠-적응형 생성된 스캔 순서 모두를 제공하는 이점이 있다. 이용 가능한 스캔 순서 세트를 확장함으로써, 양자화의 레이트-왜곡 효율성이 그에 따라 향상될 수 있다.
본 개시의 제3 관점에 따른 인코더의 실시 형태에서, 스캔 패턴 리스트 모듈은 복수의 코딩 파라미터 세트 각각에 대해 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있다. 상기 스캔 순서 생성기는 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 스캐닝된 계수 행렬에 의존해서 각각의 코딩 파라미터 세트에 대한 스캔 순서를 생성하도록 구성되어 있다. 스캔 순서 선택기는 각각의 블록에 대한 스캔 순서를, 그 블록의 코딩 파라미터 세트를 결정하는 단계; 및 상기 결정된 코딩 파라미터 세트에 대해 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 그 블록의 계수 행렬에 대한 스캔 순서를 선택하는 단계에 의해 선택하도록 구성되어 있다.
이에 의해, 미리 정의된 스캔 순서 및 콘텐츠-적응 생성된 스캔 순서 모두가 각각의 코딩 파라미터 세트에 제공될 수 있다. 이와 같이, 서로 다른 스캔 순서는 서로 다른 코딩 파라미터 세트에 대해 생성될 수 있으므로 이용 가능한 스캔 순서의 세트는 증가할 수 있고 각각의 코딩 파라미터 세트에 채용될 수 있다. 그러므로 선택된 스캔 순서는 레이트-왜곡 효율을 더 향상시킬 수 있다.
특히, 각각의 코딩 파라미터 세트는 예측 모드, 파티션 모드, 하나 이상의 변환 파라미터, 및 하나 이상의 양자화 파라미터 중 하나 이상의 조합에 대응할 수 있다.
본 개시의 제3 관점에 따른 인코더의 실시 형태에서, 인코더는 각각의 코딩 파라미터 세트에 대해, 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 스캐닝된 계수 행렬의 분포 통계를 제공하도록 구성되어 있는 계수 분포 추정기를 포함한다. 상기 스캔 순서 생성기는 그 코딩 파라미터 세트에 대한 분포 통계에 의존해서 각각의 코딩 파라미터 세트에 대한 스캔 순서를 생성하도록 구성되어 있다.
이에 의해, 생성된 스캔 순서는 이전의 계수 행렬의 분포 통계를 반영할 수 있으므로, 이러한 생성된 스캔 순서는 후속의 행렬의 분포 통계가 이전의 계수 행렬의 분포 통계와 유사한 경우 후속의 계수 행렬에 대해 우수한 코딩 효율성을 제공할 수 있다.
본 개시의 제3 관점에 따른 인코더의 실시 형태에서, 주어진 계수 행렬에 대해 선택된 스캔 순서가 미리 정의되어 있으면, 상기 계수 분포 추정기는 그 주어진 블록의 코딩 파라미터 세트에 대한 분포 통계를 리셋하도록 구성되어 있다.
이에 의해, 주어진 블록에 대해 선택된 스캔 순서가 미리 정의된 스캔 순서이면, 이것은 주어진 블록의 코딩 파라미터 세트에 대해, 생성된 스캔 순서가 미리 정의된 스캔 순서의 코딩 효율보다 나쁜 코딩 효율을 제공할 수 있음을 의미한다. 그러므로 주어진 블록은 이전의 코딩 행렬의 분포 통계에 대응하지 않는 분포 통계를 제공하므로, 주어진 블록의 분포 통계는 계수 분포 추정기에 의해 제공되는 분포 통계를 갱신하는 데 우선적으로 사용되지 않는다. 대안으로, 이전의 계수 행렬의 통계가 현재의 계수 행렬의 통계에 더 이상 대응할 수 없기 때문에 계수 분포 추정기에 의해 제공되는 분포 통계를 리셋하는 것이 바람직할 수 있다.
본 개시의 제3 관점에 따른 인코더의 실시 형태에서, 인코더는 비트스트림에서 선택된 스캔 순서를 식별하는 스캔 순서 정보를 부가하도록 구성되어 있는 시그널링 모듈을 포함한다.
이에 의해, 디코더는 비트스트림으로부터 선택된 스캔 순서를 식별할 수 있으며, 이 선택된 스캔 순서가 미리 정의된 스캔 순서인지 생성된 스캔 순서인지에 따라, 디코더는 계수 벡터를 정확하게 역 스캐닝할 수 있으며, 예를 들어, 계수 분포 추정기에 의해 제공되는 분포 통계를 정확하게 갱신할 수도 있고 갱신하지 않을 수도 있다.
본 개시의 제3 관점에 따른 인코더의 실시 형태에서, 스캔 순서 선택기는 비용 함수에 기초해서 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 스캔 순서를 선택하도록 구성되어 있다.
이에 의해, 비용 함수에 기초한 절차는 생성된 스캔 순서 및 미리 정의된 스캔 순서 중에서 정확하게 하나의 스캔 순서를 선택하는 데 사용될 수 있다. 따라서, 이전에 인코딩되거나 디코딩된 블록의 수집된 통계에 기초한 생성된 스캔 순서가 미리 정의된 스캔 순서보다 나은 코딩 효율을 제공하지 않아도, 스캔 순서 선택은 코딩 효율 향상시킬 수 있다. 특히, 비용 함수는 예를 들어 레이트-왜곡 최적화(Rate-Distortion Optimization, RDO) 함수일 있다.
본 개시의 제3 관점에 따른 디코더의 기능 및 그 실시 형태 중 임의의 형태의 임의의 기능은 프로세서 또는 컴퓨터에 의해 수행될 수 있으며, 그 수단 중 어느 것도 그러한 프로세서 또는 컴퓨터 내의 소프트웨어 및/또는 하드웨어로 실행될 수 있다.
본 개시의 제4 관점은 비트스트림으로 비디오 시퀀스의 블록의 계수를 인코딩하는 방법을 제공하며, 각각의 블록의 계수는 각각의 계수 행렬에 포함되어 있다. 상기 방법은 하나 이상의 미리 정의된 스캔 순서를 제공하는 단계를 포함한다. 상기 방법은 하나 이상의 스캔 순서를 생성하는 단계를 제공한다. 상기 방법은 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하는 단계를 포함한다. 상기 방법은 각각의 블록에 대해, 하나 이상의 계수 벡터를 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 계수 행렬을 스캐닝하는 단계를 포함한다. 상기 방법은 상기 비트스트림으로 계수 벡터를 코딩하는 단계를 포함한다. 상기 하나 이상의 스캔 순서를 생성하는 단계는 상기 비디오 시퀀스의 블록의 하나 이상의 이전에 스캐닝된 계수 행렬에 의존해서 하나 이상의 스캔 순서를 생성하는 단계를 포함한다.
본 개시의 제4 관점에 따른 방법의 추가의 특징 또는 실시는 본 개시의 제3 관점 및 그 다른 실시 형태에 따른 디코더의 기능성을 수행할 수 있다.
본 개시의 제4 관점 및 그 실시 형태 중 임의의 형태에 따른 방법은 프로세서 또는 컴퓨터에 의해 실행될 수 있다.
본 개시의 제5 관점은 비트스트림으로부터 비디오 시퀀스의 블록의 계수를 디코딩하는 디코더를 제공한다. 상기 디코더는 상기 비트스트림으로부터 각각의 블록의 하나 이상의 계수 벡터를 디코딩하도록 구성되어 있는 디코딩 모듈을 포함한다. 상기 디코더는 적어도 하나의 블록에 대해, 그 블록의 하나 이상의 계수로부터 은폐된 정보를 재구성하도록 구성되어 있는 체크 모듈을 포함하며, 상기 은폐된 정보는 그 블록과 관련된 스캔 순서 정보의 일부를 구성하거나 형성한다. 상기 디코더는 그 블록과 관련된 스캔 순서 정보에 기초해서, 한 세트의 스캔 순서 중에서, 바람직하게는 한 세트의 미리 정의되고 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기를 포함한다. 상기 디코더는 각각의 블록에 대해, 계수 행렬을 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 하나 이상의 계수 벡터를 역 스캐닝하도록 구성되어 있는 디시리얼라이저를 포함한다.
이에 의해, 코딩 효율은 시그널링 오버헤드가 감소된다는 점에서 이롭게 향상된다.
본 개시의 제5 관점에 따른 디코더의 실시 형태에서, 체크 모듈은 적어도 하나의 블록에 대해, 그 블록에 대해 획득된 하나 이상의 계수 벡터로부터 선택된 적어도 하나의 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있다.
특히, 하나 이상의 계수 벡터는 각각의 계수 그룹(CG)에 대응할 수 있고, 그런 다음 은폐 계수 벡터는 데이터 은폐가 수행되는 계수 그룹에 대응한다. 이에 의해 수 개의 은폐 계수 벡터로부터, 예를 들어 수 개의 계수 그룹으로부터 바람직하게 은폐 정보를 재구성하는 단계는 더 많은 비트가 은폐될 수 있고 스캔 순서 정보에 대해 더 큰 인덱스가 재구성될 수 있다는 점에서 이롭다.
본 개시의 제5 관점에 따른 디코더의 실시 형태에서, 체크 모듈은 적어도 하나의 블록에 대해, 은폐 조건에 의존해서 상기 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있으며, 상기 은폐 조건은 상기 은폐 계수 벡터에 의존하는 파라미터와 임계치와의 비교를 포함한다.
본 개시의 제5 관점에 따른 디코더의 실시 형태에서, 파라미터는:
- 상기 은폐 계수 벡터 내의 복수의 중요한 계수, 또는
- 상기 은폐 계수 벡터 내의 제1 중요한 계수와 마지막 중요한 계수 간의 거리, 또는
- 상기 은폐 계수 벡터 내의 계수의 최소 절대 비 제로(non-zero) 값에 대한 최대 절댓값의 비율
이다. 상기 파라미터가 임계값보다 높으면 상기 은폐 조건은 참이고, 상기 파라미터가 임계값보다 낮으면 상기 은폐 조건은 거짓이다. 이에 의해, 은폐 조건은 이롭게 제공된다.
본 개시의 제5 관점에 따른 디코더의 실시 형태에서, 체크 모듈은 상기 은폐 조건을 체크하고, 상기 은폐 조건이 참이면 상기 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있다. 이에 의해, 스캔 순서는 비트스트림으로부터 추가의 부가 정보 없이 선택될 수 있다.
본 개시의 제5 관점에 따른 디코더의 실시 형태에서, 은폐 조건이 거짓이면, 상기 스캔 순서 선택기는 미리 정의된 디폴트 스캔 순서를 선택하도록 구성되어 있다. 이에 의해, 인코더 측에서 은폐가 가능하지 않아도 스캔 순서는 선택될 수 있다.
본 개시의 제5 관점에 따른 디코더의 실시 형태에서, 체크 모듈은 상기 은폐 계수 벡터에 체크 함수(check-function)를 적용함으로써 상기 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있으며, 상기 체크 함수의 결과는 상기 은폐된 정보이다. 이에 의해, 스캔 순서는 계수로부터 이롭게 획득될 수 있다.
본 개시의 제5 관점에 따른 디코더의 실시 형태에서, 체크 함수의 결과는 상기 계수 행렬 내에서 상기 은폐 계수 벡터의 마지막 중요한 계수의 좌표 (x, y)에 의존하고,
특히 상기 체크 함수는 다음의 함수이며,
mod(x + y + R,2)
여기서 x 및 y는 좌표이고 R은 정수값이다. 이에 의해 체크 함수의 결과는 계수 좌표로부터 직접 획득될 수 있다.
본 개시의 제5 관점에 따른 디코더의 실시 형태에서, 체크 모듈은 제1 블록에 대해, 제1 블록의 하나 이상의 계수로부터 은폐된 정보를 재구성하도록 구성되어 있으며, 상기 은폐된 정보는 제1 블록과 관련된 스캔 순서 정보의 일부를 구성하거나 형성하며, 상기 스캔 순서 선택기는 제1 블록 및 적어도 제2 블록에 대해, 제1 블록과 관련된 스캔 순서 정보에 기초해서 스캔 순서를 선택하도록 구성되어 있다. 이에 의해 이 실시 형태는 "병합 모드"를 제공하며, 이 모드에서는 제2 블록에 대해 선택된 스캔 순서의 값이 제2 블록의 계수 내에 어느 것도 은폐함이 없이 제1 블록의 계수 값을 사용하여 재구성/예측된다. 예를 들어, 제1 블록과 제2 블록은 공간적으로 인접한다.
특히, 스캔 순서 선택기는 한 그룹의 블록에 대해, 제1 블록과 관련된 스캔 순서 정보에 기초해서 스캔 순서를 선택하도록 구성되어 있으며, 상기 한 그룹의 블록은 제1 블록 및 복수의 제2 블록을 포함한다. 상기 한 그룹의 블록은 계수 내에 은폐된 적어도 하나의 논-디폴트 스캔 인덱스를 가지는 한 그룹의 블록 내에 수 개의 블록을 포함할 수 있다. 대안으로, 상기 한 그룹의 블록은 수 개의 순차적으로 인코딩된 블록을 포함할 수 있으므로 상기 인코딩된 블록은 동일한 스캔 인덱스를 가진다. 대안으로, 상기 한 그룹의 블록은 은폐 조건이 거짓인 계수를 가지는 수 개의 블록 및/또는 수 개의 순차적으로 인코딩된 블록을 포함할 수 있다.
특히, 병합 모드에서는 스캔 순서 정보가 적어도 하나의 제2 블록의 계수에 은폐되어 있음을 알리기 위해 디코더에 대해 수 개의 옵션이 이용 가능하다. 먼저, 부가 정보가 비트스트림에 인코딩될 수 있으며, 예를 들어, 한 그룹의 블록을 위해 병합 모드의 사용을 인에이블 또는 디스에이블할 수 있는 한 그룹의 블록에 대한 플래그에서 인코딩될 수 있다. 둘째, 부가 정보 없이, 제1 블록 및/또는 제2 블록의 코딩 파라미터 및 은폐 조건에 의존해서 제2 블록에 병합 규칙을 적용하는 것이 제시된다. 환언하면, 제2 블록에 대해 은폐 조건이 충족되지 않으면 병합은 제2 블록에 적용되며, 즉, 제1 블록과 관련된 스캔 순서 정보에 기초해서 제2 블록의 스캔 순서가 선택된다. 세 번째, 최초의 2개의 대안의 조합이 제시되며, 상기 조합은 비트스트림 내의 부가 정보를 포함하고 은폐 조건에 의존해서 병합을 적용한다.
본 개시의 제5 관점에 따른 디코더의 기능 및 그 실시 형태 중 임의의 형태의 임의의 기능은 프로세서 또는 컴퓨터에 의해 수행될 수 있으며, 그 수단 중 어느 것도 그러한 프로세서 또는 컴퓨터 내의 소프트웨어 및/또는 하드웨어로 실행될 수 있다.
본 개시의 제6 관점은 바람직하게 제2 관점에 따라, 비트스트림으로부터 비디오 시퀀스의 블록의 계수를 디코딩하는 방법을 제공한다. 상기 방법은 상기 비트스트림으로부터 각각의 블록의 하나 이상의 계수 벡터를 디코딩하는 단계를 포함한다. 상기 방법은 적어도 하나의 블록에 대해, 그 블록의 하나 이상의 계수로부터 은폐된 정보를 재구성하는 단계를 포함하며, 상기 은폐된 정보는 그 블록과 관련된 스캔 순서 정보의 일부를 구성하거나 형성한다. 상기 방법은 그 블록과 관련된 스캔 순서 정보에 기초해서, 한 세트의 스캔 순서 중에서, 바람직하게는 한 세트의 미리 정의되고 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하는 단계를 포함한다. 상기 방법은 각각의 블록에 대해, 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 하나 이상의 계수 벡터를 역 스캐닝하여 계수 행렬을 획득하는 단계를 포함한다.
본 개시의 제6 관점에 따른 방법의 추가의 특징 또는 실시는 본 개시의 제5 관점 및 그 다른 실시 형태에 따른 디코더의 기능성을 수행할 수 있다.
본 개시의 제6 관점 및 그 실시 형태 중 임의의 형태에 따른 방법은 프로세서 또는 컴퓨터에 의해 실행될 수 있다.
본 개시의 제7 관점은 본 개시의 제3 관점에 따라 바람직하게, 비트스트림으로 비디오 시퀀스의 블록의 계수를 인코딩하는 인코더를 제공하며, 각각의 블록의 계수는 각각의 계수 행렬에 포함되어 있다. 상기 인코더는 한 세트의 스캔 순서 중에서, 바람직하게는 한 세트의 미리 정의되고 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기를 포함한다. 상기 인코더는 각각의 블록에 대해, 하나 이상의 계수 벡터를 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 계수 행렬을 스캐닝하도록 구성되어 있는 시리얼라이저를 포함한다. 상기 인코더는 적어도 하나의 블록에 대해, 그 블록에 대해 선택된 스캔 순서를 식별하는 스캔 순서 정보를 그 블록의 하나 이상의 계수에 적어도 부분적으로 은폐하도록 구성되어 있는 은폐 모듈을 포함한다. 상기 인코더는 상기 비트스트림으로 계수 벡터를 코딩하도록 구성되어 있는 코딩 모듈을 포함한다. 이에 의해, 코딩 효율은 시그널링 오버헤드를 감소시킴으로써 향상될 수 있다.
본 개시의 제7 관점에 따른 인코더의 실시 형태에서, 은폐 모듈은 적어도 하나의 블록에 대해, 그 블록에 대해 획득된 하나 이상의 계수 벡터 중에서 선택된 적어도 하나의 은폐 계수 벡터에 스캔 순서 정보를 은폐하도록 구성되어 있다.
본 개시의 제7 관점에 따른 인코더의 실시 형태에서, 은폐 모듈은 적어도 하나의 블록에 대해, 은폐 조건에 의존해서 상기 은폐 계수 벡터에 스캔 순서 정보를 은폐하도록 구성되어 있으며, 상기 은폐 조건은 상기 은폐 계수 벡터에 의존하는 파라미터와 임계치와의 비교를 포함한다.
본 개시의 제7 관점에 따른 인코더의 실시 형태에서, 파라미터는:
- 상기 은폐 계수 벡터 내의 복수의 중요한 계수, 또는
- 상기 은폐 계수 벡터 내의 제1 중요한 계수와 마지막 중요한 계수 간의 거리, 또는
- 상기 은폐 계수 벡터 내의 계수의 최소 절대 비 제로 값에 대한 최대 절댓값의 비율
이며, 상기 파라미터가 임계값보다 높으면 상기 은폐 조건은 참이고, 상기 파라미터가 임계값보다 낮으면 상기 은폐 조건은 거짓이다.
본 개시의 제7 관점에 따른 인코더의 실시 형태에서, 은폐 모듈은 상기 은폐 조건을 체크하고, 상기 은폐 조건이 참이면 상기 은폐 계수 벡터에 스캔 순서 정보를 은폐하도록 구성되어 있다.
본 개시의 제7 관점에 따른 인코더의 실시 형태에서, 은폐 조건이 거짓이면, 상기 스캔 순서 선택기는 그 다른 선택된 스캔 순서에 대한 은폐 조건이 참일 때까지 상기 한 세트의 스캔 순서 중에서 다른 스캔 순서를 회귀적으로 선택하도록 구성되어 있다. 이에 의해, 다른 스캔 순서를 선택하는 것은 처음 선택된 스캔 순서가 거짓 은폐 조건을 의미하더라도 데이터 은폐를 수행할 수 있는 이점이 있다.
본 개시의 제7 관점에 따른 인코더의 실시 형태에서, 은폐 조건이 거짓이고 상기 선택된 스캔 순서가 미리 정의된 디폴트 스캔 순서이면, 상기 은폐 모듈은 상기 은폐 계수 벡터에 스캔 순서 정보를 은폐하지 않도록 구성되어 있다.
본 개시의 제7 관점에 따른 인코더의 실시 형태에서, 은폐 모듈은 적어도 하나의 블록에 대해:
- 상기 은폐 계수 벡터에 체크 함수를 적용하여 체크 함수의 결과를 획득하는 단계,
- 상기 체크 함수의 결과가 스캔 순서 정보에 대응하는지를 판정하는 단계, 및
- 대응하지 않으면, 상기 체크 함수의 결과가 스캔 순서 정보에 대응할 수 있도록 은폐 계수 벡터를 수정하는 단계
에 의해 은폐 계수 벡터에 스캔 순서 정보를 은폐하도록 구성되어 있다.
본 개시의 제7 관점에 따른 인코더의 실시 형태에서, 체크 함수의 결과는 상기 계수 행렬 내에서 상기 은폐 계수 벡터의 마지막 중요한 계수의 좌표 (x, y)에 의존하고,
특히 상기 체크 함수는 다음의 함수이며,
mod(x + y + R,2)
여기서 x 및 y는 좌표이고 R은 정수값이다.
본 개시의 제7 관점에 따른 인코더의 실시 형태에서, 상기 스캔 순서 선택기가 제1 블록 및 적어도 제2 블록에 대해 동일한 스캔 순서를 선택하면, 상기 은폐 모듈은 상기 동일한 스캔 순서를 식별하는 스캔 순서 정보를 제1 블록만의 하나 이상의 블록에 은폐하도록 구성되어 있다. 이에 의해 "병합 모드"에 따른 인코딩하는 것이 가능하다. 이러한 모드에서, 바람직하게 동일한 스캔 순서를 식별하는 스캔 순서 정보는 제2 블록의 계수에 은폐되지 않는다. 환언하면, 제2 블록에 대해 선택된 스캔 순서는 제1 블록의 계수에 은폐된 스캔 순서 정보를 사용해서 디코더 측에서 재구성/예측된다. 제1 블록 및 제2 블록은 예를 들어 인접하며, 예를 들어 비트스트림에서 연속적인 블록이다. 따라서, 제2 블록의 스캔 순서 정보는 제2 블록의 계수 내에 어떠한 은폐없이 디코더에 전송될 수 있다.
제1 블록 및 하나 이상의 제2 블록을 포함하는 한 그룹의 블록은 계수 내에 은폐된 적어도 하나의 논-디폴트 스캔 인덱스를 가지는 한 그룹의 블록일 수 있다. 대안으로, 상기 한 그룹의 블록은 수 개의 순차적으로 인코딩된 블록을 포함할 수 있으므로 상기 인코딩된 블록은 동일한 스캔 인덱스를 가진다. 대안으로, 상기 한 그룹의 블록은 은폐 조건이 거짓인 계수를 가지는 수 개의 블록 및/또는 수 개의 순차적으로 인코딩된 블록을 포함할 수 있다.
특히, 병합 모드에서는 스캔 순서 정보가 적어도 하나의 제2 블록의 계수에 은폐되어 있음을 알리기 위해 디코더에 대해 수 개의 옵션이 이용 가능하다. 먼저, 부가 정보가 비트스트림에 인코딩될 수 있으며, 예를 들어, 한 그룹의 블록을 위해 병합 모드의 사용을 인에이블 또는 디스에이블할 수 있는 한 그룹의 블록에 대한 플래그에서 인코딩될 수 있다. 둘째, 부가 정보 없이, 제1 블록 및/또는 제2 블록의 코딩 파라미터 및 은폐 조건에 의존해서 제2 블록에 병합 규칙을 적용하는 것이 제시된다. 환언하면, 제2 블록에 대해 은폐 조건이 충족되지 않으면 병합은 제2 블록에 적용되며, 즉, 제1 블록과 관련된 스캔 순서 정보에 기초해서 제2 블록의 스캔 순서가 선택된다. 세 번째, 최초의 2개의 대안의 조합이 제시되며, 상기 조합은 비트스트림 내의 부가 정보를 포함하고 은폐 조건에 의존해서 병합을 적용한다.
본 개시의 제7 관점에 따른 디코더의 기능 및 그 실시 형태 중 임의의 형태의 임의의 기능은 프로세서 또는 컴퓨터에 의해 수행될 수 있으며, 그 수단 중 어느 것도 그러한 프로세서 또는 컴퓨터 내의 소프트웨어 및/또는 하드웨어로 실행될 수 있다.
본 개시의 제8 관점은 본 개시의 제4 관점에 따라 바람직하게, 비트스트림으로 비디오 시퀀스의 블록의 계수를 인코딩하는 방법을 제공하며, 각각의 블록의 계수는 각각의 계수 행렬에 포함되어 있다. 상기 방법은 한 세트의 스캔 순서 중에서, 바람직하게는 한 세트의 미리 정의되고 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하는 단계를 포함한다. 상기 방법은 각각의 블록에 대해, 하나 이상의 계수 행렬 벡터를 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 계수 행렬을 스캐닝하는 단계를 포함한다. 상기 방법은 적어도 하나의 블록에 대해, 그 블록에 대해 선택된 스캔 순서를 식별하는 스캔 순서 정보를 그 블록의 하나 이상의 계수에 적어도 부분적으로 은폐하는 단계를 포함한다. 상기 방법은 상기 비트스트림으로 계수 벡터를 코딩하는 단계를 포함한다.
본 개시의 제8 관점에 따른 방법의 추가의 특징 또는 실시는 본 개시의 제7 관점 및 그 다른 실시 형태에 따른 디코더의 기능성을 수행할 수 있다.
본 개시의 제8 관점 및 그 실시 형태 중 임의의 형태에 따른 방법은 프로세서 또는 컴퓨터에 의해 실행될 수 있다.
본 개시의 제9 관점은 컴퓨터 프로그램이 컴퓨팅 장치 상에서 수행될 때, 본 개시의 제2 관점, 제4 관점, 제6 관점 또는 제8 관점에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는 컴퓨터 프로그램을 제공한다.
본 출원에서 설명된 모든 장치, 요소, 유닛 및 수단은 소프트웨어 또는 하드웨어 요소 또는 이들의 임의의 조합으로 구현될 수 있음을 알아야 한다. 본 명세서에서 기술된 다양한 엔티티들에 의해 수행되는 모든 단계뿐만 아니라 다양한 엔티티들에 의해 수행되는 것으로 기술된 기능은 각각의 엔티티가 각각의 단계 및 기능을 수행하도록 구성되거나 구성되도록 의도된다. 특정 실시예에 대한 다음의 설명에서, 특정 단계 또는 기능을 수행하는 엔티티의 특정 상세 요소의 설명에 반영되지 않은 영원한 엔티티에 의해 완전하게 형성되는 특정 기능 또는 단계라도, 숙련 된 사람은 이러한 방법 및 기능이 각각의 소프트웨어 또는 하드웨어 요소 또는 이들의 임의의 조합으로 구현될 수 있음을 이해할 것이다.
본 개시의 전술한 관점 및 실시 형태에 대해 첨부된 도면을 참조해서 특정한 실시예에 대한 이하의 설명에서 설명될 것이다.
도 1은 본 개시의 실시예에 따른 비디오 인코더를 도시한다.
도 2는 본 개시의 실시예에 따른 비디오 디코더를 도시한다.
도 3은 본 개시의 실시예에 따른 비디오 디코더의 계수 분포 추정의 흐름도이다.
도 4는 본 개시의 실시예에 따른 비디오 인코더의 계수 분포 추정의 흐름도이다.
도 5는 본 개시의 실시예에 따른 스캔 순서 리스트 초기화의 계수 분포 추정의 흐름도이다.
도 6은 본 개시의 실시예에 따른 선택된 스캔 순서의 암시적 및 명시적 시그널링의 흐름도이다.
도 7 및 도 8은 본 개시의 실시예에 따른 은폐 조건을 도시한다.
도 9는 종래기술에 따른 계수의 엔트로피 디코딩을 도시한다.
도 10은 비트스트림에서 시그널링 오버헤드를 감소시킴으로써 코딩 효율을 높이기 위한 본 개시의 실시예를 도시한다.
도 11은 본 개시에 따른 계수 재정렬을 도시한다.
도 12는 스캔 순서에 대해 정의된 은폐 조건의 예를 도시한다.
도 1은 본 개시의 실시예에 따른 비디오 인코더를 도시하고, 특히 비트스트림(107)으로 비디오 시퀀스의 블록의 계수를 인코딩하는 인코더(100)를 도시하며, 각각의 블록의 계수는 각각의 계수 행렬에 포함되어 있다.
인코더는 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있는 스캔 패턴 리스트 모듈(110)을 포함한다.
인코더는 하나 이상의 스캔 순서를 생성하도록 구성되어 있는 스캔 순서 생성기(111)를 포함한다.
인코더는 미리 정의되고 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기(109)를 포함한다.
인코더는 각각의 블록에 대해, 하나 이상의 계수 벡터를 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 계수 행렬을 스캐닝하도록 구성되어 있는 시리얼라이저(serializer)(104)를 포함한다.
인코더는 비트스트림(107)으로 계수 벡터를 코딩하도록 구성되어 있는 코딩 모듈(106)을 포함한다.
스캔 순서 생성기(111)는 비디오 시퀀스의 블록의 하나 이상의 이전에 스캐닝된 계수 행렬에 의존해서 하나 이상의 스캔 순서를 생성하도록 구성되어 있다.
도 2는 본 개시의 실시예에 따른 비디오 디코더를 도시하며, 특히 비트스트림(207)으로부터 비디오 시퀀스의 블록의 계수를 디코딩하는 디코더(200)를 도시한다.
디코더는 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있는 스캔 패턴 리스트 모듈(210)을 포함한다.
디코더는 하나 이상의 스캔 순서를 생성하도록 구성되어 있는 스캔 순서 생성기(211)를 포함한다.
디코더는 비트스트림에 포함된 스캔 순서 정보 SCAN_IDX에 기초해서 미리 정의되고 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기(209)를 포함한다.
디코더는 비트스트림(207)으로부터 각각의 블록의 하나 이상의 계수 벡터를 디코딩하도록 구성되어 있는 디코딩 모듈(206)을 포함한다.
디코더는 각각의 블록에 대해, 계수 행렬을 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 하나 이상의 계수 벡터를 역 스캐닝하도록 구성되어 있는 디시리얼라이저(deserializer)(204)를 포함한다.
스캔 순서 생성기(211)는 비디오 시퀀스의 블록의 하나 이상의 이전에 획득된 계수 행렬에 의존해서 하나 이상의 스캔 순서를 생성하도록 구성되어 있다.
도 1은 콘텐츠-적응 스캔 순서 선택을 갖는 인코더 측 잔여 코딩 부분의 예를 도시하고 있다. 예에서, 인코더(100)는 비디오 시퀀스의 각각의 픽처의 각각의 블록에 인터 예측 또는 인트라 예측을 적용하도록 구성되어 있다. 인트라 예측 모드는 동일한 픽처의 픽셀을 사용하여 참조 샘플을 생성함으로써 재구성되는 블록의 픽셀에 대한 예측 값을 계산한다. 인터 예측 모드는 시간 예측을 위해 설계되어 있고 이전 픽처 또는 다음 픽처의 참조 샘플을 사용해서 현재 픽처의 블록의 픽셀을 예측한다. 예측 스테이지의 결과는 블록의 원래의 신호와 인터 예측 또는 인트라 예측을 통해 획득된 그 예측 신호 간의 차이인 잔여 신호(101)일 수 있다.
잔여 신호(101)를 획득하기 위한 예측 모드는 그에 상응해서 인트라 예측 모드 또는 인터 예측 모드를 참조할 수 있다. 또한, 예측 모드는 복수의 이용 가능한 예측 모드 또는 방향 중 어느 것에도 대응할 수 있다. 예를 들어, 복수의 이용 가능한 예측 모드는 33개의 방향 모드 및 2개의 비 방향 모드를 포함하는 35개의 인트라 예측 모드까지 포함할 수 있으며, 비 방향 모드는 예를 들어 직류(DC) 예측 모드 및 플래너 예측 모드가 있다. 33개의 방향 모드는 π라디안 또는 180도 각 범위를 망라할 수 있다. 수직 모드의 방향이 0도로 간주되면, 33개의 방향 모드는 -45도 축을 중심으로 대칭일 수 있다. 예측 모드와 관련해서, 인코더는 주어진 블록에 대해, 속도-왜곡 최적화(Rate-Distortion Optimization, RDO)에 기초해서 복수의 이용 가능한 예측 모드 중 하나를 결정하도록 구성될 수 있다.
코딩 트리 유닛(Coding Tree Unit, CTU)은 픽처(예를 들어, 64x64 픽셀)의 일부를 포함하는, 미리 정의된 크기의 비디오 시퀀스 구조를 코딩하는 루트이다. CTU는 코딩 유닛으로 분할될 수 있다. CU는 CTU에 속하는 픽처의 일부를 포함하는, 미리 정의된 크기의 비디오 시퀀스의 기본 코딩 구조이다. CU는 추가의 CU로 분할될 수 있다. 예측 유닛(Prediction Unit, PU)은 CU의 분할의 결과인 코딩 구조이다. PU는 수 개의 변환 유닛(Transform Unit, TU)으로 분할될 수도 있고 단일 TU와 일치할 수도 있다. PU는 PU의 픽셀에 적용되는 프로세싱의 유형에 따라 인트라 예측될 수도 있고 인터 예측될 수도 있다. 인터 예측의 경우, PU는 PU에 지정된 모션 벡터를 사용해서 모션 보상에 의해 처리되는 픽셀의 영역을 나타낸다.
이 관점에서, 파티션 모드는 PU에 의존할 수 있으며, 특히 PU의 크기 및/또는 방향에 의존할 수 있다. 파티션 모드는 복수의 이용 가능한 파티션 모드 중 임의의 모드에 대응할 수 있다. 인코더는 블록 또는 PU에 대해, RDO 방법에 기초한 복수의 이용 가능한 파티션 모드 중 하나를 결정하도록 구성될 수 있다. 예를 들어, 파티션 모드는 CU가 2N×N PU 또는 블록으로 분할될 수 있는 수평 방향 형상에 대응할 수 있다. 또한, 파티션 모드는 CU가 N×2N PU 또는 블록으로 분할될 수 있는 수직 방향 형상에 대응할 수도 있고, CU가 2N×2N PU 또는 블록으로 분할될 수 있는 정사각형 형상에 대응할 수도 있다.
잔여 신호(101)는 변환 계수를 획득하기 위해 잔여 신호(101)를 변환 코딩하기 위한 변환 모듈(102)로 제공될 수 있다. 특히, 인트라 예측에 있어서, PU는 한 세트의 TU에 대한 예측 모드를 지정할 수 있다. TU 는 서로 다른 크기 - 예를 들어, 4x4, 8x8, 16x16 및 32x32 픽셀 - 를 가질 수 있으며 다른 방식으로 처리될 수 있다. 잔여 신호에 적용될 수 있는 변환의 예는 예를 들어 이산 코사인 변환(Discrete Cosine Transform, DCT) 및 이산 사인 변환(Discrete Sine Transform, DST)을 포함한다.
이 관점에서, 변환 파라미터는 TU의 크기 또는 형상일 수도 있고 크기 및 형상 모두일 수도 있다. 추가의 변환 파라미터는 적용되는 변환, 무엇보다도 예를 들어 DCT 또는 DST일 수 있다.
소스 픽처의 블록에 대해 계산된 잔여 신호(101)는 변환 모듈(102)에 의해 변환된 다음 양자화 모듈(103)에 의해 양자화된다. 변환 모듈(103)은 변환 계수를 처하여 계수 행렬 형태의 양자화된 변환 계수(quantized transform coefficients, QTC)를 획득한다.
이 관점에서, 양자화 파라미터는 계수 행렬의 다수의 중요한 계수, 즉 논-제로 값을 가지는 계수 행렬의 다수의 중요한 계수에 대응할 수 있다.
계수 행렬은 스캔 순서 선택기(109)에 의해 결정된 순서로 스캐닝함으로써 시리얼라이저(104)에 의해 직렬화된다. 스캔 순서는 스캔 패턴 리스트(110)에 의해 제공되는 미리 정의된 스캔 순서로부터 선택될 수도 있고 스캔 순서 선택기(111)에 의해 제공되는 생성된 스캔 순서로부터 선택될 수도 있다. 스캔 패턴 리스트(110)에 의해 제공되는 스캔 순서는 인코더(100) 측 및 디코더(200) 측 모두에 미리 정의되며 따라서 스캔 패턴 리스트(110)로부터 선택된 스캔 순서는 정적이며, 즉 전체 인코딩 프로세스 또는 디코딩 프로세스 동안 수정되지 않는다. 스캔 순서 선택기(111)에 의해 제공되는 스캔 순서는 동적이며, 즉 비디오 시퀀스의 블록의 하나 이상의 이전에 획득된 계수 행렬에 의존해서 생성된다. 특히, 생성된 스캔 순서는 인코딩 프로세스 또는 디코딩 프로세스 동안 계수 행렬의 분포 통계에 따라 생성될 수 있다.
시리얼라이저(104)가 계수 행렬로부터 획득하는 하나 이상의 계수 벡터는 양자화된 계수 버퍼(105)에 저장된다. 코딩 모듈(106)은 계수 벡터를 비트스트림(107)으로 엔트로피 코딩하기 위한 엔트로피 코딩 모듈의 형태일 수 있다. 스캔 순서 선택기(109)에 의해 선택되는 스캔 순서는 스캔 인덱스 정보 또는 스캔 순서 정보 SCAN_IDX에 의해 식별될 수 있다.
이 스캔 인덱스 정보는 비트스트림(107)에 명시적으로 부가될 수 있으며, 즉 스캔 순서 정보 SCAN_IDX는 전용 변수 또는 파라미터에 의해 비트스트림(107)에 저장될 수 있다. 대안으로, 은폐 모듈(112)은 스캔 순서 정보 SCAN_IDX를 계수 벡터에, 또는 직렬화 후의 계수 행렬의 값에 적어도 부분적으로 은폐하도록 구성될 수 있다. 예를 들어, 은폐 모듈(112)은 이에 상응해서 양자화된 계수 버퍼(105)에 저장되어 있는 계수의 조정을 수행할 수 있으므로 디코더(200)의 체크 모듈(212)에 위치하는 대응하는 체크 모듈은 체크 함수를 계수에 적용함으로써 스캔 순서 정보 SCAN_IDX를 유도할 수 있다.
양자화된 계수 버퍼(105)에 저장되어 있는 하나 이상의 계수 벡터의 계수는 그런 다음 스캔 순서 정보 SCAN_IDX가 비트스트림(107)에서 명시적으로 또는 암시적으로 전송되는지에 의존해서, 즉 스캔 순서 정보가 은폐되는지 아닌지에 의존해서 조정될 수도 있고 조정되지 않을 수도 있다.
특히, 스캔 패턴 리스트 모듈(110)은 복수의 코딩 파라미터 세트 각각에 대해 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있다. 스캔 순서 생성기(111)는 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 스캐닝된 계수 행렬에 의존해서 각각의 코딩 파라미터 세트에 대한 스캔 순서를 생성하도록 구성되어 있다. 스캔 순서 선택기(109)는 각각의 블록에 대한 스캔 순서를,
- 그 블록의 코딩 파라미터 세트를 결정하는 단계; 및
- 상기 결정된 코딩 파라미터 세트에 대해 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 그 블록의 계수 행렬에 대한 스캔 순서를 선택하는 단계
에 의해 선택하도록 구성되어 있다.
이 관점에서, 코딩 파라미터 세트는:
- 예측 모드,
- 파티션 모드,
- 하나 이상의 변환 파라미터, 및
- 하나 이상의 양자화 파라미터
중 적어도 하나 이상의 특정 조합에 대응한다.
예측 모드, 파티션 모드, 변환 파라미터 및 양자화 파라미터는 대체적으로 도 1의 도면부호 108에 의해 참조된다. 예를 들어, 코딩 파라미터 세트는 예측 모드(예를 들어, 특정 방향 인트라 예측 모드)에만 대응할 수도 있고, 파티션 모드(예를 들어, PU의 특정 방향)에만 대응할 수도 있고, 하나 이상의 변환 파라미터(예를 들어, TU의 특정 크기 및/또는 형상)에만 대응할 수도 있고, 하나 이상의 양자화 파라미터(예를 들어, 계수 행렬의 특정한 수의 중요한 계수)에만 대응할 수도 있다. 또한, 코딩 파라미터 세트는 예측 모드, 파티션 모드, 변환 파라미터 및/또는 양자화 파라미터의 특정한 조합에 대응할 수 있다.
인코더(100)는 각각의 코딩 파라미터 세트에 대해, 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 스캐닝된 계수 행렬의 분포 통계를 계수 분포 추정기(113)를 포함할 수 있다. 스캔 순서 생성기(111)는 그 코딩 파라미터 세트에 대한 분포 통계에 의존해서 각각의 코딩 파라미터 세트에 대한 스캔 순서를 생성하도록 구성되어 있다.
특히, 양자화된 계수 버퍼(105)에 저장되어 있는 계수는 또한 스캔 순서 생성기(111)에 의해 사용되는 계수 분포 통계 추정에 대한 소스이다. 그렇지만, 계수 분포를 추정하기 전에, 저장되어 있는 계수는 디시리얼라이저(114)에 의해 계수 벡터로부터 계수 행렬로 다시 역직렬화된다.
계수 행렬의 분포 통계는 US 2008/0310504에 정의된 바와 같이 2차원 계수 행렬의 위치에서의 계수 값이 제로 또는 논-제로일 확률의 지시를 포함하며, 예를 들어 2차원 계수 행렬의 각각의 계수 위치와 관련된 카운트, 확률 또는 기타 통계 계량(statistics metric)을 포함할 수 있다. 이러한 분포 통계에 의존해서 생성된 스캔 순서는 이에 상응해서 논-제로 계수의 확률이 높은 계수 위치를 더 높은 우선순위로 스캐닝하도록 구성되어 있는 스캔 순서일 수 있다.
특히, 주어진 블록에 대해 선택된 스캔 순서가 생성된 스캔 순서이면, 계수 분포 추정기(113)는 주어진 블록의 계수 행렬의 분포 통계에 따라 주어진 블록의 코딩 파라미터 세트에 대한 분포 통계를 갱신하도록 구성되어 있다. 주어진 블록의 계수 행렬의 분포 통계는 주어진 블록의 계수 행렬 내의 위치에서 계수가 제로인지 또는 논-제로인지를 반영할 수 있다. 계수 분포 추정기(113)에 의해 제공되는 분포 통계는 그런 다음 예를 들어 주어진 블록의 계수 행렬의 분포 통계에 의존해서 갱신될 수 있다.
특히, 주어진 블록에 대해 선택된 스캔 순서가 미리 정의된 스캔 순서이면, 계수 분포 추정기(113)는 주어진 블록의 코딩 파라미터 세트에 대한 분포 통계를 갱신하지 않거나 리셋하도록 구성될 수 있다. 분포 통계를 리셋하는 것은 예를 들어 카운트, 확률 또는 기타 통계 계량으로 이루어질 수 있다.
스캔 순서 선택기(109)가 생성된 스캔 순서를 선택하였는지 또는 미리 정의된 스캔 순서를 선택하였는지에 의존해서 계수 분포 추정기(113)에 의해 수행되는 분포 통계의 이러한 갱신, 비갱신, 또는 리셋은 스캔 순서 선택기(103)로부터 계수 분포 추정기(113)로의 화살표로 도 1에 반영되어 있다.
제시된 실시예의 디코더는 도 14에 도시되어 있다. 프로세싱 스테이지는 인코더의 프로세싱 스테이지와 유사하고(도 13 참조) 역순으로 적용된다. 가장 중요한 차이점은 양자화된 계수 버퍼가 역직렬화된 QTC를 저장하는데, 즉 QTC를 하나 이상의 벡터가 아닌 QTC 행렬로서 저장한다는 점이다.
특히, 도 2는 콘텐츠-적응 스캔 순서 선택을 갖는 잔여 디코딩 부분의 예를 도시하고 있다. 예에서, 디코더(200)는 비트스트림(207)으로부터 잔여 신호(201)를 획득하도록 구성되어 있다. 디코딩 모듈(206)(예를 들어, 엔트로피 디코딩 모듈) 및 디시리얼라이저(204)가 양자화된 변환 계수를 포함하는 계수 행렬을 생성한 후, 양자화된 계수 버퍼(205)는 상기 계수 행렬을 저장한다. 저장되어 있는 계수 행렬은 그런 다음 역 양자화 모듈(203) 및 역 변환 모듈(202)에 의해 처리되어 인코더(100) 내의 잔여 신호(101)에 대응하는 잔여 신호를 획득한다. 잔여 신호(201)를 사용해서, 인코딩 비디오 시퀀스는 공지의 기술에 따라 재구성될 수 있다.
디코더(200)의 계수 분포 추정기(213)는 인코더(100)의 계수 분포 추정기(113)와 기능이 유사하거나 동일할 수 있다. 예에서, 차이점은 계수 분포 추정기(213)가 양자화된 계수 버퍼(205)에 저장되어 있는 계수 행렬을 입력으로 수신하는 반면, 계수 분포 추정기(113)는 디시리얼라이저(114)로부터 획득된 계수 행렬을 입력으로 수신한다는 점이다.
본 개시는 비디오 시퀀스의 블록의 이전에 스캐닝되어 각각 획득된 계수 행렬에 의존해서, 미리 정의된 스캔 순서 및 인코더(100) 측과 디코더(200) 측 모두에서 생성된 스캔 순서의 조합 사용을 제시한다. 특히, 생성된 스캔 순서는 계수 행렬 내에서 계수의 분포 통계를 분석함으로써, 즉 양자화된 변환 계수의 분포를 분석함으로써 생성된다.
제시된 발명의 특별한 특징은 스캔 순서 선택기(109, 209)와 계수 분포 추정기(113, 213) 간의 화살표로 도 1 및 도 2에 예를 들어 도시된 바와 같이, 선택된 스캔 순서를 고려함으로써, 양자화된 변환 계수(QTC)에 대한 분포 통계가 더 정밀하게 추정된다는 점이다. 이것은 더 정밀한 추정은 예를 들어 위에서 도시된 바와 같이 분포 통계를 갱신, 비 갱신 또는 리셋으로 이루어질 수 있다.
계수 분포는 소스 데이터를 4개의 정지 기간으로 분할하고 이러한 정지 기간 내에서만 계수 분포를 추정함으로써 더 정확하게 추정될 수 있다. 정지 기간은 유사한 QTC 분포를 가지며 서로 공간적으로 인접하는 복수의 블록이다.
본 개시에서, 적응적으로 생성된 스캔 순서를 가지도록 시그널링되는 복수의 제시된 블록에 대해 임계값을 도입함으로써 정지 기간을 검출하는 것이 특별히 제안되어 있다. 스캔 패턴 리스트 모듈에 의해 제공되는 미리 정의된 스캔 순서 중에서 스캔 순서가 선택되면, 이 경우 스캔 순서가 미리 정의된 스캔 순서라는 사실이 현재 처리된 블록이 서로 다른 정지 기간에 속한다는 것을 나타내므로 분포 통계를 갱신할 필요가 없다.
도 3은 본 개시의 실시예에 따른 비디오 디코더의 분포 통계 추정의 흐름도이다.
비디오 디코더에서, 계수 분포 추정기(213)에 의한 분포 통계 추정(301)은 몇 가지 단계를 포함한다.
단계 302에서, 하나의 블록에 대한 예측 모드, 파티션 모드, 변환 파라미터 및/또는 양자화 파라미터(208)는 비트스트림(207)으로부터 파싱된다. 바람직하게, 이러한 파싱은 디코딩 모듈(206)에 의해 수행된다. 파싱된 정보에 따라, 스캔 순서 선택기(209)는 바람직하게 그 블록의, 인코딩 모드를 결정한다.
단계 303에서, 그 블록에 대한 선택된 스캔 순서를 식별하는 스캔 순서 정보 SCAN_IDX는 비트스트림(207)으로부터 파싱된다. 이러한 파싱은 디코딩 모듈(206)에 의해 바람직하게 수행된다.
단계 304에서, 스캔 순서 선택기(209)는 스캔 순서 정보 SCAN_IDX에 기초해서 미리 정의된 스캔 순서 및 생성된 스캔 순서 중에서 그 블록에 대한 스캔 순서를 선택한다.
단계 305에서, 선택된 스캔 순서가 스캔 패턴 리스트 모듈(21)에 의해 제공되는 미리 정의된 스캔 순서인지 또는 스캔 순서 생성기(211)에 의해 제공되는 생성된 스캔 순서인지가 결정된다.
그 블록에 대해 선택된 스캔 순서가 (예를 들어, 스캔 순서 생성기(211)에 의해 제공되는) 생성된 스캔 순서이면, 계수 분포 추정기(213)는 단계 306에서 현재의 분포 통계를 갱신한다. 이 현재의 분포 통계는 이전의 블록으로부터 바람직하게 획득된다. 현재의 분포 통계는 그 블록에 대해 획득된 계수 행렬의 분포 통계에 따라 갱신된다.
그렇지만, 그 블록에 대해 선택된 스캔 순서가 (예를 들어, 스캔 패턴 리스트 모듈(210)에 의해 제공되는) 미리 정의된 스캔 순서이면, 계수 분포 추정기(213)는 단계 306에서 그 블록의 분포 통계를 현재의 분포 통계로부터 개별적으로 처리한다. 예를 들어, 계수 분포 추정기(213)는 현재의 분포 통계를 갱신하지 않을 수도 있고 리셋할 수도 있다.
단계 306 또는 단계 307 후에, 분포 통계의 추정(301)이 (단계 308에서) 종료된다.
도 4는 본 개시의 실시예에 따른 비디오 인코더의 계수 분포 추정의 흐름도이다.
비디오 인코더에서, 계수 분포 추정기(113)에 의한 분포 통계 추정(401)은 몇 가지 단계를 포함한다.
단계 402에서, 스캔 패턴 리스트 모듈(110)에 의해 제공되는 미리 정의된 스캔 순서 및 스캔 순서 생성기(111)에 의해 제공되는 생성된 스캔 순서 중에서, 최소 레이트-왜곡(rate-distortion, RD) 비용을 제공하는 스캔 순서를 선택하기 위해 스캔 순서 선택기(109)는 RDO 절차를 수행한다. 이 단계에서, 선택된 스캔 순서의 스캔 순서 정보 SCAN_IDX가 획득된다.
단계 403에서, 선택된 스캔 순서 정보 SCAN_IDX에 대응하는 스캔 순서가 획득된다.
추가의 단계 404 내지 407은 도 3의 단계 305 내지 308에 대응한다.
도 3 및 도 4에 도시된 바와 같이, 인코더 측 및 디코더 측 모두에서 스캔 순서 리스트가 초기화된다. 스캔 순서 패턴에 의해 생성된 스캔 순서 및 스캔 패턴 리스트 모듈의 멤버를 포함한다. 스캔 순서 선택기에 의해 선택된 스캔 순서가 생성된 스캔 순서인지 미리 정의된 스캔 순서인지에 따라, 분포 통계에 대한 결정이 수행된다. 이 결정은 현재의 분포 통계를 갱신하거나 갱신하지는 않는 것, 또는 현재의 분포 통계를 리셋하는 것으로 이루어질 수 있다.
스캔 순서 리스트를 초기화하는 가능한 방식 중 하나가 도 5에 도시되어 있다. 도 5는 이에 상응해서 본 개시의 실시예에 따른 스캔 순서 리스트 초기화(501)의 흐름도(500)를 도시한다.
그 초기화는 처리될 블록에 대해 지정된 예측 모드, 파티션 모드, 변환 파라미터 및 양자화 파라미터에 의존한다.
단계 502에서, 그 블록의 예측 모드가 플래너 인트라 예측 모드인지를 결정한다. 이것이 참이면, 미리 정의된 스캔 순서의 스캔 패턴 리스트가 508에서 정의되어 미리 정의된 Z-차수 및 대각선 스캔 순서를 포함한다. 이것이 거짓이면, 단계 503이 수행된다.
단계 503에서, 이 블록의 예측 모드가 DC 인트라 예측 모드인지를 결정한다. 이것이 참이면, 미리 정의된 스캔 순서의 스캔 패턴 리스트가 508에서 정의되어 미리 정의된 Z-차수 및 대각선 스캔 순서를 포함한다. 이것이 거짓이면, 단계 504가 수행된다.
단계 504에서, 이 블록의 예측 모드가 수평에 근접하는 각 인트라 예측 모드인지를 결정한다. 이것이 참이면, 미리 정의된 스캔 순서의 스캔 패턴 리스트가 509에서 정의되어 수직 스캔 순서, 수직-대각선 스캔 순서 및 나선 스캔 순서를 포함한다. 이것이 거짓이면, 단계 505가 수행된다.
단계 505에서, 이 블록의 예측 모드가 수직에 근접하는 각 인트라 예측 모드인지를 결정한다. 이것이 참이면, 미리 정의된 스캔 순서의 스캔 패턴 리스트가 510에서 정의되어 수평 스캔 순서, 수평-대각선 스캔 순서 및 나선 스캔 순서를 포함한다. 이것이 거짓이면, 단계 506이 수행된다.
단계 506에서, 이 블록의 예측 모드가 대각선에 근접하는 각 인트라 예측 모드인지를 결정한다. 이것이 참이면, 미리 정의된 스캔 순서의 스캔 패턴 리스트가 511에서 정의되어 대각선 스캔 순서, Z-차수 스캔 순서 및 나선 스캔 순서를 포함한다. 이것이 거짓이면, 단계 507이 수행된다. 단계 507에서, 미리 정의된 스캔 순서의 스캔 패턴 리스트가 정의되어 대각선 스캔 순서를 포함한다.
그 블록에 대해 미리 정의된 스캔 순서의 스캔 순서 리스트를 정의한 후, 스캔 순서 리스트는 그 블록의 파티셔닝 모드, 변환 파라미터 및 양자화 파라미터를 사용해서 512에서 조정된다.
단계 513에서, 스캔 순서 생성기에 의해 제공되는 하나 이상의 생성된 스캔 순서는 미리 정의된 스캔 순서에 부가되므로, 예를 들어 인코더의 스캔 순서 선택기(109)는 미리 정의된 스캔 순서 및 생성된 스캔 순서 중에서, 최소 RD-비용을 제공하는 스캔 순서를 선택할 수 있다.
도 5에 도시된 바와 같이, 미리 정의된 스캔 순서는 예측 모드 및/또는 파티셔닝 모드 및/또는 변환 파라미터 및/또는 양자화 파라미터에 의존할 수 있다. 예를 들어, DC 또는 플래너 인트라 모드의 경우에 대해 가장 가능성이 있는 스캔 순서는 미리 정의된 스캔 순서가 인트라 모드 방향성에 직각이 되게 선택될 수 있도록 고려될 수 있다.
그 후, 미리 정의된 스캔 순서의 이 리스트는 다른 인코딩 파라미터에 따라, 예를 들어 파티셔닝 모드, 변환 파라미터 및 양자화 파라미터에 따라 갱신될 수 있다. 특히, 이 리스트는 파티셔닝 크기 및 변환 크기에 따라 갱신될 수 있다.
예를 들어, 인터 예측 모드에서, 비 정사각형 예측 모드 역시 잔여 신호의 방향성 속성을 지시할 수 있고 미리 정의된 스캔 순서의 리스트가 그에 따라 갱신될 수 있으며; 파티셔닝 직사각형이 수직으로 지향되고 그런 다음 수평 및 수평-대각선 순서가 그에 따라 수직으로 지향된 파티셔닝에 대해 갱신되며; 이 경우, 수직 스캔 및 수직-대각선 스캔이 미리 정의된 스캔 순서의 리스트에 부가된다.
예를 들어, 미리 정의된 스캔 순서의 이 목록은 변환 크기에 따라 갱신될 수 있다. TU 크기가 작을수록 일부의 스캔 패턴 상에서 제약이 생긴다. 그런 다음, 예를 들어, TU 크기가 8x8 픽셀보다 작으면 나선형 스캔은 미리 정의된 스캔 순서에서 배제될 수 있다.
양자화 파라미터(QP)는 미리 정의된 스캔 순서의 리스트 및 시그널링 방법 모두에 영향을 미칠 수 있다. 높은 QP 값에 있어서, 스캔 패턴의 수가 감소될 수 있다. 예를 들어, QTC는 QTC 행렬의 좌, 상 및 좌상 모서리에 더 정렬되므로, 나선형 스캔은 모든 TU 크기에 대해 건너뛸 수 있다.
QP 상에서 시그널링 방식의 의존성의 예가 도 6에 도시되어 있다. 도 6은 특히 본 개시의 실시예에 따른 선택된 스캔 순서의 암시적 및 명시적 시그널링의 흐름도(600)를 도시한다.
제1 단계 601에서, QP 값이 획득된다. 그 QP 값이 단계 602에서 고 비트 레이트 QPHBR에 대한 QP 값보다 작거나 같으면, 스캔 순서 정보 SCAN_IDX는 단계 603에서 비트스트림에 엔트로피 코딩되어야 한다.
QP 값이 QPHBR보다 높고 저 비트 레이트 QPLBR에 대한 추가의 QP 값보다 낮으면, 스캔 순서 정보 SCAN_IDX는 단계 606에서 부분적으로 엔트로피 코딩되고 은폐 모듈(112)에 의해 양자화된 변환 계수 내에서 부분적으로 은폐된다.
QP 값이 QPHBR보다 높고 저 비트 레이트 QPLBR에 대한 그 추가의 QP 값보다 높거나 같으면, 스캔 순서 정보 SCAN_IDX는 단계 605에서 은폐 모듈(112)에 의해 양자화된 변환 계수 내에서 은폐되어야 한다.
따라서, 은폐는 비트레이트가 증가함에 따라 비용이 더 들고 고 비트 레이트에 대해 완전히 꺼진다. 저 비트 레이트의 경우에는 그 역도 성립하며 은폐가 더 바람직하다. 그렇지 않으면, 즉 중간 비트 레이트의 경우, 시그널링 메커니즘 모두가 사용된다. 시그널링 메커니즘의 선택이 은폐가 그에 대해 수행될 수 있는지에 따라 각각의 블록 또는 TU에 대해 수행된다.
본 개시에 따라, 비트스트림(207)으로부터 비디오 시퀀스의 블록의 계수를 디코딩하는 디코더(200)가 제시된다. 상기 디코더는:
- 상기 비트스트림(207)으로부터 각각의 블록의 하나 이상의 계수 벡터를 디코딩하도록 구성되어 있는 디코딩 모듈(206),
- 적어도 하나의 블록에 대해, 그 블록의 하나 이상의 계수로부터 은폐된 정보를 재구성하도록 구성되어 있는 체크 모듈(212) - 상기 은폐된 정보는 그 블록과 관련된 스캔 순서 정보(SCAN_IDX)의 일부를 구성하거나 형성함 - ,
- 그 블록과 관련된 스캔 순서 정보(SCAN_IDX)에 기초해서, 한 세트의 스캔 순서 중에서, 바람직하게는 한 세트의 미리 정의되고 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기(209), 및
- 각각의 블록에 대해, 계수 행렬을 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 하나 이상의 계수 벡터를 역 스캐닝하도록 구성되어 있는 디시리얼라이저(204)
를 포함한다.
본 개시에 따라, 비트스트림(207)으로 비디오 시퀀스의 블록의 계수를 인코딩하는 인코더(100)가 제시되며, 각각의 블록의 계수는 각각의 계수 행렬에 포함되어 있다. 인코더는:
- 한 세트의 스캔 순서 중에서, 바람직하게는 한 세트의 미리 정의되고 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기(109),
- 각각의 블록에 대해, 하나 이상의 계수 벡터를 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 계수 행렬을 스캐닝하도록 구성되어 있는 시리얼라이저(104),
- 적어도 하나의 블록에 대해, 그 블록에 대해 선택된 스캔 순서를 식별하는 스캔 순서 정보(SCAN_IDX)를 그 블록의 하나 이상의 계수에 적어도 부분적으로 은폐하도록 구성되어 있는 은폐 모듈(112), 및
- 상기 비트스트림(107)으로 계수 벡터를 코딩하도록 구성되어 있는 코딩 모듈(106)
을 포함한다.
그런 다음 인코더에 의해 생성되고 디코더에 의해 수신되는 비트스트림(107, 207)에서의 시그널링 오버헤드가 감소될 수 있으므로 코딩 효율은 향상될 수 있다.
바람직하게, 체크 모듈(212)은 적어도 하나의 블록에 대해, 그 블록에 대해 획득된 하나 이상의 계수 벡터 중에서 선택된 적어도 하나의 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있다. 은폐 모듈(112)은 적어도 하나의 블록에 대해, 그 블록에 대해 획득된 하나 이상의 계수 벡터 중에서 선택된 적어도 하나의 은폐 계수 벡터에 스캔 순서 정보 SCAN_IDX를 은폐하도록 구성되어 있다.
재구성 및 은폐는 은폐 조건에 의존할 수 있다. 이러한 은폐 조건은 은폐 계수 벡터에 의존하는 파라미터와 임계치와의 비교를 포함한다.
파라미터는:
- 은폐 계수 벡터 내의 복수의 중요한, 즉 논-제로 계수, 또는
- 은폐 계수 벡터 내의 제1 중요한 계수와 마지막 중요한 계수 간의 거리, 또는
- 은폐 계수 벡터 내의 계수의 최소 절대 비 제로(non-zero) 값에 대한 최대 절댓값의 비율
일 수 있으며,
파라미터가 임계값보다 높으면 은폐 조건은 참이고, 파라미터가 임계값보다 낮으면 은폐 조건은 거짓이다.
도 7 및 도 8은 본 개시의 실시예에 따른 은폐 조건을 도시한다. 특히, 도 7은 계수 그룹(coefficient group, CG)으로 세분화되는 블록 또는 TU를 도시하며, 각각의 계수 벡터는 계수 그룹에 대응한다. 도 8은 계수 벡터 내의 제1 중요한 계수, 제1 논-제로 계수와 마지막 중요한 계수, 즉 마지막 논-제로 계수 간의 거리 N으로 이루어진 경우를 나타내는 계수 벡터의 예를 도시한다. 값 N이 임계값 TSIG보다 높으면, 은폐 조건은 참이고 스캔 순서 정보는 그 계수 벡터에 은폐될 수 있다.
특히, 은폐 모듈(112)은 은폐 계수 벡터에 체크 함수(check-function)를 적용함으로써 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있으며, 상기 체크 함수의 결과는 상기 은폐된 정보이다. 또한, 은폐 모듈(112)은 적어도 하나의 블록에 대해:
- 은폐 계수 벡터에 체크 함수를 적용하여 체크 함수의 결과를 획득하는 단계,
- 체크 함수의 결과가 스캔 순서 정보(SCAN_IDX)에 대응하는지를 판정하는 단계, 및
- 대응하지 않으면, 체크 함수의 결과가 스캔 순서 정보(SCAN_IDX)에 대응할 수 있도록 은폐 계수 벡터를 수정하는 단계
에 의해 은폐 계수 벡터에 스캔 순서 정보(SCAN_IDX)를 은폐하도록 구성되어 있다.
체크 함수의 결과는 계수 행렬 내에서 은폐 계수 벡터의 마지막 중요한 계수의 좌표 (x, y)에 의존하는 것으로 제시된다. 체크 함수는 예를 들어 다음의 함수이며:
mod(x + y + R,2)
여기서 x 및 y는 좌표이고 R은 정수값이다.
예를 들어, 체크-함수는 또한 다음의 함수 또는 다른 공지된 체크-함수 중 하나일 수 있다:
- 이진수 패턴을 사용해서 계수 행렬로부터 선택된 일부의 계수의 적어도 하나의 중요 비트에 적용되는 패리키 체크-함수, 및
- 마지막 논-제로 계수 또는 제1 논-제로 계수의 위치 인덱스에 적용되거나 마지막 논-제로 계수 또는 제1 논-제로 계수의 위치 인덱스의 선형 조합에 적용되는 패리키 체크-함수.
이와 관련해서, 도 9는 종래기술에 따른, 특히 H.265 비디오 코딩 표준에 따른 계수의 엔트로피 디코딩(901)을 도시한다. 엔트로피 디코딩(901)은 마지막 중요한, 즉 논-제로 QTC의 X 좌표 및 Y 좌표를 디코딩하는 단계(902)를 포함한다. 그런 다음, QTC 중요도 값의 마스크(중요도 마스크)는 마지막 중요한 QTC로부터 시작해서 스캔 순서에 따라 시그널링된다(903). 값 및 부호는 중요한 계수 값에 대해서만 비트스트림으로부터 분석된다(904, 905).
그러므로 1D 중요도 마스크의 길이는 스캔 순서 및 마지막 중요한 QTC의 좌표로부터 유도될 수 있다. 당연히, QTC는 스캔 순서 정보를 사용해서 비트스트림으로부터 파싱되기 때문에, 단지 공지의 데이터 은폐 방법을 적용하여 스캔 순서 지시 데이터를 QTC에 내장하는 것으로는 부족하다.
도 10은 본 개시의 실시예를 도시하며, 특히 인코더에 의해 생성되고 디코더에 의해 수신되는 비트스트림(107, 207)에서 시그널링 오버헤드를 감소시킴으로써 코딩 효율을 높이기 위한 본 개시의 실시예를 도시한다.
도 10의 실시예에서, QTC 내의 스캔 순서 은폐는 가능하다. 인코딩 프로세스 동안, 수 개의 서로 다른 스캔 순서 - SCAN_IDX에 의해 색인된 - 는 양자화(1001) 스테이지 및 은폐(1002) 스테이지 동안 적용된다. 양자화 절차(1001)는 스캔 정보를 사용해서 비트 수(즉, 비트 레이트)를 추정하며 추정된 비트 레이트와 관련해서 이러한 QTC 값을 조정함으로써 QTC 값을 인코딩하고 레이트-왜곡 최적화를 수행할 수 있다.
은폐가 성공적이지 않으면(1003), 즉 예를 들어 은폐 조건이 실패이면, 다른 스캔 순서 정보 SCAN_IDX가 선택된다(1004). 바람직하게 은폐가 성공될 때까지 다른 스캔 순서가 선택된다. 선택된 스캔이 디폴트 스캔 순서이면, 예를 들어 은폐는 수행되지 않는다.
은폐가 성공이거나 선택된 스캔 순서가 디폴트 온이면, 디폴트 스캔 순서에 따라 QTC를 재정렬하는 것이 가능하다(1005). 다음 단계는 QTC를 직렬화하는 단계(1006) 및 엔트로피 인코딩 단계(1007)를 포함한다. 이러한 단계(1006 및 1007)는 도 1의 블록(104 및 106)에 대응할 수 있다. 직렬화(1006)는 또한 도 1의 경우에서와 같이 단계(1001)와 단계(1002) 사이에 투입될 수도 있다.
은폐(1002)는 은폐 조건을 체크하는 단계, 및 은폐 조건이 충족하도록 QTC를 수정하는 단계를 포함한다. 이 수정 단계는: QTC 값을 교체하는 단계, QTC 값을 제로에 설정하는 단계, 및 중요하지 않은(제로 값) QTC를 중요한 QTC(논-제로)로 만드는 단계를 포함한다. 당연히, 은폐 조건이 충족될 수 있도록 QTC를 조정하는 것은 항상 가능하다. 그렇지만, 인코더 측에서의 QTC 조정은 이러한 조정에 의해 야기되는 왜곡에 의해 제약받으며, 합리적인 조정 제약이 적용된다. 예를 들어, 양자화 절차 때문에, 합리적인 계수 조정은 플러스 또는 마이너스 1이다. 이 제약은 은폐 동작이 수행되지 않을 수도 있게 하는데, 즉 은폐 조건을 충족하는 QTC의 조정이 없다(1003은 논-디폴트 스캔의 경우 "아니로"로 평가한다).
디코더 측에서, 엔트로피 디코딩(1011) 후에, 은폐 정보가 직렬화된 데이터로부터 검색되고, 그러므로 은폐 스테이지 역시 선택된 스캔 순서와 관련해서 내장될 수 있도록 디코더 측에서 사용될 스캔 순서에 대한 정보를 요구한다. 예를 들어, TU는 임계값보다 낮은 복수의 중요한 QTC를 가진다. 이 경우, 추가의 프로세싱은 스캔 순서가 디폴트 순서인지에 의존한다. 디폴트 스캔이 사용되면, 디코더는 엔트로피 디코딩 스테이지 동안 분석된 QTC에 동일한 은폐 조건을 적용함으로써 1015를 유도할 수 있다. 그렇지 않으면, 스캔 순서는 건너뛰고 이용 가능한 경우 다음 스캔 순서가 체크된다.
디폴트 스캔 순서가 유효하면, 소스 스캔과 목표 스캔이 동일하므로 스캔 QTC를 재정렬하는 스테이지를 건너뛸 수 있다. 논-디폴트 스캔 순서에 있어서, 엔트로피 인코딩 스테이지 및 엔트로피 디코딩 스테이지는 변경 없이 수행될 수 있도록, 계수 재정렬을 수행하는 것이 제시된다. 특정한 실시는 리맵핑 동작을 사용하여, 2D QTC 행렬의 좌표와 선택된 스캔 내의 1D 위치 간의 일치를 재정렬을 위한, 즉 재정의하기 위한 불필요한 복사 동작을 피할 수 있다. 직렬화/역직렬화 스테이지에서 이 리맵핑은 QTC가 재정렬된 것처럼 주어진 1D 스캔 위치에 대해 CABAC 컨텍스트 인덱스 및 마지막 중요한 QTC 좌표를 제공할 수 있다.
도 11은 본 개시에 따른 계수 재정렬을 도시하고, 특히 4x4 블록에 대한 QTC 재정렬의 예: 대각선 스캔으로부터 수평 스캔으로 재정렬하는 예를 도시한다.
이 점에 관해서는 조엘 솔(Joel Sole) 등에 의한 문서 "HEVC에서의 변환 계수 코딩(Transform Coefficient Coding in HEVC)", IEEE의 VIDEO TECHNOLOGY, VOL. 22, NO. 2012년 12월 12일, 1765-1777 페이지를 참조한다. 이 문서의 섹션 V.B에서, 중요도 플래그는 스캔 순서의 마지막 순서(제외됨)와 DC 계수 사이의 각 계수에 대한 컨텍스트 모델을 사용하여 코딩된다는 것이 명시되어 있다. 4×4 변환 블록 TB, 즉 QTC의 행렬에 대해, 컨텍스트는 H.264/AVC에서처럼 TB 내의 계수의 위치에 의존한다. 직렬화된 데이터 및 이진화된 데이터에 대해 엔트로피 인코딩이 수행됨에도 불구하고, QTC의 중요 비트를 인코딩하기 위한 컨텍스트 모델은 QTC의 행렬 내에서 이 QTC의 위치 및 공간적으로 인접한 QTC(오른쪽 및 아래)의 중요도에 따라 선택된다. 최첨단 디코더는 이 비트가 파싱되는 QTC의 위치 및 이전에 디코딩된 유효 QTC의 위치에 따라 선택되는 컨텍스트 모델을 사용하여 비트 스트림에서 중요도 비트를 파싱한다. 스캔 순서가 디코더에 대해 이용 가능하지 않다면, QTC의 공간적 위치는 정의되지 않으며, 따라서 컨텍스트 모델은 도출될 수 없다.
예를 들어 도 11에 도시된 바와 같이, 엔트로피 인코더 이전의 그 제시된 재정렬 스테이지는 인코딩된 QTC/디코딩된 QTC에 대해 인코더 및 디코더 동일한 스캔 순서 및 동일한 컨텍스트 모델을 사용할 것이다.
도 11은 특히 양자화 후, QTC의 행렬이 (x=1, y=2)에 위치하는 마지막 중요한 계수(대각선 스캔에 대해)와 함께 획득될 때의 경우를 설명한다. 대각선 스캔의 경우 8개의 계수 중요 비트가 인코딩되어야 한다.
다른 스캔 순서, 예를 들어, 대각선 스캔 대신 수평 스캔을 선택하기 위해(예를 들어, 선택기(109)를 사용함으로써), 최초의 2개의 행의 QTC 비트에 세 번째 행의 2개의 QTC 비트를 더한 것(총 10개의 QTC)을 인코딩하는 것이 이로울 수 있다. 그렇지만, 이러한 계수가 (도 11의 윗부분에 도시된 바와 같이) 대각선 스캔으로부터 수평 스캔으로 정렬되면, 마지막 동일한 8 QTC 비트의 위치는 인코딩되어야 한다.
엔트로피 코딩 모듈(106)에 있어서, 2개의 스캔이 이용 가능하다:
- 엔트로피 코딩 모듈(106)이 비트스트림을 파싱하는 데 사용될 디폴트 스캔
- 스캔 순서 선택기(109)에 의해 선택되는 스캔.
엔트로피 코딩 모듈이 QTC 위치에 따라 컨텍스트 모델을 선택하면, 스캔 순서 선택기(109)에 의해 정의된 X, Y를 사용하는 것이 아니라 재정렬된 후 QTC의 대응하는 위치에 대해 X,Y를 다시 계산한다.
예를 들어, 도 11의 예에서, 스캔 순서 선택기(109)가 대각선 스캔을 선택하고 디폴트 스캔이 수평 스캔인 경우를 고려하는 것이 제시된다. 엔트로피 코딩 모듈(106)은 (마찬가지로 수평 스캔에 대해 "E"로 표시되어 있는) 재정렬된 위치(x=0, y=2)의 컨텍스트 모듈을 사용하여 (대각선 위치에 대해 "E"로 표시되어 있는) 위치(x=1, y=1)에 배치된 계수를 인코딩할 것이며, 뿐만 아니라 인접하는 계수가 "I" 및 "H"가 아닌, "F" 및 "I"와 같이 정의될 것이다.
이러한 재정렬 동작은 선택된 스캔으로부터 디폴트 스캔으로 X 좌표 및 Y 좌표의 리맵핑과 같이 실행될 수 있으며, 즉 이 재정렬을 수행하기 위해 메모리 복사/QTC에 대한 스왑 동작을 수행하는 것이 필요하지 않고 단지 (선택된 스캔, 디폴트 스캔) 페어 각각에 대한 x 및 y 좌표에 대한 룩-업 테이블을 제공하는 것이 필요할 뿐이다.
데이터 은폐는 공지의 방법을 사용해서 스캔 순서를 QTC에 내장할 수 있다. 그렇지만, 스캔 순서를 은폐하는 이 경우, 스캔 순서가 마지막 중요한 QTC 값()의 좌표에 적용되는 조건에 의해 지정될 수 있으며, 예를 들어 다음과 같다:
mod(x + y,2) = scan_idx. (C1)
이 경우, 인코더는 디코더에 의해 사용되어야 하는 스캔을 지시하기 위해 마지막 중요한 QTC의 위치를 수정할 수 있다. 설명된 은폐 방법의 은폐 조건은 스캔 순서에 대해 지정된 한 세트의 좌표이다. 이 관점에서, 도 12는 스캔 순서에 대해 정의된 은폐 조건의 예를 도시한다.
도 12에서, "X" 마크는 조건 (C1)을 사용해서 체크되는 위치를 나타낸다. 이 방식과 QTC 값 내의 데이터 은폐와 결합하는 것도 가능하다. 예를 들어, 마지막 중요한 QTC 위치로부터 검색되는 값은 QTC 값 내에 은폐하기 위한 은폐 조건의 일부로서 사용될 것이다.
호스트 신호 및 목표 신호가 보편적인 분배를 가지는 경우에는 은폐가 더 효과적이라는 것으로 알려져 있다. 본 개시의 다른 실시예는 (C1)의 분배를 무작위에 의해 범용성에 더 근접하게 할 수 있는 가능성이다. 구체적으로, 랜덤 노이즈 R의 추가의 소스가 부가될 수 있다:
mod(x + y + R,2) = scan_idx.
R의 값은 선택된 스캔 순서와 가능한 한 상관관계가 없어야 한다. 예를 들어, 인접한 TU의 수, 참조 샘플 값의 합의 패리티 값, 또는 인코딩된 비트의 총 수일 수 있다.
따라서, 본 개시는 시그널링 오버헤드를 감소시키기 위해, 엔트로피 디코딩 동안 QTC 역직렬화 이전에 스캔 순서를 도출하는 것을 제시한다. TU-관련 데이터(인트라 예측 모드, 필터링 플래그 등)를 은폐할 때, 은폐되는 정보는 역직렬화 스테이지 및 역양자화 스테이지 후에 사용된다. 본 개시는 따라서 이러한 계수가 역직렬화되기 전에 QTC에 은폐된 데이터를 사용할 수 있는 가능성을 제시한다.
본 개시는 예를 들어 픽처 코딩의 이동에 사용되는 예측 프로세스 및 변환 프로세스 후에 획득되는 잔여에 적용 가능한 양자화 절차를 설명한다. 본 개시의 목적은 TU 레벨에서 서로 다른 코딩 특징(예를 들어, 인트라 예측 모드, 블록 크기, 파티셔닝 모드)을 사용해서 선택되는 이용 가능한 스캔 순서 세트를 확장함으로써 양자화의 레이트-왜곡 효율성을 향상시키는 것이다. 본 개시의 특정한 실시는 모드-종속 및 RDO 기반 스캔 선택의 메커니즘을 동시에 사용하는 기술로서 제공된다.
본 개시는 스캔 순서의 RDO-기반 선택과 관련된 문제를 해결한다. 특히, 이전에 인코딩된 블록 및 디코딩된 블록의 수집된 통계에 기초한 적응 스캔 순서가 공지의 미리 정의된 스캔 패턴과 관련해서 보다 나은 코딩 효율성을 항상 제공하지 않는 문제를 해결한다. 따라서, 콘텐츠-적응 수집 스캔 순서 및 미리 정의된 스캔 패턴 중에서 단지 하나의 스캔을 선택하기 위한 RDO-기반 절차가 솔루션으로 제시된다.
특히, 본 개시는 미리 정의된 스캔 패턴 및 적응적으로 수집된 스캔 순서 모두가 이용될 수 있다는 점에서 스캔 순서 선택의 코딩 효율성을 높여야 하는 전술한 문제를 해결한다.
그 멀티미디어 코딩 실시예에서의 본 개시는 차세대 비디오 코딩 표준의 근간이 되는 공동 탐사 모델(Joint Exploration Model, JEM)과 호화 가능한 하이브리드 비디오 코딩 프레임워크에서 많은 잠재적인 애플리케이션에서 사용될 수 있는 추가의 이점을 제공한다. 추가의 이점은 JEM1과 비교하여 감소된 비욘테가르드 델타 비율(Bjøntegaard Delta Rate) 및 주관적인 품질 향상이다. 추가의 이점은 강화된 다중변환(Enhanced Multiple Transform, EMT)으로도 알려진 계산상 복잡한 적응 다중변환(Adaptive Multiple Transform, AMT)이 더 간단한 적응 스캔 순서 선택 절차로 대체 될 수 있다는 점이다.
본 개시의 관점은 미리 정의된 스캔 패턴 또는 순서와 적응적으로 수집된 스캔 순서의 결합이다. 또한, 스캔 순서 선택 절차에 대한 시그널링 메커니즘을 부가함으로써 그 코딩 효율성을 증가시키기 위해 적응 스캔 순서를 생성하는 프로세스를 상당히 향상시킬 수 있다.
본 개시는 실시예 뿐만 아니라 구현예로서 다양한 실시예와 관련하여 설명되었다. 그렇지만, 당업자는 도면, 본 개시 및 독립 청구항의 연구로부터 다른 변형을 이해하고 청구된 발명을 실시할 수 있다. 청구 범위 및 명세서에서 "포함하는"이라는 단어는 다른 요소 또는 단계를 배제하지 않으며, 부정사 "a" 또는 "an"는 복수를 배제하지 않는다. 단일 요소 또는 다른 유닛은 청구 범위에 기재된 여러 항목 또는 항목의 기능을 수행할 수 있다. 서로 다른 종속항에서 특정 측정값이 인용된다는 단순한 사실만으로 이 측정값의 조합을 유리한 구현에 사용할 수 없다는 것을 나타내지는 않는다.

Claims (39)

  1. 비트스트림으로부터 비디오 시퀀스의 블록의 계수를 디코딩하는 디코더로서,
    - 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있는 스캔 패턴 리스트 모듈,
    - 하나 이상의 스캔 순서를 생성하도록 구성되어 있는 스캔 순서 생성기,
    - 상기 비트스트림에 포함된 스캔 순서 정보에 기초해서 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기,
    - 상기 비트스트림으로부터 각각의 블록의 하나 이상의 계수 벡터를 디코딩하도록 구성되어 있는 디코딩 모듈, 및
    - 각각의 블록에 대해, 계수 행렬을 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 하나 이상의 계수 벡터를 역 스캐닝하도록 구성되어 있는 디시리얼라이저(deserializer)
    를 포함하며,
    상기 스캔 순서 생성기는 상기 비디오 시퀀스의 블록의 하나 이상의 이전에 획득된 계수 행렬에 의존해서 하나 이상의 스캔 순서를 생성하도록 구성되어 있는, 디코더.
  2. 제1항에 있어서,
    상기 스캔 패턴 리스트 모듈은 복수의 코딩 파라미터 세트 각각에 대해 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있으며,
    상기 스캔 순서 생성기는 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 획득된 계수 행렬에 의존해서 각각의 코딩 파라미터에 대해 스캔 순서를 생성하도록 구성되어 있으며,
    상기 스캔 순서 선택기는 각각의 블록에 대한 스캔 순서를,
    - 그 블록의 코딩 파라미터 세트를 결정하는 단계; 및
    - 상기 결정된 코딩 파라미터 세트에 대해 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 그 블록에 대해 획득된 계수 행렬에 대한 스캔 순서를 선택하는 단계
    에 의해 선택하도록 구성되어 있는, 디코더.
  3. 제2항에 있어서,
    상기 디코더는,
    상기 코딩 파라미터 세트 각각에 대해, 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 획득된 계수 행렬의 분포 통계를 제공하도록 구성되어 있는 계수 분포 추정기
    를 포함하며,
    상기 스캔 순서 생성기는 그 코딩 파라미터 세트에 대한 분포 통계에 의존해서 각각의 코딩 파라미터 세트에 대한 스캔 순서를 생성하도록 구성되어 있는, 디코더.
  4. 제3항에 있어서,
    주어진 블록에 대해 선택된 스캔 순서가 미리 정의되어 있으면, 계수 분포 추정기는 그 주어진 블록의 코딩 파라미터 세트에 대한 분포 통계를 갱신하지 않거나 리셋하도록 구성되어 있는, 디코더.
  5. 제2항에 있어서,
    상기 디코딩 모듈은 각각의 블록에 대해 비트스트림으로부터 코딩 파라미터 정보를 파싱하도록 구성되어 있으며,
    상기 스캔 순서 선택기는 그 주어진 블록에 대한 파싱된 코딩 파라미터 정보에 따라 주어진 블록의 코딩 파라미터 세트를 결정하도록 구성되어 있는, 디코더.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 디코딩 모듈은 비트스트림으로부터 상기 선택된 스캔 순서를 인식하는 스캔 순서 정보를 파싱하도록 구성되어 있는, 디코더.
  7. 비트스트림으로부터 비디오 시퀀스의 블록의 계수를 디코딩하는 방법으로서,
    - 하나 이상의 미리 정의된 스캔 순서를 제공하는 단계,
    - 하나 이상의 스캔 순서를 생성하는 단계,
    - 상기 비트스트림에 포함된 스캔 순서 정보에 기초해서 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하는 단계,
    - 상기 비트스트림으로부터 각각의 블록의 하나 이상의 계수 벡터를 디코딩하는 단계, 및
    - 각각의 블록에 대해, 계수 행렬을 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 하나 이상의 계수 벡터를 역 스캐닝하는 단계
    를 포함하며,
    상기 하나 이상의 스캔 순서를 생성하는 단계는 상기 비디오 시퀀스의 블록의 하나 이상의 이전에 획득된 계수 행렬에 의존해서 상기 하나 이상의 스캔 순서를 생성하는 단계를 포함하는, 디코딩하는 방법.
  8. 제7항에 있어서,
    - 적어도 하나의 블록에 대해, 그 블록의 하나 이상의 계수로부터 은폐된 정보를 재구성하는 단계
    를 포함하며,
    상기 은폐된 정보는 그 블록과 관련된 스캔 순서 정보의 일부를 구성하거나 형성하는, 디코딩하는 방법.
  9. 비트스트림으로 비디오 시퀀스의 블록의 계수를 인코딩하는 인코더로서, 각각의 블록의 계수는 각각의 계수 행렬에 포함되어 있으며,
    - 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있는 스캔 패턴 리스트 모듈,
    - 하나 이상의 스캔 순서를 생성하도록 구성되어 있는 스캔 순서 생성기,
    - 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하도록 구성되어 있는 스캔 순서 선택기,
    - 각각의 블록에 대해, 하나 이상의 계수 벡터를 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 계수 행렬을 스캐닝하도록 구성되어 있는 시리얼라이저(serializer), 및
    - 상기 비트스트림으로 계수 벡터를 코딩하도록 구성되어 있는 코딩 모듈
    을 포함하며,
    상기 스캔 순서 생성기는 상기 비디오 시퀀스의 블록의 하나 이상의 이전에 스캐닝된 계수 행렬에 의존해서 하나 이상의 스캔 순서를 생성하도록 구성되어 있는, 인코더.
  10. 제9항에 있어서,
    상기 스캔 패턴 리스트 모듈은 복수의 코딩 파라미터 세트 각각에 대해 하나 이상의 미리 정의된 스캔 순서를 제공하도록 구성되어 있으며,
    상기 스캔 순서 생성기는 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 스캐닝된 계수 행렬에 의존해서 각각의 코딩 파라미터 세트에 대한 스캔 순서를 생성하도록 구성되어 있으며,
    상기 스캔 순서 선택기는 각각의 블록에 대한 스캔 순서를,
    - 그 블록의 코딩 파라미터 세트를 결정하는 단계; 및
    - 상기 결정된 코딩 파라미터 세트에 대해 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 그 블록의 계수 행렬에 대한 스캔 순서를 선택하는 단계
    에 의해 선택하도록 구성되어 있는, 인코더.
  11. 제10항에 있어서,
    각각의 코딩 파라미터 세트에 대해, 그 코딩 파라미터 세트와 관련된 하나 이상의 이전에 스캐닝된 계수 행렬의 분포 통계를 제공하도록 구성되어 있는 계수 분포 추정기
    를 포함하며,
    상기 스캔 순서 생성기는 그 코딩 파라미터 세트에 대한 분포 통계에 의존해서 각각의 코딩 파라미터 세트에 대한 스캔 순서를 생성하도록 구성되어 있는, 인코더.
  12. 제11항에 있어서,
    주어진 계수 행렬에 대해 선택된 스캔 순서가 미리 정의되어 있으면, 상기 계수 분포 추정기는 그 주어진 블록의 코딩 파라미터 세트에 대한 분포 통계를 리셋하도록 구성되어 있는, 인코더.
  13. 제9항에 있어서,
    상기 비트스트림에 선택된 스캔 순서를 식별하는 스캔 순서 정보를 부가하도록 구성되어 있는 시그널링 모듈
    을 포함하는 인코더.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서,
    상기 스캔 순서 선택기는 비용 함수에 기초해서 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 스캔 순서를 선택하도록 구성되어 있는, 인코더.
  15. 비트스트림으로 비디오 시퀀스의 블록의 계수를 인코딩하는 방법으로서, 각각의 블록의 계수는 각각의 계수 행렬에 포함되어 있으며,
    - 하나 이상의 미리 정의된 스캔 순서를 제공하는 단계,
    - 하나 이상의 스캔 순서를 생성하는 단계,
    - 상기 미리 정의된 스캔 순서 및 상기 생성된 스캔 순서 중에서 각각의 블록에 대한 스캔 순서를 선택하는 단계,
    - 각각의 블록에 대해, 하나 이상의 계수 벡터를 획득하기 위해 그 블록에 대해 선택된 스캔 순서에 따라 그 블록의 계수 행렬을 스캐닝하는 단계, 및
    - 상기 비트스트림으로 계수 벡터를 코딩하는 단계
    를 포함하며,
    상기 하나 이상의 스캔 순서를 생성하는 단계는 상기 비디오 시퀀스의 블록의 하나 이상의 이전에 스캐닝된 계수 행렬에 의존해서 하나 이상의 스캔 순서를 생성하는 단계를 포함하는, 인코딩하는 방법.
  16. 제1항 내지 제5항 중 어느 한 항에 있어서,
    - 적어도 하나의 블록에 대해, 그 블록의 하나 이상의 계수로부터 은폐된 정보를 재구성하도록 구성되어 있는 체크 모듈 - 상기 은폐된 정보는 그 블록과 관련된 스캔 순서 정보의 일부를 구성하거나 형성함 - ,
    을 더 포함하는 디코더.
  17. 제16항에 있어서,
    상기 체크 모듈은 적어도 하나의 블록에 대해, 그 블록에 대해 획득된 하나 이상의 계수 벡터로부터 선택된 적어도 하나의 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있는, 디코더.
  18. 제17항에 있어서,
    상기 체크 모듈은 적어도 하나의 블록에 대해, 은폐 조건에 의존해서 상기 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있으며,
    상기 은폐 조건은 상기 은폐 계수 벡터에 의존하는 파라미터와 임계치와의 비교를 포함하는, 디코더.
  19. 제18항에 있어서,
    상기 파라미터는:
    - 상기 은폐 계수 벡터 내의 복수의 중요한 계수, 또는
    - 상기 은폐 계수 벡터 내의 제1 중요한 계수와 마지막 중요한 계수 간의 거리, 또는
    - 상기 은폐 계수 벡터 내의 계수의 최소 절대 비 제로(non-zero) 값에 대한 최대 절댓값의 비율
    이며,
    상기 파라미터가 임계값보다 높으면 상기 은폐 조건은 참이고, 상기 파라미터가 임계값보다 낮으면 상기 은폐 조건은 거짓인, 디코더.
  20. 제18항에 있어서,
    상기 체크 모듈은 상기 은폐 조건을 체크하고, 상기 은폐 조건이 참이면 상기 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있는, 디코더.
  21. 제18항에 있어서,
    상기 은폐 조건이 거짓이면, 상기 스캔 순서 선택기는 미리 정의된 디폴트 스캔 순서를 선택하도록 구성되어 있는, 디코더.
  22. 제17항에 있어서,
    상기 체크 모듈은 상기 은폐 계수 벡터에 체크 함수(check-function)를 적용함으로써 상기 은폐 계수 벡터로부터 은폐된 정보를 재구성하도록 구성되어 있으며,
    상기 체크 함수의 결과는 상기 은폐된 정보인, 디코더.
  23. 제22항에 있어서,
    상기 체크 함수의 결과는 상기 계수 행렬 내에서 상기 은폐 계수 벡터의 마지막 중요한 계수의 좌표 (x, y)에 의존하고,
    특히 상기 체크 함수는 다음의 함수이며,
    mod(x + y + R,2)
    여기서 x 및 y는 좌표이고 R은 정수값인, 디코더.
  24. 제16항에 있어서,
    상기 체크 모듈은 제1 블록에 대해, 제1 블록의 하나 이상의 계수로부터 은폐된 정보를 재구성하도록 구성되어 있으며, 상기 은폐된 정보는 제1 블록과 관련된 스캔 순서 정보의 일부를 구성하거나 형성하며,
    상기 스캔 순서 선택기는 제1 블록 및 적어도 제2 블록에 대해, 제1 블록과 관련된 스캔 순서 정보에 기초해서 스캔 순서를 선택하도록 구성되어 있는, 디코더.
  25. 제9항 내지 제13항 중 어느 한 항에 있어서,
    - 적어도 하나의 블록에 대해, 그 블록에 대해 선택된 스캔 순서를 식별하는 스캔 순서 정보를 그 블록의 하나 이상의 계수에 적어도 부분적으로 은폐하도록 구성되어 있는 은폐 모듈
    을 더 포함하는 인코더.
  26. 제25항에 있어서,
    상기 은폐 모듈은 적어도 하나의 블록에 대해, 그 블록에 대해 획득된 하나 이상의 계수 벡터 중에서 선택된 적어도 하나의 은폐 계수 벡터에 스캔 순서 정보를 은폐하도록 구성되어 있는, 인코더.
  27. 제26항에 있어서,
    상기 은폐 모듈은 적어도 하나의 블록에 대해, 은폐 조건에 의존해서 상기 은폐 계수 벡터에 스캔 순서 정보를 은폐하도록 구성되어 있으며,
    상기 은폐 조건은 상기 은폐 계수 벡터에 의존하는 파라미터와 임계치와의 비교를 포함하는, 인코더.
  28. 제27항에 있어서,
    상기 파라미터는:
    - 상기 은폐 계수 벡터 내의 복수의 중요한 계수, 또는
    - 상기 은폐 계수 벡터 내의 제1 중요한 계수와 마지막 중요한 계수 간의 거리, 또는
    - 상기 은폐 계수 벡터 내의 계수의 최소 절대 비 제로 값에 대한 최대 절댓값의 비율
    이며,
    상기 파라미터가 임계값보다 높으면 상기 은폐 조건은 참이고, 상기 파라미터가 임계값보다 낮으면 상기 은폐 조건은 거짓인, 인코더.
  29. 제27항에 있어서,
    상기 은폐 모듈은 상기 은폐 조건을 체크하고, 상기 은폐 조건이 참이면 상기 은폐 계수 벡터에 스캔 순서 정보를 은폐하도록 구성되어 있는, 인코더.
  30. 제27항에 있어서,
    상기 은폐 조건이 거짓이면, 상기 스캔 순서 선택기는 그 다른 선택된 스캔 순서에 대한 은폐 조건이 참일 때까지 한 세트의 스캔 순서 중에서 다른 스캔 순서를 회귀적으로 선택하도록 구성되어 있는, 인코더.
  31. 제27항에 있어서,
    상기 은폐 조건이 거짓이고 상기 선택된 스캔 순서가 미리 정의된 디폴트 스캔 순서이면, 상기 은폐 모듈은 상기 은폐 계수 벡터에 스캔 순서 정보를 은폐하지 않도록 구성되어 있는, 인코더.
  32. 제26항에 있어서,
    상기 은폐 모듈은 적어도 하나의 블록에 대해:
    - 상기 은폐 계수 벡터에 체크 함수를 적용하여 체크 함수의 결과를 획득하는 단계,
    - 상기 체크 함수의 결과가 스캔 순서 정보에 대응하는지를 판정하는 단계, 및
    - 대응하지 않으면, 상기 체크 함수의 결과가 스캔 순서 정보에 대응할 수 있도록 은폐 계수 벡터를 수정하는 단계
    에 의해 은폐 계수 벡터에 스캔 순서 정보를 은폐하도록 구성되어 있는, 인코더.
  33. 제32항에 있어서,
    상기 체크 함수의 결과는 상기 계수 행렬 내에서 상기 은폐 계수 벡터의 마지막 중요한 계수의 좌표 (x, y)에 의존하고,
    특히 상기 체크 함수는 다음의 함수이며,
    mod(x + y + R,2)
    여기서 x 및 y는 좌표이고 R은 정수값인, 인코더.
  34. 제25항에 있어서,
    상기 스캔 순서 선택기가 제1 블록 및 적어도 제2 블록에 대해 동일한 스캔 순서를 선택하면, 상기 은폐 모듈은 상기 동일한 스캔 순서를 식별하는 스캔 순서 정보를 제1 블록만의 하나 이상의 블록에 은폐하도록 구성되어 있는, 인코더.
  35. 제15항에 있어서,
    - 적어도 하나의 블록에 대해, 그 블록에 대해 선택된 스캔 순서를 식별하는 스캔 순서 정보를 그 블록의 하나 이상의 계수에 적어도 부분적으로 은폐하는 단계
    를 더 포함하는 인코딩하는 방법.
  36. 컴퓨터 프로그램을 포함하는 비 일시적 컴퓨터 판독 가능형 매체로서,
    상기 컴퓨터 프로그램이 컴퓨팅 장치 상에서 수행될 때, 상기 컴퓨터 프로그램은 제7항, 제8항, 제15항, 또는 제35항에 따른 방법을 수행하기 위한 프로그램 코드를 포함하는, 비 일시적 컴퓨터 판독 가능형 매체.
  37. 삭제
  38. 삭제
  39. 삭제
KR1020187026089A 2016-02-12 2016-02-12 스캔 순서 선택을 위한 방법 및 장치 KR102210230B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2016/000069 WO2017138832A1 (en) 2016-02-12 2016-02-12 Method and apparatus for scan order selection

Publications (2)

Publication Number Publication Date
KR20180111975A KR20180111975A (ko) 2018-10-11
KR102210230B1 true KR102210230B1 (ko) 2021-01-29

Family

ID=56889185

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187026089A KR102210230B1 (ko) 2016-02-12 2016-02-12 스캔 순서 선택을 위한 방법 및 장치

Country Status (9)

Country Link
US (1) US11582455B2 (ko)
EP (1) EP3412028B1 (ko)
JP (1) JP6728375B2 (ko)
KR (1) KR102210230B1 (ko)
CN (1) CN108605133B (ko)
CA (1) CA3014299A1 (ko)
RU (1) RU2707719C1 (ko)
SG (1) SG11201806810YA (ko)
WO (1) WO2017138832A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11477492B2 (en) 2017-08-04 2022-10-18 Google Inc. Adaptation for entropy coding of blocks of image data
US10382758B2 (en) * 2017-12-15 2019-08-13 Google Llc Transform block-level scan order selection for video coding
CN112449187B (zh) * 2019-08-28 2022-02-25 腾讯科技(深圳)有限公司 视频解码方法、编码方法、装置、介质及电子设备
CN112583521B (zh) * 2019-09-27 2022-04-05 华为技术有限公司 译码方法、装置、译码设备、终端设备和网络设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130272424A1 (en) * 2012-04-16 2013-10-17 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950010913B1 (ko) 1992-07-23 1995-09-25 삼성전자주식회사 가변장부호화 및 복호화시스템
US5500678A (en) 1994-03-18 1996-03-19 At&T Corp. Optimized scanning of transform coefficients in video coding
JPH0856358A (ja) 1994-08-12 1996-02-27 Kobe Steel Ltd 画像データ符号化装置
KR100403077B1 (ko) * 1996-05-28 2003-10-30 마쯔시다덴기산교 가부시키가이샤 화상예측 복호화 장치 및 그 방법과 화상예측 부호화 장치 및 그 방법
JP3269014B2 (ja) 1996-12-25 2002-03-25 日本アイ・ビー・エム株式会社 統計的性質を用いたデータ・ハイディング方法及びシステム
US8311119B2 (en) 2004-12-31 2012-11-13 Microsoft Corporation Adaptive coefficient scan order
US8428133B2 (en) 2007-06-15 2013-04-23 Qualcomm Incorporated Adaptive coding of video block prediction mode
US8571104B2 (en) 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
EP2182732A1 (en) 2008-10-28 2010-05-05 Panasonic Corporation Switching between scans in image coding
US8477845B2 (en) 2009-10-16 2013-07-02 Futurewei Technologies, Inc. Predictive adaptive scan ordering for video coding
US20110243220A1 (en) 2010-04-05 2011-10-06 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding image and method and apparatus for decoding image using adaptive coefficient scan order
US8929440B2 (en) 2010-04-09 2015-01-06 Sony Corporation QP adaptive coefficients scanning and application
RS56512B1 (sr) 2010-04-13 2018-02-28 Ge Video Compression Llc Kodiranje mapa značaja i blokova koeficijenata transformacije
US9641846B2 (en) 2010-10-22 2017-05-02 Qualcomm Incorporated Adaptive scanning of transform coefficients for video coding
US9288496B2 (en) 2010-12-03 2016-03-15 Qualcomm Incorporated Video coding using function-based scan order for transform coefficients
US9049444B2 (en) 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
JP2012156867A (ja) * 2011-01-27 2012-08-16 Toshiba Corp 逆離散コサイン変換装置、復号装置、及び画像処理装置
CN102651816B (zh) * 2011-02-23 2014-09-17 华为技术有限公司 一种变换系数块的扫描方法和装置
US20120230418A1 (en) 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US9106913B2 (en) * 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US9756360B2 (en) * 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
PL409214A1 (pl) 2011-11-08 2015-07-20 Kt Corporation Sposób i urządzenie do skanowania współczynników na podstawie trybu podziału jednostki predykcji
US9106918B2 (en) 2012-01-20 2015-08-11 Sony Corporation Coefficient coding harmonization in HEVC
EP2618572B1 (en) 2012-01-20 2016-08-24 BlackBerry Limited Multiple sign bit hiding within a transform unit
US9363512B2 (en) 2012-03-08 2016-06-07 Blackberry Limited Motion vector sign bit hiding
US9621921B2 (en) 2012-04-16 2017-04-11 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9294779B2 (en) 2012-06-15 2016-03-22 Blackberry Limited Multi-bit information hiding using overlapping subsets
EP2675159B1 (en) 2012-06-15 2018-08-08 BlackBerry Limited Multi-bit information hiding using overlapping subsets
US9307264B2 (en) * 2012-06-22 2016-04-05 Sharp Kabushiki Kaisha Arithmetic decoding device, arithmetic coding device, image decoding apparatus, and image coding apparatus
KR101953855B1 (ko) 2014-04-01 2019-03-04 후아웨이 테크놀러지 컴퍼니 리미티드 다중 계층 구조 부호화 유닛에서의 데이터 은닉을 위한 방법 및 장치
KR102159252B1 (ko) 2016-02-12 2020-10-14 후아웨이 테크놀러지 컴퍼니 리미티드 스캔 순서 선택을 위한 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130272424A1 (en) * 2012-04-16 2013-10-17 Qualcomm Incorporated Sign hiding techniques for quantized transform coefficients in video coding

Also Published As

Publication number Publication date
SG11201806810YA (en) 2018-09-27
CN108605133B (zh) 2020-10-23
CA3014299A1 (en) 2017-08-17
US20180352232A1 (en) 2018-12-06
JP6728375B2 (ja) 2020-07-22
JP2019505141A (ja) 2019-02-21
BR112018016409A2 (pt) 2018-12-26
CN108605133A (zh) 2018-09-28
WO2017138832A1 (en) 2017-08-17
RU2707719C1 (ru) 2019-11-28
KR20180111975A (ko) 2018-10-11
US11582455B2 (en) 2023-02-14
EP3412028B1 (en) 2024-04-03
EP3412028A1 (en) 2018-12-12
WO2017138832A8 (en) 2018-08-30

Similar Documents

Publication Publication Date Title
US10798390B2 (en) Method and apparatus for scan order selection
JP6835448B2 (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法及び符号化ビットストリームを記録した記録媒体
EP3560198B1 (en) Low-complexity sign prediction for video coding
KR102143908B1 (ko) 계층적 분할 내에서 블록 레벨 변환 선택 및 암시적 시그널링을 이용한 변환 코딩을 위한 방법 및 장치
CA2979455C (en) Image encoding device, image decoding device, image encoding method, and image decoding method
CN112602324A (zh) 块水平几何划分
US11582455B2 (en) Method and apparatus for scan order selection
EP2216998A1 (en) Hierarchical coding for intra
KR20210134556A (ko) 인트라 예측 기반의 영상 부호화 또는 복호화 장치 및 방법
CN113039793A (zh) 指数分区的方法与系统
BR112018016409B1 (pt) Decodificador, método para decodificar, codificador, e método para codificar
BR112018016440B1 (pt) Decodificador, método para decodificar coeficientes de blocos, codificador para codificar coeficientes de blocos e meio de armazenamento legível por computador não transitório
CN117221535A (zh) 帧内预测方法、编码器、解码器以及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant