KR101464770B1 - 이미지 처리 - Google Patents

이미지 처리 Download PDF

Info

Publication number
KR101464770B1
KR101464770B1 KR1020087028207A KR20087028207A KR101464770B1 KR 101464770 B1 KR101464770 B1 KR 101464770B1 KR 1020087028207 A KR1020087028207 A KR 1020087028207A KR 20087028207 A KR20087028207 A KR 20087028207A KR 101464770 B1 KR101464770 B1 KR 101464770B1
Authority
KR
South Korea
Prior art keywords
interval
codeword
base
image
component
Prior art date
Application number
KR1020087028207A
Other languages
English (en)
Other versions
KR20090005197A (ko
Inventor
야곱 스트롬
Original Assignee
텔레폰악티에볼라겟엘엠에릭슨(펍)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텔레폰악티에볼라겟엘엠에릭슨(펍) filed Critical 텔레폰악티에볼라겟엘엠에릭슨(펍)
Publication of KR20090005197A publication Critical patent/KR20090005197A/ko
Application granted granted Critical
Publication of KR101464770B1 publication Critical patent/KR101464770B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • 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/98Adaptive-dynamic-range coding [ADRC]

Landscapes

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

Abstract

다수의 이미지 요소(610)를 포함하는 이미지 블록(600)은 하나 이상의 베이스 코드워드(720; 750), 구간 코드워드(710; 740) 및 인덱스 시퀀스(730; 760)로 압축된다. 코드워드(710; 720; 730; 740) 및 인덱스 시퀀스(730; 760) 중 2 이상의 각각의 비트 길이는 이미지 요소(610)의 원래의 벡터 성분에 기초로 하여 동적으로 정해지지만, 생성된 압축된 블록(700)의 전체 비트 길이는 일정하다. 베이스 코드워드(720; 750)는 베이스 값(10)을 나타내고, 구간 코드워드(710; 740)는 구간(20)을 나타낸다. 이 구간(20)은 베이스 값(10)에 관한 다수의 성분 값(50)을 포함한다. 인덱스 시퀀스(730; 750)는, 각 이미지 요소(610)에 대해, 다수의 이용 가능한 값(50)으로부터 선택되는 성분 값을 나타낸다.
이미지 요소, 이미지 블록, 베이스 코드워드, 구간 코드워드, 인덱스 시퀀스

Description

이미지 처리{IMAGE PROCESSING}
본 발명은 일반적으로 이미지 처리에 관한 것으로서, 특히 이미지를 인코딩 및 디코딩하는 방법 및 시스템에 관한 것이다.
3차원 그래픽의 실시간 렌더링(rendering)은, 게임, 인간-기계 인터페이스, 메시징 및 m-커머스를 포함하는 이동 단말기 상의 많은 어필 애플리케이션(appealing application)을 갖는다. 3차원 렌더링이 계산상 고가의 태스크이므로, 전용 하드웨어가 충분한 성능에 도달하도록 종종 구축되어야 한다. 따라서, 이런 하드웨어 구조의 복잡성 및 대역폭 사용을 낮추는 혁신적인 방식이 매우 중요하다.
특히, 이동 전화에 대한 주요 병목 현상(bottleneck)은 메모리 대역폭이다. 메모리 대역폭 사용을 감소시키는 공통의 기술은 텍스쳐 압축(texture compression) 기술이다. 텍스쳐링(texturing)은 이미지를 렌더링된 트라이앵글(rendered triangles) 상에 "접착(gluing)"하는 프로세스라 한다(여기서는 텍스쳐라 칭한다). 텍스쳐가 메모리 내에 압축되면, 텍스쳐가 압축 해제되는 액세스 동안, 상당량의 대역폭 사용이 회피될 수 있다.
대부분의 텍스쳐 압축 방식은 사진과 같은 이미지 타입의 데이터에 집중하는 것이다. 그러나, 프로그램 가능한 셰이더(shaders)의 출현으로, 텍스쳐는 종래의 사진 이미지와 많이 다른 타입의 데이터에 이용되기 시작했다. 그래서, 범프 맵핑(bump mapping)은, 디테일 환상(illusion of detail)을 값싼 방식으로 기하학적 물체(geometrical objects)에 부가하는 일반적인 기술이 되었다. 특히, 범프 맵 또는 노말 맵(normal map)이라 하는 텍스쳐는 각 픽셀에서 표면 노말을 교란(perturb)시키는데 이용된다. 노말 맵을 생성시키기 위한 보통의 접근법은 고 폴리곤 카운트 모델(polygon count model)로 개시하여, 어떤 기하학적 간소화 알고리즘을 이용하여 저 복잡성 모델을 생성하는 것이다. 이들 2개의 모델 간의 "차"는 이때 노말 맵으로 "베이크된다(baked)". 실시간 렌더링을 위해, 노말 맵은 저 복잡성 모델에 적용되어, 더욱 상세한 외관(detailed appearance)을 제공한다. 예컨대, 문서 [1]는 노말 맵을 이용함으로써 품질을 보호하게 매우 높은 트라이앵글-카운트(triangle-count) 모델 (15000 폴리곤)에서 매우 낮은 트라이앵글-카운트 모델 (1000 폴리곤)로 진행할 수 있는 방법을 나타낸다.
물론, 저 폴리곤-카운트 모델을 이용할 수 있다는 것은 이동 장치 및 단말기에 매우 매력적인데, 그 이유는 이들이 PC 시스템보다 낮은 계산 성능을 가지고 있기 때문이다.
그러나, 하나의 문제점은, 이용 가능한 텍스쳐 압축 방법이 사진 이미지를 염두에 두고 생성되어, 데이터가 노말 맵과 같은 어떤 다른 것일 시에 잘 실행하지 않는다는 것이다. 예컨대, (DXTC와 같은) S3TC는 노말 맵을 압축하기 위해 사용되었지만, 결과로서 블록 아티팩트(block artifacts)를 갖는다, 문서 [1] 참조.
오늘날 대부분의 경우에, 범프 맵핑은 각 렌더링 프리미티브(primitive)의 로컬 탄젠트 공간 (X, Y, Z), 예컨대, 트라이앵글에서 실행된다. 노말의 길이가 중요하지 않으므로, 단위 노말이 사용될 수 있다. 따라서, 문제는 트리플릿 (triplets) (X, Y, Z)을 압축하는 것이며, 여기서, X2+Y2+Z2=1. 가장 간단한 방식은 바로 X,Y,Z를 RGB (Red, Green, Blue)로서 처리하여, 그것을 S3TC/DXT1으로 압축하지만, 그것은 오히려 불량한 품질을 제공한다.
다른 방식은 X 및 Y만을 압축하여, 식 (1)을 이용하여 Z를 계산하는 것이다:
Figure 112008079672801-pct00001
(1)
X 및 Y에 집중함으로써, 보다 낮은 일그러짐(distortion)을 획득할 수 있다. 품질을 더 증진하기 위해, DXT5가 이용될 수 있다. 보통 DXT5는 알파 텍스쳐, 즉, RGBA 텍스쳐에 이용되는 S3TC의 버전이며, 여기서, RGB는 서로 코드화되고, 알파 성분 (A)은 독립적으로 코드화된다. 따라서, 하나의 접근법은 알파 채널을 이용하여 X를 코드화하고, G 채널을 이용하여 Y를 코드화하는 것이다. R 및 B는 최대의 품질을 G에 제공하기 위해 사용되지 않았다. 그러나, 그것은 여전히 충분한 품질을 제공하지 않는다.
사실상, 평활 표면의 경우, 압축되지 않은 RGB888/XYZ888이 어떤 물체에 충분한 품질을 제공하지 않는 것으로 드러났다. 특히, 평활 표면의 경우, 8 이상의 비트가 필요로 된다. 그래서, AT1 기술은 3Dc [1]를 개발하였고, 이는 종종 XYZ888보다 더 높은 품질을 허용하는 압축 포맷이다.
DXT5에서와 마찬가지로, X 및 Y만이 압축되고, Z는 계산된다. X 및 Y는 개별적으로 압축된다. X-값은 4×4 픽셀의 블록으로 그룹화된다. 이들 값은 -127.000 내지 +127.000 (또는 선택적으로 0 내지 255)의 범위일 수 있지만, 이들은 종종 구간 내에서 클러스터(cluster)된다.
3Dc는 이것을 이용하여, 16 비트: 구간의 개시에 대한 8 비트 및 구간의 종료에 대한 8 비트를 이용하여 이 값을 지정한다.
이 구간 내에서, 각 값은 제각기 3 비트를 이용하여 지정된다. 이것은 이 구간 내의 8개의 재구성 레벨이 가능하다는 것을 의미한다. 재구성 레벨은 항상 등간격으로 배치되고(equispaced) (균일하게 이격되고), 구간 내의 분배가 종종 균일에 가깝다는 가정을 반영한다.
전체로, 16 비트는 이 구간을 지정하는데 이용되고, 3×16=48 비트는 개별 픽셀에 대한 재구성 레벨을 지정하는데 소비된다. 따라서, X-데이터의 4×4 블록은 64 비트로 압축된다. 동일한 코딩은 Y에 유효하여, 전체로 128 비트가 이용되거나, 픽셀마다 8비트가 이용된다.
3Dc가 DXT1 또는 DXT5보다 더 양호한 품질을 생성하지만, 그것은 여전히 충분할 수 없다. 구간이 8 비트로 지정되고, 최소 가능 구간은, 예컨대, 구간 [77, 78] 또는 [-3, -4]과 같은 구간의 개시와 종료 간에 하나만의 차가 있을 시의 경우이다. 이 경우에, 중간에 8개의 재구성 레벨이 존재하며, 이는 다른 3개의 비트를 의미한다. 따라서, 이론상 최대 리졸루션(resolution)은 성분당 8+3=11이다. 이것은 표면을 서서히 변화시키기에 충분하지 않을 수 있다.
따라서, 노말 맵의 형식의 이미지 및, 이미지 요소(image element)에 관련된 특성 좌표(property coordinates)를 가진 다른 타입의 이미지를 압축 및 압축 해제할 시에 품질을 개선하기 위한 일반적인 필요성이 존재한다.
본 발명의 일반적인 목적은 이미지 인코딩/압축 및 이미지 디코딩/압축 해제 방법 및 시스템을 제공하는 것이다.
이런 및 다른 목적은 첨부한 특허청구범위에 의해 규정된 바와 같은 발명으로 충족된다.
요약하면, 본 발명은 이미지를 압축(인코딩)하여, 압축된 (인코딩된) 이미지를 압축 해제 (디코딩)하는 형식의 이미지 처리를 수반한다.
본 발명에 따르면, 압축될 이미지는, 다수의 이미지 요소 (픽셀, 텍스쳐 요소, 텍셀(texels), 또는 볼륨 요소(volume element), 복셀(voxels))을 포함하는 많은 이미지 블록으로 분해된다. 이미지 블록은 바람직하게는 16개의 이미지 요소를 포함하고, 2m×2n 이미지 요소의 사이즈를 갖는데, 여기서, m=4-n, n=0, 1, 2, 3, 4 또는 2m×2n2p 이미지 요소, 여기서, m, n, p가 모두 0이 아닌 조건부로, m, n, p=0, 1, 2, 3, 4. 블록 내의 각 이미지 요소는 2 또는 3 특징 벡터(feature vector) 성분을 가진 특징 벡터를 특징으로 한다. 이미지 블록은 이때 압축된다.
블록 압축 시에, 각각의 비트 리졸루션(bit resolution)은 각 벡터 성분 및, 베이스 코드워드, 구간 코드워드 및 인덱스 시퀀스 중 2 이상에 대해 동적으로 정의된다. 이 비트 리졸루션 또는 비트 길이 선택은 블록 토대에서 실행되며, 이것은, 제 1 이미지 블록이 그의 제 1 베이스 코드워드의 주어진 길이를 갖는 반면에, 제 2 이미지 블록이 그의 제 1 베이스 코드워드의 다른 비트 길이를 갖는다는 것을 의미한다. 이런 가변 비트 길이 코딩에도 불구하고, 압축된 블록의 전체 각각의 사이즈는 일정하거나 동일하다. 이것은, 예컨대, 구간 코드워드에 많은 비트를 소비함으로써, 더욱 소수의 비트가 동일한 벡터 성분에 관한 베이스 코드워드에 이용될 수 있다는 것을 의미한다.
베이스 코드워드는, 블록의 이미지 요소의 벡터 성분의 적어도 일부에 기초로 한 베이스 값의 리프리젠테이션(representation)으로 결정된다. 이에 대응하여, 구간 코드워드는 베이스 값에 대한 다수의 성분 값을 처리하는 구간의 리프리젠테이션으로 결정된다. 이 구간 코드워드는 또한 블록의 벡터 성분의 적어도 일부에 기초로 하여 결정된다. 인덱스 시퀀스는, 블록의 각 이미지 요소에 대해, 다수의 성분 값으로부터 선택된 성분 값을 나타내도록 결정된다.
각 이미지 요소가 바람직하게는 X 및 Y 성분과 같은 2 이상의 벡터 성분과 관련되어 있음에 따라, 제 1 (X) 및 2 (Y) 베이스 코드워드, 제 1 (X) 및 2 (Y) 구간 코드워드 및, 제 1 (X) 및 2 (Y) 인덱스 시퀀스는 바람직하게는 생성되어, 함께 압축된 이미지 블록을 형성한다. 본 발명의 가변 비트 길이 코딩으로 인해, 제 1 및 2 베이스 코드워드의 비트 길이는 주어진 블록에 대해 반드시 동일할 필요는 없으며, 상이한 이미지 블록에 간에 더 상이할 수 있다. 제 1 및 2 구간 코드워드에도 동일하다.
본 발명의 압축 해제 시에, 베이스 코드워드 및 구간 코드워드 중 하나는 압축된 블록을 구성하는 비트 시퀀스의 적어도 일부의 비트 패턴에 기초로 하여 압축된 블록에서 식별된다. 이 식별은 바람직하게는, 주어진 비트 패턴이 도달될 때까지 비트 시퀀스의 선택된 부분을 분석함으로써 실행된다. 그 후, 분석된 부분은 바람직하게는 베이스 코드워드 또는 구간 코드워드의 토대(basis)를 형성하거나 구성한다. 다른 베이스 및 구간 코드워드는 이때 다른 코드워드 시퀀스에 기초로 하여 식별될 수 있다.
코드워드가 식별되었으면, 베이스 코드워드에 기초로 하여 베이스 값이 결정되고, 구간 코드워드에 기초로 하여 구간 길이가 결정된다. 현재 블록에 이용 가능한 다수의 성분 값은 이 구간의 위치를 정의하는 베이스 값 및, 이 구간의 사이즈를 정의하는 구간 길이로부터 계산된다. 그 후, 인덱스 시퀀스는, 디코드될 각 이미지 요소에 대해, 그 이미지 요소에 대한 원래의 (X 또는 Y) 벡터 성분의 리프리젠테이션으로서 이용할 이들 다수의 성분 값 중 어느 값을 식별하기 위해 이용된다.
본 발명은, 그의 추가 목적 및 이점과 함께, 첨부한 도면에 함께 취해진 다음의 설명을 참조함으로써 최상으로 이해될 수 있다.
도 1은 본 발명의 실시예에 따른 이미지 압축 방법 및 이미지 블록 압축 방법을 도시한 흐름도이다.
도 2는 본 발명에 따른 이미지 블록의 실시예를 도시한 것이다.
도 3A 내지 3C는 본 발명에 따른 이미지 블록의 압축된 리프리젠테이션의 상 이한 실시예를 도시한 것이다.
도 4는 도 1의 비트 리졸루션을 정의하는 단계의 실시예를 더욱 상세히 도시한 흐름도이다.
도 5는 X, Y 평면의 벡터 성분의 분산을 도시한 다이어그램이다.
도 6은 도 1의 구간 코드워드를 결정하는 단계의 실시예를 더욱 상세히 도시한 흐름도이다.
도 7은 도 1의 인덱스 시퀀스를 결정하는 단계의 실시예를 더욱 상세히 도시한 흐름도이다.
도 8은 도 1의 인덱스 시퀀스를 결정하는 단계의 다른 실시예를 더욱 상세히 도시한 흐름도이다.
도 9는 본 발명의 실시예에 따른 이미지 압축 해제 방법 및 이미지 블록 압축 해제 방법을 도시한 흐름도이다.
도 10은 도 9의 코드워드를 식별하는 단계의 실시예를 더욱 상세히 도시한 흐름도이다.
도 11은 도 9의 성분 값을 결정하는 단계의 실시예를 더욱 상세히 도시한 흐름도이다.
도 12A 내지 12C는 제 1 벡터 성분에 대한 성분 값의 계산을 설명한 다이어그램이다.
도 12D는 제 1 및 2 벡터 성분에 대한 성분 값의 계산을 설명한 다이어그램이다.
도 13은 본 발명에 따른 이미지 압축기 및 압축 해제기를 가진 사용자 단말기의 일례를 개략적으로 도시한 것이다.
도 14는 본 발명에 따른 이미지 압축기의 실시예를 개략적으로 도시한 블록도이다.
도 15는 본 발명에 따른 블록 압축기의 실시예를 개략적으로 도시한 블록도이다.
도 16은 도 15의 리졸루션 디파이너(definer)의 실시예를 더욱 상세히 개략적으로 도시한 블록도이다.
도 17은 도 15의 인덱스 양자화기의 실시예를 더욱 상세히 개략적으로 도시한 블록도이다.
도 18은 본 발명에 따른 이미지 압축 해제기의 실시예를 개략적으로 도시한 블록도이다.
도 19는 본 발명에 따른 블록 압축 해제기의 실시예를 개략적으로 도시한 블록도이다.
도 20은 도 19의 코드워드 식별자의 실시예를 더욱 상세히 개략적으로 도시한 블록도이다.
도 21은 도 19의 성분값 생성기의 실시예를 더욱 상세히 개략적으로 도시한 블록도이다.
도면에서, 동일한 참조 문자는 대응하는 또는 유사한 소자에 대해 이용될 것 이다.
본 발명은 이미지 및 그래픽 처리에 관한 것이며, 특히 이미지 및 이미지 블록을 인코딩하거나 압축하고, 인코딩된 (압축된) 이미지 및 이미지 블록을 디코딩하거나 압축 해제하는 것에 관한 것이다.
일반적으로, 본 발명에 따르면, 이미지 압축 동안, 이미지는 많은 이미지 블록 또는 타일(tile)로 분해되거나 분할된다. 이와 같은 이미지 블록의 각각은 이때 어떤 이미지 요소 관련 특성 또는 특징을 가진 다수의 이미지 요소를 포함한다. 이미지 블록은 이미지의 압축된 리프리젠테이션을 생성하도록 압축된다.
후속하여, 인코딩된 이미지 또는 그래픽 프리미티브가 렌더링되면, 예컨대 스크린 상에 디스플레이되면, 압축된 이미지 블록의 관련 이미지 요소는 식별되고 압축 해제된다. 그 후, 이들 압축 해제된 이미지 요소는 원래의 이미지 또는 그래픽 프리미티브의 압축 해제된 리프리젠테이션을 생성하는데 이용된다.
본 발명은, 게임, 3D 맵 및 씬(scenes), 3D 메시지, 예컨대, 애니메이티드( animated) 메시지, 스크린 세이버, 인간-기계 인터페이스 (MMIs) 등과 같은 3차원 (3D) 그래픽과 함께 이용하기 위해 구성되지만, 이에 제한되지 않는다. 따라서, 본 발명은 또한 다른 타입의 이미지 또는 그래픽, 예컨대, 1차원 (1D), 2차원 (2D) 또는 3D 이미지를 압축하기 위해 사용된다.
본 발명은 특히 범프 또는 노말 맵, 또는 이미지를 처리하는데 적절하다. 본 기술 분야에 공지되어 있는 바와 같이, 노말 또는 표면 노말은 (평평한 표면에 대한) 표면에 수직이거나, (평평하지 않은 표면에 대한) 표면의 탄젠트 평면에 수직 인 3D 벡터를 나타낸다.
3D 그래픽 처리 시에, 전형적으로 수개의 트라이앵글이 생성되고, 이들 트라이앵글의 코너의 대응하는 스크린 좌표가 결정된다. 각 트라이앵글 상에, 이미지 (또는 이미지의 부분), 또는 소위 텍스쳐가 맵된다("접착된다"). 그러나, 텍스쳐가 메모리로부터 인출(fetch)될 시에, 텍스쳐의 저장을 위해 이용된 메모리 및, 메모리 액세스 중에 메모리 대역폭의 양방에 의해 그래픽 시스템에 대한 텍스쳐의 관리는 값이 비싸다. 이것은 메모리 용량 및 대역폭을 제한하는 이동 유닛 및 전화와 같은 씬(thin) 클라이언트에 대해 특히 문제가 된다. 결과로서, 텍스쳐 또는 이미지 인코딩 방식이 종종 채용된다. 이와 같은 방식에서, 텍스쳐는 전형적으로 다수의 텍셀을 포함하는 많은 이미지 블록으로 분해되거나 분할된다. 그 후, 이미지 블록은 압축되어 메모리 내에 저장된다. 이미지 블록의 압축된 (버전)의 사이즈는 이미지 블록의 압축되지 않은 버전의 대응하는 사이즈보다 작음에 주목한다.
본 발명에서, 용어 "이미지 요소"는 이미지 블록의 요소 또는 이미지 블록의 압축된 리프리젠테이션을 지칭한다. 이 이미지 블록은 이때 이미지 또는 텍스쳐의 일부에 대응한다. 따라서, 본 발명에 따르면, 이미지 요소는 (1D, 2D, 3D) 텍스쳐의 텍셀 (텍스쳐 요소), (1D 또는 2D) 이미지의 픽셀 또는 3D 이미지의 복셀 (볼륨 요소)일 수 있다. 일반적으로, 이미지 요소는 어떤 이미지- 요소 특성 또는 특징을 특징으로 한다. 본 발명에서, 각 이미지 요소는 이미지 요소와 관련된 특징을 나타내는 특징 벡터를 갖는다. 이 특징은 이미지 요소의 외관(appearance)을 제어하거나 영향을 줄 수 있다. 이와 같은 특징 벡터의 바람직한 실시예는 표면 노말이고, 더욱 바람직하게는, 정규화 표면 노말이다. 이와 같은 표면 노말은 3개의 벡터 성분 또는 좌표, 즉 X-, Y- 및 Z-성분을 갖는다. 그러나, 그것은 일반적으로 이미지 요소 마다 X- 및 Y-좌표와 같은 노말 좌표 중 2개만을 지정하기에 충분하며, 나머지 좌표는 예컨대 상기 식 (1)을 이용하여 그로부터 계산될 수 있다.
더욱이, 다음에는, 용어 "이미지"는 본 발명에 의해 인코딩되고 디코딩될 수 있는 어떤 1D, 2D 또는 3D 이미지 또는 텍스쳐를 나타내는데 이용되며, 이는 범프 맵, 노말 맵, 사진, 게임 타입 텍스쳐, 텍스트, 드로잉, 고 동적 범위 이미지 및 텍스쳐 등을 포함하지만, 이에 제한되지 않는다.
본 발명은, 특히 이미지 및 이미지 블록을 압축 및 압축 해제하는데 적절한 이미지 처리를 제공하며, 여기서 각 이미지 요소는 2차원 특징 벡터를 갖는다. 본 발명의 바람직한 구성에서, 2개의 벡터 성분은 X- 및 Y-좌표 (또는 X- 및 Z-좌표 또는 Y- 및 Z-좌표)와 같은 정규화 표면 노말의 2개의 좌표를 나타낸다. 다음에는, 본 발명이 X 성분 및 Y 성분을 포함하는 특징 벡터와 관련하여 기술된다. 그러나, 이것은 단지 X, Y, Z 성분 중 2개의 어떤 다른 조합이 대신에 이용될 시에 예시적인 예로서만 보여져야 한다. 비정규화 노말이 사용되면, 제 3 성분은 여기에 기술되는 바와 같이 다른 2개의 성분에 유사한 방식으로 간단히 가산되어 처리된다.
본 발명은 3Dc [1]와 같은 종래 기술의 노말 맵 압축 기술에 비해 근본적으로 상이한 접근법을 취한다. 본 발명은 고정 레이트(fixed rate) 압축 시스템 내의 가변 및 동적 비트 길이 코딩을 이용한다. 이것은, 이미지 블록을 나타내는데 이용되는 코드워드의 각각의 사이즈 (비트-리졸루션 또는 비트-길이)가 가변적이지만, 압축된 블록 리프리젠테이션의 비트의 수에 의한 전체 사이즈가 일정하게 유지된다는 것을 의미한다. 이것은 다수의 성분 값을 포함하는 구간의 위치 결정(positioning) 정확도에서의 동적 적응 및 그 구간의 리졸루션에서의 동적 적응을 고려한다. 결과로서, 본 발명은 이들 이미지 블록에 대한 (구간 리졸루션을 희생하여) 위치 결정 정확도를 증대시킬 수 있으며, 여기서 이것은, 다른 이미지 블록에 대한 (위치 결정 정확도를 희생하여) 구간 리졸루션을 증대시키면서, 이미지 품질을 개선시킨다. 그래서, 요약하면, 가장 적절한 위치 결정 정확도 및 구간 리졸루션은 각 이미지 블록에 대해 독립적으로 결정되어, 생성된 압축 해제된 이미지의 품질을 전체적으로 증대시킬 수 있다.
예컨대, 3Dc [1]에서, 소 구간은 이 구간의 폭이 될 시에 매우 거친 입도(very course granularity)를 갖는다. 3Dc의 최소 표시 가능한(representable) 구간 폭은 1인 반면에, 다음의 최소 구간 폭은 2이다. 따라서, 다음의 큰 구간으로 진행할 시에 사이즈가 두배로 된다. 이것은, 예컨대, 100의 구간 폭의 상황과 비교되고, 101의 다음의 큰 구간 폭으로 진행한다. 이 경우에, 사이즈는 100 %가 아닌 1 %만 증대된다.
3Dc의 소 구간의 다른 문제점은 구간의 위치가 상당한 정확도로 지정될 수 없다는 것이다. 최소 구간이 이동되면, 그것은, 예컨대 [3, 4]에서 [4, 5]로 전체 단계를 이동시켜야 한다. 이 단계 사이즈는 이 구간 내의 8개의 성분 값 간의 거리보다 약 8배 더 크다. 한편, [3, 103]과 같은 100의 구간 폭에 대해, [4, 104]로와 같은 최소 변환(translation)은 이 구간의 8개의 성분 값 간의 거리보다 10 이상의 정도로 작다.
본 발명은 가변 코드워드 길이 코딩에 의해 이것 및 다른 유사한 문제점을 해결할 수 있다. 이것은, 예컨대, 구간 폭이 지정되는 입도 및, 구간 변환이 지정되는 입도의 양방이 가능 벡터 값 간의 거리와 동일하게 설정될 수 있음을 허용한다.
압축
도 1은 본 발명의 양태에 따라 이미지를 압축하는 (손실이 많은) 방법을 도시한 것이다. 제 1 단계 (S1)에서, 이미지는 많은 이미지 블록으로 분해되거나 분할된다. 이와 같은 각 이미지 블록은 다수, 즉 2 이상의 이미지 요소를 포함한다. 본 발명의 바람직한 실시예에서, 이미지 블록은 16개의 이미지 요소 (픽셀, 텍셀 또는 복셀)를 포함하고, 2m×2n 이미지 요소의 사이즈를 갖는데, 여기서, m=4-n, n=0, 1, 2, 3, 4. 더욱 바람직하게는, m 및 n은 양자 모두 2이사. 또한, 사이즈 2m×2n 또는 2m×2n×2p 이미지 요소의 이미지 블록을 이용할 수 있으며, 여기서, m, n, p의 모두가 동시에 0이 아닌 조건부로, m, n, p=0 또는 양의 정수이다. 도 2는 본 발명에 따른 16개의 이미지 요소(610)를 가진 이미지 블록(600)의 일례를 개략적으로 도시한 것이다. 이 도면은 또한 이미지 요소(610)와 관련된 여러 특징 벡터(615)를 개략적으로 도시한 것이다. 도 1에서, 전체 이미지 블록은 바람직하게는 단계 (S1)에서 (비중첩(non-overlapping)) 이미지 블록으로 분해된다. 그러나, 일부 응용에서, 이미지의 일부만이 압축되어, 이 부분만이 이미지 블록으로 분해된 다.
다음의 단계 (S2 및 S5)는 이미지 블록의 압축을 실행한다. 상술한 바와 같이, 이미지 블록의 각 이미지 요소는 각각의 특징 벡터, 바람직하게는 2D 특징 벡터를 갖는다. 이들 특징 벡터의 압축은 2개의 특징 벡터의 성분 타입을 개별적으로 처리함으로써 실행될 수 있다. 환언하면, X 성분 및 Y 성분을 병렬로 또는 순차적으로 처리한다. 다음에는, X 성분과 같은 벡터 성분 중 하나의 압축에 대해 더욱 상세히 기술된다. 이때, Y 성분과 같은 다른 벡터 성분, 또는 Y 및 Z 성분과 같은 다른 벡터 성분에 대해서도 동일한 절차가 실행될 수 있다. 그러나, X 및 Y의 조합된 처리를 실행할 수 있다. 이것에 대해 추가적으로 더욱 더 상세히 기술될 것이다.
단계 (S2)에서, 결정되는 압축된 블록 리프리젠테이션의 포함된 성분의 각각의 비트 리졸루션이 정의된다. 이들 포함된 성분은, X 성분에 대해, 베이스 코드워드, 구간 코드워드 및 인덱스 시퀀스를 포함한다. 단계 (S2)의 이 비트 리졸루션 정의는, 블록의 특징 벡터의 X 벡터 성분의 적어도 일부에 기초로 하여, 더욱 바람직하게는 모든 X 벡터 성분에 기초로 하여 실행된다. 결과로서, 베이스 코드워드, 구간 코드워드 및 인덱스 시퀀스 중 2 이상의 비트의 수에 의한 각각의 사이즈는 가변적일 수 있고, 단계 S2에서 정의된다. 그러나, 이와 같은 상이한 코드워드 및/또는 인덱스 비트-길이가 상이한 이미지 블록에 정해질 수 있지만, 이들 3개의 성분의 전체 사이즈 (비트 길이)는 고정된다. 따라서, L(B)는 베이스 코드워드의 비트-길이를 나타내고, L(W)는 구간 코드워드의 대응하는 비트-길이를 나타내며, L(I)는 인덱스 시퀀스의 비트 길이를 나타낸다. 제 1 실시예에서:
L(B) + L(W) + L(I) = k (2)
여기서, k는 상수이다. 제 2 실시예에서:
L(B) + L(W) = m (3)
L(I) = n
여기서, m, n은 상수이다. 바람직한 구성에서, k=64 비트, m=16 비트, n=48 비트. 이미지 요소가 양방의 X 및 Y 성분을 포함함에 따라, 이들 식 (2) 및 (3)은 다음과 같이 재기록될 수 있다:
L(BX) + L(BY) + L(WX) + L(WY) + L(IX) + L(IY) = p (4) 여기서, 첨자 X 또는 Y는 인덱스 시퀀스의 코드워드의 특정 벡터 성분을 나타내고, p는 상수이며, 바람직하게는 p=128 비트. 다른 실시예에서:
L(BX) + L(BY) + L(WX) + L(WY) =q
L(IX) = t1 (5)
L(IY) = t2
여기서, q, t1, t2는 상수이고, t1은 바람직하게는 t2와 동일하며, 바람직하게는 q=32 비트, t1=t2=48 비트. 바람직한 구성에서, L(BX) + L(WX) + L(IX) = L(BY) + L(WY) + L(IY).
다음 단계 (S3)에서, 베이스 코드워드는 (X) 벡터 성분의 적어도 일부에 기 초로 하여 베이스 값의 리프리젠테이션으로서 결정된다. 단계 (S3)의 이런 결정은 바람직하게는 또한 베이스 코드워드에 정의된 비트 리졸루션 (L(B))에 기초로 하여 실행된다. 선택적으로, 베이스 코드워드에 대한 비트 리졸루션의 정의 및 실제 비트 코드워드의 결정은 벡터 성분의 적어도 일부에 기초로 하여 단일 절차에서 집합적으로 실행된다. 이 베이스 값은 구간 코드워드에 의해 정의된 구간의 위치를 정의하는 (X) 값이다. 바람직한 구성에서, 베이스 값은 구간의 중간점을 나타낸다. 다른 실시예에서, 베이스 값은 구간의 시점 또는 종점을 나타낸다. 이 개념은, 베이스 값이 실제로 구간 내의 어떤 값이거나, 실제로, [0, 1], [0, 255], [-1, 1], [-127, 127], 또는 이 구간을 위치 결정하는데 이용될 수 있는 어떤 다른 구간과 같은 허용 가능한 값의 범위 내의 어떤 값일 수 있도록 더 확대될 수 있다.
단계 (S4)는 베이스 값에 관한 다수의 성분 값을 포함하는 구간의 리프리젠테이션으로서 구간 코드워드를 결정한다. 이 코드워드 결정은 (X) 벡터 성분의 적어도 일부에 기초로 하여 실행된다. 바람직한 실시예에서, 단계 (S4)의 이런 결정은 또한 단계 (S2)에서 구간 코드워드에 정의된 비트 리졸루션 (L(W))에 기초로 하여 적어도 부분적으로 실행된다. 선택적으로, 구간 코드워드에 대한 비트 리졸루션의 정의 및 실제 구간 코드워드의 결정은 단일 절차에서 집합적으로 실행된다. 이 구간 코드워드는 바람직하게는, 구간의 개시 및 종료 (X) 값을 지정하는 베이스 코드워드에 의해 나타낸 베이스 값과 함께 이용되는 구간 길이의 리프리젠테이션이다. 이 구간은 이때 8개의 성분 값과 같은 다수의 성분 값을 포함한다.
단계 (S3 및 S4)를 실행하는 순서는 교환될 수 있으며, 즉 먼저 구간 코드워 드 (단계 (S4))를 결정하고 나서, 베이스 코드워드 (단계 (S3))를 결정한다. 더욱이, 2개의 단계 (S3 및 S4)는 선택적으로 병렬로 실행될 수 있다.
다음 단계 (S5)에서, 인덱스 시퀀스가 결정된다. 이 결정은 바람직하게는 단계 (S2)에서 시퀀스에 정의된 비트 리졸루션에 기초로 하여 적어도 부분적으로 실행된다. 선택적으로, 인덱스 시퀀스 결정 및 인덱스 시퀀스에 대한 비트 리졸루션의 정의는 단일 절차에서 집합적으로 실행된다. 인덱스 시퀀스는, 블록 내의 각 이미지 요소에 대해, 구간에 포함된 다수의 성분 값으로부터 선택된 성분 값을 나타낸다. 따라서, 이 단계 (S5)에서, (X) 성분 값은 블록 내의 이미지 요소에 선택되어, 그 이미지 요소의 "참(true)" (X) 벡터 성분의 리프리젠테이션으로서 이용된다.
단계 (S2 내지 S5)는 결과적으로 이미지 요소의 제 1 (X) 벡터 성분을 압축한 것이다. 동일한 절차가 바람직하게는 제 2 (Y) 벡터 성분과 순차적으로 또는 병렬로 실행된다. 그 후, 단계 (S2 내지 S5)의 인코딩의 결과는 압축된 이미지 블록이거나, 더욱 정확하게는 이미지 블록의 압축된 리프리젠테이션이다. 이와 같은 압축된 블록 리프리젠테이션(700)은 도 3A 내지 3C에 도시되어 있다. 리프리젠테이션(700)은 제 1 (X) 베이스 코드워드(720), 제 1 (X) 구간 코드워드(710), (X) 성분 인덱스의 제 1 시퀀스(730), 제 2 (Y) 베이스 코드워드(750), 제 2 (Y) 구간 코드워드(740) 및 (Y) 성분 인덱스의 제 2 시퀀스(760)를 포함한다. 압축된 이미지 블록(700)의 코드워드(710, 720, 740 및 750) 및 인덱스 시퀀스(730, 760)의 상호 순서는 도면에 도시된 것과 상이할 수 있음에 주목한다.
본 발명의 동적 및 가변 비트 리졸루션 결정은 도 3A 내지 3C의 압축된 리프리젠테이션을 비교할 시에 자명하다. 도 3A 및 3B에서, X 및 Y 인덱스 시퀀스(730, 760)는 일정한 비트 길이를 갖는다. 그러나, 베이스 코드워드(720, 750) 및 구간 코드워드(710, 740)의 비트 리졸루션은 독립적으로 상이한 이미지 블록 및 또한 2개의 벡터 성분에 정해질 수 있다. 도 3B를 도 3A와 비교하면, X 구간 코드워드(710)의 비트 리졸루션은 도 3A에서보다 도 3B에서 더 낮지만, X 베이스 코드워드(720)는 더 큰 것이 명백하다. Y 코드워드(740, 750)에 대해서는 반대이다.
도 3C에서, 또한 X 및 Y 인덱스 시퀀스(730, 740)에 소비되는 비트의 수가 선택될 수 있다. 도 3A를 도 3C와 비교하면, 도 3C의 압축된 블록은 X 인덱스 시퀀스(730) 상에 비교적 많은 비트를 소비한다.
그러나, 2개의 압축된 블록 리프리젠테이션(700)은 이 도면에서 동일하다. 이 사이즈는 바람직하게는 128 비트이다. 바람직한 구성에서, X 코드워드(710, 720) 및 X 인덱스 시퀀스(730)에 소비되는 비트의 수는 바람직하게는 Y 코드워드(740, 750) 및 Y 인덱스 시퀀스(760)의 비트의 전체 수, 즉 64 비트와 동일하다.
도 1을 참조하면, 단계 (S2 내지 S5)는 바람직하게는 (라인 L1로 개략적으로 도시된) 단계 (S1)의 분해 중에 제공되는 모든 이미지 블록에 대해 반복된다. 본 발명의 동적 비트 리졸루션 선택으로 인해, 비트에 관한 압축된 블록의 전체 사이즈가 동일하지만, 생성된 여러 압축된 블록은 코드워드 및/또는 인덱스 시퀀스에 여러 비트의 수를 소비할 수 있다. 그 결과는 이때 압축된 이미지 블록의 시퀀스 또는 파일이다. 생성된 압축된 이미지 블록은 단계 (S1)의 블록 분해 시에 파괴되 는 동일한 순서로 파일 내에서 좌에서 우로 및 상부에서 하부로 순서가 정해질 수 있다. 그 후, 이 방법은 종료한다.
압축된 이미지는 이미지의 후속 렌더링, 예컨대 디스플레이까지 저장을 위한 메모리에 제공될 수 있다. 더욱이, 압축된 이미지는 다른 유닛으로 (무선 또는 유선) 송신을 위한 송신기에 압축된 블록 리프리젠테이션의 신호로서 제공될 수 있다.
도 4는 도 1의 정의 단계의 실시예를 더욱 상세히 도시한 흐름도이다. 이 실시예에서, 베이스 코드워드, 구간 코드워드 및 인덱스 시퀀스 중 2 이상에 대한 비트 리졸루션 정의는, 이미지 블록의 특징 벡터의 (X 또는 Y) 벡터 성분의 분산에 기초로 하여 실행된다. 따라서, 제 1 성분 분산은 이때 베이스 코드워드, 구간 코드워드 및 선택적으로 인덱스 시퀀스 의 제 1 각각의 비트 길이를 생성하지만, 제 2 성분 분산은 코드워드 및 선택적으로 인덱스 시퀀스 의 제 2 상기한 각각의 비트 길이를 제공한다.
이 방법은 도 1의 단계 (S1)에서 계속한다. 다음 단계 (S10)에서, 블록 내의 특징 벡터의 최소 (X 또는 Y) 벡터 성분이 식별된다. 다음 단계 (S11)는 이에 대응하여 블록 내의 최대 (X 또는 Y) 벡터 성분을 식별한다. 그리고 나서, 이들 2개의 벡터 성분은 블록 내의 (X 또는 Y) 벡터 성분의 분산의 리프리젠테이션으로서 이용될 수 있다. 그래서, 최소 및 최대 벡터 성분의 비교는 본 발명에 따라 코드워드 및/또는 인덱스 시퀀스에 대한 비트 리졸루션을 정의하기 위해 이용될 수 있다.
바람직한 구성에서, 구간 코드워드에 대한 비트 리졸루션은 먼저 블록 내의 벡터 성분에 기초로 하여, 더욱 바람직하게는 단계 (S10 및 S11)에서 식별되는 최소 및 최대 벡터 성분에 기초로 하여 정의된다. 이것은 단계 (S12)에서 설명된다. 단계 (S12)에서 구간 코드워드 리졸루션의 정의는 상이한 미리 정해진 구간 길이의 세트 또는 룩업(look-up) 테이블을 조사함으로써 수행되며, 여기서, 이와 같은 구간 길이의 각각은 주어진 구간 코드워드와 관련되어 있다. 더욱이, 이런 세트/테이블의 구간 코드워드 중 적어도 일부는 상이한 각각의 비트 리졸루션을 갖는다. 이와 같은 경우에, 최대 및 최소 성분 값 간의 차는 바람직하게는 계산된다. 그 후, 계산된 차에 가장 근접한 세트 또는 테이블 내의 미리 정해진 폭 길이가 선택된다. 그리고 나서, 이것은 구간 코드워드를 제공하여, 현재 이미지 블록 및 또한 그 코드워드의 비트 리졸루션에 이용한다. 이것은 아래에서 더 기술된다. 그래서, 이 접근법에서, 구간 코드워드 및 구간 코드워드 리졸루션의 조합된 결정이 행해진다.
선택적 접근법에서, 최대 및 최소 벡터 성분 간의 차는 함수로 입력되거나, 구간 코드워드 비트 리졸루션을 결정하기 위한 세트 또는 테이블 룩업 절차에서 입력으로서 이용된다. 이와 같은 경우에, 함수 또는 테이블은 상이한 차의 범위에 대한 상이한 코드워드 리졸루션을 지정할 수 있다.
단계 (S13)에서, 베이스 코드워드에 대한 비트 리졸루션은 단계 (S12)에서 구간 코드워드에 결정된 비트 리졸루션 및 미리 정해진 최대 리졸루션 값으로부터 계산된다. 이것은 베이스 코드워드 리졸루션이 최대 값과 결정된 구간 코드워드 리졸루션 간의 차로서 획득된다는 것을 의미한다. 바람직한 실시예에서, 이런 미리 정해진 최대 리졸루션 값은 16이다. 그래서, 이 실시예는, 구간 코드워드 리졸루션 이 높은 (낮은) 경우에 베이스 코드워드의 저 (고) 비트 리졸루션을 제공한다. 그리고 나서, 이 방법은 도 1의 단계 (S3)로 계속한다.
도 5는 좌표 공간에서 X-Y 평면을 도시한 다이어그램이다. 이미지 블록의 각 이미지 요소는 X- 및 Y-좌표를 가진 각각의 특징 벡터(615) (표면 노말)를 갖는다. 이 도면에서, 예컨대, 도 2에 도시된 바와 같이 블록 당 16개의 이미지 요소가 존재하는 것으로 추정된다. 따라서, 상기 도면은 이미지 요소의 X- 및 Y-좌표를 나타내는 16개의 마크 포인트(marked points)를 포함한다. 게다가, 2개의 특징 벡터(615)만이 상기 도면을 더욱 명확하게 하기 위해 표시되었다. 이 도면은 또한 블록 내의 최소 (Xmin, Ymin) 및 최대 (Xmax, Ymax) 벡터 성분을 표시한다.
도 6은 도 1의 구간 코드워드를 결정하는 실시예를 도시한 흐름도이다. 이 방법은 도 1의 단계 (S3)에서 계속한다. 다음 단계 (S20)에서, 이미지 블록의 최소 (X 또는 Y) 벡터 성분이 식별된다. 이 단계는 도 4의 단계 (S10)에 대응한다. 다음 단계 (S21)는 도 4의 단계 (S11)에 대응하고, 최대 (X 또는 Y) 벡터 성분을 식별한다. 다음 단계 (S22)는 최대 및 최소 벡터 성분 간의 차의 리프리젠테이션으로서 구간 코드워드를 결정한다.
이 단계 (S22)가 바람직하게는 2개의 벡터 성분 간의 차를 계산함으로써 실행되고 나서, 단계 (S23)는 다수의 미리 정해진 구간 코드워드의 세트 또는 테이블로부터 적절한 구간 코드워드를 식별한다. 더욱이, 성분 차는 단계 (S23)에서 바람직한 구간 코드워드를 출력하는 함수로 입력될 수 있다. 그 후, 세트/테이블은 포 함하거나 함수는 다수의 상이한 구간 코드워드로 액세스하며, 여기서, 코드워드의 적어도 일부는 상이한 비트 길이(리졸루션)를 갖는다. 아래의 테이블 I은 구간 코드워드에 대한 그런 룩업 테이블의 일례이다.
Figure 112008079672801-pct00002
이런 예시적 테이블 I에서, 구간에 포함된 성분 값 간의 거리는 구간이 이동될 수 있는 최소 거리와 동일하다. 예컨대, 최대 및 최소 성분 값 간의 거리가 128과 동일하거나 근접하면, 128의 구간 길이가 선택된다. 그 후, 다수의 성분 값 간의 거리는 8개의 성분 값의 경우에 128/8 = 16이다. 4 비트는 베이스 값 및 구간의 위치를 지정하기 위해 이용 가능하며, 이는 256/24 = 16의 정확도에서 지정될 수 있다는 것을 의미한다. 그래서, 성분 값 간의 거리는 구간이 이동될 수 있는 최소 거 리와 동일하다. 이것은 테이블 I의 모든 가능 구간 길이에 들어맞다.
테이블 I은 단지 본 발명에 따라 이용될 수 있는 예시적 테이블로서 나타낸 것이다. 예컨대, 베이스 값의 더욱 고 정도(precision)를 원한다면, 최소 표시 가능 구간은 1/16 대신에 1/4이고, 이는 베이스 코드워드의 비트 리졸루션을 증대시키는데 이용될 수 있는 2 비트를 해제(release)한다.
다른 가능성은 해제된 비트를 이용하여 구간 내의 입도를 증대시키는 것이다. 보통, 8개의 등거리 성분 값은, 전형적으로 구간의 개시 값 및 종료 값의 선형 조합으로서 결정된 구간에 이용 가능하다. 베이스 값이 구간의 중간점 (M)을 나타내면, 8개의 성분 값은 다음과 같이 계산된다:
Figure 112008079672801-pct00003
(6)
식 (6)의 괄호에 제공된 세트는 다른 세트로 교환될 수 있고, 해제된 비트는 이용되는 특정 세트 간에 신호 전송을 위해 이용될 수 있다. 압축된 블록은 이때 이용할 특정 세트를 신호 전송하기 위한 코드워드를 포함한다. 그 코드워드에 대한 Obin의 비트 값은 이때 세트
Figure 112008079672801-pct00004
를 나타내는 반면에, 1bin
Figure 112008079672801-pct00005
를 나타낸다. 이것은 구간 사이즈가 모든 단계 대신에 2 단계 마다 두배로 된다는 것을 의미한다. 신호 코드워드가 2 비트를 포함하면, 다음의 세트는 대신에 여러 재구성 레벨을 계산하기 위해 이용 가능하다:
Figure 112008079672801-pct00006
이것은 구간 길이가 4개의 단계에서 두배로 된다는 것을 의미한다. 사실상, 테이블 II은 테이블 I 또는 다른 이와 같은 테이블과 함께 이용될 것이며, 여기서, 테이블 I은 구간 길이 및 코드워드를 열거하고, 테이블 II은 성분 갑싱 구간 길이 및 베이스 값으로부터 계산되는 방법을 열거한다.
이 기술은 또한 동일한 폭을 가진 여러 타입의 세트를 이용하도록 확대될 수 있다. 테이블 II에서, 생성된 성분 값은 모두 구간 내에 등간격으로 배치될 것이다. 그러나, 가우시안(Gaussian), 라플라시안(Laplacian) 또는 바이오모달(biomodal)과 같은 구간 내의 성분 값 분산의 다른 형식이 대신에 이용되거나 바람직하게는 등간격으로 배치된 분산에 대한 보완물(complement)로서 이용된다.
베이스 코드워드에 의해 인코딩되는 베이스 값이 대신에 구간의 개시점 또는 종료점을 나타내면, 식(6)은 식 (7) (개시점) 또는 식 (8) (종료점)에 제공되는 것으로 재기록될 것이다:
Figure 112008079672801-pct00007
(7)
Figure 112008079672801-pct00008
(8)
테이블 I에 제공된 구간 코드워드는 임의로 선택되지 않는다. 대신에, 이들 코드워드는 소위 프리픽스가 없는(prefix-free) 코드이다. 이것은 테이블 I 내의 코드워드가 테이블 I 내의 어떤 다른 코드워드에 대한 프리픽스가 없다는 것을 의미한다. 이와 같은 프리픽스가 없는 구간 코드워드의 사용은 압축된 블록 내의 구간 코드워드 및 베이스 코드워드의 압축 해제 및 식별을 간소화하며, 이는 아래에 더 기술된다. 테이블 I에서 이용될 수 있는 이와 같은 프리픽스가 없는 코드워드의 다른 예는 아래 테이블 III에 도시된 바와 같은 개시된 코드워드의 비트별 역원(bitwise inversion)이다.
Figure 112013064692140-pct00009
이용 가능한 구간 길이는 반드시 2 또는 1/2의 인수일 필요는 없으며, 각 단계에 대한 구간 길이의 두배로 된다. 예컨대, 이들 이미지 내의 가장 보통의 구간 폭의 통계를 제공하기 위해 수개의 이미지에 관해 테스트를 행할 수 있다. 이들 가장 빈번한 구간 길이는 이때 테이블 I 및 III의 리스트된 폭을 대신한다.
테이블 I 및 III에서, 구간 길이가 작으면 작을수록, 구간 코드워드에 대한 비트 리졸루션이 낮다. 이것은 이때 구간을 위치 결정하는 정확도, 즉 베이스 코드워드의 리졸루션이 보다 짧은 구간에 증대된다는 것을 의미한다. 이것은 전형적으로 처리될 대부분의 이미지에 대한 양호한 이미지 품질을 생성시킬 것이다. 그러나, 어떤 이미지에 대해, 반대의 것도 사실이다. 이와 같은 경우에, 이것은, 가장 짧은 구간 코드워드가 최대 구간을 나타내고, 그 역으로도 되도록 테이블 I 및 III 의 구간 길이 값의 위치를 스위치함으로써 간단히 해결될 수 있다. 이와 같은 경우에, 구간을 위치 결정하는 정확도는 구간 길이와 함께 증대한다.
상술한 바와 같이, 이들 이미지의 여러 구간 길이의 생성 빈도를 추정하기 위해 여러 이미지에 관해 테스트를 행할 수 있다. 테이블 I 및 III로서 테이블을 설계할 시에 통계가 이용될 수 있다. 이와 같은 경우에, 가장 빈번한 구간 길이는 바람직하게는 가장 짧은 구간의 코드워드 길이로 지정된다. 이것은 이때 가장 빈번한 이들 구간을 정확히 위치 결정하는데 더욱 많은 비트가 소비될 수 있다는 것을 의미한다. 결과로서, 이미지 처리의 품질이 개선될 것이다.
이와 같은 경우에, 가장 보통의 구간 폭은 대응하는 최소 구간 코드워드 사이즈를 갖는다. 테이블 IV은 이런 원리를 도시한다. 이 테이블에서, 구간 코드워드 사이즈는 덜 흔한(less common) 구간 길이에 대해 증대한다. 게다가, 어떤 길이까지, 코드워드 길이는 더 증대하지 않는다. 이것은 동일한 코드워드 길이가 수개의 상이한 구간 폭에 사용된다는 것을 의미한다. 이의 이유는 다른 점에서 가장 흔하지 않은 (least common) 폭과 관련된 구간 코드워드가 매우 길어, 베이스 코드워드 좌측에 몇몇 비트를 남긴다(leaving few bits left to the base codeword)는 것이다.
Figure 112008079672801-pct00010
구간 코드워드가 결정되었으면, 베이스 코드워드에 이용 가능한 비트의 수는 상술한 바와 같이 결정될 수 있다. 베이스 코드워드 결정은 전형적으로 블록의 최소 및 최대 벡터 성분을 식별하는 것을 포함한다. 이들 성분의 평균값은 이때 구간의 중간점을 획득하도록 계산된다. 베이스 코드워드는, 전형적으로 평균값에 가장 근접한 N-비트 값을 선택함으로써, 코드워드에 대한 이용 가능한 비트 리졸루션 및 이 평균 값에 기초로 하여 결정되며, 여기서, N=L(B). 대신에 베이스 값이 구간의 시점 또는 종점이면, 베이스 코드워드는 블록의 최소 또는 최대 성분에 가장 근접한 N-비트 값을 선택함으로써 결정된다.
도 7은 도 1의 인덱스 시퀀스 결정 단계의 실시예를 더욱 상세히 도시한 흐름도이다. 이 방법은 단계 (S4)에서 계속한다. 다음 단계 (S30)에서, (X 또는 Y) 성분 인덱스는 블록의 현재 이미지 요소에 제공된다. 이 성분 인덱스는, 구간 코드워드에 의해 나타내는 구간에 포함된 다수의 성분 값으로부터 선택된 성분 값과 관련된다. 예컨대, 성분 인덱스는 식 (6), (7) 또는 (8)에 따라 획득 가능한 성분 값 중 하나와 관련된다. 선택된 성분 값은 바람직하게는 이미지 요소의 원래의 (X 또는 Y) 벡터 성분과 동일하거나 가장 근접한 값이다. 단계 (S30)는 바람직하게는 라인 L2로 개략적으로 도시된 바와 같이 이미지 블록의 모든 이미지 요소에 대해 반복된다.
본 발명의 제 1 실시예에서, X 및 Y 인덱스 시퀀스는 모든 이미지 블록에 대한 동일한 비트의 수를 포함한다. 8개의 상이한 성분 값이 이미지 요소 마다 이용 가능하면, 이것은 X 및 Y 성분 인덱스가 3개의 비트를 포함한다는 것을 의미한다. X 및 Y 인덱스 시퀀스는 이때, 바람직하게는 블록 내에 16개의 이미지 요소가 존재함에 따라, 제각기 16×3 비트를 포함한다.
베이스 및 구간 코드워드 이외에 또한 인덱스 시퀀스에 대한 가변 비트 리졸루션을 갖는다는 것은 성분 인덱스마다 3 이상의 비트가 필요로 될 경우에 문제를 제공할 수 있다. 압축된 이미지 블록의 전체 사이즈는 고정되어야 하고, 바람직하게는 128 비트이다. 예컨대, 구현 시에, 8 대신에 성분 값에 대한 12개의 상이한 레벨을 갖는 것이 유익하다. 이미지 요소가 독립적으로 처리될 경우, 이것은 4 비트의 성분 인덱스 리졸루션을 갖게 된다. 그 후, 이것은 X 및 Y 인덱스 시퀀스를 나타내기 위해 전체 128 비트를 소비시키며, 전체 압축된 블록 사이즈가 128 비트로 제한될 경우에 베이스 및 구간 코드워드에 남아 있는 비트는 없다.
본 발명은 다수의 이미지 요소의 세트에 대한 복합 성분 인덱스를 이용함으로써 이 문제를 해결한다. 도 8은 이 절차를 도시한다. 이 방법은 도 1의 단계 (S4)에서 계속한다. 다음 단계(S40)에서, 이미지 요소의 벡터 성분을 가장 잘 나타내는 다수의 이용 가능한 성분 값 중 하나의 성분 값이 선택된다. 이것은 라인 L3로 나타낸 바와 같이 블록의 모든 (16) 이미지 요소에 대해 실행된다.
도 7의 상황과는 대조적으로, 이용 가능한 성분 값의 수는 상이한 이미지 블록에서 상이하며, 또한 8보다 많다. 인덱스가 3과 같은 다수의 인덱스의 세트에서 인코딩되면, 보다 소수의 비트가 필요로 된다. 3개의 이미지 요소의 세트를 이용하여 12개의 상이한 레벨을 가진 예에 대한 다음의 가능 조합: 12×12×12 = 3×3×3×4×4×4 = 27×64 < 25×26=211을 갖는다. 이것은, 개별적으로 인코딩될 경우에 필요로 되는 12 비트 대신에, 11 비트만이 상기 세트에 대해 필요로 된다는 것을 의미한다. 룩업 테이블은 이때 테이블 V에서와 같이 가능 성분 값 조합 및 대응하는 복합 성분 인덱스를 리스트하기 위해 이용될 수 있다.
Figure 112008079672801-pct00011
테이블 V에서, vi, i=0-11은 성분 값을 나타낸다.
이미지 요소의 세트에 이용할 복합 인덱스는 이때 이 세트의 이미지 요소에 대해 선택된 성분 값에 기초로 하여 룩업 테이블로부터 식별된다. 이 절차는 라인 L4로 개략적으로 나타낸 바와 같이 블록의 이미지 요소의 각 세트에 대해 반복된다. 생성된 복합 인덱스는, 소수의 여분의(a few odd) "정규(regular)" 성분 인덱스와 가능한 함께, 본 발명의 인덱스 시퀀스를 서로 형성한다.
상술한 바에서, X 및 Y 벡터 성분의 양방의 조합된 처리가 행해질 수 있음이 기술되었다. 이와 같은 제 1 예는 구간 코드워드 WX 및 WY (도 3A 내지 3C 참조)가 X-Y 평면에서 반경 및 각을 나타내게 할 수 있다. 2개의 베이스 코드워드 BX, BY는 상술한 바와 같이 결정되고, X-Y 평면에서 각각의 X 및 Y 베이스 값을 나타낸다. 그래서, 이들 2개의 값은 이 평면에 한 점을 형성한다. 반경은 이때, 예컨대 이 점의 개시 또는 종료에 의해 이 점에 관해 평면 내에 위치될 수 있다. 이 반경의 방향은 X 축 및 Y 축에 관한 각일 수 있는 각으로 정해진다. (X,Y) 점, 반경 및 각이 제공되면, 제각기 다수의 X 또는 Y 성분 값을 포함하는 X 구간 및 Y 구간을 계산할 수 있다.
이런 조합된 인코딩에서, 베이스 코드워드 및, 반경을 인코딩하는 구간 코드워드 (WX)의 비트 리졸루션은 동적으로 본 발명에 정해지는 반면에, 각을 나타내는 구간 코드워드 (WY)는 고정 비트 길이를 갖는다.
선택적 접근법에서, 2개의 베이스 코드워드는 상술한 바와 같은 베이스 값을 나타낸다. 제 1 구간 코드워드는 대각선(diagonal)을 인코딩하지만, 제 2 구간 코드워드는 X 또는 Y 구간의 리프리젠테이션이다. 이 제 2 구간 코드워드는 이때 구간 [0, 1] 내의 웨이트를 나타낸다. 이 웨이트는, 압축 해제 중에, 제 1 (X 또는 Y) 구간 길이를 제공하기 위해 제 1 구간 코드워드로 나타내는 대각선 길이 만큼 증배된다. 이 제 1 구간의 위치는, 예컨대,ㅡ 구간의 시점 또는 종점을 정의하는 2개의 베이스 값으로 정해진다. 그 후, 제 2 (X 또는 Y) 구간 길이는 피타고라스 정리
Figure 112013064692140-pct00012
를 이용하여 제 1 구간 길이 및 대각선으로부터 계산될 수 있으며, 여기서, l1, l2는 제 1 및 2 구간 길이를 나타내고, d는 대각선이다.
2개의 베이스 코드워드 및, 대각선을 인코딩하는 구간 코드워드의 비트 리졸루션은 이때 동적으로 본 발명에 정해지는 반면에, 웨이트를 인코딩하는 구간 코드워드는 고정 비트 길이를 갖는다. 압축된 이미지 블록은 바람직하게는 또한 웨이트로 대각선을 증배시킴으로써 획득 가능한 구간이 X 구간인지 Y 구간인지를 구별하기 위해 이용되는 X/Y 비트를 포함한다. 본 실시예의 바람직한 구성에서, 이미지 블록 내에서 최대 및 최소 X 벡터 성분 간의 차 및, 최대 및 최소 Y 벡터 성분 간의 차가 비교된다. 그 후, X/Y 비트는 그 비교에 기초로 하여 정해진다. 예컨대, 원래의 X 벡터 성분의 분산이 대응하는 Y 벡터 성분의 분산보다 작다면, X/Y 비트는, 웨이트 및 대각선으로부터 직접 계산 가능한 제 1 구간이 X 구간, 즉 최소 분산을 가진 성분이도록 설정된다. 그리고 나서, 보다 큰 Y 구간이 X 구간 및 대각선 으로부터 계산 가능하다.
본 발명의 요지는 종래의 3Dc 블록 처리와 조합될 수 있다. 이와 같은 경우에, 3Dc는 노말을 신속히 이동시키는데 이용될 수 있지만, 본 발명은 노말을 서서히 이동시키는데 이용된다. 종래의 3Dc에서, 압축된 블록은, X 및 Y 구간의 개시 및 종료 X 및 Y 점을 나타내는 2개의 X 코드워드 (Xf, Xl) 및 2개의 Y 코드워드 (Yf, Yl)를 포함한다. 다음의 논의는 X 성분만으로 제한되지만, Y 성분에도 동일한 논의가 적용 가능하다. 3Dc에서, 이미지 블록은 통상적으로 Xf < Xl이든 Xf ≥ Xl이든 양방의 경우가 가능하다. 그러나, 멀티-모드 실시예에서, Xf < Xl이면, 블록은 3Dc (디폴트) 모드를 이용하여 인코딩된다. 그것은 3Dc 블록과 동일한 방식으로 처리된다는 것을 의미한다. 그러나, Xf ≥ Xl이면, 블록은 본 발명 (보조 모드)에 따라 처리된다.
3Dc 블록은 항상 디폴트 모드에서 압축될 수 있음에 주목한다. Xf가 Xl보다 크게 되면, 2개의 코드워드의 비트 시퀀스는 바로 교환되어, Xf < Xl가 유지한다. Xf = Xl이면, 제 2 코드워드의 비트 시퀀스는 Xl = Xf + 1로 설정될 수 있고, 제 1 코드워드의 비트 시퀀스에 따라 모든 이미지 요소 특징 값을 양자화시킨다. 선택적으로, 제 1 비트 시퀀스는 Xf = Xl - 1로서 설정될 수 있고, 모든 이미지 요소 값은 제 2 코드워드의 비트 시퀀스로 양자화된다. 이것은 모든 현재 3Dc 노말 맵이 디폴 트 모드만을 이용하여 코드화될 수 있음을 의미한다. 그래서, 보조 모드는 디폴트 페이로드 비트의 어떤 희생없이 "무료로(for free)" 온다.
처음에는, Xf ≥ Xl 및/또는 Yf ≥ Yl로서 이용될 수 있는 구간 코드워드 및 블록 코드워드의 실제 값에 부과된 제한이 존재하는 것으로 보여질 수 있다. 그러나, 자유롭게, 즉 베이스 및 구간 코드워드 값의 어떤 제한없이 3Dc에서 2개의 X 또는 Y) 코드워드의 전체 16 비트 중 15 비트를 실제로 이용할 수 있다. 이용하는 기술은 문서 [3] 및 [4]에서 상세히 기재되어 있다. 이 기술은 16 비트의 최대 수를 이용하면서, Xf ≥ Xl 및/또는 Yf ≥ Yl을 유지한다. 기본적으로, 다음의 연산은 보조 모드에 이용될 수 있는 15 비트를 획득하기 위해 이용된다:
Figure 112008079672801-pct00013
Xf ≥ Xl 및 Yf < Yl, Xf < Xl 및 Yf ≥ Yl 또는 Xf ≥ Xl 및 Yf ≥ Yl인지에 따라, 3Dc 이외에 3개 까지의 보조 모드를 가질 수 있다. 2개의 제 1 보조 모드에서, 128 비트 중 127 비트는 자유롭게 설정되지만, 제 3 경우에는 126 비트가 자유롭게 설정될 수 있다.
본 발명의 이와 같은 보조 모드에서, 베이스 코드워드는 구간의 시점인 수 있는 베이스 값을 나타낸다. 구간 코드워드는 상술한 바와 유사하게 다수의 성분 값을 포함하는 구간을 나타낸다. 테이블 VI은 구간 코드워드에 이용될 수 있는 가능 코드를 리스트하며, 이 코드는 상이한 비트 길이를 가지며, 소위 프리픽스가 없는 코드이다.
Figure 112008079672801-pct00014
이 테이블 VI에서, 베이스 값은 정수 및 분수 양방의 비트를 가질 것이다. 따라서, 이 값의 정수 부분을 나타내기 위해 8 비트가 이용되는 반면에, (실제 비트 리졸루션에 따른) 2 내지 5 비트는 분수 부분을 나타낸다. 이것은 구간이 매우 고 정확도로 위치될 수 있음을 의미한다.
테이블 VII은 구간 코드워드 및 이 코드워드에 대한 비트 리졸루션을 가진 테이블의 다른 예이다.
Figure 112008079672801-pct00015
테이블 VII에서, 베이스 값 리프리젠테이션의 정확도는 구간 W의 최소 폭에 비해 4배이다.
테이블 VIII은 구간 코드워드 및 이 코드워드에 대한 비트 리졸루션을 가진 테이블의 추가적 예이다.
Figure 112008079672801-pct00016
테이블 VIII에서, 4개의 상이한 구간 폭은 베이스 값의 정확도의 각 레벨 상에서 이용 가능하다.
테이블 IX는 또 다른 예이다.
Figure 112008079672801-pct00017
테이블 IX는 구간의 최소 폭에 비해 베이스 값의 정확도가 4배이다.
테이블 X는 본 발명에 따라 이용될 수 있는 테이블의 추가적 예이다.
Figure 112008079672801-pct00018
상기 모든 테이블 VI 내지 X는 오히려 짧은 구간 길이를 나타내는 구간 코드워드를 포함한다. 이것은, 보다 큰 구간 길이가 이미지 품질 면에서 양호한 결과를 제공할 경우에, 디폴트 3Dc 모드가 선택됨을 의미한다. 이것은 이때, 압축된 블록의 제 1 (X 또는 Y) 코드워드의 8 비트가 정수로서 해석될 시에 제 2 (X 또는 Y) 코드워드의 후속 8 비트 보다 작음을 의미한다. 그러나, 보다 작은 구간 길이가 양호한 품질 결과를 제공하면, 블록은, 예컨대, 상기 제공된 어떤 테이블을 이용함으로써, 본 발명에 따라 압축된다. 이와 같은 경우에, 제 1의 8 비트는 정수로서 해석될 시에 후속 8 비트보다 더 크다.
압축 해제
도 9는 본 발명의 실시예에 따른 압축된 이미지를 압축 해제하는 방법의 흐름도를 도시한다. 압축된 이미지는 기본적으로 이미지 블록의 수개의 압축된 리프리젠테이션을 포함한다. 이들 블록 리프리젠테이션은 바람직하게는 상술한 이미지 압축 방법에 의해 생성된다.
이 방법은 일반적으로 압축 해제될 압축된 이미지 블록을 식별함으로써 개시한다. 압축된 이미지의 모든 이미지 블록은 원래의 이미지의 압축 해제된 리프리젠테이션을 생성하도록 압축 해제될 수 있다. 선택적으로, 원래의 이미지의 일부만이 액세스될 수 있다. 결과로서, 이미지 블록의 선택된 수만이 압축 해제될 필요가 있다 (또는 더욱 정확하게는, 어떤 이미지 블록의 이미지 요소의 선택된 수가 디코딩될 필요가 있다).
블록 압축과 마찬가지로, 본 발명의 압축 해제는 병렬로 또는 순차적으로 2개의 벡터 성분 X 및 Y에 대해 개별적으로 실행될 수 있다. 이런 접근법은 먼저 아래에 기술될 것이다. 그러나, 또한 조합된 압축 해제가 조합된 압축과 관련하여 가 능할 수 있다.
정확한 압축된 이미지 블록이 식별되면, 베이스 코드워드 및 구간 코드워드 중 하나는 압축된 리프리젠테이션의 적어도 일부의 비트 패턴에 기초로 하여 식별된다. 그리고 나서, 베이스 코드워드 및 구간 코드워드 중 다른 하나는 베이스 및 구간 코드워드 중 식별된 하나에 기초로 하여 결정된다. 바람직한 구현에서, 구간 코드워드는 먼저 압축된 리프리젠테이션의 정해진 비트 패턴에 기초로 하여 단계 (S50)에서 식별된다. 이런 구현은 구간 코드워드가 프리픽스가 없는 코드의 형식이다는 지식을 이용한다. 구간 코드워드가 압축된 블록을 구성하는 비트 시퀀스에서 식별되었으면, 현재 벡터 성분 (X 또는 Y)에 대한 대응하는 베이스 코드워드가 식별될 수 있다. 이 식별은 바람직하게는 식별된 구간 코드워드에 따른 비트의 세트를 베이스 코드워드로서 지정함으로써 행해진다. 이 세트의 비트의 전체 수 플러스 구간 코드워드의 비트의 수는 바람직하게는 미리 정해진 최대값과 동일하다. 따라서, 이런 미리 정해진 값을 알고, 단계 (S50)에서 구간 코드워드의 비트의 수를 결정함으로써, 단계 (S51)에서 베이스 코드워드를 함께 형성하는 얼마나 많은 후속 비트가 결정된다.
다음의 단계 (S52)는 단계 (S51)에서 식별되는 베이스 코드워드에 기초로 하여 베이스 값을 결정한다. 이 베이스 코드워드가 5 비트와 같은 8 미만의 비트를 포함하면, 코드워드는 8 비트로 연장되거나 확장된다. 이것은, 코드워드의 최상위 비트를 복제하여, 이들을 최하위 비트로서 가산하여 8 비트를 형성함으로써 실현될 수 있다. 베이스 코드워드가 8 비트를 포함하면, 그것은 베이스 값으로서 바로 이 용될 수 있다. 이에 대응하여, 베이스 코드워드가 8 이상의 비트를 포함하면, 제 1의 8 비트는 바람직하게는 정수 값을, 예컨대, 8.3의 형식의 분수 값으로서의 잔여 비트로 나타낸다.
다음의 단계 (S53)는 단계 (S52)로부터 결정된 베이스 값 및 구간 코드워드에 기초로 하여 다수의 성분 값을 결정한다. 따라서, 베이스 값은, 예컨대 구간의 시점, 종점 또는 중간점을 지정함으로써 (X 또는 Y) 축을 따라 구간이 위치되는 곳을 지정한다. 이용할 구간 길이는, 예컨대, 함수, 미리 정해진 룩업 테이블 또는 세트에 대한 입력으로서 코드워드를 이용함으로써 구간 코드워드로부터 획득된다.
다음의 단계 (S54)에서, 이미지 요소의 원래의 (X 또는 Y) 벡터 성분의 리프리젠테이션으로서 이용할 성분 값은 인덱스 시퀀스에 기초로 하여 선택된다. 이 단계 (S54)에서, 현재 이미지 요소와 관련된 (X 또는 Y) 성분 인덱스는 단계 (S53)에서 계산되는 다수의 (X 또는 Y) 성분 값으로부터 하나의 성분 값을 선택하는데 이용된다.
단계 (S54)는 (라인 L5에 의해 개략적으로 도시되는) 이미지 블록의 수개의 이미지 요소에 대해 실행된다. 일부 응용에서, 단일 이미지 요소만이 특정 이미지 블록으로부터 디코딩되고, 특정 이미지 블록의 다수의 이미지 요소가 디코딩되며, 및/또는 특정 블록의 모든 이미지 요소가 디코딩된다는 것을 본 발명에 의해 알 수 있다.
단계 (S50 내지 S54)의 절차는 이때 다른 벡터 성분에 대해 유사한 방식으로 실행될 수 있거나, 2개의 성분이, 기본적으로 각 단계 (S50 내지 S54)를 두번 (한 번은 제 1 (X) 벡터 성분에 대한 것이고, 한 번은 제 2 (Y) 벡터 성분에 대한 것임) 실행함으로써, 병렬로 처리될 수 있다.
그 후, 단계 (S50 내지 S54)는 바람직하게는 디코딩되어야 하는 이미지 요소를 포함하는 모든 이미지 블록에 대해 반복된다(라인 L6에 의해 개략적으로 도시됨). 이것은 단계 (S50 내지 S54)의 루프가 한번 실행되지만, 여러 압축된 이미지 블록에 대해서는 종종 여러번 및/또는 특정 압축된 이미지 블록에 대해 여러번 실행될 수 있음을 의미한다. 구간 코드워드, 베이스 코드워드 및 선택적으로 인덱스 시퀀스의 각각의 비트 리졸루션 (비트 길이)은 도 9에 따라 처리될 여러 압축된 이미지 블록 간에 상이할 수 있음에 주목한다.
선택적 단계 (S55)에서, 원래의 이미지의 압축 해제된 리프리젠테이션 또는 그의 일부는 디코딩된 이미지 요소 및 블록에 기초로 하여 생성된다. 일부 응용에서, 수개의 이미지 요소는 디코딩된 리프리젠테이션의 단일 픽셀을 렌더(render)하기 위해 디코딩될 필요가 있음에 주목한다. 예컨대, 삼선형 보간(trilinear interpolation) 동안에는 8개의 이미지 요소가 디코딩되고, 쌍선형 보간(bilinear interpolation) 동안에 대응하는 수는 본 기술 분야의 숙련자에게 공지된 4개의 이미지 요소이다. 그 후, 이 방법은 종료한다.
도 10은 도 9의 식별 단계의 실시예를 더욱 상세히 도시한 흐름도이다. 이 실시예에서, 베이스 및 구간 코드워드 중 다른 하나, 바람직하게는 베이스 코드워드가 베이스 및 구간 코드워드 중 식별된 하나, 바람직하게는 구간 코드워드의 결정된 비트 길이에 기초로 하여 식별된다.
이 방법은 단계 (S60)에서 개시하며, 여기서, 압축된 리프리젠테이션의 선택된 부분은 미리 정해진 비트 패턴이 도달될 때까지 분석(parse)된다. 이 분석 단계 (S60)는 바람직하게는 제 1 벡터 성분에 대한 압축된 블록을 구성하는 비트 시퀀스의 시초에서 개시되고, 제 2 벡터 성분에 대한 비트 시퀀스의 중간에서 개시한다. 이런 분석 단계는 미리 정해진 비트 패턴이 도달될 때까지 계속한다. 이 실시예는 특히 프리픽스가 없는 코드의 사용에 적합하다. 이와 같은 경우에, 다수의 비트의 조합의 정해진 비트 값이 식별되면, 비트 시퀀스의 앞선 분석된 부분 및, 선택적으로 미리 정해진 비트 길이의 후속 부분은 베이스 및 구간 코드워드 중 하나, 바람직하게는 구간 코드워드를 구성한다. 예컨대, 테이블 I에 나타낸 바와 같은 구간 코드워드가 이용되면, 압축된 블록을 통한 분석은 제 1의 제로(zero)가 도달되거나, 12의 비트가 분석되었을 때까지 행해진다. 그 후, 이런 분석된 부분은 구간 코드워드를 구성한다. 테이블 IV에서, 제 1 lbin까지, 그리고 제 1 lbin을 포함하는 분석된 부분은, 제 1 lbin에는 5개의 Obin가 선행하지 않으면 구간 코드워드를 구성한다.
다음 단계 (S61)는 구간 코드워드를 압축된 블록의 분석된 부분 (및 선택적으로 미리 정해진 고정 길이의 후속 부분)으로서 정의한다. 식별된 구간 코드워드에 후속하는 압축된 블록의 일 부분은 단계 (S62)에서 베이스 코드워드로서 정의된다. 구간 코드워드 및 베이스 코드워드의 비트 길이는 고정되고, 미리 정해진 최대값과 동일하다. 그 후, 이 방법은 도 9의 단계 (S52)로 계속한다.
도 11은 도 9의 성분 값 결정 단계를 더욱 상세히 도시한 흐름도이다. 이 방법은 도 9의 단계 (S52)로부터 계속한다. 다음의 단계 (S70)는 구간 코드워드에 기초로 하여 (X 또는 Y) 구간 길이를 결정한다. 이 결정은 코드워드로부터 길이를 직접 계산함으로써 실행될 수 있다. 선택적 접근법에서, 코드워드는 대응하는 구간 길이를 제공하도록 함수, 룩업 테이블 등에 대한 입력으로서 이용된다. 다수의 성분 값은 이런 구간 길이 및 베이스 값에 기초로 하여 계산된다.
바람직한 구현에서, 이 방법은 구간의 개시점이 결정되는 단계 (S71)로 계속한다. 이 결정은, 베이스 값이 구간 개시점을 나타낼 경우에는 베이스 값만을 이용하여 실행될 수 있다. 그렇지 않으면, 이 결정은 베이스 값 및 구간 길이의 양방을 이용하여 행해진다. 대응하는 단계 (S72)는 베이스 값 또는 베이스 값 및 구간 길이를 이용하여 구간의 종료점을 결정한다. 다수의 압축된 값은 바람직하게는 단계 (S73)에서 개시점 및 종료점의 선형 조합으로서 계산된다:
Figure 112008079672801-pct00019
(9)
여기서, Xi는 X 성분 값을 나타내고, Xmin은 구간 개시점이며, Xmax은 구간 종료점이며, NX는 X 성분 값의 수이고, i = 0, 1, ... NX-1, NX는 바람직하게는 8이다. 개시점 및 종료점은, X 베이스 값이 구간의 개시점, 중간점 또는 종료점인지에 따라 어떤 식 (10 내지 12)에 따라 계산될 수 있다:
Figure 112008079672801-pct00020
(10)
Figure 112008079672801-pct00021
(11)
Figure 112008079672801-pct00022
(12)
그 후, 이 방법은 도 9의 단계 (S54)로 계속한다.
도 12A 내지 12C는 구간 코드워드로 정의된 구간(20) 내부의 상이한 성분 값(50)의 개념을 설명한 다이어그램이다. 도 12A에서, 베이스 값(10)은 구간(20)의 중간점을 나타낸다. 구간의 개시점(30) 및 종료점(40)은 상기 식(11)을 이용하여 베이스 값(10) 및 구간 길이(20)로부터 계산될 수 있다. 8개의 성분 값(50)은 상기 식(9)에 의해 종료점(30, 40)으로부터 획득된다. 그러나, 성분 값은 물론, 먼저 종료점(30, 40)을 계산하지 않고, 베이스 값(10) 및 구간 길이(20)로부터 직접 계산될 수 있음에 주목되어야 하며, 이는, 예컨대, 식(6)을 참조한다.
도 12B에서, 구간 길이(20)는 도 12A에서보다 비교적 더 크다. 게다가, 베이스 값(10)은 여기서 구간의 개시점(30)이다. 종료점(40)은 식(10)으로부터 획득 가능하다. 구간(20)이 이제 비교적 클 시에, 성분 값(50) 간의 거리는 또한 도 12A에 비해 증대한다. 도 12C는 소구간 길이(20)를 가진 다이어그램을 도시하며, 여기서, 베이스 값(10)은 구간(20)의 종료점(40)을 나타낸다.
2개의 벡터 성분의 조합된 디코딩은 본 발명에 따라 실행될 수 있다. 예컨 대, 2개의 구간 코드워드는 각 및 반경을 나타낸다. 이와 같은 경우에, 압축된 블록은 바람직하게는 반경-인코딩 구간 코드워드를 찾기 위해 분석된다. 이것은 결과적으로 2개의 베이스 코드워드의 식별을 허용한다. 이 실시예의 바람직한 구현에서, X 및 Y 베이스 코드워드는 동일한 비트 리졸루션을 갖는다. 게다가, 각-인코딩 구간 코드워드는 고정 길이를 갖는다. X 구간 길이는 r×cos(θ)로서 결정될 수 있고, Y 구간 길이는 r×sin(θ)이며, 여기서, r은 제 1 구간 코드워드로 나타낸 반경이고, θ는 제 2 코드워드로 나타낸 각이다. 상이한 X 및 Y 성분 값은 상술한 바와 같이 X 및 Y 구간 길이 및 X 및 Y 베이스 값으로부터 계산된다.
도 12D는 다른 조합된 압축 해제를 설명하며, 여기서, 구간 코드워드의 하나는 대각선(25)을 나타내고, 다른 하나는, 대각선(25)과 함께, 구간 길이(20)를 계산하는데 이용되는 웨이트를 나타낸다. X/Y 비트는 구간 길이(20)가 X 또는 Y 구간인지를 결정한다. 다른 구간은 대각선(25) 및 제 1 구간(20)으로부터 계산된다. 베이스 값(10, 15)은 2개의 계산된 구간(20)의 위치를 제공한다. 도 12D에서, 대응하는 X 점(30, 40) 및 값(50) 외에, Y 구간 및 Y 성분 값(55)의 개시점(35) 및 종료점(45)이 도시된다.
압축 해제 예
여기서는 도 3A 내지 3C에 도시된 바와 같은 비트 시퀀스 레이아웃(layout)을 이용한 압축 해제 예가 따른다.
압축된 이미지 블록은 다음의 비트 시퀀스로 표시된다:
1100110011110100 110 001 ... 001
1111111101011001 101 110 ... 010
여기서, 테이블 I은 여러 구간 코드워드를 제공하기 위해 이용된다. X 벡터 성분으로 개시하면, 압축된 블록의 제 1의 64 비트는 X 구간 코드워드를 찾기 위해 시점에서 종점까지 분석된다. 이런 분석은 이 경우에 제 1의 제로가 도달되면 종료된다. 이 제로 및 이전의 비트, 즉 110bin은 X 구간 코드워드를 구성한다. 테이블 I에서, 그 코드워드는 1/4의 구간 폭에 대응한다.
다음의 16 - L(WX) = 13 비트는 베이스 코드워드를 형성한다. 제 1의 8 비트는 정수 비트이지만, 잔여 5 비트는 분수 비트를 형성한다:
정수: 01100111bin=103
분수: 10100bin=1/2 + 1/8 = 0.625
따라서, X 베이스 값은 103.625이고, X 구간 길이는 0.25이다.
동일한 절차가 Y 성분에 대해 행해지는데, 여기서, 최종 64 비트는 먼저 분석되어 제 64 비트에서 개시한다. 이 경우에, Y 구간 코드워드는 111111110bin이고, 이는 테이 I블에 따라 24=16의 구간 길이에 대응한다. 다음의 16 - L(WY) = 7 비트는 Y 베이스 코드워드를 형성한다. 이 코드워드는 Y 베이스 값이 계산될 수 있기 전에 먼저 8 비트로 확장된다:
1011001bin → 10110011bin=179
따라서, Y 베이스 값은 179이고, Y 구간 길이는 16이다.
이런 예시적인 예에서, 베이스 값은 구간의 중간점을 나타낸다. 상기 식(6)은 가능한 X 및 Y 성분 값을 제공한다:
Figure 112008079672801-pct00023
제 1 이미지 요소는 X 성분 인덱스 110bin 및 Y 성분 인덱스 101bin를 갖는다. 이것은 X 성분 값 103.714 및 Y 성분 값 182.429이 선택되어야 함을 의미한다. 구간 [-1, 1]으로의 리맵핑(remapping)이 이용되면, 이들 값은 2×103.714/255-1=-0.187 및 2×182.429/255-1=0.431이 된다. 그리고 나서, 이미지 요소에 대한 Z-좌표 리프리젠테이션은, 식(1)을 이용하여, 이들 2개의 리맵핑된 값:
Figure 112008079672801-pct00024
으로부터 계산된다. 따라서, 제 1 이미지 요소에 대한 최종 노말은 (X,Y,Z)=(-0.187, 0.431, 0.470)이다.
제 2 이미지 요소는 X 성분 값 103.536에 대응하는 X 인덱스 001bin 및, 값 184.714와 관련되어 있는 Y 인덱스 110bin를 갖는다. 리맵핑 후에, 이들 값은 -0.188 및 0.449이다. Z 좌표는 0.487이 된다. 제 2 이미지 요소에 대한 노말은 (X,Y,Z)=(-0.188, 0.449, 0.487)이다. 그 후, 이런 절차는 디코딩되어야 하는 블록의 잔여 이미지 요소로 계속된다.
구현 양태
본 발명에 따른 이미지 (블록) 압축 및 이미지 (블록) 압축 해제 방식은 일반적 데이터 처리 시스템, 예컨대 사용자 단말기, 또는 이미지를 처리 및/또는 렌더링을 위해 구성된 다른 유닛에 제공될 수 있다. 이와 같은 단말기는 컴퓨터, 예컨대, PC, 게임 콘솔 또는 씬 클라이언트(thin client), 예컨대 개인 휴대용 정보 단말기 (PDA), 이동 유닛 및 전화일 수 있다.
사용자 단말기
도 13은 이동 유닛으로 나타낸 사용자 단말기를 도시한 것이다. 그러나, 본 발명은 이동 유닛으로 제한되지 않고, PC 컴퓨터 및 게임 콘솔과 같은 다른 단말기 및 데이터 처리 유닛에서 구현될 수 있다. 본 발명에 직접 포함된 이동 유닛(100)의 수단 및 소자만이 이 도면에 도시된다.
이동 유닛(100)은 이동 유닛(100) 내에서 이미지 데이터를 포함하는 데이터를 처리하는 (중앙) 처리 유닛 (CPU) (200)을 포함한다. 그래픽 시스템(130)은 이미지 및 그래픽 데이터를 관리하기 위해 이동 유닛(100) 내에 제공된다. 특히, 그래픽 시스템(130)은 접속된 스크린(120) 또는 다른 디스플레이 유닛 상에 이미지를 렌더링하거나 디스플레이하기 위해 구성된다. 이동 유닛(100)은 또한 데이터를 저장하는 저장 장치 또는 메모리(140)를 포함한다. 이 메모리(140) 내에, 이미지 데이터, 특히 본 발명에 따른 압축된 이미지 데이터가 저장될 수 있다.
본 발명에 따른 이미지 압축기(210)는 전형적으로 이동 유닛(100) 내에 제공된다. 이 압축기(210)는 이미지 또는 텍스쳐를 이미지의 압축된 리프리젠테이션으로 압축하기 위해 구성된다. 상술한 바와 같이, 이와 같이 압축된 리프리젠테이션은 다수의 압축된 이미지 블록의 시퀀스 또는 파일을 포함한다. 이 이미지 압축기(210)는 도면에 도시된 바와 같이 CPU (200) 상에서 실행하는 소프트웨어로서 제공될 수 있다. 선택적으로, 또는 부가적으로, 압축기(210)는 이동 유닛(100) 내의 그래픽 시스템(130) 또는 다른 장소에 배치될 수 있다.
블록 압축기(210)로부터의 이미지의 압축된 리프리젠테이션은 이미지의 후속 렌더링까지 (메모리) 버스(150)를 통해 저장하기 위한 메모리(140)에 제공될 수 있다. 선택적으로, 또는 부가적으로, 압축된 이미지 데이터는 다른 외부 단말기 또는 유닛으로 (무선 또는 유선) 송신을 위한 입력 및 출력 (I/O) 유닛(110)으로 전송될 수 있다. I/O 유닛(110)은, 예컨대, 사용자 단말기의 송신기 및 수신기 체인을 나타낸다. I/O 유닛(110)은 또한 외부 유닛으로부터 이미지 데이터를 수신하기 위해 구성될 수 있다. 이 이미지 데이터는 이미지 압축기(210)에 의해 압축되는 이미지, 또는 압축 해제되는 압축된 이미지 데이터일 수 있다. 또한, 예컨대 그래픽 시스템(130) 내에 제공된 전용 텍스쳐 메모리 내에 압축된 이미지 리프리젠테이션을 저장할 수 있다. 더욱이, 압축된 이미지의 부분은 또한, 또는 선택적으로, 예컨대 그래픽 시스템(130) 내의 텍스쳐 캐쉬(cache) 메모리 내에 (일시) 저장될 수 있다.
본 발명에 따른 이미지 압축 해제기(220)는 전형적으로 압축 해제된 이미지 리프리젠테이션을 생성하기 위해 압축된 이미지를 압축 해제하기 위해 이동 유 닛(100) 내에 제공된다. 이 압축 해제된 리프리젠테이션은 전체 원래의 이미지 또는 그의 일부에 대응한다. 이미지 압축 해제기(220)는 압축 해제된 이미지 데이터를 그래픽 시스템(130)에 제공하여, 전형적으로 스크린(120) 상에 렌더링되거나 제공되기 전에 상기 데이터를 처리한다. 이미지 압축 해제기(220)는, 도면에 도시된 바와 같이, 그래픽 시스템(130) 내에 배치될 수 있다.
선택적으로, 또는 부가적으로, 디코더(200)는 이동 유닛(100) 내의 CPU (200) 또는 다른 장소 상에서 실행하는 소프트웨어로서 제공될 수 있다.
이동 유닛(100)은, 도면에 도시된 바와 같이, 이미지 압축기(210) 및 이미지 압축 해제기(220)의 양방을 구비한다. 그러나, 어떤 단말기(100)에 대해, 이미지 압축기(210)만을 포함할 수 있다. 이와 같은 경우에, 압축된 이미지 데이터는 이미지의 압축 해제 및 아마 렌더링을 실행하는 다른 단말기로 송신된다. 이에 대응하여, 단말기(100)는 이미지 압축 해제기(220)만을 포함하며, 즉 압축기는 없다. 그 후, 이와 같은 단말기(100)는 압축된 이미지 데이터를 포함하는 신호를 다른 엔티티로부터 수신하여, 그것을 압축 해제하여 압축 해제된 이미지 리프리젠테이션을 생성한다. 따라서, 압축된 이미지 신호는 무선 송신기 및 수신기를 이용하여 단말기 간에 무선으로 송신될 수 있다. 선택적으로, 본 발명에 따라 단말기 간에 이미지 및 압축된 이미지 리프리젠테이션을 분배하는 다른 기술, 예컨대 단말기 간의 이미지 데이터의 유선 전달 및 IR 포트를 이용하는 BLUETOOTH®, IR-기술이 채용될 수 있다. 또한, 단말기 사이에 접속되어 교환될 수 있는 USB 메모리를 포함하는 메모리 카드 또는 칩은 이런 이미지 데이터의 단말기 간의 분배를 위해 이용될 수 있 다.
이동 유닛(100)의 유닛(110, 130, 200, 210 및 220)은 소프트웨어, 하드웨어 또는 그의 조합으로서 제공될 수 있다.
이미지 인코더
도 14는 본 발명에 따른 이미지 압축기(210)의 실시예의 블록도를 도시한 것이다. 압축기(210)는 전형적으로 입력 이미지를 수개의 이미지 블록으로 분해하거나 분할하는 이미지 분해기(215)를 포함한다. 분해기(215)는 바람직하게는, 이 이미지를, 16 이미지 요소 (픽셀, 텍셀 또는 복셀)를 포함하는, 즉 4×4 이미지 요소의 일반적 사이즈를 가진 이미지 블록으로 분해하기 위해 구성된다. 이 분해기(215)는 여러 입력 이미지를 상이한 사이즈를 가진 이미지 블록으로 분해하기 위해 구성된다. 이와 같은 경우에, 분해기(215)는 바람직하게는 입력 정보를 수신하여, 주어진 이미지에 이용하기 위해 어느 이미지 블록 포맷의 식별을 가능하게 한다.
이미지 압축기(210)의 이런 실시예는 블록 압축기(300)를 포함한다. 이 블록 압축기(300)는 이미지 분해기로부터 수신되는 이미지 블록을 압축하여, 압축된 블록 리프리젠테이션을 생성하도록 한다. 블록 리프리젠테이션의 전체 사이즈는 코드화되지 않은 이미지 블록의 대응하는 사이즈보다 작다. 블록 압축기(300)는 바람직하게는 분해기(215)로부터 순차적으로 각 이미지 블록을 처리(인코딩)하기 위해 구성된다.
선택적 구현에서, 압축기(210)는 이미지 분해기(215)로부터의 다수의 이미지 블록을 병렬로 처리하는 다수의 블록 압축기(300)를 포함하며, 이는 전체 이미지 인코딩 시간을 감소시킨다.
이미지 압축기(210)의 유닛(215 및 300)은 소프트웨어, 하드웨어 또는 그의 조합으로서 제공될 수 있다. 유닛(215 및 300)은 이미지 압축기(210) 내에서 함께 구현될 수 있다. 선택적으로, 분산 구현은 또한 이동 유닛의 다른 장소에 제공된 유닛 중 일부와 함께 가능하다.
블록 인코더
도 15는 도 14의 이미지 압축기의 블록 압축기와 같은 본 발명에 따른 블록 압축기(300)의 실시예의 블록도를 도시한 것이다. 압축기(300)는 (X 또는 Y) 베이스 코드워드, (X 또는 Y) 구간 코드워드 및 (X 또는 Y) 인덱스 시퀀스 중 2 이상에 대한 각각의 비트 리졸루션을 정의하기 위해 배치된 리졸루션 디파이너(310)를 포함한다. 디파이너(310)는 압축될 이미지 블록의 원래의 X 및 Y 벡터 성분을 수신하여, 이 성분의 적어도 일부에 기초로 하여 비트 리졸루션 정의를 실행한다. 베이스 양자화기(320)는 (X 또는 Y) 베이스 값의 리프리젠테이션으로서 (X 또는 Y) 베이스 코드워드를 결정하기 위해 배치된다. 이런 코드워드 결정은 (X 또는 Y) 벡터 성분의 적어도 일부에 기초로 하여, 및 또한 바람직하게는 리졸루션 디파이너(320)에 의해 정의되는 비트 리졸루션, 즉 비트에 의한 코드워드 길이에 기초로 하여 실행된다. 대응하는 구간 양자화기(330)는, (X 또는 Y) 베이스 값에 관계하는 다수의 (X 또는 Y) 성분 값을 포함하는 (X 또는 Y) 구간의 리프리젠테이션으로서 (X 또는 Y) 구간 코드워드를 결정하기 위해 블록 인코더(300) 내에 배치된다. 양자화 기(320)는 (X 또는 Y) 벡터 성분의 적어도 일부에 기초로 하여, 바람직하게는 디파이너(310)에 의해 코드워드에 지정된 비트 리졸루션에 기초로 하여 이런 코드워드 결정을 실행한다. 압축기(300)는 또한 인덱스 양자화기(340)를 포함한다. 이 양자화기(340)는, 블록의 각 이미지 요소에 대해, (X 또는 Y) 구간에 포함된 (X 또는 Y) 값으로부터 선택된 (X 또는 Y) 성분 값을 나타내는 (X 또는 Y) 인덱스 시퀀스를 결정하기 위해 배치된다. 인덱스 양자화기(340)는 바람직하게는, 블록의 이미지 요소의 (X 또는 Y) 벡터 성분을 가장 잘 나타내는 다수의 (X 또는 Y) 값의 (X 또는 Y) 성분 값을 식별한다. 이 식별은 바람직하게는 인코더 내에 배치된 에러 추정기(350)에 의해 행해진다. 그 후, 식별된 성분 값과 관련된 (X 또는 Y) 성분 인덱스는 인덱스 양자화기(340)에 의해 제공된다. 에러 추정기(350)는, 다수의 이용 가능한 (X 또는 Y) 값의 각 (X 또는 Y) 성분 값에 대해, 그 (X 또는 Y) 성분 값을 가진 이미지 요소의 (X 또는 Y) 벡터 성분을 나타내는 에러 추정치를 추정하도록 구현된다. 따라서, 제공된 (X 또는 Y) 성분 인덱스는, 그 이미지 요소의 특징 벡터의 원래의 (X 또는 Y) 벡터 성분을 가장 잘 나타내는, 즉 최소 에러와 관련되는 (X 또는 Y) 성분 값의 식별을 허용한다. 여러 (X 또는 Y) 성분 인덱스는 함께 (X 또는 Y) 인덱스 시퀀스를 형성한다.
블록 압축기(300)는 바람직하게는 또한, 이미지 블록 내에서 최대 (X 또는 Y) 벡터 성분 및 최소 (X 또는 Y) 벡터 성분을 식별하기 위해 배치되는 성분 식별자(360)를 포함한다. 이 정보는 리졸루션 디파이너(310), 베이스 양자화기(320) 및 구간 양자화기(330)에 의해 이용될 수 있다. 예컨대, 구간 양자화기(330)는 최대 및 최소 (X 또는 Y) 벡터 성분간의 차의 리프리젠테이션으로서 (X 또는 Y) 구간 코드워드를 결정하기 위해 배치될 수 있다. 양자화기(330)는 바람직하게는 함수, 미리 정해진 세트 또는, 도면에 도시된 바와 같이, 다수의 미리 정해진 (X 또는 Y) 구간 코드워드를 포함하는 룩업 테이블(370)에 대한 입력으로서 상기 차를 이용한다. 따라서, 양자화기(330)는, 최대 및 최소 (X 및 Y) 성분값 간의 차에 가장 근접한 구간 길이와 관련된 (X 또는 Y) 코드워드를 선택한다. 테이블(370) 내의 코드워드의 적어도 일부는 본 발명의 동적 및 가변 비트 리졸루션을 제공하도록 상이한 비트 길이를 갖는다.
베이스 양자화기(320)는 바람직하게는, (X 또는 Y) 구간 코드워드로 나타낸 구간의 개시점, 중간점 또는 종료점으로서 (X 또는 Y) 베이스 코드워드를 결정한다. 개시점의 경우에, 베이스 양자화기(320)는 성분 식별자(360)로부터의 최소 (X 또는 Y) 값의 정보를 이용하여, 그 최소값의 리프리젠테이션으로서 (X 또는 Y) 베이스 코드워드를 생성한다. 이에 대응하여, (X 또는 Y) 값이 종료점이면, 베이스 양자화기(320)는 최대 (X 또는 Y) 값의 정보를 이용한다. 양방의 (X 또는 Y) 값은, (X 또는 Y) 베이스 값이 구간의 중간점이 될 경우에 양자화기(320)에 의해 사용된다.
리졸루션 디파이너(310)는 바람직하게는 (X 또는 Y) 벡터 성분의 분산에 기초로 하여 각각의 비트 리졸루션을 정한다. 이 분산은 식별자(360)로부터 최대 및 최소 (X 또는 Y) 성분에 기초로 하여 결정된다. 디파이너(310)는, 예컨대, 최대 및 최소 (X 또는 Y) 벡터 성분의 차에 기초로 하여 비트 리졸루션을 정한다.
블록 압축기(300)의 유닛(310 내지 360)은 소프트웨어, 하드웨어 또는 그의 조합으로서 제공될 수 있다. 유닛(310 내지 370)은 블록 압축기(300) 내에서 함께 구현될 수 있다. 선택적으로, 분산 구현은 또한 이미지 압축기의 다른 장소에 제공된 유닛 중 일부와 함께 가능하다.
도 16은 도 15의 리졸루션 디파이너(310)의 실시예를 더욱 상세히 개략적으로 도시한 블록도이다. 이 디파이너(310)는 (X 또는 Y) 벡터 성분의 적어도 일부에 기초로 하여, 바람직하게는 최대 및 최소 (X 또는 Y) 벡터 성분에 기초로 하여 (X 또는 Y) 구간 코드워드에 대한 비트 리졸루션을 정하기 위해 배치된다. 리졸루션 계산기(312)는 이런 구간 코드워드 리졸루션 및 미리 정해진 최대 리졸루션 값으로부터 (X 또는 Y) 베이스 코드워드의 대응하는 비트 리졸루션을 계산하기 위해 디파이너(310) 내에 구성된다.
리졸루션 디파이너(310)의 유닛(312)은 소프트웨어, 하드웨어 또는 그의 조합으로서 제공될 수 있다. 유닛(312)은 선택적으로 블록 압축기내의 다른 장소에서 구현될 수 있다.
도 17은 도 15의 인덱스 양자화기(330)의 실시예를 더욱 상세히 개략적으로 도시한 블록도이다. 양자화기(330)는, 블록 내의 각 이미지 요소에 대해, (X 또는 Y) 구간 내에 포함된 다수의 (X 또는 Y) 값의 (X 또는 Y) 성분 값을 선택하기 위해 배치된 값 선택기(332)를 포함한다. 이 선택된 (X 또는 Y) 값은 이용 가능한 값의 최소 에러를 부여한다. 그 후, 인덱스 식별자(334)는, 선택기(332)에 의해 선택된 (X 또는 Y) 성분 값에 기초로 하여 다수의 이미지 요소의 세트에 대한 복합 (X 또 는 Y) 성분 인덱스를 식별한다. 이것은, 한 (X 또는 Y) 인덱스가 집합적으로 수개의 이미지 요소에 이용된다는 것을 의미한다. 식별자(334)는 바람직하게는 다수의 이와 같은 성분 인덱스를 포함하는 룩업 테이블(336)에 액세스한다. 그래서, 식별자(334)는 테이블(336)로부터 가장 적절한 복합 인덱스를 선택한다. 생성된 (X 또는 Y) 인덱스 시퀀스는, 이 실시예에서, 하나 이상의 이와 같은 복합 인덱스 및, 선택적으로 또한 단일 이미지 요소에만 지정되는 하나 이상의 통상의 (X 또는 Y) 성분 인덱스를 포함할 것이다.
인덱스 양자화기(330)의 유닛(332 및 334)은 소프트웨어, 하드웨어 또는 그의 조합으로서 제공될 수 있다. 유닛(332, 334 및 336)은 선택적으로 블록 압축기내의 다른 장소에서 구현될 수 있다.
이미지 디코더
도 18은 본 발명에 따른 이미지 압축 해제기(220)의 실시예의 블록도를 도시한 것이다. 이미지 압축 해제기(220)는 바람직하게는, 압축 해제를 위한 블록 압축 해제기(400)에 제공되는 어느 인코딩된 이미지 블록을, 예컨대 메모리로부터 수신하기 위해 구성되는 블록 선택기(222)를 포함한다. 블록 선택기(222)는 바람직하게는, 예컨대 헤더 또는 렌더링 엔진으로부터 압축된 이미지 데이터와 관련된 입력 정보를 수신한다. 바람직한 이미지 요소를 가진 압축된 이미지 블록의 어드레스는 이때 입력 정보에 기초로 하여 계산된다. 이 계산된 어드레스는 바람직하게는 이미지 내의 이미지 요소 (픽셀, 텍셀 또는 복셀) 좌표에 의존한다. 이 어드레스를 이용하여, 블록 선택기(222)는 메모리로부터 압축된 이미지 블록을 식별한다. 그 후, 이 식별된 압축된 이미지 블록은 저장 장치로부터 인출되어, 블록 압축 해제기(400)에 제공된다.
이미지 블록의 이미지 요소로의 (랜덤) 액세스는 이점으로 필요로 되는 이미지의 이미지 요소의 부분만을 선택적으로 압축 해제할 수 있다는 것이다. 더욱이, 이미지는 데이터가 필요로 되는 어떤 순서로 압축 해제될 수 있다. 예컨대, 텍스쳐 맵핑 시에, 텍스쳐의 부분만이 필요로 될 수 있고, 이들 부분은 일반적으로 비순차적 순서로 필요로 될 것이다. 따라서, 본 발명의 이미지 압축 해제는 이미지의 일부 또는 섹션만을 처리하는데 적용됨으로써 유리하게 할 수 있다.
그리고 나서, 선택된 압축된 이미지 블록은 블록 압축 해제기(400)로 전송된다. 이미지 블록 이외에, 압축 해제기(400)는 바람직하게는 디코딩되어야 하는 블록의 어느 이미지 요소를 지정하는 정보를 수신한다. 이 정보는 전체 이미지 블록, 즉 그 내의 모든 이미지 요소가 디코딩되어야 함을 지정한다. 그러나, 수신된 정보는 디코딩되어야 하는 단일 또는 소수의 이미지 요소만을 식별할 수 있다. 그 후, 블록 압축 해제기(400)는 블록 내의 이미지 요소의 압축 해제된 리프리젠테이션을 생성한다.
선택적 이미지 컴포저(image composer)(224)는 이미지 압축 해제기(220) 내에 제공된다. 이 컴포저는 블록 압축 해제기(400)로부터 디코딩된 이미지 요소를 수신하여, 이들을 구성하여 스크린 상에 렌더링되거나 디스플레이될 수 있는 픽셀을 생성한다. 이 이미지 컴포저(224)는 선택적으로 그래픽 시스템 내에 제공될 수 있다.
선택적으로, 이미지 압축 해제기(220)는 다수의 블록 압축 해제기(400)를 포함한다. 다수의 블록 압축 해제기(400)에 액세스함으로써, 이미지 디코더(220)는 다수의 인코딩된 이미지 블록을 병렬로 처리할 수 있다. 이들 다수의 블록 압축 해제기(400)는 이미지 압축 해제기(220)의 처리 성능 및 효율을 증대하는 병렬 처리를 고려한다.
이미지 압축 해제기(220)의 유닛(222, 224 및 400)은 소프트웨어, 하드웨어 또는 그의 조합으로서 제공될 수 있다. 유닛(222, 224 및 400)은 이미지 압축 해제기(220) 내에서 함께 구현될 수 있다. 선택적으로, 분산 구현은 또한 사용자 단말기의 다른 장소에 제공된 유닛 중 일부와 함께 가능하다.
블록 디코더
도 19는 본 발명에 따른 블록 압축 해제기(400)의 실시예를 도시한 것이다. 블록 압축 해제기(400)는, 압축된 블록의 적어도 일부의 비트 패턴에 기초로 하여 (X 또는 Y) 베이스 코드워드 및 (X 또는 Y) 구간 코드워드 중 하나를 식별하기 위해 배치된 코드워드 식별자(410)를 포함한다. 이 식별자(410)는 또한 제 1 식별된 (X 또는 Y) 코드워드에 기초로 하여 (X 또는 Y) 베이스 및 구간 코드워드 중 다른 하나를 식별한다. 바람직한 구현에서, 식별자(410)가 (X 또는 Y) 베이스 및 구간 코드워드 중 첫번째를 식별하였으면, 그것은 그 코드워드의 비트 길이를 결정한다. 이 길이 및 미리 정해진 최대값이 제공되면, 식별자(410)는 압축된 블록 내의 후속 부분으로서 (X 또는 Y) 베이스 및 구간 코드워드 중 다른 것을 위치시킬 수 있다.
베이스 값 생성기(420)는 상술한 바와 같이 (X 또는 Y) 베이스 값을 결정하 기 위해 식별된 (X 또는 Y) 베이스 코드워드를 이용한다. 성분 값 생성기(430)는 다수의 (X 또는 Y) 성분 값의 생성을 위한 입력으로서 결정된 (X 또는 Y) 베이스 값 및 식별된 (X 또는 Y) 구간 코드워드를 이용한다. 블록 압축 해제기(400)는 또한, 하나 이상의 이미지 요소에 대해, 생성된 성분 값으로부터 (X 또는 Y) 성분 값을 선택하기 위해 (X 또는 Y) 인덱스 시퀀스를 이용하는 값 선택기(440)를 포함한다. 전형적 접근법에서, 선택기(440)는 성분 값 중 하나를 선택하기 위해 현재 이미지 요소와 관련된 (X 또는 Y) 성분 인덱스를 식별한다. 복합 인덱스의 경우에, 선택기(440)는 집합적으로 다수의 이미지 요소에 대한 (X 또는 Y) 성분 값을 동시에 선택할 수 있다. 이 선택은 바람직하게는 상기 테이블 V와 같은 룩업 테이블(450)을 이용하여 실행된다.
블록 압축 해제기(400)의 유닛(410 내지 440)은 소프트웨어, 하드웨어 또는 그의 조합으로서 제공될 수 있다. 유닛(410 내지 440)은 블록 압축 해제기(400) 내에서 함께 구현될 수 있다. 선택적으로, 분산 구현은 또한 이미지 압축 해제기의 다른 장소에 제공된 유닛 중 일부와 함께 가능하다.
도 20은 도 19의 코드워드 식별자(410)의 실시예를 더욱 상세히 개략적으로 도시한 블록도다. 코드워드 식별자(410)는 미리 정해진 비트 패턴이 도달될 때까지 압축된 블록의 선택된 부분을 통해 분석하기 위해 배치된 비트 분석기(parser)(412)를 포함한다. 이 분석기는 전형적으로, 제 1 (X) 벡터 성분에 대한 압축된 블록의 시초 및, 제 2 (Y) 성분에 대한 블록의 중간에서 분석을 개시한다. 도 3A 내지 3C 참조. 이 비트 패턴은 제 1의 0bin 또는 1bin 또는, 0 또는 1의 제 1 조합일 수 있다. 더욱이, 비트 패턴은 최대 길이를 가진 압축된 블록의 섹션일 수 있다. 식별자(410)의 코드워드 디파이너(414)는, (X 또는 Y) 베이스 코드워드 및 (X 또는 Y) 구간 코드워드 중 하나, 바람직하게는 (X 또는 Y) 구간 코드워드로서 미리 정해진 비트 패턴까지 및 바람직하게는 이를 포함하는 압축된 블록의 분석된 부분을 정의하기 위해 배치된다. 디파이너(414)는 또한, (X 또는 Y) 베이스 코드워드 및 (X 또는 Y) 구간 코드워드 중 다른 하나, 바람직하게는 (X 또는 Y) 베이스 코드워드로서 압축된 블록의 후속 부분을 정의한다. (X 또는 Y) 구간 코드워드로서 식별된 부분 및, (X 또는 Y) 베이스 코드워드로서 식별된 부분의 비트 길이는 모든 이미지 블록에 대해 고정되고, 미리 정해진 최대값과 동일하다.
코드워드 식별자(410)의 유닛(412 및 414)은 소프트웨어, 하드웨어 또는 그의 조합으로서 제공될 수 있다. 유닛(412 및 414)은 선택적으로 블록 압축 해제기내의 다른 장소에서 구현될 수 있다.
도 21은 도 19의 성분값 생성기(430)의 실시예를 더욱 상세히 개략적으로 도시한 블록도다. 성분값 생성기(430)는, 구간 코드워드에 기초로 하여 (X 또는 Y) 구간의 길이를 결정하기 위해 배치되는 구간 생성기(432)를 포함한다. 이 구간 길이는 코드워드로부터 직접 계산될 수 있다. 선택적 접근법에서, 구간 생성기(432)는 성분값 생성기(430) 내에 배치되거나, 블록 디코더 내의 다른 장소에 제공되는 함수 또는 룩업 테이블을 이용한다 (도 19의 테이블(450)을 참조). 성분값 생성 기(430)의 값 계산기(434)는, 구간 생성기(432)로부터의 (X 또는 Y) 구간 길이 및, 베이스 값 생성기로부터의 (X 또는 Y) 베이스 값에 기초로 하여 다수의 (X 또는 Y) 성분값을 계산하기 위해 배치된다.
바람직한 구성에서, 성분값 생성기(430)는 또한 개시점 생성기(436) 및 종료점 생성기(438)를 포함한다. 이들 생성기(436, 438)은 구간 길이 및 베이스 값을 이용하여 (X 또는 Y) 구간의 개시점 및 종료점을 계산한다. 값 계산기(434)는, 전형적으로 개시점 및 종료점의 선형 조합으로서, 다수의 (X 또는 Y) 성분값을 계산하기 위해 이런 2개의 종료점의 정보를 이용할 수 있다.
상술한 바에서, 본 발명은 특징 벡터로서 노말, 바람직하게는 표준화된 표면 노말을 가진 이미지 블록의 처리와 관련하여 기술되었다. 선택적 구성에서, 특징 벡터는 RGB (적색, 녹색, 청색) 공간과 같은 색 공간 내의 색 벡터일 수 있다. 이와 같은 경우에, 압축된 이미지 블록은 색 공간, 예컨대, RGB 포인트 내의 베이스 색을 나타내는 하나의 베이스 코드워드를 포함한다. 구간 코드워드는 이때 베이스 색에 관하여 색 공간 내의 벡터를 나타내며, 즉 구간 길이 및 방향의 양방을 정한다. 베이스 색 및 벡터는 함께 개시점 및 종료점을 가진 색 공간 내의 구간을 정할 것이다. 이 구간은 2개의 구간의 종료점의 선형 조합으로서 바람직하게 획득할 수 있는 다수의 색의 값을 포함한다. 압축된 블록은 또한 이미지 요소마다 하나의 색 인덱스를 가진 인덱스 시퀀스를 포함하여, 여기서, 색 인덱스는 제각기 다수의 색의 값 중 하나와 관련되어 있다. 본 발명에 따르면, 구간 코드워드 및 베이스 코드워드에 대한 비트 리졸루션은, 압축된 블록의 전체 비트 길이가 동일할 지라도, 적 응되고 변화될 수 있다. 예컨대, 구간 길이가 크면, 구간 코드워드는 비교적 긴 비트 길이를 가져, 베이스 코드워드에 보다 적은 비트를 남긴다. 그러나, 짧은 구간 길이에 대해, 이에 대응하여 더욱 많은 비트가 구간 코드워드에 대한 보다 적은 비트로 베이스 코드워드에 소비된다.
구간 코드워드는, 2개의 부분, 예컨대 각 표시(angle representing) 부분 및 반경 표시 부분으로 이루어질 수 있음을 본 발명에 의해 알 수 있다. 이와 같은 경우에, 각 표시 부분에 소비된 비트의 수는 고정되는 반면에, 반경 표시 부분의 비트 길이는 색 공간 내의 이미지 요소의 원래의 색 벡터의 분산에 따라 조정될 수 있다.
당업자는 본 발명의 범주로부터 벗어나지 않고 본 발명에 대한 여러 수정 및 변경이 행해될 수 있음을 이해할 것이며, 본 발명의 범주는 첨부한 청구범위에 의해 규정된다.
참고 문헌
[1] http://www.ati.com/products/radeonx800/3DcWhitePaper.pdf
ATITM RadeonTM X800 3DcTM White Paper
[2] US Patent 5,956,431
[3] Munkberg et al., "High quality normal map compression", Graphics
Hardware September 2006
[4] PCT/SE2007/000053

Claims (34)

  1. 다수의 이미지 요소와 관련된 특징을 나타내는 각각의 특징 벡터를 가진 다수의 이미지 요소의 이미지 블록을 압축하는 방법에 있어서,
    - 상기 특징 벡터의 벡터 성분의 적어도 일부에 기초로 하여 베이스 코드워드, 구간 코드워드 및 인덱스 시퀀스 중 2 이상의 각각의 비트 리졸루션을 정의하는 단계로서, 상기 각각의 비트 리졸루션의 합은 고정되는 상기 단계;
    - 상기 벡터 성분의 적어도 일부에 기초로 하여 베이스 값의 리프리젠테이션으로서 상기 베이스 코드워드를 결정하는 단계;
    - 상기 벡터 성분의 적어도 일부에 기초로 하여 상기 베이스 값에 관한 다수의 성분 값을 포함하는 구간의 리프리젠테이션으로서 상기 구간 코드워드를 결정하는 단계 및;
    - 상기 다수의 이미지 요소의 각 이미지 요소에 대해, 상기 다수의 성분 값으로부터 선택된 성분 값을 나타내는 상기 인덱스 시퀀스를 결정하는 단계를 포함하는데,
    상기 정의하는 단계는,
    - 상기 벡터 성분의 상기 적어도 일부에 기초로 하여 상기 구간 코드워드에 대한 상기 비트 리졸루션을 정의하는 단계 및;
    - 미리 정해진 최대 리졸루션 값과, 상기 구간 코드워드에 정해진 상기 비트 리졸루션 간의 차로서 상기 베이스 코드워드에 대한 상기 비트 리졸루션을 계산하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  2. 제 1 항에 있어서,
    상기 정의하는 단계는 상기 특징 벡터의 상기 벡터 성분의 분산에 기초로 하여 상기 각각의 비트 리졸루션을 정의하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 정의하는 단계는,
    - 상기 특징 벡터의 최대 벡터 성분을 식별하는 단계;
    - 상기 특징 벡터의 최소 벡터 성분을 식별하는 단계 및;
    - 상기 최대 벡터 성분 및 상기 최소 벡터 성분의 비교에 기초로 하여 상기 각각의 비트 리졸루션을 정의하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 구간 코드워드를 결정하는 상기 단계는 상기 벡터 성분의 적어도 일부 및, 상기 구간 코드워드에 정해진 상기 비트 리졸루션에 기초로 하여 상기 구간의 리프리젠테이션으로서 상기 구간 코드워드를 결정하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 구간 코드워드를 결정하는 상기 단계는,
    - 상기 특징 벡터의 최대 벡터 성분을 식별하는 단계;
    - 상기 특징 벡터의 최소 벡터 성분을 식별하는 단계 및;
    - 상기 최대 벡터 성분 및 상기 최소 벡터 성분 간의 차의 리프리젠테이션으로서 상기 구간 코드워드를 결정하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  6. 제 5 항에 있어서,
    상기 구간 코드워드를 결정하는 상기 단계는, 상기 최대 벡터 성분과 상기 최소 벡터 성분 간의 상기 차에 기초로 하여, 상기 구간 코드워드를 다수의 미리 정해진 구간 코드워드의 세트로부터 식별하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  7. 제 6 항에 있어서,
    상기 다수의 미리 정해진 구간 코드워드의 각각은 미리 정해진 비트 리졸루션을 가지며, 상기 다수의 미리 정해진 구간 코드워드의 제 1 구간 코드워드의 비트 리졸루션은 상기 다수의 미리 정해진 구간 코드워드의 제 2 구간 코드워드의 비트 리졸루션과 상이한 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  8. 제 1 항 또는 제 2 항에 있어서,
    상기 베이스 코드워드를 결정하는 상기 단계는 상기 벡터 성분의 적어도 일부 및, 상기 베이스 코드워드에 정해진 비트 리졸루션에 기초로 하여 상기 베이스 값의 리프리젠테이션으로서 상기 베이스 코드워드를 결정하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  9. 제 1 항 또는 제 2 항에 있어서,
    상기 베이스 코드워드를 결정하는 상기 단계는 상기 벡터 성분의 상기 적어도 일부 및, 상기 베이스 코드워드에 정해진 상기 비트 리졸루션에 기초로 하여 상기 구간의 개시점, 중간점 및 종료점 중 하나 이상으로서 상기 베이스 코드워드를 결정하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  10. 제 1 항 또는 제 2 항에 있어서,
    상기 인덱스 시퀀스를 결정하는 상기 단계는, 상기 다수의 이미지 요소의 각 이미지 요소에 대해, 상기 다수의 성분 값으로부터 선택된 성분 값을 나타내는 상기 인덱스 시퀀스에 정해진 비트 리졸루션에 기초로 하여 상기 인덱스 시퀀스를 결정하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  11. 제 1 항 또는 제 2 항에 있어서,
    상기 인덱스 시퀀스를 결정하는 상기 단계는, 상기 다수의 이미지 요소의 각 이미지 요소에 대해, 상기 다수의 성분 값으로부터 선택된 성분 값을 나타내는 성분 인덱스를 제공하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  12. 제 1 항 또는 제 2 항에 있어서,
    상기 인덱스 시퀀스를 결정하는 상기 단계는,
    - 상기 다수의 이미지 요소의 각 이미지 요소에 대해, 상기 이미지 요소의 벡터 성분을 가장 잘 나타내는 상기 다수의 성분 값 중 하나의 성분 값을 선택하는 단계 및;
    - 룩업 테이블의 다수의 이미지 요소의 세트에 대한 복합 성분 인덱스를 상기 세트의 이미지 요소에 대한 선택된 성분 값에 기초로 하여 식별하는 단계를 포함하는 것을 특징으로 하는 다수의 이미지 요소의 이미지 블록을 압축하는 방법.
  13. 다수의 이미지 요소를 포함하는 이미지 블록의 압축된 리프리젠테이션을 처리하는 방법으로서, 상기 압축된 리프리젠테이션은 베이스 코드워드, 구간 코드워드 및 인덱스 시퀀스를 포함하는 이미지 블록의 압축된 리프리젠테이션의 처리 방법에 있어서,
    - 상기 압축된 리프리젠테이션의 적어도 일부의 비트 패턴에 기초로 하여 상기 압축된 리프리젠테이션에서 상기 베이스 코드워드 및 상기 구간 코드워드 중 하나를 식별하는 단계;
    - 상기 베이스 코드워드 및 상기 구간 코드워드 중 상기 식별된 하나에 기초로 하여 상기 압축된 리프리젠테이션에서 상기 베이스 코드워드 및 상기 구간 코드워드 중 다른 하나를 식별하는 단계;
    - 상기 베이스 코드워드에 기초로 하여 베이스 값을 결정하는 단계;
    - 상기 베이스 값 및 상기 구간 코드워드에 기초로 하여 다수의 성분 값을 결정하는 단계 및;
    상기 이미지 블록의 하나 이상의 이미지 요소에 대해,
    - 상기 인덱스 시퀀스에 기초로 하여, 상기 다수의 성분 값으로부터 하나의 성분 값을 선택하는 단계를 포함하는데,
    상기 다수의 성분 값을 결정하는 상기 단계는,
    - 상기 구간 코드워드에 기초로 하여 구간의 길이를 결정하는 단계 및;
    - 상기 구간 길이 및 상기 베이스 값에 기초로 하여 상기 다수의 성분 값을 계산하는 단계를 포함하며,
    상기 계산 단계는,
    - 상기 구간 길이 및 상기 베이스 값에 기초로 하여 상기 구간의 개시점을 결정하는 단계;
    - 상기 구간 길이 및 상기 베이스 값에 기초로 하여 상기 구간의 종료점을 결정하는 단계;
    - 상기 개시점 및 상기 종료점에 기초로 하여 상기 다수의 성분 값을 계산하는 단계를 포함하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션의 처리 방법.
  14. 제 13 항에 있어서,
    상기 베이스 코드워드 및 상기 구간 코드워드 중 다른 하나를 식별하는 상기 단계는 상기 베이스 코드워드 및 상기 구간 코드워드 중 상기 식별된 하나의 결정된 비트 길이에 기초로 하여 상기 압축된 리프리젠테이션에서 상기 베이스 코드워드 및 상기 구간 코드워드 중 다른 하나를 식별하는 단계를 포함하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션의 처리 방법.
  15. 제 13 항 또는 제 14 항에 있어서,
    상기 베이스 코드워드 및 상기 구간 코드워드 중 하나를 식별하는 단계는
    - 미리 정해진 비트 패턴이 도달될 때까지 상기 압축된 리프리젠테이션을 통해 분석하는 단계; 및
    - 상기 압축된 리프리젠테이션의 상기 분석된 부분에 기초로 하여 상기 베이스 코드워드 및 상기 구간 코드워드 중 상기 하나를 정의하는 단계를 포함하며,
    상기 베이스 코드워드 및 상기 구간 코드워드 중 다른 하나를 식별하는 단계는
    - 상기 베이스 코드워드 및 상기 구간 코드워드 중 상기 다른 하나로서 상기 압축된 리프리젠테이션의 후속 부분을 정의하는 단계를 포함하는데, 상기 구간 코드워드 및 상기 베이스 코드워드의 비트 길이는 고정되는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션의 처리 방법.
  16. 제 13 항에 있어서,
    상기 계산 단계는 상기 개시점 및 상기 종료점의 선형 조합으로서 상기 다수의 성분 값을 계산하는 단계를 포함하는 것을 특징으로 하는 이미지 블록의 압축된 리프리젠테이션의 처리 방법.
  17. 다수의 이미지 요소와 관련된 특징을 나타내는 각각의 특징 벡터를 가진 다수의 이미지 요소를 포함하는 이미지 블록을 압축하는 블록 압축기에 있어서,
    - 상기 특징 벡터의 벡터 성분의 적어도 일부에 기초로 하여 베이스 코드워드, 구간 코드워드 및 인덱스 시퀀스 중 2 이상의 각각의 비트 리졸루션을 정하기 위해 배치된 리졸루션 디파이너로서, 상기 각각의 비트 리졸루션의 합은 고정되는 상기 리졸루션 디파이너;
    - 상기 벡터 성분의 적어도 일부에 기초로 하여 베이스 값의 리프리젠테이션으로서 상기 베이스 코드워드를 결정하기 위해 배치되는 베이스 양자화기;
    - 상기 벡터 성분의 적어도 일부에 기초로 하여 상기 베이스 값에 관한 다수의 성분 값을 포함하는 구간의 리프리젠테이션으로서 상기 구간 코드워드를 결정하기 위해 배치되는 구간 양자화기 및;
    상기 다수의 이미지 요소의 각 이미지 요소에 대해, 상기 다수의 성분 값으로부터 선택된 성분 값을 나타내는 상기 인덱스 시퀀스를 결정하기 위해 배치되는 인덱스 양자화기를 포함하는데,
    상기 리졸루션 디파이너는 상기 벡터 성분의 상기 적어도 일부에 기초로 하여 상기 구간 코드워드에 대한 상기 비트 리졸루션을 정하기 위해 배치되고, 상기 리졸루션 디파이너는 미리 정해진 최대 리졸루션 값과, 상기 리졸루션 디파이너에 의해 상기 구간 코드워드에 정해진 상기 비트 리졸루션 간의 차로서 상기 베이스 코드워드에 대한 상기 비트 리졸루션을 계산하기 위해 배치되는 리졸루션 계산기를 더 포함하는 것을 특징으로 하는 블록 압축기.
  18. 제 17 항에 있어서,
    상기 리졸루션 디파이너는 상기 특징 벡터의 상기 벡터 성분의 분산에 기초로 하여 상기 각각의 비트 리졸루션을 정하기 위해 배치되는 것을 특징으로 하는 블록 압축기.
  19. 제 17 항 또는 제 18 항에 있어서,
    i) 상기 특징 벡터의 최대 벡터 성분을 식별하고, ii) 상기 특징 벡터의 최소 벡터 성분을 식별하기 위해 배치되는 성분 식별자를 더 포함하는데, 상기 리졸루션 디파이너는 상기 성분 식별자에 의해 식별되는 상기 최대 벡터 성분 및 상기 최소 벡터 성분의 비교에 기초로 하여 상기 각각의 비트 리졸루션을 정하기 위해 배치되는 것을 특징으로 하는 블록 압축기.
  20. 제 17 항 또는 제 18 항에 있어서,
    상기 구간 양자화기는 상기 벡터 성분의 적어도 일부 및, 상기 리졸루션 디파이너에 의해 상기 구간 코드워드에 정해진 상기 비트 리졸루션에 기초로 하여 상기 베이스 값에 관한 다수의 성분 값을 포함하는 구간의 리프리젠테이션으로서 상기 구간 코드워드를 결정하기 위해 배치되는 것을 특징으로 하는 블록 압축기.
  21. 제 17 항 또는 제 18 항에 있어서,
    i) 상기 특징 벡터의 최대 벡터 성분을 식별하고, ii) 상기 특징 벡터의 최소 벡터 성분을 식별하기 위해 배치되는 성분 식별자를 더 포함하는데, 상기 구간 양자화기는 상기 성분 식별자에 의해 식별되는 상기 최대 벡터 성분 및 상기 최소 벡터 성분 간의 차의 리프리젠테이션으로서 상기 구간 코드워드를 결정하기 위해 배치되는 것을 특징으로 하는 블록 압축기.
  22. 제 17 항 또는 제 18 항에 있어서,
    상기 베이스 양자화기는 상기 벡터 성분의 적어도 일부 및, 상기 리졸루션 디파이너에 의해 상기 베이스 코드워드에 정해진 상기 비트 리졸루션에 기초로 하여 상기 베이스 값의 리프리젠테이션으로서 상기 베이스 코드워드를 결정하기 위해 배치되는 것을 특징으로 하는 블록 압축기.
  23. 제 17 항 또는 제 18 항에 있어서,
    상기 베이스 양자화기는 상기 벡터 성분의 적어도 일부 및, 상기 베이스 코드워드에 정해진 상기 비트 리졸루션에 기초로 하여 상기 구간의 개시점, 중간점 및 종료점 중 하나 이상으로서 상기 베이스 코드워드를 결정하기 위해 배치되는 것을 특징으로 하는 블록 압축기.
  24. 제 17 항 또는 제 18 항에 있어서,
    상기 인덱스 양자화기는, 상기 리졸루션 디파이너에 의해 상기 인덱스 시퀀스에 정해진 비트 리졸루션에 기초로 하여, 상기 다수의 이미지 요소의 각 이미지 요소에 대해, 상기 다수의 성분 값으로부터 선택된 성분 값을 나타내는 상기 인덱스 시퀀스를 결정하기 위해 배치되는 것을 특징으로 하는 블록 압축기.
  25. 제 17 항 또는 제 18 항에 있어서,
    상기 인덱스 양자화기는, 상기 다수의 이미지 요소의 각 이미지 요소에 대해, 상기 다수의 성분 값으로부터 선택된 성분 값을 나타내는 성분 인덱스를 제공하기 위해 배치되는 것을 특징으로 하는 블록 압축기.
  26. 제 17 항 또는 제 18 항에 있어서,
    상기 인덱스 양자화기는,
    - 상기 다수의 이미지 요소의 각 이미지 요소에 대해, 상기 이미지 요소의 벡터 성분을 가장 잘 나타내는 상기 다수의 성분 값 중 하나의 성분 값을 선택하기 위해 배치되는 값 선택기 및;
    - 상기 값 선택기에 의해 선택되는 다수의 이미지 요소의 세트의 상기 이미지 요소에 대한 상기 성분 값에 기초로 하여 룩업 테이블의 다수의 이미지 요소의 세트에 대한 복합 성분 인덱스를 식별하기 위해 배치되는 인덱스 식별자를 포함하는 것을 특징으로 하는 블록 압축기.
  27. 다수의 이미지 요소를 포함하는 이미지 블록의 압축된 리프리젠테이션을 처리하는 블록 압축 해제기로서, 상기 압축된 리프리젠테이션은 베이스 코드워드, 구간 코드워드 및 인덱스 시퀀스를 포함하는 블록 압축 해제기에 있어서,
    - i) 상기 압축된 리프리젠테이션의 적어도 일부의 비트 패턴에 기초로 하여 상기 압축된 리프리젠테이션에서 상기 베이스 코드워드 및 상기 구간 코드워드 중 하나를 식별하고, ii) 코드워드 식별자에 의해 상기 압축된 리프리젠테이션에서 식별된 상기 베이스 코드워드 및 상기 구간 코드워드 중 상기 하나에 기초로 하여 상기 압축된 리프리젠테이션에서 상기 베이스 코드워드 및 상기 구간 코드워드 중 다른 하나를 식별하기 위해 배치되는 코드워드 식별자;
    - 상기 베이스 코드워드에 기초로 하여 베이스 값을 결정하기 위해 배치되는 베이스 값 생성기;
    - 상기 베이스 값 생성기에 의해 결정되는 상기 베이스 값 및 상기 구간 코드워드에 기초로 하여 다수의 성분 값을 결정하기 위해 배치되는 성분 값 생성기 및;
    -상기 이미지 블록의 하나 이상의 이미지 요소에 대해, 상기 인덱스 시퀀스에 기초로 하여, 상기 다수의 성분 값으로부터 하나의 성분 값을 선택하기 위해 배치되는 값 선택기를 포함하는데,
    상기 성분 값 생성기는,
    - 상기 구간 코드워드에 기초로 하여 구간의 길이를 결정하기 위해 배치되는 구간 생성기 및;
    - 상기 구간 생성기에 의해 결정되는 상기 구간 길이 및 상기 베이스 값 생성기에 의해 결정되는 상기 베이스 값에 기초로 하여 상기 다수의 성분 값을 계산하기 위해 배치되는 값 계산기를 포함하며,
    상기 코드워드 식별자는,
    - 미리 정해진 비트 패턴이 도달될 때까지 상기 압축된 리프리젠테이션을 통해 분석하기 위해 배치되는 비트 분석기 및;
    - i) 상기 압축된 리프리젠테이션의 상기 분석된 부분에 기초로 하여 상기 베이스 코드워드 및 상기 구간 코드워드 중 상기 하나를 정하고, ii) 상기 베이스 코드워드 및 상기 구간 코드워드 중 상기 다른 하나로서 상기 압축된 리프리젠테이션의 후속 부분을 정하기 위해 배치되는 코드워드 디파이너로서, 상기 구간 코드워드 및 상기 베이스 코드워드의 비트 길이는 고정되는 코드워드 디파이너를 포함하는 것을 특징으로 하는 블록 압축 해제기.
  28. 제 27 항에 있어서,
    상기 코드워드 식별자는 상기 코드워드 식별자에 의해 상기 압축된 리프리젠테이션에서 식별되는 상기 베이스 코드워드 및 상기 구간 코드워드 중 상기 하나의 결정된 비트 길이에 기초로 하여 상기 압축된 리프리젠테이션에서 상기 베이스 코드워드 및 상기 구간 코드워드 중 다른 하나를 식별하기 위해 배치되는 것을 특징으로 하는 블록 압축 해제기.
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
KR1020087028207A 2006-04-20 2007-03-23 이미지 처리 KR101464770B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US74519906P 2006-04-20 2006-04-20
US60/745,199 2006-04-20
PCT/SE2007/000291 WO2007123452A2 (en) 2006-04-20 2007-03-23 Image processing

Publications (2)

Publication Number Publication Date
KR20090005197A KR20090005197A (ko) 2009-01-12
KR101464770B1 true KR101464770B1 (ko) 2014-11-26

Family

ID=38625438

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087028207A KR101464770B1 (ko) 2006-04-20 2007-03-23 이미지 처리

Country Status (7)

Country Link
US (1) US8260066B2 (ko)
EP (1) EP2008248A2 (ko)
JP (1) JP5085642B2 (ko)
KR (1) KR101464770B1 (ko)
CN (1) CN101427285B (ko)
HK (1) HK1132074A1 (ko)
WO (1) WO2007123452A2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5306317B2 (ja) * 2007-04-04 2013-10-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ベクトルを使用する画像処理
CA2683841A1 (en) 2007-04-04 2008-10-16 Telefonaktiebolaget Lm Ericsson (Publ) Vector-based image processing
US8787685B2 (en) 2008-02-21 2014-07-22 France Telecom Encoding and decoding an image or image sequence divided into pixel blocks
JP5228111B2 (ja) * 2008-09-23 2013-07-03 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 画素ブロック処理
EP2390838B1 (en) * 2009-01-23 2019-10-02 Nec Corporation Image identifier extracting apparatus
KR101353104B1 (ko) * 2009-04-14 2014-01-17 닛본 덴끼 가부시끼가이샤 이미지 시그니처 추출 장치
WO2010146786A1 (ja) * 2009-06-16 2010-12-23 日本電気株式会社 画像識別子照合装置
CN103035018A (zh) * 2012-12-11 2013-04-10 大连创达技术交易市场有限公司 一种简单快速的皮肤构造技术
CN103738266B (zh) * 2013-08-21 2017-07-18 深圳市辂元科技有限公司 移动终端与车机的互联方法及一种车机
US10244250B2 (en) * 2015-05-29 2019-03-26 Samsung Electronics Co., Ltd. Variable-rate texture compression using fixed-rate codes
US10296580B1 (en) 2015-09-18 2019-05-21 Amazon Technologies, Inc. Delivering parsed content items
US10127210B1 (en) 2015-09-25 2018-11-13 Amazon Technologies, Inc. Content rendering
US10241983B1 (en) * 2015-09-28 2019-03-26 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10601894B1 (en) 2015-09-28 2020-03-24 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10348797B1 (en) 2015-12-15 2019-07-09 Amazon Technologies, Inc. Network browser configuration
US10341345B1 (en) 2015-12-15 2019-07-02 Amazon Technologies, Inc. Network browser configuration

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998027736A2 (en) * 1996-12-17 1998-06-25 Thomson Consumer Electronics, Inc. Pixel block compression apparatus in an image processing system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6459495B1 (en) 1997-07-15 2002-10-01 Silverbrook Research Pty Ltd Dot center tracking in optical storage systems using ink dots
US6658146B1 (en) * 1997-10-02 2003-12-02 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
US5956431A (en) * 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
CN1462982A (zh) * 2002-05-29 2003-12-24 明日工作室股份有限公司 智能动画生成方法以及系统
US7379608B2 (en) * 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
JP4805924B2 (ja) * 2004-07-08 2011-11-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチモード画像処理のための方法、システム、及びシステムを具備するユーザ端末
EP1977605B1 (en) 2006-01-23 2020-04-15 Telefonaktiebolaget LM Ericsson (publ) Image processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998027736A2 (en) * 1996-12-17 1998-06-25 Thomson Consumer Electronics, Inc. Pixel block compression apparatus in an image processing system

Also Published As

Publication number Publication date
JP5085642B2 (ja) 2012-11-28
US20090202159A1 (en) 2009-08-13
WO2007123452A3 (en) 2007-12-27
HK1132074A1 (en) 2010-02-12
EP2008248A2 (en) 2008-12-31
US8260066B2 (en) 2012-09-04
CN101427285B (zh) 2012-05-30
CN101427285A (zh) 2009-05-06
WO2007123452A2 (en) 2007-11-01
JP2009534914A (ja) 2009-09-24
KR20090005197A (ko) 2009-01-12

Similar Documents

Publication Publication Date Title
KR101464770B1 (ko) 이미지 처리
US7787691B2 (en) High quality image processing
EP1924970B1 (en) Texture compression based on two hues with modified brightness
US8369629B2 (en) Image processing using resolution numbers to determine additional component values
JP4444970B2 (ja) マルチモード画像処理
US7657105B2 (en) Alpha image processing
US20080187218A1 (en) Weight Based Image Processing
US8571339B2 (en) Vector-based image processing
KR20070039538A (ko) 멀티모드 이미지 처리
EP2145317B1 (en) Multi-mode vector-based image processing

Legal Events

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

Payment date: 20171107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181106

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191108

Year of fee payment: 6