Nothing Special   »   [go: up one dir, main page]

JP2011077564A - 映像および音声データの符号化装置とその符号化方法、及びビデオ編集システム - Google Patents

映像および音声データの符号化装置とその符号化方法、及びビデオ編集システム Download PDF

Info

Publication number
JP2011077564A
JP2011077564A JP2008184758A JP2008184758A JP2011077564A JP 2011077564 A JP2011077564 A JP 2011077564A JP 2008184758 A JP2008184758 A JP 2008184758A JP 2008184758 A JP2008184758 A JP 2008184758A JP 2011077564 A JP2011077564 A JP 2011077564A
Authority
JP
Japan
Prior art keywords
data
encoder
unit
encoding
editing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008184758A
Other languages
English (en)
Inventor
Atsuyuki Tabuchi
敦之 田渕
Naoya Yamazaki
直也 山崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
THOMSON CANOPUS CO Ltd
Original Assignee
THOMSON CANOPUS CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by THOMSON CANOPUS CO Ltd filed Critical THOMSON CANOPUS CO Ltd
Priority to JP2008184758A priority Critical patent/JP2011077564A/ja
Priority to PCT/JP2009/001660 priority patent/WO2009128227A1/en
Publication of JP2011077564A publication Critical patent/JP2011077564A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

【課題】映像データの符号化処理を高速化できる符号化装置を提供する。
【解決手段】ハードウェア・エンコーダ151は符号化処理用のハードウェアで構成され、AVデータの一部を符号化する。ソフトウェア・エンコーダ152はCPU10を利用して、ハードウェア・エンコーダ151による符号化処理と並行してAVデータの他の一部を符号化する。データ割振部14はAVデータを両エンコーダ151,152に割り振る。合成部16は、各エンコーダで符号化された映像データを所定の順序に配列して一連の符号化された映像データに合成する。出力部17はその一連の符号化された映像データを出力する。符号化装置は、ハードウェア・エンコーダ151のみにより達成される符号化処理速度よりも大きな符号化処理速度で符号化可能である。
【選択図】図3

Description

本発明は映像データおよび音声データの符号化処理に関する。
ビデオ編集システムはユーザによる映像データの編集作業を支援するためのシステムであり、一般に、パーソナルコンピュータなど、汎用のCPUを備えたコンピュータ端末に所定のアプリケーションプログラムを実行させることによって実現される。ビデオ編集システムは、予めビデオカメラ等などからHDDに1つ以上の映像データおよび音声データを取り込み、それらから1本の映像データストリームを編集する。編集された音声・映像データストリームはシステムによって圧縮された後、又は非圧縮データのまま、同じシステム内でHDDやDVDなどの任意の記録媒体に記録され、あるいは放送などのために送出され、又はIEEE1394等のインタフェースを通して外部に出力される。
ビデオ編集システムは、音声・映像データストリームの圧縮に様々な方式の符号化を利用する。近年、例えばHDV方式で見られるように、ストリーム1本当たりの映像データ量が膨大である。従って、近年のビデオ編集システムでは、符号化処理に要する時間が増加する傾向にある。
音声・映像データの符号化処理を高速にするための従来の手法としては、符号化処理を行うCPUの数を増やして、並列に符号化処理を実行させる手法がある。その他に、一連の符号化処理の一部を専用のハードウェアに処理させ、残りをCPUに処理させる手法がある。また、符号化処理専用のチップや回路をシステムに搭載し、それらに映像データの符号化処理全体を行わせる手法がある。
特開2004−356851号公報 特開平06−339018号公報
符号化処理専用のチップや回路には符号化処理速度の上限があり、ユーザの所望の速度に達しない場合は、その符号化処理専用のチップや回路の処理速度を更に向上させることや、符号化処理専用のチップを複数使用して符号化処理を並列に行わせることが考えられる。
しかしながら、符号化処理専用のチップ単体や回路の処理速度を向上させるには、回路設計を変更しなければならない。これは、符号化処理専用のチップ単体や回路の製造コストを上昇させる。特に、符号化処理専用のチップは単体でも一般に規模が大きく高価であるため、これを追加すると大規模化し、その製造コストが大幅に上昇してしまう。このように、符号化処理専用のチップや回路では、その製造コストの増加を抑制しつつ、符号化処理を更に高速にするのは難しい。
本発明の目的は、上記の問題を解決した新規かつ有用な符号化装置とその符号化方法、及びビデオ編集システムを提供することである。本発明の具体的な目的は、映像データや音声データの符号化処理を高速化可能な符号化装置とその符号化方法、及びビデオ編集システムを提供することである。
本発明の一観点によれば、音声データおよび/または映像データを含むAVデータを符号化する符号化装置であって、CPU(Central Processing Unit)と、符号化処理用のハードウェアで構成され、前記AVデータの一部を符号化するハードウェア・エンコーダと、前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、前記一連の符号化されたAVデータを出力する出力部と、を備え、前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、符号化装置が提供される。
本発明によれば、ハードウェア・エンコーダとソフトウェア・エンコーダによって、音声データおよび/または映像データを含むAVデータを並列に符号化処理するので、ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化でき、符号化処理速度を高速化できる。
本明細書及び特許請求の範囲において、「ハードウェア・エンコーダ」は、(i)映像データや音声データの符号化処理の一部又は全体を実行するために専用に設計されたICやモジュールなどの回路、又は(ii)映像データや音声データの符号化処理の一部又は全体と、符号化処理以外の処理とを実行可能なCPUやDSP(Digital Signal Processor)などの演算回路であって、その演算回路が映像データや音声データの符号化処理の一部又は全体を実行している間はその符号化処理の一部又は全体を排他的に行う演算回路である。
本明細書及び特許請求の範囲において、「ソフトウェア・エンコーダ」は、汎用のCPUやDSPなど、映像データの符号化処理以外の他の処理にも利用されている演算回路で映像データの符号化処理用ソフトウェアを実行することによって、映像データの符号化処理を他の処理と並列に行うエンコーダをいう。
本発明の他の観点によれば、CPUと、音声データおよび/または映像データを含むAVデータを編集する編集部と、符号化処理用の回路で構成され、前記編集されたAVデータの一部を符号化するハードウェア・エンコーダと、前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して、前記編集されたAVデータの他の一部を符号化するソフトウェア・エンコーダと、前記編集されたAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、前記一連の符号化されたAVデータを出力する出力部と、を備え、前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化するビデオ編集システムが提供される。
本発明によれば、ハードウェア・エンコーダとソフトウェア・エンコーダによって、音声データおよび/または映像データを含むAVデータを並列に符号化処理するので、ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化でき、符号化処理速度を高速化できる。
本発明のその他の観点によれば、符号化処理用のハードウェアで構成され、AVデータの一部を符号化するハードウェア・エンコーダと、CPUを利用して、前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、を使用して映像データを符号化する方法であって、前記AVデータを受信するステップと、前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダがそれぞれ割り振られたAVデータを符号化するステップと、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成するステップと、前記一連の符号化されたAVデータを出力するステップと、を含み、前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、方法が提供される。
本発明によれば、ハードウェア・エンコーダとソフトウェア・エンコーダによって、音声データおよび/または映像データを含むAVデータを並列に符号化処理するので、ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化でき、符号化処理速度を高速化できる。
本発明によれば、映像データや音声データの符号化処理を高速化可能な符号化装置とその符号化方法、及びビデオ編集システムを提供できる。
以下、本発明の好ましい実施形態について、図面を参照しながら説明する。なお、本発明は、映像データおよび音声データのいずれの符号化処理も可能であるが、説明の便宜のため、映像データを符号化処理する場合を説明する。
《実施形態1》
図1は、本発明の実施形態1による符号化装置100及びビデオ編集システム200の構成を示すブロック図である。図1を参照するに、本発明の実施形態1に係る符号化装置100はビデオ編集システム200に組み込まれている。実施形態1に係るビデオ編集システム200はノンリニアビデオ編集システムであり、パーソナルコンピュータなどのコンピュータ端末を用いて実現される。ビデオ編集システム200は、CPU10、メモリ部20、内蔵HDD30A、内蔵ドライブ40A、入出力インタフェース50、ユーザインタフェース60、AVユニット70、ハードウェア・エンコーダ80、及びこれらの要素を接続する内部バス90を含む。ビデオ編集システム200に含まれる要素のうち、CPU10及びハードウェア・エンコーダ80は符号化装置100に含まれる。ビデオ編集システム200は更に、外部のLANやインターネットに接続可能なネットワークインタフェースを含んでいてもよい。
CPU10は、メモリ部20に記憶されているプログラムを実行し、後述の編集部13、データ割振部14、ソフトウェア・エンコーダ152、合成部16、及び出力部17として機能する。これらの各部の詳細については後述する。CPU10は、1つのチップに限定されず、複数個のチップであってもよく、それぞれのチップに複数のコアがあってもよい。このような複数のCPUが並列に動作する。これにより、ソフトウェア・エンコーダ152の符号化能力がさらに向上する。
メモリ部20には、CPU10に後述の処理を実行させるプログラムやデータが記憶されている。また、メモリ部20には、入力バッファ領域BI、第1出力バッファ領域BO1、及び第2出力バッファ領域BO2が確保される。これらのバッファ領域の詳細については後述する。
内蔵HDD30Aは、ビデオ編集システム200を実現するコンピュータ端末に内蔵されている。内蔵HDD30Aに代えて、又は、図1に示すように内蔵HDD30Aに加えて、外付けHDD30Bが入出力インタフェース50を通して内部バス90に接続されていてもよい。
内蔵ドライブ40Aは、ビデオ編集システム200を実現するコンピュータ端末に内蔵されている。内蔵ドライブ40Aに代えて、又は、図1に示すように内蔵ドライブ40Aに加えて、外付けドライブ40Bが入出力インタフェース50を通して内部バス90に接続されていてもよい。
内蔵ドライブ40A及び外付けドライブ40Bは、DVD102などのリムーバブルメディアとの間で映像データや音声データの入出力を行う。リムーバブルメディアとしては、光ディスクの他に、磁気ディスク、光磁気ディスク、ブルーレイディスク、半導体メモリなどが挙げられる。
入出力インタフェース50は、外付けHDD30Bや外付けドライブ40Bの他に、ユーザインタフェース60や、第2カメラ101Bなどの外部機器に内蔵される記憶媒体を内部バス90に接続することができる。例えば入出力インタフェース50はIEEE1394インタフェースなどを含み、それを利用して第2カメラ101Bとの間で映像データや音声データの入出力を行う。入出力インタフェース50は、第2カメラ101Bの他にも、VTR、スイッチャー、送出サーバーなど、映像データや音声データを扱う様々な機器との間で、映像データや音声データの入出力を行うことができる。
ユーザインタフェース60は、入出力インタフェース50を通して内部バス90に接続されている。ユーザインタフェース60は例えば、マウス61、キーボード62、ディスプレイ63、及びスピーカ64を含む。ユーザインタフェース60はその他の入力デバイスとしてタッチパネル(図示せず)を含んでいてもよい。
AVユニット70はビデオインタフェースとオーディオインタフェースとを含む。AVユニット70はそれらのインタフェースを通して第1カメラ101Aなどの外部機器との間で映像データの入出力を行う。AVユニット70は、第1カメラ101Aの他にも、VTR、スイッチャー、送出サーバーなど、映像データや音声データを扱う様々な機器との間で、映像データや音声データの入出力を行うことができる。
ハードウェア・エンコーダ80は、(i)映像データや音声データの符号化処理の一部又は全体を実行するために専用に設計されたICやモジュールなどの回路、又は(ii)映像データや音声データの符号化処理の一部又は全体と、符号化処理以外の処理とを実行可能なCPUやDSPなどの演算回路であって、その演算回路が映像データや音声データの符号化処理の一部又は全体を実行している間はその符号化処理の一部又は全体を排他的に行う演算回路である。
ハードウェア・エンコーダ80は、非圧縮の映像データを符号化によって圧縮する。例えば非可逆符号化方式の場合、ハードウェア・エンコーダ80によって実行される映像データの符号化処理は次のステップ(i)〜(iv)を含む。
(i)ブロックやタイルなどへの分割ステップ、
(ii)DCT変換やウェーブレット変換などの直交変換ステップ、
(iii)量子化ステップ、及び、
(iv)エントロピー符号化などの可逆符号化ステップ。
ハードウェア・エンコーダ80による映像データの符号化処理はその他にも、例えば、サブサンプリングステップ、シャッフリングステップ、イントラフレーム予測ステップ、又はフレーム間予測ステップを含んでいてもよい。ハードウェア・エンコーダ80による映像データの符号化処理はまた、可逆符号化方式による圧縮処理であっても、圧縮を目的とはしない符号化処理であってもよい。
ハードウェア・エンコーダ80はフレームバッファを内蔵し、それに記憶された映像データを符号化する。その他に、同様なフレームバッファとしてメモリ部20の所定の記憶領域が利用されてもよい。ハードウェア・エンコーダ80による符号化方式は、例えば、DV方式、MPEG方式、JPEG2000方式、イントラフレーム方式(例えば、AVC−Intra方式)、または、MPEG方式におけるクローズドGOP方式であるが、特に限定されない。ハードウェア・エンコーダ80による符号化方式は、符号化された映像データの出力先のデバイスに応じて予め選択される。ハードウェア・エンコーダ80は、各データ単位をそれに含まれている情報に基づいて符号化する。例えばイントラフレーム方式では、そのデータ単位は1フレームである。その他に、MPEG方式におけるクローズド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枚のフレームを記憶可能である。符号化対象の映像データはフレームごとに、メモリ部20の入力バッファ領域BIから、コネクタ81とFPGA84とを通してフレームバッファ83に転送される。ハードウェア・エンコーダ82はFPGA84を通してフレームバッファ83の先頭アドレスから順に映像データを符号化する。ハードウェア・エンコーダ82によって符号化された映像データはフレームごとに、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との間での映像データの転送を制御する。エンコーダインタフェース88は、FPGA84内の他のモジュールをハードウェア・エンコーダ82に接続する。
図3は、図1のビデオ編集システム200の主要な機能構成を示すブロック図である。図3を参照するに、ビデオ編集システム200は機能構成としては編集部13と符号化部11とを含む。符号化部11は、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、及び出力部17を含む。編集部13、データ割振部14、ソフトウェア・エンコーダ152、合成部16、及び出力部17は、図1のビデオ編集システム200のCPU10によって実現される。
編集部13は、編集対象となる映像データの選択を受け付け、選択された映像データを読み出してユーザの編集操作に基づいて編集処理を行い、一連の映像データストリームに編集する。
具体的には、編集部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上へのクリップCLの配置を受け付ける。図4の例では各トラックTRは画面の水平方向に延びている細長い帯状領域である。各トラックTRは、編集部13によって生成される映像データストリームの時間軸であるタイムライン上の位置情報を示す。図4の例では、各トラックTR上を画面の水平方向に左から右へ進むほどタイムライン上の位置が進むように、各トラック上の水平方向での位置がタイムライン上の位置に対応づけられている。編集部13は例えばユーザによるマウス61の操作を通して、素材ウィンドウBWから各トラックTR上へのクリップCLの配置を受け付ける。
編集部13はまた、タイムラインウィンドウTWにタイムラインカーソルTLCと時間軸目盛りとを表示してもよい。図4の例ではタイムラインカーソルTLCは、時間軸目盛りから画面の垂直方向に延びて各トラックTRと交差している直線である。タイムラインカーソルTLCは各トラックTRに対して平行に移動可能である。タイムラインカーソルTLCの端が指す時間軸目盛りの値は、タイムラインカーソルTLCと各トラックTRとの交差点のタイムライン上での位置を表す。
編集部13は、各トラックTR上に配置されるクリップCLのタイムライン上での開始位置であるインポイントIPと終了位置であるアウトポイントOPとの設定、及び、各トラックTR上に配置された後でのクリップCLのインポイントIPとアウトポイントOPとの変更を受け付ける。
編集部13は更に、各トラックTR上に配置されたクリップCLについて、対応する映像の色や明るさの調整、対応する映像全体に対する特殊効果、又は異なるトラックTRに配置された複数のクリップCL間での映像の合成などのエフェクト処理の設定をユーザから受け付けることができる。
編集部13はプレビューウィンドウPWに、タイムラインカーソルTLCの示すタイムライン上の位置に配置されたクリップCLに対応する映像を表示する。編集部13はまた、タイムラインウィンドウTWに配置されたクリップCLのうち、指定された範囲に対応する動画像をプレビューウィンドウPWに表示する。ユーザは、プレビューウィンドウPWに表示された映像から、編集部13によって受け付けられた編集処理の結果を確認できる。
編集部13は、タイムラインウィンドウTW内のトラックTR上でのクリップCLの配置、及び各クリップCLに設定されたエフェクト処理に基づいて、編集する一連の映像データストリームに対する編集情報を生成する。編集情報では、編集部13による編集処理の内容がタイムコードと共に規定されている。タイムコードは、対応する編集処理を受けた映像データのタイムライン上での位置を表す。編集部13はその編集情報に従い、各クリップCLが参照する映像データをタイムライン上の順番で連結して一連の映像データストリームを生成する。編集部13は更にその映像データストリームを符号化対象の映像データとしてデータ割振部14に出力し、メモリ部20内の入力バッファ領域BIに書き込む。
図3に戻り、データ割振部14は、メモリ部20内の入力バッファ領域BIに書き込まれた符号化対象の映像データをハードウェア・エンコーダ151とソフトウェア・エンコーダ152とに割り振る。具体的には、データ割振部14はまず、メモリ部20内に、エンコーダ151、152ごとに、符号化された映像データを書き込むための出力バッファ領域BO1、BO2を確保する。データ割振部14は次に、入力バッファ領域BIに書き込まれた映像データを所定のデータ単位ずつ、例えば1フレームずつ順番に、各エンコーダ151、152によって符号化されるべきデータ単位として選択する。データ割振部14は続いて、ハードウェア・エンコーダ151に対して選択されたデータ単位を順番にハードウェア・エンコーダ151のフレームバッファに転送し、転送された各データ単位を符号化した後に書き込むべき第1出力バッファ領域BO1内のアドレスをハードウェア・エンコーダ151に指定する。一方、ソフトウェア・エンコーダ152に対して選択されたデータ単位については、データ割振部14は、入力バッファ領域BIにおけるそれらのデータ単位のアドレスを、それらのデータ単位を符号化した後に書き込むべき第2出力バッファ領域BO2内のアドレスと共に順番にソフトウェア・エンコーダ152に指定する。データ割振部14は更に、両エンコーダ151、152に割り振られたデータ単位に順番に通し番号、例えばフレーム番号を振り、各番号のデータ単位の符号化後の書き込み先として各エンコーダ151、152に指定したアドレスをその番号と共に合成部16に渡す。
なお、ハードウェア・エンコーダが2台以上存在し、それらが独立に符号化処理を行う場合、データ割振部14は、各ハードウェア・エンコーダが処理すべき符号化対象の映像データを、それぞれのハードウェア・エンコーダに割り振る。
ハードウェア・エンコーダ151は、図1に示されているハードウェア・エンコーダ80のデバイスドライバである。ハードウェア・エンコーダ151は、データ割振部14によってメモリ部20内の入力バッファ領域BIからフレームバッファに転送された符号化対象の映像データを順番に符号化する。その符号化方式は編集部13により設定される。ハードウェア・エンコーダ151は映像データの各データ単位を、それに含まれている情報に基づいて符号化する。例えば、符号化方式がイントラフレーム方式である場合は符号化のデータ単位は1フレームであり、符号化方式がクローズドGOP方式である場合は符号化のデータ単位は1GOPである。ハードウェア・エンコーダ151は、符号化された映像データを、データ割振部14によって指定された第1出力バッファ領域BO1内のアドレスに転送する。ハードウェア・エンコーダ151は更に、符号化された映像データを第1出力バッファ領域BO1に転送するごとに、その転送先のアドレスを合成部16に通知する。
ソフトウェア・エンコーダ152はCPU10によって実行される符号化処理モジュールであり、メモリ部20内の入力バッファ領域BIに記憶された符号化対象の映像データを、データ割振部14から指定されたアドレス順に符号化する。ソフトウェア・エンコーダ152はハードウェア・エンコーダ151とは独立に、かつ並列に符号化処理を実行する。ソフトウェア・エンコーダ152はハードウェア・エンコーダ151と同様、各データ単位をそれに含まれている情報に基づいて符号化する。
ソフトウェア・エンコーダ152のデータ単位と符号化方式とはハードウェア・エンコーダ151のデータ単位と符号化方式と共通である。すなわち、ハードウェア・エンコーダ151による符号化のデータ単位が1フレームであればソフトウェア・エンコーダ152による符号化のデータ単位も1フレームであり、ハードウェア・エンコーダ151による符号化のデータ単位が1GOPであれば、ソフトウェア・エンコーダ152による符号化のデータ単位も1GOPである。
さらに、ハードウェア・エンコーダ151による符号化方式がイントラフレーム方式であればソフトウェア・エンコーダ152による符号化方式もイントラフレーム方式であり、ハードウェア・エンコーダ151による符号化方式がクローズドGOP方式であればソフトウェア・エンコーダ152による符号化方式もクローズドGOP方式である。
ソフトウェア・エンコーダ152は、符号化された映像データを、データ割振部14によって指定された第2出力バッファ領域BO2内のアドレスに書き込む。ソフトウェア・エンコーダ152は更に、符号化された映像データを第2出力バッファ領域BO2に書き込むごとに、その書き込み先のアドレスを合成部16に通知する。
合成部16は、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152によってそれぞれ符号化されたデータ単位を、データ割振部14によって振られた番号順に配列し、1本の符号化された映像データストリームに合成する。具体的には、合成部16はまず、データ割振部14から受け取ったアドレスの中から、次に合成されるべきデータ単位の番号に対応するアドレスを特定する。合成部16は次に、その特定されたアドレスと同じアドレスがいずれかのエンコーダ151、152から通知されたとき、符号化されたデータ単位をそのアドレスから読み出し、それ以前に読み出されていた他のデータ単位の配列の末尾に合成する。こうして、合成された一連の符号化されたデータ単位の順序は、編集部13によってメモリ部20内の入力バッファ領域BIに書き込まれた順序と一致する。更に合成部16は、合成された映像データストリームを出力部17に出力する。
なお、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152が符号化方式としてクローズドGOP方式を利用して映像データをGOP単位で符号化する場合、合成部16は、データ割振部14から受け取った番号に加え、符号化された映像データの含むGOPヘッダなどの情報に基づいて、符号化された映像データストリームを配列することもできる。また、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152によって符号化されたデータ単位は互いに予測可能ではないことが、合成部の処理が容易になる点で好ましい。
出力部17は、合成された映像データストリームを所定のファイル形式又は伝送形式に整形する。出力部17は、その映像データストリームに、符号化された映像データの復号化に必要な情報やパラメータ、その他規定された情報を加え、それらのデータストリームの全体を規定された形式に整える。出力部17によって利用されるファイル形式又は伝送形式は、編集部13によって設定される。出力部17は、内部バス90を介して任意の記録媒体、例えば内蔵HDD30A、外付けHDD30B、又は、内蔵ドライブ40A若しくは外付けドライブ40Bに装着されたDVD102などに、合成された映像データストリームを書き込む。出力部17は、合成された映像データストリームを、ネットワークインタフェースを介して接続されたデータベースや情報端末に送信することもできる。出力部17は、合成された映像データストリームをAVユニット70や入出力インタフェース50から外部機器に出力することもできる。なお、出力部17は、映像データストリームだけでなく、オーディオコンテンツを生成して出力することもできる。
図5は、本発明の実施形態1による符号化部11のブロック図である。図5を参照するに、符号化部11は、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、バッファ21を含む。バッファ21は、データ割振部14とハードウェア・エンコーダ151との間に配置されている。バッファ21はハードウェア・エンコーダ80に内蔵のフレームバッファ、例えば図2に示すフレームバッファ83の記憶領域を表す。その場合、バッファ21の容量は例えば数フレームである。バッファ21はその他にメモリ部20内の記憶領域であってもよい。その場合、バッファ21の容量は例えば数十フレームである。
データ割振部14は、ハードウェア・エンコーダ151に割り振った映像データを逐次バッファ21に転送する。ハードウェア・エンコーダ151はバッファ21の先頭アドレスから順に、映像データを所定のデータ単位ずつ、例えば1フレームずつ符号化する。
データ割振部14はバッファ21から空き情報を読み出し、その空き情報からバッファ21の空き領域のサイズ、例えば空いているフレームバッファの数を確認する。そのサイズが所定の閾値、例えば1フレームを超えているとき、データ割振部14は符号化対象の映像データをハードウェア・エンコーダ80に割り振る。一方、バッファ21の空き領域のサイズが所定の閾値以下、例えば1フレーム以下まで減ったとき、データ割振部14は、ハードウェア・エンコーダ151に最後に割り振ったフレームの次に続くフレームをソフトウェア・エンコーダ152に割り振る。すなわち、データ割振部14は次のフレームをバッファ21には書き込まず、そのフレームが記憶された入力バッファ領域BI内のアドレスをソフトウェア・エンコーダ152に渡す。以後、バッファ21の空き領域のサイズが閾値を再び超えるまで、データ割振部14は符号化対象の映像データをソフトウェア・エンコーダ152に割り振り続ける。
図6は、図5に示されている符号化部11による映像データの割り振り処理のフローチャートである。以下、図6を参照しながら、映像データの割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。例えば編集部13から符号化対象の映像データストリームが出力されると、以下の処理は開始される。
最初に、ステップS11では、データ割振部14は符号化対象の映像データストリームの先頭から所定数のフレーム、例えば1フレームをハードウェア・エンコーダ151に割り振り、バッファ21に転送する。ハードウェア・エンコーダ151はバッファ21の先頭アドレスから順に映像データを符号化し始める。
次いで、ステップS12では、データ割振部14はバッファ21の空き情報から、空いているフレームバッファの数が所定の閾値以下まで減っているか否か判定する。空いているフレームバッファの数がその閾値よりも多い場合(ステップS12で“Yes”の場合)、処理がステップS13に進む。空いているフレームバッファの数がその閾値以下である場合(ステップS12で“No”の場合)処理がステップS14に進む。
ステップS13では、データ割振部14は符号化対象の映像データストリームの次のフレームをハードウェア・エンコーダ151に割り振り、そのフレームをバッファ21に転送する。そして、処理はステップS15に進む。
ステップS14では、データ割振部14は符号化対象の映像データストリームの次のフレームをソフトウェア・エンコーダ152に割り振る。そして、処理はステップS15に進む。
次いで、ステップS15では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。この判定は、例えばフレームヘッダを参照することにより可能である。そのフレームが最後でない場合(ステップS15で“No”の場合)は処理がステップS12に戻り、最後である場合(ステップS15で“Yes”の場合)は処理が終了する。
実施形態1の符号化装置100は、符号化部11のバッファ21の空き領域が閾値以下まで減った場合、データ割振部14により符号化対象の映像データの一部をソフトウェア・エンコーダ152に割り振る。それにより、ハードウェア・エンコーダ151及びソフトウェア・エンコーダ152による符号化処理が並行して行われるので、符号化装置100全体による符号化処理をハードウェア・エンコーダ151だけで行う場合よりも高速化することができる。特に、データ割振部14は、ハードウェア・エンコーダ151による符号化処理待ちのフレームを一時格納するバッファ21の空き情報を取得して、その空き情報に基づいて次のフレームの割り振り先を判定するので、ハードウェア・エンコーダ151を常に動作させつつ、ソフトウェア・エンコーダ152による符号化処理を並列して行うので、符号化装置100は、ハードウェア・エンコーダ151の符号化処理速度よりも高速で符号化処理が行える。これにより、ビデオ編集システム200の符号化処理速度が向上できる。
《実施形態2》
本発明の実施形態2による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。ビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
図7は、本発明の実施形態2による符号化部11Aのブロック図である。図7を参照するに、符号化部11Aは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、及び割り振り割合設定部22Aを含む。符号化部11Aは、割り振り割合設定部22Aを除き、図3に示されている要素と同様な要素を含む。図7ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細の説明を援用する。
図7を参照するに、割り振り割合設定部22Aは、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。割り振り割合設定部22Aは、符号化対象の映像データストリームのうち、ハードウェア・エンコーダ151に割り振られるデータ単位数とソフトウェア・エンコーダ152に割り振られるデータ単位数との割合を設定する。割り振り割合設定部22Aは更に、その割合の値をユーザに選択させてもよい。すなわち、割り振り割合設定部22Aは、符号化部11Aによる符号化処理に先立ち、コンピュータ端末のディスプレイに所定の入力画面を表示し、マウスやキーボードを通してユーザから上記の割合の値を受け付ける。ユーザによって選択された割合の値は割り振り割合設定部22Aからデータ割振部14に渡される。データ割振部14は符号化対象の映像データストリームをその割合でハードウェア・エンコーダ151とソフトウェア・エンコーダ152とに割り振る。
例えば符号化のデータ単位が1フレームであり、ユーザが、ハードウェア・エンコーダ151に割り振られるフレーム数に対してソフトウェア・エンコーダ152に割り振られるフレーム数の割合を1/2に設定した場合を想定する。データ割振部14はまず、符号化対象の映像データストリームの先頭フレームをソフトウェア・エンコーダ152に割り振る。データ割振部14は次に、その映像データストリームの2、3番目のフレームをハードウェア・エンコーダ151に割り振る。データ割振部14は更に、4番目のフレームをソフトウェア・エンコーダ152に割り振り、5、6番目のフレームをハードウェア・エンコーダ151に割り振る。データ割振部14は以下同様に、1枚のフレームをソフトウェア・エンコーダ152に割り振るごとに、それに続く2枚のフレームをハードウェア・エンコーダ151に割り振る。
データ割振部14はその他に、編集部13がメモリ部20に符号化対象の映像データを所定のフレーム数、例えば15フレーム書き込むごとに、それらを3等分し、先頭の1/3、例えば1〜5番目のフレームをソフトウェア・エンコーダ152に割り振り、残り2/3、例えば6〜15番目のフレームをハードウェア・エンコーダ151に割り振る。ソフトウェア・エンコーダ152が1〜5番目のフレームを符号化している間、ハードウェア・エンコーダ151は6〜15番目のフレームを符号化する。
実施形態2の符号化装置100は割り振り割合設定部22Aにより、符号化対象の映像データのうち、ハードウェア・エンコーダ151に割り振られるデータ単位数とソフトウェア・エンコーダ152に割り振られるデータ単位数との割合をユーザに選択させることができる。それにより、ユーザは、符号化部11Aを組み込んだビデオ編集システム200が一連の処理全体に要した時間を見ながら、各エンコーダ151、152に単位時間当たりに割り振るデータ単位数の割合を調節できる。その結果、符号化装置100は、その全体による符号化処理速度を、ハードウェア・エンコーダ151のみによる符号化処理速度よりも大きくできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。
《実施形態3》
本発明の実施形態3による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
図8は、本発明の実施形態3による符号化部11Bのブロック図である。図8を参照するに、符号化部11Bは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、CPU負荷推定部23、割り振り割合設定部22B、及び第1データベース24を含む。符号化部11Bは、CPU負荷推定部23、割り振り割合設定部22B、及び第1データベース24を除き、図3に示されている要素と同様な要素を含む。図8ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細の説明を援用する。
図8を参照するに、CPU負荷推定部23は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。CPU負荷推定部23は、編集部13による編集処理でのCPU10の負荷を、その編集処理の内容を規定する編集情報から予測する。
CPU負荷推定部23は編集部13による編集処理に先立ち、編集部13から編集情報を受け取る。編集情報は、映像データの時間範囲とその時間順序や、エフェクトの内容、解像度変換に関する情報、フレームレート変換に関する情報などを含む。CPU負荷推定部23は編集情報に基づき、編集部13による編集処理期間中でのタイムライン処理指数TEの推移を以下のように予測する。ここで、タイムライン処理指数TEは、編集部13が1つのデータ単位の映像データを編集するのに要するCPU10の処理量、すなわちCPU負荷指数で定義される。以下、説明の便宜上、そのデータ単位を1フレームとする。
CPU負荷推定部23はまず、編集情報に基づき、編集部13による編集処理期間の全体を、複数の編集処理を含む期間ごとに分割する。ここで、分割された1つの期間で編集されるフレーム数が所定の閾値より小さい場合、その前後いずれかの期間に統合する。それにより、分割された各期間ではその閾値以上のフレームが編集される。
CPU負荷推定部23は次に、分割された期間ごとに並行する編集処理の種類を編集情報から特定し、特定された各種類に対応するCPU負荷指数を求める。ここで、編集処理の種類ごとにその編集処理に要するCPU10の処理量、すなわちCPU負荷指数が予め評価され、メモリ部20に第1データベース24として記憶されている。
図9は、そのCPU負荷指数の一例を示す表である。図9を参照するに、AVC−Intra方式の映像データの復号処理におけるCPU負荷指数を100として、CPU10の他の様々な処理に関するCPU負荷指数が評価されている。CPU負荷推定部23は、特定された編集処理の各種類に対応するCPU負荷指数を第1データベース24から検索する。CPU負荷推定部23は更に、検索されたCPU負荷指数を分割された期間ごとに足し合わせ、各和をその分割された期間のタイムライン処理指数TEとして決定する。
例えば編集情報が、ある期間で行われる編集処理を「AVC−Intra50の素材を2つピクチャーインピクチャーで合成し、タイトルを1つ入れる」と表現している場合を想定する。CPU負荷推定部23はまず、その期間で並行する編集処理の種類として、「AVC−Intra50の素材の復号」、「ピクチャーインピクチャーによるエフェクト処理」、及び「タイトルの付加」を特定する。CPU負荷推定部23は次に第1データベース24から、特定された編集処理の各種類に対応するCPU負荷指数として100、5、5を検索する。CPU負荷推定部23は更に、検索されたCPU負荷指数100、5、5からタイムライン処理指数TEを次式で決定する:TE=100×2+5+5=210。ここで、AVC−Intra50の素材は2フレームであるので、それらの復号処理に対するCPU負荷指数は1フレーム当たりの値100の2倍で評価されている。
CPU負荷推定部23は、分割された各期間で編集される映像データストリームの時間範囲の開始位置を示すタイムコードを編集情報から読み取り、その期間でのタイムライン処理指数TEに対応させる。こうして、編集部13による編集処理期間中でのタイムライン処理指数TEの推移が予測される。CPU負荷推定部23は更に、タイムライン処理指数TEとタイムコードとの組み合わせを割り振り割合設定部22Bに与える。
割り振り割合設定部22Bは、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。割り振り割合設定部22Bは、CPU負荷推定部23によって予測されたCPU10の負荷の推移、すなわちタイムライン処理指数TEの推移に基づき、データ割振部14によって両エンコーダ151、152に単位時間当たりに割り振られる映像データの割合を設定する。例えば符号化のデータ単位が1フレームであるとき、割り振り割合設定部22Bは各タイムライン処理指数TEに応じて、単位時間当たりにハードウェア・エンコーダ151に割り振られるフレーム数HFとソフトウェア・エンコーダ152に割り振られるフレーム数SFとの割合を、以下のように算定する。
割り振り割合設定部22Bはまず、タイムライン処理指数TEとタイムコードとの組み合わせをCPU負荷推定部23から受け取る。割り振り割合設定部22Bは次に、各タイムライン処理指数TEに対するCPU処理能力指数CEの比CE/TEを求める。CPU処理能力指数CEは、編集部13による編集処理又はソフトウェア・エンコーダ152による符号化処理に対してCPU10が提供可能な単位時間当たりの処理量、例えば1フレーム周期当たりの処理量で定義される。ここで、CPU10は一般に、コンピュータ端末のOS、データ割振部14、合成部16など、他のモジュールに関する処理も行う。CPU10の提供可能な全処理量からそれらの処理に関する処理量を除いたものがCPU処理能力指数CEである。従って、比CE/TEは、仮にそのタイムライン処理指数TEで評価された期間中、CPU10が提供可能な処理量を全て同じ編集処理に提供した場合に得られる編集処理速度の最高値、すなわち単位時間当たりに同じ編集処理を実行可能なフレームの最大数MFを表す。
割り振り割合設定部22Bは更に、各最高値MFをハードウェア・エンコーダ151による符号化処理速度、すなわちハードウェア・エンコーダ151が単位時間当たりに符号化可能なフレーム数HFと比較する。
編集処理速度の最高値MFがハードウェア・エンコーダ151による符号化処理速度HF以下であるとき、その最高値MFで評価された編集処理はハードウェア・エンコーダ151による符号化処理より遅いと見なせる。その場合、割り振り割合設定部22Bは、その編集処理期間については、ソフトウェア・エンコーダ152に割り振られるフレーム数SFを“0”に設定し、CPU10への負担の増加を防ぐ。
編集処理速度の最高値MFがハードウェア・エンコーダ151による符号化処理速度HFを超えているとき、その最高値MFで評価された編集処理はハードウェア・エンコーダ151による符号化処理より速いと見なせる。その場合、割り振り割合設定部22Bは、その編集処理期間についてはソフトウェア・エンコーダ152に割り振られるフレーム数SFを以下のように“0”より大きい値に設定する。これにより、両エンコーダ151、152の並列処理による符号化部11B全体での符号化処理時間の短縮を図ることができる。
ハードウェア・エンコーダ151による符号化処理速度HFはCPU10の負荷変動に関わらず一定である。従って、割り振り割合設定部22Bはまず、ハードウェア・エンコーダ151に単位時間当たりに割り振られるフレーム数をその符号化処理速度HFに設定する。その場合、ハードウェア・エンコーダ151を編集部13と並列に遅滞なく動作させるために、編集部13に対するCPU10の単位時間当たりの処理量を少なくとも、タイムライン処理指数TEとハードウェア・エンコーダ151による符号化処理速度HFとの積TE×HFに維持するとよい。従って、CPU処理能力指数CEから上記の積TE×HFを除いた残りRE=CE−TE×HFを、ソフトウェア・エンコーダ152に対して単位時間当たりに提供可能なCPU10の処理量の上限とみなすことができる。割り振り割合設定部22Bはその上限REをタイムライン処理指数TEごとに求める。なお、この上限REは、編集処理速度の最高値MFとハードウェア・エンコーダ151による符号化処理速度HFとの間の差にタイムライン処理指数TEを乗じた値に等しい:RE=TE×(MF−HF)。従って、編集処理速度の最高値MFがハードウェア・エンコーダ151による符号化処理速度HFを超えているとき、上限REは“0”より大きい。
一方、割り振り割合設定部22Bは、ソフトウェア・エンコーダ152による符号化処理に要するCPU10の単位時間当たりの処理量、すなわちソフトウェアエンコード処理指数SEを各タイムライン処理指数TEに加えてその和QE=SE+TEを求める。ここで、ソフトウェアエンコード処理指数SEは符号化方式ごとに異なる。第1データベース24には、符号化方式の種類ごとに評価されたソフトウェアエンコード処理指数SEが記憶されている。図9の表には、符号化処理の種類ごとにCPU負荷指数の例が示されている。これらのCPU負荷指数がソフトウェアエンコード処理指数SEとして利用される。割り振り割合設定部22Bは、実際に使用される符号化方式の種類に対応するソフトウェアエンコード指数SEを第1データベース24から予め検索しておく。
上記の和QEは、タイムライン処理指数TEに対応する編集処理とソフトウェアエンコード処理指数SEに対応する符号化処理との並列処理に要するCPU10の単位時間当たりの処理量を表す。従って、割り振り割合設定部22Bは、各タイムライン処理指数TEから得られた和QEで上限REを割り、その商RE/QEを、そのタイムライン処理指数TEに対応するタイムコードの示す編集処理期間中、ソフトウェア・エンコーダ152に単位時間当たりに割り振られるフレーム数SFとして設定するとよい。それにより、ソフトウェア・エンコーダ152が編集部13と並列に遅滞なく動作することが期待できる。
なお、上限REは“0”より大きいので、ソフトウェア・エンコーダ152に割り振られるフレーム数SFも“0”より大きい。
ここで、単位時間がフレーム周期に等しい場合でも、上記のフレーム数SFとハードウェア・エンコーダ151による符号化処理速度HFとはいずれも整数とは限らない。従って、割り振り割合設定部22Bは、各タイムライン処理指数TEから得られたフレーム数SFとハードウェア・エンコーダ151による符号化処理速度HFとの比SF:HFを整数比HFI:SFIで近似する。例えば、そのタイムライン処理指数TEに対応するタイムコードの示す編集処理期間で編集されるフレームの総数に比べ、整数比HFI:SFIを表す2つの整数HFI、SFIの和HFI+SFIを小さく設定する。
割り振り割合設定部22Bはデータ割振部14に対してフレーム数SF=0又は整数比HFI:SFIを次のように設定する。まず、編集部13からメモリ部20に符号化対象の1フレームが書き込まれるごとに、データ割振部14がそのフレームからタイムコードを読み取って割り振り割合設定部22Bに渡す。割り振り割合設定部22Bはそのタイムコードを、CPU負荷推定部23から受け取った各タイムコードと比較する。データ割振部14からのタイムコードが、CPU負荷推定部23からのタイムコードより所定量だけ小さい値に達したとき、割り振り割合設定部22Bは、CPU負荷推定部23からのタイムコードに対応するタイムライン処理指数TEから得られたフレーム数SF=0又は整数比HFI:SFIをデータ割振部14に与える。フレーム数SF=0が与えられた場合、データ割振部14はそれ以降、符号化対象のフレームを全てハードウェア・エンコーダ151に割り振る。一方、整数比HFI:SFIが与えられた場合、データ割振部14はそれ以降、SFI枚のフレームを連続してソフトウェア・エンコーダ152に割り振るごとに、それに続くHFI枚のフレームを連続してハードウェア・エンコーダ151に割り振る。割り振り割合設定部22Bからフレーム数SF=0又は整数比HFI:SFIが新たに入力されるまで、データ割振部14は元の割り振り動作を継続する。
ここで、上記の所定量は主に、編集部13によってメモリ部20に書き込まれた符号化対象のフレームのタイムコードと、その書き込みに並行して編集されるフレームのタイムコードとの間の一般的な差で決まる。すなわち、前者のタイムコードから後者のタイムコードが推定されるように、上記の所定量は調節される。
上記とは別に、割り振り割合設定部22Bが、各タイムライン処理指数TEから得られたフレーム数SFとハードウェア・エンコーダ151による符号化処理速度HFとの比α=HF:SFそのものをデータ割振部14に与えてもよい。その場合、データ割振部14は、編集部13からメモリ部20内の入力バッファ領域BIに符号化対象の1フレームが書き込まれるごとに、そのフレームを確率α/(1+α)でハードウェア・エンコーダ151に割り振り、確率1/(1+α)でソフトウェア・エンコーダ152に割り振る。
こうして、割り振り割合設定部22Bは、データ割振部14によって両エンコーダ151、152に割り振られる単位時間当たりのフレーム数の比HF:SFをタイムライン処理指数TEごとに変化させる。それにより、編集部13による編集処理の内容に応じてCPU10の負荷が変動しても、各エンコーダ151、152の待ち時間が十分に短く維持されたまま、符号化部11B全体による符号化処理速度がハードウェア・エンコーダ151のみによる符号化処理速度HFより最大(HF+SF)/HF倍まで上がる。従って、ビデオ編集システム200全体による処理が高速化する。
例えば1フレーム周期を単位時間としたときのCPU処理能力指数CEが“400”であり、ソフトウェアエンコード処理指数SEが“200”である場合、タイムライン処理指数TEが200である編集処理期間では、ソフトウェア・エンコーダ152のみによる符号化処理速度CE/QEが“1”に等しい。一方、編集処理速度の最高値MF=CE/TEは“2”に等しい。従って、ハードウェア・エンコーダ151による符号化処理速度HFが“1”であるとき、その値は最高値MFより小さいので、データ割振部14が両エンコーダ151、152に符号化対象の映像データをフレーム数の比HF:SF=1:0.5=2:1で割り振る。その結果、符号化部11B全体による符号化処理速度がハードウェア・エンコーダ151のみによる符号化処理速度より最大1.5倍まで上がる。
なお、もしハードウェア・エンコーダ151による符号化処理速度HFが“2”であれば、その値は編集処理速度の最高値MFに等しい。従って、データ割振部14は符号化対象の映像データをハードウェア・エンコーダ151のみに割り当てるとよい。編集処理速度と符号化処理速度とのバランスを保ち、ビデオ編集システム200全体を効率的に動作させることができる。
一方、タイムライン処理指数TEが“100”である編集処理期間では、ソフトウェア・エンコーダ152のみによる符号化処理速度CE/QEが“1.33”である。そのとき、編集処理速度の最高値MF=CE/TEは“4”に等しいので、ハードウェア・エンコーダ151による符号化処理速度HFが“1”であるとき、その値は最高値MFより小さい。従って、データ割振部14が両エンコーダ151、152に符号化対象の映像データをフレーム数の比HF:SF=1:1で割り振る。その結果、符号化部11B全体による符号化処理速度が、ハードウェア・エンコーダ151のみによる符号化処理速度よりは最大2倍まで上がり、ソフトウェア・エンコーダ152のみによる符号化処理速度よりは最大1.5倍まで上がる。
その他の例として、CPU処理能力指数CEが“400”であり、ソフトウェアエンコード処理指数SEが“1000”である場合、タイムライン処理指数TEが“200”である編集処理期間では、ソフトウェア・エンコーダ152のみによる符号化処理速度CE/QEが“0.33”である。そのとき、編集処理速度の最高値MF=CE/TEは“2”に等しいので、ハードウェア・エンコーダ151による符号化処理速度HFが“1”であるとき、その値は最高値MFより小さい。従って、データ割振部14が両エンコーダ151、152に符号化対象の映像データをフレーム数の比HF:SF=1:0.17=6:1で割り振る。その結果、符号化部11B全体による符号化処理速度が、ハードウェア・エンコーダ151のみによる符号化処理速度よりは最大1.17倍まで上がり、ソフトウェア・エンコーダ152のみによる符号化処理速度よりは最大3.5倍まで上がる。
図10は、符号化部11Bによる、映像データを割り振る割合の設定処理のフローチャートである。図10のフローチャートに従って、CPU負荷推定部23は編集情報に基づいてタイムライン処理指数TEの推移を予測し、割り振り割合設定部22Bはその推移に基づき、両エンコーダ151、152に割り振られるフレーム数の比を設定する。以下、図10を参照しながら、その予測処理と設定処理とについて説明する。符号化部11Bは編集部13から編集情報を受け取ると、以下の処理を開始する。
最初に、ステップS21では、CPU負荷推定部23は編集部13から編集情報を受け取り、それに基づき、編集部13による編集処理期間の全体を、並行する編集処理の種類が共通する期間に分割する。
次いで、ステップS22では、CPU負荷推定部23はまず、分割された期間ごとに編集処理の種類を編集情報から特定する。CPU負荷推定部23は次に、特定された各種類に対応するCPU負荷指数を第1データベース24から検索する。CPU負荷推定部23は続いて、検索されたCPU負荷指数を分割された期間ごとに足し合わせ、その和をその分割された期間のタイムライン処理指数TEとして決定する。CPU負荷推定部23は最後に、分割された各期間の開始位置を示すタイムコードを編集情報から読み取り、その期間でのタイムライン処理指数TEに対応させ、タイムライン処理指数TEとタイムコードとの組み合わせを割り振り割合設定部22Bに渡す。
次いで、ステップS23では、割り振り割合設定部22Bは、CPU負荷推定部23から受け取ったタイムライン処理指数TEごとに編集処理速度の最高値MF=CE/TEを求める。
次いで、ステップS24では、割り振り割合設定部22Bは各最高値MFをハードウェア・エンコーダ151による符号化処理速度HFと比較する。最高値MFが符号化処理速度HF以下である場合(ステップS24で“Yes”の場合)、処理がステップS25に進む。最高値MFが符号化処理速度HFよりも大きい場合(ステップS24で“No”の場合)、処理がステップS26に進む。
ステップS25では、割り振り割合設定部22Bは、ソフトウェア・エンコーダ152に割り振られるフレーム数SFを“0”に設定する。そして、処理はステップS28に進む。
ステップS26では、割り振り割合設定部22Bはまず、ソフトウェア・エンコーダ152に対して単位時間当たりに提供可能なCPU10の処理量の上限RE=CE−TE×HFを計算する。割り振り割合設定部22Bは次に、その上限REをソフトウェアエンコード処理指数SEとタイムライン処理指数TEとの和QE=SE+TEで割った値RE/QEを求め、ソフトウェア・エンコーダ152に単位時間当たりに割り振られるフレーム数SF=RE/QEとして設定する。
次いで、ステップS27では、割り振り割合設定部22Bは、設定されたフレーム数SFとハードウェア・エンコーダ151による符号化処理速度HFとの比HF:SFを求める。一般にその比HF:SFは整数比ではないので、割り振り割合設定部22Bはその比HF:SFを整数比HFI:SFIで近似する。そして、処理はステップS28に進む。
ステップS28では、割り振り割合設定部22Bは、ステップS25で設定されたフレーム数SF=0、又はステップS27で設定された整数比HFI:SFIを、最高値MFの算定に利用されたタイムライン処理指数TEに対応するタイムコードに対応させる。
次いで、ステップS29では、割り振り割合設定部22Bは、CPU負荷推定部23から受け取ったタイムライン処理指数TEの中に、ステップS23〜S28の処理を受けていないものの有無を調べる。未処理のタイムライン処理指数TEが残っている場合(ステップS29で“Yes”の場合)、処理がステップS23に戻る。未処理のタイムライン処理指数TEが残っていない場合(ステップS29で“No”の場合)、処理が終了する。
図11は、符号化部11Bによる映像データの割り振り処理のフローチャートである。割り振り割合設定部22Bとデータ割振部14とは図11のフローチャートに従って、両エンコーダ151、152に符号化対象の映像データストリームを割り振る。以下、図11を参照しながら、その割り振り処理について説明する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。
最初のステップS31では、割り振り割合設定部22Bは、CPU負荷推定部23から受け取ったタイムコードのうち、再生時間の最も早いものを目標タイムコードTrとして設定する。
次いで、ステップS32では、編集部13からメモリ部20内の入力バッファ領域BIに符号化対象の1フレームが書き込まれたとき、データ割振部14はそのフレームからタイムコードTcを読み取って割り振り割合設定部22Bに渡す。
次いで、ステップS33では、割り振り割合設定部22Bは、データ割振部14からのタイムコードTcを、目標タイムコードTrより所定量だけ小さい値と比較する。データ割振部14からのタイムコードTcがその値(Tr−所定量)以上である場合(ステップS33で“Yes”の場合)、処理がステップS34に進む。データ割振部14からのタイムコードTcが値(Tr−所定量)よりも小さい場合(ステップS33で“No”の場合)、処理がステップS32に戻る。
次いで、ステップS34では、割り振り割合設定部22Bは、目標タイムコードTrに対応するフレーム数SF=0又は整数比HFI:SFIをデータ割振部14に与える。フレーム数SF=0が与えられた場合は処理がステップS35に進み、整数比HFI:SFIが与えられた場合は処理がステップS36に進む。
ステップS35では、割り振り割合設定部22Bからフレーム数SF=0又は整数比HFI:SFIが新たに入力されるまで、データ割振部14は、メモリ部20内の入力バッファ領域BIに記憶された符号化対象のフレームを全てハードウェア・エンコーダ151に与える。そして、処理はステップS37に進む。
ステップS36では、データ割振部14には整数比HFI:SFIが与えられる。従って、データ割振部14はそれ以降、SFI枚のフレームを連続してソフトウェア・エンコーダ152に割り振るごとに、それに続くHFI枚のフレームを連続してハードウェア・エンコーダ151に割り振る。割り振り割合設定部22Bからフレーム数SF=0又は整数比HFI:SFIが新たに入力されるまで、データ割振部14はその割り振り動作を継続する。そして、処理はステップS37に進む。
ステップS37では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合、(ステップS37で“No”の場合)は処理がステップS31に戻り、最後である場合(ステップS37で“Yes”の場合)は処理が終了する。処理がステップS31から繰り返される場合、その繰り返しごとに、割り振り割合設定部22BによってCPU負荷推定部23から受け取られたタイムコードが、再生時間の早いものから順に目標タイムコードTrとして設定される。
実施形態3の符号化装置100は、CPU負荷推定部23によって編集情報に基づいてタイムライン処理指数TEの推移を予測し、割り振り割合設定部22Bによって、両エンコーダ151、152に割り振られる単位時間当たりのフレーム数の比HF:SFを、予測されたタイムライン処理指数TEの推移に基づいて設定する。それにより、編集部13による編集処理の内容に応じてCPU10の負荷が変動しても、符号化装置100は、各エンコーダ151、152が符号化対象のフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。その結果、符号化装置100はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。
《実施形態4》
本発明の実施形態4による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。ビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
図12は、本発明の実施形態4による符号化部11Cのブロック図である。図12を参照するに、符号化部11Cは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、CPU負荷検出部25、割り振り割合設定部22C、及び第2データベース26を含む。符号化部11Cは、CPU負荷検出部25、割り振り割合設定部22C、及び第2データベース26を除き、図3に示されている要素と同様な要素を含む。図12ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細の説明を援用する。
CPU負荷検出部25は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。CPU負荷検出部25はコンピュータ端末のOS27の提供するAPIを利用してCPU10の使用率を所定の時間間隔で計測する。CPU負荷検出部25は更に、CPU10の使用率からその負荷を評価し、リアルタイムに割り振り割合設定部22Cに通知する。例えばCPU負荷検出部25は、使用率の値が取り得る全範囲0〜100%を数段階に分け、計測された使用率がいずれの段階に属するかでCPU10の負荷を評価する。CPU負荷検出部25は更に、計測されたCPU10の使用率の属する段階が変わったときに、その変化を変化後の段階の種類と共に割り振り割合設定部22Cに通知する。例えば、0〜20%、20〜80%、80〜100%の3段階にCPU10の使用率の段階を分けた場合を考える。計測されたCPU10の使用率が第1段階0〜20%から第2段階20〜80%に変わったときに、CPU負荷検出部25は、その変化が生じたことと、その変化後の段階が第2段階20〜80%であることとを共に割り振り割合設定部22Cに通知する。
割り振り割合設定部22Cは、CPU負荷検出部25から通知された変化後の段階に応じ、両エンコーダ151、152に単位時間当たりに割り振るフレーム数の比HF:SFを決める。そのフレーム数の比HF:SFは使用率の段階ごとに予め評価され、メモリ部20に第2データベース26として記憶されている。第2データベース26ではフレーム数の比HF:SFとして整数比HFI:SFIが記憶されている。例えば、各整数比HFI:SFIを構成する2つの整数の和HFI+SFIは、CPU10の使用率を計測する時間間隔で編集されるフレームの総数より小さい。CPU10の使用率が高い段階ほどフレーム数の比HF:SFが高く設定されている。すなわち、CPU10の負荷が重いほど、ソフトウェア・エンコーダ152に単位時間当たりに割り振られるフレーム数SFが抑えられている。割り振り割合設定部22Cは、CPU負荷検出部25から通知された使用率の段階に対応するフレーム数の比を第2データベース26から検索する。割り振り割合設定部22Cは更に、検索されたフレーム数の比をデータ割振部14に渡す。それにより、データ割振部14はその新たなフレーム数の比に従って両エンコーダ151、152に符号化対象の映像データを割り振る。
図13は、符号化部11Cによる映像データの割り振り処理のフローチャートである。CPU負荷検出部25、割り振り割合設定部22C、及びデータ割振部14は、図13のフローチャートに従って、両エンコーダ151、152に単位時間当たりに割り振られるフレーム数の比をCPU10の使用率に応じて変化させる。以下、図13を参照しながら、フレーム数の比の設定処理について説明する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。
最初に、ステップS41では、CPU負荷検出部25はOS27のAPIを利用してCPU10の使用率を計測する。
次いで、ステップS42では、CPU負荷検出部25は、計測されたCPU10の使用率の属する段階を特定し、以前の段階と同じか否かを判断する。段階が変わった場合(ステップS42で“Yes”の場合)は処理がステップS43に進み、段階が同じ場合(ステップS42で“No”の場合)は処理がステップS41に戻る。
次いで、ステップS43では、CPU負荷検出部25は、CPU10の使用率の属する段階が変化したことを変化後の段階の種類と共に割り振り割合設定部22Cに通知する。割り振り割合設定部22Cは、通知された使用率の段階に対応するフレーム数の比を第2データベース26から検索する。割り振り割合設定部22Cは更に、検索されたフレーム数の比をデータ割振部14に渡す。
次いで、ステップS44では、データ割振部14は、新たなフレーム数の比に従って両エンコーダ151、152に符号化対象の映像データを割り振る。
次いで、ステップS45では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合(ステップS45で“No”の場合)は処理がステップS41に戻り、最後である場合(ステップS45で“Yes”の場合)は処理が終了する。
ステップS41〜S45のループは所定の時間間隔で繰り返される。それにより、両エンコーダ151、152に割り振られる映像データの割合が、CPU10の実際の負荷変動に応じて動的に調節される。
実施形態4の符号化装置100は、CPU負荷検出部25によってCPU10の使用率の段階をリアルタイムで計測し、割り振り割合設定部22Cによって、計測されたCPU10の使用率の段階に合わせて、両エンコーダ151、152に割り振られる単位時間当たりのフレーム数の比HF:SFを設定する。その結果、符号化装置100は、CPU10の使用率、すなわち負荷の変動に関わらず、各エンコーダ151、152が符号化対象の映像データの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。従って、符号化装置100はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。
《実施形態5》
本発明の実施形態5による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
図14は、本発明の実施形態5による符号化部11Dのブロック図である。図14を参照するに、符号化部11Dは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、CPU負荷推定部23、割り振り割合設定部22D、第1データベース24、CPU負荷検出部25、及び第2データベース26を含む。符号化部11Dは、図8の実施形態3の要素と、図12の実施形態4の要素とを実質的に併せ持つ。図14ではそれら同様な要素に対し、図8、図12に示されている符号と同じ符号を付し、その詳細については図3、図8、及び図12についての説明を援用する。
割り振り割合設定部22Dは実施形態3による割り振り割合設定部22Bと同様、CPU負荷推定部23によって予測されたCPU10の負荷の推移、すなわちタイムライン処理指数TEの推移に基づき、データ割振部14によって両エンコーダ151、152に単位時間当たりに割り振られる映像データの割合を設定する。
割り振り割合設定部22Dは更に実施形態3による割り振り割合設定部22Bと同様、データ割振部14からタイムコードが渡されるごとに、そのタイムコードをCPU負荷推定部23から受け取った各タイムコードと比較する。その一方で、割り振り割合設定部22DはCPU負荷検出部25を通してCPU10の使用率を監視する。CPU10の使用率の段階が変化するごとに、割り振り割合設定部22Dは、変化後の段階に対応するCPU負荷指数を決定する。ここで、そのCPU負荷指数は使用率の段階ごとに予め評価され、第2データベース26に記録されている。割り振り割合設定部22Dは、変化後の使用率の段階に対応するCPU負荷指数を第2データベース26から検索する。
データ割振部14からのタイムコードが、CPU負荷推定部23からのタイムコードより所定量だけ小さい値に達したとき、割り振り割合設定部22Dは、CPU負荷推定部23からのタイムコードに対応するタイムライン処理指数TEを、その時点でのCPU10の使用率の段階に対応するCPU負荷指数LEと比較する。タイムライン処理指数TEがCPU負荷指数LEより大きい場合、割り振り割合設定部22Dは実施形態3による割り振り割合設定部22Bと同様、そのタイムライン処理指数TEから得られたフレーム数SF=0又は整数比HFI:SFIをデータ割振部14に与える。一方、タイムライン処理指数TEがCPU負荷指数LE以下である場合、割り振り割合設定部22Dは実施形態4による割り振り割合設定部22Dと同様、CPU10の使用率の段階に対応するフレーム数の比を第2データベース26から検索して、データ割振部14に渡す。こうして、CPU10の実際の負荷が編集情報から予測された負荷と同程度以上である場合は映像データが、編集情報に基づいて設定されたフレーム数の比ではなく、その実際の負荷に適したフレーム数の比で両エンコーダ151、152に割り振られる。それにより、CPU10の負荷の予測の誤りに起因するビデオ編集システム200全体の処理速度の低下が防止される。
図15は、符号化部11Dによる映像データの割り振り処理のフローチャートである。CPU負荷推定部23、CPU負荷検出部25、割り振り割合設定部22D、及びデータ割振部14は、図15のフローチャートに従って、両エンコーダ151、152に単位時間当たりに割り振られるフレーム数の比を変化させる。以下、図15を参照しながら、フレーム数の比の設定処理について説明する。なお、図15は、図11、図13に示されているステップと同様なステップを含む。従って、図15ではそれら同様なステップに対し、図11、図13に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図11、図13についての説明を援用する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。
最初に、ステップS31では、割り振り割合設定部22Dは、CPU負荷推定部23から受け取ったタイムコードを再生時間の早い順に目標タイムコードTrとして設定する。
次いで、ステップS32では、割り振り割合設定部22Dはデータ割振部14からタイムコードTcを読み取る。
次のステップS33では、割り振り割合設定部22DはタイムコードTcを、目標タイムコードTrより所定量だけ小さい値と比較する。タイムコードTcがその値(Tr−所定量)以上である場合(ステップS33で“Yes”の場合)は処理がステップS51に進む。タイムコードTcがその値(Tr−所定量)よりも小さい場合(ステップS33で“No”の場合)は処理がステップS32から繰り返される。
ステップS51では、割り振り割合設定部22Dは、目標タイムコードTrに対応するタイムライン処理指数TEを求める。
次いで、ステップS52では、CPU負荷検出部25はOS27のAPIを利用してCPU10の使用率を所定の時間間隔で計測する。CPU負荷検出部25は更に、計測されたCPU10の使用率の属する段階を特定し、以前の段階と同じか否かを判断する。段階が変わった場合、CPU負荷検出部25は、CPU10の使用率の属する段階が変化したことを変化後の段階の種類と共に割り振り割合設定部22Dに通知する。割り振り割合設定部22Dは、通知された使用率の段階に対応するCPU負荷指数LEを第2データベース26から検索する。
次いで、ステップS53では、割り振り割合設定部22Dはタイムライン処理指数TEをCPU負荷指数LEと比較する。タイムライン処理指数TEがCPU負荷指数LEより大きい場合(ステップS53で“Yes”の場合)、処理がステップS34に進む。それにより、実施形態3によるステップS34〜S37と同様、そのタイムライン処理指数TEから得られたフレーム数SF=0又は整数比HFI:SFIで映像データが両エンコーダ151、152に割り振られる。一方、タイムライン処理指数TEがCPU負荷指数LE以下である場合(ステップS53で“No”の場合)、処理がステップS43に進む。それにより、実施形態4によるステップS43〜S45と同様、CPU10の使用率の段階に対応するフレーム数の比で映像データが両エンコーダ151、152に割り振られる。
実施形態5の符号化装置100はまず、CPU負荷推定部23によって編集情報に基づいてタイムライン処理指数TEの推移を予測し、割り振り割合設定部22Dによって、両エンコーダ151、152に割り振られる単位時間当たりのフレーム数の比HF:SFを、予測されたタイムライン処理指数TEの推移に基づいて設定する。符号化装置100は次に、CPU負荷検出部25によってCPU10の使用率の段階をリアルタイムで計測し、割り振り割合設定部22Dによって、計測されたCPU10の使用率の段階からCPU10の実際の負荷LEを評価してタイムライン処理指数TEと比較する。CPU10の実際の負荷LEがタイムライン処理指数TEよりも小さい場合、符号化装置100は符号化対象の映像データを、タイムライン処理指数TEに基づいて設定されたフレーム数の比HF:SFで両エンコーダ151、152に割り振る。一方、CPU10の実際の負荷LEがタイムライン処理指数TEと同程度以上である場合、符号化装置100は符号化対象の映像データを、CPU10の実際の負荷LEに予め対応づけられているフレーム数の比で両エンコーダ151、152に割り振る。それにより、編集部13による編集処理の内容から予測される負荷以上にCPU10の負荷が変動しても、符号化装置100は、各エンコーダ151、152が符号化対象のフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。その結果、符号化装置100はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。
《実施形態6》
本発明の実施形態6による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
図16は、本発明の実施形態6による符号化部11Eのブロック図である。図16を参照するに、符号化部11Eは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、処理速度測定部28、及び割り振り割合設定部22Eを含む。符号化部11Eは、処理速度測定部28と割り振り割合設定部22Eとを除き、図3に示されている要素と同様な要素を含む。図16ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細については図3についての説明を援用する。
処理速度測定部28は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。処理速度測定部28は、データ割振部14によって各エンコーダ151、152に符号化対象のデータ単位が割り振られた時点から、そのデータ単位が符号化されて各エンコーダ151、152から合成部16に出力された時点までの時間を計測する。具体的には、処理速度測定部28はまず、その時間の計測を、データ割振部14から合成部16に、各エンコーダ151、152に割り振られたデータ単位の番号とそのデータ単位の符号化後の書き込み先のアドレスとが渡された時点から開始する。処理速度測定部28は次にその時間の計測を、そのアドレスと同じアドレスがいずれかのエンコーダ151、152から合成部16に出力された時点に終了する。処理速度測定部28は更に、計測された時間から各エンコーダ151、152の符号化処理速度を算定し、割り振り割合設定部22Eに渡す。処理速度測定部28はその他に、各エンコーダ151、152から出力される映像データのビットレートを計測し、得られたビットレートから各エンコーダ151、152の符号化処理速度を算定してもよい。
割り振り割合設定部22Eは、ハードウェア・エンコーダ151による符号化処理速度HF1とソフトウェア・エンコーダ152による符号化処理速度SF1とに基づいて両エンコーダ151、152間での符号化処理速度の比HF1/SF1を求め、その時点で単位時間当たりにハードウェア・エンコーダ151とソフトウェア・エンコーダ152とに割り振られているフレーム数の比HF2/SF2と比べる。符号化処理速度の比HF1/SF1がフレーム数の比HF2/SF2とは異なる場合、割り振り割合設定部22Eは両エンコーダ151、152に単位時間当たりに割り振るフレーム数の比として符号化処理速度の比HF1/SF1をデータ割振部14に渡す。ここで、符号化処理速度の比は一般に整数比ではないので、割り振り割合設定部22Eは符号化処理速度の比を予め整数比で近似しておく。
図17は、符号化部11Eによる映像データの割り振り処理のフローチャートである。処理速度測定部28、割り振り割合設定部22E、及びデータ割振部14は、図17のフローチャートに従って、両エンコーダ151、152に単位時間当たりに割り振られるフレーム数の比を、各エンコーダ151、152による符号化処理速度の比に調節する。以下、図17を参照しながら、その調節処理について説明する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。
最初に、ステップS61では、処理速度測定部28は、データ割振部14によって各エンコーダ151、152に符号化対象のデータ単位が割り振られた時点から、そのデータ単位が符号化されて各エンコーダ151、152から合成部16に出力された時点までの時間を計測する。処理速度測定部28は更に、計測された時間から各エンコーダ151、152の符号化処理速度を算定し、割り振り割合設定部22Eに渡す。
次いで、ステップS62では、割り振り割合設定部22Eは、処理速度測定部28から受け取った符号化処理速度に基づいて両エンコーダ151、152間での符号化処理速度の比を求め、その比を整数比で近似する。割り振り割合設定部22Eは更に、符号化処理速度の比を、その時点で両エンコーダ151、152に単位時間当たりに割り振られているフレーム数の比と比べる。符号化処理速度の比HF1/SF1がフレーム数の比HF2/SF2とは異なる場合(ステップS62で“Yes”の場合)は処理がステップS63に進む。符号化処理速度の比HF1/SF1がフレーム数の比HF2/SF2と等しい場合(ステップS62で“No”の場合)は処理がステップS61に戻る。
ステップS63では、割り振り割合設定部22Eは、両エンコーダ151、152に単位時間当たりに割り振るフレーム数の比の新たな値として符号化処理速度の比をデータ割振部14に渡す。
次いで、ステップS64では、データ割振部14は、新たに設定されたフレーム数の比で両エンコーダ151、152に符号化対象の映像データを割り振る。
次いで、ステップS65では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合(ステップS65で“No”の場合)は処理がステップS61に戻り、最後である場合(ステップS65で“Yes”の場合)は処理が終了する。ステップS61〜S65のループは所定の時間間隔で、各エンコーダ151、152から合成部16に映像データが出力されるごとに繰り返される。
実施形態6の符号化装置100は、処理速度測定部28によって、各エンコーダ151、152による実際の符号化処理速度を計測し、割り振り割合設定部22Eによって、両エンコーダ151、152に割り振られるフレーム数の割合を、両エンコーダ151、152間での実際の符号化処理速度の比に調節する。それにより、符号化装置100は、CPU10の負荷変動に伴うソフトウェア・エンコーダ152による符号化処理速度の変動に関わらず、合成部16が各エンコーダ151、152によって符号化されたフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。その結果、符号化装置100はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。
《実施形態7》
本発明の実施形態7による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
図18は、本発明の実施形態7による符号化部11Fのブロック図である。図18を参照するに、符号化部11Fは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、CPU負荷検出部25、割り振り割合設定部22F、処理速度測定部28、及び第2データベース26を含む。符号化部11Fは、図12の実施形態4による要素と図16の実施形態6による要素を実質的に併せ持つ。図18ではそれら同様な要素に対し、図12及び図16に示されている符号と同じ符号を付し、その詳細については、図3、図12、及び図16についての説明を援用する。
割り振り割合設定部22Fは、実施形態6による割り振り割合設定部22Eと同様、処理速度測定部28から受け取った符号化処理速度に基づいて両エンコーダ151、152間での符号化処理速度の比HF1/SF1を求め、その時点で両エンコーダ151、152に単位時間当たりに割り振られているフレーム数の比HF2/SF2と比べる。その一方で、割り振り割合設定部22Fは、CPU負荷検出部25を通してCPU10の使用率を監視する。
符号化処理速度の比HF1/SF1がフレーム数の比HF2/SF2とは異なる場合、割り振り割合設定部22Fは、CPU10の使用率の段階に対応するフレーム数の比HF3/SF3を第2データベース26から検索する。割り振り割合設定部22Fは更に、検索されたフレーム数の比HF3/SF3を符号化処理速度の比HF1/SF1と比較する。符号化処理速度の比HF1/SF1が検索されたフレーム数の比HF3/SF3より大きい場合、割り振り割合設定部22Fは実施形態6による割り振り割合設定部22Eと同様、両エンコーダ151、152に単位時間当たりに割り振るフレーム数の比として符号化処理速度の比HF1/SF1をデータ割振部14に渡す。一方、符号化処理速度の比HF1/SF1が検索されたフレーム数の比HF3/SF3以下である場合、割り振り割合設定部22Fは実施形態4による割り振り割合設定部22Dと同様、両エンコーダ151、152に単位時間当たりに割り振るフレーム数の比として、CPU10の使用率の段階に対応するフレーム数の比HF3/SF3をデータ割振部14に渡す。
こうして、CPU10の使用率の示す負荷が両エンコーダ151、152間での符号化処理速度の比HF1/SF1の示す負荷と同程度以上である場合、割り振り割合設定部22Fは符号化対象の映像データを、符号化処理速度の比HF1/SF1ではなく、使用率の示す負荷に適したフレーム数の比HF3/SF3で両エンコーダ151、152に割り振る。
図19は、符号化部11Fによる映像データの割り振り処理のフローチャートである。処理速度測定部28、CPU負荷検出部25、割り振り割合設定部22F、及びデータ割振部14は、図19のフローチャートに従って、両エンコーダ151、152に単位時間当たりに割り振られるフレーム数の比を変化させる。以下、図19を参照しながら、そのフレーム数の設定処理について説明する。なお、図19は、図17に示されているステップと同様なステップを含む。従って、図19ではそれら同様なステップに対し、図17に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図17についての説明を援用する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。
最初に、ステップS61では、処理速度測定部28は、各エンコーダ151、152に符号化対象のデータ単位が割り振られた時点から、符号化されたそのデータ単位が合成部16に出力された時点までの時間に基づいて各エンコーダ151、152の符号化処理速度を算定し、割り振り割合設定部22Fに渡す。
次いで、ステップS62では、割り振り割合設定部22Fは、各エンコーダ151、152の符号化処理速度に基づいて両エンコーダ151、152間での符号化処理速度の比HF1/SF1を求め、その比を整数比で近似する。割り振り割合設定部22Fは更に、符号化処理速度の比HF1/SF1が、その時点で両エンコーダ151、152に単位時間当たりに割り振られているフレーム数の比HF2/SF2とは異なる場合(ステップS62で“Yes”の場合)は処理をステップS71に進め、符号化処理速度の比HF1/SF1がフレーム数の比HF2/SF2と等しい場合(ステップS62で“No”の場合)は処理をステップS61に戻す。
次いで、ステップS71では、CPU負荷検出部25はOS27のAPIを利用してCPU10の使用率を所定の時間間隔で計測する。CPU負荷検出部25は更に、計測されたCPU10の使用率の属する段階を特定し、以前の段階と同じか否かを判断する。段階が変わった場合、CPU負荷検出部25は、CPU10の使用率の属する段階が変化したことを変化後の段階の種類と共に割り振り割合設定部22Fに通知する。割り振り割合設定部22Fは、通知された使用率の段階に対応するフレーム数の比HF3/SF3を第2データベース26から検索する。
次いで、ステップS72では、割り振り割合設定部22Fは、検索されたフレーム数の比HF3/SF3を符号化処理速度の比HF1/SF1と比較する。符号化処理速度の比HF1/SF1が検索されたフレーム数の比HF3/SF3より大きい場合(ステップS72で“Yes”の場合)、処理がステップS63に進む。それにより、符号化処理速度の比HF1/SF1がデータ割振部14に渡される。一方、符号化処理速度の比HF1/SF1が検索されたフレーム数の比HF3/SF3以下である場合(ステップS72で“No”の場合)、処理がステップS73に進む。それにより、検索されたフレーム数の比HF3/SF3がデータ割振部14に渡される。従って、ステップS64では実施形態6によるものと同様、データ割振部14が、新たに設定されたフレーム数の比で映像データを両エンコーダ151、152に割り振る。
実施形態7の符号化装置100は、まず、処理速度測定部28によって、各エンコーダ151、152による実際の符号化処理速度を計測し、割り振り割合設定部22Fによって、両エンコーダ151、152に割り振られるフレーム数の割合を、両エンコーダ151、152間での実際の符号化処理速度の比HF1/SF1に設定する。符号化装置100は次に、CPU負荷検出部25によってCPU10の使用率の段階をリアルタイムで計測し、割り振り割合設定部22Fによって、計測されたCPU10の使用率の段階に対応するフレーム数の比HF3/SF3を符号化処理速度の比HF1/SF1と比較する。CPU10の使用率の段階に対応するフレーム数の比HF3/SF3が符号化処理速度の比HF1/SF1よりも小さい場合、符号化装置100は符号化対象の映像データを符号化処理速度の比HF1/SF1で両エンコーダ151、152に割り振る。一方、CPU10の使用率の段階に対応するフレーム数の比HF3/SF3が符号化処理速度の比HF1/SF1と同程度以上である場合、符号化装置100は符号化対象の映像データを、使用率の段階に対応するフレーム数の比HF3/SF3で両エンコーダ151、152に割り振る。それにより、符号化装置100は、CPU10の負荷変動に伴うソフトウェア・エンコーダ152による符号化処理速度の変動に関わらず、合成部16が各エンコーダ151、152によって符号化されたフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。その結果、符号化装置100はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。
《実施形態8》
本発明の実施形態8による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
図20は、本発明の実施形態8による符号化部11Gのブロック図である。図20を参照するに、符号化部11Gは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、及び切換位置検出部29を含む。符号化部11Gは、切換位置検出部29を除き、図3に示されている要素と同様な要素を含む。図20ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細については図3についての説明を援用する。
切換位置検出部29は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。切換位置検出部29は、編集部13からメモリ部20に書き込まれた符号化対象の映像データストリームの中からシーンの切換位置又は編集処理の種類の変更位置を検出し、その検出に応じて検出信号を生成する。
切換位置検出部29は編集部13による編集処理に先立ち、編集部13から編集情報を受け取る。切換位置検出部29はその編集情報に基づき、編集部13によって編集される映像データストリームの中から、シーンが切り替わるフレームのタイムコードを切換位置として設定し、編集対象の映像データの復号方式やエフェクト処理の内容など、編集処理の内容が切り替わるフレームのタイムコードを変更位置として設定する。
編集部13からメモリ部20に符号化対象の1フレームが書き込まれるごとに、データ割振部14はそのフレームからタイムコードを読み取って切換位置検出部29に渡す。切換位置検出部29はそのタイムコードを、各切換位置及び各変更位置を示すタイムコードと比較する。データ割振部14からのタイムコードがいずれかの切換位置又は変更位置(以下、切換/変更位置と略記する)を示すタイムコードに一致したとき、切換位置検出部29は検出信号をデータ割振部14に出力する。データ割振部14はその検出信号に応じてそのフレーム以降のフレームの出力先を、直前のフレームが出力されるエンコーダとは別のエンコーダに切り換える。
なお、2つの連続する切換/変更位置の間に含まれる一連の映像データが大きい場合、切換位置検出部29はその映像データの中から、いずれかのフレームの境目を新たな切換位置として設定してもよい。それにより、各エンコーダ151、152に割り振られる映像データ用のバッファ領域を小さく維持することができる。更に、両エンコーダ151、152の並行使用による符号化処理の高速化の確実性を高めるために、切換位置検出部29は両エンコーダ151、152に割り振られる映像データの割合を調節するとよい。
図21は、符号化部11Gによる映像データの割り振り処理のフローチャートである。切換位置検出部29とデータ割振部14とは、図21のフローチャートに従って、符号化対象の映像データを切換/変更位置で両エンコーダ151、152に割り振る。以下、図21を参照しながら、その割り振り処理について説明する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。
最初に、ステップS81では、切換位置検出部29は編集部13から編集情報を受け取り、その編集情報に基づき、編集部13によって編集される映像データストリームについて、切換/変更位置を示すタイムコードを設定する。以下、各タイムコードTcに対し、再生時間の早い順に番号sw=0、1、2、…、を振っておく。
次いで、ステップS82では、切換位置検出部29は番号swを“0”に初期化する。
次いで、ステップS83では、データ割振部14は符号化対象の映像データの出力先をハードウェア・エンコーダ151に初期化する。
次いで、ステップS84では、編集部13がメモリ部20に符号化対象の1フレームを書き込むごとに、データ割振部14はそのフレームからタイムコードTcを読み取って切換位置検出部29に渡す。
次いで、ステップS85では、切換位置検出部29は、データ割振部14から受け取ったタイムコードTcをsw番目の切換/変更位置のタイムコードT(sw)と比較する。データ割振部14からのタイムコードTcがsw番目の切換/変更位置のタイムコードT(sw)以上である場合(ステップS85で“Yes”の場合)、処理がステップS86に進む。タイムコードTcがsw番目の切換/変更位置のタイムコードT(sw)よりも小さい場合(ステップS85で“No”の場合)、処理がステップS84に戻る。その場合、データ割振部14はタイムコードTcのフレームをハードウェア・エンコーダ151に割り振る。
次いで、ステップS86では、切換位置検出部29は検出信号を生成する。データ割振部14はその検出信号に応じ、タイムコードTc以降のフレームをソフトウェア・エンコーダ152に割り振る。
次いで、ステップS87では、編集部13がメモリ部20に符号化対象の1フレームを書き込むごとに、データ割振部14はそのフレームからタイムコードTcを読み取って切換位置検出部29に渡す。
次いで、ステップS88では、切換位置検出部29は、データ割振部14から受け取ったタイムコードTcをsw+1番目の切換/変更位置のタイムコードT(sw+1)と比較する。データ割振部14からのタイムコードTcがsw+1番目の切換/変更位置のタイムコードT(sw+1)以上である場合(ステップS88で“Yes”の場合)、処理がステップS89に進む。タイムコードTcがsw+1番目の切換/変更位置のタイムコードT(sw+1)よりも小さい場合(ステップS88で“No”の場合)、処理がステップS87に戻る。その場合、データ割振部14はタイムコードTcのフレームをソフトウェア・エンコーダ152に割り振る。
次いで、ステップS89では、切換位置検出部29は検出信号を生成する。データ割振部14はその検出信号に応じ、タイムコードTc以降のフレームをハードウェア・エンコーダ151に割り振る。
次いで、ステップS90では、切換位置検出部29は番号swを“2”だけインクリメントする。
次いで、ステップS91では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合(ステップS91で“No”の場合)は処理がステップS84から繰り返され、最後である場合(ステップS91で“Yes”の場合)は処理が終了する。
実施形態8の符号化装置100は、切換位置検出部29によって編集情報に基づき、符号化対象の映像データストリームについて切換/変更位置を示すタイムコードT(sw)を設定し、符号化対象のフレームのタイムコードTcが切換/変更位置のタイムコードT(sw)に達するごとに、そのフレームの出力先を両エンコーダ151、152に交互に切り換える。すなわち、実施形態8の符号化装置100は符号化対象の映像データストリームを切換/変更位置で両エンコーダ151、152に割り振る。それにより、符号化装置100は、一連のシーン、又は同じ編集処理が継続されている映像データの全体を同じエンコーダで符号化するので、その画質を実質的に均一にできる。その上、エンコーダ151、152の切換に起因する画質の変化は多少なりとも存在したとしても、切換/変更位置に限られるので、視聴者には感知されにくい。その結果、符号化装置100は、視聴者が感じる映像データストリームの画質を均一に保ちつつ、両エンコーダ151、152による符号化処理を並行させて、符号化装置100全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。
本発明の実施形態による符号化部は上記の実施形態1〜実施形態8の他にも、実施形態1〜8の中から複数を組み合わせたものであってもよい。例えば、実施形態5と、実施形態7とを組み合わせてもよく、実施形態8と、実施形態2〜7のいずれかとを組み合わせてもよい。
本発明の実施形態による符号化装置100は上記のビデオ編集システム200の他に、ビデオキャプチャーやディジタルビデオカメラにリアルタイムエンコーダとして実装されてもよい。その場合、符号化装置は、図3に示されている構成において、編集部13に代えて入力部を含む。入力部は、DVDなどのリムーバブルディスク又はカメラから映像データを取り込む。入力部は、ネットワークインタフェースを通してネットワーク上のリソースから映像データを取り込んでもよい。入力部は、取り込まれた映像データをデータ割振部14に渡す。なお、コンピュータ端末のCPUはハードウェア・エンコーダと同じボードに実装されてもよい。
なお、以上の説明に関してさらに以下の項目を開示する。
(項目1)
音声データおよび/または映像データを含むAVデータを符号化する符号化装置であって、
CPUと、
符号化処理用のハードウェアで構成され、前記AVデータの一部を符号化するハードウェア・エンコーダと、
前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、
前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、
前記一連の符号化されたAVデータを出力する出力部と、
を備え、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、前記符号化装置。
(項目2)
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとによる符号化の方式は共通である、項目1に記載の符号化装置。
(項目3)
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータは互いに予測関係にない、項目1に記載の符号化装置。
(項目4)
前記データ割振部と前記ハードウェア・エンコーダとの間に接続され、前記データ割振部によって前記ハードウェア・エンコーダに割り振られるAVデータを記憶し、前記ハードウェア・エンコーダにAVデータを供給するバッファを更に備え、
前記データ割振部は、前記バッファの空き情報を取得し、その空き情報に基づいて前記AVデータを前記ソフトウェア・エンコーダに割り振る、
項目1に記載の符号化装置。
(項目5)
前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を表すデータが前記データ割振部に供給され、
前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目1に記載の符号化装置。
(項目6)
前記CPUは、前記AVデータについて符号化処理以外の他の処理も行い、
前記他の処理による前記CPUの負荷を、前記AVデータに対応させて予測するCPU負荷推定部と、
前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目1に記載の符号化装置。
(項目7)
前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に基づいて前記割合を変更する、項目6に記載の符号化装置。
(項目8)
前記CPUの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部を更に備え、
前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目1に記載の符号化装置。
(項目9)
前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定する処理速度測定部と、
前記測定された符号化処理速度に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目1に記載の符号化装置。
(項目10)
前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に応じて前記割合を変更する、項目9に記載の符号化装置。
(項目11)
前記AVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出し、その検出に応じて検出信号を生成する切換位置検出部を更に備え、
前記データ割振部は、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
項目1に記載の符号化装置。
(項目12)
CPUと、
音声データおよび/または映像データを含むAVデータを編集する編集部と、
符号化処理用の回路で構成され、前記編集されたAVデータの一部を符号化するハードウェア・エンコーダと、
前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して、前記編集されたAVデータの他の一部を符号化するソフトウェア・エンコーダと、
前記編集されたAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、
前記一連の符号化されたAVデータを出力する出力部と、
を備え、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化するビデオ編集システム。
(項目13)
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとによる符号化の方式は共通である、項目12に記載のビデオ編集システム。
(項目14)
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータは互いに予測関係にない、項目12に記載のビデオ編集システム。
(項目15)
前記データ割振部と前記ハードウェア・エンコーダとの間に接続され、前記データ割振部によって前記ハードウェア・エンコーダに割り振られるAVデータを記憶し、前記ハードウェア・エンコーダにAVデータを供給するバッファを更に備え、
前記データ割振部は、前記バッファの空き情報を取得し、その空き情報に基づいて前記AVデータを前記ソフトウェア・エンコーダに割り振る、
項目12に記載のビデオ編集システム。
(項目16)
前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を表すデータが前記データ割振部に供給され、
前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、項目12に記載のビデオ編集システム。
(項目17)
前記編集部は、編集対象のAVデータに対してユーザにより設定された編集情報を有し、
前記編集部が編集情報に基づいて編集処理を実行するときのCPUの負荷を予測するCPU負荷推定部と、
前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部は、前記データに基づいて前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目12に記載のビデオ編集システム。
(項目18)
前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に基づいて前記割合を変更する、項目17に記載のビデオ編集システム。
(項目19)
前記CPUの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部、
を更に備え、
前記データ割振部は、前記データに基づいて前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目12に記載のビデオ編集システム。
(項目20)
前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定する処理速度測定部と、
前記測定された符号化処理速度に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部は、前記データに基づいて前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
項目12に記載のビデオ編集システム。
(項目21)
前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に応じて前記割合を変更する、項目20に記載のビデオ編集システム。
(項目22)
前記編集部が編集情報に基づいて編集処理を実行して得られるAVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を前記編集情報から検出して、所定の検出信号を生成するフレーム切換位置検出部、を更に備え、
前記データ割振部は、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
項目12に記載のビデオ編集システム。
(項目23)
符号化処理用のハードウェアで構成され、AVデータの一部を符号化するハードウェア・エンコーダと、CPUを利用して、前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、を使用して映像データを符号化する方法であって、
前記AVデータを受信するステップと、
前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、
前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダがそれぞれ割り振られたAVデータを符号化するステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成するステップと、
前記一連の符号化されたAVデータを出力するステップと、
を含み、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、前記方法。
(項目24)
前記AVデータを割り振るステップは、
前記ハードウェア・エンコーダに割り振られるデータをバッファに記憶させるステップと、
前記バッファから前記ハードウェア・エンコーダにAVデータを供給するステップと、
前記バッファの空き情報を取得するステップと、
前記バッファの空き情報に基づいて前記AVデータを前記ソフトウェア・エンコーダに割り振るステップと、
を含む、項目23に記載の方法。
(項目25)
前記AVデータを割り振るステップは、
前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を表すデータを受け取るステップと、
前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、
を含む、項目23に記載の方法。
(項目26)
前記符号化するステップ中に、前記CPUは前記ソフトウェア・エンコーダによる符号化以外の、前記AVデータに関連づけられた他の処理も行い、
前記他の処理による前記CPUの負荷を、前記AVデータに対応させて予測するステップと、
前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを出力するステップと、
を更に含み、
前記AVデータを割り振るステップは、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、項目23に記載の方法。
(項目27)
前記AVデータを割り振るステップは、前記CPUの負荷を検出し、検出された負荷に基づいて前記割合を変更するステップを更に含む、項目26に記載の方法。
(項目28)
前記AVデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のAVデータに編集するステップであって、前記符号化するステップと並列して実行される、該ステップと、
前記編集するステップの編集情報に基づく編集処理を実行するときのCPUの負荷を符号化対象の一連のAVデータに対応させて予測するステップと、
前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを出力するステップと、
を更に含み、
前記AVデータを割り振るステップは、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、項目23に記載の方法。
(項目29)
前記CPUの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを供給するステップを更に含み、
前記AVデータを割り振るステップは、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、項目23に記載の方法。
(項目30)
前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定するステップと、
測定された符号処理速度に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを供給するステップと、
を更に備え、
前記AVデータを割り振るステップは、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップを含む、項目23に記載の方法。
(項目31)
前記AVデータを割り振るステップは、前記CPUの負荷を検出し、検出された負荷に応じて前記割合を変更するステップを更に含む、項目30に記載の方法。
(項目32)
前記AVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出して、所定の検出信号を生成するステップを更に備え、
前記AVデータを割り振るステップは、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換えるステップを含む、項目23に記載の方法。
(項目33)
前記AVデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のAVデータに編集するステップと、
前記符号化対象の一連のAVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出して、所定の検出信号を生成するステップと、
を更に備え、
前記AVデータを割り振るステップは、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換えるステップを含む、項目23に記載の方法。
(項目34)
音声データおよび/または映像データを含むAVデータを符号化するプログラムであって、
CPUと、
符号化処理専用のハードウェアで構成され、AVデータの一部を符号化するハードウェア・エンコーダと、
前記CPUを利用して、前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、
を備えた装置に、
前記AVデータを受信するステップと、
前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、
前記AVデータに対する符号化処理を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとで並行させるステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一つの符号化AVデータに合成するステップと、
前記符号化AVデータを出力するステップと、
を実行させるためのプログラムであって、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、前記プログラム。
本発明の実施形態1によるビデオ編集システム及び符号化装置の構成を示すブロック図である。 図1に示されているハードウェア・エンコーダが実装されたボードの概略的な平面図である。 本発明の実施形態によるビデオ編集システムのソフトウェア構成を示すブロック図である。 本発明の実施形態1によるビデオ編集システムに表示される編集ウィンドウの一例を示す図である。 本発明の実施形態1による符号化部のブロック図である。 図5に示されている符号化部による映像データの割り振り処理のフローチャートである。 本発明の実施形態2による符号化部のブロック図である。 本発明の実施形態3による符号化部のブロック図である。 図8に示されている第1データベースの示すCPU負荷指数の一例である。 図8に示されている符号化部による、映像データを割り振る割合の設定処理のフローチャートである。 図8に示されている符号化部による映像データの割り振り処理のフローチャートである。 本発明の実施形態4による符号化部のブロック図である。 図12に示されている符号化部による映像データの割り振り処理のフローチャートである。 本発明の実施形態5による符号化部のブロック図である。 図14に示されている符号化部による映像データの割り振り処理のフローチャートである。 本発明の実施形態6による符号化部のブロック図である。 図16に示されている符号化部による映像データの割り振り処理のフローチャートである。 本発明の実施形態7による符号化部のブロック図である。 図18に示されている符号化部による映像データの割り振り処理のフローチャートである。 本発明の実施形態8による符号化部のブロック図である。 図20に示されている符号化部による映像データの割り振り処理のフローチャートである。
符号の説明
10 CPU
11、11A〜11G 符号化部
13 編集部
14 データ割振部
151 ハードウェア・エンコーダ
152 ソフトウェア・エンコーダ
16 合成部
17 出力部
22A〜22F 割り振り割合設定部
23 CPU負荷推定部
25 CPU負荷検出部
28 処理速度測定部
100 符号化装置
200 ビデオ編集システム

Claims (16)

  1. 音声データおよび/または映像データを含むAVデータを符号化する符号化装置であって、
    CPUと、
    符号化処理用のハードウェアで構成され、前記AVデータの一部を符号化するハードウェア・エンコーダと、
    前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、
    前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
    前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、
    前記一連の符号化されたAVデータを出力する出力部と、
    を備え、
    前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、前記符号化装置。
  2. 前記データ割振部と前記ハードウェア・エンコーダとの間に接続され、前記データ割振部によって前記ハードウェア・エンコーダに割り振られるAVデータを記憶し、前記ハードウェア・エンコーダにAVデータを供給するバッファを更に備え、
    前記データ割振部は、前記バッファの空き情報を取得し、その空き情報に基づいて前記AVデータを前記ソフトウェア・エンコーダに割り振る、
    請求項1に記載の符号化装置。
  3. 前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を表すデータが前記データ割振部に供給され、
    前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
    請求項1に記載の符号化装置。
  4. 前記CPUは、前記AVデータについて符号化処理以外の他の処理も行い、
    前記他の処理による前記CPUの負荷を、前記AVデータに対応させて予測するCPU負荷推定部と、
    前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
    を更に備え、
    前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
    請求項1に記載の符号化装置。
  5. 前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に基づいて前記割合を変更する、請求項4に記載の符号化装置。
  6. 前記CPUの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部を更に備え、
    前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
    請求項1に記載の符号化装置。
  7. 前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定する処理速度測定部と、
    前記測定された符号化処理速度に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
    を更に備え、
    前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
    請求項1に記載の符号化装置。
  8. 前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に応じて前記割合を変更する、請求項7に記載の符号化装置。
  9. 前記AVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出し、その検出に応じて検出信号を生成する切換位置検出部を更に備え、
    前記データ割振部は、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
    請求項1に記載の符号化装置。
  10. CPUと、
    音声データおよび/または映像データを含むAVデータを編集する編集部と、
    符号化処理用の回路で構成され、前記編集されたAVデータの一部を符号化するハードウェア・エンコーダと、
    前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して、前記編集されたAVデータの他の一部を符号化するソフトウェア・エンコーダと、
    前記編集されたAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
    前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、
    前記一連の符号化されたAVデータを出力する出力部と、
    を備え、
    前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化するビデオ編集システム。
  11. 前記編集部は、編集対象のAVデータに対してユーザにより設定された編集情報を有し、
    前記編集部が編集情報に基づいて編集処理を実行するときのCPUの負荷を予測するCPU負荷推定部と、
    前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
    を更に備え、
    前記データ割振部は、前記データに基づいて前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
    請求項10に記載のビデオ編集システム。
  12. 前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に応じて前記割合を変更する、請求項10に記載のビデオ編集システム。
  13. 前記編集部が編集情報に基づいて編集処理を実行して得られるAVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を前記編集情報から検出して、所定の検出信号を生成するフレーム切換位置検出部、を更に備え、
    前記データ割振部は、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
    請求項10に記載のビデオ編集システム。
  14. 符号化処理用のハードウェアで構成され、AVデータの一部を符号化するハードウェア・エンコーダと、CPUを利用して、前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、を使用して映像データを符号化する方法であって、
    前記AVデータを受信するステップと、
    前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、
    前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダがそれぞれ割り振られたAVデータを符号化するステップと、
    前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成するステップと、
    前記一連の符号化されたAVデータを出力するステップと、
    を含み、
    前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、前記方法。
  15. 前記AVデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のAVデータに編集するステップであって、前記符号化するステップと並列して実行される、該ステップと、
    前記編集するステップの編集情報に基づく編集処理を実行するときのCPUの負荷を符号化対象の一連のAVデータに対応させて予測するステップと、
    前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを出力するステップと、
    を更に含み、
    前記AVデータを割り振るステップは、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、請求項14に記載の方法。
  16. 前記AVデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のAVデータに編集するステップと、
    前記符号化対象の一連のAVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出して、所定の検出信号を生成するステップと、
    を更に備え、
    前記AVデータを割り振るステップは、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換えるステップを含む、請求項14に記載の方法。
JP2008184758A 2008-04-13 2008-07-16 映像および音声データの符号化装置とその符号化方法、及びビデオ編集システム Pending JP2011077564A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008184758A JP2011077564A (ja) 2008-04-13 2008-07-16 映像および音声データの符号化装置とその符号化方法、及びビデオ編集システム
PCT/JP2009/001660 WO2009128227A1 (en) 2008-04-13 2009-04-09 Encoding apparatus of video data and sound data, encoding method thereof, and video editing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008104180 2008-04-13
JP2008184758A JP2011077564A (ja) 2008-04-13 2008-07-16 映像および音声データの符号化装置とその符号化方法、及びビデオ編集システム

Publications (1)

Publication Number Publication Date
JP2011077564A true JP2011077564A (ja) 2011-04-14

Family

ID=40888096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008184758A Pending JP2011077564A (ja) 2008-04-13 2008-07-16 映像および音声データの符号化装置とその符号化方法、及びビデオ編集システム

Country Status (2)

Country Link
JP (1) JP2011077564A (ja)
WO (1) WO2009128227A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013164660A (ja) * 2012-02-09 2013-08-22 Nec Corp ストレージ装置
JP2017216616A (ja) * 2016-06-01 2017-12-07 キヤノン株式会社 撮像装置及び撮像装置の制御方法
WO2019045297A1 (ko) * 2017-08-30 2019-03-07 삼성전자(주) 영상처리장치 및 그 제어방법
EP3820153A1 (en) 2019-11-11 2021-05-12 Ricoh Company, Ltd. Image capturing device, distribution system, distribution method, and carrier means
JP2021101505A (ja) * 2019-12-24 2021-07-08 株式会社Jvcケンウッド 撮像装置、画像処理装置及び画像処理方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8760472B2 (en) 2008-04-01 2014-06-24 Apple Inc. Pixel transforms
US8881013B2 (en) 2009-04-30 2014-11-04 Apple Inc. Tool for tracking versions of media sections in a composite presentation
US8418082B2 (en) 2009-05-01 2013-04-09 Apple Inc. Cross-track edit indicators and edit selections
US8701007B2 (en) 2009-04-30 2014-04-15 Apple Inc. Edit visualizer for modifying and evaluating uncommitted media content
US8555169B2 (en) 2009-04-30 2013-10-08 Apple Inc. Media clip auditioning used to evaluate uncommitted media content
US8627207B2 (en) 2009-05-01 2014-01-07 Apple Inc. Presenting an editing tool in a composite display area
US8819557B2 (en) 2010-07-15 2014-08-26 Apple Inc. Media-editing application with a free-form space for organizing or compositing media clips
US9323438B2 (en) 2010-07-15 2016-04-26 Apple Inc. Media-editing application with live dragging and live editing capabilities
US9099161B2 (en) 2011-01-28 2015-08-04 Apple Inc. Media-editing application with multiple resolution modes
US9997196B2 (en) 2011-02-16 2018-06-12 Apple Inc. Retiming media presentations
US8839110B2 (en) 2011-02-16 2014-09-16 Apple Inc. Rate conform operation for a media-editing application
US11747972B2 (en) 2011-02-16 2023-09-05 Apple Inc. Media-editing application with novel editing tools
US9412414B2 (en) 2011-02-16 2016-08-09 Apple Inc. Spatial conform operation for a media-editing application
US10045089B2 (en) 2011-08-02 2018-08-07 Apple Inc. Selection of encoder and decoder for a video communications session
US9792955B2 (en) 2011-11-14 2017-10-17 Apple Inc. Automatic generation of multi-camera media clips
CN106993190B (zh) * 2017-03-31 2019-06-21 武汉斗鱼网络科技有限公司 软硬件协同编码方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3729540B2 (ja) * 1995-09-08 2005-12-21 株式会社ルネサステクノロジ 画像処理装置
SG82613A1 (en) * 1999-05-21 2001-08-21 Inst Of Microelectronics Dynamic load-balancing between two processing means for real-time video encoding
CN1245839C (zh) * 2001-07-04 2006-03-15 矽统科技股份有限公司 分散式视频数据流解码方法
JP3680846B2 (ja) * 2003-05-28 2005-08-10 セイコーエプソン株式会社 動画像の圧縮装置及びそれを用いた撮像装置
BRPI0606627A2 (pt) * 2005-01-19 2009-07-07 Thomson Licensing método e aparelho para codificação paralela em tempo real
US20070116117A1 (en) * 2005-11-18 2007-05-24 Apple Computer, Inc. Controlling buffer states in video compression coding to enable editing and distributed encoding
JP4214532B2 (ja) * 2006-04-25 2009-01-28 セイコーエプソン株式会社 画像処理装置及び画像処理方法
JP2008066851A (ja) * 2006-09-05 2008-03-21 Sony Corp 情報処理装置および情報処理方法、記録媒体、並びに、プログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013164660A (ja) * 2012-02-09 2013-08-22 Nec Corp ストレージ装置
JP2017216616A (ja) * 2016-06-01 2017-12-07 キヤノン株式会社 撮像装置及び撮像装置の制御方法
WO2019045297A1 (ko) * 2017-08-30 2019-03-07 삼성전자(주) 영상처리장치 및 그 제어방법
KR20190023665A (ko) * 2017-08-30 2019-03-08 삼성전자주식회사 영상처리장치 및 그 제어방법
US11463699B2 (en) 2017-08-30 2022-10-04 Samsung Electronics Co., Ltd. Image processing apparatus and control method thereof
KR102459734B1 (ko) * 2017-08-30 2022-10-28 삼성전자 주식회사 영상처리장치 및 그 제어방법
EP3820153A1 (en) 2019-11-11 2021-05-12 Ricoh Company, Ltd. Image capturing device, distribution system, distribution method, and carrier means
US11284094B2 (en) 2019-11-11 2022-03-22 Ricoh Company, Ltd. Image capturing device, distribution system, distribution method, and recording medium
JP2021101505A (ja) * 2019-12-24 2021-07-08 株式会社Jvcケンウッド 撮像装置、画像処理装置及び画像処理方法
JP7447481B2 (ja) 2019-12-24 2024-03-12 株式会社Jvcケンウッド 撮像装置、及び画像処理方法

Also Published As

Publication number Publication date
WO2009128227A1 (en) 2009-10-22

Similar Documents

Publication Publication Date Title
JP2011077564A (ja) 映像および音声データの符号化装置とその符号化方法、及びビデオ編集システム
US8437408B2 (en) Decoding with reference image stored in image memory for random playback
US8275247B2 (en) Method and apparatus for normal reverse playback
CN1239025C (zh) 使用画面类型转换的图象处理
US20090103630A1 (en) Image processing device
US7848428B2 (en) System and method for reducing visible artifacts in video coding using multiple reference pictures
US20090310678A1 (en) Image encoding apparatus, method of controlling the same and computer program
US20090257736A1 (en) Information processing apparatus and information processing method
WO2006027880A1 (ja) 記録装置および方法、再生装置および方法、記録媒体、並びにプログラム
JP5224484B2 (ja) 映像および音声データの符号化装置とその符号化方法、および、ビデオ編集システム
EP1455360A2 (en) Disc apparatus, disc recording method, disc playback method, recording medium, and program
JP4582185B2 (ja) 情報処理装置及び情報処理方法
US7974523B2 (en) Optimal buffering and scheduling strategy for smooth reverse in a DVD player or the like
US20060233528A1 (en) Program, information processing device, information processing method, and recording medium
JP3344607B2 (ja) 光ディスク、再生装置および再生方法
CN102132568A (zh) 运动检测装置
KR100676723B1 (ko) 영상 재생 장치
US20110150413A1 (en) Moving picture recording/reproducing apparatus and method
KR100593352B1 (ko) 영상 데이터 기록 장치 및 방법과 기록 매체
JP5171666B2 (ja) 映像音声記録装置
JP3384563B2 (ja) 光ディスク、再生装置および再生方法
KR20100060416A (ko) 영상저장장치 및 영상저장방법
JP3384562B2 (ja) 記録装置および記録方法
JP2009253384A (ja) 動画像符号化装置及び動画像符号化方法
JP2006304103A (ja) 動画記録装置、および動画記録再生装置