KR102118234B1 - 프레임 버퍼 압축을 위한 혼합 모드 - Google Patents

프레임 버퍼 압축을 위한 혼합 모드 Download PDF

Info

Publication number
KR102118234B1
KR102118234B1 KR1020157023914A KR20157023914A KR102118234B1 KR 102118234 B1 KR102118234 B1 KR 102118234B1 KR 1020157023914 A KR1020157023914 A KR 1020157023914A KR 20157023914 A KR20157023914 A KR 20157023914A KR 102118234 B1 KR102118234 B1 KR 102118234B1
Authority
KR
South Korea
Prior art keywords
component
components
variable
block
classification
Prior art date
Application number
KR1020157023914A
Other languages
English (en)
Other versions
KR20150114992A (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 KR20150114992A publication Critical patent/KR20150114992A/ko
Application granted granted Critical
Publication of KR102118234B1 publication Critical patent/KR102118234B1/ko

Links

Images

Classifications

    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/46Embedding additional information in the video signal during the compression process
    • 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

소정 양태들은 혼합 모드 압축 방식을 사용하여 이미지 데이터를 압축하기 위한 시스템들 및 기법들에 관한 것이다. 혼합 모드 압축 방식은 프레임 버퍼에 저장된 데이터의 양을 감소시켜 이미지 디스플레이 시스템의 전력 비용들을 감소시킬 수 있다. 일부 구현들에서, 혼합 모드 압축은 하나 또는 2 개의 컬러 채널들이 픽셀 세기에서 상대적으로 낮은 변동을 보이면서 나머지 채널 또는 채널들이 상대적으로 높은 변동을 보이는, 픽셀 블록들의 압축에 적합할 수 있다. RGB 또는 YC0Cg 이미지의 각각의 컬러 채널에서의 픽셀 값들이 분석되어, 얼마나 많은 채널들이 평활 컴포넌트인지 그리고 얼마나 많은 채널들이 가변 컴포넌트인지를 결정하고, 이 컬러 채널 분석에 기초하여 혼합 모드 압축이 선택 및 구현되어 컬러 채널들을 적응적 및 개별적으로 압축할 수 있다.

Description

프레임 버퍼 압축을 위한 혼합 모드{MIXED MODE FOR FRAME BUFFER COMPRESSION}
본원에 개시된 시스템들 및 방법들은 이미지 데이터에 관한 것이고, 더 상세하게는, 이미지 데이터의 압축에 관한 것이다.
심지어 모바일 전화기들 및 태블릿들과 같은 핸드헬드 컴퓨팅 디바이스들도 이제 고해상도, 하이-컬러 디스플레이들을 요구하고, 따라서, 고 전력 소모를 함께 야기하는 고 왓트수 백라이트 램프들 및 대용량 프레임 버퍼 메모리들을 요구한다. 디스플레이 상의 이미지의 래스터화 동안 데이터의 프래그먼트들을 저장하는 프레임 버퍼, 즉, 메모리의 면적은 메모리 대역폭 및 저장 공간 양자의 큰 소비자이며, 이는 그래픽스 프로세싱 유닛 (GPU) 의 메모리 서브시스템에 악영향을 줄 수 있다. 또한, 디스플레이 백라이트와 함께, 프레임 버퍼들은 디바이스 전력의 상당한 퍼센티지를 소모한다. 특히, 제한된 배터리 수명을 갖는 모바일 디바이스들에 있어서, 프레임 버퍼 전력 소모는 디스플레이들의 높은 리프레시 레이트, 해상도, 및 컬러 심도의 관점에서 현저한 난제들을 제시할 수 있다. 따라서, 프레임 버퍼 활동을 감소시키는 것은 전체 배터리 수명을 연장하는 것을 돕는다.
이에 따라, 프레임 버퍼 압축 (frame buffer compression; FBC) 은 고해상도 모바일 전화기 및 태블릿 디바이스들의 디스플레이들 상으로 이미지들을 렌더링하기 위해 점점 더 유행되고 있다. 이는, FBC 가 요구된 링크 레이트를 감소시킬 수 있는 정규의 패널들 뿐 아니라 FBC 가 그 링크 레이트 및 패널 메모리 요건 양자를 감소시켜 비용을 절약할 수 있는 스마트 폰들 양자에 적용한다. FBC 에 대한 일부 접근법들은 프레임 버퍼로의 액세스들의 수를 감소시키고, 이에 의해 전력 비용들을 감소시킬 수 있다. 프레임 버퍼 및 그 연관 버스들의 전력 소모는 래스터화 동안 프레임 버퍼 액세스들의 수에 비례한다. 액세스들의 수는, 결국, 스크린 해상도, 리프레시 레이트, 및 컬러 심도에 의해 결정된다. 프레임 버퍼의 전력 소모는 또한, 압축비에 반비례한다.
디스플레이 사이즈 및 해상도가 계속 증가함에 따라, 프레임 버퍼 압축에 있어서의 더 높은 압축비들에 대한 수요가 증가된다. 심지어 압축 FBC 기법들에 대한 수요들이 증가할 때에도, FBC 의 요건들은 계속, (1) 모바일 디바이스의 드라이버 집적회로가 제한된 계산 리소스들로 압축 및 압축해제를 구현할 수 있다는 점에 있어서 낮은 복잡도이고, (2) 사용자는 압축 및 압축해제로 인한 이미지에서의 임의의 시각적 열화를 보지 않을 것이라는 점에서 시각적 무손실 품질이며, 그리고 (3) 고정된 압축 레이트이다.
일반적으로, 본 개시물은 프레임 버퍼에 저장되거나 송신될 필요가 있는 데이터의 양이 감소되도록 하는 데이터 압축에 대한 기법들에 관련된다. 일부 실시형태들은 "혼합 모드" 또는 "혼합 모드 압축" 으로서 본원에서 지칭된, 소정 이미지 블록들의 압축을 위한 시스템들 및 기법들에 관한 것이고, 여기서 이미지 블록들은 픽셀 세기에서 상대적으로 낮은 변동을 보이는 하나 또는 2 개의 컬러 채널들을 포함하면서, 나머지 채널 또는 채널들은 상대적으로 높은 변동을 보인다. 이러한 픽셀 블록들은 기존의 방법들을 사용하여 높은 시각적 품질을 유지하면서 압축하는 것이 매우 어려울 수도 있다. 예를 들어, 매우-변하는 컬러 채널들을 압축하기 위해 예측을 사용하는 것은 너무 많은 비트스트림을 생성할 수 있고, 적게-변하거나 중간으로-변하는 채널들을 압축하기 위해 양자화를 사용하는 것은 열악한 이미지 품질을 생성할 수 있다. 혼합 모드를 사용하는 것은, 래스터화 동안 프레임 버퍼 및 연관된 버스들의 활동을 감소시키고 따라서 또한, 시각적 품질을 희생하는 것 없이 전력 소비를 감소시키는, 고 압축비로 무손실 또는 실질적으로 무손실 코딩을 제공할 수 있다. 또한, 혼합 모드는 이미지 데이터에 따라 RGB 또는 YC0Cg 컬러 공간들 중 어느 하나에서 기능에 적응될 수 있다. 혼합 모드는 프레임 버퍼 압축 알고리즘의 일부로서 다른 컴포넌트들과 함께 또는 독립적으로 사용될 수 있다. 일부 실시형태들은 압축 모드들의 다른 타입들과 함께 사용되고 있는 혼합 모드 압축의 경우에서 다른 압축 모드들에 대해 혼합 모드를 선택하기 위한 기준에 관련될 수 있다.
혼합 모드는 효율성 및 대응하는 메모리 및 전력 소비 뿐만 아니라 품질에 관한 기존의 FBC 기법들에 비해 많은 이점들을 갖는다. 예를 들어, 혼합 모드는 블록들에 높은 시각적 품질 압축을 제공할 수 있고, 이 블록들은 그렇지 않은 경우 압축하기가 어렵다. 혼합 모드 압축은 자연스러운 이미지 데이터 또는 그래픽스 데이터에 대해 무손실 또는 거의-무손실 성능을 달성할 수 있고, 여기서 하나 또는 2 개의 컬러 채널들은 픽셀 세기에서 상대적으로 낮은 변동을 보이는 한편, 나머지 채널 또는 채널들은 상대적으로 높은 변동을 보인다. 엔드 사용자는 혼합 압축을 사용하여 코딩된 데이터로부터 렌더링된 이미지 데이터에서 임의의 시각적 열화를 볼 수 없을 수도 있다. 또한, 혼합 모드는 단지 N-픽셀 어레이만을 프로세싱하고, 거의 지연을 초래하지 않는 블록 기반이다. 또한, 혼합 모드는, 고정된 메모리 사이즈를 갖는 패널에 유리한 고정된 압축 레이트를 보장할 수 있다. 이하에서 설명되는 바와 같이, 혼합 모드 압축은 하나의 과정으로 행해질 수 있고 어떤 반복도 수반하지 않으며, 따라서 반복된 함수 호출들 및 리턴들의 회피로 인해 작은 데이터에 효율적이다. 또한, 혼합 모드는 매우 변하는 컴포넌트들의 수에 기초하여 양자화를 인에이블 및 디스에이블함으로써 무손실 및 손실 압축 양자 모두에 대한 지원을 제공한다. 다른 이점들은, 혼합 모드가 라인 버퍼를 요구하지 않는다는 것, 및 혼합 모드가, 곱셈 및 나누기 없이 단지 연산자들 "+", "<<", 및 ">>" 만이 사용되기 때문에, 낮은 연산 복잡성을 요구한다는 것을 포함한다. 또한, 혼합 모드는 라인 버퍼의 사용을 요구하지 않을 수도 있다.
일 양태는 이미지 데이터를 압축하기 위한 전자 디바이스에서의 시스템에 관한 것이고, 이 시스템은 복수의 컴포넌트들을 포함하는 픽셀 블록을 수신하는 것으로서, 복수의 컴포넌트들 중 적어도 일부는 픽셀 블록의 컬러 채널에 대응하는, 상기 복수의 컴포넌트들을 포함하는 픽셀 블록을 수신하고; 복수의 컴포넌트들 각각과 연관된 값들을 적어도 하나의 임계에 비교하고 적어도 하나의 임계에 기초하여 복수의 컴포넌트들 중 적어도 일부에 평활 또는 가변 중 어느 하나의 분류를 할당함으로써, 상기 픽셀 블록이 혼합 블록인지 여부를 결정하도록 구성된 채널 분석 모듈, 및 할당된 컴포넌트 분류에 적어도 부분적으로 기초하여 혼합 인코딩을 사용하여 픽셀 블록을 압축하도록 구성된 혼합 모드 압축 모듈을 포함하고, 혼합 블록은 평활 분류가 할당된 적어도 하나의 컴포넌트를 갖고, 혼합 블록에서의 복수의 컴포넌트들 전부에는 평활 또는 가변 중 어느 하나의 분류가 할당된다.
다른 양태는 전자 디바이스에서 이미지 데이터를 압축하는 방법에 관한 것이고, 이 방법은, 복수의 컴포넌트들을 포함하는 픽셀 블록을 수신하는 단계로서, 복수의 컴포넌트들 중 적어도 일부는 픽셀 블록의 컬러 채널에 대응하는, 상기 복수의 컴포넌트들을 포함하는 픽셀 블록을 수신하는 단계; 복수의 컴포넌트들 각각과 연관된 값들을 고 임계 및 저 임계 중 적어도 하나에 비교하여 복수의 컴포넌트들 각각에서 컬러 변동의 레벨을 결정하는 단계; 복수의 컴포넌트들 중 적어도 일부의 평활 컴포넌트에 평활의 분류를 할당하는 단계로서, 적어도 하나의 평활 컴포넌트와 연관된 값은 저 임계보다 작은, 상기 복수의 컴포넌트들 중 적어도 일부에 평활의 분류를 할당하는 단계; 복수의 컴포넌트들 중 적어도 일부에 가변의 분류를 할당하는 단계로서, 적어도 하나의 가변 컴포넌트와 연관된 값은 고 임계보다 높은, 상기 복수의 컴포넌트들 중 적어도 일부의 가변 컴포넌트에 가변의 분류를 할당하는 단계; 및 할당된 분류들에 기초하여 픽셀 블록이 혼합 블록인지 여부를 결정하는 단계를 포함한다.
다른 양태는 전자 디바이스에서 이미지 데이터를 압축하기 위한 장치에 관한 것이고, 이 장치는, 복수의 컴포넌트들 각각과 연관된 값들을 고 임계 및 저 임계 중 적어도 하나에 비교함으로써, 픽셀 블록의 복수의 컴포넌트들 각각에서 컬러 변동의 레벨을 결정하기 위한 수단; 복수의 컴포넌트들 중 적어도 하나의 평활 컴포넌트에 평활의 분류를 할당하고 적어도 하나의 가변 컴포넌트에 가변의 분류를 할당하기 위한 수단으로서, 적어도 하나의 평활 컴포넌트와 연관된 값은 저 임계보다 작고 적어도 하나의 가변 컴포넌트와 연관된 값은 고 임계보다 큰, 상기 할당하기 위한 수단; 및 할당된 분류들에 기초하여 픽셀 블록이 혼합 블록인지 여부를 결정하기 위한 수단을 포함한다.
다른 양태는 명령들을 저장하는 비일시적 컴퓨터 판독가능 매체에 관한 것이고, 이 명령들은 실행되는 경우, 적어도 하나의 물리적 컴퓨터 프로세서로 하여금 이미지 데이터를 압축하는 방법을 수행하게 하며, 이 방법은, 복수의 컴포넌트들 각각과 연관된 값들을 고 임계 및 저 임계 중 적어도 하나에 비교함으로써, 픽셀 블록의 복수의 컴포넌트들 각각에서 컬러 변동의 레벨을 결정하는 단계; 비교된 값들에 기초하여 복수의 컴포넌트들 중 적어도 일부에 평활 또는 가변 중 어느 하나의 분류를 할당하는 단계; 할당된 분류들에 기초하여 픽셀 블록이 혼합 블록인지 여부를 결정하는 단계; 및 평활 분류가 할당된 적어도 하나의 컴포넌트 및 가변 분류가 할당된 적어도 하나의 컴포넌트에 대해 상이한 압축 모드들을 구현하는 단계를 포함한다.
개시된 양태들은 이하에서 개시된 양태들을 예시하고 이들에 한정하지 않도록 제공되는 첨부된 도면들 및 부록들과 관련되어 설명될 것이며, 여기서 유사한 지정들은 유사한 엘리먼트들을 가리킨다.
도 1 은 혼합 모드 압축 시스템의 실시형태의 개략적 블록도를 예시한다.
도 2a 내지 도 2c 는 본 개시물에 설명된 압축 기법들을 구현할 수 있는 예시의 시스템들의 개략적 블록도들을 예시한다.
도 3 은 채널 분석 모듈의 일 예를 예시한다.
도 4 는 혼합 모드 압축 방식에 의해 생성될 수 있는 예시의 인코딩 포맷을 예시한다.
도 5 는 예시의 혼합 모드 압축 프로세스의 일 실시형태를 예시한다.
도 6 은 혼합 모드 압축 프로세스에 의해 생성되지 않은 제 1 테스트 패턴 및 혼합 모드 압축 프로세스에 의해 생성된 제 2 테스트 패턴의 비교를 예시한다.
도 7 은 혼합 모드 압축 프로세스에 의해 생성되지 않은 제 1 테스트 패턴 및 혼합 모드 압축 프로세스에 의해 생성된 제 2 테스트 패턴의 다른 비교를 예시한다.
도입
본 개시물의 실시형태들은 프레임 버퍼의 이미지 데이터 또는 다른 그래픽 데이터의 압축을 위한 기법들에 관한 것이다. 본원에 개시된 혼합 모드 압축 방식은, 픽셀 세기에서 상대적으로 낮은 변동을 보이는 하나 또는 2 개의 컬러 채널들과 상대적으로 높은 변동을 보이는 나머지 채널 또는 채널들을 포함하는 그래픽스 콘텐트를 코딩하는데 유용하다. 혼합 모드 압축 방식의 일 예는 3 개의 메인 스텝들을 포함한다: 첫 번째, RGB 또는 YC0Cg 의 각각의 컬러 채널에서의 픽셀 값들을 분석하여 얼마나 많은 채널들이 평활 컴포넌트이고 얼마나 많은 채널들이 가변 컴포넌트인지를 결정하는 것, 두 번째, 채널 분석에 기초하여 혼합 모드 압축이 사용되는지 및 어떻게 사용되는지를 결정하는 것, 및 세 번째, 채널 분석에 기초하여 컬러 채널들을 적응적으로 및 개별적으로 압축하기 위한 혼합 코딩. 데이터를 압축함으로써, 본 개시물에 설명된 기법들은 프레임 버퍼에 저장될 필요가 있는 데이터의 양을 감소시키고/시키거나 송신될 필요가 있는 데이터의 양을 감소시킬 수도 있다. 다시 말해, 압축 없이, 프레임 버퍼에 저장되고/되거나 송신될 필요가 있는 데이터의 양은 압축으로, 프레임 버퍼에 저장되고/되거나 송신될 필요가 있는 데이터의 양보다 더 클 수도 있어서, 더 큰 지연 시간들 및 더 높은 전력 소비를 초래한다.
몇몇 예들로서, 이미지 프레임들은 비디오 디코더에 의해 구성된 비디오 콘텐트의 픽처들, 그래픽스 프로세싱 유닛 (GPU) 에 의해 구성된 그래픽스 콘텐트, 또는 카메라에 의해 캡처되고 카메라 프로세서에 의해 구성된 이미지들일 수도 있다. 일반적으로, 이미지 프레임은 가시 가능한 콘텐트, 예컨대 웹 브라우저들, 게임들, 미디어 플레이어들 등을 생성하는 애플리케이션들을 실행한 결과들을 포함하는 디스플레이 상에 디스플레이되는 이미지 콘텐트의 임의의 예일 수도 있다.
혼합 모드 압축 모듈을 포함하는 압축 유닛은 비디오 디코더, GPU, 및 카메라 프로세서 중 어느 하나로부터, 구성된 이미지 프레임의 픽셀들에 대한 픽셀 값들을 수신할 수도 있다. 픽셀 값들 각각은 복수의 데이터 비트들로 표현될 수도 있다. 예를 들어, 픽셀 값들의 일 예는 레드, 그린, 및 블루 (RGB) 컴포넌트들에 대한 데이터 비트들을 포함하는 컬러 값들일 수도 있다. 다른 예에서, 픽셀 값들은 루미넌스, 오렌지 크로미넌스, 및 그린 크로미넌스 컴포넌트들에 대한 데이터 비트들을 포함하는 YC0Cg 컬러 공간에서의 컬러 값들일 수 있다. 압축 유닛은 이미지 프레임에서의 픽셀들 각각에 대한 픽셀 값들의 데이터 비트들을 수신하고, 압축을 적용하므로 각각의 픽셀의 컬러 값을 표현하기 위해 더 적은 비트들이 필요하다. 압축 유닛은 2개의 예들로서 불투명도 값들 및 좌표들과 같은 픽셀 값들의 다른 타입들을 유사하게 압축할 수도 있다. 본 개시물에서 사용된 바와 같이, 용어 "이미지 데이터" 는 일반적으로, 픽셀 값들의 비트들을 지칭하고, 용어 "압축된 이미지 데이터" 는 압축 유닛이 이 이미지 데이터를 압축한 후에 압축 유닛의 출력을 지칭할 수도 있다. 예를 들어, 압축된 이미지 데이터에서의 비트들의 수는 이미지 데이터에서의 비트들의 수보다 적을 수도 있다. 일부 실시형태들에서, 압축 유닛은 블록들에서 픽셀 값들을 수신할 수도 있고, "이미지 데이터" 는 원래의 이미지의 픽셀들의 블록들을 지칭할 수도 있다.
이미지 데이터를 압축하기 위해, 압축 유닛은 혼합 모드 압축 방식을 구현할 수도 있다. 압축 유닛은 이미지 프레임의 전체, 이미지 프레임의 슬라이스, 블록 단위, 또는 라인 단위에 혼합 모드 압축 방식을 구현할 수도 있다. 더 상세히 설명된 바와 같이, 혼합 모드 압축 방식에 따르면, 압축 유닛은 타겟 압축을 달성하기 위해 컴포넌트의 절대 차이들의 합에 기초하여 픽셀 블록의 각각의 컴포넌트를 분류하도록 채널 분석을 행할 수도 있다. 절대 차이들의 합은 이미지 데이터의 컬러 공간 및 또한 컴포넌트의 컬러 변동의 레벨을 결정하는데 사용될 수 있다.
일 예에서, 픽셀 블록의 컬러 채널 또는 각각의 컴포넌트는 압축 유닛에 의해 분석될 수 있고, 여기서 컴포넌트들은 RGB (레드, 그린, 블루) 나 YC0Cg (의사-루미넌스, 오렌지 크로미넌스, 그린 크로미넌스) 컬러 공간들에서의 컬러 채널들이다. 혼합 모드 압축 방식은 다른 실시형태들에서 다른 컬러 공간들에 적응될 수 있다. 혼합 모드 압축 방식은 블록에서의 컴포넌트들 각각을 평활 (낮은-가변), 가변 (높은-가변), 또는 비분류로서 분류하여, 그 블록이 혼합 모드 압축에 대한 후보인지를 결정하기 위해 픽셀 값들을 사용할 수 있다. 블록은, 모든 컴포넌트들이 평활화거나 가변적이고 적어도 하나의 채널이 평활한 경우 혼합 모드 압축에 대한 후보일 수 있다. 블록이 혼합 모드 압축에 대한 후보가 아니면, 일부 다른 방법, 예컨대 1D 또는 2D 예측 또는 펄스 코드 변조 (pulse code modulation; PCM) 가 사용되어 블록을 인코딩할 수도 있다. 컴포넌트 분류들이, 블록이 혼합 모드 압축에 대한 우수한 후보라는 것을 나타내면, 그 블록의 각각의 컴포넌트는 그들의 변동에 기초하여 개별적으로 코딩될 수 있다. 일부 실시형태들에서, 변동은, 일부 실시형태들에서 각각의 블록 컴포넌트 내의 픽셀들에 대한 차동 펄스-코드 변조 예측자의 에러의 절대 값에 의해, 또는 블록의 각각의 컴포넌트에서의 픽셀 값들에 대한 절대 차이들의 합을 계산함으로써 계산될 수 있다. 일부 실시형태들에서, 평활 컴포넌트들은 예측 또는 스킵 모드를 사용하여 압축될 수 있고, 가변 컴포넌트들은 다이렉트 양자화를 사용하여 코딩될 수 있다. 또한, 가변 컴포넌트들은 펄스 코드 변조를 사용하여 코딩될 수 있다. 이와 같이, 혼합 모드 압축은 변동에 기초한 블록 컴포넌트들의 개별의 그리고 적응적 코딩으로 인해 높은 압축 비율을 허용한다.
일부 예들에서, 압축 유닛은 다른 것들 중에서, 혼합 모드를 포함하는 다양한 압축 기법들을 이용하는 이미지 데이터를 압축할 수도 있다. 압축 유닛은, 어느 타입의 압축 기법이 이미지 데이터에 적용되어야 할지를 결정하고, 결정된 압축 기법에 기초하여 이미지 데이터를 압축할 수도 있다.
혼합 모드 압축의 개요
도 1 은 채널 분석기 (110), 혼합 모드 판정 모듈 (120), 및 혼합 모드 압축 유닛 (130) 을 포함하는 혼합 모드 압축기 (100) 의 일 실시형태의 개략적 블록도를 예시한다. 혼합 모드 압축 유닛 (130) 은 예측 유닛 (132) 및 양자화 유닛 (134) 을 포함할 수 있다. 일부 실시형태들에서, 채널 분석기 (110) 및 혼합 모드 판정 모듈 (120) 은 단일 모듈 안에 결합될 수 있다.
이미지 데이터 (105) 는 혼합 모드 압축기 (100) 의 채널 분석기 (110) 로 입력되어, 혼합 모드에 따라 이미지 데이터 (105) 를 코딩할지 여부의 초기 결정을 위해 이미지 데이터 (105) 의 각각의 컴포넌트의 변화를 계산할 수 있다. 일부 실시형태들에서, 혼합 모드 압축기 (100) 는 이미지 데이터 (105) 를 픽셀들의 블록으로 분리할 수 있다. 다른 실시형태들에서, 이미지 데이터 (105) 는 혼합 모드 압축기 (100) 로의 송신 전에 블록들로 분할될 수 있다. 예시의 목적을 위해, 본원에 논의된 실시형태들은 사이즈 8x1 픽셀들의 이미지 블록들을 사용하지만, 다른 실시형태들에서 다른 블록 사이즈들이 사용될 수 있다.
채널 분석기 (110) 는 블록에서의 각각의 컬러 채널 또는 컴포넌트의 픽셀 값들을 분석할 수 있고, 여기서 각각의 컴포넌트는 일부 예들에서 RGB 또는 YC0Cg 컬러 공간들의 채널들에 대응한다. 채널 분석기 (110) 는 픽셀 값들을 사용하여, 각각의 컬러 채널의 변동을 계산하고 계산된 변동에 기초하여 각각의 컬러 채널을 분류할 수 있다. 예를 들어, 일 실시형태에서, RGB 이미지 또는 이미지 블록의 모든 컴포넌트들의 SAD 의 합은 YC0Cg 이미지 또는 이미지 블록의 모든 컴포넌트들의 SAD 의 합보다 작기 때문에 절대 차이들의 합 (SAD) 은 각각의 블록의 3 개의 컴포넌트들이 RGB 또는 YC0Cg 컬러 공간에 있는지 여부를 결정하도록 계산될 수 있다. 일부 실시형태들에서, 채널 분석기 (110) 는 단지, 캡처된 이미지 마다의 하나의 블록의 컬러 공간을 결정하도록 계산들을 수행할 수도 있고, 이미지의 다른 블록들 모두는 동일한 컬러 공간 내에서 추정될 수 있다. 다른 실시형태들에서, 채널 분석기 (110) 는 캡처된 이미지에서 일부 또는 모든 블록들에 대한 컬러 공간을 결정하도록 계산들을 수행할 수도 있다.
여전히 도 1 을 참조하면, 채널 분석기 (110) 는 각각의 컴포넌트의 SAD 를 사용하여, 컴포넌트를 평활 컴포넌트, 가변 컴포넌트 (variant component), 또는 비분류 컴포넌트 중 하나로서 분류할 수 있다. 절대 차이들의 합은 컴포넌트의 컬러 분산 (color variance) 의 레벨을 나타낼 수 있다. 예를 들어, 채널 분석기 (110) 는 컴포넌트의 SAD 를 저 임계 및 고 임계 양자 모두에 비교할 수 있다. 이 예에서, 컴포넌트는, SAD 가 저 임계 미만인 경우 평활 컴포넌트로서 분류될 수 있고, SAD 가 고 임계를 초과하는 경우 가변 컴포넌트로서 분류될 수 있으며, SAD 가 저 임계와 고 임계 사이인 경우 비분류될 수 있다. 채널 분석기 (110) 는 블록에서의 평활, 가변, 및 비분류 컴포넌트들의 수를 나타내는 분류 데이터베이스를 구축할 수 있다. 이 채널 분류 데이터는 일부 실시형태들에서 프레임 버퍼에 저장될 수 있다.
혼합 모드 판정 모듈 (120) 은, 블록이 혼합 모드 압축에 대한 적합한 후보인지 여부를 결정하기 위해 채널 분류 데이터를 분석할 수 있다. 일부 실시형태들에서, 블록은 모든 컴포넌트들이 평활하거나 가변인 경우, 즉 비분류된 컴포넌트가 없고 적어도 하나의 채널이 평활한 경우 혼합 모드 압축에 대한 후보일 수 있다. 따라서, 임의의 컴포넌트가 비분류이거나 또는 평활 컴포넌트가 없으면, 혼합 모드 판정 모듈 (120) 은 이 블록이 혼합 모드 압축에 대해 적합한 후보가 아니라고 결정할 수 있다. 혼합 모드 판정 모듈 (120) 이, 이 블록이 혼합 모드 압축에 대해 적합하지 않다고 결정하면, 이미지 데이터 (105) 는 일부 다른 기법을 사용하여 압축을 위해 출력될 수 있고 다음 블록이 혼합 모드 압축기 (100) 에 의해 분석될 수 있다. 따라서, 일부 예들에서, 이미지 데이터 (105) 에서의 일부 블록들은 혼합 모드를 사용하여 코딩될 수 있는 한편, 다른 블록들은 다른 기법들을 사용하여 코딩될 수 있다. 혼합 모드 판정 모듈 (120) 이, 이 블록이 혼합 모드 압축을 위해 적합하다고 결정하면, 이미지 데이터 및 채널 분류 데이터는 코딩을 위해 혼합 모드 압축 유닛 (130) 으로 송신될 수 있다.
혼합 모드 압축 유닛 (130) 은 예측 유닛 (132) 을 사용하여 평활 컴포넌트들의 픽셀 값들을 압축할 수 있다. 예측 유닛 (132) 은 평활 컴포넌트 또는 컴포넌트들에 예측 코딩을 적용할 수 있고, 예측 코딩의 다양한 형태들은 무손실이거나 손실이다. 예측 유닛 (132) 은 위에서 논의된 저 임계의 값에 기초하여 평활 컴포넌트의 픽셀 값들에 스킵 모드나 차동 펄스 코드 변조를 적용할 수 있다. 차동 펄스 코드 변조 (differential pulse code modulation) 는, 대개 하나 이상의 이전 값들로부터 도출된 픽셀의 예측된 값 및 픽셀의 실제 값 간의 차이 값을 인코딩하는 이미지 압축의 손실 형태이다. 이 차이 값들은 양자화될 수 있다. 차이 값들은 예측된 값들에 기초하여 재구성된 값들을 생성하는데 사용될 수 있다. 일 예에서, 저 임계가 1 이면, 예측 유닛 (132) 은 스킵 모드를 사용하여 평활 컴포넌트를 압축할 수 있다. 스킵 모드는, 현재 픽셀이 블록에서의 이웃하는 픽셀과 동일하거나 유사한지 여부에 기초하여 블록에서의 현재 픽셀을 인코딩하는 예측 코딩 기법이다. 동일한 또는 유사한 픽셀들은 스킵된 픽셀들의 수의 표시 (indication) 를 제공하는 것과 함께 스킵될 수 있다.
혼합 모드 압축 유닛 (130) 은 양자화 유닛 (134) 을 사용하여 가변 컴포넌트들의 픽셀 값들을 압축할 수 있다. 양자화는 값들의 범위를 단일의 양자 값 (quantum value) 으로 압축함으로써 달성된 손실 압축 기법이다. 소정의 비트스트림에서 별개의 심볼들의 수가 감소되는 경우, 결과의 비트스트림은 원래의 비트스트림보다 더 짧다. 따라서, 양자화를 통한 압축은 데이터의 양을 감소시키기 위해 최소로 인지 가능하도록 의도되는 방식들로 작은 품질의 절충 (quality compromise) 을 내고자 한다. 일 실시형태에서, 채널 분류 데이터가, 블록이 하나 보다 많은 가변 컴포넌트를 포함한다는 것을 나타내면, 양자화 유닛 (134) 은 1-비트의 양자화 파라미터 (QP) 로 양자화를 사용하여 가변 컴포넌트들을 압축할 수 있다. 채널 분류가 데이터가, 블록이 단지 하나의 가변 컴포넌트를 포함한다는 것을 나타내면, 양자화 유닛 (134) 은 0-비트들의 QP 로 양자화를 사용하여 가변 컴포넌트를 압축할 수 있다. QP 는 얼마나 많은 공간 디테일이 컴포넌트의 압축 동안 절감되는지를 규정한다. QP 가 0 이거나 작은 경우, 원래의 디테일의 전부 또는 거의 전부가 압축 동안 보유된다. QP 가 증가됨에 따라, 더 압축된 비트스트림을 생성하지만 왜곡에서의 일부 증가의 가격 및 품질의 일부 손실에서 비트 레이트가 떨어지도록 그 디테일의 일부는 종합된다. 인간 시력 (human vision) 이 크로미넌스에서의 작은 변동들에 비해 루미넌스에서의 작은 변동들에 더 민감하기 때문에, 루미넌스 컴포넌트들 (Y) 보다 더 높은 QP 를 갖는 크로미넌스 컴포넌트들 (예를 들어, Cg 및 C0) 을 양자화하는 비-RGB 컬러 공간에서 추가의 압축이 획득될 수 있다. 블록 구성에 기초하여 QP 를 적응적으로 선택함으로써, 압축 유닛 (130) 은 블록의 무손실 및 손실 압축 양자 모두를 지원할 수 있다. 예를 들어, 비트들의 최대 수가 압축된 블록을 나타내는 비트스트림에 대해 결정될 수 있다. 블록이 하나의 가변 컴포넌트 및 2 개의 평활 컴포넌트들을 가지면, 압축 유닛 (130) 은 최대 수의 비트들 또는 이보다 적은 비트들을 사용하여 블록을 무손실로 인코딩할 수도 있다. 블록이 2 개의 가변 컴포넌트들 및 하나의 평활 컴포넌트를 가지면, 압축 유닛 (130) 은 최대 수의 비트들 또는 이보다 적은 비트들의 비트스트림을 생성하기 위해 2 개의 가변 컴포넌트들을 양자화할 수 있다. 수학적으로 손실이 있지만, 이 예에서 혼합 모드 압축은 여전히 시각적으로 무손실 압축된 이미지 데이터를 생성할 수 있다.
혼합 모드 압축 유닛 (130) 은 또한, 픽셀 블록 및/또는 코딩 프로세스에 관한 다른 정보 및 코딩된 컴포넌트들을 포함하는 비트스트림을 생성할 수 있다. 일 예에서, 혼합 모드 헤더는 전체 인코더/디코더 설계에 의해 요구되는 바와 같이 구성될 수 있고, 헤더 후에 제 1 필드는 블록의 컬러 공간을 나타낼 수 있다. 다음으로, 1-비트 코드는, 블록에서의 각각의 컴포넌트가 평활인지 또는 가변인지 여부를 나타낼 수 있다. 마지막으로, 코딩된 컴포넌트 값들이 0-64 비트 필드에서 인코딩될 수 있다. 혼합 모드에서 이미지 데이터를 코딩하는 것에 관한 추가의 상세들은 도 4 를 참조하여 논의된다. 압축된 비트스트림 (140) 은 일부 실시형태들에서 프레임 버퍼에 저장을 위해 송신될 수 있다.
예시된 예의 혼합 모드 압축 방식은 설명의 목적으로 제공되고, 상이한 블록 사이즈들, 블록 값들, 컴포넌트들의 수, 컴포넌트의 타입, 및 임계들이 다른 예들에서 가능하다는 것이 이해될 것이다. 또한, 실시형태들은 시스템의 인코딩 요구에 기초하여 다른 컴포넌트 타입들에 대해 적합한 코딩의 타입들을 포함할 수도 있다.
시스템 개요
도 2a 내지 도 2c 는 본 개시물에 설명된 압축 기법들을 구현할 수 있는 예시의 시스템들의 개략적 블록도들을 예시한다. 예를 들어, 도 2a 내지 도 2c 는 시스템들 (200A-200C) 을 각각 예시한다. 도 2a 및 도 2b 에서, 시스템들 (200A 및 200B) 은 디바이스 (202) 및 외부 패널 디바이스 (204) 를 포함하고, 도 2c 에서 시스템 (200C) 은 외부 패널 디바이스 (204) 가 없는 디바이스 (202) 를 포함한다. 디바이스 (202) 및 패널 디바이스 (204) 는 함께, 컴포넌트들, 예컨대 이미지 프로세서 (210), 압축 유닛 (215), 프레임 버퍼 (220), 압축해제 유닛 (225), 및 패널 디스플레이 (230) 를 포함한다. 압축 유닛 (215) 은 혼합 모드 모듈 (235) 을 포함할 수 있다.
디바이스 (202) 의 예들은 모바일 컴퓨팅 디바이스들, 예컨대 폰들, 디지털 카메라들, 태블릿 컴퓨터들, 미디어 플레이어들, 개인 정보 휴대 단말, 무선 핸드셋, 게이밍 콘솔들 등을 포함하지만, 이에 한정되지는 않는다. 디바이스 (200) 는 또한 데스크톱 개인용 컴퓨터, 비디오 회의 스테이션, 셋-톱 박스 등과 같은 보다 정적 디바이스일 수도 있다. 패널 디바이스 (204) 의 예들은 텔리비전들, 모니터들, 액정 디스플레이들 (LCDs), 발광 다이오드 디스플레이들 (LEDs), 유기 LED들 (OLEDs), 플라즈마 디스플레이들, 위에서 언급된 비디오 디바이스들 중 어느 하나의 디스플레이 스크린들, 또는 이미지들을 디스플레이하는 일반적으로 임의의 디바이스를 포함하지만, 이에 한정되지는 않는다.
시스템들 (200A-200C) 에서, 디바이스 (202) 는 이미지 프로세서 (210) 를 포함한다. 이미지 프로세서 (210) 는 충분히 구성된 이미지 프레임을 생성하는 임의의 컴포넌트일 수도 있다. 이미지 프레임은 가시 가능한 콘텐트를 생성하는 애플리케이션들을 실행한 결과들을 포함하는 디스플레이될 임의의 가시 가능한 콘텐트일 수도 있다. 예를 들어, 이미지 프로세서 (210) 의 예들은 비디오 디코더, 그래픽스 프로세싱 유닛들 (GPU), 및 카메라 프로세서 중 임의의 하나 이상을 포함하지만, 이에 한정되지는 않는다. 이미지 프레임들의 예들은 비디오 디코더에 의해 구성된 비디오 콘텐트의 픽처, GPU 에 의해 구성된 그래픽스 콘텐트, 또는 카메라에 의해 캡처되고 카메라 프로세서에 의해 구성된 이미지들을 포함하지만, 이에 한정되지는 않는다.
이미지 프레임은 복수의 픽셀들에 대한 픽셀 값들을 포함할 수도 있다. 예를 들어, 일 실시형태에서 이미지 프레임은 픽셀 값들의 2 차원 어레이에 의해 표현될 수도 있고, 여기서 각각의 픽셀 값은 패널 디스플레이 (230) 의 하나의 픽셀에 대응할 수도 있다. 예를 들어, 시스템들 (200A, 200B, 및 200C) 에서의 패널 디스플레이 (230) 는 이미지 프레임을 디스플레이할 수도 있고, 패널 디스플레이 (230) 는 이미지 프레임의 대응하는 픽셀 값들에 기초하여 그 픽셀들을 조명할 수도 있다.
이미지 프레임의 픽셀 값들은 복수의 디지털 비트들에 의해 정의될 수도 있다. 픽셀 값들은, 예를 들어 휘도 값들 또는 컬러 값들일 수 있다. 컬러 값들은 일반적으로, 레드, 그린, 및 블루 (RGB) 컴포넌트들 또는 세기, 오렌지 크로미넌스, 및 그린 크로미넌스 (YC0Cg) 에 의해 정의되지만, 다른 컬러 공간들이 또한 사용될 수 있다. 이미지 프로세서 (210) 는 루미넌스 값들, 투명도 값들, 불투명도 값들, 및 디지털 비트들을 갖는 픽셀 좌표들과 같은 픽셀 값들의 다른 예들을 유사하게 표현할 수도 있다. 예시의 설명의 용이함을 위해, 본 개시물에 설명된 기법들은 RGB 및 YC0Cg 컴포넌트들에 의해 표현되는 컬러 값들의 맥락에서 설명된다. 그러나, 본 개시물의 양태들은 RGB 및 YC0Cg 픽셀들을 프로세싱하는 것에 제한되지 않으며, 본원에 설명된 기법들은, 다른 컬러 공간들이 사용되거나 또는 다른 픽셀 값들이 사용되어 블록을 컴포넌트들로 분리하는 예들로 확장될 수도 있다.
이미지 프로세서 (210) 는 픽셀 값들을 압축 유닛 (215) 으로 송신할 수도 있다. 도 2a 의 예에서, 압축 유닛 (215) 은 외부 패널 디바이스 (204) 내에 상주할 수도 있고, 도 2b 및 도 2c 의 예들에서, 압축 유닛 (215) 은 디바이스 (202) 내에 상주할 수도 있다. 도 2a 내지 도 2c 의 예들에서, 압축 유닛 (215) 은 이미지 프로세서 (210) 외부에 있는 것으로서 예시되지만, 다른 예들에서 압축 유닛 (215) 은 이미지 프로세서 (210) 의 일부일 수도 있다.
도 2a 및 도 2b 의 예에서, 디바이스 (202) 및 외부 패널 디바이스 (204) 는 무선으로 커플링되거나 이미지 프로세서 (210) 로부터 압축 유닛 (215) 으로 데이터를 송신하는데 사용될 수도 있는 유선 링크와 커플링될 수도 있다. 유선 링크의 일 예로서, 디바이스 (202) 및 외부 패널 디바이스 (204) 는 고화질 멀티미디어 인터페이스 (High Definition Multimedia Interface; HDMI) 케이블에 의해 커플링될 수도 있다. 도 2b 및 도 2c 의 예들에서, 이미지 프로세서 (210) 는 디바이스 (202) 의 다양한 컴포넌트들을 상호접속하는 디바이스 (202) 의 시스템 버스를 통해 압축 유닛 (214) 으로 픽셀 값들을 송신할 수 있다. 이미지 프로세서가 압축 유닛을 포함하는 예들에서, 이미지 프로세서는 시스템 버스를 요구하지 않고 픽셀 값들을 압축 유닛으로 송신할 수 있다.
압축 유닛 (215) 은 이미지 프로세서 (210) 에 의해 생성된 픽셀 값들을 수신하도록 구성될 수 있고, 압축을 적용하도록 명령들을 포함할 수 있다. 전술된 바와 같이, 픽셀 값들은 컬러를 표현하는 복수의 비트들일 수도 있다. 압축 유닛 (215) 은, 컬러를 표현하는데 더 적은 비트들이 필요하도록 압축을 적용할 수도 있다. 일 예로서, 하나의 픽셀 값은 24 비트 (R, G, 및 B 컴포넌트들에 대해 각각 8 비트) 일 수 있고; 따라서 8 개의 픽셀 값들의 블록은 192 비트이다. 이 예에서, 50% 압축이 요망되면, 압축 유닛 (215) 은 192 비트를 수신하고 압축을 적용하여 비트들의 총 수를 96 비트로 감소시킨다. 이미지 데이터를 압축하기 위해, 압축 유닛 (215) 은 상기 및 이하에서 더 상세히 논의되는 바와 같이, 이미지 데이터의 블록들에 대해 혼합 모드 모듈 (235) 을 사용한 혼합 모드 압축 방식을 구현할 수도 있다. 일 예로서, 이미지 데이터의 하나의 블록은 8 개의 픽셀 값들일 수도 있다; 그러나, 다른 실시형태들에서 블록은 8 보다 더 적은 또는 더 큰 픽셀들일 수 있다.
혼합 모드 모듈 (235) 을 사용하면, 압축 유닛 (215) 은 정확한 실 시간 (또는 거의 실 시간) 압축을 달성할 수도 있다. 예를 들어, 혼합 모드 모듈 (235) 은 다수의 과정들을 필요로하기 보다는, 단일 과정으로 이미지 데이터를 압축할 수 있다. 다시 말해, 혼합 모드 모듈 (235) 이 이미지 데이터 블록을 압축하자마자, 압축된 이미지 데이터 블록의 비트들이 송신되거나 즉시 저장될 수도 있다. 더욱이, 압축 유닛 (215) 은 압축을 위해 메모리의 더 큰 블록들을 요구하지 않을 수도 있다. 예를 들어, 혼합 모드 모듈 (235) 과 프레임 버퍼 (220) 의 사이즈를 감소시키는 것이 가능하다. 또한, 혼합 모드 모듈 (235) 에 의해 구현된 혼합 모드 압축 방식은 저장을 위해 대규모의 메모리를 요구하지 않고, 따라서 혼합 모드 압축 기법들은 혼합 모드 모듈 (235) 에 의해 달성된 프레임 버퍼 (220) 의 사이즈에서 임의의 감축을 무효화한다. 압축 유닛 (215) 의 예들은 디지털 신호 프로세서 (DSP), 범용 마이크로프로세서, 주문형 집적 회로 (ASIC), 필드 프로그래머블 로직 어레이 (FPGA), 또는 다른 등가의 집적 또는 이산 로직 회로부와 같은 다양한 또는 범용의 또는 특수 목적의 프로세싱 하드웨어 중 어느 하나를 포함하지만, 이들에 한정되지는 않는다.
압축 유닛 (215) 은 압축된 이미지 데이터를, 압축된 이미지 데이터를 저장할 수 있는 프레임 버퍼 (220) 로 출력하도록 명령들을 포함할 수 있다. 프레임 버퍼 (220) 의 일 예는 랜덤 액세스 메모리 (RAM) 이다; 그러나, 다른 타입들의 메모리가 가능할 수도 있다. 이미지 데이터를 프레임 버퍼 (220) 에 저장하기 전에 압축함으로써, 본 개시물의 기법들은 프레임 버퍼 (220) 의 사이즈에서의 감축을 허용할 수도 있다. 일반적으로, 프레임 버퍼 (220) 의 비용은 그 사이즈에 비례한다. 따라서, 압축 유닛 (215) 으로 이미지 데이터를 압축함으로써, 프레임 버퍼 (220) 의 비용 및 사이즈는 압축이 적용되지 않는 예들에 비해 감소될 수 있다. 이미지 데이터의 압축은 이미지 데이터의 전송을 위해 대역폭 효율성을 개선할 수 있다.
압축해제 유닛 (225) 은 원래의, 압축되지 않은 이미지와 실질적으로 유사한 이미지를 재구성하도록 압축된 이미지 데이터를 압축해제하기 위한 명령들을 포함할 수 있다. 예를 들어, 압축해제 유닛 (225) 의 출력은, 이미지 프로세서 (210) 가 구성한 이미지 프레임의 픽셀 값들과 동일하거나 실질적으로 유사한 픽셀 값들일 수도 있다. 압축된 이미지 데이터를 압축해제하기 위해, 압축해제 유닛 (225) 은 압축 유닛 (215) 에 의해 적용된 압축 방식의 역을 적용할 수도 있다. 일부 실시형태들에서, 압축 유닛 (215) 은 이미지 데이터가 압축되었던 방식에 관한 표시를 압축해제 유닛 (225) 에 제공할 수도 있고, 이것은 압축해제 유닛 (225) 이 압축된 이미지 데이터를 압축해제하는 적합한 방식을 결정하는 것을 허용한다. 압축 유닛 (215) 은 무손실이거나 손실 압축을 적용할 수도 있다. 무손실 압축으로, 압축해제 유닛 (225) 은 결과의 이미지 데이터가 원래의 이미지 데이터와 가상으로 동일하도록 압축된 이미지 데이터를 압축해제할 수도 있다. 손실 압축으로, 압축해제 유닛 (225) 은 결과의 이미지 데이터가 원래의 이미지 데이터와 동일하도록 압축된 이미지 데이터를 압축해제할 수 없을 수도 있다. 그러나, 손실 압축이더라도, 압축해제된 이미지 데이터는 원래의 이미지 데이터와 유사하고, 잠재적으로 실질적으로 유사할 수도 있다.
패널 (230) 은 임의의 타입의 디스플레이일 수도 있다. 예를 들어, 패널 (230) 의 예들은 액정 디스플레이 (LCD), 발광 다이오드 디스플레이 (LED), 유기 발광 다이오드 디스플레이 (OLED), 음극선관 (CRT) 디스플레이, 플라즈마 디스플레이, 또는 다른 타입의 디스플레이 디바이스를 포함하지만, 이에 한정되지는 않는다. 패널 (230) 은 이미지 프로세서 (210) 에 의해 압축된 이미지 프레임의 가시 가능한 콘텐트를 디스플레이하도록 조명되는 복수의 픽셀들을 포함할 수도 있다. 압축해제 유닛 (225) 에 의해 출력된 픽셀 값들은, 패널 (230) 의 픽셀들이 조명되는 방식을 나타낼 수 있다. 예시되지 않았으나, 일부 실시형태들에서 압축해제 유닛 (225) 은 디스플레이 프로세서에 커플링될 수도 있고, 디스플레이 프로세서는 패널 (230) 에 커플링될 수도 있다. 이들 실시형태들에서, 디스플레이 프로세서는, 조명될 때, 픽셀들이 원하는 컬러를 제시하도록 패널 (230) 의 픽셀들에 적용되는 전압을 결정할 수도 있다. 도 2a 및 도 2b 의 예들에서, 패널 (230) 을 제외한 외부 패널 디바이스 (204) 의 컴포넌트들은 패널 (230) 에 대한 드라이버로서 간주될 수도 있다.
예시의 채널 분석기의 개요
도 3 은 본원에 설명된 혼합 모드 압축 방식의 일부로서 구현될 수 있는 채널 분석기 (300) 의 일 예를 예시한다. 전술된 바와 같이, 채널 분석의 일 예는 평활, 가변, 또는 비분류 중 하나로서 채널들을 분류하기 위해 고 임계 및 저 임계에 블록의 각각의 컴포넌트의 절대 차이 값들의 합 (SAD) 을 비교할 수 있다. 채널 분석기 (300) 는 도 1 의 혼합 모드 압축기 (100) 에서 구현될 수 있고, 도 2a 내지 도 2c 의 압축 유닛 (215) 의 혼합 모드 모듈 (235) 에서 구현될 수 있다.
채널 분석기 (300) 는 컬러 공간 결정 모듈 (310) 과 데이터 통신하는 초기화 모듈 (305) 을 포함할 수 있다. 예시된 예에서, 컬러 공간 결정 모듈 (310) 은, 이미지 블록의 컬러 공간이 RGB 또는 YC0Cg 인지 여부를 결정할 수 있고, 컴포넌트 분류 모듈 (330) 과 데이터 통신할 수 있다. 컴포넌트 분류 모듈 (330) 은, 이미지 블록의 컴포넌트들 각각이 평활 컴포넌트, 가변 컴포넌트, 또는 비분류 컴포넌트인지 여부를 결정할 수 있고, 혼합 모드 판정 모듈 (395) 과 데이터 통신될 수 있다. 혼합 모드 판정 모듈 (395) 은 컴포넌트 분류 모듈 (330) 에 의해 출력된 컴포넌트 분류 데이터를 수신할 수 있고, 현재 블록에 대한 혼합 모드 압축을 인에이블 또는 디스에이블할지 여부를 결정하도록 컴포넌트 분류 데이터를 사용할 수 있다. 혼합 모드 판정 모듈 (395) 은 코딩 파라미터 모듈 (399) 과 데이터 통신될 수 있어서, 블록이 혼합 모드 압축에 대해 적합하면 코딩 파라미터 모듈 (399) 은 혼합 모드 판정 모듈 (395) 로부터 컴포넌트 분류 데이터를 수신할 수 있고 이 컴포넌트 분류 데이터에 기초하여 코딩 파라미터들을 설정할 수 있다.
채널 분석기 (300) 는 분석을 위해 이미지 데이터의 블록 또는 블록들을 수신할 수 있다. 이 예에서, 블록의 블록 컴포넌트들 (즉, RGB 및 YC0Cg 예들에서의 컬러 채널들) 을 분석하기 전에, 초기화 모듈 (305) 은 낮은 정도의 변동을 갖는 컴포넌트 ("평활 컴포넌트") 의 수 및 높은 정도의 변동을 갖는 컴포넌트 ("가변 컴포넌트") 의 수를 0 으로 설정할 수 있다. 컬러 공간 결정 모듈 (310) 은 그 후, 판정 모듈 (315) 에서 블록을 분석하여 블록의 컬러 공간이 이하의 식 (1) 에 따라 RGB 또는 YC0Cg 인지 여부를 결정할 수 있다.
Figure 112015085299081-pct00001
(1)
식 (1) 의 컬러 공간 계산 (CSC) 실시형태는 절대 차이의 합 (SAD) 메트릭을 사용하여, 블록의 3 개의 컴포넌트들이 RGB 또는 YC0Cg 컬러 공간에 있는지 여부를 결정한다. 각각의 컴포넌트의 SAD 가 추가되고, R, G, 및 B 컴포넌트들의 SAD 합이 Y, C0, 및 Cg 컴포넌트들의 SAD 합보다 작으면, 이 블록의 컬러 공간은 RGB 이다. R, G, 및 B 컴포넌트들의 SAD 합이 Y, C0, 및 Cg 컴포넌트들의 SAD 합과 동일하거나 이보다 크면, 이 블록의 컬러 공간은 YC0Cg 이다. 8-픽셀 블록에 있어서, SAD 는 식 (2) 에 따라 각각의 컴포넌트에 대해 계산될 수 있고,
Figure 112015085299081-pct00002
(2)
여기서 Xt 는 현재 블록에서 현재 컴포넌트의 픽셀 (i) 을 나타낸다. i = 0 에 대해, 이전 블록의 최종 재구성된 픽셀은 Xt-1 에 대해 사용될 수 있다. i = 0 이고 현재 블록이 이미지 데이터에서 제 1 블록이면, 고정된 예측자는 Xt-1 에 대해 사용될 수도 있다.
판정 모듈 (315) 의 결과에 기초하여, 컬러 공간 결정 모듈은 RGB 설정 모듈 (320) 에서 CSC 를 RGB 로 설정할 수 있거나, YC0Cg 설정 모듈 (325) 에서 CSC 를 YC0Cg 로 설정할 수 있다. RGB 설정 모듈 (320) 은 R, G, 및 B 컴포넌트들 각각에 대해 계산된 SAD 를 컴포넌트 분류 모듈 (330) 로 출력할 수 있고, YC0Cg 설정 모듈 (325) 은 Y, C0, 및 Cg 컴포넌트들 각각에 대해 계산된 SAD 를 컴포넌트 분류 모듈 (330) 로 출력할 수 있다. 설정 모듈들 (320, 325) 은 또한, 블록의 컬러 공간에 관한 블록의 인코딩된 비트스트림에서 가능한 사용을 위해 표시를 출력할 수 있다.
예시된 예에서 컴포넌트 분류 모듈 (330) 은, 각각의 컴포넌트 SAD 를 고 임계 및 저 임계에 비교함으로써, 이미지 블록의 컴포넌트들 각각이 평활 컴포넌트, 가변 컴포넌트, 또는 비분류 컴포넌트인지 여부를 결정할 수 있다. 모듈 (335) 은 컬러 공간 결정 모듈 (310) 로부터 컴포넌트 SAD 값들을 수신할 수 있고, 모듈 (355) 이, 모든 컴포넌트들이 임계들에 비교되었다고 결정할 때까지 임계들에 대한 비교를 위해 SAD 값들을 출력할 수 있다. 하나의 구현에서, 도 1 에서 참조된 고 및 저 임계들은 각각
Figure 112015085299081-pct00003
= 128,
Figure 112015085299081-pct00004
= 1 로 설정된다. 컴포넌트는, 그 컴포넌트에 대한 SAD 가
Figure 112015085299081-pct00005
를 초과하면 가변 컴포넌트로서 분류될 것이다. 컴포넌트는, 그 컴포넌트에 대한 SAD 가
Figure 112015085299081-pct00006
미만이면 평활 컴포넌트로서 분류될 것이다.
Figure 112015085299081-pct00007
보다 크지만
Figure 112015085299081-pct00008
보다 작은 SAD 를 갖는 컴포넌트들은, 분류되지 않을 것이다. 따라서, 각각의 컴포넌트 SAD 값은 판정 모듈 (340) 에서 저 임계에 비교된다. SAD 가 저 임계
Figure 112015085299081-pct00009
보다 작으면, 탤리 (tally) 모듈 (345) 은 평활 컴포넌트들의 수 (COMPS_SMALL_VAR) 에 1 을 추가한다. 이것은, 컴포넌트 분류 데이터의 일부로서 예를 들어 프레임 버퍼에 저장될 수 있다. SAD 가 저 임계보다 크면, SAD 는 판정 모듈 (350) 에서 고 임계에 비교된다. SAD 가 고 임계 (Thigh) 보다 크면, 탤리 모듈 (355) 은 가변 컴포넌트들의 수 (COMPS_LARGE_VAR) 에 1 을 추가한다. 컴포넌트 분류 모듈 (330) 은 그 후, 컴포넌트 분류 데이터에서 평활 및 가변 컴포넌트들의 카운트를 업데이트할 수 있다. 판정 모듈 (350) 이, SAD 가 고 임계보다 크지 않다고 결정하면, 컴포넌트 분류 모듈 (330) 은 컴포넌트 분류 데이터를 업데이트하지 않을 수도 있다.
모든 컴포넌트들이 저 및 고 임계들에 비교된 후에, 평활 컴포넌트들의 수 (COMPS_SMALL_VAR), 및 가변 컴포넌트들의 수 (COMPS_LARGE_VAR) 를 나타내는 컴포넌트 분류 데이터가 혼합 모드 판정 모듈 (395) 로 출력된다. 판정 모듈 (360) 에서, 혼합 모드 판정 모듈 (395) 은, COMPS_SMALL_VAR 의 값이 0 보다 큰지 여부를 결정한다. 이것은, 임의의 평활 컴포넌트가 블록에 존재하는지 여부를 나타낸다. 평활 컴포넌트가 존재하지 않으면, 혼합 모드 판정 모듈 (395) 은 디스에이블 모듈 (365) 에서 현재 블록에 대한 혼합 모드 압축을 디스에이블한다. 이 구현에서, 평활 컴포넌트를 갖지 않는 블록들은 혼합 모드 압축에 적합하지 않다. 디스에이블 모듈 (365) 은 압축의 더 적합한 수단에 대한 블록 이미지 데이터의 출력을 야기할 수 있다.
적어도 하나의 평활 컴포넌트가 존재하는 것으로 판정 모듈 (360) 에서 결정되면, 혼합 모드 판정 모듈 (395) 은 판정 모듈 (370) 에서 COMPS_SMALL_VAR 및 COMPS_LARGE_VAR 의 수의 합이 현 예에서 3 과 동일한지 여부를 결정하고, 다른 예들에서 상이한 임계가 사용될 수도 있다. RGB 및 YC0Cg 컬러 공간들 각각이 3 개의 컴포넌트들을 갖기 때문에, 이 스텝은 블록 컴포넌트들 중 어느 하나가 비분류되었는지, 즉 저 임계와 고 임계 사이의 SAD 를 갖는지 여부를 결정한다. 이 타입의 블록은 또한, 본 예에서 혼합 모드 압축에 부적합하다. 컴포넌트가 분류되지 않았으면, 혼합 모드 판정 모듈 (395) 은 인에이블 모듈 (375) 에서 현재 블록에 대한 혼합 모드 압축을 인에이블한다. 따라서, 3 개의 컴포넌트들을 갖는 블록들의 예에서, 다음의 컴포넌트 브레이크다운들은 블록이 혼합 모드 압축에 적합하다고 나타낸다: 하나의 평활 컴포넌트 및 2 개의 가변 컴포넌트들, 2 개의 평활 컴포넌트들 및 하나의 가변 컴포넌트, 및 3 개의 평활 컴포넌트들. 인에이블 모듈 (375) 은 또한, 블록에 대해 혼합 모드 압축이 사용되었다는 표시를 인코딩된 비트스트림에서의 사용을 위해 제공할 수 있다.
혼합 모드 압축이 인에이블되면, 컴포넌트 분류 데이터는 코딩 파라미터 모듈 (399) 로 전송될 수 있다. 판정 블록 (380) 에서, 코딩 파라미터 모듈 (399) 은 컴포넌트 분류 데이터에서의 가변 컴포넌트들의 수를 결정할 수 있다. 가변 컴포넌트들의 수 (COMP_LARGE_VAR) 가 1 보다 크면, 양자화 파라미터 설정 모듈 (385) 은 양자화 파라미터를 QP = 0 로 설정할 수 있다. 가변 컴포넌트들의 수 (COMP_LARGE_VAR) 가 1 이하이면, 양자화 파라미터 설정 모듈 (385) 은 양자화 파라미터를 QP = 1 로 설정할 수 있다. 도 1 에 대하여 전술된 바와 같이, 다이렉트 양자화를 사용하여 임의의 가변 컴포넌트 또는 컴포넌트들을 인코딩하기 위해, 혼합 모드 압축 유닛 (130) 과 같은 코딩 모듈에 의해 양자화 파라미터가 사용될 수 있다. 혼합 모드의 결정이 인에이블되는 블록 분석의 완료 후에, 채널 분석기 (300) 는 블록 픽셀 값들의 일부 또는 전부, 컬러 공간 결정, 컴포넌트 분류 데이터, 혼합 모드 인에이블 판정, 및 양자화 파라미터 값을 블록의 압축된 비트스트림을 생성하기 위한 코딩 모듈로 출력할 수 있다.
예시의 인코딩 포맷의 개요
도 4 는 본원에 설명된 혼합 모드 압축 방식에 의해 생성될 수 있는 비트스트림에 대한 예시의 인코딩 포맷 (400) 을 예시한다. 포맷 (400) 은 무손실 표시 필드 (405), 헤더 (410), 컬러 공간 표시 필드 (420), 복수의 컴포넌트 분류 필드들 (430, 440, 450), 및 복수의 코딩된 컴포넌트 필드들 (460, 470, 480) 중 일부 또는 전부를 포함할 수 있다. 다양한 필드들이 특정 순서로 도시되었으나, 이것은 예시적 목적을 위한 것이며 필드들은 다른 예들에서 재배열될 수 있다. 소정의 압축된 비트스트림들에서, 단지 일부의 예시된 필드들이 포함될 수 있고 일부는 생략될 수도 있다.
예시된 예에서, 1-비트 무손실 표시 필드 (405) 는, 비트스트림이 무손실 또는 손실 방식으로 압축되었는지 여부를 나타낼 수 있다. 다른 예들에서, 단지 무손실 압축이 사용될 수 있거나 단지 손실 압축이 사용될 수 있고, 이에 따라 무손실 표시 필드 (405) 는 이러한 예들에서 생략될 수 있다.
헤더 (410) 는 전체 인코더/디코더 설계에 의해 필요한 바와 같이 구성될 수 있고, 소정 실시형태들에서 정보의 3 비트까지 포함할 수 있다. 예를 들어, 하나의 실시형태에서 헤더 (410) 는, 패턴 모드 압축이 디스에이블되었다는 것을 나타내기 위한 2 비트 (412) 또는 패턴 모드 압축이 인에이블되었다는 것을 나타내기 위한 3 비트 (414) 를 포함할 수 있다. 헤더 (410) 의 다른 실시형태들은 시스템 설계에 의해 요구되는 바와 같이 더 적거나 더 큰 비트들을 포함할 수 있다. 예시하기 위해, 혼합 모드 압축은 이미지 데이터의 압축을 위해 다수의 옵션들을 갖는 코덱에서 이용 가능한 하나의 옵션일 수 있다. 헤더 (510) 는, 어느 압축 모드가 사용되어 비트스트림을 생성하였는지를 디코더에 나타내도록 구성될 수 있다. 따라서, 헤더 (410) 의 신택스는, 얼마나 많은 상이한 모드들이 코덱에서 이용 가능한지에 의존할 수 있다.
컬러 공간 표시 필드 (420) 는, 예시된 실시형태에서 컬러 공간이 RGB 또는 YC0Cg 인지 여부의 1-비트 표현을 포함할 수 있다. 컬러 공간들의 더 광범위한 범위에 부합하도록 적응된 실시형태들에서, 컬러 공간 표시 필드 (420) 는 2 비트이거나 더 클 수 있다.
비트스트림은 블록에서의 컴포넌트들의 수에 대응하는 다수의 컴포넌트 분류 필드들 (430, 440, 450) 을 포함할 수 있다. 본원에 논의된 예들에서, 블록들 각각은 RGB 또는 YC0Cg 컬러 공간들의 채널들에 대응하는 3 개의 컴포넌트들을 갖지만, 더 큰 또는 더 적은 컴포넌트들이 다른 예들에서 사용될 수 있다. 예시된 실시형태에서 혼합 모드 인코딩에 대해 선택된 블록의 컴포넌트들은 평활 또는 가변일 것이기 때문에, 1-비트 필드가 사용되어 각각의 컴포넌트의 분류를 나타낸다. 다른 실시형태들에서, 더 많은 컴포넌트 분류들이 가능할 수도 있고, 컴포넌트 분류 필드들 (430, 440, 450) 은 1 보다 큰 비트를 사용하여 분류를 나타낼 수 있다.
비트스트림은 또한, 블록에서의 각각의 컴포넌트에 대응하는 복수의 코딩된 컴포넌트 필드들 (460, 470, 480) 을 포함할 수 있다. 일부 실시형태들에서, 코딩된 컴포넌트 필드는 블록에서의 각각의 픽셀에 대한 값을 포함할 수 있다. 일부 또는 모든 컴포넌트들에 대한 픽셀 값들이 컴포넌트 분류에 기초하여 비트스트림에 포함될 수 있다. 각각의 코딩된 컴포넌트 필드의 사이즈는 8-픽셀 블록에 대해 0 내지 64 비트의 범위일 수 있다.
다음의 예는 2 개의 평활 컴포넌트들 및 하나의 가변 컴포넌트를 갖는 8x1 블록에 대한 비트스트림 길이의 일 실시형태를 예시하고, 비트스트림은 예시의 인코딩 포맷 (400) 에 따라 코딩된다. 헤더 길이는 무손실 또는 손실 1-비트 표시자를 포함하는 4 비트 및 패턴 모드 압축이 사용되었다는 것을 나타내는 3-비트 헤더일 수 있다. 3 개의 컴포넌트 분류 필드들, 각각 1-비트는, 추가의 3 비트를 비트스트림에 추가하는, 2 개의 평활 컴포넌트들 및 하나의 가변 컴포넌트가 존재한다는 것을 나타낼 수 있다. 가변 컴포넌트에 대한 픽셀 값들은 하나의 코딩된 컴포넌트 필드에 포함될 수 있고, 이 가변 컴포넌트에 대응하는 각각의 픽셀 값은 9 비트를 사용하여 코딩되어, 추가의 72 비트를 비트스트림에 추가할 수 있다. 따라서, 하나의 새로운 패턴을 갖고 슬로프 모드가 선택되지 않은 예는 총 80 비트를 사용하여 코딩될 수 있다.
다른 예로서, 하나의 평활 컴포넌트 및 2 개의 가변 컴포넌트들을 갖는 8x1 픽셀 블록은 예시의 인코딩 포맷 (400) 에 따라 코딩될 수 있다. 헤더 길이는 무손실 또는 손실 1-비트 표시자 (indicator) 를 포함하는 4 비트 및 패턴 모드 압축이 사용되었다는 것을 나타내는 3-비트 헤더일 수 있다. 3 개의 컴포넌트 분류 필드들, 각각 1-비트는, 추가의 3 비트를 비트스트림에 추가하는, 2 개의 가변 컴포넌트들 및 하나의 평활 컴포넌트가 존재한다는 것을 나타낼 수 있다. 제 1 가변 컴포넌트에 대한 픽셀 값들은 하나의 코딩된 컴포넌트 필드에 포함될 수 있고, 이 가변 컴포넌트에 대응하는 각각의 픽셀 값은 7 비트를 사용하여 코딩되어, 추가의 56 비트를 비트스트림에 추가할 수 있다. 제 2 가변 컴포넌트에 대한 픽셀 값들은 하나의 코딩된 컴포넌트 필드에 포함될 수 있고, 이 가변 컴포넌트에 대응하는 각각의 픽셀 값은 8 비트를 사용하여 코딩되어, 추가의 64 비트를 비트스트림에 추가할 수 있다. 따라서, 하나의 새로운 패턴을 갖고 슬로프 모드가 선택되지 않은 예는 총 128 비트를 사용하여 코딩될 수 있다. 일부 실시형태들에서, 디코딩 모듈 (예시되지 않음) 이 제공되어 예시의 인코딩 포맷 (400) 에 따라 코딩된 비트스트림을 디코딩하여, 원래의 블록의 픽셀 값들 (또는 픽셀 값들의 근사치들) 을 복원할 수 있다.
예시의 혼합 모드 압축 프로세스의 개요
도 5 는 예시의 혼합 모드 압축 프로세스 (500) 의 일 실시형태를 예시한다. 예시의 목적을 위해, 프로세스 (500) 는 도 1 및 도 4 의 컴포넌트들 및 모듈들에 의해 구현되는 바와 같이 논의된다. 그러나, 프로세스 (500) 는 또한, 도 2a 내지 도 2c 의 압축 유닛 (215) 에 의해 그리고 본원에 설명된 바와 같은 혼합 모드 압축 능력들을 갖는 임의의 시스템에 의해 구현될 수 있다.
블록 505 에서, 혼합 모드 압축기 (110) 는 이미지 데이터를 수신할 수 있다. 일부 실시형태들에서, 이미지 데이터는 복수의 블록들로 분할될 수도 있고, 다른 실시형태들에서 혼합 모드 압축기 (110) 는 데이터를 블록들로 분할할 수도 있다. 블록 510 에서, 혼합 모드 압축기 (110) 는, 도 3 의 컬러 결정 모듈 (310) 에 대하여 전술된 바와 같이, 블록이 RGB 또는 YC0Cg 컬러 공간에 있는지 여부를 결정할 수 있다. 컬러 결정 모듈 (310) 은, RGB 및 YC0Cg 컬러 공간들 양자 모두에 각각의 컴포넌트의 SAD 를 추가함으로써, 블록의 3 개의 컴포넌트들이 RGB 또는 YC0Cg 컬러 공간에 있는지 여부를 결정하기 위해 절대 차이들의 합 (SAD) 메트릭을 사용할 수 있다. R, G, 및 B 컴포넌트들의 SAD 합이 Y, C0, 및 Cg 컴포넌트들의 SAD 합보다 작으면, 이 블록의 컬러 공간은 RGB 이다. R, G, 및 B 컴포넌트들의 SAD 합이 Y, C0, 및 Cg 컴포넌트들의 SAD 합과 동일하거나 이보다 크면, 이 블록의 컬러 공간은 YC0Cg 이다. 일부 실시형태들에서, 컬러 공간이 RGB 및 YC0Cg 중 하나가 아닌 것으로 결정되면, 프로세스 (600) 는 현재 블록에 대한 혼합 모드를 디스에이블하도록 블록 550 으로 트랜지셔닝할 수 있다. 예시되지 않았으나, 프로세스 (500) 는 블록의 콘텐츠에 더 적합한 압축의 상이한 타입에 대한 데이터를 출력할 수 있다.
블록 515 에서, 컴포넌트 분류 모듈 (330) 은, RGB 또는 YC0Cg 각각의 컴포넌트가 평활한지, 가변인지, 또는 비분류인지 여부를 결정할 수 있다. 예를 들어, 도 3 에 대하여 더 상세히 전술된 바와 같이, 컴포넌트 분류 모듈 (330) 은 각각의 컴포넌트에 대한 SAD 값을 저 임계 및 고 임계에 비교할 수 있다. 컴포넌트는, 그 컴포넌트에 대한 SAD 가 고 임계를 초과하면 가변 컴포넌트로서 분류될 수 있다. 컴포넌트는, 그 컴포넌트에 대한 SAD 가 저 임계 미만이면 평활 컴포넌트로서 분류될 수 있다. 저 임계와 고 임계 값들 사이의 SAD 를 갖는 컴포넌트들은 분류되지 않을 것이다.
블록 520 에서, 혼합 모드 판정 모듈 (395) 은, 도 3 에 대하여 더 상세히 전술된 바와 같이 어느 컴포넌트도 분류되지 않았는지 여부를 결정할 수 있다. 어느 컴포넌트도 분류되지 않았으면, 프로세스 (600) 는 현재 블록에 대한 혼합 모드를 디스에이블하도록 블록 550 으로 트랜지셔닝할 수 있다. 모든 컴포넌트들이 분류되었으면, 프로세스 (600) 는 블록 525 로 트랜지셔닝하여, 블록이 적어도 하나의 평활 컴포넌트를 포함하는지 여부를 결정할 수 있다. 블록이 평활 컴포넌트를 포함하지 않으면, 프로세스 (600) 는 블록 550 으로 트랜지셔닝하여 현재 블록에 대한 혼합 모드를 디스에이블할 수 있다. 블록이 적어도 하나의 평활 컴포넌트를 포함하면, 도 3 의 코딩 파라미터 모듈 (399) 에 대하여 더 상세히 전술된 바와 같이, 혼합 모드가 인에이블되고 프로세스 (600) 는 블록 530 으로 트랜지셔닝하여 임의의 가변 컴포넌트를 인코딩하기 위한 양자화 파라미터를 결정할 수 있다.
블록 535 에서, 혼합 모드 압축 유닛 (130) 은 스킵 모드 또는 차동 펄스-코드 변조와 같은 예측 코딩 기법들을 사용하여 평활 컴포넌트들을 인코딩할 수 있다. 낮은 가변의 컴포넌트들에 대한 비트스트림 길이를 감소시키기에 적합한 다른 예측 코딩 기법들 또는 다른 압축 기법들이 다른 실시형태들에서 평활 컴포넌트들에 대해 사용될 수 있다. 블록 540 에서, 일부 실시형태들에서 혼합 모드 압축 유닛 (130) 은 양자화를 이용하여 가변 컴포넌트들을 인코딩할 수 있다. 매우 높은 가변의 컴포넌트들에 대한 비트스트림 길이를 감소시키기에 적합한 다른 압축 기법들이 다른 실시형태들에서 사용될 수 있다. 블록 545 에서, 프로세스 (500) 는, 예를 들어 도 4 에 대하여 전술된 인코딩 포맷으로, 압축된 블록 데이터를 출력할 수 있다.
시각적 품질 결과들의 예
도 6 은 혼합 모드 압축 프로세스에 의해 생성되지 않은 제 1 의 블랙 앤 화이트 테스트 패턴 (605) 및 혼합 모드 압축 프로세스에 의해 생성된 제 2 의 블랙 앤 화이트 테스트 패턴 (610) 의 비교를 예시한다. 테스트 패턴 (605) 은 혼합 모드 디스에이블되어 생성되었고, 대략 47.485 dB 의 피크 신호대 잡음비 (PSNR) 를 갖는다. 테스트 패턴 (610) 은 혼합 모드 인에이블되어 생성되었고, 대략 61.638 dB 의 PSNR 을 갖는다. PSNR 은 프로세싱된 이미지의 품질을 평가하고, 원래의 이미지의 피크 신호대 잡음과 이미지 프로세싱 시스템에 의해 프로세싱된 후의 이미지의 피크 신호대 잡음 간의 비율을 나타내는 전통적인 객관적 메트릭이다. PSNR 값이 높을 수록, 압축 또는 재구성된 이미지의 품질이 더 좋아진다. 따라서, PSNR 메트릭에 따르면, 혼합 모드 인에이블되어 생성된 테스트 패턴 (610) 은 혼합 모드 디스에이블되어 생성된 테스트 패턴 (605) 보다 객관적으로 더 높은 시각적 품질을 갖는다.
도 7 은 혼합 모드 압축 프로세스에 의해 생성되지 않은 제 1 의 컬러 테스트 패턴 (705) 및 혼합 모드 압축 프로세스에 의해 생성된 제 2 의 컬러 테스트 패턴 (710) 의 그레이스케일 근사치들을 예시한다. 테스트 패턴 (705) 은 대략 23.382 dB 의 PSNR 을 갖고 테스트 패턴 (710) 은 대략 37.435 dB 의 PSNR 을 갖고, 따라서 테스트 패턴 (710) 이 테스트 패턴 (705) 보다 객관적으로 더 높은 시각적 품질을 갖는다. 또한, 테스트 패턴들 (705 와 710) 간의 주간적인, 또는 감지된 시각적 품질 차이는 또한, 테스트 패턴 (705) 에 존재하는 아티팩트들 및 왜곡이 특히 코너 영역들에서 테스트 패턴 (710) 에는 존재하지 않는다는 것에 주목함으로써 명백해진다.
시스템들 및 기술의 구현
본원에 개시된 구현들은 이미지 데이터를 압축하기 위한 시스템들, 방법들 및 장치를 제공한다. 이들 실시형태들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있음을 당업자는 인식할 것이다.
일부 실시형태들에서, 전술된 회로들, 프로세스들 및 시스템들은 무선 통신 디바이스에서 이용될 수 있다. 무선 통신 디바이스는 다른 전자 디바이스들과 무선으로 통신하기 위해 사용된 일종의 전자 디바이스일 수도 있다. 무선 통신 디바이스들의 예들은 셀룰러 전화기들, 스마트 폰들, 개인 휴대 정보 단말들 (PDAs), e-리더들, 게이밍 시스템들, 음악 플레이어들, 넷북들, 무선 모뎀들, 랩톱 컴퓨터들, 태블릿 디바이스들 등을 포함한다.
무선 통신 디바이스는 하나 이상의 이미지 센서들, 2 이상의 이미지 신호 프로세서들, 명령들을 포함하는 메모리 또는 전술된 CNR 프로세스를 수행하기 위한 모듈들을 포함할 수도 있다. 디바이스는 또한, 데이터, 프로세서 로딩 명령들 및/또는 메모리로부터의 데이터, 하나 이상의 통신 인터페이스들, 하나 이상의 입력 디바이스들, 하나 이상의 출력 디바이스들, 예컨대 디스플레이 디바이스 및 전원/인터페이스를 가질 수도 있다. 무선 통신 디바이스는 부가적으로, 송신기 및 수신기를 포함할 수도 있다. 송신기 및 수신기는 집합적으로 트랜시버로서 지칭될 수도 있다. 트랜시버는 무선 신호들을 송신 및/또는 수신하기 위해 하나 이상의 안테나들에 커플링될 수 있다.
무선 통신 디바이스는 다른 전자 디바이스 (예를 들어, 기지국) 에 무선으로 접속할 수도 있다. 무선 통신 디바이스는 대안으로 모바일 디바이스, 이동국, 가입자국, 사용자 기기 (user equipment; UE), 원격국, 액세스 단말, 모바일 단말, 단말, 사용자 단말, 가입자 유닛 등으로 지칭될 수도 있다. 무선 통신 디바이스들의 예들은 랩톱 컴퓨터 또는 데스크톱 컴퓨터, 셀룰러 전화들, 스마트 폰들, 무선 모뎀들, e-리더들, 태블릿 디바이스들, 게임 시스템들 등을 포함한다. 무선 통신 디바이스들은 하나 이상의 산업 표준들, 예컨대 제 3 세대 파트너쉽 프로젝트 (3GPP) 에 따라 동작할 수도 있다. 따라서, 일반적인 용어 "무선 통신 디바이스" 는 산업 표준들에 따라 다양한 명명법들로 설명된 무선 통신 디바이스들 (예를 들어, 액세스 단말, 사용자 기기 (UE), 원격 단말 등) 을 포함할 수도 있다.
본원에 설명된 기능들은 하나 이상의 명령들로서 프로세서 판독가능 매체 또는 컴퓨터 판독가능 매체에 저장될 수도 있다. 용어 "컴퓨터 판독가능 매체" 는 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 이용가능한 매체를 지칭한다. 비제한적인 예로서, 이러한 매체는 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM 또는 다른 광학 디스크 저장 디바이스, 자기 디스크 저장 디바이스 또는 다른 자기 저장 디바이스, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 본원에서 사용된 디스크 (disk) 와 디스크 (disc) 는, 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크, 및 블루레이® 디스크를 포함하며, 여기서 디스크 (disk) 들은 통상 자기적으로 데이터를 재생하는 반면, 디스크 (disc) 들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 컴퓨터 판독가능 매체는 유형이고 일시적이지 않을 수도 있음에 유의해야 한다. 용어 "컴퓨터 판독가능 제품" 은 컴퓨팅 디바이스 또는 프로세서에 의해 실행, 처리, 또는 컴퓨팅될 수도 있는 코드 또는 명령들 (예를 들어, "프로그램") 과 조합하는 컴퓨팅 디바이스 또는 프로세서를 지칭한다. 본원에서 사용된 바와 같이, 용어 "코드" 는 소프트웨어, 명령들, 코드, 또는 컴퓨팅 디바이스 또는 프로세서에 의해 실행 가능한 데이터를 지칭할 수도 있다.
소프트웨어 또는 명령들은 또한, 송신 매체를 통해 송신될 수도 있다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 명령들이 송신되면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다.
본원에 개시된 방법들은 설명된 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법 단계들 및/또는 액션들은 청구항들의 범위를 벗어나지 않으면서 서로 상호 교환될 수도 있다. 다시 말해, 설명된 방법들의 적절한 동작을 위해 단계들 또는 액션들의 특정한 순서가 요구되지 않는 한, 특정한 단계들 및/또는 액션들의 순서 및/또는 사용은 청구항들의 범위를 벗어나지 않으면서 수정될 수도 있다.
용어들, "커플", "커플링", "커플링된" 또는 본원에 사용된 바와 같은 단어 커플의 다른 변형들은 간접적 접속 또는 직접적 접속 중 어느 하나를 나타낼 수도 있다. 예를 들어, 제 1 컴포넌트가 제 2 컴포넌트에 "커플링되면", 제 1 컴포넌트는 제 2 컴포넌트에 간접적으로 접속되어 있거나 제 2 컴포넌트에 직접적으로 접속되어 있을 수도 있다. 본원에 사용된 바와 같이, 용어 "복수의" 는 2 이상을 가리킨다. 예를 들어, 복수의 컴포넌트들은 2 이상의 컴포넌트들을 나타낸다.
용어 "결정하기" 는 매우 다양한 액션들을 망라하므로, "결정하기" 는 계산하기, 연산하기, 처리하기, 도출하기, 조사하기, 검색하기 (예를 들어, 테이블, 데이터베이스, 또는 다른 데이터 구조 내 검색하기), 확인하기 등을 포함할 수 있다. 또한, "결정하기" 는 수신하기 (예를 들어, 정보 수신하기), 액세스하기 (예를 들어, 메모리 내의 데이터에 액세스하기) 등을 포함할 수도 있다. 또한, "결정하기" 는 해결하기, 선택하기, 고르기, 확립하기 등을 포함할 수 있다.
문구 "~에 기초하는" 은 달리 명백히 명시되지 않는 한 "단지 ~에만 기초하는" 을 의미하지 않는다. 다시 말해, 문구 "~에 기초하는" 은 "단지 ~에만 기초하는" 및 "적어도 ~에 기초하는" 양자 모두를 설명한다.
다음의 설명에서, 예들에 대한 완전한 이해를 제공하기 위해 특정 세부사항들이 주어진다. 그러나, 예들은 이러한 특정 세부사항들이 없이 실시될 수도 있음이 당업자에 의해 이해될 것이다. 예를 들어, 불필요한 세부사항으로 예들을 모호하게 하지 않기 위해 전기 컴포넌트들/디바이스들은 블록도들로 보여질 수도 있다. 다른 경우들에서, 이러한 컴포넌트들, 다른 구조들 및 기법들은 예들을 추가로 설명하기 위해 상세히 도시될 수도 있다.
제목들은 참조를 위해 그리고 다양한 섹션들을 위치시키는 것을 돕기 위해 본원에 포함된다. 이들 제목들은 그와 관련하여 설명된 개념들의 범위를 제한하고자 하지 않는다. 이러한 개념들은 전체 명세서에 걸쳐 적용가능할 수도 있다.
예들은 프로세스로서 설명될 수도 있으며, 프로세스는 플로우차트, 흐름도, 유한 상태도, 구조도, 또는 블록도로 도시되는 것이 주목된다. 플로우차트가 동작들을 순차적인 프로세스로 설명할 수도 있지만, 동작들 중 많은 동작들은 병렬로, 또는 동시에 수행될 수 있고, 프로세스는 반복될 수 있다. 또한, 동작들의 순서는 재배열될 수도 있다. 프로세스는 프로세스의 동작들이 완료되는 경우 종료된다. 프로세스는 방법, 기능, 절차, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 소프트웨어 기능에 대응하면, 그 종료는 호출 기능 또는 메인 기능으로의 그 기능의 리턴에 대응한다.
개시된 구현들의 이전 설명들은 당업자가 본 발명을 실시하거나 사용하는 것을 가능하게 하도록 하기 위해 제공된다. 이들 실시형태들에 대한 다양한 수정예들이 당업자에게는 자명할 것이고, 본원에서 정의된 일반적인 원칙들은 본 발명의 취지와 범위를 벗어나지 않으면서 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 본원에서 보여진 구현들로 제한되도록 의도된 것은 아니며 본원의 개시된 원칙들과 신규의 특징들과 일치하는 광의의 범위를 따르려는 것이다.

Claims (30)

  1. 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템으로서,
    복수의 컴포넌트들을 포함하는 픽셀 블록을 수신하는 것으로서, 각각의 컴포넌트는 상기 픽셀 블록의 복수의 컬러 채널들 중 하나에 대응하는, 상기 복수의 컴포넌트들을 포함하는 픽셀 블록을 수신하고;
    상기 픽셀 블록의 상기 복수의 컴포넌트들 각각에 대해,
    컴포넌트의 픽셀 값들을 분석하여 상기 컴포넌트의 컬러 변동을 계산하고,
    상기 컴포넌트의 상기 컬러 변동을 저 임계 및 고 임계 중 적어도 하나와 비교하며,
    상기 컴포넌트의 상기 컬러 변동이 상기 저 임계보다 작은 경우 상기 컴포넌트를 평활로서 분류하거나, 또는 상기 컴포넌트의 상기 컬러 변동이 상기 고 임계보다 큰 경우 상기 컴포넌트를 가변으로서 분류하고,
    상기 픽셀 블록이 혼합 블록인지 여부를 결정하는 것으로서, 상기 혼합 블록은 평활로서 분류된 적어도 하나의 컴포넌트를 갖고, 상기 혼합 블록에서의 모든 다른 컴포넌트는 평활 또는 가변으로서 분류되는, 상기 픽셀 블록이 혼합 블록인지 여부를 결정하도록 구성된
    채널 분석 모듈; 및
    혼합 블록에 대해,
    상기 복수의 컴포넌트들 각각에 대해, 상기 컴포넌트를 평활 또는 가변으로서 분류하는 것에 적어도 부분적으로 기초하여 인코딩 기법을 결정하며,
    상기 컴포넌트에 대해 결정된 상기 인코딩 기법을 사용하여 상기 복수의 컴포넌트들 각각을 인코딩하도록 구성된
    혼합 모드 압축 모듈을 포함하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  2. 제 1 항에 있어서,
    상기 컴포넌트의 상기 컬러 변동은 상기 컴포넌트의 컬러 변동의 레벨을 나타내는 절대 차이 값의 합인, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  3. 제 1 항에 있어서,
    상기 채널 분석 모듈은, 상기 컴포넌트의 상기 컬러 변동이 상기 저 임계와 상기 고 임계 사이인 경우 상기 컴포넌트를 평활 또는 가변으로서 분류하지 않는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  4. 제 1 항에 있어서,
    상기 혼합 블록은 가변 분류가 할당된 적어도 하나의 컴포넌트를 더 포함하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  5. 제 4 항에 있어서,
    상기 혼합 모드 압축 모듈은 평활 분류가 할당된 적어도 하나의 컴포넌트 및 상기 가변 분류가 할당된 상기 적어도 하나의 컴포넌트에 대해 상이한 압축 모드들을 구현하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  6. 제 5 항에 있어서,
    상기 혼합 모드 압축 모듈은 상기 가변 분류가 할당된 상기 적어도 하나의 컴포넌트를 코딩하도록 펄스 코드 변조를 구현하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  7. 제 5 항에 있어서,
    상기 혼합 모드 압축 모듈은 상기 평활 분류가 할당된 상기 적어도 하나의 컴포넌트를 코딩하도록 예측을 구현하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  8. 제 1 항에 있어서,
    혼합 인코딩에 의해 코딩된 비트스트림은 상기 픽셀 블록의 컬러 공간을 나타내는 제 1 비트, 상기 복수의 컴포넌트들 각각의 분류를 나타내는 복수의 후속의 비트들, 및 상기 복수의 컴포넌트들의 대응하는 컴포넌트의 코딩된 비트스트림을 포함하는 적어도 하나의 코딩된 컴포넌트 필드를 포함하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  9. 제 8 항에 있어서,
    상기 적어도 하나의 코딩된 컴포넌트 필드는 가변 분류가 할당된 적어도 하나의 컴포넌트에 대응하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  10. 제 8 항에 있어서,
    상기 적어도 하나의 코딩된 컴포넌트 필드는 상기 픽셀 블록의 복수의 픽셀들 각각의 값을 포함하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  11. 제 8 항에 있어서,
    상기 혼합 블록은 가변으로서 분류된 2 개의 컴포넌트들을 갖고, 상기 비트스트림은 상기 가변으로서 분류된 2 개의 컴포넌트들에 대응하는 2 개의 코딩된 컴포넌트 필드들을 포함하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  12. 제 1 항에 있어서,
    상기 픽셀 블록이 혼합 블록인 경우 혼합 모드 압축을 인에이블하도록 구성된 혼합 모드 판정 모듈을 더 포함하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  13. 제 1 항에 있어서,
    상기 픽셀 블록이 혼합 블록이 아닌 경우 혼합 모드 압축을 디스에이블하도록 구성된 혼합 모드 판정 모듈을 더 포함하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  14. 제 1 항에 있어서,
    가변으로서 분류된 컴포넌트들의 수에 기초하여 양자화 파라미터를 설정하도록 구성된 코딩 파라미터 모듈을 더 포함하는, 이미지 데이터를 압축하기 위한 전자 디바이스의 시스템.
  15. 전자 디바이스에서 이미지 데이터를 압축하는 방법으로서,
    복수의 컴포넌트들을 포함하는 픽셀 블록을 수신하는 단계로서, 각각의 컴포넌트는 상기 픽셀 블록의 복수의 컬러 채널들 중 하나에 대응하는, 상기 복수의 컴포넌트들을 포함하는 픽셀 블록을 수신하는 단계;
    상기 복수의 컴포넌트들 각각의 픽셀 값들을 분석하여 상기 복수의 컴포넌트들 각각의 컬러 변동을 계산하는 단계;
    상기 복수의 컴포넌트들 각각의 상기 컬러 변동을 고 임계 및 저 임계 중 적어도 하나와 비교하는 단계;
    상기 복수의 컴포넌트들 중 적어도 하나의 평활 컴포넌트에 평활의 분류를 할당하는 단계로서, 상기 적어도 하나의 평활 컴포넌트의 컬러 변동은 상기 저 임계보다 작은, 상기 복수의 컴포넌트들 중 적어도 하나의 평활 컴포넌트에 평활의 분류를 할당하는 단계;
    상기 복수의 컴포넌트들 중 적어도 하나의 가변 컴포넌트에 가변의 분류를 할당하는 단계로서, 상기 적어도 하나의 가변 컴포넌트의 컬러 변동은 상기 고 임계보다 높은, 상기 복수의 컴포넌트들 중 적어도 하나의 가변 컴포넌트에 가변의 분류를 할당하는 단계;
    상기 픽셀 블록이 혼합 블록인지 여부를 결정하는 단계로서, 상기 혼합 블록은 평활로서 분류된 적어도 하나의 컴포넌트를 갖고, 상기 혼합 블록에서의 모든 다른 컴포넌트는 평활 또는 가변 중 어느 하나로서 분류되는, 상기 픽셀 블록이 혼합 블록인지 여부를 결정하는 단계;
    상기 컴포넌트를 평활 또는 가변으로서 분류하는 것에 적어도 부분적으로 기초하여 인코딩 기법을, 상기 혼합 블록에서의 상기 복수의 컴포넌트들 각각에 대해 결정하는 단계; 및
    상기 컴포넌트에 대해 결정된 상기 인코딩 기법을 사용하여 상기 혼합 블록에서의 상기 복수의 컴포넌트들 각각을 인코딩하는 단계를 포함하는, 이미지 데이터를 압축하는 방법.
  16. 제 15 항에 있어서,
    상기 적어도 하나의 평활 컴포넌트에 상기 평활의 분류를 할당하고 상기 적어도 하나의 가변 컴포넌트에 상기 가변의 분류를 할당하는 것에 적어도 부분적으로 기초하여 혼합 인코딩을 사용하여 상기 픽셀 블록을 압축하는 단계를 더 포함하는, 이미지 데이터를 압축하는 방법.
  17. 제 15 항에 있어서,
    상기 복수의 컴포넌트들 각각의 상기 컬러 변동은 상기 컴포넌트의 컬러 변동의 레벨을 나타내는 절대 차이 값의 합인, 이미지 데이터를 압축하는 방법.
  18. 제 17 항에 있어서,
    상기 복수의 컴포넌트들 각각에 대한 상기 절대 차이 값의 합을 계산하는 단계를 더 포함하는, 이미지 데이터를 압축하는 방법.
  19. 제 17 항에 있어서,
    상기 복수의 컴포넌트들 각각의 상기 절대 차이 값의 합에 적어도 부분적으로 기초하여 상기 픽셀 블록의 컬러 공간을 결정하는 단계를 더 포함하는, 이미지 데이터를 압축하는 방법.
  20. 제 15 항에 있어서,
    평활 분류가 할당된 상기 적어도 하나의 컴포넌트 및 가변 분류가 할당된 상기 적어도 하나의 컴포넌트에 대해 상이한 압축 모드들을 구현하는 단계를 더 포함하는, 이미지 데이터를 압축하는 방법.
  21. 제 20 항에 있어서,
    펄스 코드 변조를 사용하여 상기 적어도 하나의 가변 컴포넌트를 코딩하는 단계를 더 포함하는, 이미지 데이터를 압축하는 방법.
  22. 제 20 항에 있어서,
    예측을 사용하여 상기 적어도 하나의 평활 컴포넌트를 코딩하는 단계를 더 포함하는, 이미지 데이터를 압축하는 방법.
  23. 전자 디바이스에서 이미지 데이터를 압축하기 위한 장치로서,
    복수의 컴포넌트들 각각의 픽셀 값들을 분석함으로써 픽셀 블록의 상기 복수의 컴포넌트들 각각의 컬러 변동을 결정하기 위한 수단;
    상기 복수의 컴포넌트들 각각의 상기 컬러 변동을 고 임계 및 저 임계 중 적어도 하나와 비교하기 위한 수단;
    상기 복수의 컴포넌트들 중 적어도 하나의 평활 컴포넌트에 평활의 분류를 할당하고 적어도 하나의 가변 컴포넌트에 가변의 분류를 할당하기 위한 수단으로서, 상기 적어도 하나의 평활 컴포넌트와 연관된 값은 상기 저 임계보다 작고 상기 적어도 하나의 가변 컴포넌트와 연관된 값은 상기 고 임계보다 큰, 상기 할당하기 위한 수단;
    상기 픽셀 블록이 혼합 블록인지 여부를 결정하기 위한 수단으로서, 상기 혼합 블록은 평활로서 분류된 적어도 하나의 컴포넌트를 갖고, 상기 혼합 블록에서의 모든 다른 컴포넌트는 평활 또는 가변 중 어느 하나로서 분류되는, 상기 픽셀 블록이 혼합 블록인지 여부를 결정하기 위한 수단;
    상기 컴포넌트를 평활 또는 가변으로서 분류하는 것에 적어도 부분적으로 기초하여 인코딩 기법을, 상기 혼합 블록에서의 상기 복수의 컴포넌트들 각각에 대해 결정하기 위한 수단; 및
    상기 컴포넌트에 대해 결정된 상기 인코딩 기법을 사용하여 상기 혼합 블록에서의 상기 복수의 컴포넌트들 각각을 인코딩하기 위한 수단을 포함하는, 이미지 데이터를 압축하기 위한 장치.
  24. 제 23 항에 있어서,
    상기 평활의 분류가 할당된 적어도 하나의 컴포넌트 및 상기 가변의 분류가 할당된 적어도 하나의 컴포넌트에 대해 상이한 압축 모드들을 구현하기 위한 수단을 더 포함하는, 이미지 데이터를 압축하기 위한 장치.
  25. 제 23 항에 있어서,
    상기 복수의 컴포넌트들 각각에 대한 절대 차이 값들의 합을 계산하기 위한 수단을 더 포함하는, 이미지 데이터를 압축하기 위한 장치.
  26. 제 23 항에 있어서,
    상기 픽셀 블록의 컬러 공간을 결정하기 위한 수단을 더 포함하는, 이미지 데이터를 압축하기 위한 장치.
  27. 제 23 항에 있어서,
    상기 가변의 분류가 할당된 컴포넌트들의 수에 기초하여 양자화 파라미터를 설정하기 위한 수단을 더 포함하는, 이미지 데이터를 압축하기 위한 장치.
  28. 명령들을 저장하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 명령들은 실행되는 경우, 적어도 하나의 물리적 컴퓨터 프로세서로 하여금 이미지 데이터를 압축하는 방법을 수행하게 하고,
    상기 방법은,
    복수의 컴포넌트들 각각의 픽셀 값들을 분석함으로써 픽셀 블록의 상기 복수의 컴포넌트들 각각의 컬러 변동을 결정하는 단계;
    상기 복수의 컴포넌트들 각각의 상기 컬러 변동을 고 임계 및 저 임계 중 적어도 하나와 비교하는 단계;
    상기 컬러 변동을 상기 고 임계 및 상기 저 임계 중 상기 적어도 하나와 비교하는 것에 기초하여 상기 복수의 컴포넌트들 중 적어도 일부에 평활 또는 가변 중 어느 하나의 분류를 할당하는 단계;
    상기 픽셀 블록이 혼합 블록인지 여부를 결정하는 단계로서, 상기 혼합 블록은 평활로서 분류된 적어도 하나의 컴포넌트를 갖고, 상기 혼합 블록에서의 모든 다른 컴포넌트는 평활 또는 가변 중 어느 하나로서 분류되는, 상기 픽셀 블록이 혼합 블록인지 여부를 결정하는 단계;
    상기 컴포넌트를 평활 또는 가변으로서 분류하는 것에 적어도 부분적으로 기초하여 인코딩 기법을, 상기 복수의 컴포넌트들 각각에 대해 결정하는 단계;
    상기 컴포넌트에 대해 결정된 상기 인코딩 기법을 사용하여 상기 복수의 컴포넌트들 각각을 인코딩하는 단계; 및
    상기 평활의 분류가 할당된 적어도 하나의 컴포넌트 및 상기 가변의 분류가 할당된 적어도 하나의 컴포넌트에 대해 상이한 압축 모드들을 구현하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  29. 제 28 항에 있어서,
    펄스 코드 변조를 사용하여 가변 분류가 할당된 상기 적어도 하나의 컴포넌트를 코딩하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  30. 제 28 항에 있어서,
    예측을 사용하여 평활 분류가 할당된 상기 적어도 하나의 컴포넌트를 코딩하는 단계를 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
KR1020157023914A 2013-02-04 2014-02-03 프레임 버퍼 압축을 위한 혼합 모드 KR102118234B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361760466P 2013-02-04 2013-02-04
US61/760,466 2013-02-04
US14/170,456 US9177393B2 (en) 2013-02-04 2014-01-31 Mixed mode for frame buffer compression
US14/170,456 2014-01-31
PCT/US2014/014488 WO2014121219A1 (en) 2013-02-04 2014-02-03 Mixed mode for frame buffer compression

Publications (2)

Publication Number Publication Date
KR20150114992A KR20150114992A (ko) 2015-10-13
KR102118234B1 true KR102118234B1 (ko) 2020-06-02

Family

ID=51259262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157023914A KR102118234B1 (ko) 2013-02-04 2014-02-03 프레임 버퍼 압축을 위한 혼합 모드

Country Status (6)

Country Link
US (1) US9177393B2 (ko)
EP (1) EP2951991B1 (ko)
JP (1) JP6297601B2 (ko)
KR (1) KR102118234B1 (ko)
CN (1) CN104969549B (ko)
WO (1) WO2014121219A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9077965B2 (en) * 2012-10-12 2015-07-07 Mediatek Inc. Method and apparatus for performing lossy image compression through source quantization and lossless compression kernel, and related method and apparatus for image decompression
EP2909809A4 (en) * 2012-10-22 2016-08-10 Nokia Technologies Oy CLASSIFICATION OF IMAGE SAMPLES
US9460527B2 (en) 2013-02-04 2016-10-04 Qualcomm Incorporated Pattern mode for frame buffer compression
US9177393B2 (en) * 2013-02-04 2015-11-03 Qualcomm Incorporated Mixed mode for frame buffer compression
US10244223B2 (en) 2014-01-10 2019-03-26 Ostendo Technologies, Inc. Methods for full parallax compressed light field 3D imaging systems
US9606769B2 (en) * 2014-04-05 2017-03-28 Qualcomm Incorporated System and method for adaptive compression mode selection for buffers in a portable computing device
KR102287402B1 (ko) 2015-03-23 2021-08-06 삼성전자주식회사 버스 인터페이스 장치, 이를 포함하는 반도체 집적회로 장치 및 상기 장치의 동작 방법
KR20170140187A (ko) 2015-04-23 2017-12-20 오스텐도 테크놀로지스 인코포레이티드 깊이 정보를 이용한 완전 시차 압축 광 필드 합성을 위한 방법
CN107431797B (zh) 2015-04-23 2019-10-11 奥斯坦多科技公司 用于全视差光场显示系统的方法和装置
KR102535825B1 (ko) * 2015-06-03 2023-05-23 삼성전자주식회사 시스템 온 칩 및 시스템 온 칩의 동작 방법
EP3107300A1 (en) * 2015-06-15 2016-12-21 Thomson Licensing Method and device for encoding both a high-dynamic range frame and an imposed low-dynamic range frame
CN106651971B (zh) * 2015-11-04 2020-06-05 上海兆芯集成电路有限公司 图形数据压缩装置与图形数据压缩方法
US10448030B2 (en) * 2015-11-16 2019-10-15 Ostendo Technologies, Inc. Content adaptive light field compression
FR3046711B1 (fr) * 2016-01-08 2018-02-16 Stmicroelectronics (Grenoble 2) Sas Compression et decompression de donnees video
US10148972B2 (en) * 2016-01-08 2018-12-04 Futurewei Technologies, Inc. JPEG image to compressed GPU texture transcoder
US10448024B2 (en) * 2016-01-11 2019-10-15 Qualcomm Incorporated System and methods for calculating distortion in display stream compression (DSC)
US10453431B2 (en) 2016-04-28 2019-10-22 Ostendo Technologies, Inc. Integrated near-far light field display systems
CN108347451B (zh) * 2017-01-23 2021-09-03 北京京东尚科信息技术有限公司 图片处理系统、方法和装置
US10484685B2 (en) 2017-04-18 2019-11-19 Qualcomm Incorporated System and method for intelligent data/frame compression in a system on a chip
US10609418B2 (en) 2017-04-18 2020-03-31 Qualcomm Incorporated System and method for intelligent data/frame compression in a system on a chip
US10810773B2 (en) * 2017-06-14 2020-10-20 Dell Products, L.P. Headset display control based upon a user's pupil state
EP3643061A1 (en) * 2017-07-05 2020-04-29 Huawei Technologies Co. Ltd. Devices and methods for video coding
CN109493775B (zh) * 2018-12-20 2022-06-14 深圳市锐明技术股份有限公司 显示故障的检测方法、装置及终端设备
US11302035B2 (en) * 2019-09-06 2022-04-12 Intel Corporation Processing images using hybrid infinite impulse response (TTR) and finite impulse response (FIR) convolution block
KR20210088304A (ko) 2020-01-06 2021-07-14 삼성전자주식회사 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법
KR20220015556A (ko) * 2020-07-31 2022-02-08 삼성전자주식회사 이미지 처리 장치 및 프레임 버퍼 컴프레서
US20230358561A1 (en) * 2022-05-05 2023-11-09 Here Global B.V. Method, apparatus, and computer program product for lane geometry generation based on graph estimation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040062445A1 (en) 2002-09-30 2004-04-01 Samsung Electronics Co., Ltd. Image coding method and apparatus using spatial predictive coding of chrominance and image decoding method and apparatus

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2575595B2 (ja) 1992-10-20 1997-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション イメージフレームの圧縮方法及びデータ処理システム
US5930387A (en) 1995-06-05 1999-07-27 Apple Computer, Inc. Method and apparatus for encoding color image data using dynamic color matching
JP3237582B2 (ja) * 1997-08-28 2001-12-10 富士ゼロックス株式会社 画像処理装置及び画像処理方法
EP1079635A1 (en) 1998-04-17 2001-02-28 Ultraclean Technology Research Institute, Co. Ltd Data compressing device and method, data expanding device and method, data compressing/expanding system and method, code book making method, and vector quantizing device and method
US6625323B2 (en) * 1998-09-25 2003-09-23 Eastman Kodak Company Method for compressing and decompressing digital having text
US6529634B1 (en) * 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
US7039241B1 (en) 2000-08-11 2006-05-02 Ati Technologies, Inc. Method and apparatus for compression and decompression of color data
US6807312B2 (en) 2001-07-13 2004-10-19 Sharp Laboratories Of America, Inc. Robust codebooks for vector quantization
US7085420B2 (en) * 2002-06-28 2006-08-01 Microsoft Corporation Text detection in continuous tone image segments
US8243340B2 (en) 2006-02-23 2012-08-14 Microsoft Corporation Pre-processing of image data for enhanced compression
US7668382B2 (en) * 2006-02-24 2010-02-23 Microsoft Corporation Block-based fast image compression
US8228998B2 (en) * 2006-10-10 2012-07-24 Nippon Telegraph And Telephone Corporation Intra prediction encoding control method and apparatus, program therefor, and storage medium which stores the program
KR100837410B1 (ko) * 2006-11-30 2008-06-12 삼성전자주식회사 주관적인 무손실 이미지 데이터 압축 방법 및 장치
US9313367B2 (en) 2007-04-30 2016-04-12 Hewlett-Packard Indigo B.V. Image compression
JP4510069B2 (ja) 2007-12-10 2010-07-21 シャープ株式会社 画像処理装置、画像表示装置、画像形成装置、画像処理方法、コンピュータプログラム及び記憶媒体
US8068667B2 (en) 2008-03-31 2011-11-29 Konica Minolta Systems Laboratory, Inc. Systems and methods for color data compression
US9232226B2 (en) 2008-08-19 2016-01-05 Marvell World Trade Ltd. Systems and methods for perceptually lossless video compression
US8351699B2 (en) * 2008-12-18 2013-01-08 Accusoft Corporation Methods and apparatus for auto image binarization
FI127117B (fi) 2009-06-17 2017-11-30 Gurulogic Microsystems Oy Kuvaprosessoija ja tietokoneohjelma
US9185424B2 (en) 2011-07-05 2015-11-10 Qualcomm Incorporated Image data compression
US9177393B2 (en) * 2013-02-04 2015-11-03 Qualcomm Incorporated Mixed mode for frame buffer compression
US9460527B2 (en) 2013-02-04 2016-10-04 Qualcomm Incorporated Pattern mode for frame buffer compression

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040062445A1 (en) 2002-09-30 2004-04-01 Samsung Electronics Co., Ltd. Image coding method and apparatus using spatial predictive coding of chrominance and image decoding method and apparatus

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Chaddha et al. "Text sementation in mixed-mode images", SIGNALS, SYSTEMS AND COMPUTERS, 1994.
Jianle chen et al. "Adaptive linear prediction for block-based lossy image coding" IMAGE PROCESSING(ICIP), 2009.

Also Published As

Publication number Publication date
WO2014121219A1 (en) 2014-08-07
KR20150114992A (ko) 2015-10-13
EP2951991A1 (en) 2015-12-09
JP6297601B2 (ja) 2018-03-20
CN104969549A (zh) 2015-10-07
JP2016509438A (ja) 2016-03-24
EP2951991B1 (en) 2016-08-24
US20140219558A1 (en) 2014-08-07
CN104969549B (zh) 2018-02-06
US9177393B2 (en) 2015-11-03

Similar Documents

Publication Publication Date Title
KR102118234B1 (ko) 프레임 버퍼 압축을 위한 혼합 모드
US9460527B2 (en) Pattern mode for frame buffer compression
US9924171B2 (en) Layer decomposition in hierarchical VDR coding
KR101641523B1 (ko) 다층 vdr 코딩에서의 지각적으로-양자화된 비디오 콘텐트의 인코딩
US20230156202A1 (en) Chroma block prediction method and apparatus
US10567803B2 (en) Midpoint prediction error diffusion for display stream compression
WO2019210822A1 (zh) 视频编解码方法、装置、系统及存储介质
TW201729591A (zh) 於顯示流壓縮(dsc)中用於降低切片邊界視覺假象之系統及方法
KR102661224B1 (ko) 화상의 블록을 인트라 예측하는 방법
US20220295071A1 (en) Video encoding method, video decoding method, and corresponding apparatus
US10958920B2 (en) Single-channel inverse mapping for image/video processing
Ström et al. PACKMAN: texture compression for mobile phones
Boitard et al. Motion-guided quantization for video tone mapping
WO2016195567A1 (en) Pixel pre-processing and encoding
US11823362B2 (en) Image providing apparatus and image providing method thereof, and display apparatus and display method thereof
WO2019023202A1 (en) REVERSE MONOCANAL MAPPING FOR IMAGE / VIDEO PROCESSING
WO2023184747A1 (zh) 视频编解码方法、装置、设备、系统及存储介质
CN110999300B (zh) 用于图像/视频处理的单通道逆映射
Le Dauphin et al. Prediction-guided quantization for video tone mapping

Legal Events

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