KR100819597B1 - 멀티모드 알파 이미지 처리 방법 및 장치 - Google Patents

멀티모드 알파 이미지 처리 방법 및 장치 Download PDF

Info

Publication number
KR100819597B1
KR100819597B1 KR1020067012083A KR20067012083A KR100819597B1 KR 100819597 B1 KR100819597 B1 KR 100819597B1 KR 1020067012083 A KR1020067012083 A KR 1020067012083A KR 20067012083 A KR20067012083 A KR 20067012083A KR 100819597 B1 KR100819597 B1 KR 100819597B1
Authority
KR
South Korea
Prior art keywords
image
alpha
density
block
index
Prior art date
Application number
KR1020067012083A
Other languages
English (en)
Other versions
KR20060103454A (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
Priority claimed from SE0303497A external-priority patent/SE526226C2/sv
Application filed by 텔레폰악티에볼라겟엘엠에릭슨(펍) filed Critical 텔레폰악티에볼라겟엘엠에릭슨(펍)
Publication of KR20060103454A publication Critical patent/KR20060103454A/ko
Application granted granted Critical
Publication of KR100819597B1 publication Critical patent/KR100819597B1/ko

Links

Images

Classifications

    • 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/41Bandwidth or redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image 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/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/21Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with binary alpha-plane coding for video objects, e.g. context-based arithmetic encoding [CAE]
    • 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/94Vector quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Color Television Systems (AREA)
  • Image Processing (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Generation (AREA)

Abstract

2개의 상이한 모드에 따라 동작 가능한 알파 이미지 인코딩 및 디코딩 기법이 개시된다. 인코딩 시에, 알파 이미지는 이미지 요소(610)를 포함하는 알파 이미지 블록(600)으로 분해된다. 이 블록(600)은 2개의 압축 모드 중 하나에 따라 블록 리프리젠테이션(700)으로 압축된다. 블록 리프리젠테이션(700)은, 색 코드 워드(720), 밀도 코드 워드(730), 알파 코드 워드(740) 및 코드 워드(730, 740) 중 하나를 나타내는 이미지 요소 관련 인덱스의 시퀀스(750)를 포함한다. 블록(600)에 이용할 압축 및 압축 해제 모드는 알파 코드 워드(740)에 기초하여 결정된다. 고 알파 해상도 모드에서, 인덱스 시퀀스(750)는 알파 코드 워드(740)의 양자화된 알파 값(740A, 740B) 중 하나를 선택하는 알파 인덱스 및, 밀도 코드 워드(730)로 나타내는 변경자 세트로부터 밀도 변경자를 선택하는 밀도 인덱스를 포함한다. 고 휘도 해상도 모드에서는, 인덱스 시퀀스(750)가 밀도 인덱스만을 포함한다.
이미지 블록, 이미지 요소, 색 코드 워드, 밀도 코드 워드, 알파 코드 워드, 리프리젠테이션, 알파 변경자.

Description

멀티모드 알파 이미지 처리 방법 및 장치{MULTI-MODE ALPHA IMAGE PROCESSING}
본 발명은 일반적으로 이미지 처리에 관한 것으로서, 특히, 이미지를 인코딩 및 디코딩하는 방법 및 시스템에 관한 것이다.
컴퓨터와 같은 데이터 처리 시스템 및 사용자 단말기, 특히, 이동 단말기 상의 이미지 및 그래픽의 프리젠테이션(presentation) 및 렌더링(rendering)이 지난 몇년간 상당히 증가하였다. 예컨대, 3차원(3D) 그래픽 및 이미지는, 게임, 3D 맵 및 메시징, 스크린 세이버 및 인간-기계 인터페이스를 포함하는 단말기 상의 많은 어필링 애플리케이션(appealing application)을 갖는다.
3D 그래픽 렌더링 프로세스는 통상적으로 3개의 보조 단계를 포함한다. 간략히 말하면, 제 1 단계, 애플리케이션 단계는 수개의 삼각형을 생성한다. 이들 삼각형의 코너는, 제 2 단계, 기하학 단계에서 변형되고, 투영되어 비추어진다. 제 3 단계, 래스터화(rasterization) 단계에서, 종종 텍스처(texture)를 의미하는 이미지는 삼각형에 "접착(glue)"되어, 렌더링된 이미지의 사실성(realism)을 증대시킬 수 있다. 제 3 단계는 통상적으로 또한 z-버퍼를 이용하는 분류(sorting)를 실행한다.
그러나, 이미지 및 텍스처의 렌더링 및, 특히 3D 이미지 및 그래픽은, 그래 픽 시스템에 요구되는 메모리 대역폭 및 처리 전력을 고려하여 계산상 값비싼 태스크(task)이다. 예컨대, 텍스처는 메모리를 고려하여 값비싸고, 텍스처는 고속 온 칩 메모리 상에 배치되거나 캐시(cache)되어야 하며, 메모리 대역폭을 고려하여, 텍스처는 수회 액세스되어 단일 픽셀을 그릴 수 있다.
대역폭 및 처리 전력 요구 조건을 낮추기 위해, 이미지(텍스처) 인코딩 방법 또는 시스템이 통상적으로 사용된다. 이와 같은 인코딩 시스템은 결과적으로, 렌더링 동안에 값비싼 온 칩 메모리 및 보다 저 메모리 대역폭을 더욱 효율적으로 사용하여, 보다 저 전력 소비 및/또는 보다 고속 렌더링을 달성한다. 대역폭 및 처리 전력 요건의 이런 감소는, 소량의 메모리, 보다 작은 메모리 대역폭 및 (배터리에 의해 가동되는) 제한된 전력과 함께, 특히 이동 유닛과 같은 신 클라이언트(thin client)에 중요하다.
이미지를 효율적이고 정확히 압축(compressing) 및 압축 해제(decompressing)하는 것 이외에, 일반적으로, 텍스처 압축 및 압축 해제 시스템이 알파 요소를 관리하는 능력을 갖는 것이 바람직하다. 이와 같은 알파 요소는, 광범한 애플리케이션에 이용되는 텍스처 내의 투명 또는 반투명 픽셀 또는 텍셀(texel)을 나타내는데 이용될 수 있다.
미국 특허 제5,956,431호에서, Iourcha 등은 S3TC (S3 Texture Compression) 또는 DXTC (DirectX Texture Compression)라 하는 텍스처 압축 기법을 개시한다. 이미지는 4 픽셀 × 4 픽셀의 다수의 이미지 블록으로 분해된다. 이와 같은 각 이미지 블록은 64 비트의 비트 시퀀스로 인코딩되어, 4 bpp(픽셀 당 비트)의 압축율 을 생성시킨다. 64 비트 시퀀스는, 2개의 기본 색 또는 색 코드워드(각각 16 비트) 및 2 비트 인덱스의 32 비트 시퀀스를 포함하며, 이미지 블록에서는 각 픽셀에 대해 하나의 인덱스이다. 디코딩 중에, 4개의 색의 색 팔레트(palette)가 생성된다. 팔레트의 제 1의 2개의 RGB(적색, 녹색 및 청색) 색은 2개의 기본 색(코드워드)에 대응한다. 그 후, RGB 공간 내의 기본 색 사이에 위치되는 2개의 부가적인 색은 그로부터 보간(interpolate)된다. 그 후, 각 2 비트 인덱스는, 각 픽셀에 대해, 그 픽셀에 이용하기 위해 팔레트의 4 색 중 하나를 식별한다.
S3TC 기법이 컴퓨터 단말기를 위해 상당히 잘 동작할지라도, 이동 유닛 및 다른 신 클라이언트에는 잘 적응되지 않는다. 이와 같은 이동 유닛은 통상적으로 기껏해야 16 또는 32 비트의 메모리 버스만을 가진다. 따라서, S3TC가 이동 유닛에 구성될 경우에, 이미지 블록의 64 비트 압축된 버전을 판독하기 위해 2 내지 4의 메모리 액세스를 필요로 한다. 게다가, 색 팔레트의 2개의 부가적인 색의 보간 중에, 하드웨어에서는 이상적이지 않은 1/3 및 2/3의 곱이 실행된다. 게다가, S3TC를 이용한 압축은 또한 적어도 이동 단말기 상에서 비교적 시간 소비가 많다.
S3TC 기법은 특정 케이스로서 알파 텍스처를 처리한다. 그 다음, 소위 펀치-스루(punch-through) 알파를 고려하기 위해 비트는 상이하게 해석된다. 이런 알파 메카니즘의 간단한 버전은 각 픽셀을 완전히 불투명하거나 투명한 것으로 나타낸다. S3TC가 더욱더 알파를 정확하게 처리할 수 없다는 사실은 시스템의 주요 결점 중의 하나이다.
본 발명은 종래 기술의 장치의 이들 및 다른 결점을 극복하는 것이다.
본 발명의 일반적 목적은 효율적인 이미지 처리를 제공하는 것이다.
본 발명의 다른 목적은 효율적인 이미지 인코딩 및 이미지 디코딩을 제공하는 것이다.
본 발명의 또 다른 목적은, 저 메모리 및 메모리 대역폭 용량을 가진 신 클라이언트에 사용하는데 적합한 이미지 인코딩 및 디코딩을 제공하기 위한 것이다.
본 발명의 다른 목적은 투명 및/또는 반투명 이미지 요소를 포함하는 알파 이미지에 적합한 이미지 인코딩 및 디코딩을 제공하는 것이다.
이들 및 다른 목적은 첨부한 특허청구범위에 의해 한정된 바와 같이 본 발명에 의해 충족된다.
간략히 말하면, 본 발명은 알파 이미지를 인코딩(압축)하고, 인코딩된(압축된) 이미지를 디코딩(압축 해제)하는 형식의 알파 이미지 처리를 포함한다.
본 발명에 따르면, 인코딩될 알파 이미지는 다수의 이미지 요소(픽셀, 텍스처 요소, 텍셀, 또는 볼륨 요소, 복셀(voxel)를 포함하는 많은 이미지 블록으로 분해된다. 바람직하게는, 이미지 블록은 이미지 요소를 포함하고, 2m×2n 이미지 요소의 사이즈를 갖는데, 여기서, m=3-n이고, n=0, 1, 2, 3이며, 또한, 2m×2n×2p의 사이즈를 갖는데, 여기서, m, n, p=0, 1, 2, 3이며, 바람직하게는 m+n+p=3이다. 블록 내의 각 이미지 요소는 색, 예컨대, 24 비트 RGB (적색, 녹색, 청색) 색 및 알파 또는 투명성 값, 예컨대, 8 비트 알파 값을 특징으로 한다. 그 후, 개별 이미지 블록은 압축된다.
이런 손실 있는 블록 압축에서, 블록의 이미지 요소의 특성을 나타내는 다수의 코드 워드가 결정된다. 또한, 이미지 요소 관련 인덱스의 인덱스 시퀀스가 블록에 제공된다. 이 시퀀스는, 블록의 이미지 요소의 적어도 서브세트(subset)에 대해, 코드 워드 중 하나와 관련된 인덱스, 또는 코드 워드 중 하나에 기초하여 생성된 특성 리프리젠테이션(representation)을 포함한다.
본 발명의 블록 압축은 2개의 상이한 알파 압축 모드 중 하나에 따라 실행될 수 있다. 2개의 상이한 압축 모드의 사용은, 알파 이미지에서 개별 이미지 블록의 특성에 더욱 잘 적응할 수 있음으로써, 인코딩 방법에 융통성(flexibility)을 제공한다. 2개의 상이한 압축 모드 사이에서 블록에 기초하여 선택을 갖는 결과로서, 처리된 이미지의 이미지 품질은, 단일 (고정) 알파 인코딩에 의한 종래 기술의 알파 적응 인코딩 기법에 비해 개선된다. 본 발명의 제 1 압축 모드는 고 알파 해상도를 제공한다. 이 모드는 특히 알파 값을 변경시키는 이미지 요소를 가진 이미지 블록을 압축하는데 적절하다. 제 2 압축 모드는, 보다 저 알파 해상도를 희생하지만, 제 1 모드 보다 양호한 휘도(luminance)(밀도(intensity)) 성분을 보존하는 고 휘도 해상도 모드이다.
본 발명의 양방의 압축 모드는, 결과적으로 색 코드 워드, 밀도 코드 워드, 알파 코드 워드 및 인덱스 시퀀스를 포함하는 이미지 블록의 압축된 리프리젠테이션을 생성시킨다.
알파 코드 워드는 블록의 이미지 요소의 하나 이상의 알파 값의 리프리젠테이션인 다수의 양자화된 알파 값을 포함한다. 현재 이미지 블록에 이용하기 위한 압축 모드의 실제 선택은 이 알파 코드 워드에 기초하며, 바람직하게는, 예컨대, 알파 코드 워드의 다수의 양자화된 알파 값의 비교에 기초하는 바와 같이, 알파 코드 워드의 하나 이상의 양자화된 알파 값에 기초한다. 본 발명의 구성에서, 제 1 압축 모드는 다수의 양자화된 알파 값이 상이할 경우에 선택되는 반면에, 제 2 압축 모드는 모든 양자화된 알파 값이 동일할 시에 이용된다. 선택적인 구성에서, 양자화된 알파 값 중 하나는 결합된 알파 코딩 및 모드 리프리젠트(representing) 기능성을 갖는다. 이와 같은 경우에, 이 양자화된 알파 값은 동작 모드를 결정하기 위해 이용된다.
색 코드 워드는 이미지 블록의 이미지 요소의 색의 리프리젠테이션이다. 이에 대응하여, 밀도 코드 워드는, 블록의 이미지 요소의 밀도를 변경하는 다수의 밀도 변경자(modifier) 세트의 리프리젠테이션이다. 밀도 코드 워드는 다수의 밀도 변경자 세트를 포함하는 밀도 테이블로의 인덱스 또는 포인터(pointer)인 것이 바람직하다. 이와 같은 경우에, 밀도 코드 워드는 이들 다수의 변경자 세트 중 하나와 관련되어 있다. 밀도 테이블은 양방의 압축 모드에 공통인 변경자 값을 포함한다. 선택적으로, 모드 적응 밀도 변경자 값을 가진 모드 특정 밀도 테이블이 사용된다.
제 1 압축 모드에서, 인덱스 시퀀스는 알파 인덱스 서브시퀀스(subsequence) 및 밀도 인덱스 서브시퀀스를 포함한다. 그 후, 알파 인덱스 서브시퀀스는, 블록의 이미지 요소의 적어도 일부의 각 이미지 요소에 대해, 알파 코드 워드의 다수의 양자화된 알파 값으로부터의 양자화된 알파 값과 관련된 알파 인덱스를 포함한다. 본 발명의 바람직한 실시예에서, 이 알파 인덱스 서브시퀀스는, 블록의 이미지 요소의 제 1 부분의 각 이미지 요소에 대해, 다수의 양자화된 알파 값 중 하나와 관련된 알파 인덱스를 포함한다. 블록의 이미지 요소의 제 2 나머지 부분의 각 이미지 요소는 다수의 양자화된 알파 값으로부터의 사전 정해진 양자화된 알파 값과 관련되어 있다. 따라서, 제 2 부분의 이(이들) 이미지 요소에는 알파 인덱스가 필요치 않다.
밀도 인덱스 서브시퀀스는, 적어도 하나의 이미지 요소의 각 서브세트(subset)에 대해, 밀도 코드 워드와 관련된 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함한다. 이 압축 모드의 제 1 실시예에서, 블록의 한쌍의 (이웃한) 이미지 요소는 동일한 밀도 인덱스를 공유한다. 따라서, 그 후, 밀도 인덱스 서브시퀀스는 8개의 이미지 요소를 가진 이미지 블록에 대한 4개의 밀도 인덱스를 포함한다. 이 압축 모드의 제 2 실시예에서, 각 이미지 요소는 자신의 밀도 인덱스를 갖는다. 그러나, 그 후, 밀도 인덱스는, 밀도 변경자 세트의 서브세트, 또는 쌍으로 관련된 인덱스와 관련하여 이용된 변경자 세트에 비해 적은 변경자 값을 포함하는 변경자 세트로부터의 밀도 변경자와 관련되는 것이 바람직하다.
제 2 압축 모드에서, 인덱스 시퀀스는, 이미지 블록의 각 이미지 요소에 대해, 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함한다.
제 2 압축 모드에서는, 블록의 이미지 요소에 대한 알파 인덱스가 이용되지 않는다. 따라서, 블록의 모든 이미지 요소는 동일한 알파 값과 관련될 것이다. 이것은 각 이미지 요소가 알파 값과 관련되는 제 1 압축 모드와 비교된다.
본 발명의 바람직한 실시예에서, 이미지 블록의 압축된 리프리젠테이션은 사용된 압축 모드와 무관한 32 비트 시퀀스이다. 그 후, 이 압축된 이미지 블록은, 바람직하게는, 9 비트 색 코드 워드, 3 비트 밀도 코드 워드, 4 비트 알파 코드 워드, 제 1 압축 모드의 15 비트 인덱스 시퀀스 또는 16 비트 인덱스 시퀀스를 포함하며, 그 중 하나의 비트는 제 2 압축 모드에서의 알파 코드 워드에 의해 공유되고, 1 비트 모드 인덱스는 이미지 블록이 알파 이미지 블록임을 나타낸다.
디코딩 중에, 압축 해제되는 압축된 이미지 블록은 식별되어, 예컨대, 메모리 위치로부터 인출(fetch)된다. 정확히 압축된 이미지 블록이 식별되면, 블록에 이용할 압축 해제 모드는 알파 코드 워드에 기초하여 결정된다.
그 후, 이미지 블록의 하나 이상의 이미지 요소에 대해 색 리프리젠테이션이 생성된다. 이 색 생성은 압축된 블록 리프리젠테이션의 색 코드 워드에 기초하여 실행된다. 밀도 변경자 세트는, 밀도 코드 워드를 이용하여, 바람직하게는 밀도 테이블로부터 변경자 세트를 식별함으로써 제공된다. 그 후, 디코딩되는 이미지 요소에 이용할 밀도 변경자는, 이미지 요소와 관련되고, 밀도 인덱스 시퀀스에서 발견되는 밀도 인덱스에 기초하여 제공된 변경자 세트로부터 선택된다. 정확한 밀도 변경자 값이 선택되면, 이미지 요소의 밀도는 이 값으로 변경된다.
정확히 양자화된 알파 값은, 제 1 모드의 알파 인덱스 또는 사전 정해진 관련을 이용하여 식별된다. 제 2 모드에서, 모든 양자화된 알파 값은 동일하여 그의 선택은 필요하지 않다. 알파 값이 식별되는 양자화된 알파 값에 기초하여 이미지 요소에 생성된다.
인코딩된 이미지 블록의 작은(32 비트) 사이즈로 인해, 본 발명은 제한된 메모리 용량 및 대역폭을 가진 신 클라이언트에 잘 적응된다. 게다가, 인코딩은, 또한 저 클록 주파수로 단말기에서 실행될 수 있도록 매우 빠르다. 더욱이, 디코딩은, 소수의 표준 부품을 이용하여, 예컨대, 하드웨어에 매우 간단히 구현될 수 있다.
본 발명은 다음의 이점을 제공한다:
- 알파 값이, 상이한 알파 이미지 블록에 적합한 2개의 잠재적 압축 및 압축 해제 동작 모드에 접근하는 융통성으로 인해 알파 이미지에 고 품질(피크 신호/잡음비)을 제공하고,
- 디코딩의 하드웨어 구성이 매우 단순하며,
- 인코더 및 디코더는 또한 비알파 이미지 블록 및 비알파 이미지를 관리하기 위해 쉽게 확장될 수 있으며,
- 또한, 저 클록 주파수로 단말기에서 구현을 가능하게 하는 인코딩이 매우 빠르며,
- 컴퓨터상에서 실행 가능한 속도로 철저한(exhaustive) 인코딩이 가능하며,
- 인코딩된 이미지 데이터는 제한된 메모리 용량 및 대역폭을 가진 신 클라이언트에 적절한 사이즈를 갖는다.
본 발명에 의해 제공되는 다른 이점은 본 발명의 실시예에 대한 아래의 설명을 판독할 시에 알게 될 것이다.
본 발명은, 본 발명의 추가적인 목적 및 이점과 함께, 첨부한 도면과 관련하여 다음의 설명을 참조함으로써 최상으로 이해될 수 있다.
도 1은 본 발명에 따른 이미지 인코딩 방법의 실시예를 도시한 흐름도이다.
도 2A 및 2B는 본 발명에 따른 이미지 블록의 실시예를 도시한 것이다.
도 3A 내지 3C는 이미지 블록의 압축된 리프리젠테이션의 실시예를 도시한 것이다.
도 4는 도 1의 이미지 인코딩 방법의 부가적인 단계를 도시한 흐름도이다.
도 5는 도 1의 알파 코드 워드 결정 단계를 더욱 상세히 도시한 흐름도이다.
도 6은, 색 코드 워드를 결정하고, 밀도 코드 워드를 제공하며, 도 1의 밀도 인덱스 시퀀스를 제공하는 단계를 더욱 상세히 도시한 흐름도이다.
도 7은 본 발명에 따른 이미지 디코딩 방법을 도시한 흐름도이다.
도 8은 도 7의 이미지 디코딩 방법의 부가적인 단계를 도시한 흐름도이다.
도 9는 도 7의 색 리프리젠테이션 생성 단계를 더욱 상세히 도시한 흐름도이다.
도 10은, 변경자 세트를 제공하고, 변경자를 선택하며, 밀도를 변경하고, 도 7의 알파 값을 생성시키는 단계를 더욱 상세히 도시한 흐름도이다.
도 11은 본 발명에 따라 이미지 인코더 및 디코더를 가진 사용자 단말기의 일례를 개략적으로 도시한 것이다.
도 12는 본 발명에 따른 이미지 인코더의 실시예를 개략적으로 도시한 블록 도이다.
도 13은 본 발명에 따른 이미지 인코더의 다른 실시예를 개략적으로 도시한 블록도이다.
도 14는 본 발명에 따른 블록 인코더의 실시예를 개략적으로 도시한 블록도이다.
도 15는 도 14의 블록 인코더의 색 양자화기를 더욱 상세히 개략적으로 도시한 블록도이다.
도 16은 도 14의 블록 인코더의 밀도 양자화기를 더욱 상세히 개략적으로 도시한 블록도이다.
도 17은 도 14의 블록 인코더의 알파 양자화기를 더욱 상세히 개략적으로 도시한 블록도이다.
도 18은 도 14의 블록 인코더의 인덱스 선택기를 더욱 상세히 개략적으로 도시한 블록도이다.
도 19는 본 발명에 따른 이미지 디코더의 실시예를 개략적으로 도시한 블록도이다.
도 20은 본 발명에 따른 이미지 디코더의 다른 실시예를 개략적으로 도시한 블록도이다.
도 21는 본 발명에 따른 블록 디코더의 실시예를 개략적으로 도시한 블록도이다.
도 22A 및 22B는 본 발명에 따른 블록 디코더의 실시예를 개략적으로 도시한 하드웨어 블록도이다.
도 23은 도 22A 및 22B에 이용된 비트 확장자(extender)의 제 1 버전의 실시예를 더욱 상세히 도시한 하드웨어 블록도이다.
도 24는 도 22A 및 22B에 이용된 비트 확장자의 제 2 버전의 실시예를 더욱 상세히 도시한 하드웨어 블록도이다.
도 25는 도 22A 및 22B의 클램퍼(clamper)의 실시예를 더욱 상세히 도시한 하드웨어 블록도이다.
도 26은 도 22A 및 22B의 테이블 룩업(look-up)의 실시예를 더욱 상세히 도시한 하드웨어 블록도이다.
도 27은 도 22A 및 22B의 테이블 룩업의 다른 실시예를 더욱 상세히 도시한 하드웨어 블록도이다.
도면을 통해, 동일한 참조 문자는 대응하거나 유사한 요소에 이용될 것이다.
본 발명은 이미지 및 그래픽 처리에 관한 것으로서, 특히, 알파 이미지를 인코딩 또는 압축하고, 인코딩된(압축된) 알파 이미지를 디코딩하는 또는 압축 해제하는 것에 관한 것이다.
일반적으로, 본 발명에 따르면, 이미지 인코딩 중에, 이미지는 다수의 이미지 블록으로 분해되거나 분할된다. 그 후, 이와 같은 각 이미지 블록은, 이미지 요소 관련 특성, 특히, 어떤 색 및 관련 알파 또는 투명성 값을 가진 다수의, 즉 2 이상의 이미지 요소를 포함한다. 그 후, 이미지 블록은 이미지의 인코딩된 리프리 젠테이션을 생성하기 위해 인코딩되거나 압축된다.
인코딩된 이미지가 스크린상에 디스플레이될 수 있거나, 인코딩된 이미지와 관련된 기하학적 프리미티브(primitive)가 렌더링되면, 인코딩된 이미지 블록의 관련 이미지 요소는 식별되어 디코딩된다. 그 후, 이들 디코딩된 이미지 요소는 디스플레이를 위한 원래의 이미지의 디코딩된 리프리젠테이션을 생성하기 위해 이용될 수 있거나, 기하학적 프리미티브를 렌더링하기 위해 이용될 수 있다.
본 발명은, 포토, 텍스트 및 "합성" 이미지와 같은 3차원(3D) 그래픽 및 이미지와 함께 사용하기 위한 것이며, 이들 모두는, 게임, 3D 맵 및 화면(scene), 3D 메시지, 예컨대, 애니메이티드(animated) 메시지, 스크린 세이버, 인간-기계 인터페이스(MMI) 등과 같은 애플리케이션에 이용될 수 있지만, 이들로 제한되지 않는다. 따라서, 본 발명은 또한 다른 타입의 이미지 또는 그래픽, 예컨대, 1차원(1D), 2차원(2D) 또는 3D 이미지를 인코딩하는데 사용될 수 있다.
본 발명에서, 표현 "이미지 요소"는, 이미지 블록 또는 이미지 블록의 인코딩된(압축된) 리프리젠테이션의 요소라 한다. 이 이미지 블록은 이미지 또는 텍스처의 일부에 대응한다. 따라서, 본 발명에 따르면, 이미지 요소는 (1D, 2D 또는 3D) 텍스처의 텍셀 또는 (1D, 2D 또는 3D) 이미지의 텍셀이다. 이에 대응하여, 이미지 요소는 3D 텍스처 또는 이미지의 복셀이다. 일반적으로, 이미지 요소는, 색 값 및 알파 또는 투명성 값과 같은 어떤 이미지 요소 관련 특성을 특징으로 한다. 또한, 다음에는, 용어 "이미지"는, 본 발명에 의해 인코딩 및 디코딩될 수 있는 어떤 1D, 2D 또는 3D 이미지 또는 텍스처를 나타내는데 이용된다.
이미지 처리의 기술 분야에서, 알파 값은 이미지 요소의 투명성 특성을 나타내는데 이용된다. 일반적으로, 0≤alpha-value≤1 및 0≤transparency≤1이면, 알파 값은 통상적으로 alpha-vale=1-transparency로서 정의된다. 따라서, 1의 알파 값은, 이 정의에서, 불투명성(투명성이 0임)에 대응하는 반면에, 0의 알파 값은 완전 투명성(투명성이 1임)을 나타낸다. 이 알파 값의 정의가 본 기술 분야에서 가장 일반적일지라도, 본 발명은 이것에 제한되지 않는다. 사실상, 이미지 요소의 알파 값은, 본 발명에 따라, 사용된 알파 값의 투명성 관계에 의존하는 이미지 요소의 어떤 투명성 특성을 나타낼 수 있다.
일반적으로, 이미지의 이미지 요소의 알파 값은, 통상적으로 완전한 투명성을 나타내는 최소 알파 값, 예컨대, 0 또는 0.0에서, 통상적으로 비투명성 또는 불투명성을 나타내는 최대 알파 값, 예컨대, 255 또는 1.0까지의 값을 취할 수 있다. 이들 제한치 간의 알파 값은 반투명성을 나타낸다. 이미지는, 비투명성을 나타내는 사전 정해진 값, 예컨대, 상술한 최대값과 상이한 관련된 알파 값을 가진 하나 이상의 이미지 요소를 포함할 경우에 통상적으로 소위 "알파 이미지"로서 정의된다. 어떤 애플리케이션에서, 이미지는, 이미지의 적어도 최소량의 다수의 이미지 요소가 사전 정해진 비투명성 값과 상이한 각각의 알파 값을 가질 경우에 알파 이미지로서 분류된다. 이들 양방의 구성에서, 비투명성을 나타내는 사전 정해진 구간의 다수의 값, 예컨대, 213-255 또는 0.84-1.0은 단일의 사전 정해진 비투명성 값 대신에 이용될 수 있다. 이와 같은 경우에, 하나 이상의 이미지 요소 또는 최소량의 이미지 요소의 알파 값이 비투명성 구간 내에 있지 않으면, 이미지는 알파 이미지로서 분류되거나, 소위 비알파 이미지 또는 알파가 없는 이미지이다.
이에 대응하여, 이미지 요소를 포함하는 하나 이상의 이미지 블록 또는 적어도 최소량의 이미지 요소가 사전 정해진 비투명성 값과 상이한 알파 값을 가지거나 비투명성 구간 내에 있지 않을 경우에, 이미지 블록은 통상적으로 "알파 이미지 블록"으로 분류된다. 비알파 또는 알파가 없는 블록은 비투명성 값과 동일하거나 비투명성 구간 내의 알파 값을 가진 이미지 요소를 포함한다.
본 발명에 의해, 이들의 각각의 알파 값 이외에 "알파 이미지"의 이미지 요소가 또한 관련된 색 값을 갖는 것을 알 수 있다. 따라서, 본 발명의 알파 이미지는 소위 RGBA 이미지이다. 또한, 본 발명에 따른 알파 이미지는 알파 이미지 블록 또는 알파 및 비알파 이미지 블록의 결합만을 포함할 수 있다.
이미지 인코딩
도 1은 본 발명에 따라 알파 이미지를 인코딩하는 (손실이 많은) 방법의 실시예의 흐름도이다. 제 1 단계(S0)에서, 이미지는 많은 이미지 블록으로 분해되거나 분할된다. 그 후, 이와 같은 각 이미지 블록은 다수의 이미지 요소를 포함한다. 본 발명의 바람직한 실시예에서, 이미지 블록은 8개의 이미지 요소(픽셀 또는 텍셀)를 포함하고, 2m×2n 이미지 요소의 사이즈를 갖는데, 여기서, m=3-n이고, n=0, 1, 2, 3이다. 더욱 바람직하게는, n은 1 또는 2이다. 도 2A 및 2B는 본 발명에 따른 8개의 이미지 요소(610)를 가진 이미지 블록(600)의 2개의 예를 개략적으로 도 시한 것이다. 도 2A에서, 높이는 2개의 이미지 요소(610)이고, 폭은 4개의 이미지 요소(610)이며, 즉, m=1, n=2인 반면에, 도 2B에서의 이미지 블록(600)의 경우에는 m=2, n=1이다. 따라서, 3D 이미지를 압축하면, 바람직한 이미지 블록 사이즈는 2×2×2 이미지 요소(복셀)이다. 그러나, 본 발명은 8개의 이미지 요소를 가진 블록으로 제한되지 않고, 선택적으로 8개 미만 또는 이상의 이미지 요소, 예컨대, 4×4 이미지 요소를 가진 이미지 블록과 관련하여 이용될 수 있다.
도 1에서, 전체 이미지 블록은 단계(S0)에서 (비중첩(non-overlapping)) 이미지 블록으로 분해되는 것이 바람직하다. 그러나, 어떤 애플리케이션에서는, 이미지의 일부만이 인코딩되어, 이 일부만이 이미지 블록으로 분해된다.
단계(S1)에서, 알파 코드 워드는 현재의 이미지 블록을 위해 결정된다. 이 알파 코드 워드는, 블록의 이미지 요소의 적어도 하나의 알파 값을 나타내는 다수의 양자화된 알파 값을 포함한다. 다음 단계(S2)에서, 이미지 블록에 이용할 알파 블록 압축 또는 인코딩 모드는, 결정된 알파 코드 워드에 기초하여, 바람직하게는, 코드 워드의 하나 이상의 양자화된 알파 값에 기초하여 선택된다. 이 모드 선택의 제 1 구성에서, 단계(S2)는 양자화된 알파 값의 비교에 기초하여 실행된다. 따라서, 양자화된 알파 값이 상이하면, 여기서 PAA(Packman-Alpha-Alpha) 모드를 나타내는 제 1 알파 블록 압축 모드는 블록을 위해 선택되는 반면에, 양자화된 알파 값이 동일하면, 여기서, PAT(Packman-Alpha-Twotimer) 모드를 나타내는 제 2 알파 블록 압축 모드가 대신 이용된다. 이 모드 선택의 제 2 구성에서, 양자화된 알파 값 중 하나는 결합된 알파 코딩 및 모드 리프리젠트 기능성을 갖는다. 이와 같은 경우 에, 이 모드 관련 양자화된 알파 값의 실제 비트 패턴은 이용할 압축 모드에 신호를 보낸다. 예컨대, 이 모드 관련 양자화된 알파 값이 00bin, 01bin 또는 10bin이면, PAA 압축 모드가 이용되거나, (11bin) PAT 모드가 이용된다.
그러나, 바람직하게는, 양방의 압축 모드가 결과적으로, 알파 코드 워드 이외에, 색 코드 워드, 밀도 코드 워드 및 인덱스 시퀀스를 포함하는 압축된 이미지 블록 리프리젠테이션을 생성한다. 게다가, 비트의 수를 고려하여 2개의 상이한 인코딩된 블록의 생성된 비트 사이즈는 동일한 것이 바람직하다.
PAA 압축 모드에서, 상이한 알파 값은, 알파 코드 워드 및 인덱스 시퀀스에 기초하여, 블록의 이미지 요소에 지정될 수 있다. 대조적으로, PAA 압축 모드에 대한 상보 또는 보조 모드로서 간주되는 PAT 모드에서는, 단일 알파 값이, 알파 코드 워드에 기초하여, 블록의 모든 이미지 요소에 지정된다. 그러나, PAT 압축 모드는, 이미지 요소에 대한 보다 고 휘도(밀도) 해상도와 함께, 이 보다 저 알파 해상도를 보상한다. 결과로서, PAA 압축 모드는, 특히 상이한 알파 값의 이미지 요소를 가진 이미지 블록을 압축하는데 적합하다. PAT 압축 모드는 유사한 알파 값을 가진 이미지 블록에 이용되어, (보다 저 알파 해상도를 희생할지라도) PAA 모드보다 양호한 블록의 휘도 성분을 보존하는 것이 바람직하다.
PAA 모드 또는 제 1 알파 블록 압축 모드에 대해 먼저 기술될 것이다. 단계(S3)에서, 색 코드 워드는 이미지 블록을 위해 결정된다. 이 색 코드 워드는 이미지 블록의 이미지 요소의 색의 리프리젠테이션이다. 바람직한 실시예에서, 색 코 드 워드는 블록의 이미지 요소의 평균 색의 리프리젠테이션이다. 색은, RGB (적색, 녹색, 청색) 색, YUV 공간 또는 YCrCb 공간 내의 색, 또는 이미지 및 그래픽 처리 및 관리 시에 이용되는 어떤 다른 색 공간 내의 색일 수 있다. 색 코드 워드는 원래의 이미지와 동일한 색 포맷(공간) 내에 있는 것이 바람직하다. 그러나, 어떤 경우에는, 이미지를, 제 1 색 공간 내의 색 코드 워드 및 제 2 상이한 색 공간 내의 원래의 이미지를 가진 상이한 색 포맷으로 변환하는 것이 유용할 수 있다. 색 코드 워드는 9 비트 색 리프리젠테이션 시퀀스인 것이 바람직하다. 예컨대, RGB 색 코드 워드는, 적색 성분에 대한 3 비트, 녹색 성분에 대한 3 비트 및 청색 성분에 대한 3 비트를 포함한다.
그 후, 단계(S4)에서, 밀도 코드 워드가 제공된다. 이 밀도 코드 워드는 이미지 블록의 이미지 요소의 밀도를 변경하기 위해 (디코딩 중에) 이용되는 다수의 밀도 변경자 세트의 리프리젠테이션이다.
본 발명의 바람직한 실시예에서, 밀도 코드 워드는 밀도 변경자 세트를 식별하는 인덱스 또는 리프리젠테이션이다. 그 후, 이 인덱스는, 수개의 상이한 밀도 변경자 세트를 포함하는 밀도 테이블 또는 코드북(codebook)의 세트를 식별하거나 암시(point)한다. 각 세트는 2 이상의 밀도 변경자 값, 바람직하게는 4 이상의 변경자 값을 포함한다. 바람직한 실시예에서, 한 세트의 변경자 값은 수학적으로 보수 값(complementary value)이다. 즉, 각 세트는 대칭인 것이 바람직하다.
바람직하게는, 밀도 테이블은, 표면을 매끄럽게 변경하는 리프리젠테이션을 가능하게 하는데 적합한 적은 밀도 변경자 값을 포함하는 세트를 포함한다. 게다 가, 이 테이블은 또한 예리한(sharp) 에지(edge)의 리프리젠테이션을 가능하게 하는데 적합한 큰 밀도 변경자 값을 포함하는 세트를 포함하는 것이 바람직하다.
이 테이블 내의 세트의 실제 밀도 변경자 값은, 임의 값으로 개시하여, 당업자에게 공지되어 있는, LBG-알고리즘 (Linde, Buzo 및 Gray) [2], 시뮬레이트 어닐링(simulated annealing) 및 좌표 서치(coordinate search)의 버전과 같은 많은 상이한 최적 기법 및 알고리즘을 이용하여 이들 값을 최적화시킴으로써 발견될 수 있다. 상이한 타입의 적은 이미지는, 알파 이미지 또는 알파 및 비알파 이미지의 양방만을 포함하는 트레이닝 데이터(training data)로서 이용될 수 있다.
덜 비싼 밀도 테이블의 하드웨어 구현을 행하기 위해, 한 세트의 밀도 변경자는 상술한 바와 같이 대칭으로 될 수 있고, 및/또는 주어진 세트의 밀도 변경자는 인수, 예컨대 2만큼 변경되는 다른 세트의 밀도 변경자의 카피(copy)일 수 있다.
테이블 1은, 각 세트에서 4개의 변경자 값을 가진 밀도 변경자의 16 세트를 포함하는 밀도 테이블의 일례를 도시한 것이다.
Figure 112006042476687-pct00001
테이블 1에서, 밀도 변경자 세트 5-8는 2의 인수와 곱해지는 세트 1-4의 카피이다.
밀도 테이블이 많아야 8개의 상이한 밀도 변경자 세트를 포함하면, 밀도 코드 워드는, 바람직하게는, 테이블의 코드 워드 001bin에 대한 (8) 세트 중 하나, 예컨대 [-32, -9, 9, 32]을 식별하는 3 비트 인덱스 (000bin - 111bin)이다. 이 세트 내의 변경자 값의 신중한 선택으로 인해, 전체 테이블 1은 8의 변경자 값만을 이용하여 재구성될 수 있고, 나머지 24의 값은 그로부터 계산될 수 있다.
본 발명은, 테이블 1의 사용으로 제한되지 않고, 다른 밀도 변경자 세트 및 값을 가진 다른 테이블을 이용할 수 있다. 또한, 테이블에서 8 이상 또는 미만의 세트의 경우, 밀도 코드 워드의 사이즈는 변경되어야 한다. 예컨대, 테이블이 2개의 (3-4 또는 8 이상) 밀도 변경자 세트를 포함하면, 밀도 코드 워드 사이즈는 1 비트(2 비트, 또는 4(또는 그 이상) 비트)로 제한되어야 한다. 게다가, 세트당 밀 도 변경자 값의 수의 4개가 상이하고, 예컨대 5개의 값은 세트마다 이용되어, [-32, -9, 0, 9, 32]의 예를 제공한다.
테이블에서의 세트의 밀도 값은, 상술한 바와 같이, 트레이닝 데이터로서 수개의 상이한 타입의 이미지를 이용하여 결정된다. 그러나, 특정 이미지 타입만이 인코딩되면, 변경자 값은, 그 이미지 타입에 대응하는, 즉, 특정 이미지 타입에 전용한 밀도 테이블을 제공하는 트레이닝 데이터를 이용하여 결정된다. 또한, 특정 이미지에 적합한 밀도 변경자 값을 가진 밀도 테이블을 가질 수 있다. 이들 경우에, 즉, 이미지 또는 이미지 타입에 전용한 테이블의 경우에는, 인코딩된 이미지 블록의 압축된 파일에 테이블의 밀도 변경자 값을 포함하거나 그들을 관련시킬 필요가 있다.
2개의 상이한 알파 블록 압축 모드가 본 발명에 따라 사용되므로, 단일 밀도 테이블은 양방의 모드에 사용된다. 그러나, 어떤 구성에서는, PAA 모드에 따라 압축되는 알파 이미지 및 블록에 적합한 제 1 밀도 테이블 및, PAT 모드에 따라 압축되는 이미지 및 블록에 대한 제 2 상이한 밀도 테이블을 구성하여 이용하는 것이 더욱 유리하다. 또한, 공용 밀도 테이블은 알파 및 비알파 이미지의 양방에 이용된다. 대부분의 애플리케이션에서, 비알파 이미지를 압축할 시에는 "비알파" 밀도 테이블을 이용하고, 알파 이미지를 압축할 시에는 하나 이상의 상이한 전용 "알파" 밀도 테이블을 이용하는 것이 더욱 유리하며, 이는 아래에 더 기술될 것이다.
게다가, 밀도 코드 워드는, 테이블에서 밀도 변경자 세트로의 포인터(pointer)일 필요는 없지만, 실질적으로 밀도 변경자 세트 자체일 수 있으며, 예 컨대, 9 및 32와 같은 2개의 변경자 값을 포함하며, 여기서, -9 및 -32와 같은 다른 변경자 값은 이들 2개의 값으로부터 결정될 수 있다. 선택적으로, 사용된 밀도 변경자 세트는, [-ka, -a, a, ka] 또는 [-k2a, -k1a, k1a, k2a]에 따를 수 있으며, 여기서, a는 0이거나 양의 정수이며, k, k1 및 k2는 증배율이다. 이와 같은 경우에, 밀도 코드 워드만이 값 a를 포함할 필요가 있고, 모든 나머지 3개의 값은, k 또는 k1 및 k2가 미리 정해진 증배율일 경우에 그로부터 계산될 수 있다.
단계(S4)에서, 밀도 코드 워드가 제공되면, 다음 단계(S5)는 이미지 블록의 이미지 요소에 대한 밀도 인덱스 또는 리프리젠테이션을 선택한다. 이와 같은 각 밀도 인덱스는, 단계(S4)에서 제공되는 밀도 변경자 세트로부터의 하나의 밀도 변경자 값과 관련된다. 환언하면, 밀도 인덱스에 의해, 블록의 적어도 하나의 이미지 요소의 특정 서브세트에 이용할 세트의 밀도 변경자가 식별된다.
-32, -9, 9, 32와 같은 4개의 변경자 값을 포함하는 밀도 변경자 세트의 경우에, 밀도 인덱스는 이들 4개의 값 중 하나를 식별하는 2 비트 시퀀스이다.
이 PAA 압축 모드의 실시예에서, 밀도 인덱스는 블록의 다수의 이미지 요소, 바람직하게는, 2개의 이미지 요소, 더욱 바람직하게는, 2개의 이웃한 이미지 요소의 서브세트와 관련되어 거기에 지정된다. 도 2A 및 2B에서, 이와 같은 2개의 이웃한 이미지 요소의 서브세트는, 도 2A 또는 2B의 이미지 요소(610A 및 610B) 또는 도 2A 또는 2B의 이미지 요소(610A 및 610C)로 나타낸다. 이것은, 휘도 해상도가 각 이미지 요소가 자신의 밀도 인덱스와 관련될 경우에 비해 절반으로 된다는 것을 의미한다.
이 PAA 압축 모드의 다른 실시예에서, 블록의 각 이미지 요소는 자신의 밀도 인덱스, 바람직하게는 1 비트 밀도 인덱스와 관련된다. 결과로서, 밀도 변경자 세트로부터의 밀도 변경자의 서브세트, 바람직하게는 2개만이 압축된 블록의 사이즈가 동일하게 남을 경우에 각 이미지 요소에 인덱스될 수 있다. 변경자 세트가 4개의 상이한 변경자 값, 예컨대, -32, -9, 9, 32를 포함하는 경우에, 이 변경자의 서브세트는 최소 및 최대 변경자, 즉, -32 및 32를 포함한다. 선택적으로, 이 서브세트는 값 -9 또는 9, 또는 바람직하게는 이 세트로부터의 2개의 변경자 값의 어떤 다른 결합을 포함한다. 이 PAA 압축 모드의 실시예에서, 각 이미지 요소는 각각의 밀도 인덱스와 관련된다. 그러나, 이것은 통상적으로 블록의 이미지 요소에 대해 감소된 량의 이용 가능한 변경자 값을 희생시킨다.
본 발명의 다른 실시예에서, 상술한 2개의 실시예는 결합된다. 이와 같은 경우에는, PAA 모드에서, 밀도 인덱스를 각 쌍의 이미지 요소에 지정하든, 개별적으로 이미지 요소에 지정하든 블록에 기초하여 선택이 있을 것이다. 그리고 나서, 밀도 모드 인덱스는 생성되어, 압축된 블록 리프리젠테이션에 부가된다. 예컨대, 이 밀도 모드 인덱스가 0bin (1bin)이면, 밀도 인덱스는 이미지 요소 쌍에 지정되고, 한 세트의 모든 변경자 값은 이용 가능하다. 그러나, 밀도 모드 인덱스가 1bin (0bin)이면, 밀도 인덱스는 개별적으로 이미지 요소에 지정되고, 변경자 값의 서브세트만이 이용 가능하다.
전용 밀도 모드 인덱스의 용도에 대한 선택적인 구성에서, 사용된 밀도 테이블은 변경된다. 이와 같은 경우에, 포함된 변경자 세트의 일부는 최대수의 변경자 값, 바람직하게는 4의 값인 반면에, 다른 변경자 세트는 이 최대수 미만의 변경자 값, 바람직하게는 2의 값을 포함한다. 그 후, 상기 테이블 1은 아래의 테이블 2로 대체될 수 있다.
Figure 112006042476687-pct00002
따라서, 011bin 또는 111bin의 밀도 코드 워드는, 선택적이고 비제한적인 예에서, 1bin의 밀도 모드 인덱스에 대응하며, 즉, 밀도 인덱스는 개별적으로 이미지 요소에 지정되고, 이용 가능한 밀도 변경자 값은 011bin(111bin)의 밀도 코드 워드에 대해 -30 및 30 (-127 및 127)이다. 나머지 밀도 코드 워드는 제각기 4개의 변경자 값을 포함하는 변경자 세트와 관련되어, 밀도 인덱스가 이미지 요소의 쌍에 지정되었음을 신호를 보낸다.
변경자 세트의 테이블 2의 절반의 변경된 버전에서, 밀도 코드 워드는 제 1 밀도 모드와 관련되고, 나머지 절반은 제 2 밀도 모드와 관련된다. 그러나, 제 1 밀도 모드(쌍으로 된 인덱스 지정 및 최대량의 변경자 값)는 PAA 모드에 따라 압축된 대부분의 알파 블록에 이용되고, 밀도 코드 워드 및 변경자 세트의 대부분은, 테이블 2에 도시된 바와 같이, 제 2 밀도 모드에 비해 이런 제 1 밀도 모드와 관련되는 것이 바람직하다.
바람직하게는, 단계(S5)는, 이용된 구성에 따라, 라인(L1)에 의해 개략적으로 도시되는 이미지 블록의 이미지 요소의 모든 서브세트, 바람직하게는 모든 쌍의 이웃한 이미지 요소 또는 모든 이미지 요소에 대해 반복된다.
다음 단계(S6)는 이미지 블록의 이미지 요소에 대한 알파 인덱스 또는 리프리젠테이션을 선택한다. 이와 같은 각 알파 인덱스는, 단계(S1)에서 결정된 알파 코드 워드로부터의 하나의 양자화된 알파 값과 관련된다. 환언하면, 알파 인덱스에 의해, 블록의 특정 이미지 요소에 이용할 알파 값이 식별된다. PAA 압축 모드의 바람직한 구성에서, 알파 코드 워드는 2개의 양자화된 알파 값 αA 및 αB을 포함하며, 이는 제각기 2 비트 양자화된 값인 것이 바람직하다. 결과로서, 각 양자화된 알파 값은 잠재적으로 4개의 상이한 알파 값 세트에서의 하나의 알파 값을 나타낼 수 있다. 예컨대, 이 알파 값의 세트는 0, 85, 170, 255, 또는 이에 대응하여, 0.0, 0.3333, 0.6667, 1.0이라고 하면, 00bin의 양자화된 알파 값은 0 (0.0)을 나타내고, 01bin은 85 (0.3333)을 나타내며, 10bin은 170 (0.6667)을 나타내고, 11bin은 255 (1.0)을 나타낸다.
제 1 실시예에서, 블록의 각 이미지 요소는 각각의 알파 인덱스와 관련된다. 그러나, 본 발명의 바람직한 실시예에서, 압축된 블록 리프리젠테이션의 전체 사이즈를 보다 작게 함으로써, 블록의 이미지 요소의 서브세트는 (제 1, αA, 또는 제 2, αB 양자화된 알파 값으로부터 선택되는) 사전 정해진 양자화된 알파 값과 관련된다. 결과로서, 이(이들) 이미지 요소에 대해서는 알파 인덱스의 선택 또는 지정이 행해질 필요가 없다. 예컨대, 제 1(최종) 이미지 요소는 항상 제 1(또는 제 2) 양자화된 알파 값과 관련된다. 그 후, 인덱스 시퀀스는 이 제 1(최종) 이미지 요소에 대한 알파 인덱스를 획득할 필요가 없다. 결과로서, 전체적으로 8개의 이미지 요소를 가진 이미지 블록의 경우에 시퀀스는 7개의 이미지 요소 관련 알파 인덱스만을 포함할 것이다. 본 발명에 의해, 하나 이상의 이미지 요소가 양자화된 알파 값과 사전 관련되어 있음을 알 수 있다. 양자화된 알파 값이, 바람직하게는 1 대 1(one-to-one)에 기초하여 알파 값을 나타내므로, 알파 값을 양자화된 알파 값과 관련시키는 것은 또한 알파 인덱스를 알파 값과 관련시키는 것을 포함한다.
바람직하게는, 단계(S6)는, 라인(L2)에 의해 개략적으로 도시되는 블록의 이미지 요소, 더욱 바람직하게는 사전 정해진 양자화된 알파 값과 관련된 이미지 요소를 배제한 모든 이미지 요소에 대해 반복된다.
단계(S1 내지 S6)의 압축의 결과로서, 압축된 이미지 블록, 또는 더욱 정확히는 이미지 블록의 압축된(인코딩된) 리프리젠테이션이 생성된다. 이와 같이 압축된 블록 리프리젠테이션(700)은 도 3A에 도시된다. 리프리젠테이션(700)은, 3개의 색 성분 R(720A), G(720B) 및 B(720C)을 포함하는 색 코드 워드(720), 밀도 코드 워드(730), 2개의 양자화된 알파 값 αA(740A) 및 αB(740B)을 포함하는 알파 코드 워드(740) 및 이미지 요소 인덱스의 시퀀스 또는 비트맵(750)을 포함한다. 이 인덱스 시퀀스(750)는 알파 인덱스(750A)를 가진 제 1 서브시퀀스 및, 밀도 인덱스(750B)를 가진 제 2 서브시퀀스를 포함하는 것이 바람직하다. 게다가, 압축된 리프리젠테이션(700)은 알파 블록 인덱스(710)를 포함하여, 이미지 블록을 알파 이미지 블록으로서 식별하는 것이 바람직하다. 이미지만이 소위 알파 블록을 포함하는 경우에, 이 알파 블록 인덱스(710)는 생략된다.
알파 블록 인덱스(710), 색 성분(720A 내지 720C)을 포함하는 색 코드 워드(720), 밀도 코드 워드(730), 양자화된 알파 값(740A 및 740B)을 포함하는 알파 코드 워드(740) 및, 압축된 이미지 블록(700)의 서브시퀀스(750A 및 750B)를 포함하는 인덱스 시퀀스(750)에 대한 상호 순서는 도면에 도시된 것과 상이할 수 있다. 또한, 코드 워드 및 인덱스 시퀀스는 연속적으로 레이 아웃(lay out)될 필요가 없다.
이미지 블록이 8개의 이미지 요소(도 2A 및 2B 참조)를 포함하고, 각 밀도 인덱스가 2 비트이며, 밀도 인덱스가 각 이미지 요소 쌍에 지정되면, 밀도 인덱스 서브시퀀스(750B)의 사이즈는 8 비트이다. 이런 8 비트의 동일한 사이즈는 또한, 블록의 각 이미지 요소와 관련된 1 비트 밀도 인덱스를 이용할 시에 획득된다. 또한, 알파 코드 워드(740)의 대응하는 사이즈가 4 비트이고, 알파 인덱스 서브시퀀스(750A)가 8개의 이미지 요소 중 7개에 대한 1 비트 알파 인덱스이며(이들 이미지 요소 중 하나는 제 1(또는 제 2) 양자화된 알파 값과 관련되어 사전 정해져 있음), 결과적으로 서브시퀀스(750A)에 대해 7 비트를 생성시킴을 추정한다. 색(720) 및 밀도(730) 코드 워드의 사이즈가 제각기 9 비트 및 3 비트이고, 알파 블록 인덱스(710)가 1 비트이면, 이미지 블록의 인코딩된 리프리젠테이션(700)의 전체 사이즈는 32 비트이고, 4 bpp의 압축율이 획득된다. 이런 리프리젠테이션(700)의 작은 사이즈는, 통상적으로 16 비트 또는 32 비트의 메모리 버스를 가진 이동 유닛과 같은 신 클라이언트에 적합하다. 결과로서, 하나 또는 많아야 2번의 메모리 접근만이 인코딩된 리프리젠테이션(700)을 판독할 필요가 있다.
도 1에서, 단계(S2)의 모드 선택이 PAT 모드 또는 제 2 알파 블록 압축 모드가 대신 선택됨을 나타내면, 방법은 단계(S7)로 계속한다. 이 단계(S7)에서, 색 코드 워드는 블록의 이미지 요소를 위해 결정된다. 이 단계(S7)는 기본적으로 단계(S3)에 대응하며, 더 이상 기술되지 않는다. 다음의 단계(S8)에서, 밀도 코드 워드는 단계(S4)와 유사한 이미지 블록에 제공된다. 그러나, 상이한 밀도 테이블이 2개의 알파 블록 압축 모드에 이용되는 경우에, 단계(S8)에 제공된 밀도 코드 워드는 PAT 압축 모드에 대한 전용 테이블을 이용하여 획득되는 반면에, 단계(S4)에 제공된 밀도 코드 워드는 이 PAA 모드에 적절한 테이블을 이용하여 획득된다.
밀도 코드 워드가 단계(S8)에서 제공되면, 다음 단계(S9)는 이미지 블록의 이미지 요소에 대한 밀도 인덱스 또는 리프리젠테이션을 선택한다. 이와 같은 각 밀도 인덱스는, 단계(S8)에 제공된 밀도 변경자 세트로부터의 하나의 밀도 변경자 값과 관련된다. 이 PAT 압축 모드에서, 바람직하게는 각 이미지 요소는 밀도 인덱 스와 관련되어, 8개의 이미지 요소를 가진 이미지 블록에 전체 8개의 밀도 인덱스를 제공한다.
바람직하게는, 단계(S9)는, 라인(L3)에 의해 개략적으로 도시되는 블록의 모든 이미지 요소에 대해 반복된다.
이 PAT 압축 모드에서는, 이미지 요소에 알파 인덱스가 제공되지 않는다. 이것은, 모든 이미지 요소가 동일한 양자화된 알파 값 (및 알파 값)과 관련되어 있기 때문이다. PAA 압축 모드에서, 바람직하게는, 알파 코드 워드는 2개의 양자화된 알파 값 αA 및 αB을 포함하며, 이들의 각각은 제각기 2개의 비트 αA0, αA1 및 αB0, αB1을 포함하는 것이 바람직하다. 그러나, 이 PAT 압축 모드의 제 1 구성에서, αA0=αB0 및 αA1=αB1과, 여기서 "유용한" 또는 데이터 반송 양자화된 알파 값을 나타내는 양자화된 알파 값 중 하나만이 블록의 디코딩 중에 이용될 것이다. 선택적인 구성에서, αA는 모드 관련 양자화된 알파 값이고, 즉, 예컨대, 11bin의 PAT 특정 비트 패턴과 동일하다. 그리고 나서, 나머지 양자화된 알파 값αB은 유용한 양자화된 알파 값일 것이다.
이런 유용한 양자화된 알파 값의 모든 비트는 알파 값 리프리젠테이션을 코딩하기 위해 이용된다. 선택적인 실시예에서는, 유용한 양자화된 알파 값의 1 비트만이 알파 값 리프리젠테이션을 코딩하기 위해 이용될 것이다. 이 후자의 경우에, 양자화된 알파 값 및 알파 코드 워드는 통상적으로 2개의 가능한 알파 값, 예컨대, 85 (0.3333) 또는 170 (0.6667) 중 하나만을 나타낼 수 있다.
유용한 양자화된 알파 값 중 1 비트만이 알파 값 리프리젠테이션으로서 이용되는 경우에, 이 양자화된 알파 값의 나머지 비트는 (밀도) 인덱스 시퀀스와 공유되는 것이 바람직하다. 결과로서, 단계(S9)는, 이미지 요소 중 하나, 통상적으로 블록의 제 1 이미지 요소와 관련된 밀도 인덱스의 일부의 비트 값에 따라 알파 코드 워드의 유용한 양자화된 알파 값의 1 비트를 (재)설정함으로써 알파 코드 워드를 변경하는 보조 단계를 포함하는 것으로 간주된다.
단계(S1, S2 및 S7 내지 S9)의 압축의 결과로서, 압축된 이미지 블록이 생성된다. 이와 같이 압축된 블록 리프리젠테이션(700)은 도 3B에 도시된다. 리프리젠테이션(700)은, 3개의 색 성분 R(720A), G(720B) 및 B(720C)을 포함하는 색 코드 워드(720), 밀도 코드 워드(730), 2개의 양자화된 알파 값 αA(740A) 및 αB(740B)을 포함하는 알파 코드 워드(740)를 포함한다. 도면에서, 양자화된 알파 값 αA(740A)은 양자화된 알파 값 αB(750B)의 카피(copy)이다(또는 11bin과 동일하다). 게다가, 유용한 양자화된 알파 값(740B)의 단일 비트 α만이 알파를 위해 이용되므로, 이 구성에서, 나머지 비트는 밀도 인덱스 시퀀스(750)와 공유될 것이다. 도 3A와 마찬가지로, 압축된 블록 리프리젠테이션(700)은 알파 블록 인덱스(710)를 포함하여, 이미지 블록을 알파 이미지 블록으로서 식별하는 것이 바람직하다. 이미지만이 소위 알파 블록을 포함하는 경우에, 이 알파 블록 인덱스(710)는 생략된다.
알파 블록 인덱스(710), 색 성분(720A 내지 720C)을 포함하는 색 코드 워드(720), 밀도 코드 워드(730), 알파 코드 워드(740) 및 압축된 이미지 블록(700) 의 인덱스 시퀀스(750)에 대한 상호 순서는 도면에 도시된 것과 상이할 수 있다. 또한, 코드 워드 및 인덱스 시퀀스는 연속적으로 레이 아웃될 필요가 없다.
이미지 블록이 8개의 이미지 요소(도 2A 및 2B 참조)를 포함하고, 각 밀도 인덱스가 2 비트이며, 밀도 인덱스가 블록의 각 이미지 요소에 지정되면, 밀도 인덱스 시퀀스(750)의 사이즈는 16 비트이며, 그 중 하나는 알파 코드 워드(740)와 공유된다. 또한, 색(720), 밀도(730) 및 알파(740) 코드 워드(740)의 대응하는 사이즈가 제각기 9 비트, 3 비트 및 4 비트이고, 1 비트 알파 블록 인덱스가 이용됨을 추정한다. 이미지 블록의 인코딩된 리프리젠테이션(700)의 전체 사이즈는 32 비트이고, 4 bpp의 압축율이 획득된다.
바람직하게는, 단계(S1 내지 S9)는, (라인(L4)에 의해 개략적으로 도시되는) 단계(S0)의 분해 중에 제공되는 모든 이미지 블록에 대해 반복된다. 그 결과는 압축된 이미지 블록의 시퀀스 또는 파일이다. 생성된 압축 이미지 블록은, 파일에서, 이들 블록이 단계(S0)의 블록 분해 시에 브레이크 다운(break down)되는 것과 동일한 순서로, 좌측에서 우측으로, 상부에서 하부로 순서가 정해진다. 그리고 나서, 이 방법은 종료한다.
2개의 압축 모드의 결과로서, 어떤 경우에, 인코딩된 이미지는 PAA 또는 PAT 압축 모드에만 따라 압축되는 이미지 블록을 포함할 것이다. 그러나, 가장 실제적인 구성의 경우, 인코딩된 이미지는 통상적으로 PAA 모드에 따라 압축되는 어떤 블록 리프리젠테이션 및, PAT 모드에 따라 압축되는 다른 블록 리프리젠테이션을 포함한다.
이미지의 후속 렌더링, 예컨대 디스플레이까지 인코딩된 이미지는 기억을 위한 메모리에 제공된다. 또한, 인코딩된 이미지는, 인코딩된 블록 리프리젠테이션의 신호로서 다른 유닛으로 (무선 또는 유선) 송신하기 위한 송신기에 제공될 수 있다.
동일한 밀도 테이블이 2개의 압축 모드에 이용되면(단계(S4 및 S8)), 도 1의 흐름도에 도시된 압축 방법은, 색 코드 워드의 결정(단계(S3 또는 S7)) 및 밀도 코드 워드의 제공(단계(S4 또는 S8))이 단계(S2)에서 압축 모드를 선택하기 전에 실행되도록 보정될 수 있다. 이와 같은 경우에, PAA 모드의 유일한 단계는 밀도 인덱스 시퀀스(단계(S5)) 및 알파 인덱스 시퀀스(단계(S6)를 제공하는 것이다. 대응하는 PAT 특정 단계는 밀도 인덱스 시퀀스(단계(S9))를 제공하는 것이다.
도 4는 도 1의 이미지 압축 방법의 부가적인 단계를 도시한 흐름도이다. 이 방법은 도 1의 단계(S0)에서 계속한다. 다음 단계(S10)에서, 현재의 이미지는 알파 이미지 또는 비알파 또는 알파가 없는 이미지로서 인코딩되는 지가 결정된다. 이 선택은 이미지와 관련된 글로벌 알파 이미지 인덱스에 기초한다. 선택적으로, 이 선택은 알파 값의 조사 또는 이미지의 이미지 요소의 특성에 기초한다. 따라서, 적어도 하나의 이미지 요소 또는 적어도 최소량의 다수의 이미지 요소의 알파 값이 사전 정해진 비투명성 값과 상이하거나, 비투명성 구간 내에 있지 않으면, 이미지는 알파 이미지로서 분류되거나, 비알파 이미지이다.
단계(S10)에서 이미지가 알파 이미지로서 인코딩(압축)되는 것으로 결정되면, 방법은 단계(S11)로 계속한다. 이 단계(S11)는 분해된 이미지의 이미지 블록을 조사하여, 이들 블록이 알파 블록 또는 비알파 블록으로서 인코딩되는 지를 결정한다. 이 분류는, 블록의 이미지 요소의 알파 값을 조사함으로써 실행되는 것이 바람직하다. 상기와 마찬가지로, 이미지 블록의 적어도 하나의 이미지 요소 또는 적어도 최소량의 다수의 이미지 요소의 알파 값이 사전 정해진 비투명성 값과 상이하거나, 비투명성 구간 내에 있지 않으면, 블록은 알파 블록으로서 분류되거나, 비알파 블록이다.
본 발명의 선택적인 실시예에서, 단계(S11)에서의 조사 하에 블록의 이미지 요소의 각각의 알파 값은 압축 모드(알파 블록 모드 또는 비알파 블록 모드)의 결정이 취해지기 전에 먼저 양자화된다. 알파 코드 워드의 논의와 관련하여 간략히 상술한 바와 같이, 바람직하게는, 코드 워드의 양자화된 알파 값은 이용 가능한 알파 리프리젠트(representing) 값의 세트, 예컨대, 0.0 (0), 0.3333 (85), 0.6667 (170), 1.0 (255)으로부터 선택된 값을 나타낼 수 있는 것이 바람직하다. 이와 같은 경우에, 이미지 요소의 알파 값은 먼저 이 세트로부터 선택된 값으로 양자화될 수 있다. 예컨대, 압축될 이미지 블록의 알파 값은 다음과 같은 것으로 추정한다:
0.95 0.98 0.90 0.99
0.85 0.95 0.91 0.92
1.0 (255)의 단일의 사전 정해진 알파 값은 비투명성을 나타내는 것을 추정한다. 따라서, 이 블록의 분류가 양자화전에 취해진다면, 그것은 모든 이미지 요소가 1.0의 비투명성 값과 상이한 알파 값을 가지므로 알파 블록으로서 분류된다. 그러나, 블록의 각 알파 값이 먼저 가능한 값 0.0, 0.3333, 0.6667, 1.0 중 하나로 양자화되면, 이 분류는 상이할 것이다. 그 경우에, 모든 양자화된 알파 값은 비투명성을 나타내는 1.0일 것이고, 블록은 비알파 블록으로서 압축된다.
대신에 블록이 다음과 같은 알파 값을 가진다면,
0.95 0.98 0.90 0.99
0.85 0.95 0.91 0.72
최종 이미지 요소의 알파 값은 0.6667으로 양자화된다(모든 다른 값은 1.0으로 양자화된다). 이 예에서, 이 블록은, 적어도 하나의 이미지 요소가 1.0의 사전 정해진 비투명성 값과 상이한 (양자화된) 알파 값을 가지므로 알파 블록으로서 분류된다. 그러나, 블록의 나머지 이미지 요소가 비투명성 값에 (매우) 근접한 알파 값을 가지므로, 그것은 압축 품질의 관점에서 블록을 비알파 블록으로서 최상으로 압축할 수 있다. 이와 같은 경우에, 단계(S11)의 분류는, 단일의 사전 정해진 비투명성 값 대신에 비투명성 값의 구간을 이용하며, 및/또는 적어도 2개의 이미지 요소가 사전 정해진 비투명성 값과 상이한 관련된 양자화된 알파 값을 가질 것을 필요로 함으로써 실행된다.
단계(S11)가 현재의 이미지 블록을 알파 블록으로서 분류하면, 이 방법은 도 1의 단계(S1)로 계속한다. 그러나, 대신에 단계(S11)에서 블록이 비알파 또는 알파가 없는 블록으로서 분류되면, 이 방법은 단계(S12)로 계속한다. 이 단계(S12)에서, 이미지 블록은, 여기서 PAP(Packman-Alpha-Packman) 모드를 나타내는 비알파 블록 모드 또는 제 3 압축 모드를 이용하여 압축된다. 이 PAP 압축 모드는, 블록에 대한 색 코드 워드, 바람직하게는 12 비트 색 코드 워드(각 R, G, B 색 성분에 대 한 4 비트)를 결정하는 것을 포함한다. 게다가, 밀도 코드 워드는 도 1과 관련하여 상술한 PAA 및 PAT 모드와 유사하게 제공된다. 이 밀도 코드 워드는 밀도 테이블에서 검색된 다수의 밀도 변경자 세트에 대한 3 비트 인덱스인 것이 바람직하다. 이 밀도 테이블은, 2개의 알파 블록 압축 모드(PAA 및 PAT) 및 이 비알파 블록 압축 모드(PAP)에 공용인 테이블이다. 그러나, 비알파 블록에 적합한 전용 밀도 테이블을 사용하는 것이 유리하다. 그 후, 밀도 인덱스, 바람직하게는 블록의 이미지 요소마다 2 비트 밀도 인덱스가 제공된다. 이들 인덱스는 제각기 변경자 세트로부터의 밀도 변경자 중 하나와 관련된다. 도 3C는 이 PAP 모드에 따라 압축되는 이미지 블록(700)을 도시한 것이다. 색 코드 워드(720), 밀도 코드 워드(730) 및 밀도 인덱스 시퀀스(750) 이외에, 바람직하게는, 압축된 블록 리프리젠테이션(700)은 1 비트 비알파 블록 인덱스(710)를 포함하며, 이는 블록이 PAP 압축 모드를 이용하여 압축되었음을 나타낸다. PAA 및 PAT 모드(도 3A 및 3B) 및 PAP 모드(도 3C)를 이용하여 압축되는 도 3A 내지 3C)의 이미지 블록(700)의 사이즈는 바람직하게는 동일하고, 더욱 바람직하게는 32 비트이다.
도 4에서, 단계(S11)의 블록 분류 및 도 1의 단계(S1-S9) 또는 단계(S12)의 블록 압축은, 바람직하게는 라인(L5)에 의해 개략적으로 도시되는 압축된 알파 이미지의 이미지 블록에 대해 반복된다.
PAA, PAT 및 PAP 모드의 결과로서, 어떤 경우에, 인코딩된 알파 이미지는 이들 모드 중 하나에만 따라 압축되는 이미지 블록을 포함할 것이다. 그러나, 가장 실제적인 구성의 경우, 이와 같이 인코딩된 알파 이미지는 통상적으로 PAA 모드에 따라 압축되는 어떤 블록 리프리젠테이션(도 3A), PAT 모드에 따라 압축되는 어떤 블록 리프리젠테이션(도 3B) 및, PAP 모드에 따라 압축되는 어떤 블록 리프리젠테이션(도 3C)을 포함할 것이다.
도 4에서 단계(S10)의 이미지 조사에 의해, 이미지가 비알파 이미지(알파가 없는 이미지)로서 인코딩되는 것이 결정되면, 이 방법은 선택적 단계(S13)로 계속한다. 이 단계(S13)에서, 현재의 블록에 이용할 비알파 이미지 압축 모드가 선택된다. 이와 같은 단일의 비알파 이미지 압축 모드가 이용 가능한 경우에는, 단계(S13)에서 모든 선택이 필요하지 않다. 다음 단계(S14)에서, 이미지 블록은 이런 (선택된) 비알파 이미지 모드를 이용하여 압축된다. 이와 같이 바람직한 비알파 이미지 모드는 여기서 PA(PAckman) 모드를 나타낸다. 간략히 말하면, 그 PA 압축 모드에서, 12 비트 색 코드 워드, 4 비트 밀도 코드 워드 및 16 비트 밀도 인덱스 시퀀스는 각 이미지 블록에 대해 생성되어, 결과적으로 전체 32 비트의 사이즈를 생성한다. PA 압축 기법의 확장 시에, 제각기 PP(Packman-Packman) 및 PC(Packman-CCC) 모드를 나타내는 2개의 비알파 이미지 압축 모드 간의 선택은 각 블록에 대해 행해질 수 있다. 이와 같은 경우에, 단계(S13)는, 현재의 블록에 이용할 어느 PP 또는 PC 모드를 블록에 기초하여 선택한다. PP 모드는 PA 기법과 유사하다. 그러나, 압축된 이미지 블록은 1 비트 PP 모드 인덱스 및, 4 비트 밀도 인덱스 대신에 3 비트 밀도 인덱스를 포함하는 것이 바람직하다. PC 압축 모드는 하나의 색 및 하나의 밀도 코드 워드 대신에 2개의 색 코드 워드를 사용한다. 결과로서, 이 PC 모드에 따라 압축되는 이미지 블록은, 1 비트 PC 모드 인덱스, 2개의 12 비트 색 코 드 워드 및 7 비트 색 인덱스 시퀀스를 포함하며, 이 7 비트 색 인덱스 시퀀스는 블록의 하나의 이미지 요소 외는 모두에 대한 2개의 색 코드 워드 중 하나에 대한 1 비트 색 인덱스를 포함하는 것이 바람직하다. 그리고 나서, 나머지 이미지 요소는, 그 이미지 요소에 대해 색 인덱스가 필요하지 않도록 제 1 (또는 제 2) 색 코드 워드와의 사전 정해진 관계를 갖는다.
바람직하게는, 단계(S13 및 S14)는, 라인(L6)에 의해 개략적으로 도시되는 압축된 비알파 이미지의 모든 이미지 블록에 대해 실행된다.
도 5는 도 1의 알파 코드 워드 결정 단계를 더욱 상세히 도시한 흐름도이다. 이 방법은 도 1의 단계(S0)에서 계속한다. 다음 선택적 단계(S20)에서, 이미지 요소의 알파 값은 양자화된 알파 값을 이용할 수 있는 사전 정해진 세트의 값으로 양자화된다. 상술한 바와 같이, 각 양자화된 알파 값이 2 비트를 포함하면, 사전 정해진 세트는 4개의 그런 값을 포함하는 것이 바람직하다. 예컨대, 이들 값은 0.0, 0.3333, 0.6667, 1.0이며, 이들은, 256 (512 또는 1024)까지의 상이한 알파 값을 갖는 경우에 값 0 (0 또는 0), 85 (170 또는 341), 170 (341 또는 682), 255 (511 또는 1023)을 나타낸다. 선택적인 실시예에서, 이 세트는, 다음의 선택적인 값 0.0, 0.50, 0.75, 1.0; 0, 0.25, 0.50, 1.0; 0, 0.25, 0.75, 1.0, 또는 (0과 255, 511, 1023 간, 즉, 0과 2n-1 간(여기서, n은 정수임)에 대응하는) 구간 0 내지 1의 어떤 다른 적절한 4개의 값 중 하나에 따른다. 그러나, PAT 압축 모드에서, "유용한" 양자화된 알파 값의 단일 비트만이 사용된다. 결과로서, 양자화된 알파 값은 2 개의 가능한 값으로부터 선택될 뿐이며, 이들 가능한 값은 상술한 4개의 값, 예컨대, 0.3333 및 0.6667 또는 0.0 및 1.0의 서브세트를 구성하는 것이 바람직하다.
어느 한 경우에, 알파 값이 양자화되었으면, 알파 코드 워드에 이용할 2개의 양자화된 알파 값은 단계(S21)에서 선택된다. 이들 양자화된 알파 값은 블록의 이미지 요소의 (양자화된) 알파 값을 가장 잘 나타내는 세트로부터의 2개의 값이어야 한다.
현재의 블록은 다음의 알파 값을 갖는 것으로 추정한다:
0.60 0.30 0.85 0.92
0.00 1.00 0.80 0.98
단계(S20)에서, 알파 값은 세트의 값 0.0, 0.3333, 0.6667, 1.0으로 양자화된다. 이와 같은 경우에, 상기 블록은 다음의 양자화된 값으로 나타낼 것이다:
0.6667 0.3333 1.0 1.0
0.0 1.0 1.0 1.0
이용할 가장 잘 양자화된 알파 값은 이용 가능한 값 중에서 서치(search)를 실행하여 에러 값을 계산함으로써 검색될 수 있다:
Figure 112006042476687-pct00003
여기서,
Figure 112006042476687-pct00004
는 이미지 요소(i)의 양자화된 알파 값이고, pi는 2개의 양자화된 알파 값의 서브세트이며, N은 블록의 이미지 요소의 전체 수이다. 이것은 양자화된 알파 값의 모든 쌍에 대해 반복되고, 에러를 최소화하는 2개의 양자화된 알파 값은 알파 코드 워드로서 선택될 것이다. 상이 예의 블록에서, 제 1 양자화된 알파 값은 0.0인 반면에, 제 2 양자화된 알파 값은 1.0이다. 그리고 나서, 이 블록은, 코드 워드의 2개의 양자화된 알파 값이 동일하지 않으므로 PAA 압축 모드에 따라 압축될 것이다.
다른 예에서, 원래의 블록은 다음의 알파 값을 갖는다:
0.30 0.25 0.17 0.42
0.20 0.38 0.24 0.48
이들 값을 양자화하면, 모두는 0.3333의 값을 지정할 것이다. 이 경우에, 블록에 대한 2개의 최적의 양자화된 알파 값을 검색하기 위해 상기 식(1)을 이용함으로써, 양자화된 알파 값이 동일하게 될 것이다. 따라서, 제 2 양자화된 알파 값(αB)(유용한 양자화된 알파 값)의 최상위 비트(MSB)(αB0)에는 0.3333의 양자화된 알파 값을 나타내는 0bin이 지정될 것이다. 그 후, 제 1 양자화된 알파 값(αA)의 MSB(αA0)는 αB0의 카피, 즉 0bin이다. 제 2 양자화된 알파 값(αB)의 최하위 비트(LSB)(αB1)는 밀도 인덱스 시퀀스에 의해 공유되어, 제 1 이미지 요소의 밀도 인덱스 값에 의해 결정된다. 제 1 양자화된 알파 값의 LSB(αA1)는 αB1의 카피일 것이다. 선택적으로, 제 1 양자화된 알파 값(αA)은 11bin이고(즉, PAT 모드 인덱스와 동일하고), 제 2 양자화된 알파 값(αB)의 MSB에는 0bin이 지정되고, 제 2 양자화된 알파 값(αB)의 LSB는 제 1 이미지 요소의 밀도 인덱스 값에 의해 결정될 것이다. 결과로서, 제 2 양자화된 알파 값의 MSB만이, 디코딩 중에, 블록의 이미지 요소에 대한 알파 값을 생성하기 위해 이용될 것이다.
다른 예에서, 블록은 다음의 알파 값을 포함한다:
0.10 0.05 0.15 0.04
0.07 0.10 0.12 0.08
양자화 후에, 모든 값은 0.0일 것이다. 일견하여, PAT 모드에 따라 블록을 압축하는 것이 좋은 생각처럼 보인다. 그러나, 유일한 이용 가능한 양자화된 알파 값이 0.3333 및 0.6667인 경우에, 0.0의 원하는 값은 이 모드에 정확히 나타낼 수 없다. 이와 같은 경우에는, PAA 압축 모드를 이용하는 것이 더 좋다. 코드 워드의 제 1 양자화된 알파 값(αA)은 통상적으로 00bin이다. 제 2 양자화된 알파 값(αB)의 2개의 비트 중 적어도 하나가 1bin, 즉, αB≠00bin이다는 것이 중요한데, 그 이유는 블록이 PAT 모드에 따라 압축될 것이기 때문이다.
본 발명의 선택적인 실시예에서, 원래의 알파 값은 적어도 2개의 그룹 또는 클러스터(cluster)로 구성될 수 있다. 예컨대, α1, α3 및 α4는 모두 0.4에 근접하는 반면에, 이미지 요소의 나머지 값 α2, α5, α6, α7 및 α8은 값 0.9에 근접한다. 이들 2개의 클러스터를 가장 잘 나타내는 2개의 값은 본 예에서, 즉 0.4 및 0.9로 결정될 수 있다. 그리고 나서, 이들 2개의 값을 가장 잘 나타내는 (4개까지의 가능한 값에서) 2개의 양자화된 알파 값은 알파 코드 워드, 즉, 0.3333 (01bin) 및 1.0 (11bin)로서 선택된다.
알파 코드 워드가 이미지 블록에 대해 결정되었으면, 이 방법은 도 1의 단계(S2)로 계속한다.
도 6은 색 및 밀도 코드 워드를 결정하여, 도 1의 밀도 인덱스를 제공하는 단계를 도시한 흐름도이다. 이 방법은 도 1의 단계(S2)에서 계속한다. 다음 단계(S30)에서, 이미지 블록의 이미지 요소의 평균 색이 결정된다. 다음에는, 이미지 요소의 색이 RGB 색의 24 비트, 즉, 적색 성분의 8 비트, 녹색 성분의 8 비트 및 청색 성분의 8 비트로 나타내는 것이 추정된다. 그러나, 본 발명은 이 특정예로 제한되지 않고, 이미지 요소의 어떤 색 리프리젠테이션에 적용할 수 있다. 그 후, 평균 색
Figure 112006042476687-pct00005
은 다음과 같이 결정된다:
Figure 112006042476687-pct00006
여기서, Ri, Gi, Bi는 이미지 요소(i)의 R, G, B 성분이며, N은 이미지 블록의 이미지 요소의 전체 수이다.
평균 색
Figure 112006042476687-pct00007
이 단계(S30)에서 결정되면, 다음 단계(S31)는 평균 색을 양자화한다. (24 비트) 평균 색은 9 비트 시퀀스(색 코드 워드)로 양자화되는 것이 바람직하다. 환언하면, 각 8 비트 평균 색 성분은 3 비트 평균 성분으로 양자화된다. 예컨대, 평균 색
Figure 112006042476687-pct00008
이 다음과 같이 계산되면,
Figure 112006042476687-pct00009
3 비트 양자화된 버전
Figure 112006042476687-pct00010
은 다음으로부터 생성되며,
Figure 112006042476687-pct00011
즉, [101, 010, 001]bin는 (9 비트) 색 코드 워드로서 이용된다.
단계(S32)는 테이블의 여러 밀도 변경자 세트 및 이 세트의 여러 변경자 값을 조사한다. 다음 단계(S33)는 이와 같은 각 변경자 세트 및 변경자 값 테스트를 위해 에러 값을 계산한다. 이들 에러 값에 기초하여, 변경자 세트 및, 최소 에러 값을 생성시키는 세트의 밀도 변경자 값이 단계(S33)에서 선택된다. 이것은 아래에 더욱 상세히 기술된다.
이미지 블록의 색 특성은, 간단한 인코딩, 철저한(exhaustive) 인코딩 및 결합된 양자화를 나타내는 3개의 상이한 예 중 하나를 이용하여 인코딩될 수 있으며, 이들 예는 아래에 간략히 기술된다.
간단한 인코딩
(알파) 이미지 블록을 인코딩하기 위해, 기본적으로 색 코드 워드 및 정확한 밀도 변경자 세트가 선택된다. 이것이 행해지면, 이미지 블록의 이미지 요소의 인코딩은 세트의 모든 4개의 밀도 변경자를 시험하여 에러를 계산함으로써 행해진다. PAA 압축 모드의 제 1 실시예에서, 단일 밀도 변경자는 다수의, 바람직하게는 한 쌍의 이웃한 이미지 요소와 관련된다. PAA 모드의 제 2 실시예에서, 각 이미지 요소는 단일 밀도 변경자와 관련되지만, 밀도 변경자의 서브세트만이 선택될 수 있다. 어떤 애플리케이션에서, 더욱 정확한 변경자 선택 및 보다 고 인코딩 품질이 다음과 같이 웨이트된 에러 값을 사용함으로써 획득된다:
Figure 112006042476687-pct00012
여기서, 이미지 요소의 원래의 (24 비트) 색은 (R, G, B)이고,
Figure 112006042476687-pct00013
은 색 코드 워드(양자화된 평균 색, 9 비트)를 나타내며, 선택된 변경자 세트는 [-a, -b, b, a] 및 q ∈ [-a, -b, b, a], q ∈ [-a, a] 또는 q ∈ [-b, b]이고, wR, wG, wB는 색 성분에 대한 상이한 웨이트이다. 게다가, wG는 wR 및 wB보다 더 큰 것이 바람직하다. 예컨대,
Figure 112006042476687-pct00014
,
Figure 112006042476687-pct00015
Figure 112006042476687-pct00016
, 또는 wR = 0.299, wG = 0.587 및 wB = 0.114.
대응하는 (웨이트된) 에러 값은 변경자 및 세트의 모든 결합을 위해 계산되고, 최소 에러를 생성시키는 변경자 및 세트의 결합이 선택된다.
이 간단한 인코딩에서, 색 성분마다 3 비트로 양자화되는 블록의 8개의 이미지 요소의 평균 색은 색 코드 워드로서 이용된다. 그리고 나서, 정확한 밀도 변경자 세트가 철저한 서치(search)에 의해 선택되고, 즉 밀도 테이블, 예컨대 테이블 1에서의 모든 8개의 세트가 시험되어, 에러 값을 최소화시키는 세트가 선택된다. 이것은 이미지 요소마다 8×4=32 평가를 필요로 한다. 웨이트가
Figure 112006042476687-pct00017
,
Figure 112006042476687-pct00018
Figure 112006042476687-pct00019
이면, 정수 셈법(integer arithmetic)이 이용될 수 있고, 인코딩은 빠르게 된다. 이런 웨이트의 선택을 위해, 간단한 인코딩을 이용하는 64×64 픽셀 (이미지 요소)의 인코딩은 1.2 GHz PC 랩탑 상에서 100 ms 미만, 종종 약 30 ms를 취한다.
철저한 인코딩
상술한 간단한 인코딩 예에서, 양자화된 평균 색은 이미지 블록의 이미지 요소의 색의 리프리젠테이션(색 코드 워드)으로서 간단히 이용되었다. 이 철저한 인코딩 예에서는, (변경자 값을 포함하는) 색 및 밀도 변경자 세트가 선택되며, 즉 모든 가능한 결합이 시험된다. 주어진 이미지 요소의 경우, 모두 214 단계를 제공하는 밀도 변경자 세트의 모든 3 비트 및 밀도 인덱스의 2 비트의 이전의 반복(iteration) 이외에, 색의 모든 9 비트를 통한 추가적인 반복이 부가된다. 64×64 픽셀의 이미지를 인코딩하는데에는 간단한 압축의 경우와 같은 PC 랩탑을 이용하여 30 초미만, 아마 약 10 s 걸린다. 이것이 실행 애플리케이션에 대해, 특히 보다 큰 이미지에 대해 너무 길지만, 오프라인 인코딩에 대해서는 과중하지 않다.
결합된 양자화
간단한 인코딩 예에 관해, 이 예는 (24 비트) 평균 색
Figure 112006042476687-pct00020
으로 개시하지만, 이 평균 색의 색 성분은 밀도 성분, 즉 밀도 변경자 세트 및 값의 선택과 함께 양자화된다.
Rlow 및 Rhigh가 제각기
Figure 112006042476687-pct00021
바로 아래 위인 3 비트 양자화 레벨 또는 값을 나타내면,
Figure 112006042476687-pct00022
가 된다. 이 태스크(task)는
Figure 112006042476687-pct00023
을 Rlow 또는 Rhigh의 어느 하나로서 선택된다. 이는 녹색 및 청색 성분에 대해서도 동일하다.
첫째로, 에러 값은
Figure 112006042476687-pct00024
으로 계산된다:
Figure 112006042476687-pct00025
이것은 다음으로 간략화될 수 있다:
Figure 112006042476687-pct00026
여기서,
Figure 112006042476687-pct00027
. 또한, q(밀도 변경자)가 자유롭게 선택될 수 있고, 즉, 최적의
Figure 112006042476687-pct00028
와 동일한 것으로 추정한다. 이 최적의 q를 식(5)에 삽입하면, 다음과 같이 간략화된다:
Figure 112006042476687-pct00029
여기서,
Figure 112006042476687-pct00030
는 괄호(bracket)의 식이다.
그러나, 더욱 높은 값이 적색 성분에 대해 선택되고, 즉
Figure 112006042476687-pct00031
Figure 112006042476687-pct00032
인 사실이 이용되면, 식(5)은 다음과 같이 재기록될 수 있다:
Figure 112006042476687-pct00033
이 식은, 이 케이스에 대해 최적의
Figure 112006042476687-pct00034
를 다음의 것에 삽입함으로써 더욱 간략화될 수 있다:
Figure 112006042476687-pct00035
이들 2개의 양자화된 색 (Rlow, Glow, Blow) 또는 (Rhigh, Glow, Blow) 중 어느 것이 최상임을, 즉, 최소 에러 값을 제공함을 결정하기 위해, 식(8)의 직선 괄호(straight bracket)의 엑스트라 식이 조사된다. 환언하면,
Figure 112006042476687-pct00036
이면, (Rhigh, Glow, Blow)이 선택되고, 그렇지 않으면, (Rlow, Glow, Blow)이 선택된다(
Figure 112006042476687-pct00037
인 경우에, 어느 한 코드 워드가 선택된다). 그리고 나서, 이 절차는 3개의 색 성분에 대한 저 및 고 양자화의 모든 가능한 결합, 즉 평균 색의 모든 이웃한 양자화된 색에 대해 반복된다. 그 결과는 아래 테이블 3에 제공된다.
Figure 112006042476687-pct00038
Figure 112006042476687-pct00039
는 명백하게 계산될 필요가 없고, 테이블 3의 직선 괄호의 식(에러 리프리젠테이션)만이 이용할 양자화 레벨(색 코드 워드)을 선택하기 위해 계산될 필요가 있다. 또한, 색 코드 워드(Rlow, Glow, Blow) 및 (Rhigh, Ghigh, Bhigh)가 동일한 에러 값을 제공함에 주목한다. 이것은 어떤 q(밀도 변경자 값)가 도달될 수 있다는 가정하에 있다. 그러나, 사실상, q는 사용된 변경자 세트 또는 변경자 서브세트의 밀도 변경자 값, 예컨대, 테이블 1의 변경자 값으로 제한된다. 테이블 1에 따르면, 보다 작은 변경자 값(q)은 보다 큰 값 보다 더 정확하게 지정될 수 있으며, 이는,
Figure 112006042476687-pct00040
가 (Rlow, Glow, Blow)보다 (Rhigh, Ghigh, Bhigh)에 더 근접할 경우에는 (Rlow, Glow, Blow)보다는 (Rhigh, Ghigh, Bhigh)를 선택하는 것이 더 좋고, 그 역으로도 선택할 수 있다는 것을 의미한다. 전체 인코딩 시간은 간단한 인코딩에 비해 변화하지 않으며, 즉, 64×64 픽셀의 이미지는 100 ms 미만에서 압축된다.
이미지 디코딩
도 7은 본 발명에 따라 인코딩된 이미지 또는 원래의 이미지의 인코딩된 버전을 디코딩하는 방법의 흐름도를 도시한 것이다. 인코딩된 이미지는 기본적으로, 도 3A 또는 도 3B의 리프리젠테이션(700)과 같은 이미지 블록의 수개의 압축된 또는 인코딩된 리프리젠테이션을 포함한다. 이들 압축된 블록 리프리젠테이션은 도 1과 관련하여 상술한 이미지 인코딩 방법에 의해 생성되는 것이 바람직하다.
이 방법은 일반적으로, 압축된 이미지 블록을 식별하여 압축 해제함으로써 개시한다. 인코딩된 이미지의 모든 압축된 이미지 블록은 원래의 이미지의 디코딩된 리프리젠테이션을 생성하기 위해 압축 해제될 수 있다. 선택적으로, 원래의 이미지의 일부만이 액세스될 수 있다. 결과로서, 이미지 블록의 선택된 수만이 압축 해제될 필요가 있다(더욱 정확히는, 어떤 이미지 블록의 이미지 요소의 선택된 량이 압축 해제되거나 디코딩될 필요가 있다).
이 방법은 단계(S40)에서 개시하며, 여기서, 이미지 블록의 이미지 요소의 적어도 하나에 대해 색 리프리젠테이션이 생성된다. 이 색 생성은 압축된 블록 리프리젠테이션의 색 코드 워드에 기초하여 실행된다. 다음 단계(S41)에서, 현재의 이미지 블록에 이용할 압축 해제 모드가 선택된다. 이 모드 선택은 알파 코드 워드 에 기초하고, 바람직하게는 알파 코드 워드의 양자화된 알파 값의 비교에 기초하거나, 양자화된 알파 값의 적어도 하나의 실제 값 또는 비트 패턴에 기초한다. 도 1의 압축 모드 선택과 유사하게도, 양자화된 알파 값이 상이하면, 제 1 압축 해제 모드(PAA 모드)가 선택되는 반면에, (모든) 양자화된 알파 값이 동일하면, 단계(S41)에서, 제 2 압축 해제 모드(PAT 모드)가 선택된다. 선택적으로, 모드 관련 양자화된 알파 값이 PAA 특정(PAT 특정) 값과 동일하면, PAA(PAT) 압축 해제 모드는 단계(S41)에서 선택된다.
PAA 압축 해제 모드에 따르면, 밀도 변경자 세트는 단계(S42)에서 제공된다. 이 변경자 세트는 압축된 블록 리프리젠테이션의 밀도 코드 워드에 기초한다. 이 세트 제공은, 밀도 코드 워드에 의해, 테이블, 예컨대, 테이블 1로부터 다수의 변경자 세트를 포함하는 밀도 변경자 세트를 식별함으로써 실행되는 것이 바람직하다. 이 테이블은 알파 블록 압축 해제 모드 또는 모드 적응 테이블의 양방에 공용인 테이블이다. 그러나, 어떤 애플리케이션에서, 밀도 코드 워드 그 자체는 변경자 세트를 포함하고, 테이블 룩업이 필요치 않을 수 있다.
단계(S43)에서, 압축 해제되는 이미지 요소에 이용할 밀도 변경자가 선택된다. 변경자 값은, 이미지 요소와 관련되거나 이미지 요소 서브세트와 관련되며, 이미지 요소가 속하는 밀도 인덱스에 기초하여 단계(S42)에 제공된 변경자 세트로부터 선택된다. 이 PAA 압축 해제 모드에서, 각 이미지 요소가 자신의 밀도 인덱스와 관련되면, 이 인덱스는 변경자 세트의 서브세트에서 검색된 밀도 변경자를 지적하는 것이 바람직하다. 예컨대, 단계(S42)에 제공된 밀도 변경자 세트가 [-a, -b, b, a]에 따르면, (1 비트) 밀도 인덱스만이 변경자 값 -a 또는 a(선택적으로, 예컨대, -b 또는 b)를 나타내는 것이 바람직하다. 그러나, 주어진 밀도 인덱스가 다수의 (이웃한) 이미지 요소의 서브세트에 지정되는 경우에, 밀도 인덱스는 변경자 값 -a, -b, b 또는 a의 어느 것을 나타낼 수 있는 것이 바람직하다.
정확한 밀도 변경자 세트가 단계(S43)에서 선택되면, 이미지 요소의 밀도는 단계(S44)에서 이 값으로 변경되거나 변조된다. 본 발명에 따른 밀도 변경은, (웨이트된) 밀도 변경자 값에 의해 색 리프리젠테이션의 모드 색 성분을 변경하는 것, 예컨대, 가산 또는 증배하는 것이라 한다.
단계(S43 및 S44)는 (라인(L7)에 의해 개략적으로 도시되는) 이미지 블록의 수개의 이미지 요소에 대해 실행된다. 본 발명에 의해, 어떤 애플리케이션에서, 단일 이미지 요소만이 특정 이미지 블록으로부터 압축 해제되고, 특정 이미지 블록의 다수의 이미지 요소가 압축 해제되거나 특정 블록의 모든 이미지 요소가 압축 해제됨을 알 수 있다.
다음의 단계(S45)에서, 다수의, 바람직하게는 2개의 알파 값은 알파 코드 워드에 기초하여 이미지 블록에 대해 결정된다. 다음 단계(S46)에서, 알파 값은 압축 해제되는 이미지 요소에 대해 선택되어 그에 지정된다. 이 알파 값은 통상적으로 관련 이미지 요소와 관련되고 알파 인덱스 시퀀스에서 검색되는 알파 인덱스를 이용하여 선택된다. 그러나, 관련 이미지 요소가, 관련된 알파 인덱스를 갖지 않고, 대신에 사전 정해진 관련된 알파 값을 갖는 이미지 요소의 서브세트에 속하면, 그 사전 정해진 알파 값은 단계(S46)에서 식별되어 이미지 요소에 지정된다. 단 계(S46)는 (라인(L8)에 의해 개략적으로 도시되는) 이미지 블록의 수개의 이미지 요소에 대해 실행된다.
선택적으로, 특히, 압축된 블록 리프리젠테이션의 단일 또는 소수의 이미지 요소를 압축 해제할 시에, 알파 인덱스 또는 사전 정해진 관계를 통해 이미지 요소와 관련된 코드 워드의 양자화된 알파 값은 단계(S46)에서 선택된다. 그리고 나서, (양자화되지 않은) 알파 값은 이 선택된 양자화된 알파 값을 이용하여 생성된다. 결과로서, 그 후, 단일 알파 값만이 생성되어, 단계(S45)는 생략된다. 따라서, 알파 인덱스에 기초한 선택은 알파 값 중에 실행되어, 알파 코드 워드의 양자화된 알파 값을 이용하거나 양자화된 알파 값 중에 생성된다.
PAT 압축 해제 모드가 단계(S41)에서 선택되면, 이 방법은 단계(S47)로 계속하며, 여기서, 밀도 변경자 세트는 밀도 코드 워드를 이용하여 이미지 블록에 제공되며, 바람직하게는 밀도 테이블로부터 제공된다. 이 단계(S47)는 기본적으로 단계(S42)에 대응한다. 그러나, 어떤 애플리케이션에서, 상이한 밀도 테이블이 PAA(단계(S42)) 및 PAT(단계(S47)) 압축 해제 모드에 이용될 수 있다. 다음 단계(S48)에서, 이미지 요소에 이용할 밀도 변경자는 단계(S47)에서 제공된 변경자 세트로부터 선택된다. PAA 압축 해제 모드와는 대조적으로, 각 이미지 요소는 유일한 밀도 인덱스와 관련되는 것이 바람직하고, 인덱스는 변경자 세트의 어떤 변경자 값을 나타낼 수 있다. 그리고 나서, 선택된 밀도 변경자는 단계(S49)에서 이미지 요소의 밀도를 변경하는데 이용된다. 이 단계(S49)는 단계(S44)에 대응한다. 2개의 단계(S48 및 S49)는 바람직하게는 라인(L9)에 의해 개략적으로 도시되는 압축 해제 된 블록의 모든 이미지 요소에 대해 반복된다.
다음의 단계(S50)에서, (단일) 알파 값은, 알파 코드 워드에 기초하여, 더욱 바람직하게는 코드 워드의 "유용한" 양자화된 알파 값에 기초하여 생성된다. 단계(S51)에서, 이 알파 값은 이미지 요소에 지정된다. 이 모드에서, 바람직하게는, 하나의 알파 값만이 생성되어, 알파 값의 선택이 필요치 않는다. 생성된 알파 값은 라인(L10)에 의해 개략적으로 도시되는 압축 해제된 이미지 요소에 지정되는 것이 바람직하다.
단계(S40 내지 S46 또는 S51)는 (라인(L11)에 의해 개략적으로 도시되는) 디코딩된 이미지 요소를 포함하는 모든 이미지 블록에 대해 반복되는 것이 바람직하다. 이것은, 단계(S40 내지 S46 또는 S51)의 루프가 한번 실행되지만, 상이한 압축된 이미지 블록에 대해서는 종종 여러번 및/또는 특정 압축된 이미지 블록에 대해서는 여러번 실행된다는 것을 의미한다.
선택적 단계(S52)에서, 원래의 이미지의 디코딩된 리프리젠테이션 또는 그의 일부는 압축 해제된 이미지 요소 및 블록에 기초하여 생성된다. 어떤 애플리케이션에서, 수개의 이미지 요소는 디코딩된 리프리젠테이션의 단일 픽셀, 텍셀 또는 복셀을 렌더링하기 위해 압축 해제될 필요가 있다. 예컨대, 삼선형(trilinear) 보간 중에, 8개의 이미지 요소는 압축 해제되고, 겹선형(bilinear) 보간 중에는 대응하는 수는 4개의 이미지 요소이며, 이는 당업자에게 잘 알려져 있다. 그 후, 이 방법은 종료한다.
동일한 밀도 테이블이 양방의 압축 해제 모드에 이용되는 경우에, 도 7의 디 코딩 방법은, 상이한 모드로의 분할이 나중에 압축 해제 절차에서 실행되도록 변경될 수 있다. 이와 같은 경우에, 색 리프리젠테이션 생성 및 알파 값 생성과, 변경자 세트 제공이 압축 해제 모드 선택에 우선한다. 그리고 나서, 모드 특정 동작에 의해, PAA 모드에서 알파 값이 선택되어 지정되고, PAT 모드에서 알파 값이 지정될 것이다.
도 8은 본 발명의 이미지 디코딩 방법의 부가적인 단계를 도시한 흐름도이다. 이 방법은 단계(S60)에서 개시하며, 여기서, 이미지가 알파 이미지 또는 비알파(알파가 없는) 이미지로서 디코딩되는 지가 조사된다. 바람직하게는, 이런 선택은 이미지와 관련된 (글로벌) 알파 이미지 인덱스에 기초한다.
이미지가 알파 이미지이면, 방법은 단계(S61)로 계속한다. 이 단계(S61)에서, 압축 해제되는 개별 이미지 블록은 알파 블록 또는 비알파 블록으로 분류된다. 이 분류는 바람직하게는 압축된 블록 리프리젠테이션에 포함된 알파 블록 인덱스에 기초하여 실행된다. 따라서, 이 알파 블록 인덱스가 1bin (또는 선택적으로 0bin)이면, 이미지 블록은 알파 블록이고, 알파 압축 해제 모드, 즉, 도 7과 관련하여 상술한 모드 중 하나를 이용하여 압축 해제된다. 그리고 나서, 이 방법은 도 7의 단계(S40)로 계속한다.
이미지 블록이 비알파 블록으로 분류되면, 단계(S62)에서 비알파 블록 압축 해제 모드(PAP 모드)에 따라 압축 해제된다. 이 PAP 모드는 기본적으로 도 7의 단계(S40, S42(또는 S47), S43(또는 S48) 및 S44(또는 S49))를 포함한다. 따라서, 색 리프리젠테이션은 색 코드 워드를 이용하여 블록의 이미지 요소에 대해 생성된다. 밀도 변경자 세트는 밀도 코드 워드를 이용하여 제공되고, 바람직하게는 밀도 테이블로부터 제공된다. 이 테이블은 이 모드와 PAA 및 PAT 모드에 공용이다. 그러나, 이 PAP 모드에 적합한 밀도 테이블을 이용하는 것이 유리하다. 그리고 나서, 밀도 변경자는 밀도 인덱스 시퀀스를 이용하여 제공된 세트로부터 선택되고, 이미지 요소의 밀도는 변경된다.
단계(S61)의 블록 분류 및, 알파 블록 압축 해제 모드(도 7) 중 하나 또는 비알파 블록 압축 해제 모드(단계(S62))에 따른 블록 압축 해제는 바람직하게는 라인(L12)에 의해 개략적으로 도시되는 디코딩된 이미지 요소를 포함하는 이미지의 모든 압축된 이미지 블록에 대해 반복된다.
단계(S60)에서 비알파 이미지로서 분류된 인코딩된 이미지는 비알파 이미지 압축 해제 모드를 이용하여 디코딩된다. 선택적인 단계(S63)에서, 현재 압축된 블록에 이용할 비알파 압축 해제 모드가 선택된다. 이와 같은 단일의 비알파 모드만이 이용 가능한 경우에는, 단계(S63)에서 모든 선택이 필요치 않다. 다음 단계(S64)에서, 압축된 이미지 블록 또는 그의 적어도 일부는 이런 (선택된) 비알파 이미지 모드를 이용하여 압축 해제된다. 이와 같이 바람직한 비알파 이미지 압축 해제 모드에서, PA 모드는 기본적으로 PAP 압축 해제 모드에 대응한다. 주요 차는, PA 압축 해제 모드가 (4 비트 밀도 코드 워드로 인해) 바람직하게는 16개까지의 상이한 변경자 세트를 가진 밀도 테이블을 이용할 수 있는 반면에, PAP 압축 해제 모드는 (4 비트 밀도 코드 워드로 인해) 바람직하게는 8개까지의 상이한 변경자 세트 를 가진 밀도 테이블을 이용한다는 것이다. PA 압축 해제 기법의 연장선에서, 2개의 비알파 이미지 압축 해제 모드(PP 모드 또는 PC 모드) 간의 선택은 각 블록에 대해 행해질 수 있다. 이와 같은 경우에, 단계(S63)는, 현재의 블록에 이용할 이들 2개의 모드의 어느 블록에 기초하여, 바람직하게는 압축된 블록에 포함된 (PP 또는 PC) 모드 인덱스에 기초하여 선택한다. PP 압축 해제 모드는 PA 기법과 유사하다. 그러나, 압축 해제된 이미지 블록은 1 비트 PP 모드 인덱스 및, 4 비트 밀도 인덱스 대신에 3 비트 밀도 인덱스를 포함하는 것이 바람직하다. PC 압축 해제 모드는 하나의 색 및 하나의 밀도 코드 워드 대신에 2개의 색 코드 워드를 이용한다. 결과로서, 압축 해제 동안에, 이들 2개의 코드 워드를 이용하여 블록에 대해 2개의 색 리프리젠테이션이 생성된다. 그리고 나서, 디코딩되는 이미지 요소에는, 바람직하게는, 색 인덱스 또는 사전 정해진 요소-코드 워드 관계에 기초하여, 이들 2개의 색 리프리젠테이션으로부터 선택된 색 리프리젠테이션이 지정된다.
단계(S63 및 S64)는 라인(L13)에 의해 개략적으로 도시되는 압축된 비알파 이미지의 모든 이미지 블록에 대해 실행되는 것이 바람직하다.
도 9는 도 7의 색 리프리젠테이션 생성 단계(S40)의 실시예를 더욱 상세히 도시한 것이다. 이 방법은 단계(S70)에서 개시하며, 여기서, 색 코드 워드의 양자화된 색, 바람직하게는 9 비트는, 바람직하게는 24 비트로 확장 또는 연장된다. RGB 색을 가진 경우에, 색 코드 워드의 각 양자화된 3 비트 색 성분은 8 비트 색 성분으로 확장된다. 이 색 확장은, 3 비트 패턴을 8 비트 색 워드로 복제함으로써 실현될 수 있다. 환언하면, 101bin의 3 비트 색 성분은 10110110bin으로 확장된다. 단계(S71)에서, 확장된 색은 디코딩되는 이미지 블록의 이미지 요소에 지정된다. 그 후, 이 방법은 도 7의 단계(S41)로 계속한다.
도 10은 단계(S42 내지 S46) 또는 단계(S47 내지 S51)를 더욱 상세히 도시한 흐름도이다. 이 방법은 도 7의 단계(S41)로부터 계속한다. 다음 단계(S80)에서, 밀도 변경자 세트는 밀도 코드 워드에 기초하여 밀도 테이블로부터 선택된다. 이 밀도 테이블은 공용 또는 모드 특정 테이블이다. 밀도 테이블 내에 기억된 밀도 변경자 세트가 변경자 값의 제 1 서브세트, 예컨대 [a, b]를 포함하면, 밀도 변경자 값의 제 2 서브세트는 제 1 서브세트의 값, 예컨대 [-a, -b]로부터 결정될 수 있다. 다음 단계(S81)에서, 이미지 요소의 밀도는, 선택된 변경자 세트로부터의 밀도 변경자를 확장된 색에 부가함으로써 변경된다. 따라서, 이 변경자 값은 이미지 요소에 대한 색의 모든 성분(모든 3개의 RGB 색)에 부가된다. 이것은, 변경자 값을 모든 색 성분에 간단히 부가함으로써 구현된다. 그러나, 어떤 애플리케이션에서는, 변경자 값을 성분에 부가하기 전에 웨이트하는 것이 바람직하다. 이와 같은 경우에, 상이한 색 성분에 대해 상이한 웨이트가 사용될 수 있다. 선택적인 실시예에서는, 간단한 부가와 다른 타입의 변경, 예컨대, 증배 또는 XOR이 이용될 수 있다. 이와 같은 경우에, 동일한 밀도 변경자 값이 성분에 대해 상이하게 웨이트될 수 있을지라도, 이 값을 이용하여 확장된 색의 모든 성분에 동일한 변경이 실행된다.
다음의 단계(S82)에서, 최소 색 임계 및 최대 색 임계 간에 생성되는 밀도 변경된 색 성분 값이 클램프(clamp)된다. 예컨대, (웨이트된) 밀도 변경자 값을 색 성분에 부가한 후에, 생성된 값이 최소 임계 보다 작으면, 이 값은 이 임계값으로 클램프된다. 이에 대응하여, 생성된 값이 최대 임계 보다 크면, 임계값은 그 성분에 이용된다. 비제한적인 예의 최소 및 최대 임계는 색 성분의 256의 상이한 레벨의 경우에 제각기 0 및 255이다.
다음의 단계(S83)에서, 이용된 알파 블록 압축 해제 모드에 따라, 하나 이상의 (8 비트) 알파 값이 양자화된 알파 값을 확장함으로써 생성된다. PAA 모드에서, 이 확장은 각각의 양자화된 알파 값의 2 비트 패턴을 반복함으로써 실현될 수 있다. 예컨대, 01bin의 양자화된 알파 값은, 85 (0.3333)의 알파 값에 대응하는 0101 0101bin의 8 비트 값으로 확장된다. PAT 모드에서는, 양자화된 알파 값 중 하나의 단일 비트만이 알파 값을 생성하기 위해 이용되는 것이 바람직하다. 예컨대, 이 단일 비트가 1bin(0bin)이면, 8 비트 알파 값은 170 또는 0.6667 (85 또는 0.3333)에 대응하는, 예컨대 1010 1010bin (0101 0101bin)이다.
모드 관련 양자화된 알파 값이 이용되면, (알파) 룩업 테이블은 알파 값으로 확장되는 양자화된 알파 값을 결정하기 위해 사용된다. 아래의 테이블 4에서, αA는 모드 관련 양자화된 알파 값을 나타내고, αB는 데이터 반송 양자화된 알파 값이다.
Figure 112006042476687-pct00041
αA가 11bin과 동일하면, PAT 모드가 이용되거나, PAA 모드가 사용되는 것에 주목한다. PAA 이미지 블록에 대한 테이블 4를 이용함으로써, (알파 인덱스 또는 사전 정해진 관계에 기초하여) 알파 값으로 확장하기 위해 양자화된 알파 값이 식별된다. 실제 확장은 상술한 바와 유사하게 실행된다. 테이블 4에서 알 수 있는 바와 같이, 데이터 반송 양자화된 알파 값 αB과 제 1 양자화된 알파 값 간에는 1 대 1 대응이 존재하지만, 모드 관련 양자화된 알파 값 αA와 제 2 양자화된 알파 값 간에는 존재하지 않는다.
이 방법은 도 7의 단계(S46 또는 S51)로 계속한다.
인코딩된 이미지 블록의 디코딩에 대해서는 아래의 4개의 예에 의해 더 설명 될 것이다. 2개의 제 1 예에서, 도 3A에 도시된 바와 같은 압축된 블록 리프리젠테이션, 도 2A에 도시된 바와 같은 이미지 블록 및, 테이블 1에 따른 밀도 테이블이 추정되고, 제 3 예에서는 압축된 블록 리프리젠테이션이 도 3B에 따르며, 제 4 실시예에서는 테이블 4가 이용될 것이다.
디코딩 예 1
이미지 블록의 압축된 리프리젠테이션은 1 101 0 010 1 001 1 011 1 1011000 01 11 00 10bin에 따르며, 여기서, 비트 0은 모드 인덱스이고, 비트 1-3은 색 코드 워드의 적색 성분이며, 비트 4는 알파 코드 워드의 제 1 양자화된 알파 값의 MSB이며, 비트 5-7은 색 코드 워드의 녹색 성분이고, 비트 8은 제 1 양자화된 알파 값의 LSB이며, 비트 9-11은 색 코드 워드의 청색 성분이며, 비트 12는 알파 코드 워드의 제 2 양자화된 알파 값의 MSB이며, 비트 13-15는 밀도 코드 워드이고, 비트 16은 제 2 양자화된 알파 값의 LSB이며, 비트 17-23은 알파 인덱스 서브시퀀스이며, 비트 24-31은 밀도 인덱스의 서브시퀀스이다.
색 코드 워드는 이미지 블록의 색 리프리젠테이션을 생성하기 위해 디코딩(확장)된다. 색 코드 워드의 각 색 성분은 3 비트 내에 있지만, 3 비트 패턴을 8 비트 워드로 복제함으로써 8 비트로 확장된다:
적색: 10110110bin ⇔ 182
녹색: 01001001bin ⇔ 73
청색: 00100100bin ⇔ 36
이 확장된 색은 아래의 것을 제공하는 이미지 블록의 이미지 요소에 지정된다:
(182, 73, 36) (182, 73, 36) (182, 73, 36) (182, 73, 36)
(182, 73, 36) (182, 73, 36) (182, 73, 36) (182, 73, 36)
블록의 2개의 양자화된 알파 값은 비교된다. 10bin(제 1 양자화된 알파 값)이 11bin(제 2 양자화된 알파 값)과 상이하므로, 블록은 PAA 압축 해제 모드에 따라 디코딩된다.
이용하는 정확한 밀도 변경자 세트는 밀도 코드 워드에 기초하여 테이블 1로부터 선택된다. 테이블 1에 도시된 바와 같이, 011bin의 밀도 코드 워드는 밀도 변경자[-127, -41, 41, 127]에 대응한다.
밀도 인덱스의 시퀀스는 아래의 것에 따라 상이한 이미지 요소에 이용할 이들 4개의 변경자 값 중 어느 값의 식별을 가능하게 한다.
Figure 112006042476687-pct00042
PAA 모드의 이 실시예에서, 각 밀도 인덱스는 블록의 2개의 이웃한 이미지 요소와 관련된다.
제 1 밀도 인덱스는 01bin이고, 이는 제 1 밀도 변경자 값, 127이 제 1 이미 지 요소 서브세트의 모든 3개의 성분에 부가되어야 함을 의미한다.
Figure 112006042476687-pct00043
생성된 성분은 0과 255 사이에 클램프되어, (255, 200, 163)을 제공한다. 부분적으로 디코딩된 이미지 블록은 아래의 것에 따른다:
(255, 200, 163) (182, 73, 36) (182, 73, 36) (182, 73, 36)
(255, 200, 163) (182, 73, 36) (182, 73, 36) (182, 73, 36)
따라서, 이 예에서는, 동일한 밀도 변경자는 동일한 열(column)에 배치된 2개의 이미지 요소에 이용된다. 그러나, 이것은 단지 예시적인 예로서 나타낸다. 선택적으로, 동일한 행(row)의 2개의 이웃한 이미지 요소에 동일한 밀도 변경자가 지정된다.
다음 이미지 요소 서브세트의 경우, 밀도 인덱스는 11bin이고, 즉, 밀도 변경자 -127이 모든 3개의 색 성분에 부가된다. 클램프 후의 결과는 (55, 0, 0)이다. 블록의 모든 이미지 요소에 대해 이런 절차를 반복함으로써, 아래에 도시되고, 부분적으로 디코딩된 이미지 블록이 생성된다:
(255, 200, 163) (55, 0, 0) (223, 114, 77) (141, 32, 0)
(255, 200, 163) (55, 0, 0) (223, 114, 77) (141, 32, 0)
2개의 양자화된 알파 값 10bin 및 11bin은 8 비트 알파 값으로 확장된다:
제 1 알파 값: 10101010bin ⇔ 170 ⇔ 0.6667
제 2 알파 값: 11111111bin ⇔ 255 ⇔ 1.0
이 예에서, 제 1 이미지 요소는 항상 제 1 알파 값(또는 제 1 양자화된 알파 값)과 관련되어, 알파 값 170을 지정한다. 블록의 나머지 이미지 요소의 경우, 알파 인덱스 서브시퀀스는 알파 값을 선택하기 위해 이용된다. (동일한 행에 이웃한) 제 2 이미지 요소는 제 2 알파 값, 즉 255를 나타내는 1bin의 알파 인덱스를 갖는다. 이 값을 계속 지정함으로써, 다음의 최종 인코딩된 블록이 생성된다:
(255,200,163,170) (55, 0, 0, 255) (223,114,77,170) (141, 32, 0, 255)
(255,200,163,255) (55, 0, 0, 170) (223,114,77,170) (141, 32, 0, 170)
디코딩 예 2
이 예에서, PAA 압축 해제 모드의 다른 실시예는 이미지 블록의 압축된 리프리젠테이션 1 101 0 010 1 001 1 011 1 1011000 01110010bin에 적용된다. 상기에 대응하여, 비트 0은 모드 인덱스이고, 비트 1-3은 색 코드 워드의 적색 성분이며, 비트 4는 제 1 양자화된 알파 값의 MSB이며, 비트 5-7은 색 코드 워드의 녹색 성분이고, 비트 8은 제 1 양자화된 알파 값의 LSB이며, 비트 9-11은 색 코드 워드의 청색 성분이며, 비트 12는 제 2 양자화된 알파 값의 MSB이며, 비트 13-15는 밀도 코드 워드이고, 비트 16은 제 2 양자화된 알파 값의 LSB이며, 비트 17-23은 알파 인덱스 서브시퀀스이며, 비트 24-31은 블록의 이미지 요소에 대한 밀도 인덱스의 시퀀스이다.
색 리프리젠테이션은 디코딩 예 1에서와 동일한 방식으로 생성되어, 다음의 부분적 디코딩된 블록을 생성시킨다:
(182, 73, 36) (182, 73, 36) (182, 73, 36) (182, 73, 36)
(182, 73, 36) (182, 73, 36) (182, 73, 36) (182, 73, 36)
동일한 밀도 변경자 세트([-127, -41, 41, 127])는 디코딩 예 1에서와 같이 테이블 1로부터 선택된다. 그러나, 이 실시예에서는, [-127, 127]의 변경자 값을 포함하는 서브세트만이 블록에 이용 가능하다. 이와 같은 경우에, 0bin의 밀도 인덱스는 변경자 127을 나타내는 반면에, 1bin은 -127을 나타낸다.
제 1 밀도 인덱스는 0bin이며, 이는 제 1 밀도 변경자 값 127이 제 1 이미지 요소의 모든 3개의 성분에 부가된다는 것을 의미한다:
Figure 112006042476687-pct00044
생성된 성분은 0과 255 사이에서 클램프되어, (255, 200, 163)을 제공한다. 부분적으로 디코딩된 이미지 블록은 아래의 것에 따른다:
(255, 200, 163) (182, 73, 36) (182, 73, 36) (182, 73, 36)
(182, 73, 36) (182, 73, 36) (182, 73, 36) (182, 73, 36)
다음 이미지 요소의 경우, 밀도 인덱스는 1bin이고, 즉, 밀도 변경자 -127이 모든 3개의 색 성분에 부가된다. 클램프 후의 결과는 (55, 0, 0)이다. 블록의 모든 이미지 요소에 대해 이런 절차를 반복함으로써, 아래에 도시되고, 부분적으로 디코딩된 이미지 블록이 생성된다:
(255, 200, 163) (55, 0, 0) (50, 0, 0) (55, 0, 0)
(255, 200, 163) (255, 200, 163) (50, 0, 0) (255, 200, 163)
알파 값의 생성은 디코딩 예 1과 유사하여, 여기서 반복되지 않는다. 따라서, 최종 디코딩된 이미지 블록은 다음의 것에 따를 것이다:
(255,200,163,170) (55, 0, 0, 255) (55, 0, 0, 170) (55, 0, 0, 255)
(255,200,163,255) (255,200,163,170) (55, 0, 0, 170) (255,200,163,170)
디코딩 예 3
이미지 블록의 압축된 리프리젠테이션은 1 101 0 010 1 001 0 011 11 01 10 00 01 11 00 10bin에 따르며, 여기서, 비트 0은 모드 인덱스이고, 비트 1-3은 색 코드 워드의 적색 성분이며, 비트 4는 비트 12의 카피이며, 비트 5-7은 색 코드 워드의 녹색 성분이고, 비트 8은 비트 16의 카피이며, 비트 9-11은 색 코드 워드의 청색 성분이며, 비트 12는 알파 코드 워드의 "유용한" 양자화된 알파 값이며, 비트 13-15는 밀도 코드 워드이고, 비트 16-31은 블록의 이미지 요소에 대한 밀도 인덱스의 시퀀스이다.
알파 코드 워드의 2개의 양자화된 알파 값 01bin(비트 4 및 비트 8) 및 01bin(비트 12 및 비트 16)이 동일하므로, PAT 압축 해제 모드는 이 블록에 이용된다.
블록의 색 리프리젠테이션은 디코딩 예 1에 따라 생성되어, 다음의 부분적 디코딩된 블록을 제공한다:
(182, 73, 36) (182, 73, 36) (182, 73, 36) (182, 73, 36)
(182, 73, 36) (182, 73, 36) (182, 73, 36) (182, 73, 36)
011bin의 밀도 코드 워드는, 디코딩 예 1 및 2에서와 동일한 밀도 변경자 세트가 현재의 블록에 이용된다는 것을 의미한다. 그러나, 이것은 공용 밀도 테이블이 디코딩 예 1 내지 3에 대한 2개의 알파 블록 압축 해제 모드에 이용되기 때문이다. 밀도 코드 워드가 모든 예에서 동일할지라도, 이 디코딩 예 3의 변경자 세트가 디코딩 예 1 및 2의 변경자 세트와 다른 변경자 세트를 포함하도록 모드 특정 밀도 테이블을 이용할 수 있다.
제 1 밀도 인덱스는 11bin이며, 이는 제 1 밀도 변경자 값 -127이 제 1 이미지 요소의 모든 3개의 성분에 부가된다는 것을 의미한다:
Figure 112006042476687-pct00045
생성된 성분은 0과 255 사이에서 클램프되어, (55, 0, 0)을 제공한다. 부분적으로 디코딩된 이미지 블록은 아래의 것에 따른다:
(55, 0, 0) (182, 73, 36) (182, 73, 36) (182, 73, 36)
(182, 73, 36) (182, 73, 36) (182, 73, 36) (182, 73, 36)
다음 이미지 요소의 경우, 밀도 인덱스는 01bin이고, 즉, 밀도 변경자 127이 모든 3개의 색 성분에 부가된다. 클램프 후의 결과는 (255, 200, 163)이다. 블록의 모든 이미지 요소에 대해 이런 절차를 반복함으로써, 아래에 도시되고, 부분적으로 디코딩된 이미지 블록이 생성된다:
(55, 0, 0) (255, 200, 163) (141, 32, 0) (223, 114, 77)
(255, 200, 163) (55, 0, 0) (223, 114, 77) (141, 32, 0)
그 후, 이미지 요소에 대한 알파 값이 생성된다. 이 PAT 모드에서, 단일 알파 값은 모든 이미지 요소에 대해 생성되는 것에 주목한다. 제 2 양자화된 알파 값의 MSB (비트 12)는 이 알파 값을 생성하기 위해 이용될 것이다. 이 예에서, 이 비트는 0bin이며, 이는 0101 0101bin ⇔ 85 ⇔ 0.3333으로 확장된다. 따라서, 값 85는 모든 이미지 요소에 지정되어, 결과적으로 최종 디코딩된 이미지 블록 리프리젠테이션을 생성시킨다:
(55, 0, 0, 85) (255,200,163,85) (141, 32, 0, 85) (223, 114, 77, 85)
(255,200,163,85) (55, 0, 0, 85) (223, 114, 77, 85) (141, 32, 0, 85)
디코딩 예 4
이미지 블록의 압축된 리프리젠테이션은 1 101 0 010 1 001 1 011 1 1011000 01 11 00 10bin에 따르며, 여기서, 비트 0은 모드 인덱스이고, 비트 1-3은 색 코드 워드의 적색 성분이며, 비트 4는 알파 코드 워드의 모드 관련 양자화된 알파 값의 MSB이며, 비트 5-7은 색 코드 워드의 녹색 성분이고, 비트 8은 모드 관련 양자화된 알파 값의 LSB이며, 비트 9-11은 색 코드 워드의 청색 성분이며, 비트 12는 알파 코드 워드의 데이터 반송 양자화된 알파 값의 MSB이며, 비트 13-15는 밀도 코드 워드이고, 비트 16은 데이터 반송 양자화된 알파 값의 LSB이며, 비트 17-23은 알파 인덱스 서브시퀀스이며, 비트 24-31은 밀도 인덱스의 서브시퀀스이다.
색 리프리젠테이션의 생성 및 색 성분의 밀도 변경은 상기 디코딩 예 1과 동일하게 실행된다. 부분적으로 디코딩된 블록 리프리젠테이션은 아래의 것에 따른다:
(255, 200, 163) (55, 0, 0) (223, 114, 77) (141, 32, 0)
(255, 200, 163) (55, 0, 0) (223, 114, 77) (141, 32, 0)
모드 관련 양자화된 알파 값(αA)은 10bin이고, 데이터 반송 양자화된 알파 값(αB)은 11bin이다. 테이블 4에서, 이런 알파 코드 워드의 결합은 11bin 및 10bin의 제 1 양자화된 알파 값을 나타낸다. 이들 양자화된 값은 8 비트 알파 값으로 확장된다:
제 1 알파 값: 11111111bin ⇔ 255 ⇔ 1.0
제 2 알파 값: 10101010bin ⇔ 170 ⇔ 0.6667
예 1에서 약술된 원리에 따라, 최종 디코딩된 블록이 생성될 것이다:
(255,200,163,255) (55, 0, 0, 170) (223,114,77,255) (141, 32, 0, 170)
(255,200,163,170) (55, 0, 0, 255) (223,114,77,255) (141, 32, 0, 255)
구성 논의
본 발명에 따른 이미지 인코딩(이미지 블록 인코딩) 및 이미지 디코딩(이미 지 블록 디코딩) 기법은 범용 데이터 처리 시스템, 예컨대, 사용자 단말기, 또는 이미지를 처리 및/또는 렌더링하기 위해 구성되는 다른 유닛 내에 제공된다. 이와 같은 단말기는 컴퓨터이다. 그러나, 본 발명은 개인 휴대 정보 단말기(PDA), 이동 유닛 및 전화와 같은 신 클라이언트에도 적합하다.이와 같은 단말기는 통상적으로 제한된 메모리 용량 및 메모리 대역폭을 특징으로 하며, 배터리, 즉 또한 제한된 전원에 의해 가동된다. 본 발명에 따른 인코딩 및 디코딩은 양자 모두 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 결합에서 매우 간단히 구현될 수 있고, 인코딩된 이미지 블록만이 바람직하게는 32 비트의 최대 사이즈를 가지므로, 본 발명은 이점으로 신 클라이언트에 적용될 수 있다.
이미지 처리 단말기
도 11은 이동 유닛으로 나타낸 이미지 처리 단말기(100)를 도시한 것이다. 그러나, 본 발명은 이 이동 유닛으로 제한되지 않고, 다른 단말기 및 데이터 처리 유닛에 구성될 수 있다. 본 발명에 직접 포함되는 이동 유닛(100)의 수단 및 소자만이 도면에 도시된다.
이동 유닛(100)은, 이동 유닛(100) 내에서 이미지 데이터를 포함하는 데이터 처리용 (중앙) 처리 유닛(CPU)(200)을 포함한다. 그래픽 시스템(130)은 이미지 및 그래픽 데이터를 관리하는 이동 유닛(100) 내에 제공된다. 특히, 그래픽 시스템(130)은 접속된 스크린(120) 또는 다른 디스플레이 유닛 상에 이미지를 렌더링하거나 표시하는데 적합하다. 이동 유닛(100)은 또한 데이터를 기억하는 기억 장치 또는 메모리(140)를 포함한다. 이 메모리(140)에, 이미지 데이터, 특히, 본 발명에 따라 인코딩된 이미지 데이터(압축된 이미지 블록)가 기억될 수 있다. 이미지 블록(32 비트)의 작은 전체 사이즈 및 고 압축율(4 bpp)로 인해, 이미지 데이터는 제한된 메모리 용량을 가진 이동 유닛(100)을 가진 경우에도 메모리(140) 내에 효율적으로 기억될 수 있다.
본 발명에 따른 이미지 인코더(210)는 이동 유닛(100) 내에 제공된다. 이 인코더(210)는, 이미지 또는 텍스처를 이미지(또는 텍스처)의 인코딩된 리프리젠테이션으로 인코딩하기 위해 구성된다. 상술한 바와 같이, 이와 같이 인코딩된 리프리젠테이션은 다수의 압축된 이미지 블록의 시퀀스 또는 파일을 포함한다. 이 이미지 인코더(210)는, 도면에 도시된 바와 같이, CPU(200) 상에서 실행하는 소프트웨어로서 제공될 수 있다. 선택적으로, 또는 부가적으로, 인코더(210)는 그래픽 시스템(130) 또는 이동 유닛(100) 내에 배치될 수 있다.
블록 인코더(210)로부터의 이미지의 인코딩된 리프리젠테이션은, 이미지의 후속 렌더링할 때까지 기억하기 위해 (메모리) 버스(150)를 통해 메모리(140)에 제공될 수 있다. 선택적으로, 또는 부가적으로, 인코딩된 이미지 데이터는, 다른 외부 단말기 또는 유닛으로 (무선 또는 유선) 송신하기 위해 입력 및 출력(I/O) 유닛(110)으로 전송될 수 있다. 이 I/O 유닛(110)은 또한 외부 유닛으로부터 이미지 데이터를 수신하는데 적합할 수 있다. 이 이미지 데이터는, 이미지 인코더(210)에 의해 인코딩되는 이미지, 또는 디코딩되는 인코딩된 이미지 데이터일 수 있다. 또한, 예컨대, 그래픽 시스템(130) 내에 제공된 전용 텍스처 메모리 내에 인코딩된 이미지 리프리젠테이션을 기억시킬 수 있다. 또한, 인코딩된 이미지의 부분은 또 한, 또는 선택적으로, (텍스처) 캐시 메모리, 예컨대, 그래픽 시스템(130) 내에 (일시적으로) 기억될 수 있다. 본 발명의 (복잡성이 비추어) 값싸고 고속의 압축 해제에 대한 중대한 이점은, 압축된 이미지 블록이, 적어도 일시적으로, 빠르고 쉽게 접근하기 위해 캐시 내에 기억될 수 있다는 것이다. 이것은 고 압축율에 의해 더욱 용이하게 되는데, 이는, 압축되지 않은 (RGBA8888) 블록 데이터에 비해 많은 이미지 블록 데이터의 4배를 캐시에 동시에 기억시킬 수 있다.
(메모리) 버스(150)가 32 비트의 최대 대역폭을 가지면, 메모리(140)로부터 본 발명의 인코딩된 이미지 리프리젠테이션을 인출하거나 판독하는데 한 번의 메모리 접근이 필요하다. 그러나, 버스(150)가 보다 큰 대역폭 용량, 예컨대, 64 비트 또는 128 비트를 가지면, 한 번의 메모리 접근에 다수의 인코딩된 이미지 리프리젠테이션이 인출된다. 예컨대, 도 2A에 따라 64 비트 버스(150) 및 이미지 블록 사이즈를 추정한다. 이미지 블록이 도 2A에 따르고, "on top of each other"에 파일(pile)되거나, 이들 블록이 도 2B에 따르고, "side by side"에 파일되면, 이미지 블록은, 메모리(140)의 후속 이미지 블록과 함께, 이미지 요소의 4×4 정방형(square)을 형성할 것이다. 그러나, 도 2A(도 2B)의 블록이 "side by side"("on top of each other")에 배치되면, 이미지 블록은, 다음의 블록과 함께, 2×8 박스를 형성할 것이다. 4×4 정방형이 더욱 바람직한데, 그 이유는, 4×4 정방형의 원하는 이미지 요소를 검색하는 가능성이, 어떤 형식의 텍스처 캐싱(caching) 시스템이 사용될 경우에, 2×8 박스에 대한 것보다 더 크기 때문이다.
본 발명에 따른 이미지 디코더(220)는, 디코딩된 이미지 리프리젠테이션을 생성하기 위해 인코딩된 이미지를 디코딩하는 이동 유닛(100) 내에 제공된다. 이와 같이 디코딩된 리프리젠테이션은 전체의 원래의 이미지 또는 그의 일부에 상당할 수 있다. 이미지 디코더(220)는 디코딩된 이미지 데이터를 그래픽 시스템(130)에 제공하여, 통상적으로 스크린(120) 상에 렌더링되거나 제공되기 전에 데이터를 처리한다. 이미지 디코더(220)는, 도면에 도시된 바와 같이, 그래픽 시스템(130) 내에 배치될 수 있다. 선택적으로, 또는 부가적으로, 디코더(200)는 CPU(200) 또는 이동 유닛(100)에서 실행하는 소프트웨어로서 제공될 수 있다.
도면에 도시된 바와 같이, 이동 유닛(100)은 이미지 인코더(210) 및 이미지 디코더(220)의 양방을 구비한다. 그러나, 어떤 단말기(100)의 경우, 이미지 인코더(210)만을 포함할 수 있다. 이와 같은 경우에, 인코딩된 이미지 데이터는, 이미지의 디코딩 및 렌더링을 실행하는 다른 단말기로 송신될 수 있다. 이에 대응하여, 단말기(100)는 이미지 디코더(220)만을 포함할 수 있다. 즉, 인코더를 갖지 않는다. 그 후, 이와 같은 단말기(100)는, 인코딩된 이미지 데이터를 포함하는 신호를 다른 단말기로부터 수신하여, 디코딩된 이미지 리프리젠테이션을 생성하기 위해 신호를 디코딩한다. 따라서, 인코딩된 이미지 신호는 무선 송신기 및 수신기를 이용하여 단말기 간에 무선으로 송신된다. 선택적으로, 단말기 간에 이미지 및 인코딩된 이미지 리프리젠테이션을 분산하는 다른 기술, 예컨대, IR 포트, 블루투스 및, 단말기 간의 이미지 데이터의 유선 전송을 이용하는 IR 기술이 이용될 수 있다. 또한, 단말기 간에 접속되고 교환될 수 있는 메모리 카드 또는 칩이 단말기 간에 이 이미지 데이터 분산에 이용된다.
이동 유닛(100)의 유닛(110, 130, 200, 210 및 220)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다.
인코더
도 12는 본 발명에 따른 이미지 인코더(210)의 실시예의 블록도를 도시한 것이다. 인코더(210)는 통상적으로 입력 이미지를 수개의 이미지 블록으로 분해하거나 분할하는 이미지 분해기(212)를 포함한다. 이 분해기(212)는 이미지를, 8개의 이미지 요소를 포함하는 이미지 블록으로 분해하기 위해 구성되는 것이 바람직하다. 이 분해기(212)는, 여러 입력 이미지를, 상이한 사이즈를 가진 이미지 블록으로 분해하는데 적합하다. 이와 같은 경우에, 분해기(212)는, 바람직하게는, 입력 정보를 수신하여, 소정의 이미지에 이용하기 위해 어느 이미지 블록 포맷의 식별을 가능하게 한다.
이미지 인코더(210)는 이미지를 알파 이미지 또는 비알파 이미지로 분류하는 이미지 분석기(214)를 포함하는 것이 바람직하다. 이 분석기(214)는, 예컨대, 이미지 데이터와 함께 기억됨으로써, 이미지와 관련된 글로벌 알파 이미지 인덱스에 기초하여 분류를 실행한다. 선택적으로, 분석기는, 이미지의 이미지 요소의 특성 (알파 또는 양자화된 알파 값)의 조사에 기초하여 이미지 분류를 실행할 수 있다. 이미지 인코더(210)만이 알파 이미지상에 동작하는 경우에, 이 이미지 분석기(214)는 생략될 수 있다. 게다가, 이미지 분석기의 기능성은 선택적으로 블록 인코더(300)내에 포함될 수 있다.
이 이미지 인코더(210)의 실시예는 단일 블록 인코더(300)를 포함한다. 이 블록 인코더(300)는 이미지 분해기로부터 수신된 이미지 블록을 인코딩하여 인코딩된 블록 리프리젠테이션을 생성한다. 이와 같은 이미지 블록 리프리젠테이션은, 색 코드 워드, 밀도 코드 워드, 알파 코드 워드 및, 알파 블록 압축 모드(PAA 또는 PAT)에서 동작될 시에 이미지 요소 관련 인덱스의 시퀀스를 포함한다. 블록 리프리젠테이션의 전체 사이즈는 비코딩된 이미지 블록의 대응하는 사이즈보다 더 작다. 블록 인코더(300)는 분해기(212)로부터 각 이미지 블록을 순차적으로 처리(인코딩)하기 위해 구성되는 것이 바람직하다.
바람직하게는, 블록 인코더(300)는 다수의 밀도 변경자 세트를 포함하는 적어도 하나의 밀도 테이블(500)을 포함하거나 이것에 접근한다. 테이블(500)의 변경자 세트는, 밀도 및 색 코드 워드의 생성을 위해 이용된다. 밀도 테이블(500)은 블록 인코더(300) 또는 이미지 인코더(210)에 배치될 수 있다.
이미지 인코더(210)는 모든 상이한 압축 모드에 이용되는 단일 밀도 테이블(500)을 포함한다. 선택적으로, 수개의 상이한 테이블은 인코더(210)에 배치되며, 여기서, 여기서, 테이블의 밀도 변경자는 상이한 압축 모드 및/또는 상이한 이미지 타입에 적합하며, 또는 테이블은 특정 이미지에 적합하다.
이미지 인코더(210)의 유닛(212, 214 및 300)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다. 유닛(212, 214, 300 및 500)은 이미지 인코더(210)에서 함께 구성될 수 있다. 선택적으로, 분산된 구성은 또한 사용자 단말기에 제공된 유닛의 일부에 의해 가능하다.
도 13은 본 발명에 따른 이미지 인코더(210)의 다른 실시예의 블록도를 도시 한 것이다. 이미지 인코더(210)는 아래에 더 이상 기술되지 않는 도 12의 실시예에서와 같은 이미지 분해기(212) 및 이미지 분석기(214)를 포함한다. 그러나, 인코더(210)는 다수의 (M, 여기서, M은 1보다 큰 양의 정수임) 블록 인코더(300-1 내지 300-M)를 포함한다. 이와 같은 각 블록 인코더(300-1 내지 300-M)는 기본적으로 도 12의 이미지 인코더의 블록 인코더에 대응한다. 이미지 인코더(210) 내에 다수의 블록 인코더(300-1 내지 300-M)를 제공함으로써, 분해기(212)로부터의 다수의 이미지 블록은 병렬로 처리(인코딩)될 수 있어, 전체 이미지 인코딩 시간을 감소시킨다. 선택적으로, 블록 인코더(300-1 내지 300-P)의 제 1 서브세트는 PAA 압축 모드에 따라 이미지 블록을 압축하기 위해 동작되고, 인코더(300-P+1 내지 300-M)의 나머지 서브세트는 PAT 압축 모드(1<P<M)에 따라 동작된다. 다른 실시예에서, 블록 인코더(300-1 내지 300-P)의 제 1 서브세트는 알파 이미지, 즉, PAA, PAT 및 PAP 모드에 따라 압축하기 위해 동작된다. 그리고 나서, 나머지 블록 인코더(300-P+1 내지 300-M)는 비알파 이미지(PA 모드 또는 PP 및 PC 모드)에 이용된다. 이와 같은 경우에, 바람직하게는, 이미지 분석기(214)는, 관련 압축 모드에 따라 동작 가능한 하나 (또는 다수의) 정확한 블록 인코더를 활성화시키는 압축 모드 명령을 생성시킨다.
각 블록 인코더(300-1 내지 300-M)는 밀도 테이블(500)을 포함한다. 상이한 인코더(300-1 내지 300-M)의 밀도 테이블(500)은 모두 동일한 밀도 변경자 값을 포함한다. 모드 특정 밀도 테이블은 인코더(300-1 내지 300-M)에 의해 사용될 수 있다. 선택적인 구성에서, 단일 밀도 테이블(500)은 이미지 인코더(210)에 배치되고, 모든 블록 인코더(300-1 내지 300-M)에 접속된다.
이미지 인코더(210)의 유닛(212, 214 및 300-1 내지 300-M)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다. 유닛(212, 214, 300-1 내지 300-M 및 500)은 이미지 인코더(210)에서 함께 구성될 수 있다. 선택적으로, 분산된 구성은 또한 사용자 단말기에 제공된 유닛의 일부에 의해 가능하다.
도 14는, 도 12의 이미지 인코더의 블록 인코더 또는 도 13의 이미지 인코더의 블록 인코더 중 하나와 같이 본 발명에 따른 블록 인코더(300)의 실시예의 블록도를 도시한 것이다. 인코더(300)는, 블록의 이미지 요소의 알파 값에 기초하여 다수의 양자화된 알파 값을 포함하는 알파 코드 워드를 생성하는 알파 양자화기(340)를 포함한다. 이 알파 코드 워드 또는 이 코드 워드의 양자화된 알파 값은 블록 인코더(300)의 모드 선택기(310)로 전송되는 것이 바람직하다. 현재 블록의 이미지 요소가 모두 비투명성 값과 관련되면, 알파 양자화기(340)는 비알파 블록 식별자를 생성한다. 이와 같은 경우에, 이 비알파 블록 식별자는 모드 선택기(310)로 전송된다.
모드 선택기(310)는 현재의 블록에 이용할 압축 모드를 선택한다. 이 모드 선택은, 적어도 부분적으로, 알파 양자화기(340)로부터 수신된 알파 코드 워드 또는 값에 기초하여 실행된다. 예컨대, 양자화된 알파 값이 모두 동일하지 않으면, PAA 압축 모드가 선택되는 반면에, 이들이 동일하면, PAT 압축 모드가 선택된다. 대신에, 모드 관련 양자화된 알파 값은 압축 모드를 선택할 시에 모드 선택기(310)에 의해 이용된다.
색 양자화기(320)는 이미지 블록의 이미지 요소의 색의 색 리프리젠테이션을 결정하여, 이 색 리프리젠테이션을 양자화한다. 색 리프리젠테이션은 이미지 요소의 24 비트 평균 색인 것이 바람직하다. 후속하여, 색 리프리젠테이션은 양자화기(310)에 의해 9 비트 색 리프리젠테이션, 즉 색 코드 워드로 양자화된다.
밀도 양자화기(330)는, 현재의 이미지 블록에 이용할 밀도 변경자 세트를 식별하는 블록 인코더(300) 내에 제공된다. 이 양자화기(330)는 관련된 밀도 테이블(500)로부터 이 변경자 세트를 선택하기 위해 구성되는 것이 바람직하다. 그 후, 양자화기(330)는 선택된 변경자 세트와 관련되는 밀도 코드 워드를 생성한다. 다수의 밀도 테이블(500)이 이용 가능한 경우에, 이용할 정확한 (모드 특정) 테이블은 모드 선택기(310)로부터 수신된 모드 신호에 기초하여 식별된다.
인코더(300)는, 블록의 이미지 요소에 대한 이미지 요소 관련 인덱스(알파 및 밀도 인덱스)를 선택하는 인덱스 선택기(350)를 더 포함한다. 모드 선택기(310)로부터의 모드 명령이 PAA 모드에 신호를 보내면, 인덱스 선택기(350)는 먼저 알파 인덱스를 가진 제 1 서브시퀀스를 생성시킨다. 이 알파 인덱스 서브시퀀스는 블록의 이미지 요소의 서브세트 내의 각 이미지 요소에 대한 알파 인덱스를 포함하는 것이 바람직하다. 이와 같은 알파 인덱스는, 알파 양자화기(340)에 의해 생성된 알파 코드 워드의 양자화된 알파 값 중 하나와 관련된다. 바람직하게는 하나의 이미지 요소를 포함하는 나머지 서브세트는 양자화된 알파 값 중 하나와 사전 정해져 관련되어 있으며, 이는 이 이미지 요소에는 알파 인덱스가 필요치 않음을 의미한다. 게다가, 인덱스 선택기(350)는 또한 밀도 인덱스 서브시퀀스를 생성시킨다. 이 PAA 모드의 제 1 실시예에서, 이 밀도 인덱스 서브시퀀스는, 블록 내의 다수의, 바람직하게는 2개, 더욱 바람직하게는 2개의 이웃한 이미지 요소의 각 서브세트에 대한 각각의 밀도 인덱스를 포함한다. PAA 모드의 제 2 실시예에서, 각 이미지 요소는 각각의 밀도 인덱스와 관련된다. 이들 밀도 인덱스는 제각기, 밀도 양자화기(330)로부터 밀도 코드 워드로 나타내는 변경자 세트의 밀도 변경자 중 하나와 관련된다. 제 1 PAA 실시예에서, 변경자 세트의 모든 변경자 값이 이용 가능하고, 밀도 인덱스로 나타낼 수 있다. 그러나, 제 2 PAA 실시예에서, 바람직하게는, 변경자 값의 서브세트는 밀도 인덱스로 나타낼 수 있다.
PAT 모드에서, 인덱스 선택기(350)는, 블록의 각 이미지 요소에 대해, 밀도 양자화기(330)에 의해 제공되는 바와 같은 밀도 코드 워드로 나타낸 밀도 변경자 세트의 변경자 값 중 하나와 관련된 밀도 인덱스를 포함하는 밀도 인덱스를 생성시킨다.
블록 인코더(300)는 선택적으로 이미지 블록에 대한 코드 워드 및 이미지 요소 관련 인덱스를 선택하기 위해 에러 값을 추정하는 에러 추정기(360)를 포함한다. 그리고 나서, 관련된 에러 값을 최소화하는 코드 워드 및 인덱스의 선택은 관련 압축된 이미지 블록 버전을 위해 행해진다.
이 블록 인코더 구조는 매우 유연하여, 알파 블록 압축 모드에 이용될 수 있을 뿐만 아니라 비알파 블록 압축 모드(PAP)에 이용될 수 있고, 비알파 이미지를 압축하는데에도 이용될 수 있다.
이와 같은 경우에, 모드 선택기(310)는 각각의 모드 신호를 생성시킨다. 그 리고 나서, 색 양자화기(320), 밀도 양자화기(330) 및 인덱스 선택기(350)는 이 모드 특정 신호에 응답한다.
예컨대, 이미지가 비알파 이미지인 경우에, 모드 선택기(310)는 이미지 인코더의 이미지 분석기로부터 비알파 이미지 식별자를 수신하는 것이 바람직하다. 그 후, PA 모드 또는 PP 및 PC 모드 중 하나의 신호는 모드 선택기(310)에 의해 생성된다.
바람직하게는, 모드 선택기(310)는 또한, 생성된 압축된 이미지 블록 내에 포함되거나 그와 관련된 블록 모드 인덱스를 생성시킨다. 알파 이미지의 경우, 이 모드 인덱스는 알파 블록(PAA 또는 PAT 모드) 또는 비알파 블록(PAP 모드)을 나타낸다. 비알파 이미지의 경우, 이 모드 인덱스는 PP 모드와 PC 모드 간에 판별하기 위해 이용될 수 있다. 그러나, 비알파 이미지가 단일 비알파 압축 모드(PA)를 이용하여 인코딩되는 경우에는, 블록 모드 인덱스는 필요치 않다.
색 양자화기(320)가 PAP, PA 또는 PP 모드 신호를 수신하면, 이미지 블록의 양자화된 색 리프리젠테이션은, PAA 및 PAT 모드의 9 비트 색 코드 워드에 비해, 12 비트 색 코드 워드인 것이 바람직하다. 모드 신호가 PC 모드를 나타내는 경우에, 이 색 양자화기(320)는 블록의 이미지 요소의 색 성분 값에 기초하여 2개의 12 비트 색 코드 워드를 생성하는 것이 바람직하다.
모드 선택기(310)로부터의 모드 특정 신호는, 밀도 양자화기(330)에 의해, 밀도 테이블 간에 및/또는 밀도 코드 워드 사이즈, 바람직하게는 PAA, PAT, PAP 및 PP 모드의 3 비트 밀도 코드 워드와 PA 모드의 4 비트 간에 판별하는데 이용된다.
모드 신호가 PC 모드를 나타내면, 인덱스 선택기(350)는 블록의 이미지 요소의 서브세트의 각 이미지 요소에 대한 색 인덱스를 생성시킨다. 각 색 인덱스는, PC 모드에서 동작될 시에 색 양자화기(320)에 의해 생성된 2개의 색 코드 워드 중 하나와 관련된다. 나머지 이미지 요소의 서브세트, 바람직하게는 하나의 이미지 요소는 색 코드 워드 중 하나와 사전 정해져 관련되어 있다.
블록 인코더(300)의 유닛(310 내지 360)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다. 유닛(310 내지 360 및 500)은 블록 인코더(300)에서 함께 구성될 수 있다. 선택적으로, 분산된 구성은 또한 이미지 인코더에 제공된 유닛의 일부에 의해 가능하다.
본 발명에 따른 색 양자화기(320)의 바람직한 구성은 도 15의 블록도에 도시되어 있다. 양자화기(320)는 이미지 블록의 이미지 요소의 색의 평균을 결정하기 위해 구성되는 수단(322)을 포함한다. 이 평균 색은 RGB 색이 바람직하지만, 이미지 처리 시에 이용되는 어떤 다른 색 포맷일 수 있다. 이 결정된 평균 색은 평균 색을 양자화하하는 양자화 수단(324)에 제공된다. 양자화기(314)는, 색 평균기(322)로부터의 24 비트 평균 RGB 색을 9 비트 RGB 색으로 양자화하기 위해 구성되는 것이 바람직하다.
PAP, PA 및 PP 모드 중 하나에 따라 동작될 시에, 대응하는 양자화된 평균 RGB 색은 12 비트인 것이 바람직하다. PC 모드에 따라 동작될 시에, 양자화 수단(324)은 이미지 블록에 대한 2개의 색 코드 워드를 결정한다. 이것은, (RGB) 색 공간 내의 평균 색 포인트를 관통하는 최적의 라인을 결정함으로써 실현될 수 있 다. 그리고 나서, 이 라인 상의 2개의 포인트가 선택되어, 양자화 수단(324)에 의해 2개의 (12 비트 RGB) 색 코드 워드로 양자화된다.
색 양자화기(320)의 유닛(322 및 324)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다. 유닛(322 및 324)은 색 양자화기(320)에서 함께 구성될 수 있다. 선택적으로, 분산된 구성은 또한 블록 인코더에 제공된 유닛의 일부에 의해 가능하다.
본 발명에 따른 밀도 양자화기(330)의 바람직한 구성은 도 16의 블록도에 도시되어 있다. 양자화기(330)는, 관련된 밀도 테이블(500)로부터 변경자 세트를 선택하는 변경자 세트 선택기(332)를 포함하는 것이 바람직하다. 그 후, 양자화기(330)는 선택된 변경자 세트와 관련된 밀도 코드 워드를 생성시킨다. 만일 있다면, 밀도 테이블의 선택은 입력 모드 신호에 기초하는 것이 바람직하다.
밀도 양자화기(330)의 유닛(332)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다.
본 발명에 따른 알파 양자화기(340)의 바람직한 구성은 도 17의 블록도에 도시되어 있다. 알파 양자화기(340)의 양자화 수단(344)은 이미지 블록의 원래의 알파 값을 양자화하는 것이 바람직하다. 각각의 알파 값은, [0.0, 0.3333, 0.6667, 1.0] (0, 85, 170, 255), [0.0, 0.50, 0.75, 1.0] (0, 128, 191, 255), [0.0, 0.25, 0.50, 1.0] (0, 64, 128, 255) 또는 [0.0, 0.25, 0.75, 1.0] (0, 64, 191, 255)의 세트와 같은 이용 가능한 값의 사전 정해진 세트로부터 선택된 값으로 양자화되는 것이 바람직하다. 이 세트는, 알파 양자화기(342)의 메모리 또는 테이 블(346)에 기억되거나 거기에 관련되는 것이 바람직하다. 그리고 나서, 양자화기(340) 내의 선택기(342)는, 블록의 (8개) 양자화된 값을 가장 잘 나타내는 사전 정해진 세트로부터 2개의 양자화된 알파 값을 선택한다. 선택적인 구성에서, 선택기(342)는 블록의 (8개) 원래의 (양자화되지 않은) 알파 값을 가장 잘 나타내는 사전 정해진 세트에 대한 2개의 양자화된 알파 값을 선택한다. 어느 한 경우에, 이들 2개의 선택된 값은 알파 코드 워드의 양자화된 알파 값일 것이다.
값 선택은, 메모리(346) 내의 세트로부터 2개의 양자화된 알파 값의 어떤 결합을 테스트함으로써 철저한 서치로서 실행될 수 있다. 그 후, 최소 에러 값을 생성시키는 특정 결합이 선택된다.
선택기(342)가 이들 2개의 양자화된 알파 값 (선택된 양자화된 알파 값)을 비교한다. 이들이 상이하면, 선택기(342)는 PAA 모드 식별자를 생성시켜, 그것을 블록 인코더의 모드 선택기로 전송한다. 그러나, 이들이 동일하면, PAT 모드 식별자가 대신에 생성되어 전송된다. 선택적으로, 2개의 양자화된 알파 값은 PAA/PAT 모드 식별자 대신에 모드 선택기로 송신될 수 있다.
2개의 양자화된 알파 값이 동일하지 않으면, 생성된 알파 코드 워드는 2개의 2비트 양자화된 알파 값을 포함하는 것이 바람직하다. 그러나, 양자화된 알파 값이 동일하면, 알파 코드 워드의 단일 비트만이 알파 값의 리프리젠테이션으로서 이용될 것이다. 다른 양자화된 알파 값의 비트 중 하나는 이 비트의 카피일 것이다. 게다가, 양자화된 알파 값 중 하나의 나머지 비트는 밀도 인덱스 시퀀스에 의해 공유될 것이며, 즉, 블록 인코더의 인덱스 선택기에 의해 정해진다. 다른 양자화된 알 파 값의 나머지 비트는 이 공유된 비트의 카피일 것이다.
알파 양자화기(340)의 유닛(342 및 344)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다. 유닛(342, 344 및 346)은 알파 양자화기(340)에서 함께 구성될 수 있다. 선택적으로, 분산된 구성은 또한 블록 인코더에 제공된 유닛의 일부에 의해 가능하다.
본 발명에 따른 인덱스 선택기(350)의 바람직한 구성은 도 18의 블록도에 도시되어 있다. 이 인덱스 선택기(350)는, 적어도 하나의 이미지 요소의 각 서브세트에 대한 밀도 인덱스를 선택하는 밀도 인덱스 선택기(352)를 포함하는 것이 바람직하다. 생성된 밀도 인덱스 서브시퀀스는, PAA 압축 모드에 따라 밀도 인덱스 선택기(352)를 동작할 시에 4개의 2 비트 또는 8개의 1 비트 밀도 인덱스를 포함하는 것이 바람직하다. 이에 대응하여, PAT (및 PAP, PA 또는 PP) 모드에 따라 동작될 시에는, 밀도 인덱스 선택기가 8개의 2 비트 밀도 인덱스의 서브시퀀스를 생성하는 것이 바람직하다.
바람직하게는, 인덱스 선택기(350)는 또한, PAA 모드로 동작할 시에 알파 인덱스를 선택하여, 알파 인덱스 서브시퀀스를 생성시키는 알파 인덱스 선택기(354)를 포함한다. 이 시퀀스는 7개의 1 비트 알파 인덱스를 포함하는 것이 바람직하다.
인덱스 선택기(350)는 또한, PC 모드로 동작 가능한 색 인덱스 선택기를 포함한다. 이와 같은 경우에, 그것은 색 인덱스의 시퀀스, 바람직하게는, 7개의 1 비트 색 인덱스를 생성시킨다.
인덱스 선택기(350)의 유닛(352 및 354)은 소프트웨어, 하드웨어 또는 이들 의 결합으로서 제공될 수 있다. 유닛(352 및 354)은 인덱스 선택기(350)에서 함께 구성될 수 있다. 선택적으로, 분산된 구성은 또한 블록 인코더에 제공된 유닛의 일부에 의해 가능하다.
디코더
도 19는 본 발명에 따른 이미지 디코더(220)의 실시예의 블록도를 도시한 것이다. 바람직하게는, 이미지 디코더(220)는, 인코딩된 이미지가 알파 이미지인지 비알파 이미지인지를 결정하기 위해 수신된 인코딩 이미지를 분석하는 이미지 분석기(224)를 포함한다. 이 이미지 분류는, 예컨대, 인코딩된 이미지 데이터와 함께 기억되고, 인코딩 이미지와 관련된 글로벌 알파 이미지 인덱스에 기초하는 것이 바람직하다. 알파 이미지 식별자(알파 이미지 또는 비알파 이미지)는, 이 분류에 기초하여 분석기에 의해 생성되어, 이미지 블록의 실제 디코딩을 실행하는 블록 디코더(400)로 송신된다. 이미지 디코더(220)만이 알파 이미지상에서 동작하면, 이 이미지 분석기(224)는 생략될 수 있다. 이미지 분석 기능성은 선택적으로 블록 디코더(400)내에 포함된다.
블록 선택기(222)는, 예컨대, 메모리로부터, 디코딩을 위한 블록 디코더(400)에 제공되는 어느 인코딩된 이미지 블록을 선택하기 위해 이미지 디코더(220)에 구성되는 것이 바람직하다. 블록 선택기(222)는, 예컨대, 헤더 또는 렌더링 엔진으로부터 인코딩된 이미지 데이터와 관련된 입력 정보를 수신하는 것이 바람직하다. 원하는 이미지 요소를 가진 압축된 이미지 블록의 어드레스는 입력 정보에 기초하여 계산된다. 이 계산된 어드레스는, 이미지 내의 이미지 요소(픽셀, 텍셀 또는 복셀) 좌표에 의존하는 것이 바람직하다. 이 어드레스를 이용하여, 블록 선택기(222)는, 예컨대, 메모리 또는 캐시로부터 인코딩된 이미지 블록을 식별한다. 그 후, 이 식별되는 인코딩된 이미지 블록은 기억 장치로부터 인출되어 블록 디코더(400)에 제공된다.
이점으로, 이미지 블록의 이미지 요소로의 (임의) 접근에 의해, 필요로 하는 이미지의 부분만이 선택적으로 인출 및 디코딩될 수 있다. 또한, 이미지는 데이터가 필요로 하는 어떤 순서로 디코딩될 수 있다. 예컨대, 텍스처 맵핑 시에, 텍스처의 일부만이 요구될 수 있고, 이들 부분은 일반적으로 비순차적인 순서로 요구될 것이다. 따라서, 본 발명의 이미지 디코딩은 이점으로 이미지의 일부만을 처리하기 위해 적용될 수 있다.
선택되는 인코딩된 이미지 블록은 블록 디코더(400)로 전송된다. 이미지 블록 이외에, 디코더(400)는 디코딩되는 블록의 이미지 요소를 지정하는 정보를 수신하는 것이 바람직하다. 이 정보는 전체 이미지 블록, 즉, 그 내의 모든 이미지 요소가 디코딩되는 것을 지정한다. 그러나, 수신된 정보는 단일 또는 소수의 이미지 요소만이 디코딩되는 것을 식별한다. 게다가, 블록 디코더(400)는 또한 알파 이미지 식별자를 수신한다. 그 후, 블록 디코더(400)는 블록의 이미지 요소의 압축 해제된 리프리젠테이션을 생성한다. 바람직하게는, 이 디코딩된 리프리젠테이션은 S 비트 색 및 T 비트 알파 값이며, 여기서, S는 원래의 이미지의 이미지 요소당 비트의 수, 예컨대, 24 비트 RGB 색이며, T는 원래의 이미지의 이미지 요소당 비트의 수, 예컨대, 8 비트 알파 값이다. 블록 디코더(400)는 디코딩 절차 중에 이용되는 알파 테이블(500)을 포함하는 것이 바람직하다. 선택적으로, 이 밀도 테이블(500)은 이미지 디코더(220) 내에도 제공된다. 도 12 및 도 13과 관련하여 상술한 바와 같이, 상이한 압축 해제 모드 및/또는 이미지 타입에 대한 상이한 밀도 테이블의 용도는 또한 이미지 디코더(220)에도 적용한다.
선택적 이미지 컴포저(composer)(226)는 디코더(220) 내에 제공된다. 이 컴포저는 블록 디코더(400)로부터 디코딩된 이미지 요소를 수신하여, 이들을 구성하여, 스크린상에 렌더링되거나 표시될 수 있는 픽섹, 텍셀 또는 복셀을 생성한다. 이 컴포저(226)는 단일 픽섹, 텍셀 또는 복셀을 생성하기 위해 수개의 입력 이미지 요소를 필요로 한다. 이 이미지 컴포저(226)는 선택적으로 그래픽 시스템에 제공된다.
이미지 디코더(220)의 유닛(222 내지 226 및 400)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다. 유닛(222 내지 226, 400 및 500)은 이미지 디코더(220)에서 함께 구성될 수 있다. 선택적으로, 분산된 구성은 또한 사용자 단말기에 제공된 유닛의 일부에 의해 가능하다.
도 20은 본 발명에 따른 이미지 디코더(220)의 다른 실시예의 블록도를 도시한 것이다. 블록 선택기(222), 이미지 분석기(224) 및 이미지 컴포저(226)는 도 19의 대응하는 유닛과 유사하여 더 이상 논의되지 않는다.
이미지 디코더(220)는 다수의 블록 디코더(400-1 내지 400-Q)(Q는 1보다 큰 양의 정수임)를 포함한다. 다수의 블록 디코더(400-1 내지 400-Q)에 접근함으로써, 이미지 디코더(220)는 병렬인 다수의 압축된 이미지 블록을 처리(압축 해제)할 수 있다. 이들 다수의 블록 디코더(400-1 내지 400-Q)는 이미지 디코더(220)의 처리 성능 및 효율을 증대하는 병렬 처리를 가능하게 한다. 예컨대, 하나의 디코딩된 이미지 요소는 일반적으로 가장 근접한 이웃 보간을 위해 충분한 반면에, 4개(8개)의 이미지 요소는 겹선형 (삼선형) 보간을 위해 필요하다. 각 블록 디코더(400-1 내지 400-Q)는 디코딩에 이용된 밀도 테이블(500)을 포함한다. 선택적으로, 단일 테이블(500)은 이미지 디코더(200)에 배치되어, 모든 블록 디코더(400-1 내지 400-Q)에 접속된다. 도 13과 관련하여 상술한 바와 같이, 상이한 타입의 밀도 테이블을 이용하는 것에 대한 추가적인 논의는 또한 이미지 디코더(220)에 적용한다. 도 13과 관련하여 상술한 바와 유사하게, 블록 디코더(400-1 내지 400-P)의 제 1 서브세트는 PAA 압축 해제 모드에 따라 압축된 이미지 블록을 압축 해제하기 위해 동작되는 반면에, 디코더(400-P+1 내지 400-Q)의 나머지 서브세트는 PAT 압축 해제 모드(1<P<Q)에 따라 동작된다. 선택적으로, 블록 디코더(400-1 내지 400-P)의 일부는 알파 이미지 (PAA, PAT 및 PAP 모드)의 블록을 압축 해제하는데 적합하고, 나머지 디코더(400-P+1 내지 400-Q)는 비알파 이미지(PA, PP 또는 PC 모드)의 블록을 압축 해제하는 이용될 수 있다.
이미지 디코더(220)의 유닛(222 내지 226 및 400-1 내지 400-Q)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다. 유닛(222 내지 226, 400-1 내지 400-Q 및 500)은 이미지 디코더(220)에서 함께 구성될 수 있다. 선택적으로, 분산된 구성은 또한 사용자 단말기에 제공된 유닛의 일부에 의해 가능하다.
도 21은 본 발명에 따른 블록 디코더(400)의 실시예를 도시한 것이다. 블록 디코더(400)는 어떤 모드를 선택하는 압축 해제 모드 선택기(410)를 포함하며, 이 모드에 따라 현재의 인코딩된 이미지 블록이 압축 해제된다. 이 모드 선택은, 적어도 부분적으로, 알파 코드 워드, 또는 알파 코드 워드의 양자화된 알파 값 중 적어도 하나의 조사에 기초하는 것이 바람직하며, 즉, PAA 모드와 PAT 모드 간에 식별을 가능하게 한다. 그리고 나서, 모드 특정 신호 또는 명령이 모드 선택기(410)에 의해 생성된다. 블록 디코더(400)의 포함된 유닛은 이 모드 특정 신호에 응답하는 것이 바람직하다.
알파 생성기(430)는 알파 코드 워드에 기초하여 이미지 블록의 이미지 요소에 대한 색 리프리젠테이션을 생성한다. 이 생성기(420)는 이 코드 워드의 9 비트 색을 24 비트 (RGB) 색으로 확장하는 것이 바람직하다.
블록 디코더(400)는, 밀도 코드 워드에 기초하여 관련된 밀도 테이블(500)로부터 밀도 변경자 세트를 제공하는 수단(420)을 더 포함한다. 이 제공자(420)는 밀도 테이블(500)로부터 변경자 값의 제 1 서브세트를 인출하여, 제 1 서브세트에 기초하여 변경자의 제 2 서브세트를 결정하기 위해 구성된다. 다수의 밀도 테이블(500) 간에 선택하는 경우에, 이용할 정확한 테이블은 모드 선택기(410)로부터의 모드 신호에 기초하여 제공자(420)에 의해 식별되는 것이 바람직하다.
변경자 선택기(440)는 수단(410)에 의해 제공된 변경자 세트로부터 밀도 변경자 값 중 하나를 선택하기 위해 배치된다. 변경자 선택기(440)는 밀도 인덱스의 시퀀스에 기초하여 압축된 이미지 블록의 이미지 요소에 대해 정확한 변경자 값을 선택하기 위해 구성된다. 모드 선택기(410)로부터의 모드 신호는 변경자 선택 기(440)가 시퀀스로부터 정확한 밀도 인덱스를 식별할 수 있게 하며, 예컨대, 1 비트 인덱스 (PAA 모드의 한 실시예) 및 2 비트 인덱스 (PAA 모드 또는 PAT 모드의 제 2 실시예) 간에 판별할 수 있게 한다.
색 생성기(430)로부터의 확장된 색 및 변경자 선택기(440)로부터의 변경자 값은 확장된 색의 색 성분의 밀도를 변경자 값으로 변경하는 밀도 변조기 또는 변경자(450)로 전송된다. 변경자(450)는 상이한 색 성분에 대한 상이한 웨이트를 가진 웨이트된 밀도 변경자 값을 이용한다. 또한, 생 성분이 밀도 변경되었으면, 변경자(450)는 최대 및 최소 임계, 예컨대 0과 255 간의 성분을 클램프하는 것이 바람직하다.
알파 값 생성기(460)는, 이미지 블록에 대한 적어도 하나의 알파 값을 생성시키기 위해 블록 디코더에 구성된다. 이 값 생성은 압축된 이미지 블록 리프리젠테이션의 알파 코드 워드에 기초한다. 모드 선택기(410)로부터의 모드 명령이 PAA 모드에 신호를 보내면, 생성기(460)는 알파 코드 워드의 제 1 양자화된 알파 값을 이용하여서는 제 1 알파 값을 결정하고, 제 2 양자화된 알파 값을 이용하여서는 제 2 알파 값을 결정한다. 생성기(460)는 알파 코드 워드의 양자화된 알파 값으로부터 직접 알파 값을 결정할 수 있다. 선택적인 구성에서, 생성기(460)는 테이블 룩업 또는 변환 알고리즘을 이용하여, 알파 코드 워드로부터 제 1 및 2 양자화된 알파 값을 제공한다. 어느 한 경우에, (2 비트) 양자화된 알파 값은 8 비트 알파 값으로 확장되는 것이 바람직하다. 그러나, PAT 모드로 동작할 시에, 바람직하게는, 양자화된 알파 값 중 하나의 단일 비트만이 단일 알파 값을 생성시키기 위해 이용된다.
알파 지정기(assigner)(470)는 생성기(460)로부터 알파 값을 수신하여, 이들을 이미지 요소에 지정한다. 이 값 지정은, PAA 모드에서, 알파 인덱스 및 사정 정해진 알파 관계를 이용하여 실행된다. 따라서, 관련된 알파 인덱스를 가진 이미지 요소에 대해, 그 인덱스는 2개의 가능한 알파 값 중 하나를 선택하는데 이용된다. 대신에, 이미지 요소가 양자화된 알파 값 중 하나와 사전 정해져 관련되어 있다면, 즉, 알파 인덱스를 갖지 않으면, 이 양자화된 알파 값으로부터 생성된 알파 값은 지정기(470)에 의해 이미지 요소에 지정된다. PAT 모드에서는, 압축된 이미지 블록에서 알파 인덱스가 검색되지 않는다. 결과로서, 압축 해제될 블록 내의 모든 이미지 요소에는 생성기(460)로부터 단일 알파 값이 지정된다.
도 14의 블록 인코더와 유사하게도, 본 발명에 따른 블록 디코더(400)는 압축 해제 모드의 확장을 위한 유연한 솔루션을 제공한다. 따라서, 블록 디코더(400)는 알파 블록만을 압축 해제하는데 전용된다. 그러나, 그것은 PAP, PA, PP 또는 PC 모드에 따라 비알파 블록의 압축 해제를 관리하기 위해 간단히 확장될 수 있다.
그리고 나서, 모드 선택기(410)는 현재의 압축된 이미지 블록과 관련된 입력 정보로부터 정확한 모드 특정 신호를 생성한다. 이 입력 정보는, 알파 코드 워드 외에, 압축된 이미지 블록에 포함된 블록 모드 인덱스 및 글로벌 알파 이미지 인덱스를 포함하는 것이 바람직하다. 이와 같은 경우에, PAA, PAT, PAP, PA, PP 및 PC 모드 간의 판별은 선택기(410)에 의해 행해질 수 있다.
색 생성기(430)는 모드 선택기(410)로부터의 모드 특정 신호에 응답한다. 신호가 PAA 또는 PAT 모드를 나타내는 경우에, (24 비트) 색 리프리젠테이션은 9 비 트 색 코드 워드로부터 생성된다. 그러나, PAP, PA 또는 PP 모드 신호에 의해, 색 생성기(430)가 12 비트 색 코드 워드로부터 (24 비트) 색 리프리젠테이션을 결정하도록 한다. 이에 대응하여, PC 모드에 따라 동작할 시에, 제 1 및 2 색 리프리젠테이션은, 제 1 및 2 색 코드 워드를 이용하여, 바람직하게는 (12 비트) 코드 워드를 각각의 24 비트 색으로 확장함으로써 결정된다. 관련 색 리프리젠테이션은, 색 인덱스 시퀀스 및 사전 정해진 색 코드 워드 관계를 이용하여 각각의 이미지 요소에 지정된다.
블록 디코더(400)의 유닛(410 내지 470)은 소프트웨어, 하드웨어 또는 이들의 결합으로서 제공될 수 있다. 유닛(410 내지 470 및 500)은 블록 디코더(400)에서 함께 구성될 수 있다. 선택적으로, 분산된 구성은 또한 사용자 단말기에 제공된 유닛의 일부에 의해 가능하다.
도 22A 및 22B는 본 발명에 따른 블록 디코더(400)의 가능한 하드웨어 구성을 개략적으로 도시한 것이다. 이 블록 디코더(400)는 PAA 및 PAT 압축 해제 모드에 따라 동작할 수 있을 뿐만 아니라, PAP, PP 및 PC 모드에 따라 동작할 수 있다. 블록 디코더(400)로의 입력은, PAT 모드 (700A), PAA 모드 (700B), PAP 모드 (700C), PC 모드 (700D) 또는 PP 모드 (700E)에 따라 압축된 이미지 블록 리프리젠테이션이다. 이들 상이한 입력 블록 리프리젠테이션(700A 내지 700E)으로 도시된 바와 같이, 이들 블록 리프리젠테이션의 각각은, 1 비트 블록 모드 인덱스, (사용된 모드에 따라, 색 코드 워드, 밀도 코드 워드 및/또는 알파 코드 워드를 포함하는) 코드 워드 시퀀스 및, (사용된 모드에 따라, 밀도 인덱스, 알파 인덱스 및/또 는 색 인덱스를 포함하는) 인덱스 시퀀스를 포함하는 것이 바람직하다. PAT, PAP 및 PP 모드에서, 밀도 인덱스는, 8개의 밀도 인덱스의 MSB가 인덱스 시퀀스의 8의 LSB에 우선하도록 구성된다. 따라서, 10110001 10000110bin의 인덱스 시퀀스는 다음의 밀도 인덱스 11bin, 00bin, 10bin, 10bin, 00bin, 01bin, 01bin 및 10bin을 나타낸다. PAA 모드에서, 이미지 요소의 각 쌍은 2 비트 밀도 인덱스와 관련된다. 이미지 요소의 밀도 인덱스의 MSB 및 LSB는 시퀀스에서 바로 곁에(next to each other) 제공된다. 따라서, 10000110bin의 밀도 인덱스 시퀀스는 다음의 밀도 인덱스 10bin, 00bin, 01bin 및 10bin을 나타낸다.
블록 디코더(400)는 PAA 또는 PAT 압축된 모드를 참조로 주로 기술되고, 다른 동작 모드에 전용되는 포함된 유닛은 간략히 기술될 것이다.
모드 선택기(410)는, 글로벌 알파 이미지 식별자, 바람직하게는 1 비트, 블록 모드 인덱스, 바람직하게는 1 비트 및, 양자화된 알파 값, 바람직하게는 4×1 비트의 형식으로 입력 정보를 수신한다. 모드 특정 신호는 입력 데이터의 처리에 후속하여 모드 선택기(410)로부터 출력된다. PC 특정 신호는 접속 라인 C1 상에서 반송되는 반면에, PAA 및 PAT 신호는 제각기 접속 라인 C2 및 C3 상에서 반송된다.
색 코드 워드는, 3개의 멀티플렉서(431 내지 433), 3개의 비트 확장자(434 내지 436) 및 OR 게이트(437)로 실현되는 색 생성기(430)에 제공된다. 멀티플렉서(431 내지 433)는 2개의 색 코드 워드를 이용하는 PC 모드로 인해서만 요구된다. 모든 다른 동작 모드에서, 라인 C4, C6 및 C8 상에서 반송되는 색 성분 데이터는 전송되는 반면에, 라인 C5, C7 및 C9 상에서 반송되는 데이터는 차단된다. 모드 선택 신호는 AND 게이트(446)에서 생성되고, AND 게이트(446)는 PC 모드에서 색 인덱스가 1bin일 시에 1bin을 출력하고, 그렇지 않으면, 0bin을 출력한다. 제 1의 비트 확장자(434)는 4 비트 적색 성분 및 αA0을 수신하고, 제 2의 비트 확장자(435)는 4 비트 녹색 성분 및 αA1을 수신하며, 제 3의 비트 확장자(436)는 4 비트 청색 성분 및 αB0 (또는 α)을 수신한다. 게다가, OR 게이트(437)로부터의 출력은 또한 각 확장자(434 내지 436)로 입력된다. PAA 및 PAT 모드에서는, 코드 워드의 각각의 색 성분이 단지 3 비트인 반면에, 다른 모드에 대해서는 대응하는 색 성분이 4 비트임을 상기한다. 결과로서, OR 게이트(437)는 PAA 또는 PAT 블록을 압축 해제할 시에 1bin을 출력하고, 그렇지 않으면, 0bin을 출력한다. 확장자(434 내지 436)가 1bin의 OR 게이트 출력을 수신하면, 그것은 앞선 멀티플렉서(431 내지 433)로부터의 4 비트 출력의 3개의 MSB만을 처리하여 8 비트 색 성분으로 확장할 것이다. 그러나, OR 게이트의 출력이 0bin이면, 전체 4 비트 멀티플렉서의 출력은 8 비트 색 성분으로 확장된다.
변경자 선택기(440)는 5개의 멀티플렉서(441 내지 445), AND 게이트(446) 및 NOR 게이트(447)로서 구성된다. 3 비트 어드레스 인덱스는 멀티플렉서(441, 442)에 입력된다. 이 어드레스 인덱스에 기초하여, 멀티플렉서(441, 442)는 8개의 이미지 요소 중 디코딩할 이미지 요소를 선택한다. PAT, PAP 및 PP 모드에서, 멀티플렉서(441)는 2 비트 밀도 인덱스의 MSB를 출력하고, 멀티플렉서(442)는 LSB를 출력한 다. 그러나, PAA 모드에서, 멀티플렉서(441)는 1 비트 알파 인덱스를 출력한다. 이 모드 구성에서, PAA 블록의 제 1 이미지 요소는 항상 제 1 양자화된 알파 값과 관련된다. 결과로서, 멀티플렉서(441)는, 알파 인덱스 시퀀스를 나타내는 7개의 입력 비트 플러스 제 1 이미지 요소를 나타내는 멀티플렉서(443)로부터의 하나의 부가적인 비트(0bin)를 수신한다. 이에 대응하여, PC 모드로 동작할 시에, 블록 리프리젠테이션(700D)의 7개의 색 인덱스는 멀티플렉서(441)에 직접 입력되는 반면에, 제 1 이미지 요소의 사전 정해진 색 관계는 멀티플렉서(443)로부터 0bin을 출력함으로써 실현된다. 따라서, 멀티플렉서(443)는 PP, PAP 및 PAT 모드에서 인덱스 시퀀스(비트 15-31)의 MSB (비트 15)를 전송한다. 그러나, PC 및 PAA 모드에서, NOR 게이트(447)는 0bin을 출력하여, 멀티플렉서(443)가 인덱스 시퀀스의 MSB 대신에 0bin을 출력하도록 한다.
PAA 모드에서, 멀티플렉서(444)는 2 비트 어드레스 인덱스를 수신하여, 이 어드레스를 이용하여 정확한 밀도 인덱스의 MSB를 선택한다. 밀도 인덱스의 대응하는 LSB는 멀티플렉서(442)에 의해 출력된다. 그리고 나서, 이들 2개의 비트는 라인 L3 상에 결합된다. 이 압축 해제 모드에서, 멀티플렉서(480)는 항상, 이 특정 구성에서, 어드레스 인덱스의 LSB로서 1bin을 출력한다.
멀티플렉서(441, 442) 또는 멀티플렉서(442, 444)로부터의 결합된 2 비트 출력은 멀티플렉서(445)에 입력된다. PAA 모드로 동작할 시에, 이 멀티플렉서는 멀티플렉서(442, 444)로부터 출력을 전송하거나, 그렇지 않으면, 멀티플렉서(441, 442) 로부터의 출력이 전송된다. 어느 한 경우에, 2 비트 밀도 인덱스는 테이블 룩업(422)에 제공된다. 이 테이블 룩업(422)은 도 21의 변경자 세트 제공자(420) 및 밀도 테이블(500)에 대응한다.
테이블 룩업(422)은 또한 접속 라인 C10 상에서 3 비트 밀도 인덱스를 수신한다. 상이한 밀도 테이블이 알파 블록 모드(PAA 및 PAT) 및 비알파 블록 모드(PAP 및 PP, PC 모드에는 밀도 테이블이 이용되지 않음을 상기함)에 이용되는 경우에, OR 게이트(437)는, 이들 모드 중 하나에 따라 이미지 블록을 압축 해제할 시에 PAA 또는 PAT 신호를 출력한다. 룩업(422)은 입력 밀도 코드 워드, 선택적 모드 신호 및 밀도 인덱스를 이용하여, 이 테이블에서 변경자 세트 중 하나로부터 정확한 밀도 변경자 값을 인출한다. 9 비트 부호 표시 (양 또는 음) 변경자 값은 멀티플렉서(424)에 제공된다. PC 모드에서, 이 멀티플렉서(424)는 0bin을 출력하는 반면에, 다른 동작 모드에서 그것은 테이블 룩업(422)으로부터 변경자 값을 출력한다.
9 비트 멀티플렉서 출력은 밀도 변경자(450)에 제공된다. 이 하드웨어 구성에서, 변경자(450)는 3개의 가산기(451 내지 453) 및 3개의 클램퍼(454 내지 456)를 포함한다. 변경자 값은 각각의 가산기(451 내지 453)로 입력된다. 제 1 가산기(451)는 밀도 변경자 값을 비트 확장자(434)로부터의 8 비트 적색 성분에 가산한다. 이에 대응하여, 가산기(452) 및 가산기(453)는 제각기 변경자 값을 비트 확장자(435 및 436)로부터의 8 비트 녹색 및 청색 성분에 가산한다. 선택적인 구성에서, 가산기(451 내지 453)는 다른 변경 소자, 예컨대, 승산기 또는 XOR 게이트로 대체될 수 있다. 가산기(451 내지 453)로부터의 출력은, 0과 255 간에 밀도 변경된 색 성분을 클램프하는 클램퍼(454 내지 456)로 전송된다. 클램퍼(454 내지 456)로부터의 출력은 이미지 요소의 압축 해제 또는 디코딩된 24 비트 색이다.
이 하드웨어 구성에서, 알파 생성기(460)는 3개의 멀티플렉서(461 내지 463), 부정(negation) 수단(464) 및 비트 확장자(465)를 포함한다. 제 1 멀티플렉서(461)는 2개의 양자화된 알파 값을 수신하여, 이들 중 하나를 멀티플렉서(441)로부터 알파 인덱스에 기초하여 출력한다. 선택된 양자화된 알파 값은 제 2 멀티플렉서(462)로 전송된다. "유용한" 양자화된 알파 값의 MSB는 부정 수단(464)에 제공되어, 부정된(negated) 값과 결합된다. 예컨대, α= 1bin이 0bin과 결합되어 10bin으로 된다. 멀티플렉서(462)는 멀티플렉서(461)로부터의 양자화된 알파 값과 결합된 (부분적으로 확장된) 양자화된 알파 값 사이에서 선택한다. PAT 모드에서, 유용한 양자화된 알파 값의 MSB로부터 발신하는 결합된 양자화된 알파 값이 전송되거나, 그렇지 않으면, 멀티플렉서의 출력이 전송된다. PAA 및 PAT 모드에서, 제 3 멀티플렉서(463)는 멀티플렉서(462)로부터의 양자화된 알파 값을 비트 확장자(465)로 전송한다. 그러나, 다른 압축 해제 모드에서, 멀티플렉서(463)는 사전 정해진 비투명성 값을 확장자(465)로 전송한다. 비트 확장자(465)는 수신된 2 비트 입력을 8 비트 알파 값으로 연장한다. 그리고 나서, 이 알파 값은 클램퍼(454 내지 456)로부터의 24 비트 색 값과 결합되어, 압축 해제된 이미지 요소를 생성시킨다.
도 22A 및 22B의 디코더(400)가 알파 이미지만을 압축 해제하기 위해 구성되 고, 즉, PAP, PAA 및 PAT 모드로 제한되면, 다음의 유닛, 즉, 멀티플렉서(424, 431 내지 433), AND 게이트(446) 및 NOR 게이트(447)는 하드웨어 구성에서 생략될 수 있다.
그러나, 도 22A 및 22B의 하드웨어 구성에 의해 알 수 있는 바와 같이, 전체의 디코더(400)는 소수의 표준 부품만을 이용하여 실현될 수 있지만, 5개까지의 상이한 압축 해제 모드에 따라 알파 및 비알파 이미지 및 블록을 압축 해제할 수 있다. 결과로서, 주어진 이미지 블록에 가장 적절한 모드는 이들 5개의 모드 중에 선택되어, 단일 압축 및 압축 해제 모드로 제한된 이미지 처리 기법에 비해 처리된 이미지의 이미지 품질을 극적으로 증진시킬 것이다.
도 22A의 접속 라인 C1 내지 C17은 도 22B의 C1 내지 C17로서 계속된다.
도 23은 도 22B의 비트 확장자(434 내지 436)의 가능한 하드웨어 구성을 개략적으로 도시한 것이다. 이들 확장자는 4 비트(적색, 녹색 또는 청색) 색 성분 또는 3 비트(적색, 녹색 또는 청색) 색 성분 중 어느 하나를 나타내는 4 비트 입력 및, 양자화된 알파 값의 1 비트를 수신한다. 그리고 나서, 확장자(434 내지 436)는 이 3 비트 또는 4 비트 색 성분을 대응하는 8 비트 색 성분으로 확장한다. 2개의 멀티플렉서 입력이 생성되는데, 그 중 하나는 4 비트 성분을 나타내고, 다른 하나는 3 비트 성분을 나타낸다. 4 비트 성분으로 개시하며, 제 1 멀티플렉서 입력의 MSB는 4 비트 확장자 입력의 LSB이고, 제 2 MSB는 확장자 입력의 MSB이며, 제 3 MSB는 확장자 입력의 제 2 MSB이고, 나머지 2개의 LSB는 확장자 입력의 2개의 LSB에 대응한다. 3 비트 성분의 경우에, 제 2 멀티플렉서 입력의 3개의 MSB는 확장자 입력의 3개의 MSB이고, 2개의 LSB는 확장자 입력의 MSB 및 제 2 MSB에 대응한다.
멀티플렉서(438)는 도 22B에서 OR 게이트(437)로부터의 1 비트 값에 기초하여 이들 2개의 5 비트 값 중 하나를 선택한다. 따라서, PAA 및 PAT 모드에서, 이 OR 게이트 출력은 1bin이고, 멀티플렉서(438)는 3 비트 색 성분에 대응하는 제 2의 5 비트 값을 전송하거나, 그렇지 않으면, 그것은 4 비트 색 성분에 대응하는 제 1의 5 비트 값을 출력한다. 어느 한 경우에, 5 비트 멀티플렉서 출력은 확장된 8 비트 색 성분을 형성하는 확장자 입력의 3개의 MSB와 결합된다.
도 24는 도 22B의 알파 생성기(460)에 이용된 비트 확장자(465)의 가능한 하드웨어 구성을 개략적으로 도시한 것이다. 이 확장자(465)는 2 비트 입력 양자화된 알파 값을 간단히 8 비트 알파 값으로 반복한다. 예컨대, 10bin의 2 비트 입력은 1010 1010bin으로 확장된다.
도 25는 도 22B의 클램퍼(454 내지 456)의 가능한 하드웨어 구성을 개략적으로 도시한 것이다. 클램퍼(454 내지 456)로의 입력은 10 비트 밀도 변경된 색 성분 값이다. 이 입력 값의 8개의 LSB는 멀티플렉서(457)에 입력된다. 멀티플렉서로의 다른 입력은 최대 임계값(255; 8 비트)이다. 멀티플렉서(457)는 밀도 변경된 색 성분의 제 2 MSB에 기초하여 8 비트 입력 값 또는 최대 임계값을 선택한다. 환언하면, 이 제 2 MSB가 1과 동일하면, 멀티플렉서(457)는 임계값을 출력하거나, 그렇지 않으면, (제 2 MSB는 0과 동일하다) 8 비트 입력 값은 제 2 멀티플렉서(458)로 출력된다. 이 제 2 멀티플렉서(458)는 색 성분의 MSB에 기초하여 제 1 멀티플렉 서(457)로부터의 출력 또는 최소 임계값(0; 8 비트)을 선택한다. 이 MSB 또는 부호 비트가 1과 동일하면, 제 1 멀티플렉서(457)로부터의 출력은 음이고, 최소 임계값은 제 2 멀티플렉서(458)에 의해 선택된다. 그러나, 부호 비트가 0이면, 제 1 멀티플렉서(457)로부터의 출력은 또한 제 2 멀티플렉서(458)로부터의 출력이어야 한다.
도 26은 테이블 룩업(422)의 가능한 하드웨어 구성을 개략적으로 도시한 것이다. 이 테이블 룩업(422)은 모든 압축 해제 모드에 공용인 단일 밀도 테이블을 이용하는데 적합하다. 3 비트 입력 밀도 코드 워드의 2개의 LSB는 2개의 멀티플렉서(421 및 423)에 입력되어, 각 멀티플렉서(421 및 423)에 대한 4개의 가능한 변경자 값으로부터 하나의 7 비트 밀도 변경자 값을 선택한다. 이들 8개의 밀도 변경자로부터, 테이블 1에 따라 밀도 테이블을 이용할 경우에 나머지 24개의 값이 계산된다. 멀티플렉서(421 및 423)로부터의 선택된 밀도 변경자 값은, 도 22B의 멀티플렉서(445)로부터의 1 비트 입력 데이터(2 비트 밀도 리프리젠테이션의 1 비트)에 기초하여 이들 값 중 하나를 선택하는 다른 멀티플렉서(425)에 입력된다. 그 후, 선택된 변경자 값은 멀티플렉서(426) 및, 변경자 값을 부정하는 부정 수단(427)의 양방으로 전송된다. 또한, 이 부정된 값은 멀티플렉서(426)로 전송된다. 이 멀티플렉서(426)는, 도 22B의 멀티플렉서(445)로부터의 밀도 리프리젠테이션의 나머지 비트에 기초하여 양의 7 비트 밀도 변경자 값 또는 부정된 값을 선택한다. 그 후, 선택된 (8 비트) 변경자 값은 멀티플렉서(428) 및 비트 시프터(429)의 양방으로 입력되며, 이 비트 시프터는 변경자 값의 1 비트를 좌측으로 시프트시켜, (10 진법의 값과 2의 곱에 대응하는) 9 비트 밀도 변경자를 생성시킨다. 멀티플렉서(428)는, 밀 도 코드 워드로부터의 MSB에 기초하여 8 비트 변경자 값 또는 9 비트 변경자 값을 선택한다. 이 선택으로부터의 결과는, 특정 이미지 요소에 이용하기 위해, 48 가능한 변경자 값에서의 9 비트 밀도 변경자 값이다.
도 27은 2개의 모드 특정 밀도 테이블을 포함하는 도 22B의 테이블 룩업(422)의 가능한 하드웨어 구성을 개략적으로 도시한 것이다. 3 비트 입력 밀도 코드 워드의 2개의 LSB는 4개의 멀티플렉서(421A, 423A 및 421B, 423B)에 입력되어, 각 멀티플렉서(421A, 423A 및 421B, 423B)에 대한 4개의 가능한 변경자 값으로부터 하나의 7 비트 밀도 변경자 값을 선택한다. 멀티플렉서(421A, 423A 및 421B, 423B)로부터의 선택된 밀도 변경자 값은 한 쌍의 멀티플렉서(425A, 425B)에 입력된다. 이들 멀티플렉서(425A, 425B)는 제각기 도 22B의 멀티플렉서(445)로부터의 1 비트 입력 데이터(2 비트 밀도 리프리젠테이션의 1 비트)에 기초하여 이들 값 중 하나를 선택한다. 그 후, 선택된 변경자 값은 양자 모두 멀티플렉서(425C)로 전송된다. 이 멀티플렉서(425C)는, 이들 2개의 변경자 입력 값 중 어느 것을 선택하여, 도 22B의 OR 게이트(437)로부터의 1 비트 데이터에 기초하여 현재의 블록에 이용되는 어느 밀도 테이블을 선택한다. 그 후, 선택된 변경자 값은, 도 26과 관련하여 상술한 바와 같이, 멀티플렉서(426, 428), 부정 수단(427) 및 비트 시프터(429)에서 처리된다.
당업자는 첨부한 청구범위에 의해 한정된 본 발명의 범주내에서 본 발명에는 다양한 수정 및 변경이 행해질 수 있음을 알 수 있다.
참고 문헌
[1] 미국 특허 제5,956,431호
{2} Y. Linde, A. Buzo and R. Gray, "An algorithm for vector quantizer design", IEEE Transactions on Communications, Vol. 28, pp. 84-94, January, 1980

Claims (34)

  1. 다수의 이미지 요소(610)를 포함하는 이미지 블록(600)을 압축하는 방법에 있어서,
    상기 다수의 이미지 요소(600)의 색의 리프리젠테이션인 색 코드 워드(720)를 결정하는 단계,
    상기 다수의 이미지 요소(610)의 하나 이상의 알파 값의 리프리젠테이션인 다수의 양자화된 알파 값(740A, 740B)을 포함하는 알파 코드 워드(740)를 제공하는 단계,
    상기 다수의 이미지 요소(610)의 밀도를 변경하는 다수의 밀도 변경자의 세트의 리프리젠테이션인 밀도 코드 워드(730)를 제공하는 단계,
    이미지 요소 관련 인덱스의 인덱스 시퀀스(750)를 제공하는 단계 및,
    상기 알파 코드 워드(740)에 기초하여 압축 모드를 선택하는 단계로서, 상기 선택된 압축 모드는 제 1 압축 모드인 단계를 포함하는데,
    상기 인덱스 시퀀스(750)는, 상기 이미지 블록(600)의 하나 이상의 이미지 요소(610)의 각 서브세트에 대해, 상기 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함하는 제 1 인덱스 서브시퀀스(750B) 및, 상기 다수의 이미지 요소(610)의 적어도 부분의 각 이미지 요소(610)에 대해서는, 상기 선택된 압축 모드가 제 2 압축 모드인 경우에, 상기 다수의 양자화된 알파 값(740A, 740B)으로부터의 양자화된 알파 값과 관련된 알파 인덱스를 포함하는 제 2 인덱스 서브시 퀀스(750A)를 포함하며,
    상기 인덱스 시퀀스(750)는, 상기 이미지 블록(600)의 각 이미지 요소(610)에 대해, 상기 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함하는 것을 특징으로 하는 이미지 블록 압축 방법.
  2. 제 1 항에 있어서,
    상기 모드 선택 단계는 상기 알파 코드 워드(740)의 상기 다수의 양자화된 알파 값(740A, 740B)의 하나 이상에 기초하여 상기 압축 모드를 선택하는 단계를 포함하는 것을 특징으로 하는 이미지 블록 압축 방법.
  3. 제 2 항에 있어서,
    상기 모드 선택 단계는,
    상기 다수의 양자화된 알파 값(740A, 740B)이 상이할 경우에는 상기 제 1 압축 모드를 선택하는 단계 및,
    상기 다수의 양자화된 알파 값(740A, 740B)이 동일할 경우에는 상기 제 2 압축 모드를 선택하는 단계를 포함하는 것을 특징으로 하는 이미지 블록 압축 방법.
  4. 제 1 내지 3 항 중 어느 한 항에 있어서,
    상기 밀도 코드 워드 제공 단계는 상기 압축 모드를 선택한 후에 실행되는 것을 특징으로 하는 이미지 블록 압축 방법.
  5. 제 1 내지 3 항 중 어느 한 항에 있어서,
    상기 서브세트의 각각은 상기 이미지 블록(600)의 2개의 이웃한 이미지 요소(610)를 포함하는 것을 특징으로 하는 이미지 블록 압축 방법.
  6. 제 1 내지 3 항 중 어느 한 항에 있어서,
    상기 서브세트의 각각은 하나의 이미지 요소(610)를 포함하고, 상기 밀도 인덱스는 상기 밀도 변경자 세트의 서브세트로부터의 밀도 변경자와 관련되는 것을 특징으로 하는 이미지 블록 압축 방법.
  7. 제 1 내지 3 항 중 어느 한 항에 있어서,
    상기 제 2 인덱스 서브시퀀스(750A)는, 상기 다수의 이미지 요소(610)의 제 1 부분의 각 이미지 요소(610)에 대해, 상기 다수의 양자화된 알파 값(740A, 740B)으로부터의 양자화된 알파 값과 관련된 알파 인덱스를 포함하고, 상기 다수의 이미지 요소(610)의 제 2 나머지 부분의 각 이미지 요소(610)는 상기 다수의 양자화된 알파 값(740A, 740B)으로부터의 사전 정해진 양자화된 알파 값과 관련되는 것을 특징으로 하는 이미지 블록 압축 방법.
  8. 이미지를 인코딩하는 방법에 있어서,
    상기 이미지를 다수의 이미지 블록(600)으로 분해하는 단계로서, 각 이미지 블록(600)은 다수의 이미지 요소(610)를 포함하는 단계 및,
    하나 이상의 이미지 블록(600)에 대해, 제 1 내지 3 항 중 어느 한 항에 따라 상기 하나 이상의 이미지 블록(600)을 압축함으로써 압축된 이미지 블록 리프리젠테이션(700)을 결정하는 단계를 포함하는 것을 특징으로 하는 이미지 인코딩 방법.
  9. 다수의 이미지 요소(610)를 포함하는 이미지 블록(600)의 압축된 리프리젠테이션(700)을 처리하는 방법으로서, 상기 압축된 리프리젠테이션(700)은 색 코드 워드(720), 알파 코드 워드(740), 밀도 코드 워드(730) 및 이미지 요소 관련 인덱스의 인덱스 시퀀스(750)를 포함하는 이미지 블록의 압축된 리프리젠테이션 처리 방법에 있어서,
    상기 알파 코드 워드(740)에 기초하여 압축 해제 모드를 선택하는 단계,
    상기 밀도 코드 워드(730)에 기초하여 다수의 밀도 변경자 세트를 제공하는 단계를 포함하고,
    상기 이미지 블록(600)의 하나 이상의 이미지 요소(610)에 대해서는,
    상기 색 코드 워드(720)에 기초하여 색 리프리젠테이션를 생성하는 단계,
    상기 인덱스 시퀀스(750)에 기초하여 상기 밀도 변경자 세트로부터 밀도 변경자를 선택하는 단계,
    상기 선택된 밀도 변경자에 기초하여 상기 하나 이상의 이미지 요소(610)의 밀도를 변경하는 단계 및,
    상기 알파 코드 워드(740)에 기초하여 하나 이상의 알파 값을 생성하는 단계를 포함하는데, 상기 선택된 압축 해제 모드가 제 1 압축 해제 모드인 경우에, 상기 방법은,
    상기 하나 이상의 이미지 요소(610)에 대해, 상기 알파 코드 워드(740)에 기초하여 생성된 다수의 알파 값으로부터 알파 값을 선택하는 단계 및,
    상기 선택된 알파 값을 상기 하나 이상의 이미지 요소(610)에 지정하는 단계를 포함하고, 상기 선택된 압축 해제 모드가 제 2 압축 해제 모드인 경우에, 상기 방법은,
    상기 하나 이상의 알파 값을 상기 하나 이상의 이미지 요소(610)에 지정하는 단계를 포함하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 방법.
  10. 제 9 항에 있어서,
    상기 모드 선택 단계는 상기 알파 코드 워드(740)로 나타낸 다수의 양자화된 알파 값(740A, 740B)의 하나 이상의 양자화된 알파 값(740A)에 기초하여 상기 압축 해제 모드를 선택하는 단계를 포함하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 방법.
  11. 제 10 항에 있어서,
    상기 모드 선택 단계는,
    상기 다수의 양자화된 알파 값(740A, 740B)이 상이할 경우에는 상기 제 1 압축 해제 모드를 선택하는 단계 및,
    상기 다수의 양자화된 알파 값(740A, 740B)이 동일할 경우에는 상기 제 2 압축 해제 모드를 선택하는 단계를 포함하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 방법.
  12. 제 9 내지 11 항 중 어느 한 항에 있어서,
    상기 변경자 세트 제공 단계는 상기 압축 해제 모드를 선택한 후에 실행되는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 방법.
  13. 제 9 내지 11 항 중 어느 한 항에 있어서,
    상기 제 1 압축 해제 모드에서, 상기 인덱스 시퀀스(750)는, 상기 이미지 블록(600)의 하나 이상의 이미지 요소(610)의 각 서브세트에 대해, 상기 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함하는 제 1 인덱스 서브시퀀스(750B) 및, 상기 다수의 이미지 요소(610)의 적어도 부분의 각 이미지 요소(610)에 대해서는, 상기 다수의 알파 값으로부터의 알파 값과 관련된 알파 인덱스를 포함하는 제 2 인덱스 서브시퀀스(750A)를 포함하며, 상기 제 2 압축 해제 모드에서는 상기 인덱스 시퀀스(750)가, 상기 이미지 블록(600)의 각 이미지 요소(610)에 대해, 상기 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 방법.
  14. 제 13 항에 있어서,
    상기 제 2 인덱스 서브시퀀스(750A)는, 상기 다수의 이미지 요소(610)의 제 1 부분의 각 이미지 요소(610)에 대해, 상기 다수의 알파 값으로부터의 알파 값과 관련된 알파 인덱스를 포함하고, 상기 다수의 이미지 요소(610)의 제 2 나머지 부분의 각 이미지 요소(610)는 상기 다수의 알파 값으로부터의 사전 정해진 알파 값과 관련되는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 방법.
  15. 제 14 항에 있어서,
    상기 선택 단계는, 상기 선택된 압축 해제 모드가 상기 제 1 압축 해제 모드이면,
    상기 하나 이상의 이미지 요소(610)가 상기 다수의 이미지 요소의 상기 제 1 부분에 속할 경우에는 상기 인덱스 시퀀스(750)에 기초하여 상기 다수의 알파 값으로부터 상기 알파 값을 선택하는 단계 및,
    상기 하나 이상의 이미지 요소(610)가 상기 다수의 이미지 요소(610)의 상기 제 2 나머지 부분에 속할 경우에는 상기 사전 정해진 알파 값을 선택하는 단계를 포함하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 방법.
  16. 다수의 이미지 요소(610)를 포함하는 각 이미지 블록(600)의 압축된 리프리젠테이션(700)을 포함하는 인코딩된 이미지를 디코딩하는 방법으로서, 압축된 이미지 블록 리프리젠테이션(700)은 색 코드 워드(720), 알파 코드 워드(740), 밀도 코드 워드(730) 및 이미지 요소 관련 인덱스의 인덱스 시퀀스(750)를 포함하는 인코딩된 이미지의 디코딩 방법에 있어서,
    하나 이상의 압축된 이미지 블록 리프리젠테이션(700)에 대해, 제 9 내지 11 항 중 어느 한 항에 따라 상기 하나 이상의 압축된 이미지 블록 리프리젠테이션(700)을 처리함으로써, 하나 이상의 압축 해제된 이미지 요소 리프리젠테이션(610)을 결정하는 단계 및,
    상기 하나 이상의 압축 해제된 이미지 요소 리프리젠테이션(610)을 처리함으로써 이미지를 생성하는 단계를 포함하는 것을 특징으로 하는 인코딩된 이미지의 디코딩 방법.
  17. 다수의 이미지 요소(610)를 포함하는 이미지 블록(600)을 압축하는 시스템(300)에 있어서,
    상기 다수의 이미지 요소(610)의 색의 리프리젠테이션인 색 코드 워드(720)를 결정하는 색 양자화기(320),
    상기 다수의 이미지 요소(610)의 하나 이상의 알파 값의 리프리젠테이션인 다수의 양자화된 알파 값(740A, 740B)을 포함하는 알파 코드 워드(740)를 제공하는 알파 양자화기(340),
    상기 다수의 이미지 요소(610)의 밀도를 변경하는 다수의 밀도 변경자 세트의 리프리젠테이션인 밀도 코드 워드(730)를 제공하는 밀도 양자화기(330),
    이미지 요소 관련 인덱스의 인덱스 시퀀스(750)를 제공하는 수단(350) 및,
    압축 모드 신호가 제 1 압축 모드를 나타낼 경우에, 상기 알파 코드 워드(740)에 기초하여 압축 모드 신호를 생성하는 수단(310)을 포함하는데,
    상기 압축 모드 신호가 제 2 압축 모드를 나타낼 경우에, 상기 제공 수단(350)은, 상기 이미지 블록(600)의 하나 이상의 이미지 요소(610)의 각 서브세트에 대해, 상기 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함하는 제 1 인덱스 서브시퀀스(750B) 및, 상기 다수의 이미지 요소(610)의 적어도 부분의 각 이미지 요소(610)에 대해서는, 상기 다수의 양자화된 알파 값(740A, 740B)으로부터의 양자화된 알파 값과 관련된 알파 인덱스를 포함하는 제 2 인덱스 서브시퀀스(750A)를 제공하기 위해 동작되며,
    상기 압축 모드 신호가 제 2 압축 모드를 나타낼 경우에, 상기 제공 수단(350)은, 상기 이미지 블록(600)의 각 이미지 요소(610)에 대해, 상기 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 제공하기 위해 동작되는 것을 특징으로 하는 이미지 블록 압축 시스템.
  18. 제 17 항에 있어서,
    상기 생성 수단(310)은 상기 알파 코드 워드(740)의 상기 다수의 양자화된 알파 값(740A, 740B)의 하나 이상에 기초하여 상기 압축 모드 신호를 생성시키는 것을 특징으로 하는 이미지 블록 압축 시스템.
  19. 제 18 항에 있어서,
    상기 생성 수단(310)은 상기 다수의 양자화된 알파 값이 상이할 경우에는 제 1 압축 모드 신호를 생성시키고, 상기 다수의 양자화된 알파 값이 동일할 경우에는 제 2 압축 모드 신호를 생성시키는 것을 특징으로 하는 이미지 블록 압축 시스템.
  20. 제 17 내지 19 항 중 어느 한 항에 있어서,
    상기 밀도 양자화기(330)는 상기 압축 모드 신호에 응답하여 상기 밀도 코드 워드를 제공하기 위해 구성되는 것을 특징으로 하는 이미지 블록 압축 시스템.
  21. 제 17 내지 19 항 중 어느 한 항에 있어서,
    상기 서브세트의 각각은 상기 이미지 블록(600)의 2개의 이웃한 이미지(610)를 포함하는 것을 특징으로 하는 이미지 블록 압축 시스템.
  22. 제 17 내지 19 항 중 어느 한 항에 있어서,
    상기 서브세트의 각각은 하나의 이미지 요소(610)를 포함하고, 상기 밀도 인덱스는 상기 밀도 변경자 세트의 서브세트로부터의 밀도 변경자와 관련되는 것을 특징으로 하는 이미지 블록 압축 시스템.
  23. 제 17 내지 19 항 중 어느 한 항에 있어서,
    상기 제 2 인덱스 서브시퀀스(750A)는, 상기 다수의 이미지 요소(600)의 제 1 부분의 각 이미지 요소(610)에 대해, 상기 다수의 양자화된 알파 값(740A, 740B)으로부터의 양자화된 알파 값과 관련된 알파 인덱스를 포함하고, 상기 다수의 이미지 요소(610)의 제 2 나머지 부분의 각 이미지 요소(610)는 상기 다수의 양자화된 알파 값(740A, 740B)으로부터의 사전 정해진 양자화된 알파 값과 관련되는 것을 특징으로 하는 이미지 블록 압축 시스템.
  24. 이미지 인코딩 시스템(210)에 있어서,
    이미지를 다수의 이미지 블록(600)으로 분해하는 이미지 분해기(212)로서, 각 이미지 블록(600)은 다수의 이미지 요소(610)를 포함하는 이미지 분해기(212) 및,
    제 17 내지 19 항 중 어느 한 항에 따른 하나 이상의 이미지 블록 압축 시스템(300)을 포함하는 것을 특징으로 하는 이미지 인코딩 시스템.
  25. 다수의 이미지 요소(610)를 포함하는 이미지 블록(600)의 압축된 리프리젠테이션(700)을 처리하는 시스템(400)으로서, 상기 압축된 리프리젠테이션(700)은 색 코드 워드(720), 알파 코드 워드(740), 밀도 코드 워드(730) 및 이미지 요소 관련 인덱스의 인덱스 시퀀스(750)를 포함하는 이미지 블록의 압축된 리프리젠테이션 처리 시스템에 있어서,
    상기 밀도 코드 워드(730)에 기초하여 다수의 밀도 변경자 세트를 제공하는 수단(420),
    상기 이미지 블록(600)의 하나 이상의 이미지 요소(610)에 대해, 상기 색 코드 워드(720)에 기초하여 색 리프리젠테이션를 생성하는 색 생성기(420),
    상기 이미지 블록(600)의 하나 이상의 이미지 요소(610)에 대해, 상기 인덱스 시퀀스(750)에 기초하여 상기 밀도 변경자 세트로부터 밀도 변경자를 선택하는 변경자 선택기(440),
    상기 선택된 밀도 변경자에 기초하여 상기 하나 이상의 이미지 요소(610)의 밀도를 변경하는 밀도 변경자(450),
    상기 알파 코드 워드(740)에 기초하여 하나 이상의 알파 값을 생성하는 알파 생성기(460),
    상기 알파 코드 워드(740)에 기초하여 압축 해제 모드 신호를 생성하는 수단(410) 및,
    상기 압축 해제 모드 신호가 제 1 압축 해제 모드를 나타낼 경우에, 알파 지정기(470)를 포함하는데,
    상기 압축 해제 모드 신호가 제 2 압축 해제 모드를 나타낼 경우에, 상기 지정기(470)는 상기 알파 코드 워드(740)에 기초하여 생성된 다수의 알파 값으로부터 알파 값을 선택하여, 상기 선택된 알파 값을 상기 하나 이상의 이미지 요소(610)에 지정하기 위해 동작되고,
    상기 압축 해제 모드 신호가 제 2 압축 해제 모드를 나타낼 경우에, 상기 지정기(470)는 상기 하나 이상의 알파 값을 상기 하나 이상의 이미지 요소(610)에 지정하기 위해 동작되는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 시스템.
  26. 제 25 항에 있어서,
    상기 생성 수단(410)은 상기 알파 코드 워드(740)로 나타낸 다수의 양자화된 알파 값(740A, 740B)의 하나 이상의 양자화된 알파 값(740A)의 값에 기초하여 상기 압축 해제 모드 신호를 생성하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 시스템.
  27. 제 26 항에 있어서,
    상기 생성 수단(410)은 상기 다수의 양자화된 알파 값(740A, 740B)이 상이할 경우에는 제 1 압축 해제 모드 신호를 생성시키고, 상기 다수의 양자화된 알파 값(740A, 740B)이 동일할 경우에는 제 2 압축 해제 모드 신호를 생성시키는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 시스템.
  28. 제 25 내지 27 항 중 어느 한 항에 있어서,
    상기 세트 제공 수단(420)은 상기 압축 해제 모드 신호에 응답하여 상기 세트를 제공하기 위해 구성되는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 시스템.
  29. 제 25 내지 27 항 중 어느 한 항에 있어서,
    상기 제 1 압축 해제 모드에서, 상기 인덱스 시퀀스(750)는, 상기 이미지 블록(600)의 하나 이상의 이미지 요소(610)의 각 서브세트에 대해, 상기 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함하는 제 1 인덱스 서브시퀀스(750B) 및, 상기 다수의 이미지 요소(600)의 적어도 부분의 각 이미지 요소(610)에 대해서는, 상기 다수의 알파 값으로부터의 알파 값과 관련된 알파 인덱스를 포함하는 제 2 인덱스 서브시퀀스(750A)를 포함하며, 상기 제 2 압축 해제 모드에서는 상기 인덱스 시퀀스(750)가, 상기 이미지 블록(600)의 각 이미지 요소(610)에 대해, 상기 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 시스템.
  30. 제 29 항에 있어서,
    상기 제 2 인덱스 서브시퀀스(750A)는, 상기 다수의 이미지 요소(600)의 제 1 부분의 각 이미지 요소(610)에 대해, 상기 다수의 알파 값으로부터의 알파 값과 관련된 알파 인덱스를 포함하고, 상기 다수의 이미지 요소(610)의 제 2 나머지 부분의 각 이미지 요소(610)는 상기 다수의 알파 값으로부터의 사전 정해진 알파 값과 관련되는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 시스템.
  31. 제 30 항에 있어서,
    상기 지정기(470)는, 상기 압축 해제 모드 신호가 상기 제 1 압축 해제 모드 를 나타내면, 상기 하나 이상의 이미지 요소(610)가 상기 다수의 이미지 요소의 상기 제 1 부분에 속할 경우에는 상기 인덱스 시퀀스(750)에 기초하여 상기 다수의 알파 값으로부터 상기 알파 값을 선택하고, 상기 하나 이상의 이미지 요소(610)가 상기 다수의 이미지 요소(610)의 상기 제 2 나머지 부분에 속할 경우에는 상기 사전 정해진 알파 값을 선택하기 위해 구성되는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션 처리 시스템.
  32. 다수의 이미지 요소(610)를 포함하는 각 이미지 블록(600)의 압축된 리프리젠테이션(700)을 포함하는 인코딩된 이미지를 디코딩하는 시스템(220)으로서, 압축된 이미지 블록 리프리젠테이션(700)은 색 코드 워드(720), 알파 코드 워드(740), 밀도 코드 워드(730) 및 이미지 요소 관련 인덱스의 인덱스 시퀀스(750)를 포함하는 인코딩된 이미지의 디코딩 시스템에 있어서,
    하나 이상의 압축된 이미지 블록 리프리젠테이션(700)에 대해, 제 25 내지 27 항 중 어느 한 항에 따라, 하나 이상의 압축 해제된 이미지 요소 리프리젠테이션(610)을 결정하는 하나 이상의 시스템(400) 및,
    이미지를 생성하기 위해 상기 하나 이상의 압축 해제된 이미지 요소 리프리젠테이션(610)을 처리하는 수단(226)을 포함하는 것을 특징으로 하는 인코딩된 이미지의 디코딩 시스템.
  33. 제 17 내지 19 항, 제 24 내지 27 항 또는 제 32 항 중 어느 한 항에 따른 시스템(210; 220; 300; 400)을 포함하는 것을 특징으로 하는 이미지 처리 단말기.
  34. 다수의 이미지 요소(610)를 포함하는 이미지 블록(600)의 신호 리프리젠테이션(700)을 저장하는 기록 매체에 있어서,
    상기 다수의 이미지 요소(610)의 색의 리프리젠테이션인 색 코드 워드(720),
    상기 이미지 블록(600)의 상기 이미지 요소(610)의 밀도를 변경하는 다수의 밀도 변경자의 세트의 리프리젠테이션인 밀도 코드 워드(730)
    상기 다수의 이미지 요소(610)의 하나 이상의 알파 값의 리프리젠테이션인 다수의 양자화된 알파 값(740A, 740B)을 포함하는 알파 코드 워드(740) 및,
    상기 이미지 블록(600)의 하나 이상의 이미지 요소(610)의 각 서브세트에 대해, 상기 밀도 변경자 세트로부터의 밀도 변경자와 관련된 밀도 인덱스를 포함하는 인덱스 시퀀스(750)를 포함하는 것을 특징으로 하는 이미지 블록의 신호 리프리젠테이션을 저장하는 기록 매체.
KR1020067012083A 2003-12-19 2004-12-17 멀티모드 알파 이미지 처리 방법 및 장치 KR100819597B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
SE0303497A SE526226C2 (sv) 2003-12-19 2003-12-19 Bildbehandling
SE0303497-2 2003-12-19
SE0401850A SE0401850D0 (sv) 2003-12-19 2004-07-08 Image processing
SE0401850-3 2004-07-08

Publications (2)

Publication Number Publication Date
KR20060103454A KR20060103454A (ko) 2006-09-29
KR100819597B1 true KR100819597B1 (ko) 2008-04-07

Family

ID=32871336

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020067012083A KR100819597B1 (ko) 2003-12-19 2004-12-17 멀티모드 알파 이미지 처리 방법 및 장치
KR1020067011298A KR100821762B1 (ko) 2003-12-19 2004-12-17 알파 이미지 처리 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020067011298A KR100821762B1 (ko) 2003-12-19 2004-12-17 알파 이미지 처리 방법 및 장치

Country Status (8)

Country Link
US (2) US7693337B2 (ko)
EP (2) EP1697899B1 (ko)
JP (2) JP4444969B2 (ko)
KR (2) KR100819597B1 (ko)
AT (2) ATE552574T1 (ko)
DK (1) DK1697899T3 (ko)
SE (1) SE0401850D0 (ko)
WO (2) WO2005059837A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101266667B1 (ko) 2009-06-09 2013-05-31 소니 주식회사 장치 내 제어기에서 프로그래밍되는 압축 방법 및 시스템

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE526226C2 (sv) * 2003-12-19 2005-08-02 Ericsson Telefon Ab L M Bildbehandling
SE0401850D0 (sv) 2003-12-19 2004-07-08 Ericsson Telefon Ab L M Image processing
JP4805924B2 (ja) * 2004-07-08 2011-11-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチモード画像処理のための方法、システム、及びシステムを具備するユーザ端末
ES2569419T3 (es) 2005-05-27 2016-05-10 Telefonaktiebolaget Lm Ericsson (Publ) Procesamiento de imágenes basado en peso
JP4444180B2 (ja) * 2005-07-20 2010-03-31 株式会社東芝 テクスチャ符号化装置、テクスチャ復号化装置、方法、およびプログラム
EP1924970B1 (en) * 2005-08-19 2009-03-11 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Texture compression based on two hues with modified brightness
US7787691B2 (en) * 2006-04-11 2010-08-31 Telefonaktiebolaget Lm Ericsson (Publ) High quality image processing
US7714873B2 (en) * 2006-06-29 2010-05-11 Microsoft Corporation Strategies for compressing textures
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
US7813296B2 (en) * 2006-12-27 2010-10-12 Telefonaktiebolaget L M Ericsson (Publ) Adapting transmission and reception time in packet based cellular systems
US8208731B2 (en) 2008-04-07 2012-06-26 Microsoft Corporation Image descriptor quantization
US8208543B2 (en) * 2008-05-19 2012-06-26 Microsoft Corporation Quantization and differential coding of alpha image data
JP5071282B2 (ja) * 2008-07-15 2012-11-14 ソニー株式会社 ビット選択回路
EP2327058A4 (en) * 2008-09-23 2017-03-29 Telefonaktiebolaget LM Ericsson (publ) Pixel block processing
ATE550744T1 (de) * 2008-12-31 2012-04-15 St Ericsson Sa Verfahren und vorrichtung zum mischen von bildern
WO2011065886A1 (en) * 2009-11-24 2011-06-03 Telefonaktiebolaget L M Ericsson (Publ) Decoding system and method operable on encoded texture element blocks
US20110157192A1 (en) * 2009-12-29 2011-06-30 Microsoft Corporation Parallel Block Compression With a GPU
JP4753397B1 (ja) * 2010-11-30 2011-08-24 株式会社アクセル エンコードシステムおよびデコードシステム
CN102972023B (zh) 2011-07-13 2016-09-28 松下知识产权经营株式会社 图像压缩装置、图像解压缩装置以及图像处理装置
JP6003049B2 (ja) * 2011-11-30 2016-10-05 富士通株式会社 情報処理装置、画像送信方法及び画像送信プログラム
US10147202B2 (en) * 2013-03-15 2018-12-04 Arm Limited Methods of and apparatus for encoding and decoding data
US9582847B2 (en) * 2013-04-22 2017-02-28 Intel Corporation Color buffer compression
KR20160011951A (ko) * 2014-07-23 2016-02-02 삼성전자주식회사 영상 처리 디바이스 및 방법
US10410398B2 (en) * 2015-02-20 2019-09-10 Qualcomm Incorporated Systems and methods for reducing memory bandwidth using low quality tiles
GB201503125D0 (en) 2015-02-25 2015-04-08 Advanced Risc Mach Ltd Graphics processing systems
US9640149B2 (en) * 2015-07-21 2017-05-02 Think Silicon Sa Methods for fixed rate block based compression of image data
GB2556634B (en) 2016-11-18 2020-05-27 Advanced Risc Mach Ltd Graphics processing systems
US20180308450A1 (en) * 2017-04-21 2018-10-25 Intel Corporation Color mapping for better compression ratio
US11256528B2 (en) 2018-10-26 2022-02-22 Nvidia Corporation Individual application window streaming suitable for remote desktop applications
US11501470B2 (en) 2020-05-27 2022-11-15 Microsoft Technology Licensing, Llc Geometric encoding of data
US11670009B2 (en) 2020-08-26 2023-06-06 Meta Platforms Technologies, Llc Rate controlled image and texture data compression

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6404923B1 (en) 1996-03-29 2002-06-11 Microsoft Corporation Table-based low-level image classification and compression system
US6658146B1 (en) 1997-10-02 2003-12-02 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1315392C (en) * 1988-11-18 1993-03-30 Taejeong Kim Side-match and overlap-match vector quantizers for images
DE4335143A1 (de) * 1993-10-15 1995-04-20 Hell Ag Linotype Verfahren und Einrichtung zur Umsetzung von Farbwerten
US5642139A (en) * 1994-04-29 1997-06-24 Cirrus Logic, Inc. PCMCIA video card
US5742892A (en) 1995-04-18 1998-04-21 Sun Microsystems, Inc. Decoder for a software-implemented end-to-end scalable video delivery system
US5793371A (en) * 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US5748904A (en) * 1996-09-13 1998-05-05 Silicon Integrated Systems Corp. Method and system for segment encoded graphic data compression
US5926647A (en) * 1996-10-11 1999-07-20 Divicom Inc. Processing system with dynamic alteration of a color look-up table
US5956431A (en) * 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
US6775417B2 (en) * 1997-10-02 2004-08-10 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values
JPH11313219A (ja) * 1998-01-20 1999-11-09 Fujitsu Ltd カラーデータ変換方法
CA2347383A1 (en) 1998-07-03 2000-01-13 Hudson Co., Ltd. Image coding/decoding method and recordind medium having program for this method recorded thereon
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US6301393B1 (en) 2000-01-21 2001-10-09 Eastman Kodak Company Using a residual image formed from a clipped limited color gamut digital image to represent an extended color gamut digital image
US6580496B2 (en) * 2000-11-09 2003-06-17 Canesta, Inc. Systems for CMOS-compatible three-dimensional image sensing using quantum efficiency modulation
US20050058322A1 (en) * 2003-09-16 2005-03-17 Farmer Michael E. System or method for identifying a region-of-interest in an image
US7043077B2 (en) * 2001-11-07 2006-05-09 International Business Machines Corporation System and method for efficient compression of raster image data
GB0128888D0 (en) * 2001-12-03 2002-01-23 Imagination Tech Ltd Method and apparatus for compressing data and decompressing compressed data
US20060056689A1 (en) * 2002-11-19 2006-03-16 Koninklijke Philips Electronics N.V. Image segmentation using template prediction
US7251360B2 (en) * 2003-02-14 2007-07-31 Canon Kabushiki Kaisha Look-up table generation method, computer program, and imaging apparatus
US6944333B2 (en) * 2003-04-30 2005-09-13 Ventana Medical Systems, Inc. Color image compression via spectral decorrelation and elimination of spatial redundancy
SE0401852D0 (sv) * 2003-12-19 2004-07-08 Ericsson Telefon Ab L M Image processing
SE526226C2 (sv) 2003-12-19 2005-08-02 Ericsson Telefon Ab L M Bildbehandling
SE0401850D0 (sv) * 2003-12-19 2004-07-08 Ericsson Telefon Ab L M Image processing
JP4805924B2 (ja) 2004-07-08 2011-11-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチモード画像処理のための方法、システム、及びシステムを具備するユーザ端末
EP1886277B1 (en) 2005-05-27 2016-02-17 Telefonaktiebolaget LM Ericsson (publ) Weight based image processing
EP1924970B1 (en) 2005-08-19 2009-03-11 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Texture compression based on two hues with modified brightness
US7787691B2 (en) * 2006-04-11 2010-08-31 Telefonaktiebolaget Lm Ericsson (Publ) High quality image processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6404923B1 (en) 1996-03-29 2002-06-11 Microsoft Corporation Table-based low-level image classification and compression system
US6658146B1 (en) 1997-10-02 2003-12-02 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101266667B1 (ko) 2009-06-09 2013-05-31 소니 주식회사 장치 내 제어기에서 프로그래밍되는 압축 방법 및 시스템

Also Published As

Publication number Publication date
EP1697899B1 (en) 2012-04-04
EP1697899A1 (en) 2006-09-06
JP2007520103A (ja) 2007-07-19
US20070127812A1 (en) 2007-06-07
SE0401850D0 (sv) 2004-07-08
DK1697899T3 (da) 2012-07-16
US7693337B2 (en) 2010-04-06
JP4444969B2 (ja) 2010-03-31
EP1697898B1 (en) 2012-04-04
KR20060103454A (ko) 2006-09-29
JP4444968B2 (ja) 2010-03-31
KR20060103445A (ko) 2006-09-29
KR100821762B1 (ko) 2008-04-14
EP1697898A1 (en) 2006-09-06
WO2005059837A1 (en) 2005-06-30
US20070019869A1 (en) 2007-01-25
JP2007517434A (ja) 2007-06-28
US7657105B2 (en) 2010-02-02
WO2005059838A1 (en) 2005-06-30
ATE552575T1 (de) 2012-04-15
ATE552574T1 (de) 2012-04-15

Similar Documents

Publication Publication Date Title
KR100819597B1 (ko) 멀티모드 알파 이미지 처리 방법 및 장치
JP4444970B2 (ja) マルチモード画像処理
RU2407223C2 (ru) Сжатие текстуры на основании двух оттенков с модифицированной яркостью
JP4444967B2 (ja) 画像処理
US8326055B2 (en) Image codec engine
EP2245596B1 (en) Prediction-based image processing
KR101161900B1 (ko) 멀티모드 이미지 처리

Legal Events

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

Payment date: 20130312

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140312

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150310

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160310

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180312

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190314

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200313

Year of fee payment: 13