IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7592465音響処理装置、音響処理方法、およびプログラム
<>
  • 特許-音響処理装置、音響処理方法、およびプログラム 図1
  • 特許-音響処理装置、音響処理方法、およびプログラム 図2
  • 特許-音響処理装置、音響処理方法、およびプログラム 図3
  • 特許-音響処理装置、音響処理方法、およびプログラム 図4
  • 特許-音響処理装置、音響処理方法、およびプログラム 図5
  • 特許-音響処理装置、音響処理方法、およびプログラム 図6
  • 特許-音響処理装置、音響処理方法、およびプログラム 図7
  • 特許-音響処理装置、音響処理方法、およびプログラム 図8
  • 特許-音響処理装置、音響処理方法、およびプログラム 図9
  • 特許-音響処理装置、音響処理方法、およびプログラム 図10
  • 特許-音響処理装置、音響処理方法、およびプログラム 図11
  • 特許-音響処理装置、音響処理方法、およびプログラム 図12
  • 特許-音響処理装置、音響処理方法、およびプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-22
(45)【発行日】2024-12-02
(54)【発明の名称】音響処理装置、音響処理方法、およびプログラム
(51)【国際特許分類】
   H04N 5/93 20060101AFI20241125BHJP
   H04N 5/783 20060101ALI20241125BHJP
【FI】
H04N5/93
H04N5/783
【請求項の数】 14
(21)【出願番号】P 2020187987
(22)【出願日】2020-11-11
(65)【公開番号】P2022077231
(43)【公開日】2022-05-23
【審査請求日】2023-11-08
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【弁理士】
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】船越 正伸
【審査官】大西 宏
(56)【参考文献】
【文献】特開2011-061675(JP,A)
【文献】特開2017-083910(JP,A)
【文献】特開2007-110749(JP,A)
【文献】特開2018-093312(JP,A)
【文献】特開2018-189924(JP,A)
【文献】米国特許出願公開第2008/0152309(US,A1)
【文献】米国特許出願公開第2017/0004858(US,A1)
【文献】米国特許第7676142(US,B1)
【文献】米国特許第9674562(US,B1)
【文献】国際公開第2018/131105(WO,A1)
【文献】国際公開第2020/153092(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/91 - 5/956
H04N 5/782- 5/784
(57)【特許請求の範囲】
【請求項1】
映像のタイムコードと再生速度とを含む情報を受信する情報受信手段と、
音響信号の一部を構成する断片信号と時刻とを関連付けて蓄積する蓄積部から、前記情報受信手段が受信した前記タイムコードに相当する時刻の音響信号を読み出す読出し手段と、
前記情報受信手段が受信した前記再生速度に応じて、前記読出し手段が前記読み出した音響信号に対して、タイムストレッチ処理を行う処理手段と、
前記読出し手段が出力する音響信号の時刻情報と、前記処理手段が出力する音響信号の時刻情報とを生成する生成手段と、
前記処理手段が出力した音響信号を出力する出力手段と、
を有することを特徴とする音響処理装置。
【請求項2】
前記生成手段は、前記断片信号の先頭サンプル時刻と当該音響信号に対する再生速度とが関連付けられた情報から前記時刻情報を生成し、
前記読出し手段は、前記読み出した前記音響信号について前記生成手段が生成した前記時刻情報を、前記音響信号とともに前記処理手段に出力し、
前記処理手段は、前記タイムストレッチ処理した前記音響信号について前記生成手段が生成した前記時刻情報を、前記音響信号とともに前記出力手段に出力することを特徴とする請求項1に記載の音響処理装置。
【請求項3】
前記生成手段は、前記断片信号の先頭サンプル時刻と前記再生速度とに加え、前記断片信号のサンプル長をさらに関連付けて、前記時刻情報を生成することを特徴とする請求項1または2に記載の音響処理装置。
【請求項4】
前記生成手段は、前記タイムストレッチ処理の前後を示すフラグをさらに加えた前記時刻情報を生成することを特徴とする請求項1から3のいずれか1項に記載の音響処理装置。
【請求項5】
再生される映像の前記タイムコードに相当する時刻と、前記出力手段から前記音響信号が出力される時刻とを比較して、前記再生される映像と前記出力される音響との間の時刻のずれ量を検知する検知手段をさらに有し、
前記検知手段は、前記検知した時刻のずれ量に応じた制御信号を前記処理手段に送り、
前記処理手段は、前記制御信号に基づいて前記タイムストレッチ処理を行うことによって、前記時刻のずれを補正することを特徴とする請求項1から4のいずれか1項に記載の音響処理装置。
【請求項6】
前記音響信号を遅延させる遅延手段をさらに有し、
前記生成手段は、前記遅延手段が遅延させる音響信号の時刻情報から、前記遅延手段が遅延させて出力する音響信号と同期する時刻情報を新たに生成することを特徴とする請求項1から4のいずれか1項に記載の音響処理装置。
【請求項7】
前記遅延手段は、前記処理手段が出力した前記音響信号を遅延させ、前記遅延した音響信号について前記生成手段が前記新たに生成した前記時刻情報を、前記音響信号とともに前記出力手段に出力することを特徴とする請求項6に記載の音響処理装置。
【請求項8】
再生される映像の前記タイムコードに相当する時刻と、前記出力手段から前記音響信号が出力される時刻とを比較して、前記再生される映像と前記出力される音響との間における時刻のずれ量を検知する検知手段をさらに有し、
前記検知手段は、前記検知した時刻のずれ量に応じた制御信号を前記処理手段と前記遅延手段とに送り、
前記処理手段が前記制御信号に基づいて前記タイムストレッチ処理を行い、前記遅延手段が前記制御信号に基づいて前記音響信号を遅延させる処理を行うことによって、前記時刻のずれを補正することを特徴とする請求項7に記載の音響処理装置。
【請求項9】
前記検知手段は、前記検知した時刻のずれ量が閾値より大きい場合に、前記ずれ量のうち前記閾値を超えた分を前記遅延手段への制御信号とし、前記ずれ量のうち前記閾値の分を前記処理手段への制御信号とすることを特徴とする請求項8に記載の音響処理装置。
【請求項10】
前記検知手段は、前記検知した時刻のずれ量が閾値以下の場合、前記ずれ量に応じた制御信号を前記処理手段へ送り、前記遅延手段には制御信号を送信しないことを特徴とする請求項8または9に記載の音響処理装置。
【請求項11】
前記処理手段は、前記時刻情報に基づき、前記タイムストレッチ処理の単位ごとに一つの再生速度を計算し、前記再生速度を基に前記タイムストレッチ処理を行うことを特徴とする請求項1から10のいずれか1項に記載の音響処理装置。
【請求項12】
前記生成手段は、前記タイムストレッチ処理で用いた前記再生速度を基に前記時刻情報を新たに生成することを特徴とする請求項11に記載の音響処理装置。
【請求項13】
音響処理装置が実行する音響処理方法であって、
映像のタイムコードと再生速度とを含む情報を受信する情報受信工程と、
音響信号の一部を構成する断片信号と時刻とを関連付けて蓄積する蓄積部から、前記情報受信工程にて受信された前記タイムコードに相当する時刻の音響信号を読み出す読出し工程と、
前記情報受信工程で受信された前記再生速度に応じて、前記読出し工程で前記読み出された音響信号に対して、タイムストレッチ処理を行う処理工程と、
前記読出し工程によって出力される音響信号の時刻情報と、前記処理工程によって出力される音響信号の時刻情報とを生成する生成工程と、
前記処理工程から出力された音響信号を出力する出力手段と、
を有することを特徴とする音響処理方法。
【請求項14】
コンピュータを、請求項1から12のいずれか1項に記載の音響処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音響信号を生成する技術に関する。
【背景技術】
【0002】
映像に音響を付加して再生する場合に、映像の内容と音の出力のタイミングとが合うように、映像と音響の同期をとる技術がある。特許文献1では、映像・音響処理装置において、入力部が、映像もしくは音響の各処理部の要求によって、それらのデータが入力された時刻と組にした映像・音響データを各処理部に出力することで、映像と音響を同期させる技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2007-110749号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
映像と音響の同期を取るシステムにおいて、映像の再生速度が変化する場合、映像の再生速度に合わせて音響の再生速度も変更する必要がある。しかしながら、特許文献1の方法では、映像の再生速度の変化に応じた音響信号の時刻を精度よく取得することが困難となる場合がある。この結果、映像と音響との同期の精度が低下するという問題がある。
【0005】
本発明は、再生速度の変化による映像と音響との同期の精度の低下を抑制することを目的とする。
【課題を解決するための手段】
【0006】
本発明の音響処理装置は、映像のタイムコードと再生速度とを含む情報を受信する情報受信手段と、音響信号の一部を構成する断片信号と時刻とを関連付けて蓄積する蓄積部から、前記情報受信手段が受信した前記タイムコードに相当する時刻の音響信号を読み出す読出し手段と、前記情報受信手段が受信した前記再生速度に応じて、前記読出し手段が前記読み出した音響信号に対して、タイムストレッチ処理を行う処理手段と、前記読出し手段が出力する音響信号の時刻情報と、前記処理手段が出力する音響信号の時刻情報とを生成する生成手段と、前記処理手段が出力した音響信号を出力する出力手段と、を有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、再生速度の変化による映像と音響との同期の精度の低下を抑制可能になる。
【図面の簡単な説明】
【0008】
図1】第一実施形態の音響処理装置の一構成例を示す図である。
図2】仮想カメラ情報のデータ構成を示す図である。
図3】時刻情報テーブルのデータ構成を示す図である。
図4】音響処理装置のハードウェア構成を示す図である。
図5】音響処理のフローチャートである。
図6】音響信号読出し処理のフローチャートである。
図7】タイムストレッチ処理のフローチャートである。
図8】音響信号出力処理のフローチャートである。
図9】同期ずれ検知処理のフローチャートである。
図10】第二実施形態の音響処理装置の一構成例を示す図である。
図11】遅延処理のフローチャートである。
図12】先頭要素ポインタの説明に用いる図である。
図13】第二実施形態における同期ずれ検知処理のフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態を、添付の図面に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。また実施形態において同一の構成または処理については、同じ参照符号を付して説明する。
【0010】
本実施形態では、CGオブジェクトなどによって構築される仮想的な空間に仮想的なカメラ(以下、仮想カメラという)を配置することにより得られる自由視点映像に音響を付加する構成について説明する。なお、本実施形態における自由視点映像は、仮想視点映像とも呼ばれるものであり、ユーザにより手動で、あるいは、装置等により自動で仮想カメラの位置及び姿勢等が指定されることにより生成される映像である。また、本実施形態においては、自由視点映像に付加される音響信号を、自由視点音響という。
まず、本実施形態に係る音響処理装置について説明する前に、映像と音響を同期させる際に考慮すべき事項について説明する。
自由視点音響を生成するシステムにおいて、映像に見合う音響を生成するためには、映像信号の時刻情報の把握と共に、各種処理が施される音響信号の時刻情報をも把握する必要がある。例えば、仮想カメラの位置の座標に応じて、音像の定位方向や音場の方向などを変化させる処理を行う場合、処理対象の音響信号の時刻に合致する仮想カメラ座標を取得する必要がある。また、映像信号と音響信号の各々に対して行われる処理の違いにより、処理遅延に差が生じるため、映像と音響を同期再生する場合には、再生する映像信号と音響信号の双方の時刻を把握する必要がある。つまり音響信号に対して各処理を行う際には、音響信号の時刻を取得する必要がある。そして、再生される映像に、音響を同期させて再生するためには、映像信号と音響信号の双方の時刻を正確に把握した上で、音響再生速度を変更する必要がある。
【0011】
ここで、再生速度変更に対する音響信号の処理として、一般的には、リサンプリング処理を基本とするタイムストレッチ処理が行われている。しかしながら、リサンプリング処理を行った場合、処理結果として得られる音響信号の1サンプルに対する時間長が変化してしまうことになる。前述した特許文献1の技術では一定速度の再生のみを考慮しており、再生速度が時間とともに変動する場合には、1サンプルに対する時間長が変化するため、時刻のみを送付しても再生速度変更後のデータに対する正確な時刻が計算できない。また、映像・音響システムにおける再生速度指示は映像フレームに対して行われる場合がほとんどであり、リサンプリング処理のサンプル長とは合致しない場合がある。そのため、後続の処理において、タイムストレッチ処理後の音響信号から任意の断片を取り出した時に、時間長が異なる複数種のサンプルデータが混在することになる。これらのことから、映像と音響の同期を取るシステムにおいて、再生速度が時々刻々と変化するような場合、前述した従来の手法では音響信号の正確な時刻を取得できない。
そこで本実施形態の音響処理装置は、時刻と再生速度を組にした要素を複数含めて表にした時刻情報(以下、時刻情報テーブルとする)を、音響信号の断片に付与することにより、処理対象の音響信号の正確な時刻を把握できるようにする。
以下、本実施形態における音響処理装置の構成および処理について詳細に説明する。
【0012】
<第一実施形態>
図1は、第一実施形態に係る音響処理装置の機能構成例を示した図である。
図1において、情報受信部1は、不図示の情報処理装置等において生成された仮想カメラ情報を逐次受信(取得)し、仮想カメラ情報の中から映像のタイムコードを抽出して信号読出し部3へ出力する。本実施形態において、仮想カメラ情報とは、仮想カメラが仮想的に撮像して得られる映像の1フレームに一対一で対応する各種情報をまとめたデータである。
【0013】
図2は、本実施形態に係る仮想カメラ情報の詳細なデータ構造例を示した図である。
図2に示すように、仮想カメラ情報は、フレーム連番、タイムコード、仮想カメラ方向、仮想カメラ画角、仮想カメラ座標、および再生速度からなる。このうち、フレーム連番は、映像フレームの順番を示す番号を指定する情報である。タイムコードは、仮想カメラ情報の時刻を示す情報である。仮想カメラ方向、仮想カメラ画角、および仮想カメラ座標は、一つのフレームにおける、仮想カメラの方向、画角、および座標を示す情報である。再生速度は、映像のフレームを再生する速度を示す情報である。なお本実施形態では、フレーム連番とタイムコードを別の項目として取り扱う。こうすることにより、タイムコードが同じでも、異なる仮想カメラの方向、画角、座標を持たせた別のカメラ情報を、別のフレームとして取り扱うことができる。これにより、繰り返し再生や時刻を戻して再度再生を行う場合などに、仮想カメラの状態を変えて映像、音響の生成、再生を行うことができる。
【0014】
図1の説明に戻る。蓄積部2は、既定の時間長で断片化された音響信号に対して、先頭サンプルの時刻を示す情報を付与したデータ(音響信号データとする)が格納される。本実施形態において、音響信号は複数のチャンネルからなり、蓄積部2には、同じ時間区間に対する全ての音響信号チャンネルが一つのデータにまとめて格納されるものとする。なお、チャンネル毎に個別のデータとして格納されてもよく、本発明の主旨を逸脱しない範囲において適用できる。
【0015】
信号読出し部3は、情報受信部1が仮想カメラ情報から抽出したタイムコードに相当する時刻の音響信号を、蓄積部2から検索して読出し、その読出した音響信号を内部出力バッファに格納する。また、信号読出し部3は、内部出力バッファに格納した音響信号の時刻と再生速度の組からなる情報を、時刻情報生成部8に出力する。
時刻情報生成部8は、信号読出し部3から得た情報に基づいて後述する時刻情報テーブルを生成して、信号読出し部3に出力する。そして、信号読出し部3は、その取得した時刻情報テーブルを、内部出力バッファに格納された音響信号とともに、タイムストレッチ部4へ出力する。本実施形態において、時刻情報テーブルとは、音響処理装置の各構成要素において、処理対象の音響信号に対する時刻関連情報をまとめて表にしたデータである。図3は時刻情報テーブル30の一構成例を示した図である。時刻情報テーブル30は、このテーブルのデータの状態を示す一つのフラグ(タイムストレッチ処理済フラグ31)、サンプル時刻32、再生速度33、およびサンプル長34の三つを組にした要素を複数格納する構成のテーブルである。
【0016】
タイムストレッチ処理済フラグ31は、時刻情報テーブル30に含まれるサンプル時刻が、後述するタイムストレッチ処理以前のものか、以後のものかを示すフラグである。当該タイムストレッチ処理済フラグ31の情報は、タイムストレッチ処理前である場合にはOff(例えば0)になされ、一方、タイムストレッチ処理後である場合にはOn(例えば1)になされる。本実施形態の場合、前述したようにリサンプリングを前提としたタイムストレッチ処理を行う。よって、タイムストレッチ処理の前後において、1サンプル当たりの時間長が異なってくる。例えば、本実施形態の音響処理装置で既定されている音響信号のサンプルレートをfs[Hz]とし、再生速度2.0倍でタイムストレッチ処理を行うとする。この場合、1サンプル当たりの時間長は、タイムストレッチ処理前では1/fs[sec]であるが、タイムストレッチ処理後では2.0/fs[sec]となる。本実施形態において、タイムストレッチ処理済フラグ31は、この状態の識別を行うための情報であり、OnまたはOffによって時刻の計算方法を変える必要が生じる。
【0017】
サンプル時刻32は、音響信号の断片の先頭サンプルの時刻である。一つのサンプル時刻32は、時、分、秒、ミリ秒、および余剰サンプル数から構成される。このうち、時、分、秒は、通常の時刻と同様の値が格納される。ミリ秒は、1000分の1秒単位の値が整数で格納される。余剰サンプル数は、1000分の1秒以下の時刻をサンプル数で示した値である。例えば、48kHzのサンプリングレートの音響信号で再生速度が1.0の場合、0~47の範囲の整数値が余剰サンプル数を示す値として格納される。
再生速度33は、音響信号の断片に指定された再生速度倍率であり、例えば、通常再生の場合には1.0、倍速再生の場合には2.0が格納される。
サンプル長34は、この音響信号の断片の1チャンネル当たりのサンプル長である。
【0018】
図1の説明に戻る。タイムストレッチ部4は、信号読出し部3から出力された音響信号に対してタイムストレッチ処理を行う。詳細は後述するが、本実施形態の場合、タイムストレッチ部4は、信号読出し部3から出力された時刻情報テーブルと、後述するずれ検知部5が出力する時刻ずれ量とに基づいて、音響信号にタイムストレッチ処理を施す。そしてタイムストレッチ部4は、タイムストレッチ処理後の音響信号を内部出力バッファに格納する。またタイムストレッチ部4は、内部出力バッファに格納した音響信号の時刻と再生速度の組からなる情報を、時刻情報生成部9に出力する。
時刻情報生成部9は、タイムストレッチ部4から得られた情報を基に時刻情報テーブルを生成(再構成)して、タイムストレッチ部4に出力する。そしてタイムストレッチ部4は、取得した時刻情報テーブルを、内部出力バッファに格納されたタイムストレッチ処理後の音響信号とともに、信号出力部6へ出力する。
【0019】
信号出力部6は、タイムストレッチ部4から出力されたデジタル信号である音響信号をアナログ音響信号に変換し、適宜増幅してスピーカー7に出力する。また、信号出力部6は、タイムストレッチ部4から取得した時刻情報テーブルに基づき、再生音響時刻を算出し、その再生音響時刻情報をずれ検知部5へ出力する。なお、再生音響の時刻情報とは、信号出力部6がスピーカー7に出力する音の時刻の情報である。
【0020】
ずれ検知部5は、不図示の情報処理装置等から再生映像タイムコードを受信し、再生映像タイムコードに相当する時刻情報と、信号出力部6から取得した再生音響時刻情報とを比較し、それらの時刻のずれ量を検知する。そして、ずれ検知部5は、その検出した時刻ずれ量を示す情報を、制御信号としてタイムストレッチ部4に出力する。これにより、タイムストレッチ部4では、前述したように、信号読出し部3から出力された時刻情報テーブルと、ずれ検知部5が出力する時刻ずれ量に応じた制御信号とに基づいたタイムストレッチ処理を、音響信号に施すことができる。
スピーカー7は、信号出力部6から出力されたアナログ音響信号を音に変換して出力する。
【0021】
図4は、図1で示した音響処理装置の機能構成をソフトウェアプログラムとして実施するためのハードウェア構成例を示した図である。
図4において、入出力部101は、不図示の情報処理装置等の外部装置から仮想カメラ情報と再生映像タイムコードの入力を受け付け、バス109を介して適宜CPU102の指示に従って他の構成要素に送出する。
CPU102は、ROM107や外部記憶部104からプログラムを読み出してRAM103に展開して実行することでバス109を介して他の構成要素を制御し、またRAM103にデータを随時読み書きして各種計算を行う。本実施形態の場合、CPU102は、音響処理プログラムを実行することによって、図1に示した音響処理装置の各機能および各処理を実現する。なお音響処理装置は、CPU102とは異なる1又は複数の専用のハードウェアを有し、CPU102による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、およびDSP(デジタルシグナルプロセッサ)などがある。
【0022】
外部記憶部104は、例えばハードディスクドライブやソリッドステートドライブ等で構成される。外部記憶部104には、本実施形態に係る音響処理プログラムや長期蓄積されるデータを格納している。図1に示した蓄積部2の機能も、外部記憶部104によって実現される。
ROM107は、例えば本ハードウェア装置を起動、終了するためのプログラムや、基本的な入出力を制御するプログラムなど、変更を必要としない固定的なプログラムや固定パラメータを格納しており、必要な時にCPU102からアクセスされる。なお、本実施形態の音響処理に係るプログラムは、ROM107に格納されていてもよい。
RAM103は、ROM107や外部記憶部104から供給されるプログラムやデータ、通信IF108を介して外部から供給されるデータなどを一時記憶する。またRAM103は、実行中のプログラムの一部や付随するデータ、CPUの計算結果などを一時的に保存する。
【0023】
操作部105は、ユーザからの各種指示操作を受け付けて操作信号に変換して、バス109を介してCPU102へ送信する。操作部105は、キーボードやマウス、ジョイスティック、タッチパネル等で構成される。CPU102は、操作部105からの操作信号に応じて実行中のプログラム制御や他の構成の制御指示を行う。
表示部106は、ユーザに対して実行中のプログラムの状態やプログラムの出力を表示する。表示部106は、例えば液晶ディスプレイやLED等を有して構成され、ユーザが音響処理装置を操作するためのGUI(Graphical User Interface)などを表示する。
通信IF108は、インターネットなどの通信網に対するデータの入出力を行うためのインターフェースである。なお、音響処理装置が外部の装置と有線で接続される場合には、通信用のケーブルが通信IF108に接続される。音響処理装置が外部の装置と無線通信する機能を有する場合には、通信IF108はアンテナを備える。バス109は、音響処理装置の各部をつないで情報を伝達する。
なお本実施形態では表示部106と操作部105が音響処理装置の内部に存在するものとするが、表示部106と操作部105の少なくとも一方が音響処理装置の外部に別の装置として存在していてもよい。
【0024】
以上、説明したように、本実施形態では、CPU102が、ROM107や外部記憶部104に格納されたプログラムに従って処理を実行することにより、図1に示した音響処理装置の各機能および各処理を実行する。
図5は、図1に示した機能構成を有する本実施形態の音響処理装置において行われる音響処理の流れを示すフローチャートである。なお、以降の各フローチャートにおいて、参照符号の「S」は処理ステップを表している。
【0025】
まずS1において、音響処理装置では、図1もしくは図4に示した各構成要素の初期化処理が行われる。以降のS2からS6までの各処理は、所定の条件を満たすまで繰り返される。なお本実施形態の場合、所定の条件とは、後述するようにユーザから終了指示がなされることである。
【0026】
S2において、信号読出し部3は、情報受信部1が逐次受信した仮想カメラ情報に対応する音響信号データを、蓄積部2から読み出す。またこの音響信号読出し処理の間に、時刻情報生成部8は、時刻情報テーブルを生成して信号読出し部3に出力する。信号読出し部3は、時刻情報生成部8から出力された時刻情報テーブルを、蓄積部2から読み出した音響信号データとともに、タイムストレッチ部4へ送出する。このS2の処理の詳細は、後述する図6のフローチャートにおいて説明する。
【0027】
次にS3において、タイムストレッチ部4は、信号読出し部3から受信した時刻情報テーブルと、ずれ検知部5から受信した時刻ずれ量とを基に、タイムストレッチ処理を行う。またこの処理の間に、時刻情報生成部9はタイムストレッチ処理の結果に合致するように時刻情報テーブルが生成(再構成)されて、タイムストレッチ部4に出力される。タイムストレッチ部4は、当該時刻情報テーブルをタイムストレッチ処理後の音響信号とともに信号出力部6へ送出する。このS3の処理の詳細は、後述する図7のフローチャートにおいて説明する。
【0028】
次にS4において、信号出力部6は、タイムストレッチ処理後の音響信号に対してDA(デジタルアナログ)変換や増幅を行い、スピーカー7に出力する。これによりスピーカー7からは音響信号に応じた音が出力される。また信号出力部6は、時刻情報テーブルに基づいて再生音響時刻を算出して、ずれ検知部5へ送出する。このS4の処理の詳細は、後述する図8のフローチャートにおいて説明する。
【0029】
次にS5において、ずれ検知部5は、外部から受信する再生映像タイムコードと、信号出力部6から受信した再生音響信号の時刻とに基づいて、映像と音響との同期ずれを時刻ずれ量として検知して、タイムストレッチ部4に送る。このS5の処理の詳細は、後述する図9のフローチャートにおいて説明する。
【0030】
次にS6において、音響処理装置は、操作部105を介して取得したユーザ操作により、終了指示があったかどうかを判定する。音響処理装置は、終了指示がない場合にはS2に戻り処理を続け、一方、終了指示があった場合には図5のフローチャートの処理を終了、つまり本実施形態の音響処理を終了する。
【0031】
図6は、図5のS2における音響信号読出し処理の詳細な流れを示したフローチャートである。
まずS101において、信号読出し部3は、前回の処理において出力できずに余った音響信号データのサンプル時刻、再生速度、およびサンプル長の情報を、時刻情報生成部8に出力する。なお、これらサンプル時刻、再生速度、およびサンプル長の情報は、前回の処理においてRAM103上の規定領域に保存されているが、これらの情報が保存されていない場合、信号読出し部3は何も行わない。
【0032】
以降のS102からS106までの処理は、所定の条件を満たすまで繰り返し行われる。図6のフローチャートの場合、所定の条件とは、信号読出し部3が有する出力バッファが満杯になることである。
S102において、信号読出し部3は、情報受信部1から出力された仮想カメラ情報を取得する。
次にS103において、信号読出し部3は、S102で受信した仮想カメラ情報中のタイムコードを、図3(b)で示したサンプル時刻に変換する。なお、フレームベースであるタイムコードを時刻に変換する処理は、映像処理関連分野において公知の処理であるため、その詳細な説明は省略する。
【0033】
次にS104において、信号読出し部3は、S103で得られたサンプル時刻の音響サンプルを先頭として、映像1フレーム分の時間長の音響信号を蓄積部2から読み出し、RAM103上の規定領域に一時格納する。
次にS105において、信号読出し部3は、S104で読み出した音響信号を、内部の出力バッファの空き領域に書き込めるだけ追加する。出力バッファの空き領域が1フレーム分以上ある場合、信号読出し部3は、S104で読み出した全ての音響信号を書き込む。一方、出力バッファの空き領域が1フレーム分未満である場合、信号読出し部3は、その領域に書き込めるサンプル長だけ書き込む。なお、本実施形態において、出力バッファは、RAM103上の規定領域に確保されている。また、出力バッファのサイズは、出力先であるタイムストレッチ部4が一回に処理する音響信号のサイズと同じサイズとしている。
【0034】
次にS106において、信号読出し部3は、S103で得られたサンプル時刻の情報と、S102で受信した仮想カメラ情報内の再生速度の情報と、S105で書き込んだサンプル長の情報とを、時刻情報生成部8に出力する。
そしてS107において、信号読出し部3は、出力バッファが満杯になったかどうかを判定する。この判定の結果、出力バッファが満杯ではない場合、信号読出し部3は、S102に処理を戻して、次の繰り返し処理を行う。一方、出力バッファが満杯の場合、音響処理装置の処理は、S108の処理に進む。
【0035】
S108に進むと、時刻情報生成部8は、ここまでの処理で信号読出し部3から出力された、サンプル時刻、再生速度、およびサンプル長の三つの組みを要素とする時刻情報テーブルを生成する。なお、これらの要素は、出力された順番にテーブルにまとめられる。このようにすることで、信号読出し部3の出力バッファに書き出された音響信号と整合する時刻情報テーブルが生成される。S108において生成された時刻情報テーブルは、信号読出し部3に出力される。そしてS109において、信号読出し部3は、時刻情報テーブルを出力バッファ内の音響信号データに付加して、当該音響信号データとともにタイムストレッチ部4に出力する。
【0036】
次にS110において、信号読出し部3は、S105で出力バッファに書き込めなかった余剰分の音響信号データを出力バッファの先頭に書き込む。
次にS111において、信号読出し部3は、出力バッファの先頭サンプルの時刻を計算する。本実施形態の音響処理装置が入出力する音響信号における既定のサンプリングレートをfsとし、直前のS106で出力したサンプル時刻をT、サンプル長をLとすると、出力バッファ先頭のサンプル時刻Twは下記式(1)で求められる。
【0037】
Tw=T+L/fs 式(1)
【0038】
次にS112において、信号読出し部3は、S111で計算したサンプル時刻と、直前のS106で出力した再生速度と、S110で書き込んだサンプル長との、各情報を、RAM103上の規定領域に一時保存する。これらの情報は、次回の音響信号読出し処理において、S101で時刻情報生成部8に出力される。
そして、このS112の処理を終えると、音響処理装置は、信号読出し処理を終了した後、リターンする。
【0039】
図7は、図5のS3におけるタイムストレッチ処理の詳細な流れを示すフローチャートである。
まずS201において、タイムストレッチ部4は、前回の処理で出力できず余った音響信号データの、先頭サンプル時刻と再生速度とサンプル長の三つの組みを、時刻情報生成部9へ出力する。これらの情報は、RAM103上の規定領域に一時保存されている。なお、余った音響信号データがない場合、タイムストレッチ部4は何もしない。
以降のS202からS206までの処理は、所定の条件を満たすまで繰り返し行われる。図7のフローチャートの場合、所定の条件とは、タイムストレッチ部4が有する出力バッファが満杯になることである。
【0040】
S202において、タイムストレッチ部4は、信号読出し部3から入力された時刻情報テーブルに基づき、再生速度の再計算を行う。ここで、一般に、リサンプリングを基本とするタイムストレッチ処理では、処理単位に対して一つの再生速度に対する処理しか行えない。また本実施形態の場合、音響信号データは一処理単位で入力される。このため、タイムストレッチ部4は、入力された時刻情報テーブルに基づき、処理による時刻ずれを避ける唯一の再生速度を求める。
具体的には、タイムストレッチ部4は、サンプル長を重みとする再生速度の加重平均を計算する。例えば、図4(a)に示す時刻情報テーブルの場合、このテーブル中のサンプル長を全て加算したサンプル長総数をLtnとし、時刻情報テーブルに含まれる要素の数をnとすると、再生速度Vは式(2)で求めることができる。
【0041】
V=Σ(再生速度i×サンプル長i)/Ltn 式(2)
ただし1≦i≦n
【0042】
次にS203において、タイムストレッチ部4は、ずれ検知部5から受信した時刻ずれ量に基づいて、S202で求めた再生速度を補正する。
ここで、ずれ検知部5からは、毎回の処理毎に最新の値の時刻ずれ量が送信されてくる。ただし、時刻ずれ量に基づく一回の処理で再生速度の補正を行うようにすると、フィードバック制御が大きく行われてしまうことがあり、場合によっては制御が収束せず再生速度の揺れ(変化)が激しくなる虞がある。また、再生速度を急激に制御した場合には、音質に問題が生じる虞がある。このため、タイムストレッチ部4は、ずれ検知部5から受信した時刻ずれ量のうち、予め設定した割合だけ再生速度を補正する。例えば、受信した時刻ずれ量をMt[sec]とし、予め設定した割合をr(0<r<1)、サンプル長総数をLtn、音響信号のサンプリングレートをfs、再生速度をVとすると、再生速度Vに対する補正速度Vcは式(3)で求められる。
【0043】
Vc=(Ltn+Mt×r/fs)/Ltn×V 式(3)
【0044】
この処理によって、ずれ検知部5が検知した時刻ずれ量に応じて再生速度を適宜制御できるため、映像と音響のずれを補正することができる。
さらにS204において、タイムストレッチ部4は、S203で補正した再生速度を基に、入力された音響信号にタイムストレッチ処理を実行する。本実施形態では、リサンプリング処理を基本としたタイムストレッチ処理を行う。例えば、再生速度が0.5倍の場合、タイムストレッチ部4は、各サンプルの中間にサンプルを増やし、サンプル総数としては倍に増やすようなタイムストレッチ処理を行う。また例えば、再生速度が2.0倍の場合、タイムストレッチ部4は、サンプルの半分を間引くようなタイムストレッチ処理を行う。
【0045】
ただし、サンプルの増減により、元信号にない高域の周波数成分や折り返し歪が発生するため、それらを取り除くため、適宜設計したLPF(Low Pass Filter:低域通過フィルタ)処理を行う。なお、再サンプリングとLPF処理とを同時に行う処理として、本実施形態では、窓掛けしたSinc関数によりFIR係数を設計して重畳する処理を行う。また、再サンプリングすると、ピッチ(音程)が変化するため、本実施形態では、リサンプリング処理とともにピッチ変換を行って、元信号のピッチを保ったまま速度変換する処理を行う。そして、タイムストレッチ部4は、それらの処理結果として得られる音響信号を、RAM103上の規定領域に保存する。
【0046】
次にS205において、タイムストレッチ部4は、処理後の音響信号を、内部の出力バッファの空き領域に書き込めるだけ追加する。なお、タイムストレッチ部4の出力バッファは、RAM103上の規定領域に確保されているとする。出力バッファのサイズは、後段の構成である信号出力部6における処理単位分を少なくとも確保する。
【0047】
次にS206において、タイムストレッチ部4は、S205で出力バッファに書き込んだ音響信号のサンプル時刻と、S203で算出した再生速度と、S204のタイムストレッチ処理実行後のサンプル長との各情報を、時刻情報生成部9に出力する。
【0048】
次にS207において、タイムストレッチ部4は、出力バッファが満杯になったかどうかを判定する。そして、タイムストレッチ部4は、判定の結果、出力バッファが満杯になっていない場合にはS202へ処理を戻し、次の繰り返し処理を行う。一方、出力バッファが満杯になった場合、音響処理装置は、S208へ処理を進める。
【0049】
S208に進むと、時刻情報生成部9は、ここまでの処理でタイムストレッチ部4から出力された、サンプル時刻と再生速度とサンプル長との三つ組みを要素とする時刻情報テーブルを生成する。なお、これらの要素は、出力された順番にテーブルにまとめられる。このようにすることで、タイムストレッチ部4の出力バッファに書き出された音響信号と整合する時刻情報テーブルが生成される。生成された時刻情報テーブルは、タイムストレッチ部4に出力される。
次に、S209において、タイムストレッチ部4は、出力バッファ内のデータに時刻情報テーブルを付加する。そして、この時刻情報テーブルは、音響信号のデータとともに信号出力部6に出力される。
【0050】
次にS210において、タイムストレッチ部4は、S205で出力バッファに書き込めなかった余剰分の音響信号データを、出力バッファ先頭に書き込む(コピーする)。
次にS211において、タイムストレッチ部4は、出力バッファ先頭のサンプル時刻を計算する。
さらにS212において、タイムストレッチ部4は、S211で計算したサンプル時刻とS203で計算した再生速度とS210でコピーしたサンプル長との各情報を、RAM103上の規定領域に一時保存する。これらの情報は、次回のタイムストレッチ処理において、S201で時刻情報生成部9に出力される。
そして、このS212の処理を終えると、音響処理装置は、タイムストレッチ処理を終了した後、リターンする。
【0051】
図8は、図5のS4における音声信号出力処理の詳細な流れを示したフローチャートである。S301からS302までの処理と、S303からS310までの処理は並列に実行される。なお、S303からS310までの処理は、音響信号を音に変換して出力する処理であり、音が途切れないようにする必要があるため、図8のようなフローとしている。
【0052】
まずS301において、信号出力部6は、タイムストレッチ部4から受信した信号を、内部の一時バッファの末尾に追加する。本実施形態において、信号出力部6の内部の一時バッファは、例えばRAM103上の規定領域に確保されている。
次にS302において、信号出力部6は、タイムストレッチ部4から受信した時刻情報テーブルのフラグを除く三つ組みの要素を、内部に保持している時刻情報テーブル末尾に追加する。そして、このS302の処理を終えると、信号出力部6は、S301からS302までの処理を終了して、リターンする。
【0053】
一方、S303からS310の処理は、所定の条件を満たすまで繰り返し行われる。このときの所定の条件は、ユーザから終了指示がなされたかどうかである。
まずS303において、信号出力部6は、一時バッファの先頭サンプルのサンプル時刻を、内部の時刻情報テーブルの先頭要素から読み取り、時刻に換算してずれ検知部5に出力する。サンプル時刻から時刻への換算は、余剰サンプル数をミリ秒以下の時間に変換する計算により行われる。以下、この時間を、「余剰時間」と呼称する。信号出力部6は、こうして得られた余剰時間の情報を、余剰サンプル数の代りに、ずれ検知部5に送る。音響信号のサンプリングレートをfsとし、余剰サンプル数をm、再生速度をVとすると、余剰時間tmは次式(4)により求めることができる。
【0054】
tm=m×V/fs 式(4)
【0055】
次にS304において、信号出力部6は、一時バッファから、スピーカー出力単位分に相当するサンプル長分の音響信号を読み取ってDA変換することで、デジタル音響信号をアナログ音響信号に変換する。なお、スピーカー出力単位分に相当するサンプル長は、図5のS1の初期設定により予め定められている。
次にS305において、信号出力部6は、S304で得られたアナログ音響信号を適宜増幅し、スピーカー7に出力する。これにより、スピーカー7からは、S303でずれ検知部5に出力した時刻の音響信号が音に変換されて出力される。
【0056】
次にS306において、信号出力部6は、一時バッファの先頭サンプルを指すポインタを、一時バッファに蓄積されている未出力音響信号の先頭サンプルに移動する。
次にS307において、信号出力部6は、内部の時刻情報テーブルにおいて、S306で指定した先頭サンプルが含まれている要素を探索し、先頭要素とする。さらに、信号出力部6は、その要素内のサンプル位置を算出する。音響出力を行う段階においては、一時バッファに蓄積されているサンプルは全て同じ扱いとなる。よって、時刻情報テーブルの先頭要素から順にサンプル長を加算していき、スピーカー出力単位分のサンプル長を超えた要素が、先頭サンプルが含まれる要素となる。テーブル先頭からこの要素の前の要素までを含めた総サンプル長をLaとし、スピーカー出力単位分のサンプル長をLoとすると、要素内のサンプル位置pは、次式(5)で計算できる。
【0057】
p=Lo-La+1 式(5)
【0058】
次にS308において、信号出力部6は、S307で求めたサンプル位置に基づき、先頭サンプルの時刻を算出する。先頭サンプルの時刻は、サンプル位置pを時間に換算し、時刻情報テーブルの先頭要素のサンプル時刻toに加算することで求められる。求めるサンプル時刻をt、先頭要素の再生速度をvとすると、サンプル時刻tは次式(6)で求めることができる。
【0059】
t=to+((p-1)×v) 式(6)
【0060】
このようにして求められたサンプル時刻は、時刻情報テーブルの先頭要素に格納される。
次にS309において、信号出力部6は、S307で求めたサンプル位置に基づき時刻情報テーブルの先頭要素のサンプル長を算出して更新する。サンプル位置をp、元のサンプル長をlfとすると、サンプル長lは次式(7)で求められる。
【0061】
l=lf-(p-1) 式(7)
【0062】
このようにして求められたサンプル長は、時刻情報テーブルの先頭要素に格納される。
次にS310において、音響処理装置は、操作部105を介したユーザ操作などによって終了指示があったかどうかを判定する。音響処理装置は、終了指示があった場合には図8のフローチャートのS303からS309の繰り返し処理を終了してリターンする。そうでない場合、音響処理装置はS303へ処理を戻し、これにより次の繰り返し処理が行われる。
【0063】
図9は、図5のS5における同期ずれ検知処理の詳細な流れを示したフローチャートである。
まずS401において、ずれ検知部5は、外部より再生映像タイムコードを受信する。なお、再生映像タイムコードは、情報受信部1が受信する仮想カメラ情報に付加されるタイムコードと同じ時間軸を共有するものである。
次にS402において、ずれ検知部5は、S401で取得した再生映像タイムコードを時刻(再生映像時刻とする)に変換する。タイムコードを時刻に変換する手法は映像再生分野において公知であるためその詳細な説明は省略する。
次にS403において、ずれ検知部5は、信号出力部6から出力された音響信号の時刻(再生音響時刻とする)を受信する。
【0064】
次にS404において、ずれ検知部5は、S402で得られた再生映像時刻とS403で受信した再生音響時刻との差分を計算する。この結果、映像と音響の同期ずれの時間を表す時刻ずれ量が得られる。ずれ検知部5は、S405で算出した時刻ずれ量の情報を、タイムストレッチ部4へ出力する。なお、出力した時刻ずれ量は、前述したように、図7のS202において、再生速度の再計算に加味され、さらにS203で補正され、その後、S204でのタイムストレッチ処理に用いられる。そして、S405の処理を終えると、ずれ検知部5は、同期ずれ検知処理を終了してリターンする。
【0065】
以上説明したように、本実施形態の音響処理装置は、少なくとも時刻と再生速度とを、組にした要素を複数含む表である時刻情報テーブルを、音響信号の断片に付与することにより、処理対象の音響信号の正確な時刻を把握可能となる。すなわち第一実施形態の音響処理装置は、時刻と再生速度とサンプル長とを三つ組にした情報を要素とする時刻情報テーブルを、音響信号とともに送信することで、各処理モジュール(各機能部)が処理中のサンプルの正確な時刻を把握できる。本実施形態によれば、再生速度が時間とともに変化しても、各処理モジュールが処理中のサンプルの正確な時刻を把握できるため、タイムストレッチ処理後においても映像と音響の同期ずれを検知して、映像と音響を同期させることができる。
【0066】
<第二実施形態>
第一実施形態では、タイムストレッチ処理の直後に音響出力を行う例について説明した。第二実施形態では、タイムストレッチ処理後に遅延処理を行い、タイムストレッチ処理と遅延処理の双方によって映像と音響の同期ずれを補正する例について説明する。第二実施形態において、第一実施形態と同様の構成及び処理については説明を省略する。また第二実施形態の音響処理装置のハードウェア構成は前述の図4と同様である。
【0067】
図10は、第二実施形態に係る音響処理装置の機能構成例を示した図である。図10において、情報受信部1から時刻情報生成部9までは、図1と同じ構成要素であるためそれらの説明は省略する。第二実施形態に係る音響処理装置は、遅延部11と時刻情報生成部12とを備えている。
遅延部11には、タイムストレッチ部4から出力された音響信号が入力され、また、ずれ検知部5が検知した時刻ずれ量が、遅延処理の制御信号として入力される。遅延部11は、タイムストレッチ部4から出力された音響信号を、時刻ずれ量に応じた制御信号によって遅延させる。同時に、遅延部11は、タイムストレッチ部4から出力される時刻情報テーブルの要素を、遅延させるサンプル数に則って変更し、時刻情報生成部12へ出力する。
時刻情報生成部12は、遅延部11から送られた情報を基に時刻情報テーブルを生成(再構成)し、遅延部11に出力する。そして遅延部11は、音響信号の出力時に、時刻情報生成部12にて生成された時刻情報テーブルを受信し、遅延処理後の音響信号とともに信号出力部6に出力する。
【0068】
図11は、第二実施形態の音響処理装置の遅延部11における処理の流れを示したフローチャートである。なお、第二実施形態において、遅延部11による遅延処理は、前述した図4のフローチャートのS3のタイムストレッチ処理とS4の音響信号出力処理との間で行われるものとする。
【0069】
まずS501において、遅延部11は、ずれ検知部5から、時刻ずれ量を表す情報(本実施形態ではずれ時間Tsとする)を受信したかどうかを判定する。遅延部11は、ずれ時間Tsを受信した場合にはS502へ処理を進め、一方、受信していない場合にはS505へ処理を進める。なお、一般的に映像処理の方が音響処理よりはるかに処理負荷が大きいため、音響よりも映像が遅れることが多い。よって、本実施形態では、ずれ時間Tsが正の場合は映像出力が音響出力より遅れていることを示すものとする。
【0070】
S502からS504までは、ずれ検知部5から通知されたずれ時間の補正を行うための処理である。
まずS502において、遅延部11は、ずれ時間Tsをサンプル長ssに変換する。ずれ時間Tsは、音響出力時に検知された時刻ずれ量に応じた時間であるため、再生速度は関係しない。よって、第二実施形態において、音響信号のサンプリングレートをfsとすると、サンプル長ssは次式(8)で求められる。
【0071】
ss=Ts[sec]/fs[Hz] 式(8)
【0072】
次にS503において、遅延部11は、内部の遅延バッファの読出しポインタをサンプル長ss×チャンネル数だけ前にずらす。これにより、ずれ時間Tsが遅延部11による遅延時間に足されるため、同期ずれが補正される。
次にS504において、遅延部11は、内部の時刻情報テーブルの先頭要素ポインタをサンプル長ssのサンプル分だけ前にずらす。本実施形態において、先頭要素ポインタとは、内部の時刻情報テーブルに格納されている三つ組要素のうち、次に出力される先頭サンプルが含まれている要素を示すポインタである。
【0073】
図12は、第二実施形態における先頭要素ポインタが、遅延部11の内部の時刻情報テーブルの先頭要素を指しているイメージを示した図である。図12において、時間情報テーブル201は遅延部11の内部の時刻情報テーブルを示しており、先頭要素ポインタ202は、要素を示すポインタ203と、サンプル位置204とによって構成されている。サンプル位置は、ポインタ203が指している要素の何番目のサンプルが先頭サンプルであるかを示している。なお図12に例示した先頭要素ポインタ202は、サンプル時刻Tlの要素のa番目のサンプルが先頭サンプルである状態を示している。
【0074】
ここで、図12に例示している状態から、先頭要素ポインタ202をサンプル長ssのサンプル分だけ前にずらすとする。この例の場合、遅延部11は、まず各要素のサンプル長から、サンプル長ssのサンプル分だけ前のサンプルが含まれる要素を探索する。この要素がサンプル時刻Tjの要素である場合、時間をずらした後の先頭要素ポインタのサンプル位置bは、サンプル長ssと、サンプル時刻Tjのサンプル長Ljと、サンプル時刻Tkのサンプル長Lkとから、次式(9)で計算できる。
【0075】
b=Lj-(ss-(a-1)-Lk) 式(9)
【0076】
このように求めたサンプル位置は、先頭要素ポインタに格納される。このS504の処理によって、映像と音響との同期ずれの補正に応じて、時刻情報テーブルの要素を正確にずらすことができる。
次にS505において、遅延部11は、タイムストレッチ部4から受信した音響信号を、遅延バッファ末尾に書き込む。
次にS506において、遅延部11は、タイムストレッチ部4から受信した時刻情報テーブルの各要素を、内部の時刻情報テーブルの末尾に追加する。
【0077】
S507からS512の処理において、遅延部11は、出力する音響信号断片に対応する時刻情報テーブルを生成する処理を行う。
まずS507において、遅延部11は、内部の時刻情報テーブルの先頭要素ポインタが指す要素に基づき、先頭要素のサンプル時刻とサンプル長を算出する。この計算は、先頭要素ポインタの先頭サンプル位置を用いて、第一実施形態におけるS308、S309と同様の計算を行う事により求められる。
次にS508において、遅延部11は、S507で得られたサンプル時刻とサンプル長と先頭要素ポインタとが指す要素の再生速度を三つ組みとして時刻情報生成部12へ出力する。
【0078】
次にS509において、遅延部11は、先頭要素ポインタが指すサンプルに、当該遅延部における処理単位サンプル長を加算したサンプルが含まれる末尾要素を探索する。遅延部11の処理単位のサンプル長をsdとし、先頭要素のサンプル長をst、先頭要素ポインタのサンプル位置をx、先頭の次の要素からのサンプル長総計をsgとすると、探索では、次の式(10)を満たす最初の後続の要素を見つければよい。
【0079】
sd≦st-x+1+sg 式(10)
【0080】
次にS510において、遅延部11は、内部の時刻情報テーブルにおいて、先頭要素ポインタが指す要素の次の要素から、末尾要素の前の要素までの三つ組み要素を、順に時刻情報生成部12へ出力する。
次にS511において、遅延部11は、S509の探索処理で見つけた末尾要素のサンプル長を、処理単位末尾のサンプル位置に置換して、時刻情報生成部12へ出力する。S509の条件の場合、先頭の次の要素から末尾要素の前の要素までのサンプル長総計をspとすると、処理単位末尾のサンプル位置eは、次式(11)で計算できる。
【0081】
e=sd-(st-x+1+sp) 式(11)
【0082】
S512は第一実施形態のS208と同様なので説明を省略する。
次にS513において、遅延部11は、遅延バッファに格納されている音響信号のうち、読出しポインタから、処理単位サンプル長×チャンネル数分の音響信号を、S512で得られた時刻情報テーブルとともに出力する。これにより、遅延処理を行っても、音響信号と同期する時刻情報が音響信号とともに出力される。
【0083】
次にS514において、遅延部11は、遅延バッファの読出しポインタを処理単位サンプル長×チャンネル数分、つまり出力した音響信号分後ろにずらす。
次にS515において、遅延部11は、内部の時刻情報テーブルの先頭要素ポインタを処理単位サンプル長分後ろにずらす。これは、S511で求めたサンプル位置eの次のサンプルを指すようにすればよい。そして、S515の処理を終えると、遅延部11は遅延処理を終了してリターンする。
【0084】
図13は、第二実施形態のずれ検知部5における同期ずれ検知処理の詳細な流れを示すフローチャートである。S601からS604の処理は、第一実施形態のS401からS404の処理と同様であるため、それらの説明は省略する。
S605において、ずれ検知部5は、S604で算出した時刻ずれ量に対応したずれ時間Tが、既定の時間閾値Thを超えたかどうか判定する。ずれ検知部5は、ずれ時間Tが閾値Thを超えた場合にはS606の処理に進み、そうでない場合にはS608の処理に進む。
【0085】
S606に進むと、ずれ検知部5は、時間T-Thをずれ時間として検知し、そのずれ時間を遅延部11に知らせる。これにより、前述したように、遅延部11は、このずれ時間を補正する処理を後に行う。
次にS607において、ずれ検知部5は、閾値Thの時間を、ずれ時間としてタイムストレッチ部4に出力する。これにより、タイムストレッチ部4は、この時間ずれを補正する処理を後に行う。
【0086】
このように、第二実施形態では、時間の閾値が決められ、時刻ずれ量に対応したずれ時間のうち、閾値を超える時間ずれ分については遅延部11で補正し、また閾値以下のずれ時間分についてはタイムストレッチ部4でタイムストレッチ処理する。第二実施形態の場合、ずれ時間は毎回の処理で補正されるため、映像処理や音響処理について何らかの大きな問題が生じない限り、大きな時間ずれは生じない。第二実施形態の場合、初回動作時で生じる映像と音響との大きな時間ずれは、主に遅延部11により補正され、以降の処理では、主にタイムストレッチ処理で小さなずれが少しずつ補正されることになる。これにより、常に映像と音響のずれが自動的に補正されることになる。
【0087】
そして、S607の処理を終えると、ずれ検知部5は、図13の同期ずれ検知処理を終了してリターンする。
S608の処理は、図9のS405と同様であるため、その説明は省略する。S608の処理を終えると、ずれ検知部5は、図13の同期ずれ検知処理を終了してリターンする。
【0088】
以上説明したように、第二実施形態においては、タイムストレッチ処理後に遅延処理を行う場合にも、時刻情報テーブルを、音響信号とともに遅延させて送信することによって、各処理モジュールが処理中のサンプルの正確な時刻を把握できる。よって、映像との同期ずれを正確に検知することができる。また第二実施形態の場合、タイムストレッチ処理と遅延処理との組み合わせによって、映像と音響が大きくずれる場合でも、正確な同期ずれ補正を行うことが可能になる。
【0089】
<他の実施形態>
前述した各実施形態では、時刻情報テーブルに1フレーム毎に要素を追加しているが、再生速度が変わらなければ複数フレーム分を一つの要素にまとめてもよい。
また、前述の各実施形態では、時刻情報テーブルの要素としてサンプル長を含めているが、サンプル長を省略して、後ろの要素の時刻差と再生速度を用いて算出するようにしてもよい。これにより、処理間で伝送するデータ量を削減することができる。
前述の例では、音響信号の時刻と再生する映像の時刻とを取得することで、映像と音響の同期再生を行うシステムを例に挙げたが、映像以外のデータや事象と音響の同期再生を行うシステムにも適用可能である。
その他、本発明の主旨を逸脱することがない範囲において、他の形態で実施することができる。
【0090】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0091】
1:情報受信部、2:蓄積部、3:信号読出し部、4:タイムストレッチ部、5:ずれ検知部、6:信号出力部、8,9,12:時刻情報生成部、11:遅延部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13