JP2006025401A - デジタルメディアストリームの逆提示 - Google Patents

デジタルメディアストリームの逆提示 Download PDF

Info

Publication number
JP2006025401A
JP2006025401A JP2005144184A JP2005144184A JP2006025401A JP 2006025401 A JP2006025401 A JP 2006025401A JP 2005144184 A JP2005144184 A JP 2005144184A JP 2005144184 A JP2005144184 A JP 2005144184A JP 2006025401 A JP2006025401 A JP 2006025401A
Authority
JP
Japan
Prior art keywords
frame
frames
bof
sequence
medium
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
JP2005144184A
Other languages
English (en)
Inventor
Gary J Sullivan
ジェー.サリバン ゲーリー
Glenn F Evans
エフ.エバンス グレン
Robin C B Speed
シー ビー スピード ロビン
Stephen C Rowe
シー.ロウエ スティーブン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006025401A publication Critical patent/JP2006025401A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/93Regeneration of the television signal or of selected parts thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/775Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/781Television signal recording using magnetic recording on disks or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/806Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal
    • H04N9/8063Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8227Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being at least another television signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】 エンコードされたデジタルメディアストリームの逆提示を容易にする。
【解決手段】 BOFのデコードされた基準フレームを順方向にデコードして記憶し、エンコードされた状態でBOFの非基準フレームを記憶し、シーケンス最後のフレームから開始して逆順で非基準フレーム及び少なくとも隣接する1つの基準フレームを含むサブシーケンス毎に・逆順で次に提示されるフレームが基準フレームである場合にその基準フレームを提示し、・非基準フレームの次に提示されるサブシーケンスを生成し、・シーケンスと逆順で生成されたばかりの非基準フレームを提示し、・提示されたばかりの非基準フレームを記憶するメモリを解放し、・逆順で次に提示されるフレームが基準フレームである場合にその基準フレームを提示することを繰り返し、最初のフレームに達するまで繰り返してシーケンス最初の基準フレームを提示する。
【選択図】 図2

Description

本発明は、全般的にはデジタルマルチメディアテクノロジに関する。
処理テクノロジおよびストレージテクノロジが進歩するにつれて、多数のパーソナルコンピューティングシステム(例えば、パーソナルコンピュータ、セットトップボックスなど)が、現在、マルチメディアオブジェクトを受け取り、処理し、レンダリングする能力を有する。そのようなオブジェクトは、オーディオコンテンツ、グラフィカルコンテンツ、および/またはビデオコンテンツの組合せを含むマルチメディアコンテンツを有する。マルチメディアコンテンツは、例えば、コンパクトディスク読み出し専用メモリ(CD−ROM)上、デジタル多用途ディスク読み出し専用メモリ(DVD−ROM)上、通信的に結合されたデータネットワーク(例えばインターネット)を介して、および類似物を含む複数の形のいずれかでコンピューティングシステムに配信することができる。
そのようなマルチメディアコンテンツを正確に表すのに必要なデータの量に起因して、通常、そのようなコンテンツは、エンコードされ、圧縮された形でコンピューティングシステムに配信される。提示のためにオリジナルコンテンツを再生するために、マルチメディアコンテンツを、提示の前に圧縮解除し、デコードしなければならない。ここで、提示に、ディスプレイデバイスおよび/またはオーディオデバイスにマルチメディアコンテンツを通信することが含まれる。
配布のためのエンコードされたマルチメディアコンテンツのフォーマットおよび意味を定義する複数のマルチメディア標準規格が、開発されてきた。国際標準化機構(ISO)および国際電気標準会議(IEC)のMoving Picture Experts Group(MPEG)、および国際電気通信連合(ITU)の援助を受けるVideo Coding Experts Group(VCEG)などの組織が、複数のマルチメディアコーディング標準規格(例えば、MPEG−1、MPEG−2、MPEG−4、H.261、H.263、および類似物)を開発した。
単純に割り切りすぎた言い方では、エンコーディングプロセスは、メディアコンテンツから時間的冗長性および空間的冗長性を除去し、これによって、メディアコンテンツを表すのに必要なデータの量を減らし、その結果、そのようなメディアコンテンツを記憶し、かつ/または伝送するための帯域幅の重荷を減らす。エンコーディングプロセスの例に、エントロピデコード、動き補償予測、逆量子化、逆変換、および逆変換された結果の予測への追加が含まれる。
逆に、デコーディングプロセスは、簡単に割り切りすぎた言い方では、通常、エンコーディングプロセスの逆である。
レンダリングに、通常は、デジタルアナログ変換(フィルタリングを伴う)という追加ステップが含まれる。これは、オリジナルのアナログメディア信号の近似表現を生成する。
本明細書での「メディアストリーム」は、圧縮およびエンコードを行うのに全般的に使用可能な機構に従って圧縮され、エンコードされたマルチメディアオブジェクト(オーディオコンテンツおよび/またはビデオコンテンツを含む)である。さらに、そのようなメディアストリームは、デコードおよびレンダリングを行うのに全般的に使用可能な機構に従ってデコードされ、レンダリングされることが意図されている。
一般性を失わずに、時間的冗長性または空間的冗長性を減らす同一の技法を、類似する構造を有するすべてのメディアストリームに適用することができる。例えば、多くのオーディオ圧縮フォーマットは、オリジナルの圧縮されていないストリームの近似を再生成するための、キーフレームとそれに続く変更データを有する。
多数の様々なビデオストリームデータフォーマットがある。例えば、H.263フォーマット、MPEG−1フォーマット、MPEG−2フォーマット、MPEG−4 Visualフォーマット、H.264/AVCフォーマット、およびDVフォーマットである。
多数の様々なオーディオストリームデータフォーマットがある。例えば、DTSオーディオまたはMLPオーディオである。
MPEG−2/H.262
優勢なデジタルビデオ圧縮伝送フォーマットは、ISO/IEC MPEG−X(Moving Picture Experts Group)標準規格およびITU−T VCEG H.26X(Video Coding Experts Group)標準規格を代表とする、ブロックベース動き補償ハイブリッドビデオコーダと称するファミリからのものである。この標準規格のファミリは、デジタル圧縮フォーマットでのオーディオビジュアル情報(例えば、映画、ビデオ、音楽など)のコーディングに使用される。
説明の便宜上、MPEG−2ビデオストリーム(H.262ビデオストリームとも称する)を、本明細書で全般的に述べ、説明する。というのは、これが、普通のビデオコーディング手法を代表する構造を有するからである。しかし、他のそのようなデジタルビデオ圧縮伝送フォーマットが存在し、これらを使用できることを、当業者は理解し、諒解するであろう。
MPEG−2フォーマットを、一般に「順方向デコード」フォーマットと呼ぶことができる。MPEGフォーマットの例の表現を、全般的に図1の10に示す。各ビデオシーケンスは、通常はGroup of Pictures(または「GOP」)と呼ばれるフレームのシーケンスからなる。GOPは、ピクチャまたはフレームのシーケンスからなる。GOPデータは、Iフレーム、Pフレーム、およびBフレームのシーケンスとして圧縮され、ここで、
・ Iフレーム(すなわちイントラ−フレーム)は、独立の開始イメージ(JPEGイメージに類似するフォーマットで圧縮される)である。Iフレームまたは「キーフレーム」(Iフレーム12など)は、単一のイメージとしてエンコードされ、過去のフレームまたは将来のフレームへの参照はない。Iフレームは、MPEG−2では「基準フレーム」と考えられる。というのは、その内容を、デコード順序で後続の1つのPフレームまたはデコード順序で後続の複数のBフレームのデコード処理に使用することができるからである。
・ Pフレーム(すなわち、順方向予測フレーム)は、前のIフレームまたはPフレームからの長方形(マクロブロックと呼ぶ)を移動し、その後、(エンコーダによって指示される場合に)残差と称する「訂正」を適用することによって計算される。後続のPフレーム(Pフレーム18など)は、過去の基準フレーム(前のIフレームまたはPフレームなど)に関してエンコードされる。Pフレームは、基準フレームに関する変化を含むという点で、「デルタフレーム」と考えることもできる。Pフレームは、MPEG−2では「基準フレーム」と考えることもできる。というのは、その内容が、デコード順序で後続の1つのPフレームまたはデコード順序で後続の複数のBフレームのデコード処理に使用することができるからである。
・ 0個以上のBフレーム(すなわちフレーム14および16などの両方向予測フレーム)は、隣接するIフレームまたはPフレームからの長方形とそれに続く(エンコーダによって指示される場合に)訂正係数の組合せによって形成される。複数のBフレームが、基準フレーム(IフレームまたはPフレームのいずれかであるフレーム)の対の間に位置することができる。MPEG−2では、Bフレームが、基準フレームと呼ばれない。というのは、これらが、デコード順序で後続のフレームのデコードの基準として使用されないからである。
GOP構造は、ストリーム内のランダムアクセスを援助することを意図されたものである。GOPは、通常、Iフレームから始まる限り任意のサイズとすることができる、独立にデコード可能な単位である。
MPEG−2フォーマットに関連する1つの問題は、普通の表示順序の逆でデータを再生できることに関係する。順方向のデータの再生は、通常は問題ではない。というのは、このフォーマット自体が、通常はまずIフレームをデコードし、その後、GOP内の他のフレームに移らなければならないことを意味する順方向デコードであるからである。しかし、逆方向でのデータの再生は、よりむずかしい。というのは、GOPが、生来的に、単純な逆方向デコードに抵抗するからである。
類似する課題が、値の開始ベクトル(すなわち、オーディオチャネルごとに1つ)とそれに続くデルタフレームとして圧縮されるオーディオデータに存在する。
DVD
通常、イメージが、DVDなどのディスクに記録される時に、コンテンツが、実際には、事前に決定される時間期間(通常は約1/2秒の単位またはvideo object basic unit(「VOBU」))を含む小さい単位に分割される。このフォーマットの利益は、ビデオを再生する時に、ビデオユニットを介して1つずつ進行できることである。ビデオの任意の部分にジャンプすることが望まれる場合に、興味のあるビデオユニットに単純にジャンプすることができ、オーディオおよびビデオが同期化される。すべてのストリームが同期化される位置を、「クリーンポイント」と呼ぶ。したがって、ビデオユニットおよびオーディオユニットが圧縮される時に、これらは、正確に同一の時にレンダリングされる単位に圧縮される、すなわち、オーディオとビデオの間にスキューがない。
MPEG−2の文脈内で語られる時のIフレームへのすべての言及を、他のデータフォーマットのキーフレームに拡張することができる。用語Iフレームは、MPEG−2の文脈の外で語られる時に、キーフレームと同義である。
例示的なメディアストリームレンダリングシステム
図2に、DVDなどのメディアストリームソースからデータをレンダリングすることができる例示的なシステム200を示す。システム200に、DVD 206からデータを読み取るソースコンポーネント204と通信するアプリケーション202が含まれる。DVDから読み取られるデータに、一緒にエンコードされ、多重化されたオーディオデータおよびビデオデータが含まれる。
ソースがDVDからデータを読み取る時に、ソースは、データパケットからタイムスタンプを取り出し、このタイムスタンプが、レンダリングのためにパケットを同期化し、スケジューリングするのに使用される。次に、パケットが、デマルチプレクサ(demux)208に供給され、デマルチプレクサ208は、パケットを別々の構成部分すなわち、オーディオパケット、ビデオパケット、および存在する場合にサブピクチャパケットに分割する。
次に、パケットが、デマルチプレクサによって、ビデオデコーダ210(ビデオパケットのデコード用)、オーディオデコーダ212(オーディオパケットのデコード用)、およびサブピクチャデコーダ214(サブピクチャパケットのデコード用)などの関連するデコーダに供給される。パケットのそれぞれが、関連するタイミング情報を有し、このタイミング情報は、パケットのコンテンツがいつレンダリングされると想定されるかを定義する。これらのパケットは、1つのGOP(MPEGに関して上で説明したもの)とすることができる。
次に、デコーダは、それに関連するパケットを解凍し、個々のデータサンプルまたはパケット(そのパケットのタイムスタンプを含む)を、ビデオレンダラ216およびオーディオレンダラ218などの適当なレンダラに送る。これらのデコーダのそれぞれが、通常、デコードされたパケット(またはその一部)を一時的に記憶するキャッシュを有する。通常、キャッシュは、少なくとも、他のフレームからのデータを参照するフレームデコードに対処するのに十分に大きい。
システム200には、通常、グローバルクロック220も含まれ、このグローバルクロック220は、様々なレンダラによって、そのタイムスタンプがグローバルクロックによって示される時刻と一致する一定のデータサンプルをレンダリングする時を確かめるのに使用される。
逆再生
ここで、ユーザが、アプリケーション202を介して、コンテンツを逆の順序で見ることを望むことを示すと仮定する。これを、「逆再生」、「逆方向再生」、「リワインド」、「逆方向スキャン」、「リバーストリックプレイ」、または「リバーススキャン」と呼ぶことができる。
GOPのフレームは、一般に同一の方向(本明細書では「順」方向と呼ぶ)で再生され、提示されるように設計されている。これは、GOPのフレームがエンコードされた方向と同一の方向である。しかしGOPのフレームがエンコードされた実際の特定の順序は、通常は、その提示の実際の特定の順序と異なる。
Bフレーム(図1のフレーム14および16など)をデコードするために、前のIフレーム/Pフレームおよび次のIフレーム/Pフレームが、既に存在しなければならない。例えば、GOPを、この順序I123456で提示することができるが、これは、順序I142365でエンコードされる。B2およびB3を生成する前に、P4をデコードしなければならないことに留意されたい。P6を生成するためには、P4をデコードしなければならない。
その結果、デコード順序を単純に逆にすることは、GOPの逆再生を作るのに不十分である。上の例では、P6が、前のP4フレームに依存し、このP4は、デコードが逆方向で行われる場合に、まだデコードされていない。さらに、P4は、前のI1フレームに依存し、このI1も、デコードが逆方向で行われる場合に、まだデコードされていない。さらに、Bフレームは、デコードが逆の時にまだデコードされていない1つまたは複数のフレームに依存する。
これに鑑みて、GOPを「逆再生」する1つの従来の手法では、GOP内のフレームの逆提示を用い、その結果、各フレームの提示の前に、現在のフレームに先行するすべてのフレーム(または少なくとも基準フレームのすべて)がデコードされるようにする。例えば、ABCDEというラベルを付けられたフレームについて、この従来の手法は、フレームABCDEをデコードし、その後、フレームEを表示する。次に、フレームABCDをデコードし、その後、Dを表示する。次に、ABCをデコードし、その後、Cを表示し、以下同様である。
この従来の手法は、非常に時間がかかり、非常に非効率的である。というのは、このシステムが、いくつかの同一フレームを繰り返してデコードするからである。計算要件は非常に高いが、メモリ要件は比較的低い。
GOPを「逆再生」するもう1つの従来の手法は、普通に順方向にデコードするが、GOPのデコードされ、現在は圧縮されていないフレームのすべてを一時的に記憶することである。GOP全体がデコードされ、記憶されたならば、デコードされたフレームを、逆の順序でレンダラに渡す。したがって、記憶された出力フレームが、単純に逆の順序で表示される。
この手法を用いると、計算要件は比較的低いが、メモリ要件が、比較的高い。この従来の手法は、次を必要とする。
・ GOPのデコードされたフレームの圧縮されていないイメージをキャッシングする大量のキャッシュメモリ。DVDまたは標準精細度TVなどの一般的なフォーマットであっても、10MB以上のキャッシュメモリが必要になる可能性がある。より高いHDTV解像度は、通常は50MBのメモリを必要とする。
・ キャッシュメモリは、通常は、デコーダユニットにアクセス可能な高速メモリに置かれる。ランダムな長方形の抽出は、非常にキャッシュフレンドリでないアクセスパターンを作る。通常、このメモリは、ビデオカード上の通常は高価な限られたローカルビデオメモリ(VRAM)内にある必要がある。
・ GOPは、通常、一定の出力速度を保証するために、少なくともダブルキャッシングを使用してパイプライン化される必要があるので、キャッシュメモリのメモリ要件は、通常は2倍になる。逆でのブロックの総合的なデコード速度は、同一の速度で順方向に再生する時と同位置であるが、デコーダは、ほとんど瞬間的にブロックをデコードし、普通の速度で逆に再生する必要がある。完全にデコードされたGOPをメモリ内に有することによって、デコーダユニットは、次のGOPをデコードするために、1GOP分の提示時間を有する。
さらに、コンテンツの後処理(インターレース除去、スケーリング、フィルタリング、オーディオピッチ訂正など)が、追加の計算能力および一時的処理キャッシュを必要とする場合がある。
逆再生に伴う問題を理解して、いくつかの従来の手法は、単純に、各GOPからキーフレーム(すなわちIフレーム)だけをデコードし、表示する。これは、ビデオストリームに現れる静止画像の、がくがくしたスライドショーのような逆提示を作る。単純であるが、この極度に単純化された手法は、優雅ではなく、ビデオストリームのビデオコンテンツの逆の動きのシミュレーションに完全に失敗する。
エンコードされたデジタルメディアストリームの逆提示を容易にする技術を提供する。
本明細書で、エンコードされたデジタルマルチメディアストリームの逆提示を容易にする実施形態を説明する。
この要約自体は、本願の範囲を制限することを意図したものではない。さらに、本願の名称は、本願の範囲を制限することを意図したものではない。本発明のよりよい理解のために、次の詳細な説明および請求項を、添付図面と共に参照されたい。本発明の範囲は、添付の特許請求の範囲で指摘する。
同一の符号を、複数の図面を通じて、同一の要素および特徴を指すのに使用する。
次の説明では、説明のために、本発明の完全な理解を提供するために、特定の数、材料、および構成を示す。しかし、本発明を、特定の例示的詳細なしで実践できることは、当業者に明白である。他の場合に、本発明の例示的な実施形態の説明を明瞭にし、これによって本発明をよりよく説明するために、周知の構造は、省略するか単純化する。さらに、理解しやすくするために、ある方法ステップを、別々のステップとして表すが、これらの別々に表されたステップを、その実行において必ず順序依存であるものとして解釈してはならない。
次の説明で、請求項に記載の要素を組み込んだデジタルメディアストリームの逆提示の1つまたは複数の例示的な実施形態を示す。これらの実施形態を、法定の書面による明細書の要件、実施可能要件、および最良の態様要件を満たすために具体的に説明する。しかし、この説明自体は、本発明の範囲を制限することを意図したものではない。
本発明人は、これらの例示的な実施形態が例であることを意図している。本発明人は、これらの例示的な実施形態が請求される本発明の範囲を制限することを意図しない。そうではなく、本発明人は、請求される本発明を、他の現在のまたは将来のテクノロジと共に、他の形で実施し、実装することもできることを企図した。
デジタルメディアストリームの逆提示の実施形態の例を、「例示的な逆プレゼンタ」と呼ぶ場合がある。

本請求される発明の、本明細書に記載の1つまたは複数の例示的な実施形態は、(全体をまたは部分的に)メディアストリームレンダリングシステム200によって、提示デバイス(presentation device)708によって、および/または図10に示されたものなどのコンピューティング環境の一部として実施することができる。
例示的逆プレゼンタは、圧縮されたデジタルメディアストリームの逆再生を容易にする。ほとんどのメディアストリームフォーマットは、フレームのシーケンスを含む独立にデコード可能なブロックを使用して圧縮されている。便宜上、そのようなブロックを、本明細書ではblock−of−frames(BOF)と呼ぶ。MPEGでは、group−of−pictures(GOP)が、そのようなBOFの例である。BOFが、いくつかの情況で(MPEG2のオープンGOPなど)隣接するBOFとフレームを共有する(すなわちオーバーラップする)場合があることに留意されたい。
本明細書では、「フレーム」が、メディアデータ(通常はオーディオデータおよび/またはビジュアルデータ)の圧縮された単位を指す。全体的なエンコーディング処理は、BOFのフレームのメディアデータ内の時間的冗長性または空間的冗長性を減らす。フレームがデコードされる(または圧縮解除される)時に、そのメディアデータが、圧縮なしで完全に表現される(時間的または空間的冗長性削減から)。
各BOFに、通常は、少なくとも1つのキーフレーム(例えばIフレーム)または基準ベクトルが含まれ、これに、複数のデルタフレームが続く。類似するプロシージャを使用して、類似する構造を使用して圧縮されたオーディオなどの様々なメディアストリームをデコードすることができる。
ストリームの逆再生に対する従来の手法は、通常は、普通に「順」方向でBOFをデコードするが、BOF全体のデコードされ、現在は圧縮されていないフレームのすべてをキャッシングすることである。BOF全体がデコードされ、キャッシングされたならば、デコードされたフレームが、逆の順序で提示される。
この従来の単純な手法は、比較的小さい圧縮されていないフレームサイズおよび短いBOF長さについて機能する。しかしHDTVイメージのデコードの場合など、圧縮されていないフレームサイズが大きくなる際に、一時的メモリ要件が、極端に厳しくなる可能性がある。
1/2秒長さのBOFを有するインターレース式1920×1080ピクセルイメージについて、このフレームを記憶するために、300MB超のメモリが必要である。さらに悪いことに、キャッシングされるイメージは、デコーダのローカルメモリ(メインメモリではなく)に置かれなければならない。圧縮解除されたイメージをメインメモリにコピーするのに必要なメモリ帯域幅は、しばしば、システムの内部バスの帯域幅を超える。
より多くのローカルキャッシュメモリを単純に追加することは、コンポーネントコストが増えるだけなので、経済的に逆効果である。ある点で、このブルートフォース解決策(メモリ追加という)は、コストが高すぎるようになる。
例示的な逆プレゼンタは、メディアストリームのBOFのより効率的な逆デコードを実行することによって、ストリームの改善された逆提示を容易にする。例示的な逆プレゼンタは、計算要件とメモリ要件のバランスもとり、その結果、メモリリソースまたは計算リソースが制限される場合にも、コンテンツを逆デコードできるようになる。
例示的な逆プレゼンタ
例示的な逆プレゼンタは、図2のメディアストリームレンダリングシステム200によって、図7および9の提示デバイス708によって、および/または図10に示されたものなどのコンピューティング環境の一部として(全体をまたは部分的に)実施することができる。
例示的な逆プレゼンタのストリームデコード機能は、ビデオストリームおよびオーディオストリームの圧縮されたマルチメディアデータを受け入れる、限られたメモリを有するデコードユニットで行うことができる。デコードユニットには、デコードコントローラ(図9のコントローラ940など)およびハードウェアデコーダ(図2のデコーダ210、212、および214または図9のデコーダ920など)が含まれる。
デコーダコントローラ(図9のコントローラ940など)は、デコーディングプロセスを制御する。デコーダコントローラは、デコーダによってデコードされたフレームをスケジューリングする。デコーダコントローラは、ソフトウェアで、ハードウェアで、またはその組合せで実行することができる。デコーダコントローラは、提示デバイス708上のプログラムモジュール、および/または図10に示されたものなどのコンピューティング環境の一部とすることができる。
デコーダ(図2のデコーダ210、212、および214または図9のデコーダ920など)は、専用の圧縮解除/デコードハードウェア、同等の動作を実行するソフトウェアコンポーネント、またはこの両方の組合せである。デコードは、通常は、専用ハードウェアによって処理されるので、しばしば、表示されるフレームに必要であるよりも素早くデコード(またはフレームを再デコード)することができる。
本明細書で、用語「フレームバッファ」は、1つの圧縮されていないフレームを記憶するように構成されたメモリストレージロケーションを指す。本明細書で、「キャッシュ」は、メモリストレージである。キャッシュに、フレームバッファを含めることができる。
基準フレームおよび非基準フレーム
「基準フレーム」は、それに依存するフレームを生成するための基準として使用されるデータを有するタイプのフレームである。基準フレームは、通常、そのデータが参照される前にデコードされなければならない。キーフレームは、必ず基準フレームである。しかし、キーフレームに依存するが、それに依存する1つまたは複数のフレームを有する中間フレームも、基準フレームとして分類される。MPEG領域では、IフレームとPフレームの両方が、基準フレームとして分類される。
「非基準フレーム」は、別のフレームによって参照されるデータを含まないタイプのフレームである。非基準フレームに含まれるデータの他に、フレーム内の完全にデコードされたイメージの生成は、そのデコードされた基準フレームのデータに依存する。MPEG領域では、Bフレームが、非基準フレームとして分類される。というのは、Bフレームに依存するフレームがないが、Bフレームは2つの基準フレーム(IフレームまたはPフレーム)に依存するからである。非基準フレームは、通常、デコードされ、その後、破棄され、他のフレームをデコードするために一時的に記憶される必要がない。
例示的な逆プレゼンタの諸態様
下で説明する(「エンコードされた非基準フレームをキャッシングする、基準フレームのデコード」という題名のセクションに関して)例示的な逆プレゼンタの諸態様は、基準フレーム(例えば、Iフレーム/Pフレーム)に関する非基準フレーム(例えば、Bフレーム)の改善された処理に焦点を合わせたものである。それを行う際に、メディアストリームの逆再生に対する改善された手法が提供される。
逆に、下で説明する(「選択的基準フレームのデコードおよびキャッシング」という題名のセクションに関して)例示的な逆プレゼンタのもう1つの態様は、ストリームの逆再生に対する改善された手法を作成するために、基準フレーム(例えば、Iフレーム/Pフレーム)の改善された処理に焦点を合わせたものである。この態様によって提供される改善は、非基準フレーム(例えば、Bフレーム)の処理に基づかない。しかし、例示的な逆プレゼンタの両方の態様を、一緒に使用することができる。また、実際に、全体的な逆再生機能をさらに改善するために、両方の態様を同時に使用することが望ましい場合がある。
エンコードされた非基準フレームをキャッシングする、基準フレームのデコード
例示的な逆プレゼンタのこの態様は、BOFの基準フレーム(例えば、IフレームまたはPフレーム)の一部またはすべてを順方向にデコードしながら、まだエンコードされている(したがってまだ圧縮されている)非基準フレーム(例えば、Bフレーム)をキャッシングすることによって、BOF(GOPなど)の改善された逆再生を達成する。
例示的な逆プレゼンタは、逆の順序でBOFのフレームを提示するので、既にデコードされた基準フレームを提示するが、非基準フレームを提示する前に、既にデコードされた基準フレームに基づいて、キャッシュ内のまだエンコードされている非基準フレームをデコードする。
Iフレームは、以前のまたは将来のフレーム情報と独立にデコードされる。Pフレームは、前のIフレームまたはPフレームの順方向の変更である。Bフレームは、隣接するフレームのIフレーム/Pフレームだけに依存するので、Bフレームは、隣接するフレームのフレームインデックスを交換し、順方向でデコードすることによって、逆方向にデコードすることができる。
例えば、Bフレーム内の結果のマクロブロックMBが、前のPフレームからのマクロブロックMP1および次のPフレームからのマクロブロックMP2の関数であったと仮定する。Bフレームが順方向にデコードされる場合に、MB=function1(MP1,MP2)である。しかし、Bフレームのインデックスが交換された時に、このフレームは、次のようにデコードされる:MB=function2(MP2,MP1)。ただし、function2は、そのオペランドを交換されたfunction1である。
したがって、Bフレームのデコードされたマクロブロックは、隣接するフレームのデコード順序を逆転し、同一の残差訂正(residual correction)を適用することによって生成することができる。
例示的な逆プレゼンタは、圧縮された形の非基準フレーム(例えば、Bフレーム)をキャッシングする。BOFフレームが、逆の順序で提示されつつある時に、キャッシングされた圧縮された非基準フレームが、デコードされる。非基準フレームのデコードに関する依存性は、前もってではなく、非基準フレームのデータがレンダリングに必要になった時に解決される。
非基準フレームは、メインシステムメモリに、アクセス速度を改善するためにローカルメモリ(VRAMなど)に、またはデコーダユニットから簡単にアクセス可能なシステムメモリ(AGPメモリなど)に記憶することができる。本明細書で、これらのすべてを、包括的にキャッシュと呼ぶことができる。
例えば、IBBPBBPBBPBBI(最後のIが隣接するBOFによって共有される)の通常のBOF再生構造が使用される場合に、逆再生のメモリ要件は、BOFのすべてのデコードされたフレームをキャッシングする従来の手法が必要とするものの約1/3にすることができる。この例では、例示的な逆プレゼンタが、10個のフレームのすべてではなく、10個のフレームのうちの4つだけのデコードされたバージョンをキャッシングする。具体的に言うと、例示的な逆プレゼンタは、IフレームおよびPフレームのデコードされたバージョンをキャッシングする。
例示的な逆プレゼンタは、この例では圧縮された形の6つのBフレームを記憶する。3つのタイプ(Iフレーム、Pフレーム、およびBフレーム)のうちで、Bフレームは、2つの他のフレームに依存するので、最も圧縮されたタイプのフレームを表す。Bフレームの圧縮解除されたデータの一時的ストレージを回避することは、BOFのすべてのデコードされたフレームのキャッシングという伝統的な手法のメモリ要件の大きい削減を表す。
例示的な逆プレゼンタのこの態様に関して、特定のBOF構造は、IBBPBBPBBPという通常のBOF構造である。これは、一般的なBOF構造であるが、当業者は、他のBOF構造が可能であることを理解し、諒解し、さらに、この態様を他の可能な構造に適用する形を理解し、諒解する。
非基準フレームを圧縮された形で保有する(または効果的に「キャッシングする」)もう1つの形が、ビデオデータが到着した記憶媒体が何であれ、単純にそれに残すことである。例えば、フレームを、DVDまたはハードドライブに残し、望まれる時にその位置を読み取ることができる。
例示的な逆プレゼンタの方法論的実施形態
図3に、基準フレームのデコードを含むがエンコードされた非基準フレームをキャッシングする、逆再生の例示的な逆プレゼンタの方法論的実施形態を示す。この方法論的実施形態は、ソフトウェアで、ハードウェアで、またはその組合せで実施することができる。
図3の310で、例示的な逆プレゼンタは、BOFを受け取り、受け取られたBOFが逆方向に提示(すなわち逆に再生)されなければならないことのインディケーションを受け取る。
312で、例示的な逆プレゼンタは、受け取ったBOFの基準フレームを順方向にデコードする。
314で、例示的な逆プレゼンタは、BOFのデコードされた基準フレームおよびまだエンコードされている非基準フレームを記憶する。
316で、非基準フレームごとに、隣接するフレームのフレームインデックスを交換する。その後、非基準フレームの依存性を逆にする。
図3の318で、例示的な逆プレゼンタは、これから提示されるBOFの最後の基準フレームを提示する。
320で、例示的な逆プレゼンタは、これから提示されるBOFの最後の非基準フレームを生成する。生成されたばかりの非基準フレームは、キャッシュ内の既にデコードされた基準フレームへの依存性に基づいてデコードされる。
322で、例示的な逆プレゼンタは、生成されたばかりの非基準フレームを提示し、任意選択として、生成されたばかりの非基準フレームを記憶するフレームバッファを解放する。生成されたばかりの非基準フレームは、もはや、提示または他のフレームのさらなるデコードに必要ないので、それを保持するメモリを、他の使用のために解放することができる。また、例示的な逆プレゼンタは、次のフレームに進む(逆の順序で)。
324で、次のフレームが非基準フレームである場合には、逆の順序で発生する非基準フレームごとにブロック320および322を繰り返す。そうでない場合には、ブロック326に進む。
326で、次のフレームが基準フレームである場合に、それがBOFの最後のフレーム(逆の方向での。順方向で最初であった)であるかどうかを判定する。そうである場合には、ブロック328に進む。そうでない場合には、次のフレームは、単にもう1つの基準フレームであり、このプロセスはブロック318に進む。
図3の328で、例示的な逆プレゼンタは、最後のフレーム(逆の方向での。順方向で最初であった)を提示する。このBOFに関して、このプロセスは終了する。
例示的動作
図3の方法論的実施形態に従って逆の順序でBOFを再生するために、例示的な逆プレゼンタは、フレームI12345678910からなる例示的なBOFを受け取る。例示的な逆プレゼンタは、このBOFが逆に提示されることの表示も受け取る。
例示的な逆プレゼンタは、基準フレームを順方向にデコードし、それらをキャッシュに一時的に記憶する。この例では、例示的な逆プレゼンタは、基準フレームI14710をデコードし、キャッシングする。
基準の圧縮されないバージョンを一時的に記憶することに加えて、例示的な逆プレゼンタは、キャッシュに、圧縮された形の非基準フレームすなわち、B23、B56、およびB89も記憶する。例示的な逆プレゼンタは、非基準フレームのフレームインデックスも交換し、その結果、そのフレーム依存性が入れ替えられるようにする。これは、Bフレームのデコードされたマクロブロックを、隣接するフレームの逆のデコード順序を用いて、同一の残差訂正を適用しながら生成するために行われる。
例示的な逆プレゼンタは、提示(例えば、レンダリングおよび表示)のために、記憶され、デコードされたP10をスケジューリングする。
例示的な逆プレゼンタは、P7およびP10に基づいてB9を生成する。この生成は、P7およびP10に対するB9の依存性に基づくデコードまたは圧縮解除である。
例示的な逆プレゼンタは、記憶され、現在はデコードされているB9を提示のためにスケジューリングし、任意選択として、B9用に割り当てられたメモリをフリープールに移動する。
次のフレーム(逆に進む時の)は、もう1つの非基準フレーム(B8)なので、上の2つのアクション(Bフレームの生成および提示)が、B8について繰り返される。
9およびB8がデコードされ、提示された後に、P10は、もはや不要である(既に提示され、もはや依存性コーディングに使用されないので)。したがって、P10のメモリを解放することができる。
78910の組を操作する上のアクションが、次の組(逆に進む時の)P4567について繰り返される。
78910の組を操作する上のアクションが、今度は、次の組(逆に進む時の)I1234について繰り返される。
最後に、例示的な逆プレゼンタは、提示のために、記憶されデコードされたI1をスケジューリングする。I1は、最後のフレーム(逆の順序で)なので、その提示によって、フレームI12345678910からなる例示的なBOFの逆再生が完了する。
さらに、例示的な逆プレゼンタは、基準フレームバッファが現在のBOFについて解放されるたびに、前のBOFの次の基準フレームをデコードすることによって、CPU使用量を平滑化することができる。この形で、次のBOFが、現在のBOFが完了するや否やデコードされる。
選択的基準フレームのデコードおよびキャッシング
このセクションで説明する例示的な逆プレゼンタのもう1つの態様は、ストリームの逆再生に対する改善された手法を作成するための基準フレーム(例えば、Iフレーム/Pフレーム)の改善された処理に焦点を合わせたものである。この態様によって提供される改善は、非基準フレーム(例えば、Bフレーム)の処理に基づかない。しかし、この態様を、上で説明した態様と組み合わせて、全体的な逆再生機能をさらに改善することができる。
例示的な逆プレゼンタのこの態様では、圧縮されていない基準フレーム(例えば、Iフレーム/Pフレーム)が選択的に維持され、それ以外が再生成される。それを行うことによって、BOFシーケンスの逆再生に必要な一時メモリ(例えば、キャッシュ)の量が減る。この態様では、逆再生を、キャッシュ内で使用可能な少数のフレームバッファだけを用いて実行することができる。本明細書での「フレームバッファ」は、1つの圧縮されていないフレームを記憶するように構成されたメモリストレージロケーションである。
正確なストラテジは、BOFシーケンスの正確な構造に基づいて変化する可能性があるが、説明を明瞭にするために、このセクションの説明では、各BOFが単一のキーフレーム(例えば、Iフレーム)を有し、これから始まると仮定する。また、キーフレームに、他の基準フレーム(例えば、Pフレーム)および非基準フレーム(例えば、Bフレーム)が続くと仮定する。
このストラテジは、最良のデコードストラテジを選択するために、BOFを完全に事前スキャンして、BOF内のフレーム数を発見することによって改善することができる。
通常のMPEG−2ビデオストリームについて、フレームの1/3がIフレームまたはPフレームであり、BOFサイズが、約500msである。これは、15フレームにマッピングされ、5つの基準フレームを有するBOFが作られる。
複数のキーフレーム(例えば、Iフレーム)を有する、より複雑なBOF構造が存在する。これらは、逆に再生される時に、それぞれが1つのキーフレームを有するサブBOFブロックに分解することができる。この話題の詳細については、下の「Bフレームを含むBOFへの拡張」という題名のセクションを参照されたい。
使用される特定のストラテジは、例示的な逆プレゼンタの対象であるBOFシーケンスの特定のBOF構造(例えば、そのIフレーム、Pフレーム、およびBフレームの構成および順序)に依存して変化する。非基準フレームを、ローカル基準フレームから生成することができるので、基準フレームの相対的な構造が、この態様にとって最も重要である。
例示的な逆プレゼンタのこの態様について、非基準フレーム(例えば、Bフレーム)を無視することができる。その結果、この態様は、基準フレームに焦点を合わせたものになる。ここで述べる基準フレームの特定のBOF構造に、単一のIフレームと、それに続くn−1個のPフレームが含まれる。したがって、数nは、BOF構造内の基準フレームの個数である。
これは、一般的なBOF構造であるが、当業者は、他のBOF構造が可能であることを理解し、諒解し、さらに、この態様を他の可能な構造に適用する形を理解し、諒解する。
一部のBOF構造は、最後のBフレームをデコードするために、次のBOFのIフレームを必要とする場合がある(例えば、MPEG2「オープンGOP」)。一般性を失わずに説明を単純にするために、現在のBOFの定義を、次のBOFの次のIフレームを含むように拡張することができる。最後のIフレームを、現在のBOFの最後の「Pフレーム」と呼ぶことができる。
例示的な逆プレゼンタは、基準フレームの個数nの判定またはそれに関する上限の設定のいずれかを行う。これを判定するために、例示的な逆プレゼンタは、圧縮された形のBOFをキャッシングし、解析することができる。代替案では、例示的な逆プレゼンタは、タイムインターバルおよびBOF構造限度(BOF structure limits)を使用して、基準フレームの最大個数を推定することができる。
この議論に関して、mは、デコードされた基準フレームを一時的に記憶するのに使用可能なフレームバッファの個数を表し、nは、BOFシーケンス内の基準フレームの個数を表す。
n=1(単一のIフレームだけがある)の場合の自明な状況について、1つのフレームバッファだけが必要である。もう1つの自明な状況が、n=2の場合である。この状況では、2つのフレームバッファが必要である。この2つの自明な状況では、1つ(n=1の場合)または2つ(n=2の場合)のフレームバッファがあると仮定する。
n>2の場合に、少なくとも1つのフレームバッファが、第1のIフレームイメージ用であり、少なくとも1つのフレームバッファが、最後のこれから提示されるPフレームイメージ用である。残りのフレームバッファ(そのうちの1からn−2がある)が、他のこれから提示されるPフレームイメージに使用可能である。本明細書で、フレーム「イメージ」への言及は、フレームの内容が完全にデコードされる(例えば、圧縮解除される)ことを意味する。
n≦mの場合に、順方向ですべての基準フレームをデコードし、その後、これらを逆の順序で提示するのに十分なフレームバッファがある。
その結果、例示的な逆プレゼンタのこの態様は、3つ以上の基準フレームがあり(n>2)、基準フレームより少数のフレームバッファがある(m>n)時に特に有用である。
選択ストラテジ(バイナリ副分割(binary subdivision)または本明細書で述べる他のストラテジ)を使用することによって、例示的な逆プレゼンタは、これから提示される基準フレームの間で、デコードされ、フレームバッファに記憶されるものを選択する。
まだデコードされず、記憶されていない場合に、選択された基準フレームをデコードするのに必要な基準フレームのすべてを、順方向にデコードする。このデコードを行っている間に、最後のこれから提示される基準フレームに先行する、BOFのデコードされた基準フレームを、一時的に記憶する。デコードされたフレームが、選択されたフレームの1つでない場合には、これを破棄し、そのフレームバッファを解放する。
例示的な逆プレゼンタは、選択されたフレームをフレームバッファに記憶する。例示的な逆プレゼンタは、記憶されたこれから提示されるフレームの最後のフレームを提示し、その後、それに使用されたフレームバッファを解放する。バッファは、このデコーディングプロセスの後続フレームをキャッシングするために、空きバッファの使用可能プールに返すことができる。この観察は、提案されるアルゴリズムとバイナリ副分割の間の主要な相違である。これによって、提案されるアルゴリズムが、計算コストを大幅に削減できるようになる。
例示的な逆プレゼンタは、もう一度その選択ストラテジを使用して、まだデコードされず、フレームバッファに記憶されていないもう1つの基準フレームを選択する。例示的な逆プレゼンタは、BOFの基準フレームのすべてを提示するまで、上の選択、デコード、記憶、および提示の各機能を繰り返す。
これを行う際に、例示的な逆プレゼンタは、いくつかの基準フレームを複数回きわめて良好にデコードする可能性もある。通常、デコーダは、提示される速度より速くデータをデコードする能力を有する。例示的な逆プレゼンタのこの態様は、必要になるより十分に前に圧縮されていないフレームをキャッシングするのではなく、この使用可能なアイドル時間を利用して、必要に応じて圧縮されていないフレームを再生成する。
メモリリソースと計算リソースとの間のバランスを見つけるという目標について、例示的な逆プレゼンタは、キャッシングまたはフレーム再生成の間で判断を行う。
例示的な逆プレゼンタの方法論的実施形態
図4に、選択的デコードおよび基準フレームのキャッシングを行う、逆再生用の例示的な逆プレゼンタの方法論的実施形態を示す。この方法論的実施形態は、ソフトウェアで、ハードウェアで、またはその組合せで実施することができる。
この態様は、基準フレームに焦点を合わせているので、下で説明する方法論的実施形態では、非基準フレームに対する動作のすべてを無視する。しかし、下で説明する方法論的実施形態を、非基準フレームに対して動作する別の方法論的実施形態(上で図3に関して説明したものなど)と組み合わせることができる。
図4の410で、例示的な逆プレゼンタは、BOFを受け取り、受け取られたBOFが逆方向に提示(すなわち逆に再生)されなければならないことのインディケーションを受け取る。
412で、例示的な逆プレゼンタは、基準フレームの個数nの値を割り出すが、このnは、BOF内の基準フレームの実際の個数または基準フレームの上限を表す。これを判定するために、例示的な逆プレゼンタは、圧縮された形のBOFをキャッシングし、解析し、基準フレームを識別し、数えることができる。代替案では、例示的な逆プレゼンタは、タイムインターバルおよびBOF構造限度を使用して、基準フレームの最大個数を推定することができる。
414で、例示的な逆プレゼンタは、mの値を割り出すが、このmは、デコードされた基準フレームを一時的に記憶するのに使用可能なフレームバッファの個数を表す。例示的な逆プレゼンタは、メモリシステム内で使用可能なフレームバッファおよびメモリロケーションの特定の個数を追跡する、メモリトラッキング技法によってこれを行うことができる。例示的な逆プレゼンタは、メモリトラッキングシステムなどからこの情報を受け取ることもできる。
416で、例示的な逆プレゼンタは、3つ以上の基準フレームがある(n>2)かどうかと、基準フレームより少数のフレームバッファがある(m<n)かどうかを判定する。そうである場合には、このプロセスはブロック418に継続する。そうでない場合にには、このプロセスは、430で終了する。
図4の418で、例示的な逆プレゼンタは、BOFのn個の基準フレームの、サイズm(以下)のサブセットを選択する。基準フレームのいずれかが既に提示済みである場合には、そのフレームは、このサブセットに含まれない。通常、この選択には、少なくとも、Iフレームおよび最後のこれから提示されるPフレームが含まれる(「最後」は、BOFの順方向で見たものである)。3つ以上のフレームバッファがある時に、m−2個のさらなるPフレーム(Iフレームと最初のこれから提示されるPフレームの間)も選択する。
多数の選択ストラテジを使用することができる。1つのストラテジは、バイナリ副分割を使用して、残りの基準フレームを選択することとすることができる。基準フレームの個数(n)に応じて、例示的な逆プレゼンタを、下の「小さいnのフレームバッファ選択ストラテジ」、「中程度のnのフレームバッファ選択ストラテジ」、および「大きいnのフレームバッファ選択ストラテジ」という題名のサブセクションで説明する3つの選択ストラテジの1つを使用するように構成することができる。
420で、例示的な逆プレゼンタは、選択された基準フレームのすべてをデコードするのに必要な基準フレームのすべてを順方向にデコードする。選択された基準フレームをデコードするのに必要なフレームが、既に記憶されている場合には、それをデコードする必要はない。言い換えると、選択された基準フレームが、既にデコードされ、フレームバッファに記憶されている場合には、そのフレームに対して何もしない。
このデコードを行っている間に、最後のこれから提示される基準フレームに先行する、BOFの各デコードされた基準フレームを、一時的に記憶する。デコードされたフレームが、選択されたフレームの1つでない場合には、破棄し、そのフレームバッファを、選択された基準フレームの1つを記憶するために解放する。
例示的な逆プレゼンタは、選択されたフレームをフレームバッファに記憶する。この機能の終りに、フレームバッファに、選択された基準フレームが記憶されている。
422で、例示的な逆プレゼンタは、フレームバッファに記憶されたこれから提示される最後の基準フレーム(例えば、Iフレーム/Pフレーム)を提示する。これは、BOFの逆再生なので、最後のこれから提示される基準フレームの提示によって、BOFの基準フレームの逆提示が作られる。
また、基準フレームの提示の間に、例示的な逆プレゼンタは、やはり逆に、間にある非基準フレーム(例えば、Bフレーム)を提示している場合もある。
424で、例示的な逆プレゼンタは、提示されたばかりの基準フレームが記憶されていたフレームバッファを解放する。提示されたばかりの基準フレームは、もはや提示および他のフレームの将来のデコードに必要でないので、それを保持するメモリを、他の使用のために解放することができる。
426で、提示されたばかりの基準フレームが、BOFの最初のフレーム(例えば、Iフレーム)である場合に、このプロセスは、このBOFに関して終了する。そうでない場合には、ブロック418に戻って、ブロック418から426を繰り返す。フレームバッファを解放したので、ブロック418に戻った時に、新しい基準フレームを選択することができる。
小さいnのフレームバッファ選択ストラテジ
「小さい」n、「中程度の」n、および「大きい」nを分類する閾値の選択は、完全に任意ではないが、閾値の選択に、通常はある度合のヒューリスティックが含まれる。これは、例示的な逆プレゼンタの実際の実装の計算能力に大きく依存する。例えば、「小さい」と「中程度」の間の閾値は、約8程度とすることができるが、「中程度」と「大きい」の間の閾値は、約500から1000程度とすることができる。しかし、本明細書に記載の概念を使用して、特定の実装の必要に合うように閾値を調整することができる。
したがって、n≦8かつm<nである、小さい数(n)の基準フレームに関する例示的な逆プレゼンタのこのフレームバッファ選択ストラテジでは、下の明示的なテーブルを使用する。このストラテジは、上の図3のブロック318で説明した機能およびその前後で使用することができる。このテーブルは、最適の小さいnアルゴリズムの出力によって生成されたものである。
このテーブルでは、BOF構造がI123...PNであることと、Iフレームの相対的なデコードコストがPフレームに類似することを前提とする。
2フレームバッファ(m=2)
2つのフレームバッファだけがある(m=2)場合に、例示的逆プレゼンタは、第1フレーム(例えばI1)の生成を開始し、最後のこれから提示されるフレームを再帰的に生成する。後の(later)Pフレームのキャッシングを優先してIフレームを破棄して、最初のランの長さを減らすことができる。
次の表に、n=3から8で各基準フレームについて実行されるデコードの回数を示す。
Figure 2006025401
3フレームバッファ(m=3)
3つのフレームバッファだけがある(m=3)場合に、例示的な逆プレゼンタは、最初のフレームを生成し、ほぼ真ん中のPフレームを保持し、最後の2つのフレームバッファフレームを使用し、最後のこれから提示されるフレームを再帰的に生成する。例示的な逆プレゼンタは、3つのフレームバッファの2つにこれらを記憶する。残りの基準フレームの1つが、選択され、残りの1つのフレームバッファに記憶される。
選択(記憶される基準フレームの選択のための)、世代、および提示の機能の各再帰について、新しい最後のこれから提示されるフレームが、選択され、第1フレームと新しい最後のこれから提示されるフレームの間の新しい基準フレームが、フレームバッファに記憶される。
次のテーブルに、n=4から8で各基準フレームについて実行されるデコードの回数を示す。
m=3の時に、デコードの総数=2n−3である。
通常のBOF構造は、5つの基準フレームを有する(n=5)。したがって、m=3の時に、通常、通常のBOF構造には8つのデコードを要する。
4フレームバッファ(m=4)
4つのフレームバッファがある(m=4)場合に、1つの追加フレームバッファ(m=3状況と比較した時に)が、基準フレームの長いランの再デコードを減らすのに使用可能である。このストラテジでは、これから提示されるフレームのシーケンスの中ほどにあるフレームを選択する。これを行うことは、BOFを半分に分割するのに役立ち、ここで、各半分がデコードされる。
Figure 2006025401
このストラテジでは、デコード(または再デコード)されなければならないフレームの1つまたは複数のスパンのサイズを最小にするという目標に関してフレームを選択する。それを行う際に、残りのこれから提示されるフレームのデコード(および必要な場合の再デコード)の全体的な動作が、2つの副動作に再帰的に分割される。各副動作は、より少数のフレームバッファを有することができ、より少数の使用可能なフレームバッファmを有するより小さいnの事例を使用して解決することができる。
例えば、n=8(I12345678)であり、フレーム4をキャッシングすると選択する場合に、P4...P8からの第2デコード動作を、5つのフレームおよび3つのバッファ(n=5、m=3、前のm=3テーブルのn=5エントリを参照されたい)を有する副問題とみなすことができる。第2の副問題をデコードした後に、I1234をデコードするという残りの問題は、前の、m=4バッファを有するn=4の部分事例になる。選択ストラテジは、まだn=4、m=4の事例と同一であるが、フレームI1およびP4がキャッシングされているので、さらに2つの基準フレームをデコードするだけでよい。
5フレームバッファ(m=5)
m=5、n=6の場合に、1つのフレーム(例えば、フレームP2)だけを再デコードする必要がある。合計で、7回のデコードがもたらす。
m=5、n=7の場合に、2つのフレームだけを再デコードする必要がある(例えば、P2、P3)。これは、合計9回のデコードをもたらす。
m=5、n=8の場合に、3つのフレーム(例えば、P2、P3、およびP4)だけを再デコードする必要がある。これは、合計11回のデコードをもたらす。
Figure 2006025401
6フレームバッファ(m=6)
m=6、n=7の場合に、1つのフレーム(例えば、フレームP4)だけを再デコードする必要がある。これは、合計8回のデコードをもたらす。
m=6、n=8の場合に、2つのフレームを再デコードする必要がある。これは、合計10回のデコードをもたらす。
Figure 2006025401
7フレームバッファ(m=7)
m=7、n=8の場合に、1つのフレーム(例えば、フレームP2)を再デコードする必要がある。これは、合計9回のデコードをもたらす。
Figure 2006025401
合計デコード回数の要約
Figure 2006025401
例示的な逆プレゼンタの選択ストラテジは、再デコードの量を劇的に減らすと同時に、大量のバッファリングの必要(従来の手法に必要)をなくすことができる。
代替実施形態は、デコードされたIフレームを使用可能に保たないものとすることができる。実際に、Iフレームを破棄し、後でもう一度デコードすることができる。
中程度のnのフレームバッファ選択ストラテジ
したがって、nが約8を超え、m<nである、中程度の個数(n)の基準フレームに関する例示的な逆プレゼンタのこのフレームバッファ選択ストラテジでは、下で説明するストラテジを使用する。このストラテジは、上の図3のブロック318で説明した機能およびその前後で使用することができる。
この選択ストラテジを、「暗記(memorization)」ストラテジと呼ぶこともできる。一般に、「暗記」は、同一の条件の下で結果をもう一度再計算するのではなく、後の使用のために計算結果を保存(すなわち暗記)するアルゴリズム的技法である。
この選択ストラテジでは、BOFをますます小さくなるスパンに再帰的に分割することに焦点を合わせる。スパンは、選択されたフレーム(キャッシングに関して)の間のフレームである。スパン長は、スパンに何個のフレームがあるかに基づく。この選択ストラテジは、スパンの既知の組合せがフレームおよびバッファの既知の組合せと一致するまで、スパンをより小さいスパンに分割することを継続する。
例示的な逆プレゼンタのこのフレームバッファ選択ストラテジでは、m個のバッファを使用する逆の順序でのn個のフレームのデコードおよび表示に、「保持すべき最初のフレーム」F(m,n)を定義する。これは、デコードの後に、そのバッファを即座に解放されない最初のフレームである。このフレームがデコードされる先のバッファは、このフレームが実際に表示されるまで解放されない。任意に、最初のフレームの個数が、1になるように選択される。
この選択ストラテジでは、このアルゴリズムを使用し、m個のバッファを使用して逆の順序でn個のフレームをデコードし、表示するのに必要なデコードの回数を、D(m,n)と定義する。ここで、F(m,n)およびD(m,n)を再帰的に計算する。m≧nの場合に、D(m,n)=nかつF(m,n)=1であることに留意されたい。
m<nの場合に、再帰は、保持される最初のフレームのすべての重要な値に必要なデコードの最小回数を見つけることによって実行される。したがって、F(m,n)およびD(m,n)を、副産物として導出する。
保持される最初のフレームがxであると仮定すると、必要なデコードの回数は、次のように分析される。
Figure 2006025401
これらの量の合計を最小にするxの値が、F(m,n)である。この合計を最小にするxの最大値が、曖昧さを防ぐために任意に選択される。
再帰を計算する際に、D(i,j)およびF(i,j)の値が、サイズがm×nである配列に集められる。したがって、ある値を計算した時に、上のさらなる検索は不要である。
次に、F(i,j)の値を使用して、デコードシーケンスを再構成する。
大きいnのフレームバッファ選択ストラテジ
したがって、nが約500〜1000を超え、m<nである、多数(n)の基準バッファに関する例示的な逆プレゼンタのこのフレームバッファ選択ストラテジでは、下で説明するストラテジを使用する。このストラテジは、上の図3のブロック318で説明した機能およびその前後で使用することができる。
この選択ストラテジは、「正規化された算術スパン幅シーケンス」ストラテジと呼ぶこともできる。この選択ストラテジは、スパン長に焦点を合わせたものである。スパンは、選択されたフレーム(キャッシングに関して)の間のフレームである。スパン長は、スパンに何個のフレームがあるかに基づく。この選択ストラテジは、複数のスパンのうちの最長スパンの複数の再デコードの長さを最小にすることを試みる。
一般に、フレームバッファを再デコードする回数は、選択されたフレーム(フレームバッファにキャッシングされる)の間のスパンの長さに比例する。キャッシングされたフレームが表示される時に、そのフレームバッファは、もはや不要であり、再デコードされるフレームのキャッシングに再利用することができる。
nのサイズが増える時に、選択ストラテジの順列最適化が、デコードされるフレームの相対的な個数ほど重要でなくなる。選択ストラテジは、各「再デコード」ブロックのスパン長を最小にすると同時に、BOFがデコードされる時のフレームバッファの増加する個数を考慮に入れるように努力する。
最後にデコードされるフレームから始めて、スパン長は、1、2、3、4、5、...m−2に比例する(すなわち、フレームインデックスの順序では、相対スパン幅が、m−2、m−1、...、3、2、1になる)。最後のインターバルをデコードするために、最初のフレーム、n番目のフレーム、およびn番目のフレームに隣接するフレーム(すなわち、n−1番目)のための少なくとも1つのフレームバッファが必要である。最後のインターバルがデコードされた後に、次の最後のインターバルをデコードするために、バッファを解放する。したがって、n−2個のフレームのインターバルに置かれるm−3個のバッファがある。これから、2...n−1の範囲にまたがってこれらを均等に分散させるスケーリング係数は、次の係数によって与えられる。
Figure 2006025401
再帰として選択されるフレームの位置は、次の通りである。
Figure 2006025401
例えば、n=100フレームでm=10のフレームバッファを使用して、インターバルをデコードするために1つのバッファを残す場合に、9個のバッファが使用可能であり、k=2*98/(8*9)=2.7である。次のフレームf(1...m)が、フレームバッファでのキャッシングのために選択される。
Figure 2006025401
(注:i=8の場合に、f(1)=f(2)−k*8=21−22=−1であり、これは約1である)
したがって、フレーム1、21、42、58、72、83、91、96、99、および100が、キャッシングのために選択される。
スパンをデコードした後に、このアルゴリズムが、前のスパンに再帰的に適用される。
デコーディングプロセス中に、フレーム1から100が、まず1回デコードされ(キャッシュポイントを生成するため)、その後、再デコードされるフレームの間の間隔が、2フレームだけになる。これによって、多くとも3の所与のフレームの最大再デコードカウントが作られる。例えば、91...96をデコードするには、2つの自由フレーム(99および100)があり、したがって、94および95がキャッシングされる(92、93、94、95を再デコードする)。次に、91および93をデコードするのに2フレームが使用可能である(95および96を解放することから)。同様に、1...21について、8フレームが使用可能である(同一の算術スペーシングアルゴリズムを適用すると、フレームが、2の再デコードコストになる)。
総デコードコストは、約200(約2倍)であるが、メモリ要件が、10倍だけ減る。
この選択ストラテジは、各スパンの長さ(最後のフレームに対する相対的な)を徐々に増やす。
対照的に、バイナリ副分割アルゴリズムは、フレーム1、50、75、87、93、96、99、および100を選択する。平均して、各フレームは、ln(g)回デコードされ、合計約700のデコードコストになる。バイナリ副分割アルゴリズムは、「m」を超える使用可能なバッファを利用せず、これによって、m−ln(g)=10−7=3個のバッファを浪費する。本発明の第1のアルゴリズムは、余分なバッファを使用して、最初のスパンを50ではなく21の長さに減らす。
Bフレームを含むBOFへの拡張
BOFにBフレームが含まれる場合に、BOFに非基準フレームがある場合より少数のバッファを使用することを含む上で説明した方式は、使用に余分のバッファを必要とする。このバッファは、最後にデコードされた基準フレームを、それを参照する非基準フレームが表示されるまで保存するために使用される。
計算負荷の平滑化
各フレーム表示の間で、できる限り、フレームをデコードするコストのバランスをとることが望ましい。各フレーム表示の間で必要なデコードの最大回数を最小にすることが、フレームの滑らかな逆表示の最も重要な要因になる可能性がある。
この場合に、BOF内に非基準フレームがある場合より少数のバッファを使用することを伴う、逆表示の上で説明した方式を変更して、この目標を満たすことができる。これに関してこの方式を改善する形の1つが、デコードを継続するのに使用できるもの以上の空きバッファがある時に、デコードされた基準フレームの一部の表示を遅らせることである。これは、1つのBOFの逆表示の終りに近く、前のBOFの表示を開始する時に特に重要である。この場合に、m個のフレームが使用可能であると仮定すると、表示すべきm個のフレームが残っている時に、各フレームバッファに、BOF内の最初のm個のフレームの1つが含まれる。この場合に、例えば、m番目のフレームが表示されるや否や、1つのバッファを解放し、最適のロードバランシングの対象として、前のBOFの複数のフレームを、その空きバッファを使用してデコードすることができる。バッファが解放される時に、さらなるバッファを前のBOFのデコードにどのように使用できるかは、簡単に諒解することができる。
デコードの最大回数を最小にするか、デコードの最大時間を最小にするように特に設計されたアルゴリズムを、設計することもできる。
1つのIフレームだけを有するBOFへの分解
例示的な逆プレゼンタの上の議論および説明では、各BOFが、単一のキーフレーム(例えば、Iフレーム)を有し、それから始まることが前提になっている。また、キーフレームに、他の基準フレーム(例えば、Pフレーム)および/または非基準フレーム(例えば、Bフレーム)が続くことが前提になっている。
しかし、より複雑なBOF構造が存在する。この構造は、複数のキーフレーム(例えば、Iフレーム)を有する。これらは、逆に再生される時にそれぞれが1つのキーフレームを有するサブBOFグループに分解することができる。例えば、DVDのVOBUは、多数のサブBOFグループからなる大きいBOFとみなすことができる。
BOFに複数のIフレームが含まれる場合に、これを、それぞれが単一のIフレームを有する複数のサブBOFグループに分解することができ、各サブBOFグループは、あるIフレームから次のIフレームまでのフレームのスパンによって形成される。
例示的な逆プレゼンタは、サブBOFグループのブロックレベル逆提示を実行する。その結果、各サブBOFのフレームのデコードが、逆転される。各サブBOFグループからの第1フレームを、次にデコードされるサブBOFグループのためにキャッシングすることができる。
例えば、入力BOFが、I1234567891011121314であると仮定する。IフレームからIフレームまでの有効なサブBOFは、次の通りである。
BOF1=I1234567
BOF2=I789101112
BOF3=I121314
BOF3がデコードされた後に、BOF2を表示している間にB11フレームを生成する時に、フレームI12を保持することができる。
したがって、この機能は、図3のブロック310の間または図4のブロック410の間に実行することができる。そのブロックの動作中に、受け取られるBOFが、複数のサブBOFグループに分解される。各プロセスの残りは、サブBOFに対して行われ、完了した時に、各プロセスは先頭に戻って、次のサブBOFを操作する。
複雑なBOF構造を有する他のフォーマットへの拡張
ほとんどの一般的なビデオストリームフォーマットでは、Bフレームが、排他的な非基準フレームである。しかし、H.264標準規格など、他のより複雑なフォーマットが存在する。これらのフォーマットは、階層基準フレームを有するBOFなど、より複雑なBOF構造を有する。これらの複雑なフォーマットでは、Bフレームが、他のBフレームの基準フレームとして働く場合がある。
例えば、図5のBOF 500によって示されるシーケンスI123456789101112131415について、次のBOF構造が存在すると仮定する。
この例では、BOF 500に、基準フレーム510および非基準フレーム520が含まれる。これらの基準フレーム(具体的には、B24681114)は、Bフレームであり、通常は、非基準フレームになるだけである。しかし、階層基準フレームを有するこの複雑なBOF構造では、これらのBフレームが、基準フレームである。というのは、他のフレーム(具体的には、B359101214)が、これらに依存するからである。これを、3つのサブBOF 530、532、および534に分解することができる。
例示的な逆プレゼンタは、基準フレームの間の各インターバル(例えば、各サブBOF)に適用できるブロック逆転分解(block reversal decomposition)(上で説明した)を実行する。例えば、図5のサブBOF 3(534)を、逆転し、提示することができる。フレームI13を、キャッシングし、サブBOF 2(532)の逆転および再生に使用することができる。同様に、フレームI7をキャッシングし、サブBOF 1(530)の逆転および再生に使用することができる。ブロック逆転は、擬似基準フレーム515の間のサブBOFにも適用することができる。例えば、B2...B6のサブBOF 530を、それぞれB4...B6およびB2...B4からなる2つのサブサブBOFに分解することができる。各サブサブBOFを、独立に逆転することができる。
その代わりに、例示的逆プレゼンタが、「インターバル基準フレーム」の間の基準フレームの数を知っている時など、別の形でBOFを分解することができる。ここで、インターバル基準フレームは、図5のI1、I7、I13、およびI15など、各スペースの境界を定めるIフレームである。サブBOF 1(530)インターバルは、5つの基準フレームおよび擬似基準フレーム(I12467)および2つの非基準フレーム(B35)を有する。
深さ優先トラバース(depth first traversal)を使用してBOF階層を線形化することによって、例示的な逆プレゼンタは、キーフレームキャッシング位置を割り当てることができる。これによって、多数のフレームバッファが、再デコードを必要とするより多数のフレームを含む枝に分散される。
有効なインターバル幅は、インターバル内の基準フレームの個数と等しい。枝内の基準フレームの個数によって、インターバルの重みが割り当てられる。枝の重みは、そのインターバルおよびそのすべてのサブインターバルに必要なフレームバッファの最小個数である。
部分的フレームデコード依存性を有する他のフォーマットへの拡張
最も一般的なビデオストリームフォーマットでは、生成されるフレームが、完全に他のフレームから生成される。例えば、Bフレームは、2つの隣接するキーフレームから再構成することができる。しかし、1つのフレームをより小さい領域に副分割できるH.264など、他のより複雑なフォーマットが存在する。フレームを、スライス(16ピクセル高さのストライプ)に分割することができ、スライスを、マクロブロック(16×16ピクセルブロック)に分割することができ、マクロブロックを、サブマクロブロック(マクロブロックの半分または1/4)に分割することができるなどである。
フレームの一部を他のフレームの一部および訂正係数に置換することによって実行される変更を用いて、フレームを、前のフレームのコピーとしてコーディングすることができる。
これらの複雑さは、例示的な逆プレゼンタの手法に影響しない。非基準フレームは、まだ、他のフレームの生成に使用されないフレームとして定義されるが、フレームは、別のフレームの生成に必要であるならば基準フレームである。
所与のGOPについて、例示的な逆プレゼンタは、図5に示されたものに類似する、有向非循環依存性グラフを作成する。
例示的な逆デコーダの方法論的実施形態
図6に、メディアストリームレンダリングシステム200(またはその一部)によって実行される例示的な逆プレゼンタの方法論的実施形態を示す。この方法論的実施形態は、ソフトウェアで、ハードウェアで、またはその組合せで実施することができる。
図6の610で、例示的な逆プレゼンタが、複雑なBOFを、各サブインターバルが少なくとも1つの基準フレームを有する複数のインターバルに分割する。
612で、例示的な逆プレゼンタが、各インターバルに対してブロック逆転分解を実行する。
614で、例示的な逆プレゼンタが、各インターバルを、各サブインターバルが少なくとも1つの擬似基準フレームを有するサブインターバルに分割する。
616で、例示的な逆プレゼンタが、各サブインターバルに対してブロック逆転分解を実行する。
ブロック614および616は、サブインターバルの階層レイヤごとに繰り返される。
デコードのコストの計算
本明細書に記載の少なくとも1つの実施形態で、基準フレーム(例えば、Iフレーム/Pフレーム)のデコードのコストが仮定される。具体的に言うと、IフレームおよびPフレームの相対的なコストを仮定することができる。
これらの相対デコードコストを仮定するのではなく、本明細書に記載の技法の実施形態は、IフレームおよびPフレームのデコードの相対コストを計算することができる。
例示的な環境
図7に、本明細書に記載の技法、システム、および他の態様を実施できる(部分的にまたは全体を)例示的な環境700を示す。例示的な環境700は、マルチメディアの配布を容易にするテレビジョンエンターテイメントシステムである。通常のデジタルビデオブロードキャスト(DVB)ネットワークが、そのような環境の例である。
環境700に、1つまたは複数のマルチメディアコンテンツプロバイダ702、コンテンツ配信システム706、および、ブロードキャストネットワーク710を介してコンテンツ配信システム706に結合された1つまたは複数の提示デバイス708(1)、708(2)、...、708(N)が含まれる。
マルチメディアコンテンツプロバイダ702に、コンテンツサーバ712ならびに、映画と、テレビジョン番組と、コマーシャルと、音楽と、類似するオーディオコンテンツおよびビデオコンテンツなどの記憶されたコンテンツ714が含まれる。コンテンツサーバ712は、コンテンツプロバイダ702からコンテンツ配信システム706への記憶されたコンテンツ714の配布を制御する。さらに、コンテンツサーバ712は、生のコンテンツ(例えば、ライブフィードなど、前に記憶されたものでないコンテンツ)および/またはコンテンツ配信システム706の他の位置に記憶されたコンテンツの配布を制御する。
コンテンツ配信システム706は、イントラネットまたはインターネットなどのネットワーク720に結合することができる。コンテンツ配信システム706に、ブロードキャスト送信器728および1つまたは複数のコンテンツプロセッサ730が含まれる。ブロードキャスト送信器728は、ケーブルテレビジョン信号などの信号を、ブロードキャストネットワーク710を介してブロードキャストする。
コンテンツ配信システム706は、マルチメディアコンテンツを複数の加入者に供給するヘッドエンドサービスを表す。
ブロードキャストネットワーク710に、ケーブルテレビジョン網、RF、マイクロ波、衛星、および/またはインターネットなどのデータネットワークを含めることができ、任意のブロードキャストフォーマットまたはブロードキャストプロトコルを使用する有線媒体または無線媒体を含めることもできる。さらに、ブロードキャストネットワーク710は、任意のタイプのネットワークトポロジおよび任意のネットワーク通信プロトコルを使用するすべてのタイプのネットワークとすることができ、2つ以上のネットワークの組合せとして表すか他の形で実施することができる。
コンテンツプロセッサ730は、コンテンツプロバイダ702から受け取ったコンテンツを、ブロードキャストネットワーク710を介して送信する前に処理する。特定のコンテンツプロセッサ730は、受け取ったコンテンツを、ブロードキャストネットワーク710に結合された複数の提示デバイス708(1)、708(2)、...、708(N)によって理解されるフォーマットにエンコードし、または他の形で処理することができる。
提示デバイス708は、複数の形で実施することができる。例えば、提示デバイス708(1)は、衛星パラボラアンテナ734を介して、衛星ベース送信器からブロードキャストコンテンツを受け取る。提示デバイス708(1)を、セットトップボックスまたは衛星受信デバイスとも称する。提示デバイス708(1)は、提示デバイスによって受け取られたコンテンツ(例えば、オーディオデータおよびビデオデータ)ならびにグラフィカルユーザインターフェースを提示するためにテレビジョン736(1)に結合される。特定の提示デバイス708を、任意の台数のテレビジョン736および/またはコンテンツを表示し、または他の形でレンダリングする類似するデバイスに結合することができる。同様に、任意の個数の提示デバイス708を、単一のテレビジョン736に結合することができる。
提示デバイス708(2)も、ブロードキャストネットワーク710からブロードキャストコンテンツを受け取るために結合され、受け取ったコンテンツを関連するテレビジョン736(2)に供給する。提示デバイス708(N)は、組合せテレビジョン738および一体化されたセットトップボックス740の例である。この例では、セットトップボックスの様々なコンポーネントおよび機能が、2つの別々のデバイスを使用するのではなく、テレビジョンに組み込まれる。テレビジョンに組み込まれたセットトップボックスは、衛星パラボラアンテナ(衛星パラボラアンテナ734に類似する)を介しておよび/またはブロードキャストネットワーク710を介して、ブロードキャスト信号を受け取ることができる。代替実施形態では、提示デバイス708は、インターネットまたは他のブロードキャストメディアを介してブロードキャスト信号を受け取ることができる。
例示的な環境700に、ビデオオンデマンド(VOD)映画コンテンツなど、記憶されたオンデマンドコンテンツ742も含まれる。記憶されたオンデマンドコンテンツは、例えば、オンスクリーン映画ガイドを介して提示デバイス708を用いて見ることができ、視聴者は、特定の映画または他の記憶されたコンテンツを対応する提示デバイス708にストリーミングする指示を入力することができる。
ここまでで、この例示的環境700を、デジタルビデオブロードキャスト(DVB)環境に関して説明した。実際に、それは例示的な環境である。しかし、例示的な逆プレゼンタは、DVB環境自体の全体なしで実施することができる。その代わりに、例示的な逆プレゼンタを、デバイス708(X)に示されたものなど、独立型の提示デバイスによって実施することができる。
独立型の提示デバイス708(X)は、DVDディスクなどの記憶媒体744からデジタルビデオにアクセスする。このデバイスは、媒体からのコンテンツを関連するテレビジョン739に供給する。そのような独立型提示デバイスの例に、DVDプレイヤ、パーソナルビデオレコーダなどが含まれる。
提示デバイスの例
図8に、テレビジョン736に接続された独立型ユニットとして示された提示デバイス708の例示的実施形態800を示す。提示デバイス708は、セットトップボックス、衛星受信器、ハードディスク付きのTVレコーダ、ゲーム機、情報アプライアンス、DVDプレイヤ、パーソナルビデオレコーダなどを含む任意の数の実施形態で実施することができる。
提示デバイス708に、赤外線(IR)無線ポートまたはBluetooth無線ポートなど、リモートコントロールデバイス804、ハンドヘルド入力デバイス806、または無線キーボードなどの他の無線デバイスからの無線通信を受け取る無線受信ポート802が含まれる。ハンドヘルド入力デバイス806は、携帯情報端末(PDA)、ハンドヘルドコンピュータ、無線電話機、または類似物とすることができる。さらに、無線キーボード808が、提示デバイス708と通信するために結合される。代替実施形態では、リモートコントロールデバイス804、ハンドヘルド入力デバイス806、および/またはキーボード808が、RF通信リンクまたは他のモードの伝送を使用して、提示デバイス708と通信することができる。
提示デバイス708は、DVDディスクなどのコンテンツ記憶媒体を読み取る記憶媒体リーダー809を有する場合がある。独立型または非独立型の提示デバイス708に、記憶媒体リーダー809を含めることができる。
提示デバイス708は、衛星からまたはブロードキャストネットワークからなど、1つまたは複数のブロードキャストソースから1つまたは複数のブロードキャスト信号810を受け取ることができる。提示デバイス708に、NTSC、PAL、SECAM、または他のTVシステムビデオ信号などのブロードキャスト信号810を受信し、デコードするハードウェアおよび/またはソフトウェアが含まれる。
提示デバイス708に、ユーザが、例えば、様々なネットワークサービスにアクセスし、提示デバイス708を構成し、他の機能を実行できるようにするグラフィカルユーザインターフェースをユーザに提供するハードウェアおよび/またはソフトウェアも含まれる。
提示デバイス708は、従来の電話回線812、ISDNリンク814、ケーブルリンク816、イーサネット(登録商標)リンク818、DSLリンク820、および類似物を含む1つまたは複数の接続を介して他のデバイスと通信できる場合がある。提示デバイス708は、特定の瞬間に様々な通信リンク812〜820の1つまたは複数を使用して、任意の個数の他のデバイスと通信することができる。
提示デバイス708は、ビデオ信号820およびオーディオ信号822を生成し、この信号の両方が、テレビジョン736に伝えられる。ビデオ信号およびオーディオ信号は、RF(radio frequency)リンク、Sビデオリンク、コンポジットビデオリンク、コンポーネントビデオリンク、または他の通信リンクを介して提示デバイス708からテレビジョン736に伝えることができる。
図8には示されていないが、提示デバイス708に、デバイスの現在の状態を識別する、1つまたは複数のライトまたは他のインジケータを含めることができる。さらに、提示デバイスに、デバイスの動作を制御するために、1つまたは複数のコントロールボタン、スイッチ、または他の選択可能なコントロールを含めることができる。
図9に、図7および8に示された提示デバイス708の選択されたコンポーネントを示す。提示デバイス708に、第1チューナ900および任意選択の第2チューナ902が含まれる。これらのチューナを、受信ユニットと呼ぶ場合がある。チューナ900および902は、テレビジョン信号を受信するために様々な周波数またはチャンネルに同調する1つまたは複数の帯域内チューナならびにそれを介して他のコンテンツを提示デバイス708にブロードキャストできるブロードキャストチャネルに同調する帯域外チューナを表す。
提示デバイス708に、1つまたは複数のプロセッサ904および1つまたは複数のメモリコンポーネントも含まれる。可能なメモリコンポーネントの例に、ランダムアクセスメモリ(RAM)906、ディスクドライブ908、マスストレージコンポーネント910、および不揮発性メモリ912(例えば、ROM、フラッシュ、EPROM、EEPROMなど)が含まれる。
提示デバイス708の代替実施形態に、ある範囲の処理機能およびメモリ機能を含めることができ、図9に示されたものより多数またはより少数のタイプのメモリコンポーネントを含めることができる。
プロセッサ904は、様々な命令を処理して、提示デバイス708の動作を制御し、他の電子デバイスおよびコンピューティングデバイスと通信する。メモリコンポーネント(例えば、RAM906、ディスクドライブ908、記憶媒体910、および不揮発性メモリ912)は、マルチメディアコンテンツ、電子プログラムデータ、ウェブコンテンツデータ、提示デバイス708のコンフィギュレーション情報、および/またはグラフィカルユーザインターフェース情報などの様々な情報および/またはデータを記憶する。デバイスは、これらの多数のメモリコンポーネントのいずれかにデータをキャッシングすることができる。
オペレーティングシステム914および1つまたは複数のアプリケーションプログラム916を、不揮発性メモリ912に記憶し、プロセッサ904で実行して、ランタイム環境を提供することができる。ランタイム環境は、様々なインターフェースを定義できるようにすることによって提示デバイス708の拡張性を容易にし、このインターフェースは、アプリケーションプログラム916が提示デバイス708と相互作用できるようにする。
提示デバイス708で実施できるアプリケーションプログラム916に、電子番組ガイド(EPG)、電子メールを容易にする電子メールプログラムなどを含めることができる。
提示デバイス708に、図を単純にするためにこの例に示されていないテレビジョンエンターテイメントシステムに関係する他のコンポーネントも含めることができる。例えば、提示デバイス708に、デバイスとの視聴者対話を容易にするために、ユーザインターフェースアプリケーションおよびユーザインターフェースライト、ボタン、コントロールなどを含めることができる。
提示デバイス708に、NTSC、PAL、SECAM、または他のTVシステムビデオ信号などのブロードキャストビデオ信号をデコードするデコーダ920も含まれる。これは、MPEGとして形成されたものなどのデジタル圧縮ビデオストリームをデコードするデコーダとすることもできる。これは、図2のデコーダ210、212、および214と同一のタイプのデコーダとすることができる。
提示デバイス708に、さらに、無線インターフェース922、ネットワークインターフェース924、シリアルおよび/またはパラレルインターフェース926、およびモデム928が含まれる。無線インターフェース922は、提示デバイス708が、リモートコントロールデバイスからまたは別のIR、Bluetooth、もしくは類似するRF入力デバイスからなど、ユーザが操作した入力デバイスから入力コマンドおよび他の情報を受け取ることを可能にする。
ネットワークインターフェース924ならびにシリアルおよび/またはパラレルインターフェース926は、提示デバイス708が、様々な通信リンクを介して他の電子デバイスおよび通信デバイスと相互作用し、通信することを可能にする。図示されていないが、提示デバイス708に、他のデバイスと通信する、他のタイプのデータ通信インターフェースを含めることもできる。モデム928は、提示デバイス708が、普通の電話回線を介して他の電子デバイスおよびコンピューティングデバイスと通信するのを容易にする。
提示デバイス708に、テレビジョンまたは他のデバイスに信号を供給する、オーディオデータおよびビデオデータを処理し、かつ/または提示し、あるいは他の形でレンダリングするオーディオ/ビデオ出力930も含まれる。この出力を、ディスプレイと呼ぶ場合がある。
提示デバイス708に、例示的な逆プレゼンタを部分的にまたは全体的に実施するデコードコントローラ940も含まれる。これは、アプリケーションプログラムまたはハードウェアコンポーネント(あるいはこの両方の組合せ)とすることができる。
別々に図示されているが、提示デバイス708のコンポーネントのいくつかを、特定用途向け集積回路(ASIC)で実施することができる。さらに、システムバス(図示せず)によって、通常、提示デバイス708内の様々なコンポーネントが接続される。
例示的なコンピューティングシステムおよびコンピューティング環境
図10に、本明細書に記載の例示的な逆プレゼンタを(完全にまたは部分的にのいずれかで)実施できる適切なコンピューティング環境1000の例を示す。コンピューティング環境1000は、本明細書に記載のコンピュータアーキテクチャおよびネットワークアーキテクチャで使用することができる。
例示的なコンピューティング環境1000は、コンピューティング環境の1つの例にすぎず、コンピュータアーキテクチャおよびネットワークアーキテクチャの使用または機能の範囲に関する制限を提案することを意図したものではない。コンピューティング環境1000を、例示的なコンピューティング環境1000に図示されたコンポーネントのいずれかまたはその組合せに関する依存性または要件を有すると解釈してもならない。
例示的な逆プレゼンタは、多数の他の汎用のまたは特殊目的のコンピューティングシステム環境およびコンピューティングコンフィギュレーションと共に使用することができる。使用に適する可能性がある周知のコンピューティングシステム、コンピューティング環境、および/またはコンピューティングコンフィギュレーションの例に、パーソナルコンピュータ、サーバコンピュータ、シンクライアント、シッククライアント、ハンドヘルドデバイス、またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブルな家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、および類似物が含まれるが、これに制限はされない。
例示的な逆プレゼンタを、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の全般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。例示的な逆プレゼンタは、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリストレージデバイスを含む、ローカルとリモートの両方のコンピュータ記憶媒体に配置することができる。
コンピューティング環境1000に、コンピュータ1002の形の汎用コンピューティングデバイスが含まれ、このコンピュータは、提示デバイス708のもう1つの例とすることができる。コンピュータ1002のコンポーネントに、1つまたは複数のプロセッサまたは処理ユニット1004、システムメモリ1006、プロセッサ1004を含む様々なシステムコンポーネントをシステムメモリ1006に結合するシステムバス1008を含めることができるが、これに制限はされない。
システムバス1008は、メモリバスまたはメモリコントローラ、周辺バス、accelerated graphics port、または様々なバスアーキテクチャのいずれかを使用するローカルバスを含む様々なバスアーキテクチャのいずれかを使用する、任意の複数のタイプのバス構造の1つまたは複数を表す。例えば、そのようなアーキテクチャに、CardBus、Personal Computer Memory Card International Association(PCMCIA)、Accelerated Graphics Port(AGP)、Small Computer System Interface(SCSI)、Universal Serial Bus(USB)、IEEE 1394、Video Electronics Standards Association(VESA)ローカルバス、およびメザニンバスとも称するPeripheral Component Interconnects(PCI)バスが含まれる。
コンピュータ1002に、通常は、様々なコンピュータ可読媒体が含まれる。そのような媒体は、コンピュータ1002によってアクセス可能なすべての使用可能な媒体とすることができ、揮発性媒体および不揮発性媒体と、取外し可能媒体および取外し不能媒体の両方が含まれる。
システムメモリ1006に、ランダムアクセスメモリ(RAM)1010などの揮発性メモリの形および/または読み出し専用メモリ(ROM)1012などの不揮発性メモリの形のコンピュータ可読媒体が含まれる。スタートアップ中などにコンピュータ1002内の要素の間での情報の転送を助ける基本ルーチンを含む基本入出力システム(BIOS)1014が、ROM 1012に記憶される。RAM 1010に、通常、処理ユニット1004によって即座にアクセス可能および/またはこれによって現在処理されているデータおよび/またはプログラムモジュールが含まれる。
コンピュータ1002に、他の取外し可能/取外し不能の、揮発性/不揮発性のコンピュータ記憶媒体も含めることができる。例えば、図10に、取外し不能不揮発性磁気媒体(図示せず)から読み取り、これに書き込むハードディスクドライブ1016、取外し可能不揮発性磁気ディスク1020(例えば、「フロッピディスク」)から読み取り、これに書き込む磁気ディスクドライブ1018、およびCD−ROM、DVD−ROM、または他の光学媒体などの取外し可能不揮発性光学ディスク1024から読み取り、かつ/またはこれに書き込む光学ディスクドライブ1022を示す。ハードディスクドライブ1016、磁気ディスクドライブ1018、および光学ディスクドライブ1022は、それぞれ、1つまたは複数のデータメディアインターフェース1026によってシステムバス1008に接続される。代替案では、ハードディスクドライブ1016、磁気ディスクドライブ1018、および光学ディスクドライブ1022を、1つまたは複数のインターフェース(図示せず)によってシステムバス1008に接続することができる。
ディスクドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ1002に、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。この例には、ハードディスク1016、取外し可能磁気ディスク1020、および取外し可能光学ディスク1024が示されているが、磁気カセットまたは他の磁気ストレージデバイス、フラッシュメモリカード、CD−ROM、デジタル多用途ディスク(DVD)、または他の光学ストレージ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、および類似物など、コンピュータによってアクセス可能なデータを記憶できる他のタイプのコンピュータ可読媒体を使用して、例示的なコンピューティングシステムおよびコンピューティング環境を実施することもできることを諒解されたい。
例えばオペレーティングシステム1027、1つまたは複数のアプリケーションプログラム1028、他のプログラムモジュール1030、およびプログラムデータ1032を含む任意の個数のプログラムモジュールを、ハードディスク1016、磁気ディスク1020、光学ディスク1024、ROM 1012、および/またはRAM 1010に記憶することができる。
ユーザは、キーボード1034およびポインティングデバイス1036(例えば「マウス」)などの入力デバイスを介してコンピュータ1002にコマンドおよび情報を入力することができる。他の入力デバイス1038(具体的には図示せず)に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナ、および/または類似物を含めることができる。これらおよび他の入力デバイスは、システムバス1008に結合された入出力インターフェース1040を介して処理ユニット1004に接続されるが、パラレルポート、ゲームポート、またはuniversal serial bus(USB)などの他のインターフェース構造およびバス構造によって接続することができる。
モニタ1042または他のタイプのディスプレイデバイスも、ビデオアダプタ1044などのインターフェースを介してシステムバス1008に接続することができる。モニタ1042の他に、他の出力周辺デバイスに、入出力インターフェース1040を介してコンピュータ1002に接続できるスピーカ(図示せず)およびプリンタ1046などのコンポーネントを含めることができる。
コンピュータ1002は、リモートコンピューティングデバイス1048などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。例えば、リモートコンピューティングデバイス1048を、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたは他の一般的なネットワークノード、および類似物とすることができる。リモートコンピューティングデバイス1048は、本明細書でコンピュータ1002に関して説明した要素および特徴の多くまたはすべてを含めることができるポータブルコンピュータとして図示されている。
コンピュータ1002とリモートコンピューティングデバイス1048の間の論理接続は、ローカルエリアネットワーク(LAN)1050および一般的な広域ネットワーク(WAN)1052として図示されている。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれたものである。
LANネットワーキング環境で実施される時に、コンピュータ1002は、ネットワークインターフェースまたはネットワークアダプタ1054を介してローカルネットワーク1050に接続される。WANネットワーキング環境で実施される時に、コンピュータ1002に、通常、広域ネットワーク1052を介する通信を確立する、モデム1056または他の手段が含まれる。モデム1056は、コンピュータ1002に内蔵または外付けとすることができるが、入出力インターフェース1040または他の適当な機構を介してシステムバス1008に接続することができる。図示のネットワーク接続が、例示的であることと、コンピュータ1002と1048の間の通信リンクを確立する他の手段を使用できることを諒解されたい。
コンピューティング環境1000と共に示されたものなどのネットワーク化された環境では、コンピュータ1002に関して示されたプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに記憶することができる。例えば、リモートアプリケーションプログラム1058が、リモートコンピュータ1048のメモリデバイスに常駐する。
例示において、アプリケーションプログラムおよび、オペレーティングシステムなどの他の実行可能プログラムコンポーネントが、本明細書では別個のブロックとして示されているが、そのようなプログラムおよびコンポーネントが、様々な時に、コンピューティングデバイス1002の様々なストレージコンポーネントに常駐し、コンピュータのデータプロセッサによって実行されることを理解されたい。
コンピュータ実行可能命令
例示的な逆プレゼンタの実施形態を、プログラムモジュールなど、1つまたは複数のコンピュータもしくは他のデバイスによって実行されるコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常、プログラムモジュールの機能は、様々な実施形態で、望み通りに組み合わせるか分散させることができる。
コンピュータ可読媒体
例示的な逆プレゼンタの実施形態を、ある形のコンピュータ可読媒体に記憶するか、これにまたがって伝送することができる。コンピュータ可読媒体は、コンピュータによってアクセスできるすべての使用可能な媒体とすることができる。制限ではなく例として、コンピュータ可読媒体に、「コンピュータ記憶媒体」および「通信媒体」を含めることができる。
「コンピュータ記憶媒体」に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージの方法またはテクノロジで実施された、揮発性および不揮発性の、取外し可能および取外し不能の媒体が含まれる。コンピュータ記憶媒体に、RAM、ROM、EEPROM、フラッシュメモリ、または他のメモリテクノロジ、CD−ROM、デジタル多用途ディスク(DVD)、または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは、所望の情報を記憶するのに使用でき、コンピュータによってアクセスできる他のすべての媒体が含まれるが、これに制限はされない。
「通信媒体」は、通常は、搬送波または他のトランスポート機構など、変調されたデータ信号内でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを具現化する。通信媒体に、すべての情報配信媒体も含まれる。
用語「変調されたデータ信号」は、信号内で情報をエンコードする形でその特性の1つまたは複数を設定または変更された信号を意味する。制限ではなく例として、通信媒体に、有線ネットワークまたは直接配線接続などの有線媒体と、音響、RF、赤外線、および他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれる。
結論
本発明を、構造的特徴および/または方法論的ステップに固有の言葉で説明したが、請求項で定義される本発明が、説明した特定の特徴またはステップに必ずしも制限されないことを理解されたい。そうではなく、特定の特徴およびステップは、請求される発明を実施する好ましい形態として開示されたものである。
本明細書に記載の実施形態に従って使用することができるgroup−of−pictures(GOP)を示すブロック図である。 本明細書に記載の実施形態によるシステムを示すブロック図である。 本明細書に記載の方法論的実施形態を示す流れ図である。 本明細書に記載の方法論的実施形態を示す流れ図である。 本明細書に記載の実施形態に従って使用することができる複合group−of−pictures(GOP)を示すブロック図である。 本明細書に記載の方法論的実施形態を示す流れ図である。 本明細書に記載の実施形態を使用できる例示的環境を示す図である。 例の提示デバイス、テレビジョン、および提示デバイスと相互作用する様々な入力デバイスを示す図である。 図7および8に示された例の提示デバイスのコンポーネントを示すブロック図である。 本明細書に記載の実施形態の少なくとも1つを(全体的にまたは部分的に)実施できるコンピューティングオペレーティング環境の例を示す図である。
符号の説明
202 アプリケーション
204 ソース
208 デマルチプレクサ
210 ビデオデコーダ
212 オーディオデコーダ
214 サブピクチャデコーダ
216 ビデオレンダラ
218 オーディオレンダラ

Claims (52)

  1. コンピュータによって実行される時に、メディアストリームのblock−of−frames(BOF)の逆提示を容易にする方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記BOFは、定義された順方向提示順序を有するフレームのシーケンスであり、前記フレームのそれぞれは、基準フレームまたは非基準フレームのいずれかとして分類され、基準フレームは、前記BOF内の少なくとも1つの他のフレームがそれ自体のエンコードされたデータをデコードするための基準として使用するデータを有するフレームであり、非基準フレームは、前記BOF内の別のフレームによって参照されないエンコードされたデータを有するフレームであり、前記方法は、
    メディアストリームのBOFを取得することと、
    前記BOFの1つまたは複数のデコードされた基準フレームを順方向にデコードし、記憶することと、
    そのデータをまだエンコードされた状態で、前記BOFの非基準フレームを記憶することと、
    前記シーケンスの最後のフレームから開始して、前記シーケンスと逆の順序で、非基準フレームおよび少なくとも隣接する1つの基準フレームを含むサブシーケンスごとに
    ・ 逆の順序で次に提示されるフレームが基準フレームである場合に、前記BOF内のその基準フレームを提示することと、
    ・ 前記BOF内の非基準フレームの次に提示されるサブシーケンスを生成することと、
    ・ 前記シーケンスと逆の順序で、生成されたばかりの非基準フレームの1つまたは複数を提示することと、
    ・ 提示されたばかりの非基準フレームを記憶するメモリを解放することと、
    ・ 逆の順序で次に提示されるフレームが基準フレームである場合に、前記BOF内のその基準フレームを提示することと
    を繰り返し、最初のフレームに達するまで前記繰り返しを継続することと、
    前記シーケンスの最初の基準フレームを提示することと
    を備えることを特徴とするコンピュータ可読媒体。
  2. 前記生成されたばかりの非基準フレームのそれぞれの前記提示は、前記次に提示されるサブシーケンスの各非基準フレームの生成の後に行われることを特徴とする請求項1に記載の媒体。
  3. 前記解放は、前記提示されたばかりの非基準フレームが参照するすべての基準フレームの提示の後に行われることを特徴とする請求項1に記載の媒体。
  4. 1つまたは複数の提示されたばかりの基準フレームを記憶するメモリを解放することをさらに備えることを特徴とする請求項1に記載の媒体。
  5. 前記方法は、さらに、
    シーケンス内の複数のBOFからなるスーパーBOFを受け取ることであって、各BOFは、1つのキーフレームを有し、前記キーフレームは、デコードに関して他のフレームに依存しない、受け取ることと、
    前記スーパーBOFを複数のBOFに分解することと、
    請求項1に記載のステップを繰り返すことであって、前記複数のBOFの異なる1つが、前記スーパーBOF内のBOFの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
    を備えることを特徴とする請求項1に記載の媒体。
  6. 前記方法は、さらに、
    シーケンス内の複数のBOFからなるスーパーBOFを受け取ることであって、各BOFは、デコードに関して他のフレームに依存しない、前記シーケンスの始めの1つのキーフレームとデコードに関して他のフレームに依存しないが次の論理BOFの一部とすることができる前記シーケンスの終りの1つのキーフレームとを含む、受け取ることと、
    前記スーパーBOFを複数のBOFに分解することと、
    請求項1に記載のステップを繰り返すことであって、前記複数のBOFの異なる1つが、前記スーパーBOF内のBOFの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
    を備えることを特徴とする請求項1に記載の媒体。
  7. メディアストリームを受け取るように構成された入力デバイスと、
    提示されるフレームを表示するように構成されたディスプレイデバイスと、
    請求項1に記載の媒体と
    を備えることを特徴とするコンピューティングデバイス。
  8. コンピュータによって実行される時に、メディアストリームのblock−of−frames(BOF)の逆提示を容易にする方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記BOFは、定義された順方向提示順序を有するフレームのシーケンスであり、前記フレームのそれぞれは、基準フレームまたは非基準フレームのいずれかとして分類され、基準フレームは、前記BOF内の少なくとも1つの他のフレームがそれ自体のエンコードされたデータをデコードするための基準として使用するデータを有するフレームであり、非基準フレームは、前記BOF内の別のフレームによって参照されないエンコードされたデータを有するフレームであり、前記方法は、
    メディアストリームのBOFを取得することと、
    前記BOFの1つまたは複数の基準フレームを順方向にデコードすることと、
    前記BOFの前記デコードされた基準フレームを記憶することと、
    そのデータをまだエンコードされた状態で前記BOFの非基準フレームを記憶することと、
    前記シーケンスと逆の順序で、非基準フレームを選択的にデコードすることと、
    逆の順序で前記シーケンスを提示することと、
    既に提示された非基準フレームを記憶するメモリを解放することと
    を備えることを特徴とするコンピュータ可読媒体。
  9. 前記方法は、さらに、前記シーケンスと逆の順序で基準フレームを選択的にデコードすることを備えることを特徴とする請求項8に記載の媒体。
  10. 前記非基準フレームのすべてより少ないものは、前記BOFのフレームのいずれかが逆の順序で提示される前にデコードされることを特徴とする請求項8に記載の媒体。
  11. 前記解放は、さらに、前記提示されたばかりの基準フレームを参照するすべての非基準フレームの提示の後に、提示されたばかりの非基準フレームを記憶するメモリを解放することを含むことを特徴とする請求項8に記載の媒体。
  12. 前記解放は、さらに、前記提示されたばかりの基準フレームを参照するすべての非基準フレームの提示の後に、提示されたばかりの非基準フレームを記憶するメモリを解放することからなり、前記方法は、さらに、これから提示されるフレームの後続のデコードで助けるためにそのようなメモリを使用することを備えることを特徴とする請求項8に記載の媒体。
  13. 前記方法は、さらに、
    シーケンス内の複数のBOFからなるスーパーBOFを受け取ることであって、各BOFは、1つのキーフレームを有し、前記キーフレームは、デコードに関して他のフレームに依存しない、受け取ることと、
    前記スーパーBOFを複数のBOFに分解することと、
    請求項8に記載のステップを繰り返すことであって、前記複数のBOFの異なる1つが、前記スーパーBOF内のBOFの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
    を備えることを特徴とする請求項8に記載の媒体。
  14. メディアストリームを受け取るように構成された入力デバイスと、
    提示されるフレームを表示するように構成されたディスプレイデバイスと、
    請求項8に記載の媒体と
    を備えることを特徴とするコンピューティングデバイス。
  15. コンピュータによって実行される時に、メディアストリームのblock−of−frames(BOF)の逆提示を容易にする方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記BOFは、キーフレームおよびそれに続く、生成に関してシーケンス内の先行する1つまたは複数のフレームに漸進的に依存する複数のエンコードされたフレームを含む、定義された順方向提示順序を有するフレームの前記シーケンスであり、前記方法は、
    メディアストリームのBOFを取得することと、
    前記BOFの終りから始めて、提示される前記BOFの非キーフレームのすべてについて、
    これから提示されるフレームの1つまたは複数を選択することと、
    逆の順序で、どのフレームがこれから提示されるフレームの次であるかを判定することと、
    次に提示されるフレームが生成されており、メモリに記憶されている場合に、前記次に提示されるフレームを提示することと、
    そうでない場合に、
    ・ 前記次に提示されるフレームの生成に必要であるが、まだ前記メモリに記憶されていない、前記次に提示されるフレームに先行するフレームを生成することと、
    ・ 前記生成中に、前記選択によって選択された前記生成されたフレームを記憶することと、
    ・ 前記次に提示されるフレームをさらに生成することと、
    ・ 前記次に提示されるフレームを提示することと
    を繰り返すことと、
    前記BOFの前記キーフレームが提示されるまで、条件に応じて、前記選択の動作、前記判定の動作、および前記〜の場合に〜そうでない場合に〜の条件動作を繰り返すことと
    を備えることを特徴とするコンピュータ可読媒体。
  16. 前記生成およびさらなる生成は、それ自体のデータおよび前記BOF内の他のフレームのデータに基づいてフレームをデコードすることを含むことを特徴とする請求項15に記載の媒体。
  17. 前記記憶は、前記選択によって選択された前記生成されたフレームだけを記憶することを含むことを特徴とする請求項15に記載の媒体。
  18. 前記提示の後に、前記方法が、さらに、前記提示されたばかりのフレームを記憶するメモリを解放することを備えることを特徴とする請求項15に記載の媒体。
  19. 前記方法は、さらに、
    そのデータがまだエンコードされた状態で前記BOFの非基準フレームを記憶することであって、非基準フレームは、前記BOF内の別のフレームによって参照されないエンコードされたデータを有するフレームである、記憶することと、
    前記シーケンスと逆の順序で、非基準フレームを選択的にデコードすることと
    を備えることを特徴とする請求項15に記載の媒体。
  20. 前記方法は、さらに、
    そのデータがまだエンコードされた状態で前記BOFの非基準フレームを記憶することであって、非基準フレームは、前記BOF内の別のフレームによって参照されないエンコードされたデータを有するフレームである、記憶することと、
    前記シーケンスと逆の順序で、基準フレームおよび非基準フレームを選択的にデコードすることと
    を備えることを特徴とする請求項15に記載の媒体。
  21. 前記選択は、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のために実質的に約m個のフレームを識別するためにバイナリ副分割を実行することと
    を含むことを特徴とする請求項15に記載の媒体。
  22. 前記選択は、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされた基準フレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のために実質的に約m個のフレームを識別するためにバイナリ副分割を実行することと
    を含むことを特徴とする請求項15に記載の媒体。
  23. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のためにm個以下のフレームを識別するためにバイナリ副分割を実行することと
    を含むことを特徴とする請求項15に記載の媒体。
  24. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされた基準フレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のためにm個以下のフレームを識別するためにバイナリ副分割を実行することと
    を含むことを特徴とする請求項15に記載の媒体。
  25. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のために実質的に約m個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられる、実行することと
    を含むことを特徴とする請求項15に記載の媒体。
  26. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされた基準フレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のために実質的に約m個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられる、実行することと
    を含むことを特徴とする請求項15に記載の媒体。
  27. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のために実質的に約m個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられ、前記フレームの前記選択は、逆転された算術シーケンスに比例する間隔を作る、実行することと
    を含むことを特徴とする請求項15に記載の媒体。
  28. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームをマッピングすることと、
    選択のためにm個以下のフレームを識別するためにメモリに記憶された1つまたは複数の選択テーブルを参照することと
    を含むことを特徴とする請求項15に記載の媒体。
  29. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされた基準フレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームをマッピングすることと、
    選択のためにm個以下のフレームを識別するためにメモリに記憶された1つまたは複数の選択テーブルを参照することと
    を含むことを特徴とする請求項15に記載の媒体。
  30. 前記方法は、さらに、
    シーケンス内の複数のBOFからなるスーパーBOFを受け取ることであって、各BOFは、1つのキーフレームを有し、前記キーフレームは、デコードに関して他のフレームに依存しない、受け取ることと、
    前記スーパーBOFを複数のBOFに分解することと、
    請求項15に記載のステップを繰り返すことであって、前記複数のBOFの異なる1つが、前記スーパーBOF内のBOFの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
    を備えることを特徴とする請求項15に記載の媒体。
  31. フレームをデコードすることのコストを計算することをさらに備えることを特徴とする請求項15に記載の媒体。
  32. キーフレームおよびBOFの組の漸進的に依存するフレームのコストを計算することをさらに備えることを特徴とする請求項15に記載の媒体。
  33. メディアストリームを受け取るように構成された入力デバイスと、
    提示されるフレームを表示するように構成されたディスプレイデバイスと、
    請求項15に記載の媒体と
    を備えることを特徴とするコンピューティングデバイス。
  34. コンピュータによって実行される時に、メディアストリームのblock−of−frames(BOF)の逆提示を容易にする方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記BOFは、キーフレームおよびそれに続く、デコードに関してシーケンス内の先行する1つまたは複数のフレームに漸進的に依存する複数のエンコードされたフレームを含む、定義された順方向提示順序を有するフレームの前記シーケンスであり、前記方法は、
    メディアストリームのBOFを取得することと、
    前記BOFの終りから始めて、提示される前記BOFの非キーフレームのすべてについて、
    ・ 逆の順序で、次に提示されるフレームを提示することと、
    ・ 前記次に提示されるフレームの提示の前に、前記次に提示されるフレームのデコードに必要な、前記次に提示されるフレームに先行するフレームを順方向にデコードすることと、
    ・ 前記デコードされたフレームのどれをメモリに記憶するかを選択することであって、前記選択される生成されたフレームは、前記BOFの前記フレームのすべてより少ない、選択することと、
    ・ 前記選択されたデコードされたフレームを記憶することと
    を繰り返すことと、
    前記キーフレームをさらに提示することと
    を備えることを特徴とするコンピュータ可読媒体。
  35. 前記選択されるデコードされたフレームは、基準フレームであることを特徴とする請求項34に記載の媒体。
  36. 既にデコードされ、前記メモリに記憶されたフレームは、前記順方向デコードから除外されることを特徴とする請求項34に記載の媒体。
  37. 既にデコードされ、前記メモリに記憶されたフレームは、前記順方向デコードから除外され、これらの除外されるフレームは、前記選択によって選択された前記フレームの中にある可能性があることを特徴とする請求項34に記載の媒体。
  38. 前記提示の後に、前記方法は、さらに、前記提示されたばかりのフレームを記憶するメモリを解放することを備えることを特徴とする請求項34に記載の媒体。
  39. 前記メモリは、フレームのデコードをさらに助けるのに使用されることを特徴とする請求項34に記載の媒体。
  40. 前記方法は、さらに、
    そのデータがまだエンコードされた状態で前記BOFの非基準フレームを記憶することであって、非基準フレームは、前記BOF内の別のフレームによって参照されないエンコードされたデータを有するフレームである、記憶することと、
    前記シーケンスと逆の順序で、非基準フレームを選択的にデコードすることと
    を備えることを特徴とする請求項34に記載の媒体。
  41. 前記選択されるデコードされたフレームは、基準フレームであり、前記方法は、さらに、
    そのデータがまだエンコードされた状態で前記BOFの非基準フレームを記憶することであって、非基準フレームは、前記BOF内の別のフレームによって参照されないエンコードされたデータを有するフレームである、記憶することと、
    前記シーケンスと逆の順序で、非基準フレームを選択的にデコードすることと
    を備えることを特徴とする請求項34に記載の媒体。
  42. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のために実質的に約m個のフレームを識別するために再帰副分割を実行することと
    を含むことを特徴とする請求項34に記載の媒体。
  43. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のためにm個以下のフレームを識別するために再帰副分割を実行することと
    を含むことを特徴とする請求項34に記載の媒体。
  44. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のために実質的に約m個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられる、実行することと
    を含むことを特徴とする請求項34に記載の媒体。
  45. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のために実質的に約m個のフレームを識別するために再帰副分割を実行することであって、フレームの前記選択は、前記シーケンスの残りのこれから提示されるフレームの終りに向かってより重くなる重みを付けられ、前記フレームの前記選択は、逆転された算術シーケンスに比例する間隔を作る、実行することと
    を含むことを特徴とする請求項34に記載の媒体。
  46. 前記選択することは、
    前記メモリの使用可能なフレームバッファの個数mを判定することであって、各フレームバッファは、デコードされたフレームを記憶することができる、判定することと、
    前記シーケンスの残りのこれから提示されるフレームの相対位置をマッピングすることと、
    選択のためにm個以下のフレームを識別するためにメモリに記憶された1つまたは複数の選択テーブルを参照することと
    を含むことを特徴とする請求項34に記載の媒体。
  47. 前記方法は、さらに、
    シーケンス内の複数のBOFからなるスーパーBOFを受け取ることであって、各BOFは、1つのキーフレームを有する、受け取ることと、
    前記スーパーBOFを複数のBOFに分解することと、
    請求項34に記載のステップを繰り返すことであって、前記複数のBOFの異なる1つが、前記スーパーBOF内のBOFの前記シーケンスと逆の順序で前記取得するステップに供給される、繰り返すことと
    を備えることを特徴とする請求項34に記載の媒体。
  48. メディアストリームを受け取るように構成された入力デバイスと、
    提示されるフレームを表示するように構成されたディスプレイデバイスと、
    請求項34に記載の媒体と
    を備えることを特徴とするコンピューティングデバイス。
  49. 前記方法は、さらに、
    フレームの組を受け取ることであって、フレームのデコードは、他のフレームの一部に対する依存性を有する、受け取ることと、
    前記メモリの使用可能なフレームバッファまたはフレームバッファの一部の個数mを判定することであって、各フレームバッファの一部は、デコードされたフレームの一部を記憶することができる、判定することと、
    前記シーケンスの残りの完了したこれから提示されるフレームの一部をマッピングすることと、
    選択のためにm個以下のフレーム部分を識別するために、メモリに記憶された1つまたは複数の選択テーブルを参照することまたは選択ストラテジを使用することと
    を備えることを特徴とする請求項34に記載の媒体。
  50. 前記方法は、さらに、
    フレームの一部は、スライス、マクロブロック、サブマクロブロック、またはサブマクロブロックの一部を含むこと
    を含むことを特徴とする請求項49に記載の媒体。
  51. 前記提示の後に、前記方法は、さらに、前記提示されたばかりのフレームを記憶するメモリを解放することを備えることを特徴とする請求項49に記載の媒体。
  52. フレームをデコードすることのコストを計算することをさらに備えることを特徴とする請求項34に記載の媒体。
JP2005144184A 2004-05-17 2005-05-17 デジタルメディアストリームの逆提示 Pending JP2006025401A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/847,273 US7627227B2 (en) 2004-05-17 2004-05-17 Reverse presentation of digital media streams

Publications (1)

Publication Number Publication Date
JP2006025401A true JP2006025401A (ja) 2006-01-26

Family

ID=34939833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005144184A Pending JP2006025401A (ja) 2004-05-17 2005-05-17 デジタルメディアストリームの逆提示

Country Status (5)

Country Link
US (1) US7627227B2 (ja)
EP (1) EP1599048A2 (ja)
JP (1) JP2006025401A (ja)
KR (1) KR20060047952A (ja)
CN (1) CN1725844A (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070085203A (ko) 2004-06-07 2007-08-27 슬링 미디어 인코퍼레이티드 퍼스널 미디어 브로드캐스팅 시스템
EP1633129B1 (en) * 2004-09-02 2015-06-24 Thomson Licensing Method and apparatus for decoding encoded groups of pictures of a video sequence and presenting said video sequence and said groups of pictures in temporally backward direction
US8453148B1 (en) 2005-04-06 2013-05-28 Teradici Corporation Method and system for image sequence transfer scheduling and restricting the image sequence generation
US8766993B1 (en) * 2005-04-06 2014-07-01 Teradici Corporation Methods and apparatus for enabling multiple remote displays
US8069466B2 (en) * 2005-08-04 2011-11-29 Nds Limited Advanced digital TV system
EP1915862B1 (en) 2005-08-15 2012-03-07 NDS Limited Video trick mode system
US7809057B1 (en) * 2005-09-27 2010-10-05 Ambarella, Inc. Methods for intra beating reduction in video compression
US7716551B2 (en) * 2005-12-07 2010-05-11 Microsoft Corporation Feedback and frame synchronization between media encoders and decoders
JP5346584B2 (ja) * 2006-09-26 2013-11-20 パナソニック株式会社 復号装置、復号方法、復号プログラム及び集積回路
US8270819B2 (en) * 2006-10-31 2012-09-18 Tivo Inc. Performing trick play functions in a digital video recorder with efficient use of resources
KR20080090934A (ko) * 2007-04-06 2008-10-09 삼성전자주식회사 정속 역 재생 방법 및 장치
US8350921B2 (en) * 2007-05-10 2013-01-08 Freescale Semiconductor, Inc. Video processing system, integrated circuit, system for displaying video, system for generating video, method for configuring a video processing system, and computer program product
US8612643B2 (en) 2007-06-30 2013-12-17 Microsoft Corporation Interfaces for digital media processing
US8179976B2 (en) * 2008-01-11 2012-05-15 Apple Inc. Control of video decoder for reverse playback operation
EP2086236A1 (en) * 2008-01-31 2009-08-05 Hewlett-Packard Development Company, L.P. Method and system for accessing applications
KR101518829B1 (ko) * 2008-06-17 2015-05-11 삼성전자주식회사 위치 정보를 포함하는 동영상 녹화 및 재생 방법 및 장치
US8073990B1 (en) 2008-09-23 2011-12-06 Teradici Corporation System and method for transferring updates from virtual frame buffers
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
US8209730B2 (en) * 2009-06-22 2012-06-26 Sony Corporation Speculative video on demand
US8532472B2 (en) * 2009-08-10 2013-09-10 Sling Media Pvt Ltd Methods and apparatus for fast seeking within a media stream buffer
WO2012050832A1 (en) * 2010-09-28 2012-04-19 Google Inc. Systems and methods utilizing efficient video compression techniques for providing static image data
KR20120050725A (ko) * 2010-11-11 2012-05-21 삼성전자주식회사 데이터 재생 방법 및 장치
US10536726B2 (en) 2012-02-24 2020-01-14 Apple Inc. Pixel patch collection for prediction in video coding system
US9451288B2 (en) * 2012-06-08 2016-09-20 Apple Inc. Inferred key frames for fast initiation of video coding sessions
GB2507764C (en) 2012-11-08 2017-08-16 Nds Ltd Review buffer
WO2017008234A1 (zh) * 2015-07-14 2017-01-19 深圳市锐明技术股份有限公司 一种监控数据的处理方法及系统
US11005620B2 (en) * 2017-06-16 2021-05-11 Qualcomm Incorporated Uplink reference signal sequence design in 5G new radio
US10805663B2 (en) * 2018-07-13 2020-10-13 Comcast Cable Communications, Llc Audio video synchronization
NO346123B1 (en) * 2020-02-05 2022-03-07 Movi Tech As Video decoding method and device enabling improved user interaction with video content

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07264542A (ja) * 1994-03-23 1995-10-13 Pioneer Electron Corp 動画像復号化装置
JPH08102913A (ja) * 1994-09-29 1996-04-16 Victor Co Of Japan Ltd 圧縮動画像データの逆方向再生方法
JPH08130707A (ja) * 1994-10-31 1996-05-21 Graphics Commun Lab:Kk 画像信号処理装置
JPH08214260A (ja) * 1995-01-31 1996-08-20 Sony Corp 符号化データの特殊再生方法および特殊再生装置
JPH08280024A (ja) * 1995-04-07 1996-10-22 Sony Corp 映像信号復号化装置
JP2002010213A (ja) * 2000-06-27 2002-01-11 Mitsubishi Electric Corp 符号化データの再生方法および符号化データの再生装置
JP2002529024A (ja) * 1998-10-26 2002-09-03 ソニー エレクトロニクス インク ビデオデータのトリック再生の管理
JP2003052020A (ja) * 2001-05-31 2003-02-21 Sanyo Electric Co Ltd 画像処理方法とこの方法を利用可能な画像処理装置およびテレビジョン受像機

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4661862A (en) * 1984-04-27 1987-04-28 Rca Corporation Differential PCM video transmission system employing horizontally offset five pixel groups and delta signals having plural non-linear encoding functions
GB2164480B (en) * 1984-09-18 1988-01-13 Sony Corp Reproducing digital audio signals
JP2520160B2 (ja) 1988-10-20 1996-07-31 富士通株式会社 図形処理用lsi回路
US5193004A (en) * 1990-12-03 1993-03-09 The Trustees Of Columbia University In The City Of New York Systems and methods for coding even fields of interlaced video sequences
US5621578A (en) 1992-02-06 1997-04-15 Matsushita Electric Industrial Co., Ltd. Method of transmitting digital video and audio signals between bit rate reduction encoded signal recording and reproducing systems
US5341474A (en) * 1992-05-15 1994-08-23 Bell Communications Research, Inc. Communications architecture and buffer for distributing information services
US5298992A (en) * 1992-10-08 1994-03-29 International Business Machines Corporation System and method for frame-differencing based video compression/decompression with forward and reverse playback capability
US5377051A (en) 1993-01-13 1994-12-27 Hitachi America, Ltd. Digital video recorder compatible receiver with trick play image enhancement
US5535008A (en) 1993-03-16 1996-07-09 Victor Company Of Japan, Ltd. Method for jump-reproducing video data of moving picture coded with high efficiency
US5414455A (en) * 1993-07-07 1995-05-09 Digital Equipment Corporation Segmented video on demand system
US6101070A (en) 1993-09-30 2000-08-08 Sony Corporation Method and apparatus for determining information and a cassette for use therewith
JP3471401B2 (ja) 1993-12-28 2003-12-02 松下電器産業株式会社 蓄積av情報通信装置
JP3312074B2 (ja) 1994-01-24 2002-08-05 シャープ株式会社 映像信号のディジタル記録及び再生装置
JPH07226917A (ja) * 1994-02-14 1995-08-22 Toshiba Corp 画像再生方式及び装置
US5892882A (en) * 1994-03-23 1999-04-06 Pioneer Electronic Corporation Moving picture decoding device having a compressed picture data memory
US5521630A (en) 1994-04-04 1996-05-28 International Business Machines Corporation Frame sampling scheme for video scanning in a video-on-demand system
JPH09282166A (ja) 1996-04-09 1997-10-31 Hitachi Ltd パイプライン演算装置
US6014706A (en) * 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
US6201927B1 (en) * 1997-02-18 2001-03-13 Mary Lafuze Comer Trick play reproduction of MPEG encoded signals
US6167083A (en) 1997-04-04 2000-12-26 Avid Technology, Inc. Computer system and process for capture editing and playback of motion video compressed using interframe and intraframe techniques
JP3510769B2 (ja) 1997-07-17 2004-03-29 三洋電機株式会社 誤り訂正装置および誤り訂正方法
US6247072B1 (en) 1998-01-27 2001-06-12 Cisco Technology, Inc. Real-time data rate matching across a medium
US6327421B1 (en) * 1998-03-10 2001-12-04 International Business Machines Corporation Multiple speed fast forward/rewind compressed video delivery system
US6269117B1 (en) * 1998-06-29 2001-07-31 Sony Corporation System and method for enhancing downsampling operations
US6654539B1 (en) * 1998-10-26 2003-11-25 Sony Corporation Trick playback of digital video data
JP4282201B2 (ja) 2000-03-06 2009-06-17 株式会社東芝 符号化データ記録装置
US7333711B2 (en) 2000-06-14 2008-02-19 Sony Corporation Data distribution apparatus and method, and data distribution system
US7706445B2 (en) * 2001-05-31 2010-04-27 Sanyo Electric Co., Ltd. Image processing employing picture type conversion
US6738980B2 (en) * 2001-11-15 2004-05-18 Industrial Technology Research Institute Methods and systems for video streaming with VCR functionality
US7327784B2 (en) 2003-02-24 2008-02-05 Vixs Systems, Inc. Method and system for transcoding video data

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07264542A (ja) * 1994-03-23 1995-10-13 Pioneer Electron Corp 動画像復号化装置
JPH08102913A (ja) * 1994-09-29 1996-04-16 Victor Co Of Japan Ltd 圧縮動画像データの逆方向再生方法
JPH08130707A (ja) * 1994-10-31 1996-05-21 Graphics Commun Lab:Kk 画像信号処理装置
JPH08214260A (ja) * 1995-01-31 1996-08-20 Sony Corp 符号化データの特殊再生方法および特殊再生装置
JPH08280024A (ja) * 1995-04-07 1996-10-22 Sony Corp 映像信号復号化装置
JP2002529024A (ja) * 1998-10-26 2002-09-03 ソニー エレクトロニクス インク ビデオデータのトリック再生の管理
JP2002010213A (ja) * 2000-06-27 2002-01-11 Mitsubishi Electric Corp 符号化データの再生方法および符号化データの再生装置
JP2003052020A (ja) * 2001-05-31 2003-02-21 Sanyo Electric Co Ltd 画像処理方法とこの方法を利用可能な画像処理装置およびテレビジョン受像機

Also Published As

Publication number Publication date
EP1599048A2 (en) 2005-11-23
CN1725844A (zh) 2006-01-25
KR20060047952A (ko) 2006-05-18
US7627227B2 (en) 2009-12-01
US20050257239A1 (en) 2005-11-17

Similar Documents

Publication Publication Date Title
JP2006025401A (ja) デジタルメディアストリームの逆提示
US9509996B2 (en) Method, device, and system for multiplexing of video streams
US8498520B2 (en) Video encoding and transmission technique for efficient, multi-speed fast forward and reverse playback
US7924921B2 (en) Signaling coding and display options in entry point headers
US9998750B2 (en) Systems and methods for guided conversion of video from a first to a second compression format
JP3825719B2 (ja) 画像再生方法、画像再生装置、および画像記録装置
KR20070064316A (ko) 트릭모드 및 속도 전환
KR101122898B1 (ko) 비디오 스트림 내의 유효 진입점 시그널링
US20160127728A1 (en) Video compression apparatus, video playback apparatus and video delivery system
US20050135783A1 (en) Trick mode elementary stream and receiver system
JP2004194328A (ja) 複数のmpegビデオ・ストリームの結合画像表示のための合成
US6961377B2 (en) Transcoder system for compressed digital video bitstreams
WO2010069427A1 (en) Method and encoder for providing a tune- in stream for an encoded video stream and method and decoder for tuning into an encoded video stream
JP2008537427A (ja) 効率的なビデオ復号化アクセラレータ
JP2001028748A (ja) データ再生伝送装置及びデータ再生伝送方法
KR100860661B1 (ko) 화상 재생 방법과 화상 처리 방법, 및 이들 방법을 이용가능한 화상 재생 장치, 화상 처리 장치, 텔레비전 수상기
JP2006187037A (ja) 画像再生方法
JP2004064746A (ja) 画像復号方法と装置、およびそれらを利用可能なテレビジョン受信装置
JP2008187753A (ja) データ再構築装置、データ再構築方法、データ再生伝送装置及びデータ再生伝送方法
Jennehag et al. Gradual tune-in pictures for fast channel change
JP2001238167A (ja) 画像再生方法とこの方法を利用可能な画像再生装置およびテレビジョン受像機
JPH08265759A (ja) 圧縮信号切換装置
Pejhan et al. Online rate control for video streams
KR20100010605A (ko) 부호화된 아날로그 영상신호 데이터의 네트워크 전송 장치및 이 장치를 위한 영상 구성 방법
JP2001238166A (ja) 画像再生方法とこの方法を利用可能な画像再生装置およびテレビジョン受像機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110701

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111125