(58)【調査した分野】(Int.Cl.,DB名)
複数の入力オーディオフレームからなる入力オーディオストリームと、複数の入力ビデオフレームからなる入力ビデオストリームと、記録停止指示と、記録開始指示が入力され、複数の出力オーディオフレームからなる出力オーディオストリームと、複数の出力ビデオフレームからなる出力ビデオストリームを出力する情報処理装置であって、
前記入力オーディオストリームをデコードして得たオーディオデータをバッファに格納するオーディオ入力部と、
前記バッファに格納されているオーディオデータをエンコードして前記出力オーディオフレームとして出力するオーディオエンコーダと、
前記入力ビデオストリームをデコードして得たビデオデータをエンコードして前記出力ビデオフレームとして出力するビデオエンコーダとを備え、
前記記録停止指示が入力された時に、前記ビデオエンコーダから出力されている出力ビデオフレームの末尾と、前記記録停止指示が入力された時に、前記オーディオエンコーダから出力されている出力オーディオフレームの末尾とのずれ量を算出し、
前記ずれ量に相当するオーディオデータを前記バッファから削除する、
情報処理装置。
入力ビデオデータと入力オーディオデータが入力され、記録停止指示と記録開始指示が入力され、出力ビデオフレームと出力オーディオフレームを出力する半導体装置であって、
内部バッファを有するサンプル調整部と、ビデオエンコーダ部と、オーディオエンコーダ部を備え、
前記ビデオエンコーダ部は、前記入力ビデオデータを前記出力ビデオフレーム単位でエンコードして出力し、
前記サンプル調整部は、前記入力オーディオデータを前記内部バッファに格納し、
前記サンプル調整部は、前記記録停止指示が入力された時点でエンコードされていた出力ビデオフレームの末尾と、前記記録停止指示が入力された時点でエンコードされていた出力オーディオフレームの末尾との差分情報を求め、
前記サンプル調整部は、前記内部バッファに格納されているオーディオデータから、前記差分情報に相当する量のオーディオデータを削除し、
前記オーディオエンコーダ部は、前記内部バッファに出力オーディオフレームの1フレーム分のオーディオデータを要求し、前記内部バッファから入力された出力オーディオフレーム単位のオーディオデータをエンコードして出力する、
半導体装置。
【発明を実施するための形態】
【0016】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0017】
〔1〕<デコードされたオーディオデータのバッファとずれ量分のデータの削除>
複数の入力オーディオフレームからなる入力オーディオストリーム(90)と、複数の入力ビデオフレームからなる入力ビデオストリームと(80)、記録停止指示(85)と、記録開始指示(87)が入力され、複数の出力オーディオフレームからなる出力オーディオストリーム(91)と、複数の出力ビデオフレームからなる出力ビデオストリーム(81)を出力する情報処理装置であって、以下のように構成される。
【0018】
前記入力オーディオストリームをデコードして得たオーディオデータをバッファ(16)に格納するオーディオ入力部(11)と、前記バッファに格納されているオーディオデータをエンコードして前記出力オーディオフレームとして出力するオーディオエンコーダ(19)と、前記入力ビデオストリームをデコードして得たビデオデータをエンコードして前記出力ビデオフレームとして出力するビデオエンコーダ(29)を備える。
【0019】
前記情報処理装置は、前記記録停止指示が入力された時に前記ビデオエンコーダから出力されている出力ビデオフレームの末尾(86)と、前記記録停止指示が入力された時に前記オーディオエンコーダから出力されている出力オーディオフレームの末尾(96)とのずれ量(95)を算出し、前記ずれ量に相当するオーディオデータを前記バッファから削除する。
【0020】
これにより、編集点以降のビデオフレームとオーディオフレームの同期ずれを、オーディオデータの1サンプリング周期単位の精度で抑えることができる。符号化されているオーディオデータはフレーム単位で扱われ、サンプリング周期ごとのデータを対象とする処理はできないが、バッファにはデコードされサンプリング周期単位になったオーディオデータを格納しているので、フレーム単位ではなくサンプリング周期単位で削除することができるためである。また、バッファに格納されたデータに対する処理であるため、コマンドによるタイミング精度の制約を受けないためである。
【0021】
〔2〕<スプライシングのための削除>
項1において、前記情報処理装置は以下の通り動作する。
【0022】
前記記録停止指示が入力された時に前記オーディオエンコーダから出力されている出力オーディオフレームを出力した後に、前記オーディオエンコーダの動作を停止し、前記記録停止指示が入力された時に前記ビデオエンコーダから出力されている出力ビデオフレームを出力した後に、前記ビデオエンコーダの動作を停止する。
【0023】
前記記録開始指示が入力されたとき、前記ずれ量に相当するオーディオデータを前記バッファから削除した後に、前記オーディオエンコーダの動作と前記ビデオエンコーダの動作を再開する。
【0024】
これにより、単純な制御によりスプライシング処理を実現することができる。
【0025】
〔3〕<出力フレームの時間情報に基づいてずれ量を算出>
項1または項2において、前記情報処理装置は以下の通り動作する。
【0026】
前記記録停止指示が入力された時に前記ビデオエンコーダから出力されている出力ビデオフレームの時間情報(72)と、前記記録停止指示が入力された時に前記オーディオエンコーダから出力されている出力オーディオフレームの時間情報(73)とに基づいて、前記ずれ量を算出する。
【0027】
前記記録開始指示が入力されたとき、前記第ビデオエンコーダの動作を開始することにより最初に出力される出力ビデオフレームの先頭に対応するオーディオデータを始点として、前記ずれ量に相当する量のオーディオデータ(97)を、前記バッファから削除する。
【0028】
これにより、編集点以降のビデオフレームとオーディオフレームの同期ずれを、簡便かつ正確に算出し、調整のためのデータの削除を行うことができる。
【0029】
〔4〕<時間情報の付加>
項1、項2または項3において、前記情報処理装置は、さらに外部ビデオ入力(88)と外部オーディオ入力(98)とが入力され、ビデオ時間情報付加部(22)と、オーディオ時間情報付加部(12)とを備え、以下の通り動作する。
【0030】
前記オーディオ時間情報付加部は、前記入力オーディオストリームをデコードして得たオーディオデータに代えて、前記外部オーディオ入力にオーディオ時間情報を付加したオーディオデータをバッファに格納する。
【0031】
前記ビデオ時間情報付加部は、前記入力ビデオストリームをデコードして得たビデオデータに代えて、前記外部ビデオ入力にビデオ時間情報を付加したビデオデータをエンコードして前記出力ビデオフレームとして出力する。
【0032】
これにより、タイムスタンプなどの時間情報を持たないオーディオビデオ信号が入力されたときにも、付加されたタイムスタンプに基づく正確なずれ量算出処理が可能となる。また、デコードより後の処理ステップを、時間情報の有無で切り替える必要がないため、単純に実装することができる。
【0033】
〔5〕<付加する時間情報の起点>
項4において、前記オーディオ時間情報と前記ビデオ時間情報は、前記外部ビデオ入力の先頭のビデオデータを起点として算出される。
【0034】
これにより、タイムスタンプなどの時間情報を簡便に算出して付加することができる。
【0035】
〔6〕<フェードアウト・フェードイン処理>
項1乃至項5のいずれか1項において、フェードアウト・フェードイン処理部(18)をさらに備え、以下の通り動作する。
【0036】
前記記録停止指示が入力された時に前記オーディオエンコーダから出力されている出力オーディオフレームのオーディオデータにフェードアウト処理を施し、前記記録開始指示が入力された後に前記オーディオエンコーダにより最初に出力される出力オーディオフレームのオーディオデータにフェードイン処理を施す。
【0037】
これにより、編集点におけるオーディオ信号の不連続による異音の発生を抑えることができる。
【0038】
〔7〕<後半オーディオストリームの先頭のタイムスタンプの算出>
複数の入力オーディオフレームからなる入力オーディオストリーム(90)と、複数の入力ビデオフレームからなる入力ビデオストリーム(80)とが入力され、前記入力ビデオストリームの一部を削除して残ったビデオデータに基づく前半ビデオストリーム(82)と後半ビデオストリーム(84)とを繋ぎ合せて出力ビデオストリーム(81)を出力する情報処理方法であって、以下のように動作する。
【0039】
前記前半ビデオストリームに対応する前半オーディオストリーム(92)と前記後半ビデオストリームに対応する後半オーディオストリーム(94)とを繋ぎ合せて出力オーディオストリーム(91)を出力する際に、前記後半オーディオストリームの先頭のフレームのタイムスタンプATSH(75)を、
ATSH=VTSH+{(ATST+ALF)−(VTST+VLF)}
により算出する。
【0040】
ここで、VTSTは前記前半ビデオストリームの末尾のフレームのタイムスタンプ(72)、ATSTは前記前半オーディオストリームの末尾のフレームのタイムスタンプ(73)、VFLは前記前半ビデオストリームの1フレームあたりの長さ、AFLは前記前半オーディオストリームの1フレームあたりの長さ、VTSHは前記後半ビデオストリームの先頭のフレームのタイムスタンプ(74)である。
【0041】
算出した前記タイムスタンプATSHに基づいて、前記後半オーディオストリームを構成する複数のオーディオフレームを生成する。
【0042】
これにより、バッファの実装方法によらず、繋ぎ合せ部分後半のビデオフレームとオーディオフレームの同期ずれを、オーディオデータの1サンプリング周期単位の精度で抑えることができる。
【0043】
〔8〕<時間情報付加>
項7において、前記複数の入力オーディオフレームにタイムスタンプを付与し、前記複数の入力ビデオフレームにタイムスタンプを付与する。
【0044】
これにより、タイムスタンプなどの時間情報を持たないオーディオビデオ信号が入力されたときにも、タイムスタンプに基づく正確なずれ量算出処理が可能となる。
【0045】
〔9〕<フェードアウト・フェードイン処理>
項7または項8において、前記前半オーディオストリームの末尾のオーディオフレームにフェードアウト処理(18)を施し、前記後半オーディオストリームの先頭のオーディオフレームにフェードイン処理(18)を施す。
【0046】
これにより、編集点におけるオーディオ信号の不連続による異音の発生を抑えることができる。
【0047】
〔10〕<半導体装置>
入力ビデオデータ(39)と入力オーディオデータ(38)が入力され、記録停止指示と記録開始指示(40)が入力され、出力ビデオフレーム(81)と出力オーディオフレーム(91)を出力する半導体装置であって、以下のように構成される。
【0048】
内部バッファ(16)を有するサンプル調整部(15)と、ビデオエンコーダ部(29)と、オーディオエンコーダ部(19)を備える。
【0049】
前記ビデオエンコーダ部は、前記入力ビデオデータを前記出力ビデオフレーム単位でエンコードして出力する。
【0050】
前記サンプル調整部は、前記入力オーディオデータを前記内部バッファに格納し、前記記録停止指示が入力された時点でエンコードされていた出力ビデオフレームの末尾と、前記記録停止指示が入力された時点でエンコードされていた出力オーディオフレームの末尾との差分情報(95)を求め(53)、前記内部バッファに格納されているオーディオデータから、前記差分情報に相当する量のオーディオデータを削除する(55)。
【0051】
前記オーディオエンコーダ部は、前記内部バッファに出力オーディオフレームの1フレーム分のオーディオデータを要求し(50)、前記内部バッファから入力された出力オーディオフレーム単位のオーディオデータをエンコードして出力する。
【0052】
これにより、編集点以降のビデオフレームとオーディオフレームの同期ずれを、オーディオデータの1サンプリング周期単位の精度で抑えた半導体装置を提供することができる。
【0053】
〔11〕<スプライシング処理>
項10において、以下のように動作する。
【0054】
前記ビデオエンコーダ部は、前記記録停止指示が入力された時点でエンコードされていた出力ビデオフレームを出力した後に前記エンコードを停止し、前記記録開始指示が入力されたときに前記エンコードを開始する。
【0055】
前記オーディオエンコーダ部は、前記記録停止指示が入力された時点でエンコードされていた出力オーディオフレームを出力した後に前記エンコードを停止し、前記記録開始指示が入力されたときに、前記サンプル調整部に対して、出力オーディオフレームの1フレーム分のオーディオデータを要求する。
【0056】
これにより、単純な制御によってスプライシング処理を実現する半導体装置を提供することができる。
【0057】
〔12〕<出力フレームの時間情報に基づいて差分情報を算出>
項10または項11において、以下のように動作する。
【0058】
前記サンプル調整部は、前記記録停止指示が入力された時点で前記ビデオエンコーダ部がエンコードしていた前記出力ビデオフレームの時間情報(72)と、前記記録停止指示が入力された時点で前記オーディオエンコーダ部がエンコードしていた出力オーディオフレームの時間情報(73)とに基づいて、前記差分情報(95)を算出する(53)。
【0059】
前記サンプル調整部は、前記記録開始指示が入力されたとき、前記内部バッファに格納されているオーディオデータから、前記ビデオエンコーダ部がエンコードを開始することにより出力される出力ビデオフレームの先頭に対応するオーディオデータを始点として前記差分情報に相当する量のオーディオデータ(97)を削除する。
【0060】
これにより、繋ぎ合せ部分のビデオフレームとオーディオフレームの同期ずれを、簡便かつ正確に算出し、調整のためのデータの削除を行う半導体装置を提供することができる。
【0061】
〔13〕<トランスコーダ>
項10、項11または項12において、複数の入力ビデオフレームからなる入力ビデオストリーム(90)と複数の入力オーディオフレームからなる入力オーディオストリーム(80)を入力とし、ビデオデコーダ部(21)とオーディオデコーダ部(11)をさらに備え、以下の通り動作する。
【0062】
前記ビデオデコーダ部は、前記入力ビデオストリームをデコードして前記入力ビデオデータとして前記ビデオエンコーダ部に入力し、前記オーディオデコーダ部は、前記オーディオストリームをデコードして前記入力オーディオデータとして前記内部バッファに入力する。
【0063】
これにより、スプライシング処理機能を備えたトランスコーダを構成するための半導体装置を提供することができる。
【0064】
〔14〕<最小バッファサイズ>
項13において、前記内部バッファのサイズは、前記入力オーディオフレームの2フレーム以上であり、前記出力オーディオフレームの1フレーム以上である。
【0065】
これにより、最小のバッファサイズが規定され、不要に大きなサイズのバッファを備えなくてもよい。
【0066】
〔15〕<時間情報付加部>
項10、項11、項12、項13または項14において、外部ビデオ入力(88)と外部オーディ入力(98)がさらに入力され、ビデオ時間情報付加部(22)とオーディオ時間情報付加部(12)とをさらに備え、以下の通り構成される。
【0067】
前記ビデオ時間情報付加部が前記外部ビデオ入力にビデオ時間情報を付加して得たビデオデータと、前記ビデオデコーダ部の出力とを選択的に前記ビデオエンコーダ部に入力するビデオ入力セレクタ(23)と、
前記オーディオ時間情報付加部が前記外部オーディ入力にオーディオタイムスタンプを付加して得たオーディオデータと、前記オーディオデコーダ部の出力とを選択的に前記内部バッファに入力するオーディオ入力セレクタ(13)とをさらに備える。
【0068】
これにより、タイムスタンプなどの時間情報を持たないオーディオビデオ信号が入力されたときにも、タイムスタンプに基づく正確なずれ量算出処理が可能となる。
【0069】
〔16〕<付加する時間情報の起点>
項15において、前記ビデオ時間情報付加部は、前記外部ビデオ入力の先頭のビデオデータを起点として、前記ビデオ時間情報を算出して付加し、前記オーディオ時間情報付加部は、前記外部ビデオ入力の先頭のビデオデータが入力された時点を起点として、前記オーディオ時間情報を算出して付加する。
【0070】
これにより、タイムスタンプなどの時間情報を簡便に算出して付加することができる。
【0071】
〔17〕<フェードアウト・フェードイン処理部>
項10乃至項16のいずれか1項において、フェードアウト・フェードイン処理部(18)をさらに備え、以下の通り動作する。前記フェードアウト・フェードイン処理部は、前記記録停止指示が入力された時点でエンコードされていた出力オーディオフレームのオーディオデータにフェードアウト処理を施し、前記開始コマンドが入力された後最初に前記オーディオエンコード部がエンコードを開始するオーディオフレームのオーディオデータにフェードイン処理を施す。
【0072】
これにより、繋ぎ合せ部分におけるオーディオ信号の不連続による異音の発生を抑えることができる。
【0073】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0074】
〔代表的な実施の形態(機能ブロック図)〕
図1は、代表的な実施の形態に係る情報処理装置の機能ブロック図である。代表的な実施の形態に係る情報処理装置は、記録メディア30に格納されているオーディオビデオコンテンツに、スプライシング処理を施して、記録メディア33に出力する。本情報処理装置は、入力されたオーディオビデオコンテンツのデータを別の符号化方式に変換して出力するトランスコーダであってもよい。
図1は、機能ブロック図であって、CPU(Central Processing Unit)、DSP(Digital Signal Processor)などの演算器とメモリを含むコンピュータと記憶装置で構成され、ソフトウェアで制御される機能であってもよい。記録メディア30と記録メディア33は、物理的に同じ記録メディアであってもよい。
【0075】
編集対象のオーディオビデオコンテンツは、記録メディア30に、例えば、プログラムストリーム(PS)、トランスポートストリーム(TS)などの形式で格納されている。Demux31は、この編集対象のオーディオビデオコンテンツを読み出して、コンテナからオーディオストリーム90とビデオストリーム80に分離し、それぞれオーディオ信号処理部10とビデオ信号処理部20に入力する。オーディオストリーム90とビデオストリーム80は、それぞれの符号化方式に則った長さのフレームを連続して含んで構成されている。フレームは、複数のデータをまとめて符号化して生成されたもので、前記「長さ」は、符号化されたデータ数を指す。一般に、オーディオとビデオでは符号化方式が異なるので、オーディオフレームの長さとビデオフレームの長さは異なっている。例えば、動画の圧縮符号化規格であるMPEG2に伴う、MPEG−2 AACは1フレームあたり1024サンプルであり、AC3は1536サンプルである。オーディオデータは、サンプリング周期のオーディオデータであり、ビデオデータは、画素ごとのデータである。オーディオフレームとビデオフレームは、通常、それぞれ、タイムスタンプと呼ばれる時間情報を含んでいる。
【0076】
外部入力34と時間情報付加部12、22とそれに伴うセレクタ13、23、およびフェードアウト・フェードイン処理部18については、後述する。
【0077】
オーディオストリーム90は、オーディオデコーダ11で復号され、入力バッファ14を介して、サンプル調整部15内の内部バッファ16に格納される。オーディオストリーム90に含まれるオーディオフレームは、復号されることによりフレーム構造を失い、サンプリング周期のオーディオデータになっている。
【0078】
内部バッファ16に格納されているオーディオデータは、出力のオーディオフレーム単位で、出力バッファ17を介して読み出され、フェードアウト・フェードイン処理部18を経てオーディオエンコーダ19に入力される。オーディオエンコーダ19は、入力されたオーディオデータを所定の出力符号化方式でエンコードして、出力オーディオストリーム91として出力する。
【0079】
ビデオストリーム80は、ビデオデコーダ21で復号されてビデオデータとなり、時間情報監視部25を経てビデオエンコーダ29に入力される。ビデオストリーム80に含まれるビデオフレームは、復号されることによりフレーム構造を失い、画素単位のビデオデータになっている。ビデオエンコーダ29は、入力されたビデオデータを所定の出力符号化方式でエンコードして、出力ビデオストリーム81として出力する。
【0080】
出力されたオーディオストリーム91とビデオストリーム81は、Mux32で必要に応じてタイムスタンプなどの付加情報を付加され、コンテナに多重されて記録メディア33に記録される。
【0081】
本情報処理装置は、リモコン35などにより、再生開始、再生停止、記録開始、記録停止などの制御を受ける。記録メディア30に記録されているコンテンツを読み出し、符号化方式を変換して記録メディア33に記録する過程で、記録停止が指示され後に記録開始が指示されると、記録停止から記録開始までに読み出された部分が削除され、記録停止前のストリームと記録開始後のストリームが繋ぎ合せられて記録メディア33に記録される。これが、スプライシング処理の一例である。
【0082】
記録停止と記録開始の指示40は、システム制御部36からオーディオ信号処理部10とビデオ信号処理部20に送られ、それぞれを制御する。記録停止指示を受けるとビデオエンコーダ29は実行中の出力ビデオフレームを出力した後にエンコード動作を停止する。停止直前にエンコードしたビデオフレームの時間情報を、時間情報監視部25が、ビデオ記録停止時間37としてオーディオ信号処理部10のサンプル調整部15に通知する。サンプル調整部15は、後述のように、オーディオデータをサンプリング周期単位で削除するなどして出力されるビデオフレームとオーディオフレームに同期ずれが生じないように調整する。
【0083】
サンプル調整部15は、内部バッファ16内に、復号されてサンプリング周期単位になったオーディオデータを格納し保持しているので、サンプリング周期単位で正確なデータの処理をすることができる。記録停止と記録開始の指示40は、処理をソフトウェアで実装した場合には、OSをはじめとして他のソフトウェアとの関係で、時間的な精度が低いが、ずれ量は正確に計算され正確に調整されるので、タイミング精度の低い指示によって制御されても、その結果は精度の高いものとすることができる。
【0084】
図示を省略しているが、入力されたオーディオストリーム90とビデオストリーム80に付与されていたタイムスタンプなどの時間情報は、オーディオ信号処理部10とビデオ信号処理部20において、出力オーディオストリーム91と出力ビデオストリーム81に付与すべきタイムスタンプを算出するために利用することができる。また、合わせて、ビデオフレームとオーディオフレームとの同期ずれを抑えるために利用することができる。
【0085】
〔代表的な実施の形態(動作)〕
代表的な実施の形態に係る上記情報処理装置の動作について、サンプル調整部15が行う処理を中心に、説明する。
【0086】
図2は、ビデオフレームとオーディオフレームとの同期ずれを抑えるための、サンプル調整部15における処理の内容を示すフローチャートである。
図3は、その一部であるデータ入力処理60の内容を示すフローチャートであり、
図4は、別の一部であるデータ出力処理65の内容を示すフローチャートである。
【0087】
オーディオエンコーダ19がサンプル調整部15に対して出力オーディオフレームの1フレーム分のデータを要求する(ステップ50)。サンプル調整部15は、データ入力処理(ステップ60)を行う。データ入力処理60(
図3)では、内部バッファ16に出力オーディオフレームの1フレーム分のデータが格納されているかどうかを判定し(ステップ61)、格納されている場合にはデータ入力処理を終了する。格納されていない場合には、入力バッファ14に入力オーディオフレームの1フレーム分のデータが格納されているかどうかを判定し(ステップ62)、格納されていなければオーディオデコーダ11に1フレーム分のデータを要求して(ステップ64)、ステップ61に戻る。格納されていれば入力バッファ14から内部バッファ16にデータを取り込み(ステップ63)、ステップ61に戻る。
【0088】
データ入力処理(ステップ60)を終えると、内部バッファ16に出力オーディオフレームの1フレーム分のデータが格納されている。次に、記録停止指示があるかどうかを判定し(ステップ51)、指示があれば時間情報監視部25からのビデオ記録停止時間情報の通知37を待つ(ステップ52)。ビデオ記録停止時間情報の通知を受けた後、AV記録停止位置差分情報を計算し(ステップ53)、データ出力処理(ステップ65)を行って終了する。
【0089】
ステップ51において記録停止指示がない場合は、記録開始指示の有無を判定し(ステップ54)、記録開始指示がある場合には、内部バッファ16からAV停止位置差分情報に相当するデータを破棄する(ステップ55)。その後、AV記録停止位置差分情報をクリアし(ステップ56)、再びデータ入力処理60を行う。その後、データ出力処理(ステップ65)を行って終了する。
【0090】
データ出力処理(
図4)では、内部バッファ16に出力オーディオフレームの1フレーム分のデータが格納されるまで待ち(ステップ66)、1フレーム分のデータが格納されたら、内部バッファ16から出力バッファ17に出力オーディオフレームの1フレーム分のデータを書き出す(ステップ67)。その後、エンコードしたオーディオの時間情報を更新して(ステップ68)、終了する。
【0091】
入力バッファ14、内部バッファ16、および、出力バッファ17のデータの入出力について、
図7を参照してさらに詳細に説明する。入力バッファ14は、少なくとも入力オーディオフレームの1フレーム分の長さを備え、出力バッファ17は、少なくとも出力オーディオフレームの1フレーム分の長さを備える。内部バッファ16は、少なくとも、入力オーディオフレームの2フレーム分以上で、且つ、出力オーディオフレームの1フレーム分の長さを備える必要がある。
図7は、入力オーディオフレームの長さを、AACの1024サンプル、出力オーディオフレームの長さをAC3の1536サンプルとした例で、入力バッファ14は1024サンプル分、出力バッファは1536サンプル分、内部バッファは2048サンプル分の長さを持つものとしている。現実の実装では、これにマージンを加えたサイズとなる。
【0092】
図7において(a)は、バッファが空の初期状態である。
図3に示すフローチャートのステップ62で入力バッファにオーディオデコーダの1フレーム分のデータ格納されていないと判断されるので、ステップ64に進み、オーディオデコーダ11に1フレーム分のデータを要求する。(b)は
図3のオーディオデコーダ11から入力オーディオフレームの1フレーム分のオーディオデータを、入力バッファ14に取り込んだ状態である。ステップ62で入力バッファにオーディオデコーダの1フレーム分のデータが格納されていると判断されるので、ステップ63に進み、(c)に示すように入力バッファ14のオーディオデータを内部バッファ16に転送した状態になる。この状態では、内部バッファは1024サンプルのデータを格納しているが、出力フレームの1536サンプルには足りない。ステップ61の判定で、ステップ62に進み、さらにオーディオデコーダ11に1フレーム分のデータを要求する(ステップ64)。その結果、(d)に示すように、内部バッファには入力オーディオフレームの2フレーム分のデータが格納される。内部バッファに格納されているデータの量が、出力オーディオフレームの1フレーム分を超えるので、(e)に示すように、出力オーディオフレームの1フレーム分のオーディオデータを内部バッファから出力バッファに転送する(
図4のステップ66、67)。内部バッファに格納されているオーディオデータの量が出力オーディオフレームの1フレーム分を下回るので、(a)(b)(c)(d)と同様の処理を繰り返し、内部バッファに入力オーディオフレームの1フレーム分のデータをさらに読み込み、(f)に示すような状態になる。
【0093】
代表的な実施の形態に係る上記情報処理装置の動作について、入出力ストリームを例示して、さらに詳細に説明する。
【0094】
図5は、代表的な実施の形態に係るスプライシング処理の概要を示す説明図である。
【0095】
図5において(a)は入力ストリームを表し、(b)はスプライシング処理の概要を表し、(c)はスプライシング処理を施されて出力される出力ストリームを表す。入力ビデオストリーム80はそれぞれにタイムスタンプvpts70を付与された複数のビデオフレームからなり、入力オーディオストリームはそれぞれにタイムスタンプapts71を付与された複数のオーディオフレームからなる。横軸は、時間を表す。ビデオフレームとオーディオフレームは通常は長さが異なるので、フレームの境界は必ずしも一致するとは限らない。それぞれのタイムスタンプは、そのフレームの先頭のデータに対応する時間情報を表している。
【0096】
スプライシング処理のため、記録停止指示85と記録再開指示87が入力される。記録停止指示85は、ビデオストリームのフレーム境界に同期して図示したが、実際にはフレームの境界とは無関係に入力される。記録停止指示85が入力されると、ビデオエンコーダ29は、その時にエンコードしているビデオフレーム72の出力を待ってエンコードを停止する。記録停止指示85の入力後最初にエンコードされ出力を完結したビデオフレーム72の末尾がビデオ停止位置86である。その後さらに、エンコードされ出力を完結したオーディオフレーム73の末尾がオーディオ停止位置96である。
【0097】
時間情報監視部25は、ビデオ記録停止位置時間情報37をサンプル調整部15に通知する。ビデオ記録停止位置時間情報37は、例えば、ビデオフレーム72のタイムスタンプでもよい。タイムスタンプはそのフレームの先頭の時間情報であるが、ビデオフレームの長さは既知であるので、ビデオ記録停止位置86を算出するのは容易であり、等価な情報として扱うことができる。サンプル調整部15は、ビデオ記録停止位置時間情報37の通知を待って(
図2のステップ52)、オーディオ記録停止位置96が決まったときに、AV停止位置の差分95を算出する(
図2のステップ53)。
【0098】
その後、記録開始指示87が入力されるまでは、ビデオエンコーダ29とオーディオエンコーダ19は、エンコードを停止して、出力ストリームの記録メディア33への記録が停止される。具体的には、例えば、ビデオエンコーダ29とオーディオエンコーダ19において、入力されるビデオデータとオーディオデータを破棄する。
【0099】
記録開始指示87が入力されると、ビデオエンコーダ29がエンコード処理を再開する。最初に出力するビデオフレーム74の先頭が記録開始位置87となる。このとき、内部バッファ16からAV停止位置差分情報95に相当する量のオーディオデータを削除する(
図2のステップ55)。これは、オーディオ開始位置の調整97にあたる。記録開始指示87後、初めにエンコードを開始されたビデオフレーム74の先頭を起点として、内部バッファから、上記AV停止位置差分情報95に相当する量のオーディオデータが削除されるので、オーディオのエンコードはAV停止位置差分情報95の分だけ遅れて開始される。
【0100】
編集で削除される領域83によって分割された前半ビデオストリーム82と後半ビデオストリームを繋ぎ合せて出力ビデオストリーム81が形成され出力される。オーディオ側でも同様に、編集で削除される領域93によって分割された前半オーディオストリーム92と後半オーディオストリーム94を繋ぎ合せて出力オーディオストリーム91が形成され出力される。これにより、スプライシング処理が完結する。
【0101】
前半ビデオストリーム82と前半オーディオストリーム92は、編集点において、AV停止位置差分情報95の分のずれが生じている。そのずれであるAV停止位置差分情報95に相当する量のオーディオデータを、後半ビデオストリーム84の先頭を起点として、後半ビデオストリーム94の先頭部分において削除しているので、ビデオストリームと開始位置の調整された後半オーディオストリームとのAV同期ずれは、オーディオのサンプリング周期単位の精度で抑えられる。
【0102】
なお、
図5は、理解を容易にするために、入力ストリームの1フレームあたりの長さと、出力ストリームの1フレームあたりの長さを等しいものとし、入力ストリームに付与されていたタイムスタンプをそのまま出力ストリームで引き継ぐ場合について説明した。トランスコーダの場合、1フレームあたりの長さは、入力ストリームと出力ストリームで異なるのが一般的であるが、上記の説明は、その場合についても同様に妥当する。また、タイムスタンプについて、入力ストリームに付与されていたタイムスタンプを引き継がずに、出力ストリームで改めて付与する場合がある。このときは、
図5に示した例と異なり、出力ストリームにおいて、編集点の前後でタイムスタンプを連続させることができる。このような場合であっても、上記の説明は、同様に妥当する。
【0103】
〔別の実施形態(タイムスタンプを利用したずれ量の調整)〕
代表的な実施の形態においては、
図1に示した機能ブロック図を前提として実施形態を説明したが、スプライシングにおいて前半ストリームの末尾と後半ストリームの先頭のタイムスタンプが、以下に示すように正確に制御されれば、バッファが別の形態で実施されていても、同じ作用効果を奏する。
【0104】
まず、代表的な実施の形態の説明で用いた
図5に示す例において、編集点前後のビデオフレームとオーディオフレームのタイムスタンプの関係を説明する。
【0105】
前半ビデオストリームの末尾のビデオフレーム72のタイムスタンプは20800、ビデオフレームの長さは1300であるので、ビデオ記録停止位置86は22100となる。また、前半オーディオストリームの末尾のオーディオフレーム73のタイムスタンプは21800、オーディオフレームの長さは1000であるので、オーディオ記録停止位置96は22800となる。したがって、AV停止位置の差分情報95は、オーディオ記録停止位置96の22800からビデオ記録停止位置86の22100を引いた700となる。
【0106】
図5に示した例では、後半ビデオストリームの先頭フレームのタイムスタンプは27300である。この時点を起点として、上で計算したAV停止位置の差分情報95の700に相当するオーディオデータが、内部バッファ16から削除される。このため、後半オーディオストリームの先頭オーディオフレームのタイムスタンプは、27300+700=28000として算出される。後半ストリームにおいて、ビデオストリームが開始される27300から、オーディオ開始位置の調整のため700だけ遅らせてオーディオストリームを開始している。オーディオストリームが開始された時点でビデオストリームは、28000に対応するビデオデータを出力することになるので、ビデオフレームとオーディオフレームの同期ずれはない。
【0107】
これを、一般化すると、以下のようになる。
【0108】
前半オーディオストリーム92と後半オーディオストリーム94とを繋ぎ合せて出力オーディオストリーム91を出力する際に、後半オーディオストリームの先頭のフレームのタイムスタンプATSH75は、
ATSH=VTSH+{(ATST+ALF)−(VTST+VLF)}
により算出される。
【0109】
ここで、VTSTは前半ビデオストリーム82の末尾のフレーム72のタイムスタンプ、VFLは前半ビデオストリームの1フレームあたりの長さ、ATSTは前半オーディオストリーム92の末尾のフレーム73のタイムスタンプ、AFLは前半オーディオストリームの1フレームあたりの長さであり、VTSHは後半ビデオストリーム84の先頭のフレーム74のタイムスタンプである。
【0110】
算出した前記タイムスタンプATSHに基づいて、前記後半オーディオストリームを構成する複数のオーディオフレームを生成する。
【0111】
これにより、バッファの実装方法によらず、繋ぎ合せ部分後半のビデオフレームとオーディオフレームの同期ずれを、オーディオデータの1サンプリング周期単位の精度で抑えることができる。
【0112】
なお、前述のとおり
図5は、理解を容易にするために、入力ストリームの1フレームあたりの長さと、出力ストリームの1フレームあたりの長さを等しいものとし、入力ストリームに付与されていたタイムスタンプをそのまま出力ストリームで引き継ぐ場合について説明している。トランスコーダの場合、1フレームあたりの長さは、入力ストリームと出力ストリームで異なるのが一般的であり、タイムスタンプについても、入力ストリームに付与されていたタイムスタンプを引き継がずに、出力ストリームで改めて付与する場合もある。上記のタイムスタンプを利用したずれ量の調整は、このような場合にも同様に妥当する。
【0113】
〔時間情報付加〕
既に述べた代表的な実施の形態に、外部入力を追加した実施の形態について説明する。
図1は、既に外部入力を含んだ機能ブロック図であるので、これを参照して説明する。編集対象のオーディオビデオコンテンツは、記録メディア30にプログラムストリーム(PS)、トランスポートストリーム(TS)などの形式で格納されているコンテンツではなく、外部入力34から入力される。外部入力は一般にタイムスタンプなどの時間情報を付加されていない。
【0114】
本実施形態では、ビデオ信号処理部20にビデオ時間情報付加部22を設け、セレクタ23と時間情報監視部25を経てビデオエンコーダ29に接続し、オーディオ信号処理部10にオーディオ時間情報付加部12を設け、セレクタ13と入力バッファ14を介してサンプル調整部15に接続する。
【0115】
外部入力34のビデオデータ88には、ビデオ時間情報付加部22でタイムスタンプに相当する時間情報を付加し、ビデオデコーダ21の出力と同じデータフォーマットにする。セレクタ23でいずれかの入力を選択し、時間情報監視部25を経てビデオエンコーダ29に入力する。
【0116】
外部入力34のオーディオデータ98には、オーディオ時間情報付加部12でタイムスタンプに相当する時間情報を付加し、オーディオデコーダ11の出力と同じデータフォーマットにする。セレクタ13でいずれかの入力を選択し、入力バッファ14を介してサンプル調整部15に入力する。
【0117】
図6は、外部入力34から時間情報を持たないデータが入力された場合の、本実施の形態に係るスプライシング処理の概要を示す説明図である。(a)は、時間情報を持たない外部入力データである。フレームに区切られていない場合もあるが、理解を助けるために、フレームに区切って表示してある。(b)に示すように、時間情報付加部12、22において、オーディオデータ88とビデオデータ98に、擬似的にタイムスタンプPTSを生成、付与する。
【0118】
生成する時間情報は、オーディオとビデオの同期を正しく取ることができる限り、任意である。例えば、外部ビデオ信号88が入力を開始された時点を起点として、先頭フレームにタイムスタンプの初期値を与え、外部オーディオ信号98にも、同じくビデオ信号が入力を開始された時点を起点として、先頭フレームにタイムスタンプの初期値を与えることができる。仮に外部入力のオーディオとビデオで入力開始がずれたとしても、一律にビデオの入力開始時点を起点とすることで、同期ずれを防止することができる。
【0119】
それ以下のスプライシング処理(c)、出力ストリーム(d)は、
図5で示したものと全く同じである。入力されたコンテンツが時間情報を有しているか否かによらず、同じスプライシング処理の方法を適用することができる点で有効である。
【0120】
時間情報付加部12、22を備えたことにより、サンプル調整部15と時間情報監視部25を、オーディオデータとビデオデータそれぞれがタイムスタンプなどの時間情報を有しているか否かによって動作を変えるのではなく、一律に時間情報を有していることを前提に設計し、動作させることができるので、回路またはソフトウェアを簡略化することができる。
【0121】
〔フェードアウト・フェードイン〕
スプライシング処理の結果、入力ストリームにおいて連続していなかったフレームが、出力ストリームで連続することになる。ビデオストリームは突然のシーンチェンジは大きな問題ではないが、オーディオでは不快な異音となる場合がある。そこで、スプライシング処理の前半オーディオフレームの末尾にフェードアウト処理を施し、後半オーディオストリームの先頭にフェードイン処理を施すと良い。
フェードアウト、フェードイン処理は、符号化されていないサンプル単位のオーディオデータを対象に行う必要がある。また、本発明では、内部バッファ16のデータを削除した後で、後半オーディオストリームの先頭が決まるので、フェードイン処理は、内部バッファ16とオーディオエンコーダ19との間で実施するのが、好適である。
図1は、フェードイン・フェードアウト処理部18を出力バッファ17とオーディオエンコーダ19との間に備えた実施の形態である。
【0122】
フェードイン・フェードアウト処理部を備えることにより、スプライシング処理の編集点における、異音の発生を抑えることができる。
【0123】
〔レコーダ〕
図8は、本発明の実施の形態に係るスプライシング処理を行うトランスコーダを搭載した、レコーダのブロック図である。
【0124】
レコーダ1は、トランスコーダ部2と再生部3を含んで構成され、入力源4と出力先5とディスプレイ6が接続されている。トランスコーダ部2には、本発明の実施の形態に係るスプライシング処理を行うトランスコーダを搭載することができる。トランスコーダ部2の内部ブロックは、簡略化するため、本発明の実施の形態に必要な構成を省略して図示している。
【0125】
入力源4は、例えば、ハードディスクドライブHDD、デジタル放送メディア、USBストレージデバイス、DVDなどのパッケージメディアである。出力先5は、例えば、ハードディスクドライブHDD、SDメモリなどの記録メディアである。入力源4に格納されているコンテンツを読み出して、トランスコーダ部2でコード変換し、出力先5に出力する。トランスコーダ部2は、前述の実施の形態に係るスプライシング処理、時間情報付加、フェードアウト・フェードインなどの処理を行う。
【0126】
入力源4のコンテンツは、再生部3によってデコードされ、テレビなどのディスプレイ6に表示することができる。
【0127】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0128】
例えば、内部バッファ、入力バッファ、出力バッファは、それぞれ独立した記憶デバイスとして実装しても良いし、CPUからアクセス可能な一つのメモリ上にそれぞれ割り当てられた記憶領域として実装してもよい。また、バッファ上のデータの削除は、必ずしも現実に削除する必要はなく、バッファ上のデータの有効性を示すポインタの値を変えることにより、削除と同様の作用をさせることができる。
【0129】
また、記録メディアから読み出し、スプライシング処理を施して記録メディアに格納する処理を代表的に例示して説明したが、記録される代わりにまたは記録されるのと並行して再生(表示)、あるいは伝送されてもよい。