KR20200107745A - 임베디드 이미지 코덱을 위한 서브-블록 기반 엔트로피 코딩 - Google Patents

임베디드 이미지 코덱을 위한 서브-블록 기반 엔트로피 코딩 Download PDF

Info

Publication number
KR20200107745A
KR20200107745A KR1020190131133A KR20190131133A KR20200107745A KR 20200107745 A KR20200107745 A KR 20200107745A KR 1020190131133 A KR1020190131133 A KR 1020190131133A KR 20190131133 A KR20190131133 A KR 20190131133A KR 20200107745 A KR20200107745 A KR 20200107745A
Authority
KR
South Korea
Prior art keywords
sub
blocks
block
coding table
encoded
Prior art date
Application number
KR1020190131133A
Other languages
English (en)
Other versions
KR102267212B1 (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 KR20200107745A publication Critical patent/KR20200107745A/ko
Application granted granted Critical
Publication of KR102267212B1 publication Critical patent/KR102267212B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

서브-블록 기반 엔트로피 코딩은 콘텐츠의 서브-블록들에 대한 최상의 코딩 스킴을 선택함으로써 콘텐츠를 더욱 효율적으로 인코딩 및 디코딩한다. 콘텐츠의 각각의 서브-블록에 대한 코딩 스킴들을 비교하여 가장 적은 비트들을 이용하는 코딩 스킴을 선택함으로써, 콘텐츠는 더욱 효율적으로 인코딩된다.

Description

임베디드 이미지 코덱을 위한 서브-블록 기반 엔트로피 코딩{SUB-BLOCK BASED ENTROPY CODING FOR EMBEDDED IMAGE CODEC}
본 발명은 비디오 코딩에 관한 것이다. 더욱 구체적으로, 본 발명은 서브-블록들을 이용한 엔트로피 코딩에 관한 것이다.
비디오 코딩은 양자화, 차분 펄스-코드 변조(Differential Pulse-Code Modulation)(DPCM), 엔트로피 코딩 및 리파인먼트(refinement)를 포함한다. 엔트로피 코딩은, 각각의 고정 길이 입력 심볼을 대응하는 가변 길이 출력 코드워드로 대체함으로써 데이터를 압축하는 무손실 데이터 압축 스킴(lossless data compression scheme)이다.
서브-블록 기반 엔트로피 코딩은 콘텐츠의 서브-블록들에 대한 최상의 코딩 스킴을 선택함으로써 콘텐츠를 더욱 효율적으로 인코딩 및 디코딩한다. 콘텐츠의 각각의 서브-블록에 대한 코딩 스킴들을 비교하여 가장 적은 비트들을 이용하는 코딩 스킴을 선택함으로써, 콘텐츠는 더욱 효율적으로 인코딩된다.
일 양태에서, 디바이스의 비-일시적 메모리에 프로그래밍되는 방법은, 콘텐츠 블록을 복수의 서브-블록으로 분할하는 단계, 복수의 가변 길이 코딩 표를 사용하여 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하여 복수의 인코딩된 서브-블록을 생성하는 단계, 및 복수의 인코딩된 서브-블록 중 어느 인코딩된 서브-블록이 가장 적은 양의 비트들을 포함하는지에 기초하여 복수의 인코딩된 서브-블록 중 인코딩된 서브-블록을 선택하는 단계를 포함한다. 복수의 서브-블록은 루마 서브-블록들을 포함하고, 루마 서브-블록의 제1 행은 제1 코딩 표를 사용하여 인코딩되고, 루마 서브-블록의 제2 행은 제1 코딩 표, 제2 코딩 표, 또는 제3 코딩 표를 사용하여 각각 인코딩되는 2개의 서브-블록을 포함하고, 추가로 여기서 2개의 서브-블록은 동일한 코딩 표 또는 상이한 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하는 것은 루마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하는 비트, 및 루마 서브-블록을 인코딩하기 위해 사용되는 코딩 표를 특정하는 루마 서브-블록 타입을 시그널링하는 비트를 포함한다. 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 크로마 서브-블록들이 수평 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고, U 블록의 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, U 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고, U 블록의 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, U 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 4개의 서브-블록을 포함하고, V 블록은 4개의 서브-블록을 포함하고, U 블록의 4개의 서브-블록의 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 4개의 서브-블록의 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하는 것은 크로마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하는 비트, 수평 분할 또는 수직 분할을 시그널링하는 제2 비트, 및 크로마 서브-블록을 인코딩하기 위해 사용되는 코딩 표를 특정하는 크로마 서브-블록 타입을 시그널링하는 비트들의 세트를 포함한다.
다른 양태에서, 장치는 애플리케이션을 저장하기 위한 비-일시적 메모리 및 메모리에 결합된 프로세서를 포함하고, 애플리케이션은 콘텐츠 블록을 복수의 서브-블록으로 분할하고, 복수의 가변 길이 코딩 표를 사용하여 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하여 복수의 인코딩된 서브-블록을 생성하고, 복수의 인코딩된 서브-블록 중 어느 인코딩된 서브-블록이 가장 적은 양의 비트들을 포함하는지에 기초하여 복수의 인코딩된 서브-블록 중 인코딩된 서브-블록을 선택하기 위한 것이고, 프로세서는 애플리케이션을 처리하도록 구성된다. 복수의 서브-블록은 루마 서브-블록들을 포함하고, 루마 서브-블록의 제1 행은 제1 코딩 표를 사용하여 인코딩되고, 루마 서브-블록의 제2 행은 제1 코딩 표, 제2 코딩 표, 또는 제3 코딩 표를 사용하여 각각 인코딩되는 2개의 서브-블록을 포함하고, 추가로 여기서 2개의 서브-블록은 동일한 코딩 표 또는 상이한 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하는 것은 루마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하는 비트, 및 루마 서브-블록을 인코딩하기 위해 사용되는 코딩 표를 특정하는 루마 서브-블록 타입을 시그널링하는 비트를 포함한다. 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 크로마 서브-블록들이 수평 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고, U 블록의 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, U 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고, U 블록의 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, U 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 4개의 서브-블록을 포함하고, V 블록은 4개의 서브-블록을 포함하고, U 블록의 4개의 서브-블록의 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 4개의 서브-블록의 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하는 것은 크로마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하는 비트, 수평 분할 또는 수직 분할을 시그널링하는 제2 비트, 및 크로마 서브-블록을 인코딩하기 위해 사용되는 코딩 표를 특정하는 크로마 서브-블록 타입을 시그널링하는 비트들의 세트를 포함한다.
다른 양태에서, 시스템은 콘텐츠 블록을 복수의 서브-블록으로 분할하고, 복수의 가변 길이 코딩 표를 사용하여 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하여 복수의 인코딩된 서브-블록을 생성하고, 복수의 인코딩된 서브-블록 중 어느 인코딩된 서브-블록이 가장 적은 양의 비트들을 포함하는지에 기초하여 복수의 인코딩된 서브-블록 중 인코딩된 서브-블록을 선택하도록 구성되는 제1 컴퓨팅 디바이스, 및 인코딩된 적어도 하나의 서브-블록을 디코딩하도록 구성되는 제2 컴퓨팅 디바이스를 포함한다. 복수의 서브-블록은 루마 서브-블록들을 포함하고, 루마 서브-블록의 제1 행은 제1 코딩 표를 사용하여 인코딩되고, 루마 서브-블록의 제2 행은 제1 코딩 표, 제2 코딩 표, 또는 제3 코딩 표를 사용하여 각각 인코딩되는 2개의 서브-블록을 포함하고, 추가로 여기서 2개의 서브-블록은 동일한 코딩 표 또는 상이한 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하는 것은 루마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하는 비트, 및 루마 서브-블록을 인코딩하기 위해 사용되는 코딩 표를 특정하는 루마 서브-블록 타입을 시그널링하는 비트를 포함한다. 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 크로마 서브-블록들이 수평 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고, U 블록의 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, U 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩된다.
복수의 서브-블록은 크로마 서브-블록들을 포함하고, 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고, U 블록의 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, U 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 4개의 서브-블록을 포함하고, V 블록은 4개의 서브-블록을 포함하고, U 블록의 4개의 서브-블록의 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, V 블록의 4개의 서브-블록의 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩된다. 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하는 것은 크로마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하는 비트, 수평 분할 또는 수직 분할을 시그널링하는 제2 비트, 및 크로마 서브-블록을 인코딩하기 위해 사용되는 코딩 표를 특정하는 크로마 서브-블록 타입을 시그널링하는 비트들의 세트를 포함한다.
도 1은 일부 실시예에 따른 코덱을 구현하는 방법의 흐름도를 도시한다.
도 2는 일부 실시예에 따른 VLC 표들의 다이어그램을 도시한다.
도 3은 일부 실시예에 따른 루마 서브-블록 엔트로피 코딩에 관한 다이어그램을 도시한다.
도 4는 일부 실시예에 따른 루마 서브-블록 코딩을 위한 표들을 도시한다.
도 5는 일부 실시예에 따른 YUV 422에 대한 크로마 서브-블록 코딩을 위한 다이어그램들을 도시한다.
도 6은 일부 실시예에 따른 YUV 444에 대한 크로마 서브-블록 코딩을 위한 다이어그램들을 도시한다.
도 7은 일부 실시예에 따른 크로마 서브-블록 코딩의 다이어그램을 도시한다.
도 8은 일부 실시예에 따른 서브-블록 기반 엔트로피 코딩을 구현하도록 구성되는 예시적인 컴퓨팅 디바이스의 블록도를 도시한다.
도 9는 일부 실시예에 따른 디바이스들의 네트워크의 다이어그램을 도시한다.
코더/디코더("코덱")를 개선하기 위해, 엔트로피 코딩이 최적화된다. 엔트로피 코딩은 데이터를 압축하는데 이용되는 이진화(binarization)이고, 압축은 블록별로 수행될 수 있다. 예를 들어, 결과가 헤더 비트들, 엔트로피 코딩된 비트들 및 리파인먼트 비트들을 포함하도록 16x2 이미지 블록이 인코딩된다.
도 1은 일부 실시예에 따른 코덱을 구현하는 방법의 흐름도를 도시한다. 이미지 블록(예를 들어, 16x2 입력 이미지 블록)이 단계(100)에서 양자화된다. 양자화는, 값들의 범위를 단일 양자 값으로 압축하는 손실 압축 기술(lossy compression technique)이다. 102의 단계에서, 예측을 사용하여 샘플링된 신호들을 디지털적으로 표현하기 위해 차분 펄스-코드 변조(Differential Pulse-Code Modulation)(DPCM)가 이용된다. DPCM-기반 코딩에서는, 이웃하는 양자화된 픽셀 값을 차분(differencing)함으로써 잔차 신호가 생성된다. 단계(104)에서, 데이터를 압축하기 위해 수정된 엔트로피 코딩이 구현된다. 수정된 엔트로피 코딩은 여기서 더 설명된다. 단계(106)에서, 압축된 데이터가 리파인(refine)된다. 리파인먼트 후에, 헤더 비트들, 엔트로피 코딩된 비트들, 및 리파인먼트 비트들을 포함하는 인코딩된 비트스트림이 이용가능하다.
도 2는 일부 실시예에 따른 VLC 표들의 다이어그램을 도시한다. 임의의 컬러 인코딩 포맷이 이용될 수 있지만, 2개의 컬러 인코딩 포맷(YUV 422 및 YUV 444)이 도시되어 있다. 공지된 바와 같이, YUV 444는 4:4:4 서브샘플링(예를 들어, Y, U 및 V는 동일한 샘플 레이트를 가짐)과 동일하고, YUV 422는 4:2:2 서브샘플링(예를 들어, U와 V는 Y의 레이트의 절반으로 샘플링됨)과 동일하다. Y는 루마를 나타내고, U 및 V는 크로마를 나타낸다.
과거에는, 전체 블록(예를 들어, 16x2 블록)에 대해 동일한 엔트로피 코딩 스킴이 사용되었다. 서브-블록 기반 엔트로피 코딩은, 본 명세서에 설명되는 바와 같이, 블록에 대해 2개(또는 그 이상)의 상이한 엔트로피 코딩 스킴을 사용한다. 예를 들어, YUV 422(200)에서, 16x2 블록 Y는 제1 엔트로피 코딩 표/스킴(예를 들어, ECX 230)을 사용하고, 8x2 블록 U 및 8x2 블록 V는 제2 엔트로피 코딩 표/스킴(예를 들어, EC1 220)을 사용한다. 또 다른 예에서, YUV 444(210)에서, 16x2 블록 Y는 제1 엔트로피 코딩 스킴(예를 들어, ECX)을 사용하고, 16x2 블록 U 및 16x2 블록 V는 제2 엔트로피 코딩 스킴(예를 들어, EC1)을 사용한다.
제2 엔트로피 코딩 스킴(예를 들어, EC1)을 사용하면, 각각의 입력에 대해, 고유한 이진 코드워드가 존재한다. 예를 들어, 도시된 바와 같이, 입력 0은 1의 코드워드를 생성하고, 기타 등등이다.
따라서, 블록들은 서브-블록들로 분할되고, 그 후에 서브-블록들은 본 명세서에 설명된 바와 같이 대응하는 엔트로피 코딩 스킴(예를 들어, Y에 대한 ECX 및 U, V에 대한 EC1)을 사용하여 엔트로피 코딩된다. 일부 실시예에서, 각각의 엔트로피 코딩 스킴은 각각의 서브-블록에 대해 사용되고, 최상의 엔트로피 코딩 스킴은 각각의 서브-블록에 대해 선택되며, 여기서 최상은 가장 적은 비트들을 초래하는 엔트로피 코딩 스킴을 의미한다. 예를 들어, 제1 서브-블록이 제1 엔트로피 코딩 스킴 및 제2 엔트로피 코딩 스킴을 사용하여 인코딩되고, 그 후에, 각각의 결과에 대한 비트들의 수가 비교되고, 더 적은(또는 더 많은 엔트로피 코딩 스킴들이 사용되는 경우 가장 적은) 비트들을 갖는 결과가 사용된다(예를 들어, 어느 엔트로피 코딩 스킴을 사용하여 데이터를 디코딩할지를 디코더가 알도록, 디코더에 시그널링된다).
도 3은 일부 실시예에 따른 루마 서브-블록 엔트로피 코딩에 관한 다이어그램을 도시한다. 서브-블록이 오프(off)이면(300), 16x2 블록의 전체 Y 성분은 오직 하나의 코딩 스킴(예를 들어, ECX)을 사용하여 인코딩된다. 서브-블록이 온(on)이면(310), 각각의 루마 서브-블록은 상이한 가변 길이 코딩(Variable Length Coding)(VLC) 표 또는 스킴을 사용할 수 있다. 일부 실시예에서, 제1 행의 루마(예를 들어, 16x1 서브-블록(312))는 ECX 엔트로피 코딩을 사용하고, 제2 행의 루마는 2개의 서브-블록(314, 316), 좌측 8개의 샘플(예를 들어, 서브-블록 0)과 우측 8개의 샘플(예를 들어, 서브-블록 1)을 가지며, 여기서 제2 행의 각각의 서브-블록은 여러 가능성들 중 하나의 표(예를 들어, 표 1(320), 표 2(330) 또는 ECX(230))를 사용한다. 표 1 및 표 2는 예시적인 VLC 표들이다. 표 1은, 잔차 레벨의 절대값이 1보다 크면 표 1은 선택되지 않는다는 것을 또한 나타내고, 표 2는, 잔차 레벨의 절대값이 2보다 크면 표 2가 선택되지 않는다는 것을 나타낸다. 도 3은 블록이 제1 행, 서브-블록 0과 서브-블록 1로 분할된 것을 나타내지만, 블록은 4개의 샘플을 각각 갖는 서브-블록들과 같은 임의의 방식으로 분할될 수 있다.
도 4는 일부 실시예에 따른 루마 서브-블록 코딩을 위한 표들을 도시한다. 각각의 서브-블록에 대해, 인코더는 어느 엔트로피 코딩 스킴이 사용되는지를 디코더에 시그널링한다. 루마 서브-블록이 ON인지 또는 OFF인지를 시그널링하기 위한 비트가 사용된다. 루마 서브-블록이 ON이면, 루마 서브-블록 타입/스킴(예를 들어, 표 1, 표 2 또는 ECX)을 시그널링하기 위해 추가적인 헤더들이 송신된다. 일부 실시예에서, 우측 서브-블록 타입을 시그널링하기 위한 특수 조건이 있다. 좌측 서브-블록의 서브-블록 타입이 ECX이면, 우측 서브-블록이 ECX일 가능성은 없다(만약 그렇다면, 이것은 서브-블록 OFF와 동일할 것이기 때문이다). 이러한 특수 조건에서는, 다음의 시그널링이 사용된다: 표 1: 신호 0 및 표 2: 신호 1.
표 400은 루마 서브-블록 ON 또는 OFF를 시그널링하기 위한 1-비트를 나타낸다. 예를 들어, 코드워드가 0이면, 서브-블록들을 사용하는 것은 오프이고, 코드워드가 1이면, 서브-블록들을 사용하는 것은 온이다. 표 402는, 서브-블록 플래그/비트가 온일 때, 루마 서브-블록 타입을 시그널링하기 위한 헤더 비트들을 나타낸다. 예를 들어, 코드워드 10은 표 1 스킴/타입을 사용하는 것을 나타내고, 코드워드 0은 표 2 스킴을 사용하는 것을 나타내고, 코드워드 11은 ECX 스킴을 사용하는 것을 나타낸다.
크로마도 또한 서브-블록들로 분할된다. 크로마 수평 서브-블록 크기는 YUV422에 대해 8x1(U에 대해 2개의 서브-블록 및 V에 대해 2개의 서브-블록) 및 YUV444에 대해 16x1(U에 대해 2개의 서브-블록 및 V에 대해 2개의 서브-블록)이다. 크로마 수직 서브-블록 크기는 YUV422에 대해 4x2(U에 대해 2개의 서브-블록 및 V에 대한 2개의 서브-블록) 및 YUV444에 대해 4x2(U에 대해 4개의 서브-블록 및 V에 대해 4개의 서브-블록)이다.
도 5는 일부 실시예에 따른 YUV 422에 대한 크로마 서브-블록 코딩을 위한 다이어그램들을 도시한다. 박스 500에서, 서브-블록 플래그/신호가 OFF(예를 들어, 신호 0)이면, U 및 V(크로마)에 대한 8x2 블록들에 대해, 제2 인코딩 스킴/표(예를 들어, EC1)가 사용된다.
박스 502에서, 서브-블록이 ON이지만, 분할이 수평(예를 들어, 신호 11)이면, U에 대한 8x2 블록은 표 1 또는 ECX(1 비트 신호)를 사용하여 인코딩된 8x1 서브-블록 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하는 다른 8x1 서브-블록을 갖고, V에 대한 8x2 블록은 표 1 또는 ECX(1 비트 신호)를 사용하여 인코딩된 8x1 서브-블록 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하는 다른 8x1 서브-블록을 갖는다. AllZero는 서브-블록의 제1 펄스 코드 변조(PCM) 계수를 제외한 계수들 모두가 0이라는 것을 의미한다.
박스 504에서, 서브-블록이 ON이지만, 분할이 수직(예를 들어, 신호 10)이면, U에 대한 8x2 블록은 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 4x2 서브-블록 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 다른 4x2 서브-블록을 갖고, V에 대한 8x2 블록은 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 4x2 서브-블록 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 다른 4x2 서브-블록을 갖는다.
도 6은 일부 실시예에 따른 YUV 444에 대한 크로마 서브-블록 코딩을 위한 다이어그램들을 도시한다. 박스 600에서, 서브-블록 플래그/신호가 OFF(예를 들어, 신호 0)이면, U 및 V(크로마)에 대한 16x2 블록들에 대해, 제2 인코딩 스킴/표(예를 들어, EC1)가 사용된다.
박스 602에서, 서브-블록이 ON이지만, 분할이 수평(예를 들어, 신호 11)이면, U에 대한 16x2 블록은 표 1 또는 ECX(1 비트 신호)를 사용하여 인코딩된 16x1 서브-블록 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하는 다른 16x1 서브-블록을 갖고, V에 대한 16x2 블록은 표 1 또는 ECX(1 비트 신호)를 사용하여 인코딩된 16x1 서브-블록 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하는 16x1 서브-블록을 갖는다. AllZero는 서브-블록의 제1 PCM 계수를 제외한 계수들 모두가 0이라는 것을 의미한다.
박스 604에서, 서브-블록이 ON이지만, 분할이 수직(예를 들어, 신호 10)이면, U에 대한 16x2 블록은 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 4개의 4x2 서브-블록을 갖고, V에 대한 16x2 블록은 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 4개의 4x2 서브-블록을 갖는다.
크로마 서브-블록 코딩의 경우, 크로마 서브-블록이 ON인지 또는 OFF인지를 시그널링하기 위해 1 비트 시그널링이 사용된다(예를 들어, 0은 크로마 서브-블록 OFF를 의미하고, 1은 크로마 서브-블록 ON을 의미한다). 크로마 서브-블록이 ON인 경우, 수평 또는 수직 분할들을 시그널링하기 위해 추가적인 1 비트 시그널링이 사용된다(예를 들어, 0은 수직 분할을 의미하고, 1은 수평 분할을 의미한다).
도 7은 일부 실시예에 따른 크로마 서브-블록 코딩의 다이어그램을 도시한다. 박스 700에서, 서브-블록이 OFF(예를 들어, 신호: 0)이면, 8x2 블록 U 및 8x2 블록 V에 대해, 제2 스킴이 사용된다(예를 들어, EC1).
박스 702에서, 서브-블록이 ON이지만, 분할이 수평(예를 들어, 신호 11)이면, U에 대한 8x2 블록은 표 1 또는 ECX(1 비트 신호)를 사용하여 인코딩된 8x1 서브-블록 0 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하는 8x1 서브-블록 1을 갖고, V에 대한 8x2 블록은 표 1 또는 ECX(1 비트 신호)를 사용하여 인코딩된 8x1 서브-블록 0 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하는 8x1 서브-블록 1을 갖는다.
박스 704에서, 서브-블록이 ON이지만, 분할이 수직(예를 들어, 신호 10)이면, U에 대한 8x2 블록은 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 4x2 서브-블록 0 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 4x2 서브-블록 1을 갖고, V에 대한 8x2 블록은 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 4x2 서브-블록 0 및 AllZero, 표 1 또는 ECX(1 또는 2 비트 신호)를 사용하여 인코딩된 4x2 서브-블록 1을 갖는다.
각각의 루마 서브-블록의 루마 서브-블록 타입을 선택하기 위해, 제2 행의 각각의 서브-블록에 대해, 모드 선택은 스킴 옵션들(예를 들어, 표 1, 표 2 또는 ECX)로부터 최상의 것(예를 들어, 가장 적은 비트들을 갖는 결과)을 선택한다.
루마 서브-블록 타입을 선택하기 위한 예시적인 의사 코드:
Figure pat00001
각각의 크로마 서브-블록의 크로마 서브-블록 타입을 선택하기 위해, 서브-블록들 각각에 대해, 모드 선택은 스킴 옵션들(예를 들어, AllZero, 표 1, 또는 ECX)로부터 최상의 것(예를 들어, 가장 적은 비트들을 갖는 결과)을 선택한다.
크로마 서브-블록 타입을 선택하기 위한 예시적인 의사 코드:
Figure pat00002
도 8은 일부 실시예에 따른 서브-블록 기반 엔트로피 코딩을 구현하도록 구성되는 예시적인 컴퓨팅 디바이스의 블록도를 도시한다. 컴퓨팅 디바이스(800)는 이미지들 및 비디오들과 같은 정보를 취득, 저장, 계산, 처리, 통신 및/또는 디스플레이하는 데 사용될 수 있다. 컴퓨팅 디바이스(800)는 인코딩 및/또는 디코딩과 같은 서브-블록 기반 엔트로피 코딩 양태들 중 임의의 것을 구현할 수 있다. 일반적으로, 컴퓨팅 디바이스(800)를 구현하기에 적합한 하드웨어 구조는 네트워크 인터페이스(802), 메모리(804), 프로세서(806), I/O 디바이스(들)(808), 버스(810) 및 저장 디바이스(812)를 포함한다. 충분한 속도를 갖는 적절한 프로세서가 선택되는 한, 프로세서의 선택은 중요하지 않다. 메모리(804)는 본 기술분야에 공지된 임의의 종래의 컴퓨터 메모리일 수 있다. 저장 디바이스(812)는 하드 드라이브, CDROM, CDRW, DVD, DVDRW, 고화질 디스크/드라이브, 울트라-HD 드라이브, 플래시 메모리 카드 또는 임의의 다른 저장 디바이스를 포함할 수 있다. 컴퓨팅 디바이스(800)는 하나 이상의 네트워크 인터페이스(802)를 포함할 수 있다. 네트워크 인터페이스의 예는 이더넷 또는 다른 타입의 LAN에 접속된 네트워크 카드를 포함한다. I/O 디바이스(들)(808)는 키보드, 마우스, 모니터, 스크린, 프린터, 모뎀, 터치스크린, 버튼 인터페이스 및 다른 디바이스들 중 하나 이상을 포함할 수 있다. 서브-블록 기반 엔트로피 코딩을 구현하기 위해 사용되는 서브-블록 기반 엔트로피 코딩 애플리케이션(들)(830)은 저장 디바이스(812) 및 메모리(804)에 저장되어 애플리케이션들이 통상적으로 처리될 때 처리될 가능성이 있다. 도 8에 도시된 더 많거나 더 적은 컴포넌트들이 컴퓨팅 디바이스(800)에 포함될 수 있다. 일부 실시예에서, 서브-블록 기반 엔트로피 코딩 하드웨어(820)가 포함된다. 도 8의 컴퓨팅 디바이스(800)는 서브-블록 기반 엔트로피 코딩을 위한 하드웨어(820) 및 애플리케이션들(830)을 포함하지만, 서브-블록 기반 엔트로피 코딩은 컴퓨팅 디바이스 상에서 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 예를 들어, 일부 실시예에서, 서브-블록 기반 엔트로피 코딩 애플리케이션들(830)은 메모리에 프로그래밍되고 프로세서를 사용하여 실행된다. 다른 예에서는, 일부 실시예에서, 서브-블록 기반 엔트로피 코딩 하드웨어(820)는 서브-블록 기반 엔트로피 코딩을 구현하도록 특별히 설계된 게이트들을 포함하는 프로그래밍된 하드웨어 로직이다.
일부 실시예에서, 서브-블록 기반 엔트로피 코딩 애플리케이션(들)(830)은 여러 애플리케이션들 및/또는 모듈들을 포함한다. 일부 실시예에서, 모듈들은 하나 이상의 서브 모듈도 포함한다. 일부 실시예에서, 더 적거나 추가적인 모듈들이 포함될 수 있다.
일부 실시예에서, 서브-블록 기반 엔트로피 코딩 하드웨어(820)는 렌즈, 이미지 센서, 및/또는 임의의 다른 카메라 컴포넌트들과 같은 카메라 컴포넌트들을 포함한다.
적절한 컴퓨팅 디바이스들의 예들은 개인용 컴퓨터, 랩톱 컴퓨터, 컴퓨터 워크스테이션, 서버, 메인프레임 컴퓨터, 핸드헬드 컴퓨터, 개인용 디지털 보조기기(personal digital assistant), 셀룰러/모바일 전화기, 스마트 기기, 게이밍 콘솔, 디지털 카메라, 디지털 캠코더, 카메라 폰, 스마트폰, 휴대용 뮤직 플레이어, 태블릿 컴퓨터, 모바일 디바이스, 비디오 플레이어, 비디오 디스크 라이터/플레이어(예를 들어, DVD 라이터/플레이어, 고화질 디스크 라이터/플레이어, 초고화질 디스크 라이터/플레이어), 텔레비전, 홈 엔터테인먼트 시스템, 증강 현실 디바이스, 가상 현실 디바이스, 스마트 주얼리(예를 들어, 스마트 워치), 차량(예를 들어, 자기 구동 차량) 또는 임의의 다른 적절한 컴퓨팅 디바이스를 포함한다.
도 9는 일부 실시예에 따른 디바이스들의 네트워크의 다이어그램을 도시한다. 비디오 콘텐츠는 하나 이상의 인코더 디바이스(900)에서 인코딩된다. 인코딩된 콘텐츠는 네트워크(902)(예를 들어, 인터넷, 셀룰러 네트워크 또는 임의의 다른 네트워크)를 통해 하나 이상의 디코더 디바이스(904)에 전송/스트리밍된다. 일부 실시예에서, 콘텐츠는 네트워크 없이 직접 하나 이상의 디코더 디바이스(904)에 송신된다. 디바이스들(예를 들어, 인코더 디바이스, 디코더 디바이스)의 네트워크의 하나 이상의 디바이스는 본 명세서에 설명된 서브-블록 기반 엔트로피 코딩 구현을 수행하도록 구성된다. 하나 이상의 인코더 디바이스(900) 및 하나 이상의 디코더 디바이스(904)는 서버, 개인용 컴퓨터, 스마트폰, 텔레비전, 게이밍 시스템, 차량 또는 본 명세서에 설명된 디바이스들 중 임의의 것 또는 본 명세서에 설명된 디바이스들의 임의의 조합과 같은 임의의 디바이스일 수 있다.
본 명세서에 설명된 서브-블록 기반 엔트로피 코딩을 이용하기 위해, 디지털 카메라들/캠코더들과 같은 디바이스들이 콘텐츠를 획득하는데 사용된다. 서브-블록 기반 엔트로피 코딩은 콘텐츠를 효율적으로 인코딩, 송신, 및 디코딩하기 위해 사용자 지원으로 또는 사용자 개입 없이 자동으로 구현될 수 있다.
동작 시에, 서브-블록 기반 엔트로피 코딩은 콘텐츠의 서브-블록들에 대한 최상의 코딩 스킴을 선택함으로써 콘텐츠를 더욱 효율적으로 인코딩하고 디코딩한다.
임베디드 이미지 코덱을 위한 서브-블록 기반 엔트로피 코딩의 일부 실시예
1. 디바이스의 비-일시적 메모리에 프로그래밍되는 방법으로서,
콘텐츠 블록을 복수의 서브-블록으로 분할하는 단계;
복수의 가변 길이 코딩 표를 사용해서 상기 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하여 복수의 인코딩된 서브-블록을 생성하는 단계; 및
상기 복수의 인코딩된 서브-블록 중 어느 인코딩된 서브-블록이 가장 적은 양의 비트들을 포함하는지에 기초하여 상기 복수의 인코딩된 서브-블록 중 인코딩된 서브-블록을 선택하는 단계
를 포함하는 방법.
2. 조항 1에 있어서, 상기 복수의 서브-블록은 루마 서브-블록들을 포함하고, 루마 서브-블록의 제1 행은 제1 코딩 표를 사용하여 인코딩되고, 상기 루마 서브-블록의 제2 행은 상기 제1 코딩 표, 제2 코딩 표, 또는 제3 코딩 표를 사용하여 각각 인코딩되는 2개의 서브-블록을 포함하고, 추가로 상기 2개의 서브-블록은 동일한 코딩 표 또는 상이한 코딩 표를 사용하여 인코딩되는, 방법.
3. 조항 1에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 루마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 및 루마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 루마 서브-블록 타입을 시그널링하기 위한 비트를 포함하는, 방법.
4. 조항 1에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수평 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 방법.
5. 조항 1에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 방법.
6. 조항 1에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 4개의 서브-블록을 포함하고, V 블록은 4개의 서브-블록을 포함하고,
상기 U 블록의 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고,
상기 V 블록의 상기 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 방법.
7. 조항 1에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 크로마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 수평 분할 또는 수직 분할을 시그널링하기 위한 제2 비트, 및 크로마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 크로마 서브-블록 타입을 시그널링하기 위한 비트들의 세트를 포함하는, 방법.
8. 장치로서,
애플리케이션을 저장하기 위한 비-일시적 메모리; 및
상기 메모리에 결합된 프로세서
를 포함하고,
상기 애플리케이션은:
콘텐츠 블록을 복수의 서브-블록으로 분할하고;
복수의 가변 길이 코딩 표를 사용해서 상기 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하여 복수의 인코딩된 서브-블록을 생성하고;
상기 복수의 인코딩된 서브-블록 중 어느 인코딩된 서브-블록이 가장 적은 양의 비트들을 포함하는지에 기초하여 상기 복수의 인코딩된 서브-블록 중 인코딩된 서브-블록을 선택하기 위한 것이고;
상기 프로세서는 상기 애플리케이션을 처리하도록 구성되는, 장치.
9. 조항 8에 있어서, 상기 복수의 서브-블록은 루마 서브-블록들을 포함하고, 루마 서브-블록의 제1 행은 제1 코딩 표를 사용하여 인코딩되고, 상기 루마 서브-블록의 제2 행은 상기 제1 코딩 표, 제2 코딩 표, 또는 제3 코딩 표를 사용하여 각각 인코딩되는 2개의 서브-블록을 포함하고, 추가로 상기 2개의 서브-블록은 동일한 코딩 표 또는 상이한 코딩 표를 사용하여 인코딩되는, 장치.
10. 조항 8에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 루마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 및 루마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 루마 서브-블록 타입을 시그널링하기 위한 비트를 포함하는, 장치.
11. 조항 8에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수평 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 장치.
12. 조항 8에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 장치.
13. 조항 8에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 4개의 서브-블록을 포함하고, V 블록은 4개의 서브-블록을 포함하고,
상기 U 블록의 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고,
상기 V 블록의 상기 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 장치.
14. 조항 8에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 크로마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 수평 분할 또는 수직 분할을 시그널링하기 위한 제2 비트, 및 크로마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 크로마 서브-블록 타입을 시그널링하기 위한 비트들의 세트를 포함하는, 장치.
15. 시스템으로서,
콘텐츠 블록을 복수의 서브-블록으로 분할하고;
복수의 가변 길이 코딩 표를 사용해서 상기 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하여 복수의 인코딩된 서브-블록을 생성하고;
상기 복수의 인코딩된 서브-블록 중 어느 인코딩된 서브-블록이 가장 적은 양의 비트들을 포함하는지에 기초하여 상기 복수의 인코딩된 서브-블록 중 인코딩된 서브-블록을 선택하도록
구성되는 제1 컴퓨팅 디바이스; 및
상기 인코딩된 적어도 하나의 서브-블록을 디코딩하도록 구성되는 제2 컴퓨팅 디바이스
를 포함하는 시스템.
16. 조항 15에 있어서, 상기 복수의 서브-블록은 루마 서브-블록들을 포함하고, 루마 서브-블록의 제1 행은 제1 코딩 표를 사용하여 인코딩되고, 상기 루마 서브-블록의 제2 행은 상기 제1 코딩 표, 제2 코딩 표, 또는 제3 코딩 표를 사용하여 각각 인코딩되는 2개의 서브-블록을 포함하고, 추가로 상기 2개의 서브-블록은 동일한 코딩 표 또는 상이한 코딩 표를 사용하여 인코딩되는, 시스템.
17. 조항 15에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 루마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 및 루마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 루마 서브-블록 타입을 시그널링하기 위한 비트를 포함하는, 시스템.
18. 조항 15에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수평 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 시스템.
19. 조항 15에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 시스템.
20. 조항 15에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 4개의 서브-블록을 포함하고, V 블록은 4개의 서브-블록을 포함하고,
상기 U 블록의 상기 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고,
상기 V 블록의 상기 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 시스템.
21. 조항 15에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 크로마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 수평 분할 또는 수직 분할을 시그널링하기 위한 제2 비트, 및 크로마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 크로마 서브-블록 타입을 시그널링하기 위한 비트들의 세트를 포함하는, 시스템.
본 발명은 본 발명의 구성 및 동작의 원리들의 이해를 용이하게 하기 위한 상세들을 포함하는 특정 실시예들에 관하여 설명되었다. 본 명세서에서의 특정 실시예들 및 그의 상세들에 대한 이러한 언급은 본 명세서에 첨부된 청구항들의 범위를 제한하는 것을 의도하지 않는다. 청구항들에 의해 정의된 바와 같은 본 발명의 사상 및 범위로부터 벗어나지 않고 예시를 위해 선택된 실시예에서 다른 다양한 수정들이 이루어질 수 있다는 것이 본 기술분야의 통상의 기술자에게 용이하게 명백할 것이다.

Claims (21)

  1. 디바이스의 비-일시적 메모리에 프로그래밍되는 방법으로서,
    콘텐츠 블록을 복수의 서브-블록으로 분할하는 단계;
    복수의 가변 길이 코딩 표를 사용해서 상기 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하여 복수의 인코딩된 서브-블록을 생성하는 단계; 및
    상기 복수의 인코딩된 서브-블록 중 어느 인코딩된 서브-블록이 가장 적은 양의 비트들을 포함하는지에 기초하여 상기 복수의 인코딩된 서브-블록 중 인코딩된 서브-블록을 선택하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 복수의 서브-블록은 루마 서브-블록들을 포함하고, 루마 서브-블록의 제1 행은 제1 코딩 표를 사용하여 인코딩되고, 상기 루마 서브-블록의 제2 행은 상기 제1 코딩 표, 제2 코딩 표, 또는 제3 코딩 표를 사용하여 각각 인코딩되는 2개의 서브-블록을 포함하고, 추가로 상기 2개의 서브-블록은 동일한 코딩 표 또는 상이한 코딩 표를 사용하여 인코딩되는, 방법.
  3. 제1항에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 루마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 및 루마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 루마 서브-블록 타입을 시그널링하기 위한 비트를 포함하는, 방법.
  4. 제1항에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수평 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
    상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
    상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 방법.
  5. 제1항에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
    상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
    상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 방법.
  6. 제1항에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 4개의 서브-블록을 포함하고, V 블록은 4개의 서브-블록을 포함하고,
    상기 U 블록의 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고,
    상기 V 블록의 상기 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 방법.
  7. 제1항에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 크로마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 수평 분할 또는 수직 분할을 시그널링하기 위한 제2 비트, 및 크로마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 크로마 서브-블록 타입을 시그널링하기 위한 비트들의 세트를 포함하는, 방법.
  8. 장치로서,
    애플리케이션을 저장하기 위한 비-일시적 메모리; 및
    상기 메모리에 결합된 프로세서
    를 포함하고,
    상기 애플리케이션은:
    콘텐츠 블록을 복수의 서브-블록으로 분할하고;
    복수의 가변 길이 코딩 표를 사용해서 상기 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하여 복수의 인코딩된 서브-블록을 생성하고;
    상기 복수의 인코딩된 서브-블록 중 어느 인코딩된 서브-블록이 가장 적은 양의 비트들을 포함하는지에 기초하여 상기 복수의 인코딩된 서브-블록 중 인코딩된 서브-블록을 선택하기 위한 것이고;
    상기 프로세서는 상기 애플리케이션을 처리하도록 구성되는, 장치.
  9. 제8항에 있어서, 상기 복수의 서브-블록은 루마 서브-블록들을 포함하고, 루마 서브-블록의 제1 행은 제1 코딩 표를 사용하여 인코딩되고, 상기 루마 서브-블록의 제2 행은 상기 제1 코딩 표, 제2 코딩 표, 또는 제3 코딩 표를 사용하여 각각 인코딩되는 2개의 서브-블록을 포함하고, 추가로 상기 2개의 서브-블록은 동일한 코딩 표 또는 상이한 코딩 표를 사용하여 인코딩되는, 장치.
  10. 제8항에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 루마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 및 루마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 루마 서브-블록 타입을 시그널링하기 위한 비트를 포함하는, 장치.
  11. 제8항에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수평 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
    상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
    상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 장치.
  12. 제8항에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
    상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
    상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 장치.
  13. 제8항에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 4개의 서브-블록을 포함하고, V 블록은 4개의 서브-블록을 포함하고,
    상기 U 블록의 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고,
    상기 V 블록의 상기 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 장치.
  14. 제8항에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 크로마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 수평 분할 또는 수직 분할을 시그널링하기 위한 제2 비트, 및 크로마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 크로마 서브-블록 타입을 시그널링하기 위한 비트들의 세트를 포함하는, 장치.
  15. 시스템으로서,
    콘텐츠 블록을 복수의 서브-블록으로 분할하고;
    복수의 가변 길이 코딩 표를 사용해서 상기 복수의 서브-블록 중 적어도 하나의 서브-블록을 인코딩하여 복수의 인코딩된 서브-블록을 생성하고;
    상기 복수의 인코딩된 서브-블록 중 어느 인코딩된 서브-블록이 가장 적은 양의 비트들을 포함하는지에 기초하여 상기 복수의 인코딩된 서브-블록 중 인코딩된 서브-블록을 선택하도록
    구성되는 제1 컴퓨팅 디바이스; 및
    상기 인코딩된 적어도 하나의 서브-블록을 디코딩하도록 구성되는 제2 컴퓨팅 디바이스
    를 포함하는 시스템.
  16. 제15항에 있어서, 상기 복수의 서브-블록은 루마 서브-블록들을 포함하고, 루마 서브-블록의 제1 행은 제1 코딩 표를 사용하여 인코딩되고, 상기 루마 서브-블록의 제2 행은 상기 제1 코딩 표, 제2 코딩 표, 또는 제3 코딩 표를 사용하여 각각 인코딩되는 2개의 서브-블록을 포함하고, 추가로 상기 2개의 서브-블록은 동일한 코딩 표 또는 상이한 코딩 표를 사용하여 인코딩되는, 시스템.
  17. 제15항에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 루마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 및 루마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 루마 서브-블록 타입을 시그널링하기 위한 비트를 포함하는, 시스템.
  18. 제15항에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수평 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
    상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
    상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 시스템.
  19. 제15항에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 2개의 서브-블록을 포함하고, V 블록은 2개의 서브-블록을 포함하고,
    상기 U 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고, 상기 U 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고,
    상기 V 블록의 상기 2개의 서브-블록 중 제1 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되고, 상기 V 블록의 상기 2개의 서브-블록 중 제2 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 시스템.
  20. 제15항에 있어서, 상기 복수의 서브-블록은 크로마 서브-블록들을 포함하고, 상기 크로마 서브-블록들이 수직 분할에 의해 분할될 때, U 블록은 4개의 서브-블록을 포함하고, V 블록은 4개의 서브-블록을 포함하고,
    상기 U 블록의 상기 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 제1 코딩 표 또는 제2 코딩 표를 사용하여 인코딩되고,
    상기 V 블록의 상기 4개의 서브-블록 중 각각의 서브-블록은 계수들로서 모두 제로, 상기 제1 코딩 표 또는 상기 제2 코딩 표를 사용하여 인코딩되는, 시스템.
  21. 제15항에 있어서, 상기 복수의 서브-블록 중 상기 적어도 하나의 서브-블록을 인코딩하는 것은 크로마 서브-블록 인코딩이 온인지 또는 오프인지를 시그널링하기 위한 비트, 수평 분할 또는 수직 분할을 시그널링하기 위한 제2 비트, 및 크로마 서브-블록을 인코딩하는 데 사용되는 코딩 표를 특정하는 크로마 서브-블록 타입을 시그널링하기 위한 비트들의 세트를 포함하는, 시스템.
KR1020190131133A 2019-03-08 2019-10-22 임베디드 이미지 코덱을 위한 서브-블록 기반 엔트로피 코딩 KR102267212B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/297,515 US10666986B1 (en) 2019-03-08 2019-03-08 Sub-block based entropy coding for embedded image codec
US16/297,515 2019-03-08

Publications (2)

Publication Number Publication Date
KR20200107745A true KR20200107745A (ko) 2020-09-16
KR102267212B1 KR102267212B1 (ko) 2021-06-22

Family

ID=70775194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190131133A KR102267212B1 (ko) 2019-03-08 2019-10-22 임베디드 이미지 코덱을 위한 서브-블록 기반 엔트로피 코딩

Country Status (4)

Country Link
US (1) US10666986B1 (ko)
JP (1) JP6993621B2 (ko)
KR (1) KR102267212B1 (ko)
CN (1) CN111669590B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116074514B (zh) * 2023-04-06 2023-06-02 深圳市银河通信科技有限公司 一种多媒体数据的安全通信云广播系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5986711A (en) * 1996-06-28 1999-11-16 Stmicroelectronics S.R.L. MPEG decoding with a reduced RAM requisite by ADPCM recompression before storing MPEG decompressed data, optionally after a subsampling algorithm
US20020181795A1 (en) * 2001-06-04 2002-12-05 Cheng-Hsien Chen Method for compressing image data blocks
KR20130010124A (ko) * 2010-04-12 2013-01-25 퀄컴 인코포레이티드 비디오 압축에서 코딩된 블록 패턴 (cbp) 의 가변 길이 코딩
KR101671080B1 (ko) * 2011-09-12 2016-10-31 퀄컴 인코포레이티드 비디오 코딩에서 비정방형 변환 유닛들 및 예측 유닛들

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US8483282B2 (en) 2007-10-12 2013-07-09 Qualcomm, Incorporated Entropy coding of interleaved sub-blocks of a video block
EP2947878B1 (en) 2010-04-23 2017-02-15 M&K Holdings Inc. Apparatus for encoding an image
US9516316B2 (en) * 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
JP6190361B2 (ja) * 2012-06-01 2017-08-30 シャープ株式会社 算術復号装置、画像復号装置、算術符号化装置、および画像符号化装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5986711A (en) * 1996-06-28 1999-11-16 Stmicroelectronics S.R.L. MPEG decoding with a reduced RAM requisite by ADPCM recompression before storing MPEG decompressed data, optionally after a subsampling algorithm
US20020181795A1 (en) * 2001-06-04 2002-12-05 Cheng-Hsien Chen Method for compressing image data blocks
KR20130010124A (ko) * 2010-04-12 2013-01-25 퀄컴 인코포레이티드 비디오 압축에서 코딩된 블록 패턴 (cbp) 의 가변 길이 코딩
KR101671080B1 (ko) * 2011-09-12 2016-10-31 퀄컴 인코포레이티드 비디오 코딩에서 비정방형 변환 유닛들 및 예측 유닛들

Also Published As

Publication number Publication date
CN111669590A (zh) 2020-09-15
KR102267212B1 (ko) 2021-06-22
JP6993621B2 (ja) 2022-01-13
CN111669590B (zh) 2022-06-10
JP2020145666A (ja) 2020-09-10
US10666986B1 (en) 2020-05-26

Similar Documents

Publication Publication Date Title
US11140401B2 (en) Coded-block-flag coding and derivation
US11750841B2 (en) Methods and apparatuses for coding transform blocks
US8873871B2 (en) Image processing apparatus and method
CN112514386B (zh) 网格编解码量化系数编解码
KR100952892B1 (ko) 비디오 데이타의 인트라코딩 방법 및 장치
US20120219231A1 (en) Method of compression of digital images using a fixed number of bits per block
TWI847806B (zh) 視訊圖像解碼方法、編碼方法、裝置及存儲介質
WO2024022359A1 (zh) 一种图像编解码方法及装置
KR102267212B1 (ko) 임베디드 이미지 코덱을 위한 서브-블록 기반 엔트로피 코딩
US10609411B1 (en) Cross color prediction for image/video compression
US10873747B2 (en) Residual mapping method for image/video compression
KR102267206B1 (ko) 이미지 압축을 위한 하이브리드 팔레트-dpcm 코딩
KR102543449B1 (ko) 이미지 처리 장치 및 이미지 처리 장치의 동작 방법
US10666985B1 (en) Sub-block based entropy coding for image coding
WO2023138391A1 (zh) 系数解码方法、装置、图像解码器及电子设备
US20210076048A1 (en) System, apparatus and method for data compaction and decompaction
JP2022548685A (ja) 画像データの符号化及び復号化
KR20190091181A (ko) 이미지 처리 장치

Legal Events

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