KR100491333B1 - Dwt-기반 기술에 의해 압축된 이미지를 코딩하기 위한실시간 알고리즘 및 구조 - Google Patents

Dwt-기반 기술에 의해 압축된 이미지를 코딩하기 위한실시간 알고리즘 및 구조 Download PDF

Info

Publication number
KR100491333B1
KR100491333B1 KR10-2000-7015124A KR20007015124A KR100491333B1 KR 100491333 B1 KR100491333 B1 KR 100491333B1 KR 20007015124 A KR20007015124 A KR 20007015124A KR 100491333 B1 KR100491333 B1 KR 100491333B1
Authority
KR
South Korea
Prior art keywords
flag
word
data
zero
encoding
Prior art date
Application number
KR10-2000-7015124A
Other languages
English (en)
Other versions
KR20010053348A (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 KR20010053348A publication Critical patent/KR20010053348A/ko
Application granted granted Critical
Publication of KR100491333B1 publication Critical patent/KR100491333B1/ko

Links

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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with 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/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
    • 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/93Run-length 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
    • 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]

Landscapes

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

Abstract

고정된 길이 코드워드 및 플래그를 런-길이를 인코딩하기 위한 데이터 포맷 구조로 제공하도록 하는 방법이 기술되어 있다. 큰 런-길이는 데이터 셋트 내의 두 비-제로 값 사이의 제로의 수를 표현하는 구조의 시퀀스를 사용한다. 인코딩될 데이터의 엔트로피 특성에 적합한 인코딩 방법을 결정하는 적응형 인코딩 기법이 기술되어 있다. 필요에 따라 고정된 길이의 사이즈를 변경할 수 있도록 하는 아키텍쳐가 기술되어 있다. 이 아키텍처는 각각 요구된 코드워드 사이즈에 따라 인코딩되는 하나의 카운터(410)에 연결된 다수의 로직 네트워크(422,424,426,432,434,436)을 포함한다.

Description

DWT-기반 기술에 의해 압축된 이미지를 코딩하기 위한 실시간 알고리즘 및 구조{REAL TIME ALGORITHMS AND ARCHITECTURES FOR CODING IMAGES COMPRESSED BY DWT-BASED TECHNIQUES}
본 발명은 일반적으로 데이터 및 이미지 압축에 관한 것으로서, 특히 본 발명은 적응형 양자화 및 이산 웨이블렛 변환이 이용되는 경우의 데이터 및 이미지 압축을 위한 2진 인코딩에 관한 것이다.
이미지 및/또는 데이터 압축에 있어서, 인코딩으로서 알려진 프로세스를 통해, 외부에서 얻어지거나 입력되는 텍스트 또는 수치 데이터와 같은 일련의 값들이 2진 형태(1 또는 0)로 인코딩될 수 있다. 인코딩의 한가지 방법은 (ASCII 수치 지정과 같은) 텍스트를 위한 각각의 10진수 또는 10진 코드를 단순히 일정한 수의 비트(워드 크기)로 변환하는 것이다. 예를 들어, 수 23, 128 및 100은 시퀀스 00010101 1000000 01100100로서 2진수로 인코딩 되게 된다. 이러한 미처리(raw) 또는 순수한 2진 코드는 더 이상의 압축 기능을 제공하지 않는데, 그 이유는 이것이 단지 데이터를 취하여 그것을 2진수로 표현하는 것이기 때문이다. 이러한 인코딩은 제로의 수가 비-제로(non-zero)를 훨씬 능가하는 경우, 특히 이러한 제로 데이터 값이 연속되어, 2진수에서 제로의 큰 "런(run)"을 생성하는 경우에 효율적이지 못하다. 2진 변환 동안에 데이터를 압축하기 위해 특히 디지털 통신 분야에 몇 가지 방법이 개발되었다. 이미지 또는 데이터 압축을 위해 널리 사용되는 이러한 방법은 허프만 코딩(Huffman Coding) 및 런-길이 인코딩(Run-Length Encoding)이다.
고전적인 허프만 코딩은 Li 비트의 코드워드에 의해 N개의 가능한 데이터 값의 소정의 데이터 셋트 S 내의 각각의 가능한 값 yi(i=1,...,N)을 코딩하는 것으로 이루어진 가변 길이 코딩 기술이다. 허프만 코딩의 목적은 ∑LiP(yi)를 최소화하는 것이며, 여기서 P(yi)는 인코딩될 데이터 셋트 S에서 발생하는 값 yi의 확률이다. 코드워드는 그들을 서로 구별하기 위해 선택된다. 코드워드는 가변 길이를 가지며, 예를 들어, 데이터 셋트 S={0,1,2,3,4}에 대해, 허프만 코딩은 맵핑 {0=0, 1=10, 2=110, 3=1110, 4=1111}을 이용할 수 있다. 만일 P(0)>>P(1)>>P(2)>>P(3)>>P(4)이면, 이 기술은 순수 고정 길이 2진 표기법 보다 더욱 효율적일 수 있다. 허프만 코딩은 주로 작은 수 N을 갖거나 또는 작은 분산(variance)을 가진 데이터 셋트 S를 코딩하는 경우에 효율적이며, 그 이유는 Li의 크기가 셋트 내의 값들의 수 N의 증가에 따라 거의 선형으로 증가하기 때문이다. 이러한 이유로 인해, 수정 허프만 코딩으로 알려진 고전적인 허프만 코딩과 다른 기술이 개발되어, 그 데이터 셋트 내의 보다 큰 수의 N 또는 보다 많은 분산을 가진 이미지에 이용된다.
수정 허프만 코딩에 있어서, 데이터 값 yi는 2개의 필드, 즉 레인지(Range)(2 Range 값을 포함하는 셋트를 식별함)와 Range 내의 특정 값을 나타내는 포인터(Pointer)를 가진 데이터 구조에 의해 인코딩된다. 필드 Range는 허프만 코딩을 이용하여 코딩되고, PointerRange 비트의 크기를 가진 2진수로서 표현된다. 예를 들어, 1 내지 n 값들의 Range 내에 포함된 값들은 다음과 같이 될 수 있다.
* Range = 0:값{0}(필드 Pointer는 필요로 되지 않음)
* Range = 1:값{-1,1}(필드 Pointer는 특정 값을 나타내기 위해 1 비트를 필요로 함)
* Range = 2:값{-3,-2,2,3}(필드 Pointer는 2 비트를 필요로 함)
* Range = n:값{-2n+1,-2n+2,...,-2n-1,2n-1,...,2n -2,2n-1}(필드 Pointer는 n 비트를 필요로 함)
예를 들어, 만일 인코딩할 데이터가 정수 값{-3,-2,-1,0,1,2,3}이면, 그 각각에 대해 가능한 MHC는 다음의 표1에 도시된 바와 같이 될 수 있다.
값 0은 하나의 워드 0으로 코딩된다(즉, Range의 허프만 코딩, 다른 비트는 없음). 값 3은 1101으로 코딩되며, 여기서 밑줄친 11Range 2의 허프만 코드이고, 그 다음에 오는 2(=Range) 비트, 01은 표1에서 Range=2를 가진 가능한 값들{-3,-2,2,3} 사이의 값 3을 지시한다. 만일 P(0)가 하이(high)이면, 전술한 방법은 각각의 값이 그 발생 확률에 관계없이 3 비트에 의해 코딩되게 되는 정상적인 고정 길이 2진 코딩 보다 더욱 효율적이며, 그 이유는 표1의 MHC에서 오직 하나의 비트만이 제로 값을 위해 이용되기 때문이다. MHC는 테이블 탐색 아키텍처(table look-up architecture)를 위해 실물 그대로 설계되며, 따라서 인코딩 및 디코딩 모두에 대해 더욱 효율적일 수 있다.
제로 런 길이 코딩(Zero Run Length Coding)(ZRLC)으로서 알려진 다른 기술은 매우 큰 수의 연속되는(또는 런) 제로 값을 포함하는 데이터 셋트를 인코딩하기 위한 표준 기술이다. ZRLC는 (허프만 코딩 또는 일부 다른 코딩을 이용하여) 제로가 아닌 값들만을 인코딩하고, 코더 및 디코더 모두에게 알려진 방식에 따라 2개의 연속되는 비-제로 값을 분할하는, 제로의 수를 명시하는 코드에 의해 이들 코드워드를 인터리빙하는(interleaving) 것으로 이루어진다.
종래의 ZRLC에서, 인코딩된 제로 런 데이터는 2개의 세그먼트, 즉 런 길이 및 비-제로 값을 이용하여 구성된다. 예를 들어, 데이터 스트림:{0000005000-6780000-120000000000014500000000023}을 코딩하는 대신에, 단지 다음의 데이터가 코딩된다:
{[6,5][3,-6][0,78][4,-12][12,1][0,45][9,23]}
이 코드(여기서, _는 제로의 런 길이를 나타냄)는 6개의 제로 다음에 값5가 오고, 그 다음 3개의 제로 다음에 값-6이 오고, 그 다음 0개의 제로 다음에 값78이 오는 것 등을 나타낸다.
이러한 기술 중 하나가 이미지 압축에 이용되면, 인코딩 이전의 이미지 압축의 본질(nature)이 방법의 최상의 선택을 지시해야 한다. 허프만 코딩이 이용되어야 하는지 또는 런 길이 코딩이 이용되어야 하는지를 고려하기 위해, 이미지 또는 애플리케이션(예, 화상회의)의 본질이 분석되거나 고려될 필요가 있을 수 있다. 높은 엔트로피(entropy)를 가진 이미지에 대해, 런-길이 인코딩은 허프만 코딩만큼 높은 압축 비율을 제공하지 못할 수도 있으며, 그 역으로도 마찬가지이다. 2진 인코딩 프로세스를 데이터 셋트(또는 데이터 셋트의 서브셋트)의 특성에 일치시킬 수 없다는 것은 최적화되지 않은 전체 압축 비율을 초래할 수 있다.
이미징 기술분야에서, 이미지가 (디지털 카메라와 같은 장치에 의해) 포착되어, 아마도 "컬러 보간(color interpolated)"된(이미지 풀 컬러 해상도를 제공하기 위해 누락된 컬러 성분에 대한 판단이 이루어짐) 이후에, 종종 이미지는 (2진 인코딩 이전에) "압축"되어, 이미지를 표현하는데 필요한 총 비트 수를 감소시키게 된다. "1차적인(primary)" 이미지 압축 및 그 후속의 압축된 데이터의 2진 인코딩은 화상회의, 디지털 이미징 및 네트워크를 통한 비디오 스트리밍과 같은 멀티미디어 애플리케이션에서 핵심적인 역할을 한다. 이러한 애플리케이션을 위한 1차적인 이미지 압축 방식은 특정 애플리케이션에 대해 수용 가능한 이미지 품질을 유지하면서 이미지의 저장 또는 전송의 비트율(bit-rate)을 감소시키도록 설계되어야 한다.
한가지 일반적으로 사용되는 1차적인 이미지 압축 기술은 공지의 이산 코사인 변환(DCT)을 이용하여 입력 이미지의 픽셀을 변환하는 JPEG(Joint Photographic Experts Group)로서 알려져 있다. 이 결과로서 생성되는 변환된 픽셀 값은 압축을 실현하기 위해 값들의 보다 작은 셋트로 양자화 또는 맵핑된다. 압축해제되는 압축 이미지의 품질은 변환된 픽셀의 양자화가 수행되는 방법에 크게 의존하게 된다. 압축 비율(원래의 미처리 이미지의 크기를 압축된 이미지와 비교한 것)도 역시 양자화에 영향을 받지만, 양자화 이후의 후속 2진 인코딩에 의해 더욱 영향을 받을 수 있다.
JPEG 압축 이미지 데이터의 후속 2진 인코딩은 런 길이 인코딩이 사용되는 경우에 "블로킹(blocking)"에 의해 제한을 받는다. JPEG에 있어서, 이미지는 8x8 또는 16x16 블록과 같은 픽셀 블록으로 분할된다. 이들 블록은 서로에 대해 독립적으로 처리되며, 따라서 가능한 최대 런-길이는 블록의 크기(64 또는 256)이다. 그러므로, 만일 런-길이 인코딩이 사용되면, 런-길이 값은 6-비트 또는 8-비트 폭이 된다. 그러므로, JPEG에 있어서 런-길이 인코딩은 런-길이를 포함하는 비트 수로 일정하게 유지될 수 있다. 블록-기반 코딩이 이용되지 않는 경우에, 각각의 "런(즉, 연속되는 제로의 수)을 코딩하기 위한 이러한 일정한 수의 비트는 심각한 한계가 될 수 있으며, 그 이유는 하나의 런에 대한 가장 긴 값이 전체 이미지의 크기에 달려 있기 때문이다.
높은 압축 비율 및 수용가능한 압축해제 이미지 품질을 실현하는 다른 1차적인 이미지 압축 방식은 JPEG 블록과 달리 일정하지 않고 그 크기가 가변적인 이미지 "서브-밴드" 또는 이미지 주파수 영역을 생성할 수 있으며, 그 이유는 이러한 방식이 이미지를 블록으로 분할하지 않기 때문이다. 이산 웨이블렛 변환(DWT)에 기반한 이러한 한가지 1차적인 이미지 압축 방식이 "The Compression of Color Images Based on a 2-Dimensional DWT"란 제목의 관련 미국특허출원(이후 DWT 특허로 언급됨)에 기재되어 있다. 이러한 DWT-기반 방식에 있어서, 각각의 서브-밴드 및 채널(컬러 평면 또는 컬러 평면의 차)은 특히 높은 엔트로피를 가진 서브-밴드에서 런-길이 인코딩보다는 오히려 허프만 코딩의 이용을 정당화하는 특성을 가질 수 있다.
만일 이미지가 압축되고, 그 다음에 디지털 카메라 또는 다른 이미징 장치 상에서 인코딩될 예정이면, JPEG를 위한 통상적인 런-길이 인코딩은 적당하지 않다. 그러므로, 디코딩이 더욱 실시간으로 이루어질 수 있도록 고정 길이 구조를 유지하면서 가변적이고 예외적으로 큰 런-길이 값이 인코딩될 수 있도록 허용하는 런길이 인코딩 방식이 요구된다. 또한, 1차적인 이미지 압축이 여러 스테이지(예를 들어, 각각의 서브-밴드에 대해 하나씩의 스테이지)에서 데이터를 생성하는 경우, 각 스테이지의 데이터가 다른 것에 비해 한가지 형태의 인코딩을 이용하는 것에 유리한 특성을 가진 경우에, 각 스테이지가 가능한 가장 효율적인 인코딩을 이용하여 처리될 수 있도록 적응형 인코딩 프로세스를 제공할 필요가 있다. 이러한 메커니즘은 인코딩 동안에 얻어지는 압축을 최대화하며, 따라서 이미지 또는 다른 데이터에 요구되는 저장/전송 크기를 감소시키게 된다.
본 발명의 방법 및 장치의 목적, 특징 및 장점은 다음의 설명으로부터 명백해질 것이다.
도1a 내지 도1e는 본 발명의 일실시예에 따른 수정된 제로 런 길이 인코딩을 위한 기본적인 데이터 구조를 도시한 도면.
도2는 본 발명의 일실시예에 따른 이미지 처리 데이터 흐름을 도시한 도면.
도3은 본 발명의 일실시예에 따른 압축 및 인코딩된 이미지의 복구를 도시한 도면.
도4는 본 발명의 일실시예에 따른 수정된 제로 런 길이 인코더를 도시한 도면.
도5는 본 발명의 일실시예에 따른 적응형 인코더의 블록도.
도6은 본 발명의 일실시예에 따른 이미지 처리 장치의 블록도.
도7은 본 발명의 일실시예의 시스템 도면.
발명의 요약
고정된 길이 코드워드 및 플래그를 런-길이를 인코딩하기 위한 데이터 포맷 구조로 제공하도록 하는 방법이 기술되어 있다. 큰 런-길이는 데이터 셋트 내의 두 비-제로 값 사이의 제로의 수를 표현하는 구조의 시퀀스를 사용한다. 인코딩될 데이터의 엔트로피 특성에 적합한 인코딩 방법을 결정하는 적응형 인코딩 기법이 기술되어 있다. 필요에 따라 고정된 길이의 사이즈를 변경할 수 있도록 하는 아키텍쳐가 기술되어 있다. 이 아키텍처는 각각 요구된 코드워드 사이즈에 따라 인코딩되는 하나의 카운터에 연결된 다수의 로직 네트워크를 포함한다.
이제, 도면을 참조하여 본 발명의 실시예에 관해 설명한다. 이들 실시예는 본 발명의 양태를 예시하기 위해 제공된 것이며, 본 발명의 범위를 제한하는 것으로 해석되어서는 안 된다. 실시예는 주로 블록도 또는 흐름도를 참조하여 설명된다. 흐름도에 관해서, 흐름도 내의 각 블록은 방법의 단계와 이들 방법 단계를 수행하기 위한 장치 구성요소를 모두 나타낸다. 구현예에 따라, 대응하는 장치 구성요소는 하드웨어, 소프트웨어 또는 이들의 조합으로 구성될 수 있다.
도1a 내지 도1e는 본 발명의 일실시예에 따른 수정된 제로 런 길이 인코딩을 위한 기본적인 데이터 구조를 도시한 도면이다.
JPEG 표준에 있어서는, 8x8 블로킹 방식으로 인해, ZRLC에서의 런의 크기가 63보다 높지 않은 값을 가질 수 있으며, 그러므로 6-비트 워드로 고정될 수 있다. 만일 2-D DWT에 의해 생성되는 완전한 서브-밴드를 고려하는 경우에, 런 값의 크기의 상한(upper limit)은 전체 이미지의 크기에 의존한다. 그러므로, 본 발명의 일실시예는 2개의 비-제로 값 사이의 제로의 수로서 정의된 런의 크기를 인코딩하기 위한 유연성 있는(flexible) 구조를 제공한다. 구조 인코딩은 플래그 F와 M 비트의 워드 R로 이루어진다. 도1a는 인코딩된 데이터의 기본 포맷을 도시하고 있다. 이 포맷에서, 이 형태의 하나 또는 그 이상의 구조(structure)(F,R) 다음에 데이터 셋트 내의 비-제로 값의 MHC(Modified Huffman Code)가 뒤따른다. 각각의 ZRLC 구조(F,R)는 1-비트 F 값과 비트 R1...RM을 갖는다. 그러므로, 도1a에서 제1 런 길이는 하나의 구조(F,R)에 의해 인코딩된다. 정의에 의해 런 길이는 비-제로 값을 만날 때 종료된다. 예시적인 비-제로 값은 2개의 비트 MHC1 및 MHC2를 이용하여 인코딩된다. 비-제로 값 이후에, 길이가 2M-2를 초과하는 제2 제로 런이 2개의 (F,R) 구조를 이용하여 인코딩된다. 그 다음 비-제로 값은 MHC1(단지 1 비트)을 이용하여 인코딩되고, 그 이후에 제로들의 다른 런 길이가 단 하나의 (F,R) 구조를 이용하여 인코딩된다. 도1b에 도시된 (F,R)=(0,0)의 구조는 그 지점으로부터 검사된 밴드의 끝까지 단지 제로들만이 존재한다는 것을 명시하는 것이다. r개의 제로들의 런(여기서, r<2M-1)을 나타내기 위해, (F,R)=(0,1+r)이 사용된다. 도1c에 도시된 (0,1)의 구조는 그 경로에서 다음에 오는 비-제로 값이 이전의 비-제로 값과 인접해 있다는 것, 즉 R-1개의 제로들의 런이 2개의 연속되는 비-제로 값 사이에서 발생한다는 것을 나타낸다. 따라서, 도1d에 도시된 바와 같이 4개의 제로들의 런이 구조(0,5)를 이용하여 인코딩된다.
만일 r(런의 총 크기)이 2M-2보다 길면, log2(r-2)M 구조를 이용하며(여기서, y는 y보다 큰 가장 낮은 정수로 y를 라운딩하는 것을 나타냄), 각각의 구조는 F=0인 마지막 구조를 제외하고, M개의 비트를 저장하며 F=1을 갖는다. 2M-2보다 더 긴 r이 도1e에 도시되어 있다. 런 길이 r이 2M-2보다 더 크면, r의 최상위 M 비트를 나타내기 위해 플래그 F=0가 사용된다. 도1e는 런 길이에 85개의 제로가 있다는 사실을 인코딩하기 위한 구조를 도시하고 있다. (F,R) 구조에서 워드 R의 크기인 M은 단지 4비트 길이이기 때문에, 단지 14의 런 길이만이 플래그 0에 의해 인코딩될 수 있다. 그러므로, 런 길이 도면의 최상위 부분을 플래그 F=0가 사용된다. 수 86(1+r)은 r인 런 길이에 85개의 제로가 있다는 사실을 인코딩하게 된다. 8610은 2진수로 0101 1100이고, 이 런 길이의 제1 M 비트(M=4)는 0101이다. 그러므로, 이 제1 부분은 (F,R)=(0) 또는 0 0101로서 인코딩된다. 인코딩될 값의 제2 및 마지막 부분 1100은 그것이 이전에 인코딩된 값 "0101"에 속한다는 것을 나타내는 F=1의 플래그를 수반한다. 250의 런 길이는 (F,R)=(0,F16);(1,B16)에 의해 인코딩되며, 여기서 F16=1111이고, B16=1011b 이며, 그 이유는 (1111 1011)b=251 10 이고, 이것은 250의 런 길이인 r보다 더 크기 때문이다. 이와 유사하게, r=4091의 런 길이는 구조 (0,F16);(1,F16);(1,C16)에 의해 인코딩될 수 있으며, 여기서 (FFC)16 =409210 이다. 도1e에 도시된 바와 같이 출력의 순서는 좌측에서 우측으로 런 크기의 최하위 비트(F=1의 구조를 가짐)로부터 최상위 비트(F=0의 구조를 가짐)로 이루어진다. 예를 들어, 도1e는 최상위 비트가 런 길이 85를 인코딩하는데 있어 마지막으로(플래그 F=0를 가짐) 출력된다는 것을 보여준다. 마찬가지로, 런 길이 250은 (1,B16)(0,F16)의 순서로 출력되고, 런 길이 4091은 (1,C16)(1,F16 )(0,F16)의 순서로 출력되게 된다. 마찬가지로, 출력 순서 (1,R0)(1,RI)(1,RI-2)(0,RI-1 )로 된 어떤 수의 구조도 사용될 수 있으며, 여기서 IxM 개의 비트가 r+1을 인코딩하는데 필요한 총 비트수이다. 이러한 시나리오에서, I-1 구조는 1의 플래그를 갖고, I번째 구조는 0의 플래그를 갖는다. 본 발명의 일실시예에서 수정된 ZRLC의 한가지 장점은 런의 크기가 제한되지 않으며, 여전히 단지 M 개의 비트를 가진 R의 고정 길이 구조(F,R)를 이용하여 인코딩 가능하다는 것이다.
각각의 런 다음에 오는 비-제로 값을 코딩하기 위해, 다음의 가능한 Range 값을 가진 MHC 기술을 선택한다.
* 0={1}
* 1={-1,2}
* 2={-3,-2,3,4}
* n={-2n+1,-2n+2,...,-2n-1,2n-1+1,...,2n-1,2 n}
이러한 값에 대한 LUT의 예가 다음의 표2에 도시되어 있다. y=0의 경우는 이러한 MHC에 의해 포함되지 않으며, 그 이유는 ZRLC는 데이터 셋트에서 모든 제로 값의 발생을 처리하기 때문이다.
이 예에서, 탐색 테이블(look-up table)(LUT)은 각각의 셀이 y(즉, 인코딩될 데이터)에 의해 어드레스되고 6 비트를 포함하도록 구성된다. 처음의 2 비트(필드 "size")는 판독되어, 단지 필드 "code"의 "size"+1 비트만이 고려되어 유효 정보로서 저장된다. 이들 "size"+1 비트 중에서, 최상위의 밑줄친 비트는 허프만 코딩을 이용하여 코딩된 필드 "range"이며(본 예에서 range 0,1,2는 각각 0,10,11로 코딩된다), 최하위 비트는 필드 "pointer"를 구성한다. 예를 들어, -2는 워드 "1110"로 코딩된다(즉, "range"=11이고, "pointer"=10 이다).
허프만 코딩의 효율적인 구현은 본 발명의 일실시예에서 ZRLC 내의 ql-제로 값에 대한 MHC를 코딩하는 LUT에 대한 소정의 통계적인 분석을 필요로 하기 때문에, 예시적인 이미지의 분석에 기반하여 이러한 코드의 최적의 셋트를 결정할 수 있다. 부록 A-E는 DWT 특허에 사용된 방식의 이미지 압축을 받는 이들 이미지의 결과로서 각 채널의 각 서브-밴드에 대해 50개 이상의 상이한 이미지를 실험적으로 고려함으로써 이루어지는 이러한 코드를 보여주고 있다. 분석에 이용된 이미지를 변환하기 위해 사용되는 DWT 필터는 DWT 특허에 이용된 DWT와 동일한 9-7개의 바이오소고날 스플라인 필터(biorthogonal splines filters)이다.
도2는 본 발명의 일실시예에 따른 이미지 처리 데이터 흐름을 도시하고 있다.
스틸 정지화상 또는 동화상 촬영과 같은 디지털 애플리케이션에서는, 디지털 카메라에 의해 포착되는 것과 같은 원래의 이미지가 압축해제 및/또는 디스플레이를 위해 전송되기 이전에 소정의 품질 레벨을 유지하면서 가능한 한 많이 크기가 압축되는 것이 바람직하다. DWT 특허에 기재된 1차적인 이미지 압축 기술은 이미지 품질을 유지하기 위해 컬러 및 광에 대한 사람의 시각 체계의 응답을 적응방식으로 이용하도록 특별히 개발되었다. 이러한 압축 이후에, 본 발명의 일실시예에 따르면 데이터를 더욱 압축하기 위해 적응형 2진 인코딩이 적용된다.
DWT 특허에서 언급된 바와 같이, 디지털 카메라 또는 다른 유사한 장치에 의해 포착되는 미처리 이미지는 통상적으로 베이어 패턴(Bayer pattern)으로 표현되게 된다. 센서 어레이(200)는 각각의 위치에서 이미징되는 환경/장면으로부터 센서에 입사되는 광의 세기 값을 포함하는 픽셀 위치 셋트이다. 베이어 패턴에서, 미처리 이미지(200)와 같은 이미지의 각각의 픽셀 위치는 컬러 평면, 적색(R), 녹색(G) 또는 청색(B)과 관련되어 있다. 베이어 패턴은 모든 R과 B에 대해 2개의 관련된 값을 갖기 때문에, 녹색 컬러 평면은 2개의 평면 G1 및 G2로서 간주될 수 있다.
DWT 특허에 기재된 이미지 압축 기술에 따르면, 컬러 평면 R,G1,G2 및 B 사이의 상관성(correlation)은 4개의 채널이 생성되어 분리적으로 압축되도록 하기 위해 활용된다. G1 및 G2 관련 픽셀은 직접 압축 블록(212,216)으로 전달되며 2개의 채널을 포함한다. R 및 B 픽셀은 덜 직접적으로 처리된다. R 픽셀 값은 그 서쪽의 이웃하는 G1 픽셀 값에 의해 감산된다(블록 205). 이러한 차(R-G1) 채널은 압축 블록(210)으로 전달된다. 마찬가지로, 각각의 B 관련 픽셀은 그 동쪽의 이웃하는 G2 관련 픽셀에 의해 감산된다(블록 206). 이 차(B-G2) 채널은 압축 블록(216)으로 전달된다.
이들 차 채널은 G1 및 G2 순수 컬러 채널과 함께 적절한 압축 스테이지(양자화 및 DWT)로 각각 전달된다.
4개의 채널 R-G1,G1,G2 및 B-G2는 각각 압축 블록(210,212,214,216)으로 전달된다. 이들 각각의 압축 블록(210,212,214,216)에서는, DWT 특허에 따라 2개의 프로세스가 이루어진다. 제1 프로세스는 2차원 이산 웨이블렛 변환(2-D DWT)이다. 2-D DWT는 DWT 특허에 도시되고 기재된 바와 같이 이미지의 "서브-밴드"를 생성한다. DWT 동안에 또는 그 이후에, 양자화로서 알려진 제2 프로세스가 수행된다.
양자화는 n개의 가능한 값의 셋트를 m개의 가능한 값의 셋트로 맵핑하는 절차이며, 여기서 m<n이다. 양자화에 의해, DWT 이미지 데이터 셋트에 대한 가능한 데이터 값의 총수가 감소된다. 적응형 블록(220,222,224,226)의 인코딩은 압축 블록(210,212,214,216)으로부터의 서브-밴드 데이터를 각각 배열(패킹)하여, 그것이 효율적인 2진 표기를 갖도록 한다. 본 발명의 일실시예에 따르면, 적응형 인코딩 블록(220,222,224,226)은 압축 프로세스에 의해 생성되는 각각의 서브-밴드 및 채널 조합에 대한 최적의 인코딩 방법을 이용한다. 본 발명의 실시예에서 정의된 바와 같은 수정된 ZRLC는 잘 알려진 순수한 수정 허프만 코딩(MHC)과 함께 이용된다. 압축된 어떤 채널 및 서브-밴드가 인코딩 되는가에 따라, 이들 2개의 방법 중 하나가 이용되게 된다. 또한, 수정된 ZRLC는 구조(F,R) 내의 R에 대한 고정된 수의 비트 M을 이용하기 때문에, 수 M은 인코딩되는 서브-밴드 및 채널에 따라 변화될 수 있다. 예를 들어, 인코딩에 대한 높은 엔트로피를 가진 서브-밴드에서는 보다 작은 값의 M이 선택될 수 있다. 다음의 표3은 DWT 특허에 기재된 바와 같이, 9-7 바이오소고날 스플라인 DWT 필터를 이용하여 베이어 패턴 (미처리) 이미지에 대해 수행되는 DWT와 지각적 무손실 스레스홀딩(perceptually lossless thresholding)을 이용하여 최종 DWT 계수를 양자화하는 경우에 소정의 서브-밴드 및 채널에 대해 실험적으로 도달한 최적의 인코딩 전략을 보여주고 있다.
전술한 표3에서, MHC는 공지된 수정 허프만 코딩을 말하고, ZRLCM은 도1a 내지 도1e 및 도4에 도시된 바와 같은 수정된 ZRLC를 말하며, 여기서 M은 런 길이를 인코딩하는 구조 내의 비트수이다. 모든 경우에, ZRLCM은 MHC를 이용하여 비-제로 값을 인코딩한다. 서브-밴드 LHK, HLK, HHK, LLK는 DWT의 각 레벨 또는 반복인수 K에서 생성되는 다양한 서브-밴드를 말한다(DWT 특허 참조).
각각의 서브-밴드 및 채널은 그 특성에 따라 인코딩된다. 예를 들어, 채널 G1 및 G2에 대한 HH2 서브-밴드는 M=2인 ZRLC를 이용하고, LH2 및 HL2 서브-밴드는 순수 MHC를 이용한다. 도2는 DWT 특허에서 제공된 바와 같이 이용된 이미지 압축 기술의 예를 도시하고 있으며, 여기서 상이한 특성을 가진 스테이지 또는 서브-영역에서 데이터를 생성하는 이미지 압축 기술은 인코딩이 서로에 대해 최적화되도록 적응형 인코딩을 이용할 수 있다. 압축 및 인코딩된 이미지 데이터(240)는 소정의 매체에 저장되거나, 한 시스템으로부터 다른 시스템으로 전송되거나 또는 네트워크와 같은 통신 경로를 통해 분배될 수 있다. 또한, 압축 및 인코딩된 이미지 데이터는 수집되어 단일 프레임으로 전송될 필요가 없으며, 하나의 인코딩된 값마다 그 목적지로 스트리밍될 수 있다.
DWT 변환, 양자화 및 인코딩을 위해 사용되는 정확한 파라미터에 따라, 원래의 이미지의 크기를 압축된 이미지의 크기로 나눈 압축 비율이 변화되게 된다. 본 발명의 이 실시예는 DWT 특허에 언급된 압축 프로세스에 의해 생성되는 각각의 채널 및 서브-밴드에서 압축 비율을 최적화하도록 작용할 수 있는 적응형 인코딩 프로세스를 제공한다.
도1a-1e, 도4 및 도5에 기재된 본 발명의 한가지 중요한 양태는 수정된 제로 런 길이 인코딩 방식이다. 수정된 ZRLC는 어떠한 이미지 또는 데이터 압축 프로세스에도 이용될 수 있으며, DWT 특허로부터의 압축 프로세스의 이용은 단지 예시적인 것이다. 마찬가지로, 서브-밴드 특성 및 채널 특성에 잘 반응하는 것으로 도시된 본 발명의 다른 실시예에 제공된 적응형 인코딩 프로세스도 역시 이미지 압축을 발생하는 다른 형태의 스테이지 또는 서브-영역에 잘 반응하도록 수정될 수 있다.
도3은 본 발명의 일실시예에 따른 압축 및 인코딩된 이미지의 복구(recovery)를 도시하고 있다.
디코딩 블록, 역양자화 블록 및 역DWT 블록이 압축 및 인코딩된 이미지 데이터(240)로부터 런 이미지(200)를 복구하려고 시도하는 프로세스를 구성한다(도2 참조).
압축 및 인코딩된 하나의 채널마다 그리고 하나의 서브-밴드마다 효율적으로 저장될 수 있다. 그러므로, 압축 및 인코딩된 채널 (R-G1),G1,G2 및 (B-G2)는 독립적으로 디코딩되고 및 압축해제 될 수 있다. 먼저, 각 채널 및 서브-밴드에 속한 데이터가 디코딩된다(블록 310,312,314,316). 도2에 도시된 적응형 인코딩(블록 220,222,224,226)은 소정의 서브-밴드 및 채널의 데이터에 적용된 인코딩의 형태에 적절한 디코딩이 이용될 것을 요구한다. 데이터의 각 채널 및 서브-밴드는 다른 서브-밴드와는 상이한 기술을 이용하여 인코딩되고, 이에 따라, 채널은 인코딩 기술에서의 차를 고려하여 디코딩될 필요가 있다. 그리고 나서, 디코딩된 데이터는 압축해제된다(블록 320,322,324,326). 도2에 도시된 압축에 따라, 압축해제는 두 절차 - 디코딩된 데이터를 양자화하고, 역 DWT(IDWT)를 수행함 - 로 구성된다. 이 압축해제 단계는 DWT 특허에서 보다 자세히 논의된다.
압축해제가 완료되면, 미처리 이미지(200)의 근사치(approximation)가 픽셀마다 획득되어 진다. G1을 (R-G1) 복구 값에 다시 가산하고(블록 325), G2를 (B-G2) 복구 값에 가산함(블록 326)으로써, 원래의 미처리 데이터(200)로부터의 각 베이어 패턴 픽셀 값(R,G1,G2)이 근사하게 복구될 수 있다.
적응형 디코딩은 하드웨어, 소프트웨어, 또는 이들의 하나 또는 조합으로 구현될 수 있고, 인코딩 압축 프로세스의 기능을 수행하는 장치로부터 물리적으로 분리될 수 있다. 압축 및 재생으로 구성된 이미지 프로세싱을 위한 기본적인 데이터 흐름은 또한 압축 블록으로부터 요구된 재생 능력을 필요로 하는 요구된 시스템 또는 프로세스로의 중간 변환을 포함할 수 있다.
도4는 본 발명의 일실시예에 따른 수정된 제로 런 길이 인코더를 도시하고 있다.
워드 R에 대한 M비트의 수가 3인 수정된 제로 런 길이 인코더는, 도4에 도시된 바와 같이, 카운터(410) 및 로직 네트워크로 구현될 수 있다. 카운터(410)는 이진수로 런의 총 길이를 결정하는데 사용된다. 이 예에서 12비트로 도시된 카운터(410)는 시스템에서 요구된 어떤 수의 비트도 될 수 있다. 본 발명의 일실시예에 따라, k-비트 카운터는 최대 런 길이 값 run_max=2 k -2(k는 run_max 가 최대 전체 서브-밴드 또는 이미지의 치수보다 작지 않도록 선택됨)을 인코딩할 수 있다. 데이터 스트림에서 만난 연속되는 각 "제로"는 카운터를 1만큼 증가시기고, 비-제로 값을 만나면, 카운터(410)는 리셋(000000000001로)되고, 다음의 제로 런을 기다린다. 000101000010 또는 322 제로의 런 길이(r)가 인코딩되는 상태에서의 카운터(410)가 도4에 도시되어 있다. 이 카운터(410)는 1+r 또는 000101000011 값을 유지한다. 이 런 길이는 데이터 구조(Fi,Ri)로 나타낼 필요가 있고, Ri의 길이 M이 3이기 때문에, 카운터(410) 내의 값은 4,R0,R1,R2,R3의 3-비트 세그먼트로 간주된다. 또한, 이것은 모두 4개의 가용 데이터 구조가 출력될 필요가 없는 경우일 수 있다. 도4의 예에서의 경우에는, 000101000011 값은 출력될 필요가 없는 3개의 유도(leading) 제로를 갖는다. 따라서, Eni=1일 때에는 데이터 구조(Fi,Ri)가 출력되고, Eni=0일 때에는 그렇지 않도록 하기 위해, 각 데이터 구조(Fi,Ri)에 대한 인에이블 신호 Eni가 생성된다. 도4는 비-제로 값(MHC에 의한 경우로 인코딩된)을 만나면 (F0,R0)가 항상 출력되도록 하기 위해, STOP 및 RESET이 표명되면 En0는 항상 인에이블됨을 보여준다.
(Fi-1,Ri-1)가 (Fi,Ri)를 앞서는 것과 같은 순서로 데이터 구조가 출력된다. 이에 따라, 도4의 예에서는, 데이터 구조(F0,R0) 뒤에 (F1,R1)가 뒤따르고, 그 다음에 (F2,R2)가 뒤따른다. 본 발명의 일실시예에 따라, 데이터 구조(1,Ri) 내의 각 필드 Ri는 구조(0,Rj)가 나타날 때까지 단일 런을 구성하도록 사용된다. 이러한 구조에 대한 플래그 F=0는, Rj의 비트가 구조(1,Ri)로 코딩된, 즉 F=1을 갖는 이전에 만난 워드 Ri의 나머지 모든 비트에 의해 구성되는 최상위 2진수라는 것을 나타낸다. 구조에 대한 제로 플래그는 런 사이즈의 모든 비트를 만났음을 나타낸다. 따라서, 한 쌍의 4-입력 OR 게이트(422,424)는 연속되는 구조의 OR 게이트 결과의 입력으로 제공된다. 따라서, OR 게이트(422)에 대한 하나의 입력은 OR 게이트(424)의 출력이 되고, OR 게이트(424)에 대한 하나의 입력은 3-입력 OR 게이트(426)의 출력이 된다. 나머지 OR 게이트(422)의 3개의 입력은 Ri의 비트인 반면, OR 게이트(424)의 3개의 입력은 R2의 비트이다. R3의 3비트는 OR 게이트(426)의 입력을 형성한다. 이 케스캐이딩(cascading) OR 게이트 구조는 런 길이를 표현하는데 필요한 많은 구조를 정확하게 출력 및 플래그하는 능력을 구현한다.
만일, 인에이블 신호 Eni의 상태가 1이라면, 구조 (Fi,Ri)가 출력된다. 2-입력 AND 게이트는 En0를 제외한 각 인에이블 신호를 제어한다. En0는 "STOP & RESET" 신호(440)(즉, 비-제로 값을 만나면 1로 설정되고, 이에 따라 "STOP & RESET" 신호(440)가 표명된)에 의해 직접 제어된다. Eni은 AND 게이트(432)의 출력이고, 반면 En2는 AND 게이트(434)의 출력이며, En3는 AND 게이트(436)의 출력이다. AND 게이트는 하나의 입력으로 M3 신호(이것은 En0)를 갖고, 다른 입력으로 다음의 구조에 속하는 플래그 F를 갖는다. 플래그 F가 제로일 때, 런 길이수의 끝이 나타난다. 예를 들어, 도4의 예에서, F2=0이고, 따라서 En3가 제로로 설정되어, (F3,R 3)이 출력될 필요가 없음을 나타낸다. 도시된 예에서, "STOP & RESET"이 표명되면, En0, En1 , En2가 모두 1이고, 구조 (F2,R2)(F1,R1) 및 (F0 ,R0)을 출력할 필요성에 부합한다. 심지어 Ri가 000이더라도, 구조(F1,R1)는, 이것이 런 길이 수(101000010(101000011로 인코딩되는)의 일부를 형성하기 때문에 출력된다. 반면에, (F3,R3)을 구성하는 3 개의 유도 제로는, 런 길이 값을 나타내는 것이 필수적이지 않기 때문에, 출력되지 않는다.
플래그 Fi는 OR 게이트의 출력을 고려하여 도달된다. 플래그 F3은 필요에 의해 12-비트 카운터의 주어진 예를 위한 런 길이 값의 최상위 부분을 형성하기 때문에, 항상 제로와 같아야 한다. 런 길이가 2M-2와 같거나 또는 작은 경우, 본 발명의 일실시예에 따라, 단기 (F0,R0)가 출력될 필요가 있을 것이다. 이 경우에, 플래그 F0은, 도1d의 데이터 구조 정의에 따라, 0이 되어야 한다. 2M-2 이하의 런 길이는 카운터가 카운터(410)의 R1,R2,R3 부분에 비트가 채워지지 않았음을 나타낸다. 캐스캐이딩 OR 게이트 구조에 따라, OR 게이트(426,424,422)는 그의 출력에서 모두 0을 나타낼 것이다. 이에 따라, F0은 0으로 설정되어야 한다. OR 게이트(426,424,422)가 출력으로 0을 나타냄으로써, 런 길이가 2M-1보다 작은 경우, En1,En2,En 3는 또한 제로이고, 이에 따라 구조(F1,R1)(F2,R2) 및 (F3,R 3)는 디스에이블되어 출력되지 않는다. 모든 경우에서 En0=1이기 때문에, 구조 (F0,R0)는 출력되고, 0내지 2M-2 레인지 내의 어떠한 런 길이라도 충분히 나타낼 수 있다. ZRLC 인코더는 M의 선택 및 카운터의 요구된 총 레인지에 의존하여 수정될 수 있다.
도5는 본 발명의 일실시예에 따른 적응형 인코더의 블록도를 도시하고 있다.
DWT 특허에서 기술한 바와 같이, DWT의 각 레벨 k에서, 서브-밴드 LLk(k=1에 대해, 시작 데이터 셋트는 이미지 자신임)로부터 시작되어, LLk, LHk, HLk 및 HHk 서브-밴드가 생성된다. DWT 특허에 따라, k+1레벨의 나머지 3개의 서브-밴드를 생성하기 위하여, LLk 서브-밴드가 변환된다. 그리고 나서, 서브-밴드 LHk, HLk 및 HHk가 양자화 및 코딩된다. DWT 해상도의 이전 레벨이 획득될 때까지, DWT가 서브-밴드 LL 위에 "피라미드(phyramidal)" 방식으로 반복되면, 최종 레벨 LL 서브-밴드가 양자화 및 코딩된다. 나머지 LLk 서브-밴드는 다음 레벨의 서브-밴드로 추가로 변환될 가치로 표현되기 때문에, 양자화 및 코딩을 필요로 하지 않는다.
최종 레벨 LL 서브-밴드 외의 서브-밴드의 인코딩은 다음과 같이 수행된다. 신호 Encoding_Strategy는 일부 바람직한 매칭(상기 표3에 도시된 바와 같은)에 따라, 입력되는 서브-밴드가 본 발명의 다양한 실시예에 따라 나타난 수정된 ZRLC를 이용하여 인코딩 되어야 할지, 아니면 순수한 MHC를 이용하여 인코딩 될지를 나타내게 된다. Encoding_Strategy는 두 로직 경로 중 하나로 순서 제어를 거치는 판단 블록(520)을 거치게 된다. 만일, Encoding_Strategy가 순수한 MHC를 가리키면, 이 판단 블록(520)은 MHC(530)에 대한 LUT(룩업 테이블)에 대해 순서 제어를 거친다. 인코딩될 데이터의 서브-밴드, 레벨 및/또는 채널에 기반하여, LUT(530) 중 하나가 선택되어, 서브-밴드 데이터가 MHC에 따라 인코딩될 것이다. LUT(530)는 임의의 입력값에 대한 맵핑 또는 허프판 코드를 포함하는 일련의 테이블이다. 임의의 입력 서브-밴드 데이터에 대해 LUT로부터 획득된 허프만 코드값은 인코딩된 데이터(570)가 된다.
만일, 판단 블록(520)을 통과한 Encoding_Strategy가 ZRLC를 사용하도록 지시하면, 순서 제어는 블록(525)으로 지나간다.
런 길이를 인코딩하는 수정된 ZRLCM(여기서, M은 구조(F,R)에서의 R에 대한 비트 수임)는 DWT 블록으로부터 서브-밴드 데이터 값 "y"을 제로와 비교함으로써 수행된다. 만일, 이 테스트가 옳으면, 런 길이 인코더(560)의 카운터는 값 r을 런 길이로 증가시킬 것이다. 비-제로 y(서브-밴드값)가 나타나면, 이 값은 상기 비-제로 값에 대한 MHC 맵핑을 포함하는 ZRLC에 대한 LUT의 어드레스로 사용된다.
압축/인코딩된 데이터(570)를 형성하도록 출력되는 LUT(540)로부터 검색된 비-제로 값에 대한 MHC 이전에, 런 길이 인코더(560) 내의 카운터가 정지되고, M+1 비트의 구조(F,R)가 압축/인코딩된 데이터(570)에 대한 인코딩된 런 길이가 되도록 출력된다. 그리고 나서, 런 길이 인코더(560) 내의 카운터는 값1로 리셋되고, 이와 동시에, MHC가 런 길이 인코더(560)에 의해 구조(F,R) 출력을 따르도록 하기 위해, LUT로부터 나타난 비-제로 값의 MHC는 압축/인코딩된 데이터(570)로 출력된다. 런 길이 인코더(560)는 또한 3개의 다른 신호, 즉 Reset,M2 및 M3 신호에 의해 제어된다. Reset 신호는 신규 서브-밴드의 시작 데이터를 나타낸다. M2 신호는 구조(F,R) 내의 워드 R의 사이즈가 2, 즉 M=2일 경우에 ZRLC가 수행되도록 지시한다. M2가 표명되면, M=2에 대응하는 로직 네트워크는 이 런 카운터로 동작하도록 인에이블 된다. M3가 표명되면, 도4에 도시된 바와 같은, M=3에 대응되는 로직 네트워크는 이 런 카운터로 동작하도록 인에이블된다. 이에 따라, 본 발명의 일실시예에서, 인코더(560)는, 모두 동일한 카운터를 여전히 이용하는 동안, 상이한 M 값에 대해 각각 적합한 다수의 로직 네트워크와 함께 장착될 수 있다.
마지막으로, 전체 서브-밴드가 스캔되었을 때, 만일, 이전의 y가 제로라면, 단지 M+1개의 제로가 터미널 워드 (F,R)=(0,0)를 나타내도록 출력된다.
서브-밴드 LLFINAL의 코딩은 상이한 데이터 순서를 따른다. 높은 압축을 달성하기 위해, 양자화 및 에러 인코딩(블록 510)이 포함된 간단한 예고적(predictive) 코딩이 L1 서브-밴드에 적용된다. LL 서브-밴드에서 양자화된 계수를 코딩하는 대신에, 인접한 또는 연속한 값 사이의 에러 값이 엔트로피 코딩 구조에 의해 인코딩된다. 이 값들은 순수한 MHC를 이용하여 코딩되고, 이에 따라, MHC(530)에 대한 LUT를 이용한다. 수정된 ZRLC의 완전한 셋트는 원래의 미처리 이미지의 압축된 버전을 나타낸 MHC 인코딩된 데이터이다. DWT 특허에서 언급된 각 "채널"은, 부록A-E에 도시된 바와 같은 MHC 값을 포함하는 적합한 LUT(530 또는 540)를 액세스하여, 도5의 로직에 의해 개별적으로 고려되고 인코딩된다.
도6은 본 발명의 실시예에 따른 이미지 프로세싱 장치의 블록도를 도시하고 있다.
도6은 적응형 인코더를 포함하는 본 발명의 적어도 일실시예와 결합되는 이미징 장치의 내부 이미지 프로세싱 소자의 블록도를 도시하고 있다. 도6의 예시적 회로에서, 센서(600)는 장면/환경으로부터의 컬러/세기 값인 픽셀 요소를 생성한다. 센서(600)에 의해 생성된 n-비트 픽셀 값은 캡쳐 인터페이스(610)로 전송된다. 본 발명에 관련된 관점에서의 센서(600)는 통상적으로 영역 또는 위치 중 하나의 "장면(scene)"으로부터의 R,G,B 중 하나를 감지하게 된다. 이에 따라, 각 픽셀의 세기 값은 3개(또는 G1,G2가 개별적으로 고려된다면 4개인)의 컬러 평면 중 단지 하나에 연관되고, 베이터 패턴 미처리 이미지와 함께 형성된다. 캡쳐 인터페이스(610)는 센서에 의해 생성된 이미지를 분석하여, 개별 픽셀에 대한 세기 값을 할당한다. 전체 이미지에 대한 이러한 모든 픽셀의 셋트는 디지털 카메라 센서의 통상의 산업적 구현에 따라 베이어 패턴 내에 있다.
어떤 센서 장치에서는 센서 평면 내의 일부 픽셀 셀이 장면/환경에서의 알맞은 조명 조건(lighting condition)에 대해 응답하지 않는 것이 전형적이다. 그 결과, 이들 셀로부터 생성된 픽셀 값은 결점이 있을 수 있다. 이 픽셀을 "데드 픽셀(dead pixel)"이라 부른다. "픽셀 대체(pixel substitution)" 유닛(615)은 로우(row) 상에서 각 데드 픽셀을 바로 직전의 유효 픽셀로 대체한다. RAM(616)은 데드 픽셀의 로우 및 칼럼 인덱스로 구성되고, 이것은 센서에 의해 제공된다. 이 RAM(616)은 포착된 이미지에 대한 데드 픽셀의 위치를 식별하도록 돕는다. 압축 모듈(companding module)(625)은 센서로부터 포착된 n-비트(통상적으로 n=10) 세기의 원래의 각 픽셀은 m-비트 세기 값으로 변환하도록 설계되는데, 여기서 m<n(통상적으로, m=8)이다. 센서(600) 및 캡쳐 인터페이스(610)가 픽셀 값당 m-비트를 제공한다면 압축 모듈(625)은 필요하지 않게 된다.
주요 압축 프로그램(primary compressor)(628)은 압축된 센서 이미지 데이터를 수신하여, DWT 특허에서 논의된 DWT 기반의 압축과 같은 이미지 압축을 수행한다. RAM(629)은 DWT 특허에서 기술된 압축 기술을 수행시에 요구되는 각 채널/서브-밴드에 대한 DWT 계수 및/또는 양자화 임계값을 저장하는데 사용될 수 있다. 주요 압축 프로그램(628)은 압축된 채널마다 그리고 서브-밴드마다의 출력을 적응형 인코더(630)에 제공하도록 설계될 수 있다. 적응형 인코더(630)는 도4 및 도5에 나타난 디자인과 유사하게 설계될 수 있다. 본 발명의 일실시예에 따라, 적응형 인코더(630)는, 본 발명의 다른 실시예에서 나타나는 순수한 MHC 및 수정된 ZRLC와 같은, 다양한 2진 인코딩 구조를 수행하도록 장착될 수 있다. RAM(631)은 적응형 인코더(630)에 의해 사용되는 MHC LUT 및 ZRLC LUT를 저장하도록 구성될 수 있다. 적응형 인코더(630)는 인코딩 및 압축된 데이터를 저장 어레이(640)에 제공한다. 적응형 인코딩의 결과, 저장 어레이(640)는 이미지 데이터에 대한 많은 가능한 2진 인코딩 기술 중의 하나만이 유일하게 적용되는 통상의 비-적응형 인코더의 사이즈보다는 작게 설계될 수 있다. 각 이미지(또는 서브-밴드와 같은 이미지 압축 부산물)는 다른 것에 비해 하나의 인코딩 구조를 지지하는 독특한 특성을 가지기 때문에, 적응형 인코딩은 압축되거나 또는 그렇지 않은 이미지 데이터의 인코딩에서 특히 유리하다.
RAM 테이블(616,626,629,631)의 각각은, 필요시 그들의 데이터를 로딩하고, 이후에 수정하기 위해, 버스(660)와 직접 통신할 수 있다. 또한, 이들 RAM 테이블 및 다른 RAM 테이블은 필요에 따라 중간 결과 데이터를 저장하는데 사용될 수 있다. 저장 어레이(640)의 데이터가 도6의 이미징 장치에 대해 외부로 전달될 준비가 되면, 이것은 전달을 위해 버스(660) 상에 위치될 수 있다. 또한, 버스(660)는 요구에 따라 RAM 테이블(616, 626,629,631)의 갱신을 도모할 수 있다.
도7은 본 발명의 일실시예에 따른 시스템을 도시하고 있다.
도시된 컴퓨터 시스템(710)은, 카메라(730)에 연결된 PC와 같은, 일반적인 또는 특별한 목적의 컴퓨팅 또는 데이터 프로세싱 머신이 될 수 있다. 카메라(730)는 디지털 카메라, 디지털 비디오 카메라, 이미지 캡쳐 장치, 이미징 시스템, 또는 이들의 조합이 될 수 있고, 장면(740)의 이미지를 포착하도록 사용된다. 필수적으로, 포착된 이미지는 이미지 프로세싱 회로(732)에 의해 처리되어, 이미지 메모리 유닛(734)에 충분히 저장될 수 있게 되고, 이것은 RAM 또는 고정된 디스크와 같은 그 밖의 저장 장치일 수 있다. 컴퓨터 시스템(710)으로 연결된 이미지 메모리 유닛(734) 내에 포함된 이미지는, 본 발명의 일실시예에 따라, 압축 및 적당히 인코딩된 이미지로 직접 저장될 수 있다. 스틸 이미징을 수행할 수 있는 대부분의 디지털 카메라에서, 이미지는 먼저 저장되고, 나중에 다운로드된다. 이것은 카메라(730)가 추가적 지연없이 빠르게 다음의 대상/장면을 포착할 수 있게 한다. 여러 실시예에서의 본 발명은, 특히 포착된 8-비트 베이어 패턴으로부터 직접 변환된 압축 이미지를 제공할 때, 카메라(730)의 계산상의 요구 및 이와 관련된 비용을 줄이게 되어, 보다 싼 카메라를 제공할 수 있게 된다.
이미지 프로세싱 회로(732)는 본 발명의 하나 또는 그 이상의 실시예에 따라 압축 및 적응형 인코딩을 수행한다. 압축 및 인코딩된 이미지가 컴퓨터 시스템(710)으로 다운로드되면, 이것은 디코딩되고 나서, 프린터(미도시) 또는 모니터 장치(720)와 같은 일부 출력 장치에 렌더링된다. 이미지 디코딩은 PentiumTM(인텔 코퍼레이션사의 제품) 프로세서와 같은 프로세서(712), 및 명령어 어드레스 및 결과 데이터를 저장/로딩하는 RAM과 같은 메모리(711)를 이용하여 수행될 수 있다.
컴퓨터 시스템(710)은 카메라(730)에 도5 및 도6에 도시된 수정된 ZRLC 및 MHC를 위해 필요한 LUT를 제공할 수 있다.
대안적 실시예에서, 전술된 적응형 인코딩 및 수정된 ZRLC 기술은 카메라(730)에 직접 실행되기 보다는 컴퓨터 시스템 상에서 실행되는 소프트웨어 애플리케이션으로 달성될 수 있다. 이러한 실시예에서, 이미지 프로세싱 장치는 단지 압축된 이미지만을 유리하게 저장할 수 있다. 카메라(730)로부터 다운로드된 후에 인코딩 및/또는 디코딩을 수행하는데 사용되는 애플리케이션은 C++와 같은 언어로 쓰여진 소스 코드로부터 실행 가능하게 컴파일된 것일 수 있다. 이미지를 스케일링하는데 필요한 명령어에 대응하는 상기 실행가능 파일의 명령어는 디스크(718) 또는 메모리(711)에 저장될 수 있다. 또한, 이러한 애플리케이션 소프트웨어는 다른 시스템에서 사용하기 위해 네트워크 또는 컴퓨터-판독가능 매체 상에서 분배될 수 있다.
장면(740)의 이미지와 같은 이미지가 카메라(730)에 의해 포착되면, 이것은 이미지 프로세싱 회로(732)로 전송된다. 이미지 프로세싱 회로(732)는 다른 기능들 사이에서 압축된 이미지의 적응형 인코딩을 수행하는 IC 및 그 밖의 소자로 구성된다. 이미지 메모리 유닛(734)은 압축 및 인코딩된 데이터를 저장할 수 있다. 모든 픽셀이 처리되어 저장되거나, 또는 렌더링을 위해 컴퓨터 시스템(710)에 전달되면, 카메라(730)는 다음의 이미지를 포착하는데 자유로워 진다. 유저 또는 애플리케이션이 이미지의 다운로드를 요구/요청하면, 이미지 메모리 유닛 내의 인코딩된 이미지 데이터는 이미지 메모리 유닛(734)으로부터 I/O 포트(717)로 전달된다. I/O 포트(717)는 데이터를 메모리(711), 또는 선택적으로 디스크(718)에 일시적으로 저장하기 위해, 도시된 버스-브릿지 계층 구조(I/O 버스(715)-브릿지(714)-시스템 버스(713))를 사용한다. 컴퓨터 시스템(710)은 프로세서(712) 및 메모리(711)에/로부터 정보 전달에 이용되는 시스템 버스(713) 및 I/O 버스(715)에 연결된 브릿지(714)를 구비한다. I/O 버스(715)는 디스플레이 어댑터(716), 디스크(718) 및 직렬 포트와 같은 I/O 포트(717)등의 여러 I/O 장치에 연결된다. 이러한 I/O 장치, 버스 및 브릿지의 많은 조합이 본 발명에서 이용될 수 있고, 도시된 조합은 하나의 가능한 조합만을 예시한 것이다.
본 발명의 다른 실시예에서, 수정된 ZRLC 인코딩 및 적응형 인코딩은 텍스트 파일의 압축과 같은 일반적인 비-이미지 데이터의 압축을 수행하는데 사용될 수 있다. 이러한 데이터는 디스크, 메모리(711) 또는 다른 저장 메카니즘에 저장될 수 있고, 적당히 인코딩된 값으로 압축될 수 있다. 이러한 데이터의 인코딩에서, 수정된 ZRLC를 이용하여 인코딩되고, MHC를 이용하여 인코딩된 데이터 스트림의 부분을 검출할 수 있다. 많은 수의 연속한 제로가 포함된 데이터에서는, 임의의 큰 런-길이 값의 표현이 가능한 수정된 ZRLC 구조가 특히 효과적일 수 있다. 높은 엔트로피를 보이는 데이터에서는, MHC가 보다 적합할 수 있다.
앞의 명세서에서, 본 발명은 특정한 예시적인 실시예를 참조하여 설명되었다. 그러나, 첨부된 청구항에서 기술되는 바와 같이, 본 발명의 보다 넓은 사상 및 범위에서 벗어나지 않는 한, 다양한 수정 및 변경이 가능하다는 것은 명백한 사실이다. 따라서, 본 명세서 및 도면은 제한적 관점이라기 보다는 하나의 예시로서 간주되어야 한다. 이에 따라, 본 발명의 범위는 첨부한 청구항에 의해서만 제한되어야 한다.

Claims (24)

  1. 워드(R)를 저장하기 위해 사용되는 비트 수를 결정하는 단계 - 여기서, 상기 워드(R)는 플래그를 수반하고, 상기 플래그와 워드(R)는 하나의 구조로 이루어짐 -;
    플래그 1을 갖는 구조에서의 대응 워드(R)가 런 길이의 일부분을 형성하며, 다음 구조에서 워드(R)가 인접해 있다는 것을 나타내는 플래그 1을 갖는 구조를 특정하고, 대응 워드(R)가 런 길이의 최상위 부분(the most significant portion)이라는 것을 나타내는 플래그 0을 가진 구조를 특정하는 단계; 및
    상기 각 비트가 전부 사용되었더라도 상기 워드(R)의 상기 비트 수에 의해 허용가능한 것보다 더 큰 길이의 런을 인코딩하는 단계 - 여기서, 상기 인코딩은 다수의 상기 구조를 함께 연결함(stringing)으로써 달성됨 -
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 런은 데이터 셋트 내의 2개의 비-제로(non-zero) 값 사이의 제로의 수를 나타내는
    방법.
  3. 제 2 항에 있어서,
    상기 비-제로 값은 수정된 허프만 코딩(Modified Huffman Coding)을 이용하여 인코딩되는
    방법.
  4. 제 2 항에 있어서,
    상기 데이터 셋트는 이산 웨이블렛 변환(Discrete Wavelet Transform; DWT)으로부터 얻어지는 서브-밴드 데이터인
    방법.
  5. 제 3 항에 있어서,
    상기 비-제로 값은 탐색 테이블(look-up table)을 어드레스하기 위해 이용되며, 그로부터 상기 비-제로 값에 대응하는 허프만 코드를 유도하는
    방법.
  6. 제 4 항에 있어서,
    상기 데이터의 각각의 서브-밴드는 상기 서브-밴드의 엔트로피 특성에 따르는 방식으로 인코딩되며, 상기 방법은 상기 제로 및 비-제로 값이 모두 수정된 허프만 인코딩을 이용하여 인코딩되는 방법을 포함하는
    방법.
  7. 제 6 항에 있어서,
    상기 데이터 셋트는 상기 DWT가 이미지에 대해 수행될 때 상기 데이터 셋트의 컬러 특성에 관련된 채널에 의해 더 분류되는
    방법.
  8. 삭제
  9. 제 1 항에 있어서,
    플래그 1과 워드(R) 1을 갖는 구조는 플래그 0과 워드(R) 1을 갖는 상기 구조 다음에 오는 비-제로 값이 이전의 비-제로 값에 인접해 있다는 것을 나타내는
    방법.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. M 비트의 그룹으로 각각 분할된 N-비트 카운터 - 여기서, M은 데이터 값을 인코딩하기 위한 강화된 제로 런 길이 코딩 방식(enhanced Zero Run Length Coding scheme)에서 워드(R)의 길이를 포함함 - ; 및
    상기 카운터에 연결된 로직 네트워크 - 여기서, 상기 로직 네트워크는 플래그를 세팅하고 상기 카운터로부터의 선택된 상기 M 비트 그룹의 출력을 인에이블시키도록 구성됨 -
    를 포함하고,
    여기서, 상기 로직 네트워크는,
    상기 카운터의 M개의 최상위 비트를 입력으로서 수신하도록 구성된 제1 OR 게이트 - 여기서, 상기 제1 OR 게이트 출력은 상기 카운터의 두번째의 M개의 최상위 비트의 플래그를 세팅함 -;
    다음의 M개의 최상위 비트 그룹과 상기 제1 OR 게이트의 출력을 입력으로서 수신하도록 구성된 제2 OR 게이트 - 여기서, 상기 제2 OR 게이트 출력은 상기 카운터의 그 다음 M 비트의 플래그를 세팅함 -; 및
    상기 제2 OR 게이트에 의해 수신되는 것 다음에 오는 M개의 최상위 비트 그룹과 상기 제2 OR 게이트의 출력을 입력으로서 수신하도록 구성된 제3 OR 게이트 - 여기서, 상기 제3 OR 게이트 출력은 상기 카운터의 최상위 M 비트에 속한 구조의 플래그를 세팅함 - 를 포함하는
    장치.
  16. 삭제
  17. 제 15 항에 있어서,
    상기 인에이블 신호는 상기 카운터로의 정지 및 리셋 신호 입력과 선택된 플래그의 논리 조합으로서 제공되고, 상기 최상위 M 비트의 플래그는 항상 제로로 세팅되는
    장치.
  18. 제 15 항에 있어서,
    M=3인
    장치.
  19. 제 15 항에 있어서,
    상기 로직 네트워크는 상이한 값의 M에 대해 수정되는
    장치.
  20. 각각 워드(R)와 플래그로 이루어진 구조를 추출함으로써 데이터 스트림 내의 유사한 값의 런을 디코딩하는 단계
    를 포함하고,
    여기서, 상기 플래그가 1인 경우에는, 그 구조에서의 대응 워드(R)가 런 길이의 일부분을 형성하도록 결정되고, 그 다음 구조에서 상기 R 값이 현재 구조에서의 워드(R)에 의해 형성된 상기 런 길이의 일부분에 인접하게 되며,
    상기 플래그가 0인 경우에는, 대응 워드(R)가 런 길이의 최상위 부분이 되는
    방법.
  21. 제 20 항에 있어서,
    플래그 1과 워드(R) 1을 갖는 구조는 플래그 0과 워드(R) 1을 갖는 구조 다음에 오는 비-제로 값이 이전의 비-제로 값에 인접한다는 것을 나타내는
    방법.
  22. 삭제
  23. 삭제
  24. 삭제
KR10-2000-7015124A 1998-07-02 1999-07-02 Dwt-기반 기술에 의해 압축된 이미지를 코딩하기 위한실시간 알고리즘 및 구조 KR100491333B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/109,475 US6124811A (en) 1998-07-02 1998-07-02 Real time algorithms and architectures for coding images compressed by DWT-based techniques
US09/109,475 1998-07-02

Publications (2)

Publication Number Publication Date
KR20010053348A KR20010053348A (ko) 2001-06-25
KR100491333B1 true KR100491333B1 (ko) 2005-05-25

Family

ID=22327843

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7015124A KR100491333B1 (ko) 1998-07-02 1999-07-02 Dwt-기반 기술에 의해 압축된 이미지를 코딩하기 위한실시간 알고리즘 및 구조

Country Status (9)

Country Link
US (1) US6124811A (ko)
EP (1) EP1095459B1 (ko)
JP (1) JP4343440B2 (ko)
KR (1) KR100491333B1 (ko)
AU (1) AU4861199A (ko)
DE (1) DE69942028D1 (ko)
GB (1) GB0031324D0 (ko)
TW (1) TW453049B (ko)
WO (1) WO2000002319A1 (ko)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6940908B1 (en) * 1998-09-17 2005-09-06 Intel Corporation Compressing video frames
US6166665A (en) 1999-03-08 2000-12-26 Unisys Corporation Data compression method and apparatus with embedded run-length encoding
US7095164B1 (en) 1999-05-25 2006-08-22 Intel Corporation Display screen
US6697534B1 (en) 1999-06-09 2004-02-24 Intel Corporation Method and apparatus for adaptively sharpening local image content of an image
US6658399B1 (en) 1999-09-10 2003-12-02 Intel Corporation Fuzzy based thresholding technique for image segmentation
US6625308B1 (en) 1999-09-10 2003-09-23 Intel Corporation Fuzzy distinction based thresholding technique for image segmentation
US7106910B2 (en) * 1999-10-01 2006-09-12 Intel Corporation Color video coding scheme
US7053944B1 (en) 1999-10-01 2006-05-30 Intel Corporation Method of using hue to interpolate color pixel signals
AUPQ457299A0 (en) * 1999-12-10 2000-01-13 Canon Kabushiki Kaisha Inverse dwt method and apparatus
US6628827B1 (en) 1999-12-14 2003-09-30 Intel Corporation Method of upscaling a color image
US7158178B1 (en) 1999-12-14 2007-01-02 Intel Corporation Method of converting a sub-sampled color image
US6961472B1 (en) 2000-02-18 2005-11-01 Intel Corporation Method of inverse quantized signal samples of an image during image decompression
US6748118B1 (en) 2000-02-18 2004-06-08 Intel Corporation Method of quantizing signal samples of an image during same
US6738520B1 (en) * 2000-06-19 2004-05-18 Intel Corporation Method of compressing an image
US7046728B1 (en) 2000-06-30 2006-05-16 Intel Corporation Method of video coding the movement of a human face from a sequence of images
US6775413B1 (en) 2000-09-18 2004-08-10 Intel Corporation Techniques to implement one-dimensional compression
US6563439B1 (en) * 2000-10-31 2003-05-13 Intel Corporation Method of performing Huffman decoding
US6636167B1 (en) 2000-10-31 2003-10-21 Intel Corporation Method of generating Huffman code length information
US20020118746A1 (en) * 2001-01-03 2002-08-29 Kim Hyun Mun Method of performing video encoding rate control using motion estimation
GB0102154D0 (en) * 2001-01-27 2001-03-14 Ibm Decimal to binary coder/decoder
US6766286B2 (en) 2001-03-28 2004-07-20 Intel Corporation Pyramid filter
US6889237B2 (en) * 2001-03-30 2005-05-03 Intel Corporation Two-dimensional pyramid filter architecture
US20020184276A1 (en) * 2001-03-30 2002-12-05 Tinku Acharya Two-dimensional pyramid filter architecture
US6563440B1 (en) * 2001-10-19 2003-05-13 Nokia Corporation Apparatus and method for decoding Huffman codes using leading one/zero string length detection
US7266151B2 (en) * 2002-09-04 2007-09-04 Intel Corporation Method and system for performing motion estimation using logarithmic search
US20040042551A1 (en) * 2002-09-04 2004-03-04 Tinku Acharya Motion estimation
US7260624B2 (en) * 2002-09-20 2007-08-21 American Megatrends, Inc. Systems and methods for establishing interaction between a local computer and a remote computer
US20040057626A1 (en) * 2002-09-23 2004-03-25 Tinku Acharya Motion estimation using a context adaptive search
US20060126718A1 (en) * 2002-10-01 2006-06-15 Avocent Corporation Video compression encoder
US7321623B2 (en) * 2002-10-01 2008-01-22 Avocent Corporation Video compression system
US20040174446A1 (en) * 2003-02-28 2004-09-09 Tinku Acharya Four-color mosaic pattern for depth and image capture
US20040169748A1 (en) * 2003-02-28 2004-09-02 Tinku Acharya Sub-sampled infrared sensor for use in a digital image capture device
US7274393B2 (en) * 2003-02-28 2007-09-25 Intel Corporation Four-color mosaic pattern for depth and image capture
US7418141B2 (en) * 2003-03-31 2008-08-26 American Megatrends, Inc. Method, apparatus, and computer-readable medium for identifying character coordinates
US7412625B2 (en) * 2003-05-27 2008-08-12 American Megatrends, Inc. Method and system for remote software debugging
US7546584B2 (en) * 2003-06-16 2009-06-09 American Megatrends, Inc. Method and system for remote software testing
US7543277B1 (en) 2003-06-27 2009-06-02 American Megatrends, Inc. Method and system for remote software debugging
US9560371B2 (en) 2003-07-30 2017-01-31 Avocent Corporation Video compression system
US7319795B2 (en) * 2003-09-23 2008-01-15 Broadcom Corporation Application based adaptive encoding
US7684629B2 (en) * 2004-01-26 2010-03-23 Fujifilm Corporation Data compression apparatus, and data compression program storage medium
US7827258B1 (en) * 2004-03-01 2010-11-02 American Megatrends, Inc. Method, system, and apparatus for communicating with a computer management device
US7457461B2 (en) 2004-06-25 2008-11-25 Avocent Corporation Video compression noise immunity
US7006700B2 (en) * 2004-06-25 2006-02-28 Avocent Corporation Digital video compression command priority
US7519749B1 (en) * 2004-08-25 2009-04-14 American Megatrends, Inc. Redirecting input and output for multiple computers
US8010843B2 (en) 2005-12-14 2011-08-30 American Megatrends, Inc. System and method for debugging a target computer using SMBus
US8718147B2 (en) * 2006-02-17 2014-05-06 Avocent Huntsville Corporation Video compression algorithm
US7555570B2 (en) 2006-02-17 2009-06-30 Avocent Huntsville Corporation Device and method for configuring a target device
US8848789B2 (en) * 2006-03-27 2014-09-30 Qualcomm Incorporated Method and system for coding and decoding information associated with video compression
CA2650663A1 (en) 2006-04-28 2007-11-08 Avocent Corporation Dvc delta commands
JP2008035230A (ja) * 2006-07-28 2008-02-14 Fujifilm Corp データ圧縮装置およびデータ圧縮プログラム
US7783799B1 (en) * 2006-08-31 2010-08-24 American Megatrends, Inc. Remotely controllable switch and testing methods using same
CN101689357B (zh) 2007-04-11 2015-03-04 Red.Com公司 摄像机
US8237830B2 (en) 2007-04-11 2012-08-07 Red.Com, Inc. Video camera
US7501964B2 (en) * 2007-04-16 2009-03-10 Texas Instruments Incorporated Entropy coding for digital codecs
US8135072B2 (en) * 2007-08-01 2012-03-13 Lsi Corporation CAVLC run before encode with zero cycle costs
US8611652B2 (en) * 2009-12-16 2013-12-17 Red.Com, Inc. Resolution based formatting of compressed image data
BR122019025407B8 (pt) * 2011-01-13 2023-05-02 Canon Kk Aparelho de codificação de imagem, método de codificação de imagem, aparelho de decodificação de imagem, método de decodificação de imagem e meio de armazenamento
JP6126006B2 (ja) * 2012-05-11 2017-05-10 パナソニック株式会社 音信号ハイブリッドエンコーダ、音信号ハイブリッドデコーダ、音信号符号化方法、及び音信号復号方法
US9098887B2 (en) * 2012-10-12 2015-08-04 Mediatek Inc. Image compression method and apparatus for encoding pixel data of frame into interleaved bit-stream, and related image decompression method and apparatus
JP2016508700A (ja) 2013-02-14 2016-03-22 レッド.コム,インコーポレイテッド ビデオカメラ
JP6593122B2 (ja) * 2015-11-20 2019-10-23 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
JP6629165B2 (ja) 2016-10-07 2020-01-15 株式会社東芝 データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置
KR102620350B1 (ko) 2017-07-05 2024-01-02 레드.컴, 엘엘씨 전자 디바이스에서의 비디오 이미지 데이터 처리
CA3159585A1 (en) * 2019-10-28 2021-05-06 Lg Electronics Inc. Image encoding/decoding method and device using adaptive color transform, and method for transmitting bitstream
CN113765620B (zh) * 2020-06-01 2022-09-23 南京大学 分块压缩编码方法、装置、计算机设备及可读存储介质
US11176908B1 (en) * 2020-07-22 2021-11-16 Hung-Cheng Kuo Method for reducing a size of data required for recording a physical characteristic of an optical device
US11967973B2 (en) * 2021-05-06 2024-04-23 Samsung Display Co., Ltd. Low overhead transition encoding codes
US20230254493A1 (en) * 2022-02-08 2023-08-10 Synaptics Incorporated Lossless compression for low-latency video transmission in resource-constrained encoding environment

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4988998A (en) * 1989-09-05 1991-01-29 Storage Technology Corporation Data compression system for successively applying at least two data compression methods to an input data stream
US5757973A (en) * 1991-01-11 1998-05-26 Sony Corporation Compression of image data seperated into frequency component data in a two dimensional spatial frequency domain
US5488486A (en) * 1991-03-11 1996-01-30 Ricoh Company, Ltd. Image processing system
US5412429A (en) * 1993-03-11 1995-05-02 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Picture data compression coder using subband/transform coding with a Lempel-Ziv-based coder
US5617517A (en) * 1994-09-20 1997-04-01 Seiko Epson Corporation Two-dimensional method and system for compressing bi-level images
US5966465A (en) * 1994-09-21 1999-10-12 Ricoh Corporation Compression/decompression using reversible embedded wavelets
GB2301252A (en) * 1995-05-23 1996-11-27 Ibm Run length data compression
NL1000489C2 (nl) * 1995-06-02 1996-12-03 Oce Nederland Bv Werkwijze en inrichting voor comprimeren en decomprimeren van digitale beeldsignalen.
US5819215A (en) * 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5682152A (en) * 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US5751231A (en) * 1996-06-26 1998-05-12 Intel Corporation Method and apparatus for run-length encoding using special long-run codes

Also Published As

Publication number Publication date
JP2002520899A (ja) 2002-07-09
TW453049B (en) 2001-09-01
KR20010053348A (ko) 2001-06-25
EP1095459A4 (en) 2003-01-29
DE69942028D1 (de) 2010-04-01
EP1095459A1 (en) 2001-05-02
JP4343440B2 (ja) 2009-10-14
EP1095459B1 (en) 2010-02-17
WO2000002319A1 (en) 2000-01-13
US6124811A (en) 2000-09-26
GB0031324D0 (en) 2001-02-07
AU4861199A (en) 2000-01-24

Similar Documents

Publication Publication Date Title
KR100491333B1 (ko) Dwt-기반 기술에 의해 압축된 이미지를 코딩하기 위한실시간 알고리즘 및 구조
US6166664A (en) Efficient data structure for entropy encoding used in a DWT-based high performance image compression
US6285796B1 (en) Pseudo-fixed length image compression scheme
US5835034A (en) System and method for lossless image compression
EP1834487B1 (en) Method for improved entropy coding
US6301392B1 (en) Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage
TWI431948B (zh) 轉換區塊之效率編碼和解碼
KR100424288B1 (ko) 웨이블렛 계수의 지향성 예측 코딩을 이용한 이미지 압축
EP1349394B1 (en) System and method for progressively transforming and coding digital data
US7991052B2 (en) Variable general purpose compression for video images (ZLN)
Srinivasan et al. HD Photo: a new image coding technology for digital photography
US8068544B2 (en) Compression with doppler enhancement
US9077960B2 (en) Non-zero coefficient block pattern coding
KR20010025085A (ko) 2-차원 이산 웨이브렛 변환을 바탕으로 지각적 무손실이미지를 산출하는 컬러 이미지의 압축
KR20070046852A (ko) 혼합된 그래픽 및 비디오 소스의 압축을 위한 시스템 및방법
GB2308768A (en) Video encoding based on inter block redundancy
WO2023138391A1 (zh) 系数解码方法、装置、图像解码器及电子设备
Rabbani et al. An optimized image data compression technique utilized in the Kodak SV9600 still video transceiver
Rahman et al. The Impact of State-of-the-Art Techniques for Lossless Still Image Compression. Electronics 2021, 10, 360
KR100923029B1 (ko) 비디오 프레임의 재압축 방법
JP3200073B2 (ja) 画像処理装置
Lee et al. Other Still Image Compression Standards
Yovanof An Overview of Video Coding Techniques
Lee et al. A new adaptive colorization filter for Video decompression

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130503

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140502

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160427

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee