JP2014523703A - ビット割り当てに基づく画像データの選択的な可逆−不可逆圧縮 - Google Patents

ビット割り当てに基づく画像データの選択的な可逆−不可逆圧縮 Download PDF

Info

Publication number
JP2014523703A
JP2014523703A JP2014519013A JP2014519013A JP2014523703A JP 2014523703 A JP2014523703 A JP 2014523703A JP 2014519013 A JP2014519013 A JP 2014519013A JP 2014519013 A JP2014519013 A JP 2014519013A JP 2014523703 A JP2014523703 A JP 2014523703A
Authority
JP
Japan
Prior art keywords
block
compression
bits
bit allocation
lossless
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
JP2014519013A
Other languages
English (en)
Inventor
テン、チャ―ユアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014523703A publication Critical patent/JP2014523703A/ja
Ceased legal-status Critical Current

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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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
    • 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/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • 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/115Selection of the code volume for a coding unit prior to 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/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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/172Methods 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 picture, frame or field
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

データ圧縮を対象とする技法について説明する。いくつかの例では、これらの技法は、目標圧縮を達成するために、現在の画像データブロックのための利用可能なビット割り当てを示す、ビット割り当てベースの方式を実施することができる。これらの技法は、現在の画像データブロックの圧縮の後、ビット割り当てを連続的に更新して、次の画像データブロックのためのビット割り当てを決定することができる。

Description

本出願は、その内容全体が参照により本明細書に組み込まれる、2011年7月5日に出願された米国仮出願第61/504,510号の利益を主張する。
本開示は、画像データを対象とし、詳細には、画像データの圧縮を対象とする。
ビデオ復号器およびグラフィックス処理ユニット(GPU)など、様々なユニットが、画像フレームを作成する。たとえば、ビデオ復号器は、スムーズなビデオ再生のために連続的に表示される、一連のビデオピクチャを作成することができる。GPUは、ビデオゲームなど、実行アプリケーションのためのグラフィックスコンテンツを作成することができる。カメラプロセッサは、カメラによってキャプチャされた画像を作成することができる。画像フレームは、一般に、いくつかの例として、GPUからの作成されたグラフィックスコンテンツ、ビデオ復号器からのビデオピクチャ、およびカメラによってキャプチャされた画像など、任意の閲覧可能なコンテンツを指すことがある。
様々なユニットが、作成された画像フレームを、記憶のためにフレームバッファに出力することができる。たとえば、フレームバッファは、画像フレームのピクセルのためのピクセル値を記憶することができる。ディスプレイは、フレームバッファからピクセル値を受信し、ピクセル値に基づいて、画像フレームを閲覧可能なコンテンツとして表示することができる。代替例では、様々なユニットが、最初に画像フレームをフレームバッファに記憶することなしに、画像フレームをディスプレイに出力することができる。
一般に、本開示は、フレームバッファに記憶されるか、または送信される必要のあるデータの量が低減されるようにする、データ圧縮のための技法に関する。データ圧縮技法は、目標圧縮を達成するために、異なる圧縮モード間の選択、または異なる圧縮モードを使用して圧縮された圧縮データ間の選択を可能にする、バジェットベースの圧縮方式であり得る。たとえば、バジェットベースの圧縮方式は、目標圧縮を達成するために何ビットが利用可能であるかを示すビット割り当てを、連続的に更新することができる。現在のビット割り当てに基づいて、バジェットベースの圧縮方式は、データが所望のレベルまで圧縮される結果となる、特定の圧縮モード、または特定の圧縮モードに従って圧縮された圧縮データを選択することができる。
一例では、本開示は、圧縮ユニットを用いて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することを含む方法について説明する。この方法はまた、圧縮ユニットを用いて、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することをも含む。この方法は、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、圧縮ユニットを用いて、可逆圧縮ブロックのビットを出力することをさらに含む。
別の例では、本開示は、画像フレームを作成するように構成された画像プロセッサを含むシステムについて説明する。このシステムはまた、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することを行うように構成された圧縮ユニットをも含む。圧縮ユニットはまた、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、可逆圧縮ブロックのビットを出力することとを行うようにも構成される。
別の例では、本開示は、画像フレームを受信することと、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することとを行うように構成された圧縮ユニットについて説明する。圧縮ユニットはまた、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、可逆圧縮ブロックのビットを出力することとを行うようにも構成される。
別の例では、本開示は、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定するための手段を含むシステムについて説明する。このシステムはまた、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成するための手段と、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、可逆圧縮ブロックのビットを出力するための手段とを含む。
別の例では、本開示は、実行されたとき、1つまたは複数のプロセッサに、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することを行わせる命令を記憶した、コンピュータ可読記憶媒体について説明する。これらの命令はまた、1つまたは複数のプロセッサに、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、可逆圧縮ブロックのビットを出力することとを行わせる。
本開示の1つまたは複数の態様の詳細について、添付の図面および以下の説明において述べる。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
本開示で説明する1つまたは複数の例示的な技法を実装し得るシステムを示すブロック図。 本開示で説明する1つまたは複数の例示的な技法を実装し得るシステムを示すブロック図。 本開示で説明する1つまたは複数の例示的な技法を実装し得るシステムを示すブロック図。 本開示で説明する1つまたは複数の例示的な技法を実装し得るシステムを示すブロック図。 図1Aから図1Dの圧縮ユニットの一例をより詳細に示すブロック図。 1次元予測の一例を示す概念図。 1次元予測の一例を示す概念図。 2次元予測の一例を示す概念図。 ブロック固定長符号化(BFLC)を実行するための方法の一例を示す概念図。 可変長符号化(VLC)を実行するための方法の一例を示す概念図。 PCM符号器が機能する方法の一例を示す概念図。 符号化モード決定ユニットが、画像フレームがテストパターンであるかどうかを判定することができる、例示的な方法を示すフローチャート。 符号化モード決定ユニットがパターンデータベースを更新する方法を示す概念図。 パターンモード符号化のための例示的な技法を示すフローチャート。 パターンモード符号器の出力ビットストリームの一例を示す概念図。 図2の量子化器の一例をより詳細に示すブロック図。 例示的な表エントリを示す表形式の図。 可逆ビットストリームの例を示す概念図。 可逆ビットストリームの例を示す概念図。 可逆ビットストリームの例を示す概念図。 不可逆ビットストリームの例を示す概念図。 不可逆ビットストリームの例を示す概念図。 可逆圧縮ユニットの一例を示すブロック図。 不可逆圧縮ユニットの一例を示すブロック図。 圧縮ユニットの別の例を示すブロック図。 画像プロセッサが色値を圧縮ユニットへ送信する例示的な方法を示すブロック図。 画像プロセッサが色値を圧縮ユニットへ送信する例示的な方法を示すブロック図。 本開示で説明する態様による、画像フレームを圧縮する結果を示す概念図。 本開示で説明する態様による、画像フレームを圧縮する結果を示す概念図。 本開示で説明する技法による例示的な動作を示すフローチャート。 本開示で説明する技法による別の例示的な動作を示すフローチャート。
本開示は、作成された画像フレームについてのデータ(たとえば、ピクセル値)を受信し、データを圧縮する、圧縮ユニットについて説明する。データを圧縮することによって、本開示で説明する技法は、フレームバッファに記憶される必要があるデータの量を低減すること、および/または、送信される必要があるデータの量を低減することができる。言い換えれば、圧縮がない場合にフレームバッファに記憶される、かつ/または送信される必要があるデータの量は、圧縮がある場合にフレームバッファに記憶される、かつ/または送信される必要があるデータの量よりも大きくなり得る。
いくつかの例として、画像フレームは、ビデオ復号器によって作成されたビデオコンテンツのピクチャ、グラフィックス処理ユニット(GPU)によって作成されたグラフィックスコンテンツ、またはカメラによってキャプチャされ、カメラプロセッサによって作成された画像であり得る。一般に、画像フレームは、ウェブブラウザ、ゲーム、メディアプレーヤなど、閲覧可能なコンテンツを生成するアプリケーションを実行した結果を含む、ディスプレイ上に表示されるべきである画像コンテンツの任意の例であり得る。
画像フレームは、各々がディスプレイ上のピクセルに対応する、複数のピクセル値によって定義され得る。また、画像フレームを作成するユニット(たとえば、ビデオ復号器、GPU、およびカメラプロセッサ)は、一般的には画像プロセッサと呼ばれることがある。言い換えれば、画像プロセッサの例には、ビデオ復号器、GPU、カメラプロセッサ、および、表示のために画像フレームを作成する任意の他のユニットのうちの1つまたは複数がある。
圧縮ユニットは、ビデオ復号器、GPU、およびカメラプロセッサのうちのいずれか1つから、作成された画像フレームのピクセルのためのピクセル値を受信することができる。ピクセル値の各々は、複数のデータビットによって表され得る。たとえば、ピクセル値の一例は、赤色、緑色、および青色(RGB)成分のためのデータビットを含む色値であり得る。一例として、8データビットでピクセルの赤色成分を表すことができ、8データビットでピクセルの緑色成分を表すことができ、8データビットで青色成分を表すことができ、色値では合計24ビットである。
圧縮ユニットは、画像フレームにおけるピクセルの各々のためのピクセル値のデータビットを受信し、色値を表すためにより少ないビットが必要とされるように、圧縮を適用することができる。圧縮ユニットは、同様に、2つの例として、不透明度値および座標など、他のタイプのピクセル値を圧縮することができる。本開示で使用する「画像データ」という用語は、一般にピクセル値のビットを指すことがあり、「圧縮画像データ」という用語は、圧縮ユニットが画像データを圧縮した後の圧縮ユニットの出力を指すことがある。たとえば、圧縮画像データにおけるビット数は、画像データにおけるビット数未満であり得る。
画像データを圧縮するために、圧縮ユニットは、バジェットベースの圧縮方式を実施することができる。圧縮ユニットは、画像フレームの全体、画像フレームのスライス、またはラインごとに、バジェットベースの圧縮方式を実施することができる。より詳細に説明するように、バジェットベースの圧縮方式によれば、圧縮ユニットは、目標圧縮を達成するために、現在のピクセルのブロックのために利用可能であるビット量を示す、ビット割り当てを連続的に更新することができる。
いくつかの例では、圧縮ユニットは、可逆圧縮技法および不可逆圧縮技法を含む、様々な圧縮技法を利用して、画像データを圧縮することができる。圧縮ユニットは、現在のビット割り当てを満たす圧縮技法の出力を選択することができる。いくつかの他の例では、圧縮ユニットは、どのタイプの圧縮技法が画像データに適用されるべきであるかを決定し、決定された圧縮技法に基づいて、画像データを圧縮することができる。
より詳細に説明するように、いくつかの例では、圧縮ユニットは、不可逆圧縮よりも可逆圧縮のほうへバイアスされ得る。たとえば、ビット割り当てを満たす圧縮画像データにおける可逆圧縮結果と不可逆圧縮結果の両方を利用する場合、圧縮ユニットは、可逆圧縮を使用して、画像データを圧縮することができる。可逆圧縮は、圧縮解除を用いて、元の画像データの完全な復元を可能にすることができるのに対して、不可逆圧縮では、再構成された画像データが、圧縮解除後に元の画像データと等しくなり得ない。したがって、圧縮ユニットは、圧縮解除中に元の画像データを完全に復元することが可能であるように、不可逆圧縮よりも可逆圧縮を選ぶことができる。
さらに、不可逆圧縮を実行するとき、圧縮ユニットは、不可逆圧縮によって圧縮された圧縮画像データにおけるビット数が現在のビット割り当て未満になることが保証されるように、不可逆圧縮を実行することができる。このようにして、可逆圧縮画像データにおけるビット数が、現在のビット割り当てよりも大きい場合、圧縮ユニットは、不可逆圧縮を選択することができる。したがって、圧縮ユニットは、現在のビット割り当てを満たす圧縮ブロックを常に出力するように構成され得る。
図1Aから図1Dは、本開示で説明する1つまたは複数の例示的な技法を実装し得るシステムを示すブロック図である。たとえば、図1Aから図1Dは、システム10A〜10Dをそれぞれ示す。図1Aから図1Cでは、システム10A〜10Cは、デバイス12とパネルデバイス16とを含み、図1Dでは、システム10Dは、パネルデバイス16なしにデバイス12を含む。図1Aから図1Dにおける、デバイス12の例には、限定はしないが、メディアプレーヤなどのビデオデバイス、セットトップボックス、モバイル電話またはいわゆるスマートフォンなどのワイヤレスハンドセット、携帯情報端末(PDA)、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、デジタルカメラ、ビデオ会議ユニット、タブレットコンピューティングデバイス、パーソナルマルチメディアプレーヤなどがある。図1Aから図1Cにおける、パネルデバイス16の例には、限定はしないが、テレビ、モニタ、液晶ディスプレイ(LCD)、有機LED(OLED)、プラズマディスプレイ、上述のビデオデバイスのいずれかのディスプレイ画面、または一般に、画像を表示する任意のデバイスがある。
システム10A〜10Dにおいて、デバイス12は、画像プロセッサ14を含む。画像プロセッサ14は、完全に作成された画像フレームを生成する任意の構成要素であり得る。画像フレームは、閲覧可能なコンテンツを生成するアプリケーションを実行した結果を含む、表示されるべきである任意の閲覧可能なコンテンツであり得る。たとえば、画像プロセッサ14の例には、限定はしないが、ビデオ復号器、グラフィックス処理ユニット(GPU)、およびカメラプロセッサのうちの、いずれか1つまたは複数がある。画像フレームの例には、限定はしないが、ビデオ復号器によって作成されたビデオコンテンツのピクチャ、GPUによって作成されたグラフィックスコンテンツ、またはカメラによってキャプチャされ、カメラプロセッサによって作成された画像のうちの、いずれか1つまたは複数がある。
画像フレームは、複数のピクセルのためのピクセル値を含むと見なされ得る。たとえば、画像フレームは、ピクセル値の2次元アレイと見なされてもよく、そこで、各ピクセル値は、パネル26の1つのピクセルに対応し得る。たとえば、図1Aから図1Dにおけるパネル26は、画像フレームを表示することができ、パネル26は、画像フレームの対応するピクセル値に基づいて、そのピクセルを照明することができる。
画像フレームのピクセル値は、複数のデジタルビットによって定義され得る。たとえば、ピクセル値の一例は、色値である。色値は、一般に、赤色、緑色、および青色(RGB)成分によって定義されるが、他の色空間もまた使用され得る。いくつかの例では、画像プロセッサ14は、8ビットで赤色成分を、8ビットで緑色成分を、8ビットで青色成分を定義することができ、合計24ビットである。この例では、画像プロセッサ14によって作成された画像フレームのピクセルの各々のためのピクセル値の各々は、少なくとも24ビットを含み得る。
画像プロセッサ14は、同様に、デジタルビットで、不透明度値およびピクセル座標など、ピクセル値の他の例を表すことができる。例示および説明しやすさのために、本開示で説明する技法について、RGB成分によって表される色値に関して説明する。言い換えれば、本開示で説明する技法について、画像プロセッサ14がピクセル値を定義するために利用するビット数が24ビットである例で説明する。しかしながら、本開示の態様は、そのように限定されず、本明細書で説明する技法は、ピクセル値が24ビットよりも多いまたは少ないビットによって定義される例に拡大され得る。
図1Aから図1Dでは、画像プロセッサ14は、ピクセル値を圧縮ユニット20へ送信することができる。図1Aの例では、圧縮ユニット20は、パネルデバイス16内に常駐することができ、図1Bから図1Dの例では、圧縮ユニット20は、デバイス12内に常駐することができる。また、図1Bから図1Dの例では、圧縮ユニット20が画像プロセッサ14の外部にあるように示されるが、本開示の態様はそのように限定されない。他の例では、圧縮ユニット20は、画像プロセッサ14の一部であり得る。説明しやすいように、圧縮ユニット20について、画像プロセッサ14の外部にあるものとして説明する。
デバイス12が、画像プロセッサ14によって生成されたピクセル値をパネルデバイス16における圧縮ユニット20へ送信する、図1Aの例では、または、デバイス12が、圧縮ユニット20の出力をパネルデバイス16へ送信する、図1Bおよび図1Cの例では、デバイス12およびパネルデバイス16は、ワイヤレスに、またはワイヤードリンクで結合され得る。ワイヤードリンクの一例として、デバイス12およびパネルデバイス16は、高精細度マルチメディアインターフェース(HDMI(登録商標))ケーブルによって結合され得る。図1Bから図1Dの例では、画像プロセッサ14は、デバイス12の様々な構成要素を相互接続する、デバイス12のシステムバスを介して、ピクセル値を圧縮ユニット20へ送信することができる。画像プロセッサ14が圧縮ユニット20を含む例では、画像プロセッサ14は、デバイス12のシステムバスを必要とすることなしに、ピクセル値を圧縮ユニット20へ送信することができる。
図1Aから図1Cの例では、デバイス12は、(図1Aでは)画像プロセッサ14の出力、または(図1Bおよび図1Cでは)圧縮ユニット20の出力を、パネルデバイス16への送信に好適なフォーマットに変換するインターフェースを含んでもよく、パネルデバイス16は、デバイス12からの出力を受信するためのインターフェースを含む。たとえば、図1Aから図1Cは、画像フレームがあるデバイス(すなわち、デバイス12)において生成されるが、画像フレームが別のデバイス(すなわち、パネルデバイス16)において表示される例を示す。図1Aから図1Cのこれらの例では、デバイス12は、デバイス12がパネルデバイス16へ送信することを可能にするインターフェースを含み、パネルデバイス16は、パネル16がデバイス12から受信することを可能にするインターフェースを含む。図1Dの例では、デバイス12が、画像フレームの生成と画像フレームの提示の両方を行うデバイスであり得るので、パネルデバイス16がなくてもよい。
図1Aから図1Dの例のいずれかにおける圧縮ユニット20は、画像プロセッサ14によって生成されたピクセル値を受信し、圧縮を適用するように構成され得る。上記で説明したように、画像プロセッサ14によって生成されたピクセル値は、色を表す複数のビットであり得る。圧縮ユニット20は、色を表すためにより少ないビットが必要とされるように、圧縮を適用することができる。一例として、上記で説明したように、1つのピクセル値は、24ビットであってもよく、したがって、8個のピクセル値は、192ビットであり得る。この例では、50%圧縮が望まれる場合、圧縮ユニット20は、192ビットを受信し、圧縮を適用して、総ビット数を96ビットに低減する(すなわち、192ビット*50%は96ビットに等しいので、この例では、ビットを50%だけ圧縮する)。この例では、8個のピクセル値のための192ビットではなく、得られた96ビットが、8個のピクセル値を表すことができる。
明快のために、本開示で使用する「画像データ」という用語は、一般にピクセル値のビットを指すことがあり、「圧縮画像データ」という用語は、圧縮ユニット20が画像データを圧縮した後の圧縮ユニット20の出力を指すことがある。本開示の態様では、圧縮画像データにおけるビット数は、画像データにおけるビット数未満であり得る。たとえば、前の例に沿って、圧縮ユニット20は、192ビットの画像データ(たとえば、8個のピクセル値のための192ビット)を受信し、192ビットの画像データを、96ビットの圧縮画像データに圧縮して、50%圧縮を達成することができる。
図1A、図1B、および図1Dでは、圧縮ユニット20は、圧縮画像データをフレームバッファ22に出力することができる。フレームバッファ22は、圧縮画像データを記憶することができる。フレームバッファ22の一例は、ランダムアクセスメモリ(RAM)であるが、他のタイプのメモリが可能であり得る。フレームバッファ22における記憶より前に、画像データを圧縮することによって、本開示の技法は、フレームバッファ22のサイズの低減を可能にすることができる。
たとえば、画像プロセッサ14が、1280×800個のピクセル値、合計24,576,000ビット(すなわち、1280*800個のピクセル値*24ビット/ピクセル値は、24,576,000ビットに等しい)を生成したと仮定する。圧縮ユニット20がない場合、フレームバッファ22は、この例では、24,576,000ビットを記憶可能であることが必要であり得る。しかしながら、圧縮ユニット20が画像データを50%だけ圧縮した場合、フレームバッファ22は、12,288,000ビット(たとえば、圧縮画像データ)を記憶可能であることが必要であり、フレームバッファ22のサイズの50%の低減が可能であり得る。一般に、フレームバッファ22のコストは、そのサイズに比例し得る。したがって、圧縮ユニット20で画像データを圧縮することによって、フレームバッファ22のコストおよびサイズは、圧縮が適用されない例と比較して低減され得る。
フレームバッファ22は、あらゆる例において必要とされるとは限らない。図1Cに示すように、デバイス12もパネルデバイス16も、フレームバッファ22を含まない。この例では、デバイス12およびパネルデバイス16は、画像データをフレームバッファ22に一時的に記憶しなくてもよい。しかしながら、これらの例でも、帯域幅効率を増進するために画像データを圧縮することが有益であり得る。たとえば、前の例に沿って、圧縮ユニット20がない場合、デバイス12は、(画像プロセッサ14によって作成された画像フレームのための1280×800個のピクセル値を仮定すると)24,576,000ビットを送信する必要があり得る。圧縮ユニット20による、50%の圧縮がある場合、デバイス12は、12,288,000ビットを送信する必要があり得、それによって、デバイス12が、より良い帯域幅効率のために、1秒当たりより少ないビットを送信することが可能となる。
このようにして、図1Aのシステム10Aでは、デバイス12は、非圧縮画像データをパネルデバイス16へ送信することができるが、圧縮ユニット20は、フレームバッファ22のサイズの低減を可能にし、それによって、圧縮なしと比較して、フレームバッファ22によって使用される全体的なコストとスペースとを低減することができる。図1Bのシステム10Bでは、圧縮ユニット20が送信より前に画像データを圧縮するので、デバイス12は、より少ない帯域幅を消費することができ、パネルデバイス16におけるフレームバッファ22のサイズおよびコストが、圧縮なしと比較して低減され得る。圧縮ユニット20をもつ、図1Cのシステム10Cでは、帯域幅消費が、圧縮なしと比較して低減され得る。図1Dのシステム10Dでは、圧縮ユニット20は、圧縮なしと比較して、フレームバッファ22のサイズおよびコストの低減を可能にすることができる。
図1Aから図1Dの例では、圧縮解除ユニット24は、圧縮画像を圧縮解除して、元の画像データと実質的に同様である画像データを再構成することができる。たとえば、圧縮解除ユニット24の出力は、画像プロセッサ14が圧縮した画像フレームのピクセル値と実質的に同様であるピクセル値であり得る。図1A、図1B、および図1Dでは、圧縮解除ユニット24は、圧縮画像データをフレームバッファ22から受信することができ、図1Cでは、圧縮解除ユニット24は、圧縮画像データを、フレームバッファ22における事前の記憶なしに、デバイス12から受信することができる。
圧縮画像データを圧縮解除するために、圧縮解除ユニット24は、圧縮ユニット20が適用した圧縮の逆を適用することができる。より詳細に説明するように、いくつかの例では、圧縮ユニット20は、圧縮ユニット20が画像データを圧縮した方法を示すことができ、それによって、圧縮解除ユニット24が、圧縮画像データを圧縮解除するための方法を決定することが可能となる。また、より詳細に説明するように、圧縮ユニット20は、可逆圧縮または不可逆圧縮を適用することができる。可逆圧縮では、圧縮解除ユニット24は、得られた画像データが元の画像データにほぼ等しいように、圧縮画像データを圧縮解除することが可能であり得る。不可逆圧縮では、圧縮解除ユニット24は、得られた画像データが元の画像データに等しいように、圧縮画像データを圧縮解除することが可能であり得ない。しかしながら、不可逆圧縮でも、圧縮解除画像データは元の画像データと同様であり、潜在的に、実質的に同様であり得る。
パネル26は、任意のタイプのディスプレイであり得る。たとえば、パネル26の例には、限定はしないが、液晶ディスプレイ(LCD)、有機発光ダイオードディスプレイ(OLED)、陰極線管(CRT)ディスプレイ、プラズマディスプレイ、または別のタイプのディスプレイデバイスがある。パネル26は、パネル26が、画像プロセッサ14によって作成された画像フレームの閲覧可能なコンテンツを表示するために照明する、複数のピクセルを含み得る。たとえば、圧縮解除ユニット24によって出力されたピクセル値は、パネル26のピクセルが照明されるべきである方法を示すことができる。
図1Aから図1Dには示されていないが、いくつかの例では、圧縮解除ユニット24は、ディスプレイプロセッサに結合されてもよく、ディスプレイプロセッサは、結合されたパネル26であってもよい。これらの例では、ディスプレイプロセッサは、照明されるとき、ピクセルが所望の色を提示するように、パネル26のピクセルに適用されるべきである電圧を決定することができる。図1A、図1B、および図1Cの例では、パネル26を除く、パネルデバイス16の構成要素は、パネル26のためのドライバと見なされ得る。たとえば、パネル26が液晶モニタである場合、ドライバは、パネルデバイス16の照明される構成要素と、ディスプレイプロセッサとを含み、パネル26を除く、LCMドライバと呼ばれることがある。
画像データを圧縮するために、圧縮ユニット20は、画像データのブロックにおいてバジェットベースの圧縮方式を実施することができる。一例として、画像データの1つのブロックは、8個のピクセル値であり得るが、本開示の態様はそのように限定されない。圧縮ユニット20は、所望の圧縮を達成するために何ビットが利用可能であるかを示す、画像データのブロックを圧縮した後のビット割り当てを、連続的に更新することができる。
圧縮ユニット20は、以下でより詳細に説明するように、初期ビット割り当てを決定することができる。圧縮ユニット20は、次いで、初期ビット割り当てに基づいて、現在のブロックのための現在のビット割り当てを決定することができる。いくつかの例では、圧縮ユニット20は、次いで、不可逆圧縮および可逆圧縮を含む、様々な圧縮技法を実施することができる。たとえば、圧縮ユニット20は、不可逆圧縮技法を実施して、不可逆圧縮画像データブロックを生成することができ、可逆圧縮技法を実施して、可逆圧縮画像データブロックを生成することができる。不可逆圧縮技法および可逆圧縮技法の例については、以下でより詳細に説明する。しかしながら、圧縮ユニット20は、任意の知られている、またはこれから開発されることになる不可逆圧縮技法または可逆圧縮技法を利用することができ、本開示の態様は、以下で説明する特定の不可逆圧縮技法および可逆圧縮技法に限定されない。
圧縮ユニット20は、不可逆圧縮画像データブロックおよび可逆圧縮画像データブロックの各々におけるビット数を決定することができる。可逆圧縮画像データブロックにおけるビット数が、現在のビット割り当て以下である場合、(図1Aから図1Dの例において適宜に)圧縮ユニット20は、可逆圧縮画像データブロックのビットをフレームバッファ22に記憶することができ、または、デバイス12は、可逆圧縮画像データブロックのビットをパネルデバイス16へ送信することができる。そうでない場合、(図1Aから図1Dの例において適宜に)圧縮ユニット20は、不可逆圧縮画像データブロックのビットをフレームバッファ22に記憶することができ、または、デバイス12は、不可逆圧縮画像データブロックのビットをパネルデバイス16へ送信することができる。
いくつかの他の例では、圧縮より前に、圧縮ユニット20は、どのタイプの圧縮が利用されるべきであるかを決定することができる。たとえば、様々なタイプの可逆圧縮技法および不可逆圧縮技法があり得る。圧縮ユニット20は、圧縮画像データが現在のビット割り当て内であるように、どのタイプの可逆圧縮技法または不可逆圧縮技法を利用するかを決定することができる。圧縮ユニット20は、次いで、決定された圧縮技法に基づいて、画像データを圧縮することができる。
一般に、圧縮ユニット20は、記憶または送信のために、不可逆圧縮よりも可逆圧縮の結果を選択するほうへバイアスされ得る。可逆圧縮は、元の画像データを完全に再構成することが可能であり得るので、圧縮解除されるとき、画像品質を維持することができるが、不可逆圧縮は、元の画像データを完全に再構成することが可能であり得ないので、圧縮解除されるとき、画像品質をわずかに低下させ得る。むしろ、圧縮解除画像データは、不可逆圧縮技法を使用して圧縮されるとき、元の画像データと同様であり得るが、等しくなり得ない。
いくつかの例では、可逆圧縮画像データブロックが不可逆圧縮画像データブロックよりも画像品質を維持することができるので、可逆圧縮と不可逆圧縮の両方が、現在のビット割り当て内である圧縮画像データブロックを生じる場合、圧縮ユニット20は、記憶または送信のために、可逆圧縮画像データブロックを選択するほうへバイアスされ得る。さらに、後述のように、圧縮ユニット20は、不可逆圧縮画像ブロックにおけるビット数が現在のビット割り当て以下であることが保証されるような方法で、不可逆圧縮を実施することができる。したがって、不可逆圧縮画像ブロックが、不可逆圧縮画像ブロックにおけるビット数がビット割り当て以下であることが保証されるような方法で圧縮されるので、可逆圧縮画像ブロックがビット割り当てよりも大きい場合、圧縮ユニット20は、不可逆圧縮画像ブロックを出力することが可能であり得る。
本開示で説明する技法によれば、圧縮ユニット20は、次いで、現在のビット割り当ておよび1ブロック当たりの平均の余分のビット数に基づいて、次の画像データブロックのためのビット割り当てを決定することができる。1ブロック当たりの平均の余分のビット数については、以下でより詳細に説明する。圧縮ユニット20は、現在のバジェットを、次のブロックの決定されたバジェットにリセットすることができる。圧縮ユニット20は、最後のブロックの圧縮まで、上記のステップを繰り返すことができる。
上記で説明したように、いくつかの例では、圧縮ユニット20は、作成された画像フレームの画像データを圧縮することができる。「作成された画像フレーム」という用語は、表示のための準備ができている最終の作成された画像など、最終の作成された画像フレームを指す。「作成された画像フレーム」という用語は、作成される過程における画像フレームを区別するために使用される。たとえば、上記で説明したように、画像プロセッサ14は、ビデオ復号器であり得る。ビデオ復号器は、(たとえば、インター予測と呼ばれるプロセスでは)様々な他の参照フレームの部分、または(たとえば、イントラ予測と呼ばれるプロセスでは)画像フレーム自体内の部分から、画像フレームを構成することができる。圧縮ユニット20は、ビデオ復号器が構成した最終の作成された画像フレームにおいて、圧縮技法を実施することができ、必ずしも、画像フレームがビデオ復号器によって構成されている間にその画像フレームにおいて実施するとは限らない。
いくつかの例では、圧縮ユニット20は、真のリアルタイム圧縮を達成することができる。たとえば、圧縮ユニット20は、複数のパスを必要とするのではなく、単一のパスにおいて画像データを圧縮することが可能であり得る。言い換えれば、圧縮ユニット20が画像データブロックを圧縮するとすぐに、圧縮画像データブロックのビットは、直ちに送信または記憶され得る。このようにして、圧縮ユニット20および圧縮解除ユニット24の追加は、待ち時間を増加させ得る(潜在的に、待ち時間のわずかな増加にすぎない)が、フレームバッファ22のサイズおよびコストの低減、ならびに/または帯域幅消費の低減を達成するために、システム10A〜10Dへの他の変更は必要とされ得ない。
さらに、以下で説明する例からわかるように、圧縮ユニット20は、圧縮のために大きいメモリのブロックを必要としなくてもよい。たとえば、上記で説明したように、圧縮ユニット20がある場合、フレームバッファ22のサイズを低減することが可能であり得る。いくつかの例では、圧縮ユニット20は、圧縮技法が、圧縮ユニット20によって達成されるフレームバッファ22のサイズのいかなる低減も無効にしないように、記憶のために大量のメモリを必要としない圧縮技法を実施することができる。
また、以下で説明する例からわかるように、圧縮ユニット20は、圧縮の目的で追加の帯域幅を必要としなくてもよい。たとえば、上記で説明したように、圧縮ユニット20がある場合、帯域幅消費を低減することが可能であり得る。いくつかの例では、圧縮ユニット20は、圧縮技法が、圧縮ユニット20によって達成される帯域幅消費のいかなる低減も無効にしないように、時間的予測(たとえば、インター予測)が圧縮のために使用される場合など、追加の帯域幅を必要としない圧縮技法を実施することができる。たとえば、各画像フレームは、他の画像フレームを参照する必要なしに、個々に圧縮され得る。
図2は、図1Aから図1Dの圧縮ユニットの一例をより詳細に示すブロック図である。たとえば、図2は、圧縮ユニット20をより詳細に示す。圧縮ユニット20の例には、限定はしないが、デジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、様々な汎用または専用処理ハードウェアのいずれかがある。
圧縮ユニット20は、画像データにおいて、複数の異なる圧縮技法を並列に(たとえば、同時に)実施することができる。圧縮ユニット20は、現在のビット割り当てに基づいて、異なる圧縮技法のうちの1つに従って圧縮された圧縮画像データを選択することができる。このようにして、いくつかの例では、圧縮ユニット20は、どの特定の圧縮技法が利用されるべきであるかについて、いかなる事前決定を実行しなくてもよい。これらの例では、2つ以上の圧縮技法が、現在のビット割り当て内である圧縮画像データを生じる場合、圧縮ユニット20は、異なる圧縮技法によって生成された圧縮画像データの中から、最も少ないビット数をもつ圧縮画像データを選択することができる。
さらに、図18および図19は、圧縮ユニット20が、どのタイプの圧縮技法を適用するかを事前に決定することができる例を示す。たとえば、圧縮ユニット20は、圧縮より前に、どのタイプの圧縮技法を適用するかを決定することができ、決定されたタイプの圧縮技法に従って、圧縮することができる。簡潔さのために、図2の説明の一部は、図18および図19に示す例に明示的に言及する。したがって、図2について説明することにおいて、本開示は、圧縮ユニット20が異なる圧縮技法を並列に(すなわち、同時に)実施し、それらの圧縮技法のうちの1つからの圧縮画像データを選択する例と、圧縮ユニット20がどのタイプの圧縮を適用するかを決定し、決定されたタイプの圧縮に従って圧縮された圧縮画像データを選択することができる例とについて説明する。
図示のように、圧縮ユニット20は、初期ビット割り当てユニット29と、色値変換器32と、色値変換器56と、可逆圧縮ユニット35と、不可逆圧縮ユニット55と、遅延ユニット34と、バジェット制御器52と、マルチプレクサ(MUX)54とを含む。圧縮ユニット20は、あらゆる例においてこれらの構成要素のすべてを含むとは限らない。
たとえば、より詳細に説明するように、初期ビット割り当てユニット29は、画像データを圧縮するための初期ビット割り当てを決定することができる。いくつかの例では、圧縮ユニット20は、初期ビット割り当てユニット29を含まなくてもよく、代わりに、デバイス12のプロセッサなど、別の構成要素から、画像データを圧縮するための初期ビット割り当てを受信することができる。これらの例では、圧縮ユニット20は、初期ビット割り当てユニット29を含まなくてもよい。
別の例として、色値変換器32および色値変換器56は、画像データのある事前圧縮を行うことができる。そのような事前圧縮は、あらゆる例において必要であるとは限らず、圧縮ユニット20は、そのような例では、色値変換器32と色値変換器56とを含まなくてもよい。
別の例として、圧縮ユニット20は、可逆圧縮のみを実行するか、または不可逆圧縮のみを実行することができる。圧縮ユニット20が不可逆圧縮のみを実行するように構成される例では、圧縮ユニット20は、不可逆圧縮ユニット55を含まなくてもよい。圧縮ユニット20が不可逆圧縮のみを実行するように構成される例では、圧縮ユニットは、可逆圧縮ユニット35を含まなくてもよい。さらに別の例として、より詳細に説明するように、圧縮ユニット20は、図2の例に示す可逆圧縮ユニット35および不可逆圧縮ユニット55の構成要素のすべてを含むとは限らない。
したがって、図2は、圧縮ユニット20の一例を示す。一般に、圧縮ユニット20は、圧縮ユニット20が画像データのブロックのための現在のビット割り当てを満たすために、画像データを圧縮することを可能にする、任意の構成要素を含み得る。たとえば、本開示で説明する態様では、圧縮ユニット20は、任意の知られている、またはこれから開発されることになる技法を利用して、画像データを圧縮することができ、図2は、圧縮ユニット20が画像データを圧縮するために実施することができるいくつかの例示的な技法を示す。
初期ビット割り当てユニット29は、作成された画像フレームのための初期ビット割り当てを決定することができる。作成された画像フレームのための初期ビット割り当ては、圧縮ユニット20が目標圧縮を達成することを可能にする、初期ビット割り当てであり得る。目標圧縮は、ユーザプログラム可能であり、または事前プログラムされ得る。たとえば、初期ビット割り当てユニット29は、ユーザにより選択された、または事前プログラムされた目標圧縮値を、デバイス12の画像プロセッサ14、またはデバイス12の中央処理装置(CPU)などの別のプロセッサなど、別の構成要素から受信することができる。
目標圧縮は、圧縮画像データにおけるビット数と、画像データにおけるビット数との間の比を示す。一例として、ユーザは、50%の目標圧縮を選択することができ、50%の目標圧縮は、画像フレームのための圧縮画像データにおけるビット数が元の画像データにおけるビット数の半分であることを意味し得る。
50%未満の目標圧縮値を意味する、50%よりも多く画像データを圧縮することは、望ましくないことがあり、その理由は、画像フレームの画像品質の低下が大きすぎることがあるからである。たとえば、30%の目標圧縮値は、圧縮画像データにおけるビット数と元の画像データにおけるビット数との間の比が0.30であることを意味し得る。そのような圧縮量は、画像品質に悪影響を及ぼすことがある。いくつかの例では、目標圧縮値は、k/24であってもよく、ただし、8≦k<24である。しかしながら、12未満のkの値は、圧縮解除の後、得られた画像品質が望ましいとは言えないように、作成された画像フレームの画像品質を低下させ得る。さらに、50%よりも多く圧縮することは、望ましいものよりも画像品質を低下させ得るが、目標圧縮が50%未満、およびk/24未満であることも可能であり得、ただし、kは8に等しい。
圧縮ユニット20が、作成された画像フレームに対する目標圧縮を達成することができる、様々な方法があり得、初期ビット割り当てユニット29は、これらの様々な方法のいずれかのための初期ビット割り当てを決定することができる。たとえば、目標圧縮値が50%であると仮定する。一例として、画像フレームの画像データを50%だけ圧縮するために、初期ビット割り当てユニット29は、画像フレームのラインのための初期ビット割り当てを決定し、そのラインのための画像データが圧縮されるべきであった場合、そのラインのための圧縮画像データにおける総ビット数が、そのラインのための元の画像データにおける総ビット数の50%になるようにすることができる。この例では、画像フレームの各ラインが50%だけ圧縮された場合、画像フレームのための得られた圧縮画像データは、元の画像データの50%になる。
別の例として、作成された画像フレームの画像データを圧縮するために、初期ビット割り当てユニット29は、画像フレーム全体のための初期バジェットを決定することができる。たとえば、目標圧縮が、画像フレーム全体に対して50%であると仮定する。この例では、初期ビット割り当てユニット29は、画像フレーム全体のための画像データが圧縮されるとき、画像フレームのための圧縮画像データにおける総ビット数が、元の画像データにおける総ビット数の50%になるように、画像フレーム全体のための初期ビット割り当てを決定することができる。
さらに別の例として、作成された画像フレームのための画像データを圧縮するために、初期ビット割り当てユニット20は、作成された画像フレームのスライスのための初期バジェットを決定することができ、ただし、スライスは複数のラインを含み、画像フレームは1つまたは複数のスライスを含む。ここでも、目標圧縮が画像フレーム全体に対して50%である場合、初期ビット割り当てユニット29は、スライスのための画像データが圧縮されるとき、圧縮画像データがそのスライスのための画像データの50%であるように、スライスのための初期バジェットを決定することができる。この例では、画像フレームの各スライスが50%だけ圧縮された場合、画像フレームのための得られた圧縮画像データは、元の画像データの50%になる。
場合によっては、画像フレームのラインまたはスライスのための初期ビット割り当てと比較して、圧縮の目的で画像フレーム全体のための初期ビット割り当てを利用することが、より望ましくなり得る。たとえば、画像フレームのいくつかのラインまたはスライスは、より複雑でないラインまたはスライス(たとえば、高品質を維持しながら、50%よりも多く圧縮され得るラインまたはスライス)と比較して、比較的複雑(たとえば、高品質を維持しながら、50%だけ圧縮することが困難)であり得る。
画像フレーム全体のための初期ビット割り当てを決定することによって、圧縮20は、品質を維持するために複雑なラインまたはスライスのより小さい圧縮と、品質を維持しながらより多く圧縮され得る単純なラインまたはスライスのより大きい圧縮とを実行することができる。しかしながら、各ラインのための、または各スライスのための初期ビット割り当てを決定することは、各ラインまたはスライスについて同じ量だけ画像データを圧縮することを、圧縮ユニット20に行わせ得る。このことは、複雑なラインおよびスライスの画像品質の低下と、単純なラインまたはスライスに対して可能であるよりも小さい圧縮とを生じ得る。
したがって、本開示の技法については、初期ビット割り当てが、ラインまたはスライスのためではなく、画像フレーム全体のために決定される場合に関して、最初に説明する。圧縮の目的で、各ラインまたはスライスのための初期ビット割り当てを利用することについては、後に説明する。
作成された画像フレームのための初期ビット割り当ては、画像フレーム内のブロック数、および1ブロック当たりの平均の余分のビット数に基づいてもよい。1ブロック当たりの平均の余分のビット数は、圧縮ビットしきい値に基づいてもよく、圧縮ビットしきい値は、目標圧縮に基づいてもよい。このようにして、初期ビット割り当てユニット29は、目標圧縮に基づいて、画像フレーム全体のための初期ビット割り当てを決定することができる。「画像フレーム内のブロック数」、「1ブロック当たりの平均の余分のビット数」、および「圧縮ビットしきい値」については、すべて以下でより詳細に説明する。
画像フレームは、各々が複数のピクセルを含む複数のブロックに分割され得る。例示的な例として、画像フレームの1つのブロックは、8個のピクセルを含み得る(たとえば、1×8のピクセルのブロック)が、本開示の態様は、8個のピクセルを含む画像フレームのブロックに限定されず、画像フレームのブロックは、8個よりも多いまたは少ないピクセルを含んでもよく、2次元のピクセルのブロックでさえあってもよい。また、画像フレームのサイズが1280×800ピクセルであると仮定し、これはやはり例示的な値であり、限定的と見なされるべきではない。この例では、画像フレーム内のブロック数は、1280×800ピクセル÷1ブロック当たり8ピクセルに等しくなり得、これは128,000ブロックである。
たとえば、この例では、初期ビット割り当てユニット29は、8のブロックサイズで事前プログラムされてもよく、または、デバイス12の画像プロセッサ14またはある他のプロセッサなど、ある他の構成要素から、ブロックサイズ値を受信することができる。また、初期ビット割り当てユニット29は、画像フレームのサイズで事前プログラムされてもよく、または、画像フレームのサイズ(たとえば、1280×800ピクセル)を受信することもできる。初期ビット割り当てユニット29は、次いで、画像フレームサイズおよびブロックサイズに基づいて、画像フレームにおけるブロック数を決定することができる。
圧縮ビットしきい値は、ブロックを圧縮するために利用可能であることが保証されるビット数を定義することができ、各ブロックについて割り当てられたビット数を示すことができる。たとえば、圧縮ビットしきい値は、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す。言い換えれば、本開示で説明するバジェットベースの方式によれば、画像フレームの各ブロックが圧縮され得、少なくとも、圧縮ビットしきい値によって定義された、各ブロックについて利用可能である、保証されたビット数まで圧縮され得る。
圧縮ビットしきい値は、ユーザ定義または事前プログラムされ得る。たとえば、初期ビット割り当てユニット29は、デバイス12の画像プロセッサ14もしくは別のプロセッサから、圧縮ビットしきい値を受信することができ、または、圧縮ビットしきい値で事前プログラムされ得る。
圧縮ビットしきい値は、1ブロック当たりの平均の圧縮ビット数以下の値であり得る。1ブロック当たりの平均の圧縮ビット数は、目標圧縮を達成するための1ブロック当たりの平均ビット数を示し、各ブロックのためのバジェットを示すことができる。たとえば、目標圧縮が50%である場合、1ブロック当たりの平均ビット数は、ブロックが50%だけ圧縮される結果となる1ブロック当たりのビット数に等しくなり得る。
一例として、1ピクセル当たり24ビット(たとえば、赤色成分、緑色成分、および青色成分の各々について8ビット)があり、1ブロック当たり8ピクセルがあると仮定する。その場合、8ピクセルの総ビット数は、192ビット(すなわち、24×8)である。作成された画像フレーム全体に対する目標圧縮が50%である場合、1ブロック当たりの平均の圧縮ビット数は、96ビット(すなわち、192ビット×0.5)である。このようにして、画像フレーム全体が50%だけ圧縮される場合、平均して、各画像フレームブロックが50%だけ圧縮された。
1ブロック当たりの平均の圧縮ビット数は、各ブロックがどのくらい圧縮されなければならないかの程度ではないことを理解されたい。たとえば、圧縮ユニット20は、1ブロック当たりの平均の圧縮ビット数よりも多く、1ブロック当たりの平均の圧縮ビット数に等しく、または1ブロック当たりの平均の圧縮ビット数未満だけ、画像フレームの現在のブロックを圧縮することができる。圧縮ユニット20が、1ブロック当たりの平均の圧縮ビット数未満だけ、あるブロックを圧縮する場合では、平均して、圧縮ブロックにおけるビット数が1ブロック当たりの平均の圧縮ビット数に等しくなるように、圧縮ユニット20が1ブロック当たりの平均の圧縮ビット数よりも多く圧縮する、ある他のブロックがあることになる。
1ブロック当たりの平均の圧縮ビット数と、圧縮ビットしきい値との間の関係の一例として、1ブロック当たりの平均の圧縮ビット数が96ビットである場合、圧縮ビットしきい値は92ビットであり得、その理由は、92ビットが96ビット未満であるからである。この例では、圧縮ユニット20は、ブロックを圧縮するために利用可能な少なくとも92ビットを有することが保証される。言い換えれば、元の画像フレームブロックにおける任意の192ビットについて、92の圧縮ビットしきい値は、元の画像フレームブロックにおける192ビットが常に92ビットに圧縮され得ることを意味し、その理由は、92ビットが、元の画像データの192ビットを圧縮するために利用可能であることが保証されるからである。しかしながら、元の画像データが92ビットに圧縮されることは必要ではない。むしろ、圧縮ユニット20は、元の画像データを92ビット未満、92ビットに等しく、または92ビットよりも多く圧縮することができ、ただし、92ビットは、圧縮ビットしきい値である。
一般に、圧縮ビットしきい値は、1ブロック当たりの平均の圧縮ビット数から実質的に逸脱し得ない。たとえば、この例では、圧縮ビットしきい値は、1ピクセル当たり24ビットと1ブロック当たり8ピクセルとを仮定すると、90ビットから96ビットの範囲内であり得る。
圧縮ビットしきい値を低すぎるよう(たとえば、90ビット未満)に設定することは、画像品質の望ましくない低下を生じ得る。たとえば、上記で説明したように、圧縮ビットしきい値は、圧縮のためにブロックの各々のために利用可能であると保証されるビット数を示す。保証されたビット数が低すぎた場合、いくつかのブロックは、画像品質が低下するポイントまで圧縮され得る。したがって、1ブロック当たりの平均の圧縮ビット数に近い圧縮ビットしきい値は、適切な画像品質が維持されることを保証することができる。
1ブロック当たりの平均の圧縮ビット数−圧縮ビットしきい値は、1ブロック当たりの平均の余分のビット数を示すことができる。たとえば、圧縮ビットしきい値は、圧縮のために各ブロックについて利用可能であると保証されるビット数を示し、1ブロック当たりの平均の圧縮ビット数は、圧縮ブロックにおける平均ビット数を示すので、1ブロック当たりの平均の余分のビット数は、圧縮ユニット20が画像フレームブロックを圧縮するために使用することができる追加のビットの平均値を示す。上記の例では、1ブロック当たりの平均の余分のビット数は、4に等しい(すなわち、1ブロック当たりの平均の圧縮ビット数(96)−圧縮ビットしきい値(92)は、4に等しい)。
1ブロック当たりの平均の余分のビットは、最初に複雑なブロックと、最後により複雑でないブロックとを含む画像フレームについて、有用であり得る。たとえば、圧縮ユニット20が圧縮を開始し、画像フレームの左上のブロックから始めて、画像フレームの右下のブロックまで継続すると仮定する。この例では、1ブロック当たりの平均の余分のビットは、圧縮ユニット20がより複雑なブロックの圧縮のために、より複雑でないブロックからビットを借りることとして見なされ得る。初期ブロックが後のブロックよりも複雑でない例でも、1ブロック当たりの平均の余分のビットは、後のより複雑なブロックを圧縮するために使用され得る残りのビットであるとして、有益であり得る。
理解を助ける簡単な例として、画像フレームが2個の8ピクセルブロックを含み、ただし、各ピクセルが24ビットであり、1ブロック当たり合計192ビットである(すなわち、1ブロック当たり8ピクセル×1ピクセル当たり24ビットは、1ブロック当たり192ビットに等しい)と仮定する。また、目標圧縮が50%であり、1ブロック当たりの平均の圧縮ビット数が96であることを意味すると仮定し、圧縮ビットしきい値が92ビットであると仮定する。この例では、元の画像フレームは、386ビット(すなわち、1ブロック当たり192ビット×2ブロック)を含む。50%の圧縮の場合、得られた圧縮ビット数は、192ビット(すなわち、384×0.5)になるはずである。
また、第1のブロックが、第2のブロックと比較して、より複雑でない画像データであると仮定する。この例では、圧縮ユニット20は、第1のブロックの192ビットを90ビットに圧縮することが可能であり得る。したがって、圧縮ユニット20が第2のブロックを圧縮するために残された102ビット(すなわち、192ビット−90ビットは、102ビットに等しい)がある。この例では、圧縮ユニット20は、50%の全体的な圧縮を達成するために第2のブロックを圧縮するために、第1のブロックを圧縮するために必要とされたビット数から6ビットを借りると見なされ得、このことは、圧縮ユニット20に、第2のブロックのための102ビットのビット割り当てを与える。
言い換えれば、前の例では、圧縮ユニット20は、第1のブロックと第2のブロックの両方を96ビットに圧縮していてもよい。しかしながら、第1のブロックのより低い複雑さのために、圧縮ユニット20は、圧縮のために90ビットのみを利用した。このことは、圧縮ユニット20が、圧縮ユニット20が第1のブロックを圧縮するために使用し得たであろう6ビットを、第2のブロックを圧縮するために利用することを可能にした。したがって、圧縮ユニット20は、96ビットではなく、102ビットを利用して、第2のブロックの画像データの192ビットを圧縮することができる。
前述の例は、初期ビット割り当てユニット29が1ブロック当たりの平均の余分のビット数を決定することができる、1つの方法について説明している。ただし、本開示の態様はそのように限定されない。他の例では、1ブロック当たりの平均の余分のビット数を決定するのではなく、初期ビット割り当てユニット29は、1ブロック当たりの平均の余分のビット数の値を受信することができ、または、初期ビット割り当てユニット29は、1ブロック当たりの平均の余分のビット数の値で事前プログラムされ得る。したがって、初期ビット割り当てユニット29が、1ブロック当たりの平均の余分のビット数に基づいて初期ビット割り当てを決定することは可能であり得るが、初期ビット割り当てユニット29が1ブロック当たりの平均の余分のビット数を決定することは、あらゆる例において必要であるとは限らない。むしろ、初期ビット割り当て29は、1ブロック当たりの平均の余分のビット数の値を受信することができ、または、1ブロック当たりの平均の余分のビット数の値で事前プログラムされ得る。代替例では、初期ビット割り当てユニット29は、上記で説明した方法で、1ブロック当たりの平均の余分のビット数を決定することができる。
初期ビット割り当てを決定するために、初期ビット割り当てユニット29は、1ブロック当たりの平均の余分のビット数に、総ブロック数を乗じることができる。たとえば、画像フレームにおける総ブロック数が128,000(たとえば、1280×800ピクセル÷1ブロック当たり8ピクセル)である場合、初期ビット割り当ては、512,000(たとえば、128,000×4)である。
いくつかの例では、「1ブロック当たりの平均の余分のビット数」、「1ブロック当たりの平均の圧縮ビット数」、「圧縮ビットしきい値」、および「初期ビット割り当て」のうちの1つまたは複数はすべて、すべての画像フレームについてあらかじめ決定され得ることを理解されたい。たとえば、デバイス12の画像プロセッサ14またはある他のプロセッサは、これらの値の一部または全部をあらかじめ決定することができ、初期ビット割り当てユニット29は、デバイス12の画像プロセッサ14またはある他のプロセッサの一部であり得る。別の例では、これらの値の一部または全部が、デバイス12のメモリに記憶されてもよく、圧縮ユニット20は、これらの値のうちの1つまたは複数をデバイス12のメモリから取り出すことが可能であり得る。
より詳細に説明するように、圧縮ユニット20は、初期ビット割り当ておよび圧縮ビットしきい値に基づいて、画像フレームの第1のブロックのための現在のビット割り当てを決定することができる。画像フレームの後続のブロックのために、圧縮ユニット20は、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに基づいて、現在のビット割り当てを決定することができる。
図2に示した例では、バジェット制御器52は、初期ビット割り当てを受信し、初期ビット割り当てから、第1の画像フレームブロックのための現在のビット割り当てを決定することができる。第1のブロック(たとえば、ブロック0)のための現在のビット割り当ては、初期ビット割り当て+圧縮ビットしきい値であり得る。上記の例では、初期ビット割り当ては、512,000+92であり、512,092ビットに等しい。
可逆圧縮ユニット35および不可逆圧縮ユニット55の各々は、以下でより詳細に説明するように、それぞれ可逆圧縮技法および不可逆圧縮技法を利用して、第1のブロックを圧縮することができる。たとえば、可逆圧縮ユニット35は、可逆圧縮技法を使用して圧縮された元のブロックである、可逆圧縮画像フレームブロックを生成することができ、不可逆圧縮ユニット55は、不可逆圧縮技法を使用して圧縮された元のブロックである、不可逆圧縮画像フレームブロックを生成することができる。
可逆圧縮ユニット35は、可逆圧縮画像フレームブロックにおけるビット数を示す値を、バジェット制御器52に出力することができる。同様に、不可逆圧縮ユニット55は、不可逆圧縮画像フレームブロックにおけるビット数を示す値を、バジェット制御器52に出力することができる。バジェット制御器52は、可逆圧縮画像フレームブロックおよび不可逆圧縮画像フレームブロックのうちのどちらが現在のビット割り当て内であるかを判定し、MUX54が出力するために、現在のバジェット内である圧縮画像フレームブロックを選択することができる。たとえば、バジェット制御器52は、選択された圧縮画像フレームブロックを出力するようにMUX54に指示する指示を、MUX54に出力することができる。MUX54は、選択された圧縮画像フレームブロックを、図1Aから図1Dに関して上記で説明したように、フレームバッファ22または圧縮解除ユニット24に出力することができる。
場合によっては、可逆圧縮画像フレームブロックのビット数と、不可逆圧縮画像フレームブロックのビット数の両方が、現在のビット割り当て内であることが可能であり得る。いくつかの例では、そのような場合、バジェット制御器52は、不可逆圧縮画像フレームブロックではなく、可逆圧縮画像フレームブロックを出力するように、MUX54に指示することができる。一般に、圧縮解除ユニット24が可逆圧縮画像フレームブロックを圧縮解除するとき、得られた圧縮解除ビットは、画像フレームブロックの元のビットに等しくなり得る。しかしながら、圧縮解除ユニット24が不可逆圧縮画像フレームブロックを圧縮解除するとき、得られた圧縮解除ビットは、画像フレームブロックの元のビットに等しくなり得ない。
不可逆圧縮画像フレームブロックの圧縮解除ビットは、画像フレームブロックの元のビットに等しくないので、不可逆圧縮画像フレームブロックの圧縮解除ビットが、パネル26のピクセルを照明するために使用されるとき、画像品質のある程度の低下があり得る。画像品質の低下を回避するために、バジェット制御器52は、両方の出力が現在のビット割り当て内であるとき、不可逆圧縮ユニット55よりも可逆圧縮ユニット35の出力を選択するほうへバイアスされ得る。
たとえば、前の例では、バジェット制御器52は、画像フレームブロック0のための現在のビット割り当てが512,092ビットであると決定することができる。可逆圧縮ユニット35がブロック0の192ビットを108ビットに圧縮し、不可逆圧縮ユニット55がブロック0の192ビットを98ビットに圧縮すると仮定する。この例では、108ビットと98ビットの両方が、512,092ビット未満である。したがって、可逆圧縮ユニット35と不可逆圧縮ユニット55の両方の圧縮画像フレームブロック出力が、512,092の現在のビット割り当て内である。この例では、バジェット制御器52は、可逆圧縮へのバイアスにより、可逆圧縮ユニット35の出力を選択し、可逆圧縮画像フレームブロックを出力することを、MUX54に行わせることができる。
しかしながら、不可逆圧縮画像フレームブロックのビット数が現在のビット割り当て未満であり、可逆圧縮画像フレームブロックのビット数が現在のビット割り当てよりも大きい場合、バジェット制御器52は、不可逆圧縮ユニット55の出力を選択し、不可逆圧縮画像フレームブロックを出力するようにMUX54に指示することができる。いくつかの例では、不可逆圧縮ユニット55は、不可逆圧縮画像フレームブロックにおけるビット数が現在のビット割り当て以下であることが保証されるように、不可逆圧縮を実施することができる。このようにして、可逆圧縮および不可逆圧縮がともに現在のビット割り当てを満たす場合、MUX54は、可逆圧縮画像フレームブロックを選択することができる。しかしながら、可逆圧縮画像フレームブロックが現在のビット割り当てを満たさない場合、不可逆圧縮画像フレームブロックが、現在のビット割り当てを満たすことが保証される。
バジェット制御器52は、次いで、次の画像フレームブロック(たとえば、ブロック1)のための現在のビット割り当てを決定することができる。次のブロックのための現在のビット割り当てを決定するために、バジェット制御器52は、以前のブロックのバジェットから、以前の圧縮ブロック(たとえば、ブロック0)のビット数を引くことができる。たとえば、以前のブロック(たとえば、ブロック0)のためのビット割り当ては、512,092ビットであり、バジェット制御器52は、108ビット(たとえば、以前の圧縮ブロックのビット数)を利用した、可逆圧縮ユニット35によって出力された出力可逆圧縮画像フレームブロックを選択した。
この例では、バジェット制御器52は、512,092ビットから108ビットを引くことができ、これは511,984ビットに等しい。バジェット制御器52は、得られた値(たとえば、511,984ビット)を、圧縮ビットしきい値(たとえば、92)と合計することができる。この合計から得られた値は、現在のブロックのための現在のビット割り当てであり得る。たとえば、この例では、画像フレームブロック1のための現在のビット割り当ては、512,076ビット(すなわち、511,984+92)である。可逆圧縮ユニット35および不可逆圧縮ユニット55は、ブロック1を圧縮することができ、バジェット制御器52は、上記のステップを繰り返して、ブロック1のために、可逆圧縮画像フレームブロックを出力するか、不可逆圧縮画像フレームブロックを出力するかを判定し、画像フレーム内のすべての後続のブロックについて同様のステップを繰り返すことができる。
上記の例では、現在のブロックの圧縮より前に、そのブロックのための現在のビット割り当ては、現在のビット割り当て+=圧縮ビットしきい値と見なされ得、現在のブロックの圧縮の後、現在のビット割り当ては、現在のビット割り当て−=現在のブロックを圧縮することに費やされたビットと見なされ得る。言い換えれば、現在のビット割り当てのための式は、現在のビット割り当て+=圧縮ビットしきい値−以前のブロックの圧縮ビットとして表され得る。このようにして、現在のビット割り当てが0以上である限り、圧縮ユニット20は、圧縮後の画像フレームのサイズがバジェット内であること(たとえば、50%の目標圧縮を仮定すると、元の50%)を保証することができる。
いくつかの例では、予測ユニット36および予測ユニット60に関してより詳細に説明するように、ライン内の以前のピクセルの値から、ラインにおけるピクセルの値を予測することが可能であり得る。しかしながら、ラインにおける第1のブロックでは、それから値を予測するための、以前のピクセルがあり得ない。これに対処するために、いくつかの例では、バジェット制御器52は、ライン内の第1のブロックのための初期ビット割り当ておよび/または圧縮ビットしきい値をわずかに変更することができる。
たとえば、ラインの各々内の第1のブロックのための、圧縮ビットしきい値が92ビットである場合、バジェット制御器52は、これらのブロックのための、圧縮ビットしきい値を、94ビットになるように割り当てることができる。圧縮ビットしきい値が、以前のブロックのための以前のビット割り当てに加算されるので、ラインの各々内の第1のブロックのための圧縮ビットしきい値の増加は、それらの第1のブロックのためのわずかにより大きいビット割り当てを生じる。バジェット制御器52が、ライン内の他のブロックと比較して、ラインの第1のブロックにわずかにより高いビット割り当てを割り当てることが可能であり得るように、バジェット制御器52は、初期ビット割り当てを同様に変更することができる。
各ライン内の第1のブロックのためのビット割り当てを変更することは、あらゆる例において必要であるとは限らない。たとえば、いくつかの例では、圧縮ユニット20は、予測ユニット36および予測ユニット60によって実行される予測など、予測を実行しなくてもよく、これらの例では、バジェット制御器52は、各ラインの第1のブロックのためのビット割り当てを変更しなくてもよい。さらに、圧縮ユニット20が予測を実行する例でも、バジェット制御器52は、各ライン内の第1のブロックのためのビット割り当てを変更しなくてもよい。
前の例では、バジェット制御器52は、各ブロックのための現在のビット割り当てを決定するために、画像フレーム全体のための初期ビット割り当てを利用した。以下では、バジェット制御器52が、各ブロックのための現在のビット割り当てを決定するために、各ラインのための、または各スライスのための初期ビット割り当てを利用することができる例について説明する。
たとえば、前の例では、初期ビット割り当ては、1ブロック当たりの平均の余分のビット数×画像フレームにおける総ブロック数に等しくなった。ラインのための初期ビット割り当ては、1ブロック当たりの平均の余分のビット数×ラインにおける総ブロック数であり得る。スライスのための初期ビット割り当ては、1ブロック当たりの平均の余分のビット数×スライスにおける総ブロック数であり得る。
たとえば、画像フレームのサイズが1280×800であると仮定する。したがって、ラインにおいて1280ピクセルがある。ブロックサイズが8ピクセルである場合、ラインにおいて160ブロック(すなわち、1280÷8)がある。この例では、ラインのための初期ビット割り当ては、160ブロック×4(たとえば、1ブロック当たりの平均の余分のビット数)であり、これは640ビットである。
スライスでは、そのスライスにおける総ブロック数は、スライス内のライン数に基づく。たとえば、スライスが16ラインを含み、これは、この例では、スライスのサイズが1280×16であることを意味すると仮定する。ブロックサイズが8ピクセルである場合、1スライス当たり2560ブロックがあり、スライスのための初期ビット割り当ては、1スライス当たり2560ブロック×4(たとえば、1スライス当たりの平均の余分のビット数)であり、これは10,240ビットである。
初期ビット割り当てがラインのためのものである例では、バジェット制御器52は、第1のブロックのための現在のビット割り当てを、ラインのための初期ビット割り当て+圧縮ビットしきい値になるように決定することができる。初期ビット割り当てがスライスのためのものである例では、バジェット制御器52は、第1のブロックのための現在のビット割り当てを、スライスのための初期ビット割り当て+圧縮ビットしきい値になるように決定することができる。
可逆圧縮ユニット35および不可逆圧縮ユニット55は、上記で説明したように、ラインまたはスライスの第1のブロックを圧縮することができ、バジェット制御器52は、MUX54による出力のために、得られた可逆圧縮ブロックまたは不可逆圧縮ブロックのいずれかを選択することができる。次いで、バジェット制御器52は、上記で説明したように、第2のブロックのための現在のビット割り当てを決定することができる(たとえば、現在のビットバットは、以前のビット割り当て+圧縮ビットしきい値−以前の圧縮ブロックのビット数に等しい)。しかしながら、バジェット制御器52は、初期ビット割り当てがラインのためのものである例では、各ラインのためのビット割り当てをリセットし、初期ビット割り当てがスライスのためのものである例では、各スライスのためのビット割り当てをリセットすることができる。
図示のように、圧縮ユニット20は、色値変換器32を含み得る。色値変換器32は、画像フレームのブロックを受信し、ある可逆的な事前圧縮を行うことができる。たとえば、色値変換器32は、色値を異なる色空間に変換することができる。上記で説明したように、画像プロセッサ14は、色値をRGB成分として定義することができ、ただし、各成分は8ビットである。色値変換器32は、ピクセルのための色値を、RGB色空間から、ルーマおよびクロマ色空間に変換することができる。
一例として、色値変換器32は、RGB値をYCoCg値に変換することができ、ただし、Yはルーマ成分であり、CoおよびCgはクロマ成分である。たとえば、「Y」はルミナンスまたは強度を表し、「Co」はオレンジクロミナンスを表し、「Cg」は緑クロミナンスを表す。RGB値をYCoCg値に変換することは、一例であり、「Cb」が青クロミナンスを表し、「Cr」が赤クロミナンスを表すYCbCr、「H」が色相を表し、「S」が彩度を表し、「V」が値または強度を表すHSV、または任意の他の色空間など、他の色空間に変換することが可能であり得る。
RGBからYCoCgへの色空間変換では、色値変換器32は、以下の行列演算を実施することができる。
Figure 2014523703
この例では、色値変換器32は、「+」と「シフト」とを利用して、上記の行列演算を実施することができる。このことは、色値変換器32が、比較的迅速に、乗算または除算の必要なしに、行列演算を実行することを可能にすることができる。
ピクセル値をRGB色空間からYCoCg色空間に変換することによって、色値変換器32は、いくつかの例では、色値を表すために必要とされるビット数を低減することができる。たとえば、RGB色空間では、各色値は24ビットであり得る。YCoCg色空間では、色値変換器32は、Y成分のために8ビット、ならびに、Co成分およびCg成分のために9ビット、合計17ビットを利用することができる。しかしながら、色値変換器32は、あらゆる例において、24ビットを17ビットに低減するとは限らない。さらに、色空間の変換は、圧縮解除ユニット24が元のRGB色値を再構成することを可能にする、可逆圧縮と見なされ得る。
たとえば、圧縮解除ユニット24は、YCoCg値をRGB値に変換するために、以下の行列演算を実施することができる。
Figure 2014523703
色値変換器32は、圧縮ユニット20のあらゆる例において必要であるとは限らない。たとえば、色値変換器32によって行われる事前圧縮は、あらゆる例において必要であるとは限らない。図示のように、色値変換器32は、得られた色値を可逆圧縮ユニット35および不可逆圧縮ユニット55に出力する。圧縮ユニット20が色値変換器32を含まない例では、可逆圧縮ユニット35および不可逆圧縮ユニット55は、色空間変換なしに、色値を受信することができる。
可逆圧縮ユニット35は、予測ユニット36を含み得る。色値変換器32と同様に、予測ユニット36は、ある追加の事前圧縮を行うことができる。予測ユニット36によって行われる事前圧縮は、あらゆる例において必要であるとは限らず、圧縮ユニット20は、あらゆる例において予測ユニット36を含むとは限らない。例示および説明の目的で、予測ユニット36は、色値変換器32によって事前圧縮された、画像フレームの事前圧縮ブロックを受信するものとして例示される。他の例では、予測ユニット36は、画像フレームの元のブロックを受信することができる。
予測ユニット36は、画像フレームのブロックにおいて、1次元予測(1D予測)および/または2次元予測(2D予測)を実行するように構成され得る。1D予測および2D予測において、予測ユニット36は、ブロック内のピクセルの色値を予測し、予測色値のための予測誤差値を決定することができる。予測誤差値は、実際の色値と予測色値との間の差である。いくつかの例では、予測色値と予測誤差値とを表すために必要とされるビットは、YCoCg色空間またはRGB色空間のいずれかにおける色値を表すために必要とされるビット未満であり得る。
1D予測の2つの例、すなわち、プログレッシブ予測(progressive prediction)およびインターリーブ予測(interleave prediction)があり得る。図3Aおよび図3Bは、1次元予測の例を示す概念図である。たとえば、図3Aは、プログレッシブ予測を示し、図3Bは、インターリーブ予測を示す。プログレッシブ予測では、図3Aに示すように、ピクセルのための色値が、その以前のピクセルの色値から予測される。インターリーブ予測では、図3Bに示すように、ピクセルのための色値が、直前のピクセルの以前のピクセルの色値から予測される。
たとえば、図3Aおよび図3Bは、ピクセルXi,jを含むブロック70を示し、ただし、iおよびjは、ピクセルの、それぞれx座標およびy座標である。たとえば、ブロック70は、ピクセルX0,0からXn-1,0のための色値を含み、ただし、nは8に等しい。プログレッシブ予測では、図3Aに示すように、ピクセルXi,0がXi-1,0から予測される。インターリーブ予測では、図3Bに示すように、ピクセルXi,0がXi-2,0から予測される。
プログレッシブ予測の場合、ブロック70における第1のピクセルの色値を予測するために、予測ユニット36は、以前のブロックにおける最後のピクセルの色値を必要とし得る。たとえば、図3Aでは、X0,0のためのピクセル値が、X’-1,0のための色値から予測され、ただし、X’は、その予測色値および予測誤差値から再構成される、最後のピクセルの色値を表す。たとえば、予測ユニット30は、ピクセルX-1,0の色値をあらかじめ予測していてもよい。この例では、X’-1,0は、X-1,0を予測するために使用された色値と、予測誤差値とに基づく、X-1,0の再構成されたバージョンを表す。
インターリーブ予測の場合、ブロック70における第1のピクセルの色値と第2のピクセルの色値とを予測するために、予測ユニット36は、以前のブロックにおける最後のピクセルの色値と、最後から2番目のピクセルの色値を必要とし得る。たとえば、図3Bでは、X0,0のためのピクセル値が、X’-2,0のための色値から予測され、X1,0は、X’-1,0のための色値から予測される。
予測ユニット36に、以前のブロックのための色値を与えるために、圧縮ユニット20は、遅延ユニット34を含み得る。図示のように、遅延ユニット34は、ブロック内のピクセルの元の色値を受信する。遅延ユニット34は、次いで、ピクセルの色値を色値変換器56に出力することができる。この例では、色値変換器56は、色値変換器32が次のブロックを受信するのとほぼ同時に、遅延ユニット34から出力を受信することができる。このようにして、遅延ユニット34は、色値変換器32が現在のブロックの後のブロックの色値を受信するまで、現在のブロックの色値を出力することを遅延させることができる。
遅延ユニット34は、任意の知られている技法、またはこれから開発されることになる技法を実施して、色値変換器32が次のブロックのための色値を受信するとき、色値変換器56が現在のブロックのための色値を受信する時間を遅延させることができる。さらに、いくつかの例では、遅延ユニット34は、必要でなくてもよい。
たとえば、いくつかの例では、画像プロセッサ14は、フレームバッファとは異なるバッファに、ブロックごとに色値を出力することができる。たとえば、バッファはピンポンバッファであり得る。ピンポンバッファは、現在のブロックのための色値と、以前のブロックのための色値とを、一時的に記憶することができる。圧縮ユニット20は、現在のブロックのための色値と、以前のブロックのための色値とを、ピンポンバッファから受信することができる。たとえば、色値変換器32は、現在のブロックのための色値をピンポンバッファから受信することができ、色値変換器56は、以前のブロックのための色値をピンポンバッファから受信することができる。
色値変換器56は、色値変換器32と実質的に同様であってもよく、実質的に同様の機能を実行することができる。たとえば、色値変換器56は、色値変換器32に関して上記で説明したものと同様の方法で、以前のブロックの色値を、RGB色空間からYCoCg色空間に変換することができる。
1D予測を実行するとき、予測ユニット36は、プログレッシブ予測を実行するか、インターリーブ予測を実行するかを判定することができる。たとえば、以下の式が真である場合、予測ユニット36は、インターリーブ予測ではなく、プログレッシブ予測を実行することができる。偽である場合、予測ユニット36は、プログレッシブ予測ではなく、インターリーブ予測を実行することができる。
Figure 2014523703
ただし、i>0であるとき、X’’i-1,0はXi-1,0に等しく、i=0であるとき、X’’i-1,0はX’i-1,0に等しく、また、i>0であるとき、X’’i-2,0はXi-2に等しく、i=0であるとき、X’’i-2,0はX’i-2,0に等しい。
1D予測では、ピクセルXi,jのための予測色値は、Pi,jによって表される。プログレッシブ予測では、Pi,0はX’’i-1,0に等しく、インターリーブ予測では、Pi,0はX’’i-2,0に等しく、ただし、X’’i-1,0およびX’’i-2,0は上記で定義される。Pi,jのための予測誤差値は、Ei,jであり、実際の色値と予測色値とにおける差を表すことができる。たとえば、Ei,0は、Xi,0−Pi,0に等しい。
いくつかの例では、1D予測の代わりに、または1D予測に加えて、予測ユニット36は、2D予測を実行するように構成され得る。2D予測では、予測ユニット36は、現在のブロックのすぐ上、またはすぐ下にある隣接ブロックから、色値を予測することができる。たとえば、圧縮ユニット20が画像フレームブロックを最上部から最下部へと圧縮中である場合、隣接ブロックは、現在のブロックのすぐ上にあり得、圧縮ユニット20が画像フレームブロックを最下部から最上部へと圧縮中である場合、その逆である。図3Cは、2次元予測の一例を示す概念図である。
2D予測を実行するために、予測ユニット36は、色値変換器56を通して隣接ブロックを受信することができる。たとえば、画像プロセッサ14は、ブロックをピンポンバッファに出力することができ、色値変換器32は、現在のブロックをピンポンバッファから受信することができ、色値変換器56は、隣接ブロックをピンポンバッファから受信することができる。別の例として、遅延ユニット34は、現在のブロックを受信し、色値変換器32がブロックのすぐ下のブロックを受信するとき、現在のブロックを色値変換器56に出力することができる。この場合、色値変換器32が受信するブロックは、ここで、現在のブロックと見なされ得、遅延ユニット34によって出力され、色値変換器56によって受信されたブロックは、隣接ブロックと見なされ得る。
図3Cに示すように、ブロック70における各ピクセルXi,jについて、ブロック70のすぐ上のブロックである隣接ブロックにおいて対応するピクセルX’i,j-1がある。いくつかの例では、予測ユニット36は、ピクセルXi,jのための色値を、X’i,j-1から予測することができる。ただし、あらゆる例においてこれが当てはまるとは限らない。
たとえば、場合によっては、予測ユニット36が(たとえば、ブロック70の上にある隣接ブロックから)垂直方向において色値を予測することができ、場合によっては、予測ユニット36が(たとえば、同じラインにおける以前のブロックから)水平方向において色値を予測することができるので、2D予測は2次元予測と見なされ得る。
たとえば、予測ユニット36は、以下の式が真であるかどうかを判定することができる。真である場合、予測ユニット36は、同じラインにおける隣接ブロックから色値を予測することができ、偽である場合、予測ユニット36は、現在のブロックの上または下にある隣接ブロックから色値を予測することができる。
Figure 2014523703
ただし、X’’i-1,0は、上記と同じであり、X’i-1は、ピクセルXi,0のすぐ上にあるピクセルを指す。
たとえば、上記の式が真である場合、予測ユニット36は、水平ブロック(たとえば、同じラインにおける隣接ブロック)を利用して、上記で説明したプログレッシブ予測技法を実施することができる。いくつかの例では、予測ユニット36がインターリーブ予測を実行することが可能であり得る。たとえば、予測ユニット36は、
Figure 2014523703
が真であるとき、色値を水平に予測することを選択することができる。真であるとき、予測ユニット36は、上記で説明したように、プログレッシブ予測またはインターリーブ予測の間で選択することができる。
Figure 2014523703
が偽であるとき、予測ユニット36は、色値を垂直に予測することを選択することができる。この場合、ピクセルXi,0のための予測色値(すなわち、Pi,0)は、X’i,-1に等しい。予測誤差値は、Ei,0であり得、Xi,0−Pi,0に等しい。
上記の例では、2D予測について、予測ユニット36が色値を垂直に予測すること、または水平に予測することの間で選択する例で、説明している。ただし、本開示の態様はそのように限定されない。いくつかの例では、予測ユニット36は、ピクセルのための色値を、斜めに位置するピクセルから予測することができる。たとえば、予測ユニット36が水平ブロックから色値を予測することは、0°方向において予測することと呼ばれることがあり、垂直ブロックから色値を予測することは、90°方向において予測することと呼ばれることがある。
いくつかの例では、予測ユニット36はまた、ピクセルのための色値を135°方向において予測することもでき、135°方向は、その色値が予測されている現在のピクセルの上および左に位置するピクセルを指す。いくつかの例では、予測ユニット36はまた、ピクセルのための色値を45°方向において予測することもでき、45°方向は、現在のピクセルの下および左に位置するピクセルを指す。
予測ユニット36が、0°、45°、90°、および135°で予測を実行するように構成される例では、予測ユニット36は、上記で説明した方法で、予測色値を決定することができる。予測ユニット36は、最小の予測色値を生じる方向において予測を実行することを選択することができる。
これらの例では、予測ユニット36は、予測方向を示す2ビットヘッダを利用することができる。たとえば、圧縮解除ユニット24は、画像フレームブロックが圧縮された方法を示す情報で構成される必要があり得る。2ビットヘッダは、予測ユニット36が0°予測を利用したか、45°予測を利用したか、90°予測を利用したか、135°予測を利用したかを示すことができる。0°予測または90°予測のみが使用される場合、予測ユニット36は、単一ビットヘッダを利用することができる。
いくつかの例では、予測ユニット36が色値を予測することが可能でないことがある。たとえば、画像フレームにおける最初のピクセルの上または前にある、直接隣接したピクセルがないので、予測ユニット36は、2D予測を実施するとき、そのピクセルを予測することができず、その色値をそのまま出力することがある。同様に、ラインにおける最初のピクセルの前にある、直接隣接したピクセルがないので、予測ユニット36は、1D予測を実施するとき、そのピクセルを予測することができず、その色値をそのまま出力することがある。予測ユニット36がインターリーブ予測を実施する例では、ラインにおける第2のピクセルを予測するために、予測ユニット36は、ラインにおける第2のピクセルのための予測色値が、ルーマ(Y)成分では128、クロマ成分(Co、Cg)では256であると決定することができる。
図示のように、予測ユニット36は、各ピクセルのための予測色値と予測誤差値とを、ブロック固定長符号化(BFLC)符号器42、可変長符号化(VLC)符号器44、およびスキップモード符号器46に出力する。BFLC符号器42、VLC符号器44、およびスキップモード符号器46は、ブロックを符号化するための例示的な符号器である。可逆圧縮ユニット35は、これらの符号器のうちのすべてではないが、いくつかを含まなくてもよく、これらの符号器に加えて符号器を、またはこれらの符号器とは異なる符号器を含んでもよい。
BFLC符号器42は、任意の知られている、またはこれから開発されることになる固定長符号化技法を実施することができ、VLC符号器44は、任意の知られている、またはこれから開発されることになる可変長符号化技法を実施することができる。スキップモード符号器46は、追加の圧縮を実行しないパススルーとして機能することができる。
また、BFLC符号器42、VLC符号器44、およびスキップモード符号器46は、ブロック内のピクセルの各々を(たとえば、すべての8ピクセルのためのルーマ成分(Y)について、および、すべての8ピクセルのためのクロマ成分(CoおよびCg)について)符号化することができる。たとえば、ある符号化方式を利用して、ピクセルのY成分を符号化し、異なる符号化方式を使用して、Co成分を符号化し、さらに別の異なる符号化方式を使用して、Cg成分を符号化することが可能であり得る。他の例では、Y成分、Co成分、およびCg成分のうちのいずれか2つが、同じ符号化方式を使用して符号化され、他の成分が、異なる符号化方式を使用して符号化されてもよい。さらに別の例では、Y成分、Co成分、およびCg成分の3つすべてが、同じ符号化方式を使用して符号化されてもよい。
いくつかの例では、BFLC符号器42、VLC符号器44、およびスキップモード符号器46は、それぞれ可逆圧縮を並列に実行し、それらのそれぞれの圧縮ブロックを、圧縮画像データ選択器48に出力することができる。また、パターンモード符号器40も、元の画像データを圧縮することができる。パターンモード符号器40の機能について、より詳細に説明する。たとえば、BFLC符号器42、VLC符号器44、およびスキップモード符号器46は、色値変換器32がRGB値をYCoCg色空間に変換した後に画像データを予測した予測ユニット36から、受信された画像データを圧縮することができる。パターンモード符号器40は、一方、元の画像データ(たとえば、RGB値)を受信し、それらの値に圧縮を適用することができる。
いくつかの例では、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46は、それぞれ、圧縮画像データがどこから生じたかを示すヘッダビットを、圧縮画像データに含めることができる。たとえば、BLFC符号器42は、圧縮画像データブロックがBLFC圧縮技法に従って圧縮されたことを示す、1つまたは複数のヘッダビットを、圧縮画像データブロックに含めることができる。パターンモード符号器40、VLC符号器44、およびスキップモード符号器46は、同様に1つまたは複数のヘッダビットを含めることができる。このようにして、圧縮解除ユニット24が圧縮画像データブロックを圧縮解除するとき、圧縮解除ユニット24は、ヘッダビットに基づいて、圧縮解除を実施するための方法を決定することができる。
図2に示すように、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46の各々は、それぞれの圧縮画像データブロックを、圧縮画像データ選択器48に出力することができる。パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46の各々が、画像フレームブロックを圧縮する例では、圧縮画像データ選択器48は、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46のうちの1つによって出力されたビットストリームを、ビットストリームにおけるビット数に基づいて選択することができる。たとえば、圧縮画像データ選択器48は、画像フレームブロックを符号化するために最小ビット数を利用する、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46のうちの1つによって出力されたビットストリームを選択することができる。
さらに、場合によっては、Y成分、Co成分、およびCg成分は、異なる符号化方式を使用して符号化され得る。そのような場合、圧縮画像データ選択器48は、Y成分、Co成分、およびCg成分を符号化するために使用される異なる符号器の出力を連結することができる。たとえば、スキップモード符号器46がY成分を符号化し、VLC符号器44がCo成分とCg成分とを符号化したと仮定する。この例では、圧縮画像データ選択器48は、スキップモード符号器46の出力(たとえば、Y成分)を、VLC符号器44の出力(たとえば、Co成分およびCg成分)と連結して、色値のための1つのビットストリームを形成することができる。
図2に示すように、圧縮画像データ選択器48は、符号化ビットストリームを可逆圧縮画像データ選択器50に出力することができる。可逆圧縮画像データ選択器50はまた、パルス符号変調(PCM)符号器38からの出力ビットストリームを受信することもできる。PCM符号器38については、以下でより詳細に説明する。可逆圧縮画像データ選択器50は、PCM符号器38によって出力されたビットストリームにおけるビット数が、圧縮画像データ選択器48によって出力されたビットストリームにおけるビット数未満であるか、それよりも大きいかを判定することができる。
本開示で説明する例示的な技法では、可逆圧縮画像データ選択器50は、より少ないビット数をもつビットストリームを選択することができる。たとえば、圧縮画像データ選択器48の出力ビットストリームが、PCM符号器38の出力ビットストリームよりも少ないビットを含んでいた場合、可逆圧縮画像データ選択器50は、圧縮画像データ選択器48の出力ビットストリームを選択することができる。そうでない場合、可逆圧縮画像データ選択器50は、PCM符号器38の出力ビットストリームを選択することができる。
いくつかの例では、圧縮画像データ選択器48は必要でなくてもよい。これらの例では、パターンモード符号器40、BFLC符号器42、VLC符号器44、スキップモード符号器46、およびPCM符号器38の各々は、それらのそれぞれのビットストリームを可逆圧縮画像データ選択器50に出力することができる。これらの例では、可逆圧縮画像データ選択器50は、パターンモード符号器40、BFLC符号器42、VLC符号器44、スキップモード符号器46、およびPCM符号器38のうちのどれが、画像フレームブロックを符号化するために最少ビット数を利用したかを、決定することができる。可逆圧縮画像データ選択器50は、次いで、画像フレームブロックを圧縮するために最少ビット数を利用した、パターンモード符号器40、BFLC符号器42、VLC符号器44、スキップモード符号器46、およびPCM符号器38のうちの1つの、出力ビットストリームを選択することができる。
可逆圧縮画像データ選択器50は、選択されたビットストリームをMUX54に出力することができ、選択されたビットストリームにおけるビット数を示す値を、バジェット制御器52に出力することができる。不可逆圧縮ユニット55の、不可逆圧縮画像データ選択器68は、同様に、後述のように、不可逆圧縮画像データ選択器68が選択したビットストリームを、MUX54に出力することができ、選択されたビットストリームにおけるビット数を示す値を、バジェット制御器52に出力することができる。
バジェット制御器52は、選択されたビットストリームにおけるビット数を示す、受信された値を比較し、それらの値を現在のビット割り当てと比較することができる。可逆圧縮画像データ選択器50によって出力されたビットストリームにおけるビット数と、不可逆圧縮画像データ選択器68によって出力されたビットストリームにおけるビット数とが同じである場合、一例では、バジェット制御器52は、可逆圧縮画像データ選択器50によって出力されたビットストリームを選択し、可逆圧縮画像データ選択器50の出力と不可逆圧縮画像データ選択器68の出力との間で、選択されたビットストリームを出力することを、MUX54に行わせることができる。代替例では、可逆圧縮画像データ選択器50によって出力されたビットストリームにおけるビット数と、不可逆圧縮画像データ選択器68によって出力されたビットストリームにおけるビット数とが、現在のビット割り当て未満であるとき、バジェット制御器52は、より少ないビット数をもつビットストリームを選択し、可逆圧縮画像データ選択器50の出力と不可逆圧縮画像データ選択器68の出力との間で、選択されたビットストリームを出力することを、MUX54に行わせることができる。
可逆圧縮画像データ選択器50によって出力されたビットストリームにおけるビット数が、現在のビット割り当てよりも大きく、不可逆圧縮画像データ選択器68によって出力されたビットストリームにおけるビット数が、現在のビット割り当て未満である場合、バジェット制御器52は、不可逆圧縮画像データ選択器68によって出力されたビットストリームを選択し、そのビットストリームを出力することを、MUX54に行わせることができる。いくつかの例では、不可逆圧縮ユニット55は、不可逆圧縮画像データ選択器68によって出力されたビットストリームにおけるビット数が、現在のビット割り当て以下であるような方法で、画像データを圧縮することができる。
図2に示すように、不可逆圧縮ユニット55は、実質的に同様の方法で機能する、可逆圧縮ユニット35の構成要素と同様の構成要素を含み得る。たとえば、不可逆圧縮ユニット55の予測ユニット60は、可逆圧縮ユニット35の予測ユニット36と同様に機能することができる。不可逆圧縮ユニット55のBFLC符号器62、VLC符号器64、およびPCM符号器66は、可逆圧縮ユニット35のBFLC符号器42、VLC符号器44、およびPCM符号器38と同様に機能することができる。また、不可逆圧縮ユニット55の不可逆圧縮画像データ選択器68は、可逆圧縮画像データ選択器50と同様に機能することができる。いくつかの例では、不可逆圧縮ユニット55は、スキップモード符号器46とパターンモード符号器40とを含まなくてもよいが、本開示で説明する態様は、そのように限定的であると見なされるべきではない。
しかしながら、不可逆圧縮ユニット55は、量子化器58を含んでもよく、可逆圧縮ユニット35は、量子化器を含まなくてもよい。量子化器58は、色値変換器56および色値変換器32から受信された色値を量子化することができる。量子化器58によって実行された量子化は、色値の精度を低減することができる。たとえば、量子化器58の出力は、量子化器58によって受信された色値におけるビット数よりも少ないビットをもつ色値であり得る。
量子化器58によって実行された量子化において失われたビットを復元することは、可能であり得ず、そのことが、不可逆圧縮ユニット55の出力を「不可逆」にさせる。たとえば、可逆圧縮ユニット35が画像フレームブロックを圧縮した場合、圧縮解除ユニット24が圧縮画像フレームブロックを圧縮解除するとき、圧縮解除ユニット24は、画像フレームブロックの元の色値を復元することが可能であり得る。たとえば、圧縮解除ユニット24によって決定された、復元された色値は、圧縮ユニット20によって受信された色値と実質的に同様であり、潜在的に等しくなり得る。しかしながら、不可逆圧縮ユニット55が画像フレームブロックを圧縮した場合、圧縮解除ユニット24が圧縮画像フレームブロックを圧縮解除するとき、元の色値のいくつかのビットが量子化器58によって実行された量子化において失われ得るので、圧縮解除ユニット24は、正確な元の色値を復元することが可能であり得ない。
いくつかの例では、量子化器58は、量子化ビットの数が現在のビット割り当て以下であるように、現在のブロックのビットを量子化することができる。たとえば、量子化器58は、YCoCg値を受信することができる。量子化器58は、量子化後の総ビット数が現在のビット割り当て以下であるように、Y成分、Co成分、およびCg成分のためのビット数を量子化することができる。一例として、量子化器58は、現在のビット割り当てに基づいて、色値に適用されるべきである量子化の量を決定することができる。量子化器58は、次いで、量子化後の色値のビット数が現在のビット割り当て以下であることを保証するために、決定された量子化の量に基づいて、色値のビットを量子化することができる。
図示のように、予測ユニット60、BFLC符号器62、VLC符号器64、およびPCM符号器66は、量子化器58によって出力された、色値の量子化ビットにおいて、圧縮を実行することができる。不可逆圧縮画像データ選択器68は、最少ビット数を有する、BFLC符号器62、VLC符号器64、およびPCM符号器66のうちの1つからの出力ビットストリームを選択することができる。不可逆圧縮画像データ選択器68は、選択されたビットストリームをMUX54に出力し、選択されたビットストリームにおけるビット数を、バジェット制御器52に出力することができる。バジェット制御器52は、次いで、可逆圧縮画像データ選択器50の出力ビットストリームと、不可逆圧縮画像データ選択器68の出力ビットストリームとの間で選択し、次に、上記で説明したように、選択されたビットストリームを出力することを、MUX54に行わせることができる。
他の例では、圧縮技法を並列に実行するのではなく、圧縮ユニット20は、どのタイプの圧縮技法が利用されるべきであるかを決定することができる。たとえば、図2に図示されていないが、可逆圧縮ユニット35および不可逆圧縮ユニット55は、それぞれ符号化モード決定ユニットを含み得る。この符号化モード決定ユニットを、図18および図19でより詳細に示す。
たとえば、図18は、符号化モード決定ユニット110と、パルス符号変調(PCM)決定ユニット108とを示す。PCM決定ユニット108は、以下でより詳細に説明するように、パルス符号変調(PCM)圧縮が図2のPCM符号器38によって実行されるべきであるかどうかを判定することができる。PCM決定ユニット108によって決定された、PCM圧縮が実行されない例では、符号化モード決定ユニット110は、予測ユニット36からの出力を受信することができ、どのタイプの符号化を可逆圧縮ユニット35が実行するべきであるかを決定することができる。言い換えれば、圧縮ユニット20が、どのタイプの圧縮技法を実施するべきかを事前に決定することができる例では、可逆圧縮ユニット35は、図18に示す方法で構成されたPCMモード決定ユニット108と、符号化モード決定ユニット110とを含み得る。
たとえば、そのような例では、圧縮ユニット20の可逆圧縮ユニット35は、元の画像データブロックと、色値変換器32の出力とを受信する、PCMモード決定ユニット108を含み得る。可逆圧縮ユニット35の予測ユニット36は、PCMモード決定ユニット108と、符号化モード決定ユニット110とに結合され得る。符号化モード決定ユニット110は、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46の各々に結合され得る。
PCMモード決定ユニット108は、色値変換器32から、元の画像フレームブロックのRGB色値と、YCoCg色値とを受信することができる。PCMモード決定ユニット108は、RGB色値におけるビット数がYCoCg色値におけるビット数未満であるかどうかを判定することができる。RGB色値におけるビット数がYCoCgにおけるビット数未満である場合、PCMモード決定ユニット108は、以下でより詳細に説明する方法で符号化するために、RGB色値をPCM符号器38に出力することができる。
しかしながら、RGB色値におけるビット数がYCoCgにおけるビット数よりも大きい場合、PCMモード決定ユニット108は、YCoCg色値を予測ユニット36に出力することができ、PCM符号器38は、符号化を実行し得ない。予測ユニット36は、上記で説明したように、1D予測または2D予測を実行し、得られた値を符号化モード決定ユニット110に出力することができる。
図18の符号化モード決定ユニット110は、色値変換器32によって受信された画像フレームブロックが、スキップモード符号器46によって符号化されるべきであるか、VLC符号器44によって符号化されるべきであるか、BFLC符号器42によって符号化されるべきであるか、パターンモード符号器40によって符号化されるべきであるかを決定するように構成され得る。符号化モード決定ユニット110はまた、Y成分、Co成分、およびCg成分の各々が符号化されるべきである方法を決定することもできる。たとえば、符号化モード決定ユニット110は、Y成分が、スキップモード符号器46を使用して符号化されるべきであり、Co成分が、VLC符号器44を使用して符号化されるべきであり、Cg成分が、BFLC符号器42を使用して符号化されるべきであると決定することが、可能であり得る。符号化モード決定ユニット110が、Y成分、Co成分、およびCg成分のうちの2つが、同じ符号化方式を使用して符号化されるべきであり、他の成分が、異なる符号化方式を使用して符号化されるべきであると決定する例と、符号化モード決定ユニット110が、Y成分、Co成分、およびCg成分の3つすべてが、同じ符号化方式を使用して符号化されるべきであると決定する例とを含む、他の置換および組合せが可能であり得る。
たとえば、BFLC符号器42、VLC符号器44、およびスキップモード符号器46のうちの1つが圧縮を実行する例では、符号化モード決定ユニット110は、予測色値の各々のためのIdx値を決定することができる。BFLC符号器42、VLC符号器44、およびスキップモード符号器46のうちの1つは、Idx値に基づいてブロックを圧縮することができる。Idx値は、予測誤差を表す値と見なされ得、各ピクセルに関連付けられ得る。たとえば、予測誤差(たとえば、Ei,0)は、負値または正値であってもよく、Idx値は、予測誤差値に基づいてもよく、正値であってもよい。
Idxi,0値は、(|Ei,0|<<1)−negに等しくなり得、ただし、Ei,0<0であるとき、neg=1であり、そうでない場合、neg=0である。「<<」記号は、左ビットシフトを表し、|Ei,0|<<1は、1ビットの左ビットシフトを意味する。1ビットの左ビットシフトは、|Ei,0|値に2(たとえば、21)を掛けることと等価である。符号化モード決定ユニット110が、1ビットだけシフトし、次いで2を掛けることは、より複雑でなくなり得るが、いずれを行うことも等価である。
本開示で使用するとき、「>>」記号は、右ビットシフトを表し、「<<」が乗算演算と等価であることと同様に、除算演算と等価である。「<<」ビットシフト演算、および「>>」ビットシフト演算は、2倍に乗算すること、および1/2に除算することに限定され得る。たとえば、1ビットの左シフトは、21を掛けることと等価であり、2ビットの左シフトは、22を掛けることと等価であり、3ビットの左シフトは、23を掛けることと等価である、などとなる。同様に、1ビットの右シフトは、21で割ることと等価であり、2ビットの右シフトは、22で割ることと等価であり、3ビットの右シフトは、23で割ることと等価である、などとなる。右シフトは、下への丸め(すなわち、負の無限大への)を含み得る。
予測ユニット36が2D予測を利用するとき、符号化モード決定ユニット110は、画像フレームの最初のピクセルのために、Idxi,0値を0として設定することができる。また、予測ユニット36が1D予測を利用するとき、符号化モード決定ユニット110は、ラインの最初のピクセルのために、Idxi,0を0として設定することができる。
ブロックにおける各予測色値のためのIdx値が0である場合、符号化モード決定ユニット110は、スキップモード符号器46がブロックを符号化するべきであると決定することができる。ここでも、スキップモード符号器46は、いかなる追加の符号化もなしに、パススルーとして機能することができる。また、スキップモード符号器46は、ブロックがスキップブロックであると指定するために、ブロックのヘッダに2ビットまたは3ビットを追加することができる。
以下の式が真である場合、符号化モード決定ユニット110は、BFLC符号器42がブロックを符号化するべきであると決定することができる。そうでない場合、符号化モード決定ユニット110は、VLC符号器44がブロックを符号化するべきであると決定することができる。BFLC符号器42およびVLC符号器44は、より少ないビットが、受信されたビットを表すために必要とされるような方法で、ブロックを符号化することができる。言い換えれば、BFLC符号器42およびVLC符号器44は、ブロックを受信し、圧縮ブロックを出力することができ、ただし、受信ブロックおよび圧縮ブロックは、同じ色値を表すが、圧縮ブロックにおけるビット数は、受信ブロックにおけるビット数未満である。
たとえば、符号化モード決定ユニット110が、以下であると決定する場合、BFLC符号器42は、ブロックを符号化することができる。
Figure 2014523703
上記の式では、nはブロックのサイズ(たとえば、8ピクセル)であり、lenvlcは、Idxの長さであり、その値を下記の表1において見ることができる。bit()は、ブロックにおけるIdxの最大値を表すために必要とされたビット数である。たとえば、ブロックのためのIdx値が{3,0,10,1,0,2,2,7}であると仮定すると、最大値は10であり、10を表すために必要とされたビット数は、4である。この例では、bit()の値は4である。
図4は、ブロック固定長符号化(BFLC)を実行するための方法の一例を示す概念図である。たとえば、図4は、BFLC符号器42の出力ビットストリームの一例を示す。しかしながら、BFLC符号器42は、任意の固定長符号化技法を利用して、色値を固定長符号化することができ、図4は、そのような符号化の一例である。
たとえば、図4に示す例は、Idx値に依拠することができる。上記で説明したように、いくつかの例では、符号化モード決定ユニット110は、Idx値を決定することができる。しかしながら、圧縮ユニット20が符号化モード決定ユニット110を含まない例では(たとえば、圧縮ユニット20が、どのタイプの圧縮が利用されるべきであるかを最初に決定することなしに、並列に圧縮を実行する例では)、BFLC符号器42が、Idxの値を決定することができる。その上、BFLC符号器42があらゆる例において圧縮のためにIdxに依拠することが必要であるとは限らず、BFLC符号器42は、Idx値に依拠しない技法を利用して、色値を固定長符号化することができる。
図4では、BFLClenは、各インデックス(Idx)の符号長を示す。たとえば、BFLClenは、以下に等しくなり得る。
Figure 2014523703
このBFLClenの定義では、図4は、インデックス(Idx)が符号化され得る方法を示す。図4では、ヘッダ(Hdr)およびその長さは、圧縮モードその圧縮ユニット20に依存し得る。Hdrの例について、以下でより詳細に説明する。
図5は、可変長符号化(VLC)を実行するための方法の一例を示す概念図である。たとえば、図5は、VLC符号器44の出力ビットストリームの一例を示す。しかしながら、VLC符号器44は、任意の可変長符号化技法を利用して、色値を可変長符号化することができ、図5は、そのような符号化の一例である。ここでも、BFLC符号器42のように、VLC符号器44は、Idx値に依拠することができ、圧縮ユニット20が符号化モード決定ユニット110を含まない例では、VLC符号器44が、Idx値を決定することができる。さらに、VLC符号器44は、あらゆる例において圧縮のためにIdx値に依拠する必要があるとは限らない。たとえば、VLC符号器44は、Idx値に依拠しない可変長符号化技法を実施することができる。
VLC符号化では、VLC符号器44は、指数ゴロム符号を利用することができる。下記の表1は、VLC符号器44がインデックス(Idx)を符号化するために利用することができる符号を示す。さらに、表1は、lenvlcのための例示的な値を含む。BFLC符号化に関して上記で説明したように、BFLC符号器42は、lenvlcの値に基づいて、ブロックを符号化することができる。BFLC符号器42は、表1における値に基づいて、lenvlcの値を決定することができる。
Figure 2014523703
図示のように、圧縮ユニット20は、パルス符号変調(PCM)符号器38を含む。いくつかの例では、図18に示すように、可逆圧縮ユニット35は、PCMモード決定ユニット108を含んでもよく、PCMモード決定ユニット108は、上記で説明したように、RGB色値におけるビット数がYCoCg色値におけるビット数未満であるかどうかを判定することができる。RGB色値におけるビット数がYCoCg色値におけるビット数未満であるとき、PCMモード決定ユニット108は、元の画像データブロックが、PCM符号器38を使用して圧縮されるべきであると決定することができる。PCM符号器38は、パルス符号変調技法を使用して、画像フレームブロックを符号化することができる。PCM符号器38は、PCM符号化からのビットであることを示すために、ヘッダビットを追加することができる。
偽である(すなわち、YCoCgビットがRGBビット未満である)とき、PCMモード決定ユニット108は、色空間変換された色値(たとえば、YCoCgビット)を、符号化モード決定ユニット110に出力することができる。符号化モード決定ユニット110は、次いで、パターンモード符号器40を使用して色値を符号化するか、BFLC符号器42を使用して色値を符号化するか、VLC符号器44を使用して色値を符号化するか、スキップモード符号器46を使用して色値を符号化するかを決定するために、本開示で説明する方法で機能することができる。
上記で説明したように、圧縮ユニット20が符号化モード決定ユニット110を含む例など、いくつかの例では、圧縮画像データ選択器48は、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46のうちの1つの出力ビットストリームを受信することができる。この例では、圧縮画像データ選択器48は、符号化モード決定ユニット110によって選択された、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46のうちの1つからの出力をパススルーする、パススルーとして機能することができる。
言い換えれば、いくつかの例では、符号化モード決定ユニット110は、画像フレームブロックが、パターンモード符号器40を使用して符号化されるべきであるか、BFLC符号器42を使用して符号化されるべきであるか、VLC符号器44を使用して符号化されるべきであるか、スキップモード符号器46を使用して符号化されるべきであるかを決定することができる。これらの例では、画像フレームブロックを符号化するために使用されるべきであると符号化モード決定ユニット110が決定した、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46のうちの1つは、そのビットストリームを圧縮画像データ選択器48に出力することができ、圧縮画像データ選択器48は次に、そのピットストリームを出力する。
圧縮ユニット20が符号化モード決定ユニット110を含む、いくつかの例では、圧縮画像データ選択器48は、必ずしも単にパススルーとして機能するとは限らない。たとえば、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46は、それらのそれぞれのビットストリームを圧縮画像データ選択器48に出力することができ、圧縮画像データ選択器48は、適宜にそれらの出力を連結することができる。たとえば、BFLC符号器42がY成分を符号化し、VLC符号器44がCo成分とCg成分とを符号化した場合、圧縮画像データ選択器48は、単一のビットストリームを形成するために、それらの出力の順序を選択することができる。たとえば、圧縮画像データ選択器48は、その順序がYCoCgであるように、出力を選択することができる。この例では、圧縮画像データ選択器48は、出力BFLC符号器42がY成分のためのものであるので、出力BFLC符号器42を選択し、BFLC符号器42からの出力を、Co成分およびCg成分のためのものであるVLC符号器44からの出力と連結することができる。
可逆圧縮画像データ選択器50は、PCMモード決定ユニット108によって決定されたように、どちらが利用されたかに基づいて、PCM符号器38または圧縮画像データ選択器48からの出力を受信することができる。可逆圧縮画像データ選択器50は、次いで、受信されたビットストリームをバジェット制御器52に出力することができ、バジェット制御器52は、次いで、上記で説明した方法で機能を実行することができる。
図6は、PCM符号器が機能する方法の一例を示す概念図である。たとえば、図6は、PCM符号器38の出力ビットストリームの一例を示す。図示のように、PCM符号器38の出力は、ヘッダビットと、その後に続く、元の画像フレームブロックの8ピクセルのための赤色成分、緑色成分、および青色成分の各々のための元の8ビットとを含む。
いくつかの例では、圧縮ユニット20はまた、パターンモード符号器40をも含み得る。いくつかのテストパターンは、予測ユニット36とともに使用するには非常に困難であるように設計されることがあり、通常動作中に画像プロセッサ14によって作成された画像フレームを正確に表し得ない。たとえば、いくつかのテストパターンは、1D予測を利用することが比較的大きい予測誤差値を生じるように、設計されることがあり、比較的大きい予測誤差値は、1D予測によって実現される利益を最小にすることがある。これらのテストパターンは、1D予測では困難であり得るが、これらのテストパターンは、画像フレームのブロックにおける異なる色の数が制限され得る。これらのテストパターンでは、パターンモード符号器40は、画像フレームブロックを符号化するために好適であることが可能であり得る。
図7は、符号化モード決定ユニットが、画像フレームがテストパターンであるかどうかを判定することができる、例示的な方法を示すフローチャートである。たとえば、符号化モード決定ユニット110は、図7に示す例示的なフローチャートを実施して、画像データがテストパターンのためのものであるかどうかを判定することができ、パターンモード符号器40が画像データを圧縮するべきであると決定することができる。図示のように、符号化モード決定ユニット110は、画像フレームブロックの第1のピクセルを受信する(72)。符号化モード決定ユニット110は、値を決定することができる(74)。この値は、R+(G<<8)+(B<<16)であってもよく、ただし、R、G、およびBは、赤色成分、緑色成分、および青色成分をそれぞれ指す。言い換えれば、この値は、赤色成分の値+緑色成分の値×28+青色成分の値×216であり得る。
符号化モード決定ユニット110は、この値を、データベースにおけるパターンの値に対して比較することができる(76)。たとえば、デバイス12またはパネルデバイス16は、複数のパターンを、適宜に、デバイス12またはパネルデバイス16のメモリにおけるデータベースに記憶することができる。符号化モード決定ユニット110は、この値を、デバイス12またはパネルデバイス16におけるデータベースに記憶されたパターンに対して比較することができる。
符号化モード決定ユニット110は、値とパターンとの間の一致があるかどうかを判定することができる(78)。一致がない場合(78のいいえ)、符号化モード決定ユニット110は、パターンモード符号器38が使用されるべきではないと決定することができる(80)。一致がある場合(78のはい)、符号化モード決定ユニット110は、新しいパターンの数が新しいパターンの最大数よりも大きいかどうか、または、ビット数が最大ビット数以上であるかどうかを判定することができる。
新しいパターンの数は、符号化モード決定ユニット110がデータベースに追加したパターンであり得、新しいパターンの最大数は、符号化モード決定ユニットが追加することができる新しいパターンの最大数であり得る。一例として、新しいパターンの最大数は、3であってもよいが、この数は、設定可能であってもよく、3とは異なってもよい。
ビット数は、元の画像フレームブロックにおけるビット数であり得る。最大ビット数は、非パターンモード符号器のうちの1つによって費やされたビット数であり得る。たとえば、最大ビット数は、BFLC符号器42またはVLC符号器44によって出力されたビット数であり得る。
新しいパターンの数が新しいパターンの最大数よりも大きい場合、または、ビット数が最大ビット数以上である場合(82のはい)、符号化モード決定ユニット110は、パターンモード符号器38が使用されるべきではないと決定することができる(80)。そうでない場合(82のいいえ)、符号化モード決定ユニット110は、パターンをデータベースに追加することができる(84)。
符号化モード決定ユニット110は、パターンの数がデータベースにおけるパターンの最大数よりも大きいかどうかを判定することができる(86)。一例として、データベースにおけるパターンの最大数は、16であってもよいが、この数は、設定可能であってもよく、16とは異なってもよい。
パターンの数がデータベースにおけるパターンの最大数よりも大きくない場合(86のいいえ)、符号化モード決定ユニット110は、ブロックにおける次のピクセルに進み(90)、これらのステップを繰り返すことができる。そうでない場合(86のはい)、符号化モード決定ユニット110は、データベースにおける古いパターンのうちの1つまたは複数を除去することができる(88)。符号化モード決定ユニット110は、次いで、ブロックにおける次のピクセルに進み(90)、これらのステップを繰り返すことができる。
図8は、符号化モード決定ユニットがパターンデータベースを更新する方法を示す概念図である。たとえば、図8は、あるピクセルのためのRGB色値が(25,36,127)であり、別のピクセルのためのRGB色値が(78,238,57)である、画像フレームブロックを示す。符号化モード決定ユニット110は、色値(25,36,127)をもつピクセルのための値を、図7のステップ74で、8,332,313(たとえば、25+28*36+216*127は、8,332,313に等しい)となるように決定することができ、色値(78,238,57)をもつピクセルのための値を、図7のステップ74で、3,796,558(たとえば、78+28*238+216*57は、3,796,558に等しい)となるように決定することができる。
図8は、値をもつ現在のデータベースと、(25,36,127)および(78,238,57)のRGB色値をもつブロックのピクセルに対して追加される新しい値をもつ、更新されたデータベースとを示す。たとえば、更新されたデータベースでは、現在のデータベースの14および15インデックスにおける値が除去され、0〜13における値が2だけ下にシフトされる。更新されたデータベースは、(25,36,127)のRGB色値をもつ画像フレームブロックのピクセルに対応する値8,332,313と、RGB色値(78,238,57)をもつ画像フレームブロックのピクセルに対応する値3,796,558とを含む。
図9は、パターンモード符号化のための例示的な技法を示すフローチャートである。たとえば、パターンモード符号器40は、図9に示す技法を実施することができる。図9に示すように、パターンモード符号器40は、画像フレームブロックの第1のピクセルを受信することができる(92)。パターンモード符号器40は、図7のステップ74に関して上記で説明したものと同様の方法で、ピクセルの値を決定することができる(94)。たとえば、パターンモード符号器40は、R+(G<<8)+(B<<16)となるように、値を決定することができる。
パターンモード符号器40は、次いで、パターンデータベースを検索することができる(96)。パターンモード符号器40は、パターンインデックス(Idx)を符号化することができる(98)。いくつかの例では、パターンモード符号器40は、データベースにおけるパターンの数に基づいて、パターンインデックスを符号化することができる。たとえば、データベースにおけるパターンの数が、5と8との間である場合、パターンモード符号器40は、3ビットでパターンインデックスを符号化することができる。パターンモード符号器40は、ブロックにおける次のピクセルを進め(100)、これらのステップを繰り返すことができる。
図10は、パターンモード符号器の出力ビットストリームの一例を示す概念図である。図示のように、ヘッダは、2ビットであってもよく、パターンモード符号器40によって認識された新しいパターンの数は、2ビットであってもよい。図示のように、パターンモード符号器40は、図7のステップ74で決定された値の各々を表すために、24ビットを割り当てることができる。たとえば、図8に示すように、データベースにおいて15パターンがあってもよく、そのうちの2つが新しいパターンである。したがって、この例では、図10におけるKの値は2となり、パターンモード符号器40は、8,332,313の値を表すために24ビットと、3,796,558の値を表すために24ビットとを利用することができる。
上記で説明したように、PCM符号器38、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46の出力ビットストリームにおけるヘッダは、圧縮ユニット20が実施するように構成され得る様々な符号化技法に基づいてもよい。いくつかの例では、PCM符号器38、パターンモード符号器40、BFLC符号器42、VLC符号器44、およびスキップモード符号器46の出力ビットストリームは、初期1ビット値を含んでもよくが、ヘッダが初期1ビットの後に続いてもよい。
表2は、圧縮ユニット20が実施するように構成され得る符号化のタイプに基づいた、例示的なヘッダ値を含む。表2における例示的なヘッダ値は、例示のために与えられ、限定的と見なされるべきではない。特定のヘッダ値は、異なる例では異なってもよく、圧縮解除ユニット24が、画像フレームの圧縮ブロックを圧縮解除するとき、使用された符号化のタイプを決定することが可能であり得るように、選択され得る。
さらに、表2では、圧縮ユニット20が、スキップモード符号器46と、VLC符号器44と、PCM符号器38とを実装することができ、圧縮ユニット20が、BFLC符号器42とパターンモード符号器40とを実装してもしなくてもよいと仮定される。しかしながら、このことは、例示のために与えられるにすぎない。異なる例では、圧縮ユニット20は、スキップモード符号器46、VLC符号器44、PCM符号器38、BFLC符号器42、およびパターンモード符号器40のうちの異なるものを実装するように構成されてもよい。たとえば、別の例では、圧縮ユニット20は、BFLC符号器42と、VLC符号器44と、PCM符号器38とを実装するように構成されてもよく、圧縮ユニット20は、スキップモード符号器46とパターンモード符号器40とを実装してもしなくてもよい。様々な置換および組合せが可能であり得、本開示で説明する技法は、表2に示された例に限定されると見なされるべきではない。
Figure 2014523703
前述の例は、可逆圧縮ユニット35の構成要素が機能する方法について説明している。本開示で説明する態様では、不可逆圧縮ユニット55における対応する構成要素は、実質的に同様の方法で機能することができる。しかしながら、不可逆圧縮ユニット55の場合、画像データは、圧縮より前に量子化器58で量子化され得る。
さらに、可逆圧縮ユニット35と同様に、不可逆圧縮ユニット55もまた、図19に示すように、PCMモード決定ユニットと符号化モード決定ユニット114とを含み得る。しかしながら、不可逆圧縮ユニット55は、あらゆる例において、PCMモード決定ユニットと符号化モード決定ユニットとを含むとは限らない。たとえば、いくつかの例では、不可逆圧縮ユニット55は、どのタイプの不可逆圧縮技法を実施するべきかについての事前決定なしに、様々な不可逆圧縮技法を実施することができる。これらの例では、不可逆圧縮ユニット55は、様々な不可逆圧縮技法を並列に実施することができ、不可逆圧縮画像データ選択器68は、それぞれ異なる不可逆圧縮技法に従って圧縮された不可逆圧縮画像データから選択することができる。
図19に示すように、不可逆圧縮ユニット55は、量子化器58に結合されるPCMモード決定ユニット112を含んでもよく、量子化YCoCg色値のビット数が、画像フレームブロックのための元のRGB色値のビット数よりも大きいかどうかを判定することができる。真であるとき、PCMモード決定ユニット112は、PCM符号器66が量子化画像データを圧縮するべきであると決定することができる。
そうでない場合、PCMモード決定ユニット112は、量子化YCoCg色値を、予測ユニット60へ送信することができ、予測ユニット60は、予測ユニット36に関して上記で説明したものと同様の方法で、予測を実行することができる。符号化モード決定ユニット114は、予測ユニット60の出力を受信することができ、量子化画像フレームブロックをBFLC符号化するか、VLC符号化するかを判定することができる。たとえば、符号化モード決定ユニット114は、符号化モード決定ユニット110に関して上記で説明したものと同様の方法で、BFLC符号化するか、VLC符号化するかを判定することができる。
たとえば、符号化モード決定ユニット114は、量子化Y成分、量子化Co成分、および量子化Cg成分の各々が符号化されるべきである方法を決定することができる。この例では、符号化モード決定ユニット114は、以下の式が量子化Y成分について真であるかどうかを判定することができ、真である場合、符号化モード決定ユニット114は、BFLC符号器62が、量子化Y成分を符号化するべきであると決定することができる。そうでない場合、符号化モード決定ユニット114は、VLC符号器64が、量子化Y成分を符号化するべきであると決定することができる。符号化モード決定ユニット114は、同様に、量子化Co成分および量子化Cg成分が符号化されるべきである方法を決定することができる。
Figure 2014523703
図19では、BFLC符号器62、VLC符号器64、およびPMC符号器66のうちの1つが、それらのそれぞれのビットストリームを不可逆圧縮画像データ選択器68に出力することができる。不可逆圧縮画像データ選択器68は、この例では、圧縮された量子化Y成分と、圧縮された量子化Co成分と、圧縮された量子化Cg成分とを連結して、単一のビットストリームを形成することができる。不可逆圧縮画像データ選択器68は、ビットストリームをバジェット制御器52に出力することができ、バジェット制御器52は次に、上記で説明したように、MUX54に、不可逆圧縮画像データ選択器68からのビットストリームを出力させるか、可逆圧縮画像データ選択器50からのビットストリームを出力させるかを、判定する。
図11は、図2の量子化器の一例をより詳細に示すブロック図である。たとえば、図11は、量子化器58をより詳細に示す。図示のように、量子化器58は、ビット/ピクセルおよび量子化パラメータ(QP)決定ユニット102と、444/422モード決定ユニット104と、均一スケーラ量子化ユニット106とを含む。
ビット/ピクセルおよびQP決定ユニット102は、画像フレームブロックにおける色値の各々のための(たとえば、Y、Co、およびCgの)すべての3つの成分についての、1ピクセル当たりのビットを決定することができる。ビット/ピクセルは、bitlossyと呼ばれることがあり、ユニット102は、以下の式に基づいて、bitlossy値を計算することができる。
Bitlossy=(現在のビット割り当て−ヘッダ長)>>ビット単位のブロック長であり、ただし、現在のビット割り当ては、バジェット制御器52によって決定された現在のビット割り当てであり、ヘッダ長は、ヘッダに追加されたビット数であり、例示的な値として、3であるが、表2に示すように、可能な圧縮モードに基づいて異なってもよく、ビット単位のブロック長は、一例として、3であるが、異なってもよい。たとえば、ビット単位のブロック長の値は、ブロックサイズが8ピクセルである例では、3に設定され得る。
この例では、現在のビット割り当てからヘッダ長を引くことは、現在のブロックを圧縮するために何ビットが利用可能であるかを示す。演算「>>ビット単位のブロック長」は、減算の結果がビット単位のブロック長だけ右シフトされることを意味する。ビット単位のブロック長は、この例では3であり、その理由は、23が8であり、1ブロック当たり8ピクセルがあるからである。言い換えれば、Bitlossy式は、ブロックを圧縮するために利用可能である現在のバジェットにおけるビット数を決定し、ブロックを圧縮するために利用可能である現在のバジェットにおけるビット数を、1ブロック当たりのピクセル数で割ることと等価である。この除算の結果は、1ピクセル当たりの利用可能なビット数である。
bitlossyのための計算に基づいて、ユニット102は、bitY,lossyの値を決定することができ、ただし、bitY,lossyは、Y成分のためのビット数を示すことができる。たとえば、bitlossyは、ピクセルのために利用可能であるビット数を示す。ピクセルがそのルーマ(Y)成分およびクロマ(CoおよびCg)成分によって定義されるので、ユニット102は、ピクセルのルーマ成分およびクロマ成分のために利用可能であるビット数を、そのピクセルのために利用可能である総ビット数に基づいて決定することができる。
ルーマ成分のためのビット数(bitY,lossyと呼ばれる)を決定するための、本開示で説明する技法によれば、ユニット102は、図12に示す表3における値に基づいて、bitY,lossyの値を決定することができる。図12は、表3の例示的なエントリを示す表形式の図である。表3における表エントリは、例示のために与えられ、限定的と見なされるべきではない。たとえば、表3の表エントリは、設定可能であり得る。一般に、bitlossyのためのより大きい値は、ルーマ成分(すなわち、Y)のためにより多いビットと、クロマ成分(CoおよびCg)のためにより少ないビットとを生じ、bitlossyのためのより小さい値は、ルーマ成分のためにより少ないビットと、クロマ成分のためにより多いビットとを生じる。ユニット102は、表3を利用して、現在のビット割り当てに基づいて、ルーマ成分に適用されるべき量子化の量を決定することができる。
図12に示すように、ルーマ成分のためのビット数(bitY,lossy)は、ピクセルのために利用可能な総数ビット(Bitlossy)に基づく。Y成分のビット数に基づいて、ビット/ピクセルおよびQP決定ユニット102は、bitC,lossyと表される、クロマ成分のためのビットを決定することができる。たとえば、ユニット102は、以下の式に基づいて、bitC,lossyのための値を決定することができる。
BitC,lossy=(Bitlossy−BitY,lossy)>>1。「>>1」演算は、(Bitlossy−BitY,lossy)を21で割ることと等価である。2つのクロマ成分CoおよびCgがあるので、Bitlossy−BitY,lossyから生じる値が2で割られる。このようにして、ユニット102は、現在のビット割り当てに基づいて、クロマ成分に適用されるべき量子化の量を決定することができる。
本開示で説明する技法によれば、不可逆圧縮では、ブロックを圧縮するために利用可能な総ビット数は、現在のビット割り当てにおいて利用可能な総ビット数に制限される(すなわち、ブロックのための総ビット数は、現在のビット割り当て−ヘッダ長に等しい)。したがって、BFLC符号器62、VLC符号器64、およびPCM符号器66のうちの1つによるさらなる圧縮の後、不可逆圧縮ブロックは、現在のビット割り当て以下であることが保証される。したがって、可逆圧縮画像フレームブロックが現在のビット割り当てよりも大きい場合でも、不可逆圧縮画像フレームブロックは、現在のビット割り当て以下であることが保証される。
上記で説明したように、これらの圧縮技法は、フレームバッファ22のサイズの低減を可能にすることができる。オーバーフローがないことを保証するために、圧縮ユニット20が目標圧縮を満たすことが保証されるように、圧縮ユニット20を構成することが望ましくなり得る。不可逆圧縮画像フレームブロックが現在のビット割り当て内になることを保証することによって、圧縮ユニット20が、低減されたサイズのフレームバッファ22に記憶され得るよりも多いビットを出力しないようになるという保証があり得る。
ユニット102は、次いで、ルーマ成分およびクロマ成分のための量子化ステップビット(たとえば、qpビット)を決定することができる。たとえば、ルーマのための量子化ステップビット(たとえば、qp_bitsY)は、8−BitY,lossyに等しくなり得、クロマのための量子化ステップビット(たとえば、qp_bitsC)は、9−BitC,lossyに等しくなり得る。
ユニット104は、次いで、量子化のために444モードが選択されるべきであるか、422モードが選択されるべきであるかを判定することができる。444モードは、Y、Co、およびCgがそれぞれ同じサンプリングレートを有することを意味する。422モードは、Co成分、およびCg成分が、Yの半分のサンプルレートでサンプリングされることを意味する。422モードは、クロマ成分がサブサンプリングされることを意味し得る。
いくつかの例では、BitC,lossyが小さいとき、クロマサブサンプリング(たとえば、422モード)は、画像品質を向上させることができる。たとえば、ユニット104は、422モードを選択し、偶数ピクセルを落とすことによって、クロマ成分をサブサンプリングすることができる。いくつかの例では、ユニット104は、以下の式が真であるとき、422モードを選択することができる。そうでない場合、ユニット104は、444モードを選択することができ、444モードは、クロマ成分のサブサンプリングがないことを意味し得る。
Figure 2014523703
バイアスの値は、構成であり得る。いくつかの例では、より高いバイアスの値は、ユニット104が444モードよりもしばしば422モードを選択し得ることを意味し得る。
ユニット106は、ユニット104からの出力を受信することができる。均一スカラ量子化(uniform scalar quantization)では、ユニット106は、各サンプルをqp_bits(たとえば、ルーマのためのqp_bitsY、およびクロマ成分のためのqp_bitsC)だけ右シフトすることができる。ユニット106の出力は、量子化器58の出力であり得る。たとえば、予測ユニット60およびPCM符号器66は、量子化器58のユニット106からの出力を受信することができる。不可逆圧縮ユニット55が、PCMモード決定ユニット112と符号化モード決定ユニット114とを含まない例では、BFLC符号器62およびVLC符号器64は、予測ユニット60の出力を受信することができる。不可逆圧縮ユニット55が、PCMモード決定ユニット112と符号化モード決定ユニット114とを含む例では、PCMモード決定ユニット112および符号化モード決定ユニット114は、上記で説明した方法で機能することができる。
図13から図15は、可逆ビットストリームの例を示す概念図である。図16および図17は、不可逆ビットストリームの例を示す概念図である。図13から図15は、可逆ビットストリームの例を示すので、図13から図15では、不可逆モードフラグは「0」であり得る。図13では、PCMフラグは、圧縮ユニット20がパターンモード符号器40を含まないとき、「1」であり得、圧縮ユニット20がパターンモード符号器40を含むとき、「10」であり得る。図13の残りの部分は、図6に示すビットストリームと実質的に同様であり得る。図14では、可逆PATフラグは、パターンモード符号器40が色値を符号化したことを示すために、「11」であり得る。図14の残りの部分は、図10に示すビットストリームと実質的に同様であり得る。
図15は、他の符号化方式(たとえば、BFLC符号器42、VLC符号器44、およびスキップモード符号器46)のためのビットストリームを示す。たとえば、可逆PCMフラグは「0」であり得る。予測方向ビットは、予測ユニット36が色値を予測した方法を示すことができる。たとえば、予測ユニット36が1D予測を利用した場合、「0」は、プログレッシブ予測を示すことができ、「1」は、インターリーブ予測を示すことができる。予測ユニット36が2D予測を利用した場合、「0」は、水平予測を示すことができ、「1」は、垂直予測を示すことができる。予測ユニット36がまた、斜め予測をも実施することができる例では、予測方向は、予測方向を示すために2ビットによって表され得る。
Y符号化モード、Co符号化モード、およびCg符号化モードは、圧縮ユニット20がY成分、Co成分、およびCg成分をそれぞれ符号化するために利用した、特定の符号器を示す。たとえば、上記で説明したように、BFLC符号器42、VLC符号器44、およびスキップモード符号器46のうちの異なるものが、Y成分、Co成分、およびCg成分のうちの異なるものを符号化してもよい。Y符号化モード、Co符号化モード、およびCg符号化モードは、BFLC符号器42、VLC符号器44、およびスキップモード符号器46のうちのどれがY成分、Co成分、およびCg成分をそれぞれ符号化したかを示す。Yブロック、Coブロック、およびCgブロックは、符号化されたY成分、Co成分、およびCg成分であり得る。これらの成分の各々は、符号化の後、異なるビット数を利用することができるので、Yブロック、Coブロック、およびCgブロックのサイズは、可変であり得る。
図16および図17は、不可逆ビットストリームの例を示すので、図16および図17では、不可逆モードフラグは「1」であり得る。図16は、圧縮ユニット20が画像フレームブロックを不可逆圧縮するためにPCM符号器66を利用した例を示し、したがって、図16では、不可逆PCMフラグは1である。図17は、圧縮ユニット20が画像フレームブロックを不可逆圧縮するためにPCM符号器66を利用しなかった例を示し、したがって、図17では、不可逆PCMフラグは0である。たとえば、図17は、BFLC符号器62およびVLC符号器64など、PCM符号器66以外の符号器からの例示的なビットストリームを示す。
図16および図17では、444/422フラグは、量子化器58が量子化のために444モードを利用したことを示すために、「0」であり得、444/422フラグは、量子化器58が量子化のために422モードを利用したことを示すために、「1」であり得る。444/422フラグが「1」であるとき、Co成分およびCg成分は、Y成分の半分であり得る。図16および図17における他の部分は、それぞれ図13および図15における部分と同様であり得る。
図20は、圧縮ユニットの別の例を示すブロック図である。たとえば、図20は、図2において不可逆圧縮および可逆圧縮のために別々であった、様々な構成要素が共有される、圧縮ユニット20の一例を示す。たとえば、予測ユニット122、BFLC符号器124、VLC符号器126、スキップモード符号器128、PCM符号器130、およびパターンモード符号器132は、図2における対応する符号器およびユニットについて説明したものと実質的に同様の方法で機能することができる。バジェット制御器138もまた、図2におけるバジェット制御器52と同様の方法で機能することができ、符号化画像データ選択器134は、可逆圧縮画像データ選択器50または不可逆圧縮画像データ選択器68のうちのいずれか一方と同様の方法で機能することができる。
しかしながら、図20の例では、圧縮は、2つのパスにおいて実行され得る。たとえば、第1のパスにおいて、バジェット制御器138は、非量子化画像フレームブロックのためにパススルーMUX116、118、および120を選択することができる(たとえば、可逆圧縮ユニット35に相当する、パススルー量子化器58以外のパス)。予測ユニット122は、上記で説明したように、1D予測または2D予測を実行し、パターンモード符号器132、BFLC符号器124、VLC符号器126、およびスキップモード符号器128に出力することができ、それらの各々は、上記で説明した方法で圧縮を実行することができる。PCM符号器130もまた、上記で説明したように、パルス符号変調を実行することができる。符号化画像データ選択器134は、PCM符号器130、パターンモード符号器132、BFLC符号器124、VLC符号器126、およびスキップモード符号器128から出力を受信し、出力された最少ビット数を決定することができる。
符号化画像データ選択器134は、最少ビット数をもつビットストリームを時間的に記憶し、(たとえば、不可逆圧縮ユニット55に相当する)パススルー量子化器58を選択することをMUX116、118、および120に行わせるように、バジェット制御器138に指示することができる。予測ユニット122、PCM符号器130、パターンモード符号器132、BFLC符号器124、VLC符号器126、およびスキップモード符号器128は、非量子化画像フレームブロックについて上記で説明したものと実質的に同様の方法で、量子化画像フレームブロックを圧縮することができる。
符号化画像データ選択器134は、最少ビット数を生じた量子化圧縮画像フレームの中で選択することができる。符号化画像データ選択器134は、次いで、可逆圧縮を使用して決定された最少ビット数をもつビットストリームを、不可逆圧縮を使用して決定された最少ビット数をもつビットストリームと比較することができる。符号化画像データ選択器134は、バジェット制御器138から現在のビット割り当て値を受信し、現在のビット割り当てを満たすビットストリームを出力することをMUX136に行わせることができる。前述のように、可逆ビットストリームと不可逆ビットストリームの両方が現在のビット割り当てを満たす場合、MUX136は、可逆ビットストリームを出力することができる。
バジェット制御器138は、現在の画像フレームブロックのためにMUX136によって出力されたビット数を受信することができ、次の画像フレームブロックのためのビット割り当てを決定することができる。圧縮ユニット20は、次いで、圧縮されるべきブロックがそれ以上なくなるまで、次の画像フレームブロックに対して上記のステップを繰り返すことができる。その上、図示されていないが、いくつかの例では、図20に示す圧縮ユニット20の例は、図18および図19に示すものと同様の、上記で説明したものと同様の方法で機能する、符号化モード決定ユニットと、PCMモード決定ユニットとを含み得る。
図20に示す圧縮ユニット20の例は、2つのパス(たとえば、可逆圧縮のための1つのパス、および不可逆圧縮のための別のパス)を必要とし得、図2に示す圧縮ユニット20の例は、単一のパスを必要とし得るので、図20に示す圧縮ユニット20の例は、両方が同時に出力するように、図2に示す例と比較して2倍の速度(たとえば、2倍のクロック速度)で動作することができる。したがって、図20における圧縮ユニット20の例は、図2における圧縮ユニット20の例と比較して、より小さい面積を必要とし得るが、より高い速度で動作することを必要とし得る。
図21および図22は、画像プロセッサが色値を圧縮ユニットへ送信する例示的な方法を示すブロック図である。たとえば、図1Aから図1D、および図2に関して上記で説明したように、圧縮ユニット20は、画像プロセッサ14からRGB色値を受信することができ、いくつかの例では、2D予測のために以前のラインを受信することもできる。図21および図22は、画像プロセッサ14がそのような画像データを圧縮ユニット20へ送信する例示的な方法を示す。
たとえば、図21では、圧縮ユニット20は、画像プロセッサ14からRGB色値を受信し、圧縮ユニット20は、システムメモリ140の非圧縮ライン(W)146にラインNを記憶する。システムメモリ140は、圧縮ユニット20を収容するデバイスのシステムメモリであってもよく、デバイスの様々な構成要素によって共有され得る。たとえば、システムメモリ140は、デバイス12(図1Bから図1D)またはパネルデバイス16(図1A)の一部であってもよく、適用可能な場合、デバイス12またはパネルデバイス16内の異なる構成要素のためのデータを記憶することができる。
図21に示した例では、圧縮ユニット20は、画像フレームのラインを圧縮することができる。たとえば、ラインの長さがWであり、圧縮ユニット20が画像データを50%だけ圧縮する場合、得られた圧縮ラインの長さは、W/2であり得る。ピン(ping)142およびポン(pong)144は、ともに、圧縮ラインを記憶することができるピンポンバッファを形成することができる。たとえば、ピンポンバッファのサイズは、W/2であり得る。ピンポンバッファでは、どの時点においても、他方のバッファが、バッファに記憶されるべきデータを読取り中である間に、一方のバッファは、バッファからデータを出力中であり得る。バッファがデータの出力を完了した後、2つのバッファの役割は、スイッチである。このスイッチは、どこからデータが出力されるべきであるか、またはどこにデータが記憶されるべきであるかを示す、ポインタの値を変更することによって、達成され得る。
ピンポンバッファの出力は、圧縮画像データであり得る。たとえば、図1A、図1B、および図1Dに示した例では、フレームバッファ22が、ピンポンバッファ(すなわち、ピン142およびポン144)の出力を受信することができる。図1Cに示した例では、圧縮解除ユニット24が、ピンポンバッファの出力を受信することができる。
また、非圧縮ライン(W)146に記憶された現在の非圧縮ラインは、次のラインにとってラインN−1である。この例では、圧縮ユニット20は、予測の目的で、非圧縮ライン(W)146からラインN−1を受信することができる。圧縮ユニット20はまた、現在のラインNを非圧縮ライン(W)146に記憶することもできる。たとえば、ピン142に記憶された圧縮画像フレームデータが、ポン144に出力されるとき、圧縮ユニット20は、非圧縮ライン(W)146からラインを受信することができ、このラインは、ここでラインN−1になるようになり、圧縮ユニット20は、現在のラインNを非圧縮ライン(W)146に記憶することができる。
図21の例では、圧縮ユニット20は、ライン単位で画像フレームを圧縮することができ、その理由は、画像フレームの全体を圧縮することが、部分的ラインを生じることがあり、部分的ラインは、システムメモリ140へのアクセスのスケジューリングのタスクが課せられたスケジューラに適合しないことがあるからである。また、図21の例では、システムメモリ140は、最大2*W個のメモリロケーションを割り振ることができ、このことは、圧縮ユニット20が画像フレームを圧縮する過程における間に、圧縮画像フレームの一部を記憶するための、最小のメモリ要件であり得る。いくつかの例では、圧縮ユニット20のバジェット制御器54は、1ライン当たりの未使用ビットを追跡することができ、固定のパターンを送ることができ、このことは、電力を最小限に抑えることができる。
図22に示す例は、図21に示す例と同様であり得る。しかしながら、図22では、画像プロセッサ14は、RGB色値をシステムメモリ140に出力することができる。圧縮ユニット20は、システムメモリ140からRGB色値を受信し、ならびに、圧縮画像フレームの結果をシステムメモリ140に一時的に記憶することができる。また、図22に示す例は、圧縮ユニット20が、ラインごとではなく、スライスにおいて画像フレームブロックを圧縮することを可能にすることができ、ただし、スライスは複数のラインである。
たとえば、図22では、画像プロセッサ14は、RGB色値を、ピン148とポン150とを含むピンポンバッファに出力する。これらの色値は圧縮されていないので、ピン148およびポン150のサイズは、図22に示すように、サイズWのラインを記憶するために十分であり得る。ポン150の出力は、ラインNであり得、非圧縮ライン(W)152の出力は、ラインN−1であり得る。たとえば、非圧縮ライン(W)152は、ポン150からラインNを受信することができる。次いで、ここでラインNと見なされる、次のラインにとって、非圧縮ライン(W)152は、ラインN−1を記憶すると見なされ得る。圧縮ユニット20は、ポン150からラインNと、非圧縮ライン(W)152からラインN−1とを受信することができ、ポン150は、次いで、現在のラインNを非圧縮ライン(W)152に記憶することができ、このラインは、次のラインにとってラインN−1になるようになる。
圧縮ユニット20は、図22に示した例では、圧縮画像フレームブロックを、ピン154とポン156とを含むピンポンバッファに出力することができる。この例では、ピンポンバッファのサイズは、画像フレームのスライスを記憶するために十分であり得る。
図22に示した例は、図21に示す例と比較して、追加のピンポンバッファを必要とし得る。たとえば、図22は、可変ビットレートを平滑化するために、第2のセットのピンポンバッファを必要とし得る。図22の例におけるピンポンバッファのためのメモリ要件は、(3*W+2*スライス*W/2)であり得る。4本のラインを含むスライスでは、メモリ要件は、7Wであり得る。
図23および図24は、本開示で説明する態様による、画像フレームを圧縮する結果を示す概念図である。たとえば、図23は、元の画像フレームの4本のラインと、圧縮後の同じ4本のラインとを示す。図示のように、4本のラインの各々は、1ライン当たりの未使用ビットとともに、50%よりも多く圧縮される。図24の例は、元の画像フレームの12本のラインを示す。この例では、元の画像フレームの4本のラインがスライスを形成し、元の画像フレームにおいて3個のスライスを生じる。図示のように、スライスの各々は、1スライス当たりの未使用ビットとともに、50%よりも多く圧縮される。たとえば、図23と図24の両方では、圧縮画像フレームの暗い部分が、使用されたビットを示し、白い部分が未使用ビットを示す。
図25は、本開示で説明する技法による例示的な動作を示すフローチャートである。説明のために、図2への参照を行う。
プロセッサは、初期ビット割り当てを決定することができる(158)。たとえば、プロセッサは、デバイス12の画像プロセッサ14、またはCPUなど、ある他のプロセッサであり得る。プロセッサは、1ブロック当たりの平均ビット数および圧縮ビットしきい値に基づいて、初期ビット割り当てを決定することができる。たとえば、プロセッサは、目標圧縮値に基づく、1ブロック当たりの平均ビット数を決定することができる。プロセッサは、1ブロック当たりの平均ビット数から圧縮ビットしきい値を引いて、1ブロック当たりの平均の余分のビットを決定することができる。プロセッサは、1ブロック当たりの平均の余分のビットに、画像フレーム内のブロック数を掛けて、画像フレームのための初期ビット割り当てを決定することができる。
圧縮ユニット20は、現在のビット割り当てを決定することができる(160)。画像フレームの第1のブロックのための現在のビット割り当ては、初期ビット割り当てを圧縮ビットしきい値と合計したものであり得る。圧縮ユニット20は、以前のビット割り当てから以前の圧縮ブロックのビット数を引くことと、圧縮ビットしきい値を結果に合計することとによって、第1のブロックの後のブロックのための現在のビット割り当てを決定することができる。
圧縮ユニット20は、符号化モードを決定することができる(162)。たとえば、上記で説明したように、圧縮ユニット20は、画像フレームのブロック内のピクセルの色値を符号化するための方法を決定することができる、符号化モード決定ユニットを含み得る。いくつかの例では、符号化モード決定ユニットは、画像フレームのブロック内のピクセルの色値を形成する成分のうちの少なくとも2つについて、異なる符号化方式を決定することができる。
圧縮ユニット20は、次いで、ブロックを符号化することができる(164)。圧縮ユニット20は、次いで、以前の圧縮ブロック(たとえば、圧縮されたばかりのブロック)のビット数に基づいて、現在のブロックのためのビット割り当てを再決定することができる。圧縮ユニット20は、圧縮ユニット20が画像フレーム全体を圧縮するまで、これらのステップを繰り返すことができる。
図26は、本開示で説明する技法による別の例示的な動作を示すフローチャートである。説明のために、図2への参照を行う。
圧縮ユニット20は、上記で説明したように、現在のビット割り当てを決定することができる(166)。いくつかの例では、圧縮ユニット20は、画像フレーム全体のための初期ビット割り当てに基づいて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを決定することができる。いくつかの例では、圧縮ユニット20は、画像フレームのラインのための初期ビット割り当てに基づいて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを決定することができる。いくつかの例では、圧縮ユニット20は、画像フレームのスライスのための初期ビット割り当てに基づいて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを決定することができる。
圧縮ユニット20は、画像フレームブロックにおいて、いくつかの例では同時に、可逆圧縮と不可逆圧縮とを実行することができる(168)。可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、圧縮ユニット20は、可逆圧縮ブロックのビットを出力することができる(170)。可逆圧縮ブロックのビット数が現在のビット割り当てよりも大きく、かつ、不可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、圧縮ユニット20は、不可逆圧縮ブロックのビットを出力することができる(172)。不可逆圧縮ブロックまたは可逆圧縮ブロックのビットを出力するために、圧縮ユニット20は、それらのビットをフレームバッファ22に記憶するか、または、それらのビットを圧縮解除ユニット24に出力することができる。
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶され得る。コンピュータ可読媒体は、コンピュータデータ記憶媒体を含み得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、EEPROM、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
コードは、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指し得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(すなわち、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、ハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1] 圧縮ユニットを用いて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値と、に少なくとも基づいて、決定することと、
前記圧縮ユニットを用いて、前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記圧縮ユニットを用いて、前記可逆圧縮ブロックのビットを出力することと
を備える方法。
[C2] 前記圧縮ユニットを用いて、前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記圧縮ユニットを用いて、前記不可逆圧縮ブロックのビットを出力することと
をさらに備える、C1に記載の方法。
[C3] 前記不可逆圧縮を実行することが、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
前記量子化ビットにおいて、圧縮を実行することと
を備える、C2に記載の方法。
[C4] 前記方法が、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定すること
をさらに備え、
ビットを量子化することが、前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックの量子化ビットを備える、C3に記載の方法。
[C5] 前記不可逆圧縮を実行することが、前記可逆圧縮を実行することと同時に、前記不可逆圧縮を実行することを備える、C2に記載の方法。
[C6] 前記可逆圧縮を実行することが、第1の可逆圧縮を実行することを備え、前記可逆圧縮ブロックが、第1の可逆圧縮ブロックを備え、前記方法が、
第2の、異なる可逆圧縮を、前記第1の可逆圧縮と同時に実行して、第2の可逆圧縮ブロックを生成することと、
第1の不可逆圧縮を、前記第1の可逆圧縮および前記第2の可逆圧縮と同時に実行して、第1の不可逆圧縮ブロックを生成することと、
第2の、異なる不可逆圧縮を、前記第1の可逆圧縮、前記第2の可逆圧縮、および前記第1の不可逆圧縮と同時に実行して、第2の不可逆圧縮ブロックを生成することと、
前記第1の可逆圧縮ブロックおよび前記第2の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第1の可逆圧縮ブロックまたは前記第2の可逆圧縮ブロックを選択することと、
前記第1の不可逆圧縮ブロックおよび前記第2の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第1の不可逆圧縮ブロックまたは前記第2の不可逆圧縮ブロックを選択することと、
前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
をさらに備える、C1に記載の方法。
[C7] 前記方法が、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化すること
をさらに備え、
前記第1の不可逆圧縮を実行することが、前記量子化ビットにおいて、第1の圧縮を実行することを備え、
前記第2の不可逆圧縮を実行することが、前記量子化ビットにおいて、第2の、異なる圧縮を実行することを備える、C6に記載の方法。
[C8] 前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶することを備える、C1に記載の方法。
[C9] 前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信することを備える、C1に記載の方法。
[C10] 前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
をさらに備える、C1に記載の方法。
[C11] 1ブロック当たりの平均ビット数を決定することと、
前記1ブロック当たりの平均ビット数から前記圧縮ビットしきい値を引いて、1ブロック当たりの平均の余分のビットを決定することと、
前記1ブロック当たりの平均の余分のビットに、前記画像フレーム内のブロック数を掛けて、前記画像フレームのための初期ビット割り当てを決定することと
をさらに備える、C1に記載の方法。
[C12] 前記現在のブロックが、初期ブロックの後のブロックを備え、前記方法が、
前記圧縮ビットしきい値を、前記画像フレームのための前記初期ビット割り当てに加算して、前記初期ブロックのための圧縮バジェットを決定すること
をさらに備える、C11に記載の方法。
[C13] 前記1ブロック当たりの平均ビット数を決定することが、1ピクセル当たりのビット数に、1ブロック当たりのピクセル数を掛けて、1ブロック当たりのビット数を決定することと、前記1ブロック当たりのビット数に、目標圧縮値を掛けることとを備える、C11に記載の方法。
[C14] 前記現在のブロックのための前記現在のビット割り当てを決定することが、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを備える、C1に記載の方法。
[C15] 前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、C1に記載の方法。
[C16] 前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、C1に記載の方法。
[C17] 前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、C1に記載の方法。
[C18] 画像フレームを作成するように構成された画像プロセッサと、
前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行うように構成された圧縮ユニットと
を備えるシステム。
[C19] 前記圧縮ユニットが、
前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
を行うように構成される、C18に記載のシステム。
[C20] 前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、C19に記載のシステム。
[C21] 前記圧縮ユニットが、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
を行うように構成される、C20に記載のシステム。
[C22] 前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、C19に記載のシステム。
[C23] 前記可逆圧縮が、第1の可逆圧縮を備え、前記可逆圧縮ブロックが、第1の可逆圧縮ブロックを備え、前記圧縮ユニットが、
第2の、異なる可逆圧縮を、前記第1の可逆圧縮と同時に実行して、第2の可逆圧縮ブロックを生成することと、
第1の不可逆圧縮を、前記第1の可逆圧縮および前記第2の可逆圧縮と同時に実行して、第1の不可逆圧縮ブロックを生成することと、
第2の、異なる不可逆圧縮を、前記第1の可逆圧縮、前記第2の可逆圧縮、および前記第1の不可逆圧縮と同時に実行して、第2の不可逆圧縮ブロックを生成することと、
前記第1の可逆圧縮ブロックおよび前記第2の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第1の可逆圧縮ブロックまたは前記第2の可逆圧縮ブロックを選択することと、
前記第1の不可逆圧縮ブロックおよび前記第2の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第1の不可逆圧縮ブロックまたは前記第2の不可逆圧縮ブロックを選択することと、
前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
を行うように構成される、C18に記載のシステム。
[C24] 前記圧縮ユニットが、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
前記量子化ビットにおいて、第1の圧縮を実行して、前記第1の不可逆圧縮を実行することと、
前記量子化ビットにおいて、第2の、異なる圧縮を実行して、前記第2の不可逆圧縮を実行することと
を行うように構成される、C23に記載のシステム。
[C25] 前記画像プロセッサを含むデバイスと、前記圧縮ユニットを含むパネルデバイスとをさらに備える、C18に記載のシステム。
[C26] 前記画像プロセッサと前記圧縮ユニットとを含むデバイスをさらに備える、C18に記載のシステム。
[C27] 前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶する、C18に記載のシステム。
[C28] 前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信する、C18に記載のシステム。
[C29] 前記圧縮ユニットが、
前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
を行うように構成される、C18に記載のシステム。
[C30] 前記圧縮ユニットが、前記現在のブロックのための前記現在のビット割り当てを決定するために、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを行うように構成される、C18に記載のシステム。
[C31] 前記圧縮ユニットが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、C18に記載のシステム。
[C32] 前記圧縮ユニットが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、C18に記載のシステム。
[C33] 前記圧縮ユニットが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、C18に記載のシステム。
[C34] 画像フレームを受信することと、
前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行うように構成された圧縮ユニット。
[C35] 前記圧縮ユニットが、
前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
を行うように構成される、C34に記載の圧縮ユニット。
[C36] 前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、C35に記載の圧縮ユニット。
[C37] 前記圧縮ユニットが、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
を行うように構成される、C36に記載の圧縮ユニット。
[C38] 前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、C35に記載の圧縮ユニット。
[C39] 画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定するための手段と、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成するための手段と、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力するための手段と
を備えるシステム。
[C40] 実行されたとき、1つまたは複数のプロセッサに、
画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。

Claims (40)

  1. 圧縮ユニットを用いて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値と、に少なくとも基づいて、決定することと、
    前記圧縮ユニットを用いて、前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
    前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記圧縮ユニットを用いて、前記可逆圧縮ブロックのビットを出力することと
    を備える方法。
  2. 前記圧縮ユニットを用いて、前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
    前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記圧縮ユニットを用いて、前記不可逆圧縮ブロックのビットを出力することと
    をさらに備える、請求項1に記載の方法。
  3. 前記不可逆圧縮を実行することが、
    量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
    前記量子化ビットにおいて、圧縮を実行することと
    を備える、請求項2に記載の方法。
  4. 前記方法が、
    前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定すること
    をさらに備え、
    ビットを量子化することが、前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックの量子化ビットを備える、請求項3に記載の方法。
  5. 前記不可逆圧縮を実行することが、前記可逆圧縮を実行することと同時に、前記不可逆圧縮を実行することを備える、請求項2に記載の方法。
  6. 前記可逆圧縮を実行することが、第1の可逆圧縮を実行することを備え、前記可逆圧縮ブロックが、第1の可逆圧縮ブロックを備え、前記方法が、
    第2の、異なる可逆圧縮を、前記第1の可逆圧縮と同時に実行して、第2の可逆圧縮ブロックを生成することと、
    第1の不可逆圧縮を、前記第1の可逆圧縮および前記第2の可逆圧縮と同時に実行して、第1の不可逆圧縮ブロックを生成することと、
    第2の、異なる不可逆圧縮を、前記第1の可逆圧縮、前記第2の可逆圧縮、および前記第1の不可逆圧縮と同時に実行して、第2の不可逆圧縮ブロックを生成することと、
    前記第1の可逆圧縮ブロックおよび前記第2の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第1の可逆圧縮ブロックまたは前記第2の可逆圧縮ブロックを選択することと、
    前記第1の不可逆圧縮ブロックおよび前記第2の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第1の不可逆圧縮ブロックまたは前記第2の不可逆圧縮ブロックを選択することと、
    前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
    前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
    をさらに備える、請求項1に記載の方法。
  7. 前記方法が、
    量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化すること
    をさらに備え、
    前記第1の不可逆圧縮を実行することが、前記量子化ビットにおいて、第1の圧縮を実行することを備え、
    前記第2の不可逆圧縮を実行することが、前記量子化ビットにおいて、第2の、異なる圧縮を実行することを備える、請求項6に記載の方法。
  8. 前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶することを備える、請求項1に記載の方法。
  9. 前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信することを備える、請求項1に記載の方法。
  10. 前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
    をさらに備える、請求項1に記載の方法。
  11. 1ブロック当たりの平均ビット数を決定することと、
    前記1ブロック当たりの平均ビット数から前記圧縮ビットしきい値を引いて、1ブロック当たりの平均の余分のビットを決定することと、
    前記1ブロック当たりの平均の余分のビットに、前記画像フレーム内のブロック数を掛けて、前記画像フレームのための初期ビット割り当てを決定することと
    をさらに備える、請求項1に記載の方法。
  12. 前記現在のブロックが、初期ブロックの後のブロックを備え、前記方法が、
    前記圧縮ビットしきい値を、前記画像フレームのための前記初期ビット割り当てに加算して、前記初期ブロックのための圧縮バジェットを決定すること
    をさらに備える、請求項11に記載の方法。
  13. 前記1ブロック当たりの平均ビット数を決定することが、1ピクセル当たりのビット数に、1ブロック当たりのピクセル数を掛けて、1ブロック当たりのビット数を決定することと、前記1ブロック当たりのビット数に、目標圧縮値を掛けることとを備える、請求項11に記載の方法。
  14. 前記現在のブロックのための前記現在のビット割り当てを決定することが、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを備える、請求項1に記載の方法。
  15. 前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、請求項1に記載の方法。
  16. 前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、請求項1に記載の方法。
  17. 前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、請求項1に記載の方法。
  18. 画像フレームを作成するように構成された画像プロセッサと、
    前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
    前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
    前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
    を行うように構成された圧縮ユニットと
    を備えるシステム。
  19. 前記圧縮ユニットが、
    前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
    前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
    を行うように構成される、請求項18に記載のシステム。
  20. 前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、請求項19に記載のシステム。
  21. 前記圧縮ユニットが、
    前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
    前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
    を行うように構成される、請求項20に記載のシステム。
  22. 前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、請求項19に記載のシステム。
  23. 前記可逆圧縮が、第1の可逆圧縮を備え、前記可逆圧縮ブロックが、第1の可逆圧縮ブロックを備え、前記圧縮ユニットが、
    第2の、異なる可逆圧縮を、前記第1の可逆圧縮と同時に実行して、第2の可逆圧縮ブロックを生成することと、
    第1の不可逆圧縮を、前記第1の可逆圧縮および前記第2の可逆圧縮と同時に実行して、第1の不可逆圧縮ブロックを生成することと、
    第2の、異なる不可逆圧縮を、前記第1の可逆圧縮、前記第2の可逆圧縮、および前記第1の不可逆圧縮と同時に実行して、第2の不可逆圧縮ブロックを生成することと、
    前記第1の可逆圧縮ブロックおよび前記第2の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第1の可逆圧縮ブロックまたは前記第2の可逆圧縮ブロックを選択することと、
    前記第1の不可逆圧縮ブロックおよび前記第2の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第1の不可逆圧縮ブロックまたは前記第2の不可逆圧縮ブロックを選択することと、
    前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
    前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
    を行うように構成される、請求項18に記載のシステム。
  24. 前記圧縮ユニットが、
    量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
    前記量子化ビットにおいて、第1の圧縮を実行して、前記第1の不可逆圧縮を実行することと、
    前記量子化ビットにおいて、第2の、異なる圧縮を実行して、前記第2の不可逆圧縮を実行することと
    を行うように構成される、請求項23に記載のシステム。
  25. 前記画像プロセッサを含むデバイスと、前記圧縮ユニットを含むパネルデバイスとをさらに備える、請求項18に記載のシステム。
  26. 前記画像プロセッサと前記圧縮ユニットとを含むデバイスをさらに備える、請求項18に記載のシステム。
  27. 前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶する、請求項18に記載のシステム。
  28. 前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信する、請求項18に記載のシステム。
  29. 前記圧縮ユニットが、
    前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
    を行うように構成される、請求項18に記載のシステム。
  30. 前記圧縮ユニットが、前記現在のブロックのための前記現在のビット割り当てを決定するために、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを行うように構成される、請求項18に記載のシステム。
  31. 前記圧縮ユニットが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、請求項18に記載のシステム。
  32. 前記圧縮ユニットが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、請求項18に記載のシステム。
  33. 前記圧縮ユニットが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、請求項18に記載のシステム。
  34. 画像フレームを受信することと、
    前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
    前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
    前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
    を行うように構成された圧縮ユニット。
  35. 前記圧縮ユニットが、
    前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
    前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
    を行うように構成される、請求項34に記載の圧縮ユニット。
  36. 前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、請求項35に記載の圧縮ユニット。
  37. 前記圧縮ユニットが、
    前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
    前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
    を行うように構成される、請求項36に記載の圧縮ユニット。
  38. 前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、請求項35に記載の圧縮ユニット。
  39. 画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定するための手段と、
    前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成するための手段と、
    前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力するための手段と
    を備えるシステム。
  40. 実行されたとき、1つまたは複数のプロセッサに、
    画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
    前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
    前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
    を行わせる命令を記憶したコンピュータ可読記憶媒体。
JP2014519013A 2011-07-05 2012-06-28 ビット割り当てに基づく画像データの選択的な可逆−不可逆圧縮 Ceased JP2014523703A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161504510P 2011-07-05 2011-07-05
US61/504,510 2011-07-05
US13/535,020 US9185424B2 (en) 2011-07-05 2012-06-27 Image data compression
US13/535,020 2012-06-27
PCT/US2012/044610 WO2013006370A1 (en) 2011-07-05 2012-06-28 Selective lossless-lossy compression of image data based on bit budget

Publications (1)

Publication Number Publication Date
JP2014523703A true JP2014523703A (ja) 2014-09-11

Family

ID=47437365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014519013A Ceased JP2014523703A (ja) 2011-07-05 2012-06-28 ビット割り当てに基づく画像データの選択的な可逆−不可逆圧縮

Country Status (6)

Country Link
US (1) US9185424B2 (ja)
EP (1) EP2730085A1 (ja)
JP (1) JP2014523703A (ja)
KR (1) KR101547434B1 (ja)
CN (1) CN103636204A (ja)
WO (1) WO2013006370A1 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101842852B1 (ko) 2010-09-24 2018-03-27 선 페이턴트 트러스트 화상 부호화 방법, 화상 복호화 방법, 화상 부호화 장치, 및 화상 복호화 장치
JP6145965B2 (ja) * 2012-04-19 2017-06-14 富士ゼロックス株式会社 画像符号化装置及び画像復号化装置並びにプログラム
US9706200B2 (en) 2012-06-18 2017-07-11 Qualcomm Incorporated Unification of signaling lossless coding mode and pulse code modulation (PCM) mode in video coding
JP2014078860A (ja) * 2012-10-11 2014-05-01 Samsung Display Co Ltd 圧縮器、駆動装置、表示装置および圧縮方法
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
US20150049099A1 (en) * 2013-08-13 2015-02-19 Mediatek Inc. Data processing apparatus for transmitting/receiving compressed pixel data groups of picture over display interface and related data processing method
KR101569093B1 (ko) * 2013-08-13 2015-11-13 삼성에스디에스 주식회사 분산 시스템에서 데이터를 처리하는 방법
US9420295B2 (en) 2014-01-10 2016-08-16 Sony Corporation Joint mode decision with shared bit-budget condition
WO2015131328A1 (en) * 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Adaptive switching of color spaces, color sampling rates and/or bit depths
US10182241B2 (en) 2014-03-04 2019-01-15 Microsoft Technology Licensing, Llc Encoding strategies for adaptive switching of color spaces, color sampling rates and/or bit depths
US9736481B2 (en) * 2014-03-14 2017-08-15 Qualcomm Incorporated Quantization parameters for color-space conversion coding
EP3123716B1 (en) 2014-03-27 2020-10-28 Microsoft Technology Licensing, LLC Adjusting quantization/scaling and inverse quantization/scaling when switching color spaces
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
US9848193B2 (en) * 2014-04-15 2017-12-19 Qualcomm Incorporated System and method for selecting quantization parameter (QP) in display stream compression (DSC)
US9843816B2 (en) * 2014-04-21 2017-12-12 Qualcomm Incorporated System and method for coding in pattern mode for display stream compression (DSC)
US10687069B2 (en) 2014-10-08 2020-06-16 Microsoft Technology Licensing, Llc Adjustments to encoding and decoding when switching color spaces
GB2533109B (en) * 2014-12-09 2018-11-28 Gurulogic Microsystems Oy Encoder, decoder and method for data
KR102332782B1 (ko) * 2014-12-15 2021-11-30 삼성전자주식회사 시각 특성을 고려한 영상 데이터 압축
GB2534420B (en) * 2015-01-26 2021-01-13 Advanced Risc Mach Ltd Data processing systems
US9536045B1 (en) * 2015-03-16 2017-01-03 D.R. Systems, Inc. Dynamic digital image compression based on digital image characteristics
US10091506B2 (en) * 2015-06-11 2018-10-02 Sony Corporation Data-charge phase data compression architecture
US10027968B2 (en) * 2015-06-12 2018-07-17 Sony Corporation Data-charge phase data compression tool
US20180041612A1 (en) * 2016-08-03 2018-02-08 Qualcomm Incorporated System and method for out-of-stream order compression of multi-media tiles in a system on a chip
CA2942257C (en) * 2016-09-19 2022-09-06 Pleora Technologies Inc. Methods and systems for balancing compression ratio with processing latency
EP3531700B1 (en) * 2016-10-18 2022-04-06 Panasonic Intellectual Property Management Co., Ltd. Image coding method, transmission method and image coding device
US10609418B2 (en) 2017-04-18 2020-03-31 Qualcomm Incorporated System and method for intelligent data/frame compression in a system on a chip
US10484685B2 (en) 2017-04-18 2019-11-19 Qualcomm Incorporated System and method for intelligent data/frame compression in a system on a chip
TWI634790B (zh) * 2017-05-17 2018-09-01 龍迅半導體(合肥)股份有限公司 一種晶片、數位視訊信號傳輸系統
CN106973243A (zh) * 2017-05-17 2017-07-21 深圳朗田亩半导体科技有限公司 一种芯片、数字视频信号传输系统
US10715175B2 (en) * 2017-08-28 2020-07-14 Tesla, Inc. Systems and methods for encoding and decoding
US10250899B1 (en) * 2017-09-22 2019-04-02 Qualcomm Incorporated Storing and retrieving high bit depth image data
CN110012292B (zh) * 2018-01-05 2022-02-08 澜至电子科技(成都)有限公司 用于压缩视频数据的方法和装置
KR102499286B1 (ko) * 2018-02-23 2023-02-14 삼성전자주식회사 이미지가 분할된 복수의 블록들의 압축과 관련된 압축 손실 데이터에 기반하여 이미지를 압축하는 전자 장치 및 그 동작 방법
GB2575121B (en) 2018-06-29 2022-12-28 Imagination Tech Ltd Guaranteed data compression
GB2575436B (en) 2018-06-29 2022-03-09 Imagination Tech Ltd Guaranteed data compression
GB2575434B (en) 2018-06-29 2020-07-22 Imagination Tech Ltd Guaranteed data compression
GB2608878B (en) 2018-06-29 2023-04-12 Imagination Tech Ltd Guaranteed data compression
GB2575122B (en) 2018-06-29 2021-12-01 Imagination Tech Ltd Mapping an n-bit number to an m-bit number
GB2575435B (en) 2018-06-29 2022-02-09 Imagination Tech Ltd Guaranteed data compression
GB2611864B (en) * 2019-08-23 2023-12-06 Imagination Tech Ltd Random accessible image data compression
US11244476B2 (en) * 2020-04-06 2022-02-08 Samsung Display Co., Ltd. Systems and methods for low-complexity near lossless fixed-rate hybrid data compression codecs
US11670009B2 (en) * 2020-08-26 2023-06-06 Meta Platforms Technologies, Llc Rate controlled image and texture data compression
CN112333472A (zh) * 2020-10-27 2021-02-05 深圳市玩视科技有限公司 视频传输方法、信号发送器及信号接收器
US12033361B2 (en) * 2021-02-05 2024-07-09 Qualcomm Incorporated Methods and apparatus for lossless compression of GPU data
CN112929590B (zh) * 2021-02-05 2022-10-04 广东欧谱曼迪科技有限公司 开机动画播放系统、压缩方法、装置及解压方法、装置
US11985341B2 (en) * 2022-06-22 2024-05-14 Ati Technologies Ulc Assigning bit budgets to parallel encoded video data

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001045301A (ja) * 1999-08-02 2001-02-16 Fuji Xerox Co Ltd 画像処理装置
JP2006080792A (ja) * 2004-09-08 2006-03-23 Canon Inc 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US20070098283A1 (en) * 2005-10-06 2007-05-03 Samsung Electronics Co., Ltd. Hybrid image data processing system and method
JP2007181051A (ja) * 2005-12-28 2007-07-12 Seiko Epson Corp 画像符号化装置及び画像符号化方法
JP2007281758A (ja) * 2006-04-05 2007-10-25 Seiko Epson Corp 動画表示システム、動画データ出力装置、表示装置およびプログラム
JP2008042687A (ja) * 2006-08-08 2008-02-21 Canon Inc 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2010004514A (ja) * 2007-10-01 2010-01-07 Sharp Corp 画像符号化装置、画像符号化方法、画像符復号化システム
JP2011004284A (ja) * 2009-06-19 2011-01-06 Canon Inc 画像符号化装置及びその制御方法
JP2013005414A (ja) * 2011-06-22 2013-01-07 Sharp Corp 符号化装置、復号化装置、符復号化システム、符号化方法及び復号化方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625712A (en) 1994-12-14 1997-04-29 Management Graphics, Inc. Iterative compression of digital images
US5710595A (en) 1994-12-29 1998-01-20 Lucent Technologies Inc. Method and apparatus for controlling quantization and buffering for digital signal compression
KR100203709B1 (ko) 1996-04-30 1999-06-15 전주범 비트 발생량 조절기능을 갖는 영상 부호화 시스템
US6185253B1 (en) 1997-10-31 2001-02-06 Lucent Technology, Inc. Perceptual compression and robust bit-rate control system
CA2261833A1 (en) 1999-02-15 2000-08-15 Xue Dong Yang Method and system of region-based image coding with dynamic streaming of code blocks
US6847656B1 (en) 2000-09-25 2005-01-25 General Instrument Corporation Statistical remultiplexing with bandwidth allocation among different transcoding channels
US7567721B2 (en) * 2002-01-22 2009-07-28 Digimarc Corporation Digital watermarking of low bit rate video
JP2004179725A (ja) 2002-11-25 2004-06-24 Matsushita Electric Ind Co Ltd データ転送回路及びその方法
US7940843B1 (en) 2002-12-16 2011-05-10 Apple Inc. Method of implementing improved rate control for a multimedia compression and encoding system
KR100679022B1 (ko) * 2004-10-18 2007-02-05 삼성전자주식회사 계층간 필터링을 이용한 비디오 코딩 및 디코딩방법과,비디오 인코더 및 디코더
US7502514B2 (en) 2004-11-15 2009-03-10 Smith Micro Software, Inc. System and method for lossless compression of already compressed files
US8687702B2 (en) 2008-10-27 2014-04-01 Advanced Micro Devices, Inc. Remote transmission and display of video data using standard H.264-based video codecs
CN102098507B (zh) * 2010-06-08 2013-12-25 同济大学 图像统合压缩方法及装置
US9398302B2 (en) * 2013-03-08 2016-07-19 Mediatek Inc. Image encoding method and apparatus with rate control by selecting target bit budget from pre-defined candidate bit budgets and related image decoding method and apparatus

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001045301A (ja) * 1999-08-02 2001-02-16 Fuji Xerox Co Ltd 画像処理装置
JP2006080792A (ja) * 2004-09-08 2006-03-23 Canon Inc 画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
US20070098283A1 (en) * 2005-10-06 2007-05-03 Samsung Electronics Co., Ltd. Hybrid image data processing system and method
JP2007181051A (ja) * 2005-12-28 2007-07-12 Seiko Epson Corp 画像符号化装置及び画像符号化方法
JP2007281758A (ja) * 2006-04-05 2007-10-25 Seiko Epson Corp 動画表示システム、動画データ出力装置、表示装置およびプログラム
JP2008042687A (ja) * 2006-08-08 2008-02-21 Canon Inc 画像処理装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
JP2010004514A (ja) * 2007-10-01 2010-01-07 Sharp Corp 画像符号化装置、画像符号化方法、画像符復号化システム
JP2011004284A (ja) * 2009-06-19 2011-01-06 Canon Inc 画像符号化装置及びその制御方法
JP2013005414A (ja) * 2011-06-22 2013-01-07 Sharp Corp 符号化装置、復号化装置、符復号化システム、符号化方法及び復号化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG201100457027; 中前、山田、山口、尾上: 'フレームメモリ容量削減のための準可逆画像圧縮手法 A Near-Lossless Image Compression Method for Frame' 電子情報通信学会技術研究報告 Vol.111, 20110623, P.163-168, 社団法人電子情報通信学会 The Institute of Electro *
JPN6015008245; 中前、山田、山口、尾上: 'フレームメモリ容量削減のための準可逆画像圧縮手法 A Near-Lossless Image Compression Method for Frame' 電子情報通信学会技術研究報告 Vol.111, 20110623, P.163-168, 社団法人電子情報通信学会 The Institute of Electro *

Also Published As

Publication number Publication date
CN103636204A (zh) 2014-03-12
KR20140028142A (ko) 2014-03-07
US20130010864A1 (en) 2013-01-10
US9185424B2 (en) 2015-11-10
EP2730085A1 (en) 2014-05-14
KR101547434B1 (ko) 2015-08-25
WO2013006370A1 (en) 2013-01-10

Similar Documents

Publication Publication Date Title
JP2014523703A (ja) ビット割り当てに基づく画像データの選択的な可逆−不可逆圧縮
KR101461771B1 (ko) 랜덤 액세스 능력을 갖는 이미지 압축 방법
KR102120571B1 (ko) 넌-4:4:4 크로마 서브-샘플링의 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
CN110495176B (zh) 用于显示流压缩的中点预测误差扩散
JP6921873B2 (ja) ディスプレイストリーム圧縮のためのサブストリーム多重化
KR101975093B1 (ko) 디스플레이 스트림 압축 (dsc) 을 위한 라그랑지안 파라미터 계산을 위한 시스템 및 방법
JP6449329B2 (ja) ディスプレイストリーム圧縮(dsc)において量子化パラメータ(qp)を選択するためのシステムおよび方法
KR20150114992A (ko) 프레임 버퍼 압축을 위한 혼합 모드
KR20170016849A (ko) 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
JP2018531556A6 (ja) 非4:4:4クロマサブサンプリングのディスプレイストリーム圧縮(dsc)のためのエントロピーコーディング技法
JP2019511865A (ja) ディスプレイストリーム圧縮のためのベクトルベースエントロピーコード化のための装置および方法
KR20180030021A (ko) 서브픽셀 패킹을 이용한 디스플레이 스트림 압축 픽셀 포맷 확장
US10609411B1 (en) Cross color prediction for image/video compression
CN110087074B (zh) 图像处理装置和用于操作图像处理装置的方法
CN110087072B (zh) 图像处理装置
JP6401295B2 (ja) ディスプレイストリーム圧縮(dsc)用のパターンモードでのコーディングのためのシステムおよび方法
JP2018525901A (ja) ディスプレイストリーム圧縮における変換モード用ブロックサイズの変更
KR102543449B1 (ko) 이미지 처리 장치 및 이미지 처리 장치의 동작 방법
TWI846680B (zh) 影像處理裝置及操作影像處理裝置之方法
KR102465206B1 (ko) 이미지 처리 장치
US20220353482A1 (en) Image signal processor, method of operating the image signal processor and image processing system including the image signal processor
US9013595B1 (en) Digital video camera with internal data sample compression
KR20240009176A (ko) 다중 슬라이스용 디스플레이 스트림 압축 디코더 시스템 및 그 방법
TW201941599A (zh) 用於執行資料解壓縮的影像處理裝置及用於執行資料壓縮的影像處理裝置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150602

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160209

A045 Written measure of dismissal of application

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20160628