JP2006521771A - ハイブリッドレートコントローラーを備えるデジタルストリームトランスコーダー - Google Patents

ハイブリッドレートコントローラーを備えるデジタルストリームトランスコーダー Download PDF

Info

Publication number
JP2006521771A
JP2006521771A JP2006509340A JP2006509340A JP2006521771A JP 2006521771 A JP2006521771 A JP 2006521771A JP 2006509340 A JP2006509340 A JP 2006509340A JP 2006509340 A JP2006509340 A JP 2006509340A JP 2006521771 A JP2006521771 A JP 2006521771A
Authority
JP
Japan
Prior art keywords
predetermined portion
frame
level
picture
determining
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.)
Pending
Application number
JP2006509340A
Other languages
English (en)
Inventor
ジョエル スコーエンブルーム,
Original Assignee
サイエンティフィック−アトランタ, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/397,658 external-priority patent/US7236521B2/en
Priority claimed from US10/635,406 external-priority patent/US7295610B2/en
Application filed by サイエンティフィック−アトランタ, インコーポレイテッド filed Critical サイエンティフィック−アトランタ, インコーポレイテッド
Publication of JP2006521771A publication Critical patent/JP2006521771A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/547Motion estimation performed in a transform domain
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Abstract

ビットストリームで運ばれた圧縮フレームのストリームを受信するトランスコーダにおけるレートコントローラは、フレームのストリームで運ばれたフレームのスライスを量子化および/または閾値化すべきかどうかを選択的に決定する。レートコントローラはフレームの入力サイズを決定し、少なくとも所望のサイズに少なくとも部分的に基づいて、フレームの出力サイズがおおよそ所望のサイズになるようにフレームを再量子化および/または閾値化する。

Description

(参照文献)
本願は、2003年8月6日に出願された米国出願第10/635,406号の一部継続出願であり、第10/635,406号は、2003年3月26日に出願された米国出願第10/397,658号の一部継続出願であり、第10/397,658号は、2002年3月27日に出願された、第60/368,068の番号を有する米国仮出願に対する優先権が主張されており、これら3つは本明細書において参照により全体に組み込まれる。
(技術分野)
本発明は、概ねブロードバンド通信システムに関し、より詳細にはブロードバンド通信システムにおける圧縮ストリームの情報のトランスコーディングに関する。
(背景技術)
最新の加入者テレビシステム(STS)は、パケット化されたデジタルコンテンツをヘッドエンドから加入者へ送信する。デジタルコンテンツは、典型的にはMPEGなどの形式または当業者には既知の他のパケット形式で提供される。デジタルプログラムは優れた信頼性を提供するので、またデジタルプログラムは概ねアナログプログラムより狭い帯域幅を使用するように圧縮されるので、STSの操作者は典型的にはデジタル形式のプログラムを提供することを好む。デジタルプログラムは一部には、量子化パラメータを使用して圧縮される。
STSの操作者は、従来のトランスコーダを使用して量子化パラメータを変更することにより、所定のビットレートの圧縮デジタル信号を、より低いビットレートの圧縮デジタル信号に変換したがる場合も多い。このような目的で使用される従来のトランスコーダは、カスケード式デコーダおよびエンコーダからなる。この組み合わせはかなり複雑で高価である。ビデオ信号の特定ケースでは、他にもいくつかの側面を考慮しなければならない。コード化されたビデオ信号は、一連の符号化されたビデオフレームからなり、各ビデオフレームは二次元アレイのマクロブロックに細分化され、各マクロブロックはブロックにより構成される。ビデオフレームは、ピクセル領域である空間領域内にあり得、周波数領域または、空間領域におけるビデオフレームの離散コサイン変換(DCT)の結果得られる変換領域で送信される。加えて、ビデオフレームは、ビデオフレームの奇数ラインによって形成される上部フィールドとビデオフレームの偶数ラインによって形成される下部フィールドの2つのフィールドに分離され得る。マクロブロックは、インターレース形式とインターレース解除形式の2つの異なる形式で伝えられ得る。インターレースビデオフレーム形式においては、マクロブロックは2つの交互のフィールドからのラインで構成され、マクロブロックの各DCTブロックは、その2つのフィールドからのデータにより形成される。インターレース解除形式では、マクロブロックは2つのフィールドからのラインで構成され、マクロブロックの各DCTブロックは2つのフィールドのうちの1つだけのデータにより形成される。ビデオフレームの各DCTブロックは走査されて符号化される。
従来のピクセル領域トランスコーダがビットストリームを再量子化し得る前に、トランスコーダのデコーダ部分がビットストリームをピクセル領域値に変換する。その後、トランスコーダのエンコーダ部分がピクセル領域値を再量子化して、DCT領域値に変換しなおす。
従来のピクセル領域トランスコーダに加えて、DCTブロック領域において動作する従来のDCTブロック領域トランスコーダが存在する。かかるトランスコーダはビットストリームを受信し、そのビットストリームを、ラン−レベルペアの1セットがDCTブロックの圧縮表現であるラン−レベルペアのセットに変換し、その後、そのラン−レベルペアのセットをDCTブロックに変換する。トランスコーダは、DCTブロック領域の情報を操作し、その後、DCTブロックを再変換してラン−レベルペアのセットに戻し、その後、圧縮ビットストリームに変換しなおす。DCTブロック領域トランスコーダに関するさらなる詳細に関しては、全体として参照により本明細書に組み込まれる“A Frequency−Domain Transcoder For Dynamic Bit−Rate Reduction of MPEG−2 Bit Streams”Assuncao et.al.,IEEE Transactions on Circuits and Systems for Video Technology, Vol. 8, Issue 8, December 1998, pages 953−967、および全体として参照により本明細書に組み込まれる“Manipulation and Compositing of MC−DCT Compressed Video, ”Chang et al, IEEE Journal on Selected Areas In Communications, Vol, 13, No.1, 1995, pages 1−11で求められる。
縮小されたビットサイズが所望のサイズにおおよそ等しくなるようにストリームのビットサイズを縮小するトランスコーダに対する必要性および、コンテンツ減少の副作用を低減するようにコンテンツを減少させる方法に対する必要性がある。
(発明を実施するための最良の形態)
これより、いくつかの図を通して同一番号が同一要素を表し、本発明のいくつかの例示的実施形態が示される添付図面を参照して、本発明の好適な実施形態をより十分に説明する。しかしながら、本発明は多くの異なる形態において実施され得、本明細書に述べる実施形態に限定されて解釈されるべきではない。本明細書において述べる例は非限定例であり、他の可能な例の中の単に一例にすぎない。
フローチャートにおけるいかなるプロセスの説明またはブロックも、プロセスにおける特定の論理機能またはステップを実行するための1つ以上の実行可能指令を含むコードのモジュール、セグメントまたは部分を表すものとして理解されるべきであり、関連する機能性に依存して実質的に同時または逆の順番など、図示または記載の順番とは異なる順番で機能が実行され得る代替の実施は、本発明の好適な実施形態の範囲内に含まれ、これは本発明の技術分野のそれ相当の当業者には理解され得るであろう。
本発明の好適な実施形態を理解する1つの方法は、加入者テレビシステム(STS)のコンテキスト内において、好適な実施形態を見ることを含む。従って、本発明の好適な実施形態は、とりわけ、STSによって運ばれるトランスポートストリームのサイズを減少させるシステムおよび方法を含む。
本発明の好適な実施形態は、加入者テレビシステム環境のコンテキストにおいて理解可能であるので、最初に加入者テレビシステム(STS)について説明して、その後、加入者テレビシステムのヘッドエンド内に含まれる構成要素の選択について説明をする。また、本発明の好適な実施形態を実行し、ヘッドエンドにおいてヘッドエンドに含まれるトランスコーダについて説明する。
しかしながら、本発明の好適な実施形態は多くの異なる形態で具現化され得、本明細書で述べる実施形態に限定されるものとして解釈されるべきではなく、これらの実施形態は、この開示が詳細で完全であるように、また当技術分野において通常の技術を有する者に対して本発明の範囲を十分に伝えるように提供されるものである。さらには、本明細書で与えられるすべての「例」は、非制限的であることが意図され、考えられるが示されてない多くの他の例の中の例示的リストとして提供される。
さらには、本発明の好適な実施形態(単数、複数)の論理は、ハードウェア、ソフトウェア、ファームウェアまたはその組み合わせにおいて実行可能であることに注意すべきである。好適な実施形態(単数、複数)においては、メモリに記憶され、かつ適切な指示実行システムにより実行されるソフトウェアまたはファームウェアで論理が実行される。ハードウェアにおいて実行される場合、代替の実施形態と同様に、論理は、当技術分野においてはすべて周知である次の技術のいずれか、またはその組み合わせで実行可能である。すなわち、データ信号上に論理機能を実行するための論理ゲートを有するディスクリート論理回路(単数、複数)、適切な組み合わせ論理ゲートを有する特定用途向け集積回路(ASIC)、プログラム可能ゲートアレイ(単数、複数)(PGA)、フィールドプログラム可能ゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)などである。加えて、本発明の範囲は、ハードウェアまたはソフトウェア構成媒体にて具体化される論理において、本発明の好適な実施形態の機能性を具体化することを含む。
加入者テレビシステム
図1は、加入者テレビシステム(STS)100の非制限例を描いたブロック図である。本例では、STS100はヘッドエンド102、ネットワーク104および、加入者宅内装置105に位置付けられた多重デジタル加入者通信端末(DSCT)106を含む。
図1に示すSTS100は単に実例として示すものであり、本発明の好適な実施形態の範囲になんら制限を課すものとして解釈されるべきではない。例えば、STS100は図示される構成要素のいずれか1つを複数個にして特徴とすることが可能である、または個々の構成要素のいずれか1つに対して代替の実施形態、または上記で列挙されない他のさらなる構成要素で構成され得る。また、本発明の好適な実施形態の範囲内に含まれる加入者テレビシステムは、これに限定されないが、サテライトシステムなどの、物理的に構成された送信用ケーブルを利用しないシステムを含む。
加入者宅内装置105に位置付けられるDSCT106は、とりわけSTS100のヘッドエンド102と加入者間の双方向インタフェースを提供する。DSCT106は、いくつかある例の中で特に、テレビジョンセット(TV)107またはコンピュータモニターなどの表示装置上に表示するために信号を復号化して、さらに処理する。当業者は、代替実施形態において、まず信号を復号化してさらに処理するための機器が、これに限定されないが、とりわけコンピュータ、TV、モニター、またはMPEGデコーダを含む種々の機器において位置付け可能であることは理解するであろう。
少なくとも1つのコンテンツプロバイダー108は、これに限定されないが、MPEGなどのプロトコルにフォーマットされたデジタルコンテンツをSTS100に提供する。とりわけ、コンテンツプロバイダー108は「ライブ」または「録画された」プログラミングを提供するテレビ局であり得る。テレビ局はカメラ110およびエンコーダ112を含むことになる。エンコーダ112は、カメラ110からコンテンツを受信して、そのコンテンツを処理してMPEGフォーマットにして、その後コンテンツはSTS100のヘッドエンド102に提供される。
ヘッドエンド102はコンテンツプロバイダー108からのプログラミング信号を受信し、下記で述べるメカニズムに従ってコンテンツプロバイダー108からのコンテンツを処理した後、ヘッドエンド102はプログラミング信号を加入者宅内装置105におけるDSCT106に送信する。典型的には、ヘッドエンド102は従来のアナログ信号(これについては論じない)およびデジタル信号の両方の組み合わせを送信する。
1つの実施においては、デジタル信号はMPEG形式で送信され、本発明の実施形態はその観点から論じられる。具体的には、本発明の実施形態はMPEGビデオフレームおよびビデオフィールドの観点から述べられる。但し、MPEGビデオフレームおよびビデオフィールドを採用する本発明の実施形態を説明することは例示および目的を明確にするために過ぎず、本発明の範囲への制限ではない。本発明の範囲は、少なくとも量子化された情報のすべてのストリームに及ぶことが意図される。この開示の目的のために、1フレームの情報は、ビデオフレーム、上部ビデオフィールド、下部ビデオフィールドおよび他の所定のブロックの情報を含む。
図1に示すように、例としてのヘッドエンド102の選択された構成要素は、通信インターフェース114、デジタルネットワーク制御システム(DNCS)116、限定受信(CA)サーバ118、ビデオオンデマンド(VOD)サーバ120、トランスポートストリーム送信器122、四位相偏移変調(QPSK)モデム124、ルータ126、VODポンプ128およびトランスコーダ134を含み、これらはイーサネット(登録商標)130を介して接続される。例示的ヘッドエンド102が、とりわけ、さらなるサーバ、スイッチ、マルチプレクサ、トランスポートストリーム送信器などのさらなる構成要素を含むことが可能である、または図示された選択構成要素のいくつかを省略することが可能であることは、当技術分野において通常の技術を有する者により理解されるであろう。
とりわけ、DNCS116は、ネットワーク構成要素およびユーザに提供されるサービスのブロードキャストを管理、監視および制御する。DNCS116は他のモジュールの中で、とりわけ、支払い情報および調査データなどの目的で、加入者についての情報を含む加入者データベース132を含む。DNCS116はまた、限定受信サーバ118と通信して、ヘッドエンド102からDSCT106へのコンテンツの安全な送信を提供する。
CAサーバ118はSTS100のサービスおよびプログラミングに対して、選択的にDSCT106に「資格授与」を与える。言い換えると、とりわけ、CAサーバ118は、STS100のどのDSCT106がサービスまたはプログラムの所定インスタンスにアクセスする資格があるかを決定して、その選択されたDSCT106に、とりわけ、サービスの所定インスタンスにアクセスするのに必要なキーおよび権限を与える。加えて、CAサーバ118は、各加入者が適切に請求されることができるように、DNCS116にSTS100におけるDSCT106のそれぞれの資格授与を知らせる。さらには、CAサーバ118は、とりわけ、長期キー、DSCT106のパブリックキーおよびCAサーバ118用のプライベートキーを含むデータベース(図示せず)を含む。CAサーバは、長期キー、パブリックおよびプライベートキーを使用して、DSCT106と安全に通信する。
CAサーバ118はまた、暗号情報をトランスポートストリーム送信器122および選択されたDSCT106に提供する。トランスポートストリーム送信器122は、暗号情報を採用して、プログラムのコンテンツを暗号化し、ネットワーク104を介して、とりわけ、変調されたプログラミングをDSCT110に送信する。
QPSKモデム124はヘッドエンド102とDSCT106との間で帯域外IP(インターネットプロトコル)データグラムトラフィックを輸送する任務を担う。QPSKモデム124により送受信されたデータは、ヘッドエンドルータ126によりルートされ得る。とりわけ、ヘッドエンドルータ126は、VODサーバ120などの種々のサーバにアップストリームデータを配信するのに使用され得る。
トランスコーダ134はMPEGトランスポートパケットのストリームを運ぶ入力ビットストリーム136を受信して、出力ビットストリーム138を送信する。出力ビットストリーム138のビットサイズは、入力ビットストリーム136よりも小さい。トランスコーダ134は操作者入力を受信して、とりわけ、入力ビットストリーム136によって運ばれるプログラムのフレーム上にハイブリッド再量子化−閾値化スキームを適用するようになっている。ハイブリッド量子化−閾値化スキームはDCT領域で行われ、フレームのビットサイズが縮小されるように行われる。
MPEG圧縮
トランスコーダ134を詳細に説明する前に、MPEGビデオ圧縮の簡単な説明を行う。MPEG圧縮およびMPEGについてのさらなる詳細は概ね、MPEG−1標準(ISO/IEC11172)、MPEG−2標準(ISO/IEC13818)およびMPEG−4標準(ISO/IEC14496)で求めることができ、International Organization for Standardization document ISO/IEC JTC1/SC29/WG11 N(MPEG−1は1996年6月、MPEG−2は1996年7月、MPEG−4は1998年10月)に詳細に説明され、これらは本明細書により参照として組み込まれる。
図2Aおよび2Bは、一連のピクチャにおいて2つのピクチャ202Aおよび202Bをそれぞれ示す。MPEG2は、1つのピクチャをマクロブロック204と呼ばれる16´16ピクセルのブロックに分割し、図2Aおよび2Bでは1〜25とされる。実際の高品質National Television System Committee(NTSC)フレームでは、およそ1350マクロブロックがある。各マクロブロック204は、ピクチャにおいて所定の位置を有する。例えば、「1」とされたマクロブロックは、各フレームの右下コーナーである。本明細書で述べるように、各マクロブロック204はさらに、本開示の目的でサブマクロブロックと称される多重8´8ブロックのピクセル情報に細分化される。マクロブロックの水平方向シーケンスはスライスと呼ばれ、スライスはピクチャの全幅または幅の一部分に亘って延び得る。
理論的には、MPEG2符号化ピクチャは、コンテンツ情報と非コンテンツ情報からなる。本開示の目的では、コンテンツ情報はマクロブロックにおけるピクセル値に対応する情報として定義され、非コンテンツ情報はピクチャを処理したり復号するのに必要なその他すべてに対応する。非コンテンツ情報は概ね、その例としては、これに限定されないが、ピクチャヘッダ、スライスヘッダおよびマクロブロックヘッダを含むヘッダで運ばれる。ヘッダは典型的には、ピクチャまたはその一部がどのように処理されており、ピクチャが復号化されビューされることができるかについての情報を運ぶ。非コンテンツ情報は、ピクチャの一部を量子化するのにエンコーダにより使用されていて、ピクチャを未量子化するのに使用されるピクチャの量子化パラメータ(Q1)を含む。以下で詳細に説明するように、コンテンツ情報は概ね、サブマクロブロックに対応し、サブマクロブロックはピクセル領域、DCT領域またはラン−レベル領域のいずれかで表されることができる。さまざまな領域については以下で説明される。
ピクチャ2Aは、飛行機206A、雲208および背景空(図示せず)を示す。飛行機206Aははマクロブロック1、2、6および7内にあり、雲208はマクロブロック8、9、13および14内にあり、背景空はマクロブロック1〜25のすべてにある。ピクチャ202Bは少し後の場面を示す。ピクチャ202Bでは、飛行機206Bは今度はマクロブロック13、14、15および20内にあり、第2の飛行機210がマクロブロック5のピクチャ202Bに入ってきている。
図3は予測ピクチャ302を示す。予測ピクチャ302は、マクロブロック13、14、15および20に飛行機206Aと、マクロブロック8,9、13および14に雲208を含む。予測ピクチャ302はピクチャ202Aに含まれる情報に基づく。具体的には、飛行機206Aは、ピクチャ202Aのマクロブロック1、2、6および7から予測画像302のマクロブロック13、14、15および20に変換され、雲208は同様に図2Aから変換される。ピクチャ202Aのマクロブロック1、2、6および7は図3において点線として示される。当然ながら、飛行機206Aの方向付け、照明、陰および他の光学上の特徴は飛行機206Bの画像とは正確には一致しない。従って、予測画像302はピクチャ202Bの推定にすぎない。予測ピクチャ302と実際のピクチャ202Bとの相違を補うため、図4に示される残存ピクチャが生成される。残存ピクチャ402は、予測ピクチャ302と実際のピクチャ202Bとの相違である。例えば、飛行機206Bと206Aとの相違は残存飛行機404として示される。残存飛行機404を飛行機206Aに付加することにより飛行機206Bが生成される。
残存ピクチャ402のマクロブロック5は、フレーム内符号化されたマクロブロックの例である。第2の飛行機210は基準ピクチャ202Aから予測できないので、その結果予測フレーム402には現れない。
MPEGは時間的圧縮と空間的圧縮を使用してコンテンツ情報を圧縮する。時間圧縮は、ピクチャ202Aなどの基準フレームからの情報を使用して、動きベクトルを使いながら予測フレーム402を生成することに関わる。基準ピクチャからのコンテンツを有する任意のマクロブロックは、それに関連付けられた少なくとも1つの動きベクトルを有し、動きベクトルはそのブロックのマクロブロックヘッダで運ばれる。動きベクトルは、コンテンツ情報が取り出される、基準フレームにおけるマクロブロックを識別する。
通常は、基準フレームからのマクロブロックはカレントフレームでの画像と正確に一致しない。例えば、図5は、マクロブロック502が4つのマクロブロック504(1)〜504(4)からの情報を受け取る一般的な状況を示す。基準マクロブロック504の各1つはマクロブロック502に変換されて、4つの基準マクロブロック504のそれぞれの一部分のみがマクロブロック502で使用されるようにオフセットされる。
MPEG−2は3つのタイプのピクチャ、Iピクチャ、BピクチャおよびPピクチャを採用する。Iピクチャはフレーム内符号化される、すなわちそのビデオフレームからの空間的圧縮のみを使用して圧縮されるピクチャであり、これはそれらが他のいかなるビデオフレームも参照せずに解凍されることを意味する。BピクチャおよびPピクチャはフレーム間符号化される、すなわちIピクチャまたはPピクチャなどの基準ピクチャからの情報を使用して圧縮され、これもまた空間的に圧縮されるピクチャである。Pピクチャは前の基準ピクチャからの情報を使用して、「予測される」ピクチャであり、Bピクチャは、前の基準ピクチャから、および後続の基準ピクチャからの情報を使用して「双方向に予測される」ピクチャである。実際には、BピクチャまたはPピクチャは、厳密にはフレーム間符号化されたピクチャではなく、代わりにフレーム間符号化されたマクロブロックとフレーム内符号化されたマクロブロックとの組み合わせである。基準ピクチャから予測可能なマクロブロックはフレーム間符号化され、予測できないマクロブロックはフレーム内符号化される。各マクロブロックはそれに関連付けられたマクロブロックヘッダを有し、マクロブロックヘッダは、フレーム間符号化されているのかフレーム内符号化されているのか、マクロブロックを識別する。
表示順のビデオピクチャの典型的なシーケンスは、I(1)、B(2)、B(3)、P(4)、B(5),B(6)、P(7)、B(8)、B(9)、P(10)、…P(N)、I(N+1)である。PピクチャP(4)は、IピクチャI(1)からの情報を使用し、BピクチャB(2)およびB(3)は、IピクチャI(1)およびPピクチャP(4)からの情報を使用し、PピクチャP(7)はPピクチャP(4)からの情報を使用し、BピクチャB(5)およびB(6)はピクチャP(4)およびP(7)からの情報を使用する。I(1)およびP(N)との間(これを含む)のピクチャは一群のピクチャ(GOP)として知られ、典型的にはその数は12から16(これを含む)である。ビデオピクチャは表示順には送信されない。代わりに、各フレーム間符号化されたピクチャはその基準ピクチャのすべてが送信された後で送信される。従って、GOPの送信順番は、I(1)、P(4),B(2)、B(3)、P(7)、B(5)、B(6)、P(10)、B(8)、B(9)、・・・P(N)、B(N−2)、B(N−1)である。
テレビに表示するための典型的なピクチャでは、高品質National Television System Committee(NTSC)フレームはおよそ1350マクロブロックで構成される。一般的なMPEG−2標準は、4:2:0および4:2:2を含む。4:2:0標準において、16´16マクロブロックは全部で6つのサブマクロブロック(8´8)、すなわち4つの8´8発光ブロックおよび、各軸を2分の1にダウンサンプリングすることにより生成される2つの8´8色差ブロックで表される。4:2:2標準においては、色度はダウンサンプリングされないので、2倍の色度情報がある。従って、4:2:2標準においては、16´16マクロブロックは、全部で8つのサブマクロブロックにより表される。マクロブロックのサブマクロブロックはすべて、一般的な動きベクトルにより基準ピクチャ(IピクチャまたはPピクチャ)から時間的圧縮ピクチャ(PピクチャまたはBピクチャ)へと進められる。
MPEG−2における空間的圧縮は、ピクセル領域からDCT領域としても知られる周波数領域へ変換するために二次元離散コサイン変換(DCT)を使用した各サブマクロブロックの変換に基づく。エンコーダ112などのMPEGエンコーダがフレームを空間的に圧縮するステップが図6に示される。エンコーダ112はトランス602、量子化器604、スキャナ606、及び2進エンコーダ608を含む。トランス602は、離散コサイン変換を使用して、ピクチャのピクセル情報610の各サブマクロブロックをDCT領域サブマクロブロック612に変換する。ピクセル領域サブマクロブロック610は行列bとして書き込まれ、その要素はb(n,m)として与えられる。但し、nおよびmは0から7(両者を含む)の範囲にある。DCT領域サブマクロブロック612は行列Bとして書き込まれ、その要素はB(k,j)として与えられる。但しkおよびjは0から7(両者を含む)の範囲にある。トランス602は以下の式を使用して、ピクセル領域からDCT領域へ変換する。
Figure 2006521771
但し、c(0)=
Figure 2006521771
であり、n>0に対してc(n)=1である。
ゼロ周波数(DC)成分B(0,0)はDCT領域行列612の左上コーナーにあり、最も高い周波数に対する係数、B(7,7)はDCT領域行列612の右下コーナーにある。
人の目は低周波数よりも高周波数に反応しないので、DCT係数は同等には処理されない。ゆえに、量子化器604は、量子化している間、DCT係数のそれぞれに重み因子を適用する。量子化により、DCT係数は有理数から整数に変換され、通常は量子化されたDCT係数のスパース表現、すなわち、係数の振幅のほとんどまたは大部分がゼロに等しいスパース表現が得られる。1つの実施においては、量子化器604は以下の重み量子化スキームを採用する:
フレーム間符号化ブロックに対しては、
Figure 2006521771
フレーム内符号化ブロックに対しては、
Figure 2006521771
但し、int()は整数関数であり、w(k,j)は要素(k,j)の重み因子であり、Qは量子化パラメータである。その後、MPEGデコーダは以下の逆重み量子化スキームを採用するであろう:
Figure 2006521771
但し、nint()は最近接整数関数である。当業者は、論じられないが、本発明の範囲内に含まれることを意図される他の量子化スキームも使用可能であることを認識する。
スキャナ606は、量子化DCT行列(B’)614上でジグザグ走査を行い、(N+1)×2のディメンションを有するラン−レベル領域行列(RL)616を生成する。但し、Nは量子化DCT行列(B’)614における非ゼロ係数の数である。最後に、2進エンコーダまたは可変長エンコーダ(VLE)608は、ハフマン符号化を使用してラン−レベル領域行列(RL)616のラン−レベルペアをビットストリームに変換する。本発明の好適な実施形態は、ハフマン符号化を使用するMPEG標準の観点から述べられていることに留意すべきである。しかしながら、本発明がMPEG標準のみに限定されることは意図されず、当業者に既知の他の符号化技術を他の好適な実施形態において使用することができる。
図7Aおよび図7Bは、2つの可能な走査の順番を示す。図7Aに示す走査の順番は、典型的には、量子化DCT行列(B’)614が非インターレースビデオフレームの部分を表す場合に、DCT行列を走査するためにスキャナ606により実行される。図7Bは、典型的にDCT行列がインターレースビデオフィールドの部分を表す場合に実行される走査パターンを示す。
図8Aは、例示的な量子化DCT領域行列(B’)614を図示し、図8Bは、スキャナ606が例示的DCT領域行列614上に図7Aに図示された走査パターンを採用した後の対応するラン−レベル領域行列(RL)616を示す。ラン−レベル領域では、「ラン」は非ゼロ係数に先行する、ゼロの値を有する連続走査された係数の数を示し、「レベル」は非ゼロ係数の振幅を示す。ゼロ周波数(D.C.)係数(B(0,0)=a)に先行するゼロの値を有する係数の数はゼロなので、D.C.係数に対するラン−レベルペアは(0,a)である。B(0,0)とB(1,0)との間に入る唯一のゼロ係数はB(0,1)なので、B(1,0)に対するラン−レベルペアは、(1,b)により与えられる。B(4,1)係数(B(4,1)=h)に続く係数はすべてゼロであり、エンドオブブロックマーカーで表され、ラン−レベルペア(0,0)で示される。このように、量子化器604およびスキャナ606によって処理された後、DCT領域行列(B)612における64個の(有理数)係数はいまや、9つの対のランおよびレベル(18個の整数)で表される。64個の数から18個の整数(レベル)への変換により、例示的なDCT領域行列614を表すのに必要なビット数は低減される。
図8Cは、1セットのラン−レベルペア616の代替実施形態を示す。フレーム内符号化マクロブロックにおいて、MPEG−2はDCレベル、行列614のB(0,0)要素はより高い周波数レベルとは異なって扱われる。DC係数はブロック毎に異なってコード化されるので、また人の目はより低い周波数に対して反応するので、フレーム内ブロックのDCレベルはAC係数とは別に符号化される。従って、定義によってそのランはゼロでなければならないであろうから、DCレベルに関連付けられたランの値がない。一方、フレーム間符号化ブロックでは、DCレベルを含むブロックのレベルはすべて同一に扱われる。
DSCT106などのMPEGデコーダは逆演算を行って、ビットストリームをフレームに変換する。MPEGデコーダは、とりわけ、ビットストリームをラン−レベルペアのセットに変換する2進デコーダ(図示せず)を有する。但し、1セットのラン−レベルペアはピクセルのサブマクロブロックを表す。逆スキャナ(図示せず)は、ラン−レベルペアのセットを、DCT量子化係数の8×8行列に変換する。逆量子化器(図示せず)は、各レベル毎に、重み因子で割った量子化因子(Q)の商をレベルに掛ける。最後に逆トランス(図示せず)がレベルをピクセル領域値に変換しなおす。このように、MPEG符号化および復号化は、とりわけ行列演算およびDCT変換および逆変換のために計算上、非常に複雑となる。
トランスコーダ
図9に示されるのは、トランスコーダ134の第1の実施形態の構成要素であり、図17は第2の実施形態の構成要素を示す。図9を参照すると、トランスコーダ134はベクトル長デコーダ902(VLD)、メモリ908を有するプロセッサ904およびベクトル長エンコーダ906(VLE)を含む。とりわけ、VLD902は入力ストリーム136を受信して、ビットストリームからのピクチャヘッダ、スライスヘッダ、マクロブロックヘッダなどのヘッダを解析して、そのヘッダをメモリ908に提供する。加えて、VLD902はまた情報の非ビデオフレームを解析して、非ビデオフレームをメモリ908に提供し、ビットストリームからのランレベルペアのセットを解析してプロセッサ904に前記ランレベルペアを提供する。
プロセッサ904は、とりわけ、処理されたフレームがより少ないビットで表されるようにフレームを処理する。フレーム、ビデオフレームおよび非ビデオフレームは、VLD902に受信されたのと同じ順番でVLE906を介して送信されるように処理される。
1フレームの情報を処理した後、プロセッサ904は処理されたフレームをVLE906に送り出す。とりわけ、VLE906は処理されたフレームを2進情報に変換して、その2進情報を多重MPEGパケットにカプセル化する。VLEは、これに限定されないが、ハフマン符号化などの周知の技術を使用して、ランレベルペアを整数値のペアから2進シーケンスへと変換する。
メモリ908は、基準フレームおよび対応するシェイブされた基準フレームがそれぞれバッファされる基準フレームバッファ910Aおよび910Bならびにシェイブ基準フレームバッファ912Aおよび912Bなどの多重バッファを有する。本開示の目的では、シェイブされた基準フレームはフレームのビットサイズが縮小されたものである。メモリ908は、非ビデオフレームの情報用およびビデオフレームのヘッダ用のバッファも含む。
機能的には、プロセッサ904は、点線914で分割されたカスケード式エンコーダおよびデコーダであると考えることができる。逆量子化器モジュール916、逆DCTモジュール918、加算器920および基準フレームバッファ910はデコーダ部分を構成し、加算器モジュール922、DCTモジュール924、レートコントローラモジュール926および逆量子化モジュール928、逆DCTモジュール930、加算器モジュール932および基準フレームバッファ912はエンコーダ部分を構成する。
プロセッサ904のデコーダ部分はフレームをランレベル領域からピクセル領域へと変換する。逆量子化器モジュール916はコンテンツ情報をランレベルペアのセットとして受信し、フレームのヘッダの1つ以上で運ばれる最初の量子化パラメータ(Q1)に基づいて、そのセットのレベルを逆量子化する。逆量子化器916は未量子化レベルをランレベル領域からDCT領域に拡大する、すなわち、逆量子化器916は逆ジグザグ走査により、1セットのランレベルペアを8×8行列表現に変換する、または同等には、ランレベルペアのセットを走査順に配列した64個のレベルのアレイに変換する。
逆DCTモジュール918はDCT領域のコンテンツ情報を受信して、逆離散コサイン変換をDCT領域情報に適用することによって、未量子化レベルを周波数情報からピクセル情報へと変換しなおす。
加算器モジュール920は、逆DCTモジュール918からピクセル情報を受信する。カレントフレームがIピクチャであれば、ピクセル情報は完全である。しかし、カレントフレームがPピクチャまたはBピクチャであれば、ピクセル情報は不完全である。カレントフレームの動きベクトルを使用して、カレントピクチャにない情報を基準フレームバッファ910から受信する。加算器モジュール920は、基準バッファ910からの情報を逆DCTモジュール918からのピクセル情報に加算する。加算器モジュール920の出力は完全フレームである。カレントフレームが基準フレーム(IピクチャまたはPピクチャ)であれば、カレントフレームは、後続フレームで使用するための基準フレームバッファ910とプロセッサのエンコーダ部分の加算器モジュール922の両者に送られる。Bピクチャは加算器モジュール922にだけ送られる。
カレントフレームがIピクチャの場合、加算器モジュール922はそのカレントフレームをDCTモジュール924に提供する。しかしながら、カレントフレームがBピクチャまたはPピクチャである場合は、加算器モジュール922は残存ピクチャを生成し、その後その残存ピクチャはDCTモジュール924に提供される。カレントフレームの動きベクトルを使用して、加算器モジュール922は、シェイブされた基準バッファ912に格納された予測情報をカレントフレームから減じることにより残存ピクチャを生成する。予測情報は、加算器モジュール920が基準フレームバッファ910から受信した不足情報に対応する。
DCTモジュール924はコンテンツ情報をピクセル領域からDCT領域へと変換して、周波数情報のレベルが未量子化される。レートコントローラ926は量子化器934および閾値化器936を含む。レートコントローラ926は、量子化器934および閾値化器936を実行して、カレントフレームの圧縮ビットサイズが所望のビットサイズ(N)とおおよそ等しくなるように、カレントフレームのサイズを縮小する。所望のビットサイズは概ねSTSの操作者が提供した、もしくはDNCS116によって提供できる、または操作者が設定した目標ビットレートに基づいて各ピクチャフレームにおけるビット数を決定するフレーム−レイヤレート制御アルゴリズムよる、パラメータである。
レートコントローラ926は、カレントフレームのカレント圧縮ビットサイズを決定し、以下で述べる論理を使用して、そこからシェイブするビット数(N)を決定する。レートコントローラ926は、圧縮ビットサイズをおよそ(N)だけ縮小するようにカレントフレームを量子化もしくは閾値化する、または量子化および閾値化する。
カレントフレームが基準フレームであれば、レートコントローラ926はシェイブされたフレームを逆量子化器928に提供する。レートコントローラ926はまたシェイブされたフレームをスキャナ938にも提供し、スキャナ938はコンテンツ情報をDCT領域からランレベル領域に変換する。スキャナ938はその後、シェイブされたフレームをVLE906に提供して、VLE906はコンテンツ情報をランレベル領域から圧縮形式に変換する。
逆量子化器928は、レートコントローラ926からのシェイブされた基準フレームを受信し、コンテンツ情報を量子化値から周波数情報の未量子化値に変換する。いまや未量子化されているコンテンツ情報は、逆DCTモジュール932に提供され、逆DCTモジュール932はコンテンツ情報をピクセル領域情報へと変換しなおす。
加算器934は、いまやピクセル領域であるコンテンツ情報を受信して、カレントフレームの動きベクトルを使用して、不足情報をシェイブ基準フレームバッファ912から得る。加算器934の出力は完全なシェイブされた基準フレームであり、その後、後続の予測フレーム、すなわちPピクチャおよびBピクチャで使用するために、シェイブ基準フレームバッファ912にバッファされる。レートコントローラ926を詳細に論ずる前に、一定の量子化パラメータ(Q2)が使用される理由について簡単に説明し、閾値化について説明する。
図10は、χ対再量子化パラメータQのグラフである。但し、χは、再量子化前の代表フレームの総サイズ(N(Q))で除された再量子化後の代表フレームの総サイズ(N(Q))の商として定義される。ゾーン1とされる領域においては、Qの大きさは元の量子化パラメータであるQからおおよそαまで増加する。αは、ピクチャに対して線形量子化スケールが使用された場合31に等しく、非線形量子化が使用された場合は112に等しい。χのQに対する変化のレート(dχ/dQ)はQ=α、β、δおよびεでは不連続であり、各不連続間ではおおよそ一定である。Q=QからQ=αまでの間の領域はゾーン1と定義され、この領域では再量子化フレームのサイズがおよそ15%だけ縮小する。Q=βからQ=δへと延びるゾーン2と定義された領域では、再量子化フレームはおよそ60%から70%縮小され、Q=εからの外側に延びるゾーン3として定義された領域では、再量子化フレームは少なくともおよそ75%縮小される。図10に示される結果は代表フレームに対してである。縮小の実際量は、フレームのコンテンツ、ピクチャのタイプおよび他の変数などの変数により変化し得る。たとえそうだとしても、図10は、ゾーン1における再量子化はサイズの有効な節約にはならないので、ゾーン1と対照的にゾーン2(またはゾーン3)から再量子化パラメータを使用することが通常は好ましいことを示す。
当業者が認識するように、再量子化パラメータQが増加すると、再量子化のために情報が失われ、視聴者にとって低品質のピクチャとなる。従って、再量子化パラメータQの選択によって、ピクチャ品質とサイズとのバランスがとられなければならない。好適には、かかるパラメータは再量子化フレームのサイズをせいぜい15%ほど縮小するだけなので、再量子化パラメータQはゾーン1からは選択しない。代わりに、フレームのサイズのかかる少しの減少に対しては、閾値化が使用されることが好ましい。再量子化が行われる場合は、1つの好適な実施形態では、再量子化はカレントフレームのサイズをおおよそ所望のサイズNに縮小し、その後閾値化が行われてさらにフレームの総サイズが所望のサイズにより近づくようにサイズを縮小する。
図11は、例示的な閾値関数1102を示し、閾値関数1102は、I(0)からI(2)とした走査指標閾値1108とL(0)からL(2)としたレベル閾値1110Aとを有する階段状関数である。レートコントローラ926は、閾値関数1102より下のレベルをゼロにする。操作位置が走査指標閾値I(0)とI(1)との間の、1106Aとしたレベルは、その絶対値が走査指標閾値I(0)とI(1)間に延びるレベル閾値L(0)より小さいのでゼロとされる。一方、レベル1104Aは、その絶対値はレベル閾値L(0)を超えているのでゼロとされない。同様に、レベル1104Bはゼロとされず、レベル1106Bおよび1106Cはゼロとされる。1つの好適な実施形態では、レートコントローラ926は、これと並行してフレームの部分のレベルを閾値化する。本実施形態において、その部分を構成するランレベルペアのセットはすべて、それぞれ、同じ閾値関数によって閾値化される。理論的には、以下で詳細に述べるように、レートコントローラ926は閾値関数1102を縦横に移動させて、その部分のサイズがおおよそ適切な量だけ縮小されるように正しい数のレベルをゼロにする。
レートコントローラ
図12を参照して、量子化器934、閾値化器936およびスキャナ938に加えて、レートコントローラ926は、VLCテーブルバッファ1204、Nビットバッファ1206、フレームバッファ1208、作業バッファ1210、ランバッファ1212およびレベルバッファ1214を有するメモリ1202を含む。当業者には既知なように、ハフマン符号化は、ランとレベルの特定ペアを可変長である所定コードに変換する。最も一般的なランレベルペアは最短コードである。ランとレベルの可能なペアは、特定コードを割り当てないものもあり、このようなランレベルペアは24ビットで表される。すなわち、6ビットエスケープシーケンス、6ビットランシーケンスおよび12ビットレベルシーケンスで表される。VLCテーブルバッファ1204は、コードを有するランレベルペアをそのコードに対してマップするVLCテーブルを含む。NビットテーブルバッファはVLCコードをそのコードのサイズに対してマップするテーブルを含む。このように、レートコントローラ926は、以下の式によりカレントフレームの部分の圧縮サイズを決定することができる。
Figure 2006521771
但し、Ncoefはフレームの所定部分におけるランレベルペアの数であり、VLCは、その部分のJ番目のランレベルペアに対する可変長コードのビット数であり、J番目のランレベルペアがVLCテーブルになければゼロであり、N_escapeは、可変長コードが割り当てられていない、その部分におけるランレベルペアの数である。フレームのその部分における各ランレベルペアに対して、レートコントローラ926は、まずVLCテーブルを使用してそのペアが関連付けられた特定のコードを有するかどうかを決定し、有している場合は、Nビットバッファを使用して特定コードのサイズ(VLC)を決定する。
カレントフレームはフレームバッファ1208にバッファされる。レートコントローラ926は、量子化器934または閾値化器936がフレーム上またはその一部で作業する場合は、作業バッファ1210にフレームをコピーする。量子化器934がカレントフレームを処理したら、結果はフレームバッファ1208にコピーされる。以下で詳細を説明するように、レートコントローラ926は、その部分の圧縮サイズがおおよそ目標サイズに等しくなるまで、カレント部分を対話形式で処理する。対話毎に、閾値化器936は、フレームのその部分をフレームバッファ1208から作業バッファ1210にコピーする。
レートコントローラ926はカレントフレームを受信すると、スキャナ938がDCT領域コンテンツ情報を走査して、そのフレームに対するランおよびレベルのペアを決定する。ランとレベルは、ランバッファ1212とレベルバッファ1214にそれぞれバッファされる。ランとレベルはその後VLCテーブルとNビットテーブルで使用されて、これらに限定されないが、フレームの総圧縮サイズ(N)、フレームの総圧縮コンテンツサイズ(CT)およびスライスなどのフレームの部分の圧縮コンテンツサイズ(Ssize)などの種々の数量を決定する。総圧縮コンテンツサイズ(C)は圧縮時のすべてのコンテンツ情報の総サイズである。フレームの部分の圧縮コンテンツサイズ(Ssize)は、圧縮時のその部分のすべてのコンテンツ情報の総サイズとして定義される。
1つの好適な実施形態において、レートコントローラ926はフレームをスライスなどの部分に解析して、その後フレーム全体が処理されるまで順次その部分を処理する。好適には、レートコントローラ926は、並行して各部分のサブマクロブロックを処理するようになっている。フレームの部分を処理する前に、トランスコーダは出力トランスポートストリーム138に対して、所望のビットサイズを決定する。トランスポートストリーム138の所望のビットサイズは、ユーザインターフェース(図示せず)を通って受信されるか、またはDNCS116から受信される操作者入力から決定される。ユーザ入力から、トランスコーダは圧縮フレームに対する所望のビットサイズ(N)を決定する。レートコントローラ926は目標ビット数を決定して、その部分からシェイブする目標ビット数(N_shave)を決定する。その部分を処理した後、レートコントローラ926は、部分の圧縮コンテンツサイズを再計算し、部分の最初の圧縮コンテンツサイズと最終の圧縮コンテンツサイズとの差である節約されたビット数(N_saved)を決定する。レートコントローラ926はその後、シェイブする目標ビット数(N_shave)と節約されたビット数(N_saved)との差として定義される縮小誤差(e)、e=N_shave−N_savedを決定する。縮小誤差は各部分に対して蓄積され、蓄積された縮小誤差(E)は、後続部分からシェイブされるビット数の決定の際に使用される。フレームのK番目の部分に対して、N_shaveは以下の式として求められる。
Figure 2006521771
但し、SsizeはK番目の部分の最初の圧縮コンテンツサイズであり、Cはフレームの総圧縮コンテンスサイズであり、Nは、フレームからシェイブされる総ビット数であり、Eはすでに処理された部分、部分1からK−1に対して蓄積された縮小誤差であり、Nsliceはそのフレームの部分の数である。レートコントローラ926はまた、以下の式で求められる縮小閾値(R)を決定する。
Figure 2006521771
縮小閾値は、レベルを再量子化すべきか否かを決定する際に使用される。
図13はレートコントローラ926によって実行される例示的な再量子化−閾値化論理を示す。ステップ1302で、フレームがレートコントローラ926により受信される。フレームは解析され、メモリ1202にバッファされる。レートコントローラ926は部分毎にハイブリッド再量子化−閾値化スキームを実行する。明確にするために、以下の説明においては、部分はスライスと見なされる。しかしながら、スライスはフレームの部分の非制限的な例であることは理解されるべきであり、当業者が認識するように、スライスはピクチャの任意の部分であり、ピクチャの他のより小さい、または大きい部分を利用し得、それらは本発明の範囲および意図内にある。例えば、メディアプロセッサまたはデジタル信号プロセッサは、以下に述べる技術を使用して処理可能なピクチャの部分を限定する内部キャッシュを有し得る。
レートコントローラ926は、とりわけ、蓄積された縮小誤差(E)およびピクチャタイプ(P_T)などの、フレーム全体を処理するのに使用されるパラメータを初期化する。ピクチャのタイプ、Iピクチャ、Pピクチャ、Bピクチャは、メモリ908に格納されるピクチャヘッダから決定される。初期化時は、レートコントローラ926はフレームからシェイブされる必要のあるビット量(N)も決定する。
ステップ1304において、レートコントローラ926はスライスコンテンツサイズSSIZE、縮小閾値R、スライスからシェイブするビット量(NSHAVE)などの数量を決定して、N_SAVEDなどのスライス数量を初期化する。
ステップ1306では、レートコントローラ926はスライスを再量子化すべきかどうかを決定する。概ね、再量子化すべきか否かの決定は少なくとも部分的に、再量子化閾値パラメータ(T)および縮小閾値(R)に基づく。再量子化閾値パラメータ(T)は、DNCS116もしくは操作者によりトランスポンダー134に提供されか、またはフレームレイヤレート制御アルゴリズムによって計算される。典型的には、RがTより大きければ、スライスは再量子化される。とりわけ、ピクチャタイプおよび/またはスライスを量子化する際に使用される最初の量子化パラメータなどのその他の因子もまた、再量子化すべきか否かに関する決定において使用される。決定が再量子化すべきでない場合は、レートコントローラ926はステップ1312に進み、そうでなければレートコントローラは1308に進む。
ステップ1308でレートコントローラ926は、カレントスライスのレベルを再量子化して、ステップ1310でレートコントローラ926は再量子化によって節約されるビット数を決定する。スキャナはスライスのサブマクロブロックを走査し、スライス用のラン−レベルペアの新しいセットを生成する。ラン−レベルペアの新しいセットはランバッファ1212とレベルバッファ1214にバッファされる。レートコントローラ926はVLCテーブルバッファ1204を使用して、再量子化されたラン−レベルペアに対する新しいコードを決定し、Nビットバッファ1206を使用して、コードに対するビット数を決定する。カレントフレームのK番目のスライスに関して、節約されたビット数は以下の式で求められる。
Figure 2006521771
但し、VLC_NEWは新しいj番目のラン−レベルペアの圧縮ビットサイズであり、これは、新しいj番目のラン−レベルペアがVLCテーブルバッファ1204で見つけられる特定コードのうちの1つでない場合はゼロであり、N_escapenewはVLCテーブルバッファ1204で見つけられない、スライスにおけるラン−レベルペアの新しい数である。
次にステップ1312で、レートコントローラ926はスライスを閾値化すべきかどうかを決定する。典型的には、閾値化の決定は、少なくとも、ステップ1304でゼロに初期化され、必要であれば、ステップ1310で計算された節約されたビット数N_savedに基づく。節約されたビット数N_savedがスライスからシェイブするビット量N_shave以上の場合は、レートコントローラ926はステップ1318に進む。一方、N_savedがN_shaveより少ない場合、レートコントローラ926はステップ1314に進み、スライスを閾値化する。閾値化に関するさらなる詳細は以下に記載される。
次に、ステップ1316では、レートコントローラ926は節約されたビット量N_savedを決定する。節約されたビット量は、例えば、ハフマンコードを使用して圧縮形式でスライスを表すの使用されるビット数と圧縮形式のスライスの最初のサイズとの差である。典型的には、節約されたビット量は、正確にはスライスからシェイブする所望のビット数とは一致せず、2つの値の差は蓄積された縮小誤差(E)に加算される。
ステップ1318で、レートコントローラ926はフレームの全スライスが処理されたかどうかを決定し、処理された場合は、ステップ1302に戻る。そうでなければ、ステップ1304に戻り、カレントフレームの次のスライスを処理する。上記で述べた処理はフレームのスライスを処理する観点から述べられた。
表1は、DNCS116または操作者により提供され、再量子化すべきかどうかを決定する際にレートコントローラ926によって使用される、調整可能パラメータを一覧表にしている。調整可能パラメータは、好適な実施形態においてアレイである再量子化閾値パラメータ(T)、ピクチャタイプ(P_T)の関数である量子化閾値アレイQTおよびスライスにおけるレベルの絶対値の平均に関連付けられたパラメータである、LMINを含む。
Figure 2006521771
図14はさらに、ステップ1306においてレートコントローラ926により実行されるカレントフレームを再量子化するかどうかを決定するための例示的ステップ1400を示す。ステップ1402では、再量子化フラグが「偽」のデフォルト位置に設定され、カウンタ「J」はゼロに初期化される。次にステップ1404において、レートコントローラ926は、縮小閾値RがJ=0に対する再量子化閾値パラメータT(J)より小さいかどうか決定する。条件R<T(0)が真の場合、レートコントローラ926はステップ1418に下がって終了するが、この場合は、縮小閾値が小さく、閾値化だけでおおよそ所望のサイズにカレントフレームを縮小するので、再量子化が行われないことを意味する。一方、条件R<T(0)が偽の場合、レートコントローラ926はステップ1406に進む。
ステップ1406で、レートコントローラ926はカウンタJをインクリメントし、ステップ1408で、レートコントローラ926は次の条件がすべて真であるかどうか決定する。(i)R<T(J),(ii)Q1MAX<Q(J,P_T)および(iii)LAVG>LMINで、Q1MAXはスライスを構成するランレベルペアのセットに対応するDCTブロックを再量子化するのに使用された最大量子化パラメータであり、LAVGはスライスを構成するレベルの絶対値の平均である。スライスLAVGの平均絶対レベルが1に等しい場合、これは少なくともスライスのレベルの半分が1の絶対レベルを有することを意味する。それゆえに、2Qの因子による再量子化は、必ずスライスのレベルの半分以上をゼロにすることになる。従って、このような状況では、再量子化の代わりに閾値化を使用して、スライスのサイズを縮小することが好ましい。すべての3つの条件が真である場合しか、レートコントローラ926はステップ1416に進まない。一方、3つの条件のうち少なくとも1つが偽であれば、レートコントローラ926はステップ1410に進み、カウンタ「J」をインクリメントする。ステップ1412においては、レートコントローラ926はカウンタJが4未満かどうかを決定する。レートコントローラ926は、ステップ1408の3つの条件すべてが真になるかJ=4になるかのいずれかまで、ステップ1408、1410および1412をループする。
J=4のとき達するステップ1412では、レートコントローラ926は縮小閾値Rが再量子化閾値パラメータT(4)より大きいかどうか決定する。大きければ、レートコントローラ926はステップ1416に進み、再量子化フラグを「真」に設定する。条件R>T(4)が満たされない場合は、レートコントローラ926は最後のステップ1418に下がり、再量子化フラグは尚デフォルト「偽」に設定された状態で終了する。しかしながら、レートコントローラ926が、ステップ1408または1414のいずれかからステップ1416に達すると、再量子化フラグは「真」に設定され、その後レートコントローラ926は最後のステップ1418に下がり終了する。
ステップ1408に戻って参照すると、ステップ1408の3つの条件は再量子化すべきか否かを決定するための例示的な条件である。3つの条件が使用されると、その結果、縮小閾値およびスライスのレベルの絶対値の平均とともに、最大初期化量子化パラメータおよびピクチャタイプなどの種々の因子が決定に含まれる。当業者は、上記に挙げられた条件は非限定的なリストであり、再量子化をすべきかどうかを選択的に決定するために上記に挙げられたものを超えて他の条件またはそれより多い条件またはそれより少ない条件を使用することもできることを認識する。
1つの好適な実施形態では、典型的には1セットのラン−レベルペアに対する再量子化パラメータQが選ばれて2Qまたは4Qとなる。但し、Qはラン−レベルペアのセットの最初の量子化パラメータである。再量子化パラメータQを選択して2Qまたは4Qのいずれかとすることが計算上効率よくするために行われる。2Qまたは4Qのどちらを使用すべきかの決定は、少なくとも一部には、再量子化されたフレームの所望のサイズに基づく。但し、2Qか4Qの選択は実行上の問題であることに注意すべきであり、代替実施形態では、再量子化パラメータQは、任意の量子化パラメータであり得る。典型的には、デフォルト位置はQが2Qと等しいところであるが、条件R>T(4)または他の所定の値が真である場合は、Qの値はQ=4Qとなるように選択される。再量子化パラメータQを選択して2Qまたは4Qとすることにより、再量子化パラメータQは図10のゾーン2またはゾーン3からそれぞれ選択される。さらに、カレントスライスのラン−レベルペアの各セットは、同じ最初の量子化パラメータで量子化されたのではないこともあり、その場合、ラン−レベルペアの各セットはその最初の量子化パラメータの倍数である再量子化パラメータ、好ましくはQ=2Qまたは4Qを使用して再量子化されることに留意すべきである。または、スライス全体はQ=2Q1maxなどの一般的な再量子化パラメータを使用して再量子化することが可能である。
図15を参照して、ステップ1500は、スライスのレベルを閾値化するための例示的な方法を示す。方法はステップ1502で開始する。ステップ1504で、レートコントローラ926は、スライスのサイズが閾値化後におおよそ所望のサイズになるようにゼロにされる必要のあるレベルのおおよその数(N_thresh)を決定する。次の式を使用して、カレントフレームのカレントスライスに対するN_threshを決定する。
Figure 2006521771
但し、NcoefはK番目のスライスのレベルの数であり、Rは再量子化によってゼロにされたレベルの数であり、Run_avgはカレントスライスの平均ラン値であり、A()はその引数としてRun_avgを有する重み関数である。Rはステップ1304でゼロに初期化されることに注意すべきであり、量子化が行われた場合、Rはステップ1308で表にされる。重み関数A()は、ビットからレベルへの関係をスライスのラン平均の関数として強める。典型的には、ランの平均が増加すると、適用された重みは変化する。例えば、ゼロの平均ランに対しては、ランレベルペアはVLCを使用して効率的に符号化され、その結果A(0)はおおよそ1.2の範囲にあることが実験的に決定される。一方、ランの平均が4である場合、ランレベルペアはVLCを使用して効率的に符号化されず、その場合、A(4)は実験的におよそ0.8の範囲にあることが決定される。
1つの好適な実施形態では、ステップ1316で重み関数A()は、閾値化によって節約された実際のビットに基づいて調整される。これにより、ランの平均の関数として重み関数A()のオンライン学習/フィードバックが可能となる。
次に、ステップ1506で、閾値化パラメータが初期化され、スライスのレベルがバッファされる。
ステップ1508で、レートコントローラ926は閾値関数のカレント位置に基づいてスライスのレベルに関する閾値化を行う。レートコントローラは、スライスのサブマクロブロック(Nblocks)の数を決定し、スライスの各サブマクロブロックに閾値関数を適用する。レートコントローラ926は、各ブロックのどのレベルが閾値関数より下であるかを決定し、それらのレベルをゼロにする。
ステップ1510で、レートコントローラ926は、ゼロにされたレベルの数がN_threshの値により近くなるように縦横に移動させることにより閾値関数を調整するか、またはレートコントローラ926は閾値関数を調整しないことを決定する。
ステップ1512において、レートコントローラ926は、閾値化が完了したかどうかを決定する。レートコントローラ926が終了されると、方法はステップ1514で終了する。そうでなければ、方法はステップ1508にループして戻る。ステップ1508になるたびに、スライスのレベルは、ステップ1506のバッファされたレベルに応じてリセットされる。
典型的には、閾値化によりゼロに設定されるレベルの数は、正確には、N_threshの所望の値に等しくないまたはN_threshの所望の値の所定範囲内にはない。従って、1つの実施形態では、レートコントローラ926は、スライスをサブマクロブロックの第1群および第2群に分ける。レートコントローラ926はその後、各群ごとに閾値関数を別々に調整する。第1群および第2群のゼロにされたレベルの総数がそれでもN_threshの所定の範囲内にない場合は、レートコントローラ926はサブマクロブロックの所定数を第2群から第1群に移す。レートコントローラ926は、第2群から第1群にサブマクロブロックを移し、閾値レベルの数を決定し、閾値レベルの数がN_threshの所定範囲内にない場合は、ゼロにされたレベルの総数が所定の範囲内になるまでサブマクロブロックを第2群から第1群に移し続ける。
1つの好適な実施形態では、レートコントローラ926は、指標および閾値関数の閾値レベルを調整するために図16にその状態が示されるステートマシンを実行する。ステートマシンは、途中の状態に関して、レベル閾値探索を経てその後に走査指標閾値探索が続くものと見なすことができる。当業者は、図11に示される閾値関数は、3つのレベルを有する例示的な閾値関数であり、異なる数のレベルを有する閾値関数が本発明の範囲内にあることが意図されると認識するであろう。例えば、ここでこれより説明するように、レートコントローラ926は、4つのレベル閾値関数を実行する。ステートマシンにより使用されるパラメータはステップ1506で初期化され、表2に示される。
Figure 2006521771
パラメータは以下のように定義される。
L(0): 図11において1110Aとされる指標セグメント0のレベル閾値、
I(0): 図11において1108Aとされる指標セグメント0の走査指標閾値、
SplitIndexVal: スプリット指標付けが行われた場合の第1群のブロック数、
Φ: 閾値化ウィンドウを定義するための調整可能パラメータ、
UL:ゼロに閾値化されたレベルの数の数上の上限、
LL:ゼロに閾値化されたレベルの数の数上の下限、
α(K):α(K)=1+5//(p. 26, 2行目)QAVG、但し//は切捨てによる整数除算を表し、QAVGはスライスの最初の量子化パラメータ(Q)の平均であり、α(K)は0より大きい指標に対するレベル閾値を設定するのに使用され、
offset(1,2,3):0より大きい指標に対する指標閾値を設定するために使用される整調可能なパラメータ、
index_thresh_min:Bフレームに関して0、IまたはPフレームに関しては1である。
閾値関数の指標セグメントゼロに対する閾値レベル(L)は2に初期化され、閾値関数の残りの閾値レベルは次のように求められる。
L(n)=L(n−1)+α (9)
但し、nは1から3の範囲である。レベルはインクリメントされるα(K)である。α(K)はスライスの最初の量子化パラメータ(Q)の平均であるQAVGの関数なので、1つの指標セグメントから次の指標セグメントへのレベル閾値の上昇は、量子化器スケールの影響を受けやすい。
閾値関数の走査指標閾値I(0)はレベル探索中(状態FINDING_LEVEL_POSおよびFINDING_LEVEL_NEG)はindex_thresh_min(I(0)=index_thresh_min)に初期化されてこれに保持され、状態FAST_INDEX_SEARCHになる指標探索の開始時にISTARTに初期化される。但し、ISTARTは以下のように求められる。
Figure 2006521771
但し、IAVGはK番目のスライスにおけるレベルの平均走査位置であり、γは整調可能なパラメータであり、およそ2.75である。
残りの走査指標閾値n=1〜3に対しては、I(n)は以下のように求められる。
I(n)=I(n−1)+offset (11)
但し、offsetは表2で特定される。
走査位置は63までなので、n=0〜3のすべての走査指標閾値I(n)は、確実に63以下になるようにチェックされる。I(n)が63より大きい場合は、単に63に設定される。
図16を参照して、ステートマシンは、途中の状態に関してレベル閾値探索を経て走査指標閾値探索がその後に続くものとして見なすことができる。最初の状態1602はFINDING_LEVEL_POSである。図16では、条件式は点線の楕円形内に示され、ステートマシンにより取られる動作は下線が引かれる。
状態FINDING_LEVEL_POS:
最初の状態1602の目的は、閾値化されたレベルのカウント(cnt)が目標カウント(N_thresh)を越えるまでレベル閾値L(0)をインクリメントすることである。但し、cntはゼロにされたレベルの数である。この状態において、ステートマシンがcnt>N_threshを満足する最小閾値レベルを決定しようとするので、閾値関数は横には移動しない。その代わり、I(0)はindex_thresh_minに保持され最低レベル閾値L(0)はαずつインクリメントされる。レベル閾値L(1)、L(2)およびL(3)はn=1、2および3に対してL(n)=L(n−1)+αとして、条件cnt>N_threshが満たされるまで再計算される。典型的には、1セットのラン−レベルペアのレベルは小さな走査位置の辺りで最も密度が高く存在していて、その結果、指標探索時においては、閾値関数を右にスライドして、例えば、I(0)>index_thresh_minにして、I(1)〜I(3)を再計算することにより、cntを後退させる(少なくさせる)ことになる。
この状態での反復数を制限するために、不成功の反復の所定回数(IT)後はαより高いインクリメントが使用され得る。但し、ITは整調可能なパラメータ、例えばIT=5である。例えば、反復数がITより大きい場合、指標セグメントゼロ(L(0))に対する閾値レベルは次のように求めることができる
Figure 2006521771
あるいは、二分探索法を採用することができる。ほとんどの場合、特にラン−レベルペアのセットが残存情報を含むBピクチャおよびPピクチャでは、最終レベル閾値はL(0)=2の最初の推測であることが多い。
閾値関数のレベルが、必要に応じて、条件cnt>N_threshが満たされるように上げられた後、最後のインクリメントがαだった場合、閾値レベルL(0)の高さは最小と見なされる。この場合、レベル閾値は最終で、ステートマシンはFAST_INDEX_SEARCH状態1606に移る。
しかしながら、代わりにL(0)を求めるためにこの状態を通して多数の反復が取られ、最後のインクリメントがαではなかった場合、閾値レベルL(0)は最小ではない。この場合、ステートマシンはFINDING_LEVEL_NEG状態1604に進む。
FINDING_LEVEL_NEG:
FINDING_LEVEL_POS状態1602がN_threshを上回ってゼロにして、最後のインクリメントがαより大きかった後、FINDING_LEVEL_NEG状態1604になる。典型的には、多数の反復があり、レベルに対するインクリメントが式12で求められる場合にこの状況が生じる。
この状況では、閾値レベルL(0)は最小ではなく、条件cnt<N_threshが満たされまで、または閾値レベルL(0)が最初の値に戻るまで、指標閾値をindex_thresh_minに保持しつつFINDING_LEVEL_NEG状態1604がL(0)をαずつデクリメントする。条件cnt<N_threshが満たされると、閾値レベルはデクリメントされすぎ、この場合閾値レベルはα分インクリメントとされる。
FAST_INDEX_SEARCH:
FAST_INDEX_SEARCH状態1606の目的は、例えばβ=4の粗いインリメントで走査指標閾値をインクリメントまたはデクリメントすることにより最終走査指標閾値がある近傍を速やかに見つけることである。最初の走査指標閾値I(n)(n=0.3)はステップ1506で設定されている。cntは指標ウィンドウの下限LLより少なく、ステートマシンの最後の反復でのcntの値(last_cnt)がLL以下であった場合は、指標閾値I(0)はβずつ減らされる。一方、cntが上限ULより大きく、先行するcnt(last_cnt)がUL以上だった場合、指標閾値I(0)はβずつインクリメントされる。
cntはULより多いが、先行するcnt(last_cnt)がULより少なかった場合、高速指標探索は左に(低周波数方向)行き過ぎてしまった。この場合、指標閾値I(0)はβ−1ずつインクリメントされ、状態はMOVING_LEFT状態1610に修正される。
cntはLLより少ないが、先行するcnt(last_cnt)がLLより多かった場合は、高速指標探索は右に(高周波数方向)行き過ぎてしまった。この場合は、指標閾値I(0)はβ−1ずつデクリメントされ、状態はMOVING_RIGHT状態1608に修正される。
MOVING_RIGHT:
MOVING_RIGHT状態1608では、cntはULに対してチェックされる。(cnt>UL)であれば、走査指標閾値I(0)は1ずつインクリメントされる。cntがLLより少なくなったら、MOVING_RIGHT状態1608は1指標行き過ぎてしまった。この場合、走査指標閾値I(0)は1だけデクリメントされ、ステートマシンは、SPLIT_INDEX状態1612に進み、ここでSplitIndexValはレベルの1ブロックに設定される。
上記の条件のいずれも満足されない場合、すなわち(LL<cnt<UL)の場合、ステートマシンはDONE状態1614に進み、ここでステートマシンは、状態“完了”を返し、停止する。
MOVING_LEFT:
MOVING_LEFT状態1610では、cntはULに対してチェックされる。(cnt>UL)であれば、走査指標閾値I(0)は1ずつインクリメントされる。cntがLLより少なくなったら、MOVING_LEFT状態1610は1指標行き過ぎてしまった。この場合、走査指標閾値I(0)は1ずつデクリメントされ、ステートマシンは、SPLIT_INDEX状態1612に進み、ここでSplitIndexValはレベルの1ブロックに設定される。
上記2つの条件のいずれも満足されない場合、すなわち(LL<cnt<UL)の場合、ステートマシンはDONE状態1614に進み、ここでステートマシンは、状態“完了”を返し、停止する。
SPLIT_INDEX:
SPLIT_INDEX状態1712は、スライスのレベルをSplitIndexValにより定義されるように2つのセグメントに分割(または分ける)され、スライスのすべてのレベルが等しく処理されるわけではない。ステートマシンがSPLIT_INDEX状態になるまで閾値化演算は、SplitIndexVal=0を有するので、この時点までスプリット指標閾値化はない。
SPLIT_INDEX状態1712の1つの理由は、I(0)=t(tはMOVING_LEFT状態1610またはMOVING_RIGHT状態1608によって決定される)の特定値での閾値化によってcnt>ULとなるが、I(0)=t+1の閾値化によってcnt<LLとなることである。この場合、cntがウィンドウ(LL<cnt<UL)内であるように指標閾値I(0)に対する走査位置を求めることは不可能である。故に、レベルの第1のセグメントにおいて、指標閾値I(0)はtに設定され、指標閾値I(0)の第2にセグメントはt+1に設定される。両セグメントの総cntがULより少ない場合、ステートマシンはDONE状態1614に進み、ここでステートマシンは状態「完了」を返して停止する。一方、両セグメントに対する総cntがUL以上の場合、SplitIndexValは、より多くのレベルが第1のセグメントから第2のセグメントに移されるようにインクリメントされる。cntが条件(cnt<UL)に達すると、ステートマシンはDONE状態1614に進み、ここでステートマシンは状態「完了」を返して停止する。
以下は2つのパーティションに亘ってスプリット指標付けを行うための例示的な擬似コードである。第1のパーティションは0からNblocks−SplitIndexVal−1までで、第2のパーティションはNblocks−SplitindexValからNblocks−1までである。パラメータSplitIndexValはパーティション間の分割ラインをどこで引くかを制御する。これは、1つの走査指標閾値では閾値化される係数のカウントが大きすぎるが(ULより大きい)、1つ離れた近傍の指標では小さすぎる場合に(LLより小さい)微細なチューニングを効果的に与える。それゆえ、SplitIndexValが非ゼロに設定されると、第1のパーティションに対しては走査指標I(0)で閾値関数を開始し、第2のパーティションに対しては走査指標I(0)+1で開始して、閾値化が行われる。SplitIndexValはスライス閾値化の始めにゼロに初期化され、ステートマシンにより修正されて、LLとUL間で定義されたウィンドウ内で閾値化された係数のカウントを動かす。
Figure 2006521771
第2の実施形態
図17を参照して、本発明の第2の好適な実施形態において、トランスコーダ134はVLD902、VLE906およびプロセッサ1702を含む。VLD902とVLE906はすでに説明したので再度説明はしない。さらに第2の好適な実施形態では、レートコントローラ1704は、図13〜図16に示す再量子化/閾値化論理を使用して、再量子化もしくは閾値化、または再量子化および閾値化を行うべきか否かを決定する。
プロセッサ1702はレートコントローラ1704、加算器1706およびメモリ1708を含む。メモリ1708は、ドリフトバッファ1710Aおよび1710Bおよび、とりわけ、動きベクトル、ヘッダ、非ビデオフレーム、NビットテーブルおよびVLCテーブル用のその他のバッファ(図示せず)を含む。閾値化器936およびスキャナ938に加えて、レートコントローラ1704は、動き補正モジュール1712および再量子化器モジュール1714を含む。本実施形態では、ピクセル領域において動き補正を適用する代わりに、プロセッサ1702は、動き補正をDCT領域で適用する。
以下で詳細に説明するように、ピクセル情報のブロックを基準サブマクロブロックからカレントサブマクロブロックに変換することは、サブマクロブロック(行列形式)にウィンドウ関数を掛けることに相当する。ウィンドウ関数はユニタリ直交行列であるので、ピクセルのサブマクロブロックのウィンドウ関数倍の積のDCT変換は分配的であり、その結果、積は、サブマクロブロックのDCT表現のウィンドウ関数倍のDCT表現の行列積に等しい。可能な全動きベクトルのセットは有限であり、メモリ1708は、動き補正器が使用するDCT領域動き補正行列(G)を含む。ドリフトバッファ1710は、格納される2つの基準フレームに対して各サブマクロブロック毎にドリフトを蓄積している。但し、サブバマクロブロックのドリフトは、処理前のサブマクロブロックの未量子化レベルと、処理後、すなわち再量子化および/または閾値化によりレベルのビットサイズが縮小された後の未量子化レベルとの差である。好ましくは、サブマクロブロックのドリフトはアレイ形式で格納されるか、同等には行列形式で格納も可能であり、2つの形式間を交互にマップ可能である。
レートコントローラ1704はカレントフレームに含まれるコンテンツ情報を受信して、スキャナ938はそのコンテンツ情報をラン−レベル領域からDCT領域へと変換する。言い換えると、スキャナ938は、ランレベルペアの各セットをその一部またはほとんどがゼロである64個のレベルに拡大する。レベルは、8×8行列または64要素アレイのいずれかに配置されることができる。以下で詳細に説明するように、サブマクロブロックのレベルは64要素アレイで走査順に配列し、サブマクロブロックのドリフトを64の要素アレイに蓄積することが好ましい。
動き補正1712は、ドリフトバッファ1710から蓄積ドリフト(D)を受信し、動きベクトルを使用して適切な動き補正行列(G)を選択する。蓄積ドリフトは適切な動き補正行列(G)を掛けた行列であり、積(GD)はカレントフレームのサブマクロブロックに加算される。
Iピクチャがレートコントローラ1704によって受信されると、動き補正は行われない。但し、レートコントローラ1704は、(L)で表される未量子化レベル用のバッファを含み、その未量子化レベルは加算器1706に提供される。レートコントローラ1704はまた、(L’)で表される未量子化縮小レベルを加算器1706に提供する。サブマクロブロックに関して、未量子化縮小レベルは、再量子化器1704および/または閾値化器936によりマクロブロックのサイズが縮小/シェイブされた後の未量子化レベルである。Iピクチャにおけるサブマクロブロックのドリフトは、処理前の未量子化レベル(L)と未量子化縮小レベル(L’)との間の差である。
加算器1706はドリフトをメモリ1708に提供して、そこでそのサブマクロブロックのドリフトをバッファする。メモリがカレントフレームのサブマクロブロックすべてに対してドリフトを有すると、そのフレームのドリフトはドリフトバッファ1710に格納される。
後続の各フレームに対して、レートコントローラ1704は、ドリフトをドリフトバッファ1710から抽出して、動き補正をそれに適用して、動き補正されたドリフト(GD)をカレントフレームの未量子化レベルに加算する:(L)=(L)+(GD)。ここで(L)は、カレントフレームのサブマクロブロックに対する未量子化レベルの行列/アレイであり、Dは基準サブマクロブロックに対する蓄積ドリフトの行列/アレイであり、(G)はカレントフレームのサブマクロブロックに対する動きベクトルに関連付けられた動き補正行列である。動き補正されたドリフト(GD)はまた、加算器1706に提供される。レートコントローラ1704はカレントフレームのレベルを再量子化/閾値化し、加算器1706にカレントフレームの未量子化レベル(L)と縮小未量子化レベル(L’)の両方を提供する。そしてサブマクロブロックに対する蓄積ドリフトは、以下の式により求められる。
Figure 2006521771
D’がカレントフレームのすべてのサブマクロブロックに対して計算された後、カレントフレームの蓄積ドリフトはドリフトバッファ1710にバッファされる。
先に述べたように、フレーム間符号化フレームは、基準フレームにおけるブロックからのピクセル情報を残余フレームのピクセルに加算することによりMPEGデコーダで生成される。MPEGデコーダは、フレーム間符号化フレームのヘッダに含まれる動きベクトルを使用して、ピクセル値のブロックを基準フレームからフレーム間符号化フレームへ変換する。典型的には、動き補正されたブロック、つまり情報が1つ以上の基準フレームから検索されたものは、2つ以上の基準ブロックの部分から構成される。図5は、動きベクトルの両成分が例えば、8ピクセルなどのブロックサイズの整数倍数でない場合に生じる一般的な状況を示す。動き補正されたブロック502は、1〜4とされる4つのサブブロック508と残余ブロック(図示せず)で構成される。各サブブロック508は、基準ブロック504の部分である。サブブロック508(1)のサイズは(A×B)(「A」はピクセルの行数であり、「B」はピクセルの列数である)であり、基準ブロック504(1)の右下コーナーに対応する。サブブロック508(2)のサイズは(A×(8−B))であり、基準ブロック504(2)の左下コーナーに対応し、サブブロック508(3)のサイズは((8−A)×B)であり、基準ブロック504(3)の右上コーナーに対応し、サブブロック508(4)のサイズは((8−A)×(8−B)であり、基準ブロック504(4)の左上コーナーに対応する。動きベクトル506、r〜rは、サブブロック508(1)〜508(4)が適切に位置付けられるように基準ブロック504(1)〜504(4)を変換する。
行列形式において、動き補正されたブロック502はdmcで表され、以下の式で求められる。
Figure 2006521771
但し、dは以下の式で求められる8×8行列である。
Figure 2006521771
但し、bはi番目の基準ブロック504であり、nrおよびncはそれぞれサブブロック508(i)の行数と列数であり、h nrおよびw ncは識別サブ行列を有する上下直交行列の形式である。4つのサブブロック508のh行列は以下の通りであり、
Figure 2006521771
w行列は以下の通りである。
Figure 2006521771
離散コサイン変換を式15に適用すると以下が生じ、
Figure 2006521771
nrおよびw nc行列はユニタリ直交であるので、DCT演算は分配的である。式14〜16における行列のサイズはすべて8×8で、その結果、D、D、B行列の要素を、図7Aに示す走査順などの所定の順番に配置することにより、式16bの各成分は以下のように書き換えることができる。
Figure 2006521771
但し、プライムの付いた行列のサイズは64×1で、HおよびW行列の関数であるGは、HおよびW行列から計算された64×64である。文字「i」はi番目の基準ブロックを示す。図5に示すように「i」は通常は1〜4までである。但し、明確にするために、文字「i」は下にさげられ、これは基準フレームからカレントフレームに延びる動きベクトルの成分の大きさがそれぞれ整数分のブロックであることを意味する。
すべて同じサイズ(NxN)の行列a、b、c、dおよびeで、
Figure 2006521771
かつ行列aの(n,m)成分は以下の式により求められる行列a、b、c、dおよびeについて考えてみよう。
Figure 2006521771
aおよびb行列における各要素は、走査順アレイへの1つずつのマッピングを有し、走査順アレイの第1の要素(a’=a0,0)は以下の通りである。
Figure 2006521771
fの各要素は、走査順に従ってターム単位でターム上に決定される。例えば、図7Aで示される走査順を使用すると、N=8,b =b、b’=b、b’=b・・・b’63=b7,7そしてf0,0=c0,0、d0,0、f0,1=c0,01,0、f0,2=c0,10,0、・・・およびf0,63=c0,77,0である。
同様の方法で、(G)のDCT領域動き補正(MC)行列の要素が求められる。1つの好適な実施形態では、メモリ1708は、動き補正されたブロック内のすべての可能な整数ピクセルサブブロック配置を明らかにするためのG行列の完全なセットを含む。当業者は承知のように、MPEG−2は整数ピクセル変換の一次結合を経て達成される、サブブロックの半ピクセル変換(half pixel translations)を可能とする。明確にするために、基準フレームからフレーム間符号化フレームへとピクセルのブロックを変換する動きベクトルは、整数変換と見なされるが、当業者は半整数変換(half−integer translations)を理解し、かかる変換は本発明の範囲内であるとみなされる。
動き補正
図18〜20は、ラン−レベル領域における動き補正をトランスコードされるフレームに適用するために、トランスコーダ134によって実行される例示的な論理である。図18では、ステップ1800は、とりわけ、再量子化もしくは閾値化のいずれか、または再量子化および閾値化の両方を使用してフレームのビットサイズを選択的に縮小するトランスコーダ134に応答して、トランスコーダ134内で動き補正スキームを適用するための1つの実施形態を示す。図19では、非制限例示的ステップ1900は動き補正スキームの1つの実施形態を示す。図20では、非制限例示的ステップ2000は再量子化もしくは閾値化のいずれか、または再量子化および閾値化の両方により導入され、図19で示される動き補正スキームで使用される、ドリフトの蓄積の1つの実施形態を示す。図18〜図20では、量子化パラメータがQからQに変更された再量子化により処理されたレベルと閾値化によって処理されたレベルとは、例えばl’のように、プライムをつけて示されるが、一方、再量子化されていない(量子化パラメータが変更されない)または閾値化されていないレベルは、例えばlのようにプライムを付けていない。
図18を参照して、ステップ1802では、プロセッサ1702はVLD902からカレントフレームを受信する。カレントフレームは、とりわけ、ヘッダ、および{r,l(Q)}で表される量子化されたラン−レベルペアのセットを含む。カレントフレームがフレーム間符号化されている場合は、とりわけ、動きベクトルも含む。再量子化および/または閾値化の結果は、フレーム間符号化されたフレームのレベルにおけるドリフトである。フレームをピクセル領域値に変換しなおす従来のトランスコーダでは、トランスコードされる前とトランスコードされた後の基準フレームの差に関して標準動き補正を行い、その結果のDCTを行うことにより、ドリフトは補正される。フレームに対する蓄積ドリフトは、蓄積されたサブマクロブロックドリフトの行列、同等には64要素アレイで構成され、ドリフトはDCT領域である。Iピクチャ、GOPの最初のピクチャが受信されると、蓄積ドリフト(D)はゼロに設定される。Iピクチャが再量子化および/または閾値化により処理された後、各サブブロックに対するドリフト、つまり、入ってくるレベルと処理されたレベルとの差が決定される。フレーム間符号化されたフレームを補正するのに使用することができるように、蓄積ドリフト(D)はドリフトバッファ1710にバッファされる。
ステップ1804では、レートコントローラ1704は、カレントフレームのスライスを処理するために使用されるパラメータを初期化する。とりわけ、レートコントローラ1704は、カレントスライスのシェイブするビット量を決定し、量子化パラメータと閾値化パラメータを初期化する。ステップ1806では、レートコントローラ1704は、カレントフレームがIピクチャであるかどうかを決定する。カレントフレームがIピクチャであれば、レートコントローラ1704はステップ1808に進み、動き補正をカレントフレームのカレントスライスに適用する。典型的には、PピクチャおよびBピクチャも動き補正の一部として再量子化され、これについては以下に述べる。カレントフレームがIピクチャであると決定された後、またはカレントフレームがIピクチャでないと決定され、カレントフレームのカレントスライスに動き補正を適用した後、レートコントローラ1704はステップ1810に進み、スライスを再量子化すべきか、カレントフレームがIピクチャかどうかを決定する。レートコントローラ1704は、両方の条件、すなわち、カレントフレームがIピクチャであることと、再量子化すべきであることが満たされた場合のみ、ステップ1812に進む。上記ですでに述べたように、再量子化するか否かの決定は好ましくは、これに限定されないが、縮小閾値(R)、ピクチャタイプ、最大の最初の量子化パラメータおよび他のパラメータなどの多重パラメータに基づく。以下で説明するように、カレントフレームがBピクチャまたはPピクチャであれば、ステップ1808で行われる動き補正の一部として、レートコントローラ1704はカレントスライスを再量子化するかどうかを決定し、再量子化する場合は、カレントスライスを再量子化する。ステップ1812では、再量子化器1714は、新しい量子化パラメータQ2を使用してレベルを再量子化した。
ステップ1814では、レートコントローラ1704は、カレントスライスを閾値化すべきかどうか決定する。典型的には、すでに述べたように、閾値化するかどうかの決定は、一部には縮小閾値(R)、再量子化によって節約されたビット数およびレベルの絶対値の平均などのパラメータに基づく。但し、閾値化の決定にはより少ないパラメータ、異なるパラメータまたはより多くのパラメータを含む他のパラメータを使用することもできる。
レートコントローラ1704はカレントスライスを閾値化することを決定したら、ステップ1816に進み、カレントスライスを閾値化する。1つの好適な実施形態では、閾値化は図16に示されるステートマシンと共に図15に示される閾値化論理を使用して行われる。閾値化後のレベルはL’(Q)(QはQ、すなわち最初の量子化パラメータまたはQ、すなわち最終量子化パラメータ)として表されることに注意すべきである。カレントスライスのレベルが再量子化されなかったら、それらはQの関数であり、それらが再量子化されたら、それらはQの関数である。
閾値化後、または閾値化されなかった後、レートコントローラ1704はステップ1818に進み、カレントフレームがBピクチャであるかどうか決定し、そうであればステップ1820に進み、再量子化および/または閾値化により生じたレベルにおけるドリフトを蓄積する。ドリフトはピクチャ群を通して蓄積され、ピクチャの新しい群の始めでゼロにリセットされる。
ステップ1822では、レートコントローラ1704は、カレントスライスがカレントフレームの最後のスライスだったかどうか決定し、そうであれば、ステップ1824に進む。一方、カレントスライスがカレントフレームの最後のスライスでなければ、レートコントローラ1704はステップ1804に戻り、終了されるまでカレントフレームのスライスを処理し続ける。
ステップ1824では、スキャナ938は、{r’,l’(Q)}で表されるラン−レベルペアの新しいセットを生成し、プロセッサ1702はカレントフレームが基準フレーム、例えばIピクチャまたはPピクチャであれば蓄積ドリフトを更新する。蓄積ドリフトの更新は、ステップ1820で計算されたカレント蓄積ドリフト(T)を蓄積ドリフト(D)内にバッファすることにより行われる。1つの好適な実施形態では、再量子化および閾値化が並行して行われる。
ステップ1826では、プロセッサ1702はカレントフレームの処理されたラン−レベルペア{r’,l’(Q)}をVLE906に送って処理する。VLE906は、ハフマン符号化を使用してラン−レベルペアを圧縮データに変換して、圧縮フレームを送信する。
図19を参照して、ステップ1900は、DCT領域で動き補正を適用する例示的な方法を示す。ステップ1902では、レートコントローラ1704は、スライスのレベルを逆量子化して、lとして表される未量子化レベルを生成する。
ステップ1904では、レートコントローラ1704は、DCT領域MC行列(G)および蓄積ドリフト(D)の選択された行列をメモリ1708から抽出する。メモリ1708内の各DCT領域MC行列は動きベクトルに関連付けられ、レートコントローラ1704は、カレントスライスのマクロブロックに対する動きベクトルを使用して、どのDCT領域MC行列(G)を抽出すべきかを決定する。蓄積ドリフトの選択された行列は、カレントフレームの動き補正されたサブマクロブロックに対する基準フレームサブマクロブロックに対応し、レートコントローラ1704は、カレントフレームのヘッダ情報を使用して、蓄積ブロックのどの行列(D)を抽出すべきかを決定する。但し、iは蓄積ドリフトの行列が基準フレームの「i番目」のブロックに対応することを示す。言い換えると、カレントフレームの動きベクトルは、蓄積ドリフトの行列をカレントフレームのラン−レベルペアのセットにマップする。カレントフレームがPピクチャの場合、蓄積ドリフトの行列はIピクチャまたはPピクチャなどの先行する基準フレームから選択される。カレントフレームがBピクチャである場合は、蓄積ドリフトの行列は、IピクチャまたはPピクチャなどの先行する基準フレームから、および後続のPピクチャ基準フレームから選択される。
ステップ1906では、カレントスライスのラン−レベルペア{r,l}の各セット毎に、レートコントローラ1704は、蓄積ドリフトDの関連付けられた行列とのG行列の行列乗算により蓄積ドリフトに対する動き補正を計算して、積(GD)が未量子化レベルに加算される。その後、積(GD)および未量子化レベル(l)はバッファされる。典型的には図19で示されるように、カレントフレームにおけるブロックは基準フレームの4つのブロックから情報を受け取り、その結果、1セットのレベルに対して、
Figure 2006521771
。その結果、G行列は、基準フレームのサブマクロブロックに関連付けられた蓄積ドリフトをカレントフレームの動き補正されたサブマクロブロックにマップする。
ステップ1908では、レートコントローラ1704は、カレントスライスが再量子化されるべきかを決定する。典型的には、再量子化すべきか否かの決定は、上記ですでに述べた論理を使用して行われる。
ステップ1910では、量子化1806は量子化パラメータQを使用してカレントスライスのレベルを再量子化する。ラン−レベルペアの再量子化されたセット{r’,l’(Q)}で表される。一方、レートコントローラ1704がカレントスライスを再量子化しないと決定したとすると、ステップ1912で、量子化器1806は量子化パラメータQを使用してカレントスライスのレベルを再量子化する。未量子化レベルが量子化レベルl(Q)に変換しなおされた後、レートコントローラ1704は動き補正が行われる。
図20は、ドリフトを蓄積するためにレートコントローラ1704が取る例示的なステップを示す。ステップ2002で、レートコントローラ1704は処理されたレベル(l’(Q))を逆量子化して、カレントスライスのレベルのセット毎に未量子化処理レベル(l’)を生成する。カレントフレームがIピクチャであれば、レートコントローラ1704は、最初の量子化レベル(l’(Q))を逆量子化して、カレントスライスのレベルのセット毎に未量子化非処理レベル(l)を生成する。しかし、カレントフレームがI−Pピクチャでなければ、動き補正がステップ1906で適用されたときに未量子化非処理レベル(l)が生成されバッファされている。この場合、カレントスライスの未量子化非処理レベル(l)はメモリ1708から抽出される。
ステップ2004では、レートコントローラ1704はカレントスライスにおけるラン−レベルペアの各セットに関連付けられているカレント蓄積ドリフトを計算して、一時的アレイ(T)にカレント蓄積ドリフトをバッファする。カレント蓄積ドリフトは、先の基準フレームからの蓄積ドリフトの動き補正の合計(GD)に瞬間ドリフト、すなわち、未量子化非処理レベル(l)と未量子化処理レベル(l’)の差を加えたものである。すなわちドリフト=
Figure 2006521771
。先の基準フレームからの蓄積ドリフト(D)は、カレントフレームの全体が処理されるまで更新されないので、蓄積ドリフトはカレントフレームのアーチファクトを含まない。
1つの好適な実施形態では、メモリ1708は、Bピクチャを適切に処理するために、直前の基準フレーム(IピクチャまたはPピクチャ)とカレント基準フレーム(Pピクチャ)の両方に対するドリフトを含むことができるように、ドリフトに値する少なくとも2つのフレームに対するバッファを含む。
1つの好適な実施形態では、ビデオフレーム、上部ビデオフィールド、下部ビデオフィールドなどの異なるタイプのフレームに対するドリフトがメモリ1708に別々に蓄積される。本実施形態では、プロセッサ1702は、カレントフレームのヘッダ情報を使用して、カレントフレームがビデオフレームであるかどうか、すなわち非インターレースであるか、上部ビデオフィールドか下部ビデオフィールドかを決定し、その後、動き補正のために、メモリ1708から適切なセットのドリフトを抽出し、適切なセットのドリフトを更新する。明確にするために、動き補正のステップは順番どおりに述べたことを重視すべきである。しかしながら、当業者が認識するように、ステップは異なる順番および/または並行して実行可能であろう。1つの好適な実施形態では、計算上の効率を高める際に、これに限定されないが、量子化、逆量子化、新しいラン値の計算、行列の線形演算などのステップが行われる。
1つの好適な実施形態では、B−ピクチャは動き補正なしで処理される。言い換えると、B−Pピクチャに関しては、ステップ1900は省略される。B−ピクチャは基準ピクチャとして使用されないのでB−ピクチャの動き補正は省略することができ、B−ピクチャにおけるドリフト誤差は蓄積されず、必然的に、後続のピクチャの動き補正に使用される。多くのMPEG−2ストリームは多数のB−ピクチャを含むので、B−ピクチャに対して動き補正を行わないことにより計算上の効率が高められる。
本発明の例示的好適な実施形態が示され、述べられたが、述べられた発明に対する多くの変更、変形または修正が行われ得、そのいずれも本発明の精神から逸脱することがないことは、当業者にとって明らかであろう。それゆえ、変更、変形および修正は、本発明の範囲内であると見なされるべきである。また、本発明の上記の実施形態、特にいかなる「好適な実施形態」も単に実施の可能な非制限例であり、単に本発明の原則の明確な理解を説明しているにすぎないことも重視すべきである。
本発明の好適な実施形態は、以下の図面を参照してより理解することができる。図面における構成要素は必ずしも一律の縮尺で描かれておらず、本発明の原則を明確に示すことに重点が置かれている。さらに、図面において、いくつかの図を通して、同じ参照番号が対応部分を表す。
図1は、本発明の好適な実施形態が採用され得る、加入者テレビシステムなどのブロードバンド通信システムのブロック図である。 図2Aは、一連のピクチャからの実例となるピクチャである。図2Bは、一連のピクチャからの実例となるピクチャである。 図3は、図2Bで示されたピクチャの部分的ピクチャである。 図4は、残存ピクチャである。 図5は、動き補正されたブロックのブロック図である。 図6は、エンコーダのブロック図である。 7Aは、ジグザグ走査順の図である。図7Bは、ジグザグ走査順の図である。 図8Aは、量子化された行列の図である。図8Bは、図8Aに示された、量子化された行列に対するラン−レベルペアのセットの図である。図8Cは、図8Aに示された、量子化された行列に対するラン−レベルペアのセットの図である。 図9は、トランスコーダの実施形態のブロック図である。 図10は、ビット節約対再量子化パラメータのグラフである。 図11は、閾値関数のグラフである。 図12は、レートコントローラのブロック図である。 図13は、再量子化/閾値化を実行する際に取られるステップのフローチャートである。 図14は、再量子化するべきかを決定するのに取られるステップのフローチャートである。 図15は、閾値化するのに取られるステップのフローチャートである。 図16は、閾値ステートマシンの状態のブロック図である。 図17は、トランスコーダの別の実施形態のブロック図である。 図18は、デジタルストリームを再量子化および閾値化する際に取られるステップのフローチャートである。 図19は、動き補正の際に取られるステップのフローチャートである。 図20は、ドリフトを蓄積する際に取られるステップのフローチャートである。

Claims (24)

  1. 圧縮フレームのデジタルストリームをトランスコードする方法であって、該方法は、
    (a)それに含まれるコンテンツ情報と非コンテンツ情報とを有する圧縮ビデオフレームを受信する工程と、
    (b)フレームの総圧縮サイズ(N)を決定する工程と、
    (c)圧縮フレームからシェイブする総ビット数(N)を少なくともフレームの総圧縮サイズから決定する工程と、
    (d)フレームの所定の部分について複数の統計を決定する工程と、
    (e)所定部分についての統計の少なくとも1つに少なくとも部分的に基づいて、所定部分を再量子化すべきかどうかを決定する工程と、
    (f)所定部分を再量子化する決定に応答して、所定部分のレベルを再量子化する工程と、
    (g)所定部分についての統計の少なくとも1つに少なくとも部分的に基づいて、所定部分を閾値化すべきかどうかを決定する工程と、
    (h)所定部分を閾値化する決定に応答して、所定部分のレベルを閾値化する工程と、
    (i)所定部分を送信する工程と、
    を含む方法。
  2. 工程(d)に先立って、
    (j)ビデオフレームをDCT領域に解凍する工程であって、DCT領域では、ピクセル情報のブロックがレベルのブロックとして表される工程と、
    (k)フレームを複数部分に解析する工程と、
    工程(i)にさきだって、所定部分を再圧縮し、工程(i)で送信された所定部分は再圧縮された所定部分である工程と、
    をさらに含む、請求項1に記載の方法。
  3. 所定部分についての複数の統計は、所定部分の圧縮されたコンテンツサイズ(Ssize)を含む、請求項1に記載の方法。
  4. 所定部分についての複数の統計は、所定部分のレベルを量子化するのに使用される量子化パラメータの平均を含む、請求項1に記載の方法。
  5. 所定部分についての複数の統計は、所定部分のランの平均を含む、請求項1に記載の方法。
  6. 工程(e)に先立って、所定部分の最初の圧縮コンテンツサイズ(Sint)を決定する工程と、
    工程(e)に先立って、所定部分からシェイブする目標ビット数(N_shave)を決定する工程と、
    工程(i)に先立って、所定部分の最終圧縮コンテンツサイズ(Sfnl)を決定する工程と、
    所定部分に対する縮小誤差(e)を計算する工程であって、縮小誤差はシェイブする目標ビット数と、最終および最初の圧縮コンテンツサイズ間の差との差e=N_shave−(Sfnl−Sint)として定義される工程と、
    をさらに含む、請求項1に記載の方法。
  7. 縮小誤差を蓄積する工程であって、蓄積された縮小誤差はフレームの後続部分からシェイブするビット数を決定する際に使用される工程をさらに含む、請求項6に記載の方法。
  8. フレームにおける部分数はNportionsであり、所定部分は工程(e)、(f)、(g)および(h)に従って処理されるNportionsのうちのK番目であり、
    フレームの総圧縮コンテンツサイズ(C)を決定する工程と、
    先行(K−1)部分に対する縮小誤差を蓄積する工程と、
    をさらに含み、
    Eが先行部分に対する蓄積された縮小誤差であるとして、所定部分からシェイブするビット数は以下の式で求められる、
    Figure 2006521771
    請求項6に記載の方法。
  9. 工程(f)の後、および工程(g)に先立って、所定部分の統計の少なくとも1つを再決定する工程であって、所定部分についての少なくとも1つの再決定された統計は工程(g)で使用される工程をさらに含む、請求項1に記載の方法。
  10. 決定された統計は、所定部分の圧縮コンテンツサイズ(Ssize)を含み、圧縮コンテンツサイズは所定部分が再量子化された後、再決定される、請求項9に記載の方法。
  11. 所定部分について決定された統計の1つに少なくとも基づいて、所定部分に対する再量子化パラメータを決定する工程をさらに含む、請求項1に記載の方法。
  12. 所定部分は第1の量子化パラメータ(Q)を使用してすでに量子化されており、再量子化パラメータ(Q)は第1の量子化パラメータの2倍、Q=2Qである、請求項11に記載の方法。
  13. 所定部分は第1の量子化パラメータ(Q)を使用してすでに量子化されており、再量子化パラメータ(Q)は第1の量子化パラメータの4倍、Q=4Qである、請求項11に記載の方法。
  14. 再量子化パラメータは、所定部分の圧縮コンテンツサイズがおよそ60%から70%縮小されるように選択される、請求項11に記載の方法。
  15. 再量子化パラメータは、所定部分の圧縮コンテンツサイズが少なくとも70%縮小されるように選択される、請求項11に記載の方法。
  16. 所定部分はすでに量子化されたレベルの多重ブロックで構成され、工程(d)は、すでに量子化されたレベルを量子化する際に使用される最大量子化パラメータ(Q1MAX)とすでに量子化されたレベルの平均(Lavg)の両方を決定する工程を含み、Q1MAXおよびLavgは再量子化パラメータを決定する際に使用される、請求項11に記載の方法。
  17. ビデオフレームのピクチャタイプを決定する工程であって、ビデオフレームはMPEGフレームであり、ピクチャタイプ群はIピクチャ、PピクチャおよびBピクチャからなり、ビデオフレームのピクチャタイプは再量子化パラメータを決定する際に使用される工程をさらに含む、請求項11に記載の方法。
  18. 工程(h)に先立って、閾値化によりゼロに設定するレベルの目標数(NTHRESH)を決定する工程と、
    所定幅および高さプロファイルを有する閾値関数より下のレベル数(CNT)を決定する工程と、
    目標数(NTHRESH)の所定範囲内である、閾値関数より下のレベル数(CNT)に応答して、閾値関数より下のレベルの大きさをゼロに設定する工程と、
    目標数(NTHRESH)の所定範囲外である、閾値関数より下のレベル数(CNT)に応答して、閾値関数を調整する工程と、
    をさらに含む、請求項1に記載の方法。
  19. 調整する工程は、閾値関数の高さプロファイルを変更する工程をさらに含む、請求項18に記載の方法。
  20. レベルは走査位置の順番に配置され、閾値関数は走査位置の第1の範囲に及び、調整する工程は、
    閾値関数が走査位置の第2の範囲に及ぶように、閾値関数の相対位置をシフトする工程をさらに含む、請求項18に記載の方法。
  21. 走査位置の第1の範囲に含まれる最小走査位置は、走査位置の第2の範囲に含まれる最小走査位置よりも小さい、請求項20に記載の方法。
  22. 走査位置の第1の範囲に含まれる最小走査位置は、走査位置の第2の範囲に含まれる最小走査位置より大きい、請求項20に記載の方法。
  23. 閾値関数は走査位置の第1の範囲に及び、所定部分はレベルの多重ブロックで構成され、調整する工程は、
    所定部分のブロックを第1群のブロックと第2群のブロックとに分割する工程と、
    第2の閾値関数を第2群に関連付ける工程であって、第2の閾値関数は走査位置の第2の範囲に及ぶ工程と、
    (m)第1の閾値関数より下のレベル数(CNT1)を決定する工程と、
    (n)第2の閾値関数より下のレベル数(CNT2)を決定する工程と、
    (o)目標数(NTHRESH)の所定範囲内であるCNT1とCNT2の合計に応答して、第1及び第2の閾値関数より下のレベルの大きさをゼロに設定する工程と、
    (p)目標数(NTHRESH)の所定範囲外であるCNT1とCNT2の合計に応答して、第1群から第2群に所定数のブロックを移す工程と、
    目標数(NTHRESH)の所定範囲外であるCNT1とCNT2の合計に応答して、CNT1とCNT2の合計が目標数(NTHRESH)の所定範囲内となるまで、工程(m)(n)(o)および(p)を繰り返す工程と、
    をさらに含む、請求項18に記載の方法。
  24. フレームの所定部分はレベルの多重ブロックを有するフレームのスライスであり、レベルのブロックは並行して閾値化される、請求項1に記載の方法。
JP2006509340A 2003-03-26 2004-03-26 ハイブリッドレートコントローラーを備えるデジタルストリームトランスコーダー Pending JP2006521771A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/397,658 US7236521B2 (en) 2002-03-27 2003-03-26 Digital stream transcoder
US10/635,406 US7295610B2 (en) 2002-03-27 2003-08-06 Hybrid rate control in a digital stream transcoder
US10/658,131 US7190723B2 (en) 2002-03-27 2003-09-09 Digital stream transcoder with a hybrid-rate controller
PCT/US2004/009291 WO2004088968A2 (en) 2003-03-26 2004-03-26 A digital stream transcoder with a hybrid-rate controller

Publications (1)

Publication Number Publication Date
JP2006521771A true JP2006521771A (ja) 2006-09-21

Family

ID=33135931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006509340A Pending JP2006521771A (ja) 2003-03-26 2004-03-26 ハイブリッドレートコントローラーを備えるデジタルストリームトランスコーダー

Country Status (5)

Country Link
US (2) US7190723B2 (ja)
EP (1) EP1606943A4 (ja)
JP (1) JP2006521771A (ja)
CA (1) CA2520158C (ja)
WO (1) WO2004088968A2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7274857B2 (en) * 2001-12-31 2007-09-25 Scientific-Atlanta, Inc. Trick modes for compressed video streams
JP4336957B2 (ja) * 2003-09-30 2009-09-30 日本電気株式会社 トランスポートストリームの暗号化装置及び編集装置並びにこれらの方法
US7391809B2 (en) * 2003-12-30 2008-06-24 Microsoft Corporation Scalable video transcoding
US20050201458A1 (en) * 2004-03-12 2005-09-15 Pinnacle Systems, Inc. Image encoding system and method
US7864857B1 (en) * 2004-06-30 2011-01-04 Teradici Corporation Data comparison methods and apparatus suitable for image processing and motion search
US8600217B2 (en) 2004-07-14 2013-12-03 Arturo A. Rodriguez System and method for improving quality of displayed picture during trick modes
KR100697516B1 (ko) * 2004-10-27 2007-03-20 엘지전자 주식회사 3차원 웨이블릿 변환 기반의 동영상 코딩 방법
EP1727371A1 (en) * 2005-05-27 2006-11-29 Thomson Licensing Method for controlling the encoder output bit rate in a block-based video encoder, and corresponding video encoder apparatus
US8107540B2 (en) * 2005-07-11 2012-01-31 Cheetah Technologies, L.P. Image complexity computation in packet based video broadcast systems
CN101009829A (zh) * 2006-01-25 2007-08-01 松下电器产业株式会社 可以及累积误差的比特元率转换编码方法,转换编码器,及集成电路
JP2007243838A (ja) * 2006-03-10 2007-09-20 Toshiba Corp 情報転送装置、情報受信装置およびコンピュータプログラム
US7756136B2 (en) * 2006-07-10 2010-07-13 Cheetah Technologies, L.P. Spatial and temporal loss determination in packet based video broadcast system in an encrypted environment
US20080267295A1 (en) * 2007-04-26 2008-10-30 Chih-Ta Star Sung Video decompression, de-interlacing and frame rate conversion with frame buffer compression
US20090033791A1 (en) * 2007-07-31 2009-02-05 Scientific-Atlanta, Inc. Video processing systems and methods
BRPI0820720A2 (pt) * 2007-12-11 2015-06-16 Thomson Licensing Métodos e sistemas para transcodificação dentro da cadeia de distribuição
US8355447B2 (en) * 2007-12-19 2013-01-15 Vixs Systems, Inc. Video encoder with ring buffering of run-level pairs and methods for use therewith
WO2010007590A2 (en) * 2008-07-17 2010-01-21 Amimon Ltd. Methods circuits and systems for transmission and reconstruction of a video block
US8300696B2 (en) * 2008-07-25 2012-10-30 Cisco Technology, Inc. Transcoding for systems operating under plural video coding specifications
JP5401909B2 (ja) * 2008-10-16 2014-01-29 富士通株式会社 トランスコード装置およびトランスコード方法
BRPI0921986A2 (pt) * 2008-11-25 2018-06-05 Thomson Licensing métodos e aparelho para filtralçao por eliminação de artefatos à base de matrizes esparsas para codificação e decodificação de vídeo
US8094931B2 (en) * 2008-12-09 2012-01-10 Himax Technologies Limited Method of color components compression
US8711927B2 (en) * 2008-12-11 2014-04-29 Stmicroelectronics International N.V. System and method for video encoding
US9391635B2 (en) * 2009-05-15 2016-07-12 Texas Instruments Incorporated Block scanner and run-level encoder from AC to DC values
EP2489036B1 (en) * 2009-10-12 2015-04-15 Nokia Technologies OY Method, apparatus and computer program for processing multi-channel audio signals
US8374113B2 (en) 2010-06-03 2013-02-12 Cisco Technology, Inc. Distributed gateway for reliable multicast wireless video
US8811167B2 (en) 2011-02-24 2014-08-19 Cisco Technology, Inc. Shaping multimedia stream bit-rates to adapt to network conditions
US20130083840A1 (en) * 2011-09-30 2013-04-04 Broadcom Corporation Advance encode processing based on raw video data
US9998750B2 (en) 2013-03-15 2018-06-12 Cisco Technology, Inc. Systems and methods for guided conversion of video from a first to a second compression format
WO2018023554A1 (en) * 2016-08-04 2018-02-08 SZ DJI Technology Co., Ltd. System and methods for bit rate control
EP3531700B1 (en) * 2016-10-18 2022-04-06 Panasonic Intellectual Property Management Co., Ltd. Image coding method, transmission method and image coding device
CN109831670B (zh) * 2019-02-26 2020-04-24 北京大学深圳研究生院 一种反量化方法、系统、设备及计算机可读介质
WO2021051047A1 (en) 2019-09-14 2021-03-18 Bytedance Inc. Chroma quantization parameter in video coding
CN114651442A (zh) 2019-10-09 2022-06-21 字节跳动有限公司 视频编解码中的跨分量适应性回路滤波
KR20220073746A (ko) 2019-10-14 2022-06-03 바이트댄스 아이엔씨 비디오 처리에서 크로마 양자화 파라미터 사용
CN114788279A (zh) 2019-12-09 2022-07-22 字节跳动有限公司 视频编解码中使用的量化组
WO2021138293A1 (en) 2019-12-31 2021-07-08 Bytedance Inc. Adaptive color transform in video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001510965A (ja) * 1997-07-18 2001-08-07 ブリティッシュ・ブロードキャスティング・コーポレーション 復号された信号の再符号化
JP2003037843A (ja) * 2001-07-23 2003-02-07 Sony Corp 画像処理装置および方法、記録媒体、並びにプログラム

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US61414A (en) * 1867-01-22 fbink
US4972260A (en) * 1988-08-22 1990-11-20 Matsushita Electric Industrial Co., Ltd. Apparatus for coding a moving-picture signal
US5333212A (en) * 1991-03-04 1994-07-26 Storm Technology Image compression technique with regionally selective compression ratio
JP3196906B2 (ja) * 1992-08-21 2001-08-06 富士ゼロックス株式会社 画像信号の符号化装置
US5614952A (en) * 1994-10-11 1997-03-25 Hitachi America, Ltd. Digital video decoder for decoding digital high definition and/or digital standard definition television signals
US5426463A (en) * 1993-02-22 1995-06-20 Rca Thomson Licensing Corporation Apparatus for controlling quantizing in a video signal compressor
US5537440A (en) * 1994-01-07 1996-07-16 Motorola, Inc. Efficient transcoding device and method
DE4416967A1 (de) 1994-05-13 1995-11-16 Thomson Brandt Gmbh Verfahren und Vorrichtung zur Transcodierung von Bitströmen mit Videodaten
JPH07322252A (ja) * 1994-05-23 1995-12-08 Canon Inc 画像符号化装置
JP3208039B2 (ja) * 1995-03-09 2001-09-10 ケイディーディーアイ株式会社 画像符号化データのレート変換装置
EP0735772A3 (en) * 1995-03-27 1998-04-01 Hewlett-Packard Company Method for selecting JPEG quantization tables for low bandwidth applications
SE515535C2 (sv) * 1996-10-25 2001-08-27 Ericsson Telefon Ab L M En transkoder
US6141447A (en) 1996-11-21 2000-10-31 C-Cube Microsystems, Inc. Compressed video transcoder
US5870146A (en) 1997-01-21 1999-02-09 Multilink, Incorporated Device and method for digital video transcoding
US6181711B1 (en) * 1997-06-26 2001-01-30 Cisco Systems, Inc. System and method for transporting a compressed video and data bit stream over a communication channel
US6058143A (en) 1998-02-20 2000-05-02 Thomson Licensing S.A. Motion vector extrapolation for transcoding video sequences
US6466623B1 (en) 1998-03-27 2002-10-15 Industrial Technology Research Institute Method and apparatus for motion estimation for high performance transcoding
US6477706B1 (en) * 1998-05-01 2002-11-05 Cogent Technology, Inc. Cable television system using transcoding method
KR100304103B1 (ko) * 1998-05-29 2001-09-24 이계철 비트율이급변되는재양자화계단크기선택방법및그를이용한비트율제어방법
US6167084A (en) * 1998-08-27 2000-12-26 Motorola, Inc. Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
US6459731B1 (en) * 1998-08-28 2002-10-01 Lucent Technologies Inc. Technique for video communications using a coding-matched filter arrangement
US6301392B1 (en) * 1998-09-03 2001-10-09 Intel Corporation Efficient methodology to select the quantization threshold parameters in a DWT-based image compression scheme in order to score a predefined minimum number of images into a fixed size secondary storage
US6570922B1 (en) 1998-11-24 2003-05-27 General Instrument Corporation Rate control for an MPEG transcoder without a priori knowledge of picture type
US6434197B1 (en) 1999-01-07 2002-08-13 General Instrument Corporation Multi-functional transcoder for compressed bit streams
US6400763B1 (en) 1999-02-18 2002-06-04 Hewlett-Packard Company Compression system which re-uses prior motion vectors
US6259741B1 (en) 1999-02-18 2001-07-10 General Instrument Corporation Method of architecture for converting MPEG-2 4:2:2-profile bitstreams into main-profile bitstreams
US6628839B1 (en) * 1999-02-23 2003-09-30 Matsushita Electric Industrial Co., Ltd. Image coding system converting apparatus, image coding system converting method, and recording medium
US6275536B1 (en) 1999-06-23 2001-08-14 General Instrument Corporation Implementation architectures of a multi-channel MPEG video transcoder using multiple programmable processors
GB2352905B (en) * 1999-07-30 2003-10-29 Sony Uk Ltd Data compression
US6441754B1 (en) 1999-08-17 2002-08-27 General Instrument Corporation Apparatus and methods for transcoder-based adaptive quantization
GB2356998A (en) * 1999-12-02 2001-06-06 Sony Uk Ltd Video signal processing
CN1166208C (zh) * 2000-01-14 2004-09-08 皇家菲利浦电子有限公司 代码转换方法和设备
CN1593062A (zh) 2000-02-04 2005-03-09 皇家菲利浦电子有限公司 用于位速率变码应用的量化方法
US6771703B1 (en) * 2000-06-30 2004-08-03 Emc Corporation Efficient scaling of nonscalable MPEG-2 Video
US6748020B1 (en) * 2000-10-25 2004-06-08 General Instrument Corporation Transcoder-multiplexer (transmux) software architecture
KR100433516B1 (ko) * 2000-12-08 2004-05-31 삼성전자주식회사 트랜스코딩 방법
US6778607B2 (en) * 2001-05-22 2004-08-17 Intel Corporation Method and apparatus for multi-rate encoding of video sequences
US6950463B2 (en) * 2001-06-13 2005-09-27 Microsoft Corporation Non-compensated transcoding of a video stream
US6804299B2 (en) * 2001-06-15 2004-10-12 Microsoft Corporation Methods and systems for reducing requantization-originated generational error in predictive video streams using motion compensation
KR100440952B1 (ko) * 2001-08-04 2004-07-21 삼성전자주식회사 압축 영상 비트 스트림의 부호어 교환을 통한 비트율 변환 방법 및 이에 적합한 장치
US6959116B2 (en) * 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
US20030161407A1 (en) * 2002-02-22 2003-08-28 International Business Machines Corporation Programmable and adaptive temporal filter for video encoding
US7236521B2 (en) * 2002-03-27 2007-06-26 Scientific-Atlanta, Inc. Digital stream transcoder
US7010037B2 (en) * 2002-08-06 2006-03-07 Koninklijke Philips Electronics N.V. System and method for rate-distortion optimized data partitioning for video coding using backward adaptation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001510965A (ja) * 1997-07-18 2001-08-07 ブリティッシュ・ブロードキャスティング・コーポレーション 復号された信号の再符号化
JP2003037843A (ja) * 2001-07-23 2003-02-07 Sony Corp 画像処理装置および方法、記録媒体、並びにプログラム

Also Published As

Publication number Publication date
EP1606943A2 (en) 2005-12-21
WO2004088968A2 (en) 2004-10-14
WO2004088968A3 (en) 2005-07-28
US8885705B2 (en) 2014-11-11
EP1606943A4 (en) 2006-06-21
US20070127566A1 (en) 2007-06-07
US7190723B2 (en) 2007-03-13
US20040062313A1 (en) 2004-04-01
CA2520158A1 (en) 2004-10-14
CA2520158C (en) 2008-06-10

Similar Documents

Publication Publication Date Title
US8885705B2 (en) Digital stream transcoder with a hybrid-rate controller
US8279922B2 (en) Hybrid rate control in a digital stream transcoder
US8155211B2 (en) Digital stream transcoder
JP4109113B2 (ja) ビデオ伝送におけるビットストリーム間の切換
Tudor et al. Real-time transcoding of MPEG-2 video bit streams
US7170938B1 (en) Rate control method for video transcoding
KR100312603B1 (ko) 영상 압축 시스템의 연산의 단계적 성능저하를 위한 방법
US7072393B2 (en) Multiple parallel encoders and statistical analysis thereof for encoding a video sequence
EP1445958A1 (en) Quantization method and system, for instance for video MPEG applications, and computer program product therefor
US20060227868A1 (en) System and method of reduced-temporal-resolution update for video coding and quality control
Assuncao et al. Transcoding of single-layer MPEG video into lower rates
US6961377B2 (en) Transcoder system for compressed digital video bitstreams
JP2006295449A (ja) レート変換方法及びレート変換装置
US6040875A (en) Method to compensate for a fade in a digital video input sequence
JP4292659B2 (ja) 画像情報変換装置及び画像情報変換方法
Kim et al. An accurate bit-rate control for real-time MPEG video encoder
JP4292658B2 (ja) 画像情報変換装置及び画像情報変換方法
EP1944980A2 (en) Bit rate control algorithm
Zdepski et al. Overview of the Grand Alliance HDTV video compression system
Bonuccelli et al. „Video Transcoding Techniques in Mobile Systems “
Rao et al. AVS China
JP2001145108A (ja) 画像情報変換装置及び方法
JP2004032300A (ja) 動画像圧縮符号化装置
JP2007235377A (ja) 画像符号化方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091118

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100511