KR20190025928A - 델타 컬러 압축을 위한 비트 패킹 - Google Patents

델타 컬러 압축을 위한 비트 패킹 Download PDF

Info

Publication number
KR20190025928A
KR20190025928A KR1020197002295A KR20197002295A KR20190025928A KR 20190025928 A KR20190025928 A KR 20190025928A KR 1020197002295 A KR1020197002295 A KR 1020197002295A KR 20197002295 A KR20197002295 A KR 20197002295A KR 20190025928 A KR20190025928 A KR 20190025928A
Authority
KR
South Korea
Prior art keywords
bits
group
delta values
values
delta
Prior art date
Application number
KR1020197002295A
Other languages
English (en)
Other versions
KR102451595B1 (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 KR20190025928A publication Critical patent/KR20190025928A/ko
Application granted granted Critical
Publication of KR102451595B1 publication Critical patent/KR102451595B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

압축기는 블록 내의 복수의 픽셀들에 대한 델타 컬러 압축 값들을 결정하고, 블록 내의 복수의 픽셀들을 복수의 그룹들로 분할하며, 델타 값들을 나타내는 압축된 비트스트림을 송신하도록 구성된다. 압축된 비트스트림은, 델타 값들을 나타내기에 충분한 비트들의 수들의 범위를 나타내는 블록 헤더를 나타내는 비트들, 각각이 복수의 그룹들 중 대응하는 하나의 그룹 내의 델타 값들을 나타내기에 충분한 비트들의 그룹 최소 수를 나타내는 복수의 그룹 헤더들, 및 델타 값들을 포함하는 그룹에 대한 그룹 최소 수의 비트들을 사용하여 인코딩된 델타 값들을 포함한다. 압축 해제기는 블록 헤더, 복수의 그룹 헤더들, 및 인코딩된 델타 값들에 기초하여 압축된 비트스트림을 압축 해제하도록 구성된다.

Description

델타 컬러 압축을 위한 비트 패킹
본 발명은 델타 컬러 압축을 위한 비트 패킹에 관한 것이다.
메모리 대역폭 관리는, SOC 상의 명령어 프로세서들 및 동적 랜덤 액세스 메모리(dynamic random access memory; DRAM)와 같은 외부 메모리와 SOC 사이의 인터페이스들을 통해 상호연결하는 버스들 상의 고-대역폭 흐름들을 생성하는 시스템-온-칩들(systems-on-a-chip; SOCs)과 같은 프로세싱 시스템들에서 난제이다. 예를 들어, 그래픽 프로세싱은 스크린 상에 디스플레이되는 픽셀들로서 장면의 3-차원(3-D) 모델을 렌더링(render)하기 위하여 사용된다. 다음의 목적들을 위하여, 완전한 이미지는 프레임으로서 지칭되며, 프레임 내의 픽셀들의 수는 스크린의 픽셀 해상도에 의해 결정된다. 프레임 내의 각각의 픽셀의 컬러는 특정 컬러 범위 또는 색영역(gamut)에 걸쳐 대응하는 수의 상이한 컬러들을 나타내는 특정한 수의 비트들에 의해 표현된다. 예시를 위하여, 8-비트 값이 특정 픽셀이 256 컬러들 중 어떤 것을 나타내는지를 나타내기 위하여 사용될 수 있다. 픽셀을 나타내기 위하여 사용되는 비트들의 수는 전형적으로 픽셀의 컬러 깊이 또는 비트 깊이로서 지칭된다. 각각의 프레임을 나타내기 위하여 사용되는 비트들의 총 수는 디스플레이의 픽셀들의 수 및 각각의 픽셀을 나타내기 위하여 사용되는 비트들의 수에 비례하여 증가한다. 장면 내의 움직임은 초당 30 프레임(fps)와 같이 특정한 프레임 속도로 연속적인 프레임들을 디스플레이함으로써 표현된다. 따라서, 버스들 또는 인터페이스들을 통한 송신을 위하여 그래픽스 프로세싱 유닛(graphics processing unit; GPU)에 의해 비트들이 생성되는 속도는 프레임 속도에 비례하여 증가한다. GPU들의 연속적인 생성들은 더 높은 픽셀 해상도들, 더 큰 컬러 깊이 또는 컬러 색영역, 및 더 높은 프레임 속도들을 지원하는 것과 같은 사용한 방법들에 의해 렌더링되는 이미지들의 품질을 개선하기 위하여 시도하여 왔다. 따라서, GPU, 디스플레이, 및 외부 메모리와 같은 시스템 내의 상이한 엘리먼트들 사이에서 통신되는 트래픽의 볼륨이 크고 계속해서 증가하고 있다.
본 개시는 첨부된 도면들을 참조함으로써 더 양호하게 이해될 수 있으며, 본 개시의 다수의 특징들 및 이점들이 당업자들에게 명백해 질 것이다. 상이한 도면들에서의 동일한 참조 기호들의 사용은 유사하거나 또는 동일한 아이템들을 나타낸다.
도 1은 일부 실시예들에 따른 프로세싱 시스템의 블록도이다.
도 2는 일부 실시예들에 따른 프로세싱 시스템의 일 부분의 블록도이다.
도 3은 일부 실시예들에 따른 델타 컬러 압축 및 비트 패킹을 수행하기 위한 방법의 순서도이다.
도 4는 일부 실시예들에 따른 상이한 그룹 구성들의 픽셀들의 그룹들로 분할될 수 있는 픽셀들의 블록의 블록도이다.
도 5는 일부 실시예들에 따른 블록의 픽셀들의 델타 값들을 나타내는 압축된 비트스트림의 블록도이다.
도 6은 일부 실시예들에 따른 모두-포지티브한 델타 값들 또는 모두-네거티브한 델타 값들을 나타내기 위하여 사용되는 비트들의 수를 감소시키기 위한 방법의 순서도이다.
도 7은 일부 실시예들에 따른 2의 거듭제곱(power-of-two)과 동일한 최대 델타 값을 갖는 그룹 내의 델타 값들을 인코딩하기 위한 방법의 순서도이다.
도 8은 일부 실시예들에 따른 2의 거듭제곱과 동일한 최대 델타 값을 갖는 그룹 내의 델타 값들을 디코딩하기 위한 방법의 순서도이다.
도 9는 일부 실시예들에 따른 압축 알고리즘의 특징들을 우회할지 여부를 결정하는 방법의 순서도이다.
본원에서 설명되는 바와 같은, 비디오/그래픽 이미지들(또는 다른 비트 스트림들)에 의해 소비되는 대역폭은, 기준 픽셀의 컬러와 다른 픽셀들의 컬러들 사이의 차이들을 나타내는 델타 값들 및 기준 픽셀의 컬러에 기초하여 블록으로 픽셀들을 컬러를 나타내기 위한 델타 컬러 압축을 구현함으로써 감소될 수 있다. 압축기는 각각의 블록 내의 픽셀들을 그룹들로 분할한다. 압축기는 그룹 i 내의 픽셀들의 델타 값들을 나타내기 위해 필요한 비트들의 최소 수 B_i를 결정하며, 압축기는 블록의 그룹들 내의 델타 값들을 나타내는 비트들의 수의 최소 값을 나타내는 비트들의 최대 수(M)을 결정한다. 압축기는 또한 비트들의 최소 수와 블록의 그룹들 내의 델타 값들을 나타내기 위해 요구되는 비트들의 수의 최대 값을 나타내는 비트들의 최대 수 사이의 차이를 나타내기 위해 요구되는 비트들의 수(B)를 결정한다. M 및 B의 값들은 압축기로부터 결과적인 압축된 픽셀 데이터와 연관된 압축 해제기로 송신되는 블록 헤더 내에 포함된다. M 및 B의 값들은 블록 헤더 내에 포함하기 위해 별도로 인코딩될 수 있거나, 또는 M 및 B의 값들의 조합이 M 및 B에 대한 모든 가능한 조합들은 나타내는 인코딩을 사용하여 인코딩될 수 있다. 압축기는 또한, M과 함께, 대응하는 그룹 내의 델타 값들을 나타내는 비트들의 수를 나타내는 B_i 및 M (B_i - M ) 사이의 차이의 값들을 포함하는 그룹 헤더들을 생성한다. 압축기는 대응하는 그룹 헤더에 의해 표시되는 수의 비트들을 사용하여 각각의 그룹 내의 픽셀들에 대한 델타 값들을 압축할 수 있으며, 압축 해제기는 압축된 정보를 압축 해제하기 위하여 블록 헤더 및 그룹 헤더들 내의 정보를 사용할 수 있다. 압축기의 일부 실시예들은 상이한 그룹 구성들에 압축 알고리즘을 적용하며, 가장 높은 레벨의 압축을 생성하는 최적의 그룹 구성을 선택한다. 압축기는 선택된 그룹 구성을 나타내는 정보를 블록 헤더 내에 포함시킨다.
각각의 그룹 내의 델타 값들은 0, 포지티브, 또는 네거티브 수일 수 있다. 이와 같이, 그룹 내의 각각의 델타 값에 대하여 하나의 부호(sign) 비트가 요구된다. 압축기의 일부 실시예들은 그룹들 내의 델타 값들의 특성들에 기초하여 블록들 내의 픽셀들을 나타내기 위하여 사용되는 비트들의 수를 추가로 감소시킨다. 예를 들어, 각각의 델타 값의 부호를 나타내는 비트는, 그룹 내의 모든 델타 값들이 포지티브(0을 포함함)이거나 또는 네거티브(0을 포함함) 중 하나 인 경우 드롭(drop)될 수 있다. 압축기는 그룹이 모두 포지티브인지, 모두 네거티브인지, 또는 혼합되었는지 여부를 나타내기 위한 비트들을 그룹 내에 포함시킬 수 있어서, 압축 해제기가 델타 값들을 어떻게 압축 해제해야 할 지를 알 수 있을 것이다. 압축기의 일부 실시예들은, 압축 해제기가 코드들을 구별할 수 있도록 선택된 1-비트 코드 및 2-비트 코드가 상이한 비트 값들을 가지고 시작하는 한 하나의 구성(예를 들어, 모두-포지티브)에 대하여 하나의 비트를 사용하고 다른 2개의 구성들(예를 들어, 모두-네거티브 및 혼합)에 대하여 2개의 비트들을 사용한다. 다른 가능성은 상이한 그룹들에 대하여 상이한 1-비트 및 2-비트 코드들을 사용하는 대신에 모든 그룹들의 부호 비트들을 함께 결합하고 하나의 코드를 모든 부호 비트들에 할당하는 것이다. 각각의 델타 값에 대하여 하나의 비트를 제거함으로써 절감되는 비트들의 수가 그룹들의 부호들을 나타내기 위하여 부가되는 비트들의 수보다 더 많은 경우 압축에 있어서의 순수(net) 이득이 생성된다. 그룹 내의 델타 값들을 나타내기 위하여 사용되는 비트들의 수는 또한, 그룹 내의 픽셀에 대한 최대 델타 절대 값이 본원에서 논의되는 바와 같이 2의 거듭제곱과 동일한 경우 감소될 수 있다. 일부 변형예들에 있어서, 이러한 특징들을 인에이블(enable)하거나 또는 디세이블(disable)하기 위하여 각각의 블록 내에 우회 비트가 포함된다. 우회 비트는, 블록 내의 델타 값들 모두가 0인 경우, 즉, 블록 내의 모든 픽셀들이 동일한 컬러 값을 가지는 경우 드롭될 수 있다.
도 1은 일부 실시예들에 따른 프로세싱 시스템(100)의 블록도이다. 프로세싱 시스템(100)은 동적 랜덤 액세스 메모리(DRAM)(110)와 같은 하나 이상의 외부 메모리들에 연결되는 프로세싱 디바이스(105)를 포함한다. 프로세싱 디바이스(105)는 CPU들 또는 GPU들과 같은 복수의 컴퓨팅 유닛(compute unit)들(111, 112, 113, 114)(집합적으로 "컴퓨팅 유닛들(111-114)"로서 지칭됨)을 포함한다. 예를 들어, 프로세싱 디바이스(105)는 기판 상에 형성된 가속 프로세싱 유닛(accelerated processing unit; APU) 또는 가속 프로세싱 디바이스(accelerated processing device; APD)와 같이 시스템-온-칩(SOC)일 수 있다. 컴퓨팅 유닛들(111-114)의 각각은 상이한 명령어들을 동시에 프로세싱할 수 있는 복수의 프로세서 코어들을 포함한다. 컴퓨팅 유닛들(111-114)은 또한 프로세서 코어들에 의해 공유되는 하나 이상의 자원들, 예컨대 캐시들, 산술 로직 유닛들, 부동-소수점 유닛들, 브랜치 예측 로직, 메모리 또는 버스 인터페이스들 등을 포함한다.
프로세싱 디바이스(105)는 컴퓨팅 유닛들(111-114) 또는 프로세싱 디바이스(105) 내의 다른 엔티티(entity)들에 의해 사용될 수 있는 명령어들 또는 데이터를 저장하기 위한 데이터 저장 유닛들(115, 120)을 포함한다. 데이터 저장 유닛들(115, 120)의 일부 실시예들은 DRAM을 가지고 구현된다. 메모리 제어기(memory controller; MC)(125)는 메모리 인터페이스(130)를 통해 프로세싱 디바이스(105)와 DRAM(110) 사이의 데이터의 흐름을 조정하기 위하여 사용된다. 메모리 제어기(125)는 DRAM(110)으로부터 정보를 판독하는 것 및 DRAM(110)으로 정보를 기입하는 것을 제어하기 위하여 사용되는 로직을 포함한다. 컴퓨팅 유닛들(111-114)은, 버스(135)를 사용하여 서로, 데이터 저장 유닛들(115, 120), 메모리 제어기(125), 또는 프로세싱 시스템(100) 내의 다른 엔티티들과 통신할 수 있다. 예를 들어, 컴퓨팅 유닛들(111-114)은 전형적으로서, 버스(135) 상의 신호들을 어서트(assert)하고 대응하는 컴퓨팅 유닛(111-114)으로 어드레싱되는 버스(135)로부터 신호들을 수신하는 물리 계층 인터페이스 또는 버스 인터페이스를 포함한다. 프로세싱 디바이스(105)의 일부 실시예들은 또한 프로세싱 디바이스(105) 내의 엔티티들 사이의 통신을 용이하게 하기 위한 노스브리지 또는 사우스브리지와 같은 하나 이상의 브리지들을 포함한다.
프로세싱 디바이스(105)는 프로세싱 디바이스(105) 내에 작업부하들을 생성하는 운영 시스템(operating system; OS) 또는 하나 이상의 애플리케이션들(140)을 구현한다. OS/애플리케이션들(140)의 단일 인스턴스(instance)가 도 1에 도시되지만, 프로세싱 디바이스(105)의 일부 실시예들은 애플리케이션들 중 하나 이상 또는 운영 시스템의 다수의 인스턴스생성들을 구현한다. 예를 들어, 컴퓨팅 유닛들(111-114) 상에서 실행되는 가상 머신들은 애플리케이션들 중 하나 이상 또는 운영 시스템의 별개의 인스턴스들을 실행할 수 있다.
프로세싱 디바이스(105)의 일부 실시예들은 스크린(145) 상의 디스플레이를 위한 이미지들을 생성하기 위하여 3-D 모델에 의해 표현되는 장면들을 랜더링하기 위한 그래픽스 프로세싱을 수행한다. 예를 들어, 컴퓨팅 유닛들(111-114) 중 하나 이상이 버스(135) 및 인터페이스(130)를 통해 DRAM(110) 상에 저장된 3-D 모델을 나타내는 정보를 액세스할 수 있다. 컴퓨팅 유닛들(111-114)은 그런 다음 스크린(145) 상의 디스플레이를 위한 이미지를 생성하기 위하여 장면의 일 부분을 랜더링하기 위해 액세스된 정보를 사용한다. 컴퓨팅 유닛들(111-114)은 버스(135)를 통해 랜더링된 이미지들을 나타내는 정보를 스크린(145)으로 송신한다. 정보는 비트들의 스트림들로서 프로세싱 시스템(100) 내의 엔티티들 사이에서 전달된다. 본원에서 논의되는 바와 같이, 컴퓨팅 유닛들(111-114), DRAM(110), 데이터 저장 유닛(115), 데이터 저장 유닛(120), 스크린(145), 또는 프로세싱 시스템(100) 내의 다른 엔티티들에 의해 생성되는 트래픽의 볼륨은 메모리 인터페이스(130), 버스(135), 또는 프로세싱 시스템(100) 내의 다른 상호연결부들에서 이용이 가능한 대역폭에 심각하게 부담을 줄 수 있으며, 특히 비디오 또는 그래픽 정보를 나타내는 비트스트림들을 생성하는 그래픽스 애플리케이션에 대하여 그러할 수 있다.
델타 컬러 압축 및 비트 패킹은, 스크린(145) 상의 디스플레이를 위한 이미지들을 나타내는 픽셀들의 컬러들과 같은 비디오 또는 그래픽 정보를 나타내는 비트스트림들을 압축하기 위하여 사용된다. 컴퓨팅 유닛들(111-114)(또는 비트들의 스트림들을 생성하는 프로세싱 시스템(100) 내의 다른 엔티티들)은 델타 컬러 압축 및 비트 패킹을 수행하기 위한 압축기(도 1에 미도시)를 구현한다. 압축기들은 대응하는 컴퓨팅 유닛들(111-114) 상에서 실행될 수 있는 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로서 구현된다. 압축기들은 컴퓨팅 유닛들(111-114) 또는 다른 엔티티들로부터 정보를 수신하는 독립형 엔티티들로서 구현될 수 있다. 압축기들의 일부 실시예들은 프레임을 이루는 블록들 내의 픽셀들에 대한 델타 값들을 계산한다. 예를 들어, 각각의 블록은 8 x 8 픽셀들의 세트, 예를 들어, 이미지의 정사각형 부분을 나타내는 64 픽셀들을 포함할 수 있다. 각각의 델타 값은 복수의 픽셀들로부터 선택된 기준 픽셀의 기준 컬러와 대응하는 픽셀의 컬러 사이의 차이를 나타낸다. 압축기는 블록 내의 픽셀들을 픽셀들의 8개의 8 x 1 그룹들 또는 픽셀들의 8개의 4 x 2 그룹들과 같은 그룹들로 분할할 수 있다. 그런 다음, 압축기는 압축되지 않은 비트스트림보다 더 작은 수의 비트들을 사용하여 델타 값들을 나타내는 압축된 비트스트림을 생성할 수 있다. 예를 들어, 본원에서 논의되는 바와 같이, 압축기는 픽셀들의 블록과 연관된 블록 헤더, 픽셀들의 분할된 그룹들과 연관된 그룹 헤더들, 및 인코딩된 델타 값들을 포함하는 압축된 비트스트림을 생성할 수 있다. 각각의 그룹에 대한 델타 값들은, 블록 헤더 내에 포함된 정보 및 대응하는 그룹 헤더에 의해 표시되는 바와 같은 상이한 수의 비트들을 사용하여 인코딩된다. 압축 해제기들(도 1에 미도시)은 본원에서 논의되는 바와 같이 압축되지 않은 비스트림 내의 비트들을 복원하기 위하여 압축된 비트스트림을 압축 해제할 수 있다.
도 2는 일부 실시예들에 따른 프로세싱 시스템(200)의 일 부분의 블록도이다. 부분(200)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현되는 압축기(205) 및 압축 해제기(210)를 포함한다. 압축기(205) 및 압축 해제기(210)의 일부 실시예들은 도 1에 도시된 프로세싱 시스템(100) 내에서 상이한 위치들에 구현된다. 예를 들어, 압축기(205)는 컴퓨팅 유닛들(111-114) 중 하나의 부분으로서 구현될 수 있으며(또는 컴퓨팅 유닛들(111-114)로부터 비트들을 수신하도록 구성될 수 있으며), 압축 해제기(210)는 DRAM(110) 또는 스크린(145)의 부분으로서 구현될 수 있다(또는 DRAM(110) 또는 스크린(145)으로 비트들을 제공하도록 구성될 수 있다). 압축기(205)는 일부 경우들에 있어서 프레임 내의 픽셀들의 컬러들을 나타내는 압축되지 않은 비트스트림(215)을 수신한다. 압축기(205)는 압축 해제기(210)로 제공되는 압축된 비트스트림(220)을 생성하기 위하여 본원에서 설명되는 델타 컬러 압축 및 비트 패킹 기술들의 일부 실시예들에 따라 압축되지 않은 비트스트림(215)을 압축한다. 압축 해제기(210)는 압축되지 않은 비트스트림(225)을 복원하기 위하여 압축된 비트스트림(220)을 압축 해제하며, 이는 압축이 손실성인지 또는 무손실성인지 여부 및 압축된 비트스트림(220)의 송신 시에 오류들이 발생하였는지 여부에 따라 압축되지 않은 비트스트림(215)과 동일한 비트들 또는 상이한 비트들을 포함한다.
도 3은 일부 실시예들에 따른 델타 컬러 압축 및 비트 패킹을 수행하기 위한 방법(300)의 순서도이다. 방법(300)은 도 2에 도시된 압축기(205)의 일부 실시예들에서 구현된다. 방법(300)은 64 바이트의 블록 크기를 사용함으로써 메모리 어드레스능력(addressability)을 보존하는 8 x 8 블록과 같은 픽셀들의 블록에 적용된다. 다른 경우들에 있어서, 메모리 어드레스능력은 이들이 64 바이트와 같은 특정한 수의 바이트들에 정렬되도록 픽셀들의 블록의 다른 크기들을 선택함으로써 보존될 수도 있다. 스크린 상의 디스플레이를 위한 이미지를 나타내는 픽셀들의 블록들과 같은 다수의 블록들 상의 비트 패킹 및 델타 컬러 압축을 수행하기 위하여 방법(300)의 일부 실시예들이 반복적으로 수행될 수 있거나 또는 방법(300)의 다수의 인스턴스들이 (예를 들어, 도 1에 도시된 컴퓨팅 유닛들(111-114) 내에 구현되는 다수의 프로세서 코어들 상에서) 동시에 또는 병렬로 수행될 수 있다. 방법(300)에 따라 압축된 비트스트림들의 압축 해제는 본원에서 논의되는 바와 같이 도 2에 도시된 압축 해제기(210)의 일부 실시예들에 의해 수행된다.
블록(305)에서, 압축기는 블록 내의 픽셀들 중에서 기준 픽셀을 선택하고, 기준 픽셀에 대한 컬러 값을 결정한다. 예를 들어, 기준 픽셀에 대한 컬러 값은, 8-비트 컬러 깊이(또는 컬러 색영역)이 픽셀들의 컬러들을 나타내기 위해 사용되는 경우 8개의 비트들의 값들에 의해 표현될 수 있다. 일부 변형예들에 있어서, 압축기는 잠재적인 기준 픽셀로서 2개 이상의 픽셀을 선택하고, 그런 다음 기준으로서 사용하기 위하여 잠재적인 기준 픽셀들로부터 하나의 픽셀을 선택한다. 잠재적인 기준 픽셀들을 식별하는 정보는 대응하는 블록 헤더 내에 포함된다. 그런 다음 압축기는 기준 픽셀의 컬러 값과 블록 내의 다른 픽셀들의 컬러 값들 사이의 차이를 나타내는 델타 값들을 정의한다. 픽셀들에 대한 델타 값들은 픽셀의 컬러 및 기준 픽셀의 컬러의 상대적인 값들에 따라 포지티브이거나 또는 네거티브일 수 있다. 델타 값들을 나타내기에 충분한 픽셀들의 수는 블록 내의 픽셀들의 가능한 델타 값들의 범위에 의존한다. 예를 들어, 픽셀들이 8-비트 컬러 깊이에 의해 표현되는 경우, 픽셀들의 델타 값들은 -255 내지 +255의 범위 내 이다. 0 내지 255의 범위 델타 값들의 절대 값을 나타내기 위하여 8개의 비트들로 충분하며, 델타 값들의 부호를 나타내기 위하여 하나의 추가적인 비트가 요구된다. 일부 경우들에 있어서, 델타 값들의 부호는 네거티브 숫자를 짝수로 변환하고 포지티브 숫자를 홀수로 변환함으로써 표현된다. 예를 들어, 일련의 델타 값들{0, 1, -1, 2, -2, 3, -3}은 포지티브 및 네거티브 델타 값들을 각기 짝수 및 홀수 포지티브 값들로서 인코딩하는 일련의 {0, 1, 2, 3, 4, 5, 6}로 변환될 수 있다. 다른 예에 대하여, 값들 0 내지 2n-1 -1은 포지티브 델타 값들을 나타내기 위하여 사용될 수 있으며, 값들 2n-1 내지 2n -1이 네거티브 델타 값들을 나타내기 위하여 사용될 수 있다. 모두-포지티브한 수들로의 포지티브 및 네거티브 델타 값들의 다른 인코딩이 또한 사용될 수 있다.
블록(310)에서, 압축기는 블록을 픽셀들의 그룹들로 분할한다. 예를 들어, 일부 변형예들에 있어서, 압축기는 블록을 8 x 1 구성들로 배열된 픽셀들의 8개의 그룹들 또는 4 x 2 구성들로 배열된 픽셀들의 8개의 그룹들로 분할한다. 일부 변형예들에 있어서, 픽셀 그룹들 내의 픽셀들의 값들은 본원에서 논의되는 바와 같이 모두-포지티브 수들로 변환된다.
블록(315)에서, 압축기는 각각의 그룹 (i) 내의 델타 값들을 나타내기에 충분한 비트들의 그룹 최소 수 (B_i)를 결정한다. 포지티브 및 네거티브 델타 값들이 일련의 포지티브 수들로 변환된 경우, 비트들의 그룹 최소 수는 다음을 사용하여 결정된다:
Figure pct00001
여기에서 M_i는 그룹 내의 픽셀에 대한 최대 델타 값이다. 예를 들어, 제 1 그룹(i=1)의 델타 값들이 0 내지 6의 범위의 델타 값들을 가질 수 있어서 제 1 그룹에 대한 델타 값들은 3개의 비트들(B_i=3)에 의해 표현될 수 있으며, 제 2 그룹(i=2)의 델타 값들이 0 내지 13의 범위의 델타 값들을 가질 수 있어서 제 2 그룹에 대한 델타 값들은 4개의 비트들(B_i=4)에 의해 표현될 수 있고, 제 3 그룹(i=3)의 델타 값들이 0 내지 22의 범위의 델타 값들을 가질 수 있어서 제 3 그룹에 대한 델타 값들은 5개의 비트들(B_i=5)에 의해 표현될 수 있다. 이러한 예에 있어서, 나머지 그룹들에 대한 델타 값들이 또한 3-5개의 비트들에 의해 표현된다.
블록(320)에서, 압축기는 블록의 그룹들 중 임의의 그룹 내의 델타 값들을 나타내기에 충분한 비트들의 최소 수와 동일한 비트들의 수(M)를 결정한다. 비트들의 최소 수(M)는 다음에 따라 블록 내의 그룹들의 각각을 나타내기에 충분한 비트들의 그룹 최소 수들의 최소치를 취함으로써 결정된다:
Figure pct00002
따라서, 이상의 예에서와 같이 그룹들에 대한 델타 값들이 3-5개의 비트들에 의해 표현될 수 있는 경우, 블록에 대한 비트들의 최소 수는 M=3이다.
블록(325)에서, 압축기는, 블록 내의 델타 값들을 나타내기에 충분한 비트들의 최대 수와 M 사이의 차이를 나타내기에 충분한 비트들의 수(B)를 결정한다. 비트들의 최대 수는 블록 내의 그룹들의 각각을 나타내기에 충분한 비트들의 그룹 최소 수들의 최대치를 취함으로써 결정된다. 따라서 비트들의 수(B)는 다음과 같이 결정될 수 있다:
Figure pct00003
따라서, 이상의 예에서와 같이, 그룹들에 대한 델타 값들이 3-5개의 비트들에 의해 표현될 수 있는 경우, 블록 내의 그룹들에 대한 비트들의 수는 B=2이다.
블록(330)에서, 압축기는 M 및 B를 나타내는 비트들을 포함하는 블록 헤더를 생성한다. 블록 헤더의 일부 실시예들은 M을 나타내기 위한 비트들의 제 1 수 및 B를 나타내기 위한 비트들의 제 2 수를 포함한다. 예를 들어, 픽셀들이 8-비트 컬러 깊이에 의해 표현되는 경우, 블록 헤더 내의 4개의 비트들이 M을 나타내기 위하여 사용될 수 있으며, 블록 헤더 내의 4개의 비트들이 M을 나타내기 위하여 사용될 수 있고, 이러한 경우에 있어서 9개의 비트들이 그룹들 내의 델타 값들을 나타내기 위해 요구될 수 있다. 블록 헤더의 일부 실시예들은 대안적으로 M 및 B의 값들의 모든 가능한 조합들을 나타내기 위한 수의 비트들을 포함하며, 이는 블록 헤더 내에 포함되는 비트들의 총 수를 감소시킨다. 예를 들어, 다음의 표는 M 및 B의 값들의 개별 인코딩 및 M 및 B의 동일한 값들의 결합된 인코딩을 예시한다.
Figure pct00004
블록(335)에서, 압축기는 각각의 그룹 i에 대한 그룹 헤더를 생성한다. 그룹 헤더의 일부 실시예들은 대응하는 그룹에 대한 Bi-M의 값을 나타내기 위한 하나 이상의 비트들을 포함한다. 동일한 수의 비트들이 수량 Bi-M, 및 수량 Bi를 나타내기 위하여 사용되는 M=0인 경우를 제외하면, 수량 Bi를 나타내기에 충분할 비트들에 수에 비하여, 수량 Bi-M를 나타내기 위하여 더 적은 비트들로 충분하다. 따라서, 각각의 그룹 내의 델타 값들을 나타내기에 충분한 비트들의 수를 나타내기 위하여 수량 Bi-M을 사용하는 것이 압축기로부터 압축 해제기로 송신되어야 하는 비트들의 전체 수를 감소시킨다. 예를 들어, 블록이 픽셀들에 대하여 8-비트 컬러 깊이를 사용하는 경우에, 수량들 M 및 B는 M 및 B가 개별적으로 인코딩되는 경우 4개의 비트들에 의해 각기 표현된다. 수량 Bi-M은, 8*B개의 비트들이 8개의 모든 그룹들에 대한 수량 Bi-M을 나타내기에 충분하도록 B를 사용하여 표현될 수 있다.
블록(340)에서, 압축기는 델타 값들을 나타내기 위하여 Bi개의 비트들을 사용하여 각각의 그룹 i에 대한 델타 값들을 인코딩한다. 블록(315)의 예로 돌아오면, 제 1 그룹(i=1) 내의 델타 값들은 3개의 비트들(B_i=3)을 사용하여 인코딩되며, 제 2 그룹(i=2) 내의 델타 값들은 4개의 비트들(B_i=4)을 사용하여 인코딩되고, 제 3 그룹(i=3) 내의 델타 값들은 5개의 비트들(B_i=5)을 사용하여 인코딩된다.
블록(345)에서, 압축기는 블록 헤더, 그룹 헤더들, 및 인코딩된 델타 값들을 압축 해제기를 향해 송신한다. 예를 들어, 컴퓨팅 유닛들(111-114)과 연관된 압축기들은 버스(135)를 통해 블록 헤더, 그룹 헤더들, 및 인코딩된 델타 값들을 도 1에 도시된 메모리 제어기(125) 또는 스크린(145)을 향해 송신한다.
블록(350)에서, 압축 해제기는, 블록 헤더, 그룹 헤더들, 및 인코딩된 델타 값들을 나타내는 비트들을 포함하는 비트스트림을 수신한다. 압축 해제기는 블록 헤더 및 그룹 헤더들 내의 정보를 사용하여 델타 값들을 나타내는 압축되지 않은 비트들을 복원하기 위하여 비트스트림을 압축 해제할 수 있다. 예를 들어, 압축 해제기는 블록 헤더로부터 B의 값을 판독하고, 만약 블록이 8개의 그룹들로 분할된 경우 모든 그룹들에 대한 수량 Bi-M를 나타내는 비트들의 수, 즉, 8*B개의 비트들을 결정하기 위하여 이러한 값을 사용한다. 압축 해제기는 또한 블록 헤더로부터 M의 값을 판독한다. 각각의 그룹에 대하여, 압축 해제기는 대응하는 그룹 헤더로부터 수량 Bi-M의 값을 판독하고, 대응하는 그룹의 수량 Bi의 값을 결정하기 위하여 값 Bi-M를 M의 값과 조합한다. 압축 해제기는, 인코딩된 델타 값들이 정확하게 디코딩될 수 있도록 인코딩된 델타 값들을 나타내는 비트들을 파싱(parse)하기 위하여 수량 Bi의 값을 사용한다. 예를 들어, 그룹에 대하여 수량 Bi=3인 경우, 압축 해제기는 각각의 인코딩된 델타 값이 비트스트림 내에서 3개의 비트들에 의해 표현되고 있다는 것을 결정한다.
도 4는 일부 실시예들에 따른 상이한 그룹 구성들의 픽셀들의 그룹들로 분할될 수 있는 픽셀들의 블록(400)의 블록도이다. 블록(400)은 8 x 8 그리드로 배열된 64개의 픽셀들(405)(명확성의 관점에서 오로지 하나만 참조 번호에 의해 표시됨)을 포함한다. 그러나, 블록(400)의 다른 실시예들은 상이한 패턴들로 배열된 상이한 수의 픽셀들을 포함한다. 블록(400)은, 예를 들어, 도 2에 도시된 압축기(205)와 같은 압축기에 의해 픽셀들의 그룹들로 분할된다. 제 1 그룹 구성에서, 블록(400)은 각기 8 x 1 그리드 구성으로 배열되는 8개의 그룹들(410)(명확성의 관점에서 오로지 하나만 참조 번호에 의해 표시됨)로 분할된다. 제 2 그룹 구성에서, 블록(400)은 각기 4 x 2 그리드 구성으로 배열되는 8개의 그룹들(415)(명확성의 관점에서 오로지 하나만 참조 번호에 의해 표시됨)로 분할된다. 블록(400)을 더 많거나 또는 더 적은 그룹들로 분할하기 위하여 다른 그룹 구성들이 또한 사용될 수 있다.
압축기의 일부 실시예들은, 블록(400)이 2개 이상의 상이한 그룹 구성들에 따라 상이한 그룹들로 분할될 때, 픽셀들(405)에 대한 델타 값들을 인코딩하기 위하여 필요한 비트들의 수를 결정한다. 예를 들어, 예시된 2개의 상이한 그룹 구성들에 경우에 있어서, 블록(400)은 제 1 그룹 구성에 따른 그룹들(410) 및 제 2 구성에 따른 그룹들(415)로 분할될 수 있다. 그러면, 압축기는 상이한 그룹 구성들에 따라 픽셀들(405)에 대한 델타 값들을 인코딩하기 위하여 필요한 비트들의 수를 추정하기 위하여 도 3에 도시된 방법(300)의 부분들을 실행한다. 그런 다음, 압축기는 비트들의 수의 상이한 값들을 비교하고 압축된 비트스트림 대의 비트들의 최소 수를 야기하는 그룹 구성을 선택한다. 그런 다음, 선택된 그룹 구성은, 예를 들어, 도 3에 도시된 방법(300)의 일부 실시예들에 따라 비트스트림을 압축하기 위하여 사용된다.
도 5는 일부 실시예들에 따른 블록의 픽셀들의 델타 값들을 나타내는 압축된 비트스트림(500)의 블록도이다. 비트스트림(500)은, 예를 들어, 도 3에 도시된 방법(300)의 일부 실시예들을 수행함으로써 도 2에 도시된 압축된 비트스트림(220)을 형성하기 위하여 압축기(205)의 일부 실시예들에 의해 생성된다. 도 5에 도시된 비트스트림(500)은 8-비트 컬러 깊이를 갖는 픽셀들의 컬러 값들에 기초하여 결정되는 픽셀들의 델타 값들에 기초하여 생성된다. 그러나, 더 크거나 또는 더 작은 수의 비트들을 갖는 컬러 깊이들이 또한 사용될 수 있다.
비트스트림(500)은, 블록 내의 임의의 그룹에 대한 델타 값들을 나타내기에 충분한 최소 수의 비트들(M)을 나타내는 비트들로 형성된 블록 헤더(505)를 포함한다. 블록 헤더(505)는 또한, 블록 내의 델타 값들을 나타내기에 충분한 비트들의 최대 수와 M 사이의 차이를 나타내기에 충분한 비트들의 수(B)를 나타내는 비트들을 포함한다. 값들 M 및 B는, 블록 헤더(505)가 8-비트 픽셀 깊이들에 대한 적어도 8개의 비트들을 포함하도록 각기 4개의 비트들에 의해 표현된다. 그러나, 본원에서 논의되는 바와 같이, 이러한 값들을 개별적으로 나타내는 대신에 값들 M 및 B의 모든 가능한 조합들을 나타내기 위하여 작은 수의 비트들이 블록 헤더(505) 내에 포함될 수 있다. 추가로, 이하에서 논의되는 바와 같이, 압축 알고리즘의 일부 구현예들은 블록 헤더(505) 내에 비트들의 수를 변화시키는 특징들을 구현한다.
비트스트림(500)은 또한 블록에 대한 델타 값들의 그룹들의 각각과 연관된 그룹 헤더들(510, 515)을 포함한다. 예를 들어, 그룹 헤더(510)는 그룹 1에 대한 B1-M의 값을 나타내는 비트들을 포함하며, 그룹 헤더(515)는 그룹 2에 대한 B2-M의 값을 나타내는 비트들을 포함한다. 본원에서 논의되는 바와 같이, B개의 비트들은 그룹들에 대한 Bi-M의 값들을 나타내기에 충분하며, 따라서 그룹 헤더들(510, 515)은 B개의 비트들을 포함한다. 그러나, 이하에서 논의되는 바와 같이, 압축 알고리즘의 일부 구현예들은 그룹 헤더들(510, 515) 내의 비트들의 수를 변화시키는 특징들을 구현한다.
비트스트림(500)은 그룹 헤더들(510, 515)에 대응하는 그룹들에 대한 인코딩된 델타 값들을 더 포함한다. 예를 들어, 비트스트림(500)은 그룹 헤더(510)와 연관된 그룹 1에 대한 인코딩된 델타 값들(520)을 포함한다. 인코딩된 델타 값들(520)은 인코딩된 델타 값들마다 Bi 개의 비트들에 의해 표현될 수 있다. 예를 들어, 그룹 1에 대한 8개의 인코딩된 델타 값들(520)이 각기 Bi=3개의 비트들에 의해 표현되는 경우, 인코딩된 델타 값들(520)은 24개의 비트들에 의해 표현된다. 그러나, 이하에서 논의되는 바와 같이, 압축 알고리즘의 일부 실시예들은 인코딩된 델타 값들(520)을 나타내기에 충분한 비트들의 수를 변화시키는 특징들을 구현한다.
도 6은 일부 실시예들에 따른 모두-포지티브한 델타 값들 또는 모두-네거티브한 델타 값들을 나타내기 위하여 사용되는 비트들의 수를 감소시키기 위한 방법(600)의 순서도이다. 방법(600)의 상이한 변형예들에 있어서, 수 0은 델타 값들이 모두-포지티브인지 또는 모두-네거티브인지 여부를 결정하는 목적을 위하여 포지티브 또는 네거티브로서 간주된다. 방법(600)은 도 2에 도시된 압축기(205)의 일부 실시예들에 의해 구현된다. 대응하는 압축 해제 프로세스는 방법(600)에 따라 생성된 압축된 비트스트림을 디코딩하기 위하여 도 2에 도시된 압축 해제기(210)의 일부 실시예들에서 구현된다.
블록(605)에서, 압축기는 그룹 내의 델타 값들이 모두 포지티브 값들을 갖는지, 모두 네거티브 값들을 갖는지, 또는 포지티브 값들 및 네거티브 값들의 혼합인지 여부를 결정한다. 그런 다음, 압축기는 모두-포지티브, 모두-네거티브, 또는 혼합된 포지티브 및 네거티브 값들을 표시하기 위하여 대응하는 그룹 헤더 내에 비트들을 부가할 수 있다. 그룹 내의 델타 값들의 3개의 가능한 상태들을 나타내기 위하여 2개의 비트들로 충분하다.
결정 블록(610)에서, 압축기는 그룹 내의 델타 값들이 모두-포지티브 값들을 갖는지 여부를 결정한다. 그러한 경우, 압축기는 블록(615)에서 그룹 내의 델타 값들로부터 부호 비트들을 드롭한다. 블록(620)에서, 압축기는 그룹 내의 델타 값들이 모두-포지티브 값들을 갖는다는 것을 표시하기 위하여 대응하는 그룹 헤더 내의 제 1 부호 비트를 1로 설정한다. 예시된 실시예에 있어서, 대응하는 그룹 헤더 내의 제 2 부호 비트의 값은 0 또는 1로 설정되거나, 또는 제 2 부호 비트는 비트 카운트를 추가로 감소시키기 위하여 대응하는 그룹 헤더로부터 빼질 수 있다. 그룹 내의 델타 값들이 모두-포지티브 값들을 갖지는 않는 경우, 방법은 결정 블록(625)으로 진행한다.
결정 블록(625)에서, 압축기는 그룹 내의 델타 값들이 모두 네거티브 값들을 갖는지 여부를 결정한다. 그러한 경우, 압축기는 블록(630)에서 그룹 내의 델타 값들로부터 부호 비트들을 드롭한다. 블록(635)에서, 압축기는 그룹 내의 델타 값들이 모두-네거티브 값들을 갖는다는 것을 표시하기 위하여 대응하는 그룹 헤더 내의 제 1 및 제 2 부호 비트들을 0으로 설정한다. 그룹 내의 델타 값들이 모두 네거티브 값들을 갖지는 않는 경우, 방법은 결정 블록(640)으로 진행한다.
블록(640)에서, 압축기는 그룹 내의 델타 값들이 포지티브 및 네거티브 값들의 혼합을 갖는다는 것을 표시하기 위하여 대응하는 그룹 헤더 내의 제 1 부호 비트를 0으로 그리고 대응하는 그룹 헤더 내의 제 2 부호 비트를 1로 설정한다.
도 6에 예시된 방법(600)은 대응하는 그룹 내의 델타 값들이 모두-포지티브인지, 모두-네거티브인지, 또는 혼합되었는지 여부를 표시하기 위하여 각각의 그룹 헤더 내에 하나 또는 두 개의 부호 비트들을 사용한다. 그러나, 일부 실시예들에 있어서, 압축기는 블록 내의 그룹들의 상태들의 모든 가능한 조합들을 나타내기 위하여 더 작은 수의 비트들을 사용한다. 예를 들어, 각각의 그룹들 내의 델타 값들의 3개의 가능한 상태들은 3^8=6561개의 상이한 조합들에 대응하며, 이는 2^13 = 8192이고, 반면 2^12=4096이기 때문에 13개의 비트들에 의해 표현될 수 있다. 블록 및 그룹들의 상태들의 조합들을 나타내는 비트들은 블록 헤더 내에 포함될 수 있다.
도 7은 일부 실시예들에 따른 2의 거듭제곱과 동일한 최대 델타 값을 갖는 그룹 내의 델타 값들을 인코딩하기 위한 방법(700)의 순서도이다. 방법(700)은 도 2에 도시된 압축기(205)의 일부 실시예들에서 구현된다.
블록(705)에서, 압축기는 델타 값들을 나타내는 압축되지 않은 비트들을 판독한다. 블록(710)에서, 압축기는 본원에서 논의되는 바와 같이 델타 값들을 모두-포지티브 값들에 매핑(map)한다. 압축기는, 부호 최적화가 사용되었다는 것을 표시하기 위하여 하나의 추가적인 비트를 부가하며, 델타 값들이 모두-네거티브인 경우 또는 델타 값들이 포지티브 및 네거티브 값들의 혼합인 경우 델타 값의 부호를 표시하기 위한 하나 이상의 추가적인 비트들을 부가한다. 예를 들어, 압축기는 도 6에 도시된 방법(600)의 일부 실시예에 따라 추가적인 비트들의 값들을 결정할 수 있다.
결정 블록(715)에서, 압축기는 그룹 내의 픽셀에 대한 최대 델타 절대 값이 2의 거듭제곱(예를 들어, k>0에 대하여 2k)과 동일한지 여부를 결정한다. 이러한 경우에, 그룹이 블록(710)에서 모두-포지티브 값들로 매핑되었기 때문에 그룹 내의 델타 값들을 나타내기 위하여 k+1개의 비트들이 필요하다. 그룹 내의 픽셀에 대한 최대 델타 절대 값이 2의 거듭제곱과 동일하지 않은 경우, 압축기는, 예를 들어, 도 3에 도시된 방법(300)의 일부 실시예들에 따라 블록(720)에서 압축되지 않은 비트들을 압축한다. 그룹 내의 픽셀에 대한 최대 델타 절대 값이 2의 거듭제곱과 동일한 경우, 압축기는 블록(725)에서 (k+1개의 비트들을 사용하는 대신에) k개의 비트들을 사용하여 각각의 델타 값을 인코딩한다.
k개의 비트들을 사용하여 델타 값들을 인코딩함으로써, 2k 또는 2k-1와 동일한 델타 값들이 동일한 k-비트 수에 의해 표현될 것이다. 축퇴(degeneracy)를 해결하기 위하여, 결정 블록(730)에서, 압축기는 델타 값이 2k 또는 2k-1와 동일한지 여부를 결정한다. 그러한 경우, 압축기는 (블록(735)에서) 후행(trailing) 비트를 부가하고, 대응하는 델타 값이 2k-1 또는 2k와 동일한지 여부를 표시하기 위하여 후행 비트의 값을 설정한다. 델타 값이 2k-1 또는 2k와 동일하지 않은 경우, 압축기는 후행 비트를 부가하는 것을 우회한다(블록(740)에서).
도 7에 예시된 예시적인 압축 알고리즘은 델타 값들의 2개의 축퇴된 인코딩 값들을 구별하기 위하여 후행 비트를 사용한다. 그러나, 일부 변형예들에 있어서, 더 작은 수의 비트들이 기본 인코딩을 수행하기 위하여 사용될 수 있다(예를 들어, k개 미만의 비트들이 k>0에 대하여 2k개의 최대 델타 절대 값에 이르는 범위의 델타 값들을 인코딩하기 위하여 사용될 수 있다). 그런 다음, 결과적인 축퇴들을 해결하기 위하여 추가적인 후행 비트들이 사용된다. 예를 들어, 블록 내의 델타 값들이 0, 1, 2, 3, 4, 및 5인 경우, 최대 델타 절대 값은 2^2+1 또는 k=2인 5이다. 따라서, 최대 델타 절대 값이 2^2=4보다 더 크기 때문에, 각각의 델타 값을 나타내기 위하여 3개의 비트들이 요구된다. 따라서, 총 6*3=18개의 비트들이 모든 델타 값들을 나타내기 위하여 요구된다. 그러나, 블록(715)에서 평가된 최대 델타 절대 값이 2^n+1와 동일한 경우, 2^n-1, 2^n, 및 2^n+1과 동일한 델타 값들은 모두 2^n-1의 축퇴 값으로서 인코딩된다. 2^n-1, 2^n, 및 2^n+1의 축퇴 값들을 구별하기 위하여 추가적인 후행 비트들이 델타 값들에 부가된다. 예를 들어, "1"의 후행 비트가 2^n-1에 부가되며, "01"의 2개의 후행 비트들이 2^n에 부가되고, "00"의 2개의 후행 비트들이 2^n+1에 부가된다. 입력 데이터 스트림 0, 1, 2, 3, 4, 및 5는 그런 다음 일련의 2진 값들:00, 01, 10, 111, 1101, 및 1111로 압축된다. 압축된 2진 스트림 내의 비트들의 총 수는 2+2+2+3+4+4 = 17이며, 이는 이러한 예에서 하나의 비트의 절감이다.
압축기의 일부 실시예들은 대응하는 블록에 대하여 2의 거듭제곱 최적화가 사용되는지 여부를 표시하기 위하여 블록 헤더에 비트를 부가한다. 예를 들어, 이러한 비트는, 압축기가 비트들의 수가 감소되지 않는다는 것을 결정하는 경우 2의 거듭제곱 최적화가 사용되지 않는다는 것을 표시하기 위하여 설정(또는 리셋)될 수 있다. 추가적인 비트를 부가하는 것이 알고리즘에 대한 압축률을 감소시키지만, 일부 변형예들에 있어서, 압축 해제기는, 압축 해제기에 의해 요구되는 클럭 사이클들의 수를 감소시킬 수 있는 2의 거듭제곱 최적화가 사용되는지 여부를 표시하기 위하여 추가적인 비트가 존재하는 경우 비트스트림을 압축 해제하기 위하여 더 적은 프로세싱 사이클을 필요로 한다.
도 8은 일부 실시예들에 따른 2의 거듭제곱과 동일한 최대 델타 값을 갖는 그룹 내의 델타 값들을 디코딩하기 위한 방법(800)의 순서도이다. 방법(800)은 도 2에 도시된 압축 해제기(210)의 일부 실시예들에서 구현된다. 압축 해제기는, 도 7의 방법(700)에 예시된 압축 알고리즘과 같은 대응하는 압축 알고리즘에 따라 압축된 비트스트림들을 압축 해제하기 위하여 방법(800)을 사용한다.
블록(805)에서, 압축 해제기는 블록의 그룹 내의 픽셀에 대한 델타 값을 나타내는 비트들을 판독한다. 압축 해제기는, 대응하는 그룹 헤더 및 블록 헤더 내에 포함된 정보를 사용하여 수량 Bi의 값을 이미 결정하였다. 그룹 내의 델타 값들은 Bi개의 비트들을 사용하여 인코딩된다.
결정 블록(810)에서, 압축 해제기는, 델타 값을 나타내는 비트들에 의해 표시되는 비트 값이 2^(Bi)-1의 최대 인코딩된 비트 값과 동일한지 여부를 결정한다. 그렇지 않은 경우, 압축 해제기는 블록(715)에서 델타 값을 비트 값과 동일하게 설정한다. 압축 해제기가, 델타 값을 나타내는 비트들에 의해 표시되는 비트 값이 2^(Bi)-1과 동일하다는 것을 결정하는 경우, 방법(800)은 결정 블록(820)으로 진행한다.
결정 블록(820)에서, 압축 해제기는 후행 비트를 판독하고, 후행 비트가 0 또는 1과 동일하지 여부를 결정한다. 후행 비트가 0과 동일한 경우, 압축 해제기는 블록(725)에서 델타 값이 2^(Bi)-1과 동일하다는 것을 결정한다. 후행 비트가 1과 동일한 경우, 압축 해제기는 블록(830)에서 델타 값이 2^(Bi)와 동일하다고 결정한다. 델타 값들에 대한 후행 비트들의 연관성은 임의적이며, 반대되는 변환이 또한 일부 실시예들에서 사용될 수 있다.
도 9는 일부 실시예들에 따른 압축 알고리즘의 특징들을 우회할지 여부를 결정하는 방법(900)의 순서도이다. 방법(900)은 도 2에 도시된 압축기(205)의 일부 실시예들에서 구현된다. 대응하는 압축 해제 프로세스는 방법(900)에 따라 생성된 압축된 비트스트림을 디코딩하기 위하여 도 2에 도시된 압축 해제기(210)의 일부 실시예들에서 구현된다.
블록(905)에서, 압축기는, 압축기에 의해 구현되는 압축 알고리즘의 하나 이상의 최적화들에 따라 블록 내의 픽셀들의 델타 값들을 인코딩함으로써 절감되는 비트들의 수를 결정한다. 예를 들어, 압축기는 도 3에 도시된 방법(300)의 일부 실시예에 따라 델타 값들을 인코딩하기에 충분한 비트들의 제 1 수를 결정할 수 있다. 압축기는 또한, 도 6에 도시된 방법(600), 도 7에 도시된 방법(700), 또는 도 8에 도시된 방법(800)의 일부 실시예들에 따라 구현된 특징들과 같은 추가적인 최적화 특징들이 구현될 때, 델타 값들을 인코딩하기에 충분한 비트들의 제 2 수를 결정할 수 있다. 절감되는 비트들의 수는 제 1 수와 제 2 수 사이의 차이와 동일하다.
블록(910)에서, 압축기는, 하나 이상의 최적화들에 따라 인코딩된 델타 값들의 압축을 지원하기 위하여 블록 헤더 또는 그룹 헤더들에 부가된 비트들의 수를 결정한다. 예를 들어, 압축기는, 도 3에 도시된 방법(300)의 일부 실시예들에 따라 델타 값들을 인코딩하는 것을 지원하기 위한 블록 헤더 및 그룹 헤더들 내의 값들을 표현하기 위해 필요한 비트들의 제 1 수를 결정할 수 있다. 압축기는 또한, 도 6에 도시된 방법(600), 도 7에 도시된 방법(700), 또는 도 8에 도시된 방법(800)의 일부 실시예들에 따라 구현되는 특징들과 같은, 추가적인 최적화 특징들이 구현될 때, 델타 값들을 인코딩하는 것을 지원하기 위해 블록 헤더 및 그룹 헤더들 내의 값들을 표현하기 위해 필요한 비트들의 제 2 수를 결정할 수 있다. 부가되는 비트들의 수는 제 1 수와 제 2 수 사이의 차이와 동일하다.
결정 블록(915)에서, 압축기는 절감되는 비트들의 수가 부가되는 비트들의 수보다 더 큰지 여부를 결정한다. 그러한 경우, 압축기는 (블록(920)에서), 압축기가 인코딩된 델타 값들을 압축하기 위하여 추가적인 특징들을 사용한다는 것을 나타내기 위하여 블록 헤더 내의 우회 비트를 거짓(FALSE)(또는 어떤 다른 값)으로 설정한다. 절감되는 비트들의 수가 부가되는 비트들의 수보다 더 작은 경우, 방법(900)은 결정 블록(925)으로 진행한다.
결정 블록(925)에서, 압축기는 블록 내의 픽셀들에 대한 델타 값들 전부가 0과 동일한지 여부를 결정한다. 그렇지 않은 경우, 압축기는 (블록(930)에서), 압축기가 인코딩된 델타 값들을 압축하기 위하여 추가적인 특징들의 사용을 우회한다는 것을 나타내기 위하여 블록 헤더 내의 우회 비트를 참(TRUE)(또는 다른 어떤 값)으로 설정한다. 블록 내의 픽셀들에 대한 델타 값들 모두가 0과 동일한 경우, 우회 비트는 비트 카운트를 추가적으로 감소시키기 위하여 블록(935)에서 블록 헤더로부터 드롭될 수 있다.
일부 실시예들에 있어서, 이상에서 설명된 장치 및 기술들은 도 1 내지 도 8을 참조하여 이상에서 설명된 프로세싱 시스템과 같은 하나 이상의 집적 회로(IC) 디바이스들(집적 회로 패키지들 또는 마이크로칩들로도 또한 지칭됨)을 포함하는 시스템 내에 구현된다. 전자 설계 자동화(electronic design automation; EDA) 및 컴퓨터 보조 설계(computer aided design; CAD) 소프트웨어 툴들이 이러한 IC 디바이스들의 설계 및 제조에서 사용될 수 있다. 이러한 설계 툴들은 전형적으로 하나 이상의 소프트웨어 프로그램들로서 표현된다. 하나 이상의 소프트웨어 프로그램들은, 회로부를 제조하기 위한 제조 시스템을 설계하거나 또는 개조하기 위한 프로세스의 적어도 일 부분을 수행하기 위하여 하나 이상의 IC 디바이스들의 회로부를 나타내는 코드 상에서 동작하도록 컴퓨터 시스템을 조작하도록 컴퓨터 시스템에 의해 실행될 수 있는 코드를 포함한다. 이러한 코드는 명령어들, 데이터, 또는 명령어들 및 데이터의 조합을 포함할 수 있다. 설계 툴 또는 제조 툴을 나타내는 소프트웨어 명령어들은 전형적으로 컴퓨팅 시스템에 액세스가 가능한 컴퓨터 판독가능 저장 매체 내에 저장된다. 마찬가지고, IC 디바이스의 설계 또는 제조의 하나 이상의 단계들을 나타내는 코드가 동일한 컴퓨터 판독가능 저장 매체 또는 상이한 컴퓨터 판독가능 저장 매체 내에 저장되고 이로부터 액세스될 수 있다.
컴퓨터 판독가능 저장 매체는, 컴퓨터 시스템으로 명령어들 및/또는 데이터를 제공하기 위한 사용 동안 컴퓨터 시스템에 의해 액세스되는, 임의의 비-일시적인 저장 매체, 또는 비-일시적인 저장 매체들의 조합을 포함할 수 있다. 이러한 저장 매체는, 비제한적으로, 광학적 매체(예를 들어, 컴팩트 디스크(CD), 디지털 다기능 디스크(DVD), 블루-레이 디스크), 자기 매체(예를 들어, 플로피 디스크, 자기 테이프, 또는 자기 하드 드라이브), 휘발성 메모리(예를 들어, 랜덤 액세스 메모리(RAM) 또는 캐시), 비-휘발성 메모리(예를 들어, 판독-전용 메모리(ROM) 또는 플래시 메모리), 또는 마이크로전자기계 시스템(MEMS)-기반 저장 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체는, 컴퓨팅 시스템 내에 구현될 수 있거나(예를 들어, 시스템 RAM 또는 ROM), 컴퓨팅 시스템에 고정적으로 부착될 수 있거나(예를 들어, 자기 하드 드라이브), 컴퓨팅 시스템에 착탈가능하게 부착될 수 있거나(예를 들어, 광 디스크 또는 범용 직렬 버스(USB)-기반 플래시 메모리), 또는 유선 또는 무선 네트워크를 통해 컴퓨터 시스템에 결합될 수 있다(예를 들어, 네트워크 액세스가능 저장부(NAS)).
일부 실시예들에 있어서, 이상에서 설명된 기술들의 특정 측면들은 소프트웨어를 실행하는 프로세싱 시스템의 하나 이상의 프로세서들에 의해 구현될 수 있다. 소프트웨어는 비-일시적인 컴퓨터 판독가능 저장 매체 상에 저장되거나 또는 달리 유형적으로 구현된 실행가능 명령어들의 하나 이상의 세트들을 포함한다. 소프트웨어는, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들이 이상에서 설명된 기술들의 하나 이상의 측면들을 수행하게끔 조작하는 명령어들 및 특정 데이터를 포함할 수 있다. 비-일시적인 컴퓨터 판독가능 저장 매체는, 예를 들어, 자기 또는 광 디스크 저장 디바이스, 고체-상태 저장 디바이스들 예컨대 플래시 메모리, 캐시, 랜덤 액세스 메모리(RAM), 또는 다른 비-휘발성 메모리 디바이스 또는 디바이스들 등을 포함할 수 있다. 비-일시적인 컴퓨터 판독가능 저장 매체 상에 저장된 실행가능 명령어들은 소스 코드, 어셈블리 언어 코드, 객체 코드, 또는 하나 이상의 프로세서들에 의해 번역되거나 및/또는 달리 실행가능한 다른 명령어 포맷일 수 있다.
전반적인 설명에서 이상에서 설명된 액티비티(activity)들 또는 엘리먼트들의 전부가 요구되지는 않는다는 것, 특정 액티비티 또는 디바이스의 일 부분이 요구되지 않을 수 있다는 것, 및 설명된 것들에 더하여 하나 이상의 추가적인 액티비티들이 수행되거나, 또는 엘리먼트들이 포함될 수 있다는 것을 주의해야 한다. 더 나아가서, 액티비티들이 열거되는 순서가 반드시 이들이 수행되는 순서는 아니다. 또한, 개념들은 특정 실시예들을 참조하여 설명되었다. 그러나, 당업자는, 이하의 청구범위에 기술되는 바와 같은 본 개시의 범위로부터 벗어나지 않고 다양한 수정들 및 변형들이 이루어질 수 있다는 것을 이해할 것이다. 따라서, 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 것으로서 간주되어야 하며, 이러한 모든 변형예들이 본 개시의 범위 내에 속하도록 의도된다.
이점들, 다른 장점들, 및 문제들에 대한 해법들이 특정 실시예들에 관하여 이상에서 설명되었다. 그러나, 이점들, 다른 장점들, 문제들에 대한 해법들, 및 임의의 이점, 장점, 또는 해법이 나타나게 하거나 또는 더 현저해지게끔 하는 다른 특징(들)은 임의의 또는 모든 청구항들의 중요하거나, 요구되거나, 또는 본질적인 특징으로서 간주되지 않아야 한다. 또한, 이상에서 설명된 특정 실시예들은, 개시된 내용이 본원의 교시들의 이점을 갖는 당업자들에게 자명한 상이하지만 균등한 방식들로 수정되고 실시될 수 있기 때문에 오로지 예시적일 뿐이다. 이하의 청구항들에서 설명되는 것들 이외에는, 본원에서 보여지는 구성 또는 설계의 세부사항들에 대한 어떠한 제한들도 의도되지 않는다. 따라서, 이상에서 개시된 특정 실시예들이 변경되거나 또는 수정될 수 있으며, 이러한 모든 변형예들이 개시된 내용의 범위 내에 속하는 것으로서 간주된다는 것이 명백하다. 따라서, 본원에서 추구되는 보호는 이하의 청구항들에 기술되는 바와 같다.

Claims (26)

  1. 방법으로서,
    블록 내의 복수의 픽셀들에 대한 델타 값들을 결정하는 단계로서, 각각의 델타 값은 상기 복수의 픽셀들로부터 선택된 기준 픽셀의 기준 컬러와 상기 복수의 픽셀들 중 하나의 컬러 사이의 차이를 나타내는, 단계;
    상기 복수의 픽셀들을 복수의 그룹들로 분할하는 단계; 및
    상기 델타 값들을 나타내는 압축된 비트 스트림을 송신하는 단계로서, 상기 압축된 비트스트림은: 상기 델타 값들을 나타내기에 충분한 비트들의 수들의 범위를 나타내는 블록 헤더를 나타내는 비트들; 복수의 그룹 헤더들로서, 각각의 그룹 헤더는 상기 복수의 그룹들 중 대응하는 하나의 그룹 내의 상기 델타 값들을 나타내기에 충분한 비트들의 그룹 최소 수를 나타내는, 상기 복수의 그룹 헤더들; 및 상기 델타 값들을 포함하는 상기 그룹에 대한 상기 그룹 최소 수의 비트들을 사용하여 인코딩된 델타 값들을 포함하는, 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 블록 내의 상기 복수의 픽셀들에 대한 상기 델타 값들을 결정하는 단계는, 상기 델타 값의 부호 및 컬러 차이를 나타내기 위하여 미리 결정된 수의 비트들을 사용하여 상기 델타 값들의 각각을 결정하는 단계로서, 상기 압축된 비트스트림 내의 비트들의 총 수는, 상기 복수의 픽셀들에 걸쳐, 상기 복수의 픽셀들에 대한 상기 델타 값들을 나타내기 위하여 사용되는 비트들의 미리 결정된 수의 합계보다 더 작은, 단계를 포함하는, 방법.
  3. 청구항 1에 있어서, 상기 블록 헤더는 상기 그룹들 중 임의의 하나의 그룹 내의 상기 델타 값을 나타내기 위한 비트들의 최소 수(M) 및 상기 델타 값들을 나타내기에 충분한 비트들의 수의 최대 값을 나타내기 위한 비트들의 제 2 수와 M 사이의 차이를 나타내기에 충분한 비트들의 제 1 수(B)를 나타내는 비트들을 포함하며, 상기 복수의 그룹 헤더들 각각은 상기 복수의 그룹들 중 대응하는 그룹 내의 델타 값들을 나타내는 비트들의 그룹 최소 수와 M 사이의 차이를 나타내는 비트들을 포함하는, 방법.
  4. 청구항 3에 있어서, 상기 블록 헤더를 나타내는 비트들은 M 및 B의 모든 가능한 조합들을 나타내기에 충분한 제 3 수의 비트들을 포함하며, 상기 방법은:
    상기 제 3 수의 비트들에 의해 표현되는 인코딩된 값을 형성하기 위하여 M 및 B의 값들의 조합을 인코딩하는 단계로서, 상기 블록 헤더는 상기 인코딩된 값을 포함하는, 단계를 더 포함하는, 방법.
  5. 청구항 1에 있어서, 상기 블록 내의 상기 복수의 픽셀들을 상기 복수의 그룹들로 분할하는 단계는:
    상이한 그룹 구성들에 따라 상기 복수의 픽셀들을 상기 복수의 그룹들로 분할하는 단계;
    상기 상이한 그룹 구성들을 사용하여 생성된 상기 압축된 비트스트림들 내의 비트들의 총 수를 비교하는 단계; 및
    상기 비교에 기초하여 상기 복수의 그룹들을 분할하기 위한 상기 상이한 그룹 구성들 중 하나를 선택하는 단계를 포함하는, 방법.
  6. 청구항 1에 있어서, 상기 방법은,
    상기 그룹들의 각각 내의 상기 델타 값들이 모두-포지티브인지, 모두-네거티브인지, 또는 혼합된 포지티브 및 네거티브 값들인지 여부를 결정하는 단계;
    그룹 내의 상기 델타 값들이 모두-포지티브 또는 모두-네거티브라고 결정하는 것에 응답하여, 그 그룹에 대한 상기 그룹 헤더로부터 상기 델타 값들의 부호들을 나타내는 비트들을 제거하는 단계; 및
    그룹 내의 상기 델타 값들이 혼합된 포지티브 및 네거티브 값들이라고 결정하는 것에 응답하여, 상기 그룹 내의 상기 델타 값들이 혼합된 포지티브 및 네거티브 값들이라는 것을 나타내기 위한 비트들을 그 그룹에 대한 상기 그룹 헤더 내에 포함시키는 단계를 더 포함하는, 방법.
  7. 청구항 6에 있어서, 상기 방법은,
    상기 대응하는 그룹 내의 상기 델타 값들이 모두-포지티브인지, 모두-네거티브인지, 또는 혼합된 포지티브 및 네거티브 값들인지 여부를 표시하기 비트들을 상기 그룹 헤더들이 포함하는지 여부를 나타내기 위하여 상기 블록 헤더 내에 우회 비트를 포함시키는 단계; 및
    상기 블록 내의 상기 복수의 픽셀들과 연관된 상기 델타 값들 모두가 0과 동일하다고 결정하는 것에 응답하여 상기 블록 헤더 내에 상기 우회 비트를 포함시키는 것을 우회하는 단계를 더 포함하는, 방법.
  8. 청구항 6에 있어서, 상기 방법은,
    그룹 내의 픽셀들에 대한 최대 델타 절대 값이 2의 거듭제곱과 동일하다고 결정하는 것에 응답하여, 상기 최대 절대 값 또는 상기 최대 절대 값보다 1이 적은 값을 갖는 델타 값들이 최대 인코딩된 비트 값에 의해 표현되도록 상기 비트들의 그룹 최소 수보다 1 비트 더 적은 비트를 사용하여 상기 그룹 내의 상기 델타 값들을 인코딩하는 단계; 및
    상기 최대 인코딩된 비트 값이 상기 최대 절대 값 또는 상기 최대 절대 값보다 1 더 작은 값을 나타내는지 여부를 표시하기 위하여 후행 비트를 상기 최대 인코딩된 비트 값에 부가하는 단계를 더 포함하는, 방법.
  9. 방법으로서,
    블록 내의 복수의 픽셀들의 델타 값들을 나타내는 압축된 비트 스트림을 수신하는 단계로서, 상기 압축된 비트스트림은, 상기 델타 값들을 나타내기에 충분한 비트들의 수들의 범위를 나타내는 블록 헤더를 나타내는 비트들, 각각이 상기 복수의 그룹들 중 대응하는 하나의 그룹 내의 상기 델타 값들을 나타내기에 충분한 비트들의 그룹 최소 수를 나타내는 복수의 그룹 헤더들을 포함하며, 상기 델타 값들은 상기 델타 값들을 포함하는 상기 그룹에 대한 상기 그룹 최소 수의 비트들을 사용하여 인코딩된, 단계; 및
    각각이 상기 복수의 픽셀들로부터 선택된 기준 픽셀의 기준 컬러 및 상기 복수의 픽셀들 중 하나의 컬러 사이의 차이를 나타내는 상기 델타 값들을 복원하기 위하여 상기 블록 헤더, 상기 복수의 그룹 헤더들, 및 상기 인코딩된 델타 값들에 기초하여 상기 압축된 비트스트림을 압축 해제하는 단계를 포함하는, 방법.
  10. 청구항 9에 있어서, 상기 압축된 비트스트림을 압축 해제하는 단계는, 상기 델타 값의 부호 및 컬러 차이를 나타내는 미리 결정된 수의 비트들에 의해 표현되는 상기 델타 값들을 복원하는 단계로서, 상기 압축된 비트스트림 내의 비트들의 총 수는, 상기 복수의 픽셀들에 걸쳐, 상기 복수의 픽셀들에 대한 상기 델타 값들을 나타내기 위하여 사용되는 비트들의 미리 결정된 수의 합계보다 더 작은, 단계를 포함하는, 방법.
  11. 청구항 9에 있어서, 상기 블록 헤더는 상기 그룹들 중 임의의 하나의 그룹 내의 상기 델타 값을 나타내기에 충분한 비트들의 최소 수(M) 및 상기 델타 값들을 나타내기에 충분한 비트들의 수의 최대 값을 나타내기에 충분한 비트들의 제 2 수와 M 사이의 차이를 나타내기에 충분한 비트들의 제 1 수(B)를 나타내는 비트들을 포함하며, 상기 복수의 그룹 헤더들 각각은 상기 복수의 그룹들 중 대응하는 그룹 내의 상기 델타 값들을 나타내기에 충분한 비트들의 그룹 최소 수와 M 사이의 차이를 나타내는 비트들을 포함하는, 방법.
  12. 청구항 11에 있어서, 상기 블록 헤더를 나타내는 비트들은 M 및 B의 모든 가능한 조합들을 나타내기에 충분한 제 3 수의 비트들을 포함하며, 상기 방법은:
    상기 제 3 수의 비트들에 의해 표현되는 M 및 B의 값들의 조합의 인코딩된 값을 디코딩하는 단계로서, 상기 블록 헤더는 상기 인코딩된 값을 포함하는, 단계를 더 포함하는, 방법.
  13. 청구항 9에 있어서, 상기 방법은,
    상기 대응하는 그룹 헤더들 내에 포함된 비트들에 기초하여 상기 그룹들의 각각 내의 상기 델타 값들이 모두-포지티브인지, 모두-네거티브인지, 또는 혼합된 포지티브 및 네거티브 값들인지 여부를 결정하는 단계;
    그룹 내의 상기 델타 값들이 모두-포지티브 또는 모두-네거티브라고 결정하는 것에 응답하여, 그 그룹에 대한 상기 그룹 헤더로부터 상기 델타 값들의 부호들을 나타내는 비트들을 제거하는 단계; 및
    그룹 내의 상기 델타 값들이 혼합된 포지티브 및 네거티브 값들이라고 결정하는 것에 응답하여, 상기 그룹 내의 상기 델타 값들이 혼합된 포지티브 및 네거티브 값들이라는 것을 나타내기 위한 비트들을 그 그룹에 대한 상기 그룹 헤더 내에 포함시키는 단계를 더 포함하는, 방법.
  14. 청구항 13에 있어서, 상기 방법은,
    상기 블록 내의 상기 복수의 픽셀들과 연관된 상기 델타 값들의 적어도 일 부분이 0과 동일하지 않을 때 상기 블록 헤더 내의 우회 비트를 검출하는 단계로서, 상기 우회 비트는 상기 대응하는 그룹 내의 상기 델타 값들이 모두-포지티브인지, 모두-네거티브인지, 또는 혼합된 포지티브 및 네거티브 값들인지 여부를 나타내는 비트들을 포함하는지 여부를 나타내는, 단계; 및
    상기 우회 비트의 값에 기초하여 상기 그룹 헤더들을 디코딩하는 단계를 더 포함하는, 방법.
  15. 청구항 13에 있어서, 상기 방법은,
    그룹 내의 픽셀들에 대한 상기 델타 값들의 최대 절대 값이 2의 거듭제곱과 동일하다는 것을 결정하는 단계;
    비트들의 상기 그룹 최소 수보다 1 비트 더 적은 비트를 사용하여 상기 그룹 내의 델타 값들을 디코딩하는 단계; 및
    최대 인코딩된 비트 값 및 상기 최대 인코딩된 비트 값이 상기 최대 절대 값 또는 상기 최대 절대 값보다 1 더 작은 값을 나타내는지 여부를 나타내는 후행 비트에 기초하여 상기 최대 인코딩된 비트 값에 의해 표현되는 델타 값들을 디코딩하는 단계를 더 포함하는, 방법.
  16. 장치로서,
    압축기를 포함하며, 상기 압축기는:
    블록 내의 복수의 픽셀들에 대한 델타 값들을 결정하되, 각각의 델타 값은 상기 복수의 픽셀들로부터 선택된 기준 픽셀의 기준 컬러와 상기 복수의 픽셀들 중 하나의 컬러 사이의 차이를 나타내고;
    상기 블록 내의 상기 복수의 픽셀들을 복수의 그룹들로 분할하며; 및
    상기 델타 값들을 나타내는 압축된 비트 스트림을 송신하도록 구성되고, 상기 압축된 비트스트림은, 상기 델타 값들을 나타내기에 충분한 비트들의 수들의 범위를 나타내는 블록 헤더를 나타내는 비트들, 각각이 상기 복수의 그룹들 중 대응하는 하나의 그룹 내의 상기 델타 값들을 나타내기에 충분한 비트들의 그룹 최소 수를 나타내는 복수의 그룹 헤더들을 포함하며, 상기 델타 값들은 상기 델타 값들을 포함하는 상기 그룹에 대한 상기 그룹 최소 수의 비트들을 사용하여 인코딩된, 장치.
  17. 청구항 16에 있어서, 상기 블록 헤더는 상기 그룹들 중 임의의 하나의 그룹 내의 상기 델타 값을 나타내기에 충분한 비트들의 최소 수(M) 및 상기 델타 값들을 나타내기에 충분한 비트들의 수의 최대 값을 나타내기에 충분한 비트들의 제 2 수와 M 사이의 차이를 나타내기에 충분한 비트들의 제 1 수(B)를 나타내는 비트들을 포함하며, 상기 복수의 그룹 헤더들 각각은 상기 복수의 그룹들 중 대응하는 그룹 내의 상기 델타 값들을 나타내기에 충분한 비트들의 그룹 최소 수와 M 사이의 차이를 나타내는 비트들을 포함하는, 장치.
  18. 청구항 17에 있어서, 상기 블록 헤더를 나타내는 상기 비트들은 M 및 B의 모든 가능한 조합들을 나타내기에 충분한 제 3 수의 비트들을 포함하며, 상기 압축기는 상기 제 3 수의 비트들에 의해 표현되는 인코딩된 값을 형성하기 위하여 M 및 B의 값들의 조합을 인코딩하도록 구성되고, 상기 블록 헤더는 상기 인코딩된 값을 포함하는, 장치.
  19. 청구항 16에 있어서, 상기 압축기는:
    상기 그룹들의 각각 내의 상기 델타 값들이 모두-포지티브인지, 모두-네거티브인지, 또는 혼합된 포지티브 및 네거티브 값들인지 여부를 결정하고;
    모두-포지티브 또는 모두-네거티브인 그룹들 내의 상기 델타 값들의 부호들을 나타내는 비트들을 드롭하며; 및
    상기 대응하는 그룹 내의 상기 델타 값들이 모두-포지티브인지, 모두-네거티브인지, 또는 혼합된 포지티브 및 네거티브 값들인지 여부를 표시하기 비트들을 상기 그룹 헤더들 내에 포함시키도록 구성되는, 장치.
  20. 청구항 19에 있어서, 그룹 내의 픽셀들에 대한 상기 델타 값들의 최대 절대 값이 2의 거듭제곱과 동일하다는 것을 결정하는 것에 응답하여, 상기 압축기는:
    상기 최대 절대 값 또는 상기 최대 절대 값보다 1이 적은 값을 갖는 델타 값들이 최대 인코딩된 비트 값에 의해 표현되도록 상기 비트들의 그룹 최소 수보다 1 비트 더 적은 비트를 사용하여 상기 그룹 내의 상기 델타 값들을 인코딩하고; 및
    상기 최대 인코딩된 비트 값이 상기 최대 절대 값 또는 상기 최대 절대 값보다 1 더 작은 값을 나타내는지 여부를 표시하기 위하여 후행 비트를 상기 최대 인코딩된 비트 값에 부가하도록 구성되는, 장치.
  21. 장치로서,
    압축 해제기를 포함하며, 상기 압축 해제기는:
    블록 내의 복수의 픽셀들의 델타 값들을 나타내는 압축된 비트 스트림을 수신하되, 상기 압축된 비트스트림은, 상기 델타 값들을 나타내기에 충분한 비트들의 수들의 범위를 나타내는 블록 헤더를 나타내는 비트들, 각각이 상기 복수의 그룹들 중 대응하는 하나의 그룹 내의 상기 델타 값들을 나타내기에 충분한 비트들의 그룹 최소 수를 나타내는 복수의 그룹 헤더들을 포함하며, 상기 델타 값들은 상기 델타 값들을 포함하는 상기 그룹에 대한 상기 그룹 최소 수의 비트들을 사용하여 인코딩되고; 및
    각각이 상기 복수의 픽셀들로부터 선택된 기준 픽셀의 기준 컬러 및 상기 복수의 픽셀들 중 하나의 컬러 사이의 차이를 나타내는 상기 델타 값들을 복원하기 위하여 상기 블록 헤더, 상기 복수의 그룹 헤더들, 및 상기 인코딩된 델타 값들에 기초하여 상기 압축된 비트스트림을 압축 해제하도록 구성되는, 장치.
  22. 청구항 21에 있어서, 상기 블록 헤더는 상기 그룹들 중 임의의 하나의 그룹 내의 상기 델타 값을 나타내기에 충분한 비트들의 최소 수(M) 및 상기 델타 값들을 나타내기에 충분한 비트들의 수의 최대 값을 나타내기에 충분한 비트들의 제 2 수와 M 사이의 차이를 나타내기에 충분한 비트들의 제 1 수(B)를 나타내는 비트들을 포함하며, 상기 복수의 그룹 헤더들 각각은 상기 복수의 그룹들 중 대응하는 그룹 내의 상기 델타 값들을 나타내기에 충분한 비트들의 그룹 최소 수와 M 사이의 차이를 나타내는 비트들을 포함하는, 장치.
  23. 청구항 22에 있어서, 상기 블록 헤더를 나타내는 비트들은 M 및 B의 모든 가능한 조합들을 나타내기에 충분한 제 3 수의 비트들을 포함하며, 상기 압축 해제기는:
    상기 제 3 수의 비트들에 의해 표현되는 M 및 B의 값들의 조합의 인코딩된 값을 디코딩하도록 구성되며, 상기 블록 헤더는 상기 인코딩된 값을 포함하는, 장치.
  24. 청구항 21에 있어서, 상기 압축 해제기는:
    상기 대응하는 그룹 헤더들 내에 포함된 비트들에 기초하여 상기 그룹들의 각각 내의 상기 델타 값들이 모두-포지티브인지, 모두-네거티브인지, 또는 혼합된 포지티브 및 네거티브 값들인지 여부를 결정하고;
    그룹 내의 상기 델타 값들이 모두-포지티브 또는 모두-네거티브라고 결정하는 것에 응답하여, 그 그룹에 대한 상기 그룹 헤더로부터 상기 델타 값들의 부호들을 나타내는 비트들을 제거하며; 및
    그룹 내의 상기 델타 값들이 혼합된 포지티브 및 네거티브 값들이라고 결정하는 것에 응답하여, 상기 그룹 내의 상기 델타 값들이 혼합된 포지티브 및 네거티브 값들이라는 것을 나타내기 위한 비트들을 그 그룹에 대한 상기 그룹 헤더 내에 포함시키도록 구성되는, 장치.
  25. 청구항 24에 있어서, 상기 압축 해제기는:
    상기 블록 내의 상기 복수의 픽셀들과 연관된 상기 델타 값들의 적어도 일 부분이 0과 동일하지 않을 때 상기 블록 헤더 내의 우회 비트를 검출하되, 상기 우회 비트는 상기 대응하는 그룹 내의 상기 델타 값들이 모두-포지티브인지, 모두-네거티브인지, 또는 혼합된 포지티브 및 네거티브 값들인지 여부를 나타내는 비트들을 포함하는지 여부를 나타내며; 및
    상기 우회 비트의 값에 기초하여 상기 그룹 헤더들을 디코딩하도록 구성되는, 장치.
  26. 청구항 24에 있어서, 상기 압축 해제기는:
    그룹 내의 픽셀들에 대한 상기 델타 값들의 최대 절대 값이 2의 거듭제곱과 동일하다는 것을 결정하고;
    비트들의 상기 그룹 최소 수보다 1 비트 더 적은 비트를 사용하여 상기 그룹 내의 델타 값들을 디코딩하며; 및
    최대 인코딩된 비트 값 및 상기 최대 인코딩된 비트 값이 상기 최대 절대 값 또는 상기 최대 절대 값보다 1 더 작은 값을 나타내는지 여부를 나타내는 후행 비트에 기초하여 상기 최대 인코딩된 비트 값에 의해 표현되는 델타 값들을 디코딩하도록 구성되는, 장치.
KR1020197002295A 2016-07-13 2017-07-12 델타 컬러 압축을 위한 비트 패킹 KR102451595B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/209,194 US10511858B2 (en) 2016-07-13 2016-07-13 Bit packing for delta color compression
US15/209,194 2016-07-13
PCT/IB2017/054213 WO2018011734A1 (en) 2016-07-13 2017-07-12 Bit packing for delta color compression

Publications (2)

Publication Number Publication Date
KR20190025928A true KR20190025928A (ko) 2019-03-12
KR102451595B1 KR102451595B1 (ko) 2022-10-06

Family

ID=60941550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197002295A KR102451595B1 (ko) 2016-07-13 2017-07-12 델타 컬러 압축을 위한 비트 패킹

Country Status (6)

Country Link
US (1) US10511858B2 (ko)
EP (1) EP3485645A4 (ko)
JP (1) JP6990227B2 (ko)
KR (1) KR102451595B1 (ko)
CN (1) CN109479146B (ko)
WO (1) WO2018011734A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304155B2 (en) * 2017-02-24 2019-05-28 Advanced Micro Devices, Inc. Delta color compression application to video
US11153578B2 (en) 2018-04-27 2021-10-19 Ati Technologies Ulc Gradient texturing compression codec
JP2021193762A (ja) * 2018-09-28 2021-12-23 ソニーグループ株式会社 受信装置、および受信方法、並びに、画像処理システム
US11568248B2 (en) * 2020-03-31 2023-01-31 Ati Technologies Ulc Feature reordering based on similarity for improved memory compression transfers during machine learning jobs
US11405622B2 (en) * 2020-04-22 2022-08-02 Apple Inc. Lossless compression techniques
KR20230037212A (ko) * 2021-09-09 2023-03-16 주식회사 엘엑스세미콘 디-무라를 위한 보상 정보 제공 장치 및 방법과 보상 정보를 이용하는 디스플레이 구동 장치
US20230334022A1 (en) * 2022-04-14 2023-10-19 The Hospital For Sick Children System and method for processing and storage of a time-series data stream
US20230421173A1 (en) * 2022-06-27 2023-12-28 Ati Technologies Ulc Huffman Packing for Delta Compression
CN116469336B (zh) * 2023-06-20 2023-08-18 联士光电(深圳)有限公司 一种彩色微显示芯片的数字驱动方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012199652A (ja) * 2011-03-18 2012-10-18 Fujitsu Ltd 画像処理装置、方法及びプログラム
KR20130044193A (ko) * 2011-10-21 2013-05-02 삼성전자주식회사 에너지 무손실 부호화방법 및 장치, 오디오 부호화방법 및 장치, 에너지 무손실 복호화방법 및 장치, 및 오디오 복호화방법 및 장치
JP2014027658A (ja) * 2012-07-30 2014-02-06 Intel Corp 圧縮エンコーディング及びデコーディング方法並びに装置
US20150149866A1 (en) * 2013-11-22 2015-05-28 International Business Machines Corporation Early data tag to allow data crc bypass via a speculative memory data return protocol
WO2015124324A1 (en) * 2014-02-20 2015-08-27 Gurulogic Microsystems Oy Methods and devices for source-coding and decoding of data involving symbol compression

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721720A (en) 1994-12-28 1998-02-24 Kabushiki Kaisha Toshiba Optical recording medium recording pixel data as a compressed unit data block
JP3686155B2 (ja) * 1996-03-21 2005-08-24 株式会社ルネサステクノロジ 画像復号装置
US5793427A (en) * 1996-10-11 1998-08-11 Divicom Inc. Processing system with delta-based video data encoding
US6205250B1 (en) * 1998-08-27 2001-03-20 Thomson Licensing S.A. System and method for minimizing clock cycles lost to overhead data in a video decoder
TWI245557B (en) * 2003-09-11 2005-12-11 Matsushita Electric Ind Co Ltd Image compensation apparatus and method for the same
JP4893956B2 (ja) 2006-08-07 2012-03-07 富士ゼロックス株式会社 符号化装置、復号化装置、符号化方法及びプログラム
US7920749B1 (en) * 2006-12-20 2011-04-05 Nvidia Corporation Modified high dynamic range color decompression
US8331663B2 (en) * 2007-06-28 2012-12-11 Qualcomm Incorporated Efficient image compression scheme to minimize storage and bus bandwidth requirements
US9326004B2 (en) * 2008-06-03 2016-04-26 Broadcom Corporation Reduced memory mode video decode
JP2010092199A (ja) 2008-10-07 2010-04-22 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
EP2284800B1 (en) * 2009-07-23 2018-09-05 Samsung Electronics Co., Ltd. Method and system for creating an image
ES2691743T3 (es) * 2010-12-06 2018-11-28 Sun Patent Trust Método de codificación de imágenes, método de decodificación de imágenes, dispositivo de codificación de imágenes y dispositivo de decodificación de imágenes
US8811759B2 (en) * 2011-01-13 2014-08-19 Sony Corporation System and method for effectively performing an intra prediction procedure
US9330475B2 (en) * 2012-05-01 2016-05-03 Qualcomm Incorporated Color buffer and depth buffer compression
CN103002282B (zh) * 2012-11-13 2015-10-28 北京大学 一种颜色数目自适应决策方法和图像压缩方法
JP2014143655A (ja) 2013-01-25 2014-08-07 Fuji Xerox Co Ltd 画像符号化装置及び画像復号化装置並びにプログラム
US9451257B2 (en) * 2013-03-22 2016-09-20 Stmicroelectronics S.R.L. Method and apparatus for image encoding and/or decoding and related computer program products
US9613394B2 (en) * 2013-08-28 2017-04-04 Intel Corporation Lossy color compression using adaptive quantization
US10979705B2 (en) 2014-08-08 2021-04-13 Qualcomm Incorporated Method for video coding with spatial prediction mode for multi-mode video coding
US9357232B2 (en) * 2014-10-28 2016-05-31 Sony Corporation Image processing system with binary decomposition and method of operation thereof
JP2017017629A (ja) * 2015-07-03 2017-01-19 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
US10269326B2 (en) * 2015-12-19 2019-04-23 Intel Corporation Method and apparatus for color buffer compression
CN105959796B (zh) * 2016-04-29 2019-06-04 海尔优家智能科技(北京)有限公司 一种基于图像增量信息的通信方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012199652A (ja) * 2011-03-18 2012-10-18 Fujitsu Ltd 画像処理装置、方法及びプログラム
KR20130044193A (ko) * 2011-10-21 2013-05-02 삼성전자주식회사 에너지 무손실 부호화방법 및 장치, 오디오 부호화방법 및 장치, 에너지 무손실 복호화방법 및 장치, 및 오디오 복호화방법 및 장치
JP2014027658A (ja) * 2012-07-30 2014-02-06 Intel Corp 圧縮エンコーディング及びデコーディング方法並びに装置
US20150149866A1 (en) * 2013-11-22 2015-05-28 International Business Machines Corporation Early data tag to allow data crc bypass via a speculative memory data return protocol
WO2015124324A1 (en) * 2014-02-20 2015-08-27 Gurulogic Microsystems Oy Methods and devices for source-coding and decoding of data involving symbol compression

Also Published As

Publication number Publication date
JP2019525583A (ja) 2019-09-05
US10511858B2 (en) 2019-12-17
EP3485645A1 (en) 2019-05-22
CN109479146A (zh) 2019-03-15
US20180020232A1 (en) 2018-01-18
WO2018011734A1 (en) 2018-01-18
CN109479146B (zh) 2020-11-17
JP6990227B2 (ja) 2022-01-12
EP3485645A4 (en) 2020-04-15
KR102451595B1 (ko) 2022-10-06

Similar Documents

Publication Publication Date Title
KR102451595B1 (ko) 델타 컬러 압축을 위한 비트 패킹
US10796458B2 (en) Compression of point clouds via a novel hybrid coder
JP2022542419A (ja) 点群表現を介したメッシュ圧縮
US11257252B2 (en) Image coding apparatus, probability model generating apparatus and image compression system
WO2014166434A1 (zh) 深度图像的编解码方法和编解码装置
EA032859B1 (ru) Многоуровневое декодирование сигнала и восстановление сигнала
CN108810544B (zh) 用于纹理解压缩的多输出解码器
US10009606B2 (en) Low power context adaptive binary arithmetic decoder engine
US20220014767A1 (en) Bit plane encoding of data arrays
JP7169284B2 (ja) ビデオへのデルタカラー圧縮の適用
KR101773396B1 (ko) 데이터를 압축 해제하는 그래픽 처리 장치 및 방법
US20240119641A1 (en) In-tree geometry quantization of point clouds
KR102231975B1 (ko) 순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술
JPWO2013008370A1 (ja) 画像圧縮装置、画像伸長装置および画像処理装置
CN111726615B (zh) 点云编解码方法及编解码器
US11153578B2 (en) Gradient texturing compression codec
KR101303503B1 (ko) 컬러 이미지들을 위한 조인트 스칼라 임베디드 그래픽 코딩
WO2023172703A1 (en) Geometry point cloud coding
CN117859330A (zh) 几何点云编码中的属性编码
CN115250351A (zh) 用于图像数据的压缩方法、解压方法及相关产品
WO2020187191A1 (zh) 点云编解码方法及编解码器
WO2023107868A1 (en) Adaptive attribute coding for geometry point cloud coding
WO2023096978A1 (en) Geometry point cloud coding
EP4364082A1 (en) Attribute coding in geometry point cloud coding
CN117813822A (zh) 几何点云编解码中的属性编解码

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