KR101709822B1 - 부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법 - Google Patents

부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법 Download PDF

Info

Publication number
KR101709822B1
KR101709822B1 KR1020127015254A KR20127015254A KR101709822B1 KR 101709822 B1 KR101709822 B1 KR 101709822B1 KR 1020127015254 A KR1020127015254 A KR 1020127015254A KR 20127015254 A KR20127015254 A KR 20127015254A KR 101709822 B1 KR101709822 B1 KR 101709822B1
Authority
KR
South Korea
Prior art keywords
texel
output
decoder
adder
multiplexer
Prior art date
Application number
KR1020127015254A
Other languages
English (en)
Other versions
KR20120097515A (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 KR20120097515A publication Critical patent/KR20120097515A/ko
Application granted granted Critical
Publication of KR101709822B1 publication Critical patent/KR101709822B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria

Abstract

복호 시스템(1)은, 각각이 자신을 제외한 다른 N-1개의 복호기들의 회로들과는 상이한 고유 회로를 가지는 N개의 상이한 복호기(100, 200, 300, 400)들을 포함한다. 복호기(100, 200, 300, 400) 각각은 입력 부호화된 텍셀블록(40)을 기반으로 적어도 하나의 텍셀값을 생성한다. 값 선택기(500)는 적어도 N개 텍셀(30 내지 36)들 중 적어도 하나를 포함하는 텍셀블록(10)의 경계에 관해 적어도 N개의 텍셀(30 내지 36)들의 위치를 기반으로 복호기(100, 200, 300, 400)들 중 적어도 하나로부터 적어도 N개의 텍셀값들을 선택적으로 출력하도록 구성된다. 화소 계산기(600)는 값 선택기(500)로부터 적어도 N개의 선택된 텍셀값들을 기반으로 복호된 화소의 화소값을 계산한다.

Description

부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법{Decoding system and method operable on encoded texture element blocks}
본 발명은 복호화에 관한 것으로서, 특히 부호화된 텍셀 블록들에서 동작할 수 있는 복호 시스템 및 방법에 관한 것이다.
그래픽처리장치(graphics processing units:GPU)에 대한 성능을 향상시키고 할 때, 한 가지 해결책은, 메모리 대역폭 소비를 감소시키기 위한 다양한 기술들을 적용하는 것이다. 대역폭 감소는 또한, 처리전력에 대한 성능 성장률이 대역폭에 대한 성능 성장률과 무작위 액세스 메모리(RAM)에 대한 잠재성보다 훨씬 크기 때문에 점점 더 중요해지고 있다.
텍스쳐 이미지 압축(texture compression)은 대역폭 필요조건을 감소시키기 위한 한 가지 보편적인 방식이다. 메모리에 압축된 형식으로 텍스쳐를 저장하고 또한 버스(bus)를 통해 압축된 데이터의 블록들을 전송함으로써, 텍스쳐 대역폭은 실질적으로 감소된다.
오늘날, 가장 많이 사용하는 텍스쳐 이미지 압축 시스템은 윈도우 기반 시스템들과 엑스박스(Xbox)를 위한 DXTC[1]와 이동 전화기용의 ETC[2]이다. 이들 두 시스템들은 텍스쳐로 표시되는 이미지를 4 x 4 텍셀의 텍셀(texel) 블록들로 분할, 그런 다음에 텍셀들의 적, 녹, 청(RGB) 데이터들은 (8+8+8)x16=384 비트에서 64비트로 압축된다. 그러므로, 각각의 텍셀 블록에는 동일 수의 비트들이 제공된다. 이는 중요한데, 압축해제에 사용되는 래스터라이져(rasterizer)가 텍스쳐의 소정 부분에 액세스할 필요성이 있을 수 있고 또한 원하는 텍셀 블록의 메모리 어드레스를 쉽게 계산할 수 있는 것이 필요하기 때문이다. 즉, 고정율 코덱(fixed rate codec), 즉 모든 텍셀 블록이 동일 양의 저장 공간을 차지하는 코덱이 매우 바람직하고 또한 오늘날 덱스쳐 압축 알고리즘 중에서 표준이다.
ETC 복호기의 개발은, 소위 T-모드, H-모드 및 PLANAR-모드를 처리하기 위한 여분의 기능을 가지는 ETC2 복호기[3]가 되었다. T- 및 H-모드들은 불균일한 색상의 분포를 가지는 텍셀 블록들과 두 그룹으로 배열되는 색상들을 각각 처리하다록 디자인딘다. ETC 복호기의 하드웨어 회로는 추가적인 T- 및 H-모드들을 포함하도록 상당한 정도로 재사용할 수 있다. 비록 PLANAR-모드가 ETC 및 T- 및 H-모드들과 상당히 다르지만, 부드러운 색상 변위(color transition)을 텍셀 블록들을 처리하도록 설계된다 한다. PLANAR-모드를 위한 복합 하드웨어 회로는, ETC2 복호기의 복잡도가 ETC 복호기와 비교할 때 상당히 증가할 수 있다는 것을 의미한다.
그러므로, PLANAR-모드의 효율적인 구현을 제공할 필요가 있고, 특히 비용 효율적인 회로를 사용하는 하드웨어 구현으로서 제공될 수 있는 구현들을 제공할 필요가 잇다. 이러한 비용 효율적인 회로는, PLANAR-모드가 ETC-복호기와 T- 및 H-모드와 함께 사용되게 되어 ETC2 복호기를 형성한다면 특히 바람직하다.
비슷한 문제가 기술분야에 존재하는데, 즉 구현의 복잡성을 감소시킬 목적으로 복호 시스템에 적용될 수 있는 기술에 대한 일반적인 필요성이 있다.
본 발명의 목적은 암호화된 텍셀 블록들의 효율적인 복호를 제공하는 것이다.
특히, 본 발명의 목적은 하드웨어에서 효율적으로 구현될 수 있는 복호구조를 제공하는 것이다.
이들 및 다른 목적들은 여기에서 기술하는 실시예들에 의해 이루어진다.
간략하게, 한 실시예는 부호화된 적어도 한 텍셀 블록을 기반으로 복호화된 화소(pixel)를 생성하기 위한 복호 시스템에 관련된다. 복호 시스템은, 각각이 하 이상의 텍셀 값들을 생성하기 위해 부호화된 텍셀 블록을 복호하도록 구성되는 N 개의 병렬 복호기들을 포함한다. 상기 실시예에 따라, N개의 복호기들의 회로들은 서로 간에 비교하였을 때 상이하여, N 개의 복호기들 각각은 자신을 제외한 다른 N-1 개의 복호기들의 회로와는 상이한 고유 회로를 가진다. 이는, 복호기 회로들이 상이한 수준의 복잡도를 가지도록 해주는데, 복호기들이 처리할 수 있는 텍셀 블록 내에서 텍셀 위치들에 대하여 복호기들이 상이한 용량을 가지기 때문이다.
복호 시스템은 또한 N개의 복호기들에 연결되고 또한 선택적으로 N개의 텍셀 값들을 출력하도록 구성되는 값 선택기(value selector)를 포함한다. 이들 N개의 텍셀 값들은 N개의 복호기들 중에서 하나 이상으로부터 더 출력된다. 어느 복호기(들)로부터 출력해야할 특정 텍셀 값들은, N개의 텍셀들 중 적어도 하나를 포함하는 텍셀 블록에 관해, N개의 텍셀 값들을 가지는 N개 텍셀들의 패치(patch)의 위치에 의존한다. 즉, 텍스쳐의 텍셀 블록 경계들에 대한 N개 텍셀들의 위치는, 값 선택기에 의해 선택되어, 화소 계산기로 전달되는 복호기 출력들에 영향을 준다. 화소 계산기는 값 선택기에 의해 선택적으로 출력되는 N개 화소 값들을 기반으로 복호된 화소 값을 계산하도록 구성된다.
값 선택기에 의한 조심스러운 선택은, N개 복호기들 중 적어도 다소가 다른 복호기보다 덜 복잡한 회로를 가질 수 있도록, 복호기들의 설계를 가능하게 한다. 이는, 복호기들 중 몇 몇만이 텍셀 블록 내 소정의 텍셀 위치들에 대한 텍셀 값들을 복호하고 또한 출력하도록 제한함으로써 가능해진다. 따라서, N개 복호기들은 동일한 회로를 가질 필요가 없고, 반대로 회로에 대한 하드웨어 구조에 관해 상이한 수준의 복잡도를 가지는 상이한 회로를 가진다.
한 실시예는 적어도 하나의 부호화된 텍셀 블록을 복호함으로써 화소를 생성하는 방법을 규정한다. 방법은, 각각이, 다른 N-1 개 복호기들의 회로와 상이하고 또한 고유한 회로를 가지는 N개 상이한 복호기들 중 적어도 하나로부터 N개 텍셀 값들을 선택적으로 출력하는 것을 포함한다. 각각의 복호기는, 입력 암호화된 텍셀 블록을 기반으로 적어도 하나의 텍셀 값을 더 출력한다. 복호를 위해 화소의 화소값의 계산을 위해 N개 복호기들로부터 텍셀 값들 중 어느 것을 사용하느냐의 선택은, 텍셀 블록의 경계에 관해 N개 텍셀 값들과 관련된 N개 텍셀들의 위치를 기반으로 수행된다. 선택된 N개 텍셀 값들은 화소값을 계산하는데 사용된다.
본 발명의 실시예들은, 병렬 복호기들 중 적어도 몇몇에 필요한 복잡도를 줄임으로써 화소 복호 구조의 효율적인 구현이 가능하게 한다. 이에 의해, 복호 구조의 전체 복잡도는 N개의 동일한 병렬 복호기를 가지는 선행기술과 비교하면 줄어든다.
도 1a 내지 1d는 이중선형(bilinear) 패치 관련 텍셀 경계들의 상이한 위치들을 설명하는 도면.
도 2는 한 실시예에 따른 복호 시스템을 포함하는 복호장치의 개략적인 개요도.
도 3은 한 실시예에 따른 복호 시스템의 설명도.
도 4는 한 실시예에 따른 암호화된 텍셀 블록을 설명하는 도면.
도 5는 한 텍셀 블럭에서 텍셀 속성값들의 평면 근사화를 채용하는 개념을 설명하는 도면.
도 6은 도 3에서 제4복호기의 하드웨어 구현예를 보여주는 도면.
도 7은 도 3에서 제3복호기의 하드웨어 구현예를 보여주는 도면.
도 8은 도 3에서 제2복호기의 하드웨어 구현예를 보여주는 도면.
도 9는 도 3에서 제1복호기의 하드웨어 구현예를 보여주는 도면.
도 10은 7-8 비트 확장기의 하드웨어 구현예를 보여주는 도면.
도 11은 클램퍼의 하드웨어 구현을 보여주는 도면.
도 12는 클램퍼의 다른 하드웨어 구현을 보여주는 도면.
도 13은 도 3의 값 선택기의 하드웨어 구현예를 보여주는 도면.
도 14는 한 실시예에 따른 복호방법을 설명하는 흐름도.
첨부도면과 함께 다음의 상세한 설명을 참조함으로써, 본 발명의 추가 목적과 장점들과 함께 본 발명을 가장 잘 이해할 수 있을 것이다.
도면 전체를 통해, 비슷하거나 대응하는 요소들에는 동일 참조부호들을 사용한다.
실시예들은 복호된 화소값들을 생성할 목적으로 부호화된 또는 압축된 텍스쳐 요소(텍셀:texel) 블록들의 복호 또는 압축해제에 관련된다.
복호화는, 제한하고자 하는 것은 아니지만, 게임과 같은 3차원(3D) 그래픽과, 지도와 장면과, 예컨대, 만화 메시지(animated message)와 같은 3D 메시지, 화면보호기, 인간-기계인터페이스(MMI)에 사용하기에 매우 적합하다. 그러므로, 실시예들은 일차원(1D), 2차원(2D) 또는 3D 이미지과 같은 다른 유형의 이미지들 또는 그래픽들을 복호하는데 사용할 수 있다.
3D 그래픽 렌더링(rendering) 프로세서는 전형적으로 세 개의 부-단계(하위단계)를 포함한다. 간략하게 설명하면, 제1단계는, 응용단계, 여러 삼각형들을 생성하는 단계를 포함한다. 이들 삼각형들의 모서리들은 제2단계, 즉 기하단계(geometry stage)에서 변환되고(transformed), 투영되고(projected) 그리고 라이팅(lit)된다. 제3단계, 즉 래스터화 단계(rasterization stage)에서, 종종 텍스쳐(texture)라고 부르는 이미지들이 상기 삼각형들 상에 "부착(glued)"될 수 있어서, 렌더링된 영상의 사실성을 증가시킨다. 상기 제3단계는 또한 z-버퍼를 사용하여 소팅(sorting)을 수행한다.
그러나, 텍스쳐, 특히 3D 이미지와 그래픽들의 렌더링은, 그래픽 시스템들에 필요한 메모리 대역폭과 프로세싱 전력의 면에서 많은 자원이 필요한 임무이다. 에컨대, 텍스쳐들은 메모리의 면에서 많은 비용이 드는데, 텍스쳐들은 반드시 고속 온-칩 메모리(fast on-chip memory)에 위치하여만 하기 때문이고, 또한 메모리 대역폭의 면에서도 많은 비용이 드는데, 텍스쳐들은 단일 화소를 작성(draw)하기 위해 반드시 여러 차례 액세스될 수 있기 때문이다. 또한 한 화소를 작성하기 위해 다중 텍스쳐들은 때때로 필요할 수 있다.
대역폭과 프로세싱 전력요구를 줄이기 위하여, 텍스쳐 부호화 방법 또는 시스템이 전형적으로 채용된다. 이러한 부호화 시스템은 렌더링 동안에 값비싼 온-칩 메모리의 효율적인 사용과 낮은 메모리 대역폭이 되게 하여, 저전력 소비 및/또는 고속 렌더링이 되게 한다. 이러한 대역폭과 프로세싱 전력요구의 감소는 특히, 작은 양의 메모리와, 아주 적은 대역폭과 제한된 전력, 즉 배터리에 의해 공급되는 제한된 전력을 가지는, 이동유닛과 전화기와 같은 신 클라이언트(thin clients)에 대해 중요하다.
기술분야에서, 텍스쳐들은 소위 텍셀 블록들로 분할되는데, 블록들 각각은 다수의 텍셀들을 포함한다. 이러한 텍셀 블록은 전형적으로, MR X MC 의 크기와 같은 직사각형 또는 정사각형인데, 여기에서 MR, MC 들은, MR와 MC 둘 다가 동시에 1이 아니라는 단서를 가지는 양의 정수들이다. 바람직하게 MR=2mR 및 MC=2mC 이고, 여기서 mR 과 mC 는 양의 정수이다. 전형적인 구현 MR=MC 와 바람직한 이러한 블록 실시예들은 4 x 4 텍셀들일 수 있다.
기술분야에서, 텍스쳐의 텍스쳐 요소를 나타내기 위해 화소 또는 이미지요소들이 때때로 채용된다. 다음의 상세한 설명에서, 텍스쳐의 텍스쳐 요소를 나타내기 위해 텍셀이 사용된다고 하더라도, 래스터화와 관련해 이러한 텍셀들을 생성하는 영상 요소를 나타내기 위해 화소가 사용된다.
텍셀은 텍셀값과 관련되고 또한 화소는 화소값과 관련된다. 텍셀과 화소값들은 색상값들일 수 있다. 색상값(color value)은 적, 녹, 청(RGB) 색상 또는 휘도 및 색차와 같은 다양한 색상 포맷들로 표시될 수 있다. 게다가, 텍셀값은 정상(normal) 또는 Z값과 같은, 텍셀의 다른 특성들을 나타낼 수 있다. 다음의 상세한 설명에서, 텍셀값은 색상값으로 비제한적으로 예시된다.
전형적인 래스터라이저(rasterizer)는 한 번에 텍스쳐를 단일 텍셀로 액세스하지 않는다. 대신에, 예컨대, 2 x 2 텍셀과 같은, 텍셀들로 구성된 작은 집단이 채용된다. 예컨대, 이중선형 필터링 동안에, 이러한 네 개의 이웃하는 텍셀들이 판독되어 이중선형적으로 필터링된 값, 즉 화소값을 생산한다. 기술분야에서, 화소값을 생성하기 위해 함께 처리되는(co-processed) 이웃하는 텍셀들의 그룹은 전형적으로 패치(patch)로 표시된다. 그러므로, 이중선형 필터링에 채용되는 2 x 2 텍셀 그룹은 이중선형 패치로 표시된다. 이 개념은, 예컨대 삼중선형(trilinear) 필터링으로 더 확장할 수 있다. 삼중선형 필터링은 두 개의 상이한 밉맵(mipmap)들로부터 두 개의 이중선형 패치들을 사용한다.
텍셀들의 패치들을 처리하는데 있어서 한 가지 문제점은, 패치 내 텍셀들이 한 텍셀 블록보다 더 걸쳐 이어진다는(span) 것이다. 이를 도 1a 내지 도 1d에 도식적으로 설명하고 있다. 도 1a는 네 개의 텍셀(30 - 36)들로 된 이중선형 패치(20)가 단일 텍셀블록(10)에서 발견되는 경우를 설명한다. 도 1b와 1c는 이중선형 패치(20)가, 나란히(도 1b) 또는 서로 위에(도 1c)에 존재하는 두 개의 화소 블록들(10, 12, 14)에 걸쳐 이어지는 다른 상황을 나타내는 것이다. 도 1d에서는, 각각의 텍셀블록(10 - 16)들 내에 이중선형 패치(20)의 한 텍셀(30 - 36)들을 가지는 극한 경우를 도시하고 있다.
이러한 문제점을 해결하기 위한 전통적인 방식은, 네 개의 동일한 복호기들을 사용하는 것인데, 복호기 각각은 이중선형 패치 내 규정된 텍셀을 복호한다. 예컨대, 도 1a의 경우에 있어서, 텍셀블록(10)을 나타내는 부호화된 텍셀블록이 네 개의 복호기들에 입력된다. 제1복호기는 텍셀(1, 2)(30)를 출력하고, 텍셀(2, 2)는 제2복호기로부터 회득하고 그리고 제3 및 제4복호기들은 이중선형 패치의 텍셀(1, 3) 및 (2, 3)(36)을 생성한다. 텍셀블록(10)의 상측 좌측 텍셀에서 좌표시스템이 시작한다고 추정한다. 도 1d에서, 텍셀블럭(10)의 부호화된 텍셀블록이 제1복호기에 입력되어 텍셀(3, 3)(10)을 생성하고, 텍셀블록(12)의 부호화된 텍셀블록이 제2복호기에 의해 처리되어 텍셀(0, 3)(32)을 얻는다. 텍셀(3, 0)(34)은 텍셀블록(14에 대해 부호화된 텍셀블록을 기반으로 제3복호기로부터 얻고 그리고 제4복호기는 텍셀블록(16)의 부호화된 텍셀블록으로부터 텍셀(0, 0)(36)를 출력한다.
따라서, 이 방식에서 어떠한 유형의 구성(도 1a 내지 1d)이 나타난다 하더라도 매 클럭 싸이클마다 2 x 2 이중선형 패치를 생성할 수 있다. 고성능 래스터화 하드웨어는 매 클럭 싸이클 마다 이러한 두 개의 이중선형 패치들을 생성하여 삼중선형 필터링이 가능하게 한다. 그러나, 이 경우에 여덟 개의 동일 복호기들이 선행기술에 따라 필요하다.
그러나, 병렬 복호기들에서 테셀들을 합동으로 처리하는 개념은 복호 시스템의 복잡도를 극적으로 증가시키는데, 이는 신 클라이언트들에게는 문제점이다. 예컨대, ECT-복호 시스템에 앞서 언급한 PLANAR-모드를 부가하는 것은, 복호기 당 6개 가산기(adder) 내지 21개 가산기들[3]과 같이 가산기들의 숫자로 규정되는 복잡도를 증가시키게 된다. 그러므로, PLANAR 는 ETC보다 3.5 개 이상의 가산기들을 사용하고 또한 네 개의 ETC 복호기들과 네 개의 PLANAR 복호기들을 가지는 복호 시스템의 복잡도가 3.5 정도로 증가할 수 있다.
여기에서 기술한 실시예들은 동일한 병렬 복호기들을 사용하지 않고서 복호 시스템의 복잡도를 줄인다. 반대로, 만일 상이한 숫자의 텍셀들과 패치 내 상이한 텍셀 위치들을 처리하도록 복호기들이 디자인된다면 상이한 복호기 회로를 사용할 수 있다.
일반적인 실시예에서, 복호 시스템은 N개의 상이한 복호기들을 포함한다. 이러한 복호 시스템(1)이 도 3에 도시되어 있고, N은 4로서 예시된다. 일반적인 실시예에서, N은 2와 동일하거나 또는 이보다 큰 정수이고, 바람직하게는 4이다. 각 복호기(100, 200, 300, 400)는 자신을 제외한 다른 N-1개 복호기들의 회로와는 상이한 회로를 가진다. 그러므로, 복호 시스템(1)은 선행기술에서와 같이 동일한 복호기들을 포함하지 않고, 반대로 상기한 복호기(100, 200, 300, 400)들은 상이한 고유 회로들을 가진다. N개 복호기(100, 200, 300, 400)들의 회로에서 차이점은, 복호기들 중 하나의 회로 요소들의 조합이 다른 복호기들의 회로 요소들의 조합과 상이하다는 것을 의미한다. 따라서, 복호기(100, 200, 300, 400)들은 상이한 구현 비용과 복잡도를 가진다.
복호기(100, 200, 300, 400) 각각은 적어도 하나의 텍셀값을 생성하도록 부호화된 텍셀블록을 복호하도록 더 구성된다. 복호 시스템(1)은 또한 N개 복호기(100, 200, 300, 400)들에 연결되고 또한 적어도 N개 텍셀값들, 바람직하게는 N개 텍셀값을 선택적으로 출력하도록 구성되는 값 선택기(value selector)(500)를 포함한다. 이들 적어도 N개 텍셀값들은 복호기(100, 200, 300, 400)들 중 적어도 하나로부터 출력된다. 부수적으로, 값 선택기(50)는 적어도 N개 텍셀값들을 선택하고 또한, N개 텍셀들 중 적어도 하나를 포함하는 텍셀블록의 경계에 관련해 적어도 N개 텍셀값들과 관련된 적어도 N개 텍셀들의 위치들을 기반으로 텍셀값들이 출력되어야만 하는 복호기(들)를 선택한다. 그러므로, 텍셀블록에 관해, 그 텍셀값이 복호 시스템(1)에 의해 생성되어야만 하는 N개 텍셀들의 위치들은, N개 복호기(100, 200, 300, 400)들 중 어느 복호기로부터 또는 어느 복호기들로부터 텍셀값들이 페치(fetch)되어야 하는지를 결정한다. 복호 시스템(1)의 화소 계산기(600)는 값 선택기(500)에 연결되고 또한 값 선택기(500)에 의해 선택적으로 출력디는 적어도 N개 텍셀값들 기반으로 복호된 화소의 복호된 화소값을 계산하도록 구성된다.
상기 일반적인 실시예는 텍셀블록 내에서 소정의 텍셀 위치들에서 텍셀들을 처리할 수만 있는 복호기들 중의 제한된 몇몇에 의해 복호기(100, 200, 300, 400)의 복잡도를 줄일 수 있다. 따라서, 복호기(100, 200, 300, 400)의 회로는, 이러한 복호기들의 감소가 없는 선행기술의 경우와 비교하면 상당히 줄어들 수 있다.
바람직한 실시예에서, N개 복호기(100, 200, 300, 400)들 중 제1복호기(100)는 N개 텍셀값들을 생성하기 위해 입력 부호화된 텍셀블록을 복호하도록 구성된다. 그러면, 값 선택기(500)는, 제1복호기(100)로부터 이들 N개 텍셀값들을 선택적으로 출력하고 또한 만일 N개 텍셀들이 텍셀블록의 경계들 내측에 위치한다면 화소 계산기(500)로 선택적으로 출력하도록 구성된다. 도 1a는, N=4의 경우를 도시하고 있다. 그러므로, 만일 이중선형 패치(20)의 네 개의 텍셀(30 내지 36)들 모두가 단일 텍셀블록(10) 내측에 위치한다면, 제1복호기(100)에 의해 네 개의 텍셀값들이 모두 생성된다. 이는, 다른 복호기(200, 300, 400)들로부터의 소정의 출력은 값 선택기(500)에 의해 선택되지 않거나 또는 복호된 화소값을 계산하기 위해 화소 계산기(600)에 의해 사용되지 않는다는 것을 의미한다.
만일 N개 텍셀들 중 반(30, 34(30, 32))이 텍셀블록(10)의 경계들 내측에 위치하고 또한 나머지 반(32, 36(34, 36))들이 이웃하는 화소블록(12(14))의 경계들 내측에 위치한다면(도 1b(도 1c) 참조), 값 선택기(500)는 바람직하게, 제1복호기(100)로부터 N개 텍셀값들 중 반을 선택적으로 출력하고 또한 제2복호기(200)로부터 N개 텍셀값들 중 나머지 반을 선택적으로 출력하도록 구성된다.
N=4인 바람직한 실시예에서, 제1복호기(100)는 네 개의 텍셀값들을 생성하기 위해 입력 부호화된 텍셀블록을 복호하도록 구성되는 제1회로를 가진다. 제2복호기(200)는 제2회로를 가지고 또한 입력 부호화된 텍셀블록을 기반으로 두 개의 텍셀값들을 출력한다. 제3(300) 및 제4복호기(400)기들은 제3 및 제4회로를 각각 포함한다. 제3(300) 및 제4복호기(400)들은 입력 부호화된 텍셀블록에 주어진 단일 텍셀값들 각각 출력한다.
도 1d에서 도시된 상황에서, 바람직하게 네 개의 모든 복호기(100, 200, 300, 400)들은 값 선택기(500)에 의해 선택되는 텍셀값들을 출력한다. 그러므로, 값 선택기(500)는 제1복호기(100)로부터는 제1텍셀값을, 제2복호기(200)로부터는 제2텍셀값을, 제3복호기(300)로부터는 제3텍셀값을 그리고 마지막으로 제4복호기(400)로부터는 제4텍셀값을 선택적으로 출력하도록 구성된다. 이 경우에, 네 개의 텍셀들(30 내지 36) 각각은 각 텍셀블록(10 내지 16) 내에 위치한다.
도 2는 한 실시예에 따른 복호 시스템(10)을 가지는 실현 구조를 개략적으로 도시하고 있다. 구조는 부호화된 텍셀블록(40)을 포함하는 메모리 위치들을 가지는 메모리(5), 바람직하게 RAM을 포함한다. 그래픽 처리장치(GPU)(4)가 메모리 버스를 통해 메모리(5)에 연결된다. GPU(4)는 텍셀블록을 식별하기 위한 텍셀블록 식별기(2)를 포함하고, 텍셀블록의 부호화된 블록(40)은 메모리(5)로부터 페치되어야 한다. 텍셀블록 식별기(2)는 기본적으로 메모리(5) 내 부호화된 텍셀블록(40)의 어드레스를 계산하고 그리고 버스를 통해 메모리(5)로 메모리 액세스요청을 전송한다. 텍셀블록에 할당된 또는 지정된 메모리위치 내에 존재하는 부호화된 텍셀블록(40)은 메모리(5)로부터 판독되고 또한 버스를 통해 복호 시스템(1) 또는 GPU(4)의 캐시(3)로 전송된다.
복호 시스템(1)은 부호화된 텍셀블록들 또는 복호된 텍셀값들을 저장하기 위한 캐시 위치들 또는 영역들을 가지는 적어도 하나의 캐시(3)를 포함하거나 또는 캐시에 연결된다. 다른 실시예에서, GPU(4)는 텍스쳐 캐시 및 색상 버퍼 캐시와 같은 다수의 캐시(3)들을 포함할 수 있다. GPU(4)는 전형적으로 디스플레이 스크린(6)에 연결되는데, 스크린 상에서 복호된 영상이 디스플레이된다.
GPU(4)와 이의 내장 유닛(1, 2, 3)들은 예컨대 그래픽카드, 비디오카드 또는 마더보드의 하나 이상의 칩들에 제공될 수 있다. 도 2의 구현 구조는 예컨대, 컴퓨터, 게임콘솔, 이동전화와 같은 휴대용 장치 또는 미디어 처리장치를 포함하느 소정의 이미지 또는 텍스쳐 처리유닛 또는 장치에 구현될 수 있다.
다음에, 상이한 구현 예들과 관련해 복호 시스템의 실시예들을 상세히 기술하게 된다. 이들 예들은 [3, 4]에 기술된 PLANAR에 따라 부호화된 텍셀블록들을 처리하기에 적합하도록 더 디자인된다. 간략하게, PLANAR는 색차(chrominance)들을 부드럽게 변경하면서 텍셀블록들을 처리하도록 디자인된다. PLANAR는 평면 근사(planar approximation)로 텍셀블록 내 색상 요소(적, 녹, 청)들을 근사한다. 평면을 명시하기 위해, 텍셀블록내 세 위치들에서 색상들을 명시하는 것이 충분하다. 도 5는, 텍셀블록(10)에 관해 소정의 위치들에서 세 개의 적색 요소(RO, RH 및 RV)들로 이 개념을 도시한다. 상기 세 개의 적색 요소들의 이 위치 지정으로, 다음의 식을 사용하여 텍셀블록(10) 내 어디에도 적색 요소를 계산할 수 있다:
Figure 112012046936195-pct00001
청색 및 녹색 요소들도 적색 요소들과 동일한 방식으로 계산한다. 따라서, 도 4에 도시된 것과 같은 부호화된 텍셀블록(40)은 색상 요소당 세 개의 색상 코드워드(41 내지 49), 즉 X0, XH 및 XV 를 포함하는데, X는 적색 요소에 대한 R, 녹색 요소에 대한 G 및 청색 요소에 대한 B 이다. 바람직한 구현에서, 적색 코드워드(41 내지 43)와 청색 코드워드(47 내지 49)들 각각에는 6비트들이 사용되는 것이 바람직하고 또한 녹색 코드워드(44 내지 46)들에 각각에는 7비트들이 사용되는 것이 바람직한데, 이는 적색과 청색 요소들과 비교하면 인간의 눈은 녹색 요소에 더 민감하기 때문이다. 부호화된 텍셀블록의 전체 크기는 57비트인데, 이는 ETC2의 57-비트 모드[3]에 정확하게 맞는다. 만일 PLANAR가 단독으로 사용되거나 또는 ETC에 대해 특별한 모드로 사용되지 않는다면, 부호화된 텍셀블록(40)은, 8비트인 GO 와 같은 색상 코드워드(41 내지 47)을 제외한 모두에 대해 7비트를 소비한다. 그러면, 전체 크기는 64비트가 된다.
PLANAR 구현에서, 도 3의 제1복호기(100)는 텍셀블록 내측에 네 개의 텍셀들 모두를 가지는 소정의 2 x 2 이중선형 패치(도 1a 참조)를 복호할 수 있다. 제1복호기(200)는 덜 진행되고 그리고 텍셀블록의 제1열(row) 또는 제1열(column) 내 텍셀들에 대한 텍셀값들을 생성한다(도 1b의 텍셀(32, 36) 및 도 1c의 텍셀(34, 236) 참조). 따라서, 제2복호기(200)는 한 번에 두 개의 텍셀값들을 출력하는데, 2 x 1패치 또는 1 x 2패치를 출력한다. 제3복호기(300)는 부호화된 텍셀블록을 복호하여 단일의 텍셀값, 바람직하게 좌표에서 상부 우측의 것(3, 0)을 생성한다(도 1d에서 텍셀(34) 참조). 제4복호기(400)는 또한 근원(orgin) 텍셀(0, 0)의 단일 텍셀값을 출력한다(도 1d에서 텍셀(36) 참조).
이는, 만일 이중선형 패치(20)의 모든 텍셀(30 내지 36)들이 도 1a에 도시한 바와 같이 텍셀블록(10)의 경계 내측에 있다면, 제1복호기(100)로부터의 출력은 값 선택기(500)에 의해 선택된다는 것을 의미한다, 만일 도 1b와 1c에 도시한 바와 같이, 두 개의 텍셀(30, 34(30, 32))들이 하나의 텍셀블록(10) 내에 있고 또한 두 개의 텍셀(32, 36(34, 36))들이 이웃하는 텍셀블록(12(14)) 내에 있다면, 좌측(30, 34) 또는 상측(30, 32) 두 텍셀들의 텍셀값들은 제1복호기(100)로부터 구하고 또한 두 개의 우측(32, 36) 또는 하측(34, 36) 텍셀들로부터 텍셀값들은 제2복호기(200)로부터 나온다. 마지막으로, 도 1d에 도시한 바와 같이, 만일 모든 네 개의 텍셀(30 내지 36)들이 상이한 텍셀블록(10 내지 16)들 내에 있다면, 값 선택기(500)는 제1복호기(100)로부터 상부 좌측 텍셀(30)에 대한 텍셀값을 선택하고, 제2복호기(20)로부터 상부 우측 텍셀(32)에 대한 텍셀값을 선택하고, 제3복호기(300)로부터 하부 우측 텍셀(34)에 대한 텍셀값을 선택하고 그리고 제4복호기(400)로부터 하부 좌측 텍셀(36)에 대한 텍셀값을 선택한다. 이러한 방식에서, 이중선형 패치(20)의 모든 네 개의 텍셀(30 내지 36)들을 단일 클록주기로 얻을 수 있는데, 제2 내지 제4복호기(200, 300, 400)들은 하드웨어를 거의 사용하지 않고 구현될 수 있다는 장점이 있다.
다음의 식,
Figure 112012046936195-pct00002
으로부터, 원점(0, 0) 내 텍셀은 특히 다음과 같이 매우 간단하게 계산할 수 있다,
Figure 112012046936195-pct00003
. 상기에서 논의 하였듯이, 제4복호기는 바람직하게 근원에서의 텍셀들만을 복호하도록 구성된다. 이는, 제4복호기의 회로는 극히 단순하게 만들 수 있다는 것을 의미한다. 도 6은 색상 요소들 중 하나에 대한 제4복호기(400)의 회로를 도시하고 있다. 도면으로부터 알 수 있듯이, 유일한 구조는 선택적이지만, 바람직하게는 입력 제1색상 코드워드(X0)를 규정된 비트길이, 바람직하게 8비트로 확장시키도록 구성되는 확장기(extender)(48)이다. 도 10과 관련해 아래에서 더 기술하는 바와 같이, 이러한 확장기(48)는 소정의 하드웨어 구조들을 사용하는 일이 없이, 각 색상 요소들이 저장되는 곳에서부터 제4복호기(400)의 출력까지의 배선(wire)들만으로 구현될 수 있다.
따라서, 제4복호기(400)는 어떠한 게이트(gate)들 없이 구현할 수 있다.
상기의 논의에 따라, 제3복호기(300)는 위치(3, 0)에서의 텍셀들을 처리하여야 한다:
Figure 112012046936195-pct00004
. 마지막 항은 기여하지 않아 생략할 수 있다. 라운드 () 연산자를 제거하기 위하여, 결과는 (1/4)의 유닛들 내에서 계산되고, 2를 더하고 그리고 우측 두 항들을 이동시켜 ≫2로 표시한다:
Figure 112012046936195-pct00005
.
3으로 승산(multiplication)은 이동된 버전 자체에 수를 더함으로써 교환할 수 있다:
Figure 112012046936195-pct00006
. 따라서, 식은 다음과 같이 쓸 수 있다:
Figure 112012046936195-pct00007
.
각 가산기(adder)에서, 0 대신에 캐리 입력(carry in)=1로 설정함으로써 1을 부가할 가능성이 있다. 그러므로, 2의 부가(addition)는 이 방식에서 두 개의 가산기들을 변경시킴으로써 대체될 수 있다. 아래 식에서, +!는 1로 설정하기 위해 캐리 입력을 가지는 가산기를 나타내는데 사용된다:
Figure 112012046936195-pct00008
. 다르게 나타내면 다음과 같다:
Figure 112012046936195-pct00009
. 상기와 비슷하게, 식은 다음과 같이 적을 수 있다:
Figure 112012046936195-pct00010
. 이 식은 상기에서 나타낸 것과 비교하면 하드웨어에서 보다 쉽게 구현된다.
이동 연산자(shift operator)들은 배선들을 상이하게 연결함으로써 구현될 수 있다. X(3,0)을 계산하기 위해 필요한 유일한 잔여 연산은 3의 부가이다.
도 7은 제3복호기(300)의 회로의 실시예를 도시하고 있다. 제3복호기(300)는 좌측-이동된 비트열(left-shifted bit sequence)를 얻기 위하여 제2색상 코드워드(XH)를 좌측으로 1비트위치 이동시키기 위한 좌측 이동 연산자(310)를 포함한다. 좌측 이동 연산자(310)는 1에 설정된 캐리 입력을 가지는 제1가산기(320)에 연결된다. 이 제1가산기(320)는 좌측-이동된 비트열을 제2색상 코드워드(XH)에 더한다. 최종 출력은 1에 설정된 캐리 입력을 가지고 또한 제1가산기(320)에 연결되는 제2가산기(322)에서 제1색상 코드워드(XO)에 가산된다. 마지막으로, 제2가산기(322)는, 제2가산기(322)의 출력에 대응하는 비트열을 우측으로 2비트 이동시켜 제3복호기(300)의 최종 출력, 즉 텍셀값 X(3,0)을 형성하도록 구성되는 우측 이동 연산자(330)에 연결된다.
선택적이지만 바람직한 실시예에서, 제1색상 코드워드(XO)와 제2색상 코드워드(XH)들은 바람직하게 6 또는 7비트에서 8비트로 먼저 확장되거나 또는 확장된다. 따라서, 제1확장기(380)는 바람직하게 제2가산기(322)에 연결되도록 배열되고 또한 제1색상 코드워드(XO)를 선-규정된 비트크기, 바람직하게 8비트로 확장시키도록 구성된다. 제2확장기(322)는 바람직하게 좌측 이동 연산자(310)에 연결되도록 배열되고 또한 제2색상 코드워드(XH)를 선-규정된 비트크기, 바람직하게 8비트로 신장 또는 확장하도록 구성된다.
확장기는, a/-비트열(k<l) 중 최상위 k비트들을 최하위 k비트들로 복제하여 l+k-비트열을 얻도록 단순히 배선함으로써 쉽게 구현할 수 있다. 도 10은 녹색 요소에 적합한 제1 및 제확장기(380, 382)의 구현을 개략적으로 도시하고 있다. 도면에서 알 수 있듯이, 입력 7-비트열 중 최상위 비트(most significant bits)는 최하위비트위치(least significant bits position)로 복제되어 8-비트열을 얻는다. 적색과 청색 요소들에 대해서, 최상위 2 비트들이 최하위 2 비트 위치들로 복제되어 6-비트열에서 8-비트열로 된다.
부호화된 텍셀블록에 대해 앞서 언급한 비트크기로, 즉 적색 및 청색 요소들에 대해 색상 코드워드당 6비트와 청색 요소에 대한 색상 코드워드당 7비트와 그리고 두 개의 확장기의 사용으로, 제3복호기(300)의 하드웨어 회로는, 만일 각 가산기가 비트당 4.4 게이트들을 사용한다면 전체 250.8 게이트들로 구현될 수 있다.
R/G/B: 1 9-비트 가산기 → 9x4.4=39.6 게이트
1 10-비트 가산기 → 10x4.4=44게이트
전체: 3x83.6=250.8 게이트
제1 및 제2복호기들의 바람직한 실시예에서와 같이 제3복호기(300)에는 클램퍼(clamper)들이 필요치 않고, 이는 여기에서 더 논의한다.
도 8은 제2복호기(200)의 하드웨어 구현의 실시예를 도시하고 있다. 제2복호기(200)는 제2색상 코드워드(XH)와 제3색상 코드워드(XV) 중 하나를 출력하도록 구성되는 제1멀티플렉서(multiplexor)(250)를 포함한다. 색상 코드워드의 선택은, 네 개의 텍셀들 중 반이 텍셀블록의 경계 내측에서 제1행 또는 제1열에 위치하는지에 의존하고, 부호화된 텍셀블록은 제2복호기(200)에 입력된다. 만일 두 개의 텍셀들이 제1열에 위치한다면, 제2색상 코드워드(XH)는 제1멀티플렉서(250)에서부터 출력되고 그렇지 않다면 제3색상 코드워드(XV)가 출력된다. 부정 연산자(negation operator)(240)는 제1색상 코드워드(XO)를 부정하도록 구성된다. 제1가산기(220)는 제1멀티플렉서(250)와 부정 연산자(240)에 연결되고 또한 이들 유닛(240, 250)들로부터의 출력을 가산하여 차이 XH-XO 또는 XV-XO 를 형성한다. 대안 구현에서, 부정 연산자는 NOT 연산자로 대체되고, 제1가산기(220)는 1에 설정된 캐리 입력을 가지는 가산기이다. NOT 연산자와 함께 1에 설정된 캐리 입력을 가지는 가산기의 사용은 일반적으로, 하드웨어 복잡도의 면에서 정규 가산기를 가지는 부정 연산자보다 위에 있는 것이 바람직하다.
좌측 이동 연산자(210)는 제1가산기(220)에 연결되고 또한 가산기 출력에 대응하는 비트열을 좌측으로 1비트 위치 이동시키도록 구성된다.
제2멀티플렉서(252)는 텍셀의 행좌표(row coordinate)와 열좌표(column coordinate) 중 하나를 출력하도록 구성된다. 이 텍셀은 텍셀블록 내에 존재하는 두 개의 텍셀들 중 첫 번째 텍셀이고, 이의 부호화된 텍셀블록은 제2복호기(200)에 입력된다. 만일 두 개의 텍셀들이 제1열에 위치한다면, 열좌표(SX)가 제2멀티플렉서(252)로부터 출력되고, 그렇지 않다면 열좌표(SY)가 출력된다.
제3멀티플렉서(254)는 좌측 이동 연산자(210)와 제1가산기(220)에 연결된다. 제3멀티플렉서(254)는 2x(XH/V-XO)=2d, 즉 좌측 이동 연산자로부터의 출력과 (XH/V-XO)=d, 즉 제1가산기(220)로부터의 출력 사이를 선택한다. 이 선택은 제2멀티플렉서(252)로부터 출력된 열 또는 열좌표 중 최상위 비트의 값을 기반으로 한다.
OR 연산자(360)는 제2멀티플렉서(352)에 연결되고 또한 제2멀티플렉서(352)로부터의 열 또는 행좌표 중에서 최하위비트와 최상위 비트에 OR 연산을 수행하도록 구성된다. OR 연산자(360)와 제3멀티플렉서(254)는 AND 연산자(270)에 더 연결된다. 이 AND 연산자(270)는 OR 연산자(260)로부터 단일 비트로 멀티플렉서 출력 비트에 관한 AND 연산을 수행한다. 여기서 결과는, 만일 OR 출력이 1bin 이면 멀티플렉서 출력이 보존되고 또한 OR 출력이 0bin 이면 AND 연산자(270)로부터의 출력은 0이라는 것이다. 그러므로, AND 연산자(270)로부터 출력은 2d, d 또는 0이다.
제2가산기(222)는 AND 연산자(270)에 연결되고 또한 AND 연산자(270)의 출력과 제1색상 코드워드(Xo)에 뒤이은 최하위 2비트로서 10bin 을 가지는 비트열을 가산하도록 구성된다. 이는 f=4xXO+2에 대응하고, 이는 제1색상 코드워드(XO)의 비트열을 좌측으로 2비트 위치 이동시키고 또한 그렇지 않으면 이동 후 0이 되는, 마지막 2비트로서 2=10bin 을 삽입함으로써 구현될 수 있다. 따라서, 제2가산기(222)로부터의 출력은 2d+f, d+f 또는 f이다.
제3가산기(224)는 제1가산기(220)와 제2가산기(222)에 연결되고 또한 이들 가산기(220, 222)로부터 출력들을 가산하도록 구성된다. 그러므로, 이 제3가산기(224)는 결과 3d+f, 2d+f 또는 d+f를 제공한다. 제1우측 이동 연산자(230)가 제3가산기(224)에 연결되고 또한 제3가산기(224)로부터의 비트열을 우측으로 2비트 위치 이동시켜 이중선형 패치에서 제1행 또는 제1열 내 두 텍셀들 중 하측 또는 우측 텍셀의 텍셀값을 얻도록 구성된다. 제2우측 이동 연산자(232)는 제2가산기(222)에 연결되고 또한 가산기 출력을 2비트 위치 이동시켜 제1행 또는 제1열에서 두 텍셀들 중 상측 또는 좌측 텍셀의 텍셀값을 형성한다.
입력 색상 코드워드(XO, XH, XV)들은 바람직하게 도 7의 제3복호기와 유사하게 6 또는 7비트에서 8비트로 확장된다. 따라서, 선택적이지만 바람직한 확장기(280, 282, 284)들은 바람직하게 입력 단자들에 배열되어, 최하위 2비트로서 10bin 의 가산에 앞서 제1색상 코드워드(XO)를 확장시켜, 이 경우에 10-비트열을 형성하도록 구성되는 제1확장기(280)를 가진다. 제1확장기(280)는 또한 부정 연산자(240)에 연결된다. 제2확장기(282) 및 제3확장기(284)들은 제1멀티플렉서(250)에 연결되고 또한 제2색상 코드워드(XH)와 제3색상 코드워드(XV)를 각각 확장한다.
선택적인 구현에서, 우측 이동 연산자(230, 232)들은 바람직하게 각각의 클램퍼 또는 클램프 연산자(290, 292)에 연결된다. 이들 클램퍼(290, 292)들은 우측 이동 연산자(230, 232)들로부터의 출력을 최소 텍셀값과 최대 텍셀값들 사이에서 고정시키도록 구성된다. 따라서, 클램퍼(290, 292)들은, 제2복호기로부터의 출력 비트열이 허용된 값 간격 내에 있도록 보장한다. 이러한 허용된 값 간격의 예는, 만일 제2복호기(200)로부터의 출력열들이 8비트이어야 한다면 0 내지 255이다.
도 11은 도 8의 제2복호기 또는 도 9의 제1복호기에 채용되는 것과 같은, 클램퍼(190 내지 196, 290, 292)의 하드웨어 구현예를 도시하고 있다. 이 클램퍼 실시예는 [-1024, 1023]의 간격에서 값을 잠재적으로 나타내는 11-비트열을 [0, 255]의 간격에서 값을 나타내는 8-비트열로 고정하도록 디자인된다. 클램퍼(190 내지 196, 290, 292)는, 각각 입력 비트열의 최하위 8 비트들 중 하나를 수신하는 8개의 OR 연산자(701 내지 708)들을 포함한다. OR 연산자(701 내지 708)에 대한 다른 각 입력들은 다른 OR 연산자(700)의 출력에 연결된다. 이 OR 연산자(700)는 입력 비트열 중 최상위 2 비트를 수신한다. 8개의 OR 연산자(701 내지 708)들의 출력들은 각각 AND 연산자(711 내지 718)들 각각에 연결된다. AND 연산자(711 내지 718)들의 다른 입력들은 입력 비트열 중 부호 비트(sign bit)를 수신한다.
클램퍼(190 내지 196, 290, 292)들에 대한 대안 구현 실시예가 도 12에 도시되어 있다. 이 실시예에서, 8개의 OR 연산자들은 8개의 NOR 연산자(721 내지 724)로 대체된다. 따라서, 도 11의 8개의 AND 연산자들 또한 8개의 NOR 연산자(731 내지 738)들로 대체된다. 이외에도, NOT 연산자(740)가 8개의 NOR 연산자(731 내지 738)와 입력 비트열의 부호 비트에 대한 입력 사이에 연결된다.
도 12에 도시된 하드웨어 실시예를 구현하기 위한 희생(cost)은 다음과 같다:
16 NOR → 16x1=16 게이트
1 OR → 1x1.5=1.5 게이트
1 NOT → 1x0.5=0.5 게이트
전체: 16+1.5+0.5=18 게이트
클램퍼를 제외하고, 도 8의 제2복호기(200)의 구현예에 대한 게이트들의 숫자는 다음과 같다:
R/G/B: 1 8-비트 가산기 → 8x4.4=35.2 게이트
1 11-비트 가산기 → 11x4.4=48.4 게이트
1 12-비트 가산기 → 12x4.4=52.8 게이트
1 8-비트 먹스(mux) → 8x2.2=17.6 게이트
1 10-비트 먹스 → 10x2.2=22 게이트
1 2-비트 먹스 → 2x2,2=4.4 게이트
1 1-비트 OR → 1x1.5=1.5 게이트
1 10-비트 AND → 10x1.5=15 게이트
1 8-비트 NOT → 8x0.5=4 게이트
전체: 3x200.9=602.7 게이트
마지막으로, 도 9는 제1복호기(100)의 하드웨어 구현의 예이다. 제1복호기(100)는 제1색상 코드워드(XO)를 부정하도록 구성되는 부정 연산자(140)를 포함한다. 제1가산기(120)는 부정 연산자(140)에 연결되고 또한 부정된 제1색상 코드워드를 제2색상 코드워드(XH)에 가산하여 g=XH-X0 를 얻는다. 제2가산기(120)는 또한 부정 연산자(140)에 연결되고 또한 부정된 제1색상 코드워드를 제3색상 코드워드(XV)에 가산하여 h=XV-XO 를 얻는다. 대안 구현에서, 부정 연산자(140)는 NOT 연산자로 대체된다. 그런 다음 제1가산기(120)와 제2가산기(122) 둘 다는 1에 설정된 캐리 입력을 가진다.
제1좌측 이동 연산자(110)는 제1가산기(120)에 연결되고 또한 가산기 출력을 좌측으로 1비트 위치 이동시켜 2g에 대응하는 좌측-이동된 비트열을 얻는다. 제2좌측 이동 연산자(112)는 제2가산기(122)에 연결되고 또한 가산치 출력을 좌측으로 1비트 위치 이동시켜 2h의 비트열을 얻는다. 제1멀티플렉서(150)는 제1좌측 이동 연산자(110)와 제1가산기(120)에 연결되고 또한 열좌표(SX)의 최상위 비트를 기반으로 g와 2g 사이를 선택하도록 구성된다. 따라서, 제2멀티플렉서(152)는 제2좌측 이동 연산자(112)와 제2가산기(122)에 연결되고 또한 행좌표(SY)의 최상위 비트를 기반으로 h와 2h 사이를 선택한다. 열과 행좌표들은 2x2 이중선형 패치에서 상부 좌측 텍셀, 즉 도 1a 내지 1d에서 텍셀(30)의 좌표이다.
제1 OR 연산자(160)는 열좌표(SX)의 최상위 비트와 최하위비트에 대해 OR 연산을 수행한다. 제2 OR 연산자(162)는 행좌표(SY)의 최상위 비트와 최하위비트에 대해 OR 연산을 수행한다. 제1 OR 연산자(160)와 제1멀티플렉서(150)들은, 제1 OR 연산자(160)로부터의 단일 비트로 멀티플렉서 출력에 대해 비트에 관한 AND 연산을 수행하는 제1 AND 연산자(170)에 연결된다. 따라서, 제1 AND 연산자(170)로부터의 출력은 2g, g 또는 0이다. 제2 AND 연산자(172)는 제2멀티플렉서(152)와 제2 OR 연산자(162)에 연결된다. 제2 AND 연산자(172)는 제2 OR 연산자(162)로부터의 비트로 멀티플렉서 입력에 대해 비트에 관한 AND 연산을 수행하여 2h, h 또는 0의 출력을 얻는다.
제3가산기(124)는 제1 AND 연산자(124)에 연결되고 또한 제1색상 코드워드에 후행하는 최하위 2 비트들로서 10bin 을 가지는 비트열에 가산기 출력을 가산한다. 이는, 앞서 설명하였듯이, f=4XO+2에 대응한다. 따라서, 가산기 출력은 2g+f, g+f 또는 f이다. 제4가산기(126)는 제1가산기(120)와 제3가산기(124)에 연결되고 그리고 이들 가산기(120, 124)들로부터의 출력들을 가산하여 3g+f, 2g+f 또는 g+f를 얻도록 구성된다. 제5가산기(128)는 제2가산기(122)와 제2 ADN 연산자(172)에 연결되고 그리고 이들 두 유닛(122, 172)로부터의 출력들을 가산하여 3h, 2h 또는 h를 얻는다.
제6가산기(121)는 제3가산기(124)와 제2 AND 연산자(172)에 연결되고 그리고 이들 유닛(124, 172)들로부터의 출력들을 가산하도록 구성된다. 제1 우측 이동 연산자(130)는 제6가산기(121)에 연결되고 그리고 가산기 출력의 비트열을 우측으로 2비트 위치 이동시켜 도 1a의 텍셀(30)의 텍셀값을 얻도록 구성된다.
제7가산기(123)는 제4가산기(126)와 제2 AND 연산자(172)에 연결되고 그리고 이들 유닛(126, 172)로부터의 출력들을 가산하도록 구성된다. 제2 우측 이동 연산자(13)는 제7가산기(123)에 연결되고 그리고 가산기 출력의 비트열을 우측으로 2비트 위치 이동시켜 도 1a의 텍셀(32)의 텍셀값을 얻도록 구성된다.
제8가산기(125)는 제3가산기(124)와 제5가산기(128)에 연결되고 그리고 이들 가산기(124, 28)들로부터의 출력들을 가산하도록 구성된다. 제3 우측 이동 연산자(134)는 제8가산기(125)에 연결되고 그리고 가산기 출력을 우측으로 2비트 위치 이동시켜 도 1a의 텍셀(34)의 텍셀값을 구하도록 구성된다.
제9가산기(127)는 제4가산기(126)와 제5가산기(128)에 연결되고 그리고 이들 가산기(126, 128)들로부터의 출력들을 가산하도록 구성된다. 제4 우측 이동 연산자(136)는 제4가산기(127)에 연결되고 그리고 가산기 출력의 비트열을 우측으로 2비트 위치 이동시켜 도 1a의 텍셀(36)의 텍셀값을 얻도록 구성된다.
선택적이지만 바람직한 구현에서, 입력 색상 코드워드(XO, XH, XV)들은 먼저 확장되거나 6 또는 7비트에서 8비트로 확장된다. 따라서, 제1비트 확장기(180)는 바람직하게 부정 연산자(140)에 연결되도록 배열되고 또한 최하위 비트로서 10bin 이 가산되기 전에 제1색상 코드워드(XO)를 선-규정된 비트열, 바람직하게 8비트로 신장 또는 확장하여 10-비트열을 얻도록 구성된다. 따라서, 제2확장기(182)는 제1가산기(120)에 연결되도록 배열되고 또한 제2색상 코드워드(XH)를 확장하도록 구성된다. 마지막으로, 제3확장기(184)는 제2가산기(122)에 연결되고 또한 제3색상 코드워드(XV)를 확장하도록 구성된다.
선택적 구현에서, 우측 이동 연산자(130 내지 136)들 각각은 클램퍼 또는 클램프 연산자(190 내지 196)에 연결된다. 이들 클램퍼(190 내지 196)들은 우측 이동 연산자(130 내지 136)로부터의 출력을 최소 텍셀값과 최대 텍셀값 사이에서 고정시키도록 구성된다. 그러므로, 클램퍼(190 내지 196)들은, 제1복호기(100)로부터의 출력 비트열이 허용된 값 간격 내에 있도록 한다. 이러한 허용된 값 간격의 예는, 만일 제1복호기(100)로부터의 출력열들이 8비트가 되어야만 한다면 0 내지 255이다.
선택적 클램퍼(190 내지 196)를 배제한 도 8의 구현예에 대한 게이트들의 숫자는 다음과 같다:
R/G/B: 2 8-비트 가산기 → 16.x4.4=70.4 게이트
1 10-비트 가산기 → 10x4.4=44 게이트
1 11-비트 가산기 → 11x4.4=게이트
5 12-비트 가산기 → 60x4.4=264 게이트
2 10-비트 먹스 → 20x2.2=44 게이트
2 1-비트 OR → 2x1.5=3 게이트
2 10-비트 AND → 20x1.5=30 게이트
1 8-비트 NOT → 8x0.5=4 게이트
전체: 3x507.8+1523.4 게이트
따라서, 복호시스템의 네 개의 복호기들은 클랩퍼들을 배제하고서 단지 0+250.8+602.7+1523.4=2376.9 게이트만으로 구현될 수 있다.
선행기술 [3]에서 제안한 바와 같이 네 개의 동일한 복호기들을 가지는 통상적인 구현은 도 9의 제1복호기와 매우 닮아 보인다. 단지 차이점은, 도면에서와 KX이 네 개 대신에 단지 하나의 텍셀만이 출력에서 필요할 수 있다는 것이다. 그러므로, 네 개의 가산기(121, 123, 125, 127)들은 가산기에 선행하는 두 개의 4방향(four-way) 멀티플렉서들로 대체할 수 있다. 이는 색상 채널당 6개의 가산기들과, 4개의 멀티플렉서와 그리고 두 개의 AND 연산자들을 필요로 한다. 이는, 네 개의 복호기들과 세 개의 상이한 색상 요소들을 가지는 선행기술에 따른 하드웨어 희생 또는 복잡도는 다음과 같았다:
6x3x4=72가산기
4x3x4=48멀티플렉서
2x3x2=24AND 연산자
이는 다음과 같은 것을 필요로 하는 도 6 내지 8의 구현 실시예들에 필적할 수 있다:
(9+3+2+0)x3=42가산기
(2+3+0+0)x3=15멀티플렉서
(2+1+0+0)x3=9AND 연산자
따라서, 가산기들의 숫자는 72에서 42로, 42% 줄어들었다. 멀티플렉서는 훨씬 더 48개에서 15개로, 69% 감소하였다.
도 13은 값 선택기(500)의 하드웨어 구현의 실시예를 도시하고 있다. 이 실시예에서, 값 선택기(500)는 네 개의 멀티플렉서(51)를 포함하고, 멀티플렉서 각각은 이중선형 패치의 텍셀(30 내지 36)의 텍셀값을 출력한다. 제1멀티플렉서(510)는 제1복호기(100)의 네 개의 출력들에 연결되고 그리고 이중선형 패치에서 제1텍셀(30)의 텍셀값으로서 네 개의 비트열들 중 하나를 선택한다. 제2멀티플렉서(520)는 제1복호기(100)의 제2 및 제4출력과 제2복호기(200)의 두 출력들에 연결된다. 제2멀티플렉서(520)는 이중선형 패치에서 제2텍셀(32)의 텍셀값을 출력한다. 제3멀티플렉서(530)는 제1복호기(100)의 제3 및 제4출력들과, 제2복호기(200)의 제1출력과 그리고 제3복호기(300)의 단일 출력에 연결된다. 제3멀티플렉서(530)는 이중선형 패치에서 제3텍셀(34)의 텍셀값을 출력한다. 마지막으로, 제4멀티플렉서(540)는 제1복호기(100)의 제4출력과, 제2복호기(200)의 제2출력과 그리고 제4복호기(400)의 단일 출력에 연결된다. 제4멀티플렉서(540)는 이중선형 패치에서 제4텍셀(36)의 텍셀값을 출력한다.
텍셀블록 경계에 관한 이중선형 패치의 위채는, 어느 비트열들이 멀티플렉서(510 내지 540)들로부터 출력되는지를 나타낸다. 그러므로, 도 1a에 도시된 상황에서, 제1복호기(100)의 네 출력들로부터의 비트열들은 멀티플렉서(510 내지 540)들에 의해 선택된다. 상세히 설명하면, 제1멀티플렉서(510)는 제1복호기(100)의 제1출력으로부터 비트열을 출력하고, 제2멀티플렉서(520)는 제2출력으로부터 비트열을 출력하고, 제3(530) 및 제4멀티플렉서(540)는 각각 제3 및 제4복호기 출력들로부터 비트열을 출력한다. 도 1b에 도시된 바와 같이 위치한 이중선형 패치는, 제1멀티플렉서(510)가 제1복호기(100)의 제2출력의 비트열을 선택한다는 것을 의미한다. 제2멀티플렉서(520)는 제2복호기(200)의 제1출력의 비트열을 선택한다. 제3복호기(300)는 제1복호기(100)로부터 제4출력의 비트열을 선택하고 또한 제4복호기(400)는 제2복혹기(200)의 제2출력으로부터 비트열을 선택한다. 이 개념은 도 1c와 1d에 도시된 바와 같은 다른 두 패치 위치들에도 비슷한 방식으로 적용될 수 있다.
도 13에 도시된 것과 같은 값 선택기(500)의 실시예를 구현하기 위한 게이트들의 숫자의 면에서 희생은 다음과 같다:
3 8-비트 4-방향 먹스 → 24x6.6=158.4 게이트
1 8-비트 3-방향 먹스 → 8x4.4=35.2 게이트
전체:158.4+35.2=193.6 게이트
클램퍼를 포함한, 복호기들과 값 선택기에 대한 전체 희생은 2376.9+6x18+193.6=2678.5 게이트
만일 도 8 및 9에 도시된 것과 같이 제1 및 제2복호기들의 클램퍼들이 생략되고 또한 대신에 각각이 값 선택기(500)의 멀티플렉서(510 내지 540)들 중 하나에 연결되는 네 개의 클램퍼들로 대체된다면, 값 선택기(500)를 구현하기 위한 희생이 증가하는데, 이는 193.6 게이트 대신에 266.2 게이트의 희생에, 세 개의 11-1lxm 4-방향 멀티플렉서들과 하나의 11-비트 3-방향 멀티플렉서를 필요로 할 수 있기 때문이다.
복호 시스템의 화소 계산기는 기술분야에서 잘 공지된 기술에 따라 하드웨어에서 구현될 수 있다. 상세히 설명하면, 이중선형 필터링의 경우에, 값 선택기로부터의 네 개의 텍셀값들이 A, B, C 및 D로 표시된다고 가정한다. 그러면, 화소 계산기는 화소값을 다음과 같이 계산한다:
화소값=
Figure 112012046936195-pct00011
여기서, dx는 x-축을 따라 텍셀(A)의 중간 지점과 화소에 대한 샘플 지점 간의 간격이고, dy는 y-축을 따라 텍셀(A)의 중간 지점과 화소에 대한 샘플 지점 간의 대응하는 간격이다.
상기에 기술한 식은 적, 녹 및 청색 요소들에 대해 동시에 수행된다. 하드웨어 구현은 식을 기반으로 규정될 수 있다. 예컨대, 샘플 지점의 위치는 세 개의 이진화 십진수(three binary decimal)로 나타낼 수 있다. 예컨대 dx 위치는 다음의 값 [0.000, 0.125. 0.250. 0.375, 0.500, 0.625, 0,750, 0.875]를 추정할 수 있다. 이 경우에, 위치는 여덟 개로 규정될 수 있어서, 상기 값들은 [0,1,2,3,4,5,6,7]로 나타낼 수 있다. 그러면, 상기 식은 다음과 같이 다시 적을 수 있다:
화소값=
Figure 112012046936195-pct00012
여기서, DX=8 x dx 그리고 DY=8 x dy 그리고 DX, DY는 0과 7 사이의 정수들이다.
두 번째 항 8DX(8-DY)를 조사하면, DX와 (8-DY) 둘 다는 0과 8 사이의 정수라는 것을 이해할 것이다. 8을 나타내기 위하여, 네 개의 비트들이 필요하다. 각 입력에서 네 개의 비트들을 처리하고 또한 8-비트열을 출력하는 승산 연산자를 사용할 수 있다. 그러나, 승산 연산자가 출력할 수 있는 가장 큰 숫자는 7x8=56 이어서, 단지 최하위 6 비트들이 출력에서부터 필요하다.
그런 다음, 승산 연산자로부터의 출력은 텍셀값 B, 바람직하게는 0과 255 사이의 숫자로 승산되어야만 한다. 이 승산은, 두 개의 8-비트 입력들을 취하는 승산 연산자에 의해 처리되어 16-비트 비트열을 출력한다. 그러나, 승산 연산자로부터 단지 최하위 14 비트들만이 필요한데, 이는 가능한 가장 큰 수가 56x266<214 이기 때문이다.
그런 다음, 식에서 다른 항들에 대해 대응하는 구현이 수행되고 또한 각 최종 승산 연산자들로부터의 출력들이 가산되고 그리고 최종 8-비트 화소값을 얻기 위하여 우측으로 6단계 이동된다.
상기에서 기술한 구현 예들은, 복호 시스템들의 유닛들을 하드웨어에서 어떻게 구현할 수 있는지에 대한 바람직하지만 비-제한적인 실시예들이다. 이의 다양한 변형들이 가능하고 또한 본 발명의 범위 내에 들어간다. 중요한 특징은, 복호기들의 회로는 복잡도가 증가함에 따라 다르고 또한 각 복호기는 패치 내 규정된 위치들에서 하나 이상의 텍셀들의 텍셀값(들)을 처리하고 출력하는 것이라 생각된다.
도 14는 적어도 하나의 부호화된 텍셀블록을 복호함으로써 복호된 화소를 생성하는 방법을 흐름도로 도시하고 있다. 방법은 단계(S1)에서 시작하는데, 텍셀블록 경계에 관해 적어도 N개 텍셀값들의 위치, 즉 패치가 결정된다. 부호화된 각 텍셀블록, 즉 결정된 상대 패치 위치에 따라 동일하게 부호화된 텍셀블록 또는 상이하게 부호화된 텍셀블록이 N개 복호기들에 입력되어 복호된 텍셀값들을 얻는다. 다음 단계(S2)는 N개 복호기들 중 적어도 하나로부터 적어도 N개 텍셀값들을 선택적으로 출력한다. 단계(S2)에서 선택하고자 하는 특정 N개 텍셀값들과 이들은 어느 복호기(들)로부터 페치되는지가 단계(S1)에서 얻은 상대 패치 위치를 기반으로 결정된다. 이외에도, N개 복호기들 각각은 N-1개 다른 복호기들의 회로와는 상이한 각 회로를 가진다. 최종단계(S3)는 단계(S2)에서 선택된 적어도 N개 텍셀값들을 기반으로, 바람직하게는 이들 적어도 N개 텍셀값들의 선형 조합으로서 복호된 화소값을 계산한다. 그런 다음, 방법은 종료하거나 또는 복호된 새로운 화소를 생성할 목적으로 새롭게 다시 시작한다.
단계(S2)는 바람직하게, 만일 N개 텍셀들이 텍셀블록의 경계 내측에 위치한다면 N개 복호기들 중 제1복호기로부터 모든 N개 텍셀값들을 선택적으로 출력하는 것을 수반한다. 그러나, 만일 N개 텍셀들 중 반이 한 텍셀블록 내측에 위치하고 또한 텍셀들의 나머지 반이 이웃하는 텍셀블록 내측에서 발견된다면, N개 텍셀값들 중 반은 바람직하게 제1복호기의 출력으로부터 선택되고 또한 나머지 반은 제2복호기의 출력으로부터 선택된다.
바람직한 실시예에서 N=4이다. 만일 각각의 텍셀이 개별적인 텍셀블록 내에서 발견되도록 네 개의 텍셀들이 위치한다면, 단계(S2)는 네 개의 복호기들 각각으로부터 각각 하나의 텍셀값을 선택하는 것을 수반한다.
상기에서 기술한 실시예들은 본 발명의 몇몇 설시적인 예들로서 이해하여야 한다. 본 기술분야의 당업자라면, 다양한 수정과, 조합과 변경안들이 본 발명의 범위를 이탈하는 일이 없이 실시예들에 대해 이루어질 수 있다는 것을 알게 될 것이다. 특히, 상이한 실시예들에서 상이한 부분 해결책들은, 기술적으로 가능한 다른 구성들로 결합될 수 있다. 그러나, 본 발명의 범위는 첨부한 청구항들에 의해 규정된다.
참조문헌
[1] 미국특허 제5,956,431호
[2] Strom 및 Moller, "iPACKMAN:High-Quality, Low-Complexity Texture Compression for Mobile Phones", Graphics Hardware, 2005, ACM Press, pp.63-70
[3] Strom and Pettersson, "ETC2:Texture Compression using Invalid Combinations", Graphics Hardware, 2007, ACM Press, pp.49-54
[4] 국제출원 제WO 2006/126949호

Claims (17)

  1. 적어도 하나의 부호화된 텍셀블록(40)을 기반으로 복호된 화소를 생성하기 위한 복호 시스템(1)에 있어서, 상기 복호 시스템(1)은:
    각각이 자신을 제외한 다른 N-1개 복호기들의 회로들의 복잡도 수준과는 상이한 복잡도 수준을 가지는 회로를 가지고 또한 각각은 적어도 하나의 각 텍셀값을 생성하기 위해 부호화된 텍셀블록(40)을 복호하도록 구성되는, N개의 상이한 복호기(100, 200, 300, 400)들과;
    상기 N개의 복호기(100, 200, 300, 400)들에 연결되고 또한 적어도 N개의 텍셀(30 내지 36)들 중 적어도 하나를 포함하는 텍셀블록(10)의 경계에 관해 상기 적어도 N개의 텍셀값들과 관련되는 상기 적어도 N개의 텍셀(30 내지 36)들의 위치들을 기반으로 상기 N개의 복호기(100, 200, 300, 400)들 중 적어도 하나로부터 적어도 N개의 텍셀값들을 선택적으로 출력하도록 구성되는 값 선택기(500)와; 그리고
    상기 값 선택기(500)에 의해 선택적으로 출력되는 상기 적어도 N개의 텍셀값들을 기반으로 상기 복호된 화소의 복호된 화소값을 계산하도록 구성되는 화소 계산기(600)를 포함하는 것을 특징으로 하는 복호 시스템.
  2. 제1항에 있어서, 상기 값 선택기(500)는, 만일 상기 N개의 텍셀값들과 관련된 N개의 텍셀(30 내지 36)들이 텍셀블록(10)의 상기 경계 내측에 위치한다면 상기 N개의 복호기(100, 200, 300, 400)들 중 제1복호기(100)로부터 N개의 텍셀값들을 선택적으로 출력하도록 구성되는 것을 특징으로 하는 복호 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 값 선택기(500)는, 만일 상기 N개의 텍셀값들과 관련된 N개의 텍셀(30 내지 36)들 중 반이 상기 텍셀블록(10)의 상기 경계 내측에 위치하고 또한 상기 N개의 텍셀(30 내지 36)들 중 반이 이웃하는 텍셀블록(12, 14)의 경계 내측에 위치한다면, 상기 N개의 복호기(100, 200, 300, 400)들 중 제1복호기(100)로부터 N개의 텍셀값들 중 반을 선택적으로 출력하고 또한 상기 N개의 텍셀값들 중 나머지 반은 상기 N개의 복호기(100, 200, 300, 400)들 중 제2복호기(200)로부터 선택적으로 출력하도록 구성되는 것을 특징으로 하는 복호 시스템.
  4. 제1항 또는 제2항에 있어서, 상기 N은 4와 동일하고 또한 만일, 상기 네 개의 텍셀(30 내지 36)들 중 하나가 상기 텍셀블록(10)의 상기 경계 내측에 위치하고 그리고 잔여 세 개의 텍셀들 각각이 이웃하는 텍셀블록(12, 14, 16)들의 경계 내측에 위치한다면,
    상기 값 선택기(500)는 상기 네 개의 복호기(100, 200, 300, 400)들 중 제1복호기(100)로부터 상기 네 개의 텍셀값들 중 제1텍셀값을 선택적으로 출력하고, 상기 네 개의 텍셀값들 중 제2텍셀값을 상기 네 개의 복호기(100, 200, 300, 400)들 중 제2복호기(200)로부터 출력하고, 상기 네 개의 텍셀값들 중 제3텍셀값을 상기 네 개의 복호기(100, 200, 300, 400)들 중 제3복호기(300)로부터 출력하고 그리고 상기 네 개의 텍셀값들 중 제4텍셀값을 상기 네 개의 복호기(100, 200, 300, 400)들 중 제4복호기(400)로부터 출력하는 것을 특징으로 하는 복호 시스템.
  5. 제1항 또는 제2항에 있어서, 상기 N은 4와 동일하고 그리고
    상기 네 개의 복호기(100, 200, 300, 400)들 중 제1복호기(100)는 제1회로를 가지고 또한 네 개의 텍셀값을 생성하기 위해 부호화된 텍셀블록(40)을 복호하도록 구성되고;
    상기 네 개의 복호기(100, 200, 300, 400)들 중 제2복호기(200)는 제2회로를 가지고 또한 두 개의 텍셀값을 생성하기 위해 부호화된 텍셀블록(40)을 복호하도록 구성되고;
    상기 네 개의 복호기(100, 200, 300, 400)들 중 제3복호기는 제3회로를 가지고 또한 하나의 텍셀값을 생성하기 위해 부호화된 텍셀블록(40)을 복호하도록 구성되고; 그리고
    상기 네 개의 복호기(100, 200, 300, 400)들 중 제4복호기(400)는 제4회로를 가지고 또한 하나의 텍셀값을 생성하기 위해 부호화된 텍셀블록(40)을 복호하도록 구성되는 것을 특징으로 하는 복호 시스템.
  6. 제5항에 있어서, 상기 부호화된 텍셀블록(40)은 제1색상 코드워드(41, 44, 47)와, 제2색상 코드워드(42, 45, 48)와 그리고 제3색상 코드워드(43, 46, 49)를 포함하는 것을 특징으로 하는 복호 시스템.
  7. 제6항에 있어서, 상기 제4복호기(400)는 상기 제1색상 코드워드(41, 44, 47)를 출력하기 위한 적어도 하나의 배선을 포함하는 것을 특징으로 하는 복호 시스템.
  8. 삭제
  9. 제6항에 있어서, 상기 제2복호기(200)는:
    네 개의 텍셀(30 내지 36)들 중 절반이 상기 텍셀블록(10)의 상기 경계 내측에서 행 또는 열에 위치하는지를 기반으로 하여 상기 제2색상 코드워드(42, 45, 48)와 상기 제3색상 코드워드(43, 46, 49) 중 하나를 출력하도록 구성되는 제1멀티플렉서(250)와;
    상기 제1색상 코드워드(41, 44, 47)를 부정하도록 구성되는 부정 연산자(240)와;
    상기 제1멀티플렉서(250)와 상기 부정 연산자(240)에 연결되고 또한 상기 제1멀티플렉서(250)의 출력과 상기 부정된 제1색상 코드워드를 가산하도록 구성되는 제1가산기(220)와;
    상기 제1가산기(220)에 연결되고 또한 상기 제1가산기(220)의 출력에 대응하는 비트열을 좌측으로 1비트 위치 이동시켜 좌측-이동된 비트열을 형성하도록 구성되는 좌측 이동 연산자(210)와;
    상기 네 개의 텍셀(30 내지 36) 중 절반이 상기 텍셀블록(10)의 상기 경계 내측에서 행 또는 열로 위치하는지를 기반으로 텍셀(32, 24)의 행 좌표 또는 열 좌표 중 하나를 출력하도록 구성되는 제2멀티플렉서(252)와;
    상기 좌측 이동 연산자(210)와 상기 제1가산기(220)에 연결되고 또한 상기 제2멀티플렉서(252)의 출력 중 최상위 비트를 기반으로 상기 제1가산기(220)의 상기 출력과 상기 좌측-이동된 비트열 중 하나를 출력하도록 구성되는 제3멀티플렉서(254)와;
    상기 제2멀티플렉서(252)에 연결되고 또한 상기 제2멀티플렉서(252)의 상기 출력의 최상위 비트와 상기 제2멀티플렉서의 상기 출력의 최하위 비트를 수신하도록 구성되는 OR 연산자(260)와;
    상기 제3멀티플렉서(254)와 상기 OR 연산자(260)에 연결되고 또한 상기 제3멀티플렉서(254)의 출력과 상기 OR 연산자(260)의 출력을 수신하도록 구성되는 AND 연산자(270)와;
    상기 AND 연산자(270)에 연결되고 또한 상기 AND 연산자(270)의 출력과 그리고 상기 제1색상 코드워드(41, 44, 47)에 후행하는 최하위 2 비트들로서 10bin 을 가지는 비트열을 가산하도록 구성되는 제2가산기(222)와;
    상기 제1가산기(220)와 상기 제2가산기(222)에 연결되고 또한 상기 제1가산기(220)의 상기 출력과 상기 제2가산기(222)의 출력을 가산하도록 구성되는 제3가산기(224)와;
    상기 제3가산기(224)에 연결되고 또한 상기 제3가산기(224)의 출력에 대응하는 비트열을 우측으로 2비트 위치 이동시켜 제1 우측-이동된 열을 형성하도록 구성되는 제1우측 이동 연산자(230)와;
    상기 제2가산기(222)에 연결되고 또한 상기 제2가산기(222)의 상기 출력에 대응하는 비트열을 우측으로 2비트 위치 이동시켜 제2 우측-이동된 열을 형성하도록 구성되는 제2우측 이동 연산자(232)를 포함하는 것을 특징으로 하는 복호 시스템.
  10. 제6항에 있어서, 상기 제2복호기(200)는:
    네 개의 텍셀(30 내지 36)들 중 절반이 상기 텍셀블록(10)의 상기 경계 내측에서 행 또는 열로 위치하는지를 기반으로 상기 제2색상 코드워드(42, 45, 48) 및 상기 제3색상 코드워드(43, 46, 49) 중 하나를 출력하도록 구성되는 제1멀티플렉서(250)와;
    상기 제1색상 코드워드(41, 44, 47)를 부정하도록 구성되는 부정(not) 연산자와;
    1에 설정된 캐리 입력을 가지고서 상기 제1멀티플렉서(250)와 상기 부정 연산자에 연결되고 또한 상기 제1멀티플렉서(250)의 출력과 상기 부정된 제1색상 코드워드를 가산하도록 구성되는 제1가산기(220)와;
    상기 제1가산기(220)에 연결되고 또한 상기 제1가산기(220)의 출력에 대응하는 비트열을 좌측으로 1비트 위치 이동시켜 좌측-이동된 비트열을 형성하도록 구성되는 좌측 이동 연산자(210)와;
    네 개의 텍셀(30 내지 36)들 중 상기 절반이 상기 텍셀블록(10)의 상기 경계 내측에서 행 또는 열로 위치하는지를 기반으로 텍셀(32, 24)의 행 좌표와 열 좌표 중 하나를 출력하도록 구성되는 제2멀티플렉서(252)와;
    상기 좌측 이동 연산자(210)와 상기 제1가산기(220)에 연결되고 또한 상기 제2멀티플렉서(252)의 출력 중 최상위 비트를 기반으로 상기 제1가산기(220)의 상기 출력과 상기 좌측-이동된 비트열 중 하나를 출력하도록 구성되는 제3멀티플렉서(254)와;
    상기 제2멀티플렉서(252)에 연결되고 또한 상기 제2멀티플렉서(252)의 상기 출력 중 최상위 비트와 상기 제2멀티플렉서의 상기 출력중 최하위 비트를 수신하도록 구성되는 OR 연산자(260)와;
    상기 제3멀티플렉서(254)와 상기 OR 연산자(260)에 연결되고 또한 상기 제3멀티플렉서(254)의 출력과 상기 OR 연산자(260)의 출력을 수신하도록 구성되는 AND 연산자(270)와;
    상기 AND 연산자(270)에 연결되고 또한 상기 AND 연산자(270)의 출력과 그리고 상기 제1색상 코드워드(41, 44, 47)에 후행하는 최하위 2 비트들로서 10bin 을 가지는 비트열을 가산하도록 구성되는 제2가산기(222)와;
    상기 제1가산기(220)와 상기 제2가산기(222)에 연결되고 또한 상기 제1가산기(220)의 상기 출력과 상기 제2가산기(222)의 출력을 가산하도록 구성되는 제3가산기(224)와;
    상기 제3가산기(224)에 연결되고 또한 상기 제3가산기(224)의 출력에 대응하는 비트열을 우측으로 2비트 위치 이동시켜 제1 우측-이동된 열을 형성하도록 구성되는 제1우측 이동 연산자(230)와;
    상기 제2가산기(222)에 연결되고 또한 상기 제2가산기(222)의 상기 출력에 대응하는 비트열을 우측으로 2비트 위치 이동시켜 제2 우측-이동된 열을 형성하도록 구성되는 제2우측 이동 연산자(232)를 포함하는 것을 특징으로 하는 복호 시스템.
  11. 삭제
  12. 삭제
  13. 제6항에 있어서, 상기 값 선택기(500)는:
    상기 제1복호기(100)에 연결되고 또한 제1텍셀값을 출력하도록 구성되는 제1멀티플렉서(510)와;
    상기 제1복호기(100)와 상기 제2복호기(200)에 연결되고 또한 제2텍셀값을 출력하도록 구성되는 제2멀티플렉서(520)와;
    상기 제1복호기(100)와, 상기 제2복호기(200)와 상기 제3복호기(300)에 연결되고 또한 제3텍셀값을 출력하도록 구성되는 제3멀티플렉서와; 그리고
    상기 제1복호기(100)와, 상기 제2복호기(200)와 그리고 상기 제4복호기(400)에 연결되고 또한 제4텍셀값을 출력하도록 구성되는 제4멀티플렉서(540)를 포함하는 것을 특징으로 하는 복호 시스템.
  14. 적어도 하나의 부호화된 텍셀블록(40)을 복호함으로써 복호된 화소를 생성하는 방법에 있어서, 상기 방법은:
    각각이 자신을 제외한 다른 N-1개 복호기들의 회로의 복잡도 수준과는 상이한 복잡도 수준을 가지는 회로를 가지고 또한, 적어도 N개 텍셀(30 내지 36)들 중 적어도 하나를 포함하는 텍셀블록(10)의 경계에 관해 적어도 N개의 텍셀값들과 관련된 상기 적어도 N개 텍셀(30 내지 36)들의 위치를 기반으로, 적어도 하나의 각 텍셀값을 생성하기 위해 부호화된 텍셀블록(40)을 복호하도록 각각 구성되는, N개의 상이한 복호기(100, 200, 300, 400)들 중 적어도 하나로부터 상기 적어도 N개의 텍셀값들을 선택적으로 출력하는 단계와; 그리고
    상기 적어도 N개의 텍셀값들을 기반으로 상기 부호화된 화소의 복호된 화소값을 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 제14항에 있어서, 상기 선택적으로 출력하는 단계는, 만일 상기 N개의 텍셀값들과 관련된 N개의 텍셀(30 내지 36)들이 텍셀블록(10)의 상기 경계 내측에 위치한다면 상기 N개의 복호기(100, 200, 300, 400)들 중 제1복호기(100)로부터 N개의 텍셀값들을 선택적으로 출력하는 것을 포함하는 것을 특징으로 하는 방법.
  16. 제14항 또는 제15항에 있어서, 상기 선택적으로 출력하는 단계는, 만일 상기 N개의 텍셀값들과 관련된 N개의 텍셀(30 내지 36)들 중 절반이 상기 텍셀블록(10)의 상기 경계 내측에 위치하고 또한 상기 N개의 텍셀(30 내지 36)들 중 절반이 이웃하는 텍셀블록(12, 14)의 경계 내측에 위치한다면, 상기 N개의 복호기(100, 200, 300, 400)들 중 제1복호기(100)로부터 N개의 텍셀값들 중 절반을 선택적으로 출력하고 또한 상기 N개의 복호기(100, 200, 300, 400)들 중 제2복호기(200)로부터 상기 N개의 텍셀값들 중 나머지 절반을 선택적으로 출력하는 것을 포함하는 것을 특징으로 하는 방법.
  17. 제14항 또는 제15항에 있어서, 상기 N은 4와 동일하고, 그리고 상기 선택적으로 출력하는 단계는, 만일 상기 네 개의 텍셀(30 내지 36)들 중 하나가 상기 텍셀블록(10)의 상기 경계 내측에 위치하고 또한 나머지 세 개의 텍셀들이 이웃하는 각 텍셀블록(12, 14, 16)의 경계 내측에 위치한다면, 상기 네 개의 복호기(100, 200, 300, 400)들 중 제1복호기(100)로부터 상기 네 개의 텍셀값들 중 제1텍셀값을 선택적으로 출력하고, 상기 네 개의 복호기(100, 200, 300, 400)들 중 제2복호기(200)로부터 상기 네 개의 텍셀값들 중 제2텍셀값을 선택적으로 출력하고, 상기 네 개의 복호기(100, 200, 300, 400)들 중 제3복호기(300)로부터 상기 네 개의 텍셀값들 중 제3텍셀값을 선택적으로 출력하고, 그리고 상기 네 개의 복호기(100, 200, 300, 400)들 중 제4복호기(400)로부터 상기 네 개의 텍셀값들 중 제4텍셀값을 선택적으로 출력하는 것을 포함하는 것을 특징으로 하는 방법.
KR1020127015254A 2009-11-24 2010-02-24 부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법 KR101709822B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US26392209P 2009-11-24 2009-11-24
US61/263,922 2009-11-24
US26631609P 2009-12-03 2009-12-03
US61/266,316 2009-12-03
PCT/SE2010/050217 WO2011065886A1 (en) 2009-11-24 2010-02-24 Decoding system and method operable on encoded texture element blocks

Publications (2)

Publication Number Publication Date
KR20120097515A KR20120097515A (ko) 2012-09-04
KR101709822B1 true KR101709822B1 (ko) 2017-02-23

Family

ID=44066774

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127015254A KR101709822B1 (ko) 2009-11-24 2010-02-24 부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법

Country Status (11)

Country Link
US (1) US8655063B2 (ko)
EP (1) EP2504814B1 (ko)
JP (1) JP2013512482A (ko)
KR (1) KR101709822B1 (ko)
CN (1) CN102687175B (ko)
BR (1) BR112012012273B1 (ko)
DK (1) DK2504814T3 (ko)
ES (1) ES2635540T3 (ko)
PL (1) PL2504814T3 (ko)
RU (1) RU2510939C2 (ko)
WO (1) WO2011065886A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2729917A4 (en) 2011-07-08 2016-03-30 Ericsson Telefon Ab L M MULTI-MODE PROCESSING OF TEXTURE BLOCKS
US10148972B2 (en) * 2016-01-08 2018-12-04 Futurewei Technologies, Inc. JPEG image to compressed GPU texture transcoder
US10055810B2 (en) * 2016-03-04 2018-08-21 Samsung Electronics Co., Ltd. Cache architecture for efficiently accessing texture data using buffers
GB2562041B (en) 2017-04-28 2020-11-25 Imagination Tech Ltd Multi-output decoder for texture decompression
GB2562042B (en) * 2017-04-28 2020-07-15 Imagination Tech Ltd Decoder unit for texture decompression
US11244492B2 (en) * 2018-11-02 2022-02-08 Facebook Technologies, Llc. Parallel texture sampling

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005059839A1 (en) * 2003-12-19 2005-06-30 Telefonaktiebolaget Lm Ericsson (Publ) Multi-mode image processing
JP2008017489A (ja) * 2006-07-06 2008-01-24 Accenture Global Services Gmbh グラフィック処理ユニットでの暗号化及び復号化

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111582A (en) * 1996-12-20 2000-08-29 Jenkins; Barry L. System and method of image generation and encoding using primitive reprojection
US5956431A (en) 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
JPH11341496A (ja) * 1998-05-28 1999-12-10 Matsushita Electric Ind Co Ltd 画像処理方法,画像処理装置,及びデータ記憶媒体
DE19917092A1 (de) * 1999-04-15 2000-10-26 Sp3D Chip Design Gmbh Verfahren zur Rasterisierung eines Graphikgrundelements
US6968006B1 (en) * 2001-06-05 2005-11-22 At&T Corp. Method of content adaptive video decoding
SE0401850D0 (sv) * 2003-12-19 2004-07-08 Ericsson Telefon Ab L M Image processing
SE526226C2 (sv) * 2003-12-19 2005-08-02 Ericsson Telefon Ab L M Bildbehandling
CA2572967C (en) * 2004-07-08 2012-10-16 Telefonaktiebolaget L M Ericsson (Publ) Multi-mode image processing
PL1886277T3 (pl) 2005-05-27 2016-06-30 Ericsson Telefon Ab L M Przetwarzanie obrazów w oparciu o wagę
WO2007084062A2 (en) * 2006-01-23 2007-07-26 Telefonaktiebolaget Lm Ericsson (Publ). Image processing
WO2007116551A1 (ja) * 2006-03-30 2007-10-18 Kabushiki Kaisha Toshiba 画像符号化装置及び画像符号化方法並びに画像復号化装置及び画像復号化方法
CN101455085A (zh) * 2006-05-24 2009-06-10 松下电器产业株式会社 图像解码装置
US9967590B2 (en) * 2008-04-10 2018-05-08 Qualcomm Incorporated Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005059839A1 (en) * 2003-12-19 2005-06-30 Telefonaktiebolaget Lm Ericsson (Publ) Multi-mode image processing
JP2008017489A (ja) * 2006-07-06 2008-01-24 Accenture Global Services Gmbh グラフィック処理ユニットでの暗号化及び復号化

Also Published As

Publication number Publication date
EP2504814B1 (en) 2017-05-03
CN102687175B (zh) 2015-02-04
RU2012126120A (ru) 2013-12-27
US8655063B2 (en) 2014-02-18
RU2510939C2 (ru) 2014-04-10
BR112012012273A2 (pt) 2018-04-17
DK2504814T3 (en) 2017-08-21
EP2504814A4 (en) 2016-04-06
US20120281915A1 (en) 2012-11-08
ES2635540T3 (es) 2017-10-04
PL2504814T3 (pl) 2017-10-31
WO2011065886A8 (en) 2012-07-19
KR20120097515A (ko) 2012-09-04
JP2013512482A (ja) 2013-04-11
WO2011065886A1 (en) 2011-06-03
EP2504814A1 (en) 2012-10-03
CN102687175A (zh) 2012-09-19
BR112012012273B1 (pt) 2020-11-03

Similar Documents

Publication Publication Date Title
US8761528B2 (en) Compression of image data
RU2407222C2 (ru) Обработка изображений на основе весов
KR101709822B1 (ko) 부호화된 텍셀 블록에서 동작할 수 있는 복호 시스템 및 방법
US9116790B2 (en) Methods of and apparatus for storing data in memory in data processing systems
US9355493B2 (en) Device and method for compositing video planes
US8855410B2 (en) Method and apparatus for compressing and decompressing data
CN101340587A (zh) 编码输入图像的方法以及播放已编码图像的方法及装置
JP2006014341A (ja) Mcuバッファを用いて画像データを格納するための方法及び装置
EP2652950A1 (en) Method and device for storing a compression ratio indication in a pixel value buffer in tile encoding
KR20190120166A (ko) 델타 색상 압축의 비디오 적용
EP2556492A1 (en) Texture compression and decompression
JP2010519796A (ja) データ・チャネル情報のプログラム可能なパターンに基づく解凍及び圧縮
US9129543B2 (en) Texture compression and decompression
US11263786B2 (en) Decoding data arrays
JP5894605B2 (ja) 方法及び装置
US20180096513A1 (en) Method and apparatus for determining number of bits assigned to channels based on variations of channels
US11954028B2 (en) Accessing encoded blocks of data
CN110175269B (zh) 一种顶点索引的压缩及解压缩方法、装置及计算机存储介质
CN113496530A (zh) 对数据阵列进行编码
CN116320449A (zh) 多媒体文件压缩方法、装置及电子设备

Legal Events

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

Payment date: 20200212

Year of fee payment: 4