KR101099950B1 - 인코딩된 비디오 압축을 위한 방법 및 시스템 - Google Patents

인코딩된 비디오 압축을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101099950B1
KR101099950B1 KR1020090123918A KR20090123918A KR101099950B1 KR 101099950 B1 KR101099950 B1 KR 101099950B1 KR 1020090123918 A KR1020090123918 A KR 1020090123918A KR 20090123918 A KR20090123918 A KR 20090123918A KR 101099950 B1 KR101099950 B1 KR 101099950B1
Authority
KR
South Korea
Prior art keywords
input
value
suffix
obtaining
prefix
Prior art date
Application number
KR1020090123918A
Other languages
English (en)
Other versions
KR20100069597A (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 KR20100069597A publication Critical patent/KR20100069597A/ko
Application granted granted Critical
Publication of KR101099950B1 publication Critical patent/KR101099950B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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

Landscapes

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

Abstract

청구된 내용의 실시예들은 입력을 Exp-Golomb 코드로 인코딩함으로써 데이터 압축을 수행하는 방법 및 시스템을 제공한다. 일 실시예에서, 데이터 입력의 압축은 부호 없는 Exp-Golomb 코드로서 인코딩하는 것을 통하여 달성된다. 본 방법은 입력을 변환하고, 0이 아닌 값을 갖는 변환된 입력 내의 최상위 비트(MSB)의 위치를 결정하고, 그 MSB의 위치로부터 정보를 획득하고, 압축된 출력을 획득하기 위해 그 정보를 산술적으로 인코딩하는 것에 의해 달성된다.
인코딩, 데이터 압축, VLC, CAVLC, Exp-Golomb 코드, 조회 테이블

Description

인코딩된 비디오 압축을 위한 방법 및 시스템{METHOD AND SYSTEM FOR ENCODED VIDEO COMPRESSION}
본 발명은 인코딩된 비디오 압축을 위한 방법 및 시스템에 관한 것이다.
데이터 압축은 파일 또는 개체(object)를 포함하는 데이터의 양(예를 들면, 비트의 수)을 줄이기 위한 잘 알려진 기술이다. 데이터 압축의 이용은 전송 및 저장 양쪽 모두의 목적을 위해 인기 있다. 일반적인 구현들에서, 데이터 압축은 데이터를 나타내기 위해 이용되는 정보를 보다 작은, 보다 효율적인 양의 데이터로 인코딩함으로써 데이터의 불필요한 반복을 줄이거나 제거하는 알고리즘들의 이용을 통하여 달성된다.
VLC(Variable length Coding) 또는 CAVLC(Context-Adaptive Variable Length Coding)과 같은 알고리즘들은 이미지를 나타내기 위해 요구되는 비트의 수를 줄이기 위해 이용된다. 일반적인 데이터 압축 방식들에서는, 양의 정수들을 바이너리 코드 워드들에 매핑하는 프리픽스 코드(prefix code)가 정수들에 대하여 이용된다. 일반적으로, 정수들에 대한 대부분의 프리픽스 코드들은 보다 큰 정수들에 보다 긴 코드 워드들을 할당한다. 그러한 코드는 단순히 가능한 메시지들의 세트를 감소하 는 확률(decreasing probability)에 따라서 순서를 매기고 그 후 의도된 메시지의 인덱스를 송신함으로써, 그 메시지들의 세트로부터 도출된 메시지를 효율적으로 통신하기 위해 이용될 수 있다.
Exp-Golomb 코딩은 CAVLC의 일례이다. Exp-Golomb 코드들은 가변 길이 코드들이고 AVC(Advanced Video Coding)(예를 들면, H.264)에서 널리 이용된다. 그러나, 다른 가변 길이 코드들(예를 들면, Huffman 코드)과 마찬가지로, Exp-Golomb 코드들을 디코딩하는 것은, 입력 데이터 길이가 다양하고 예측할 수 없기 때문에, 다소 어려울 수 있다.
일반적인 Exp-Golomb 인코딩 알고리즘에서는, 주어진 Exp-Golomb 코드의 개개의 코드 워드들 전부가 고유하다. 또한, 주어진 코드 워드의 n개의 최상위 비트들(MSB들)은 항상 n의 길이를 갖는 임의의 다른 코드 워드와 다르다. 또한, Exp-Golomb 코드 워드는 다수의 "선두 비트들"(leading bits)과 그 뒤에 오는 다른 수의 값 비트들(value bits)로 이루어지고, 값 비트들은 특정 코드 워드의 값을 지정하는 데 도움을 주기 위해 이용된다. 값 비트들의 수는 (일반적으로) 선두 비트들의 수보다 1개 적다. 코드 워드의 선두 비트들은 다수의 선두 0 비트들과 그 뒤에 오는 하나의 1 비트를 포함한다. 선두 0 비트들의 수는 코드 워드에 대한 값 비트들의 수와 동일하다. 보다 짧은 코드 워드들(예를 들면, 단일 디지트(single digit) 코드 워드들)에 대하여, 만약 선두 비트 길이가 1이면, 그 코드 워드에 대한 선두 0 및 값 비트들은 없다.
Exp-Golomb 코드들을 인코딩하기 위한 종래의 기법들은 종종 주어진 코드 워 드에 대응하는 코드 넘버를 조회(look-up)하기 위한 테이블 매핑(table mapping)의 사용을 포함한다. 그러한 기법에서, 디코딩 조회 테이블 내의 항목들의 수는 2^(가장 긴 가능한 코드 길이)개일 수 있다. 예를 들면, 만약 최대 코드 길이가 8이면, 테이블은 28(256)개 항목들을 가질 수 있고, 보다 긴 코드 길이들은 일반적으로 그 테이블에 대하여 지수적으로 더 큰 메모리 사이즈를 요구한다. 코드 길이들은 가변적이고 16 및 심지어 32 비트까지의 길이들이 일반적이기 때문에, 조회 테이블에 대하여 요구되는 메모리의 사이즈는 상당할 수 있고, 하드웨어로 구현하기 위해서는 큰 실리콘 면적이 요구된다. 또한, 조회 테이블들을 순차적으로 가로지르는 데에 필요한 시간도 상당할 수 있고, 불필요한 변환 지연들을 초래할 수 있다.
더욱이 이들 기법들은 일반적으로 부호 없는 입력에만 적용 가능하고 부호 없는 Exp-Golomb 코드를 출력으로서 생성한다. 따라서, 부호 있는(예를 들면, 음의) 입력을 인코딩하는 것은 일반적으로 Exp-Golomb 코드로 변환하기 전에 부호 있는 입력으로부터 양의 입력으로의 추가의 변환을 요구한다. 당연히, 이 중간 변환은 수행하기 위해 추가적인 컴포넌트들을 요구하거나 추가적인 처리 시간을 소비할 수 있다.
본 발명의 실시예들은 큰 조회 테이블들의 사용 없이 입력을 Exp-Golomb 코 드로 인코딩함으로써 데이터 압축을 수행하기 위한 방법 및 시스템에 관한 것이다. 부호 없는 데이터 입력의 부호 없는 Exp-Golomb로의 인코딩을 가능하게 하는 방법이 제공된다.
하나의 신규한 방법은 부호 없는 Exp-Golomb 코드로서 인코딩을 통하여 부호 없는 데이터 입력의 데이터 압축을 달성한다. 이 방법은 비교적 작은 조회 테이블과 본 명세서에 설명된 일련의 산술 연산들의 조합에 의해 달성된다. 다른 신규한 방법은 부호 있는 데이터를 압축하는 능력을 제공한다. 이 방법은 부호 없는 신택스 값들(unsigned syntax values)로의 초기 변환 없이 달성되고 비교적 작은 조회 테이블과 본 명세서에 설명된 일련의 산술 연산들의 조합을 통하여 달성된다.
본 명세서에 설명된 실시예들은 유리하게도 비교적 작은 실리콘 면적을 이용한 고속 데이터 변환을 가능하게 한다. 회로 설계들은 또한 쉽게 합성될 수 있는 컴포넌트들, 예를 들면, 증가기(incrementer), 가산기(adder)/감산기(substractor), 배럴 시프터(barrel shifter) 등을 이용한다. 부호 없는 및 부호 있는 입력 값들에 대한 변환들이 설명된다.
이 명세서에 포함되고 이 명세서의 일부를 형성하는 첨부 도면들은 본 발명의 실시예들을 도시하고, 상세한 설명과 함께, 본 발명의 원리들을 설명하는 데 도움이 된다.
이제 몇 개의 실시예들에 대해 상세히 언급한다. 본 내용은 대안 실시예들과 관련하여 설명될 것이지만, 그것들은 청구된 내용을 이들 실시예들에 제한하기 위해 의도된 것이 아님을 이해해야 한다. 이에 반하여, 청구된 내용은 첨부된 청구항들에 의해 정의된 바와 같은 청구된 내용의 정신 및 범위 내에 포함될 수 있는 대안들, 수정들, 및 동등물들을 포함하도록 의도된 것이다.
또한, 이하의 상세한 설명에서는, 청구된 내용의 철저한 이해를 제공하기 위하여 다수의 특정 상세들이 제시된다. 그러나, 이 기술 분야의 숙련자는 실시예들이 이들 특정 상세들 없이 또는 그의 동등물들에 의해 실시될 수 있다는 것을 인지할 것이다. 다른 사례들에서, 본 내용의 양태들 및 특징들을 불필요하게 모호하게 하지 않기 위해 잘 알려진 프로세스들, 프로시저들, 컴포넌트들, 및 회로들은 상세히 설명되지 않았다.
다음에 오는 상세한 설명의 부분들은 프로세스에 관하여 설명되고 논의된다. 비록 그것의 스텝들 및 순서(sequencing)는 이 프로세스의 동작들을 설명하는 본 명세서의 도면(예를 들면, 도 1, 3)에 개시되어 있지만, 그러한 스텝들 및 순서는 예시적이다. 실시예들은 본 명세서의 도면의 순서도에 열거된 스텝들의 다양한 다른 스텝들 또는 변형들을, 본 명세서에 도시되고 설명된 것과는 다른 순서로 수행하는 것에 적합하다.
상세한 설명의 어떤 부분들은 컴퓨터 메모리에서 수행될 수 있는 데이터 비트들에 대한 연산들의 프로시저들, 스텝들, 논리 블록들, 프로세싱, 또는 다른 기호 표현들에 관하여 설명된다. 이들 설명들 및 표현들은 데이터 처리 기술 분야의 숙련자들이 그 기술 분야의 다른 숙련자들에게 그들의 연구의 내용을 가장 효과적으로 전달하기 위해 이용되는 수단들이다. 프로시저, 컴퓨터 실행(computer-executed) 스텝, 논리 블록, 프로세스 등은, 여기에서, 그리고 일반적으로, 소망하는 결과에 이르는 스텝들 또는 명령어들의 자기 모순이 없는 시퀀스(self-consistent sequence)라고 생각된다. 그 스텝들은 물리적 양들의 물리적 조작들을 요구하는 것들이다. 통상적으로, 반드시 그렇지는 않더라고, 이들 양들은 컴퓨터 시스템에서, 저장되고, 전송되고, 조합되고, 비교되고, 다른 방법으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 때때로, 주로 보통의 용법 때문에, 이들 신호들을 비트, 값, 엘리먼트, 기호, 문자, 용어(term), 수(number) 등으로 부르는 것이 편리한 것으로 판명되었다.
그러나, 이들 및 유사한 용어들은 적절한 물리적 양들과 관련될 것이고 이들 양들에 적용되는 편리한 표시들에 불과하다는 것을 유념해야 한다. 다음의 논의들로부터 명백한 바와 같이 구체적으로 다르게 진술되지 않는 한, 도처에서, "액세스하는", "기입하는", "포함하는", "저장하는", "전송하는", "횡단하는", "관련시키는", "식별하는" 등과 같은 용어들을 이용한 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들로서 표현되는 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장, 전송 또는 표시 장치들 내의 물리적 양들로서 표현되는 다른 데이터로 조작하고 변환하는, 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 장치의 액션 및 프로세스들을 나타낸다.
이하의 예시적인 구성들은 특정한, 열거된 특징들 및 엘리먼트들을 포함하는 것으로 도시되지만, 그러한 도시는 예시적이다. 따라서, 실시예들은 상이한, 추가적인, 또는 보다 적은 수의 엘리먼트들, 특징들, 또는 배열들을 수반하는 응용들에 적합하다.
<예시적인 부호 없는 Exp-Golomb 인코딩 프로세스>
도 1에 관해서는, 본 발명의 다양한 실시예들에 따른, 부호 없는 입력을 부호 없는 Exp-Golomb 코드로서 인코딩하기 위한 예시적인 프로세스(100)의 순서도가 도시되어 있다. 프로세스(100)는, 예를 들면, 비디오 프로세싱 장치와 같은, 프로세싱 시스템 내의 프로세서에 의해 수행될 수 있다. 스텝들(101-109)은 또한 본 명세서에 설명된 것과 같은 전용 로직에 의해 수행될 수도 있다(도 2 참조).
도 1의 스텝 101에서는, 부호 없는 입력 데이터가 수신된다. 그 입력은, 예를 들면, Exp-Golomb 코드로서 인코딩될 부호 없는 정수를 포함할 수 있다. 일 실시예에서, 입력은 바이너리로 수신되고 다양한 데이터 블록들로부터의 신택스 엘리먼트(syntax element)에 대응한다. 다른 실시예들에서, 입력은, 예를 들면, 16 비트 버스를 이용하여 수신되는 것과 같은, 1 비트와 16 비트 사이의(및 1 비트와 16 비트를 포함하는) 길이를 갖는 바이너리 값일 수 있다.
스텝 103에서는, 스텝 101에서 수신된 입력이 시프트된 입력으로 변환된다. 수신된 입력을 변환하는 것은, 예를 들면, 입력에 값을 가산하고 그 합을 벡터에 의해 논리적으로 시프트하는 것을 포함한다. 일 실시예에서, 입력에 가산되는 값은 1이다(산술적으로). 입력에 값을 가산하는 것은, 예를 들면, 증가기(incrementer)에 의해 수행될 수 있다. 다른 실시예들에서, 시프트 벡터의 크기 는 우측 방향으로 1이다. 예를 들면, 입력을 변환하는 것은 입력을 1을 가산하고 그 결과의 합(바이너리)을 1 차수만큼 우측 시프트하여, 최하위 비트(예를 들면, 입력과 값 합의 가장 오른쪽 비트)가 제거되도록(예를 들면, 버려지도록) 하는 것을 포함할 수 있다. 일반적인 실시예에서, 최하위 비트를 버리는 것은 어떤 추가적인 논리 게이트도 필요로 하지 않는다.
스텝 105에서는, 0이 아닌(예를 들면, 1) 값을 갖는 시프트된 입력의 최상위 비트의 위치가 결정된다. 최상위 0이 아닌 비트의 위치("MSB 위치")를 결정하는 것은, 예를 들면, 최상위 비트로부터 시작하여 최하위 비트까지 진행하여, 시프트된 데이터의 비트들을 통하여 순차적으로 지나가서(serially sweeping), 첫 번째(최상위) "1" 값을 검출하는 것을 포함할 수 있다.
스텝 107에서는, 스텝 105에서 결정된, 시프트된 입력의 최상위 0이 아닌 비트의 위치로부터 정보가 획득된다. 일 실시예에서, 그 정보는 최상위 0이 아닌 비트의 위치의 값에 대한 조회 테이블을 참조함으로써 획득된다. 다른 실시예에서, 조회 테이블은 (16-비트 입력에 대하여) 32개 이하의 항목들들 포함한다.
일 실시예에서, 스텝 107에서 획득된 정보는 최상위 0이 아닌 비트의 위치에 대응하는 미리 정의된 수의 비트들을 갖는 값을 포함하는 프리픽스를 포함한다. 다른 실시예들에서, 프리픽스는 그 값 내의 모든 비트들이, 1의 값으로 설정되어 있는 n번째 비트를 제외하고는, 0인, 33-비트 값이며, 여기서 n은 (16 비트의 최대 가능한 사이즈를 갖는 입력에 대하여) 33 - MSB 위치의 값이다. 예를 들면, 만약 스텝 103에서 변환된 시프트된 입력에서, 0이 아닌 값을 갖는 최상위 비트가 우측 으로부터 3번째 비트라면, MSB 위치는 3의 값을 갖고, n은 30의 값을 가지며, 프리픽스는 그 값의 모든 비트가, 1로 설정되어 있는 30번째 비트를 제외하고는, 0인 33-비트 값이다.
일부 실시예들에서, 스텝 107에서 획득된 정보는 또한, 가변적인 수의 비트들을 갖는 바이너리 값인, 프리픽스 값을 포함한다. 일 실시예에서, 프리픽스 값은 최상위 0이 아닌 비트의 값과 같은 크기만큼 좌측 시프트된 1을 포함한다. 앞의 예를 계속할 때, 3의 값을 갖는 MSB 위치에 대한 프리픽스 값은 1000(1이 3의 차수만큼 좌측 시프트됨)과 같을 것이다.
일부 실시예들에서, 스텝 107에서 획득된 정보는 또한, 프로세스(100)에 의해 생성된 Exp-Golomb 인코딩된 비트 스트링의 길이를 포함하는, 코드 길이를 포함한다. 일 실시예에서, 코드 길이는 MSB 위치 값에 2를 곱하고, 그 결과의 곱에 1을 가산하는 것에 의해 획득된다.
또 다른 실시예들에서, 스텝 107에서 획득된 정보는 또한 서픽스-시프트(suffix-shift) 값을 포함할 수 있다. 일 실시예에서, 서픽스-시프트 값은 수 33으로부터 코드 길이를 감산함으로써 획득될 수 있다.
마지막으로, 스텝 109에서는, 부호 없는 출력을 생성하기 위해 스텝 107에서 획득된 정보가 산술적으로 인코딩된다. 일 실시예에서, 그 정보는 (미리 정의된 수의 비트들을 갖는 값을 포함하는) 서픽스를 획득하고, 그 서픽스의 값과 스텝 107에서 획득된 프리픽스의 값에 대하여 비트마다의 OR(bitwise OR)를 수행하는 것에 의해 산술적으로 인코딩된다. 일 실시예에서, 서픽스는 스텝 101에서 수신된 입력과 스텝 103에서 가산된 값(예를 들면, 1)의 합으로부터 스텝 107에서 획득된 프리픽스 값을 감산함으로써 획득된다. 다른 실시예들에서, 서픽스는 스텝 107에서 획득된 프리픽스의 값과의 비트마다의 OR를 실행하기 전에 먼저 스텝 107에서 획득된 서픽스-시프트 값만큼 서픽스를 배럴 좌측 시프트(barrel left-shifting)하는 것에 의해 최종 서픽스 값으로 변환된다.
그 결과의 데이터의 스트링(예를 들면, 33-비트 스트링)이 출력되어, 스텝 107에서 획득된 코드 길이와 결합되고, 스텝 101에서 수신된 입력에 대한 부호 없는 Exp-Golomb 인코딩에 대응한다. 일 실시예에서, 비트 스트링의 처음 m개 비트는 압축된 파일 또는 개체를 포함하는 Exp-Golomb 인코딩의 비트 스트림과 결합되고(예를 들면, 추가되고), 여기서 m은 코드 길이와 같다. 따라서, Exp-Golomb 인코딩을 이용한 데이터 압축은 크게 감소된 사이즈를 갖는 참조용으로 이용되는 조회 테이블에 의해 달성될 수 있고, 이로 인해 참조용 조회 테이블을 순차적으로 가로지르는 데 필요한 실질적인 비용 및 지연이 절감되고, 인코딩이 수행될 수 있는 하드웨어 플랫폼이 작아질 수 있다.
프로세스(100)에 대한 예시적인 의사 코드가 아래 표 1에 제공된다:
[표 1]
Figure 112009077039672-pat00001
Figure 112009077039672-pat00002
Figure 112009077039672-pat00003
<예시적인 부호 없는 Exp-Golomb 인코딩 하드웨어 구성>
도 2에 관해서는, 본 발명의 실시예들에 따른, 부호 없는 Exp-Golomb 코드를 인코딩하기 위한 하드웨어 구현을 포함하는 논리 회로 컴포넌트들의 예시적인 하드 웨어 구성(200)의 블록도가 도시되어 있다. 구성(200)은, 예를 들면, 도 1의 프로세스(100)에 대한 예시적인 하드웨어 구현을 포함할 수 있다.
일반적인 배열에서, 도 2의 구성(200)은 증가기 회로(201), 조회 테이블 메모리(205), 감산기 회로(207), 배럴 시프터 회로(209) 및 논리 게이트(211)를 포함한다. 입력 및 출력 버스들의 비트 사이즈들은 단지 예시를 위한 것으로 이해되어야 한다. 일 실시예에서, 입력을 Exp-Golomb 코드로서 인코딩하는 프로세스는 도 1의 스텝 101에 관련하여 설명된 바와 같이, 입력을 수정하는 것을 포함한다. 이 예에서, 입력은 16-비트 값이다. 입력을 수정하는 것은, 예를 들면, 입력에 미리 정의된 값을 가산하는 것과, 입력과 그 값의 합의 우측 시프트를 수행하는 것을 포함할 수 있다. 일 실시예에서, 미리 정의된 값은 1이고, 입력에 그 값(1)을 가산하는 것은 증가기(201)에 의해 수행된다. 증가기(201)는, 예를 들면, 디지털 회로(예를 들면, 가산기)로서 구현될 수 있다. 스테이트(203)에서는, 입력의 증가된 값이 1의 차수만큼 우측 시프트되어, 그 증가된 값의 최하위 비트가 제거된다. 일부 실시예들에서, 최하위 비트의 제거는 산술적으로(예를 들면, 산술 논리 유닛에 의해) 수행될 수 있고 수행하기 위해 어떤 전용 논리 회로도 필요로 하지 않는다.
프로세스(100)에서, 시프트된 입력의 MSB 위치에 대응하는 정보는 조회 테이블 메모리(205)에서 MSB 위치를 참조함으로써 획득될 수 있다. 일 실시예에서, 조회 테이블(205)은 입력의 최대 길이에 대응한다. 예를 들면, 16 비트의 최대 길이를 갖는 입력에 대한 조회 테이블(205)은 32개 이하의 항목을 포함할 수 있고, 각 항목은 스텝 107에 관련하여 설명된 바와 같이 프리픽스(예를 들면, prefix_value, 등)를 획득하기에 충분한 정보를 포함한다.
조회 테이블(205)로부터 획득된 정보는 일련의 산술 및 논리 연산들을 수행함으로써 입력을 부호 없는 Exp-Golomb 코드로 산술적으로 인코딩하기 위해 이용될 수 있다. 일 실시예에서, 입력을 부호 없는 Exp-Golomb 코드로 산술적으로 인코딩하는 것은 서픽스를 획득하고, 서픽스를 배럴 시프트하고, 배럴 시프트된 서픽스와 조회 테이블(205)로부터 획득된 프리픽스에 대하여 비트마다의 OR를 수행하는 것을 포함한다. 다른 실시예들에서, 서픽스는 증가기(201)에서 증가된 입력을 조회 테이블(205)로부터 획득된 프리픽스-값으로 감산하는 것에 의해 획득된다. 입력을 감산하는 것은, 예를 들면, 감산기(207)에 의해 수행될 수 있다. 일 실시예에서, 감산기(207)는 디지털 회로이다.
일 실시예에서, 서픽스는 (조회 테이블(205)로부터 획득된) 서픽스-시프트 값과 같은 비트의 수만큼 배럴 시프트된다. 서픽스를 서픽스-시프트 값만큼 배럴 시프트하는 것은, 예를 들면, 배럴 시프터(209)에서 수행될 수 있다. 일 실시예에서, 배럴 시프터(209)는 복수의 멀티플렉서들을 포함하는 디지털 회로로서 구현될 수 있다. 그 후 배럴 시프터(209)로부터 획득된 결과의 최종 서픽스와 조회 테이블(205)로부터 획득된 프리픽스에 대하여 비트마다의 OR가 수행된다. 비트마다의 OR는, 예를 들면, 디지털 회로 내의 논리 게이트에서 수행될 수 있다. 그 결과의 출력은 입력에 대응하는 길이를 갖는 길이가 33 비트까지의 부호 없는 Exp-Golomb 코드를 포함한다. 조회 테이블(205)로부터 생성된 5-비트 출력 버스 상의 코드 길이 값은 부호 없는 Exp-Golomb 코드에서 관련 비트들을 구별한다.
<예시적인 부호 있는 Exp-Golomb 인코딩 프로세스>
도 3에 관해서는, 본 발명의 실시예들에 따른, 부호 있는 입력을 부호 있는 Exp-Golomb 코드로서 인코딩하는 예시적인 프로세스(300)의 순서도가 도시되어 있다. 프로세스(300)는, 예를 들면, 비디오 프로세싱 장치와 같은, 프로세싱 시스템 내의 프로세서에 의해, 또는 도 4와 같은 전용 하드웨어에 의해 수행될 수 있다.
스텝 301에서는, 부호 있는 입력 값이 수신된다. 이 입력은, 예를 들면, Exp-Golomb 코드로서 인코딩될 부호 있는 정수를 포함할 수 있다. 일 실시예에서, 입력은 부호 있는 정수로서 수신되고 다양한 데이터 블록들로부터의 신택스 엘리먼트(syntax element)에 대응한다. 다른 실시예들에서, 입력은 1 비트와 16 비트 사이의(및 1 비트와 16 비트를 포함하는) 길이를 가질 수 있다.
스텝 303에서는, 스텝 301에서 수신된 입력이 입력의 절대값으로 변환된다. 수신된 입력을 절대값으로 변환하는 것은, 예를 들면, 입력을 입력의 바이너리 값의 2의 보수(the two's complement)로 변환하는 것을 포함할 수 있다. 입력을 입력의 바이너리 값의 2의 보수로 변환하는 것은, 바이너리 값을 (비트마다의 NOT 연산을 통하여) 반전시키고, 그 결과의 값에 1의 값을 가산하는 것에 의해 수행된다. 1의 값을 가산하는 것은, 예를 들면, 증가기에서 수행될 수 있다.
스텝 305에서는, 0이 아닌(예를 들면, 1) 값을 갖는 입력의 절대값(예를 들면, 2의 보수)의 최상위 비트의 위치가 결정된다. 최상위 0이 아닌 비트의 위치("MSB 위치")를 결정하는 것은, 예를 들면, 최상위 비트로부터 시작하여 최하위 비트까지 진행하여, 시프트된 데이터의 비트들을 통하여 순차적으로 지나가 서(serially sweeping), 첫 번째(최상위) "1" 값을 검출하는 것을 포함할 수 있다.
스텝 307에서는, 스텝 305에서 결정된, 입력의 절대값의 최상위 0이 아닌 비트의 위치로부터 정보가 획득된다. 일 실시예에서, 그 정보는 최상위 0이 아닌 비트의 위치의 값에 대한 조회 테이블을 참조함으로써 획득된다. 다른 실시예에서, 조회 테이블은 (16-비트 입력에 대하여) 32개 이하의 항목들들 포함한다. 32개 이하의 항목을 갖는 조회 테이블을 요구함으로써 그 조회 테이블을 하드웨어로 구현하기 위해 요구되는 하나 이상의 실리콘 영역들의 사이즈는, 일반적으로 216(65,536)개 또는 232(4,294,967,296)개 항목을 갖는 조회 테이블들을 포함하는 종래의 기법들에 대하여, 크게 감소된다.
일 실시예에서, 스텝 307에서 획득된 정보는 최상위 0이 아닌 비트의 위치에 대응하는 미리 정의된 수의 비트들을 갖는 값을 포함하는 프리픽스를 포함한다. 다른 실시예들에서, 프리픽스는 그 값 내의 모든 비트들이, 1의 값으로 설정되어 있는 n번째 비트를 제외하고는, 0인, 33-비트 값이며, 여기서 n은 (16 비트의 최대 가능한 사이즈를 갖는 입력에 대하여) 33 - MSB 위치의 값이다. 예를 들면, 만약 스텝 303에서 변환된 시프트된 입력에서, 0이 아닌 값을 갖는 최상위 비트가 우측으로부터 3번째 비트라면, MSB 위치는 3의 값을 갖고, n은 30의 값을 가지며, 프리픽스는 그 값의 모든 비트가, 1로 설정되어 있는 30번째 비트를 제외하고는, 0인 33-비트 값이다.
일부 실시예들에서, 스텝 307에서 획득된 정보는 또한, 가변적인 수의 비트 들을 갖는 바이너리 값인, 프리픽스 값을 포함한다. 일 실시예에서, 프리픽스 값은 최상위 0이 아닌 비트의 값과 같은 크기만큼 좌측 시프트된 1을 포함한다. 앞의 예를 계속할 때, 3의 값을 갖는 MSB 위치에 대한 프리픽스 값은 1000(1이 3의 차수만큼 좌측 시프트됨)과 같을 것이다. 또 다른 실시예들에서, 프리픽스 값은 정정된 프리픽스 값을 획득하기 위해 더 수정될 수 있다. 일 실시예에서, 정정된 프리픽스 값을 획득하는 것은 입력의 16번째 비트의 값에 프리픽스 값을 가산하고, 그 결과의 합을 스텝 301에서 수신된 입력의 역수(예를 들면, NOT 연산을 수행한 후의 결과의 값)에 대해 논리적으로 OR 연산하는 것을 포함한다. 즉, 만약 15번째 비트가 1과 같거나, 입력 데이터(data_in) 내의 모든 비트들이 0이라면, 프리픽스 값에 1이 가산된다. 그렇지 않다면, 정정된 프리픽스 값은 프리픽스 값과 같은 값을 갖는다.
일부 실시예들에서, 스텝 307에서 획득된 정보는 또한, 프로세스(300)에 의해 생성된 Exp-Golomb 인코딩된 비트 스트링의 길이를 포함하는, 코드 길이를 포함한다. 일 실시예에서, 코드 길이는 MSB 위치 값에 2를 곱하고, 그 결과의 곱에 1을 가산하는 것에 의해 획득된다.
또 다른 실시예들에서, 스텝 307에서 획득된 정보는 또한 서픽스-시프트(suffix-shift) 값을 포함할 수 있다. 일 실시예에서, 서픽스-시프트 값은 수 33으로부터 코드 길이를 감산함으로써 획득될 수 있다.
마지막으로, 스텝 309에서는, 부호 있는 출력을 생성하기 위해 스텝 307에서 획득된 정보가 산술적으로 인코딩된다. 일 실시예에서, 그 정보는 (미리 정의된 수의 비트들을 갖는 값을 포함하는) 서픽스를 획득하고, 그 서픽스의 값과 스텝 307에서 획득된 프리픽스의 값에 대하여 비트마다의 OR를 수행하는 것에 의해 산술적으로 인코딩된다. 일 실시예에서, 서픽스는 스텝 301에서 수신된 입력의 절대값과 스텝 303에서 가산된 값(예를 들면, 1)의 합으로부터 스텝 307에서 획득된 정정된 프리픽스 값을 감산함으로써 획득된다. 다른 실시예들에서, 서픽스는 스텝 307에서 획득된 프리픽스의 값과의 비트마다의 OR를 실행하기 전에 먼저 스텝 307에서 획득된 서픽스-시프트 값만큼 서픽스를 배럴 좌측 시프트하는 것에 의해 최종 서픽스 값으로 변환된다.
그 결과의 데이터의 스트링(예를 들면, 33-비트 스트링)이 출력되어, 스텝 307에서 획득된 코드 길이와 결합되고, 스텝 301에서 수신된 입력에 대한 부호 있는 Exp-Golomb 인코딩에 대응한다. 일 실시예에서, 비트 스트링의 처음 m개 비트는 압축된 파일 또는 개체를 포함하는 Exp-Golomb 인코딩의 비트 스트림과 결합되고(예를 들면, 추가되고), 여기서 m은 코드 길이와 같다. 전술한 바와 같이 비용 및 지연을 감소시키는 이점들에 더하여, Exp-Golomb 코드를 통하여 달성되는 데이터 압축들은, 수행하기 위해 추가적인 컴포넌트들을 필요로 하거나 추가적인 처리 시간을 소비할 수 있는, 부호 없는 신택스 값들로의 중간 변환 없이, 직접 부호 있는 입력에 대하여 수행될 수 있다.
프로세스(300)에 대한 예시적인 의사 코드가 아래 표 2에 제공된다:
[표 2]
Figure 112009077039672-pat00004
Figure 112009077039672-pat00005
Figure 112009077039672-pat00006
<예시적인 부호 있는 Exp-Golomb 인코딩 하드웨어 구성>
도 4에 관해서는, 부호 있는 Exp-Golomb 코드를 인코딩하기 위한 하드웨어 구현을 포함하는 논리 컴포넌트들의 예시적인 하드웨어 구성(400)의 블록도가 도시되어 있다. 구성(400)은, 예를 들면, 프로세스(300)에 대한 예시적인 하드웨어 구성을 포함할 수 있다.
일반적인 배열에서, 구성(400)은 증가기 회로(401), 조회 테이블 메모리(405), 감산기 회로(407), 배럴 시프터 회로(409) 및 논리 게이트(411)를 포함한다. 일 실시예에서, 입력을 Exp-Golomb 코드로서 인코딩하는 프로세스는 도 3의 스텝 301에 관련하여 설명된 바와 같이, 입력의 절대값을 2의 보수로서 획득하는 것을 포함한다. 입력 및 출력 버스들의 비트 사이즈는 예시적이다. 16-비트 입력의 절대값을 획득하는 것은, 예를 들면, 입력의 값을 논리적으로 반전시키는 것과, 입력에 미리 정의된 값을 가산하는 것을 포함할 수 있다. 일 실시예에서, 미리 정의된 값은 1이고, 입력에 그 값(1)을 가산하는 것은 증가기(401)에 의해 수행된다. 증가기(401)는, 예를 들면, 디지털 회로(예를 들면, 가산기)로서 구현될 수 있다. 스테이트(403)에서는, 입력의 절대값이 1의 차수만큼 좌측 시프트되어, 그 증가된 값의 최하위 비트가 제거된다. 일부 실시예들에서, 입력의 절대값을 좌측 시프트하는 것은, 예를 들면, 디지털 회로에서 수행될 수 있다.
프로세스(300)에서, 시프트된 입력의 MSB 위치에 대응하는 정보는 조회 테이블(405)에서 MSB 위치를 참조함으로써 획득될 수 있다. 일 실시예에서, 조회 테이블(405)은, 도 2에 관련하여 설명된, 조회 테이블 메모리(205)에 대응한다.
조회 테이블(405)로부터 획득된 정보는 일련의 산술 및 논리 연산들을 수행함으로써 입력을 부호 있는 Exp-Golomb 코드로 산술적으로 인코딩하기 위해 이용될 수 있다. 일 실시예에서, 입력을 부호 있는 Exp-Golomb 코드로 산술적으로 인코딩하는 것은 서픽스를 획득하고, 서픽스를 배럴 시프트하고, 배럴 시프트된 서픽스와 조회 테이블(405)로부터 획득된 프리픽스에 대하여 비트마다의 OR를 수행하는 것을 포함한다. 다른 실시예들에서, 서픽스는 증가기(401)에서 증가된 입력을 조회 테이블(405)로부터 획득된 정정된 프리픽스-값으로 감산하는 것에 의해 획득된다. 일 실시예에서, 정정된 프리픽스-값은 조회 테이블(405)로부터의 프리픽스 값 및 입력 데이터(data_in)로부터 다음 식에 의해 획득된다:
prefix_value + (data_in[15]∥(!(|data_in))).
입력을 감산하는 것은, 예를 들면, 감산기(407)에 의해 수행될 수 있다. 일 실시예에서, 감산기(407)는 디지털 회로이다.
일 실시예에서, 서픽스는 (조회 테이블(405)로부터 획득된) 서픽스-시프트 값과 같은 비트의 수만큼 배럴 시프트된다. 서픽스를 서픽스-시프트 값만큼 배럴 시프트하는 것은, 예를 들면, 배럴 시프터(409)에서 수행될 수 있다. 일 실시예에서, 배럴 시프터(409)는 복수의 멀티플렉서들을 포함하는 디지털 회로로서 구현될 수 있다. 그 후 배럴 시프터(409)로부터 획득된 결과의 최종 서픽스와 조회 테이블(405)로부터 획득된 프리픽스에 대하여 비트마다의 OR가 수행된다. 비트마다의 OR는, 예를 들면, 디지털 회로 내의 논리 게이트에서 수행될 수 있다. 그 결과의 출력은 입력에 대응하는 길이를 갖는 길이가 33 비트까지의 부호 있는 Exp-Golomb 코드를 포함한다. 조회 테이블(405)로부터 생성된 5-비트 코드 길이는 부호 있는 Exp-Golomb 코드에서 관련 비트들을 구별한다.
비록 본 내용은 구조적 특징들 및/또는 방법논리적 행위들에 특정한 말로 설명되었지만, 첨부된 청구항들에서 정의된 내용은 위에 설명된 특정한 특징들 또는 행위들에 반드시 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 위에 설명된 특정한 특징들 또는 행위들은 청구항들을 구현하는 예시의 형태들로서 개시된다.
도 1은 본 발명의 실시예들에 따른, 부호 없는 입력에 대한 예시적인 Exp-Golomb 인코딩 프로세스의 순서도.
도 2는 본 발명의 실시예들에 따른, 부호 없는 Exp-Golomb 코드를 인코딩하기 위한 하드웨어 구현을 포함하는 논리 컴포넌트들의 예시적인 구성의 블록도.
도 3은 본 발명의 실시예들에 따른, 부호 있는 입력에 대한 예시적인 Exp-Golomb 인코딩 프로세스의 순서도.
도 4는 본 발명의 실시예들에 따른, 부호 있는 Exp-Golomb 코드를 인코딩하기 위한 하드웨어 구현을 포함하는 논리 컴포넌트들의 예시적인 구성의 블록도.
<도면의 주요 부분에 대한 설명>
201, 401: 증가기 회로
205, 405: 조회 테이블 메모리
207, 407: 감산기 회로
209, 409: 배럴 시프터 회로
211, 411: 논리 게이트

Claims (20)

  1. 부호 없는 데이터의 입력을 부호 없는 Exp-Golomb 코드로서 압축하기 위한 방법으로서,
    바이너리 데이터를 포함하는 입력을 수신하는 단계 - 상기 입력은 제1 길이를 가짐 -;
    상기 입력을 시프트된 입력(shifted input)으로 변환하는 단계;
    상기 시프트된 입력에 대한 최상위 비트(MSB) 위치를 결정하는 단계;
    상기 MSB 위치로부터 상기 입력에 대응하는 복수의 정보를 획득하는 단계; 및
    압축된 출력을 획득하기 위해 상기 복수의 정보를 산술적으로 인코딩하는 단계 - 상기 압축된 출력은 상기 제1 길이와 같거나 그보다 작은 코드 길이를 가짐 -
    를 포함하는 압축 방법.
  2. 제1항에 있어서, 상기 입력을 시프트된 입력으로 변환하는 단계는,
    상기 입력에 값을 가산하여 증가된 입력을 생성하는 단계; 및
    시프트된 입력을 포함하도록 상기 증가된 입력의 최하위 비트를 버리는 단계를 포함하는 압축 방법.
  3. 제1항에 있어서, 상기 최상위 비트(MSB) 위치를 결정하는 단계는 상기 시프 트된 입력에서 0이 아닌 값(non zero value)을 갖는 최상위 디지트(most significant digit)의 위치에 대응하는 값을 결정하는 단계를 포함하는 압축 방법.
  4. 제1항에 있어서, 상기 복수의 정보를 획득하는 단계는, 상기 시프트된 입력에 대한 상기 MSB 위치에 대응하는 복수의 값들에 대한 데이터의 조회 테이블(look-up table)을 참조하는 단계를 포함하는 압축 방법.
  5. 제4항에 있어서, 상기 입력은 16-비트 바이너리 값이고, 상기 조회 테이블은 32개 항목들(entries)을 포함하는 압축 방법.
  6. 제2항에 있어서, 상기 입력은 16 비트 바이너리 값이고, 상기 복수의 정보를 획득하는 단계는,
    상기 코드 길이를 획득하는 단계 - 상기 코드 길이는 상기 MSB 위치에 대응함 -;
    프리픽스(prefix)를 획득하는 단계 - 상기 프리픽스는 상기 MSB 위치에 대응하는 33-비트 스트링을 포함함 -;
    프리픽스 값을 획득하는 단계 - 상기 프리픽스 값은 상기 MSB 위치에 대응하는 가변 디지트 값을 포함함 -; 및
    서픽스-시프트 값(suffix-shift value)을 획득하는 단계 - 상기 서픽스-시프트 값은 미리 정의된 값으로부터 감산된 상기 코드 길이와 같은 값을 포함함 - 를 포함하는 압축 방법.
  7. 제6항에 있어서, 상기 복수의 정보를 산술적으로 인코딩하는 단계는,
    상기 서픽스-시프트 값, 상기 증가된 입력 및 상기 프리픽스 값으로부터 최종-서픽스(final-suffix)를 획득하는 단계; 및
    상기 최종-서픽스 값 및 상기 프리픽스로부터 상기 입력을 나타내는 상기 압축된 출력을 생성하는 단계를 포함하는 압축 방법.
  8. 제7항에 있어서, 상기 최종-서픽스를 획득하는 단계는,
    상기 프리픽스 값 및 상기 증가된 입력으로부터 서픽스를 획득하는 단계 - 상기 서픽스는 비트들의 스트링을 포함함 -; 및
    상기 서픽스를 상기 서픽스-시프트 값만큼 배럴 시프트하는(barrel shifting) 단계를 포함하는 압축 방법.
  9. 제8항에 있어서, 상기 압축된 출력을 생성하는 단계는, 상기 최종-서픽스 및 상기 프리픽스에 대하여 비트마다의 OR(bit-wise OR)를 수행하는 단계를 포함하는 압축 방법.
  10. 제1항에 있어서, 상기 압축된 출력은 CAVLC(context adaptive variable length code)인 압축 방법.
  11. 제10항에 있어서, 상기 CAVLC는 Exp-Golomb 코드인 압축 방법.
  12. 부호 있는 데이터의 입력을 압축하기 위한 방법으로서,
    바이너리 데이터를 포함하는 입력을 수신하는 단계 - 상기 입력은 제1 길이를 가짐 -;
    상기 입력을 상기 입력의 절대값으로 변환하는 단계;
    조회 테이블에서 상기 입력의 상기 절대값을 참조하는 단계;
    상기 조회 테이블로부터 상기 입력의 상기 절대값에 대응하는 복수의 정보를 획득하는 단계; 및
    압축된 출력을 획득하기 위해 상기 복수의 정보를 산술적으로 인코딩하는 단계 - 상기 압축된 출력은 상기 제1 길이와 같거나 그보다 작은 코드 길이를 가짐 -
    를 포함하는 압축 방법.
  13. 제12항에 있어서, 상기 입력은 16-비트 값이고, 상기 조회 테이블은 32개 항목들을 포함하는 압축 방법.
  14. 제12항에 있어서, 상기 복수의 정보를 획득하는 단계는,
    상기 코드 길이를 획득하는 단계 - 상기 코드 길이는 0이 아닌 값을 갖는 상기 입력의 상기 절대값 내의 MSB 위치에 대응하는 값에 대응함 -;
    프리픽스를 획득하는 단계 - 상기 프리픽스는 상기 MSB 위치에 대응하는 비트들의 스트링을 포함함 -;
    상기 입력의 디지트에 대응하는 정정된 프리픽스 값을 획득하는 단계; 및
    서픽스-시프트 값을 획득하는 단계 - 상기 서픽스-시프트 값은 미리 정의된 값으로부터 감산된 상기 코드 길이와 같은 값을 포함함 - 를 포함하는 압축 방법.
  15. 제14항에 있어서, 상기 복수의 정보를 산술적으로 인코딩하는 단계는,
    상기 입력의 상기 절대값 및 상기 서픽스-시프트 값으로부터 서픽스를 획득하는 단계 - 상기 서픽스는 비트들의 스트링을 포함함 -;
    상기 서픽스 및 상기 서픽스-시프트 값으로부터 최종-서픽스를 획득하는 단계; 및
    상기 최종-서픽스 값 및 상기 프리픽스로부터 상기 입력을 나타내는 상기 압축된 출력을 생성하는 단계를 포함하는 압축 방법.
  16. 제15항에 있어서, 상기 서픽스를 획득하는 단계는,
    상기 입력의 상기 절대값을 미리 정해진 양만큼 좌측-시프트(left-shift)함으로써 시프트된 입력을 획득하는 단계; 및
    상기 시프트된 입력으로부터 상기 정정된 프리픽스 값을 감산하는 단계를 포함하는 압축 방법.
  17. 데이터를 변환하기 위한 회로로서,
    입력 바이너리 값을 수신하고 그것에 가산하기 위해 연결된 증가기(incrementer);
    상기 증가기의 출력을 시프트하기 위해 상기 증가기의 출력에 연결된 시프터;
    코드 길이 출력 및 제2 출력 및 제3 출력 및 제4 출력을 생성하기 위해 상기 시프터의 출력에 연결된 조회 테이블; 및
    코드 출력 값을 생성하기 위해 상기 증가기의 상기 출력 및 상기 조회 테이블의 상기 제2, 제3 및 제4 출력에 연결된 감산기, 배럴 시프터 및 OR 게이트 - 상기 코드 길이 출력은 상기 코드 출력 값에 대응함 -
    를 포함하는 데이터 변환 회로.
  18. 제17항에 있어서, 상기 입력은 부호 없는 바이너리 데이터이고, 상기 코드 출력 값은 부호 없는 Exp-Golomb 코드로서 인코딩되는 데이터 변환 회로.
  19. 제17항에 있어서, 상기 입력은 부호 있는 바이너리 데이터이고, 상기 코드 출력 값은 부호 있는 Exp-Golomb 코드로서 인코딩되는 데이터 변환 회로.
  20. 제18항에 있어서, 상기 입력은 16-비트 값이고, 상기 조회 테이블은 32개 이하의 항목들을 포함하는 데이터 변환 회로.
KR1020090123918A 2008-12-15 2009-12-14 인코딩된 비디오 압축을 위한 방법 및 시스템 KR101099950B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/334,930 2008-12-15
US12/334,930 US7825835B2 (en) 2008-12-15 2008-12-15 Method and system for encoded video compression

Publications (2)

Publication Number Publication Date
KR20100069597A KR20100069597A (ko) 2010-06-24
KR101099950B1 true KR101099950B1 (ko) 2011-12-28

Family

ID=42239840

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090123918A KR101099950B1 (ko) 2008-12-15 2009-12-14 인코딩된 비디오 압축을 위한 방법 및 시스템

Country Status (5)

Country Link
US (1) US7825835B2 (ko)
JP (1) JP4829336B2 (ko)
KR (1) KR101099950B1 (ko)
CN (1) CN101754020B (ko)
TW (1) TWI416959B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2409251A4 (en) * 2009-03-20 2015-03-18 Ad Vantage Networks Llc METHOD AND SYSTEMS FOR SCANNING, SELECTION AND DISPLAY OF CONTENT
CN102075467B (zh) * 2010-12-17 2014-10-22 中兴通讯股份有限公司 同相正交信号iq数据压缩方法及装置
CN103905054B (zh) * 2012-12-25 2017-05-24 展讯通信(上海)有限公司 构建码表的方法和装置,编码、解码方法和装置
US9215464B2 (en) * 2013-09-19 2015-12-15 Blackberry Limited Coding position data for the last non-zero transform coefficient in a coefficient group
CN104244003B (zh) * 2014-08-18 2017-08-15 北京君正集成电路股份有限公司 一种确定运动矢量代价的方法及装置
US9331712B1 (en) * 2015-05-11 2016-05-03 Qualcomm Incorporated Compressed caching in a virtual memory system
US20180316938A1 (en) * 2017-04-26 2018-11-01 Canon Kabushiki Kaisha Method and apparatus for k-th order exp-golomb binarization

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7170924B2 (en) * 2001-05-17 2007-01-30 Qualcomm, Inc. System and method for adjusting combiner weights using an adaptive algorithm in wireless communications system
CN100542262C (zh) * 2004-01-30 2009-09-16 松下电器产业株式会社 逆量化方法图像解码方法和设备及处理器
KR100594300B1 (ko) * 2004-11-05 2006-06-30 삼성전자주식회사 디지털 비디오 데이터 전송 시스템 및 그 전송 방법
JP2007295157A (ja) * 2006-04-24 2007-11-08 Matsushita Electric Ind Co Ltd データ符号化装置、データ符号化方法、データ符号化プログラム及びデータ符号化プログラムを記録した情報記録媒体
KR100809301B1 (ko) * 2006-07-20 2008-03-04 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치
CN101175210B (zh) * 2006-10-30 2010-08-11 中国科学院计算技术研究所 用于视频预测残差系数解码的熵解码方法及熵解码装置
US8165203B2 (en) * 2006-12-07 2012-04-24 Qualcomm Incorporated Line-based video rate control

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문(2009)

Also Published As

Publication number Publication date
KR20100069597A (ko) 2010-06-24
US7825835B2 (en) 2010-11-02
TWI416959B (zh) 2013-11-21
US20100149004A1 (en) 2010-06-17
TW201028013A (en) 2010-07-16
CN101754020A (zh) 2010-06-23
CN101754020B (zh) 2013-03-27
JP4829336B2 (ja) 2011-12-07
JP2010141884A (ja) 2010-06-24

Similar Documents

Publication Publication Date Title
KR101099950B1 (ko) 인코딩된 비디오 압축을 위한 방법 및 시스템
US9860561B2 (en) Data compression using spatial decorrelation
US9413387B2 (en) Data compression using entropy encoding
US7119723B1 (en) Decoding variable length codes while using optimal resources
KR100975062B1 (ko) 가변길이 부호화 장치 및 가변길이 부호화 방법
JP5006451B2 (ja) 最適cabac復号器
US6798833B2 (en) Video frame compression/decompression hardware system
CN110915213B (zh) 编解码符号的熵编解码的方法与装置
US20100127904A1 (en) Implementation of a rapid arithmetic binary decoding system of a suffix length
US7728744B2 (en) Variable length decoder system and method
CN111818335A (zh) 一种熵编码方法和装置、电子设备
CN112449191A (zh) 压缩多个图像的方法、解压缩图像的方法和装置
JP6695813B2 (ja) 専用算術符号化命令
KR100207428B1 (ko) 허프만 코드 변환에 적응적인 고속 가변장 복호화 장치 및 방법
JP2934603B2 (ja) 可変長さコードの復号化方法及びその装置
JPH09504146A (ja) 可変ワード長を有する符号器用ビットバジェットの評価法及び評価装置
US20180054626A1 (en) Decoding method and decoding apparatus for avs system
Horrigue et al. An efficient, high speed architecture for JPEG2000 MQ-coder
JP2011176831A (ja) 符号化装置及びその制御方法
Czyszczon et al. Real-time implementation of JPEG encoder/decoder
JP2004178482A (ja) 画像・オーディオデータ処理装置
JP2007300444A (ja) 算術符号化装置

Legal Events

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

Payment date: 20141201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171211

Year of fee payment: 7