KR101357403B1 - 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치, 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템, 및 화상 및/또는 비디오 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법 - Google Patents

인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치, 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템, 및 화상 및/또는 비디오 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법 Download PDF

Info

Publication number
KR101357403B1
KR101357403B1 KR1020117024126A KR20117024126A KR101357403B1 KR 101357403 B1 KR101357403 B1 KR 101357403B1 KR 1020117024126 A KR1020117024126 A KR 1020117024126A KR 20117024126 A KR20117024126 A KR 20117024126A KR 101357403 B1 KR101357403 B1 KR 101357403B1
Authority
KR
South Korea
Prior art keywords
coefficients
encoding
block
coding
trees
Prior art date
Application number
KR1020117024126A
Other languages
English (en)
Other versions
KR20120011848A (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 KR20120011848A publication Critical patent/KR20120011848A/ko
Application granted granted Critical
Publication of KR101357403B1 publication Critical patent/KR101357403B1/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/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
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

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)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

일반화된 계층 트리에 있어서의 세트 파티셔닝(SPRIGHT)을 사용하는 적응적 엔트로피 인코딩 및 디코딩, 그리고 방향성을 사용하여 트리를 설계하는 방법이 개시된다. 연관해제 및 양자화 후, 계수들의 제로 클러스터링을 향상시키는 방향으로 계수들을 코딩하기 위해, 화상 블록 내의 기하학적 관계에 기초하여, 복수의 후보 중에서 트리 구조가 선택된다. 각 계수의 주파수 위치를 찾는 것과 주파수 위치를 스케일링하는 것에 응답하여 SPRIGHT 인코딩을 위한 트리들이 생성되고, 이어서 옥타브 밴드 파티셔닝을 사용하여 계수 패턴들을 스퀘어 및 L형으로 파티션하고, L형은 반복적으로 스퀘어로 파티션된다. 트리는 각 비-리프 노드와 연관된 계수들을 포함하는 리프 노드들을 포함한다. 제로 클러스터링된 계수들의 개수가 증가될 수 있으므로, 인코딩된 화상 출력으로 코딩되는 노드들의 개수를 감소시킨다.

Description

인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치, 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템, 및 화상 및/또는 비디오 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법 {DESIGN TREES FOR ADAPTIVE CODING OF IMAGES AND VIDEOS USING SET PARTITIONING IN GENERALIZED HIERARCHICAL TREES HAVING DIRECTIONALITY}
<연관된 출원의 상호 참조>
본 출원은 2009년 6월 9일자로 출원된 U.S. 특허 가출원 번호 제61/185,570호의 우선권을 주장하며, 그 전체 내용이 본 명세서에 참조로 원용된다.
<저작권 보호를 받는 자료에 대한 주의>
본 특허 문서의 자료 중 일부는 미국 및 다른 국가들의 저작권법에 의한 저작권 보호를 받는다. 저작권의 소유자는, 이 특허 문서 또는 특허 공개물을 누구든지 팩스 재생하는 것에 대해서는, 그것이 미국 특허청의 공개적으로 이용가능한 파일 또는 기록물에 나타난 대로인 한, 이의가 없지만, 그외에는 어떤 것일지라도 모든 저작권을 보유한다. 저작권 소유자는, 37 C.F.R. §1.14에 따른 그의 권리의 제한이 없는 것을 포함하여, 이 특허 문서의 비밀 유지에 관한 어떠한 권리도 포기하지 않는다.
발명의 분야
본 발명은 일반적으로 화상 및 비디오 코딩에 관한 것으로, 특히 방향성을 갖는 일반화된 계층 트리의 세트 파티셔닝을 사용하는 적응적 엔트로피 코딩 장치 및 방법에 있어서 이용하기 위한 트리 적응화에 관한 것이다.
엔트로피 코딩은, 통상 (1) 변형 (및/또는 예측) 단계, (2) 양자화 단계, 및 (3) 엔트로피 코딩 단계에 응답하는, 화상 및 비디오 압축의 주요 요소이다.
통상 JPEG 엔트로피 코딩 방법은 Joint Photographic Experts Group(사진 그래픽 전문가 연합 그룹)을 의미하며 컴퓨터 화상 파일 압축 기술에 적합한 ISO/IEC 표준이고, 하기에서 기술된다. JPEG 파일은, 압축 품질의 범위 중에서 선택함으로써, 더 정확하게는 다수의 압축 알고리즘 중에서 하나를 선택함으로써 생성된다. 화상을 JPEG 압축을 통해 변환함에 있어서, 결과적인 화상의 목표 크기 또는 품질은 원래 화상에 근사하거나 또는 그보다 낮은 품질 레벨로 지정된다. 최고의 품질의 화상은 최대의 파일을 초래하기 때문에, 화상 품질과 파일 사이즈 사이에는 상충 관계가 있다. 표준에 따른 JPEG 스킴은, 비록 JPEG 실행자가 모두를 이용하지 않을 수 있지만, 스물 아홉(29)개의 별개의 코딩 처리를 포함한다.
JPEG에서 엔트로피 코딩을 실행하는 경우, 각 8×8 블록이 이산 코사인 변환(discrete cosine transforms(DCT)) 을 사용하여 변환되고, DCT 계수들은 양자화되고, 지그재그 스캔되고, 런-길이(run-length) 코딩된다. 런-길이 코딩은 각 화소의 값들을 개별적으로 저장하기보다는 동일한 화소들의 선형 그룹들을 생성함으로써 보다 낮은 레이트로 화상 데이터를 인코딩하는 방식을 제공한다고 인식될 것이다. 이산 코사인 변환(DCT)은 임의의 파형을 코사인들의 가중화된 합으로서 표현하는 메커니즘을 제공하고, 다양한 형태의 신호 처리, 특히 비디오 압축의 처리에 있어서 중심이 된다.
도 1a는 4×4 블록의 지그재그 스캐닝의 예를 도시하며, 계수 위치들이 도 1b에 도시된다. 이 지그재그 패턴에 따라 엔트로피 인코딩을 행하는 것에 대해서는 다수의 단점들이 존재한다. 특히, (1) 레이트 제어 메커니즘이 없고, 또한 그러면서 (2) 지그재그 스캐닝이 DCT 계수들의 2D 의존성을 파괴한다.
양자화에 사용되는 파라미터들은 부분적으로 레이트 제어를 결정함으로써, 이에 의해 소망의 파일 사이즈를 얻기 위해서는 전형적으로 상이한 양자화 파라미터들이 시도되어야 한다는 것을 이해할 것이다.
2D 의존성의 상실에 대해서는, 예를 들어, 도 1b의 계수 위치 2와 6은 4×4 블록에 도시된 주파수 스펙트럼에 있어서 근접하지만, 도 1a에 도시된 지그재그 스캐닝 순서에 응답하여 그들은 전혀 인접하지 않고 실제로 서로 멀리 떨어진다는 것을 알 것이다.
비트 평면 기반의 엔트로피 코딩은 스케일러블 화상 코딩에 널리 이용된다. 이 처리에서, 변환 계수들은 바이너리 형태로 변환되고, 최상위 비트 평면(MSB)으로부터 최하위 비트 평면(LSB)까지 코딩된다. 이 처리 동안, 하위의 비트 평면들의 인코딩과 디코딩은 상위의 비트 평면들의 지식에 기초한다. 비트스트림 코딩 처리는, 합리적으로 양호한 재구성 품질을 제공하면서 주어진 비트레이트 예산을 충족시키는 방향으로, 비트 평면들 중 임의의 깊이에서, 어디에서든지 정지될 수 있다. 각 계수의 가장 중요한 부분(MSBs)이 이미 코딩되었기 때문에, 코딩 처리의 임의의 포인트에 있어서 정지하는 능력이 가능하다. 이 비트스트림 코딩 메커니즘은 임베디드 코딩으로서 알려져 있고, 양호한 레이트 제어를 제공한다.
따라서, 낮은 복잡성과 높은 효율을 갖고, 레이트 제어가 가능한 인코딩 및 디코딩을 행하기 위한 방법 및 장치의 존재가 요구된다. 이들 및 다른 요구들이 본 발명에서 충족되어, 이전에 개발된 엔트로피-기반 화상/비디오 코딩 기술의 결함을 극복한다.
본 발명은 일반화된 계층 트리 내에서의 세트 파티셔닝(SPRIGHT)을 사용하는 화상용 적응적 코딩 방법에 사용하기 위한 트리 적응화를 제공한다. 설명의 편의상, 일반화된 계층 트리의 세트 파티셔닝(Set PaRtitioning in Generalized Hierarchical Trees)은 본 명세서에서 두문자어 "SPRIGHT"라고 칭해진다. SPRIGHT 인코딩 방법은 향상된 코딩 효율을 제공할 수 있으면서 유사한 특징들을 공유하기 때문에 임베디드 코딩용으로 사용될 수 있다. 본 발명에 있어서는, 상이한 방향 패턴들을 위한 상이한 타입의 트리들을 적응화하고, 사용될 특정 트리가 다수의 트리 중에서 선택된다.
화상 및 비디오 등의 2D 비주얼 신호의 코딩 효율을 향상시키기 위해, 본 발명은 방향성 등과 같은 국부적인 기하학적 특징들에 응답하여 설계 트리들의 정응화를 제공한다. 본 발명은 각 블록을 코딩하기 위한 복수의 후보들 중에서 설계 트리를 선택하는 적응적 엔트로피 코딩 방법에 사용하기 위해 적응된 복수의 설계 트리를 생성한다. 본 명세서에서 "SPRIGHT 코딩"이라고 칭해지는 코딩 처리는 DCT 또는 DWT, 또는 방향성 변환 등의 더 진보된 변환들과 같은 변환들을 사용할 수 있다.
SPRIGHT 코딩은 전반적으로, 화상 또는 비디오 프레임을 블록들로 분할하는 단계, 변환을 이용하여 각각의 블록을 연관해제하는 단계, 변환 계수들을 양자화하는 단계, 복수의 트리의 세트 중에서 트리를 선택하는 단계, 및 그 선택된 트리를 사용하여 블록을 인코딩하는 단계를 따른다. 트리가 고정되지 않고, 계수들의 블록 내에 존재하는 2D 관계에 응답하여 선택되기 때문에, 코딩 효율은 대폭 향상된다.
본 발명은 하기의 기술을 포함하나 그것에 한정되지 않는 다양한 방식들로 실시되기 위해 수정 가능하다.
본 발명의 일 실시예는 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치이며, (a) 화상 및/또는 비디오 프레임을 수신하여 처리하도록 구성된 컴퓨터, 및 (b) 상기 컴퓨터 상에서 실행가능한 프로그래밍으로서, (b)(i) 옥타브 밴드 파티셔닝을 사용하여 비-방향성 코딩 트리를 생성하고, (b)(ii) 수평 또는 수직 방향의 주파수 성분들의 스케일링에 응답하여 수평 및 수직 코딩 트리를 생성하고, (b)(iii) 수평 및 수직 방향에 적응된 복수의 후보 코딩 트리를 생성하기 위한 옥타브 밴드 파티셔닝을 행하기 위한 프로그래밍을 포함한다.
본 발명의 적어도 일 실시예는, 방향성 변환의 사용에 응답하여 상기 복수의 후보 코딩 트리 중에 대각선 코딩 트리를 생성하기 위해 상기 컴퓨터 상에서 실행가능한 프로그래밍을 더 포함한다. 적어도 일 실시예에 있어서, 상기 복수의 후보 코딩 트리는, 상기 복수의 후보 코딩 트리 중에서 선택된 트리 구조의 미리 결정된 탐색에 응답하여 블록 인코딩을 제어하도록 구성된다. 적어도 일 실시예에 있어서, 상기 복수의 후보 코딩 트리 내의 각 후보 코딩 트리는, 특정된 배열의 리프 및 비-리프 노드들로 구성되고, 하나 이상의 리프 노드는 각 비-리프 노드와 연관된 계수를 포함하도록 구성된다. 적어도 일 실시예에 있어서, 상기 복수의 후보 코딩 트리 내의 각 후보 코딩 트리는, 각 비-리프 노드의 상태가, 그의 자손 리프 노드들이 모두 제로 계수를 포함하는지 또는 모두 제로 계수를 포함하지는 않는지 여부를 나타내는 비트에 의해 표현되도록 구성된다. 적어도 일 실시예에 있어서, 상기 복수의 후보 코딩 트리는, 상기 복수의 후보 코딩 트리 중에서 사용을 위한 코딩 트리를 선택하는 인코더 내에 보유되도록 구성된다. 적어도 일 실시예에 있어서, 상기 옥타브 밴드 파티셔닝은 상기 블록들 내의 계수들을 스퀘어 및 L형으로 파티셔닝함으로써 수행되고, 상기 L형은 반복적으로 스퀘어로 파티셔닝된다. 적어도 일 실시예에 있어서, 상기 옥타브 밴드 파티셔닝은, 각 스퀘어가 하나의 계수만을 포함할 때 완료된다.
본 발명의 적어도 일 실시예에 있어서, 상기 복수의 후보 코딩 트리는, 변환이 수행된 후에 블록 내의 계수들을 코딩함에 있어서 사용되기 위해 구성된다. 적어도 일 실시예에 있어서, 상기 변환은 비-방향성 또는 방향성 변환을 포함한다. 적어도 일 실시예에 있어서, 화상 및/또는 비디오 프레임의 인코딩은, 비디오 프레임의 화상을 블록들로 파티션하고, 인코더에서 블록에 대해 방향성 변환을 수행하고, 그 후 상기 복수의 후보 코딩 트리 중에서 코딩을 수행하기 위해 적합한 트리 구조가 선택되는 프로그래밍에 응답하여, 상기 복수의 후보 코딩 트리 중의 코딩 트리를 사용하고, 코딩된 트리는, 각 계수에 대한 주파수 위치를 찾고, 각 계수의 주파수 위치에 기초하여 옥타브 밴드 파티셔닝을 수행하는 것에 응답하여 코딩 동안 생성된다. 적어도 일 실시예에 있어서, 프로그래밍은, 상기 블록의 상기 계수를 비-방향성, 수평, 및 수직을 포함한 3개 이상의 카테고리로 분류하도록 구성되고, 상기 인코더는 상기 3개 이상의 카테고리 중에서 블록을 인코딩하기 위한 1개의 모드를 선택한다. 적어도 일 실시예에 있어서, 프로그래밍은, 상기 블록의 상기 계수를 2개의 상이한 대각선 방향들을 포함한 카테고리들로 분류하도록 구성되고, 상기 인코더는 5개 중에서 블록을 인코딩하기 위한 1개의 모드를 선택한다. 적어도 일 실시예에 있어서, 프로그래밍은, 상기 블록의 상기 계수를 2개의 상이한 대각선 방향들을 포함한 카테고리들로 분류하도록 구성되고, 상기 인코더는 5개의 가능한 모드 중에서 블록을 인코딩하기 위한 1개의 모드를 선택하고, 상기 대각선 방향들로의 분류는 방향성 변환 연산에 응답하여 수행된다. 적어도 일 실시예에 있어서, 프로그래밍은, 파티셔닝 전에 스케일링 매트릭스를 블록에 적용하도록 구성되고, 상기 스케일링 매트릭스에 의한 스케일링은 상기 블록의 기하학적 관계에 응답하여 수행되고, 상기 스케일링은 수직적 또는 수평적 스케일링을 포함한다.
본 발명의 적어도 일 실시예에 있어서, 상기 인코딩은, 인코딩이 비트 평면 기반인 임베디드 인코딩을 포함한다. 적어도 일 실시예에 있어서, 상기 인코딩은, 인코딩이 비트 평면 기반인 임베디드 인코딩을 포함하고, 코딩 동안 생성된 트리들은, 선택된 트리 내의 비-리프 노드들에 있어서, 모든 자손들이 상위 비트 평면에서 제로로 양자화될 정도로 충분히 작은 계수들을 포함할 높은 가능성을 갖도록 구성된다. 적어도 일 실시예에 있어서, 프로그래밍은, 설계 트리를 사용하여 화상/비디오 인코더 내에서 적응적 엔트로피 인코딩을 수행하기 위해 구성되고, 화상 또는 비디오 프레임을 블록들로 분할하는 단계, 변환을 사용하여 각 블록을 연관해제하여 계수들의 블록들을 생성하는 단계, 변환 계수들을 양자화하는 단계, 화상에 대한 계수들의 블록들 각각 내의 기하학적 관계의 결정에 응답하여, 상기 복수의 후보 트리 중에서 적합한 트리 구조를 선택된 트리 구조로서 선택하는 단계, 및 상기 선택된 트리 구조에 응답하여 제로 계수들의 클러스터링을 사용하여 계수들의 블록들 각각을 인코딩하는 단계를 포함하고, 개개의 리프 노드들은 제로 계수들만을 포함하는 것을 나타내는 상기 선택된 트리 구조의 비-리프 노드들을 가지는 것에 응답하여, 인코딩된 출력으로부터 제로 계수들의 일부가 제거되고, 자손 리프 노드들을 상기 장치에 의해 생성되는 인코딩된 출력 비트 스트림 내로 코딩하지 않는다.
본 발명의 일 실시예는 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템이며, (a) 화상 및/또는 비디오를 인코딩하기 위해 구성된 프로세싱 엘리먼트와 메모리를 갖는 인코더, 및 (b) 상기 인코더의 프로세싱 엘리먼트 상에서 실행가능한 프로그래밍으로서, (b)(i) 화상 또는 비디오 프레임을 블록들로 분할하는 단계, 변환을 사용하여 각 블록을 연관해제하여 변환 계수들의 블록들을 생성하는 단계, (b)(ii) 변환 계수들의 블록들 각각에 대해 변환 계수들을 양자화하는 단계, (b)(iii) 화상 및/또는 비디오에 대한 계수들의 블록 내의 기하학적 관계의 결정에 응답하여 적어도 수평 방향 및 수직 방향을 포함하는 복수의 후보 트리의 세트 중에서 트리 구조를 선택된 트리 구조로서 선택하는 단계, 및 (b)(iv) 상기 선택된 트리 구조에 응답하여 제로 계수들의 클러스터링을 사용하여 블록을 인코딩하는 단계를 수행하는 프로그래밍을 포함하고, 개개의 리프 노드들은 제로 계수들만을 포함하는 것을 나타내는 상기 선택된 트리 구조의 비-리프 노드들을 가지는 것에 응답하여, 인코딩된 출력으로부터 제로 계수들의 일부가 제거되고, 이들 자손 리프 노드들을 디코더로 향하는 출력 비트 스트림 내로 코딩하지 않고, (c) 상기 인코더로부터의 비트스트림을 화상 및/또는 비디오로 디코딩하기 위해 구성된 프로세싱 엘리먼트와 메모리를 갖는 디코더, 및 (d) 상기 디코더의 프로세싱 엘리먼트 상에서 실행가능한 프로그래밍으로서, (d)(i) 블록을 인코딩함에 있어서 상기 인코더에 의해 사용된 상기 선택된 트리 구조를 결정하는 단계, (d)(ii) 선택된 트리 구조의 리프들을 계수들의 출력으로 디코딩하는 단계, (d)(iii) 논-제로 브랜치들 없이 비-리프 노드들을 디코딩하는 것에 응답하여 출력 중에 제로 계수들을 출력하는 단계, (d)(iv) 출력의 양자화해제를 수행하는 단계, 출력의 역변환을 수행하는 단계, 및 출력의 수신에 응답하여 화상 신호를 재구성하는 단계를 수행하는 것에 응답하여 화상 또는 비디오 신호를 출력하는 프로그래밍을 포함한다.
본 발명의 일 실시예는 화상 및/또는 비디오 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법이며, (a) 옥타브 밴드 파티셔닝을 사용하여 비-방향성 코딩 트리를 생성하는 단계, (b)(i) 적어도 수평 방향 및 수직 방향에서의 주파수 성분들의 스케일링 및 (b)(ii) 적어도 수평 방향 및 수직 방향에 대해 적응된 복수의 후보 코딩 트리를 생성하기 위한 옥타브 밴드 파티셔닝에 응답하여 (b) 수평 및 수직 코딩 트리들을 생성하는 단계를 포함한다.
본 발명은 본 발명의 교시를 벗어나지 않고서 개별적으로 또는 임의의 소정의 조합으로 구현될 수 있는 다수의 유리한 양태들을 제공한다.
본 발명의 양태는, 화상/비디오 코딩 프로세스를 위해 적응된 복수의 후보 코딩 트리의 생성을 제공하고, 이 프로세스는 코딩되는 각 화상/비디오 블록의 방향 특성에 응답하여 복수의 후보 중 하나를 선택한다.
본 발명의 다른 양태는, 선택된 트리 구조의 제로 계수들의 클러스터링에 응답하여 높은 코딩 효율을 제공하는 인코딩 및 디코딩 프로세스를 위한 코딩 트리들의 적응화이다.
본 발명의 다른 양태는, 블록들 각각을 인코딩/디코딩하기 위해 고정된 트리 구조에 의존하지 않는 인코딩 및 디코딩 프로세스에 있어서의 사용을 위한 코딩 트리들의 적응화이다.
본 발명의 다른 양태는, 화상/비디오 블록의 방향성에 응답하여 복수의 코딩 트리를 적응화할 때 방향 변환을 이용하는 것이다.
본 발명의 다른 양태는, 방향성에 기초하여 적응적 코딩 트리를 설계하는 프로세스 동안 옥타브 밴드 파티셔닝을 이용하는 것이다.
본 발명의 다른 양태는, 블록 픽셀들 간의 기하학적 관계들에 기초하여, 옥타브 밴드 파티셔닝 전에 블록 계수들을 (수직으로 및/또는 수평으로) 스케일링하기 위해 스케일링 매트릭스를 사용하는 것이다.
본 발명의 또 다른 양태는, 임베디드 및 논-임베디드 화상/비디오 코딩 시스템들 모두에 사용될 수 있는 인코딩 및 디코딩 방법이다.
본 발명의 다른 특징들은 하기의 명세서 부분들에서 명백해질 것이며, 그 상세한 설명은 본 발명의 바람직한 실시예들을 충분히 개시할 목적이며 본 발명을 제한하려는 것은 아니다.
본 발명은 예시적인 목적일 뿐인 하기의 도면들을 참조하여 더 충분히 이해될 것이다.
도 1a 및 도 1b는 4×4 계수 블록 어레이를 도시하는 도면이며, 도 1a에 지그재그 스캐닝 순서를 도시하고, 도 1b에 계수 위치들을 도시한다.
도 2a 내지 도 2c는 2×2 계수 데이터를 도시하는 도면이며, 도 2a에 4개의 계수들(A 내지 D)의 변환된 블록을 도시하고, 도 2b 및 도 2c에 본 발명의 특징에 따라 블록에 대해 선택될 수 있는 트리 계층을 도시한다.
도 3a 내지 도 3c는 도 2a 내지 도 2c에 도시된 2×2 계수 블록, 및 본 발명의 특징에 따라 블록에 대해 선택된 트리 계층 연산을 도시하는 계수 데이터 도면이다.
도 4a 내지 도 4c는 도 3a와는 약간 다른 계수 블록, 및 본 발명의 특징에 따라 블록에 대해 선택된 그의 연관된 트리 계층 연산을 도시하는 계수 데이터 도면이다.
도 5a 내지 도 5e는 옥타브 밴드 파티셔닝 및 연관된 설계 트리를 나타내는 4×4 계수 블록을 도시하는 도면이며, 스퀘어, L형으로의 블록 파티셔닝의 4 레벨, 및 절반 사이즈의 스퀘어 등으로의 서브-파티셔닝을 도시한다.
도 6은 대칭 스펙트럼 진폭을 나타내는 가상의 스펙트럼 형태를 도시하는 그래프이다.
도 7은 수평 바이어스를 갖는 블록들의 스펙트럼을 도시하는 그래프이다.
도 8은 본 발명의 특징에 따른 수평 및 수직 스펙트럼에 대한 L형을 도시하는 블록 파티셔닝 도면이다.
도 9는 본 발명의 특징에 따른 스케일링 매트릭스의 적용에 응답하는 수평 파티셔닝을 도시하는 블록 파티셔닝 도면이다.
도 10은 본 발명의 특징에 따른 스케일링 후의 수평 블록들의 스펙트럼을 도시하는 그래프이다.
도 11은 본 발명의 특징에 따라 블록을 수평 패턴과 수직 패턴으로 분류하기 위한 DCT 트리의 사용을 도시하는 블록 파티셔닝 도면이다.
도 12의 (a) 내지 도 12의 (d)는 본 발명의 특징에 따라 대각선 패턴이 수평 패턴으로 회전되고 전단되는 방향성 DCT를 도시하는 블록 파티셔닝 도면이다.
도 13은 본 발명의 특징에 따라 방향성 DCT에 대한 주파수 위치를 찾기 위한 위치결정 및 스케일링의 계수 위치 도면이다.
도 14는 본 발명의 특징에 따른 스케일링 전의 방향성 DCT 계수들의 위치를 도시하는 그래프이다.
도 15는 본 발명의 특징에 따라 주파수 도메인에 맵핑된 제1 예의 DCT 계수들을 도시하는 그래프이다.
도 16은 본 발명의 특징에 따른 수직 스케일링 후 주파수 도메인에 맵핑된 제1 예의 DCT 계수들을 도시하는 그래프이다.
도 17은 본 발명의 특징에 따라 계수들을 L형으로 파티셔닝하는 것을 도시하는 제1 예의 블록 파티셔닝 도면이다.
도 18은 도 17에 맵핑된 DCT 계수들에 대해 생성된 트리 구조를 도시하는 예시적인 계수 트리 데이터 도면이다.
도 19는 본 발명의 특징에 따라 반복적으로 파티셔닝되는 트리 구조를 도시하는 계수 트리 데이터 도면이다.
도 20은 본 발명의 특징에 따라 리프들을 연결하는 것을 도시하는 계수 트리 데이터 도면이다.
도 21은 본 발명의 특징에 따라 불필요한 노드들을 제거하는 것을 도시하는 계수 트리 데이터 도면이다.
도 22는 본 발명의 특징에 따라 사용된 9-모드 DCT에 사용되는 8 방향을 도시하는 그래프이다.
도 23은 본 발명의 실시예에 따른 적응적 엔트로피 인코딩 및 디코딩을 수행하기 위해 구성된 컴퓨터 프로세서 및 메모리를 도시하는 인코더-디코더 시스템의 블록도이다.
도 24는 본 발명의 특징에 따라 방향성을 갖는 일반화된 계층 트리들에 있어서의 세트 파티셔닝에 사용하기 위한 설계 트리들을 생성하는 방법의 흐름도이다.
예시적인 목적의 도면을 더 구체적으로 참조하면, 본 발명은 도 2a 내지 도 24에 개략적으로 도시된 장치에서 실시된다. 본 명세서에 개시된 기본적인 개념으로부터 벗어나지 않으면서, 장치는 구성에 있어서 그리고 부품들의 상세에 있어서 변경될 수 있고, 방법은 구체적인 단계들 및 시퀀스에 있어서 변경될 수 있다는 것을 이해할 것이다.
1. 서론
방향성에 기초한 코딩 트리의 적응화는, 2010년 4월 13일자로 출원된 본 출원인의 U.S. 특허 출원 번호 제12/758,981호에 개시되고 그 전체 내용이 본 명세서에 참조로 포괄된 적응적 엔트로피 인코딩 및 디코딩 장치 및 방법에 사용하기 위한 것으로 교시되고, 화상 및 비디오의 인코딩 및 디코딩을 위해 일반화된 계층 트리 내에서의 세트 파티셔닝(SPRIGHT)을 사용한다. 본 발명은 SPRIGHT 기반의 비디오 코딩 장치 또는 방법에 의해 선택될 수 있는 이 방향적으로 적응된 코딩 트리들을 생성하는 방법을 상세히 설명한다. SPRIGHT 기반의 코딩은 화상 블록들을 코딩할 때 본 발명에 따라 생성된 복수의 후보 코딩 트리 중에서 선택한다.
SPRIGHT 방법은, 화상 또는 비디오 프레임이 블록들로 분할되고, 변환을 사용하여 각각의 블록이 연관해제되고, 그의 변환 계수들이 양자화되고, 그런 다음 블록 내에서 발견된 기하학적 관계에 응답하여 복수의 후보들 중에서 코딩 트리가 선택되거나, 또는 더 구체적으로는, 블록 내의 계수들 간의 2차원(2D) 관계에 응답하여 선택이 행해진다. 그런 다음, 블록은 선택된 트리 구조에 응답하여 인코드된다. 따라서, 블록들의 범위에 걸쳐 코딩 트리가 고정되지 않고, 계수들의 그 블록 내에 존재하는 2D 관계에 응답하여 각 블록에 대해 선택되기 때문에, 코딩 효율이 대폭 향상될 수 있다.
코딩되는 화상 또는 비디오 프레임은 본 발명의 교시로부터 벗어나지 않으면서 다수의 상이한 방식들에 의해 블록들로 분할될 수 있다는 것을 알 것이다. 예를 들면, 블록들은 임의의 형태 또는 사이즈로 구성될 수 있으며, 그들이 반드시 스퀘어 또는 규칙적인 형태일 필요는 없다. 각 블록은 단수의 또는 복수의 컬러 성분들을 포함할 수 있다. 덜 바람직하게는, 블록이 전체 화상을 포함할 수 있다.
그런 다음, 화상 또는 비디오 프레임의 각 블록은 다음의 인코딩 단계들에 따라 처리된다. 블록 내의 값들은, 예를 들면 이산 코사인 변환(DCT)과 같은 변환, 또는 연관해제를 제공하는 다른 변환(예를 들면, 이산 웨이브렛 변환(discrete wavelet transforms(DWT))을 사용하여 연관해제된다. 본 발명의 일 실시예에 따라, 상이한 타입의 변환들이 동일한 화상 내에서 이용될 수 있다는 것을 알 것이다. 상이한 타입의 변환들이 사용되는 경우, 블록에 사용되는 변환 타입은, 각 블록에 대해 인코딩되는 하나 이상의 비트들의 상태에 응답하여 디코더에 시그널링하는 것 등에 의해, 디코더에 통신되어야 한다. 어떻게 변환이 행해지든 상관없이, 블록의 디코딩에 도움을 주기 위해 변환의 인덱스는 디코더에 통신되는 것이 바람직하다. 변환 전에, 블록 간 예측(inter-block prediction) 또는 프리-필터링(pre-filtehng)이 실행될 수 있다는 것이 이해될 것이지만, 필수적인 것은 아니다.
그런 다음 블록 내의 변환 계수들이 양자화된다. 양자화 단계는 소정의 양자화 스레숄드 미만인 계수들을 모두 제로로 양자화한다는 것을 알 것이다.
그런 다음, 각 블록에 대해 복수의 후보 트리 구조들(코딩 모드들) 중에서 코딩 트리 구조가 선택되는 것이 바람직하다. 트리 구조는, 각각의 블록 내의 계수들 간의 (예를 들면, 2차원적인) 기하학적 관계에 응답하여 복수의 코딩 트리의 세트 중에서 선택될 수 있고, 그런 다음 각 블록은 선택된 트리 구조를 사용하여 인코딩된다. 이 복수의 코딩 트리는 본 발명의 방법들에 따라 미리 정의되는 것이 바람직하다. 화상 블록의 코딩에 이용되는 트리 구조는 모든 주어진 블록들에 대해 고정되지 않고, 코딩되는 특정 블록의 기하학적 특징들에 기초하여 선택됨으로써, 코딩 효율이 대폭 향상될 수 있다는 것을 이해할 것이다. 본 발명의 바람직한 양태에 있어서, 트리 구조는, 기하학적 특징들을 분류하는 경우 방향성에 응답하여 선택된다. 선택된 트리에 관한 정보는, 디코더에 시그널링되어(예를 들면, 인덱스로), 디코더는, 블록이 원래 인코딩될 때 선택되었던 트리 구조가 어떤 것인지를 판별할 수 있고, 따라서 인코드된 화상 내의 트리 기반 데이터를 적당히 디코딩할 수 있다.
사용된 변환과 선택된 트리 구조 사이의 관계가 전형적으로 존재한다는 것을 알 것이다. 따라서, 많은 실시예들에 있어서, 인코더는 (변환, 트리) 쌍을 나타내는 하나의 인덱스를 송신할 것이며, 이것은 (변환, 트리)가 공동으로 최적화되는 것을 가능하게 해준다.
본 발명은 SPRIGHT 인코딩에 사용하기 위한 복수의 후보 코딩 트리들의 생성을 제공한다.
2. SPRIGHT 의 트리 구조
도 2a 내지 도 2c는 변환된 2×2 블록 및 복수의 코딩 트리 구조를 도시하며, 이들은 예시적인 것으로 제한적인 것이 아니다. 본 발명은 본 발명의 교시를 벗어나지 않으면서 임의의 사이즈의 블록에 적용될 수 있다는 것을 이해할 것이다.
도 2a는 편의상, 계수 A 내지 D를 갖는 소형의 2×2 변환된 블록(10)을 도시한다. 전형적으로, 블록은 임의의 형태 및 사이즈로 구성될 수 있지만, 전형적으로, 블록 사이즈는 4×4, 8×8, 16×16, 32×32 등으로 다양하다.
본 발명에 있어서, 각 트리는 인코딩 및 디코딩을 용이하게 하기 위한 데이터 구조로 여겨지고, 일반적으로 코딩 모드를 나타낸다. 각 코딩 트리는 비-리프 노드들(non-leaf nodes)(비-말단 노드들)로부터 연결된 리프 노드들(leaf nodes)(말단 노드들)로 정의된다. 개개의 리프 노드는 블록으로부터의 계수를 나타내고, 각 비-리프 노드는 계수들의 그룹을 나타내고 더 구체적으로는 그의 자손들 모두의 세트를 나타낸다. 루트로서 알려지는 비-리프 노드는 주어진 블록에 대한 모든 계수들의 세트를 포함한다.
도 2b 및 도 2c는 도 2a에 도시된 변환 블록을 위한 2개의 가능한 트리 구조를 예시한다. 도 2b의 트리(12)에 있어서, 단일 비-리프 노드(16)가 도시되는데, 이것은 트리의 루트이기도 하고, 그로부터 4개의 계수 A 내지 D(18a 내지 18d)가 직접 그룹핑된다. 도 2c의 트리(14)에 있어서, 비-리프 노드(20)가 도시되는데, 이것은 루트(20)이기도 하고, 그로부터 리프 노드 A(24a) 및 다른 비-리프 노드(22)가 연관되며, 이 비-리프 노드는 3개의 리프 노드 B, C, D(24b, 24c, 24d)를 연관시킨다. 따라서, 도 2b에 있어서, 모든 계수들은 한번에 함께 그룹핑되는데 반해, 도 2c에 있어서, 계수들 B 내지 D는 최하위 레벨에서 함께 그룹핑된다.
3. 코딩 트리를 사용한 SPRIGHT 인코딩
다음의 예들은 SPRIGHT 인코딩의 논-임베디드 버전을 사용하는 인코딩을 고려한다. 코딩 트리의 너비 우선 탐색(breadth first traversal(BFT))이 바람직하게 행해지고, 노드의 타입 및 계수 값에 응답하여 출력들이 제어된다. 현재의 노드가 리프이면, 계수의 값이 출력된다. 계수값은 바이너리가 아닌 것이 바람직하고, 예를 들어 산술 코딩에 의해 코딩될 수 있다는 것을 알 것이다. 비-리프 노드들은 하나 이상의 리프 노드를 포함하고, 예를 들면 적어도 하나의 자손 리프가 논-제로 계수를 가지면 1로 마크되거나, 또는 계수들의 대응하는 세트가 모두 제로이면 0으로 마크됨으로써, 모든 자손 노드들이 스킵(skip)된다.
자손 노드들의 "스킵"은, 이 노드들이 인코딩된 출력 비트 스트림으로 명백하게 인코딩되지 않는다는 것을 의미하며, 따라서 이 제로 계수들에 대한 코딩 공간이 절감된다. 비록 1과 0 값들이 비-리프 노드 값들에 대한 설명의 편의상 사용되지만, 비-리프 노드에 대해 논-제로 자손이 존재하는지 여부를 나타내기 위한 임의의 소망의 값들이 사용될 수 있다.
도 3a 내지 도 3c 및 도 4a 내지 도 4d는 유사한 기하학적 특징을 갖는 2×2 블록들을 인코딩하는 것을 도시한다. 제한적인 의미에서가 아니라 예시적으로, 비-리프 노드들에 있어서의 후계(descendency)는 바이너리로 표현되며, "1"은 적어도 하나의 브렌치가 논-제로 계수를 갖는다는 것을 나타내고, "0"은 브렌치들 중 어느 것도 논-제로 계수들을 갖지 않는다는 것을 나타낸다. 따라서, 이 실시예에 있어서, 비-리프 노드의 후계는 비-리프 노드당 단일 비트를 코딩하는 것을 필요로 하고, 따라서 비트 예산을 크게 추가시키지 않는다.
도 3a는 4개의 계수들 5, 0, 0, 0을 갖는 블록(30)을 도시한다. 도 3b는 단일 비-리프 노드(36), 및 단일 레벨(39)의 4개의 리프 노드(38a 내지 38d)를 갖는 블록(30)에 대한 제1 인코딩(32)의 선택을 도시한다. 도 3b의 코딩의 출력은 5개의 값 1, 5, 0, 0, 0의 시퀀스를 생성한다. 이 코딩과 대조적으로, 도 3c에 도시된 코딩은 특별한 2-레벨 트리 구조를 사용한다. 도 3c의 트리(34)에 있어서, 루트 노드(40)는, 예를 들면, 값 5의 계수를 포함하는 단일 리프 노드(44a), 및 그룹(46) 내의 3개의 리프 노드(44b, 44c, 44d)를 포함하는 제로 노드들을 클러스터링하는 비-리프 노드(42)를 갖는다. 이 리프 노드들은 모두 제로이기 때문에, 그들은 스킵될 수 있어서, 각 루트(42)는 0으로 코딩된다. 이 코딩에 응답하여, 이 코딩 시퀀스의 출력은 1, 5, 0이 되고, 이것은 도 3b에서 사용된 코딩보다 당연히 짧다. 소형의 2×2 블록 사이즈는 예시적으로 도시된 것이고, 더 큰 블록 크기가 더 높은 레벨의 코딩 효율 증가를 제공할 수 있다는 것을 이해할 것이다. 또한, 비록 계수들이 단일 비트 정수들로서 예시적으로 도시되지만, 실제 계수들은 훨씬 더 큰 표현의 비트 공간을 필요로 한다는 것을 알 것이다.
그러나, 도 4a의 블록에 도시된 바와 같이, 계수들 중 하나의 위치가 이동되어, 블럭 내의 계수들 간의 관계가 약간 다르다면, 트리 구조에 대한 코딩 효율은 급격하게 변동된다. 도 4a는 4개의 계수 0, 0, 5, 0을 갖는 블록(50)을 도시한다. 도 4b는, 단일 비-리프 노드(56), 및 단일 레벨(60)의 4개의 계수(58a 내지 58d)를 갖는 제1 선택된 코딩 트리 구조(52)에 응답하는 인코딩을 도시한다. 이 코딩의 출력은 5개의 값 1, 0, 0, 5, 0의 시퀀스를 생성한다. 도 4c에 있어서, 리프(66a)(0 계수) 및 제1 레벨(70)의 비-리프(64)를 갖는 루트(62), 및 제2 레벨(68)의 리프들(66b(0), 66c(5), 및 66d(0))을 갖는 상이한 코딩 트리 구조(54)가 선택된다. 리프(66c)의 계수의 논-제로 값에 응답하여, 계수들의 그룹은 에러를 도입하지 않고는 스킵될 수 없고, 비-리프(64)는 그의 리프들이 코딩에 포함되어야 한다는 것을 나타내는 1로 코딩된다. 이 트리를 사용하는 코딩은 6개 출력 1, 0, 1, 0, 5, 0을 생성하고, 도 4b에 의해 표현된 것보다 덜 효율적이다.
전술한 논의로부터, 블록 내의 기하학적인 관계에 맞지 않는 코딩 트리 구조의 선택은 비효율적인 블록 코딩을 초래한다는 것이 명백하다. 그러므로, 본 발명에 따른 SPRIGHT 코딩은, 그 블록의 효율적인 코딩을 확보하는 방향으로 임의의 주어진 블록에 대한 다수의 후보 코딩 트리 중에서 코딩 트리 구조의 적당한 선택과, 그 다양한 트리들의 생성을 제공하는 것에 관한 것임을 알 것이다. 본 발명은 트리들의 적응화를 제공하여, 복수의 후보 코딩 트리를 제공하고, 이들 중에서, 코딩될 블록의 특성에 응답하여 SPRIGHT 인코딩 동안 코딩 트리가 선택된다.
4. 트리를 사용한 SPRIGHT 디코딩
SPRIGHT에 따라 화상 블록을 디코딩함에 있어서, 어느 트리 구조가 각 블록의 인코딩을 위해 사용되었는지에 관한 정보를 수신하는 것 등에 응답하여, 디코더는 복수의 후보 트리 구조 중에서 적당한 트리 구조를 선택해야 한다. SPRIGHT 디코딩의 일 특징에 있어서, 디코더는 인코딩 동안 사용된 트리 구조에 대한 인덱스를 수신한다. 일단 복수의 후보 코딩 트리들 중에서 적당한 트리가 선택되면, 예를 들면 트리의 너비 우선 탐색(BFT)을 사용해서, 인코딩 프로세스와 양립할 수 있는 기술을 사용하여, 디코딩 동안 트리가 탐색된다. 현재의 노드가 트리의 리프이면, 비트스트림으로부터 심볼이 디코딩되고, 디코딩된 심볼의 값은 대응하는 계수에 할당된다. 역으로, 현재의 노드가 리프가 아니면, 하나의 비트가 비트스트림으로부터 판독되고 연산이 행해지는데, 비트가 1이면, 처리를 계속하고, 0이면, 현재 노드의 모든 자손 노드들의 값들이 0으로 설정되고, 그들은 트리로부터 제거된다.
5. 제로 클러스터링
전술한 논의에서 알 수 있는 바와 같이, SPRIGHT 코딩 방법의 코딩 이득은 제로 클러스터링에 응답하여 대부분 유도되고, 변환 코딩으로부터 생성된 제로들은 각각의 비-리프 노드 내의 단일의 제로에 의해 표현되는 그룹으로 클러스터링된다. 역으로, 제로들이 논-제로들과 함께 파티션될 수밖에 없다면, 비트 절감이 달성되지 않는다.
변환 코딩은 통상 다수의 제로들을 생성하고, 이 제로들은 서로의 이웃들일 수 있다는 것을 잘 알 것이다. 이 계수들은, (1) 공간적 위치에 의해 이들이 동일한 DWT 서브 밴드 내의 이웃하는 계수들일 수 있거나, (2) 스펙트럼 위치에 의해 이들이 이웃하는 DCT 계수들일 수 있는 것 등을 포함하여, 다수의 상이한 방식으로 이웃들일 수 있다.
SPRIGHT 코딩은 블록 내의 계수들의 기하학적 관계에 기초하여 각 블록에 대한 특정 트리 구조를 선택함으로써 이러한 구별을 사용한다.
다음의 섹션들에서는, 코딩되는 블록에 대해 복수의 후보 코딩 트리 중에서 선택하는 SPRIGHT, 및 유사 코딩 방법들에 이용하기 위해 방향성에 기초하여 코딩 트리들을 적응화하기 위한 옥타브 밴드 파티셔닝(octave band partitioning)을 사용하는 것 등에 의해 코딩 스펙트럼 계수 위치의 예들을 설명한다.
6. 복수의 트리 타입들 중의 옥타브 밴드 파티셔닝 기반의 트리들
SPRIGHT에 있어서 특정 기하학적 패턴에 최적인 트리들을 선택하는 것에 응답하여, 이들 특정 블록들에 대한 코딩 효율은 상당히 향상된다. 본 발명은 코딩 트리들을 적응화하여 복수의 코딩 트리를 제공하고, 이중에서, 인코딩되는 화상 블록의 방향성 특성에 응답하여, SPRIGHT에 의해 트리가 선택될 수 있다. 예를 들면, 비-방향성 코딩 트리는, 블록의 기하학적 구조에 응답하여, 수평 패턴, 수직 패턴, 및 대각선 패턴 등의 다른 패턴들을 포함한, 방향성 화상 블록들과의 이용을 위해 적응된다. 각각의 블록 패턴에 대해 상이한 코딩 트리가 사용된다.
옥타브 밴드 파티셔닝의 양태들이, SPRIGHT에 따른 화상 코딩을 수행하는 경우 선택될 수 있는 상이한 방향성 패턴들과의 사용을 위한 복수의 트리의 세트를 구축하도록 기술되고 적응된다.
도 5a 내지 도 5e는 트리들에 기초한 옥타브 밴드 파티셔닝을, 코딩되는 블록의 기하학적 구조에 응답하여 SPRIGHT 하에서 코딩 트리가 선택될 수 있는 복수의 코딩 트리의 생성을 위해 적응화하는 실시예를 도시한다.
옥타브 밴드 파티셔닝에 있어서, 루트(즉, 전체 블록)는 하나의 소형 스퀘어, 및 하나의 대형 L형 영역으로 파티션된다. 기존의 실시예들에 있어서, 소형 스퀘어의 사이즈는 2×2이고, 본 발명의 본 실시예에 사용되는 바람직한 사이즈는 1×1 스퀘어(DC 만)이다. 본 발명은, 옥타브 밴드 파티셔닝을, 방향성 성분을 갖는 화상 블록들의 SPRIGHT 인코딩에 이용하기 위한 복수의 코딩 트리를 생성하기 위해 적응화한다.
도 5a는 DCT가 소형 스퀘어와 대형 L형으로 파티션된 후 루트(전체 블록)를 도시한다.
도 5b는 L형이 3개의 스퀘어와 다른 한 소형의 L형으로 반복적으로 파티션되는 것을 도시한다.
도 5c는 도면에 도시된 바와 같이, L이 파티션될 때마다, 그의 자식 스퀘어들의 사이즈가 2배로 되는 것을 도시한다.
도 5d는 각 비-리프 스퀘어를 4개의 절반 사이즈의 스퀘어로 반복적으로 파티션하는 것을 도시한다.
도 5e는 도 5a 내지 도 5d에 설명된 옥타브 밴드 파티셔닝 방법과 연관된 설계 트리를 도시한다. 비-리프 노드들은 그들의 타입에 관해 "루트", "L"(L형), 또는 "S"(스퀘어) 중 어느 하나로서 마크된다는 것을 유의한다.
SPRIGHT는 일반적 트리 기반의 엔트로피 코딩 방법을 제공하며, 이 방법은 임의의 소정의 트리 구조들을 사용하기 위해 구성되고, 인코딩되는 블록의 타입에 적합하다면(즉, 예를 들면, DCT와 같은 특정 변환에 효율적이라고 입증된다면), 적응적 옥타브 밴드 파티셔닝 기술에 따라 생성되는 등의 복수의 후보 코딩 트리 구조 중에서 트리 구조를 선택할 수 있다. 이와 대조적으로, 본 발명과는 달리 원래의 옥타브 밴드 파티셔닝의 실시들을 위해 사용된 코딩 트리 구조들은 고정되어, 동일한(고정된) 코딩 트리 구조를 사용하여 모든 블록들의 엔트로피 코딩을 행한다.
본 발명의 이러한 양태에 있어서, 옥타브 밴드 파티셔닝 기술은 복수의 코딩 트리를 생성하도록 일반화되고, 복수의 코딩 트리 중에서, 인코딩 동안 계수 블록들의 방향성에 응답하여 선택이 행해질 수 있다. 이 일반화에 응답하여, SPRIGHT는 코딩 효율을 향상시키기 위해 복수의 사전 설계된 후보들 중에서 최선의 트리를 선택할 수 있다.
전술한 바와 같이, SPRIGHT는 계수들의 "제로 클러스터링"을 통해 비트들을 절감한다. SPRIGHT 방법에 있어서, 모두 제로 계수들을 포함하는 자손 리프들을 갖는 비-리프 노드들의 개수를 최대화하여, 이에 따라 코딩될 필요가 없도록 트리가 구성되는 것이 바람직하다. 선택된 코딩 트리 구조에 의해 코딩된 소정의 블록에 제로들의 상당한 클러스터링이 없는 결과로 되면, SPRIGHT 방법은 덜 효율적일 것이다. 그러나, 코딩될 블록의 기학학적 구조에 적합한 트리를 적당히 선택함으로써, 전형적으로 상당한 정도의 클러스터링이 발생하여 SPRIGHT가 향상된 코딩 효율을 제공하도록 해준다.
임베디드 SPRIGHT 방법을 고려할 때, 인코딩은 비트 평면 기반이므로, 이에 의해 기준이 다소 다르다는 것을 알 것이다. 구체적으로, 임베디드 SPRIGHT 트리의 비-리프 노드들은, 그 자손들이 모두 작은 계수들만을 포함하는 것이 바람직하다. 이 계수들은 상위 비트 평면들에서 제로로 양자화되도록 충분히 작다는 것을 알 것이다.
SPRIGHT 코딩에 있어서의 이용을 위한 복수의 후보를 생성하기 위해, 변경된 옥타브 밴드 파티셔닝 트리들을 포함한, 옥타브 밴드 파티셔닝 트리들을 이용함으로써, 다음의 조건들 하에서 많은 이점을 제공한다. 옥타브 밴드 파티셔닝은, 변환 계수들이 원본(DC)으로부터는 멀 때 변환 계수들이 작은 경우들에 매우 적합하다. 그러므로, 특정 비트 평면에서, L형이 논-제로가 되면(또는 그것이 적어도 하나의 논-제로 계수를 포함하면), 논-제로 계수(들)이 더 소형의 L형에 있지 않을 확률이 높다. 이것이 맞다면, 제로는 더 소형의 L형의 모든 0들을 나타내기 위해 여전히 사용될 수 있다. 가정이 자주 맞더라도, 특히, 방향성 기하학적 패턴과 관련하여, 다수의 예외들이 있을 수 있고, 본 발명은 상이한 방향성 패턴들에 응답하여 상이한 트리들을 선택하도록 구성되기도 한다.
7. 3- 모드 DCT 에 기초한 설계 트리
본 발명의 양태에 따른 3-모드 DCT(Discrete Cosine Transform)를 사용함에 있어서, 화상 블록은 3개의 카테고리, 즉 비-방향성, 수평, 및 수직으로 분류된다. DCT 변환이 예로서 논의되지만, 다른 형태의 변환 및 방향성 변환이 본 발명의 교시를 벗어나지 않으면서 사용될 수 있다는 것을 알 것이다. 이 카테고리들 각각에 대해 코딩 트리가 설계되는데, 이후의 섹션에서 후술하는 바와 같이, 원래의 옥타브 밴드 파티셔닝 트리가 비-방향성의 경우에 이용되고, 수평 및 수직 경우들에 대해 코딩 트리들이 설계된다.
화상 블록을 인코딩하는 처리에 있어서, 2D-DCT가 먼저 블록에 적용된다. 그런 다음, 코딩을 수행하기에 가장 적당한(예를 들면, 인코딩된 사이즈를 최소로 하기 위한) 트리가 어느 것인지를 결정하고, 그런 다음 코딩이 수행되고, 디코더에 의한 사용을 위해 이후 정보가 생성되어, 트리 인덱스뿐만 아니라 코딩된 비트들이 디코더에 시그널링된다.
8. 원래의 옥타브 밴드 파티셔닝의 비효율성
2D-DCT를 수행한 후, 각각의 계수는 2D 주파수에 대응하고, 그들의 위치들은 주파수 도메인에 마크될 수 있다는 것을 이해할 것이다.
도 6은 옥타브 밴드 파티셔닝 기술의 기본적인 가정인 대칭 진폭 스펙트럼을 도시한다.
도 7은 어떻게 그 옥타브 밴드 파티셔닝 가정이 방향성 패턴들에 대해 유효하지 않은지를 나타내는 수평 블록에 대한 스펙트럼의 예를 도시한다. 스펙트럼이 수직으로 "약해지고"(즉, 균일한 파워 스펙트럼 밀도), 계수 진폭이 ωy에 대해 느리게 감소한다.
도 8은 옥타브 밴드 파티셔닝 기술에 따른 블록 파티셔닝을 도시하고, 어떤 큰 계수들(중앙 바로 아래, 좌측 멀리에 있는 스펙클링된 것)이 L형으로 "누설"될 수 있고, 따라서 추가의 파티셔닝 및 효율의 손실이 불가피한 것을 도시한다.
이 파티셔닝 문제들은 수평 또는 수직을 포함한, 특수한 기하학적 경향을 갖는 임의의 블록들에 대해 일어날 수 있다는 것을 알 것이다(수직의 경우에, 유사하게, 솔리드 도트가 중앙의 바로 우측 상부의 큰 계수일 수 있음).
9. 옥타브 밴드 파티셔닝 전의 주파수 스케일링
비효율적인 코딩을 초래하는, 전술한 블록 파티셔닝 문제들을 극복하기 위해, 본 발명의 실시예들은, 옥타브 밴드 파티셔닝을 적용하기 전에 주파수가 스케일링되는 변형된 옥타브 밴드 파티셔닝을 수행한다.
ω=[ωxy]T를 2D 공간 주파수라고 한다. 스케일링 연산이 ω=Sω로서 수행되고, 여기서 S=diag(sx,sy)는 스케일링 매트릭스이다. 스케일링 팩터 sx 및 sy는, 스케일링 후, 옥타브 밴드 파티셔닝을 사용하여 스펙트럼이 더 용이하게 파티션되도록 선택된다. 이 스케일링은 옥타브 밴드 파티셔닝 기술을, 코딩될 화상 블록의 방향성 특성에 기초하여 복수의 코딩 트리 중에서 하나의 코딩 트리를 선택하는 SPRIGHT에 매우 적합한 방향성 특성을 갖는 코딩 트리들을 생성하기 위해 적응화한다.
도 9는 수평 방향의 스케일링의 실시예를 도시하고, 원점까지의 수직 거리가 "압축"되거나 "스케일링"된다. 스케일링 전의 트리는 도면의 좌측에 도시된다. 스케일링 매트릭스는 도면의 중앙에 도시되며, 이것이 적용된 결과의 스케일링된 트리가 도면의 우측에 도시된다. 도시된 경우에 있어서, 스케일링 팩터는 3-모드 DCT에 대해 0.5(즉, sx=1, sy=0.5)가 되도록 선택된다. 스케일링 및 파티셔닝에 이어, 도면의 우측에 도시된 바와 같이, 스페클링된 도트는 루트를 향해 위로 이동하여, 솔리드 도트보다 루트로부터 거리면에서 더 상위 레벨에 있다.
도면에 있어서, 주파수 스케일링 후, 코딩 트리 구축은 옥타브 밴드 파티셔닝 알고리즘과 유사한 방식으로 수행될 수 있다는 것을 이해할 것이다. 특히, 구축은 소형 스퀘어 및 대형 L형으로 시작하고, L은 3개의 스퀘어들과 1개의 소형 L형으로 파티션된다. 스퀘어는 4개의 절반 사이즈의 스퀘어들로 파티션된다. 어떤 스퀘어들은 계수들이 결여될 수 있고(예를 들면, 빗금친 스퀘어), 트리로부터 제거될 수 있다는 것을 유의한다.
도 10은 스케일링 후의 블록 스펙트럼을 도시하고, 옥타브 밴드 파티셔닝에 더 잘 따르는 형태를 갖는 것으로 보여진다.
10. 5- 모드 DCT 에 기초한 설계 트리
5-모드 DCT에 있어서, 2개의 대각선 모드가 3-모드 DCT 트리 구축에 추가된다. 특히, 대각선 +45° 및 대각선 -45°가 부가된다. 2D-DCT는 ±45°패턴을 구별하지 않는다는 것을 유의한다. ±45°패턴으로부터 DCT 도메인에서 유사한 스펙트럼이 생성된다. 이 문제를 극복하기 위한 한가지 가능성은, 단일 모드에서 2개의 패턴을 처리하는 것이다. 그러나, 2D-DCT는 ±45°에서 화상 블록들을 연관해제하기 위해 양호한 선택은 아니다. 본 발명은 방향성 DCT, 및 ±45°패턴을 취급할 수 있는 신규의 트리들을 이용함으로써 이 문제를 극복한다.
제한적인 의미가 아니라 예시적으로, 이상에서 논의된 패턴들은 다음과 같이 취급될 수 있다.
비-방향성 통상의 2D-DCT + 원래 옥타브 밴드 파티셔닝 트리
수평 통상의 2D-DCT + 수평 트리
수직 통상의 2D-DCT + 수직 트리
대각선 +45° 방향성 DCT + +45°에 대한 신규 트리
대각선 -45° 방향성 DCT + -45°에 대한 신규 트리
본 발명의 일 실시예에 있어서, 인코더는 5개 중에서 1개의 모드를 선택하고, 블록을 인코딩하고, 코딩된 비트스트림과 모드 인덱스를 둘 다 디코더에 시그널링한다. 코딩된 비트스트림은 SPRIGHT 디코딩을 이용하여 디코딩된다는 것을 이해할 것이다.
11. 5- 모드 DCT 의 수평/수직 트리에 기초한 설계 트리
3-모드 DCT에서와 같은 시도는 수평 및 수직 패턴들을 위한 트리들을 생성하기 위해 사용된다. 그러나, 5-모드 DCT에 있어서, 선택될 더 많은 모드들이 있고, 수평 또는 수직 패턴으로 분류되는 블록들은 더욱 비스듬한 스펙트럼을 받게 된다.
이에 응답하여, 본 발명의 적어도 일 실시예는 수평 및/또는 수직 코딩 패턴들에 있어서, 압축을 1/2 이상으로, 예를 들면, 스케일링 팩터 1/4 등으로 조정한다.
도 11은 4×4 블록들을 갖는 수평의 경우에 대한 파티셔닝의 예를 도시한다. 도 11에서 스펙클링된 것으로 도시된 계수는 5-모드 DCT에 있어서 솔리드로서 도시된 계수보다 2개 더 높은 레벨이다.
12. 방향성 DCT 에 기초한 설계 트리
도 12의 (a) 내지 도 12의 (d)는 다수의 스테이지들을 갖는 방향성 DCT의 형태를 사용하는 것을 도시한다. 도 12의 (a)의 대각선 패턴이 도 12의 (b)에 도시된 수평 패턴으로 변환되는 회전이 도시되어 있다. 그런 다음 전단이 행해져서 도 12의 (c)와 같이 된다. 그런 다음 수평 및 수직 라인을 따라 DCT가 수행되어 도 12의 (d)와 같이 된다.
방향성 DCT 계수들에 대해 옥타브 밴드 파티셔닝을 적용함에 있어서, 각 계수에 대해 주파수 위치가 발견되어야 한다는 것을 이해할 것이다.
13. 방향성 DCT 계수들의 위치결정 및 스케일링
발명의 일 양태에 있어서, 체험적(heuristic) 시도가 방향성 DCT 계수들에 대한 주파수 위치들을 찾기 위해 행해진다. 수평 주파수(ωx)에 대하여 컬럼들의 총 수는 회전 및 전단 후에, 예를 들면 N으로서 카운트된다. 그리고, n-번째 컬럼(n=0, ..., N-1)의 계수들에 대하여, ωx=n*π/N이다. 수직 주파수(ωy)에 대하여, 현재 컬럼에서 카운트된 계수들의 총 수는, 예를 들면, M이다. 그리고, 컬럼 내의 m-번째 계수(m=0, ...., M-1)에 대하여, ωy=m*π/M이다.
마찬가지로, ωy가 스케일링되어 비스듬한 스펙트럼을 보상한다. 본 발명의 바람직한 양태에 따르면, 블록은 수평 패턴으로 회전되어, 스케일링되는 것은 ωy이다. 5 모드 DCT를 사용할 때, 스케일링 팩터는 1/4이 되도록 바람직하게 선택된다(수평 및 수직 패턴과 동일함).
도 13은 스케일링되고 회전된 계수 패턴을 도시하고, 하단부를 따라 ωx의 레벨들 ωx={0, π/4, 2π/4, 및 3π/4}를 나타내고, ωy가 제1 레벨(최좌측)에서 ωy={0, π/7, ..., 6π/7}로서 스케일링되고, 제2 레벨(좌측에서 2번째)에서 ωy={0, π/5, ..., 4π/5}로서 스케일링된 것을 나타낸다.
도 14는 스케일링 전의 방향성 DCT 계수들의 위치들을 도시한다.
14. SPRIGHT 코딩을 위한 트리의 구축
방향성 DCT에 있어서, 계수들의 위치들은 더 이상 그리드에 있지 않다. 그러나, 본 발명에 따르면, 옥타브 밴드 파티셔닝 기술이, 임의의 위치결정된 계수들을 적당히 취급하는 것에 관해 더 많은 일반성을 제공하기 위해 적응된다.
루트(전체 블록)는 1개의 소형 스퀘어와 1개의 대형 L형 부분으로 파티션된다. 스퀘어는 로우-패스 주파수 대역을 포괄하며, 예를 들면, 다음과 같이 주어진다.
|ωx|<π/2K 및 |ωy|<π/2K .
여기서, K는, 소형 스퀘어가 DC(또는 DWT에 대해서는 LL 서브밴드)만을 포함하고, 대형 L형 영역이 AC 계수들을 모두 포함하도록 선택된다.
루트를 파티션(K-1)한 후, L형 부분에 옥타브 밴드 파티셔닝이 적용되어, 3개의 스퀘어와 1개의 소형 L형을 생성한다. π/2K보다 큰 대역폭을 갖는 각 스퀘어는 4개의 소형 스퀘어로 파티션된다. "파티션"이란 용어를 사용함에 있어서, 원래의 주파수 대역과 파티션들 간에 패어런트-차일드 관계가 강화된다는 것도 이해할 것이다.
이전의 섹션들에 있어서, 코딩 트리들은 2K×2K 리프들을 갖는 것으로 기술되었고, 그 각각은 소형 스퀘어이며, 이것은 또한 주파수 대역 내의 모든 계수들을 포함하는 세트를 나타낸다. 그 계수들은 그 세트에 연결된다. 어떤 세트들은 비어 있을 것이고, 대응하는 노드들이 제거될 수 있다는 것을 알 것이다. 세트가 1개의 차일드만을 갖는다면, 그것은 제거되고, 그 차일드는 그의 패어런트에 연결된다. 이 동작은, 각 비-리프 노드가 적어도 2개의 차일드 노드를 가질 때까지 반복된다.
도 15 내지 도 21은 본 발명의 실시예를 도시하며, 계수들을 코딩하기 위한 단계들을 도시한다. 도 15에 있어서, 계수들은 주파수 도메인에 맵핑되고, 도 16의 주파수 도메인에서 스케일링된다. 옥타브 밴드 파티셔닝은 도 17에 도시되고, 루트(즉, 전체 블록)는 1개의 소형 스퀘어와 1개의 대형 L형 영역으로 파티션된다. 코딩 트리가 도 18에서와 같이 구축되고, 도 19에서와 같이 반복적으로 파티션된다. 도 19에 있어서 첫번째 2개의 레벨은, 상단의 "버블(bubble)"에 도시된 바와 같이, 더 이상의 파티셔닝이 필요없는 최소의 사이즈이고, 하위 레벨은 하위의 2개의 "버블"로서 도시된 바와 같이, 최소 사이즈로 반복적으로 파티션되어야 하는 스퀘어들을 도시한다. 또한, 도 20에 있어서, 설계 트리는 리프(계수)를 트리의 상위 2개의 층에 연결한 것을 도시한다. 그런 다음, 도 21에 도시된 바와 같이, 불필요한 노드들이 파티션된 블록 및 설계 트리로부터 제거되고, 수직 줄무늬(바아)를 갖는 블록들로 도시된다.
15. 9- 모드 DCT 에 기초한 설계 트리
도 22는 1개의 비-방향성 모드와 8개의 방향성 모드를 제공하는 본 발명에 따른 9-모드 DCT를 사용하는 것을 도시한다. 9-모드 DCT에 있어서, 다음과 같은 조합들이 제시된다.
비-방향성 통상의 2D-DCT + 원래 옥타브 밴드 파티셔닝 트리
수평 통상의 2D-DCT + 수평 트리
수직 통상의 2D-DCT + 수직 트리
다른 방향들 방향성 DCT + 신규 트리
SPRIGHT 인코딩 동안, 인코더는 본 발명에 따라 생성된 9개의 모드 중에서 1개를 선택하고, 블록을 인코딩하고, 코딩된 비트스트림과 모드 인덱스 둘 다를 디코더에 시그널링한다. 방향성 DCT 계수들의 위치 결정 및 코딩 트리 구축은 5-모드 DCT에서 정의된 것과 마찬가지이다. 각 계수의 주파수는 3-모드 DCT 또는 5-모드 DCT로서 스케일링되고, 스케일링 팩터는 9-모드 DCT에서 1/8로 변경된다.
16. 모드 선택
주어진 블록에 대해, 효율적인 코딩을 제공하는 복수의 모드가 있을 수 있다. 본 발명은 바람직하게 SPRIGHT 하에서 소정의 모드를 선택할 때 어떻게 결정이 이루어지는지에 관해 선택할 수 있게 해준다.
(1) 프리-인코딩
이 경우의 모드 결정은, 예를 들면, 블록에서 검출된 특징(예를 들면, 기하학적 양태) 등에 기초하여, 코딩 전에 이루어진다. 프리-인코딩은 포스트-인코딩보다 계산 오버헤드가 훨씬 적게 필요하지만, 전형적으로 상당한 코딩 효율 이득을 제공하지는 않을 것이라는 것을 이해할 것이다. 제한적인 의미가 아니라 예시적으로, 프리-인코딩은 상이한 방향들에 있어서 평균 기울기들을 검출하는 것에 기초할 수 있다.
(2) 포스트-인코딩
모드 결정은 포스트-인코딩 결정으로서 행해질 수 있고, 인코더는 모든 가능한 모드들을 사용하여 화상 블록을 인코딩한다. 원래 것에 대해 재구축된 블록의 왜곡이 계산되고 최소 레이트-왜곡 손실을 얻는 모드가 선택된다. 포스트-인코딩은 테스트되는 가능한 모드들 중에서 가장 효율적인 것으로 인코딩이 행해지는 것을 보장한다.
17. SPRIGHT 장치 및 방법
코딩의 전통적인 시도는 엔트로피 코딩을 위해 단일 알고리즘을 사용하고, 이에 따라, 코딩될 블록의 기하학적인 구조에 기초하여 엔트로피 코딩 형태 및 그와 연관된 트리 구조를 선택하지 않는다. 통상적인 시도들은 고정된 엔트로피 코딩 방법에 의존하여 인코딩을 수행하고, 이에 따라 현재 블록을 인코딩하기 위해 단일의 고정된 트리를 사용하여 인코딩을 수행한다는 것을 알 것이다. 고정된 트리 인코딩 방법들은 매우 특수한 코딩 형태로부터 이익을 얻지 못하고, 그 방법들이 모든 블록들에 적용되어야 할 것이다. 그러나, SPRIGHT 코딩은 블록들의 특성에 응답하여 선택될 수 있는 복수의 엔트로피 코딩 모드를 제공한다. 본 발명은 블록 방향성에 기초한 것으로서 SPRIGHT의 복수의 코딩 트리 후보를 존재시키는 방법 및 장치를 제공한다.
도 23은 복수의 코딩 트리 중에서 코딩 트리를 선택하도록 구성된 인코더(136) 및 트리 구조를 디코딩하기 위한 디코더(142)에 기초한 SPRIGHT의 실시예(150)를 도시한다. 인코더(136)는 컴퓨터 프로세서(CPU)(152) 및 메모리(154)를 포함하는 것으로 도시된다. 이 프로세싱 컴포넌트들은 본 발명의 교시를 벗어나지 않고서, 단독으로, 또는 마이크로프로세서로서, 그리고/또는 임의의 소정의 레벨의 액셀러레이션 하드웨어로서 구현될 수 있다는 것을 알 것이다. 프로세서(152) 상에서 실행가능한 프로그래밍은 화상 소스(158)의 인코딩(156), 예측의 실행(160), 변환(162), 양자화(164), 트리 선택(166), 및 출력 인코딩된 화상 데이터(또는 신호)(170)로의 인코딩(168)을 수행한다. 트리 선택은 특히 블록 내의 계수들 간의 2차원적인 기하학적 관계에 응답하여 수행되며, 그 후에 블록은 선택된 트리를 사용하여 인코딩된다. 선택된 트리 구조의 사용은, 코딩을 행하기 위해 사용된 코딩 기술에 있어서 트리 구조가 고유한(고정된) 구현들에 비해 대폭 향상된 코딩 효율을 제공할 수 있다.
디코더(142)는 프로세서 엘리먼트(172) 및 메모리(174)로 유사하게 구현되고, 또한, 본 발명의 교시를 벗어나지 않고서, 임의의 소정의 프로세싱 컴포넌트들 및 디지털 액셀러레이션 하드웨어와의 조합을 포함할 수 있다. 프로그래밍의 실행에 응답하여, 디코딩 프로세서(176)가 실행되는데, 그 실행에 있어서는 신호(170)가 수신되고, 디코딩 블록(178)에 의해 디코딩되며, 디코딩 전에 트리 구조 선택(180)을 행한다. 그리고, 디코딩 블록(178)의 출력은 역변환(182)되어, 화상이 블록(184)에 따라 재구성되어, 최종 디코딩된 화상 출력(186)을 생성한다.
트리 선택 링크(188)는 인코딩 동안의 트리 선택과 디코딩 동안 사용된 트리 선택 사이에 도시되어, 선택된 트리 구조에 관한 정보가 디코더(142)에 통신되어 디코더가 인코딩되었던 방식으로 데이터를 디코딩하는 것을 보장하는 실시예를 나타낸다. 전형적으로, 선택된 트리 구조에 대한 정보는 디코더에 송신되는 인코딩된 신호 스트림의 소정의 비트들 내에 포괄될 것이다. 주어진 블록에 대한 트리 구조의 통신은 인코더로부터 디코더로 비트들로서 통신될 수 있거나, 또는 대안적으로 인코더로부터의 데이터가 트리 선택에 관해 디코더에 통지하는 방식으로 구성될 수 있거나, 또는 디코더는 인코딩과 양립할 수 있는 디코딩을 위해 사용하기 위한 트리 구조를 달리 결정할 수도 있다는 것을 이해할 것이다.
전술한 실시예에 있어서, 항상 디코더는 주어진 블록을 코딩하기 위해 사용된 트리 구조를 알고 있다. 예를 들어, 트리 구조들은 디코더의 엑시큐터블(executable) 내에 사전에 임베드되거나, 또는 세션의 초기에 인코더에 의해 통지된다.
디코딩될 때, 디코더는 우선 현재 노드가 리프인지 여부를 판별한 다음, 비-리프일 경우 비트스트림으로부터 BIT를 판독하거나, 또는 리프에 대한 스트림으로부터 심볼을 판독한다. 심볼은 그것이 어떻게 인코딩되었는지, 예를 들면, exp-Golomb 코드를 사용하여 인코딩되었는지에 따라, 하나 이상의 비트를 포함할 수 있다.
도 24는 방향성을 갖는 일반화된 계층 트리들에 있어서의 세트 파티셔닝에 사용하기 위한 설계 트리들을 생성하는 방법의 실시예를 도시한다. 옥타브 밴드 파티셔닝을 사용하여 비-방향성 코딩 트리가 생성된다(190). 옥타브 밴드 파티셔닝이 행해지기 전에 방향성 스케일링에 응답하여 수평 코딩 트리가 생성되고(192), 수직 코딩 트리(194)가 생성된다. 옵션적으로, 추가적인 방향들에 대한 코딩 트리들도 옥타브 밴드 파티셔닝 전에 수행되는 회전 및 스케일링에 응답하여 생성된다(196).
이에 따라, 본 발명은 SPRIGHT 코딩에 사용하기 위한 트리들을 구축하기 위한 각종 기술들을 포괄한다는 것을 이해할 것이다. 그 스킴들은 블록을 연관해제하고, 그에 따라 트리를 구축하기 위해 통상의 2D 변환 또는 방향성 변환을 사용하여 화상 블록들을 상이한 방향성 패턴들로 분류한다. 트리들은 옥타브 밴드 파티셔닝 알고리즘에 기초하고, 이 알고리즘은 방향성에 응답하여 본 방법으로 일반화된 것이다. 상이한 방향들 각각에 대해, 결과적인 (방향성) 변환 계수들의 위치들(2D 주파수)을 찾기 위한 방법이 도시된다. 많은 경우들에 있어서, 보다 효율적인 코딩을 제공하기 위해, 변환 계수들의 주파수는 스펙트럼의 셰이핑(shaping)를 위해 코딩 전에 스케일링된다. 스케일링 팩터는 바람직하게 방향들의 총 수에 의해 결정된다.
본 발명은 또한 임의의 주파수 위치결정이 행해진 변환 계수들을 취급하는 옥타브 밴드 파티셔닝 알고리즘을 일반화한다. 제시된 알고리즘의 이점은, 그것이 스펙트럼의 특성을 더 잘 포착할 수 있다는 것과, 그 결과로 얻어지는 트리들이 SPRIGHT를 사용하여 보다 효율적으로 제로들을 클러스터링할 수 있다는 것이다.
이상의 논의로부터, 본 발명은 하기에 기술된 것을 포함한, 다양한 방식으로 실시될 수 있다는 것을 이해할 것이다.
1. 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치로서, 화상 및/또는 비디오 프레임을 수신하여 처리하도록 구성된 컴퓨터, 및 상기 컴퓨터 상에서 실행가능한 프로그래밍으로서, 옥타브 밴드 파티셔닝을 사용하여 비-방향성 코딩 트리를 생성하고, 수평 또는 수직 방향의 주파수 성분들의 스케일링 및 수평 및 수직 방향에 적응된 복수의 후보 코딩 트리를 생성하기 위한 옥타브 밴드 파티셔닝에 응답하여 수평 및 수직 코딩 트리를 생성하기 위한 프로그래밍을 포함하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
2. 실시예 1에 있어서, 방향성 변환의 사용에 응답하여 상기 복수의 후보 코딩 트리 중에 대각선 코딩 트리를 생성하기 위해 상기 컴퓨터 상에서 실행가능한 프로그래밍을 더 포함하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
3. 실시예 1에 있어서, 상기 복수의 후보 코딩 트리는, 상기 복수의 후보 코딩 트리 중에서 선택된 트리 구조의 미리 결정된 탐색(traversal)에 응답하여 블록 인코딩을 제어하도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
4. 실시예 1에 있어서, 상기 복수의 후보 코딩 트리 내의 각 후보 코딩 트리는, 특정된 배열의 리프 및 비-리프 노드들로 구성되고, 하나 이상의 리프 노드는 각 비-리프 노드와 연관된 계수를 포함하도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
5. 실시예 1에 있어서, 상기 복수의 후보 코딩 트리 내의 각 후보 코딩 트리는, 각 비-리프 노드의 상태가 그의 자손 리프 노드들이 모두 제로 계수를 포함하는지 또는 모두 제로 계수를 포함하지는 않는지 여부를 나타내는 비트에 의해 표현되도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
6. 실시예 1에 있어서, 상기 복수의 후보 코딩 트리는, 상기 복수의 후보 코딩 트리 중에서 사용을 위한 코딩 트리를 선택하는 인코더 내에 보유되도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
7. 실시예 1에 있어서, 상기 옥타브 밴드 파티셔닝은 상기 블록들 내의 계수들을 스퀘어 및 L형으로 파티셔닝함으로써 수행되고, 상기 L형은 반복적으로 스퀘어로 파티셔닝되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
8. 실시예 1에 있어서, 상기 옥타브 밴드 파티셔닝은, 각 스퀘어가 하나의 계수만을 포함할 때 완료되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
9. 실시예 1에 있어서, 상기 복수의 후보 코딩 트리는, 변환이 수행된 후에 블록 내의 계수들을 코딩할 때 사용하기 위해 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
10. 실시예 9에 있어서, 상기 변환은 비-방향성 또는 방향성 변환을 포함하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
11. 실시예 1에 있어서, 비디오 프레임의 화상을 블록들로 파티셔닝하고, 인코더에서 블록에 대해 방향성 변환을 수행하고, 그 후 상기 복수의 후보 코딩 트리 중에서 코딩을 수행하기 위해 적합한 트리 구조가 선택되는 프로그래밍에 응답하여, 상기 복수의 후보 코딩 트리 중의 코딩 트리를 사용하여 화상 및/또는 비디오 프레임의 인코딩을 위해 구성된 프로그래밍을 더 포함하고, 각 계수에 대한 주파수 위치를 찾고, 각 계수의 주파수 위치에 기초하여 옥타브 밴드 파티셔닝을 수행하는 것에 응답하여 코딩 동안 코딩된 트리가 생성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
12. 실시예 11에 있어서, 상기 블록의 상기 계수를 비-방향성, 수평, 및 수직을 포함한 3개 이상의 카테고리로 분류하도록 구성된 프로그래밍을 더 포함하고, 상기 인코더는 상기 3개 이상의 카테고리 중에서 블록을 인코딩하기 위한 1개의 모드를 선택하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
13. 실시예 11에 있어서, 상기 블록의 상기 계수를 2개의 상이한 대각선 방향들을 포함한 카테고리들로 분류하도록 구성된 프로그래밍을 더 포함하고, 상기 인코더는 5개 중에서 블록을 인코딩하기 위한 1개의 모드를 선택하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
14. 실시예 11에 있어서, 상기 블록의 상기 계수를 2개의 상이한 대각선 방향들을 포함한 카테고리들로 분류하도록 구성된 프로그래밍을 더 포함하고, 상기 인코더는 5개의 가능한 모드 중에서 블록을 인코딩하기 위한 1개의 모드를 선택하고, 상기 대각선 방향들의 분류는 방향성 변환 연산에 응답하여 수행되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
15. 실시예 11에 있어서, 파티셔닝 전에 스케일링 매트릭스를 상기 블록에 적용하도록 구성된 프로그래밍을 더 포함하고, 상기 스케일링 매트릭스에 의한 스케일링은 상기 블록의 기하학적 관계에 응답하여 수행되고, 상기 스케일링은 수직적 또는 수평적 스케일링을 포함하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
16. 실시예 11에 있어서, 상기 인코딩은, 인코딩이 비트 평면 기반인 임베디드 인코딩을 포함하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
17. 실시예 1에 있어서, 상기 인코딩은, 인코딩이 비트 평면 기반인 임베디드 인코딩을 포함하고, 코딩 동안 생성된 트리들은, 선택된 트리 내의 비-리프 노드들에 있어서, 모든 자손들이 상위 비트 평면에서 제로로 양자화될 정도로 충분히 작은 계수들을 포함할 높은 가능성을 갖도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
18. 실시예 1에 있어서, 설계 트리를 사용하여 화상/비디오 인코더 내에서 적응적 엔트로피 인코딩을 수행하기 위해 구성된 프로그래밍을 더 포함하고, 상기 프로그래밍은, 화상 또는 비디오 프레임을 블록들로 분할하는 단계, 변환을 사용하여 각 블록을 연관해제하여 계수들의 블록들을 생성하는 단계, 변환 계수들을 양자화하는 단계, 화상에 대한 계수들의 블록들 각각 내의 기하학적 관계의 결정에 응답하여, 상기 복수의 후보 트리 중에서 적합한 트리 구조를 선택된 트리 구조로서 선택하는 단계, 및 상기 선택된 트리 구조와 옥타브 밴드 파티셔닝의 사용에 응답하여 제로 계수들의 클러스터링을 사용하여 계수들의 블록들 각각을 인코딩하는 단계를 포함하고, 개개의 리프 노드들은 제로 계수들만을 포함하는 것을 나타내는 상기 선택된 트리 구조의 비-리프 노드들을 가지는 것에 응답하여, 인코딩된 출력으로부터 제로 계수들의 일부가 제거되고, 자손 리프 노드들을 상기 장치에 의해 생성되는 인코딩된 출력 비트 스트림 내로 코딩하지 않는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
19. 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템으로서, 화상 및/또는 비디오를 인코딩하기 위해 구성된 프로세싱 엘리먼트와 메모리를 갖는 인코더, 및 상기 인코더의 프로세싱 엘리먼트 상에서 실행가능한 프로그래밍으로서, 화상 또는 비디오 프레임을 블록들로 분할하는 단계, 변환을 사용하여 각 블록을 연관해제하여 변환 계수들의 블록들을 생성하는 단계, 변환 계수들의 블록들 각각에 대해 변환 계수들을 양자화하는 단계, 화상 및/또는 비디오에 대한 계수들의 블록 내의 기하학적 관계의 결정에 응답하여 적어도 수평 방향 및 수직 방향을 포함하는 복수의 후보 트리의 세트 중에서 트리 구조를 선택된 트리 구조로서 선택하는 단계, 및 상기 선택된 트리 구조에 응답하여 제로 계수들의 클러스터링을 사용하여 블록을 인코딩하는 단계를 수행하는 프로그래밍을 포함하고, 개개의 리프 노드들은 제로 계수들만을 포함하는 것을 나타내는 상기 선택된 트리 구조의 비-리프 노드들을 가지는 것에 응답하여, 인코딩된 출력으로부터 제로 계수들의 일부가 제거되고, 이들 자손 리프 노드들을 디코더로 향하는 출력 비트 스트림 내로 코딩하지 않고, 상기 인코더로부터의 비트스트림을 화상 및/또는 비디오로 디코딩하기 위해 구성된 프로세싱 엘리먼트와 메모리를 갖는 디코더, 및 상기 디코더의 프로세싱 엘리먼트 상에서 실행가능한 프로그래밍으로서, 블록을 인코딩함에 있어서 상기 인코더에 의해 사용된 상기 선택된 트리 구조를 결정하는 단계, 선택된 트리 구조의 리프들을 계수들의 출력으로 디코딩하는 단계, 논-제로 브랜치들 없이 비-리프 노드들을 디코딩하는 것에 응답하여 출력 중에 제로 계수들을 출력하는 단계, 상기 출력의 양자화해제를 수행하는 단계, 상기 출력의 역변환을 수행하는 단계, 및 상기 출력의 수신에 응답하여 화상 신호를 재구성하는 단계를 수행하는 것에 응답하여 화상 또는 비디오 신호를 출력하는 프로그래밍을 포함하는, 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템.
20. 화상 및/또는 비디오 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법으로서, 옥타브 밴드 파티셔닝을 사용하여 비-방향성 코딩 트리를 생성하는 단계, 적어도 수평 방향 및 수직 방향에서의 주파수 성분들의 스케일링 및 적어도 수평 방향 및 수직 방향에 대해 적응된 복수의 후보 코딩 트리를 생성하기 위한 옥타브 밴드 파티셔닝에 응답하여 수평 및 수직 코딩 트리들을 생성하는 단계를 포함하는, 화상 및/또는 비디오 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법.
이상의 설명은 많은 세부 사항들을 포함하지만, 이들은 본 발명의 범위를 제한하는 것으로 여겨지지 않아야 하며, 본 발명의 단지 현재 바람직한 실시예들의 일부의 예들을 제공하는 것으로 이해되어야 한다. 그러므로, 본 발명의 범위는 당업자에게 자명하게 될 수 있는 다른 실시예들을 모두 포괄하고, 따라서 본 발명의 범위는 첨부된 청구항들 외의 다른 것에 의해서는 한정되지 않는다는 것을 이해할 것이고, 청구항들에 있어서, 단수의 엘리먼트는 명시적으로 그렇게 기재되지 않는 한 "하나 및 하나만"을 의미하고자 하는 것이 아니며, 오히려 "하나 이상"을 의미하고자 할 수 있다는 것을 이해할 것이다. 당업자들에게 알려진 전술한 바람직한 실시예의 엘리먼트들에 대한 구조적 및 기능적 등가물들은 모두 본 명세서에 참조되어 명시적으로 포괄되며, 본 청구항들에 의해 포괄하고자 한다. 또한, 장치 또는 방법은, 본 발명에 의해 해결하고자하는 각각의 그리고 모든 문제를 해결할 필요는 없고, 그것은 본 청구항들에 의해 포괄되는 것이다. 또한, 본 명세서에 개시된 엘리먼트, 컴포넌트, 또는 방법의 단계는, 청구항들에 그 엘리먼트, 컴포넌트, 또는 방법의 단계가 명시적으로 인용되는지의 여부에 상관없이, 공공에 헌정되도록 의도되지 않는다. 본 명세서에 있어서의 청구항의 엘리먼트는, 그 엘리먼트가 "수단(means for)"이란 문구를 사용하여 명시적으로 인용되지 않는 한, 법령 35 U.S.C. 112, 제6항에 의해 해석되지 않아야 한다.

Claims (20)

  1. 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치로서,
    화상 및 비디오 프레임 중 적어도 하나를 수신하여 처리하도록 구성된 컴퓨터 프로세서; 및
    상기 컴퓨터 프로세서에 연결된 메모리 장치를 포함하며,
    상기 메모리 장치는 상기 컴퓨터 프로세서 상에서 실행가능한 프로그래밍을 저장하며, 상기 프로그래밍은,
    옥타브 밴드 파티셔닝을 사용하여 비-방향성 코딩 트리를 생성하고,
    수평 또는 수직 방향의 스케일링 주파수 성분들 및 수평 및 수직 방향에 적응된 복수의 후보 코딩 트리를 생성하기 위한 옥타브 밴드 파티셔닝에 응답하여 수평 및 수직 코딩 트리를 생성하기 위한, 프로그래밍이며,
    상기 옥타브 밴드 파티셔닝은 블록 내의 계수들을 스퀘어 및 L형으로 파티셔닝함으로써 수행되고, 상기 L형은 반복적으로 스퀘어로 파티셔닝되는,
    인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  2. 제1항에 있어서,
    상기 메모리 장치는, 방향성 변환의 사용에 응답하여 상기 복수의 후보 코딩 트리 중에 대각선 코딩 트리를 생성하기 위해 상기 컴퓨터 프로세서 상에서 실행가능한 프로그래밍을 더 저장하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  3. 제1항에 있어서,
    상기 복수의 후보 코딩 트리는, 상기 복수의 후보 코딩 트리 중에서 선택된 트리 구조의 미리 결정된 탐색(traversal)에 응답하여 블록 인코딩을 제어하도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  4. 제1항에 있어서,
    상기 복수의 후보 코딩 트리 내의 각 후보 코딩 트리는, 특정된 배열의 리프 및 비-리프 노드들로 구성되고,
    하나 이상의 리프 노드는 각 비-리프 노드와 연관된 계수를 포함하도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  5. 제1항에 있어서,
    상기 복수의 후보 코딩 트리 내의 각 후보 코딩 트리는, 각 비-리프 노드의 상태가 그의 자손 리프 노드들이 모두 제로 계수를 포함하는지 또는 모두 제로 계수를 포함하지는 않는지 여부를 나타내는 비트에 의해 표현되도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  6. 제1항에 있어서,
    상기 복수의 후보 코딩 트리는, 상기 복수의 후보 코딩 트리 중에서 사용을 위한 코딩 트리를 선택하는 인코더 내에 보유되도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  7. 삭제
  8. 제1항에 있어서,
    상기 옥타브 밴드 파티셔닝은, 각 스퀘어가 하나의 계수만을 포함할 때 완료되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  9. 제1항에 있어서,
    상기 복수의 후보 코딩 트리는, 변환이 수행된 후에 블록 내의 계수들을 코딩할 때 사용하기 위해 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  10. 제9항에 있어서,
    상기 변환은 비-방향성 또는 방향성 변환을 포함하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  11. 제1항에 있어서,
    상기 메모리 장치는, 비디오 프레임의 화상을 블록들로 파티셔닝하고, 인코더에서 블록에 대해 방향성 변환을 수행하고, 그 후 상기 복수의 후보 코딩 트리 중에서 코딩을 수행할 트리 구조가 선택되는 프로그래밍에 응답하여, 상기 복수의 후보 코딩 트리 중의 코딩 트리를 사용하여 화상 및 비디오 프레임 중 적어도 하나의 인코딩을 위해 구성된 프로그래밍을 더 저장하고,
    각 계수에 대한 주파수 위치를 찾고, 각 계수의 주파수 위치에 기초하여 옥타브 밴드 파티셔닝을 수행하는 것에 응답하여 코딩 동안 코딩된 트리가 생성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  12. 제11항에 있어서,
    상기 메모리 장치는, 상기 블록의 상기 계수를 비-방향성, 수평 및 수직을 포함한 3개 이상의 카테고리로 분류하도록 구성된 프로그래밍을 더 저장하고, 상기 인코더는 상기 3개 이상의 카테고리 중에서 블록을 인코딩하기 위한 1개의 모드를 선택하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  13. 제11항에 있어서,
    상기 메모리 장치는, 상기 블록의 상기 계수를 2개의 상이한 대각선 방향들을 포함한 카테고리들로 분류하도록 구성된 프로그래밍을 더 저장하고, 상기 인코더는 5개 중에서 블록을 인코딩하기 위한 1개의 모드를 선택하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  14. 제11항에 있어서,
    상기 메모리 장치는, 상기 블록의 상기 계수를 2개의 상이한 대각선 방향들을 포함한 카테고리들로 분류하도록 구성된 프로그래밍을 더 저장하고, 상기 인코더는 5개의 가능한 모드 중에서 블록을 인코딩하기 위한 1개의 모드를 선택하고,
    상기 대각선 방향들의 분류는 방향성 변환 연산에 응답하여 수행되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  15. 제11항에 있어서,
    상기 메모리 장치는, 파티셔닝 전에 스케일링 매트릭스를 상기 블록에 적용하도록 구성된 프로그래밍을 더 저장하고,
    상기 스케일링 매트릭스에 의한 스케일링은 상기 블록의 기하학적 관계에 응답하여 수행되고,
    상기 스케일링은 수직 또는 수평 스케일링을 포함하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  16. 제11항에 있어서,
    상기 인코딩은, 인코딩이 비트 평면 기반인 임베디드 인코딩을 포함하는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  17. 제1항에 있어서,
    상기 인코딩은, 인코딩이 비트 평면 기반인 임베디드 인코딩을 포함하고,
    코딩 동안 생성된 트리들은, 선택된 트리 내의 비-리프 노드들에 있어서, 자손들이 상위 비트 평면에서 제로로 양자화될 계수들을 포함하도록 구성되는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  18. 제1항에 있어서,
    상기 메모리 장치는, 설계 트리를 사용하여 화상/비디오 인코더 내에서 적응적 엔트로피 인코딩을 수행하기 위해 구성된 프로그래밍을 더 저장하고, 상기 프로그래밍은,
    화상 또는 비디오 프레임을 블록들로 분할하는 단계,
    변환을 사용하여 각 블록을 연관해제(decorrelating)하여 계수들의 블록들을 생성하는 단계,
    변환 계수들을 양자화하는 단계,
    화상에 대한 계수들의 블록들 각각 내의 기하학적 관계의 결정에 응답하여, 상기 복수의 후보 트리 중에서 트리 구조를 선택하는 단계, 및
    선택된 트리 구조 및 옥타브 밴드 파티셔닝의 사용에 응답하여 제로 계수들의 클러스터링을 사용하여 계수들의 블록들 각각을 인코딩하는 단계를 포함하고,
    개개의 리프 노드들은 제로 계수들만을 포함하는 것을 나타내는 상기 선택된 트리 구조의 비-리프 노드들을 가지는 것에 응답하여, 인코딩된 출력으로부터 제로 계수들의 일부가 제거되고, 자손 리프 노드들을 상기 장치에 의해 생성되는 인코딩된 출력 비트 스트림 내로 코딩하지 않는, 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치.
  19. 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템으로서,
    화상 및 비디오 중 적어도 하나를 인코딩하기 위해 구성된 제1 프로세싱 엘리먼트와 제1 메모리 장치를 갖는 인코더; 및
    상기 인코더로부터의 비트스트림을 화상 및 비디오 중 적어도 하나의 디코딩을 위해 구성된 제2 프로세싱 엘리먼트와 제2 메모리 장치를 갖는 디코더를 포함하며,
    상기 제1 메모리 장치는, 상기 제1 프로세싱 엘리먼트에 연결되고, 상기 제1 프로세싱 엘리먼트 상에서 실행가능한 프로그래밍으로서,
    화상 또는 비디오 프레임을 블록들로 분할하는 단계, 변환을 사용하여 각 블록을 연관해제하여 변환 계수들의 블록들을 생성하는 단계, 변환 계수들의 블록들 각각에 대해 변환 계수들을 양자화하는 단계, 화상 및 비디오 중 적어도 하나에 대한 계수들의 블록 내의 기하학적 관계의 결정에 응답하여 적어도 수평 방향 및 수직 방향을 포함하는 복수의 후보 트리의 세트 중에서 트리 구조를 선택하는 단계, 및 선택된 트리 구조에 응답하여 제로 계수들의 클러스터링을 사용하여 블록을 인코딩하는 단계를 수행하는 프로그래밍을 저장하며,
    개개의 리프 노드들은 제로 계수들만을 포함하는 것을 나타내는 상기 선택된 트리 구조의 비-리프 노드들을 가지는 것에 응답하여, 인코딩된 출력으로부터 제로 계수들의 일부가 제거되고, 이들 자손 리프 노드들을 상기 디코더로 향하는 출력 비트 스트림 내로 코딩하지 않고,
    상기 제2 메모리 장치는, 상기 제2 프로세싱 엘리먼트에 연결되고, 상기 제2 프로세싱 엘리먼트 상에서 실행가능한 프로그래밍으로서,
    블록을 인코딩함에 있어서 상기 인코더에 의해 사용되는 상기 선택된 트리 구조를 결정하는 단계, 선택된 트리 구조의 리프들을 출력 계수로 디코딩하는 단계, 논-제로 브랜치들 없이 비-리프 노드들을 디코딩하는 것에 응답하여 출력 중에 제로 계수들을 출력하는 단계, 상기 출력의 양자화해제를 수행하는 단계, 상기 출력의 역변환을 수행하는 단계, 및 출력의 수신에 응답하여 화상 신호를 재구성하는 단계를 수행하는 것에 응답하여 화상 또는 비디오 신호를 출력하는 프로그래밍을 저장하는,
    화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템.
  20. 화상 및 비디오 중 적어도 하나의 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법으로서,
    옥타브 밴드 파티셔닝을 사용하여 비-방향성 코딩 트리를 생성하는 단계, 및
    적어도 수평 방향 및 수직 방향에서의 스케일링 주파수 성분들 및 적어도 수평 방향 및 수직 방향에 대해 적응된 복수의 후보 코딩 트리를 생성하기 위한 옥타브 밴드 파티셔닝에 응답하여 수평 및 수직 코딩 트리들을 생성하는 단계를 포함하며,
    상기 옥타브 밴드 파티셔닝은 블록 내의 계수들을 스퀘어 및 L형으로 파티셔닝함으로써 수행되고, 상기 L형은 반복적으로 스퀘어로 파티셔닝되는,
    화상 및 비디오 중 적어도 하나의 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법.
KR1020117024126A 2009-06-09 2010-06-08 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치, 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템, 및 화상 및/또는 비디오 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법 KR101357403B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US18557009P 2009-06-09 2009-06-09
US61/185,570 2009-06-09
PCT/US2010/037837 WO2010144497A2 (en) 2009-06-09 2010-06-08 Design trees for adaptive coding of images and videos using set partitioning in generalized hierarchical trees having directionality

Publications (2)

Publication Number Publication Date
KR20120011848A KR20120011848A (ko) 2012-02-08
KR101357403B1 true KR101357403B1 (ko) 2014-02-05

Family

ID=43300807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117024126A KR101357403B1 (ko) 2009-06-09 2010-06-08 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치, 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템, 및 화상 및/또는 비디오 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법

Country Status (6)

Country Link
US (1) US8620098B2 (ko)
KR (1) KR101357403B1 (ko)
CN (1) CN102396224A (ko)
BR (1) BRPI1014232A2 (ko)
RU (1) RU2502215C2 (ko)
WO (1) WO2010144497A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2930861B1 (fr) * 2008-05-05 2012-10-19 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de decodage d'un signal mettant en oeuvre une construction progressive d'un arbre de decodage, produit programme d'ordinateur et signal correspondants
JP5001964B2 (ja) * 2009-02-18 2012-08-15 株式会社エヌ・ティ・ティ・ドコモ 画像符号化装置、方法およびプログラム、並びに、画像復号装置、方法およびプログラム
BRPI1014232A2 (pt) * 2009-06-09 2016-04-12 Sony Corp aparelho para gerar múltiplas árvores de codificação de candidato para uso durante codificação, sistema para codificação e de codificação adaptável de imagens ou vídeos, e, método para gerar múltiplas árvores de codificação de candidato
CN103238321B (zh) * 2010-09-30 2016-11-02 三星电子株式会社 用于对分层结构的符号进行编解码的视频编解码方法及其装置
US8977065B2 (en) * 2011-07-21 2015-03-10 Luca Rossato Inheritance in a tiered signal quality hierarchy
EP2946552B1 (en) * 2013-01-16 2018-03-21 BlackBerry Limited Context determination for entropy coding of run-length encoded transform coefficients
US9973780B2 (en) * 2013-10-31 2018-05-15 Microsoft Technology Licensing, Llc Scaled video for pseudo-analog transmission in spatial domain
CN104284188B (zh) * 2014-10-11 2018-03-13 华为技术有限公司 预测块的划分方法、编码设备和解码设备
EP3035179A1 (en) 2014-12-19 2016-06-22 Thomson Licensing Data processing apparatus and method for rendering a tree structure
US9430718B1 (en) 2015-02-09 2016-08-30 Sony Corporation Efficient local feature descriptor filtering
US9311342B1 (en) * 2015-02-09 2016-04-12 Sony Corporation Tree based image storage system
US10587900B2 (en) * 2016-02-15 2020-03-10 Futurewei Technologies, Inc. Systems, methods, and devices for image coding
RU2616176C1 (ru) * 2016-03-28 2017-04-12 Федеральное государственное бюджетное образовательное учреждение высшего образования "Тульский государственный университет" (ТулГУ) Способ кодирования-декодирования цифровых видеоизображений
CN108076346B (zh) * 2017-12-21 2020-05-22 北京奇艺世纪科技有限公司 一种图像编解码方法及装置
GB2577521B (en) * 2018-09-27 2022-05-18 Displaylink Uk Ltd A method of controlling encoding of display data
US11240501B2 (en) * 2020-01-08 2022-02-01 Tencent America LLC L-type partitioning tree
US11432018B2 (en) * 2020-05-11 2022-08-30 Tencent America LLC Semi-decoupled partitioning for video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020026175A (ko) * 2000-04-04 2002-04-06 요트.게.아. 롤페즈 웨이브릿 변환을 이용한 비디오 인코딩 방법
US20040175048A1 (en) 2000-01-24 2004-09-09 William A. Pearlman Embedded and efficient low-complexity hierarchical image coder and corresponding methods therefor

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315670A (en) * 1991-11-12 1994-05-24 General Electric Company Digital data compression system including zerotree coefficient coding
JP3278297B2 (ja) * 1994-07-20 2002-04-30 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US5796356A (en) * 1995-03-14 1998-08-18 Fujitsu Limited Data compressing apparatus, data restoring apparatus and data compressing/restoring system
SE512291C2 (sv) 1997-09-23 2000-02-28 Ericsson Telefon Ab L M Inbäddad DCT-baserad stillbildskodningsalgoritm
JPH11191153A (ja) * 1997-12-26 1999-07-13 Ricoh Co Ltd ウェーブレット変換係数の符号化方法
EP0940994B1 (en) * 1998-03-06 2014-04-16 Canon Kabushiki Kaisha Image processing apparatus and method and storage medium storing steps realizing such method
US6801665B1 (en) 1998-09-15 2004-10-05 University Of Maryland Method and apparatus for compressing and decompressing images
JP2000295618A (ja) * 1999-03-08 2000-10-20 Texas Instr Inc <Ti> 埋込み型ゼロトリーパターン及びビットプレーンを使用する画像符号化方法
US7065253B2 (en) * 1999-09-03 2006-06-20 Intel Corporation Wavelet zerotree coding of ordered bits
US6834123B2 (en) * 2001-05-29 2004-12-21 Intel Corporation Method and apparatus for coding of wavelet transformed coefficients
KR100355404B1 (ko) * 1999-12-03 2002-10-11 삼성전자 주식회사 주파수 공간상에서의 가보 필터를 이용한 질감표현방법 및질감기반 영상 검색방법
KR100366638B1 (ko) * 2001-02-07 2003-01-09 삼성전자 주식회사 웨이블릿 변환을 기본으로하여 트리-구조의 벡터 양자화기법을 이용한 영상 부호화 장치 및 부호화 방법
US7660475B2 (en) * 2004-12-22 2010-02-09 Ntt Docomo, Inc. Method and apparatus for coding positions of coefficients
BRPI1014232A2 (pt) * 2009-06-09 2016-04-12 Sony Corp aparelho para gerar múltiplas árvores de codificação de candidato para uso durante codificação, sistema para codificação e de codificação adaptável de imagens ou vídeos, e, método para gerar múltiplas árvores de codificação de candidato
US8406546B2 (en) * 2009-06-09 2013-03-26 Sony Corporation Adaptive entropy coding for images and videos using set partitioning in generalized hierarchical trees
WO2011130051A1 (en) * 2010-04-12 2011-10-20 Sony Corporation Context adaptive directional intra prediction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040175048A1 (en) 2000-01-24 2004-09-09 William A. Pearlman Embedded and efficient low-complexity hierarchical image coder and corresponding methods therefor
KR20020026175A (ko) * 2000-04-04 2002-04-06 요트.게.아. 롤페즈 웨이브릿 변환을 이용한 비디오 인코딩 방법

Also Published As

Publication number Publication date
RU2502215C2 (ru) 2013-12-20
WO2010144497A3 (en) 2011-04-21
US20100310186A1 (en) 2010-12-09
KR20120011848A (ko) 2012-02-08
US8620098B2 (en) 2013-12-31
RU2011141590A (ru) 2013-04-20
CN102396224A (zh) 2012-03-28
WO2010144497A2 (en) 2010-12-16
BRPI1014232A2 (pt) 2016-04-12

Similar Documents

Publication Publication Date Title
KR101357403B1 (ko) 인코딩 동안 사용을 위한 복수의 후보 코딩 트리를 생성하는 장치, 화상 또는 비디오의 적응적 인코딩 및 디코딩을 위한 시스템, 및 화상 및/또는 비디오 인코딩 동안 인코더에서의 사용을 위해 복수의 후보 코딩 트리를 생성하는 방법
US10225551B2 (en) Method and apparatus for encoding and decoding image by using large transform unit
KR101344973B1 (ko) 화상 또는 비디오 인코더 내에서의 적응적 엔트로피 인코딩 장치 및 방법
US8929673B2 (en) Method and apparatus for encoding and decoding image by using rotational transform
CN107835421B (zh) 对视频编码的方法和设备以及对视频解码的方法和设备
CN116830584A (zh) 帧内预测方法、编码器、解码器以及存储介质

Legal Events

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