JP2015521825A - 仮想イントラフレームを使用してビデオコンテンツを符号化するためのシステムおよび方法 - Google Patents

仮想イントラフレームを使用してビデオコンテンツを符号化するためのシステムおよび方法 Download PDF

Info

Publication number
JP2015521825A
JP2015521825A JP2015519070A JP2015519070A JP2015521825A JP 2015521825 A JP2015521825 A JP 2015521825A JP 2015519070 A JP2015519070 A JP 2015519070A JP 2015519070 A JP2015519070 A JP 2015519070A JP 2015521825 A JP2015521825 A JP 2015521825A
Authority
JP
Japan
Prior art keywords
video content
bit rate
frame
data
compressed video
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.)
Granted
Application number
JP2015519070A
Other languages
English (en)
Other versions
JP6169172B2 (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 JP2015521825A publication Critical patent/JP2015521825A/ja
Application granted granted Critical
Publication of JP6169172B2 publication Critical patent/JP6169172B2/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/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
    • H04N21/234309Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • 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
    • H04N21/23439Processing 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 for generating different versions
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement

Abstract

1つ以上の仮想イントラフレームを使用して符号化された原画像コンテンツを符号化するためのシステムおよび方法が提供される。例示的な方法では、ビデオコンテンツのストリームが、イントラフレームおよび複数の対応するインターフレームを含む圧縮ビデオデータを生成するために、符号化され得る。圧縮ビデオデータは、バッファ内に記憶され得、バッファ中のデータの量が閾値を超えるとき、復号されたインターフレームデータに基づいて、仮想イントラフレームが計算され得る。仮想イントラフレームは、バッファの中に記憶するために出力され得る。

Description

本開示は、概して、画像データを符号化し、圧縮ビデオコンテンツを生成するためのシステムおよび方法に関する。より具体的には、限定ではないが、本開示は、ネットワークを経由した圧縮ビデオコンテンツのバッファリングおよび配信を可能にするように仮想イントラフレームを生成する、システムおよび方法に関する。
現在、ビデオシステムは、TCP/IPプロトコルを使用して画像データを通信することが可能である、デジタルネットワークカメラを組み込む。これらのビデオシステムは、アナログ閉回路テレビ(CCTV)カメラに基づく従来の監視システムに取って代わりつつある。例えば、アナログCCTVカメラとは対照的に、デジタルネットワークカメラを伴うビデオシステムは、任意の数の受信側または記憶装置への連続的または個別的伝送のために高解像度圧縮ビデオコンテンツを生成するように、リアルタイムで原画像データを捕捉して符号化する。
圧縮された高解像度ビデオコンテンツは、連続的または代替的のいずれか一方で、ライブ視聴のために指定受信側またはアーカイビングのために記憶装置に伝送され得る。ネットワークカメラは、例えば、1つ以上の個別的な引き金となる事象または出来事に応答して、画像データを伝送し得る。圧縮ビデオコンテンツの効率的なビットレートコーディングを達成するために、ネットワークカメラは、差分符号化スキームを採用するビデオコーデックを含み得る。これらの符号化スキームは、イントラリフレッシュフレーム間に遠距離を必要とし得る。そのような符号化スキームを用いて生成される圧縮ビデオコンテンツは、ネットワークを経由した伝送中に最小限のネットワークリソースを消費する、長いピクチャ群(GOP)長を有し得る。
さらに、アナログCCTVカメラとは対照的に、ネットワークカメラはまた、圧縮ビデオコンテンツの一部分をバッファリングし、それによって、これらのネットワークカメラが、目的とする事象または出来事を一括する圧縮ビデオコンテンツを配信することを可能にし得る。しかしながら、イントラフレッシュフレーム間の遠距離により、圧縮ビデオデータにおける長いGOP長コードの使用は、符号化されたデータの完全な列を記憶するために必要なメモリの量を増加させる。結果として、ネットワークカメラの有限のバッファ容量は、圧縮ビデオコンテンツの有意義な部分をバッファリングする、これらのカメラの能力を制限する。
前述を考慮して、画像データを符号化し、圧縮ビデオコンテンツを生成するための改良型システムおよび方法の必要性がある。また、ネットワークを経由した圧縮ビデオコンテンツのバッファリングおよび配信を可能にするように仮想イントラフレームを生成する、改良型システムおよび方法の必要性がある。また、ビデオデータの効率的な大きいGOP長の符号化、および有限のバッファメモリを有するネットワークカメラを用いた、符号化されたフレームデータのバッファリングを支援する、そのようなシステムおよび方法の必要性もある。また、コンピュータベースの環境で実装することができる、そのようなシステムおよび方法の必要性もある。
本開示の実施形態によると、画像データを符号化し、圧縮ビデオコンテンツを生成するためのコンピュータ実装システムおよび方法が提供される。1つの例示的実施形態では、ビデオコンテンツのストリームを受信し、ビデオコーデックを使用して、イントラフレームおよび複数の対応するインターフレームを含む圧縮ビデオデータを生成するために、ビデオコンテンツストリームを符号化し、圧縮ビデオデータをバッファ内に記憶する方法が提供される。例示的な方法によると、符号化することは、符号化されたイントラフレームに関連付けられているデータを取得することと、イントラフレームデータに基づいて、インターフレームのうちの対応する1つを生成するようにビデオコンテンツストリームの一部分を符号化することとを含み得る。さらに、本方法は、バッファに記憶されたデータの量が第1の閾値を超えるかどうかを決定することを含み得る。バッファ中のデータの量が第1の閾値を超える場合、本方法は、生成されたインターフレームを復号し、復号されたインターフレームデータに基づいて仮想イントラフレームを計算することと、バッファの中に記憶するために、対応するインターフレームとともに仮想イントラフレームを出力することとを含み得る。
一実施形態では、ビデオコンテンツストリームの第1の部分は、イントラフレームを生成するように符号化され得る。第1の部分は、そのような実施形態では、インターフレームに関連付けられるビデオコンテンツストリームの一部分に先行し得る。
別の実施形態では、バッファリングされたデータの量が第1の閾値を超えない場合、符号化するステップは、圧縮ビデオデータに関連付けられているピクチャ群長を計算することを含み得る。符号化するステップはまた、計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定することを含み得、計算されたピクチャ群長が所定の閾値長を超えない場合、ビデオコンテンツストリームの追加の部分が、追加のインターフレームを生成するように符号化され得る。そのような実施形態では、バッファは、1つ以上の以前に符号化されたイントラフレームおよび対応するインターフレームの群を含み得、計算されたピクチャ群長が所定の閾値長を超える場合、例示的な方法は、以前に符号化されたイントラフレームおよび対応するインターフレームの群を破棄し得る。
さらなる実施形態では、符号化するステップはまた、バッファリングされたデータの量が、第1の閾値よりも大きい、第2の閾値を超えるかどうかを決定することを含み得る。そのような実施形態では、バッファリングされたデータの量が第2の閾値を超える場合、仮想イントラフレームが維持され得、仮想イントラフレームに先行する符号化されたビデオコンテンツが破棄され得る。
追加の実施形態では、引き金となる出来事を示す情報が受信され得、受信した情報に基づいて、例示的な方法は、バッファリングされたデータの少なくとも一部分を受信側に伝送する命令を生成し得る。引き金となる出来事は、そのような実施形態では、ビデオコンテンツの要求、受信したビデオストリーム内の所定の事象の発生、インターフェースを通した所定のデータの受信、またはセンサによる所定の事象の検出のうちの少なくとも1つを含み得る。
さらに、命令を生成するステップはまた、バッファリングされたデータがイントラフレームおよび仮想イントラフレームを含むかどうかを決定することを含み得る。そのような実施形態では、バッファリングされたデータがイントラフレームおよび仮想イントラフレームを含む場合、仮想イントラフレームは、破棄され得、対応するインターフレームは、維持され得、次いで、バッファリングされたデータ部分は、イントラフレームに基づいて生成され得る。さらなる実施形態では、例示的な方法は、バッファリングされたデータが仮想イントラフレームを含み、イントラフレームを含まないかどうかを決定することを含み得、次いで、バッファリングされたデータが仮想イントラフレームを含み、イントラフレームを含まない場合、仮想イントラフレームに基づいてバッファリングされたデータ部分を生成し得る。
さらに別の実施形態では、例示的な方法はさらに、圧縮ビデオデータの少なくとも1つのフレームを受信して復号することと、復号されたフレームがイントラフレームに対応するかどうかを決定することと、復号されたフレームがイントラフレームに対応する場合、少なくとも復号されたフレームをデータリポジトリに記憶することとを含み得る。そのような実施形態では、本方法は、復号されたフレームがインターフレームに対応することを決定し、復号されたフレームがインターフレームである場合、受信したデータに関連付けられているピクチャ群長を計算し得る。例示的な方法は、計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定し得、計算されたピクチャ群長が所定の閾値長を超えない場合、例示的な方法は、少なくとも復号されたインターフレームをデータリポジトリ内に記憶し得る。
さらに、そのような実施形態では、計算されたピクチャ群長が所定の閾値長を超える場合、本方法は、復号されたインターフレームデータに基づいて追加のイントラフレームを生成し得、次いで、少なくとも追加のイントラフレームをデータリポジトリ内に記憶し得る。
さらなる実施形態では、圧縮ビデオコンテンツは、ビットレートの対応する値に関連付けられ得、少なくとも1つの切り替え点が、圧縮ビデオコンテンツ内の対応する時間的位置で確立され得る。そのような実施形態では、切り替え点は、圧縮ビデオコンテンツの受信側または配信側のうちの少なくとも1つがビットレートを修正することを可能にし得る。
そのような実施形態では、例示的な方法は、圧縮ビデオデータおよび切り替え位置に関連付けられている情報をデータリポジトリに記憶する命令を生成し得る。さらに、切り替え点を確立する際に、例示的な方法は、対応する時間的位置に関連付けられているインターフレームを識別し、識別されたインターフレームを復号し、復号されたインターフレームデータに基づいて仮想イントラフレームを計算し、次いで、時間的位置でデータリポジトリの中に記憶するために、仮想イントラフレームを出力し得る。
追加の実施形態では、符号化するステップはまた、圧縮ビデオコンテンツ内の対応する時間的位置で複数の切り替え点を確立することを含み得る。対応する時間的位置は、一実施形態では、圧縮ビデオコンテンツ内で固定間隔で配置され得る。
さらなる実施形態では、例示的な方法は、圧縮ビデオコンテンツ内の時間的位置を識別する情報を含む、切り替え位置を作成する要求を受信し得、符号化するステップはさらに、要求に応答して、識別された時間的位置で切り替え点を確立することを含み得る。
本開示のさらなる実施形態によると、ビデオコンテンツのストリームを符号化して、イントラフレームおよび複数の対応するインターフレームを含む圧縮ビデオデータを生成するように構成されているビデオコーデックユニットを含む装置が提供される。本装置はさらに、ビデオコーデックユニットに連結され、圧縮ビデオデータをバッファ内に記憶するように構成されている記憶装置を含む。ビデオコーデックはさらに、符号化されたイントラフレームに関連付けられているデータを取得し、イントラフレームデータに基づいて、ビデオコンテンツストリームの一部分を符号化してインターフレームのうちの対応する1つを生成し、バッファに記憶されたデータの量が第1の閾値を超えるかどうかを決定するように構成され得る。バッファリングされたデータの量が第1の閾値を超える場合、ビデオコーデックは、生成されたインターフレームを復号し、復号されたインターフレームデータに基づいて仮想イントラフレームを計算し、バッファの中に記憶するための出力として、対応するインターフレームとともに仮想イントラフレームを提供し得る。
一実施形態では、ビデオコーデックはさらに、ビデオコンテンツストリームの第1の部分を符号化してイントラフレームを生成するように構成され得る。第1の部分は、そのような実施形態では、インターフレームに関連付けられるビデオコンテンツストリームの一部分に先行し得る。
別の実施形態では、バッファリングされたデータの量が第1の閾値を超えない場合、ビデオコーデックは、圧縮ビデオデータに関連付けられているピクチャ群長を計算するように構成され得る。ビデオコーデックはまた、計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定するように構成され得、計算されたピクチャ群長が所定の閾値長を超えない場合、ビデオコーデックは、ビデオコンテンツストリームの追加の部分を符号化して、追加のインターフレームを生成するように構成され得る。そのような実施形態では、バッファは、1つ以上の以前に符号化されたイントラフレームおよび対応するインターフレームの群を含み得、計算されたピクチャ群長が所定の閾値長を超える場合、ビデオコーデックはさらに、以前に符号化されたイントラフレームおよび対応するインターフレームの群を破棄するように構成され得る。
さらなる実施形態では、ビデオコーデックは、バッファリングされたデータの量が、第1の閾値よりも大きい、第2の閾値を超えるかどうかを決定するように構成され得る。ビデオコーデックはさらに、そのような実施形態では、バッファリングされたデータの量が第2の閾値を超える場合、仮想イントラフレームを維持し、仮想イントラフレームに先行する符号化されたビデオコンテンツを破棄するように構成され得る。
追加の実施形態では、ビデオコーデックは、引き金となる出来事を示す情報を受信し、受信した情報に基づいて、バッファリングされたデータの少なくとも一部分を受信側に伝送する命令を生成するように構成され得る。そのような実施形態では、ビデオコーデックは、バッファリングされたデータがイントラフレームおよび仮想イントラフレームを含むことを決定し、バッファリングされたデータがイントラフレームおよび仮想イントラフレームを含む場合、仮想イントラフレームを破棄し、対応するインターフレームを維持し、イントラフレームに基づいてバッファリングされたデータ部分を生成するように構成され得る。さらなる実施形態では、ビデオコーデックは、バッファリングされたデータが仮想イントラフレームを含み、イントラフレームを含まないかどうかを決定し、バッファリングされたデータが仮想イントラフレームを含み、イントラフレームを含まない場合、仮想イントラフレームに基づいてバッファリングされたデータ部分を生成するように構成され得る。
さらに別の実施形態では、ビデオコーデックは、圧縮ビデオデータの少なくとも1つのフレームを受信して復号し、復号されたフレームがイントラフレームに対応するかどうかを決定し、復号されたフレームがイントラフレームに対応する場合、少なくとも復号されたフレームを記憶装置に記憶する命令を生成するように構成され得る。そのような実施形態では、ビデオコーデックはまた、復号されたフレームがインターフレームに対応することを決定し、復号されたフレームがインターフレームである場合、受信したデータに関連付けられているピクチャ群長を計算するように構成され得る。次いで、ビデオコーデックは、計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定し、計算されたピクチャ群長が所定の閾値長を超えない場合、少なくとも復号されたインターフレームを記憶装置内に記憶する命令を生成するように構成され得る。
さらに、そのような実施形態では、ビデオコーデックは、計算されたピクチャ群長が所定の閾値長を超える場合、復号されたインターフレームデータに基づいて追加のイントラフレームを生成し、次いで、少なくとも追加のイントラフレームを記憶装置内に記憶する命令を生成するように構成され得る。
さらなる実施形態では、圧縮ビデオコンテンツは、ビットレートの対応する値に関連付けられ得、ビデオコーデックは、圧縮ビデオコンテンツ内の対応する時間的位置で少なくとも1つの切り替え点を確立するように構成され得る。そのような実施形態では、切り替え点は、圧縮ビデオコンテンツの受信側または配信側のうちの少なくとも1つがビットレートを修正することを可能にし得る。
そのような実施形態では、ビデオコーデックは、圧縮ビデオデータおよび切り替え位置に関連付けられている情報を記憶装置に記憶する命令を生成するように構成され得る。ビデオコーデックはまた、対応する時間的位置に関連付けられているインターフレームを識別し、識別されたインターフレームを復号し、復号されたインターフレームデータに基づいて仮想イントラフレームを計算し、時間的位置で記憶装置の中に記憶するために、仮想イントラフレームを出力するように構成され得る。
追加の実施形態では、ビデオコーデックは、圧縮ビデオコンテンツ内の対応する時間的位置で複数の切り替え点を確立するように構成され得る。対応する時間的位置は、そのような実施形態では、圧縮ビデオコンテンツ内で固定間隔で配置され得る。さらに、一実施形態では、ビデオコーデックは、圧縮ビデオコンテンツ内の時間的位置を識別する情報を含む、切り替え位置を作成する要求を受信するように、および要求に応答して、識別された時間的位置で切り替え点を確立するように構成され得る。
本開示の追加の一実施形態によると、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、ビデオコンテンツのストリームを受信するステップと、イントラフレームおよび複数の対応するインターフレームを含む圧縮ビデオデータを生成するために、ビデオコンテンツストリームを符号化するステップと、圧縮ビデオデータをバッファ内に記憶するステップとを行わせる命令を記憶する有形の非一過性コンピュータ読み取り可能な媒体が提供される。一式の命令はさらに、少なくとも1つのプロセッサに、符号化されたイントラフレームに関連付けられているデータを取得させ、イントラフレームデータに基づいて、インターフレームのうちの対応する1つを生成するようにビデオコンテンツストリームの一部分を符号化させ得る。加えて、一式の命令は、少なくとも1つのプロセッサに、バッファに記憶されたデータの量が第1の閾値を超えるかどうかを決定させ得る。バッファ中のデータの量が第1の閾値を超える場合、一式の命令は、少なくとも1つのプロセッサに、生成されたインターフレームを復号させ、復号されたインターフレームデータに基づいて仮想イントラフレームを計算させ、バッファの中に記憶するために、対応するインターフレームとともに仮想イントラフレームを出力させ得る。
本開示の別の実施形態によると、コンピュータ実装方法は、通信ネットワークに関連付けられているネットワーク条件を示す情報を受信し、情報に基づいて、通信ネットワークを経由して伝送される圧縮ビデオコンテンツの初期ビットレートがネットワーク条件と整合するかどうかを決定する。初期ビットレートがネットワーク条件と整合しない場合、圧縮ビデオコンテンツの初期ビットレートに関連付けられている切り替え点が識別される。切り替え点は、圧縮ビデオコンテンツ内の対応する時間的位置に関連付けられ得る。ビデオコーデックを使用して、切り替え点の時間的位置において修正されたビットレートで圧縮ビデオコンテンツの一部分を伝送するように、命令が生成される。一部分は、仮想イントラフレームと、修正されたビットレートで符号化された対応するイントラフレームとを含み得る。
一実施形態では、初期ビットレートがネットワーク条件と整合する場合、例示的な方法は、初期ビットレートで圧縮ビデオコンテンツを伝送する命令を生成し得る。さらに、初期ビットレートがネットワーク条件と整合しない場合、例示的な方法は、修正されたビットレートで圧縮ビデオコンテンツの一部分を取得し得る。修正されたビットレートは、そのような実施形態では、切り替え点の時間的位置でネットワーク条件と整合し得る。
追加の実施形態では、例示的な方法は、初期ビットレートがネットワーク条件と整合しない場合、ネットワーク条件に関連付けられているビットレートが初期ビットレートを超えることを決定し得、さらに、修正されたビットレートで圧縮ビデオコンテンツの一部分を取得し得る。そのような実施形態では、修正されたビットレートは、切り替え点の時間的位置で初期ビットレートを超え得る。
別の実施形態では、初期ビットレートがネットワーク条件と整合しない場合、例示的な方法は、初期ビットレートがネットワーク条件に関連付けられているビットレートを超えることを決定し得、次いで、修正されたビットレートで圧縮ビデオコンテンツの一部分を取得し得る。そのような実施形態では、初期ビットレートは、切り替え点の時間的位置で修正されたビットレートを超え得る。
さらなる実施形態では、本方法は、初期ビットレートを識別する情報を含む、圧縮ビデオコンテンツの要求を受信することと、要求に応答して、初期ビットレートで圧縮ビデオコンテンツを伝送する命令を生成することとを含み得る。そのような実施形態では、本方法は、圧縮ビデオコンテンツに関連付けられている再生情報を伝送する命令を生成し得る。再生情報は、圧縮ビデオコンテンツ内の切り替え点の時間的位置を識別する情報を含み得る。
本開示の別の実施形態によると、記憶装置と、記憶装置に連結されるビデオコーデックとを含む、装置が提供される。ビデオコーデックは、通信ネットワークに関連付けられているネットワーク条件を示す情報を受信し、情報に基づいて、通信ネットワークを経由して伝送される圧縮ビデオコンテンツの初期ビットレートがネットワーク条件と整合するかどうかを決定するように構成され得る。初期ビットレートがネットワーク条件と整合しない場合、ビデオコーデックはさらに、圧縮ビデオコンテンツの初期ビットレートに関連付けられている切り替え点を識別するように構成される。切り替え点は、圧縮ビデオコンテンツ内の対応する時間的位置に関連付けられ得る。ビデオコーデックはさらに、切り替え点の時間的位置において修正されたビットレートで圧縮ビデオコンテンツの一部分を伝送する命令を生成するように構成される。一部分は、仮想イントラフレームと、修正されたビットレートで符号化された対応するイントラフレームとを含み得る。
一実施形態では、初期ビットレートがネットワーク条件と整合する場合、ビデオコーデックはさらに、初期ビットレートで圧縮ビデオコンテンツを伝送する命令を生成するように構成され得る。ビデオコーデックはまた、初期ビットレートがネットワーク条件と整合しない場合、修正されたビットレートで圧縮ビデオコンテンツの一部分を取得するように構成され得る。修正されたビットレートは、そのような実施形態では、切り替え点の時間的位置でネットワーク条件と整合し得る。
追加の実施形態では、ビデオコーデックは、初期ビットレートがネットワーク条件と整合しない場合、ネットワーク条件に関連付けられているビットレートが初期ビットレートを超えることを決定し、次いで、修正されたビットレートで圧縮ビデオコンテンツの一部分を取得するように構成され得る。そのような実施形態では、修正されたビットレートは、切り替え点の時間的位置で初期ビットレートを超え得る。
別の実施形態では、初期ビットレートがネットワーク条件と整合しない場合、ビデオコーデックは、初期ビットレートがネットワーク条件に関連付けられているビットレートを超えることを決定し、修正されたビットレートで圧縮ビデオコンテンツの一部分を取得するように構成され得る。初期ビットレートは、そのような実施形態では、切り替え点の時間的位置で修正されたビットレートを超え得る。
さらなる実施形態では、ビデオコーデックは、初期ビットレートを識別する情報を含む、圧縮ビデオコンテンツの要求を受信し、要求に応答して、初期ビットレートで圧縮ビデオコンテンツを伝送する命令を生成するように構成され得る。ビデオコーデックはまた、圧縮ビデオコンテンツに関連付けられている再生情報を伝送する命令を生成するように構成され得る。再生情報は、そのような実施形態では、圧縮ビデオコンテンツ内の切り替え点の時間的位置を識別する情報を含み得る。
本開示の他の実施形態は、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、通信ネットワークに関連付けられているネットワーク条件を示す情報を受信するステップと、情報に基づいて、通信ネットワークを経由して伝送される圧縮ビデオコンテンツの初期ビットレートがネットワーク条件と整合するかどうかを決定するステップとを行わせる命令を記憶する有形の非一過性コンピュータ読み取り可能な媒体に関する。初期ビットレートがネットワーク条件と整合しない場合、圧縮ビデオコンテンツの初期ビットレートに関連付けられている切り替え点が識別される。切り替え点は、圧縮ビデオコンテンツ内の対応する時間的位置に関連付けられ得る。切り替え点の時間的位置において修正されたビットレートで圧縮ビデオコンテンツの一部分を伝送するように、命令が生成される。一部分は、仮想イントラフレームと、修正されたビットレートで符号化された対応するイントラフレームとを含み得る。
本開示のさらなる実施形態は、圧縮ビデオデータの少なくとも1つのフレームを備えているビデオコンテンツのストリームを受信する、コンピュータ実装方法に関する。本方法は、受信したフレームを復号し、復号されたフレームがインターフレームに対応するかどうかを決定する。復号されたフレームがインターフレームである場合、本方法は、受信したデータに関連付けられているピクチャ群長を計算し、計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定する。計算されたピクチャ群長が所定の閾値長を超える場合、ビデオコーデックは、復号されたインターフレームデータに基づいて追加のイントラフレームを生成する。少なくとも追加のイントラフレームは、データリポジトリ内に記憶される。
一実施形態では、例示的な方法は、復号されたフレームがイントラフレームに対応する場合、少なくとも復号されたフレームをデータリポジトリに記憶し得る。例示的な方法はまた、計算されたピクチャ群長が所定の閾値長を超えない場合、少なくとも復号されたインターフレームをデータリポジトリに記憶し得る。
前述の一般的説明および以降の発明を実施するための形態の両方は、例示的かつ説明的にすぎず、請求されるような本発明を制限しないことを理解されたい。
本明細書に組み込まれ、その一部を構成する、添付図面は、本開示の実施形態を図示し、説明とともに、添付図面に記載されるような本発明の原理を説明する働きをする。
図1は、その内側で本開示による実施形態が実践され得る、例示的なコンピュータ環境の略図である。 図2は、開示された実施形態による、例示的なオンチップビデオコーデックの略図である。 図3は、開示された実施形態による、ビデオコンテンツの例示的な符号化されたフレーム群を図示する。 図4は、開示された実施形態による、圧縮ビデオコンテンツを生成してバッファリングする例示的な方法のフローチャートである。 図5A−5Cは、開示された実施形態による、仮想イントラフレームを含む例示的なバッファリングされたフレームシーケンスを図示する。 図5A−5Cは、開示された実施形態による、仮想イントラフレームを含む例示的なバッファリングされたフレームシーケンスを図示する。 図5A−5Cは、開示された実施形態による、仮想イントラフレームを含む例示的なバッファリングされたフレームシーケンスを図示する。 図6は、開示された実施形態による、引き金となる出来事に応答して、バッファリングされたビデオコンテンツを伝送するための例示的な方法のフローチャートである。 図7は、開示された実施形態による、符号化されたビデオコンテンツのピクチャ群(GOP)長を修正するための例示的な方法のフローチャートである。 図8は、開示された実施形態による、符号化されたビデオコンテンツの複数のチャネルを記憶するための例示的なデータ構造を図示する。 図9は、開示された実施形態による、伝送されるビデオコンテンツのビットレートを適応的に修正するための例示的な方法のフローチャートである。 図10A−10Bおよび11A−11Bは、開示された実施形態による、符号化されたビデオコンテンツの伝送ビットレートへの例示的な調整を図示する。 図10A−10Bおよび11A−11Bは、開示された実施形態による、符号化されたビデオコンテンツの伝送ビットレートへの例示的な調整を図示する。 図10A−10Bおよび11A−11Bは、開示された実施形態による、符号化されたビデオコンテンツの伝送ビットレートへの例示的な調整を図示する。 図10A−10Bおよび11A−11Bは、開示された実施形態による、符号化されたビデオコンテンツの伝送ビットレートへの例示的な調整を図示する。 図12は、その内側で開示された実施形態が実践され得る、例示的なコンピュータシステムを図示する。
ここで、その実施例が添付図面で図示される、本開示の実施形態を詳細に参照する。同一の参照番号が、同一または類似部品を指すために図面の全体を通して使用されるであろう。
本願では、単数形の使用は、特に他の記述がない限り、複数形を含む。本願では、「または」の使用は、他に記述がない限り、「および/または」を意味する。さらに、「〜を含む」という用語、ならびに「含む」および「含んだ」等の他の形態は、限定的ではない。加えて、「要素」または「構成要素」等の用語は、特に他の記述がない限り、1つのユニットを備えている要素および構成要素、ならびに1つより多くのサブユニットを備えている要素および構成要素の両方を包含する。加えて、本明細書で使用される節の見出しは、編成目的のためにすぎず、説明される主題を限定すると解釈されるものではない。
図1は、その内側で本開示による実施形態が実践され得る、例示的なコンピュータ環境100を図示する。図1に図示されるように、環境100は、ビデオコンテンツが捕捉され、符号化され、後に、通信ネットワーク130と通信している種々の場所で記憶されることを可能にする、IPベースまたはネットワークビデオ監視システムを伴って実装され得る。図1中の構成要素の数および配列は、例証の目的で提供され、本開示から当業者に明白であるように、構成要素の数は、増加または減少させられ得、および/または環境100の意図された必要性または目的に従って、修正が構成の配列に行われ得る。
図1の例示的実施形態では、環境100は、複数のデジタルネットワークカメラ102および104と、複数のクライアントデバイス112および114と、ビデオエンコーダユニット116と、通信ネットワーク130を介して相互接続されるビデオ管理システム120とを含む。さらに、図1で描写されるように、1つ以上のアナログカメラ116A(例えば、閉回路テレビ(CCTV)カメラ)が、接続150を介して、1つ以上のビデオエンコーダユニット116と通信して配置され得る。そのような実施形態では、接続150は、当業者に明白であるものを含み、アナログカメラ116Aおよびビデオエンコーダユニット116へ、およびそこからデータを搬送することが可能である、任意の有線または無線接続に対応し得る。
図1では、デジタルネットワークカメラ102および104は、圧縮ビデオコンテンツを生成するように近リアルタイムで符号化され得る、原画像データを連続的に捕捉するように構成され得る。同様に、アナログカメラ116Aは、後続の符号化のために接続150を経由してビデオエンコーダユニット116に転送され得る、原画像データを連続的に捕捉するように構成され得る。そのような実施形態では、ネットワークカメラ102および104によって、ならびにビデオ符号化ユニット116によって行われる符号化は、連続的に、特定間隔で、または所定の引き金となる出来事に応答してのいずれかで、ネットワーク130を経由した伝送に好適な圧縮ビデオコンテンツを生成し得る。
一実施形態では、ビデオ符号化ユニット116ならびにネットワークカメラ102および104によって取得される原画像データは、イントラフレーム(すなわち、Iフレーム)およびインターフレーム(すなわち、Pフレーム)の対応する順次セットをそれぞれ含むピクチャ群(GOP)を生成するように、差分符号化スキームに従って符号化され得る。例えば、原画像データは、高解像度ビデオに対するH.264規格、高効率ビデオコーディングに対するH.265規格、または当業者に明白である任意の追加のまたは代替的な差分符号化規格に従って符号化され得る。
さらに、本開示による実施形態では、ビデオ符号化ユニット116ならびにネットワークカメラ102および104は、ネットワーク130を経由した後続の伝送のために、複数のビットレートで原画像データを符号化するように構成され得る。例えば、原画像データを符号化するために選択されるビットレートは、ネットワーク130の状態(例えば、ネットワーク130の帯域幅)、圧縮画像データの受信側(例えば、クライアントデバイス102またはビデオ管理システム120)の状態、または当業者に明白であり、ビデオ符号化ユニット116ならびにネットワークカメラ102および104にとって適切である任意の追加のまたは代替的な状態に依存し得る。
再度、図1を参照すると、クライアントデバイス112および114は、少なくとも1つのプロセッサまたはコンピュータベースのシステムを用いて実装され得る。例えば、クライアントデバイス112および114は、パーソナルコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ハンドヘルドコンピュータ、携帯情報端末、携帯用ナビゲーションデバイス、携帯電話、スマートフォン、セットトップボックス、第三者ポータル、専用表示デバイスを伴うビデオデコーダボックスまたはドングル、およびネットワーク130を経由してデータを伝送および受信するように動作可能である任意の追加のまたは代替的なコンピュータデバイスを含むことができるが、それらに限定されない。
通信ネットワーク130は、デジタルデータ通信を提供するための有線および/または無線ネットワークの任意の組み合わせを伴って実装され得る。通信ネットワーク120の実施例は、ローカルエリアネットワーク(「LAN」)、無線LAN、例えば、「WiFi」ネットワーク、複数の無線LANを接続する無線メトロポリタンエリアネットワーク(MAN)、および広域ネットワーク(「WAN」)を含む。いくつかの実施形態では、ネットワーク130は、インターネットを備えている。例えば、本開示の実施形態によると、ネットワーク130は、インターネットを備え、ハイパーテキスト転送プロトコル(HTTP)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、およびリアルタイムトランスポートプロトコル(RTP/RTCP)を含むが、それらに限定されない、1つ以上の通信プロトコルを介して相互接続される、1つまたは複数の任意の公的にアクセス可能なネットワークを含み得る。また、通信ネットワーク130はまた、クライアントデバイス112および114、ネットワークカメラ102および104、ならびにビデオ管理システム120が、上記で説明されるものを含む適用可能な通信プロトコルを介して、データを送受信することを可能にする、GSM(登録商標)ネットワークまたはPCSネットワーク等の1つ以上の携帯電話ネットワークを含み得る。
ビデオ管理システム120は、ビデオ管理サーバ122と、データリポジトリ124とを含み得る。例えば、ビデオ管理サーバ122は、フロントエンドと、フロントエンドと通信して配置されるバックエンドとを含み得る。そのような実施形態では、サーバ122のフロントおよびバックエンドは、ハードウェアユニット、例えば、単一のコンピュータ、単一のサーバ、または当業者に明白である任意の追加のあるいは代替的なコンピュータデバイスに組み込まれ得る。さらに、一実施形態では、フロントエンドは、クライアントデバイス(例えば、クライアントデバイス112および114)のユーザが、データリポジトリ124内に記憶された圧縮ビデオコンテンツにアクセスし、それを管理し、視聴することを可能にする、サーバ122上で実行されるウェブサービス等のソフトウェアアプリケーションであり得る。
データリポジトリ124は、ビデオコーディングユニット116ならびにネットワークカメラ102および104によって複数のビットレートのうちの1つ以上で符号化される、圧縮ビデオコンテンツを記憶し得る。例えば、上記で議論されるように、ビデオコーディングユニット116ならびにネットワークカメラ102および104のうちの1つ以上は、連続的に、特定間隔で、または所定の引き金となる出来事に応答してのいずれかで、記録を記憶するためにネットワーク130を経由して圧縮ビデオコンテンツをデータリポジトリ124に伝送し得る。
上記で説明されるように、ネットワークカメラ102および104ならびにビデオコーデックユニット116は、原画像データを取得し、原画像データを符号化して圧縮ビデオコンテンツを生成し、後に、記憶ユニット内に圧縮ビデオデータの一部分をバッファリングするように、対応するプロセッサおよび記憶ユニットと通信している1つ以上のビデオコーデックを組み込み得る。そのような実施形態では、コーデックおよびプロセッサは、センサインターフェースユニットと、ビデオコーデックユニットと、例えば、図2を参照して以下で説明されるように、センサインターフェースおよびビデオコーデックユニットを制御し、ネットワーク130を経由してクライアントデバイス112および114ならびにビデオ管理システム120と連動するように論理を含む、処理ユニットとを含む、オンチップ装置に組み込まれ得る。
図2は、開示された実施形態による、圧縮ビデオコンテンツを生成するように原画像データを符号化する、例示的なオンチップビデオコーデック200を図示する。一例として、ビデオコーデック200は、原画像データを連続的に符号化して圧縮ビデオコンテンツを生成するように、ネットワークカメラ102および104ならびにビデオコーディングユニット116のうちの1つ以上に組み込まれ得る。
図2の例示的実施形態では、ビデオコーデック200は、センサユニット220と、コーデックユニット240と、処理ユニット260とを含む。さらに、図2のメモリインターフェース290は、センサユニット220、コーデックユニット240、および処理ユニット260を外部記憶ユニット280に連結し得る。そのような実施形態では、センサユニット220は、原画像データを受信し、コーデックユニット240による符号化に好適な形式に処理し得る。コーデックユニット240は、その一部分が記憶装置280内にバッファリングされ得る、圧縮ビデオデータを生成するために、フォーマット済みの原画像データを符号化し得る。さらに、そのような実施形態では、圧縮ビデオコンテンツは、処理ユニット260によって生成される命令に応答して、視聴および/または記憶のために通信ネットワーク(例えば、ネットワーク130)を経由して伝送され得る。
さらに、図2では描写されていないが、画像センサによって捕捉される原画像データは、ネットワークカメラ102および104に組み込まれ得る。開示された実施形態による画像センサは、デジタル電荷結合素子(CCD)画像センサおよび相補型金属酸化膜半導体(CMOS)画像センサを含むが、それらに限定されない。加えて、ビデオ符号化ユニット116によって取得される原画像データは、適切な画像センサを使用して、1つ以上のアナログカメラ(例えば、アナログカメラ116A)によって捕捉され得、後に、接続150を使用して、ビデオコーディングユニット116に提供され得る。
図2を再び参照すると、センサユニット220は、画像センサから画像データを受信するセンサ入力インターフェース222と、カラーフィルタを原画像データに適用するベイヤーパターンプロセッサ224と、フィルタにかけられた画像データの形式を変換する形式変換器226とを含む。センサユニット220は、そのような例示的な構成に限定されず、さらなる実施形態では、センサユニット220は、デッドピクセル隠蔽アルゴリズム、雑音除去アルゴリズム、画像鮮明化アルゴリズム、ホワイトバランスアルゴリズム、露出アルゴリズム、および画像自動焦点アルゴリズムを含むが、それらに限定されない、1つ以上の追加の画像処理アルゴリズムを実行するように構成され得る。センサユニットはまた、センサユニット220が、インターフェース290を通して記憶ユニット280に直接アクセスすること、およびインターフェース290を通してフィルタにかけられた画像データをコーデックユニット240に提供することを可能にする、ダイレクトメモリアクセス(DMA)コントローラ228も含む。
コーデックユニット240は、対応するダイレクトメモリアクセス(DMA)コントローラ248を使用して、インターフェース290を通してセンサユニット220からフィルタにかけられた画像データを受信し得る、ビデオスケーラ242を含む。いったんビデオスケーラ242によって処理されると、スケーリングされた画像データは、エンコーダ244またはエンコーダ246のうちの1つ以上に転送され得る。例えば、エンコーダ244は、DMAコントローラ248によって記憶ユニット280に、または代替として、ネットワーク130を経由した後続の伝送のために処理ユニット260に転送され得る、対応するJPEG圧縮画像を生成するように、スケーリングされた画像データを圧縮し得る。
加えて、または代替として、エンコーダ246は、圧縮ビデオデータの対応するフレームを生成するように、高解像度ビデオに対するH.264規格に従って、スケーリングされた画像データを差分的に符号化し得る。例えば、生成されたフレームは、対応するピクチャ群(GOP)長を有する、差分的に符号化されたフレーム群の一部分を形成し得る。そのような実施形態では、DMAコントローラ248は、圧縮ビデオデータを、バッファリングのために記憶ユニット280に、および加えて、または代替として、ネットワーク130を経由した伝送のために処理ユニット260に転送し得る。
処理ユニット260は、中央処理ユニット(CPU)262と、対応するキャッシュ264と、上記で概説される通信プロトコルのうちの1つ以上を使用してネットワーク130に接続するネットワークインターフェース266とを含む。処理ユニットはまた、マイクロホンからの入力を受け入れるか、または出力をスピーカに提供する、聴覚インターフェース268と、セキュアデジタル(SD)カードを受け入れるインターフェース270と、1つ以上の周辺デバイス(例えば、キーボードまたはタッチスクリーン等の入出力デバイス、およびハードディスクまたはフラッシュデバイス等の外部メモリデバイス)と通信するための一般インターフェース272とを含む。
一実施形態では、処理ユニット260は、対応するインターフェースを使用して、ローカルでアクセス可能な記憶装置(例えば、SDカードインターフェース270を使用してSDカード、または一般インターフェース272を使用してフラッシュデバイス)内に圧縮ビデオコンテンツを記憶するように、信号を生成し得る。追加の実施形態では、処理ユニット260はまた、コーデックユニット240によって生成される圧縮ビデオコンテンツを、視聴または記憶のために対応する受信側に連続的に伝送するか、または代替として、圧縮ビデオコンテンツを、所定の時間に視聴または記憶のために対応する受信側に伝送するかのいずれか一方のために、信号を生成し得る。しかしながら、開示された実施形態は、ローカル記憶および伝送のためのそのような機構に限定されず、追加の実施形態では、処理ユニット260は、ネットワークインターフェース266、聴覚インターフェース268、SDカードインターフェース270、または圧縮ビデオコンテンツの転送をトリガする出来事を識別する一般I/Oインターフェース272のうちの1つ以上から信号を受信し得る。
例えば、そのような引き金となる出来事は、クライアントデバイスのユーザからの要求、センサユニット(例えば、運動センサ、赤外線センサ、熱センサ、およびリレーまたはドア接触センサ)から受信される信号、聴覚インターフェースと通信しているマイクロホンから受信される信号、追加のネットワークデバイス(例えば、追加のネットワークカメラ)によって生成され、通信ネットワーク(例えば、ネットワーク130)を経由して処理ユニット260に伝送される信号またはアラーム、または当業者に明白である任意の追加のまたは代替的な事象を含むが、それらに限定されない。そのような実施形態では、クライアントデバイス(例えば、クライアントデバイス112または104)のユーザは、1つ以上の引き金となる出来事および圧縮データを受信すべき1つ以上の対応する宛先を特定する構成情報をネットワークカメラ102および104のうちの1つ以上に提供し得る。
さらに、上記で説明されるように、DMAコントローラ248は、圧縮ビデオコンテンツを一時的に記憶するようにバッファの役割を果たし得る、記憶装置280に圧縮ビデオコンテンツを伝送し得る。引き金となる事象の識別時に、処理ユニット260はまた、ネットワーク130を経由してバッファリングされたビデオコンテンツを、視聴または記憶のために指定受信側または場所に伝送する命令を生成し得る。そのような実施形態では、ビデオコーデック200は、引き金となる出来事の後の原画像データに対応する圧縮ビデオコンテンツだけでなく、引き金となる出来事に先立った所定の期間内に捕捉される圧縮ビデオデータのバッファリングされた部分の配信も促進し得る。
上記で説明されるように、ネットワークカメラ102および104のオンチップコーデックシステムは、高解像度ビデオに対するH.264規格、および高効率ビデオコーディングに対するH.265規格と一致するスキームを含むが、それらに限定されない、1つ以上の差分符号化スキームに従って、原画像データを符号化する。そのような差分符号化スキームを使用して、原画像データは、対応するピクチャ群(GOP)長を有し、初期イントラフレーム(すなわち、Iフレーム)と、例えば、図3を参照して以下で説明されるように、Iフレームに基づいて予測される複数のインターフレーム(すなわち、Pフレーム)とを含む、フレーム群に符号化される。
図3は、本開示の実施形態による、例示的な差分的に符号化されたフレーム群300を図示する。例えば、群300は、ネットワークカメラ(例えば、ネットワークカメラ102および104)およびアナログカメラと通信しているビデオコーディングユニット(例えば、ビデオコーディングユニット116)のうちの少なくとも1つに組み込まれる、ビデオコーデック(例えば、オンチップビデオコーデック200)によって生成され得、ネットワークカメラおよび/またはアナログカメラの画像センサによって捕捉される原画像データに基づき得る。
図3の例示的実施形態では、原画像データの最初の部分は、対応するIフレーム302(例えば、IフレームI)を形成するように符号化され得る。そのような実施形態では、Iフレーム302は、ビデオコーデック200による復号時に、原画像データの最初の部分に対応する画像をもたらす、内蔵画像を表す。
原画像データの後続の部分は、シーケンス中のIフレーム302および各先行Pフレームに依存する、Pフレーム304(例えば、PフレームP・・・PN−1)の対応するシーケンスをもたらすように、差分的に符号化され得る。例えば、図3に示されるように、PフレームPは、原画像の第2の部分と最初の部分との間の差異を表し、原画像の第2の部分に対応する画像は、復号されたIフレーム302と復号されたPフレームPとに基づいて生成され得る。同様に、PフレームPに対応する画像は、Iフレーム302およびPフレームPからPの各々を順に復号することによって、生成され得る。
図3の実施形態では、ビデオコーデック装置200によって生成されるPフレームは、単一の参照画像に関連付けられる。しかしながら、開示された実施形態は、例示的な差分符号化スキームに限定されず、追加の実施形態では、ビデオコーデック装置200は、開示された実施形態の精神または範囲から逸脱することなく、複数の参照画像に関連付けられる追加のPフレームを生成し得る。
さらに、上記で説明される実施形態では、差分コーディングスキームは、ビデオコーデック装置200が、以前に符号化された画像データ(すなわち、以前の参照フレーム)を参照するPフレームを生成することを可能にする。追加の実施形態では、ビデオコーデック200はまた、以前に符号化された画像データ(すなわち、1つ以上の以前の参照フレーム)および後に符号化された画像データ(すなわち、1つ以上の後続の参照フレーム)の両方を参照する、1つ以上の双方向予測フレーム(すなわち、Bフレーム)を生成し得る。例えば、ビデオコーデック200は、待ち時間を増加させ、符号化されたビデオコンテンツを伝送するための将来の帯域幅要求を低減させるように、そのようなBフレームを生成し、対応するPフレームの間に位置付け得る。
図3を再び参照すると、符号化されたIフレームに関連付けられるサイズは、対応する符号化されたPフレームに関連付けられるサイズよりも実質的に大きくあり得る。例えば、Iフレーム302は、サイズが50キロバイトであり得る一方で、Pフレーム304の各々は、原画像データに関連付けられる雑音のレベルに応じて、サイズが1キロバイトから4キロバイトに及び得る。そのような実施形態では、圧縮ビデオコンテンツに関連付けられるピクチャ群(GOP)長は、シーケンス300内の最初のIフレーム302に従属するPフレーム304の数を増加させ、それによって、通信ネットワーク(例えば、図1のネットワーク130)を経由してシーケンス300を伝送するために必要なビットレートを減少させるように調整され得る。例えば、128のGOP長を有するシーケンスを伝送するために必要なビットレートは、32のGOP長を有する同等シーケンスを伝送するために必要とされるビットレートより2倍から4倍小さくあり得る。
上記で説明されるように、ビデオコーデック200は、同時にローカル記憶ユニット(例えば、記憶ユニット280)の中に圧縮ビデオコンテンツの一部分をバッファリングしながら、ライブ視聴または記憶のためにネットワーク130を経由して圧縮ビデオコンテンツを受信側デバイスに伝送し得る。そのような実施形態では、ビデオコーデック200は、ネットワーク130を経由して圧縮ビデオコンテンツを伝送するために必要とされるビットレートを低減させるために、比較的長いGOP長(例えば、128フレーム以上)を有する圧縮ビデオコンテンツを生成し得る。しかしながら、IPベースのビデオ監視システムの構成要素内に一般的に組み込まれるバッファの有限の容量(例えば、300キロバイトの容量)により、そのような長いGOP長コードの使用は、圧縮ビデオコンテンツのGOP全体をバッファリングするビデオコーデック200の能力を制限し得る。
例えば、図3を再び参照すると、ビデオコーデック装置200は、128フレームのGOP長を有する圧縮ビデオコンテンツを生成し得る。そのような実施形態では、Iフレーム302は、記憶に50キロバイトを必要とし得る一方で、対応するPフレーム304の各々は、1キロバイトから4キロバイトのサイズを必要とし得る。そのような状況下では、圧縮ビデオコンテンツのGOP全体は、(無雑音フレームデータを伴う)177キロバイトから(雑音の多いフレームデータを伴う)558キロバイトの間の記憶容量を必要とし得る。そのような実施形態では、ビデオコーデック200は、GOPの最初のIフレームが後続のPフレームによって上書きされ、バッファリングされたコンテンツの受信側が対応する画像を生成するようにバッファリングされたコンテンツを復号することができない場合があるので、300キロバイトバッファ内に圧縮ビデオコンテンツの完全なGOPをバッファリングすることができない場合がある。
図4は、本開示の実施形態による、圧縮ビデオコンテンツを生成してバッファリングする例示的な方法400を図示する。方法400は、長いGOP長コードを有する圧縮ビデオコンテンツを生成し、後に、有限のバッファ容量を有する記憶ユニット内に圧縮ビデオコンテンツをバッファリングするように、ビデオコーデック(例えば、オンチップコーデック200)によって実装され得る。本開示から当業者に明白となるように、図4の同方法のステップおよび配列は、必要に応じて修正され得る。また、方法400を参照して以下で説明される閾値(例えば、50%および90%)は、例証の目的のためであり、必要に応じて修正され得る。
図4では、ビデオコーデック200は、ステップ402でビデオコンテンツのストリームを受信する。一実施形態では、ビデオコンテンツは、図2の例示的実施形態を参照して上記で説明されるように、ネットワークカメラ(例えば、CCDデバイスまたはCMOSデバイス)に関連付けられる画像センサによって捕捉され得、後に、フィルタにかけられたビデオコンテンツを生成するように、センサユニット(例えば、ビデオコーデック200のセンサユニット220)によってフィルタにかけられ得る。
ステップ404では、ビデオコーデック200は、受信したビデオコンテンツストリームの最初の部分に基づいて、イントラフレーム(すなわち、Iフレーム)を生成する。ステップ406では、ビデオコーデック200は、余剰容量が対応するバッファ(例えば、記憶ユニット280の一部分)内に存在するかどうかを決定する。一実施形態では、ビデオコーデック200は、高解像度ビデオに対するH.264規格、および高効率ビデオコーディングに対するH.265規格を含むが、それらに限定されない、差分コーディングスキームに従って原画像データを符号化することによって、ステップ404でIフレームを生成する。
ビデオコーデック200が、余剰容量がバッファの中に存在しない(すなわち、バッファが満杯である)ことを決定する場合には、エラー信号がステップ408で生成され、方法400はステップ410で完了する。しかしながら、ビデオコーデック200が、バッファが満杯ではないことを決定する場合には、符号化されたIフレームがバッファリングされ、受信したビデオコンテンツストリームの追加の部分が、ステップ412で対応するインターフレーム(すなわち、Pフレーム)を生成するようにビデオコーデック200によって符号化される。そのような実施形態では、生成されたPフレームは、図3を参照して上記で議論されるように、受信したビデオコンテンツストリームの最初の部分と追加の部分との間の差異を表す。
例えば、ステップ412でPフレームを生成するとき、上記で説明される差分符号化スキーム(例えば、H.264規格またはH.265規格のIフレーム符号化スキーム)は、ビデオエンコーダ200が、対応する参照フレームを生成するために、新たに符号化されたPフレームを復号することを義務付け得る。そのような実施形態では、ビデオコーデック200は、以下で議論されるように、後続のPフレームを生成するために、および加えて、または代替として、Pフレームに基づく仮想Iフレームを生成するために、参照フレームを活用し得る。
ステップ414では、ビデオコーデック200は、再度、余剰容量がバッファの中に存在するかどうかを決定する。ビデオコーデック200が、バッファが満杯であることを決定する場合には、方法400はステップ408に戻り、その時に、エラー信号が生成され、本方法がステップ410で完了する。
しかしながら、ビデオコーデック200が、余剰容量がバッファの中に存在することを決定する場合、ビデオコーデック200は、ピクチャ群内の対応する位置で、生成されたPフレームをバッファリングし、次いで、ステップ416で、バッファリングされたデータの量がバッファ容量の閾値部分、例えば、バッファ容量の90%を超えるかどうかを決定する。一実施形態では、90%(または他の)閾値は、バッファにオーバーフローを被るという差し迫った危険がある(すなわち、後続のフレームが以前にバッファリングされたフレームを上書きする)ことをビデオコーデック200に示す。
バッファリングされたデータ量がバッファ容量の90%を超えない場合には、ビデオコーデック200は、ステップ418で、バッファリングされたデータ量が追加の閾値部分、例えば、バッファ容量の50%を超えるかどうかを決定する。バッファリングされたデータ量がバッファ容量の50%(またはその他)を超える場合、コーデックは、ステップ420で、以前にバッファリングされたPフレームに基づいて仮想Iフレームを生成する。
ステップ420で仮想Iフレームを生成するために、ビデオコーデック200は、最初に、バッファ内に格納された圧縮データのシーケンス中の最終Pフレームを識別し得る。一実施形態では、識別されたPフレームは、ステップ412で以前に生成されたPフレームに対応し、ビデオコーデック200は、対応するPフレームデータとともにバッファに記憶され得る対応する仮想Iフレームをステップ420で生成するために、識別されたPフレームに関連付けられた参照データを活用し得る。
例えば、仮想Iフレームを生成するために、ビデオコーデック200は、修正された一式の符号化パラメータとともに、対応するIフレームアルゴリズム(例えば、H.264規格またはH.265規格のIフレームアルゴリズム)を使用して、参照データを符号化し得る。そのような実施形態では、仮想Iフレームを符号化するために使用されるパラメータ、例えば、品質パラメータは、Pフレームまたは他のIフレームを符号化するために使用されるものとは異なり得、修正されたパラメータは、PフレームおよびIフレームに関連付けられる量子化レベルより低いまたは高い量子化レベルを有する、仮想Iフレームをもたらし得る。さらに、追加の実施形態では、仮想Iフレームの品質パラメータは、ステップ420で生成される仮想Iフレームに関連付けられる量子化エラーを低減および/または最小化するように調整され得る。
例えば、図5Aは、開示された実施形態による、例示的なバッファリングされたフレームシーケンス500を図示する。上記で説明されるように、ビデオコーデック200は、最終Pフレーム504、例えば、PフレームPを記憶した後に、バッファリングされたフレームシーケンス500がバッファ容量の50%を超えることを決定し得る。そのような実施形態では、次いで、ビデオコーデック200は、対応するIフレームアルゴリズム(例えば、H.264規格またはH.265規格のIフレームアルゴリズム)を使用して、PフレームPに関連付けられた参照フレームデータを再符号化することによって、PフレームPに対応する仮想Iフレーム506を生成し得る。上記で説明されるように、ビデオコーデック200は、生成された仮想IフレームVに関連付けられる量子化エラーを低減させるように、Iフレームアルゴリズムの1つ以上のパラメータ(例えば、品質パラメータ)を自由に修正し得、生成された仮想IフレームVは、後に対応するPフレームPおよび最初のIフレームIとともにバッファに記憶され得る。
しかしながら、開示された実施形態は、対応する参照データに基づいて仮想Iフレームを生成する技法に限定されない。追加の実施形態では、ビデオコーデック200は、バッファリングされたシーケンスの最初のIフレーム502(例えば、IフレームI)、および一連のPフレームPからPを復号することによって、PフレームPの原画像データに対応する、復号された画像を生成し得る。次いで、ビデオコーデック200は、上記で説明されるように、対応するIフレームアルゴリズムを使用して、復号された画像データを再符号化することによって、仮想Iフレーム506を生成し得る。
図4を再び参照すると、生成された仮想Iフレームをバッファに記憶した後、ビデオコーデック200は、ステップ422でバッファの余剰容量に追加のチェックを行い得る。ビデオコーデック200が、ステップ422でバッファが満杯であることを決定し得る場合には、方法400は、エラー信号を生成するステップ408に戻り、本方法はステップ410で完了する。
代替として、ビデオコーデック200が、余剰容量がバッファの中に存在することを決定する場合には、ビデオコーデック200は、ステップ424で現在のバッファリングされたピクチャ群(GOP)の長さを計算し得、ステップ426で閾値長に対して計算された長さを比較し得る。一実施形態では、閾値長は、ビデオコーデック200に関連付けられるGOP長を表し得、通信ネットワーク(例えば、図1の通信ネットワーク130)を経由した圧縮ビデオコンテンツの伝送のために許容可能なビットレートを生成するように調整され得る。
ビデオコーデック200が、ステップ426で、現在のバッファリングされたGOPの長さが閾値長を超えることを決定する場合、現在のバッファリングされたGOPは、完全な符号化されたフレーム群(すなわち、ビデオコーデック200によって定義されるような完全なGOP)を表す。次いで、ビデオコーデック200は、ステップ428で(例えば、処理ユニット260を使用して)、現在のバッファリングされたGOPを保持し、バッファから任意の以前に符号化されたGOPを破棄する命令を生成し得る。例えば、図5Bで描写されるように、現在のバッファリングされたGOP510の長さがビデオコーデック200のGOP長を超えるとき、バッファは、完全である現在のバッファリングされたGOP510、および以前の完全なGOP508の両方を含む。そのような実施形態では、完全GOP508および任意の対応する仮想Iフレームは、ステップ428で破棄され、フレーム510は、バッファの中に残される。図4の例示的な方法は、ステップ404に戻り、コーデックは、受信したビデオコンテンツストリームに基づいて追加のIフレームを生成する。
ステップ426を再び参照すると、現在のバッファリングされたGOPの長さが閾値長を超えない場合には、バッファは、不完全な符号化されたフレーム群に関連付けられるIフレームを含む。そのような実施形態では、方法400は、ステップ412に戻り、コーデックは、以前にバッファリングされたIフレームに関連付けられる追加のPフレームを生成する。
ステップ418を再び参照すると、ビデオコーデック200が、バッファリングされたデータ量がバッファ容量の50%を超えないことを決定する場合には、ビデオコーデック200は、バッファにオーバーフローの危険がないことを決定し得る。そのような実施形態では、方法400は、ステップ424に直接移動し、ビデオコーデック200は、上記で説明されるように、バッファリングされたフレームに関連付けられるGOP長を計算する。
ステップ416を再び参照すると、ビデオコーデック200が、バッファリングされたデータ量がバッファ容量の90%を超えることを決定する場合には、バッファにオーバーフローの差し迫った危険があり得る。そのような実施形態では、ビデオコーデック200は、後にステップ432で、バッファリングされたフレームが仮想Iフレームを含むかどうかを決定し得る。バッファリングされたフレームが仮想Iフレームを含む場合には、ビデオコーデック200は、ステップ434で、仮想Iフレームに基づいて新しいGOPを生成する。次いで、コーデックは、例えば、図5Cを参照して以下で説明されるように、仮想Iフレームに先立ってバッファリングされるフレーム、ならびに仮想Iフレームに対応するPフレームを破棄し得る。
例えば、図5Cで描写されるように、ビデオコーデック200は、ステップ416で、バッファリングされたフレーム560がバッファ容量の90%を超えることを決定し得、さらに、ステップ432で、バッファが仮想Iフレーム、すなわち、仮想IフレームVを含むことを決定し得る。次いで、ビデオコーデック200は、仮想IフレームVに基づいて新しいGOP562を生成し得、後に、Vが導出されたPフレームPを含む、Vに先立ってバッファリングされたフレーム564を破棄し得る。
図4を再び参照すると、ステップ434で新しいGOPを生成すると、方法400は、ステップ424に戻り、ビデオコーデック200は、上記で説明されるように、新しいGOPに対応するGOP長を計算する。同様に、ビデオコーデック200が、ステップ432で、バッファが仮想Iフレームを含まないと決定する場合には、方法400は、ステップ424に戻り、ビデオコーデック200は、現在バッファリングされているフレームに関連付けられるGOP長を計算する。
上記で説明される実施形態では、例示的な方法400は、ビデオコーデック(例えば、ビデオコーデック200)が圧縮ビデオコンテンツの単一の完全なGOPをバッファリングすることを可能にするように、最適化され得る。開示された実施形態は、そのような最適化された技法に限定されず、(図4で描写されていない)追加の実施形態では、図4の例示的な方法は、開示された実施形態の精神または範囲から逸脱することなく、ビデオコーデック200が、対応するバッファ、および加えて、または代替として、圧縮ビデオコンテンツの完全なGOPの1つ以上の所定の部分または適応的に決定された部分内で、圧縮ビデオコンテンツの複数の完全なGOPを記憶することを可能にするように、修正され得る。
さらに、追加の実施形態では、図4の例示的な技法は、1つ以上のエラー処理機能性と、通信ネットワーク(例えば、ネットワーク130)を経由して圧縮ビデオコンテンツを受信側(例えば、クライアントデバイス112またはデータリポジトリ124)に配信する1つ以上の伝送機能と組み合わせられ得る。例えば、開示された実施形態による伝送機能性は、ビデオコーデック200が、伝送のために圧縮ビデオコンテンツのGOPを識別すること、識別されたGOPの部分の伝送を開始すること、および伝送プロセスの完了までバッファ内に識別されたGOPを「ロック」することを可能にし得る。そのような実施形態では、ビデオコーデック200は、伝送プロセスの完了の成功後まで、圧縮ビデオコンテンツの識別されたGOPを削除するか、または上書きすることができない場合がある。
上記で説明されるように、バッファリングされたビデオコンテンツは、Iフレーム、1つ以上の対応するPフレーム、および加えて、または代替として、以前の参照フレームおよび後続の参照フレームの両方を参照する1つ以上の双方向予測フレーム(すなわち、Bフレーム)を有する、ビデオ群を含み得る。例えば、Bフレームは、GOPの複数対のPフレームの間に(例えば、シーケンスIBBPBBPBBP・・・で)ビデオコーデック200によって挿入され得る。
図4では描写されていないが、開示された実施形態による例示的な方法は、Pフレームに関連付けられる参照データだけでなく、Bフレームに関連付けられる参照データにも基づいて、仮想Iフレームを生成し得る。例えば、対応するBフレームに基づいて仮想Iフレームを生成するための技法は、符号化されたビデオコンテンツの伝送順を修正し得、さらに、変換を考慮するように、Bフレームの後の時間的位置に配置されるフレームデータを補正し得る。そのような実施形態では、Bフレームに基づく仮想Iフレームの生成は、バッファリングされたビデオコンテンツ内で、独立して復号可能な始点、またはIDRフレーム(瞬間デコーダリフレッシュフレーム)を作成し得る。
上記で説明されるプロセスを使用して、ビデオコーデック200は、H.264またはH.265規格に従ったビデオデータの大きいGOP長の符号化、および有限のバッファメモリを有するネットワークカメラ(例えば、図1のネットワークカメラ102)内での符号化されたフレームデータのバッファリングの両方をサポートし得る。そのような実施形態では、図4の例示的なプロセスは、ビデオコーデック200が、引き金となる出来事に応答して、事象の後に捕捉された符号化されたビデオコンテンツだけでなく、出来事の直前に捕捉されたビデオを受信側に提供するバッファリングされたビデオコンテンツも受信側に提供することを可能にし得る。
例えば、引き金となる出来事は、ネットワーク130を経由して受信側(例えば、クライアントデバイス112)によって伝送されるビデオコンテンツの要求を含み得るが、それに限定されない。そのような実施形態では、クライアントデバイス112のユーザは、ネットワークカメラ(例えば、ネットワークカメラ102)によって捕捉される、ストリーム配信されたビデオコンテンツを視聴していることがあり、ストリーム配信されたコンテンツ内で起こる出来事に応答して、出来事の直前または後に捕捉されるビデオコンテンツの配信を要求し得る。ユーザは、そのような場合において、ビデオコンテンツの配信を要求し、および加えて、または代替として、コンテンツの受信側を指定するために、ネットワークカメラ102に関連付けられるウェブページまたは他のグラフィカルユーザインターフェースにアクセスし得る。さらに、そのような実施形態では、ユーザはまた、ネットワークカメラまたはビデオデコーダボックス、例えば、SDカードまたはフラッシュメモリデバイスとともに組み込まれる記憶装置から、出来事の直前または後に捕捉されたビデオコンテンツを取得し得る。
開示された実施形態は、ネットワークデバイスのユーザによって開始される要求に限定されず、追加の実施形態では、ビデオコーデック200は、ビデオコーデック200が捕捉された原画像データの一部分内で引き金となる出来事を識別することを可能にする機能性(例えば、CPU262によって実行される1つ以上のソフトウェアアプリケーション)を含み得る。例えば、そのような引き金となる出来事は、原画像データの一部分内に出現する特定の個人、原画像データ内で起こる特定の行為、静止期間後の原画像データ内の運動、またはビデオコーデック200の機能性によって検出されることが可能である任意の追加のまたは代替的な事象を含み得るが、それらに限定されない。さらに、そのような実施形態では、クライアントデバイス112のユーザは、ビデオコーデック200による検出のために、1つ以上の引き金となる事象を特定するために、(例えば、ネットワークカメラ102内に含まれるような)ビデオコーデック200に関連付けられるウェブページまたは他のグラフィカルユーザインターフェースにアクセスし得る。
さらに、追加の実施形態では、ビデオコーデック200は、1つ以上の外部センサによって生成される信号に基づいて、引き金となる出来事を検出し得る。例えば、ビデオコーデック200は、ビデオコーデック200を包囲する(例えば、ビデオコーデック200を組み込むネットワークカメラ102を包囲する)条件に基づいて、1つ以上の引き金となる事象を検出するように、熱センサ、運動センサ、放射線センサ、音響センサ、ドアまたはリレー接触センサ、および赤外線センサを含むが、それらに限定されない、1つ以上のセンサと通信し得る。そのような実施形態では、センサは、通信ネットワーク130を経由して、または代替として、1つ以上のインターフェース(例えば、インターフェース246、268、250、および252)を使用する有線または無線接続を通して、ビデオコーデック200と通信し得る。引き金となる出来事の検出時に、ビデオコーデックは、例えば、図6を参照して以下で説明されるように、バッファリングされたデータの一部分を指定受信側に伝送する命令を生成し得る。
図6は、開示された実施形態による、引き金となる出来事に応答して、バッファリングされたビデオコンテンツを伝送するための例示的な方法600を図示する。方法600は、ビデオコーデック(例えば、オンチップビデオコーデック200)が、引き金となる出来事を識別し、次いで、受信側に伝送するためにバッファリングされたデータの一部分を生成することを可能にする、機能性を提供し得る。
ステップ602では、ビデオコーデック200は、引き金となる出来事を示す情報を受信し得る。一実施形態では、上記で説明されるように、引き金となる出来事の情報は、クライアントデバイス(例えば、クライアントデバイス112)のユーザからの圧縮ビデオコンテンツの要求、ビデオコーデック200によって受信される原画像データ内の所定の事象の発生、所定の種類の原画像データの受信、またはビデオコーデック200と通信しているセンサまたはネットワークデバイスによる所定の事象の検出を含み得るが、それらに限定されない。
さらに、上記で議論されるように、引き金となる出来事の情報は、クライアントデバイス、感知デバイス、リレーまたはドア接触センサ、追加のネットワークデバイスによって伝送されるアラーム、またはビデオコーデック200にとって適切であり、通信ネットワーク130を経由してビデオコーデック200と通信している任意の追加のまたは代替的なデバイスから、ビデオコーデック200のインターフェース(例えば、インターフェース246、248、250、および252のうちの1つ以上)によって受信され得る。そのような実施形態では、クライアントデバイス112のユーザは、ウェブページまたは適切なグラフィカルユーザインターフェースを使用してビデオコーデック200にアクセスし得、ビデオコーデック200による圧縮ビデオコンテンツの伝送を引き起こすであろう、1つ以上の引き金となる出来事を確立し得る。
図6を再び参照すると、引き金となる出来事の情報の受信時に、ビデオコーデック200は、ステップ604で、現在バッファ内に記憶されているフレームの最長有効シーケンスを識別するように、(例えば、記憶装置280内の)バッファリングされたフレームデータにアクセスし得る。例えば、ステップ604では、ビデオコーデック200は、最長有効シーケンスとして、バッファ内の最初の符号化されたIフレームに関連付けられるシーケンスを識別し得、またはバッファリングされたIフレームがない場合には、ステップ604で識別される最長有効シーケンスが、最初の生成された仮想Iフレームに関連付けられるシーケンスに対応し得る。
ステップ606では、ビデオコーデック200は、ステップ604で識別されたシーケンスの最初の符号化されたフレームが、Iフレームであるか仮想Iフレームであるかを決定する。最初の符号化されたフレームがIフレームに対応する場合には、ビデオコーデック200は、対応するPフレームデータを維持しながら、ステップ608で、識別されたシーケンス中の任意の仮想Iフレームデータを破棄し得る。
ステップ610では、ビデオコーデック200は、後続の伝送のために、少なくともIフレームを含むバッファリングされたシーケンスに対するピクチャ群(GOP)を生成し得、ステップ612では、ビデオコーデック200は、バッファリングされたGOPを指定受信側に伝送する命令を生成する。一実施形態では、クライアントデバイス(例えば、クライアントデバイス112および114のうちの1つ)のユーザは、ネットワーク130を経由してビデオコーデック200との通信セッションを確立し得、指定受信側を特定するように、適切なグラフィカルユーザインターフェースのウェブページにアクセスし得る。例えば、指定受信側は、クライアントデバイス112および114のうちの1つ、ビデオ管理システム120、およびユーザにアクセス可能であり、ネットワーク130を経由してビデオコーデック200と通信している任意の追加のまたは代替的なデバイスを含み得るが、それらに限定されない。方法600は、後に、ステップ614で完了する。
しかしながら、識別されたシーケンスの最初の符号化されたフレームが、ステップ606で仮想Iフレームに対応する場合には、Iフレームに対応するバッファリングされたデータの一部分が上書きされていることがある。そのような実施形態では、ビデオコーデック200は、ステップ616で、最初の仮想Iフレーム(および加えて、識別されたシーケンス内の任意の後続の仮想Iフレームデータ)に関連付けられるPフレームデータを破棄し、ステップ618で、図5Cを参照して上記で概説されるように、最初の仮想Iフレームに基づいてGOPを生成する。
方法600は、ステップ612に戻り、ビデオコーデック202は、バッファリングされたGOPを指定受信側に伝送する命令を生成する。本方法は、後に、ステップ614で完了する。
上記で説明される実施形態では、ビデオコーデック200は、通信ネットワーク130を経由したストリーミング配信に好適なピクチャ群(GOP)長(例えば、128フレームのGOP長)で符号化される、ビデオコンテンツをバッファリングし得、後に、所定の引き金となる出来事に応答して、そのバッファリングされたビデオコンテンツの一部分を指定受信側に配信し得る。例えば、上記で説明されるように、バッファリングされたビデオコンテンツの完全な有効シーケンスは、最初のIフレーム(または最初の仮想Iフレーム)、1つ以上の仮想Iフレーム、および1つ以上の対応するPフレームを含み得る。図6の実施形態を使用して、最初のIフレーム(または仮想Iフレーム)の後の仮想Iフレームデータは、対応するPフレームを支持して、伝送に先立って破棄され得る。そのような実施形態では、バッファリングされたビデオコンテンツの結果として生じるシーケンスの伝送ビットレートは、通信ネットワーク130内で動作する受信側(例えば、クライアントデバイス112および114)に容認可能なレベルまで低減させられ得る。
さらに、そのような実施形態では、ビデオコーデック200はまた、連続的に、特定間隔で、または所定の引き金となる出来事に応答してのいずれかで、ライブ視聴および/または連続記録のために、ネットワーク130を経由して符号化されたビデオコンテンツを受信側デバイスに伝送し得る。例えば、ビデオコーデック200は、記憶するために、符号化されたビデオコンテンツを通信ネットワーク130内のデータリポジトリ(例えば、データリポジトリ124)に伝送し、後に、IPベースの監視ネットワークのユーザ(例えば、クライアントデバイス112および114のユーザ)によって取り出され得る。
しかしながら、符号化されたビデオコンテンツのGOP長は、通信ネットワーク130を経由して符号化されたビデオコンテンツを伝送するために必要なビットレートを低減させ得るが、そのようなGOP長での符号化されたビデオコンテンツの後続の記憶は、後続のアクセスをユーザにとって不便にし得る。例えば、ネットワーク130を経由した伝送に好適な長いGOP長(例えば、128フレーム)は、記憶されたビデオコンテンツの部分にランダムにアクセスするユーザの能力、およびコンテンツの全体を通してブラウズまたはスキップするユーザの能力を制限し得る。そのような実施形態では、符号化されたビデオコンテンツのGOP長は、例えば、図7を参照して以下で説明されるように、記憶に先立って指定受信側または指定受信側のユーザの要件に従って調整され得る。
図7は、開示された実施形態による、符号化されたビデオコンテンツのピクチャ群(GOP)長を修正するための例示的な方法700を図示する。方法700は、符号化されたビデオコンテンツの指定受信側(例えば、ビデオ管理システム120のデータリポジトリ124)が、記憶に先立って符号化されたビデオコンテンツのGOP長を適応的に修正することを可能にする、機能性を提供し得る。
図7では、データリポジトリ124は、ステップ702で、GOPカウンタを1にリセットし得、後に、ステップ704で、圧縮ビデオコンテンツのフレームを受信し得る。そのような実施形態では、圧縮ビデオコンテンツは、通信ネットワーク130を経由してネットワークカメラのビデオコーデック(例えば、オンチップコーデック200)から受信され得、符号化されたビデオコンテンツは、ネットワーク130の1つ以上の状態と一致して調整されるGOP長に関連付けられ得る。さらに、符号化されたビデオコンテンツは、高解像度ビデオに対するH.264規格、および高効率ビデオコーディングに対するH.265規格を含むが、それらに限定されない、いくつかの適切な差分コーディングスキームのうちのいずれかに従って生成され得る。
ステップ706では、受信したフレームは、対応する差分コーディングスキームに従って復号され得る。データリポジトリ124は、後に、ステップ708で、復号されたフレームがイントラフレーム(すなわち、Iフレーム)に対応するかどうかを決定し得る。
復号されたフレームがIフレームに対応する場合には、データリポジトリ124は、ステップ710で、受信したIフレームに基づいて新しいGOPを確立し得る。GOPカウンタは、ステップ712で1にリセットし、それによって、新しいGOPの確立を示し得、データリポジトリ124は、ステップ714で復号されたフレームデータを記憶し得る。
ステップ714で復号されたフレームデータを記憶すると、データリポジトリ124は、ステップ716で、追加の符号化されたビデオコンテンツが処理に利用可能であるかどうかを決定し得る。追加のコンテンツが処理に利用可能である場合、例示的な方法700は、ステップ704に戻り得、データリポジトリ124は、処理のために符号化されたビデオコンテンツの追加のフレームを取得し得る。しかしながら、データリポジトリ124が、追加のビデオコンテンツが処理に利用可能ではないことを決定する場合には、例示的な方法700はステップ718で完了する。
ステップ708を再び参照すると、データリポジトリ124が、復号されたフレームがインターフレーム(すなわち、Pフレーム)に対応することを決定する場合には、指定受信側は、ステップ720で、いくつかの復号されたフレームが閾値を超えるかどうかを決定し得る。そのような実施形態では、GOPカウンタの現在の値は、現在のGOPに関連付けられる、いくつかの復号されたフレームを示し得、閾値は、データリポジトリに記憶されたビデオコンテンツの最大GOP長に調整され得る。
例えば、受信したビデオコンテンツが、128フレームのGOPを使用して符号化され得る一方で、記憶されたビデオコンテンツは、ユーザが、取り出すときに、ビデオコンテンツを通してより効率的にブラウズすることを可能にするように、より小さいGOP長(例えば、32フレーム)に関連付けられ得る。そのような実施形態では、閾値は、データリポジトリ124、またはデータリポジトリ124のユーザに関連付けられる固定値であり得、または代替として、閾値は、ユーザ入力に応答して可変であり得る。
記憶された復号されたフレームの数が閾値を超えない場合には、GOPカウンタが、ステップ722で1だけインクリメントされ得る。例示的な方法700は、ステップ714に戻り得、データリポジトリ124は、上記で説明されるように、GOP内の対応する位置に復号されたPフレームを記憶し得る。
しかしながら、データリポジトリ124が、ステップ720で、記憶した復号されたフレームの数が閾値を超えることを決定する場合、指定受信側は、ステップ724で、復号されたPフレームに基づいて仮想Iフレームを生成し得、ステップ726で、仮想Iフレームに基づいて新しいGOPを生成し得る。図5A−5Cを参照して上記で概説される、そのような実施形態では、ステップ726での新しいGOPの生成は、GOP生成の目的で、仮想Iフレームを対応するIフレームに効果的に変換する。
ステップ726で新しいGOPを生成すると、例示的な方法700は、ステップ712に戻り、GOPカウンタは、1にリセットされる。データリポジトリ124は、後に、新しいGOPを形成するように、ステップ714で仮想Iフレームデータを記憶し得、データリポジトリ124は、ステップ716で、上記で概説されるように、追加の符号化されたビデオコンテンツが処理に利用可能であるかどうかを決定し得る。例示的な方法700は、ステップ718で完了する。
上記で説明される実施形態では、ビデオ管理システム120のデータリポジトリ124は、記憶に先立って、符号化されたビデオコンテンツのGOP長を適応的に修正し得る。そのような実施形態では、データリポジトリ124は、ネットワークカメラ102および104ならびにビデオコーディングユニット116のうちの1つ以上と通信しているユーザによって特定され得る、符号化されたビデオコンテンツの指定受信側に対応する。開示された実施形態は、そのような例示的な受信側に限定されず、追加の実施形態では、符号化されたビデオコンテンツの指定受信側は、クライアントデバイス112および114、データリポジトリ124と協働し得るビデオ管理サーバ122、および符号化されたビデオコンテンツを受信するようにネットワーク130を経由して通信することが可能である任意の追加のまたは代替的なデバイスのうちの1つ以上を含み得るが、それらに限定されない。
上記で説明されるプロセスを使用して、ビデオコーデック(例えば、オンチップコーデック200)は、有限の記憶容量のデバイス内に、長いGOP長以内で符号化されるビデオコンテンツをバッファリングするために、仮想Iフレームを生成して活用し得る。さらに、符号化されたビデオコンテンツの指定受信側(例えば、データリポジトリ124)で動作する同様のビデオコーデックは、記憶に先立って、符号化されたビデオコンテンツのGOP長を適応的に調整するように、そのような仮想Iフレームを生成して活用し得る。そのような実施形態では、エンコーダ(例えば、ネットワークカメラ102)およびデコーダ(例えば、データリポジトリ124またはクライアントデバイス112および114)に配置されるビデオコーデックによる、仮想Iフレームの生成および使用は、通信ネットワーク(例えば、図1のネットワーク130)で符号化されたビデオコンテンツを伝送するために、容認可能なビットレートをもたらすGOP長を可能にする。
しかしながら、開示された実施形態は、そのような静的伝送ビットレートに限定されない。開示された実施形態によるビデオコーデックは、クライアントデバイスへの後続の伝送のために外部データリポジトリに記憶され得る、複数の伝送ビットレート(例えば、3つのビットレート)で同一のビデオコンテンツを符号化し得る。そのような実施形態では、クライアントデバイスは、グラフィカルユーザインターフェースを通して、またはネットワーク条件の変化に応答してプログラムで、種々のビットレートでの符号化されたビデオコンテンツの伝送を要求するように構成され得る。
しかしながら、符号化されたビデオコンテンツの伝送ビットレートに対応する修正を要求するクライアントデバイスの能力は、種々の伝送ビットストリームに関連付けられるGOP長によって制限され得る。例えば、より低いビットレートを伴う符号化されたビデオコンテンツは、より高い伝送ビットレートで符号化されるビデオコンテンツの対応する部分よりも長いGOP長、したがって、連続するIフレーム間の長い間隔に関連付けられ得る。そのような実施形態では、GOP長の相違は、種々の伝送ビットレートで符号化されるビデオコンテンツの間でシームレスに切り替えるクライアントデバイスの能力を制限し得る。
追加の実施形態では、ビデオコーデックは、符号化されたビデオコンテンツの伝送中に、受信側デバイスがビットレートを修正することを可能にする「切り替え点」を確立するように、符号化されたコンテンツのストリームの種々の時間的位置で仮想Iフレームを生成し得る。例えば、上記で議論されるように、ビデオコーデックは、符号化されたビデオコンテンツの3つのチャネルを生成するように、3つのビットレート(例えば、「低」、「中」、および「高」)でビデオコンテンツを符号化する機能性を含み得る。そのような実施形態では、符号化されたビデオコンテンツのチャネルは、データリポジトリ(例えば、ビデオ管理システム120のデータリポジトリ124)内に記憶され得、仮想Iフレームは、例えば、図8を参照して以下で説明されるように、切り替え点を確立するように、記憶されたビデオコンテンツの種々の時間的位置で生成され得る。
図8は、本開示の実施形態による、複数の切り替え点を有する圧縮ビデオデータの3つのチャネルの例示的なデータ構造800を図示する。図8では、データ構造800は、3つの対応するビットレートで符号化される圧縮ビデオコンテンツの3つのチャネルを図示する。例えば、チャネル802は、「高」ビットレートで符号化される、記憶されたビデオコンテンツに対応し、チャネル804は、「中」ビットレートで符号化される、記憶されたビデオコンテンツに対応し、チャネル806は、「低」ビットレートで符号化される、記憶されたビデオコンテンツに対応する。しかしながら、開示された実施形態は、そのような例示的なビットレートに限定されず、追加の実施形態では、データ構造800は、当業者に明白であり、通信ネットワーク130のデバイスにとって適切である、任意の追加のまたは代替的なビットレートで符号化される、任意の追加のまたは代替的な数のビデオコンテンツチャネルを含み得る。
図8では、データ構造800は、チャネル802、804、および806の符号化されたビデオコンテンツに対するピクチャ群(GOP)の一部分を図示する。さらに、上記で議論されるように、切り替え点が、記憶されたビデオコンテンツの全体を通した恣意的および固定時間的位置で、チャネル802、804、および806の各々の内側に確立される。例えば、図8の実施形態では、切り替え点は、各チャネルの符号化されたビデオコンテンツの毎分に確立される。しかしながら、開示された実施形態は、そのような規則的な時間的間隔に配置される切り替え点に限定されず、追加の実施形態では、切り替え点は、開示された実施形態の精神または範囲から逸脱することなく、記憶されたビデオコンテンツ内の任意の追加の時間的位置で確立され得る。
一実施形態では、ビデオコーデック(例えば、図2のオンチップビデオコーデック200)は、仮想Iフレームを生成して時間的位置で記憶することによって、記憶されたビデオコンテンツの対応する時間的位置で切り替え点を確立し得る。例えば、2分に相当する時間において、ビデオコーデック200は、Pフレーム814の原画像データに対応する復号された画像を生成するように、最初のIフレーム812ならびにPフレーム814までの連続的なPフレームを復号することによって、チャネル802のための切り替え点を生成し得る。次いで、ビデオコーデックは、対応するIフレームアルゴリズム(例えば、H.264規格またはH.265規格のIフレーム符号化スキーム)を使用して、復号された画像を再符号化することによって、Pフレーム814に対応する仮想Iフレーム816を生成する。次いで、仮想Iフレーム816は、データリポジトリの中のチャネル802内に記憶され得る。
しかしながら、開示された実施形態は、仮想Iフレーム生成のためのそのような例示的な技法に限定されない。例えば、上記で説明される差分符号化スキームのうちの1つ以上(例えば、H.264規格またはH.265規格のIフレームアルゴリズム)は、ビデオエンコーダ200が、対応する参照フレームを生成するために、新たに符号化されたPフレームを復号することを義務付け得る。そのような実施形態では、Pフレーム814を符号化すると、ビデオコーデック200は、データリポジトリの中のチャネル802内に記憶され得る仮想Iフレーム816を生成するように、対応するIフレームアルゴリズムを使用して、Pフレーム814の参照データを直接再符号化することによって、切り替え点を生成し得る。
同様に、ビデオコーデックは、Pフレーム818に関連付けられる復号された画像に基づいて、仮想Iフレーム820を生成して記憶することによって、チャネル804内で対応する切り替え点を確立し得、Pフレーム822に関連付けられる復号された画像に基づいて、仮想Iフレーム824を生成して記憶することによって、チャネル806内で対応する切り替え点を確立し得る。さらに、ビデオコーデック200は、時間的位置に対応する仮想Iフレームを生成して記憶することによって、チャネル802、804、および806の圧縮ビデオコンテンツ内の任意の追加のまたは代替的な時間的位置で(例えば、1分、3分等で)切り替え点を生成し得る。
一実施形態では、符号化されたビデオコンテンツのチャネル(例えば、チャネル802、804、および806)は、ビットレートのうちの1つ以上で、ストリーミングコンテンツへのアクセスをクライアントデバイス(例えば、クライアントデバイス112および114)に提供する、ウェブサーバ(例えば、データリポジトリ124およびデオ管理サーバ122)に関連付けられるデータリポジトリ内に記憶され得る。例えば、クライアントデバイス112は、上記で概説される通信プロトコルのうちの1つ以上を使用して、通信ネットワーク(例えば、通信ネットワーク130)を経由してビデオ管理サーバ122との接続を確立し得る。
そのような実施形態では、ビデオ管理サーバ122は、確立された接続を経由したストリーミングダウンロードに利用可能なビデオコンテンツの1つ以上のチャネルを識別する情報をクライアントデバイス112に提供し得る。例えば、提供された情報は、利用可能なビデオおよびオーディオコンテンツのプレイリスト、異なるビットレートチャネルの数、各チャネルのビットレート、コンテンツに関連付けられる持続時間(例えば、固定持続時間または無限持続時間)、暗号化情報、コーデックを識別する情報、および切り替え点の間の距離(例えば、フレームの数または時間的時期)を含み得るが、それらに限定されない。さらに、一実施形態では、コンテンツプレイリストへの更新は、規則的な間隔で、ビデオコンテンツの特定の要素の満了時に、または当業者に明白であり、クライアントデバイス112およびビデオ管理サーバ122にとって適切である、任意の追加のまたは代替的な間隔で、クライアントデバイス112に提供され得る。
提供された情報の受信時に、クライアントデバイス112は、クライアントデバイス112のユーザに表示するために提供された情報をレンダリングするように、ウェブブラウザまたは他の適切なアプリケーションを実行し得る。そのような実施形態では、クライアントデバイス112のユーザは、クリックし、一連のキーストロークを入力し、または別様に、ストリーミングダウンロードのためのビデオコンテンツの表示された要素のうちの1つ以上の選択を示し得る。ユーザの選択に応答して、クライアントデバイス112は、ネットワーク130を経由してビデオ管理サーバ122に伝送され得る、選択されたビデオコンテンツの要求を生成し得る。
一実施形態では、選択されたメディアコンテンツの要求は、ビデオコンテンツの最初の部分を識別する情報、およびビデオコンテンツの伝送のための初期帯域幅を含み得る。例えば、クライアントデバイス112は、ネットワーク130に関連付けられる現在の条件を測定し得、現在のネットワーク条件と整合する選択されたコンテンツの利用可能なビットレートのうちの1つを識別する情報を含み得る。
代替として、ビデオコンテンツの初期要求は、伝送ビットレートのデフォルト値、クライアントデバイス112の機能性に対応する伝送ビットレート、ユーザによって特定される伝送ビットレート、または当業者に明白であり、選択されたビデオコンテンツおよびクライアントデバイスにとって適切である、任意の追加のまたは代替的な伝送ビットレートに関連付けられ得る。要求の受信時に、ビデオ管理サーバ122は、例えば、図9を参照して以下で説明されるように、クライアントデバイス112が要求されたビデオコンテンツの後続の部分のビットレートをそれによって適応的に調整し得る機構を特定する追加の情報とともに、要求されたビデオコンテンツの最初の部分をクライアントデバイス112に伝送し得る。
図9は、開示された実施形態による、動的に決定された伝送ビットレートでビデオコンテンツを要求デバイスに伝送するための例示的な方法900を図示する。方法900は、対応する切り替え点に配置される1つ以上の仮想Iフレームを使用して、ウェブサーバ(例えば、ビデオ管理サーバ122)が要求されたビデオコンテンツの伝送ビットレートで修正することを可能にする、機能性を提供し得る。
図9では、サーバ122は、ステップ902で、クライアントデバイス(例えば、クライアントデバイス112)からビデオコンテンツの一部分の要求を受信し得る。上記で議論されるように、要求は、上記で概説される通信プロトコルのうちの1つ以上(例えば、TCP/IP)に従って、通信ネットワーク130を経由してクライアントデバイス112から伝送され得、要求は、クライアントデバイス112に利用可能なビデオコンテンツの1つ以上の要素を識別する、ウェブサーバによって提供される情報に応答し得る。さらに、そのような実施形態では、受信した要求は、例えば、クライアントデバイス112による要求の伝送中のネットワーク130の条件と整合する、要求されたコンテンツの伝送のためのビットレートを提案し得る。
ステップ904では、サーバ122は、データリポジトリ(例えば、データリポジトリ124)から要求されたビデオコンテンツの最初の部分を取得し得、要求されたビデオコンテンツの最初の部分の再生についてクライアントデバイス112に指示する情報を生成し得る。例えば、サーバ122は、要求された伝送ビットレートの閾値に合致するか、または代替として閾値の範囲内にある伝送ビットレートで符号化されたビデオコンテンツの最初の部分を選択し得る。さらに、一実施形態では、生成された情報は、要求されたコンテンツのための1つ以上の切り替え点、および切り替え点で利用可能な1つ以上の追加のビットレートを識別する、要求されたコンテンツに対するメディア記述子に対応し得る。
ステップ906では、サーバ122は、要求されたビデオコンテンツの最初の部分および対応する再生情報をクライアントデバイス112に伝送し得る。一実施形態では、伝送は、上記で概説される通信プロトコルのうちの1つ以上に従って、ネットワーク130を経由して起こり得る。加えて、そのような実施形態では、要求されたビデオコンテンツの最初の部分および再生情報は、当業者に明白であり、クライアントデバイス112およびサーバ122にとって適切である、いくつかの暗号化技法のうちのいずれかを使用して、クライアントデバイス112への伝送に先立って暗号化され得る。
クライアントデバイス112は、対応する伝送帯域幅で、要求されたコンテンツの最初の部分を受信し得る。最初の部分と同時に、クライアントデバイス112は、要求されたコンテンツに関連付けられる再生情報を受信し得る。上記で説明されるように、再生情報は、要求されたコンテンツの伝送に利用可能である、1つ以上の追加の帯域幅を識別する情報、およびクライアントデバイス112が異なる伝送ビットレートに切り替わり得る1つ以上の切り替え点を識別する情報を含み得るが、それらに限定されない。そのような実施形態では、再生情報、および要求されたビデオコンテンツの最初の部分は、ネットワーク130の共通通信チャネル上で受信され得、または代替として、再生情報は、ネットワーク130の専用バックチャネルを使用して、クライアントデバイス112に伝送され得る。
上記で説明されるように、クライアントデバイス112は、要求されたコンテンツの最初の部分の伝送中にネットワーク120の条件(例えば、現在の帯域幅)を監視し得る。例えば、ネットワーク条件は、要求されたコンテンツの最初の部分の伝送中に連続的に、または代替として、伝送中に個別的な間隔で修正され得る。さらに、一実施形態では、クライアントデバイス112は、規則的な間隔で、または代替として、特定のネットワーク条件の検出に応答して、現在のネットワーク条件を識別する情報をサーバ122に伝送するように構成され得る。例えば、ネットワークの状態を識別する情報は、ネットワーク130の利用可能な帯域幅が所定の閾値を下回るときにサーバ122に伝送され得る。
サーバ122は、ステップ908で、伝送状態情報を受信し得、ステップ910で、要求されたビデオコンテンツに関連付けられる現在の伝送ビットレートが、ネットワーク130の現在の条件を考慮して大きすぎるかどうかを決定し得る。現在の伝送が現在のネットワーク条件にとって大きすぎる場合、サーバ122は、ステップ912で、圧縮ビデオコンテンツがより低い伝送ビットレートで利用可能であるかどうかを決定し得る。例えば、サーバ122は、データリポジトリ124が現在のビットレートより小さいビットレートで符号化されたビデオコンテンツを記憶しているかどうかを決定するために、データリポジトリ124にアクセスし得る。
サーバ122が、ステップ912で、より低いビットレートで符号化される圧縮ビデオコンテンツの場所を特定することができない場合には、サーバ122は、ステップ914で、現在の伝送ビットレートで圧縮ビデオコンテンツをクライアントデバイス112に伝送し続ける。例えば、図8を参照して、要求されたビデオコンテンツが、チャネル806の「低」帯域幅でクライアントデバイスに伝送されている場合、サーバ122は、ネットワーク130の状態にかかわらず、さらに低いビットレートで符号化された、要求されたビデオコンテンツを取得することができない。方法900は、ステップ916で完了する。
代替として、サーバ122が、より低いビットレートで符号化された、要求されたビデオコンテンツの一部分を識別することができる場合、サーバ122は、次の切り替え点で要求されたコンテンツの伝送ビットレートを低減することを決定し得る。そのような実施形態では、サーバ122は、ステップ918で、その次の切り替え点まで、現在のビットレートでPフレームをクライアントデバイス112に伝送し続ける。
例えば、図8を参照して、現在の伝送ビットレートが、チャネル804の「中」ビットレートに対応し得、サーバ122が、1分マークと2分マークとの間の時間的位置で伝送状態情報を受信し得る。ステップ912では、サーバ122は、要求されたビデオコンテンツの一部分がチャネル806の「低」ビットレートで利用可能であることを識別し得、ステップ918では、サーバ122は、次の切り替え点、例えば、2分マークまで、チャネルの「中」帯域幅でPフレームをクライアントデバイス112に伝送し続け得る。
ステップ920では、サーバ122は、次の切り替え点で、識別されたより低いビットレートに対応する、仮想Iフレームを要求し得る。要求された仮想Iフレームの受信時に、サーバ122は、識別されたより低いビットレートで、新しいピクチャ群(GOP)を開始し得、次いで、ステップ922で仮想Iフレームおよび対応するPフレームをクライアント102に伝送し得る。例えば、図8を参照して、サーバ122は、「低」ビットレートチャネルに関連付けられる仮想Iフレーム824を要求し得、後に、「低」伝送帯域幅で仮想Iフレーム824および対応するPフレームをクライアントデバイス112に伝送し得る。方法900は、後に、ステップ916で完了する。
ステップ910を再び参照すると、サーバ122が、要求されたビデオコンテンツの現在の伝送ビットレートが現在のネットワーク条件と整合することを決定する場合、サーバ122は、ステップ924で、現在のネットワーク条件が、より大きい伝送ビットレートに適応するであろうかどうかを決定する。現在のネットワーク条件が、より大きい伝送ビットレートにも、より小さい伝送ビットレートにも適応しないであろう場合には、現在の伝送ビットレートは、現在のネットワーク条件に最適であり、サーバ122は、ステップ914で、現在の伝送ビットレートで要求されたビデオコンテンツをクライアントデバイス112に伝送し続ける。方法900は、後に、ステップ916で完了する。
しかしながら、サーバ122が、ステップ924で、現在のネットワーク条件が高い伝送ビットレートに適応するであろうと決定する場合には、サーバ122は、ステップ926で、要求されたビデオコンテンツの一部分が、より高い伝送ビットレートで利用可能であることを決定する。例えば、サーバ122は、データリポジトリ124が、現在の伝送ビットレートより大きいビットレートで符号化されたビデオコンテンツを記憶しているかどうかを決定するために、データリポジトリ124にアクセスし得る。
サーバ122が、ステップ926で、より高いビットレートで符号化された圧縮ビデオコンテンツの場所を特定できない場合、方法900は、ステップ914に戻り、サーバ122は、現在の伝送ビットレートで圧縮ビデオコンテンツをクライアントデバイス112に伝送し続ける。例えば、図8を参照して、要求されたビデオコンテンツが、チャネル802の「高」帯域幅でクライアントデバイスに伝送されている場合、サーバ122は、ネットワーク130の状態にかかわらず、より高いビットレートで符号化された、要求されたビデオコンテンツを取得することができない。方法900は、ステップ916で完了する。
代替として、サーバ122が、より高いビットレートで符号化された、要求されたビデオコンテンツの一部分を識別することができる場合、サーバ122は、次の切り替え点で要求されたコンテンツの伝送ビットレートを増加することを決定し得る。そのような実施形態では、サーバ122は、ステップ928で、その次の切り替え点まで、現在のビットレートでPフレームをクライアントデバイス112に伝送し続ける。
例えば、図8を参照すると、現在の伝送ビットレートが、チャネル804の「中」ビットレートに対応し得、サーバ122が、1分マークと2分マークとの間の時間的位置で伝送状態情報を受信し得る。ステップ912では、サーバ122は、要求されたビデオコンテンツの一部分がチャネル802の「高」ビットレートで利用可能であることを識別し得、ステップ928では、サーバ122は、次の切り替え点、例えば、2分のマークまで、チャネルの「中」帯域幅でPフレームをクライアントデバイス112に伝送し続け得る。
ステップ930では、サーバ122は、次の切り替え点で、識別されたより高いビットレートに対応する、仮想Iフレームを要求し得る。要求された仮想Iフレームの受信時に、サーバ122は、識別されたより高いビットレートで、新しいピクチャ群(GOP)を開始し得、次いで、ステップ932で仮想Iフレームおよび対応するPフレームをクライアント102に伝送し得る。例えば、図8を参照して、サーバ122は、「高」ビットレートチャネルに関連付けられる仮想Iフレーム816を要求し得、後に、「高」伝送帯域幅で仮想Iフレーム816および対応するPフレームをクライアントデバイス112に伝送し得る。方法900は、後に、ステップ916で完了する。
図10Aおよび10Bは、開示された実施形態による、6分の期間にわたる符号化されたビデオコンテンツの伝送ビットレートに対する例示的な調整を図示する。例えば、図10Aでは、サーバ122は、「低」の伝送ビットレートで、符号化されたビデオコンテンツの最初の部分をクライアントデバイス112に伝送し得る。1分での第1の切り替え点1002に先立って、サーバ122は、現在のネットワーク条件が、より高い伝送ビットレートに適応するであろうと決定し得、図10Bで描写されるように、サーバ122は、第1の切り替え点1002で「中」ビットレートに関連付けられる仮想Iフレームを要求する。サーバ122は、第1の切り替え点1002まで、「低」帯域幅でPフレームを伝送し続け、後に、第1の切り替え点1002の後に、「中」ビットレートで、仮想Iフレームおよび対応するPフレームをクライアントデバイス112に伝送する。
同様に、2分での第2の切り替え点1004に先立って、サーバ122は、現在のネットワーク条件が、依然としてより高い伝送ビットレートに適応するであろうと決定し得、図10Bで描写されるように、サーバ122は、「高」ビットレートに関連付けられる仮想Iフレームを要求し得る。そのような実施形態では、サーバ122は、第2の切り替え点1004まで、「中」帯域幅でPフレームを伝送し続け、後に、第2の切り替え点1004の後に、「高」ビットレートで、仮想Iフレームおよび対応するPフレームをクライアントデバイス112に伝送する。
しかしながら、サーバ122は、第3の切り替え点1006に先立つネットワーク130の条件が「高」ビットレートをサポートできないことを決定し得る。そのような実施形態では、図10Bで概説されるように、サーバ122は、第3の切り替え点1006で、「中」ビットレートに関連付けられる仮想Iフレームを要求し得る。サーバ122は、第3の切り替え点1006まで、「高」帯域幅でPフレームを伝送し続け、後に、第3の切り替え点1006の後に、「中」ビットレートで、仮想Iフレームおよび対応するPフレームをクライアントデバイス112に伝送する。
図10Aおよび10Bの例示的実施形態では、サーバ122は、「中」伝送ビットレートが第4の切り替え点1008でのネットワーク条件に最適であり、したがって、ビットレートの変更が課されないことを決定し得る。しかしながら、第5の切り替え点1010では、サーバ122は、ネットワーク130がより高い伝送ビットレートをサポートできることを示す、状態情報を受信し得る。そのような実施形態では、図10Bで描写されるように、サーバ122は、第5の切り替え点1010で「高」ビットレートに関連付けられる仮想Iフレームを要求し得る。サーバ122は、第2の切り替え点1006まで、「中」帯域幅でPフレームの伝送を続け、後に、第5の切り替え点1010の後に、「高」ビットレートで、仮想Iフレームおよび対応するPフレームをクライアントデバイス112に伝送し得る。
図11Aおよび11Bは、開示された実施形態による、6分の期間にわたる符号化されたビデオコンテンツの伝送ビットレートに対する追加の一式の例示的な調整を図示する。上記で説明されるように、サーバ122は、「低」の伝送ビットレートで、図11Aおよび11Bの符号化されたビデオコンテンツの最初の部分をクライアントデバイス112に伝送し得る。しかしながら、1分での第1の切り替え点1102に先立って、サーバ122は、現在のネットワーク条件が、より高い伝送ビットレートに適応するであろうと決定し得、図11Bで描写されるように、サーバ122は、第1の切り替え点1102で「中」ビットレートに関連付けられる仮想Iフレームを要求する。サーバ122は、第1の切り替え点1102まで、「低」帯域幅でPフレームを伝送し続け、後に、第1の切り替え点1102の後に、「中」ビットレートで、仮想Iフレームおよび対応するPフレームをクライアントデバイス112に伝送し得る。
しかしながら、図10Aおよび10Bの実施例とは対照的に、サーバ122は、「中」伝送ビットレートが、後続の切り替え点1104、1106、1108、および1110の各々でのネットワーク条件に最適であることを決定する。そのような実施形態では、現在のGOPに関するPフレーム、またはIフレームおよび後続のGOPに関連付けられる後続のPフレームの伝送は、「中」ビットレートで継続し得る。
上記で説明される実施形態では、クライアントデバイス112は、符号化されたビデオコンテンツの伝送中に、通信ネットワーク、例えば、通信ネットワーク130の1つ以上の条件を測定するように構成される。そのような実施形態では、現在のネットワーク条件を示す情報は、周期的に、または上記で説明されるように特定のネットワーク事象に応答して、サーバ122に配信され得る。
しかしながら、開示された実施形態は、そのようなネットワーク測定技法に限定されない。例えば、クライアントデバイス112は、受信時に、および表示に先立って、符号化されたビデオコンテンツの少なくとも一部分をバッファに記憶し得る。そのような実施形態では、クライアントデバイス112の記憶バッファ内のデータの量は、ネットワーク130の現在の条件を示し得る。例えば、クライアントデバイス112におけるバッファリングされたデータの量が閾値を超える場合、対応する伝送ビットレートが大きすぎる場合があり、伝送ビットレートを低減させる必要性を示す情報が、上記で説明されるように、状態情報としてサーバ122に伝送され得る。
さらに、開示された実施形態では、サーバ122は、クライアントデバイス112によってサーバ122に伝送され得る、通信ネットワーク(例えば、通信ネットワーク130)の1つ以上の条件に基づいて、ビデオコンテンツの伝送ビットレートを調整するかどうかを決定する。開示された実施形態は、そのような調整機構に限定されず、追加の実施形態では、サーバ122は、クライアントデバイス112のユーザからの要求に基づいて、伝送ビットレートを調整し得る。例えば、ユーザは、サーバ122に関連付けられるウェブページまたは他のグラフィカルユーザインターフェースにアクセスし得、クライアントデバイス112から、伝送ビットレートを増加または低減させる肯定的な要求を伝送し得る。そのような実施形態では、伝送ビットレートに対する修正は、ネットワーク条件ではなく、代わりに、クライアントデバイス112の1つ以上の能力に基づいて開始され得る。
加えて、開示された実施形態は、記憶されたビデオコンテンツ内の固定時間的位置に配置される切り替え点、例えば、図10Aおよび10Bの1分間隔で配置される、切り替え点1002、1004、1006、1008、および1010を含む。開示された実施形態は、そのような固定切り替え点に限定されず、追加の実施形態では、そのような切り替え点の時間的位置は、ネットワーク条件の変化、デバイス条件の変化、またはコンテンツの1つ以上の特性に応答して、ビデオコーデック(例えば、オンチップビデオコーデック200)によって、または1つ以上のクライアントデバイス(例えば、クライアントデバイス112および114)によって、適応的に決定され得る。
さらに、追加の実施形態では、クライアントデバイス(例えば、クライアントデバイス112)またはウェブサーバ(例えば、サーバ122)のうちの1つ以上は、追加の切り替え点が固定切り替え点に先立って生成されることを要求し得る。例えば、図10Aおよび10Bを参照して、クライアントデバイス112は、第2の切り替え点1004のすぐ後に、ネットワーク条件の有意な劣化を被り得る。そのような実施形態では、切り替え点の即時生成の要求が、サーバ122に、および加えて、または代替として、通信ネットワーク130のバックチャネルを経由して圧縮ビデオコンテンツに関連付けられるビデオコーデックに伝送され得る。要求の受信時に、ビデオコーデックは、クライアントデバイス112への伝送のために、サーバ122に関連付けられるデータリポジトリ(例えば、リポジトリ124)内に記憶され得る、または代替として、クライアントデバイス112に直接伝送され得る、対応するIフレームを生成し得る。
上記で説明されるように、クライアントデバイス112および114、ビデオ管理サーバ122、ならびにデータリポジトリ124は、少なくとも1つのプロセッサまたはコンピュータベースのシステムを伴って実装することができる。図12は、本開示による実施形態が実装され得る、例示的なコンピュータシステム1200を図示する。コンピュータシステム1200は、プロセッサ1202等の1つ以上のプロセッサを含む。プロセッサ1202は、バスまたは通信ネットワーク、例えば、図1のネットワーク130等の通信インフラストラクチャ1206に接続される。
コンピュータシステム1200はまた、メインメモリ1208、例えば、ランダムアクセスメモリ(RAM)も含み、二次メモリ1210を含み得る。二次メモリ1210は、例えば、ハードディスクドライブ1212、および/または磁気テープドライブ、光ディスクドライブ、CD/DVDドライブ等を表す、取り外し可能な記憶ドライブ1214を含み得る。取り外し可能な記憶ドライブ1214は、周知の様式で取り外し可能な記憶ユニット1218から読み取り、および/またはそれに書き込む。取り外し可能な記憶ユニット1218は、取り外し可能な記憶ドライブ1214によって読み取られ、かつそれに書き込まれる、磁気テープ、光ディスク、または他の記憶媒体を表す。理解されるように、取り外し可能な記憶ユニット1218は、プロセッサ1202によって実行される、コンピュータプログラム、命令のセット、コード、またはデータをその中に記憶している、コンピュータ読み取り可能な媒体を表すことができる。
代替実施形態では、二次メモリ1210は、コンピュータプログラムまたは命令のセットがコンピュータシステム1200にロードされることを可能にするための他の手段を含み得る。そのような手段は、例えば、取り外し可能な記憶ユニット1222、およびインターフェース1220を含み得る。そのような手段の実施例は、取り外し可能メモリチップ(例えば、EPROM、RAM、ROM、DRAM、EEPROM、フラッシュメモリデバイス、または他の揮発性あるいは不揮発性メモリデバイス)、および関連ソケット、または命令およびデータが取り外し可能な記憶ユニット1222からコンピュータシステム1200へ転送されることを可能にする、他の取り外し可能な記憶ユニット1222およびインターフェース1220を含み得る。
コンピュータシステム1200はまた、通信インターフェース1224等の1つ以上の通信インターフェースを含み得る。通信インターフェース1224は、コンピュータプログラム(または命令のセット)およびデータが、コンピュータシステム1200と外部デバイスとの間で転送されることを可能にする。通信インターフェース1224の実施例は、モデム、ネットワークインターフェース(例えば、Ethernet(登録商標)カード)、通信ポート、PCMCIAスロットおよびカード等を含み得る。コンピュータプログラム(または命令のセット)およびデータは、通信インターフェース1224によって受信されることが可能な電子、電磁、光学、または他の信号であり得る、信号226の形態で、通信インターフェース1224を介して転送され得る。これらの信号1226は、通信経路(例えば、チャネル1228)を介して通信インターフェース1224に提供される。チャネル1228は、信号1226を搬送し、ワイヤ、ケーブル、光ファイバ、RFリンク、および/または他の通信チャネルを使用して実装され得る。本発明の一実施形態では、信号1226は、プロセッサ1202に送信されるデータパケットを備えている。処理されたパケットを表す情報もまた、通信経路1228を通してプロセッサ202から、信号1226の形態で送信することができる。
さらに、図12では描写されていないが、クライアントデバイス112および114、ビデオ管理サーバ122、ならびにデータリポジトリ124のうちの1つ以上はまた、ネットワークカメラ102および104、ならびにビデオコーディングユニット116によって提供されるビデオコンテンツを復号することが可能なハードウェアまたはソフトウェアベースのビデオコーデックを含み得る。例えば、クライアントデバイス112および114、ビデオ管理サーバ122、ならびにデータリポジトリ124は、高解像度ビデオに対するH.264規格に従って符号化されるビデオコンテンツを復号して操作するように、上記で説明されるようなオンチップビデオコーデック200と整合するハードウェアベースのコーデックユニットを含み得る。
「記憶装置」および「記憶媒体」という用語は、メインメモリ1208、二次メモリ1210、ハードディスクドライブ1212にインストールされたハードディスク、ならびに取り外し可能な記憶ユニット1218および1222を含むが、それらに限定されない、特定のデバイスを指し得る。さらに、「コンピュータ読み取り可能な媒体」という用語は、それぞれ、コンピュータプログラムおよび/または命令のセットをコンピュータシステム1200のプロセッサ1202に提供する、ハードディスクドライブ1212にインストールされたハードディスク、メインメモリ1208および二次メモリ1210の任意の組み合わせ、ならびに取り外し可能な記憶ユニット1218および1222を含むが、それらに限定されない、デバイスを指し得る。「コンピュータ読み取り可能な媒体」という用語はまた、記憶ユニット、例えば、オンチップビデオコーデック200のプロセッサ242および対応するキャッシュ244と通信しており、コンピュータプログラムおよび/または命令のセットをコーデック200のプロセッサに提供する、記憶ユニット280を指し得る。そのようなコンピュータプログラムおよび命令のセットは、1つ以上のコンピュータ読み取り可能な媒体内に記憶することができる。加えて、または代替として、コンピュータプログラムおよび命令のセットはまた、通信インターフェース1224を介して受信され、1つ以上のコンピュータ読み取り可能な媒体上に記憶され得る。
そのようなコンピュータプログラムおよび命令は、プロセッサ1202によって実行されると、プロセッサ1202が本明細書で説明されるコンピュータ実装方法を行うことを可能にする。同様に、プロセッサ242によって実行されると、そのようなコンピュータプログラムおよび命令はまた、プロセッサ242が本明細書で説明されるコンピュータ実装方法を行うことも可能にする。プログラムおよび命令のセットの実施例は、例えば、コンパイラによって生成されるコード等の機械コード、およびインタープリタを使用してプロセッサ1202および242によって実行することができる、高レベルコードを含有するファイルを含み得る。
さらに、本明細書で説明されるコンピュータ実装方法は、システム1200のプロセッサ1202等のコンピュータシステムの単一のプロセッサ上で実装することができる。しかしながら、追加の実施形態では、開示されたコンピュータ実装方法は、単一のコンピュータシステム内の1つ以上のプロセッサを使用して、および加えて、または代替として、ネットワークを介してリンクされる別個のコンピュータシステム内の1つ以上のプロセッサ上で実装され得る。
加えて、本明細書で説明されるコンピュータ実装方法は、(例えば、高解像度ビデオに対するH.264規格、および高効率ビデオコーディングに対するH.265規格に従って)原画像データを符号化し、圧縮ビデオコンテンツを生成する、ハードウェアベースのビデオコーデック(例えば、図2のオンチップビデオコーデック200)によって行われ得る。開示された実施形態は、そのようなオンチップビデオコーデックに限定されず、追加の実施形態では、ソフトウェアベースのビデオコーデックが、原画像データを符号化し、圧縮ビデオコンテンツを生成するように、プロセッサ(例えば、図12のプロセッサ1202)によって実行され得る。
種々の実施形態が、添付図面を参照して本明細書で説明されている。しかしながら、以下に続く請求項に記載されるような本発明のより広い範囲から逸脱することなく、種々の修正および変更がそれに行われ得、追加の実施形態が実装され得ることが、明白となるであろう。
さらに、本開示の1つ以上の実施形態の仕様および実践を考慮することから、他の実施形態が当業者に明白となるであろう。したがって、本開示および本明細書の実施例は、例示的にすぎないと見なされ、本発明の真の範囲および精神は、例示的な請求項の以下の一覧によって示されることが意図される。

Claims (58)

  1. コンピュータ実装方法であって、
    ビデオコンテンツのストリームを受信することと、
    ビデオコーデックを使用して、圧縮ビデオデータを生成するために、前記ビデオコンテンツストリームを符号化することであって、前記圧縮ビデオデータは、イントラフレームと、複数の対応するインターフレームとを備えている、ことと、
    前記圧縮ビデオデータをバッファ内に記憶することと
    を含み、
    前記符号化することは、
    前記符号化されたイントラフレームに関連付けられているデータを取得することと、
    前記イントラフレームデータに基づいて、前記インターフレームのうちの対応する1つを生成するために、前記ビデオコンテンツストリームの一部分を符号化することと、
    前記バッファに記憶されたデータの量が第1の閾値を超えるかどうかを決定することと、
    前記バッファ中の前記データの量が前記第1の閾値を超える場合、前記生成されたインターフレームを復号し、前記復号されたインターフレームデータに基づいて仮想イントラフレームを計算することと、
    前記バッファの中に記憶するために、前記対応するインターフレームとともに前記仮想イントラフレームを出力することと
    を含む、方法。
  2. 前記符号化することは、前記イントラフレームを生成するために、前記ビデオコンテンツストリームの第1の部分を符号化することをさらに含み、前記第1の部分は、前記インターフレームに関連付けられている前記ビデオコンテンツストリームの前記一部分に先行している、請求項1に記載の方法。
  3. 前記符号化することは、
    前記バッファリングされたデータの量が前記第1の閾値を超えない場合、前記圧縮ビデオデータに関連付けられているピクチャ群長を計算することと、
    前記計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定することと、
    前記計算されたピクチャ群長が前記所定の閾値長を超えない場合、追加のインターフレームを生成するために、前記ビデオコンテンツストリームの追加の部分を符号化することと
    をさらに含む、請求項1に記載の方法。
  4. 前記バッファは、1つ以上の以前に符号化されたイントラフレームおよび対応するインターフレームの群を備え、
    前記計算されたピクチャ群長が前記所定の閾値長を超える場合、前記以前に符号化されたイントラフレームおよび対応するインターフレームの群を破棄することを含む、
    請求項3に記載の方法。
  5. 前記符号化することは、前記バッファリングされたデータの量が第2の閾値を超えるかどうかを決定することをさらに含み、前記第2の閾値は、前記第1の閾値よりも大きい、請求項1に記載の方法。
  6. 前記符号化することは、前記バッファリングされたデータの量が前記第2の閾値を超える場合、前記仮想イントラフレームを維持し、前記仮想イントラフレームに先行する符号化されたビデオコンテンツを破棄することをさらに含む、請求項5に記載の方法。
  7. 引き金となる出来事を示す情報を受信することと、
    前記受信した情報に基づいて、前記バッファリングされたデータの少なくとも一部分を受信側に伝送する命令を生成することと
    をさらに含む、請求項1に記載の方法。
  8. 前記引き金となる出来事は、ビデオコンテンツの要求、前記受信したビデオストリーム内の所定の事象の発生、インターフェースを通した所定のデータの受信、またはセンサによる所定の事象の検出のうちの少なくとも1つを含む、請求項7に記載の方法。
  9. 前記命令は、
    前記バッファリングされたデータが前記イントラフレームおよび前記仮想イントラフレームを含むかどうかを決定することと、
    前記バッファリングされたデータが前記イントラフレームおよび前記仮想イントラフレームを含む場合、前記仮想イントラフレームを破棄し、前記対応するインターフレームを維持することと、
    前記イントラフレームに基づいて前記バッファリングされたデータ部分を生成することと
    をさらに含む、請求項7に記載の方法。
  10. 前記バッファリングされたデータが前記仮想イントラフレームを含み、前記イントラフレームを含まないかどうかを決定することと、
    前記バッファリングされたデータが前記仮想イントラフレームを含み、前記イントラフレームを含まない場合、前記仮想イントラフレームに基づいて前記バッファリングされたデータ部分を生成することと
    をさらに含む、請求項7に記載の方法。
  11. 圧縮ビデオデータの少なくとも1つのフレームを受信することと、
    前記受信したフレームを復号することと、
    前記復号されたフレームがイントラフレームに対応するかどうかを決定することと、
    前記復号されたフレームがイントラフレームに対応する場合、少なくとも前記復号されたフレームをデータリポジトリに記憶することと
    をさらに含む、請求項1に記載の方法。
  12. 前記復号されたフレームがインターフレームに対応することを決定することと、
    前記復号されたフレームがインターフレームである場合、前記受信したデータに関連付けられているピクチャ群長を計算することと、
    前記計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定することと、
    前記計算されたピクチャ群長が前記所定の閾値長を超えない場合、少なくとも前記復号されたインターフレームを前記データリポジトリ内に記憶することと
    をさらに含む、請求項11に記載の方法。
  13. 前記計算されたピクチャ群長が前記所定の閾値長を超える場合、前記復号されたインターフレームデータに基づいて追加のイントラフレームを生成することと、
    少なくとも前記追加のイントラフレームを前記データリポジトリ内に記憶することと
    をさらに含む、請求項12に記載の方法。
  14. 前記圧縮ビデオコンテンツは、ビットレートの対応する値に関連付けられており、前記符号化することは、前記圧縮ビデオコンテンツ内の対応する時間的位置で少なくとも1つの切り替え点を確立することをさらに含む、請求項1に記載の方法。
  15. 前記切り替え点は、前記圧縮ビデオコンテンツの受信側または配信側のうちの少なくとも1つがビットレートを修正することを可能にする、請求項14に記載の方法。
  16. 前記圧縮ビデオデータ、および前記切り替え位置に関連付けられている情報をデータリポジトリに記憶する命令を生成することをさらに含む、請求項14に記載の方法。
  17. 前記切り替え点を確立することは、
    前記対応する時間的位置に関連付けられているインターフレームを識別することと、
    前記識別されたインターフレームを復号し、前記復号されたインターフレームデータに基づいて仮想イントラフレームを計算することと、
    前記時間的位置で前記データリポジトリの中に記憶するために、前記仮想イントラフレームを出力することと
    を含む、請求項16に記載の方法。
  18. 前記符号化することは、前記圧縮ビデオコンテンツ内の対応する時間的位置で複数の切り替え点を確立することをさらに含む、請求項14に記載の方法。
  19. 前記対応する時間的位置は、前記圧縮ビデオコンテンツ内で固定間隔で配置されている、請求項18に記載の方法。
  20. 前記方法は、前記切り替え位置を作成する要求を受信することをさらに含み、前記要求は、前記圧縮ビデオコンテンツ内の時間的位置を識別する情報を備え、
    前記符号化することは、前記要求に応答して、前記識別された時間的位置で前記切り替え点を確立することをさらに含む、請求項14に記載の方法。
  21. 装置であって、
    ビデオコンテンツのストリームを符号化して圧縮ビデオデータを生成するように構成されているビデオコーデックであって、前記圧縮ビデオデータは、イントラフレームと、複数の対応するインターフレームとを備えている、ビデオコーデックと、
    前記ビデオコーデックユニットに連結され、前記圧縮ビデオデータをバッファ内に記憶するように構成されている記憶装置と
    を備え、
    前記ビデオコーデックは、
    前記符号化されたイントラフレームに関連付けられているデータを取得することと、
    前記イントラフレームデータに基づいて、前記インターフレームのうちの対応する1つを生成するために、前記ビデオコンテンツストリームの一部分を符号化することと、
    前記バッファに記憶されたデータの量が第1の閾値を超えるかどうかを決定することと、
    前記バッファリングされたデータの量が前記第1の閾値を超える場合、前記生成されたインターフレームを復号し、前記復号されたインターフレームデータに基づいて仮想イントラフレームを計算することと、
    前記バッファの中に記憶するための出力として、前記対応するインターフレームとともに前記仮想イントラフレームを提供することと
    を行うようにさらに構成されている、装置。
  22. 前記ビデオコーデックは、前記イントラフレームを生成するために、前記ビデオコンテンツストリームの第1の部分を符号化するようにさらに構成され、前記第1の部分は、前記インターフレームに関連付けられている前記ビデオコンテンツストリームの前記一部分に先行している、請求項21に記載の装置。
  23. 前記ビデオコーデックは、
    前記バッファリングされたデータの量が前記第1の閾値を超えない場合、前記圧縮ビデオデータに関連付けられているピクチャ群長を計算することと、
    前記計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定することと、
    前記計算されたピクチャ群長が前記所定の閾値長を超えない場合、追加のインターフレームを生成するために、前記ビデオコンテンツストリームの追加の部分を符号化することと
    を行うようにさらに構成されている、請求項21に記載の装置。
  24. 前記バッファは、1つ以上の以前に符号化されたイントラフレームおよび対応するインターフレームの群を備え、前記計算されたピクチャ群長が前記所定の閾値長を超える場合、前記ビデオコーデックは、前記以前に符号化されたイントラフレームおよび対応するインターフレームの群を破棄するようにさらに構成されている、請求項23に記載の装置。
  25. 前記ビデオコーデックは、前記バッファリングされたデータの量が第2の閾値を超えるかどうかを決定するようにさらに構成され、前記第2の閾値は、前記第1の閾値よりも大きい、請求項21に記載の装置。
  26. 前記ビデオコーデックは、前記バッファリングされたデータの量が前記第2の閾値を超える場合、前記仮想イントラフレームを維持し、前記仮想イントラフレームに先行する符号化されたビデオコンテンツを破棄するようにさらに構成されている、請求項25に記載の装置。
  27. 前記ビデオコーデックは、引き金となる出来事を示す情報を受信し、前記受信した情報に基づいて、前記バッファリングされたデータの少なくとも一部分を受信側に伝送する命令を生成するようにさらに構成されている、請求項21に記載の装置。
  28. 前記ビデオコーデックは、
    前記バッファリングされたデータが前記イントラフレームおよび前記仮想イントラフレームを含むことを決定することと、
    前記バッファリングされたデータが前記イントラフレームおよび前記仮想イントラフレームを含む場合、前記仮想イントラフレームを破棄し、前記対応するインターフレームを維持することと、
    前記イントラフレームに基づいて前記バッファリングされたデータ部分を生成することと
    を行うようにさらに構成されている、請求項27に記載の装置。
  29. 前記ビデオコーデックは、
    前記バッファリングされたデータが前記仮想イントラフレームを含み、前記イントラフレームを含まないかどうかを決定することと、
    前記バッファリングされたデータが前記仮想イントラフレームを含み、前記イントラフレームを含まない場合、前記仮想イントラフレームに基づいて前記バッファリングされたデータ部分を生成することと
    を行うようにさらに構成されている、請求項27に記載の装置。
  30. 前記ビデオコーデックは、
    圧縮ビデオデータの少なくとも1つのフレームを受信することと、
    前記受信したフレームを復号することと、
    前記復号されたフレームがイントラフレームに対応するかどうかを決定することと、
    前記復号されたフレームがイントラフレームに対応する場合、少なくとも前記復号されたフレームを前記記憶装置に記憶する命令を生成することと
    を行うようにさらに構成されている、請求項21に記載の装置。
  31. 前記ビデオコーデックは、
    前記復号されたフレームがインターフレームに対応することを決定することと、
    前記復号されたフレームがインターフレームである場合、前記受信したデータに関連付けられているピクチャ群長を計算することと、
    前記計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定することと、
    前記計算されたピクチャ群長が前記所定の閾値長を超えない場合、少なくとも前記復号されたインターフレームを前記記憶装置内に記憶する命令を生成することと
    を行うようにさらに構成されている、
    請求項30に記載の装置。
  32. 前記ビデオコーデックは、
    前記計算されたピクチャ群長が前記所定の閾値長を超える場合、前記復号されたインターフレームデータに基づいて追加のイントラフレームを生成することと、
    少なくとも前記追加のイントラフレームを前記記憶装置内に記憶する命令を生成することと
    を行うようにさらに構成されている、請求項31に記載の装置。
  33. 前記圧縮ビデオコンテンツは、ビットレートの対応する値に関連付けられており、
    前記ビデオコーデックは、前記圧縮ビデオコンテンツ内の対応する時間的位置で少なくとも1つの切り替え点を確立するようにさらに構成されている、請求項21に記載の装置。
  34. 前記切り替え点は、前記圧縮ビデオコンテンツの受信側または配信側のうちの少なくとも1つが前記ビットレートを修正することを可能にする、請求項33に記載の装置。
  35. 前記ビデオコーデックは、前記圧縮ビデオデータ、および前記切り替え位置に関連付けられている情報を前記記憶装置に記憶する命令を生成するようにさらに構成されている、請求項33に記載の装置。
  36. 前記ビデオコーデックは、
    前記対応する時間的位置に関連付けられているインターフレームを識別することと、
    前記識別されたインターフレームを復号し、前記復号されたインターフレームデータに基づいて仮想イントラフレームを計算することと、
    前記時間的位置で前記記憶装置の中に記憶するために、前記仮想イントラフレームを出力することと
    を行うようにさらに構成されている、請求項35に記載の装置。
  37. 前記ビデオコーデックは、前記圧縮ビデオコンテンツ内の対応する時間的位置で複数の切り替え点を確立するようにさらに構成されている、請求項33に記載の装置。
  38. 前記対応する時間的位置は、前記圧縮ビデオコンテンツ内で固定間隔で配置されている、請求項37に記載の装置。
  39. 前記ビデオコーデックは、
    前記切り替え位置を作成する要求を受信することあって、前記要求は、前記圧縮ビデオコンテンツ内の時間的位置を識別する情報を備えている、ことと、
    前記要求に応答して、前記識別された時間的位置で前記切り替え点を確立することと
    を行うようにさらに構成されている、請求項33に記載の装置。
  40. 命令を記憶している有形の非一過性コンピュータ読み取り可能な媒体であって、
    前記命令は、少なくとも1つのプロセッサによって実行されると、
    圧縮ビデオデータを生成するために、ビデオコンテンツのストリームを符号化するステップであって、前記圧縮ビデオデータは、イントラフレームと、複数の対応するインターフレームとを備えている、ステップと、
    前記圧縮ビデオデータをバッファ内に記憶するステップと
    を前記少なくとも1つのプロセッサに実施させ、
    前記符号化することは、
    前記符号化されたイントラフレームに関連付けられているデータを取得することと、
    前記イントラフレームデータに基づいて、前記インターフレームのうちの対応する1つを生成するために、前記ビデオコンテンツストリームの一部分を符号化することと、
    前記バッファに記憶されたデータの量が第1の閾値を超えるかどうかを決定することと、
    前記バッファリングされたデータの量が前記第1の閾値を超える場合、前記生成されたインターフレームを復号し、前記復号されたインターフレームデータに基づいて仮想イントラフレームを計算することと、
    前記バッファの中に記憶するために、前記対応するインターフレームとともに前記仮想イントラフレームを出力することと
    を含む、有形の非一過性コンピュータ読み取り可能な媒体。
  41. コンピュータ実装方法であって、
    通信ネットワークに関連付けられているネットワーク条件を示す情報を受信することと、
    前記情報に基づいて、前記通信ネットワークを経由して伝送される圧縮ビデオコンテンツの初期ビットレートが前記ネットワーク条件と整合するかどうかを決定することと、
    前記初期ビットレートが前記ネットワーク条件と整合しない場合、前記圧縮ビデオコンテンツの前記初期ビットレートに関連付けられている切り替え点を識別することであって、前記切り替え点は、前記圧縮ビデオコンテンツ内の対応する時間的位置に関連付けられている、ことと、
    ビデオコーデックを使用して、前記切り替え点の前記時間的位置において修正されたビットレートで前記圧縮ビデオコンテンツの一部分を伝送する命令を生成することであって、前記一部分は、仮想イントラフレームと、前記修正されたビットレートで符号化された対応するイントラフレームとを備えている、ことと
    を含む、方法。
  42. 前記初期ビットレートが前記ネットワーク条件と整合する場合、前記初期ビットレートで前記圧縮ビデオコンテンツを伝送する命令を生成することをさらに含む、請求項41に記載の方法。
  43. 前記初期ビットレートが前記ネットワーク条件と整合しない場合、前記修正されたビットレートで前記圧縮ビデオコンテンツの一部分を取得することをさらに含み、前記修正されたビットレートは、前記切り替え点の前記時間的位置で前記ネットワーク条件と整合する、請求項41に記載の方法。
  44. 前記初期ビットレートが前記ネットワーク条件と整合しない場合、前記ネットワーク条件に関連付けられているビットレートが前記初期ビットレートを超えることを決定することと、
    前記修正されたビットレートで前記圧縮ビデオコンテンツの前記一部分を取得することであって、前記修正されたビットレートは、前記切り替え点の前記時間的位置で初期ビットレートを超える、ことと
    をさらに含む、請求項41に記載の方法。
  45. 前記初期ビットレートが前記ネットワーク条件と整合しない場合、前記初期ビットレートが前記ネットワーク条件に関連付けられているビットレートを超えることを決定することと、
    前記修正されたビットレートで前記圧縮ビデオコンテンツの前記一部分を取得することであって、前記初期ビットレートは、前記切り替え点の前記時間的位置で前記修正されたビットレートを超える、ことと
    をさらに含む、請求項41に記載の方法。
  46. 前記圧縮ビデオコンテンツの要求を受信することであって、前記要求は、前記初期ビットレートを識別する情報を備えている、ことと、
    前記要求に応答して、前記初期ビットレートで前記圧縮ビデオコンテンツを伝送する命令を生成することと
    をさらに含む、請求項41に記載の方法。
  47. 前記圧縮ビデオコンテンツに関連付けられている再生情報を伝送する命令を生成することをさらに含み、前記再生情報は、前記圧縮ビデオコンテンツ内の前記切り替え点の前記時間的位置を識別する情報を備えている、請求項46に記載の方法。
  48. 装置であって、
    記憶装置と、
    前記記憶装置に連結されるビデオコーデックと
    を備え、
    ビデオコーデックユニットは、
    前記通信ネットワークに関連付けられているネットワーク条件を示す情報を受信することと、
    前記情報に基づいて、前記通信ネットワークを経由して伝送される圧縮ビデオコンテンツの初期ビットレートが前記ネットワーク条件と整合するかどうかを決定することと、
    前記初期ビットレートが前記ネットワーク条件と整合しない場合、前記圧縮ビデオコンテンツの前記初期ビットレートに関連付けられている切り替え点を識別することであって、前記切り替え点は、前記圧縮ビデオコンテンツ内の対応する時間的位置に関連付けられている、ことと、
    前記切り替え点の前記時間的位置において修正されたビットレートで前記圧縮ビデオコンテンツの一部分を伝送する命令を生成することであって、前記一部分は、仮想イントラフレームと、前記修正されたビットレートで符号化された対応するイントラフレームとを備えている、ことと
    を行うように構成されている、装置。
  49. 前記ビデオコーデックは、前記初期ビットレートが前記ネットワーク条件と整合する場合、前記初期ビットレートで前記圧縮ビデオコンテンツを伝送する命令を生成するようにさらに構成されている、請求項48に記載の装置。
  50. 前記ビデオコーデックは、前記初期ビットレートが前記ネットワーク条件と整合しない場合、前記修正されたビットレートで前記圧縮ビデオコンテンツの前記一部分を取得するようにさらに構成され、前記修正されたビットレートは、前記切り替え点の前記時間的位置で前記ネットワーク条件と整合する、請求項48に記載の装置。
  51. 前記ビデオコーデックは、
    前記初期ビットレートが前記ネットワーク条件と整合しない場合、前記ネットワーク条件に関連付けられているビットレートが前記初期ビットレートを超えることを決定することと、
    前記修正されたビットレートで前記圧縮ビデオコンテンツの前記一部分を取得することであって、前記修正されたビットレートは、前記切り替え点の前記時間的位置で前記初期ビットレートを超える、ことと
    を行うようにさらに構成されている、請求項48に記載の装置。
  52. 前記ビデオコーデックは、
    前記初期ビットレートが前記ネットワーク条件と整合しない場合、前記初期ビットレートが前記ネットワーク条件に関連付けられているビットレートを超えることを決定することと、
    前記修正されたビットレートで前記圧縮ビデオコンテンツの前記一部分を取得することであって、前記初期ビットレートは、前記切り替え点の前記時間的位置で前記修正されたビットレートを超える、ことと
    を行うようにさらに構成されている、請求項48に記載の装置。
  53. 前記ビデオコーデックは、
    前記圧縮ビデオコンテンツの要求を受信することであって、前記要求は、前記初期ビットレートを識別する情報を備えている、ことと、
    前記要求に応答して、前記初期ビットレートで前記圧縮ビデオコンテンツを伝送する命令を生成することと
    を行うようにさらに構成されている、請求項48に記載の装置。
  54. 前記ビデオコーデックは、前記圧縮ビデオコンテンツに関連付けられている再生情報を伝送する命令を生成するようにさらに構成され、前記再生情報は、前記圧縮ビデオコンテンツ内の前記切り替え点の前記時間的位置を識別する情報を備えている、請求項53に記載の装置。
  55. 命令を記憶している有形の非一過性コンピュータ読み取り可能な媒体であって、前記命令は、少なくとも1つのプロセッサによって実行されると、
    通信ネットワークに関連付けられているネットワーク条件を示す情報を受信するステップと、
    前記情報に基づいて、前記通信ネットワークを経由して伝送される圧縮ビデオコンテンツの初期ビットレートが前記ネットワーク条件と整合するかどうかを決定するステップと、
    前記初期ビットレートが前記ネットワーク条件と整合しない場合、前記圧縮ビデオコンテンツの前記初期ビットレートに関連付けられている切り替え点を識別するステップであって、前記切り替え点は、前記圧縮ビデオコンテンツ内の対応する時間的位置に関連付けられている、ステップと、
    前記切り替え点の前記時間的位置において修正されたビットレートで前記圧縮ビデオコンテンツの一部分を伝送する命令を生成するステップであって、前記一部分は、仮想イントラフレームと、前記修正されたビットレートで符号化された対応するイントラフレームとを備えている、ステップと
    を前記少なくとも1つのプロセッサに実施させる、有形の非一過性コンピュータ読み取り可能な媒体。
  56. コンピュータ実装方法であって、
    圧縮ビデオデータの少なくとも1つのフレームを備えているビデオコンテンツのストリームを受信することと、
    前記受信したフレームを復号することと、
    前記復号されたフレームがインターフレームに対応するかどうかを決定することと、
    前記復号されたフレームがインターフレームである場合、前記受信したデータに関連付けられているピクチャ群長を計算することと、
    前記計算されたピクチャ群長が所定の閾値長を超えるかどうかを決定することと、
    前記計算されたピクチャ群長が前記所定の閾値長を超える場合、ビデオコーデックを使用して、前記復号されたインターフレームデータに基づいて追加のイントラフレームを生成することと、
    少なくとも前記追加のイントラフレームを前記データリポジトリ内に記憶することと
    を含む、コンピュータ実装方法。
  57. 前記復号されたフレームがイントラフレームに対応する場合、少なくとも前記復号されたフレームをデータリポジトリに記憶することをさらに含む、請求項56に記載の方法。
  58. 前記計算されたピクチャ群長が前記所定の閾値長を超えない場合、少なくとも前記復号されたインターフレームを前記データリポジトリに記憶することをさらに含む、請求項56に記載の方法。
JP2015519070A 2012-06-28 2013-06-26 仮想イントラフレームを使用してビデオコンテンツを符号化するためのシステムおよび方法 Active JP6169172B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261665855P 2012-06-28 2012-06-28
US61/665,855 2012-06-28
PCT/EP2013/063364 WO2014001381A2 (en) 2012-06-28 2013-06-26 System and method for encoding video content using virtual intra-frames

Publications (2)

Publication Number Publication Date
JP2015521825A true JP2015521825A (ja) 2015-07-30
JP6169172B2 JP6169172B2 (ja) 2017-07-26

Family

ID=48782290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015519070A Active JP6169172B2 (ja) 2012-06-28 2013-06-26 仮想イントラフレームを使用してビデオコンテンツを符号化するためのシステムおよび方法

Country Status (6)

Country Link
US (2) US9813732B2 (ja)
EP (1) EP2868107B1 (ja)
JP (1) JP6169172B2 (ja)
KR (1) KR102077556B1 (ja)
CN (2) CN104641638B (ja)
WO (1) WO2014001381A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150189012A1 (en) * 2014-01-02 2015-07-02 Nvidia Corporation Wireless display synchronization for mobile devices using buffer locking
US9691181B2 (en) * 2014-02-24 2017-06-27 Sony Interactive Entertainment Inc. Methods and systems for social sharing head mounted display (HMD) content with a second screen
US20150295973A1 (en) * 2014-04-10 2015-10-15 Screenovate Technologies Ltd. Method for real-time multimedia interface management
US20150295783A1 (en) * 2014-04-10 2015-10-15 Screenovate Technologies Ltd. Method for real-time multimedia interface management sensor data
KR102264161B1 (ko) * 2014-08-21 2021-06-11 삼성전자주식회사 이미지 처리 장치, 이미지 처리 시스템, 이미지 처리 시스템의 동작방법 및 이미지 처리 시스템을 포함하는 시스템 온 칩
JP6239472B2 (ja) * 2014-09-19 2017-11-29 株式会社東芝 エンコード装置、デコード装置、ストリーミングシステム、および、ストリーミング方法
EP3021579B1 (en) * 2014-11-14 2016-10-12 Axis AB Method and encoder system for encoding video
EP3041233A1 (en) * 2014-12-31 2016-07-06 Thomson Licensing High frame rate-low frame rate transmission technique
CN105847790A (zh) * 2015-01-16 2016-08-10 杭州海康威视数字技术股份有限公司 一种码流传输方法及装置
US10284877B2 (en) 2015-01-16 2019-05-07 Hewlett Packard Enterprise Development Lp Video encoder
CN105847825A (zh) * 2015-01-16 2016-08-10 杭州海康威视数字技术股份有限公司 视频编码码流的编码、索引存储和访问方法及相应装置
CN105847722B (zh) * 2015-01-16 2019-04-12 杭州海康威视数字技术股份有限公司 一种视频存储方法和装置、读取方法和装置以及存取系统
EP3239946A1 (en) 2015-03-16 2017-11-01 Axis AB Method and system for generating an event video se-quence, and camera comprising such system
CN105323637B (zh) * 2015-10-29 2018-08-24 无锡天脉聚源传媒科技有限公司 一种视频处理方法及装置
KR101742258B1 (ko) 2016-02-29 2017-05-31 경희대학교 산학협력단 웹 기반 가상 데스크탑 프로토콜을 이용한 컨텐츠 제공 방법 및 장치
CN107193642A (zh) * 2016-03-14 2017-09-22 阿里巴巴集团控股有限公司 任务数据压缩切换方法、宜压缩程度评价方法及相关装置
WO2017218522A1 (en) * 2016-06-13 2017-12-21 Arris Enterprises Llc Reduction of startup time in remote hls clients
CN107592540B (zh) * 2016-07-07 2020-02-11 腾讯科技(深圳)有限公司 一种视频数据处理方法及装置
US10462336B2 (en) * 2017-03-15 2019-10-29 Microsoft Licensing Technology, LLC Low latency tearing without user perception
KR102497216B1 (ko) * 2017-05-10 2023-02-07 삼성전자 주식회사 슬라이스 기반의 압축을 수행하는 영상 처리 장치 및 영상 처리 방법
US10432970B1 (en) * 2018-06-14 2019-10-01 Telefonaktiebolaget Lm Ericsson (Publ) System and method for encoding 360° immersive video
JP7292901B2 (ja) * 2019-02-27 2023-06-19 キヤノン株式会社 送信装置、送信方法、及びプログラム
US11265599B2 (en) * 2019-06-11 2022-03-01 Nvidia Corporation Re-encoding predicted picture frames in live video stream applications
WO2022031727A1 (en) * 2020-08-03 2022-02-10 Dolby Laboratories Licensing Corporation Dual stream dynamic gop access based on viewport change

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002232847A (ja) * 2001-02-05 2002-08-16 Hitachi Ltd 動画像データの記録再生方法および装置
JP2004096706A (ja) * 2002-04-16 2004-03-25 Matsushita Electric Ind Co Ltd 画像符号化方法および画像復号化方法
JP2006527927A (ja) * 2003-06-19 2006-12-07 ノキア コーポレイション 漸進的デコーダリフレッシュに基づくストリーム切り換え
JP2010141900A (ja) * 2002-02-25 2010-06-24 Sony Electronics Inc Mp4においてavcをサポートするための方法及び装置
US20120014675A1 (en) * 2009-03-24 2012-01-19 Streamwide Method and Device for Storing a Portion of a Video Stream

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69533116T2 (de) * 1994-07-29 2005-05-25 Nippon Telegraph And Telephone Corp. Fernsehübermittlungsanlage mit Speichermöglichkeit
JP3321331B2 (ja) * 1995-04-07 2002-09-03 シャープ株式会社 画像蓄積通信装置
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
US6483875B1 (en) 1997-06-19 2002-11-19 Sony Corporation Picture signal processing apparatus
EP0920216A1 (de) 1997-11-25 1999-06-02 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zur Codierung und zur Decodierung einer Bildsequenz
DE19806913A1 (de) * 1998-02-19 1999-08-26 Cit Alcatel Verfahren zum Generieren einer Einsprungstelle in einen Bilddatenstrom und Vorrichtung zur Durchführung des Verfahrens
US6731684B1 (en) 1998-09-29 2004-05-04 General Instrument Corporation Method and apparatus for detecting scene changes and adjusting picture coding type in a high definition television encoder
GB2353655B (en) 1999-08-26 2003-07-23 Sony Uk Ltd Signal processor
US7058130B2 (en) 2000-12-11 2006-06-06 Sony Corporation Scene change detection
US7376341B2 (en) * 2001-07-12 2008-05-20 Thomson Licensing Modifying video signals by converting non-intra pictures
US6804301B2 (en) 2001-08-15 2004-10-12 General Instrument Corporation First pass encoding of I and P-frame complexity for compressed digital video
GB2402247B (en) 2002-02-25 2005-11-16 Sony Electronics Inc Sample group metadata for multimedia data
US7555042B2 (en) * 2003-01-08 2009-06-30 Samsung Electronics Co., Ltd. Method and apparatus for reverse play
JP4066852B2 (ja) 2003-03-04 2008-03-26 株式会社日立製作所 ビデオ符号化方式変換装置、変換方法、およびこれを用いたビデオ記録再生装置
KR100492567B1 (ko) 2003-05-13 2005-06-03 엘지전자 주식회사 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법
US20060034522A1 (en) * 2004-08-10 2006-02-16 Nader Mohsenian Method and system for equalizing video quality using selective re-encoding
EP1638333A1 (en) 2004-09-17 2006-03-22 Mitsubishi Electric Information Technology Centre Europe B.V. Rate adaptive video coding
US7746928B2 (en) * 2004-12-30 2010-06-29 General Instruments Corporation Method and apparatus for providing rate control
US7636395B2 (en) 2005-03-14 2009-12-22 Nokia Corporation Method and device for splicing video data in compressed domain
US20060239563A1 (en) 2005-04-25 2006-10-26 Nokia Corporation Method and device for compressed domain video editing
US20070174880A1 (en) * 2005-07-05 2007-07-26 Optibase Ltd. Method, apparatus, and system of fast channel hopping between encoded video streams
JP4534935B2 (ja) 2005-10-04 2010-09-01 株式会社日立製作所 トランスコーダ、記録装置及びトランスコード方法
US8824546B2 (en) * 2007-06-19 2014-09-02 Vantrix Corporation Buffer based rate control in video coding
JP5267655B2 (ja) 2009-03-19 2013-08-21 富士通株式会社 画像符号化装置、画像符号化制御方法および画像符号化プログラム
US9313512B2 (en) * 2009-11-25 2016-04-12 Vudu, Inc. Multiple bit rate encoding by segments
US8681858B2 (en) * 2009-12-23 2014-03-25 General Instrument Corporation Rate control for two-pass encoder
US9137551B2 (en) * 2011-08-16 2015-09-15 Vantrix Corporation Dynamic bit rate adaptation over bandwidth varying connection
WO2013075042A1 (en) * 2011-11-18 2013-05-23 General Instrument Corporation Efficient storage of motion information for high efficiency video coding
US9106887B1 (en) * 2014-03-13 2015-08-11 Wowza Media Systems, LLC Adjusting encoding parameters at a mobile device based on a change in available network bandwidth

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002232847A (ja) * 2001-02-05 2002-08-16 Hitachi Ltd 動画像データの記録再生方法および装置
JP2010141900A (ja) * 2002-02-25 2010-06-24 Sony Electronics Inc Mp4においてavcをサポートするための方法及び装置
JP2004096706A (ja) * 2002-04-16 2004-03-25 Matsushita Electric Ind Co Ltd 画像符号化方法および画像復号化方法
JP2006527927A (ja) * 2003-06-19 2006-12-07 ノキア コーポレイション 漸進的デコーダリフレッシュに基づくストリーム切り換え
US20120014675A1 (en) * 2009-03-24 2012-01-19 Streamwide Method and Device for Storing a Portion of a Video Stream

Also Published As

Publication number Publication date
EP2868107A2 (en) 2015-05-06
CN104641638B (zh) 2018-08-03
US20150156511A1 (en) 2015-06-04
CN108965883B (zh) 2022-08-30
US10009630B2 (en) 2018-06-26
CN108965883A (zh) 2018-12-07
EP2868107B1 (en) 2021-03-17
US9813732B2 (en) 2017-11-07
US20160050434A1 (en) 2016-02-18
JP6169172B2 (ja) 2017-07-26
KR20150040872A (ko) 2015-04-15
WO2014001381A3 (en) 2014-03-06
KR102077556B1 (ko) 2020-02-14
CN104641638A (zh) 2015-05-20
WO2014001381A2 (en) 2014-01-03

Similar Documents

Publication Publication Date Title
JP6169172B2 (ja) 仮想イントラフレームを使用してビデオコンテンツを符号化するためのシステムおよび方法
US10720188B2 (en) Systems and methods of thumbnail generation
US10972519B2 (en) Real-time video streaming to client video element
US8711929B2 (en) Network-based dynamic encoding
EP3863296B1 (en) Streaming frames of spatial elements to a client device
JP5227875B2 (ja) 動画像符号化装置
US20120195356A1 (en) Resource usage control for real time video encoding
US10862940B1 (en) Low latency live video on a communication session
CN112073737A (zh) 在直播视频流应用中重新编码预测的图像帧
US10785511B1 (en) Catch-up pacing for video streaming
JP2014239428A (ja) デジタルビデオデータを符号化するための方法
US20130007206A1 (en) Transmission apparatus, control method for transmission apparatus, and storage medium
KR20140070896A (ko) 비디오 스트리밍 방법 및 그 전자 장치
US9467691B2 (en) Video system for displaying image data, method and computer program
US11871079B2 (en) Client and a method for managing, at the client, a streaming session of a multimedia content
KR100899666B1 (ko) 분산 다중 스트리밍 전송 장치
WO2018123078A1 (ja) 監視カメラシステム
WO2021140768A1 (ja) 送信装置、送信方法
US20140369424A1 (en) Video codec system and video stream transmission method
CN116055810A (zh) 音视频播放方法、装置、系统、电子设备及存储介质
CN114514745A (zh) 针对远程终端的沉浸式电话会议和电话呈现的用于rtcp视口的信号传输的基于事件的触发间隔
CN117440175A (zh) 用于视频传输的方法、装置、系统、设备和介质
JP2006262205A (ja) エンコーダ及びコーデック方法並びにネットワーク伝送システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170601

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: 20170612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170627

R150 Certificate of patent or registration of utility model

Ref document number: 6169172

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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