ビデオの伝送方法
圧縮された録画済みビデオは可変ビットレートリンク上を帯域幅予約を使用して送信される。無駄にされる帯域幅を最小限に抑えるために2つを一致させるような方法で、常に使用され(予約され)る前記伝送レートを決定するために、前記データストリームは全体としてのチャンクの平均ビットレートが同じポイントで開始する任意のさらに短いチャンクの平均ビットレートに決して劣らないように選ばれるチャンクに分割される。次に、前記チャンクはバッファリングの問題なくこの平均レートを使用して送信できる。好ましくは、前記チャンクの前記平均ビットレートが同じポイントで開始する任意のさらに短い又は更に長いチャンクの平均ビットレートに決して劣らないようにチャンクを選ぶ。これには、帯域幅に対する要求が、過去のこのような要求で指定される割り当てより高い割り当てを絶対に要求しなくてよいという利点がある。異なる程度の圧縮のストリームの間で切り替わるシステムでは、切り替え点はチャンク間境界と一致するように有利に選べる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば電気通信網上でのデジタルでコーディングされたビデオ信号、さらに詳細には圧縮アルゴリズムを使用して符号化されたビデオ信号の伝送に関する。
【背景技術】
【0002】
圧縮アルゴリズムの理論的根拠は、送信されることを必要とするビット数を削減するためにオリジナルのビデオ信号の固有の冗長性を利用することである。多くのこのようなアルゴリズムは、ITU H.263規格及びISO MPEG規格などの国際規格に定められている。これらの有用な検討は、Ghanbari,Mの「ビデオコーディング、標準コーデック入門(Video Coding, an introduction to standard codecs)」1999年ロンドン、IEEに示されている。
【0003】
冗長性の程度は、当然画像コンテンツに応じて変化し、その結果、圧縮効率もまた変化し、フレームあたりのコーディング済みビット数が変わることになる。1つのオプションは、送信済みビットレートが時間とともに大きく変化する、いわゆる可変ビットレート(VBR)システムと同様にビットをそれらが生成されるにつれて送信することである。もう1つのオプション(固定ビットレート(CBR)システム)は、これらの変動をならすために送信機と受信機の両方でバッファを利用し、前記送信バッファから前記受信バッファに定速で送信することである。CBRシステムは、バッファオーバフローを妨害するために(例えば使用される量子化の粗さを調整する、あるいはフレーム削除によって)データが生成されるレートを変えるためにフィードバック機構を活用する。バッファリングの使用は必ず遅延の発生を伴ない、開始の待ち時間(LOS)を増加する。つまりユーザは、ピクチャの復号及び表示が開始する前に受信バッファが必要なレベルまで満たされる間、待機しなければならない。前記フィードバック機構は画質の低下を伴なう。
【0004】
また、ビットレート変動を完全には排除せずとも、削減するためにある程度のバッファリングを利用することも提案されてきた(例えば、Furini,M.及びTowsley,D.F.、「インターネットでのリアルタイムトラフィック伝送(Real-Time Traffic transmissions over the Internet)」、マルチメディアに関するIEEE議事録(IEEE Transactions on Multimedia)、2001年3月、第3巻、第1号を参照すること)。
【0005】
電気通信網、及び特にインターネットなどのパケット網で送信するときの主要な考慮事項は、パケット損失及び予測不可能な遅延により問題が引き起こされる可能性があるネットワーク輻輳の影響である。これにより、送信機が、ネットワークに一時期その伝送のために指定された保証済みビットレートを割り当てるようにネットワークに要求できる予約システムが提案された。「RSVP」と呼ばれる1つのこのようなシステムは、インターネットエンジニアリング作業部会(Internet Engineering Task Force)(IETF)文書RFC2205に記述されている。しかしながら、差別化されたサービスの完全優先転送(Expedited Forwarding of Differentiated Service)、またはCR−LDPなどの他のシステムも使用されてよい。
【0006】
ライブビデオ画像のケースでは、コーディングされているビットストリームの将来の特性は未知であるが、録画されている画像についても、この特性は未知である(with recorded material,however,they are)。予約システムにより予約されるビットレートの量を変更できるという事実は、前記コーディングされた資料の知識に基づいて、常にどの程度多くのネットワーク容量を予約するのかの方針に関して決定する機会を提供する。簡略な手法はピーク(VBR、バッファリングされていない)ビットレートを計算し、伝送の持続時間全体でこれを要求することであるが、これはネットワーク容量を無駄使いし、言うまでもなく要求される容量が大きいほど、ネットワークがそれを提供できず、したがって予約要求が拒絶される確率は高くなる。要求されるビットレートを最小限に抑える別の簡略な手法は、全体的な伝送の平均ビットレートを計算し、これを要求することである。しかしながら、これは受信機における非常に大きなバッファ、(その大きな記憶量が今日相対的に安価であることを考えると)さらに重要なことには大きなLOSに対するニーズを生じさせる。ピークレート手法に対する改良はFurini及びTowsleyによる前記に引用された論文で検討されている。彼らの方式は、ピークレートが最大に到達するビデオシーケンスのポイントを特定し、そのポイントまでの期間このレートを要求することを必要とする。次に、シーケンスの残りでの最大ピークレートが定められ、この(低い方の)レートが要求される。このプロセスは、シーケンス全体で同じように続行する。前記論文は、ある程度のバッファリングが適用される可能性があり、それにより予約アルゴリズムが適用される前に有効なピークレートを削減することも提案している。このシステムは、単一ピークレートシステムに比べてネットワーク使用の効率を改善するが、依然として多くの無駄に使われる(つまり予約されるが、使用されない)ネットワーク容量があり、言うまでもなく、最大ピークレートがシーケンスの終盤で発生する場合に利点は小さい。しかしながら、それには、要求されるネットワーク容量の量が減少し、特に予約要求が、過去の要求のビットレートを上回るビットレートを絶対に要求せず、それにより予約要求が拒絶されるリスクを削減するという利点がある。
【発明の開示】
【課題を解決するための手段】
【0007】
本発明のある態様に従って、
(a)第1のセグメントが、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有するシーケンスの始めにある部分であり、それぞれの続くセグメントは、任意の短い方のこのような部分のフレームあたりの平均コーディング済みビット数以上である、フレームあたりの平均コーディング済みビット数を有する先行するセグメントの直後の部分である、シーケンスをセグメントに分割することと、
(b)セグメントごとにビットレートを決定することと、
(c)前記決定されたビットレートで信号を送信することと、
を備える、フレームあたりのコーディング済みビット数が一定ではないように圧縮アルゴリズムを使用して符号化されたビデオ信号のデジタルシーケンスを送信する方法が提供される。
【0008】
別の態様では、本発明は、
(a)ストリームの少なくとも1つを、それをセグメントに分割するために分析することと、
(b)ステップ(a)で特定されるセグメント間の遷移の近傍で切り替え点を選択することと、
(c)前記第1のシーケンスがステップ(a)で分析されなかった場合、第1のシーケンスを分析し、それをセグメントに分割することと、
(d)前記切り替え点までの前記第1のシーケンスの前記セグメントまたは各セグメントのためのビットレートを決定することと、
(e)前記決定されたビットレート(複数の場合がある)で前記切り替え点まで前記第1のシーケンスの前記信号を送信することと、
(f)前記切り替え点から前方へ、それをセグメントに分割するために第2のシーケンスを含む修正されたシーケンスを分析することと、
(g)前記修正されたシーケンスのセグメントのためのビットレートを決定することと、
(h)前記決定されたビットレート(複数の場合がある)で前記修正されたシーケンスの前記信号を送信することと、
を備え、
前記分析がそれぞれ前記関連性のあるシーケンスをセグメントに分割することにより実行され、そこでは前記第1のセグメントは、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりのコーディング済みビット平均数を有するシーケンスの始まりにある部分であり、それぞれの続くセグメントが任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する先行するセグメントの直後の部分である、フレームあたりのコーディング済みのビット数が一定にならないように圧縮アルゴリズムを使用して符号化されたビデオ信号のデジタルシーケンスを送信する方法を提供し、前記ソースビデオはそれぞれ異なる圧縮率を有する第1のシーケンス及び第2のシーケンスにコーディングされていた。
【0009】
本発明の他の態様は、下位請求項に以下に詳しく説かれている。
【発明を実施するための最良の形態】
【0010】
以下、添付図面を参照して本発明のいくつかの実施形態を例示する。
【0011】
受信機で、(フレーム周期の整数に等しいが)前記受信機がフレームgの復号を開始する時間tgから受信機がフレームhの復号を開始する時間thまで伸張するなんらかの任意の時間セグメントを考える。このセグメントの持続時間はhからgである。さらに、このセグメントの間の伝送速度がフレーム周期あたりAビットであると仮定する。
【0012】
明らかに、時間tgで、受信機はフレームgを含むフレームまですべてのフレームのためのビットをすでに受信しているはずである。つまり、
【数1】
【0013】
ここではdjはフレームjについてエンコーダにより生成されたコーディング済みのビットの数である。
【0014】
ただし、受信機が、時間g前に、p個の追加のビットも受信したと仮定する。つまり合計、
【数2】
【0015】
である。
【0016】
受信機がフレームkの復号を開始する任意のときtk(tg≦tk≦th)では、受信機は(k−g)Aビットも受信したので、したがって
時間tkで受信された総ビットは
【数3】
【0017】
である。
【0018】
この時点で、受信機はフレームkを含むフレームまでのすべてのビットを有する必要がある。つまり、
時間tkで必要とされる総ビットは
【数4】
【0019】
である。
【0020】
受信されたビット数は必要とされる数に少なくとも等しくなくてはならないため、バッファアンダフローを回避するために満たす必要のある条件は、
【数5】
【0021】
または
【数6】
【0022】
である。
【0023】
これがプリロードビットpの伝送を行わずに達成されなければならない場合には、これは、
【数7】
【0024】
または
【数8】
【0025】
を必要とする。
【0026】
従って、伝送済みのレートAは、
【数9】
【0027】
の場合に達成されるであろうk(g+1≦k≦h)の任意の値についてフレームg+1からkの上でフレームあたりの平均生成ビット以上でなければならない。
【0028】
このレートを使用するということは、k=hについて、つまり前記セグメントの最後に最大が発生しない限り、前記セグメントの間に送信されるビット(h−g)Aの数が前記セグメントについて生成されるビット数を超えることを意味する。最大が通過した後にこのようにして計算された伝送レートを引き続き使用することは絶対的に必要なものより高いレートの使用を表していると考えられることを前提として、ここに説明される本発明の第1のバージョンは、これらの最大が常に前記セグメントの最後に発生するように、送信されるデータをセグメントに分けることを目的とする。
【0029】
説明される第1の方法は、インターネットなどのパケット網で、MPEGなどの圧縮アルゴリズムを使用してすでにコーディングされた、記憶されているビデオ資料の伝送用である。それは、前記ネットワークがビットレート容量の予約に対する措置を有することを前提とする。それは、
−開始の小さな待ち時間
−低送信ビットレート、及び
−高伝送効率(つまり少ない浪費)
を達成するような方法で、時間の関数として使用されるビットレートを決定することを目的としている。しかし、以上は矛盾する要件であるため、いかなる解決策も必ず妥協案となってしまわざるを得ない。
【0030】
この例では、選ばれるビットレートに対する制約はないこと、及び伝送に使用されるビットレート及びネットワークで予約されるビットレートが同じであることが仮定される。
【0031】
第1のバージョンは、要求されたビットレートが絶対に増加できない。つまり、それは単調に減少する時間の関数であるという制約を受けている。つまり、前記に注記されたように、これは予約の失敗のリスクを削減する上で望ましい。
【0032】
このような膨大な記憶装置ハードウェアは現在のユーザにとっては問題ではないため、実際には、この方法の結果生じる必要とされるバッファサイズも、VBRビデオ伝送を達成するために平均ビットレートを使用することに比較して大幅に削減されているが、この解決策では、デコーダで必要とされるバッファサイズを削減することは主要な懸念ではない。実際問題ではめったに遭遇しない最悪のケースでも、必要とされるバッファサイズはもはや平均ビットレートでVBRビデオストリームを送信するときに必要されるより大きくないであろう。
【0033】
以下のアルゴリズムは、使用される「伝送の関数(「FOT」)」を決定する。
【0034】
ビデオシーケンスの中にN個のフレームがあり、フレームごとに符号化されたビット数はそれぞれd0、d1、…dN−1であると仮定する。
【0035】
前記に注記されたように、このアルゴリズムは、伝送の関数が絶対に増加できないが、減少するにすぎないという制約を受けている。
【0036】
概念上、伝送速度の変化はFOTの任意のフレーム間隔で発生できる。実際問題としては、使用されている特定の予約システムの制約に応じて、前記レートをどの程度頻繁に変更してよいかに関する制限があってよい。しかしながら、単調に減少するFOTを用いると、その唯一の効果は実際に必要とされるより多くの容量の予約であるため、(ネットワーク容量を浪費するが)レート変更の遅延は品質の損失を生じさせない。前記アルゴリズムの第1のステップは、FOTがどのくらい多くの「ステップ」を有するか、及びいつ各ステップが発生するのかを検出することである。
【0037】
最初に、開始からフレームiを含むフレームまでのビデオシーケンスの平均ビットレートを表す以下を定義する。
【数10】
【0038】
次に、A0、A0、…AN−1が計算され、これらから最大Aiを有するiの値が計算される。この値がk0であると仮定する。第1の「ステップ」エッジは、フレームk0の最後で発生すると定められる。それは、フレームk0の最後まで、FOTがその最高の伝送速度を必要とすることを意味する。
【0039】
第1の「ステップ」を検出した後に、フレーム(k0+1)は以下のフレームのための「第1の」フレームとして見なされ、Ai+1(1)がi=k0+1、k0+2、...N−1について計算される。これについての式は、
【数11】
【0040】
または、一般的なケースでは
【数12】
【0041】
である。
【0042】
再び、最大値は、フレームk1の最後で第2の「ステップ」エッジとして選ばれ、k1はiの対応する値である。前記手順は、フレームN−1での最後の「ステップ」エッジに達するまで繰り返される。一般的には、これは、ビデオシーケンスをM−1個のセグメントに分割するとして見なされてよい、M個の値km,m=0、...M−1(ここではkM−1はつねにN−1に等しい)を生じさせる。セグメント0はフレーム0からk0を備える。他のセグメントmはそれぞれフレームkm−1+1からkmを備える。
【0043】
前記アルゴリズムの第2の段階の目的は、各「ステップ」の「レベル」に適切な伝送速度を選ぶことである。ここでは、理論的には、プリロードされるビットを使用しなくても各「ステップ」の最後までにすべての必要とされるビットが送達されることを保証できる最低のレートは、前記セグメントを構成するフレームのビットレートの平均である。さらに高いレートを用いる場合にはネットワーク容量は浪費される可能性がある一方、さらに低レートは、必ずプリロードされるビットを必要とし、その結果さらに高いLOSを必要とする。また、さらに高いレートはリソースの予約の失敗のさらに大きなリスクにつながるに違いない。
【0044】
M個のセグメントm=0,1、…M−1がある。また、以下を定義する。
【0045】
Siはセグメントiの中で生成されるビットの合計である。つまり、
【数13】
【0046】
Riはセグメントiの中のFOTの伝送レートである。(K0=k0+1であることに注意する。)
Kjはセグメントiの中のフレームの数である。つまり、ki−k1−jである。
【0047】
このケースでは、必要とされるレートは平均レートRi=Si/Kiであるにすぎない。つまりi=1,2…M−1である。
【0048】
この方法は、k−1=−1と定義する場合に、セグメント0のためのレートR0を計算するためにも使用できる。
【0049】
MPEGビデオコーディングでは、第1のフレームはつねにIフレームであり、それはPフレームまたはBフレームより多くのビットを生成することに注意する。したがって、多くの場合、結果は、第1のセグメントがただ1つのフレームしか含まず、伝送速度R0がRiよりはるかに大きいことを示す。ユーザは、さらに高い確率でリソース予約を成功させるために数個の「フレーム」間隔を容易に待つことができるため、R0=Riを設定することを好む。
【0050】
第3のステップ。FOT全体を決定した後に、デコーダでの必要とされるバッファサイズを決定できる。
【0051】
ここで、選ばれてよいレートに対する制約を受ける第2の修正されたバージョンを説明する。例えば、制約は、レートがフレームあたりビットの整数でなければならない、あるいはさらに一般的に、レートが離散レート数の1つでなければならないということである場合がある。分析では、以下のように定められる量子化演算子を使用する。
【0052】
Q+(X)は(「天井レート」とも呼ばれる)X以上の最低許容レートを意味する。
【0053】
Q−(X)は(「下限レート」とも呼ばれる)X以下の最高許容レートを意味する。
【0054】
2つのオプションが説明される。
【0055】
(a)天井レートまで切り上げる。このケースでは、使用されるレートは、ある特定のセグメントについて厳密に必要なものより高くなる場合があり、続くセグメントにとってさらに低いレートを使用する機会を提供してよい。
【0056】
(b)下限レートを切り下げる。このケースでは、使用されるレートは、ある特定のセグメントについて必要なものより低くなる場合があり、先行するセグメントのためにさらに高いレートを使用するニーズが生じる。
【0057】
第1に天井オプションを考える。最初に、オリジナルFOTの中の第1の「ステップ」の「高さ」の上限値を、新しいFOTの中の精緻化された第1の「ステップ」の「高さ」として定義する。このようにして、第1の「ステップ」の後に、「第1の」ステップに属するフレームのビットの合計より多くのビットが受信機に送信されたことが注目されるであろう。したがって、第2の「ステップ」を精緻化すると、続く「ステップ」に属するが、過去の「ステップ(複数の場合がある)」の中で送信されたビットの数を除外し、第2の「ステップ」の平均レートを計算し直す必要がある。新しい平均ビットレートの上限値が古い第3の「ステップ」の平均レートの上限値以上である場合、それは単に精緻化された第2の「ステップ」の「高さ」として定義される。それ以外の場合、古い第3の「ステップ」の平均ビットレートの上限値を、精緻化された第2の「ステップ」の「高さ」として定義する。精緻化された最後の「ステップ」の「高さ」が固定されるまでこの手順に従うこと。それはつねに各「ステップ」の上限値を取るため、VBRビデオストリーム伝送が前記ビデオシーケンスの持続時間より短い数フレーム間隔で達成されることが考えられる。新しいFOTに基づいた伝送をシミュレーションすることで、FOTの寿命持続時間は正確に指定できる。いったんVBRビデオストリーム伝送が達成されると、予約されたネットワークリソースはただちに解放できる。したがって、100%の帯域幅活用は依然として保証されている。精緻化された第1の「ステップ」の「高さ」を用いると、LOSを正確に計算し直すことができる。最後に、伝送手順をシミュレーションすることにより、オーバフローを防止するために必要とされるバッファサイズも固定できる。
【0058】
採用される手順は以下のとおりである。セグメントへの分割は前記のように行われる。
【0059】
前記に定められた量Si、Ri、Kiだけではなく、セグメントiの中の伝送速度の仮の値であるR1iも導入する。
【0060】
I.すべての平均速度
【数14】
【0061】
を計算する。
【0062】
II.セグメント0のレートを
【数15】
【0063】
として設定する。
【0064】
(前述されたように、第1のセグメントにさらに低いレートを使用することが所望される場合には、代わりにセグメント1で開始してよいことに注意する。)
III.量子化の前に、過去のセグメントの間に送信された余分のビットを差し引くことによって、どちらか大きい方であるセグメント1のレートを設定する。
【数16】
【0065】
IV.残りのセグメントi=2…M−1の場合、どちらか大きい方である。
【数17】
【0066】
当然、i=M−1について第2の代替策は発生しない。
【0067】
説明される第3のバージョンは、「下限」レートを使用する。このケースでは、処理は最後の「ステップ」から開始して逆の順序で実行されなければならない。これは、ある特定のセグメントで送信できないビットが過去のセグメントの中で事前に送信できるために必要である。前記特殊な手順は、最初に、新しいFOTの精緻化された最後の「ステップ」の新しい伝送速度として、最後の「ステップ」の平均ビットレートの下限値を定める。次に、精緻化された「最後の」ステップにより必要とされるが、伝送できないビットの数が決定できる。過去の「ステップ(複数の場合がある)」は、新しい最後の「ステップ」FOTが開始する前に送信された余分のビットのこのような数を保証しなければならない。したがって、最後から2番目の「ステップ」を精緻化するときには、最後の「ステップ」により必要とされるビットの余分な数が追加された、それ自体必要とするビットをそれが搬送することを目的としなければならない。したがって、新しい平均ビットレートは、第2の最後の「ステップ」のために計算し直されなければならない。第2の最後の「ステップ」の新しい平均ビットレートの下限が、オリジナルのFOTの第3の最後の「ステップ」の平均レートの下限より大きくない場合には、それを新しい第2の最後の「ステップ」の「高さ」として定めるにすぎない。それ以外の場合、古い第3の最後の「ステップ」の平均ビットレートの下限を新しい第2の最後の「ステップ」の「高さ」として定義する。第1の「ステップ」までこの手順に従うと、精緻化が達成され、精緻化されたFOTが得られる。上限のケースでのように、プリフェッチされたビットの数及び精緻化された第1の「ステップ」の「高さ」を用いると、LOSは正確に計算し直すことができる。最後に、伝送手順をシミュレーションすることにより、オーバフローを妨げるために必要とされるバッファサイズも固定される。
【0068】
前記のように、M個のセグメントm=0,1、…M−1がある。また、以下を定義する。
【0069】
Siはセグメントiの中で生成されるビットの総数である。つまり、
【数18】
【0070】
Riはセグメントiの中のFOTの伝送レートである。
【0071】
Kiはセグメントiの中のフレームの数である。つまり、ki−ki−1である。
【0072】
R1iは、セグメントiの中で仮定する仮の伝送速度である。
【0073】
I.すべての平均レート
【数19】
【0074】
を計算する。
【0075】
II.セグメントM−1の伝送速度RM−1を、このセグメントのための平均レートの下限値に等しく設定する。つまり、
【数20】
【0076】
II.セグメントM−1でのアンダフローを妨げるためにセグメントM−1の始まりで受信機バッファ内に存在することが必要とされるプリロードされたビットPM−1の数を計算する。
【数21】
【0077】
III.それから、次のセグメントのレートは、以下のように計算することができ、
【数22】
【0078】
どちらか低い方であり、
【数23】
【0079】
を用いる。
【0080】
IV.このプロセスは、一般式、m=M−3…,0を使用して繰り返され、
【数24】
【0081】
どちらか低い方である。
【0082】
そして、
【数25】
【0083】
再び、所望される場合、この反復はセグメント0のために使用されるm=1及びR1で停止されてよい。
【0084】
このプロセスの結果、第1のセグメントのためのプリロードであり、最初に送信される必要があるP0の値が生じる。事実上、受信機がt=0で第1のフレームの復号を開始する前に送信されるすべてのビットを含むプリロードb0を定義することが便利である。
【0085】
R0は、前記のように計算されると仮定すると、
b0=P0+R0
である。
【0086】
しかしながら、レートR1がセグメント0のために使用される場合には、(K0−1)R1個のビットだけがt=0とセグメントの最後の間で送信することができるため、総プリロードは、
P0+K0R0−(K0−1)R1
である。
【0087】
開始の待ち時間(LOS)は、R1が使用されていると仮定すると、b0/R1である。
【0088】
ここでバッファサイズの問題を説明する。FOTを用いると、妥当な伝送速度及びLOSを取得できるのは確かである。ネットワーク伝送効率はほぼ100%となり、それは固定平均レート帯域幅を直接的に使用するより小さなバッファサイズを必要とする。しかしながら、それがピークレート帯域幅を予約することにより必要とされるより依然としてはるかに大きい状況もある。ピークレート帯域幅を予約する方式では、デコーダでのバッファサイズが最も複雑なフレームで費やされるビット数と同じ程度多いだけで十分である。しかしながら、私たちの方式では、それより大きなバッファが必要である。固定平均ビットレートと比較すると、私たちの方式は大部分の状況ではるかに小さなバッファサイズを取得できるが、最悪の状況では私たちの方式により必要とされるバッファサイズはほぼ固定平均ビットレートにより必要とされるバッファサイズとなることが認められなければならない。このような状況は、ビデオシーケンスの最後のフレームで最大のAiが出現するときに起こる。このような状況では、私たちの「階段を下りる(down stairs)」曲線はほぼただ1つの「ステップ」を有する。したがって、「ステップ」変更によりバッファサイズを最小限に抑えるほど効果的ではないであろう。それにも関わらず、このような状況はほとんど出現しない。「ピークビット」が後半に現れるほど、A1に対する影響は少ない。シーケンスの最後で、相当数の例外的に複雑なフレームが異常に出現しない限り、それは絶対に起こらないであろう。どのような状況が発生するのかに関係なく、LOSは私たちの方式では絶対に問題にはならない。現在、私たちは、ユーザが少し大きな記憶域を有するハードウェアを持つことは問題となってはならないと考えている。小さなLOS及び優れたネットワーク伝送効率がユーザによるさらなる懸念を引き起こすはずである。
【0089】
加えて、ユーザが私たちの方式が必要とする大きなバッファサイズを与えることができないとしても、伝送効率とデコーダで必要とされるバッファサイズの間に妥協案が講じられてよい。このような妥協案を用いれば、必要とされるバッファサイズは、ユーザが望むようにさらに削減できる。
【0090】
ちなみに、私たちの現在のアルゴリズムの説明は基本的な単位としてのフレームあたりビットに基づいているだけであるが、当然単位はGOPとして、または特定数のピクチャまたはパケットとして共に定義できる。このアルゴリズムにおいてどのような単位を定義したいと考えるかに関係なく、原則は一般的であり、共通でなければならない。
【0091】
ここで、「下限」法を使用してテストビデオシーケンスをコーディングするいくつかの例を説明する。それぞれのケースでは伝送の関数の値f(t)(またはRi)、b0の値、及び示唆されているb0の伝送レートが、(a)前記アルゴリズムのために、(b)Furini及びTowsleyの方法を使用して、及び(c)単純な平均ビットレートを使用して示される。
【0092】
例1「JacknBox」
(a)共通中間フォーマット(CIF)の(Jacknboxと名付けられる)テストシーケンス、つまりH.263+を使用し、ステップサイズ16の固定量子化器を用いる持続時間内の140個のフレームをコーディングし、私たちのアルゴリズムを用いるFOT関数を引き出した。
【0093】
f(t)=
5100 0<t<T48;
3645 T48<t<=T51;
3058 T51<t<=T52;
2830 T52<t<T61;
2682 T61<t<=T70;
2651 T70<t<=T71;
2464 T71<t<=T90;
2447 T90<t<=T108;
2321 T108<t.
本明細書中では、デコーダがフレームiを表示する時間としてTiを定める。本明細書中のすべての測定レートの測定単位をフレーム間隔あたりビットと定める。b0=39824ビットである。b0のために示唆されている伝送レートは、フレーム間隔あたり5100ビットである。
【0094】
(b)Furini及びTowsleyの方法を使用すると、以下が得られ、
f(t)=
9896 T<t<=T29;
9432 T29<t<=T40;
7272 T40<t<=T41;
6552 T41<t<=T46;
6184 T46<t<=T47;
5328 T47<t<=T48;
3696 T48<t<=T51;
3632 T51<t<=T106;
3552 T106<t<=T138;
2896 T138<t.
b0=39824ビットである。
【0095】
彼らの伝送方式では、b0はフレーム間隔あたり39824ビットで達成されるであろう。
【0096】
(c)固定平均ビットレートを用いると、関数は、
f(t)=3669となる。
【0097】
b0=108488ビットである。
【0098】
b0は、フレーム間隔あたり3669ビットで達成される。
【0099】
図1は、図形としてプロットされたこれらの結果を示す。
【0100】
分析結果は表1に一覧表示される。
【表1】
【0101】
また、CBRレート制御を用いて同じビデオシーケンスも符号化した。このケースではLOSは29656/3735=7.94フレームとなるであろう。ただし、10フレームは通常のCBRレート制御を用いて省略され、私たちが示すビット量はVBR符号化におけるビットの平均数と同じである。
【0102】
例2.H.263+を使用する8400フレームのテレビ番組
このテストは、8400フレームを用いる通常のTV番組QCIF(4分の1−CIF)シーケンスを使用し、H.263+を使用し、ステップサイズ16の固定量子化器でコーディングした。ピクチャタイプは、H.263+推奨案では132フレームごとの強制更新を用いるIPPPP…である。
【0103】
(a)
f(t)=
4977 T0<t<=T3173;
4218 T3173<t<=T3679;
3968 T3679<t<=T3680;
3848 T3680<t<=T3681;
3844 T3681<t<=T4752;
3090 T4752<t<=T8392;
992 T8392<t<=T8393;
816 T8393<t<=T8394;
644 T8394<t<=T8396;
544 T8396<t<=T8397;
384 t>T8397;
b0=13944ビットである。
【0104】
前述したように、b0はフレーム間隔あたり4977ビットという第1のレートで達成されてよい。
【0105】
(b)
f(x)=
27672 T0<t<=T8339; 21952 T8358<t<=T8359;
26704 T8339<t<T8340; 21744 T8359<t<=T8369;
26560 T8340<t<=T8341; 20448 T8369<t<=T8373;
26488 T8341<t<=T8342; 20344 T8373<t<=T8384;
26240 T8342<t<=T8344; 19960 T8384<t<=T8385;
25832 T8344<t<=T8345; 19016 T8385<t<=T8391;
25136 T8345<t<=T8346; 11656 T8391<t<=T8392;
24168 T8346<t<=T8347; 992 T8392<t<=T8393;
23816 T8347<t<=T8352; 816 T8393<t<=T8394;
23760 T8352<t<=T8353; 648 T8394<t<=T8396;
23616 T8353<t<=T8356; 544 T8396<t<=T8397;
22824 T8356<t<=T8357; 384 T8397<t<=T8399.
22528 T8357<t<=T8358;
b0=13944ビットである。
【0106】
b0はフレーム間隔あたり29762ビットで送信されてよい。
【0107】
(c)固定平均ビットレートを用いると、FOTは以下のようになるであろう。
【0108】
f(t)=3966
b0=3348584ビット
b0は、フレーム間隔あたり3669ビットで設定されてよい。
【0109】
図2は、H.263+を用いた8400フレームのテレビ番組のためのこれらのFOT曲線を示す。
【0110】
分析結果は表2に一覧表示される。
【表2】
【0111】
例3.MPEG4でコーディングされる8400フレームのテレビQCIF番組
8400フレームという同じテレビ番組QCIFシーケンスが、ステップサイズ10の固定量子化器を用いて、MPEG4を使用してコーディングされた。ピクチャタイプはIBBPBBPBBPBB(N=12、M=3)である。B個のピクチャを用いると、ピクチャの符号化シーケンスがピクチャの表示シーケンスと異なることが注記される必要がある。したがって、前記関係付けられるIまたはP個のピクチャは前記B個のピクチャの前に送信されなければならない。私たちのアルゴリズムを使用する前になんらかの前処理が必要とされる。
【0112】
(a)最終的に、私たちのFOTは以下のとおりである。
【0113】
f(t)=
7426 T0<t<=T4750;
6938 T4750<t<=T4786;
66470 T4786<t<=T4798;
6309 T4798<t<=T4870;
6190 T4870<t<=T4900;
6083 T4900<t<=T4918;
6026 T4918<t<=T8398;
168 T8398<t.
b0=16548ビットである。
【0114】
b0は、フレーム間隔あたり7426ビットを使用して送信できる。
【0115】
(b)
f(X)=
57472 T0<t<=T8338;
50616 T8338<t<=T8350;
49504 T8350<t<=T8368;
48608 T8368<t<=T8371;
48536 T8371<t<=T8383;
44968 T8383<t<=T8386;
31752 T8386<t<=T8389;
28696 T8389<t<=T8398;
168 T8398<t.
b0=16040ビットである。
【0116】
b0は、フレーム間隔あたり57472ビットで設定されてよい。
【0117】
(c)固定平均ビットレートを用いると、FOTは以下のとおりとなるであろう。
【0118】
f(x)=6825
b0=2874758ビット
b0は、フレーム間隔あたり6825ビットで設定されてよい。
【0119】
図3は、MPEG4(N=12、M=3)を用いる8400フレームのテレビ番組のためのこれらのFOT曲線を示す。
【0120】
分析結果は表3に一覧表示される。
【表3】
【0121】
前記実験結果から、100%の伝送効率を依然として保ちながら、LOSが大幅に削減されたことが分かる。ネットワークリソースは浪費されていない。さらに改善可能である唯一のことは、デコーダで必要とされるバッファサイズをさらに最小限に抑えるということである。図4は本発明に従って動作可能なサーバのブロック図である。それは、通常のコンピュータ構成部品、つまりプロセッサ10、メモリ11、ディスク記憶装置12、キーボード13、ディスプレイ14、及び電気通信網16への接続のためのネットワークインタフェース15を含む。送信されるために使用可能なビデオシーケンスは、符号化ファイル20の形式で従来の方法でディスク記憶装置12に記憶される。
【0122】
やはりディスク記憶装置12に記憶されるのは、前記サーバの動作を制御することを実現するためのコンピュータプログラム21である。「下限」法を使用するこのプログラムの動作は、ここで図5に示されるフローチャートに関して説明される。
【0123】
ステップ100
要求は、所望されるビデオシーケンスの伝送のためにインタフェース15を介して遠隔端末から受信される。このような要求はそのシーケンスを含むファイル20の内のその1つのファイル名を含む。
【0124】
ステップ101
プロセッサ10は、ディスク記憶装置12から問題のファイルを読み取り、記憶されているシーケンスの中のN個のフレームごとにファイル中のコーディング済みビット数djを求め、N及びdj(j=0…N−1)の値をメモリ11に記憶する。
【0125】
ステップ102
プロセッサは前述されたようにkO…kM−1を計算し、メモリ11にM及びk0…kM−1を記憶する。
【0126】
ステップ103 すべてのiに対してRliを計算する。
【0127】
ステップ104 RM−1=Q−{RlM−1}を設定し、PM−1を計算する。
【0128】
ステップ106 ポインタm=M−2を設定する。
【0129】
ステップ107 Rm及びPmを計算する。
【0130】
ステップ109 mを減分する。m≧0の場合、ステップ107に移動する。
【0131】
ステップ111 b0=P0+R0を計算する。
【0132】
ステップ112 セグメント持続時間を計算する。このインプリメンテーションでは、プリロード及びセグメント0は伝送目的の単一のセグメントと見なされる。したがって、
τ0=(b0/R0+k0+1)*τ
τi=(ki−ki-1)*τ i=1…M−1
ここでは、τはフレーム期間の長さである。
【0133】
ステップ113 iを0に設定する。
【0134】
ステップ114 Riのレート及び少なくともτiという持続時間を指定する予約要求を送信する。
【0135】
ステップ115 (i=0の時にP0プリロードビットが先行する)レートRiでセグメントiを送信する。
【0136】
ステップ116 すべてのセグメントが送信されたら停止する。それ以外の場合には、117でiを増分し、ステップ114に移動する。
【0137】
前述されたRSVPシステムなどのいくつかの予約システムは、マルチキャストに対応するために、受信側端末により予約要求が発行されることを必要とする。このようなケースでは、ステップ113はRi及びτiを指定する受信側端末へのメッセージの伝送を指定するために修正されるであろう。その結果端末は必要とされる予約要求をネットワークに送信するであろう。
【0138】
いくつかのネットワークでは、予約されたレートが変更されてよい時間になんらかの制約がある場合がある。しかしながら、前記に採用される手法は、第1を除くあらゆる予約要求が以前より低いレートを要求するためにこのような問題点の影響は受けない。したがって、実際の送信レートが削減された後にこのような要求を処理する上での遅延から予約レートは高いままとなる。このケースでは、ネットワーク活用の効率は低下するが、伝送品質は影響を及ぼされない。
【0139】
前述された予約アルゴリズムは、予約されたビットレートが絶対に増加されてはならないという制約の上に構築される。しかしながら、これは必須ではないため、この制約を条件としない本発明の第2の実施形態がここに説明される。
【0140】
そのケースでは、各セグメントは、前述したように、前記セグメントのための平均生成ビットレートΣdjがそのセグメントの開始で始まるビデオシーケンスの任意のさらに短い部分については平均以上であるが、同じ点で開始するさらに長い部分の平均より少ないように選ばれる。
【0141】
手順は一般的なセグメントq(=0...M−1)について説明される。
【数26】
【0142】
を使用すると、
すべてのkq−1+1≦i≦kq−1+H(あるいはこれがさらに短い場合にはkq−1+1≦i≦N−1)の場合のAi(q)が計算され、ここではHは許可されなければならない何らかの定められた最大長である。
【0143】
Ai(q)が最大であるiの値を検出し、kqをiのこの値に等しく設定する。
【0144】
これは、最大平均レートの検索がその範囲内で制限されるという点を除き、前述された手順と同じである。
【0145】
いったんkq(q=0、…M−1)が求められると、実際の伝送速度は、レートが先行するセグメントのレートを上回る、あるいは続くセグメントのレートを下回るのを防ぐために定められるあらゆる制限が省略されるという点を除き、まさに前述されたとおりに求めることができる。
【0146】
本発明の第2の実施形態は、ビデオレート切り替えの可能性を探求する。ここでは、異なる画質、従って異なるデータレートの2つの(またはそれ以上の)ビデオストリームが生成される。通常、これらは、量子化の異なる粗さ、つまり、低品質を使用することにより生成されてよく、低データレートストリームは粗い量子化器を使用し、さらに高いデータレートを有するさらに高品質のストリームはあまり粗くない量子化器を使用する。
【0147】
ビデオレート切り替えの可能性は、おそらくレート予約の失敗は伝送の始まりで発生するこの状況で特に重要であり、前記状況は相対的に低品質のストリームを最初に送信し、後に信号及び/またはネットワーク状態の性質がそれを可能にするときにさらに高品質のストリームに切り替えることにより矯正できる。しかしながら説明されるシステムは、ビデオレート切り替えがなんらかの他の理由で使用される場合にも有効である。
【0148】
フレーム間のコーディングが使用されるとき、2つの異なるストリームの間の切り替えにより、コーダ及びデコーダでの予測値のミストラッキングが原因でピクチャの深刻な劣化が引き起こされる場合がある。しかしながら、切り替え先のストリームのフレームと切り替え元のストリームのフレームの間の差異を本質的にコードアップする(code up)遷移コーディング済みフレームをときおり生成することにより、画質のこのような劣化を受けずに切り替えが対処されてよい。したがって、第1のストリームからのフレームの伝送には複数の遷移フレームの1つが、次に第2のストリームからのフレームが後に続く。このような遷移フレームの生成は新しくなく、さらに説明されない。このようなシステムの説明については、私たちの国際公開第98/26604号(及び対応する米国特許第6,002,440号)を参照されたい。いわゆる「SPフレーム」を使用する別のこのようなシステムは、2001年1月09日から12日、ドイツ、EibseeのITU−Tビデオコーディング専門家グループ会議(ITU−T Video Coding Experts Group Meeting)、Marta Karczewicz及びRagip Kurcerenの「SPフレームの提案(A Proposal for SP−frames)」、文書VCEG−L−27、及び2001年9月24日から27日、米国カリフォルニア州サンタバーバラ(Santa Barbara、CA,USA)、ITU−Tビデオコーディング専門家グループ会議、Ragip Kurceren及びMarta Karczewicz、「SPフレーム実証(SP−frame demonstrations)」、文書VCEG−N42に説明されている。
【0149】
前述された「FOT」手法に関連して、2つのストリーム間で切り替えるという問題は、処理される必要のあるいくつかの問題を提示している。第1のストリームから第2のストリームに時間内の任意の点での切り替えを検討する場合には、一般的に、デコーダバッファが、第2のストリームを復号するために有効ではない第1のストリームのフレームを含むであろう。したがって、デコーダが第2のストリームの復号に即座に切り替えるためであると想定すると、これらのフレームは未使用となり、浪費された伝送容量を表す。さらに悪いことには、第2のストリームの復号のために必要とされるフレームはバッファ内には存在しないであろう。理論的には、ストリームの始まりとなるために実際に送信されなければならない第2のストリームの部分の始まりを考慮して第2のストリームのためのFOTが再計算されると、これは対処可能であるが、実際問題としては、これは表示されるピクチャの中断が回避されなければならない場合に法外に高い送信済みデータレート要件を生じさせることになる。
【0150】
無駄にされるビットという問題は、デコータがバッファ内に残る第1のストリームのフレームの復号を続行できるようにすることによって回避でき、この期間中、バッファは第2のストリーム(つまり、遷移フレーム(複数の場合がある)及び第2のストリームのフレーム)の復号のために必要とされるフレームのいくつかを蓄積する可能性があるが、それにも関わらず過剰な送信済みビットレート要件という危険が残る。
【0151】
理想的には、ビットストリーム切り替えは、使用可能な帯域幅が出現するとすぐに発生しなければならない。しかしながら、いま説明された問題のためにこれは実際的ではない。また、遷移フレーム(通常フレーム毎ではなく選択されたポイントだけで生成される)が生成されなければならない場合、これらが提供されなければならないポイント(切り替え点)が、好ましくは事前に計画される必要がある。
【0152】
このような考慮に基づき、最初に、FOTの「ステップ」の「エッジ」に一致するときに切り替える可能性を検討する。すべての送信済みのビットはピクチャに復号されているため、各「ステップ」の「エッジ」で、受信機バッファがビットを記憶しないのがこの方式の特徴である。したがって、万一オリジナルストリームの「エッジ」で切り替えると、すべての送信済みビットは受信機バッファから空にされ、ビットストリーム切り替えのために浪費されるビットはなくなる。
【0153】
オリジナルビットストリームの「ステップエッジ」へ切り替え点を設定すると送信済みビットは浪費されなくてよいが、新しいストリームの切り替え点が「ステップエッジ」にない場合にはさらに問題があるであろう。理由は、切り替え点が新しいストリームの「ステップエッジ」にない場合、新しいストリームのためのいくつかの事前に蓄積されたビットが、受信機でビデオを連続的に再生するために非常に短い時間の空間内で送信されなければならない可能性があるためである。それは、おそらく新しいストリームが暗示する予約レートよりもはるかに高いレートの予約要求を生じさせる可能性がある。新しいビットストリームの中の切り替え点が「ステップ」の真中にある場合は、蓄積されたビットの不足が高レート予約を生じさせる。したがって、理想的には新しいビデオストリームの切り替え点も「ステップエッジ」になければならない。
【0154】
前記分析に従って、前記2つのストリームのために最適な切り替え点を有する唯一の機会は、それらが同じ「エッジポイント」を有する場合であると考えられる可能性がある。それ以外の場合、どちらかのビットが浪費されるか、あるいはビットストリーム切り替え後に非常に高いビットレートを必要とする。幸いなことに追加の調査時に、異なる量子化器から作成されるFOT曲線について、それらが絶対に同じではないにしても「ステップエッジ」が同様に配置された(do have similarly positioned “step edges”)ことが判明した。その理由は、ビデオシーケンスでは、複雑なピクチャは、どの量子化器が選択されるのかに関係なく通常のビットより多くのビットを失わせるためである。
【0155】
私たちはいくつかの実験でこれを検証した。実験では、140CIF Jacknboxビデオシーケンスが選択された。
【0156】
第1の実験では、同じビデオシーケンスに基づいた異なるビデオストリームがそのFOTにおいてともにそれらの「ステップエッジ」に近づくかどうかを明確にしたいと考える。図6では、異なる量子化器に基づいたFOT曲線の類似性が示されている。前記曲線は、2、3、4、10、16及び31という量子化器ステップサイズに相当し、Q2、Q3等と記される。量子化器ステップサイズが増加するにつれて、FOTがますます平坦になることが分かる。しかしながら、それらは依然としてほぼ同時に「ステップエッジ」を有する。加えて、異なるFOTの「エッジ」ポイントが類似しているが、それらは厳密に同じではないことが注意される必要がある。図7及び図8は「ステップエッジ」での異なるFOT曲線のさらなる詳細を開示する。それらは厳密に同じではないが、近似する場所でビットストリームを切り替えてもほとんど損害を与えない。以下の実験によってさらにそれを検証してもよい。
【0157】
第2の実験では、固定量子化器16で生成されたビットストリーム(Q16ストリーム)を、フレーム間隔ごとに固定量子化器8により生成される第2のビットストリーム(Q8ストリーム)に切り替えるものと仮定する。図9では、それぞれフレーム35、42、45、49、50及び52でビットストリームを切り替える場合のいくつかの予約曲線を示す。図10では、異なるフレーム間隔でビットストリームが切り替えられるときに無駄にされるビットの数を示す。図9及び図10は、「エッジ」ポイントまたは他のポイントでの切り替えストリームの間での差異を描くには十分なはずである。図9では、切り替えポイントが「ステップエッジ」から遠い場合に、必要とされる伝送速度がQ8ストリームの最初に必要とされる伝送速度よりもなおさらに高くなることが分かる。それは、私たちが初期に分析したとおりである。この状況では、ビットストリーム切り替え後の適切な表示を実現するために短時間内に必要なビット蓄積を達成する必要がある。したがって、必要とされる伝送速度は非常に高い可能性があり、このようなビットストリーム切り替えを完了することは非現実的になる。他方、ビットストリームが「エッジポイント」近くへ切り替えられる場合には、FOT内の各「ステップ」は独立しているため、非常に高い伝送速度が必要なビット蓄積を達成するという要件はない。図10では、「エッジポイント」近くでビットストリームを切り替えることがさらに賢明であることも気付くことができる。FOT曲線では、常に、続くフレームのためにいくつかのビットを事前に蓄積する必要がある。ビットストリーム切り替えが適用されると、オリジナルストリームのために事前に蓄積されたビットはまったく役に立たなくなる。これらのビットは無駄にされる。
【0158】
図10では、「ステップエッジ」だけでビットストリームを切り替えるとビットを無駄にしないことは容易に分かる。それが「ステップエッジ」に近くなるほど、無駄にされるビットは少なくなる。図9及び図10の両方から、FOTの最善の切り替え点がそれらの「ステップエッジ」であることが検証される。
【0159】
実際には、第1のストリームから第2のストリームに切り替えるための切り替え点を正確にどの点で選ぶのかという問題に関して、前記2つのストリームのステップが一致する場合には、言うまでもなく曖昧さはない。しかしながら、タイミングに差がある場合には、
a)(実現しやすさを追求して)第1のストリームの中でステップを選ぶ。
【0160】
b)(同様に実現が容易な)第2のストリームでステップを選ぶ。
【0161】
c)前記2つのステップの内のより早期のステップを選ぶ(それにより無駄にされるビットを最小限に抑える)。
【0162】
d)前記2つのステップの内のより後期のステップを選ぶ(それにより第2のストリームのための予約帯域幅の増加を回避する)。
【0163】
しかしながら、実際には、性能という点でのそれらの間の差異はかなり小さいため、どのオプションを選択するのかはほとんど関係しない。つまり、実際には、選ばれた切り替え点が「ステップ」から数フレーム偏位される場合も、多くの場合満足の行く性能を得ることができる。
【0164】
これを鑑みて、提案される方法は(前記オプション(a)を仮定して)以下のとおりに進行する。
【0165】
i)第1のストリームのためにFOTを計算する。
【0166】
ii)このFOTのステップと一致するように切り替え点を選ぶ。
【0167】
iii)遷移フレームを生成する。
【0168】
iv)第2のストリームの残りを加えた前記遷移フレームのためのFOTを計算する。
【0169】
v)切り替え点まで第1のストリームを送信する。
【0170】
vi)第2のストリームの残りを加えた遷移フレームを送信する。
【0171】
オプション(b)、(c)または(d)が使用される場合には、ステップi)は第2のストリームのFOTの計算も必要とし、ステップ(ii)は、選ばれるオプションに従った選択を必要とするであろう。それにも関わらず、第2のストリームのためのFOTは、依然としてステップ4で計算し直されなければならない。ステップ(iv)での(再)計算が第2のストリームのために最初に計算されるステップと切り替え点の不一致のために、及び/または前述されたように「上限」レートまたは「下限」レートの使用のために必要なあらゆる補正を自動的に考慮に入れることも注意する。
【0172】
言うまでもなく、例えば第1のストリームに戻るために、あるいは第3のストリームに切り替えるために、所望される場合、複数の切り替え点が選ばれてよい。
【0173】
切り替えの問題は単調に減少するFOTを有するように制約されるシステムに関連して説明されてきたが、この制約が適用されない、切り替えに対するこの手法も使用されてよい。等しく、それは高品質のストリームから低品質のストリームに切り替えるときにも有用である。
【図面の簡単な説明】
【0174】
【図1A】実行された試験の結果をグラフで示す図である。
【図1B】実行された試験の結果をグラフで示す図である。
【図1C】実行された試験の結果をグラフで示す図である。
【図2A】実行された試験の結果をグラフで示す図である。
【図2B】実行された試験の結果をグラフで示す図である。
【図2C】実行された試験の結果をグラフで示す図である。
【図3A】実行された試験の結果をグラフで示す図である。
【図3B】実行された試験の結果をグラフで示す図である。
【図3C】実行された試験の結果をグラフで示す図である。
【図4】本発明を実施するための装置の1つの形式のブロック図である。
【図5】図4の装置の動作を示すフローチャートである。
【図6】追加試験の結果を示すグラフである。
【図7】追加試験の結果を示すグラフである。
【図8】追加試験の結果を示すグラフである。
【図9】追加試験の結果を示すグラフである。
【図10】追加試験の結果を示すグラフである。
【技術分野】
【0001】
本発明は、例えば電気通信網上でのデジタルでコーディングされたビデオ信号、さらに詳細には圧縮アルゴリズムを使用して符号化されたビデオ信号の伝送に関する。
【背景技術】
【0002】
圧縮アルゴリズムの理論的根拠は、送信されることを必要とするビット数を削減するためにオリジナルのビデオ信号の固有の冗長性を利用することである。多くのこのようなアルゴリズムは、ITU H.263規格及びISO MPEG規格などの国際規格に定められている。これらの有用な検討は、Ghanbari,Mの「ビデオコーディング、標準コーデック入門(Video Coding, an introduction to standard codecs)」1999年ロンドン、IEEに示されている。
【0003】
冗長性の程度は、当然画像コンテンツに応じて変化し、その結果、圧縮効率もまた変化し、フレームあたりのコーディング済みビット数が変わることになる。1つのオプションは、送信済みビットレートが時間とともに大きく変化する、いわゆる可変ビットレート(VBR)システムと同様にビットをそれらが生成されるにつれて送信することである。もう1つのオプション(固定ビットレート(CBR)システム)は、これらの変動をならすために送信機と受信機の両方でバッファを利用し、前記送信バッファから前記受信バッファに定速で送信することである。CBRシステムは、バッファオーバフローを妨害するために(例えば使用される量子化の粗さを調整する、あるいはフレーム削除によって)データが生成されるレートを変えるためにフィードバック機構を活用する。バッファリングの使用は必ず遅延の発生を伴ない、開始の待ち時間(LOS)を増加する。つまりユーザは、ピクチャの復号及び表示が開始する前に受信バッファが必要なレベルまで満たされる間、待機しなければならない。前記フィードバック機構は画質の低下を伴なう。
【0004】
また、ビットレート変動を完全には排除せずとも、削減するためにある程度のバッファリングを利用することも提案されてきた(例えば、Furini,M.及びTowsley,D.F.、「インターネットでのリアルタイムトラフィック伝送(Real-Time Traffic transmissions over the Internet)」、マルチメディアに関するIEEE議事録(IEEE Transactions on Multimedia)、2001年3月、第3巻、第1号を参照すること)。
【0005】
電気通信網、及び特にインターネットなどのパケット網で送信するときの主要な考慮事項は、パケット損失及び予測不可能な遅延により問題が引き起こされる可能性があるネットワーク輻輳の影響である。これにより、送信機が、ネットワークに一時期その伝送のために指定された保証済みビットレートを割り当てるようにネットワークに要求できる予約システムが提案された。「RSVP」と呼ばれる1つのこのようなシステムは、インターネットエンジニアリング作業部会(Internet Engineering Task Force)(IETF)文書RFC2205に記述されている。しかしながら、差別化されたサービスの完全優先転送(Expedited Forwarding of Differentiated Service)、またはCR−LDPなどの他のシステムも使用されてよい。
【0006】
ライブビデオ画像のケースでは、コーディングされているビットストリームの将来の特性は未知であるが、録画されている画像についても、この特性は未知である(with recorded material,however,they are)。予約システムにより予約されるビットレートの量を変更できるという事実は、前記コーディングされた資料の知識に基づいて、常にどの程度多くのネットワーク容量を予約するのかの方針に関して決定する機会を提供する。簡略な手法はピーク(VBR、バッファリングされていない)ビットレートを計算し、伝送の持続時間全体でこれを要求することであるが、これはネットワーク容量を無駄使いし、言うまでもなく要求される容量が大きいほど、ネットワークがそれを提供できず、したがって予約要求が拒絶される確率は高くなる。要求されるビットレートを最小限に抑える別の簡略な手法は、全体的な伝送の平均ビットレートを計算し、これを要求することである。しかしながら、これは受信機における非常に大きなバッファ、(その大きな記憶量が今日相対的に安価であることを考えると)さらに重要なことには大きなLOSに対するニーズを生じさせる。ピークレート手法に対する改良はFurini及びTowsleyによる前記に引用された論文で検討されている。彼らの方式は、ピークレートが最大に到達するビデオシーケンスのポイントを特定し、そのポイントまでの期間このレートを要求することを必要とする。次に、シーケンスの残りでの最大ピークレートが定められ、この(低い方の)レートが要求される。このプロセスは、シーケンス全体で同じように続行する。前記論文は、ある程度のバッファリングが適用される可能性があり、それにより予約アルゴリズムが適用される前に有効なピークレートを削減することも提案している。このシステムは、単一ピークレートシステムに比べてネットワーク使用の効率を改善するが、依然として多くの無駄に使われる(つまり予約されるが、使用されない)ネットワーク容量があり、言うまでもなく、最大ピークレートがシーケンスの終盤で発生する場合に利点は小さい。しかしながら、それには、要求されるネットワーク容量の量が減少し、特に予約要求が、過去の要求のビットレートを上回るビットレートを絶対に要求せず、それにより予約要求が拒絶されるリスクを削減するという利点がある。
【発明の開示】
【課題を解決するための手段】
【0007】
本発明のある態様に従って、
(a)第1のセグメントが、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有するシーケンスの始めにある部分であり、それぞれの続くセグメントは、任意の短い方のこのような部分のフレームあたりの平均コーディング済みビット数以上である、フレームあたりの平均コーディング済みビット数を有する先行するセグメントの直後の部分である、シーケンスをセグメントに分割することと、
(b)セグメントごとにビットレートを決定することと、
(c)前記決定されたビットレートで信号を送信することと、
を備える、フレームあたりのコーディング済みビット数が一定ではないように圧縮アルゴリズムを使用して符号化されたビデオ信号のデジタルシーケンスを送信する方法が提供される。
【0008】
別の態様では、本発明は、
(a)ストリームの少なくとも1つを、それをセグメントに分割するために分析することと、
(b)ステップ(a)で特定されるセグメント間の遷移の近傍で切り替え点を選択することと、
(c)前記第1のシーケンスがステップ(a)で分析されなかった場合、第1のシーケンスを分析し、それをセグメントに分割することと、
(d)前記切り替え点までの前記第1のシーケンスの前記セグメントまたは各セグメントのためのビットレートを決定することと、
(e)前記決定されたビットレート(複数の場合がある)で前記切り替え点まで前記第1のシーケンスの前記信号を送信することと、
(f)前記切り替え点から前方へ、それをセグメントに分割するために第2のシーケンスを含む修正されたシーケンスを分析することと、
(g)前記修正されたシーケンスのセグメントのためのビットレートを決定することと、
(h)前記決定されたビットレート(複数の場合がある)で前記修正されたシーケンスの前記信号を送信することと、
を備え、
前記分析がそれぞれ前記関連性のあるシーケンスをセグメントに分割することにより実行され、そこでは前記第1のセグメントは、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりのコーディング済みビット平均数を有するシーケンスの始まりにある部分であり、それぞれの続くセグメントが任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する先行するセグメントの直後の部分である、フレームあたりのコーディング済みのビット数が一定にならないように圧縮アルゴリズムを使用して符号化されたビデオ信号のデジタルシーケンスを送信する方法を提供し、前記ソースビデオはそれぞれ異なる圧縮率を有する第1のシーケンス及び第2のシーケンスにコーディングされていた。
【0009】
本発明の他の態様は、下位請求項に以下に詳しく説かれている。
【発明を実施するための最良の形態】
【0010】
以下、添付図面を参照して本発明のいくつかの実施形態を例示する。
【0011】
受信機で、(フレーム周期の整数に等しいが)前記受信機がフレームgの復号を開始する時間tgから受信機がフレームhの復号を開始する時間thまで伸張するなんらかの任意の時間セグメントを考える。このセグメントの持続時間はhからgである。さらに、このセグメントの間の伝送速度がフレーム周期あたりAビットであると仮定する。
【0012】
明らかに、時間tgで、受信機はフレームgを含むフレームまですべてのフレームのためのビットをすでに受信しているはずである。つまり、
【数1】
【0013】
ここではdjはフレームjについてエンコーダにより生成されたコーディング済みのビットの数である。
【0014】
ただし、受信機が、時間g前に、p個の追加のビットも受信したと仮定する。つまり合計、
【数2】
【0015】
である。
【0016】
受信機がフレームkの復号を開始する任意のときtk(tg≦tk≦th)では、受信機は(k−g)Aビットも受信したので、したがって
時間tkで受信された総ビットは
【数3】
【0017】
である。
【0018】
この時点で、受信機はフレームkを含むフレームまでのすべてのビットを有する必要がある。つまり、
時間tkで必要とされる総ビットは
【数4】
【0019】
である。
【0020】
受信されたビット数は必要とされる数に少なくとも等しくなくてはならないため、バッファアンダフローを回避するために満たす必要のある条件は、
【数5】
【0021】
または
【数6】
【0022】
である。
【0023】
これがプリロードビットpの伝送を行わずに達成されなければならない場合には、これは、
【数7】
【0024】
または
【数8】
【0025】
を必要とする。
【0026】
従って、伝送済みのレートAは、
【数9】
【0027】
の場合に達成されるであろうk(g+1≦k≦h)の任意の値についてフレームg+1からkの上でフレームあたりの平均生成ビット以上でなければならない。
【0028】
このレートを使用するということは、k=hについて、つまり前記セグメントの最後に最大が発生しない限り、前記セグメントの間に送信されるビット(h−g)Aの数が前記セグメントについて生成されるビット数を超えることを意味する。最大が通過した後にこのようにして計算された伝送レートを引き続き使用することは絶対的に必要なものより高いレートの使用を表していると考えられることを前提として、ここに説明される本発明の第1のバージョンは、これらの最大が常に前記セグメントの最後に発生するように、送信されるデータをセグメントに分けることを目的とする。
【0029】
説明される第1の方法は、インターネットなどのパケット網で、MPEGなどの圧縮アルゴリズムを使用してすでにコーディングされた、記憶されているビデオ資料の伝送用である。それは、前記ネットワークがビットレート容量の予約に対する措置を有することを前提とする。それは、
−開始の小さな待ち時間
−低送信ビットレート、及び
−高伝送効率(つまり少ない浪費)
を達成するような方法で、時間の関数として使用されるビットレートを決定することを目的としている。しかし、以上は矛盾する要件であるため、いかなる解決策も必ず妥協案となってしまわざるを得ない。
【0030】
この例では、選ばれるビットレートに対する制約はないこと、及び伝送に使用されるビットレート及びネットワークで予約されるビットレートが同じであることが仮定される。
【0031】
第1のバージョンは、要求されたビットレートが絶対に増加できない。つまり、それは単調に減少する時間の関数であるという制約を受けている。つまり、前記に注記されたように、これは予約の失敗のリスクを削減する上で望ましい。
【0032】
このような膨大な記憶装置ハードウェアは現在のユーザにとっては問題ではないため、実際には、この方法の結果生じる必要とされるバッファサイズも、VBRビデオ伝送を達成するために平均ビットレートを使用することに比較して大幅に削減されているが、この解決策では、デコーダで必要とされるバッファサイズを削減することは主要な懸念ではない。実際問題ではめったに遭遇しない最悪のケースでも、必要とされるバッファサイズはもはや平均ビットレートでVBRビデオストリームを送信するときに必要されるより大きくないであろう。
【0033】
以下のアルゴリズムは、使用される「伝送の関数(「FOT」)」を決定する。
【0034】
ビデオシーケンスの中にN個のフレームがあり、フレームごとに符号化されたビット数はそれぞれd0、d1、…dN−1であると仮定する。
【0035】
前記に注記されたように、このアルゴリズムは、伝送の関数が絶対に増加できないが、減少するにすぎないという制約を受けている。
【0036】
概念上、伝送速度の変化はFOTの任意のフレーム間隔で発生できる。実際問題としては、使用されている特定の予約システムの制約に応じて、前記レートをどの程度頻繁に変更してよいかに関する制限があってよい。しかしながら、単調に減少するFOTを用いると、その唯一の効果は実際に必要とされるより多くの容量の予約であるため、(ネットワーク容量を浪費するが)レート変更の遅延は品質の損失を生じさせない。前記アルゴリズムの第1のステップは、FOTがどのくらい多くの「ステップ」を有するか、及びいつ各ステップが発生するのかを検出することである。
【0037】
最初に、開始からフレームiを含むフレームまでのビデオシーケンスの平均ビットレートを表す以下を定義する。
【数10】
【0038】
次に、A0、A0、…AN−1が計算され、これらから最大Aiを有するiの値が計算される。この値がk0であると仮定する。第1の「ステップ」エッジは、フレームk0の最後で発生すると定められる。それは、フレームk0の最後まで、FOTがその最高の伝送速度を必要とすることを意味する。
【0039】
第1の「ステップ」を検出した後に、フレーム(k0+1)は以下のフレームのための「第1の」フレームとして見なされ、Ai+1(1)がi=k0+1、k0+2、...N−1について計算される。これについての式は、
【数11】
【0040】
または、一般的なケースでは
【数12】
【0041】
である。
【0042】
再び、最大値は、フレームk1の最後で第2の「ステップ」エッジとして選ばれ、k1はiの対応する値である。前記手順は、フレームN−1での最後の「ステップ」エッジに達するまで繰り返される。一般的には、これは、ビデオシーケンスをM−1個のセグメントに分割するとして見なされてよい、M個の値km,m=0、...M−1(ここではkM−1はつねにN−1に等しい)を生じさせる。セグメント0はフレーム0からk0を備える。他のセグメントmはそれぞれフレームkm−1+1からkmを備える。
【0043】
前記アルゴリズムの第2の段階の目的は、各「ステップ」の「レベル」に適切な伝送速度を選ぶことである。ここでは、理論的には、プリロードされるビットを使用しなくても各「ステップ」の最後までにすべての必要とされるビットが送達されることを保証できる最低のレートは、前記セグメントを構成するフレームのビットレートの平均である。さらに高いレートを用いる場合にはネットワーク容量は浪費される可能性がある一方、さらに低レートは、必ずプリロードされるビットを必要とし、その結果さらに高いLOSを必要とする。また、さらに高いレートはリソースの予約の失敗のさらに大きなリスクにつながるに違いない。
【0044】
M個のセグメントm=0,1、…M−1がある。また、以下を定義する。
【0045】
Siはセグメントiの中で生成されるビットの合計である。つまり、
【数13】
【0046】
Riはセグメントiの中のFOTの伝送レートである。(K0=k0+1であることに注意する。)
Kjはセグメントiの中のフレームの数である。つまり、ki−k1−jである。
【0047】
このケースでは、必要とされるレートは平均レートRi=Si/Kiであるにすぎない。つまりi=1,2…M−1である。
【0048】
この方法は、k−1=−1と定義する場合に、セグメント0のためのレートR0を計算するためにも使用できる。
【0049】
MPEGビデオコーディングでは、第1のフレームはつねにIフレームであり、それはPフレームまたはBフレームより多くのビットを生成することに注意する。したがって、多くの場合、結果は、第1のセグメントがただ1つのフレームしか含まず、伝送速度R0がRiよりはるかに大きいことを示す。ユーザは、さらに高い確率でリソース予約を成功させるために数個の「フレーム」間隔を容易に待つことができるため、R0=Riを設定することを好む。
【0050】
第3のステップ。FOT全体を決定した後に、デコーダでの必要とされるバッファサイズを決定できる。
【0051】
ここで、選ばれてよいレートに対する制約を受ける第2の修正されたバージョンを説明する。例えば、制約は、レートがフレームあたりビットの整数でなければならない、あるいはさらに一般的に、レートが離散レート数の1つでなければならないということである場合がある。分析では、以下のように定められる量子化演算子を使用する。
【0052】
Q+(X)は(「天井レート」とも呼ばれる)X以上の最低許容レートを意味する。
【0053】
Q−(X)は(「下限レート」とも呼ばれる)X以下の最高許容レートを意味する。
【0054】
2つのオプションが説明される。
【0055】
(a)天井レートまで切り上げる。このケースでは、使用されるレートは、ある特定のセグメントについて厳密に必要なものより高くなる場合があり、続くセグメントにとってさらに低いレートを使用する機会を提供してよい。
【0056】
(b)下限レートを切り下げる。このケースでは、使用されるレートは、ある特定のセグメントについて必要なものより低くなる場合があり、先行するセグメントのためにさらに高いレートを使用するニーズが生じる。
【0057】
第1に天井オプションを考える。最初に、オリジナルFOTの中の第1の「ステップ」の「高さ」の上限値を、新しいFOTの中の精緻化された第1の「ステップ」の「高さ」として定義する。このようにして、第1の「ステップ」の後に、「第1の」ステップに属するフレームのビットの合計より多くのビットが受信機に送信されたことが注目されるであろう。したがって、第2の「ステップ」を精緻化すると、続く「ステップ」に属するが、過去の「ステップ(複数の場合がある)」の中で送信されたビットの数を除外し、第2の「ステップ」の平均レートを計算し直す必要がある。新しい平均ビットレートの上限値が古い第3の「ステップ」の平均レートの上限値以上である場合、それは単に精緻化された第2の「ステップ」の「高さ」として定義される。それ以外の場合、古い第3の「ステップ」の平均ビットレートの上限値を、精緻化された第2の「ステップ」の「高さ」として定義する。精緻化された最後の「ステップ」の「高さ」が固定されるまでこの手順に従うこと。それはつねに各「ステップ」の上限値を取るため、VBRビデオストリーム伝送が前記ビデオシーケンスの持続時間より短い数フレーム間隔で達成されることが考えられる。新しいFOTに基づいた伝送をシミュレーションすることで、FOTの寿命持続時間は正確に指定できる。いったんVBRビデオストリーム伝送が達成されると、予約されたネットワークリソースはただちに解放できる。したがって、100%の帯域幅活用は依然として保証されている。精緻化された第1の「ステップ」の「高さ」を用いると、LOSを正確に計算し直すことができる。最後に、伝送手順をシミュレーションすることにより、オーバフローを防止するために必要とされるバッファサイズも固定できる。
【0058】
採用される手順は以下のとおりである。セグメントへの分割は前記のように行われる。
【0059】
前記に定められた量Si、Ri、Kiだけではなく、セグメントiの中の伝送速度の仮の値であるR1iも導入する。
【0060】
I.すべての平均速度
【数14】
【0061】
を計算する。
【0062】
II.セグメント0のレートを
【数15】
【0063】
として設定する。
【0064】
(前述されたように、第1のセグメントにさらに低いレートを使用することが所望される場合には、代わりにセグメント1で開始してよいことに注意する。)
III.量子化の前に、過去のセグメントの間に送信された余分のビットを差し引くことによって、どちらか大きい方であるセグメント1のレートを設定する。
【数16】
【0065】
IV.残りのセグメントi=2…M−1の場合、どちらか大きい方である。
【数17】
【0066】
当然、i=M−1について第2の代替策は発生しない。
【0067】
説明される第3のバージョンは、「下限」レートを使用する。このケースでは、処理は最後の「ステップ」から開始して逆の順序で実行されなければならない。これは、ある特定のセグメントで送信できないビットが過去のセグメントの中で事前に送信できるために必要である。前記特殊な手順は、最初に、新しいFOTの精緻化された最後の「ステップ」の新しい伝送速度として、最後の「ステップ」の平均ビットレートの下限値を定める。次に、精緻化された「最後の」ステップにより必要とされるが、伝送できないビットの数が決定できる。過去の「ステップ(複数の場合がある)」は、新しい最後の「ステップ」FOTが開始する前に送信された余分のビットのこのような数を保証しなければならない。したがって、最後から2番目の「ステップ」を精緻化するときには、最後の「ステップ」により必要とされるビットの余分な数が追加された、それ自体必要とするビットをそれが搬送することを目的としなければならない。したがって、新しい平均ビットレートは、第2の最後の「ステップ」のために計算し直されなければならない。第2の最後の「ステップ」の新しい平均ビットレートの下限が、オリジナルのFOTの第3の最後の「ステップ」の平均レートの下限より大きくない場合には、それを新しい第2の最後の「ステップ」の「高さ」として定めるにすぎない。それ以外の場合、古い第3の最後の「ステップ」の平均ビットレートの下限を新しい第2の最後の「ステップ」の「高さ」として定義する。第1の「ステップ」までこの手順に従うと、精緻化が達成され、精緻化されたFOTが得られる。上限のケースでのように、プリフェッチされたビットの数及び精緻化された第1の「ステップ」の「高さ」を用いると、LOSは正確に計算し直すことができる。最後に、伝送手順をシミュレーションすることにより、オーバフローを妨げるために必要とされるバッファサイズも固定される。
【0068】
前記のように、M個のセグメントm=0,1、…M−1がある。また、以下を定義する。
【0069】
Siはセグメントiの中で生成されるビットの総数である。つまり、
【数18】
【0070】
Riはセグメントiの中のFOTの伝送レートである。
【0071】
Kiはセグメントiの中のフレームの数である。つまり、ki−ki−1である。
【0072】
R1iは、セグメントiの中で仮定する仮の伝送速度である。
【0073】
I.すべての平均レート
【数19】
【0074】
を計算する。
【0075】
II.セグメントM−1の伝送速度RM−1を、このセグメントのための平均レートの下限値に等しく設定する。つまり、
【数20】
【0076】
II.セグメントM−1でのアンダフローを妨げるためにセグメントM−1の始まりで受信機バッファ内に存在することが必要とされるプリロードされたビットPM−1の数を計算する。
【数21】
【0077】
III.それから、次のセグメントのレートは、以下のように計算することができ、
【数22】
【0078】
どちらか低い方であり、
【数23】
【0079】
を用いる。
【0080】
IV.このプロセスは、一般式、m=M−3…,0を使用して繰り返され、
【数24】
【0081】
どちらか低い方である。
【0082】
そして、
【数25】
【0083】
再び、所望される場合、この反復はセグメント0のために使用されるm=1及びR1で停止されてよい。
【0084】
このプロセスの結果、第1のセグメントのためのプリロードであり、最初に送信される必要があるP0の値が生じる。事実上、受信機がt=0で第1のフレームの復号を開始する前に送信されるすべてのビットを含むプリロードb0を定義することが便利である。
【0085】
R0は、前記のように計算されると仮定すると、
b0=P0+R0
である。
【0086】
しかしながら、レートR1がセグメント0のために使用される場合には、(K0−1)R1個のビットだけがt=0とセグメントの最後の間で送信することができるため、総プリロードは、
P0+K0R0−(K0−1)R1
である。
【0087】
開始の待ち時間(LOS)は、R1が使用されていると仮定すると、b0/R1である。
【0088】
ここでバッファサイズの問題を説明する。FOTを用いると、妥当な伝送速度及びLOSを取得できるのは確かである。ネットワーク伝送効率はほぼ100%となり、それは固定平均レート帯域幅を直接的に使用するより小さなバッファサイズを必要とする。しかしながら、それがピークレート帯域幅を予約することにより必要とされるより依然としてはるかに大きい状況もある。ピークレート帯域幅を予約する方式では、デコーダでのバッファサイズが最も複雑なフレームで費やされるビット数と同じ程度多いだけで十分である。しかしながら、私たちの方式では、それより大きなバッファが必要である。固定平均ビットレートと比較すると、私たちの方式は大部分の状況ではるかに小さなバッファサイズを取得できるが、最悪の状況では私たちの方式により必要とされるバッファサイズはほぼ固定平均ビットレートにより必要とされるバッファサイズとなることが認められなければならない。このような状況は、ビデオシーケンスの最後のフレームで最大のAiが出現するときに起こる。このような状況では、私たちの「階段を下りる(down stairs)」曲線はほぼただ1つの「ステップ」を有する。したがって、「ステップ」変更によりバッファサイズを最小限に抑えるほど効果的ではないであろう。それにも関わらず、このような状況はほとんど出現しない。「ピークビット」が後半に現れるほど、A1に対する影響は少ない。シーケンスの最後で、相当数の例外的に複雑なフレームが異常に出現しない限り、それは絶対に起こらないであろう。どのような状況が発生するのかに関係なく、LOSは私たちの方式では絶対に問題にはならない。現在、私たちは、ユーザが少し大きな記憶域を有するハードウェアを持つことは問題となってはならないと考えている。小さなLOS及び優れたネットワーク伝送効率がユーザによるさらなる懸念を引き起こすはずである。
【0089】
加えて、ユーザが私たちの方式が必要とする大きなバッファサイズを与えることができないとしても、伝送効率とデコーダで必要とされるバッファサイズの間に妥協案が講じられてよい。このような妥協案を用いれば、必要とされるバッファサイズは、ユーザが望むようにさらに削減できる。
【0090】
ちなみに、私たちの現在のアルゴリズムの説明は基本的な単位としてのフレームあたりビットに基づいているだけであるが、当然単位はGOPとして、または特定数のピクチャまたはパケットとして共に定義できる。このアルゴリズムにおいてどのような単位を定義したいと考えるかに関係なく、原則は一般的であり、共通でなければならない。
【0091】
ここで、「下限」法を使用してテストビデオシーケンスをコーディングするいくつかの例を説明する。それぞれのケースでは伝送の関数の値f(t)(またはRi)、b0の値、及び示唆されているb0の伝送レートが、(a)前記アルゴリズムのために、(b)Furini及びTowsleyの方法を使用して、及び(c)単純な平均ビットレートを使用して示される。
【0092】
例1「JacknBox」
(a)共通中間フォーマット(CIF)の(Jacknboxと名付けられる)テストシーケンス、つまりH.263+を使用し、ステップサイズ16の固定量子化器を用いる持続時間内の140個のフレームをコーディングし、私たちのアルゴリズムを用いるFOT関数を引き出した。
【0093】
f(t)=
5100 0<t<T48;
3645 T48<t<=T51;
3058 T51<t<=T52;
2830 T52<t<T61;
2682 T61<t<=T70;
2651 T70<t<=T71;
2464 T71<t<=T90;
2447 T90<t<=T108;
2321 T108<t.
本明細書中では、デコーダがフレームiを表示する時間としてTiを定める。本明細書中のすべての測定レートの測定単位をフレーム間隔あたりビットと定める。b0=39824ビットである。b0のために示唆されている伝送レートは、フレーム間隔あたり5100ビットである。
【0094】
(b)Furini及びTowsleyの方法を使用すると、以下が得られ、
f(t)=
9896 T<t<=T29;
9432 T29<t<=T40;
7272 T40<t<=T41;
6552 T41<t<=T46;
6184 T46<t<=T47;
5328 T47<t<=T48;
3696 T48<t<=T51;
3632 T51<t<=T106;
3552 T106<t<=T138;
2896 T138<t.
b0=39824ビットである。
【0095】
彼らの伝送方式では、b0はフレーム間隔あたり39824ビットで達成されるであろう。
【0096】
(c)固定平均ビットレートを用いると、関数は、
f(t)=3669となる。
【0097】
b0=108488ビットである。
【0098】
b0は、フレーム間隔あたり3669ビットで達成される。
【0099】
図1は、図形としてプロットされたこれらの結果を示す。
【0100】
分析結果は表1に一覧表示される。
【表1】
【0101】
また、CBRレート制御を用いて同じビデオシーケンスも符号化した。このケースではLOSは29656/3735=7.94フレームとなるであろう。ただし、10フレームは通常のCBRレート制御を用いて省略され、私たちが示すビット量はVBR符号化におけるビットの平均数と同じである。
【0102】
例2.H.263+を使用する8400フレームのテレビ番組
このテストは、8400フレームを用いる通常のTV番組QCIF(4分の1−CIF)シーケンスを使用し、H.263+を使用し、ステップサイズ16の固定量子化器でコーディングした。ピクチャタイプは、H.263+推奨案では132フレームごとの強制更新を用いるIPPPP…である。
【0103】
(a)
f(t)=
4977 T0<t<=T3173;
4218 T3173<t<=T3679;
3968 T3679<t<=T3680;
3848 T3680<t<=T3681;
3844 T3681<t<=T4752;
3090 T4752<t<=T8392;
992 T8392<t<=T8393;
816 T8393<t<=T8394;
644 T8394<t<=T8396;
544 T8396<t<=T8397;
384 t>T8397;
b0=13944ビットである。
【0104】
前述したように、b0はフレーム間隔あたり4977ビットという第1のレートで達成されてよい。
【0105】
(b)
f(x)=
27672 T0<t<=T8339; 21952 T8358<t<=T8359;
26704 T8339<t<T8340; 21744 T8359<t<=T8369;
26560 T8340<t<=T8341; 20448 T8369<t<=T8373;
26488 T8341<t<=T8342; 20344 T8373<t<=T8384;
26240 T8342<t<=T8344; 19960 T8384<t<=T8385;
25832 T8344<t<=T8345; 19016 T8385<t<=T8391;
25136 T8345<t<=T8346; 11656 T8391<t<=T8392;
24168 T8346<t<=T8347; 992 T8392<t<=T8393;
23816 T8347<t<=T8352; 816 T8393<t<=T8394;
23760 T8352<t<=T8353; 648 T8394<t<=T8396;
23616 T8353<t<=T8356; 544 T8396<t<=T8397;
22824 T8356<t<=T8357; 384 T8397<t<=T8399.
22528 T8357<t<=T8358;
b0=13944ビットである。
【0106】
b0はフレーム間隔あたり29762ビットで送信されてよい。
【0107】
(c)固定平均ビットレートを用いると、FOTは以下のようになるであろう。
【0108】
f(t)=3966
b0=3348584ビット
b0は、フレーム間隔あたり3669ビットで設定されてよい。
【0109】
図2は、H.263+を用いた8400フレームのテレビ番組のためのこれらのFOT曲線を示す。
【0110】
分析結果は表2に一覧表示される。
【表2】
【0111】
例3.MPEG4でコーディングされる8400フレームのテレビQCIF番組
8400フレームという同じテレビ番組QCIFシーケンスが、ステップサイズ10の固定量子化器を用いて、MPEG4を使用してコーディングされた。ピクチャタイプはIBBPBBPBBPBB(N=12、M=3)である。B個のピクチャを用いると、ピクチャの符号化シーケンスがピクチャの表示シーケンスと異なることが注記される必要がある。したがって、前記関係付けられるIまたはP個のピクチャは前記B個のピクチャの前に送信されなければならない。私たちのアルゴリズムを使用する前になんらかの前処理が必要とされる。
【0112】
(a)最終的に、私たちのFOTは以下のとおりである。
【0113】
f(t)=
7426 T0<t<=T4750;
6938 T4750<t<=T4786;
66470 T4786<t<=T4798;
6309 T4798<t<=T4870;
6190 T4870<t<=T4900;
6083 T4900<t<=T4918;
6026 T4918<t<=T8398;
168 T8398<t.
b0=16548ビットである。
【0114】
b0は、フレーム間隔あたり7426ビットを使用して送信できる。
【0115】
(b)
f(X)=
57472 T0<t<=T8338;
50616 T8338<t<=T8350;
49504 T8350<t<=T8368;
48608 T8368<t<=T8371;
48536 T8371<t<=T8383;
44968 T8383<t<=T8386;
31752 T8386<t<=T8389;
28696 T8389<t<=T8398;
168 T8398<t.
b0=16040ビットである。
【0116】
b0は、フレーム間隔あたり57472ビットで設定されてよい。
【0117】
(c)固定平均ビットレートを用いると、FOTは以下のとおりとなるであろう。
【0118】
f(x)=6825
b0=2874758ビット
b0は、フレーム間隔あたり6825ビットで設定されてよい。
【0119】
図3は、MPEG4(N=12、M=3)を用いる8400フレームのテレビ番組のためのこれらのFOT曲線を示す。
【0120】
分析結果は表3に一覧表示される。
【表3】
【0121】
前記実験結果から、100%の伝送効率を依然として保ちながら、LOSが大幅に削減されたことが分かる。ネットワークリソースは浪費されていない。さらに改善可能である唯一のことは、デコーダで必要とされるバッファサイズをさらに最小限に抑えるということである。図4は本発明に従って動作可能なサーバのブロック図である。それは、通常のコンピュータ構成部品、つまりプロセッサ10、メモリ11、ディスク記憶装置12、キーボード13、ディスプレイ14、及び電気通信網16への接続のためのネットワークインタフェース15を含む。送信されるために使用可能なビデオシーケンスは、符号化ファイル20の形式で従来の方法でディスク記憶装置12に記憶される。
【0122】
やはりディスク記憶装置12に記憶されるのは、前記サーバの動作を制御することを実現するためのコンピュータプログラム21である。「下限」法を使用するこのプログラムの動作は、ここで図5に示されるフローチャートに関して説明される。
【0123】
ステップ100
要求は、所望されるビデオシーケンスの伝送のためにインタフェース15を介して遠隔端末から受信される。このような要求はそのシーケンスを含むファイル20の内のその1つのファイル名を含む。
【0124】
ステップ101
プロセッサ10は、ディスク記憶装置12から問題のファイルを読み取り、記憶されているシーケンスの中のN個のフレームごとにファイル中のコーディング済みビット数djを求め、N及びdj(j=0…N−1)の値をメモリ11に記憶する。
【0125】
ステップ102
プロセッサは前述されたようにkO…kM−1を計算し、メモリ11にM及びk0…kM−1を記憶する。
【0126】
ステップ103 すべてのiに対してRliを計算する。
【0127】
ステップ104 RM−1=Q−{RlM−1}を設定し、PM−1を計算する。
【0128】
ステップ106 ポインタm=M−2を設定する。
【0129】
ステップ107 Rm及びPmを計算する。
【0130】
ステップ109 mを減分する。m≧0の場合、ステップ107に移動する。
【0131】
ステップ111 b0=P0+R0を計算する。
【0132】
ステップ112 セグメント持続時間を計算する。このインプリメンテーションでは、プリロード及びセグメント0は伝送目的の単一のセグメントと見なされる。したがって、
τ0=(b0/R0+k0+1)*τ
τi=(ki−ki-1)*τ i=1…M−1
ここでは、τはフレーム期間の長さである。
【0133】
ステップ113 iを0に設定する。
【0134】
ステップ114 Riのレート及び少なくともτiという持続時間を指定する予約要求を送信する。
【0135】
ステップ115 (i=0の時にP0プリロードビットが先行する)レートRiでセグメントiを送信する。
【0136】
ステップ116 すべてのセグメントが送信されたら停止する。それ以外の場合には、117でiを増分し、ステップ114に移動する。
【0137】
前述されたRSVPシステムなどのいくつかの予約システムは、マルチキャストに対応するために、受信側端末により予約要求が発行されることを必要とする。このようなケースでは、ステップ113はRi及びτiを指定する受信側端末へのメッセージの伝送を指定するために修正されるであろう。その結果端末は必要とされる予約要求をネットワークに送信するであろう。
【0138】
いくつかのネットワークでは、予約されたレートが変更されてよい時間になんらかの制約がある場合がある。しかしながら、前記に採用される手法は、第1を除くあらゆる予約要求が以前より低いレートを要求するためにこのような問題点の影響は受けない。したがって、実際の送信レートが削減された後にこのような要求を処理する上での遅延から予約レートは高いままとなる。このケースでは、ネットワーク活用の効率は低下するが、伝送品質は影響を及ぼされない。
【0139】
前述された予約アルゴリズムは、予約されたビットレートが絶対に増加されてはならないという制約の上に構築される。しかしながら、これは必須ではないため、この制約を条件としない本発明の第2の実施形態がここに説明される。
【0140】
そのケースでは、各セグメントは、前述したように、前記セグメントのための平均生成ビットレートΣdjがそのセグメントの開始で始まるビデオシーケンスの任意のさらに短い部分については平均以上であるが、同じ点で開始するさらに長い部分の平均より少ないように選ばれる。
【0141】
手順は一般的なセグメントq(=0...M−1)について説明される。
【数26】
【0142】
を使用すると、
すべてのkq−1+1≦i≦kq−1+H(あるいはこれがさらに短い場合にはkq−1+1≦i≦N−1)の場合のAi(q)が計算され、ここではHは許可されなければならない何らかの定められた最大長である。
【0143】
Ai(q)が最大であるiの値を検出し、kqをiのこの値に等しく設定する。
【0144】
これは、最大平均レートの検索がその範囲内で制限されるという点を除き、前述された手順と同じである。
【0145】
いったんkq(q=0、…M−1)が求められると、実際の伝送速度は、レートが先行するセグメントのレートを上回る、あるいは続くセグメントのレートを下回るのを防ぐために定められるあらゆる制限が省略されるという点を除き、まさに前述されたとおりに求めることができる。
【0146】
本発明の第2の実施形態は、ビデオレート切り替えの可能性を探求する。ここでは、異なる画質、従って異なるデータレートの2つの(またはそれ以上の)ビデオストリームが生成される。通常、これらは、量子化の異なる粗さ、つまり、低品質を使用することにより生成されてよく、低データレートストリームは粗い量子化器を使用し、さらに高いデータレートを有するさらに高品質のストリームはあまり粗くない量子化器を使用する。
【0147】
ビデオレート切り替えの可能性は、おそらくレート予約の失敗は伝送の始まりで発生するこの状況で特に重要であり、前記状況は相対的に低品質のストリームを最初に送信し、後に信号及び/またはネットワーク状態の性質がそれを可能にするときにさらに高品質のストリームに切り替えることにより矯正できる。しかしながら説明されるシステムは、ビデオレート切り替えがなんらかの他の理由で使用される場合にも有効である。
【0148】
フレーム間のコーディングが使用されるとき、2つの異なるストリームの間の切り替えにより、コーダ及びデコーダでの予測値のミストラッキングが原因でピクチャの深刻な劣化が引き起こされる場合がある。しかしながら、切り替え先のストリームのフレームと切り替え元のストリームのフレームの間の差異を本質的にコードアップする(code up)遷移コーディング済みフレームをときおり生成することにより、画質のこのような劣化を受けずに切り替えが対処されてよい。したがって、第1のストリームからのフレームの伝送には複数の遷移フレームの1つが、次に第2のストリームからのフレームが後に続く。このような遷移フレームの生成は新しくなく、さらに説明されない。このようなシステムの説明については、私たちの国際公開第98/26604号(及び対応する米国特許第6,002,440号)を参照されたい。いわゆる「SPフレーム」を使用する別のこのようなシステムは、2001年1月09日から12日、ドイツ、EibseeのITU−Tビデオコーディング専門家グループ会議(ITU−T Video Coding Experts Group Meeting)、Marta Karczewicz及びRagip Kurcerenの「SPフレームの提案(A Proposal for SP−frames)」、文書VCEG−L−27、及び2001年9月24日から27日、米国カリフォルニア州サンタバーバラ(Santa Barbara、CA,USA)、ITU−Tビデオコーディング専門家グループ会議、Ragip Kurceren及びMarta Karczewicz、「SPフレーム実証(SP−frame demonstrations)」、文書VCEG−N42に説明されている。
【0149】
前述された「FOT」手法に関連して、2つのストリーム間で切り替えるという問題は、処理される必要のあるいくつかの問題を提示している。第1のストリームから第2のストリームに時間内の任意の点での切り替えを検討する場合には、一般的に、デコーダバッファが、第2のストリームを復号するために有効ではない第1のストリームのフレームを含むであろう。したがって、デコーダが第2のストリームの復号に即座に切り替えるためであると想定すると、これらのフレームは未使用となり、浪費された伝送容量を表す。さらに悪いことには、第2のストリームの復号のために必要とされるフレームはバッファ内には存在しないであろう。理論的には、ストリームの始まりとなるために実際に送信されなければならない第2のストリームの部分の始まりを考慮して第2のストリームのためのFOTが再計算されると、これは対処可能であるが、実際問題としては、これは表示されるピクチャの中断が回避されなければならない場合に法外に高い送信済みデータレート要件を生じさせることになる。
【0150】
無駄にされるビットという問題は、デコータがバッファ内に残る第1のストリームのフレームの復号を続行できるようにすることによって回避でき、この期間中、バッファは第2のストリーム(つまり、遷移フレーム(複数の場合がある)及び第2のストリームのフレーム)の復号のために必要とされるフレームのいくつかを蓄積する可能性があるが、それにも関わらず過剰な送信済みビットレート要件という危険が残る。
【0151】
理想的には、ビットストリーム切り替えは、使用可能な帯域幅が出現するとすぐに発生しなければならない。しかしながら、いま説明された問題のためにこれは実際的ではない。また、遷移フレーム(通常フレーム毎ではなく選択されたポイントだけで生成される)が生成されなければならない場合、これらが提供されなければならないポイント(切り替え点)が、好ましくは事前に計画される必要がある。
【0152】
このような考慮に基づき、最初に、FOTの「ステップ」の「エッジ」に一致するときに切り替える可能性を検討する。すべての送信済みのビットはピクチャに復号されているため、各「ステップ」の「エッジ」で、受信機バッファがビットを記憶しないのがこの方式の特徴である。したがって、万一オリジナルストリームの「エッジ」で切り替えると、すべての送信済みビットは受信機バッファから空にされ、ビットストリーム切り替えのために浪費されるビットはなくなる。
【0153】
オリジナルビットストリームの「ステップエッジ」へ切り替え点を設定すると送信済みビットは浪費されなくてよいが、新しいストリームの切り替え点が「ステップエッジ」にない場合にはさらに問題があるであろう。理由は、切り替え点が新しいストリームの「ステップエッジ」にない場合、新しいストリームのためのいくつかの事前に蓄積されたビットが、受信機でビデオを連続的に再生するために非常に短い時間の空間内で送信されなければならない可能性があるためである。それは、おそらく新しいストリームが暗示する予約レートよりもはるかに高いレートの予約要求を生じさせる可能性がある。新しいビットストリームの中の切り替え点が「ステップ」の真中にある場合は、蓄積されたビットの不足が高レート予約を生じさせる。したがって、理想的には新しいビデオストリームの切り替え点も「ステップエッジ」になければならない。
【0154】
前記分析に従って、前記2つのストリームのために最適な切り替え点を有する唯一の機会は、それらが同じ「エッジポイント」を有する場合であると考えられる可能性がある。それ以外の場合、どちらかのビットが浪費されるか、あるいはビットストリーム切り替え後に非常に高いビットレートを必要とする。幸いなことに追加の調査時に、異なる量子化器から作成されるFOT曲線について、それらが絶対に同じではないにしても「ステップエッジ」が同様に配置された(do have similarly positioned “step edges”)ことが判明した。その理由は、ビデオシーケンスでは、複雑なピクチャは、どの量子化器が選択されるのかに関係なく通常のビットより多くのビットを失わせるためである。
【0155】
私たちはいくつかの実験でこれを検証した。実験では、140CIF Jacknboxビデオシーケンスが選択された。
【0156】
第1の実験では、同じビデオシーケンスに基づいた異なるビデオストリームがそのFOTにおいてともにそれらの「ステップエッジ」に近づくかどうかを明確にしたいと考える。図6では、異なる量子化器に基づいたFOT曲線の類似性が示されている。前記曲線は、2、3、4、10、16及び31という量子化器ステップサイズに相当し、Q2、Q3等と記される。量子化器ステップサイズが増加するにつれて、FOTがますます平坦になることが分かる。しかしながら、それらは依然としてほぼ同時に「ステップエッジ」を有する。加えて、異なるFOTの「エッジ」ポイントが類似しているが、それらは厳密に同じではないことが注意される必要がある。図7及び図8は「ステップエッジ」での異なるFOT曲線のさらなる詳細を開示する。それらは厳密に同じではないが、近似する場所でビットストリームを切り替えてもほとんど損害を与えない。以下の実験によってさらにそれを検証してもよい。
【0157】
第2の実験では、固定量子化器16で生成されたビットストリーム(Q16ストリーム)を、フレーム間隔ごとに固定量子化器8により生成される第2のビットストリーム(Q8ストリーム)に切り替えるものと仮定する。図9では、それぞれフレーム35、42、45、49、50及び52でビットストリームを切り替える場合のいくつかの予約曲線を示す。図10では、異なるフレーム間隔でビットストリームが切り替えられるときに無駄にされるビットの数を示す。図9及び図10は、「エッジ」ポイントまたは他のポイントでの切り替えストリームの間での差異を描くには十分なはずである。図9では、切り替えポイントが「ステップエッジ」から遠い場合に、必要とされる伝送速度がQ8ストリームの最初に必要とされる伝送速度よりもなおさらに高くなることが分かる。それは、私たちが初期に分析したとおりである。この状況では、ビットストリーム切り替え後の適切な表示を実現するために短時間内に必要なビット蓄積を達成する必要がある。したがって、必要とされる伝送速度は非常に高い可能性があり、このようなビットストリーム切り替えを完了することは非現実的になる。他方、ビットストリームが「エッジポイント」近くへ切り替えられる場合には、FOT内の各「ステップ」は独立しているため、非常に高い伝送速度が必要なビット蓄積を達成するという要件はない。図10では、「エッジポイント」近くでビットストリームを切り替えることがさらに賢明であることも気付くことができる。FOT曲線では、常に、続くフレームのためにいくつかのビットを事前に蓄積する必要がある。ビットストリーム切り替えが適用されると、オリジナルストリームのために事前に蓄積されたビットはまったく役に立たなくなる。これらのビットは無駄にされる。
【0158】
図10では、「ステップエッジ」だけでビットストリームを切り替えるとビットを無駄にしないことは容易に分かる。それが「ステップエッジ」に近くなるほど、無駄にされるビットは少なくなる。図9及び図10の両方から、FOTの最善の切り替え点がそれらの「ステップエッジ」であることが検証される。
【0159】
実際には、第1のストリームから第2のストリームに切り替えるための切り替え点を正確にどの点で選ぶのかという問題に関して、前記2つのストリームのステップが一致する場合には、言うまでもなく曖昧さはない。しかしながら、タイミングに差がある場合には、
a)(実現しやすさを追求して)第1のストリームの中でステップを選ぶ。
【0160】
b)(同様に実現が容易な)第2のストリームでステップを選ぶ。
【0161】
c)前記2つのステップの内のより早期のステップを選ぶ(それにより無駄にされるビットを最小限に抑える)。
【0162】
d)前記2つのステップの内のより後期のステップを選ぶ(それにより第2のストリームのための予約帯域幅の増加を回避する)。
【0163】
しかしながら、実際には、性能という点でのそれらの間の差異はかなり小さいため、どのオプションを選択するのかはほとんど関係しない。つまり、実際には、選ばれた切り替え点が「ステップ」から数フレーム偏位される場合も、多くの場合満足の行く性能を得ることができる。
【0164】
これを鑑みて、提案される方法は(前記オプション(a)を仮定して)以下のとおりに進行する。
【0165】
i)第1のストリームのためにFOTを計算する。
【0166】
ii)このFOTのステップと一致するように切り替え点を選ぶ。
【0167】
iii)遷移フレームを生成する。
【0168】
iv)第2のストリームの残りを加えた前記遷移フレームのためのFOTを計算する。
【0169】
v)切り替え点まで第1のストリームを送信する。
【0170】
vi)第2のストリームの残りを加えた遷移フレームを送信する。
【0171】
オプション(b)、(c)または(d)が使用される場合には、ステップi)は第2のストリームのFOTの計算も必要とし、ステップ(ii)は、選ばれるオプションに従った選択を必要とするであろう。それにも関わらず、第2のストリームのためのFOTは、依然としてステップ4で計算し直されなければならない。ステップ(iv)での(再)計算が第2のストリームのために最初に計算されるステップと切り替え点の不一致のために、及び/または前述されたように「上限」レートまたは「下限」レートの使用のために必要なあらゆる補正を自動的に考慮に入れることも注意する。
【0172】
言うまでもなく、例えば第1のストリームに戻るために、あるいは第3のストリームに切り替えるために、所望される場合、複数の切り替え点が選ばれてよい。
【0173】
切り替えの問題は単調に減少するFOTを有するように制約されるシステムに関連して説明されてきたが、この制約が適用されない、切り替えに対するこの手法も使用されてよい。等しく、それは高品質のストリームから低品質のストリームに切り替えるときにも有用である。
【図面の簡単な説明】
【0174】
【図1A】実行された試験の結果をグラフで示す図である。
【図1B】実行された試験の結果をグラフで示す図である。
【図1C】実行された試験の結果をグラフで示す図である。
【図2A】実行された試験の結果をグラフで示す図である。
【図2B】実行された試験の結果をグラフで示す図である。
【図2C】実行された試験の結果をグラフで示す図である。
【図3A】実行された試験の結果をグラフで示す図である。
【図3B】実行された試験の結果をグラフで示す図である。
【図3C】実行された試験の結果をグラフで示す図である。
【図4】本発明を実施するための装置の1つの形式のブロック図である。
【図5】図4の装置の動作を示すフローチャートである。
【図6】追加試験の結果を示すグラフである。
【図7】追加試験の結果を示すグラフである。
【図8】追加試験の結果を示すグラフである。
【図9】追加試験の結果を示すグラフである。
【図10】追加試験の結果を示すグラフである。
【特許請求の範囲】
【請求項1】
フレームあたりのコーディング済みビット数が一定にならないように圧縮アルゴリズムを使用して符号化されたビデオ信号のデジタルシーケンスを送信する方法であって、
(a)前記シーケンスをセグメントに分割することであって、第1のセグメントが、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記シーケンスの始まりにある部分であり、それぞれの続くセグメントが、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記先行するセグメントの直後の部分であることと、
(b)セグメントごとにビットレートを決定することと、
(c)前記決定されたビットレートで前記信号を送信することと、
を備える、方法。
【請求項2】
フレームあたりのコーディング済みビット数が一定にならないように圧縮アルゴリズムを使用して符号化されたビデオ信号のデジタルシーケンスを送信する方法であって、ソースビデオが、それぞれ異なる圧縮率を有する第1のシーケンス及び第2のシーケンスにコーディングされ、
(a)前記ストリームの少なくとも1つを分析し、それをセグメントに分割することと、
(b)ステップ(a)で特定されたセグメント間遷移の近傍で切り替え点を選択することと、
(c)前記第1のシーケンスがステップ(a)で分析されなかった場合に、前記第1のシーケンスを分析し、それをセグメントに分割することと、
(d)前記第1のシーケンスの前記セグメントまたは各セグメントのためのビットレートを前記切り替え点まで決定することと、
(e)前記決定されたビットレート(複数の場合がある)で前記切り替え点まで前記第1のシーケンスの前記信号を送信することと、
(f)前記切り替え点から前方に前記第2のシーケンスを含む修正されたシーケンスを分析し、それをセグメントに分割することと、
(g)前記修正されたシーケンスのセグメントのためのビットレートを決定することと、
(h)前記決定されたビットレート(複数の場合がある)で前記修正されたシーケンスの前記信号を送信することと、
を備え、
そこでは前記分析が前記関連性のあるシーケンスをセグメントに分割することによりそれぞれ実行され、前記第1のセグメントが任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有するシーケンスの始まりにある部分であり、それぞれの続くセグメントが、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する先行するセグメントの直後の部分である、方法。
【請求項3】
ステップ(b)において、前記切り替え点が前記第1のシーケンスのセグメント間遷移の近傍になるように選択される、請求項2に記載の方法。
【請求項4】
ステップ(b)において、前記切り替え点が前記第2のシーケンスのセグメント間遷移の近傍になるように選択される、請求項2に記載の方法。
【請求項5】
ステップ(a)において、前記第1のシーケンスと第2のシーケンスの両方が分析され、ステップ(b)において、前記切り替え点が前記第1のシーケンスと第2のシーケンスの両方のセグメント間遷移の近傍に、あるいは前記遷移が一致しない場合には、前記2つの遷移の内のより早期の遷移の近傍になるように選択される、請求項2に記載の方法。
【請求項6】
ステップ(a)において、前記第1のシーケンスと第2のシーケンスの両方が分析され、ステップ(b)において、前記切り替え点が前記第1のシーケンスと第2のシーケンスの両方のセグメント間遷移の近傍に、あるいは前記遷移が一致しない場合には、前記2つの遷移の内のより後期の遷移の近傍になるように選択される、請求項2に記載の方法。
【請求項7】
前記切り替え点が前記関連性のある遷移の4つのフレーム内で発生するように選択される、請求項2から6のいずれか1項に記載の方法。
【請求項8】
前記切り替え点が前記関連性のある遷移に一致するように選択される、請求項7に記載の方法。
【請求項9】
前記第1のシーケンスは、前記第2のシーケンスより高い圧縮率で符号化される、請求項2から8のいずれか1項に記載の方法。
【請求項10】
前記第1のシーケンスは、前記第2のシーケンスより粗い量子化を使用して符号化される、請求項9に記載の方法。
【請求項11】
前記シーケンスはフレーム間コーディングを使用して符号化され、予測値として前記第1のシーケンスの復号されたフレームを使用して符号化された前記第2のシーケンスのフレームから構成される、あるいはフレームで開始する遷移シーケンスを、前記切り替え点で生成することを含み、前記修正されたシーケンスは前記第2のシーケンスのフレームが後に続く前記遷移シーケンスを備える、請求項2から10のいずれか1項に記載の方法。
【請求項12】
前記またはあるシーケンスの前記第1のセグメントは、任意の考えられるこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記シーケンスの前記始まりのその部分であり、それぞれの続くセグメントが、任意の考えられるこのような部分のフレームあたりの前記平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記先行するセグメントの直後のその部分である、請求項1から11のいずれか1項に記載の方法。
【請求項13】
前記またはあるシーケンスの前記第1のセグメントは、最大所定長を超えない任意の考えられるこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有するシーケンスの始まりにあるその部分であり、それぞれの続くセグメントが、前記最大所定長を超えない任意の考えられるこのような部分のフレームあたりの前記平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記先行するセグメントの直後のその部分である、請求項1から12のいずれか1項に記載の方法。
【請求項14】
前記またはあるシーケンスの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、そのセグメントのためのフレームあたりの平均コーディング済みビットに等しいフレーム周期あたりのビット数である、請求項1から13のいずれか1項に記載の方法。
【請求項15】
前記またはあるシーケンスの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、そのセグメントのための名目レート以上である許可されたビットレートの集合の内の最低のものに等しいフレーム周期あたりのビット数であり、前記名目レートが、前記先行するシーケンスのための前記決定されたビットレートがその先行するセグメントのための前記名目レートを超過する結果、許可される任意の削減を差し引いた、そのセグメントのためのフレームあたりの前記平均コーディング済みビットである、請求項1から13のいずれか1項に記載の方法。
【請求項16】
前記またはあるセグメントの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、そのセグメントのための名目レート以下である許可されたビットレートの集合の内の最高のものに等しいフレーム周期あたりのビット数であり、前記名目レートが、前記続くシーケンスのために前記決定されたビットレートがその先行するセグメントのための前記名目レート未満である結果として必要とされる任意の増加を加えた、そのセグメントのためのフレームあたりの前記平均コーディング済みビットである、請求項1から13のいずれか1項に記載の方法。
【請求項17】
前記またはあるシーケンスの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、
(i)名目レートが、前記先行するシーケンスのために前記決定されたビットレートがその先行するセグメントのための前記名目レートを超過する結果として許可される任意の削減を差し引いた、そのセグメントのためのフレームあたりの前記平均コーディング済みビットである、そのセグメントのための前記名目レート以上である許可されたビットレートの集合の最低のものと、
(ii)前記続くセグメントのためのフレームあたりの前記平均コーディング済みビット数以上である許可されたビットレートの集合の最低のものと、
の大きい方に等しいフレーム周期あたりのビット数である、請求項12に記載の方法。
【請求項18】
前記またはあるシーケンスの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、
(i)名目レートが、前記続くシーケンスのための前記決定されたビットレートがその先行するセグメントのための前記名目レート未満である結果、必要とされる任意の増加を加えたそのセグメントのためのフレームあたりの前記平均コーディング済みビット数である、そのセグメントのための前記名目レート以下である許可されているビットレートの集合の最高のものと、
(ii)前記先行するセグメントのためのフレームあたりの前記平均コーディング済みビット以下である許可されているビットレートの集合の最高のものと、
の小さい方に等しいフレーム周期あたりのビット数である、請求項12に記載の方法。
【請求項19】
前記決定されたビットレートの予約を要求するコマンドを電気通信網に送信することを含む、請求項1から18のいずれか1項に記載の方法。
【請求項1】
フレームあたりのコーディング済みビット数が一定にならないように圧縮アルゴリズムを使用して符号化されたビデオ信号のデジタルシーケンスを送信する方法であって、
(a)前記シーケンスをセグメントに分割することであって、第1のセグメントが、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記シーケンスの始まりにある部分であり、それぞれの続くセグメントが、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記先行するセグメントの直後の部分であることと、
(b)セグメントごとにビットレートを決定することと、
(c)前記決定されたビットレートで前記信号を送信することと、
を備える、方法。
【請求項2】
フレームあたりのコーディング済みビット数が一定にならないように圧縮アルゴリズムを使用して符号化されたビデオ信号のデジタルシーケンスを送信する方法であって、ソースビデオが、それぞれ異なる圧縮率を有する第1のシーケンス及び第2のシーケンスにコーディングされ、
(a)前記ストリームの少なくとも1つを分析し、それをセグメントに分割することと、
(b)ステップ(a)で特定されたセグメント間遷移の近傍で切り替え点を選択することと、
(c)前記第1のシーケンスがステップ(a)で分析されなかった場合に、前記第1のシーケンスを分析し、それをセグメントに分割することと、
(d)前記第1のシーケンスの前記セグメントまたは各セグメントのためのビットレートを前記切り替え点まで決定することと、
(e)前記決定されたビットレート(複数の場合がある)で前記切り替え点まで前記第1のシーケンスの前記信号を送信することと、
(f)前記切り替え点から前方に前記第2のシーケンスを含む修正されたシーケンスを分析し、それをセグメントに分割することと、
(g)前記修正されたシーケンスのセグメントのためのビットレートを決定することと、
(h)前記決定されたビットレート(複数の場合がある)で前記修正されたシーケンスの前記信号を送信することと、
を備え、
そこでは前記分析が前記関連性のあるシーケンスをセグメントに分割することによりそれぞれ実行され、前記第1のセグメントが任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有するシーケンスの始まりにある部分であり、それぞれの続くセグメントが、任意のさらに短いこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する先行するセグメントの直後の部分である、方法。
【請求項3】
ステップ(b)において、前記切り替え点が前記第1のシーケンスのセグメント間遷移の近傍になるように選択される、請求項2に記載の方法。
【請求項4】
ステップ(b)において、前記切り替え点が前記第2のシーケンスのセグメント間遷移の近傍になるように選択される、請求項2に記載の方法。
【請求項5】
ステップ(a)において、前記第1のシーケンスと第2のシーケンスの両方が分析され、ステップ(b)において、前記切り替え点が前記第1のシーケンスと第2のシーケンスの両方のセグメント間遷移の近傍に、あるいは前記遷移が一致しない場合には、前記2つの遷移の内のより早期の遷移の近傍になるように選択される、請求項2に記載の方法。
【請求項6】
ステップ(a)において、前記第1のシーケンスと第2のシーケンスの両方が分析され、ステップ(b)において、前記切り替え点が前記第1のシーケンスと第2のシーケンスの両方のセグメント間遷移の近傍に、あるいは前記遷移が一致しない場合には、前記2つの遷移の内のより後期の遷移の近傍になるように選択される、請求項2に記載の方法。
【請求項7】
前記切り替え点が前記関連性のある遷移の4つのフレーム内で発生するように選択される、請求項2から6のいずれか1項に記載の方法。
【請求項8】
前記切り替え点が前記関連性のある遷移に一致するように選択される、請求項7に記載の方法。
【請求項9】
前記第1のシーケンスは、前記第2のシーケンスより高い圧縮率で符号化される、請求項2から8のいずれか1項に記載の方法。
【請求項10】
前記第1のシーケンスは、前記第2のシーケンスより粗い量子化を使用して符号化される、請求項9に記載の方法。
【請求項11】
前記シーケンスはフレーム間コーディングを使用して符号化され、予測値として前記第1のシーケンスの復号されたフレームを使用して符号化された前記第2のシーケンスのフレームから構成される、あるいはフレームで開始する遷移シーケンスを、前記切り替え点で生成することを含み、前記修正されたシーケンスは前記第2のシーケンスのフレームが後に続く前記遷移シーケンスを備える、請求項2から10のいずれか1項に記載の方法。
【請求項12】
前記またはあるシーケンスの前記第1のセグメントは、任意の考えられるこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記シーケンスの前記始まりのその部分であり、それぞれの続くセグメントが、任意の考えられるこのような部分のフレームあたりの前記平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記先行するセグメントの直後のその部分である、請求項1から11のいずれか1項に記載の方法。
【請求項13】
前記またはあるシーケンスの前記第1のセグメントは、最大所定長を超えない任意の考えられるこのような部分のフレームあたりの平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有するシーケンスの始まりにあるその部分であり、それぞれの続くセグメントが、前記最大所定長を超えない任意の考えられるこのような部分のフレームあたりの前記平均コーディング済みビット数以上であるフレームあたりの平均コーディング済みビット数を有する前記先行するセグメントの直後のその部分である、請求項1から12のいずれか1項に記載の方法。
【請求項14】
前記またはあるシーケンスの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、そのセグメントのためのフレームあたりの平均コーディング済みビットに等しいフレーム周期あたりのビット数である、請求項1から13のいずれか1項に記載の方法。
【請求項15】
前記またはあるシーケンスの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、そのセグメントのための名目レート以上である許可されたビットレートの集合の内の最低のものに等しいフレーム周期あたりのビット数であり、前記名目レートが、前記先行するシーケンスのための前記決定されたビットレートがその先行するセグメントのための前記名目レートを超過する結果、許可される任意の削減を差し引いた、そのセグメントのためのフレームあたりの前記平均コーディング済みビットである、請求項1から13のいずれか1項に記載の方法。
【請求項16】
前記またはあるセグメントの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、そのセグメントのための名目レート以下である許可されたビットレートの集合の内の最高のものに等しいフレーム周期あたりのビット数であり、前記名目レートが、前記続くシーケンスのために前記決定されたビットレートがその先行するセグメントのための前記名目レート未満である結果として必要とされる任意の増加を加えた、そのセグメントのためのフレームあたりの前記平均コーディング済みビットである、請求項1から13のいずれか1項に記載の方法。
【請求項17】
前記またはあるシーケンスの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、
(i)名目レートが、前記先行するシーケンスのために前記決定されたビットレートがその先行するセグメントのための前記名目レートを超過する結果として許可される任意の削減を差し引いた、そのセグメントのためのフレームあたりの前記平均コーディング済みビットである、そのセグメントのための前記名目レート以上である許可されたビットレートの集合の最低のものと、
(ii)前記続くセグメントのためのフレームあたりの前記平均コーディング済みビット数以上である許可されたビットレートの集合の最低のものと、
の大きい方に等しいフレーム周期あたりのビット数である、請求項12に記載の方法。
【請求項18】
前記またはあるシーケンスの少なくとも前記後期セグメントのそれぞれに決定される前記ビットレートは、
(i)名目レートが、前記続くシーケンスのための前記決定されたビットレートがその先行するセグメントのための前記名目レート未満である結果、必要とされる任意の増加を加えたそのセグメントのためのフレームあたりの前記平均コーディング済みビット数である、そのセグメントのための前記名目レート以下である許可されているビットレートの集合の最高のものと、
(ii)前記先行するセグメントのためのフレームあたりの前記平均コーディング済みビット以下である許可されているビットレートの集合の最高のものと、
の小さい方に等しいフレーム周期あたりのビット数である、請求項12に記載の方法。
【請求項19】
前記決定されたビットレートの予約を要求するコマンドを電気通信網に送信することを含む、請求項1から18のいずれか1項に記載の方法。
【図1A】
【図1B】
【図1C】
【図2A】
【図2B】
【図2C】
【図3A】
【図3B】
【図3C】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図1B】
【図1C】
【図2A】
【図2B】
【図2C】
【図3A】
【図3B】
【図3C】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公表番号】特表2006−506926(P2006−506926A)
【公表日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願番号】特願2004−570305(P2004−570305)
【出願日】平成15年11月18日(2003.11.18)
【国際出願番号】PCT/GB2003/004996
【国際公開番号】WO2004/047455
【国際公開日】平成16年6月3日(2004.6.3)
【出願人】(390028587)ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー (104)
【氏名又は名称原語表記】BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY
【Fターム(参考)】
【公表日】平成18年2月23日(2006.2.23)
【国際特許分類】
【出願日】平成15年11月18日(2003.11.18)
【国際出願番号】PCT/GB2003/004996
【国際公開番号】WO2004/047455
【国際公開日】平成16年6月3日(2004.6.3)
【出願人】(390028587)ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー (104)
【氏名又は名称原語表記】BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY
【Fターム(参考)】
[ Back to top ]