KR100803402B1 - 양자화된 디지털 화상의 런 길이 인코딩을 위한 방법, 장치 및 컴퓨터 판독가능 매체 - Google Patents

양자화된 디지털 화상의 런 길이 인코딩을 위한 방법, 장치 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR100803402B1
KR100803402B1 KR1020057011792A KR20057011792A KR100803402B1 KR 100803402 B1 KR100803402 B1 KR 100803402B1 KR 1020057011792 A KR1020057011792 A KR 1020057011792A KR 20057011792 A KR20057011792 A KR 20057011792A KR 100803402 B1 KR100803402 B1 KR 100803402B1
Authority
KR
South Korea
Prior art keywords
pixel
symbol
quantized
pixels
error vector
Prior art date
Application number
KR1020057011792A
Other languages
English (en)
Other versions
KR20050084472A (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 KR20050084472A publication Critical patent/KR20050084472A/ko
Application granted granted Critical
Publication of KR100803402B1 publication Critical patent/KR100803402B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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

Abstract

무손실 또는 손실 방식으로 디지털 화상을 압축 또는 압축해제하는 방법, 장치 및 컴퓨터 판독가능 매체가 기술되어 있다. 일부 실시예들에 있어서, 디스플레이 제어기는 디지털 화상의 화소들을 양자화할 수 있고, 동일한 일련의 양자화된 화소들의 런들을 식별할 수 있다. 이 디스플레이 제어기는 화소들의 식별된 런을 표시하기 위한 심볼을 발생시킬 수 있다. 이 심볼은 화소들의 런을 재구성하는데 이용될 수 있는 런 길이 및 양자화된 화소를 포함할 수 있다. 또한, 이 심볼은 화소들의 런을 재구성하는데 더 이용될 수 있는 런의 화소들 각각에 대한 에러 벡터를 포함할 수 있다.
런 길이, 양자화, 심볼, 손실, 에러 벡터

Description

양자화된 디지털 화상의 런 길이 인코딩을 위한 방법, 장치 및 컴퓨터 판독가능 매체{METHOD, APPARATUS AND COUPUTER READABLE MEDIUM FOR RUN LENGTH ENCODING OF A QUANTIZED DIGITAL IMAGE}
컴퓨팅 장치들은 전형적으로 디지털 화상을 렌더링(rendering)하고, 렌더링된 디지털 화상을 컴퓨터 모니터 또는 평면 패널 디스플레이와 같은 디스플레이 장치 상에 디스플레이하기 위한 디스플레이 제어기를 포함한다. 디스플레이 제어기는 디지털 화상을 렌더링하고 렌더링된 화상을 프레임 버퍼에 저장할 수 있다. 프레임 버퍼는 공유 시스템 메모리 또는 전용 비디오 메모리에 배치될 수 있다. 렌더링된 디지털 화상을 디스플레이할 시간이 오면, 디스플레이 제어기는 프레임 버퍼로부터 디지털 화상을 검색할 수 있고, 디스플레이 장치 상에 검색된 디지털 화상을 디스플레이하기 위한 신호를 발생할 수 있다. 프레임 버퍼로부터의 디지털 화상을 저장 및 검색하는 처리는 상당량의 메모리 대역폭을 소비할 수 있다. 프레임 버퍼가 공유 시스템 메모리에 배치된 경우, 컴퓨팅 장치의 성능은 다른 작업을 위해 이용가능한 메모리 대역폭을 현저하게 감소시키는 디스플레이 제어기로 인해 크게 감소될 수 있다. 또한, 프레임 버퍼가 전용 비디오 메모리에 배치된 경우, 비디오 메모리 서브시스템은 충분한 메모리 대역폭을 공급하기 위해 고가의 메모리 기술을 이용하여 구현될 수 있다.
본 명세서에 설명된 본 발명은 첨부한 도면들로 한정되는 것이 아니라, 예시 적으로 설명된다. 예시의 간략성 및 명확성을 위하여, 이 도면들에 예시된 요소들은 반드시 일정한 비율로 축소하여 그려진 것은 아니다. 예를 들면, 일부 요소들의 치수는 명확성을 위하여 다른 요소들에 비해 과장될 수 있다. 또한, 적절하다고 생각되는 경우, 대응하거나 유사한 요소들을 나타내기 위하여 도면들 중에서 참조번호들이 반복되었다.
도 1은 통합 디스플레이 제어기를 구비한 칩셋(chipset)을 갖는 컴퓨팅 장치의 실시예를 도시한 도면.
도 2는 디지털 화상의 예시적인 실시예를 도시한 도면.
도 3은 칩셋으로부터 분리된 디스플레이 제어기를 갖는 컴퓨팅 장치의 일 실시예를 도시한 도면.
도 4는 도 1 및 도 3의 디스플레이 제어기가 디지털 화상 유닛(digital image unit)을 압축하기 위해 이용할 수 있는 방법을 도시한 흐름도.
도 5는 도 1 및 도 3의 디스플레이 제어기가 디지털 화상 유닛을 압축해제(decompress)하기 위해 이용할 수 있는 방법을 도시한 흐름도.
다음의 설명은 디지털 화상 유닛을 압축 및 압축해제하기 위한 기술에 대하여 기재하고 있다. 다음의 설명에서는, 본 발명의 보다 완전한 이해를 제공하기 위하여 논리 구현, 연산부호, 피연산자 특정 수단, 리소스 분할/공유/중복 구현, 시스템 구성요소의 타입 및 상호관계, 및 논리 분할/통합 선택과 같은 다수의 특정 세부사항이 제공된다. 그러나, 이 기술분야의 당업자이면, 본 발명이 이러한 특정 세부사항 없이도 실행될 수 있다는 것을 알 수 있을 것이다. 다른 경우에, 제어 구조, 게이트 레벨 회로 및 완전한 소프트웨어 명령어 시퀀스는 본 발명을 불명료하게 하지 않도록 하기 위해서 도시되지 않았다. 포함된 설명을 읽은 이 기술분야의 통상의 지식을 가진 자는 과도한 실험 없이도 적절한 기능을 구현할 수 있을 것이다.
"일 실시예", "실시예", 예시적인 실시예" 등에 대한 명세서 내의 언급들은, 설명된 실시예가 특정한 특징, 구조 또는 특성을 포함할 수 있지만, 모든 실시예가 반드시 그 특정한 특징, 구조 또는 특성을 포함하는 것은 아님을 나타낸다. 또한, 이러한 구(phrase)들이 반드시 동일한 실시예를 가리키는 것은 아니다. 또한, 특정한 특징, 구조 또는 특성이 일 실시예와 관련하여 설명된 경우, 명시적으로 설명되어 있든지 간에 다른 실시예들과 관련하여 이러한 특징, 구조 또는 특성을 달성하는 것은 이 기술분야의 당업자의 지식 내에 있다.
컴퓨팅 장치(100)의 예시적인 실시예가 도 1에 도시되어 있다. 컴퓨팅 장치(100)는 프로세서 버스(106)를 통해 칩셋(104)에 연결되는 하나 또는 그 이상의 프로세서(102)를 포함할 수 있다. 칩셋(104)은 프로세서들(102)을 시스템 메모리(108), 펌웨어(110) 및/또는 다른 장치들(112)(예를 들면, 마우스, 키보드, 디스크 드라이브, 스캐너, 카메라 등)에 연결하는 하나 또는 그 이상의 집적화된 회로 패키지 또는 칩을 포함할 수 있다. 펌웨어(110)는 BIOS(Basic Input/Output System) 루틴을 포함할 수 있고, 프로세서(102)는 시스템 시동(start-up) 동안 컴퓨팅 장치(100)의 구성요소를 초기화하고, 운영체제의 실행을 시작하도록 실행할 수 있다.
일 실시예에 있어서, 칩셋(104)은 메모리 제어기(114)를 포함할 수 있다. 그러나, 다른 실시예들에 있어서, 프로세서들(102)은 메모리 제어기(114)의 전체 또는 일부를 포함할 수 있다. 메모리 제어기(114)는 시스템 메모리(108)에 액세스하기 위해 통합 디스플레이 제어기(116) 및 컴퓨팅 장치(100)의 다른 구성요소들에 대해 인터페이스를 제공한다. 칩셋(104)은 또한 PCI(Peripheral Component Interconnect) 버스, PCI-Express 버스, AGP(Accelerated Graphics Port) 버스, USB(Universal Serial Bus), LPC(low pin count) 버스 또는 임의의 다른 종류의 I/O 버스(도시되지 않음)와 같은 I/O 버스 상에서의 I/O 동작을 지원할 수 있다.
칩셋(104)은 예를 들어, 컴퓨터 모니터, 평면 패널 또는 텔레비전과 같은 디스플레이 장치(118) 상에 디지털 화상을 디스플레이하기 위한 통합 디스플레이 제어기(116)를 더 포함할 수 있다. 통합 디스플레이 제어기(116)는 컴퓨팅 장치(100)로부터 커맨드 및/또는 데이터를 수신 또는 획득하기 위한 컴퓨터 인터페이스(120)를 포함할 수 있다. 컴퓨터 인터페이스(120)는 시스템 메모리(108)로부터 그래픽 커맨드를 검색하기 위해 메모리 제어기(114)와 상호작용할 수 있다. 또한, 컴퓨터 인터페이스(120)는, 컴퓨터 인터페이스(120)가 프로세서(102)로부터 데이터 및/또는 커맨드를 수신할 수 있는 하나 또는 그 이상의 비디오 포트(예를 들면, AGP 포트, PCI 포트 또는 PCI-Express 포트 등)를 제공할 수 있다. 통합 디스플레이 제어기(116)는 비디오 메모리(124)로부터 화소(pel), 존(zone), 프레임(frame), 타일(tile) 등을 획득하기 위해 메모리 인터페이스(122)를 더 포함할 수 있다. 도시된 바와 같이, 시스템 메모리(108)와 비디오 메모리(124)는 동일한 물리적 메모 리 장치들을 공유하거나, 또는 동일한 물리적 메모리 장치들에 의해 구현될 수 있다. 이러한 실시예에 있어서, 이 메모리 장치들의 일부분들은 시스템 메모리(108) 또는 비디오 메모리(124)에 정적 또는 동적으로 할당된다. 따라서, 통합 디스플레이 제어기(116)의 메모리 인터페이스(122)는 비디오 메모리(124)에 화소, 존, 프레임, 타일 등을 판독 또는 기록하기 위해 칩셋(104)의 메모리 제어기(114)와 상호작용할 수 있다.
통합 디스플레이 제어기(116)의 렌더 엔진(126)은 디스플레이용 디지털 화상을 발생시키기 위해 그래픽 커맨드를 실행할 수 있다. 도 2에 도시된 바와 같이, 디지털 화상은 하나 또는 그 이상의 직사각형 비-중복(non-overlapping) 존들을 포함할 수 있다. 또한, 각각의 존은 하나 이상의 화소(picture element) 라인들 또는 화소들을 포함할 수 있고, 각각의 화소는 디지털 화상의 특정 지점에서 디지털 화상의 시각적 외관(visual appearance)(예를 들면, 컬러, 명암, 색조(tint), 투명성(transparency) 등)을 정의할 수 있다. 예를 들어, 화소들은 특정 비디오 포맷(예를 들면, RGB 포맷, YUV 포맷, RGBA 포맷 또는 소정의 다른 포맷 등)에 따라 외관을 정의하는 하나 또는 그 이상의 채널을 포함할 수 있다. RGB 포맷에서, 각각의 화소는 적색(R) 채널, 녹색(G) 채널 및 청색(B) 채널을 포함한다. 유사하게, RGBA 포맷에서, 각각의 화소는 적색(R) 채널, 녹색(G) 채널, 청색(B) 채널, 및 투명성의 정도를 나타내기 위한 알파(A) 채널을 포함한다. 예를 들어, 통합 디스플레이 제어기(116)는 각각의 화소에 8-비트 적색 채널, 8-비트 녹색 채널 및 8-비트 청색 채널을 할당하는 것에 의해 24-비트 컬러를 구현할 수 있다. YUV 포맷에서, 각각의 화소는 루마(luma)(Y) 채널, 제1 크로미넌스(chrominance)(U) 채널 및 제2 크로미넌스(V) 채널을 포함할 수 있다. 유사하게, 통합 디스플레이 제어기(116)는 각각의 화소에 YUV 채널들 각각에 대한 8-비트 값을 할당하는 것에 의해 24-비트 컬러를 구현할 수 있다. 그러나, 통합 디스플레이 제어기(116)는 루마(Y) 채널을 보다 정확하게 나타내도록 선택할 수 있다. 따라서, 통합 디스플레이 제어기(116)는 각각의 화소에 12-비트 루마(Y) 채널, 6-비트 제1 크로미넌스(U) 채널 및 6-비트 제2 크로미넌스(V) 채널을 할당하는 것에 의해 24-비트 YUV 컬러를 구현할 수 있다. YUV 포맷으로 인코딩된 디지털 화상은 또한 4:1:1 포맷과 같은 공간적으로 감소된 크로미넌스 포맷을 이용할 수 있다. 이 4:1:1 포맷에서는, 매크로-화소(macro-pel)가, 매크로-화소의 일부분들의 시각적 외관을 정의하는 4개의 루마(Y) 채널, 1개의 제1 크로미넌스(U) 채널 및 1개의 제2 크로미넌스(V) 채널을 포함할 수 있다.
렌더 엔진(126)은 명령어/데이터 유닛(128)에 의해 시스템 메모리(108)로부터 검색된 그래픽 커맨드를 실행할 수 있고, 통합 디스플레이 제어기(116)의 존 캐시(zone cache)(130)에 저장된 하나 또는 그 이상의 존을 갱신할 수 있다. 디지털 화상의 하나 또는 그 이상의 존을 렌더링한 후, 렌더 엔진(126)은 렌더링된 존들이 캐시(130)로부터 퇴거되고 프레임 버퍼(132)에 기록되도록 할 수 있다. 프레임 버퍼 압축장치/압축해제장치(코덱)(134)는 퇴거된 존들을 압축할 수 있고, 프레임 버퍼(132)에 저장하기 위해 그 압축된 존들을 메모리 인터페이스(122)에 제공할 수 있다. 디스플레이 엔진(136)은 적절한 시간에 디지털 화상을 디스플레이하기 위해 프레임 버퍼(132)로부터 렌더링된 디지털 화상을 나중에 검색할 수 있다. 특히, 디스플레이 엔진(136)은 프레임 버퍼(132)로부터 압축된 존들을 검색할 수 있고, 코덱(134)은 그 검색된 존들을 압축해제할 수 있다. 디스플레이 엔진(136)은 디지털 화상의 압축해제된 존들을, 예를 들어, 오버레이(overlay), 하드웨어 커서(hardware cursor) 등과 같은 다른 비디오 소스(source)와 혼합할 수 있고, 복합(composited) 비디오 신호를 디스플레이 인터페이스(138)에 제공할 수 있다. 디스플레이 인터페이스(138)는 디스플레이 엔진(136)으로부터 검색된 디지털 비디오 신호를, 디스플레이 장치(118)에 적절한 아날로그 또는 디지털 신호로 변환할 수 있다.
이제, 도 3을 참조하면, 컴퓨팅 장치(100)의 또다른 실시예가 예시되어 있다. 도 3에 도시된 바와 같이, 컴퓨팅 장치(100)는 칩셋(104)과 분리된 비-통합 디스플레이 제어기(140)를 포함할 수 있다. 통합 디스플레이 제어기(116)와 마찬가지로, 비-통합 디스플레이 제어기(140)는 컴퓨터 인터페이스(120), 메모리 인터페이스(122), 렌더 엔진(126), 명령어/데이터 유닛(128), 존 캐시(130), 코덱(134), 디스플레이 엔진(136) 및 디스플레이 인터페이스(138)를 포함할 수 있다. 또한, 비-통합 디스플레이 제어기(140)는 내장형 비디오 메모리(124)를 포함할 수 있다. 비-통합 디스플레이 제어기(140)는 도 1의 통합 디스플레이 제어기(116)와 유사한 방식으로 동작할 수 있다. 그러나, 비-통합 디스플레이 제어기(140)의 컴퓨터 인터페이스(120)는 AGP 포트, PCI 포트, PCI-Express 포트 또는 소정의 다른 장치 인터페이스를 포함하여, AGP 포트, PCI 포트, PCI-Express 포트 또는 소정의 다 른 장치 인터페이스를 또한 포함할 수 있는 칩셋(104)의 대응하는 그래픽 인터페이스(142)와 커맨드 및/또는 데이터를 전송한다. 또한, 비-통합 디스플레이 제어기(140)의 메모리 인터페이스(122)가 비디오 메모리(124)에 직접 액세스하여, 비-통합 디스플레이 제어기(140)가 메모리 제어기(114) 및 시스템 메모리(108)의 상당량의 대역폭을 소비함이 없이 화소, 존, 타일, 프레임 등을 비디오 메모리(124)에 대해 전송할 수 있게 한다.
이제, 도 4를 참조하면, 프레임 버퍼(132)로 전송되기 전에 존 라인, 존, 프레임 라인, 프레임 필드, 프레임 또는 소정의 다른 디지털 화상 유닛의 화소들을 압축하기 위해 코덱(134)에 의해 이용될 수 있는 방법이 도시되어 있다. 일반적으로, 이 방법은 디지털 화상 유닛에 대하여 하나 또는 그 이상의 심볼들을 발생시키고, 여기서, 각각의 심볼은 하나 또는 그 이상의 화소들의 런(run)을 나타낸다. 블록(200)에서, 코덱(134)은 하나 또는 그 이상의 채널을 포함하는 현재의 화소를 획득할 수 있고, 런 길이를 초기값(예를 들면, 0)으로 설정할 수 있다. 블록(202)에서, 코덱(134)은 현재의 화소를 양자화하여, 하나 또는 그 이상의 양자화된 채널들을 포함하는 양자화된 현재의 화소를 획득할 수 있다. 각각의 양자화된 채널은 각각의 채널의 하나 또는 그 이상의 최상위 비트(MSBs)를 포함할 수 있고, 각각의 채널로부터 하나 또는 그 이상의 최하위 비트(LSBs)를 폐기할 수 있다. 예를 들어, 코덱(134)은 24-비트 RGB 화소(예를 들면, 10010101-11111001-01110001)를 18-비트 양자화 레벨로 양자화하여, 각각의 채널의 6개의 MSB를 보유하고, 각각의 채널의 2개의 LSB를 폐기하는 3개의 6-비트 양자화 채널을 포함하는 양자화된 현재의 화소(예를 들면, 100101-111110-011100)를 획득할 수 있다. 코덱(134)은 양자화된 현재의 화소를 획득하기 위해 다양한 서로 다른 기술들을 이용할 수 있다. 일 실시예에 있어서, 코덱(134)은 마스크(mask)로 채널들의 비트-방식의(bit-wise) AND를 수행함으로써, 및/또는 현재의 화소의 채널들에 대해 적절한 비트 시프트(bit shift) 연산을 수행함으로써 양자화된 현재의 화소를 획득할 수 있다. 또한, 코덱(134)은 화소의 각각의 채널을 다른 레벨로 양자화할 수 있다. 예를 들어, 24-비트 YUV 화소에 대한 코덱(134)은 Y 채널의 7개의 MSB, U 채널의 6개의 MSB 및 V 채널의 5개의 MSB를 보유할 수 있다.
블록(204)에서, 코덱(134)은 화소들의 새로운 런 및 대응하는 새로운 심볼이 시작하였는지를 결정할 수 있다. 일 실시예에 있어서, 코덱(134)은 런 길이가 초기값(예를 들면, 0)과 소정 관계(예를 들면, 동일한 관계)를 갖는다고 결정한 것에 응답하여 새로운 런이 시작하였다고 결정할 수 있다. 새로운 런이 시작하였다고 결정한 것에 응답하여, 코덱(134)은 블록(210)으로 진행할 수 있다. 그렇지 않은 경우, 블록(208)에서의 코덱(134)은 양자화된 런 화소를 양자화된 현재의 화소와 동일하게 설정할 수 있다.
블록(210)에서, 코덱(134)은 현재의 화소에 대해 무손실(lossless) 압축을 사용할 것인지 또는 손실(lossy) 압축을 사용할 것인지를 결정할 수 있다. 일 실시예에 있어서, 코덱(134)은 칩셋(104) 또는 디스플레이 제어기(116, 140)의 하나 또는 그 이상의 구성 레지스터(도시되지 않음)의 상태에 근거하여 무손실 압축을 사용할 것인지 또는 손실 압축을 사용할 것인지를 결정할 수 있다. 다른 실시예에 있어서, 코덱(134)은 컴퓨팅 장치(100)의 부하에 근거하여 무손실 압축을 사용할 것인지 또는 손실 압축을 사용할 것인지를 결정할 수 있다. 예를 들어, 코덱(134)은 컴퓨팅 장치(100)의 메모리 시스템, 프로세서 및/또는 소정의 다른 서브시스템에서의 부하가 임계 레벨 위로 올라간 것에 응답하여 손실 압축을 사용하거나 또는 심지어 손실 레벨을 증가시키는 것을 결정할 수 있다. 특히, 코덱(134)은 시스템 메모리(108)에 대한 이용가능한 메모리 대역폭이 소정의 레벨 아래로 떨어졌다고 결정한 것에 응답하여 손실 레벨을 증가시키는 것을 결정할 수 있다. 코덱(134)은 이용가능한 메모리 대역폭이 소정의 레벨 위로 올라갔다고 결정한 것에 응답하여 나중에 손실 레벨을 감소시키거나 무손실 압축을 이용할 수 있다.
무손실 압축을 이용하는 것으로 결정한 것에 응답하여, 블록(212)에서의 코덱(134)은 현재의 화소의 각각의 채널에 대한 무손실 채널 에러(lossless channel error)를 포함하는 무손실 에러 벡터(lossless error vector)를 발생시킬 수 있다. 특히, 각각의 무손실 채널 에러는 블록(202)에서 양자화된 채널로부터 폐기되었던 하나 또는 그 이상의 LSB를 포함할 수 있다. 예를 들어, 코덱(134)은 현재의 화소의 각각의 채널에 대한 2-비트 무손실 채널 에러를 포함하는 6-비트 무손실 에러 벡터(예를 들면, [01-01-00])를 발생시킬 수 있다. 특히, 각각의 무손실 채널 에러는 블록(202)의 화소 양자화 동안 대응하는 채널로부터 폐기된 2개의 LSB를 포함할 수 있다. 코덱(134)은 다양한 서로 다른 기술들을 이용하여 무손실 에러 벡터를 획득할 수 있다. 일 실시예에 있어서, 코덱(134)은 블록(202)에서 이용된 마스크의 역(inverse)으로 채널들의 비트-방식의 AND를 수행함으로써 및/또는 현재의 화소의 채널에 대해 적절한 비트 시프트 연산을 수행함으로써 무손실 에러 벡터를 획득할 수 있다.
손실 압축을 이용하는 것으로 결정한 것에 응답하여, 블록(214)에서의 코덱(134)은 현재의 화소의 각각의 채널에 대한 손실 채널 에러(lossy channel error)를 포함하는 손실 에러 벡터(lossy error vector)를 발생시킬 수 있다. 특히, 각각의 손실 채널 에러는 현재의 화소의 양자화에서 폐기된 비트들의 부분집합(subset)을 포함할 수 있다. 상기에 나타낸 바와 같이, 압축의 손실은 컴퓨팅 장치(100)에 의해 경험적으로 알게된 부하에 근거하여 조정될 수 있다. 예를 들어, 손실은 손실 에러 벡터를 정의하는데 이용되는 폐기된 비트들의 부분집합에서 비트들의 수를 감소시킴으로써 증가될 수 있다. 유사하게, 손실은 손실 에러 벡터를 정의하는데 이용되는 폐기된 비트들의 부분집합에서 비트들의 수를 증가시킴으로써 감소될 수 있다. 예를 들어, 부분집합이 1비트로서 정의되는 것에 응답하여, 코덱(134)은 현재의 화소의 각각의 채널에 대한 1-비트 손실있는 채널 에러를 포함하는 3-비트 손실 에러 벡터(예를 들면, 0-0-0)를 발생시킬 수 있다. 특히, 각각의 손실 채널 에러는 블록(202)에서 현재의 24-비트 RGB 화소의 각각의 채널로부터 폐기된 2개의 LSB의 MSB를 포함할 수 있다. 또한, 코덱(134)은 다양한 서로 다른 기술들을 이용하여 손실 에러 벡터를 획득할 수 있다. 일 실시예에 있어서, 코덱(134)은 블록(202)에서 이용된 마스크의 역으로 채널들의 비트-방식의 AND를 수행함으로써 및/또는 현재의 화소의 채널에 대해 적절한 비트 시프트 연산을 수행함으로써 손실 에러 벡터를 획득할 수 있다. 또한, 일 실시예에 있어서, 손실 에러 벡터가 어떠한 비트도 포함하지 않으면, 이에 따라 압축의 손실이 더 증가될 수 있다.
블록(215)에서, 코덱(134)은 양자화된 현재의 화소가 양자화된 런 화소와 소정 관계(예를 들면, 동일한 관계)를 갖는지를 결정할 수 있다. 양자화된 화소들이 소정 관계를 갖는다면, 코덱(134)은 블록(217)으로 진행할 수 있다. 그렇지 않으면, 블록(216)에서의 코덱(134)은 하나 또는 그 이상의 화소를 나타내는 출력 버퍼에 심볼을 출력할 수 있고, 화소들의 새로운 런을 나타내도록 런 길이를 갱신할 수 있고, 후속 심볼을 위해 에러 벡터 버퍼를 소거(clear)할 수 있고, 양자화된 런 화소를 양자화된 현재의 화소와 동일하게 설정할 수 있다. 일 실시예에 있어서, 코덱(134)에 의해 발생된 심볼은 런 길이(예를 들면, 0011), 양자화된 현재의 화소(예를 들면, 100101-111110-011100), 및 에러 벡터 버퍼에 저장되었던 런의 화소들에 대한 에러 벡터들(예를 들면, [01-01-00][00-11-01][11-11-10])을 포함할 수 있다. 다른 실시예에 있어서, 심볼은 런이 무손실 압축 또는 손실 압축의 레벨을 이용함을 나타내기 위하여 압축 모드(예를 들면, 1비트값)를 더 포함할 수 있다. 심볼은 전형적으로 하나 또는 그 이상의 비트들의 원래 화소 표시보다 적은 비트를 포함한다. 그러나, 일 실시예에 있어서, 심볼은 실제로 원래 표시보다 많은 비트를 포함한다. 예를 들어, 일 실시예에 있어서, 단일 24-비트 RGB 화소를 표시하거나 인코딩하는 심볼은, 전체 28-비트에 대하여 4-비트 런 길이, 18-비트 양자화된 화소, 및 6-비트 무손실 에러 벡터를 포함할 수 있다. 그러나, 2개의 24-비트 RGB 화소들을 표시하거나 인코딩하는 심볼은, 전체 34-비트에 대하여 4-비트 런 길이, 18-비트 양자화된 화소, 및 12-비트 무손실 에러 벡터를 포함할 수 있다.
블록(217)에서의 코덱(134)은 에러 벡터 버퍼에 획득된 무손실 또는 손실 에러 벡터를 저장할 수 있다. 블록(218)에서, 코덱(134)은 다른 화소가 심볼에 추가되었음을 나타내기 위해 현재의 화소와 연관된 런 길이 및 현재의 런을 갱신할 수 있다. 일 실시예에 있어서, 코덱(134)은 런 길이를 1만큼 증분함으로써 런 길이를 갱신할 수 있다. 블록(220)에서의 코덱(134)은 현재의 런을 종료할 것인지를 결정할 수 있다. 일 실시예에 있어서, 코덱(134)은 현재의 화소가 존 라인, 존, 프레임 라인, 프레임 필드, 프레임 또는 인코딩되는 디지털 화상 유닛의 소정의 부분의 마지막 화소라고 결정한 것에 응답하여 현재의 런을 종료할 수 있다. 다른 실시예에 있어서, 코덱(134)은 또한 코덱(134)의 제한사항에 근거하여 현재의 런을 종료하는 것으로 결정할 수 있다. 예를 들어, 코덱(134)은 심볼에 의해 표시된 화소들의 런을, 런 길이 및/또는 에러 벡터를 저장하는데 이용되는 코덱(134)의 레지스터, 버퍼 등을 오버플로우(overflow)하지 않을 개수로 제한할 수 있다.
블록(220)에서 현재의 런을 종료하는 것으로 결정한 것에 응답하여, 블록(222)에서의 코덱(134)은 하나 또는 그 이상의 화소를 표시하는 심볼을 출력 버퍼에 출력할 수 있고, 새로운 런을 나타내기 위해 런 길이를 갱신할 수 있고, 후속 심볼을 위해 에러 벡터 버퍼를 소거할 수 있다. 블록(222)에서 심볼을 출력하거나 블록(220)에서 런을 종료하지 않는다고 결정한 후에, 블록(223)에서의 코덱(134)은 디지털 화상 유닛의 모든 화소들이 인코딩되었는지를 결정할 수 있다. 모든 화소들이 인코딩되었다면, 디지털 화상 유닛의 인코딩이 완료되고, 코덱(134)은 나갈 수 있다. 그렇지 않으면, 블록(224)에서의 코덱(134)은 현재의 화소를, 디지털 화 상 유닛의 후속 화소와 동일하게 설정할 수 있다. 그 다음, 코덱(134)은 현재의 화소를 양자화하고 인코딩하기 위해 블록(202)으로 돌아갈 수 있다.
이제, 도 5를 참조하면, 프레임 버퍼(132)로부터 획득된 다수의 심볼로부터 존 라인, 존, 프레임 라인, 프레임 필드, 프레임 또는 소정의 다른 디지털 화상 유닛을 재구성하기 위해 코덱(134)에 의해 이용될 수 있는 방법이 도시되어 있다. 일반적으로, 이 방법은 디지털 화상의 화소들을 표시하는 하나 또는 그 이상의 심볼로부터 디지털 화상을 재구성하는데 이용될 수 있다. 블록(300)에서의 코덱(134)은 프레임 버퍼(132)로부터 검색되었던 압축된 디지털 화상의 심볼을 획득할 수 있다. 블록(302)에서, 코덱(134)은 심볼로부터 런 길이를 획득할 수 있다. 블록(304)에서의 코덱(134)은 심볼로부터 양자화된 화소(예를 들면, [100101-111110-011100])를 획득할 수 있다. 블록(306)에서, 코덱(134)은 심볼의 압축해제가 완료되었는지를 런 길이에 근거하여 결정할 수 있다. 일 실시예에 있어서, 코덱(134)은 정지값(stop value)(예를 들면, 0)과 소정 관계(예를 들면, 보다 큰 관계)를 갖는 런 길이에 응답하여 압축해제가 완료되지 않았다고 결정할 수 있다.
압축해제가 완료되었다고 결정한 것에 응답하여, 블록(307)에서의 코덱(134)은 디지털 화상 유닛의 모든 심볼들이 디코딩되었는지를 결정할 수 있다. 디지털 화상 유닛의 모든 심볼들이 디코딩되었다면, 디지털 화상 유닛의 디코딩이 완료되고, 코덱(134)이 나갈 수 있다. 그렇지 않으면, 코덱(134)은 디지털 화상 유닛의 후속 심볼을 획득하기 위해 블록(300)으로 돌아갈 수 있다.
압축해제가 완료되지 않았다고 결정한 것에 응답하여, 블록(308)에서의 코덱 (134)은 손실 압축해제를 수행할 것인지 또는 무손실 압축해제를 수행할 것인지를 결정할 수 있다. 일 실시예에 있어서, 코덱(134)은 칩셋(104), 통합 디스플레이 제어기(116) 및/또는 비-통합 디스플에이 제어기(140)의 하나 또는 그 이상의 레지스터들에 근거하여 무손실 압축해제를 수행할 것인지 또는 손실 압축해제를 수행할 것인지를 결정할 수 있다. 다른 실시예에 있어서, 코덱(134)은 심볼로부터 획득된 압축 모드에 근거하여 무손실 압축해제를 수행할 것인지 또는 소정 레벨의 손실 압축해제를 수행할 것인지를 결정할 수 있다. 무손실 압축해제가 이용될 것이라고 결정한 것에 응답하여, 블록(310)에서의 코덱(134)은 심볼로부터 후속 무손실 에러 벡터(예를 들면, [01-01-00])를 획득할 수 있다.
손실 압축해제가 이용될 것이라고 결정한 것에 응답하여, 블록(312)에서의 코덱(134)은 심볼로부터 후속 손실 에러 벡터(예를 들면, [0-0-0])를 획득할 수 있다. 블록(314)에서의 코덱(134)은 손실 에러 벡터의 폐기된 비트들을 대체하여 재구성된 에러 벡터를 획득할 수 있다. 일 실시예에 있어서, 코덱(134)은 손실 에러 벡터(예를 들면, [0-0-0])의 각각의 손실 채널 에러에 소정값(예를 들면, 0)을 추가하여, 재구성된 에러 벡터(예를 들면, [00-00-00])를 획득할 수 있다. 다른 실시예에 있어서, 코덱(134)은 손실 에러 벡터(예를 들면, [0-0-0])의 각각의 채널 에러에 현재의 디더값(dither value)(예를 들면, 10)을 추가하여, 재구성된 에러 벡터(예를 들면, [010-010-010])를 획득할 수 있다. 다른 실시예에 있어서, 코덱(134)은 손실 에러 벡터의 폐기된 비트들을 디더값으로 대체하여, 재구성된 에러 벡터를 획득할 수 있다. 예를 들어, 코덱(134)은 0의 디더값을 1의 디더값으로, 그리고 1의 디더값을 0의 디더값으로 갱신할 수 있고, 갱신된 디더값을 이용하여 폐기된 비트들을 대체할 수 있다. 단일 비트보다 많은 비트를 폐기하는 실시예에 있어, 코덱(134)은 2개의 중앙값 간에 토글링(toggling)하는 것에 의해 디더값을 갱신할 수 있다. 특히, 코덱(134)은 01과 10 간에 토글링함으로써 2개의 비트를 디더링(dithering)할 수 있고, 011과 100 간에 토글링함으로써 3개의 비트를 디더링할 수 있고, 0111과 1000 간에 토글링함으로써 4개의 비트를 디더링할 수 있다.
블록(316)에서, 코덱(134)은 획득된 양자화 화소 및 획득된 에러 벡터(예를 들면, 무손실 벡터 또는 재구성된 에러 벡터)로부터 화소를 발생시킬 수 있고, 재구성된 화소를 출력 버퍼에 저장할 수 있다. 일 실시예에 있어서, 코덱(134)은 양자화된 화소의 양자화된 채널 각각에 에러 벡터의 채널 에러 각각을 추가할 수 있다. 코덱(134)은 많은 서로 다른 기술을 이용하여 양자화된 채널에 채널 에러를 추가할 수 있다. 특히, 코덱(134)은 양자화된 채널을 적절하게 시프트할 수 있고, 그 시프트된 양자화 채널과 채널 에러의 비트-방식의 OR를 수행할 수 있다.
코덱(134)은 심볼의 화소가 재구성되었음을 나타내기 위하여 블록(318)에서 런 길이를 갱신할 수 있다. 일 실시예에 있어서, 코덱(134)은 런 길이를 1만큼 감분함으로써 런 길이를 갱신할 수 있다. 그 다음, 코덱(134)은 심볼의 압축해제가 완료되었는지를 결정하기 위해 블록(306)으로 돌아갈 수 있다. 완료되었다면, 코덱(134)은 프레임 버퍼(132)로부터 검색되었던 압축된 디지털 화상의 후속 심볼을 획득하기 위해 블록(300)으로 돌아갈 수 있다.
컴퓨팅 장치(100)는 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 장치, 및/또는 예를 들어, 반송파, 적외선 신호, 디지털 신호, 아날로그 신호와 같은 전기적, 광학적, 음향적 또는 다른 형태의 전파되는 신호들과 같은 기계 판독가능 매체의 명령어들을 실행하는 것에 응답하여 도 4 및 도 5의 예시적인 방법들의 모두 또는 부분집합(subset)을 수행할 수 있다. 또한, 도 4 및 도 5의 예시적인 방법들이 일련의 동작들로서 예시되어 있지만, 일부 실시예들에서의 컴퓨팅 장치(100)는 이 방법들의 다양한 예시된 동작들을 병렬로 또는 다른 순서로 수행할 수 있다.
무손실 압축/압축해제의 예 및 손실 압축/압축해제의 예가 다음의 표 1 내지 표 7에 도시된다. 특히, 표 1은 4개의 24-비트 RGB 화소를 갖는 존 라인을 나타내고, 표 2는 채널당 6-비트를 이용하는 18-비트 양자화 레벨로 양자화된 후의 4개의 24-비트 RGB 화소를 나타낸다. 볼 수 있는 바와 같이, 코덱은 각각의 채널의 2개의 LSB를 간단하게 드롭(drop)시킴으로써 18-비트 양자화된 화소를 발생시킬 수 있다.
위치 R 채널 G 채널 B 채널
0 10010101 11111001 01110000
1 10010100 11111011 01110001
2 10010111 11111011 01110010
3 10000000 11111011 01110001
표 1: 4개의 24-비트 RGB 화소들의 존 라인
위치 R 채널 G 채널 B 채널
0 100101 111110 011100
1 100101 111110 011100
2 100101 111110 011100
3 100000 111110 011100
표 2: 존 라인의 18-비트 양자화된 화소들
또한, 표 3은 표 2의 18-비트 양자화된 화소들에 대한 무손실 에러 벡터들을 도시한다. 표 3으로부터 알 수 있는 바와 같이, 코덱은 화소 양자화 동안 각각의 채널로부터 드롭된 2개의 LSB를 간단하게 보유함으로써 6-비트 무손실 에러 벡터를 발생시킬 수 있다. 이제, 표 4를 참조하면, 표 2의 18-비트 양자화된 화소들에 대한 손실 에러 벡터가 도시된다. 코덱은 화소 양자화 동안 각각의 채널로부터 드롭된 MSB를 간단하게 보유함으로써 3-비트 손실 에러 벡터를 발생시킬 수 있다.
위치 R 채널 에러 G 채널 에러 B 채널 에러
0 01 01 00
1 00 11 01
2 11 11 10
3 00 11 01
표 3: 18-비트 양자화된 화소들에 대한 무손실 에러 벡터들
위치 R 채널 에러 G 채널 에러 B 채널 에러
0 0 0 0
1 0 1 0
2 1 1 1
3 0 1 0
표 4: 18-비트 양자화된 화소들에 대한 손실 에러 벡터들
이제, 표 5를 참조하면, 표 1의 4개의 24-비트 RGB 화소들의 무손실 인코딩이 예시되어 있다. 도시된 바와 같이, 무손실 인코딩은 표 1의 화소들 0, 1 및 2를 인코딩하는 심볼 0과 표 1의 화소 3을 인코딩하는 심볼 1을 포함한다. 심볼 0은 심볼이 3개의 화소를 표시함을 나타내는 4-비트 런 길이를 포함한다. 또한, 심볼 0은 표 2의 18-비트 양자화된 화소들 0, 1 및 2와 동일한 18-비트 양자화된 화소를 포함한다. 또한, 심볼 0은 표 3에 도시된 바와 같이 화소들 0, 1 및 2에 대해 3개의 6-비트 무손실 에러 벡터를 포함한다. 유사하게, 심볼 1은 심볼 1이 단일 화소를 표시함을 나타내는 런 길이, 화소 3에 대한 18-비트 양자화된 화소 및 화소 3에 대한 무손실 에러 벡터를 포함한다. 표 5는 2개의 심볼이 96비트의 화소 데이터를 표시함으로써, 단지 68 비트만으로, 화소들 0, 1, 2 및 3의 압축된 표시를 제공함을 나타낸다. 코덱은 각각의 심볼의 양자화된 화소에 각각의 심볼의 무손실 에러 벡터들을 나중에 추가하여, 심볼들을 압축해제하고 표 1의 4개의 화소들을 획득할 수 있다.
심볼 런 길이 양자화된 화소 무손실 에러 벡터 인코딩되지 않은 비트 인코딩된 비트
0 0011 100101-111110-011100 [01-01-00][00-11-01][11-11-10] 72 40
1 0001 100000-111110-011100 [00-11-01] 24 28
표 5: 존 라인에 대한 무손실 심볼들
이제, 표 6을 참조하면, 표 1의 4개의 24-비트 RGB 화소들의 손실 인코딩이 예시되어 있다. 도시된 바와 같이, 손실 인코딩은 표 1의 화소들 0, 1 및 2를 인코딩하는 심볼 0과 표 1의 화소 3을 인코딩하는 심볼 1을 포함한다. 심볼 0은 심볼 0이 3개의 화소를 표시함을 나타내는 동일한 4-비트 런 길이를 포함한다. 또한, 심볼 0은 표 2의 18-비트 양자화된 화소들 0, 1 및 2와 동일한 18-비트 양자화된 화소를 포함한다. 또한, 심볼 0은 화소들 0, 1 및 2 각각에 대하여 표 4의 3-비트 손실 에러 벡터를 포함한다. 유사하게, 심볼 1은 심볼 1이 단일 화소를 표시함을 나타내는 런 길이, 화소 3에 대한 표 2의 18-비트 양자화된 화소 및 화소 3에 대한 표 4의 손실 에러 벡터를 포함한다. 표 6은 또한 2개의 심볼이 96비트의 화소 데이터를 표시함으로써, 단지 56 비트만으로, 화소들 0, 1, 2 및 3의 압축된 표시를 제공함을 나타낸다.
심볼 런 길이 양자화된 화소 손실 에러 벡터 인코딩되지 않은 비트 인코딩된 비트
0 0011 100101-111110-011100 [0-0-0][0-1-0][1-1-1] 72 31
1 0001 100000-111110-011100 [0-1-0] 24 25
표 6: 존 라인에 대한 손실 심볼들
코덱은 표 6의 손실 에러 벡터에 비트를 나중에 추가하여, 재구성된 에러 벡터를 획득할 수 있고, 그 재구성된 에러 벡터를 표 6의 각각의 심볼의 양자화된 화소에 더 추가하여 심볼들을 압축해제하고 4개의 24-비트 화소를 획득할 수 있다. 표 7은 표 6의 손실 심볼로부터 획득될 수 있는 4개의 24-비트 화소들의 하나의 가능한 세트를 나타낸다. 특히, 표 6의 4개의 화소들은 화소 0의 각각의 채널의 마지막 비트 위치를 0으로 설정하고 그 채널들의 마지막 비트 위치를 각각의 화소에 대하여 토글링함으로써 획득되었다. 표 7의 재구성된 화소들과 표 1의 원래 화소들을 비교한 것으로부터 알 수 있는 바와 같이, 각각의 채널의 LSB는 어떤 때는 정확하고, 어떤 때는 부정확하지만, 일반적으로 재구성된 채널들은 원래 채널들과 동일하지 않더라도 매우 근접하다. 대부분의 경우에, 사용자는 원래 디지털 화상과 손실 심볼로부터 재구성된 디지털 화상 간의 차이를 알아보지 못할 것이다.
위치 R 채널 G 채널 B 채널
0 10010100 11111000 01110000
1 10010101 11111011 01110001
2 10010110 11111010 01110010
3 10000001 11111011 01110001
표 7: 손실 심볼로부터 재구성된 존 라인(w/디더링)
본 발명의 소정 특징들이 예시적인 실시예들을 참조하여 설명되었지만, 그 설명은 한정적인 의미로 해석되도록 의도되지 않는다. 이 기술분야에서 통상의 지식을 가진 자에게 명백한 이들 예시적인 실시예들의 다양한 수정들 뿐만 아니라 본 발명의 다른 실시예들은 본 발명의 기술적 사상 및 범위 내에 있는 것으로 간주된다.

Claims (32)

  1. 제1 화소 및 제2 화소를 양자화하여 양자화된 제1 화소 및 양자화된 제2 화소를 획득하는 단계;
    상기 양자화된 제1 화소 및 상기 양자화된 제2 화소에 응답하여 상기 제1 화소와 연관된 런 길이(run length)를 비교하고 상기 화소들 사이의 관계를 결정하는 단계; 및
    상기 관계에 따라 상기 양자화된 제1 화소 및 상기 양자화된 제2 화소에 응답하여 상기 제1 화소와 연관된 상기 런 길이를 증분시키는 단계
    를 포함하는 디지털 화상 유닛 압축 방법.
  2. 제1항에 있어서,
    상기 제1 화소 및 상기 제2 화소를 표시하기 위해 상기 양자화된 제1 화소 및 상기 런 길이를 포함하는 심볼을 발생시키는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    양자화는,
    상기 제1 화소의 하나 또는 그 이상의 최하위 비트를 폐기하는 단계; 및
    상기 제2 화소의 하나 또는 그 이상의 최하위 비트를 폐기하는 단계를 포함하는 방법.
  4. 제3항에 있어서,
    상기 제1 화소로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트를 포함 하는 제1 에러 벡터를 발생시키는 단계;
    상기 제2 화소로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트를 포함하는 제2 에러 벡터를 발생시키는 단계; 및
    상기 제1 화소 및 상기 제2 화소를 표시하기 위해 상기 양자화된 제1 화소, 상기 런 길이, 상기 제1 에러 벡터 및 상기 제2 에러 벡터를 포함하는 심볼을 발생시키는 단계를 더 포함하는 방법.
  5. 제3항에 있어서,
    상기 제1 화소로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트의 부분집합을 포함하는 제1 에러 벡터를 발생시키는 단계;
    상기 제2 화소로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트의 부분집합을 포함하는 제2 에러 벡터를 발생시키는 단계; 및
    상기 제1 화소 및 상기 제2 화소를 표시하기 위해 상기 양자화된 제1 화소, 상기 런 길이, 상기 제1 에러 벡터 및 상기 제2 에러 벡터를 포함하는 심볼을 발생시키는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 제1 화소는 다수의 제1 채널을 포함하고, 상기 제2 화소는 다수의 제2 채널을 포함하고,
    상기 양자화는,
    상기 다수의 제1 채널로부터 하나 또는 그 이상의 최하위 비트를 폐기하는 단계; 및
    상기 다수의 제2 채널로부터 하나 또는 그 이상의 최하위 비트를 폐기하는 단계를 포함하는 방법.
  7. 제6항에 있어서,
    상기 다수의 제1 채널로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트를 포함하는 제1 에러 벡터를 발생시키는 단계;
    상기 다수의 제2 채널로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트를 포함하는 제2 에러 벡터를 발생시키는 단계; 및
    상기 제1 화소 및 상기 제2 화소를 표시하기 위해 상기 양자화된 제1 화소, 상기 런 길이, 상기 제1 에러 벡터 및 상기 제2 에러 벡터를 포함하는 심볼을 발생시키는 단계를 더 포함하는 방법.
  8. 제6항에 있어서,
    상기 다수의 제1 채널로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트의 부분집합을 포함하는 제1 에러 벡터를 발생시키는 단계;
    상기 다수의 제2 채널로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트의 부분집합을 포함하는 제2 에러 벡터를 발생시키는 단계; 및
    상기 제1 화소 및 상기 제2 화소를 표시하기 위해 상기 양자화된 제1 화소, 상기 런 길이, 상기 제1 에러 벡터 및 상기 제2 에러 벡터를 포함하는 심볼을 발생시키는 단계를 더 포함하는 방법.
  9. 제5항 또는 제8항에 있어서,
    상기 부분집합에 포함시킬 비트의 개수는 컴퓨팅 장치의 부하에 근거하여 조정되는 방법.
  10. 하나 또는 그 이상의 화소를 표시하는 심볼로부터 런 길이 및 양자화된 화소를 획득하는 단계; 및
    상기 런 길이 및 상기 양자화된 화소에 근거하여 상기 하나 또는 그 이상의 화소를 구성하는 단계
    를 포함하는 디지털 화상 유닛 재구성 방법.
  11. 제10항에 있어서,
    상기 심볼의 상기 하나 또는 그 이상의 화소에 대응하는 하나 또는 그 이상의 에러 벡터를 상기 심볼로부터 획득하는 단계; 및
    상기 하나 또는 그 이상의 에러 벡터에 근거하여 상기 하나 또는 그 이상의 화소를 구성하는 단계를 더 포함하는 방법.
  12. 제10항에 있어서,
    상기 심볼의 상기 하나 또는 그 이상의 화소에 대응하는 하나 또는 그 이상의 손실 에러 벡터를 상기 심볼로부터 획득하는 단계; 및
    상기 하나 또는 그 이상의 손실 에러 벡터 및 상기 하나 또는 그 이상의 화소의 미싱 비트(missing bit)들에 대한 소정값에 근거하여 상기 하나 또는 그 이상의 화소를 구성하는 단계를 더 포함하는 방법.
  13. 제10항에 있어서,
    상기 심볼의 상기 하나 또는 그 이상의 화소에 대응하는 하나 또는 그 이상의 손실 에러 벡터를 상기 심볼로부터 획득하는 단계;
    상기 하나 또는 그 이상의 손실 에러 벡터에 근거하여 상기 하나 또는 그 이상의 화소를 구성하는 단계; 및
    상기 하나 또는 그 이상의 화소의 미싱 비트를 디더링(dithering)하는 단계를 더 포함하는 방법.
  14. 제1 화소 및 제2 화소를 양자화하여 양자화된 제1 화소 및 양자화된 제2 화소를 획득하고, 상기 양자화된 제1 화소 및 상기 양자화된 제2 화소에 응답하여 상기 제1 화소와 연관된 런 길이를 비교하고 상기 화소들 사이의 관계를 결정하며, 상기 관계에 따라 상기 양자화된 제1 화소 및 상기 양자화된 제2 화소에 응답하여 상기 런 길이를 갱신하고, 상기 런 길이 및 상기 양자화된 제1 화소로 상기 제1 화소 및 상기 제2 화소를 표시하는 심볼을 발생시키기 위한 압축장치; 및
    상기 심볼을 프레임 버퍼에 전송하기 위한 메모리 인터페이스
    를 포함하는 디스플레이 제어기.
  15. 제14항에 있어서,
    상기 프레임 버퍼를 포함하는 비디오 메모리를 더 포함하는 디스플레이 제어기.
  16. 제14항에 있어서,
    상기 압축장치는 상기 제1 화소의 다수의 제1 채널로부터 하나 또는 그 이상의 최하위 비트를 폐기하고, 상기 제2 화소의 다수의 제2 채널로부터 하나 또는 그 이상의 최하위 비트를 폐기하는 디스플레이 제어기.
  17. 제16항에 있어서,
    상기 압축장치는 상기 다수의 제1 채널로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트를 포함하는 제1 에러 벡터를 발생시키고, 상기 다수의 제2 채널로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트를 포함하는 제2 에러 벡터를 발생시키고, 상기 제1 에러 벡터 및 상기 제2 에러 벡터로 상기 제1 화소 및 상기 제2 화소를 표시하기 위한 상기 심볼을 발생시키는 디스플레이 제어기.
  18. 제17항에 있어서,
    상기 메모리 인터페이스는 상기 프레임 버퍼로부터 상기 심볼을 더 획득하 고,
    상기 디스플레이 제어기는,
    상기 프레임 버퍼로부터 획득된 상기 심볼로부터 상기 런 길이, 상기 제1 양자화된 화소, 상기 제1 에러 벡터 및 상기 제2 에러 벡터를 획득하고, 상기 심볼로부터 상기 런 길이, 상기 제1 양자화된 화소, 상기 제1 에러 벡터 및 상기 제2 에러 벡터에 근거하여 상기 제1 화소 및 상기 제2 화소를 구성하기 위한 압축해제장치를 더 포함하는 디스플레이 제어기.
  19. 제16항에 있어서,
    상기 압축장치는 상기 다수의 제1 채널로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트의 부분집합을 포함하는 제1 에러 벡터를 발생시키고, 상기 다수의 제2 채널로부터 폐기된 상기 하나 또는 그 이상의 최하위 비트의 부분집합을 포함하는 제2 에러 벡터를 발생시키고, 상기 제1 에러 벡터 및 상기 제2 에러 벡터로 상기 제1 화소 및 상기 제2 화소를 표시하기 위한 상기 심볼을 발생시키는 디스플레이 제어기.
  20. 제19항에 있어서,
    상기 메모리 인터페이스는 상기 프레임 버퍼로부터 상기 심볼을 더 획득하고,
    상기 디스플레이 제어기는,
    상기 프레임 버퍼로부터 획득된 상기 심볼로부터 상기 런 길이, 상기 제1 양자화된 화소, 상기 제1 에러 벡터 및 상기 제2 에러 벡터를 획득하고, 상기 심볼로부터 상기 런 길이, 상기 제1 양자화된 화소, 상기 제1 에러 벡터 및 상기 제2 에러 벡터에 근거하여 상기 제1 화소 및 상기 제2 화소를 구성하기 위한 압축해제장치를 더 포함하는 디스플레이 제어기.
  21. 제20항에 있어서,
    상기 압축해제장치는 상기 제1 화소 및 상기 제2 화소의 미싱 비트들에 대한 소정값을 이용하는 디스플레이 제어기.
  22. 제20항에 있어서,
    상기 압축해제장치는 상기 제1 화소 및 상기 제2 화소의 미싱 비트들을 디더링하는 디스플레이 제어기.
  23. 제19항에 있어서,
    상기 부분집합에 포함시킬 비트의 개수는 컴퓨팅 장치의 부하에 근거하여 조정되는 디스플레이 제어기.
  24. 제19항에 있어서,
    상기 메모리 인터페이스는 상기 프레임 버퍼로부터 상기 심볼을 더 획득하 고,
    상기 디스플레이 제어기는,
    상기 프레임 버퍼로부터 획득된 상기 심볼로부터 상기 런 길이를 획득하고, 상기 심볼로부터 상기 양자화된 제1 화소를 획득하고, 상기 런 길이 및 상기 양자화된 제1 화소에 근거하여 상기 심볼로부터 상기 제1 화소 및 상기 제2 화소를 구성하기 위한 압축해제장치를 더 포함하는 디스플레이 제어기.
  25. 실행에 응답하여 컴퓨팅 장치로 하여금,
    다수의 화소를 양자화하여 다수의 양자화된 화소를 획득하는 단계;
    동일한 일련의 양자화된 화소들의 런들을 식별하는 단계; 및
    상기 식별된 런의 런 길이 및 상기 양자화된 화소들 중 하나를 포함하는 일련의 양자화된 화소들의 각각의 식별된 런에 대한 심볼을 발생시키는 단계
    를 수행하도록 하는 다수의 명령어를 포함하는 기계-판독가능 매체.
  26. 제25항에 있어서,
    상기 다수의 명령어는 실행에 응답하여 상기 컴퓨팅 장치로 하여금,
    각각의 화소로부터 폐기된 하나 또는 그 이상의 비트들을 포함하는 상기 다수의 화소들 각각에 대한 에러 벡터를 발생시키는 단계; 및
    상기 심볼이 상기 런의 각각의 화소와 연관된 상기 에러 벡터들을 포함하도록 각각의 식별된 런에 대하여 상기 심볼을 발생시키는 단계를 수행하도록 하는 기계-판독가능 매체.
  27. 제25항에 있어서,
    상기 다수의 명령어는 실행에 응답하여 상기 컴퓨팅 장치로 하여금,
    각각의 화소로부터 폐기된 하나 또는 그 이상의 비트들의 부분집합을 포함하는 상기 다수의 화소들 각각에 대한 에러 벡터를 발생시키는 단계; 및
    상기 심볼이 상기 런의 각각의 화소와 연관된 상기 에러 벡터들을 포함하도록 각각의 식별된 런에 대하여 상기 심볼을 발생시키는 단계를 수행하도록 하는 기계-판독가능 매체.
  28. 제25항에 있어서,
    상기 다수의 명령어는 실행에 응답하여 상기 컴퓨팅 장치로 하여금,
    상기 컴퓨팅 장치의 부하에 근거하여 상기 부분집합에 포함시킬 비트의 개수를 조정하는 단계를 수행하도록 하는 기계-판독가능 매체.
  29. 프레임 버퍼를 저장하기 위한 시스템 메모리; 및
    상기 프레임 버퍼로부터 심볼을 획득하고 상기 심볼로부터 런 길이 및 양자화된 화소를 획득하고, 상기 런 길이 및 상기 양자화된 화소에 근거하여 하나 또는 그 이상의 화소들을 구성하기 위한 통합 디스플레이 제어기
    를 포함하는 컴퓨팅 장치.
  30. 제29항에 있어서,
    상기 통합 디스플레이 제어기는 상기 심볼의 상기 하나 또는 그 이상의 화소에 대응하는 하나 또는 그 이상의 에러 벡터를 상기 심볼로부터 획득하고, 상기 하나 또는 그 이상의 에러 벡터에 근거하여 상기 하나 또는 그 이상의 화소를 구성하는 컴퓨팅 장치.
  31. 제29항에 있어서,
    상기 통합 디스플레이 제어기는 상기 심볼의 상기 하나 또는 그 이상의 화소에 대응하는 하나 또는 그 이상의 손실 에러 벡터를 상기 심볼로부터 획득하고, 상기 하나 또는 그 이상의 손실 에러 벡터 및 상기 하나 또는 그 이상의 화소의 미싱 비트들에 대한 소정값에 근거하여 상기 하나 또는 그 이상의 화소를 구성하는 컴퓨팅 장치.
  32. 제29항에 있어서,
    상기 통합 디스플레이 제어기는 상기 심볼의 상기 하나 또는 그 이상의 화소들에 대응하는 하나 또는 그 이상의 손실 에러 벡터를 상기 심볼로부터 획득하고, 상기 하나 또는 그 이상의 손실 에러 벡터 및 미싱 비트들의 디더링에 근거하여 상기 하나 또는 그 이상의 화소를 구성하는 컴퓨팅 장치.
KR1020057011792A 2002-12-30 2003-11-13 양자화된 디지털 화상의 런 길이 인코딩을 위한 방법, 장치 및 컴퓨터 판독가능 매체 KR100803402B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/335,377 2002-12-30
US10/335,377 US7532765B2 (en) 2002-12-30 2002-12-30 Run length encoded digital image

Publications (2)

Publication Number Publication Date
KR20050084472A KR20050084472A (ko) 2005-08-26
KR100803402B1 true KR100803402B1 (ko) 2008-02-13

Family

ID=32655336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057011792A KR100803402B1 (ko) 2002-12-30 2003-11-13 양자화된 디지털 화상의 런 길이 인코딩을 위한 방법, 장치 및 컴퓨터 판독가능 매체

Country Status (9)

Country Link
US (1) US7532765B2 (ko)
EP (1) EP1579389B1 (ko)
KR (1) KR100803402B1 (ko)
CN (1) CN1231066C (ko)
AT (1) ATE389219T1 (ko)
AU (1) AU2003287730A1 (ko)
DE (1) DE60319742T2 (ko)
TW (1) TWI240215B (ko)
WO (1) WO2004061773A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4500213B2 (ja) * 2005-05-20 2010-07-14 オリンパスイメージング株式会社 データ符号化装置、データ復号化装置、データ符号化方法、データ復号化方法、プログラム
US8243340B2 (en) 2006-02-23 2012-08-14 Microsoft Corporation Pre-processing of image data for enhanced compression
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
US8369642B2 (en) * 2006-11-21 2013-02-05 Stmicroelectronics (Research & Development) Ltd Artifact removal from phase encoded images
US9391635B2 (en) * 2009-05-15 2016-07-12 Texas Instruments Incorporated Block scanner and run-level encoder from AC to DC values
US11310033B2 (en) * 2019-06-05 2022-04-19 Blackberry Limited System and method for operating pseudorandom generators

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4903317A (en) 1986-06-24 1990-02-20 Kabushiki Kaisha Toshiba Image processing apparatus
US5576835A (en) 1992-02-24 1996-11-19 Dirr; Josef Method for run-length coding for shortening transmission time
US6392705B1 (en) 1997-03-17 2002-05-21 Microsoft Corporation Multimedia compression system with additive temporal layers

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4888795A (en) * 1987-06-30 1989-12-19 Nec Corporation Videotelephone apparatus for transmitting high and low resolution video signals over telephone exchange lines
CA1326898C (en) * 1988-04-27 1994-02-08 John Music Method and system for decompressing color video encoded data
US5253078A (en) * 1990-03-14 1993-10-12 C-Cube Microsystems, Inc. System for compression and decompression of video data using discrete cosine transform and coding techniques
US5318173A (en) * 1992-05-29 1994-06-07 Simco/Ramic Corporation Hole sorting system and method
US5614952A (en) * 1994-10-11 1997-03-25 Hitachi America, Ltd. Digital video decoder for decoding digital high definition and/or digital standard definition television signals
ATE240623T1 (de) * 1993-06-30 2003-05-15 Sony Corp Aufzeichnungsmedium
US5450130A (en) * 1994-03-30 1995-09-12 Radius Inc. Method and system for cell based image data compression
US5764374A (en) * 1996-02-05 1998-06-09 Hewlett-Packard Company System and method for lossless image compression having improved sequential determination of golomb parameter
US5818877A (en) * 1996-03-14 1998-10-06 The Regents Of The University Of California Method for reducing storage requirements for grouped data values
GB9919805D0 (en) * 1999-08-21 1999-10-27 Univ Manchester Video cording
US6760479B1 (en) * 1999-10-22 2004-07-06 Research Foundation Of The City University Of New York Super predictive-transform coding
US6959116B2 (en) * 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
US7088398B1 (en) * 2001-12-24 2006-08-08 Silicon Image, Inc. Method and apparatus for regenerating a clock for auxiliary data transmitted over a serial link with video data
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US6982722B1 (en) * 2002-08-27 2006-01-03 Nvidia Corporation System for programmable dithering of video data
US7116718B2 (en) * 2002-09-11 2006-10-03 Njr Corporation Unified memory address generation system and method for fetching and storing MPEG video data
US6707397B1 (en) * 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatus for variable length codeword concatenation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4903317A (en) 1986-06-24 1990-02-20 Kabushiki Kaisha Toshiba Image processing apparatus
US5576835A (en) 1992-02-24 1996-11-19 Dirr; Josef Method for run-length coding for shortening transmission time
US6392705B1 (en) 1997-03-17 2002-05-21 Microsoft Corporation Multimedia compression system with additive temporal layers

Also Published As

Publication number Publication date
US20040126031A1 (en) 2004-07-01
US7532765B2 (en) 2009-05-12
AU2003287730A1 (en) 2004-07-29
CN1512782A (zh) 2004-07-14
DE60319742D1 (de) 2008-04-24
DE60319742T2 (de) 2009-04-30
ATE389219T1 (de) 2008-03-15
TWI240215B (en) 2005-09-21
KR20050084472A (ko) 2005-08-26
CN1231066C (zh) 2005-12-07
EP1579389A1 (en) 2005-09-28
WO2004061773A1 (en) 2004-07-22
EP1579389B1 (en) 2008-03-12
TW200421203A (en) 2004-10-16

Similar Documents

Publication Publication Date Title
US7526124B2 (en) Match MSB digital image compression
US6771830B2 (en) Differential pulse code modulation image compression with varying levels of quantizers
EP2143280B1 (en) Frame buffer compression and decompression method for graphics rendering
US7873212B2 (en) Compression of images for computer graphics
US20070076971A1 (en) Compression of images for computer graphics
JP2008532083A (ja) 画像データをフレームメモリに一時的に記憶する新たな圧縮フォーマットを用いる新たな圧縮フォーマット及び装置
US8929674B2 (en) Compression of high bit-depth images
CN113170140A (zh) 数据阵列的位平面编码
KR100803402B1 (ko) 양자화된 디지털 화상의 런 길이 인코딩을 위한 방법, 장치 및 컴퓨터 판독가능 매체
US10609382B2 (en) Method and apparatus for compressing video data
US11244476B2 (en) Systems and methods for low-complexity near lossless fixed-rate hybrid data compression codecs

Legal Events

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

Payment date: 20130219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee