(57)【特許請求の範囲】
【請求項１】
ＧＯＰを単位とする符号ストリームがファイルとして記憶された記憶装置から符号ストリームを読み出し符号圧縮の再符号化を行うトランスコードの高速化方法において、
ファイルの分割長（１ＧＯＰ単位の符号長以上）に関する仮の分割長である仮分割長（全ファイルの略１／Ｎ：Ｎは２以上の正の整数）を設定し、当該仮分割長の（ｎ−１）倍（ｎはＮ以下の正の整数）に対応する記憶位置からそれぞれ符号ストリームを読み出し、読み出された各符号ストリームの最初のＧＯＰの位置を検出し、検出されたそれぞれのＧＯＰの記憶位置から分割範囲の符号ストリームを独立に読み出し、それぞれ異なるトランスコード装置により並列に再符号化を行うことを特徴とするトランスコードの高速化方法。
【請求項２】
前記仮分割長の（ｎ−１）倍に対応する記憶位置からのＧＯＰの位置の検出はファイルの先頭から時系列に行うことを特徴とする請求項１記載のトランスコードの高速化方法。
【請求項３】
ＧＯＰを単位とする符号ストリームがファイルとして記憶された記憶装置から符号ストリームを読み出し符号圧縮の再符号化を行う高速トランスコード装置において、
ファイルの分割長（１ＧＯＰ単位の符号長以上）に関する仮の分割長である仮分割長（全ファイルの略１／Ｎ：Ｎは２以上の正の整数）を設定し、当該仮分割長の（ｎ−１）倍（ｎはＮ以下の正の整数）に対応する記憶位置からそれぞれ符号ストリームを読み出す符号ストリーム読み出し部と、読み出された各符号ストリームから最初のＧＯＰの位置を検出するＧＯＰ検出部と、検出されたそれぞれのＧＯＰの記憶位置を格納する実分割位置格納部と、格納されたＧＯＰの記憶位置からそれぞれ分割範囲の符号ストリームを読み出すファイル読み出し部と、読み出され各符号ストリームを再符号化する複数のトランスコード装置と、再符号化された各符号ストリームを１つの符号ストリームとして記憶装置に記憶するファイル書き込み部とを有することを特徴とする高速トランスコード装置。
【請求項４】
前記符号ストリーム読み出し部は、前記仮分割長の（ｎ−１）倍に対応する記憶位置からのＧＯＰの位置の検出をファイルの先頭から時系列に行うことを特徴とする請求項３記載の高速トランスコード装置。
【請求項５】
ＧＯＰを単位とする符号ストリームがファイルとして記憶された記憶装置から符号ストリームを読み出し符号圧縮の再符号化を行うトランスコードの並列処理用の符号ストリームの分割装置において、
ファイルの分割長（１ＧＯＰ単位の符号長以上）に関する仮の分割長である仮分割長（全ファイルの略１／Ｎ：Ｎは２以上の正の整数）を設定し、当該仮分割長の（ｎ−１）倍（ｎはＮ以下の正の整数）に対応する記憶位置からそれぞれ符号ストリームを読み出す符号ストリーム読み出し部と、読み出された各符号ストリームから最初のＧＯＰの位置を検出するＧＯＰ検出部と、検出されたそれぞれのＧＯＰの記憶位置を格納する実分割位置格納部と、格納されたＧＯＰの記憶位置から分割範囲の符号ストリームを読み出すファイル読み出し部とを有することを特徴とするトランスコードの並列処理用の符号ストリームの分割装置。
【請求項６】
前記符号ストリーム読み出し部は、前記仮分割長の（ｎ−１）倍に対応する記憶位置からのＧＯＰの位置の検出をファイルの先頭から時系列に行うことを特徴とする請求項５記載の符号ストリームの分割装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、トランスコードに関し、特に、ビデオ・ディスク・レコーダ、セット・トップ・ボックス、ビデオ・サーバ等の電子機器への適用又は組み込みが可能な符号化音声、映像を再度圧縮するトランスコードの高速化方法及び装置に関する。
【０００２】
【従来の技術】
トランスコード装置は、デコード装置とエンコード装置から構成され、録画した番組ファイルを再圧縮することにより記憶装置の空き容量を増やすことを目的として利用されている。トランスコード装置を使用することにより、空いた容量を使用して別の番組ファイルを格納することが可能となる。
【０００３】
【発明が解決しようとする課題】
ところが、通常のトランスコード装置では、処理にかかる時間が番組ファイルの再生の時間と同じ時間を要する。そのため、番組ファイルの再生をせずにトランスコードを行って記憶装置の空き容量をつくる場合でも、番組ファイルを再生する場合と同じ時間がかかってしまい効率の観点から問題がある。このため、複数のトランスコード装置を使用して並列に処理する方法（特開平７−１２３２７０号公報、特開平１１−１５５１２８号公報）が考えられるが、このような処理方法においては複数のトランスコード装置へ供給するファイル（符号ストリーム）の分割及びトランスコード装置間の同期処理が困難である。
【０００４】
（目的）
本発明はこのような課題を解決するためになされたもので、その目的とするところは、複数のトランスコード装置に対するファイル分割の高速化が可能なトランスコードの高速化方法及び装置を提供することにある。
【０００５】
本発明の他の目的は、トランスコードの並列処理に適した符号ストリームの分割装置を提供することにある。
【０００６】
【課題を解決するための手段】
本発明のトランスコードの高速化方法は、ＧＯＰを単位とする符号ストリームがファイルとして記憶された記憶装置から符号ストリームを読み出し符号圧縮の再符号化を行うトランスコードの高速化方法において、ファイルの分割長（１ＧＯＰ単位の符号長以上）に関する仮の分割長である仮分割長（全ファイルの略１／Ｎ：Ｎは２以上の正の整数）を設定し、当該仮分割長の（ｎ−１）倍（ｎはＮ以下の正の整数）に対応する記憶位置からそれぞれ符号ストリームを読み出し、読み出された各符号ストリームの最初のＧＯＰの位置を検出し、検出されたそれぞれのＧＯＰの記憶位置から分割範囲の符号ストリームを独立に読み出し、それぞれ異なるトランスコード装置により並列に再符号化を行うことを特徴とする。また、前記仮分割長の（ｎ−１）倍に対応する記憶位置からのＧＯＰの位置の検出はファイルの先頭から時系列に行うことを特徴とする。
【０００７】
本発明の高速トランスコード装置は、ＧＯＰを単位とする符号ストリームがファイルとして記憶された記憶装置から符号ストリームを読み出し符号圧縮の再符号化を行う高速トランスコード装置において、ファイルの分割長（１ＧＯＰ単位の符号長以上）に関する仮の分割長である仮分割長（全ファイルの略１／Ｎ：Ｎは２以上の正の整数）を設定し、当該仮分割長の（ｎ−１）倍（ｎはＮ以下の正の整数）に対応する記憶位置からそれぞれ符号ストリームを読み出す符号ストリーム読み出し部と、読み出された各符号ストリームから最初のＧＯＰの位置を検出するＧＯＰ検出部と、検出されたそれぞれのＧＯＰの記憶位置を格納する実分割位置格納部と、格納されたＧＯＰの記憶位置からそれぞれ分割範囲の符号ストリームを読み出すファイル読み出し部と、読み出され各符号ストリームを再符号化する複数のトランスコード装置と、再符号化された各符号ストリームを１つの符号ストリームとして記憶装置に記憶するファイル書き込み部とを有することを特徴とする。また、前記符号ストリーム読み出し部は、前記仮分割長の（ｎ−１）倍に対応する記憶位置からのＧＯＰの位置の検出をファイルの先頭から時系列に行うことを特徴とする。
【０００８】
本発明のトランスコードの並列処理用の符号ストリームの分割装置は、ＧＯＰを単位とする符号ストリームがファイルとして記憶された記憶装置から符号ストリームを読み出し符号圧縮の再符号化を行う符号ストリームの分割装置において、ファイルの分割長（１ＧＯＰ単位の符号長以上）に関する仮の分割長である仮分割長（全ファイルの略１／Ｎ：Ｎは２以上の正の整数）を設定し、当該仮分割長の（ｎ−１）倍（ｎはＮ以下の正の整数）に対応する記憶位置からそれぞれ符号ストリームを読み出す符号ストリーム読み出し部と、読み出された各符号ストリームから最初のＧＯＰの位置を検出するＧＯＰ検出部と、検出されたそれぞれのＧＯＰの記憶位置を格納する実分割位置格納部と、格納されたＧＯＰの記憶位置から分割範囲の符号ストリームを読み出すファイル読み出し部とを有することを特徴とする。また、前記符号ストリーム読み出し部は、前記仮分割長の（ｎ−１）倍に対応する記憶位置からのＧＯＰの位置の検出をファイルの先頭から時系列に行うことを特徴とする。
【０００９】
（作用）
トランスコード装置を複数使用し、ＧＯＰ（Ｇｒｏｕｐ  ｏｆ  Ｐｉｃｔｕｒｅ）の区切りでファイルを分割し、指定した大きさ程度の分割範囲の符号ストリーム単位でトランスコードを行う。符号ストリームの分割に１ＧＯＰの符号長以上の分割長に関する仮分割長を使用し、その（ｎ−１）倍（ｎ＝１、２、…）の位置、即ち最初のＧ０Ｐの位置、仮分割長後の最初のＧＯＰの位置、２倍の仮分割長後の最初のＧＯＰの位置、…で符号ストリームを分割し、分割数に相当する数のトランスコーダにより符号化の並列処理を行う。ＧＯＰの位置の検出は、仮分割長×（ｎ−１）倍（ｎ＝１、２、…）位置から最初のＧＯＰが検出されるまでの符号ストリームを記憶装置から読み出すだけであるから格別の処理時間を必要としない。
【００１０】
【発明の実施の形態】
以下、本発明のトランスコード装置の高速化方法及び装置の一実施の形態について詳細に説明する。
【００１１】
（構成の説明）
図１は、本発明に係るトランスコード装置の一実施の形態を示す構成図である。１つの番組ファイル１０１を入力とする分割回路１０５と、分割回路１０５で分割された番組ファイルを入力とする２つのトランスコード装置１０２ａ、１０２ｂと、トランスコード装置１０２ａ、１０２ｂの各出力を入力としトランスコードされた１つの番組ファイル１０３とする結合回路１０６とから構成される。
【００１２】
分割回路１０５は１つの番組ファイル１を入力し、この番組ファイル１０１を、例えばファイルの前半と後半とに分離した２つのファイルとして、それぞれをトランスコード装置１０２ａ及びトランスコード装置１０２ｂに出力する。トランスコード装置１０２ａ、１０２ｂではそれぞれのファイルのみのトランスコードを行い、トランスコード後のファイルを結合回路１０６にそれぞれ出力する。結合回路１０６は、トランスコード装置１０２ａとトランスコード装置１０２ｂからのファイルを結合し合成された１つの番組ファイル１０３として出力し、記憶装置に格納する。
【００１３】
トランスコード装置１０２ａ、１０２ｂは、例えばファイルの前半と後半とをそれぞれ並列に同時にトランスコード処理を行うため、処理時間は略１／２に短縮され高速なトランスコードが実現される。
【００１４】
次に、１つのファイルを分割し同時にトランスコードする処理方法について、より詳細に説明する。最初に、番組ファイルの分割方法について図２及び図３を参照して説明する。
【００１５】
図２は、番組ファイルの分割位置を検出する処理ブロックを示す図である。番組ファイルが記憶された記憶装置２０３と、番組ファイルを分割する分割長に相当する仮の分割長が記憶された仮分割長指示部２０１と、記憶装置２０３からファイルを読み出し、仮分割長指示部２０１により指示された位置（データのアドレス等）までファイルをスキップしてその後の符号ストリームを出力する符号ストリーム読み出し部２０２と、符号ストリーム読み出し部２０２から出力されたファイルの符号ストリームを解析してＧＯＰの先頭位置（データのアドレス等）を検出するＧＯＰ検出部２０４と、ＧＯＰ検出部２０４の出力を記録する実分割位置格納部２０５とから構成される。
【００１６】
（動作の説明）
図３は、図２に示すブロック図におけるファイルの分割処理に関するフローチャートを示す図である。仮分割長指示部２０１からのファイルの分割長の仮分割長に基づき番組ファイルのＧＯＰの実際の記憶位置情報を検出して、実分割位置格納部２０５に格納するための処置手順を示している。実分割位置格納部２０５に格納された位置情報は、複数のトランスコーダ装置へそれぞれ供給するための番組ファイルの分割に利用される。
【００１７】
最初に、制御変数ｎにファイルの分割の初期値を設定し、ファイルの最初のＧＯＰの位置情報を検出するため、ｎに１を代入する（ステップＳ３１）。続いて、符号ストリーム読み出し部２０２は記憶装置２０３のファイルをオープンし、仮分割位置指示部２０１からファイルの分割長に関する仮分割長の値に（ｎ−１）を掛けた値の位置までファイルのポインタ（ファイルポインタ）を進める（ステップＳ３２）。
【００１８】
ファイルポインタの位置がファイルの終了位置（最終位置）に達しているか否かをチェックし（ステップＳ３３）、もし達していれば本処理をすべて終了し、達していなければステップＳ３４へ進む。ステップＳ３４では、現在のファイルポインタの位置からファイルを読み出し、読み出した符号ストリームをＧＯＰ検出部２０４へ送り、符号ストリームの最初のＧＯＰの先頭位置を検出する（ステップＳ３５）。ＧＯＰの先頭位置が検出できたか否かをチェックし（ステップＳ３６）、検出できなければ処理を終了する。ＧＯＰの先頭位置が検出できたら検出されたＧＯＰの先頭のファイル位置（例えば、記憶装置又はデータのアドレス等）を実分割位置格納手段２０５へ格納する（ステップＳ３７）。  次に、制御変数ｎにｎ＋１を代入し（ステップＳ３８）、ステップＳ３２に戻り、以上と同様な処理を繰り返す。
【００１９】
以上の処理動作により、実分割位置格納部２０５にはファイルのＧＯＰの切れ目となる先頭位置情報が格納されることになる。このＧＯＰの先頭位置情報で分割されるファイルの長さは、仮分割位置指示部２０１から指示された仮分割長に近い値となる。前記仮分割長としては、例えば、全ファイルの略１／２の長さとすることができ、この場合、分割ファイルの長さは全ファイルの略中央のＧＯＰで区切られることになる。また前記仮分割長は、３以上の複数のファイルに分割する場合は全ファイルの略１／Ｍ（Ｍは、例えば３以上の整数）とすることができる。
【００２０】
次に、複数に分割されたファイルを同時にトランスコードする方法について、番組ファイルの前半と後半とに分割する例により説明する。図１に示す２つのトランスコード装置を使用する場合、分割回路１０５は実分割位置格納部２０５に格納されたＧＯＰの最初の先頭位置情報を使用し、図示しない記憶装置の番組ファイルを最初のＧＯＰの位置から読み出した符号ストリームをトランスコード装置１０２ａに供給するとともに、番組ファイルの途中のＧＯＰの先頭位置情報を使用して当該ＧＯＰの位置から読み出した符号ストリームをトランスコード装置１０２ｂに供給して、それぞれトランスコードを行いう。また、結合回路１０６は、前記トランスコード装置のコード化出力を結合回路する。また、実分割位置格納部２０５に格納されたＧＯＰの先頭位置情報を使用して再符号化された出力を図示しない記憶装置に１つの番組ファイルになるように記憶することによりトランスコードされた番組ファイルが生成される。
【００２１】
以上の処理における番組ファイルの分割処理においては、前記ファイルポインタが仮分割位置指示部２０１からの指示により、所望のＧＯＰの位置の近くにスキップする動作を行い全ファイルのトレースを必要とするものではないから、番組ファイルの全再生時間又はトランスコード動作時間等と比較してきわめて短時間で実行することができ、この処理自体がトランスコード全体に影響するような処理遅延をもたらさない。
【００２２】
（他の実施の形態）
次に、本発明のトランスコードの高速化方法及び装置の他の実施の形態について図４〜７を参照して説明する。
【００２３】
図４は、本実施の形態に係るトランスコード装置を示す構成図である。この実施の形態は、ファイルが記憶された記憶装置４０３と、記憶装置４０３からそれぞれファイルを読み出すフィル読み出し部４１１、４１２、４１３と、読み出された符号化情報を再度圧縮するそれぞれトランスコード部４２１、４２２、４２３と、再符号化されたデータを記憶装置４０３に書き込むそれぞれファイル書き込み部４３１、４３２、４３３と、前記トランスコード部４２１、４２２、４２３に対して開始／終了の指示を出すトランスコード制御部４０４と、実分割位置格納部４０５とから構成される。
【００２４】
トランスコード制御部４０４は、実分割位置格納部４０５からＧＯＰの先頭位置情報を読み出し、ファイル読み出し部４１１およびトランスコード部４２１にトランスコードを指示する。ファイル読み出し部４１１は該当するＧＯＰの位置から記憶装置４０３のファイルを読み出しトランスコード部４２１に送る。トランスコード部４２１では送られてきたファイルを順次再圧縮してファイル書き込み部４３１に送る。ファイル書き込み部４３１では前記ＧＯＰの位置に基づいて記憶装置４０３に再圧縮されたデータを書き込む。以上と同様の動作はトランスコード部４２２、４２３についても同時に行われ、再圧縮されたデータが記憶装置４０３に格納される。
【００２５】
以上の実施の形態において、再圧縮の割合に関しては、トランスコード制御部４４からトランスコード部４２１〜４２３へ再圧縮率（例えば０．８など）として通知するように構成してもよいし、再圧縮率を各トランスコード部４２１〜４２３に予め格納しておくように構成してもよい。
【００２６】
また、再圧縮されたデータの処理については、一旦テンポラリファイルに書き出しておき、トランスコード終了後に元のファイルと置き換えても良いが、一度再圧縮されたデータはもとのファイルのデータ量より小さくなるので、読み出したときのファイルに上書きしても良い。この場合、全てトランスコードが終了した時点でファイルをマージしトランスコードされたファイルが作成される。
【００２７】
図５は、トランスコード装置をＮ個使用した実施の形態に係るトランスコード装置を示す構成図である。この実施の形態では、Ｎ個のトランスコード装置５０２ａ〜５０２ｎへの番組ファイル５０１は、１つの番組ファイル５０１がＮ個のファイルに分割されて入力される。また、Ｎ個のトランスコード装置５０２ａ〜５０２ｎの出力は、結合回路１０５により１つの番組ファイル５０３としてとして出力される。トランスコード装置の個数に応じてトランスコード処理動作が高速化される。
【００２８】
図６は、番組ファイルをＮ個のファイルに分割してトランスコード処理を行う場合の全体の処理ブロック図を示す図である。記憶装置６０３と、仮分割位置指示部６０１と演算部６０６、６０７とからなる符号ストリーム読み出し部６０２と、ＧＯＰ検出部６０４と、実分割位置格納部６０５と、トランスコード制御部６０８と、並列トランスコード処理部６０９とから構成される。
【００２９】
仮分割位置指示部６０１は分割長の値ａを設定し、演算部６０６はｎ＝１としてａ×（ｎ−１）＝０を演算し、記憶装置６０３のアドレスに関するファイルポインタとしてファイルの先頭位置を指示し、記憶装置６０３の当該ファイルポインタの位置から読み出しを開始し符号ストリームを出力する。ＧＯＰ検出部６０４は前記符号ストリームから最初のＧＯＰを検出すると、当該ＧＯＰの記憶位置情報を実分割位置格納部６０５に通知するとともに、演算部６０７に次のファイル分割に関するＧＯＰ検出の演算を指示する。実分割位置格納部６０５は前記記憶位置情報を格納し、演算部６０７はｎ＝ｎ＋１＝１を演算し、演算部６０６はファイルポインタａ×１を指示し、上記と同様の処理を繰り返す。以上の処理の繰り返しにより実分割位置格納部６０５には分割すべき先頭のＧＯＰの位置情報が格納される。
【００３０】
トランスコード制御部６０８は、上記処理により実分割位置格納部６０５に格納されたＧＯＰの位置情報により記憶装置６０３及び並列トランスコード処理部６０９を制御し、Ｎ個のトランスコード装置により記憶装置６０３の番組ファイルを並列に読み出し符号化を行い、記憶装置６０３に符号圧縮後の番組ファイルとして再記憶する。
【００３１】
図７は、番組ファイルをＮ個のファイルに分割するための先頭のＧＯＰの位置情報を取得する別の実施の形態を示す図である。記憶装置７０３と、分割位置指示部７０１とＧＯＰ検出部７０４−１〜７０４−Ｎとからなる符号ストリーム読み出し部７０２と、実分割位置格納部７０５と、演算部７０８−１〜７０８−Ｎとから構成される。
【００３２】
本実施の形態では仮分割位置指示部７０１からの仮分割長ａに基づいてＮ個のファイルポインタ０、ａ×１、…ａ×（ｎ−１）をＮ個の演算部７０７−１〜７０７−Ｎで算出し、各ファイルポインタ位置から符号ストリームを並列出力し、Ｎ個のＧＯＰ検出部７０４−１〜７０４−Ｎにおいてそれぞれ最初のＧＯＰの位置情報を検出して実分割位置格納部７０５に格納するように構成したものであり、分割すべき位置情報の検出が並列処理により一層高速化される。
【００３３】
【発明の効果】
本発明によれば、トランスコードの並列処理を行うための番組ファイルの分割を高速かつ確実に実行することができるから、トランスコード全体の処理時間を十分短縮することができる。また、トランスコード処理のための記憶装置から読み出し位置はＧＯＰの位置情報により明確に区切られるので、複数のトランスコード装置間の同期動作は容易化する。
【００３４】
また、本発明のトランスコードの並列処理用の符号ストリームの分割装置によれは、符号ストリームの分割長として１ＧＯＰの符号長以上の仮分割長を使用し、その（ｎ−１）倍（ｎ＝１、２…）の位置、即ち最初のＧ０Ｐ位置、仮分割長後の最初のＧＯＰの位置、仮分割長×２後の最初のＧＯＰの位置、…、を検出することから、ＧＯＰの位置の検出は仮分割長×（ｎ−１）（ｎ＝１、２、…）位置からＧＯＰが検出するまでの符号ストリームを記憶装置から読み出すだけであるからきわめて短時間に処理が完了し、番組ファイルの分割数が増加してもトランスコード処理時間に対し無視することが可能である。
【図面の簡単な説明】
【図１】本発明に係るトランスコードの高速化方法及び装置の一実施の形態を示す構成図である。
【図２】本実施の形態におけるファイルの分割位置検出の構成図である。
【図３】本実施の形態におけるファイルの分割処理を示すフローチャートである。
【図４】本発明のトランスコードの高速化方法及び装置の他の実施の形態を示す図である。
【図５】Ｎ個のファイルに分割してトランスコード処理を行う動作を示すブロック図である。
【図６】図５に示すトランスコード処理を行う場合の全体の処理ブロック図を示す図である。
【図７】ＧＯＰの位置情報を取得するための別の実施の形態を示す図である。
【符号の説明】
１０１、５０１  番組ファイル
１０２ａ、１０２ｂ、１０２ｃ、５０２ａ、５０２ｂ、５０２ｎ  トランスコード装置
１０３、５０３  トランスコードされた番組ファイル
１０５、５０５  分割回路
１０６、５０６  結合回路
２０１、６０１、７０１  仮分割位置指示部
２０２、６０２、７０２  符号ストリーム読み出し部
２０３、５０３、６０３、７０３  記憶装置
２０４、６０４、７０４−１、７０４−２、７０４−Ｎ  ＧＯＰ検出部
２０５、４０５、６０５、７０５  実分割位置格納部
４１１、４１２、４１３  ファイル読み出し部
４０４、６０８  トランスコード制御部
４２１、４２２、４２３  トランスコード部
４３１、４３２、４３３  ファイル書き込み部
６０６、６０７、７０７−１、７０７−２、７０７−Ｎ  演算部
６０９  並列トランスコード処理部
【図１】
0003550651.tif 000002
【図２】
0003550651.tif 000003
【図３】
0003550651.tif 000004
【図４】
0003550651.tif 000005
【図５】
0003550651.tif 000006
【図６】
0003550651.tif 000007
【図７】
0003550651.tif 000008