以下、本発明の好ましい実施形態について、図面を参照しながら説明する。なお、本発明は映像データおよび音声データのいずれの符号化処理も可能である。従って、以下の説明では、AVデータは映像データおよび/または音声データを含む。
《実施形態1》
図1は、本発明の実施形態1に係る符号化装置100およびビデオ編集システム200の構成を示すブロック図である。図1を参照するに、本発明の実施形態1に係るビデオ編集システム200はノンリニアビデオ編集システムであり、パーソナルコンピュータなどのコンピュータ端末を用いて実現される。ビデオ編集システム200は、符号化装置100、メモリ部20、HDD30A、ドライブ40A、入出力インタフェース50、ユーザ・インタフェース60、AVユニット70、および、これらの要素を接続する内部バス90を備えている。符号化装置100は、CPU10およびハードウェア・エンコーダ80を備えている。ビデオ編集システム200は、外部のLANやインターネットに接続可能なネットワークインタフェースを更に備えてもよい。
CPU10は、メモリ部20に記憶されているプログラムを実行し、後述の編集部13、データ割振部14、ソフトウェア・エンコーダ152、合成部16、出力部17、および、切換位置検出部18として機能する。すなわち、CPU10は、ビデオ編集システム200の制御および処理を行い、更にソフトウェア・エンコーダ152として符号化処理を行う。
メモリ部20には、CPU10に後述の処理を実行させるプログラムやデータが記憶されている。また、メモリ部20には、入力バッファ領域BI、第1出力バッファ領域BO1、および、第2出力バッファ領域BO2が確保される。入力バッファ領域BIは、符号化対象のAVデータが書き込まれる領域であり、第1出力バッファ領域BO1は、ハードウェア・エンコーダ80によって符号化されたAVデータが書き込まれる領域であり、第2出力バッファ領域BO2は、ソフトウェア・エンコーダ152によって符号化されたAVデータが書き込まれる領域である。
HDD30Aおよびドライブ40Aは、ビデオ編集システム200を実現するコンピュータ端末に内蔵されている。なお、HDD30Aの代わりに、図1に示すように入出力インタフェース50を通して内部バス90に接続された外付けのHDD30Bを設けてもよく、HDD30AとHDD30Bの両方を設けてもよい。HDD30Bはネットワークを介して入出力インタフェース50に接続されてもよい。ドライブ40Aもこれと同様にドライブ40Bを設けてもよい。
ドライブ40Aおよびドライブ40Bは、DVD102などのリムーバブルメディアにAVデータの記録再生を行う。リムーバブルメディアとしては、光ディスク、磁気ディスク、光磁気ディスク、半導体メモリなどが挙げられる。
入出力インタフェース50は、HDD30Bやドライブ40Bの他に、ユーザ・インタフェース60の各要素61〜64や、第2カメラ101Bなどの外部機器に内蔵される記憶媒体を内部バス90に接続する。例えば、入出力インタフェース50はIEEE1394インタフェースなどを含み、それを利用して第2カメラ101Bとの間でAVデータの入出力を行う。入出力インタフェース50は、第2カメラ101Bの他にも、VTR、スイッチャー、送出サーバーなど、AVデータを扱う様々な機器との間でAVデータの入出力を行うことができる。
ユーザ・インタフェース60は、入出力インタフェース50を通して内部バス90に接続されている。ユーザ・インタフェース60は例えば、マウス61、キーボード62、ディスプレイ63、および、スピーカ64を含む。ユーザ・インタフェース60は、タッチパネル(図示せず)などのその他の入力デバイスを含んでもよい。
AVユニット70はビデオ・インタフェースとオーディオ・インタフェースとを含む。AVユニット70はそれらのインタフェースを通して第1カメラ101Aなどの外部機器との間でAVデータの入出力を行う。AVユニット70は、第1カメラ101Aの他にも、VTR、スイッチャー、送出サーバーなど、AVデータを扱う様々な機器との間でAVデータの入出力を行うことができる。
ハードウェア・エンコーダ80は、(i)AVデータの符号化処理の一部または全体を実行するために専用に設計されたICやモジュールなどの回路、または(ii)AVデータの符号化処理の一部または全体と、符号化処理以外の処理とを実行可能なCPUやDSPなどの演算回路であって、その演算回路がAVデータの符号化処理の一部または全体を実行している間はその符号化処理の一部または全体を排他的に行う演算回路である。
ハードウェア・エンコーダ80は、非圧縮のAVデータを符号化によって圧縮する。例えば非可逆符号化方式の場合、ハードウェア・エンコーダ80によって実行されるAVデータの符号化処理は、
(I)ブロックやタイルなどへの分割ステップ、
(II)DCT(離散コサイン変換、Discrete Cosine Transformation)やウェーブレット変換などの直交変換ステップ、
(III)量子化ステップ、および、
(IV)エントロピー符号化などの可逆符号化ステップ、
を含む。
ハードウェア・エンコーダ80によるAVデータの符号化処理はその他にも、例えば、サブサンプリングステップ、シャッフリングステップ、イントラフレーム予測ステップ、またはフレーム間予測ステップを含んでもよい。なお、ハードウェア・エンコーダ80によるAVデータの符号化処理は、圧縮を目的とはしない符号化処理であってもよい。
ハードウェア・エンコーダ80はフレーム・バッファを内蔵し、それに記憶されたAVデータを符号化する。その他に、同様なフレーム・バッファとしてメモリ部20の所定の記憶領域が利用されてもよい。ハードウェア・エンコーダ80による符号化方式は、例えば、DV方式、MPEG方式、JPEG2000方式、イントラフレーム方式(例えば、AVC−Intra方式)、または、クローズドGOP方式、例えばMPEG方式におけるクローズドGOP方式であるが、特に限定されない。ハードウェア・エンコーダ80による符号化方式は、符号化された映像データの出力先のデバイスに応じて予め選択される。ハードウェア・エンコーダ80は各データ単位を、それに含まれている情報に基づいて符号化する。例えばイントラフレーム方式ではそのデータ単位は1フレームである。その他に、クローズドGOP方式では符号化のデータ単位は1GOPであってもよい。
図2は、図1のハードウェア・エンコーダ80が実装されたボード800の概略的な平面図の一例である。このボード800は、ビデオ編集システム200を実現するコンピュータ端末に搭載される。
図2を参照するに、ボード800は、コネクタ81、ハードウェア・エンコーダ82、フレーム・バッファ83、および、FPGA(Field Programmable Gate Array)84を含む。ボード800には更に、AVユニット70が実装されていてもよい。
コネクタ81はPCI−Expressに準拠しており、コンピュータ端末内のPCI−Expressスロットに挿入されることで、ボード800上の回路をそのコンピュータ端末のPCI−Expressバスに接続する。このバスは内部バス90に含まれている。
フレーム・バッファ83はDDR2−SDRAM(Double−Data−Rate2−Synchronous−DRAM)の独立素子であり、所定数、例えば4枚のフレームを記憶可能である。符号化対象のAVデータはフレームごとに、メモリ部20の入力バッファ領域BIから、コネクタ81とFPGA84とを通してフレーム・バッファ83に転送される。ハードウェア・エンコーダ82はFPGA84を通してフレーム・バッファ83の先頭アドレスから順にAVデータを符号化する。ハードウェア・エンコーダ82によって符号化されたAVデータはフレームごとに、FPGA84を通してフレーム・バッファ83に書き込まれ、更に、フレーム・バッファ83からFPGA84とコネクタ81とを通してメモリ部20の第1出力バッファ領域BO1に転送される。
FPGA84は単一のチップであり、PCI−Expressインタフェース85、メモリインタフェース86、DMAエンジン87、および、エンコーダインタフェース88を含む。PCI−Expressインタフェース85はコネクタ81を通してFPGA84内の他のモジュールを、ビデオ編集システム200を構成するコンピュータ端末のPCI−Expressバスに接続する。メモリインタフェース86はFPGA84内の他のモジュールによるフレーム・バッファ83へのアクセスを制御する。DMAエンジン87はPCI−Expressインタフェース85とメモリインタフェース86とを利用して、前記コンピュータ端末内のPCI−Expressバスを通したメモリ部20とフレーム・バッファ83との間でのAVデータの転送を制御する。エンコーダインタフェース88はFPGA84内の他のモジュールをハードウェア・エンコーダ82に接続する。
図3は、図1のビデオ編集システム200の主要な機能構成を示すブロック図である。図3を参照するに、ビデオ編集システム200は機能構成としては編集部13と符号化部11とを含む。符号化部11は、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、および、切換位置検出部18を含む。編集部13、データ割振部14、ソフトウェア・エンコーダ152、合成部16、出力部17、および、切換位置検出部18は、図1のビデオ編集システム200のCPU10にプログラムを実行させることによって実現される。
編集部13は、ユーザの操作に従い、編集対象のAVデータを選択して、それに対する編集情報を作成する。ここで、編集情報とは、編集対象のAVデータから一連のAVデータ・ストリームを編集する処理の内容を規定する情報である。編集情報は、例えば、そのAVデータ・ストリームの各部分を構成する素材データの一部または全体を参照する情報、すなわちクリップを含む。編集情報は更に、クリップごとに、その参照先の素材データを含むファイルの識別情報と形式、静止画や動画などの素材データの種類、映像サイズ、アスペクト比、フレームレート、および/または、素材データの一部または全体の、時間軸上、すなわちタイムライン上での開始位置と終了位置との各タイムコードを含む。編集情報はその他に、クリップごとに、その参照先の素材データに対する、復号処理やエフェクト処理などの編集処理の内容を規定する情報を含む。ここで、エフェクト処理の種類には、例えば、各クリップに対応する映像の色や明るさの調整、各クリップに対応する映像全体に対する特殊効果、および、複数のクリップ間での映像の合成などが含まれる。
編集部13は更に、編集情報に基づき、選択されたAVデータを読み出してそれに対して編集処理を行い、一連のAVデータ・ストリームとして出力する。
具体的には、編集部13はまず、DVD102、HDD30A、またはHDD30Bなどのリソースに記憶されたファイルの一覧を、ユーザ・インタフェース60に含まれるディスプレイ63に表示する。それらのファイルは、映像データ、音声データ、静止画、またはテキストデータなどを含む。ユーザはマウス61やキーボード62を操作して、その一覧の中から、編集対象のデータ、すなわち素材データを含むファイルを選択する。編集部13はユーザによるファイルの選択を受け付け、選択されたファイルに対応するクリップをディスプレイ63に表示する。
図4は編集ウィンドウEWの一例である。編集部13は、ディスプレイ63に編集ウィンドウEWを表示してユーザから編集操作を受け付ける。図4を参照するに、編集ウィンドウEWは例えば、素材ウィンドウBW、タイムラインウィンドウTW、および、プレビューウィンドウPWを含む。
編集部13は素材ウィンドウBWに、選択された編集対象のファイルに対応するクリップのアイコンIC1を表示する。
編集部13はタイムラインウィンドウTWに複数のトラックTRを表示し、各トラックTR上へのクリップCL1〜CL8の配置を受け付ける。図4の例では各トラックTRは画面の水平方向に延びている細長い帯状領域である。各トラックTRはタイムライン上での位置情報を示す。図4の例では、各トラックTRの上を画面の水平方向に左から右へ進むほどタイムライン上の位置が進むように、各トラックTR上の水平方向での位置がタイムライン上の位置に対応づけられている。編集部13は例えばユーザによるマウス61の操作を通して、素材ウィンドウBWから各トラックTR上へのクリップCL1〜CL8の配置を受け付ける。
編集部13はまた、タイムラインウィンドウTWにタイムラインカーソルTLCと時間軸目盛りTLSとを表示してもよい。図4の例ではタイムラインカーソルTLCは、時間軸目盛りTLSから画面の垂直方向に延びて各トラックTRと垂直に交差している直線である。タイムラインカーソルTLCはタイムラインウィンドウTWの中を水平方向に移動可能である。タイムラインカーソルTLCの端が指す時間軸目盛りTLSの値は、タイムラインカーソルTLCと各トラックTRとの交差点のタイムライン上での位置を表す。
編集部13は、各トラックTR上に配置されるクリップCL1〜CL8のタイムライン上での開始位置であるインポイントIPと終了位置であるアウトポイントOPとの設定、および、各トラックTR上に配置された後でのクリップCL1〜CL8のインポイントIPとアウトポイントOPとの変更を受け付ける。
編集部13は更に、各トラックTR上に配置された各クリップCL1〜CL8について、エフェクト処理の設定をユーザから受け付けることができる。ユーザは例えば、各クリップCL1〜CL8に対応する映像の色や明るさの調整、各クリップCL1〜CL8に対応する映像全体に対する特殊効果の設定、異なるトラックTRに並列に配置された第3クリップCL3と第4クリップCL4との間での映像の合成などを、編集部13に対して指定することができる。
編集部13はプレビューウィンドウPWに、タイムラインカーソルTLCの示すタイムライン上の位置に配置されたクリップに対応する映像を表示する。図4の例では、タイムラインカーソルTLCの示す、第6クリップCL6内の位置に対応する映像D1と、第7クリップCL7内の位置に対応する映像D2とが、プレビューウィンドウPWに表示される。編集部13はまた、タイムラインウィンドウTWに配置されたクリップCL1〜CL8のうち、指定された範囲に対応する動画像をプレビューウィンドウPWに表示する。ユーザは、プレビューウィンドウPWに表示された映像から、編集部13によって受け付けられた編集処理の結果を確認できる。
編集部13は、タイムラインウィンドウTW内のトラックTR上でのクリップCL1〜CL8の配置、および、各クリップCL1〜CL8に設定されたエフェクト処理に基づいて、編集される一連のAVデータ・ストリームに関する編集情報を出力する。編集部13は更に、その編集情報に従い、各クリップCL1〜CL8が参照するAVデータをタイムライン上の順番で連結して一連のAVデータ・ストリームとして出力する。編集部13は、そのAVデータ・ストリームを符号化対象のAVデータとしてメモリ部20内の入力バッファ領域BIに書き込み、その書き込みをデータ割振部14に通知する。
図3に戻り、データ割振部14は、編集部13によってメモリ部20内の入力バッファ領域BIに書き込まれたAVデータをハードウェア・エンコーダ151とソフトウェア・エンコーダ152とに割り振る。データ割振部14は、切換位置検出部18から検出信号を受けるごとに、それらのAVデータの割り振り先を両エンコーダ151、152の一方から他方に切り換える。
具体的には、データ割振部14はまず、メモリ部20内に、エンコーダ151、152ごとに、符号化されたAVデータを書き込むための出力バッファ領域BO1、BO2を確保する。
データ割振部14は次に、入力バッファ領域BIに符号化対象のデータ単位が一つ、例えばフレームが一枚書き込まれるごとに、そのデータ単位からタイムコードを読み取って切換位置検出部18に渡す。そのタイムコードの出力に応じて切換位置検出部18から検出信号が返された場合、データ割振部14はそのデータ単位の割り振り先を、直前のデータ単位の割り振り先とは別のエンコーダに切り換える。一方、検出信号が返されなかった場合、データ割振部14はそのデータ単位の割り振り先を、直前のデータ単位の割り振り先と同じエンコーダに維持する。
データ割振部14は続いて、割り振り先がハードウェア・エンコーダ151であるデータ単位を順番にハードウェア・エンコーダ151のフレーム・バッファに転送する。データ割振部14は更に、転送された各データ単位に第1出力バッファ領域BO1内のアドレスを対応させて、ハードウェア・エンコーダ151に符号化後の書き込み先として指定する。ハードウェア・エンコーダ151は、フレーム・バッファ内のデータ単位を順番に符号化して、指定された第1出力バッファ領域BO1内のアドレスに書き込む。
一方、データ割振部14は、割り振り先がソフトウェア・エンコーダ152であるデータ単位の入力バッファ領域BI内のアドレスを順番にソフトウェア・エンコーダ152に渡す。データ割振部14は更に、それら入力バッファ領域BI内の各アドレスに第2出力バッファ領域BO2内のアドレスを対応させて、ソフトウェア・エンコーダ152に符号化後の書き込み先として指定する。ソフトウェア・エンコーダ152は、データ割振部14から受け取った入力バッファ領域BI内のアドレスのデータ単位を順番に符号化して、指定された第2出力バッファ領域BO2内のアドレスに書き込む。
また、データ割振部14は、両エンコーダ151、152に割り振られたデータ単位に順番に通し番号、例えばフレーム番号を振って、各番号のデータ単位を符号化した後の書き込み先として各エンコーダ151、152に指定されたアドレスと共に、合成部16に渡す。
なお、ハードウェア・エンコーダが2台以上存在し、それらが並列に符号化処理を行う場合、データ割振部14は符号化対象のAVデータを、それらのハードウェア・エンコーダの間でも割り振る。
ハードウェア・エンコーダ151は、図1に示されているハードウェア・エンコーダ80のデバイスドライバである。ハードウェア・エンコーダ151は、データ割振部14によってメモリ部20内の入力バッファ領域BIからフレーム・バッファに転送された符号化対象のAVデータを順番に符号化する。その符号化方式は編集部13によって設定される。ハードウェア・エンコーダ151はAVデータの各データ単位を、それに含まれている情報に基づいて符号化する。例えば、符号化方式がイントラフレーム方式である場合は符号化のデータ単位は1フレームであり、符号化方式がクローズドGOP方式である場合は符号化のデータ単位は1GOPである。ハードウェア・エンコーダ151は、符号化されたAVデータを、データ割振部14によって指定された第1出力バッファ領域BO1内のアドレスに転送する。ハードウェア・エンコーダ151は更に、符号化されたAVデータを第1出力バッファ領域BO1に転送するごとに、その転送先のアドレスを合成部16に通知する。
ソフトウェア・エンコーダ152はCPU10によって実行される符号化処理モジュールであり、メモリ部20内の入力バッファ領域BIに記憶された符号化対象のAVデータを、データ割振部14から指定されたアドレス順に符号化する。ソフトウェア・エンコーダ152はハードウェア・エンコーダ151と並列に符号化処理を実行する。ソフトウェア・エンコーダ152はハードウェア・エンコーダ151と同様、各データ単位を、それに含まれている情報に基づいて符号化する。
ソフトウェア・エンコーダ152のデータ単位はハードウェア・エンコーダ151のデータ単位と共通である。例えば、ハードウェア・エンコーダ151による符号化のデータ単位が1フレームであればソフトウェア・エンコーダ152による符号化のデータ単位も1フレームであり、ハードウェア・エンコーダ151による符号化のデータ単位が1GOPであれば、ソフトウェア・エンコーダ152による符号化のデータ単位も1GOPである。
ソフトウェア・エンコーダ152の符号化方式はハードウェア・エンコーダ151の符号化方式と共通である。例えば、ハードウェア・エンコーダ151による符号化方式がイントラフレーム方式であればソフトウェア・エンコーダ152による符号化方式もイントラフレーム方式であり、ハードウェア・エンコーダ151による符号化方式がクローズドGOP方式であればソフトウェア・エンコーダ152による符号化方式もクローズドGOP方式である。
ソフトウェア・エンコーダ152は、符号化されたAVデータを、データ割振部14によって指定された第2出力バッファ領域BO2内のアドレスに書き込む。ソフトウェア・エンコーダ152は更に、符号化されたAVデータを第2出力バッファ領域BO2に書き込むごとに、その書き込み先のアドレスを合成部16に通知する。
合成部16は、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152によってそれぞれ符号化されたデータ単位を、データ割振部14によって振られた番号順に配列し、1本の符号化されたAVデータ・ストリームに合成する。具体的には、合成部16はまず、データ割振部14から受け取ったアドレスの中から、次に合成されるべきデータ単位の番号に対応するアドレスを特定する。合成部16は次に、その特定されたアドレスと同じアドレスがいずれかのエンコーダ151、152から通知されたとき、符号化されたデータ単位をそのアドレスから読み出し、それ以前に読み出されていた他のデータ単位の配列の末尾に合成する。こうして、合成された一連の符号化されたデータ単位の順序は、編集情報の示すタイムライン方向での順序に一致する。更に合成部16は、合成されたAVデータ・ストリームを出力部17に出力する。
なお、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152が符号化方式としてクローズドGOP方式を利用して、AVデータをGOP単位で符号化する場合、合成部16は、データ割振部14から受け取った番号に加え、符号化されたAVデータの含むGOPヘッダなどの情報に基づいて、符号化されたAVデータ・ストリームを配列することもできる。また、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152によって符号化されたデータ単位は互いに予測可能ではないことが、合成部16の処理が容易になる点で好ましい。
出力部17は、合成されたAVデータ・ストリームを所定のファイル形式または伝送形式に整形する。出力部17は、そのAVデータ・ストリームに、符号化されたAVデータの復号に必要な情報やパラメータ、その他規定された情報を加え、それらのデータ全体を規定された形式に整える。出力部17によって利用されるファイル形式または伝送形式は編集部13によって設定される。出力部17は、内部バス90を介して任意の記録媒体、例えば、HDD30A、HDD30B、または、ドライブ40A若しくはドライブ40Bに装着されたDVD102などに、合成されたAVデータ・ストリームを書き込む。出力部17は、合成されたAVデータ・ストリームを、ネットワークインタフェースを介して接続されたデータベースや情報端末に送信することもできる。出力部17は、合成されたAVデータ・ストリームをAVユニット70や入出力インタフェース50から外部機器に出力することもできる。
切換位置検出部18は、編集部13によって編集されるAVデータにおける割り振り先の切換位置を、そのAVデータに関する編集情報から検出する。具体的には、切換位置検出部18はまず、編集部13から編集情報を受け取る。切換位置検出部18は次に、その編集情報をタイムライン方向の順に調べて、切換位置をタイムライン方向の順番に検出し、各切換位置を示すタイムコードを記憶する。
ここで、割り振り先の切換位置とは、編集部13によって編集されたAVデータをデータ割振部14が両エンコーダ151、152に割り振るとき、そのAVデータの割り振り先を両エンコーダ151、152の一方から他方に切り換える、そのAVデータ内での位置をいう。切換位置検出部18は、編集情報に基づき、そのAVデータにおいて、(A)「一つのシーンが別のシーンに切り換わる位置」、および、(B)「編集処理の種類が所定のパターンで変更される位置」の少なくともいずれかを切換位置として検出する。
(A)「一つのシーンが別のシーンに切り替わる位置」には、タイムライン上に並列に配置されたクリップが一斉に終了して別のクリップに切り替わる位置が含まれる。そのような位置には、例えば図4のタイムラインウィンドウTWの中に示されている位置SWPが含まれる。その位置SWPでは、タイムライン上に並列に配置された第3クリップCL3と第4クリップCL4とが共に終了すると同時に、第5クリップCL5が始まる。その位置SWPのようなクリップ間の境界が切換位置として検出され得る。なお、複数のクリップがタイムライン上に一列に配置された区間では、二つの連続するクリップ間の境界が切換位置として検出され得る。
(B)「編集処理の種類が所定のパターンで変更される位置」には、素材データの復号処理やエフェクト処理の種類など、編集処理の種類が所定のパターンで切り替わるクリップ間の境界が含まれる。ここで、その所定のパターンは次のように決定される。ハードウェア・エンコーダ151とソフトウェア・エンコーダ152とでは一般に、符号化処理に違いがある。従って、二つの連続するクリップのそれぞれに対応するAVデータが異なるエンコーダで符号化された場合、その符号化されたAVデータから復号されて再構成された映像では、それらのクリップ間の境界に相当する位置で圧縮歪みの見え方、すなわち画質が多少なりとも変化し得る。その画質の変化が、編集処理の種類の変化によって視聴者に感知され難くなる場合、その編集処理の種類の変化パターンが上記の所定のパターンとして決定される。
前記(A)、(B)のいずれの位置に相当するクリップ間の境界でも、その前後では映像の変化が大きいので、その位置でハードウェア・エンコーダ151の符号化処理とソフトウェア・エンコーダ152の符号化処理とを切り換えることによって画質が多少変化したとしても、その画質の変化は視聴者には感知され難い。従って、それらの境界のいずれかが切換位置であれば、符号化されたAVデータから復号されて再構成された映像において、その切換位置の前後で画質が多少なりとも変化したとしても、その画質の変化が視聴者には感知され難くなる。
編集部13からメモリ部20に符号化対象のデータ単位が一つ、例えばフレームが一枚書き込まれるごとに、データ割振部14はそのデータ単位からタイムコードを読み取って切換位置検出部18に渡す。切換位置検出部18はそのタイムコードを、各切換位置のタイムコードと比較する。データ割振部14からのタイムコードが、いずれかの切換位置のタイムコードに一致したとき、切換位置検出部18は検出信号をデータ割振部14に出力する。データ割振部14はその検出信号に応じて、当該データ単位以降のAVデータの割り振り先を、直前のデータ単位が割り振られたエンコーダとは別のエンコーダに切り換える。
図5は、実施形態1に係るAVデータの割り振り処理のフローチャートである。以下、図5を参照しながら、割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。
割り振り処理は、符号化対象のAVデータに関する編集情報を使用して行われ、例えば、編集部13によって、その編集情報が作成されたときに開始される。
最初に、ステップS1では、切換位置検出部18が、符号化対象のAVデータに関する編集情報から割り振り先の切換位置を検出し、検出された切換位置のタイムコードT(sw)を記憶する。ここで、それらの切換位置およびタイムコードT(sw)に対しては通し番号sw=1、2、3、…、がタイムライン方向の順に振られている。なお、切換位置の検出処理の詳細については後述する。
次いで、ステップS2では、切換位置検出部18は検出対象の切換位置の番号swを1に初期化する。一方、データ割振部14は、符号化対象のAVデータの先頭フレームから最初の切換位置T(1)までの区間の割り振り先を、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152とのいずれかに決める。
次いで、ステップS3では、編集部13が、編集されたAVデータの各フレームを先頭から順に、メモリ部20の入力バッファ領域BIに書き込む。
次いで、ステップS4では、編集部13が入力バッファ領域BIに符号化対象の1フレームを書き込むごとに、データ割振部14はそのフレームからタイムコードTcを読み取って切換位置検出部18に渡す。
次いで、ステップS5では、データ割振部14は、タイムコードTcのフレームが符号化対象のAVデータの後尾のフレームであるか否かを判定する。そのフレームが後尾のフレームでない場合(ステップS5で“No”の場合)、処理がステップS6に進む。一方、そのフレームが後尾のフレームである場合(ステップS5で“Yes”の場合)、データ割振部14はそのフレームを、その時点で割り振り先として決められているエンコーダに割り振り、その後、処理が終了する。
次いで、ステップS6では、切換位置検出部18は、データ割振部14から受け取ったタイムコードTcをsw番目の切換位置のタイムコードT(sw)と比較する。データ割振部14からのタイムコードTcがsw番目の切換位置のタイムコードT(sw)に一致した場合(ステップS6で“Yes”の場合)、処理がステップS7に進む。タイムコードTcがsw番目の切換位置のタイムコードT(sw)に一致しない場合(ステップS6で“No”の場合)、処理がステップS3に戻る。その場合、データ割振部14はタイムコードTcのフレームを、その時点で割り振り先として決められているエンコーダに割り振る。
次いで、ステップS7では、切換位置検出部18は検出信号を出力する。データ割振部14はその検出信号に応じて、割り振り先を別のエンコーダに切り換える。それにより、データ割振部14はタイムコードTc以降のフレームを、タイムコードTcの直前のフレームとは別のエンコーダに割り振る。
次いで、ステップS8では、切換位置検出部18は切換位置の番号swを“1”だけ増やして、次の切換位置T(sw)を検出対象に設定する。そして、処理はステップS3から繰り返される。
図6は、実施形態1に係る切換位置の検出処理のフローチャートである。以下、図6を参照しながら、切換位置の検出処理の詳細を説明する。
最初に、ステップS111では、切換位置検出部18は、編集部13から編集情報を取得する。切換位置検出部18は更に、その編集情報を、先頭のクリップに関するものからタイムライン方向の順に調べる。
次いで、ステップS112では、切換位置検出部18が、まず、クリップ間の境界の位置、および、クリップ間での編集処理の種類の変更パターンの少なくともいずれかを調べる。タイムライン上に並列に配置されたクリップが一斉に終了して別のクリップに切り替わっている場合、および/または、編集処理の種類の変更パターンが所定のパターンである場合、切換位置検出部18は、対応するクリップ間の境界を割り振り先の切換位置として検出する。
次いで、ステップS113では、切換位置検出部18は、編集情報をAVデータの後尾のフレームまで調べたか否かを判定する。後尾のフレームまでは調べていない場合(ステップS113で“No”の場合)、処理がステップS112に戻り、後尾のフレームまで調べ終えた場合(ステップS113で“Yes”の場合)、処理が、図5に示されているステップS2に進む。
実施形態1に係る符号化装置100は、切換位置検出部18により、符号化対象のAVデータにおける割り振り先の切換位置を、そのAVデータに関する編集情報から検出する。編集部13が、編集されたAVデータをメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14が各切換位置でそのAVデータの割り振り先を、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との一方から他方に切り換える。それにより、両エンコーダ151、152が並列して、AVデータの符号化処理を行う。切換位置は、一つのシーンが別のシーンに切り替わる位置、および、編集処理の種類が所定のパターンで変更される位置の少なくともいずれかである。これらの位置では、映像の変化が大きいので、ハードウェア・エンコーダ151の符号化処理とソフトウェア・エンコーダ152の符号化処理とを切り換えても、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、符号化装置100は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、符号化装置100は、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、同じ編集処理が継続されているAVデータの部分を同じエンコーダで符号化するので、その画質を均一にできる。
なお、編集部13は、編集されるAVデータの一部の範囲をユーザに指定させ、その指定された範囲のAVデータを両エンコーダ151、152に割り振る頻度の許容度をユーザに設定させてもよい。ここで、その頻度の許容度は、指定されたAVデータの範囲から検出されてもよい切換位置の個数の上限値、または、その範囲のタイムライン方向の長さに対する切換位置の間隔の比の下限値を表す。その頻度の許容度が高い範囲では、切換位置の個数の上限値が大きく設定され、または、その範囲のタイムライン方向の長さに対する切換位置の間隔の比の下限値が小さく設定される。従って、データ割振部14がAVデータの割り振り先を切り換える頻度が高くなり得るので、両エンコーダ151、152の並列処理によって符号化処理全体が高速になり得る。逆に、その頻度の許容度が低い範囲では、切換位置の個数の上限値が小さく設定され、または、その範囲のタイムライン方向の長さに対する切換位置の間隔の比の下限値が大きく設定される。従って、データ割振部14がAVデータの割り振り先を切り換える頻度が抑えられるので、画質の均一性が高くなり得る。
具体的には例えば、編集部13は、図4のタイムラインウィンドウTW内に表示されたクリップCL1〜CL8の一部または全体をユーザにタイムラインカーソルTLC等で指定させ、その指定された範囲の映像をプレビューウィンドウPWに表示する。ユーザは、プレビューウィンドウPWに表示された映像から、両エンコーダ151、152へのAVデータの割り振りがその映像の画質に与える影響を推測しながら、上記の範囲を両エンコーダ151、152に割り振る頻度の許容度を編集部13に入力する。ユーザは、両エンコーダ151、152間での符号化処理の違いに起因する画質の変化が目立ちやすいAVデータの範囲については頻度の許容度を低く設定し、逆に、画質の変化が目立ちにくい範囲については頻度の許容度を高く設定する。例えば図4では、第1クリップCL1から第3クリップCL3までの範囲は第5クリップCL5以降の範囲よりも、両エンコーダ151、152に割り振る頻度の許容度が低く設定されてもよい。
編集部13は、編集されるAVデータの各部分についてユーザによって設定された、両エンコーダ151、152に割り振る頻度の許容度を、編集情報の一部として切換位置検出部18に通知する。切換位置検出部18は、編集部13から編集情報を受け取ったときにまず、両エンコーダ151、152にAVデータを割り振る頻度の許容度をその編集情報から読み出し、その許容度が共通するAVデータの範囲ごとに切換位置の検出基準を決定する。その検出基準は、例えば、その範囲から検出されてもよい切換位置の個数の上限値、または、その範囲のタイムライン方向の長さに対する切換位置の間隔の比の下限値を表す。切換位置検出部18は続いて、その検出基準に基づいて、編集情報から切換位置を検出する。その結果、両エンコーダ151、152に割り振る頻度の許容度が共通するAVデータの範囲ごとに、切換位置の個数の上限値または切換位置の間隔の下限値が調節される。
切換位置検出部18は更に、検出された切換位置の間隔を調べ、いずれかの間隔が所定の閾値を超えているAVデータの区間について、切換位置の検出基準を緩めて、編集情報からの切換位置の検出を繰り返してもよい。例えば、隣り合う二つの切換位置で区切られた区間のデータ量がハードウェア・エンコーダ151のフレーム・バッファの容量に等しい場合、それらの切換位置の間隔が上記の閾値として設定される。その場合、切換位置検出部18は、検出された切換位置の間隔が全て閾値以下に収まるまで、検出基準の変更と、その検出基準による切換位置の検出とを繰り返す。それにより、切換位置で区切られたAVデータの各区間のデータ量がハードウェア・エンコーダ151のフレーム・バッファの容量以下に収まるので、両エンコーダ151、152の並列処理によって符号化処理全体が高速になり得る。
以下に説明する本発明の実施形態2〜11の符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。また、ビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素には同様の符号を付し、その詳細については実施形態1についての説明を援用する。
《実施形態2》
図7は、本発明の実施形態2による編集部13と符号化部111とのブロック図である。図7を参照するに、符号化部111は、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、および切換位置検出部181を含む。符号化部111は、切換位置検出部181を除き、図3に示されている要素と同様な要素を含む。図7ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3に示されている要素についての説明を援用する。更に、切換位置検出部181の動作は、図3に示されている切換位置検出部18の動作と同様な部分を含む。従って、以下、切換位置検出部181については、図3に示されている切換位置検出部18とは異なる部分を説明し、同様な部分の詳細については、図3に示されている切換位置検出部18についての説明を援用する。
切換位置検出部181はデータ分析部182を含み、それを利用して、編集部13によって編集されたAVデータそのものから割り振り先の切換位置を検出し、各切換位置を示すタイムコードを記憶する。具体的には、切換位置検出部181は、まず、編集部13から編集された映像データを受け取り、データ分析部182によってその映像データそのものを分析し、その中から切換位置を検出する。切換位置検出部181が、編集部13によって編集されたAVデータの全体から切換位置を検出し終えた後、編集部13は、編集されたAVデータをその先頭から順に、メモリ部20の入力バッファ領域BIに書き込む。その後、切換位置検出部181は実施形態1に係る切換位置検出部18と同様に、データ割振部14から受け取ったタイムコードを各切換位置のタイムコードと比較し、データ割振部14からのタイムコードがいずれかの切換位置のタイムコードに一致したとき、検出信号をデータ割振部14に出力する。
データ分析部182は、映像データの中から、(C)「前後のデータ単位間でのシーンの変化量が所定の閾値より大きい位置」、および、(D)「前後のデータ単位の両方で情報量が所定の閾値より小さい位置」の少なくともいずれかを割り振り先の切換位置として検出する。ここで、シーンの変化量は、例えば、画面全体での映像データの変化量、色成分の変化量、画面全体の動きの変化量、および、画面の中の特定のオブジェクトの動きの変化量の少なくともいずれかである。一方、情報量は、例えば、DCTによって各データ単位から得られる高域周波数の変換係数の和または平均値、または、ソフトウェア・エンコーダ152によって推定された符号化後のビットレートである。
データ分析部182は、映像データの中から(C)「前後のデータ単位間でのシーンの変化量が所定の閾値より大きい位置」を検出する場合、まず、二つの連続するデータ単位ごとに、例えば二枚の連続するフレームごとに、それらの間の差分を算出する。その差分は、フレーム全体について算出されても、特定のブロックについて算出されてもよい。データ分析部181は次に、算出された差分からシーンの変化量を評価する。
データ分析部182は更に、評価されたシーンの変化量を所定の閾値と比較し、その変化量がその閾値を超えた場合、その変化量が算出されたデータ単位間の境界を切換位置として検出する。ここで、その閾値は次のように決定される。二つの連続するデータ単位が異なるエンコーダで符号化された場合、それらの符号化されたデータ単位から復号されて再構成された映像における画質の変化が、それらのデータ単位間でのシーンの変化によって視聴者に感知され難くなるとき、そのシーンの変化量が上記の閾値として決定される。
従って、前記(C)の位置が切換位置であれば、両エンコーダ151、152の符号化処理の違いによって、符号化されたAVデータから復号されて再構成された映像における画質が多少なりとも変化したとしても、その映像からはその画質の変化が視聴者には感知され難くなる。
データ分析部182は、映像データの中から(D)「前後のデータ単位の両方で、DCTによる高域周波数の変換係数の和または平均値が所定の閾値より小さい位置」を検出する場合、まず、各データ単位、例えば各フレームからいくつかのブロックを抽出し、各ブロックの輝度成分と色差成分とのいずれか、または全部についてDCTを行う。ここで、DCTによって一枚のフレームから得られる変換係数のうち、高域周波数の変換係数の多くが0である場合はよく生じる。一般的な映像データの圧縮方式ではそのような傾向が考慮され、高域周波数の変換係数よりも低域周波数の変換係数に対して量子化のビット数が多く割り当てられることで、符号化後のデータ量が抑えられている。このように、一般的な映像データの圧縮方式では、高域周波数の変換係数は粗く量子化され、または、捨てられる。従って、一般に、高域周波数成分を多く含むフレームでは圧縮歪みが目立ちやすいと考えられる。それ故、データ分析部182は、一枚のフレームから抽出された各ブロックにおける高域周波数の変換係数の分布を評価することによって、当該フレームで圧縮歪みが目立ちやすいか否かを判定できる。データ分析部182は更に、直前のフレームと当該フレームとの両方で圧縮歪みが目立ちにくいと判定した場合、当該フレームを切換位置として検出する。
データ分析部182は、各ブロックにおける高域周波数の変換係数の分布を、次のように評価する。データ分析部182は、まず、各ブロックの変換係数から評価対象の高域周波数の変換係数を少なくとも一つ選択し、それらの和または平均値を所定の閾値と比較する。ここで、その閾値としては、圧縮歪みが実際に目立ちにくい一般的な映像からDCTによって得られる高域周波数の変換係数の和または平均値が利用される。評価対象の高域周波数の変換係数の和または平均値がその閾値より小さい場合、データ分析部182は、当該ブロックでは高域周波数成分が少ない、すなわち、圧縮歪みが目立ちにくいと判定する。データ分析部182は、一枚のフレームから抽出されたブロックの全てを同様に評価する。データ分析部182は、それらのブロックの全て、または、所定数以上で圧縮歪みが目立ちにくいと判定した場合、当該フレームでは圧縮歪みが目立ちにくいと判定する。
データ分析部182は、映像データの中から(D)「前後のデータ単位の両方で、ソフトウェア・エンコーダ152によって推定された符号化後のビットレートが所定の閾値より小さい位置」を検出する場合、まず、符号化対象の各データ単位、例えば各フレームからいくつかのブロックを抽出する。データ分析部182は次に、ソフトウェア・エンコーダ152に、抽出された各ブロックに対する符号化処理を、エントロピー符号化などの可逆符号化ステップの前まで行わせて、符号化データのビットレートを推定させる。データ分析部182は続いて、推定されたビットレートを所定の閾値と比較する。ここで、その閾値としては、ソフトウェア・エンコーダ152による符号化処理における目標ビットレートが利用される。抽出されたブロックのいずれかについて、推定されたビットレートが目標ビットレートを超えた場合、データ分析部182は、そのブロックを抽出したフレームでは圧縮歪みが目立ちやすいと判定する。データ分析部182は更に、直前のフレームと当該フレームとの両方で圧縮歪みが目立ちにくいと判定した場合、当該フレームを切換位置として検出する。
映像データの圧縮方式には、直交変換にDCTを使用しないものがある。例えばJPEG2000では、DCTに代えてウェーブレット変換が直交変換に利用される。また、圧縮歪みの見え方は圧縮方式によって異なり、同じ圧縮方式でも、圧縮パラメータの選び方や目標ビットレートによって異なる。各エンコーダ151、152が多様な圧縮方式、特に、直交変換にDCTを利用しない圧縮方式を利用する場合でも、データ分析部182は上記のようにソフトウェア・エンコーダ152に符号化後のビットレートを推定させることにより、各エンコーダ151、152が実際に利用する圧縮方式に合わせて、AVデータの中から圧縮歪みの目立ちにくい位置を検出できる。
前記(D)の位置の前後では、例えば真っ黒な画面が連続するシーンの途中のように、それらのデータ単位のいずれでも、圧縮歪みがたとえ存在したとしても目立ちにくい。従って、前記(D)の位置が切換位置であれば、両エンコーダ151、152の符号化処理の違いによって、符号化されたAVデータから復号されて再構成された映像における画質が多少なりとも変化したとしても、その映像からはその画質の変化が視聴者に感知され難くなる。前記(D)の位置が切換位置であれば、更に、複数の切換位置が比較的狭い間隔で検出され、AVデータの符号化処理においてそのAVデータの割り振り先のエンコーダが比較的頻繁に切り換えられたとしても、両エンコーダ151、152の符号化処理の違いに起因する上記映像における画質の変化が、画面のちらつきとして視聴者に感知されることは生じ難くなる。
図8は、実施形態2に係る切換位置の検出処理のフローチャートである。以下、図8を参照しながら、切換位置の検出処理の詳細を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図8に示されている切換位置の検出処理の後に続くAVデータの割り振り処理の各ステップは、図5に示されている実施形態1に係るステップと同様である。それら同様なステップの詳細については、図5についての説明を援用する。
最初に、ステップS121では、切換位置検出部181は、編集部13から編集された映像データを所定数のフレームずつ取得する。
次いで、ステップS122では、データ分析部182が、編集部13から取得された映像データの各フレームを分析し、二枚の連続するフレームの間でのシーンの変化量が所定の閾値よりも大きい位置、および、二枚の連続するフレームの両方で情報量が所定の閾値より小さい位置の少なくともいずれかを切換位置として検出する。
次いで、ステップS123では、切換位置検出部181は、編集部13から取得されたフレームが符号化対象の映像データの後尾のフレームであるか否かを判定する。後尾のフレームではない場合(ステップS123で“No”の場合)、処理がステップS121に戻り、後尾のフレームである場合(ステップS123で“Yes”の場合)、処理が、図5に示されているステップS2に進む。
実施形態2に係る符号化装置は、切換位置検出部181により、符号化対象のAVデータにおける割り振り先の切換位置を、そのAVデータそのものから検出する。編集部13が、編集されたAVデータをメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14が各切換位置でそのAVデータの割り振り先を、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との一方から他方に切り換える。それにより、両エンコーダ151、152が並列して、AVデータの符号化処理を行う。切換位置は、前後のデータ単位の間でのシーンの変化量が所定の閾値よりも大きい位置、および、前後のデータ単位の両方で情報量が所定の閾値より小さい位置の少なくともいずれかである。前後のデータ単位の間でのシーンの変化量が所定の閾値よりも大きい位置では、映像の変化が大きいので、ハードウェア・エンコーダ151の符号化処理とソフトウェア・エンコーダ152の符号化処理とを切り換えても、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。また、前後のデータ単位の両方で情報量が所定の閾値より小さい位置では、AVデータのデータ単位の情報量が少ないため、この位置でハードウェア・エンコーダ151の符号化処理とソフトウェア・エンコーダ152の符号化処理とを切り換えても、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化が現れ難い。そのため、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、実施形態2に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、圧縮歪みの目立ちやすいAVデータの部分を同じエンコーダで符号化するので、その画質を均一にできる。
なお、切換位置検出部181は、データ分析部182によって検出された切換位置の間隔のいずれかが所定の閾値を超えているか否かを調べてもよい。ここで、その閾値としては、例えば、隣り合う二つの切換位置で区切られた区間のデータ量がハードウェア・エンコーダ151のフレーム・バッファの容量に等しい場合における、それらの切換位置の間隔が利用される。切換位置検出部181は更に、切換位置の間隔が所定の閾値を超えたAVデータの区間について、データ分析部182に、シーンの変化量または情報量に対する閾値を変化させながら、切換位置の検出を繰り返させてもよい。その場合、切換位置検出部181は、検出された切換位置の間隔が全て閾値以下に収まるまで、閾値の変更と、その閾値に基づく切換位置の検出とを繰り返す。それにより、切換位置で区切られたAVデータの各区間のデータ量がハードウェア・エンコーダ151のフレーム・バッファの容量以下に収まるので、両エンコーダ151、152の並列処理によって符号化処理全体が高速になり得る。
《実施形態3》
図9は、本発明の実施形態3による編集部13と符号化部112とのブロック図である。図9を参照するに、符号化部112は、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、および切換位置検出部183を含む。符号化部112は、切換位置検出部183を除き、図3、図7に示されている要素と同様な要素を含む。図9ではそれら同様な要素に対し、図3、図7に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3、図7に示されている要素についての説明を援用する。更に、切換位置検出部183の動作は、図3、図7に示されている切換位置検出部18、181の動作と同様な部分を含む。従って、以下、切換位置検出部183については、図3、図7に示されている切換位置検出部18、181とは異なる部分を説明し、同様な部分の詳細については、図3、図7に示されている切換位置検出部18、181についての説明を援用する。
切換位置検出部183は、まず、編集部13から編集情報を受け取り、その編集情報から割り振り先の切換位置を検出し、各切換位置を示すタイムコードを記憶する。ここで、その切換位置は、実施形態1に係る切換位置と同様に、(A)「一つのシーンが別のシーンに切り替わる位置」、および、(B)「編集処理の種類が所定のパターンで変更される位置」の少なくともいずれかである。
切換位置検出部183は更に、検出された切換位置の間隔を調べる。いずれかの間隔が所定の閾値を超えている場合、例えば、その間隔で隣り合う二つの切換位置で区切られた区間のデータ量がハードウェア・エンコーダ151のフレーム・バッファの容量に比べて大きい場合、切換位置検出部183はデータ分析部182によってその区間の映像データそのものを分析し、その区間の中から新たな切換位置を更に検出する。ここで、その切換位置は、実施形態2に係る切換位置と同様に、(C)「前後のデータ単位間でのシーンの変化量が所定の閾値より大きい位置」、および、(D)「前後のデータ単位の両方で情報量が所定の閾値より小さい位置」の少なくともいずれかである。
切換位置検出部183は、検出された切換位置の間隔が全て閾値以下に収まるまで、その閾値を超えた間隔の区間に対してデータ分析部182による切換位置の検出処理を繰り返す。
図10は、実施形態3に係る切換位置の検出処理のフローチャートである。以下、図10を参照しながら、切換位置の検出処理の詳細を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図10に示されている切換位置の検出処理の後に続くAVデータの割り振り処理の各ステップは、図5に示されている実施形態1に係るステップと同様である。それら同様なステップの詳細については、図5についての説明を援用する。
最初に、ステップS131では、切換位置検出部183は、編集部13から編集情報を取得する。切換位置検出部183は更に、その編集情報を、先頭のクリップに関するものからタイムライン方向の順に調べる。
次いで、ステップS132では、切換位置検出部183が、まず、クリップ間の境界の位置、および、クリップ間での編集処理の種類の変更パターンの少なくともいずれかを調べる。タイムライン上に並列に配置されたクリップが一斉に終了して別のクリップに切り替わっている場合、および/または、編集処理の種類の変更パターンが所定のパターンである場合、切換位置検出部183は、対応するクリップ間の境界を割り振り先の切換位置として検出する。
次いで、ステップS133では、切換位置検出部183は、新たな切換位置を検出するごとに、その切換位置と直前の切換位置との間隔を所定の閾値と比較する。その間隔がその閾値を超えた場合(ステップS133で“Yes”の場合)、処理がステップS134に進み、その閾値以下である場合(ステップS133で“No”の場合)、処理がステップS135に進む。
ステップS134では、データ分析部182が、新たな切換位置とその直前の切換位置とで区切られた区間の映像データを編集部13から取得して分析する。データ分析部182がその区間の映像データの中から、二枚の連続するフレームの間でのシーンの変化量が所定の閾値よりも大きい位置、および、二枚の連続するフレームの両方で情報量が所定の閾値より小さい位置の少なくともいずれかを検出した場合、データ分析部182はそれらのフレーム間の境界に新たな切換位置を検出する。新たな切換位置が検出された場合、処理はステップS133に戻る。
一方、ステップS135では、切換位置検出部183は、編集情報をAVデータの後尾のフレームまで調べたか否かを判定する。後尾のフレームまでは調べていない場合(ステップS135で“No”の場合)、処理がステップS132に戻り、後尾のフレームまで調べ終えた場合(ステップS135で“Yes”の場合)、処理が、図5に示されているステップS2に進む。
実施形態3に係る符号化装置は、実施形態1に係る符号化装置と同様に、編集情報から割り振り先の切換位置を検出する。更に、検出された切換位置の間隔のいずれかが所定の閾値を超えた場合、この符号化装置は、実施形態2に係る符号化装置と同様に、その間隔の切換位置で区切られた区間のAVデータそのものから新たな切換位置を検出する。編集部13が、編集されたAVデータをメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14が各切換位置でそのAVデータの割り振り先を、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との一方から他方に切り換える。それにより、両エンコーダ151、152が並列して、AVデータの符号化処理を行う。この符号化装置では、実施形態1、2による符号化装置と同様に、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、実施形態3に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、同じ編集処理が継続されているAVデータの部分、または、圧縮歪みの目立ちやすいAVデータの部分を同じエンコーダで符号化するので、その画質を均一にできる。
更に、編集情報から検出された切換位置の間隔のいずれかが所定の閾値を超えた場合、その間隔の切換位置で区切られた区間のAVデータそのものから新たな切換位置が検出される。それにより、切換位置で区切られたAVデータの各区間のデータ量がハードウェア・エンコーダ151のフレーム・バッファの容量以下に収まるので、両エンコーダ151、152の並列処理によって符号化処理全体が高速になり得る。また、実施形態3に係るデータ分析部181は、実施形態2に係るデータ分析部181と比べて、検出対象の映像データの量が一般に少ないので、切換位置の検出処理が高速になる。
《実施形態4》
図11は、本発明の実施形態4による編集部13と符号化部11Aとのブロック図である。図11を参照するに、符号化部11Aは、データ割振部14A、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、切換位置検出部18、および、バッファ21を含む。符号化部11Aは、データ割振部14Aとバッファ21とを除き、図3に示されている要素と同様な要素を含む。図11ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3に示されている要素についての説明を援用する。更に、データ割振部14Aの動作は、図3に示されているデータ割振部14の動作と同様な部分を含む。従って、以下、データ割振部14Aについては、図3に示されているデータ割振部14とは異なる部分を説明し、同様な部分の詳細については、図3に示されているデータ割振部14についての説明を援用する。
図11では、バッファ21は、データ割振部14Aとハードウェア・エンコーダ151との間に配置されている。バッファ21はハードウェア・エンコーダ80のフレーム・バッファ、例えば図2に示されているフレーム・バッファ83の記憶領域を表す。その場合、バッファ21の容量は例えば数フレームである。バッファ21はその他に、メモリ部20内の記憶領域であってもよい。その場合、バッファ21の容量は例えば数十フレームである。
データ割振部14Aは、ハードウェア・エンコーダ151に割り振ったAVデータを逐次、バッファ21に転送する。ハードウェア・エンコーダ151はバッファ21の先頭アドレスから順にAVデータを所定のデータ単位ずつ、例えば1フレームずつ符号化する。
データ割振部14Aは、切換位置検出部18からの検出信号に応じてバッファ21から空き情報を読み出し、その空き情報からバッファ21の空き領域のサイズ、例えば空いているフレーム・バッファの数を確認する。そのサイズが所定の閾値、例えば1フレームを超えている場合、データ割振部14Aは、その検出信号を受けた時点から、新たな検出信号を受ける時点まで、入力バッファ領域BIに書き込まれたAVデータをハードウェア・エンコーダ151に割り振る。すなわち、データ割振部14AはそのAVデータをバッファ21に書き込む。一方、バッファ21の空き領域のサイズが所定の閾値以下、例えば1フレーム以下まで減っていた場合、データ割振部14Aは、その検出信号を受けた時点から、新たな検出信号を受ける時点まで、入力バッファ領域BIに書き込まれたAVデータをソフトウェア・エンコーダ152に割り振る。すなわち、データ割振部14AはそのAVデータをバッファ21には書き込まず、そのAVデータが記憶された入力バッファ領域BI内のアドレスをソフトウェア・エンコーダ152に渡す。以後、バッファ21の空き領域のサイズが閾値を再び超えるまで、データ割振部14Aは符号化対象のAVデータをソフトウェア・エンコーダ152に割り振り続ける。
図12は、図11に示されている符号化部11AによるAVデータの割り振り処理のフローチャートである。以下、図12を参照しながら、その割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図12は、図5に示されているステップと同様なステップを含む。従って、図12ではそれら同様なステップに対して、図5に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図5についての説明を援用する。
例えば、編集部13によって、符号化対象のAVデータに関する編集情報が作成されたときに、以下の処理は開始される。
最初に、ステップS1では、切換位置検出部18が、符号化対象のAVデータに関する編集情報から割り振り先の切換位置を検出し、検出された切換位置を示すタイムコードT(sw)を記憶する。
次いで、ステップS21では、切換位置検出部18は検出対象の切換位置の番号swを1に初期化する。一方、データ割振部14Aは、符号化対象のAVデータの先頭フレームから最初の切換位置T(1)までの区間の割り振り先をハードウェア・エンコーダ151に決める。
次いで、ステップS3では、編集部13が、編集されたAVデータの各フレームを先頭から順に、メモリ部20の入力バッファ領域BIに書き込む。
次いで、ステップS4では、編集部13が入力バッファ領域BIに符号化対象の1フレームを書き込むごとに、データ割振部14AはそのフレームからタイムコードTcを読み取って切換位置検出部18に渡す。
次いで、ステップS5では、データ割振部14Aは、タイムコードTcのフレームが符号化対象のAVデータの後尾のフレームであるか否かを判定する。そのフレームが後尾のフレームでない場合(ステップS5で“No”の場合)、処理がステップS6に進む。一方、そのフレームが後尾のフレームである場合(ステップS5で“Yes”の場合)、データ割振部14Aはそのフレームを、その時点で割り振り先として決められているエンコーダに割り振り、その後、処理が終了する。
次いで、ステップS6では、切換位置検出部18は、データ割振部14Aから受け取ったタイムコードTcをsw番目の切換位置のタイムコードT(sw)と比較する。データ割振部14AからのタイムコードTcがsw番目の切換位置のタイムコードT(sw)に一致した場合(ステップS6で“Yes”の場合)、処理がステップS22に進む。タイムコードTcがsw番目の切換位置のタイムコードT(sw)に一致しない場合(ステップS6で“No”の場合)、処理がステップS3に戻る。その場合、データ割振部14AはタイムコードTcのフレームを、その時点で割り振り先として決められているエンコーダに割り振る。
次いで、ステップS22では、切換位置検出部18は検出信号を出力する。データ割振部14Aはその検出信号に応じてバッファ21から空き情報を読み出し、その空き情報からバッファ21の空き領域のサイズを確認する。そのサイズが所定の閾値を超えている場合(ステップS22で“Yes”の場合)、処理はステップS23に進み、その閾値以下である場合(ステップS22で“No”の場合)、処理はステップS24に進む。
次いで、ステップS23では、データ割振部14Aは、検出信号の示す切換位置から次の切換位置までの区間のAVデータの割り振り先を引き続き、ハードウェア・エンコーダ151に設定する。すなわち、データ割振部14Aは、その区間のAVデータを入力バッファ領域BIからバッファ21に転送する。そして、処理はステップS8に進む。
一方、ステップS24では、データ割振部14Aは、検出信号の示す切換位置から次の切換位置までの区間のAVデータの割り振り先を、ハードウェア・エンコーダ151からソフトウェア・エンコーダ152に切り換える。すなわち、データ割振部14Aは、その区間のAVデータが記憶された入力バッファ領域BI内のアドレスをソフトウェア・エンコーダ152に渡す。そして、処理はステップS8に進む。
次いで、ステップS8では、切換位置検出部18は切換位置の番号swを“1”だけ増やして、次の切換位置T(sw)を検出対象に設定する。そして、処理はステップS3から繰り返される。
実施形態4に係る符号化装置は、実施形態1に係る符号化装置と同様に、切換位置検出部18によって割り振り先の切換位置を、編集情報から検出する。編集部13が、編集されたAVデータをメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14Aがバッファ21の空き領域のサイズに応じて、いずれかの切換位置でそのAVデータの割り振り先を、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との一方から他方に切り換える。それにより、両エンコーダ151、152が並列して、AVデータの符号化処理を行う。この符号化装置では、実施形態1による符号化装置と同様に、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、実施形態4に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、実施形態1に係る符号化装置と同様に、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、同じ編集処理が継続されているAVデータの部分を同じエンコーダで符号化するので、その画質を均一にできる。
実施形態4に係る符号化装置は更に、データ割振部14Aによって符号化対象のAVデータを、まずハードウェア・エンコーダ151に割り振り、割り振られたAVデータをバッファ21に書き込む。バッファ21の空き領域が閾値以下まで減った場合、この符号化装置はデータ割振部14Aによって符号化対象のAVデータを、次の切換位置からソフトウェア・エンコーダ152に割り振る。それにより、ハードウェア・エンコーダ151によるAVデータの符号化処理を継続しつつ、ソフトウェア・エンコーダ152によるAVデータの符号化処理を行うので、この符号化装置は、ハードウェア・エンコーダ151のみにより符号化処理を行う場合よりも高速で符号化処理を行うことが可能となる。
《実施形態5》
図13は、本発明の実施形態5による編集部13Bと符号化部11Bとのブロック図である。図13を参照するに、符号化部11Bは、データ割振部14B、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、および切換位置検出部18Bを含む。符号化部11Bは、データ割振部14Bと切換位置検出部18Bとを除き、図3に示されている要素と同様な要素を含む。図13ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3に示されている要素についての説明を援用する。更に、編集部13B、データ割振部14B、および切換位置検出部18Bの各動作は、図3に示されている編集部13、データ割振部14、および切換位置検出部18の各動作と同様な部分を含む。従って、以下、編集部13B、データ割振部14B、切換位置検出部18Bについては、図3に示されている編集部13、データ割振部14、切換位置検出部18とは異なる部分を説明し、同様な部分の詳細については、図3に示されている編集部13、データ割振部14、切換位置検出部18についての説明を援用する。
図13を参照するに、切換位置検出部18Bは、隣り合う切換位置で区切られたAVデータの区間の長さに基づいて、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152とによって符号化される各区間について、単位時間当たりに各エンコーダ151、152に供給されるべきデータ単位数の割合、例えばフレーム数の比を決定する。切換位置検出部18Bは特にその割合を、二つの連続する区間ごとに決定する。切換位置検出部18Bは、決定された切換位置と割合とを示すデータを区間情報として編集部13Bに渡す。切換位置検出部18Bはまた、検出信号を出力するとき、その検出信号の示す切換位置の前後の区間に対する上記の割合を表すデータをデータ割振部14Bに供給する。
編集部13Bは、切換位置検出部18Bから区間情報を受け取り、その区間情報に基づいて、編集されたAVデータの二つの連続する区間を、それらに対して決定されたデータ単位数の割合で交互に出力する。例えば、データ単位が1フレームであり、二つの連続する区間に対して決定されたフレーム数の比が2:1である場合、編集部13Bは、それら二つの連続する区間のうち、前の区間のフレームを二枚連続して出力するごとに、後の区間のフレームを一枚出力する。前の区間を全て出力し終えたとき、編集部13Bは、後の区間の残りとその次の区間とを、それら二つの区間に対して決定されたデータ単位数の割合で交互に出力する。
データ割振部14Bは、編集部13Bによってメモリ部20内の入力バッファ領域BIに符号化対象のデータ単位が一つ、例えばフレームが一枚書き込まれるごとに、そのデータ単位からタイムコードを読み取って切換位置検出部18Bに渡す。それに応じて切換位置検出部18Bから検出信号と、データ単位数の割合を示すデータとを受け取った場合、データ割振部14Bは、新たな検出信号を受け取るまで、そのデータ単位以降に入力バッファ領域BIに書き込まれるデータ単位を、上記のデータの示す割合で両エンコーダ151、152に交互に割り振る。例えば、データ単位が1フレームであり、上記のデータの示すフレーム数の比が2:1である場合、データ割振部14Bは、検出信号の示す切換位置から順に、二枚のフレームを連続してハードウェア・エンコーダ151に割り振るごとに、一枚のフレームをソフトウェア・エンコーダ152に割り振る。
図14は、図13に示されている符号化部11BによるAVデータの割り振り処理のフローチャートである。以下、図14を参照しながら、その割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図14は、図5に示されているステップと同様なステップを含む。従って、図14ではそれら同様なステップに対して、図5に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図5についての説明を援用する。
例えば、編集部13Bによって、符号化対象のAVデータに関する編集情報が作成されたときに、以下の処理は開始される。
最初に、ステップS1では、切換位置検出部18Bが、符号化対象のAVデータに関する編集情報から割り振り先の切換位置を検出し、検出された切換位置を示すタイムコードT(sw)を記憶する。
次いで、ステップS31では、切換位置検出部18Bが、符号化対象のAVデータの二つの連続する区間ごとに、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152とに単位時間当たりに供給されるべきフレーム数の比を決定する。ここで、切換位置検出部18Bは、そのAVデータの先頭フレームから最初の切換位置T(1)までの最初の区間の割り振り先をハードウェア・エンコーダ151とソフトウェア・エンコーダ152とのいずれかに決める。
次いで、ステップS32では、切換位置検出部18Bは区間情報を編集部13Bに渡し、符号化対象の最初の区間の割り振り先をデータ割振部14Bに知らせる。切換位置検出部18Bは更に、検出対象の切換位置の番号swを1に初期化する。
次いで、ステップS33では、編集部13Bが区間情報に基づき、編集されたAVデータの二つの連続する区間のそれぞれに含まれるフレームを交互に、それら二つの区間に対して決定されたフレーム数の比でメモリ部20の入力バッファ領域BIに書き込む。
次いで、ステップS4では、編集部13Bが入力バッファ領域BIに符号化対象の1フレームを書き込むごとに、データ割振部14BはそのフレームからタイムコードTcを読み取って切換位置検出部18Bに渡す。
次いで、ステップS5では、データ割振部14Bは、タイムコードTcのフレームが符号化対象のAVデータの後尾のフレームであるか否かを判定する。そのフレームが後尾のフレームでない場合(ステップS5で“No”の場合)、処理がステップS6に進む。一方、そのフレームが後尾のフレームである場合(ステップS5で“Yes”の場合)、データ割振部14Bはそのフレームを、両エンコーダ151、152に割り振るフレーム数の比に従ってハードウェア・エンコーダ151とソフトウェア・エンコーダ152とのいずれかに割り振り、その後、処理が終了する。
次いで、ステップS6では、切換位置検出部18Bは、データ割振部14Bから受け取ったタイムコードTcをsw番目の切換位置のタイムコードT(sw)と比較する。データ割振部14BからのタイムコードTcがsw番目の切換位置のタイムコードT(sw)に一致した場合(ステップS6で“Yes”の場合)、処理がステップS34に進む。タイムコードTcがsw番目の切換位置のタイムコードT(sw)に一致しない場合(ステップS6で“No”の場合)、処理がステップS35に進む。
次いで、ステップS34では、切換位置検出部18Bが、検出信号と、その検出信号の示す切換位置の前後の区間に対するフレーム数の比とを表すデータをデータ割振部14Bに渡す。データ割振部14Bはその検出信号に応じ、タイムコードTcのフレーム以降に入力バッファ領域BIに書き込まれるフレームを両エンコーダ151、152に割り振る割合を、上記のデータの示すフレーム数の比に更新する。そして、処理はステップS8に進む。
次いで、ステップS8では、切換位置検出部18Bは切換位置の番号swを“1”だけ増やして、次の切換位置T(sw)を検出対象に設定する。そして、処理はステップS35に進む。
次いで、ステップS35では、データ割振部14Bは、両エンコーダ151、152に割り振るフレーム数の比に従って、タイムコードTcのフレームをハードウェア・エンコーダ151とソフトウェア・エンコーダ152とのいずれかに割り振る。そして、処理はステップS33から繰り返される。
実施形態5に係る符号化装置は、実施形態1に係る符号化装置と同様に、切換位置検出部18Bによって割り振り先の切換位置を、編集情報から検出する。編集部13Bが、切換位置で区切られたAVデータの二つの連続する区間を、切換位置検出部18Bによって設定されたデータ単位数の割合で交互にメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14Bがその書き込まれたAVデータを同じデータ単位数の割合でハードウェア・エンコーダ151とソフトウェア・エンコーダ152とに交互に供給し、特に各切換位置でそのAVデータの割り振り先を、両エンコーダ151、152の一方から他方に切り換える。それにより、両エンコーダ151、152が並列して、AVデータの符号化処理を行う。この符号化装置では、実施形態1による符号化装置と同様に、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、実施形態5に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、実施形態1に係る符号化装置と同様に、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、同じ編集処理が継続されているAVデータの部分を同じエンコーダで符号化するので、その画質を均一にできる。
実施形態5に係る符号化装置は、AVデータの二つの区間をそれぞれの割り振り先のエンコーダ151、152に、所定のデータ単位数の割合で交互に供給する。この符号化装置は更に、そのデータ単位数の割合を各区間の長さに応じて設定し、切換位置のデータ単位がメモリ部20の入力バッファ領域BIに書き込まれるごとに、そのデータ単位数の割合を、その切換位置から始まる区間に対して設定された値に更新する。それにより、この符号化装置は、各エンコーダ151、152が符号化対象のデータ単位の入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。その結果、この符号化装置はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。
《実施形態6》
図15は、本発明の実施形態6による編集部13と符号化部11Cとのブロック図である。図15を参照するに、符号化部11Cは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、切換位置検出部18C、および、第1データベース22を含む。符号化部11Cは、切換位置検出部18Cおよび第1データベース22を除き、図3に示されている要素と同様な要素を含む。図15ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3に示されている要素についての説明を援用する。更に、切換位置検出部18Cの動作は、図3に示されている切換位置検出部18の動作と同様な部分を含む。従って、以下、切換位置検出部18Cについては、図3に示されている切換位置検出部18とは異なる部分を説明し、同様な部分の詳細については、図3に示されている切換位置検出部18についての説明を援用する。
図15を参照するに、切換位置検出部18CはCPU負荷推定部184を更に含む。CPU負荷推定部184は、編集部13による編集処理でのCPU10の負荷を、編集情報から以下のように予測する。
CPU負荷推定部184は編集情報に基づき、切換位置で区切られたAVデータの区間ごとにタイムライン処理指数の平均値を算定する。ここで、タイムライン処理指数は、編集部13が1つのデータ単位のAVデータを編集するのに要するCPU10の処理量、すなわち、CPU負荷指数で定義される。以下、説明の便宜上、そのデータ単位を1フレームとする。
CPU負荷推定部184は、まず、各区間で並行する編集処理の種類を編集情報から特定して、それぞれに対応するCPU負荷指数を求める。ここで、CPU負荷指数は、編集処理の種類ごとに予め評価され、メモリ部20に第1データベース22として記憶されている。
図16は、そのCPU負荷指数の一例を示す表である。図16を参照するに、AVC−Intra方式の映像データの復号処理におけるCPU負荷指数を100として、CPU10の他の様々な処理に関するCPU負荷指数が評価されている。CPU負荷推定部184は、特定された編集処理の各種類に対応するCPU負荷指数を第1データベース22から検索する。CPU負荷推定部184は更に、検索されたCPU負荷指数を区間ごとに足し合わせ、各和をその区間のデータ単位数で割った値を、その区間のタイムライン処理指数TEの平均値として決定する。
例えば編集情報が、ある区間で行われる編集処理を「AVC−Intra50の素材データを2つピクチャーインピクチャーで合成し、タイトルを1つ入れる」と表現している場合を想定する。CPU負荷推定部184は、まず、その区間で並行する編集処理の種類として、「AVC−Intra50の素材データの復号」、「ピクチャーインピクチャーによるエフェクト処理」、および、「タイトルの付加」を特定する。CPU負荷推定部184は、次に第1データベース22から、特定された編集処理の各種類に対応するCPU負荷指数として、100、5、5を検索する。CPU負荷推定部184は更に、検索されたCPU負荷指数100、5、5からタイムライン処理指数TEを次式で決定する:TE=100×2+5+5=210。ここで、編集されたAVデータの各データ単位には、AVC−Intra50の素材データが2つのデータ単位ずつ利用されているので、それらの素材データの復号処理に対するCPU負荷指数は、1つのデータ単位当たりの値100の2倍で評価されている。
切換位置検出部18Cは、CPU負荷推定部184によって予測された各区間のタイムライン処理指数の平均値を所定の閾値と比較する。ここで、編集部13による編集処理と並行するソフトウェア・エンコーダ152による符号化処理の速度、すなわち単位時間当たりに符号化可能なデータ単位数が、ハードウェア・エンコーダ151の符号化処理速度と等しい場合、その編集処理におけるタイムライン処理指数が上記の閾値として決定される。予測されたタイムライン処理指数の平均値がその閾値を超えている場合、その区間の編集処理に対するCPU10の負荷が重いと見なせるので、切換位置検出部18Cはその区間の割り振り先をハードウェア・エンコーダ151に設定する。一方、その平均値がその閾値以下である場合、その区間の編集処理に対するCPU10の負荷が軽いと見なせるので、切換位置検出部18Cはその区間の割り振り先をソフトウェア・エンコーダ152に設定する。こうして、切換位置検出部18Cは、編集情報に基づいて符号化対象のAVデータの各区間の割り振り先を予め決めて、当該区間のタイムコードに関連づけて記憶する。
切換位置検出部18Cは、符号化対象のデータ単位のタイムコードをデータ割振部14から受け取るごとに、そのタイムコードを各切換位置のタイムコードと比較する。データ割振部14からのタイムコードがいずれかの切換位置のタイムコードに一致したとき、切換位置検出部18Cは更に、その切換位置の前後の区間で割り振り先のエンコーダが異なるか否かを確認する。割り振り先が異なっている場合、切換位置検出部18Cは検出信号をデータ割振部14に出力する。データ割振部14はその検出信号に応じて、当該データ単位以降の区間の割り振り先を、直前の区間の割り振り先とは別のエンコーダに切り換える。
図17は、図15に示されている符号化部11CによるAVデータの割り振り処理のフローチャートである。以下、図17を参照しながら、その割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図17は、図5に示されているステップと同様なステップを含む。従って、図17ではそれら同様なステップに対して、図5に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図5についての説明を援用する。
例えば、編集部13によって、符号化対象のAVデータに関する編集情報が作成されたときに、以下の処理は開始される。
最初に、ステップS1では、切換位置検出部18Cが、符号化対象のAVデータに関する編集情報から割り振り先の切換位置を検出し、検出された切換位置を示すタイムコードT(sw)を記憶する。
次いで、ステップS41では、CPU負荷推定部184が、編集情報に基づいて、切換位置で区切られたAVデータの区間ごとにタイムライン処理指数の平均値を算定する。
次いで、ステップS42では、切換位置検出部18Cは、CPU負荷推定部184によって算定された各区間のタイムライン処理指数の平均値を所定の閾値と比較する。切換位置検出部18Cは更に、各区間の割り振り先を、その平均値がその閾値を超えている場合はハードウェア・エンコーダ151に決め、その平均値がその閾値以下である場合はソフトウェア・エンコーダ152に決める。こうして決められた各区間の割り振り先を、切換位置検出部18Cはその区間のタイムコードに関連づけて記憶する。切換位置検出部18Cはまた、最初の区間の割り振り先をデータ割振部14に通知する。
次いで、ステップS2では、切換位置検出部18Cは、検出対象の切換位置の番号swを1に初期化する。一方、データ割振部14は、符号化対象のAVデータの最初の区間の割り振り先を、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152とのいずれかに決める。
次いで、ステップS3では、編集部13が、編集されたAVデータの各フレームを先頭から順に、メモリ部20の入力バッファ領域BIに書き込む。
次いで、ステップS4では、編集部13が入力バッファ領域BIに符号化対象の1フレームを書き込むごとに、データ割振部14はそのフレームからタイムコードTcを読み取って切換位置検出部18Cに渡す。
次いで、ステップS5では、データ割振部14は、タイムコードTcのフレームが符号化対象のAVデータの後尾のフレームであるか否かを判定する。そのフレームが後尾のフレームでない場合(ステップS5で“No”の場合)、処理がステップS6に進む。一方、そのフレームが後尾のフレームである場合(ステップS5で“Yes”の場合)、データ割振部14はそのフレームを、その時点で割り振り先として決められているエンコーダに割り振り、その後、処理が終了する。
次いで、ステップS6では、切換位置検出部18Cは、データ割振部14から受け取ったタイムコードTcをsw番目の切換位置のタイムコードT(sw)と比較する。データ割振部14からのタイムコードTcがsw番目の切換位置のタイムコードT(sw)に一致した場合(ステップS6で“Yes”の場合)、処理がステップS43に進む。タイムコードTcがsw番目の切換位置のタイムコードT(sw)に一致しない場合(ステップS6で“No”の場合)、処理がステップS3に戻る。その場合、データ割振部14はタイムコードTcのフレームを、その時点で割り振り先として決められているエンコーダに割り振る。
次いで、ステップS43では、切換位置検出部18Cは、sw番目の切換位置のタイムコードT(sw)に関連づけて記憶された割り振り先を確認する。その割り振り先が、その切換位置の直前の区間の割り振り先とは異なる場合(ステップS43で“Yes”の場合)、処理がステップS7に進む。その割り振り先が、その切換位置の直前の区間の割り振り先と同じである場合(ステップS43で“No”の場合)、処理がステップS8に進む。その場合、データ割振部14はタイムコードTcのフレームを、その時点で割り振り先として決められているエンコーダに割り振る。
次いで、ステップS7では、切換位置検出部18Cは検出信号を出力する。データ割振部14はその検出信号に応じて、割り振り先を別のエンコーダに切り換える。それにより、データ割振部14は、タイムコードTc以降のフレームを、タイムコードTc直前のフレームとは別のエンコーダに割り振る。
次いで、ステップS8では、切換位置検出部18Cは切換位置の番号swを“1”だけ増やして、次の切換位置T(sw)を検出対象に検出する。そして、処理はステップS3から繰り返される。
実施形態6に係る符号化装置は、実施形態1に係る符号化装置と同様に、切換位置検出部18Cによって割り振り先の切換位置を、編集情報から検出する。編集部13が、編集されたAVデータをメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14が所定の切換位置でそのAVデータの割り振り先を、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との一方から他方に切り換える。それにより、両エンコーダ151、152が並列して、AVデータの符号化処理を行う。この符号化装置では、実施形態1による符号化装置と同様に、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、実施形態6に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、実施形態1に係る符号化装置と同様に、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、同じ編集処理が継続されているAVデータの部分を同じエンコーダで符号化するので、その画質を均一にできる。
実施形態6に係る符号化装置は更に、切換位置検出部18Cにより、編集処理に対するCPU10の負荷をAVデータの区間ごとに予測し、予測された負荷に応じて各区間の割り振り先を決める。それにより、ソフトウェア・エンコーダ152が、CPU10に過大な負荷をかけることなく、AVデータの符号化処理を行う。その結果、この符号化装置はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。
《実施形態7》
図18は、本発明の実施形態7による編集部13と符号化部11Dとのブロック図である。図18を参照するに、符号化部11Dは、データ割振部14D、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、切換位置検出部18、および、CPU負荷検出部23を含む。符号化部11Dは、データ割振部14DとCPU負荷検出部23とを除き、図3に示されている要素と同様な要素を含む。図18ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3に示されている要素についての説明を援用する。更に、データ割振部14Dの動作は、図3に示されているデータ割振部14の動作と同様な部分を含む。従って、以下、データ割振部14Dについては、図3に示されているデータ割振部14とは異なる部分を説明し、同様な部分の詳細については、図3に示されているデータ割振部14についての説明を援用する。
図18を参照するに、CPU負荷検出部23は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。CPU負荷検出部23は、コンピュータ端末のOS27の提供するAPIを利用してCPU10の使用率を計測する。CPU負荷検出部23は特にその計測動作を、データ割振部14Dから所定の開始信号を受信した時点から所定時間行い、計測されたCPU10の使用率をデータ割振部14Dに出力する。
データ割振部14Dは、切換位置検出部18から検出信号を受けるごとにAVデータの割り振り動作を所定時間停止し、その間のCPU10の使用率に基づいて、検出信号の示す切換位置以降のAVデータの割り振り先を両エンコーダ151、152のいずれかに決定する。
具体的には、データ割振部14Dは、切換位置検出部18から検出信号を受けたとき、CPU負荷検出部23に開始信号を出力すると共に、その出力時点から所定時間、AVデータの割り振り動作を停止する。それにより、編集部13によるAVデータの入力バッファ領域BIへの書き込み動作が、両エンコーダ151、152によるそのAVデータの符号化処理よりも所定時間先行する。ここで、その所定時間は、切換位置で区切られたAVデータの各区間の全体が入力バッファ領域BIに書き込まれる時間よりは十分に短く設定されている。
上記の所定時間が経過したとき、データ割振部14DはCPU負荷検出部23からCPU10の使用率を受け取って所定の閾値と比較する。その使用率がその閾値を超えている場合、上記の検出信号の示す切換位置以降のAVデータの区間については、編集部13による編集処理に対するCPU10の負荷が重いと見なせるので、データ割振部14Dは、AVデータのその区間の割り振り先をハードウェア・エンコーダ151に決定する。一方、CPU10の使用率が上記の閾値以下である場合、上記の検出信号の示す切換位置以降のAVデータの区間については、編集部13による編集処理に対するCPU10の負荷が軽いと見なせるので、データ割振部14Dは、AVデータのその区間の割り振り先をソフトウェア・エンコーダ152に決定する。
図19は、図18に示されている符号化部11DによるAVデータの割り振り処理のフローチャートである。以下、図19を参照しながら、その割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図19は、図5に示されているステップと同様なステップを含む。従って、図19ではそれら同様なステップに対して、図5に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図5についての説明を援用する。
例えば、編集部13によって、符号化対象のAVデータに関する編集情報が作成されたときに、以下の処理は開始される。
最初に、ステップS1では、切換位置検出部18が、符号化対象のAVデータに関する編集情報から割り振り先の切換位置を検出し、検出された切換位置を示すタイムコードT(sw)を記憶する。
次いで、ステップS51では、切換位置検出部18は検出対象の切換位置の番号swを1に初期化する。
次いで、ステップS3では、編集部13が、編集されたAVデータの各フレームを先頭から順に、メモリ部20の入力バッファ領域BIに書き込む。
次いで、ステップS4では、編集部13が入力バッファ領域BIに符号化対象の1フレームを書き込むごとに、データ割振部14DはそのフレームからタイムコードTcを読み取って切換位置検出部18に渡す。
次いで、ステップS5では、データ割振部14Dは、タイムコードTcのフレームが符号化対象のAVデータの後尾のフレームであるか否かを判定する。そのフレームが後尾のフレームでない場合(ステップS5で“No”の場合)、処理がステップS6に進む。一方、そのフレームが後尾のフレームである場合(ステップS5で“Yes”の場合)、データ割振部14Dはそのフレームを、その時点で割り振り先として決められているエンコーダに割り振り、その後、処理が終了する。
次いで、ステップS6では、切換位置検出部18は、データ割振部14Dから受け取ったタイムコードTcをsw番目の切換位置のタイムコードT(sw)と比較する。データ割振部14DからのタイムコードTcが符号化対象のAVデータの先頭フレームのタイムコードであるとき、または、sw番目の切換位置のタイムコードT(sw)に一致した場合(ステップS6で“Yes”の場合)、処理がステップS52に進む。タイムコードTcがsw番目の切換位置のタイムコードT(sw)に一致しない場合(ステップS6で“No”の場合)、処理がステップS3に戻る。その場合、データ割振部14DはタイムコードTcのフレームを、その時点で割り振り先として決められているエンコーダに割り振る。
次いで、ステップS52では、切換位置検出部18が検出信号を出力する。その検出信号に応じてデータ割振部14DはCPU負荷検出部23に開始信号を出力し、その出力時点から所定時間、AVデータの割り振り動作を停止する。
次いで、ステップS53では、CPU負荷検出部23が開始信号に応じてCPU10の使用率を計測する。開始信号の受信時点から所定時間が経過したとき、CPU負荷検出部23は、計測されたCPU10の使用率をデータ割振部14Dに出力する。
次いで、ステップS54では、データ割振部14DがCPU負荷検出部23からCPU10の使用率を受け取って所定の閾値と比較する。その使用率がその閾値を超えている場合(ステップS54で“Yes”の場合)、処理はステップS55に進み、その閾値以下である場合(ステップS54で“No”の場合)、処理はステップS56に進む。
次いで、ステップS55では、データ割振部14Dは、タイムコードTc=T(sw)のフレームを含む区間をハードウェア・エンコーダ151に割り振る。そして、処理はステップS8に進む。
一方、ステップS56では、データ割振部14Dは、タイムコードTc=T(sw)のフレームを含む区間をソフトウェア・エンコーダ152に割り振る。そして、処理はステップS8に進む。
次いで、ステップS8では、切換位置検出部18は切換位置の番号swを“1”だけ増やして、次の切換位置T(sw)を検出対象に設定する。そして、処理はステップS3から繰り返される。
実施形態7に係る符号化装置は、実施形態1に係る符号化装置と同様に、切換位置検出部18によって割り振り先の切換位置を、編集情報から検出する。編集部13が、編集されたAVデータをメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14DがCPU10の使用率に応じて、いずれかの切換位置でそのAVデータの割り振り先を、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との一方から他方に切り換える。それにより、両エンコーダ151、152が並列して、AVデータの符号化処理を行う。この符号化装置では、実施形態1による符号化装置と同様に、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、実施形態7に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、実施形態1に係る符号化装置と同様に、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、同じ編集処理が継続されているAVデータの部分を同じエンコーダで符号化するので、その画質を均一にできる。
実施形態7に係る符号化装置は更に、編集部13が切換位置のAVデータをメモリ部20の入力バッファ領域BIに書き込むごとに、データ割振部14Dによる割り振り処理を所定時間停止させ、CPU負荷検出部23によってCPU10の使用率を計測する。データ割振部14DはそのときのCPU10の使用率に応じて、その切換位置から始まるAVデータの区間の割り振り先を決める。それにより、ソフトウェア・エンコーダ152が、CPU10に過大な負荷をかけることなく、AVデータの符号化処理を行う。その結果、この符号化装置はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。
《実施形態8》
図20は、本発明の実施形態8による編集部13Eと符号化部11Eとのブロック図である。図20を参照するに、符号化部11Eは、データ割振部14E、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、および、切換位置検出部18Eを含む。符号化部11Eは、データ割振部14Eと切換位置検出部18Eとを除き、図3に示されている要素と同様な要素を含む。図20ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3に示されている要素についての説明を援用する。更に、編集部13E、データ割振部14E、および、切換位置検出部18Eの各動作は、図3に示されている編集部13、データ割振部14、および、切換位置検出部18の各動作と同様な部分を含む。従って、以下、編集部13E、データ割振部14E、および、切換位置検出部18Eについては、図3に示されている編集部13、データ割振部14、および、切換位置検出部18とは異なる部分を説明し、同様な部分の詳細については、図3に示されている編集部13、データ割振部14、および、切換位置検出部18についての説明を援用する。
図20を参照するに、編集部13Eは切換位置検出部18Eから区間情報を受け取る。ここで、区間情報は、編集情報から検出された切換位置を示すデータを含む。編集部13Eは、その区間情報に基づいて、符号化対象のAVデータを切換位置で区切って複数の区間に分け、それらの区間を、先頭から後尾に向かって出力すると共に、後尾から先頭に向かっても出力する。但し、各区間内では、編集されたAVデータはタイムライン方向の順に出力される。以下、先頭から後尾に向かって出力される区間群を第1区間群とし、後尾から先頭に向かって出力される区間群を第2区間群とする。編集部13Eは、一つの区間を出力し終えるごとに、まだ出力されていない区間の一つを第1区間群または第2区間群に追加してその区間の出力を開始する。具体的には、編集部13Eは、第1区間群の後尾に位置する区間を出力し終えたときは、その次の区間がまだ出力されていなければ、その区間を第1区間群の後尾に追加して出力する。一方、編集部13Eは、第2区間群の先頭に位置する区間を出力し終えたときは、その直前の区間がまだ出力されていなければ、その区間を第2区間群の先頭に追加して出力する。
編集部13Eは更に、第1区間群の後尾の区間と第2区間群の先頭の区間との各データ単位を交互に所定の割合で入力バッファ領域BIに書き込む。例えば、データ単位が1フレームであり、その割合が2:1である場合、編集部13Eは、第1区間群の後尾の区間から二枚のフレームを連続して出力するごとに、第2区間群の先頭の区間から一枚のフレームを出力する。そして、入力バッファ領域BIにはまだ出力されていないデータ単位を含む区間が残り一つになった時点からは、編集部13Eはその区間の残りのデータ単位を連続して出力する。
データ割振部14Eは、編集部13Eによって入力バッファ領域BIに書き込まれたAVデータを所定のデータ単位数の割合で両エンコーダ151、152に交互に供給する。その割合は、編集部13Eが入力バッファ領域BIに、第1区間群の後尾の区間と第2区間群の先頭の区間とを交互に書き込むときのデータ単位数の割合と等しい。例えば、データ単位が1フレームであり、その割合が2:1である場合、データ割振部14Eは、入力バッファ領域BIから二枚のフレームを連続してハードウェア・エンコーダ151に供給するごとに、一枚のフレームをソフトウェア・エンコーダ152に供給する。その後、切換位置検出部18Eから検出信号を受けるまで、データ割振部14Eはその割り振り動作を繰り返す。
一方、データ割振部14Eは、入力バッファ領域BIに書き込まれたデータ単位からタイムコードを読み取って切換位置検出部18Eに渡す。そのタイムコードに応じて切換位置検出部18Eから検出信号を受けた場合、データ割振部14Eは、そのデータ単位の割り振り先とは別のエンコーダに、そのデータ単位より後に入力バッファ領域BIに書き込まれるデータ単位を全て供給する。なお、検出信号は後述のとおり、編集部13Eからまだ出力されていないデータ単位を含む区間が残り一つになったことを示す。
切換位置検出部18Eは、編集情報から検出された切換位置を区間情報として編集部13Eに通知する。一方、切換位置検出部18Eは、第1区間群の後尾に位置する区間の番号を、符号化対象のAVデータ全体の先頭に位置する区間の番号1に初期化し、その番号1の区間の後尾に位置するデータ単位のタイムコード、すなわち、最初の切換位置の直前に位置するデータ単位のタイムコードを第1タイムコードとして設定する。切換位置検出部18Eは更に、第2区間群の先頭に位置する区間の番号を、符号化対象のAVデータ全体の後尾に位置する区間の番号、すなわち区間の総数に初期化し、その番号の区間の後尾に位置するデータ単位のタイムコードを第2タイムコードとして設定する。
切換位置検出部18Eは、データ割振部14Eからタイムコードを受け取るごとに、第1タイムコードと第2タイムコードとを更新すべきか否か、および、検出信号を出力すべきか否かを次のように判断する。
切換位置検出部18Eはデータ割振部14Eからのタイムコードを、まず、第1タイムコードと比較する。データ割振部14Eからのタイムコードが第1タイムコードより小さい場合、切換位置検出部18Eは検出信号を出力しない。
データ割振部14Eからのタイムコードが第1タイムコードに一致した場合、切換位置検出部18Eは更に、所定のフラグの値を確認する。ここで、後述のように、編集部13Eからまだ出力されていないデータ単位を含む区間が残り一つになったとき、切換位置検出部18Eはそのフラグを立てる。従って、そのフラグが既に立っている場合、切換位置検出部18Eは検出信号を出力しない。なお、この場合、データ割振部14Eからのタイムコードは、編集部13Eによって入力バッファ領域BIに最後に書き込まれたデータ単位のタイムコードである。一方、そのフラグがまだ立っていない場合、切換位置検出部18Eは、第1区間群の後尾の区間の番号を“1”だけ増やし、第1タイムコードを、第1区間群の直後に位置する区間の後尾のデータ単位のタイムコードに更新する。切換位置検出部18Eは続いて、更新された第1区間群の後尾の区間の番号を第2区間群の先頭の区間の番号と比較する。前者の番号が後者の番号より小さい場合、切換位置検出部18Eは検出信号を出力しない。前者の番号が後者の番号に一致した場合、それは、編集部13Eからまだ出力されていないデータ単位を含む区間が残り一つであることを意味するので、切換位置検出部18Eはデータ割振部14Eに検出信号を出力すると共に、上記のフラグを立てる。なお、この場合、編集部13Eが第1区間群の後尾の区間を全て出力し終えたときに、その区間の直後に位置する区間が既に、第2区間群の先頭に位置する区間として出力され始めている。
データ割振部14Eからのタイムコードが第1タイムコードより大きい場合、切換位置検出部18Eはデータ割振部14Eからのタイムコードを第2タイムコードと比較する。データ割振部14Eからのタイムコードが第2タイムコードより小さい場合、切換位置検出部18Eは検出信号を出力しない。データ割振部14Eからのタイムコードが第2タイムコードに一致した場合、切換位置検出部18Eは更に、第2区間群の先頭の区間の番号を“1”だけ減らし、第2タイムコードを、第2区間群の直前に位置する区間の後尾のデータ単位のタイムコードに更新する。切換位置検出部18Eは続いて、更新された第2区間群の先頭の区間の番号を第1区間群の後尾の区間の番号と比較する。前者の番号が後者の番号より大きい場合、切換位置検出部18Eは検出信号を出力しない。前者の番号が後者の番号に一致した場合、それは、編集部13Eからまだ出力されていないデータ単位を含む区間が残り一つであることを意味するので、切換位置検出部18Eはデータ割振部14Eに検出信号を出力すると共に、上記のフラグを立てる。なお、この場合、編集部13Eが第2区間群の先頭の区間を全て出力し終えたときに、その区間の直前に位置する区間が既に、第1区間群の後尾の区間として出力され始めている。
以上の構成により、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との一方が符号化対象のAVデータを先頭から後尾へ向かって符号化し、それと並行して、他方が後尾から先頭に向かって符号化する。
なお、切換位置検出部18Eは、実施形態5に係る切換位置検出部18Bと同様に、AVデータの各区間の長さに応じて、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152とが並列して符号化する各区間について、単位時間当たりに各エンコーダ151、152に供給されるべきデータ単位数の割合を変更してもよい。すなわち、切換位置検出部18Eはその割合を、先頭の区間と後尾の区間との組み合わせのように、第1区間群と第2区間群とで並列に符号化され得る二つの区間の組み合わせごとに変更してもよい。その場合、切換位置検出部18Eはそれらの割合を区間情報の一部として編集部13Eに渡す。編集部13Eは、第1区間群と第2区間群とのデータ単位を交互に、区間情報の示す割合で出力する。一方、切換位置検出部18Eは、データ割振部14Eからのタイムコードが各切換位置のタイムコードと一致するごとに、その切換位置の直前または直後の区間に対して設定された上記の割合をデータ割振部14Eに通知する。それにより、第1区間群と第2区間群とのそれぞれの全体が同じエンコーダで符号化されるようにできる。
切換位置検出部18Eはまた、実施形態6に係る切換位置検出部18Cと同様に、CPU負荷推定部184を含んでもよい。それにより、切換位置検出部18Eは、編集部13Eによる編集処理に先立ち、符号化対象のAVデータの先頭と後尾とのそれぞれに位置する区間について、編集処理に対するCPU10の負荷を編集情報から予測する。切換位置検出部18Eは更に、予測されたCPU10の負荷を先頭の区間と後尾の区間との間で比較する。後尾の区間よりも先頭の区間について予測されたCPU10の負荷が重い場合、切換位置検出部18Eはデータ割振部14Eに第1区間群をハードウェア・エンコーダ151に割り振らせる。逆に、後尾の区間よりも先頭の区間について予測されたCPU10の負荷が軽い場合、切換位置検出部18Eはデータ割振部14Eに第1区間群をソフトウェア・エンコーダ152に割り振らせる。
その他に、編集部13Eは第1区間群と第2区間群とを区間単位で交互に出力してもよい。その場合、データ割振部14Eからのタイムコードが、各切換位置の直前、すなわち、各区間の後尾に位置するデータ単位のタイムコードに一致するごとに、切換位置検出部18Eは検出信号を出力する。一方、データ割振部14Eは、図3に示されているデータ割振部14と同様に、検出信号を受けるごとに、入力バッファ領域BIに次に書き込まれるデータ単位からその割り振り先を切り換える。
図21は、図20に示されている符号化部11EによるAVデータの割り振り処理のフローチャートである。以下、図21を参照しながら、その割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図21は、図5に示されているステップと同様なステップを含む。従って、図21ではそれら同様なステップに対して、図5に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図5についての説明を援用する。
例えば、編集部13Eによって、符号化対象のAVデータに関する編集情報が作成されたときに、以下の処理は開始される。
最初に、ステップS1では、切換位置検出部18Eが、符号化対象のAVデータに関する編集情報から割り振り先の切換位置を検出する。切換位置検出部18Eは更に、検出されたsw番目(sw=1、2、3、…)の切換位置の直前に位置するフレーム、すなわち、sw番目の区間の後尾に位置するフレームのタイムコードT(sw)を記憶する。
次いで、ステップS61では、切換位置検出部18Eは、検出された切換位置を示す区間情報を編集部13Eに渡す。
次いで、ステップS62では、切換位置検出部18Eは、第1区間群の後尾に位置する区間の番号sw1を1に初期化し、第2区間群の先頭に位置する区間の番号sw2を区間の総数に初期化する。それにより、第1タイムコードT(sw1)が、符号化対象のAVデータ全体の先頭に位置する区間の後尾のフレームのタイムコードT(1)に初期化され、第2タイムコードT(sw2)が、そのAVデータ全体の後尾に位置するフレームのタイムコードに初期化される。切換位置検出部18Eは更に、第1区間群の割り振り先と第2区間群の割り振り先とを決めてデータ割振部14Eに通知する。以下の説明の便宜上、第1区間群の割り振り先をハードウェア・エンコーダ151とし、第2区間群の割り振り先をソフトウェア・エンコーダ152とする。なお、割り振り先がその逆に設定された場合にも以下の説明は同様に当てはまる。
次いで、ステップS63では、編集部13Eが、編集されたAVデータの第1区間群と第2区間群との各フレームを交互に所定の割合でメモリ部20の入力バッファ領域BIに書き込む。一方、データ割振部14Eは、入力バッファ領域BIに書き込まれたフレームを同じ割合で両エンコーダ151、152に交互に割り振る。それにより、第1区間群はハードウェア・エンコーダ151に割り振られ、第2区間群はソフトウェア・エンコーダ152に割り振られる。
次いで、ステップS4では、編集部13Eが入力バッファ領域BIに符号化対象の1フレームを書き込むごとに、データ割振部14EはそのフレームからタイムコードTcを読み取って切換位置検出部18Eに渡す。
次いで、ステップS64では、切換位置検出部18Eはデータ割振部14EからのタイムコードTcを第1タイムコードT(sw1)と比較する。データ割振部14EからのタイムコードTcが第1タイムコードT(sw1)より小さい場合(ステップS64で“<”の場合)、処理がステップS63に戻る。その場合、タイムコードTcのフレームは第1区間群の割り振り先、すなわち、ハードウェア・エンコーダ151に割り振られる。両タイムコードTc、T(sw1)が一致した場合(ステップS64で“=”の場合)、処理がステップS65に進む。その場合、タイムコードTcのフレームは第1区間群の割り振り先、すなわち、ハードウェア・エンコーダ151に割り振られる。データ割振部14EからのタイムコードTcが第1タイムコードT(sw1)より大きい場合(ステップS64で“>”の場合)、処理がステップS69に進む。その場合、タイムコードTcのフレームは第2区間群の割り振り先、すなわち、ソフトウェア・エンコーダ152に割り振られる。
次いで、ステップS65では、切換位置検出部18Eはフラグの値をチェックする。そのフラグが立っていない場合(ステップS65で“No”の場合)、処理がステップS66に進む。一方、そのフラグが立っている場合(ステップS65で“Yes”の場合)、タイムコードTcのフレームが編集部13Eによって入力バッファ領域BIに最後に書き込まれたフレームである。従って、そのフレームが、その時点で割り振り先として決められているエンコーダに割り振られ、その後、処理が終了する。
次いで、ステップS66では、切換位置検出部18Eは、第1区間群の後尾に位置する区間の番号sw1を“1”だけ増やす。それにより、第1タイムコードT(sw1)が、第1区間群の直後に位置する区間の後尾のフレームのタイムコードに更新される。
次いで、ステップS67では、切換位置検出部18Eは、第1区間群の後尾に位置する区間の番号sw1を、第2区間群の先頭に位置する区間の番号sw2と比較する。前者の番号sw1が後者の番号sw2に一致しない場合、つまりsw1がsw2よりも小さい場合(ステップS67で“No”の場合)、処理がステップS63に戻る。両者の番号sw1、sw2が一致した場合(ステップS67で“Yes”の場合)、処理がステップS68に進む。
次いで、ステップS68では、切換位置検出部18Eはデータ割振部14Eに検出信号を出力し、上記のフラグを立てる。その後、処理はステップS63に戻る。
一方、ステップS69では、切換位置検出部18Eはデータ割振部14EからのタイムコードTcを第2タイムコードT(sw2)と比較する。データ割振部14EからのタイムコードTcが第2タイムコードT(sw2)より小さい場合(ステップS69で“No”の場合)、処理がステップS63に戻る。両タイムコードTc、T(sw2)が一致した場合(ステップS69で“Yes”の場合)、処理がステップS70に進む。
次いで、ステップS70では、切換位置検出部18Eは、第2区間群の先頭の区間の番号sw2を“1”だけ減らす。それにより、第2タイムコードT(sw2)が、第2区間群の直前に位置する区間の後尾のフレームのタイムコードに更新される。その後、処理はステップS67に進む。
実施形態8に係る符号化装置では、実施形態1に係る符号化装置と同様に、切換位置検出部18Eによって割り振り先の切換位置を、編集情報から検出する。編集部13Eが、切換位置で区切られたAVデータの複数の区間を、先頭から後尾に向かって出力すると共に、後尾から先頭に向かっても出力する。編集部13Eが、先頭から後尾に向かって出力される第1区間群と、後尾から先頭に向かって出力される第2区間群とを交互に所定のデータ単位数の割合でメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14Eが、その書き込まれたAVデータを同じデータ単位数の割合でハードウェア・エンコーダ151とソフトウェア・エンコーダ152とに交互に供給する。それにより、両エンコーダ151、152の一方が、AVデータの第1区間群の符号化処理を行い、それに並行して、他方が第2区間群の符号化処理を行う。その結果、データ割振部14EがそのAVデータの割り振り先を、第1区間群と第2区間群との間の境界の切換位置で両エンコーダ151、152の一方から他方に切り換えたことになる。従って、この符号化装置では、実施形態1による符号化装置と同様に、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。それ故、実施形態8に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、同じ編集処理が継続されているAVデータの部分を同じエンコーダで符号化するので、その画質を均一にできる。
実施形態8に係る符号化装置は、符号化対象のAVデータを、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152の一方には先頭から後尾に向かって供給し、それに並行して、他方には後尾から先頭に向かって供給する。それにより、この符号化装置は、各エンコーダ151、152が符号化対象のデータ単位の入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。その結果、この符号化装置はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。
《実施形態9》
図22は、本発明の実施形態9による編集部13Fと符号化部11Fとのブロック図である。図22を参照するに、符号化部11Fは、データ割振部14F、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、切換位置検出部18F、および、バッファ21を含む。符号化部11Fは、データ割振部14F、切換位置検出部18F、および、バッファ21を除き、図3に示されている要素と同様な要素を含む。図22ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3に示されている要素についての説明を援用する。更に、編集部13F、データ割振部14F、および、切換位置検出部18Fの各動作は、図3に示されている編集部13、データ割振部14、および、切換位置検出部18の各動作と同様な部分を含む。従って、以下、編集部13F、データ割振部14F、切換位置検出部18Fについては、図3に示されている編集部13、データ割振部14、切換位置検出部18とは異なる部分を説明し、同様な部分の詳細については、図3に示されている編集部13、データ割振部14、切換位置検出部18についての説明を援用する。
図22では、バッファ21は、データ割振部14Fとハードウェア・エンコーダ151との間に配置されている。バッファ21はハードウェア・エンコーダ80に内蔵のフレーム・バッファ、例えば、図2に示されているフレーム・バッファ83の記憶領域を表す。その場合、バッファ21の容量は例えば数フレームである。バッファ21はその他にメモリ部20内の記憶領域であってもよい。その場合、バッファ21の容量は例えば数十フレームである。
データ割振部14Fは、ハードウェア・エンコーダ151に割り振ったAVデータを逐次、バッファ21に転送する。ハードウェア・エンコーダ151はバッファ21の先頭アドレスから順にAVデータを所定のデータ単位ずつ、例えば1フレームずつ符号化する。
編集部13Fは、図4に示されているタイムラインウィンドウTW内のクリップCL1〜CL8のうち、ユーザによって指定された範囲の割り振り先を、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152の一方に固定することをユーザに設定させることができる。例えば、画質をできる限り均一に維持すべきAVデータの範囲が、割り振り先を両エンコーダ151、152の一方に固定すべき区間、すなわち固定区間として設定される。固定区間は同じエンコーダによって符号化されるので、その画質が均一化される。編集部13Fは更に、AVデータの固定区間、および、各固定区間における割り振り先のエンコーダ151、152を示す情報を、編集情報の一部として切換位置検出部18Fに供給する。
編集部13Fはまた、図4に示されているタイムラインウィンドウTW内のクリップCL1〜CL8のうち、ユーザによって指定された範囲の割り振り先を、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152の両方に自由に切換可能にすることをユーザに設定させることができる。例えば、画質の均一化よりも、両エンコーダ151、152が並列して符号化処理を行うことによる符号化処理の高速化を優先させるべきAVデータの範囲が、割り振り先を両エンコーダ151、152に自由に切換可能な区間、すなわち切換自由区間として設定される。切換自由区間は、切換位置の間隔よりも細かく両エンコーダ151、152に割り振られるので、その区間の符号化処理が高速化される。編集部13Fは、AVデータの切換自由区間を示す情報を、編集情報の一部として切換位置検出部18Fに供給する。
切換位置検出部18Fは、編集部13Fから編集情報を取得し、まず、その編集情報から、符号化対象のAVデータの固定区間および切換自由区間を検出する。切換位置検出部18Fは次に、そのAVデータの固定区間でも切換自由区間でもない区間に関する編集情報から割り振り先の切換位置を、図3に示されている実施形態1に係る切換位置検出部18と同様に検出する。
切換位置検出部18Fはデータ割振部14Fからタイムコードを受け取るごとに、まず、そのタイムコードの示す位置が固定区間内または切換自由区間内であるか否かを判別する。そのタイムコードの示す位置が固定区間内または切換自由区間内である場合、切換位置検出部18Fはデータ割振部14Fにその旨を通知する。一方、そのタイムコードの示す位置が固定区間外および切換自由区間外である場合、切換位置検出部18Fは、図3に示されている切換位置検出部18と同様に、そのタイムコードがいずれかの切換位置のタイムコードに一致するごとに、データ割振部14Fに検出信号を出力する。
データ割振部14Fは、編集部13Fが符号化対象のデータ単位をメモリ部20内の入力バッファ領域BIに書き込むごとに、そのデータ単位からタイムコードを読み取って切換位置検出部18Fに渡す。
そのタイムコードに応じて切換位置検出部18Fから、そのタイムコードの示す位置が固定区間内であることを通知された場合、データ割振部14Fはそのタイムコードのデータ単位を、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152とのうち、割り振り先として固定された方に供給する。
そのタイムコードに応じて切換位置検出部18Fから、そのタイムコードの示す位置が切換自由区間内であることを通知された場合、データ割振部14Fは、まずバッファ21から空き情報を読み出し、その空き情報からバッファ21の空き領域のサイズ、例えば空いているフレーム・バッファの数を確認する。そのサイズが所定の閾値、例えば1フレームを超えている場合、データ割振部14Fは、そのタイムコードのデータ単位をハードウェア・エンコーダ151に割り振る。一方、バッファ21の空き領域のサイズが所定の閾値以下、例えば1フレーム以下まで減っていた場合、データ割振部14Fは、そのタイムコードのデータ単位をソフトウェア・エンコーダ152に割り振る。
そのタイムコードに応じて切換位置検出部18Fから、そのタイムコードの示す位置が固定区間内であることも、切換自由区間内であることも通知されなかった場合、データ割振部14Fは、図3に示されているデータ割振部14と同様に動作する。すなわち、切換位置検出部18Fから更に検出信号を受けた場合、データ割振部14Fはそのタイムコード以降のデータ単位の割り振り先を、そのタイムコードの直前のデータ単位の割り振り先とは別のエンコーダに切り換える。
図23および図24は、図22に示されている符号化部11FによるAVデータの割り振り処理のフローチャートである。以下、図23および図24を参照しながら、その割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図23および図24は、図5に示されているステップと同様なステップを含む。従って、図23および図24ではそれら同様なステップに対して、図5に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図5についての説明を援用する。
例えば、編集部13Fによって、符号化対象のAVデータに関する編集情報が作成されたときに、以下の処理は開始される。
最初に、ステップS1では、切換位置検出部18Fが、符号化対象のAVデータに関する編集情報から固定区間および切換自由区間を検出し、固定区間でも切換自由区間でもない区間に関する編集情報から割り振り先の切換位置を検出する。切換位置検出部18Fは更に、各固定区間および各切換自由区間の範囲を示すタイムコード、および、各切換位置を示すタイムコードT(sw)を記憶する。
図25は、図23に示されているステップS1における、固定区間、切換自由区間、および、切換位置の検出処理のフローチャートである。以下、図25を参照しながら、それらの検出処理を説明する。
最初に、ステップS11では、切換位置検出部18Fは編集部13Fから編集情報を取得して、先頭のクリップに関するものから順に調べる。
次いで、ステップS101では、切換位置検出部18Fは編集情報に基づいて、各クリップが固定区間内にあるか否かを判定する。そのクリップが固定区間内にある場合(ステップS101で“Yes”の場合)、処理がステップS102に進み、固定区間内にはない場合(ステップS101で“No”の場合)、処理がステップS103に進む。
ステップS102では、切換位置検出部18Fはそのクリップのタイムコードの範囲を、固定区間を示すタイムコードの範囲に加える。そして、処理がステップS13に進む。
一方、ステップS103では、切換位置検出部18Fは編集情報に基づいて、そのクリップが切換自由区間内にあるか否かを判定する。そのクリップが切換自由区間内にある場合(ステップS103で“Yes”の場合)、処理がステップS104に進み、切換自由区間内にはない場合(ステップS103で“No”の場合)、処理がステップS12に進む。
ステップS104では、切換位置検出部18Fはそのクリップのタイムコードの範囲を、切換自由区間を示すタイムコードの範囲に加える。そして、処理がステップS13に進む。
次いで、ステップS12では、切換位置検出部18Fは、まず、クリップ間の境界の位置、および、クリップ間での編集処理の種類の変更パターンの少なくともいずれかを調べる。タイムライン上に並列に配置されたクリップが一斉に終了して別のクリップに切り替わっている場合、および/または、編集処理の種類の変更パターンが所定のパターンである場合、切換位置検出部18Fは、対応するクリップ間の境界を割り振り先の切換位置として検出する。
次いで、ステップS13では、切換位置検出部18Fは、編集情報をAVデータの後尾のフレームまで調べたか否かを判定する。後尾のフレームまでは調べていない場合(ステップS13で“No”の場合)、処理がステップS101から繰り返され、後尾のフレームまで調べ終えた場合(ステップS13で“Yes”の場合)、処理が、図23に示されているステップS2に進む。
図23に戻り、ステップS2では、切換位置検出部18Fは検出対象の切換位置の番号swを1に初期化する。一方、データ割振部14Fは、符号化対象のAVデータの先頭フレームの割り振り先をハードウェア・エンコーダ151とソフトウェア・エンコーダ152とのいずれかに決める。特に、先頭フレームが固定区間内であるときは、その割り振り先がその固定区間で固定されたエンコーダに設定され、先頭フレームが切換自由区間内であるときは、その割り振り先がハードウェア・エンコーダ151に設定される。
次いで、ステップS3では、編集部13Fが、編集されたAVデータの各フレームを先頭から順に、メモリ部20の入力バッファ領域BIに書き込む。
次いで、ステップS4では、編集部13Fが入力バッファ領域BIに符号化対象の1フレームを書き込むごとに、データ割振部14FがそのフレームからタイムコードTcを読み取って切換位置検出部18Fに渡す。
次いで、ステップS9では、切換位置検出部18Fは、タイムコードTcのフレームが固定区間内であるか否かを判定する。そのフレームが固定区間内である場合(ステップS9で“Yes”の場合)、処理がステップS9Aに進む。一方、そのフレームが固定区間内ではない場合(ステップS9で“No”の場合)、処理がステップS10に進む。
次いで、ステップS9Aでは、切換位置検出部18Fは、タイムコードTcのフレームが固定区間内であることをデータ割振部14Fに通知する。それにより、データ割振部14FはそのタイムコードTcのフレームの割り振り先を、その固定区間で固定されたエンコーダに設定する。そして、処理がステップS3から繰り返される。
一方、ステップS10では、切換位置検出部18Fは、タイムコードTcのフレームが切換自由区間内であるか否かを判定する。そのフレームが切換自由区間内ではない場合(ステップS10で“No”の場合)、処理がステップS10Aに進む。一方、そのフレームが切換自由区間内である場合(ステップS10で“Yes”の場合)、処理がステップS71に進む。
次いで、ステップS10Aでは、切換位置検出部18Fは、タイムコードTcのフレームが切換自由区間内ではないことをデータ割振部14Fに通知する。それにより、処理が、図24に示されているステップS5〜S8の順に進む。ここで、図24に示されているステップS5〜S8はいずれも、図5に示されているステップS5〜S8と全く同様である。従って、それらのステップS5〜S8の詳細については、図5についての説明を援用する。ステップS8の後、処理はステップS3から繰り返される。
一方、ステップS71では、データ割振部14Fはバッファ21の空き情報から、空いているフレーム・バッファの数が所定の閾値よりも多いか否かを判定する。空いているフレーム・バッファの数がその閾値よりも多い場合(ステップS71で“Yes”の場合)、処理がステップS72に進む。空いているフレーム・バッファの数がその閾値以下である場合(ステップS71で“No”の場合)、処理がステップS73に進む。
ステップS72では、データ割振部14FはタイムコードTcのフレームをハードウェア・エンコーダ151に割り振り、そのフレームをバッファ21に転送する。そして、処理はステップS74に進む。
一方、ステップS73では、データ割振部14FはタイムコードTcのフレームをソフトウェア・エンコーダ152に割り振る。そして、処理はステップS74に進む。
次いで、ステップS74では、データ割振部14Fは、タイムコードTcのフレームが符号化対象のAVデータの後尾のフレームであるか否かを判定する。そのフレームが後尾のフレームではない場合(ステップS74で“No”の場合)、処理がステップS3から繰り返され、後尾のフレームである場合(ステップS74で“Yes”の場合)、処理が終了する。
実施形態9に係る符号化装置は、符号化対象のAVデータについて固定区間と切換自由区間とをユーザに設定させることができる。この符号化装置は、固定区間でも切換自由区間でもない区間については、実施形態1に係る符号化装置と同様に、切換位置検出部18Fによって割り振り先の切換位置を、編集情報から検出する。編集部13Fが、編集されたAVデータをメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14Fが各切換位置でそのAVデータの割り振り先を、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152の一方から他方に切り換える。それにより、両エンコーダ151、152が並列してAVデータの符号化処理を行う。この符号化装置では、固定区間でも切換自由区間でもない区間については、実施形態1に係る符号化装置と同様に、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、実施形態9に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、実施形態1に係る符号化装置と同様に、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、同じ編集処理が継続されているAVデータの部分を同じエンコーダで符号化するので、その部分の画質を均一にできる。
実施形態9に係る符号化装置は更に、符号化対象のAVデータの切換自由区間については、バッファ21の空き領域が閾値以下まで減った場合、データ割振部14Fにより、そのAVデータの一部を、切換位置に拘らず、ソフトウェア・エンコーダ152に割り振る。それにより、ハードウェア・エンコーダ151による符号化処理を常に継続しつつ、ソフトウェア・エンコーダ152による符号化処理を並列して実行できる。このようにして、この符号化装置はその全体の符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。
《実施形態10》
図26は、本発明の実施形態10による編集部13Fと符号化部11Gとのブロック図である。図26を参照するに、符号化部11Gは、データ割振部14G、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、切換位置検出部18F、CPU負荷検出部23、割り振り割合設定部24、および、第2データベース25を含む。符号化部11Gは、データ割振部14G、切換位置検出部18F、CPU負荷検出部23、割り振り割合設定部24、および、第2データベース25を除き、図3に示されている要素と同様な要素を含む。図26ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3に示されている要素についての説明を援用する。更に、データ割振部14Gの動作は、図3に示されているデータ割振部14の動作と同様な部分を含む。従って、以下、データ割振部14Gの動作については、図3に示されているデータ割振部14の動作とは異なる部分を説明し、同様な部分の詳細については、図3に示されているデータ割振部14についての説明を援用する。一方、編集部13Fと切換位置検出部18Fとは、図22に示されている編集部13Fと切換位置検出部18Fと全く同様に動作する。従って、編集部13Fと切換位置検出部18Fとの詳細については、図22に示されている編集部13Fと切換位置検出部18Fとについての説明を援用する。
CPU負荷検出部23は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。CPU負荷検出部23はコンピュータ端末のOS27の提供するAPIを利用してCPU10の使用率を所定の時間間隔で計測する。CPU負荷検出部23は更に、CPU10の使用率からその負荷を評価し、リアルタイムに割り振り割合設定部24に通知する。例えばCPU負荷検出部23は、CPU10の使用率の値が取り得る全範囲0〜100%を数段階に分け、計測された使用率がいずれの段階に属するかでCPU10の負荷を評価する。計測されたCPU10の使用率の属する段階が変わったとき、CPU負荷検出部23はその変化を、変化後の段階の種類と共に、割り振り割合設定部24に通知する。例えば、CPU10の使用率の段階を、0〜20%、20〜80%、80〜100%の3段階に分けた場合を考える。計測されたCPU10の使用率が第1段階0〜20%から第2段階20〜80%に変わったときに、CPU負荷検出部23は、その変化が生じたことと、その変化後の段階が第2段階20〜80%であることとを共に、割り振り割合設定部24に通知する。
割り振り割合設定部24は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。割り振り割合設定部24はデータ割振部14Gから所定の信号を受けたとき、CPU負荷検出部23にCPU10の使用率の段階の変化を通知させる。CPU負荷検出部23から段階の変化が通知されたとき、割り振り割合設定部24はその変化後の段階に応じて、両エンコーダ151、152に単位時間当たりに割り振るデータ単位数の割合、例えばフレーム数の比を決める。その割合はCPU10の使用率の段階ごとに予め評価され、メモリ部20に第2データベース25として記憶されている。第2データベース25では、データ単位数の割合として整数比HFI:SFIが記憶されている。例えば、各整数比HFI:SFIを構成する2つの整数の和HFI+SFIは、CPU10の使用率を計測する時間間隔で編集部13Fによって編集されるデータ単位の総数より小さく設定されている。また、CPU10の使用率が高い段階ほど、ソフトウェア・エンコーダ152に割り振られるデータ単位数の割合が低く設定されている。すなわち、CPU10の負荷が重いほど、ソフトウェア・エンコーダ152に単位時間当たりに供給されるデータ単位数が抑えられている。割り振り割合設定部24は、CPU負荷検出部23からCPU10の使用率の段階を通知されたとき、その段階に対応するデータ単位数の割合を第2データベース25から検索してデータ割振部14Gに通知する。
データ割振部14Gは、編集部13Fが符号化対象のデータ単位をメモリ部20内の入力バッファ領域BIに書き込むごとに、そのデータ単位からタイムコードを読み取って切換位置検出部18Fに渡す。そのタイムコードに応じて切換位置検出部18Fから、そのタイムコードの示す位置が切換自由区間内であることを通知された場合、データ割振部14Gは、まず割り振り割合設定部24に、その時点でのCPU10の使用率の段階に対応するデータ単位数の割合を通知させる。それにより、データ割振部14Gは、割り振り割合設定部24から新たな割合が通知されるまで、そのデータ単位以降に入力バッファ領域BIに書き込まれるデータ単位を、通知された割合で両エンコーダ151、152に交互に割り振る。例えばデータ単位が1フレームであり、通知されたフレーム数の比が2:1である場合、データ割振部14Fは、入力バッファ領域BIから二枚のフレームを連続してハードウェア・エンコーダ151に割り振るごとに、一枚のフレームをソフトウェア・エンコーダ152に割り振る。
上記のタイムコードに応じて切換位置検出部18Fから、そのタイムコードの示す位置が固定区間内であることが通知された場合、または、固定区間内であることも、切換自由区間内であることも通知されなかった場合、データ割振部14Gは、図22に示されているデータ割振部14Fと同様に動作する。
図24および図27は、図26に示されている符号化部11GによるAVデータの割り振り処理のフローチャートである。以下、図27を参照しながら、その割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図27は、図5または図23に示されているステップと同様なステップを含む。従って、図27ではそれら同様なステップに対して、図5または図23に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図5または図23についての説明を援用する。
例えば、編集部13Fによって、符号化対象のAVデータに関する編集情報が作成されたときに、以下の処理は開始される。
最初に、ステップS1では、切換位置検出部18Fが、符号化対象のAVデータに関する編集情報から固定区間および切換自由区間を検出し、固定区間でも切換自由区間でもない区間に関する編集情報から割り振り先の切換位置を検出する。切換位置検出部18Fは更に、各固定区間および各切換自由区間の範囲を示すタイムコード、および、各切換位置を示すタイムコードT(sw)を記憶する。なお、ステップS1の詳細は、図25に示されているフローチャートと全く同様であるので、その詳細については、実施形態9の説明中に記載された図25の説明を援用する。
ステップS2では、切換位置検出部18Fは検出対象の切換位置の番号swを1に初期化する。一方、データ割振部14Gは、符号化対象のAVデータの先頭フレームの割り振り先をハードウェア・エンコーダ151とソフトウェア・エンコーダ152とのいずれかに決める。
次いで、ステップS3では、編集部13Fが、編集されたAVデータの各フレームを先頭から順に、メモリ部20の入力バッファ領域BIに書き込む。
次いで、ステップS4では、編集部13Fが入力バッファ領域BIに符号化対象の1フレームを書き込むごとに、データ割振部14GがそのフレームからタイムコードTcを読み取って切換位置検出部18Fに渡す。
次いで、ステップS9では、切換位置検出部18Fは、タイムコードTcのフレームが固定区間内であるか否かを判定する。そのフレームが固定区間内である場合(ステップS9で“Yes”の場合)、処理がステップS9Aに進む。一方、そのフレームが固定区間内ではない場合(ステップS9で“No”の場合)、処理がステップS10に進む。
次いで、ステップS9Aでは、切換位置検出部18Fは、タイムコードTcのフレームが固定区間内であることをデータ割振部14Gに通知する。それにより、データ割振部14GはそのタイムコードTcのフレームの割り振り先を、その固定区間で固定されたエンコーダに設定する。そして、処理がステップS3から繰り返される。
一方、ステップS10では、切換位置検出部18Fは、タイムコードTcのフレームが切換自由区間内であるか否かを判定する。そのフレームが切換自由区間内ではない場合(ステップS10で“No”の場合)、処理がステップS10Aに進む。一方、そのフレームが切換自由区間内である場合(ステップS10で“Yes”の場合)、処理がステップS80に進む。
次いで、ステップS10Aでは、切換位置検出部18Fは、タイムコードTcのフレームが切換自由区間内ではないことをデータ割振部14Gに通知する。それにより、処理が、図24に示されているステップS5〜S8の順に進む。ここで、図24に示されているステップS5〜S8はいずれも、図5に示されているステップS5〜S8と全く同様である。従って、それらのステップS5〜S8の詳細については、図5についての説明を援用する。ステップS8の後、処理はステップS3から繰り返される。
一方、ステップS80では、切換位置検出部18Fは、タイムコードTcのフレームが切換自由区間内であることをデータ割振部14Gに通知する。その通知に応じて、データ割振部14Gは、両エンコーダ151、152に単位時間当たりに割り振るフレーム数の比を所定値に設定する。データ割振部14Gは更に、割り振り割合設定部24に所定の信号を出力する。その信号に応じて、割り振り割合設定部24は、まず、以前CPU負荷検出部23にCPU10の使用率を計測させた時点から所定時間が経過したか否かを判定する。所定時間が経過している場合(ステップS80で“Yes”の場合)、処理がステップS81に進み、経過していない場合(ステップS80で“No”の場合)、処理がステップS84に進む。
次いで、ステップS81では、割り振り割合設定部24はCPU負荷検出部23に、CPU10の使用率を計測させる。
次いで、ステップS82では、CPU負荷検出部23は、計測されたCPU10の使用率の属する段階を特定し、以前の段階と同じであるか否かを判断する。段階が変わった場合(ステップS82で“Yes”の場合)、処理がステップS83に進み、段階が同じである場合(ステップS82で“No”の場合)、処理がステップS84に進む。
次いで、ステップS83では、CPU負荷検出部23は、CPU10の使用率の属する段階が変化したことを、変化後の段階の種類と共に、割り振り割合設定部24に通知する。割り振り割合設定部24は、通知された使用率の段階に対応するフレーム数の比を第2データベース25から検索してデータ割振部14Gに渡す。それにより、データ割振部14Gは、ステップS80で設定されたフレーム数の比をその通知された比に更新する。
次いで、ステップS84では、データ割振部14GはタイムコードTcのフレームを、設定されたフレーム数の比に従って両エンコーダ151、152のいずれかに割り振る。
次いで、ステップS85では、データ割振部14Gは、タイムコードTcのフレームが符号化対象のAVデータの後尾のフレームであるか否かを判定する。そのフレームが後尾のフレームでない場合(ステップS85で“No”の場合)、処理がステップS3から繰り返される。一方、そのフレームが後尾のフレームである場合(ステップS85で“Yes”の場合)、処理が終了する。
実施形態10に係る符号化装置は、符号化対象のAVデータについて固定区間および切換自由区間をユーザに設定させることができる。この符号化装置は、固定区間でも切換自由区間でもない区間については、実施形態1に係る符号化装置と同様に、切換位置検出部18Fによって割り振り先の切換位置を、編集情報から検出する。編集部13Fが、編集されたAVデータをメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14Gが各切換位置でそのAVデータの割り振り先を、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152の一方から他方に切り換える。それにより、両エンコーダ151、152が並列してAVデータの符号化処理を行う。この符号化装置では、固定区間でも切換自由区間でもない区間については、実施形態1に係る符号化装置と同様に、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、実施形態10に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、実施形態1に係る符号化装置と同様に、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、同じ編集処理が継続されているAVデータの部分を同じエンコーダで符号化するので、その部分の画質を均一にできる。
実施形態10に係る符号化装置は更に、符号化対象のAVデータの切換自由区間については、編集部13Fによってメモリ部20内の入力バッファ領域BIに書き込まれたデータ単位を、データ割振部14Gにより、切換位置に拘らず、両エンコーダ151、152に所定のデータ単位数の割合で交互に供給する。この符号化装置はその上、CPU負荷検出部23によってCPU10の使用率の段階をリアルタイムで計測し、割り振り割合設定部24により、そのCPU10の使用率の段階に応じて上記のデータ単位数の割合を設定する。その結果、両エンコーダ151、152が、CPU10の負荷の変動に関わらず、符号化対象のAVデータの入力を待つ時間を短縮させつつ、またはその時間の発生を抑制しつつ、そのAVデータの符号化処理を並列に実行できる。このようにして、この符号化装置はその全体の符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。
《実施形態11》
図28は、本発明の実施形態11による編集部13Fと符号化部11Hとのブロック図である。図28を参照するに、符号化部11Hは、データ割振部14H、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、切換位置検出部18F、割り振り割合設定部24H、および処理速度測定部28を含む。符号化部11Hは、データ割振部14H、切換位置検出部18F、割り振り割合設定部24H、および処理速度測定部28を除き、図3に示されている要素と同様な要素を含む。図28ではそれら同様な要素に対して、図3に示されている符号と同じ符号を付す。また、それら同様な要素の詳細については、図3に示されている要素についての説明を援用する。更に、データ割振部14Hの動作は、図3に示されているデータ割振部14の動作と同様な部分を含む。従って、以下、データ割振部14Hの動作については、図3に示されているデータ割振部14の動作とは異なる部分を説明し、同様な部分の詳細については、図3に示されているデータ割振部14についての説明を援用する。一方、編集部13Fと切換位置検出部18Fとは、図22に示されている編集部13Fと切換位置検出部18Fと全く同様に動作する。従って、編集部13Fと切換位置検出部18Fとの詳細については、図22に示されている編集部13Fと切換位置検出部18Fとについての説明を援用する。
処理速度測定部28は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。処理速度測定部28は、データ割振部14Hによって各エンコーダ151、152に符号化対象のデータ単位が割り振られた時点から、そのデータ単位が各エンコーダ151、152によって符号化されてメモリ部20の各出力バッファ領域BO1、BO2に書き込まれた時点までの時間を計測する。具体的には、処理速度測定部28は、データ割振部14Hから合成部16に、各エンコーダ151、152に割り振られたデータ単位の番号とそのデータ単位の符号化後の書き込み先のアドレスとが渡された時点から時間計測を開始し、そのアドレスと同じアドレスがいずれかのエンコーダ151、152から合成部16に出力された時点で時間計測を終了する。処理速度測定部28は更に、計測された時間から各エンコーダ151、152の符号化処理速度を算定して割り振り割合設定部24Hに渡す。ここで、符号化処理速度は、各エンコーダ151、152が単位時間当たりに符号化可能なデータ単位数をいう。処理速度測定部28はその他に、各エンコーダ151、152から各出力バッファ領域BO1、BO2に出力されるAVデータのビットレートを計測して、それらのビットレートから各エンコーダ151、152の符号化処理速度を算定してもよい。
割り振り割合設定部24Hは、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。割り振り割合設定部24Hはデータ割振部14Hから所定の信号を受けたとき、処理速度測定部28に各エンコーダ151、152の符号化処理速度を算定させて通知させる。割り振り割合設定部24Hは更に、通知された各エンコーダ151、152の符号化処理速度からそれらの比を求め、その時点でデータ割振部14Hによって両エンコーダ151、152に単位時間当たりに割り振られるデータ単位数の割合と比べる。その符号化処理速度の比がそのデータ単位数の割合とは異なる場合、割り振り割合設定部24Hはその符号化処理速度の比を新たなデータ単位数の割合としてデータ割振部14Hに通知する。ここで、符号化処理速度の比は一般に整数比ではないので、割り振り割合設定部24Hは符号化処理速度の比を予め整数比で近似しておく。
データ割振部14Hは、編集部13Fが符号化対象のデータ単位をメモリ部20内の入力バッファ領域BIに書き込むごとに、そのデータ単位からタイムコードを読み取って切換位置検出部18Fに渡す。そのタイムコードに応じて切換位置検出部18Fから、そのタイムコードの示す位置が切換自由区間内であることを通知された場合、データ割振部14Hは、まず、割り振り割合設定部24Hに、その時点での両エンコーダ151、152間の符号化処理速度の比を通知させる。それにより、データ割振部14Hは、割り振り割合設定部24Hから新たな比が通知されるまで、そのデータ単位以降に入力バッファ領域BIに書き込まれるデータ単位を、通知された比で両エンコーダ151、152に割り振る。例えば、データ単位が1フレームであり、通知されたフレーム数の比が2:1である場合、データ割振部14Hは、入力バッファ領域BIから二枚のフレームを連続してハードウェア・エンコーダ151に割り振るごとに、一枚のフレームをソフトウェア・エンコーダ152に割り振る。
上記のタイムコードに応じて切換位置検出部18Fから、そのタイムコードの示す位置が固定区間内であることが通知された場合、または、固定区間内であることも、切換自由区間内であることも通知されなかった場合、データ割振部14Hは、図22に示されているデータ割振部14Fと同様に動作する。
図29は、図28に示されている符号化部11HによるAVデータの割り振り処理のフローチャートである。以下、図29を参照しながら、その割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。また、図29は、図5または図23に示されているステップと同様なステップを含む。従って、図29ではそれら同様なステップに対して、図5または図23に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図5または図23についての説明を援用する。
例えば、編集部13Fによって、符号化対象のAVデータに関する編集情報が作成されたときに、以下の処理は開始される。
最初に、ステップS1では、切換位置検出部18Fが、符号化対象のAVデータに関する編集情報から固定区間および切換自由区間を検出し、固定区間でも切換自由区間でもない区間に関する編集情報から割り振り先の切換位置を検出する。切換位置検出部18Fは更に、各固定区間および各切換自由区間の範囲を示すタイムコード、および、各切換位置を示すタイムコードT(sw)を記憶する。なお、ステップS1の詳細は、図25に示されているフローチャートと全く同様であるので、その詳細については、実施形態9の説明中に記載された図25の説明を援用する。
ステップS2では、切換位置検出部18Fは検出対象の切換位置の番号swを1に初期化する。一方、データ割振部14Hは、符号化対象のAVデータの先頭フレームの割り振り先をハードウェア・エンコーダ151とソフトウェア・エンコーダ152とのいずれかに決める。
次いで、ステップS3では、編集部13Fが、編集されたAVデータの各フレームを先頭から順に、メモリ部20の入力バッファ領域BIに書き込む。
次いで、ステップS4では、編集部13Fが入力バッファ領域BIに符号化対象の1フレームを書き込むごとに、データ割振部14HがそのフレームからタイムコードTcを読み取って切換位置検出部18Fに渡す。
次いで、ステップS9では、切換位置検出部18Fは、タイムコードTcのフレームが固定区間内であるか否かを判定する。そのフレームが固定区間内である場合(ステップS9で“Yes”の場合)、処理がステップS9Aに進む。一方、そのフレームが固定区間内ではない場合(ステップS9で“No”の場合)、処理がステップS10に進む。
次いで、ステップS9Aでは、切換位置検出部18Fは、タイムコードTcのフレームが固定区間内であることをデータ割振部14Hに通知する。それにより、データ割振部14HはそのタイムコードTcのフレームの割り振り先を、その固定区間で固定されたエンコーダに設定する。そして、処理がステップS3から繰り返される。
一方、ステップS10では、切換位置検出部18Fは、タイムコードTcのフレームが切換自由区間内であるか否かを判定する。そのフレームが切換自由区間内ではない場合(ステップS10で“No”の場合)、処理がステップS10Aに進む。一方、そのフレームが切換自由区間内である場合(ステップS10で“Yes”の場合)、処理がステップS91に進む。
次いで、ステップS10Aでは、切換位置検出部18Fは、タイムコードTcのフレームが切換自由区間内ではないことをデータ割振部14Hに通知する。それにより、処理が、図24に示されているステップS5〜S8の順に進む。ここで、図24に示されているステップS5〜S8はいずれも、図5に示されているステップS5〜S8と全く同様である。従って、それらのステップS5〜S8の詳細については、図5についての説明を援用する。ステップS8の後、処理はステップS3から繰り返される。
一方、ステップS91では、切換位置検出部18Fは、タイムコードTcのフレームが切換自由区間内であることをデータ割振部14Hに通知する。その通知に応じて、データ割振部14Hは、両エンコーダ151、152に単位時間当たりに割り振るフレーム数の比を所定値に設定する。データ割振部14Hは更に、割り振り割合設定部24Hに所定の信号を出力する。その信号に応じて、割り振り割合設定部24Hは、まず、処理速度測定部28に各エンコーダ151、152の符号化処理速度を計測させる。
次いで、ステップS92では、割り振り割合設定部24Hは処理速度測定部28から各エンコーダ151、152の符号化処理速度を受け取り、それらの比を求めて整数比で近似する。割り振り割合設定部24Hは更に、その符号化処理速度の比を、その時点でデータ割振部14Hに設定されているフレーム数の比と比べる。その符号化処理速度の比がそのフレーム数の比とは異なる場合(ステップS92で“Yes”の場合)、処理がステップS93に進む。その符号化処理速度の比がそのフレーム数の比と等しい場合(ステップS92で“No”の場合)、処理がステップS94に進む。
次いで、ステップS93では、割り振り割合設定部24Hはその符号化処理速度の比をデータ割振部14Hに渡す。それにより、データ割振部14Hはフレーム数の比を、その通知された比に更新する。
次いで、ステップS94では、データ割振部14HはタイムコードTcのフレームを、設定されたフレーム数の比に従って両エンコーダ151、152のいずれかに割り振る。
次いで、ステップS95では、データ割振部14Hは、タイムコードTcのフレームが符号化対象のAVデータの後尾のフレームであるか否かを判定する。そのフレームが後尾のフレームでない場合(ステップS95で“No”の場合)、処理がステップS3から繰り返される。一方、そのフレームが後尾のフレームである場合(ステップS95で“Yes”の場合)、処理が終了する。
実施形態11に係る符号化装置は、符号化対象のAVデータについて固定区間および切換自由区間をユーザに設定させることができる。この符号化装置は、固定区間でも切換自由区間でもない区間については、実施形態1に係る符号化装置と同様に、切換位置検出部18Fによって割り振り先の切換位置を、編集情報から検出する。編集部13Fが、編集されたAVデータをメモリ部20の入力バッファ領域BIに書き込むと、データ割振部14Fが各切換位置でそのAVデータの割り振り先を、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152の一方から他方に切り換える。それにより、両エンコーダ151、152が並列してAVデータの符号化処理を行う。この符号化装置では、固定区間でも切換自由区間でもない区間については、実施形態1に係る符号化装置と同様に、ハードウェア・エンコーダ151とソフトウェア・エンコーダ152との符号化処理の違いに起因する画質の変化は、多少なりとも存在したとしても、この符号化されたAVデータを復号して再構成した映像からは、視聴者には感知され難くなる。従って、実施形態11に係る符号化装置は、両エンコーダ151、152が並列して符号化したAVデータの画質を良好にできる。なお、この符号化装置は、実施形態1に係る符号化装置と同様に、一つの切換位置から次の切換位置までは、一連のシーンを表すAVデータの部分、または、同じ編集処理が継続されているAVデータの部分を同じエンコーダで符号化するので、その部分の画質を均一にできる。
実施形態11に係る符号化装置は更に、符号化対象のAVデータの切換自由区間については、編集部13Fによってメモリ部20内の入力バッファ領域BIに書き込まれたデータ単位を、データ割振部14Hにより、切換位置に拘らず、両エンコーダ151、152に所定のデータ単位数の割合で交互に供給する。この符号化装置はその上、処理速度測定部28によって各エンコーダ151、152の符号化処理速度を実測し、割り振り割合設定部24Hによって上記のデータ単位数の割合を、両エンコーダ151、152間での実際の符号化処理速度の比に調節する。それにより、CPU10の負荷変動に伴うソフトウェア・エンコーダ152の符号化処理速度の変動に関わらず、合成部16が各エンコーダ151、152によって符号化されたデータ単位の入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152が符号化処理を並列に実行できる。
実施形態9〜11に係る符号化装置は、AVデータの固定区間でも切換自由区間でもない区間については、実施形態1に係る符号化装置と同様に、各切換位置でAVデータの割り振り先を、両エンコーダ151、152の一方から他方に切り換える。その他に、実施形態9〜11に係る符号化装置が、実施形態4〜8に係る符号化装置のいずれかと同様にしてAVデータの割り振り先を切り換えてもよい。
実施形態4〜11に係る符号化装置は、AVデータの固定区間でも切換自由区間でもない区間については、実施形態1に係る符号化装置と同様に、切換位置検出部18によって割り振り先の切換位置を編集情報から検出する。その他に、実施形態4〜11に係る符号化装置が、実施形態2、3のいずれかと同様に、AVデータの全体または一部から割り振り先の切換位置を検出してもよい。
なお、以上の説明に関して更に以下の項目を開示する。
(項目1)
音声データおよび/または映像データを含むAVデータを符号化する符号化装置であって、
CPUと、
符号化処理用のハードウェアで構成され、符号化対象のAVデータの一部を符号化するハードウェア・エンコーダと、
前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、
前記AVデータの割り振り先の切換位置を検出する位置検出部であって、前記切換位置が、該AVデータにおいて、一つのシーンが別のシーンに切り換わる位置、編集処理の種類が所定のパターンで変更される位置、前後のデータ単位間でのシーンの変化量が所定の閾値より大きい位置、および、前後のデータ単位の両方で情報量が所定の閾値より小さい位置の少なくともいずれかである、該位置検出部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに前記AVデータを割り振ってそれぞれのエンコーダに供給するデータ割振部であって、前記切換位置において、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダの一方から他方にAVデータの供給先を切り換える、該データ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、
前記一連の符号化されたAVデータを出力する出力部と、
を備える、前記符号化装置。
(項目2)
前記一つのシーンが別のシーンに切り換わる位置および編集処理の種類が切り換わる位置が、前記AVデータの編集情報に基づいて検出される、項目1に記載の符号化装置。
(項目3)
前記編集処理の種類が所定のパターンで変更される位置および前後のデータ単位間でのシーンの変化量が所定の閾値より大きい位置が、前記AVデータに基づいて検出される、項目1に記載の符号化装置。
(項目4)
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとによる符号化の方式は共通である、項目1に記載の符号化装置。
(項目5)
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータは互いに予測関係にない、項目1に記載の符号化装置。
(項目6)
前記前後のデータ単位間でのシーンの変化量は、画面全体での映像データの差分、色成分の差分、画面全体の動きの変化量、および、画面の中の特定のオブジェクトの動きの変化量の少なくともいずれかを含む、項目1に記載の符号化装置。
(項目7)
前記編集処理の種類が所定のパターンで変更される位置は、編集対象のAVデータの復号方式、および、エフェクト処理の種類の少なくともいずれかが所定のパターンで変更される位置を含む、項目1に記載の符号化装置。
(項目8)
前記前後のデータ単位の両方で情報量が所定の閾値より小さい位置は、離散コサイン変換によって各データ単位から得られる、所定の高域周波数の変換係数の和または平均値が所定の閾値より小さい位置、および、前記ソフトウェア・エンコーダによる符号化処理の中で推定される符号化後のビットレートが所定の目標ビットレートより小さい位置の少なくともいずれかを含む、項目1に記載の符号化装置。
(項目9)
前記位置検出部は、符号化に先立って前記符号化対象のAVデータの切換位置を検出して格納し、
前記データ割振部は、格納された切換位置においてAVデータの供給先を切り換える、
項目1に記載の符号化装置。
(項目10)
前記符号化対象のAVデータについて、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る頻度の許容度を表すデータが前記位置検出部に供給され、
前記位置検出部が、前記許容度に基づいて切換位置を決定する、項目9に記載の符号化装置。
(項目11)
前記データ割振部と前記ハードウェア・エンコーダとの間に接続され、前記データ割振部によって前記ハードウェア・エンコーダに供給されるAVデータを一時記憶し、前記ハードウェア・エンコーダにAVデータを供給するバッファを更に備え、
前記データ割振部は、前記バッファの空き情報を取得し、その空き情報が所定量以上の空きを示す場合は、切換位置が到来しても前記バッファにAVデータを割り振り、その空き情報が所定量未満の空きを示す場合、ソフトウェア・エンコーダにAVデータを割り振る、項目1に記載の符号化装置。
(項目12)
前記位置検出部は、隣り合う切換位置の区間の長さに基づいて、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとによって符号化されるそれぞれの区間について、単位時間当たりに供給すべきデータ単位数の割合を決定し、その割合を表すデータを前記データ割振部に供給し、
前記データ割振部は、前記それぞれの区間において、その区間のその割合を表すデータに基づいて前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダに前記AVデータを供給する、
項目1に記載の符号化装置。
(項目13)
前記CPUは、前記符号化対象のAVデータについて符号化処理以外の他の処理も行い、
前記位置検出部は、前記他の処理を行うときの前記CPUの負荷を、検出された隣り合う切換位置の区間のAVデータに対応させて予測するCPU負荷推定部を更に含み、
前記位置検出部は、予測されたCPUの負荷に応じて、それぞれの区間のAVデータの割り振り先を決定し、
前記データ割振部は、前記それぞれの区間において、前記決定された割り振り先にAVデータを供給する、
項目1に記載の符号化装置。
(項目14)
前記CPUは、前記符号化対象のAVデータについて符号化処理以外の他の処理も行い、
前記CPUの負荷を検出するCPU負荷検出部を更に備え、
前記データ割振部は、前記CPUに、一つの切換位置から所定の長さのAVデータについて前記他の処理を符号化処理よりも先行させて、その先行期間に前記CPU負荷検出部によって検出された前記他の処理による前記CPUの負荷に応じて、前記切換位置から次の切換位置までの区間のAVデータの割り振り先を決定する、
項目1に記載の符号化装置。
(項目15)
前記データ割振部は、前記AVデータを、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの一方には前記AVデータの先頭から後尾に向かって割り振り、他方にはAVデータの後尾から先頭に向かって割り振る、項目1に記載の符号化装置。
(項目16)
前記位置検出部は、前記先頭の区間と前記後尾の区間とについて、前記CPUの行う処理による前記CPUの負荷を予測し、予測された前記CPUの負荷に基づいて、前記先頭の区間の割り振り先を決定する、項目15に記載の符号化装置。
(項目17)
前記AVデータについて、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダの一方に割り振られるべき固定区間を表すデータが前記位置検出部に供給され、
前記位置検出部は、前記固定区間では割り振り先の切換位置を検出しない、
項目1に記載の符号化装置。
(項目18)
前記AVデータについて、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダのいずれにも割り振り可能な切換自由区間を表すデータが前記位置検出部に供給され、
前記位置検出部は、前記切換自由区間では割り振り先の切換位置を検出しない、
項目1に記載の符号化装置。
(項目19)
前記データ割振部と前記ハードウェア・エンコーダとの間に接続され、前記データ割振部によって前記ハードウェア・エンコーダに割り振られるAVデータを記憶し、前記ハードウェア・エンコーダにAVデータを供給するバッファを更に備え、
前記データ割振部は、前記バッファの空き情報を取得し、前記符号化対象のAVデータの所定区間については、前記切換位置に拘らず、前記空き情報に基づいて前記符号化対象のAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目18に記載の符号化装置。
(項目20)
前記CPUの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部を更に備え、
前記データ割振部は、前記符号化対象のAVデータの所定区間については、前記切換位置に拘らず、前記符号化対象のAVデータを前記割合で前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目18に記載の符号化装置。
(項目21)
前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定する処理速度測定部と、
測定された符号化処理速度に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部は、前記符号化対象のAVデータの所定区間については、前記切換位置に拘らず、前記符号化対象のAVデータを前記割合で前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目18に記載の符号化装置。
(項目22)
CPUと、
音声データおよび/または映像データを含むAVデータを編集する編集部と、
符号化処理用の回路で構成され、編集されたAVデータの一部を符号化するハードウェア・エンコーダと、
前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して、前記編集されたAVデータの他の一部を符号化するソフトウェア・エンコーダと、
前記編集されたAVデータの割り振り先の切換位置を検出する位置検出部であって、前記切換位置が、該AVデータにおいて、一つのシーンが別のシーンに切り換わる位置、編集処理の種類が所定のパターンで変更される位置、前後のデータ単位間でのシーンの変化量が所定の閾値より大きい位置、および、前後のデータ単位の両方で情報量が所定の閾値より小さい位置の少なくともいずれかである、該位置検出部と、
前記編集されたAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振ってそれぞれのエンコーダに供給するデータ割振部であって、前記切換位置において、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダの一方から他方にAVデータの供給先を切り換える、該データ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、
前記一連の符号化されたAVデータを出力する出力部と、
を備えているビデオ編集システム。
(項目23)
前記位置検出部は、前記編集部から編集情報を取得し、編集されるAVデータの切換位置を、前記編集情報から検出して格納し、
前記データ割振部は、格納された切換位置においてAVデータの供給先を切り換える、
項目22に記載のビデオ編集システム。
(項目24)
前記位置検出部は、隣り合う切換位置の区間の長さに基づいて、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとによって符号化されるそれぞれの区間について、単位時間当たりに供給すべきデータ単位数の割合を決定し、その割合を表すデータを前記編集部と前記データ割振部とに供給し、
前記編集部は、前記それぞれの区間において、その区間のその割合を表すデータに基づいて、編集されたAVデータを前記データ割振部に供給し、
前記データ割振部は、前記それぞれの区間において、その区間のその割合を表すデータに基づいて、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダに前記AVデータを供給する、
項目22に記載のビデオ編集システム。
(項目25)
前記位置検出部は、前記編集部が編集情報に基づいて編集されたAVデータを出力するときの前記CPUの負荷を、前記編集情報から、検出された隣り合う切換位置の区間のAVデータに対応させて予測するCPU負荷推定部を更に含み、
前記位置検出部は、予測された前記CPUの負荷に応じて、それぞれの区間のAVデータの割り振り先を決定し、
前記データ割振部は、前記それぞれの区間において、前記決定された割り振り先にAVデータを供給する、
項目22に記載のビデオ編集システム。
(項目26)
前記CPUの負荷を検出するCPU負荷検出部を更に備え、
前記データ割振部は、前記編集部に、一つの切換位置から所定の長さのAVデータの出力を符号化処理よりも先行させて、その先行期間に前記CPU負荷検出部によって検出された前記編集部の出力処理による前記CPUの負荷に応じて、前記切換位置から次の切換位置までの区間のAVデータの割り振り先を決定する、
項目22に記載のビデオ編集システム。
(項目27)
前記編集部は、前記編集されたAVデータを、先頭から後尾に向かって出力すると共に、後尾から先頭に向かっても出力し、
前記データ割振部は、前記AVデータを、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの一方には前記AVデータの先頭から後尾に向かって割り振り、他方には前記AVデータの後尾から先頭に向かって割り振る、
項目22に記載のビデオ編集システム。
(項目28)
前記位置検出部は、前記先頭の区間と前記後尾の区間とについて、前記編集部の行う出力処理による前記CPUの負荷を予測し、予測された前記CPUの負荷に基づいて、前記先頭の区間の割り振り先を決定する、項目27に記載のビデオ編集システム。
(項目29)
前記編集されたAVデータについて、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの一方に割り振られるべき固定区間を表すデータが、前記編集部から前記位置検出部に供給される編集情報に含まれ、
前記位置検出部は、前記固定区間では割り振り先の切換位置を検出しない、
項目22に記載のビデオ編集システム。
(項目30)
前記編集されたAVデータについて、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダのいずれにも割り振り可能な切換自由区間を表すデータが、前記編集部から前記位置検出部に供給される編集情報に含まれ、
前記位置検出部は、前記切換自由区間では割り振り先の切換位置を検出しない、
項目22に記載のビデオ編集システム。
(項目31)
音声データおよび/または映像データを含むAVデータを符号化する方法であって、
符号化対象のAVデータを受信するステップと、
前記AVデータの割り振り先の切換位置を検出するステップであって、前記切換位置が、該AVデータにおいて、一つのシーンが別のシーンに切り換わる位置、編集処理の種類が所定のパターンで変更される位置、前後のデータ単位間でのシーンの変化量が所定の閾値より大きい位置、および、前後のデータ単位の両方で情報量が所定の閾値より小さい位置の少なくともいずれかである、該ステップと、
前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップであって、前記切換位置において、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダの一方から他方にAVデータの供給先を切り換え、該ハードウェア・エンコーダが符号化処理用のハードウェアで構成されてなり、該ソフト・ソフトウェア・エンコーダがCPUを利用してAVデータを符号化するように構成されてなる、該ステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで、供給されたAVデータを符号化するステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成するステップと、
前記一連の符号化されたAVデータを出力するステップと、
を含む、前記方法。
(項目32)
音声データおよび/または映像データを含むAVデータを符号化するプログラムであって、
CPUと、
符号化処理専用のハードウェアで構成され、符号化対象のAVデータの一部を符号化するハードウェア・エンコーダと、
前記CPUを利用して、前記符号化対象のAVデータの他の一部を符号化するソフトウェア・エンコーダと、
を備えた装置に、
前記符号化対象のAVデータを受信するステップと、
前記AVデータの割り振り先の切換位置を検出するステップであって、前記切換位置が、該AVデータにおいて、一つのシーンが別のシーンに切り換わる位置、編集処理の種類が所定のパターンで変更される位置、前後のデータ単位間でのシーンの変化量が所定の閾値より大きい位置、および、前後のデータ単位の両方で情報量が所定の閾値より小さい位置の少なくともいずれかである、該ステップと、
前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップであって、前記切換位置において、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダの一方から他方にAVデータの供給先を切り換える、該ステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで、供給されたAVデータを符号化するステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成するステップと、
前記一連の符号化されたAVデータを出力するステップと、
を実行させるためのプログラム。