(57)【特許請求の範囲】
【請求項１】
データの格納位置に応じて昇順又は降順のアドレスが付与された記憶手段と、
フレームを構成している偶数ラインのスライスデータを連続させた第１ストリームを生成し、当該第１ストリームの各スライスデータを隙間を空けずに連続させて前記記憶手段に順次格納する第１処理手段と、
前記第１ストリームの生成と並行して奇数ラインのスライスデータを連続させた第２ストリームを生成し、当該第２ストリームの各スライスデータを隙間を空けずに連続させて前記記憶手段に順次格納する第２処理手段と、を有し、
前記第１処理手段は、前記第１ストリームの各スライスデータを前記記憶手段の一方の末端アドレスから他方の末端アドレス方向に格納し、前記フレームのデータ格納が終了した場合であっても、当該フレームの最後の偶数ラインのスライスデータの次に、次のフレームに係る前記第１ストリームのスライスデータを格納し、前記記憶手段の空き容量が一組のスライスデータ分になった場合、前記一方の末端アドレスに戻って格納を継続し、
前記第２処理手段は、前記第２ストリームの各スライスデータを前記他方の末端アドレスから前記一方の末端アドレス方向に格納し、前記フレームのデータ格納が終了した場合であっても、当該フレームの最後の奇数ラインのスライスデータの次に、次のフレームに係る前記第２ストリームのスライスデータを格納し、前記記憶手段の空き容量が一組のスライスデータ分になった場合、前記他方の末端アドレスに戻って格納を継続することを特徴とするストリーム制御装置。
【請求項２】
前記スライスデータの格納位置を管理可能な管理情報を前記記憶手段に同居させたことを特徴とする請求項１に記載のストリーム制御装置。
【請求項３】
データの格納位置に応じて昇順又は降順のアドレスが付与された記憶手段を備えたコンピュータにより、
フレームを構成している偶数ラインのスライスデータを連続させた第１ストリームを生成し、当該第１ストリームの各スライスデータを隙間を空けずに連続させて前記記憶手段に順次格納する第１ステップと、
前記第１ストリームの生成と並行して奇数ラインのスライスデータを連続させた第２ストリームを生成し、当該第２ストリームの各スライスデータを隙間を空けずに連続させて前記記憶手段に順次格納する第２ステップと、を有し、
前記第１ステップは、前記第１ストリームの各スライスデータを前記記憶手段の一方の末端アドレスから他方の末端アドレス方向に格納し、前記フレームのデータ格納が終了した場合であっても、当該フレームの最後の偶数ラインのスライスデータの次に、次のフレームに係る前記第１ストリームのスライスデータを格納し、前記記憶手段の空き容量が一組のスライスデータ分になった場合、前記一方の末端アドレスに戻って格納を継続し、
前記第２ステップは、前記第２ストリームの各スライスデータを前記他方の末端アドレスから前記一方の末端アドレス方向に格納し、前記フレームのデータ格納が終了した場合であっても、当該フレームの最後の奇数ラインのスライスデータの次に、次のフレームに係る前記第２ストリームのスライスデータを格納し、前記記憶手段の空き容量が一組のスライスデータ分になった場合、前記他方の末端アドレスに戻って格納を継続することを特徴とするストリーム制御方法。
【請求項４】
前記スライスデータの格納位置を管理可能な管理情報を前記記憶手段に同居させたことを特徴とする請求項３に記載のストリーム制御方法。
【請求項５】
請求項３又は４に記載のストリーム制御方法をコンピュータに実現させるためのストリーム制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレームを構成している各ラインを連続させたストリームを制御する技術に関する。
【背景技術】
【０００２】
現在、動画を構成している個々の静止画（以下、フレームという）を横軸方向のライン単位で分割し、分割されたラインのスライスデータを連続させてストリームを生成するストリーム制御装置が存在している。
【０００３】
図６は、従来のストリーム制御装置の機能ブロック構成を模式的に示す図である。従来のストリーム制御装置１には、ラインのスライスデータ単位にストリームを生成する処理系が２つ用意されている。用意された第１処理系１１、第２処理系１２は、外部から入力される各フレームの偶数ラインのスライスデータ（以下、偶数スライスという）、奇数ラインのスライスデータ（以下、奇数スライスという）のそれぞれを連続させて同時にストリームを生成すると共に大容量で高速な第１メモリ１３にスライス単位で順次上から格納し、その第１メモリ１３に格納された各スライスの格納位置等を管理するメモリ管理情報を第２メモリ１４に格納するようになっている。
【０００４】
そして、その結果、偶数スライス（Ｎｏ．０）及び奇数スライス（Ｎｏ．１）が略同時のタイミングで第１メモリ１３の上方に行を異にして左詰で格納され、その後、偶数スライス（Ｎｏ．２）及び奇数スライス（Ｎｏ．３）が次の行に格納され、以降、同様の処理を繰り返すことにより、最初のフレームが第１メモリ１３に格納される。次のフレームに対する格納処理結果も同様となる。
【０００５】
一方、フレームを外部に出力する場合には、読出部１５が、第２メモリ１４に格納されたメモリ管理情報を参照しながら、各フレーム毎にフレームの上から下に向かってシリアルに各スライスを第１メモリ１３から読み出すようになっている。なお、このような技術については特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−１４５２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、通常、ストリーム生成時にはスライスデータの圧縮が行われ、その圧縮率は各スライス毎に異なり、更に各スライスの格納位置は固定的（各スライスを行単位に左詰で格納）であるため、第１メモリ１３に不要な空き領域（図６に示す斜線箇所）が発生し、メモリ使用に無駄が生じるという問題があった。
【０００８】
また、メモリ管理情報を第１メモリ１３とは別に設けられた第２メモリ１４に格納し、更に第２メモリ１４の容量は一般的に第１メモリ１３よりも極めて小さいため、その容量制限により様々なメモリ管理情報を格納することができず、柔軟にメモリ管理ができないという問題があった。
【０００９】
本発明は、上記課題を鑑みてなされたものであり、メモリを有効に活用することを第１の課題とし、柔軟なメモリ管理を実現することを第２の課題とする。
【課題を解決するための手段】
【００１０】
請求項１に記載の本発明は、データの格納位置に応じて昇順又は降順のアドレスが付与された記憶手段と、フレームを構成している偶数ラインのスライスデータを連続させた第１ストリームを生成し、当該第１ストリームの各スライスデータを隙間を空けずに連続させて前記記憶手段に順次格納する第１処理手段と、前記第１ストリームの生成と並行して奇数ラインのスライスデータを連続させた第２ストリームを生成し、当該第２ストリームの各スライスデータを隙間を空けずに連続させて前記記憶手段に順次格納する第２処理手段と、を有し、前記第１処理手段は、前記第１ストリームの各スライスデータを前記記憶手段の一方の末端アドレスから他方の末端アドレス方向に格納し、前記フレームのデータ格納が終了した場合であっても、当該フレームの最後の偶数ラインのスライスデータの次に、次のフレームに係る前記第１ストリームのスライスデータを格納し、前記記憶手段の空き容量が一組のスライスデータ分になった場合、前記一方の末端アドレスに戻って格納を継続し、前記第２処理手段は、前記第２ストリームの各スライスデータを前記他方の末端アドレスから前記一方の末端アドレス方向に格納し、前記フレームのデータ格納が終了した場合であっても、当該フレームの最後の奇数ラインのスライスデータの次に、次のフレームに係る前記第２ストリームのスライスデータを格納し、前記記憶手段の空き容量が一組のスライスデータ分になった場合、前記他方の末端アドレスに戻って格納を継続することを特徴とする。
【００１２】
請求項２に記載の本発明は、前記スライスデータの格納位置を管理可能な管理情報を前記記憶手段に同居させたことを特徴とする。
【００１３】
請求項３に記載の本発明は、データの格納位置に応じて昇順又は降順のアドレスが付与された記憶手段を備えたコンピュータにより、フレームを構成している偶数ラインのスライスデータを連続させた第１ストリームを生成し、当該第１ストリームの各スライスデータを隙間を空けずに連続させて前記記憶手段に順次格納する第１ステップと、前記第１ストリームの生成と並行して奇数ラインのスライスデータを連続させた第２ストリームを生成し、当該第２ストリームの各スライスデータを隙間を空けずに連続させて前記記憶手段に順次格納する第２ステップと、を有し、前記第１ステップは、前記第１ストリームの各スライスデータを前記記憶手段の一方の末端アドレスから他方の末端アドレス方向に格納し、前記フレームのデータ格納が終了した場合であっても、当該フレームの最後の偶数ラインのスライスデータの次に、次のフレームに係る前記第１ストリームのスライスデータを格納し、前記記憶手段の空き容量が一組のスライスデータ分になった場合、前記一方の末端アドレスに戻って格納を継続し、前記第２ステップは、前記第２ストリームの各スライスデータを前記他方の末端アドレスから前記一方の末端アドレス方向に格納し、前記フレームのデータ格納が終了した場合であっても、当該フレームの最後の奇数ラインのスライスデータの次に、次のフレームに係る前記第２ストリームのスライスデータを格納し、前記記憶手段の空き容量が一組のスライスデータ分になった場合、前記他方の末端アドレスに戻って格納を継続することを特徴とする。
【００１５】
請求項４に記載の本発明は、前記スライスデータの格納位置を管理可能な管理情報を前記記憶手段に同居させたことを特徴とする。
【００１６】
請求項５に記載の本発明は、請求項３又は４に記載のストリーム制御方法をコンピュータに実現させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、メモリを有効に活用することができ、柔軟なメモリ管理を実現することができる。
【図面の簡単な説明】
【００１８】
【図１】実施例１に係るストリーム制御装置の機能ブロック構成を示す図である。
【図２】実施例１のスライス格納処理フローを示す図である。
【図３】実施例１のメモリ管理情報の一例を示す図である。
【図４】実施例２のスライス格納処理状態を示す図である。
【図５】実施例２のスライス格納処理フローを示す図である。
【図６】従来のストリーム制御装置の機能ブロック構成を模式的に示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施する２つの実施例（実施例１及び実施例２）について図面を用いて説明する。
【実施例１】
【００２０】
最初に、実施例１に係るストリーム制御装置について説明する。図１は、実施例１に係るストリーム制御装置の機能ブロック構成を示す図である。実施例１のストリーム制御装置１は、第１処理系１１と、第２処理系１２と、第１メモリ１３と、読出部１５とを備え、図６に示した従来のストリーム制御装置１と比較して第２メモリ１４を必要としない構成を有している。以下、このストリーム制御装置１における各系及び各部の機能について個別具体的に説明すると共に、その処理フローについて説明する。
【００２１】
第１処理系１１は、外部から入力されたフレームを受け付けて、受け付けたフレームを構成している横軸方向の複数のラインのうち偶数ラインのスライスデータ（以下、偶数スライスという）を連続させた第１のＭＰＥＧ２ストリーム（以下、第１ストリームという）を生成し、生成した第１ストリームの各スライスデータ（以下、スライスという）を隙間を空けずに第１メモリ１３に順次格納する機能を有している。
【００２２】
第２処理系１２は、第１処理系１１と同様に、外部から入力されたフレームを受け付けて、受け付けたフレームを構成している横軸方向の複数のラインのうち奇数ラインのスライスデータ（以下、奇数スライスという）を連続させた第２のＭＰＥＧ２ストリーム（以下、第２ストリームという）を上記第１ストリームの生成と同時（時間的に並行）に生成し、生成した第２ストリームの各スライスを隙間を空けずに第１メモリ１３に順次格納する機能を有している。
【００２３】
また、第１処理系１１及び第２処理系１２は、第１メモリ１３に格納された各スライスの格納位置等を管理するため、第１メモリ上における各スライスの先頭アドレス及びそのデータ長を、フレーム番号及びスライス番号に関連付けたメモリ管理情報を生成し、第１メモリ１３に格納する機能も有している。
【００２４】
第１メモリ１３には、格納されるデータの位置に応じて昇順又は降順等のメモリアドレスが付与されており、第１処理系１１及び第２処理系１２で生成された第１ストリーム及び第２ストリームの各スライスとメモリ管理情報とを同居させて記憶する機能を有している。なお、このような第１メモリ１３の一例としては、大容量かつ高速なＤＲＡＭ（Dynamic Random Access Memory）等を用いることができる。
【００２５】
読出部１５は、第１メモリ１３に格納されたメモリ管理情報の記載内容を用いて、各フレームを第１メモリ１３から読み出して、外部に出力する機能を備えている。
【００２６】
次に、実施例１のストリーム制御装置１におけるスライス格納処理フローについて説明する。図２は、実施例１のスライス格納処理フローを示す図である。
【００２７】
最初に、第１処理系１１が、外部から入力された最初のフレームの偶数スライスを連続させた第１ストリームを生成し、その第１ストリームの各スライスを隙間を空けずに連続させて第１メモリ１３に順次格納する（Ｓａ１）。
【００２８】
例えば、偶数スライス（Ｎｏ．０）を０番のメモリアドレスの格納領域に格納した後に、偶数スライス（Ｎｏ．２）を０番のメモリアドレスの残りの格納領域に続けて格納する。
【００２９】
次に、第２処理系１２が、その最初のフレームの奇数スライスを連続させた第２ストリームを生成し、その第２ストリームの各スライスを隙間を空けずに連続させて、第１処理系１１で偶数スライスを格納するための確保領域後の位置から順次格納する（Ｓａ２）。
【００３０】
例えば、１番〜４９９番までの領域が確保されている場合には、奇数スライス（Ｎｏ．１）を５００番のメモリアドレスの格納領域から格納を開始し、奇数スライス（Ｎｏ．３）を５００番のメモリアドレスの残りの格納領域に続けて格納する。
【００３１】
その後、第１処理系１１及び第２処理系１２は、各偶数スライス及び各奇数スライスの先頭アドレス及びそのデータ長と、フレーム番号及びスライス番号とをあわせ一組にしたメモリ管理情報を生成し、偶数スライス及び奇数スライスを格納したメモリと同じ第１メモリ１３に格納する（Ｓａ３）。例えば、図３に示すようなメモリ管理情報が生成されて、第１メモリ１３の下方位置に格納される。
【００３２】
その後、第１処理系１１及び第２処理系１２は、上記Ｓａ１〜Ｓａ３と同様の処理を次のフレームに対して繰り返す（Ｓａ４）。なお、最初のフレームの全てのスライスの格納が終了した場合であっても、上記と処理同様に、第１処理系１１及び第２処理系１２は、次のフレームの最初の偶数スライス（奇数スライス）を、最初のフレームの最後の偶数スライス（奇数スライス）との間に隙間を空けずに第１メモリ１３に格納する。
【００３３】
なお、Ｓａ１〜Ｓａ３の各処理は、Ｓａ２→Ｓａ１→Ｓａ３やＳａ３→Ｓａ１→Ｓａ２等の順番であってもよいし、同時に処理してもよい。ここで「同時に処理」とは、全ての各処理が常に同一の時刻で処理されるのみではなく、各処理が時間的に並列に略同じタイミングで処理される場合を含むものとする。
【００３４】
一方、第１メモリ１３に格納されたフレームを読み出す場合には、読出部１５が、第１メモリ１３に格納されたメモリ管理情報の記載内容を用いて、第１メモリ１３に格納してある過去分のフレームのうち最も古いフレームを探して第１メモリ１３から出力する。具体的には、最も古いフレームを探すにはフレーム番号を検索し、次に同一フレーム番号を持つものの中で最初のスライスをスライス番号をもとに検索する。その検索結果から、スライスの先頭アドレス及びデータ長を呼び出して、それらをもとに第１メモリ１３から各スライスを読み出していく。なお、各フレームを読み出す順番や、各フレームを外部に出力する順番については、実施例１では限定しない。
【００３５】
実施例１によれば、第１処理系１１が、各偶数スライスを隙間を空けずに連続させて第１メモリ１３に順次格納し、第２処理系１２が、各奇数スライスを隙間を空けずに連続させて第１メモリ１３に順次格納するので、第１メモリ１３におおいて不要なメモリ空き容量の発生が防止され、結果としてメモリを有効に活用することが可能となる。
【００３６】
また、実施例１によれば、メモリ管理情報を、図６に示した容量の小さい第２メモリ１４に代えて、第２メモリ１４よりも容量が大きく、偶数スライス及び奇数スライスを格納したメモリと同じ第１メモリ１３に同居させて格納するので、様々なメモリ管理情報を格納することが可能となり、結果として柔軟なメモリ管理を実現することができる。その一つとして、メモリに格納してある過去分のフレームのうち最も古いフレームを探して出力する処理（ＰｒｅＲｅｃ）が可能となる。
【実施例２】
【００３７】
次に、実施例２に係るストリーム制御装置について説明する。実施例２のストリーム制御装置１の機能ブロック構成は、実施例１で説明した機能ブロック構成と同様であるが、図４に示すように、第１処理系１１及び第２処理系１２における各スライスの格納処理方法が異なる。以下、その相違点を中心に説明する。
【００３８】
実施例２の第１処理系１１は、外部から入力されたフレームを受け付けて、受け付けたフレームを構成している横軸方向の複数のラインのうち偶数スライスを連続させた第１ストリーム生成し、生成した第１ストリームの各スライスを、隙間を空けずに、第１メモリ１３の先頭メモリアドレスから上位メモリアドレス方向に順次格納する機能を有している。
【００３９】
また、実施例２の第２処理系１２は、外部から入力されたフレームを受け付けて、受け付けたフレームを構成している横軸方向の複数のラインのうち奇数スライスを連続させた第２ストリームを上記第１ストリームの生成と同時に生成し、生成した第２ストリームの各スライスを、隙間を空けずに、第１メモリ１３の最終メモリアドレスから下位メモリアドレス方向に順次格納する機能を有している。
【００４０】
次に、実施例２のストリーム制御装置１におけるスライス格納処理フローについて説明する。図５は、実施例２のスライス格納処理フローを示す図である。
【００４１】
最初に、第１処理系１１が、外部から入力された最初のフレームの偶数スライスを連続させた第１ストリームを生成し、その第１ストリームの各スライスを隙間を空けずに連続させて、第１メモリ１３の先頭メモリアドレスから上位メモリアドレス方向に順次格納する（Ｓｂ１）。
【００４２】
例えば、偶数スライス（Ｎｏ．０）を０番のメモリアドレスの格納領域に格納した後に、偶数スライス（Ｎｏ．２）を０番のメモリアドレスの残りの格納領域に続けて格納する。０番のメモリアドレスの格納領域が全て使用されている場合には、上位である１番のメモリアドレスに格納する。
【００４３】
次に、第２処理系１２が、その最初のフレームの奇数スライスを連続させた第２ストリームを生成し、その第２ストリームの各スライスを隙間を空けずに連続させて、第１メモリ１３の最終メモリアドレスから下位メモリアドレス方向に順次格納する（Ｓｂ２）。
【００４４】
例えば、５０００番のメモリアドレスが第１メモリ１３の最終アドレスである場合には、奇数スライス（Ｎｏ．１）を５０００番のメモリアドレスの格納領域に格納した後に、奇数スライス（Ｎｏ．３）を５０００番のメモリアドレスの残りの格納領域に続けて格納する。５０００番のメモリアドレスの格納領域が全て使用されている場合には、下位である４９９９番のメモリアドレスに格納する。
【００４５】
その後、第１処理系１１及び第２処理系１２は、各偶数スライス及び各奇数スライスの先頭アドレス及びそのデータ長と、フレーム番号及びスライス番号とをあわせ一組にしたメモリ管理情報を生成し、偶数スライス及び奇数スライスを格納したメモリと同じ第１メモリ１３に格納する（Ｓｂ３）。
【００４６】
その後、第１処理系１１及び第２処理系１２は、上記Ｓｂ１〜Ｓｂ３と同様の処理を次のフレームに対して繰り返す（Ｓｂ４）。なお、最初のフレームの全てのスライスの格納が終了した場合であっても、上記処理と同様に、第１処理系１１は、次のフレームの最初の偶数スライスを、最初のフレームの最後の偶数スライスとの間に隙間を空けずに上位アドレス方向に格納し、第２処理系１２は、次のフレームの最初の奇数スライスを、最初のフレームの最後の奇数スライスとの間に隙間を空けずに下位アドレス方向に格納する。
【００４７】
なお、第１メモリ１３の残りの空き容量が一組のスライス分になった場合には、第１処理系１１及び第２処理系１２は、先頭メモリアドレス又は最終メモリアドレスに戻って格納を継続する。これにより、先に格納したデータが書き換わることになるが、その時点では既に用済みになっているため、データが失われるということはない。
【００４８】
また、Ｓｂ１〜Ｓｂ３の各処理は、Ｓｂ２→Ｓｂ１→Ｓｂ３やＳｂ３→Ｓｂ１→Ｓｂ２等の順番であってもよいし、実施例１で説明したのと同様に同時に処理してもよい。
【００４９】
一方、第１メモリ１３に格納されたフレームを読み出す場合には、読出部１５が、各フレーム毎に偶数スライスを全て読み出した後に、奇数スライスを読み出す処理を行う。
【００５０】
実施例１の場合には、偶数スライスと奇数スライスとのデータ量の偏りにより、第１メモリ１３の上半分か下半分のいずれかが先に一杯になった場合にはメモリの活用が有効に図れない可能性があるが、実施例２によれば、第１処理系１１が、第１メモリ１３の先頭メモリアドレスから上位メモリアドレス方向に各偶数スライスを順次格納し、第２処理系１２が、第１メモリ１３の最終メモリアドレスから下位メモリアドレス方向に各奇数スライスを順次格納するので、さらにメモリの有効活用を図ることができる。
【００５１】
なお、メモリ管理情報の格納領域を第１メモリ１３の上位アドレス側に予め確保しておき、第２処理系１２が格納を開始するメモリアドレスを、第１メモリ１３の最終メモリアドレスに代えて、その確保領域を除く最終メモリアドレスにすることも可能である。
【００５２】
また、第１処理系１１が、第１メモリ１３の最終メモリアドレスから下位メモリアドレス方向に各偶数スライスを順次格納し、第２処理系１２が、第１メモリ１３の先頭メモリアドレスから上位メモリアドレス方向に各奇数スライスを順次格納するようにすることも可能である。
【００５３】
最後に、実施例１及び実施例２のストリーム制御装置１は、ＣＰＵ等の演算処理装置やメモリ等の記憶装置を備えたコンピュータにより構成可能なものであり、各機能処理はプログラムによって実行される。また、このようなプログラムは記憶装置に記憶されており、記録媒体に記録することも、ネットワークを通して提供することも可能である。
【符号の説明】
【００５４】
１…ストリーム制御装置
１１…第１処理系（第１処理手段）
１２…第２処理系（第２処理手段）
１３…第１メモリ（記憶手段）
１４…第２メモリ
１５…読出部
Ｓａ１〜Ｓａ４、Ｓｂ１〜Ｓｂ４…ステップ
【図１】
0005385736.tif 000002
【図２】
0005385736.tif 000003
【図３】
0005385736.tif 000004
【図４】
0005385736.tif 000005
【図５】
0005385736.tif 000006
【図６】
0005385736.tif 000007