JP5221557B2 - ラインに基づくビデオレート制御および圧縮 - Google Patents

ラインに基づくビデオレート制御および圧縮 Download PDF

Info

Publication number
JP5221557B2
JP5221557B2 JP2009540501A JP2009540501A JP5221557B2 JP 5221557 B2 JP5221557 B2 JP 5221557B2 JP 2009540501 A JP2009540501 A JP 2009540501A JP 2009540501 A JP2009540501 A JP 2009540501A JP 5221557 B2 JP5221557 B2 JP 5221557B2
Authority
JP
Japan
Prior art keywords
line
pass
encoded
active line
low pass
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009540501A
Other languages
English (en)
Other versions
JP2010512692A (ja
Inventor
フェルナンデス、フェリックス・シー.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010512692A publication Critical patent/JP2010512692A/ja
Application granted granted Critical
Publication of JP5221557B2 publication Critical patent/JP5221557B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/187Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/37Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability with arrangements for assigning different transmission priorities to video input data or to video coded data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

発明の分野
本発明は、一般的には無線通信に関し、より詳細には、無線ビデオデータ送信のためのラインに基づくレート制御に関する。
背景
超広帯域(VWB)無線通信は、従来にない高レートでのデータ送信を可能にする。高精細ビデオフォーマットは以前に可能であったよりも低い圧縮率で送信できるので、ビデオ送信はこれら高レートの利益を受ける。先行技術のシステムは、フレームまたはブロックに基づく圧縮スキームに依存し、これらは二つの広いカテゴリに入る。
特定の容量を備えたチャンネル上でビデオを送信するために、非スケーラブルなレート制御方法は、平均ビットレートがチャンネル容量に近接するように、複雑な発見的方法を用いてビデオフレームのブロックを圧縮する量子化パラメータを選択する。しかし、瞬間ビットレートは一般的にチャンネル容量を越える可能性があるので、これら方法は、データ喪失を防止するために大きなバッファを使用する。
ビデオがスケーラブルなレート制御で送信されるときには、各ビデオフレームまたはブロックは、スケーラブル(または埋め込まれた)なビットストリームに符号化され、これは瞬間的なビットレートがチャンネル容量を越えないことを保証するために、何れかの点で切除されてよい。しかし、これら方法は、複雑なマルチパスのビットプレーン指向性処理がスケーラブルなビットストリームを発生できるように、全体のフレームまたはブロックをバッファするのに充分なメモリーを使用する。
典型的には、ビデオレート制御方法は、所定のレートについての歪みを最小化することによって品質を最適化するために、レート歪み理論を適用する。特に、フレームに基づくビデオ符号化器およびブロックに基づくビデオ符号化器は、レート拘束条件付きの歪み最小化のために、マルチパス法または高価な調査を使用する。
フレームに基づくシステムおよびブロックに基づくシステムとは対照的に、提案されているライに基づくレート制御は、バッファ状態およびチャンネル容量のような変化するシステム条件に対して、ライン毎にビデオ圧縮を適合させる。無線ビデオシステムがフレームに基づくレート制御およびブロックに基づくレート制御からラインに基づくレート制御へと移動するので、当該技術においては、変化するチャンネル容量下において、バッファのオーバーフローを伴わずに最大のビデオ品質が得られるように、ラインに基づくレート制御のための最小量子化パラメータを決定する必要性が存在する。
本開示の種々の側面は、添付の図面と共に、以下の詳細な説明を読むことによって最も良く理解される。
図1は、本発明の一実施形態が実現され得る典型的な無線ビデオシステムのブロック図である。 図2は、本発明の一実施形態に従うビデオフレームのフォーマットを示している。 図3は、本発明の一実施形態に従って、ビデオフレームの各ラインのRGB成分についてのデータフローの概略を示すブロック図を示している。 図4は、ハイパスサブバンドもしくはローパスサブバンドの予測残差から描かれる整数に関連した、指数ゴロム符号を定義するプロセスを示すフローチャートである。 図5は、本発明の一実施形態に従う一対のパケタイザを示している。 図6は、本発明の一実施形態に従って、バッファのオーバーフローを伴わずに、最小歪みのためのビデオ符号化を最適化する制御出力を発生するために、ビデオレート制御が使用する入力を示している。 図7は、最適ローパス量子化設定を決定するために、水平ブランキング期間の間に実行されるプロセスを示すフローチャートを示している。 図8は、ラインにおけるローパス部分の符号化された長さの計算を示すフローチャートを示している。 図9は、ラインのローパス部分からの二乗誤差の計算を示すフローチャートを示している。 図10は、最適なハイパス量子化設定を決定するために、水平ブランキング期間の間に実行されるプロセスを示すフローチャートを示している。 図11は、ラインにおけるハイパス部分の符号化された長さの計算を示すフローチャートを示している。 図12は、ラインのハイパス部分からの二乗誤差の計算を示すフローチャートを示している。 図13は、最適化されたローパスサブバンドレート計算のためのプロセスを示している。 図14は、全量子化レベル下のローパスサブバンド項目xについての、残差符号長の最適化された計算のための最適化されたLPレート手順を記載している。 図15は、現在の行からのローパスサブバンド項目に、現在のローパスサブバンド行からのxの量子化されない左隣を加えるための手順を描いている。 図16は、量子化入力推定値についての訂正手順を示している。 図17は、画素間の距離を、それらが量子化された後に決定する手順を示している。 図18は、特定の量子化レベルでのローパスサブバンド項目に対応する残差を計算するための手順を示している。 図19は、JPEG−2000画像圧縮標準によって定義されるfloor(x’+2)を使用した、LeGall(5,3)ウエーブレット変換の整数実施のための丸め方法を示している。 図20は、本発明の一実施形態に従って、fix(x’+2)を使用した、LeGall(5,3)ウエーブレット変換の整数実施のための丸め方法を示している。 図21は、ビデオレート制御信号のために使用される圧縮比率の曲線をプロットしている。 図22は、本発明の一実施形態に従って、改善されたビデオレート制御のためのファームウエアで実施される方法を示すフローチャートである。 図23は、本発明の一実施形態に従って、改善されたビデオレート制御のためのハードウエアで実施される方法を示すフローチャートである。 図24は、レジスタにおける未使用のバイトをクリップするために使用されるクリップ関数を表している。 図25は、図7に示したプロセスの代替法として、最適ローパス量子化設定を決定するために、水平ブランキング期間の間に実行されるプロセスを示すフローチャートを示している。 図26は、図10に示したプロセスの代替法として、最適なハイパス量子化設定を決定するために、水平ブランキング期間の間に実行されるプロセスを示すフローチャートを示している。 図27は、水平ブランキング期間の際の最適ハイパス量子化設定を決定するために、図10におけるフローチャートの代わりに使用してよい代替フローチャートを示している 図28は、水平ブランキング期間の際の最適ハイパス量子化設定を決定するために、図10におけるフローチャートの代わりに使用してよい代替フローチャートを示している
詳細な説明
画像/ビデオ符号化器は、一般に二つのコンポーネント、即ち、圧縮エンジンおよびレート制御装置からなっている。レート制御装置は、符号化器が埋め込まれるシステムからの入力を受信し、次いで、出力ビットストリームが該システムによって送信され得るように、圧縮エンジンの動作を制御するパラメータを発生する。本発明の一実施形態は、複雑さの低い、低コストのレート制御のための方法を提供する。
基礎をなすシステムから次のフィードバックを受信する、画像/ビデオ符号化器を考えよう:
(a)初期スループット推定値
(b)パケットサイズ
(c)パケット再送信フィードバック
(d)今度のビデオ動作不能時間スロットの通知、
(e)送信バッファの満杯度。
本発明のもう一つの実施形態は、上記で述べたフィードバックを使用して、レート制御を介してパケット毎に動作点を適合的に変更することにより、復号された画像/ビデオ品質を改善するための低コストのファームウエアで実施可能な方法を提供する。
もう一つの変形例において、画像/ビデオ符号化器は、基礎をなすシステムから次のフィードバックを受信する:
(a)初期スループット推定値
(b)圧縮されたラインサイズ
(c)パケット再送信フィードバック
(d)今度のビデオ動作不能時間スロットの通知、
(e)送信バッファの満杯度。
この別の実施形態は、上記で述べたフィードバックを使用して、レート制御を介してライン毎に動作点を適合的に変更することによって、復号された画像/ビデオ品質を改善するための、低コストのハードウエアで実施可能な(ファームウエアではなく)方法を提供する。
上記で述べたように、画像/ビデオ符号化器は、一般には二つのコンポーネント、即ち圧縮エンジンおよびレート制御器からなっている。レート制御器は、符号化器が埋め込まれたシステムからの入力を受信し、次いで、出力ビットストリームが該システムによって送信され得るように、圧縮機の動作を制御するパラメータを発生する。前記符号化器に対応する復号器は、前記ビットストリームから生の画像/ビデオデータが再構成されるように、圧縮エンジンの動作を反転させる圧縮解除エンジンからなっている。本発明の一実施形態は、複雑さの低い、低コストのラインに基づく圧縮エンジンのための方法を提供する。この圧縮エンジンにおける動作を反転させることによって、対応する復号器が得られる。
本発明の更なる実施形態は丸め方法を含んでおり、これは損失無しおよび損失有りの、より高い圧縮比率をもたらす。ウエーブレット変換は、屡々、画像/ビデオデータを相関解除して、損失無しおよび損失有りの圧縮比率を増大させるために用いられる。実施コストを低減するために、丸め動作を使用してウエーブレット変換の整数バージョンを実施する。
多重解像度変換に続いてエントロピー符号化を使用する画像/ビデオ符号化器では、元データにおけるエッジに対応したハイパス係数に長い符号が割当てられる。本発明のもう一つの実施形態は、圧縮率を増大させるための方法を提供する。
本発明の更なる実施形態は、改善された歪み推定精度のための方法を扱う。ウエーブレット変換に基づく圧縮エンジンを備えた画像/ビデオ符号化器において、レート制御は、ウエーブレット/ドメイン歪みから画素/ドメイン歪みを推定する。不運なことに、丸めノイズのため、複雑さの低い整数ウエーブレット変換が使用されるときには、画素/ドメイン歪み推定の精度が低下する。
圧縮エンジンが、強い垂直相関および/または水平相関を含む局在化された領域を備えた、量子化された二次元アレイを符号化する画像/ビデオ符号化器において、各アレイ要素について最大相関の方向に予測残差が発生されれば、より高い圧縮率を得ることができる。本発明の一実施形態は、量子化されたデータから予測残差を発生させるための、経験則による発見的方法を提供する。経験則は最大相関の方向に予測を駆り立てる結果、各アレイ要素において該方向を特定する追加のデータを符号化器に供給することは不要である。
この符号化器のためのレート制御は、全ての量子化レベルで符号化されたアレイのためのビット使用量を予測する。本発明の更なる実施形態は、種々の特定された量子化レベルでエントロピー符号化された残差の正確なビット消費を予測するための、複雑さの低い方法を提供する。
画像/ビデオ符号化器において、圧縮エンジンは、ビットストリームを形成するためのエントロピー符号化器を含んでいる。ゴロム符号は、効率的で複雑度が低く、且つ低コストのエントロピー符号化器を実施するために使用することができる。本発明の一実施形態は、画像/ビデオ符号化器用ゴロム符号を発生させるための、コストが低減された方法を提供する。この方法の逆は、対応する画像/ビデオ復号器のためのエントロピー復号プロセスを特定する。更に、算術的符号化器の基本的な要素は、ゴロム符号化特性を改善するために使用することができる。
図1は、本発明の一実施形態を実施し得る典型的な無線ビデオシステムのブロック図である。ビデオデータストリームは、ビデオソース100からビデオシンク110(例えばコンピュータモニター、テレビジョン等)へと無線で転送される。無線ビデオ入力装置101および出力装置111は、無線接続を提供する。
図2は、本発明の一実施形態に従うビデオフレームのフォーマットを示している。各ビデオフレームは、アクティブラインおよびブランクラインで構成される。各アクティブラインは、アクティブ画素およびブランク画素で構成される。ビデオフレームのアクティブビデオセクションの間のデータが表示され、該データは、赤、緑および青(RGB)フォーマットまたはYUV4:2:2フォーマットの三つの色成分からなっている。(YUV色モデルにおいて、Yは輝度信号を表し、またUおよびVは色差信号を表す)。
図3は、本発明の一実施形態に従うビデオフレームにおいて、各ラインのRGB成分についてのデータフローを概説したブロック図を示している。RGB−to−YUVブロック302は、各画素についての赤、緑および青の成分を、4:4:4フォーマットで対応するYUV成分にマッピングする色空間変換を使用する。バイパス制御301が表明されれば、RGB−to−YUVブロック302はバイパスされる。
Select・YUV制御303は、YUVフォーマット変換ブロック304がバイパスされるかどうか、またはローパスフィルターおよびダウンサンプラーがYUV4:4:4フォーマットをYUV4:2:2もしくはYUV4:1:1フォーマットに変換するかどうかを決定する。
YUVフォーマット変換ブロック304によって生じたYUV成分は、別々のウエーブレット変換306(Y)、307(U)および308(V)を通される。Select・Tfm制御305は、ダウベシーズ(Daubechies)(7,9)もしくはラガル(LeGall)(5,3)ウエーブレット変換の2レベルの整数バージョンが、各色成分のためのローパスサブバンドおよびハイバスサブバンドを発生させるために使用されるかどうかを決定する。与えられたラインについて2レベルのウエーブレット変換が使用されるので、ローパス(高優先度)ウエーブレット係数の数は、該ラインにおける画素の25%を構成し、またハイパス(低優先度)のウエーブレット係数は、該ラインにおける画素の75%を構成する。
Y成分について、ローパスサブバンドはLpYで標識され、ハイパスサブバンドはHpYで標識される。同様に、U成分およびV成分についての対応するサブバンドは、それぞれ、LpU、HpU、LpV、HpVで標識される。与えられたラインについてのLpY、HpY、LpU、HpU、LpV、HpVはRAM309に保存され、これらサブバンドについての最適量子化設定を決定するために、与えられたラインについて全サブバンドへのビデオレート制御アクセスを提供する。
ウエーブレット変換が完了したら、ビデオレート制御は、それぞれのサブバンドLpY、HpY、LpU、HpU、LpV、HpVのための最適量子化レベルqLY、qHY、qLU、qHU、qLV、qHV(以下で更に詳細に説明する)を決定する。サブバンド係数および量子化レベルのそれぞれの対(例えばLpY/qLY、HpY/qHY等)が量子化器310〜315へと供給され、これは次のプロセスによって量子化された係数xを計算する。
=x>>q、
もし(x<0)および(xのqLSBsが全部は0でない)および(q<> )であれば
=x+1
上記の擬似符号は、前記量子化器がxのq最下位ビットを右シフトにより除去して、xを得ることを示している。より短いエントロピー符号を得るために、マイナス数がゼロに向かって丸められるように、xのマイナス値が増分される。
エントロピー符号化器は、殆どのサインプルがゼロの回りにクラスターされる指数分布したデータのために最適な短い符号を出力するので、量子化後に、該データは指数分布に適合するように条件付けされる。
量子化されたハイパスサブバンドHpY’、HpU’、HpV’は、既に指数的に分布されており、条件付けを必要としない。(本明細書の一部として援用する“Noise Removal via Bayesian Wavelet Coring” , E. P. Simoncelli, E. H. Adelson, Proceedings of 3rd IEEE International Conference on Image Processing”, Vol. 1, pp. 379-382, September 1996を参照されたい)。
量子化されたローパスサブバンドLpY’、LpU’、およびLpV’について、本発明の一実施形態は予測プロセス316、317、318を適用して、それぞれ指数的に分布した予測残差ResY、ResU、ResVを生じる。この予測プロセスは、以前の画素ラインのローパス区画を利用する。以下の表1は、量子化されたLPサブバンドの行nおよび行n−1を示す。
Figure 0005221557
表1
以下の入力について、出力は、行nの各量子化された項目xのためのLP残差dxからなっている:
1)量子化されたLPサブバンドの行nおよび行n−1
2)Qn,Qn−1:行nおよび行n−1についての量子化レベル
注:行1は量子化されたLPサブバンドの最初の行なので、行0およびQは定義されず、従って以下では使用されない。
3)予測モード:ライン間予測またはライン内予測
注:行nにおける全項目に対して同じ予測モードが適用される。
ライン間予測は、行n−1を使用して行nを予測することを含んでいる。(明らかに、この予測モードはn=1については無効である)。この予測プロセスにおいて、行n−1の項目は、それらが行nの項目と同じ量子化レベルを有するようにスケール変更される。以下の四つの場合を考えてみる:
場合1:n>1,m>1,Qn−1>=Q
=a<<(Qn−1−Q),
=b<<(Qn−1−Q),
場合2:n>1,m>1,Qn−1<Q
=a>>(Q−Qn−1),
=b>>(Q−Qn−1),
場合3:n>1,m=1,Qn−1>=Q
=b<<(Qn−1−Q),
場合4:n>1,m=1,Qn−1<Q
=b>>(Q−Qn−1
行n−1の項目を適切にスケール変更した後、以下の予測プロセスを使用して、Xに対応する残差dxを発生させる。
場合1および2について:
もし|a−c|<=|a−b|であれば、
dx=x−b
或いは
dx=x−c
場合3および4について:dx=x−b
ライン間予測について、行n−1は行nを予測するために使用される。この予測モードはn=1の場合には必須であり、また行n−1とは独立に行nを符号化することを望むときには、n>1の場合にも選択されてよい。ライン間予測とは異なり、ライン内予測はスケール変更を必要としない。xqに対応する残差dxは、次の二つの場合に従って誘導される:
場合5:m>1:dx=x−c
場合6:m=1:dx=x
当該予測プロセスに続いて、残差ResY,ResU,ResVおよびハイパスサブバンドHpY’,HpU’,HpV’は、今度は指数的に分布される。これは、本発明の実施形態が、エントロピー符号化器319〜324において、極めて単純で且つ効果的な指数−ゴロム符号を使用することを可能にする。(指数−ゴロム符号については、その内容を本明細書の一部として援用する「A Compression Method for Clustered Bit-Vectors”, J. Teuhola, Information Processing Letters, Vol. 7, pp. 308-311, October 1978」を参照のこと)。
先行技術のシステムは、指数−ゴロム符号を使用してウエーブレット係数ランレングスを符号化する。(「Generalized Golomb Codes and Adaptive Coding of Wavelet-Transformed Image Subbands」, A. Kiely, and M. Klimesh, IPN PR 42-154, Jet-Propulsion Laboratory, California Institute of Technology, April-June 2003, pp. 1-14, August 15, 2003を参照のこと)。対照的に、本発明の実施形態はこれら符号を使用して、ハイパスサブバンドおよびローパスサブバンドの予測残差を符号化する。単純な予測残差で指数−ゴロム符号化のためのデータを調整することは、ビデオレート制御(以下で説明する)のための効率的で且つ正確なレート推定技術を得る。
図4は、ハイパスサブバンドまたはローパスサブバンドの予測残差から得られた整数Xに関連した、指数−ゴロム符号Gを定義する方法を示すフローチャートである。最初のステップは、整数Xの符号を決定することである(ステップ401)。
X=0であれば、ゴロム符号は1に等しく設定される(G=1)(ステップ402)。プラスXの場合、BはXの2値表現であり、1ビットだけ左シフトされる(ステップ401)。マイナスXの場合、その手順は、Xの絶対値がBを生じさせ、Bの最下位ビットが設定されることを除いて同様である(ステップ404)。
Lは、Bに先立つ先導するゼロの数であり、floor(logB)によって定義される(ステップ405)。Lは、Bのビット長よりも1少ない。
従って、プラスまたはマイナスの整数Xについて、ゴロム符号Gは、L個の先導するゼロと、それに続くBからなっており、Bは2値で表現され、最上位ビットは1に設定される(ステップ406)。
指数−ゴロム符号化プロセスを例示するために、以下のリストは、X∈[−10,10]についてのゴロム符号Gを符号長と共に示している。
X=−10,G=000010101,長さ=9
X=−9,G=000010011,長さ=9
X=−8,G=000010001,長さ=9
X=−7,G=0001111,長さ=7
X=−6,G=0001101,長さ=7
X=−5,G=0001011,長さ=7
X=−4,G=0001001,長さ=7
X=−3,G=00111,長さ=5
X=−2,G=00101,長さ=5
X=−1,G=011,長さ=3
X=0,G=1,長さ=1
X=1,G=010,長さ=3
X=2,G=00100,長さ=5
X=3,G=00110,長さ=5
X=4,G=0001000,長さ=7
X=5,G=0001010,長さ=7
X=6,G=0001100,長さ=7
X=7,G=0001110,長さ=7
X=8,G=000010000,長さ=9
X=9,G=000010010,長さ=9
X=10,G=000010100,長さ=9。
本発明の一実施形態におけるゴロム符号実施は、如何なる計算も必要としないから、極めて効率的である。特に、上記実施形態ではLを簡潔に定義するためにfloor(logB)が使用されるが、もう一つの実施形態は、単純な論理を使用して最上位ビット、従ってBのビット長を見出す。
最後に図3に戻ると、本発明の実施形態は、エントロピー符号化されたResY,ResU,ResV,HpY’,HpU’,およびHpV’データを、HiPriY,HiPriU,HiPriV,LoPriY,LoPriU,LoPriVとして標識する。
図5は、本発明の一実施形態に従う一対のパケット化器を示している。別個のパケット化器501,502が、HiPriY,HiPriU,HiPriVを高優先度のパケットに、またLoPriY,LoPriU,LoPriVを低優先度のパケットに、それぞれ蓄積する。優先順位付けは、残差データを含むパケットに対して、ハイパスサブバンドを含むパケットよりも大きい保護が与えられるように行われる。一つのラインからの残差データは次のラインのライン間予測に使用されるので、残差データの喪失は、エラーを後続のラインに伝播させる可能性がある。対照的に、所定のラインについてのハイパスデータは他のラインとは独立しているので、ハイパスデータの喪失は後続のラインに影響しない。なお、パケット化器は、典型的には1以上のラインからのデータを一つのパケットに充填するものである。
図3に示したラインベースの符号化器の動作において、重要なコンポーネントはビデオレート制御(VRC)方法であり、該方法は、変化するチャンネル容量の下で、バッファのオーバーフローを伴うことなく最大のビデオ品質を得るために必要な、各ライン(qLY,qHY,qLU,qHU,qLV,qHV)についての最低限の量子化パラメータを決定する。本発明の一実施形態は、小さいバッファおよび単回パス走査を使用して、先行技術のフレームもしくはブロックに基づく技術よりも有意に低い複雑さを提供する。該先行技術は、大きなバッファおよび多重回パスで、複雑なサーチを含んだビット平面配向性のアプローチを使用する。
図6は、本発明の一実施形態に従って、バッファのオーバーフローを伴うことなく、最小歪みのためのビデオ符号化を最適化する制御出力を発生するために、VRCが使用する入力を示している。本発明の好ましい実施形態において、VRCはハードウエアにおいて実施される。タイミングの観点から、所定のラインのためのアクティブ画素が利用可能であるすこし前に、媒体アクセス制御(MAC)はmaxLsize;601およびmaxHsize;602を特定し、これらはそれぞれ、現在のラインのローパス部分およびハイパス部分についての最大符号化ラインサイズを指示する。
これらの最大ラインサイズは、物理相(PHY)によって与えられるチャンネル容量推定値から容易に計算される。maxLsizeおよびmaxHsizeを、特定の最大ラインサイズについての良好な圧縮結果を与えるBypass603,SelectYUV604,およびSelectTfm605の値を特定している表の中に示す。
所定のラインについてのアクティブ画素が利用可能になったら、それらは選択されたBypass603、SelectYUV604、およびSelectTfm605の値を用いて、符号化器を通してクロックされる。VRC600は、LpY,HpY,LpU,HpU,LpV,およびHpVサブバンドを、それらがRAM(図3に示す)の中に保存されるときにサンプリングする。同時に、VRC600は、これらサブバンドサンプルを使用して、量子化値の全ての可能な組合せについてのレートおよび歪み情報をコンパイルする。当該ラインについて、最後のアクティブ画素に続いて水平ブランキング期間が始まる少し後に(図2参照)、レートおよび歪み情報が、それぞれ高優先度および低優先度の符号化されたラインサイズ、および量子化値の全ての許容可能な組合せについての二乗誤差として利用可能である。
僅かなクロックサイクルのうちに、VRC600は、全てのqHY,qHU,qHV組合せに対応した、高優先度の符号化されたラインサイズの単回パス走査を行う。この走査の間に、それはmaxHsizeよりも小さい符号化されたラインサイズに関連した、qHY,qHU,qHV組合せを考慮する。走査が完了した後に、qHY,qHU,qHVは、最小二乗誤差を備えたこの考慮された組合せに設定される。制御値qLY,qLU,qLVは、水平ブランキング期間が終わる前に同様に決定される。
量子化器は次に、最適量子化設定qHY,qHU,qHV,qLY,qLU,およびqLVを使用して、RAMにおける完全なqHY,qHU,qHV,qLY,qLU,およびqLVサブバンドを量子化し始めることができる。このタイミングスケジュールは、次のラインのためのサブバンドサンプルの保存が必要とされる前に、充分なRAM空間がフリーであることを保証する。
以下のVRCの説明を単純化するために、qHY,qHU,qHVは組{0,2,4,6}に限定され、またqLY,qLU,qLVは組{0,1,2,3}に限定されるであろう。実験的証拠はまた、qHUが通常はqHVに等しく、qLUは通常はqLVに等しいことを明らかにしている。従って、本発明の目的のために、VRC方法は、HpU,HpVからqHUVを決定し、次いでqHU=qHV=qHUVを設定することによって単純化することができる。同様に、qLUVはLpU,LpVから得られる。最後のステップは、qLU=qLV=qLUVを設定することである。
これらの限定は優れた結果を生じ、好ましい実施形態で実施されてよい。しかし、上記の要件は、本発明に従う別の実施態様では必要とされない。
図7は、最適なローパス量子化設定を決定するために、水平ブランキング期間に実行されるプロセスを示すフローチャートである。これらの量子化設定(qLY,qLUV)は、入力maxLsize,i,j={0,1,2,3}についてのR ij,およびD ijから誘導される。サブスクリプトiは、Yについての量子化レベルを示し、jはUVについての量子化レベルを示す。Rはレートを表し、またDは歪みを表す。従って、LpYサブバンドがiビットによって量子化され、またLpU,LpVサブバンドがjビットによってそれぞれ量子化されるときに、R ijはラインのローパス部分の符号化された長さを示す。同様に、LpYサブバンドがiビットによって量子化され、またLpU,LpVサブバンドがjビットによってそれぞれ量子化されるときに、D ijはラインのローパス部分からの2乗誤差を示す。
ステップ701は、最小歪みを大きな値に初期化する。この例において、量子化レベルqLYおよびqLUVは15に設定される。ステップ702,703は、四つのqLY量子化レベルおよび四つのqLUV量子化レベルを通って循環するネステッドループを開始する。従って、qLYおよびqLUVの全16の組合せは、該ネステッドループにおいて試験される。
この16の組合せの各々について、ステップ704は、現在のラインのローパス部分の符号化された長さが、量子化レベルの特定の組み合わせのmaxLsizeよりも低いかどうかを決定する。そうでなければ、次の組合せが試験される。
該ローパス部分がmaxLsizeよりも低くなければ、ステップ705は、当該組合せに関連する歪みが、既に遭遇した最小の歪みであるかどうかを決定する。そうでなければ、次の組合せが試験される。
当該組合せに関連した歪みが既に遭遇した最小の歪みであれば、ステップ706は、該量子化組合せをqLYおよびqLUVの中に保存する。可変のminDは、現在の量子化組合せに関連したD ijを維持するように更新される。何故なら、これは今までに遭遇した最も小さい歪みだからである。ネステッドループが完了した後、qLYおよびqLUVは、最小の歪みでmaxLsize未満のローパスサブバンドを符号化する量子化組合せを保持する。
しかし、ステップ707がqLYは未だ15を保持すると決定すれば、ステップ706は実行されず、全ての量子化組み合わせについて、ステップ704は当該符号化されたローパスサブバンド長さが許容可能な最大maxLsizeよりも大きいと決定したことを暗示する。この場合、16の量子化組合せは、許容可能な最大未満のラインを符号化するためには不十分である。
なお、組み合わせqLY=qLUV=15は、予測プロセスの原因であるときには、maxLsize内のローパスサブバンドを符号化するように保証され得ないことに留意すべきである。従って、現在のラインは送信されない。その代りに、ステップ708は、復号器に現在のラインを以前のラインで置き換えさせるように、制御ビットを設定する。
図25および図26は、水平ブランキング期間の際の最適なローパス量子化設定を決定するために、図7におけるフローチャートの代りに使用されてよい別のフローチャートを示している。この別のフローチャートは、以下で説明するように、圧縮されたラインの視覚的品質を直接制御することを可能にするので、図7のプロセスを改善させる。
ステップ2501は、meetsRateMaxAcceptableMseを大きな負の値に初期化するのに対して、meetsRateMinUnAcceptableMse、meetsRateMaxAcceptableMseQy、meetsRateMinAcceptableMseQyは各々、大きな正の値に初期化される。ステップ2502は、四つのqLY量子化レベルおよび四つのqLUV量子化レベルを通って循環するネステッドループを開始する。従って、qLYおよびqLUVの全16の組合せは、このネステッドループにおいて試験される。
この16の組合せの各々について、ステップ2503は、現在のラインのローパス部分の符号化長さが、qLYおよびqLUVの特定のQLC組合せ(QLC)についてのmaxLsizeよりも大きいかどうかを決定する。もしそうであれば、現在のQLTは許容可能な最大値を越えており、または望ましいビットレート要件が現在のQLCに適合しないであろうから、次のQLTが試験される。
ローパス部分がmaxLsizeよりも大きければ、ステップ2504は、QLCに関連する歪みが許容可能なacceptableLpMseよりも大きいかどうかを決定する。もしそうであれば、我々は、現在のQLCは望ましいビットレート要件に適合するが、関連の歪みは許容できないほど大きいことを知ることになる。この場合、ステップ2505は、現在のQLCが、ビットレート要件には合致するが許容不能に大きい歪みをもたらす既に遭遇した全てのQLCのうち、最も小さい歪みを有するかどうかを試験する。もしそうであれば、ステップ2508は、現在のQLCおよびその関連の歪みを、meetsRateMinUnAcceptableMseQy、meetsRateMinUnAcceptableMseQuv、およびmeetsRateMinUnAcceptableMseに保存する。
ステップ2504が、QLCに関連した歪みは許容可能に小さいと決定したならば、ステップ2506は、現在のQLCが、ビットレート要件に合致し且つ許容可能に小さい歪みを有する全QLCのうちで最も大きい歪みを有するかどうかを試験する。もしそうであれば、ステップ2507は現在のQLCおよびその関連した歪みを、meetsRateMaxAcceptableMseQy、meetsRateMaxAcceptableMseQuv、およびmeetsRateMaxAcceptableMseに保存する。当該ステップ2504,2505,2506,2507,2508は、望ましいビットレートに合致する全てのQLC(その付随する歪みは許容可能なLpMseに近似している)が、meetsRateMinUnAcceptableMseQy、meetsRateMinUnAcceptableMseQuvに、またはmeetsRateMaxAcceptableMseQy、meetsRateMaxAcceptableMseQuvに保存されるであろうことを保証することが認められる。
ステップ2502によって開始されたネステッドループが完了し、全てのQLCが試験された後に、制御は、図26におけるステップ260へと通過する。このステップは、何れかのQLCが、許容可能な歪みを伴って当該ビットレートに合致するかどうかを決定する。もしそうであれば(meetsRateMaxAcceptableMseQy が7F…Fに等しくない)、 QLyおよびQLuvにおいて、ステップ2602はQLCに戻り、これはacceptableLpMseに最も近い歪みを伴ったビットレートに合致する。しかし、ステップ2601が許容可能な歪みを伴って当該ビットレートに適合するQLCはない(meetsRateMaxAcceptableMseQyが7F…Fに等しい)と決定すれば、ステップ2603は、何れのQLCが許容不能な大きい歪みを伴ったビットレートに合致するかをチェックする。もしそうであれば(meetsRateMinUnAcceptableMseQyは7F…Fに等しくない)、QLyおよびQLuvにおいて、ステップ2604はacceptableLpMseに最も近い歪みを伴ったビットレートに合致するQLCに戻る。最後に、ステップ2603が、許容不能に大きなMSEを伴ったビットレートに合致するQLCはない(meetsRateMinUnAcceptableMseQyは7F…Fに等しい)と決定すれば、我々は、全てのQLCがビットレート要件を超えていることを知ることになる。この場合、ステップ2605は、ステップ708で行ったと同様に、復号器が強制的に現在のラインを以前のラインで置換えるように制御ビットを設定する。
図8は、ラインのローパス部分の符号化長さ(R ij)の計算を示すフローチャートを示している。この例において、Y量子化レベルはi={0,1,2,3}であり、またUV量子化レベルはj={0,1,2,3}である。アクティブな画素はウエーブレット変換を介してクロックされ、RAMに書き込まれるので、R ijの16の値は、それらがLpY,LpU,およびLpVサブバンドにおいてそれぞれ利用可能になるときに、ウエーブレット係数w,w,wから並列に蓄積される。
ステップ801においては、全16のR ijレジスタがゼロに初期化される。ステップ802は、ローパスサブバンドLpVにおける各ウエーブレット係数wが図3におけるRAM309に書き込まれるときに、レート計算が該係数を考慮することを暗示する。
ステップ803は、全ての四つのY量子化レベルが考慮されることを述べており、またステップ804は、各Y量子化レベルについて、ゴロム符号長Rが、定義されるように、量子化、LP予測およびwに適用されるゴロム符号化プロセスによって計算されることを説明している。
ステップ805および806は、異なるUV量子化レベルに関連し且つ同じY量子化レベルに関連した四つのレートレジスタが、全てRによって更新されることを指令する。
ハードウエア実施において、ステップ804の全ての四つの例は、ステップ806の全16の例と同様に並列に実行される。
ステップ807〜811は、ステップ802〜806の対応部分と並行して、LpUに対して同様に実行される。同じく、ステップ812〜816がLpVサブバンドに対して適用される。
図9は、ラインのローパス部分(D ij)からの二乗誤差の計算を例示したフローチャートを示している。Y量子化レベルはi={0,1,2,3}であり、UV量子化レベルはj={0,1,2,3}である。D ijの16の値は、ウエーブレット係数w,w,wから、それらがLpY,LpU,およびLpVサブバンドにおいてそれぞれ利用可能になるときに並列に蓄積される。
ステップ901においては、全16のD ijレジスタがゼロに初期化される。ステップ902,903は、ローパスサブバンドLpYにおける各ウエーブレット係数wの絶対値が図3におけるRAM309に書き込まれるときに、歪み推定値が該絶対値を考慮することを暗示する。
ステップ904は、全四つのY量子化レベルが考慮されることを述べており、またステップ905は、各Y量子化レベルについて、関連のウエーブレットドメイン歪みが、Y量子化レベルにおいて切り捨てられるビットの十進数値に等しいことを説明する。しかし、目的はウエーブレットドメイン歪みではなく、画素ドメイン歪みを最小化することであるから、ステップ906は該歪みを二乗化する。何故なら、二乗化されたウエーブレット−ドメイン歪みは、略直交するウエーブレット変換について、二乗化された画素−ドメイン歪みを近似するからである(“Wavelets and Filter Banks” by G. Strang and T. Nguyen, Wellesley Cambridge Press, 1996参照)。
次に、ステップ907および908は、異なるUV量子化レベルで且つ同じY量子化レベルに関連する四つの歪みレジスタが、全てD によって更新されることを指令する。
ハードウエア実施おいて、ステップ905,906の全四つの例は、ステップ908の全16の例と同様に並列に実施される。
ステップ909〜915は、ステップ902〜908における対応部分と類似して、LpUサブバンドに対して並列に実施される。同様に、ステップ916〜922はLpVサブバンドに対して適用される。
図10は、m,n={0,2,4,6}について、入力maxLsize,R mn,D mnから最適ハイパス量子化設定qHY,qHUVを決定するために、水平ブランキング期間の間に実行されるプロセスを例示するフローチャートを示している。下付きの添え字mは、Y量子化レベルを意味し、nはUV量子化レベルを意味する。Rはレートを表し、またDは歪みを表す。従って、R mnは、HpYサブバンドがmビットによって、またHpU、HpVサブバンドがnビットによってそれぞれ量子化されるときの、ラインのハイパス部分の符号化長さを意味する。同様に、D mnは、HpYサブバンドがmビットによって、またHpU,HpVサブバンドがnビットによってそれぞれ量子化されるときに、ラインのハイパス部分からの二乗誤差を意味する。
ステップ1001〜1006は、それぞれ図7におけるステップ701〜706に類似している。しかし、このプロセスでは、ステップ707に類似したステップは必要ない。何故なら、もしmaxHsize標的に合致する量子化組合せがなければ、該プロセスはデフォルトのqHY=qHUV=15設定を使用することができ、この場合、これは明確にmaxHsize標的に合致するからである。
図7におけるプロセスとは対照的に、ハイパス符号化は予測プロセスを含まない。従って、量子化組合せqHY=qHUV=15設定は、全てのハイパスサブバンド項目をゼロにするであろう。こうして、該符号化器は単一の制御ビットで全ゼロのハイパスサブバンドを送信することによってmaxHize標的に適合し、それにより当該復号器に全ゼロハイパスサブバンドを発生させるであろうから、それはこの組合せqHY=qHUV=15を続行するために充分である。
図27および図28は、水平ブランキング期間の際の最適ハイパス量子化設定を決定するために、図10におけるフローチャートの代わりに使用してよい代替フローチャートを示している。この別のフローチャートは、圧縮されたラインの視覚的品質が直接制御されることを可能にするので、図10のプロセスを改善する。なお、この代替フローチャートは、視覚的品質の直接制御と共に、最適なローパス量子化設定を決定するための代替プロセスを特定した図25および図26のフローチャートに正確に類似している。図27および図28の代替フローチャートは、入力パラメータmaxHsizeおよびacceptableHpMseを許容し、これらはそれぞれ、圧縮されたラインのハイパス部分における最大の許容可能サイズ、および許容可能歪みを特定する。図25および図26のそれに正確に類似したステップを通って進行した後、該プロセスはqHYおよびqHUV、即ち、望ましいビットレート要件に合致し且つ許容可能な閾値acceptableHpMseに最も近接した歪みを有する量子化レベル組合せに戻る。このような量子化レベル組合せが存在しなければ(meetsRateMaxAcceptableMseQyが7F…Fに等しく、またmeetsRateMinUnAcceptableMseQyが7F…Fに等しい)、ステップ2805は、図10を説明する際に先に述べたように、qHY=qHUV=15を設定する。
図25、26,27,28の代替プロセスは、視覚的品質が直接制御されるのを可能にすることを想起されたい。特に、特定された閾値であるacceptableLpMseおよびacceptableHpMseは、必要であれば量子化レベルを上昇させるので、その結果として生じる歪みは、前記特定された閾値に接近することになる。我々は次に、これらの閾値を決定し、それらがよく理解されたピーク信号対ノイズ比(PSNR)品質測定に対応するようにする方法を説明する。
PSNR品質測定は、次のようにして定義される。
PSNR(dB)=10log10255/(MSEperPixel) (1)
(“Video Coding - An Introduction to Standard Codecs” by M. Ghanbari, IEE 1999, Pg. 19参照)、ここで、MSEperPixelは画素当たりの平均二乗誤差である。従って、
MSEperPixel=65025(PSNR/10)−10, (2)
totMSEperLine
=(numPixelsPerLine)(MSEperPixel), (3)
totMSEperLine
=(numPixelsPerLine)(65025)(PSNR/10)−10, (4)
ここで、numPixelsPerLineおよびtotMSEperLineは、それぞれ、ライン当たりの画素の数およびラインの全画素についての全体の平均二乗誤差である。式(4)から、我々は、特定のPSNR品質に関連した全体の平均二乗誤差を計算することができる。次に、もし、入力されたラインをローパスサブバンドおよびハイパスサブバンドに分配するために、概ね直交するウエーブレット変換が使用されるならば、
totMSEperLine
=acceptableLpMse+acceptableHpMse, (5)
であり、ここでのacceptableLpMseおよびacceptableHpMseは、それぞれ、ローパスサブバンドおよびハイパスサブバンドにおける許容可能な平均二乗誤差である。実験結果は、acceptableHpMseがacceptableLpMseよりも100〜1000倍大きいときに、良好な品質が得られることを示している。従って、我々は式(4)および(5)を組み合わせて、
(numPixelsPerLine)(65025)(PSNR/10)−10
=acceptableLpMse+R(acceptableLpMse), (6)
を得、ここでは、100<R<1000である。従って、特定された歪み閾値は、次のようにPSNR品質に直接関連する:
(numPixelsPerLine)(65025)(PSNR/10)−10×(R+1)−1=acceptableLpMse, (7)
(numPixelsPerLine)(65025)(PSNR/10)−10×R(R+1)−1=acceptableHpMse. (8)
最後に我々は、異なる動作モードを可能にするために、PSNR品質設定をどのように使用できるかを説明する。もし、チャンネル条件が良好であると予測され、またビデオコンテンツが容易に圧縮可能であると予測されるならば、我々は、優れた品質を生じるPSNR=40dBについて、acceptableLpMseおよびacceptableHpMseを誘導することができる。或いは、PSNR=無限大を設定することによって、我々はacceptableLpMse=acceptableHpMse=0を得る。この場合、最低の歪みを伴った量子化レベル組合せが常に選択されるので、図25,26,27,28における代替プロセスの動作は、図7および10のそれと同一である。しかし、実際の動作では、チャンネル条件が屡々劣っており、またビデオコンテンツは圧縮するのが困難である可能性がある。結局、僅かに低いPSNR、恐らくは35dBを使用して、acceptableLpMseおよびacceptableHpMseを誘導するのが賢明である。この設定を用いると、量子化設定は容易に圧縮可能なラインに対しては僅かに高いであろうが、視覚的品質は未だ良好である。何故なら、斯かるラインは、通常は低量子化レベルにおいて低い平均二乗誤差を有するからである。従って、PSNR=35dBに関連した大容量のacceptableLpMseおよびacceptableHpMseは、35dBに関連した許容可能な閾値へと歪みを増大させるために、より高い量子化を強要するであろう。図23における改善されたビデオレート制御のためのハードウエア実施の方法と組み合わされるときには、この動作モードは、次の理由で優れた特性をもたらす。容易に圧縮可能なラインに遭遇したときには、より高い量子化レベルはより小さい圧縮ラインサイズを生じる。従って、ステップ2306は、より多くの未使用バイトをレジスタunused_bytes_accumulatorに割当てる。従って、unused_bytes_accumulatorが使い尽される可能性が低くなるので、圧縮が困難な後続のラインは低量子化レベルを使用する可能性が高く、良好な視覚的品質を有するようになり易い。
図11は、ライン(R mn)のハイパス部分における符号化長さの計算を説明するフローチャートを示している。Y−量子化レベルはm={0,2,4,6}であり、UV−量子化レベルはn={0,2,4,6}である。活性な画素はウエーブレット変換を介してクロックされるので、R mnの16の値は、ウエーブレット係数w,w,wから、それらがHpY,HpU,HpVにおいてそれぞれ利用可能になるときに並列に累積される。
ステップ1101〜1116は、図8におけるステップ801〜816に類似している。主な相違は、図3において上記で説明したように、ハイパスサブバンド符号化は予測を使用しないので、ステップ1104、1109および1114が予測プロセスを含んでいないことである。
図12は、ラインのハイパス部分(D mn)からの二乗誤差の計算を説明するフローチャートを示している。Y−量子化レベルはm={0,2,4,6}であり、またUV−量子化レベルはn={0,2,4,6}である。
この例において、D mnの16の値は、ドーベシー(Daubechies)−(7,9)レベル1ウエーブレット係数w,w,wおよびレベル2ウエーブレット係数ww,ww,wwから、それらがHpY,HpU,HpVサブバンドにおいてそれぞれ利用可能になるときに並列に累積される。ドーベシー−(7,9)について、レベル2係数はレベル1係数に対して3/4で縮小される。この縮小は、画素−ドメイン二乗歪みを近似するために、ドーベシー(7,9)ウエーブレット−ドメイン二乗歪みについて使用される。LeGall(5,3)変換については、このスケール変更は不要である。
図12に詳述されたプロセスは、図9のそれに類似している。ステップ1201は全16のハイパス歪みレジスタをゼロに初期化する。ステップ1202〜1215は、ドーベシー(7,9)レベル1ウエーブレット係数w上で動作し、ステップ902〜908に類似している。ここでの相違は、ステップ1206における4倍のスケール変更である。
ww、即ち、ドーベシー(7,9)レベル2ウエーブレット係数について、ステップ1209〜1015は、ステップ1213がレベル2ウエーブレット−ドメイン歪みを3倍でスケール変更することを除き、ステップ1202〜1208に類似している。こうして、ステップ1206および1213は、レベル2係数をレベル1係数に対して3/4にスケール変更する。
ステップ1216〜1229はLpUサブバンド上で動作し、またステップ1202〜1215に類似している。同様に、ステップ1230〜1243はLpVサブバンド上で動作し、ステップ1216〜1229に類似している。
LeGall(5,4)変換ではスケール変更が不要なので、図12はまた以下の変形を使用することにより、このウエーブレット変換下での歪み推定に使用されてよい。ステップ1206および1213は、「D=(D」に変更される。ステップ1220および1227は、「D=(D」に変更される。ステップ1234および1241は、「D=(D」に変更される。
以下では、ローパスサブバンドレート消費の複雑度を低減する最適化について記述する。ローパスレート消費は、ハイパスレート消費よりも複雑である。何故なら、前者については、予測プロセスが各量子化レベルにおいて反復されるからである。
この反復の大きな影響を理解するために、上記で使用される予測プロセスについての表示は、a,b,c,およびxが、それぞれnビットによるa,b,c,およびxの量子化を表すように変更される。なお、a,b,c,およびxは、元の量子化されていない値a,b,c,およびxを表す。
当該プロセスは、
(p,q)=p−q, p,q∈{a,b,c,x}について
を定義することによって始まる。
量子化レベル(QL)nのための予測プロセスの際に、第一のステップは、d(a,c),d(a,b)を計算し、次いで下記を定義することである。
min=b, |d(a,c)|≦|d(a,b)|のとき,
=c, それ以外のとき
ここで、minは、QLnにおける最小−距離a−近隣である。
最後に、QLn残差が次のようにして定義される:
dx=d(x,min
以前は、全てのQLnについて、d(a,c),d(a,b),min、およびdx,dxを評価することによって、符号長さが再計算された。これらの評価には、各々が14ビット長以下であり得るa,b,c,およびxの間の、二つの補数(complement)加算が含まれる。
以下の最適化は、通常は、d(a,c),d(a,b),minおよびdxを評価することについての必要性のみが存在することを示している。n>0の場合、d(a,c),d(a,b),min、およびdx,dxは、これらから誘導することができる。この誘導は2ビット数による加算を含み、従ってローパスサブバンドレート消費の複雑さを低減する。
図13は、最適化されたローパスサブバンドレート消費のためのプロセスを示している。この手順は、図8に示されたものの変形であり、以下で説明するOptimizedLPrates手順に依存する。
図14のフローチャートは、0〜Nの全量子化レベルの下での、ローパスサブバンド項目xについての、残差符号長の最適化された計算のためのOptimizedLPrates手順を記載している。該プロセスは以下の入力を使用する:
・x、即ち、現在の行からのローパスサブバンド項目、
・a,b、即ち、以前のローパスサブバンド行からの、xの量子化された左上隣および上隣、
・c、即ち、現在のローパスサブバンド行からのxの量子化されない左隣、
・prevQL、即ち、以前のローパスサブバンド下におけるaおよびbを量子化するために使用される量子化レベル、
・行,列、即ち、ローパスサブバンドにおけるxの座標
・N、即ち、現在の行のための最大量子化レベル。
当該プロセスからの出力は、1〜Nの全量子化レベル下において、xに対応する残差についての符合長さを含むベクトルcodeLengthsである。最初に、ステップ1401は、xがローパスサブバンドの最初の行および最初の列にあるかどうかを決定する。もしそうであれば、全ての量子化レベルにおいて、如何なる隣からの予測も伴わずに、xの量子化レベルから残余が直接得られる。
従って、ステップ1403、1404は、QLにおける符号長を、QLだけ右シフトされたxのゴロム符合長として計算する。ゴロム符号長は、最上位ビットの位置を決定する単純な論理によって得られることを想起されたい。ステップ1402は、0〜Nの全量子化レベル下でのxの符合長を得るために、ステップ1403、1404を反復させる。
ステップ1401が、xはローパスサブバンドの最初の行および最初の列にないことを決定すれば、ステップ1406は、xが該ローパスサブバンドの最初の行にあるかどうかをチェックする。もしそうであれば、全量子化レベルにおいて、残差はxの量子化された値およびその量子化された左隣cから予測されるであろう。
ステップ1407は、図15に記載の加算手順を呼び出して−cをxに加え、d(x,c)、並びにd(x,c)からd(x,c)を誘導するために使用する計算からの桁上げを得る。
次に、ステップ1408における1411へのループは、0〜Nの全量子化レベルの下で、xに対応する残差の符合長を計算する。d(x,c)からd(x,c)を誘導するために、ステップ1409は、d(x,c)をQLだけ右シフトさせ、またステップ1410は図16におけるapplyCorrectionを呼び出して、訂正項を加えることによりd(x,c)を訂正する。
図16におけるapplyCorrection手順は以下の入力を受け取る:
・p,q、整数
・QL、即ち、量子化レベル
・d(p,q)、即ち、QLにおけるpからqの距離。この推定値は、d(p,q)を単純にQLだけ右シフトすることによって計算され、ここでのd(p,q)は、pおよび−qに加算手順(図15)を適用することによって得られると仮定される。
・桁上げ、即ち、先に説明したd(p,q)の加算手順から得られる桁上げのベクトル。
applyCorrection手順からの出力は次の通りである:
・d(p,q)、即ち、QLにおけるqからの訂正された距離推定値。この訂正された距離推定値は、pからqを差引くことにより得ることができるであろう。しかし、この引き算は二つの114ビット数の付加を含んでおり、従って、単にd(p,q)に2ビットの訂正項を加えるだけの提案された本方法よりも高価である。
・codeLen、即ち、d(p,q)のゴロム符合長。
・訂正、入力されたd(p,q)に加えられる訂正項。
最初に、ステップ1601が訂正をゼロに初期化する。量子化プロセスは、より短いエントロピー符号を得るために、一定の負の数を様々に処理することを想起されたい。この入力された推定値を訂正するために、当該プロセスは、p(ステップ1602)および−q(ステップ1604)が該量子化プロセスによって種々に処理され、従って、ステップ1603および1605が当該訂正項を更新したかどうかを決定することによって、これを達成する。
ステップ1606は、入力された推定値d(p,q)が、qおよびpを発生する際に切り捨てられる最下位ビットからの桁上げを含むかどうかを決定する。もしそうであれば、この桁上げは訂正項の中に組み込まれるべきである。何故なら、これら量子化された値は桁上げを発生するような最下位ビットを有していないであろうから、該桁上げはpからqの直接の引算には存在しないであろうからである。
最後に、ステップ1608は、入力された推定値d(p,q)に該2ビット訂正項を加えて、訂正された距離推定値を得る。この訂正された推定値のゴロム符号長さもまた計算される。
図14に戻ると、ステップ1412は、xが最初の列にあり且つ最初の行にはないかどうかを決定する。もしそうであれば、全ての量子化レベルにおいて、該残差は、xの量子化された値およびその量子化された上隣bから予測される。この場合、ステップ1413は最初にbを左シフトさせて、xからの距離を計算するために使用される十分な精度のbを得る。次いで、ステップ1413〜1418は、cの代わりにbを使用することを除き、ステップ1407〜1410に類似した動作を実施する。
ステップ1412が、xは最初の行にも最初の列にもないことを決定すれば、全ての量子化レベルにおいて、前記残差は、xの量子化された値およびその量子化された上隣bまたはその量子化された左隣cから予測される。
この場合、ステップ1419は最初に、QLにおいて、xからの距離を計算するために使用される十分に正確な値を得るために、aおよびbを左シフトする。次に、ステップ1420はgetUnquantData手順(図17参照)を使用して、量子化されていない項目x,a,b,cから計算された残差に関連したデータを集める。
ステップ1421,1423におけるループは、derivePostQuantResidual手順(ステップ1422および図18)を繰り返して、getUnquantData手順により戻されたデータからQLにおける残差についての符号長を誘導する。
derivePostQuantResidual手順(以下で説明する)によってdxの符号長の効率的な決定を可能にするために、図17に示されたgetUnquantData手順は、量子化されていないサブバンド項目x、並びにそれぞれ左上隣、上隣および左隣であるa、b、cを受け取って、以下のデータを出力する:
・d(a,b)およびd(a,c)、即ち、bおよびcのa−距離、並びにabCarriesおよびacCarries、即ち、これら計算からのそれぞれの桁上げベクトル
・d(x,b)およびd(x,c)、即ち、bおよびcのx−距離、並びにxbCarriesおよびxcCarries、即ち、これら計算からのそれぞれの桁上げベクトル
・min、即ち、{b,c}から選択されるaの最も近い隣。もしbおよびcがaから等しい距離にあれば、タイブレーカとしてcが選択される。
・tieは、b,cがaから等しい距離にあるかどうかを表す。そうであれば、1に設定する。そうでなければ0にリセットする。
・oppSidesは、bおよびcが数直線上の反対側にあるかどうかを表す。そうであれば、1に設定する。そうでなければ、oppSides=0である。
・constMinCは、全ての量子化レベルにおいて、cが最も近いa−隣であるかどうかを表す。もしそうであれば、1に設定する。そうでなければ、0にリセットする。
・diffDist0は、d(a,b)とd(a,c)の間の差であるのに対して、diffDistCarriesは、diffDist0の計算において生じる桁上げである。
最初に、ステップ1701は図15から加算手順を呼び出し、量子化されていないa−距離d(a,b)、d(a,c)、並びに関連の桁上げ abCarries、acCarriesを計算する。このステップはまた、constMinC、oppSidesおよびtieを0に初期化する。
ステップ1702は、d(a,b)およびd(a,c)の記号を調べる。もし、これらの記号が異なれば、bおよびcは該数直線の反対側にある。ステップ1703は、この情報を保存するために、oppSidesを設定する。次に、ステップ1704が加算手順を呼び出し、d(a,b)およびd(a,c)の間の差、並びにdiffDist0の計算において生じる桁上げであるdiffDistCarriesを計算する。
ステップ1705は、b、cがaの反対側にあるかどうかを決定する。もしそうであれば、ステップ1706が、b及びcがaから等しい距離にあるかどうかをチェックする。その通りであれば、ステップ1707はtieを設定し、タイブレカーcをminに割り当てる。
ステップ1706が、bおよびcはaから等距離にないと決定すれば、ステップ1708はdiffDistおよびd(a,c)の符号を調べる。これらの符号が同じであれば、cがaに最も近く、minはcに設定される(ステップ1709)。そうでなければ、bの方がaに近く、bはステップ1710においてbに割り当てられる。
ステップ1705に戻ると、b、cがaの同じ側にあれば、ステップ1715〜1719は、ステップ1708および1717に類似の論理を使用して、tieおよびminを設定する。論理における実質的な相違は、ステップ1708および1717における符号試験である。符号の極性はb、cがaの同じ側または反対側にあるかどうかに依存するので、この試験は異なっている。
ステップ1707,1709,1710,1716,1718または1719の何れかに続いて、変数min0 およびtieが適切に設定され、getUnquantData手順は、図15から加算手順を呼出すステップ1711および1714を用いて、d(x,b)およびd(x,c)、即ちbおよびcのx距離、並びにxbCarriesおよびxcCarries(それぞれがこれら計算からベクトルを運ぶ)を計算するように結論される。
もし、ステップ1712がb、cはaの同じ側にあり、また量子化前の最も近い隣がタイブレーク選択であることを決定すれば、d(x,c)は計算される必要がないことに留意すべきである。これは、右シフトによる量子化はオーダー保存マップであることを示す順序保存特性の結果である。
従って、何れかの整数x、y、および自然数nについて、
x≦y=>(x>>n)≦(y>>n)
である。
即ち、これは示された条件下では、全ての量子化レベルにおいて、a,b,cの相対的な順序は同じまま残り、またはb、cがaから等距離になるように縮退する。何れの場合にも、cはタイブレーク選択であるから、最も近いa隣はcであり、従って全ての量子化レベルにおいて同じまま残る。従って、ステップ1713は、この状態を示すためにconstMinCを設定する。
図18は、getUnquantData手順により提供されるデータに基づいて、特定されたQLにおけるローパスサブバンド項目xに対応する残差を計算するための、derivePostQuantResidual手順を示している。
以下の入力が使用される:
・d(a,b)およびd(a,c)、即ち、bおよびcのa−距離、並びにabCarriesおよびacCarries、即ち、これら計算からの桁上げベクトル;
・min、即ち、{b,c}から選ばれたaの最も近い隣。bおよびcがaから等距離にあれば、タイブレーカとしてcが選択される;
・tieは、b、cがaから等距離にあるかどうかを表す。もしそうであれば、1に設定する。そうでなければ0にリセットする;
・oppSidesは、bおよびcが数直線上でaの反対側にあるかどうかを表す。そうであれば、1に設定する。そうでなければ、oppSides=0である;
・constMinC は、cが全ての量子化レベルにおいて最も近いa−近隣のままであるかどうかを表す。そであれば1に設定する。そうでなければ0にリセットする;
・diffDist0は、d(a,b)とd(a,c)の間の距離差であるのに対して、diffDistCarriesは、diffDist0の計算において生じた桁上げである;
・QL、即ち、特定の量子化レベル。
これらの入力は、以下の出力を発生するために使用される:
・dx、即ち、特定のQLにおいてローパスサブバンド項目xに対応する残差;
・codeLength、即ち、dxのゴロム符合長。
ステップ1800は、最初に、cが全ての量子化レベルにおいて最も近いa−近隣であることが保証されるかどうかを決定するために、constMinCを調べる。もしそうであれば、QLにおいて、残差はbから予測されるであろう。これは、d(x,b)を右シフトさせ、また図16におけるapplyCorrection手順を呼び出すことによって、直接の減算を伴わずに、ステップ1805において行われる。
ステップ1800が、cは最も近いa−近隣であることが保証されないと決定すれば、ステップ1801は量子化されていないa−距離を右シフトさせ、該結果を訂正して、量子化されたデータの直接の減算を伴わずに量子化後のa−距離を得る。これら量子化後のa−距離から、該手順は最初にmin、即ち、量子化後の最も近いa−近隣を決定する。
ステップ1802が、d(a,b)およびd(a,c)の絶対値は等しいことを決定すれば、bおよびcはaから等距離にある。この場合、ステップ1803はタイブレーカーcをminに割り当てる。そうでなければ、bおよびcはaから等距離にない。
ステップ1802が、a−距離は量子化後に等しくないと決定し、またステップ1807が、bおよびcはaの同じ側にあり、量子化前の最も近いa−近隣決定の間にタイが生じなかったことを決定すれば、その量子化後の最も近いa−近隣は変化せず、従って、minがmin に割当てられる(ステップ1808)。これは、先に述べた順序保存特性のもう一つの結果である。
しかし、ステップ1807における試験が失敗すれば、二つの可能性が存在する:1)量子化前に計算されたa−距離は等しく、それらが今では等しくない、2)量子化前に、bおよびcはaの反対側にあった。最初の場合、それが量子化されていないデータからのタイブレーク選択cであると考えることはできないので、該プロセスは、最も近いa−近隣を明確に決定しなければならない。第二の場合、量子化後の最も近いa−近隣が変化しないことを保証するためには、順序保存は不十分である。従って、この場合にも、最も近いa−近隣は明確に決定される。
両方の場合において、最も近いa−近隣は、d(a,c)からd(a,b)を減算することなく、効率的に決定されてよい。これを達成するために、ステップ1809はdiffDist、即ち、量子化されていない画素から計算されたa−距離の間の差を右シフトし、d(a,c)からd(a,b)の間の差の推定値を得る。この推定値は、最初にステップ1801からの訂正因子corrAcおよびcorrAbを加えることにより、正確な値diffdistに訂正される。次いで、d(a,c)−d(a,b)から捨象された最小ビットが、diffDist計算(ステップ1810)において十分に正確な桁上げを発生していたならば、diffDist は減分される(ステップ1811)。
ステップ1810の後、diffDistは、量子化後のa−距離の間の差を含んでいる。ステップ1812がこの差はゼロであると決定すれば、b,cはaから等距離にあり、ステップ1813はタイブレーカー選択であるcをminに割り当てる。そうでなければ、b,cはaの反対側にあるから、diffDistおよびd(a,b)の符合が、bまたはcが、最も近いa−近隣であるかどうかを明らかにする(ステップ1814)。従って、ステップ1815またはステップ1816は正しい値をminに割当てる。
最後に、ステップ1803、1808、1813、1815または1816の何れかの後、結果はmin、即ち、量子化後の最も近いa−近隣ある。次いで、該プロセスは、直接の減算を使用することなく、minからの予測により、xに対応する残りを誘導することができる。
即ち、もしステップ1804がminはcであることを決定すれば、ステップ1805はd(x,b)を右シフトさせ、applyCorrection手順(図16)を呼び出して、dxおよびそのcodeLengthにおけるゴロム符号長を得る。minがbであれば、ステップ1806は、d(x,b)の代わりにd(x,c)を使用して同じ動作を行う。
図14におけるOptimizedLPratesの利点を説明するために、以下の例はそれを、{0,...,N−1}におけるnについて、各QLのために反復しなければならないであろう最適化されていない予測プロセスと比較する。
QLにおいて、m、nビットの入力ビット幅を用いた加算器を(m+n)加算器として表示すると、該最適化されていないプロセスは四つの[(N−n)+(N−n)]加算器を含んでいる。従って、{0,...,N−1}におけるnについての全体の予測プロセスは、次の各四つを含むであろう:(1+1)加算器、(2+2)加算器、(3+3)加算器、...、(N+N)加算器。
対照的に、図14においては、ステップ1403、1404、1407、1413、1416、および1417は、マルチプレクサを使用して、ステップ1412および1420に含まれる論理を共有することができる。従って、ステップ1412および1420についてのハードウエア要件を分析することで十分である。
図17におけるgetUnQuantData手順は、四つの(N+N)加算器を含んでいる(ステップ1701、1702、1704、1711、および1714)。QLにおいて、図18からのderivePostQuantResidual手順は、四つの[(N−n)+(N−n)]加算器を含んでいる(ステップ1801、1809、1805、および1806)。
従って、nが{0,...,N−1}の全てのQLについて、最適化されたプロセスは五つの(N+N)加算器および以下の各四つを含んでいる:(1+1)加算器、(2+2)加算器、(3+2)加算器、...、((N−1)+2)加算器。
両方の実施についてシリアルアドレスが使用されると仮定すれば、(N+N)加算器は(N+N)加算器よりも4N−8多いゲートを有している。N=14について、該最適化された実施は1320のゲートを含んでいるのに対して、最適化されていない実施は、2296のゲートを含んでいる。従って、最適化は、少なくとも42.51%の論理ゲートの節約を提供する。
以下では、図9および図12に描いたような、ラインのローパス部分およびハイパス部分の歪み推定値を改善する方法を記述する。これらの歪みは実際にはウエーブレット・ドメイン歪みであることを想起されたい。
ウエーブレット変換の整数実施は、ウエブレット・ドメイン歪みが実際の画素・ドメイン歪みにほぼ等しいように、ほぼ直交している。(“Optimal Quantized Lifting Coefficients for the 9/7 Wavelet” - S.Barua, K.A.Kotteri, A.E.Bell and J.E.Carletta, Proceedings of the 2004 IEEE International Conference on Acoustics, Speech and Signal Processing.を参照されたい)。しかし、逆ウエーブレット変換の整数実施により導入された丸めノイズは、図9および図12において計算されたウエーブレット−ドメイン歪み推定値の精度を低下させる。
この問題を軽減するためには、丸めノイズが、主にウエーブレット係数の最下位ビット(LSB)に影響することを認めるべきである。何故なら、これらは、整数逆ウエーブレット変換において丸められるビットだからである。従って、復号プロセスの際に、本発明の一実施形態は、逆ウエーブレット変換の直前に、逆量子化されたウエーブレット係数をNビット(N=1,2または3)左シフトさせることによって、該係数を均一にスケールする。これは、該N・LSBをゼロに設定し、整数逆ウエーブレット変換における丸めノイズを抑制し、ウエーブレット・ドメイン歪み推定値の精度を改善する。この逆ウエーブレット変換の後に、再構成された画素は、均一なスケーリングを反転させるために、Nビットだけ右シフトされるべきである。
該改善された歪み−推定精度は、{3,4,5,6,7}におけるqHpYを用いたDaubechies(7,9)およびLeGall(5,3)ウエーブレット変換について、スケーリングを伴ってまたは伴わずに、標準モバイルビデオシーケンスの最初のフレームの各ライン上でY成分歪み−推定パーセンテージを測定することによって確認される。次に、平均および最大パーセンテージエラーが全てのラインに亘って計算された。表2は、パーセンテージエラーの減少を表に纏めたものを示している。
Figure 0005221557
表2
この表に見られるように、スケーリングは、特に量子化ノイズに対して丸めノイズが優勢になる傾向がある低量子化レベルにおいて、歪み−推定エラーを減少させる。
以下の方法は、図3に示したエントロピー符号化319〜324の特性を改善するために使用される。これらのエントロピー符号化器は、データが指数関数的に分布されることを仮定する単純かつ効率的なゴロム符号を使用して実施されたことを想起されたい。データの真の分布が知られていれば、算術符号化器はゴロム符号化よりも高い圧縮比を達成する( “Elements of Information Theory” - T. Cover and J. Thomas, Wiley 1991, Pg. 104参照)。
先行技術において、算術符号化器および復号器はデータ分布の推定値を用いる。これらの推定値は、通常は均一な分布に初期化され、また徐々に実際の基礎分布(underlying distribution)に向けて収斂する。この収斂は遅いので、達成される平均圧縮比は、ゴロム符号化器からのものよりも遙かに良好とは言えない。事実、すぐれた特性を得るためには、算術符号化器は典型的には、計算的に複雑な内容に適応できる方法を用いる(例えば、“Study of final committee draft of joint video specification ITU-T Rec. H.264 | ISO/IEC 14496-10 AVC” - T. Wiegand, Dec. 2002, Awaji MPEG Meeting参照)。しかし、以下で述べる方法は、ゴロム符合に基づくエントロピー符号化器の特製を改善するために、算術符号化をどのように使用できるかを示している。
最初のラインにおいて、当該円コーダはゴロム符号化を使用して、上記で述べたようにして当該ラインを符号化する。従って、該復号器は、ゴロム符号化を使用してこのラインを複合する。ラインn(n>1)上において、該符号化器は、ラインn上でのデータの分布の推定値としてライン(n−1)の棒グラフを計算する。この推定値は、Bビットを使用するラインnの算術符号化のために使用される。
並行して、該符号化器はまた、Bビットを使用するラインnのゴロム符号化を発生する。B<Bであれば、該符号化器は制御ビットを設定し、ラインnの算術符号化を送信する。そうでなければ、該制御ビットはリセットされ、該ラインのゴロム符号化が送信される。
それに対応して、ラインnについては、該復号器が前記符号化器により送信された制御ビットを調べる。このビットが設定されれば、該符号化器は、ラインnの算術的複合のための推定分布として、ライン(n−1)の棒グラフを使用する。制御ビットがリセットされれば、該復号器はゴロム複合を適用してラインnを復旧する。
このスキームにより達成される圧縮率は、常にゴロム符号化器からのものよりも大きく、またはこれに等しい。実際に、ビデオデータは縦軸に沿って高度に相関しているので、ライン(n−1)の棒グラフは、通常はライン1の分布についての良好な推定である。この相関は水平エッジでは減少するが、これらのラインにおいて、該符号化器は自動的にゴロム符号化に切替わるであろう。
以下の最適化は、図5に示した低優先度のパケットでのビット数を低減する。これらのパケットは、図3における量子化されたハイパスチャンネルHpY、HpU、HpVをエントロピー符号化することによって得られることを想起されたい。ゴロム符号化器は、その基礎をなすデータが指数関数的に分布されるならば、ウエーブレット係数の殆どがゼロの回りにクラスターされる一方、少数のものは大きな値を有しているように、うまく動作する。これらの大きな係数は長いゴロム符号を有し、従って低い圧縮比を有するであろう。
ハイパスチャンネルHpY、HpU、HpVにおける大きなウエーブレット係数は、Y、U、Vチャンネルにおける対応する位置での垂直エッジに対応する。これらの垂直エッジはまた、それぞれのローパスチャンネルLpY、LpU、LpVにおける不連続性をもたらす。従って、ローパスチャンネルを垂直エッジ検出器で処理することによって、ハイパスチャンネルにおける垂直エッジを予測することができる(“Digital Image Processing using Matlab” by R. Gonzalez, R. Woods and S. Eddins, Prentice Hall 2004参照)。この予測された垂直エッジをハイパスチャンネルから差し引くことは、垂直エッジが抑制される残りのハイパスチャンネルを生じる。従って、残りのハイパスチャンネルはより少ない大きな値のウエーブレット係数を有し、その結果得られる低い優先度のパケットコンシューマーはより小さいビット数を有する。
これら低い優先度のパケットを復号するために、復号器は先ず、LpY、LpUおよびLpVチャンネル並びに残りのハイパスチャンネルを復号する。次に、LpY、LpUおよびLpVチャンネルが垂直エッジ検出器を用いて処理され、予測された垂直エッジが残りのハイパスチャンネルに加えられて、HpY、HpUおよびHpVを得る。次いで、この復号プロセスは先に述べたようにして継続される。
以下は、図3におけるLeGall(5,3)ウエーブレット変換の整数実施(integer implementation)のための新たな丸め方法の説明である。JPEG−2000画像圧縮標準に定義されているように、LeGall(5,3)ウエーブレット変換の更新ステップは、floor(x+0.5)を使用してxを丸めるが、ここでのxは0.25の整数倍であり、またfloor(y)は実際の数yよりも小さい最も大きな整数を返す(Equation 16 in “An Overview of the JPEG-2000 Still Image Compression Standard” by M. Rabbani and R. Joshi, Signal Processing: Image Communication 17 (2002) 3-48参照)。[−0.5,0.5)におけるxの値は、floor(x+0.5)によってゼロにマップされる。ハードウエア実施においては、xおよび0.5はそれらに4を乗じることにより整数に変換されて、x’=4xおよび2=4*0.5を得るであろう。この表現を用いて、図19は、JPEG−2000画像圧縮標準に定義されているように、floor(x’+2)が如何にして実施されるかを示している。
次に、fix(x+0.5)によって記述される丸め方法を考察する。ここでは、fix(y)がyに最も近く且つyとゼロの間にある整数を返す。(−1.5,0.5)にあるxの値は、fix(x+0.5)によってゼロにマップされる。ハードウエア実施においては、それらに4を乗じることにより、xおよび0.5が整数に変換されて、x’=4xおよび2=4*0.5を得るであろう。この表現を用いて、図20は、fix(x’+2)がどのように実施されるかを示している。逆ウエーブレット変換において、図20は、通常の逆リフティング手順により容易に反転される。
図20は、総計ならびに1のエキストラ付加に対する追加の符号チェックを有している。しかし、先に説明したように、fix(x+0.5)は(−1.5,0.5)をゼロにマップする一方、floor(x+0.5)は[−0.5,0.5)をゼロにマップする。従って、fix(x+0.5)は値{−1.25,−1.0,−0.75,−0.5,−0.25,0,0.25}をゼロにマップする一方、floor(x+0.5)は値{−0.5,−0.25,0,0.25}をゼロにマップする。図4におけるエントロピー符号化器は、最短長さ1の符合をゼロ値に割り当てることを想起されたい。従って、更新ステップ後に丸めるためにJPEG−2000のfloor(x+0.5)を使用するウエーブレット変換は、四つの値を長さ1の符合にマップするであろう。対照的に、提案されたfix(x+0.5)丸めは、七つの値を長さ1の符合にマップするであろう。fix(x+0.5)丸めは、より多くの値を長さ1の最短エントロピー符号にマップするので、fix(x+0.5)丸めと共にウエーブレット変換を使用するロスのない符号化は、JPEG−2000のfloor(x+0.5)丸めを使用するウエーブレット変換よりも大きな圧縮比を与える。
表3は、この予測を確認している。最初の欄は、fix(x+0.5)丸めを用いてロスなしで圧縮された38の異なる画像についての圧縮率を示しており、また第二の欄は、floor(x+0.5)丸めが用いられるときに得られる圧縮比を示している。全ての38の画像について、fix(x+0.5)丸めはfloor(x+0.5)丸めよりも大きな圧縮比を与える。上記で指摘したように、fix(x+0.5)丸めのための追加のハードウエアコストは、floor(x+0.5)丸めに比較して非常に小さい。fix(x+0.5)丸めから得られる利益は、デッドゾーン量子化効果に起因するものでないことが強調されるべきである(“Video Coding - An Introduction to Standard Codecs” by M. Ghanbari, IEE 1999, Pg. 26参照)。特に、デッドゾーンは、量子化器のゼロ−ビン幅(zero-bin width)を増大させるために、ロスの大きい符号化において使用される。しかし、fix(x+0.5)丸めは、ウエーブレット変換において生じ、量子化器を使用しないロスのない符号化のためにも利点を提供する。
Figure 0005221557
表3
最後の最適化は。ビデオレート制御特製を改善するための方法に関する。上記図6の説明は、maxLsize601、maxHsize602、ByPass603、SelectYuv604およびSelectTfm605が、チャンネル容量推定を使用してこれら制御信号の値を与える表の中にインデックスすることにより得られることを述べている。実際には、チャンネル−容量の推定はときには信頼性がなく、またチャンネル−容量推定をビデオレート制御のために直接使用しないことによって、頑丈さを改善することができる。
Figure 0005221557
表4
当該方法を説明するために、表4は、ビデオレート制御信号のための12の設定を示している。ローパスCRおよびハイパスCRは、ローパスサブバンドおよびハイパスサブバンドについての目標圧縮比を意味する。これらの量は、下記によるmaxLsizeおよびmaxHsizeを意味する:
maxLsize=uncompressed_lowpass_subband_size/LowpassCR、
maxHsize=uncompressed_highpass_subband_size/HighpassCR、
ここで、非圧縮サブバンドのサイズは、入力された解像度と、ローパスサブバンドサイズおよびハイパスサブバンドサイズの間の1:3の比を使用して直接計算することができる。
最悪事例のCRの欄は、ローパス圧縮比およびハイパス圧縮比、並びにYUVフォーマットを説明することにより、与えられた設定を使用して得られる最小の圧縮比を示している。これらの最悪事例のCRは、図21において、任意のピーク信号対ノイズ比(PSNR)値と共に、曲線2160上の点2161〜2172によってプロットされている。しかし、12の設定を使用して実際の画像が処理されるときには、圧縮比およびPSNRは、通常はこの最悪事例の曲線よりも高い。例えば、標準のモバイル画像上において、点2141〜2152によって表わされる該12の設定は、図21における曲線2140を生じる。同様に、該12の設定をgfx画像(点2121〜2132)およびwq画像(点2101〜2112)に適用することにより、それぞれ図21における曲線2120および2100を生じる。曲線2100は、曲線2140に関連した画像よりも圧縮するのが遙かに容易な画像に対応する;従って、曲線2100上の点は、曲線2140上の対応する点よりも高いPSNRおよびCRを有する。
以下の例は、上記のビデオレート制御方法を示しており、SXGAビデオ(1024x768@60Hz)が送信されると仮定している。このビデオフォーマットは、1132Mbpsの生ビットレートを必要とする。送信が始まるときに、MACからのスループット予測は525Mbpsである。従って、初期CRは1132/525=2.16よりも大きいはずである。
最悪事例のCRから、設定#4は、初期CRよりも大きい最小の最悪事例CRを得るために必要とされる。しかし、ビデオコンテンツがgfx画像よりも小さければ、設定#4は、図21におけるgfx曲線2120上の点2124において、当該システムを動作させる。従って、平均CRは3.5よりも大きく、これは初期CR=2.16よりも遥かに大きい。
該コンテンツは比較的圧縮が容易なので、本発明の一実施形態は、圧縮されたビデオパケットのサイズをモニターすることによってこの条件を検出することができ、またこの圧縮が、必要とされるものよりも高いことを知ることができる。この条件を検出するに際し、それがCR>3を備えたgfx曲線2120上の点2123で動作するように、設定インデックスは3にまで減少される。本発明の一実施形態は、過剰圧縮条件を反復して検出し、またCR>2.5を備えたgfx曲線2120上の点2121に達するまで、該設定インデックスを減少させ続けるであろう。gfx曲線2120上を点2124から点2121へと移動させると、CRが初期CRよりも大きいことを保証しながら、PSNRは約38dBから約57dBへと増大する。
先の説明は、圧縮されたパケットの実際のサイズ上でのフィードバックを使用して、PSNRの改善をカバーしている。本発明のもう一つの実施形態においては、変化するチャンネル条件に反応して、無線送信の前にパケットを保持する送信バッファ中でのオーバーフローを防止するために、他のフィードバックを使用することができる。
受信機が全てのパケットのアクノリッジを要求されるならば、アクノリッジされないパケットは再送信されることができる。再送信に際して、送信バッファは再送信の間に排出されないので、CRを増大させてバッファのオーバーフローを防止するために設定インデックスを増分させることができる。WiMedia・MAC仕様は、取決められた時間スロットを可能にし、その間にビデオ送信が不能にされる(“WiMedia MAC 0.99 RC1” by Multiband OFDM Alliance Special Interest Group, 2005参照)。これらの時間スロットは予め知られているから、該設定インデックスもまた、このような時間スロットの前、最中および直後に増分されることができる。ここでも、送信バッファは不能化された時間スロットの間に排出されないので、この動作はバッファのオーバーフローを防止するであろう。最後に、バッファの満杯度が予め定められた閾値、例えばバッファ容量の65%を超えるときは何時でも、該設定インデックスは、バッファのオーバーフローを防止するために増大されることができる。再送信に関するフィードバック、不能化された時間スロット、およびバッファ満杯度が存在しないときは、当該レート制御方法は先に説明した動作に戻り、該動作では初期CRよりも上で動作する間に、過剰圧縮が検出され、設定インデックスが減少されてPSNRを増大させる。
図22は、本発明の一実施形態に従う改善されたビデオレート制御のための、ファームウエア実施の方法を示すフローチャートである。この方法は、過剰圧縮を検出することによってレート制御特性を改善するために、圧縮されたパケットサイズ上でのフィードバックを使用する。
図22に描かれたプロセスは、XGAビデオを送信する例(1024x768@60Hz)を介して説明することができる。このビデオフォーマットは、1132Mbpsの生ビットレートを必要とする。送信が始まると、該システムは、MACから525Mbpsのスループット予測を得る。従って、初期CRは1132/525=2.16よりも大きいはずである(ステップ2201)。最悪事例のCRから、設定#4が、初期CRよりも大きい最小の最悪事例のCRを得るために選択される(ステップ2202)。次のビデオパケットは、設定#4でのレート制御動作を用いて発生される(ステップ2203)。
ビデオコンテンツがgfx画像と同様であれば、設定#4は、当該システムに対して、図21におけるgfx曲線2120上の点2124において動作を生じさせる。従って、平均CRは3.5よりも大きいであろうし、これは初期CR=2.16よりも遥かに大きい。該コンテンツは比較的圧縮し易いので、圧縮されたビデオパケットのサイズをモニターすることによって(ステップ2204)、この条件を検出し、該圧縮が、必要とされるよりも高いことを確認することができる。このような条件を検出する際に、該システムは、CR>3を備えたgfx曲線2120上の点2123で動作するために、設定インデックスを3まで減少させる(ステップ2206)。
該プロセスは、過剰圧縮条件を反復して検出し、また図21におけるCR>2.5を備えたgfx曲線2120上の点2121に達するまで、該設定インデックスを減少させ続けるであろう(ステップ2208)。gfx曲線2120上を点2124から点2121へと移動させると、CRが初期CRyよりも大きいことを保証しながら、PSNRは約38dBから約57dBへと増大する。
図23は、本発明の一実施形態に従う改良されたビデオレート制御のための、別のハードウエア実施の方法を示すフローチャートである。この方法は、圧縮されたラインサイズ上でのフィードバックを使用して、過剰圧縮を検出する。該ハードウエア実施は、より迅速な応答を保証し、従って上記で述べたファームウエア実施よりも良好な特性を保証する。該プロセスは、レジスタunused_bytes_accumulatorをクリアすることによって開始される(ステップ2301)。XGAの例を再度参照すると、525Mbpsチャンネル上での送信を維持するために、目的とするCRは2.16であるべきである(ステップ2302)。従って、理想的に言えば、各ラインは1024*3/2.16=1423バイトの最大値を占めるべきである。
送信が始まるときに、該システムは、最悪事例のCR=2.4を保証する設定#4を選択する(ステップ2303)。この設定は、4:2:2データ、ローパスCR=1およびハイパスCR=2でデオレート制御を動作させ、これは次のことを意味する:
maxLsize=1024*3*0.25/1.5=512バイト
maxHsize=1024*3*0.75*0.5/1.5=768バイト
第一のラインは特定のmaxLsizeおよびmaxHsizeレート制御パラメータを使用して符号化され(ステップ2304)、その後、LsizeおよびHsizeは、圧縮されたラインのレート制御パラメータにおけるローパスサブバンドおよびハイパスサブバンドの実際のサイズを表す(ステップ2305)。現在の例において、Lsize=300バイト、およびHsize=400バイトを仮定すると:
(maxLsize+maxHsize)−(Lsize+Hsize)
=1280−700=580バイト
である。
これは、圧縮されたラインが、最大の可能なサイズに580バイトだけ達しないことを示している。換言すれば、該ラインは、設定#4に関連した1280バイトの最大値を犯すことなく、それが実際有使用したものよりも580バイトだけ多く使用できたであろう。従って、ステップ2306において、該システムは、それらを後続のラインによって再利用できるように、これら580の未使用バイトをレジスタのunused_bytes_accumulatorに割り当てる。ステップ2307は、図24において定義されたクリップ関数を使用して、unused_bytes_accumulatorを32Kバイトにクリップする。
次に、該システムは、Δ=256バイト(ステップ2308)、およびΔ=368バイト(ステップ2309)を設定する。結局、ステップ2304において次のラインが符号化されるときに、ビデオレート制御は下記を使用することを可能にするであろう
maxLsize+Δ=512+256=768バイト、(ローパスサブバンドについて):および
maxHsize+Δ=768+368=1136バイト、(ハイパスサブバンドについて)。
このラインのための有効な最大ラインサイズは、先のラインからの未使用バイトの一部を再生使用することによって増大されるので、ビデオレート制御は、このラインについて厳格さの低い量子化設定を選択してよい。これは、より良好な視覚的品質をもたらす。
未使用のバイトが2.4よりも大きいCRを備えたラインから再生されて、525Mbps未満の瞬間的帯域幅要件をもたらすので、525Mbpsのスループット制限は経時的に破られない。これら未使用のバイトは、より低いCRで圧縮され得る後続のラインに割り当てられ、525Mbpsよりも大きい瞬間帯域幅をもたらす。しかし、該システムは未使用のバイトを再生使用し、これはラインを許容可能な最大サイズ、即ち、maxLsize+maxHsize=1280バイトよりも小さくするので、平均帯域幅要件は525Mbps未満であるように保証される。(1280バイトは、525Mbpsのスループットを保証する1423バイト制限よりも小さいことを想起されたい)。
実際には、高優先度および低優先度のパケットが送信の前に送信バッファに配置されるので、幾つかのライン上で瞬間的に525Mbspの帯域幅制限を超えることは深刻な問題ではない。パケットが到着する平均レートが525Mpbsを超えないと仮定すれば、十分に大きいバッファは、オーバーフローを伴わずに525Mbpsの一定のレートで排出されてよい。
先の説明は、十分に大きい送信バッファが利用可能であれば、瞬間的な大きな帯域幅要件はバッファオーバーフローを生じないことを示している。大きなバッファに関連したコストを低減するために、本発明の一実施形態は以下の技術を使用し、低コストの中程度のサイズのバッファを用いてバッファのオーバーフローを防止する。
1)設定#4はCR=2.4で動作し、これは1132/2.4=472Mbpsのスループットに対応する。従って、再生されるバイトは平均472Mbpsの帯域幅要件を生じるであろうが、瞬間的にはそれらは472Mbpsを越えるかもしれない。しかし、瞬間の帯域幅要件が持続的時間に亘って525Mbpsを超え、バッファのオーバーフローを生じることは全くありそうにない。
2)ステップ2307は、図24に定義されたクリップ関数を使用して、未使用_バイト_アキュムレータを32Kバイトにクリップする。このレジスタを32Kバイトに飽和させることにより、本発明の実施形態は、未使用バイトを再生できる連続するラインの数に上限を定める。従って、525Mbpsを越える瞬間的な帯域幅要件を備えた連続的なラインの数には上限が定められる。これは、バッファがオーバーフローする可能性を低減する。
3)ステップ2308および2309は、ΔおよびΔをそれぞれ256バイトおよび768バイトにクリップする。この高い方は、最大の圧縮ラインサイズを、maxLsize+256+maxHsize+768=2304に制限し、これは2304*8*768*60=849Mbpsの瞬間宛基帯域幅要件に対応する。瞬間的帯域幅要件は、それが525Mbpsを越えるときは何時でも上限が849Mbpsに定められるので、バッファのオーバーフローを生じる可能性は低い。
上記で述べたファームウエアおよびハードウエア法は、圧縮されたパケットもしくはラインのサイズに関するフィードバックに基づいて、視覚的品質の改善をカバーする。しかし、変化するチャンネル条件に反応して、無線通信に先立ってパケットを保持する送信バッファにおけるオーバーフローを防止するために、他のフィードバックを使用することができる。
受信機が全てのパケットにアクノリッジすることを要求されるなら、アクノリッジされないパケットは再送信することができる。送信バッファは再送信の間は排出されないので、CRを増加してバッファのオーバーフローを防止するように、再送信の際に設定インデックスを増分することができる。
WiMedia・MAC明細(Multiband OFDM Alliance Special Interest Group, 2005による“WiMedia MAC 0.99 RC1”参照)は、ビデオ送信が不能化される取決められた時間スロットを可能にする。これらの時間スロットは予め知られているので、該設定インデックスは、このような時間スロットの前、最中および直後に増分されることができる。ここでも再度、送信バッファは不能化された時間スロットの間に排出されないので、この動作はバッファのオーバーフローを防止するであろう。
最後に、バッファの充分度が、バッファ容量の65%のように予め定められた閾値を超えるときは何時でも、バッファのオーバーフローを防止するために、設定インデックスを増分することができる。再送信、不能化された時間スロットおよびバッファの満杯度に関するフィードバックがないときは、レート制御法は先に記載した動作に戻り、ここでは上記初期CRを動作させる間に過剰圧縮が検出され、設定インデックスが減少されてPSNRを増大させる。本開示の実施形態を詳細に説明してきたが、当業者は、本開示の精神および範囲を逸脱することなく種々の変更、置換および変更をなし得ることを理解すべきである。
以下に本願の出願時の特許請求の範囲に記載の発明を付記する。
[1]ビデオレート制御のための方法であって:
ビデオフレームの第一のアクアティブラインを受信するステップと;
前記第一のアクティブラインに関連したアクティブビデオデータのための複数の量子化パラメータを決定するステップと;
前記複数の量子化パラメータを符号化システムに提供し、ここでの複数の量子化パラメータは、前記第一のアクティブラインのビデオレートが最大ビデオレートを超えないように、前記第一のアクティブラインの少なくとも一部を符号化するために使用されるステップと;
前記ビデオフレームの第二のアクティブラインを受信するステップと;
を含んでなり、
前記第一のアクティブラインに関連したアクティブビデオデータのための複数の量子化パラメータを決定するステップは、前記ビデオフレームの第二のアクティブラインの水平ブランキング部分の間に少なくとも部分的に行われる方法。
[2]請求項1に記載の方法であって、前記第一のアクティブラインを受信することは前記第一のアクティブラインの、ローパス部分を受信すること、および前記第一のアクティブラインのハイパス部分を受信することを含む方法。
[3]請求項2に記載の方法であって、前記第一のアクティブラインに関連したアクティブビデオデータのための複数の量子化パラメータを決定することは、前記第一のアクティブラインのローパス部分のための少なくとも一つのローパス量子化パラメータを決定すること、および前記第一のアクティブラインのハイパス部分のための少なくとも一つのハイパス量子化パラメータを決定することを含む方法。
[4]請求項3に記載の方法であって、更に、前記第一のアクティブラインの前記ハイパス部分のためのハイパス最大符号化ラインサイズを受信すること、および前記第一のアクティブラインの前記ローパス部分のためのローパス最大符号化ラインサイズを受信することを含んでなり、
前記第一のアクティブラインのローパス部分のための前記ローパス量子化パラメータを決定することは、前記第一のアクティブラインのローパス部分のローパス符号化長さが、前記ローパス最大符号化ラインサイズよりも小さいかどうかを比較することを含み、
前記第一のアクティブラインのハイパス部分のための前記ハイパス量子化パラメータを決定することは、前記第一のアクティブラインのハイパス部分のハイパス符号化長さが、前記ハイパス最大化符号化ラインサイズよりも小さいかどうかを比較することを含む方法。
[5]請求項1に記載の方法であって:前記複数の最適量子化パラメータを決定することは、前記第一のアクティブラインのためのビットレート要件を受信することと;
初期スループット推定値を受信することと;
初期圧縮比を決定することと;
前記初期圧縮比よりも大きい第二の圧縮比を決定することと;
過剰圧縮を決定すること
を含む方法。
[6]請求項5に記載の方法であって:更に、
圧縮されたビデオパケットサイズを受信することを含んでなり;
前記過剰圧縮を検出することは、前記受信した圧縮されたビデオパケットサイズをモニターすることを含む方法。
[7]請求項5に記載の方法であって:更に、
圧縮されたラインサイズを受信することを含んでなり;
前記過剰圧縮を検出することは、前記圧縮されたラインサイズをモニターすることを含む方法。
[8]請求項5に記載の方法であって:過剰圧縮を検出することは、
実際の符号化されたローパスラインサイズを決定することと;
実際の符号化されたハイパスラインサイズを決定することと;
前記実際の符号化されたローパスラインサイズを、先に符号化されたローパスラインサイズと比較することと;
前記実際の符号化されたハイパスラインサイズを、先に符号化されたハイパスラインサイズと比較すること
を含む方法。
[9]請求項8に記載の方法であって、前記先に符号化されたローパスラインサイズは最大符号化ローパスラインサイズを含み、また前記先に符号化されたハイパスラインサイズは最大符号化ハイパスラインサイズを含む方法。
[10]請求項2に記載の方法であって:更に、
前記第一のアクティブラインのローパス部分に関連したローパス画素ドメイン歪みを予測することと;
前記第一のアクティブラインのハイパス部分に関連したハイパス画素ドメイン歪みを予測すること
を含んでなる方法。
[11]請求項2に記載の方法であって:更に、
ハイパス変換係数を提供することと;
ローパス変換係数を提供すること
を含んでなる方法。
[12]請求項2に記載の方法であって:更に、少なくとも一つの量子化レベルについてのデータを予想することにより、前記第一のアクティブラインのローパス部分のローパス符号化長さを決定することを含んでなる方法。
[13]請求項12に記載の方法であって、前記少なくとも一つの量子化レベルについてのデータを予想することは、前記第一のアクティブラインのローパス部分の近隣に基づいて予想することを含む方法。
[14]ラインに基づくビデオ圧縮のための方法であって:
ビデオフレームのラインに基づいて、ビデオフォーマットを選択することと;
前記ビデオフレームのラインに基づいて、ウエーブレット変換を選択することと;
前記選択されたウエーブレット変換に基づいて前記ビデオフレームのラインのローパス部分およびハイパス部分を提供することと;
前記ビデオフレームのラインにおける前記ローパス部分および前記ハイパス部分のための量子化パラメータを受信することと;
前記量子化パラメータを、前記ビデオフレームのラインにおける前記ローパス部分および前記ハイパス部分に適用すること
を含んでなる方法。
[15]請求項14に記載の方法であって:更に、
前記ローパス部分を、指数分布に適合させるように調節することと;
前記発生されたローパス部分およびハイパス部分を符号化すること
を含んでなる方法。
[16]請求項14に記載の方法であって、前記ビデオフォーマットはRGBフォーマットおよびYUVフォーマットのうちの一つを含む方法。
[17]請求項16に記載の方法であって、前記YUVフォーマットは、4:4:4フォーマット、4:2:2フォーマット、および4:1:1フォーマットのうちの一つを含む方法。
[18]請求項14に記載の方法であって、前記ウエーブレット変換を選択することは、ダウベシーズ(7,9)ウエーブレット変換およびラガル(5,3)ウエーブレット変換のうちの一つを選択することを含む方法。
[19]請求項14に記載の方法であって、前記ウエーブレット変換を選択することは、予め定められた画像圧縮標準を使用する前記ウエーブレット変換を含む方法。
[20]請求項19に記載の方法であって、前記ウエーブレット変換を選択することは、前記予め定められた画像圧縮標準を使用するウエーブレット変換よりも大きな圧縮比を提供するために、丸め方法を使用するウエーブレット変換を選択することを含む方法。
[21]請求項15に記載の方法であって、前記符号化は、前記ビデオフォーマットのラインに基づいて、算術的符号化およびゴロム符号化の間で選択的にスイッチする符号化器を使用することを含む方法。
[22]請求項21に記載の方法であって、前記符号化は、算術を伴わずに実施されるゴロム符号化器を使用することを含む方法。
[23]請求項14に記載の方法であって:更に、
前記ハイパス部分における垂直エッジを予想することと;
前記ハイパス部分において前記垂直エッジを抑制することにより、残りのハイパス部分を得ること
を含んでなり、
前記符号化は、前記残りのハイパス部分を符号化することを含む方法。
[24]請求項23に記載の方法であって、前記ハイパス部分における垂直エッジを予想することは、垂直エッジ検出器を用いて前記ローパス部分を処理することを含み、
前記ハイパス部分において前記垂直エッジを抑制することは、前記予想された垂直ヘッジを前記ハイパス部分から差し引くことを含んでなる方法。
[25]請求項14に記載の方法であって:更に、
少なくとも一つのハイパスウエーブレット係数を発生させることと;
少なくとも一つのローパスウエーブレット残差を発生させること
を含んでなる方法。
[26]請求項25に記載の方法であって:更に、
少なくとも一つのハイパスウエーブレット係数を符号化することと;
少なくとも一つのローパスウエーブレット残差を符号化すること
を含んでなる方法。
[27]請求項26に記載の方法であって、前記少なくとも一つのハイパスウエーブレット係数を符号化することが、ゴロム符号化を含む方法。
[28]請求項26に記載の方法であって、前記少なくとも一つのローパスウエーブレット残差を符号化することが、ゴロム符号化を含む方法。

Claims (12)

  1. ビデオレート制御のための方法であって、
    ビデオフレームの第一のアクティブラインを受信するステップと、
    前記第一のアクティブラインに関連したアクティブビデオデータのための複数の量子化パラメータを決定するステップと、
    前記複数の量子化パラメータを符号化システムに提供するステップ、ここで複数の量子化パラメータは、符号化された前記第一のアクティブラインのビデオレートが最大ビデオレートを超えないように、前記第一のアクティブラインの少なくとも一部を符号化するために使用される、と、
    前記ビデオフレームの第二のアクティブラインを受信するステップと、
    を含んでなり、
    前記第一のアクティブラインに関連したアクティブビデオデータのための複数の量子化パラメータを決定するステップは、前記ビデオフレームの第二のアクティブラインの水平ブランキング期間に行われ、
    前記複数の量子化パラメータを決定するステップは、
    前記第一のアクティブラインのためのビットレート要件を受信することと、
    初期スループット推定値を受信することと、
    初期圧縮比を決定することと、
    前記初期圧縮比よりも大きい第二の圧縮比を決定することと、
    過剰圧縮を検出することと、
    を含み、
    前記過剰圧縮を検出することは、
    実際の符号化されたローパスラインサイズを決定すること、前記符号化されたローパスラインサイズは最大符号化ローパスラインサイズを含む、と、
    実際の符号化されたハイパスラインサイズを決定すること、前記符号化されたハイパスラインサイズは最大符号化ハイパスラインサイズを含む、とを含み、
    前記過剰圧縮の検出は、前記実際の符号化されたローパスラインサイズと前記最大符号化ローパスラインサイズとの比較の結果、および前記実際の符号化されたハイパスラインサイズと前記最大符号化ハイパスラインサイズとの比較の結果に基づいて行われる、
    方法。
  2. 請求項1に記載の方法であって、前記第一のアクティブラインを受信することは前記第一のアクティブラインの、ローパス部分を受信すること、および前記第一のアクティブラインのハイパス部分を受信することを含む方法。
  3. 請求項2に記載の方法であって、前記第一のアクティブラインに関連したアクティブビデオデータのための複数の量子化パラメータを決定することは、前記第一のアクティブラインのローパス部分のための少なくとも一つのローパス量子化パラメータを決定すること、および前記第一のアクティブラインのハイパス部分のための少なくとも一つのハイパス量子化パラメータを決定することを含む方法。
  4. 請求項3に記載の方法であって、更に、前記第一のアクティブラインの前記ハイパス部分のためのハイパス最大符号化ラインサイズを受信すること、および前記第一のアクティブラインの前記ローパス部分のためのローパス最大符号化ラインサイズを受信することを含んでなり、
    前記第一のアクティブラインのローパス部分のための前記ローパス量子化パラメータを決定することは、前記第一のアクティブラインのローパス部分のローパス符号化長さが、前記ローパス最大符号化ラインサイズよりも小さいかどうかを比較することを含み、
    前記第一のアクティブラインのハイパス部分のための前記ハイパス量子化パラメータを決定することは、前記第一のアクティブラインのハイパス部分のハイパス符号化長さが、前記ハイパス最大化符号化ラインサイズよりも小さいかどうかを比較することを含む方法。
  5. 請求項に記載の方法であって更に、
    圧縮されたビデオパケットサイズを受信することを含んでなり
    前記過剰圧縮を検出することは、前記受信した圧縮されたビデオパケットサイズをモニターすることを含む方法。
  6. 請求項に記載の方法であって更に、
    圧縮されたラインサイズを受信することを含んでなり
    前記過剰圧縮を検出することは、前記圧縮されたラインサイズをモニターすることを含む方法。
  7. 請求項1に記載の方法であって、前記過剰圧縮を検出することは、
    前記実際の符号化されたローパスラインサイズを、先に符号化されたローパスラインサイズと比較することと、
    前記実際の符号化されたハイパスラインサイズを、先に符号化されたハイパスラインサイズと比較することと、
    を含む方法。
  8. 請求項7に記載の方法であって、前記先に符号化されたローパスラインサイズは最大符号化ローパスラインサイズを含み、また前記先に符号化されたハイパスラインサイズは最大符号化ハイパスラインサイズを含む、
    方法。
  9. 請求項2に記載の方法であって更に、
    前記第一のアクティブラインのローパス部分に関連したローパス画素ドメイン歪みを予測することと
    前記第一のアクティブラインのハイパス部分に関連したハイパス画素ドメイン歪みを予測すること
    を含んでなる方法。
  10. 請求項2に記載の方法であって更に、
    ハイパス変換係数を提供することと
    ローパス変換係数を提供すること
    を含んでなる方法。
  11. 請求項2に記載の方法であって:更に、符号化すべき第一のアクティブラインの画素の少なくとも一つの量子化レベルを表すデータを予想することにより、前記第一のアクティブラインのローパス部分のローパス符号化長さを決定することを含んでなる方法。
  12. 請求項11に記載の方法であって、前記少なくとも一つの量子化レベルを表すデータを予想することは、前記第一のアクティブラインのローパス部分の前記画素の近隣の画素の符号化データに基づいて予想することを含む方法。」
JP2009540501A 2006-12-07 2007-12-07 ラインに基づくビデオレート制御および圧縮 Expired - Fee Related JP5221557B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US86907106P 2006-12-07 2006-12-07
US60/869,071 2006-12-07
PCT/US2007/086811 WO2008070843A2 (en) 2006-12-07 2007-12-07 Line-based video rate control and compression

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011247643A Division JP5425865B2 (ja) 2006-12-07 2011-11-11 ラインに基づくビデオレート制御および圧縮

Publications (2)

Publication Number Publication Date
JP2010512692A JP2010512692A (ja) 2010-04-22
JP5221557B2 true JP5221557B2 (ja) 2013-06-26

Family

ID=39493099

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009540501A Expired - Fee Related JP5221557B2 (ja) 2006-12-07 2007-12-07 ラインに基づくビデオレート制御および圧縮
JP2011247643A Expired - Fee Related JP5425865B2 (ja) 2006-12-07 2011-11-11 ラインに基づくビデオレート制御および圧縮

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011247643A Expired - Fee Related JP5425865B2 (ja) 2006-12-07 2011-11-11 ラインに基づくビデオレート制御および圧縮

Country Status (6)

Country Link
US (2) US8165203B2 (ja)
EP (1) EP2103147A4 (ja)
JP (2) JP5221557B2 (ja)
KR (1) KR101065520B1 (ja)
CN (1) CN101755464B (ja)
WO (1) WO2008070843A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8355434B2 (en) * 2005-01-10 2013-01-15 Qualcomm Incorporated Digital video line-by-line dynamic rate adaptation
US8285037B2 (en) * 2005-02-28 2012-10-09 Nxp B.V. Compression format and apparatus using the new compression format for temporarily storing image data in a frame memory
US8165203B2 (en) 2006-12-07 2012-04-24 Qualcomm Incorporated Line-based video rate control
US7825835B2 (en) * 2008-12-15 2010-11-02 Nvidia Corporation Method and system for encoded video compression
US8798140B2 (en) * 2009-01-27 2014-08-05 Nvidia Corporation Encoding video frames in a video encoder
US8259816B2 (en) * 2009-03-12 2012-09-04 MIST Innovations, Inc. System and method for streaming video to a mobile device
US8767820B2 (en) * 2009-11-11 2014-07-01 Dell Products, Lp Adaptive display compression for wireless transmission of rendered pixel data
JP5665508B2 (ja) * 2010-11-30 2015-02-04 キヤノン株式会社 画像処理装置及び方法、並びにプログラム及び記憶媒体
JP5101728B1 (ja) * 2011-05-12 2012-12-19 シャープ株式会社 出力システムおよび表示システム
KR101718954B1 (ko) * 2011-10-17 2017-03-22 주식회사 케이티 영상 부호화/복호화 방법 및 그 장치
KR20150054554A (ko) * 2013-11-12 2015-05-20 삼성전자주식회사 영상 처리장치 및 방법
EP3185554A1 (en) * 2015-12-21 2017-06-28 Alcatel Lucent Devices for video encoding and reconstruction with adaptive quantization
CN114710677B (zh) * 2022-01-12 2023-07-18 华芯算科学技术(苏州)有限公司 图像压缩方法、装置、存储介质及终端

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3251002B2 (ja) 1989-08-15 2002-01-28 ソニー株式会社 画像データの受信装置及び方法
US5193003A (en) 1989-08-15 1993-03-09 Sony Corporation Apparatus for decoding digital video data with small memory requirement
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US6366614B1 (en) 1996-10-11 2002-04-02 Qualcomm Inc. Adaptive rate control for digital video compression
US6157746A (en) * 1997-02-12 2000-12-05 Sarnoff Corporation Apparatus and method for encoding wavelet trees generated by a wavelet-based coding method
JPH10336682A (ja) * 1997-04-02 1998-12-18 Canon Inc 符号化装置及び方法及び方法を記憶した記憶媒体
EP0899960A3 (en) * 1997-08-29 1999-06-09 Canon Kabushiki Kaisha Digital signal coding and decoding
US6256350B1 (en) * 1998-03-13 2001-07-03 Conexant Systems, Inc. Method and apparatus for low cost line-based video compression of digital video stream data
US6215907B1 (en) * 1998-06-26 2001-04-10 Fisher-Rosemont Systems, Inc. Recursive on-line wavelet data compression technique for use in data storage and communications
KR100327368B1 (ko) * 1998-07-10 2002-03-06 구자홍 영상 부호화 및 복호화 방법
JP2000115782A (ja) * 1998-10-06 2000-04-21 Canon Inc 符号化装置及び方法及び記憶媒体
KR100295228B1 (ko) 1998-10-13 2001-07-12 윤종용 통합테스트시스템과그를이용한통합테스트공정수행방법
TW444495B (en) * 1998-10-15 2001-07-01 Winbond Electronics Corp Digital video process method and multi-purpose data process method
EP1188244B1 (en) * 1999-03-26 2004-11-10 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
US6973127B1 (en) 1999-12-23 2005-12-06 Xvd Corporation Apparatus and method for memory saving wavelet based video coding
WO2002023475A2 (en) * 2000-09-12 2002-03-21 Koninklijke Philips Electronics N.V. Video coding method
JP4372327B2 (ja) * 2000-09-18 2009-11-25 株式会社メガチップス 画像符号化装置および画像符号化方法並びに復号化装置および復号化方法
US6891974B1 (en) * 2001-01-08 2005-05-10 Microsoft Corporation System and method providing improved data compression via wavelet coefficient encoding
US7062445B2 (en) * 2001-01-26 2006-06-13 Microsoft Corporation Quantization loop with heuristic approach
EP1604528A2 (en) 2002-09-17 2005-12-14 Ceperkovic, Vladimir Fast codec with high compression ratio and minimum required resources
US7912291B2 (en) * 2003-11-10 2011-03-22 Ricoh Co., Ltd Features for retrieval and similarity matching of documents from the JPEG 2000-compressed domain
KR100664932B1 (ko) 2004-10-21 2007-01-04 삼성전자주식회사 비디오 코딩 방법 및 장치
US7477789B2 (en) * 2004-11-24 2009-01-13 Pixart Imaging Inc. Video image capturing and displaying method and related system
US8355434B2 (en) 2005-01-10 2013-01-15 Qualcomm Incorporated Digital video line-by-line dynamic rate adaptation
JP4822396B2 (ja) * 2005-03-29 2011-11-24 株式会社メガチップス 画像強調装置
US8165203B2 (en) 2006-12-07 2012-04-24 Qualcomm Incorporated Line-based video rate control

Also Published As

Publication number Publication date
JP5425865B2 (ja) 2014-02-26
EP2103147A2 (en) 2009-09-23
KR20090096516A (ko) 2009-09-10
WO2008070843A9 (en) 2008-08-28
WO2008070843A2 (en) 2008-06-12
EP2103147A4 (en) 2011-01-19
CN101755464B (zh) 2012-07-11
CN101755464A (zh) 2010-06-23
US8165203B2 (en) 2012-04-24
WO2008070843A3 (en) 2008-10-09
KR101065520B1 (ko) 2011-09-19
US20080137738A1 (en) 2008-06-12
US20080137737A1 (en) 2008-06-12
JP2010512692A (ja) 2010-04-22
US8208554B2 (en) 2012-06-26
JP2012085313A (ja) 2012-04-26

Similar Documents

Publication Publication Date Title
JP5221557B2 (ja) ラインに基づくビデオレート制御および圧縮
EP3284253B1 (en) Rate-constrained fallback mode for display stream compression
US8891615B2 (en) Quantization based on rate-distortion modeling for CABAC coders
RU2498523C2 (ru) Быстрое принятие решения о дельте параметра квантования макроблока
US9008171B2 (en) Two pass quantization for CABAC coders
US7653129B2 (en) Method and apparatus for providing intra coding frame bit budget
EP3284257B1 (en) Quantization parameter (qp) calculation for display stream compression (dsc) based on complexity measure
JP6449329B2 (ja) ディスプレイストリーム圧縮(dsc)において量子化パラメータ(qp)を選択するためのシステムおよび方法
US20050036549A1 (en) Method and apparatus for selection of scanning mode in dual pass encoding
JP6464192B2 (ja) ディスプレイストリーム圧縮(dsc)のための平坦度検出のためのシステムおよび方法
US20090103606A1 (en) Progressive Distributed Video Coding
US20050036548A1 (en) Method and apparatus for selection of bit budget adjustment in dual pass encoding
JP6401295B2 (ja) ディスプレイストリーム圧縮(dsc)用のパターンモードでのコーディングのためのシステムおよび方法
WO2003092302A1 (en) Moving image transferring system, moving image encoding apparatus, moving image decoding apparatus, and moving image transferring program
Li et al. Adaptive rate control for motion JPEG2000
KR100923029B1 (ko) 비디오 프레임의 재압축 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110719

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111018

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120822

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120918

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130307

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees