KR20190120166A - 델타 색상 압축의 비디오 적용 - Google Patents

델타 색상 압축의 비디오 적용 Download PDF

Info

Publication number
KR20190120166A
KR20190120166A KR1020197019341A KR20197019341A KR20190120166A KR 20190120166 A KR20190120166 A KR 20190120166A KR 1020197019341 A KR1020197019341 A KR 1020197019341A KR 20197019341 A KR20197019341 A KR 20197019341A KR 20190120166 A KR20190120166 A KR 20190120166A
Authority
KR
South Korea
Prior art keywords
bit
pixel data
block
compressed
pixel
Prior art date
Application number
KR1020197019341A
Other languages
English (en)
Other versions
KR102569371B1 (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
Priority claimed from EP17159108.4A external-priority patent/EP3367683A1/en
Application filed by 어드밴스드 마이크로 디바이시즈, 인코포레이티드, 에이티아이 테크놀로지스 유엘씨 filed Critical 어드밴스드 마이크로 디바이시즈, 인코포레이티드
Publication of KR20190120166A publication Critical patent/KR20190120166A/ko
Application granted granted Critical
Publication of KR102569371B1 publication Critical patent/KR102569371B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

픽셀 데이터를 압축하기 위한 시스템, 장치, 및 방법이 개시된다. 하나의 실시예에서, 픽셀 데이터 블록이 상수 값과 동일한 경우, 프로세서는 블록을 전체 픽셀 데이터 블록에 대한 상수 값을 특정하는 메타데이터 값으로 압축한다. 프로세서는 또한 상수 값이 비디오 특정 통상적인 최소 또는 최대 값과 동일한지 여부를 검출한다. 또 다른 실시예에서, 프로세서는 N-비트 컨테이너 내에서 정렬된 최상위 비트인 복수의 M-비트 픽셀 성분을 수신한다. 그 후 프로세서는 M-비트 픽셀 성분을 N-비트 컨테이너의 최하위 비트 위치로 시프트한다. 그 후 프로세서는 N-비트 컨테이너를 M-비트 컨테이너로 변환한다. 그 후, 프로세서는 M-비트 컨테이너를 압축하여 메모리 서브시스템에 저장된 압축된 픽셀 데이터 블록을 생성할 수 있다.

Description

델타 색상 압축의 비디오 적용
관련 기술의 설명
그래픽 처리 장치(GPU)가 그래픽-처리 작업을 수행하도록 구성된 복합 집적 회로이다. 예를 들어, GPU는 최종 사용자 애플리케이션, 가령, 비디오-게임 애플리케이션에 의해 요구되는 그래픽-처리 작업을 실행할 수 있다. GPU는 이산 디바이스이거나 동일한 디바이스에 또 다른 프로세서, 가령, 중앙 처리 장치(CPU)로서 포함될 수 있다. GPU는 렌더링으로 알려진 프로세스에서 이의 구성요소의 상위 레벨 기술로부터 이미지를 구성하는 픽셀을 생성한다. 일반적으로 GPU는 컴퓨팅 요소를 이용해 픽셀, 텍스처, 및 기하학적 데이터를 처리함으로써 연속 렌더링 개념을 이용한다. 컴퓨팅 요소는 래스터화기, 셋업 엔진, 색상 혼합기(color blender), 은면 소거(hidden surface removal), 텍스처 매핑 등의 기능을 실행할 수 있다. 이들 컴퓨팅 요소는 종종 셰이더, 셰이더 프로세서, 셰이더 어레이, 셰이더 유닛, 셰이더 엔진 등으로 지칭되며, 이때, "셰이더(shader)"는 렌더링 효과를 수행하기 위해 그래픽 자원에 의해 사용되는 소프트웨어 명령의 세트 또는 프로그램을 지칭하는 컴퓨터 그래픽 용어이다. "셰이더"는 또한 소프트웨어 명령을 실행하는 데 사용되는 실제 하드웨어 구성요소 또는 프로세서를 지칭할 수 있다. 셰이더 프로세서 또는 프로그램은 데이터를 읽고 렌더링하고 임의의 유형의 데이터 처리를 수행할 수 있다.
복합 그래픽 장면을 생성하는 데 관련된 처리 중 다수가 텍스처 데이터를 포함한다. 텍스처는 다양한 유형의 데이터, 가령, 색상, 투명도, 룩업 테이블, 또는 그 밖의 다른 데이터 중 임의의 것일 수 있다. 일부 실시예에서, 텍스처는 시각적 디테일을 추가하도록 기하학적 형태로 그려질 디지털화된 이미지일 수 있다. 텍스처의 사용을 통해, 도착 이미지를 생성하도록 모델이 렌더링될 때 많은 디테일이 그래픽 모델의 표면으로 매핑될 수 있다. 텍스처 매핑의 목적은 객체의 표면에 사실적인 외관을 제공하려는 것이다. 텍스처는 노멀 또는 범프 맵의 형태로 많은 속성, 가령, 색상, 표면 속성, 가령, 거울 반사 또는 미세 표면 디테일을 특정할 수 있다. 텍스처는 또한 이미지 데이터, 색상 또는 투명도 데이터, 거침도/평활도 데이터, 반사율 데이터 등일 수 있다.
텍스처 및 표면에서, 최소 정보가 "픽셀"이라고 지칭된다. 편의상, 일반적으로 픽셀이 규칙적인 2차원 격자로 배열된다. 이러한 배열을 이용함으로써, 동일한 동작을 각각의 픽셀에 독립적으로 균일하게 적용함으로써 많은 공통 동작이 구현될 수 있다. 특정 색상을 나타내기 위해, 각각의 픽셀은 3개의 값을 가질 수 있는데, 각각의 값은 희망 색상에서 나타나는 적색, 녹색, 및 청색의 정도에 대한 것이다. 일부 픽셀 포맷은 또한 픽셀의 투명도를 나타내는 알파(alpha)라고 일컬어지는 제4의 값을 포함할 수 있다. 이 포맷은 흔히 ARGB 또는 RGBA라고 지칭된다. 픽셀 색상을 나타내기 위한 또 다른 포맷은 YCbCr이고, 여기서 Y는 픽셀의 루마(luma), 또는 밝기에 대응하며, Cb 및 Cr은 2개의 색상-차이 색차 성분에 대응하며, 청색-차이(Cb) 및 적색-차이(Cr)를 나타낸다. 소스 픽셀의 각각의 개별 값이 본 명세서에서 "픽셀 성분"으로 지칭될 수 있다(가령, 적색 픽셀 성분, 청색 픽셀 성분, 청색-차이 크로마 픽셀 성분, 루마 픽셀 성분).
3D 컴퓨터 그래픽에서, 객체 상의 표면 디테일이 텍스처를 이용해 일반적으로 추가된다. 예를 들어, 텍스처 매핑을 이용해, 벽돌 벽의 2D 비트맵 이미지가 건물의 3D 모델을 나타내는 폴리곤의 세트에 적용되어, 상기 객체의 3D 렌더링에게 벽돌로 만들어진 외관을 제공할 수 있다. 사실적인 컴퓨터 그래픽을 제공하는 것이 일반적으로 많은 고품질의 상세한 텍스처를 필요로 한다. 텍스처의 사용은 많은 저장 공간 및 대역폭을 소비할 수 있으며, 따라서 텍스처는 저장 공간 및 대역폭 이용률을 감소하기 위해 압축될 수 있다.
텍스처 및 표면을 압축하는 것이 원본 텍스처 및 표면의 품질을 가능한 많이 유지하면서, 그래픽 시스템에서의 저장 및 대역폭을 감소시킬 수 있다. 그래픽 처리의 한계 중 하나가 메모리 또는 캐시 대역폭이 GPU가 자신의 완전한 능력에 도달하지 못하게 한다는 것이다. 압축이 사용되어 GPU에 의해 처리되도록 메모리 또는 캐시로부터 인출된 데이터의 양을 감소시킬 수 있다. 그러나 기존 유형의 압축이 GPU에 의해 처리 중인 텍스처 및 표면을 압축하는 데 그리 적합하지 않다.
본 명세서에 기재되는 방법 및 메커니즘의 이점이 첨부된 도면과 함께 이하의 기재를 참조함으로써 더 잘 이해될 수 있다:
도 1은 컴퓨팅 시스템의 하나의 실시예의 블록도이다.
도 2는 그래픽 처리 장치(GPU)의 하나의 실시예의 블록도이다.
도 3은 픽셀 데이터를 압축하기 위한 기법의 하나의 실시예의 블록도이다.
도 4는 블랙 및 화이트 픽셀 값을 위한 인코딩 값을 특정하는 2개의 표를 도시한다.
도 5는 픽셀 데이터를 압축하기 위한 방법의 하나의 실시예를 도시하는 일반화된 흐름도이다.
도 6은 압축된 픽셀 데이터의 블록을 압축해제하기 위한 방법의 하나의 실시예를 도시하는 일반화된 흐름도이다.
도 7은 일정한 픽셀 데이터를 압축하기 위한 방법의 하나의 실시예를 도시하는 일반화된 흐름도이다.
도 8은 픽셀 데이터를 압축하기 위한 방법의 또 다른 실시예를 도시하는 일반화된 흐름도이다.
도 9는 알파 채널로 픽셀 데이터를 압축하기 위한 방법의 또 다른 실시예를 도시하는 일반화된 흐름도이다.
이하의 기술에서, 본 명세서에서 제공되는 방법 및 메커니즘의 완전한 이해를 제공하기 위해 다수의 특정 세부사항이 제공된다. 그러나 해당 분야의 통상의 기술자라면, 다양한 실시예가 이들 특정 상세사항 없이 실시될 수 있음을 알 것이다. 일부 경우, 본 명세서에 기재된 접근법을 모호하게 하지 않도록 잘 알려진 구조, 구성요소, 신호, 컴퓨터 프로그램 명령 및 기법이 상세히 나타내지 않았다. 도시의 단순성 및 명료성을 위해, 도면에 나타난 요소들이 반드시 실측 비율로 그려지진 않았다. 예를 들어, 일부 요소의 치수가 다른 요소에 비해 과장될 수 있다.
픽셀 데이터를 압축하기 위한 시스템, 장치 및 방법이 본 명세서에 개시된다. 일부 실시예에서, 시스템은 적어도 메모리 서브시스템에 연결된 프로세서를 포함한다. 메모리 서브시스템은 하나 이상의 레벨의 캐시 및/또는 하나 이상의 메모리를 포함한다. 하나의 실시예에서, 프로세서는 N-비트 컨테이너에서 정렬되는 최상위 비트(MSB)인 복수의 M-비트 픽셀 성분을 수신하도록 구성되는데, 여기서 N 및 M은 정수이고, N은 M보다 크다. 그 후, 프로세서가 M-비트 픽셀 성분을 N-비트 컨테이너의 최하위 비트(LSB) 위치로 하향 이동시킨다. 그 후, 프로세서는 복수의 N-비트 컨테이너를 복수의 M-비트 컨테이너로 변환한다. 그 후, 프로세서는 복수의 M-비트 컨테이너를 압축하여 압축된 픽셀 데이터 블록을 생성할 수 있다. 그 후, 프로세서는 압축된 픽셀 데이터 블록을 메모리 서브시스템에 저장한다.
메모리 서브시스템에 저장된 압축된 픽셀 데이터 블록을 압축해제하라는 요청을 수신한 것에 응답하여, 프로세서는 압축된 픽셀 데이터 블록을 불러오도록 구성된다. 그 후, 프로세서는 압축된 픽셀 데이터 블록을 압축 해제하여 M-비트 컨테이너 내에 픽셀 성분을 생성할 수 있다. 그 후 프로세서는 M-비트 컨테이너를 N-비트 컨테이너로 복원한다. 그 후, 프로세서는 M-비트 픽셀 성분을 N-비트 컨테이너의 MSB 위치로 시프트한다. 그 후, 프로세서는 N-비트 컨테이너 내 픽셀 성분을 클라이언트(가령, 셰이더)로 전송한다.
도 1을 참조하면, 컴퓨팅 시스템(100)의 하나의 실시예의 블록도가 도시되어 있다. 하나의 실시예에서, 컴퓨팅 시스템(100)은 메모리(150)에 연결된 시스템 온 칩(SoC)(105)을 포함한다. SoC(105)는 또한 집적 회로(IC)라고 지칭될 수 있다. 하나의 실시예에서, SoC(105)는 중앙 처리 장치(CPU)(165)의 처리 유닛(175A-N), 입/출력(I/O) 인터페이스(155), 캐시(160A-B), 패브릭(120), 그래픽 처리 장치(GPU)(130), 로컬 메모리(110), 및 메모리 제어기(들)(140)를 포함한다. SoC(105)는 또한 도면을 모호하게 하지 않도록 도 1에 도시되지 않는 그 밖의 다른 구성요소를 포함할 수 있다. 처리 유닛(175A-N)은 임의의 개수 및 유형의 처리 장치를 나타낸다. 하나의 실시예에서, 처리 유닛(175A-N)은 CPU 코어이다. 또 다른 실시예에서, 처리 유닛(175A-N) 중 하나 이상이 그 밖의 다른 유형의 처리 장치(가령, 주문형 집적 회로(ASIC), 현장 프로그램 가능 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP))이다. CPU(165)의 처리 유닛(175A-N)은 캐시(160A-B) 및 패브릭(120)에 연결된다.
하나의 실시예에서, 처리 유닛(175A-N)은 특정 명령 세트 아키텍처(ISA)의 명령을 실행하도록 구성된다. 각각의 처리 유닛(175A-N)은 하나 이상의 실행 유닛, 캐시 메모리, 스케줄러, 분기 예측 회로 등을 포함한다. 하나의 실시예에서, 처리 유닛(175A-N)은 시스템(100)의 메인 제어 소프트웨어, 가령, 운영 체제를 실행하도록 구성된다. 일반적으로, 사용 동안 처리 유닛(175A-N)에 의해 실행되는 소프트웨어는 시스템(100)의 다른 구성요소를 제어하여, 시스템(100)의 원하는 기능을 구현할 수 있다. 또한 처리 유닛(175A-N)은 그 밖의 다른 소프트웨어, 가령, 애플리케이션 프로그램을 실행할 수 있다.
GPU(130)는 적어도 압축기 모듈(135), 캐시(들)(138), 및 계산 유닛(145A-N)을 포함한다. 압축기 모듈(135)은 또한 "압축 모듈" 또는 "압축 유닛"이라고도 지칭될 수 있다. 계산 유닛(145A-N)은 그래픽 또는 범용 처리를 위해 사용되는 임의의 개수 및 유형의 계산 유닛을 나타낸다. 각각의 계산 유닛(145A-N)은 임의의 개수의 실행 유닛을 포함하며, 계산 유닛 당 실행 유닛의 개수는 실시예에 따라 다르다. GPU(130)는 로컬 메모리(110) 및 패브릭(120)에 연결된다. 하나의 실시예에서, 로컬 메모리(110)는 고대역폭 메모리(HBM)를 이용해 구현된다. 하나의 실시예에서, GPU(130)는 그래픽 파이프라인 동작, 가령, 그리기 명령어, 픽셀 동작, 기하학 계산 및 이미지를 디스플레이에 렌더링하기 위한 그 밖의 다른 동작을 실행하도록 구성된다. 또 다른 실시예에서, GPU(130)는 그래픽과 무관한 동작을 실행하도록 구성된다. 추가 실시예에서, GPU(130)는 그래픽 동작과 비-그래픽 관련 동작 모두를 실행하도록 구성된다.
하나의 실시예에서, GPU(130)는 N-비트 컨테이너 내에 정렬되는 최상위 비트(MSB)인 복수의 M-비트 픽셀 성분을 수신하도록 구성되며, 여기서 N과 M은 정수이고, N은 M보다 크다. 복수의 M-비트 픽셀 성분을 수신한 후, GPU(130)는 M-비트 픽셀 성분을 N-비트 컨테이너의 최하위 비트(LSB) 위치로 하향 시프트한다. 그 후 GPU(130)는 복수의 N-비트 컨테이너를 복수의 M-비트 컨테이너로 변환한다. 그 후, GPU(130)는 복수의 M-비트 컨테이너를 압축하여 압축된 픽셀 데이터 블록을 생성할 수 있다. 그 후 GPU(130)는 압축된 픽셀 데이터 블록을 로컬 메모리(110)로 저장한다.
I/O 인터페이스(155)는 패브릭(120)에 연결되고 I/O 인터페이스(155)는 임의의 개수 및 유형의 인터페이스(가령, 주변 구성요소 인터커넥트(PCI) 버스, PCI-확장형(PCI-X), PCIE(PCI Express) 버스, 기가비트 이더넷(GBE) 버스, 전역 직렬 버스(USB))를 나타낸다. 다양한 유형의 주변 디바이스가 I/O 인터페이스(155)에 연결될 수 있다. 이러한 주변 디바이스는 디스플레이, 키보드, 마우스, 프린터, 스캐너, 조이스틱 또는 그 밖의 다른 유형의 게임 제어기, 미디어 기록 디바이스, 외부 저장 디바이스, 네트워크 인터페이스 카드 등을 포함한다(그러나 이에 한정되지 않음).
SoC(105)는 하나 이상의 메모리 모듈을 포함하는 메모리(150)에 연결된다. 각각의 메모리 모듈은 장착된 하나 이상의 메모리 디바이스를 포함한다. 일부 실시예에서, 메모리(150)는 SoC(105)가 또한 장착되는 마더보드 또는 그 밖의 다른 캐리어 상에 장착되는 하나 이상의 메모리 디바이스를 포함한다. 하나의 실시예에서, 메모리(150)는 동작 동안 SoC(105)와 함께 사용되기 위한 랜덤 액세스 메모리(RAM)를 구현하는 데 사용된다. 구현되는 RAM은 정적 RAM(SRAM), 동적 RAM(DRAM), 저항성 RAM(ReRAM), 상 변화 RAM(PCRAM), 또는 그 밖의 다른 임의의 휘발성 또는 비휘발성 RAM일 수 있다. 메모리(150)를 구현하는 데 사용되는 DRAM의 유형으로는 이중 데이터 율(DDR) DRAM, DDR2 DRAM, DDR3 DRAM 등을 포함한다. 도 1에 명시적으로 나타나지 않지만, SoC(105)는 처리 장치(175A-N) 및/또는 계산 유닛(145A-N) 내부의 하나 이상의 캐시 메모리를 더 포함할 수 있다. 일부 실시예에서, SoC(105)는 처리 장치(175A-N)에 의해 사용되는 캐시(160A-B)를 포함한다. 하나의 실시예에서, 캐시(160A-B)는 캐시 제어기를 포함하는 캐시 서브시스템의 일부이다.
문자 "N"은 본 명세서에서 다양한 구조(가령, CPU(165) 내 임의의 개수의 처리 장치(175A-N), 가령, 하나의 처리 장치) 옆에 디스플레이될 때 일반적으로 상기 구조에 대한 임의의 개수의 요소를 지시함을 의미한다. 덧붙여, 도 1 내 문자 "N"을 이용하는 상이한 도면부호(가령, 계산 유닛(145A-N))가 상이한 요소들이 동일한 개수로 제공됨을 나타낸다고 의도되지 않는다(가령, CPU(165) 내 처리 장치(175A-N)의 개수는 GPU(130) 내 계산 유닛(145A-N)의 개수와 상이할 수 있다).
다양한 실시예에서, 컴퓨팅 시스템(100)은 컴퓨터, 랩톱, 모바일 디바이스, 서버 또는 그 밖의 다른 다양한 임의의 유형의 컴퓨팅 시스템 또는 디바이스일 수 있다. 컴퓨팅 시스템(100) 및/또는 SoC(105)의 구성요소의 개수는 실시예에 따라 달라질 수 있다. 각각의 구성요소/서브구성요소가 도 1에 도시된 개수보다 많거나 적을 수 있다. 예를 들어, 또 다른 실시예에서, SoC(105)는 복수의 메모리에 연결된 복수의 메모리 제어기를 포함할 수 있다. 컴퓨팅 시스템(100) 및/또는 SoC(105)는 도 1에 도시되지 않은 그 밖의 다른 구성요소를 포함할 수 있다. 덧붙여, 또 다른 실시예에서, 컴퓨팅 시스템(100) 및 SoC(105)는 도 1에 도시된 것과 다른 방식으로 구성될 수 있다.
도 2를 참조하면, 그래픽 처리 장치(GPU)(200)의 하나의 실시예의 블록도가 도시된다. 하나의 실시예에서, GPU(200)의 로직이 (도 1의) GPU(130)에 포함된다. 하나의 실시예에서, GPU(200)는 적어도 셰이더 어레이(215A-D), 명령어 센터 허브(220), 패브릭(225), 및 캐시(230)를 포함한다. GPU(200)가 도면을 모호하게 하지 않도록 도 2에 도시되지 않은 그 밖의 다른 로직 및/또는 그 밖의 다른 구성요소를 더 포함한다. GPU(200)의 구조는 하나의 실시예에서 사용되는 구조의 하나의 예시에 불과하다. 또 다른 실시예에서, GPU(200)는 그 밖의 다른 방식으로 구성될 수 있다.
셰이더 어레이(215A-D)는 GPU(200)에 포함되는 임의의 개수 및 유형의 셰이더 계산 자원을 나타낸다. 셰이더 어레이(215A-D)는 "셰이더 유닛"으로도 지칭될 수 있다. 각각의 셰이더 어레이(215A-D)는 그래픽을 렌더링하기 위한 지오메트리, 정점, 픽셀, 및/또는 그 밖의 다른 셰이딩 동작을 수행하기 위한 다양한 계산 자원을 포함한다. 다양한 실시예에서, 계산 자원은 명령을 인출 및 디코딩하기 위한 구성요소, 산술 계산을 수행하기 위한 하나 이상의 산술 로직 유닛 "ALU" 및 그 밖의 다른 자원을 포함한다. 도 2에 도시되지 않더라도, 각각의 셰이더 어레이(215A-D)가 레벨 1(L1) 캐시를 포함할 수 있다. 셰이더 어레이(215A-D)는 패브릭(225)을 통해 캐시(230)로 연결된다. 하나의 실시예에서, 캐시(230)는 레벨 2(L2) 캐시이다. 실시예에 따라, 캐시(230)는 메모리(도시되지 않음) 또는 또 다른 레벨 캐시(도시되지 않음)에 연결된다. 명령어 센터 허브(220)는 임의의 개수 및 유형의 명령어 프로세서, 스케줄러, 및 그 밖의 다른 명령어 처리 자원을 나타낸다.
하나의 실시예에서, 압축기 모듈(235)은 캐시(230) 내에 위치한다. 또 다른 실시예에서, 압축기 모듈(235)은 패브릭(225) 내에 위치한다. 하나의 실시예에서, GPU(200)가 픽셀 데이터를 수신할 때, 압축기 모듈(230)은 델타 색상 압축(DCC: delta color compression)을 이용해 픽셀 데이터를 압축하도록 구성된다. 그 후, 압축된 데이터는 캐시(230)에 써진다. 하나의 실시예에서, 압축기 모듈(230)은 압축된 데이터를 압축해제하고 압축해제된 데이터를 클라이언트(가령, 셰이더 어레이(215A-D))로 전달하도록 구성된다.
도 3을 참조하면, 픽셀 데이터를 압축하기 위한 기법의 하나의 실시예의 블록도가 도시된다. 하나의 실시예에서, 프로세서가 N-비트 컨테이너에서 정렬된 최상위 비트(MSB)인 M-비트 픽셀 데이터를 수신한다. 설명 목적으로, N과 M은 정수이고 N은 M보다 크다고 가정된다. 이는 도 3의 상부의 N-비트 컨테이너(305)에 도시되어 있다. 본 명세서에서 사용될 때, 컨테이너는 복수의 저장 위치로서 형성되며, 이때 저장 위치는 임의의 적합한 유형의 저장 요소(가령, 레지스터, 메모리, 캐시, 처리 레인)로 구현되며, 저장 요소의 유형은 실시예에 따라 달라진다. 도시된 바와 같이, 픽셀 값(PM-1, PM-2 등)의 각각의 비트가 N-비트 컨테이너(305)의 MSB 위치 내에서 나타난다. 또한, N-비트 컨테이너(305)의 최하위 비트(LSB)가 모두 0 비트이다. 예를 들어, 하나의 실시예에서, N은 16과 동일하고 M은 10과 동일하며, 10-비트 픽셀 값이 16-비트 컨테이너의 상위 10 비트 내에 저장되고, 하위 6 비트는 0과 동일하다.
N-비트 컨테이너(305)를 압축하기 전에, N-비트 컨테이너(305) 내 픽셀 데이터가 M-비트 컨테이너(310)의 LSB로 하향 시프트된다. 대안으로, N-비트 컨테이너(305)의 LSB 내 0들이 폐기되어 M-비트 컨테이너(310)를 생성할 수 있다. 그 후 DCC를 이용해 M-비트 컨테이너(310) 내 픽셀 데이터가 압축될 때, 인접한 픽셀들 간 델타 값이 감소되어, 픽셀 데이터가 N-비트 컨테이너(305) 내 픽셀 데이터 압축되는 경우보다 높은 압축비를 갖고 압축될 수 있다.
M-비트 픽셀 데이터를 갖는 N-비트 컨테이너를 압축하기 위한 스킴의 예시적 블록도가 도 3의 하단에 나타난다. N-비트 컨테이너 내 픽셀 데이터가 프로세서에 의해 수신되고 시프트 유닛(shift unit)(315)에 연결된다. 시프트 유닛(315)은 N-비트 컨테이너 내 데이터를 M-비트 컨테이너 내 데이터로 변환한다. 그 후, M-비트 컨테이너 내 데이터가 입력으로서 압축기 모듈(320)로 연결된다. 압축기 모듈(320)은 M-비트 컨테이너 내 데이터를 압축하기 위한 DCC를 이용하도록 구성되고, 그 후 압축기 모듈(320)이 압축된 데이터를 메모리 서브시스템(325)에 쓴다. 메모리 서브시스템(325)은 임의의 개수의 캐시 레벨 및/또는 메모리 디바이스를 포함한다.
압축해제기 모듈(decompressor module)(330)이 메모리 서브시스템(325)으로부터 압축된 데이터를 불러오고 압축된 데이터를 압축해제하여 M-비트 컨테이너에 데이터를 생성할 수 있다. 그 후, 복원 유닛(expansion unit)(335)은 M-비트 컨테이너 내 데이터를 복원하여 N-비트 컨테이너 내 데이터를 생성할 수 있다. 그 후 N-비트 컨테이너 내 데이터가 클라이언트(가령, 셰이더)로 전달된다. 하드웨어 및/또는 소프트웨어의 임의의 적합한 조합을 이용해, 시프트 유닛(315), 압축기 모듈(320), 압축해제기 모듈(330), 및 복원 유닛(335)이 구현될 수 있다. 시프트 유닛(315), 압축기 모듈(320), 압축해제기 모듈(330), 및 복원 유닛(335)은, 실시예에 따라, 함께 조합되거나 개별적으로 구현될 수 있다.
도 4를 참조하면, 블랙 및 화이트 픽셀 값에 대한 인코딩 값을 특정하는 2개의 표가 나타난다. 하나의 실시예에서, YCbCr 색상 공간의 Y, Cb, Cr 성분의 특정 픽셀 성분에서 블랙을 나타내는 데 사용되는 인코딩 값이 수치 표현에서 가능한 가장 낮은 값이 아니다. 오히려, Y, Cb, Cr 성분에 대한 블랙을 나타내는 데 사용되는 인코딩 값은 0이 아닌 값이다. 또한, 화이트를 나타내는 데 사용되는 인코딩 값이 수치 표현에서 가능한 가장 높은 값이 아니다. 예를 들어, 표(400)가 8비트 인코딩 값(410) 및 Y 및 C(Cb 및 Cr) 성분에 대한 블랙 및 화이트 픽셀 값을 각각 나타내는 데 사용되는 대응하는 비트 표현(415 및 417)을 나타낸다. 블랙은 컬럼(415 및 417)에서 나타난 대응하는 비트 표현을 갖는 8-비트 인코딩 값에 대해 Y 성분에서 16으로, C 성분에서 128로 표현된다. 또한 화이트는 컬럼(415 및 417)에서 나타난 대응하는 비트 표현을 갖는 8-비트 인코딩 값에 대해 Y 성분에서 235로, C 성분에서 128로 나타난다. 압축기 모듈이 데이터의 블록이 블랙 픽셀만 포함한다고 검출한 경우, 프로세서는 블록이 블랙 픽셀만 포함함을 지시하기 위한 제1 메타데이터 키를 생성하고 그 후 프로세서는 제1 메타데이터 키만 저장하면서 데이터 블록을 폐기한다. 압축기 모듈이 데이터의 블록이 화이트 픽셀만 포함한다고 검출하는 경우, 프로세서는 블록이 블랙 픽셀만 포함함을 지시하기 위한 제2 메타데이터 키를 생성하고, 그 후 프로세서는 제2 메타데이터 키만 저장하면서 데이터의 블록을 폐기한다.
표(420)는 10-비트 인코딩 값(430) 및 블랙 및 화이트 값에 대한 대응하는 비트 표현(435 및 437)을 나타낸다. 블랙에 대한 10-비트 인코딩 값(430)은 Y 성분에 대해 64이고 C 성분에 대해 512이며, 대응하는 비트 표현은 컬럼(435 및 437)에 나타나 있다. 화이트에 대한 10-비트 인코딩 값(430)은 Y 성분에 대해 940이고 C 성분에 대해 512이며, 대응하는 비트 표현이 컬럼(435 및 437)에 나타나 있다. 그 밖의 다른 실시예가 각각의 인코딩 값에 대해 그 밖의 다른 비트 수를 이용할 수 있으며, 이때 동일한 패턴을 따르는 블랙 및 화이트를 나타내는 데 사용되는 값이 8-비트 및 10-비트 표현에 대해 나타난다. 압축기 모듈(가령, 도 1의 압축기 모듈(135))은 픽셀 값이 특수 블랙 및 화이트 값과 매칭되는지 여부를 결정하도록 구성된다. 특정 데이터 블록의 모든 픽셀 성분이 블랙 또는 화이트 값과 동일한 경우, 압축기 모듈은 전체 데이터 블록을 압축하고 그 후 어느 값(블록 또는 화이트)이 데이터 블록에 대해 검출되었는지를 가리키는 메타데이터 키를 생성한다.
도 5를 참조하면, 비디오 픽셀 데이터를 압축하기 위한 방법(500)의 하나의 실시예가 도시된다. 설명 목적으로, 이 실시예의 단계들 및 도 6-9의 단계들이 순차 방식으로 도시된다. 그러나 기재된 방법의 다양한 실시예에서, 기재된 요소 중 하나 이상이 동시에, 또는 도시된 바와 상이한 순서로 수행되거나 전체적으로 생략된다. 그 밖의 다른 추가 요소가 또한 경우에 따라 수행된다. 본 명세서에 기재된 다양한 시스템 또는 장치 중 임의의 것이 방법(500)을 구현하도록 구성된다.
프로세서는 N-비트 컨테이너 내에 정렬되는 최상위 비트(MSB)인 복수의 M-비트 픽셀 성분을 수신하고, N 및 M은 정수이고, N은 M보다 크다(블록(505)). 하나의 실시예에서, 프로세서는 압축기 모듈을 포함하고, 프로세서는 캐시 및/또는 메모리에 연결된다. 그 후, 프로세서는 M-비트 픽셀 성분을 N-비트 컨테이너의 최하위 비트(LSB) 위치로 하향 시프트한다(블록(510)). 그 후, 프로세서는 복수의 N-비트 컨테이너를 복수의 M-비트 컨테이너로 변환한다(블록(515)). 또 다른 실시예에서, 프로세서는 N-비트 컨테이너에서 각각의 픽셀 성분의 (N-M) 최하위 비트(LSB)를 폐기하여 복수의 M-비트 컨테이너를 생성할 수 있다. 그 후, 프로세서는 복수의 M-비트 픽셀 성분을 압축하여 압축된 픽셀 데이터 블록을 생성할 수 있다(블록(520)). 그 후 프로세서는 메모리 서브시스템에 압축된 픽셀 데이터 블록을 저장한다(블록(525)). 블록(525) 후, 방법(500)이 종료된다.
도 6을 참조하면, 압축된 픽셀 데이터의 블록을 압축해제하기 위한 방법(600)의 하나의 실시예가 도시된다. 프로세서는 메모리 서브시스템으로부터 압축된 픽셀 데이터 블록을 불러온다(블록(605)). 하나의 실시예에서, 프로세서는 압축기 모듈을 포함하며, 메모리 서브시스템은 하나 이상의 레벨의 캐시 및/또는 하나 이상의 메모리를 포함한다. 그 후, 프로세서는 압축된 픽셀 데이터 블록을 압축해제하여 M-비트 컨테이너 내 픽셀 성분을 생성할 수 있다(블록(610)). 그 후 프로세서는 M-비트 컨테이너를 N-비트 컨테이너로 복원한다(블록(615)). 그 후 프로세서는 픽셀 성분을 N-비트 컨테이너의 MSB 위치로 시프트한다(블록(620)). 그 후 프로세서는 N-비트 컨테이너의 MSB 위치 내 픽셀 성분을 클라이언트로 전달한다(블록(625)). 하나의 실시예에서, 클라이언트는 셰이더이다. 블록(625) 후, 방법(600)은 종료한다.
도 7을 참조하면, 일정한 픽셀 데이터를 압축하기 위한 방법(700)의 하나의 실시예가 도시된다. 압축기 모듈은 픽셀 데이터의 블록을 수신한다(블록(705)). 압축기 모듈은 하드웨어 및/또는 소프트웨어의 임의의 적절한 조합으로 구현된다. 하나의 실시예에서, 압축기 모듈은 고정 크기의 데이터 블록을 수신하도록 구성된다. 하나의 실시예에서, 고정 크기는 256 바이트이다. 또 다른 실시예에서, 고정 크기는 그 밖의 다른 데이터 크기를 포함할 수 있다. 그 후, 압축기 모듈은 수신된 픽셀 데이터가 상수 값과 동일한지 여부를 결정한다(조건 블록(710)).
수신된 픽셀 데이터가 상수 값과 동일한 경우(조건 블록(710), "예" 분기), 압축기 모듈은 상수 값이 블랙의 인코딩 값과 동일한지 여부를 결정한다(조건 블록(720)). 블랙의 인코딩 값은 두 개의 상이한 실시예에 대해 (도 4의) 표(400 및 420)에서 나타난다. 수신된 픽셀 데이터가 상수 값과 동일하지 않는 경우(조건 블록(710), "아니오" 분기), 압축기 모듈은 픽셀 데이터 블록을 압축하고 픽셀 데이터 블록이 압축된 방식을 특정하는 메타데이터 키를 생성한다(블록(715)). 그 후 압축기 모듈은 압축된 데이터 블록을 저장한다(블록(718)). 그 후 압축기 모듈은 메타데이터 키를 저장한다(블록(745)). 블록(745) 후, 방법(700)은 종료한다.
상수 값이 블랙의 인코딩 값과 동일한 경우(조건 블록(720), "예" 분기), 압축기 모듈은 데이터 블록이 모두 블랙 픽셀로 구성됨을 가리키기 위한 메타데이터 키를 생성한다(블록(725)). 그 후 압축기 모듈이 픽셀 데이터 블록을 폐기하고(블록(740)) 메타데이터 키를 저장한다(블록(745)). 상수 값이 블랙의 인코딩 값과 동일하지 않은 경우(조건 블록(720), "아니오" 분기), 압축기 모듈은 상수 값이 화이트의 인코딩 값과 동일한지 여부를 결정한다(조건 블록(730)). 화이트의 인코딩 값이 두 개의 상이한 실시예에 대해 표(400 및 420)에 나타난다. 상수 값이 화이트의 인코딩 값과 동일한 경우(조건 블록(730), "예" 분기), 압축기 모듈은 데이터 블록이 모두 화이트 픽셀로 구성됨을 가리키기 위한 메타데이터 키를 생성한다(블록(735)). 그 후, 압축기 모듈은 픽셀 데이터 블록을 폐기하고(블록(740)) 메타데이터 키를 저장한다(블록(745)).
상수 값이 화이트의 특수 인코딩 값과 동일하지 않은 경우(조건 블록(730), "아니오" 분기), 압축기 모듈은 상수 값의 지시자를 저장한다(블록(750)). 하나의 실시예에서, 상수 값이 레지스터에 저장된다. 그 후, 압축기 모듈은 픽셀 데이터 블록이 비-블록 및 비-화이트 상수 값 픽셀로 구성됨을 특정하기 위한 메타데이터 키를 생성한다(블록(755)). 블록(755) 후, 압축기 모듈은 픽셀 데이터 블록을 폐기하고(블록(740)) 메타데이터 키를 저장한다(블록(745)).
도 8을 참조하면, 픽셀 데이터를 압축하기 위한 방법(800)의 또 다른 실시예가 도시된다. 압축기 모듈은 복수의 픽셀 성분을 수신한다(블록(805)). 그 후, 압축기 모듈은 픽셀 데이터 블록을 압축된 데이터 블록으로 압축한다(블록(810)). 하나의 실시예에서, 압축기 모듈은 델타 색상 압축(DCC)을 이용하여 데이터 블록을 압축할 수 있다.
압축된 데이터 블록의 크기가 임계값보다 큰 경우(조건 블록(815), "예" 분기), 압축기 모듈은 압축된 데이터 블록을 폐기한다(블록(820)). 그 후, 복수의 원본 픽셀 성분이 함께 묶여서 컨테이너 내 미사용 비트를 제거할 수 있다(블록(825). 그 후 압축기 모듈이 묶인 픽셀 성분을 저장한다(블록(830)). 하나의 실시예에서, 압축된 데이터 블록을 저장하도록 특정 크기 공간만 할당된다. 이 실시예에서, 임계값이 압축된 데이터 블록에 대해 할당된 메모리 풋프린트의 크기와 동일하게 설정될 수 있다. 하나의 실시예에서, 수신된 픽셀 성분의 256 바이트가 존재하고 임계값이 192 바이트이다. 예를 들어, 이 실시예에서, 192 바이트가 압축된 데이터 블록을 저장하기 위해 할당된 공간 크기일 수 있다. 또 다른 실시예에서, 수신된 픽셀 성분 및/또는 임계값의 크기가 그 밖의 다른 바이트 수일 수 있다. 압축된 데이터 그룹의 크기가 임계값 미만인 경우(조건 블록(815), "아니오" 분기), 압축기 모듈은 압축된 데이터 블록을 저장한다(블록(835)). 블록(830 및 835) 후, 방법(800)이 종료된다.
도 9를 참조하면, 알파 채널을 이용해 픽셀 데이터를 압축하기 위한 방법(900)의 하나의 실시예가 도시된다. 압축 모듈은 알파 채널을 포함하는 픽셀 데이터 블록을 수신한다(블록(905)). 픽셀 데이터 블록의 알파 성분이 0과 동일한 경우(조건 블록(910), "예" 분기), 그 밖의 다른 픽셀 성분이 상수 값과 동일하게 설정된다(블록(915)). 예를 들어, 하나의 실시예에서, 그 밖의 다른 픽셀 성분이 지정 값으로 설정된다. 하나의 실시예에서, 그 밖의 다른 픽셀 성분이 0으로 설정된다. 또 다른 실시예에서, 또 다른 픽셀 성분이 그 밖의 다른 다양한 상수 값 중 임의의 것으로 설정된다. 그 후, 픽셀 데이터 블록이 상수 값으로 압축된다(블록(920)). 픽셀 데이터 블록을 상수 값으로 압축하는 것은 이뤄진 압축의 양을 증가시키는 데 도움이 될 수 있다. 달리 말하면, 픽셀 데이터 블록의 알파 성분이 0과 동일하지 않는 경우(조건 블록(910), "아니오" 분기), 압축 모듈이 픽셀 데이터 블록의 정규 압축을 수행한다(블록(925)). 블록(920 및 925) 후, 방법(900)이 종료된다.
다양한 실시예에서, 소프트웨어 애플리케이션의 프로그램 명령이 이전에 기재된 방법 및/또는 메커니즘을 구현하는 데 사용된다. 프로그램 명령은 하이-레벨 프로그래밍 언어, 가령, C로 하드웨어의 거동을 기술한다. 대안으로, 하드웨어 설계 언어(HDL), 가령, 베릴로그(Verilog)가 사용된다. 프로그램 명령은 비일시적 컴퓨터 판독형 저장 매체 상에 저장된다. 복수 유형의 저장 매체가 이용 가능하다. 저장 매체는 사용 동안 컴퓨팅 시스템에 의해 액세스되어, 프로그램 명령 및 동반된 데이터를 프로그램 실행을 위해 컴퓨팅 시스템에 제공할 수 있다. 컴퓨팅 시스템은 적어도 하나 이상의 메모리 및 프로그램 명령을 실행시키도록 구성된 하나 이상의 프로세서를 포함한다.
상기 기재된 실시예는 구현예의 비제한적 예시에 불과함이 강조되어야 한다. 상기 개시내용을 완전히 이해하면 다양한 변형 및 수정이 해당 분야의 통상의 기술자에게 자명할 것이다. 이하의 청구범위는 이러한 모든 변형 및 수정을 포괄하는 것으로 해석되도록 의도되었다.

Claims (20)

  1. 시스템으로서,
    메모리 서브시스템,
    메모리 서브시스템에 연결된 프로세서를 포함하고,
    상기 프로세서는
    N-비트 컨테이너 내에 정렬된 최상위 비트(MSB)인 복수의 M-비트 픽셀 성분을 수신 - N 및 M은 정수이고, N은 M보다 큼 - 하고,
    M-비트 픽셀 성분을 N-비트 컨테이너의 최하위 비트(LSB) 위치로 하향 시프트하며,
    복수의 N-비트 컨테이너를 복수의 M-비트 컨테이너로 변환하고,
    복수의 M-비트 컨테이너를 압축하여 압축된 픽셀 데이터 블록을 생성하며,
    압축된 픽셀 데이터 블록을 메모리 서브시스템에 저장하도록 구성되는, 시스템.
  2. 제1항에 있어서, 상기 프로세서는
    복수의 M-비트 컨테이너 내 픽셀 데이터가 상수 값과 동일한지 여부를 결정하고,
    복수의 M-비트 컨테이너 내 픽셀 데이터가 상수 값과 동일하다는 결정에 응답하여 픽셀 데이터를 폐기하고 상수 값이 검출됐음을 특정하는 메타데이터 키를 생성하도록 구성되는, 시스템.
  3. 제2항에 있어서, 상기 프로세서는
    복수의 M-비트 컨테이너 내 픽셀 데이터가 블랙의 인코딩 값 또는 화이트의 인코딩 값과 동일한지 여부를 결정하고,
    복수의 M-비트 컨테이너 내 픽셀 데이터가 블랙의 인코딩 값과 동일하다고 결정함에 응답하여, 픽셀 데이터가 모두 블랙 픽셀을 포함함을 특정하는 제1 메타데이터 키를 생성하며,
    복수의 M-비트 컨테이너 내 픽셀 데이터가 화이트의 인코딩 값과 동일하다는 결정에 응답하여 픽셀 데이터가 모두 화이트 픽셀을 포함한다고 특정하는 제2 메타데이터 키를 생성하도록 구성되는, 시스템.
  4. 제1항에 있어서, 메모리 서브시스템에 저장된 압축된 픽셀 데이터 블록을 압축해제하기 위한 요청을 수신한 것에 응답하여, 프로세서는
    메모리 서브시스템으로부터 압축된 픽셀 데이터 블록을 불러오고,
    압축된 픽셀 데이터 블록을 압축해제하여 M-비트 컨테이너 내 픽셀 성분을 생성하며,
    M-비트 컨테이너를 N-비트 컨테이너로 복원하고,
    픽셀 성분을 N-비트 컨테이너의 MSB 위치로 시프트하도록 구성되는, 시스템.
  5. 제4항에 있어서, 프로세서는 N-비트 컨테이너의 MSB 위치 내 픽셀 성분을 클라이언트로 전달하도록 더 구성되는, 시스템.
  6. 제1항에 있어서, 프로세서는
    압축된 픽셀 데이터 블록이 임계값보다 큰지 여부를 결정하고,
    상기 압축된 픽셀 데이터 블록이 임계값보다 크다는 결정에 응답하여, 압축된 픽셀 데이터 블록을 폐기하도록 더 구성되는, 시스템.
  7. 제6항에 있어서, 프로세서는 압축된 픽셀 데이터 블록이 임계값보다 크다는 결정에 응답하여 복수의 M-비트 픽셀 성분이 함께 묶이게 하도록 더 구성되는, 시스템.
  8. 방법으로서,
    N-비트 컨테이너 내에 정렬되는 최상위 비트(MSB)인 복수의 M-비트 픽셀 성분을 수신하는 단계 - N 및 M은 정수이고, N은 M보다 큼 - ,
    M-비트 픽셀 성분을 N-비트 컨테이너의 최하위 비트(LSB) 위치로 하향 시프트하는 단계,
    복수의 N-비트 컨테이너를 복수의 M-비트 컨테이너로 변환하는 단계,
    복수의 M-비트 컨테이너를 압축하여 압축된 픽셀 데이터 블록을 생성하는 단계, 및
    압축된 픽셀 데이터 블록을 메모리 서브시스템에 저장하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    복수의 M-비트 컨테이너 내 픽셀 데이터가 상수 값과 동일한지 여부를 결정하는 단계, 및
    복수의 M-비트 컨테이너 내 픽셀 데이터가 상수 값과 동일하다는 결정에 응답하여 픽셀 데이터를 폐기하고 상수 값이 검출됐음을 특정하는 메타데이터 키를 생성하는 단계를 더 포함하는, 방법.
  10. 제9항에 있어서,
    복수의 M-비트 컨테이너 내 픽셀 데이터가 블랙의 인코딩 값 또는 화이트의 인코딩 값과 동일한지 여부를 결정하는 단계,
    복수의 M-비트 컨테이너 내 픽셀 데이터가 블랙의 인코딩 값과 동일하다는 결정에 응답하여, 픽셀 데이터가 모두 블랙 픽셀을 포함한다고 특정하는 제1 메타데이터 키를 생성하는 단계, 및
    복수의 M-비트 컨테이너 내 픽셀 데이터가 화이트의 인코딩 값과 동일하다는 결정에 응답하여 픽셀 데이터가 모두 화이트 픽셀을 포함함을 특정하는 제2 메타데이터 키를 생성하는 단계를 더 포함하는, 방법.
  11. 제8항에 있어서, 메모리 서브시스템에 저장된 압축된 픽셀 데이터 블록을 압축해제하라는 요청을 수신함에 응답하여, 상기 방법은
    메모리 서브시스템으로부터 압축된 픽셀 데이터 블록을 불러오는 단계,
    압축된 픽셀 데이터 블록을 압축해제하여 M-비트 컨테이너 내에 픽셀 성분을 생성하는 단계,
    M-비트 컨테이너를 N-비트 컨테이너로 복원하는 단계, 및
    픽셀 성분을 N-비트 컨테이너의 MSB 위치로 시프트하는 단계를 더 포함하는, 방법.
  12. 제11항에 있어서, N-비트 컨테이너의 MSB 위치 내 픽셀 성분을 클라이언트로 전달하는 단계를 더 포함하는, 방법.
  13. 제8항에 있어서,
    압축된 픽셀 데이터 블록이 임계값보다 큰지 여부를 결정하는 단계, 및
    압축된 픽셀 데이터 블록이 임계값보다 크다는 결정에 응답하여 압축된 픽셀 데이터 블록을 폐기하는 단계를 더 포함하는, 방법.
  14. 제13항에 있어서, 압축된 픽셀 데이터 블록이 임계값보다 크다는 결정에 응답하여, 복수의 M-비트 픽셀 성분이 함께 묶이게 하는 단계를 더 포함하는, 방법.
  15. 장치로서,
    메모리 서브시스템, 및
    압축기 모듈을 포함하며,
    상기 압축기 모듈은
    N-비트 컨테이너 내에 정렬된 최상위 비트(MSB)인 복수의 M-비트 픽셀 성분을 수신 - N 및 M은 정수이고, N은 M보다 큼 - 하고,
    M-비트 픽셀 성분을 N-비트 컨테이너의 최하위 비트(LSB) 위치로 하향 시프트하고,
    복수의 N-비트 컨테이너를 복수의 M-비트 컨테이너로 변환하며,
    복수의 M-비트 컨테이너를 압축하여 압축된 픽셀 데이터 블록을 생성하고,
    압축된 픽셀 데이터 블록을 메모리 서브시스템에 저장하도록 구성되는, 장치.
  16. 제15항에 있어서, 압축기 모듈은
    복수의 M-비트 컨테이너 내 픽셀 데이터가 상수 값과 동일한지 여부를 결정하고,
    복수의 M-비트 컨테이너 내 픽셀 데이터가 상수 값과 동일하다는 결정에 응답하여, 픽셀 데이터를 폐기하고 상수 값이 검출됐음을 특정하는 메타데이터 키를 생성하도록 구성되는, 장치.
  17. 제16항에 있어서, 압축기 모듈은
    복수의 M-비트 컨테이너 내 픽셀 데이터가 블랙의 인코딩 값 또는 화이트의 인코딩 값과 동일한지 여부를 결정하고,
    복수의 M-비트 컨테이너 내 픽셀 데이터가 블랙의 인코딩 값과 동일하다는 결정에 응답하여 픽셀 데이터가 모두 블랙 픽셀을 포함함을 특정하는 제1 메타데이터 키를 생성하며,
    복수의 M-비트 컨테이너 내 픽셀 데이터가 화이트의 인코딩 값과 동일하다는 결정에 응답하여 픽셀 데이터가 모두 화이트 픽셀을 포함함을 특정하는 제2 메타데이터를 생성하도록 구성되는, 장치.
  18. 제15항에 있어서, 메모리 서브시스템에 저장된 압축된 픽셀 데이터 블록을 압축해제하라는 요청을 수신한 것에 응답하여, 압축기 모듈은
    메모리 서브시스템으로부터 압축된 픽셀 데이터 블록을 불러오고,
    압축된 픽셀 데이터 블록을 압축해제하여 M-비트 컨테이너 내에 픽셀 성분을 생성하며,
    M-비트 컨테이너를 N-비트 컨테이너로 복원하고,
    픽셀 성분을 N-비트 컨테이너의 MSB 위치로 시프트하도록 구성되는, 장치.
  19. 제18항에 있어서, 압축기 모듈은 N-비트 컨테이너의 MSB 위치 내 픽셀 성분을 클라이언트로 전달하도록 더 구성되는, 장치.
  20. 제15항에 있어서, 압축기 모듈은
    압축된 픽셀 데이터 블록이 임계값보다 큰지 여부를 결정하고,
    압축된 픽셀 데이터 블록이 임계값보다 크다는 결정에 응답하여 압축된 픽셀 데이터 블록을 폐기하도록 더 구성되는, 장치.
KR1020197019341A 2017-02-24 2018-02-22 델타 색상 압축의 비디오 적용 KR102569371B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/442,383 2017-02-24
US15/442,383 US10304155B2 (en) 2017-02-24 2017-02-24 Delta color compression application to video
EP17159108.4 2017-03-03
EP17159108.4A EP3367683A1 (en) 2017-02-24 2017-03-03 Delta color compression application to video
PCT/US2018/019201 WO2018156750A1 (en) 2017-02-24 2018-02-22 Delta color compression application to video

Publications (2)

Publication Number Publication Date
KR20190120166A true KR20190120166A (ko) 2019-10-23
KR102569371B1 KR102569371B1 (ko) 2023-08-22

Family

ID=63246898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197019341A KR102569371B1 (ko) 2017-02-24 2018-02-22 델타 색상 압축의 비디오 적용

Country Status (5)

Country Link
US (1) US10304155B2 (ko)
JP (1) JP7169284B2 (ko)
KR (1) KR102569371B1 (ko)
CN (1) CN110214338B (ko)
WO (1) WO2018156750A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
US11153578B2 (en) 2018-04-27 2021-10-19 Ati Technologies Ulc Gradient texturing compression codec
GB2586516B (en) * 2019-08-23 2022-07-06 Imagination Tech Ltd Random accessible image data compression
GB2591506B (en) * 2020-01-31 2023-05-17 Sony Interactive Entertainment Inc Data storage system and method
US11917072B2 (en) * 2020-12-03 2024-02-27 International Business Machines Corporation Implementing opportunistic authentication of encrypted data

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004015226A (ja) * 2002-06-04 2004-01-15 Mitsubishi Electric Corp 画像符号化装置及び画像復号化装置
JP2004328723A (ja) * 2003-04-03 2004-11-18 Avid Technology Inc ビットストリーム・フォーマット、ならびにその読み取りおよび書き込み方法および装置
KR20090061049A (ko) * 2006-09-18 2009-06-15 내셔널 세미콘덕터 코포레이션 스트리밍 데이터를 저장 및 검색하는 방법 및 시스템
US20090245629A1 (en) * 2008-03-31 2009-10-01 Konica Minolta Systems Laboratory, Inc. Systems and methods for color data compression
US20090295816A1 (en) * 2008-05-30 2009-12-03 Kallio Kiia K Video graphics system and method of pixel data compression
JP2012151573A (ja) * 2011-01-17 2012-08-09 Canon Inc 画像復号装置及びその制御方法
JP2015509294A (ja) * 2011-11-18 2015-03-26 コーニンクレッカ フィリップス エヌ ヴェ 標準低品質(ウェブ)画像フォーマットを用いた高品質(医療)画像の符号化

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8900368D0 (en) * 1989-01-09 1989-03-08 Crosfield Electronics Ltd Bit map modification
JPH03266039A (ja) 1990-03-16 1991-11-27 Fujitsu Ltd フリーフォーマットデータリンク処理方式
US5184124A (en) * 1991-01-02 1993-02-02 Next Computer, Inc. Method and apparatus for compressing and storing pixels
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
US6033422A (en) * 1997-04-21 2000-03-07 Winease Llc Nasal support device for domestic mammals and method
US6553457B1 (en) 2000-04-19 2003-04-22 Western Digital Technologies, Inc. Tag memory disk cache architecture
JP2001332978A (ja) 2000-05-18 2001-11-30 Sony Corp データストリーム変換装置とその方法、可変長符号化データストリーム生成装置とその方法、および、カメラシステム
US6728722B1 (en) 2000-08-28 2004-04-27 Sun Microsystems, Inc. General data structure for describing logical data spaces
JP2004021702A (ja) * 2002-06-18 2004-01-22 Canon Inc システムあるいはソフトウェア、dmac、dmac制御ソフトウェア、および画像処理装置
US7068192B1 (en) 2004-08-13 2006-06-27 Google Inc. System and method for encoding and decoding variable-length data
US7336840B2 (en) * 2004-09-14 2008-02-26 Info Panama Service, Inc. Compression method for binary images
US7673345B2 (en) * 2005-03-31 2010-03-02 Intel Corporation Providing extended memory protection
US7873212B2 (en) 2006-01-24 2011-01-18 Nokia Corporation Compression of images for computer graphics
US8718147B2 (en) * 2006-02-17 2014-05-06 Avocent Huntsville Corporation Video compression algorithm
TW200814780A (en) * 2006-04-28 2008-03-16 Avocent Corp DVC delta commands
KR101270167B1 (ko) * 2006-08-17 2013-05-31 삼성전자주식회사 저복잡도의 이미지 압축 방법 및 장치, 저복잡도의 이미지복원 방법 및 장치
US7962727B2 (en) 2008-12-05 2011-06-14 Globalfoundries Inc. Method and apparatus for decompression of block compressed data
JP5216915B2 (ja) * 2009-02-25 2013-06-19 株式会社日立製作所 ストレージ装置
KR101805968B1 (ko) * 2011-03-31 2017-12-06 넥스트 스캔 테크놀로지 비브이비에이 회절 한계의 성능을 갖는 플랫 필드 텔레센트릭 스캐너
WO2012147350A1 (ja) 2011-04-28 2012-11-01 パナソニック株式会社 高画質化に関わる記録媒体、再生装置、記録装置、符号化方法、復号化方法
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US8942473B2 (en) * 2012-07-25 2015-01-27 Ko Hung Lin Image processing method and display apparatus
US20140098111A1 (en) * 2012-10-09 2014-04-10 Mediatek Inc. Data processing system for transmitting compressed display data over display interface
US9607407B2 (en) 2012-12-31 2017-03-28 Nvidia Corporation Variable-width differential memory compression
US9367442B2 (en) * 2014-07-12 2016-06-14 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Allocating memory usage based on voltage regulator efficiency
KR102531605B1 (ko) * 2014-10-10 2023-05-11 어드밴스드 마이크로 디바이시즈, 인코포레이티드 하이브리드 블록 기반 압축
US10511858B2 (en) * 2016-07-13 2019-12-17 Ati Technologies Ulc Bit packing for delta color compression

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004015226A (ja) * 2002-06-04 2004-01-15 Mitsubishi Electric Corp 画像符号化装置及び画像復号化装置
JP2004328723A (ja) * 2003-04-03 2004-11-18 Avid Technology Inc ビットストリーム・フォーマット、ならびにその読み取りおよび書き込み方法および装置
KR20090061049A (ko) * 2006-09-18 2009-06-15 내셔널 세미콘덕터 코포레이션 스트리밍 데이터를 저장 및 검색하는 방법 및 시스템
US20090245629A1 (en) * 2008-03-31 2009-10-01 Konica Minolta Systems Laboratory, Inc. Systems and methods for color data compression
US20090295816A1 (en) * 2008-05-30 2009-12-03 Kallio Kiia K Video graphics system and method of pixel data compression
JP2012151573A (ja) * 2011-01-17 2012-08-09 Canon Inc 画像復号装置及びその制御方法
JP2015509294A (ja) * 2011-11-18 2015-03-26 コーニンクレッカ フィリップス エヌ ヴェ 標準低品質(ウェブ)画像フォーマットを用いた高品質(医療)画像の符号化

Also Published As

Publication number Publication date
CN110214338A (zh) 2019-09-06
JP2020519042A (ja) 2020-06-25
CN110214338B (zh) 2023-09-19
KR102569371B1 (ko) 2023-08-22
JP7169284B2 (ja) 2022-11-10
US20180247388A1 (en) 2018-08-30
WO2018156750A1 (en) 2018-08-30
US10304155B2 (en) 2019-05-28

Similar Documents

Publication Publication Date Title
US11043010B2 (en) Real time on-chip texture decompression using shader processors
KR102569371B1 (ko) 델타 색상 압축의 비디오 적용
US9478002B2 (en) Vertex parameter data compression
US9159114B2 (en) Texture decompression for graphics processors
CN111279384B (zh) 图形流水线中的索引的压缩和解压缩
US20150262385A1 (en) Image decoder, graphics processor, image decoding method, and graphics processing method
US20230419553A1 (en) Locally varying numerical ranges for data compression
US10824357B2 (en) Updating data stored in a memory
US11694367B2 (en) Compressing texture data on a per-channel basis
US11153578B2 (en) Gradient texturing compression codec
US11978234B2 (en) Method and apparatus of data compression
EP3367683A1 (en) Delta color compression application to video
US20180096513A1 (en) Method and apparatus for determining number of bits assigned to channels based on variations of channels
JP2017536740A (ja) ハイブリッドブロックベースの圧縮
US11954028B2 (en) Accessing encoded blocks of data
US20230206503A1 (en) Color channel correlation detection
JP5928914B2 (ja) グラフィックス処理装置およびグラフィックス処理方法
JP2016072826A (ja) 画像復号装置、グラフィックス処理装置、画像復号方法、およびグラフィックス処理方法

Legal Events

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