KR20040077921A - Compression of palettized color images with variable length color codes - Google Patents

Compression of palettized color images with variable length color codes Download PDF

Info

Publication number
KR20040077921A
KR20040077921A KR10-2004-7011865A KR20047011865A KR20040077921A KR 20040077921 A KR20040077921 A KR 20040077921A KR 20047011865 A KR20047011865 A KR 20047011865A KR 20040077921 A KR20040077921 A KR 20040077921A
Authority
KR
South Korea
Prior art keywords
color
bitplanes
variable length
picture
pixel
Prior art date
Application number
KR10-2004-7011865A
Other languages
Korean (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 KR20040077921A publication Critical patent/KR20040077921A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/644Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor using a reduced set of representative colours, e.g. each representing a particular range in a colour space

Abstract

칼라 화상(1)은 가변 길이 칼라 코드를 상기 화상의 각각의 칼라와 연관시킴으로써 압축되고 나서 상기 칼라 화상의 각각의 픽셀에 대한 2진 칼라 코드들의 1 비트 위치를 각각 나타내는 비트플레인들(51-54)을 형성한다. 가변 길이 코드들은 가령 정규 허프만 알고리즘(canonical Huffman algorithm)에 의해 최적화된다. 간단한 아이콘들 및 특수 문자 화상들(예를 들어, 16×16 픽셀들)에 대해서 조차도 압축은 높게된다. 압축해제는 간단하며, 고속이고 자원 비용이 덜든다. 많은 다른 사용들 중에서, 화상 압축해제는 칼라 LCD 디스플레이를 갖는 셀룰러 전화에 사용하는데 적합하다.The color picture 1 is compressed by associating a variable length color code with each color of the picture, and then bitplanes 51-54 respectively representing one bit position of binary color codes for each pixel of the color picture. ). Variable length codes are optimized by, for example, the canonical Huffman algorithm. Even for simple icons and special character images (e.g. 16x16 pixels) the compression is high. Decompression is simple, high speed and low resource cost. Among many other uses, image decompression is suitable for use in cellular telephones with color LCD displays.

Description

가변 길이 칼라 코드들로 팔레트화된 칼라 화상들의 압축{COMPRESSION OF PALETTIZED COLOR IMAGES WITH VARIABLE LENGTH COLOR CODES}Compression of color images paletted with variable length color codes {COMPRESSION OF PALETTIZED COLOR IMAGES WITH VARIABLE LENGTH COLOR CODES}

화상은 2차원 픽셀들의 어레이를 사용하여 디지털화된 형태로 표시된다. 픽셀 어레이 크기는 약 16 ×16 픽셀들을 갖는 매우 간단한 문자 또는 아이콘 화상으로부터 1024 ×1024(또는, 그 이상) 픽셀들을 갖는 크고 상세한 화상으로 가변될 수 있다. 흑색 및 백색과 같은 단지 2개의 칼라 셰이드들(color shades)을 지닌 2-레벨 화상(bi-level image)에 대해선, 각각의 픽셀은 단일 2진 값으로 표시될 수 있다. 다른 한편으로, 소망의 칼라들의 범위를 나타내기 위해선, 칼라 화상들은 8비트들 또는 심지어 픽셀 당 24비트들을 필요로 함으로, 2-레벨 화상들 보다 훨씬 많은 데이터를 포함한다. 효율적인 데이터 전송 및 데이터 저장을 위해서 칼라 화상들을 압축하는 것이 매우 바람직하다.The image is displayed in digitized form using an array of two dimensional pixels. The pixel array size can vary from a very simple character or icon picture with about 16 × 16 pixels to a large, detailed picture with 1024 × 1024 (or more) pixels. For a bi-level image with only two color shades, such as black and white, each pixel can be represented by a single binary value. On the other hand, to represent the desired range of colors, color pictures contain much more data than 2-level pictures, requiring 8 bits or even 24 bits per pixel. It is highly desirable to compress color pictures for efficient data transfer and data storage.

광 범위한 각종 화상 압축 기술들이 제안되었는데, 이들 기술 대부분은 스트림-지향(stream-oriented)된다. 이들 스트림-지향된 기술들은 일반적으로 화상이상대적으로 크고 복잡한 경우 효율적이지만, 일반적으로, 분리된 단일의 간단한 아이콘 또는 문자 화상에 적용될 때 비효율적이다. 또한, 압축해제는 상대적으로 값비싼 자원들을 필요로 하는 경향이 있다.A wide variety of image compression techniques have been proposed, most of which are stream-oriented. These stream-oriented techniques are generally efficient when pictures are large and complex, but are generally inefficient when applied to a single, simple icon or text picture that is separate. Decompression also tends to require relatively expensive resources.

칼라 화상들은 각종 환경들에 사용된다. 한가지 최근의 관심 분야는 LCD 디스플레이 스크린과 같은 칼라 디스플레이 장치를 갖는 셀룰러 전화들과 같은 휴대용 통신 장치들이다. 이 유형의 장치들에서, 시스템 자원들, 특히 ROM, RAM, 및 계산력과 같은 자원들이 제한된다. 첫번째, 장치의 물리적인 크기를 최소화하는 것이 바람직하다. 두번째, 장치의 구성요소들의 비용을 최소화하는 것이 바람직하다. 세번째, 전력 소모를 최소화하는 것이 바람직하다. 네번째, 시간 제한되는 화상을 상대적으로 신속하게 디스플레이하는 것이 바람직하다. 그러므로, 시스템 자원들이 제한되는 환경에 적용가능한 화상 압축 및 압축해제 방법들 및 장치들이 필요로 된다. 특히, 소형이며, 고속이고 메모리 자원들을 최소로 사용하고 계산하는데 비용이 저렴한 디코더에 의해 압축해제될 수 있는 압축된 화상을 제공하는 것이 바람직하다.Color images are used in various environments. One recent area of interest is portable communication devices such as cellular telephones with color display devices such as LCD display screens. In devices of this type, system resources, in particular resources such as ROM, RAM, and computing power, are limited. First, it is desirable to minimize the physical size of the device. Second, it is desirable to minimize the cost of the components of the device. Third, it is desirable to minimize power consumption. Fourth, it is desirable to display a time-limited picture relatively quickly. Therefore, there is a need for image compression and decompression methods and apparatuses applicable to an environment where system resources are limited. In particular, it is desirable to provide a compressed picture that can be decompressed by a decoder that is compact, fast and inexpensive to use and compute with minimal memory resources.

US5,659,631(Ricoh)는 칼라 플레인들의 세트를 생성시킨 후 선택적으로 비트플레인들의 세트를 생성시키는 칼라 화상들용 데이터 압축 시스템을 개시한다. 각각의 칼라 플레인 및 비트플레인은 2-레벨 화상용 단일 비트플레인과 유사한 1비트 2진값들의 2차원 어레이가 되며, 그 후, 이는 엔코딩하는데 효율적으로 된다. 그러나. 이 칼라 플레인들 및 비트플레인들의 세트는 최적의 화상 압축을 제공하지 못하고, 압축해제는 여전히 자원 집중적으로 된다.US 5,659,631 (Ricoh) discloses a data compression system for color pictures that generates a set of color planes and then optionally generates a set of bitplanes. Each color plane and bitplane becomes a two-dimensional array of one-bit binary values similar to a single bitplane for two-level pictures, which then becomes efficient for encoding. But. This set of color planes and bitplanes does not provide optimal image compression, and decompression is still resource intensive.

본 발명은 일반적으로, 칼라 화상들을 압축된 칼라 화상으로 압축하는 방법 및 장치에 관한 것이고 칼라 화상들의 압축해제를 위한 방법 및 장치에 관한 것이다.The present invention generally relates to a method and apparatus for compressing color images into a compressed color image and to a method and apparatus for decompression of color images.

도1은 칼라 화상들의 압축 및 압축해제를 위한 바람직한 장치의 개요적인 블록도.1 is a schematic block diagram of a preferred apparatus for compressing and decompressing color images.

도2는 칼라 화상의 압축을 위한 바람직한 방법의 개략도.2 is a schematic diagram of a preferred method for the compression of color images.

도3은 일예의 칼라 화상을 도시한 도면.3 is a view showing an example of a color image.

도4는 도3의 예의 칼라 화상에 할당된 칼라 코드들을 도시한 도면.Fig. 4 shows color codes assigned to the color picture of the example of Fig. 3;

도5는 상기 예의 칼라 화상 내에서 각각의 칼라의 발생 빈도를 도시한 테이블.Fig. 5 is a table showing the frequency of occurrence of each color in the color image of the above example.

도6은 2진 칼라 코드들의 일예의 2진 트리를 도시한 도면.6 illustrates a binary tree of one example of binary color codes.

도7은 비트플레인들의 예를 도시한 도면.7 illustrates an example of bitplanes.

도8은 가변 길이 2진 칼라 코드들의 할당을 최적화하는 바람직한 방법의 개략도.8 is a schematic diagram of a preferred method of optimizing the assignment of variable length binary color codes.

도9는 압축 및 압축해제 동안 데이터 흐름을 도시한 개요도.9 is a schematic diagram showing data flow during compression and decompression.

도10은 칼라 화상의 압축해제를 위한 바람직한 방법의 개략도.10 is a schematic diagram of a preferred method for decompression of a color image.

도11은 비트플레인의 컨텍스트 모델링 동안 사용되는 일예의 템플레이트를 도시한 도면.FIG. 11 illustrates an example template used during context modeling of a bitplane. FIG.

도12는 제1 및 제2 픽셀 위치들 간에서 이동되는 예의 템플레이트를 도시한 도면.12 illustrates an example template that is moved between first and second pixel positions.

도13은 압축된 칼라 화상의 압축해제 동안 사용하기 위한 바람직한 데이터 저장 레이아웃을 도시한 도면.Figure 13 illustrates a preferred data storage layout for use during decompression of a compressed color image.

본 발명의 목적은 상술되었든지 상술되지 않았든지 관계없이 종래 기술의 문제점들을 처리하는 칼라 화상들의 압축 및 압축해제를 위한 방법들 및 장치들을 제공하는 것이다. 본 발명의 적어도 바람직한 실시예들의 목적은 압축해제가 시스템 자원들이 제한되는 환경에 적합하게 되도록 칼라 화상들의 압축을 처리하고 이와 같은 환경에서 압축해제를 처리하도록 하는 것이다. 또 다른 바람직한 목적은 간단한 아이콘 또는 문자 화상의 효율적인 화상 압축 및 압축해제를 제공하는 것이다.It is an object of the present invention to provide methods and apparatuses for the compression and decompression of color images that address the problems of the prior art, whether or not described above. It is an object of at least preferred embodiments of the present invention to allow decompression to handle the compression of color images and to decompress in such an environment so that it is suitable for an environment where system resources are limited. Another preferred object is to provide efficient image compression and decompression of simple icon or text images.

본 발명의 제1 양상을 따르면, 2진 값들의 2차원 어레이를 각각 포함하는 복수의 비트플레인들을 생성하는 단계; 상기 복수의 비트플레인들을 엔코딩하는 단계를 포함하는 칼라 화상을 압축하는 방법으로서, 상기 칼라 화상에서 픽셀들의 칼라들에 따라서 가변 길이의 2진 칼라 코드들의 세트를 형성하는 단계; 및, 칼라 화상에 적용되는 상기 가변 길이 2진 칼라 코드들의 각각의 비트 위치들을 나타내기 위하여 상기 복수의 비트플레인을 생성시키는 단계를 포함하는 것을 특징으로 한다.According to a first aspect of the invention, there is provided a method comprising: generating a plurality of bitplanes each comprising a two-dimensional array of binary values; CLAIMS 1. A method of compressing a color picture comprising encoding the plurality of bitplanes, the method comprising: forming a set of variable length binary color codes according to the colors of pixels in the color picture; And generating said plurality of bitplanes to indicate respective bit positions of said variable length binary color codes applied to a color picture.

이 방법에서, 가변 길이 2진 칼라 코드는 압축될 칼라 화상에 사용되는 각각의 칼라를 위하여 형성되는 것이 바람직하다. 각각의 2진 칼라 코드에 할당되는 길이는 최적화된다. 그러므로, 2진 칼라 코드들의 일부는 보다 짧게되며, 이는 칼라 화상에서 가장 빈번하게 발생되는 이들 칼라들을 나타내는데 간편하게 사용되는 반면에, 2진 칼라 코드들의 다른 코드들은 보다 길게되고 상기 칼라 화상에서 덜 빈번하게 발생되는 이들 칼라들을 간편하게 표시한다.In this method, a variable length binary color code is preferably formed for each color used in the color image to be compressed. The length assigned to each binary color code is optimized. Therefore, some of the binary color codes are shorter, which is simply used to indicate those colors that occur most frequently in a color picture, while other codes of binary color codes are longer and less frequently in the color picture. These colors generated are simply displayed.

일 실시예에서, 각각의 칼라에 할당되는 가변 길이 2진 칼라 코드는 허프만의 알고리즘, 바람직하게는 정규 허프만 알고리즘(canonical Huffman algorithm)에 의해 결정된다. 그러므로, 가변 길이 칼라 코드는 최적화된다. 특히, 오리지널 화상에서의 고 상관성을 지닌 칼라들이 비트플레인들의 세트에서 용장성을 증가시키는 가변 길이 2진 칼라 코드들의 세트를 사용하여 엔코딩되는 것이 바람직하다.In one embodiment, the variable length binary color code assigned to each color is determined by the Huffman algorithm, preferably the canonical Huffman algorithm. Therefore, variable length color codes are optimized. In particular, it is desirable that colors with high correlation in the original picture be encoded using a set of variable length binary color codes that increase redundancy in the set of bitplanes.

바람직한 실시예에서, 상기 방법은 최적의 칼라 코딩을 찾아 최소 압축된 화상을 발생시킬 때까지 2진 칼라 코드들의 제1 할당을 형성하고 나서 연속적으로 또 다른 칼라 코딩 할당들을 시도하는 단계를 포함한다. (a) 가변 길이 2진 칼라 코드들을 위한 제1 트리 형상 및 리프들(leaves)에 칼라들의 초기 할당을 선택하는 단계; (b) 최적의 리프 할당이 결정될 때까지, 한쌍의 리프들을 연속적으로 스와핑하고 연속적인 압축된 화상 버젼들을 형성함으로서 대안적인 리프 할당을 평가하는 단계; 및, (c) 상기 트리 형상을 연속적으로 수정하고 대안적인 할당들을 평가하는 단계(b)를 반복함으로써 대안적인 트리 형상들의 세트를 평가함으로써, 상기 세트로부터 최적의 트리 형상 및 최적의 리프 할당을 선택하는 단계에 의해, 최적의 칼라 코딩 할당을 적절하게 찾는다.In a preferred embodiment, the method comprises forming a first assignment of binary color codes until finding the best color coding and generating a minimum compressed picture, and subsequently trying further color coding assignments. (a) selecting an initial assignment of colors to leaves and first tree shape for variable length binary color codes; (b) evaluating the alternative leaf allocation by successively swapping the pair of leaves and forming successive compressed image versions until an optimal leaf allocation is determined; And (c) evaluating the set of alternative tree shapes by repeating (b) continuously modifying the tree shape and evaluating alternative allocations, thereby selecting an optimal tree shape and an optimal leaf allocation from the set. By appropriately finding the optimal color coding assignment.

바람직하게는, 이 방법은 복수의 개시 칼라 화상들에 사용되는 칼라들에 따라서 가변 길이 칼라 코드들의 세트를 형성하는 단계를 포함한다. 여기서, 제어 오버헤드는 아이콘들 또는 특수 문자들의 세트와 같은 유사한 칼라 화상들의 세트 각각에 대해 동일한 칼라 코딩을 사용함으로써 감소된다.Advantageously, the method comprises forming a set of variable length color codes in accordance with the colors used in the plurality of starting color pictures. Here, control overhead is reduced by using the same color coding for each set of similar color pictures, such as a set of icons or special characters.

바람직하게는, 이 방법은 가령 오리지널 화상의 상이한 에리어들의 또는 오리지널 화상의 상이한 칼라 성분들을 토대로, 오리지널 칼라 화상을 개시 화상들의 세트로 분할하는 단계를 포함한다. 크거나 매우 상세한 화상의 경우에, 각각의 에리어에 대해 상이한 칼라 코딩을 행하여, 보다 작은 압축된 화상을 생성시키는 것이 보다 효율적일 수 있다.Preferably, the method comprises dividing the original color picture into a set of starting pictures, for example based on different areas of the original picture or different color components of the original picture. In the case of large or very detailed pictures, it may be more efficient to perform different color coding for each area to produce a smaller compressed picture.

가변 길이 2진 칼라 코드들은 칼라 화상을 복수의 비트플레인들로 분할하는데 사용된다. 각각의 비트플레인은 2진 칼라 코드들의 한 비트 위치를 나타내는데, 즉 가변 길이 2진 칼라 코드들은 비트플레인들의 세트를 형성하기 위한 비트와이즈(bitwise) 분할된다. 제1 생성된 비트플레인은 2진 칼라 코드들의 세트 각각에 제1 비트 위치에 대응하는 2진 값들을 적절하게 표시한다. 제2 및 다음의 비트플레인들은 2진 칼라 코드 각각에서 제2 및 다음의 비트 위치들을 표시한다. 비트 위치가 특정 2진 칼라 코드(예를 들어, 상기 코드가 검사되는 현재 위치 보다 짧기 때문에)에 제공되지 않는 경우, 홀(hole)이 대응하는 비트플레인에 형성된다. 이들 홀들은 제2 또는 다음의 비트플레인들의 크기가 실질적으로 감소되도록 한다.Variable length binary color codes are used to divide a color picture into a plurality of bitplanes. Each bitplane represents one bit position of binary color codes, that is, variable length binary color codes are bitwise divided to form a set of bitplanes. The first generated bitplane properly indicates the binary values corresponding to the first bit position in each of the set of binary color codes. The second and next bitplanes indicate the second and next bit positions in each of the binary color codes. If a bit position is not provided for a particular binary color code (eg because the code is shorter than the current position being examined), holes are formed in the corresponding bitplane. These holes allow the size of the second or next bitplanes to be substantially reduced.

비트플레인들은 임의의 적절한 엔코딩 방식에 의해 엔코딩된다. 바람직하게는, 비트플레인들의 엔코딩은 컨텍스트-모델링(context-modelling) 및 엔트로피 엔코딩(entropy encoding) 단계를 포함한다. 바람직하게는, 컨텍스트-모델링은 소정의 엔코딩 깊이에 따라서 비트플레인들의 세트의 서브세트에 적용되어, 엔코딩된 비트들의 스트림을 생성시킨다. 다음 비트플레인들은 엔코딩되지 않고, 이들 엔코딩되지 않은 비트플레인들은 엔코딩되지 않은 비트들의 스트림을 형성한다. 또 다른 바람직한 실시예에서, 비트플레인들의 세트는 하나 이상의 그룹으로 분할되고,상이한 엔코딩 방식이 각각의 그룹에 적용된다. 예를 들어, 보다 작은 템플레이트(template)를 사용하는 보다 간단한 컨텍스트 모델링 단계는 제2 그룹에 적용되고, 엔코딩은 제3 그룹에 적용되지 않는다. 이 그룹들 각각은 엔코딩 깊이들로 규정되어, 각각의 다음 그룹에서 최대수의 비트플레인들을 결정한다.Bitplanes are encoded by any suitable encoding scheme. Preferably, encoding of the bitplanes includes context-modeling and entropy encoding steps. Preferably, context-modeling is applied to a subset of the set of bitplanes in accordance with a given encoding depth to produce a stream of encoded bits. The next bitplanes are not encoded, and these unencoded bitplanes form a stream of unencoded bits. In another preferred embodiment, the set of bitplanes is divided into one or more groups, and different encoding schemes are applied to each group. For example, a simpler context modeling step using a smaller template is applied to the second group, and no encoding is applied to the third group. Each of these groups is defined by encoding depths to determine the maximum number of bitplanes in each subsequent group.

본 발명은 또한, 본원에 규정된 방법에 의해 생성된 압축된 칼라 화상 신호로 확장된다.The invention also extends to a compressed color picture signal produced by the method defined herein.

본 발명의 제2 양상을 따르면, 칼라 화상을 압축하는 화상 엔코더가 제공되는데, 상기 엔코더는: 압축될 오리지널 칼라 화상에 사용되는 칼라들과 가변 길이 2진 칼라 코드들을 연관시키도록 배치된 칼라 코딩 유닛; 상기 가변 길이 2진 칼라 코드들의 1비트를 각각 나타내는 비트플레인들 세트를 생성시키는 비트플레인 생성기 및 압축된 화상을 형성하기 위하여 상기 생성된 비트플레인들의 세트를 엔코딩하는 비트플레인 엔코딩 유닛을 포함한다.According to a second aspect of the present invention, there is provided an image encoder for compressing a color picture, the encoder comprising: a color coding unit arranged to associate variable length binary color codes with colors used in the original color picture to be compressed. ; And a bitplane generator for generating a set of bitplanes each representing one bit of the variable length binary color codes, and a bitplane encoding unit for encoding the set of generated bitplanes to form a compressed picture.

본 발명의 제3 양상을 따르면, 압축된 화상을 압축해제하는 방법이 제공되는데, 상기 압축해제 방법은: 압축된 화상의 칼라들과 가변 길이 2진 칼라 코드들의 연관을 나타내는 칼라 코딩 기준을 판독하는 단계; 상기 가변 길이 2진 칼라 코드들의 1비트를 각각 나타내는 하나 이상의 엔코딩된 비트플레인들을 디코딩하는 단계; 상기 압축된 칼라 화상의 각각의 픽셀에 대한 상기 가변 길이 2진 칼라 코드를 결정하는 단계 및 각각의 픽셀에 대한 상기 가변 길이 2진 칼라 코드를 관련된 칼라로 대체하는 단계를 포함한다.According to a third aspect of the present invention, there is provided a method of decompressing a compressed picture, the method of decompressing: reading a color coding criterion representing an association of the colors of the compressed picture with variable length binary color codes. step; Decoding one or more encoded bitplanes each representing one bit of the variable length binary color codes; Determining the variable length binary color code for each pixel of the compressed color image and replacing the variable length binary color code for each pixel with an associated color.

바람직하게는, 상기 엔코딩된 비트플레인들을 디코딩하는 단계는, 각각의 픽셀에 대해, 상기 엔코딩된 비트플레인들중 한 비트플레인들로부터 비트값을 디코딩하는 단계; 및 상기 비트 값이 2진 칼라 값을 결정(resolve)하면, 다음 비트플레인들을 무시하며, 만일 그렇치 않다면, 상기 디코딩된 비트 값들이 2진 칼라 코드를 결정할 때까지 또는 최종 엔코딩된 비트플레인이 도달될 때까지 다음 비트플레인으로부터 비트값을 디코딩하는 단계를 포함한다.Advantageously, decoding said encoded bitplanes comprises: for each pixel, decoding a bit value from one of said encoded bitplanes; And if the bit value resolves to a binary color value, ignores the next bitplanes, if not, until the decoded bit values determine a binary color code or until the last encoded bitplane is reached. Decoding the bit value from the next bitplane until.

바람직하게는, 각각의 픽셀에 대한 상기 가변 길이 2진 칼라 코드는 하나 이상의 상기 엔코딩된 비트플레인들 및 제로이상의 엔코딩되지 않은 비트플레인들로부터 취해진 상기 픽셀 위치에 대응하는 비트 위치들을 조합함으로써 결정된다.Advantageously, said variable length binary color code for each pixel is determined by combining bit positions corresponding to said pixel position taken from one or more of said encoded bitplanes and zero or more unencoded bitplanes.

바람직하게는, 상기 엔코딩된 비트플레인들을 디코딩하는 단계는 엔트로피 디코딩 및 컨텍스트-모델링을 포함하는데, 템플레이트는 디코딩되는 픽셀 근처의 픽셀 세트를 규정하도록 사용되며, 상기 템플레이트는 모든 상기 엔코딩된 비트플레인들에서 모든 픽셀들을 위하여 일정한 형상으로 된다.Advantageously, decoding said encoded bitplanes comprises entropy decoding and context-modeling, where a template is used to define a set of pixels near a pixel to be decoded, said template being in all said encoded bitplanes. It is of constant shape for all pixels.

바람직하게는, 상기 컨텍스트 모델링은 상기 제2 픽셀 위치와 중첩되는 상기 제1 픽셀 위치의 컨텍스트 값들을 보유함으로써, 상기 템플레이트가 제1 픽셀 위치(P1)으로부터 제2 픽셀 위치(P2)로 이동될 때 컨텍스트 값들을 증분적으로 페치(fetch)하는 것을 포함한다.Advantageously, said context modeling maintains context values of said first pixel location that overlaps said second pixel location, such that when said template is moved from a first pixel location P1 to a second pixel location P2. Incrementally fetching context values.

바람직하게는, 상기 비트플레인들의 디코딩 및 각각의 픽셀에 대한 상기 가변 길이 2진 칼라 코드를 결정하는 단계는 각각의 픽셀에 대해, 상기 픽셀을 위한 비트플레인들의 세트는 내림차순(또는 오름차순)의 비트 순서로 단일 바이트(또는 다른 길이의 메모리 장소)에 저장되는 바이트 어레이를 형성하는 단계를 포함한다.Advantageously, the step of decoding the bitplanes and determining the variable length binary color code for each pixel comprises: for each pixel, the set of bitplanes for the pixel is in descending (or ascending) bit order. Forming an array of bytes stored in a single byte (or memory location of another length).

본 발명의 제4 양상을 따르면, 압축된 칼라 화상을 압축해제하도록 배치된 화상 디코더가 제공되는데, 상기 디코더는 가변 길이 2진 칼라 코드들의 세트에 따라서 압축해제된 화상의 각각의 픽셀에 칼라들을 할당하도록 배치된 칼라 디코딩 유닛; 복수의 비트플레인들로부터 상기 2진 칼라 코드들을 생성시키는 비트플레인 누산기; 및, 압축된 화상으로부터 엔코딩된 비트플레인들의 세트를 디코딩하여 재형성하는 비트플레인 디코딩 유닛을 포함한다.According to a fourth aspect of the invention, there is provided a picture decoder arranged to decompress a compressed color picture, the decoder assigning colors to each pixel of the decompressed picture according to a set of variable length binary color codes. A color decoding unit arranged to: A bitplane accumulator for generating the binary color codes from a plurality of bitplanes; And a bitplane decoding unit for decoding and reforming the set of encoded bitplanes from the compressed picture.

본 발명은 또한, 상기 화상 디코더 및/또는 화상 엔코더를 결합하는 장치로 확장된다. 이 장치는 텔레비젼과 같은 디스플레이 장치, 비디오 카세트 레코더 또는 디지털 비디오 디스크 플레이어와 같은 매체 재생 장치, 인쇄기, 스캐너, 카메라 또는 비디오 카메라와 같은 영상 처리 시스템, 팜톱 컴퓨터와 같은 범용 계산 장치 또는 셀룰러 전화와 같은 전기통신 장치를 포함할 수 있지만, 이에 국한되지 않는다. 이 목록 이외에도, 본 발명은 광범위한 각종 실용 장치에 적용될 수 있다. 본 발명은 특히, 장치의 시스템 자원들이 제한되는 경우에 적용될 수 있다.The invention also extends to an apparatus for combining the picture decoder and / or picture encoder. These devices are display devices such as televisions, media playback devices such as video cassette recorders or digital video disc players, image processing systems such as printers, scanners, cameras or video cameras, general purpose computing devices such as palmtop computers, or electrical devices such as cellular phones It may include, but is not limited to, a communication device. In addition to this list, the present invention can be applied to a wide variety of practical devices. The invention is particularly applicable when the system resources of the apparatus are limited.

본 발명의 더 좋은 이해를 위해서 그리고 이 실시예가 어떻게 동작할 수 있는지를 보여주기 위하여, 예시적인 방식으로 첨부한 도면들을 참조할 것이다.For a better understanding of the invention and to show how this embodiment may operate, reference will be made to the accompanying drawings in an exemplary manner.

도1은 칼라 화상들의 압축을 위한 바람직한 장치 및 칼라 화상들의 압축해제를 위한 바람직한 장치를 개요적으로 도시한 블록도이다. 오리지널 화상(1)은 화상 엔코더(10)에 의해 압축되어 압축된 화상(2)을 형성한다. 이 압축된 화상(2)은 원하는 경우 저장되거나 전송된다. 후에, 이 압축된 화상(2)은 화상 디코더(20)에 의해 압축해제되어, 압축해제된 화상(3)을 형성한다. 여기서, 압축된 화상(3)은 오리지널 화상(1)을 충실하게 재구성하는데, 즉 압축 및 압축해제가 손실이 없는 것이 바람직하다.1 is a block diagram schematically illustrating a preferred apparatus for the compression of color images and a preferred apparatus for the decompression of color images. The original image 1 is compressed by the image encoder 10 to form a compressed image 2. This compressed image 2 is stored or transmitted if desired. This compressed picture 2 is then decompressed by the picture decoder 20 to form the decompressed picture 3. Here, the compressed image 3 faithfully reconstructs the original image 1, that is, it is preferable that there is no loss of compression and decompression.

화상 디코더(10)는 오리지널 화상(1)에 사용되는 칼라들의 세트와 연관된 2진 칼라 코드들을 형성하도록 배치된 칼라 코딩 유닛(12), 상기 2진 칼라 코드들로부터 비트플레인들의 세트를 생성시키는 비트플레인 생성기(14) 및 컨텍스트 모델러(16)와 상기 생성된 비트플레인들을 엔코딩하여 압축된 화상(2)을 형성하는 비트플레인 엔코더(18)를 포함하는 비트플레인 엔코딩 유닛을 포함한다.The picture decoder 10 is a color coding unit 12 arranged to form binary color codes associated with the set of colors used in the original picture 1, the bit generating a set of bitplanes from the binary color codes. And a bitplane encoding unit including a plane generator 14 and a context modeler 16 and a bitplane encoder 18 which encodes the generated bitplanes to form a compressed image 2.

화상 디코더(20)는 2진 칼라 코드들의 세트로부터 압축해제된 화상(3)의 픽셀 당 칼라 값들을 할당하도록 배치된 칼라 디코딩 유닛(22), 비트플레인들의 세트로부터 상기 2진 칼라 코드들을 생성시키는 비트플레인 누산기(24) 및 컨텍스트 모델러(26) 및 압축된 화상(2)으로부터 비트플레인들의 세트를 디코딩하는 비트플레인 디코더(28)를 포함하는 비트플레인 디코딩 유닛을 포함한다.The picture decoder 20 is a color decoding unit 22 arranged to assign color values per pixel of the decompressed picture 3 from the set of binary color codes, which generates the binary color codes from the set of bitplanes. A bitplane decoding unit comprising a bitplane accumulator 24 and a context modeler 26 and a bitplane decoder 28 for decoding a set of bitplanes from the compressed picture 2.

바람직한 실시예에서, 단일 장치가 압축 및 압축해제 기능들을 수행하도록 사용될 수 있지만, 화상 엔코더(10) 및 화상 디코더(20)는 물리적으로 분리된 장치 플랫폼들에 제공된다. 하나의 바람직한 예로서, 화상 디코더(10)는 범용 계산 플랫폼에 간편하게 제공되는 반면에, 화상 디코더(20)는 셀룰러 전기통신 장치에 간편하게 임베드된다. 화상 디코더(20)는 가령 메모리 저장장치(도시되지 않음)로부터 압축된 화상들(2)을 수신하여 압축해제된 화상들(3)을 가령 256 칼라 LCD 디스플레이와 같은 디스플레이(25)에 통과시키도록 배치된다. 여기서, 화상 디코더(20)에 이용가능한 시간, 메모리 및 계산력과 같은 시스템 자원들은 화상 디코더를 동작시키는 장치의 특성에 의해 제한된다는 것을 알 수 있을 것이다.In a preferred embodiment, a single device may be used to perform the compression and decompression functions, but the picture encoder 10 and picture decoder 20 are provided on physically separate device platforms. As one preferred example, picture decoder 10 is conveniently provided in a general purpose computing platform, while picture decoder 20 is simply embedded in a cellular telecommunication device. The picture decoder 20 receives, for example, compressed pictures 2 from a memory storage device (not shown) and passes the decompressed pictures 3 to a display 25 such as a 256 color LCD display. Is placed. Here, it will be appreciated that system resources such as time, memory and computing power available to the picture decoder 20 are limited by the characteristics of the device operating the picture decoder.

도2는 칼라 화상의 압축을 위한 바람직한 방법의 개요도이다. 화상 엔코더(10)의 기능 및 동작이 지금부터 도2의 방법을 참조하여 보다 상세하게 설명될 것이다.2 is a schematic diagram of a preferred method for the compression of a color image. The function and operation of the picture encoder 10 will now be described in more detail with reference to the method of FIG.

2-레벨 화상들의 압축 및 압축해제가 배제되지 않을 지라도, 오리지널 칼라 화상(1)은 2개 이상의 칼라들을 포함하는 것으로 추정된다. 2-레벨 및 칼라 화상들이 동일한 장치 및 방법에 의해 처리될 수 있지만, 이 경우에, 2-레벨 화상은 간단한 형태의 칼라 화상으로서 취급된다. 오리지널 화상에서 각각의 픽셀의 칼라(또는, 셰이드)는 상기 픽셀의 칼라의 명백한 표현 또는 전체 팔레트 칼라들(예를 들어, 8비트 또는 24비트 칼라)과 관련하여 규정된다. 오리지널 화상(1)은 각각의 픽셀을 위한 칼라를 계산하거나 그렇치 않다면 결정하도록 하는 임의의 적절한 포맷으로 수신될 수 있다.Although compression and decompression of two-level images are not excluded, the original color image 1 is assumed to include two or more colors. Two-level and color images can be processed by the same apparatus and method, but in this case, the two-level image is treated as a color image in simple form. The color (or shade) of each pixel in the original picture is defined in terms of either an explicit representation of the color of the pixel or the full palette colors (eg, 8-bit or 24-bit color). The original picture 1 can be received in any suitable format to calculate or otherwise determine the color for each pixel.

앞서의 단계에서 처럼, 오리지널 화상(1)의 칼라들을 공지된 칼라 LCD 디스플레이(25)가 생성할 수 있는 256 칼라들의 팔레트와 같은 공지된 디스플레이 장치에 의해 디스플레이될 수 있는 소정의 팔레트로 제한하는 것이 필요로될 수 있다. 간편하게는, 오리지널 칼라 화상의 칼라가 디스플레이 팔레트에 이용가능하지 않을 때, 가장밀접한 정합이 선택된다. 따라서, 개시 칼라 화상이 형성되어 압축되도록 준비된다.As in the preceding steps, it is desirable to limit the colors of the original image 1 to a predetermined palette that can be displayed by a known display device, such as a palette of 256 colors that the known color LCD display 25 can produce. May be needed. Conveniently, the closest match is selected when the color of the original color image is not available for the display palette. Thus, the starting color image is formed and ready to be compressed.

도2에서, 단계(201)는 개시 칼라 화상(1)에 사용되는 칼라들의 세트를 결정하는 것을 포함한다. 단계(201)는 또한, 각각의 칼라의 빈도(픽셀 에리어)를 결정하는 것을 포함한다. 실제로, 어떤 한 화상에 사용되는 칼라들의 세트는 256 칼라들의 디스플레이 팔레트중 단지 5 또는 10 또는 20 칼라들과 같은 단지 이용가능한 칼라 팔레트의 작은 서브셋이다. 그러므로, 특정 칼라 화상에 사용되는 칼라들을 토대로 화상 압축을 수행하고 사용된 칼라들 각각의 개별적인 주석(separate note)를 행하는 것이 간편하다.In FIG. 2, step 201 includes determining a set of colors used for the starting color image 1. Step 201 also includes determining the frequency (pixel area) of each color. In practice, the set of colors used for any one picture is a small subset of the available color palette, such as only 5 or 10 or 20 colors of the display palette of 256 colors. Therefore, it is easy to perform image compression based on the colors used for a particular color image and to perform separate note of each of the used colors.

단계(202)는 개시 칼라 화상에 사용되는 칼라들의 세트를 나타내는 가변 길이 2진 칼라 코드들의 세트를 형성하는 것을 포함한다. 각각의 칼라에 할당되는 2진 칼라 코드의 길이는 칼라 화상에서 엔트로피를 최적화하기 위하여 선택된다. 단계들(201 및 202)은 칼라 코딩 유닛(12)에 의해 간편하게 수행된다.Step 202 includes forming a set of variable length binary color codes that represent the set of colors used in the starting color image. The length of the binary color code assigned to each color is chosen to optimize entropy in the color picture. Steps 201 and 202 are conveniently performed by color coding unit 12.

이 화상을 위하여 형성되는 가변 길이 2진 칼라 코드들의 세트에 대한 지식은 압축해제 동안 후에 필요로될 것이다. 칼라 코드 구조 및 대응하는 실제 칼라들의 규정은 칼라 코딩 기준(31)으로서 압축된 칼라 화상(3)의 시초에 저장된다.Knowledge of the set of variable length binary color codes formed for this picture will be needed later during decompression. The definition of the color code structure and the corresponding actual colors is stored at the beginning of the compressed color picture 3 as the color coding criterion 31.

단계(203)는 각각의 픽셀의 가변 길이 2진 칼라 코드로부터 파생된 복수의 비트플레인들을 비트플레인 생성기(14)에서 생성시키는 것을 포함한다. 전체 비트플레인은 적어도 제1 비트 위치를 위하여 파생되는데, 이 비트 위치는 모든 가변 길이 2진 칼라 코드들에 공통된다. 제2 및 다음의 비트플레인들은 홀들을 포함할 수 있는데, 이 홀들에서 보다 짧은 가변 길이 2진 칼라 코드는 이 비트 위치내의 값을 갖지 않는다. 그러므로, 연속적인 비트플레인들은 점진적으로 작아지는 경향이 있는데, 그 이유는 보다 긴 2진 칼라 코드들이 칼라 화상의 칼라들을 덜 빈번하게 발생시키기 위하여 사용되는 경향이 있다.Step 203 includes generating in bitplane generator 14 a plurality of bitplanes derived from the variable length binary color code of each pixel. The entire bitplane is derived for at least the first bit position, which is common to all variable length binary color codes. The second and subsequent bitplanes may include holes, wherein the shorter variable length binary color code in these holes does not have a value within this bit position. Therefore, successive bitplanes tend to be progressively smaller, because longer binary color codes tend to be used to generate colors of color pictures less frequently.

단계(204)는 생성된 비트플레인들을 엔코딩하는 것을 포함한다. 요약하면, 단계(204)는 컨텍스트 모델러(16)에서 비트플레인들을 컨텍스트-모델링하고 나서 엔트로피 엔코더(18)에서 엔트로피 엔코딩하는 것을 포함한다. 비트플레인들의 세트를 효율적으로 엔코딩하는 기술들은 공지되어 있음으로 본원에서 상세하게 설명되지 않을 것이다. 일 예로서, G.L.Langdon and J.Rissanen이 IEEE Transactions on Communications, Vol.29, No 6, pp 858-867에 발표한 "Compression of Black and White Images with Arithmetic Coding"을 참조하라. 이 참조문헌은 정적 또는 적응형 컨텍스트 모델링 및 연산 엔코딩을 사용하여 2-레벨(흑색 및 백색)의 비트플레인을 엔코딩하는 기술을 서술한다. 참조문헌의 기술은 비트플레인들의 세트 각각에 적절하게 적용되어, 압축된 화상(2)을 위한 엔코딩된 데이터를 생성시킨다. 비트플레인들의 세트를 컨텍스트-모델링 및 엔트로피 엔코딩을 위한 많은 다른 선택사항들이 존재한다.Step 204 includes encoding the generated bitplanes. In summary, step 204 includes context-modeling bitplanes in context modeler 16 and then entropy encoding in entropy encoder 18. Techniques for efficiently encoding a set of bitplanes are well known and will not be described in detail herein. As an example, see "Compression of Black and White Images with Arithmetic Coding" published by G.L.Langdon and J.Rissanen in IEEE Transactions on Communications, Vol. 29, No. 6, pp 858-867. This reference describes techniques for encoding two-level (black and white) bitplanes using static or adaptive context modeling and computational encoding. The technique of reference is appropriately applied to each set of bitplanes to produce encoded data for the compressed picture 2. There are many other options for context-modeling and entropy encoding a set of bitplanes.

본 발명의 화상 압축 방법 및 장치를 보다 상세하게 예시하기 위하여, 지금부터 도3 내지 도7에 도시된 간단화된 예를 참조하여 설명될 것이다.In order to illustrate the image compression method and apparatus of the present invention in more detail, it will now be described with reference to the simplified examples shown in Figs.

도3은 8×8 픽셀 아이콘 형태의 간단한 칼라 화상을 도시한다. 보다 실용적인 실시예에서, 칼라 화상은 15×15 또는 16×16 또는 28×28 픽셀들의 픽셀 어레이로 표시되는 아이콘 또는 중국 문자와 같은 특수 문자이다. 이 픽셀 어레이는 임의의 크기일 수 있으며 정방향으로될 필요는 없다.Figure 3 shows a simple color image in the form of an 8x8 pixel icon. In a more practical embodiment, the color image is a special character, such as an icon or Chinese character, represented by a pixel array of 15x15 or 16x16 or 28x28 pixels. This pixel array can be any size and need not be forward.

이 예에서, 각각의 픽셀은 8비트 칼라 값으로 표시되는 256개의 칼라들중 한 칼라를 갖는다. 도3의 오리지널 칼라 화상은 6개의 칼라들(또는, 그레이스케일 톤들)을 갖는데, 이는 도4에 도시된 바와 같은 6개의 심볼들 A, I, Q, U, X & Y로 표시되어, 소정의 디스플레이 팔레트로부터 6개의 칼라들을 표시한다.In this example, each pixel has one of 256 colors represented by an 8 bit color value. The original color image of FIG. 3 has six colors (or grayscale tones), which are represented by six symbols A, I, Q, U, X & Y as shown in FIG. Display six colors from the display palette.

도5는 상기 예의 칼라 화상 내에서 각각의 칼라의 발생 빈도수를 도시하는 테이블이다. 이 발생 빈도는 각각의 칼라를 위하여 효율적인 2진 칼라 코드를 간편하게 결정하는데 사용된다. 여기서, 칼라들 Q 및 Y는 가장 빈번하게 발생되고 칼라들 A, Y, I 및 U 보다 짧은 길이의 코드가 제공된다는 것을 알 수 있을 것이다. 이 예에서, 칼라들 Q 및 X를 위한 2진 칼라 코드들은 2비트 길이인 반면에, 4개의 다른 칼라들 A, Y, I 및 U를 위한 코드들은 3비트 길이이다.Fig. 5 is a table showing the frequency of occurrence of each color in the color image of the above example. This frequency of occurrence is used to easily determine the efficient binary color code for each color. It will be seen here that the colors Q and Y occur most frequently and are provided with a code of shorter length than the colors A, Y, I and U. In this example, the binary color codes for colors Q and X are two bits long, while the codes for four other colors A, Y, I and U are three bits long.

도6은 도5의 2진 칼라 코드들의 2진 트리 표현이다. 이는 정규 트리인데, 그 이유는 각각의 깊이에서 모든 리프들(leaves)이 가능한 좌측에 위치될 수 있기 때문이다. 이 2진 트리 표현은 각각의 깊이에서 리프들의 수를 나타냄으로써 칼라 코딩 기준(31) 및 이들 리프들에 의해 규정된 칼라를 형성하는데 사용된다.FIG. 6 is a binary tree representation of the binary color codes of FIG. This is a regular tree because all the leaves at each depth can be located on the left as possible. This binary tree representation is used to form the color coding criteria 31 and the color defined by these leaves by indicating the number of leaves at each depth.

도7은 도3 및 도4의 상기 예의 칼라 화상에 적용되는 바와 같이 도5에 도시된 가변 길이 2진 칼라 코드들로부터 파생된 3개의 비트플레인들(51, 52, 53)을 도시한다. 컨텍스트-모델링 및 엔트로피 엔코딩은 이들 3개의 비트플레인들(51, 52, 53)에 적용되어 압축된 화상(2)을 형성한다.FIG. 7 shows three bitplanes 51, 52, 53 derived from the variable length binary color codes shown in FIG. 5 as applied to the color picture of the example of FIGS. 3 and 4. Context-modeling and entropy encoding are applied to these three bitplanes 51, 52, 53 to form a compressed picture 2.

제1 비트플레인(51)은 2진 칼라 코드들의 제1(최좌측) 비트 위치에 대응한다. 이 제1 비트 위치는 모든 가변 길이 2진 칼라 코드들에 의해 공유되고, 제1 비트플레인(51)은 칼라 화상의 각각의 픽셀에 대응한 1비트를 지닌 전체 비트플레인이다.The first bitplane 51 corresponds to the first (leftmost) bit position of the binary color codes. This first bit position is shared by all variable length binary color codes, and the first bitplane 51 is the entire bitplane with one bit corresponding to each pixel of the color picture.

제2 비트플레인(52)은 2진 칼라 코드들의 제2 비트 위치로부터 파생된다. 또 다시, 전체 비트플레인은 모든 2진 칼라 코드들이 제2 비트 위치를 포함하기 때문에 형성된다.The second bitplane 52 is derived from the second bit position of the binary color codes. Again, the entire bitplane is formed because all the binary color codes include the second bit position.

제3 비트플레인(53)은 2진 칼라 코드들의 제3 비트 위치를 표시한다. 여기서, 칼라들(Q 및 X)을 위한 코드들은 이 비트 위치보다 짧고, 또한, 제3 비트플레인(53)은 칼라들(Q 및 X)에 대응하는 픽셀 위치들에서 도트(dot)로 표시되는 홀들을 포함한다. 이들 홀들은 엔코딩될 필요가 없는데, 그 이유는 디코딩 동안, 제1 및 제2 비트플레인들(51 및 52)로부터의 정보 및 일반적으로 사전 디코딩된 비트플레인들이 홀들을 재구성하는데 사용되기 때문이다. 그러므로, 제3 비트플레인(53)은 부분적인 비트플레인이며, 칼라 화상의 완전 어레이보다 작은 데이터 위치들을 포함한다. 이 예예서, 2진 칼라 코드의 최대 길이는 3비트들이며, 3개의 비트플레인들(51, 52, 및 53)이 생성된다. 일반적으로, 하나의 비트플레인은 가장 긴 2진 칼라 코드들의 세트의 각각의 비트 위치를 위하여 생성되고 이 최대 길이보다 짧은 이들 2진 칼라 코드들에 대하여, 홀들은 비트플레인들중 적어도 한 비트플레인에 나타날 것이다.The third bitplane 53 indicates the third bit position of the binary color codes. Here, the codes for the colors Q and X are shorter than this bit position, and the third bitplane 53 is represented by a dot at pixel positions corresponding to the colors Q and X. Include holes. These holes do not need to be encoded because, during decoding, information from the first and second bitplanes 51 and 52 and generally pre-decoded bitplanes are used to reconstruct the holes. Therefore, the third bitplane 53 is a partial bitplane and contains smaller data locations than a complete array of color pictures. In this example, the maximum length of the binary color code is three bits, and three bitplanes 51, 52, and 53 are generated. In general, one bitplane is generated for each bit position of the longest set of binary color codes and for those binary color codes that are shorter than this maximum length, the holes are in at least one bitplane of the bitplanes. Will appear.

제1 바람직한 실시예에서, 각각의 칼라를 위한 가변 길이 2진 코드는 칼라 화상 내의 각각의 칼라의 에리어 크기(즉, 화상 내의 총 픽셀들의 수의 프랙션(fraction)으로서 상기 칼라를 갖는 픽셀들의 수)에 따라서 허프만의 알고리즘, 바람직하게는 정규 허프만 알고리즘에 의해 결정된다. 따라서, 화상에 빈번하게 사용되는 칼라들에는 상대적으로 짧은 길이 코드가 제공되는 반면에, 상대적으로 빈번하지 않게 사용되는 칼라들에는 보다 긴 길이의 코드가 제공된다.In a first preferred embodiment, the variable length binary code for each color is the area size of each color in the color image (i.e. the number of pixels having the color as a fraction of the total number of pixels in the image). Huffman's algorithm, preferably a regular Huffman algorithm. Thus, relatively short length codes are provided for colors that are used frequently in an image, while longer length codes are provided for colors that are used relatively frequently.

도7에 도시된 예의 비트플레인들은 최적의 2진 칼라 코드들의 세트를 선택하는 이점을 도시한 것이다. 제1의 2개의 비트플레인들(51, 52) 각각은 간편하게는 "1"들 및 "0"들의 형상의 직사각형들을 포함하다. 이 예는 또한, 각각의 칼라의 에리어 크기가 엔코딩 효율에 비례한다라고 추정하는 허프만의 알고리즘을 사용하여 최적의 가변 길이 엔코딩을 적용하는 것을 도시한다. 때때로, 이는 칼라들(I 및 U)의 체크보드 패턴에 의해 도시된 바와 같은 경우가 되지 않는다.The example bitplanes shown in FIG. 7 illustrate the advantage of selecting an optimal set of binary color codes. Each of the first two bitplanes 51, 52 simply includes rectangles in the shape of "1" s and "0" s. This example also illustrates applying an optimal variable length encoding using Huffman's algorithm which assumes that the area size of each color is proportional to the encoding efficiency. Sometimes this is not the case as shown by the checkerboard pattern of the collars I and U.

그러므로, 제2 실시예에서, 최소 또는 그보다 효율적인 압축된 화상이 성취되도록 각각의 칼라를 나타내는데 사용되는 최적의 가변 길이 2진 칼라 코드를 선택하는 것이 바람직하다. 이 제2 실시예에서, 단계(202)는 최적의 칼라 코딩이 찾아질 때까지, 대안적인 칼라 코딩 할당들을 연속적으로 시도함으로써 2진 칼라 코드들의 제1의 순수 할당을 개선시키는 것을 포함한다.Therefore, in the second embodiment, it is desirable to select the optimal variable length binary color code used to represent each color such that a minimum or more efficient compressed picture is achieved. In this second embodiment, step 202 includes improving the first pure assignment of binary color codes by successively attempting alternative color coding assignments until an optimal color coding is found.

도8은 이 제2 실시예에서 사용되는 바와 같은 화상 엔코더(10)에서 가변 길이 2진 칼라 코드들의 할당을 최적화하는 바람직한 방법의 개요도이다.Figure 8 is a schematic diagram of a preferred method of optimizing the assignment of variable length binary color codes in the picture encoder 10 as used in this second embodiment.

단계(801)에서, 임의의 트리 형상이 결정되고 리프들에 칼라들의 초기 할당은 가령 정규 허프만 알고리즘 또는 상술된 바와 같은 이외 다른 방법을 적용함으로써 행해진다. 제1 버젼의 압축된 화상이 제1 할당을 사용하여 형성된다.In step 801, any tree shape is determined and the initial assignment of colors to the leaves is done by applying, for example, a regular Huffman algorithm or other method as described above. The first version of the compressed image is formed using the first assignment.

단계(802)에서, 한쌍의 리프들은 스와핑되고 엔코딩 반복된다. 스와핑된 리프들의 쌍은 동일한 레벨의 트리 또는 상이한 레벨들에 있을 수 있다. 이 결과의 압축된 화상이 보다 작으면, 새로운 할당이 유지되며, 그렇치 않다면, 사전 할당이 복구된다. 단계(802)는 이 트리 형상에 대해 더이상 개선을 행하지 않을 때까지, 리프들의 각각의 쌍에 대해 반복된다.In step 802, the pair of leaves are swapped and encoded repeated. The pair of swapped leaves may be at the same level of tree or at different levels. If the resulting compressed picture is smaller, the new assignment is retained, otherwise the pre-allocation is restored. Step 802 is repeated for each pair of leaves until no further improvements are made to this tree shape.

단계(803)는 트리 형상을 수정하고 나서, 새로운 트리 형상을 위한 단계(802)를 반복하는 것을 포함한다. 단계(803)는 소정 세트의 형상들을 통해서 트리 형상을 모핑(morphing)하는 것을 포함한다. 도5의 빈도 발생 테이블을 참조하면, 모든 발생 카운트들(즉, 픽셀들의 총수)의 합을 t라고 하고, p를 소정 범위 pmin내지 pmax예를 들어, 0 및 10 사이에서 가변되는 정수라고 하자. (t*p)/pmax의 수정자(modifier)가 각각의 발생 카운트에 가산되어, 수정된 발생 카운트를 제공한다. p=0인 경우, 표준 허프만 트리가 결정된다. p가 pmax를 향하여 증가될 때, 수정된 발생 카운트는 전체 2진 트리를 향하는 칼라들 및 트리 형상 변경들간의 주파수 차를 균일하게 한다. 각각의 트리 형상은 차례로 고려되고, 최소 압축된 화상을 발생시키는 트리 형상이 선택된다. 이 방식으로, 최적의 트리 형상 및 할당이 결정되며, 고려중인 화상(또는 화상들)에 특정하게 된다.Step 803 includes modifying the tree shape and then repeating step 802 for the new tree shape. Step 803 includes morphing the tree shape through a set of shapes. Referring to the frequency occurrence table of Fig. 5, the sum of all occurrence counts (i.e., the total number of pixels) is t, and p is a predetermined range p.minTo pmaxFor example, let's say an integer that varies between 0 and 10. (t * p) / pmaxA modifier of is added to each occurrence count to provide a modified occurrence count. If p = 0, the standard Huffman tree is determined. p is pmaxWhen incremented toward, the modified occurrence count makes the frequency difference between the colors and tree shape changes towards the entire binary tree uniform. Each tree shape is considered in turn, and the tree shape that produces the least compressed image is selected. In this way, the optimal tree shape and assignment are determined and specified for the image (or images) under consideration.

복수의 그레이 코드들의 세트들을 사용하여 2진 칼라 코드들을 형성하는 것이 바람직하다. 한 세트의 그레이 코드들은 가변 길이 2진 칼라 코드들의 각각의 길이에 대해 결정된다. 예를 들어, 제1 세트의 그레이 코드들은 길이 2비트들의 2진 칼라 코드들을 위하여 결정되고, 제2 세트의 그레이 코드들은 길이 3비트들의 2진 칼라 코드들을 위하여 결정되는, 등등이다. 그레이 코드들은 화상이 그레이스케일 화상인 경우와 같이 화상의 칼라들이 관계되는 경우에 특히 유용하다. 그레이 코드는 인접한 정수들이 단지 1비트 위치에서 상이하게 되는 그레이 코드 표현들을 갖도록 길이 N의 2진 스트링으로서 정수들 {0...2^N-1}의 시퀀스에서 각각의 수를 표시한다. 그러므로, 정수 시퀀스를 통한 프로그레션(progression)은 한번에 단지 1비트를 플리핑(flipping)하는 것을 필요로 한다.It is desirable to form binary color codes using a plurality of sets of gray codes. One set of gray codes is determined for each length of variable length binary color codes. For example, the first set of gray codes is determined for binary color codes of length 2 bits, the second set of gray codes is determined for binary color codes of length 3 bits, and so on. Gray codes are particularly useful when the colors of the picture are related, such as when the picture is a grayscale picture. The gray code indicates each number in the sequence of integers {0 ... 2 ^ N-1} as a binary string of length N such that adjacent integers have gray code representations that differ only by one bit position. Therefore, progression through an integer sequence requires flipping only one bit at a time.

오리지널 칼라 화상(1)이 많은 칼라들, 예를 들어 500개의 상이한 칼라들을 사용하여 24 비트 칼라 화상을 포함하는 경우, 오리지널 화상은 개시 화상들의 세트로 분리되는 것이 바람직하다. 오리지널 화상의 R,G 및 B 칼라 성분들을 개별적인 그레이스케일 화상들로서 분리하는 것이 간편하다. 그 후, R, G 및 B 그레이스케일 화상들은 본원에 서술된 방법들을 개별적으로 사용하여 압축되는데, 즉 R 화상을 위한 엔코딩된 비트플레인들을 형성하고 나서, G 화상을 위한 비트플레인들을 형성한 후, B 화상을 위한 비트플레인들을 형성하며, 이는 압축된 화상(2)으로 순차적으로 제공된다. 디코딩 동안, 분리된 R, G, 및 B 성분들은 각각 압축해제되고 나서 재결합된다.If the original color picture 1 comprises a 24-bit color picture using many colors, for example 500 different colors, the original picture is preferably separated into a set of starting pictures. It is easy to separate the R, G and B color components of the original picture as separate grayscale pictures. The R, G and B grayscale pictures are then compressed separately using the methods described herein, i.e. after forming the encoded bitplanes for the R picture, after forming the bitplanes for the G picture, Form bitplanes for the B picture, which are provided sequentially in the compressed picture 2. During decoding, the separated R, G, and B components are each decompressed and then recombined.

또 다른 선택사항으로서, 개시 화상들의 세트가 생성되는데, 이들 화상 각각은 매우 크거나 매우 상세한 오리지널 화상(1)의 상이한 에리어 부분들을 표시한다. 그 후, 보다 작거나 보다 간단한 개시 화상들의 세트 각각은 본원에 서술된 바와 같이 개별적으로 압축된다.As another option, a set of starting pictures is created, each of which represents different area portions of the original picture 1 that are very large or very detailed. Then, each of the smaller or simpler set of starting pictures is individually compressed as described herein.

한 세트의 매우 간단한 개시 화상들이 한 세트의 특수 문자들 또는 아이콘들과 같이 압축되는 경우, 칼라 코딩 기준(31)의 칼라 코딩은 개시 화상들의 세트에 대해 결정되고 상기 세트내의 각각의 화상에 적용된다.When a set of very simple start pictures is compressed like a set of special characters or icons, the color coding of color coding criteria 31 is determined for the set of start pictures and applied to each picture in the set. .

도9는 압축된 화상(2)을 생성하기 위하여 엔코더(10)에서 데이터 흐름을 개요적으로 도시한 것이다. 압축해제 동안 이 데이터 흐름은 도9의 순서도와 반대가 된다.9 schematically shows the data flow in the encoder 10 to produce a compressed image 2. During decompression, this data flow is the reverse of the flowchart in FIG.

상술된 바와 같이, 가변 길이 코드들의 할당 및 이들을 나타내는 칼라들은 칼라 코딩 기준(31)으로서 저장된다. 가변 길이 2진 칼라 코드들은 복수의 비트플레인들을 생성시키는데 사용되는데, 이들 비트플레인들중 4개의 비트플레인들(51, 52, 53 및 54)이 도9에 도시되어 있다.As mentioned above, the assignment of variable length codes and the colors representing them are stored as color coding criteria 31. Variable length binary color codes are used to generate a plurality of bitplanes, of which four bitplanes 51, 52, 53 and 54 are shown in FIG. 9.

비트플레인들중 적어도 일부, 이 경우에, 비트플레인들(51, 52 및 53)은 가령 컨텍스트-모델링 및 엔트로피 엔코딩에 의해 엔코딩되어, 엔코딩된 비트들(32)의 스트림을 형성한다. 상이한 엔코딩 레벨들이 상이한 비트플레인 그룹들에 적용될 수 있다. 간단한 실시예에서, 제1 비트플레인들의 그룹이 엔코딩되는 반면에, 제2 그룹은 엔코딩되지 않은채로 있거나 보다 간단한 엔코딩을 겪는다. 제1의 n개의 비트플레인들은 제1 그룹 및 n+1번째를 형성하고, 다음의 비트플레인들은 제2 그룹을 형성하는데, 여기서 n은 소정의 정수이다. 부가적인 그룹들 및 엔코딩 변화들이 유사하게 규정될 수 있다.At least some of the bitplanes, in this case bitplanes 51, 52 and 53, are encoded, for example by context-modeling and entropy encoding, to form a stream of encoded bits 32. Different encoding levels can be applied to different bitplane groups. In a simple embodiment, the group of first bitplanes is encoded while the second group remains unencoded or undergoes simpler encoding. The first n bitplanes form the first group and the n + 1 th, and the following bitplanes form the second group, where n is a predetermined integer. Additional groups and encoding changes can be defined similarly.

컨텍스트 모델러(16)에 의해 수행되는 컨텍스트-모델링은 코딩되는 픽셀 근처의 하나 이상의 픽셀에 관계한 컨텍스트를 사용한다(이 컨텍스트는 이 비트플레인 또는 선택적으로 다른 비트플레인들에서 픽셀들을 포함한다). 바람직하게는, 컨텍스트는 엔코딩되는 픽셀 근처의 픽셀들의 세트를 선택하는 템플레이트(template)에 의해 파생되는데, 상기 세트는 소정의 형상을 갖는다. 템플레이트를 인가함으로써 리턴되는 2진 값은 "1" 또는 "0"의 2진 값을 갖는 엔코딩된 픽셀의 확률을 예측하는 테이블의 인덱스를 형성한다. 이 예측은 엔코딩되는 픽셀의 실제 값과 비교되어 차가 계산된다. 이 차가 제로이면(즉, 예측이 정확하다면), 이 비트플레인에서 엔코딩되는 픽셀 위치는 "0"의 값이 제공되며, 그렇치 않다면, (즉, 예측이 정확하지 않을 때)픽셀 위치는 "1"의 값이 제공된다. 이 컨텍스트 모델링은 많은 0들 및 소수의 1들을 갖는 비트플레인을 형성함으로써 각각의 비트플레인에서 엔트로피를 실질적으로 감소시킨다. 이로 인해, 엔트로피 엔코딩의 효율성이 개선된다. 엔트로피 엔코더(18)는 복수의 정규 허프만 코더들을 포함하여, 엔트로피 엔코딩을 적절하게 수행한다. 컨텍스트 값은 또한, 이 픽셀에 대해 사용될 코더를 결정한다. 본 발명의 실제 실시예들에서, 컨텍스트 모델링은 드문 "1"들과 함께 "0"들의 실행 길이를 생성시킨다. 그러므로, 엔트로피 엔코딩은 "0"들의 실행 길이를 나타내는 간편한 실행 길이(RL) 코딩이다.The context-modeling performed by the context modeler 16 uses a context related to one or more pixels near the pixel to be coded (this context includes pixels in this bitplane or optionally other bitplanes). Preferably, the context is derived by a template that selects a set of pixels near the pixel to be encoded, the set having a predetermined shape. The binary value returned by applying the template forms an index into the table that predicts the probability of an encoded pixel having a binary value of "1" or "0". This prediction is compared with the actual value of the encoded pixel to calculate the difference. If this difference is zero (i.e., the prediction is correct), then the pixel position encoded in this bitplane is given a value of "0"; otherwise, the pixel position is "1" (i.e. the prediction is incorrect). Is provided. This context modeling substantially reduces entropy in each bitplane by forming a bitplane with many zeros and ones. This improves the efficiency of entropy encoding. Entropy encoder 18 includes a plurality of regular Huffman coders to properly perform entropy encoding. The context value also determines the coder to be used for this pixel. In practical embodiments of the present invention, context modeling produces a running length of "0" s with rare "1s". Therefore, entropy encoding is a simple execution length (RL) coding that represents the execution length of "0" s.

비트플레인(54)과 같은 나중의 비트플레인들은 많은 홀들을 포함하는 경향이 있고, 컨텍스트 모델링은 데이터 값들의 코히어런스를 상당히 개선시키지 못한다. 엔코딩될 비트플레인들의 수는 소정의 깊이로 설정된다. 컨텍스트 모델링은 최대 특정 깊이까지 적용된다. 다음에, 비트플레인들은 컨텍스트 모델링되거나 엔코딩되지 않고, 제로 이상의 엔코딩되지 않은 비트플레인들은 엔코딩되지 않은 심볼들(33)의 스트림으로서 직접적으로 저장된다.Later bitplanes, such as bitplane 54, tend to include many holes, and context modeling does not significantly improve the coherence of data values. The number of bitplanes to be encoded is set to a predetermined depth. Context modeling is applied up to a certain depth. Next, bitplanes are not context modeled or encoded, and zero or more unencoded bitplanes are stored directly as a stream of unencoded symbols 33.

한 가지 선택사항으로서, 비트플레인들(51, 52, 53) 각각은 순차적으로 개별적으로 엔코딩된다. 그러나, 바람직한 실시예에서, 심볼들의 스트림들은 각각의 비트플레인 내에서 및/또는 개별적인 비트플레인들로부터 인터리빙된다. 이는 디코더를 시뮬레이팅함으로써 행해진다. 디코더가 엔코딩된 비트플레인 스트림들을 실행 길이 디코딩을 위한 상이한 허프만 디코더들을 호출하는 순서는 개별적인 스트림들을 인터리빙하는데 사용된다.As an option, each of the bitplanes 51, 52, 53 are sequentially and individually encoded. However, in a preferred embodiment, the streams of symbols are interleaved within each bitplane and / or from separate bitplanes. This is done by simulating the decoder. The order in which the decoder calls the different Huffman decoders for execution length decoding the encoded bitplane streams is used to interleave the individual streams.

도10은 압축된 화상(2)의 압축해제를 위한 바람직한 방법의 개요도이다.10 is a schematic diagram of a preferred method for decompression of a compressed image 2.

단계(101)는 압축된 칼라 화상의 칼라 코딩(31)을 판독하여, 가변 길이 2진 칼라 코드들의 할당 및 관련된 칼라들을 표시한다.Step 101 reads the color coding 31 of the compressed color picture, indicating the assignment of variable length binary color codes and associated colors.

단계(102)는 가령 엔트로피 디코더(28) 및 컨텍스트 모델러(26)에서 엔트로피 디코딩 및 컨텍스트 모델링함으로써 복수의 비트플레인들을 포함한다. 제1 픽셀에 대해서, 제1 비트플레인의 제1 비트가 재구성된다. 이 비트가 이미 칼라를 엔코딩하면, 즉, 칼라가 단일 비트 가변 길이 2진 칼라 코드로 엔코딩되기 때문에, 칼라는 이 제1 픽셀에 대해서 결정될 수 있고 부가적인 비트플레인들은 무시되는데, 그 이유는 다음 비트플레인들이 디코딩되는 픽셀의 위치에서 홀들을 포함하기 때문이다. 다른 한편으로, 제1 비트플레인으로부터 취해진 비트가 칼라를 엔코딩하지 않으면, 하나 이상의 부가 엔코딩된 비트플레인들의 비트들은 이 비트들이 칼라를 엔코딩하거나 최종 엔코딩된 깊이가 도달될 때까지 재구성된다. 그 후, 다음 픽셀은 관련된 하나 이상의 엔코딩된 비트플레인들과 관련하여 차례로 디코딩되는데,상기 엔코딩된 비트플레인들은 상기 픽셀의 칼라를 위한 2진 칼라 코드에 비트들을 제공한다.Step 102 includes a plurality of bitplanes, such as by entropy decoding and context modeling at entropy decoder 28 and context modeler 26. For the first pixel, the first bit of the first bitplane is reconstructed. If this bit already encodes the color, i.e. because the color is encoded with a single bit variable length binary color code, the color can be determined for this first pixel and the additional bitplanes are ignored because the next bit This is because the planes contain holes at the position of the pixel to be decoded. On the other hand, if a bit taken from the first bitplane does not encode the color, the bits of the one or more additionally encoded bitplanes are reconstructed until these bits encode the color or the final encoded depth is reached. The next pixel is then decoded in turn with respect to the associated one or more encoded bitplanes, where the encoded bitplanes provide bits to a binary color code for the color of the pixel.

픽셀의 2진 칼라 코드를 위한 비트 값들이 나중 픽셀들의 컨텍스트로서 사용되기 때문에, 디코딩된 비트 값들은 어레이 내의 모든 픽셀들이 디코딩될 때까지 유지되는 것이 바람직하다.Since the bit values for the binary color code of the pixel are used as the context of later pixels, the decoded bit values are preferably maintained until all pixels in the array have been decoded.

단계(103)에서, 각각의 픽셀의 칼라들은 재구성된다. 여기서, 2진 칼라 코드는 하나 이상의 디코딩된 비트플레인 및 임의의 엔코딩되지 않은 비트플레인들로부터 취해진 상기 픽셀 위치에 대응하는 비트 위치들을 조합함으로서 얻어진다. 제1 픽셀에 대해서, 디코딩된 비트플레인들이 상기 픽셀의 완전한 2진 칼라 코드를 제공하면, 2진 칼라 코드가 결정된다. 보다 많은 비트들이 필요로 되면, 이들 비트들은 상기 픽셀을 위한 2진 칼라 코드가 완전할 때까지 엔코딩되지 않은 비트플레인들의 스트림으로부터 페치된다.In step 103, the colors of each pixel are reconstructed. Here, a binary color code is obtained by combining bit positions corresponding to the pixel position taken from one or more decoded bitplanes and any unencoded bitplanes. For the first pixel, if the decoded bitplanes provide the complete binary color code of the pixel, then the binary color code is determined. If more bits are needed, these bits are fetched from the stream of unencoded bitplanes until the binary color code for the pixel is complete.

단계(104)에서, 각각의 픽셀을 위한 2진 칼라 코드는 관련된 오리지널 칼라 값으로 대체된다. 그 후, 픽셀 어레이는 압축된 화상(3)으로서 디코더의 출력을 형성한다.In step 104, the binary color code for each pixel is replaced with the associated original color value. The pixel array then forms the output of the decoder as a compressed picture 3.

컨텍스트 모델링 동안, 템플레이트는 디코딩되는 픽셀의 근처에 픽셀들의 세트를 규정하는데 사용된다. 이상적으로, 템플레이트는 모든 엔코딩된 비트플레인들에서 모든 픽셀들을 위하여 일정한 형상이 된다. 이 일정한 형상의 템플레이트는 디코더를 간단하게 한다. 도11은 일예의 템플레이트(60)를 도시하는데, 이 경우에, 현재 픽셀(P1) 근처의 13개의 픽셀들(0 내지 12)을 커버한다. 임의의 적절한 템플레이트의 크기 및 형상이 사용될 수 있다. 템플레이트의 부분이 픽셀 어레이 바깥에 있는 경우, 통상적으로 "0"의 값이 사용된다.During context modeling, a template is used to define a set of pixels near the pixel to be decoded. Ideally, the template is of constant shape for all pixels in all encoded bitplanes. This constant shaped template simplifies the decoder. 11 shows an example template 60, in which case it covers thirteen pixels 0-12 near the current pixel P1. Any suitable template size and shape can be used. If the portion of the template is outside the pixel array, a value of "0" is typically used.

도12는 제1 및 제2 위치들에서 일예의 템플레이트(60)를 도시한 것이다. 템플레이트가 제1 픽셀 위치(P1)로부터 이동되어 새로운 제2 픽셀(P2)을 검사할 때, 증분적인 페치가 새로운 위치의 단지 새로운 컨텍스트 값들에 대해서 수행된다. 이 경우에, 인접 픽셀들(0, 3, 8 및 12)을 위한 컨텍스트 값들 만이 페칭하는데 필요로 된다. 제1 및 제2 픽셀 위치 간에서 중첩하는 다른 컨텍스트 값들이 유지되고 제2 위치에서 또 다시 사용된다. 이 예에서, 사전 결정된 픽셀(P1)은 픽셀(P2)을 위한 템플레이트에서 위치 0를 형성한다. 이 증분 페치는 각각의 픽셀 위치에서 컨텍스트 모델러에 필요로 되는 새로운 데이터 량을 실질적으로 감소시킨다.12 shows an example template 60 in the first and second positions. When the template is moved from the first pixel location P1 to examine the new second pixel P2, an incremental fetch is performed on only new context values of the new location. In this case, only context values for adjacent pixels 0, 3, 8 and 12 are needed to fetch. Other context values that overlap between the first and second pixel positions are retained and used again in the second position. In this example, predetermined pixel P1 forms position 0 in the template for pixel P2. This incremental fetch substantially reduces the amount of new data needed by the context modeler at each pixel location.

도13은 디코딩 동안 사용되는 바람직한 데이터 저장 배열을 도시한 것이다. 비트플레인들을 재구성하기 위하여, 디코딩된 비트플레인 어레이가 형성되고 나서, 디코더로부터 출력 픽셀 어레이를 형성할 것이다. 각각의 픽셀에서, 제1 디코딩된 비트플레인(51)의 비트는 상기 픽셀을 위한 어레이 장소의 제1 비트 위치에 저장된다. 다음 디코딩된 비트플레인들은 동일한 장소에서 다음 비트 위치들에 저장된다. 즉, 각각의 픽셀을 위하여, 상기 픽셀을 위한 비트플레인들의 세트는 내림차순(오름차순)의 비트 순서로 단일 장소에 저장된다. 그러므로, 단일 어레이 장소를 판독하면, 비트플레인들의 완전한 세트로부터의 데이터가 결정되도록 함으로써, 디코더에서 속도를 개선시키고 메모리 액세스를 감소시킨다. 일 예로서, 도13은 각각의 장소가 최대 8비트 비트플레인 까지 저장하는 8비트 바이트인 어레이를 도시한다.다른 길이의 장소들이 원하는 경우 비트플레인 어레이에 사용될 수 있다.Figure 13 shows a preferred data storage arrangement used during decoding. To reconstruct the bitplanes, a decoded bitplane array will be formed and then form an output pixel array from the decoder. In each pixel, the bits of the first decoded bitplane 51 are stored in the first bit position of the array location for the pixel. The next decoded bitplanes are stored in the next bit positions in the same place. That is, for each pixel, the set of bitplanes for that pixel is stored in a single place in bit order in descending order (ascending order). Therefore, reading a single array location allows data from a complete set of bitplanes to be determined, thereby improving speed and reducing memory access at the decoder. As an example, Figure 13 shows an array in which each location is an 8-bit byte that stores up to 8 bit bitplanes. Other length locations may be used in the bitplane array if desired.

칼라 화상들을 압축하는 방법 및 장치가 서술되는데, 이는 심지어 상대적으로 작고 간단한 분리된 화상들을 위하여 효율적인 화상 압축을 제공한다. 압축된 화상의 압축해제는 간단하고 비용이 저렴하다. 칼라 화상들의 압축해제를 위한 방법 및 장치가 서술되는데, 이는 시스템 자원들이 제한되는 환경에서 동작하는데 적합하다. 다른 특징들 및 장점들은 본 발명의 상술된 설명 및 실시를 통해서 명백하게 될 것이다.A method and apparatus for compressing color images is described, which provides efficient image compression even for relatively small and simple separated images. Decompression of the compressed image is simple and inexpensive. A method and apparatus for decompression of color images is described, which is suitable for operation in an environment where system resources are limited. Other features and advantages will be apparent from the above description and implementation of the invention.

본 출원에 설명된 디코더 구현방식들은 또한 본 발명의 범위를 벗어난 것에도 적용될 수 있고 이들 또한 본 발명들로서 간주될 수 있다는 점에 유의하라. 특히, 압축된 화상들을 디코딩하기 위한 디코더 구현방식들을 적용할 수 있는데, 여기서 2진 칼라 코드들은 US5,659,631에 따라서 엔코딩될 때 압축된 화상들과 같이 고정된 길이로 된다.Note that the decoder implementations described in this application can also be applied to outside the scope of the present invention and that they can also be regarded as the present inventions. In particular, decoder implementations for decoding compressed pictures can be applied, where binary color codes are of fixed length, such as compressed pictures, when encoded in accordance with US Pat. No. 5,659,631.

고정된 길이의 2진 칼라 코드들을 갖는 압축된 화상들의 유용한 디코딩은: 압축된 화상의 칼라들과 2진 칼라 코드들의 관계를 나타내는 칼라 코딩 기준을 판독하며; 상기 2진 칼라 코드들의 1비트를 각각 나타내는 하나 이상의 엔코딩된 비트플레인들을 디코딩하며; 상기 2진 칼라 코드들의 1비트를 각각 나타내는 하나 이상의 엔코딩된 비트플레인들을 디코딩하며; 상기 압축된 칼라 화상의 각각의 픽셀에 대한 2진 칼라 코드를 결정하고; 각각의 픽셀에 대한 상기 2진 칼라 코드를 관련된 칼라로 대체하는 것을 포함하는데, 상기 디코딩은 각각의 픽셀에 대해: 하나 이상의 상기 엔코딩된 비트플레인들 및 제로 이상의 엔코딩되지 않은 비트플레인들로부터 취해진 상기 픽셀 위치에 대응하는 비트 위치들을 조합함으로써 각각의 픽셀에 대한 2진 칼라 코드를 결정하는 것을 포함한다. 상기 디코딩은 엔트로피 디코딩 및 컨텍스트-모델링을 포함하는 것이 바람직한데, 여기서 템플레이트는 디코딩되는 픽셀 근처의 픽셀들의 세트를 규정하도록 사용되며, 상기 템플레이트는 상기 모든 엔코딩된 비트플레인들의 픽셀들을 위하여 일정한 형상으로 된다. 상기 디코딩은 상기 제2 위치와 중첩되는 상기 제1 픽셀 위치의 컨텍스트 값들을 유지함으로써, 제1 픽셀 위치로부터 제2 픽셀 위치로 이동될 때 컨텍스트 값들을 증분적으로 페치하는 것을 포함하는 것이 바람직하다. 비트플레인들의 디코딩 및 각각의 픽셀을 위한 2진 칼라 코드를 결정하는 것은 픽셀 어레이를 형성하는 것을 포함하는데, 여기서, 각각의 픽셀에 대해, 상기 픽셀들을 위한 디코딩된 비트플레인들의 세트가 소정 비트 순서로 단일 장소에 저장되는 것이 바람직하다.Useful decoding of compressed pictures with fixed length binary color codes includes: reading color coding criteria indicative of the relationship of colors and binary color codes of the compressed picture; Decode one or more encoded bitplanes each representing one bit of the binary color codes; Decode one or more encoded bitplanes each representing one bit of the binary color codes; Determine a binary color code for each pixel of the compressed color picture; Replacing the binary color code for each pixel with an associated color, wherein the decoding comprises: for each pixel: the pixel taken from one or more of the encoded bitplanes and zero or more unencoded bitplanes. Determining a binary color code for each pixel by combining the bit positions corresponding to the position. Preferably, the decoding includes entropy decoding and context-modeling, where a template is used to define a set of pixels near the pixel to be decoded, the template being of constant shape for the pixels of all the encoded bitplanes. . Preferably, the decoding includes incrementally fetching context values when moving from a first pixel location to a second pixel location by maintaining context values of the first pixel location that overlap with the second location. Decoding the bitplanes and determining the binary color code for each pixel includes forming a pixel array, where, for each pixel, the set of decoded bitplanes for the pixels is in predetermined bit order. It is desirable to be stored in a single place.

상술된 실시예들은 본 발명을 제한하고자 하는 것이 아니라, 당업자는 첨부된 청구항들의 영역을 벗어남이 없이 많은 대안적인 실시예들을 설계할 수 있다는 점에 유의하여야 한다. 청구범위들에서, 괄호안에 병기된 모든 참조 부호들은 청구범위를 제한하는 것이 아니다. 단어 "포함"은 청구항에 기재된 소자들 또는 단계들 이외의 다른 소자들 또는 단계들의 존재를 배제하지 않는다. 본 발명은 몇몇 소자들을 포함하는 하드웨어 및 적절하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거한 장치 청구항에서, 이들 수단들 중 몇몇 수단은 동일한 하드웨어 항목으로 구현될 수 있다. 어떤 수단이 상호 다른 종속 청구항들에서 언급되었을지라도 이들 수단의 조합이 사용될 수 없다는 것을 나타내지 않는다.It should be noted that the above-described embodiments are not intended to limit the present invention, but those skilled in the art can design many alternative embodiments without departing from the scope of the appended claims. In the claims, all reference signs placed in parentheses do not limit the claim. The word "comprising" does not exclude the presence of elements or steps other than those described in the claims. The present invention can be implemented by hardware including several elements and a suitably programmed computer. In the device claim enumerating several means, several of these means may be embodied in the same hardware item. Although any means are mentioned in different dependent claims, they do not indicate that a combination of these means cannot be used.

Claims (30)

2진 값들의 2차원 어레이를 각각 포함하는 복수의 비트플레인들(51, 52, 53 ; bitplanes)을 생성하는 단계;Generating a plurality of bitplanes (51, 52, 53; bitplanes) each comprising a two-dimensional array of binary values; 상기 복수의 비트플레인들(51, 52, 53)을 엔코딩하는 단계를 포함하는 칼라 화상을 압축하는 방법에 있어서,A method of compressing a color image comprising encoding the plurality of bitplanes (51, 52, 53), 상기 칼라 화상에서 픽셀들의 칼라들에 따라서 가변 길이의 2진 칼라 코드들의 세트를 형성하는 단계; 및,Forming a set of variable length binary color codes in accordance with the colors of the pixels in the color image; And, 칼라 화상(1)에 적용되는 상기 가변 길이 2진 칼라 코드들의 각각의 비트 위치들을 나타내기 위하여 상기 복수의 비트플레인들(51, 52, 53)을 생성하는 단계를 포함하는 것을 특징으로 하는, 칼라 화상 압축 방법.Generating said plurality of bitplanes (51, 52, 53) to represent respective bit positions of said variable length binary color codes applied to a color image (1). Image Compression Method. 제1항에 있어서, 상기 가변 길이 2진 칼라 코드들을 각각의 칼라의 발생 빈도와 관련하여 상기 칼라 화상에 사용되는 칼라들에 할당하는 단계를 포함하는, 칼라 화상 압축 방법.2. The method of claim 1, comprising assigning the variable length binary color codes to colors used in the color image with respect to the frequency of occurrence of each color. 제1항에 있어서, 각각의 칼라에 할당되는 상기 가변 길이 2진 코드는 허프만의 알고리즘에 의해 결정되는 칼라 화상 압축 방법.2. The method of claim 1, wherein the variable length binary code assigned to each color is determined by Huffman's algorithm. 제1항에 있어서, 각각의 칼라에 할당되는 상기 가변 길이 2진 칼라 코드는정규 허프만 알고리즘에 의해 결정되는, 칼라 화상 압축 방법.2. The method of claim 1, wherein the variable length binary color code assigned to each color is determined by a regular Huffman algorithm. 제1항에 있어서, 그레이 코드들의 세트는 상기 가변 길이 2진 칼라 코드들중 적어도 한 길이에 대해 결정되는, 칼라 화상 압축 방법.The method of claim 1, wherein the set of gray codes is determined for at least one of the variable length binary color codes. 제1항에 있어서, 최소의 압축된 화상이 되는 최적의 칼라 코딩이 찾아질 때까지, 2진 칼라 코드들의 제1 할당을 형성하고 나서 대안적인 칼라 코딩 할당들을 연속적으로 시도하는 단계를 포함하는, 칼라 화상 압축 방법.The method of claim 1 including forming a first assignment of binary color codes and subsequently attempting alternate color coding assignments until an optimal color coding is found that results in a minimal compressed picture. Color image compression method. 제1항에 있어서, (a) 상기 가변 길이 2진 칼라 코드들을 위한 제1 트리 형상 및 리프들(leaves)에 칼라들의 초기 할당을 선택하고, 제 1 압축된 화상 버젼을 형성하는 단계;2. The method of claim 1, further comprising: (a) selecting an initial allocation of colors to first tree shapes and leaves for the variable length binary color codes and forming a first compressed image version; (b) 최적의 리프 할당이 결정될 때까지, 한쌍의 리프들을 연속적으로 스와핑하고 연속적인 압축된 화상 버젼들을 형성함으로서 대안적인 리프 할당을 평가하는 단계; 및,(b) evaluating the alternative leaf allocation by successively swapping the pair of leaves and forming successive compressed image versions until an optimal leaf allocation is determined; And, (c) 상기 트리 형상을 연속적으로 수정하고 대안적인 리프 할당들을 평가하는 상기 단계(b)를 반복하여 대안적인 트리 형상들의 세트를 평가함으로써, 최적의 트리 형상 및 최적의 리프 할당을 선택하는 단계를 포함하는, 칼라 화상 압축 방법.(c) evaluating the set of alternative tree shapes by repeating step (b) of continuously modifying the tree shape and evaluating alternative leaf assignments, thereby selecting an optimal tree shape and an optimal leaf assignment. A color image compression method that includes. 제7항에 있어서, 상기 단계(c)는 상기 트리 형상을 연속적으로 모핑(morphing)함으로써 대안적인 트리 형상들의 세트 각각을 형성하는 단계를 포함하는, 칼라 화상 압축 방법.8. The method of claim 7, wherein step (c) comprises forming each of a set of alternative tree shapes by continuously morphing the tree shape. 제1항에 있어서, 상기 2진 칼라 코드들의 트리 구조를 규정하고 상기 칼라 화상에 사용되는 칼라들과 상기 2진 칼라 코드들의 연관을 규정하는 칼라 코딩 기준을 형성하는 단계를 포함하는, 칼라 화상 압축 방법.2. The color image compression of claim 1, comprising forming a color coding criterion that defines a tree structure of the binary color codes and defines an association of the binary color codes with colors used in the color image. Way. 제1항에 있어서, 복수의 개시 칼라 화상들에 사용되는 칼라들에 따라서 상기 가변 길이 칼라 코드들을 형성하는 단계를 포함하는, 칼라 화상 압축 방법.2. The method of claim 1, comprising forming the variable length color codes in accordance with colors used in a plurality of starting color images. 제1항에 있어서, 오리지널 칼라 화상을 개시 화상들의 세트로 분할하는 단계를 포함하는, 칼라 화상 압축 방법.2. The method of claim 1, comprising dividing an original color picture into a set of starting pictures. 제1항에 있어서, 각각의 비트플레인은 상기 가변 길이 2진 칼라 코드들의 세트에서 한 비트 위치를 나타내는, 칼라 화상 압축 방법.2. The method of claim 1, wherein each bitplane represents one bit position in the set of variable length binary color codes. 제12항에 있어서, 제1 생성된 비트플레인은 상기 2진 칼라 코드들의 세트 각각의 제1 비트 위치에 대응하는 2진 값들을 나타내고, 제2 및 다음의 비트플레인들 각각은 상기 2진 칼라 코드에서 제2 및 다음 비트 위치들을 각각 나타내는, 칼라화상 압축 방법.13. The method of claim 12, wherein the first generated bitplane represents binary values corresponding to a first bit position of each of the set of binary color codes, and wherein each of the second and subsequent bitplanes is the binary color code. And representing second and next bit positions, respectively. 제12항에 있어서, 하나 이상의 비트플레인들에 홀을 형성하는 단계를 포함하며, 비트 위치는 상기 세트의 가변 길이 2진 칼라 코드들중 임의의 특정 한 코드에 제공되지 않는, 칼라 화상 압축 방법.13. The method of claim 12, comprising forming a hole in one or more bitplanes, wherein the bit position is not provided to any particular one of the set of variable length binary color codes. 제1항에 있어서, 상기 비트플레인들의 엔코딩 단계는 컨텍스트-모델링 및 엔트로피 엔코딩을 포함하는, 칼라 화상 압축 방법.The method of claim 1, wherein the encoding of the bitplanes includes context-modeling and entropy encoding. 제15항에 있어서, 제로 이상의 다음 비트플레인들은 엔코딩되지 않으면서 적어도 제1 비트플레인들의 그룹을 엔코딩하는 단계를 포함하는, 칼라 화상 압축 방법.16. The method of claim 15, wherein the zero or more next bitplanes comprise encoding at least a group of first bitplanes without being encoded. 제15항에 있어서, 상기 비트플레인들을 2개 이상의 그룹들로 분할하고, 그 그룹에 대한 엔코딩 스킴으로 비트플레인들의 각각의 그룹을 엔코딩하는 단계를 포함하는, 칼라 화상 압축 방법.16. The method of claim 15, comprising dividing the bitplanes into two or more groups and encoding each group of bitplanes with an encoding scheme for that group. 제16항에 있어서, 디코딩에 요구되는 순서와 관련하여 상기 엔코딩된 비트플레인들로부터 엔코딩된 심볼들을 인터리빙하는 단계를 포함하는, 칼라 화상 압축 방법.17. The method of claim 16, comprising interleaving encoded symbols from the encoded bitplanes in relation to the order required for decoding. 제1항의 방법에 의해 형성되는 압축된 칼라 화상 신호.A compressed color picture signal formed by the method of claim 1. 칼라 화상을 압축하는 화상 엔코더에 있어서,In the image encoder for compressing a color image, 압축될 오리지널 칼라 화상에 사용되는 칼라들과 가변 길이 2진 칼라 코드들을 연관시키도록 배치된 칼라 코딩 유닛(12);A color coding unit 12 arranged to associate variable length binary color codes with colors used in the original color picture to be compressed; 상기 2진 칼라 코드들로부터 비트플레인들의 세트를 생성시키는 비트플레인 생성기(14); 및,A bitplane generator (14) for generating a set of bitplanes from the binary color codes; And, 압축된 화상(2)을 형성하기 위하여 상기 생성된 비트플레인들의 세트를 엔코딩하는 비트플레인 엔코딩 유닛(16, 18)을 포함하는, 칼라 화상을 압축하는 화상 엔코더.And a bitplane encoding unit (16, 18) for encoding said set of generated bitplanes to form a compressed picture (2). 압축된 화상을 압축해제하는 방법에 있어서,In the method for decompressing a compressed image, 압축된 화상(2)의 칼라들과 가변 길이 2진 칼라 코드들의 연관을 나타내는 칼라 코딩 기준(31)을 판독하는 단계;Reading a color coding criterion 31 representing the association of the colors of the compressed picture 2 with the variable length binary color codes; 상기 가변 길이 2진 칼라 코드들의 1비트를 각각 나타내는 하나 이상의 엔코딩된 비트플레인들(51, 52, 53)을 디코딩하는 단계;Decoding one or more encoded bitplanes (51, 52, 53) each representing one bit of said variable length binary color codes; 상기 압축된 칼라 화상(2)의 각각의 픽셀에 대한 상기 가변 길이 2진 칼라 코드를 결정하는 단계; 및,Determining the variable length binary color code for each pixel of the compressed color image (2); And, 각 픽셀에 대한 상기 가변 길이 2진 칼라 코드를 관련된 칼라로 대체하는 단계를 포함하는, 압축된 화상을 압축해제하는 방법.Replacing the variable length binary color code for each pixel with an associated color. 제21항에 있어서, 상기 엔코딩된 비트플레인들을 디코딩하는 단계는 각각의 픽셀에 대해:The method of claim 21, wherein decoding the encoded bitplanes comprises for each pixel: 상기 엔코딩된 비트플레인들(51)중 한 비트플레인들로부터 비트 값을 디코딩하는 단계: 및,Decoding a bit value from one of the encoded bitplanes (51): and 상기 비트 값이 2진 칼라 값을 결정하면, 다음의 비트플레인들(52, 53)을 무시하고, 그렇치 않다면 상기 디코딩된 비트 값들이 2진 칼라 코드를 결정할 때까지 또는 상기 최종 엔코딩된 비트플레인(53)이 도달될 때까지 다음 비트플레인(52)으로부터 비트 값을 디코딩하는 단계를 포함하는, 압축된 화상을 압축해제하는 방법.If the bit value determines a binary color value, the following bitplanes 52, 53 are ignored, otherwise it is until the decoded bit values determine a binary color code or the last encoded bitplane ( Decoding the bit value from the next bitplane (52) until 53) is reached. 제21항에 있어서, 각각의 픽셀에 대한 상기 가변 길이 2진 칼라 코드는 상기 하나 이상의 엔코딩된 비트플레인들(51, 52, 53) 및 제로 이상의 엔코딩되지 않은 비트플레인들(54)로부터 취해진 상기 픽셀 위치에 대응하는 비트 위치들을 조합함으로써 결정되는, 압축된 화상을 압축해제하는 방법.The pixel of claim 21, wherein the variable length binary color code for each pixel is taken from the one or more encoded bitplanes 51, 52, 53 and zero or more unencoded bitplanes 54. A method of decompressing a compressed picture, determined by combining bit positions corresponding to the position. 제21항에 있어서, 상기 엔코딩된 비트플레인(51, 52, 53)들을 디코딩하는 단계는 엔트로피 디코딩 및 컨텍스트-모델링을 포함하며, 템플레이트(60)는 디코딩되는 픽셀 근처의 픽셀 세트를 규정하도록 사용되며, 상기 템플레이트는 모든 상기 엔코딩된 비트플레인들(51, 52, 53)에서 모든 픽셀들에 대해 일정한 형상으로 되는, 압축된 화상을 압축해제하는 방법.23. The method of claim 21, wherein decoding the encoded bitplanes 51, 52, 53 includes entropy decoding and context-modeling, wherein template 60 is used to define a set of pixels near the pixel to be decoded. And wherein the template is shaped uniformly for all pixels in all of the encoded bitplanes (51, 52, 53). 제24항에 있어서, 상기 제2 픽셀 위치와 중첩되는 상기 제1 픽셀 위치의 컨텍스트 값들을 보유함으로써, 상기 템플레이트가 제1 픽셀 위치(P1)로부터 제2 픽셀 위치(P2)로 이동될 때 컨텍스트 값들을 증가적으로 페칭하는 단계를 포함하는, 압축된 화상을 압축해제하는 방법.25. A context value according to claim 24, wherein the template is moved from the first pixel position P1 to the second pixel position P2 by retaining context values of the first pixel position overlapping with the second pixel position. Incrementally fetching them. 제21항에 있어서, 상기 비트플레인들(51, 52, 53)의 디코딩 및 각각의 픽셀에 대한 상기 가변 길이 2진 칼라 코드를 결정하는 단계는 각각의 픽셀에 대해, 상기 픽셀을 위한 비트플레인들(51-53)의 세트가 소정의 비트 순서로 단일 장소에 저장되는 픽셀 어레이를 형성하는 단계를 포함하는, 압축된 화상을 압축해제하는 방법.22. The method of claim 21, wherein decoding the bitplanes 51, 52, 53 and determining the variable length binary color code for each pixel comprises: for each pixel, bitplanes for the pixel. And forming a pixel array in which the set of (51-53) is stored in a single place in a predetermined bit order. 압축된 칼라 화상을 압축해제하도록 배치되는 화상 디코더에 있어서,A picture decoder arranged to decompress a compressed color picture, 가변 길이 2진 칼라 코드들의 세트에 따라서 압축해제된 화상(3)의 각각의 픽셀에 칼라를 할당하도록 배치된 칼라 디코딩 유닛(22);A color decoding unit 22 arranged to assign a color to each pixel of the decompressed picture 3 according to the set of variable length binary color codes; 복수의 비트플레인들(51, 52, 53, 54)로부터 상기 2진 칼라 코드들을 생성시키는 비트플레인 누산기(24); 및,A bitplane accumulator (24) for generating the binary color codes from a plurality of bitplanes (51, 52, 53, 54); And, 압축된 화상(2)으로부터 엔코딩된 비트플레인들(51, 52, 53)의 세트를 디코딩하여 재형성하는 비트플레인 디코딩 유닛(26, 28)을 포함하는, 화상 디코더.And a bitplane decoding unit (26, 28) for decoding and reforming the set of encoded bitplanes (51, 52, 53) from the compressed picture (2). 화상 디스플레이 장치에 있어서,In an image display apparatus, 압축된 칼라 화상(2)을 저장하는 저장 장치;A storage device for storing the compressed color image 2; 상기 압축된 칼라 화상을 압축해제하여 압축해제된 칼라 화상(3)을 형성하는 화상 디코더(20)로서, 상기 화상 디코더는 청구항 27항에 기재된 바와 같이 배치되는, 상기 화상 디코더(20); 및,A picture decoder (20) which decompresses the compressed color picture to form a decompressed color picture (3), the picture decoder being arranged as described in claim 27; And, 상기 압축해제된 칼라 화상(3)을 디스플레이하는 칼라 디스플레이(25)를 포함하는, 화상 디스플레이 장치.And a color display (25) for displaying the decompressed color image (3). 제28항에 있어서, 상기 장치는 셀룰러 전화 장치인, 화상 디스플레이 장치.29. An image display device as claimed in claim 28, wherein the device is a cellular telephone device. 화상 압축 시스템에 있어서,In an image compression system, 청구항 20항에 기재된 바와 같은 화상 엔코더(10); 및,An image encoder 10 as set forth in claim 20; And, 청구항 27항에 기재된 바와 같은 화상 디코더(20)를 포함하는, 화상 압축 시스템.An image compression system, comprising an image decoder (20) as described in claim 27.
KR10-2004-7011865A 2002-02-01 2003-01-23 Compression of palettized color images with variable length color codes KR20040077921A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP02075430.5 2002-02-01
EP02075430 2002-02-01
PCT/IB2003/000218 WO2003065709A1 (en) 2002-02-01 2003-01-23 Compression of palettized color images with variable length color codes

Publications (1)

Publication Number Publication Date
KR20040077921A true KR20040077921A (en) 2004-09-07

Family

ID=27635865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7011865A KR20040077921A (en) 2002-02-01 2003-01-23 Compression of palettized color images with variable length color codes

Country Status (6)

Country Link
US (1) US7415154B2 (en)
EP (1) EP1474915A1 (en)
JP (1) JP4033836B2 (en)
KR (1) KR20040077921A (en)
CN (1) CN1316812C (en)
WO (1) WO2003065709A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101489694B1 (en) * 2008-05-16 2015-02-06 삼성전자주식회사 Method and apparatus for image processing using least significant bits

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003065709A1 (en) * 2002-02-01 2003-08-07 Koninklijke Philips Electronics N.V. Compression of palettized color images with variable length color codes
KR100595663B1 (en) * 2004-04-13 2006-07-03 엘지전자 주식회사 Video file compression/expansion method for mobile phone
DK1791997T3 (en) 2004-08-31 2012-08-13 Obermeyer Henry K High Strength Connection System for Fiber Reinforced Composite Materials
KR20060112411A (en) * 2005-04-27 2006-11-01 엘지전자 주식회사 Apparatus and method of conversing bit map file
JP4854309B2 (en) * 2006-01-23 2012-01-18 シャープ株式会社 Data storage control device
US7949054B2 (en) 2006-06-01 2011-05-24 Microsoft Corporation Flexible data organization for images
US8509555B2 (en) * 2008-03-12 2013-08-13 The Boeing Company Error-resilient entropy coding for partial embedding and fine grain scalability
CN101808248B (en) * 2009-02-13 2012-01-11 联咏科技股份有限公司 Adaptive paradigm Hoffmann decoder, method thereof and image decoder
CN101833919B (en) * 2009-03-12 2012-02-29 安凯(广州)微电子技术有限公司 Multiple language character display method based on nand flash micro memory
US8457425B2 (en) * 2009-06-09 2013-06-04 Sony Corporation Embedded graphics coding for images with sparse histograms
US8964851B2 (en) * 2009-06-09 2015-02-24 Sony Corporation Dual-mode compression of images and videos for reliable real-time transmission
US8285062B2 (en) * 2009-08-05 2012-10-09 Sony Corporation Method for improving the performance of embedded graphics coding
CN102103742A (en) * 2009-12-16 2011-06-22 鸿富锦精密工业(深圳)有限公司 Image file processing device and method
US8571307B2 (en) 2010-11-16 2013-10-29 Hand Held Products, Inc. Method and system operative to process monochrome image data
US8600158B2 (en) 2010-11-16 2013-12-03 Hand Held Products, Inc. Method and system operative to process color image data
US9142056B1 (en) * 2011-05-18 2015-09-22 Disney Enterprises, Inc. Mixed-order compositing for images having three-dimensional painting effects
KR101996197B1 (en) * 2013-12-10 2019-07-03 캐논 가부시끼가이샤 Improved palette mode in hevc
EP3926955A1 (en) 2013-12-10 2021-12-22 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding blocks of pixel
JP6322713B2 (en) 2014-01-02 2018-05-09 ヴィド スケール インコーポレイテッド 2D palette coding for screen content coding
WO2015139176A1 (en) * 2014-03-17 2015-09-24 富士通株式会社 Palette-based coding device and method and image processing device
US10264285B2 (en) * 2014-05-22 2019-04-16 Qualcomm Incorporated Coding runs in palette-based video coding
US10750198B2 (en) 2014-05-22 2020-08-18 Qualcomm Incorporated Maximum palette parameters in palette-based video coding
US10291940B2 (en) 2014-05-23 2019-05-14 Qualcomm Incorporated Coding runs with escape in palette-based video coding
US11323733B2 (en) 2014-05-23 2022-05-03 Qualcomm Incorporated Predictor palette initialization in palette-based video coding
US10382749B2 (en) 2014-05-23 2019-08-13 Qualcomm Incorporated Coding run values based on palette index in palette-based video coding
US9337862B2 (en) * 2014-06-09 2016-05-10 Tidal Systems, Inc. VLSI efficient Huffman encoding apparatus and method
US9807402B2 (en) * 2014-10-06 2017-10-31 Industrial Technology Research Institute Method of color palette coding applicable to electronic device and electronic device using the same
US9466124B2 (en) * 2014-11-10 2016-10-11 Intel Corporation Compression using index bits in MSAA
CN106303531B (en) * 2015-06-09 2019-08-16 富士通株式会社 Coding method, device and the image processing equipment of copy information
US10922026B2 (en) * 2018-11-01 2021-02-16 Fungible, Inc. Data processing unit having hardware-based range encoding and decoding
JP7135955B2 (en) * 2019-03-18 2022-09-13 株式会社デンソー Data compression method, data compression device
CN113747167A (en) * 2020-05-27 2021-12-03 深圳绿米联创科技有限公司 Image compression coding method and device and electronic equipment
CN116055750B (en) * 2023-04-03 2023-06-27 厦门视诚科技有限公司 Lossless coding and decoding system and method for reducing video transmission bandwidth

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2396479A1 (en) * 1977-06-30 1979-01-26 Cit Alcatel REDUNDANCY REDUCTION FAC-SIMILE TRANSMISSION INSTALLATION
US6549666B1 (en) * 1994-09-21 2003-04-15 Ricoh Company, Ltd Reversible embedded wavelet system implementation
US5659631A (en) * 1995-02-21 1997-08-19 Ricoh Company, Ltd. Data compression for indexed color image data
KR960036647A (en) * 1995-03-20 1996-10-28 배순훈 Bit Plan Compression Transmission Device Using Scanning
GB9806767D0 (en) * 1998-03-31 1998-05-27 Philips Electronics Nv Pixel colour valve encoding and decoding
US6836564B2 (en) * 2000-04-28 2004-12-28 Denso Corporation Image data compressing method and apparatus which compress image data separately by modifying color
WO2003065709A1 (en) * 2002-02-01 2003-08-07 Koninklijke Philips Electronics N.V. Compression of palettized color images with variable length color codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101489694B1 (en) * 2008-05-16 2015-02-06 삼성전자주식회사 Method and apparatus for image processing using least significant bits

Also Published As

Publication number Publication date
CN1316812C (en) 2007-05-16
EP1474915A1 (en) 2004-11-10
WO2003065709A1 (en) 2003-08-07
JP4033836B2 (en) 2008-01-16
CN1625893A (en) 2005-06-08
US20050152605A1 (en) 2005-07-14
JP2005516554A (en) 2005-06-02
US7415154B2 (en) 2008-08-19

Similar Documents

Publication Publication Date Title
US7415154B2 (en) Compression of palettized color images with variable length color codes
JP2005516554A6 (en) Compression of paletted color images using variable-length color codes
US5659631A (en) Data compression for indexed color image data
JP3978478B2 (en) Apparatus and method for performing fixed-speed block-unit image compression with estimated pixel values
US5818877A (en) Method for reducing storage requirements for grouped data values
JP4444969B2 (en) Multi-mode alpha image processing
US7295704B2 (en) Image compression usable with animated images
US6522783B1 (en) Re-indexing for efficient compression of palettized images
EP0776569B1 (en) Method and system for encoding and decoding image data
JP4808928B2 (en) Transform factor compression using multiple scans
US20040013312A1 (en) Moving image coding apparatus, moving image decoding apparatus, and methods therefor
US6377706B1 (en) Compression framework incorporating decoding commands
JPH10294872A (en) Image coding method, device, image decoding method and device
US5198898A (en) Data compressing system for compressing serial image data with color information
JP2000078020A (en) Compression method for dividing every word and applying compression to most significant bit
JPH118848A (en) Image encoding method and device therefor
JP2003333347A (en) Compression method and decompression method for binary image data, and compression apparatus and decompression apparatus for binary image data
JPH0918350A (en) Coding/decoding device and coding/decoding method
JPH1130978A (en) Color image encoding method and its encoder and color image decoding method and its decoder
JP3862590B2 (en) Image processing apparatus and method, computer program, and computer-readable storage medium
KR100495001B1 (en) Image compression encoding method and system
Salomon et al. Compression Techniques
WO2007104522A1 (en) Method and apparatus for linewise image compression
JP2000082966A (en) Hvq compression method using error item
JPH0435361A (en) Picture coding device and picture coding and decoding device

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid