JP4729570B2 - トリックモードおよび速度移行 - Google Patents

トリックモードおよび速度移行 Download PDF

Info

Publication number
JP4729570B2
JP4729570B2 JP2007522794A JP2007522794A JP4729570B2 JP 4729570 B2 JP4729570 B2 JP 4729570B2 JP 2007522794 A JP2007522794 A JP 2007522794A JP 2007522794 A JP2007522794 A JP 2007522794A JP 4729570 B2 JP4729570 B2 JP 4729570B2
Authority
JP
Japan
Prior art keywords
frame
frames
trick mode
packet
stream
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.)
Active
Application number
JP2007522794A
Other languages
English (en)
Other versions
JP2008507922A (ja
Inventor
ペイブス、ジャッキース
Original Assignee
ビーチ・アンリミテッド・エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ビーチ・アンリミテッド・エルエルシー filed Critical ビーチ・アンリミテッド・エルエルシー
Publication of JP2008507922A publication Critical patent/JP2008507922A/ja
Application granted granted Critical
Publication of JP4729570B2 publication Critical patent/JP4729570B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4347Demultiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26233Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends

Description

本出願は、2004年7月23日に出願された「Buffer Optimized Trickmodes and Speed Transitions」と題する米国特許仮出願第60/590,504号に対する優先権を主張するものであり、前記仮出願はこの参照によりその全体が本明細書に組み込まれる。
本発明の開示はビデオデータを伝送するための方法に関する。
ビデオフレームは、早送り、巻き戻し、一時停止、停止、および再生が可能なデータを表すのに使用される場合がある。そのようなビデオフレームに関連付けられたデータの任意の時間またはタイムスロットに伝送または受信されるデータ量を使い、利用可能な帯域幅を決定することができる。ビデオフレームの1つのタイプは、「トリックモード(trickmode)」フレームと呼ばれるものであり、数多くの異なるビデオ伝送方法に使用されている。
ビデオ伝送におけるビデオフレームの伝送の管理は、望ましい質のビデオ制作を達成するための一つの考慮点である。トリックモードフレームの場合、任意のフレームに関連付けられたデータ量が予測不可能で、かつ変動する場合があり、これが管理上の問題点となることがある。例えば、利用可能なタイムスロット内にトリックモードフレームが確実に収まるようにするためにタイムスロット法が使用されることがあるが、このタイムスロット法では各スロットは最大のトリックモードフレームを伝送するのに十分な帯域幅の固定量を有する。しかし、その他のより短いトリックモードフレームで、タイムスロットが必要以上に大きい場合、帯域幅が未使用となる場合がある。その結果、未使用の帯域幅の量が増える。
また、多くの場合、トリックモードフレームの伝送前にトリックモードをバッファするために必要なメモリ量を予測することが難しい。その結果、時として、バッファを必要とするデータ量が、利用可能なメモリを超え、「バッファオーバーフロー」を引き起こす場合がある。このバッファオーバーフローの結果、ジャンプやジッタのような望ましくない様々な視覚的状況が発生する場合がある。
本発明の実施形態は、トリックモード・ビデオ・ストリームのようなビデオデータ通信において帯域幅を効率的に使用すると同時に、望ましいビデオ再生条件を提供するバッファレベルを維持する方法を提供する。Motion Picture Experts Group(MPEG:エムペグ)のコンテクストで実施形態について説明するが、上述の方法をその他のタイプのデータ圧縮/解凍方法に用いることも可能であると理解されるべきである。
一部のビデオ圧縮/解凍方法では、ビデオはフレームに分割される場合がある。例えば、MPEGは、Iフレーム、Pフレーム、Bフレームという少なくとも3つの異なるタイプのビデオフレームを使用する。Iフレームすなわち「intra coded frames」は、シーケンスに他の前フレームまたは将来フレームがなくてもIフレームのデコードを可能にするイントラフレームマクロブロックを含む。MPEGビデオのランダム再生では、デコーダはIフレームからデコードを開始することができる。12〜15フレームごとにIフレームを挿入可能であり、Iフレームを用いてシーケンスを開始することができるので、ランダムな位置からビデオを再生すること、および例えば早送りや巻き戻しなどトリックモード機能でビデオを再生することが可能である。
Pフレームは前フレームとの差分としてコード化される。新しいPフレームは、前フレームおよび現在フレームの新しいピクセルの予測値を取り入れて予測することができる。Pフレームは、存在する動作量に応じてより高い圧縮比を提供する。
Bフレームすなわち「双方向フレーム」は、前Bフレームまたは後続Bフレームとの差分としてコード化されるものであり、前フレームおよび後続フレームを使って正確にデコードすることができる。このため、読み込まれるフレームの順序は、必ずしも表示順序と同じでない場合がある。すなわち、後続フレームが現在Bフレームの前に伝送およびデコードされても、現在フレームの後に表示される場合があることを意味する。例えば、Iという表示シーケンスのフレームは、Iと順序換えされて伝送される可能性もある。
MPEGビデオのシーケンスは画像群(Group of Pictures:GOP)を含む。各GOPはビデオフレームを含む。GOP構造には、GOP構造が含むフレーム数(N)および2つの参照フレーム間の距離(M)が関連付けられている。例えば、典型的なGOP構造はIBBPBBPBBPBBPBBP(この構造においてN=15、M=3)、および/またはIBBPBBPBBPBB(この構造においてN=12、M=3)などである。当然、これら構造は変化するものであり、例えばPPPPPPPPなどPフレームだけのストリームを含むこともある。
トリックモードGOPは、Iフレームと、可変数のダミーBフレームおよびPフレームとを含むビデオシーケンスである。トリックモードGOPのサイズには、トリックモードGOPに含まれるフレーム数が関連付けられている場合がある。例えば、IBBPPPというGOP構造のGOPサイズは6である。GOPまたはトリックモードパケットのタイムスロットは、IフレームDTS(デコード・タイム・スタンプ)から次のIフレームDTSまでの期間が可能である。
トリックモードパケットはトリックモードGOPと関連付けられており、有効なトランスポートストリームを調整するためのデータを含む。前記トリックモードパケットは、プログラム割り当てテーブル(Program Allocation Table:PAT)と、プログラム・マップ・テーブル(Program Map Table:PMT)と、「同期」パケットとして参照される同期のためのみの(例:データなし)プログラム・クロック・レファレンス(Program Clock Reference:PCR)を有するトランスポート・ストリーム・パケットと、トリックモードGOPと、様々なサイズのフィラー・ヌル・パケット(filler null packets)とを含む。
トリックモードパケットのサイズは、トリックモードパケット自体に基づくサイズである可能性がある。前記トリックモードパケットのサイズは、ストレージオーバーヘッド、ネットワークオーバーヘッド、およびビットレートコントロールに対応することもできる。例えば、Iフレームを含むファイルセグメントは、トランスポート・ストリーム・レベルで多重化されたその他のパケット識別子または「PID」(例:PAT、PMT、オーディオ)を含むこともできる。ブロックをメモリに読み込み、非ビデオパケットをヌル(例:「ミューティング」)に替えることも可能である。
トリックモードパケットは1316バイト(例:ユーザ・データグラム・プロトコル(UDP)を介したMPEG2トランスポートストリーム)も可能である。
図1は、固定タイムスロット割り当てを使ったIフレームベースのトリックモードのビデオ・バッファ・レベルの一例である。図1が示すように、各GOPは7つのフレームを含む。その他のサイズのGOPを使用することも可能である。図1で図示する横軸目盛(t)は、フレーム期間(例:1/30秒)を表す。例えば、当該「トリックモードGOP」構造はIBBPPPPであってもよいし、または2つのダミーBフレームおよび4つのPフレームが後続するIフレームであってもよい。この構造では30秒毎に7つのIフレーム(すなわち4.28秒毎に1つのIフレーム)が作成される。図1のt=2の位置の縦線が示すように、第1のGOPはt=2で受信される。前記GOP構造は7つのフレームで設定されているため、第1のGOP構造t=7までデコードおよび提示されない。第2のGOP構造t=13受信される。この例では、前記第2のGOPが伝送およびバッファされる間、デコーダはt=7からt=13まで第1のGOPを提示する。t=14で、前記第2のGOPはすでにバッファされており、デコードできる状態にある。
GOPのデコードおよび提示ができる状態にあるインターバルの前にGOPを受信した場合、前記デコーディングプロセスに中断が起こらない。しかしながら、GOPのデコードおよび提示準備が整う前記インターバルの前にGOPを受信可能であるため、未使用の帯域幅が存在する可能性がある。図1において、この未使用の帯域幅長方形部分として描かれている
無駄な帯域幅の問題を解決するための1つの試みは、例えばそのタイムスロットおよび/またはGOPサイズを減らすことによって、毎秒送信されるIフレーム数を増やすことである。例えば、図1を参照し、GOPを6フレームに減らすことによって、前記第1のGOPによる未使用の帯域幅の量は1フレーム少なくなる。しかし、前記第2のGOPは、そのデコードおよび提示後のt=13.5まで伝送状態ではない。前記第2のGOPが伝送されるには約6.5フレーム(すなわち13.5−7)のインターバルが必要なため、t=12で前記第1のGOPによって不完全な第2のGOPがデコーダに提示されることになる。不完全な第2のGOPをデコーダに提示すると、「バッファアンダーフロー(buffer
underflow)」が生じる可能性がある。1実施形態において、GOPの長さおよびタイムスロットを、その後続GOPのサイズの関数とすることができる。例えば、図1のサンプル分布が示すように、一部のIフレームは2フレームという短いタイムスロットのみを必要とし、他のIフレームは6フレームという長さである場合もある。
図2は、対象GOPに後続するGOPに基づき前記対象GOPの長さを増す方法の一例である。図2が示すように、同一のGOPシーケンスを用い、各GOPについて合計インターバルをランダムにすることによって、未使用の帯域幅の量(長方形部分によって示される)をわずか1インターバル長に減少することができる。具体的には、前記第1のGOPは4フレームのインターバルを有し、前記第2のGOPは5インターバルを有する。それにより生成されるトリックモードシーケンスは、ランダムなインターバルで提示される新しいIフレームを導入することができる。
図1および図2が示す方法は、すべてのGOPがデコードされた後、バッファは残りのダミーPフレームとBフレームを含み、これらはごく小さいサイズであるため、ビデオバッファが空となるという前提に基づいて行われている。
データの取り込みプロセスは、受信される「N」個めのフレームごとに1フレームをデコードし、「N速度」のトリックモードストリームを生成するする。例えば、8xのストリームを生成するために、前記取り込みプロセスはフレーム1,9,17,25...(8n+l)をデコードすることができる。次に、これらのフレームを使って、結果的に得られるストリームが例えば毎秒30の一意のフレームを含むように、MPEG2トランスポートストリームを生成することができる。次に、フレームのシーケンスを、元のトランスポートストリームの一部の特性(フレームレート、ビットレート、PID割り当て、ビデオフォーマット、ビデオバッファ特性(例えば滑らかな速度移行のためのバッファサイズおよびバッファレベル)など)を維持する新しいMPEG2トランスポートストリームにエンコードすることができる。この方法によって、より優れたトリックモードの品質を提供することが可能である。また、この方法は、より高いプロセッサ能力と追加的なストレージオーバーヘッド(例えば通常30%)を使用する。
一部の実施形態では、IフレームベースのトリックモードはダミーBフレームおよびPフレームを挿入することもできる。また、前記実施形態の一部では、フレームジッタになる可能性のあるPフレームおよびBフレームを、フレーム予測を用いてエンコードすることができる。例えば、放送テレビジョン(すなわち全国テレビジョン方式委員会(National Television System Committee:NTSC))を用いる実施形態では、各フレームは2つのインターレースフィールドから構成されており、合計毎秒60フィールドとなる。24fpsという映画のフレームレートと30fpsというテレビのフレームレートの差分の結果、映画をテレビ用コンテンツに変換するために「3:2引き下げ」方法を採用することがある。
前記「3:2引き下げ」方法は、フレームを3フィールドと2フィールドに交互に変換することができる。例えば、24fpsで4フレーム(すなわち6秒毎に1フレーム)では、30fpsで10フィールドまたは完全な5フレームが作成される。(プログレッシブモードではなく)インターレースモードを使ったエンコードでは、1フレームは2フィールド(上のAと下のB)を含む。ダミーBフレームとPフレームを生成するためにフレーム予測を用いると、デコーダはその参照画像またはIフレームから両方のフィールドをコピーすることができる。よって、例えば、構造IBBPPを持つトリックモードGOPでは、前記デコーダはABABABABABという構造を有する5フィールドのシーケンス(各フレームに2つのAB)が作成される。
Iフレームは2つの異なる画像から生成されたフィールドを含む場合があり、ABABABABABというフィールドのシーケンスは「ジッタ」の印象を与えることがある。
一部の実施形態では、トリックモード機能を開始する際、BフレームおよびPフレームによって使用される参照フレームは、これらのフレームを出力ストリームにコピーするときに破壊される可能性がある。この原因の一部は、Nフレームから1フレームを選択することによってトリックモードファイルが生成されることにある。結果的に、前記BおよびPフレームは前記出力ストリームにもはや存在しない可能性があるため、これらのフレームを欠落している参照フレームと伴に完全にデコードし、次に、異なる参照フレームを用いて前記トリックモードストリームのコンテクストで再エンコードする必要がある。
例えば、IBBPBBPBBPBBPBBIBBPBBPBBPBBPBBIBBPというビデオ・フレーム・シーケンスは、前記トリックモードシーケンスに対しIBBPBBPによって表すことができる。元のビデオ・フレーム・シーケンスのBフレームは、前記トリックモード・シーケンス・ファイルの一部ではない前および後続のIおよびPフレームに依存する場合がある。また、前記トリックモードファイルでは、シーケンスへの挿入場所により、一部のフレームは異なる方法でエンコードされる。例えば、前記元のシーケンスのIフレームを、前記トリックモードファイルでPフレームとしてエンコードし、BフレームをPフレームにすることも、全く異なる参照フレームを持つ別のBフレームにすることも可能である。
ケーブル業界で使われる典型的な帯域速度は、CableLabs(商標)コンテンツ仕様1.0[4]の説明によれば、3.75メガビット/秒であり、毎秒30フレームのストリームが3.75メガビット/秒で取り込まれる。4つのトリックモードファイルを必要とするビデオ・オン・デマンド(VOD)サーバの場合(例えば15x,−15x,60xおよび−60xの速度)、4つのエンコーダを平行して使用して元のビデオストリームから抽出およびデコードされたフレームを処理することによって、最高4つの異なるトリックモードファイルを生成することができる。
各トリックモードエンコーダは、毎秒2フレーム(2fps)(30/15)、2fps(30/15)、0.5fps(30/60)、および0.5fps(30/60)で受信することができ、4つのすべてのエンコーダで毎秒合計5フレームとなる。通常、例えば2.4GHzのPentium(商標)4プロセッサから得られる処理能力のすべてを実質的に使用することにより、約45メガビット/秒の取り込み帯域幅で12ストリームをエンコードすることが可能である。その結果得られるトリックモードファイルは、それぞれ前記元のファイルサイズの6.7%、6.7%、2.2%、および2.2%であり、合計約16.6%のストレージとなる。よって、一部の実施形態では、標準トリックモードファイルを生成するために、かなり高度なコンピュータ処理能力およびコンピュータ論理が必要とされる場合がある。さらに、前記プロセスは一部のフレームを完全にデコードし、Bフレームのようなその他のフレームをデコードしない場合がある。
Iフレームの表示は前フレームまたは後続フレームに依存しないので、Iフレームをランダムアクセス機構に用いることが可能である。よって、一部の実施形態では、新しく作成されたストリームにIフレームをマージし、ビットレートを制御するためにヌルパケットを挿入することによってトリックモードを使うことができる。
Iフレームの通信所要時間はフレーム間隔より長い場合がある。例えば、平均Iフレームサイズ40kbでは、30fpsのIフレーム専用トリックモードストリームは最低限9.8メガビット/秒(40kb x 8 x 30)すなわちケーブル産業で一般に使用される3.75メガビット/秒という速度の約2.6倍の速度を必要とする。
一部の実施形態では、30fpsのようにより高いフレームレートを維持するために、前記Iフレームレートを毎秒約10Iフレームに減少させる場合がある。例えば、残りのIフレームの代わりに他のフレームを挿入することによって速度を維持することができる。例えば、2若しくはそれ以上のフレーム期間またはフレーム間隔に1つのIフレームを表示し、後続のIフレームを伝送およびバッファすることができる。最後に表示されたフレームのコピーである「ダミー」BフレームまたはPフレームをビデオストリームに挿入することができる。1実施形態において、「ダミー」または複製フレームは、平均Iフレームサイズよりも小さいサイズの「静止」フレームである場合がある。ダミーフレームは実質的に同時にエンコードできるので、プロセッサの効率を高めることができ、GOPのサイズを拡張するために出力ストリームに挿入可能である。
毎秒10のIフレームという速度のトリックモードは、「トリックモードGOP」すなわちビデオフレームのトリックモード・シーケンスを作成することによって達成できる。例えば、「トリックモードGOP」のシーケンスを、後続する2つのダミーBフレームを持つ1つのIフレームで作成することによって、例えばIBBIBBIBBIBBIBBのようなシーケンスを作成することができる。前記ダミーBフレームのサイズが例えば約1.2kbであれば、その出力ストリームの平均ビットレートは3.5メガビット/秒((40kb*8*10 I−フレーム/秒)+(1.2kb*8*20 B−フレーム/秒))となり、最大帯域速度3.75メガビット/秒以内となる。
一部の実施形態では、タイムスロット割り当ておよびトリックモードGOPサイズをIフレームベースのトリックモードストリームで動的に調整し、帯域幅の使用を効率化する。これらの方法は、さらに、バッファオーバーフローを検出および予防することによってビデオバッファ稼働率を監視する。1態様においては、「ダミー」Pフレームを挿入する場合がある。
また、これらの方法を用いて帯域幅利用率を最大限にすると同時にバッファレベルを最少レベルに維持し、処理速度の変化につれてシステムの応答性を増すことができる。例えば、8xのストリームを生成するために、これらの方法は平均して毎秒約10の一意のIフレームを提供することができる。残りのフレーム(例えば毎秒30フレームのストリームで毎秒20フレーム)は、ダミーまたは静止BフレームおよびPフレームが可能である。
1実施形態では、これらの方法をビデオ・ストリーム・ソフトウェア製品に組み入れる。また、この方法を、ハードウェア、ファームウェア、またはそれらの任意の組み合わせを用いて達成することも可能である。
データ構造を用いてビデオの取り込みストリームを解析することができる。例えば、「ヒンター(Hinter)」構造およびその解析データ(すなわちIフレームおよびストリーム情報)を「ヒント(HINT)」ファイルというファイルに保管することができる。ビデオの取り込み、例えば、通常のPentium 4(商標)2.4GHzプロセッサで約300メガビット/秒の取り込みが可能であると理解される。前記ヒントファイルは、例えば約64kのヘッダを含むことができる。また、前記ヒントファイルは、1つのIフレームにつき約128バイトのIフレームテーブルを含むことができ、関連付けられたIフレームの位置を示すポインタを有することができる。3.75メガビット/秒で毎秒20のIフレームを有する2時間の映画(すなわち合計14400のIフレーム)では、元のファイルサイズの約0.06%未満である約1.9メガバイトのサイズのヒントファイルが作成される。しかし、取り込み時に前記のトリックモードが生成されない場合があるので、例えばソフトウェアおよび/またはハードウェアのストリーミングに使われる場合、これらの方法は動的にトリックモードストリームを生成する場合がある。
図3は、Iフレームのシーケンスがバッファレベルに与える影響を図示する。縦軸はIフレームのデコード時間を表す。図3が示すように、トリックモードパケットはバッファリングを利用することによって「パック」される。Iフレームの大型シーケンスによって、フレームレートにほとんど若しくは全く影響を与えずに、バッファレベルが短期間上がる場合がある。ダミーPおよびBフレームも伝送およびデコードされるが、それらはIフレームの約30倍小さく、それぞれ約1.3kである。
一部の実施形態では、バッファレベルの調整に用いられるこれらの方法は固定タイムスロットのトリックモードシーケンスから導き出されている場合がある。そのようなシーケンスは図1を参照して説明したシーケンスと類似している場合がある。また、比較的優れた表示品質を達成するために、これらの方法によって、実質的に一定の速度のIフレームを生成する試みが行われる。前記のビデオストリームは任意の分布を有するIフレームを含むことができるが、本発明の理解および明確化のために、以下の説明では、図4が示すように、入力ビデオストリームが一定のサイズの分布曲線を含むものと仮定する。
上記の方法は、与えられたサイズを満たさないIフレームを含むタイムスロットの未使用の帯域幅を再分配し、超過サイズのIフレームを取り入れることができる。これは、例えば、(GOPサイズに基づき)十分なトリックモードのタイムスロットサイズを選択し、バッファオーバーフローを発生せずに一式のトリックモードパケットが確実に調整または再配列されるよう十分に大きいタイムスロット調整または枠を選択することによって達成できる。
伝送前にトリックモードパケットのシーケンスを再配列することにより、帯域幅利用率を改善することができる。また、本発明の方法は、統計平均を採用し、任意のシーケンスのトリックモードパケットのGOPサイズを取り入れることができる。1実施形態では、前記GOPサイズを確実にそのパケット調整のサイズ未満若しくは最低限そのサイズと同等にすることによって平均化が達成される。
実質的に固定されたIフレームのタイムスロットからのIフレームをこのように再分配および再配列する結果、前記の方法はデコードおよびそれに伴うバッファリングを含む場合がある。さらに、バッファされたデータの量を管理することにより、バッファオーバーフローまたはアンダーフローという状況を予防することができる。
図5は、トリックモードパケット調整を図示する。図5が示すように、上の枠501は、一部の超過サイズのトリックモードパケットがその固定タイムスロットおよび利用可能なタイムスロットに適合しない場合があることを図示している。例えば、トリックモードパケット506は図のタイムスロット503内に適合しているが、トリックモードパケット504は前記503の後続タイムスロット505内に適合していない。結果として、トリックモードパケット504の一部はタイムスロット507に入り込んでいる。
下の枠502は、前記タイムスロットを再配列または順序替えする方法を示している。そのような再配列によって、前または後続のトリックモードパケットからの利用可能な帯域幅または「ヌル」を、より大きいトリックモードパケットに使用することが可能になる。
以下の説明において、上述の概念を数学的に定量化する。しかし、本発明の開示がこれらの等式の計算または使用に限定されるものではないことが理解されるものである。むしろ、以下の説明は、この新規概念の理解を深めることを目的として提供されるものであり、例として与えられる等式は本発明の実施形態で考慮される可能な1つのアプローチに過ぎない。
ビットレートb、フレームレートf、およびqフレームのGOPサイズを有するデータストリームでは、与えられたタイムスロットにおいて伝送可能なデータ量Qは次のように表される。
Figure 0004729570
そのIフレームレートは次のように計算することができる。
Figure 0004729570
場合によっては、よりよい表示品質を得るために、1GOP当たりのフレームを定数にすることによりqを整数として維持することが好ましい。あるいは、GOPごとにqを変動させる(すなわちGOPサイズを変動する)こともできる。その他の可能な実施形態は、qの平均値を用いる場合がある。例えば、2.4フレームのqの値を、2,3,2,2,3というサイズを有し毎秒12.5のIフレームを提供するGOPのシーケンスに対して設定することができる。
上記の等式をb=3.75メガビット/秒、f=30fps、およびq=3であるビデオストリームに適用することにより、r=毎秒10のIフレームであるIフレームレートで、各タイムスロットにて46,875バイトを伝送することができる。
nトリックモードパケットのある調整枠に必要な帯域幅を予測するために、多くの観点の予測を考慮する必要がある場合がある。例えば、Iフレームのサイズ、ダミーBフレームとPフレームの数およびそれらのサイズ、PAT、PMT、PCRパケットのようなオーバーヘッド・データのサイズ、およびディスクとネットワークのオーバーヘッドなどを考慮しなくてはならない場合がある。これらの値を予測することができる。例えば、元のストリームでのIフレームのサイズが、特定の分布曲線に必ずしも従わない一定のサイズの分布(I,σ)を有することができると予測することができる。ディスクまたはストレージのオーバーヘッドは、トリックモードパケットのサイズを決定することによって予測することができる。
上記の予測は、ビデオ・バッファ・レベルを約10%高く予測する場合がある。結果として、一部の実施形態では、ストレージから直接入手される40KBブロックにおいて、ビデオバッファに保管されることになる実際のビデオデータ36kB以下を伝送しなくてはならない場合がある。残りの4kBは、前記ブロックに埋め込まれていて「ヌル化」または「ミュート化」されたその他のPID(例えばオーディオ、PMT、PAT)を含むことができる。あるいは、前記ビデオデータを再配列し、約36kBのビデオデータを送信することができる。
バッファオーバーフローを確実に避けるために、本発明の方法はバッファ能力の90%という制限を設定することができる。この90%制限は、上述の方法におけるエラーの増大を予防することもできる。前記バッファレベルはそのトリックモードシーケンスにおいて超過サイズのIフレームの比較的大きいシーケンスを必要とするため、前記バッファレベルがその制限の90%に到達する確率は比較的低い。さらに、前記バッファレベルを高めに予測することにより、前記トリックモードの性能をあまり劣化させずにバッファオーバーフローを検出する確率が高まる。
n個のランダムなIフレームのシーケンスにおける各Iフレームのサイズを決定する場合、合計サイズ
Figure 0004729570

Figure 0004729570
という分布を持つランダムな変数となる。nの値が大きいほど、前記ランダムな分布(S)は正規分布に近づく。この予測の結果生じるすべてのエラーをPフレーム挿入によって修正することができる。
さらに、前記のダミーPフレームおよびBフレーム(P)およびオーバーヘッドデータ(OH)のサイズを予測することによって、nタイムスロットを持つ調整枠に含まれるストリーミングデータ(T)の合計量を以下の等式によって表すことができる。
Figure 0004729570
前記調整枠にて利用可能な帯域幅を以下の等式によって表すことができる。
Figure 0004729570
トリックモードパケットのシーケンスが指定調整枠に適合する確率を最大限にするために、本発明の方法は、一部の実施形態で、修正εを実行する必要が生じる確率を低く維持しようと試みることができ、ここで、10−3の階数の値に対しε>P(T>Q)である。
が正規分布と考慮され得るほどnが十分大きいと考えれば、nは以下の等式を満たすのに十分な大きさである場合がある。
Figure 0004729570
前記等式に、B=3.75メガバイト/秒、f=29.97fps、q=3フレーム、I=40491バイト、σ=10835バイト、P=1.0kb、OH=2.0kbという実数値を投入すると、次のようになる。
Figure 0004729570
ε=10−3であれば、その調整枠は次のようになる。
Figure 0004729570
ここで、Iフレームの平均サイズは選択されたタイムスロットのサイズよりわずかに小さく、本発明の方法は毎秒約10のIフレームのトリックモードストリームを可能にする。また、この例において、その帯域幅利用率は約97%である(すなわち44587バイト割る45922バイト)。百分率で表す実際の帯域幅利用率はバッファオーバーフローを修正する必要性(例えばPフレームの挿入)によって低下する場合がある。
以下の例は、1つの調整枠サイズを選択し、最大トリックモード速度または最小GOPサイズ(q)を決定することによって、異なるアプローチを採用する。
Figure 0004729570
ここで、調整枠サイズ(N)を64サンプルに設定し、εを10−3として、許容Iフレームレートを算出する。そのストリームから統計を収集し、最大トリックモード速度を算出することによって、これを達成することが可能である。そのIフレーム統計は、すでに説明したように、前記ストリームに関連付けられた「ヒント」ファイルに保管することができる。q=3.127という結果は毎秒約9.6のIフレームであり、例えば3,3,3,3,3,4,3,3といった不正規のGOPサイズを許容するものである。別の実施形態では、この結果を次の整数q=4に切り上げ、毎秒7.5のIフレームとする。
このバッファ調整方法は、各トリックモードパケットからのパラメータ一式の計算を必要とする場合がある。これらのパラメータに指令を与え、Iフレームの選択、Iフレームのデータ収集、および制御変数の初期化をすることができる。
Iフレームの選択に関し、一定の速度(例えば15x、30x、−10x...)でトリックモードストリームを生成するためにIフレームのシーケンスを決定することができる。前記Iフレームのシーケンスを、(1若しくはそれ以上の)速度、選択されたGOPサイズ(q)、および元のストリームから抽出された情報(フレームレート(f)およびそのストリームの毎秒の平均Iフレーム数など)に基づいて決定することができる。MPEG2ファイルが最初にヒントファイルに取り込みおよび保管されるときに、ヒント過程の一部としてIを算出することができる。
さらに理解を深めるために、以下に例示的な実施形態を提供する。毎秒平均2つのIフレームでありトリックモードストリームが毎秒10のIフレームで生成されると仮定し、すべてのIフレームが選択される場合、前記トリックモードストリームは5xという速度で生成されることになる。あるいは、1つおきに(すなわち2のインクリメントで)Iフレームが選択される場合、10xのトリックモードストリームの生成が可能である。最後のIフレームから最初のIフレームにかけて1つおきに(逆順に−2のインクリメントで)Iフレームを選択すると、−10xのトリックモード速度が得られる。
トリックモード速度がありIフレーム/秒(I)の平均を有するビデオストリームの場合、i=sqI/f.としてその指数インクリメント(i)を算出することができる。前記指数インクリメントを用いて、同じく変数であるIフレーム指数(x)のシーケンスを算出することができる。実際のIフレームは、以下の例で提供される指数のシーケンスを切り捨てることによって得られる。
=2のIフレーム/秒、b=3または10のIフレーム/秒(fps)およびf=30フレーム/秒(fps)。トリックモードをIフレーム番号600から(すなわち映画の開始後約5分後)−16x(すなわち高速巻き戻し)の速度で実行する場合、Iフレーム指数のシーケンスは600でありI=3.2=−16x3x2/30となる。よって、作成される指数のシーケンスは600.0,596.8,593.6,590.4,587.2,584.0等となる。また、このバッファ調整アルゴリズムのために選択されるIフレームのシーケンスは600,597,594,590,587,584等である。
トリックモード再生速度がより小さい場合、例えば4倍小さい場合は、結果的に得られる指数インクリメントが1.0未満となり、フレームの繰り返しが生じる場合がある。これらのケースでは、算出された指数インクリメントに基づくIフレーム選択中にGOPサイズ(q)を修正することができる。例えば、前記数値を用い、GOPサイズ(q)を3.75に修正し、4.0に切り上げることができる。これにより、毎秒の平均Iフレーム数は、毎秒10のIフレームから毎秒7.5のIフレームに減少する。これにより、その指数インクリメントは約i=1.067になる。
また、一部の実施形態で、GOPサイズ(q)を変数または浮動小数点として扱うことができ、従ってその指数インクリメントは1.0に切り上げられ、qは例えば3.75など非整数の値を採ることができるものと理解さる。これにより、4,4,4,3等といったサイズのGOPのシーケンスが作成される。
Iフレームのデータ収集に関しては、Iフレームのシーケンスがいったん決定されると、Iフレームに関する情報の収集および一部のデータ構造の初期化(例えばトリックモードパケット毎に1若しくはそれ以上)が可能である。適切なIフレームのエントリを指すだけで、そのヒントファイルから前記データを入手することができる。
以下の説明は、使用可能なデータ情報のタイプのいくつかの例を提供する。「開始」データを収集することができる。開始データは、Iフレームに関連付けられたPESヘッダを含むトランスポート・ストリーム・パケットのオフセットである。これは、Iフレームの開始点のオフセットである場合がある。「終了」データも収集することができる。終了データは、ファイル内のIフレームの最後のオフセットである場合がある。これは、最後のIフレームのビデオデータの通過地点でのオフセットである。前記開始オフセットと終了オフセットの間に、他の非ビデオのトランスポート・ストリーム・パケットがファイル内に存在可能であると理解される。これらのパケットをストリーミング前にヌルに変換することができる。
「サイズ」データも収集することができる。サイズデータは、(終了から開始を引いた)差分すなわち送信可能であるIフレーム全体を含むデータ量として算出することができる。「タイムコード」データも収集することができる。タイムコードデータは、ストリーム中の現在のタイムコードを後にクエリすることになる他のコンポーネントとのインタフェースを提供することができる。前記タイムコードはGOPヘッダの中にある場合があり、ヒント過程中に抽出することができる。
「ファイルPCR」データも収集することができる。ファイルPCRデータを前記開始オフセットに関連付け、ストリーミングソフトウェアがPCR再スタンプを実行できるようにすることができる。「ファイルDTS」データを収集することができ、これを元アセットにあるIフレームに関連付けることによりDTS再スタンプを実行し、通常再生からトリックモードへ移行して再び通常再生に戻る間の滑らかなバッファ移行を実行することができる。「ファイルPTS」データを収集することができ、これを元アセットにあるIフレームに関連付けることによりプレゼンテーション・タイム・スタンプ(Presentation Time Stamp:PTS)を実行し、全移行のフレーム間隔を維持することができる。
「CC開始」および「CC終了」データを収集することができる。CC開始データは、その開始パケットのトランスポートストリーム継続カウンタである。CC終了は、その終了パケットの継続カウンタである。CC開始およびCC終了データは、CC再スタンプを実行するために一部の実施形態で必要な場合がある。
「次フィールド」データを収集することができる。次のフィールドデータを用い、「repeat first field」フラグを使ってIフレームをエンコードし、2つでなく3つのフィールドをIフレームが含むようにすることができる。移行中にフィールドのシーケンスを維持するために、移行の後に第1のダミーBフレームにフィールド調整機構を用いることができる。
制御変数の初期化に関しては、一部のストリーミング変数を追跡し続けることが好ましい場合がある。例えば、ストリームオフセット、ストリームPCR、ストリームDTS、およびストリームPTSである。前記ストリームオフセットは、そのストリーミングソフトウェアが作成する合計データ量である場合があり、そのファイルオフセットとは異なるものである。前記ストリームPCRは、PCR再スタンプ機構の後に出力ストリームで観察される実際のPCRである場合がある。前記ストリーミングソフトウェアは一定のビットレートで動作するので、ストリームオフセットのインクリメントをストリームPCRインクリメントと関連付けることができる。
一部のフィールドを初期化することができる。例えば、「フレーム」をフレーム数とすること、あるいは現在トリックモードパケットのGOPサイズとすることが可能である。最初は前に算出された数qに設定しておき、この数を必要(例えばPフレームの挿入の機構)に応じて増していくことができる。qを浮動小数点または変数として実行する場合、下記に示すエラー伝播機構に基づいて前記フレーム数を算出することができる。
Figure 0004729570
パケット・サイズ・フィールドは、合計パケットサイズを表す。前記パケットサイズは前パケットのタイムスロットに基づき、非整数のTSパケットを作成する。このパケットサイズは前トリックモードパケットからの超過分を考慮するエラー伝播機構によって修正することが可能である。この時点で、例えば188バイト(トランスポートストリームのパケットサイズ)または1316バイト(UDPパケットサイズを超過するMPEG2)など、ある程度の粒度をトリックモードパケット全体に実行する場合がある。
そのストリーミングエンジンの状態によって、最初のトリックモードパケットの扱いが異なる場合がある。例えば、前記ストリーミングエンジンが休止中(すなわち一時停止および停止)であれば、そのデコーダは休止中なのでバッファアンダーフローが生じる危険がない場合がある。そのパケットサイズをゼロに設定し、当該調整方法によって修正することができる。あるいは、そのストリーミングエンジンが再生中であれば、通常の速度で表示された最後のフレームのDTSと現在PCRの差分に基づいて最初のタイムスロットを算出することができる。言い換えれば、そのバッファから「通常再生」データが実質的に取り除かれた後に、最初のトリックモードパケットをデコードすることができる。これは、「再生」から「トリックモード」への移行に使用される「デバッファリング(debuffering)」法である場合がある。
この例では、前記トリックモードパケットサイズを算出するシーケンスは、前パケット(frames[j−l]*f)のタイムスロットに基づく。前記パケットサイズおよびパケット超過分は浮動小数点または変数であり、次のように算出することができる。
Figure 0004729570
パケット超過分は、トリックモードパケットに対するある特定の粒度の実行に使われる制御変数である場合があり、Pフレーム挿入法によって用いることにより、パケットサイズを拡張する場合にその粒度を維持することができる。データサイズは合計データサイズを表し、Iフレーム、ダミーBフレームおよびPフレーム、PAT、PMT、および前記トリックモードパケットの構築に関連付けられるオーバーヘッドを含む。データサイズは、以下のように算出することができる。
Figure 0004729570
「Bw_balance」は、バッファ調整に利用可能な帯域幅を表す。これは、前記packet_sizeと前記data_sizeの差分である場合がある。未使用の帯域幅をヌルで満たし、そのストリームのビットレートを維持することができる。
一部の実施形態では、トリックモードパケットの最小限のサイズが課される。これは、調整のために利用可能な帯域幅を、算出された実際に利用可能な帯域幅より少なくすることによって達成できる。一部の実施形態では、前記トリックモードパケットのサイズを決定するときに、ハードウェアの制限によって課されるトリックモードパケット間の最小「シークタイム」または最小遅延のようなハードウェア制約が考慮される場合がある。また、qはトリックモード帯域幅の可能な使用方法についての一部の仮定を変えるので、qの計算にこれらの考慮事項が含まれる場合がある。
加えて、調整に利用可能となるヌルパケットに特定の粒度が課される場合があり、例えばUDPパケットのトランスポートストリームに対して1316の粒度が課される。これは、ストリーミングソフトウェアまたはハードウェアの具体的な実装に依存する場合がある。利用可能な帯域幅は以下のように算出することができる。
Figure 0004729570
Bw_balanceは、負の値は超過サイズのパケットを表すものと仮定することが多い。前記負の値は、そのトリックモードパケットに不足しているため他のトリックモードパケットから取り出す必要のある帯域幅の量である場合がある。これは、小パケットからの利用可能な帯域幅を使い、大パケットが必要とする帯域幅を均衡することによって達成することができる。その統計解析を用い、その調整枠にある利用可能な帯域幅の全体的なバランスが、前記のパラメータεに依存して正(Σbw_balance[i]>0)となるようにすることができる。
「ストリームオフセット(Stream offset)」は、パケットに期待される現在ストリームのオフセットである。前記現在パケットが最初に送信されるものである場合、そのパケットは上述のようにストリーミングエンジンから取り出されるストリームオフセットである場合がある。
Figure 0004729570
「ストリームPCR(Stream PCR)」は、ディスクから検索したビデオデータの正確なPCR再スタンプをするために必要な場合がある。
Figure 0004729570
「ストリームDTS(Stream DTS)」は、そのトリックモードGOPの一部として送信されるIフレームのデコード時間を表す。DTSおよびPTSに300を掛けることにより、それらをPCRと同じ時間ベースにすることができる。再生からトリックモードへの移行がある場合は、前記DTSを2分の1フレーム修正することによって前述のようなフィールド調整を行う必要がある場合がある。そのような移行がない場合は、前記トリックモードパケットDTSは次のように算出される。
Figure 0004729570
「ストリームPTS(Stream PTS)」は、そのIフレームの正確なプレゼンテーションタイムを次のように表す。
Figure 0004729570
「バッファレベル」は、そのデコーダでの最大バッファレベルである場合があり、前記デコーダがビデオデータの最終ブロックを受信したときに達成され得るものであり、そのオフセットは次のように算出される:peak_offset[j]=strean\_offsetQ]+data_size[j]。
前記バッファは、前GOPからのいくつかのダミーBフレームおよびPフレームを含むことができ、最大バッファレベルを次のように算出することができる。bufferJevel[j]=size[j]+(frames[i]−l)*P+(frames[i−l]−l)*P。現在トリックモードパケットの伝送中に前GOPからのダミーBフレームおよびPフレームが消費されるので、実際のバッファレベルは上記数値より低くなる場合がある。前記バッファレベルは、オーバーフロー対策として多めに予測される場合がある。現在トリックモードパケットのDTS(すなわちIフレームDTS)で、前GOPからのデータは消費済みである場合があり、その場合、そのバッファレベルは次のように算出することができる:bufferJevel[j]=size[j]+(frames[j]−l)*P。
図2は、デコードバッファの経時変化を図示する。本発明の実施形態は、Iフレームがデコードされる前に、DTS[j]によって与えられた時点で前記バッファレベルを制御することができる。これは、バッファ調整によって前記バッファレベルのピークがこの位置に移動するからである。前トリックモードパケットからのダミーBフレームおよびPフレームのサイズは比較的小さく、しかも特に前記Iフレームのサイズは前述したように多めに予測されているため、そのデコード時間を表す「Stream DTS」を使う式を、リスクを伴わずに用いることができる。あるいは、そのバッファがオーバーフローに到達するのを確実に防ぐために、「Stream offset」が現在ストリームである式を使うことができる。
説明したように、図5は、利用可能なタイムスロットインターバルを再配列するためにトリックモードパケットをどのように調整するかを図示している。説明したように、当該制御変数bw_balancel[j]が負であるということは、最初に保留したタイムスロットでそのパケットを伝送できないことを示す。本発明の進歩的な方法は、図5が示すように、前記パケットサイズを変更および拡張し、前パケットからの利用可能な帯域幅を消費すると同時に、前記パケットを短縮する。
前記パケットサイズを変更および拡張し、前パケットからの利用可能な帯域幅を消費すると同時に、前記パケットを短縮するCコードの例を以下に示す。
Figure 0004729570
このコードセグメントは、利用可能な帯域幅をその調整枠内で再配列させることができ、そのトリックモードパケットのデコード時間(DTS)が期限切れになる前に、それらを完全に伝送させることができる。
さらに、帯域幅の再配列のほかに、バッファレベルも考慮することが望ましい場合がある。また、一部の実施形態では、最初のトリックモードパケットのbw−balance[j]は負である場合があり、それがそのシーケンスにおける最初のパケットであるため、割り当てる帯域幅の元となる前パケットがない場合がある。以下のように、Pフレーム挿入および移行法を使用することができる。さらに、当該制御法は各トリックモードパケットのパラメータを計算するが、必ずしもそのストリームを生成するとは限らない。これは、前記トリックモードストリームを生成するための調整法を用いるストリーミングエンジンによって達成される。
図6は、トリックモードパケットの変化がバッファレベルに与える影響を表す図である。図6はトリックモードパケットの変化に対してバッファレベルが受ける影響を説明するものであるが、一部の実施形態では、他の帯域幅の制御法および他のデータ操作法はバッファ制御を必要とする場合があると理解される。
図6が示すように、上の枠600は、そのトリックモードパケットを変更する前のバッファレベルを反映しており、下の枠601は、帯域幅の制御に従って前記トリックモードパケットを変更した後のバッファレベルを反映している。前記上の枠600が示すように、図のパケット602はポイント603(すなわちそのデコード時間切れ)でのDTSの後まで完全に受信されない。前記トリックモードパケットの変化によって、DTSで最大バッファ・ストレージ・レベル604が作成される。さらに、最大バッファレベルを、変更されたトリックモードパケット605のデータ量と同等にすることができる。その差分(data_size[j]−packet_size[j])は、DTS[j−l]の時点でそのデコーダバッファにて準備され、前記トリックモードパケットがデコードされる前にその完全なバッファが可能となる。
次のコードは、最大バッファレベルの予測の一例に過ぎない。
Figure 0004729570
バッファレベルは、超過サイズのフレーム(すなわち保留タイムスロットを超過するサイズのフレーム)が送信される度に増す場合がある。超過サイズのフレームの長いシーケンスを調整するときに、バッファオーバーフローが生じる場合がある。利用可能なタイムスロットより大きいデータ量がいったん決定されたら、そのバッファオーバーフローを取り込むためのアクションを採ることが望ましい。これは、様々な方法を任意に用いて達成することができる。以下の例は、本実施形態で考えられるすべての方法を排除することを意味するものではない。
バッファオーバーフローを処理する1つの方法は、Pフレーム挿入を含む場合がある。Pフレーム挿入はPフレームを追加するものであり、よって、付加的な帯域幅を生成するために前GOPのサイズを拡張する。付加的Pフレームの挿入を行う方法は多数ある。付加的な帯域幅を生成するためにPフレームを挿入する1つの方法について説明する。しかし、ここで開示する実施形態は、この方法に限定されない。以下は一例である。
大型のトリックモードパケットを持つ3.75メガビット/秒のビデオストリームを有するトリックモードストリームを伝送するには、6つのフレーム期間が必要である場合がある。しかし、そのタイムスロットは前パケットのGOPサイズによって決定されるため、4フレームしかないという場合がある。上述したように、前記パケットを変更し、2フレーム期間拡張して、伝送に必要な付加的期間を取り込むことができる。説明したように、前記トリックモードパケットを2フレーム分変更することにより、その前パケットのピーク・バッファ・レベルが約30kb増す場合がある。100kbというサイズのビデオバッファおよび90kbというサイズの前パケットの場合、さらに30kbのバッファを試みることによってバッファオーバーフローが生じることになる。
1実施形態では、ダミーPフレームを追加することができる。例えば、各々がPフレームにつき約1kbである2つの余分なPフレームを追加すると、その前GOPサイズを6に上げることができる。そのバッファレベルは92kbまで2kbずつだけ増し、100kbという制限内に留まる。前記前GOPに2つの付加的ダミーPフレームを加えることにより、現在パケットサイズは拡張され、「超過サイズ」パケット全体の伝送が可能となる。言い換えれば、この方法は、前のフレームを画面に2フレーム期間多く保留することにより、前記超過サイズフレームの完全な伝送を可能にするのである。さらに、挿入された各付加的Pフレームは後続のトリックモードパケットを約1フレーム期間拡張することができるので、付加的な帯域幅を得ることが可能となる。この例では、各々約1kbのダミーPフレームが、1フレーム期間に伝送可能なデータ量である約15kbの帯域幅を生成する。
また、ダミーPフレームを挿入することにより、そのIフレームレート全体を減少することができ、その調整枠を1フレーム拡張することができる。バッファオーバーフローが検出される度に余分な1フレームを挿入することができるコードセグメントの例を以下に示す。
Figure 0004729570
また、一部の実施形態は、例えば少なくとも1つのトランスポート・ストリーム・パケット(例えば典型的に188バイト)など、トリックモードパケットの粒度の解析を考慮する場合もある。Pフレームの挿入によって生成される帯域幅は、次の等式によって決定される: インクリメント=(b/8)*(l/fr);
上記の例において、インクリメントは15,625バイトである。各トリックモードパケットのサイズをエラー伝播法によって元々決定したので、同様の方法を、より正確なメモリ量を計算するために考慮することができる。例えば、トリックモードのGOPサイズをq=4、ビデオバッファのサイズを110kb、トリックモードのデータサイズを25kb、90kb、40kb、70kb、80kb、80kb、および80kb、パケット粒度を1316バイト(例えば1つのUDPパケットに7つのトランスポート・ストリーム・パケット)として、これを決定することができる。
算出されるタイムスロットは62,500バイト=4*15,625バイトとなる。よって、このエラー伝播法は、61852、61852、63168、61852、61852、63168、61852というパケットサイズのシーケンスを生成することができる。また、この方法は、35532、−31584、21056、−10528、−21056、−19740、−21056というbw_balance値を持つ0,61852、123164、186332、248184、310036、および373204というパケットオフセットを生成することができる。トリックモードのデータサイズと同一であると最初に予測されたバッファレベルで、最終パケット(指数6、0ベースの指数)から始まるバッファ調整を適用することにより、以下に示すようにそのヌルサイズを差分(packet_sizeからdata_sizeを減算して得られる差分)として算出することができる。(注記:ここではタイムスタンプは除外される(PCR、DTS、およびPTS))。
Figure 0004729570
第2の段階では、以下が行われる。
Figure 0004729570
この時点で、余分なダミーPフレームをトリックモードパケット4に挿入し、そのGOPサイズを5に変更することができる。Pフレームサイズを1316バイトと仮定すると、以下のシーケンスが提供される。
Figure 0004729570
挿入された前記Pフレームによって、以下の付加的な帯域幅を提供することができる。
Figure 0004729570
粒度が問題となる実施形態では、パケットサイズに対して上述のものと同じエラー伝播法を用い、新しいGOPサイズに基づいてパケットサイズを再計算することができる。
図7は、トリックモードストリームを作成するために使用可能なバッファ最適化の方法を図示する。図7が示すように、調整が必要なパケットは斜線模様で示されており、調整に成功したパケットは点描模様で示されている。上の枠700は、このバッファ最適化法が採用される前の、最初の計算でのトリックモードパケットを示す。第2の枠701は、最後の超過サイズフレームがどのように拡張および変更され、その前フレームがその利用可能な帯域幅を消費したかを示す。第2の枠701も、同一のパケットの変更がどのようにそのバッファレベルに影響し得るかを示す。第3の枠702は、調整に成功したパケットを示す。図8は、これらの方法を用いて生成されたトリックモードストリームの出力の例を提供する。
Iフレームベースの方法は「低遅延」モードで機能可能であり、従ってそのデコーダでバッファレベルが低く維持されると理解される。通常再生で映画を再開するために、前記デコーダはデータの0.5sから1.0sをバッファする場合がある。バッファレベルの相違がバッファアンダーフローを引き起こすことにより、画面の横揺れまたはちらつきが生じることがあり、一時的に完全に暗黒となることさえあり得る。
ファイルベースのトリックモードは、トリックモードファイルと正規ファイルの間で切り替わる場合がある。この方法は、その移行点でのバッファレベルの一致を要求することができるので、トリックモードファイルの生成時にバッファレベルを制御することができる。前記移行点で前記バッファレベルを調整するために、付加的ロジックを追加することができる。
1実施形態では、通常再生の再開時に、当該バッファ管理方法はより精度の高い移行のためにバッファレベルを増すことによって、最後のトリックモードフレーム(典型的に2〜4フレーム)を修正する動作をすることができる。このいわゆる「スプライシング(splicing)」法は前記最後のフレームの速度を下げ、再バッファリングに使用可能な超過帯域幅を生成し、ビデオバッファを通常レベルに戻すことができる。動きの感覚を中断しない方法でこの方法を実施することができるので、その移行は比較的シームレスである。
再生シーケンス後にトリックモードの再生を開始するために、ビデオバッファに保管可能な再生データはそのデコーダによって消費される。これは、そのトリックモードストリームのデコードの開始時に起き、前記ビデオバッファに存在するデータは、そのトリックモード・ストリーミング・エンジンによって生成されるデータである。最初のトリックモードパケットを、そのDTSを再生中の最後のフレームのDTSとフレーム間隔に設定して送信することができる。また、そのPTSを、表示されている最後のフレームに1フレームを足したPTSに設定することができる。前記最後のフレームの「repeat first field」フラグを1に設定すれば、PTSおよびDTSは1フレーム期間の半分でインクリメントする。
前記デバッファリング法の実施は、その最初のトリックモードパケットのサイズを現在位置(PCR)からその再生バッファが空になるまで伝送可能なデータ量として設定することによって可能であり、その最初のトリックモードフレームは、次の等式を用いて予測される(例えば上述のDTS):
frame_size[0]=((SrreamDTS−StreamPCR)/27000000.0)*(bI/8)。
一部のビデオストリーム(例えばMPEG2)は、3:2のプルダウンを実行する方法として、「repeat first field」および「top field first」といったいくつかの特別なフラグを使う場合がある。それらのストリームでフィールド継続性を維持するために、ある特定の方法をその移行シーケンスに適用することができる。
例えば、1つの方法は、表示された最後のフレームで「top field first」が0(最初にボトム)に設定され、かつ「repeat first field」が0に設定されている場合に使うことができる。これは、その最後のフレームが前記トップフィールドの表示を終了したことを示す。また、前記最後のフレームの「top field first」が1(最初にトップ)、その「repeat first field」が1に設定されていれば、表示された最後のフィールドがそのトップフィールドであったことを示す場合がある。いずれの場合も、次に期待されるフィールドは、そのボトムフィールドである場合がある。これらの方法は「top field first」であると仮定するので、フィールド調整フレームを挿入することができる。
これらの方法は、ダミーBフレームである場合があるその最初のトリックモードフレームで「top field first」というフラグを0に設定し、「repeat first field」というフラグを1に設定することによって実行可能である。このシーケンス(ボトム、トップ、ボトム)は、その再生シーケンスからのフィールドシーケンシングを維持するだけでなく、後続フレームを前記トップフィールドで開始することを可能にする。
このフィールド調整法はそのGOPサイズを2分の1フレーム(すなわち1フィールド分)拡張する。ディスクから読み込まれたすべてのIフレームが確実に正しいフィールドシーケンシングを有するようにするために、前記Iフレームがディスクからメモリに読み込まれた後に実行される再スタンプ法によって、前記Iフレームにおいて前記「top field first」フラグを1に設定し、前記「repeat first field」フラグを0に設定することができる。
一部の実施形態では、その再生シーケンスが比較的低いバッファレベルで動作する場合、その最初のトリックモードパケットを伝送する時間が十分でない場合がある。前記再生シーケンスからの最後のフレームが消費される時点で、前記最初のトリックモードバケットがまだ伝送中である場合がある。一つの解決策は、前記トリックモードパケットの開始部分にPフレームのシーケンスを添付することであり、これは前述のPフレーム挿入法に類似している。これらPフレームはそのトリックモードGOPの一部である必要はなく、その前GOP(すなわち再生シーケンス)を拡張し、いくつかのフレーム間隔のためにそのデコーダに最後の画像を繰り返させるので、そのトリックモードパケットを完全に伝送することができる。
さらに、トリックモードから通常再生に戻る移行に用いられる方法は、そのトリックモードシーケンスの最後のGOPを拡張して利用可能な余分な帯域幅を生成することによって達成可能である。前記利用可能な帯域幅は、例えば高遅延モードで動作している新しい再生シーケンスからのビデオデータの再バッファリングに用いることができる。
前記再バッファリング法は、そのデコーダがダミーPフレームの再生に使用されている間、そのバッファが前記新しい再生シーケンスを保管できるよう十分な時間にわたりその最後のトリックモードパケットを保持することを試みる。前記再バッファリング法は、前記最後のトリックモードパケットのGOPサイズを増すことによって、その帯域幅を徐々に生成することができる。選択されたGOPサイズが4であれば、前記最後のトリックモードパケットのGOPサイズは5,7,10等となり、視覚的印象としては完全停止ではなくスローダウンとして目に映る。
利用可能な帯域幅の合計が必要な帯域幅以上になるまで前記トリックモードパケットを挿入することが可能であり、よって、その再生シーケンスの完全な再バッファリングが可能になる。前記最後のトリックモードパケットについて、そのIフレーム選択機構も変わる場合がある。これは、リクエストされた再生オフセットから離れすぎないようにするために必要である場合がある。その指数インクリメントを最小の1.0に設定することにより、各移行トリックモードパケットがそのストリームを約1/Iだけそのリクエストされた位置から離れて移動するようにすることができる。典型的な結果は、再バッファリングを可能にするには約3〜5の移行パケットが必要であることを示しており、これはI=2Iフレーム/秒であるストリームでのリクエストされた再生位置からわずか1.5〜2.5sだけ離れていることを表す。
別の可能な方法は、正確な再生オフセットから始まるトリックモードパケットのシーケンスの利用可能な帯域幅を算定することであるが、この場合は指数インクリメントを−1.0として逆戻りする。その純帯域幅が必要な帯域幅以上になると、最後のパケットはその移行シーケンスで使われる最初のパケットになる。この方法により、その移行シーケンスは確実にリクエスト通りの再生オフセットで終了することが可能である。
同じ方法で、トリックモードが負の速度(すなわちREW)で再生されると、十分な帯域幅が利用可能になるまでIフレームが前方(インクリメントは+1.0)から選択される場合がある。ここで、移行パケットのシーケンスを、実際の再生シーケンスが始まる位置の逆向きに現在位置から取り出すことができる。移行トリックモードパケットのシーケンスがいったん決定され、このバッファ最適化法にロードされると、データサイズを0に、トリックモードパケットのサイズを0に設定し、bw_balanceをバッファリングに必要なデータ量に設定して、この調整法に「仮想トリックモードパケット」を挿入することが可能となる。
前記バッファ最適化法の使用により、前記トリックモードパケットの利用可能な帯域幅の消費および前記移行パケットの変更が生じ、新しい再生シーケンスのためのスペースが生成される。この方法は、図8の下のグラフが示すような、6,7,8,9というGOPサイズの4つの移行パケットが観察され得るバッファ移行を可能にする。この方法を用いてトリックモードから再生に移行することにより、そのフレームシーケンスの中断を起こすことなく、「スローダウン」の印象を与えることができる。
上述の方法を早送りおよび巻き戻しに利用することができる。この例では、ビデオ・オン・デマンド(VOD)サーバは、例えばユーザがFFボタンを解除したときに、セットトップボックスからフィードバックを受信することができる。しかし、前記サーバのバッファ管理アルゴリズムは、通常再生に戻る移行中に遅れを起こす場合がある。そのバッファを満たすために、入ってくるフレーム数が再生中のフレーム数を超過し、ユーザからの信号の受信後にバッファを満たすためにフレームの伝送が強化される場合がある。その時点で、通常のストリームに切り替わる場合がある。
当該方法は、いくつかの余分なBフレームおよびPフレームを生成することによって最後のフレームの速度を下げることで、そのデコーダのバッファを満たすものであり、前記BフレームおよびPフレームは、比較的小さく容易に生成され、かつ表示時間未満に伝送可能なものである。「スローダウン」は、毎秒送信されるIフレーム数を減少することができるため、一定の30fpsであることが通常要求される実際のフレームレートへの影響はない。あらゆるIフレームとともに送信されるBフレームおよびPフレームの数(これらは比較的小さい)を増やすことにより、平均ビットレートを前記トリックモード法によって減少することができる。次に、余分な帯域幅を使って、そのバッファを通常レベルに修復することができる。
いくつかの例では、一時停止および再開モードは通常のトランスポートストリームを利用する移行であるため、これらに上述の方法を使わない場合がある。一方、ジャンプでは、その移行点でバッファレベルが異なる場合があるため、バッファ調整が必要である。また、トリックモードに適用されたものと同じ方法をジャンプに適用することもでき、これは、デバッファリングを可能にすることによって、または再バッファリングを可能にするためにダミーBフレームまたはPフレームを挿入することによって行われる。バッファ制御は、PCR、DTS、PTSといったストリームパラメータの十分な調整に関連するため、これら制御変数の一致を確保することによって速度移行およびジャンプを実施する必要がある場合がある。
その移行点後のバッファレベルが、その前のバッファレベル未満である場合、ヌルのシーケンスを挿入することによってバッファレベルを十分なレベルにすることができる。この方法は、前記移行後の元のストリームの差分(DTSからPCRを引いた差分)を維持する。この新シーケンスのデコードは、その前シーケンスの最後のフレームがデコードされてから約1フレーム後に始まる。フレームのシーケンスに中断が入らないようにするために、前記移行後の最初のパケットのPTSを、その前シーケンスの最後のフレームが表示されてから1フレーム後に起こすことができる。
このジャンプ法は、いくつかのGOPが開いている場合があることを考慮することもできる。言い換えれば、前記新しい再生シーケンスのIフレームの前に表示される最初のBフレームは、伝送された前GOPからのフレームをフォワードレファレンスすることができる。さらに、前記ジャンプ法は、フィールドシーケンシングを修正し、シーケンスに2つのトップフィールドまたは2つのボトムフィールドが存在しないようにすることができる。間違ったフィールドシーケンシングは、例えばセットトップボックスに、好ましくない画面の横揺れを起こす場合がある。
前記ジャンプ法は、その前GOPの完全な送信を確保するスプライシング法を含むことができ、それにより、そのデコーダの受信バッファに不完全な画像またはシーケンスが存在しないようにする。また、前記スプライシング法は、その新シーケンスのDTSからPCRを引いた差分が現在ストリームのDTSからPCRを引いた差分(すなわち古いシーケンスからのもの)より小さいことを判断し、それにより、そのバッファレベルの低下が必要であることを判断することができる。さらに、前記スプライシング法はそのIフレームを検索し、ダミーBフレームのシーケンスを添付することができる。ダミーBフレームの数を、そのIフレームの前の元のシーケンスにあるBフレームの数と一致させることができる。これにより、開いたGOPに関して説明した問題を避けることができる。
前記スプライシング法は、「top field first」フラグおよび「repeat first field」フラグを最初のダミーBフレームの中で適切に設定することによってフィールドシーケンシングを調整することができる。フィールド調整が必要であれば、DTSおよびPTSを適宜調整することができる。この例では、その新しい再生シーケンスは1つのIフレームを有することができ、次にBフレームを再スタンプして前記新しい再生シーケンス(PBBPBBP等)の残りと一致させることにより、中断を避けることができる。前記スプライシング法は、バッファレベルを調整するために挿入可能なヌルの量を、次の等式を用いて算出する。
Figure 0004729570
前記スプライシング法は、ストリームの継続性を維持するために前記新シーケンスに追加する必要のある再スタンプオフセットを、次の等式を用いて算出することができる。
Figure 0004729570
前記PCR_restampの量をPCRに加え、(PCR_restamp/300)の量をそのプログラムに関連するオーディオを含むエレメンタリストリームにあるDTSおよびPTSに加えることにより、その移行点に続くストリーミングデータを再スタンプすることができる。
図9は、このスプライシング法がどのように働くかを図示する。その新シーケンスでのバッファレベルが、その前シーケンスでのバッファレベルより高い場合は、別の方法を採用することができる。例えば、当該Pフレーム挿入法およびトリックモードから再生への移行で説明した同様のプロセスを用いて最後の画像を「フリーズ」することにより、前記新シーケンスをバッファすることができる。
前記再バッファリング法は、ヌルパケットの短いシーケンスが続く多数のPフレームを挿入する工程を含む場合がある。その前シーケンスの終了直後に、StreamPCRで始まる前記新シーケンスが伝送される場合、StreamPCR+(DTSa−w−PCRnew)によって与えられるインスタントで最初のフレームをデコードすることができる。前記新シーケンスの最初のフレームは、StreamDTSによって与えられるインスタントでデコードされるものと期待され、これは、その前シーケンスからの最後のデコード時間後の1フレームである。これを等式によって表すと、StreamPCR+(DTSnew−PCRnew)>StreamDTSまたは(DTSnew−PCRnew)>(StreamDTS−StreamPCR)となり、次にインターバルがあり、ここでそのデコーダはデコードを停止する(すなわちバッファアンダーフローである)。
フィールドが予測した、静止PフレームおよびBフレームまたはダミーフレームを「フレーム」として画像構造でエンコードすること、およびマクロブロックを「フィールド」という予測タイプでエンコードすることが可能であると理解される。これは、Pフレームのマクロブロックを、動きベクトル=(0,0)である「トップフィールド」をフォワードレファレンスする「トップフィールド」および動きベクトル=(0,0)である「トップフィールド」をフォワードレファレンスする「ボトムフィールド」でエンコードすることによって達成可能である。Bフレームのマクロブロックは、動きベクトル=(0,0)である「トップフィールド」をバックワードレファレンスする「トップフィールド」および動きベクトル=(0,0)である「トップフィールド」をバックワードレファレンスする「ボトムフィールド」でエンコードすることができる。
図10は、データストリーム通信のためのシステムを図示する。図10が示すように、セットトップボックス1002はデータサーバ1003および帯域幅調整モジュール1004と通信中である。帯域幅調整モジュール1004は、指定タイムスロットが前記データストリームを処理するのに十分な大きさでない場合に、前記データストリームの一部(例えばトリックモードパケット)を別のタイムスロットに移動することができる。この場合のトリックモードパケットの例として、毎秒約10フレームの速度で通信可能な一連のIフレームが含まれる。また、帯域幅調整モジュール1004は、前記トリックモードパケットにダミーデータ(例えばBフレームおよびPフレーム)を挿入することができる。
また、システム1000は、セットトップボックス1002と通信中の圧縮/解凍コーダ1005を含むことができる。圧縮/解凍コーダ1005は、MPEG標準に沿って動作可能である。また、システム1000は、セットトップボックス1002からの画像を表示するためのディスプレイ1006、およびトリックモード再生(例えば早送り、巻き戻し、再生、一時停止、および停止)を開始するための、セットトップボックスと通信可能なユーザインタフェース1007を含むことができる。ディスプレイ1006は、従来のテレビである場合がある。ユーザインタフェース1007は、ワイヤレス方法を用いてセットトップボックスと通信することができる。ユーザインタフェース1007は、赤外線(IR)、無線周波(RF)、または他の任意の適切なタイプのリンクのようなワイヤレスリンクを使って通信可能な従来のリモートコントロールである場合がある。本書で開示する方法、装置、およびシステムは、例えばパーソナル・デジタル・アシスタント(PDA)、ラップトップ、および携帯電話など、ビデオデータを表示可能なコンピュータ、またはポータブル若しくは携帯装置と共に使用することもできる。
図11は、データストリーム通信のための方法のフロー図である。1101では、第1のデータストリームの第1のタイムスロットであり、1102では、第2のデータストリームの第2のタイムスロットである。1103で、前記第2のデータストリームが前記第2のタイムスロットより大きいかどうかが決定される。前記第2のデータストリームが前記第2のタイムスロットより大きくない場合、1104において、前記第2のデータストリームは前記第2のタイムスロットで伝送される。一方、前記第2のデータストリームが前記第2のタイムスロットより大きい場合、1105において、前記第2のデータストリームの一部が前記第1のタイムスロットに移動される。1106で、前記第2のデータストリームは伝送される。
さらに、上述の方法は、さらに、前記移動部分の関数としてデータストレージ量を制御することができ、前記第2のデータストリームのサイズおよび前記第2のタイムスロットを監視することができる。これらの方法は、MPEG標準規格に準拠して前記データストリームを圧縮および解凍し、前記第1のタイムスロットの未使用の帯域幅を前記第2のタイムスロットに再分配することができる。上述の方法は、前記データストリームを監視することにより、前記データストリームを通信するための最大速度を決定することができる。
図12は、データストレージまたはバッファレベルの制御方法のフロー図である。1201において、Iフレームを有するデータストリームにデータフレーム(例えばBまたはPフレームのダミーフレーム)が追加される。1202において、前記データストリームの伝送速度が変更される。1203において、前記第1のモードから第2のモードへの切り替えを求めるコマンドが受信され、1204において、第1のモードから第2のモードへの移行が行われる。前記第1、第2のモードは、トリックモード再生モードおよび/または通常再生モードである。
本発明の開示の真の範囲は、本明細書にて図を用いて開示した実施形態に限定されない。例えば、効率的なトリックモードプレイバックを行うための前述の様々な方法の開示を、別個に用いること、あるいは相互の組み合わせによって用いることができる。さらに、開示した前記実施形態は、様々な画像サイズ(例えばHDTV)およびフレームレートで動作するものであると理解される。これらの考えられる方法は、ビジュアルアーチファクト、ブラックスクリーン、アンダーフロー、バッファオーバーフローに典型的に伴うマクロブロッキング、あるいはバッファ管理なしに実行される移行に一般に生じる中断を起こすことなく、異なる再生速度と通常再生速度との間の滑らかな移行を可能にするものであると理解される。また、これら開示された方法の一部として、異なるダミーBフレームおよびPフレームのエンコーディングを使うことができる。例えば、一部の実施形態では、フレーム予測されたBフレームおよびPフレームを「静止」フレームとして使う代わりに、上述したように、異なるエンコーディングを使う場合があり、これは本発明の範囲に含まれる。これは、インターレース画像のような特定のタイプのフォーマットのために提供され得るものである。
さらに、当業者であれば理解するように、本明細書で開示された発明の態様の多くは、メディアストリーミングまたはビデオ・オン・デマンドのために採用されるのでないソフトウェアまたはハードウェアソリューションとして、コンピュータシステムに適用可能である。同様に、これらの実施形態は、VOD(ビデオ・オン・デマンド)コンセプトを採用するシステムあるいは特定のタイプのコンピュータ、プロセッサ、スイッチ、ストレージデバイス、メモリ、アルゴリズム等を採用するシステムに限定されない。デジタルプロセシング機能、ネットワーキング機能、およびストレージ機能にかかるコストの急速な低下を鑑み、例えば、前記システムの本発明の動作を変えずに、ある特定の機能のためのプロセシングおよびストレージを、本明細書で説明した1機能的要素から別の機能的要素に移行させることは容易に可能である。多くの場合、本明細書で説明した実装の場所(すなわち機能的要素)は、単に設計者の好みの問題であり、絶対的な要件ではない。従って、限定されることが明示されていない限り、本発明の保護範囲は上述の具体的な実施形態に限定されることを意図しない。
図1は、ビデオ・バッファ・レベルの一例である。 図2は、対象画像群(Group of Pictures)の長さを増す方法の一例である。 図3は、ビデオフレームのシーケンスがバッファレベルに与える影響を図示するものである。 図4は、ビデオストリームの分布曲線である。 図5は、トリックモードパケット調整を図示するものである。 図6は、トリックモードパケットの変化がバッファレベルに与える影響を示す図である。 図7は、トリックモードストリームを作成するためにバッファの最適化が使用される方法を図示するものである。 図8は、トリックモード・ビデオ・ストリームの出力を提供するものである。 図9は、スプライシング法を図示するものである。 図10は、データストリームを通信するためのシステムである。 図11は、データストリームを通信するための方法のフロー図である。 図12は、データ・ストレージ・レベルの制御方法のフロー図である。

Claims (1)

  1. 帯域調整モジュールを有するシステムのためにデータストリームを通信する方法であって、
    (A)前記帯域調整モジュールにより、第1のデータストリームのための第1のタイムスロットを決定する工程と、
    (B)前記帯域調整モジュールにより、第2のデータストリームのための第2のタイムスロットを決定する工程と、
    (C)前記帯域調整モジュールにより、前記第2のデータストリームが前記第2のタイムスロットより大きい場合、当該第2のデータストリームの一部を前記第1のタイムスロットに移動する工程と、
    前記工程(C)は、
    前記帯域調整モジュールにより、前記第2のデータストリームのタイムスロット数、フレーム数、ビットレート及びフレームレートに基づき前記移動部分の量を決定する工程、
    を更に有し、
    前記第1のタイムスロットは前記第2のタイムスロットの前に生じる、
    ことを特徴とする方法。
JP2007522794A 2004-07-23 2005-07-22 トリックモードおよび速度移行 Active JP4729570B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US59050404P 2004-07-23 2004-07-23
US60/590,504 2004-07-23
PCT/US2005/026011 WO2006012496A2 (en) 2004-07-23 2005-07-22 Trickmodes and speed transitions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010276408A Division JP2011050117A (ja) 2004-07-23 2010-12-10 トリックモードおよび速度移行

Publications (2)

Publication Number Publication Date
JP2008507922A JP2008507922A (ja) 2008-03-13
JP4729570B2 true JP4729570B2 (ja) 2011-07-20

Family

ID=35057113

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007522794A Active JP4729570B2 (ja) 2004-07-23 2005-07-22 トリックモードおよび速度移行
JP2010276408A Pending JP2011050117A (ja) 2004-07-23 2010-12-10 トリックモードおよび速度移行

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010276408A Pending JP2011050117A (ja) 2004-07-23 2010-12-10 トリックモードおよび速度移行

Country Status (6)

Country Link
US (1) US20060146780A1 (ja)
EP (1) EP1772016A2 (ja)
JP (2) JP4729570B2 (ja)
KR (1) KR100868820B1 (ja)
CN (1) CN101010959B (ja)
WO (1) WO2006012496A2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006636A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Optimized digital media delivery engine
US7899924B2 (en) * 2002-04-19 2011-03-01 Oesterreicher Richard T Flexible streaming hardware
US20040006635A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Hybrid streaming platform
US9456243B1 (en) 2003-06-06 2016-09-27 Arris Enterprises, Inc. Methods and apparatus for processing time-based content
JP4409401B2 (ja) * 2004-10-08 2010-02-03 株式会社日立製作所 パケット転送装置及びストレージシステム
US20060098739A1 (en) * 2004-11-09 2006-05-11 Lsi Logic Corporation Video frame encoder driven by repeat decisions
US8145778B2 (en) * 2006-07-28 2012-03-27 Cisco Technology, Inc. Method and system for transitioning streamed digital video content between stream servers in a digital video network
JP4827669B2 (ja) * 2006-09-19 2011-11-30 株式会社ソニー・コンピュータエンタテインメント 動画再生方法および装置
KR20080035891A (ko) * 2006-10-20 2008-04-24 포스데이타 주식회사 움직임의 스마트 서치를 지원하는 영상 재생 장치 및 방법
US8009687B2 (en) * 2007-03-28 2011-08-30 Ixia Measurement of network performance in transporting packet streams
US8249141B1 (en) * 2007-07-13 2012-08-21 Sprint Spectrum L.P. Method and system for managing bandwidth based on intraframes
EP3511841B1 (en) * 2007-11-16 2021-07-21 DivX, LLC Chunk header incorporating binary flags and correlated variable-length fields
TW200923780A (en) * 2007-11-26 2009-06-01 Realtek Semiconductor Corp System and method for remote live pause
US8966103B2 (en) * 2007-12-21 2015-02-24 General Instrument Corporation Methods and system for processing time-based content
US8238341B2 (en) * 2008-04-25 2012-08-07 Chi Mei Communication Systems, Inc. Apparatus and method for processing voice over internet protocol packets
JP5322518B2 (ja) * 2008-07-08 2013-10-23 キヤノン株式会社 通信方法
WO2010051545A1 (en) * 2008-10-31 2010-05-06 Divx, Inc. System and method for playing content on certified devices
US9009337B2 (en) * 2008-12-22 2015-04-14 Netflix, Inc. On-device multiplexing of streaming media content
US8463108B2 (en) 2009-01-06 2013-06-11 Microsoft Corporation Client-side ad insertion during trick mode playback
JP5257319B2 (ja) 2009-10-09 2013-08-07 株式会社Jvcケンウッド 画像符号化装置及び画像符号化方法
KR101613241B1 (ko) * 2009-10-16 2016-04-29 삼성전자 주식회사 디스플레이장치 및 영상재생방법
US20110268427A1 (en) * 2010-04-30 2011-11-03 Brelay Herve Methods and apparatuses for a projected pvr experience
US8543724B2 (en) 2010-04-30 2013-09-24 Digital Keystone, Inc. Methods and apparatuses for a projected PVR experience
US20110271001A1 (en) * 2010-04-30 2011-11-03 Herve Brelay Methods & apparatuses for a projected pvr experience
US20120030723A1 (en) * 2010-07-27 2012-02-02 Motorola, Inc. Method and apparatus for streaming video
CN102118270B (zh) * 2011-03-04 2014-04-30 华为技术有限公司 一种度量用户体验质量QoE的方法及装置
EP2498494A1 (en) * 2011-03-11 2012-09-12 Thomson Licensing Decoder and method at the decoder for synchronizing the rendering of contents received through different networks
EP2536143B1 (en) * 2011-06-16 2015-01-14 Axis AB Method and a digital video encoder system for encoding digital video data
US20140344410A1 (en) * 2013-05-14 2014-11-20 Morega Systems Inc. Fixed-length segmentation for segmented video streaming to improve playback responsiveness
WO2015088265A1 (en) * 2013-12-13 2015-06-18 Samsung Electronics Co., Ltd. Storage medium, reproducing apparatus and method for recording and playing image data
US10804958B2 (en) 2015-02-24 2020-10-13 Comcast Cable Communications, Llc Multi-bitrate video with dynamic blocks
US10298475B2 (en) * 2015-07-24 2019-05-21 Nvidia Corporation System and method for jitter-aware bandwidth estimation
US10033709B1 (en) * 2017-11-20 2018-07-24 Microsoft Technology Licensing, Llc Method and apparatus for improving privacy of communications through channels having excess capacity
US20210096904A1 (en) * 2019-09-28 2021-04-01 Tencent America LLC Method and apparatus for a step-enabled workflow

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000175189A (ja) * 1998-12-07 2000-06-23 Univ Tokyo 動画符号化方法およびそれに用いる動画符号化装置
WO2002039744A1 (en) * 2000-11-10 2002-05-16 Prediwave, Corp. Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4800431A (en) * 1984-03-19 1989-01-24 Schlumberger Systems And Services, Inc. Video stream processing frame buffer controller
FR2582175A1 (fr) * 1985-05-20 1986-11-21 Alcatel Espace Procede et dispositif de telecommunications par satellite en acces multiple a repartition dans le temps
GB8829919D0 (en) * 1988-12-22 1989-02-15 Int Computer Limited File system
US5367636A (en) * 1990-09-24 1994-11-22 Ncube Corporation Hypercube processor network in which the processor indentification numbers of two processors connected to each other through port number n, vary only in the nth bit
US6400996B1 (en) * 1999-02-01 2002-06-04 Steven M. Hoffberg Adaptive pattern recognition based control system and method
US5857109A (en) * 1992-11-05 1999-01-05 Giga Operations Corporation Programmable logic device for real time video processing
US5768598A (en) * 1993-09-13 1998-06-16 Intel Corporation Method and apparatus for sharing hardward resources in a computer system
EP0790743B1 (en) * 1993-09-16 1998-10-28 Kabushiki Kaisha Toshiba Apparatus for synchronizing compressed video and audio signals
US5515379A (en) * 1993-10-18 1996-05-07 Motorola, Inc. Time slot allocation method
US5566174A (en) * 1994-04-08 1996-10-15 Philips Electronics North America Corporation MPEG information signal conversion system
US5638516A (en) * 1994-08-01 1997-06-10 Ncube Corporation Parallel processor that routes messages around blocked or faulty nodes by selecting an output port to a subsequent node from a port vector and transmitting a route ready signal back to a previous node
US5848192A (en) * 1994-08-24 1998-12-08 Unisys Corporation Method and apparatus for digital data compression
KR100197847B1 (ko) * 1994-11-11 1999-06-15 니시무로 타이죠 패킷데이타의 기록장치 및 재생장치
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
EP0716370A3 (en) * 1994-12-06 2005-02-16 International Business Machines Corporation A disk access method for delivering multimedia and video information on demand over wide area networks
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5793927A (en) * 1995-06-07 1998-08-11 Hitachi America, Ltd. Methods for monitoring and modifying a trick play data stream to insure MPEG compliance
US5925099A (en) * 1995-06-15 1999-07-20 Intel Corporation Method and apparatus for transporting messages between processors in a multiple processor system
US6112226A (en) * 1995-07-14 2000-08-29 Oracle Corporation Method and apparatus for concurrently encoding and tagging digital information for allowing non-sequential access during playback
US6138147A (en) * 1995-07-14 2000-10-24 Oracle Corporation Method and apparatus for implementing seamless playback of continuous media feeds
US6119154A (en) * 1995-07-14 2000-09-12 Oracle Corporation Method and apparatus for non-sequential access to an in-progress video feed
US5751951A (en) * 1995-10-30 1998-05-12 Mitsubishi Electric Information Technology Center America, Inc. Network interface
US5729292A (en) * 1995-12-21 1998-03-17 Thomson Multimedia, S.A. Optimizing performance in a packet slot priority packet transport system
US5815516A (en) * 1996-04-05 1998-09-29 International Business Machines Corporation Method and apparatus for producing transmission control protocol checksums using internet protocol fragmentation
US6088360A (en) * 1996-05-31 2000-07-11 Broadband Networks Corporation Dynamic rate control technique for video multiplexer
US5781227A (en) * 1996-10-25 1998-07-14 Diva Systems Corporation Method and apparatus for masking the effects of latency in an interactive information distribution system
US6166730A (en) * 1997-12-03 2000-12-26 Diva Systems Corporation System for interactively distributing information services
US6253375B1 (en) * 1997-01-13 2001-06-26 Diva Systems Corporation System for interactively distributing information services
US6208335B1 (en) * 1997-01-13 2001-03-27 Diva Systems Corporation Method and apparatus for providing a menu structure for an interactive information distribution system
WO1998034224A2 (en) * 1997-02-03 1998-08-06 Koninklijke Philips Electronics N.V. Direction identifier for recording of trick play signals on a record carrier
US5819049A (en) * 1997-02-28 1998-10-06 Rietmann; Sandra D. Multi-media recording system and method
US6101255A (en) * 1997-04-30 2000-08-08 Motorola, Inc. Programmable cryptographic processing system and method
US6108695A (en) * 1997-06-24 2000-08-22 Sun Microsystems, Inc. Method and apparatus for providing analog output and managing channels on a multiple channel digital media server
US6023731A (en) * 1997-07-30 2000-02-08 Sun Microsystems, Inc. Method and apparatus for communicating program selections on a multiple channel digital media server having analog output
US6222838B1 (en) * 1997-11-26 2001-04-24 Qwest Communications International Inc. Method and system for delivering audio and data files
US6697846B1 (en) * 1998-03-20 2004-02-24 Dataplow, Inc. Shared file system
US6246683B1 (en) * 1998-05-01 2001-06-12 3Com Corporation Receive processing with network protocol bypass
US6498897B1 (en) * 1998-05-27 2002-12-24 Kasenna, Inc. Media server system and method having improved asset types for playback of digital media
US6314573B1 (en) * 1998-05-29 2001-11-06 Diva Systems Corporation Method and apparatus for providing subscription-on-demand services for an interactive information distribution system
WO1999062261A1 (en) * 1998-05-29 1999-12-02 Diva Systems Corporation Interactive information distribution system and method
US6724767B1 (en) * 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6157051A (en) * 1998-07-10 2000-12-05 Hilevel Technology, Inc. Multiple function array based application specific integrated circuit
US7035278B2 (en) * 1998-07-31 2006-04-25 Sedna Patent Services, Llc Method and apparatus for forming and utilizing a slotted MPEG transport stream
US6148414A (en) * 1998-09-24 2000-11-14 Seek Systems, Inc. Methods and systems for implementing shared disk array management functions
US6618363B1 (en) * 1998-10-09 2003-09-09 Microsoft Corporation Method for adapting video packet generation and transmission rates to available resources in a communications network
KR100618961B1 (ko) * 1998-12-16 2006-09-01 삼성전자주식회사 패킷 데이터의 고속 탐색을 위한 정보 생성 방법과 이 정보를 저장하는 기록 매체, 이를 이용하는 기록 및/또는 재생 장치
US6785338B1 (en) * 1999-01-19 2004-08-31 Sarnoff Corporation Constraining video production based on compression-related information
US6240553B1 (en) * 1999-03-31 2001-05-29 Diva Systems Corporation Method for providing scalable in-band and out-of-band access within a video-on-demand environment
US6289376B1 (en) * 1999-03-31 2001-09-11 Diva Systems Corp. Tightly-coupled disk-to-CPU storage server
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management
US6721794B2 (en) * 1999-04-01 2004-04-13 Diva Systems Corp. Method of data management for efficiently storing and retrieving data to respond to user access requests
US6820144B2 (en) * 1999-04-06 2004-11-16 Microsoft Corporation Data format for a streaming information appliance
US6502194B1 (en) * 1999-04-16 2002-12-31 Synetix Technologies System for playback of network audio material on demand
US6651103B1 (en) * 1999-04-20 2003-11-18 At&T Corp. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
IL130796A (en) * 1999-07-05 2003-07-06 Brightcom Technologies Ltd Packet processor
US6496692B1 (en) * 1999-12-06 2002-12-17 Michael E. Shanahan Methods and apparatuses for programming user-defined information into electronic devices
US7327761B2 (en) * 2000-02-03 2008-02-05 Bandwiz Inc. Data streaming
US6757291B1 (en) * 2000-02-10 2004-06-29 Simpletech, Inc. System for bypassing a server to achieve higher throughput between data network and data storage system
US20010049757A1 (en) * 2000-03-01 2001-12-06 Ming-Kang Liu Programmable task scheduler for use with multiport xDSL processing system
US7200670B1 (en) * 2000-06-30 2007-04-03 Lucent Technologies Inc. MPEG flow identification for IP networks
GB2366709A (en) * 2000-06-30 2002-03-13 Graeme Roy Smith Modular software definable pre-amplifier
US7031343B1 (en) * 2000-11-17 2006-04-18 Alloptic, Inc. Point-to-multipoint passive optical network that utilizes variable-length packets
US6940873B2 (en) * 2000-12-27 2005-09-06 Keen Personal Technologies, Inc. Data stream control system for associating counter values with stored selected data packets from an incoming data transport stream to preserve interpacket time interval information
US20030223735A1 (en) * 2001-02-28 2003-12-04 Boyle William B. System and a method for receiving and storing a transport stream for deferred presentation of a program to a user
US20020180891A1 (en) * 2001-04-11 2002-12-05 Cyber Operations, Llc System and method for preconditioning analog video signals
US7042899B1 (en) * 2001-05-08 2006-05-09 Lsi Logic Corporation Application specific integrated circuit having a programmable logic core and a method of operation thereof
US20030079018A1 (en) * 2001-09-28 2003-04-24 Lolayekar Santosh C. Load balancing in a storage network
US7174086B2 (en) * 2001-10-23 2007-02-06 Thomson Licensing Trick mode using dummy predictive pictures
US20030095783A1 (en) * 2001-11-21 2003-05-22 Broadbus Technologies, Inc. Methods and apparatus for generating multiple network streams from a large scale memory buffer
US6789123B2 (en) * 2001-12-28 2004-09-07 Microsoft Corporation System and method for delivery of dynamically scalable audio/video content over a network
US7657917B2 (en) * 2002-05-23 2010-02-02 Microsoft Corporation Interactivity emulator for broadcast communication
ES2277150T3 (es) * 2002-10-10 2007-07-01 Koninklijke Philips Electronics N.V. Reproduccion trucada de television interactiva por interfaz digital.
US7260576B2 (en) * 2002-11-05 2007-08-21 Sun Microsystems, Inc. Implementing a distributed file system that can use direct connections from client to disk
US20030108030A1 (en) * 2003-01-21 2003-06-12 Henry Gao System, method, and data structure for multimedia communications
US7298741B2 (en) * 2003-02-27 2007-11-20 Sharp Laboratories Of America, Inc. Robust MPEG-2 multiplexing system and method using an adjustable time stamp
US7444419B2 (en) * 2003-10-10 2008-10-28 Microsoft Corporation Media stream scheduling for hiccup-free fast-channel-change in the presence of network chokepoints
US7460531B2 (en) * 2003-10-27 2008-12-02 Intel Corporation Method, system, and program for constructing a packet

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000175189A (ja) * 1998-12-07 2000-06-23 Univ Tokyo 動画符号化方法およびそれに用いる動画符号化装置
WO2002039744A1 (en) * 2000-11-10 2002-05-16 Prediwave, Corp. Decreased idle time and constant bandwidth data-on-demand broadcast delivery matrices

Also Published As

Publication number Publication date
CN101010959B (zh) 2012-01-25
JP2011050117A (ja) 2011-03-10
US20060146780A1 (en) 2006-07-06
KR20070064316A (ko) 2007-06-20
WO2006012496A3 (en) 2006-06-15
EP1772016A2 (en) 2007-04-11
KR100868820B1 (ko) 2008-11-14
WO2006012496A2 (en) 2006-02-02
JP2008507922A (ja) 2008-03-13
CN101010959A (zh) 2007-08-01

Similar Documents

Publication Publication Date Title
JP4729570B2 (ja) トリックモードおよび速度移行
US10623785B2 (en) Streaming manifest quality control
US7023924B1 (en) Method of pausing an MPEG coded video stream
US8837586B2 (en) Bandwidth-friendly representation switching in adaptive streaming
US6937770B1 (en) Adaptive bit rate control for rate reduction of MPEG coded video
TWI511544B (zh) 用於可調適視訊串流之技術
JP4157617B2 (ja) 情報ストリームフレーム同期のための方法および装置
US8467457B2 (en) System and a method for controlling one or more signal sequences characteristics
RU2488968C2 (ru) Кодирующее устройство и способ генерирования потока данных
US20100211690A1 (en) Block partitioning for a data stream
JP2006050604A (ja) Avデータ受信時のバッファ量をコンテンツ属性によって弾力的に調節する方法及び装置
JP2006506926A (ja) ビデオの伝送方法
KR20050099999A (ko) 화상 부호화 방법
ITTO20090486A1 (it) Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini
US8798162B2 (en) Encoding method, decoding method, encoder, and decoder
KR100592547B1 (ko) 스트리밍을 위한 패킷 스케줄링 방법
US20240040127A1 (en) Video encoding method and apparatus and electronic device
JP2006203910A (ja) 同期化イーサネット(登録商標)システムにおいてジッターなしにデータを伝送する方法
JP3839911B2 (ja) 画像処理装置および画像処理方法
JP3836701B2 (ja) 動画像を符号化する方法及び装置及びプログラム並びに動画像音声多重化の方法及び装置
US11871079B2 (en) Client and a method for managing, at the client, a streaming session of a multimedia content
JP4064604B2 (ja) 画像処理方法及び装置
JP2004158929A (ja) 動画像処理方法および動画像処理装置ならびに動画像伝送装置
Xu et al. Rate control for consistent visual quality of H. 264/AVC encoding
JP3852442B2 (ja) データ符号化方法及び装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100216

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101210

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101220

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110418

R150 Certificate of patent or registration of utility model

Ref document number: 4729570

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140422

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250