KR100554805B1 - 이미지 압축 시스템 및 방법 - Google Patents

이미지 압축 시스템 및 방법 Download PDF

Info

Publication number
KR100554805B1
KR100554805B1 KR1020007003614A KR20007003614A KR100554805B1 KR 100554805 B1 KR100554805 B1 KR 100554805B1 KR 1020007003614 A KR1020007003614 A KR 1020007003614A KR 20007003614 A KR20007003614 A KR 20007003614A KR 100554805 B1 KR100554805 B1 KR 100554805B1
Authority
KR
South Korea
Prior art keywords
block
image
encoded
encoded image
color
Prior art date
Application number
KR1020007003614A
Other languages
English (en)
Other versions
KR20010030916A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25478717&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100554805(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 소닉블루 인코포레이티드 filed Critical 소닉블루 인코포레이티드
Publication of KR20010030916A publication Critical patent/KR20010030916A/ko
Application granted granted Critical
Publication of KR100554805B1 publication Critical patent/KR100554805B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 이미지 프로세싱 시스템에 관한 것으로서, 이미지 프로세싱 시스템(205)은 서로 연결되는 이미지 인코더 시스템(220) 및 이미지 디코더 시스템(230)을 포함하고, 상기 이미지 인코더 시스템(220)은 서로 연결되는 이미지 디컴포서(315) 및 블럭 인코더(318)를 포함하고, 상기 블럭 인코더(318)는 색 양자화기(335) 및 비트맵 구성 모듈(340)을 포함하고, 상기 이미지 디컴포서(315)는 최초 이미지를 블럭으로 분할하고, 다음에 각각의 블럭(260)은 블럭 인코더(318a-n번째)에 의해 처리되고, 특히, 색 양자화기(335)는 양자화된 픽셀값이 도출되는 색과 같은 기준 픽셀값으로 기능하는 약간의 기준점 또는 코드워드를 선택하고, 다음에 비트맵 구성 모듈(340)은 각각의 픽셀 색을 도출된 양자화된 색 중 하나에 매핑하고, 코드워드 및 비트맵은 인코드된 이미지 블럭(320)으로 출력되며, 상기 디코더 시스템(230)은 블럭 디코더(505a-m번째)를 포함하고, 상기 블럭 디코더(505a-m번째)는 블럭형태 검출기(520), 하나 이상의 디코더 유닛 및 출력 선택기(523)를 포함하고, 인코드된 데이터 블럭의 코드워드를 사용하여, 비교기 및 디코더 유닛은 인코드된 이미지 블럭에 대한 양자화된 색을 결정하고, 각각의 픽셀을 양자화된 색 중 하나에 매핑하고, 상기 출력 선택기(523)는 적당한 색을 출력하고, 이것은 최초 이미지를 나타내는 이미지를 출력하기 위해 다른 디코더 블럭과 이미지 컴포서에서 정렬되는 것을 특징으로 하며, 최초 이미지를 인코드하고, 최초 이미지의 표현을 생성하기 위해 인코드된 이미지를 디코드하는 방법이 또한 개시되어 있다.

Description

이미지 압축 시스템 및 방법{SYSTEM AND METHOD FOR FIXED-RATE BLOCK-BASED IMAGE COMPRESSION WITH INFERRED PIXEL VALUES}
본 발명은 이미지 프로세싱 시스템, 특히 텍스처에 대한 고정율 이미지 압축(fixed-rate image compression)을 사용하는 3차원 렌더링(rendering) 시스템에 관한 것이다.
컴퓨터상에 사실적 그래프(realistic graph) 또는 애니메이션 그래프(animated graph)와 같은 이미지 생성 기술이 알려져 있다. 그런 이미지를 생성하기 위해서는 그래픽 서브시스템에 대하여 많은 메모리 대역폭과 프로세싱 능력을 필요로 한다. 메모리 대역폭과 프로세싱 능력에 대한 요구를 감소시키기 위해, 여러 가지 압축 방법 및 시스템이 개발되었다. 이들 방법 및 시스템으로 엔트로피(Entropy) 또는 무손실 인코더, 이산 코사인 변환 또는 JPEG 형 압축기, 블럭 절단 코딩(block truncation coding), 칼라 셀(color cell) 압축 등이 있다. 그러나 이런 방법 및 시스템들은 많은 결점을 갖는다.
엔트로피 또는 무손실 인코더는 렘펠-지브(Lempel-Ziv) 인코더를 포함하고, 여러 가지 목적으로 사용된다. 엔트로피 코딩은 예측 가능성에 의존한다. 엔트로피 인코더를 사용하는 데이터 압축에 있어서, 소수의 비트가 가장 빈번하게 발생하는 심벌을 인코드하는데 사용된다. 확률이 고정된 정체 시스템(stationary system)에서, 엔트로피 코딩은 주어진 알파벳의 심벌로 달성될 수 있는 것보다 더 낮은 경계를 압축에 대해 제공한다. 엔트로피 코딩에서의 문제점은 임의의 주어진 심벌에 대한 무작위 접근을 허용하지 않는다는 것이다. 상당한 프로세싱 시간과 자원을 필요로 하고, 메모리 처리능력을 감소시키는 심벌을 디코드하기 위해 관련 심벌에 앞서 중요 압축된 데이터의 일부가 먼저 페치되고, 복원되어야 한다. 현재의 엔트로피 방법 및 시스템에서의 다른 문제점은 메모리 크기가 고정되는 경우 이런 형태의 인코딩 체계를 비실용적으로 만드는 보장된 압축률을 제공하지 못한다는 것이다.
이산 코사인 변환("DCT") 또는 JPEG형 압축기는 사용자가 소정 레벨의 이미지 품질을 선택하는 것을 허용한다. DCT를 사용하여 비상관 계수들은 각각의 계수가 압축 효율의 손실 없이 독립적으로 처리될 수 있도록 생성된다. DCT 계수들은 최소 중요 정보를 선택적으로 폐기하는 시각적으로 가중(加重)된 양자화 값을 사용하여 양자화될 수 있다.
그러나, DCT는 많은 단점을 갖는다. DCT 및 JPEG형 압축기에 있어서 한가지 문제점은 합당한 압축률 및 품질을 얻기 위해 최소 접근 가능한 단위로서 통상 8 x 8 또는 16 x 16과 같은 보다 큰 픽셀 블럭을 필요로 한다는 것이다. 매우 작은 영역 또는 단일 픽셀에 대한 접근은 많은 양의 압축된 데이터를 페칭(fetching)하는 것을 포함하며, 따라서 증가된 프로세서 능력과 메모리 대역폭을 필요로 한다. DCT 및 JPEG형 압축기에 있어서 두번째 문제는 압축률이 가변이고, 따라서 보다 큰 프로세서 자원을 필요로 하는 복잡한 메모리 관리시스템을 필요로 한다는 것이다. DCT 및 JPEG형 압축기에 있어서 세번째 문제는 큰 압축률의 사용이 이미지 품질을 상당히 악화시킨다는 것이다. 예를 들어, 이미지는 이미지 에지 주위에 링잉(ringing) 뿐만 아니라 이미지 영역에서의 현저한 색 변화의 형태로 상당히 왜곡될 수 있다.
DCT 및 JPEG형 압축기에 있어서 네번째 문제점은 복원이 복잡하고, 관련 하드웨어 비용이 상당히 높다는 것이다. 또한, 복원기의 높은 대기시간으로 인해 대기시간을 보상하기 위해 시스템 전체를 버퍼링하는 부가적인 하드웨어 비용이 커진다. 마지막으로, DCT 및 JPEG형 압축기에 있어서 5번째 문제점은 칼라 키 이미지(color key image)가 상기 방법 및 시스템으로 압축될 수 있는지가 명확하지 않다는 것이다.
블럭 절단 코딩("BTC") 및 칼라 셀 압축("CCC")은 4 x 4 픽셀 블럭에 대하여 로컬 1비트 양자화기(quantizer)를 사용한다. 상기 하나의 블럭에 대한 압축 데이터는 단지 두 가지 색과, 2가지 색 중 하나가 16픽셀의 각각에 할당되는 것을 나타내는 16 비트로 구성된다. BTC/CCC 이미지를 디코딩하는 것은 일단 16-텍셀(texel)-블럭(32 비트)이 메모리로부터 검색되면, 각각의 픽셀이 그 블럭에 대한 2개의 가능한 색을 룩업(lookup)하고, 16 결정 비트에서 관련 비트에 따른 색을 선택하는 것에 의해 디코드되도록 룩업 테이블을 갖는 멀티플렉서를 사용하는 것으로 구성된다.
BTC/CCC 방법은 상당한 이미지 악화를 초래하는 단지 두 개의 색 레벨에 대하여 각각의 블럭을 양자화한다. 또한, CCC의 2 비트 순열은 256색 룩업 테이블에 8비트 인덱스로서 두 가지 색을 저장한다. 따라서, 상기 픽셀 블럭은 부가적인 메모리 대역폭을 소비할 수 있는 부가적인 정보의 페칭(fetching) 없이는 디코드될 수 없다.
BTC/CCC 방법 및 시스템은 6 바이트의 픽셀 블럭을 초래하는 16 비트값(테이블내의 인덱스는 아님)으로서 2개의 픽셀을 저장하는 픽셀당 3 비트 체계를 사용할 수 있다. 그러나 그런 단위를 페칭하는 것은 메모리 오정렬에 기인하는 부가적인 오버헤드 때문에 시스템 성능을 감소시킨다. BTC/CCC에 있어서 다른 문제점은 투명 픽셀을 나타내기 위하여 칼라 키잉(color keying)을 사용하는 이미지를 압축하는데 사용될 때 이미지 품질의 상당한 악화가 존재한다는 것이다.
따라서, 기억장치, 메모리 대역폭 요구 및 디코딩 하드웨어 복잡성을 최소화하면서, 또한 하나 이상의 픽셀에 대한 무작위 접근을 위한 정렬을 유지하는데 편리한 크기로 이미지 데이터 블럭을 압축하면서, 압축 이미지의 정확도를 최대화하는 방법 및 시스템이 필요하다.
발명의 요약
이미지 프로세싱 시스템은 서로 연결되는 이미지 인코더 또는 압축 시스템 및 이미지 디코더 또는 복원 시스템을 포함한다. 이미지 인코더 시스템은 소스로부터 최초 이미지를 수신하고, 최초 이미지를 크기가 감소되고, 이미지 품질이 최소한으로 손실된 최초 이미지를 나타내는 압축된 형태로 인코드한다.
이미지 인코더 시스템은 하나 이상의 블럭 인코더에 연결되는 이미지 디컴포서(decomposer)를 포함한다. 또한, 하나 이상의 블럭 인코더는 인코드된 이미지 컴포서(encoded image composer)에 연결된다. 인코드된 이미지 컴포서는 출력에 연결된다. 부가적으로, 이미지 디컴포서와 인코드된 이미지 컴포서는 헤더 컨버터에 연결된다. 인코드된 이미지 컴포서의 출력은 예를 들어 기억장치, 메모리 또는 데이터 통신라인과 연결될 수 있다.
이미지 디컴포서는 최초 이미지를 헤더 및 소수의 이미지 블럭으로 분할한다. 헤더는 헤더 컨버터로 전송되며, 헤더 컨버터는 헤더를 수정하여 인코드된 이미지 컴포서로 전송한다. 각각의 이미지 블럭은, 예를 들어 4x4 픽셀과 같은 고정된 크기를 갖고, 하나 이상의 블럭 인코더로 전송된다. 블럭 인코더는 이미지 블럭을 압축 또는 인코드된 블럭형태로 변환하고, 이것도 또한 고정된 크기를 갖는다. 인코드된 이미지 컴포서는 인코드된 이미지 블럭을 정렬하고, 이들을 수정된 헤더와 결합하여 최초 이미지를 나타내는 인코드된 이미지 데이터인 출력을 생성한다.
각각의 블럭 인코더는 서로 연결되는 색 양자화기와 비트맵 구성 모듈을 포함한다. 또한, 색 양자화기는 블럭형태 모듈, 커브 선택 모듈 및 코드워드 생성 모듈을 포함한다. 블럭형태 모듈은 커브 선택 모듈에 연결되고, 커브 선택 모듈은 코드워드 생성 모듈에 연결된다.
바람직한 실시예에서, 블럭형태 모듈은 4개의 양자화된 픽셀값(예를 들어, 색) 또는 3개의 양자화된 픽셀값(예를 들어, 색)과 투명을 포함하는 2개의 섹 세트 중 어느 것이 블럭 디컴포서로부터 수신된 각각의 데이터 블럭의 인코딩에 사용되는지를 식별한다. 커브 선택 모듈 및 코드워드 생성 모듈은 2개의 기본색 또는 코드워드를 선택하는 기능을 하고, 이들은 이미지 블럭내의 각각의 픽셀이 매핑되는 칼러 세트(color set)식별하는데 사용될 수 있다.
바람직한 실시예에서, 칼러 세트는 칼러 공간(color space)의 한 선을 따라 등거리에 위치한다. 부가적으로, 2 종점의 양자화된 색들은 그 자체로 코드워드로 사용될 수 있고, 나머지 하나 또는 2개의 양자화된 색들은 추정되거나 보간된다. 하나의 양자화된 색이 추정되면, 4번째 기준이 투명성(transparency)일 수 있다.
일단 코드워드 및 양자화된 색들이 식별되면, 비트맵 구성 모듈은 블럭의 각각의 픽셀에 대한 비트맵 값을 구성한다. 각 픽셀의 비트맵 값은 양자화된 색들 중에서 어느 것이 픽셀과 일치하는지를 나타내는 인덱스(ID 값으로 식별됨)이다. 비트맵 구성 모듈은 단일 인코드된 이미지 블럭으로서 비트맵 및 코드워드를 출력한다. 바람직한 실시예에서, 각각의 비트맵 값은 2 비트이고, 32 비트의 비트맵을 포함하고, 이것은 2개의 16 비트 코드워드와 함께 64 비트의 인코드된 이미지 블럭을 형성한다.
다음에, 블럭 인코더로부터의 각각의 인코드된 이미지 데이터 블럭은 인코드된 이미지 컴포서에서 정렬되어 인코드된 이미지 블럭의 데이터 파일을 생성한다. 인코드된 이미지 블럭의 데이터 파일은 최초 이미지 데이터로부터의 데이터 정보와 결합하여 인코드 또는 압축된 이미지 데이터를 생성한다. 다음에 인코드된 이미지 데이터는 이미지 디코더 시스템에서 디코드 또는 복원될 수 있다.
이미지 디코더 시스템은 인코드된 이미지 디컴포서, 헤더 컨버터, 하나 이상의 블럭 디코더 및 이미지 컴포서를 포함한다. 인코드된 이미지 디컴포서는 헤더 컨버터 및 하나 이상의 블럭 인코더에 연결된다. 이미지 컴포서는 하나 이상의 블럭 인코더 및 헤더 컨버터에 연결된다. 이미지 컴포서는 최초 이미지를 나타내는 이미지를 출력하기 위해 출력에 연결된다.
인코드된 이미지 데이터는 인코드된 이미지 데이터를 헤더 및 인코드된 이미지 블럭으로 분리 또는 분할하는 인코드된 이미지 디컴포서에 의해 수신된다. 헤더는 헤더 컨버터로 전송되며, 헤더 컨버터는 헤더를 수정하여 이미지 컴포서로 전송한다. 하나 이상의 인코드된 이미지 블럭은 하나 이상의 블럭 디코더에 의해 독립적으로 디코드된다. 이미지 컴포서는 디코드된 이미지 블럭을 디코드된 이미지 블럭의 데이터 파일로 정렬한다. 데이터 파일은 헤더 컨버터로부터의 헤더와 연결되고, 전체 파일은 최초 이미지를 나타내는 이미지로서 출력된다.
각각의 블럭 디코더는 블럭형태 검출기, 각각의 블럭형태에 대한 디코더 유닛 및 출력 선택기를 포함한다. 블럭형태 검출기는 각각의 디코더 유닛 및 출력 선택기와 연결된다. 부가적으로, 각각의 인코더 유닛은 출력 선택기와 연결된다. 블럭형태 검출기는 인코드된 블럭을 디코드하기 위해 어느 디코더 유닛이 선택되는지를 결정한다. 바람직한 실시예에서, 블럭형태는 인코드된 블럭의 코드워드의 연산 비교를 통해 결정된다.
선택된 디코더에 기초하여, 양자화된 색들은 인코드된 블럭에 대한 코드워드로부터 추정된다. 블럭의 각각의 픽셀에 대한 인덱스 값(ID 값)은 비트맵 데이터열에서 판독되어 적당한 양자화된 색에 각각의 픽셀을 맵(map)한다. 블럭의 각 픽셀에 대한 색은 출력 선택기로 출력된다. 출력 선택기는 출력에서 최종 이미지를 생성하기 위한 정렬을 위해 적당한 인코드된 블럭을 이미지 컴포서에 전송한다.
본 발명은 또한 이미지의 일부분에 대한 무작위 접근을 허용하는 것에 의해 인코드된 이미지의 일부분만을 디코드하는 것을 제공한다. 따라서, 본 발명은 특정 정렬 및 부분으로 인코드된 이미지를 유리하게 디코드할 수 있다. 예를 들어, 3차원 그래픽 환경에서, 본 발명은 텍스처(texture) 맵에 사용된 인코드된 이미지의 일부분을 선택할 수 있다.
본 명세서에 기술된 특징 및 이점들은 모든 것을 포함하는 것은 아니며, 특히 해당 기술분야의 숙련된 자에게는 도면을 볼 때에 많은 부가적인 특징 및 이점들이 명백할 것이다. 또한, 명세서에 사용된 용어는 원칙적으로 보기 쉽고, 교육적인 목적으로 선택되었고, 본 발명의 요지를 서술하거나 제한하기 위해 선택되지 않았다.
도 1은 본 발명에 따른 데이터 프로세싱 시스템의 블럭도,
도 2a는 본 발명에 따른 이미지 프로세싱 시스템의 블럭도,
도 2b는 본 발명에 따른 이미지 블럭의 도식적 표현,
도 3a는 본 발명에 따른 이미지 인코더 시스템의 실시예 1의 블럭도,
도 3b는 본 발명에 따른 이미지 인코더 시스템의 실시예 2의 블럭도,
도 3c는 본 발명에 따른 이미지 블럭 인코더의 블럭도,
도 3d는 본 발명에 따른 최초 이미지의 데이터 시퀀스도,
도 3e는 본 발명에 따른 이미지 인코더 시스템으로부터 최초 이미지 출력의 인코드된 이미지 데이터에 대한 데이터 시퀀스도,
도 3f는 본 발명에 따른 이미지 블럭 인코더로부터의 인코드된 이미지 블럭의 데이터 시퀀스도,
도 4a-도 4f는 본 발명에 따른 인코딩 처리를 나타내는 흐름도,
도 5a는 본 발명에 따른 이미지 디코더 시스템의 블럭도,
도 5b는 본 발명에 따른 블럭 인코더의 실시예 1의 블럭도,
도 5c는 본 발명에 따른 블럭 인코더의 실시예 2의 블럭도,
도 5d는 본 발명에 따른 디코더 유닛의 실시예 1을 나타내는 논리도,
도 6a-도 6b는 본 발명에 따른 디코딩 처리를 나타내는 흐름도,
도 7a는 본 발명에 따른 픽셀 또는 이미지 블럭에 대한 무작위 접근을 위한 서브시스템의 블럭도 및
도 7b는 본 발명에 따른 픽셀 또는 이미지 블럭에 대한 무작위 접근을 나타내는 흐름도이다.
도 1은 본 발명에 따라 구성된 데이터 프로세싱 시스템(105)의 블럭도이다. 데이터 프로세싱 시스템(105)은 프로세싱 유닛(110), 메모리(115), 기억장치(120), 입력장치(125), 출력장치(130) 및 그래픽 서브시스템(135)을 포함한다. 부가적으로, 데이터 프로세싱 시스템(105)은 데이터 프로세싱 시스템(105)의 다른 구성요소(110, 115, 120, 125, 130, 135)의 각각의 연결하는 데이터 버스(145)를 포함한다.
데이터 버스(145)는 종래의 데이터 버스이고, 단일 회선으로 보이지만 프로세서 버스, PCI 버스, 그래픽 버스 및 ISA 버스의 결합이 될 수도 있다. 프로세싱 유닛(110)은 예를 들어 인텔 펜티엄 프로세서, Sun SPARC 프로세서 또는 모토롤라 PowerPC 프로세서와 같은 종래의 프로세싱 유닛이다. 프로세싱 유닛(110)은 데이 터 프로세싱 시스템(105)내 데이터를 처리한다. 메모리(115), 기억장치(120), 입력장치(125) 및 출력장치(130) 또한 당업자에게 인지된 바와 같은 종래의 구성요소이다. 메모리(115) 및 기억장치(120)는 데이터 프로세싱 시스템(105)내에 데이터를 저장한다. 입력장치(125)가 상기 시스템으로 데이터를 입력하는 반면, 출력장치(130)는 데이터 프로세싱 시스템(105)으로부터 데이터를 수신한다.
도 2a는 본 발명에 따라 구성된 이미지 프로세싱 시스템(205)의 블럭도이다. 한 실시예에서, 이미지 프로세싱 시스템(205)은 데이터 프로세싱 시스템(105)내에서 실행된다. 이미지 프로세싱 시스템(205)은 이미지 인코더 시스템(220) 및 이미지 디코더 시스템(205)을 포함한다. 이미지 프로세싱 시스템(205)은 또한 그로부터 이미지가 수신되는 이미지 소스(210) 생성장치 및 저장 또는 추가 처리를 위해 처리된 이미지가 전송되는 출력(240)을 포함한다. 이미지 인코더 시스템(220)은 이미지 소스(210)로부터 이미지를 수신하도록 연결된다. 이미지 인코더 시스템(220)은 데이터선을 통해 이미지 디코더 시스템(230)과 연결되고, 예를 들어 기억장치(120) 및/또는 메모리(115)에 의해 연결될 수도 있다.
이미지 인코더 시스템(220)내에서, 이미지는 각각의 블럭으로 분류되고, 압축 또는 인코드된 이미지 데이터로서 예를 들어 기억장치(120)로 전송되기 전에 처리된다. 인코드된 이미지 데이터가 다른 데이터 처리를 위해 준비되어 있는 경우, 인코드된 이미지 데이터는 이미지 디코더 시스템(230)으로 전송된다. 이미지 디코더 시스템(230)은 인코드된 이미지 데이터를 수신하고 이미지 소스(210)로부터 수신된 최초 이미지를 표시하는 출력을 생성하기 위해 그것을 디코드한다.
도 3a-도 3b는 본 발명의 이미지 인코더 시스템(220)의 2개의 개별적인 실시예를 설명하는 블럭도이다. 이미지 인코더 시스템(220)은 이미지 디컴포서(315), 헤더 컨버터(321), 하나 이상의 블럭 인코더(318)(318a, …, 318n)(여기서, n은 n번째 인코더이고 임의의 양의 정수임) 및 인코드된 이미지 컴포서(319)을 포함한다. 이미지 디컴포서(315)는 이미지 소스(210)와 같은 소스로부터 최초 이미지(310)를 수신하기 위해 연결된다. 이미지 디컴포서(315)는 또한 하나 이상의 블럭 인코더(318) 및 헤더 컨버터(321)와 연결된다. 헤더 컨버터(321)는 또한 인코드된 이미지 컴포서(319)와 연결된다. 각각의 블럭 인코더(318)는 또한 인코드된 이미지 컴포서(319)와 연결된다. 인코드된 이미지 컴포서(319)는 출력(320)과 연결된다.
이미지 디컴포서(315)는 최초 이미지(310)를 수신하고 최초 이미지(310)의 헤더로부터 헤더 컨버터(321)로 정보를 전송한다. 헤더 컨버터(321)는 후술되는 바와 같이 수정된 헤더를 생성하기 위해 최초 헤더를 수정한다. 이미지 디컴포서(315) 또한 최초 이미지(310)를 R개의 이미지 블럭으로 분할 또는 분리하고, 이때 R은 일부 정수값이다. 최초 이미지(310)가 분할된 이미지 블럭의 수는 픽셀수에 따라 달라질 수 있다. 예를 들어, 바람직한 실시예에서, A픽셀×B픽셀로 구성된 이미지(310)은 일반적으로 (A/4)*(B/4) 블럭이 되고, 이때 A 및 B는 정수값이다. 예를 들어, 이미지가 256픽셀×256픽셀인 경우, 64×64블럭이 될 것이다. 다시 말해서, 이미지는 각각의 이미지 블럭이 4픽셀×4픽셀(16픽셀)가 되도록 분리된다. 당업자는 예를 들어 m×n으로 픽셀의 수 또는 이미지 블럭 크기가 가변될 수도 있다는 것을 인지할 것이고, 이때 m 및 n은 양의 정수값이다.
도 2b로 돌아가서, 본 발명에 따른 단일 이미지 블럭(26)의 예가 설명된다. 이미지 블럭(260)은 픽셀(270)로 구성된다. 이미지 블럭(260)은 폭 W 픽셀(270)×높이 H 픽셀(270)의 이미지 영역으로 한정될 수도 있고, 여기서 W 및 H는 정수값이다. 바람직한 실시예에서, 이미지 블럭(260)은 W=4픽셀(270)×H=4픽셀(270)(4×4)로 구성된다.
도 3a-도 3b로 다시 돌아가면, 각각의 블럭 인코더(318)는 이미지 디컴포서(315)로부터 이미지 블럭(260)을 수신한다. 각각의 블럭 인코더(318)는 각각의 이미지 블럭(260)을 인코드 또는 압축하여, 인코드 또는 압축된 이미지 블럭을 생성하기 위해 수신하도록 한다. 각각의 인코드된 이미지 블럭은 데이터 파일내 인코드된 블럭을 배열하는 인코드된 이미지 컴포서(319)에 의해 수신된다. 인코드된 이미지 컴포서(319)로부터의 데이터 파일은 출력(320)으로 전송된 인코드된 이미지 데이터 파일을 생성하기 위해 헤더 컨버터(321)로부터의 수정된 헤더와 연결된다. 또한, 이미지 인코더 시스템(220)내에서 하나의 이미지 블럭당 블럭 인코더(318a, …, 318n)로 하나 이상의 블럭 인코더(318a, …, 318n)를 가지면 다수의 이미지 블럭을 동시에 인코드할 수 있어서 이미지 프로세싱 효율 및 성능을 증가시킨다는 것에 주의한다.
수정된 헤더 및 인코드된 이미지 블럭은 최초 이미지(310)를 표시하는 인코드된 이미지 데이터를 함께 형성한다. 블럭 인코더(318)를 포함하는, 이미지 인코더 시스템(220)의 각각의 픽셀의 기능은 도 4a-도 4e에 대해서 추가로 후술될 것이 다.
최초 이미지(310)는 적-녹-청("RGB"), YUV 420, YUV 422 또는 전용 칼러 공간을 포함하는 다양한 포맷 중의 임의의 하나가 될 수도 있다. 일부 경우에 최초 이미지(310)를 인코드하기 전에 다른 칼러 공간으로 변환하는 것이 유용할 수도 있다. 본 발명의 한 실시예에서, 각각의 이미지 블럭(260)이 4×4세트의 픽셀이고 이때 각각의 픽셀(270)는 24 비트 크기인 것에 주의한다. 각각의 픽셀(270)에서, 적녹청("RGB") 구현 칼러 공간에서 8비트 적색(R)-채널, 8비트의 녹색(G)-채널 및 8비트의 청색(B)-채널이 있다. 또한 각각의 인코드된 이미지 블럭은 또한 4×4세트의 픽셀이지만, 각각의 픽셀은 단지 2 비트의 크기가 되고 후술되는 바와 같이 4 비트의 전체 크기를 가진다.
도 3c는 본 발명의 블럭 인코더(318)를 매우 상세하게 설명하는 블럭도이다. 블럭 인코더(318)는 색 양자화기(335) 및 비트맵 구성 모듈(340)을 포함한다. 색 양자화기(335)는 비트맵 구성 모듈(340)과 연결된다. 또한, 색 양자화기(335)는 블럭형 모듈(345), 커브 선택 모듈(355) 및 코드워드 생성 모듈(360)을 강조한다. 블럭형 모듈(345)은 커브 선택 모듈(355)과 연결된다. 커브 선택 모듈(355)은 코드워드 생성 모듈(360)과 연결된다. 분리된 최초 이미지(310)의 각각의 이미지 블럭(260)은 수신되고 추가 처리를 위해 비트맵 구성 모듈(340)로 전송되기전에 색 양자화기(335)에 의해 초기에 처리된다. 비트맵 구성 모듈(340)은 배열을 위해 인코드된 이미지 컴포서(319)를 위한 인코드된 이미지 블럭을 출력한다. 블럭형 모듈(345), 커브 선택 모듈(355) 및 코드워드 생성모듈(360)을 포함하여, 비트맵 구성 모듈(340) 및 색 양자화기(335)는 도 4a-도 4e에서 후술된다.
간단하게, 도 3d는 블럭 디컴포서(315)에 의해 수신된 최초 이미지(310)를 표시하는 데이터 시퀀스 또는 문자열(380)의 도면이다. 최초 이미지(310)의 데이터열(380)은 a-비트 헤더(380a) 및 b-비트 이미지 데이터(380b)를 포함하고, a 및 b는 정수값이 된다. 헤더(380a)는 다른 정보뿐만 아니라 예를 들어 RGB 또는 YUV 포맷의 픽셀에 대한 비트수와 같은 이미지(310)의 포맷, 이미지(310)의 픽셀 높이 및 이미지(310)의 픽셀 폭과 같은 정보를 포함할 수도 있다. 이미지 데이터는 최초 이미지(310) 자체를 표시하는 데이터(380b)이다.
도 3e는 이미지 인코더 시스템(220)에 의한 출력 및 생성되는 인코드된 이미지 데이터(385)를 표시하는 데이터 시퀀스 또는 문자열(385)의 도면이다. 인코드된 이미지 데이터(385)를 위한 데이터 문자열은 수정된 헤더부(385a) 및 인코드된 이미지 블럭부(390-1, …, 390-R)를 포함한다. 수정된 헤더부(385a)는 최초 이미지(310)를 위한 최초 헤더(380a)로부터 헤더 컨버터(321)에 의해 생성된다. 헤더 컨버터(321)에 의해 생성된 수정된 헤더는 최초 이미지(310)의 크기를 나타내는 폭 및 높이 정보뿐만 아니라 파일 형태, 최초 이미지(310)의 픽셀에 대한 다수의 비트, 최초 이미지(310)으로의 어드레싱, 다른 여러가지 인코드 변수에 관한 정보를 포함한다. 인코드된 이미지 블럭부(390-1, …, 390-R)는 블럭 인코더(318)로부터의 인코드된 이미지 블럭(390-1, …, 390-R)을 포함하고, R은 분리된 최초 이미지(310)로부터 발생되는 블럭수인 정수값이다.
도 3f는 본 발명에 따른 인코드된 이미지 블럭을 표시하는 데이터 시퀀스 또는 문자열(390)의 도면이다. 인코드된 이미지 블럭을 표시하는 데이터 문자열(390)이 상기 인코드된 이미지 데이터 문자열(385) 내에 도시된 인코드된 이미지 블럭(390-1, …, 390-R) 중의 임의의 하나와 유사할 수도 있다는 것을 알 수 있다.
인코드된 이미지 블럭의 데이터 문자열(390)은 J개의 코드워드를 포함하는 코드워드부(390a1, …, 390aJ) 및 비트맵부(390b1, …, 390bQ)를 포함하고, 이때 J는 정수값이다. 코드워드부(390a)는 비트맵(390b)에 의해 색인된 색을 계산하기 위해 사용되는 J개의 코드워드(390a)을 포함한다. 코드워드는 예를 들어 색 성분과 같은 픽셀 특성을 식별하는 정수값인 n-비트 데이터 문자열이다. 바람직한 실시예에서, 2개 16-비트 코드워드(390a)(CW0,CW1)(J=2)이 있다. 비트맵은 Q-비트 데이터부이고, 도 4b에서 후술된다.
또한, 바람직한 실시예에서, 각각의 인코드된 이미지 블럭은 2개의 16 비트 코드워드 및 32 비트(4×4×2 비트) 비트맵을 포함하여 64 비트이다. 전술한 바와 같이 이미지 블럭(260)을 인코드하는 것은 후술되는 바와 같이 더 큰 시스템 융통성 및 증가된 데이터 프로세싱 효율을 제공한다.
도 4a 내지 도 4e는 이미지 인코더 시스템(220)의 작동을 설명한다. 도 4a는 이미지 인코더 시스템(220)의 일반적인 작동을 설명한다. 작동의 시작(402)에서, a-비트 헤더(380a) 및 b-비트 이미지 데이터(380b)를 포함하는 최초 이미지(310)의 데이터 문자열(380)은 이미지 소스(210)로부터 블럭 디컴포서(315)로 입력된다(404). 블럭 디컴포서(315)는 a-비트 헤더(380a)를 추출하기 위해 최초 이미지(310)을 분리하고 그것을 헤더 컨버터(321)로 전송한다. 블럭 디컴포서(315)는 또한 최초 이미지(310)을 이미지 블럭으로 분리한다(406). 각각의 이미지 블럭(260)은 하나 이상의 블럭 인코더(318)에서 독립적으로 압축 또는 인코드된다(410).
헤더 컨버터(321)는 수정된 헤더(385a)를 생성하기 위해 a-비트 헤더를 변환한다(408). 수정된 헤더(385a)는 인코드된 이미지 컴포서(319)로 전송된다. 단계(408)에서 헤더 컨버터(321)가 a-비트 헤더를 변환하는 것과 동시에, 각각의 이미지 블럭은 인코드된 이미지 블럭(390-1, …, 390-R)을 생성하기 위해 하나 이상의 이미지 인코더(318a, …, 318n)에 의해 인코드된다(410). 다시, 각각의 이미지 블럭(260)이 하나의 블럭 인코더(318a)내에서 순차적으로 처리될 수도 있고 또는 다수의 이미지 블럭(260)이 다수의 블럭 인코더(318a, …, 318n)에서 동시에 처리될 수도 있다는 것에 주의한다.
인코드된 이미지 블럭(390)은 블럭 인코더(318)로부터 출력되고 인코드된 이미지 컴포서(319)에 의해 예정된 순서로 위치된다. 바람직한 실시예에서, 인코드된 이미지 블럭(390)은 그들이 블럭 디컴포서(315)에 의해 분리된 것과 동일한 순서로 좌에서 우로 위에서 아래로 파일내에서 배열된다. 이미지 인코더 시스템(220)은 인코드된 이미지 블럭(390) 및 헤더 컨버터(321)로부터 수정된 헤더 정보(385a)를 결합하는 단계(412)를 계속한다. 특히, 수정된 헤더(385a) 및 배열된 인코드된 이미지 블럭(390)은 인코드된 이미지 데이터 파일(385)을 생성하기 위해 연결된다. 인코드된 이미지 데이터 파일(385)은, 예를 들어 메모리(115), 기억장치(120) 또는 출력장치(130)에 인코드된 출력(320)으로 기록된다.
도 4b는 도 2에서 상기한 인코더 시스템(220)을 위한 인코드 프로세싱(410)을 나타낸다. 작동의 시작(418)에서, 코드워드가 선택된다(420). 도 3f에서 상기한 바와 같이, 바람직한 실시예에서, 2개 코드워드(390a,CW0,CW1)이 있다. 코드워드 선택 처리는 도 4c에서 후술된다.
일단 코드워드가 선택되면(420), 이미지 블럭(260)을 위한 색과 같은 픽셀 특성 및 픽셀값은 양자화된다(422). 특히, 코드워드(390a)는 그로부터 M개(M은 정수임)의 양자화된 픽셀값이 추정될 수 있는, 픽셀 공간내에 포인트들을 제공한다. M개의 양자화된 픽셀값은 현재 이미지 블럭을 표시하기 위해 사용되는 픽셀 공간내 제한된 서브세트의 픽셀이 된다. 픽셀값, 특히 색을 양자화하기 위한 공정은 도 4d-도 4e에서 후술될 것이다. 또한, 상기 실시예에서 픽셀값의 색에 대해 설명될 것이지만, 당업자는 일반적으로 임의의 픽셀값이 본 발명에 대해서 사용될 수도 있다는 것을 인식할 것이다.
바람직한 실시예에서, 각각의 픽셀은 M개(M=4)의 양자화된 색 중의 하나를 색인할 수 있는 2 비트의 데이터로 인코드된다. 또한 바람직한 실시예에서, 후술되는 바와 같이 2개 색이 코드워드 자체이고 다른 2개 색이 상기 코드워드으로부터 추정되는 경우, 2개 코드워드(390a)으로부터 4개의 양자화된 색이 도출된다. 투명 색을 표시하기 위한 하나의 인덱스 및 그중 하나가 추정되는 색들을 표시하기 위한 3개 인덱스가 있도록 코드워드(390a)을 사용하는 것도 가능하다.
바람직한 실시예에서, 비트맵(390b)은 32 비트 데이터 문자열이다. 비트맵(390b) 및 코드워드(390a)은 인코드된 이미지 블럭(390)을 나타내는 64 비트 데이터 문자열로서 출력된다. 특히, 인코드된 이미지 블럭(390)은 2개 16 비트 코드워드(390a)(n=16) 및 32 비트 비트맵(390b)을 포함한다. 16 비트 데이터 문자열인 각각의 코드워드(390a,CW0,CW1)은 5비트 적-채널, 6 비트 녹-채널 및 5비트 청-채널을 포함한다.
인코드된 이미지 블럭들(390)의 각각은 390a1, …, 390aR로서 함께 위치되고, 최초 이미지(310)의 최초 헤더(380a)로부터 도출된 헤더 정보(385a)와 연결된다. 단계(424)에서 생성된 출력은 최초 이미지(310)를 나타내는 인코드된 이미지 데이터(385)가 된다.
도 4c는 이미지 블럭(260)을 위한 코드워드를 선택하기 위한(420) 처리를 좀더 상세하게 설명하고 있다. 처리의 시작(426)에서, 색 양자화기(335)는 처리되는 이미지 블럭(260)에 대한 제 1 블럭형태를 선택하기 위해(428) 블럭형태 모듈(345)을 이용한다. 예를 들어, 단계(428)에서 선택된 하나의 블럭형태는 4색이 될 수도 있고, 단계(428)에서 선택된 또다른 블럭형태는 3색에 투명을 더한 것이 될 수도 있으며, 이때 특정 블럭형태내의 색들은 칼러 공간내에서 등거리에 위치하고 있다.
일단 블럭형태가 선택되면(428), 블럭형태를 위한 최적 아날로그 커브를 계산한다(430). 최적 아날로그 커브(430)의 계산(430)는 도 4d에서 후술될 것이다. 아날로그 커브는 이미지 블럭내 색의 양자화를 간단하게 하기 위해 사용된다. 최적 아날로그 커브를 계산한 후(430), 아날로그 커브를 따라 포인트의 파티션을 선택한다(432). 파티션은 인덱스 {1...(W×H)}를 M개의 비교차 세트(nonintersecting sets)로 그룹화하는 것으로 정의될 수 있다. 바람직한 실시예에서, 인덱스 (1...16)는 블럭형태에 따라 3 또는 4개 그룹 또는 클러스터(M=3 또는 4)로 분할된다.
일단 파티션이 선택되면(432), 그 특정 파티션을 위한 최적 코드워드가 계산된다(434). 최적 코드워드의 계산(434)은 도 4e에서 후술된다. 코드워드를 계산하는(434) 것에 추가하여, 코드워드를 위한 오차값(후술된 바와 같은 제곱된 오차) 또한 계산된다(436). 오차값의 계산(436) 또한 도 4e에 대해 후술된다. 만일 단계(436)에서 계산된 오차값이 1차 오차값인 경우, 그것이 저장된다. 그렇지 않으면, 단계(436)에서 계산된 오차값은 그것이 이전 저장된 오차값보다 작은 경우에만 저장된다(438). 각각의 저장된(438) 오차값에서, 대응 블럭형태 및 코드워드 또한 저장된다(440). 오차 기능을 최소화하는 코드워드 및 블럭형태를 찾기 위한 공정이 요구된다는 것에 주의한다.
모든 가능한 파티션이 완료된지를 결정함으로써(442) 처리가 계속된다. 만일 추가적인 파티션이 가능하다면, 다음 파티션을 선택하고(432), 다시한번 코드워드를 계산하고(434), 관련된 오차값을 계산하며(436), 오차값을 저장하고(438), 오차값이 이전 저장된 오차값보다 작은 경우에만 연관된 블럭형태 및 코드워드를 저장한다(440).
가능한 한 모든 파티션이 완료된 후, 처리는 모든 블럭형태가 선택되었는지를 결정한다(444). 만일 다른 블럭형태가 있다면, 처리는 다음 블럭형태를 선택(428)한다. 다음에, 처리는 최적의 아날로그 커브를 계산(430)하고, 각각의 파티션에 대하여 모든 가능한 파티션을 선택(432, 442)하며, 코드워드 및 관련된 오차값이 계산(434, 436)되고, 이 오차값이 앞서 저장된 오차값보다 작은 경우에만 오차값 및 관련된 블럭형태 그리고 코드워드가 저장(438, 440)된다. 마지막 블럭형태가 처리된 후, 처리는 최소 오차를 갖는 블럭형태 및 코드워드(390a)의 결과(447)를 출력(446)한다.
대안적인 실시예에서, 최적의 아날로그 커브는 블럭형태를 조사하기에 앞서 계산(430)되기도 한다. 즉, 처리는 블럭형태를 선택(428)하기에 앞서 최적의 아날로그 커브를 계산(430)하고, 파티션을 선택(432), 코드워드를 계산(434), 오차의 계산(436), 오차의 저장(438) 및 블럭형태 및 코드워드의 저장(440)을 한다. 아날로그 커브는 각각의 블럭형태에 대해 다시 계산될 필요가 없기 때문에 만일 모든 블럭형태에 동일한 아날로그 커브 및 칼러 공간이 사용되는 경우라면, 최적의 아날로그 커브를 먼저 계산(430)하는 것이 좋다.
도 4d는 최적의 아날로그 커브를 식별하는 처리를 더 설명하고 있다. 커브 선택 모듈(355)이 이미지 블럭(260)의 픽셀(270) 색에 대한 무게 중심을 계산(450)하여 처리를 시작(448)한다. 무게 중심을 계산(450)하는 것은 이미지 블럭(452)의 픽셀(270) 색을 평균화하는 것을 포함한다. 일단 무게 중심이 계산(450)되면, 처리는 칼러 공간내의 벡터를 식별(452)하여 상기 이미지 블럭(260)의 픽셀(270) 색의 최초 모멘트를 최소화한다.
특히, 벡터를 식별(452)하기 위해 처리는 일련의 데이터 포인트에 직선으로 조정되며, 이것은 이미지 블럭(260)의 최초 픽셀(270) 색이다. "관성 모멘트"(제곱근 오차)를 최소화되도록 일련의 포인트의 무게 중심을 통과하는 직선이 선택된다. 예를 들어, 3개의 픽셀에 대해, 관성 모멘트, 텐서(tensor) 관성 T를 최소화 하는 선방향을 계산하는 것은 다음과 같이 개별적인 색으로부터 계산된다.
Figure 112000006563903-pct00001
여기서, C0, C1 및 C2는 픽셀의 특징, 예를 들어 무게 중심에 대한 RGB나 YUV내의 색 성분을 나타낸다. RGB 칼러 공간의 바람직한 실시예에서, 이미지 블럭 i의 각 픽셀에 대하여, C0i는 적색값, C1i는 녹색값, 그리고 C2i는 청색값이다. 또한, i는 1부터 WxH의 정수값을 취하고, W=4이고 H=4이면, i는 1 내지 16의 범위에 있다.
가장 작은 고유값을 갖는 텐서(T)의 고유 벡터는 해당 기술분야에서 공지된 종래 방법을 사용하여 계산된다. 계산된 무게 중심을 따른 고유 벡터 방향은 관성 모멘트를 최소화하는 축을 정의한다. 이 축은 바람직한 실시예에서는 직선이 되는 최적의 아날로그 커브로서 사용된다.
도 4e는 파티션을 선택(432)하고, 파티션 및 관련된 오차를 위한 코드워드를 계산(434,436)하며, 오차값이 앞서 저장된 블럭형태보다 작은 경우 오차값, 블럭형태 및 코드워드를 저장(438)하는 코드워드 생성 모듈(360)에서 행해지는 처리를 설명하고 있다. 처리는 코드워드 생성 모듈(360)이 WxH 색 값을 앞서 구성된 최적의 아날로그 커브상에 투영(458)하는 것으로 시작(456)된다. WxH 값은 이미지 블럭(260)의 픽셀(270)수의 크기이다. 바람직한 실시예에서, W 및 H는 모두 4 픽셀이고, WxH는 16픽셀이 된다.
일단 아날로그 커브상에 색이 투영(458)되면, 색은 1차원 아날로그 커브상의 색의 위치에 기초하여 그 아날로그 커브를 따라 연속적으로 정렬된다(460). 색이 정렬된 후(460), 코드워드 생성 모듈(360)이 최적의 파티션을 찾는다(462). 즉, 코드워드 생성 모듈(360)은 아날로그 커브 및 파티션 또는 그룹에 따라 지정된 상대 간격으로 한정된 수의 클러스터내에 정렬되는(460) WxH 색(각 픽셀과 연관된 색)을 취한다. 바람직한 실시예에서, W=4 및 H=4이면, WxH는 16이 되고, 이 16 색이 3 또는 4개의 클러스터(M=3 또는 4)에 위치된다.
최적의 파티션을 위한 조사(462)를 함에 있어서, 색 선택 모듈(360)은 최적의 커브상으로 투영된 WxH 지점을 위한 최상의 M개의 클러스터를 찾고, 그 결과 그 선택과 연관된 오차가 최소가 된다. 최상의 M개의 클러스터는 각각의 클러스터와 연관된 포인트가 지정된 간격과 일치하도록 간격이 정해지도록 한정하여 제곱근 오차를 최소화하여 결정된다.
바람직한 실시예에서, 4개의 등거리 색의 블럭형태를 위해, 오차는 아래와 같은 식으로 아날로그 커브를 따른 제곱 오차로서 정의되기도 한다:
Figure 112000006563903-pct00002
여기서 E는 특정 그룹화 또는 클러스터링에 대한 오차이고, p0 및 p1는 코드화된 컬러, 그리고 x1는 최적의 아날로그 커브상의 투영점이다.
블럭형태가 3개의 등거리 색을 나타내면, 오차는 아래 식과 같이 아날로그 커브를 따른 제곱 오차로 정의된다.
Figure 112000006563903-pct00003
여기서, 다시 E는 특정한 그룹화 또는 클러스터링에 대한 오차이고, p0 및 p1는 코드화된 색, 그리고 x1는 최적의 아날로그 커브상의 투영점이다.
생성된(447) 최적의 코드워드(390a)가 식별된 후, 이들은 비트맵 구성 모듈(340)로 전송된다. 비트맵 구성 모듈(340)은 코드워드(390a)를 사용하여 그 코드워드(390a)로부터 특정되거나 추정되는 M개의 색을 식별한다. 바람직한 실시예에서, 비트맵 구성 모듈(340)은 예를 들어 CWO, CW1과 같은 코드워드(390a)를 사용하여 이들 코드워드(390a)로부터 특정되거나 추정되는 3 또는 4개의 색을 식별한다.
비트맵 구성 모듈(340)은 이미지 블럭(260)과 연관된 코드워드(390a)를 사용하여 블럭 비트맵(390b)을 구성한다. 이미지 블럭(260)내의 색은 코드워드(390a)에 의해 특정되거나 코드워드로부터 추정된 양자화된 색 중 하나와 연관된 가장 근접한 색으로 맵된다. 이 결과는 연관된 양자화 색을 식별하는 블럭내 픽셀당 ID로 불리는 색 인덱스이다.
블럭형태를 나타내는 정보는 코드워드(390a) 및 비트맵(390b)에 의해 부여된다. 바람직한 실시예에서, 코드워드(390a)의 순서 CW0, CW1는 블럭형태를 나타낸다. 만일, CW0의 값이 CW1의 값보다 더 크면, 이미지 블럭은 4개의 색 블럭이 된다. 그렇지 않으면, 블럭은 3개의 컬러와 투명 블럭을 합한 것이다.
앞에서 설명한 바와 같이, 바람직한 실시예에서는 2개의 이미지 블럭형태가 있다. 하나의 이미지 블럭형태에는 4개의 등거리 색이 있고, 반면에 다른 이미지 블럭형태에는 픽셀이 투명한지를 특정하는데 사용되는 4번째 색 인덱스를 갖는 3개의 등거리 색이 있다. 2개의 이미지 블럭형태 모두에 대해, 컬러 인덱스는 2 비트이다.
비트맵 구성 모듈(340)의 출력은 비트맵(390b)을 더한 M개의 코드워드(390a)를 갖는 인코드된 이미지 블럭(390)이다. 각각의 인코드된 이미지 블럭(390)은 인코드된 이미지 컴포서(319)에 의해 수신되고, 이어서 인코드된 이미지 블럭(390)을 파일내에서 정렬한다. 바람직한 실시예에서, 인코드된 이미지 블럭(390)은 블럭이 블럭 디컴포서(315)에 의해 분할되는 동일한 순서로 왼쪽에서 오른쪽으로 그리고 위쪽에서 아래쪽으로 정렬된다. 인코드된 이미지 블럭(390)을 갖는 정렬된 파일은 최초 이미지(310)의 헤더(380a)에서 도출되어 이미지 인코더 시스템(220)의 출력(320)인 인코드된 이미지 데이터(385)를 발생시키기 위해 헤더 정보(385a)와 연결된다. 이미지 인코더 시스템(220)의 출력(320)은 메모리(115), 저장 장치(120) 또는 출력 장치(130) 등으로 전송된다.
본 발명의 이미지 인코더 시스템(220)은 이미지의 유효 데이터 크기를 크게 줄이는데, 예를 들어 픽셀당 24 비트에서 픽셀당 4 비트로 줄일 수 있다. 또한, 본 발명은 코드워드가 투명 식별기로 사용되는 것을 허용함으로써 유리하게 투명 문제에 집중할 수 있다.
도 5a는 본 발명에 따른 이미지 디코더 시스템(230)의 블럭도이다. 이미지 디코더 시스템(230)은 인코드된 이미지 디컴포서 유닛(501), 헤더 컨버터(508), 하나 이상의 블럭 디코더(505)(505a, …, 505m)(여기서, m 은 마지막 블럭 디코더를 나타내는 양의 정수값) 및 이미지 컴포서(504)를 포함한다. 인코드된 이미지 디컴포서(501)는 하나 이상의 블럭 디코더(505a, …, 505m)에 연결된다. 하나 이상의 블럭 디코더(505a, …, 505m)는 이미지 컴포서(504)와 연결되고, 다음에 이미지 컴포서(504)는 출력(240)과 연결된다.
인코드된 이미지 디컴포서(501)는 인코드된 이미지 데이터(385)를 수신하고, 그것을 헤더(385a) 및 인코드된 이미지 블럭(390-1, …, 390-R)로 분리하거나 분할한다. 인코드된 이미지 디컴포서(501)는 인코드된 이미지 데이터(385)의 수정된 헤더(385a)를 판독하고, 수정된 헤더(385a)를 헤더 컨버터(508)로 전송한다. 인코드된 이미지 디컴포서(501)는 인코드된 이미지 데이터(385)를 하나 이상의 블럭 디코더(505a, …, 505m)로 전송된 개별적인 인코드된 이미지 블럭(390-1, …, 390-R)으로 분리될 수 있다.
헤더 컨버터(508)는 수정된 헤더(385a)를 출력 헤더로 변환시킨다. 동시에, 인코드된 이미지 블럭(390-1, …, 390-R)은 하나 이상의 블럭 디코더(505a, …, 505m)에 의해 분리되거나 디코드된다. 각각의 인코드된 이미지 블럭(390)이 하나의 블럭 디코더(505a)내에서 연속적으로 처리되거나 또는 여러개의 인코드된 이미지 블럭(505a, …, 505m)이 각각의 인코드된 이미지 블럭(390-1, …, 390-R)에 대해 하나의 블럭 디코더(505a)로 병렬로 처리되기도 한다는 것에 주의하라. 따라서, 다수의 블럭 디코더(505a, …, 505m)는 이미지 디코더 시스템(220)의 처리 성능 및 효율을 증가시키는 병렬 처리를 허용한다.
이미지 컴포서(504)는 하나 이상의 블럭 디코더(505a, …, 505m)로부터 각각의 디코드된 이미지 블럭을 수신하고, 이들을 파일내에서 정렬한다. 또한, 이미지 컴포서(504)는 헤더 컨버터(508)로부터 변환된 헤더를 수신한다. 이 변환된 헤더 및 디코드된 이미지 블럭은 최초 이미지(310)를 나타내는 출력(240) 데이터를 발생시키기 위해 함께 배치된다.
도 5b는 본 발명에 따른 블럭 디코더(505)의 실시예 1의 블럭도이다. 각각의 블럭 디코더(505a, …, 505m)에는 블럭형태 검출기(520), 예를 들어 533a-1, …, 533a-k(k는 정수)의 하나 이상의 디코더 유닛 및 출력 선택기(523)가 포함되어 있다. 블럭형태 검출기(520)는 인코드된 이미지 디컴포서 (501), 출력 선택기(523) 및 예를 들어 533a-1, …, 533a-k의 하나 이상의 디코더 유닛의 각각에 연결된다. 예를 들어 533a-1, …, 533a-k의 디코더 유닛의 각각은 출력 선택기(523)와 연결되고, 다음에 이 출력 선택기(523)는 이미지 컴포서(504)에 연결된다.
블럭형태 검출기(520)는 인코드된 이미지 블럭(390)을 수신하고, 인코드된 이미지 블럭(390) 각각에 대한 블럭형태를 결정한다. 특히, 블럭형태 검출기(520)는 선택기 신호를 검출된 블럭형태에 대응하는 출력을 선택하는데 사용되는 출력 선택기(523)로 전송한다. 블럭형태가 결정된 다음에, 인코드된 이미지 블럭(390)은 디코더 유닛, 예를 들어 533a-1, …, 533a-k의 각각으로 전송된다. 디코더 유닛, 예를 들어 533a-1, …, 533a-k는 각각의 인코드된 이미지 블럭(390)을 분리 또는 디코드하여 특정의 인코드된 이미지 블럭(390)에 대한 색을 생성한다. 디코더 유닛, 예를 들어 533a-1, …, 533a-k은 c-채널 폭(인코드 되는 각각의 색 성분(또는 픽셀 특성)을 위한 한 채널)일 수 있으며, 여기서 c 는 정수이다. 선택기 신호를 사용하여, 블럭형태 검출기(520)는 출력 선택기(523)가 블럭형태 검출기(520)에 의해 검출된 블럭형태에 대응하는 디코더 유닛, 예를 들어 533a-1 - 533a-k의 하나로부터 인코드된 이미지 블럭(390)의 색을 출력할 수 있도록 한다. 대안적으로, 선택기 신호를 사용하여, 적절한 디코더 유닛(533)을 선택될 수 있으며, 따라서 인코드된 블럭이 그 디코더 유닛만을 통해 처리되도록 할 수 있다.
도 5c는 본 발명에 따른 블럭 디코더(505)의 실시예 2의 블럭도이다. 실시예 2에서, 블럭 디코더(505)는 블럭형태 검출기(520), 제 1 및 제 2 디코더 유닛(530, 540) 및 출력 선택기(523)를 포함한다. 블럭형태 검출기(520)는 인코드된 이미지 블럭(390)을 수신하도록 연결되고, 제 1 및 제 2 디코더 유닛(530, 540) 및 출력 선택기(523)에 연결된다.
블럭형태 검출기(520)는 인코드된 이미지 블럭(390)을 수신하고, 인코드된 이미지 블럭(390)의 코드워드(390a)와 비교하여 인코드된 이미지 블럭(390)의 각각에 대한 블럭형태를 결정한다. 예를 들어, 바람직한 실시예에서, 블럭형태는 4개의 양자화된 색이거나 또는 3개의 양자화된 색과 투명이다. 블럭형태가 일단 선택되면, 선택기 신호는 출력 선택기(523)로 전송되고, 인코드된 이미지 블럭(390)은 제 1 및 제 2 디코더 유닛(530, 540)에 의해 디코드된다. 제 1 및 제 2 디코더 유닛(530, 540)은 인코드된 이미지 블럭(390)을 디코드하여 각각의 이미지 블럭의 픽셀 색을 만든다. 출력 선택기(523)는 블럭형태 검출기(520)에 의해 인에이블되어 선택된 블럭형태에 대응하는 디코더 유닛(530, 540)로부터 색을 출력한다.
도 5d는 본 발명에 따른 디코더 유닛의 적색-채널을 통한 디코더 유닛의 한 실시예를 설명하는 논리도이다. 특히, 디코더 유닛은 도 5c에 설명된 디코더 유닛(530, 540)과 유사하다. 더욱이, 이들 디코더 유닛(530, 540)의 각각의 기능은 도 5d에 설명된 하나의 논리도로 통합된다. 또한, 당업자라면 알 수 있는 바와 같이, 비록 디코더 유닛(530, 540)의 적색-채널에 대해 설명하였지만, 각각의 디코더 유닛(530, 540)에서 나머지 채널, 예를 들어 녹색-채널 및 청색-채널은 유사하게 연결되고 기능적으로 동일하다.
도시되어 있는 디코더 유닛(530, 540)을 설명하고 있는 논리도에는 비교기 유닛(522)과 같은 블럭형태 검출기(520)의 일부가 포함되어 있다. 비교기 유닛(522)은 제 1 2x1 멀티플렉서(525a) 및 제 2 2x1 멀티플렉서(525b)로 동작한다. 비교기 유닛(522)은 제 1 및 제 2 2x1 멀티플렉서(525a, 525b)와 연결된다. 2x1 멀티플렉서(525a, 525b)는 모두 적절한 색을 출력으로 선택하는 역할을 하는 4x1 멀티플렉서(526)와 연결된다.
제 1 디코더 유닛(530)의 적색-채널(544, 546)에는 제 1 및 제 2 적색-채널 라인(551a, 551b)과 제 1 및 제 2 적색 블럭(550a, 550b)이 포함되어 있다. 각각의 적색 블럭(550a, 550b)의 경로를 따르는 것은 제 1 전가산기(552a, 552b), 제 2 전가산기(554a, 554b) 및 CLA(carry-look ahead) 가산기(556a, 556b)이다. 제 1 및 제 2 적색-채널 라인(551a, 551b)은 제 1 및 제 2 적색 블럭(550a, 550b)에 각각 결합된다. 적색 블럭(550a, 550b)의 각각은 그 적색 블럭(550a, 550b)과 연관된 제 1 전가산기(552a, 552b)에 연결된다. 제 1 전가산기(552a, 552b)의 각각은 개별적인 제 2 전가산기(554a, 554b)에 연결된다. 각각의 제 2 전가산기(554a, 554b)는 개별적인 CLA 가산기(556a, 556b)에 연결된다.
제 2 디코더 유닛(540)은 제 1 및 제 2 적색-채널 라인(551a,551b), 제 1 및 제 2 적색 블럭(550a, 550b) 및 가산기(558)로 구성되어 있다. 제 1 및 제 2 채널 라인(551a, 551b)은 앞서 설명한 바와 같이 각각의 적색 블럭(550a, 550b)에 연결된다. 각각의 적색 블럭(550a, 550b)은 가산기(558)에 연결된다.
제 1 디코더 유닛(556b)의 제 1 적색 블럭(550a)의 경로로부터 CLA 가산기(556a)는 제 1 2x1 멀티플렉서(525a)에 연결되고, 제 1 디코더 유닛(530)의 제 2 적색 블럭(550b)의 경로로부터 CLA 가산기(556b)는 제 2 2x1 멀티플렉서(525b)에 연결된다. 제 2 디코더 유닛(540)의 가산기(558)는 제 1 및 제 2 2x1 멀티플렉서(525a, 525b)에 연결된다.
4x1 멀티플렉서(526)는 제 1 및 제 2 적색-채널 라인(551a, 551b) 뿐만 아니라, 제 1 및 제 2 2x1 멀티플렉서(525a, 525b)에 연결된다. 4x1 멀티플렉서(526)는 또한 투명(무색)이 전송되는지를 나타내는 투명 표시기 신호를 수신하도록 연결된다. 4x1 멀티플렉서(526)는 인코드된 이미지 블럭(390)의 개별적인 픽셀에 대한 연관된 양자화된 색을 참조하는 ID 신호로 불리는 색 인덱스의 값에 기초하여 출력의 색을 선택한다.
도 6a는 본 발명에 따른 디코더 시스템(230)의 동작을 나타내는 흐름도이다. 단지 설명을 목적으로, 디코더 시스템(230)에 대한 처리는 2개의 디코드 유닛, 예를 들어, 530, 540을 갖는 단일 블럭 인코더(505)로 기술될 것이다. 해당 기술분야의 숙련자는 이 처리가 하나 이상의 블럭 디코더(505) 및 하나 이상의 디코더 유닛, 예를 들어 533a-1, …, 533a-k를 갖는 디코더 시스템과 기능적으로 동일하다는 것을 인지할 것이다.
처리는 예를 들어 메모리(115) 또는 기억장치(120)를 통해 인코더 시스템(220)으로부터 인코드 또는 압축된 이미지 데이터(385)를 수신하는(605) 인코드된 이미지 디컴포서(501)에서 시작한다(600). 인코드된 이미지 디컴포서(501)는 수정된 헤더(385a)를 헤더 컨버터(508)로 전송함으로써 인코드된 이미지 데이터(385)를 분리한다. 부가적으로, 인코드된 이미지 디컴포서(501)는 또한 인코드된 이미지 데이터(385)를 개별적인 인코드된 이미지 블럭(390-1, …, 390-R)로 분리한다.
헤더 컨버터(508)는 이미지 컴포서(504)로 전송된 출력 헤더를 발생시키기 위해 헤더 정보를 변환한다(612). 동시에 하나 이상의 블럭 디코더(505a, …, 505m)는 각각의 인코드된 이미지 블럭(390)에 대한 픽셀 색을 디코드(615)한다. 각각의 인코드된 이미지 블럭(390)이 하나의 블럭 디코더(505a)에서 순차적으로 디코드(615)되거나 다수의 인코드된 이미지 블럭(390-1, …, 390-R)이 상기와 같이 다수의 블럭 디코더(505a, …, 505m)에서 병렬로 디코드(615)될 수도 있다는 것에 또한 주목하자. 인코드된 이미지 블럭(390)을 디코드하는 처리는 도 6b에 더 기술되어 있다. 각각의 디코드(615)된 이미지 블럭은 이미지 컴포서(504)에 의해 변환(612)된 헤더 정보와 함께 데이터 파일에 합성(620)된다. 이미지 컴포서(504)는 최초 이미지(310)을 나타내는 출력(625)으로서 데이터 파일을 발생시킨다(504).
도 6b는 본 발명에 따른 블럭 인코더(505)의 동작을 보여주는 흐름도이다. 일단 처리가 시작되면(630), 각각의 인코드된 이미지 블럭(390)은 블럭 디코더(505)에 의해 수신되고, 각각의 이미지 블럭(390)에 대한 블럭형태가 검출된다(640). 특히, 바람직한 실시예에 있어서, 제 1 및 제 2 코드워드(390a) CW1, CW1는 각각 블럭 디코더(505)의 블럭형태 검출기(420)에 의해 수신된다(635). 상기와 같이, CW0 와 CW1의 값을 비교하면 블럭형태가 나타난다.
또한, 적색-채널 색을 나타내는 가령 CW1, CW1과 같은 코드워드(390a)의 제 1 5비트는 제 1 및 제 2 디코더 유닛(530, 540)의 각각의 적색-채널(545)에 의해 수신되고, 녹색-채널 색을 나타내는 각각의 코드워드(390a) CW0, CW1의 제 2 6 비트는 제 1 및 제 2 디코더 유닛(530, 540)의 각각의 녹색-채널에 의해 수신되며, 청색-채널 색을 나타내는 각각의 코드워드(390a) CW0, CW1의 마지막 5비트는 제 1 및 제 2 디코더 유닛(530, 540) 각각의 청색-채널에 의해 수신된다.
블럭형태 검출기(520)는 인코드된 이미지 블럭(390)에 대한 블럭형태를 검출한다. 특히 비교기(522)는 제 1 및 제 2 코드워드(390a) CW0, CW1을 비교하고, 차례로 제 1 디코딩 유닛(530) 또는 제 2 디코딩 유닛(540)을 각각 선택하는 제 1 2x1 멀티플렉서(525a) 혹은 제 2 2x1 멀티플렉서(525b)를 인에이블하는 플래그 신호를 발생시킨다. 그리고 나서 디코더 유닛(530, 540)에 대한 양자화된 색 레벨을 계산(650)한다.
양자화된 색 레벨을 계산(650)하기 위해서 제 1 디코딩 유닛(530)은 하기의 관계식을 사용하여 2 코드워드(390a) CW0, CW1과 연관된 4개의 색을 계산한다.
CW0 = 제 1 코드워드 = 제 1 색;
CW1 = 제 2 코드워드 = 제 2 색;
CW2 = 제 3 색 = (2/3)CW0 + (1/3)CW1;
CW3 = 제 4 색 = (1/3)CW0 + (2/3)CW1.
한 실시예에서 제 1 디코더 유닛(530)은 가령 아래와 같이 CW2 와 CW3 에 대한 상기 방정식을 평가할 수도 있다.
CW2 = (5/8)CW0 + (3/8)CW1; 및
CW3 = (3/8)CW0 + (5/8)CW1.
적색-블럭(550a, 550b)은 (1/2)CW0 또는 (1/2)CW1을 갖기 위한 1비트 시프트 레지스터로서 작용하고, 각각의 전가산기(552a, 552b, 554a, 554b) 또한 1비트씩 왼쪽으로 신호를 시프트하도록 작용한다. 따라서 제 1 전가산기(552a, 552b)로부터의 신호는 2 비트 전체 시프트때문에 각각 (1/4)CW0 또는 (1/4)CW1이고, 제 2 전가산기(554a, 554b)에서의 신호는 3 비트 전체 시프트때문에 각각 (1/8)CW0 또는 (1/8)CW1이다. 이런 값들은 색 신호에 대한 상기의 추정을 가능케한다.
제 2 디코더 유닛(540)은 코드워드(390a) CW0, CW1과 연관된 3개의 색을 계산(650)하고, 투명이 전송되는 것을 나타내는 제 4 신호를 포함한다. 제 2 디코더 유닛(540)은 예를 들어 하기와 같이 색을 계산한다:
CW0 = 제 1 코드워드 = 제 1 색;
CW1 = 제 2 코드워드 = 제 2 색;
CW3 = 제 3 색 = (1/2)CW0 + (1/2)CW1; 및
T = 투명.
한 실시예에 있어서, 적색 블럭(550a, 550b)으로부터 수신된 신호가 1비트씩 왼쪽으로 시프트되어서 색이 이미 (1/2)CW0와 (1/2)CW1으로 각각 계산되기 때문에, 제 2 디코더 유닛(540)은 근사치를 갖지 않는다.
선택된(645) 디코더 유닛(530, 540)에 대하여 양자화된 색 레벨이 계산(650)된 후, 각 픽셀에 대한 각각의 비트맵(bitmap) 값이 인코드된 이미지 데이터 블럭(385)으로부터 판독(655)된다. 각각의 인덱스가 판독(655)될 때, 제 1 디코더 유닛(530)이 선택되면(645), 4개의 계산된 색 중 하나로 맵(map)(660)되고, 제 2 디코더 유닛(540)이 선택되면, 3개의 색과 투명 중 하나로 맵된다.
맵된(660) 색은 인코드된 이미지 블럭(390)의 비트맵(390b)으로부터의 ID 신호값에 기초하여 4x1 멀티플렉서(526)에 의해 선택된다. 상기한 바와 같이, 녹색-채널 및 청색-채널에서의 색 선택에 대하여 유사한 처리가 발생한다.
색이 적색, 녹색 및 청색-채널로부터 출력될 때, 출력은 이미지 컴포서(504)에 의해 수신된다. 이미지 컴포서(504)는 최초 이미지(310)가 분리되었을 때와 동일한 순서로 블럭 인코더(505)로부터 출력을 정렬한다. 이미지 디코더 시스템(230)으로부터 출력되는 생성된(665) 이미지는, 예를 들어 그 이미지를 표시하는 컴퓨터 스크린과 같은 출력 소스(240)로 전송되는 최초 이미지이다.
본 발명의 시스템과 방법은 한 이미지내에 소정의 이미지 블럭(260)에 대한 무작위 접근 및 한 이미지 블럭(260)내에 임의의 픽셀(270)에 대한 무작위 접근을 가능케 한다. 도 7a는 본 발명에 따라 픽셀(270)나 이미지 블럭(260)에 대한 무작위 접근을 제공하는 서브시스템(700)의 블럭도이다.
무작위 접근 서브시스템(700)은 블럭 어드레스 계산 모듈(710), 블럭 페칭 모듈(720) 및 하나 이상의 블럭 디코더(505)를 포함한다. 블럭 어드레스 계산 모듈(710)은 인코드된 이미지 데이터(385)의 헤더 정보(385a)를 수신하도록 연결된다. 블럭 어드레스 계산 모듈(710)은 또한 블럭 페칭 모듈(720)에 연결된다. 블럭 페칭 모듈(720)은 인코드된 이미지 데이터(385)의 인코드된 이미지 블럭부(390-1, …, 390-R)를 수신하도록 연결된다. 블럭 페칭 모듈(720)은 또한 블럭 디코더(505)에 연결된다.
도 7b는 본 발명에 따른 무작위 접근 서브시스템(700)을 사용하여 픽셀(270)이나 이미지 블럭(260)에 대한 무작위 접근의 처리를 보여주는 흐름도이다. 특정 픽셀(270)이 디코드를 위해 식별될 때, 처리는 인코드된 이미지 데이터(385)를 수신하는 이미지 디코더 시스템(230)에서 시작한다(740). 인코드된 이미지 데이터(385)의 수정된 헤더(385a)는 블럭 어드레스 계산 모듈(710)에 전송되고, 인코드된 이미지 데이터(385)의 인코드된 이미지 블럭부(390-1, …, 390-R)는 블럭 페칭 모듈(710)에 전송된다.
블럭 어드레스 계산 모듈(710)은 소정의 픽셀(270)을 갖는 인코드된 이미지 블럭부(390-1, …, 390-R)의 어드레스를 계산하기 위해(745) 수정된 헤더(385a)를 판독한다. 계산된(745) 주소는 이미지내의 픽셀 좌표에 의존한다. 계산된(745) 어드레스를 사용하여 블럭 페칭 모듈(720)은 소정의 픽셀(270)을 갖는 인코드된 이미지 블럭부(390-1, …, 390-R)의 인코드된 이미지 블럭(390)을 식별한다. 소정의 픽셀(270)을 갖는 인코드된 이미지 블럭(390)이 식별되면, 식별된 인코드된 이미지 블럭(390)만이 프로세싱을 위해 블럭 디코더(505)로 전송된다.
도 6b에서 상기 설명된 처리와 마찬가지로, 블럭 디코더(505)는 소정의 픽셀을 갖는 식별된 인코드된 이미지 블럭(390)에 대한 양자화된 색 레벨을 계산한다(755). 양자화된 색 레벨이 계산(755)된 후, 소정의 픽셀의 색이 선택되고(760), 이미지 디코더 시스템(230)으로부터 출력(765)된다.
이미지 블럭(260)의 픽셀(270)에 대한 무작위 접근은 이미지의 단지 필요한 부분 또는 섹션의 선택적 디코드를 허용한다. 무작위 접근은 또한 이미지가 데이터가 요구되는 임의의 순서로 디코드되는 것을 허용한다. 예를 들어 3차원 텍스처 매핑(mapping)에서 텍스처의 단지 일부분만이 요구될 수 있고, 이들 부분들은 일반적으로 약간 비순차적인 순서로 요구될 것이다. 따라서, 본 발명은 이미지의 오직 한 부분이나 섹션을 처리할 때 프로세싱 효율 및 성능을 증가시킨다.
본 발명은 픽셀당 24 비트에서 픽셀당 집합 4 비트까지 최초 이미지(310)의 크기를 인코드하거나 압축하고, 다음에 최초 이미지(310)의 표현을 얻기 위해 인코드된 이미지 데이터(385)를 디코드하고 복원한다. 게다가, 청구된 발명은 픽셀(270) 색을 식별하는데 여분의 비트가 반드시 필요하지 않도록 예를 들어 부가적인 색이 도출되는 2개의 기준점 또는 코드워드를 사용한다.
게다가 본 발명은 압축률이 고정된 채 유지되도록 블럭당 동일한 수의 비트로서 개별적인 블럭에 대한 데이터 압축을 실행한다. 또한, 블럭들이 고정된 수의 픽셀(270)을 갖는 고정된 크기이기 때문에, 본 발명은 블럭내의 임의의 특정 픽셀(270)에 대한 무작위 접근을 허용한다. 데이터의 전체 블럭이 검색되지 않고 다만 소수의 픽셀(270)에 대응하는 데이터를 표시하도록 디코드되기 때문에 본 발명은 시스템 자원의 효율적인 사용을 제공한다.
부가적으로, 본 발명에서 고정 비율 64 비트 데이터 블럭을 사용하면, 개별적인 데이터 블럭의 보다 빠른 처리를 허용하는 단순화된 헤더 정보를 갖는다는 이점을 제공한다. 또한 64 비트 데이터 블럭은 데이터 블럭이 빠르게, 예를 들어 하나의 클럭 사이클내에 처리되도록 하여, 하나의 완전한 데이터열이 조립되기 까지 대기할 필요가 제거된다. 또한 본 발명은 디코더 시스템이 다만 예를 들어 2개의 코드워드에 의해 결정된 칼러 세트로 각각의 픽셀을 디코드하기만 되기 때문에 디코더 시스템에 필요한 마이크로칩 공간을 감소시킨다.
본 발명의 특정 실시예와 응용이 도시되고 기술되었지만, 본 발명은 여기에 개시된 정확한 구성 및 성분에 한정되지 않으며, 해당 기술분야의 숙련자에게는 명백한 여러 가지 수정, 변경 및 수정이 첨부된 청구의 범위에 정의된 바와 같은 발명의 취지 및 범위를 벗어나지 않고 여기에 개시된 본 발명의 방법 및 장치의 구성, 동작 및 세부내용에서 이루어질 수 있다는 것이 인지되어야 한다.

Claims (22)

  1. 삭제
  2. 이미지 프로세싱 시스템의 이미지를 인코드하는 시스템에 있어서,
    이미지를 수신하도록 연결되고, 이미지를 하나 이상의 이미지 블럭으로 분할하는 이미지 디컴포서(image decomposer),
    각각 상기 이미지 디컴포서에 연결되고, 인코드된 이미지 블럭을 생성하기 위해 각각의 이미지 블럭을 압축하는 적어도 하나의 블럭 인코더, 및
    각각의 블럭 인코더에 연결되고, 인코드된 이미지 블럭을 데이터 파일로 정렬하는 인코드된 이미지 컴포서를 포함하며,
    상기 이미지 디컴포서 및 상기 인코드된 이미지 컴포서에 연결되고, 상기 이미지로부터 헤더를 수신하여 수정하고, 상기 수정된 헤더를 상기 데이터 파일과 함께 출력하는 헤더 컨버터를 또한 포함하는 것을 특징으로 하는 시스템.
  3. 제 2 항에 있어서,
    각각의 블럭 인코더는
    이미지 블럭을 수신하도록 연결되고, 적어도 하나의 양자화된 색이 도출되는 제 1 및 제 2 코드워드를 생성하는 색 양자화기, 및
    상기 색 양자화기에 연결되고, 적어도 하나의 양자화된 색 중 하나에 이미지 블럭의 색을 매핑하는 비트맵 구성 모듈을 포함하는 것을 특징으로 하는 시스템.
  4. 제 3 항에 있어서,
    상기 색 양자화기는
    상기 이미지 블럭을 수신하도록 연결되고, 상기 이미지 블럭에 대한 블럭형태를 선택하는 블럭형태 모듈,
    상기 블럭형태 모듈에 연결되고, 블럭형태에 대한 최적의 아날로그 커브를 계산하는 커브 선택 모듈, 및
    상기 커브 선택 모듈에 연결되고, 상기 아날로그 커브로부터 적어도 하나의 코드워드를 생성하는 코드워드 생성 모듈을 또한 포함하는 것을 특징으로 하는 시스템.
  5. 삭제
  6. 이미지 프로세싱 시스템의 압축된 이미지를 디코드하는 시스템에 있어서,
    적어도 하나의 압축된 이미지 블럭을 갖는 이미지 데이터 파일을 수신하도록 연결되고, 인코드된 이미지 데이터 파일을 개별적인 압축된 이미지 블럭으로 분할하는 인코드된 이미지 디컴포서,
    상기 인코드된 이미지 디컴포서에 연결되고, 상기 압축된 이미지 블럭을 복원하는 적어도 하나의 블럭 디코더, 및
    각각의 블럭 디코더에 연결되고, 상기 복원된 이미지 블럭을 출력 파일로 정렬하는 이미지 컴포서를 포함하며,
    상기 인코드된 이미지 디컴포서 및 상기 이미지 컴포서에 연결되고, 상기 인코드된 이미지 데이터 파일과 연관된 수정된 헤더를 수신하고, 출력 헤더를 생성하며, 상기 출력 파일을 갖는 출력 헤더를 출력하는 헤더 컨버터를 또한 포함하는 것을 특징으로 하는 시스템.
  7. 제 6 항에 있어서,
    각각의 블럭 디코더는
    상기 인코드된 이미지 디컴포서에 연결되고, 각각의 압축된 이미지 블럭에 대한 블럭형태를 선택하는 블럭형태 검출기,
    각각 상기 블럭형태 검출기에 연결되고, 각각의 압축된 이미지 블럭을 복원하는 제 1 및 제 2 디코더 유닛, 및
    상기 블럭형태 검출기 및 각각의 디코더 유닛에 연결되고, 상기 블럭형태 검출기에 의해 선택된 블럭형태에 응답하여 상기 디코더 유닛으로부터 이미지 블럭을 출력하는 출력 선택기를 또한 포함하는 것을 특징으로 하는 시스템.
  8. 이미지 프로세싱 시스템에서 이미지를 인코드 및 디코드하는 시스템에 있어서,
    이미지를 각각이 고정된 픽셀을 갖는 고정된 수의 이미지 블럭으로 분할하는 블럭 디컴포서,
    상기 블럭 디컴포서에 연결되고, M개(M은 정수값)의 양자화된 색이 도출되는, 각각의 블럭에 대한 적어도 하나의 코드워드를 선택하고, 각각의 블럭에 대한 각각의 픽셀을 M개의 양자화된 색 중 하나에 매핑하며, 인코드된 이미지 블럭으로서 상기 코드워드와 각각의 블럭에 대한 맵된 픽셀을 출력하는 적어도 하나의 블럭 인코더, 및
    각각의 블럭 인코더에 연결되고, 각각의 인코드된 이미지 블럭을 인코드된 데이터 파일로 정렬하는 인코드된 이미지 컴포서를 포함하는 이미지 인코더 시스템; 및
    상기 이미지 인코더 시스템에 연결되고,
    상기 인코드된 데이터 파일을 수신하도록 연결되고, 상기 인코드된 데이터 파일을 인코드된 데이터 블럭으로 분리하는 인코드된 이미지 컴포서,
    각각 상기 인코드된 이미지 디컴포서에 연결되고, M개의 양자화된 색 중 하나에 인코드된 블럭의 각각의 픽셀을 매핑하여 디코드된 이미지 블럭을 생성하기 위해 코드워드를 사용하여 각각의 인코드된 이미지 블럭을 디코드하는 적어도 하나의 블럭 인코더, 및
    각각의 블럭 인코더에 연결되고, 상기 디코드된 이미지 블럭을 출력 파일로 정렬하는 이미지 컴포서를 포함하는 이미지 디코더 시스템을 포함하는 것을 특징으로 하는 시스템.
  9. 제 8 항에 있어서,
    각각의 블럭 인코더는
    상기 이미지 블럭을 검사하고, M개의 양자화된 색이 도출되는 적어도 하나의 코드워드를 생성하는 색 양자화기, 및
    코드워드 선택 모듈에 연결되고, M개의 양자화된 색 중 하나에 이미지 블럭의 각각의 픽셀을 매핑하는 비트맵 구성 모듈을 포함하는 것을 특징으로 하는 이미지 프로세싱 시스템.
  10. 제 9 항에 있어서,
    상기 색 양자화기는
    상기 이미지 블럭을 수신하도록 연결되고, 지정된 칼러 세트를 나타내는 블럭형태를 선택하는 블럭형태 모듈,
    상기 블럭형태 모듈에 연결되고, 상기 선택된 칼러 세트로부터 칼러 공간에서의 최적의 아날로그 커브를 선택하는 커브 선택 모듈, 및
    상기 커브 선택 모듈에 연결되고, 상기 아날로그 커브로부터 적어도 하나의 코드워드를 제공하는 코드워드 생성 모듈을 포함하는 것을 특징으로 하는 이미지 프로세싱 시스템.
  11. 제 8 항에 있어서,
    각각의 블럭 인코더는
    상기 인코드된 데이터 블럭을 수신하도록 연결되고, 상기 인코드된 이미지 블럭을 디코드하기 위해 블럭형태를 선택하는 블럭형태 검출기, 및
    각각 블럭형태 검출기에 연결되고, 적어도 하나의 코드워드로부터 도출된 M개의 양자화된 색 중 하나를 저장하기 위해 상기 인코드된 이미지 블럭을 디코드하는 제 1 디코더 유닛 및 제 2 디코더 유닛을 포함하는 것을 특징으로 하는 이미지 프로세싱 시스템.
  12. 제 11 항에 있어서,
    각각의 블럭 디코더는 또한 각각의 디코더 유닛 및 상기 블럭형태 검출기에 연결되고, 인코드된 이미지 블럭에 대한 선택된 블럭형태에 응답하여 상기 디코더 유닛 중 하나로부터 M개의 양자화된 색 중 저장된 색을 출력하는 출력 선택기를 포함하는 것을 특징으로 하는 이미지 프로세싱 시스템.
  13. 이미지 프로세싱 시스템에 있어서, 헤더를 갖는, 최초 이미지의 인코드된 이미지를 생성하는 방법에 있어서,
    상기 헤더를 수정된 헤더로 변환하는 단계,
    최초 이미지를 이미지 블럭으로 분리하는 단계,
    각각의 이미지 블럭에 대한 인코드된 이미지 블럭을 생성하기 위해 각각의 이미지 블럭을 인코드하는 단계, 및
    인코드된 이미지를 생성하기 위해 파일의 각각의 인코드된 이미지 블럭과 수정된 헤더를 합성하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서,
    각각의 이미지 블럭을 인코드하는 단계는
    이미지 블럭에 대한 특성값을 나타내는 적어도 하나의 코드워드를 포함하는 한 세트의 코드워드를 선택하는 단계, 및
    한 세트의 코드워드로부터 도출되는, 이미지 블럭을 나타내는 이미지 블럭에 대한 색을 양자화하는 단계를 또한 포함하는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서,
    상기 한 세트의 코드워드를 선택하는 단계는
    적어도 하나의 블럭형태를 선택하는 단계,
    각각의 선택된 블럭형태에 대한 최적의 아날로그 커브를 계산하는 단계,
    각각의 계산된 아날로그 커브에 대하여 상기 아날로그 커브를 따라 적어도 하나의 파티션을 선택하는 단계,
    각각의 선택된 파티션에 대하여 한 세트의 코드워드를 계산하는 단계,
    각각의 계산된 한 세트의 코드워드에 대한 오차를 계산하는 단계, 및
    각각의 계산된 한 세트의 코드워드에 대한 최소 계산된 오차를 생성하는 블럭형태와 한 세트의 코드워드를 출력하는 단계를 또한 포함하는 것을 특징으로 하는 방법.
  16. 이미지 프로세싱 시스템에 있어서, 수정된 헤더와 적어도 하나의 인코드된 이미지 블럭을 포함하는 인코드된 이미지로부터 최초 이미지를 생성하는 방법에 있어서,
    인코드된 이미지 데이터를 수신하는 단계,
    인코드된 이미지를 수정된 헤더와 개별적인 인코드된 이미지 블럭으로 분리하는 단계,
    출력 헤더를 생성하기 위해 상기 수정된 헤더를 판독하는 단계,
    디코드된 이미지 블럭을 생성하기 위해 각각의 개별적인 인코드된 이미지 블럭을 디코드하는 단계, 및
    최초 이미지의 출력 파일을 생성하기 위해 상기 출력 헤더와 상기 개별적인 디코드된 이미지 블럭을 합성하는 단계를 포함하는 것을 특징으로 하는 방법.
  17. 제 16 항에 있어서,
    각각의 개별적인 이미지 블럭을 디코드하는 단계는
    적어도 하나의 코드워드를 갖는 한 세트의 코드워드와, 적어도 하나의 픽셀을 갖는 비트맵을 포함하는 개별적인 인코드된 이미지 블럭을 수신하는 단계,
    디코더 유닛을 선택하기 위해 인코드된 이미지 블럭에 대한 블럭형태를 검출하는 단계,
    한 세트의 코드워드를 사용하여 인코드된 이미지 블럭에 대한 적어도 하나의 양자화된 색 레벨을 계산하는 단계, 및
    인코드된 이미지 블럭에 대한 계산된 양자화된 색 레벨 중 하나에 비트맵의 각각의 픽셀을 매핑하는 단계를 또한 포함하는 것을 특징으로 하는 방법.
  18. 이미지 프로세싱 시스템에 있어서, 최초 이미지를 압축하고, 압축된 최초 이미지로부터 최초 이미지를 나타내는 출력 이미지를 생성하는 방법에 있어서,
    최초 이미지를 각각이 관련 색과 고정된 수의 픽셀을 갖는 고정된 수의 이미지 블럭으로 분할하는 단계,
    칼러 공간에서 색을 나타내기 위해 각각의 이미지 블럭에 대한 적어도 하나의 코드워드를 갖는 한 세트의 코드워드를 선택하는 단계,
    비트맵을 생성하기 위해 양자화된 색 중 하나에 각각의 픽셀을 매핑하는 단계,
    각각의 이미지 블럭에 대하여 각각이 한 세트의 코드워드와 비트맵을 포함하는 인코드된 이미지 블럭을 생성하는 단계,
    각각의 인코드된 블럭을 인코드된 이미지 데이터 파일로 합성하는 단계,
    디코더 시스템에서 인코드된 이미지 데이터 파일을 수신하는 단계,
    인코드된 이미지 데이터 파일을 인코드된 이미지 블럭으로 분할하는 단계,
    저장된 양자화된 색으로 각각의 이미지 블럭의 각각의 픽셀을 매핑하기 위해 한 세트의 코드워드를 사용하여 각각의 인코드된 이미지 블럭을 디코드하는 단계, 및
    최초 이미지를 나타내는 이미지를 출력하기 위해 출력 파일의 저장된 양자화된 색을 합성하는 단계를 포함하는 것을 특징으로 하는 방법.
  19. 제 18 항에 있어서,
    한 세트의 코드워드를 선택하는 단계는
    각각의 이미지 블럭에 대하여 적어도 하나의 블럭형태를 선택하는 단계,
    각각의 선택된 블럭형태에 대하여 최적의 아날로그 커브를 계산하는 단계,
    각각의 계산된 아날로그 커브에 대하여 아날로그 커브를 따라 적어도 하나의 파티션을 선택하는 단계,
    각각의 선택된 파티션에 대하여 한 세트의 코드워드를 계산하는 단계,
    한 세트의 코드워드의 각각에 대하여 오차를 계산하는 단계, 및
    최소 계산 오차를 생성하는 한 세트의 코드워드와 블럭형태를 출력하는 단계를 또한 포함하는 것을 특징으로 하는 방법.
  20. 제 18 항에 있어서,
    각각의 인코드된 이미지 블럭을 디코드하는 단계는
    한 세트의 코드워드와, 적어도 하나의 픽셀을 갖는 비트맵을 포함하는 개별적인 인코드된 이미지 블럭을 수신하는 단계,
    디코더 유닛을 선택하기 위해 인코드된 이미지 블럭에 대하여 블럭형태를 검출하는 단계,
    한 세트의 코드워드를 사용하여 인코드된 이미지 블럭에 대하여 적어도 하나의 양자화된 색 레벨을 계산하는 단계, 및
    인코드된 이미지 블럭에 대한 계산된 양자화된 색 중 하나에 비트맵의 각각의 픽셀을 매핑하는 단계를 또한 포함하는 것을 특징으로 하는 방법.
  21. 헤더 정보와 적어도 하나의 인코드된 이미지 블럭을 포함하는 인코드된 이미지 블럭부를 갖는 인코드된 이미지 데이터 파일로부터 식별된 픽셀을 처리하는 시스템에 있어서,
    헤더 정보를 수신하도록 연결되고, 식별된 픽셀을 갖는 인코드된 이미지 블럭의 어드레스를 계산하는 블럭 어드레스 계산 모듈,
    상기 인코드된 이미지 블럭부와 계산된 어드레스를 수신하도록 연결되고, 식별된 픽셀을 갖는 인코드된 이미지 블럭을 페칭하는 블럭 페칭 모듈, 및
    페치된 인코드된 이미지 블럭을 수신하도록 연결되고, 식별된 픽셀과 연관된 양자화된 색을 생성하기 위해 이미지 블럭을 디코드하는 블럭 디코더를 포함하는 것을 특징으로 하는 시스템.
  22. 이미지 프로세싱 시스템에 있어서, 헤더와 적어도 하나의 인코드된 이미지 블럭을 포함하는 인코드된 이미지 블럭부를 갖는 인코드된 이미지 데이터 파일의 식별된 픽셀을 처리하는 방법에 있어서,
    식별된 픽셀을 갖는 인코드된 이미지 블럭에 대한 어드레스를 계산하는 단계,
    계산된 어드레스를 사용하여 인코드된 이미지 블럭을 페치하는 단계,
    페치된 인코드된 이미지 블럭에 대하여 양자화된 색 레벨을 계산하는 단계, 및
    출력을 위해 양자화된 색 레벨로부터 식별된 픽셀의 색을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1020007003614A 1997-10-02 1998-09-28 이미지 압축 시스템 및 방법 KR100554805B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/942,860 1997-10-02
US8/942,860 1997-10-02
US08/942,860 US5956431A (en) 1997-10-02 1997-10-02 System and method for fixed-rate block-based image compression with inferred pixel values
PCT/US1998/020359 WO1999018537A1 (en) 1997-10-02 1998-09-28 System and method for fixed-rate block-based image compression with inferred pixel values

Publications (2)

Publication Number Publication Date
KR20010030916A KR20010030916A (ko) 2001-04-16
KR100554805B1 true KR100554805B1 (ko) 2006-02-22

Family

ID=25478717

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007003614A KR100554805B1 (ko) 1997-10-02 1998-09-28 이미지 압축 시스템 및 방법

Country Status (9)

Country Link
US (1) US5956431A (ko)
EP (1) EP1034505B1 (ko)
JP (2) JP3978478B2 (ko)
KR (1) KR100554805B1 (ko)
AU (1) AU9511698A (ko)
CA (1) CA2305572C (ko)
DE (1) DE69841328D1 (ko)
IL (1) IL135392A (ko)
WO (1) WO1999018537A1 (ko)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658146B1 (en) * 1997-10-02 2003-12-02 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values
US6683978B1 (en) 1997-10-02 2004-01-27 S3 Graphics Co., Ltd. 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
JP2000125136A (ja) * 1998-10-19 2000-04-28 Internatl Business Mach Corp <Ibm> 画像データ圧縮装置およびその方法
GB2348334A (en) * 1999-03-22 2000-09-27 Videologic Ltd A method of compressing digital image data
US6870962B2 (en) * 2001-04-30 2005-03-22 The Salk Institute For Biological Studies Method and apparatus for efficiently encoding chromatic images using non-orthogonal basis functions
US6704362B2 (en) * 2001-07-06 2004-03-09 Koninklijke Philips Electronics N.V. Resource scalable decoding
GB2417384B (en) * 2001-12-03 2006-05-03 Imagination Tech Ltd Method and apparatus for compressing data and decompressing compressed data
GB0128888D0 (en) 2001-12-03 2002-01-23 Imagination Tech Ltd Method and apparatus for compressing data and decompressing compressed data
US6909748B2 (en) * 2001-12-20 2005-06-21 Sorenson Media, Inc. Method and system for image compression using block size heuristics
US20030161400A1 (en) * 2002-02-27 2003-08-28 Dinerstein Jonathan J. Method and system for improved diamond motion search
US6940511B2 (en) * 2002-06-07 2005-09-06 Telefonaktiebolaget L M Ericsson (Publ) Graphics texture processing methods, apparatus and computer program products using texture compression, block overlapping and/or texture filtering
KR100530654B1 (ko) * 2002-10-26 2005-11-22 삼성전자주식회사 이미지 데이터 압축방법
US7082217B2 (en) * 2002-10-28 2006-07-25 Web Technology Corp. Method and apparatus for image compression in block units
US7903892B2 (en) * 2002-10-29 2011-03-08 Ati Technologies Ulc Image analysis for image compression suitability and real-time selection
JP2004233742A (ja) * 2003-01-31 2004-08-19 Renesas Technology Corp 表示駆動制御装置および表示装置を備えた電子機器
DE60309430D1 (de) 2003-01-31 2006-12-14 St Microelectronics Srl Verfahren und Vorrichtung zum Komprimierung von Texturen
DE60315407D1 (de) * 2003-02-06 2007-09-20 St Microelectronics Srl Verfahren und Vorrichtung zum Komprimierung von Texturen
US7643679B2 (en) 2003-02-13 2010-01-05 Ati Technologies Ulc Method and apparatus for block based image compression with multiple non-uniform block encodings
US7764833B2 (en) * 2003-02-13 2010-07-27 Ati Technologies Ulc Method and apparatus for anti-aliasing using floating point subpixel color values and compression of same
US8111928B2 (en) 2003-02-13 2012-02-07 Ati Technologies Ulc Method and apparatus for compression of multi-sampled anti-aliasing color data
US8824553B2 (en) 2003-05-12 2014-09-02 Google Inc. Video compression method
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
SE0401852D0 (sv) * 2003-12-19 2004-07-08 Ericsson Telefon Ab L M Image processing
JP4198087B2 (ja) * 2004-04-13 2008-12-17 株式会社ソニー・コンピュータエンタテインメント 画像生成装置および画像生成方法
JP4805924B2 (ja) * 2004-07-08 2011-11-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチモード画像処理のための方法、システム、及びシステムを具備するユーザ端末
GB2439481B (en) * 2005-03-04 2008-08-06 Arm Norway As Method of and apparatus for encoding data
GB0504570D0 (en) * 2005-03-04 2005-04-13 Falanx Microsystems As Method of and apparatus for encoding data
CA2599710A1 (en) * 2005-03-10 2006-09-21 Merck & Co., Inc. Novel crystalline forms of antidiabetic compounds
US7606429B2 (en) * 2005-03-25 2009-10-20 Ati Technologies Ulc Block-based image compression method and apparatus
US7505624B2 (en) * 2005-05-27 2009-03-17 Ati Technologies Ulc Block-based image compression method and apparatus
TR201906780T4 (tr) * 2005-05-27 2019-05-21 Ericsson Telefon Ab L M Ağırlık esaslı görüntü işleme.
PL1886277T3 (pl) * 2005-05-27 2016-06-30 Ericsson Telefon Ab L M Przetwarzanie obrazów w oparciu o wagę
TWI288361B (en) * 2005-06-30 2007-10-11 Aten Int Co Ltd Video processing system
US7602984B2 (en) * 2005-09-28 2009-10-13 Novell, Inc. Adaptive method and system for encoding digital images for the internet
US7385611B1 (en) * 2005-12-07 2008-06-10 Nvidia Corporation Decompression of block encoded texture data
EP1977605B1 (en) * 2006-01-23 2020-04-15 Telefonaktiebolaget LM Ericsson (publ) Image processing
US7873212B2 (en) * 2006-01-24 2011-01-18 Nokia Corporation Compression of images for computer graphics
US7706609B2 (en) * 2006-01-30 2010-04-27 Microsoft Corporation Bayesian demosaicing using a two-color image
US7787691B2 (en) * 2006-04-11 2010-08-31 Telefonaktiebolaget Lm Ericsson (Publ) High quality image processing
US8260066B2 (en) * 2006-04-20 2012-09-04 Telefonaktiebolaget Lm Ericsson (Publ) Image processing
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
US10908421B2 (en) 2006-11-02 2021-02-02 Razer (Asia-Pacific) Pte. Ltd. Systems and methods for personal viewing devices
US9891435B2 (en) 2006-11-02 2018-02-13 Sensics, Inc. Apparatus, systems and methods for providing motion tracking using a personal viewing device
GB2445008B (en) * 2006-12-20 2008-12-31 Sony Comp Entertainment Europe Image compression and/or decompression
US7853092B2 (en) * 2007-01-11 2010-12-14 Telefonaktiebolaget Lm Ericsson (Publ) Feature block compression/decompression
JP5306317B2 (ja) * 2007-04-04 2013-10-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ベクトルを使用する画像処理
CA2683841A1 (en) 2007-04-04 2008-10-16 Telefonaktiebolaget Lm Ericsson (Publ) Vector-based image processing
GB2457646B (en) * 2007-10-30 2010-03-03 Imagination Tech Ltd Method and apparatus for compressing and decompressing data
EP2107812A1 (en) * 2008-04-03 2009-10-07 STMicroelectronics (Grenoble) SAS Compression/decompression of digital images
US8326075B2 (en) 2008-09-11 2012-12-04 Google Inc. System and method for video encoding using adaptive loop filter
JP5228111B2 (ja) * 2008-09-23 2013-07-03 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 画素ブロック処理
WO2010082886A1 (en) * 2009-01-19 2010-07-22 Telefonaktiebolaget Lm Ericsson (Publ) Image processing
DE202009002693U1 (de) 2009-02-25 2009-06-18 Krause, Philipp Texturkomprimierung mit entfernungsabhängiger Genauigkeit der Codierung von Farbcodewörtern
WO2010146786A1 (ja) * 2009-06-16 2010-12-23 日本電気株式会社 画像識別子照合装置
JP2011049764A (ja) * 2009-08-26 2011-03-10 Toshiba Corp データ圧縮伸長装置
CN102687175B (zh) 2009-11-24 2015-02-04 瑞典爱立信有限公司 对编码纹理元素块进行操作的解码系统和方法
GB201003962D0 (en) 2010-03-10 2010-04-21 Tangentix Ltd Multimedia content delivery system
EP2583249A4 (en) 2010-06-18 2016-07-27 Ericsson Telefon Ab L M COMPRESSION AND DECOMPRESSION OF TEXTURE
US8824383B2 (en) 2010-06-22 2014-09-02 Telefonaktiebolaget L M Ericsson (Publ) Downlink scheduling in heterogeneous networks
EP2612298A4 (en) * 2010-09-03 2017-01-04 Telefonaktiebolaget LM Ericsson (publ) Co-compression and co-decompression of data values
US8625910B2 (en) * 2011-02-25 2014-01-07 Adobe Systems Incorporated Compression of image data
US8780996B2 (en) 2011-04-07 2014-07-15 Google, Inc. System and method for encoding and decoding video data
US8780971B1 (en) 2011-04-07 2014-07-15 Google, Inc. System and method of encoding using selectable loop filters
US8781004B1 (en) 2011-04-07 2014-07-15 Google Inc. System and method for encoding video using variable loop filter
US9058637B2 (en) 2011-05-05 2015-06-16 Arm Limited Method of and apparatus for encoding and decoding data
GB2495301B (en) 2011-09-30 2018-01-17 Advanced Risc Mach Ltd Method of and apparatus for encoding data
KR20140090999A (ko) * 2011-10-14 2014-07-18 어드밴스드 마이크로 디바이시즈, 인코포레이티드 영역-기반 이미지 압축
US11039138B1 (en) 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
US9609341B1 (en) 2012-04-23 2017-03-28 Google Inc. Video data encoding and decoding using reference picture lists
US9014266B1 (en) 2012-06-05 2015-04-21 Google Inc. Decimated sliding windows for multi-reference prediction in video coding
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
GB2503691B (en) 2012-07-04 2019-08-14 Advanced Risc Mach Ltd Methods of and apparatus for encoding and decoding data
US9177415B2 (en) 2013-01-30 2015-11-03 Arm Limited Methods of and apparatus for encoding and decoding data
US10147202B2 (en) 2013-03-15 2018-12-04 Arm Limited Methods of and apparatus for encoding and decoding data
US9756331B1 (en) 2013-06-17 2017-09-05 Google Inc. Advance coded reference prediction
US10102613B2 (en) 2014-09-25 2018-10-16 Google Llc Frequency-domain denoising
JP6636710B2 (ja) * 2015-03-23 2020-01-29 株式会社東芝 画像処理装置、画像処理方法及びプログラム
US10636336B2 (en) * 2015-04-17 2020-04-28 Nvidia Corporation Mixed primary display with spatially modulated backlight
US10244250B2 (en) * 2015-05-29 2019-03-26 Samsung Electronics Co., Ltd. Variable-rate texture compression using fixed-rate codes
US9640149B2 (en) * 2015-07-21 2017-05-02 Think Silicon Sa Methods for fixed rate block based compression of image data
EP3695597A4 (en) 2017-10-11 2021-06-30 Nokia Technologies Oy APPARATUS, PROCESS AND COMPUTER PROGRAM FOR VOLUMETRIC VIDEO
CN107945239A (zh) * 2017-11-24 2018-04-20 中国航空工业集团公司西安航空计算技术研究所 一种纹理s3tc压缩解压单元结构
JP6975070B2 (ja) 2018-02-27 2021-12-01 シャープ株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
CN111079917B (zh) * 2018-10-22 2023-08-11 北京地平线机器人技术研发有限公司 张量数据分块存取的方法及装置
CN117785441A (zh) * 2018-12-06 2024-03-29 华为技术有限公司 处理数据的方法和数据处理装置
US10523420B1 (en) * 2019-04-18 2019-12-31 Capital One Services, Llc Transmitting encoded data along transmission mediums based on colorspace schemes
US11302036B2 (en) 2020-08-19 2022-04-12 Capital One Services, Llc Color conversion between color spaces using reduced dimension embeddings
WO2022234575A1 (en) * 2021-05-05 2022-11-10 Mythrealio Ltd System and method for dynamic video compression

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0583525A (ja) * 1991-09-19 1993-04-02 Canon Inc 画像復号化方式
JPH07111595A (ja) * 1993-10-13 1995-04-25 Olympus Optical Co Ltd 画像符号化装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5046119A (en) * 1990-03-16 1991-09-03 Apple Computer, Inc. Method and apparatus for compressing and decompressing color video data with an anti-aliasing mode
CA2143633A1 (en) * 1992-09-01 1994-03-17 James Oliver Normile Improved vector quantization
US5734744A (en) * 1995-06-07 1998-03-31 Pixar Method and apparatus for compression and decompression of color data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0583525A (ja) * 1991-09-19 1993-04-02 Canon Inc 画像復号化方式
JPH07111595A (ja) * 1993-10-13 1995-04-25 Olympus Optical Co Ltd 画像符号化装置

Also Published As

Publication number Publication date
CA2305572C (en) 2009-01-13
EP1034505B1 (en) 2009-11-25
IL135392A0 (en) 2001-05-20
DE69841328D1 (de) 2010-01-07
JP2001519608A (ja) 2001-10-23
KR20010030916A (ko) 2001-04-16
AU9511698A (en) 1999-04-27
EP1034505A1 (en) 2000-09-13
WO1999018537A1 (en) 1999-04-15
IL135392A (en) 2004-06-20
JP3978478B2 (ja) 2007-09-19
CA2305572A1 (en) 1999-04-15
JP2007020208A (ja) 2007-01-25
JP4085116B2 (ja) 2008-05-14
EP1034505A4 (en) 2003-07-09
US5956431A (en) 1999-09-21

Similar Documents

Publication Publication Date Title
KR100554805B1 (ko) 이미지 압축 시스템 및 방법
US8326055B2 (en) Image codec engine
US6658146B1 (en) Fixed-rate block-based image compression with inferred pixel values
US20240048741A1 (en) Methods and apparatuses for encoding and decoding a bytestream
US6683978B1 (en) Fixed-rate block-based image compression with inferred pixel values
KR100821762B1 (ko) 알파 이미지 처리 방법 및 장치
US6639945B2 (en) Method and apparatus for implementing motion detection in video compression
US5329313A (en) Method and apparatus for real time compression and decompression of a digital motion video signal using a fixed Huffman table
KR100201918B1 (ko) 색채화상의 압축과 그것을 위한 엠개 알파벳의 비트와이즈 코딩을 위한 이진화 장치 및 방법
US5541594A (en) Fixed quality source coder with fixed threshold
JP3464075B2 (ja) ディジタル画像の圧縮および圧縮解除のためのシステムおよび方法
EP0574746A1 (en) Method and apparatus for real time compression and decompression of a digital motion video signal using a fixed Huffman table
KR100216600B1 (ko) 영상 신호 벡터 양자화기를 위한 다중 부호어 전송 방법
JPH0936749A (ja) 符号化復号化装置およびこれに用いられる符号化方法
CN114245130A (zh) 用历史点预测信息表复用点矢量的数据编解码方法及装置
ABASS PREDICTION OF PRESSURE DROP IN PACKED BED FOR WATER AND AIR SYSTEMS
JPH02238776A (ja) 符号化装置
JPH01213068A (ja) 画像符号化伝送方式

Legal Events

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

Payment date: 20130206

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140207

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150205

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160204

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170214

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 13

EXPY Expiration of term