KR20230010672A - 데이터 압축의 방법 및 장치 - Google Patents

데이터 압축의 방법 및 장치 Download PDF

Info

Publication number
KR20230010672A
KR20230010672A KR1020227042802A KR20227042802A KR20230010672A KR 20230010672 A KR20230010672 A KR 20230010672A KR 1020227042802 A KR1020227042802 A KR 1020227042802A KR 20227042802 A KR20227042802 A KR 20227042802A KR 20230010672 A KR20230010672 A KR 20230010672A
Authority
KR
South Korea
Prior art keywords
data
color
dcc
fragment
color data
Prior art date
Application number
KR1020227042802A
Other languages
English (en)
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 KR20230010672A publication Critical patent/KR20230010672A/ko

Links

Images

Classifications

    • 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/60Memory management

Landscapes

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

Abstract

색상 데이터를 처리하는 방법 및 장치는 색상 버퍼에 단편 포인터 및 색상 데이터를 함께 저장하는 단계를 포함한다. 처리를 위해 페치하기 위한 색상 데이터를 나타내는 델타 색상 압축(DCC) 키가 저장되고, 단편 포인터 및 색상 데이터는 압축해제를 위한 판독 DCC 키에 기초하여 페치된다.

Description

데이터 압축의 방법 및 장치
관련 출원의 교차 참조
본 출원은 2020년 5월 13일자로 출원된 미국 임시 특허 출원 제63/024,254호, 및 2020년 12월 28일자로 출원된 미국 정규 특허 출원 제17/135,978호의 이익을 주장하며, 이들은 본원에 완전히 기재된 것처럼 인용되어 포함된다.
이미지를 샘플링하기 위한 다중 샘플 안티아일리어싱(MSAA) 기술에서, 각각의 픽셀은 이미지의 품질을 개선하기 위해 다수의 샘플링 포인트를 갖는다. 이러한 샘플링 지점들은 각각 고유한 색상 값을 가질 수 있다. 그러나, 픽셀의 샘플링 포인트는 공통 색상 값을 공유할 수 있다.
값은 각 공통 색상 값을 한 번만 저장하여 저장된다(예를 들어, 샘플당 한 번 대신 단편당). 이 데이터는 색상 표면에 저장되고, 픽셀 내의 각 샘플에 대한 단편 포인터(에프마스크)가 저장된다. 이 단편 포인터는 별도의 에프마스크 표면에 저장된다.
첨부된 도면과 함께 예로서 주어진 하기 설명으로부터 보다 상세한 이해가 있을 수 있다.
도 1은 본 개시내용의 하나 이상의 특징이 구현될 수 있는 예시적인 디바이스의 블록도이다.
도 2는 추가 세부사항을 도시한, 도 1의 장치의 블록도이다.
도 3은 일 예에 따른 그래픽 처리 파이프라인을 도시하는 블록도이다.
도 4는 다중 샘플링된 이미지와 관련된 양태들을 도시하는 그래픽 표현이다.
도 5는 일 예에 따른 압축 포맷을 도시한다.
도 6은 종래의 데이터 처리 방법의 예시적인 흐름도이다.
도 7은 데이터 처리 방법의 예시적인 흐름도이다.
본 방법 및 장치가 아래에서 더 상세히 확장될 것이지만, 색상 표면에 대한 데이터 압축을 위한 간략한 방법이 본원에 설명된다.
색상 데이터를 처리하는 방법은 색상 버퍼에 단편 포인터 및 색상 데이터를 함께 저장하는 단계를 포함한다. 처리를 위해 페치하기 위한 색상 데이터를 나타내는 델타 색상 압축(DCC) 키가 저장되고, 단편 포인터 및 색상 데이터는 압축해제를 위한 판독 DCC 키에 기초하여 페치된다.
색상 데이터를 처리하기 위한 장치는 메모리 및 메모리와 동작가능하게 결합되고 메모리와 통신하는 프로세서를 포함한다. 프로세서는 메모리 내의 색상 버퍼에 단편 포인터 및 색상 데이터를 함께 저장하고, 처리를 위해 페치하기 위한 상기 색상 데이터를 나타내는 델타 색상 압축(DCC) 키를 판독하고, 압축해제를 위해 상기 판독 DCC 키에 기초하여 상기 단편 포인터 및 색상 데이터를 페치하도록 구성된다.
색상 데이터를 처리하기 위한 비일시적 컴퓨터 판독 가능 매체는 프로세서에 의해 실행될 때 상기 프로세서로 하여금 동작들을 수행하게 하는 명령어들이 기록되어 있다. 동작들은 색상 버퍼에 단편 포인터 및 색상 데이터를 함께 저장하고, 처리를 위해 페치하기 위한 상기 색상 데이터를 나타내는 델타 색상 압축(DCC) 키를 판독하고, 압축해제를 위해 상기 판독 DCC 키에 기초하여 상기 단편 포인터 및 색상 데이터를 페치하는 것을 포함한다.
도 1은 본 개시내용의 하나 이상의 특징이 구현될 수 있는 예시적인 디바이스(100)의 블록도이다. 장치(100)는 예를 들어 컴퓨터, 게임 장치, 핸드헬드 장치, 셋톱 박스, 텔레비전, 이동 전화, 서버, 태블릿 컴퓨터 또는 그래픽 이미지를 생성하기 위한 다른 유형의 컴퓨팅 장치를 포함할 수 있다. 장치(100)는 프로세서(102), 메모리(104), 스토리지(106), 하나 이상의 입력 장치(108), 및 하나 이상의 출력 장치(110)를 포함한다. 장치(100)는 또한 선택적으로 입력 드라이버(112) 및 출력 드라이버(114)를 포함할 수 있다. 디바이스(100)는 도 1에 도시되지 않은 추가적인 구성요소를 포함할 수 있다는 것이 이해된다.
다양한 대안에서, 프로세서(102)는 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 동일한 다이(die) 상에 위치한 CPU 및 GPU, 또는 하나 이상의 프로세서 코어를 포함하며, 여기서 각각의 프로세서 코어는 CPU 또는 GPU일 수 있다. 다양한 대안에서, 메모리(104)는 프로세서(102)와 동일한 다이 상에 위치하거나, 프로세서(102)와 별도로 위치한다. 메모리(104)는 휘발성 또는 비휘발성 메모리, 예를 들어, RAM(random access memory), 동적 RAM, 또는 캐시를 포함한다. 도 1에 도시된 실시예에서, 프로세서(102)는 CPU를 포함한다.
스토리지(106)는 고정 또는 탈착식 스토리지, 예를 들어, 하드 디스크 드라이브, 고체 상태 드라이브, 광학 디스크, 또는 플래시 드라이브를 포함한다. 입력 장치(108)는, 제한 없이, 키보드, 키패드, 터치 화면, 터치 패드, 검출기, 마이크, 가속도계, 자이로스코프, 생체인식 스캐너, 또는 네트워크 연결(예를 들어, 무선 IEEE 802 신호의 송신 및/또는 수신을 위한 무선 근거리 통신망 카드)을 포함한다. 출력 장치(110)는, 제한 없이, 디스플레이, 스피커, 프린터, 햅틱 피드백 장치, 하나 이상의 조명, 안테나, 또는 네트워크 연결(예를 들어, 무선 IEEE 802 신호의 송신 및/또는 수신을 위한 무선 근거리 통신망 카드)을 포함한다.
입력 드라이버(112)는 프로세서(102) 및 입력 장치(108)와 통신하고 프로세서(102)가 입력 장치(108)로부터 입력을 수신할 수 있게 한다. 출력 드라이버(114)는 프로세서(102) 및 출력 장치(110)와 통신하고 프로세서(102)가 출력 장치(110)에 출력을 전송할 수 있게 한다. 입력 드라이버(112) 및 출력 드라이버(114)는 선택적 구성요소이고, 입력 드라이버(112) 및 출력 드라이버(114)가 존재하지 않는 경우, 장치(100)는 동일한 방식으로 동작할 것이라는 점에 유의한다. 예시적인 실시예에서, 출력 드라이버(116)는 디스플레이 장치(118)에 결합된 가속 처리 장치("APD")(116)를 포함한다. APD는 프로세서(102)로부터 컴퓨팅 커맨드 및 그래픽 렌더링 커맨드를 수용하고, 이러한 컴퓨팅 커맨드 및 그래픽 렌더링 커맨드를 처리하고, 디스플레이를 위해 디스플레이 디바이스(118)에 픽셀 출력을 제공한다. 이하에서 보다 상세히 설명되는 바와 같이, APD(116)는 하나 이상의 병렬 처리 유닛을 포함하여 SIMD(single-instruction-multiple-data) 패러다임에 따라 계산을 수행한다. 따라서, 다양한 기능이 APD(116)에 의해 또는 이와 함께 수행되는 것으로 본원에 설명되지만, 다양한 대안에서, APD(116)에 의해 수행되는 것으로 설명된 기능은 호스트 프로세서(예를 들어, 프로세서(102))에 의해 구동되지 않고 디스플레이 디바이스(118)에 그래픽 출력을 제공하는 유사한 능력을 갖는 다른 컴퓨팅 디바이스에 의해 추가적으로 또는 대안적으로 수행된다. 예를 들어, SIMD 패러다임에 따라 처리 작업을 수행하는 임의의 처리 시스템은 본원에서 설명된 기능을 수행할 수 있음이 고려된다. 대안적으로, SIMD 패러다임에 따라 처리 작업을 수행하지 않는 컴퓨팅 시스템은 본원에 설명된 기능도 수행할 수 있는 것으로 고려된다.
도 2는, APD(116)에서 처리 작업의 실행과 관련된 추가 세부사항을 도시하는, 디바이스(100)의 블록도이다. 프로세서(102)는, 시스템 메모리(104)에, 프로세서(102)에 의한 실행을 위한 하나 이상의 제어 로직 모듈을 유지한다. 제어 로직 모듈은 운영 체제(120), 커널 모드 드라이버(122), 및 애플리케이션(126)을 포함한다. 이러한 제어 로직 모듈은 프로세서(102) 및 APD(116)의 동작의 다양한 특징을 제어한다. 예를 들어, 운영 체제(120)는 하드웨어와 직접 통신하고, 프로세서(102) 상에서 실행되는 다른 소프트웨어를 위한 하드웨어에 인터페이스를 제공한다. 커널 모드 드라이버(122)는, 예를 들어, 프로세서(102) 상에서 실행되는 소프트웨어(예를 들어, 애플리케이션(126))에 API(application programming interface)를 제공하여 APD(116)의 다양한 기능에 액세스하는 APD(116)의 동작을 제어한다. 커널 모드 드라이버(122)는 또한 (아래에서 더 상세히 논의되는 SIMD 유닛(138)과 같은) APD(116)의 처리 구성요소로 실행하기 위한 프로그램을 컴파일하는 JIT(just-in-time) 컴파일러를 포함한다.
APD(116)는 병렬 처리에 적합한/적합할 수 있는 그래픽 동작 및 비그래픽 동작과 같은 선택된 기능에 대한 명령 및 프로그램을 실행한다. APD(116)는 픽셀 동작, 지오메트리 계산과 같은 그래픽 파이프라인 동작을 실행하고, 프로세서(102)로부터 수신된 명령에 기초하여 이미지를 디스플레이 장치(118)에 렌더링하는 데 사용될 수 있다. APD(116)는 또한, 프로세서(102)로부터 수신된 명령에 기초하여, 비디오, 물리 시뮬레이션, 계산 유체 역학, 또는 다른 작업과 관련된 동작과 같은 그래픽 동작과 직접적으로 관련되지 않은 계산 처리 동작을 실행한다.
APD(116)는 SIMD 패러다임에 따라 병렬 방식으로 프로세서(102)의 요청에 동작을 수행하는 하나 이상의 SIMD 유닛(138)을 포함하는 계산 유닛(132)을 포함한다. SIMD 패러다임은 다수의 처리 요소가 단일 프로그램 제어 흐름 유닛 및 프로그램 카운터를 공유하고, 따라서 동일한 프로그램을 실행하지만, 상이한 데이터를 가진 또는 상이한 데이터를 이용하여 해당 프로그램을 실행할 수 있는 것이다. 일례에서, 각각의 SIMD 유닛(138)은 16개의 레인을 포함하고, 여기서 각각의 레인은 SIMD 유닛(138)의 다른 레인과 동일한 시간에 동일한 명령어를 실행하지만 상이한 데이터로 해당 명령어를 실행할 수 있다. 모든 레인이 주어진 명령어를 실행할 필요가 없는 경우 예측으로 레인을 끌 수 있다. 예측은 발산 제어 흐름으로 프로그램을 실행하는 데에도 사용될 수 있다. 보다 구체적으로, 제어 흐름이 개별 레인에 의해 수행된 계산에 기초하는 조건부 분기 또는 다른 명령어를 갖는 프로그램에 대해, 현재 실행되지 않은 제어 흐름 경로에 대응하는 레인의 예측, 및 상이한 제어 흐름 경로의 순차 실행이 임의의 제어 흐름을 허용한다.
계산 유닛(132)에서 실행의 기본 단위는 작업-항목이다. 각각의 작업-항목은 특정 레인에서 병렬로 실행될 프로그램의 단일 인스턴스화를 나타낸다. 작업-항목은 단일 SIMD 처리 유닛(138) 상에서 "파면(wavefront)"으로서 동시에 실행될 수 있다. 하나 이상의 파면은 동일한 프로그램을 실행하도록 지정된 작업-항목의 집합을 포함하는 "작업 그룹"에 포함된다. 작업 그룹을 구성하는 파면 각각을 실행함으로써 작업 그룹은 실행될 수 있다. 대안적으로, 파면은 단일 SIMD 유닛(138) 상에서 순차적으로 또는 상이한 SIMD 유닛(138) 상에서 부분적으로 또는 완전히 병렬로 실행된다. 파면은 단일 SIMD 유닛(138) 상에서 동시에 실행될 수 있는 작업-항목의 가장 큰 집합으로 생각될 수 있다. 따라서, 프로세서(102)로부터 수신된 명령이, 프로그램이 단일 SIMD 유닛(138) 상에서 동시에 실행될 수 없는 정도로 특정 프로그램이 병렬화되어야 함을 표시하는 경우, 해당 프로그램은 2개 이상의 SIMD 유닛(138) 상에 병렬화되거나 동일한 SIMD 유닛(138) 상에 직렬화되는 (또는 필요에 따라 병렬화 및 직렬화 모두) 파면으로 분할된다. 스케줄러(136)는 상이한 계산 유닛(132) 및 SIMD 유닛(138) 상의 다양한 파면을 스케줄링하는 것에 관련된 동작을 수행한다.
계산 유닛(132)에 의해 제공되는 병렬성은 픽셀 값 계산, 정점 변환 및 다른 그래픽 동작과 같은 그래픽 관련 동작에 적합하다. 따라서, 일부 경우에서, 프로세서(102)로부터 그래픽 처리 명령을 수용하는 그래픽 파이프라인(134)은 병렬로 실행하기 위해 계산 유닛(132)에 계산 작업을 제공한다.
계산 유닛(132)은 또한 그래픽과 관련되지 않거나 그래픽 파이프라인(134)의 "정상(normal)" 동작의 일부로서 수행되지 않는 계산 작업(예를 들어, 그래픽 파이프라인(134)의 동작을 위해 수행되는 처리를 보완하기 위해 수행된 커스텀 동작)을 수행하는 데 사용된다. 프로세서(102) 상에서 실행되는 애플리케이션(126) 또는 다른 소프트웨어는 이러한 계산 작업을 정의하는 프로그램을 실행을 위해 APD(116)에 전송한다.
도 3은 도 2에 예시된 그래픽 처리 파이프라인(134)의 추가적인 세부사항을 도시하는 블록도이다. 그래픽 처리 파이프라인(134)은, 각각이 특정 기능을 수행하는 논리 스테이지들을 포함한다. 스테이지는 그래픽 처리 파이프라인(134)의 기능의 세분화를 나타낸다. 각각의 스테이지는 프로그램 가능한 처리 유닛(202)에서 실행되는 셰이더 프로그램으로서 부분적으로 또는 전체적으로 구현되거나, 프로그램 가능한 처리 유닛(202) 외부의 고정된 기능, 프로그램 가능하지 않은 하드웨어로서 부분적으로 또는 전체적으로 구현된다.
입력 어셈블러 스테이지(302)는 유저-필드 버퍼(user-filled buffer)(예를 들어, 애플리케이션(126)과 같은 프로세서(102)에 의해 실행되는 소프트웨어의 요청 시에 채워진 버퍼)로부터 프리미티브 데이터를 읽고, 파이프라인의 나머지 부분에서 사용하기 위해 데이터를 프리미티브 안으로 어셈블링한다. 입력 어셈블러 스테이지(302)는 유저-필드 버퍼에 포함된 프리미티브 데이터에 기초하여 다양한 유형의 프리미티브를 생성할 수 있다. 입력 어셈블러 스테이지(302)는 나머지 파이프라인에 의해서 사용되기 위해, 어셈블된 프리미티브를 포맷한다.
정점 셰이더 스테이지(304)는 입력 어셈블러 스테이지(302)에 의해 어셈블된 프리미티브의 정점을 처리한다. 정점 셰이더 스테이지(304)는 변환, 스키닝(skinning), 모핑(morphing) 및 정점별 조명처리와 같은 다양한 정점별 작업을 수행한다. 변환 연산은 정점의 좌표를 변환하는 다양한 연산을 포함한다. 이러한 연산은 모델링 변환, 보기 변환, 투영 변환, 원근 분할, 및 뷰포트 변환 중 하나 이상을 포함한다. 여기서, 이러한 변환은 변환이 수행되는 정점의 좌표 또는 "위치"를 수정하는 것으로 간주된다. 정점 셰이더 스테이지(304)의 다른 연산은 좌표 이외의 속성을 수정한다.
정점 셰이더 스테이지(304)는 하나 이상의 컴퓨팅 유닛(132) 상에서 실행될 정점 셰이더 프로그램으로서 부분적으로 또는 전체적으로 구현된다. 정점 셰이더 프로그램은 프로세서(102)에 의해 제공되고, 컴퓨터 프로그래머에 의해 미리 작성된 프로그램에 기초한다. 드라이버(122)는 이러한 컴퓨터 프로그램을 컴퓨팅 유닛(132) 내에서 실행하기에 적합한 포맷을 갖는 정점 셰이더 프로그램을 생성하도록 컴파일한다.
헐 셰이더 스테이지(306), 테셀레이터 스테이지(308) 및 도메인 셰이더 스테이지(310)는, 프리미티브를 세분화하여 단순한 프리미티브를 보다 복잡한 프리미티브로 변환하는 테셀레이션을 구현하기 위해 함께 작동된다. 헐 셰이더 스테이지(306)는 입력 프리미티브에 기초하여 테셀레이션을 위한 패치를 생성한다. 테셀레이터 스테이지(308)는 패치에 대한 일 세트의 샘플을 생성한다. 도메인 셰이더 스테이지(310)는 패치에 대한 샘플에 대응하는 정점에 대한 정점 위치를 계산한다. 헐 셰이더 스테이지(306) 및 도메인 셰이더 스테이지(310)는 프로그래밍 가능한 프로세싱 유닛(202) 상에서 실행될 셰이더 프로그램으로서 구현될 수 있다.
기하학적 구조 셰이더 스테이지(312)는 프리미티브 단위로 정점 연산을 수행한다. 포인트 스프린트 확장(point sprint expand), 동적 입자 시스템 연산, 퍼-핀(fur-fin) 생성, 그림자 볼륨 생성, 단일 패스 렌더-투-큐브맵(single pass render-to-cubemap), 프리미티브별 재료 스와핑, 및 프리미티브별 재료 설정과 같은 연산을 포함하여, 다양한 상이한 유형의 연산이 기하학적 구조 셰이더 스테이지(312)에 의해 수행될 수 있다. 일부 예에서, 프로그래밍 가능한 처리 유닛(202) 상에서 실행되는 셰이더 프로그램은 기하학적 구조 셰이더 스테이지(312)에 대한 연산을 수행한다.
래스터라이저 스테이지(314)는 단순 프리미티브 및 생성된 업스트림을 수용하고 래스터화한다. 래스터화는 특정 프리미티브에 커버되는 화면 픽셀(또는 하위-픽셀 샘플)을 결정하는 것을 포함한다. 래스터화는 고정 기능 하드웨어에 의해 수행된다.
픽셀 셰이더 스테이지(316)는 업스트림에서 생성된 프리미티브 및 래스터화 결과에 기초하여 스크린 픽셀에 대한 출력 값을 계산한다. 픽셀 셰이더 스테이지(316)는 텍스처 메모리로부터의 텍스처를 적용할 수 있다. 픽셀 셰이더 스테이지(316)에 대한 연산은 프로그래밍 가능한 프로세싱 유닛(202) 상에서 실행되는 셰이더 프로그램에 의해 수행된다.
출력 병합 스테이지(318)는 픽셀 셰이더 스테이지(316)로부터의 출력을 수용하고, 이러한 출력을 병합하여, 스크린 픽셀에 대한 최종 색상을 결정하기 위해 z-테스트 및 알파 블렌딩과 같은 연산을 수행한다.
텍스처를 정의하는 텍스처 데이터는 텍스처 유닛(320)에 의해 저장되고/되거나 액세스된다. 텍스처는 그래픽 처리 파이프라인(134)의 다양한 지점에서 사용되는 비트맵 이미지이다. 예를 들어, 일부 경우에서, 픽셀 셰이더 스테이지(316)는 렌더링될 정점의 수를 증가시키지 않고 명백한 렌더링 복잡성을 개선하기 위해(예를 들어, 더 "사실적인" 모습을 제공하기 위해) 픽셀에 텍스처를 적용한다.
일부 예에서, 정점 셰이더 스테이지(304)는, 예를 들어, 개선된 미학을 위해 정점을 생성 또는 수정함으로써 복잡성을 증가시키기 위해 프리미티브를 수정하기 위해 텍스처 유닛(320)으로부터의 텍스처 데이터를 사용한다. 일 예에서, 정점 셰이더 스테이지(304)는 정점의 변위를 수정하기 위해 텍스처 유닛(320)에 저장된 높이 맵을 사용한다. 이러한 유형의 기술은, 예를 들어, 물을 렌더링하기 위해서 사용되는 정점의 위치 및 수를 수정함으로써, 픽셀 셰이더 스테이지(316)에서만 사용되는 텍스처와 비교하여 보다 사실적으로 보이는 물을 생성하기 위해서 사용될 수 있다. 일부 경우에서, 기하학적 구조 셰이더 스테이지(312)는 텍스처 유닛(320)으로부터 텍스처 데이터에 액세스한다.
이미지 데이터를 저장하는 압축을 위해 특정 압축 포맷이 본원에 제시된다. 압축 포맷은 다른 애플리케이션들 중에서 다중 샘플링된 이미지들을 압축하는 데 유용하다. 도 4는 다중 샘플링된 이미지와 관련된 양태들을 예시하는 그래픽 표현(400)이다. 도면에 예시되고/되거나 본원에 설명된 다양한 기능 유닛(프로세서(102), 입력 드라이버(112), 입력 디바이스(108), 출력 드라이버(114), 출력 디바이스(110), 가속 처리 디바이스(116), 스케줄러(136), 그래픽 처리 파이프라인(134), 컴퓨팅 유닛(132), SIMD 유닛(138) 등을 포함하나, 이에 한정되지 않음)은 범용 컴퓨터, 프로세서 또는 프로세서 코어, 또는 프로그램, 소프트웨어 또는 펌웨어로 구현되고, 비일시적 컴퓨터 판독 가능 매체 또는 다른 매체에 저장되고, 범용 컴퓨터, 프로세서 또는 프로세서 코어에 의해 실행 가능할 수 있다.
도 4에서, 여러 픽셀(예를 들어, 픽셀 1, 픽셀 2, 픽셀 3)이 도시되어 있다. 다중 샘플링된 이미지는 이러한 픽셀들의 그리드를 포함할 것이다. 각 픽셀은 하나 이상의 샘플(예를 들어, 샘플 1, 샘플 2, 샘플 3, 샘플 4)을 포함한다. 샘플은 특정 색상을 갖는 픽셀 내의 특정 위치이다. 각각의 샘플은 동일한 픽셀에서 다른 샘플의 색상과 다른 색상을 가질 수 있다. 도 4에서, 각각의 샘플에 대한 음영은 샘플에 할당된 색상을 나타낸다.
세 개의 상이한 픽셀이 도시되어 있다. 픽셀 1은 1의 단편화도를 갖는다. 따라서, 픽셀 1은 완전히 단편화되지 않고 픽셀 1의 모든 샘플은 동일한 색상을 갖는다. 픽셀 1은 픽셀 1, 단편 1로 표시된 단일 단편으로서 표현될 수 있다. "단편"은 모든 샘플이 동일한 색상을 갖는 픽셀의 일부이다.
픽셀 2는 2의 단편화도를 갖는다. 두 개의 최좌측 샘플은 하나의 색상을 가지며 두 개의 최우측 샘플은 상이한 색상을 갖는다. 따라서, 픽셀 2-단편 1은 최좌측 샘플을 갖고, 픽셀 2-단편 2는 두 개의 최우측 샘플을 갖는다.
픽셀 3은 3의 단편화도를 갖는다. 픽셀 3, 단편 1은 상부 좌측 샘플을 포함한다. 픽셀 3, 단편 2는 두 개의 우측 샘플을 포함한다. 픽셀 3, 단편 3은 하부 좌측 샘플을 포함한다. 압축 포맷은 하나 이상의 하드웨어 버퍼에서의 저장을 위해 이러한 픽셀을 설명하는 데이터를 압축하는 방법을 설명한다.
도 5는 일 예에 따른 압축 포맷(500)을 도시한다. 압축 포맷에 저장된 데이터와 이미지 사이의 상관관계를 보여주는 이미지가 예시된다. 이미지는 이미지 유닛들을 포함하며, 이들 각각은 하나 이상의 픽셀을 포함한다. 이미지 유닛은 하나 이상의 픽셀을 포함하는 이미지의 일부이다.
압축 포맷은 메타데이터 버퍼 및 색상 버퍼의 콘텐츠를 포함한다. 일부 구현예들에서, 메타데이터 버퍼 및 색상 버퍼는 본원에 설명된 데이터를 저장하도록 구성된 캐시들과 같은 물리적 버퍼들이다. 다른 구현예들에서, 이들 버퍼 중 하나 또는 둘 모두는 캐시, 메모리, 비휘발성 메모리, 또는 임의의 다른 저장소와 같은 임의의 메모리 구조에 저장된 데이터를 나타낸다.
메타데이터 버퍼는 메타데이터 압축 유닛들(압축을 설명하는 데이터임)을 저장하고, 색상 버퍼는 색상 데이터 압축 유닛들을 저장한다. 하나의 메타데이터 압축 유닛과 하나의 색상 데이터 압축 유닛의 각각의 조합은 압축 유닛을 형성한다. 각각의 메타데이터 압축 유닛은 단지 하나의 압축 유닛과 연관되고, 각각의 색상 데이터 압축 유닛은 단지 하나의 압축 유닛과 연관된다.
압축 유닛은 이미지의 이미지 유닛에 대한 압축 데이터이다. 일부 구현예에서, 압축 유닛은 고정된 양의 데이터이고, 대응하는 이미지 유닛을 압축하는 데 필요한 데이터의 양에 따라 "빈" 또는 "미사용" 공간을 가질 수 있다. 일부 이러한 구현예에서, 메타데이터 버퍼 및 색상 버퍼 각각은 전용 캐시 메모리와 같은 전용 메모리를 나타내거나, 캐시 메모리와 같은 메모리의 전용 부분을 나타낸다. 일부 이러한 구현예에서, 각각의 압축 유닛은 하나 이상의 캐시 라인에 대응한다. 다른 구현예에서, 압축 유닛은 가변적인 양의 데이터이고, 압축 유닛은 이미지에 대한 데이터의 총량을 감소시키기 위해 함께 패킹된다.
메타데이터 압축 유닛은 예를 들어 단편화 정도 및 데이터 크기를 저장하고, 일부 구현예들에서 샘플링 레이트를 저장한다. 추가적으로, 메타데이터 유닛들은 압축된 데이터가 단편화를 갖고, 단편화도가 압축 데이터 내에 저장됨을 나타낼 수 있다.
대안적으로, 메타데이터 유닛은 압축의 형태가 있음을 나타낼 수 있으며, 이는 압축 데이터 크기가 블록의 크기보다 작고, 압축 데이터가 단편화가 있음을 나타낼 수 있고, 압축 데이터는 단편화가 있음을 그리고 어느 정도인지 나타낼 수 있다.
단편화도는 메타데이터 압축 유닛을 포함하는 압축 유닛에 대응하는 이미지 유닛에서의 픽셀들의 단편화의 최대 정도를 나타낸다. 단편화도는 도 4에 도시되어 있다. 메타데이터 압축 유닛은 또한 데이터 크기를 저장한다. 데이터 크기는 대응하는 색상 데이터 압축 유닛의 크기(즉, 메타데이터 압축 유닛과 동일한 압축 유닛에 속하는 색상 데이터 압축 유닛의 비트의 수)를 나타낸다.
각각의 색상 데이터 압축 유닛은 하나 이상의 단편 색상 포인터 및 하나 이상의 단편 색상 데이터의 항목을 포함한다. 단편 색상 포인터는 특정 픽셀에 대한 특정 샘플이 어떤 단편 색상을 갖는지를 나타낸다. 일부 예들에서, 각각의 색상 데이터 압축 유닛은 대응하는 이미지 유닛에서 각각의 샘플에 대한 하나의 단편 색상 포인터를 포함한다. 따라서, 각각의 색상 데이터 압축 유닛은 대응하는 이미지 유닛에서의 샘플들의 수와 동일한 다수의 단편 색상 포인터들을 포함한다.
주어진 샘플에 대해, 대응하는 단편 색상 포인터는 대응하는 단편 색상을 나타내거나 지정한다. 일부 구현예들에서, 색상 데이터 압축 유닛 내의 단편 색상 포인터들의 순서는 어떤 단편 색상 포인터가 어떤 샘플에 대응하는지의 식별을 허용한다.
픽셀당 2개의 샘플들을 갖는 예에서, 제1 단편 색상 포인터(예를 들어, 최저 순서 비트들)는 이미지 유닛 내의 제1 픽셀의 제1 샘플에 대응하고, 제2 단편 색상 포인터(예를 들어, 다음 최저 순서 비트들)는 제1 픽셀의 제2 샘플에 대응하고, 제3 단편 색상 포인터(예를 들어, 다음 최저 순서 비트들)는 이미지 유닛의 제2 픽셀의 제1 샘플에 대응하고, 제4 단편 색상 포인터(예를 들어, 다음 최저 순서 비트들)는 이미지 유닛의 제2 픽셀의 제2 샘플에 대응한다.
샘플링 레이트가 메타데이터 압축 유닛에 저장되는 구현예에서, 샘플링 레이트는 대응하는 이미지 유닛에서 픽셀 당 샘플의 수를 나타낸다.
색상 데이터 압축 유닛에서의 단편 색상은 특정 단편에 대한 실제 색상 값을 포함한다. 단지 설명된 바와 같이, 각각의 단편 색상 포인터는 이러한 단편 색상들 중 어느 것이 실제로 대응하는 단편에 적용되는지를 나타낸다. 단편 색상 포인터들에서와 같이, 일부 구현예들에서, 단편 색상들은 색상 데이터 압축 유닛에 순차적으로 배열되고, 각각의 단편 색상 포인터는 대응하는 샘플에 대한 개별 단편 색상 데이터 아이템을 식별한다. 일부 예에서, 단편 색상은 개별 픽셀에 특이적이다. 즉, 각각의 픽셀은 하나 이상의 색상 단편을 저장하고, 단편 색상 포인터는 각각의 픽셀에 대해, 어떤 단편 색상이 대응하는 샘플에 대한 색상인지를 선택한다.
단편 색상 데이터 자체는 압축될 수 있다. 단편 색상 데이터에 대한 예시적인 압축 방식은 기본 색상(예를 들어, 픽셀 또는 이미지 유닛과 같은 다른 압축 그룹에서 샘플들 중 하나에 대한 색상) 및 각각의 다른 샘플에 대한 색상 델타를 저장하는 델타 색상 압축("DCC")이며, 색상 델타는 기본 색상과 대응하는 샘플의 실제 색상 사이의 차이이다.
단편 색상 포인터 및 단편 색상 데이터는 가변 길이일 수 있다. 일 예에서, 각각의 단편 색상 포인터의 길이는 각각의 픽셀에서 단편들의 최대 개수를 나타내는 데 필요한 비트들의 수와 동일하다. 일 예에서, 각각의 픽셀에서 네 개의 단편이 허용되며, 이는 이미지 유닛의 각각의 픽셀이 최대 네 개의 단편을 갖도록 허용된다는 것을 의미한다. 이 예에서, 각각의 샘플에 대한 단편 색상 포인터의 크기는 두 개의 비트이다(두 개의 비트는 네 개의 가능한 값을 나타낼 수 있기 때문이다). 다른 예에서, 이미지 유닛의 각 픽셀에서의 단편들의 최대 수는 두 개이며, 이는 각각의 픽셀이 최대 두 개의 단편들을 포함하도록 허용되고, 따라서 각각의 샘플에 대한 단편 색상 포인터들의 크기가 1 비트임을 의미한다. 일부 예에서, 압축 알고리즘이 상이한 크기의 데이터를 생성할 수 있기 때문에, 각각의 단편 색상은 상이한 길이를 가질 수 있다. 또한, 단일 단편만이 포함되는 경우(즉, 한 개의 단편), 모든 샘플이 제1 단편을 가리키기 때문에 저장될 단편 포인터는 없다(예를 들어, 이들은 0 길이임).
도 6은 종래의 압축 방법의 예시적인 흐름도(600)이다. 단계 610에서, 씨마스크 표면이 판독된다. 단계 620에서, 에프마스크가 얼마나 많이 페치될 필요가 있는지를 찾기 위해, 씨마스크 표면이 디코딩된다.
단계 620에서 에프마스크가 얼마나 많이 페치될 필요가 있는지를 결정하면, 에프마스크가 페치되고(단계 630), DCC 키가 판독된다(단계 640). 단편 동작들이 수행되고, 색상 데이터의 양이 판독된다(단계 650).
이어서, DCC 압축된 색상 데이터가 판독될 수 있고(단계 660), DCC 키에 기초하여 색상 데이터가 압축해제된다(단계 670). 종래의 방법에서, 전체 색상 데이터-색상 데이터 단편 자체- 및 색상 데이터 단편들에 대한 포인터 정보인 에프마스크 데이터를 설명하기 위한 두 개의 표면이 있다. 즉, 종래의 압축 방법에서, 두 쌍의 표면이 존재하고, 한 쌍의 표면은 단편 포인터 및 압축 메타데이터(에프마스크 및 씨마스크 표면)이고, 다른 쌍은 색상 표면 및 그 메타데이터(색상 데이터 단편 및 DCC 키)이다.
도 7은 데이터 처리 방법(700)의 예시 흐름도이다. 단계 710에서, DCC 키가 판독된다. 이어서, 색상 데이터는 DCC 키에 기초하여 페칭되고, 에프마스크 데이터를 포함한다(단계 720). 단계 730에서, 색상 데이터(색상 단편들 및 DCC 압축을 포함함)가 압축해제된다. 또한, DCC만이 압축될 수 있고, 색상 데이터는 단편 압축된 형태의 캐시에 저장된다. 대안적으로, 색상 데이터는 완전히 압축될 수 있다. 이 시나리오에서, 압축해제는 픽셀/샘플을 처리하기 위해 캐시에 액세스할 때 수행되고, 그 다음, 데이터를 캐시 내로 다시 기록할 때 재압축된다.
예시 방법(700)에서, 단계 720에서 페칭되는 데이터는, 데이터(예를 들어, 에프마스크 데이터)뿐만 아니라 색상 단편 데이터 자체에 대한 단편 포인터들을 포함한다. 일단 데이터가 페치되면, 이는 완전히 압축된 형태로 저장될 수 있거나, DCC는 압축해제되어 단편 압축된 형태로 저장된다. 또한, 데이터는 완전히 압축해제될 수 있다.
단편 압축된 형태를 저장하는 경우, 단편 색상 데이터 및 단편 포인터는 별개의 데이터 구조에 저장될 수 있으며, 이는 더 용이한 처리를 제공할 수 있다. 또한, 단편화도가 특정 정도 미만인 경우, 데이터는 단편 압축된 형태로 저장될 수 있다. 예를 들어, 단편화도가 1인 경우, 이것은 단편 압축된 형태로 저장될 수 있다. 이 경우, 단편 포인터에 필요한 어떠한 저장도 할 필요가 없을 수 있다(예를 들어, 단지 1개의 단편이 존재하는 경우, 단편 포인터는 그 단편에 대해 모두 지정을 할 것이다).
데이터를 단편 압축된 형태로 저장하는 것에 대한 성능 이점이 있을 수 있다. 예를 들어, 완전히 커버되는 것이 단일 단편 픽셀 상부에 배합된 픽셀인 경우, 전체 픽셀에 대해 1회 블렌딩될 수 있다. 그러나, 픽셀이 완전히 압축해제되면, 모든 샘플이 동일한 값을 갖는다는 것을 나타내는 정보가 손실될 수 있고, 따라서, 블렌더는 픽셀당 한 번 대신에 샘플 당 한 번 블렌드 작동을 수행할 필요가 있을 것이다.
본원의 개시에 기초하여 많은 변형이 가능하다는 것을 이해해야 한다. 특징 및 요소가 특정 조합으로 위에서 설명되어 있지만, 각각의 특징 또는 요소는 다른 특징 및 요소 없이 단독으로 또는 다른 특징 및 요소와 함께 또는 이것 없이 다양한 조합으로 사용될 수 있다.
도면에 예시되고/되거나 본원에 설명된 다양한 기능 유닛(프로세서(102), 입력 드라이버(112), 입력 디바이스(108), 출력 드라이버(114), 출력 디바이스(110), 가속 처리 디바이스(116), 스케줄러(136), 그래픽 처리 파이프라인(134), 컴퓨팅 유닛(132), SIMD 유닛(138)을 포함하나, 이에 한정되지 않음)은 범용 컴퓨터, 프로세서 또는 프로세서 코어, 또는 프로그램, 소프트웨어 또는 펌웨어로 구현되고, 비일시적 컴퓨터 판독 가능 매체 또는 다른 매체에 저장되고, 범용 컴퓨터, 프로세서 또는 프로세서 코어에 의해 실행 가능할 수 있다. 제공된 방법은 범용 컴퓨터, 프로세서, 또는 프로세서 코어에서 구현될 수 있다. 적합한 프로세서는, 예를 들어, 범용 프로세서, 특수 목적 프로세서, 종래의 프로세서, 디지털 신호 프로세서(DSP), 복수의 마이크로프로세서, DSP 코어와 관련된 하나 이상의 마이크로프로세서, 제어기, 마이크로컨트롤러, ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 회로, 임의의 다른 유형의 IC(integrated circuit) 및/또는 상태 기계를 포함한다. 이러한 프로세서는 처리된 HDL(hardware description language) 명령어의 결과 및 넷리스트(예컨대 컴퓨터 판독가능 매체에 저장될 수 있는 명령어)를 포함하는 다른 중간 데이터를 사용하여 제조 프로세스를 구성함으로써 제조될 수 있다. 이러한 처리의 결과는 본 개시의 특징을 구현하는 프로세서를 제조하기 위해 반도체 제조 공정에서 사용되는 마스크작업일 수 있다.
본원에 제공된 방법 또는 흐름도는 범용 컴퓨터 또는 프로세서에 의한 실행을 위해 비일시적 컴퓨터 판독가능 저장 매체에 통합된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어에서 구현될 수 있다. 비일시적 컴퓨터 판독가능 저장 매체의 예는 ROM(read only memory), RAM(random access memory), 레지스터, 캐시 메모리, 반도체 메모리 장치, 내부 하드 디스크 및 탈착식 디스크와 같은 자기 매체, 자기 광학 매체, 및 CD-ROM 디스크 및 DVD(digital versatile disk)와 같은 광학 매체를 포함한다.

Claims (32)

  1. 색상 데이터를 처리하는 방법으로서,
    색상 버퍼에 단편 포인터 및 색상 데이터를 함께 저장하는 단계;
    처리를 위해 페치하기 위한 상기 색상 데이터를 나타내는 델타 색상 압축(DCC) 키를 판독하는 단계; 및
    압축해제를 위해 상기 판독 DCC 키에 기초하여 상기 단편 포인터 및 색상 데이터를 페치하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 압축해제된 상기 색상 데이터를 저장하는 단계를 더 포함하는, 방법.
  3. 제1항에 있어서, 상기 색상 데이터를 압축된 형태로 저장하는 단계를 더 포함하는, 방법.
  4. 제3항에 있어서, 상기 색상 데이터를 압축해제하는 단계를 더 포함하는, 방법.
  5. 제1항에 있어서, 상기 DCC를 압축해제하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서, 상기 DCC를 단편 압축된 형태로 저장하는 단계를 더 포함하는, 방법.
  7. 제6항에 있어서, 상기 단편 색상 데이터 및 상기 단편 포인터는 상기 색상 버퍼에서 별개의 데이터 구조에 저장되는, 방법.
  8. 제6항에 있어서, 상기 DCC는 단편화에 기초하여 단편 압축된 형태로 저장되는, 방법.
  9. 제8항에 있어서, 상기 DCC는, 단편화가 1과 동일한 경우, 단편 압축된 형태로 저장되는, 방법.
  10. 색상 데이터를 처리하는 장치로서,
    메모리; 및
    상기 메모리와 동작가능하게 결합되고 상기 메모리와 통신하는 프로세서를 포함하고, 상기 프로세서는 상기 메모리 내의 색상 버퍼에 단편 포인터 및 색상 데이터를 함께 저장하고, 처리를 위해 페치하기 위한 상기 색상 데이터를 나타내는 델타 색상 압축(DCC) 키를 판독하고, 압축해제를 위해 상기 판독 DCC 키에 기초하여 상기 단편 포인터 및 색상 데이터를 페치하도록 구성된, 장치.
  11. 제10항에 있어서, 상기 프로세서는 상기 메모리에 압축해제된 상기 색상 데이터를 저장하는, 장치.
  12. 제10항에 있어서, 상기 프로세서는 상기 메모리에서 상기 색상 데이터를 압축된 형태로 저장하는, 장치.
  13. 제12항에 있어서, 상기 프로세서는 상기 색상 데이터를 압축해제하는, 장치.
  14. 제10항에 있어서, 상기 프로세서는 상기 DCC를 압축해제하는, 장치.
  15. 제14항에 있어서, 상기 프로세서는 상기 DCC를 단편 압축된 형태로 저장하는, 장치.
  16. 제15항에 있어서, 상기 단편 색상 데이터 및 상기 단편 포인터는 상기 색상 버퍼에서 별개의 데이터 구조에 저장되는, 장치.
  17. 제15항에 있어서, 상기 DCC는 단편화에 기초하여 단편 압축된 형태로 저장되는, 장치.
  18. 제17항에 있어서, 상기 DCC는, 단편화가 1과 동일한 경우, 단편 압축된 형태로 저장되는, 장치.
  19. 색상 데이터를 처리하기 위한 비일시적 컴퓨터 판독 가능 매체로서, 상기 비일시적 컴퓨터 판독 가능 매체는 프로세서에 의해 실행될 때 상기 프로세서로 하여금 동작들을 수행하게 하는 명령어들이 기록되어 있는, 비일시적 컴퓨터 판독가능 매체로서, 상기 동작들은,
    색상 버퍼에 단편 포인터 및 색상 데이터를 함께 저장하는 단계;
    처리를 위해 페치하기 위한 상기 색상 데이터를 나타내는 델타 색상 압축(DCC) 키를 판독하는 단계; 및
    압축해제를 위해 상기 판독 DCC 키에 기초하여 상기 단편 포인터 및 색상 데이터를 페치하는 단계를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
  20. 제19항에 있어서, 압축해제된 상기 색상 데이터를 저장하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  21. 색상 데이터를 처리하는 방법으로서,
    제1 데이터를 압축하고 저장하는 단계;
    제2 데이터를 압축하고 저장하는 단계로서, 상기 제2 데이터는 상기 제1 데이터의 상기 압축과 관련된 정보를 포함하는, 단계; 및
    상기 제2 데이터에 저장된 상기 정보에 기초하여 처리를 위해 상기 제1 데이터를 페치하는 단계를 포함하는, 방법.
  22. 제21항에 있어서, 상기 제1 데이터는 단편 색상 데이터 및 상기 단편 색상 데이터와 관련된 단편 포인터를 포함하는, 방법.
  23. 제22항에 있어서, 상기 단편 색상 데이터 및 상기 단편 포인터는 상기 색상 버퍼에서 별개의 데이터 구조에 저장되는, 방법.
  24. 제21항에 있어서, 상기 제2 데이터는 처리를 위해 페칭하기 위한 상기 색상 데이터를 나타내는 델타 색상 압축(DCC) 키를 포함하는, 방법.
  25. 제24항에 있어서, 상기 DCC는 단편화에 기초하여 단편 압축된 형태로 저장되는, 방법.
  26. 제25항에 있어서, 상기 DCC는, 단편화가 1과 동일한 경우, 단편 압축된 형태로 저장되는, 방법.
  27. 색상 데이터를 처리하는 장치로서,
    메모리; 및
    상기 메모리와 동작가능하게 결합되고 상기 메모리와 통신하는 프로세서를 포함하고, 상기 프로세서는 제1 데이터를 압축 및 저장하고, 제2 데이터를 압축 및 저장하고, 상기 제2 데이터에 저장된 상기 정보에 기초하여 상기 처리를 위해 상기 제1 데이터를 페치하도록 구성되고, 상기 제2 데이터는 상기 제1 데이터의 압축에 관한 정보를 포함하는, 장치.
  28. 제27항에 있어서, 상기 제1 데이터는 단편 색상 데이터 및 상기 단편 색상 데이터와 관련된 단편 포인터를 포함하는, 장치.
  29. 제28항에 있어서, 상기 단편 색상 데이터 및 상기 단편 포인터는 상기 색상 버퍼에서 별개의 데이터 구조에 저장되는, 장치.
  30. 제27항에 있어서, 상기 제2 데이터는 처리를 위해 페칭하기 위한 상기 색상 데이터를 나타내는 델타 색상 압축(DCC) 키를 포함하는, 장치.
  31. 제30항에 있어서, 상기 DCC는 단편화에 기초하여 단편 압축된 형태로 저장되는, 장치.
  32. 제31항에 있어서, 상기 DCC는, 단편화가 1과 동일한 경우, 단편 압축된 형태로 저장되는, 장치.
KR1020227042802A 2020-05-13 2021-05-10 데이터 압축의 방법 및 장치 KR20230010672A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063024254P 2020-05-13 2020-05-13
US63/024,254 2020-05-13
US17/135,978 2020-12-28
US17/135,978 US11978234B2 (en) 2020-05-13 2020-12-28 Method and apparatus of data compression
PCT/US2021/031631 WO2021231328A1 (en) 2020-05-13 2021-05-10 Method and apparatus of data compression

Publications (1)

Publication Number Publication Date
KR20230010672A true KR20230010672A (ko) 2023-01-19

Family

ID=78512723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227042802A KR20230010672A (ko) 2020-05-13 2021-05-10 데이터 압축의 방법 및 장치

Country Status (6)

Country Link
US (1) US11978234B2 (ko)
EP (1) EP4150582A4 (ko)
JP (1) JP2023525725A (ko)
KR (1) KR20230010672A (ko)
CN (1) CN115552470A (ko)
WO (1) WO2021231328A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636625B2 (en) * 2020-12-11 2023-04-25 Qualcomm Incorporated Image compression and decompression
CN116469336B (zh) * 2023-06-20 2023-08-18 联士光电(深圳)有限公司 一种彩色微显示芯片的数字驱动方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6873323B1 (en) * 2000-08-02 2005-03-29 Ati International, Srl Video graphics system that includes custom memory and supports anti-aliasing and method therefor
US9530189B2 (en) 2009-12-31 2016-12-27 Nvidia Corporation Alternate reduction ratios and threshold mechanisms for framebuffer compression
US9330475B2 (en) 2012-05-01 2016-05-03 Qualcomm Incorporated Color buffer and depth buffer compression
US9495721B2 (en) 2012-12-21 2016-11-15 Nvidia Corporation Efficient super-sampling with per-pixel shader threads
US9305368B2 (en) 2013-06-21 2016-04-05 Intel Corporation Compression and decompression of graphics data using pixel region bit values
US10223809B2 (en) * 2016-05-27 2019-03-05 Intel Corporation Bandwidth-efficient lossy fragment color compression of multi-sample pixels
US10062143B2 (en) * 2016-09-12 2018-08-28 Advanced Micro Devices, Inc. Method and apparatus for compressing randomly accessed data
KR20180050140A (ko) 2016-11-04 2018-05-14 삼성전자주식회사 텍스쳐 압축 방법 및 장치, 그리고 텍스쳐 압축 해제 방법 및 장치
US9912957B1 (en) * 2017-04-01 2018-03-06 Intel Corporation Lossless compression for multisample render targets alongside fragment compression

Also Published As

Publication number Publication date
EP4150582A4 (en) 2024-04-03
WO2021231328A1 (en) 2021-11-18
CN115552470A (zh) 2022-12-30
JP2023525725A (ja) 2023-06-19
US20210358174A1 (en) 2021-11-18
US11978234B2 (en) 2024-05-07
EP4150582A1 (en) 2023-03-22

Similar Documents

Publication Publication Date Title
CN107250996B (zh) 用于存储器分级体系的压实的方法和装置
US10102662B2 (en) Primitive culling using automatically compiled compute shaders
EP3353746B1 (en) Dynamically switching between late depth testing and conservative depth testing
KR102480787B1 (ko) 순서에 관계 없는 캐시 리턴
KR102266962B1 (ko) 그래픽 파이프라인의 메모리 사용 감소를 위한 컴파일러 지원 기술
US10186076B2 (en) Per-sample MSAA rendering using comprehension data
US20200167076A1 (en) Compressed memory access improvement through compression-aware partial writes
KR20230010672A (ko) 데이터 압축의 방법 및 장치
KR20230027098A (ko) 델타 트리플릿 지수 압축
KR102128028B1 (ko) 비순차적 픽셀 셰이더 익스포트
US20220414939A1 (en) Render target compression scheme compatible with variable rate shading
US20210304488A1 (en) Sampling for partially resident textures
US20210398349A1 (en) Fine grained replay control in binning hardware
US20230377086A1 (en) Pipeline delay elimination with parallel two level primitive batch binning
US20210407182A1 (en) Load instruction for multi sample anti-aliasing

Legal Events

Date Code Title Description
A201 Request for examination