JP2019114926A - Video processing apparatus, video processing method, and program - Google Patents
Video processing apparatus, video processing method, and program Download PDFInfo
- Publication number
- JP2019114926A JP2019114926A JP2017246967A JP2017246967A JP2019114926A JP 2019114926 A JP2019114926 A JP 2019114926A JP 2017246967 A JP2017246967 A JP 2017246967A JP 2017246967 A JP2017246967 A JP 2017246967A JP 2019114926 A JP2019114926 A JP 2019114926A
- Authority
- JP
- Japan
- Prior art keywords
- segment
- frame
- video
- video frame
- generated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本発明は、映像データを複数ファイル化する技術に関する。 The present invention relates to a technology for converting video data into a plurality of files.
近年、映像ストリームをセグメント時間(segment duration)単位のセグメントに分割して配信を行う、アダプティブストリーミング技術を用いたシステムが普及している。アダプティブストリーミング技術の代表的な例としては、下記の第1の技術と第2の技術が知られている。第1の技術は、MPEG(Moving Picture Experts Group)によって規格化されたDASH(Dynamic Adaptive Streaming over HTTP)である。第2の技術は、HLS(HTTP Live Streaming)である。 In recent years, systems using adaptive streaming technology for distributing a video stream into segments in units of segment durations have become widespread. The following first and second techniques are known as representative examples of the adaptive streaming technique. The first technology is Dynamic Adaptive Streaming over HTTP (DASH) standardized by the Moving Picture Experts Group (MPEG). The second technology is HLS (HTTP Live Streaming).
DASH配信の場合、先ずクライアント装置は、配信サーバが配信可能なセグメントの系列の情報であるRepresentationが記載されたMPD(Media Presentation Description)ファイルを取得する。次にクライアント装置は、MPDに記載されたRepresentationの中から、クライアント装置の表示性能や通信状況に応じた適切なRepresentationを選択する。そして、クライアント装置は、MPDの記載に従って、MPEG2−TS又はMP4の映像フォーマットをセグメント単位でダウンロードして再生する。 In the case of DASH delivery, the client apparatus first acquires an MPD (Media Presentation Description) file in which Representation, which is information on a series of segments that can be delivered by the delivery server, is described. Next, the client device selects, from among Representations described in the MPD, an appropriate Representation according to the display performance and communication status of the client device. Then, the client device downloads and reproduces the MPEG2-TS or MP4 video format in units of segments according to the description of the MPD.
一般にMPD内の一つのRepresentationに対し特定のセグメント時間が記載される。クライアント装置は、そのRepresentationのセグメント時間からセグメントの生成が完了するタイミングを予測し、各セグメントのダウンロードを要求する。ここで、例えばネットワークカメラのように、撮像装置と配信サーバを備える構成を用いてDASH配信をライブ形式(DASHライブ配信)で行う際、処理負荷の増大等によりセグメントが含むべき映像フレームが一部生成されない(欠落する)ことがある。この場合、映像フレームが欠落することで、セグメントを生成できなくなる場合が生じ得る。 Generally, a specific segment time is described for one Representation in the MPD. The client device predicts the completion of generation of segments from the segment time of the Representation, and requests download of each segment. Here, when DASH distribution is performed in a live format (DASH live distribution) using a configuration including an imaging device and a distribution server, for example, as in a network camera, part of video frames that the segment should include due to increased processing load etc. It may not be generated (missed). In this case, missing video frames may make it impossible to generate segments.
一方、特許文献1には、映像フレームが欠落したことを検知した場合に撮像装置が独立フレームを生成する方法が開示されている。また、特許文献2には、欠落したセグメントの映像フレームを予め用意したデフォルトデータで置換する方法が開示されている。さらに特許文献3には、クライアント装置が、基準の時刻に対し映像フレームの再生が遅れている場合には映像フレームの再生をスキップし、進んでいる場合には映像フレームの再生を繰り返す方法が開示されている。
On the other hand,
しかし、上述の特許文献1〜特許文献3に開示された従来技術では、セグメントの生成が完了していないタイミングで、クライアント装置が各セグメントのダウンロードを要求することとなってしまう。例えば特許文献1の技術の場合、映像フレームが欠落してから独立フレームが生成されるまでの時間分だけ、セグメントの生成完了が遅延する。このため、クライアント装置は、当該セグメントの生成完了までダウンロード要求を繰り返し行い、その都度、エラー通知を受信することになる。また、特許文献2の技術の場合、映像フレームが欠落した分だけデフォルトデータを置換するため、その分、セグメントのデータ量が増大することになる。また、特許文献3の技術の場合、クライアント装置が基準の時刻に応じてフレームの再生時間を調整するため、セグメントを受信後、フレームの再生時間を再設定する特別な機能をクライアント装置に組み込む必要がある。
However, in the prior art disclosed in
そこで、本発明は、一般的な再生装置によって再生可能なセグメントを、データ量を抑えながら、セグメント時間通りに生成可能にすることを目的とする。 Therefore, an object of the present invention is to make it possible to generate a segment reproducible by a general reproduction device according to the segment time while suppressing the amount of data.
本発明の映像処理装置は、フレーム内符号化処理またはフレーム間符号化処理によって符号化した映像フレームを生成する処理手段と、前記処理手段で生成された少なくとも一つの映像フレームを含む映像ストリームを所定のセグメント時間で分割したセグメントを生成する生成手段と、を有し、前記生成手段は、前記処理手段で符号化が行われず映像フレームが生成されなかった場合、前記セグメントの中のどの映像フレームが生成されなかったかに応じて、ダミーフレームを前記セグメントに付加するかどうかを決定し、前記生成されなかった映像フレーム以外の映像フレームの表示時間を変更することにより前記所定のセグメント時間の前記セグメントを生成することを特徴とする。 A video processing apparatus according to the present invention includes processing means for generating a video frame encoded by intraframe coding processing or interframe coding processing, and a video stream including at least one video frame generated by the processing means. And generating means for generating a segment divided by the segment time, and the generation means generates an image frame when the encoding means is not performed by the processing means and an image frame is not generated. Depending on whether it has not been generated, it is determined whether a dummy frame is added to the segment, and the display time of the predetermined segment time is changed by changing the display time of the video frame other than the generated video frame. It is characterized by generating.
本発明によれば、一般的な再生装置によって再生可能なセグメントを、データ量を抑えながら、セグメント時間通りに生成可能となる。 According to the present invention, a segment that can be played back by a general playback device can be generated on a segment time basis while reducing the amount of data.
以下、添付図面を参照して本発明の実施形態について説明する。
<第1実施形態>
図1は、本発明の第1実施形態に係る映像処理システムの構成例を示す図である。
本実施形態の映像処理システムは、映像処理装置101と、クライアント装置102と、ネットワーク103とを有する。
Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings.
First Embodiment
FIG. 1 is a view showing an example of the arrangement of a video processing system according to the first embodiment of the present invention.
The video processing system of this embodiment includes a
ネットワーク103は、LAN等のIPネットワークである。映像処理装置101とクライアント装置102は、ネットワーク103を介して、相互に接続され、相互に通信可能となされている。ネットワーク103には、不図示の配信サーバ等も接続されている。ネットワーク103は、Ethernet(登録商標)等の通信規格を満足する複数のルータ、スイッチ、ケーブル等を有する。また、ネットワーク103は、インターネットから無線LAN(Local Area Network)にまで適用可能である。ネットワーク103は、映像処理装置101及びクライアント装置102間の通信が行えるものであれば、その通信規格、規模、構成が限定されない。
The
映像処理装置101は、例えばネットワークカメラである。クライアント装置102は、映像処理装置101の外部機器である。映像処理装置101は、撮影した映像を、ネットワーク103を介して、配信サーバに送信したり、クライアント装置102に配信したりすることが可能となされている。本実施形態では、配信サーバを省略しており、映像処理装置101は、撮影した映像を、ネットワーク103を介してクライアント装置102に配信する例を挙げて説明する。クライアント装置102は、映像処理装置101に対して、各種リクエストコマンドを送信する。映像処理装置101は、それらのコマンドに対するレスポンスを、クライアント装置102に送信する。なお、図1では、説明の簡略化のために、映像処理装置101は1台としているが、2台以上であってもよい。また、クライアント装置102以外にも、映像処理装置101に接続するクライアント装置があってもよい。
The
図2は、本実施形態の映像処理装置101のハードウェア構成例を示す図である。
映像処理装置101は、CPU201、一次記憶装置202、二次記憶装置203、画像キャプチャI/F206、ネットワークI/F207を有し、それらが内部バス204を介して相互に接続されている。また映像処理装置101は、撮像素子205をも有している。
FIG. 2 is a diagram showing an example of the hardware configuration of the
The
二次記憶装置203は、例えばフラッシュメモリ、HDD、SDカード等を備えた不揮発性記憶装置であり、OSや各種プログラム及び各種データの永続的な記憶領域として使用され、また短期的な各種データの記憶領域としても使用される。一次記憶装置202は、RAM等の書き込み可能な高速の記憶装置であり、OSや各種プログラム及び各種データがロードされ、またOSや各種プログラムの作業領域として使用される。CPU201は、二次記憶装置203に記憶されているプログラムを一次記憶装置202に展開して実行することにより、映像処理装置101における各種処理や制御を実行する。
The
撮像素子205は、CCDセンサやCMOSセンサであり、所定の時間間隔ごとに光電変換を行って動画の映像データを生成する。画像キャプチャI/F206は、撮像素子205に接続され、撮像素子205が所定の時間間隔ごとに取得した映像データを、一次記憶装置202に動画の映像フレームとして転送する。
The
ネットワークI/F207は、ネットワーク103に接続するためのインタフェースである。映像処理装置101は、ネットワークI/F207により、ネットワーク103を介してクライアント装置102と通信可能であり、例えばクライアント装置102から映像配信の要求等がなされた場合にクライアント装置102との間の通信を担う。
The network I /
図3は、本実施形態に係る映像処理装置101の機能構成例を示す図である。
映像処理装置101は、一時記憶部301、撮像処理部302、符号化処理部303、欠落期間検出部304、セグメント生成部305及び配信部306を有する。
一時記憶部301は、一次記憶装置202に対応する。撮像処理部302、符号化処理部303、欠落期間検出部304、セグメント生成部305及び配信部306は、CPU201がプログラムを実行することにより機能する処理部である。
撮像処理部302は、撮像素子205により撮像された映像データを画像キャプチャI/F206経由で取得し、符号化処理部303に送信する。
FIG. 3 is a diagram showing an example of a functional configuration of the
The
The
符号化処理部303は、撮像処理部302からの映像データを受信し、予め指定された所定の符号化方式及びフレーム間予測符号化設定に従って符号化及び圧縮し、一定のフレーム周期で映像フレームを連続して生成、つまり動画の映像フレームを生成する。先ず符号化処理部303は、映像ストリームの開始要求を受け付けると、例えばSPS(Sequence Parameter Set)やPPS(Picture Parameter Set)などの映像再生に必要な映像メタ情報を生成する。また同時に、符号化処理部303は、セグメント生成部305に対し、映像メタ情報の生成通知を行う。次に、符号化処理部303は、各映像フレームを生成すると共に、セグメント生成部305に対し、映像フレームの生成通知を行う。本実施形態の場合、映像フレームの生成通知には、符号化された映像情報と、所定のフレーム周期ごとに所定の増分ずつ増加するフレーム番号と、映像フレームが後述する独立フレームなのか従属フレームなのかを表す識別情報とが含まれる。また、本実施形態において、フレーム番号は後述する映像フレームの欠落を判定するための情報としても使用され、識別情報は映像フレームが独立フレームなのか従属フレームなのか識別するための情報としても使用される。そして、符号化処理部303は、生成した映像メタ情報及び映像フレームを一時記憶部301に保存する。
The
符号化処理部303は、映像フレームとして、独立フレーム又は従属フレームを生成する。独立フレームは、フレーム内符号化処理によって生成され、復号時に他の映像フレームの情報を必要としない映像フレームであり、いわゆるIフレームと呼ばれている。従属フレームは、フレーム間符号化処理によって生成され、他の映像フレームとの差分情報から構成される映像フレームであり、いわゆるPフレーム又はBフレームと呼ばれている。符号化処理部303に指定する符号化方式としては、例えばH.264/AVC又はH.265/HEVCを用いることができる。ただし、符号化方式はこれらに限らず、他の種々の符号化方式でもよく、動画の映像フレームを生成可能なものであればよい。また、符号化処理部303は、複数の符号化方式の中から符号化方式を選択して符号化を行ってもよい。符号化処理部303に指定するフレーム間予測符号化設定には、動画として連続して生成する映像フレームを独立フレーム又は従属フレームで構成する映像フレーム構成方式が含まれる。映像フレーム構成方式としては、例えば一定のGOP(Group Of Picuture)周期ごとに独立フレームを一つ生成し、GOP周期内のその他の映像フレームを従属フレームとして生成する方式を用いることができる。また、映像フレーム構成方式は、一定のGOP周期を用いず所定の条件を満たした場合に独立フレームを生成し、所定の条件を満たしていない場合に従属フレームを生成する方式であってもよい。なお、所定の条件を満たした場合とは、例えば従属フレームのデータサイズが所定の閾値より大きくなった場合等を挙げることができる。なお、映像フレーム構成方式はこれらの例に限られるものではない。
The
また、符号化処理部303は、処理負荷の増大等によって映像フレームが生成されず欠落(以下、フレーム落ちとする。)した場合、先ず、欠落フレームを表す情報(以下、欠落フレーム情報とする。)を生成して欠落期間検出部304に通知する。欠落フレーム情報には、生成できなかった映像フレームのフレーム番号が欠落フレーム番号として含まれるものとする。次に、符号化処理部303では、フレーム落ちの直後に生成する映像フレームが独立フレームとなるように自身に設定する。なお、符号化処理部303は、欠落期間検出部304等の他の処理部からの要求に基づきフレーム落ちの直後に生成する映像フレームが独立フレームとなるように設定するものとしてもよい。
Further, when a video frame is not generated due to an increase in processing load or the like, and the video frame is dropped (hereinafter, referred to as a frame drop), first, information representing the dropped frame (hereinafter referred to as dropped frame information). ) Is notified to the dropout
また、符号化処理部303は、後述する欠落期間検出部304からのダミーフレームの生成要求を受信すると、ダミーフレームを生成して一時記憶部301に保存し、さらにダミーフレーム情報を生成して一時記憶部301に保存する。ここで、ダミーフレームは、参照先の映像フレームデータと差分がないことを示す映像フレームデータである。ダミーフレームの詳細については後述する。また、ダミーフレーム情報は、一時記憶部301に保存されたダミーフレームを示す情報であり、例えばファイルとして保存されたダミーフレームのパスである。
Also, when receiving a dummy frame generation request from the dropout
欠落期間検出部304は、符号化処理部303から欠落フレーム情報の生成通知を受信すると、各セグメントにおいてフレームが欠落した期間に対応するセグメント内欠落期間を検出する。そして、欠落期間検出部304は、そのセグメント内欠落期間を示すセグメント内欠落期間情報を更新し、一時記憶部301に保存すると同時にセグメント生成部305にも通知する。本実施形態では、セグメントが含むべき映像フレームのフレーム番号を小さい順に要素とする配列を、セグメント内フレーム番号配列とする。しかして、セグメント内欠落期間が存在する各セグメントについて、セグメント内フレーム番号配列における欠落フレーム番号のインデクスを小さい順に要素とする配列を、各セグメントのセグメント内欠落期間情報とすることができる。
When receiving the generation notification of the missing frame information from the
一方で、欠落期間検出部304は、セグメント内欠落期間が存在する各セグメントについて、セグメント内欠落期間がセグメント内先頭フレームの期間を含む場合には符号化処理部303に対しダミーフレームの生成を要求する。セグメント内先頭フレームは、セグメントに含まれるべき映像フレームのうち時系列で最初の映像フレームを指すものとする。なお、ダミーフレームは、符号化処理部303に対し生成要求が行われなくとも符号化処理部303が予め生成して、一時記憶部301に保存されていてもよい。また、符号化処理部303に対し生成要求を行わず欠落期間検出部304自身がダミーフレームを生成することとしてもよい。
On the other hand, for each segment for which there is an intra-segment loss period, the loss
セグメント生成部305は、符号化処理部303が一時記憶部301に保存した映像メタ情報と映像フレームのデータにヘッダデータを付加して、それぞれ初期化セグメントとセグメントとを生成する。セグメントは、符号化処理部303で生成された少なくとも一つの映像フレームデータを含む映像ストリームを所定のセグメント時間で分割したものである。また、セグメント生成部305は、初期化セグメントとセグメントの生成時に、初期化セグメント情報とセグメント情報をそれぞれ生成して、配信部306に通知する。初期化セグメント情報は、一時記憶部301に保存された初期化セグメントを示す情報であり、例えばファイルとして保存された初期化セグメントのパスである。セグメント情報は、一時記憶部301に保存されたセグメントを示す情報であり、例えばファイルとして保存されたセグメントのパスである。セグメントのパスは、例えばセグメントを生成した順にインクリメントする番号を含むテキスト情報を含む。セグメント生成部305は、配信部306が初期化セグメント情報及びセグメント情報を解放するまで、一時記憶部301の映像メタ情報及び映像フレームをそれぞれ保持する。
The
また、セグメント生成部305は、符号化処理部303で符号化が行われずに映像フレームの生成がスキップされた場合に、セグメントの中のどの映像フレームの生成がスキップされたかに応じて、ダミーフレームをセグメントに付加するかどうかを決定する。そして、セグメント生成部305は、そのスキップされた映像フレーム以外の映像フレームの表示時間(映像フレームが再生される際の再生時間)を変更することにより、所定のセグメント時間のセグメントを生成する。
In addition, when the
配信部306は、先ず、映像処理装置101が配信できる映像ストリーム情報が記載されているプレイリストを配信する。そして、配信部306は、セグメント生成部305が生成した初期化セグメント及びセグメントを、クライアント装置102からのリクエストに応じてクライアント装置102に配信する。配信部306は、初期化セグメント又はセグメントの配信が終了した後に、セグメント生成部305に対し初期化セグメント又はセグメントの解放を指示する。プレイリストの一例としては、ISO/IEC 23009−1にて定義されるMPDファイルが用いられる。ただし、プレイリストの形式はこれに限られるものではない。本実施形態では、配信部306が、クライアント装置102からの配信要求を受信してから初期化セグメント又はセグメントを配信する例を説明したが、これに限定されるものではない。例えば、HTTP/2やWebsocketなどのプロトコルによっては要求を受信しなくても映像メタ情報及び映像フレームを生成し、配信部306は、それぞれ初期化セグメント及びセグメントが完成した時点で次々と配信してもよい。
The
図4(a)と図4(b)は、符号化処理部303が連続して生成する映像フレームと、セグメント生成部305が生成する各セグメントとの関係を示す図である。
符号化処理部303は、前述したように連続して映像フレームを生成することで、図4(a)に一例として示す映像ストリーム450を形成する。また、符号化処理部303は、セグメント生成部305に対する映像フレームの生成通知、又は、欠落期間検出部304に対する欠落フレーム情報の生成通知のいずれか一方を、映像ストリーム450のフレーム周期である1/25[秒]ごとに行う。ここで、符号化処理部303が最初に生成する映像フレームのフレーム番号は0であり、その後、フレーム番号はフレーム周期の1/25[秒]ごとに1ずつ増加するものとする。
FIGS. 4A and 4B are diagrams showing the relationship between the video frame continuously generated by the
As described above, the
映像ストリーム450の映像フレームの符号化方式は、H.264/AVC Mainプロファイル レベル3.1であり、映像フレームの解像度(幅×高さ)は256×144[ピクセル]であるとする。映像ストリーム450の映像フレーム構成方式は、映像ストリーム450のGOP周期である3/25秒に対応する3枚ごとに、独立フレームを一つ生成し、GOP周期内の他の映像フレームを従属フレームとして生成するGOP単位方式を用いることとする。
The coding method of the video frame of the
セグメント生成部305は、映像メタ情報と映像フレームのデータにヘッダデータを付加しそれぞれ初期化セグメントとセグメントを生成する。セグメントについては、映像フレームにヘッダを付加してセグメントの映像の再生時間(セグメント時間)が3/25秒となるセグメントを生成する。
The
初期化セグメントとセグメントデータの内部構造の一例として、ISOBMFF(ISO Base Media File Format)を、ISO/IEC 14496−15に基づき拡張した構造を用いる。ISOBMFFは、ISO/IEC 14496−12で定義される汎用ファイル構造である。 As an example of the internal structure of the initialization segment and segment data, a structure obtained by expanding ISO Base Media File Format (ISOBMFF) based on ISO / IEC 14496-15 is used. ISOBMFF is a general purpose file structure defined by ISO / IEC 14496-12.
図4(a)は、フレーム落ちが発生しない場合の、符号化処理部303が連続して生成する映像フレームと、セグメント生成部305が生成する各セグメントとの関係を示す図である。
符号化処理部303は、先ず映像ストリーム450の開始要求を受け付けると、SPS及びPPSを含む映像メタ情報401を生成すると同時にセグメント生成部305に生成通知を行う。次に、符号化処理部303は、映像フレーム411〜419を連続して生成し、またそれぞれ生成と同時にセグメント生成部305に生成通知を行う。図4(a)において、映像ストリーム450の映像フレーム構成方式により、映像フレーム411,414,417は独立フレームとなり、それ以外の映像フレーム412,413,415,416,418,419は従属フレームとなる。符号化処理部303は、映像フレーム419を生成した後も映像フレームの生成を続け、各セグメントの映像フレームを生成すると同時にセグメント生成部305に生成通知を行う。
FIG. 4A is a diagram showing the relationship between a video frame continuously generated by the
First, when receiving the start request of the
セグメント生成部305は、先ず符号化処理部303から映像メタ情報401の生成通知を受信して、映像メタ情報401を含む初期化セグメント400を生成する。その後、セグメント生成部305は、各セグメントが含むべき全ての映像フレームの生成通知を符号化処理部303から受信した時点で、ヘッダと映像フレームのデータを結合して、各セグメント420,430,440を生成する。図4(a)の場合、セグメント生成部305は、フレーム落ちが発生しない場合のセグメント内の映像フレームの数を、セグメントフレーム数として下記の計算式により導出し、その数の映像フレームを含むセグメントを生成する。
The
(セグメントフレーム数)=(セグメント時間)/(映像ストリーム450のフレーム周期)=3/25[秒]/(1/25[秒])=3 (Number of segment frames) = (segment time) / (frame period of video stream 450) = 3/25 [seconds] / (1/25 [seconds) = 3
また、セグメント生成部305は、セグメント420,430,440のヘッダには各映像フレームの再生時間が1/25[秒]となるよう設定する。そして、セグメント生成部305は、初期化セグメント400又はセグメント420,430,440を生成すると配信部306に通知する。図4(a)では、セグメント420は映像フレーム411,412,413を含み、セグメント430は映像フレーム414,415,416を、セグメント440は映像フレーム417,418,419を含んでいる。
In addition, the
図4(b)は、フレーム落ちが発生する場合の、符号化処理部303が連続して生成する映像フレームと、セグメント生成部305が生成する各セグメントとの関係を示す図である。
符号化処理部303は、先ず映像ストリーム450の開始要求を受け付けると、SPS及びPPSを含む映像メタ情報501を生成すると同時にセグメント生成部305に生成通知を行う。その後、符号化処理部303は、映像フレーム511,512を連続して生成しセグメント生成部305に生成通知を行う。
FIG. 4B is a diagram showing a relationship between a video frame continuously generated by the
First, when receiving the start request of the
続いてフレーム落ちが発生する場合の説明を行う。すなわち図4(b)では、映像フレーム512の後にフレーム落ちが発生する例を示している。
符号化処理部303は、フレーム落ちが発生する場合に欠落フレーム情報513を生成すると同時に欠落期間検出部304に生成通知を行う。また、符号化処理部303は、フレーム落ちが発生すると同時に、次に生成する映像フレームを独立フレームとするよう自身に設定する。次に、符号化処理部303は、次の独立フレームである映像フレーム516を生成するまで、フレーム周期が経過するごとに、欠落フレーム情報514,515を生成すると同時に欠落期間検出部304に通知を行う。そして、符号化処理部303は、次の独立フレームである映像フレーム516を生成すると、その後は映像フレーム517,518,519を連続して生成すると同時にセグメント生成部305に生成通知を行う。
Next, the case where a frame drop occurs will be described. That is, FIG. 4B shows an example in which a frame drop occurs after the
The
映像ストリーム450の映像フレーム構成方式は、フレーム落ちが発生する前はフレーム落ちが発生しない場合と同様であり、フレーム落ちが発生した後はフレーム落ちが発生した直後に生成する映像フレームから再適用されることとする。すなわち、図4(b)の例の場合、映像フレーム511,516,519が独立フレームとなり、それ以外の映像フレームは従属フレームとなる。符号化処理部303は、映像フレーム519を生成した後も映像フレームの生成を続け、各セグメントの映像フレームを生成すると同時にセグメント生成部305に生成通知を行う。
The video frame configuration method of the
欠落期間検出部304は、符号化処理部303からの欠落フレーム情報513,514,515の生成通知を受信すると、セグメント520,530それぞれのセグメント内欠落期間T561,T562を検出する。また、欠落期間検出部304は、セグメント内欠落期間T561,T562それぞれを検出すると同時にセグメント内欠落期間T561,T562を示すセグメント内欠落期間情報を一時記憶部301に保存しセグメント生成部305に通知する。
When receiving the generation notification of the
一方で、欠落期間検出部304は、セグメント内欠落期間がセグメント内先頭フレームの期間を含む場合にはダミーフレームの生成要求を行う。セグメント520のセグメント内欠落期間T561はセグメント内先頭フレームの期間T563を含まないため、欠落期間検出部304は、符号化処理部303に対しダミーフレームの生成を要求しない。これに対し、セグメント530のセグメント内欠落期間T562はセグメント内先頭フレームの期間T564を含む。このため、欠落期間検出部304は、符号化処理部303に対しダミーフレーム550の生成を要求し、セグメント生成部305に対しダミーフレーム550をセグメント520に含めることを指示する。
On the other hand, when the intra-segment dropout period includes the period of the intra-segment head frame, the dropout
セグメント生成部305は、先ず符号化処理部303から映像メタ情報501の生成通知を受信して映像メタ情報501を含む初期化セグメント500を生成する。その後、セグメント生成部305は、映像フレーム511,512の生成通知を受信した後、欠落フレーム情報513の受信時点で、ヘッダに映像フレーム511,512の再生時間をそれぞれ1/25[秒]、2/25[秒]と設定したセグメント520を生成する。その後、セグメント生成部305は、ダミーフレーム550の生成通知を受信した後、映像フレーム516の生成通知を受信した時点で、セグメント520を生成する。この時のセグメント生成部305は、ヘッダに、ダミーフレーム550の再生時間を2/25[秒]、映像フレーム516の再生時間を1/25[秒]と設定したセグメント520を生成する。その後、セグメント生成部305は、映像フレーム517,518,519の生成通知を符号化処理部303から全て受信した時点で、ヘッダを映像フレームのデータに付加して、セグメント540を生成する。この時のセグメント生成部305は、セグメント540のヘッダには、映像フレーム517,518,519の再生時間がそれぞれ1/25[秒]となるよう設定する。
The
図5は、セグメント生成部305が生成するセグメント420のデータの内部構成を示す図である。
セグメント420は、ボックス471,472,473,474で構成される。セグメント420は、一種のファイルヘッダとして作用するstypボックス471、セグメントに関する時間情報やランダムアクセス情報を含むsidxボックス472、及びフラグメント421からなる。
FIG. 5 is a diagram showing an internal configuration of data of the
The
フラグメント421は、フラグメントの各種情報を含むmoofボックス473、及び映像フレーム411,412,413のデータを含むmdatボックス474から成る。moofボックス473は、フラグメントごとに増加する順序番号を含むmfhdボックス481、及びtrafボックス482から成る。trafボックス482は、tfhdボックス491、tfdtボックス492、trunボックス493からなる。tfhdボックス491はフラグメントの各種デフォルト情報を含むボックスであり、tfdtボックス492はフラグメントの先頭の映像フレーム411の各映像フレームのデコード開始時間を含むボックスである。trunボックス493は、フラグメント421に含まれる映像フレーム411,412,413の各種情報を含むボックスである。
The
以下、trunボックス493の各種情報がどのようにデータとして含まれるかを説明する。
versionでは、sample_composition_time_offsetがデータとしてtrunボックス493に含まれる場合、unsigned intかsigned intかに応じた値がセットされる。例えば、sample_composition_time_offsetのデータ型を32bitのunsigned intとする場合には、ビット0x00000000の値がセットされる。また例えば、sample_composition_time_offsetのデータ型を32bitのsigned intとする場合には、それ以外の値がセットされる。本実施形態において、映像フレームの再生時に、時系列的に前の映像フレームを再生することはないため、versionにはビット0x00000000をセットする。
Hereinafter, how various information in the
In version, when sample_composition_time_offset is included in the
tr_flagsではtrunボックス493がデータとして含む各種情報を指定する。本実施形態において、trunボックス493は、data_offset、sample_duration、sample_size、sample_flags、sample_composition_time_offsetを含む。このため、tr_flagsにはビット0x00000F01をセットする。
In tr_flags, various items of information that the
sample_countには、フラグメント421に含まれる映像フレームの数3を示すビット0x00000003をセットする。
data_offsetには、フラグメント421の先頭バイトからフラグメントの先頭の映像フレーム411の先頭バイトまでのオフセットのバイト値をセットする。
In sample_count, bit 0x00000003 indicating the number 3 of video frames included in the
As data_offset, a byte value of an offset from the first byte of the
以降は、sample_durationからsample_composition_time_offsetまでをsample_count数分要素に持つ映像フレームパラメータ配列のバイトがセットされる。sample_count数の要素には、sample_duration、sample_size、sample_flags、sample_composition_time_offsetが含まれる。映像フレームパラメータ配列の要素の各種情報は、その要素の映像フレームパラメータ配列におけるインデクス番目(時系列)の、フラグメント421に含まれる映像フレームの情報を示すこととする。 Thereafter, the bytes of the video frame parameter array having elements from sample_duration to sample_composition_time_offset in the number of sample_count are set. The elements of sample_count number include sample_duration, sample_size, sample_flags, and sample_composition_time_offset. The various pieces of information of the elements of the video frame parameter array indicate the information of the video frames included in the fragment 421 (time series) in the video frame parameter array of the element.
sample_durationには、初期化セグメント400のヘッダに含まれるmdhdボックスのTimescaleの値に映像フレームの再生継続時間の秒数を乗じた数のビットをセットする。例えば、初期化セグメント400のヘッダに含まれるmdhdボックスのTimescaleの値を300000、映像フレームの再生継続時間の秒数をフレーム周期の秒数=1/25とする。また例えば、sample_durationには、30000×(フレーム周期の秒数=1/25)=1200=0x000004B0をセットする。ここでは、映像フレームの再生継続時間をフレーム周期としたが、直後に付加されるべき映像フレームが付加されていない場合は、その時間分延長した時間を映像フレームの再生継続時間とすることとする。
In sample_duration, the number of bits obtained by multiplying the value of Timescale of the mdhd box included in the header of the
sample_sizeには、映像フレームのデータサイズ(バイト単位)を示すビットをセットする。例えば、映像フレームのデータが10000バイトであれば、0x00002710をセットする。
sample_flagsには、映像フレームが独立フレームである場合には0x00000000をセットし、映像フレームが従属フレームである場合には0x00010000をセットする。
In sample_size, a bit indicating the data size (in bytes) of the video frame is set. For example, if the video frame data is 10000 bytes, 0x00002710 is set.
In the sample_flags, 0x00000000 is set when the video frame is an independent frame, and 0x00010000 is set when the video frame is a dependent frame.
sample_composition_time_offsetには、映像フレームの再生開始時間オフセットを示すビットをセットする。しかして、tfdtボックス491に含まれる映像フレームのデコード開始時間を映像フレームの再生開始時間オフセット分遅らせた時間である映像フレームの再生開始時間から、映像フレームの再生は開始されることとなる。
In sample_composition_time_offset, a bit indicating a playback start time offset of the video frame is set. Thus, the reproduction of the video frame is started from the reproduction start time of the video frame, which is the time obtained by delaying the decoding start time of the video frame included in the
また、セグメントは一つのフラグメントを含むものとしたが複数のフラグメントを含んでいてもよい。
また、sample_composition_time_offsetをサポートしないクライアント装置で、映像の再生を行う場合には、以下のようにしてもよい。例えばtr_flagsを0x00000701とし、sample_composition_time_offsetのビットをセットせず、映像フレームの再生継続時間をsample_composition_time_offset分長くセットする。
なお、セグメントの内部構造はこれらに限らず、映像フレームの再生開始時間と再生継続時間を含むことが可能であればよい。
Also, although the segment includes one fragment, it may include a plurality of fragments.
In addition, in the case of reproducing a video with a client device that does not support sample_composition_time_offset, the following may be performed. For example, tr_flags is set to 0x00000701, the bit of sample_composition_time_offset is not set, and the reproduction duration of the video frame is set longer by sample_composition_time_offset.
Note that the internal structure of the segment is not limited to these, as long as it can include the reproduction start time and the reproduction continuation time of the video frame.
以上がセグメント420の内部構造の説明である。セグメント生成部305が生成する映像ストリーム450の他のセグメント又は映像ストリーム450以外の映像ストリームのセグメントについても、符号化処理部303が生成したフレームを、セグメント時間及びフレーム周期に応じて同様にセグメント化できる。
The above is the description of the internal structure of the
図6は、本実施形態に係るダミーフレームの一例である、ダミーフレーム550を示す図である。
H.264/AVCの符号化方式において、映像フレームはさらに小さな単位の1以上のスライス、スライスはさらに小さな単位の画素ブロックである1以上のマクロブロックから構成される。ここで、映像ストリーム450の映像フレームの解像度は256×144[ピクセル]であり、マクロブロックの解像度は16×16[ピクセル]であるとする。符号化処理部303は、マクロブロックのデータを、水平方向16[個]×垂直方向9[個]=144[個]結合したスライス一つからなるデータを映像フレームとして用いることができる。しかして、符号化処理部303は、参照先の映像フレームデータの同位置のマクロブロックと差分がないことを示すスキップトマクロブロック551のデータを結合することにより、ダミーフレーム550を生成して用いることができる。なお、マクロブロックの大きさは16×16[ピクセル]に限らず、またマクロブロックの大きさは一つの映像フレーム内で固定であっても、可変であってもよい。ダミーフレームのデータは、スキップトマクロブロックを使用するものに限らず、参照先の映像フレームとの差分がないことを示すデータであればよい。
FIG. 6 is a view showing a
H. In the H.264 / AVC coding system, a video frame is composed of one or more slices in smaller units, and a slice is composed of one or more macroblocks which are pixel blocks in smaller units. Here, it is assumed that the resolution of the video frame of the
図7は、映像処理装置101がクライアント装置102に配信するMPDファイル600の構成例を示す図である。
MPDファイル600は、XML形式であり、スキーマ情報601にて、xmlns属性で指定した名前空間及びxsi属性で指定したスキーマ文書において、MPDファイル600の記述方法が定義される。
FIG. 7 is a view showing a configuration example of the MPD file 600 distributed by the
The
MPDファイル600では、Period603、AdaptationSet604、Representation605、初期化セグメントURI情報615及びセグメントURI情報616の順に各要素が階層構造となされている。これら各要素の階層構造によって、符号化処理部303が形成する映像ストリーム450、及び、セグメント生成部305が生成する初期化セグメント、セグメントに関する情報が定義される。
In the
Period603は、下位階層の要素が定義される期間の範囲を定義する。例えば、Period603の開始時間startに0をセットし、Period603の期間であるdurationはセットしない場合、映像処理装置101が配信する初期化セグメント、セグメントの全ての情報の期間が定義される。
AdaptationSet604は、映像の情報を示しており、例えば同じPeriod603の期間で別の視点の映像ごとに定義することができる。本実施形態では、映像の視点を単一のものとし、一つのAdaptationSet604を例に挙げている。
The
Representation605は、映像ストリーム450の情報を定義する。Representation605は、符号化方式情報609、解像度情報610、フレームレート情報611、及び配信ビットレート情報612を含む。符号化方式情報609は、映像ストリーム450の符号化方式H.264/AVC Mainプロファイル レベル3.1を示す。解像度情報610は、映像ストリーム450の映像フレームの解像度である256×144[ピクセル]を示す。フレームレート情報611は、フレーム周期の逆数であり映像の1秒当たりに生成される映像フレームの枚数25を示す。配信ビットレート情報612は、映像ストリーム450の配信ビットレート値65536[bps]を示す。また、Representation605は、下記のように、セグメントが区切られる時間の単位(セグメント時間)をセグメント時間情報614で示している。
The
(Representation605のセグメント時間)=(セグメント時間情報614のduration)/(セグメント時間情報614のtimescale)=360/3000[秒]=3/25[秒] (Segment time of Representation 605) = (duration of segment time information 614) / (timescale of segment time information 614) = 360/3000 [seconds] = 3/25 [seconds]
また、Representation605は、映像ストリーム450の初期化セグメントURI情報615及びセグメントURI情報616を含んでいる。クライアント装置102は、映像処理装置101のIPアドレスを含むMPDBaseURI情報602、映像ストリーム450の識別子を含むRepresentationBaseURI情報613を使用することで下記のURIにアクセスする。そして、クライアント装置102は、映像ストリーム450の初期セグメントと各セグメントの取得を行う。
Further, the
(Representation605の初期化セグメントURI)=(MPDBaseURI情報602)+(RepresentationBaseURI情報613)+(初期化セグメントURI情報615)="http://192.169.100.1:80/video/stream1/init1.mp4"
(
(Representation605のセグメントURI)=(MPDBaseURI情報602)+(RepresentationBaseURI情報613)+(セグメントURI情報616)="http://192.169.100.1:80/video/stream1/media1_$Number$.m4s" (Segment URI of Representation 605) = (MPDBase URI Information 602) + (RepresentationBaseURI Information 613) + (Segment URI Information 616) = "http://192.169.100.1:80/video/stream1/media1_$Number$. m4s "
上記の式において、A+Bは、要素Aの文字列の右側に要素Bの文字列を結合すること意味する。$Number$は、テンプレート表現であり、セグメントURI情報616のstartNumberの値からセグメント一つごとに評価値がインクリメントされていく。
In the above equation, A + B means to combine the element B string to the right of the element A string. $ Number $ is a template expression, and the evaluation value is incremented for each segment from the value of startNumber in the
実際の映像ストリーム450の各セグメントのURIは、"http://192.169.100.1:80/video/stream1/media1_1.m4s"である。また、"http://192.169.100.1:80/video/stream1/media1_2.m4s"である。また、"http://192.169.100.1:80/video/stream1/media1_3.m4s"等である。
The URI of each segment of the
他に、URIのためのテンプレート表現として、Representation605のRepresentationID608として$RepresentationID$を用いることができる。また、Representation605の配信ビットレート情報612の数値とし、$BandWidth$等を用いることができる。また、それらの組み合わせを用いることができる。
Alternatively, $ RepresentationID $ can be used as a
配信部306は、MPDファイル600を、初期化セグメントと各セグメントを配信する前にクライアント装置102に配信する。これにより、クライアント装置102は、映像処理装置101に対し初期化セグメント又はセグメントの送信要求を行うことが可能となる。
The
クライアント装置102は、例えば送信要求をセグメント時間情報614に基づいたセグメント時間ごとにセグメントの送信要求を行い、所定の回数セグメントを取得することができないとセグメントの送信要求を行うことを中止する。そのため、セグメント生成部305は、あるセグメントを生成してからセグメント時間内に次のセグメントを生成するように処理を行うものとする。
For example, the
ここで本実施形態では、説明の容易化のため、映像ストリームを1本としたが、複数の映像ストリームを定義してもよい。MPDファイル600には、複数のRepresentaionを記述することが可能である。したがって、映像処理装置101は映像ストリーム450以外の映像ストリームを配信することも可能である。この場合、Representation605が映像ストリーム450の情報を表現するのと同様に、さらにRepresentationを追加し映像ストリーム450以外のストリームついても各種の値を表現することとしてもよい。MPDファイル600では、複数のPeriod、Adaptationが定義可能であるため時間区間や映像構成によって種々の記述をしてもよい。例えば時間区間ごとに別々のPeriodを定義し、異なるRepresentaionを定義してもよいし、複数のRepresentaionを異なるAdaptationSetにおいて定義してもよい。
Here, in the present embodiment, one video stream is provided for ease of explanation, but a plurality of video streams may be defined. The
図8は、欠落期間検出部304における処理の流れを示すフローチャートである。
なお、以下の説明では、図8のフローチャートの各ステップS101〜ステップS105をS101〜S105と略記する。このことは、後述する他のフローチャートにおいても同様とする。
FIG. 8 is a flowchart showing the flow of processing in the missing
In the following description, steps S101 to S105 in the flowchart of FIG. 8 are abbreviated as S101 to S105. The same applies to the other flowcharts described later.
欠落期間検出部304は、符号化処理部303からの欠落フレーム情報の生成通知の取得と同時に図8に示すフローチャートの処理を開始する。
先ずS101において、欠落期間検出部304は、符号化処理部303が生成した欠落フレーム情報から欠落フレーム番号を取得する。
The missing
First, in S101, the missing
次にS102において、欠落期間検出部304は、セグメント内先頭フレームが欠落したか否かの判定を行う。例えば、セグメント内先頭フレームの判定として、欠落期間検出部304は、S101で取得した欠落フレーム番号をセグメントフレーム数で割った余りが0に等しいかどうかの判定を行う。そして、欠落期間検出部304は、セグメント内先頭フレームが欠落したと判定した場合にはS103に処理を進め、セグメント内先頭フレームが欠落していないと判定した場合にはS105に処理を進める。
Next, in S102, the missing
S103に進むと、欠落期間検出部304は、符号化処理部303に対しダミーフレームの生成要求を行う。なお欠落期間検出部304は、セグメント内先頭フレームが欠落した場合、S103で符号化処理部303にダミーフレームの生成要求を行うが、ダミーフレームの生成要求はセグメント内の全ての映像フレームが欠落した場合等その他の条件で代用してもよい。
In step S103, the missing
次にS104において、欠落期間検出部304は、セグメントのダミーフレームフラグをONとして一時記憶部301に保存する。
そして、S105に進むと、欠落期間検出部304は、セグメントのセグメント内欠落期間情報にセグメント内フレーム番号配列における欠落フレーム番号のインデクスを要素として追加し一時記憶部301に保存する。このS105の後、欠落期間検出部304は、図8のフローチャートの処理を終了する。
Next, in S104, the dropout
Then, in S105, the missing
図9は、セグメント生成部305における処理の流れを示すフローチャートである。
セグメント生成部305は、符号化処理部303において符号化処理が開始された直後に当該符号化処理部303から要求される生成通知を受けて、図9に示すフローチャートの処理を開始する。
FIG. 9 is a flowchart showing the flow of processing in the
The
先ずS201において、セグメント生成部305は、イベントの発生を待ち、発生イベントの判定により、処理動作を切り替える。セグメント生成部305は、発生イベントが、符号化処理部303からの映像メタ情報の生成イベントであると判定した場合には、S202に処理を進める。また、セグメント生成部305は、発生イベントが、符号化処理部303からの映像フレーム生成イベントであると判定した場合には、S207に処理を進める。また、セグメント生成部305は、発生イベントが、配信部306からのセグメント解放指示イベントであると判定した場合には、S212に処理を進める。また、セグメント生成部305は、発生イベントが、配信部306からの映像ストリームの終了要求イベントであると判定した場合には、S213に処理を進める。
First, in step S201, the
S202に進むと、セグメント生成部305は、映像メタ情報を保存する。
次にS203において、セグメント生成部305は、映像メタ情報を含む初期化セグメントを生成して配信部306に通知する。
次にS204において、セグメント生成部305は、映像ストリームの開始要求時に指定されたセグメント時間、セグメント内フレーム番号配列などのセグメントを構成するのに必要なセグメント構成情報を保存する。
次にS205において、セグメント生成部305は、自己の状態を独立フレーム待ちの状態に設定する。
次にS206において、セグメント生成部305は、生成する全てのセグメントのダミーフレームフラグをクリアとして初期化し一時記憶部301に保存する。その後、セグメント生成部305は、S201に処理を戻す。
In step S202, the
Next, in step S203, the
Next, in step S204, the
Next, in S205, the
Next, in step S206, the
S207に進むと、セグメント生成部305は、自己の状態を判定する。そして、セグメント生成部305は、自己の状態が独立フレーム待ちの状態であると判定した場合には、S208に処理を進め、自己の状態が次フレーム待ちの状態であると判定した場合には、S210に処理を進める。
At S207, the
S208に進むと、セグメント生成部305は、生成された映像フレームが独立フレームか否かを判定する。そして、セグメント生成部305は、映像フレームが独立フレームであると判定した場合にはS209に処理を進める。一方、映像フレームが独立フレームでないと判定した場合、セグメント生成部305は、生成された映像フレームのデータを一時記憶部301から削除した後、S201に処理を戻す。
In step S208, the
S209に進むと、セグメント生成部305は、自己の状態を次フレーム待ちの状態に設定する。
次にS210において、セグメント生成部305は、映像フレーム情報を保存する。
次にS211において、セグメント生成部305は、セグメント生成処理を行う。その後、セグメント生成部305は、S201に処理を戻す。
In step S209, the
Next, in S210, the
Next, in S211, the
S212に進むと、セグメント生成部305は、保存しているセグメント情報と当該セグメントに含まれている映像フレームを削除する。その後、セグメント生成部305は、S201に処理を戻す。
In step S212, the
S213に進むと、セグメント生成部305は、保存している全セグメント情報と当該セグメントに含まれている映像フレーム情報を削除した後、図9のフローチャートの処理を終了する。
In step S213, the
図10は、図9のフローチャートのS211でセグメント生成部305において行われるセグメント生成処理のフローチャートである。
先ずS301において、セグメント生成部305は、符号化処理部303の映像フレーム情報に含まれるフレーム番号以下のフレーム番号が、セグメントの最後のフレームのフレーム番号となるセグメントの集合を対象セグメントとして決定する。
FIG. 10 is a flowchart of the segment generation process performed by the
First, in step S301, the
次に、セグメント生成部305は、対象セグメントに含まれるセグメントについて、S302からS312までのループ処理を開始する。セグメント生成部305は、対象セグメントに含まれる全てのセグメントについての処理が終了すると、対象セグメントに含まれるセグメントについてのループ処理を終了する。
Next, the
S302からS312までのループ処理において、セグメント生成部305は、先ずS303の処理として、一時記憶部301に保存されたセグメントのダミーフレームフラグがONかどうかを判定する。そして、セグメント生成部305は、一時記憶部301に保存されたセグメントのダミーフレームフラグがONである場合には、S304に処理を進め、セグメントのダミーフレームフラグがONでない場合には、S307に処理を進める。
In the loop process from S302 to S312, the
S304に進むと、セグメント生成部305は、セグメントのダミーフレームが生成されて一時記憶部301に保存されているかどうかを判定する。セグメント生成部305は、セグメントのダミーフレームが生成され一時記憶部301に保存されていると判定した場合にはS305に処理を進める。一方、セグメント生成部305は、セグメントのダミーフレームが生成され一時記憶部301に保存されていないと判定した場合はS312に処理を進める。
In step S304, the
S305に進むと、セグメント生成部305は、ダミーフレーム情報を一時記憶部301に保存する。
次にS306において、セグメント生成部305は、セグメントのダミーフレームフラグをクリアとして一時記憶部301に保存し、その後、S307に処理を進める。
In step S305, the
Next, in step S306, the
S307に進むと、セグメント生成部305は、セグメントが完成したかどうかを判定する。セグメント生成部305は、セグメントの最後の映像フレームの映像フレーム情報が一時記憶部301に保存されている場合に、セグメントが完成したと判定する。または、セグメント生成部305は、一時記憶部301に保存されているセグメント内欠落情報がセグメントの最後の映像フレームのフレーム番号が含まれている場合に、セグメントが完成したと判定する。これらセグメントが完成したと判定する条件の何れかを満たす場合、セグメント生成部305は、S308に処理を進める。一方、それらいずれの条件をも満たさない場合、セグメント生成部305は、S312に処理を進める。
In step S307, the
S308に進むと、セグメント生成部305は、各フレーム(ダミーフレーム又は映像フレーム)の再生時間情報を生成したヘッダを生成する。さらに、セグメント生成部305は、一時記憶部301に保存されているフレームのうち、セグメント内フレーム番号配列に含まれるフレーム番号のフレームのデータにヘッダデータを結合し、セグメントを生成する。S308では、先ずセグメント生成部305は、一時記憶部301に保存されている生成済みフレームのフレーム番号のうち、セグメント内フレーム番号配列に含まれるフレーム番号を小さい順に要素とする生成フレーム番号配列を生成する。次に、セグメント生成部305は、前述のtrunボックスのsample_composition_time_offset、sample_durationを以下の通りセットしたヘッダを生成する。
In step S308, the
sample_composition_time_offset=(フレーム周期)×(ダミーフレーム又は映像フレームのフレーム番号の、セグメント内フレーム番号配列におけるインデクス+1) sample_composition_time_offset = (frame period) × (index of frame number of dummy frame or video frame in intra-segment frame number array + 1)
sample_duration=(フレーム周期)×(ダミーフレーム又は映像フレームのフレーム番号と、生成フレーム番号配列における次の映像フレーム番号との差) sample_duration = (frame period) × (difference between frame number of dummy frame or video frame and next video frame number in generated frame number array)
その後、セグメント生成部305は、初めにヘッダデータ、次以降は一時記憶部301に保存されているフレームのうち、セグメント内フレーム番号配列に含まれるフレーム番号のフレームを配列の要素順に配置して結合したデータを生成する。
After that, the
次にS309において、セグメント生成部305は、S308で生成したセグメントのセグメント情報を一時記憶部301に保存する。
次にS310において、セグメント生成部305は、配信部306にセグメントの生成通知を行い、生成したセグメントのセグメント情報を送信する。
次に、S311において、セグメント生成部305は、一時記憶部301に保存した、セグメントのセグメント内欠落期間情報を解放し削除する。
次のS312において、対象セグメントに含まれるセグメントについてのループ処理が続く場合にはS303に戻る。そして、対象セグメントに含まれるセグメントの処理が終わった場合、図10のフローチャートの処理は終了する。
Next, in step S309, the
Next, in S310, the
Next, in S311, the
If loop processing continues for the segment included in the target segment in the next S312, the process returns to S303. Then, when the processing of the segment included in the target segment is completed, the processing of the flowchart of FIG. 10 ends.
本実施形態では、符号化処理部303が生成する映像フレームにはフレーム番号が付与され、例えば最初に生成された映像フレームにはフレーム番号0が、その後はフレーム周期ごとに1ずつ増加するフレーム番号が付与される例を挙げた。フレーム番号の値はこれに限らず、S102にて欠落フレームの条件を判定可能であればよい。例えば、撮像素子205が撮像する時間間隔(撮像処理部302が画像キャプチャI/F206経由で映像データを取得する時間間隔)を、映像ストリーム450のフレーム周期で除した数ずつ、フレーム番号が増加するものとしてもよい。
In the present embodiment, a frame number is added to a video frame generated by the
また本実施形態において、映像ストリーム450のフレーム周期、映像フレームの符号化方式、映像フレームの解像度、映像フレーム構成方式、及びセグメント生成部305が生成するセグメントのセグメント時間は、上述のものに限らない。
Further, in the present embodiment, the frame period of the
また、本実施形態では、映像フレームの再生開始時間又は再生継続時間の値をセグメントデータ内にセットし、且つセグメント内欠落フレームの条件に基づいてダミーフレームの生成を行うものとしているが、これに限定されるものではない。例えば、ダミーフレームの生成を行わなくとも映像再生が途切れないように映像フレームの再生開始時間又は再生継続時間の値をセグメントデータ内にセットできればよい。 Further, in this embodiment, the value of the reproduction start time or the reproduction continuation time of the video frame is set in the segment data, and the dummy frame is generated based on the condition of the intra-segment missing frame. It is not limited. For example, the value of the reproduction start time or the reproduction continuation time of the video frame may be set in the segment data so that the video reproduction is not interrupted even if the dummy frame is not generated.
また本実施形態では、撮像処理部302が映像データを符号化処理部303に送信するが、映像処理装置101は、撮像処理部302を有さず、予め二次記憶装置203に保存している映像データを符号化処理部303が取得するものとしてもよい。
Further, in the present embodiment, although the
また本実施形態では、配信部306がMPDファイル、初期化セグメント、セグメントを生成する前にクライアント装置102に配信するものとしたが、これに限定されるものではない。例えば、映像処理装置101は、配信部306を有さず、セグメント生成部305によって生成された初期化セグメント、セグメントを二次記憶装置203に保存しておくものとしてもよい。
In the present embodiment, the
以上のように、セグメント生成部305は、符号化処理部303に生成された映像フレーム情報及び欠落フレーム情報に応じて再生時間情報をセットしたヘッダを含むセグメントを生成する。
このように、映像処理装置101は、映像フレームが欠落する場合にも、クライアント装置102のセグメントの要求時にセグメント時間通りのセグメントを生成可能となされている。
すなわち、本実施形態によれば、一般的な再生装置によって再生可能なセグメントを、データ量を最小限に抑えながら、セグメント時間通りに生成可能である。
As described above, the
As described above, even when a video frame is dropped, the
That is, according to the present embodiment, it is possible to generate a segment reproducible by a general reproduction device according to the segment time while minimizing the amount of data.
<第2実施形態>
次に、第2実施形態について説明する。
以下、第2実施形態において、第1実施形態で共通している部分の説明は省略し、第1実施形態とは異なる部分について説明する。
第2実施形態において、映像処理装置101は、タイマを有し、フレーム周期経過時及びセグメント時間経過時にセグメント生成部305に対して通知を行うものとする。
図11は、第2実施形態におけるセグメント生成部305のセグメント生成処理のフローチャートである。
第2実施形態においても、セグメント生成部305は、符号化処理が開始された直後に符号化処理部303から要求される生成通知を受けて、図11のフローチャートの処理を開始する。
Second Embodiment
Next, a second embodiment will be described.
Hereinafter, in the second embodiment, descriptions of parts common to the first embodiment will be omitted, and parts different from the first embodiment will be described.
In the second embodiment, the
FIG. 11 is a flowchart of the segment generation process of the
Also in the second embodiment, the
S401において、セグメント生成部305は、イベントの発生を待ち、発生イベントの判定により、処理動作を切り替える。セグメント生成部305は、発生イベントが、符号化処理部303からの映像メタ情報の生成イベントであると判定した場合には、S402に処理を進める。また、セグメント生成部305は、発生イベントが、タイマのフレーム周期経過イベントであると判定した場合には、S408に処理を進める。また、セグメント生成部305は、発生イベントが、タイマのセグメント時間経過イベントであると判定した場合には、S412に処理を進める。また、セグメント生成部305は、符号化処理部303からの映像フレーム生成イベントであると判定した場合には、S413に処理を進める。また、セグメント生成部305は、発生イベントが、配信部306からのセグメント解放指示イベントであると判定した場合には、S414に処理を進める。また、セグメント生成部305は、発生イベントが、配信部306からの映像ストリームの終了要求イベントであると判定した場合には、S415に処理を進める。
In S401, the
S402からS405までは、図9のS202からS205まで処理と同様である。第2実施形態の場合、セグメント生成部305は、S405の後にS406に処理を進める。
S406に進むと、セグメント生成部305は、タイマカウント値Tに0を設定し、タイマのカウントアップを開始させる。
次に、S407において、セグメント生成部305は、生成する全てのセグメントのダミーフレームフラグをクリアとして初期化し一時記憶部301に保存する。その後、セグメント生成部305は、S401に処理を戻す。
Steps S402 to S405 are the same as the processes from S202 to S205 in FIG. In the case of the second embodiment, the
In step S406, the
Next, in step S <b> 407, the
S408に進むと、セグメント生成部305は、自己の状態を判定する。そして、セグメント生成部305は、自己の状態が独立フレーム待ちの状態であると判定した場合にはS409に処理を進め、自己の状態が次フレーム待ちの状態であると判定した場合にはS411に処理を進める。
In step S408, the
S409に進むと、セグメント生成部305は、独立フレームが生成され一時記憶部301に保存されているかどうかを判定する。そして、セグメント生成部305は、独立フレームが生成され一時記憶部301に保存されていると判定した場合にはS410に処理を進め、独立フレームが生成され一時記憶部301に保存されてないと判定した場合にはS401に処理を戻す。
In step S409, the
S410に進むと、セグメント生成部305は、自己の状態を次フレーム待ちの状態に設定した後、S411に処理を進める。
S411に進むと、セグメント生成部305は、欠落期間検出部304に対し、ダミーフレーム生成判定処理を要求する。その後、セグメント生成部305は、S401に処理を戻す。
In step S410, the
In step S411, the
S412に進んだ場合、セグメント生成部305は、セグメント生成処理を行う。セグメント生成処理は、図9のS211と同様である。その後、セグメント生成部305は、S401に処理を戻す。
S413に進んだ場合、セグメント生成部305は、フレーム生成時間を付加し、フレーム(映像フレーム、ダミーフレーム)情報を保存して、S401に処理を戻す。
S414に進んだ場合、セグメント生成部305は、保存しているセグメント情報と当該セグメントに含まれている映像フレームを削除する。その後、セグメント生成部305は、S401に処理を戻す。
S415に進んだ場合、セグメント生成部305は、保存している全セグメント情報と当該セグメントに含まれている映像フレーム情報を削除し、次のS416においてタイマのカウントアップを終了して処理を終了する。
When the process proceeds to step S412, the
If the process proceeds to step S413, the
When the processing proceeds to step S414, the
If the process proceeds to step S415, the
図12は、図11のS411において欠落期間検出部304で行われるダミーフレーム生成判定処理を示すフローチャートである。
欠落期間検出部304は、セグメント生成部305からのダミーフレーム生成判定処理の要求を受けると図12の処理を開始する。
FIG. 12 is a flowchart showing the dummy frame generation determination process performed by the missing
When receiving the request for the dummy frame generation determination process from the
先ずS501において、欠落期間検出部304は、タイマの時間を取得し、後述する最新映像フレーム生成時間から、取得した時間までに生成されるべき映像フレームの集合を、対象映像フレームとして決定する。
First, in S501, the dropout
次に、欠落期間検出部304は、対象映像フレームに含まれる映像フレームについて、S502からS510までのループ処理を開始する。欠落期間検出部304は、対象映像フレームに含まれる全ての映像フレームについての処理が終了すると、対象映像フレームに含まれる映像フレームについてのループ処理を終了する。
Next, the missing
S502からS510までのループ処理において、欠落期間検出部304は、先ずS503の処理として、映像フレームが生成済みか否かを判定する。欠落期間検出部304は、映像フレームが生成済みであると判定した場合にはS504に処理を進め、映像フレームが生成済みでないと判定した場合にはS506に処理を進める。映像フレームが生成済みでないと判定された場合とは、すなわち映像フレームが欠落した場合ということになる。
In the loop process from S502 to S510, the missing
S504に進むと、欠落期間検出部304は、映像フレームの生成時間を取得する。
次にS505において、欠落期間検出部304は、最新映像フレーム生成時間をS504で取得した時間に更新する。
In step S504, the missing
Next, in S505, the missing
S506に進むと、欠落期間検出部304は、セグメント内先頭フレームが欠落したか否かを判定する。例えば、セグメント内先頭フレームが欠落したか否かは、S503で生成済みでないと判定された映像フレームがセグメント内先頭フレームか否かで判定できる。欠落期間検出部304は、セグメント内先頭フレームが欠落したと判定した場合にはS507に処理を進め、欠落していないと判定した場合にはS509に処理を進める。
In step S506, the missing
S507に進むと、欠落期間検出部304は、符号化処理部303に対しダミーフレームの生成要求を行う。ダミーフレームの生成要求の処理は図8のS103と同様である。
次にS508において、欠落期間検出部304は、欠落した映像フレームに対応するセグメントのダミーフレームフラグをONとして一時記憶部301に保存する。
次にS509において、欠落期間検出部304は、セグメントのセグメント内欠落期間情報に欠落した映像フレームのセグメント内における順序を、セグメント内欠落期間情報に要素として追加し一時記憶部301に保存する。
次のS510において、対象映像フレームに含まれる映像フレームについての処理が続く場合にはS502に戻る。そして、全ての対象映像フレームの処理が終わった場合、図12のフローチャートの処理は終了する。
In step S507, the dropout
Next, in step S508, the dropout
Next, in S 509, the missing
In the next S510, if the process for the video frame included in the target video frame continues, the process returns to S502. Then, when processing of all target video frames is completed, the processing of the flowchart of FIG. 12 ends.
以上のように、第2実施形態の場合、セグメント生成部305は、タイマの経過時間に応じて、符号化処理部303に生成された映像フレーム情報に応じた再生時間情報をセットしたヘッダを含むセグメントを生成する。
このように、映像処理装置101は、符号化処理部303が欠落フレーム情報を生成することがなくても、映像フレームが欠落する場合に、クライアント装置102からセグメントの要求がなされた時に、セグメント時間通りのセグメントを生成できる。すなわち、第2実施形態においても、データ量を最小限に抑えながら、セグメント時間通りにセグメントを生成可能である。
As described above, in the case of the second embodiment, the
As described above, in the
<その他の実施形態>
以上、説明した実施形態では、DASH配信を例に説明したが、HLS配信など他のアダプティブストリーミング技術にも適用可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
<Other Embodiments>
As mentioned above, although DASH delivery was demonstrated to the example in the embodiment described, it is applicable also to other adaptive streaming techniques, such as HLS delivery.
The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or storage medium, and one or more processors in a computer of the system or apparatus read and execute the program. Can also be realized. It can also be implemented by a circuit (eg, an ASIC) that implements one or more functions.
The above-described embodiments are merely examples of implementation for carrying out the present invention, and the technical scope of the present invention should not be interpreted in a limited manner by these. That is, the present invention can be implemented in various forms without departing from the technical concept or the main features thereof.
101:映像処理装置、302:撮像処理部、303:符号化処理部、304:欠落期間検出部、305:セグメント生成部、306:配信部 101: video processing apparatus, 302: imaging processor, 303: encoding processor, 304: missing period detector, 305: segment generator, 306: distribution unit
Claims (18)
前記処理手段で生成された少なくとも一つの映像フレームを含む映像ストリームを所定のセグメント時間で分割したセグメントを生成する生成手段と、
を有し、
前記生成手段は、前記処理手段で符号化が行われず映像フレームが生成されなかった場合、前記セグメントの中のどの映像フレームが生成されなかったかに応じて、ダミーフレームを前記セグメントに付加するかどうかを決定し、前記生成されなかった映像フレーム以外の映像フレームの表示時間を変更することにより前記所定のセグメント時間の前記セグメントを生成することを特徴とする映像処理装置。 Processing means for generating a video frame encoded by the intraframe encoding process or the interframe encoding process;
Generation means for generating a segment obtained by dividing a video stream including at least one video frame generated by the processing means by a predetermined segment time;
Have
Whether the generation means adds a dummy frame to the segment according to which image frame in the segment is not generated when the encoding means is not performed by the processing means and the image frame is not generated The video processing apparatus generates the segment of the predetermined segment time by determining the video frame other than the video frame that is not generated.
前記処理手段は、前記ダミーフレームの生成要求を受け取ると前記ダミーフレームを生成することを特徴とする請求項3に記載の映像処理装置。 The detection means sends a generation request for the dummy frame to the processing means based on the detected missing period in the segment.
4. The video processing apparatus according to claim 3, wherein the processing means generates the dummy frame when receiving the generation request of the dummy frame.
前記処理手段は、前記撮像手段によって撮像された映像に対し前記符号化を行って前記映像フレームを生成することを特徴とする請求項1から10のいずれか1項に記載の映像処理装置。 It further comprises an imaging means for capturing an image,
The video processing apparatus according to any one of claims 1 to 10, wherein the processing unit performs the encoding on the video captured by the imaging unit to generate the video frame.
前記配信手段は、前記生成手段によって生成されるセグメントを配信する前に、少なくとも前記所定のセグメント時間を示すデータを配信することを特徴とする請求項1から11のいずれか1項に記載の映像処理装置。 It further comprises distribution means for distributing the segments generated by the generation means,
The video according to any one of claims 1 to 11, wherein the delivery means delivers data indicating at least the predetermined segment time before delivering the segment generated by the generation means. Processing unit.
生成手段により、前記処理ステップで生成された少なくとも一つの映像フレームを含む映像ストリームを所定のセグメント時間で分割したセグメントを生成する生成ステップと、
を有し、
前記生成ステップでは、前記処理ステップで符号化が行われず映像フレームが生成されなかった場合、前記セグメントの中のどの映像フレームが生成されなかったかに応じて、ダミーフレームを前記セグメントに付加するかどうかを決定し、前記生成されなかった映像フレーム以外の映像フレームの表示時間を変更することにより前記所定のセグメント時間の前記セグメントを生成することを特徴とする映像処理方法。 A processing step of generating a video frame encoded by the intraframe encoding process or the interframe encoding process by the processing means;
Generating, by generation means, a segment obtained by dividing a video stream including at least one video frame generated in the processing step by a predetermined segment time;
Have
In the generation step, if coding is not performed in the processing step and a video frame is not generated, a dummy frame is added to the segment according to which video frame in the segment is not generated. The video processing method, wherein the segment of the predetermined segment time is generated by determining the video frame other than the video frame that is not generated.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017246967A JP2019114926A (en) | 2017-12-22 | 2017-12-22 | Video processing apparatus, video processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017246967A JP2019114926A (en) | 2017-12-22 | 2017-12-22 | Video processing apparatus, video processing method, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019114926A true JP2019114926A (en) | 2019-07-11 |
Family
ID=67222917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017246967A Pending JP2019114926A (en) | 2017-12-22 | 2017-12-22 | Video processing apparatus, video processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019114926A (en) |
-
2017
- 2017-12-22 JP JP2017246967A patent/JP2019114926A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102246002B1 (en) | Method, device, and computer program to improve streaming of virtual reality media content | |
CN106068495B (en) | Streaming multiple encodings encoded using different encoding parameters | |
CN109889543B (en) | Video transmission method, root node, child node, P2P server and system | |
US20150208103A1 (en) | System and Method for Enabling User Control of Live Video Stream(s) | |
KR20130129481A (en) | Streaming encoded video data | |
US9819972B1 (en) | Methods and apparatuses for a distributed live-on-demand (LOD) origin | |
US10911809B2 (en) | Communication apparatus, communication method, and program | |
US9942578B1 (en) | Methods and apparatuses for a distributed live-on-demand (LOD) origin | |
WO2019128668A1 (en) | Method and apparatus for processing video bitstream, network device, and readable storage medium | |
KR20190065838A (en) | Server and method for generating time slice video, and user device | |
CN108696505B (en) | Video distribution apparatus, video reception apparatus, video distribution method, and recording medium | |
US20140298392A1 (en) | Image processing device, image processing method, and computer program | |
US10708667B1 (en) | Combining fragments with different encodings | |
JP2015050572A (en) | Information processing device, program, and information processing method | |
JP6193569B2 (en) | RECEPTION DEVICE, RECEPTION METHOD, AND PROGRAM, IMAGING DEVICE, IMAGING METHOD, AND PROGRAM, TRANSMISSION DEVICE, TRANSMISSION METHOD, AND PROGRAM | |
JP6355634B2 (en) | Data processing apparatus, data processing method, program, recording medium, and data processing system | |
JP2019114926A (en) | Video processing apparatus, video processing method, and program | |
JP2010011287A (en) | Image transmission method and terminal device | |
US11496535B2 (en) | Video data transmission apparatus, video data transmitting method, and storage medium | |
EP3843415A1 (en) | Video image-based media stream bandwidth reduction | |
JP2019020845A (en) | Image processing apparatus and method, and image processing system | |
CN109104552B (en) | Image pickup apparatus, processing method of image pickup apparatus, and storage medium | |
JP2007324722A (en) | Moving picture data distribution apparatus and moving picture data communication system | |
JP6907104B2 (en) | Video distribution device, control method and program | |
JP2019029931A (en) | Video transmitter, video receiver, video transmission/reception system, control method, and program |