KR20140035438A - 셰이더 프로세서를 사용한 실시간 온-칩 텍스처 압축 해제 - Google Patents

셰이더 프로세서를 사용한 실시간 온-칩 텍스처 압축 해제 Download PDF

Info

Publication number
KR20140035438A
KR20140035438A KR1020137034226A KR20137034226A KR20140035438A KR 20140035438 A KR20140035438 A KR 20140035438A KR 1020137034226 A KR1020137034226 A KR 1020137034226A KR 20137034226 A KR20137034226 A KR 20137034226A KR 20140035438 A KR20140035438 A KR 20140035438A
Authority
KR
South Korea
Prior art keywords
shader
block
texture block
texture
variable rate
Prior art date
Application number
KR1020137034226A
Other languages
English (en)
Other versions
KR101994986B1 (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 KR20140035438A publication Critical patent/KR20140035438A/ko
Application granted granted Critical
Publication of KR101994986B1 publication Critical patent/KR101994986B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

그래픽 처리 유닛(GPU) 내 텍스처를 압축 해제하거나 생성하는 처리 유닛, 방법 및 매체. 상기 텍스처는 JPEG과 같은 가변 율 압축 방식으로 압축된다. 상기 압축된 텍스처는 시스템 메모리로부터 검색되고 제일 먼저 압축 해제됨이 없이 상기 GPU에 있는 국부 캐시 메모리로 전달된다. 테이블은 상기 압축된 텍스처 내 개별 블록을 찾기 위해 상기 캐시에 의해 사용된다. 압축 해제 셰이더 프로세서는 압축된 블록을 수신하고 이후 진행 중에 상기 블록의 압축 해제를 수행한다. 상기 압축 해제된 블록은 이후 상기 GPU의 텍스처 소비 셰이더 프로세서에 의해 통상적으로 처리된다.

Description

셰이더 프로세서를 사용한 실시간 온-칩 텍스처 압축 해제{REAL TIME ON-CHIP TEXTURE DECOMPRESSION USING SHADER PROCESSORS}
본 발명은 일반적으로 그래픽 처리에 관한 것으로, 보다 상세하게는 텍스처 압축 해제(texture decompression) 처리 유닛, 방법 및 매체에 관한 것이다.
컴퓨터 그래픽 처리 시스템은 일반적으로 대부분의 처리를 수행하는 그래픽 처리 유닛(graphics processing unit: GPU)을 구비하며 많은 양의 데이터를 처리한다. GPU는 특히, 그래픽-처리 태스크(task)를 수행하도록 구성된 복잡한 집적 회로이다. 예를 들어, GPU는 비디오-게임 애플리케이션과 같은 최종-유저 애플리케이션에 의해 요구되는 그래픽-처리 태스크를 실행할 수 있다. GPU는 이산 디바이스이거나 또는 중앙 처리 유닛(central processing unit: CPU)과 같은 다른 프로세서와 동일한 디바이스에 포함될 수 있다.
GPU는 렌더링(rendering)으로 알려진 프로세스에서 그 구성요소에 대해 더 높은 레벨의 설명으로부터 이미지를 구성하는 픽셀을 생성한다. GPU는 일반적으로 컴퓨팅 요소를 사용하여 연속적으로 렌더링하여 픽셀, 텍스처 및 기하학적 데이터를 처리하는 개념을 사용한다. 컴퓨팅 요소는 래스터라이저(rasterizer), 설정 엔진(setup engine), 컬러 혼합기(color blender), 은닉된 표면 제거 및 텍스처 맵핑의 함수를 실행할 수 있다. 이들 컴퓨팅 요소는 종종 셰이더(shader), 셰이더 프로세서, 셰이더 어레이, 셰이더 파이프, 셰이더 파이프 어레이, 셰이더 파이프라인, 또는 셰이더 엔진으로 지칭되고, 여기서 "셰이더"는 기본적으로 렌더링 효과를 수행하도록 그래픽 자원에 의해 사용되는 소프트웨어 명령 또는 프로그램의 세트를 지칭하는 컴퓨터 그래픽 용어이다. "셰이더"는 또한 소프트웨어 명령을 실행하는데 사용되는 실제 하드웨어 구성요소 또는 프로세서를 지칭할 수 있다. 셰이더 프로세서 또는 프로그램은 데이터를 판독하고 렌더링하며 임의의 유형의 데이터 처리를 수행할 수 있다. 통일된 셰이더를 구비하는 GPU는 또한 픽셀, 정점(vertex), 프리미티브(primitive) 및 일반화된 컴퓨팅 처리로부터 많은 유형의 셰이더 처리를 동시에 지원한다.
복잡한 그래픽 장면을 생성하는데 수반되는 많은 처리는 텍스처 데이터를 수반한다. 텍스처는 여러 유형의 데이터, 예를 들어 컬러, 투명도, 룩업 테이블(lookup table), 또는 다른 데이터 중 어느 것일 수 있다. 일부 실시예에서, 텍스처는 시각적 상세를 추가하기 위해 기하학적 형상에 그려지는 디지털화된 이미지일 수 있다. 텍스처를 사용하여 다수의 상세는 모델이 목적지 이미지(destination image)를 생성하도록 렌더링될 때 그래픽 모델의 표면으로 맵핑될 수 있다. 텍스처 맵핑의 목적은 객체의 표면에 현실감(realistic appearance)을 제공하는 것이다. 텍스처는 컬러, 거울 반사와 같은 표면 특성, 또는 통상(normal) 또는 범프(bump) 맵 형태인 정밀한(fine) 표면 상세를 포함하는 많은 특성을 지정할 수 있다. 텍스처는 또한 이미지 데이터, 컬러 또는 투명도 데이터, 러프니스(roughness)/평활도(smoothness) 데이터, 반사율 데이터 등일 수 있다. '텍셀(texel)'은 '픽셀'이 화상 요소인 것과 동일한 방식으로 텍스처 요소이다. '텍셀' 및 '픽셀'이라는 용어는 본 명세서에서 상호교환가능하게 사용될 수 있다.
3D 컴퓨터 그래픽에서, 객체의 표면 상세는 일반적으로 텍스처를 사용하여 추가된다. 예를 들어, 벽돌 벽의 2D 비트맵 이미지는 텍스처 맵핑을 사용하여, 빌딩의 3D 모델을 나타내는 다각형 세트에 적용되어 벽돌로 만들어진 외관을 이 객체의 3D 렌더링에 제공할 수 있다. 현실적인 컴퓨터 그래픽을 제공하려면 일반적으로 많은 고-품질, 상세 텍스처를 요구한다. 텍스처를 사용하는 것은 많은 양의 저장 공간 및 대역폭을 소비할 수 있고, 그 결과 텍스처는 저장 공간 및 대역폭 이용량을 감소시키기 위해 압축될 수 있다.
텍스처 압축은 이에 따라 일반적으로 그래픽 하드웨어 및 특히 3D 그래픽 하드웨어의 널리 허용되는 특징이 되었다. 텍스처 압축의 목적은 가능한 한 원래의 텍스처의 품질을 유지하면서 그래픽 시스템에 저장 및 대역폭 비용을 감소시키는 것이다. 본 명세서에서 설명된 압축 및 압축 해제 방법은 이미지 데이터, 화상 데이터, 투명도 정보, 평활도 또는 러프니스 데이터, 또는 임의의 다른 유사하게 구조화된 데이터를 포함하는 여러 유형의 텍스처 정보를 압축하는데 사용될 수 있다. 그리하여, 텍스처라는 용어는 GPU의 일부로 압축되거나 압축 해제된 데이터를 말하는 것으로 본 명세서에서 넓게 사용된다.
고정 율 압축 방식(fixed-rate compression scheme)은 전통적으로 텍스처를 압축하는데 사용되어 왔고 일반적으로 가변 율 방식(variable-rate scheme)에 비해 여러 단점을 나타낼 수 있다. 고정 율 압축과는 달리, 가변 율 압축은 보다 융통성이 있어서 원하는 품질로 조정을 할 수 있다. 예를 들어, 가변 율 압축은 무손실 압축(lossless compression)을 달성하도록 설정될 수 있다. 일부 경우에, 가변 율 압축 방식을 사용하면 전통적인 고정 율 압축 방식에 비해 더 우수한 압축을 제공할 수 있다. JPEG(Joint Photographic Experts Group)과 같은 가변 율 압축 방식은, 높은 복잡성 및 구현 비용으로 인해 진행 중에(on-the-fly) 압축 해제가 요구될 때에는 일반적으로 텍스처 압축에 사용되지 않는다. 그리하여, 가변 율 압축된 텍스처를 낮은 비용으로 진행 중에 압축 해제하는 방법 및 메커니즘이 이 기술 분야에 요구된다.
전술된 사항을 감안하여, 압축된 텍스처의 실시간 압축 해제를 수행하는 개선된 처리 유닛, 방법, 및 매체가 요구된다.
텍스처 데이터를 압축 해제하는 처리 유닛, 방법 및 매체의 여러 실시예가 고려된다. 일 실시예에서, 복수의 셰이더 중 제1 셰이더는 디스플레이 디바이스에 의해 사용될 데이터를 생성하거나 추가적인 처리를 하는데 텍스처의 블록을 요구할 수 있다. 제1 셰이더는 텍스처의 비압축된 버전(version) 내 블록의 가상 어드레스(virtual address)를 계산하고 이 가상 어드레스를 이 블록 요청과 함께 캐시 메모리 디바이스로 운반하도록 구성될 수 있다. 블록의 비압축된 버전이 캐시에 저장되어 있지 않은 것으로 결정된 것에 응답하여, 복수의 셰이더 중 제2 셰이더는 압축 해제 셰이더로 개시될 수 있고, 블록의 비압축된 버전의 가상 어드레스는 압축 해제 셰이더로 전달될 수 있다. 또한, 블록의 비압축된 버전이 캐시에 있지 않은 것으로 결정난 것에 응답하여, 캐시 라인이 요청된 블록에 할당될 수 있다.
제2 셰이더는 캐시로부터 블록의 압축된 버전을 수신하도록 구성될 수 있다. 캐시는 텍스처의 비압축된 버전의 가상 어드레스 공간을 텍스처의 압축된 버전의 어드레스 공간으로 맵핑하는 테이블을 사용하도록 구성될 수 있다. 캐시 및/또는 제2 셰이더는 테이블로부터 블록의 압축된 버전의 위치 및 사이즈를 결정하도록 구성될 수 있다. 테이블은 또한 텍스처의 각 블록의 압축된 버전의 DC 계수값과 같은 추가적인 정보를 더 포함할 수 있다.
캐시로부터 블록의 압축된 버전을 수신한 후에, 제2 셰이더는 블록의 압축된 버전을 압축 해제하고, 이후 블록의 압축 해제된 버전을 캐시에 기록하도록 구성될 수 있다. 블록의 압축 해제된 버전이 캐시에 기록된 후에, 제1 셰이더는 캐시로부터 블록의 압축 해제된 버전을 수신하도록 구성될 수 있다. 제1 셰이더는 이후 블록의 압축 해제된 버전을 처리하여 디스플레이를 위한 렌더링된 표면에 적용될 수 있도록 구성될 수 있다.
이들 및 다른 특징 및 장점은 본 명세서에 제시된 방법의 이하 상세한 설명을 참조하여 이 기술 분야에 통상의 지식을 가진 자에게 명백하게 될 것이다.
시스템, 방법, 및 메커니즘의 상기 및 추가적인 장점은 첨부 도면과 관련하여 이하 상세한 설명을 참조하여 더 잘 이해될 수 있을 것이다.
도 1은 컴퓨터 그래픽 시스템의 일 실시예를 도시한 도면;
도 2는 하나 이상의 실시예에 따른 GPU의 블록도;
도 3은 그래픽 처리 시스템의 일 실시예의 블록도;
도 4a는 데이터 캐시의 일 실시예의 블록도;
도 4b는 하나 이상의 실시예에 따른 블록 맵핑 테이블을 도시한 도면;
도 5는 텍셀의 8×8 블록을 위한 가상 어드레스 공간의 일 실시예를 도시한 도면;
도 6은 데이터의 일부분의 일 실시예의 블록도;
도 7은 텍스처의 압축된 블록을 압축 해제하는 방법의 일 실시예를 도시한 일반화된 흐름도.
이하 상세한 설명에서, 다수의 특정 상세들이 본 명세서에 제시된 방법 및 메커니즘을 보다 잘 이해할 수 있도록 하기 위하여 제시된다. 그러나, 이 기술 분야에 통상의 지식을 가진 자라면 여러 실시예는 이들 특정 상세 없이 실시될 수 있다는 것을 이해할 수 있을 것이다. 일부 경우에, 잘 알려진 구조, 구성요소, 신호, 컴퓨터 프로그램, 및 기술은 본 명세서에 설명된 방법을 불명료하게 하는 것을 피하기 위해 상세히 도시되지 않았다. 설명의 간략함과 명료함을 위하여 도면에 도시된 요소는 반드시 축척에 맞게 그려진 것은 아닌 것으로 이해된다. 예를 들어, 이들 요소의 일부 치수는 다른 요소에 대해 과장되어 있을 수 있다.
본 명세서는 "일 실시예" 또는 "실시예"라는 언급을 포함한다. "일 실시예에서" 또는 "실시예에서"라는 어구의 사용은 반드시 동일한 실시예를 말하는 것은 아니다. 특정 특징, 구조, 또는 특성은 본 발명과 매칭하는 임의의 적절한 방식으로 조합될 수 있다.
용어. 다음 문단은 본 명세서(첨부된 청구범위를 포함하여)에 나오는 용어에 대한 정의 및/또는 문맥을 제공한다.
"포함하는". 이 용어는 개방형 용어이다. 첨부된 청구범위에 사용된 바와 같이, 이 용어는 추가적인 구조 또는 단계를 배제하지 않는다. "복수의 셰이더··· 를 포함하는 GPU"라는 청구항을 고려해보자. 이 청구항은 GPU가 추가적인 구성요소(예를 들어, 텍스처 유닛, 입력/출력 회로 등)를 포함하는 것을 배제하지 않는다.
"∼하도록 구성된". 여러 유닛, 회로, 또는 다른 구성요소는 태스크 또는 태스크들을 수행"하도록 구성된" 것으로 설명되고 청구될 수 있다. 이 문맥에서, "∼하도록 구성된"은 유닛/회로/구성요소가 동작 동안 이 태스크 또는 태스크들을 수행하는 구조(예를 들어, 회로)를 포함하는 것을 나타내는 것에 의해 구조를 의미하는 데 사용된다. 그리하여, 이 유닛/회로/구성요소는 특정된 유닛/회로/구성요소가 현재 동작하지 않는 경우에도 (예를 들어, 온(on)이 아닌 경우에도) 태스크를 수행하도록 구성된 것이라고 말할 수 있다. "∼하도록 구성된"이라는 언어로 사용된 유닛/회로/구성요소는 하드웨어-예를 들어, 회로, 동작을 구현하도록 실행가능한 프로그램 명령을 저장하는 메모리 등을 포함한다. 유닛/회로/구성요소가 하나 이상의 태스크를 수행"하도록 구성된" 것이라는 언급은 이 유닛/회로/구성요소에 대해 35 U.S.C.§114의 제6절을 상기시키고자 명시적으로 의도한 것이 아니다. 추가적으로, "∼하도록 구성된"은 소프트웨어 및/또는 펌웨어(예를 들어, 소프트웨어를 실행하는 FPGA 또는 일반 목적 프로세서)에 의해 조작되어 해당 태스크(들)를 수행할 수 있는 방식으로 동작하도록 하는 일반 구조(예를 들어, 일반 회로)를 포함할 수 있다. "∼하도록 구성된"은 또한 하나 이상의 태스크를 구현하거나 수행하도록 적응된 디바이스(예를 들어, 집적 회로)를 제조하도록 제조 프로세스(예를 들어, 반도체 제조 시설)를 적응하는 것을 더 포함할 수 있다.
"제1", "제2" 등. 본 명세서에 사용된 바와 같이, 이들 용어는 선행하는 명사에 대한 레이블(label)로 사용되고, 어느 유형의 순서(예를 들어, 공간적, 시간적, 논리적 등)를 의미하는 것이 아니다. 예를 들어, 8개의 처리 요소 또는 코어를 구비하는 프로세서에서, "제1" 및 "제2" 처리 요소라는 용어는 8개의 처리 요소 중 임의의 2개를 지칭하는 데 사용될 수 있다. 다시 말해, "제1" 및 "제2" 처리 요소는 논리적 처리 요소(0 및 1)로 제한되지 않는다.
도 1을 참조하면, 컴퓨터 그래픽 시스템의 일 실시예의 블록도가 도시된다. 컴퓨터 그래픽 시스템(100)은 컴퓨팅 시스템(102) 및 디스플레이 디바이스(114)를 포함한다. 컴퓨팅 시스템(102)은 그래픽 데이터를 처리하기 위한 그래픽 처리 유닛(GPU)(104)을 포함한다. 일부 실시예에서, GPU(104)는 컴퓨팅 시스템(102) 내에 그래픽 카드에 상주할 수 있다. GPU(104)는 그래픽 데이터를 처리하여 디스플레이 디바이스(114)에 디스플레이하기 위해 프레임의 각 픽셀을 위한 컬러 및 휘도값을 생성할 수 있다. GPU(104)는 픽셀 조작을 수행하기 위해 하나 이상의 처리 코어 및/또는셰이더 어레이를 포함할 수 있다.
컴퓨팅 시스템(102)은, CPU(미도시)에서 실행될 수 있는, 소프트웨어 프로그램 애플리케이션(108), 애플리케이션 프로그래밍 인터페이스(application programming interface: API)(110), 및 드라이버(112)를 포함할 수 있다. API(110)는 OpenGL 또는 DirectX와 같은 산업 표준 사양에 따를 수 있다. API(110)는 드라이버(112)와 통신할 수 있다. 드라이버(112)는 API(110)로부터 수신된 표준 코드를 GPU(104)에 의해 이해되는 네이티브 명령 포맷으로 변환할 수 있다. GPU(104)는 이후 드라이버(112)로부터 수신된 명령을 실행할 수 있다.
텍스처는 컴퓨팅 시스템(102)의 시스템 메모리(미도시) 또는 다른 저장 디바이스로부터 GPU(104)로 전달될 수 있다. 일 실시예에서, 텍스처는 JPEG 압축을 사용하여 압축될 수 있다. 다른 실시예에서, 다른 유형의 가변 율 압축은 텍스처를 압축하는데 사용될 수 있다. 본 명세서의 나머지에서는, JPEG 유형 인코딩의 예들을 사용하여 여러 실시예를 기술할 것이다. 그러나, 이것은 단지 예시를 위한 것일 뿐, 다른 유형의 가변 율 압축이 또한 본 명세서에 설명된 방법 및 메커니즘에 사용될 수 있다.
드라이버(112)는 압축된 텍스처를 타일링 프로세스의 일부로 재포맷할 수 있다. 이 재포맷은 JPEG-압축된 텍스처를 하드웨어 내부 JPEG 포맷으로 트랜스코딩(transcoding)하는 것을 수반할 수 있다. 다른 실시예에서, JPEG-압축된 텍스처는 다른 포맷으로 트랜스코딩될 수 있다. 하드웨어 내부 JPEG 포맷은 압축 해제 프로세스를 용이하게 하는 추가적인 정보를 포함할 수 있다. 예를 들어, 하드웨어 내부 JPEG 포맷은 JPEG-압축된 텍스처의 여러 블록의 위치 및 사이즈에 대한 정보를 구비하는 테이블을 포함할 수 있다. 테이블은 또한 JPEG-압축된 텍스처의 각 8×8 블록의 DC 계수에 대한 정보를 더 포함할 수 있다. 테이블은 압축된 텍스처의 압축 해제를 용이하게 하기 위해 허프만(Huffman) 코드, 양자화(quantization) 테이블, 및 다른 정보를 더 포함할 수 있다. 드라이버(112)는 또한 컴퓨팅 시스템(102)에 의해 사용된 압축된 텍스처 각각에 대해 가상 어드레스 공간을 할당할 수 있다. 각 가상 어드레스 공간의 사이즈는 비압축된 텍스처의 사이즈에 대응할 수 있다.
컴퓨팅 시스템(102)은 일반적으로 CPU, 버스, 메모리, 주변 디바이스 등과 같은 도 1에 도시되지 않은 여러 다른 디바이스/구성요소를 구비할 수 있다. 예를 들어, 컴퓨팅 시스템(102)은 디스플레이 디바이스(114)에 더하여 다른 디바이스, 예를 들어, 키보드, 프린터, 및 마우스에 연결될 수 있는 I/O 인터페이스를 포함할 수 있다. 일부 실시예에서, 컴퓨팅 시스템(102)은 복수의 GPU를 포함할 수 있다.
또 다른 실시예에서, GPU(104)와 같은 프로세서는 소프트웨어에 한정될 수 있다. 소프트웨어 명령은 컴퓨터 판독가능한 저장 매체에 저장될 수 있고, 컴퓨팅 디바이스에서 실행될 때, 프로세서를 한정할 수 있다. 다른 실시예에서, 프로세서는 GPU, CPU, 비디오 처리 유닛(video processing unit: VPU), 코프로세서, 및/또는 텍스처 데이터를 처리하도록 구성된 다른 유형의 프로세서를 포함할 수 있다. 여러 실시예에서, GPU 및 CPU는 별개의 집적 회로 디바이스/패키지일 수 있다. 여러 실시예에서, GPU 및 CPU는 단일 집적 회로 또는 패키지에 포함될 수 있다.
도 2를 참조하면, GPU(200)의 일 실시예의 블록도가 도시된다. GPU(200)는 그래픽-처리와 관련된 태스크(예를 들어, 정점 셰이더, 기하학적 셰이더, 픽셀 셰이더 등을 사용하여) 및 일반 컴퓨팅 태스크(예를 들어, 수리적 알고리즘, 물리적 시뮬레이션 등)를 수행하도록 사용될 수 있다. 도시된 예에서, GPU(200)는 셰이더 프로세서 어레이(210), 커맨드 프로세서(212), 텍스처 메모리(220), 직접 메모리 액세스(DMA)를 지원하도록 구성될 수 있는 메모리 제어기(222)를 포함한다. 도 2에 도시된 GPU(200)의 실시예는 단지 예시를 위한 것일 뿐, 이 기술 분야에 통상의 지식을 가진 자라면 많은 다른 실시예들이 가능하다는 것을 인식할 수 있는 것으로 이해된다. 모든 이러한 다른 실시예들이 고려된다. 또한 GPU(200)는 도 2에 도시되지 않은 많은 다른 구성요소를 포함할 수 있는 것으로 이해된다.
도시된 실시예에서, 셰이더 프로세서 어레이(210)는 병렬 수행할 수 있는 다수의 처리 유닛을 포함한다. 커맨드 프로세서(212)는 커맨드를 발행하고 처리 태스크를 셰이더 프로세서 어레이(210)의 개별 셰이더 프로세서에 할당할 수 있다. 일부 실시예에서, 커맨드 프로세서(212)는 수신된 작업부하(workload)를 스레드(thread)로 분할하고 셰이더 프로세서 어레이의 처리 유닛 중에 스레드를 분배하도록 구성된 디스패치(dispatch) 프로세서(미도시)를 포함할 수 있다. 셰이더 프로세서 어레이(210)는 처리 텍스처 데이터를 포함하는 여러 유형의 기능을 수행하고 3차원 텍스처 객체를 2차원 이미지로 변환하는 렌더링 알고리즘을 수행하도록 구성될 수 있다. 전술된 바와 같이, 셰이더 프로세서 어레이(210)는 복수의 셰이더 프로세서를 포함할 수 있고, 복수의 셰이더 프로세서는 정점 및 다른 텍스처 데이터에 대한 넓은 범위의 수리적 및 논리적 동작을 사용하는 알고리즘을 구현할 수 있다.
일부 실시예에서, GPU(200)는 데이터를 일시적으로 저장하는 하나 이상의 온-칩 및/또는 오프 칩 메모리를 사용하도록 구성될 수 있다. 이러한 메모리는 본 명세서에서 "캐시"라고 지칭될 수 있으나, 이러한 용어를 사용하는 것이 이러한 메모리에 임의의 특정 구성, 구조, 또는 정책을 반드시 요구하는 것은 아닌 것으로 이해된다. 예를 들어, 이러한 메모리는 세트 연관 구성 및 대체 정책과 같은 중앙 처리 유닛(CPU) 캐시와 일반적으로 연관된 구성 및 정책을 사용할 수 있으나, 임의의 원하는 구성 및/또는 저장 정책이 사용될 수 있다. 여러 실시예에서, 텍스처 메모리(220)는 텍스처 데이터를 저장하는데 사용된다. 이러한 실시예에서, 텍스처 메모리(220)는 텍스처 데이터가 시스템 메모리(226) 또는 국부 메모리(230)에만 저장된 경우 가능할 수 있었던 것보다 자주 사용되는 텍스처 데이터와 같은 특정 텍스처 데이터에 더 빠른 액세스를 제공할 수 있다. 시스템 메모리(226)는 GPU(200) 및 중앙 처리 유닛(CPU, 미도시)에 의해 모두 액세스가능한 메모리를 나타낼 수 있으나, 국부 메모리는 GPU(200)에 의해서만 직접 액세스가능한 메모리를 나타낼 수 있다. 여러 실시예에서, 텍스처 메모리(220)는 캐시 기술 분야에 일반적으로 알려진 계층 배열로 된 다수의 레벨을 포함할 수 있다. 텍스처 캐시 시스템(220)에 포함된 이러한 캐시 레벨의 수는 실시예마다 변할 수 있다. 텍스처 메모리(220)는 다양한 메모리 기술, 예를 들어 정적 메모리(예를 들어, SRAM), 동적 메모리(예를 들어, DRAM)를 사용하는 적층된 메모리, 또는 다른 것을 사용하여 구현될 수 있다. 텍스처 메모리(220)는 또한 캐싱 논리(caching logic)를 포함할 수 있다. 캐싱 논리는 데이터를 텍스처 메모리(220)에 캐싱하고 캐시 시스템(220) 대(versus) 시스템 메모리(226)의 상대적인 레이턴시(latency) 및/또는 대역폭을 고려하는 캐시 관리 정책을 구현하도록 구성될 수 있다.
GPU(200)는 또한 메모리 제어기(222)를 포함할 수 있다. 메모리 제어기(222)는 시스템 메모리(226) 및 국부 메모리(230)에 연결될 수 있다. 메모리 제어기(222)는 시스템 메모리(226) 내 압축된 텍스처(228)와 같은 데이터에 액세스할 수 있다. 압축된 텍스처(228)는 JPEG과 같은 여러 가변 율 압축 기술 중 어느 것을 사용하여 압축될 수 있는 복수의 텍스처를 포함할 수 있다. 압축된 텍스처(228), 또는 압축된 텍스처(228) 내 개별 텍스처의 일부분은 제일 먼저 압축 해제됨이 없이(메모리 제어기(222)를 통해) GPU(200)의 텍스처 메모리(220) 및 셰이더 프로세서 어레이(210)로 전달될 수 있다. 호스트 드라이버(240)는 커맨드 및 데이터를 시스템 메모리(226)를 통해 GPU(200)로 전달할 수 있다. 국부 메모리(230)는 GPU(200)에 의해 사용되는 정점 데이터 및 다른 데이터를 저장하는데 사용될 수 있고, GPU(200)는 프레임 데이터를 국부 메모리(230)에 기록할 수 있다.
이제 도 3을 참조하면, 그래픽 처리 시스템의 일 실시예의 블록도가 도시된다. 그래픽 처리 시스템(300)은 셰이더 제어기(310)를 포함할 수 있고, 셰이더 제어기(310)는 특정 그래픽 처리 태스크를 셰이더 어레이(320) 내 개별 셰이더 컴퓨팅 유닛에 할당할 수 있다. 셰이더 제어기(310)는 그래픽-처리 태스크 및 일반 컴퓨팅 태스크에 전 처리를 수행하고, 이 태스크를 셰이더 어레이(320)에 발행할 수 있다. 셰이더 제어기(310)는 셰이더 어레이의 처리 요소 중 새로운 작업부하를 처리하는데 이용가능한 것을 식별할 수 있고, 셰이더 제어기(310)는 새로운 작업부하를 셰이더 어레이(320) 중 이용가능한 처리 요소에 송신할 수 있다. 셰이더 제어기(310)는 작업부하 중 셰이더 어레이의 상이한 처리 요소에 의해 처리되는 작업 부하를 추적하여, 복수의 스레드가 병렬로 실행될 수 있게 한다.
셰이더 어레이(320)는 셰이더 어레이(320)에 포함될 수 있는 임의의 개수 및 유형의 셰이더 프로세서를 나타내는 텍스처 소비 셰이더(321) 및 압축 해제 셰이더(322)를 포함할 수 있다. 여러 실시예에서, 셰이더 어레이(320)는 텍스처 데이터를 절차적으로 생성하도록 구성될 수 있는 추가적인 셰이더 프로세서를 포함할 수 있다. 일반적으로 말하면, 절차적인 텍스처 생성은 텍스처를 알고리즘적으로 생성하는 공정을 말한다. 여러 실시예에서 텍스처의 이 절차적인 생성은 미리(in advance)가 아니라 동적으로 수행된다. 셰이더 어레이(320)는 다른 태스크 중에서 텍스처를 맵핑하고 디스플레이 디바이스를 위한 이미지 데이터를 생성하는데 사용될 수 있다. 이들 동작을 수행하는 일부로서, 텍스처 소비 셰이더(321)는 텍스처 요청을 텍스처 필터(330)에 발행할 수 있다. 텍스처 요청은 텍스처의 하나 이상의 부분(예를 들어, 블록, 텍셀)에 대한 것일 수 있다. 텍스처 필터(330)는 요청된 텍스처에 대해 가상 어드레스를 생성하고, 이 가상 어드레스를 이 요청과 함께 캐시(340)로 운반할 수 있다. 캐시(340)는 픽셀과 연관된 텍셀 데이터의 형태로 텍스처를 저장할 수 있다. 텍스처의 일부는 압축될 수 있고, 이 텍스처의 일부는 비압축될 수 있다.
텍스처 필터(330)로부터 가상 어드레스를 수신한 후, 캐시(340)는 요청된 텍스처가 캐시(340)에 저장되어 있는지 여부를 결정하기 위해 모든 알려진 가상 어드레스 범위에 대해 어드레스 체크를 수행할 수 있다. 요청된 텍스처의 비압축된 버전이 캐시(340)에 저장되어 있다면, 캐시(340)는 텍스처의 비압축된 버전을 텍스처 필터(330)로 리턴할 수 있다. 텍스처의 비압축된 버전이 캐시(340)에 저장되어 있지 않다면, 시도된 요청은 캐시 미스(cache miss)를 초래할 수 있다. 캐시 미스에 응답하여, 압축 해제 셰이더(322)는 텍스처의 압축된 버전을 압축 해제하기 위하여 개시될 수 있다. 여러 실시예에서, 셰이더 어레이(320)는 캐시(340)로부터 요청을 수신하거나, 또는 다른 방식으로, 압축 해제 셰이더를 개시하기 위하여 요청을 수신할 수 있다. 또한 캐시 미스에 응답하여, 텍스처 소비 셰이더(321)는 텍스처의 가상 어드레스를 압축 해제 셰이더(322)로 전달할 수 있다. 압축 해제 셰이더 프로그램을 위한 자원은 압축 해제 셰이더(322)에 미리 할당되어 셰이더 시작 레이턴시를 감소시키고 자원 관리를 간략화할 수 있다. 이 요청은 요청되는 블록의 가상 어드레스에 기초하여 셰이더 어레이(320)의 특정 셰이더 프로세서로 라우팅될 수 있다.
캐시(340)는 텍스처의 압축된 버전에 대해 질의(queried)될 수 있고, 텍스처의 압축된 버전이 캐시(340)에 저장되어 있다면, 텍스처의 압축된 버전이 압축 해제 셰이더(322)로 리턴될 수 있다. 텍스처의 압축된 버전이 캐시(340)에 저장되어 있지 않다면, 텍스처의 압축된 버전이 시스템 메모리 또는 다른 위치로부터 검색될 수 있다. 압축 해제 셰이더(322)는 또한 압축 해제 동작을 가능하게 하기 위해 추가적인 테이블, 텍스처 및/또는 상수(constant)를 수신할 수 있다. 압축 해제 셰이더(322)는 요청된 텍스처를 압축 해제하는데 필요한 일부 추가적인 압축된 데이터를 압축 해제할 수 있다. JPEG-압축된 텍스처의 경우에, 텍스처는 원래의 코드로부터 새로운 인코딩 방식으로 트랜스코딩될 수 있고, 새로운 인코딩 방식은 압축 해제를 보다 효율적으로 하기 위해 설계될 수 있다. 압축 해제 셰이더(322)가 텍스처의 압축된 버전을 수신하여 압축 해제된 후에, 텍스처 소비 셰이더(321)는 적절한 렌더링 계산을 위해 텍스처의 압축 해제된 버전을 사용할 수 있다. 이 프로세스는 복수의 텍스처 및/또는 텍스처의 일부분에 대해 계속될 수 있다. 또 다른 실시예에서, 텍스처 필터(330)에 의해 수행되는 것으로 설명된 기능은 셰이더 어레이(320)에 의해 수행될 수 있고, 셰이더 어레이(320)는 캐시(340)에 직접 연결될 수 있다.
캐시(340)는 캐시(340)에 저장된 텍스처의 압축된 버전에 대해 소정의 가상 어드레스가 맵핑된 어드레스를 결정하는 테이블을 사용할 수 있다. 여러 실시예에서, 테이블(또는 그 일부분)은 캐시(340)에 또는 다른 곳에 저장될 수 있다. 일 실시예에서, 테이블은 가상 어드레스를 텍스처의 압축된 버전의 다른 어드레스로 맵핑할 수 있다. 가상 어드레스가 맵핑되는 어드레스는 그 자체가 가상 어드레스일 수도 있고 아닐 수도 있다. 사용되는 어드레스 방식의 유형에 대한 수많은 옵션은 가능하고 이에 고려된다. 테이블은 텍스처의 압축된 버전의 각 블록에 대해 오프셋(offset)을 저장할 수 있고, 여기서 오프셋은 텍스처의 압축된 버전의 시작부로부터 블록으로의 위치를 제공한다. 여러 실시예에서, 테이블은 하나 이상의 압축된 텍스처의 블록에 랜덤 액세스를 용이하게 한다. 캐시(340)의 캐시 논리는 블록의 압축된 버전에 대한 요청에 응답하여 소정의 블록의 어드레스를 결정할 수 있다. 캐시 논리는 이 테이블을 사용하여 원하는 블록이 캐시의 페이지 또는 페치 유닛(fetch unit) 내에 저장되어 있는 오프셋을 결정할 수 있다. 셰이더 어레이(320) 중 복수의 셰이더는 또한 이 테이블을 사용하여 텍스처의 요청된 블록의 오프셋을 결정할 수 있다. 여러 실시예에서, 캐시(340)는 복수의 텍스처에 대한 맵핑 정보를 구비하는 복수의 테이블을 사용할 수 있다.
텍스처 데이터가 처리된 후에, 셰이더 어레이(320)는 이미지 데이터를 렌더링 유닛(350)으로 운반할 수 있다. 렌더링 유닛(350)은 이미지 프레임의 각 픽셀에 대해 고유한 컬러 속성을 한정하는 특정 수의 값을 할당할 수 있다. 이 수 값은 프레임 버퍼(360)로 전달될 수 있고 여기에 수 값이 저장되어 디스플레이 디바이스(370)에 렌더링될 때와 같이 적절한 시간에 사용할 수 있다.
후속 동작에서, 텍스처 소비 셰이더(321)는 압축 해제 셰이더의 기능을 수행하도록 구성될 수 있고, 압축 해제 셰이더(322)는 텍스처 소비 셰이더의 기능을 수행하도록 구성될 수 있다. 셰이더 어레이(320) 중 각 셰이더 프로세서는 현재 동작의 요구조건에 따라 다양한 기능을 수행하도록 구성될 수 있다.
여러 실시예에서, 부하 밸런싱(balancing)을 사용하여 압축 해제 태스크를 덜 이용된(underutilized) 셰이더에 할당할 수 있다. 또한, 일부 공간은 다수의 컴퓨트 유닛에 예비되어 압축 해제 셰이더가 다수의 컴퓨트 유닛에서 론칭(launched)될 수 있게 한다. 나아가, 다수의 압축 해제 요청은 단일 명령 다중 데이터(SIMD) 벡터로 패킹(packed)될 수 있다. SIMD 벡터는 일 벡터에서 다수의 블록의 압축 해제를 용이하게 할 수 있다. 일 실시예에서, 16개의 블록은 4개의 레인(lane)마다 하나의 블록을 가지는 일 벡터에서 압축 해제될 수 있다.
여러 실시예에서, 그래픽 처리 시스템(300)은 텍스처 데이터의 진행 중에 절차적인 생성을 가능할 수 있다. 하나의 셰이더는 진행 중에 텍스처 데이터를 생성할 수 있고, 제2 셰이더는 렌더링 동작을 위해 생성된 텍스처 데이터를 사용할 수 있다. 압축 해제 셰이더는 압축된 데이터에 액세스할 수 있고, 또 다른 셰이더는 하나 이상의 테이블과 같은 추가적인 데이터를 압축 해제하는데 사용될 수 있다. 압축된 데이터의 일부는 다양한 압축 기술을 사용하여 압축될 수 있다. 여러 실시예에서, 압축 해제 셰이더는 캐시로부터 데이터를 요청할 수 있고, 캐시 미스에 응답하여, 다른 셰이더는 텍스처 데이터를 절차적으로 생성하도록 개시될 수 있다.
이제 도 4a를 참조하면, 데이터 캐시의 일 실시예의 블록도가 도시된다. 캐시(410)는 캐시(410)에 저장될 수 있는 텍스처의 임의의 개수의 부분을 나타내는 텍스처(420 및 430)의 일부를 포함할 수 있다. 텍스처(420 및 430)는 압축된 텍스처일 수 있는 반면, 캐시(410)에 저장된 복수의 텍스처는 압축된 텍스처 및 비압축된 텍스처의 혼합일 수 있다. 텍스처(420)는 텍스처(420)의 임의의 개수의 블록을 나타내는 블록(422 및 423)을 포함할 수 있다. 텍스처(420)는 또한 텍스처(420)의 가상 어드레스 공간을 압축된 텍스처(420)의 어드레스 공간으로 맵핑할 수 있는 테이블(421)을 포함할 수 있다. 텍스처(430)는 텍스처(420)와 유사하게 구성될 수 있다. 또 다른 실시예에서, 테이블(421)은 텍스처(420)로부터 별개로 저장될 수 있다.
텍스처 소비 셰이더가 캐시(410)로부터 텍스처의 블록을 요청하고 이 요청이 캐시 미스를 초래할 때, 캐시(410)는 요청된 블록에 대해 캐시 라인(440)을 할당할 수 있다. 캐시(410)는 할당된 캐시 라인의 어드레스를 압축 해제 셰이더에 운반할 수 있다. 압축 해제 셰이더가 요청된 블록에 대응하는 압축된 블록을 압축 해제한 후에, 압축 해제 셰이더는 압축 해제된 블록을 캐시 라인(440)에 기록하도록 구성될 수 있다. 대안적으로, 압축 해제 셰이더는 압축 해제된 블록을 캐시(410) 내 여러 위치에 기록할 수 있다. 압축 해제 셰이더가 압축 해제된 블록을 캐시 라인(440)에 기록한 것에 응답하여, 텍스처 소비 셰이더는 캐시(410)로부터 압축 해제된 블록을 페치하도록 구성될 수 있다. 대응하는 레이턴시 보상 큐(compensation queue)는 압축된 블록의 진행 중에 압축 해제로부터 초래되는 더 큰 레이턴시를 수용하도록 연장될 필요가 있을 수 있다.
블록의 압축 해제된 버전이 캐시 라인(cache line)(440)에 기록된 후에, 캐시(410)는 블록의 압축된 버전 및 블록의 압축 해제된 버전을 저장할 수 있다. 여러 실시예에서, 캐시(410)는 두 버전이 캐시(410)에 저장되어 있는 것으로 결정난 것에 응답하여 블록의 버전들 중 하나를 폐기하는 보유 정책(retention policy)을 실행할 수 있다. 일 실시예에서, 블록의 압축 해제된 버전은 텍스처 소비 셰이더에 의해 페치(fetched)된 후에 폐기될 수 있다. 또 다른 실시예에서, 블록의 압축된 버전은 블록의 압축 해제된 버전이 캐시(410)에 기록된 후에 폐기될 수 있다. 다른 실시예에서, 블록의 압축된 버전 및 압축 해제된 버전은 모두 연장된 시간 기간 동안 캐시(410)에 유지될 수 있다.
텍스처의 블록의 비압축된 버전에 대한 요청에 응답하여, 캐시(410)는 비압축된 버전이 캐시(410)에 저장되어 있지 않은 것으로 결정할 수 있다. 여러 실시예에서, 이러한 결정에 응답하여, 캐시(410)는 자동으로 블록의 압축된 버전을 자동으로 검색할 수 있다. 블록의 압축된 버전이 캐시(410)에 저장되어 있다면, 캐시(410)는 셰이더 또는 다른 처리 유닛을 통지하거나 및/또는 캐시(410)는 블록의 압축된 버전을 셰이더 또는 다른 처리 유닛으로 운반할 수 있다.
일부 실시예에서, 비압축된 블록에 대한 요청이 캐시 미스인 것에 응답하여, 별개의 소프트웨어 스레드가 시작될 수 있고, 스레드는 압축 해제 셰이더를 개시할 수 있다. 텍스처 소비 셰이더는 블록의 가상 어드레스를 압축 해제 셰이더로 운반할 수 있다. 여러 실시예에서, 셰이더가 압축 해제 태스크를 종료할 때, 압축 해제 셰이더는 비압축된 블록(들)을 캐시로 운반할 수 있다. 다른 실시예에서, 압축 해제 셰이더가 압축 해제 동작을 종료할 때, 압축 해제 셰이더는 셰이더 출력을 텍스처 소비 셰이더로 운반할 수 있다.
이제 도 4b를 참조하면, 블록 맵핑 테이블의 일 실시예의 블록도가 도시된다. 테이블(421)은 텍스처(420)(도 4a)의 복수의 블록에 대한 맵핑 정보를 저장할 수 있다. 여러 실시예에서, 테이블(421)은 도 4b에 도시된 것에 더하여 다른 유형의 정보를 구비하게 여러 방식으로 구성될 수 있다. 예를 들어, 일 실시예에서, 테이블(421)은 텍스처(420)의 각 블록에 대한 DC 계수값을 포함할 수 있다.
테이블(421)은 텍스처(420)의 가상 어드레스 공간을 압축된 텍스처(420)(도 4a)의 물리적 어드레스 공간으로 맵핑할 수 있다. 압축 해제 셰이더(미도시)는 캐시(410)로부터 텍스처(420)의 하나 이상의 블록을 페치하거나 다른 방식으로 수신할 수 있고, 압축 해제 셰이더는 테이블(421)로부터 압축된 블록의 위치 및 사이즈를 결정할 수 있다. 압축된 블록의 사이즈는 2개의 인접한 블록의 시작 물리적 어드레스들 사이에 차이를 계산하는 것에 의해 결정될 수 있다. 다른 실시예에서, 추가적인 데이터는 블록에 대한 사이즈 및/또는 위치 정보를 나타내도록 제공될 수 있다. 나아가, 압축 해제 셰이더는 각 블록의 DC 계수값과 같은 테이블(421)로부터 추가적인 정보를 획득할 수 있다.
일부 실시예에서, 텍스처는 수퍼블록(superblock)에 따라 구성될 수 있다. 수퍼블록은 총 1024개의 픽셀에 대해 32×32 픽셀의 타일인 16개의 8×8 블록의 세트일 수 있다. 텍스처에 대한 인덱스 테이블(index table)은 각 수퍼블록에 대한 테이블 엔트리(entry)를 포함할 수 있고, 각 테이블 엔트리는 각 수퍼블록에 시작 어드레스를 제공할 수 있다. 일 실시예에서, 이 어드레스는 텍스처 내 수퍼블록의 위치일 수 있다. 또 다른 실시예에서, 이 어드레스는 텍스처의 시작으로부터 오프셋일 수 있다. 각 엔트리는 또한 수퍼블록에 속하는 제1 8×8 블록의 4-비트 인덱스를 포함할 수 있다. 일부 실시예에서, 수퍼블록은 캐시의 2 킬로비트(Kb) 경계와 정렬되어 있지 않을 수 있다. 각 엔트리는 또한 16-비트 마스크를 포함할 수 있다. 16-비트 마스크는 이 블록이 그 다음 2 Kb 워드에서 시작하는지 여부를 나타내는 블록당 일 비트를 포함할 수 있다.
일부 실시예에서, 압축 해제 셰이더는 8×8 블록의 가상 어드레스를 32×32 수퍼블록의 가상 어드레스로 변환하여 룩업 목적을 위하여 인덱스 테이블의 엔트리 수를 계산할 수 있다. 압축 해제 셰이더는 수퍼블록에 대응하는 인덱스 테이블의 엔트리를 룩업할 수 있다. 인덱스 테이블은 다른 텍스처와 유사한 방식으로 셰이더에 의해 처리될 수 있다. 인덱스 테이블의 엔트리는 캐싱되고 처리될 수 있다.
각 인덱스 테이블 엔트리로부터 셰이더는 가상 어드레스일 수 있는 베이스 어드레스를 획득할 수 있다. 베이스 어드레스는 압축된 수퍼블록의 제1 페치 유닛으로 구성될 수 있다. 셰이더는 또한 압축 해제될 필요가 있는 요청된 블록을 포함하는 페치 유닛의 오프셋을 획득할 수 있다. 셰이더는 또한 블록이 압축되어 있거나 블록의 어드레스에 기초하지 않은 경우 계산될 수 있다. 특정 어드레스 범위는 비압축된 블록의 가상 어드레스에 대응할 수 있고, 다른 어드레스 범위는 압축된 블록의 물리적 어드레스에 대응할 수 있다. 셰이더는 상이한 어드레스 범위들 사이를 구별할 수 있다.
이제 도 5를 참조하면, 텍셀의 8×8 블록에 대한 가상 어드레스 공간의 일 실시예의 블록도가 도시된다. 각 텍셀은 가상 어드레스 공간(570) 내 고유한 어드레스로 맵핑될 수 있다. 텍셀 1은 어드레스(501)로 맵핑될 수 있고, 텍셀 2는 어드레스(502)로 맵핑될 수 있고, 8×8 블록(500)의 모든 64개의 텍셀에 대해 이와 같은 방식으로 맵핑될 수 있다. 블록(500)은 압축된 텍스처 내 블록일 수 있고, 가상 어드레스 공간(570)은 압축된 텍스처의 블록(500)에 대해 할당될 수 있다. 텍스처는 블록(500)에 더하여 복수의 블록을 포함할 수 있다. 가상 어드레스 공간(570)은 또한 텍스처 내 복수의 블록의 각 텍셀에 대해 고유한 어드레스를 포함할 수 있다.
예시를 위하여, 비압축된 텍셀은 32-비트값(8-비트값의 4개의 세트)인 것으로 가정된다. 다른 사이즈의 비압축된 텍셀이 또한 본 명세서에 설명된 방법 및 메커니즘에 사용될 수 있다. 예를 들어, 24-비트값을 가지는 비압축된 텍셀은 유사한 방식으로 처리될 수 있다. 여러 실시예에서, 텍스처 소비 셰이더는 개별 텍셀에 대한 요청을 생성할 수 있다. 제일 먼저, 셰이더는 텍셀의 가상 어드레스를 컴퓨팅할 수 있다. 이후, 캐시는 텍셀에 대응하는 가상 어드레스에 대해 질의될 수 있다.
이제 도 6을 참조하면, 압축된 데이터의 일 실시예의 블록도가 도시된다. 데이터 부분(605)은 압축된 데이터의 페치의 유닛일 수 있고, 데이터 부분(605)의 사이즈는 비압축된 블록의 사이즈에 기초할 수 있다. 일 실시예에서, 페치 유닛은 사이즈 2 Kb 사이즈로 구성될 수 있다. 다른 실시예에서, 페치 유닛은 여러 사이즈 중 어느 것일 수 있다. 복수의 압축된 블록은 페치 유닛으로 패킹될 수 있다. 일 실시예에서, 페치 유닛으로 패킹될 수 있는 블록의 최대 개수는 16인 것으로 가정될 수 있다. 다른 실시예에서, 다른 개수의 블록이 페치 유닛으로 패킹될 수 있다. 하나의 유형의 캐시 액세스 방식에서, 블록의 데이터는 페치 유닛의 경계를 횡단(cross)하지 않는 것으로 가정될 수 있다.
블록은 JPEG과 같은 압축 포맷의 최소 디코딩가능한 유닛일 수 있다. JPEG에서, 블록은 (64개의 픽셀을 구비하는) 8×8 픽셀 타일이다. 텍스처가 압축되어 있고, 셰이더에 의해 요청된 텍스처의 블록은 압축 해제될 필요가 있을 때, 캐시 라인은 블록에 대해 캐시에 할당될 수 있다. 일 실시예에서, 캐시 라인 사이즈는 2 Kb이어서 전체 비압축된 블록(32 비트 * 64 = 2 Kb)을 저장할 수 있다. 다른 실시예에서, 캐시 라인 사이즈는 여러 사이즈 중 어느 것일 수 있다.
페치 유닛이 비압축된 블록을 포함하는 경우, 단 하나의 블록만이 페치 유닛에 맞을 수 있다. 압축된 블록을 포함하는 페치 유닛에서, 페치 유닛은 또한 176-비트 헤더를 포함할 수 있다. 페치 유닛은 16 블록의 용량을 구비하는 것으로 가정될 수 있다. 헤더는 페치 유닛 내 압축된 블록의 위치를 나타내도록 16개의 11-비트 오프셋값을 포함할 수 있다. 오프셋은 블록의 시작 비트 위치를 참조한다. 다른 실시예에서, 헤더에는 가변 개수의 오프셋 지시자(indicator)들이 있을 수 있다.
도 6에 도시된 바와 같이, 데이터 부분(605)은 헤더(610) 및 블록(611-626)을 포함할 수 있다. 블록(611-626)은 압축된 텍스처의 16개의 상이한 블록일 수 있다. 헤더(610)는 오프셋(631-646)을 포함할 수 있다. 각 오프셋은 데이터 부분(605) 내 대응하는 블록의 위치에 대응하는 11-비트 오프셋값일 수 있다. 다른 실시예에서, 다른 비트-사이즈의 오프셋값이 사용될 수 있다. 오프셋(631)은 블록(611)의 시작 어드레스를 나타낼 수 있고, 오프셋(632)은 블록(612)의 시작 어드레스를 나타낼 수 있고, 이와 같이 계속될 수 있다. 일부 실시예에서, 마지막 블록의 마지막 비트를 나타내는 추가적인 오프셋이 있을 수 있어서, 캐시로부터 불필요한 페치를 감소시킬 수 있다.
일부 실시예에서, 텍스처의 압축된 8×8 블록은 패킹될 수 있고 페치 유닛 경계를 횡단할 수 있다. 블록이 2개의 페치 유닛을 사용하는 것을 보여주는 대응하는 정보는 인덱스 테이블에 저장될 수 있고, 압축 해제 셰이더는 페치 유닛 경계를 횡단하는 블록에 대해 하나의 페치 대신 2개의 페치를 생성할 수 있다.
이제 도 7을 참조하면, 텍스처의 압축된 블록을 압축 해제하는 방법의 일 실시예가 도시된다. 설명의 목적을 위하여, 이 실시예에 있는 단계는 순차적으로 도시된다. 아래에 설명된 방법의 여러 실시예에서, 설명된 요소의 하나 이상이 동시에 수행될 수 있거나, 도시된 것과 상이한 순서로 수행될 수 있거나, 또는 전적으로 생략될 수 있는 것으로 이해된다. 다른 추가적인 요소는 또한 원하는대로 수행될 수 있다.
본 방법(700)은 블록(705)에서 시작하고, 이후 블록(710)에서, 복수의 셰이더 중 제1 셰이더가 이미지에 대한 렌더링 동작의 일부로서 텍스처의 블록에 대한 필요성을 결정할 수 있다. 제1 셰이더는 텍스처 소비 셰이더일 수 있다. 다음으로, 제1 셰이더는 블록의 가상 어드레스를 계산할 수 있다(블록 715). 제1 셰이더는 비압축된 텍스처의 비압축된 버전에 대응하는 텍스처의 비압축된 뷰(view)를 가질 수 있고, 가상 어드레스는 비압축된 뷰 내에 요청된 블록의 위치에 대응할 수 있다. 블록(715) 후에, 제1 셰이더는 캐시로부터 블록을 요청하고 가상 어드레스를 요청과 함께 운반할 수 있다(블록 720). 다음으로, 캐시는 블록의 비압축된 버전이 캐시에 저장되어 있는지 여부를 결정할 수 있다(조건 블록 725). 블록의 비압축된 버전이 캐시에 저장되어 있는 경우, 제1 셰이더는 캐시로부터 블록의 비압축된 버전을 수신하여 블록을 처리할 수 있다(블록 770).
블록의 비압축된 버전이 캐시에 저장되어 있지 않은 경우, 복수의 셰이더 중 제2 셰이더가 압축 해제 셰이더로 개시될 수 있다(블록 730). 압축 해제 셰이더를 위한 자원은 하나 이상의 셰이더 프로세서에 미리 할당되어 셰이더 시작 레이턴시를 감소시키고 자원 관리를 간략화할 수 있다. 또한, 요청된 블록의 가상 어드레스가 제1 셰이더로부터 제2 셰이더로 전달될 수 있다. 다음으로, 캐시 라인은 요청된 블록에 할당될 수 있다(블록 735). 이후, 캐시는 블록의 압축된 버전이 캐시에 저장되어 있는지 여부를 결정할 수 있다(조건 블록 740). 여러 실시예에서, 캐시는 제2 셰이더가 블록의 압축된 버전을 요청한 것에 응답하여 이 결정을 할 수 있다. 다른 실시예에서, 캐시는 블록의 비압축된 버전이 캐시에 저장되어 있지 않은 것으로 결정난 것에 응답하여 자동으로 이 결정을 할 수 있다(조건 블록 725).
블록의 압축된 버전이 캐시에 저장되어 있는 경우(조건 블록 740), 캐시 및/또는 제2 셰이더는 테이블로부터 블록의 압축된 버전의 위치 및 사이즈를 결정할 수 있다(블록 750). 블록의 압축된 버전이 캐시에 저장되어 있지 않은 경우(조건 블록 740), 블록의 압축된 버전이 (예를 들어, 국부 메모리 또는 시스템 메모리로부터) 페치되어 캐시에 저장될 수 있다(블록 745). 시스템 메모리로부터 블록의 압축된 버전을 페치하는 것은 전체 압축된 텍스처 또는 이 텍스처의 일부 부분을 페치하는 것을 수반할 수 있다. 캐시는 텍스처의 비압축된 버전의 가상 어드레스 공간을 텍스처의 압축된 버전의 어드레스 공간으로 맵핑하는 테이블을 사용하도록 구성될 수 있다. 캐시 및/또는 제2 셰이더는 테이블로부터 블록의 압축된 버전의 위치 및 사이즈를 결정할 수 있다(블록 750). 테이블은 또한 텍스처의 각 블록의 압축된 버전의 DC 계수값과 같은 추가적인 정보를 포함할 수 있다. 블록(750) 후에, 블록의 압축된 버전은 캐시로부터 제2 셰이더로 운반될 수 있다(블록 755).
또 다른 실시예에서, 블록의 압축된 버전이 캐시에 저장되어 있지 않은 경우(조건 블록 740), 단계(745, 750, 및 755)는 대안 단계로 대체될 수 있다. 대안 단계에서, 블록의 압축된 버전은 시스템 메모리로부터 페치될 수 있고 직접 제2 셰이더에 제공될 수 있다. 이들 대안 단계는 제2 셰이더가 캐시로부터 블록의 압축된 버전을 수신하는 것보다 더 효율적일 수 있다. 다른 실시예에서, 블록의 압축된 버전은 시스템 메모리로부터 페치될 수 있고 또한 캐시에 기록되고 있는 동안 제 2 셰이더에 직접 제공될 수 있다.
제2 셰이더가 블록의 압축된 버전을 수신한 후에(블록 755), 제2 셰이더는 블록의 압축된 버전을 압축 해제할 수 있다(블록 760). 다음으로, 제2 셰이더는 블록의 압축 해제된 버전을 캐시에 기록할 수 있다(블록 765). 이후, 제1 셰이더가 캐시로부터 블록의 압축 해제된 버전을 수신하고 현재 이미지에 대한 렌더링 동작의 일부로 블록을 처리할 수 있다(블록 770). 블록(770) 후에, 본 방법은 블록(775)에서 종료할 수 있다. 방법(700)은 복수의 텍스처로부터 복수의 블록에 대해 반복될 수 있다.
특징 및 요소가 특정 조합으로 예시적인 실시예에 설명되었으나, 각 특징 또는 요소는 예시적인 실시예의 다른 특징 및 요소 없이 단독으로 사용되거나 또는 다른 특징 및 요소와 함께 또는 없이 여러 조합으로 사용될 수 있다. 본 발명은 임의의 비휘발성 메모리 디바이스에서 사용하거나 이 디바이스에 의해 사용하기 위한 기계, 프로세서, 및/또는 임의의 일반 목적 컴퓨터에 의해 실행하기 위한 기계 판독가능한 명령을 구비하는 비-일시적인 컴퓨터-판독가능한 저장 매체에 유형적으로 구현된 컴퓨터 프로그램 또는 펌웨어로 구현될 수 있다. 컴퓨터-판독가능한 저장 매체는 본 명세서에 설명된 기능, 방법, 및 동작을 가능하도록 동작가능한 프로그램 명령을 포함할 수 있다. 적절한 프로세서는 예로서 일반 목적 및 특수 목적 프로세서를 모두 포함한다.
일반적으로, 프로세서는 저장된 소프트웨어 또는 펌웨어를 구비하는 판독 전용 메모리(ROM), RAM, 및/또는 저장 디바이스로부터 명령 및 데이터를 수신할 수 있다. 컴퓨터 프로그램 명령 및 데이터를 구현하기에 적절한 저장 디바이스는 예로서 반도체 메모리 디바이스, 판독 전용 메모리(ROM), 자기 매체, 예를 들어 내부 하드 디스크 및 이동식 디스크, 광자기 매체, 및 광 매체, 예를 들어 CD-ROM 디스크 및 디지털 다용도 디스크(DVD)를 포함하는 모든 형태의 비휘발성 메모리를 포함한다.
전술된 실시예는 하드웨어 기술 언어(hardware description language: HDL), 예를 들어 베릴로그(Verilog) 또는 VHDL를 사용하여 소프트웨어로 설계될 수 있다. HDL-설계는 전자 시스템의 거동을 모델링할 수 있고, 이 설계는 합성되어 궁극적으로 하드웨어 디바이스로 제조될 수 있다. 게다가, HDL-설계는 컴퓨터 제품에 저장되어 하드웨어 제조 전에 컴퓨터 시스템에 로딩될 수 있다.
본 발명에 의해 사용되거나 본 발명과 함께 사용될 수 있는 하드웨어 구성요소, 프로세서, 또는 기계의 유형으로는 응용 특정 집적 회로(ASIC), 전계 프로그래밍가능한 게이트 어레이(FPGA), 마이크로프로세서, 또는 임의의 집적 회로를 포함한다. 이러한 프로세서는 처리된 하드웨어 기술 언어(HDL) 명령(컴퓨터 판독가능한 매체에 저장될 수 있는 명령)의 결과를 사용하여 제조 프로세스를 구성하는 것에 의해 제조될 수 있다. 이러한 처리 결과는 본 명세서에 설명된 방법 및 메커니즘의 측면을 구현하는 프로세서를 제조하도록 반도체 제조 프로세스에 사용되는 마스크작업일 수 있다.
이미지 렌더링 계산 및 셰이더 태스크를 구현하는데 사용되는 것과 같은 소프트웨어 명령은 컴퓨터-판독가능한 저장 매체에 저장될 수 있다. 컴퓨터-판독가능한 저장 매체는 기계(예를 들어, 컴퓨터)에 의해 판독가능한 형태(예를 들어, 소프트웨어, 처리 애플리케이션)로 정보를 저장하는 임의의 메커니즘을 포함할 수 있다. 컴퓨터-판독가능한 저장 매체는 자기 또는 광 매체(예를 들어, 디스크(고정식 또는 이동식), 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, 또는 블루레이(Blu-Ray)), RAM(예를 들어, 동기 동적 RAM(SDRAM), 더블 데이터 레이트(double data rate)(DDR, DDR2, DDR3 등) SDRAM, 저전력 DDR(LPDDR2 등) SDRAM, 램버스 DRAM(RDRAM), 정적 RAM(SRAM)), ROM, USB 인터페이스, 마이크로-전자 기계 시스템(MEMS)과 같은 주변 인터페이스를 통해 액세스가능한 비휘발성 메모리(예를 들어, 플래시 메모리), 및 네트워크 및/또는 무선 링크와 같은 통신 매체를 통해 액세스가능한 저장 매체를 포함할 수 있으나 이들로 제한되지 않는다.
여러 예시적인 실시예가 도시되고 기술되었으나, 이 기술 분야에 통상의 지식을 가진 자에게는 설명된 방법에 다수의 변경, 변형 또는 대안이 이루어질 수 있다는 것은 자명하다. 그러므로, 이러한 변경, 변형 및 대안은 본 명세서에 설명된 방법 및 메커니즘의 범위 내에 있는 것으로 보아야 한다. 또한 전술된 실시예는 단지 본 발명의 구현을 예시하는 것으로 해석되어야 하는 것으로 이해되어야 한다.

Claims (20)

  1. 장치로서,
    제1 셰이더(shader); 및
    제2 셰이더를 포함하되;
    상기 제2 셰이더는 상기 제1 셰이더에 의해 사용하기 위한 가변 율 압축된 텍스처 블록(variable rate compressed texture block)을 압축 해제하도록 구성된 것인 장치.
  2. 제1항에 있어서, 상기 제2 셰이더는, 상기 제1 셰이더가 상기 가변 율 압축된 텍스처 블록에 대응하는 텍스처 블록을 요청한 것에 응답하여 상기 가변 율 압축된 텍스처 블록을 압축 해제하도록 구성된 것인 장치.
  3. 제2항에 있어서, 상기 제1 셰이더가 상기 가변 율 압축된 텍스처 블록에 대응하는 상기 텍스처 블록을 요청하는 것은 상기 가변 율 압축된 텍스처 블록의 비압축된 버전에 대해 메모리에 요청하는 것인 장치.
  4. 제3항에 있어서, 상기 제2 셰이더는, 상기 가변 율 압축된 텍스처 블록의 상기 비압축된 버전이 상기 메모리에 있지 않은 것으로 결정난 것에 더 응답하여 상기 가변 율 압축된 텍스처 블록을 압축 해제하도록 구성된 것인 장치.
  5. 제3항에 있어서, 상기 가변 율 압축된 텍스처 블록을 압축 해제하기 전에, 상기 제2 셰이더는 상기 메모리로부터 상기 가변 율 압축된 텍스처 블록을 수신하도록 구성된 것인 장치.
  6. 제1항에 있어서, 상기 가변 율 압축된 텍스처 블록을 압축 해제하는 것은 상기 제2 셰이더가 압축 해제 프로그램을 실행하는 것에 의해 수행되는 것인 장치.
  7. 제2항에 있어서, 상기 메모리는 오프-칩 시스템 메모리로부터 검색된 데이터를 저장하도록 구성된 온-칩 메모리를 포함하는 것인 장치.
  8. 제2항에 있어서, 상기 가변 율 압축된 텍스처 블록의 비압축된 버전의 가상 어드레스 공간을 상기 가변 율 압축된 텍스처 블록의 어드레스 공간으로 맵핑하는 테이블을 더 포함하는 장치.
  9. 제8항에 있어서, 상기 제1 셰이더는,
    상기 메모리로부터 상기 텍스처 블록을 요청하기 전에, 대응하는 텍스처의 비압축된 버전 내 상기 텍스처 블록의 상기 비압축된 버전의 가상 어드레스를 계산하는 동작; 및
    상기 텍스처 블록의 상기 비압축된 버전의 상기 가상 어드레스를 상기 요청과 함께 상기 메모리에 운반하는 동작을 수행하도록 더 구성된 것인 장치.
  10. 제7항에 있어서, 상기 텍스처 블록의 상기 비압축된 버전이 상기 온-칩 메모리에 있지 않은 것으로 결정난 것에 응답하여, 상기 텍스처 블록의 상기 비압축된 버전에 대해 상기 온-칩 메모리에 저장부(storage)가 할당되는 것인 장치.
  11. 제1항에 있어서, 상기 복수의 셰이더는 텍스처 데이터를 절차적으로 생성하도록 구성된 셰이더를 포함하는 것인 장치.
  12. 텍스처 데이터를 압축 해제하는 방법으로서, 상기 방법은,
    제1 셰이더가 텍스처 블록을 요청하는 단계; 및
    제2 셰이더가 상기 제1 셰이더에 의해 사용하기 위한 가변 율 압축된 텍스처 블록을 압축 해제하는 단계를 포함하는, 텍스처 데이터의 압축 해제 방법.
  13. 제12항에 있어서, 상기 제1 셰이더가 메모리로부터 상기 가변 율 텍스처 블록의 비압축된 버전을 요청한 것에 응답하여 상기 제2 셰이더가 상기 가변 율 압축된 텍스처 블록을 압축 해제하는 단계를 더 포함하는 것인, 텍스처 데이터의 압축 해제 방법.
  14. 제13항에 있어서, 상기 가변 율 압축된 텍스처 블록의 상기 비압축된 버전이 상기 메모리에 있지 않은 것으로 결정난 것에 더 응답하여 상기 제2 셰이더가 상기 가변 율 압축된 텍스처 블록을 압축 해제하는 단계를 더 포함하는 것인, 텍스처 데이터의 압축 해제 방법.
  15. 제14항에 있어서, 상기 가변 율 압축된 텍스처 블록을 압축 해제하기 전에, 상기 방법은 상기 제2 셰이더가 상기 메모리로부터 상기 가변 율 압축된 텍스처 블록을 수신하는 단계를 더 포함하는 것인, 텍스처 데이터의 압축 해제 방법.
  16. 제12항에 있어서, 압축 해제 프로그램을 사용해서 상기 제2 셰이더에 의해 상기 가변 율 압축된 텍스처 블록을 압축 해제하는 단계를 더 포함하는, 텍스처 데이터의 압축 해제 방법.
  17. 제13항에 있어서, 상기 메모리는 오프-칩 시스템 메모리로부터 검색된 데이터를 저장하도록 구성된 온-칩 메모리를 포함하는 것인, 텍스처 데이터의 압축 해제 방법.
  18. 텍스처 데이터를 압축 해제하는 프로그램 명령을 포함하는 컴퓨터 판독가능한 저장 매체로서, 실행될 때 상기 프로그램 명령은,
    제1 셰이더로 하여금 텍스처 블록을 요청하게 하는 동작; 및
    제2 셰이더로 하여금 상기 제1 셰이더에 의해 사용하기 위한 가변 율 압축된 텍스처 블록을 압축 해제하게 하는 동작을 수행하도록 동작가능한 것인 컴퓨터 판독가능한 저장 매체.
  19. 제18항에 있어서, 상기 프로그램 명령은, 상기 제1 셰이더가 메모리로부터 상기 가변 율 텍스처 블록의 비압축된 버전을 요청한 것에 응답하여 상기 제2 셰이더로 하여금 상기 가변 율 압축된 텍스처 블록을 압축 해제하도록 더 동작가능한 것인 컴퓨터 판독가능한 저장 매체.
  20. 제19항에 있어서, 상기 프로그램 명령은, 상기 가변 율 압축된 텍스처 블록의 상기 비압축된 버전이 상기 메모리에 있지 않은 것으로 결정난 것에 더 응답하여 상기 제2 셰이더로 하여금 상기 가변 율 압축된 텍스처 블록을 압축 해제하도록 더 동작가능한 것인 컴퓨터 판독가능한 저장 매체.
KR1020137034226A 2011-06-17 2012-06-14 셰이더 프로세서를 사용한 실시간 온-칩 텍스처 압축 해제 KR101994986B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/163,071 2011-06-17
US13/163,071 US9378560B2 (en) 2011-06-17 2011-06-17 Real time on-chip texture decompression using shader processors
PCT/US2012/042442 WO2012174231A1 (en) 2011-06-17 2012-06-14 Real time on-chip texture decompression using shader processors

Publications (2)

Publication Number Publication Date
KR20140035438A true KR20140035438A (ko) 2014-03-21
KR101994986B1 KR101994986B1 (ko) 2019-07-01

Family

ID=46465280

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137034226A KR101994986B1 (ko) 2011-06-17 2012-06-14 셰이더 프로세서를 사용한 실시간 온-칩 텍스처 압축 해제

Country Status (6)

Country Link
US (4) US9378560B2 (ko)
EP (1) EP2721584B1 (ko)
JP (1) JP6097744B2 (ko)
KR (1) KR101994986B1 (ko)
CN (1) CN103608848B (ko)
WO (1) WO2012174231A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160001701A (ko) * 2014-06-27 2016-01-06 삼성전자주식회사 주파수 압축과 텍스처 파이프라인
KR20160012903A (ko) * 2014-07-25 2016-02-03 인텔 코포레이션 동적 생성 그래픽 자원들에 대한 압축 기술들
KR20190109396A (ko) * 2016-12-22 2019-09-25 어드밴스드 마이크로 디바이시즈, 인코포레이티드 압축된 자원에 셰이더의 기입

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9123143B2 (en) * 2011-08-11 2015-09-01 Aaron I. Krakowski System and method for motion sickness minimization using integration of attended and unattended datastreams
US9189394B2 (en) * 2012-08-08 2015-11-17 Wisconsin Alumni Research Foundation Memory-link compression for graphic processor unit
US9734598B2 (en) * 2013-01-15 2017-08-15 Microsoft Technology Licensing, Llc Engine for streaming virtual textures
CN105009584B (zh) 2013-04-02 2018-09-25 明达半导体股份有限公司 视频处理方法及视频处理装置
US9881391B2 (en) 2013-10-02 2018-01-30 Microsoft Technology Licensing, Llc Procedurally defined texture maps
US10121263B2 (en) 2013-10-31 2018-11-06 Uc Mobile Co., Ltd. Methods and devices for image loading and methods and devices for video playback
US20150228106A1 (en) * 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
US10115177B2 (en) 2014-06-27 2018-10-30 Samsung Electronics Co., Ltd. Online texture compression and decompression in hardware
US20150379682A1 (en) * 2014-06-27 2015-12-31 Samsung Electronics Co., Ltd. Vertex attribute data compression with random access using hardware
KR102258100B1 (ko) 2014-11-18 2021-05-28 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US10244250B2 (en) * 2015-05-29 2019-03-26 Samsung Electronics Co., Ltd. Variable-rate texture compression using fixed-rate codes
US9842410B2 (en) * 2015-06-18 2017-12-12 Samsung Electronics Co., Ltd. Image compression and decompression with noise separation
US10181176B2 (en) 2016-03-04 2019-01-15 Samsung Electronics Co., Ltd. Efficient low-power texture cache architecture
CN105787987B (zh) * 2016-03-15 2019-07-30 广州爱九游信息技术有限公司 一种纹理处理方法及电子设备
US10304155B2 (en) * 2017-02-24 2019-05-28 Advanced Micro Devices, Inc. Delta color compression application to video
CN108804219B (zh) 2017-04-28 2024-01-12 超威半导体公司 多计算核中的灵活着色器导出设计
US10783694B2 (en) * 2017-08-25 2020-09-22 Advanced Micro Devices, Inc. Texture residency checks using compression metadata
CN108010113B (zh) * 2017-11-21 2021-07-27 成都品果科技有限公司 一种基于像素着色器的深度学习模型执行方法
CN108022269B (zh) * 2017-11-24 2021-09-14 中国航空工业集团公司西安航空计算技术研究所 一种GPU压缩纹理存储Cache的建模系统
US10860399B2 (en) 2018-03-15 2020-12-08 Samsung Display Co., Ltd. Permutation based stress profile compression
US10699443B2 (en) 2018-03-29 2020-06-30 Microsoft Technology Licensing, Llc Reducing the search space for real time texture compression
US10776957B2 (en) 2018-10-02 2020-09-15 Samsung Electronics Co., Ltd. Online image compression in hardware
US10803791B2 (en) 2018-10-31 2020-10-13 Samsung Display Co., Ltd. Burrows-wheeler based stress profile compression
US11308873B2 (en) 2019-05-23 2022-04-19 Samsung Display Co., Ltd. Redundancy assisted noise control for accumulated iterative compression error
US11245931B2 (en) 2019-09-11 2022-02-08 Samsung Display Co., Ltd. System and method for RGBG conversion
US11302038B2 (en) * 2019-11-19 2022-04-12 Brightline Interactive, LLC System and method for generating an augmented reality experience
US20210272347A1 (en) * 2020-02-28 2021-09-02 Advanced Micro Devices, Inc. Fully utilized hardware in a multi-tenancy graphics processing unit
CN112465689B (zh) * 2020-10-21 2023-04-07 武汉凌久微电子有限公司 基于可见显存交换区的gpu不可见显存管理方法及系统
US11783509B2 (en) 2020-10-30 2023-10-10 Microsoft Technology Licensing, Llc Locally varying numerical ranges for data compression
US11935153B2 (en) * 2020-12-28 2024-03-19 Advanced Micro Devices, Inc. Data compression support for accelerated processor
US11704860B2 (en) 2021-05-14 2023-07-18 Nvidia Corporation Accelerated processing via a physically based rendering engine
US11853764B2 (en) 2021-05-14 2023-12-26 Nvidia Corporation Accelerated processing via a physically based rendering engine
US11830123B2 (en) 2021-05-14 2023-11-28 Nvidia Corporation Accelerated processing via a physically based rendering engine
US11908064B2 (en) 2021-05-14 2024-02-20 Nvidia Corporation Accelerated processing via a physically based rendering engine
US11875444B2 (en) * 2021-05-14 2024-01-16 Nvidia Corporation Accelerated processing via a physically based rendering engine
CN113034629B (zh) * 2021-05-17 2021-08-20 腾讯科技(深圳)有限公司 图像处理方法、装置、计算机设备及存储介质
US20230205704A1 (en) * 2021-12-23 2023-06-29 Intel Corporation Distributed compression/decompression system
US20230206380A1 (en) * 2021-12-28 2023-06-29 Advanced Micro Devices, Inc. Optimizing partial writes to compressed blocks
CN116467227B (zh) * 2023-06-19 2023-08-25 深流微智能科技(深圳)有限公司 Tmu系统和tmu系统的运算优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000105839A (ja) * 1998-07-31 2000-04-11 Hewlett Packard Co <Hp> 圧縮テクスチャ・デ―タ構造
US6452602B1 (en) * 1999-12-13 2002-09-17 Ati International Srl Method and apparatus for storing compressed data
US6959110B1 (en) * 2000-08-17 2005-10-25 Nvidia Corporation Multi-mode texture compression algorithm
US20110063318A1 (en) * 2009-09-11 2011-03-17 Bolz Jeffrey A Image Loads, Stores and Atomic Operations

Family Cites Families (529)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5191548A (en) * 1990-03-14 1993-03-02 C-Cube Microsystems System for compression and decompression of video data using discrete cosine transform and coding techniques
JPH03266039A (ja) 1990-03-16 1991-11-27 Fujitsu Ltd フリーフォーマットデータリンク処理方式
US5237460A (en) * 1990-12-14 1993-08-17 Ceram, Inc. Storage of compressed data on random access storage devices
US5313577A (en) * 1991-08-21 1994-05-17 Digital Equipment Corporation Translation of virtual addresses in a computer graphics system
US6092171A (en) * 1991-09-16 2000-07-18 Advanced Micro Devices, Inc. System and method for using a memory management unit to reduce memory requirements
US5649151A (en) * 1992-06-29 1997-07-15 Apple Computer, Inc. Efficient method and apparatus for access and storage of compressed data
US5696926A (en) * 1993-07-30 1997-12-09 Apple Computer, Inc. Method and apparatus for transparently compressing data in a primary storage device
AU1447295A (en) * 1993-12-30 1995-08-01 Connectix Corporation Virtual memory management system and method using data compression
US6349375B1 (en) * 1994-02-02 2002-02-19 Compaq Computer Corporation Compression of data in read only storage and embedded systems
DE69527383T2 (de) * 1994-02-22 2003-03-27 Advanced Micro Devices Inc Virtuelle Speicheranordnung
US5812817A (en) * 1994-10-17 1998-09-22 International Business Machines Corporation Compression architecture for system memory application
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US7190284B1 (en) * 1994-11-16 2007-03-13 Dye Thomas A Selective lossless, lossy, or no compression of data based on address range, data type, and/or requesting agent
US5704020A (en) * 1995-03-08 1997-12-30 Ricoh Company, Ltd. Page printer resolution converting method, and variable-length reversible compression process
US5768481A (en) * 1995-06-05 1998-06-16 Apple Computer, Inc. Method and apparatus for compression of digitized image data using a dynamic band recompression scheme
US5842004A (en) * 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
US6008820A (en) * 1995-08-04 1999-12-28 Microsoft Corporation Processor for controlling the display of rendered image layers and method for controlling same
US6525722B1 (en) * 1995-08-04 2003-02-25 Sun Microsystems, Inc. Geometry compression for regular and irregular mesh structures
US5729668A (en) * 1995-09-15 1998-03-17 Hewlett-Packard Company Optimized hardware compression and decompression architecture for use by an image processor in a laser printer
US5696927A (en) * 1995-12-21 1997-12-09 Advanced Micro Devices, Inc. Memory paging system and method including compressed page mapping hierarchy
US6108460A (en) * 1996-01-02 2000-08-22 Pixelfusion Limited Load balanced image generation
US5946716A (en) * 1996-05-30 1999-08-31 Hewlett-Packard Company Sectored virtual memory management system and translation look-aside buffer (TLB) for the same
US5936616A (en) * 1996-08-07 1999-08-10 Microsoft Corporation Method and system for accessing and displaying a compressed display image in a computer system
US5940871A (en) * 1996-10-28 1999-08-17 International Business Machines Corporation Computer system and method for selectively decompressing operating system ROM image code using a page fault
US6115787A (en) * 1996-11-05 2000-09-05 Hitachi, Ltd. Disc storage system having cache memory which stores compressed data
US6088780A (en) * 1997-03-31 2000-07-11 Institute For The Development Of Emerging Architecture, L.L.C. Page table walker that uses at least one of a default page size and a page size selected for a virtual address space to position a sliding field in a virtual address
US6351570B1 (en) * 1997-04-01 2002-02-26 Matsushita Electric Industrial Co., Ltd. Image coding and decoding apparatus, method of image coding and decoding, and recording medium for recording program for image coding and decoding
US6154216A (en) * 1997-04-30 2000-11-28 Ati Technologies Method and apparatus for decompression of a two dimensional video texture map
US6246396B1 (en) * 1997-04-30 2001-06-12 Canon Kabushiki Kaisha Cached color conversion method and apparatus
US6266753B1 (en) * 1997-07-10 2001-07-24 Cirrus Logic, Inc. Memory manager for multi-media apparatus and method therefor
KR100300972B1 (ko) * 1997-09-19 2001-09-03 윤종용 텍스춰매핑수행장치및텍스춰캐시의데이터억세스방법
US6199126B1 (en) * 1997-09-23 2001-03-06 International Business Machines Corporation Processor transparent on-the-fly instruction stream decompression
US6032197A (en) * 1997-09-25 2000-02-29 Microsoft Corporation Data packet header compression for unidirectional transmission
US6049390A (en) * 1997-11-05 2000-04-11 Barco Graphics Nv Compressed merging of raster images for high speed digital printing
JP4313873B2 (ja) * 1998-01-30 2009-08-12 キヤノン株式会社 電子機器及びデータ処理方法
US6366289B1 (en) * 1998-07-17 2002-04-02 Microsoft Corporation Method and system for managing a display image in compressed and uncompressed blocks
US6229926B1 (en) * 1998-07-24 2001-05-08 Picsurf, Inc. Memory saving wavelet-like image transform system and method for digital camera and other memory conservative applications
US6157743A (en) * 1998-07-31 2000-12-05 Hewlett Packard Company Method for retrieving compressed texture data from a memory system
JP2000090249A (ja) * 1998-09-14 2000-03-31 Fujitsu Ltd 画像処理装置および画像処理方法およびコンピュータを画像処理装置として動作させるためのプログラムが記録されたコンピュータ読み取り可能な記録媒体
US6768774B1 (en) * 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US6853385B1 (en) * 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
GB2343808B (en) * 1998-11-13 2001-01-03 Acorn Computers Ltd Burst mode memory fetches when decoding compressed image data
US6279092B1 (en) * 1999-01-06 2001-08-21 International Business Machines Corporation Kernel identification for space management in compressed memory systems
US20010054131A1 (en) * 1999-01-29 2001-12-20 Alvarez Manuel J. System and method for perfoming scalable embedded parallel data compression
US6362824B1 (en) * 1999-01-29 2002-03-26 Hewlett-Packard Company System-wide texture offset addressing with page residence indicators for improved performance
US6313767B1 (en) * 1999-02-19 2001-11-06 Canon Kabushiki Kaisha Decoding apparatus and method
US6192051B1 (en) * 1999-02-26 2001-02-20 Redstone Communications, Inc. Network router search engine using compressed tree forwarding table
KR100296049B1 (ko) * 1999-03-19 2001-07-28 윤종용 단문메시지서비스를 통한 디지털 휴대용 단말기의 사용자 정보 송수신장치 및 그 방법
JP2000305822A (ja) * 1999-04-26 2000-11-02 Denso Corp データベース管理装置,データベースレコード抽出装置,データベース管理方法及びデータベースレコード抽出方法
US6349372B1 (en) * 1999-05-19 2002-02-19 International Business Machines Corporation Virtual uncompressed cache for compressed main memory
US6446189B1 (en) * 1999-06-01 2002-09-03 Advanced Micro Devices, Inc. Computer system including a novel address translation mechanism
US8913667B2 (en) * 1999-11-09 2014-12-16 Broadcom Corporation Video decoding system having a programmable variable-length decoder
US7050639B1 (en) * 1999-11-24 2006-05-23 General Electric Company Image data compression employing multiple compression code tables
US6779100B1 (en) * 1999-12-17 2004-08-17 Hewlett-Packard Development Company, L.P. Method and device for address translation for compressed instructions
US6973562B1 (en) * 2000-01-14 2005-12-06 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US6515673B1 (en) * 2000-02-16 2003-02-04 Enroute, Inc. Displaying immersive videos using tiled decompression
US6897858B1 (en) * 2000-02-16 2005-05-24 Enroute, Inc. Partial image decompression of a tiled image
US6993074B2 (en) * 2000-03-24 2006-01-31 Microsoft Corporation Methods and arrangements for handling concentric mosaic image data
US6553457B1 (en) 2000-04-19 2003-04-22 Western Digital Technologies, Inc. Tag memory disk cache architecture
US6484228B2 (en) * 2000-04-19 2002-11-19 Motorola, Inc. Method and apparatus for data compression and decompression for a data processor system
US7525677B2 (en) * 2000-05-23 2009-04-28 Silverbrook Research Pty Ltd Inkjet printer having image decoding controller
AU2000247250B2 (en) * 2000-05-24 2004-03-25 Memjet Technology Limited Print engine/controller with color mask
US6557083B1 (en) * 2000-06-30 2003-04-29 Intel Corporation Memory system for multiple data types
US7039241B1 (en) * 2000-08-11 2006-05-02 Ati Technologies, Inc. Method and apparatus for compression and decompression of color data
US6728722B1 (en) 2000-08-28 2004-04-27 Sun Microsystems, Inc. General data structure for describing logical data spaces
US20020049586A1 (en) * 2000-09-11 2002-04-25 Kousuke Nishio Audio encoder, audio decoder, and broadcasting system
US6779088B1 (en) * 2000-10-24 2004-08-17 International Business Machines Corporation Virtual uncompressed cache size control in compressed memory systems
US7224840B2 (en) * 2000-10-26 2007-05-29 International Business Machines Corporation Method, system, and program for error recovery while decoding compressed data
US6539460B2 (en) * 2001-01-19 2003-03-25 International Business Machines Corporation System and method for storing data sectors with header and trailer information in a disk cache supporting memory compression
US7929610B2 (en) * 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
DE10127198A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten
US7024545B1 (en) * 2001-07-24 2006-04-04 Advanced Micro Devices, Inc. Hybrid branch prediction device with two levels of branch prediction cache
US6983017B2 (en) * 2001-08-20 2006-01-03 Broadcom Corporation Method and apparatus for implementing reduced memory mode for high-definition television
US7149350B2 (en) * 2001-09-19 2006-12-12 Kabushiki Kaisha Toshiba Image compression apparatus, image depression apparatus and method thereof
US6801904B2 (en) * 2001-10-19 2004-10-05 Microsoft Corporation System for keyword based searching over relational databases
KR100418437B1 (ko) * 2001-12-24 2004-02-14 (주)씨앤에스 테크놀로지 멀티미디어 신호처리를 위한 영상복원 프로세서
US7681013B1 (en) * 2001-12-31 2010-03-16 Apple Inc. Method for variable length decoding using multiple configurable look-up tables
US7034849B1 (en) * 2001-12-31 2006-04-25 Apple Computer, Inc. Method and apparatus for image blending
US6640283B2 (en) * 2002-01-16 2003-10-28 Hewlett-Packard Development Company, L.P. Apparatus for cache compression engine for data compression of on-chip caches to increase effective cache size
US6931159B2 (en) * 2002-02-28 2005-08-16 Nokia Corporation Size reduction method and device for compressed images
US6963613B2 (en) * 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
US6795897B2 (en) * 2002-05-15 2004-09-21 International Business Machines Corporation Selective memory controller access path for directory caching
US7039769B2 (en) * 2002-05-30 2006-05-02 International Business Machines Corporation Direct addressed shared compressed memory system
US7158990B1 (en) * 2002-05-31 2007-01-02 Oracle International Corporation Methods and apparatus for data conversion
US7010665B1 (en) * 2002-06-27 2006-03-07 Intel Corporation Method and apparatus for decompressing relative addresses
JP3749507B2 (ja) * 2002-07-01 2006-03-01 株式会社ルネサステクノロジ 圧縮コードを処理するマイクロコントローラ
US7136417B2 (en) * 2002-07-15 2006-11-14 Scientific-Atlanta, Inc. Chroma conversion optimization
US7103722B2 (en) * 2002-07-22 2006-09-05 International Business Machines Corporation Cache configuration for compressed memory systems
US6968424B1 (en) * 2002-08-07 2005-11-22 Nvidia Corporation Method and system for transparent compressed memory paging in a computer system
US20040046765A1 (en) * 2002-09-06 2004-03-11 Laurent Lefebvre Gradient noise engine with shared memory
US7242400B2 (en) * 2002-11-13 2007-07-10 Ati Technologies Ulc Compression and decompression of data using plane equations
GB2395307A (en) * 2002-11-15 2004-05-19 Quadrics Ltd Virtual to physical memory mapping in network interfaces
US7203935B2 (en) * 2002-12-05 2007-04-10 Nec Corporation Hardware/software platform for rapid prototyping of code compression technologies
US8661496B2 (en) * 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US8893207B2 (en) * 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US9314691B2 (en) * 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US6956507B2 (en) * 2002-12-12 2005-10-18 International Business Machines Corporation Method and apparatus for morphing memory compressed machines
JP2004221998A (ja) * 2003-01-15 2004-08-05 Canon Inc 画像処理装置
US7643679B2 (en) * 2003-02-13 2010-01-05 Ati Technologies Ulc Method and apparatus for block based image compression with multiple non-uniform block encodings
US20050010811A1 (en) * 2003-06-16 2005-01-13 Zimmer Vincent J. Method and system to support network port authentication from out-of-band firmware
US7171051B1 (en) * 2003-06-17 2007-01-30 Nvidia Corporation Method and apparatus for performing fixed blocksize compression for texture mapping
US20050060421A1 (en) * 2003-07-16 2005-03-17 Musunuri Chowdhary V. System and method for providing immersive visualization at low bandwidth rates
US7738554B2 (en) * 2003-07-18 2010-06-15 Microsoft Corporation DC coefficient signaling at small quantization step sizes
US7202872B2 (en) * 2003-10-29 2007-04-10 Via Technologies, Inc. Apparatus for compressing data in a bit stream or bit pattern
US7512616B2 (en) * 2003-11-20 2009-03-31 International Business Machines Corporation Apparatus, system, and method for communicating a binary code image
US9218689B1 (en) * 2003-12-31 2015-12-22 Zilabs Inc., Ltd. Multi-sample antialiasing optimization via edge tracking
US7257693B2 (en) * 2004-01-15 2007-08-14 Intel Corporation Multi-processor computing system that employs compressed cache lines' worth of information and processor capable of use in said system
US20050219252A1 (en) * 2004-03-30 2005-10-06 Buxton Mark J Two-dimensional buffer, texture and frame buffer decompression
US7385607B2 (en) * 2004-04-12 2008-06-10 Nvidia Corporation Scalable shader architecture
US7154500B2 (en) * 2004-04-20 2006-12-26 The Chinese University Of Hong Kong Block-based fragment filtration with feasible multi-GPU acceleration for real-time volume rendering on conventional personal computer
JP4044069B2 (ja) * 2004-04-23 2008-02-06 株式会社ソニー・コンピュータエンタテインメント テクスチャ処理装置、テクスチャ処理方法および画像処理装置
TWI237996B (en) * 2004-05-12 2005-08-11 Sunplus Technology Co Ltd Method and apparatus of block decoding for longitudinal decoding/outputting
US20070083491A1 (en) * 2004-05-27 2007-04-12 Silverbrook Research Pty Ltd Storage of key in non-volatile memory
US20060294312A1 (en) * 2004-05-27 2006-12-28 Silverbrook Research Pty Ltd Generation sequences
GB2415269B (en) * 2004-06-15 2007-07-25 Advanced Risc Mach Ltd Program instruction decompression and compression techniques
US7302543B2 (en) * 2004-06-16 2007-11-27 Nec Laboratories America, Inc. Compressed memory architecture for embedded systems
US7382368B1 (en) * 2004-06-28 2008-06-03 Nvidia Corporation Planar z representation for z compression
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
US9098932B2 (en) * 2004-08-11 2015-08-04 Ati Technologies Ulc Graphics processing logic with variable arithmetic logic unit control and method therefor
US7577869B2 (en) * 2004-08-11 2009-08-18 Ati Technologies Ulc Apparatus with redundant circuitry and method therefor
US7068192B1 (en) 2004-08-13 2006-06-27 Google Inc. System and method for encoding and decoding variable-length data
US7277098B2 (en) * 2004-08-23 2007-10-02 Via Technologies, Inc. Apparatus and method of an improved stencil shadow volume operation
US7587572B1 (en) * 2004-08-31 2009-09-08 Sun Microsystems, Inc. Method and system for managing process memory configured in resizable uncompressed and compressed regions
US7339590B1 (en) * 2004-09-02 2008-03-04 Nvidia Corporation Vertex processing unit supporting vertex texture mapping
US6972769B1 (en) * 2004-09-02 2005-12-06 Nvidia Corporation Vertex texture cache returning hits out of order
US7526607B1 (en) * 2004-09-23 2009-04-28 Juniper Networks, Inc. Network acceleration and long-distance pattern detection using improved caching and disk mapping
US7620953B1 (en) * 2004-10-05 2009-11-17 Azul Systems, Inc. System and method for allocating resources of a core space among a plurality of core virtual machines
US7669202B1 (en) * 2004-10-05 2010-02-23 Azul Systems, Inc. Resource management
US7742199B2 (en) * 2004-10-06 2010-06-22 Kabushiki Kaisha Toshiba System and method for compressing and rotating image data
US7358975B2 (en) * 2004-11-02 2008-04-15 Microsoft Corporation Texture-based packing, such as for packing 8-bit pixels into one bit
US7457940B2 (en) * 2004-11-16 2008-11-25 International Business Machines Corporation System and method for managing data
WO2006054667A1 (ja) * 2004-11-17 2006-05-26 National University Corporation Shizuoka University データ圧縮伸張方法、プログラム及び装置
US7702875B1 (en) * 2004-11-18 2010-04-20 Sun Microsystems, Inc. System and method for memory compression
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US7352752B2 (en) * 2004-11-29 2008-04-01 Agere Systems Inc. Frame mapping scheduler with compressed mapping table
US9280473B2 (en) * 2004-12-02 2016-03-08 Intel Corporation Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner
US7813432B2 (en) * 2004-12-30 2010-10-12 Intel Corporation Offset buffer for intra-prediction of digital video
US7548244B2 (en) * 2005-01-12 2009-06-16 Sony Computer Entertainment Inc. Interactive debugging and monitoring of shader programs executing on a graphics processor
US7183950B2 (en) * 2005-02-07 2007-02-27 Fuji Photo Film Co., Ltd. Data compression apparatus, and data compression program storage medium
US8065354B1 (en) * 2005-03-04 2011-11-22 Nvidia Corporation Compression of 16 bit data using predictor values
US7324113B1 (en) * 2005-03-09 2008-01-29 Nvidia Corporation Perspective correction computation optimization
US8311091B1 (en) * 2005-06-03 2012-11-13 Visualon, Inc. Cache optimization for video codecs and video filters or color converters
US7965773B1 (en) * 2005-06-30 2011-06-21 Advanced Micro Devices, Inc. Macroblock cache
US20070005625A1 (en) * 2005-07-01 2007-01-04 Nec Laboratories America, Inc. Storage architecture for embedded systems
US7594098B2 (en) * 2005-07-01 2009-09-22 Stmicroelectronics, Sa Processes and devices for compression and decompression of executable code by a microprocessor with RISC architecture and related system
US20070018979A1 (en) * 2005-07-25 2007-01-25 Texas Instruments Incorporated Video decoding with 3d graphics shaders
US7565018B2 (en) * 2005-08-12 2009-07-21 Microsoft Corporation Adaptive coding and decoding of wide-range coefficients
US8599925B2 (en) * 2005-08-12 2013-12-03 Microsoft Corporation Efficient coding and decoding of transform blocks
JP4682102B2 (ja) * 2005-09-02 2011-05-11 キヤノン株式会社 画像符号化装置及び画像符号化方法
US20070091088A1 (en) * 2005-10-14 2007-04-26 Via Technologies, Inc. System and method for managing the computation of graphics shading operations
US8144149B2 (en) * 2005-10-14 2012-03-27 Via Technologies, Inc. System and method for dynamically load balancing multiple shader stages in a shared pool of processing units
US7932914B1 (en) * 2005-10-20 2011-04-26 Nvidia Corporation Storing high dynamic range data in a low dynamic range format
CN101156176A (zh) * 2005-10-25 2008-04-02 三菱电机株式会社 图像处理装置
US7702161B2 (en) * 2005-10-28 2010-04-20 Aspeed Technology Inc. Progressive differential motion JPEG codec
JP4307435B2 (ja) * 2005-11-14 2009-08-05 シャープ株式会社 画像データ保存装置、複写機、画像形成システム、および画像データ保存方法
US7899990B2 (en) * 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
US7932912B1 (en) * 2006-10-04 2011-04-26 Nvidia Corporation Frame buffer tag addressing for partitioned graphics memory supporting non-power of two number of memory elements
US7385611B1 (en) * 2005-12-07 2008-06-10 Nvidia Corporation Decompression of block encoded texture data
US7925907B1 (en) * 2005-12-12 2011-04-12 Nvidia Corporation Using non-lossless compression to save power
TW200726260A (en) * 2005-12-22 2007-07-01 Sunplus Technology Co Ltd Block decoding method and device capable of longitudinally decoding and outputting
US7683943B2 (en) * 2005-12-22 2010-03-23 Canon Kabushiki Kaisha Image recording apparatus, image reproducing apparatus, method of controlling image recording apparatus, method of controlling image reproducing apparatus, computer program, and recording medium
WO2007076894A1 (en) * 2005-12-30 2007-07-12 Telecom Italia S.P.A. Contour finding in segmentation of video sequences
US7512767B2 (en) * 2006-01-04 2009-03-31 Sony Ericsson Mobile Communications Ab Data compression method for supporting virtual memory management in a demand paging system
US7877565B1 (en) * 2006-01-31 2011-01-25 Nvidia Corporation Constant versioning for multi-threaded processing
JP2007203524A (ja) * 2006-01-31 2007-08-16 Fujifilm Corp プリンタ、プリント方法およびプリントプログラム
US8094158B1 (en) * 2006-01-31 2012-01-10 Nvidia Corporation Using programmable constant buffers for multi-threaded processing
EP2677328B1 (en) * 2006-02-17 2015-07-29 Mentor Graphics Corporation Multi-stage test response compactors
US7849241B2 (en) * 2006-03-23 2010-12-07 International Business Machines Corporation Memory compression method and apparatus for heterogeneous processor architectures in an information handling system
US8085171B2 (en) * 2006-03-24 2011-12-27 University Of Mississippi High-speed data compression based on set associative cache mapping techniques
JP2009531976A (ja) * 2006-03-24 2009-09-03 ユニバーシティ オブ ミシシッピ セットアソシアティブキャッシュマッピング技術に基づく高速データ圧縮
US7554557B2 (en) * 2006-03-28 2009-06-30 Silicon Integrated Systems Corp. Device and method for image compression and decompression
US7545382B1 (en) * 2006-03-29 2009-06-09 Nvidia Corporation Apparatus, system, and method for using page table entries in a graphics system to provide storage format information for address translation
US7965297B2 (en) * 2006-04-17 2011-06-21 Microsoft Corporation Perfect hashing of variably-sized data
JP4214532B2 (ja) * 2006-04-25 2009-01-28 セイコーエプソン株式会社 画像処理装置及び画像処理方法
US7612783B2 (en) * 2006-05-08 2009-11-03 Ati Technologies Inc. Advanced anti-aliasing with multiple graphics processing units
US7885469B2 (en) * 2006-05-22 2011-02-08 Microsoft Corporation Encoded high dynamic range textures
US20070279429A1 (en) * 2006-06-02 2007-12-06 Leonhard Ganzer System and method for rendering graphics
US7656326B2 (en) * 2006-06-08 2010-02-02 Via Technologies, Inc. Decoding of context adaptive binary arithmetic codes in computational core of programmable graphics processing unit
US7626518B2 (en) * 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding systems and methods in computational core of programmable graphics processing unit
TWI354239B (en) * 2006-06-08 2011-12-11 Via Tech Inc Decoding system unit
US7626521B2 (en) * 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding control of computational core of programmable graphics processing unit
US20080002702A1 (en) * 2006-06-30 2008-01-03 Symbol Technologies, Inc. Systems and methods for processing data packets using a multi-core abstraction layer (MCAL)
JP4194614B2 (ja) * 2006-07-18 2008-12-10 キヤノン株式会社 画像処理装置および画像処理方法と情報処理装置
US20080027892A1 (en) * 2006-07-27 2008-01-31 Kestrelink Corporation Dynamic stream file system network support
JP2008048130A (ja) * 2006-08-15 2008-02-28 Fujitsu Ltd Jpeg画像処理回路
US7962700B2 (en) * 2006-09-06 2011-06-14 International Business Machines Corporation Systems and methods for reducing latency for accessing compressed memory using stratified compressed memory architectures and organization
US8122216B2 (en) * 2006-09-06 2012-02-21 International Business Machines Corporation Systems and methods for masking latency of memory reorganization work in a compressed memory system
US8120614B2 (en) * 2006-09-21 2012-02-21 Nvidia Corporation Screen compression for mobile applications
US7999820B1 (en) * 2006-10-23 2011-08-16 Nvidia Corporation Methods and systems for reusing memory addresses in a graphics system
US7944452B1 (en) * 2006-10-23 2011-05-17 Nvidia Corporation Methods and systems for reusing memory addresses in a graphics system
US20080109795A1 (en) * 2006-11-02 2008-05-08 Nvidia Corporation C/c++ language extensions for general-purpose graphics processing unit
US8700865B1 (en) * 2006-11-02 2014-04-15 Nvidia Corporation Compressed data access system and method
TWI330473B (en) * 2006-11-24 2010-09-11 Primax Electronics Ltd Huffman decoding method
US7742646B1 (en) * 2006-12-20 2010-06-22 Nvidia Corporation Modified high dynamic range color decompression
US7920749B1 (en) * 2006-12-20 2011-04-05 Nvidia Corporation Modified high dynamic range color decompression
GB2445008B (en) * 2006-12-20 2008-12-31 Sony Comp Entertainment Europe Image compression and/or decompression
EP1939751A1 (en) * 2006-12-22 2008-07-02 Telefonaktiebolaget LM Ericsson (publ) Storing compressed data
US7512723B2 (en) * 2006-12-29 2009-03-31 Freescale Semiconductor, Inc. Queued interface devices, multi-core peripheral systems, and methods for sharing a peripheral in a multi-core system
JP5037952B2 (ja) * 2007-01-15 2012-10-03 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US20090305790A1 (en) * 2007-01-30 2009-12-10 Vitie Inc. Methods and Apparatuses of Game Appliance Execution and Rendering Service
US8458457B2 (en) * 2007-02-02 2013-06-04 Red Hat, Inc. Method and system for certificate revocation list pre-compression encoding
US8184710B2 (en) * 2007-02-21 2012-05-22 Microsoft Corporation Adaptive truncation of transform coefficient data in a transform-based digital media codec
US8421794B2 (en) * 2007-03-23 2013-04-16 Qualcomm Incorporated Processor with adaptive multi-shader
US8582656B2 (en) * 2007-04-13 2013-11-12 Apple Inc. Method and system for video encoding and decoding
US7840786B2 (en) * 2007-04-16 2010-11-23 Advanced Micro Devices, Inc. Techniques for storing instructions and related information in a memory hierarchy
US8373717B2 (en) * 2007-04-25 2013-02-12 Nvidia Corporation Utilization of symmetrical properties in rendering
US20080266287A1 (en) * 2007-04-25 2008-10-30 Nvidia Corporation Decompression of vertex data using a geometry shader
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
JP4900051B2 (ja) * 2007-05-31 2012-03-21 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8019151B2 (en) * 2007-06-11 2011-09-13 Visualization Sciences Group, Inc. Methods and apparatus for image compression and decompression using graphics processing unit (GPU)
US8085852B2 (en) * 2007-06-26 2011-12-27 Mitsubishi Electric Research Laboratories, Inc. Inverse tone mapping for bit-depth scalable image coding
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US9648325B2 (en) * 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8219508B2 (en) * 2007-07-06 2012-07-10 Lsi Corporation Systems and methods for compressing state machine instructions using a two access indexing scheme
US7698512B2 (en) * 2007-07-13 2010-04-13 Intel Corporation Compressing address communications between processors
WO2009012464A1 (en) * 2007-07-19 2009-01-22 Disney Enterprises, Inc. Methods and apparatus for multiple texture map storage and filtering
US8441487B1 (en) * 2007-07-30 2013-05-14 Nvidia Corporation Bandwidth compression for shader engine store operations
US7886116B1 (en) * 2007-07-30 2011-02-08 Nvidia Corporation Bandwidth compression for shader engine store operations
US9536275B1 (en) * 2007-07-31 2017-01-03 Nvidia Corporation Using a geometry shader for variable input and output algorithms
US7836285B2 (en) * 2007-08-08 2010-11-16 Analog Devices, Inc. Implementation of variable length instruction encoding using alias addressing
US9024957B1 (en) * 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
CN101802872B (zh) * 2007-09-12 2016-06-15 爱立信电话股份有限公司 深度缓冲器压缩
US8572429B2 (en) * 2007-10-09 2013-10-29 Cleversafe, Inc. Optimistic data writing in a dispersed storage network
US10027478B2 (en) * 2007-10-09 2018-07-17 International Business Machines Corporation Differential key backup
US8819179B2 (en) * 2007-10-09 2014-08-26 Cleversafe, Inc. Data revision synchronization in a dispersed storage network
US7728739B2 (en) * 2007-10-10 2010-06-01 Apple Inc. Entropy codec with variable divisor
US8930670B2 (en) * 2007-11-07 2015-01-06 International Business Machines Corporation Partition redispatching using page tracking
US7999819B2 (en) * 2007-11-20 2011-08-16 Via Technologies, Inc. Systems and methods for managing texture descriptors in a shared texture engine
US8174534B2 (en) 2007-12-06 2012-05-08 Via Technologies, Inc. Shader processing systems and methods
US8295621B1 (en) * 2007-12-13 2012-10-23 Nvidia Corporation Data decompression using a geometry shading unit
US8243086B1 (en) * 2007-12-13 2012-08-14 Nvidia Corporation Variable length data compression using a geometry shading unit
US8254701B1 (en) * 2007-12-13 2012-08-28 Nvidia Corporation Data compression using a geometry shading unit
US8139871B2 (en) * 2007-12-17 2012-03-20 Texas Instruments Incorporated Circuit and method for adaptive, lossless compression of successive digital data
US9665951B2 (en) * 2007-12-20 2017-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Unified compression/decompression graphics architecture
US20090169001A1 (en) * 2007-12-28 2009-07-02 Cisco Technology, Inc. System and Method for Encryption and Secure Transmission of Compressed Media
US8769207B2 (en) * 2008-01-16 2014-07-01 Via Technologies, Inc. Caching method and apparatus for a vertex shader and geometry shader
US20090193042A1 (en) * 2008-01-29 2009-07-30 International Business Machines Corporation System and computer program product for automated design of row compression on tables in a relational database
US8245011B2 (en) * 2008-02-08 2012-08-14 Texas Instruments Incorporated Method and system for geometry-based virtual memory management in a tiled virtual memory
US7984240B2 (en) * 2008-03-04 2011-07-19 International Business Machines Corporation Memory compression implementation in a system with directly attached processor memory
US8037251B2 (en) * 2008-03-04 2011-10-11 International Business Machines Corporation Memory compression implementation using non-volatile memory in a multi-node server system with directly attached processor memory
US7966455B2 (en) * 2008-03-04 2011-06-21 International Business Machines Corporation Memory compression implementation in a multi-node server system with directly attached processor memory
US7930483B2 (en) 2008-03-04 2011-04-19 International Business Machines Corporation Associativity implementation in a system with directly attached processor memory
US8208532B2 (en) * 2008-03-31 2012-06-26 Oracle America, Inc. Method and apparatus for data compression and decompression
US8120608B2 (en) * 2008-04-04 2012-02-21 Via Technologies, Inc. Constant buffering for a computational core of a programmable graphics processing unit
US8259111B2 (en) * 2008-05-30 2012-09-04 Advanced Micro Devices, Inc. Merged shader for primitive amplification
GB0810205D0 (en) * 2008-06-04 2008-07-09 Advanced Risc Mach Ltd Graphics processing systems
US8165393B2 (en) * 2008-06-05 2012-04-24 Microsoft Corp. High dynamic range texture compression
US8452111B2 (en) * 2008-06-05 2013-05-28 Microsoft Corporation Real-time compression and decompression of wavelet-compressed images
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US20090322777A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Unified texture compression framework
US8581912B2 (en) * 2008-06-27 2013-11-12 Microsoft Corporation Dynamic subroutine linkage optimizing shader performance
US8810590B2 (en) * 2008-07-11 2014-08-19 Advanced Micro Devices, Inc. Method and apparatus for spatial binning on a GPU and global path planning to avoid spatially binned objects
GB2462860B (en) * 2008-08-22 2012-05-16 Advanced Risc Mach Ltd Apparatus and method for communicating between a central processing unit and a graphics processing unit
JP4399020B1 (ja) * 2008-08-26 2010-01-13 株式会社東芝 情報処理装置およびメモリ管理方法
US9235577B2 (en) * 2008-09-04 2016-01-12 Vmware, Inc. File transfer using standard blocks and standard-block identifiers
JP5524072B2 (ja) * 2008-10-10 2014-06-18 株式会社東芝 動画像符号化装置
US8687702B2 (en) * 2008-10-27 2014-04-01 Advanced Micro Devices, Inc. Remote transmission and display of video data using standard H.264-based video codecs
AU2008249145A1 (en) * 2008-11-21 2010-06-10 Canon Kabushiki Kaisha Resolution independent image degradation
US8595437B1 (en) * 2008-11-21 2013-11-26 Nvidia Corporation Compression status bit cache with deterministic isochronous latency
US8700862B2 (en) * 2008-12-03 2014-04-15 Nvidia Corporation Compression status bit cache and backing store
US8271734B1 (en) * 2008-12-05 2012-09-18 Nvidia Corporation Method and system for converting data formats using a shared cache coupled between clients and an external memory
US8487942B2 (en) * 2008-12-15 2013-07-16 Leonovus Usa Inc. Media action script acceleration system
US7984337B2 (en) * 2009-02-19 2011-07-19 Freescale Semiconductor, Inc. Address translation trace message generation for debug
US7992052B2 (en) * 2009-02-19 2011-08-02 Freescale Semiconductor, Inc. Program correlation message generation for debug
US8645337B2 (en) * 2009-04-30 2014-02-04 Oracle International Corporation Storing compression units in relational tables
US7944375B2 (en) * 2009-06-02 2011-05-17 International Business Machines Corporation Wear reduction methods by using compression/decompression techniques with fast random access
US8412911B2 (en) * 2009-06-29 2013-04-02 Oracle America, Inc. System and method to invalidate obsolete address translations
JP2011019059A (ja) * 2009-07-08 2011-01-27 Fujifilm Corp 画像データ圧縮装置および画像データ圧縮プログラム
US8448016B2 (en) * 2009-07-31 2013-05-21 Cleversafe, Inc. Computing core application access utilizing dispersed storage
US20110029761A1 (en) * 2009-08-03 2011-02-03 Chih-Ta Star Sung Method and apparatus of reducing CPU chip size
US8854381B2 (en) * 2009-09-03 2014-10-07 Advanced Micro Devices, Inc. Processing unit that enables asynchronous task dispatch
US8310492B2 (en) * 2009-09-03 2012-11-13 Ati Technologies Ulc Hardware-based scheduling of GPU work
US9142057B2 (en) * 2009-09-03 2015-09-22 Advanced Micro Devices, Inc. Processing unit with a plurality of shader engines
US9569348B1 (en) * 2009-09-22 2017-02-14 Nvidia Corporation Method for automatic page table compression
US8341380B2 (en) * 2009-09-22 2012-12-25 Nvidia Corporation Efficient memory translator with variable size cache line coverage
WO2011041269A2 (en) * 2009-09-30 2011-04-07 Samplify Systems, Inc. Enhanced multi-processor waveform data exchange using compression and decompression
US9406149B2 (en) * 2009-10-07 2016-08-02 Nvidia Corporation Selecting and representing multiple compression methods
US8627041B2 (en) * 2009-10-09 2014-01-07 Nvidia Corporation Efficient line and page organization for compression status bit caching
US8412856B2 (en) * 2009-10-26 2013-04-02 Sony Computer Entertainment America Llc. File input/output scheduler using immediate data chunking
US8386748B2 (en) * 2009-10-29 2013-02-26 Apple Inc. Address translation unit with multiple virtual queues
US8171253B2 (en) * 2009-10-30 2012-05-01 Brocade Communications Systems, Inc. Virtual disk mapping
US8542243B2 (en) * 2009-11-19 2013-09-24 Douglas H. Rogers High-compression texture mapping
US9626248B2 (en) * 2009-11-25 2017-04-18 International Business Machines Corporation Likelihood based rebuilding of missing encoded data slices
US8520958B2 (en) * 2009-12-21 2013-08-27 Stmicroelectronics International N.V. Parallelization of variable length decoding
US9024959B2 (en) * 2009-12-21 2015-05-05 Intel Corporation Demand-paged textures
JP5528121B2 (ja) * 2010-01-05 2014-06-25 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
US8850448B2 (en) * 2010-02-11 2014-09-30 National Chiao Tung University Dynamic reconfigurable heterogeneous processor architecture with load balancing and dynamic allocation method thereof
US8503539B2 (en) * 2010-02-26 2013-08-06 Bao Tran High definition personal computer (PC) cam
US9311184B2 (en) * 2010-02-27 2016-04-12 Cleversafe, Inc. Storing raid data as encoded data slices in a dispersed storage network
US8619085B2 (en) * 2010-03-08 2013-12-31 Broadcom Corporation Method and system for compressing tile lists used for 3D rendering
US9058685B2 (en) * 2010-03-11 2015-06-16 Broadcom Corporation Method and system for controlling a 3D processor using a control list in memory
JP5533083B2 (ja) * 2010-03-16 2014-06-25 株式会社リコー データ処理装置およびデータ処理方法
US9349154B2 (en) * 2010-04-05 2016-05-24 Nvidia Corporation Bindless texture and image API
GB201007348D0 (en) * 2010-04-30 2010-06-16 Imagination Tech Ltd Programmable tessellation in a tile based rendering system
WO2011143585A1 (en) * 2010-05-14 2011-11-17 Arun Sagar Parallel processing of sequentially dependent digital data
US8698961B2 (en) * 2010-05-21 2014-04-15 Vixs Systems, Inc. Enhanced histogram equalization
US8754900B2 (en) * 2010-06-17 2014-06-17 Thinci, Inc. Processing of graphics data of a server system for transmission
KR20110138707A (ko) * 2010-06-21 2011-12-28 삼성전자주식회사 데이터 저장 장치 및 그것의 쓰기 방법
KR20120000485A (ko) * 2010-06-25 2012-01-02 삼성전자주식회사 예측 모드를 이용한 깊이 영상 부호화 장치 및 방법
JP5595151B2 (ja) * 2010-07-13 2014-09-24 キヤノン株式会社 画像処理装置、画像処理装置における圧縮方法、および、プログラム
US20120076297A1 (en) * 2010-09-24 2012-03-29 Hand Held Products, Inc. Terminal for use in associating an annotation with an image
US8527239B2 (en) * 2010-10-01 2013-09-03 Apple Inc. Automatic detection of performance bottlenecks in a graphics system
US8681162B2 (en) * 2010-10-15 2014-03-25 Via Technologies, Inc. Systems and methods for video processing
US8504744B2 (en) * 2010-10-28 2013-08-06 Alcatel Lucent Lock-less buffer management scheme for telecommunication network applications
US8468547B2 (en) * 2010-11-23 2013-06-18 Advanced Micro Devices, Inc. Method and system for synchronizing thread wavefront data and events
US8803891B2 (en) * 2010-12-13 2014-08-12 Advanced Micro Devices, Inc. Method for preempting graphics tasks to accommodate compute tasks in an accelerated processing device (APD)
WO2012082029A1 (en) * 2010-12-14 2012-06-21 Telefonaktiebolaget L M Ericsson (Publ) Method and device for storing a compression ratio indication in a pixel value buffer in tile encoding
US9014497B2 (en) * 2010-12-14 2015-04-21 Telefonaktiebolaget L M Ericsson (Publ) Tile encoding and decoding
US8892845B2 (en) * 2010-12-22 2014-11-18 Cleversafe, Inc. Segmenting data for storage in a dispersed storage network
CN102594493B (zh) * 2011-01-17 2014-08-20 华为技术有限公司 一种应答信息的编码、处理方法和装置
CN102625090B (zh) * 2011-01-26 2015-08-05 鸿富锦精密工业(深圳)有限公司 影像译码方法与使用该方法的图形处理设备
KR20120089072A (ko) * 2011-02-01 2012-08-09 삼성전자주식회사 하드웨어 요청 처리 방법 및 멀티-코어 시스템
US8440955B2 (en) * 2011-02-02 2013-05-14 Seiko Epson Corporation Method for spatial smoothing in a shader pipeline for a multi-projector display
KR101773396B1 (ko) * 2011-02-09 2017-08-31 삼성전자주식회사 데이터를 압축 해제하는 그래픽 처리 장치 및 방법
US9047686B2 (en) * 2011-02-10 2015-06-02 Qualcomm Incorporated Data storage address assignment for graphics processing
US10298684B2 (en) * 2011-04-01 2019-05-21 International Business Machines Corporation Adaptive replication of dispersed data to improve data access performance
EP2697906A1 (en) * 2011-04-11 2014-02-19 Marvell World Trade Ltd. Method for compression and real-time decompression of executable code
KR20120118779A (ko) * 2011-04-19 2012-10-29 삼성전자주식회사 전처리 필터링을 수반한 계층 간 예측을 수행하는 비디오 부호화 방법 및 그 장치, 후처리 필터링을 수반한 계층 간 예측을 수행하는 비디오 복호화 방법 및 그 장치
US8548274B2 (en) * 2011-04-29 2013-10-01 Aptina Imaging Corporation Systems and methods for efficient storage of image transformations
US8996910B2 (en) * 2011-05-09 2015-03-31 Cleversafe, Inc. Assigning a dispersed storage network address range in a maintenance free storage container
US8761537B2 (en) * 2011-05-27 2014-06-24 Vixs Systems, Inc. Adaptive edge enhancement
KR101799978B1 (ko) * 2011-06-17 2017-11-22 삼성전자주식회사 타일 근접성을 사용하는 타일 기반 렌더링 방법 및 장치
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
WO2013002554A2 (ko) * 2011-06-28 2013-01-03 삼성전자 주식회사 픽셀 분류에 따른 오프셋 조정을 이용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US20130018932A1 (en) * 2011-07-12 2013-01-17 Hughes Network Systems, Llc System and method for long range and short range data compression
US9014496B2 (en) * 2011-08-04 2015-04-21 Arm Limited Methods of and apparatus for encoding and decoding data in data processing systems
US8542939B2 (en) * 2011-08-04 2013-09-24 Arm Limited Methods of and apparatus for using tree representations for representing arrays of data elements for encoding and decoding data in data processing systems
US8682091B2 (en) * 2011-08-18 2014-03-25 International Business Machines Corporation Real-time image compression
US20130054836A1 (en) * 2011-08-24 2013-02-28 Raphael Linus Levien System and Method for Improved Compression with Arithmetic Encoding by Shared Initial
US8941655B2 (en) * 2011-09-07 2015-01-27 Qualcomm Incorporated Memory copy engine for graphics processing
US10310879B2 (en) * 2011-10-10 2019-06-04 Nvidia Corporation Paravirtualized virtual GPU
US9143802B2 (en) * 2011-10-31 2015-09-22 Qualcomm Incorporated Fragmented parameter set for video coding
US9547747B2 (en) * 2011-12-08 2017-01-17 Futurewei Technologies, Inc. Distributed internet protocol network analysis model with real time response performance
GB2526943B (en) * 2011-12-20 2016-04-27 Imagination Tech Ltd Method and apparatus for compressing and decompressing data
US9530245B2 (en) * 2011-12-29 2016-12-27 Qualcomm Incorporated Packing multiple shader programs onto a graphics processor
US8914706B2 (en) * 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8751830B2 (en) * 2012-01-23 2014-06-10 International Business Machines Corporation Memory address translation-based data encryption/compression
AU2012201684A1 (en) * 2012-03-21 2013-10-10 Canon Kabushiki Kaisha Image compression
US9026568B2 (en) * 2012-03-30 2015-05-05 Altera Corporation Data compression for direct memory access transfers
US8909608B2 (en) * 2012-06-14 2014-12-09 International Business Machines Corporation Reducing decompression latency in a compression storage system
US9424685B2 (en) * 2012-07-31 2016-08-23 Imagination Technologies Limited Unified rasterization and ray tracing rendering environments
US8982124B2 (en) * 2012-09-29 2015-03-17 Intel Corporation Load balancing and merging of tessellation thread workloads
US9606961B2 (en) * 2012-10-30 2017-03-28 Intel Corporation Instruction and logic to provide vector compress and rotate functionality
US9129416B2 (en) * 2012-11-14 2015-09-08 Microsoft Technology Licensing, Llc Digital art undo and redo
US10699361B2 (en) * 2012-11-21 2020-06-30 Ati Technologies Ulc Method and apparatus for enhanced processing of three dimensional (3D) graphics data
US9083977B2 (en) * 2012-11-27 2015-07-14 Omnivision Technologies, Inc. System and method for randomly accessing compressed data from memory
US8693490B1 (en) * 2012-12-20 2014-04-08 Unbound Networks, Inc. Parallel processing using multi-core processor
CN104756068B (zh) * 2012-12-26 2018-08-17 英特尔公司 合并相邻的聚集/分散操作
US10565099B2 (en) * 2012-12-28 2020-02-18 Apple Inc. Methods and apparatus for compressed and compacted virtual memory
US9734598B2 (en) * 2013-01-15 2017-08-15 Microsoft Technology Licensing, Llc Engine for streaming virtual textures
US9407920B2 (en) * 2013-01-22 2016-08-02 Vixs Systems, Inc. Video processor with reduced memory bandwidth and methods for use therewith
US9996325B2 (en) * 2013-03-06 2018-06-12 Qualcomm Incorporated Dynamic reconfigurable compiler
US9142040B2 (en) * 2013-03-15 2015-09-22 Nvidia Corporation System, method, and computer program product for processing graphics data associated with shading
US9880842B2 (en) * 2013-03-15 2018-01-30 Intel Corporation Using control flow data structures to direct and track instruction execution
US9430384B2 (en) * 2013-03-31 2016-08-30 Intel Corporation Instructions and logic to provide advanced paging capabilities for secure enclave page caches
US9213640B2 (en) * 2013-04-17 2015-12-15 Advanced Micro Devices, Inc. Promoting transactions hitting critical beat of cache line load requests
WO2014188528A1 (ja) * 2013-05-22 2014-11-27 株式会社日立製作所 メモリ装置、計算機システム及びメモリ装置の制御方法
US9324163B2 (en) * 2013-05-30 2016-04-26 Arm Limited Methods of and apparatus for compressing depth data
US9274951B2 (en) * 2013-05-31 2016-03-01 Altera Corporation Cache memory controller for accelerated data transfer
US9612949B2 (en) * 2013-06-13 2017-04-04 Arm Limited Memory allocation in a multi-core processing system based on a threshold amount of memory
US9348834B2 (en) * 2013-07-03 2016-05-24 International Business Machines Corporation Effective method to compress tabular data export files for data movement
US11132300B2 (en) * 2013-07-11 2021-09-28 Advanced Micro Devices, Inc. Memory hierarchy using page-based compression
US9477605B2 (en) * 2013-07-11 2016-10-25 Advanced Micro Devices, Inc. Memory hierarchy using row-based compression
US10649775B2 (en) * 2013-07-15 2020-05-12 Texas Instrum Ents Incorporated Converting a stream of data using a lookaside buffer
KR102072656B1 (ko) * 2013-07-16 2020-02-03 삼성전자 주식회사 캐시를 포함하는 테셀레이션 장치, 그의 동작 방법, 및 상기 장치를 포함하는 시스템
US9495155B2 (en) * 2013-08-06 2016-11-15 Intel Corporation Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment
US9934043B2 (en) * 2013-08-08 2018-04-03 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing computational imaging pipeline
US9396515B2 (en) * 2013-08-16 2016-07-19 Nvidia Corporation Rendering using multiple render target sample masks
US8982655B1 (en) * 2013-08-21 2015-03-17 Via Technologies, Inc. Apparatus and method for compression and decompression of microprocessor configuration data
US9665542B2 (en) * 2013-09-05 2017-05-30 Texas Instruments Incorporated Determining median value of an array on vector SIMD architectures
US9418397B2 (en) * 2013-10-25 2016-08-16 Harman International Industries, Incorporated Start-up processing task distribution among processing units
US10121263B2 (en) * 2013-10-31 2018-11-06 Uc Mobile Co., Ltd. Methods and devices for image loading and methods and devices for video playback
US9398297B2 (en) * 2013-11-04 2016-07-19 Intel Corporation Integral image coding
US9159114B2 (en) * 2013-11-08 2015-10-13 Qualcomm Incorporated Texture decompression for graphics processors
US9916248B2 (en) * 2013-12-12 2018-03-13 Hitachi, Ltd. Storage device and method for controlling storage device with compressed and uncompressed volumes and storing compressed data in cache
CN104714846B (zh) * 2013-12-17 2018-06-05 华为技术有限公司 资源处理方法、操作系统及设备
US9767529B1 (en) * 2013-12-18 2017-09-19 Mediatek Inc. Method and apparatus for accessing compressed data and/or uncompressed data of image frame in frame buffer
US9292449B2 (en) * 2013-12-20 2016-03-22 Intel Corporation Cache memory data compression and decompression
WO2015121912A1 (ja) * 2014-02-12 2015-08-20 株式会社日立製作所 データ記憶装置
US9612833B2 (en) * 2014-02-28 2017-04-04 Intel Corporation Handling compressed data over distributed cache fabric
US9852522B2 (en) * 2014-03-17 2017-12-26 Sony Interactive Entertainment Inc. Image decoder, graphics processing system, image decoding method, and graphics processing method
US10572378B2 (en) * 2014-03-20 2020-02-25 Hewlett Packard Enterprise Development Lp Dynamic memory expansion by data compression
US9483264B2 (en) * 2014-05-09 2016-11-01 Samsung Electronics Co., Ltd. Trace-based instruction execution processing
US9606933B2 (en) * 2014-05-22 2017-03-28 Via Alliance Semiconductor Co., Ltd. Multi-core apparatus and method for restoring data arrays following a power gating event
US9395802B2 (en) * 2014-05-22 2016-07-19 Via Alliance Semiconductor Co., Ltd. Multi-core data array power gating restoral mechanism
US9665490B2 (en) * 2014-05-22 2017-05-30 Via Alliance Semiconductor Co., Ltd. Apparatus and method for repairing cache arrays in a multi-core microprocessor
US9306596B2 (en) * 2014-06-27 2016-04-05 Intel Corporation Hybrid CAM assisted deflate decompression accelerator
US10061592B2 (en) * 2014-06-27 2018-08-28 Samsung Electronics Co., Ltd. Architecture and execution for efficient mixed precision computations in single instruction multiple data/thread (SIMD/T) devices
US20150379682A1 (en) * 2014-06-27 2015-12-31 Samsung Electronics Co., Ltd. Vertex attribute data compression with random access using hardware
US9947071B2 (en) * 2014-06-27 2018-04-17 Samsung Electronics Co., Ltd. Texture pipeline with online variable rate dictionary compression
US10061591B2 (en) * 2014-06-27 2018-08-28 Samsung Electronics Company, Ltd. Redundancy elimination in single instruction multiple data/thread (SIMD/T) execution processing
US9785565B2 (en) * 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
WO2016004185A1 (en) * 2014-07-02 2016-01-07 OptCTS, Inc. Data recovery utilizing optimized code table signaling
US20160035128A1 (en) * 2014-08-03 2016-02-04 Mediatek Singapore Pte. Ltd. Graphics processing system for performing deferred vertex attribute shading based on split vertex bitstreams and related graphics processing method
US9858196B2 (en) * 2014-08-19 2018-01-02 Qualcomm Incorporated Power aware padding
US9612971B2 (en) * 2014-08-19 2017-04-04 Qualcomm Incorporated Supplemental write cache command for bandwidth compression
KR20160032597A (ko) * 2014-09-16 2016-03-24 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치
KR102245137B1 (ko) * 2014-09-17 2021-04-28 삼성전자 주식회사 렌더링 데이터의 압축을 해제하는 장치, 방법 및 기록매체
US9824412B2 (en) * 2014-09-24 2017-11-21 Intel Corporation Position-only shading pipeline
WO2016048176A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Method and apparatus for filtering compressed textures
US20160092371A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Method and Apparatus For Deterministic Translation Lookaside Buffer (TLB) Miss Handling
US20160117246A1 (en) * 2014-10-27 2016-04-28 Thomson Licensing Method and apparatus for cross-core covert channel
KR102258100B1 (ko) * 2014-11-18 2021-05-28 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US9697219B1 (en) * 2014-12-29 2017-07-04 EMC IP Holding Company LLC Managing log transactions in storage systems
GB2538218B (en) * 2015-02-11 2021-06-30 Leo Greenfield Daniel System and method for compressing data using asymmetric numeral systems with probability distributions
CN107250991B (zh) * 2015-02-13 2020-08-28 谷歌有限责任公司 透明硬件辅助存储器解压缩
US10909078B2 (en) * 2015-02-25 2021-02-02 International Business Machines Corporation Query predicate evaluation and computation for hierarchically compressed data
US20160260246A1 (en) * 2015-03-02 2016-09-08 Advanced Micro Devices, Inc. Providing asynchronous display shader functionality on a shared shader core
US20160283390A1 (en) * 2015-03-27 2016-09-29 Intel Corporation Storage cache performance by using compressibility of the data as a criteria for cache insertion
US9836869B2 (en) * 2015-04-01 2017-12-05 Mediatek Inc. Graphics-processing method of a graphics-processing unit and graphics-processing apparatus
US10037270B2 (en) * 2015-04-14 2018-07-31 Microsoft Technology Licensing, Llc Reducing memory commit charge when compressing memory
GB2538055B (en) * 2015-04-28 2017-04-19 Advanced Risc Mach Ltd Data processing apparatus having a cache
GB2538054B (en) * 2015-04-28 2017-09-13 Advanced Risc Mach Ltd Data processing apparatus, controller, cache and method
US9720617B2 (en) * 2015-06-02 2017-08-01 Apple Inc. System and method for compaction of compressed and uncompressed virtual memory
JP6494439B2 (ja) * 2015-06-05 2019-04-03 キヤノン株式会社 通信装置およびその制御方法
US10140033B2 (en) * 2015-06-15 2018-11-27 Xitore, Inc. Apparatus, system, and method for searching compressed data
US9786026B2 (en) * 2015-06-15 2017-10-10 Microsoft Technology Licensing, Llc Asynchronous translation of computer program resources in graphics processing unit emulation
US9779023B1 (en) * 2015-06-30 2017-10-03 EMC IP Holding Company LLC Storing inline-compressed data in segments of contiguous physical blocks
KR102444240B1 (ko) * 2015-07-29 2022-09-16 삼성전자주식회사 텍스쳐 처리 방법 및 장치
US9258013B1 (en) * 2015-09-01 2016-02-09 Rockwell Collins, Inc. Data compression with Huffman code on multicore processors
US9419648B1 (en) * 2015-09-18 2016-08-16 Intel Corporation Supporting data compression using match scoring
KR102477264B1 (ko) * 2015-09-22 2022-12-13 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치
US9537504B1 (en) * 2015-09-25 2017-01-03 Intel Corporation Heterogeneous compression architecture for optimized compression ratio
US9921986B2 (en) * 2015-10-27 2018-03-20 International Business Machines Corporation Suspend and resume in a time shared coprocessor
US10534724B2 (en) * 2015-12-24 2020-01-14 Intel Corporation Instructions and logic to suspend/resume migration of enclaves in a secure enclave page cache
US10649810B2 (en) * 2015-12-28 2020-05-12 Advanced Micro Devices, Inc. Data driven scheduler on multiple computing cores
JP6672020B2 (ja) * 2016-03-04 2020-03-25 キヤノン株式会社 画像形成装置及び画像形成装置の制御方法
US10181176B2 (en) * 2016-03-04 2019-01-15 Samsung Electronics Co., Ltd. Efficient low-power texture cache architecture
GB2543866B (en) * 2016-03-07 2017-11-01 Imagination Tech Ltd Task assembly for SIMD processing
US9823854B2 (en) * 2016-03-18 2017-11-21 Qualcomm Incorporated Priority-based access of compressed memory lines in memory in a processor-based system
US10453169B2 (en) * 2016-03-28 2019-10-22 Intel Corporation Method and apparatus for multi format lossless compression
US9959590B2 (en) * 2016-03-30 2018-05-01 Intel Corporation System and method of caching for pixel synchronization-based graphics techniques
US20170344485A1 (en) * 2016-05-25 2017-11-30 International Business Machines Corporation Heterogeneous runahead core for data analytics
US20170371797A1 (en) * 2016-06-24 2017-12-28 Qualcomm Incorporated Pre-fetch mechanism for compressed memory lines in a processor-based system
US10482021B2 (en) * 2016-06-24 2019-11-19 Qualcomm Incorporated Priority-based storage and access of compressed memory lines in memory in a processor-based system
US10248876B2 (en) * 2016-06-27 2019-04-02 Texas Instruments Incorporated Method and apparatus for avoiding non-aligned loads using multiple copies of input data
US10795684B2 (en) * 2016-07-01 2020-10-06 Intel Corporation Method and logic for maintaining performance counters with dynamic frequencies
US10002456B2 (en) * 2016-07-08 2018-06-19 Wargaming.Net Limited Water surface rendering in virtual environment
US10193762B2 (en) * 2016-08-11 2019-01-29 Rescale, Inc. Dynamic optimization of simulation resources
TWI597979B (zh) * 2016-08-19 2017-09-01 晨星半導體股份有限公司 與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置
US20180060235A1 (en) * 2016-08-30 2018-03-01 Intel Corporation Non-volatile memory compression devices and associated methods and systems
US10540178B2 (en) * 2016-09-14 2020-01-21 Intel Corporation Eliminating redundant stores using a protection designator and a clear designator
CN107846597B (zh) * 2016-09-20 2019-12-10 上海澜至半导体有限公司 用于视频解码器的数据缓存方法和装置
US10096081B2 (en) * 2016-09-20 2018-10-09 Advanced Micro Devices, Inc. Adaptive filtering of packets in a graphics processing system
US10460513B2 (en) * 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
US10719447B2 (en) * 2016-09-26 2020-07-21 Intel Corporation Cache and compression interoperability in a graphics processor pipeline
US10048868B2 (en) * 2016-09-29 2018-08-14 Intel Corporation Replacement of a block with a compressed block to increase capacity of a memory-side cache
US10474526B2 (en) * 2016-09-30 2019-11-12 Intel Corporation System and method for granular in-field cache repair
US11197010B2 (en) * 2016-10-07 2021-12-07 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple CPU threads
US10418002B2 (en) * 2016-10-18 2019-09-17 Mediatek Inc. Merged access units in frame buffer compression
US10664942B2 (en) * 2016-10-21 2020-05-26 Advanced Micro Devices, Inc. Reconfigurable virtual graphics and compute processor pipeline
US10282889B2 (en) * 2016-11-29 2019-05-07 Samsung Electronics Co., Ltd. Vertex attribute compression and decompression in hardware
US10296464B2 (en) * 2016-12-09 2019-05-21 Intel Corporation System, apparatus and method for dynamic profiling in a processor
US10198789B2 (en) * 2016-12-13 2019-02-05 Advanced Micro Devices, Inc. Out-of-order cache returns
US10026145B2 (en) * 2016-12-13 2018-07-17 Qualcomm Incorporated Resource sharing on shader processor of GPU
US10445902B2 (en) * 2016-12-13 2019-10-15 Qualcomm Incorporated Fetch reduction for fixed color and pattern sub-frames
US20180173623A1 (en) * 2016-12-21 2018-06-21 Qualcomm Incorporated Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations
US10535178B2 (en) * 2016-12-22 2020-01-14 Advanced Micro Devices, Inc. Shader writes to compressed resources
US10366026B1 (en) * 2016-12-23 2019-07-30 Amazon Technologies, Inc. Random access to decompressed blocks
US10346943B2 (en) * 2017-01-03 2019-07-09 Microsoft Technology Licensing, Llc Prefetching for a graphics shader
US10061698B2 (en) * 2017-01-31 2018-08-28 Qualcomm Incorporated Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur
US10198362B2 (en) * 2017-02-07 2019-02-05 Qualcomm Incorporated Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems
US10489297B2 (en) * 2017-02-22 2019-11-26 Intel Corporation Prefetching time allocation
US10319063B2 (en) * 2017-02-24 2019-06-11 Ati Technologies Ulc System and method for compacting compressed graphics streams for transfer between GPUs
US10353591B2 (en) * 2017-02-24 2019-07-16 Advanced Micro Devices, Inc. Fused shader programs
US9912957B1 (en) * 2017-04-01 2018-03-06 Intel Corporation Lossless compression for multisample render targets alongside fragment compression
US10649524B2 (en) * 2017-04-07 2020-05-12 Intel Corporation Apparatus and method for foveated rendering, bin comparison and TBIMR memory-backed storage for virtual reality implementations
US10387992B2 (en) * 2017-04-07 2019-08-20 Intel Corporation Apparatus and method for dynamic provisioning, quality of service, and prioritization in a graphics processor
US10460415B2 (en) * 2017-04-10 2019-10-29 Intel Corporation Contextual configuration adjuster for graphics
US11030713B2 (en) * 2017-04-10 2021-06-08 Intel Corporation Extended local memory including compressed on-chip vertex data
US10262388B2 (en) * 2017-04-10 2019-04-16 Intel Corporation Frequent data value compression for graphics processing units
US10255891B2 (en) * 2017-04-12 2019-04-09 Microsoft Technology Licensing, Llc No miss cache structure for real-time image transformations with multiple LSR processing engines
US10846918B2 (en) * 2017-04-17 2020-11-24 Intel Corporation Stereoscopic rendering with compression
US10134115B2 (en) * 2017-04-17 2018-11-20 Intel Corporation Progressive multisample anti-aliasing
US10297047B2 (en) * 2017-04-21 2019-05-21 Intel Corporation Interleaved multisample render targets for lossless compression
US10706616B2 (en) * 2017-04-21 2020-07-07 Intel Corporation Fragment compression for coarse pixel shading
US10242496B2 (en) * 2017-04-24 2019-03-26 Intel Corporation Adaptive sub-patches system, apparatus and method
US10169246B2 (en) * 2017-05-11 2019-01-01 Qualcomm Incorporated Reducing metadata size in compressed memory systems of processor-based systems
US10311016B2 (en) * 2017-05-30 2019-06-04 Arm Limited Hidden surface removal in graphics processing systems
US10331558B2 (en) * 2017-07-28 2019-06-25 Apple Inc. Systems and methods for performing memory compression
US10552321B2 (en) * 2017-08-04 2020-02-04 Microsoft Technology Licensing, Llc Flexible buffer sizing in graphics processors
US10462495B2 (en) * 2017-08-09 2019-10-29 Vital Images, Inc. Progressive lossless compression of image data
US10783694B2 (en) * 2017-08-25 2020-09-22 Advanced Micro Devices, Inc. Texture residency checks using compression metadata
US20190068974A1 (en) * 2017-08-31 2019-02-28 Intel Corporation Smart multiplexed image compression in computing environments
US10459824B2 (en) * 2017-09-18 2019-10-29 Microsoft Technology Licensing, Llc Cache-based trace recording using cache coherence protocol data
US11288010B2 (en) * 2017-09-25 2022-03-29 Intel Corporation Efficiently storing computer processor data structures in computer memory
US11188467B2 (en) * 2017-09-28 2021-11-30 Intel Corporation Multi-level system memory with near memory capable of storing compressed cache lines
US20190096095A1 (en) * 2017-09-28 2019-03-28 Kiran C. Veernapu Apparatus and method for pre-decompression filtering of compressed texel data
US10310978B2 (en) * 2017-09-29 2019-06-04 Intel Corporation Apparatus and method for multi-level cache request tracking
US20190102324A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Cache behavior for secure memory repartitioning systems
US10977221B2 (en) * 2017-10-20 2021-04-13 Hewlett Packard Enterprise Development Lp Encoding of data formatted in human-readable text according to schema into binary
US10546393B2 (en) * 2017-12-30 2020-01-28 Intel Corporation Compression in machine learning and deep learning processing
US10909738B2 (en) * 2018-01-05 2021-02-02 Nvidia Corporation Real-time hardware-assisted GPU tuning using machine learning
US20190052553A1 (en) * 2018-02-27 2019-02-14 Intel Corporation Architectures and methods for deep packet inspection using alphabet and bitmap-based compression
JP7010740B2 (ja) * 2018-03-16 2022-01-26 キオクシア株式会社 メモリシステムおよび制御方法
GB2572617B (en) * 2018-04-05 2021-06-16 Imagination Tech Ltd Blending hardware
US10839475B2 (en) * 2018-04-11 2020-11-17 Intel IP Corporation Apparatus and method for compressing leaf nodes of a bounding volume hierarchy (BVH)
US10802719B2 (en) * 2018-06-11 2020-10-13 Wipro Limited Method and system for data compression and data storage optimization
US10727865B2 (en) * 2018-11-19 2020-07-28 Fungible, Inc. Data striping for matching techniques in data compression accelerator of a data processing unit
US20200167076A1 (en) * 2018-11-26 2020-05-28 Ati Technologies Ulc Compressed memory access improvement through compression-aware partial writes
US10846239B2 (en) * 2018-11-29 2020-11-24 Marvell Asia Pte, Ltd. Managing translation lookaside buffer entries based on associativity and page size
US11317098B2 (en) * 2018-12-07 2022-04-26 Intel Corporation System and method for rendered scene change detection with remotely hosted graphics applications
US10747671B1 (en) * 2019-02-06 2020-08-18 Qualcomm Incorporated System and method for intelligent tile-based prefetching of image frames in a system on a chip
US20190243780A1 (en) * 2019-04-10 2019-08-08 Vinodh Gopal Scalable application-customized memory compression
US11050436B2 (en) * 2019-06-21 2021-06-29 Sap Se Advanced database compression
US11580234B2 (en) * 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing
US11016898B2 (en) * 2019-08-16 2021-05-25 Qualcomm Incorporated System and method for mixed tile-aware and tile-unaware traffic through a tile-based address aperture
CN112785482A (zh) * 2019-11-07 2021-05-11 英特尔公司 用于将可执行对象适配到处理单元的系统和方法
US11113783B2 (en) * 2019-11-13 2021-09-07 Intel Corporation Programmable re-order buffer for decompression
US11915357B2 (en) * 2020-03-16 2024-02-27 Intel Corporation Apparatus and method for throttling a ray tracing pipeline
EP4111419A4 (en) * 2020-04-02 2023-09-13 Sony Group Corporation SUPER-RESOLUTION BLOCK-COMPRESSED TEXTURE FOR TEXTURE MAPPING APPLICATIONS
US11270495B2 (en) * 2020-05-21 2022-03-08 Nvidia Corporation Scattered geometry compression for ray tracing acceleration structures
US11379944B2 (en) * 2020-06-23 2022-07-05 Nvidia Corporation Techniques for performing accelerated point sampling in a texture processing pipeline
US20220051476A1 (en) * 2020-08-17 2022-02-17 Intel Corporation Apparatus and method for improving graphics processing performance
US20220066776A1 (en) * 2020-08-25 2022-03-03 Infineon Technologies Ag Accelerating processor based artificial neural network computation
US11308648B2 (en) * 2020-09-23 2022-04-19 Advanced Micro Devices, Inc. Compressing texture data on a per-channel basis
US20220197651A1 (en) * 2020-12-22 2022-06-23 Intel Corporation Processing of data by multiple graphic processing devices
US20220301228A1 (en) * 2021-03-19 2022-09-22 Intel Corporation Variable width interleaved coding for graphics processing
KR20220134848A (ko) * 2021-03-26 2022-10-06 삼성전자주식회사 그래픽 처리 장치 및 그의 동작 방법
US20220309190A1 (en) * 2021-03-27 2022-09-29 Intel Corporation Circuitry and methods for low-latency efficient chained decryption and decompression acceleration
GB2607614B (en) * 2021-06-09 2023-05-31 Advanced Risc Mach Ltd Methods of and apparatus for storing data in memory in graphics processing systems
US20220012592A1 (en) * 2021-06-15 2022-01-13 Nilesh Jain Methods and apparatus to perform weight and activation compression and decompression
US20220414011A1 (en) * 2021-06-23 2022-12-29 Intel Corporation Opportunistic late depth testing to prevent stalling for overlapping cache lines
US20220413854A1 (en) * 2021-06-25 2022-12-29 Intel Corporation 64-bit two-dimensional block load with transpose
US20220414939A1 (en) * 2021-06-28 2022-12-29 Advanced Micro Devices, Inc. Render target compression scheme compatible with variable rate shading
US20230100106A1 (en) * 2021-09-24 2023-03-30 Intel Corporation System, Apparatus And Method For Direct Peripheral Access Of Secure Storage
US11829190B2 (en) * 2021-12-21 2023-11-28 Advanced Micro Devices, Inc. Data routing for efficient decompression of compressed data stored in a cache

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000105839A (ja) * 1998-07-31 2000-04-11 Hewlett Packard Co <Hp> 圧縮テクスチャ・デ―タ構造
US6452602B1 (en) * 1999-12-13 2002-09-17 Ati International Srl Method and apparatus for storing compressed data
US6959110B1 (en) * 2000-08-17 2005-10-25 Nvidia Corporation Multi-mode texture compression algorithm
US20110063318A1 (en) * 2009-09-11 2011-03-17 Bolz Jeffrey A Image Loads, Stores and Atomic Operations

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160001701A (ko) * 2014-06-27 2016-01-06 삼성전자주식회사 주파수 압축과 텍스처 파이프라인
KR20160012903A (ko) * 2014-07-25 2016-02-03 인텔 코포레이션 동적 생성 그래픽 자원들에 대한 압축 기술들
KR20190109396A (ko) * 2016-12-22 2019-09-25 어드밴스드 마이크로 디바이시즈, 인코포레이티드 압축된 자원에 셰이더의 기입

Also Published As

Publication number Publication date
US20210312668A1 (en) 2021-10-07
US9378560B2 (en) 2016-06-28
US20120320067A1 (en) 2012-12-20
CN103608848B (zh) 2017-03-15
EP2721584A1 (en) 2014-04-23
US20200118299A1 (en) 2020-04-16
KR101994986B1 (ko) 2019-07-01
WO2012174231A1 (en) 2012-12-20
US10510164B2 (en) 2019-12-17
JP2014520328A (ja) 2014-08-21
US11043010B2 (en) 2021-06-22
EP2721584B1 (en) 2020-12-09
US20160300320A1 (en) 2016-10-13
CN103608848A (zh) 2014-02-26
JP6097744B2 (ja) 2017-03-15

Similar Documents

Publication Publication Date Title
US11043010B2 (en) Real time on-chip texture decompression using shader processors
CN107250996B (zh) 用于存储器分级体系的压实的方法和装置
KR102381944B1 (ko) 주파수 압축과 텍스처 파이프라인
US9406149B2 (en) Selecting and representing multiple compression methods
US9734548B2 (en) Caching of adaptively sized cache tiles in a unified L2 cache with surface compression
JP7169284B2 (ja) ビデオへのデルタカラー圧縮の適用
US10282808B2 (en) Hierarchical lossless compression and null data support
US10535178B2 (en) Shader writes to compressed resources
US10824357B2 (en) Updating data stored in a memory
JP6936689B2 (ja) カーブレンダリング方法
US10466915B2 (en) Accessing encoded blocks of data in memory
KR20060116916A (ko) 텍스쳐 캐쉬 및 이를 구비한 3차원 그래픽 시스템, 그리고그것의 제어 방법
US10332278B2 (en) Multi-format range detect YCoCg compression
EP3367683A1 (en) Delta color compression application to video
US20180181306A1 (en) Method and apparatus of copying data to remote memory
US9600909B2 (en) Processed texel cache

Legal Events

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