(57)【要約】  データ圧縮を対象とする技法について説明する。いくつかの例では、これらの技法は、目標圧縮を達成するために、現在の画像データブロックのための利用可能なビット割り当てを示す、ビット割り当てベースの方式を実施することができる。これらの技法は、現在の画像データブロックの圧縮の後、ビット割り当てを連続的に更新して、次の画像データブロックのためのビット割り当てを決定することができる。
2014523703.tif 000002
【特許請求の範囲】
【請求項１】
圧縮ユニットを用いて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値と、に少なくとも基づいて、決定することと、
前記圧縮ユニットを用いて、前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記圧縮ユニットを用いて、前記可逆圧縮ブロックのビットを出力することと
を備える方法。
【請求項２】
前記圧縮ユニットを用いて、前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記圧縮ユニットを用いて、前記不可逆圧縮ブロックのビットを出力することと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記不可逆圧縮を実行することが、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
前記量子化ビットにおいて、圧縮を実行することと
を備える、請求項２に記載の方法。
【請求項４】
前記方法が、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定すること
をさらに備え、
ビットを量子化することが、前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックの量子化ビットを備える、請求項３に記載の方法。
【請求項５】
前記不可逆圧縮を実行することが、前記可逆圧縮を実行することと同時に、前記不可逆圧縮を実行することを備える、請求項２に記載の方法。
【請求項６】
前記可逆圧縮を実行することが、第１の可逆圧縮を実行することを備え、前記可逆圧縮ブロックが、第１の可逆圧縮ブロックを備え、前記方法が、
第２の、異なる可逆圧縮を、前記第１の可逆圧縮と同時に実行して、第２の可逆圧縮ブロックを生成することと、
第１の不可逆圧縮を、前記第１の可逆圧縮および前記第２の可逆圧縮と同時に実行して、第１の不可逆圧縮ブロックを生成することと、
第２の、異なる不可逆圧縮を、前記第１の可逆圧縮、前記第２の可逆圧縮、および前記第１の不可逆圧縮と同時に実行して、第２の不可逆圧縮ブロックを生成することと、
前記第１の可逆圧縮ブロックおよび前記第２の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の可逆圧縮ブロックまたは前記第２の可逆圧縮ブロックを選択することと、
前記第１の不可逆圧縮ブロックおよび前記第２の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の不可逆圧縮ブロックまたは前記第２の不可逆圧縮ブロックを選択することと、
前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
をさらに備える、請求項１に記載の方法。
【請求項７】
前記方法が、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化すること
をさらに備え、
前記第１の不可逆圧縮を実行することが、前記量子化ビットにおいて、第１の圧縮を実行することを備え、
前記第２の不可逆圧縮を実行することが、前記量子化ビットにおいて、第２の、異なる圧縮を実行することを備える、請求項６に記載の方法。
【請求項８】
前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶することを備える、請求項１に記載の方法。
【請求項９】
前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信することを備える、請求項１に記載の方法。
【請求項１０】
前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
をさらに備える、請求項１に記載の方法。
【請求項１１】
１ブロック当たりの平均ビット数を決定することと、
前記１ブロック当たりの平均ビット数から前記圧縮ビットしきい値を引いて、１ブロック当たりの平均の余分のビットを決定することと、
前記１ブロック当たりの平均の余分のビットに、前記画像フレーム内のブロック数を掛けて、前記画像フレームのための初期ビット割り当てを決定することと
をさらに備える、請求項１に記載の方法。
【請求項１２】
前記現在のブロックが、初期ブロックの後のブロックを備え、前記方法が、
前記圧縮ビットしきい値を、前記画像フレームのための前記初期ビット割り当てに加算して、前記初期ブロックのための圧縮バジェットを決定すること
をさらに備える、請求項１１に記載の方法。
【請求項１３】
前記１ブロック当たりの平均ビット数を決定することが、１ピクセル当たりのビット数に、１ブロック当たりのピクセル数を掛けて、１ブロック当たりのビット数を決定することと、前記１ブロック当たりのビット数に、目標圧縮値を掛けることとを備える、請求項１１に記載の方法。
【請求項１４】
前記現在のブロックのための前記現在のビット割り当てを決定することが、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを備える、請求項１に記載の方法。
【請求項１５】
前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、請求項１に記載の方法。
【請求項１６】
前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、請求項１に記載の方法。
【請求項１７】
前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、請求項１に記載の方法。
【請求項１８】
画像フレームを作成するように構成された画像プロセッサと、
前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行うように構成された圧縮ユニットと
を備えるシステム。
【請求項１９】
前記圧縮ユニットが、
前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
を行うように構成される、請求項１８に記載のシステム。
【請求項２０】
前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、請求項１９に記載のシステム。
【請求項２１】
前記圧縮ユニットが、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
を行うように構成される、請求項２０に記載のシステム。
【請求項２２】
前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、請求項１９に記載のシステム。
【請求項２３】
前記可逆圧縮が、第１の可逆圧縮を備え、前記可逆圧縮ブロックが、第１の可逆圧縮ブロックを備え、前記圧縮ユニットが、
第２の、異なる可逆圧縮を、前記第１の可逆圧縮と同時に実行して、第２の可逆圧縮ブロックを生成することと、
第１の不可逆圧縮を、前記第１の可逆圧縮および前記第２の可逆圧縮と同時に実行して、第１の不可逆圧縮ブロックを生成することと、
第２の、異なる不可逆圧縮を、前記第１の可逆圧縮、前記第２の可逆圧縮、および前記第１の不可逆圧縮と同時に実行して、第２の不可逆圧縮ブロックを生成することと、
前記第１の可逆圧縮ブロックおよび前記第２の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の可逆圧縮ブロックまたは前記第２の可逆圧縮ブロックを選択することと、
前記第１の不可逆圧縮ブロックおよび前記第２の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の不可逆圧縮ブロックまたは前記第２の不可逆圧縮ブロックを選択することと、
前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
を行うように構成される、請求項１８に記載のシステム。
【請求項２４】
前記圧縮ユニットが、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
前記量子化ビットにおいて、第１の圧縮を実行して、前記第１の不可逆圧縮を実行することと、
前記量子化ビットにおいて、第２の、異なる圧縮を実行して、前記第２の不可逆圧縮を実行することと
を行うように構成される、請求項２３に記載のシステム。
【請求項２５】
前記画像プロセッサを含むデバイスと、前記圧縮ユニットを含むパネルデバイスとをさらに備える、請求項１８に記載のシステム。
【請求項２６】
前記画像プロセッサと前記圧縮ユニットとを含むデバイスをさらに備える、請求項１８に記載のシステム。
【請求項２７】
前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶する、請求項１８に記載のシステム。
【請求項２８】
前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信する、請求項１８に記載のシステム。
【請求項２９】
前記圧縮ユニットが、
前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
を行うように構成される、請求項１８に記載のシステム。
【請求項３０】
前記圧縮ユニットが、前記現在のブロックのための前記現在のビット割り当てを決定するために、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを行うように構成される、請求項１８に記載のシステム。
【請求項３１】
前記圧縮ユニットが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、請求項１８に記載のシステム。
【請求項３２】
前記圧縮ユニットが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、請求項１８に記載のシステム。
【請求項３３】
前記圧縮ユニットが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、請求項１８に記載のシステム。
【請求項３４】
画像フレームを受信することと、
前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行うように構成された圧縮ユニット。
【請求項３５】
前記圧縮ユニットが、
前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
を行うように構成される、請求項３４に記載の圧縮ユニット。
【請求項３６】
前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、請求項３５に記載の圧縮ユニット。
【請求項３７】
前記圧縮ユニットが、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
を行うように構成される、請求項３６に記載の圧縮ユニット。
【請求項３８】
前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、請求項３５に記載の圧縮ユニット。
【請求項３９】
画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定するための手段と、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成するための手段と、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力するための手段と
を備えるシステム。
【請求項４０】
実行されたとき、１つまたは複数のプロセッサに、
画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれる、２０１１年７月５日に出願された米国仮出願第６１／５０４，５１０号の利益を主張する。
【０００２】
本開示は、画像データを対象とし、詳細には、画像データの圧縮を対象とする。
【背景技術】
【０００３】
ビデオ復号器およびグラフィックス処理ユニット（ＧＰＵ）など、様々なユニットが、画像フレームを作成する。たとえば、ビデオ復号器は、スムーズなビデオ再生のために連続的に表示される、一連のビデオピクチャを作成することができる。ＧＰＵは、ビデオゲームなど、実行アプリケーションのためのグラフィックスコンテンツを作成することができる。カメラプロセッサは、カメラによってキャプチャされた画像を作成することができる。画像フレームは、一般に、いくつかの例として、ＧＰＵからの作成されたグラフィックスコンテンツ、ビデオ復号器からのビデオピクチャ、およびカメラによってキャプチャされた画像など、任意の閲覧可能なコンテンツを指すことがある。
【０００４】
様々なユニットが、作成された画像フレームを、記憶のためにフレームバッファに出力することができる。たとえば、フレームバッファは、画像フレームのピクセルのためのピクセル値を記憶することができる。ディスプレイは、フレームバッファからピクセル値を受信し、ピクセル値に基づいて、画像フレームを閲覧可能なコンテンツとして表示することができる。代替例では、様々なユニットが、最初に画像フレームをフレームバッファに記憶することなしに、画像フレームをディスプレイに出力することができる。
【発明の概要】
【０００５】
一般に、本開示は、フレームバッファに記憶されるか、または送信される必要のあるデータの量が低減されるようにする、データ圧縮のための技法に関する。データ圧縮技法は、目標圧縮を達成するために、異なる圧縮モード間の選択、または異なる圧縮モードを使用して圧縮された圧縮データ間の選択を可能にする、バジェットベースの圧縮方式であり得る。たとえば、バジェットベースの圧縮方式は、目標圧縮を達成するために何ビットが利用可能であるかを示すビット割り当てを、連続的に更新することができる。現在のビット割り当てに基づいて、バジェットベースの圧縮方式は、データが所望のレベルまで圧縮される結果となる、特定の圧縮モード、または特定の圧縮モードに従って圧縮された圧縮データを選択することができる。
【０００６】
一例では、本開示は、圧縮ユニットを用いて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することを含む方法について説明する。この方法はまた、圧縮ユニットを用いて、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することをも含む。この方法は、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、圧縮ユニットを用いて、可逆圧縮ブロックのビットを出力することをさらに含む。
【０００７】
別の例では、本開示は、画像フレームを作成するように構成された画像プロセッサを含むシステムについて説明する。このシステムはまた、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することを行うように構成された圧縮ユニットをも含む。圧縮ユニットはまた、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、可逆圧縮ブロックのビットを出力することとを行うようにも構成される。
【０００８】
別の例では、本開示は、画像フレームを受信することと、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することとを行うように構成された圧縮ユニットについて説明する。圧縮ユニットはまた、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、可逆圧縮ブロックのビットを出力することとを行うようにも構成される。
【０００９】
別の例では、本開示は、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定するための手段を含むシステムについて説明する。このシステムはまた、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成するための手段と、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、可逆圧縮ブロックのビットを出力するための手段とを含む。
【００１０】
別の例では、本開示は、実行されたとき、１つまたは複数のプロセッサに、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することを行わせる命令を記憶した、コンピュータ可読記憶媒体について説明する。これらの命令はまた、１つまたは複数のプロセッサに、現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、可逆圧縮ブロックのビットを出力することとを行わせる。
【００１１】
本開示の１つまたは複数の態様の詳細について、添付の図面および以下の説明において述べる。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１Ａ】本開示で説明する１つまたは複数の例示的な技法を実装し得るシステムを示すブロック図。
【図１Ｂ】本開示で説明する１つまたは複数の例示的な技法を実装し得るシステムを示すブロック図。
【図１Ｃ】本開示で説明する１つまたは複数の例示的な技法を実装し得るシステムを示すブロック図。
【図１Ｄ】本開示で説明する１つまたは複数の例示的な技法を実装し得るシステムを示すブロック図。
【図２】図１Ａから図１Ｄの圧縮ユニットの一例をより詳細に示すブロック図。
【図３Ａ】１次元予測の一例を示す概念図。
【図３Ｂ】１次元予測の一例を示す概念図。
【図３Ｃ】２次元予測の一例を示す概念図。
【図４】ブロック固定長符号化（ＢＦＬＣ）を実行するための方法の一例を示す概念図。
【図５】可変長符号化（ＶＬＣ）を実行するための方法の一例を示す概念図。
【図６】ＰＣＭ符号器が機能する方法の一例を示す概念図。
【図７】符号化モード決定ユニットが、画像フレームがテストパターンであるかどうかを判定することができる、例示的な方法を示すフローチャート。
【図８】符号化モード決定ユニットがパターンデータベースを更新する方法を示す概念図。
【図９】パターンモード符号化のための例示的な技法を示すフローチャート。
【図１０】パターンモード符号器の出力ビットストリームの一例を示す概念図。
【図１１】図２の量子化器の一例をより詳細に示すブロック図。
【図１２】例示的な表エントリを示す表形式の図。
【図１３】可逆ビットストリームの例を示す概念図。
【図１４】可逆ビットストリームの例を示す概念図。
【図１５】可逆ビットストリームの例を示す概念図。
【図１６】不可逆ビットストリームの例を示す概念図。
【図１７】不可逆ビットストリームの例を示す概念図。
【図１８】可逆圧縮ユニットの一例を示すブロック図。
【図１９】不可逆圧縮ユニットの一例を示すブロック図。
【図２０】圧縮ユニットの別の例を示すブロック図。
【図２１】画像プロセッサが色値を圧縮ユニットへ送信する例示的な方法を示すブロック図。
【図２２】画像プロセッサが色値を圧縮ユニットへ送信する例示的な方法を示すブロック図。
【図２３】本開示で説明する態様による、画像フレームを圧縮する結果を示す概念図。
【図２４】本開示で説明する態様による、画像フレームを圧縮する結果を示す概念図。
【図２５】本開示で説明する技法による例示的な動作を示すフローチャート。
【図２６】本開示で説明する技法による別の例示的な動作を示すフローチャート。
【発明を実施するための形態】
【００１３】
本開示は、作成された画像フレームについてのデータ（たとえば、ピクセル値）を受信し、データを圧縮する、圧縮ユニットについて説明する。データを圧縮することによって、本開示で説明する技法は、フレームバッファに記憶される必要があるデータの量を低減すること、および／または、送信される必要があるデータの量を低減することができる。言い換えれば、圧縮がない場合にフレームバッファに記憶される、かつ／または送信される必要があるデータの量は、圧縮がある場合にフレームバッファに記憶される、かつ／または送信される必要があるデータの量よりも大きくなり得る。
【００１４】
いくつかの例として、画像フレームは、ビデオ復号器によって作成されたビデオコンテンツのピクチャ、グラフィックス処理ユニット（ＧＰＵ）によって作成されたグラフィックスコンテンツ、またはカメラによってキャプチャされ、カメラプロセッサによって作成された画像であり得る。一般に、画像フレームは、ウェブブラウザ、ゲーム、メディアプレーヤなど、閲覧可能なコンテンツを生成するアプリケーションを実行した結果を含む、ディスプレイ上に表示されるべきである画像コンテンツの任意の例であり得る。
【００１５】
画像フレームは、各々がディスプレイ上のピクセルに対応する、複数のピクセル値によって定義され得る。また、画像フレームを作成するユニット（たとえば、ビデオ復号器、ＧＰＵ、およびカメラプロセッサ）は、一般的には画像プロセッサと呼ばれることがある。言い換えれば、画像プロセッサの例には、ビデオ復号器、ＧＰＵ、カメラプロセッサ、および、表示のために画像フレームを作成する任意の他のユニットのうちの１つまたは複数がある。
【００１６】
圧縮ユニットは、ビデオ復号器、ＧＰＵ、およびカメラプロセッサのうちのいずれか１つから、作成された画像フレームのピクセルのためのピクセル値を受信することができる。ピクセル値の各々は、複数のデータビットによって表され得る。たとえば、ピクセル値の一例は、赤色、緑色、および青色（ＲＧＢ）成分のためのデータビットを含む色値であり得る。一例として、８データビットでピクセルの赤色成分を表すことができ、８データビットでピクセルの緑色成分を表すことができ、８データビットで青色成分を表すことができ、色値では合計２４ビットである。
【００１７】
圧縮ユニットは、画像フレームにおけるピクセルの各々のためのピクセル値のデータビットを受信し、色値を表すためにより少ないビットが必要とされるように、圧縮を適用することができる。圧縮ユニットは、同様に、２つの例として、不透明度値および座標など、他のタイプのピクセル値を圧縮することができる。本開示で使用する「画像データ」という用語は、一般にピクセル値のビットを指すことがあり、「圧縮画像データ」という用語は、圧縮ユニットが画像データを圧縮した後の圧縮ユニットの出力を指すことがある。たとえば、圧縮画像データにおけるビット数は、画像データにおけるビット数未満であり得る。
【００１８】
画像データを圧縮するために、圧縮ユニットは、バジェットベースの圧縮方式を実施することができる。圧縮ユニットは、画像フレームの全体、画像フレームのスライス、またはラインごとに、バジェットベースの圧縮方式を実施することができる。より詳細に説明するように、バジェットベースの圧縮方式によれば、圧縮ユニットは、目標圧縮を達成するために、現在のピクセルのブロックのために利用可能であるビット量を示す、ビット割り当てを連続的に更新することができる。
【００１９】
いくつかの例では、圧縮ユニットは、可逆圧縮技法および不可逆圧縮技法を含む、様々な圧縮技法を利用して、画像データを圧縮することができる。圧縮ユニットは、現在のビット割り当てを満たす圧縮技法の出力を選択することができる。いくつかの他の例では、圧縮ユニットは、どのタイプの圧縮技法が画像データに適用されるべきであるかを決定し、決定された圧縮技法に基づいて、画像データを圧縮することができる。
【００２０】
より詳細に説明するように、いくつかの例では、圧縮ユニットは、不可逆圧縮よりも可逆圧縮のほうへバイアスされ得る。たとえば、ビット割り当てを満たす圧縮画像データにおける可逆圧縮結果と不可逆圧縮結果の両方を利用する場合、圧縮ユニットは、可逆圧縮を使用して、画像データを圧縮することができる。可逆圧縮は、圧縮解除を用いて、元の画像データの完全な復元を可能にすることができるのに対して、不可逆圧縮では、再構成された画像データが、圧縮解除後に元の画像データと等しくなり得ない。したがって、圧縮ユニットは、圧縮解除中に元の画像データを完全に復元することが可能であるように、不可逆圧縮よりも可逆圧縮を選ぶことができる。
【００２１】
さらに、不可逆圧縮を実行するとき、圧縮ユニットは、不可逆圧縮によって圧縮された圧縮画像データにおけるビット数が現在のビット割り当て未満になることが保証されるように、不可逆圧縮を実行することができる。このようにして、可逆圧縮画像データにおけるビット数が、現在のビット割り当てよりも大きい場合、圧縮ユニットは、不可逆圧縮を選択することができる。したがって、圧縮ユニットは、現在のビット割り当てを満たす圧縮ブロックを常に出力するように構成され得る。
【００２２】
図１Ａから図１Ｄは、本開示で説明する１つまたは複数の例示的な技法を実装し得るシステムを示すブロック図である。たとえば、図１Ａから図１Ｄは、システム１０Ａ〜１０Ｄをそれぞれ示す。図１Ａから図１Ｃでは、システム１０Ａ〜１０Ｃは、デバイス１２とパネルデバイス１６とを含み、図１Ｄでは、システム１０Ｄは、パネルデバイス１６なしにデバイス１２を含む。図１Ａから図１Ｄにおける、デバイス１２の例には、限定はしないが、メディアプレーヤなどのビデオデバイス、セットトップボックス、モバイル電話またはいわゆるスマートフォンなどのワイヤレスハンドセット、携帯情報端末（ＰＤＡ）、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、デジタルカメラ、ビデオ会議ユニット、タブレットコンピューティングデバイス、パーソナルマルチメディアプレーヤなどがある。図１Ａから図１Ｃにおける、パネルデバイス１６の例には、限定はしないが、テレビ、モニタ、液晶ディスプレイ（ＬＣＤ）、有機ＬＥＤ（ＯＬＥＤ）、プラズマディスプレイ、上述のビデオデバイスのいずれかのディスプレイ画面、または一般に、画像を表示する任意のデバイスがある。
【００２３】
システム１０Ａ〜１０Ｄにおいて、デバイス１２は、画像プロセッサ１４を含む。画像プロセッサ１４は、完全に作成された画像フレームを生成する任意の構成要素であり得る。画像フレームは、閲覧可能なコンテンツを生成するアプリケーションを実行した結果を含む、表示されるべきである任意の閲覧可能なコンテンツであり得る。たとえば、画像プロセッサ１４の例には、限定はしないが、ビデオ復号器、グラフィックス処理ユニット（ＧＰＵ）、およびカメラプロセッサのうちの、いずれか１つまたは複数がある。画像フレームの例には、限定はしないが、ビデオ復号器によって作成されたビデオコンテンツのピクチャ、ＧＰＵによって作成されたグラフィックスコンテンツ、またはカメラによってキャプチャされ、カメラプロセッサによって作成された画像のうちの、いずれか１つまたは複数がある。
【００２４】
画像フレームは、複数のピクセルのためのピクセル値を含むと見なされ得る。たとえば、画像フレームは、ピクセル値の２次元アレイと見なされてもよく、そこで、各ピクセル値は、パネル２６の１つのピクセルに対応し得る。たとえば、図１Ａから図１Ｄにおけるパネル２６は、画像フレームを表示することができ、パネル２６は、画像フレームの対応するピクセル値に基づいて、そのピクセルを照明することができる。
【００２５】
画像フレームのピクセル値は、複数のデジタルビットによって定義され得る。たとえば、ピクセル値の一例は、色値である。色値は、一般に、赤色、緑色、および青色（ＲＧＢ）成分によって定義されるが、他の色空間もまた使用され得る。いくつかの例では、画像プロセッサ１４は、８ビットで赤色成分を、８ビットで緑色成分を、８ビットで青色成分を定義することができ、合計２４ビットである。この例では、画像プロセッサ１４によって作成された画像フレームのピクセルの各々のためのピクセル値の各々は、少なくとも２４ビットを含み得る。
【００２６】
画像プロセッサ１４は、同様に、デジタルビットで、不透明度値およびピクセル座標など、ピクセル値の他の例を表すことができる。例示および説明しやすさのために、本開示で説明する技法について、ＲＧＢ成分によって表される色値に関して説明する。言い換えれば、本開示で説明する技法について、画像プロセッサ１４がピクセル値を定義するために利用するビット数が２４ビットである例で説明する。しかしながら、本開示の態様は、そのように限定されず、本明細書で説明する技法は、ピクセル値が２４ビットよりも多いまたは少ないビットによって定義される例に拡大され得る。
【００２７】
図１Ａから図１Ｄでは、画像プロセッサ１４は、ピクセル値を圧縮ユニット２０へ送信することができる。図１Ａの例では、圧縮ユニット２０は、パネルデバイス１６内に常駐することができ、図１Ｂから図１Ｄの例では、圧縮ユニット２０は、デバイス１２内に常駐することができる。また、図１Ｂから図１Ｄの例では、圧縮ユニット２０が画像プロセッサ１４の外部にあるように示されるが、本開示の態様はそのように限定されない。他の例では、圧縮ユニット２０は、画像プロセッサ１４の一部であり得る。説明しやすいように、圧縮ユニット２０について、画像プロセッサ１４の外部にあるものとして説明する。
【００２８】
デバイス１２が、画像プロセッサ１４によって生成されたピクセル値をパネルデバイス１６における圧縮ユニット２０へ送信する、図１Ａの例では、または、デバイス１２が、圧縮ユニット２０の出力をパネルデバイス１６へ送信する、図１Ｂおよび図１Ｃの例では、デバイス１２およびパネルデバイス１６は、ワイヤレスに、またはワイヤードリンクで結合され得る。ワイヤードリンクの一例として、デバイス１２およびパネルデバイス１６は、高精細度マルチメディアインターフェース（ＨＤＭＩ（登録商標））ケーブルによって結合され得る。図１Ｂから図１Ｄの例では、画像プロセッサ１４は、デバイス１２の様々な構成要素を相互接続する、デバイス１２のシステムバスを介して、ピクセル値を圧縮ユニット２０へ送信することができる。画像プロセッサ１４が圧縮ユニット２０を含む例では、画像プロセッサ１４は、デバイス１２のシステムバスを必要とすることなしに、ピクセル値を圧縮ユニット２０へ送信することができる。
【００２９】
図１Ａから図１Ｃの例では、デバイス１２は、（図１Ａでは）画像プロセッサ１４の出力、または（図１Ｂおよび図１Ｃでは）圧縮ユニット２０の出力を、パネルデバイス１６への送信に好適なフォーマットに変換するインターフェースを含んでもよく、パネルデバイス１６は、デバイス１２からの出力を受信するためのインターフェースを含む。たとえば、図１Ａから図１Ｃは、画像フレームがあるデバイス（すなわち、デバイス１２）において生成されるが、画像フレームが別のデバイス（すなわち、パネルデバイス１６）において表示される例を示す。図１Ａから図１Ｃのこれらの例では、デバイス１２は、デバイス１２がパネルデバイス１６へ送信することを可能にするインターフェースを含み、パネルデバイス１６は、パネル１６がデバイス１２から受信することを可能にするインターフェースを含む。図１Ｄの例では、デバイス１２が、画像フレームの生成と画像フレームの提示の両方を行うデバイスであり得るので、パネルデバイス１６がなくてもよい。
【００３０】
図１Ａから図１Ｄの例のいずれかにおける圧縮ユニット２０は、画像プロセッサ１４によって生成されたピクセル値を受信し、圧縮を適用するように構成され得る。上記で説明したように、画像プロセッサ１４によって生成されたピクセル値は、色を表す複数のビットであり得る。圧縮ユニット２０は、色を表すためにより少ないビットが必要とされるように、圧縮を適用することができる。一例として、上記で説明したように、１つのピクセル値は、２４ビットであってもよく、したがって、８個のピクセル値は、１９２ビットであり得る。この例では、５０％圧縮が望まれる場合、圧縮ユニット２０は、１９２ビットを受信し、圧縮を適用して、総ビット数を９６ビットに低減する（すなわち、１９２ビット＊５０％は９６ビットに等しいので、この例では、ビットを５０％だけ圧縮する）。この例では、８個のピクセル値のための１９２ビットではなく、得られた９６ビットが、８個のピクセル値を表すことができる。
【００３１】
明快のために、本開示で使用する「画像データ」という用語は、一般にピクセル値のビットを指すことがあり、「圧縮画像データ」という用語は、圧縮ユニット２０が画像データを圧縮した後の圧縮ユニット２０の出力を指すことがある。本開示の態様では、圧縮画像データにおけるビット数は、画像データにおけるビット数未満であり得る。たとえば、前の例に沿って、圧縮ユニット２０は、１９２ビットの画像データ（たとえば、８個のピクセル値のための１９２ビット）を受信し、１９２ビットの画像データを、９６ビットの圧縮画像データに圧縮して、５０％圧縮を達成することができる。
【００３２】
図１Ａ、図１Ｂ、および図１Ｄでは、圧縮ユニット２０は、圧縮画像データをフレームバッファ２２に出力することができる。フレームバッファ２２は、圧縮画像データを記憶することができる。フレームバッファ２２の一例は、ランダムアクセスメモリ（ＲＡＭ）であるが、他のタイプのメモリが可能であり得る。フレームバッファ２２における記憶より前に、画像データを圧縮することによって、本開示の技法は、フレームバッファ２２のサイズの低減を可能にすることができる。
【００３３】
たとえば、画像プロセッサ１４が、１２８０×８００個のピクセル値、合計２４，５７６，０００ビット（すなわち、１２８０＊８００個のピクセル値＊２４ビット／ピクセル値は、２４，５７６，０００ビットに等しい）を生成したと仮定する。圧縮ユニット２０がない場合、フレームバッファ２２は、この例では、２４，５７６，０００ビットを記憶可能であることが必要であり得る。しかしながら、圧縮ユニット２０が画像データを５０％だけ圧縮した場合、フレームバッファ２２は、１２，２８８，０００ビット（たとえば、圧縮画像データ）を記憶可能であることが必要であり、フレームバッファ２２のサイズの５０％の低減が可能であり得る。一般に、フレームバッファ２２のコストは、そのサイズに比例し得る。したがって、圧縮ユニット２０で画像データを圧縮することによって、フレームバッファ２２のコストおよびサイズは、圧縮が適用されない例と比較して低減され得る。
【００３４】
フレームバッファ２２は、あらゆる例において必要とされるとは限らない。図１Ｃに示すように、デバイス１２もパネルデバイス１６も、フレームバッファ２２を含まない。この例では、デバイス１２およびパネルデバイス１６は、画像データをフレームバッファ２２に一時的に記憶しなくてもよい。しかしながら、これらの例でも、帯域幅効率を増進するために画像データを圧縮することが有益であり得る。たとえば、前の例に沿って、圧縮ユニット２０がない場合、デバイス１２は、（画像プロセッサ１４によって作成された画像フレームのための１２８０×８００個のピクセル値を仮定すると）２４，５７６，０００ビットを送信する必要があり得る。圧縮ユニット２０による、５０％の圧縮がある場合、デバイス１２は、１２，２８８，０００ビットを送信する必要があり得、それによって、デバイス１２が、より良い帯域幅効率のために、１秒当たりより少ないビットを送信することが可能となる。
【００３５】
このようにして、図１Ａのシステム１０Ａでは、デバイス１２は、非圧縮画像データをパネルデバイス１６へ送信することができるが、圧縮ユニット２０は、フレームバッファ２２のサイズの低減を可能にし、それによって、圧縮なしと比較して、フレームバッファ２２によって使用される全体的なコストとスペースとを低減することができる。図１Ｂのシステム１０Ｂでは、圧縮ユニット２０が送信より前に画像データを圧縮するので、デバイス１２は、より少ない帯域幅を消費することができ、パネルデバイス１６におけるフレームバッファ２２のサイズおよびコストが、圧縮なしと比較して低減され得る。圧縮ユニット２０をもつ、図１Ｃのシステム１０Ｃでは、帯域幅消費が、圧縮なしと比較して低減され得る。図１Ｄのシステム１０Ｄでは、圧縮ユニット２０は、圧縮なしと比較して、フレームバッファ２２のサイズおよびコストの低減を可能にすることができる。
【００３６】
図１Ａから図１Ｄの例では、圧縮解除ユニット２４は、圧縮画像を圧縮解除して、元の画像データと実質的に同様である画像データを再構成することができる。たとえば、圧縮解除ユニット２４の出力は、画像プロセッサ１４が圧縮した画像フレームのピクセル値と実質的に同様であるピクセル値であり得る。図１Ａ、図１Ｂ、および図１Ｄでは、圧縮解除ユニット２４は、圧縮画像データをフレームバッファ２２から受信することができ、図１Ｃでは、圧縮解除ユニット２４は、圧縮画像データを、フレームバッファ２２における事前の記憶なしに、デバイス１２から受信することができる。
【００３７】
圧縮画像データを圧縮解除するために、圧縮解除ユニット２４は、圧縮ユニット２０が適用した圧縮の逆を適用することができる。より詳細に説明するように、いくつかの例では、圧縮ユニット２０は、圧縮ユニット２０が画像データを圧縮した方法を示すことができ、それによって、圧縮解除ユニット２４が、圧縮画像データを圧縮解除するための方法を決定することが可能となる。また、より詳細に説明するように、圧縮ユニット２０は、可逆圧縮または不可逆圧縮を適用することができる。可逆圧縮では、圧縮解除ユニット２４は、得られた画像データが元の画像データにほぼ等しいように、圧縮画像データを圧縮解除することが可能であり得る。不可逆圧縮では、圧縮解除ユニット２４は、得られた画像データが元の画像データに等しいように、圧縮画像データを圧縮解除することが可能であり得ない。しかしながら、不可逆圧縮でも、圧縮解除画像データは元の画像データと同様であり、潜在的に、実質的に同様であり得る。
【００３８】
パネル２６は、任意のタイプのディスプレイであり得る。たとえば、パネル２６の例には、限定はしないが、液晶ディスプレイ（ＬＣＤ）、有機発光ダイオードディスプレイ（ＯＬＥＤ）、陰極線管（ＣＲＴ）ディスプレイ、プラズマディスプレイ、または別のタイプのディスプレイデバイスがある。パネル２６は、パネル２６が、画像プロセッサ１４によって作成された画像フレームの閲覧可能なコンテンツを表示するために照明する、複数のピクセルを含み得る。たとえば、圧縮解除ユニット２４によって出力されたピクセル値は、パネル２６のピクセルが照明されるべきである方法を示すことができる。
【００３９】
図１Ａから図１Ｄには示されていないが、いくつかの例では、圧縮解除ユニット２４は、ディスプレイプロセッサに結合されてもよく、ディスプレイプロセッサは、結合されたパネル２６であってもよい。これらの例では、ディスプレイプロセッサは、照明されるとき、ピクセルが所望の色を提示するように、パネル２６のピクセルに適用されるべきである電圧を決定することができる。図１Ａ、図１Ｂ、および図１Ｃの例では、パネル２６を除く、パネルデバイス１６の構成要素は、パネル２６のためのドライバと見なされ得る。たとえば、パネル２６が液晶モニタである場合、ドライバは、パネルデバイス１６の照明される構成要素と、ディスプレイプロセッサとを含み、パネル２６を除く、ＬＣＭドライバと呼ばれることがある。
【００４０】
画像データを圧縮するために、圧縮ユニット２０は、画像データのブロックにおいてバジェットベースの圧縮方式を実施することができる。一例として、画像データの１つのブロックは、８個のピクセル値であり得るが、本開示の態様はそのように限定されない。圧縮ユニット２０は、所望の圧縮を達成するために何ビットが利用可能であるかを示す、画像データのブロックを圧縮した後のビット割り当てを、連続的に更新することができる。
【００４１】
圧縮ユニット２０は、以下でより詳細に説明するように、初期ビット割り当てを決定することができる。圧縮ユニット２０は、次いで、初期ビット割り当てに基づいて、現在のブロックのための現在のビット割り当てを決定することができる。いくつかの例では、圧縮ユニット２０は、次いで、不可逆圧縮および可逆圧縮を含む、様々な圧縮技法を実施することができる。たとえば、圧縮ユニット２０は、不可逆圧縮技法を実施して、不可逆圧縮画像データブロックを生成することができ、可逆圧縮技法を実施して、可逆圧縮画像データブロックを生成することができる。不可逆圧縮技法および可逆圧縮技法の例については、以下でより詳細に説明する。しかしながら、圧縮ユニット２０は、任意の知られている、またはこれから開発されることになる不可逆圧縮技法または可逆圧縮技法を利用することができ、本開示の態様は、以下で説明する特定の不可逆圧縮技法および可逆圧縮技法に限定されない。
【００４２】
圧縮ユニット２０は、不可逆圧縮画像データブロックおよび可逆圧縮画像データブロックの各々におけるビット数を決定することができる。可逆圧縮画像データブロックにおけるビット数が、現在のビット割り当て以下である場合、（図１Ａから図１Ｄの例において適宜に）圧縮ユニット２０は、可逆圧縮画像データブロックのビットをフレームバッファ２２に記憶することができ、または、デバイス１２は、可逆圧縮画像データブロックのビットをパネルデバイス１６へ送信することができる。そうでない場合、（図１Ａから図１Ｄの例において適宜に）圧縮ユニット２０は、不可逆圧縮画像データブロックのビットをフレームバッファ２２に記憶することができ、または、デバイス１２は、不可逆圧縮画像データブロックのビットをパネルデバイス１６へ送信することができる。
【００４３】
いくつかの他の例では、圧縮より前に、圧縮ユニット２０は、どのタイプの圧縮が利用されるべきであるかを決定することができる。たとえば、様々なタイプの可逆圧縮技法および不可逆圧縮技法があり得る。圧縮ユニット２０は、圧縮画像データが現在のビット割り当て内であるように、どのタイプの可逆圧縮技法または不可逆圧縮技法を利用するかを決定することができる。圧縮ユニット２０は、次いで、決定された圧縮技法に基づいて、画像データを圧縮することができる。
【００４４】
一般に、圧縮ユニット２０は、記憶または送信のために、不可逆圧縮よりも可逆圧縮の結果を選択するほうへバイアスされ得る。可逆圧縮は、元の画像データを完全に再構成することが可能であり得るので、圧縮解除されるとき、画像品質を維持することができるが、不可逆圧縮は、元の画像データを完全に再構成することが可能であり得ないので、圧縮解除されるとき、画像品質をわずかに低下させ得る。むしろ、圧縮解除画像データは、不可逆圧縮技法を使用して圧縮されるとき、元の画像データと同様であり得るが、等しくなり得ない。
【００４５】
いくつかの例では、可逆圧縮画像データブロックが不可逆圧縮画像データブロックよりも画像品質を維持することができるので、可逆圧縮と不可逆圧縮の両方が、現在のビット割り当て内である圧縮画像データブロックを生じる場合、圧縮ユニット２０は、記憶または送信のために、可逆圧縮画像データブロックを選択するほうへバイアスされ得る。さらに、後述のように、圧縮ユニット２０は、不可逆圧縮画像ブロックにおけるビット数が現在のビット割り当て以下であることが保証されるような方法で、不可逆圧縮を実施することができる。したがって、不可逆圧縮画像ブロックが、不可逆圧縮画像ブロックにおけるビット数がビット割り当て以下であることが保証されるような方法で圧縮されるので、可逆圧縮画像ブロックがビット割り当てよりも大きい場合、圧縮ユニット２０は、不可逆圧縮画像ブロックを出力することが可能であり得る。
【００４６】
本開示で説明する技法によれば、圧縮ユニット２０は、次いで、現在のビット割り当ておよび１ブロック当たりの平均の余分のビット数に基づいて、次の画像データブロックのためのビット割り当てを決定することができる。１ブロック当たりの平均の余分のビット数については、以下でより詳細に説明する。圧縮ユニット２０は、現在のバジェットを、次のブロックの決定されたバジェットにリセットすることができる。圧縮ユニット２０は、最後のブロックの圧縮まで、上記のステップを繰り返すことができる。
【００４７】
上記で説明したように、いくつかの例では、圧縮ユニット２０は、作成された画像フレームの画像データを圧縮することができる。「作成された画像フレーム」という用語は、表示のための準備ができている最終の作成された画像など、最終の作成された画像フレームを指す。「作成された画像フレーム」という用語は、作成される過程における画像フレームを区別するために使用される。たとえば、上記で説明したように、画像プロセッサ１４は、ビデオ復号器であり得る。ビデオ復号器は、（たとえば、インター予測と呼ばれるプロセスでは）様々な他の参照フレームの部分、または（たとえば、イントラ予測と呼ばれるプロセスでは）画像フレーム自体内の部分から、画像フレームを構成することができる。圧縮ユニット２０は、ビデオ復号器が構成した最終の作成された画像フレームにおいて、圧縮技法を実施することができ、必ずしも、画像フレームがビデオ復号器によって構成されている間にその画像フレームにおいて実施するとは限らない。
【００４８】
いくつかの例では、圧縮ユニット２０は、真のリアルタイム圧縮を達成することができる。たとえば、圧縮ユニット２０は、複数のパスを必要とするのではなく、単一のパスにおいて画像データを圧縮することが可能であり得る。言い換えれば、圧縮ユニット２０が画像データブロックを圧縮するとすぐに、圧縮画像データブロックのビットは、直ちに送信または記憶され得る。このようにして、圧縮ユニット２０および圧縮解除ユニット２４の追加は、待ち時間を増加させ得る（潜在的に、待ち時間のわずかな増加にすぎない）が、フレームバッファ２２のサイズおよびコストの低減、ならびに／または帯域幅消費の低減を達成するために、システム１０Ａ〜１０Ｄへの他の変更は必要とされ得ない。
【００４９】
さらに、以下で説明する例からわかるように、圧縮ユニット２０は、圧縮のために大きいメモリのブロックを必要としなくてもよい。たとえば、上記で説明したように、圧縮ユニット２０がある場合、フレームバッファ２２のサイズを低減することが可能であり得る。いくつかの例では、圧縮ユニット２０は、圧縮技法が、圧縮ユニット２０によって達成されるフレームバッファ２２のサイズのいかなる低減も無効にしないように、記憶のために大量のメモリを必要としない圧縮技法を実施することができる。
【００５０】
また、以下で説明する例からわかるように、圧縮ユニット２０は、圧縮の目的で追加の帯域幅を必要としなくてもよい。たとえば、上記で説明したように、圧縮ユニット２０がある場合、帯域幅消費を低減することが可能であり得る。いくつかの例では、圧縮ユニット２０は、圧縮技法が、圧縮ユニット２０によって達成される帯域幅消費のいかなる低減も無効にしないように、時間的予測（たとえば、インター予測）が圧縮のために使用される場合など、追加の帯域幅を必要としない圧縮技法を実施することができる。たとえば、各画像フレームは、他の画像フレームを参照する必要なしに、個々に圧縮され得る。
【００５１】
図２は、図１Ａから図１Ｄの圧縮ユニットの一例をより詳細に示すブロック図である。たとえば、図２は、圧縮ユニット２０をより詳細に示す。圧縮ユニット２０の例には、限定はしないが、デジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、様々な汎用または専用処理ハードウェアのいずれかがある。
【００５２】
圧縮ユニット２０は、画像データにおいて、複数の異なる圧縮技法を並列に（たとえば、同時に）実施することができる。圧縮ユニット２０は、現在のビット割り当てに基づいて、異なる圧縮技法のうちの１つに従って圧縮された圧縮画像データを選択することができる。このようにして、いくつかの例では、圧縮ユニット２０は、どの特定の圧縮技法が利用されるべきであるかについて、いかなる事前決定を実行しなくてもよい。これらの例では、２つ以上の圧縮技法が、現在のビット割り当て内である圧縮画像データを生じる場合、圧縮ユニット２０は、異なる圧縮技法によって生成された圧縮画像データの中から、最も少ないビット数をもつ圧縮画像データを選択することができる。
【００５３】
さらに、図１８および図１９は、圧縮ユニット２０が、どのタイプの圧縮技法を適用するかを事前に決定することができる例を示す。たとえば、圧縮ユニット２０は、圧縮より前に、どのタイプの圧縮技法を適用するかを決定することができ、決定されたタイプの圧縮技法に従って、圧縮することができる。簡潔さのために、図２の説明の一部は、図１８および図１９に示す例に明示的に言及する。したがって、図２について説明することにおいて、本開示は、圧縮ユニット２０が異なる圧縮技法を並列に（すなわち、同時に）実施し、それらの圧縮技法のうちの１つからの圧縮画像データを選択する例と、圧縮ユニット２０がどのタイプの圧縮を適用するかを決定し、決定されたタイプの圧縮に従って圧縮された圧縮画像データを選択することができる例とについて説明する。
【００５４】
図示のように、圧縮ユニット２０は、初期ビット割り当てユニット２９と、色値変換器３２と、色値変換器５６と、可逆圧縮ユニット３５と、不可逆圧縮ユニット５５と、遅延ユニット３４と、バジェット制御器５２と、マルチプレクサ（ＭＵＸ）５４とを含む。圧縮ユニット２０は、あらゆる例においてこれらの構成要素のすべてを含むとは限らない。
【００５５】
たとえば、より詳細に説明するように、初期ビット割り当てユニット２９は、画像データを圧縮するための初期ビット割り当てを決定することができる。いくつかの例では、圧縮ユニット２０は、初期ビット割り当てユニット２９を含まなくてもよく、代わりに、デバイス１２のプロセッサなど、別の構成要素から、画像データを圧縮するための初期ビット割り当てを受信することができる。これらの例では、圧縮ユニット２０は、初期ビット割り当てユニット２９を含まなくてもよい。
【００５６】
別の例として、色値変換器３２および色値変換器５６は、画像データのある事前圧縮を行うことができる。そのような事前圧縮は、あらゆる例において必要であるとは限らず、圧縮ユニット２０は、そのような例では、色値変換器３２と色値変換器５６とを含まなくてもよい。
【００５７】
別の例として、圧縮ユニット２０は、可逆圧縮のみを実行するか、または不可逆圧縮のみを実行することができる。圧縮ユニット２０が不可逆圧縮のみを実行するように構成される例では、圧縮ユニット２０は、不可逆圧縮ユニット５５を含まなくてもよい。圧縮ユニット２０が不可逆圧縮のみを実行するように構成される例では、圧縮ユニットは、可逆圧縮ユニット３５を含まなくてもよい。さらに別の例として、より詳細に説明するように、圧縮ユニット２０は、図２の例に示す可逆圧縮ユニット３５および不可逆圧縮ユニット５５の構成要素のすべてを含むとは限らない。
【００５８】
したがって、図２は、圧縮ユニット２０の一例を示す。一般に、圧縮ユニット２０は、圧縮ユニット２０が画像データのブロックのための現在のビット割り当てを満たすために、画像データを圧縮することを可能にする、任意の構成要素を含み得る。たとえば、本開示で説明する態様では、圧縮ユニット２０は、任意の知られている、またはこれから開発されることになる技法を利用して、画像データを圧縮することができ、図２は、圧縮ユニット２０が画像データを圧縮するために実施することができるいくつかの例示的な技法を示す。
【００５９】
初期ビット割り当てユニット２９は、作成された画像フレームのための初期ビット割り当てを決定することができる。作成された画像フレームのための初期ビット割り当ては、圧縮ユニット２０が目標圧縮を達成することを可能にする、初期ビット割り当てであり得る。目標圧縮は、ユーザプログラム可能であり、または事前プログラムされ得る。たとえば、初期ビット割り当てユニット２９は、ユーザにより選択された、または事前プログラムされた目標圧縮値を、デバイス１２の画像プロセッサ１４、またはデバイス１２の中央処理装置（ＣＰＵ）などの別のプロセッサなど、別の構成要素から受信することができる。
【００６０】
目標圧縮は、圧縮画像データにおけるビット数と、画像データにおけるビット数との間の比を示す。一例として、ユーザは、５０％の目標圧縮を選択することができ、５０％の目標圧縮は、画像フレームのための圧縮画像データにおけるビット数が元の画像データにおけるビット数の半分であることを意味し得る。
【００６１】
５０％未満の目標圧縮値を意味する、５０％よりも多く画像データを圧縮することは、望ましくないことがあり、その理由は、画像フレームの画像品質の低下が大きすぎることがあるからである。たとえば、３０％の目標圧縮値は、圧縮画像データにおけるビット数と元の画像データにおけるビット数との間の比が０．３０であることを意味し得る。そのような圧縮量は、画像品質に悪影響を及ぼすことがある。いくつかの例では、目標圧縮値は、ｋ／２４であってもよく、ただし、８≦ｋ＜２４である。しかしながら、１２未満のｋの値は、圧縮解除の後、得られた画像品質が望ましいとは言えないように、作成された画像フレームの画像品質を低下させ得る。さらに、５０％よりも多く圧縮することは、望ましいものよりも画像品質を低下させ得るが、目標圧縮が５０％未満、およびｋ／２４未満であることも可能であり得、ただし、ｋは８に等しい。
【００６２】
圧縮ユニット２０が、作成された画像フレームに対する目標圧縮を達成することができる、様々な方法があり得、初期ビット割り当てユニット２９は、これらの様々な方法のいずれかのための初期ビット割り当てを決定することができる。たとえば、目標圧縮値が５０％であると仮定する。一例として、画像フレームの画像データを５０％だけ圧縮するために、初期ビット割り当てユニット２９は、画像フレームのラインのための初期ビット割り当てを決定し、そのラインのための画像データが圧縮されるべきであった場合、そのラインのための圧縮画像データにおける総ビット数が、そのラインのための元の画像データにおける総ビット数の５０％になるようにすることができる。この例では、画像フレームの各ラインが５０％だけ圧縮された場合、画像フレームのための得られた圧縮画像データは、元の画像データの５０％になる。
【００６３】
別の例として、作成された画像フレームの画像データを圧縮するために、初期ビット割り当てユニット２９は、画像フレーム全体のための初期バジェットを決定することができる。たとえば、目標圧縮が、画像フレーム全体に対して５０％であると仮定する。この例では、初期ビット割り当てユニット２９は、画像フレーム全体のための画像データが圧縮されるとき、画像フレームのための圧縮画像データにおける総ビット数が、元の画像データにおける総ビット数の５０％になるように、画像フレーム全体のための初期ビット割り当てを決定することができる。
【００６４】
さらに別の例として、作成された画像フレームのための画像データを圧縮するために、初期ビット割り当てユニット２０は、作成された画像フレームのスライスのための初期バジェットを決定することができ、ただし、スライスは複数のラインを含み、画像フレームは１つまたは複数のスライスを含む。ここでも、目標圧縮が画像フレーム全体に対して５０％である場合、初期ビット割り当てユニット２９は、スライスのための画像データが圧縮されるとき、圧縮画像データがそのスライスのための画像データの５０％であるように、スライスのための初期バジェットを決定することができる。この例では、画像フレームの各スライスが５０％だけ圧縮された場合、画像フレームのための得られた圧縮画像データは、元の画像データの５０％になる。
【００６５】
場合によっては、画像フレームのラインまたはスライスのための初期ビット割り当てと比較して、圧縮の目的で画像フレーム全体のための初期ビット割り当てを利用することが、より望ましくなり得る。たとえば、画像フレームのいくつかのラインまたはスライスは、より複雑でないラインまたはスライス（たとえば、高品質を維持しながら、５０％よりも多く圧縮され得るラインまたはスライス）と比較して、比較的複雑（たとえば、高品質を維持しながら、５０％だけ圧縮することが困難）であり得る。
【００６６】
画像フレーム全体のための初期ビット割り当てを決定することによって、圧縮２０は、品質を維持するために複雑なラインまたはスライスのより小さい圧縮と、品質を維持しながらより多く圧縮され得る単純なラインまたはスライスのより大きい圧縮とを実行することができる。しかしながら、各ラインのための、または各スライスのための初期ビット割り当てを決定することは、各ラインまたはスライスについて同じ量だけ画像データを圧縮することを、圧縮ユニット２０に行わせ得る。このことは、複雑なラインおよびスライスの画像品質の低下と、単純なラインまたはスライスに対して可能であるよりも小さい圧縮とを生じ得る。
【００６７】
したがって、本開示の技法については、初期ビット割り当てが、ラインまたはスライスのためではなく、画像フレーム全体のために決定される場合に関して、最初に説明する。圧縮の目的で、各ラインまたはスライスのための初期ビット割り当てを利用することについては、後に説明する。
【００６８】
作成された画像フレームのための初期ビット割り当ては、画像フレーム内のブロック数、および１ブロック当たりの平均の余分のビット数に基づいてもよい。１ブロック当たりの平均の余分のビット数は、圧縮ビットしきい値に基づいてもよく、圧縮ビットしきい値は、目標圧縮に基づいてもよい。このようにして、初期ビット割り当てユニット２９は、目標圧縮に基づいて、画像フレーム全体のための初期ビット割り当てを決定することができる。「画像フレーム内のブロック数」、「１ブロック当たりの平均の余分のビット数」、および「圧縮ビットしきい値」については、すべて以下でより詳細に説明する。
【００６９】
画像フレームは、各々が複数のピクセルを含む複数のブロックに分割され得る。例示的な例として、画像フレームの１つのブロックは、８個のピクセルを含み得る（たとえば、１×８のピクセルのブロック）が、本開示の態様は、８個のピクセルを含む画像フレームのブロックに限定されず、画像フレームのブロックは、８個よりも多いまたは少ないピクセルを含んでもよく、２次元のピクセルのブロックでさえあってもよい。また、画像フレームのサイズが１２８０×８００ピクセルであると仮定し、これはやはり例示的な値であり、限定的と見なされるべきではない。この例では、画像フレーム内のブロック数は、１２８０×８００ピクセル÷１ブロック当たり８ピクセルに等しくなり得、これは１２８，０００ブロックである。
【００７０】
たとえば、この例では、初期ビット割り当てユニット２９は、８のブロックサイズで事前プログラムされてもよく、または、デバイス１２の画像プロセッサ１４またはある他のプロセッサなど、ある他の構成要素から、ブロックサイズ値を受信することができる。また、初期ビット割り当てユニット２９は、画像フレームのサイズで事前プログラムされてもよく、または、画像フレームのサイズ（たとえば、１２８０×８００ピクセル）を受信することもできる。初期ビット割り当てユニット２９は、次いで、画像フレームサイズおよびブロックサイズに基づいて、画像フレームにおけるブロック数を決定することができる。
【００７１】
圧縮ビットしきい値は、ブロックを圧縮するために利用可能であることが保証されるビット数を定義することができ、各ブロックについて割り当てられたビット数を示すことができる。たとえば、圧縮ビットしきい値は、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す。言い換えれば、本開示で説明するバジェットベースの方式によれば、画像フレームの各ブロックが圧縮され得、少なくとも、圧縮ビットしきい値によって定義された、各ブロックについて利用可能である、保証されたビット数まで圧縮され得る。
【００７２】
圧縮ビットしきい値は、ユーザ定義または事前プログラムされ得る。たとえば、初期ビット割り当てユニット２９は、デバイス１２の画像プロセッサ１４もしくは別のプロセッサから、圧縮ビットしきい値を受信することができ、または、圧縮ビットしきい値で事前プログラムされ得る。
【００７３】
圧縮ビットしきい値は、１ブロック当たりの平均の圧縮ビット数以下の値であり得る。１ブロック当たりの平均の圧縮ビット数は、目標圧縮を達成するための１ブロック当たりの平均ビット数を示し、各ブロックのためのバジェットを示すことができる。たとえば、目標圧縮が５０％である場合、１ブロック当たりの平均ビット数は、ブロックが５０％だけ圧縮される結果となる１ブロック当たりのビット数に等しくなり得る。
【００７４】
一例として、１ピクセル当たり２４ビット（たとえば、赤色成分、緑色成分、および青色成分の各々について８ビット）があり、１ブロック当たり８ピクセルがあると仮定する。その場合、８ピクセルの総ビット数は、１９２ビット（すなわち、２４×８）である。作成された画像フレーム全体に対する目標圧縮が５０％である場合、１ブロック当たりの平均の圧縮ビット数は、９６ビット（すなわち、１９２ビット×０．５）である。このようにして、画像フレーム全体が５０％だけ圧縮される場合、平均して、各画像フレームブロックが５０％だけ圧縮された。
【００７５】
１ブロック当たりの平均の圧縮ビット数は、各ブロックがどのくらい圧縮されなければならないかの程度ではないことを理解されたい。たとえば、圧縮ユニット２０は、１ブロック当たりの平均の圧縮ビット数よりも多く、１ブロック当たりの平均の圧縮ビット数に等しく、または１ブロック当たりの平均の圧縮ビット数未満だけ、画像フレームの現在のブロックを圧縮することができる。圧縮ユニット２０が、１ブロック当たりの平均の圧縮ビット数未満だけ、あるブロックを圧縮する場合では、平均して、圧縮ブロックにおけるビット数が１ブロック当たりの平均の圧縮ビット数に等しくなるように、圧縮ユニット２０が１ブロック当たりの平均の圧縮ビット数よりも多く圧縮する、ある他のブロックがあることになる。
【００７６】
１ブロック当たりの平均の圧縮ビット数と、圧縮ビットしきい値との間の関係の一例として、１ブロック当たりの平均の圧縮ビット数が９６ビットである場合、圧縮ビットしきい値は９２ビットであり得、その理由は、９２ビットが９６ビット未満であるからである。この例では、圧縮ユニット２０は、ブロックを圧縮するために利用可能な少なくとも９２ビットを有することが保証される。言い換えれば、元の画像フレームブロックにおける任意の１９２ビットについて、９２の圧縮ビットしきい値は、元の画像フレームブロックにおける１９２ビットが常に９２ビットに圧縮され得ることを意味し、その理由は、９２ビットが、元の画像データの１９２ビットを圧縮するために利用可能であることが保証されるからである。しかしながら、元の画像データが９２ビットに圧縮されることは必要ではない。むしろ、圧縮ユニット２０は、元の画像データを９２ビット未満、９２ビットに等しく、または９２ビットよりも多く圧縮することができ、ただし、９２ビットは、圧縮ビットしきい値である。
【００７７】
一般に、圧縮ビットしきい値は、１ブロック当たりの平均の圧縮ビット数から実質的に逸脱し得ない。たとえば、この例では、圧縮ビットしきい値は、１ピクセル当たり２４ビットと１ブロック当たり８ピクセルとを仮定すると、９０ビットから９６ビットの範囲内であり得る。
【００７８】
圧縮ビットしきい値を低すぎるよう（たとえば、９０ビット未満）に設定することは、画像品質の望ましくない低下を生じ得る。たとえば、上記で説明したように、圧縮ビットしきい値は、圧縮のためにブロックの各々のために利用可能であると保証されるビット数を示す。保証されたビット数が低すぎた場合、いくつかのブロックは、画像品質が低下するポイントまで圧縮され得る。したがって、１ブロック当たりの平均の圧縮ビット数に近い圧縮ビットしきい値は、適切な画像品質が維持されることを保証することができる。
【００７９】
１ブロック当たりの平均の圧縮ビット数−圧縮ビットしきい値は、１ブロック当たりの平均の余分のビット数を示すことができる。たとえば、圧縮ビットしきい値は、圧縮のために各ブロックについて利用可能であると保証されるビット数を示し、１ブロック当たりの平均の圧縮ビット数は、圧縮ブロックにおける平均ビット数を示すので、１ブロック当たりの平均の余分のビット数は、圧縮ユニット２０が画像フレームブロックを圧縮するために使用することができる追加のビットの平均値を示す。上記の例では、１ブロック当たりの平均の余分のビット数は、４に等しい（すなわち、１ブロック当たりの平均の圧縮ビット数（９６）−圧縮ビットしきい値（９２）は、４に等しい）。
【００８０】
１ブロック当たりの平均の余分のビットは、最初に複雑なブロックと、最後により複雑でないブロックとを含む画像フレームについて、有用であり得る。たとえば、圧縮ユニット２０が圧縮を開始し、画像フレームの左上のブロックから始めて、画像フレームの右下のブロックまで継続すると仮定する。この例では、１ブロック当たりの平均の余分のビットは、圧縮ユニット２０がより複雑なブロックの圧縮のために、より複雑でないブロックからビットを借りることとして見なされ得る。初期ブロックが後のブロックよりも複雑でない例でも、１ブロック当たりの平均の余分のビットは、後のより複雑なブロックを圧縮するために使用され得る残りのビットであるとして、有益であり得る。
【００８１】
理解を助ける簡単な例として、画像フレームが２個の８ピクセルブロックを含み、ただし、各ピクセルが２４ビットであり、１ブロック当たり合計１９２ビットである（すなわち、１ブロック当たり８ピクセル×１ピクセル当たり２４ビットは、１ブロック当たり１９２ビットに等しい）と仮定する。また、目標圧縮が５０％であり、１ブロック当たりの平均の圧縮ビット数が９６であることを意味すると仮定し、圧縮ビットしきい値が９２ビットであると仮定する。この例では、元の画像フレームは、３８６ビット（すなわち、１ブロック当たり１９２ビット×２ブロック）を含む。５０％の圧縮の場合、得られた圧縮ビット数は、１９２ビット（すなわち、３８４×０．５）になるはずである。
【００８２】
また、第１のブロックが、第２のブロックと比較して、より複雑でない画像データであると仮定する。この例では、圧縮ユニット２０は、第１のブロックの１９２ビットを９０ビットに圧縮することが可能であり得る。したがって、圧縮ユニット２０が第２のブロックを圧縮するために残された１０２ビット（すなわち、１９２ビット−９０ビットは、１０２ビットに等しい）がある。この例では、圧縮ユニット２０は、５０％の全体的な圧縮を達成するために第２のブロックを圧縮するために、第１のブロックを圧縮するために必要とされたビット数から６ビットを借りると見なされ得、このことは、圧縮ユニット２０に、第２のブロックのための１０２ビットのビット割り当てを与える。
【００８３】
言い換えれば、前の例では、圧縮ユニット２０は、第１のブロックと第２のブロックの両方を９６ビットに圧縮していてもよい。しかしながら、第１のブロックのより低い複雑さのために、圧縮ユニット２０は、圧縮のために９０ビットのみを利用した。このことは、圧縮ユニット２０が、圧縮ユニット２０が第１のブロックを圧縮するために使用し得たであろう６ビットを、第２のブロックを圧縮するために利用することを可能にした。したがって、圧縮ユニット２０は、９６ビットではなく、１０２ビットを利用して、第２のブロックの画像データの１９２ビットを圧縮することができる。
【００８４】
前述の例は、初期ビット割り当てユニット２９が１ブロック当たりの平均の余分のビット数を決定することができる、１つの方法について説明している。ただし、本開示の態様はそのように限定されない。他の例では、１ブロック当たりの平均の余分のビット数を決定するのではなく、初期ビット割り当てユニット２９は、１ブロック当たりの平均の余分のビット数の値を受信することができ、または、初期ビット割り当てユニット２９は、１ブロック当たりの平均の余分のビット数の値で事前プログラムされ得る。したがって、初期ビット割り当てユニット２９が、１ブロック当たりの平均の余分のビット数に基づいて初期ビット割り当てを決定することは可能であり得るが、初期ビット割り当てユニット２９が１ブロック当たりの平均の余分のビット数を決定することは、あらゆる例において必要であるとは限らない。むしろ、初期ビット割り当て２９は、１ブロック当たりの平均の余分のビット数の値を受信することができ、または、１ブロック当たりの平均の余分のビット数の値で事前プログラムされ得る。代替例では、初期ビット割り当てユニット２９は、上記で説明した方法で、１ブロック当たりの平均の余分のビット数を決定することができる。
【００８５】
初期ビット割り当てを決定するために、初期ビット割り当てユニット２９は、１ブロック当たりの平均の余分のビット数に、総ブロック数を乗じることができる。たとえば、画像フレームにおける総ブロック数が１２８，０００（たとえば、１２８０×８００ピクセル÷１ブロック当たり８ピクセル）である場合、初期ビット割り当ては、５１２，０００（たとえば、１２８，０００×４）である。
【００８６】
いくつかの例では、「１ブロック当たりの平均の余分のビット数」、「１ブロック当たりの平均の圧縮ビット数」、「圧縮ビットしきい値」、および「初期ビット割り当て」のうちの１つまたは複数はすべて、すべての画像フレームについてあらかじめ決定され得ることを理解されたい。たとえば、デバイス１２の画像プロセッサ１４またはある他のプロセッサは、これらの値の一部または全部をあらかじめ決定することができ、初期ビット割り当てユニット２９は、デバイス１２の画像プロセッサ１４またはある他のプロセッサの一部であり得る。別の例では、これらの値の一部または全部が、デバイス１２のメモリに記憶されてもよく、圧縮ユニット２０は、これらの値のうちの１つまたは複数をデバイス１２のメモリから取り出すことが可能であり得る。
【００８７】
より詳細に説明するように、圧縮ユニット２０は、初期ビット割り当ておよび圧縮ビットしきい値に基づいて、画像フレームの第１のブロックのための現在のビット割り当てを決定することができる。画像フレームの後続のブロックのために、圧縮ユニット２０は、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために画像フレームのブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに基づいて、現在のビット割り当てを決定することができる。
【００８８】
図２に示した例では、バジェット制御器５２は、初期ビット割り当てを受信し、初期ビット割り当てから、第１の画像フレームブロックのための現在のビット割り当てを決定することができる。第１のブロック（たとえば、ブロック０）のための現在のビット割り当ては、初期ビット割り当て＋圧縮ビットしきい値であり得る。上記の例では、初期ビット割り当ては、５１２，０００＋９２であり、５１２，０９２ビットに等しい。
【００８９】
可逆圧縮ユニット３５および不可逆圧縮ユニット５５の各々は、以下でより詳細に説明するように、それぞれ可逆圧縮技法および不可逆圧縮技法を利用して、第１のブロックを圧縮することができる。たとえば、可逆圧縮ユニット３５は、可逆圧縮技法を使用して圧縮された元のブロックである、可逆圧縮画像フレームブロックを生成することができ、不可逆圧縮ユニット５５は、不可逆圧縮技法を使用して圧縮された元のブロックである、不可逆圧縮画像フレームブロックを生成することができる。
【００９０】
可逆圧縮ユニット３５は、可逆圧縮画像フレームブロックにおけるビット数を示す値を、バジェット制御器５２に出力することができる。同様に、不可逆圧縮ユニット５５は、不可逆圧縮画像フレームブロックにおけるビット数を示す値を、バジェット制御器５２に出力することができる。バジェット制御器５２は、可逆圧縮画像フレームブロックおよび不可逆圧縮画像フレームブロックのうちのどちらが現在のビット割り当て内であるかを判定し、ＭＵＸ５４が出力するために、現在のバジェット内である圧縮画像フレームブロックを選択することができる。たとえば、バジェット制御器５２は、選択された圧縮画像フレームブロックを出力するようにＭＵＸ５４に指示する指示を、ＭＵＸ５４に出力することができる。ＭＵＸ５４は、選択された圧縮画像フレームブロックを、図１Ａから図１Ｄに関して上記で説明したように、フレームバッファ２２または圧縮解除ユニット２４に出力することができる。
【００９１】
場合によっては、可逆圧縮画像フレームブロックのビット数と、不可逆圧縮画像フレームブロックのビット数の両方が、現在のビット割り当て内であることが可能であり得る。いくつかの例では、そのような場合、バジェット制御器５２は、不可逆圧縮画像フレームブロックではなく、可逆圧縮画像フレームブロックを出力するように、ＭＵＸ５４に指示することができる。一般に、圧縮解除ユニット２４が可逆圧縮画像フレームブロックを圧縮解除するとき、得られた圧縮解除ビットは、画像フレームブロックの元のビットに等しくなり得る。しかしながら、圧縮解除ユニット２４が不可逆圧縮画像フレームブロックを圧縮解除するとき、得られた圧縮解除ビットは、画像フレームブロックの元のビットに等しくなり得ない。
【００９２】
不可逆圧縮画像フレームブロックの圧縮解除ビットは、画像フレームブロックの元のビットに等しくないので、不可逆圧縮画像フレームブロックの圧縮解除ビットが、パネル２６のピクセルを照明するために使用されるとき、画像品質のある程度の低下があり得る。画像品質の低下を回避するために、バジェット制御器５２は、両方の出力が現在のビット割り当て内であるとき、不可逆圧縮ユニット５５よりも可逆圧縮ユニット３５の出力を選択するほうへバイアスされ得る。
【００９３】
たとえば、前の例では、バジェット制御器５２は、画像フレームブロック０のための現在のビット割り当てが５１２，０９２ビットであると決定することができる。可逆圧縮ユニット３５がブロック０の１９２ビットを１０８ビットに圧縮し、不可逆圧縮ユニット５５がブロック０の１９２ビットを９８ビットに圧縮すると仮定する。この例では、１０８ビットと９８ビットの両方が、５１２，０９２ビット未満である。したがって、可逆圧縮ユニット３５と不可逆圧縮ユニット５５の両方の圧縮画像フレームブロック出力が、５１２，０９２の現在のビット割り当て内である。この例では、バジェット制御器５２は、可逆圧縮へのバイアスにより、可逆圧縮ユニット３５の出力を選択し、可逆圧縮画像フレームブロックを出力することを、ＭＵＸ５４に行わせることができる。
【００９４】
しかしながら、不可逆圧縮画像フレームブロックのビット数が現在のビット割り当て未満であり、可逆圧縮画像フレームブロックのビット数が現在のビット割り当てよりも大きい場合、バジェット制御器５２は、不可逆圧縮ユニット５５の出力を選択し、不可逆圧縮画像フレームブロックを出力するようにＭＵＸ５４に指示することができる。いくつかの例では、不可逆圧縮ユニット５５は、不可逆圧縮画像フレームブロックにおけるビット数が現在のビット割り当て以下であることが保証されるように、不可逆圧縮を実施することができる。このようにして、可逆圧縮および不可逆圧縮がともに現在のビット割り当てを満たす場合、ＭＵＸ５４は、可逆圧縮画像フレームブロックを選択することができる。しかしながら、可逆圧縮画像フレームブロックが現在のビット割り当てを満たさない場合、不可逆圧縮画像フレームブロックが、現在のビット割り当てを満たすことが保証される。
【００９５】
バジェット制御器５２は、次いで、次の画像フレームブロック（たとえば、ブロック１）のための現在のビット割り当てを決定することができる。次のブロックのための現在のビット割り当てを決定するために、バジェット制御器５２は、以前のブロックのバジェットから、以前の圧縮ブロック（たとえば、ブロック０）のビット数を引くことができる。たとえば、以前のブロック（たとえば、ブロック０）のためのビット割り当ては、５１２，０９２ビットであり、バジェット制御器５２は、１０８ビット（たとえば、以前の圧縮ブロックのビット数）を利用した、可逆圧縮ユニット３５によって出力された出力可逆圧縮画像フレームブロックを選択した。
【００９６】
この例では、バジェット制御器５２は、５１２，０９２ビットから１０８ビットを引くことができ、これは５１１，９８４ビットに等しい。バジェット制御器５２は、得られた値（たとえば、５１１，９８４ビット）を、圧縮ビットしきい値（たとえば、９２）と合計することができる。この合計から得られた値は、現在のブロックのための現在のビット割り当てであり得る。たとえば、この例では、画像フレームブロック１のための現在のビット割り当ては、５１２，０７６ビット（すなわち、５１１，９８４＋９２）である。可逆圧縮ユニット３５および不可逆圧縮ユニット５５は、ブロック１を圧縮することができ、バジェット制御器５２は、上記のステップを繰り返して、ブロック１のために、可逆圧縮画像フレームブロックを出力するか、不可逆圧縮画像フレームブロックを出力するかを判定し、画像フレーム内のすべての後続のブロックについて同様のステップを繰り返すことができる。
【００９７】
上記の例では、現在のブロックの圧縮より前に、そのブロックのための現在のビット割り当ては、現在のビット割り当て＋＝圧縮ビットしきい値と見なされ得、現在のブロックの圧縮の後、現在のビット割り当ては、現在のビット割り当て−＝現在のブロックを圧縮することに費やされたビットと見なされ得る。言い換えれば、現在のビット割り当てのための式は、現在のビット割り当て＋＝圧縮ビットしきい値−以前のブロックの圧縮ビットとして表され得る。このようにして、現在のビット割り当てが０以上である限り、圧縮ユニット２０は、圧縮後の画像フレームのサイズがバジェット内であること（たとえば、５０％の目標圧縮を仮定すると、元の５０％）を保証することができる。
【００９８】
いくつかの例では、予測ユニット３６および予測ユニット６０に関してより詳細に説明するように、ライン内の以前のピクセルの値から、ラインにおけるピクセルの値を予測することが可能であり得る。しかしながら、ラインにおける第１のブロックでは、それから値を予測するための、以前のピクセルがあり得ない。これに対処するために、いくつかの例では、バジェット制御器５２は、ライン内の第１のブロックのための初期ビット割り当ておよび／または圧縮ビットしきい値をわずかに変更することができる。
【００９９】
たとえば、ラインの各々内の第１のブロックのための、圧縮ビットしきい値が９２ビットである場合、バジェット制御器５２は、これらのブロックのための、圧縮ビットしきい値を、９４ビットになるように割り当てることができる。圧縮ビットしきい値が、以前のブロックのための以前のビット割り当てに加算されるので、ラインの各々内の第１のブロックのための圧縮ビットしきい値の増加は、それらの第１のブロックのためのわずかにより大きいビット割り当てを生じる。バジェット制御器５２が、ライン内の他のブロックと比較して、ラインの第１のブロックにわずかにより高いビット割り当てを割り当てることが可能であり得るように、バジェット制御器５２は、初期ビット割り当てを同様に変更することができる。
【０１００】
各ライン内の第１のブロックのためのビット割り当てを変更することは、あらゆる例において必要であるとは限らない。たとえば、いくつかの例では、圧縮ユニット２０は、予測ユニット３６および予測ユニット６０によって実行される予測など、予測を実行しなくてもよく、これらの例では、バジェット制御器５２は、各ラインの第１のブロックのためのビット割り当てを変更しなくてもよい。さらに、圧縮ユニット２０が予測を実行する例でも、バジェット制御器５２は、各ライン内の第１のブロックのためのビット割り当てを変更しなくてもよい。
【０１０１】
前の例では、バジェット制御器５２は、各ブロックのための現在のビット割り当てを決定するために、画像フレーム全体のための初期ビット割り当てを利用した。以下では、バジェット制御器５２が、各ブロックのための現在のビット割り当てを決定するために、各ラインのための、または各スライスのための初期ビット割り当てを利用することができる例について説明する。
【０１０２】
たとえば、前の例では、初期ビット割り当ては、１ブロック当たりの平均の余分のビット数×画像フレームにおける総ブロック数に等しくなった。ラインのための初期ビット割り当ては、１ブロック当たりの平均の余分のビット数×ラインにおける総ブロック数であり得る。スライスのための初期ビット割り当ては、１ブロック当たりの平均の余分のビット数×スライスにおける総ブロック数であり得る。
【０１０３】
たとえば、画像フレームのサイズが１２８０×８００であると仮定する。したがって、ラインにおいて１２８０ピクセルがある。ブロックサイズが８ピクセルである場合、ラインにおいて１６０ブロック（すなわち、１２８０÷８）がある。この例では、ラインのための初期ビット割り当ては、１６０ブロック×４（たとえば、１ブロック当たりの平均の余分のビット数）であり、これは６４０ビットである。
【０１０４】
スライスでは、そのスライスにおける総ブロック数は、スライス内のライン数に基づく。たとえば、スライスが１６ラインを含み、これは、この例では、スライスのサイズが１２８０×１６であることを意味すると仮定する。ブロックサイズが８ピクセルである場合、１スライス当たり２５６０ブロックがあり、スライスのための初期ビット割り当ては、１スライス当たり２５６０ブロック×４（たとえば、１スライス当たりの平均の余分のビット数）であり、これは１０，２４０ビットである。
【０１０５】
初期ビット割り当てがラインのためのものである例では、バジェット制御器５２は、第１のブロックのための現在のビット割り当てを、ラインのための初期ビット割り当て＋圧縮ビットしきい値になるように決定することができる。初期ビット割り当てがスライスのためのものである例では、バジェット制御器５２は、第１のブロックのための現在のビット割り当てを、スライスのための初期ビット割り当て＋圧縮ビットしきい値になるように決定することができる。
【０１０６】
可逆圧縮ユニット３５および不可逆圧縮ユニット５５は、上記で説明したように、ラインまたはスライスの第１のブロックを圧縮することができ、バジェット制御器５２は、ＭＵＸ５４による出力のために、得られた可逆圧縮ブロックまたは不可逆圧縮ブロックのいずれかを選択することができる。次いで、バジェット制御器５２は、上記で説明したように、第２のブロックのための現在のビット割り当てを決定することができる（たとえば、現在のビットバットは、以前のビット割り当て＋圧縮ビットしきい値−以前の圧縮ブロックのビット数に等しい）。しかしながら、バジェット制御器５２は、初期ビット割り当てがラインのためのものである例では、各ラインのためのビット割り当てをリセットし、初期ビット割り当てがスライスのためのものである例では、各スライスのためのビット割り当てをリセットすることができる。
【０１０７】
図示のように、圧縮ユニット２０は、色値変換器３２を含み得る。色値変換器３２は、画像フレームのブロックを受信し、ある可逆的な事前圧縮を行うことができる。たとえば、色値変換器３２は、色値を異なる色空間に変換することができる。上記で説明したように、画像プロセッサ１４は、色値をＲＧＢ成分として定義することができ、ただし、各成分は８ビットである。色値変換器３２は、ピクセルのための色値を、ＲＧＢ色空間から、ルーマおよびクロマ色空間に変換することができる。
【０１０８】
一例として、色値変換器３２は、ＲＧＢ値をＹＣｏＣｇ値に変換することができ、ただし、Ｙはルーマ成分であり、ＣｏおよびＣｇはクロマ成分である。たとえば、「Ｙ」はルミナンスまたは強度を表し、「Ｃｏ」はオレンジクロミナンスを表し、「Ｃｇ」は緑クロミナンスを表す。ＲＧＢ値をＹＣｏＣｇ値に変換することは、一例であり、「Ｃｂ」が青クロミナンスを表し、「Ｃｒ」が赤クロミナンスを表すＹＣｂＣｒ、「Ｈ」が色相を表し、「Ｓ」が彩度を表し、「Ｖ」が値または強度を表すＨＳＶ、または任意の他の色空間など、他の色空間に変換することが可能であり得る。
【０１０９】
ＲＧＢからＹＣｏＣｇへの色空間変換では、色値変換器３２は、以下の行列演算を実施することができる。
【数１】
2014523703.tif 000003
【０１１０】
この例では、色値変換器３２は、「＋」と「シフト」とを利用して、上記の行列演算を実施することができる。このことは、色値変換器３２が、比較的迅速に、乗算または除算の必要なしに、行列演算を実行することを可能にすることができる。
【０１１１】
ピクセル値をＲＧＢ色空間からＹＣｏＣｇ色空間に変換することによって、色値変換器３２は、いくつかの例では、色値を表すために必要とされるビット数を低減することができる。たとえば、ＲＧＢ色空間では、各色値は２４ビットであり得る。ＹＣｏＣｇ色空間では、色値変換器３２は、Ｙ成分のために８ビット、ならびに、Ｃｏ成分およびＣｇ成分のために９ビット、合計１７ビットを利用することができる。しかしながら、色値変換器３２は、あらゆる例において、２４ビットを１７ビットに低減するとは限らない。さらに、色空間の変換は、圧縮解除ユニット２４が元のＲＧＢ色値を再構成することを可能にする、可逆圧縮と見なされ得る。
【０１１２】
たとえば、圧縮解除ユニット２４は、ＹＣｏＣｇ値をＲＧＢ値に変換するために、以下の行列演算を実施することができる。
【数２】
2014523703.tif 000004
【０１１３】
色値変換器３２は、圧縮ユニット２０のあらゆる例において必要であるとは限らない。たとえば、色値変換器３２によって行われる事前圧縮は、あらゆる例において必要であるとは限らない。図示のように、色値変換器３２は、得られた色値を可逆圧縮ユニット３５および不可逆圧縮ユニット５５に出力する。圧縮ユニット２０が色値変換器３２を含まない例では、可逆圧縮ユニット３５および不可逆圧縮ユニット５５は、色空間変換なしに、色値を受信することができる。
【０１１４】
可逆圧縮ユニット３５は、予測ユニット３６を含み得る。色値変換器３２と同様に、予測ユニット３６は、ある追加の事前圧縮を行うことができる。予測ユニット３６によって行われる事前圧縮は、あらゆる例において必要であるとは限らず、圧縮ユニット２０は、あらゆる例において予測ユニット３６を含むとは限らない。例示および説明の目的で、予測ユニット３６は、色値変換器３２によって事前圧縮された、画像フレームの事前圧縮ブロックを受信するものとして例示される。他の例では、予測ユニット３６は、画像フレームの元のブロックを受信することができる。
【０１１５】
予測ユニット３６は、画像フレームのブロックにおいて、１次元予測（１Ｄ予測）および／または２次元予測（２Ｄ予測）を実行するように構成され得る。１Ｄ予測および２Ｄ予測において、予測ユニット３６は、ブロック内のピクセルの色値を予測し、予測色値のための予測誤差値を決定することができる。予測誤差値は、実際の色値と予測色値との間の差である。いくつかの例では、予測色値と予測誤差値とを表すために必要とされるビットは、ＹＣｏＣｇ色空間またはＲＧＢ色空間のいずれかにおける色値を表すために必要とされるビット未満であり得る。
【０１１６】
１Ｄ予測の２つの例、すなわち、プログレッシブ予測（progressive prediction）およびインターリーブ予測（interleave prediction）があり得る。図３Ａおよび図３Ｂは、１次元予測の例を示す概念図である。たとえば、図３Ａは、プログレッシブ予測を示し、図３Ｂは、インターリーブ予測を示す。プログレッシブ予測では、図３Ａに示すように、ピクセルのための色値が、その以前のピクセルの色値から予測される。インターリーブ予測では、図３Ｂに示すように、ピクセルのための色値が、直前のピクセルの以前のピクセルの色値から予測される。
【０１１７】
たとえば、図３Ａおよび図３Ｂは、ピクセルＸi,jを含むブロック７０を示し、ただし、ｉおよびｊは、ピクセルの、それぞれｘ座標およびｙ座標である。たとえば、ブロック７０は、ピクセルＸ0,0からＸn-1,0のための色値を含み、ただし、ｎは８に等しい。プログレッシブ予測では、図３Ａに示すように、ピクセルＸi,0がＸi-1,0から予測される。インターリーブ予測では、図３Ｂに示すように、ピクセルＸi,0がＸi-2,0から予測される。
【０１１８】
プログレッシブ予測の場合、ブロック７０における第１のピクセルの色値を予測するために、予測ユニット３６は、以前のブロックにおける最後のピクセルの色値を必要とし得る。たとえば、図３Ａでは、Ｘ0,0のためのピクセル値が、Ｘ’-1,0のための色値から予測され、ただし、Ｘ’は、その予測色値および予測誤差値から再構成される、最後のピクセルの色値を表す。たとえば、予測ユニット３０は、ピクセルＸ-1,0の色値をあらかじめ予測していてもよい。この例では、Ｘ’-1,0は、Ｘ-1,0を予測するために使用された色値と、予測誤差値とに基づく、Ｘ-1,0の再構成されたバージョンを表す。
【０１１９】
インターリーブ予測の場合、ブロック７０における第１のピクセルの色値と第２のピクセルの色値とを予測するために、予測ユニット３６は、以前のブロックにおける最後のピクセルの色値と、最後から２番目のピクセルの色値を必要とし得る。たとえば、図３Ｂでは、Ｘ0,0のためのピクセル値が、Ｘ’-2,0のための色値から予測され、Ｘ1,0は、Ｘ’-1,0のための色値から予測される。
【０１２０】
予測ユニット３６に、以前のブロックのための色値を与えるために、圧縮ユニット２０は、遅延ユニット３４を含み得る。図示のように、遅延ユニット３４は、ブロック内のピクセルの元の色値を受信する。遅延ユニット３４は、次いで、ピクセルの色値を色値変換器５６に出力することができる。この例では、色値変換器５６は、色値変換器３２が次のブロックを受信するのとほぼ同時に、遅延ユニット３４から出力を受信することができる。このようにして、遅延ユニット３４は、色値変換器３２が現在のブロックの後のブロックの色値を受信するまで、現在のブロックの色値を出力することを遅延させることができる。
【０１２１】
遅延ユニット３４は、任意の知られている技法、またはこれから開発されることになる技法を実施して、色値変換器３２が次のブロックのための色値を受信するとき、色値変換器５６が現在のブロックのための色値を受信する時間を遅延させることができる。さらに、いくつかの例では、遅延ユニット３４は、必要でなくてもよい。
【０１２２】
たとえば、いくつかの例では、画像プロセッサ１４は、フレームバッファとは異なるバッファに、ブロックごとに色値を出力することができる。たとえば、バッファはピンポンバッファであり得る。ピンポンバッファは、現在のブロックのための色値と、以前のブロックのための色値とを、一時的に記憶することができる。圧縮ユニット２０は、現在のブロックのための色値と、以前のブロックのための色値とを、ピンポンバッファから受信することができる。たとえば、色値変換器３２は、現在のブロックのための色値をピンポンバッファから受信することができ、色値変換器５６は、以前のブロックのための色値をピンポンバッファから受信することができる。
【０１２３】
色値変換器５６は、色値変換器３２と実質的に同様であってもよく、実質的に同様の機能を実行することができる。たとえば、色値変換器５６は、色値変換器３２に関して上記で説明したものと同様の方法で、以前のブロックの色値を、ＲＧＢ色空間からＹＣｏＣｇ色空間に変換することができる。
【０１２４】
１Ｄ予測を実行するとき、予測ユニット３６は、プログレッシブ予測を実行するか、インターリーブ予測を実行するかを判定することができる。たとえば、以下の式が真である場合、予測ユニット３６は、インターリーブ予測ではなく、プログレッシブ予測を実行することができる。偽である場合、予測ユニット３６は、プログレッシブ予測ではなく、インターリーブ予測を実行することができる。
【数３】
2014523703.tif 000005
【０１２５】
ただし、ｉ＞０であるとき、Ｘ’’i-1,0はＸi-1,0に等しく、ｉ＝０であるとき、Ｘ’’i-1,0はＸ’i-1,0に等しく、また、ｉ＞０であるとき、Ｘ’’i-2,0はＸi-2に等しく、ｉ＝０であるとき、Ｘ’’i-2,0はＸ’i-2,0に等しい。
【０１２６】
１Ｄ予測では、ピクセルＸi,jのための予測色値は、Ｐi,jによって表される。プログレッシブ予測では、Ｐi,0はＸ’’i-1,0に等しく、インターリーブ予測では、Ｐi,0はＸ’’i-2,0に等しく、ただし、Ｘ’’i-1,0およびＸ’’i-2,0は上記で定義される。Ｐi,jのための予測誤差値は、Ｅi,jであり、実際の色値と予測色値とにおける差を表すことができる。たとえば、Ｅi,0は、Ｘi,0−Ｐi,0に等しい。
【０１２７】
いくつかの例では、１Ｄ予測の代わりに、または１Ｄ予測に加えて、予測ユニット３６は、２Ｄ予測を実行するように構成され得る。２Ｄ予測では、予測ユニット３６は、現在のブロックのすぐ上、またはすぐ下にある隣接ブロックから、色値を予測することができる。たとえば、圧縮ユニット２０が画像フレームブロックを最上部から最下部へと圧縮中である場合、隣接ブロックは、現在のブロックのすぐ上にあり得、圧縮ユニット２０が画像フレームブロックを最下部から最上部へと圧縮中である場合、その逆である。図３Ｃは、２次元予測の一例を示す概念図である。
【０１２８】
２Ｄ予測を実行するために、予測ユニット３６は、色値変換器５６を通して隣接ブロックを受信することができる。たとえば、画像プロセッサ１４は、ブロックをピンポンバッファに出力することができ、色値変換器３２は、現在のブロックをピンポンバッファから受信することができ、色値変換器５６は、隣接ブロックをピンポンバッファから受信することができる。別の例として、遅延ユニット３４は、現在のブロックを受信し、色値変換器３２がブロックのすぐ下のブロックを受信するとき、現在のブロックを色値変換器５６に出力することができる。この場合、色値変換器３２が受信するブロックは、ここで、現在のブロックと見なされ得、遅延ユニット３４によって出力され、色値変換器５６によって受信されたブロックは、隣接ブロックと見なされ得る。
【０１２９】
図３Ｃに示すように、ブロック７０における各ピクセルＸi,jについて、ブロック７０のすぐ上のブロックである隣接ブロックにおいて対応するピクセルＸ’i,j-1がある。いくつかの例では、予測ユニット３６は、ピクセルＸi,jのための色値を、Ｘ’i,j-1から予測することができる。ただし、あらゆる例においてこれが当てはまるとは限らない。
【０１３０】
たとえば、場合によっては、予測ユニット３６が（たとえば、ブロック７０の上にある隣接ブロックから）垂直方向において色値を予測することができ、場合によっては、予測ユニット３６が（たとえば、同じラインにおける以前のブロックから）水平方向において色値を予測することができるので、２Ｄ予測は２次元予測と見なされ得る。
【０１３１】
たとえば、予測ユニット３６は、以下の式が真であるかどうかを判定することができる。真である場合、予測ユニット３６は、同じラインにおける隣接ブロックから色値を予測することができ、偽である場合、予測ユニット３６は、現在のブロックの上または下にある隣接ブロックから色値を予測することができる。
【数４】
2014523703.tif 000006
【０１３２】
ただし、Ｘ’’i-1,0は、上記と同じであり、Ｘ’i-1は、ピクセルＸi,0のすぐ上にあるピクセルを指す。
【０１３３】
たとえば、上記の式が真である場合、予測ユニット３６は、水平ブロック（たとえば、同じラインにおける隣接ブロック）を利用して、上記で説明したプログレッシブ予測技法を実施することができる。いくつかの例では、予測ユニット３６がインターリーブ予測を実行することが可能であり得る。たとえば、予測ユニット３６は、
【数５】
2014523703.tif 000007
【０１３４】
が真であるとき、色値を水平に予測することを選択することができる。真であるとき、予測ユニット３６は、上記で説明したように、プログレッシブ予測またはインターリーブ予測の間で選択することができる。
【数６】
2014523703.tif 000008
【０１３５】
が偽であるとき、予測ユニット３６は、色値を垂直に予測することを選択することができる。この場合、ピクセルＸi,0のための予測色値（すなわち、Ｐi,0）は、Ｘ’i,-1に等しい。予測誤差値は、Ｅi,0であり得、Ｘi,0−Ｐi,0に等しい。
【０１３６】
上記の例では、２Ｄ予測について、予測ユニット３６が色値を垂直に予測すること、または水平に予測することの間で選択する例で、説明している。ただし、本開示の態様はそのように限定されない。いくつかの例では、予測ユニット３６は、ピクセルのための色値を、斜めに位置するピクセルから予測することができる。たとえば、予測ユニット３６が水平ブロックから色値を予測することは、０°方向において予測することと呼ばれることがあり、垂直ブロックから色値を予測することは、９０°方向において予測することと呼ばれることがある。
【０１３７】
いくつかの例では、予測ユニット３６はまた、ピクセルのための色値を１３５°方向において予測することもでき、１３５°方向は、その色値が予測されている現在のピクセルの上および左に位置するピクセルを指す。いくつかの例では、予測ユニット３６はまた、ピクセルのための色値を４５°方向において予測することもでき、４５°方向は、現在のピクセルの下および左に位置するピクセルを指す。
【０１３８】
予測ユニット３６が、０°、４５°、９０°、および１３５°で予測を実行するように構成される例では、予測ユニット３６は、上記で説明した方法で、予測色値を決定することができる。予測ユニット３６は、最小の予測色値を生じる方向において予測を実行することを選択することができる。
【０１３９】
これらの例では、予測ユニット３６は、予測方向を示す２ビットヘッダを利用することができる。たとえば、圧縮解除ユニット２４は、画像フレームブロックが圧縮された方法を示す情報で構成される必要があり得る。２ビットヘッダは、予測ユニット３６が０°予測を利用したか、４５°予測を利用したか、９０°予測を利用したか、１３５°予測を利用したかを示すことができる。０°予測または９０°予測のみが使用される場合、予測ユニット３６は、単一ビットヘッダを利用することができる。
【０１４０】
いくつかの例では、予測ユニット３６が色値を予測することが可能でないことがある。たとえば、画像フレームにおける最初のピクセルの上または前にある、直接隣接したピクセルがないので、予測ユニット３６は、２Ｄ予測を実施するとき、そのピクセルを予測することができず、その色値をそのまま出力することがある。同様に、ラインにおける最初のピクセルの前にある、直接隣接したピクセルがないので、予測ユニット３６は、１Ｄ予測を実施するとき、そのピクセルを予測することができず、その色値をそのまま出力することがある。予測ユニット３６がインターリーブ予測を実施する例では、ラインにおける第２のピクセルを予測するために、予測ユニット３６は、ラインにおける第２のピクセルのための予測色値が、ルーマ（Ｙ）成分では１２８、クロマ成分（Ｃｏ、Ｃｇ）では２５６であると決定することができる。
【０１４１】
図示のように、予測ユニット３６は、各ピクセルのための予測色値と予測誤差値とを、ブロック固定長符号化（ＢＦＬＣ）符号器４２、可変長符号化（ＶＬＣ）符号器４４、およびスキップモード符号器４６に出力する。ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６は、ブロックを符号化するための例示的な符号器である。可逆圧縮ユニット３５は、これらの符号器のうちのすべてではないが、いくつかを含まなくてもよく、これらの符号器に加えて符号器を、またはこれらの符号器とは異なる符号器を含んでもよい。
【０１４２】
ＢＦＬＣ符号器４２は、任意の知られている、またはこれから開発されることになる固定長符号化技法を実施することができ、ＶＬＣ符号器４４は、任意の知られている、またはこれから開発されることになる可変長符号化技法を実施することができる。スキップモード符号器４６は、追加の圧縮を実行しないパススルーとして機能することができる。
【０１４３】
また、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６は、ブロック内のピクセルの各々を（たとえば、すべての８ピクセルのためのルーマ成分（Ｙ）について、および、すべての８ピクセルのためのクロマ成分（ＣｏおよびＣｇ）について）符号化することができる。たとえば、ある符号化方式を利用して、ピクセルのＹ成分を符号化し、異なる符号化方式を使用して、Ｃｏ成分を符号化し、さらに別の異なる符号化方式を使用して、Ｃｇ成分を符号化することが可能であり得る。他の例では、Ｙ成分、Ｃｏ成分、およびＣｇ成分のうちのいずれか２つが、同じ符号化方式を使用して符号化され、他の成分が、異なる符号化方式を使用して符号化されてもよい。さらに別の例では、Ｙ成分、Ｃｏ成分、およびＣｇ成分の３つすべてが、同じ符号化方式を使用して符号化されてもよい。
【０１４４】
いくつかの例では、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６は、それぞれ可逆圧縮を並列に実行し、それらのそれぞれの圧縮ブロックを、圧縮画像データ選択器４８に出力することができる。また、パターンモード符号器４０も、元の画像データを圧縮することができる。パターンモード符号器４０の機能について、より詳細に説明する。たとえば、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６は、色値変換器３２がＲＧＢ値をＹＣｏＣｇ色空間に変換した後に画像データを予測した予測ユニット３６から、受信された画像データを圧縮することができる。パターンモード符号器４０は、一方、元の画像データ（たとえば、ＲＧＢ値）を受信し、それらの値に圧縮を適用することができる。
【０１４５】
いくつかの例では、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６は、それぞれ、圧縮画像データがどこから生じたかを示すヘッダビットを、圧縮画像データに含めることができる。たとえば、ＢＬＦＣ符号器４２は、圧縮画像データブロックがＢＬＦＣ圧縮技法に従って圧縮されたことを示す、１つまたは複数のヘッダビットを、圧縮画像データブロックに含めることができる。パターンモード符号器４０、ＶＬＣ符号器４４、およびスキップモード符号器４６は、同様に１つまたは複数のヘッダビットを含めることができる。このようにして、圧縮解除ユニット２４が圧縮画像データブロックを圧縮解除するとき、圧縮解除ユニット２４は、ヘッダビットに基づいて、圧縮解除を実施するための方法を決定することができる。
【０１４６】
図２に示すように、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６の各々は、それぞれの圧縮画像データブロックを、圧縮画像データ選択器４８に出力することができる。パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６の各々が、画像フレームブロックを圧縮する例では、圧縮画像データ選択器４８は、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６のうちの１つによって出力されたビットストリームを、ビットストリームにおけるビット数に基づいて選択することができる。たとえば、圧縮画像データ選択器４８は、画像フレームブロックを符号化するために最小ビット数を利用する、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６のうちの１つによって出力されたビットストリームを選択することができる。
【０１４７】
さらに、場合によっては、Ｙ成分、Ｃｏ成分、およびＣｇ成分は、異なる符号化方式を使用して符号化され得る。そのような場合、圧縮画像データ選択器４８は、Ｙ成分、Ｃｏ成分、およびＣｇ成分を符号化するために使用される異なる符号器の出力を連結することができる。たとえば、スキップモード符号器４６がＹ成分を符号化し、ＶＬＣ符号器４４がＣｏ成分とＣｇ成分とを符号化したと仮定する。この例では、圧縮画像データ選択器４８は、スキップモード符号器４６の出力（たとえば、Ｙ成分）を、ＶＬＣ符号器４４の出力（たとえば、Ｃｏ成分およびＣｇ成分）と連結して、色値のための１つのビットストリームを形成することができる。
【０１４８】
図２に示すように、圧縮画像データ選択器４８は、符号化ビットストリームを可逆圧縮画像データ選択器５０に出力することができる。可逆圧縮画像データ選択器５０はまた、パルス符号変調（ＰＣＭ）符号器３８からの出力ビットストリームを受信することもできる。ＰＣＭ符号器３８については、以下でより詳細に説明する。可逆圧縮画像データ選択器５０は、ＰＣＭ符号器３８によって出力されたビットストリームにおけるビット数が、圧縮画像データ選択器４８によって出力されたビットストリームにおけるビット数未満であるか、それよりも大きいかを判定することができる。
【０１４９】
本開示で説明する例示的な技法では、可逆圧縮画像データ選択器５０は、より少ないビット数をもつビットストリームを選択することができる。たとえば、圧縮画像データ選択器４８の出力ビットストリームが、ＰＣＭ符号器３８の出力ビットストリームよりも少ないビットを含んでいた場合、可逆圧縮画像データ選択器５０は、圧縮画像データ選択器４８の出力ビットストリームを選択することができる。そうでない場合、可逆圧縮画像データ選択器５０は、ＰＣＭ符号器３８の出力ビットストリームを選択することができる。
【０１５０】
いくつかの例では、圧縮画像データ選択器４８は必要でなくてもよい。これらの例では、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、スキップモード符号器４６、およびＰＣＭ符号器３８の各々は、それらのそれぞれのビットストリームを可逆圧縮画像データ選択器５０に出力することができる。これらの例では、可逆圧縮画像データ選択器５０は、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、スキップモード符号器４６、およびＰＣＭ符号器３８のうちのどれが、画像フレームブロックを符号化するために最少ビット数を利用したかを、決定することができる。可逆圧縮画像データ選択器５０は、次いで、画像フレームブロックを圧縮するために最少ビット数を利用した、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、スキップモード符号器４６、およびＰＣＭ符号器３８のうちの１つの、出力ビットストリームを選択することができる。
【０１５１】
可逆圧縮画像データ選択器５０は、選択されたビットストリームをＭＵＸ５４に出力することができ、選択されたビットストリームにおけるビット数を示す値を、バジェット制御器５２に出力することができる。不可逆圧縮ユニット５５の、不可逆圧縮画像データ選択器６８は、同様に、後述のように、不可逆圧縮画像データ選択器６８が選択したビットストリームを、ＭＵＸ５４に出力することができ、選択されたビットストリームにおけるビット数を示す値を、バジェット制御器５２に出力することができる。
【０１５２】
バジェット制御器５２は、選択されたビットストリームにおけるビット数を示す、受信された値を比較し、それらの値を現在のビット割り当てと比較することができる。可逆圧縮画像データ選択器５０によって出力されたビットストリームにおけるビット数と、不可逆圧縮画像データ選択器６８によって出力されたビットストリームにおけるビット数とが同じである場合、一例では、バジェット制御器５２は、可逆圧縮画像データ選択器５０によって出力されたビットストリームを選択し、可逆圧縮画像データ選択器５０の出力と不可逆圧縮画像データ選択器６８の出力との間で、選択されたビットストリームを出力することを、ＭＵＸ５４に行わせることができる。代替例では、可逆圧縮画像データ選択器５０によって出力されたビットストリームにおけるビット数と、不可逆圧縮画像データ選択器６８によって出力されたビットストリームにおけるビット数とが、現在のビット割り当て未満であるとき、バジェット制御器５２は、より少ないビット数をもつビットストリームを選択し、可逆圧縮画像データ選択器５０の出力と不可逆圧縮画像データ選択器６８の出力との間で、選択されたビットストリームを出力することを、ＭＵＸ５４に行わせることができる。
【０１５３】
可逆圧縮画像データ選択器５０によって出力されたビットストリームにおけるビット数が、現在のビット割り当てよりも大きく、不可逆圧縮画像データ選択器６８によって出力されたビットストリームにおけるビット数が、現在のビット割り当て未満である場合、バジェット制御器５２は、不可逆圧縮画像データ選択器６８によって出力されたビットストリームを選択し、そのビットストリームを出力することを、ＭＵＸ５４に行わせることができる。いくつかの例では、不可逆圧縮ユニット５５は、不可逆圧縮画像データ選択器６８によって出力されたビットストリームにおけるビット数が、現在のビット割り当て以下であるような方法で、画像データを圧縮することができる。
【０１５４】
図２に示すように、不可逆圧縮ユニット５５は、実質的に同様の方法で機能する、可逆圧縮ユニット３５の構成要素と同様の構成要素を含み得る。たとえば、不可逆圧縮ユニット５５の予測ユニット６０は、可逆圧縮ユニット３５の予測ユニット３６と同様に機能することができる。不可逆圧縮ユニット５５のＢＦＬＣ符号器６２、ＶＬＣ符号器６４、およびＰＣＭ符号器６６は、可逆圧縮ユニット３５のＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびＰＣＭ符号器３８と同様に機能することができる。また、不可逆圧縮ユニット５５の不可逆圧縮画像データ選択器６８は、可逆圧縮画像データ選択器５０と同様に機能することができる。いくつかの例では、不可逆圧縮ユニット５５は、スキップモード符号器４６とパターンモード符号器４０とを含まなくてもよいが、本開示で説明する態様は、そのように限定的であると見なされるべきではない。
【０１５５】
しかしながら、不可逆圧縮ユニット５５は、量子化器５８を含んでもよく、可逆圧縮ユニット３５は、量子化器を含まなくてもよい。量子化器５８は、色値変換器５６および色値変換器３２から受信された色値を量子化することができる。量子化器５８によって実行された量子化は、色値の精度を低減することができる。たとえば、量子化器５８の出力は、量子化器５８によって受信された色値におけるビット数よりも少ないビットをもつ色値であり得る。
【０１５６】
量子化器５８によって実行された量子化において失われたビットを復元することは、可能であり得ず、そのことが、不可逆圧縮ユニット５５の出力を「不可逆」にさせる。たとえば、可逆圧縮ユニット３５が画像フレームブロックを圧縮した場合、圧縮解除ユニット２４が圧縮画像フレームブロックを圧縮解除するとき、圧縮解除ユニット２４は、画像フレームブロックの元の色値を復元することが可能であり得る。たとえば、圧縮解除ユニット２４によって決定された、復元された色値は、圧縮ユニット２０によって受信された色値と実質的に同様であり、潜在的に等しくなり得る。しかしながら、不可逆圧縮ユニット５５が画像フレームブロックを圧縮した場合、圧縮解除ユニット２４が圧縮画像フレームブロックを圧縮解除するとき、元の色値のいくつかのビットが量子化器５８によって実行された量子化において失われ得るので、圧縮解除ユニット２４は、正確な元の色値を復元することが可能であり得ない。
【０１５７】
いくつかの例では、量子化器５８は、量子化ビットの数が現在のビット割り当て以下であるように、現在のブロックのビットを量子化することができる。たとえば、量子化器５８は、ＹＣｏＣｇ値を受信することができる。量子化器５８は、量子化後の総ビット数が現在のビット割り当て以下であるように、Ｙ成分、Ｃｏ成分、およびＣｇ成分のためのビット数を量子化することができる。一例として、量子化器５８は、現在のビット割り当てに基づいて、色値に適用されるべきである量子化の量を決定することができる。量子化器５８は、次いで、量子化後の色値のビット数が現在のビット割り当て以下であることを保証するために、決定された量子化の量に基づいて、色値のビットを量子化することができる。
【０１５８】
図示のように、予測ユニット６０、ＢＦＬＣ符号器６２、ＶＬＣ符号器６４、およびＰＣＭ符号器６６は、量子化器５８によって出力された、色値の量子化ビットにおいて、圧縮を実行することができる。不可逆圧縮画像データ選択器６８は、最少ビット数を有する、ＢＦＬＣ符号器６２、ＶＬＣ符号器６４、およびＰＣＭ符号器６６のうちの１つからの出力ビットストリームを選択することができる。不可逆圧縮画像データ選択器６８は、選択されたビットストリームをＭＵＸ５４に出力し、選択されたビットストリームにおけるビット数を、バジェット制御器５２に出力することができる。バジェット制御器５２は、次いで、可逆圧縮画像データ選択器５０の出力ビットストリームと、不可逆圧縮画像データ選択器６８の出力ビットストリームとの間で選択し、次に、上記で説明したように、選択されたビットストリームを出力することを、ＭＵＸ５４に行わせることができる。
【０１５９】
他の例では、圧縮技法を並列に実行するのではなく、圧縮ユニット２０は、どのタイプの圧縮技法が利用されるべきであるかを決定することができる。たとえば、図２に図示されていないが、可逆圧縮ユニット３５および不可逆圧縮ユニット５５は、それぞれ符号化モード決定ユニットを含み得る。この符号化モード決定ユニットを、図１８および図１９でより詳細に示す。
【０１６０】
たとえば、図１８は、符号化モード決定ユニット１１０と、パルス符号変調（ＰＣＭ）決定ユニット１０８とを示す。ＰＣＭ決定ユニット１０８は、以下でより詳細に説明するように、パルス符号変調（ＰＣＭ）圧縮が図２のＰＣＭ符号器３８によって実行されるべきであるかどうかを判定することができる。ＰＣＭ決定ユニット１０８によって決定された、ＰＣＭ圧縮が実行されない例では、符号化モード決定ユニット１１０は、予測ユニット３６からの出力を受信することができ、どのタイプの符号化を可逆圧縮ユニット３５が実行するべきであるかを決定することができる。言い換えれば、圧縮ユニット２０が、どのタイプの圧縮技法を実施するべきかを事前に決定することができる例では、可逆圧縮ユニット３５は、図１８に示す方法で構成されたＰＣＭモード決定ユニット１０８と、符号化モード決定ユニット１１０とを含み得る。
【０１６１】
たとえば、そのような例では、圧縮ユニット２０の可逆圧縮ユニット３５は、元の画像データブロックと、色値変換器３２の出力とを受信する、ＰＣＭモード決定ユニット１０８を含み得る。可逆圧縮ユニット３５の予測ユニット３６は、ＰＣＭモード決定ユニット１０８と、符号化モード決定ユニット１１０とに結合され得る。符号化モード決定ユニット１１０は、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６の各々に結合され得る。
【０１６２】
ＰＣＭモード決定ユニット１０８は、色値変換器３２から、元の画像フレームブロックのＲＧＢ色値と、ＹＣｏＣｇ色値とを受信することができる。ＰＣＭモード決定ユニット１０８は、ＲＧＢ色値におけるビット数がＹＣｏＣｇ色値におけるビット数未満であるかどうかを判定することができる。ＲＧＢ色値におけるビット数がＹＣｏＣｇにおけるビット数未満である場合、ＰＣＭモード決定ユニット１０８は、以下でより詳細に説明する方法で符号化するために、ＲＧＢ色値をＰＣＭ符号器３８に出力することができる。
【０１６３】
しかしながら、ＲＧＢ色値におけるビット数がＹＣｏＣｇにおけるビット数よりも大きい場合、ＰＣＭモード決定ユニット１０８は、ＹＣｏＣｇ色値を予測ユニット３６に出力することができ、ＰＣＭ符号器３８は、符号化を実行し得ない。予測ユニット３６は、上記で説明したように、１Ｄ予測または２Ｄ予測を実行し、得られた値を符号化モード決定ユニット１１０に出力することができる。
【０１６４】
図１８の符号化モード決定ユニット１１０は、色値変換器３２によって受信された画像フレームブロックが、スキップモード符号器４６によって符号化されるべきであるか、ＶＬＣ符号器４４によって符号化されるべきであるか、ＢＦＬＣ符号器４２によって符号化されるべきであるか、パターンモード符号器４０によって符号化されるべきであるかを決定するように構成され得る。符号化モード決定ユニット１１０はまた、Ｙ成分、Ｃｏ成分、およびＣｇ成分の各々が符号化されるべきである方法を決定することもできる。たとえば、符号化モード決定ユニット１１０は、Ｙ成分が、スキップモード符号器４６を使用して符号化されるべきであり、Ｃｏ成分が、ＶＬＣ符号器４４を使用して符号化されるべきであり、Ｃｇ成分が、ＢＦＬＣ符号器４２を使用して符号化されるべきであると決定することが、可能であり得る。符号化モード決定ユニット１１０が、Ｙ成分、Ｃｏ成分、およびＣｇ成分のうちの２つが、同じ符号化方式を使用して符号化されるべきであり、他の成分が、異なる符号化方式を使用して符号化されるべきであると決定する例と、符号化モード決定ユニット１１０が、Ｙ成分、Ｃｏ成分、およびＣｇ成分の３つすべてが、同じ符号化方式を使用して符号化されるべきであると決定する例とを含む、他の置換および組合せが可能であり得る。
【０１６５】
たとえば、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６のうちの１つが圧縮を実行する例では、符号化モード決定ユニット１１０は、予測色値の各々のためのＩｄｘ値を決定することができる。ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６のうちの１つは、Ｉｄｘ値に基づいてブロックを圧縮することができる。Ｉｄｘ値は、予測誤差を表す値と見なされ得、各ピクセルに関連付けられ得る。たとえば、予測誤差（たとえば、Ｅi,0）は、負値または正値であってもよく、Ｉｄｘ値は、予測誤差値に基づいてもよく、正値であってもよい。
【０１６６】
Ｉｄｘi,0値は、（｜Ｅi,0｜＜＜１）−ｎｅｇに等しくなり得、ただし、Ｅi,0＜０であるとき、ｎｅｇ＝１であり、そうでない場合、ｎｅｇ＝０である。「＜＜」記号は、左ビットシフトを表し、｜Ｅi,0｜＜＜１は、１ビットの左ビットシフトを意味する。１ビットの左ビットシフトは、｜Ｅi,0｜値に２（たとえば、２1）を掛けることと等価である。符号化モード決定ユニット１１０が、１ビットだけシフトし、次いで２を掛けることは、より複雑でなくなり得るが、いずれを行うことも等価である。
【０１６７】
本開示で使用するとき、「＞＞」記号は、右ビットシフトを表し、「＜＜」が乗算演算と等価であることと同様に、除算演算と等価である。「＜＜」ビットシフト演算、および「＞＞」ビットシフト演算は、２倍に乗算すること、および１／２に除算することに限定され得る。たとえば、１ビットの左シフトは、２1を掛けることと等価であり、２ビットの左シフトは、２2を掛けることと等価であり、３ビットの左シフトは、２3を掛けることと等価である、などとなる。同様に、１ビットの右シフトは、２1で割ることと等価であり、２ビットの右シフトは、２2で割ることと等価であり、３ビットの右シフトは、２3で割ることと等価である、などとなる。右シフトは、下への丸め（すなわち、負の無限大への）を含み得る。
【０１６８】
予測ユニット３６が２Ｄ予測を利用するとき、符号化モード決定ユニット１１０は、画像フレームの最初のピクセルのために、Ｉｄｘi,0値を０として設定することができる。また、予測ユニット３６が１Ｄ予測を利用するとき、符号化モード決定ユニット１１０は、ラインの最初のピクセルのために、Ｉｄｘi,0を０として設定することができる。
【０１６９】
ブロックにおける各予測色値のためのＩｄｘ値が０である場合、符号化モード決定ユニット１１０は、スキップモード符号器４６がブロックを符号化するべきであると決定することができる。ここでも、スキップモード符号器４６は、いかなる追加の符号化もなしに、パススルーとして機能することができる。また、スキップモード符号器４６は、ブロックがスキップブロックであると指定するために、ブロックのヘッダに２ビットまたは３ビットを追加することができる。
【０１７０】
以下の式が真である場合、符号化モード決定ユニット１１０は、ＢＦＬＣ符号器４２がブロックを符号化するべきであると決定することができる。そうでない場合、符号化モード決定ユニット１１０は、ＶＬＣ符号器４４がブロックを符号化するべきであると決定することができる。ＢＦＬＣ符号器４２およびＶＬＣ符号器４４は、より少ないビットが、受信されたビットを表すために必要とされるような方法で、ブロックを符号化することができる。言い換えれば、ＢＦＬＣ符号器４２およびＶＬＣ符号器４４は、ブロックを受信し、圧縮ブロックを出力することができ、ただし、受信ブロックおよび圧縮ブロックは、同じ色値を表すが、圧縮ブロックにおけるビット数は、受信ブロックにおけるビット数未満である。
【０１７１】
たとえば、符号化モード決定ユニット１１０が、以下であると決定する場合、ＢＦＬＣ符号器４２は、ブロックを符号化することができる。
【数７】
2014523703.tif 000009
【０１７２】
上記の式では、ｎはブロックのサイズ（たとえば、８ピクセル）であり、ｌｅｎvlcは、Ｉｄｘの長さであり、その値を下記の表１において見ることができる。ｂｉｔ（）は、ブロックにおけるＩｄｘの最大値を表すために必要とされたビット数である。たとえば、ブロックのためのＩｄｘ値が｛３，０，１０，１，０，２，２，７｝であると仮定すると、最大値は１０であり、１０を表すために必要とされたビット数は、４である。この例では、ｂｉｔ（）の値は４である。
【０１７３】
図４は、ブロック固定長符号化（ＢＦＬＣ）を実行するための方法の一例を示す概念図である。たとえば、図４は、ＢＦＬＣ符号器４２の出力ビットストリームの一例を示す。しかしながら、ＢＦＬＣ符号器４２は、任意の固定長符号化技法を利用して、色値を固定長符号化することができ、図４は、そのような符号化の一例である。
【０１７４】
たとえば、図４に示す例は、Ｉｄｘ値に依拠することができる。上記で説明したように、いくつかの例では、符号化モード決定ユニット１１０は、Ｉｄｘ値を決定することができる。しかしながら、圧縮ユニット２０が符号化モード決定ユニット１１０を含まない例では（たとえば、圧縮ユニット２０が、どのタイプの圧縮が利用されるべきであるかを最初に決定することなしに、並列に圧縮を実行する例では）、ＢＦＬＣ符号器４２が、Ｉｄｘの値を決定することができる。その上、ＢＦＬＣ符号器４２があらゆる例において圧縮のためにＩｄｘに依拠することが必要であるとは限らず、ＢＦＬＣ符号器４２は、Ｉｄｘ値に依拠しない技法を利用して、色値を固定長符号化することができる。
【０１７５】
図４では、ＢＦＬＣlenは、各インデックス（Ｉｄｘ）の符号長を示す。たとえば、ＢＦＬＣlenは、以下に等しくなり得る。
【数８】
2014523703.tif 000010
【０１７６】
このＢＦＬＣlenの定義では、図４は、インデックス（Ｉｄｘ）が符号化され得る方法を示す。図４では、ヘッダ（Ｈｄｒ）およびその長さは、圧縮モードその圧縮ユニット２０に依存し得る。Ｈｄｒの例について、以下でより詳細に説明する。
【０１７７】
図５は、可変長符号化（ＶＬＣ）を実行するための方法の一例を示す概念図である。たとえば、図５は、ＶＬＣ符号器４４の出力ビットストリームの一例を示す。しかしながら、ＶＬＣ符号器４４は、任意の可変長符号化技法を利用して、色値を可変長符号化することができ、図５は、そのような符号化の一例である。ここでも、ＢＦＬＣ符号器４２のように、ＶＬＣ符号器４４は、Ｉｄｘ値に依拠することができ、圧縮ユニット２０が符号化モード決定ユニット１１０を含まない例では、ＶＬＣ符号器４４が、Ｉｄｘ値を決定することができる。さらに、ＶＬＣ符号器４４は、あらゆる例において圧縮のためにＩｄｘ値に依拠する必要があるとは限らない。たとえば、ＶＬＣ符号器４４は、Ｉｄｘ値に依拠しない可変長符号化技法を実施することができる。
【０１７８】
ＶＬＣ符号化では、ＶＬＣ符号器４４は、指数ゴロム符号を利用することができる。下記の表１は、ＶＬＣ符号器４４がインデックス（Ｉｄｘ）を符号化するために利用することができる符号を示す。さらに、表１は、ｌｅｎvlcのための例示的な値を含む。ＢＦＬＣ符号化に関して上記で説明したように、ＢＦＬＣ符号器４２は、ｌｅｎvlcの値に基づいて、ブロックを符号化することができる。ＢＦＬＣ符号器４２は、表１における値に基づいて、ｌｅｎvlcの値を決定することができる。
【表１】
2014523703.tif 000011
【０１７９】
図示のように、圧縮ユニット２０は、パルス符号変調（ＰＣＭ）符号器３８を含む。いくつかの例では、図１８に示すように、可逆圧縮ユニット３５は、ＰＣＭモード決定ユニット１０８を含んでもよく、ＰＣＭモード決定ユニット１０８は、上記で説明したように、ＲＧＢ色値におけるビット数がＹＣｏＣｇ色値におけるビット数未満であるかどうかを判定することができる。ＲＧＢ色値におけるビット数がＹＣｏＣｇ色値におけるビット数未満であるとき、ＰＣＭモード決定ユニット１０８は、元の画像データブロックが、ＰＣＭ符号器３８を使用して圧縮されるべきであると決定することができる。ＰＣＭ符号器３８は、パルス符号変調技法を使用して、画像フレームブロックを符号化することができる。ＰＣＭ符号器３８は、ＰＣＭ符号化からのビットであることを示すために、ヘッダビットを追加することができる。
【０１８０】
偽である（すなわち、ＹＣｏＣｇビットがＲＧＢビット未満である）とき、ＰＣＭモード決定ユニット１０８は、色空間変換された色値（たとえば、ＹＣｏＣｇビット）を、符号化モード決定ユニット１１０に出力することができる。符号化モード決定ユニット１１０は、次いで、パターンモード符号器４０を使用して色値を符号化するか、ＢＦＬＣ符号器４２を使用して色値を符号化するか、ＶＬＣ符号器４４を使用して色値を符号化するか、スキップモード符号器４６を使用して色値を符号化するかを決定するために、本開示で説明する方法で機能することができる。
【０１８１】
上記で説明したように、圧縮ユニット２０が符号化モード決定ユニット１１０を含む例など、いくつかの例では、圧縮画像データ選択器４８は、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６のうちの１つの出力ビットストリームを受信することができる。この例では、圧縮画像データ選択器４８は、符号化モード決定ユニット１１０によって選択された、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６のうちの１つからの出力をパススルーする、パススルーとして機能することができる。
【０１８２】
言い換えれば、いくつかの例では、符号化モード決定ユニット１１０は、画像フレームブロックが、パターンモード符号器４０を使用して符号化されるべきであるか、ＢＦＬＣ符号器４２を使用して符号化されるべきであるか、ＶＬＣ符号器４４を使用して符号化されるべきであるか、スキップモード符号器４６を使用して符号化されるべきであるかを決定することができる。これらの例では、画像フレームブロックを符号化するために使用されるべきであると符号化モード決定ユニット１１０が決定した、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６のうちの１つは、そのビットストリームを圧縮画像データ選択器４８に出力することができ、圧縮画像データ選択器４８は次に、そのピットストリームを出力する。
【０１８３】
圧縮ユニット２０が符号化モード決定ユニット１１０を含む、いくつかの例では、圧縮画像データ選択器４８は、必ずしも単にパススルーとして機能するとは限らない。たとえば、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６は、それらのそれぞれのビットストリームを圧縮画像データ選択器４８に出力することができ、圧縮画像データ選択器４８は、適宜にそれらの出力を連結することができる。たとえば、ＢＦＬＣ符号器４２がＹ成分を符号化し、ＶＬＣ符号器４４がＣｏ成分とＣｇ成分とを符号化した場合、圧縮画像データ選択器４８は、単一のビットストリームを形成するために、それらの出力の順序を選択することができる。たとえば、圧縮画像データ選択器４８は、その順序がＹＣｏＣｇであるように、出力を選択することができる。この例では、圧縮画像データ選択器４８は、出力ＢＦＬＣ符号器４２がＹ成分のためのものであるので、出力ＢＦＬＣ符号器４２を選択し、ＢＦＬＣ符号器４２からの出力を、Ｃｏ成分およびＣｇ成分のためのものであるＶＬＣ符号器４４からの出力と連結することができる。
【０１８４】
可逆圧縮画像データ選択器５０は、ＰＣＭモード決定ユニット１０８によって決定されたように、どちらが利用されたかに基づいて、ＰＣＭ符号器３８または圧縮画像データ選択器４８からの出力を受信することができる。可逆圧縮画像データ選択器５０は、次いで、受信されたビットストリームをバジェット制御器５２に出力することができ、バジェット制御器５２は、次いで、上記で説明した方法で機能を実行することができる。
【０１８５】
図６は、ＰＣＭ符号器が機能する方法の一例を示す概念図である。たとえば、図６は、ＰＣＭ符号器３８の出力ビットストリームの一例を示す。図示のように、ＰＣＭ符号器３８の出力は、ヘッダビットと、その後に続く、元の画像フレームブロックの８ピクセルのための赤色成分、緑色成分、および青色成分の各々のための元の８ビットとを含む。
【０１８６】
いくつかの例では、圧縮ユニット２０はまた、パターンモード符号器４０をも含み得る。いくつかのテストパターンは、予測ユニット３６とともに使用するには非常に困難であるように設計されることがあり、通常動作中に画像プロセッサ１４によって作成された画像フレームを正確に表し得ない。たとえば、いくつかのテストパターンは、１Ｄ予測を利用することが比較的大きい予測誤差値を生じるように、設計されることがあり、比較的大きい予測誤差値は、１Ｄ予測によって実現される利益を最小にすることがある。これらのテストパターンは、１Ｄ予測では困難であり得るが、これらのテストパターンは、画像フレームのブロックにおける異なる色の数が制限され得る。これらのテストパターンでは、パターンモード符号器４０は、画像フレームブロックを符号化するために好適であることが可能であり得る。
【０１８７】
図７は、符号化モード決定ユニットが、画像フレームがテストパターンであるかどうかを判定することができる、例示的な方法を示すフローチャートである。たとえば、符号化モード決定ユニット１１０は、図７に示す例示的なフローチャートを実施して、画像データがテストパターンのためのものであるかどうかを判定することができ、パターンモード符号器４０が画像データを圧縮するべきであると決定することができる。図示のように、符号化モード決定ユニット１１０は、画像フレームブロックの第１のピクセルを受信する（７２）。符号化モード決定ユニット１１０は、値を決定することができる（７４）。この値は、Ｒ＋（Ｇ＜＜８）＋（Ｂ＜＜１６）であってもよく、ただし、Ｒ、Ｇ、およびＢは、赤色成分、緑色成分、および青色成分をそれぞれ指す。言い換えれば、この値は、赤色成分の値＋緑色成分の値×２8＋青色成分の値×２16であり得る。
【０１８８】
符号化モード決定ユニット１１０は、この値を、データベースにおけるパターンの値に対して比較することができる（７６）。たとえば、デバイス１２またはパネルデバイス１６は、複数のパターンを、適宜に、デバイス１２またはパネルデバイス１６のメモリにおけるデータベースに記憶することができる。符号化モード決定ユニット１１０は、この値を、デバイス１２またはパネルデバイス１６におけるデータベースに記憶されたパターンに対して比較することができる。
【０１８９】
符号化モード決定ユニット１１０は、値とパターンとの間の一致があるかどうかを判定することができる（７８）。一致がない場合（７８のいいえ）、符号化モード決定ユニット１１０は、パターンモード符号器３８が使用されるべきではないと決定することができる（８０）。一致がある場合（７８のはい）、符号化モード決定ユニット１１０は、新しいパターンの数が新しいパターンの最大数よりも大きいかどうか、または、ビット数が最大ビット数以上であるかどうかを判定することができる。
【０１９０】
新しいパターンの数は、符号化モード決定ユニット１１０がデータベースに追加したパターンであり得、新しいパターンの最大数は、符号化モード決定ユニットが追加することができる新しいパターンの最大数であり得る。一例として、新しいパターンの最大数は、３であってもよいが、この数は、設定可能であってもよく、３とは異なってもよい。
【０１９１】
ビット数は、元の画像フレームブロックにおけるビット数であり得る。最大ビット数は、非パターンモード符号器のうちの１つによって費やされたビット数であり得る。たとえば、最大ビット数は、ＢＦＬＣ符号器４２またはＶＬＣ符号器４４によって出力されたビット数であり得る。
【０１９２】
新しいパターンの数が新しいパターンの最大数よりも大きい場合、または、ビット数が最大ビット数以上である場合（８２のはい）、符号化モード決定ユニット１１０は、パターンモード符号器３８が使用されるべきではないと決定することができる（８０）。そうでない場合（８２のいいえ）、符号化モード決定ユニット１１０は、パターンをデータベースに追加することができる（８４）。
【０１９３】
符号化モード決定ユニット１１０は、パターンの数がデータベースにおけるパターンの最大数よりも大きいかどうかを判定することができる（８６）。一例として、データベースにおけるパターンの最大数は、１６であってもよいが、この数は、設定可能であってもよく、１６とは異なってもよい。
【０１９４】
パターンの数がデータベースにおけるパターンの最大数よりも大きくない場合（８６のいいえ）、符号化モード決定ユニット１１０は、ブロックにおける次のピクセルに進み（９０）、これらのステップを繰り返すことができる。そうでない場合（８６のはい）、符号化モード決定ユニット１１０は、データベースにおける古いパターンのうちの１つまたは複数を除去することができる（８８）。符号化モード決定ユニット１１０は、次いで、ブロックにおける次のピクセルに進み（９０）、これらのステップを繰り返すことができる。
【０１９５】
図８は、符号化モード決定ユニットがパターンデータベースを更新する方法を示す概念図である。たとえば、図８は、あるピクセルのためのＲＧＢ色値が（２５，３６，１２７）であり、別のピクセルのためのＲＧＢ色値が（７８，２３８，５７）である、画像フレームブロックを示す。符号化モード決定ユニット１１０は、色値（２５，３６，１２７）をもつピクセルのための値を、図７のステップ７４で、８，３３２，３１３（たとえば、２５＋２8＊３６＋２16＊１２７は、８，３３２，３１３に等しい）となるように決定することができ、色値（７８，２３８，５７）をもつピクセルのための値を、図７のステップ７４で、３，７９６，５５８（たとえば、７８＋２8＊２３８＋２16＊５７は、３，７９６，５５８に等しい）となるように決定することができる。
【０１９６】
図８は、値をもつ現在のデータベースと、（２５，３６，１２７）および（７８，２３８，５７）のＲＧＢ色値をもつブロックのピクセルに対して追加される新しい値をもつ、更新されたデータベースとを示す。たとえば、更新されたデータベースでは、現在のデータベースの１４および１５インデックスにおける値が除去され、０〜１３における値が２だけ下にシフトされる。更新されたデータベースは、（２５，３６，１２７）のＲＧＢ色値をもつ画像フレームブロックのピクセルに対応する値８，３３２，３１３と、ＲＧＢ色値（７８，２３８，５７）をもつ画像フレームブロックのピクセルに対応する値３，７９６，５５８とを含む。
【０１９７】
図９は、パターンモード符号化のための例示的な技法を示すフローチャートである。たとえば、パターンモード符号器４０は、図９に示す技法を実施することができる。図９に示すように、パターンモード符号器４０は、画像フレームブロックの第１のピクセルを受信することができる（９２）。パターンモード符号器４０は、図７のステップ７４に関して上記で説明したものと同様の方法で、ピクセルの値を決定することができる（９４）。たとえば、パターンモード符号器４０は、Ｒ＋（Ｇ＜＜８）＋（Ｂ＜＜１６）となるように、値を決定することができる。
【０１９８】
パターンモード符号器４０は、次いで、パターンデータベースを検索することができる（９６）。パターンモード符号器４０は、パターンインデックス（Ｉｄｘ）を符号化することができる（９８）。いくつかの例では、パターンモード符号器４０は、データベースにおけるパターンの数に基づいて、パターンインデックスを符号化することができる。たとえば、データベースにおけるパターンの数が、５と８との間である場合、パターンモード符号器４０は、３ビットでパターンインデックスを符号化することができる。パターンモード符号器４０は、ブロックにおける次のピクセルを進め（１００）、これらのステップを繰り返すことができる。
【０１９９】
図１０は、パターンモード符号器の出力ビットストリームの一例を示す概念図である。図示のように、ヘッダは、２ビットであってもよく、パターンモード符号器４０によって認識された新しいパターンの数は、２ビットであってもよい。図示のように、パターンモード符号器４０は、図７のステップ７４で決定された値の各々を表すために、２４ビットを割り当てることができる。たとえば、図８に示すように、データベースにおいて１５パターンがあってもよく、そのうちの２つが新しいパターンである。したがって、この例では、図１０におけるＫの値は２となり、パターンモード符号器４０は、８，３３２，３１３の値を表すために２４ビットと、３，７９６，５５８の値を表すために２４ビットとを利用することができる。
【０２００】
上記で説明したように、ＰＣＭ符号器３８、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６の出力ビットストリームにおけるヘッダは、圧縮ユニット２０が実施するように構成され得る様々な符号化技法に基づいてもよい。いくつかの例では、ＰＣＭ符号器３８、パターンモード符号器４０、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６の出力ビットストリームは、初期１ビット値を含んでもよくが、ヘッダが初期１ビットの後に続いてもよい。
【０２０１】
表２は、圧縮ユニット２０が実施するように構成され得る符号化のタイプに基づいた、例示的なヘッダ値を含む。表２における例示的なヘッダ値は、例示のために与えられ、限定的と見なされるべきではない。特定のヘッダ値は、異なる例では異なってもよく、圧縮解除ユニット２４が、画像フレームの圧縮ブロックを圧縮解除するとき、使用された符号化のタイプを決定することが可能であり得るように、選択され得る。
【０２０２】
さらに、表２では、圧縮ユニット２０が、スキップモード符号器４６と、ＶＬＣ符号器４４と、ＰＣＭ符号器３８とを実装することができ、圧縮ユニット２０が、ＢＦＬＣ符号器４２とパターンモード符号器４０とを実装してもしなくてもよいと仮定される。しかしながら、このことは、例示のために与えられるにすぎない。異なる例では、圧縮ユニット２０は、スキップモード符号器４６、ＶＬＣ符号器４４、ＰＣＭ符号器３８、ＢＦＬＣ符号器４２、およびパターンモード符号器４０のうちの異なるものを実装するように構成されてもよい。たとえば、別の例では、圧縮ユニット２０は、ＢＦＬＣ符号器４２と、ＶＬＣ符号器４４と、ＰＣＭ符号器３８とを実装するように構成されてもよく、圧縮ユニット２０は、スキップモード符号器４６とパターンモード符号器４０とを実装してもしなくてもよい。様々な置換および組合せが可能であり得、本開示で説明する技法は、表２に示された例に限定されると見なされるべきではない。
【表２】
2014523703.tif 000012
【０２０３】
前述の例は、可逆圧縮ユニット３５の構成要素が機能する方法について説明している。本開示で説明する態様では、不可逆圧縮ユニット５５における対応する構成要素は、実質的に同様の方法で機能することができる。しかしながら、不可逆圧縮ユニット５５の場合、画像データは、圧縮より前に量子化器５８で量子化され得る。
【０２０４】
さらに、可逆圧縮ユニット３５と同様に、不可逆圧縮ユニット５５もまた、図１９に示すように、ＰＣＭモード決定ユニットと符号化モード決定ユニット１１４とを含み得る。しかしながら、不可逆圧縮ユニット５５は、あらゆる例において、ＰＣＭモード決定ユニットと符号化モード決定ユニットとを含むとは限らない。たとえば、いくつかの例では、不可逆圧縮ユニット５５は、どのタイプの不可逆圧縮技法を実施するべきかについての事前決定なしに、様々な不可逆圧縮技法を実施することができる。これらの例では、不可逆圧縮ユニット５５は、様々な不可逆圧縮技法を並列に実施することができ、不可逆圧縮画像データ選択器６８は、それぞれ異なる不可逆圧縮技法に従って圧縮された不可逆圧縮画像データから選択することができる。
【０２０５】
図１９に示すように、不可逆圧縮ユニット５５は、量子化器５８に結合されるＰＣＭモード決定ユニット１１２を含んでもよく、量子化ＹＣｏＣｇ色値のビット数が、画像フレームブロックのための元のＲＧＢ色値のビット数よりも大きいかどうかを判定することができる。真であるとき、ＰＣＭモード決定ユニット１１２は、ＰＣＭ符号器６６が量子化画像データを圧縮するべきであると決定することができる。
【０２０６】
そうでない場合、ＰＣＭモード決定ユニット１１２は、量子化ＹＣｏＣｇ色値を、予測ユニット６０へ送信することができ、予測ユニット６０は、予測ユニット３６に関して上記で説明したものと同様の方法で、予測を実行することができる。符号化モード決定ユニット１１４は、予測ユニット６０の出力を受信することができ、量子化画像フレームブロックをＢＦＬＣ符号化するか、ＶＬＣ符号化するかを判定することができる。たとえば、符号化モード決定ユニット１１４は、符号化モード決定ユニット１１０に関して上記で説明したものと同様の方法で、ＢＦＬＣ符号化するか、ＶＬＣ符号化するかを判定することができる。
【０２０７】
たとえば、符号化モード決定ユニット１１４は、量子化Ｙ成分、量子化Ｃｏ成分、および量子化Ｃｇ成分の各々が符号化されるべきである方法を決定することができる。この例では、符号化モード決定ユニット１１４は、以下の式が量子化Ｙ成分について真であるかどうかを判定することができ、真である場合、符号化モード決定ユニット１１４は、ＢＦＬＣ符号器６２が、量子化Ｙ成分を符号化するべきであると決定することができる。そうでない場合、符号化モード決定ユニット１１４は、ＶＬＣ符号器６４が、量子化Ｙ成分を符号化するべきであると決定することができる。符号化モード決定ユニット１１４は、同様に、量子化Ｃｏ成分および量子化Ｃｇ成分が符号化されるべきである方法を決定することができる。
【数９】
2014523703.tif 000013
【０２０８】
図１９では、ＢＦＬＣ符号器６２、ＶＬＣ符号器６４、およびＰＭＣ符号器６６のうちの１つが、それらのそれぞれのビットストリームを不可逆圧縮画像データ選択器６８に出力することができる。不可逆圧縮画像データ選択器６８は、この例では、圧縮された量子化Ｙ成分と、圧縮された量子化Ｃｏ成分と、圧縮された量子化Ｃｇ成分とを連結して、単一のビットストリームを形成することができる。不可逆圧縮画像データ選択器６８は、ビットストリームをバジェット制御器５２に出力することができ、バジェット制御器５２は次に、上記で説明したように、ＭＵＸ５４に、不可逆圧縮画像データ選択器６８からのビットストリームを出力させるか、可逆圧縮画像データ選択器５０からのビットストリームを出力させるかを、判定する。
【０２０９】
図１１は、図２の量子化器の一例をより詳細に示すブロック図である。たとえば、図１１は、量子化器５８をより詳細に示す。図示のように、量子化器５８は、ビット／ピクセルおよび量子化パラメータ（ＱＰ）決定ユニット１０２と、４４４／４２２モード決定ユニット１０４と、均一スケーラ量子化ユニット１０６とを含む。
【０２１０】
ビット／ピクセルおよびＱＰ決定ユニット１０２は、画像フレームブロックにおける色値の各々のための（たとえば、Ｙ、Ｃｏ、およびＣｇの）すべての３つの成分についての、１ピクセル当たりのビットを決定することができる。ビット／ピクセルは、ｂｉｔlossyと呼ばれることがあり、ユニット１０２は、以下の式に基づいて、ｂｉｔlossy値を計算することができる。
【０２１１】
Ｂｉｔlossy＝（現在のビット割り当て−ヘッダ長）＞＞ビット単位のブロック長であり、ただし、現在のビット割り当ては、バジェット制御器５２によって決定された現在のビット割り当てであり、ヘッダ長は、ヘッダに追加されたビット数であり、例示的な値として、３であるが、表２に示すように、可能な圧縮モードに基づいて異なってもよく、ビット単位のブロック長は、一例として、３であるが、異なってもよい。たとえば、ビット単位のブロック長の値は、ブロックサイズが８ピクセルである例では、３に設定され得る。
【０２１２】
この例では、現在のビット割り当てからヘッダ長を引くことは、現在のブロックを圧縮するために何ビットが利用可能であるかを示す。演算「＞＞ビット単位のブロック長」は、減算の結果がビット単位のブロック長だけ右シフトされることを意味する。ビット単位のブロック長は、この例では３であり、その理由は、２3が８であり、１ブロック当たり８ピクセルがあるからである。言い換えれば、Ｂｉｔlossy式は、ブロックを圧縮するために利用可能である現在のバジェットにおけるビット数を決定し、ブロックを圧縮するために利用可能である現在のバジェットにおけるビット数を、１ブロック当たりのピクセル数で割ることと等価である。この除算の結果は、１ピクセル当たりの利用可能なビット数である。
【０２１３】
ｂｉｔlossyのための計算に基づいて、ユニット１０２は、ｂｉｔY,lossyの値を決定することができ、ただし、ｂｉｔY,lossyは、Ｙ成分のためのビット数を示すことができる。たとえば、ｂｉｔlossyは、ピクセルのために利用可能であるビット数を示す。ピクセルがそのルーマ（Ｙ）成分およびクロマ（ＣｏおよびＣｇ）成分によって定義されるので、ユニット１０２は、ピクセルのルーマ成分およびクロマ成分のために利用可能であるビット数を、そのピクセルのために利用可能である総ビット数に基づいて決定することができる。
【０２１４】
ルーマ成分のためのビット数（ｂｉｔY,lossyと呼ばれる）を決定するための、本開示で説明する技法によれば、ユニット１０２は、図１２に示す表３における値に基づいて、ｂｉｔY,lossyの値を決定することができる。図１２は、表３の例示的なエントリを示す表形式の図である。表３における表エントリは、例示のために与えられ、限定的と見なされるべきではない。たとえば、表３の表エントリは、設定可能であり得る。一般に、ｂｉｔlossyのためのより大きい値は、ルーマ成分（すなわち、Ｙ）のためにより多いビットと、クロマ成分（ＣｏおよびＣｇ）のためにより少ないビットとを生じ、ｂｉｔlossyのためのより小さい値は、ルーマ成分のためにより少ないビットと、クロマ成分のためにより多いビットとを生じる。ユニット１０２は、表３を利用して、現在のビット割り当てに基づいて、ルーマ成分に適用されるべき量子化の量を決定することができる。
【０２１５】
図１２に示すように、ルーマ成分のためのビット数（ｂｉｔY,lossy）は、ピクセルのために利用可能な総数ビット（Ｂｉｔlossy）に基づく。Ｙ成分のビット数に基づいて、ビット／ピクセルおよびＱＰ決定ユニット１０２は、ｂｉｔC,lossyと表される、クロマ成分のためのビットを決定することができる。たとえば、ユニット１０２は、以下の式に基づいて、ｂｉｔC,lossyのための値を決定することができる。
【０２１６】
ＢｉｔC,lossy＝（Ｂｉｔlossy−ＢｉｔY,lossy）＞＞１。「＞＞１」演算は、（Ｂｉｔlossy−ＢｉｔY,lossy）を２1で割ることと等価である。２つのクロマ成分ＣｏおよびＣｇがあるので、Ｂｉｔlossy−ＢｉｔY,lossyから生じる値が２で割られる。このようにして、ユニット１０２は、現在のビット割り当てに基づいて、クロマ成分に適用されるべき量子化の量を決定することができる。
【０２１７】
本開示で説明する技法によれば、不可逆圧縮では、ブロックを圧縮するために利用可能な総ビット数は、現在のビット割り当てにおいて利用可能な総ビット数に制限される（すなわち、ブロックのための総ビット数は、現在のビット割り当て−ヘッダ長に等しい）。したがって、ＢＦＬＣ符号器６２、ＶＬＣ符号器６４、およびＰＣＭ符号器６６のうちの１つによるさらなる圧縮の後、不可逆圧縮ブロックは、現在のビット割り当て以下であることが保証される。したがって、可逆圧縮画像フレームブロックが現在のビット割り当てよりも大きい場合でも、不可逆圧縮画像フレームブロックは、現在のビット割り当て以下であることが保証される。
【０２１８】
上記で説明したように、これらの圧縮技法は、フレームバッファ２２のサイズの低減を可能にすることができる。オーバーフローがないことを保証するために、圧縮ユニット２０が目標圧縮を満たすことが保証されるように、圧縮ユニット２０を構成することが望ましくなり得る。不可逆圧縮画像フレームブロックが現在のビット割り当て内になることを保証することによって、圧縮ユニット２０が、低減されたサイズのフレームバッファ２２に記憶され得るよりも多いビットを出力しないようになるという保証があり得る。
【０２１９】
ユニット１０２は、次いで、ルーマ成分およびクロマ成分のための量子化ステップビット（たとえば、ｑｐビット）を決定することができる。たとえば、ルーマのための量子化ステップビット（たとえば、ｑｐ＿ｂｉｔｓY）は、８−ＢｉｔY,lossyに等しくなり得、クロマのための量子化ステップビット（たとえば、ｑｐ＿ｂｉｔｓC）は、９−ＢｉｔC,lossyに等しくなり得る。
【０２２０】
ユニット１０４は、次いで、量子化のために４４４モードが選択されるべきであるか、４２２モードが選択されるべきであるかを判定することができる。４４４モードは、Ｙ、Ｃｏ、およびＣｇがそれぞれ同じサンプリングレートを有することを意味する。４２２モードは、Ｃｏ成分、およびＣｇ成分が、Ｙの半分のサンプルレートでサンプリングされることを意味する。４２２モードは、クロマ成分がサブサンプリングされることを意味し得る。
【０２２１】
いくつかの例では、ＢｉｔC,lossyが小さいとき、クロマサブサンプリング（たとえば、４２２モード）は、画像品質を向上させることができる。たとえば、ユニット１０４は、４２２モードを選択し、偶数ピクセルを落とすことによって、クロマ成分をサブサンプリングすることができる。いくつかの例では、ユニット１０４は、以下の式が真であるとき、４２２モードを選択することができる。そうでない場合、ユニット１０４は、４４４モードを選択することができ、４４４モードは、クロマ成分のサブサンプリングがないことを意味し得る。
【数１０】
2014523703.tif 000014
【０２２２】
バイアスの値は、構成であり得る。いくつかの例では、より高いバイアスの値は、ユニット１０４が４４４モードよりもしばしば４２２モードを選択し得ることを意味し得る。
【０２２３】
ユニット１０６は、ユニット１０４からの出力を受信することができる。均一スカラ量子化（uniform scalar quantization）では、ユニット１０６は、各サンプルをｑｐ＿ｂｉｔｓ（たとえば、ルーマのためのｑｐ＿ｂｉｔｓY、およびクロマ成分のためのｑｐ＿ｂｉｔｓC）だけ右シフトすることができる。ユニット１０６の出力は、量子化器５８の出力であり得る。たとえば、予測ユニット６０およびＰＣＭ符号器６６は、量子化器５８のユニット１０６からの出力を受信することができる。不可逆圧縮ユニット５５が、ＰＣＭモード決定ユニット１１２と符号化モード決定ユニット１１４とを含まない例では、ＢＦＬＣ符号器６２およびＶＬＣ符号器６４は、予測ユニット６０の出力を受信することができる。不可逆圧縮ユニット５５が、ＰＣＭモード決定ユニット１１２と符号化モード決定ユニット１１４とを含む例では、ＰＣＭモード決定ユニット１１２および符号化モード決定ユニット１１４は、上記で説明した方法で機能することができる。
【０２２４】
図１３から図１５は、可逆ビットストリームの例を示す概念図である。図１６および図１７は、不可逆ビットストリームの例を示す概念図である。図１３から図１５は、可逆ビットストリームの例を示すので、図１３から図１５では、不可逆モードフラグは「０」であり得る。図１３では、ＰＣＭフラグは、圧縮ユニット２０がパターンモード符号器４０を含まないとき、「１」であり得、圧縮ユニット２０がパターンモード符号器４０を含むとき、「１０」であり得る。図１３の残りの部分は、図６に示すビットストリームと実質的に同様であり得る。図１４では、可逆ＰＡＴフラグは、パターンモード符号器４０が色値を符号化したことを示すために、「１１」であり得る。図１４の残りの部分は、図１０に示すビットストリームと実質的に同様であり得る。
【０２２５】
図１５は、他の符号化方式（たとえば、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６）のためのビットストリームを示す。たとえば、可逆ＰＣＭフラグは「０」であり得る。予測方向ビットは、予測ユニット３６が色値を予測した方法を示すことができる。たとえば、予測ユニット３６が１Ｄ予測を利用した場合、「０」は、プログレッシブ予測を示すことができ、「１」は、インターリーブ予測を示すことができる。予測ユニット３６が２Ｄ予測を利用した場合、「０」は、水平予測を示すことができ、「１」は、垂直予測を示すことができる。予測ユニット３６がまた、斜め予測をも実施することができる例では、予測方向は、予測方向を示すために２ビットによって表され得る。
【０２２６】
Ｙ符号化モード、Ｃｏ符号化モード、およびＣｇ符号化モードは、圧縮ユニット２０がＹ成分、Ｃｏ成分、およびＣｇ成分をそれぞれ符号化するために利用した、特定の符号器を示す。たとえば、上記で説明したように、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６のうちの異なるものが、Ｙ成分、Ｃｏ成分、およびＣｇ成分のうちの異なるものを符号化してもよい。Ｙ符号化モード、Ｃｏ符号化モード、およびＣｇ符号化モードは、ＢＦＬＣ符号器４２、ＶＬＣ符号器４４、およびスキップモード符号器４６のうちのどれがＹ成分、Ｃｏ成分、およびＣｇ成分をそれぞれ符号化したかを示す。Ｙブロック、Ｃｏブロック、およびＣｇブロックは、符号化されたＹ成分、Ｃｏ成分、およびＣｇ成分であり得る。これらの成分の各々は、符号化の後、異なるビット数を利用することができるので、Ｙブロック、Ｃｏブロック、およびＣｇブロックのサイズは、可変であり得る。
【０２２７】
図１６および図１７は、不可逆ビットストリームの例を示すので、図１６および図１７では、不可逆モードフラグは「１」であり得る。図１６は、圧縮ユニット２０が画像フレームブロックを不可逆圧縮するためにＰＣＭ符号器６６を利用した例を示し、したがって、図１６では、不可逆ＰＣＭフラグは１である。図１７は、圧縮ユニット２０が画像フレームブロックを不可逆圧縮するためにＰＣＭ符号器６６を利用しなかった例を示し、したがって、図１７では、不可逆ＰＣＭフラグは０である。たとえば、図１７は、ＢＦＬＣ符号器６２およびＶＬＣ符号器６４など、ＰＣＭ符号器６６以外の符号器からの例示的なビットストリームを示す。
【０２２８】
図１６および図１７では、４４４／４２２フラグは、量子化器５８が量子化のために４４４モードを利用したことを示すために、「０」であり得、４４４／４２２フラグは、量子化器５８が量子化のために４２２モードを利用したことを示すために、「１」であり得る。４４４／４２２フラグが「１」であるとき、Ｃｏ成分およびＣｇ成分は、Ｙ成分の半分であり得る。図１６および図１７における他の部分は、それぞれ図１３および図１５における部分と同様であり得る。
【０２２９】
図２０は、圧縮ユニットの別の例を示すブロック図である。たとえば、図２０は、図２において不可逆圧縮および可逆圧縮のために別々であった、様々な構成要素が共有される、圧縮ユニット２０の一例を示す。たとえば、予測ユニット１２２、ＢＦＬＣ符号器１２４、ＶＬＣ符号器１２６、スキップモード符号器１２８、ＰＣＭ符号器１３０、およびパターンモード符号器１３２は、図２における対応する符号器およびユニットについて説明したものと実質的に同様の方法で機能することができる。バジェット制御器１３８もまた、図２におけるバジェット制御器５２と同様の方法で機能することができ、符号化画像データ選択器１３４は、可逆圧縮画像データ選択器５０または不可逆圧縮画像データ選択器６８のうちのいずれか一方と同様の方法で機能することができる。
【０２３０】
しかしながら、図２０の例では、圧縮は、２つのパスにおいて実行され得る。たとえば、第１のパスにおいて、バジェット制御器１３８は、非量子化画像フレームブロックのためにパススルーＭＵＸ１１６、１１８、および１２０を選択することができる（たとえば、可逆圧縮ユニット３５に相当する、パススルー量子化器５８以外のパス）。予測ユニット１２２は、上記で説明したように、１Ｄ予測または２Ｄ予測を実行し、パターンモード符号器１３２、ＢＦＬＣ符号器１２４、ＶＬＣ符号器１２６、およびスキップモード符号器１２８に出力することができ、それらの各々は、上記で説明した方法で圧縮を実行することができる。ＰＣＭ符号器１３０もまた、上記で説明したように、パルス符号変調を実行することができる。符号化画像データ選択器１３４は、ＰＣＭ符号器１３０、パターンモード符号器１３２、ＢＦＬＣ符号器１２４、ＶＬＣ符号器１２６、およびスキップモード符号器１２８から出力を受信し、出力された最少ビット数を決定することができる。
【０２３１】
符号化画像データ選択器１３４は、最少ビット数をもつビットストリームを時間的に記憶し、（たとえば、不可逆圧縮ユニット５５に相当する）パススルー量子化器５８を選択することをＭＵＸ１１６、１１８、および１２０に行わせるように、バジェット制御器１３８に指示することができる。予測ユニット１２２、ＰＣＭ符号器１３０、パターンモード符号器１３２、ＢＦＬＣ符号器１２４、ＶＬＣ符号器１２６、およびスキップモード符号器１２８は、非量子化画像フレームブロックについて上記で説明したものと実質的に同様の方法で、量子化画像フレームブロックを圧縮することができる。
【０２３２】
符号化画像データ選択器１３４は、最少ビット数を生じた量子化圧縮画像フレームの中で選択することができる。符号化画像データ選択器１３４は、次いで、可逆圧縮を使用して決定された最少ビット数をもつビットストリームを、不可逆圧縮を使用して決定された最少ビット数をもつビットストリームと比較することができる。符号化画像データ選択器１３４は、バジェット制御器１３８から現在のビット割り当て値を受信し、現在のビット割り当てを満たすビットストリームを出力することをＭＵＸ１３６に行わせることができる。前述のように、可逆ビットストリームと不可逆ビットストリームの両方が現在のビット割り当てを満たす場合、ＭＵＸ１３６は、可逆ビットストリームを出力することができる。
【０２３３】
バジェット制御器１３８は、現在の画像フレームブロックのためにＭＵＸ１３６によって出力されたビット数を受信することができ、次の画像フレームブロックのためのビット割り当てを決定することができる。圧縮ユニット２０は、次いで、圧縮されるべきブロックがそれ以上なくなるまで、次の画像フレームブロックに対して上記のステップを繰り返すことができる。その上、図示されていないが、いくつかの例では、図２０に示す圧縮ユニット２０の例は、図１８および図１９に示すものと同様の、上記で説明したものと同様の方法で機能する、符号化モード決定ユニットと、ＰＣＭモード決定ユニットとを含み得る。
【０２３４】
図２０に示す圧縮ユニット２０の例は、２つのパス（たとえば、可逆圧縮のための１つのパス、および不可逆圧縮のための別のパス）を必要とし得、図２に示す圧縮ユニット２０の例は、単一のパスを必要とし得るので、図２０に示す圧縮ユニット２０の例は、両方が同時に出力するように、図２に示す例と比較して２倍の速度（たとえば、２倍のクロック速度）で動作することができる。したがって、図２０における圧縮ユニット２０の例は、図２における圧縮ユニット２０の例と比較して、より小さい面積を必要とし得るが、より高い速度で動作することを必要とし得る。
【０２３５】
図２１および図２２は、画像プロセッサが色値を圧縮ユニットへ送信する例示的な方法を示すブロック図である。たとえば、図１Ａから図１Ｄ、および図２に関して上記で説明したように、圧縮ユニット２０は、画像プロセッサ１４からＲＧＢ色値を受信することができ、いくつかの例では、２Ｄ予測のために以前のラインを受信することもできる。図２１および図２２は、画像プロセッサ１４がそのような画像データを圧縮ユニット２０へ送信する例示的な方法を示す。
【０２３６】
たとえば、図２１では、圧縮ユニット２０は、画像プロセッサ１４からＲＧＢ色値を受信し、圧縮ユニット２０は、システムメモリ１４０の非圧縮ライン（Ｗ）１４６にラインＮを記憶する。システムメモリ１４０は、圧縮ユニット２０を収容するデバイスのシステムメモリであってもよく、デバイスの様々な構成要素によって共有され得る。たとえば、システムメモリ１４０は、デバイス１２（図１Ｂから図１Ｄ）またはパネルデバイス１６（図１Ａ）の一部であってもよく、適用可能な場合、デバイス１２またはパネルデバイス１６内の異なる構成要素のためのデータを記憶することができる。
【０２３７】
図２１に示した例では、圧縮ユニット２０は、画像フレームのラインを圧縮することができる。たとえば、ラインの長さがＷであり、圧縮ユニット２０が画像データを５０％だけ圧縮する場合、得られた圧縮ラインの長さは、Ｗ／２であり得る。ピン（ping）１４２およびポン（pong）１４４は、ともに、圧縮ラインを記憶することができるピンポンバッファを形成することができる。たとえば、ピンポンバッファのサイズは、Ｗ／２であり得る。ピンポンバッファでは、どの時点においても、他方のバッファが、バッファに記憶されるべきデータを読取り中である間に、一方のバッファは、バッファからデータを出力中であり得る。バッファがデータの出力を完了した後、２つのバッファの役割は、スイッチである。このスイッチは、どこからデータが出力されるべきであるか、またはどこにデータが記憶されるべきであるかを示す、ポインタの値を変更することによって、達成され得る。
【０２３８】
ピンポンバッファの出力は、圧縮画像データであり得る。たとえば、図１Ａ、図１Ｂ、および図１Ｄに示した例では、フレームバッファ２２が、ピンポンバッファ（すなわち、ピン１４２およびポン１４４）の出力を受信することができる。図１Ｃに示した例では、圧縮解除ユニット２４が、ピンポンバッファの出力を受信することができる。
【０２３９】
また、非圧縮ライン（Ｗ）１４６に記憶された現在の非圧縮ラインは、次のラインにとってラインＮ−１である。この例では、圧縮ユニット２０は、予測の目的で、非圧縮ライン（Ｗ）１４６からラインＮ−１を受信することができる。圧縮ユニット２０はまた、現在のラインＮを非圧縮ライン（Ｗ）１４６に記憶することもできる。たとえば、ピン１４２に記憶された圧縮画像フレームデータが、ポン１４４に出力されるとき、圧縮ユニット２０は、非圧縮ライン（Ｗ）１４６からラインを受信することができ、このラインは、ここでラインＮ−１になるようになり、圧縮ユニット２０は、現在のラインＮを非圧縮ライン（Ｗ）１４６に記憶することができる。
【０２４０】
図２１の例では、圧縮ユニット２０は、ライン単位で画像フレームを圧縮することができ、その理由は、画像フレームの全体を圧縮することが、部分的ラインを生じることがあり、部分的ラインは、システムメモリ１４０へのアクセスのスケジューリングのタスクが課せられたスケジューラに適合しないことがあるからである。また、図２１の例では、システムメモリ１４０は、最大２＊Ｗ個のメモリロケーションを割り振ることができ、このことは、圧縮ユニット２０が画像フレームを圧縮する過程における間に、圧縮画像フレームの一部を記憶するための、最小のメモリ要件であり得る。いくつかの例では、圧縮ユニット２０のバジェット制御器５４は、１ライン当たりの未使用ビットを追跡することができ、固定のパターンを送ることができ、このことは、電力を最小限に抑えることができる。
【０２４１】
図２２に示す例は、図２１に示す例と同様であり得る。しかしながら、図２２では、画像プロセッサ１４は、ＲＧＢ色値をシステムメモリ１４０に出力することができる。圧縮ユニット２０は、システムメモリ１４０からＲＧＢ色値を受信し、ならびに、圧縮画像フレームの結果をシステムメモリ１４０に一時的に記憶することができる。また、図２２に示す例は、圧縮ユニット２０が、ラインごとではなく、スライスにおいて画像フレームブロックを圧縮することを可能にすることができ、ただし、スライスは複数のラインである。
【０２４２】
たとえば、図２２では、画像プロセッサ１４は、ＲＧＢ色値を、ピン１４８とポン１５０とを含むピンポンバッファに出力する。これらの色値は圧縮されていないので、ピン１４８およびポン１５０のサイズは、図２２に示すように、サイズＷのラインを記憶するために十分であり得る。ポン１５０の出力は、ラインＮであり得、非圧縮ライン（Ｗ）１５２の出力は、ラインＮ−１であり得る。たとえば、非圧縮ライン（Ｗ）１５２は、ポン１５０からラインＮを受信することができる。次いで、ここでラインＮと見なされる、次のラインにとって、非圧縮ライン（Ｗ）１５２は、ラインＮ−１を記憶すると見なされ得る。圧縮ユニット２０は、ポン１５０からラインＮと、非圧縮ライン（Ｗ）１５２からラインＮ−１とを受信することができ、ポン１５０は、次いで、現在のラインＮを非圧縮ライン（Ｗ）１５２に記憶することができ、このラインは、次のラインにとってラインＮ−１になるようになる。
【０２４３】
圧縮ユニット２０は、図２２に示した例では、圧縮画像フレームブロックを、ピン１５４とポン１５６とを含むピンポンバッファに出力することができる。この例では、ピンポンバッファのサイズは、画像フレームのスライスを記憶するために十分であり得る。
【０２４４】
図２２に示した例は、図２１に示す例と比較して、追加のピンポンバッファを必要とし得る。たとえば、図２２は、可変ビットレートを平滑化するために、第２のセットのピンポンバッファを必要とし得る。図２２の例におけるピンポンバッファのためのメモリ要件は、（３＊Ｗ＋２＊スライス＊Ｗ／２）であり得る。４本のラインを含むスライスでは、メモリ要件は、７Ｗであり得る。
【０２４５】
図２３および図２４は、本開示で説明する態様による、画像フレームを圧縮する結果を示す概念図である。たとえば、図２３は、元の画像フレームの４本のラインと、圧縮後の同じ４本のラインとを示す。図示のように、４本のラインの各々は、１ライン当たりの未使用ビットとともに、５０％よりも多く圧縮される。図２４の例は、元の画像フレームの１２本のラインを示す。この例では、元の画像フレームの４本のラインがスライスを形成し、元の画像フレームにおいて３個のスライスを生じる。図示のように、スライスの各々は、１スライス当たりの未使用ビットとともに、５０％よりも多く圧縮される。たとえば、図２３と図２４の両方では、圧縮画像フレームの暗い部分が、使用されたビットを示し、白い部分が未使用ビットを示す。
【０２４６】
図２５は、本開示で説明する技法による例示的な動作を示すフローチャートである。説明のために、図２への参照を行う。
【０２４７】
プロセッサは、初期ビット割り当てを決定することができる（１５８）。たとえば、プロセッサは、デバイス１２の画像プロセッサ１４、またはＣＰＵなど、ある他のプロセッサであり得る。プロセッサは、１ブロック当たりの平均ビット数および圧縮ビットしきい値に基づいて、初期ビット割り当てを決定することができる。たとえば、プロセッサは、目標圧縮値に基づく、１ブロック当たりの平均ビット数を決定することができる。プロセッサは、１ブロック当たりの平均ビット数から圧縮ビットしきい値を引いて、１ブロック当たりの平均の余分のビットを決定することができる。プロセッサは、１ブロック当たりの平均の余分のビットに、画像フレーム内のブロック数を掛けて、画像フレームのための初期ビット割り当てを決定することができる。
【０２４８】
圧縮ユニット２０は、現在のビット割り当てを決定することができる（１６０）。画像フレームの第１のブロックのための現在のビット割り当ては、初期ビット割り当てを圧縮ビットしきい値と合計したものであり得る。圧縮ユニット２０は、以前のビット割り当てから以前の圧縮ブロックのビット数を引くことと、圧縮ビットしきい値を結果に合計することとによって、第１のブロックの後のブロックのための現在のビット割り当てを決定することができる。
【０２４９】
圧縮ユニット２０は、符号化モードを決定することができる（１６２）。たとえば、上記で説明したように、圧縮ユニット２０は、画像フレームのブロック内のピクセルの色値を符号化するための方法を決定することができる、符号化モード決定ユニットを含み得る。いくつかの例では、符号化モード決定ユニットは、画像フレームのブロック内のピクセルの色値を形成する成分のうちの少なくとも２つについて、異なる符号化方式を決定することができる。
【０２５０】
圧縮ユニット２０は、次いで、ブロックを符号化することができる（１６４）。圧縮ユニット２０は、次いで、以前の圧縮ブロック（たとえば、圧縮されたばかりのブロック）のビット数に基づいて、現在のブロックのためのビット割り当てを再決定することができる。圧縮ユニット２０は、圧縮ユニット２０が画像フレーム全体を圧縮するまで、これらのステップを繰り返すことができる。
【０２５１】
図２６は、本開示で説明する技法による別の例示的な動作を示すフローチャートである。説明のために、図２への参照を行う。
【０２５２】
圧縮ユニット２０は、上記で説明したように、現在のビット割り当てを決定することができる（１６６）。いくつかの例では、圧縮ユニット２０は、画像フレーム全体のための初期ビット割り当てに基づいて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを決定することができる。いくつかの例では、圧縮ユニット２０は、画像フレームのラインのための初期ビット割り当てに基づいて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを決定することができる。いくつかの例では、圧縮ユニット２０は、画像フレームのスライスのための初期ビット割り当てに基づいて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを決定することができる。
【０２５３】
圧縮ユニット２０は、画像フレームブロックにおいて、いくつかの例では同時に、可逆圧縮と不可逆圧縮とを実行することができる（１６８）。可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、圧縮ユニット２０は、可逆圧縮ブロックのビットを出力することができる（１７０）。可逆圧縮ブロックのビット数が現在のビット割り当てよりも大きく、かつ、不可逆圧縮ブロックのビット数が現在のビット割り当て以下であるとき、圧縮ユニット２０は、不可逆圧縮ブロックのビットを出力することができる（１７２）。不可逆圧縮ブロックまたは可逆圧縮ブロックのビットを出力するために、圧縮ユニット２０は、それらのビットをフレームバッファ２２に記憶するか、または、それらのビットを圧縮解除ユニット２４に出力することができる。
【０２５４】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装した場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶され得る。コンピュータ可読媒体は、コンピュータデータ記憶媒体を含み得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体は、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０２５５】
コードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）などの１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指し得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０２５６】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（すなわち、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、ハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０２５７】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
【図１Ａ】
2014523703.tif 000015
【図１Ｂ】
2014523703.tif 000016
【図１Ｃ】
2014523703.tif 000017
【図１Ｄ】
2014523703.tif 000018
【図２】
2014523703.tif 000019
【図３Ａ】
2014523703.tif 000020
【図３Ｂ】
2014523703.tif 000021
【図３Ｃ】
2014523703.tif 000022
【図４】
2014523703.tif 000023
【図５】
2014523703.tif 000024
【図６】
2014523703.tif 000025
【図７】
2014523703.tif 000026
【図８】
2014523703.tif 000027
【図９】
2014523703.tif 000028
【図１０】
2014523703.tif 000029
【図１１】
2014523703.tif 000030
【図１２】
2014523703.tif 000031
【図１３】
2014523703.tif 000032
【図１４】
2014523703.tif 000033
【図１５】
2014523703.tif 000034
【図１６】
2014523703.tif 000035
【図１７】
2014523703.tif 000036
【図１８】
2014523703.tif 000037
【図１９】
2014523703.tif 000038
【図２０】
2014523703.tif 000039
【図２１】
2014523703.tif 000040
【図２２】
2014523703.tif 000041
【図２３】
2014523703.tif 000042
【図２４】
2014523703.tif 000043
【図２５】
2014523703.tif 000044
【図２６】
2014523703.tif 000045
【手続補正書】
【提出日】平成26年3月12日(2014.3.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
圧縮ユニットを用いて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値と、に少なくとも基づいて、決定することと、
前記圧縮ユニットを用いて、別の画像フレームを参照することなしに、前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することであり、前記可逆圧縮ブロックのビット数が前記圧縮ビットしきい値以上であることが保証されることと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記圧縮ユニットを用いて、前記可逆圧縮ブロックのビットを出力することと
を備える方法。
【請求項２】
前記圧縮ユニットを用いて、前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記圧縮ユニットを用いて、前記不可逆圧縮ブロックのビットを出力することと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記不可逆圧縮を実行することが、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
前記量子化ビットにおいて、圧縮を実行することと
を備える、請求項２に記載の方法。
【請求項４】
前記方法が、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定すること
をさらに備え、
ビットを量子化することが、前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックの量子化ビットを備える、請求項３に記載の方法。
【請求項５】
前記不可逆圧縮を実行することが、前記可逆圧縮を実行することと同時に、前記不可逆圧縮を実行することを備える、請求項２に記載の方法。
【請求項６】
前記可逆圧縮を実行することが、第１の可逆圧縮を実行することを備え、前記可逆圧縮ブロックが、第１の可逆圧縮ブロックを備え、前記方法が、
第２の、異なる可逆圧縮を、前記第１の可逆圧縮と同時に実行して、第２の可逆圧縮ブロックを生成することと、
第１の不可逆圧縮を、前記第１の可逆圧縮および前記第２の可逆圧縮と同時に実行して、第１の不可逆圧縮ブロックを生成することと、
第２の、異なる不可逆圧縮を、前記第１の可逆圧縮、前記第２の可逆圧縮、および前記第１の不可逆圧縮と同時に実行して、第２の不可逆圧縮ブロックを生成することと、
前記第１の可逆圧縮ブロックおよび前記第２の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の可逆圧縮ブロックまたは前記第２の可逆圧縮ブロックを選択することと、
前記第１の不可逆圧縮ブロックおよび前記第２の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の不可逆圧縮ブロックまたは前記第２の不可逆圧縮ブロックを選択することと、
前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
をさらに備える、請求項１に記載の方法。
【請求項７】
前記方法が、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化すること
をさらに備え、
前記第１の不可逆圧縮を実行することが、前記量子化ビットにおいて、第１の圧縮を実行することを備え、
前記第２の不可逆圧縮を実行することが、前記量子化ビットにおいて、第２の、異なる圧縮を実行することを備える、請求項６に記載の方法。
【請求項８】
前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶することを備える、請求項１に記載の方法。
【請求項９】
前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信することを備える、請求項１に記載の方法。
【請求項１０】
前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
をさらに備える、請求項１に記載の方法。
【請求項１１】
１ブロック当たりの平均ビット数を決定することと、
前記１ブロック当たりの平均ビット数から前記圧縮ビットしきい値を引いて、１ブロック当たりの平均の余分のビットを決定することと、
前記１ブロック当たりの平均の余分のビットに、前記画像フレーム内のブロック数を掛けて、前記画像フレームのための初期ビット割り当てを決定することと
をさらに備える、請求項１に記載の方法。
【請求項１２】
前記現在のブロックが、初期ブロックの後のブロックを備え、前記方法が、
前記圧縮ビットしきい値を、前記画像フレームのための前記初期ビット割り当てに加算して、前記初期ブロックのための圧縮バジェットを決定すること
をさらに備える、請求項１１に記載の方法。
【請求項１３】
前記１ブロック当たりの平均ビット数を決定することが、１ピクセル当たりのビット数に、１ブロック当たりのピクセル数を掛けて、１ブロック当たりのビット数を決定することと、前記１ブロック当たりのビット数に、目標圧縮値を掛けることとを備える、請求項１１に記載の方法。
【請求項１４】
前記現在のブロックのための前記現在のビット割り当てを決定することが、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを備える、請求項１に記載の方法。
【請求項１５】
前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、請求項１に記載の方法。
【請求項１６】
前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、請求項１に記載の方法。
【請求項１７】
前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、請求項１に記載の方法。
【請求項１８】
画像フレームを作成するように構成された画像プロセッサと、
前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
別の画像フレームを参照することなしに、前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することであり、前記可逆圧縮ブロックのビット数が前記圧縮ビットしきい値以上であることが保証されることと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行うように構成された圧縮ユニットと
を備えるシステム。
【請求項１９】
前記圧縮ユニットが、
前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
を行うように構成される、請求項１８に記載のシステム。
【請求項２０】
前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、請求項１９に記載のシステム。
【請求項２１】
前記圧縮ユニットが、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
を行うように構成される、請求項２０に記載のシステム。
【請求項２２】
前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、請求項１９に記載のシステム。
【請求項２３】
前記可逆圧縮が、第１の可逆圧縮を備え、前記可逆圧縮ブロックが、第１の可逆圧縮ブロックを備え、前記圧縮ユニットが、
第２の、異なる可逆圧縮を、前記第１の可逆圧縮と同時に実行して、第２の可逆圧縮ブロックを生成することと、
第１の不可逆圧縮を、前記第１の可逆圧縮および前記第２の可逆圧縮と同時に実行して、第１の不可逆圧縮ブロックを生成することと、
第２の、異なる不可逆圧縮を、前記第１の可逆圧縮、前記第２の可逆圧縮、および前記第１の不可逆圧縮と同時に実行して、第２の不可逆圧縮ブロックを生成することと、
前記第１の可逆圧縮ブロックおよび前記第２の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の可逆圧縮ブロックまたは前記第２の可逆圧縮ブロックを選択することと、
前記第１の不可逆圧縮ブロックおよび前記第２の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の不可逆圧縮ブロックまたは前記第２の不可逆圧縮ブロックを選択することと、
前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
を行うように構成される、請求項１８に記載のシステム。
【請求項２４】
前記圧縮ユニットが、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
前記量子化ビットにおいて、第１の圧縮を実行して、前記第１の不可逆圧縮を実行することと、
前記量子化ビットにおいて、第２の、異なる圧縮を実行して、前記第２の不可逆圧縮を実行することと
を行うように構成される、請求項２３に記載のシステム。
【請求項２５】
前記画像プロセッサを含むデバイスと、前記圧縮ユニットを含むパネルデバイスとをさらに備える、請求項１８に記載のシステム。
【請求項２６】
前記画像プロセッサと前記圧縮ユニットとを含むデバイスをさらに備える、請求項１８に記載のシステム。
【請求項２７】
前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶する、請求項１８に記載のシステム。
【請求項２８】
前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信する、請求項１８に記載のシステム。
【請求項２９】
前記圧縮ユニットが、
前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
を行うように構成される、請求項１８に記載のシステム。
【請求項３０】
前記圧縮ユニットが、前記現在のブロックのための前記現在のビット割り当てを決定するために、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを行うように構成される、請求項１８に記載のシステム。
【請求項３１】
前記圧縮ユニットが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、請求項１８に記載のシステム。
【請求項３２】
前記圧縮ユニットが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、請求項１８に記載のシステム。
【請求項３３】
前記圧縮ユニットが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、請求項１８に記載のシステム。
【請求項３４】
画像フレームを受信することと、
前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
別の画像フレームを参照することなしに、前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することであり、前記可逆圧縮ブロックのビット数が前記圧縮ビットしきい値以上であることが保証されることと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行うように構成された圧縮ユニット。
【請求項３５】
前記圧縮ユニットが、
前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
を行うように構成される、請求項３４に記載の圧縮ユニット。
【請求項３６】
前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、請求項３５に記載の圧縮ユニット。
【請求項３７】
前記圧縮ユニットが、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
を行うように構成される、請求項３６に記載の圧縮ユニット。
【請求項３８】
前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、請求項３５に記載の圧縮ユニット。
【請求項３９】
画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定するための手段と、
別の画像フレームを参照することなしに、前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成するための手段であり、前記可逆圧縮ブロックのビット数が前記圧縮ビットしきい値以上であることが保証される手段と、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力するための手段と
を備えるシステム。
【請求項４０】
実行されたとき、１つまたは複数のプロセッサに、
画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
別の画像フレームを参照することなしに、前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することであり、前記可逆圧縮ブロックのビット数が前記圧縮ビットしきい値以上であることが保証されることと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２５７
【補正方法】変更
【補正の内容】
【０２５７】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  圧縮ユニットを用いて、画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値と、に少なくとも基づいて、決定することと、
前記圧縮ユニットを用いて、前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記圧縮ユニットを用いて、前記可逆圧縮ブロックのビットを出力することと
を備える方法。
［Ｃ２］  前記圧縮ユニットを用いて、前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記圧縮ユニットを用いて、前記不可逆圧縮ブロックのビットを出力することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ３］  前記不可逆圧縮を実行することが、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
前記量子化ビットにおいて、圧縮を実行することと
を備える、Ｃ２に記載の方法。
［Ｃ４］  前記方法が、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定すること
をさらに備え、
ビットを量子化することが、前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックの量子化ビットを備える、Ｃ３に記載の方法。
［Ｃ５］  前記不可逆圧縮を実行することが、前記可逆圧縮を実行することと同時に、前記不可逆圧縮を実行することを備える、Ｃ２に記載の方法。
［Ｃ６］  前記可逆圧縮を実行することが、第１の可逆圧縮を実行することを備え、前記可逆圧縮ブロックが、第１の可逆圧縮ブロックを備え、前記方法が、
第２の、異なる可逆圧縮を、前記第１の可逆圧縮と同時に実行して、第２の可逆圧縮ブロックを生成することと、
第１の不可逆圧縮を、前記第１の可逆圧縮および前記第２の可逆圧縮と同時に実行して、第１の不可逆圧縮ブロックを生成することと、
第２の、異なる不可逆圧縮を、前記第１の可逆圧縮、前記第２の可逆圧縮、および前記第１の不可逆圧縮と同時に実行して、第２の不可逆圧縮ブロックを生成することと、
前記第１の可逆圧縮ブロックおよび前記第２の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の可逆圧縮ブロックまたは前記第２の可逆圧縮ブロックを選択することと、
前記第１の不可逆圧縮ブロックおよび前記第２の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の不可逆圧縮ブロックまたは前記第２の不可逆圧縮ブロックを選択することと、
前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ７］  前記方法が、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化すること
をさらに備え、
前記第１の不可逆圧縮を実行することが、前記量子化ビットにおいて、第１の圧縮を実行することを備え、
前記第２の不可逆圧縮を実行することが、前記量子化ビットにおいて、第２の、異なる圧縮を実行することを備える、Ｃ６に記載の方法。
［Ｃ８］  前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶することを備える、Ｃ１に記載の方法。
［Ｃ９］  前記可逆圧縮ブロックの前記ビットを出力することが、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信することを備える、Ｃ１に記載の方法。
［Ｃ１０］  前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
をさらに備える、Ｃ１に記載の方法。
［Ｃ１１］  １ブロック当たりの平均ビット数を決定することと、
前記１ブロック当たりの平均ビット数から前記圧縮ビットしきい値を引いて、１ブロック当たりの平均の余分のビットを決定することと、
前記１ブロック当たりの平均の余分のビットに、前記画像フレーム内のブロック数を掛けて、前記画像フレームのための初期ビット割り当てを決定することと
をさらに備える、Ｃ１に記載の方法。
［Ｃ１２］  前記現在のブロックが、初期ブロックの後のブロックを備え、前記方法が、
前記圧縮ビットしきい値を、前記画像フレームのための前記初期ビット割り当てに加算して、前記初期ブロックのための圧縮バジェットを決定すること
をさらに備える、Ｃ１１に記載の方法。
［Ｃ１３］  前記１ブロック当たりの平均ビット数を決定することが、１ピクセル当たりのビット数に、１ブロック当たりのピクセル数を掛けて、１ブロック当たりのビット数を決定することと、前記１ブロック当たりのビット数に、目標圧縮値を掛けることとを備える、Ｃ１１に記載の方法。
［Ｃ１４］  前記現在のブロックのための前記現在のビット割り当てを決定することが、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを備える、Ｃ１に記載の方法。
［Ｃ１５］  前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、Ｃ１に記載の方法。
［Ｃ１６］  前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、Ｃ１に記載の方法。
［Ｃ１７］  前記現在のブロックのための前記現在のビット割り当てを決定することが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを備える、Ｃ１に記載の方法。
［Ｃ１８］  画像フレームを作成するように構成された画像プロセッサと、
前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行うように構成された圧縮ユニットと
を備えるシステム。
［Ｃ１９］  前記圧縮ユニットが、
前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
を行うように構成される、Ｃ１８に記載のシステム。
［Ｃ２０］  前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、Ｃ１９に記載のシステム。
［Ｃ２１］  前記圧縮ユニットが、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
を行うように構成される、Ｃ２０に記載のシステム。
［Ｃ２２］  前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、Ｃ１９に記載のシステム。
［Ｃ２３］  前記可逆圧縮が、第１の可逆圧縮を備え、前記可逆圧縮ブロックが、第１の可逆圧縮ブロックを備え、前記圧縮ユニットが、
第２の、異なる可逆圧縮を、前記第１の可逆圧縮と同時に実行して、第２の可逆圧縮ブロックを生成することと、
第１の不可逆圧縮を、前記第１の可逆圧縮および前記第２の可逆圧縮と同時に実行して、第１の不可逆圧縮ブロックを生成することと、
第２の、異なる不可逆圧縮を、前記第１の可逆圧縮、前記第２の可逆圧縮、および前記第１の不可逆圧縮と同時に実行して、第２の不可逆圧縮ブロックを生成することと、
前記第１の可逆圧縮ブロックおよび前記第２の可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の可逆圧縮ブロックまたは前記第２の可逆圧縮ブロックを選択することと、
前記第１の不可逆圧縮ブロックおよび前記第２の不可逆圧縮ブロックのうちのどちらがより少ないビットを含むかに基づいて、前記第１の不可逆圧縮ブロックまたは前記第２の不可逆圧縮ブロックを選択することと、
前記可逆圧縮ブロックのうちの前記選択されたもののビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと、
前記可逆圧縮ブロックのうちの前記選択されたものの前記ビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのうちの前記選択されたもののビットを出力することと
を行うように構成される、Ｃ１８に記載のシステム。
［Ｃ２４］  前記圧縮ユニットが、
量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、
前記量子化ビットにおいて、第１の圧縮を実行して、前記第１の不可逆圧縮を実行することと、
前記量子化ビットにおいて、第２の、異なる圧縮を実行して、前記第２の不可逆圧縮を実行することと
を行うように構成される、Ｃ２３に記載のシステム。
［Ｃ２５］  前記画像プロセッサを含むデバイスと、前記圧縮ユニットを含むパネルデバイスとをさらに備える、Ｃ１８に記載のシステム。
［Ｃ２６］  前記画像プロセッサと前記圧縮ユニットとを含むデバイスをさらに備える、Ｃ１８に記載のシステム。
［Ｃ２７］  前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットをフレームバッファに記憶する、Ｃ１８に記載のシステム。
［Ｃ２８］  前記圧縮ユニットが、前記可逆圧縮ブロックの前記ビットを出力するために、前記可逆圧縮ブロックの前記ビットを圧縮解除ユニットへ送信する、Ｃ１８に記載のシステム。
［Ｃ２９］  前記圧縮ユニットが、
前記以前のビット割り当てを、前記現在のビット割り当てに等しく設定すること
を行うように構成される、Ｃ１８に記載のシステム。
［Ｃ３０］  前記圧縮ユニットが、前記現在のブロックのための前記現在のビット割り当てを決定するために、前記以前のビット割り当てから前記以前の圧縮ブロックの前記ビット数を引くことと、前記圧縮ビットしきい値を合計することとを行うように構成される、Ｃ１８に記載のシステム。
［Ｃ３１］  前記圧縮ユニットが、前記画像フレーム全体のための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、Ｃ１８に記載のシステム。
［Ｃ３２］  前記圧縮ユニットが、前記画像フレームのラインのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、Ｃ１８に記載のシステム。
［Ｃ３３］  前記圧縮ユニットが、前記画像フレームのスライスのための初期ビット割り当てに基づいて、前記ピクセル値の現在のブロックのための前記現在のビット割り当てを決定することを行うように構成される、Ｃ１８に記載のシステム。
［Ｃ３４］  画像フレームを受信することと、
前記画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行うように構成された圧縮ユニット。
［Ｃ３５］  前記圧縮ユニットが、
前記現在のブロックにおいて不可逆圧縮を実行して、不可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当てよりも大きいとき、前記不可逆圧縮ブロックのビットを出力することと
を行うように構成される、Ｃ３４に記載の圧縮ユニット。
［Ｃ３６］  前記圧縮ユニットが、量子化ビットの数が前記現在のビット割り当て以下であるように、前記現在のブロックのビットを量子化することと、前記量子化ビットにおいて、圧縮を実行して、前記不可逆圧縮を実行することとを行うように構成される、Ｃ３５に記載の圧縮ユニット。
［Ｃ３７］  前記圧縮ユニットが、
前記現在のビット割り当てに基づいて、適用されるべき量子化の量を決定することと、
前記量子化ビットの前記数が前記現在のビット割り当て以下であるように、前記決定された量子化の量に基づいて、前記現在のブロックのビットを量子化することと
を行うように構成される、Ｃ３６に記載の圧縮ユニット。
［Ｃ３８］  前記圧縮ユニットが、前記可逆圧縮と同時に、前記不可逆圧縮を実行することを行うように構成される、Ｃ３５に記載の圧縮ユニット。
［Ｃ３９］  画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定するための手段と、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成するための手段と、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力するための手段と
を備えるシステム。
［Ｃ４０］  実行されたとき、１つまたは複数のプロセッサに、
画像フレームのピクセル値の現在のブロックのための現在のビット割り当てを、以前のビット割り当てと、以前の圧縮ブロックのビット数と、圧縮のために前記画像フレームの前記ブロックの各々のために利用可能であると保証されるビット数を示す圧縮ビットしきい値とに少なくとも基づいて、決定することと、
前記現在のブロックにおいて可逆圧縮を実行して、可逆圧縮ブロックを生成することと、
前記可逆圧縮ブロックのビット数が前記現在のビット割り当て以下であるとき、前記可逆圧縮ブロックのビットを出力することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
【国際調査報告】
2014523703.tif 000046
2014523703.tif 000047
2014523703.tif 000048