KR20140046055A - 계수들의 직사각형 블록의 양자화 및 역양자화를 위한 방법들 및 장치 - Google Patents

계수들의 직사각형 블록의 양자화 및 역양자화를 위한 방법들 및 장치 Download PDF

Info

Publication number
KR20140046055A
KR20140046055A KR1020147006044A KR20147006044A KR20140046055A KR 20140046055 A KR20140046055 A KR 20140046055A KR 1020147006044 A KR1020147006044 A KR 1020147006044A KR 20147006044 A KR20147006044 A KR 20147006044A KR 20140046055 A KR20140046055 A KR 20140046055A
Authority
KR
South Korea
Prior art keywords
block
transform coefficients
mapping table
inverse quantization
applying
Prior art date
Application number
KR1020147006044A
Other languages
English (en)
Inventor
웨이 잉 쿵
슈에 팽
재 훈 김
Original Assignee
모토로라 모빌리티 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 모토로라 모빌리티 엘엘씨 filed Critical 모토로라 모빌리티 엘엘씨
Publication of KR20140046055A publication Critical patent/KR20140046055A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/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/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/146Data rate or code amount at the encoder output
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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
    • H04N7/00Television systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

시스템은 양자화를 양자화된 변환 계수들의 직사각형 블록 상에 수행하는 인코더 및 역양자화를 변환 계수들의 직사각형 블록 상에 수행하는 디코더를 포함한다. 디코더는 양자화된 변환 계수들의 WxH 블록을 수용하도록 구성되며, W는 블록의 행 폭이고 H는 블록의 열 높이이다. 디코더는 양자화된 변환 계수들의 WxH 블록에 대응하는 픽처를 생성하도록 사용되는 변환 계수들의 블록을 생성하기 위해 역양자화 처리를 양자화된 변환 계수들의 WxH 블록에 적용하도록 더 구성된다. 역양자화 처리는 함수
Figure pct00022
의 출력(M)이 정수 값과 같을 때 제1 역양자화 알고리즘을 적용하는 것, 및 출력(M)이 비정수 값과 같을 때 제2 역양자화 알고리즘을 적용하는 것을 포함한다.

Description

계수들의 직사각형 블록의 양자화 및 역양자화를 위한 방법들 및 장치{METHODS AND APPARATUS FOR QUANTIZATION AND DEQUANTIZATION OF A RECTANGULAR BLOCK OF COEFFICIENTS}
관련 출원들
본 출원은 모토로라 모빌리티 인크.(Motorola Mobility, Inc.)에 의한 출원과 공동 소유되는 이하의 미국 가특허 출원과 관련되고 이 출원으로부터 35 U.S.C. §119(e) 하의 이익을 주장한다:
2011년 9월 8일자로 출원되고, 발명의 명칭이 "Quantization for Rectangular Transform in HEVC"인 일련 번호 제61/502,850호(대리인 정리 번호 CS39197B)로서, 그의 전체 내용은 본 명세서에 참조로 포함되어 있다.
본 개시는 일반적으로 데이터 압축에 관한 것으로, 특히 계수들의 직사각형(rectangular) 블록의 양자화 및 역양자화를 위한 방법들 및 시스템에 관한 것이다.
비디오 회의, 디지털 미디어 저장, 텔레비전 방송, 인터넷 비디오 스트리밍 및 통신과 같은 다양한 응용들에 대한 비디어 미디어의 고압축을 위한 증가하는 요구가 발생했다. 이미지들 또는 "픽처들"의 시퀀스를 포함하는 비디오는 인코더에 의해 수행되는 인코딩 프로세스 동안 압축을 경험한다. 인코딩 프로세스는 물리 매체를 통해 저장 또는 송신될 수 있는 비디오로부터, 비트스트림(또한 본 명세서에서 비트 시퀀스로 지칭됨)을 생성한다. 디코더는 비트스트림을 판독하기 위해 디코딩 프로세스를 수행하고, 그것에 의해 비디오의 픽처들의 시퀀스를 유도한다. 본 명세서에 사용되는 바와 같이, 용어 "코딩"은 인코딩 프로세스 또는 디코딩 프로세스 또는 둘 다 동안 사용되는 프로세스들 및 알고리즘들을 지칭하기 위해 사용되고, 용어 코딩은 본 명세서에서 용어 인코딩 및 용어 디코딩과 교환가능하게 사용된다.
비디오 코딩 프로세스는 복수의 알고리즘들을 포함하며 그의 일부는 중복 또는 중요하지 않은 정보를 비디오 프레임들 내에서 또는 사이에서 감소시킴으로써 비디오 압축을 달성하기 위해 적절히 배열된다. 이러한 알고리즘들 중 하나는 양자화이며, 양자화는 인코더에 의해, 비디오의 비트스트림을 생성하기 위해 사용되는 양자화된 변환 계수들을 생성하도록 변환 계수 값들의 범위들을 개별 양자 값들로 압축하는 것을 포함한다. 디코더는 비디오를 재생성하기 위해 양자화된 변환 계수들을 역양자화한다. 현재, 양자화 및 역양자화 알고리즘들은 계수들 예를 들어, 변환 계수들 및 양자화된 변환 계수들의 정사각형(square) 블록들 각각에 최적화된다.
그러나, 계수들의 직사각형 블록들의 양자화 및 역양자화를 위한 방법들 및 장치에 대한 요구가 존재한다.
하기 상세한 설명과 함께, 유사한 참조 번호들이 분리 도면들에 걸쳐 동일 또는 기능적으로 유사한 요소들을 지칭하는 첨부 도면들은, 명세서에 포함되어 명세서의 일부를 형성하는 첨부 도면들은 청구된 발명을 포함하는 개념들의 실시예들을 더 예시하고 본 실시예들의 다양한 원리들 및 장점들을 설명하는 역할을 한다.
도 1은 일 실시예에 따른 계수들의 직사각형 블록들의 양자화 및 역양자화를 위한 방법을 구현하는 인코더 및 디코더의 간략한 블록도이다.
도 2는 일 실시예에 따른 변환 계수의 직사각형 블록들의 양자화를 위한 방법의 흐름도이다.
도 3은 일 실시예에 따른 양자화된 변환 계수들의 직사각형 블록들의 역양자화를 위한 방법의 흐름도이다.
도 4는 일 실시예에 따른 변환 계수들의 직사각형 블록들의 양자화를 위한 방법의 흐름도이다.
도 5는 일 실시예에 따른 양자화된 변환 계수들의 직사각형 블록들의 역양자화를 위한 방법의 흐름도이다.
당업자들은 도면들의 요소들이 간략화 및 명확화를 위해 예시되고 반드시 축척에 따라 도시된 것이 아님을 인식할 것이다. 예를 들어, 도면들 내의 요소들의 일부의 치수들은 본 발명의 실시예들의 이해를 개선하는 것을 돕기 위해 다른 요소에 비해 과장될 수 있다.
장치 및 방법 구성요소들은 적절한 곳에서 도면들의 통상적인 기호들로 표시되며, 본 명세서의 설명의 이익을 갖는 당업자들에게 자명할 상세들로 본 개시를 모호하게 하지 않도록 본 발명의 실시예들의 이해에 관련된 특정 상세들만을 나타낸다.
일반적으로 말하면, 다양한 실시예들에 따라, 본 개시는 계수들의 직사각형 블록들의 양자화 및 역양자화를 위한 방법들 및 장치를 제공한다. 예를 들어, 역양자화를 양자화된 변환 계수들의 직사각형 블록 상에 수행하는 방법은 양자화된 변환 계수들의 WxH 블록을 수용하는 단계 - W는 블록의 행 폭이고 H는 블록의 열 높이임 -; 및 양자화된 변환 계수들의 WxH 블록에 대응하는 픽처를 생성하기 위해 사용되는 변환 계수들의 블록을 생성하기 위해 역양자화 처리를 양자화된 변환 계수들의 WxH 블록에 적용하는 단계를 포함한다. 역양자화 처리는 함수
Figure pct00001
의 출력(M)이 정수(integer) 값과 같을 때 제1 역양자화 알고리즘을 적용하는 단계, 및 출력(M)이 비정수(non-integer) 값과 같을 때 제2 역양자화 알고리즘을 적용하는 단계를 포함한다.
양자화를 변환 계수들의 직사각형 블록 상에 수행하는 방법은 픽처로부터 생성되는 변환 계수들의 WxH 블록을 수용하는 단계 - W는 블록의 행 폭이고 H는 블록의 열 높이임 -; 및 픽처를 재구성하기 위해 사용되는 비트 시퀀스를 생성하기 위해 사용되는 양자화된 변환 계수들의 블록을 생성하기 위해 양자화 처리를 변환 계수들의 WxH 블록에 적용하는 단계를 포함한다. 양자화 처리는 함수
Figure pct00002
의 출력(M)이 정수 값과 같을 때 제1 양자화 알고리즘을 적용하는 단계, 및 출력(M)이 비정수 값과 같을 때 제2 양자화 알고리즘을 적용하는 단계를 포함한다. 일 실시예에서, 양자화를 수행하는 방법은 출력(M)이 정수 값과 같을 때, 제1 상수(constant) 세트를 사용하여 양자화된 변환 계수들의 엔트로피 코딩을 수행할지를 판단하고, 그렇지 않으면 제2 상수 세트를 사용하여 양자화된 변환 계수들의 엔트로피 코딩을 수행할지를 판단하는 단계를 더 포함한다.
시스템은 역양자화기 블록을 갖는 디코더 및 양자화기 블록을 갖는 인코더를 포함한다. 역양자화기 블록은 양자화된 변환 계수들의 제1 WxH 블록을 수용하고 - W는 블록의 행 폭이고 H는 블록의 열 높이임 -; 및 양자화된 변환 계수들의 제1 WxH 블록에 대응하는 제1 픽처를 생성하기 위해 사용되는 변환 계수들의 제1 블록을 생성하기 위해 역양자화 처리를 양자화된 변환 계수들의 제1 블록에 적용하도록 구성된다. 역양자화 처리는 함수
Figure pct00003
의 출력(M)이 정수 값과 같을 때 제1 역양자화 알고리즘을 적용하는 것, 및 출력(M)이 비정수 값과 같을 때 제2 역양자화 알고리즘을 적용하는 것을 포함한다.
일 실시예에서, 역양자화기 블록은 제1 역양자화 알고리즘을 적용하는 동안, 제1 매핑 테이블을 사용하여 제1 상수 세트를 계산하고 - 제1 상수 세트는 양자화된 변환 계수들의 제1 블록으로부터 변환 계수들의 제1 블록을 생성하기 위해 역양자화 함수 내에 사용됨 -; 및 제2 역양자화 알고리즘을 적용하는 동안, 제2 매핑 테이블을 사용하여 제2 상수 세트를 계산하도록 - 제2 상수 세트는 양자화된 변환 계수들의 제1 블록으로부터 변환 계수들의 제1 블록을 생성하기 위해 역양자화 함수 내에 사용됨 - 더 구성된다. 대체 실시예에서, 역양자화기 블록은 제1 역양자화 알고리즘을 적용하는 동안, 제1 매핑 테이블을 사용하여 제1 상수 세트를 계산하고 - 제1 상수 세트는 양자화된 변환 계수들의 제1 블록으로부터 변환 계수들의 제1 블록을 생성하기 위해 역양자화 함수 내에 사용됨 -; 및 제2 역양자화 알고리즘을 적용하는 동안, 시프트된 제1 매핑 테이블을 사용하여 제2 상수 세트를 계산하도록 - 제2 상수 세트는 양자화된 변환 계수들의 제1 블록으로부터 변환 계수들의 제1 블록을 생성하기 위해 역양자화 함수 내에 사용됨 - 더 구성된다.
시스템의 양자화기 블록은 제2 픽처로부터 생성되는 변환 계수들의 제2 WxH 블록을 수용하고 - W는 변환 계수들의 제2 블록의 행 폭이고 H는 변환 계수들의 제2 블록의 열 높이임 -; 및 제2 픽처를 재구성하기 위해 사용되는 비트 시퀀스를 생성하도록 사용되는 양자화된 변환 계수들의 제2 블록을 생성하기 위해 양자화 처리를 변환 계수들의 제2 블록에 적용하도록 구성된다. 양자화 처리는 함수
Figure pct00004
의 출력(M)이 정수 값과 같을 때 제1 양자화 알고리즘을 적용하는 단계, 및 출력(M)이 비정수 값과 같을 때 제2 양자화 알고리즘을 적용하는 단계를 포함한다.
이제 도면들, 및 특히 도 1을 참조하면, 일부 실시예들에 따른 계수들의 직사각형 블록들의 양자화 및 역양자화를 위한 방법들을 구현하는 인코더의 예시적인 간략한 블록도가 도시되고 전체적으로 100으로 표시된다. 인코더(100)는 변환 블록(102), 양자화기 블록(104), 엔트로피 코딩 블록(106), 역양자화기 블록(108), 역변환 블록(110), 루프 필터(112), 공간 예측 블록(114), 레퍼런스 버퍼(reference buffer)(116), 시간 예측 블록(118), 및 스위치(120)를 포함한다.
일 실시예에서, 인코더(100)는 HEVC 인코더이고 그것에 의해 HEVC(High Efficiency Video Coding) 초안 표준(draft standard)(또한 H.265 및 MPEG-H 파트 2로 공지됨)에 따라 동작하도록 구성된다. 예를 들어, 인코더는 HEVC 초안 표준 또는 아직 공개되지 않은 장래의 HEVC 표준(본 명세서에서 HEVC, the HEVC 표준, 또는 HEVC 사양으로 집합적으로 지칭됨)의 적어도 일부들에 따라 데이터(예를 들어, 비디오 데이터) 처리를 수행한다. 그러나, 대안적 실시예들에서, 인코더(100)는 다른 표준 또는 독점 미디어 압축 기술들을 따르는 데이터(예를 들어, 비디오, 오디오 또는 다른 미디어) 처리를 구현한다. 더욱이, 인코더(100)의 블록도는 본 교시들의 실시예들을 이해하는데 필요한 그의 블록들을 단지 도시한다는 점에서 "간략화"된다. 커머셜(commercial) 인코더 실시예의 다른 요소들은 예시의 용이성을 위해 생략된다.
변환 블록(102), 양자화기 블록(104), 엔트로피 코딩 블록(106), 역양자화기 블록(108), 역변환 블록(110), 공간 예측 블록(114), 및 시간 예측 블록(118)은 예를 들어 나머지 도 2-도 5를 참조하여 후술되는 바와 같이, 본 교시들에 대해 설명되는 기능을 포함하여, 그것의 기능을 수행하기 위해 인코더(100)에 의해 사용되는 상이한 알고리즘들을 나타낸다. 이러한 맥락에 사용되는 "블록"은 하드웨어 장치에 의해 수행되는 기능의 논리 표현을 포함한다.
일 실시예에서, 알고리즘들(102-110, 114 및 118), 및 루프 필터(112), 레퍼런스 버퍼(116), 및 스위치(120)는 집적 회로 칩 상의 하드웨어로 완전히 구현된다. 대체 실시예에서, 알고리즘들(102-110, 114 및 118)은 소프트웨어 또는 펌웨어 코드로서 적절한 저장 장치(즉, 메모리) 상에 저장되고 인코더는 메모리에 저장된 알고리즘들을 실행시키도록 프로그래밍되는 처리 장치로서의 하드웨어로 부분적으로 구현된다. 본 명세서에 사용되는 바와 같이, "알고리즘"은 기능 블록(functional block), 예를 들어, 인코더(100) 또는 디코더의 102-110 및 114 내에서 수행되는 처리의 전부 또는 일부를 나타낸다. 그러나, "함수(function)"는 임의의 방정식 또는 식을 의미한다.
HEVC는 블록 기반 하이브리드 공간 및 시간 예측 코딩 방식이다. HEVC에서, 입력 픽처는 우선 LCU들(largest coding units)로 정의되는 정사각형 블록들로 분할된다. 이 맥락에 사용된 바와 같이(이미지 처리에 관련된 바와 같이), "블록"은 블록의 특정 타입 및 블록이 경험하는 처리에 따라, 픽셀들, 변환 계수들, 양자화된 변환 계수들 등과 같은 요소들 또는 샘플들의 2차원 어레이 또는 매트릭스로 정의된다. 이와 같이, 블록, 어레이, 및 매트릭스라는 용어들은 본 명세서에서 교환가능하게 사용된다. 기본 코딩 유닛이 16x16 픽셀들의 매크로블록(MB)인 다른 비디오 코딩 표준들과 다르게, HEVC에서, 기본 코딩 유닛(CU)은 128x128 픽셀들만큼 클 수 있으며, 이는 압축 및 예측을 이미지 특성에 적응시키기 위해 인코딩 프로세스 동안 더 큰 유연성을 제공한다.
HEVC에서, LCU는 CU들(coding units), 즉 각각 LCU의 1/4 크기로 정의되는 4개의 정사각형 블록으로 분할(divided)(즉, 나누어지거나(split) 파티셔닝(partitioned))될 수 있다. 각각의 CU는 4개의 더 작은 CU들, 즉 각각 CU의 1/4 크기로 더 나누어질 수 있다. 나누어지는 프로세스는 깊이 레벨 또는 RD(rate-distortion) 기준들과 같은 특정 기준들이 충족될 때까지 반복될 수 있다. 예를 들어, 가장 낮은 RD 코스트를 제공하는 파티셔닝은 LCU들에 대한 파티셔닝으로 선택된다. 따라서, HEVC에서, CU들은 다수의 영역들로 픽처의 파티셔닝을 정의하고, CU는 더 상세히 후술되는 바와 같이 매크로블록 구조를 대체하고 예측 유닛들(PU들) 및 변환 유닛들(TU들)로 정의되는 1개 또는 수개의 블록들을 포함한다.
HEVC는 LCU 파티셔닝을 설명하기 위해 쿼드트리 데이터 표현을 사용하며, 이는 LCU가 CU들로 나누어지는 방법이다. 구체적으로, 쿼드트리의 각각의 노드에서, 노드가 4개의 서브노드로 더 나누어지면 비트 "1"이 할당되고, 그렇지 않으면 비트 "0"이 할당된다. 이진 데이터의 쿼드트리 표현은 디코딩 프로세스에 사용하기 위해, CU들과 함께 코딩되고 오버헤드로 송신된다. 쿼드트리의 각각의 리프(leaf)에서, 2Lx2L(2L은 최종 CU의 행 폭 및 열 높이 둘다와 같음)의 치수들을 갖는 최종 CU는 4개의 가능한 블록 치수 중 하나를 소유할 수 있으며, 각각의 CU 패턴 내의 2Lx2L, 2LxL, Lx2L 및 LxL의 블록 치수들은 예측 유닛(PU)으로 정의된다. 따라서, 가장 큰 PU 크기는 CU 크기와 같고, 다른 허용된 PU 크기들은 예측 타입, 즉 인트라 예측 또는 인터 예측에 의존한다.
예측 유닛은 본 명세서에서 코딩 프로세스 동안 예측을 위한 기본(elementary) 유닛으로 정의된다. CU의 레벨에서, 인트라(공간) 또는 인터(시간) 예측은 인코더에 대한 컨트롤러(도 1에 도시되지 않음)에 의해 선택되며, 컨트롤러는 선택된 예측의 타입을 표시하기 위해 제어 신호를 스위치(120)(도 1의)에 제공한다. 그 다음, 선택된 예측 타입은 CU 내의 모든 PU들에 적용된다. 코딩 모드(즉, 인트라 모드 또는 인터 모드) 및 인트라 모드에 대한 인트라 예측 방향을 표시하는 데이터는 디코더에 비트스트림으로 저장 또는 송신하기 위한 비디오 데이터를 동반한다. 게다가, 코딩 모드 및 인트라 예측 방향 데이터는 예를 들어 인코더에 대한 컨트롤러(도시되지 않음)를 통해 인코딩(및 디코딩) 알고리즘들에 액세스가능하다.
특히, HEVC는 인트라 픽처들(즉, I 픽처들 또는 프레임들) 및 인터 픽처들(예를 들어, B 및 P 픽처들 또는 프레임들)을 지원한다. 인트라 픽처들은 임의의 다른 픽처의 참조 없이 독립적으로 코딩되고, 그것에 의해 디코딩이 시작할 수 있는 가능한 지점을 제공한다. 그러므로, 공간 예측만이 인트라 픽처 내의 CU를 인트라 코딩하기 위해(대응하는 TU들을 코딩함으로써) 허용된다. 본 명세서에 사용되는 바와 같이, 인트라 코딩(또는 인트라 모드에서의 코딩)은 인트라(공간) 예측 알고리즘을 사용하는 블록(예를 들어, 도 1의 114)의 코딩을 의미하며, 공간 예측은 픽처를 나타내는데 필요한 송신 데이터의 양을 감소시키기 위해 픽처 내의 공간 상관을 이용한다. 인트라 코딩되는 블록은 본 명세서에서 인트라 블록으로 지칭된다. 예측 모드는 이전에 인코딩된 데이터, 즉 공간 또는 시간으로부터 신호를 생성하는 방법을 정의하며, 그것은 예측과 오리지널 사이의 잔차(residual)를 최소화한다.
대조적으로, 인터 픽처들은 인터 예측을 사용하여 코딩되며, 인터 예측은 현재 픽처 이외의 레퍼런스 픽처들의 데이터 요소로부터 유도되는 예측이다. 본 명세서에서 시간(인터) 예측 알고리즘을 사용하는 블록(예를 들어, 도 1의 118)의 코딩으로 정의되는 인터 코딩(또는 인터 모드에서의 코딩)은 비디오 압축의 대부분을 제공한다. 이것은 시간 예측 알고리즘을 사용하여 픽처들로부터 모션 정보를 추출함으로써 인터 코딩에 의해 픽처와 시간 레퍼런스 사이의 차이들만이 코딩되기 때문이다. 시간 레퍼런스들은 이전에 코딩된 인트라 또는 인터 픽처들이다. 인터 픽처들은 인트라 및 인터 예측 둘 다를 지원한다. 인터 코딩되는 블록은 본 명세서에서 인터 블록으로 지칭된다.
위에 암시된 바와 같이, CU는 공간적으로 (인트라 모드로) 코딩되거나 (인터 모드로) 시간적으로 예측 코딩될 수 있다. CU가 인트라 모드로 코딩되면, CU의 각각의 PU는 그 자신의 공간 예측 방향을 가질 수 있다. CU가 인터 모드로 코딩되면, CU의 각각의 PU는 그 자신의 모션 벡터(들) 및 연관된 레퍼런스 픽처(들)를 가질 수 있다. 도 1의 설명으로 다시 복귀하면, HEVC 인코더(100)는 일반적으로 CU 코딩을 구현하기 위해 이하와 같이 동작한다. 일 실시예에서, 비디오 데이터에 대응하는 픽셀들의 현재 PU 블록(x)이 주어지면, 예측 PU(x')는 스위치(120)의 배치에 따라 공간 예측 블록(114)을 사용하는 공간 예측 또는 시간 예측 블록(118)을 사용하는 시간 예측 중 하나를 통해 우선 획득된다. 그 다음, 예측 PU가 현재 PU로부터 감산되어, 잔차 PU(e)를 야기한다.
HEVC는 수평의, 수직의, 45도 대각선의, 135도 대각선의 DC 등을 포함하지만 이들에 제한되지 않는 PU마다 35개 가능한 각의 공간 예측 방향들을 제공한다. 예측 방향들은 +/-[0,2,5,9,13,17,21,26,32,33,34]의 각들을 가진다. 임의의 적절한 신택스는 PU마다 공간 예측 방향을 나타내기 위해 사용될 수 있다. 시간 예측은 모션 추정 동작을 통해 수행된다. 모션 추정 동작은 인코더(100)(즉, 역양자화기(108), 역변환(110), 및 루프 필터(112)) 내에서 디코딩 프로세스(본 명세서에 디코더로 또한 언급됨)를 사용하여 생성되고 레퍼런스 버퍼(116)에 저장된 레퍼런스 픽처들을 통해 현재 PU에 대한 최상의 매치 예측을 탐색한다. 최상의 매치 시간 예측은 모션 벡터(MV) 및 연관된 레퍼런스 픽처(refIdx)에 의해 설명된다. B 픽처 내의 PU는 2개의 MV까지 가질 수 있다. MV 및 refIdx 둘 다는 적절한 신택스에 따라, 시간 예측 블록(118)에 의해 제공된다.
픽셀들의 변환 유닛 블록들(TU들)(잔차 PU(e), 및 PU를 포함하는 CU에 대응함)은 변환 블록(102) 내에서 변환의 동작을 경험하여, 각각이 비디오 데이터에 대응하는 복수의 변환 계수들을 포함하는 변환 도메인(E)에서 TU들을 야기한다. HEVC에서, 상이한 크기들의 블록 변환 세트(TU들)가 CU에 적용될 수 있다. 특히, TU는 PU의 크기와 동일한 크기이거나 PU의 크기를 초과할 수 있지만 CU는 아니거나; PU는 다수의 TU를 포함할 수 있다. 더욱이, TU는 정사각형 블록들(즉, 블록의 높이 및 폭이 같은 경우) 또는 직사각형 블록(즉, 블록의 높이 및 폭이 같지 않은 경우)일 수 있다. CU 내의 각각의 TU의 크기 및 위치는 RQT로 칭해지는 분리 쿼드트리에 의해 식별되며, 이는 디코더에 비트스트림으로 저장 또는 송신하기 위해 코딩된 CU를 동반한다. RQT에 포함되는 데이터는 예를 들어 인코더에 대한 컨트롤러(도시되지 않음)를 통해 인코딩(및 디코딩) 알고리즘들에 액세스가능하다.
특히, HEVC는 블록 변환 동작을 사용하며, 블록 변환 동작은 TU 블록 내에서 픽셀들을 역상관시키고 하위 변환 계수들로 블록 에너지를 컴팩트화하는 경향이 있으며, 이 변환 계수들은 주파수 도메인에 있는 것으로 간주되는 스칼라량들로 정의된다. 일 실시예에서, 변환 블록(102)은 TU 블록 내에서 픽셀들의 DCT(Discreet Cosign Transform)를 수행한다. TU는 본 명세서에서 변환, 양자화, 및 엔트로피 코딩 동작들 동안 처리되는 요소들의 블록 유닛 또는 블록으로 정의된다.
변환 블록(102)의 출력(E)은 2차원 어레이를 포함하는 변환 유닛 블록 또는 높이(H) 및 폭(W)을 갖는 변환 계수들의 매트릭스(W x H)이다. 잔차 TU(E)의 변환 계수들은 양자화된 변환 계수들의 2차원 매트릭스(W x H)를 포함하는 변환 유닛 블록을 생성하기 위해 양자화기 블록(104)에서 양자화된다. 변환 계수들 및 양자화된 변환 계수들 둘 다는 일반적으로 본 명세서에서 계수들로서 언급된다. 양자화는 데이터 압축에서 매우 중요한 역할을 한다. HEVC에서, 양자화는 고정밀도 변환 계수들을 한정된 수의 가능한 값들로 변환한다. 양자화는 손실되는 동작이며, 양자화에 의한 손실은 회복될 수 없다.
양자화된 변환 계수들은 엔트로피 코딩되어, 인코더(100)로부터 최종 압축 비트스트림(122)(또한 본 명세서에서 1차원 "비트 시퀀스"로 언급됨)을 야기한다. HEVC에서, 엔트로피 코딩이 CABAC(context-adaptive binary-arithmetic coding)를 사용하여 수행된다. 다른 비디오 압축 기술들은 CABAC 뿐만 아니라 CAVLC(context-adaptive variable-length coding)와 같은 다른 엔트로피 코딩 알고리즘들을 사용한다. 비디오 압축 기술이 CAVLC 및 CABAC 둘 다를 제공할 때, 이들 엔트로피 코딩 기술들 둘 다를 구현할 수 있는 인코더(또는 디코더)는 2개의 구성들: CAVLC 엔트로피 코딩을 구현할 때, 저복잡도 구성 및 CABAC 엔트로피 코딩을 구현할 때, 고효율 구성에 따라 동작한다고 말할 수 있다.
인코더(100) 내의 디코딩 프로세스에서, 잔차 TU의 양자화된 변환 계수들은 역양자화기 블록(108)(양자화기 블록(104)의 역(그러나 정확히 그런 것은 아닌) 동작)에서 역양자화되어, 잔차 TU(E')의 역양자화된 변환 계수들을 야기한다. 잔차 TU(E')의 역양자화된 변환 계수들은 역변환 블록(110)(변환 블록(102)의 역)에서 역변환되어, 재구성된 잔차 TU(e')를 야기한다. 그 다음, 재구성된 잔차 TU(e')는 공간적인 또는 시간적인 대응하는 예측(x')에 추가되어, 재구성된 PU(x")를 형성한다. HEVC에서, 적응식 루프 필터(112)는 재구성된 LCU 상에 수행되며, 이는 블록 경계들을 평탄하게 하고 입력과 출력 픽처들 사이의 코딩 왜곡을 최소화한다. 재구성된 픽처들이 레퍼런스 픽처들이면, 그들은 장래의 시간 예측을 위해 레퍼런스 버퍼(116)에 시간 레퍼런스들로서 저장된다.
외부 디코더(도시되지 않음)는 엔트로피 디코딩 블록을 포함하며, 엔트로피 디코딩 블록은 인코더의 엔트로피 인코딩 블록(106)의 역알고리즘을 수행하며, 그것에 의해 비트 스트림을 수신하고 양자화된 변환 계수들의 블록(TU)을 생성한다. 디코더는 인코더(100) 내에서 디코딩 프로세스를 수행하는 것들과 동일한 요소들을 더 포함하고; 이러한 요소들은 엔트로피 디코딩 블록으로부터 양자화된 변환 계수들을 수용하고 비디오의 대응하는 픽처들을 생성한다. 즉, 디코더 내의 디코딩 프로세스는 상술한 바와 같이 동작하는 역양자화기(108), 역변환(110), 루프 필터(112), 공간 예측 블록(114), 레퍼런스 버퍼(116), 시간 예측 블록(118), 및 스위치(120)를 더 포함한다.
나머지 도 2-도 5는 본 개시의 다양한 실시예들을 예시한다. 특히, 도 2 및 도 4는 각각 일부 실시예들에 따른 변환 계수들의 직사각형 블록들의 양자화에 대한 방법들(200 및 400)을 예시한다. 예를 들어, 인코더(100)는 양자화기 블록(104) 내의 방법들(200 및 400)의 기능의 적어도 일부를 수행한다. 따라서, 양자화기 블록은 도 2 및 도 4를 참조로 나타낸 바와 같은 처리를 수행하도록 구성된다. 도 3 및 도 5는 각각 일부 실시예들에 따른 양자화된 변환 계수들의 직사각형 블록들의 역양자화에 대한 방법들(300 및 500)을 예시한다. 예를 들어, 디코더(인코더(100) 내에서의 또는 외부의)는 역양자화기 블록(108) 내의 방법들(300 및 500)의 기능의 적어도 일부를 수행한다. 따라서, 역양자화기 블록은 도 3 및 도 5를 참조로 나타낸 바와 같은 처리를 수행하도록 구성된다.
방법들(200-500)은 HEVC로 구현하는 것에 대해 후술되며, 인코더 및 디코더는 고효율 비디오 코딩 표준(High Efficiency Video Coding standard)에 따라 동작하도록 구성된다. 따라서, 본 명세서에 설명된 함수들(방정식들) 및 매핑 테이블들은 HEVC에 대해 최적화된다. 그러나, 다른 실시예들에서, 방법들(200-500)은 상이한 비디오 압축 표준으로 또는 독점 비디오 압축 기술로 구현될 수 있다. 따라서, 본 명세서에 설명된 함수들 및 매핑 테이블들은 사용되는 특정 비디오 압축 기술에 적어도 부분적으로 의존하여 변화될 수 있다.
이제 인코더(100)에서 수행되는 바와 같은 방법(200)의 상세들로 복귀한다. 202에서, 양자화기 블록(104)은 픽처로부터 생성되는 변환 계수들의 WxH 블록을 수용하며, W는 블록의 행 폭이고 H는 블록의 열 높이이다. W 및 H는 임의의 양(positive)의 값일 수 있지만, 일 실시예에서, W 및 H 양자는 양의 정수들이다. 양자화기 블록은 픽처를 재구성하기 위해 사용되는 비트 시퀀스를 생성하도록 사용되는 양자화된 변환 계수들의 블록을 생성하기 위해 본 교시들에 따라 양자화 처리를 WxH 블록 상에 적용하도록 동작한다.
블록의 크기(즉, W 및 H의 값들)에 따라, 양자화기 블록은 204에서, 제1 양자화 알고리즘("예" 분기를 추종함)을 적용할지 또는 제2 양자화 알고리즘("아니오" 분기를 추종함)을 적용할지를 판단한다. 일 실시예에서, 정수(X)를 갖는 WxH=X2 또는 함수
Figure pct00005
의 출력(M)이 정수 값(즉, 정수(whole number))과 같을 때, 인코더는 제1 양자화 알고리즘을 적용한다. 따라서, 제1 양자화 알고리즘은 위의 기준을 만족하는 모든 정사각형 TU 블록들 및 일부 직사각형 블록들에 적용된다.
그렇지 않으면, (WxH=2X2인 경우의 HEVC에서와 같이) WxH≠X2 또는
Figure pct00006
이 비정수 값과 같을 때, 인코더는 제2 양자화 알고리즘을 적용한다. 제1 양자화 알고리즘과 대조적으로, 제2 양자화 알고리즘은 직사각형 블록들에만 적용한다. 다수의 양자화 알고리즘들 사이의 이러한 선택은 새로운 것이다. 통상적으로, 단일 양자화 알고리즘은 변환 계수들의 각각의 블록에 적용되었고, 알고리즘은 정사각형 TU들에 대해 최적화되었다.
일반적으로, 도 2에 대해 예시된 실시예에서, 제1 양자화 알고리즘을 적용하는 단계는 양자화된 변환 계수들의 블록을 생성하기 위해 사용되는 제1 상수 세트를 계산하도록 제1 매핑 테이블을 사용하는 단계를 포함하고, 제2 양자화 알고리즘을 적용하는 단계는 양자화된 변환 계수들의 블록을 생성하기 위해 사용되는 제2 상수 세트를 계산하도록 제2 매핑 테이블을 사용하는 단계를 포함한다. 본 명세서에 정의된 바와 같이, 매핑 테이블은 처리되는 주어진 변환 계수에 대해 선택된 양자화 파라미터로부터 상수 Q의 계산에 사용되거나; 처리되는 주어진 양자화된 변환 계수에 대해 디코딩된 양자화 파라미터로부터 상수 IQ의 계산에 사용되는 값들의 테이블이다. "시프트된" 매핑 테이블은 한 쌍의 Q 계산 함수들 또는 한 쌍의 IQ 계산 함수들에 사용되는 동일한 매핑 테이블을 지칭하며, 쌍에서의 함수들 중 하나는 더 상세히 후술되는 바와 같이, 쌍에서의 다른 함수의 출력 값들을 시프트하는 연산을 포함한다.
특히, 양자화된 변환 계수들의 블록은 블록 내의 각각의 변환 계수에 적용되는 아래의 양자화 함수(1)를 사용하여 생성된다. 고비용의(expensive) 나눗셈 또는 곱셈 연산 대신에, 비트들의 수(n)에 의해 우측 또는 좌측 시프트(각각 >> 또는 << 으로 언급됨)를 사용하는 것이 바람직하고 폭넓게 허용되며, 이는 각각 2^n에 의한 나눗셈 또는 곱셈에 대응한다.
양자화 함수(1)는 이하와 같이 정의되며,
레벨 = (coeff* Q + 오프셋) >> Qbits, (1)
여기서 coeff는 양자화 함수(1)에 입력되는 WxH 블록 변환 계수들로부터의 주어진 변환 계수이고;
레벨은 양자화 함수(1)로부터 출력된 대응하는 양자화된 변환 계수이고;
Q는 출력(M)이 정수 값과 같을 때 제1 매핑 테이블로부터 획득되는 상수이며, 그렇지 않으면 Q는 제2 매핑 테이블에 의해 획득되고;
Qbits는 양자화 함수 내에서 나눗셈 연산(division operation)을 나타내는 우측 시프트를 수행하는데 사용되는 비트들의 수를 포함하는 계산가능 상수이며;
오프셋은 Qbits의 값을 사용하여 유도되는 계산가능 상수이다.
제1 양자화 알고리즘을 적용할 시에(판단 블록(204)의 "예" 분기를 참조하여 예시됨), 인코더는 함수(1)를 사용하여 대응하는 양자화된 변환 계수(210에서), 즉 레벨을 결정하기 위해(210에서) 시퀀스에서의 블록에서 각각의 변환 계수, 즉 coeff를 처리한다(206-208에서). 양자화 처리를 설명할 시의 간략화를 위해, "제1" 변환 계수의 처리만이 설명된다. 그러나, 유사한 처리가 블록 내의 나머지 변환 계수들 상에 수행된다.
특히, 206 및 208에서, 양자화기는 제1 변환 계수에 대해 함수 (1)에의 입력들로서 요구되는 Q, Qbits 및 오프셋과 같은 변수들의 모두를 계산한다. 즉, 206에서, 양자화기는 Q를 계산한다. 이 경우에, WxH=X2이므로, Q=Q1이다. .Q1는 이하와 같이 제1 매핑 테이블(2)을 사용하여 계산된다;
Q = f1(QP%6), 즉, 모듈로 연산(modulo operation), (2)
여기서 f1(x=0,1,2,3,4,5)={26214,23302,20560,18396,16384,14564}이다. 따라서, 이 경우(WxH=X2인 경우)에 제1 상수 세트(Q)는 변환 계수들의 WxH 블록을 양자화하는데 사용되는 이러한 제1 매핑 테이블에 기초하여 결정된다.
208에서, 양자화기는 현재 처리되는 제1 변환 계수(coeff)에 대해 Qbits를 계산하고, Qbits를 사용하여 오프셋을 계산하며, QP를 사용한다. 일 실시예에서, 양자화 파라미터(QP)는 입력 구성 파일에 의해 미리 결정되거나 레이트 왜곡 최적화 또는 레이트 제어 메카니즘과 같은 일정 규칙들에 기초하여 인코더에 의해 결정된다. QP는 인코딩 프로세스의 일부로서 생성되는 비트 스트림으로 인코딩된다. Qbits 및 오프셋이 아래의 함수들/방정식들(3) 및 (4)를 각각 사용하여 계산되거나, 결정되거나, 획득된다:
Qbits = (21 + QP/6 - IntegerM - DB + RoundingShift), (3)
여기서 DB = B-8(8-비트 입력으로 내부 비트-깊이 증가);
Figure pct00007
;
IntegerM = Ceil(M), 여기서 Ceil(M)은
Figure pct00008
에 가장 근접한 및 가장 큰 정수 값이고, WxH=X2에 대해 IntegerM = M 또는
Figure pct00009
이 정수 값과 같으며;
IntegerM = M일 때 RoundingShift =0, 그렇지 않으면
IntegerM = M-0.5(HEVC 구현에서)인 경우 RoundingShift = (QP%6+3)/6이고;
B = 소스 비트 폭(예를 들어, 8 또는 10);
오프셋 = 1 << (Qbits - 1). (4)
상기 언급된 바와 같이, Qbits, Q1, 및 오프셋이 결정되면, 양자화기는 양자화 함수(1)를 사용하여 대응하는 제1 양자화된 변환 계수를 결정한다(210에서). 양자화된 변환 계수들의 블록 WxH이 결정될 때, 그것은 엔트로피 코딩되어, 214에서 최종 압축 비트스트림(122)을 야기하며, 이는 디코더에 저장되거나 제공된다. HEVC와 호환되는 일 실시예에서, 인코더는 RDOQ(Rate Distortion Optimized Quantization)로 칭해지는 특징을 사용한다. RDOQ이 인에이블될 때, 인코더는 레벨을 코딩하는 코스트를 레벨을 코딩하지 않고 남겨 두는 코스트와 비교함으로써 각각의 양자화된 변환 계수를 엔트로피 코딩할지를 판단한다(212에서). 특히, 인코더는 값들(Q1 Qbits)(WxH=X2일 때)을 사용하고 이하의 함수들 (5),(6),(7),(8), 및 (9)를 사용하여 제1 양자화된 변환 계수, 레벨(level)의 엔트로피 코딩을 수행할지를 판단한다:
Figure pct00010
UncodedCost > CodedCost이면, 레벨이 코딩된다. 그렇지 않으면, 레벨은 코딩되지 않은 채 남는다.
판단 함수(204)로 다시 복귀하면, WxH≠X2 또는
Figure pct00011
이 비정수와 같은 경우, 인코더는 방법(200)의 블록들(216 및 208-214)을 참조하여 예시되는 바와 같은 제2 양자화 알고리즘을 수행한다. HEVC 인코더 구성에서, 제2 양자화 알고리즘은 WxH=2X2(예를 들어, Lx2L 및 2LxL의 직사각형 크기화된 TU들을 가짐)일 때 적용된다. 제2 양자화 알고리즘의 적용 시에, 인코더는 양자화 함수(1)를 사용하여 대응하는 양자화된 변환 계수, 즉 레벨을 결정하기 위해 시퀀스에서의 블록에서 각각의 변환 계수, 즉 coeff를 처리한다. 양자화 처리를 설명할 시의 간략화를 위해, "제1" 변환 계수의 처리만이 설명된다. 그러나, 유사한 처리가 블록 내의 나머지 변환 계수들 상에 수행된다.
특히, 216에서, 양자화기는 Q를 계산한다. 이 경우에, Q=Q2(WxH≠X2이므로)이며, 이는 이하와 같이 제2 매핑 테이블(10)을 사용하여 계산된다:
Q = f2(QP%6), (10)
HEVC 실시예에서 f2(x=0,1,2,3,4,5) = {18536,16477,14538,13007, 11585,10298}이다. 따라서, 이 경우(WxH≠X2인 경우)에 제2 상수 세트(Q)는 변환 계수들의 WxH 블록을 양자화하는데 사용되는 이러한 제2 매핑 테이블에 기초하여 결정된다. 그 다음, 방법(200)은 상술한 바와 같이, 변환 계수들의 WxH 블록에 대응하는 비트 시퀀스를 생성하기 위해 블록들(208-214)의 기능성을 수행하는 것으로 진행한다.
이제 디코더로 수행되는 바와 같은 도 3의 방법(300)의 상세들로 복귀한다. 302에서, 역양자화기 블록(예를 들어, 104)은 양자화된 변환 계수들의 WxH 블록을 수용하며, W는 블록의 행 폭이고 H은 블록의 열 높이이다. W 및 H는 임의의 양의 값일 수 있지만, 일 실시예에서, W 및 H 양자는 양의 정수들이다. 역양자화기 블록은 양자화된 변환 계수들의 WxH 블록에 대응하는 픽처를 생성하기 위해 사용되는 (역양자화된) 변환 계수들의 블록을 생성하기 위해 본 교시들에 따라, WxH 블록에 역양자화 처리를 적용하도록 동작한다.
블록의 크기(즉, W 및 H의 값들)에 따라, 역양자화기 블록은 304에서, 제1 역양자화 알고리즘("예" 분기를 추종함)을 적용할지 또는 제2 역양자화 알고리즘("아니오" 분기를 따름)을 적용할지를 판단한다. 일 실시예에서, 정수(X)를 갖는 WxH=X2 또는 함수
Figure pct00012
의 출력(M)이 정수 값(즉, 정수(whole number))과 같을 때, 디코더는 제1 역양자화 알고리즘을 적용한다. 따라서, 제1 역양자화 알고리즘은 위의 기준을 만족하는 모든 정사각형 TU 블록들 및 일부 직사각형 블록들에 적용된다.
그렇지 않으면, (WxH=2X2인 경우의 HEVC에서와 같이) WxH≠X2 또는
Figure pct00013
이 비정수 값과 같을 때, 디코더는 제2 역양자화 알고리즘을 적용한다. 제1 역양자화 알고리즘과 대조적으로, 제2 역양자화 알고리즘은 직사각형 블록들에만 적용한다. 다수의 역양자화 알고리즘들 사이의 이러한 선택은 새로운 것이다. 통상적으로, 단일 역양자화 알고리즘은 양자화된 변환 계수들의 각각의 블록에 적용되었고, 알고리즘은 정사각형 TU들에 대해 최적화되었다.
일반적으로, 도 3에 대해 예시된 실시예에서, 제1 역양자화 알고리즘을 적용하는 단계는 변환 계수들의 블록을 생성하기 위해 사용되는 제1 상수 세트를 계산하도록 제1 매핑 테이블을 사용하는 단계를 포함하고, 제2 역양자화 알고리즘을 적용하는 단계는 변환 계수들의 블록을 생성하기 위해 사용되는 제2 상수 세트를 계산하도록 제2 매핑 테이블을 사용하는 단계를 포함한다. 특히, 변환 계수들의 블록은 이하의 역양자화 함수(11)를 사용하여 생성된다:
coeffQ = ((레벨 x IQ << (QP/6)) + 오프셋) >> IQbits, (11)
레벨은 역양자화 함수(11)에 입력되는 양자화된 변환 계수들의 WxH 블록으로부터의 제1 양자화된 변환 계수이고;
coeffQ는 역양자화 함수(11)로부터 출력되는 대응하는 제1 변환 계수이고;
IQ는 출력(M)이 정수 값과 동일한 경우 제1 매핑 테이블로부터 획득되는 상수이며, 그렇지 않으면 IQ는 제2 매핑 테이블로부터 획득되고;
QP는 디코딩된 양자화 파라미터이고;
IQbits는 제1 함수 내에서 우측 시프트를 수행하는데 사용되는 비트들의 수를 포함하는 계산가능 상수이며;
오프셋은 IQBits 또는 WxH로부터 유도되는 계산가능 상수이다.
제1 역양자화 알고리즘을 적용할 시에(판단 블록(304)의 "예" 분기를 참조하여 예시됨), 디코더는 함수(11)를 사용하여 대응하는 변환 계수, 즉, coeffQ를 결정하기 위해(310에서) 시퀀스에서의 블록에서 각각의 양자화된 변환 계수, 즉 레벨을 처리한다(306-308에서). 역양자화 처리를 설명할 시의 간략화를 위해, "제1" 양자화된 변환 계수의 처리만이 설명된다. 그러나, 유사한 처리가 블록 내의 나머지 양자화된 변환 계수들 상에 수행된다.
특히, 306 및 308에서, 역양자화기는 제1 양자화된 변환 계수에 대해 함수 (11)에 입력들로서 요구되는 IQ, 오프셋, 및 IQbits와 같은 변수들 모두를 계산한다. 즉, 306에서, 역양자화기는 IQ를 계산한다. 이 경우에, WxH=X2이므로, IQ=IQ1이다. IQ1는 이하와 같이 제1 매핑 테이블(12)을 사용하여 계산된다;
IQ = g1(QP%6), 즉, 모듈로 연산, (12)
여기서 g1(x=0,1,2,3,4,5)={40,45,51,57,64,72}이다. 따라서, 이 경우(WxH=X2인 경우)에 제1 상수 세트(IQ)는 양자화된 변환 계수들의 WxH 블록을 역양자화하는데 사용되는 이러한 제1 매핑 테이블에 기초하여 결정된다.
308에서, 역양자화기는 현재 처리되는 제1 양자화된 변환 계수, 레벨에 대해 IQbits 및 오프셋을 계산하고 QP를 디코딩하며, QP는 제1 양자화된 변환 계수에 대해 인코더에 의해 선택된 양자화 파라미터이다. 제1 역양자화 알고리즘을 적용하는 동안, IQbits 및 오프셋이 각각 이하의 함수들 (13) 및 (14)을 사용하여 계산된다,
IQbits = (IntegerM - 1 + DB - RoundingShift), (13)
여기서 DB = B-8(8-비트 입력으로 내부 비트-깊이 증가);
B = 소스 비트 폭;
;
IntegerM = Ceil(M), 여기서 Ceil(M)은
Figure pct00015
에 가장 근접한 및 가장 큰 정수 값이고, WxH=X2에 대해 IntegerM = M 또는
Figure pct00016
이 정수 값과 같으며;
IntegerM = M일 때 RoundingShift =0, 그렇지 않으면
IntegerM = M-0.5(HEVC 구현에서)인 경우 RoundingShift = (QP%6+3)/6이고;
오프셋 = 1 << (IntegerM - 2 + DB). (14)
상기 언급된 바와 같이, IQbits, IQ, 및 오프셋이 결정되면, 역양자화기는 대응하는 제1 변환 계수를 결정하기 위해(310에서) 역양자화 함수(11)를 사용한다. 일 실시예에서, 이 역양자화된 변환 계수는 클리핑(312) 함수를 경험하며, 그것은 이하의 함수 (15)에 따라 (-3268,32768)의 범위로 단축된다:
coeffQ = min(32767,max(-32768, coeffQ). (15)
그 다음, 역양자화된 변환 계수들의 블록이 314에서 대응하는 픽처를 생성하기 위해 디코더에 의해 사용된다.
판단 함수(304)에 다시 복귀하면, WxH≠X2 또는
Figure pct00017
이 비정수 값과 같을 때, 디코더는 방법(300)의 블록들(316 및 308-314)을 참조하여 예시되는 바와 같이 제2 역양자화 알고리즘을 수행한다. HEVC 디코더 구성에서, 제2 역양자화 알고리즘은 WxH=2X2(예를 들어, Lx2L 및 2LxL의 직사각형 크기화된 TU들을 가짐)일 때 적용된다. 제2 역양자화 알고리즘을 적용할 시에, 디코더는 역양자화 함수(11)를 사용하여 대응하는 (역양자화된) 변환 계수, 즉 coeffQ를 결정하기 위해 시퀀스에서의 블록에서 각각의 양자화된 변환 계수, 즉 레벨을 처리한다. 역양자화 처리를 설명할 시의 간략화를 위해, "제1" 양자화된 변환 계수의 처리만이 설명된다. 그러나, 유사한 처리가 블록 내에서의 나머지 양자화된 변환 계수들 상에 수행된다.
특히, 316에서, 역양자화기는 IQ를 계산한다. 이 경우에, IQ=IQ2(WxH≠X2이므로)이며, 이는 이하와 같이 제2 매핑 테이블(16)을 사용하여 계산된다:
IQ = g2(QP%6), (16)
여기서 HEVC 실시예에서 g2(x = 0,1,2,3,4,5) = {56,63,72,80,90,101}이다. 따라서, 이 경우(WxH≠X2인 경우)에 제2 상수 세트(IQ)는 양자화된 변환 계수들의 WxH 블록을 역양자화하는데 사용되는 이러한 제2 매핑 테이블에 기초하여 결정된다. 그 다음, 방법(300)은 상술한 바와 같이, 변환 계수들의 WxH 블록에 대응하는 픽처를 생성하기 위해 블록들(308-314)의 기능성을 수행하는 것으로 진행한다.
이제 인코더(100)로 수행되는 바와 같은 도 4의 방법(400)의 상세들로 복귀한다. 방법(400)은 인코더로 수행되는 방법(200)과 유사하고 유사한 블록들(202-214)을 포함하며, 유사한 블록들은 상술되었지만 간결성을 위해 여기서 반복되지 않는다. 따라서, 이 실시예에서, 판단 블록(204)의 "예" 분기 동안 적용되는 제1 양자화 알고리즘은 방법(200 및 400)에서 동일하다. 그러나, 블록(204)의 "아니오" 판단 분기(블록(402)으로 시작됨)에서 수행되는 제2 양자화 알고리즘은 방법(400)에서 상이하다.
일반적으로, 도 4에 대해 예시된 실시예에서, 제1 양자화 알고리즘을 적용하는 단계는 양자화된 변환 계수들의 블록을 생성하기 위해 사용되는 제1 상수 세트(Q)를 계산하도록 제1 매핑 테이블을 사용하는 단계를 포함하고, 제2 양자화 알고리즘을 적용하는 단계는 양자화된 변환 계수들의 블록을 생성하기 위해 사용되는 제2 상수 세트(Q)를 계산하도록 시프트된 제1 매핑 테이블을 사용하는 단계를 포함한다. 특히, WxH=X2일 때, Q=Q1은 제1 매핑 테이블 Q = f(QP%6)를 사용하여 상기와 같이 계산되며, f(x = 0,1,2,3,4,5) = {26214,23302,20560,18396,16384,14564}이다. 다른 한편, 402에서, Q=Q2(WxH≠X2이므로)은 아래에 정의된 바와 같은 시프트된 제1 매핑 테이블을 사용하여 계산된다:
Q = f1((QP + 3)%6), (17)
여기서 f(x = 0,1,2,3,4,5) = {26214,23302,20560,18396,16384,14564}이다. 따라서, 이 경우(WxH≠X2인 경우)에 제2 상수 세트(Q)는 변환 계수들의 WxH 블록을 양자화하는데 사용하기 위해, 시프트된 제1 매핑 테이블에 기초하여 결정된다.
이제 디코더로 수행되는 바와 같은 도 5의 방법(500)의 상세들로 복귀한다. 방법(500)은 디코더로 수행되는 방법(300)과 유사하고 유사한 블록(302-314)을 포함하며, 유사한 블록은 상술되었지만 간결성을 위해 여기서 반복되지 않는다. 따라서, 이 실시예에서, 판단 블록(304)의 "예" 분기 동안 적용되는 제1 역양자화 알고리즘은 방법들(300 및 400)에서 동일하다. 그러나, 블록(304)의 "아니오" 판단 분기(블록(502)으로 시작됨)에서 수행되는 제2 역양자화 알고리즘은 방법(500)에서 상이하다.
일반적으로, 도 5에 대해 예시된 실시예에서, 제1 역양자화 알고리즘을 적용하는 단계는 (역양자화된) 변환 계수들의 블록을 생성하기 위해 사용되는 제1 상수 세트(IQ)를 계산하도록 제1 매핑 테이블을 사용하는 단계를 포함하고, 제2 역양자화 알고리즘을 적용하는 단계는 변환 계수들의 블록을 생성하기 위해 사용되는 제2 상수 세트(IQ)를 계산하도록 시프트된 제1 매핑 테이블을 사용하는 단계를 포함한다. 특히, 상기 명시된 바와 같이, WxH=X2인 경우, IQ=IQ1은 제1 매핑 테이블 IQ = g1(QP%6)를 사용하여 상기와 같이 계산되며, g1(x = 0,1,2,3,4,5) = {40,45,51,57,64,72}이다. 그러나, 이 경우에, 502에서, IQ=IQ2(WxH≠X2이므로)은 시프트된 버전의 제1 매핑 테이블을 사용하여 계산된다. 따라서, M=IntegerM-0.5인 경우, HEVC에서와 같이, 시프트된 매핑 테이블은 다음과 같다:
IQ = g1((QP + 3)%6), (18)
여기서 g1(x = 0,1,2,3,4,5) = {40,45,51,57,64,72}이다. 따라서, 이 경우(WxH≠X2인 경우)에, 제2 상수 세트(IQ)는 양자화된 변환 계수들의 WxH 블록을 역양자화하는데 사용하기 위해, 시프트된 제1 매핑 테이블에 기초하여 결정된다. 더욱이, HEVC 실시예에서, 변환 계수들을 결정하기 위해 사용되는 오프셋은 다음과 같은 함수 (19)를 사용하여 결정된다:
오프셋 = 1 << (IQbits - 1). (19)
이전 명세서에서, 특정 실시예들이 설명되었다. 그러나, 당업자는 아래의 청구항들에 제시된 바와 같은 본 발명의 범위로부터 벗어나는 것 없이 다양한 수정들 및 변경들이 이루어질 수 있는 것을 이해한다. 따라서, 명세서 및 도면들은 제한적인 의미라기 보다는 오히려 예시적인 의미로 고려되어야 하고, 모든 그러한 수정들은 본 교시들의 범위 내에 포함되도록 의도된다.
이점들, 장점들, 문제들에 대한 해법, 및 임의의 이점, 장점, 또는 해법이 발생되거나 더 표명되게 할 수 있는 임의의 요소(들)는 임의의 또는 모든 청구항들의 결정적, 필수, 또는 근본적인 특징들 또는 요소들로 해석되지 않아야 한다. 본 발명은 본 출원의 계류 동안에 이루어지는 임의의 보정들을 포함하는 첨부된 청구항들 및 발행된 청구항들의 모든 균등물들에 의해서만 정의된다.
일반적으로, 이러한 교시들의 목적들을 위해, 장치들은 도 2-도 5에서 상세히 설명된 바와 같은 본 개시의 실시예들에 따른 기능으로 구성되거나 적응된다. 본 명세서에 사용되는 바와 같은 "적응된", "구성된", "동작가능한" 또는 "할 수 있는"은 하드웨어 또는 원하는 기능을 수행하기 위해 소프트웨어 및/또는 펌웨어로 프로그램된 하드웨어 및 처리 장치들의 조합을 사용하여 지시된 장치들이 구현되는 것을 의미한다.
더욱이, 이러한 문서에서, 제1 및 제2, 상단 및 하단 등과 같은 상관적 용어들은 그러한 엔티티들 또는 동작들 사이의 임의의 실제 그러한 관계 또는 순서를 반드시 필요로 하거나 암시하는 것 없이 다른 엔티티 또는 동작으로부터 하나의 엔티티 또는 동작을 구별하기 위해 단독으로 사용될 수 있다. 용어들 "구비하다", "구비하는", "갖다", "갖는", "포함하다", "포함하는", "함유하다", "함유하는"("comprises", "comprising", "has", "having", "includes", "including", "contains", "containing") 또는 그것의 임의의 다른 변형은 비배타적인 포함을 커버하는 것으로 의도되어, 요소들의 리스트를 구비하거나, 갖거나, 포함하거나, 함유하는 프로세스, 방법, 물품, 또는 장치는 그 요소들만을 포함하는 것이 아니라 그러한 프로세스, 방법, 물품, 또는 장치에 명확히 열거되지 않거나 내재되지 않은 다른 요소들을 포함할 수 있다. "~을 구비하다", "~을 갖는다", "~을 포함하다", "~을 함유하다"("comprises ... a", "has ... a", "includes ... a", "contains ... a")에 의해 진행되는 요소는 더 많은 제한 없이 요소를 구비하거나, 갖거나, 포함하거나, 함유하는 프로세스, 방법, 물품, 또는 장치 내의 추가의 동일한 요소들의 존재를 배제하지 않는다. 용어들 하나("a" 및 "an")는 본 명세서에서 다르게 명확히 기재되지 않으면 하나 이상으로 정의된다. 용어들 "실질적으로", "본질적으로", "대략", "약" 또는 그것의 임의의 다른 버전은 당업자에 의해 이해되는 바와 같이 근접한 것으로 정의되고, 하나의 비제한적 실시예에서 용어는 10%이내, 다른 실시예에서 5% 이내, 다른 실시예에서 1% 이내 그리고 다른 실시예에서 0.5% 이내로 정의될 수 있다. 본 명세서에 사용되는 바와 같은 용어 "결합된"은 반드시 직접적으로 그리고 반드시 기계적으로는 아니지만 연결된 것으로 정의된다. 특정 방식으로 "구성"되는 장치 또는 구조는 적어도 그 방법으로 구성되지만, 열거되지 않은 방법들로 구성될 수도 있다.
일부 실시예들은 마이크로프로세서들, 디지털 신호 프로세서들, 고객맞춤 프로세서들 및 FPGA들(field programmable gate arrays)와 같은 하나 이상의 범용 또는 특수화된 프로세서들(또는 "처리 장치들") 및 본 명세서에 설명된 방법 및/또는 장치의 일부, 대부분, 또는 모든 기능들을 특정 비프로세서 회로들과 함께 구현하는 하나 이상의 프로세서들을 제어하는 고유 저장된 프로그램 명령어들(소프트웨어 및 펌웨어 둘 다를 포함함)로 구성될 수 있다는 점이 이해될 것이다. 대안적으로, 일부 또는 모든 기능들은 저장된 프로그램 명령어들을 갖지 않는 상태 기계에 의해, 또는 하나 이상의 ASIC들(application specific integrated circuits)로 구현될 수 있으며, 각각의 기능 또는 기능들 중 특정한 것의 일부 조합들은 커스텀 로직으로 구현된다. 물론, 2개의 접근법의 조합이 사용될 수 있다.
더욱이, 일 실시예는 본 명세서에 설명되었고 청구된 방법을 수행하기 위해 컴퓨터(예를 들어, 프로세서를 포함함)를 프로그램하기 위한 컴퓨터 판독가능 코드를 저장한 컴퓨터 판독가능 저장 매체로 구현될 수 있다. 그러한 컴퓨터 판독가능 저장 매체들의 예들은 하드 디스크, CD-ROM, 광 저장 장치, 자기 저장 장치, ROM(Read Only Memory), PROM(Programmable Read Only Memory), EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read Only Memory) 및 플래시 메모리를 포함하지만, 이들에 제한되지 않는다. 게다가, 당업자는 본 명세서에 개시된 개념들 및 원리들에 의해 안내될 때, 예를 들어 이용가능 시간, 현재 기술 및 경제적 고려사항에 의해 동기 부여된 상당한 노력 및 많은 설계 선택들에 불구하고 최소의 실험으로 그러한 소프트웨어 명령어들 및 프로그램들 및 IC들을 쉽게 생성할 수 있을 것으로 기대된다.
본 개시의 요약서는 독자가 기술적 개시의 특성을 빠르게 확인하는 것을 허용하도록 제공된다. 요약서는 청구항들의 범위 또는 의미를 해석하거나 제한하기 위해 사용되지 않을 것이라는 조건으로 제출된다. 게다가, 이전 상세한 설명에서, 다양한 특징들은 본 개시를 능률화할 목적으로 다양한 실시예들에서 함께 그룹화된 것이 인식될 수 있다. 이러한 개시의 방법은 청구된 실시예들이 각각의 청구항에 명백히 인용된 것보다 더 많은 특징들을 필요로 하는 의도를 반영하는 것으로 해석되지 않는다. 오히려, 이하의 청구항들이 반영하는 바와 같이, 독창적인 발명 대상은 단일 개시된 실시예의 모든 특징들보다 더 적게 존재한다. 따라서, 이하의 청구항들은 이로써 상세한 설명에 포함되며, 각각의 청구항은 개별 청구된 발명 대상으로서 그 자체에 기초한다.

Claims (20)

  1. 양자화된 변환 계수들의 직사각형 블록에 역양자화를 수행하는 방법으로서,
    양자화된 변환 계수들의 WxH 블록을 수신하는 단계 - W는 상기 블록의 행 폭이고 H는 상기 블록의 열 높이임 -;
    상기 양자화된 변환 계수들의 WxH 블록에 대응하는 픽처를 생성하기 위해 사용되는 변환 계수들의 블록을 생성하기 위해 상기 양자화된 변환 계수들의 WxH 블록에 역양자화 처리를 적용하는 단계 - 상기 역양자화 처리는 함수
    Figure pct00018
    의 출력(M)이 정수 값과 같을 때 제1 역양자화 알고리즘을 적용하는 단계, 및 상기 출력(M)이 비정수 값과 같을 때 제2 역양자화 알고리즘을 적용하는 단계를 포함함 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 제1 역양자화 알고리즘을 적용하는 단계는 상기 변환 계수들의 블록을 생성하기 위해 사용되는 제1 상수 세트를 계산하도록 제1 매핑 테이블을 사용하는 단계를 포함하고, 상기 제2 역양자화 알고리즘을 적용하는 단계는 상기 변환 계수들의 블록을 생성하기 위해 사용되는 제2 상수 세트를 계산하도록 제2 매핑 테이블을 사용하는 단계를 포함하는 방법.
  3. 제2항에 있어서, 상기 변환 계수들의 블록은 역양자화 함수, coeffQ = ((레벨 x IQ << (QP/6)) + 오프셋) >> IQbits를 사용하여 생성되며,
    레벨은 상기 역양자화 함수에 입력되는 상기 양자화된 변환 계수들의 WxH 블록으로부터의 양자화된 변환 계수이고;
    coeffQ는 상기 역양자화 함수로부터 출력되는 대응하는 변환 계수이고;
    IQ는 상기 출력(M)이 상기 정수 값과 같을 때 상기 제1 매핑 테이블로부터 획득되는 상수이며, 그렇지 않으면 IQ는 상기 제2 매핑 테이블로부터 획득되고;
    QP는 디코딩된 양자화 파라미터이고;
    IQbits는 상기 역양자화 함수 내에서 우측 시프트를 수행하는데 사용되는 비트들의 수를 포함하는 계산가능 상수이며;
    오프셋은 IQBits로부터 유도되는 계산가능 상수인 방법.
  4. 제3항에 있어서,
    상기 제1 매핑 테이블은 IQ=g1(QP%6)을 포함하며, g1(x=0,1,2,3,4,5) = {40,45,51,57,64,72}이고;
    상기 제2 매핑 테이블은 IQ=g2(QP%6)를 포함하며, g2(x=0,1,2,3,4,5) = {56,63,72,80,90,101}인 방법.
  5. 제1항에 있어서, 상기 제1 역양자화 알고리즘을 적용하는 단계는 상기 변환 계수들의 블록을 생성하기 위해 사용되는 제1 상수 세트를 계산하도록 제1 매핑 테이블을 사용하는 단계를 포함하고, 상기 제2 역양자화 알고리즘을 적용하는 단계는 상기 변환 계수들의 블록을 생성하기 위해 사용되는 제2 상수 세트를 계산하도록 시프트된 제1 매핑 테이블을 사용하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 제1 매핑 테이블은 IQ=g(QP%6)를 포함하며, g(x=0,1,2,3,4,5) = {40,45,51,57,64,72}이고;
    상기 시프트된 제1 매핑 테이블은 IQ=g((QP+3)%6)를 포함하며, g(x =0,1,2,3,4,5) = {40,45,51,57,64,72}이고, QP는 디코딩된 양자화 파라미터인 방법.
  7. 제1항에 있어서, 상기 제2 역양자화 알고리즘은 WxH=2X2일 때 적용되는 방법.
  8. 변환 계수들의 직사각형 블록에 양자화를 수행하는 방법으로서,
    픽처로부터 생성되는 변환 계수들의 WxH 블록을 수신하는 단계 - W는 상기 블록의 행 폭이고 H는 상기 블록의 열 높이임 -;
    상기 픽처를 재구성하기 위해 사용되는 비트 시퀀스를 생성하기 위해 사용되는 양자화된 변환 계수들의 블록을 생성하기 위해 상기 변환 계수들의 WxH 블록에 양자화 처리를 적용하는 단계 - 상기 양자화 처리는 함수
    Figure pct00019
    의 출력(M)이 정수 값과 같을 때 제1 양자화 알고리즘을 적용하는 단계, 및 상기 출력(M)이 비정수 값과 같을 때 제2 양자화 알고리즘을 적용하는 단계를 포함함 -
    를 포함하는 방법.
  9. 제8항에 있어서, 상기 제1 양자화 알고리즘을 적용하는 단계는 상기 양자화된 변환 계수들의 블록을 생성하기 위해 사용되는 제1 상수 세트를 계산하도록 제1 매핑 테이블을 사용하는 단계를 포함하고, 상기 제2 양자화 알고리즘을 적용하는 단계는 상기 양자화된 변환 계수들의 블록을 생성하기 위해 사용되는 제2 상수 세트를 계산하도록 제2 매핑 테이블을 사용하는 단계를 포함하는 방법.
  10. 제9항에 있어서, 상기 양자화된 변환 계수들의 블록은 양자화 함수, 레벨= (coeff x Q + 오프셋) >> Qbits를 사용하여 생성되며,
    coeff는 상기 양자화 함수에 입력되는 상기 WxH 블록 변환 계수들로부터의 변환 계수이고;
    레벨은 상기 양자화 함수로부터 출력되는 대응하는 양자화된 변환 계수이고;
    Q는 상기 출력(M)이 상기 정수 값과 같을 때 상기 제1 매핑 테이블로부터 획득되는 상수이며, 그렇지 않으면 Q는 상기 제2 매핑 테이블로부터 획득되고;
    Qbits는 상기 양자화 함수 내에서 나눗셈 연산(division operation)을 나타내는 우측 시프트를 수행하는데 사용되는 비트들의 수를 포함하는 계산가능 상수이며;
    오프셋은 Qbits를 사용하여 유도되는 계산가능 상수인 방법.
  11. 제10항에 있어서,
    상기 제1 매핑 테이블은 Q1=f1(QP%6)을 포함하며, f1(x=0,1,2,3,4,5) = {26214,23302,20560,18396,16384,14564}이고;
    상기 제2 매핑 테이블은 Q2=f2(QP%6)를 포함하며, f2(x = 0,1,2,3,4,5) = {18536,16477,14538,13007,11585,10298}이고, QP는 미리 결정된 양자화 파라미터인 방법.
  12. 제10항에 있어서, 상기 출력(M)이 상기 정수 값과 같을 때 상기 제1 상수 세트를 사용하여 상기 양자화된 변환 계수들의 엔트로피 코딩을 수행할지를 판단하며, 그렇지 않으면 상기 제2 상수 세트를 사용하여 상기 양자화된 변환 계수들의 엔트로피 코딩을 수행할지를 판단하는 단계를 더 포함하는 방법.
  13. 제8항에 있어서, 상기 제1 양자화 알고리즘을 적용하는 단계는 상기 양자화된 변환 계수들의 블록을 생성하기 위해 사용되는 제1 상수 세트를 계산하도록 제1 매핑 테이블을 사용하는 단계를 포함하고, 상기 제2 양자화 알고리즘을 적용하는 단계는 상기 양자화된 변환 계수들의 블록을 생성하기 위해 사용되는 제2 상수 세트를 계산하도록 시프트된 제1 매핑 테이블을 사용하는 단계를 포함하는 방법.
  14. 제13항에 있어서,
    상기 제1 매핑 테이블은 Q1=f(QP%6)를 포함하며, f(x=0,1,2,3,4,5) = {26214,23302,20560,18396,16384,14564}이고;
    상기 시프트된 제1 매핑 테이블은 Q2=f((QP+3)%6)를 포함하며, f(x=0,1,2,3,4,5) = {26214,23302,20560,18396,16384,14564}이고, QP는 선택된 양자화 파라미터인 방법.
  15. 제8항에 있어서, 상기 제2 양자화 알고리즘은 WxH=2X2일 때 적용되는 방법.
  16. 시스템으로서,
    양자화된 변환 계수들의 제1 WxH 블록을 수신하고 - W는 상기 블록의 행 폭이고 H는 상기 블록의 열 높이임 - ;
    상기 양자화된 변환 계수들의 제1 WxH 블록에 대응하는 제1 픽처를 생성하기 위해 사용되는 변환 계수들의 제1 블록을 생성하기 위해 상기 양자화된 변환 계수들의 제1 블록에 역양자화 처리를 적용하도록 - 상기 역양자화 처리는 함수
    Figure pct00020
    의 출력(M)이 정수 값과 같을 때 제1 역양자화 알고리즘을 적용하는 것, 및 상기 출력(M)이 비정수 값과 같을 때 제2 역양자화 알고리즘을 적용하는 것을 포함함 - 구성되는 역양자화기 블록을 갖는 디코더
    를 포함하는 시스템.
  17. 제16항에 있어서, 상기 역양자화기 블록은,
    상기 제1 역양자화 알고리즘을 적용하는 동안 제1 매핑 테이블을 사용하여 제1 상수 세트를 계산하고 - 상기 제1 상수 세트는 상기 양자화된 변환 계수들의 제1 블록으로부터 상기 변환 계수들의 제1 블록을 생성하기 위해 역양자화 함수 내에서 사용됨 - ;
    상기 제2 역양자화 알고리즘을 적용하는 동안 제2 매핑 테이블을 사용하여 제2 상수 세트를 계산하도록 - 상기 제2 상수 세트는 상기 양자화된 변환 계수들의 제1 블록으로부터 상기 변환 계수들의 제1 블록을 생성하기 위해 상기 역양자화 함수 내에서 사용됨 - 더 구성되는 시스템.
  18. 제16항에 있어서, 상기 역양자화기 블록은,
    상기 제1 역양자화 알고리즘을 적용하는 동안 제1 매핑 테이블을 사용하여 제1 상수 세트를 계산하고 - 상기 제1 상수 세트는 상기 양자화된 변환 계수들의 제1 블록으로부터 상기 변환 계수들의 제1 블록을 생성하기 위해 역양자화 함수 내에서 사용됨 - ;
    상기 제2 역양자화 알고리즘을 적용하는 동안 시프트된 제1 매핑 테이블을 사용하여 제2 상수 세트를 계산하도록 - 상기 제2 상수 세트는 상기 양자화된 변환 계수들의 제1 블록으로부터 상기 변환 계수들의 제1 블록을 생성하기 위해 상기 역양자화 함수 내에서 사용됨 - 더 구성되는 시스템.
  19. 제16항에 있어서,
    제2 픽처로부터 생성되는 변환 계수들의 제2 WxH 블록을 수용하고 - W는 상기 변환 계수들의 제2 블록의 행 폭이고 H는 상기 변환 계수들의 제2 블록의 열 높이임 - ;
    상기 제2 픽처를 재구성하기 위해 사용되는 비트 시퀀스를 생성하도록 사용되는 양자화된 변환 계수들의 제2 블록을 생성하기 위해 양자화 처리를 상기 변환 계수들의 제2 블록에 적용하도록 - 상기 양자화 처리는 상기 함수
    Figure pct00021
    의 출력(M)이 상기 정수 값과 같을 때 제1 양자화 알고리즘을 적용하는 것, 및 상기 출력(M)이 상기 비정수 값과 같을 때 제2 양자화 알고리즘을 적용하는 것을 포함함 - 구성되는 양자화기 블록을 갖는 인코더를 더 포함하는 시스템.
  20. 제16항에 있어서, 상기 디코더는 고효율 비디오 코딩 표준(High Efficiency Video Coding Standard)에 따라 동작하도록 구성되는 시스템.
KR1020147006044A 2011-09-08 2012-09-07 계수들의 직사각형 블록의 양자화 및 역양자화를 위한 방법들 및 장치 KR20140046055A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161532421P 2011-09-08 2011-09-08
US61/532,421 2011-09-08
US13/607,225 US8958472B2 (en) 2011-09-08 2012-09-07 Methods and apparatus for quantization and dequantization of a rectangular block of coefficients
US13/607,225 2012-09-07
PCT/US2012/054276 WO2013036845A2 (en) 2011-09-08 2012-09-07 Methods and apparatus for quantization and dequantization of a rectangular block of coefficients

Publications (1)

Publication Number Publication Date
KR20140046055A true KR20140046055A (ko) 2014-04-17

Family

ID=47829824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147006044A KR20140046055A (ko) 2011-09-08 2012-09-07 계수들의 직사각형 블록의 양자화 및 역양자화를 위한 방법들 및 장치

Country Status (9)

Country Link
US (1) US8958472B2 (ko)
EP (1) EP2745506A2 (ko)
JP (1) JP5770378B2 (ko)
KR (1) KR20140046055A (ko)
CN (1) CN103797796B (ko)
BR (1) BR112014005496A8 (ko)
MX (1) MX2014002749A (ko)
WO (1) WO2013036845A2 (ko)
ZA (1) ZA201400744B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10645398B2 (en) * 2011-10-25 2020-05-05 Texas Instruments Incorporated Sample-based angular intra-prediction in video coding
US10116951B2 (en) * 2011-11-07 2018-10-30 Sharp Laboratories Of America, Inc. Video decoder with constrained dynamic range
US9167261B2 (en) 2011-11-07 2015-10-20 Sharp Laboratories Of America, Inc. Video decoder with constrained dynamic range
US9491475B2 (en) 2012-03-29 2016-11-08 Magnum Semiconductor, Inc. Apparatuses and methods for providing quantized coefficients for video encoding
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
CN104321970B (zh) * 2012-06-26 2018-01-19 英特尔公司 层间编码单元四叉树模式预测
US9591302B2 (en) * 2012-07-02 2017-03-07 Microsoft Technology Licensing, Llc Use of chroma quantization parameter offsets in deblocking
US9414054B2 (en) 2012-07-02 2016-08-09 Microsoft Technology Licensing, Llc Control and use of chroma quantization parameter values
US9392286B2 (en) 2013-03-15 2016-07-12 Magnum Semiconductor, Inc. Apparatuses and methods for providing quantized coefficients for video encoding
US9693071B1 (en) * 2013-09-25 2017-06-27 Visualon, Inc. Self-adaptive load balance optimization for multicore parallel processing of video data
US9794575B2 (en) * 2013-12-18 2017-10-17 Magnum Semiconductor, Inc. Apparatuses and methods for optimizing rate-distortion costs in video encoding
CN104602014B (zh) * 2015-01-22 2018-04-03 复旦大学 一种适用于hevc标准的量化与反量化硬件复用算法及硬件结构
CN104602026B (zh) * 2015-01-22 2017-12-01 复旦大学 一种适用于hevc标准下编码器中全复用的重建环路结构
US10218975B2 (en) * 2015-09-29 2019-02-26 Qualcomm Incorporated Transform precision manipulation in video coding
KR102601732B1 (ko) * 2016-05-31 2023-11-14 삼성디스플레이 주식회사 영상 부호화 방법 및 영상 복호화 방법
EP3759584A4 (en) * 2018-02-27 2021-11-24 Zetane Systems Inc. SCALABLE TRANSFORMATION PROCESSING UNIT FOR HETEROGENEOUS DATA
KR102333181B1 (ko) 2018-08-31 2021-12-01 삼성전자주식회사 비디오 복호화 방법 및 장치, 비디오 부호화 방법 및 장치
JP2020098984A (ja) 2018-12-17 2020-06-25 キヤノン株式会社 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003304404A (ja) * 2002-04-09 2003-10-24 Canon Inc 画像符号化装置
US20030202603A1 (en) * 2002-04-12 2003-10-30 William Chen Method and apparatus for fast inverse motion compensation using factorization and integer approximation
US7702161B2 (en) * 2005-10-28 2010-04-20 Aspeed Technology Inc. Progressive differential motion JPEG codec
KR101394153B1 (ko) * 2007-12-11 2014-05-16 삼성전자주식회사 양자화 방법 및 장치, 역양자화 방법 및 장치
KR101518237B1 (ko) * 2008-09-01 2015-05-15 삼성전자주식회사 영상의 역양자화 방법 및 장치, 복호화 방법 및 장치
US8451892B2 (en) * 2009-06-30 2013-05-28 Oracle America, Inc. Method and system for linear quantization and dequantization
JP5581688B2 (ja) * 2009-12-24 2014-09-03 ソニー株式会社 画像処理装置および方法、並びにプログラム
JP5392199B2 (ja) * 2010-07-09 2014-01-22 ソニー株式会社 画像処理装置および方法
CN103535037B (zh) * 2011-05-20 2017-06-09 索尼公司 图像处理装置和图像处理方法
KR101358889B1 (ko) * 2011-11-22 2014-02-07 연세대학교 산학협력단 Cfa를 이용하여 획득한 샘플링된 컬러 영상을 부호화/복호화하기 위한 장치 및 그 방법
SG11201407419RA (en) * 2012-05-14 2014-12-30 Luca Rossato Decomposition of residual data during signal encoding, decoding and reconstruction in a tiered hierarchy

Also Published As

Publication number Publication date
JP5770378B2 (ja) 2015-08-26
BR112014005496A8 (pt) 2022-07-05
CN103797796A (zh) 2014-05-14
US20130064290A1 (en) 2013-03-14
ZA201400744B (en) 2016-02-24
EP2745506A2 (en) 2014-06-25
CN103797796B (zh) 2017-04-19
BR112014005496A2 (pt) 2017-06-13
MX2014002749A (es) 2014-04-16
WO2013036845A3 (en) 2013-05-02
JP2014524719A (ja) 2014-09-22
US8958472B2 (en) 2015-02-17
WO2013036845A2 (en) 2013-03-14

Similar Documents

Publication Publication Date Title
JP5770378B2 (ja) 係数の矩形ブロックを量子化及び逆量子化するための方法及び機器
JP7219284B2 (ja) 従属量子化
US9479780B2 (en) Simplification of significance map coding
EP3020187B1 (en) Rice parameter initialization for coefficient level coding in video coding process
KR102283307B1 (ko) 비디오 코딩 프로세스에서의 계수 레벨 코딩을 위한 라이스 파라미터 업데이트
CA2841957C (en) Coefficient scanning in video coding
US9497472B2 (en) Parallel context calculation in video coding
KR101506372B1 (ko) 변환 영역 필터들을 인코딩 및 디코딩하기 위한 방법들 및 장치들
US20130016789A1 (en) Context modeling techniques for transform coefficient level coding
ES2807908T3 (es) Procedimiento y dispositivo para determinar el valor de un parámetro de cuantificación
EP2536151A2 (en) Method and apparatus for processing a video signal
CA2808451C (en) Methods and devices for data compression with adaptive filtering in the transform domain
EP2705668A1 (en) Pixel-based intra prediction for coding in hevc
KR101650636B1 (ko) 루마 및 크로마 블록을 위한 vlc 계수 코딩
GB2519094A (en) Data encoding and decoding
JP7150861B2 (ja) ビデオコーディングのための空間変動変換
RU2760234C2 (ru) Кодирование и декодирование данных
US20120082230A1 (en) Variable length coding of video block coefficients
US10003793B2 (en) Processing of pulse code modulation (PCM) parameters
JP7047777B2 (ja) 画像データ符号化及び復号化
WO2015008478A1 (en) Modified coding for a transform skipped block for cabac in hevc
JP6402520B2 (ja) 符号化装置、方法、プログラム及び機器
CA2803202C (en) Methods and devices for data compression using adaptive reconstruction levels
JP6497100B2 (ja) 映像符号化装置、方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2016101002469; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20160427

Effective date: 20171221