[go: up one dir, main page]

JP2011077564A - Encoder and encoding method of video and voice data, and video editing system - Google Patents

Encoder and encoding method of video and voice data, and video editing system 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
Japanese (ja)
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/en
Priority to PCT/JP2009/001660 priority patent/WO2009128227A1/en
Publication of JP2011077564A publication Critical patent/JP2011077564A/en
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

<P>PROBLEM TO BE SOLVED: To provide an encoder capable of accelerating the encoding processing of video data. <P>SOLUTION: A hardware encoder 151 is composed of hardware for encoding processing and encodes a part of AV data. A software encoder 152 utilizes a CPU 10 to encodes the other part of the AV data in parallel to the encoding processing by the hardware encoder 151. A data assignment portion 14 assigns the AV data to both of the encoders 151 and 152. A synthetic portion 16 arranges the video data encoded with each encoder in a predetermined order, and synthesizes the video data into a series of encoded video data. An output portion 17 outputs a series of encoded video data. The encoder enables encoding at higher encoding processing speed than the encoding processing speed attained only by the hardware encoder 151. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は映像データおよび音声データの符号化処理に関する。   The present invention relates to encoding processing of video data and audio data.

ビデオ編集システムはユーザによる映像データの編集作業を支援するためのシステムであり、一般に、パーソナルコンピュータなど、汎用のCPUを備えたコンピュータ端末に所定のアプリケーションプログラムを実行させることによって実現される。ビデオ編集システムは、予めビデオカメラ等などからHDDに1つ以上の映像データおよび音声データを取り込み、それらから1本の映像データストリームを編集する。編集された音声・映像データストリームはシステムによって圧縮された後、又は非圧縮データのまま、同じシステム内でHDDやDVDなどの任意の記録媒体に記録され、あるいは放送などのために送出され、又はIEEE1394等のインタフェースを通して外部に出力される。   A video editing system is a system for assisting a user in editing video data, and is generally realized by causing a computer terminal such as a personal computer equipped with a general-purpose CPU to execute a predetermined application program. The video editing system takes in one or more video data and audio data from a video camera or the like to an HDD in advance, and edits one video data stream therefrom. The edited audio / video data stream is compressed by the system, or is recorded as uncompressed data in an arbitrary recording medium such as an HDD or a DVD in the same system, or sent for broadcasting, or the like. The data is output to the outside through an interface such as IEEE1394.

ビデオ編集システムは、音声・映像データストリームの圧縮に様々な方式の符号化を利用する。近年、例えばHDV方式で見られるように、ストリーム1本当たりの映像データ量が膨大である。従って、近年のビデオ編集システムでは、符号化処理に要する時間が増加する傾向にある。   Video editing systems use various types of encoding to compress audio and video data streams. In recent years, the amount of video data per stream is enormous as seen in the HDV format, for example. Therefore, in recent video editing systems, the time required for encoding processing tends to increase.

音声・映像データの符号化処理を高速にするための従来の手法としては、符号化処理を行うCPUの数を増やして、並列に符号化処理を実行させる手法がある。その他に、一連の符号化処理の一部を専用のハードウェアに処理させ、残りをCPUに処理させる手法がある。また、符号化処理専用のチップや回路をシステムに搭載し、それらに映像データの符号化処理全体を行わせる手法がある。
特開2004−356851号公報 特開平06−339018号公報
As a conventional technique for speeding up the encoding process of audio / video data, there is a technique of increasing the number of CPUs that perform the encoding process and executing the encoding process in parallel. In addition, there is a technique in which a part of a series of encoding processes is processed by dedicated hardware and the rest is processed by a CPU. In addition, there is a technique in which a chip or a circuit dedicated to encoding processing is mounted on a system and the entire encoding processing of video data is performed on them.
Japanese Patent Laid-Open No. 2004-356851 Japanese Patent Application Laid-Open No. 06-339018

符号化処理専用のチップや回路には符号化処理速度の上限があり、ユーザの所望の速度に達しない場合は、その符号化処理専用のチップや回路の処理速度を更に向上させることや、符号化処理専用のチップを複数使用して符号化処理を並列に行わせることが考えられる。   There is an upper limit of the encoding processing speed for the chip and circuit dedicated to the encoding process, and when the speed desired by the user is not reached, the processing speed of the chip or circuit dedicated to the encoding process can be further improved, It is conceivable that the encoding processing is performed in parallel by using a plurality of chips dedicated to the encoding processing.

しかしながら、符号化処理専用のチップ単体や回路の処理速度を向上させるには、回路設計を変更しなければならない。これは、符号化処理専用のチップ単体や回路の製造コストを上昇させる。特に、符号化処理専用のチップは単体でも一般に規模が大きく高価であるため、これを追加すると大規模化し、その製造コストが大幅に上昇してしまう。このように、符号化処理専用のチップや回路では、その製造コストの増加を抑制しつつ、符号化処理を更に高速にするのは難しい。   However, in order to improve the processing speed of a single chip or a circuit dedicated to encoding processing, the circuit design must be changed. This increases the manufacturing cost of a single chip or circuit dedicated to the encoding process. In particular, a single chip dedicated to the encoding process is generally large and expensive, and adding this chip increases the scale and significantly increases the manufacturing cost. As described above, it is difficult for the chip or circuit dedicated to the encoding process to further increase the encoding process while suppressing an increase in manufacturing cost.

本発明の目的は、上記の問題を解決した新規かつ有用な符号化装置とその符号化方法、及びビデオ編集システムを提供することである。本発明の具体的な目的は、映像データや音声データの符号化処理を高速化可能な符号化装置とその符号化方法、及びビデオ編集システムを提供することである。   An object of the present invention is to provide a novel and useful encoding apparatus, an encoding method thereof, and a video editing system that solve the above problems. A specific object of the present invention is to provide an encoding device, an encoding method thereof, and a video editing system capable of speeding up encoding processing of video data and audio data.

本発明の一観点によれば、音声データおよび/または映像データを含むAVデータを符号化する符号化装置であって、CPU(Central Processing Unit)と、符号化処理用のハードウェアで構成され、前記AVデータの一部を符号化するハードウェア・エンコーダと、前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、前記一連の符号化されたAVデータを出力する出力部と、を備え、前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、符号化装置が提供される。   According to one aspect of the present invention, an encoding device that encodes AV data including audio data and / or video data, which includes a CPU (Central Processing Unit) and hardware for encoding processing, A hardware encoder that encodes part of the AV data; and software that encodes another part of the AV data in parallel with the encoding process by the hardware encoder using the CPU. An encoder, a data allocator for allocating the AV data to the hardware encoder and the software encoder, and AV data encoded by each of the hardware encoder and the software encoder in a predetermined order A synthesizing unit for arranging and synthesizing into a series of encoded AV data; An encoding unit that outputs the series of encoded AV data, and encodes the AV data at an encoding processing speed larger than an encoding processing speed by only the hardware encoder. Provided.

本発明によれば、ハードウェア・エンコーダとソフトウェア・エンコーダによって、音声データおよび/または映像データを含むAVデータを並列に符号化処理するので、ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化でき、符号化処理速度を高速化できる。   According to the present invention, the AV data including audio data and / or video data is encoded in parallel by the hardware encoder and the software encoder, so that a code larger than the encoding processing speed by only the hardware encoder is encoded. AV data can be encoded at the encoding processing speed, and the encoding processing speed can be increased.

本明細書及び特許請求の範囲において、「ハードウェア・エンコーダ」は、(i)映像データや音声データの符号化処理の一部又は全体を実行するために専用に設計されたICやモジュールなどの回路、又は(ii)映像データや音声データの符号化処理の一部又は全体と、符号化処理以外の処理とを実行可能なCPUやDSP(Digital Signal Processor)などの演算回路であって、その演算回路が映像データや音声データの符号化処理の一部又は全体を実行している間はその符号化処理の一部又は全体を排他的に行う演算回路である。   In the present specification and claims, “hardware encoder” means (i) an IC or module designed exclusively for executing part or all of the encoding processing of video data and audio data. A circuit, or (ii) an arithmetic circuit such as a CPU or DSP (Digital Signal Processor) capable of executing part or all of the encoding process of video data or audio data and processes other than the encoding process, While the arithmetic circuit is executing part or all of the encoding processing of video data and audio data, the arithmetic circuit exclusively performs part or all of the encoding processing.

本明細書及び特許請求の範囲において、「ソフトウェア・エンコーダ」は、汎用のCPUやDSPなど、映像データの符号化処理以外の他の処理にも利用されている演算回路で映像データの符号化処理用ソフトウェアを実行することによって、映像データの符号化処理を他の処理と並列に行うエンコーダをいう。   In the present specification and claims, the “software encoder” is a video data encoding process using an arithmetic circuit such as a general-purpose CPU or DSP that is also used for processing other than video data encoding processing. It is an encoder that executes video data encoding processing in parallel with other processing by executing software.

本発明の他の観点によれば、CPUと、音声データおよび/または映像データを含むAVデータを編集する編集部と、符号化処理用の回路で構成され、前記編集されたAVデータの一部を符号化するハードウェア・エンコーダと、前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して、前記編集されたAVデータの他の一部を符号化するソフトウェア・エンコーダと、前記編集されたAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、前記一連の符号化されたAVデータを出力する出力部と、を備え、前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化するビデオ編集システムが提供される。   According to another aspect of the present invention, the CPU includes an editing unit that edits AV data including audio data and / or video data, and a circuit for encoding processing, and a part of the edited AV data. A hardware encoder that encodes the CPU, and a software encoder that encodes another part of the edited AV data in parallel with the encoding process by the hardware encoder using the CPU A data allocator for allocating the edited AV data to the hardware encoder and the software encoder, and the AV data encoded by the hardware encoder and the software encoder in a predetermined order. And a synthesizing unit that synthesizes the data into a series of encoded AV data, and the series of encoded AV data. And an output unit for outputting the video editing system for encoding AV data in a large encoding processing speed than encoding processing speed only by the hardware encoder is provided.

本発明によれば、ハードウェア・エンコーダとソフトウェア・エンコーダによって、音声データおよび/または映像データを含むAVデータを並列に符号化処理するので、ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化でき、符号化処理速度を高速化できる。   According to the present invention, the AV data including audio data and / or video data is encoded in parallel by the hardware encoder and the software encoder, so that a code larger than the encoding processing speed by only the hardware encoder is encoded. AV data can be encoded at the encoding processing speed, and the encoding processing speed can be increased.

本発明のその他の観点によれば、符号化処理用のハードウェアで構成され、AVデータの一部を符号化するハードウェア・エンコーダと、CPUを利用して、前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、を使用して映像データを符号化する方法であって、前記AVデータを受信するステップと、前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダがそれぞれ割り振られたAVデータを符号化するステップと、前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成するステップと、前記一連の符号化されたAVデータを出力するステップと、を含み、前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、方法が提供される。   According to another aspect of the present invention, a hardware encoder that is configured by hardware for encoding processing and encodes part of AV data, and another part of the AV data using a CPU. A method of encoding video data using a software encoder for encoding the AV data, receiving the AV data, and allocating the AV data to the hardware encoder and the software encoder A step of encoding AV data respectively allocated by the hardware encoder and the software encoder; and AV data encoded by each of the hardware encoder and the software encoder Synthesizing into a series of encoded AV data arranged in order Outputting the series of encoded AV data, and encoding the AV data at an encoding processing speed larger than the encoding processing speed only by the hardware encoder. .

本発明によれば、ハードウェア・エンコーダとソフトウェア・エンコーダによって、音声データおよび/または映像データを含むAVデータを並列に符号化処理するので、ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化でき、符号化処理速度を高速化できる。   According to the present invention, the AV data including audio data and / or video data is encoded in parallel by the hardware encoder and the software encoder, so that a code larger than the encoding processing speed by only the hardware encoder is encoded. AV data can be encoded at the encoding processing speed, and the encoding processing speed can be increased.

本発明によれば、映像データや音声データの符号化処理を高速化可能な符号化装置とその符号化方法、及びビデオ編集システムを提供できる。   ADVANTAGE OF THE INVENTION According to this invention, the encoding apparatus which can speed-up the encoding process of video data and audio | voice data, its encoding method, and a video editing system can be provided.

以下、本発明の好ましい実施形態について、図面を参照しながら説明する。なお、本発明は、映像データおよび音声データのいずれの符号化処理も可能であるが、説明の便宜のため、映像データを符号化処理する場合を説明する。   Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings. In the present invention, both video data and audio data can be encoded. For convenience of explanation, a case where video data is encoded will be described.

《実施形態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やインターネットに接続可能なネットワークインタフェースを含んでいてもよい。
Embodiment 1
FIG. 1 is a block diagram showing configurations of an encoding device 100 and a video editing system 200 according to Embodiment 1 of the present invention. Referring to FIG. 1, an encoding device 100 according to Embodiment 1 of the present invention is incorporated in a video editing system 200. The video editing system 200 according to the first embodiment is a non-linear video editing system, and is realized using a computer terminal such as a personal computer. The video editing system 200 includes a CPU 10, a memory unit 20, a built-in HDD 30A, a built-in drive 40A, an input / output interface 50, a user interface 60, an AV unit 70, a hardware encoder 80, and an internal bus 90 that connects these elements. . Among the elements included in the video editing system 200, the CPU 10 and the hardware encoder 80 are included in the encoding device 100. The video editing system 200 may further include a network interface that can be connected to an external LAN or the Internet.

CPU10は、メモリ部20に記憶されているプログラムを実行し、後述の編集部13、データ割振部14、ソフトウェア・エンコーダ152、合成部16、及び出力部17として機能する。これらの各部の詳細については後述する。CPU10は、1つのチップに限定されず、複数個のチップであってもよく、それぞれのチップに複数のコアがあってもよい。このような複数のCPUが並列に動作する。これにより、ソフトウェア・エンコーダ152の符号化能力がさらに向上する。   The CPU 10 executes a program stored in the memory unit 20 and functions as an editing unit 13, a data allocation unit 14, a software encoder 152, a synthesis unit 16, and an output unit 17 which will be described later. Details of these units will be described later. The CPU 10 is not limited to one chip, and may be a plurality of chips, and each chip may have a plurality of cores. Such a plurality of CPUs operate in parallel. Thereby, the encoding capability of the software encoder 152 is further improved.

メモリ部20には、CPU10に後述の処理を実行させるプログラムやデータが記憶されている。また、メモリ部20には、入力バッファ領域BI、第1出力バッファ領域BO1、及び第2出力バッファ領域BO2が確保される。これらのバッファ領域の詳細については後述する。   The memory unit 20 stores programs and data that cause the CPU 10 to execute processes described later. In the memory unit 20, an input buffer area BI, a first output buffer area BO1, and a second output buffer area BO2 are secured. Details of these buffer areas will be described later.

内蔵HDD30Aは、ビデオ編集システム200を実現するコンピュータ端末に内蔵されている。内蔵HDD30Aに代えて、又は、図1に示すように内蔵HDD30Aに加えて、外付けHDD30Bが入出力インタフェース50を通して内部バス90に接続されていてもよい。   The built-in HDD 30A is built in a computer terminal that implements the video editing system 200. Instead of the internal HDD 30A or in addition to the internal HDD 30A as shown in FIG. 1, an external HDD 30B may be connected to the internal bus 90 through the input / output interface 50.

内蔵ドライブ40Aは、ビデオ編集システム200を実現するコンピュータ端末に内蔵されている。内蔵ドライブ40Aに代えて、又は、図1に示すように内蔵ドライブ40Aに加えて、外付けドライブ40Bが入出力インタフェース50を通して内部バス90に接続されていてもよい。   The built-in drive 40A is built in a computer terminal that implements the video editing system 200. An external drive 40B may be connected to the internal bus 90 through the input / output interface 50 instead of the internal drive 40A or in addition to the internal drive 40A as shown in FIG.

内蔵ドライブ40A及び外付けドライブ40Bは、DVD102などのリムーバブルメディアとの間で映像データや音声データの入出力を行う。リムーバブルメディアとしては、光ディスクの他に、磁気ディスク、光磁気ディスク、ブルーレイディスク、半導体メモリなどが挙げられる。   The internal drive 40A and the external drive 40B input and output video data and audio data to and from a removable medium such as the DVD 102. Examples of the removable medium include a magnetic disk, a magneto-optical disk, a Blu-ray disk, and a semiconductor memory in addition to the optical disk.

入出力インタフェース50は、外付けHDD30Bや外付けドライブ40Bの他に、ユーザインタフェース60や、第2カメラ101Bなどの外部機器に内蔵される記憶媒体を内部バス90に接続することができる。例えば入出力インタフェース50はIEEE1394インタフェースなどを含み、それを利用して第2カメラ101Bとの間で映像データや音声データの入出力を行う。入出力インタフェース50は、第2カメラ101Bの他にも、VTR、スイッチャー、送出サーバーなど、映像データや音声データを扱う様々な機器との間で、映像データや音声データの入出力を行うことができる。   In addition to the external HDD 30B and the external drive 40B, the input / output interface 50 can connect a storage medium built in an external device such as the user interface 60 or the second camera 101B to the internal bus 90. For example, the input / output interface 50 includes an IEEE 1394 interface or the like, and inputs and outputs video data and audio data to and from the second camera 101B. In addition to the second camera 101B, the input / output interface 50 can input and output video data and audio data to and from various devices that handle video data and audio data, such as a VTR, switcher, and transmission server. it can.

ユーザインタフェース60は、入出力インタフェース50を通して内部バス90に接続されている。ユーザインタフェース60は例えば、マウス61、キーボード62、ディスプレイ63、及びスピーカ64を含む。ユーザインタフェース60はその他の入力デバイスとしてタッチパネル(図示せず)を含んでいてもよい。   The user interface 60 is connected to the internal bus 90 through the input / output interface 50. The user interface 60 includes, for example, a mouse 61, a keyboard 62, a display 63, and a speaker 64. The user interface 60 may include a touch panel (not shown) as another input device.

AVユニット70はビデオインタフェースとオーディオインタフェースとを含む。AVユニット70はそれらのインタフェースを通して第1カメラ101Aなどの外部機器との間で映像データの入出力を行う。AVユニット70は、第1カメラ101Aの他にも、VTR、スイッチャー、送出サーバーなど、映像データや音声データを扱う様々な機器との間で、映像データや音声データの入出力を行うことができる。   The AV unit 70 includes a video interface and an audio interface. The AV unit 70 inputs / outputs video data to / from an external device such as the first camera 101A through these interfaces. In addition to the first camera 101A, the AV unit 70 can input and output video data and audio data with various devices that handle video data and audio data, such as a VTR, a switcher, and a transmission server. .

ハードウェア・エンコーダ80は、(i)映像データや音声データの符号化処理の一部又は全体を実行するために専用に設計されたICやモジュールなどの回路、又は(ii)映像データや音声データの符号化処理の一部又は全体と、符号化処理以外の処理とを実行可能なCPUやDSPなどの演算回路であって、その演算回路が映像データや音声データの符号化処理の一部又は全体を実行している間はその符号化処理の一部又は全体を排他的に行う演算回路である。   The hardware encoder 80 is either (i) a circuit such as an IC or module designed exclusively for executing part or all of the encoding process of video data or audio data, or (ii) video data or audio data. An arithmetic circuit such as a CPU or a DSP capable of executing a part or all of the encoding process and a process other than the encoding process, wherein the arithmetic circuit is a part of the encoding process of video data or audio data or This is an arithmetic circuit that exclusively performs part or all of the encoding process while the whole is executed.

ハードウェア・エンコーダ80は、非圧縮の映像データを符号化によって圧縮する。例えば非可逆符号化方式の場合、ハードウェア・エンコーダ80によって実行される映像データの符号化処理は次のステップ(i)〜(iv)を含む。
(i)ブロックやタイルなどへの分割ステップ、
(ii)DCT変換やウェーブレット変換などの直交変換ステップ、
(iii)量子化ステップ、及び、
(iv)エントロピー符号化などの可逆符号化ステップ。
The hardware encoder 80 compresses uncompressed video data by encoding. For example, in the case of the lossy encoding method, the video data encoding process executed by the hardware encoder 80 includes the following steps (i) to (iv).
(I) division step into blocks, tiles, etc.
(Ii) orthogonal transform steps such as DCT transform and wavelet transform;
(Iii) a quantization step; and
(Iv) A lossless encoding step such as entropy encoding.

ハードウェア・エンコーダ80による映像データの符号化処理はその他にも、例えば、サブサンプリングステップ、シャッフリングステップ、イントラフレーム予測ステップ、又はフレーム間予測ステップを含んでいてもよい。ハードウェア・エンコーダ80による映像データの符号化処理はまた、可逆符号化方式による圧縮処理であっても、圧縮を目的とはしない符号化処理であってもよい。   The video data encoding process by the hardware encoder 80 may include, for example, a sub-sampling step, a shuffling step, an intra-frame prediction step, or an inter-frame prediction step. The encoding process of video data by the hardware encoder 80 may be a compression process using a lossless encoding method or an encoding process not intended for compression.

ハードウェア・エンコーダ80はフレームバッファを内蔵し、それに記憶された映像データを符号化する。その他に、同様なフレームバッファとしてメモリ部20の所定の記憶領域が利用されてもよい。ハードウェア・エンコーダ80による符号化方式は、例えば、DV方式、MPEG方式、JPEG2000方式、イントラフレーム方式(例えば、AVC−Intra方式)、または、MPEG方式におけるクローズドGOP方式であるが、特に限定されない。ハードウェア・エンコーダ80による符号化方式は、符号化された映像データの出力先のデバイスに応じて予め選択される。ハードウェア・エンコーダ80は、各データ単位をそれに含まれている情報に基づいて符号化する。例えばイントラフレーム方式では、そのデータ単位は1フレームである。その他に、MPEG方式におけるクローズドGOP方式では、符号化のデータ単位は1GOPであってもよい。   The hardware encoder 80 incorporates a frame buffer and encodes video data stored in the frame buffer. In addition, a predetermined storage area of the memory unit 20 may be used as a similar frame buffer. The encoding method by the hardware encoder 80 is, for example, the DV method, the MPEG method, the JPEG2000 method, the intra frame method (for example, the AVC-Intra method), or the closed GOP method in the MPEG method, but is not particularly limited. The encoding method by the hardware encoder 80 is selected in advance according to the output destination device of the encoded video data. The hardware encoder 80 encodes each data unit based on information contained therein. For example, in the intra frame method, the data unit is one frame. In addition, in the closed GOP system in the MPEG system, the data unit of encoding may be 1 GOP.

図2は、図1に示されているハードウェア・エンコーダ80が実装されたボード800の概略的な平面図の一例である。このボード800は、ビデオ編集システム200を実現するコンピュータ端末に搭載される。   FIG. 2 is an example of a schematic plan view of a board 800 on which the hardware encoder 80 shown in FIG. 1 is mounted. The board 800 is mounted on a computer terminal that implements the video editing system 200.

図2を参照するに、ボード800は、コネクタ81、ハードウェア・エンコーダ82、フレームバッファ83、及びFPGA(Field Programmable Gate Array)84を含む。ボード800には更に、AVユニット70が実装されていてもよい。   Referring to FIG. 2, the board 800 includes a connector 81, a hardware encoder 82, a frame buffer 83, and an FPGA (Field Programmable Gate Array) 84. The AV unit 70 may be further mounted on the board 800.

コネクタ81はPCI−Expressに準拠しており、コンピュータ端末内のPCI−Expressスロットに挿入されることで、ボード800上の回路をそのコンピュータ端末のPCI−Expressバスに接続する。このバスは内部バス90に含まれている。   The connector 81 conforms to PCI-Express and is inserted into a PCI-Express slot in a computer terminal, thereby connecting a circuit on the board 800 to a PCI-Express bus of the computer terminal. This bus is included in the internal bus 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に転送される。   The frame buffer 83 is an independent element of DDR2-SDRAM (Double-Data-Rate2-Synchronous-DRAM) and can store a predetermined number, for example, four frames. The video data to be encoded is transferred from the input buffer area BI of the memory unit 20 to the frame buffer 83 through the connector 81 and the FPGA 84 for each frame. The hardware encoder 82 encodes the video data sequentially from the head address of the frame buffer 83 through the FPGA 84. The video data encoded by the hardware encoder 82 is written into the frame buffer 83 through the FPGA 84 for each frame, and further transferred from the frame buffer 83 to the first output buffer area BO1 of the memory unit 20 through the FPGA 84 and the connector 81. Is done.

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に接続する。   The FPGA 84 is a single chip and includes a PCI-Express interface 85, a memory interface 86, a DMA engine 87, and an encoder interface 88. The PCI-Express interface 85 connects the other modules in the FPGA 84 through the connector 81 to the PCI-Express bus of the computer terminal constituting the video editing system 200. The memory interface 86 controls access to the frame buffer 83 by other modules in the FPGA 84. The DMA engine 87 uses the PCI-Express interface 85 and the memory interface 86 to control transfer of video data between the memory unit 20 and the frame buffer 83 through the PCI-Express bus in the computer terminal. . The encoder interface 88 connects other modules in the FPGA 84 to the hardware encoder 82.

図3は、図1のビデオ編集システム200の主要な機能構成を示すブロック図である。図3を参照するに、ビデオ編集システム200は機能構成としては編集部13と符号化部11とを含む。符号化部11は、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、及び出力部17を含む。編集部13、データ割振部14、ソフトウェア・エンコーダ152、合成部16、及び出力部17は、図1のビデオ編集システム200のCPU10によって実現される。   FIG. 3 is a block diagram showing a main functional configuration of the video editing system 200 of FIG. Referring to FIG. 3, the video editing system 200 includes an editing unit 13 and an encoding unit 11 as functional configurations. The encoding unit 11 includes a data allocation unit 14, a hardware encoder 151, a software encoder 152, a synthesis unit 16, and an output unit 17. The editing unit 13, the data allocating unit 14, the software encoder 152, the synthesizing unit 16, and the output unit 17 are realized by the CPU 10 of the video editing system 200 in FIG.

編集部13は、編集対象となる映像データの選択を受け付け、選択された映像データを読み出してユーザの編集操作に基づいて編集処理を行い、一連の映像データストリームに編集する。   The editing unit 13 accepts selection of video data to be edited, reads the selected video data, performs editing processing based on a user's editing operation, and edits the video data stream.

具体的には、編集部13はまず、DVD102、内蔵HDD30A、又は外付けHDD30Bなどのリソースに記憶されたファイルの一覧を、ユーザインタフェース60に含まれるディスプレイ63に表示する。それらのファイルは、映像データ、音声データ、静止画、又はテキストデータなどを素材データとして含む。ユーザはマウス61やキーボード62を操作して、その一覧の中から編集対象のファイルを選択する。編集部13はユーザによるファイルの選択を受け付け、選択されたファイルに対応するクリップをディスプレイ63に表示する。クリップは、時間軸を持つ素材データの一部又は全体を参照する情報である。クリップは、それによって参照されるデータ部分の開始位置と終了位置とのそれぞれを表す時間情報を含む。   Specifically, the editing unit 13 first displays a list of files stored in a resource such as the DVD 102, the internal HDD 30 </ b> A, or the external HDD 30 </ b> B on the display 63 included in the user interface 60. These files include video data, audio data, still images, text data, or the like as material data. The user operates the mouse 61 and the keyboard 62 to select a file to be edited from the list. The editing unit 13 accepts selection of a file by the user, and displays a clip corresponding to the selected file on the display 63. The clip is information that refers to part or all of the material data having a time axis. The clip includes time information representing each of the start position and end position of the data portion referenced thereby.

図4は編集ウィンドウEWの一例である。編集部13は、ディスプレイ63に編集ウィンドウEWを表示してユーザから編集操作を受け付ける。図4を参照するに、編集ウィンドウEWは例えば、素材ウィンドウBW、タイムラインウィンドウTW、及びプレビューウィンドウPWを含む。   FIG. 4 is an example of the edit window EW. The editing unit 13 displays an editing window EW on the display 63 and receives an editing operation from the user. Referring to FIG. 4, the editing window EW includes, for example, a material window BW, a timeline window TW, and a preview window PW.

編集部13は素材ウィンドウBWに、選択された編集対象のファイルに対応するクリップIC1を表示する。   The editing unit 13 displays the clip IC1 corresponding to the selected file to be edited in the material window BW.

編集部13はタイムラインウィンドウTWに複数のトラックTRを表示し、各トラックTR上へのクリップCLの配置を受け付ける。図4の例では各トラックTRは画面の水平方向に延びている細長い帯状領域である。各トラックTRは、編集部13によって生成される映像データストリームの時間軸であるタイムライン上の位置情報を示す。図4の例では、各トラックTR上を画面の水平方向に左から右へ進むほどタイムライン上の位置が進むように、各トラック上の水平方向での位置がタイムライン上の位置に対応づけられている。編集部13は例えばユーザによるマウス61の操作を通して、素材ウィンドウBWから各トラックTR上へのクリップCLの配置を受け付ける。   The editing unit 13 displays a plurality of tracks TR in the timeline window TW, and accepts the arrangement of the clips CL on each track TR. In the example of FIG. 4, each track TR is an elongated strip-like region extending in the horizontal direction of the screen. Each track TR indicates position information on a timeline that is a time axis of a video data stream generated by the editing unit 13. In the example of FIG. 4, the position in the horizontal direction on each track is associated with the position on the timeline so that the position on the timeline advances as the track TR moves in the horizontal direction from left to right on the screen. It has been. The editing unit 13 accepts the placement of the clip CL on each track TR from the material window BW, for example, through the operation of the mouse 61 by the user.

編集部13はまた、タイムラインウィンドウTWにタイムラインカーソルTLCと時間軸目盛りとを表示してもよい。図4の例ではタイムラインカーソルTLCは、時間軸目盛りから画面の垂直方向に延びて各トラックTRと交差している直線である。タイムラインカーソルTLCは各トラックTRに対して平行に移動可能である。タイムラインカーソルTLCの端が指す時間軸目盛りの値は、タイムラインカーソルTLCと各トラックTRとの交差点のタイムライン上での位置を表す。   The editing unit 13 may also display the timeline cursor TLC and the time axis scale on the timeline window TW. In the example of FIG. 4, the timeline cursor TLC is a straight line that extends from the time axis scale in the vertical direction of the screen and intersects each track TR. The timeline cursor TLC can be moved in parallel to each track TR. The value of the time axis scale pointed to by the end of the timeline cursor TLC represents the position on the timeline at the intersection of the timeline cursor TLC and each track TR.

編集部13は、各トラックTR上に配置されるクリップCLのタイムライン上での開始位置であるインポイントIPと終了位置であるアウトポイントOPとの設定、及び、各トラックTR上に配置された後でのクリップCLのインポイントIPとアウトポイントOPとの変更を受け付ける。   The editing unit 13 sets the in point IP that is the start position and the out point OP that is the end position of the clip CL arranged on each track TR, and is arranged on each track TR. A later change of the in-point IP and the out-point OP of the clip CL is accepted.

編集部13は更に、各トラックTR上に配置されたクリップCLについて、対応する映像の色や明るさの調整、対応する映像全体に対する特殊効果、又は異なるトラックTRに配置された複数のクリップCL間での映像の合成などのエフェクト処理の設定をユーザから受け付けることができる。   The editing unit 13 further adjusts the color and brightness of the corresponding video for the clips CL arranged on each track TR, special effects on the entire corresponding video, or between a plurality of clips CL arranged on different tracks TR. The setting of effect processing such as video composition in can be received from the user.

編集部13はプレビューウィンドウPWに、タイムラインカーソルTLCの示すタイムライン上の位置に配置されたクリップCLに対応する映像を表示する。編集部13はまた、タイムラインウィンドウTWに配置されたクリップCLのうち、指定された範囲に対応する動画像をプレビューウィンドウPWに表示する。ユーザは、プレビューウィンドウPWに表示された映像から、編集部13によって受け付けられた編集処理の結果を確認できる。   The editing unit 13 displays an image corresponding to the clip CL arranged at the position on the timeline indicated by the timeline cursor TLC in the preview window PW. The editing unit 13 also displays, in the preview window PW, a moving image corresponding to a specified range among the clips CL arranged in the timeline window TW. The user can confirm the result of the editing process accepted by the editing unit 13 from the video displayed in the preview window PW.

編集部13は、タイムラインウィンドウTW内のトラックTR上でのクリップCLの配置、及び各クリップCLに設定されたエフェクト処理に基づいて、編集する一連の映像データストリームに対する編集情報を生成する。編集情報では、編集部13による編集処理の内容がタイムコードと共に規定されている。タイムコードは、対応する編集処理を受けた映像データのタイムライン上での位置を表す。編集部13はその編集情報に従い、各クリップCLが参照する映像データをタイムライン上の順番で連結して一連の映像データストリームを生成する。編集部13は更にその映像データストリームを符号化対象の映像データとしてデータ割振部14に出力し、メモリ部20内の入力バッファ領域BIに書き込む。   The editing unit 13 generates editing information for a series of video data streams to be edited based on the arrangement of the clips CL on the track TR in the timeline window TW and the effect processing set for each clip CL. In the editing information, the contents of the editing process by the editing unit 13 are defined together with the time code. The time code represents the position on the timeline of the video data subjected to the corresponding editing process. The editing unit 13 generates a series of video data streams by connecting the video data referred to by each clip CL in order on the timeline in accordance with the editing information. The editing unit 13 further outputs the video data stream as video data to be encoded to the data allocating unit 14 and writes it in the input buffer area BI in the memory unit 20.

図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に渡す。   Returning to FIG. 3, the data allocator 14 allocates the video data to be encoded written in the input buffer area BI in the memory 20 to the hardware encoder 151 and the software encoder 152. Specifically, the data allocator 14 first secures output buffer areas BO1 and BO2 for writing encoded video data for each of the encoders 151 and 152 in the memory unit 20. Next, the data allocator 14 selects the video data written in the input buffer area BI as a data unit to be encoded by the encoders 151 and 152 in a predetermined data unit, for example, one frame at a time. Subsequently, the data allocator 14 sequentially transfers the data units selected for the hardware encoder 151 to the frame buffer of the hardware encoder 151, encodes each transferred data unit, and writes the data units to be written. An address in one output buffer area BO1 is designated to the hardware encoder 151. On the other hand, for the data unit selected for the software encoder 152, the data allocator 14 writes the address of the data unit in the input buffer area BI after the data unit is encoded and the second output to be written. The software encoder 152 is sequentially designated together with the address in the buffer area BO2. The data allocator 14 further assigns serial numbers, for example, frame numbers, to the data units allocated to the encoders 151 and 152 in order, and designates the encoders 151 and 152 as write destinations after encoding the data units of the respective numbers. The address is passed to the synthesis unit 16 together with the number.

なお、ハードウェア・エンコーダが2台以上存在し、それらが独立に符号化処理を行う場合、データ割振部14は、各ハードウェア・エンコーダが処理すべき符号化対象の映像データを、それぞれのハードウェア・エンコーダに割り振る。   If there are two or more hardware encoders and they perform the encoding process independently, the data allocator 14 sends the video data to be encoded to be processed by each hardware encoder to each hardware encoder. Allocate to the wear encoder.

ハードウェア・エンコーダ151は、図1に示されているハードウェア・エンコーダ80のデバイスドライバである。ハードウェア・エンコーダ151は、データ割振部14によってメモリ部20内の入力バッファ領域BIからフレームバッファに転送された符号化対象の映像データを順番に符号化する。その符号化方式は編集部13により設定される。ハードウェア・エンコーダ151は映像データの各データ単位を、それに含まれている情報に基づいて符号化する。例えば、符号化方式がイントラフレーム方式である場合は符号化のデータ単位は1フレームであり、符号化方式がクローズドGOP方式である場合は符号化のデータ単位は1GOPである。ハードウェア・エンコーダ151は、符号化された映像データを、データ割振部14によって指定された第1出力バッファ領域BO1内のアドレスに転送する。ハードウェア・エンコーダ151は更に、符号化された映像データを第1出力バッファ領域BO1に転送するごとに、その転送先のアドレスを合成部16に通知する。   The hardware encoder 151 is a device driver of the hardware encoder 80 shown in FIG. The hardware encoder 151 sequentially encodes the encoding target video data transferred from the input buffer area BI in the memory unit 20 to the frame buffer by the data allocator 14. The encoding method is set by the editing unit 13. The hardware encoder 151 encodes each data unit of the video data based on information included therein. For example, when the encoding method is an intra frame method, the encoding data unit is one frame, and when the encoding method is a closed GOP method, the encoding data unit is 1 GOP. The hardware encoder 151 transfers the encoded video data to the address in the first output buffer area BO1 designated by the data allocator 14. The hardware encoder 151 further notifies the synthesizing unit 16 of the transfer destination address each time the encoded video data is transferred to the first output buffer area BO1.

ソフトウェア・エンコーダ152はCPU10によって実行される符号化処理モジュールであり、メモリ部20内の入力バッファ領域BIに記憶された符号化対象の映像データを、データ割振部14から指定されたアドレス順に符号化する。ソフトウェア・エンコーダ152はハードウェア・エンコーダ151とは独立に、かつ並列に符号化処理を実行する。ソフトウェア・エンコーダ152はハードウェア・エンコーダ151と同様、各データ単位をそれに含まれている情報に基づいて符号化する。   The software encoder 152 is an encoding processing module executed by the CPU 10 and encodes video data to be encoded stored in the input buffer area BI in the memory unit 20 in the order of addresses designated by the data allocating unit 14. To do. The software encoder 152 executes an encoding process independently of the hardware encoder 151 and in parallel. As with the hardware encoder 151, the software encoder 152 encodes each data unit based on the information contained therein.

ソフトウェア・エンコーダ152のデータ単位と符号化方式とはハードウェア・エンコーダ151のデータ単位と符号化方式と共通である。すなわち、ハードウェア・エンコーダ151による符号化のデータ単位が1フレームであればソフトウェア・エンコーダ152による符号化のデータ単位も1フレームであり、ハードウェア・エンコーダ151による符号化のデータ単位が1GOPであれば、ソフトウェア・エンコーダ152による符号化のデータ単位も1GOPである。   The data unit and encoding method of the software encoder 152 are the same as the data unit and encoding method of the hardware encoder 151. That is, if the data unit encoded by the hardware encoder 151 is 1 frame, the data unit encoded by the software encoder 152 is also 1 frame, and the data unit encoded by the hardware encoder 151 is 1 GOP. For example, the data unit encoded by the software encoder 152 is also 1 GOP.

さらに、ハードウェア・エンコーダ151による符号化方式がイントラフレーム方式であればソフトウェア・エンコーダ152による符号化方式もイントラフレーム方式であり、ハードウェア・エンコーダ151による符号化方式がクローズドGOP方式であればソフトウェア・エンコーダ152による符号化方式もクローズドGOP方式である。   Further, if the encoding method by the hardware encoder 151 is an intra frame method, the encoding method by the software encoder 152 is also an intra frame method, and if the encoding method by the hardware encoder 151 is a closed GOP method, software is used. The encoding method by the encoder 152 is also a closed GOP method.

ソフトウェア・エンコーダ152は、符号化された映像データを、データ割振部14によって指定された第2出力バッファ領域BO2内のアドレスに書き込む。ソフトウェア・エンコーダ152は更に、符号化された映像データを第2出力バッファ領域BO2に書き込むごとに、その書き込み先のアドレスを合成部16に通知する。   The software encoder 152 writes the encoded video data at the address in the second output buffer area BO2 specified by the data allocator 14. The software encoder 152 further notifies the synthesizing unit 16 of the write destination address each time the encoded video data is written to the second output buffer area BO2.

合成部16は、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152によってそれぞれ符号化されたデータ単位を、データ割振部14によって振られた番号順に配列し、1本の符号化された映像データストリームに合成する。具体的には、合成部16はまず、データ割振部14から受け取ったアドレスの中から、次に合成されるべきデータ単位の番号に対応するアドレスを特定する。合成部16は次に、その特定されたアドレスと同じアドレスがいずれかのエンコーダ151、152から通知されたとき、符号化されたデータ単位をそのアドレスから読み出し、それ以前に読み出されていた他のデータ単位の配列の末尾に合成する。こうして、合成された一連の符号化されたデータ単位の順序は、編集部13によってメモリ部20内の入力バッファ領域BIに書き込まれた順序と一致する。更に合成部16は、合成された映像データストリームを出力部17に出力する。   The synthesizing unit 16 arranges the data units encoded by the hardware encoder 151 and the software encoder 152 in the order of the numbers allocated by the data allocating unit 14, and synthesizes them into one encoded video data stream. To do. Specifically, the combining unit 16 first specifies an address corresponding to the number of the data unit to be combined next from the addresses received from the data allocating unit 14. Next, when the same address as the identified address is notified from any of the encoders 151 and 152, the synthesizer 16 reads the encoded data unit from the address, and reads other previously read data units. Is synthesized at the end of the array of data units. Thus, the order of the combined encoded data unit matches the order written by the editing unit 13 to the input buffer area BI in the memory unit 20. Furthermore, the synthesizing unit 16 outputs the synthesized video data stream to the output unit 17.

なお、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152が符号化方式としてクローズドGOP方式を利用して映像データをGOP単位で符号化する場合、合成部16は、データ割振部14から受け取った番号に加え、符号化された映像データの含むGOPヘッダなどの情報に基づいて、符号化された映像データストリームを配列することもできる。また、ハードウェア・エンコーダ151およびソフトウェア・エンコーダ152によって符号化されたデータ単位は互いに予測可能ではないことが、合成部の処理が容易になる点で好ましい。   When the hardware encoder 151 and the software encoder 152 encode the video data in GOP units using the closed GOP method as the encoding method, the synthesis unit 16 adds the number received from the data allocation unit 14. The encoded video data stream can also be arranged based on information such as a GOP header included in the encoded video data. In addition, it is preferable that the data units encoded by the hardware encoder 151 and the software encoder 152 are not predictable from each other in terms of facilitating the processing of the synthesis unit.

出力部17は、合成された映像データストリームを所定のファイル形式又は伝送形式に整形する。出力部17は、その映像データストリームに、符号化された映像データの復号化に必要な情報やパラメータ、その他規定された情報を加え、それらのデータストリームの全体を規定された形式に整える。出力部17によって利用されるファイル形式又は伝送形式は、編集部13によって設定される。出力部17は、内部バス90を介して任意の記録媒体、例えば内蔵HDD30A、外付けHDD30B、又は、内蔵ドライブ40A若しくは外付けドライブ40Bに装着されたDVD102などに、合成された映像データストリームを書き込む。出力部17は、合成された映像データストリームを、ネットワークインタフェースを介して接続されたデータベースや情報端末に送信することもできる。出力部17は、合成された映像データストリームをAVユニット70や入出力インタフェース50から外部機器に出力することもできる。なお、出力部17は、映像データストリームだけでなく、オーディオコンテンツを生成して出力することもできる。   The output unit 17 shapes the synthesized video data stream into a predetermined file format or transmission format. The output unit 17 adds information, parameters, and other specified information necessary for decoding the encoded video data to the video data stream, and arranges the entire data stream into a specified format. The file format or transmission format used by the output unit 17 is set by the editing unit 13. The output unit 17 writes the synthesized video data stream to an arbitrary recording medium, for example, the internal HDD 30A, the external HDD 30B, or the DVD 102 mounted in the internal drive 40A or the external drive 40B via the internal bus 90. . The output unit 17 can also transmit the combined video data stream to a database or information terminal connected via a network interface. The output unit 17 can also output the synthesized video data stream from the AV unit 70 or the input / output interface 50 to an external device. The output unit 17 can generate and output not only the video data stream but also the audio content.

図5は、本発明の実施形態1による符号化部11のブロック図である。図5を参照するに、符号化部11は、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、バッファ21を含む。バッファ21は、データ割振部14とハードウェア・エンコーダ151との間に配置されている。バッファ21はハードウェア・エンコーダ80に内蔵のフレームバッファ、例えば図2に示すフレームバッファ83の記憶領域を表す。その場合、バッファ21の容量は例えば数フレームである。バッファ21はその他にメモリ部20内の記憶領域であってもよい。その場合、バッファ21の容量は例えば数十フレームである。   FIG. 5 is a block diagram of the encoding unit 11 according to Embodiment 1 of the present invention. Referring to FIG. 5, the encoding unit 11 includes a data allocating unit 14, a hardware encoder 151, a software encoder 152, a combining unit 16, an output unit 17, and a buffer 21. The buffer 21 is disposed between the data allocator 14 and the hardware encoder 151. The buffer 21 represents a storage area of a frame buffer built in the hardware encoder 80, for example, the frame buffer 83 shown in FIG. In that case, the capacity of the buffer 21 is, for example, several frames. In addition, the buffer 21 may be a storage area in the memory unit 20. In that case, the capacity of the buffer 21 is, for example, several tens of frames.

データ割振部14は、ハードウェア・エンコーダ151に割り振った映像データを逐次バッファ21に転送する。ハードウェア・エンコーダ151はバッファ21の先頭アドレスから順に、映像データを所定のデータ単位ずつ、例えば1フレームずつ符号化する。   The data allocator 14 sequentially transfers the video data allocated to the hardware encoder 151 to the buffer 21. The hardware encoder 151 encodes video data in units of a predetermined data unit, for example, one frame in order from the head address of the buffer 21.

データ割振部14はバッファ21から空き情報を読み出し、その空き情報からバッファ21の空き領域のサイズ、例えば空いているフレームバッファの数を確認する。そのサイズが所定の閾値、例えば1フレームを超えているとき、データ割振部14は符号化対象の映像データをハードウェア・エンコーダ80に割り振る。一方、バッファ21の空き領域のサイズが所定の閾値以下、例えば1フレーム以下まで減ったとき、データ割振部14は、ハードウェア・エンコーダ151に最後に割り振ったフレームの次に続くフレームをソフトウェア・エンコーダ152に割り振る。すなわち、データ割振部14は次のフレームをバッファ21には書き込まず、そのフレームが記憶された入力バッファ領域BI内のアドレスをソフトウェア・エンコーダ152に渡す。以後、バッファ21の空き領域のサイズが閾値を再び超えるまで、データ割振部14は符号化対象の映像データをソフトウェア・エンコーダ152に割り振り続ける。   The data allocator 14 reads the empty information from the buffer 21 and confirms the size of the empty area of the buffer 21, for example, the number of empty frame buffers, from the empty information. When the size exceeds a predetermined threshold, for example, one frame, the data allocator 14 allocates video data to be encoded to the hardware encoder 80. On the other hand, when the size of the free area of the buffer 21 is reduced to a predetermined threshold value or less, for example, 1 frame or less, the data allocator 14 determines the frame following the frame last allocated to the hardware encoder 151 as the software encoder. Allocate to 152. That is, the data allocator 14 does not write the next frame to the buffer 21 and passes the address in the input buffer area BI where the frame is stored to the software encoder 152. Thereafter, the data allocator 14 continues to allocate the video data to be encoded to the software encoder 152 until the size of the free area in the buffer 21 exceeds the threshold again.

図6は、図5に示されている符号化部11による映像データの割り振り処理のフローチャートである。以下、図6を参照しながら、映像データの割り振り処理を説明する。なお、以下の説明では便宜上、符号化のデータ単位を1フレームとする。例えば編集部13から符号化対象の映像データストリームが出力されると、以下の処理は開始される。   FIG. 6 is a flowchart of video data allocation processing by the encoding unit 11 shown in FIG. The video data allocation process will be described below with reference to FIG. In the following description, for the sake of convenience, the encoding data unit is one frame. For example, when a video data stream to be encoded is output from the editing unit 13, the following processing is started.

最初に、ステップS11では、データ割振部14は符号化対象の映像データストリームの先頭から所定数のフレーム、例えば1フレームをハードウェア・エンコーダ151に割り振り、バッファ21に転送する。ハードウェア・エンコーダ151はバッファ21の先頭アドレスから順に映像データを符号化し始める。   First, in step S <b> 11, the data allocator 14 allocates a predetermined number of frames, for example, one frame from the head of the video data stream to be encoded to the hardware encoder 151 and transfers it to the buffer 21. The hardware encoder 151 starts to encode the video data in order from the head address of the buffer 21.

次いで、ステップS12では、データ割振部14はバッファ21の空き情報から、空いているフレームバッファの数が所定の閾値以下まで減っているか否か判定する。空いているフレームバッファの数がその閾値よりも多い場合(ステップS12で“Yes”の場合)、処理がステップS13に進む。空いているフレームバッファの数がその閾値以下である場合(ステップS12で“No”の場合)処理がステップS14に進む。   Next, in step S12, the data allocator 14 determines whether or not the number of free frame buffers has decreased below a predetermined threshold from the free information in the buffer 21. If the number of free frame buffers is greater than the threshold (if “Yes” in step S12), the process proceeds to step S13. If the number of free frame buffers is equal to or less than the threshold (if “No” in step S12), the process proceeds to step S14.

ステップS13では、データ割振部14は符号化対象の映像データストリームの次のフレームをハードウェア・エンコーダ151に割り振り、そのフレームをバッファ21に転送する。そして、処理はステップS15に進む。   In step S 13, the data allocator 14 allocates the next frame of the video data stream to be encoded to the hardware encoder 151, and transfers the frame to the buffer 21. Then, the process proceeds to step S15.

ステップS14では、データ割振部14は符号化対象の映像データストリームの次のフレームをソフトウェア・エンコーダ152に割り振る。そして、処理はステップS15に進む。   In step S14, the data allocator 14 allocates the next frame of the video data stream to be encoded to the software encoder 152. Then, the process proceeds to step S15.

次いで、ステップS15では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。この判定は、例えばフレームヘッダを参照することにより可能である。そのフレームが最後でない場合(ステップS15で“No”の場合)は処理がステップS12に戻り、最後である場合(ステップS15で“Yes”の場合)は処理が終了する。   Next, in step S15, the data allocator 14 determines whether or not the allocated frame is the last frame of the video data stream to be encoded. This determination can be made by referring to a frame header, for example. If the frame is not the last (if “No” in step S15), the process returns to step S12. If the frame is the last (“Yes” in step S15), the process ends.

実施形態1の符号化装置100は、符号化部11のバッファ21の空き領域が閾値以下まで減った場合、データ割振部14により符号化対象の映像データの一部をソフトウェア・エンコーダ152に割り振る。それにより、ハードウェア・エンコーダ151及びソフトウェア・エンコーダ152による符号化処理が並行して行われるので、符号化装置100全体による符号化処理をハードウェア・エンコーダ151だけで行う場合よりも高速化することができる。特に、データ割振部14は、ハードウェア・エンコーダ151による符号化処理待ちのフレームを一時格納するバッファ21の空き情報を取得して、その空き情報に基づいて次のフレームの割り振り先を判定するので、ハードウェア・エンコーダ151を常に動作させつつ、ソフトウェア・エンコーダ152による符号化処理を並列して行うので、符号化装置100は、ハードウェア・エンコーダ151の符号化処理速度よりも高速で符号化処理が行える。これにより、ビデオ編集システム200の符号化処理速度が向上できる。   In the encoding apparatus 100 of the first embodiment, when the free area of the buffer 21 of the encoding unit 11 is reduced to a threshold value or less, the data allocating unit 14 allocates a part of video data to be encoded to the software encoder 152. Thereby, since the encoding process by the hardware encoder 151 and the software encoder 152 is performed in parallel, the encoding process by the entire encoding apparatus 100 is faster than the case where the encoding process is performed only by the hardware encoder 151. Can do. In particular, the data allocator 14 obtains free information in the buffer 21 that temporarily stores frames waiting for encoding processing by the hardware encoder 151, and determines the next frame allocation destination based on the free information. Since the encoding process by the software encoder 152 is performed in parallel while always operating the hardware encoder 151, the encoding apparatus 100 performs the encoding process at a higher speed than the encoding process speed of the hardware encoder 151. Can be done. Thereby, the encoding processing speed of the video editing system 200 can be improved.

《実施形態2》
本発明の実施形態2による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。ビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
<< Embodiment 2 >>
The encoding apparatus 100 according to the second embodiment of the present invention is incorporated in the non-linear video editing system 200 as in the first embodiment. The video editing system 200 is the same as that according to the first embodiment except for the encoding unit. Therefore, the description about Embodiment 1 is used for details of these similar elements.

図7は、本発明の実施形態2による符号化部11Aのブロック図である。図7を参照するに、符号化部11Aは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、及び割り振り割合設定部22Aを含む。符号化部11Aは、割り振り割合設定部22Aを除き、図3に示されている要素と同様な要素を含む。図7ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細の説明を援用する。   FIG. 7 is a block diagram of an encoding unit 11A according to Embodiment 2 of the present invention. Referring to FIG. 7, the encoding unit 11A includes a data allocating unit 14, a hardware encoder 151, a software encoder 152, a combining unit 16, an output unit 17, and an allocation ratio setting unit 22A. 11 A of encoding parts contain the element similar to the element shown by FIG. 3 except the allocation ratio setting part 22A. In FIG. 7, the same reference numerals as those shown in FIG. 3 are given to the similar elements, and the detailed description thereof is used.

図7を参照するに、割り振り割合設定部22Aは、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。割り振り割合設定部22Aは、符号化対象の映像データストリームのうち、ハードウェア・エンコーダ151に割り振られるデータ単位数とソフトウェア・エンコーダ152に割り振られるデータ単位数との割合を設定する。割り振り割合設定部22Aは更に、その割合の値をユーザに選択させてもよい。すなわち、割り振り割合設定部22Aは、符号化部11Aによる符号化処理に先立ち、コンピュータ端末のディスプレイに所定の入力画面を表示し、マウスやキーボードを通してユーザから上記の割合の値を受け付ける。ユーザによって選択された割合の値は割り振り割合設定部22Aからデータ割振部14に渡される。データ割振部14は符号化対象の映像データストリームをその割合でハードウェア・エンコーダ151とソフトウェア・エンコーダ152とに割り振る。   Referring to FIG. 7, the allocation ratio setting unit 22A functions when the CPU 10 controls other elements of the computer terminal according to a predetermined program. The allocation ratio setting unit 22A sets the ratio between the number of data units allocated to the hardware encoder 151 and the number of data units allocated to the software encoder 152 in the video data stream to be encoded. The allocation ratio setting unit 22A may further cause the user to select the ratio value. That is, prior to the encoding process by the encoding unit 11A, the allocation ratio setting unit 22A displays a predetermined input screen on the display of the computer terminal, and receives the value of the above ratio from the user through a mouse or a keyboard. The value of the ratio selected by the user is passed from the allocation ratio setting unit 22A to the data allocating unit 14. The data allocator 14 allocates the video data stream to be encoded to the hardware encoder 151 and the software encoder 152 at that ratio.

例えば符号化のデータ単位が1フレームであり、ユーザが、ハードウェア・エンコーダ151に割り振られるフレーム数に対してソフトウェア・エンコーダ152に割り振られるフレーム数の割合を1/2に設定した場合を想定する。データ割振部14はまず、符号化対象の映像データストリームの先頭フレームをソフトウェア・エンコーダ152に割り振る。データ割振部14は次に、その映像データストリームの2、3番目のフレームをハードウェア・エンコーダ151に割り振る。データ割振部14は更に、4番目のフレームをソフトウェア・エンコーダ152に割り振り、5、6番目のフレームをハードウェア・エンコーダ151に割り振る。データ割振部14は以下同様に、1枚のフレームをソフトウェア・エンコーダ152に割り振るごとに、それに続く2枚のフレームをハードウェア・エンコーダ151に割り振る。   For example, it is assumed that the encoding data unit is one frame and the user sets the ratio of the number of frames allocated to the software encoder 152 to ½ with respect to the number of frames allocated to the hardware encoder 151. . The data allocator 14 first allocates the first frame of the video data stream to be encoded to the software encoder 152. Next, the data allocator 14 allocates the second and third frames of the video data stream to the hardware encoder 151. The data allocator 14 further allocates the fourth frame to the software encoder 152 and allocates the fifth and sixth frames to the hardware encoder 151. Similarly, the data allocator 14 allocates the next two frames to the hardware encoder 151 each time one frame is allocated to the software encoder 152.

データ割振部14はその他に、編集部13がメモリ部20に符号化対象の映像データを所定のフレーム数、例えば15フレーム書き込むごとに、それらを3等分し、先頭の1/3、例えば1〜5番目のフレームをソフトウェア・エンコーダ152に割り振り、残り2/3、例えば6〜15番目のフレームをハードウェア・エンコーダ151に割り振る。ソフトウェア・エンコーダ152が1〜5番目のフレームを符号化している間、ハードウェア・エンコーダ151は6〜15番目のフレームを符号化する。   In addition, the data allocating unit 14 divides the video data to be encoded into a predetermined number of frames, for example, 15 frames, for example, every 15 frames into the memory unit 20 by the editing unit 13 and divides them into three equal parts, for example, the first 1/3, for example The fifth frame is allocated to the software encoder 152, and the remaining 2/3, for example, the sixth to fifteenth frames are allocated to the hardware encoder 151. While the software encoder 152 encodes the first to fifth frames, the hardware encoder 151 encodes the sixth to fifteenth frames.

実施形態2の符号化装置100は割り振り割合設定部22Aにより、符号化対象の映像データのうち、ハードウェア・エンコーダ151に割り振られるデータ単位数とソフトウェア・エンコーダ152に割り振られるデータ単位数との割合をユーザに選択させることができる。それにより、ユーザは、符号化部11Aを組み込んだビデオ編集システム200が一連の処理全体に要した時間を見ながら、各エンコーダ151、152に単位時間当たりに割り振るデータ単位数の割合を調節できる。その結果、符号化装置100は、その全体による符号化処理速度を、ハードウェア・エンコーダ151のみによる符号化処理速度よりも大きくできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。   The encoding apparatus 100 according to the second embodiment uses the allocation ratio setting unit 22A to determine the ratio between the number of data units allocated to the hardware encoder 151 and the number of data units allocated to the software encoder 152 in the video data to be encoded. Can be selected by the user. Thereby, the user can adjust the ratio of the number of data units to be allocated to each encoder 151, 152 per unit time while watching the time required for the entire series of processing by the video editing system 200 incorporating the encoding unit 11A. As a result, the encoding apparatus 100 can make the overall encoding processing speed higher than the encoding processing speed of only the hardware encoder 151. Thereby, the encoding processing speed of the video editing system 200 can be improved.

《実施形態3》
本発明の実施形態3による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
<< Embodiment 3 >>
The encoding apparatus 100 according to the third embodiment of the present invention is incorporated in the non-linear video editing system 200 as in the first embodiment. The video editing system 200 is the same as that according to the first embodiment except for the encoding unit. Therefore, the description about Embodiment 1 is used for details of these similar elements.

図8は、本発明の実施形態3による符号化部11Bのブロック図である。図8を参照するに、符号化部11Bは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、CPU負荷推定部23、割り振り割合設定部22B、及び第1データベース24を含む。符号化部11Bは、CPU負荷推定部23、割り振り割合設定部22B、及び第1データベース24を除き、図3に示されている要素と同様な要素を含む。図8ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細の説明を援用する。   FIG. 8 is a block diagram of the encoding unit 11B according to Embodiment 3 of the present invention. Referring to FIG. 8, the encoding unit 11B includes a data allocation unit 14, a hardware encoder 151, a software encoder 152, a synthesis unit 16, an output unit 17, a CPU load estimation unit 23, an allocation ratio setting unit 22B, and A first database 24 is included. The encoding unit 11B includes the same elements as those shown in FIG. 3 except for the CPU load estimating unit 23, the allocation ratio setting unit 22B, and the first database 24. In FIG. 8, the same reference numerals as those shown in FIG. 3 are given to the similar elements, and the detailed description thereof is cited.

図8を参照するに、CPU負荷推定部23は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。CPU負荷推定部23は、編集部13による編集処理でのCPU10の負荷を、その編集処理の内容を規定する編集情報から予測する。   Referring to FIG. 8, the CPU load estimator 23 functions when the CPU 10 controls other elements of the computer terminal according to a predetermined program. The CPU load estimation unit 23 predicts the load of the CPU 10 in the editing process by the editing unit 13 from editing information that defines the contents of the editing process.

CPU負荷推定部23は編集部13による編集処理に先立ち、編集部13から編集情報を受け取る。編集情報は、映像データの時間範囲とその時間順序や、エフェクトの内容、解像度変換に関する情報、フレームレート変換に関する情報などを含む。CPU負荷推定部23は編集情報に基づき、編集部13による編集処理期間中でのタイムライン処理指数TEの推移を以下のように予測する。ここで、タイムライン処理指数TEは、編集部13が1つのデータ単位の映像データを編集するのに要するCPU10の処理量、すなわちCPU負荷指数で定義される。以下、説明の便宜上、そのデータ単位を1フレームとする。   The CPU load estimation unit 23 receives editing information from the editing unit 13 prior to editing processing by the editing unit 13. The editing information includes a time range and time order of video data, effect contents, information on resolution conversion, information on frame rate conversion, and the like. Based on the editing information, the CPU load estimating unit 23 predicts the transition of the timeline processing index TE during the editing processing period by the editing unit 13 as follows. Here, the timeline processing index TE is defined by a processing amount of the CPU 10 required for the editing unit 13 to edit video data of one data unit, that is, a CPU load index. Hereinafter, for convenience of explanation, the data unit is one frame.

CPU負荷推定部23はまず、編集情報に基づき、編集部13による編集処理期間の全体を、複数の編集処理を含む期間ごとに分割する。ここで、分割された1つの期間で編集されるフレーム数が所定の閾値より小さい場合、その前後いずれかの期間に統合する。それにより、分割された各期間ではその閾値以上のフレームが編集される。   First, the CPU load estimator 23 divides the entire editing processing period by the editing unit 13 into periods including a plurality of editing processes based on the editing information. Here, when the number of frames edited in one divided period is smaller than a predetermined threshold value, the frames are integrated in either period before or after that. Thereby, in each divided period, a frame that is equal to or greater than the threshold is edited.

CPU負荷推定部23は次に、分割された期間ごとに並行する編集処理の種類を編集情報から特定し、特定された各種類に対応するCPU負荷指数を求める。ここで、編集処理の種類ごとにその編集処理に要するCPU10の処理量、すなわちCPU負荷指数が予め評価され、メモリ部20に第1データベース24として記憶されている。   Next, the CPU load estimator 23 identifies the type of editing process in parallel for each divided period from the editing information, and obtains a CPU load index corresponding to each identified type. Here, for each type of editing process, the processing amount of the CPU 10 required for the editing process, that is, the CPU load index is evaluated in advance and stored in the memory unit 20 as the first database 24.

図9は、そのCPU負荷指数の一例を示す表である。図9を参照するに、AVC−Intra方式の映像データの復号処理におけるCPU負荷指数を100として、CPU10の他の様々な処理に関するCPU負荷指数が評価されている。CPU負荷推定部23は、特定された編集処理の各種類に対応するCPU負荷指数を第1データベース24から検索する。CPU負荷推定部23は更に、検索されたCPU負荷指数を分割された期間ごとに足し合わせ、各和をその分割された期間のタイムライン処理指数TEとして決定する。   FIG. 9 is a table showing an example of the CPU load index. Referring to FIG. 9, the CPU load index related to various other processes of the CPU 10 is evaluated with the CPU load index in the AVC-Intra video data decoding process being 100. The CPU load estimation unit 23 searches the first database 24 for the CPU load index corresponding to each type of the specified editing process. The CPU load estimation unit 23 further adds the retrieved CPU load indexes for each divided period, and determines each sum as a timeline processing index TE for the divided period.

例えば編集情報が、ある期間で行われる編集処理を「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倍で評価されている。   For example, it is assumed that the editing information expresses an editing process performed in a certain period as “compositing two AVC-Intra50 materials with picture-in-picture and inserting one title”. First, the CPU load estimation unit 23 specifies “decoding of AVC-Intra50 material”, “effect processing by picture-in-picture”, and “title addition” as types of editing processing performed in parallel during the period. Next, the CPU load estimating unit 23 searches the first database 24 for 100, 5, and 5 as CPU load indexes corresponding to the specified types of editing processing. The CPU load estimator 23 further determines the timeline processing index TE from the retrieved CPU load indexes 100, 5, and 5 by the following formula: TE = 100 × 2 + 5 + 5 = 210. Here, since the material of the AVC-Intra 50 is 2 frames, the CPU load index for these decoding processes is evaluated at twice the value 100 per frame.

CPU負荷推定部23は、分割された各期間で編集される映像データストリームの時間範囲の開始位置を示すタイムコードを編集情報から読み取り、その期間でのタイムライン処理指数TEに対応させる。こうして、編集部13による編集処理期間中でのタイムライン処理指数TEの推移が予測される。CPU負荷推定部23は更に、タイムライン処理指数TEとタイムコードとの組み合わせを割り振り割合設定部22Bに与える。   The CPU load estimator 23 reads from the editing information a time code indicating the start position of the time range of the video data stream edited in each divided period, and associates it with the timeline processing index TE in that period. In this way, the transition of the timeline processing index TE during the editing processing period by the editing unit 13 is predicted. The CPU load estimating unit 23 further gives a combination of the timeline processing index TE and the time code to the allocation ratio setting unit 22B.

割り振り割合設定部22Bは、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。割り振り割合設定部22Bは、CPU負荷推定部23によって予測されたCPU10の負荷の推移、すなわちタイムライン処理指数TEの推移に基づき、データ割振部14によって両エンコーダ151、152に単位時間当たりに割り振られる映像データの割合を設定する。例えば符号化のデータ単位が1フレームであるとき、割り振り割合設定部22Bは各タイムライン処理指数TEに応じて、単位時間当たりにハードウェア・エンコーダ151に割り振られるフレーム数HFとソフトウェア・エンコーダ152に割り振られるフレーム数SFとの割合を、以下のように算定する。   The allocation ratio setting unit 22B functions by the CPU 10 controlling other elements of the computer terminal according to a predetermined program. The allocation ratio setting unit 22B is allocated to both encoders 151 and 152 per unit time by the data allocation unit 14 based on the transition of the load of the CPU 10 predicted by the CPU load estimation unit 23, that is, the transition of the timeline processing index TE. Set the video data ratio. For example, when the encoding data unit is one frame, the allocation ratio setting unit 22B determines the number of frames HF allocated to the hardware encoder 151 per unit time and the software encoder 152 according to each timeline processing index TE. The ratio with the number of allocated frames SF is calculated as follows.

割り振り割合設定部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を表す。   The allocation ratio setting unit 22B first receives the combination of the timeline processing index TE and the time code from the CPU load estimation unit 23. Next, the allocation ratio setting unit 22B calculates a ratio CE / TE of the CPU processing capacity index CE to each timeline processing index TE. The CPU processing capability index CE is defined as a processing amount per unit time that can be provided by the CPU 10 for editing processing by the editing unit 13 or encoding processing by the software encoder 152, for example, processing amount per frame period. Here, the CPU 10 generally also performs processing related to other modules such as the OS of the computer terminal, the data allocator 14, and the synthesizer 16. The CPU processing capability index CE is obtained by subtracting the processing amount related to the processing from the total processing amount that can be provided by the CPU 10. Therefore, the ratio CE / TE is the maximum value of the editing processing speed obtained when the processing amount that can be provided by the CPU 10 is all provided to the same editing processing during the period evaluated by the timeline processing index TE, that is, the unit. This represents the maximum number MF of frames that can execute the same editing process per time.

割り振り割合設定部22Bは更に、各最高値MFをハードウェア・エンコーダ151による符号化処理速度、すなわちハードウェア・エンコーダ151が単位時間当たりに符号化可能なフレーム数HFと比較する。   The allocation ratio setting unit 22B further compares each maximum value MF with the encoding processing speed by the hardware encoder 151, that is, the number of frames HF that the hardware encoder 151 can encode per unit time.

編集処理速度の最高値MFがハードウェア・エンコーダ151による符号化処理速度HF以下であるとき、その最高値MFで評価された編集処理はハードウェア・エンコーダ151による符号化処理より遅いと見なせる。その場合、割り振り割合設定部22Bは、その編集処理期間については、ソフトウェア・エンコーダ152に割り振られるフレーム数SFを“0”に設定し、CPU10への負担の増加を防ぐ。   When the maximum value MF of the editing processing speed is equal to or lower than the encoding processing speed HF by the hardware encoder 151, the editing processing evaluated at the maximum value MF can be regarded as being slower than the encoding processing by the hardware encoder 151. In that case, the allocation ratio setting unit 22B sets the number of frames SF allocated to the software encoder 152 to “0” for the editing processing period, thereby preventing an increase in the burden on the CPU 10.

編集処理速度の最高値MFがハードウェア・エンコーダ151による符号化処理速度HFを超えているとき、その最高値MFで評価された編集処理はハードウェア・エンコーダ151による符号化処理より速いと見なせる。その場合、割り振り割合設定部22Bは、その編集処理期間についてはソフトウェア・エンコーダ152に割り振られるフレーム数SFを以下のように“0”より大きい値に設定する。これにより、両エンコーダ151、152の並列処理による符号化部11B全体での符号化処理時間の短縮を図ることができる。   When the maximum value MF of the editing processing speed exceeds the encoding processing speed HF by the hardware encoder 151, it can be considered that the editing processing evaluated at the maximum value MF is faster than the encoding processing by the hardware encoder 151. In that case, the allocation ratio setting unit 22B sets the number of frames SF allocated to the software encoder 152 to a value larger than “0” as follows for the editing processing period. Thereby, the encoding process time in the whole encoding part 11B by the parallel processing of both the encoders 151 and 152 can be aimed at.

ハードウェア・エンコーダ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”より大きい。   The encoding processing speed HF by the hardware encoder 151 is constant regardless of the load fluctuation of the CPU 10. Therefore, the allocation ratio setting unit 22B first sets the number of frames allocated to the hardware encoder 151 per unit time as the encoding processing speed HF. In this case, in order to operate the hardware encoder 151 in parallel with the editing unit 13 without delay, the processing amount per unit time of the CPU 10 with respect to the editing unit 13 is at least the timeline processing index TE and the code by the hardware encoder 151. It is preferable to maintain the product TE × HF with the conversion processing rate HF. Therefore, the remaining RE = CE−TE × HF obtained by removing the above-mentioned product TE × HF from the CPU processing power index CE is regarded as the upper limit of the processing amount of the CPU 10 that can be provided to the software encoder 152 per unit time. Can do. The allocation ratio setting unit 22B calculates the upper limit RE for each timeline processing index TE. The upper limit RE is equal to a value obtained by multiplying the difference between the maximum value MF of the editing processing speed and the encoding processing speed HF by the hardware encoder 151 by the timeline processing index TE: RE = TE × (MF -HF). Accordingly, when the maximum value MF of the editing processing speed exceeds the encoding processing speed HF by the hardware encoder 151, the upper limit RE is larger than “0”.

一方、割り振り割合設定部22Bは、ソフトウェア・エンコーダ152による符号化処理に要するCPU10の単位時間当たりの処理量、すなわちソフトウェアエンコード処理指数SEを各タイムライン処理指数TEに加えてその和QE=SE+TEを求める。ここで、ソフトウェアエンコード処理指数SEは符号化方式ごとに異なる。第1データベース24には、符号化方式の種類ごとに評価されたソフトウェアエンコード処理指数SEが記憶されている。図9の表には、符号化処理の種類ごとにCPU負荷指数の例が示されている。これらのCPU負荷指数がソフトウェアエンコード処理指数SEとして利用される。割り振り割合設定部22Bは、実際に使用される符号化方式の種類に対応するソフトウェアエンコード指数SEを第1データベース24から予め検索しておく。   On the other hand, the allocation ratio setting unit 22B adds the processing amount per unit time of the CPU 10 required for the encoding process by the software encoder 152, that is, the software encoding processing index SE to each timeline processing index TE and adds the sum QE = SE + TE. Ask. Here, the software encoding processing index SE differs for each encoding method. The first database 24 stores a software encoding processing index SE evaluated for each type of encoding method. The table of FIG. 9 shows an example of the CPU load index for each type of encoding process. These CPU load indices are used as the software encoding process index SE. The allocation ratio setting unit 22B searches the first database 24 in advance for the software encoding index SE corresponding to the type of encoding method that is actually used.

上記の和QEは、タイムライン処理指数TEに対応する編集処理とソフトウェアエンコード処理指数SEに対応する符号化処理との並列処理に要するCPU10の単位時間当たりの処理量を表す。従って、割り振り割合設定部22Bは、各タイムライン処理指数TEから得られた和QEで上限REを割り、その商RE/QEを、そのタイムライン処理指数TEに対応するタイムコードの示す編集処理期間中、ソフトウェア・エンコーダ152に単位時間当たりに割り振られるフレーム数SFとして設定するとよい。それにより、ソフトウェア・エンコーダ152が編集部13と並列に遅滞なく動作することが期待できる。
なお、上限REは“0”より大きいので、ソフトウェア・エンコーダ152に割り振られるフレーム数SFも“0”より大きい。
The above sum QE represents the processing amount per unit time of the CPU 10 required for the parallel processing of the editing process corresponding to the timeline processing index TE and the encoding process corresponding to the software encoding process index SE. Therefore, the allocation ratio setting unit 22B divides the upper limit RE by the sum QE obtained from each timeline processing index TE, and the quotient RE / QE is an editing processing period indicated by the time code corresponding to the timeline processing index TE. Among these, the number of frames SF allocated to the software encoder 152 per unit time may be set. Thereby, it can be expected that the software encoder 152 operates in parallel with the editing unit 13 without delay.
Since the upper limit RE is greater than “0”, the number of frames SF allocated to the software encoder 152 is also greater than “0”.

ここで、単位時間がフレーム周期に等しい場合でも、上記のフレーム数SFとハードウェア・エンコーダ151による符号化処理速度HFとはいずれも整数とは限らない。従って、割り振り割合設定部22Bは、各タイムライン処理指数TEから得られたフレーム数SFとハードウェア・エンコーダ151による符号化処理速度HFとの比SF:HFを整数比HFI:SFIで近似する。例えば、そのタイムライン処理指数TEに対応するタイムコードの示す編集処理期間で編集されるフレームの総数に比べ、整数比HFI:SFIを表す2つの整数HFI、SFIの和HFI+SFIを小さく設定する。   Here, even when the unit time is equal to the frame period, the number of frames SF and the encoding processing speed HF by the hardware encoder 151 are not necessarily integers. Therefore, the allocation ratio setting unit 22B approximates the ratio SF: HF between the number of frames SF obtained from each timeline processing index TE and the encoding processing speed HF by the hardware encoder 151 by the integer ratio HFI: SFI. For example, the sum HFI + SFI of two integers HFI and SFI representing the integer ratio HFI: SFI is set smaller than the total number of frames edited in the editing processing period indicated by the time code corresponding to the timeline processing index TE.

割り振り割合設定部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は元の割り振り動作を継続する。   The allocation ratio setting unit 22B sets the number of frames SF = 0 or the integer ratio HFI: SFI to the data allocating unit 14 as follows. First, every time one frame to be encoded is written from the editing unit 13 to the memory unit 20, the data allocating unit 14 reads the time code from the frame and passes it to the allocation ratio setting unit 22B. The allocation ratio setting unit 22B compares the time code with each time code received from the CPU load estimation unit 23. When the time code from the data allocator 14 reaches a value smaller than the time code from the CPU load estimator 23 by a predetermined amount, the allocation ratio setting unit 22B determines the time corresponding to the time code from the CPU load estimator 23. The number of frames SF = 0 or the integer ratio HFI: SFI obtained from the line processing index TE is given to the data allocator 14. When the number of frames SF = 0 is given, the data allocator 14 thereafter allocates all the encoding target frames to the hardware encoder 151. On the other hand, when the integer ratio HFI: SFI is given, the data allocator 14 continuously allocates the following HFI frames to the hardware encoder every time SFI frames are continuously allocated to the software encoder 152. Assign to encoder 151. The data allocator 14 continues the original allocation operation until the number of frames SF = 0 or the integer ratio HFI: SFI is newly input from the allocation ratio setting unit 22B.

ここで、上記の所定量は主に、編集部13によってメモリ部20に書き込まれた符号化対象のフレームのタイムコードと、その書き込みに並行して編集されるフレームのタイムコードとの間の一般的な差で決まる。すなわち、前者のタイムコードから後者のタイムコードが推定されるように、上記の所定量は調節される。   Here, the above-mentioned predetermined amount is a general value between the time code of the encoding target frame written in the memory unit 20 by the editing unit 13 and the time code of the frame edited in parallel with the writing. It depends on the difference. That is, the predetermined amount is adjusted so that the latter time code is estimated from the former time code.

上記とは別に、割り振り割合設定部22Bが、各タイムライン処理指数TEから得られたフレーム数SFとハードウェア・エンコーダ151による符号化処理速度HFとの比α=HF:SFそのものをデータ割振部14に与えてもよい。その場合、データ割振部14は、編集部13からメモリ部20内の入力バッファ領域BIに符号化対象の1フレームが書き込まれるごとに、そのフレームを確率α/(1+α)でハードウェア・エンコーダ151に割り振り、確率1/(1+α)でソフトウェア・エンコーダ152に割り振る。   Apart from the above, the allocation ratio setting unit 22B uses the ratio α = HF: SF between the number of frames SF obtained from each timeline processing index TE and the encoding processing speed HF by the hardware encoder 151 as a data allocating unit. 14 may be given. In this case, the data allocator 14 writes the frame to the hardware encoder 151 with a probability α / (1 + α) every time one frame to be encoded is written from the editing unit 13 to the input buffer area BI in the memory unit 20. To the software encoder 152 with probability 1 / (1 + α).

こうして、割り振り割合設定部22Bは、データ割振部14によって両エンコーダ151、152に割り振られる単位時間当たりのフレーム数の比HF:SFをタイムライン処理指数TEごとに変化させる。それにより、編集部13による編集処理の内容に応じてCPU10の負荷が変動しても、各エンコーダ151、152の待ち時間が十分に短く維持されたまま、符号化部11B全体による符号化処理速度がハードウェア・エンコーダ151のみによる符号化処理速度HFより最大(HF+SF)/HF倍まで上がる。従って、ビデオ編集システム200全体による処理が高速化する。   In this way, the allocation ratio setting unit 22B changes the ratio HF: SF of the number of frames per unit time allocated to the encoders 151 and 152 by the data allocation unit 14 for each timeline processing index TE. As a result, even if the load on the CPU 10 fluctuates according to the content of the editing process by the editing unit 13, the encoding processing speed of the entire encoding unit 11B is maintained while the waiting time of each of the encoders 151 and 152 is kept sufficiently short. Increases up to the maximum (HF + SF) / HF times from the encoding processing speed HF only by the hardware encoder 151. Therefore, processing by the entire video editing system 200 is accelerated.

例えば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倍まで上がる。   For example, when the CPU processing capability index CE is “400” and the software encoding processing index SE is “200” when one frame period is a unit time, in the editing processing period in which the timeline processing index TE is 200, The encoding processing speed CE / QE by only the software encoder 152 is equal to “1”. On the other hand, the maximum value MF = CE / TE of the editing processing speed is equal to “2”. Accordingly, when the encoding processing speed HF by the hardware encoder 151 is “1”, the value is smaller than the maximum value MF, so that the data allocator 14 sends the video data to be encoded to both the encoders 151 and 152 as frames. Number ratio HF: SF = 1: 0.5 = 2: 1. As a result, the encoding processing speed of the entire encoding unit 11B is increased up to 1.5 times the encoding processing speed of only the hardware encoder 151.

なお、もしハードウェア・エンコーダ151による符号化処理速度HFが“2”であれば、その値は編集処理速度の最高値MFに等しい。従って、データ割振部14は符号化対象の映像データをハードウェア・エンコーダ151のみに割り当てるとよい。編集処理速度と符号化処理速度とのバランスを保ち、ビデオ編集システム200全体を効率的に動作させることができる。   If the encoding processing speed HF by the hardware encoder 151 is “2”, the value is equal to the maximum value MF of the editing processing speed. Therefore, the data allocator 14 may allocate video data to be encoded only to the hardware encoder 151. The entire video editing system 200 can be efficiently operated while maintaining a balance between the editing processing speed and the encoding processing speed.

一方、タイムライン処理指数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倍まで上がる。   On the other hand, in the editing processing period in which the timeline processing index TE is “100”, the encoding processing speed CE / QE by only the software encoder 152 is “1.33”. At this time, since the maximum value MF = CE / TE of the editing processing speed is equal to “4”, when the encoding processing speed HF by the hardware encoder 151 is “1”, the value is smaller than the maximum value MF. Accordingly, the data allocator 14 allocates the video data to be encoded to both encoders 151 and 152 at a frame number ratio HF: SF = 1: 1. As a result, the encoding processing speed of the entire encoding unit 11B is increased up to twice as much as the encoding processing speed of only the hardware encoder 151, and is up to 1.5 times higher than the encoding processing speed of only the software encoder 152. Go up to double.

その他の例として、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倍まで上がる。   As another example, when the CPU processing power index CE is “400” and the software encoding processing index SE is “1000”, the software encoder 152 is used in the editing processing period in which the timeline processing index TE is “200”. The encoding processing speed CE / QE based only on “0.33”. At that time, since the maximum value MF = CE / TE of the editing processing speed is equal to “2”, when the encoding processing speed HF by the hardware encoder 151 is “1”, the value is smaller than the maximum value MF. Therefore, the data allocator 14 allocates the video data to be encoded to the encoders 151 and 152 at a frame number ratio HF: SF = 1: 0.17 = 6: 1. As a result, the encoding processing speed of the entire encoding unit 11B is increased up to 1.17 times higher than the encoding processing speed of only the hardware encoder 151, and up to 3 times higher than the encoding processing speed of only the software encoder 152. .Up to 5 times.

図10は、符号化部11Bによる、映像データを割り振る割合の設定処理のフローチャートである。図10のフローチャートに従って、CPU負荷推定部23は編集情報に基づいてタイムライン処理指数TEの推移を予測し、割り振り割合設定部22Bはその推移に基づき、両エンコーダ151、152に割り振られるフレーム数の比を設定する。以下、図10を参照しながら、その予測処理と設定処理とについて説明する。符号化部11Bは編集部13から編集情報を受け取ると、以下の処理を開始する。   FIG. 10 is a flowchart of processing for setting the ratio of video data allocation by the encoding unit 11B. According to the flowchart of FIG. 10, the CPU load estimation unit 23 predicts the transition of the timeline processing index TE based on the editing information, and the allocation ratio setting unit 22B determines the number of frames allocated to both encoders 151 and 152 based on the transition. Set the ratio. Hereinafter, the prediction process and the setting process will be described with reference to FIG. When receiving the editing information from the editing unit 13, the encoding unit 11B starts the following processing.

最初に、ステップS21では、CPU負荷推定部23は編集部13から編集情報を受け取り、それに基づき、編集部13による編集処理期間の全体を、並行する編集処理の種類が共通する期間に分割する。   First, in step S21, the CPU load estimating unit 23 receives the editing information from the editing unit 13, and based on that, divides the entire editing process period by the editing unit 13 into periods in which the types of parallel editing processes are common.

次いで、ステップS22では、CPU負荷推定部23はまず、分割された期間ごとに編集処理の種類を編集情報から特定する。CPU負荷推定部23は次に、特定された各種類に対応するCPU負荷指数を第1データベース24から検索する。CPU負荷推定部23は続いて、検索されたCPU負荷指数を分割された期間ごとに足し合わせ、その和をその分割された期間のタイムライン処理指数TEとして決定する。CPU負荷推定部23は最後に、分割された各期間の開始位置を示すタイムコードを編集情報から読み取り、その期間でのタイムライン処理指数TEに対応させ、タイムライン処理指数TEとタイムコードとの組み合わせを割り振り割合設定部22Bに渡す。   Next, in step S22, the CPU load estimation unit 23 first specifies the type of editing process from the editing information for each divided period. Next, the CPU load estimator 23 searches the first database 24 for the CPU load index corresponding to each specified type. Subsequently, the CPU load estimator 23 adds the retrieved CPU load indexes for each divided period, and determines the sum as the timeline processing index TE for the divided period. Finally, the CPU load estimator 23 reads the time code indicating the start position of each divided period from the editing information, and associates the time code with the timeline processing index TE in that period. The combination is passed to the allocation ratio setting unit 22B.

次いで、ステップS23では、割り振り割合設定部22Bは、CPU負荷推定部23から受け取ったタイムライン処理指数TEごとに編集処理速度の最高値MF=CE/TEを求める。   Next, in step S23, the allocation ratio setting unit 22B obtains the maximum value MF = CE / TE of the editing processing speed for each timeline processing index TE received from the CPU load estimating unit 23.

次いで、ステップS24では、割り振り割合設定部22Bは各最高値MFをハードウェア・エンコーダ151による符号化処理速度HFと比較する。最高値MFが符号化処理速度HF以下である場合(ステップS24で“Yes”の場合)、処理がステップS25に進む。最高値MFが符号化処理速度HFよりも大きい場合(ステップS24で“No”の場合)、処理がステップS26に進む。   Next, in step S24, the allocation ratio setting unit 22B compares each maximum value MF with the encoding processing speed HF by the hardware encoder 151. If the maximum value MF is equal to or less than the encoding processing speed HF (“Yes” in step S24), the process proceeds to step S25. When the maximum value MF is larger than the encoding processing speed HF (“No” in step S24), the process proceeds to step S26.

ステップS25では、割り振り割合設定部22Bは、ソフトウェア・エンコーダ152に割り振られるフレーム数SFを“0”に設定する。そして、処理はステップS28に進む。   In step S25, the allocation ratio setting unit 22B sets the number of frames SF allocated to the software encoder 152 to “0”. Then, the process proceeds to step S28.

ステップS26では、割り振り割合設定部22Bはまず、ソフトウェア・エンコーダ152に対して単位時間当たりに提供可能なCPU10の処理量の上限RE=CE−TE×HFを計算する。割り振り割合設定部22Bは次に、その上限REをソフトウェアエンコード処理指数SEとタイムライン処理指数TEとの和QE=SE+TEで割った値RE/QEを求め、ソフトウェア・エンコーダ152に単位時間当たりに割り振られるフレーム数SF=RE/QEとして設定する。   In step S26, the allocation ratio setting unit 22B first calculates the upper limit RE = CE−TE × HF of the processing amount of the CPU 10 that can be provided to the software encoder 152 per unit time. Next, the allocation ratio setting unit 22B calculates a value RE / QE obtained by dividing the upper limit RE by the sum QE = SE + TE of the software encoding processing index SE and the timeline processing index TE, and allocates it to the software encoder 152 per unit time. The number of frames to be set SF = RE / QE.

次いで、ステップS27では、割り振り割合設定部22Bは、設定されたフレーム数SFとハードウェア・エンコーダ151による符号化処理速度HFとの比HF:SFを求める。一般にその比HF:SFは整数比ではないので、割り振り割合設定部22Bはその比HF:SFを整数比HFI:SFIで近似する。そして、処理はステップS28に進む。   Next, in step S27, the allocation ratio setting unit 22B obtains a ratio HF: SF between the set number of frames SF and the encoding processing speed HF by the hardware encoder 151. Generally, since the ratio HF: SF is not an integer ratio, the allocation ratio setting unit 22B approximates the ratio HF: SF with the integer ratio HFI: SFI. Then, the process proceeds to step S28.

ステップS28では、割り振り割合設定部22Bは、ステップS25で設定されたフレーム数SF=0、又はステップS27で設定された整数比HFI:SFIを、最高値MFの算定に利用されたタイムライン処理指数TEに対応するタイムコードに対応させる。   In step S28, the allocation ratio setting unit 22B uses the number of frames SF = 0 set in step S25, or the integer ratio HFI: SFI set in step S27, and the timeline processing index used for calculating the maximum value MF. Correspond to the time code corresponding to TE.

次いで、ステップS29では、割り振り割合設定部22Bは、CPU負荷推定部23から受け取ったタイムライン処理指数TEの中に、ステップS23〜S28の処理を受けていないものの有無を調べる。未処理のタイムライン処理指数TEが残っている場合(ステップS29で“Yes”の場合)、処理がステップS23に戻る。未処理のタイムライン処理指数TEが残っていない場合(ステップS29で“No”の場合)、処理が終了する。   Next, in step S29, the allocation ratio setting unit 22B checks whether or not the timeline processing index TE received from the CPU load estimation unit 23 has not undergone the processing of steps S23 to S28. When the unprocessed timeline processing index TE remains (in the case of “Yes” in step S29), the processing returns to step S23. When there is no unprocessed timeline processing index TE remaining (in the case of “No” in step S29), the processing ends.

図11は、符号化部11Bによる映像データの割り振り処理のフローチャートである。割り振り割合設定部22Bとデータ割振部14とは図11のフローチャートに従って、両エンコーダ151、152に符号化対象の映像データストリームを割り振る。以下、図11を参照しながら、その割り振り処理について説明する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。   FIG. 11 is a flowchart of video data allocation processing by the encoding unit 11B. The allocation ratio setting unit 22B and the data allocator 14 allocate the video data streams to be encoded to both encoders 151 and 152 according to the flowchart of FIG. Hereinafter, the allocation process will be described with reference to FIG. The following processing can be started, for example, when the editing unit 13 starts outputting a video data stream to be encoded.

最初のステップS31では、割り振り割合設定部22Bは、CPU負荷推定部23から受け取ったタイムコードのうち、再生時間の最も早いものを目標タイムコードTrとして設定する。   In the first step S31, the allocation ratio setting unit 22B sets the earliest playback time among the time codes received from the CPU load estimation unit 23 as the target time code Tr.

次いで、ステップS32では、編集部13からメモリ部20内の入力バッファ領域BIに符号化対象の1フレームが書き込まれたとき、データ割振部14はそのフレームからタイムコードTcを読み取って割り振り割合設定部22Bに渡す。   Next, in step S32, when one frame to be encoded is written from the editing unit 13 to the input buffer area BI in the memory unit 20, the data allocating unit 14 reads the time code Tc from the frame and allocates an allocation ratio setting unit. Pass to 22B.

次いで、ステップS33では、割り振り割合設定部22Bは、データ割振部14からのタイムコードTcを、目標タイムコードTrより所定量だけ小さい値と比較する。データ割振部14からのタイムコードTcがその値(Tr−所定量)以上である場合(ステップS33で“Yes”の場合)、処理がステップS34に進む。データ割振部14からのタイムコードTcが値(Tr−所定量)よりも小さい場合(ステップS33で“No”の場合)、処理がステップS32に戻る。   Next, in step S33, the allocation ratio setting unit 22B compares the time code Tc from the data allocating unit 14 with a value smaller than the target time code Tr by a predetermined amount. If the time code Tc from the data allocator 14 is equal to or greater than the value (Tr−predetermined amount) (“Yes” in step S33), the process proceeds to step S34. If the time code Tc from the data allocator 14 is smaller than the value (Tr−predetermined amount) (“No” in step S33), the process returns to step S32.

次いで、ステップS34では、割り振り割合設定部22Bは、目標タイムコードTrに対応するフレーム数SF=0又は整数比HFI:SFIをデータ割振部14に与える。フレーム数SF=0が与えられた場合は処理がステップS35に進み、整数比HFI:SFIが与えられた場合は処理がステップS36に進む。   Next, in step S34, the allocation ratio setting unit 22B provides the data allocation unit 14 with the number of frames SF = 0 corresponding to the target time code Tr or the integer ratio HFI: SFI. If the number of frames SF = 0 is given, the process proceeds to step S35, and if the integer ratio HFI: SFI is given, the process proceeds to step S36.

ステップS35では、割り振り割合設定部22Bからフレーム数SF=0又は整数比HFI:SFIが新たに入力されるまで、データ割振部14は、メモリ部20内の入力バッファ領域BIに記憶された符号化対象のフレームを全てハードウェア・エンコーダ151に与える。そして、処理はステップS37に進む。   In step S35, the data allocating unit 14 performs the encoding stored in the input buffer area BI in the memory unit 20 until the number of frames SF = 0 or the integer ratio HFI: SFI is newly input from the allocation ratio setting unit 22B. All target frames are supplied to the hardware encoder 151. Then, the process proceeds to step S37.

ステップS36では、データ割振部14には整数比HFI:SFIが与えられる。従って、データ割振部14はそれ以降、SFI枚のフレームを連続してソフトウェア・エンコーダ152に割り振るごとに、それに続くHFI枚のフレームを連続してハードウェア・エンコーダ151に割り振る。割り振り割合設定部22Bからフレーム数SF=0又は整数比HFI:SFIが新たに入力されるまで、データ割振部14はその割り振り動作を継続する。そして、処理はステップS37に進む。   In step S36, the data allocator 14 is given an integer ratio HFI: SFI. Therefore, each time the data allocator 14 continuously allocates the SFI frames to the software encoder 152, the data allocator 14 continuously allocates the subsequent HFI frames to the hardware encoder 151. The data allocating unit 14 continues the allocation operation until the number of frames SF = 0 or the integer ratio HFI: SFI is newly input from the allocation ratio setting unit 22B. Then, the process proceeds to step S37.

ステップS37では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合、(ステップS37で“No”の場合)は処理がステップS31に戻り、最後である場合(ステップS37で“Yes”の場合)は処理が終了する。処理がステップS31から繰り返される場合、その繰り返しごとに、割り振り割合設定部22BによってCPU負荷推定部23から受け取られたタイムコードが、再生時間の早いものから順に目標タイムコードTrとして設定される。   In step S37, the data allocator 14 determines whether or not the allocated frame is the last frame of the video data stream to be encoded. If the frame is not the last ("No" in step S37), the process returns to step S31. If the frame is the last ("Yes" in step S37), the process ends. When the process is repeated from step S31, the time code received from the CPU load estimation unit 23 by the allocation ratio setting unit 22B is set as the target time code Tr in order from the earliest playback time for each repetition.

実施形態3の符号化装置100は、CPU負荷推定部23によって編集情報に基づいてタイムライン処理指数TEの推移を予測し、割り振り割合設定部22Bによって、両エンコーダ151、152に割り振られる単位時間当たりのフレーム数の比HF:SFを、予測されたタイムライン処理指数TEの推移に基づいて設定する。それにより、編集部13による編集処理の内容に応じてCPU10の負荷が変動しても、符号化装置100は、各エンコーダ151、152が符号化対象のフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。その結果、符号化装置100はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。   In the encoding device 100 of the third embodiment, the CPU load estimation unit 23 predicts the transition of the timeline processing index TE based on the editing information, and the allocation ratio setting unit 22B per unit time allocated to both the encoders 151 and 152. The ratio HF: SF of the number of frames is set based on the transition of the predicted timeline processing index TE. Thereby, even if the load on the CPU 10 fluctuates in accordance with the content of the editing process by the editing unit 13, the encoding device 100 reduces the time that each encoder 151, 152 waits for input of a frame to be encoded, Alternatively, the encoding processing by both encoders 151 and 152 can be performed in parallel while suppressing the occurrence of the time. As a result, the encoding apparatus 100 can perform the overall encoding process faster than the encoding process using only the hardware encoder 151. Thereby, the encoding processing speed of the video editing system 200 can be improved.

《実施形態4》
本発明の実施形態4による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。ビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
<< Embodiment 4 >>
The encoding apparatus 100 according to the fourth embodiment of the present invention is incorporated in the non-linear video editing system 200 as in the first embodiment. The video editing system 200 is the same as that according to the first embodiment except for the encoding unit. Therefore, the description about Embodiment 1 is used for details of these similar elements.

図12は、本発明の実施形態4による符号化部11Cのブロック図である。図12を参照するに、符号化部11Cは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、CPU負荷検出部25、割り振り割合設定部22C、及び第2データベース26を含む。符号化部11Cは、CPU負荷検出部25、割り振り割合設定部22C、及び第2データベース26を除き、図3に示されている要素と同様な要素を含む。図12ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細の説明を援用する。   FIG. 12 is a block diagram of an encoding unit 11C according to Embodiment 4 of the present invention. Referring to FIG. 12, the encoding unit 11C includes a data allocating unit 14, a hardware encoder 151, a software encoder 152, a combining unit 16, an output unit 17, a CPU load detecting unit 25, an allocation ratio setting unit 22C, and A second database 26 is included. The encoding unit 11C includes the same elements as those shown in FIG. 3 except for the CPU load detection unit 25, the allocation ratio setting unit 22C, and the second database 26. In FIG. 12, the same reference numerals as those shown in FIG. 3 are given to the similar elements, and the detailed description thereof is used.

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に通知する。   The CPU load detection unit 25 functions when the CPU 10 controls other elements of the computer terminal according to a predetermined program. The CPU load detection unit 25 measures the usage rate of the CPU 10 at predetermined time intervals using an API provided by the OS 27 of the computer terminal. The CPU load detection unit 25 further evaluates the load from the usage rate of the CPU 10, and notifies the allocation ratio setting unit 22C in real time. For example, the CPU load detection unit 25 divides the entire range of 0 to 100% that can be taken by the usage rate into several stages, and evaluates the load on the CPU 10 according to which stage the measured usage rate belongs. Further, when the stage to which the measured usage rate of the CPU 10 belongs is changed, the CPU load detection unit 25 notifies the allocation ratio setting unit 22C of the change together with the type of the stage after the change. For example, let us consider a case where the usage rate of the CPU 10 is divided into three stages of 0 to 20%, 20 to 80%, and 80 to 100%. When the measured usage rate of the CPU 10 changes from the first stage 0 to 20% to the second stage 20 to 80%, the CPU load detection unit 25 determines that the change has occurred and the stage after the change. Both are notified to the allocation ratio setting unit 22C that the second stage is 20 to 80%.

割り振り割合設定部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に符号化対象の映像データを割り振る。   The allocation ratio setting unit 22C determines the ratio HF: SF of the number of frames to be allocated to both encoders 151 and 152 per unit time according to the stage after change notified from the CPU load detection unit 25. The ratio HF: SF of the number of frames is evaluated in advance at each stage of the usage rate, and is stored as the second database 26 in the memory unit 20. In the second database 26, an integer ratio HFI: SFI is stored as the frame number ratio HF: SF. For example, the sum HFI + SFI of two integers constituting each integer ratio HFI: SFI is smaller than the total number of frames edited in a time interval for measuring the usage rate of the CPU 10. The higher the usage rate of the CPU 10, the higher the ratio of the number of frames HF: SF is set. That is, as the load on the CPU 10 is heavier, the number of frames SF allocated to the software encoder 152 per unit time is reduced. The allocation ratio setting unit 22 </ b> C searches the second database 26 for the ratio of the number of frames corresponding to the use rate stage notified from the CPU load detection unit 25. Further, the allocation ratio setting unit 22C passes the ratio of the searched number of frames to the data allocating unit 14. Thereby, the data allocator 14 allocates video data to be encoded to both encoders 151 and 152 according to the ratio of the new number of frames.

図13は、符号化部11Cによる映像データの割り振り処理のフローチャートである。CPU負荷検出部25、割り振り割合設定部22C、及びデータ割振部14は、図13のフローチャートに従って、両エンコーダ151、152に単位時間当たりに割り振られるフレーム数の比をCPU10の使用率に応じて変化させる。以下、図13を参照しながら、フレーム数の比の設定処理について説明する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。   FIG. 13 is a flowchart of video data allocation processing by the encoding unit 11C. The CPU load detection unit 25, the allocation ratio setting unit 22C, and the data allocation unit 14 change the ratio of the number of frames allocated to both encoders 151 and 152 according to the usage rate of the CPU 10 according to the flowchart of FIG. Let Hereinafter, the setting process of the ratio of the number of frames will be described with reference to FIG. The following processing can be started, for example, when the editing unit 13 starts outputting a video data stream to be encoded.

最初に、ステップS41では、CPU負荷検出部25はOS27のAPIを利用してCPU10の使用率を計測する。   First, in step S41, the CPU load detection unit 25 measures the usage rate of the CPU 10 using the API of the OS 27.

次いで、ステップS42では、CPU負荷検出部25は、計測されたCPU10の使用率の属する段階を特定し、以前の段階と同じか否かを判断する。段階が変わった場合(ステップS42で“Yes”の場合)は処理がステップS43に進み、段階が同じ場合(ステップS42で“No”の場合)は処理がステップS41に戻る。   Next, in step S42, the CPU load detection unit 25 identifies the stage to which the measured usage rate of the CPU 10 belongs, and determines whether or not it is the same as the previous stage. If the stage has changed (“Yes” in step S42), the process proceeds to step S43. If the stage is the same (in the case of “No” in step S42), the process returns to step S41.

次いで、ステップS43では、CPU負荷検出部25は、CPU10の使用率の属する段階が変化したことを変化後の段階の種類と共に割り振り割合設定部22Cに通知する。割り振り割合設定部22Cは、通知された使用率の段階に対応するフレーム数の比を第2データベース26から検索する。割り振り割合設定部22Cは更に、検索されたフレーム数の比をデータ割振部14に渡す。   Next, in step S43, the CPU load detection unit 25 notifies the allocation ratio setting unit 22C that the stage to which the usage rate of the CPU 10 belongs is changed along with the type of the stage after the change. The allocation ratio setting unit 22C searches the second database 26 for the ratio of the number of frames corresponding to the notified use rate stage. Further, the allocation ratio setting unit 22C passes the ratio of the searched number of frames to the data allocating unit 14.

次いで、ステップS44では、データ割振部14は、新たなフレーム数の比に従って両エンコーダ151、152に符号化対象の映像データを割り振る。   Next, in step S44, the data allocator 14 allocates video data to be encoded to both encoders 151 and 152 in accordance with the ratio of the new number of frames.

次いで、ステップS45では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合(ステップS45で“No”の場合)は処理がステップS41に戻り、最後である場合(ステップS45で“Yes”の場合)は処理が終了する。   Next, in step S45, the data allocator 14 determines whether or not the allocated frame is the last frame of the video data stream to be encoded. If the frame is not the last (“No” in step S45), the process returns to step S41. If the frame is the last (“Yes” in step S45), the process ends.

ステップS41〜S45のループは所定の時間間隔で繰り返される。それにより、両エンコーダ151、152に割り振られる映像データの割合が、CPU10の実際の負荷変動に応じて動的に調節される。   The loop of steps S41 to S45 is repeated at a predetermined time interval. Thereby, the ratio of the video data allocated to both the encoders 151 and 152 is dynamically adjusted according to the actual load fluctuation of the CPU 10.

実施形態4の符号化装置100は、CPU負荷検出部25によってCPU10の使用率の段階をリアルタイムで計測し、割り振り割合設定部22Cによって、計測されたCPU10の使用率の段階に合わせて、両エンコーダ151、152に割り振られる単位時間当たりのフレーム数の比HF:SFを設定する。その結果、符号化装置100は、CPU10の使用率、すなわち負荷の変動に関わらず、各エンコーダ151、152が符号化対象の映像データの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。従って、符号化装置100はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。   In the encoding device 100 of the fourth embodiment, the CPU load detection unit 25 measures the usage rate of the CPU 10 in real time, and the allocation ratio setting unit 22C adjusts both encoders according to the measured usage rate of the CPU 10. The ratio HF: SF of the number of frames per unit time allocated to 151 and 152 is set. As a result, the encoding apparatus 100 shortens the time for which the encoders 151 and 152 wait for the input of the video data to be encoded regardless of the usage rate of the CPU 10, that is, the load variation, or generates the time. Encoding processing by both encoders 151 and 152 can be performed in parallel while being suppressed. Therefore, the encoding apparatus 100 can perform the overall encoding process faster than the encoding process using only the hardware encoder 151. Thereby, the encoding processing speed of the video editing system 200 can be improved.

《実施形態5》
本発明の実施形態5による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
<< Embodiment 5 >>
The encoding apparatus 100 according to the fifth embodiment of the present invention is incorporated in the non-linear video editing system 200 as in the first embodiment. The video editing system 200 is the same as that according to the first embodiment except for the encoding unit. Therefore, the description about Embodiment 1 is used for details of these similar elements.

図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についての説明を援用する。   FIG. 14 is a block diagram of an encoding unit 11D according to Embodiment 5 of the present invention. Referring to FIG. 14, the encoding unit 11D includes a data allocator 14, a hardware encoder 151, a software encoder 152, a synthesizer 16, an output unit 17, a CPU load estimator 23, an allocation ratio setting unit 22D, 1 database 24, CPU load detection unit 25, and second database 26 are included. The encoding unit 11D substantially has the elements of the third embodiment shown in FIG. 8 and the elements of the fourth embodiment shown in FIG. In FIG. 14, the same reference numerals as those shown in FIGS. 8 and 12 are given to the similar elements, and the description of FIGS. 3, 8, and 12 is used for the details thereof.

割り振り割合設定部22Dは実施形態3による割り振り割合設定部22Bと同様、CPU負荷推定部23によって予測されたCPU10の負荷の推移、すなわちタイムライン処理指数TEの推移に基づき、データ割振部14によって両エンコーダ151、152に単位時間当たりに割り振られる映像データの割合を設定する。   Similar to the allocation ratio setting unit 22B according to the third embodiment, the allocation ratio setting unit 22D uses the data allocating unit 14 to change both the load of the CPU 10 predicted by the CPU load estimation unit 23, that is, the transition of the timeline processing index TE. A ratio of video data allocated to the encoders 151 and 152 per unit time is set.

割り振り割合設定部22Dは更に実施形態3による割り振り割合設定部22Bと同様、データ割振部14からタイムコードが渡されるごとに、そのタイムコードをCPU負荷推定部23から受け取った各タイムコードと比較する。その一方で、割り振り割合設定部22DはCPU負荷検出部25を通してCPU10の使用率を監視する。CPU10の使用率の段階が変化するごとに、割り振り割合設定部22Dは、変化後の段階に対応するCPU負荷指数を決定する。ここで、そのCPU負荷指数は使用率の段階ごとに予め評価され、第2データベース26に記録されている。割り振り割合設定部22Dは、変化後の使用率の段階に対応するCPU負荷指数を第2データベース26から検索する。   Similar to the allocation ratio setting unit 22B according to the third embodiment, the allocation ratio setting unit 22D compares the time code with each time code received from the CPU load estimation unit 23 every time the time code is passed from the data allocation unit 14. . On the other hand, the allocation ratio setting unit 22D monitors the usage rate of the CPU 10 through the CPU load detection unit 25. Each time the usage rate stage of the CPU 10 changes, the allocation ratio setting unit 22D determines the CPU load index corresponding to the stage after the change. Here, the CPU load index is evaluated in advance for each stage of the usage rate and recorded in the second database 26. The allocation ratio setting unit 22D searches the second database 26 for a CPU load index corresponding to the changed usage rate stage.

データ割振部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全体の処理速度の低下が防止される。   When the time code from the data allocator 14 reaches a value smaller than the time code from the CPU load estimator 23 by a predetermined amount, the allocation ratio setting unit 22D determines the time corresponding to the time code from the CPU load estimator 23. The line processing index TE is compared with the CPU load index LE corresponding to the stage of utilization of the CPU 10 at that time. When the timeline processing index TE is larger than the CPU load index LE, the allocation ratio setting unit 22D, like the allocation ratio setting unit 22B according to the third embodiment, the number of frames SF = 0 or the integer ratio obtained from the timeline processing index TE HFI: SFI is given to the data allocator 14. On the other hand, when the timeline processing index TE is equal to or less than the CPU load index LE, the allocation ratio setting unit 22D sets the ratio of the number of frames corresponding to the usage rate stage of the CPU 10 like the allocation ratio setting unit 22D according to the fourth embodiment. 2 Retrieve from the database 26 and pass to the data allocator 14. Thus, when the actual load of the CPU 10 is equal to or higher than the load predicted from the editing information, the video data is not a ratio of the number of frames set based on the editing information, but a frame suitable for the actual load. The encoders 151 and 152 are allocated in a ratio of numbers. Thereby, a decrease in the processing speed of the entire video editing system 200 due to an error in predicting the load on the CPU 10 is prevented.

図15は、符号化部11Dによる映像データの割り振り処理のフローチャートである。CPU負荷推定部23、CPU負荷検出部25、割り振り割合設定部22D、及びデータ割振部14は、図15のフローチャートに従って、両エンコーダ151、152に単位時間当たりに割り振られるフレーム数の比を変化させる。以下、図15を参照しながら、フレーム数の比の設定処理について説明する。なお、図15は、図11、図13に示されているステップと同様なステップを含む。従って、図15ではそれら同様なステップに対し、図11、図13に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図11、図13についての説明を援用する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。   FIG. 15 is a flowchart of video data allocation processing by the encoding unit 11D. The CPU load estimation unit 23, the CPU load detection unit 25, the allocation ratio setting unit 22D, and the data allocation unit 14 change the ratio of the number of frames allocated per unit time to both encoders 151 and 152 according to the flowchart of FIG. . Hereinafter, the processing for setting the ratio of the number of frames will be described with reference to FIG. FIG. 15 includes the same steps as those shown in FIGS. 11 and 13. Therefore, in FIG. 15, the same reference numerals as those shown in FIG. 11 and FIG. Furthermore, for the details of these similar steps, the description of FIG. 11 and FIG. 13 is incorporated. The following processing can be started, for example, when the editing unit 13 starts outputting a video data stream to be encoded.

最初に、ステップS31では、割り振り割合設定部22Dは、CPU負荷推定部23から受け取ったタイムコードを再生時間の早い順に目標タイムコードTrとして設定する。   First, in step S31, the allocation ratio setting unit 22D sets the time code received from the CPU load estimation unit 23 as the target time code Tr in order of the reproduction time.

次いで、ステップS32では、割り振り割合設定部22Dはデータ割振部14からタイムコードTcを読み取る。   Next, in step S <b> 32, the allocation ratio setting unit 22 </ b> D reads the time code Tc from the data allocation unit 14.

次のステップS33では、割り振り割合設定部22DはタイムコードTcを、目標タイムコードTrより所定量だけ小さい値と比較する。タイムコードTcがその値(Tr−所定量)以上である場合(ステップS33で“Yes”の場合)は処理がステップS51に進む。タイムコードTcがその値(Tr−所定量)よりも小さい場合(ステップS33で“No”の場合)は処理がステップS32から繰り返される。   In the next step S33, the allocation ratio setting unit 22D compares the time code Tc with a value smaller than the target time code Tr by a predetermined amount. If the time code Tc is equal to or greater than the value (Tr−predetermined amount) (“Yes” in step S33), the process proceeds to step S51. If the time code Tc is smaller than the value (Tr−predetermined amount) (“No” in step S33), the process is repeated from step S32.

ステップS51では、割り振り割合設定部22Dは、目標タイムコードTrに対応するタイムライン処理指数TEを求める。   In step S51, the allocation ratio setting unit 22D obtains a timeline processing index TE corresponding to the target time code Tr.

次いで、ステップS52では、CPU負荷検出部25はOS27のAPIを利用してCPU10の使用率を所定の時間間隔で計測する。CPU負荷検出部25は更に、計測されたCPU10の使用率の属する段階を特定し、以前の段階と同じか否かを判断する。段階が変わった場合、CPU負荷検出部25は、CPU10の使用率の属する段階が変化したことを変化後の段階の種類と共に割り振り割合設定部22Dに通知する。割り振り割合設定部22Dは、通知された使用率の段階に対応するCPU負荷指数LEを第2データベース26から検索する。   Next, in step S52, the CPU load detection unit 25 measures the usage rate of the CPU 10 at predetermined time intervals using the API of the OS 27. The CPU load detection unit 25 further identifies the stage to which the measured usage rate of the CPU 10 belongs, and determines whether or not it is the same as the previous stage. When the stage changes, the CPU load detection unit 25 notifies the allocation ratio setting unit 22D that the stage to which the usage rate of the CPU 10 belongs is changed along with the type of the stage after the change. The allocation ratio setting unit 22D searches the second database 26 for the CPU load index LE corresponding to the notified usage rate stage.

次いで、ステップ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に割り振られる。   Next, in step S53, the allocation ratio setting unit 22D compares the timeline processing index TE with the CPU load index LE. If the timeline processing index TE is larger than the CPU load index LE (“Yes” in step S53), the process proceeds to step S34. Thereby, similarly to steps S34 to S37 according to the third embodiment, the video data is allocated to both encoders 151 and 152 with the number of frames SF = 0 or the integer ratio HFI: SFI obtained from the timeline processing index TE. On the other hand, if the timeline processing index TE is equal to or less than the CPU load index LE (“No” in step S53), the process proceeds to step S43. As a result, as in steps S43 to S45 according to the fourth embodiment, the video data is allocated to both encoders 151 and 152 at the ratio of the number of frames corresponding to the stage of utilization of the CPU 10.

実施形態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の符号化処理速度が向上できる。   First, the encoding apparatus 100 according to the fifth embodiment predicts the transition of the timeline processing index TE based on the editing information by the CPU load estimation unit 23, and the unit time allocated to both encoders 151 and 152 by the allocation ratio setting unit 22D. The ratio HF: SF of the number of hit frames is set based on the transition of the predicted timeline processing index TE. Next, the encoding device 100 measures the usage rate stage of the CPU 10 in real time by the CPU load detecting unit 25, and calculates the actual load LE of the CPU 10 from the measured usage rate stage of the CPU 10 by the allocation ratio setting unit 22D. Evaluate and compare with the timeline processing index TE. When the actual load LE of the CPU 10 is smaller than the timeline processing index TE, the encoding apparatus 100 sets both the video data to be encoded at the frame number ratio HF: SF set based on the timeline processing index TE. The encoders 151 and 152 are assigned. On the other hand, when the actual load LE of the CPU 10 is equal to or higher than the timeline processing index TE, the encoding apparatus 100 determines the number of frames in which the video data to be encoded is associated with the actual load LE of the CPU 10 in advance. Are assigned to both encoders 151 and 152. As a result, even if the load on the CPU 10 fluctuates more than the load predicted from the content of the editing process by the editing unit 13, the encoding apparatus 100 waits for the encoders 151 and 152 to wait for the input of the encoding target frame. While shortening or suppressing the occurrence of the time, the encoding processing by both encoders 151 and 152 can be performed in parallel. As a result, the encoding apparatus 100 can perform the overall encoding process faster than the encoding process using only the hardware encoder 151. Thereby, the encoding processing speed of the video editing system 200 can be improved.

《実施形態6》
本発明の実施形態6による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
Embodiment 6
The encoding apparatus 100 according to the sixth embodiment of the present invention is incorporated in the non-linear video editing system 200 as in the first embodiment. The video editing system 200 is the same as that according to the first embodiment except for the encoding unit. Therefore, the description about Embodiment 1 is used for details of these similar elements.

図16は、本発明の実施形態6による符号化部11Eのブロック図である。図16を参照するに、符号化部11Eは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、処理速度測定部28、及び割り振り割合設定部22Eを含む。符号化部11Eは、処理速度測定部28と割り振り割合設定部22Eとを除き、図3に示されている要素と同様な要素を含む。図16ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細については図3についての説明を援用する。   FIG. 16 is a block diagram of an encoding unit 11E according to Embodiment 6 of the present invention. Referring to FIG. 16, the encoding unit 11E includes a data allocating unit 14, a hardware encoder 151, a software encoder 152, a synthesizing unit 16, an output unit 17, a processing speed measuring unit 28, and an allocation ratio setting unit 22E. Including. The encoding unit 11E includes the same elements as those shown in FIG. 3 except for the processing speed measurement unit 28 and the allocation ratio setting unit 22E. In FIG. 16, the same reference numerals as those shown in FIG. 3 are given to the similar elements, and the description of FIG.

処理速度測定部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の符号化処理速度を算定してもよい。   The processing speed measuring unit 28 functions when the CPU 10 controls other elements of the computer terminal according to a predetermined program. The processing speed measurement unit 28 encodes the data units to be encoded from the encoders 151 and 152 to the synthesis unit 16 from the time when the data units to be encoded are allocated to the encoders 151 and 152 by the data allocation unit 14. Measure the time to the point. Specifically, the processing speed measuring unit 28 first measures the time from the data allocating unit 14 to the synthesizing unit 16, the number of the data unit allocated to each encoder 151, 152, and the encoding of the data unit. It starts from the time when the address of the write destination is passed. Next, the processing speed measuring unit 28 ends the measurement of the time when the same address as that address is output from one of the encoders 151 and 152 to the combining unit 16. The processing speed measurement unit 28 further calculates the encoding processing speed of each of the encoders 151 and 152 from the measured time and passes it to the allocation ratio setting unit 22E. In addition, the processing speed measurement unit 28 may measure the bit rate of the video data output from the encoders 151 and 152, and calculate the encoding processing speed of the encoders 151 and 152 from the obtained bit rate.

割り振り割合設定部22Eは、ハードウェア・エンコーダ151による符号化処理速度HF1とソフトウェア・エンコーダ152による符号化処理速度SF1とに基づいて両エンコーダ151、152間での符号化処理速度の比HF1/SF1を求め、その時点で単位時間当たりにハードウェア・エンコーダ151とソフトウェア・エンコーダ152とに割り振られているフレーム数の比HF2/SF2と比べる。符号化処理速度の比HF1/SF1がフレーム数の比HF2/SF2とは異なる場合、割り振り割合設定部22Eは両エンコーダ151、152に単位時間当たりに割り振るフレーム数の比として符号化処理速度の比HF1/SF1をデータ割振部14に渡す。ここで、符号化処理速度の比は一般に整数比ではないので、割り振り割合設定部22Eは符号化処理速度の比を予め整数比で近似しておく。   The allocation ratio setting unit 22E, based on the encoding processing speed HF1 by the hardware encoder 151 and the encoding processing speed SF1 by the software encoder 152, is a ratio HF1 / SF1 of the encoding processing speed between the encoders 151 and 152. And the ratio HF2 / SF2 of the number of frames allocated to the hardware encoder 151 and the software encoder 152 per unit time at that time. When the ratio HF1 / SF1 of the encoding processing speed is different from the ratio HF2 / SF2 of the number of frames, the allocation ratio setting unit 22E uses the ratio of the encoding processing speed as the ratio of the number of frames allocated to both encoders 151 and 152 per unit time. HF1 / SF1 is passed to the data allocator 14. Here, since the ratio of the encoding processing speed is generally not an integer ratio, the allocation ratio setting unit 22E approximates the ratio of the encoding processing speed with an integer ratio in advance.

図17は、符号化部11Eによる映像データの割り振り処理のフローチャートである。処理速度測定部28、割り振り割合設定部22E、及びデータ割振部14は、図17のフローチャートに従って、両エンコーダ151、152に単位時間当たりに割り振られるフレーム数の比を、各エンコーダ151、152による符号化処理速度の比に調節する。以下、図17を参照しながら、その調節処理について説明する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。   FIG. 17 is a flowchart of video data allocation processing by the encoding unit 11E. The processing speed measurement unit 28, the allocation ratio setting unit 22E, and the data allocation unit 14 encode the ratio of the number of frames allocated to each encoder 151, 152 per unit time according to the flowchart of FIG. The ratio is adjusted to the ratio of the processing speed. Hereinafter, the adjustment process will be described with reference to FIG. The following processing can be started, for example, when the editing unit 13 starts outputting a video data stream to be encoded.

最初に、ステップS61では、処理速度測定部28は、データ割振部14によって各エンコーダ151、152に符号化対象のデータ単位が割り振られた時点から、そのデータ単位が符号化されて各エンコーダ151、152から合成部16に出力された時点までの時間を計測する。処理速度測定部28は更に、計測された時間から各エンコーダ151、152の符号化処理速度を算定し、割り振り割合設定部22Eに渡す。   First, in step S61, the processing speed measurement unit 28 encodes each encoder 151, 152 from the time when the data unit to be encoded is allocated to each encoder 151, 152 by the data allocator 14. The time from the time 152 is output to the combining unit 16 is measured. The processing speed measurement unit 28 further calculates the encoding processing speed of each of the encoders 151 and 152 from the measured time and passes it to the allocation ratio setting unit 22E.

次いで、ステップS62では、割り振り割合設定部22Eは、処理速度測定部28から受け取った符号化処理速度に基づいて両エンコーダ151、152間での符号化処理速度の比を求め、その比を整数比で近似する。割り振り割合設定部22Eは更に、符号化処理速度の比を、その時点で両エンコーダ151、152に単位時間当たりに割り振られているフレーム数の比と比べる。符号化処理速度の比HF1/SF1がフレーム数の比HF2/SF2とは異なる場合(ステップS62で“Yes”の場合)は処理がステップS63に進む。符号化処理速度の比HF1/SF1がフレーム数の比HF2/SF2と等しい場合(ステップS62で“No”の場合)は処理がステップS61に戻る。   Next, in step S62, the allocation ratio setting unit 22E obtains a ratio of the encoding processing speed between the encoders 151 and 152 based on the encoding processing speed received from the processing speed measuring unit 28, and calculates the ratio as an integer ratio. Approximate. The allocation ratio setting unit 22E further compares the ratio of the encoding processing speed with the ratio of the number of frames allocated to the encoders 151 and 152 per unit time at that time. If the ratio HF1 / SF1 of the encoding processing speed is different from the ratio HF2 / SF2 of the number of frames (“Yes” in step S62), the process proceeds to step S63. If the ratio HF1 / SF1 of the encoding processing speed is equal to the ratio HF2 / SF2 of the number of frames (“No” in step S62), the process returns to step S61.

ステップS63では、割り振り割合設定部22Eは、両エンコーダ151、152に単位時間当たりに割り振るフレーム数の比の新たな値として符号化処理速度の比をデータ割振部14に渡す。   In step S63, the allocation ratio setting unit 22E passes the encoding processing speed ratio to the data allocating unit 14 as a new value of the ratio of the number of frames to be allocated to both encoders 151 and 152 per unit time.

次いで、ステップS64では、データ割振部14は、新たに設定されたフレーム数の比で両エンコーダ151、152に符号化対象の映像データを割り振る。   Next, in step S64, the data allocator 14 allocates video data to be encoded to both encoders 151 and 152 at the newly set ratio of the number of frames.

次いで、ステップS65では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合(ステップS65で“No”の場合)は処理がステップS61に戻り、最後である場合(ステップS65で“Yes”の場合)は処理が終了する。ステップS61〜S65のループは所定の時間間隔で、各エンコーダ151、152から合成部16に映像データが出力されるごとに繰り返される。   Next, in step S65, the data allocator 14 determines whether the allocated frame is the last frame of the video data stream to be encoded. If the frame is not the last (“No” in step S65), the process returns to step S61. If the frame is the last (“Yes” in step S65), the process ends. The loop of steps S <b> 61 to S <b> 65 is repeated at predetermined time intervals each time video data is output from the encoders 151 and 152 to the combining unit 16.

実施形態6の符号化装置100は、処理速度測定部28によって、各エンコーダ151、152による実際の符号化処理速度を計測し、割り振り割合設定部22Eによって、両エンコーダ151、152に割り振られるフレーム数の割合を、両エンコーダ151、152間での実際の符号化処理速度の比に調節する。それにより、符号化装置100は、CPU10の負荷変動に伴うソフトウェア・エンコーダ152による符号化処理速度の変動に関わらず、合成部16が各エンコーダ151、152によって符号化されたフレームの入力を待つ時間を短縮しつつ、またはその時間の発生を抑制しつつ、両エンコーダ151、152による符号化処理を並行させることができる。その結果、符号化装置100はその全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。   In the encoding apparatus 100 of the sixth embodiment, the processing speed measurement unit 28 measures the actual encoding processing speed by the encoders 151 and 152, and the number of frames allocated to both encoders 151 and 152 by the allocation ratio setting unit 22E. Is adjusted to the ratio of the actual encoding processing speed between the encoders 151 and 152. As a result, the encoding apparatus 100 waits for the input of the frames encoded by the encoders 151 and 152 regardless of the variation in the encoding processing speed by the software encoder 152 due to the load variation of the CPU 10. The encoding processing by both encoders 151 and 152 can be performed in parallel while shortening the time or suppressing the occurrence of the time. As a result, the encoding apparatus 100 can perform the overall encoding process faster than the encoding process using only the hardware encoder 151. Thereby, the encoding processing speed of the video editing system 200 can be improved.

《実施形態7》
本発明の実施形態7による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
<< Embodiment 7 >>
The encoding apparatus 100 according to the seventh embodiment of the present invention is incorporated in the non-linear video editing system 200 as in the first embodiment. The video editing system 200 is the same as that according to the first embodiment except for the encoding unit. Therefore, the description about Embodiment 1 is used for details of these similar elements.

図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についての説明を援用する。   FIG. 18 is a block diagram of an encoding unit 11F according to Embodiment 7 of the present invention. Referring to FIG. 18, the encoding unit 11F includes a data allocator 14, a hardware encoder 151, a software encoder 152, a synthesizer 16, an output unit 17, a CPU load detector 25, an allocation ratio setting unit 22F, and a process. A speed measurement unit 28 and a second database 26 are included. The encoding unit 11F substantially has the elements according to the fourth embodiment in FIG. 12 and the elements according to the sixth embodiment in FIG. In FIG. 18, the same reference numerals as those shown in FIGS. 12 and 16 are given to the similar elements, and the description of FIGS. 3, 12, and 16 is used for the details.

割り振り割合設定部22Fは、実施形態6による割り振り割合設定部22Eと同様、処理速度測定部28から受け取った符号化処理速度に基づいて両エンコーダ151、152間での符号化処理速度の比HF1/SF1を求め、その時点で両エンコーダ151、152に単位時間当たりに割り振られているフレーム数の比HF2/SF2と比べる。その一方で、割り振り割合設定部22Fは、CPU負荷検出部25を通してCPU10の使用率を監視する。   The allocation ratio setting unit 22F, like the allocation ratio setting unit 22E according to the sixth embodiment, is based on the encoding processing speed received from the processing speed measuring unit 28, and the ratio HF1 / of the encoding processing speed between the encoders 151 and 152. SF1 is obtained and compared with the ratio HF2 / SF2 of the number of frames allocated per unit time to both encoders 151 and 152 at that time. On the other hand, the allocation ratio setting unit 22F monitors the usage rate of the CPU 10 through the CPU load detection unit 25.

符号化処理速度の比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に渡す。   When the ratio HF1 / SF1 of the encoding processing speed is different from the ratio HF2 / SF2 of the number of frames, the allocation ratio setting unit 22F sets the ratio HF3 / SF3 of the number of frames corresponding to the use rate stage of the CPU 10 to the second database 26. Search from. The allocation ratio setting unit 22F further compares the ratio HF3 / SF3 of the searched frame numbers with the ratio HF1 / SF1 of the encoding processing speed. When the ratio HF1 / SF1 of the encoding processing speed is larger than the ratio HF3 / SF3 of the number of searched frames, the allocation ratio setting unit 22F uses both encoders 151 and 152 in unit time as in the allocation ratio setting unit 22E according to the sixth embodiment. The ratio HF1 / SF1 of the encoding processing speed is passed to the data allocator 14 as the ratio of the number of frames allocated per hit. On the other hand, when the ratio HF1 / SF1 of the encoding processing speed is equal to or less than the ratio HF3 / SF3 of the number of searched frames, the allocation ratio setting unit 22F is similar to the allocation ratio setting unit 22D according to the fourth embodiment, and both encoders 151 and 152 are used. As the ratio of the number of frames to be allocated per unit time, the ratio HF3 / SF3 of the number of frames corresponding to the stage of usage rate of the CPU 10 is passed to the data allocator 14.

こうして、CPU10の使用率の示す負荷が両エンコーダ151、152間での符号化処理速度の比HF1/SF1の示す負荷と同程度以上である場合、割り振り割合設定部22Fは符号化対象の映像データを、符号化処理速度の比HF1/SF1ではなく、使用率の示す負荷に適したフレーム数の比HF3/SF3で両エンコーダ151、152に割り振る。   In this way, when the load indicated by the usage rate of the CPU 10 is equal to or greater than the load indicated by the ratio HF1 / SF1 of the encoding processing speed between the encoders 151 and 152, the allocation ratio setting unit 22F performs the video data to be encoded. Are assigned to both encoders 151 and 152 not at the ratio HF1 / SF1 of the encoding processing speed but at the ratio HF3 / SF3 of the number of frames suitable for the load indicated by the usage rate.

図19は、符号化部11Fによる映像データの割り振り処理のフローチャートである。処理速度測定部28、CPU負荷検出部25、割り振り割合設定部22F、及びデータ割振部14は、図19のフローチャートに従って、両エンコーダ151、152に単位時間当たりに割り振られるフレーム数の比を変化させる。以下、図19を参照しながら、そのフレーム数の設定処理について説明する。なお、図19は、図17に示されているステップと同様なステップを含む。従って、図19ではそれら同様なステップに対し、図17に示されている符号と同じ符号を付す。更に、それら同様なステップの詳細については、図17についての説明を援用する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。   FIG. 19 is a flowchart of video data allocation processing by the encoding unit 11F. The processing speed measurement unit 28, the CPU load detection unit 25, the allocation ratio setting unit 22F, and the data allocation unit 14 change the ratio of the number of frames allocated per unit time to both encoders 151 and 152 according to the flowchart of FIG. . Hereinafter, the setting process of the number of frames will be described with reference to FIG. Note that FIG. 19 includes the same steps as those shown in FIG. Accordingly, in FIG. 19, the same reference numerals as those shown in FIG. Furthermore, for the details of these similar steps, the description of FIG. 17 is incorporated. The following processing can be started, for example, when the editing unit 13 starts outputting a video data stream to be encoded.

最初に、ステップS61では、処理速度測定部28は、各エンコーダ151、152に符号化対象のデータ単位が割り振られた時点から、符号化されたそのデータ単位が合成部16に出力された時点までの時間に基づいて各エンコーダ151、152の符号化処理速度を算定し、割り振り割合設定部22Fに渡す。   First, in step S61, the processing speed measurement unit 28 starts from the time when the data unit to be encoded is allocated to each of the encoders 151 and 152 until the time when the encoded data unit is output to the synthesis unit 16. The encoding processing speed of each of the encoders 151 and 152 is calculated based on the above time, and passed to the allocation ratio setting unit 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に戻す。   Next, in step S62, the allocation ratio setting unit 22F obtains the ratio HF1 / SF1 of the encoding processing speed between the encoders 151 and 152 based on the encoding processing speed of each encoder 151 and 152, and the ratio is an integer. Approximate by ratio. The allocation ratio setting unit 22F further determines that the ratio HF1 / SF1 of the encoding processing speed is different from the ratio HF2 / SF2 of the number of frames allocated to both encoders 151 and 152 per unit time at that time (step S62). If “Yes” in step S71, the process proceeds to step S71. If the ratio HF1 / SF1 of the encoding processing speed is equal to the ratio HF2 / SF2 of the number of frames (“No” in step S62), the process proceeds to step S61. Return to.

次いで、ステップS71では、CPU負荷検出部25はOS27のAPIを利用してCPU10の使用率を所定の時間間隔で計測する。CPU負荷検出部25は更に、計測されたCPU10の使用率の属する段階を特定し、以前の段階と同じか否かを判断する。段階が変わった場合、CPU負荷検出部25は、CPU10の使用率の属する段階が変化したことを変化後の段階の種類と共に割り振り割合設定部22Fに通知する。割り振り割合設定部22Fは、通知された使用率の段階に対応するフレーム数の比HF3/SF3を第2データベース26から検索する。   Next, in step S71, the CPU load detection unit 25 measures the usage rate of the CPU 10 at predetermined time intervals using the API of the OS 27. The CPU load detection unit 25 further identifies the stage to which the measured usage rate of the CPU 10 belongs, and determines whether or not it is the same as the previous stage. When the stage changes, the CPU load detection unit 25 notifies the allocation ratio setting unit 22F that the stage to which the usage rate of the CPU 10 belongs is changed along with the type of the stage after the change. The allocation ratio setting unit 22F searches the second database 26 for the ratio HF3 / SF3 of the number of frames corresponding to the notified use rate stage.

次いで、ステップ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に割り振る。   Next, in step S72, the allocation ratio setting unit 22F compares the ratio HF3 / SF3 of the searched frame numbers with the ratio HF1 / SF1 of the encoding processing speed. If the ratio HF1 / SF1 of the encoding processing speed is larger than the ratio HF3 / SF3 of the searched frame numbers (“Yes” in step S72), the process proceeds to step S63. Thereby, the ratio HF1 / SF1 of the encoding processing speed is passed to the data allocator 14. On the other hand, when the ratio HF1 / SF1 of the encoding processing speed is equal to or less than the ratio HF3 / SF3 of the number of searched frames (in the case of “No” in step S72), the process proceeds to step S73. As a result, the ratio HF3 / SF3 of the number of retrieved frames is passed to the data allocator 14. Accordingly, in step S64, as in the sixth embodiment, the data allocator 14 allocates video data to both encoders 151 and 152 at the newly set ratio of the number of frames.

実施形態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の符号化処理速度が向上できる。   In the encoding apparatus 100 according to the seventh embodiment, first, the processing speed measurement unit 28 measures the actual encoding processing speeds of the encoders 151 and 152, and the allocation ratio setting unit 22F allocates the encoders 151 and 152 to both. The ratio of the number of frames is set to the ratio HF1 / SF1 of the actual encoding processing speed between both encoders 151 and 152. Next, the encoding apparatus 100 measures the CPU 10 usage rate step in real time by the CPU load detection unit 25, and the allocation ratio setting unit 22F measures the frame number ratio HF3 corresponding to the measured CPU 10 usage rate step. / SF3 is compared with the ratio HF1 / SF1 of the encoding processing speed. When the ratio HF3 / SF3 of the number of frames corresponding to the stage of utilization of the CPU 10 is smaller than the ratio HF1 / SF1 of the encoding processing speed, the encoding apparatus 100 converts the video data to be encoded into the ratio HF1 of the encoding processing speed. / SF1 assigns to both encoders 151 and 152. On the other hand, when the ratio HF3 / SF3 of the number of frames corresponding to the use rate stage of the CPU 10 is equal to or higher than the ratio HF1 / SF1 of the encoding processing speed, the encoding apparatus 100 uses the video data to be encoded. The encoders 151 and 152 are allocated with the ratio HF3 / SF3 of the number of frames corresponding to the rate stage. As a result, the encoding apparatus 100 waits for the input of the frames encoded by the encoders 151 and 152 regardless of the variation in the encoding processing speed by the software encoder 152 due to the load variation of the CPU 10. The encoding processing by both encoders 151 and 152 can be performed in parallel while shortening the time or suppressing the occurrence of the time. As a result, the encoding apparatus 100 can perform the overall encoding process faster than the encoding process using only the hardware encoder 151. Thereby, the encoding processing speed of the video editing system 200 can be improved.

《実施形態8》
本発明の実施形態8による符号化装置100は、実施形態1によるものと同様、ノンリニアビデオ編集システム200に組み込まれている。そのビデオ編集システム200は、符号化部を除いて実施形態1によるものと同様である。従って、それら同様な要素の詳細については実施形態1についての説明を援用する。
Embodiment 8
The encoding apparatus 100 according to the eighth embodiment of the present invention is incorporated in the non-linear video editing system 200 as in the first embodiment. The video editing system 200 is the same as that according to the first embodiment except for the encoding unit. Therefore, the description about Embodiment 1 is used for details of these similar elements.

図20は、本発明の実施形態8による符号化部11Gのブロック図である。図20を参照するに、符号化部11Gは、データ割振部14、ハードウェア・エンコーダ151、ソフトウェア・エンコーダ152、合成部16、出力部17、及び切換位置検出部29を含む。符号化部11Gは、切換位置検出部29を除き、図3に示されている要素と同様な要素を含む。図20ではそれら同様な要素に対し、図3に示されている符号と同じ符号を付し、その詳細については図3についての説明を援用する。   FIG. 20 is a block diagram of an encoding unit 11G according to Embodiment 8 of the present invention. Referring to FIG. 20, the encoding unit 11G includes a data allocating unit 14, a hardware encoder 151, a software encoder 152, a combining unit 16, an output unit 17, and a switching position detecting unit 29. The encoding unit 11G includes the same elements as those shown in FIG. 3 except for the switching position detection unit 29. In FIG. 20, the same reference numerals as those shown in FIG. 3 are given to the same elements, and the description of FIG. 3 is used for the details thereof.

切換位置検出部29は、CPU10が所定のプログラムに従ってコンピュータ端末の他の要素を制御することによって機能する。切換位置検出部29は、編集部13からメモリ部20に書き込まれた符号化対象の映像データストリームの中からシーンの切換位置又は編集処理の種類の変更位置を検出し、その検出に応じて検出信号を生成する。   The switching position detector 29 functions when the CPU 10 controls other elements of the computer terminal according to a predetermined program. The switching position detection unit 29 detects a scene switching position or a change position of the type of editing processing from the video data stream to be encoded written from the editing unit 13 to the memory unit 20, and detects it according to the detection. Generate a signal.

切換位置検出部29は編集部13による編集処理に先立ち、編集部13から編集情報を受け取る。切換位置検出部29はその編集情報に基づき、編集部13によって編集される映像データストリームの中から、シーンが切り替わるフレームのタイムコードを切換位置として設定し、編集対象の映像データの復号方式やエフェクト処理の内容など、編集処理の内容が切り替わるフレームのタイムコードを変更位置として設定する。   Prior to the editing process by the editing unit 13, the switching position detection unit 29 receives editing information from the editing unit 13. Based on the editing information, the switching position detection unit 29 sets the time code of the frame at which the scene switches from the video data stream edited by the editing unit 13 as a switching position, and decodes the video data to be edited and effects The time code of the frame where the content of the editing process such as the content of the process is switched is set as the change position.

編集部13からメモリ部20に符号化対象の1フレームが書き込まれるごとに、データ割振部14はそのフレームからタイムコードを読み取って切換位置検出部29に渡す。切換位置検出部29はそのタイムコードを、各切換位置及び各変更位置を示すタイムコードと比較する。データ割振部14からのタイムコードがいずれかの切換位置又は変更位置(以下、切換/変更位置と略記する)を示すタイムコードに一致したとき、切換位置検出部29は検出信号をデータ割振部14に出力する。データ割振部14はその検出信号に応じてそのフレーム以降のフレームの出力先を、直前のフレームが出力されるエンコーダとは別のエンコーダに切り換える。   Each time one frame to be encoded is written from the editing unit 13 to the memory unit 20, the data allocating unit 14 reads the time code from the frame and passes it to the switching position detecting unit 29. The switching position detector 29 compares the time code with a time code indicating each switching position and each change position. When the time code from the data allocator 14 matches a time code indicating any switching position or change position (hereinafter abbreviated as a switch / change position), the switch position detector 29 sends a detection signal to the data allocator 14. Output to. The data allocator 14 switches the output destination of the frames subsequent to that frame to an encoder different from the encoder that outputs the immediately preceding frame in accordance with the detection signal.

なお、2つの連続する切換/変更位置の間に含まれる一連の映像データが大きい場合、切換位置検出部29はその映像データの中から、いずれかのフレームの境目を新たな切換位置として設定してもよい。それにより、各エンコーダ151、152に割り振られる映像データ用のバッファ領域を小さく維持することができる。更に、両エンコーダ151、152の並行使用による符号化処理の高速化の確実性を高めるために、切換位置検出部29は両エンコーダ151、152に割り振られる映像データの割合を調節するとよい。   When a series of video data included between two successive switching / change positions is large, the switching position detecting unit 29 sets a boundary of any frame as a new switching position from the video data. May be. Thereby, the buffer area for video data allocated to the encoders 151 and 152 can be kept small. Furthermore, in order to increase the reliability of speeding up the encoding process by using both encoders 151 and 152 in parallel, the switching position detector 29 may adjust the ratio of video data allocated to both encoders 151 and 152.

図21は、符号化部11Gによる映像データの割り振り処理のフローチャートである。切換位置検出部29とデータ割振部14とは、図21のフローチャートに従って、符号化対象の映像データを切換/変更位置で両エンコーダ151、152に割り振る。以下、図21を参照しながら、その割り振り処理について説明する。以下の処理は、例えば編集部13が符号化対象の映像データストリームを出力し始めたときに開始することができる。   FIG. 21 is a flowchart of video data allocation processing by the encoding unit 11G. The switching position detector 29 and the data allocator 14 allocate the video data to be encoded to both encoders 151 and 152 at the switching / change position according to the flowchart of FIG. Hereinafter, the allocation process will be described with reference to FIG. The following processing can be started, for example, when the editing unit 13 starts outputting a video data stream to be encoded.

最初に、ステップS81では、切換位置検出部29は編集部13から編集情報を受け取り、その編集情報に基づき、編集部13によって編集される映像データストリームについて、切換/変更位置を示すタイムコードを設定する。以下、各タイムコードTcに対し、再生時間の早い順に番号sw=0、1、2、…、を振っておく。   First, in step S81, the switching position detection unit 29 receives editing information from the editing unit 13, and sets a time code indicating a switching / change position for the video data stream edited by the editing unit 13 based on the editing information. To do. Hereinafter, numbers sw = 0, 1, 2,... Are assigned to each time code Tc in the order of the reproduction time.

次いで、ステップS82では、切換位置検出部29は番号swを“0”に初期化する。   Next, in step S82, the switching position detector 29 initializes the number sw to “0”.

次いで、ステップS83では、データ割振部14は符号化対象の映像データの出力先をハードウェア・エンコーダ151に初期化する。   Next, in step S83, the data allocator 14 initializes the output destination of the video data to be encoded to the hardware encoder 151.

次いで、ステップS84では、編集部13がメモリ部20に符号化対象の1フレームを書き込むごとに、データ割振部14はそのフレームからタイムコードTcを読み取って切換位置検出部29に渡す。   Next, in step S84, each time the editing unit 13 writes one frame to be encoded in the memory unit 20, the data allocating unit 14 reads the time code Tc from the frame and passes it to the switching position detecting unit 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に割り振る。   Next, in step S85, the switching position detector 29 compares the time code Tc received from the data allocator 14 with the time code T (sw) of the sw-th switching / change position. If the time code Tc from the data allocator 14 is equal to or greater than the time code T (sw) at the sw-th switching / changing position (“Yes” in step S85), the process proceeds to step S86. If the time code Tc is smaller than the time code T (sw) at the sw-th change / change position (“No” in step S85), the process returns to step S84. In that case, the data allocator 14 allocates the frame of the time code Tc to the hardware encoder 151.

次いで、ステップS86では、切換位置検出部29は検出信号を生成する。データ割振部14はその検出信号に応じ、タイムコードTc以降のフレームをソフトウェア・エンコーダ152に割り振る。   Next, in step S86, the switching position detector 29 generates a detection signal. The data allocator 14 allocates the frames after the time code Tc to the software encoder 152 according to the detection signal.

次いで、ステップS87では、編集部13がメモリ部20に符号化対象の1フレームを書き込むごとに、データ割振部14はそのフレームからタイムコードTcを読み取って切換位置検出部29に渡す。   Next, in step S87, each time the editing unit 13 writes one frame to be encoded in the memory unit 20, the data allocating unit 14 reads the time code Tc from the frame and passes it to the switching position detecting unit 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に割り振る。   Next, in step S88, the switching position detector 29 compares the time code Tc received from the data allocator 14 with the time code T (sw + 1) of the sw + 1th switching / changing position. When the time code Tc from the data allocator 14 is equal to or greater than the time code T (sw + 1) at the sw + 1th switching / changing position (“Yes” in step S88), the process proceeds to step S89. If the time code Tc is smaller than the time code T (sw + 1) at the sw + 1-th switching / change position (“No” in step S88), the process returns to step S87. In that case, the data allocator 14 allocates the frame of the time code Tc to the software encoder 152.

次いで、ステップS89では、切換位置検出部29は検出信号を生成する。データ割振部14はその検出信号に応じ、タイムコードTc以降のフレームをハードウェア・エンコーダ151に割り振る。   Next, in step S89, the switching position detector 29 generates a detection signal. The data allocator 14 allocates the frames after the time code Tc to the hardware encoder 151 according to the detection signal.

次いで、ステップS90では、切換位置検出部29は番号swを“2”だけインクリメントする。   Next, in step S90, the switching position detector 29 increments the number sw by “2”.

次いで、ステップS91では、データ割振部14は、割り振ったフレームが符号化対象の映像データストリームの最後のフレームか否かを判定する。そのフレームが最後でない場合(ステップS91で“No”の場合)は処理がステップS84から繰り返され、最後である場合(ステップS91で“Yes”の場合)は処理が終了する。   Next, in step S91, the data allocator 14 determines whether the allocated frame is the last frame of the video data stream to be encoded. If the frame is not the last (“No” in step S91), the process is repeated from step S84, and if it is the last (“Yes” in step S91), the process ends.

実施形態8の符号化装置100は、切換位置検出部29によって編集情報に基づき、符号化対象の映像データストリームについて切換/変更位置を示すタイムコードT(sw)を設定し、符号化対象のフレームのタイムコードTcが切換/変更位置のタイムコードT(sw)に達するごとに、そのフレームの出力先を両エンコーダ151、152に交互に切り換える。すなわち、実施形態8の符号化装置100は符号化対象の映像データストリームを切換/変更位置で両エンコーダ151、152に割り振る。それにより、符号化装置100は、一連のシーン、又は同じ編集処理が継続されている映像データの全体を同じエンコーダで符号化するので、その画質を実質的に均一にできる。その上、エンコーダ151、152の切換に起因する画質の変化は多少なりとも存在したとしても、切換/変更位置に限られるので、視聴者には感知されにくい。その結果、符号化装置100は、視聴者が感じる映像データストリームの画質を均一に保ちつつ、両エンコーダ151、152による符号化処理を並行させて、符号化装置100全体による符号化処理を、ハードウェア・エンコーダ151のみによる符号化処理よりも高速にできる。これにより、ビデオ編集システム200の符号化処理速度が向上できる。   The encoding apparatus 100 according to the eighth embodiment sets the time code T (sw) indicating the switching / change position for the video data stream to be encoded based on the editing information by the switching position detection unit 29, and sets the encoding target frame. Each time the time code Tc reaches the time code T (sw) at the switching / change position, the output destination of the frame is alternately switched between the encoders 151 and 152. That is, the encoding apparatus 100 according to the eighth embodiment allocates the video data stream to be encoded to both encoders 151 and 152 at the switching / change position. Thereby, since the encoding apparatus 100 encodes a series of scenes or the entire video data on which the same editing process is continued with the same encoder, the image quality can be made substantially uniform. In addition, even if there is any change in the image quality due to the switching of the encoders 151 and 152, it is limited to the switching / change position, so it is difficult for the viewer to detect. As a result, the encoding device 100 performs the encoding processing by the entire encoding device 100 in parallel by performing the encoding processing by both the encoders 151 and 152 while keeping the image quality of the video data stream felt by the viewer uniform. This can be faster than the encoding process using only the wear encoder 151. Thereby, the encoding processing speed of the video editing system 200 can be improved.

本発明の実施形態による符号化部は上記の実施形態1〜実施形態8の他にも、実施形態1〜8の中から複数を組み合わせたものであってもよい。例えば、実施形態5と、実施形態7とを組み合わせてもよく、実施形態8と、実施形態2〜7のいずれかとを組み合わせてもよい。   In addition to the above-described first to eighth embodiments, the encoding unit according to the embodiment of the present invention may be a combination of a plurality of the first to eighth embodiments. For example, Embodiment 5 and Embodiment 7 may be combined, or Embodiment 8 and any of Embodiments 2 to 7 may be combined.

本発明の実施形態による符号化装置100は上記のビデオ編集システム200の他に、ビデオキャプチャーやディジタルビデオカメラにリアルタイムエンコーダとして実装されてもよい。その場合、符号化装置は、図3に示されている構成において、編集部13に代えて入力部を含む。入力部は、DVDなどのリムーバブルディスク又はカメラから映像データを取り込む。入力部は、ネットワークインタフェースを通してネットワーク上のリソースから映像データを取り込んでもよい。入力部は、取り込まれた映像データをデータ割振部14に渡す。なお、コンピュータ端末のCPUはハードウェア・エンコーダと同じボードに実装されてもよい。   The encoding apparatus 100 according to the embodiment of the present invention may be implemented as a real-time encoder in a video capture or digital video camera in addition to the video editing system 200 described above. In that case, the encoding apparatus includes an input unit instead of the editing unit 13 in the configuration shown in FIG. The input unit takes in video data from a removable disk such as a DVD or a camera. The input unit may capture video data from resources on the network through the network interface. The input unit passes the captured video data to the data allocator 14. The CPU of the computer terminal may be mounted on the same board as the hardware encoder.

なお、以上の説明に関してさらに以下の項目を開示する。
(項目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データを符号化する、前記プログラム。
In addition, the following items are further disclosed regarding the above description.
(Item 1)
An encoding device that encodes AV data including audio data and / or video data,
CPU,
A hardware encoder that is configured by hardware for encoding processing and encodes a part of the AV data;
A software encoder that encodes another part of the AV data in parallel with the encoding process by the hardware encoder using the CPU;
A data allocator for allocating the AV data to the hardware encoder and the software encoder;
A synthesizing unit that arranges AV data encoded by each of the hardware encoder and the software encoder in a predetermined order and combines them into a series of encoded AV data;
An output unit for outputting the series of encoded AV data;
With
The encoding apparatus, which encodes AV data at an encoding processing speed larger than an encoding processing speed only by the hardware encoder.
(Item 2)
The encoding apparatus according to item 1, wherein encoding methods of the hardware encoder and the software encoder are common.
(Item 3)
The encoding apparatus according to item 1, wherein AV data encoded by each of the hardware encoder and the software encoder is not in a predictive relationship with each other.
(Item 4)
A buffer connected between the data allocator and the hardware encoder, storing AV data allocated to the hardware encoder by the data allocator, and supplying AV data to the hardware encoder; Prepared,
The data allocator obtains free information of the buffer and allocates the AV data to the software encoder based on the free information;
Item 4. The encoding device according to Item 1.
(Item 5)
Data representing a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is supplied to the data allocator.
The data allocator allocates AV data to the hardware encoder and the software encoder based on the data;
Item 4. The encoding device according to Item 1.
(Item 6)
The CPU also performs processing other than encoding processing on the AV data,
A CPU load estimator for predicting the CPU load caused by the other processing in correspondence with the AV data;
According to the predicted CPU load, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. An allocation ratio setting unit for supplying data to the data allocating unit;
Further comprising
The data allocator allocates AV data to the hardware encoder and the software encoder based on the data;
Item 4. The encoding device according to Item 1.
(Item 7)
7. The encoding apparatus according to item 6, wherein the allocation ratio setting unit detects a load on the CPU and changes the ratio based on the detected load.
(Item 8)
The CPU load is detected, and the ratio of the number of data units per unit time between the AV data allocated to the hardware encoder and the AV data allocated to the software encoder is calculated according to the detected load. An allocation ratio setting unit that supplies data representing the ratio to the data allocation unit;
The data allocator allocates AV data to the hardware encoder and the software encoder based on the data;
Item 4. The encoding device according to Item 1.
(Item 9)
A processing speed measuring unit for measuring the encoding processing speed by the hardware encoder and the encoding processing speed by the software encoder;
According to the measured encoding processing speed, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. An allocation ratio setting unit for supplying data to the data allocating unit;
Further comprising
The data allocator allocates AV data to the hardware encoder and the software encoder based on the data;
Item 4. The encoding device according to Item 1.
(Item 10)
The encoding device according to item 9, wherein the allocation ratio setting unit detects a load of the CPU and changes the ratio according to the detected load.
(Item 11)
A switching position detector for detecting a scene switching position included in the AV data or a change position of the type of editing processing and generating a detection signal in response to the detection;
The data allocator switches the output destination of AV data between the hardware encoder and the software encoder according to the detection signal.
Item 4. The encoding device according to Item 1.
(Item 12)
CPU,
An editing unit for editing AV data including audio data and / or video data;
A hardware encoder configured with a circuit for encoding processing and encoding a part of the edited AV data;
A software encoder that encodes another part of the edited AV data in parallel with the encoding process by the hardware encoder using the CPU;
A data allocator for allocating the edited AV data to the hardware encoder and the software encoder;
A synthesizing unit that arranges AV data encoded by each of the hardware encoder and the software encoder in a predetermined order and combines them into a series of encoded AV data;
An output unit for outputting the series of encoded AV data;
With
A video editing system for encoding AV data at an encoding processing speed larger than an encoding processing speed by only the hardware encoder.
(Item 13)
Item 13. The video editing system according to Item 12, wherein the encoding method by the hardware encoder and the software encoder is common.
(Item 14)
Item 13. The video editing system according to Item 12, wherein AV data encoded by each of the hardware encoder and the software encoder is not in a predictive relationship with each other.
(Item 15)
A buffer connected between the data allocator and the hardware encoder, storing AV data allocated to the hardware encoder by the data allocator, and supplying AV data to the hardware encoder; Prepared,
The data allocator obtains free information of the buffer and allocates the AV data to the software encoder based on the free information;
Item 13. The video editing system according to Item 12.
(Item 16)
Data representing a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is supplied to the data allocator.
13. The video editing system according to item 12, wherein the data allocator allocates AV data to the hardware encoder and the software encoder based on the data.
(Item 17)
The editing unit has editing information set by the user for the AV data to be edited,
A CPU load estimator for predicting a load on the CPU when the editing unit executes an editing process based on editing information;
According to the predicted CPU load, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. An allocation ratio setting unit for supplying data to the data allocating unit;
Further comprising
The data allocator allocates the AV data to the hardware encoder and the software encoder based on the data;
Item 13. The video editing system according to Item 12.
(Item 18)
18. The video editing system according to item 17, wherein the allocation ratio setting unit detects a load on the CPU and changes the ratio based on the detected load.
(Item 19)
The CPU load is detected, and the ratio of the number of data units per unit time between the AV data allocated to the hardware encoder and the AV data allocated to the software encoder is calculated according to the detected load. , An allocation ratio setting unit that supplies data representing the ratio to the data allocation unit,
Further comprising
The data allocator allocates the AV data to the hardware encoder and the software encoder based on the data;
Item 13. The video editing system according to Item 12.
(Item 20)
A processing speed measuring unit for measuring the encoding processing speed by the hardware encoder and the encoding processing speed by the software encoder;
According to the measured encoding processing speed, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. An allocation ratio setting unit for supplying data to the data allocating unit;
Further comprising
The data allocator allocates the AV data to the hardware encoder and the software encoder based on the data;
Item 13. The video editing system according to Item 12.
(Item 21)
21. The video editing system according to item 20, wherein the allocation ratio setting unit detects a load on the CPU and changes the ratio according to the detected load.
(Item 22)
The editing unit detects a scene switching position included in AV data obtained by executing editing processing based on editing information or a change position of the type of editing processing from the editing information, and generates a predetermined detection signal. A frame switching position detection unit for performing,
The data allocator switches the output destination of AV data between the hardware encoder and the software encoder according to the detection signal.
Item 13. The video editing system according to Item 12.
(Item 23)
A hardware encoder that encodes a part of AV data, and a software encoder that encodes another part of the AV data by using a CPU. A method for encoding video data using:
Receiving the AV data;
Allocating the AV data to the hardware encoder and the software encoder;
Encoding the AV data respectively allocated by the hardware encoder and the software encoder;
Arranging the AV data encoded by each of the hardware encoder and the software encoder in a predetermined order and synthesizing the AV data into a series of encoded AV data;
Outputting the series of encoded AV data;
Including
The method, wherein the AV data is encoded at an encoding processing speed larger than an encoding processing speed only by the hardware encoder.
(Item 24)
The step of allocating the AV data includes
Storing data allocated to the hardware encoder in a buffer;
Supplying AV data from the buffer to the hardware encoder;
Obtaining free information in the buffer;
Allocating the AV data to the software encoder based on free space information of the buffer;
24. The method according to item 23, comprising:
(Item 25)
The step of allocating the AV data includes
Receiving data representing a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder;
Allocating AV data to the hardware encoder and the software encoder based on the data;
24. The method according to item 23, comprising:
(Item 26)
During the encoding step, the CPU also performs other processing associated with the AV data other than encoding by the software encoder,
Predicting the load of the CPU by the other processing in correspondence with the AV data;
According to the predicted CPU load, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. Outputting data to represent;
Further including
24. The method according to item 23, wherein the step of allocating the AV data allocates AV data to the hardware encoder and the software encoder based on the data.
(Item 27)
27. The method according to item 26, wherein the step of allocating the AV data further includes a step of detecting a load on the CPU and changing the ratio based on the detected load.
(Item 28)
Editing the AV data into a series of AV data to be encoded based on editing information set by a user, the step being performed in parallel with the encoding step;
Predicting the CPU load when executing the editing process based on the editing information of the editing step in correspondence with a series of AV data to be encoded;
According to the predicted CPU load, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. Outputting data to represent;
Further including
24. The method according to item 23, wherein the step of allocating the AV data allocates AV data to the hardware encoder and the software encoder based on the data.
(Item 29)
The CPU load is detected, and the ratio of the number of data units per unit time between the AV data allocated to the hardware encoder and the AV data allocated to the software encoder is calculated according to the detected load. Further comprising providing data representing the percentage,
24. The method according to item 23, wherein the step of allocating the AV data allocates AV data to the hardware encoder and the software encoder based on the data.
(Item 30)
Measuring the encoding processing speed by the hardware encoder and the encoding processing speed by the software encoder;
Data representing the ratio of the number of data units per unit time calculated between the AV data allocated to the hardware encoder and the AV data allocated to the software encoder according to the measured code processing speed Supplying a step;
Further comprising
24. The method of item 23, wherein allocating the AV data includes allocating AV data to the hardware encoder and the software encoder based on the data.
(Item 31)
The method according to item 30, wherein the step of allocating the AV data further includes a step of detecting a load of the CPU and changing the ratio according to the detected load.
(Item 32)
Detecting a scene switching position included in the AV data or a change position of the type of editing processing, and further generating a predetermined detection signal;
24. The method according to item 23, wherein the step of allocating the AV data includes a step of switching an output destination of AV data between the hardware encoder and the software encoder in accordance with the detection signal.
(Item 33)
Editing the AV data into a series of AV data to be encoded based on editing information set by a user;
Detecting a scene switching position included in the series of AV data to be encoded or a change position of the type of editing process, and generating a predetermined detection signal;
Further comprising
24. The method according to item 23, wherein the step of allocating the AV data includes a step of switching an output destination of AV data between the hardware encoder and the software encoder in accordance with the detection signal.
(Item 34)
A program for encoding AV data including audio data and / or video data,
CPU,
A hardware encoder configured with hardware dedicated to encoding processing and encoding a part of AV data;
A software encoder that encodes another part of the AV data using the CPU;
In a device with
Receiving the AV data;
Allocating the AV data to the hardware encoder and the software encoder;
Parallelizing the encoding process for the AV data by the hardware encoder and the software encoder;
Arranging AV data encoded by each of the hardware encoder and the software encoder in a predetermined order and synthesizing the AV data into one encoded AV data;
Outputting the encoded AV data;
A program for executing
The program for encoding AV data at an encoding processing speed larger than an encoding processing speed only by the hardware encoder.

本発明の実施形態1によるビデオ編集システム及び符号化装置の構成を示すブロック図である。It is a block diagram which shows the structure of the video editing system and encoding apparatus by Embodiment 1 of this invention. 図1に示されているハードウェア・エンコーダが実装されたボードの概略的な平面図である。FIG. 2 is a schematic plan view of a board on which the hardware encoder shown in FIG. 1 is mounted. 本発明の実施形態によるビデオ編集システムのソフトウェア構成を示すブロック図である。It is a block diagram which shows the software structure of the video editing system by embodiment of this invention. 本発明の実施形態1によるビデオ編集システムに表示される編集ウィンドウの一例を示す図である。It is a figure which shows an example of the edit window displayed on the video editing system by Embodiment 1 of this invention. 本発明の実施形態1による符号化部のブロック図である。It is a block diagram of the encoding part by Embodiment 1 of this invention. 図5に示されている符号化部による映像データの割り振り処理のフローチャートである。6 is a flowchart of video data allocation processing by the encoding unit shown in FIG. 5. 本発明の実施形態2による符号化部のブロック図である。It is a block diagram of the encoding part by Embodiment 2 of this invention. 本発明の実施形態3による符号化部のブロック図である。It is a block diagram of the encoding part by Embodiment 3 of this invention. 図8に示されている第1データベースの示すCPU負荷指数の一例である。FIG. 9 is an example of a CPU load index indicated by the first database shown in FIG. 8. FIG. 図8に示されている符号化部による、映像データを割り振る割合の設定処理のフローチャートである。It is a flowchart of the setting process of the ratio which allocates the video data by the encoding part shown by FIG. 図8に示されている符号化部による映像データの割り振り処理のフローチャートである。9 is a flowchart of video data allocation processing by the encoding unit shown in FIG. 8. 本発明の実施形態4による符号化部のブロック図である。It is a block diagram of the encoding part by Embodiment 4 of this invention. 図12に示されている符号化部による映像データの割り振り処理のフローチャートである。13 is a flowchart of video data allocation processing by the encoding unit shown in FIG. 12. 本発明の実施形態5による符号化部のブロック図である。It is a block diagram of the encoding part by Embodiment 5 of this invention. 図14に示されている符号化部による映像データの割り振り処理のフローチャートである。It is a flowchart of the allocation process of the video data by the encoding part shown by FIG. 本発明の実施形態6による符号化部のブロック図である。It is a block diagram of the encoding part by Embodiment 6 of this invention. 図16に示されている符号化部による映像データの割り振り処理のフローチャートである。FIG. 17 is a flowchart of video data allocation processing by the encoding unit shown in FIG. 16. FIG. 本発明の実施形態7による符号化部のブロック図である。It is a block diagram of the encoding part by Embodiment 7 of this invention. 図18に示されている符号化部による映像データの割り振り処理のフローチャートである。19 is a flowchart of video data allocation processing by the encoding unit shown in FIG. 18. 本発明の実施形態8による符号化部のブロック図である。It is a block diagram of the encoding part by Embodiment 8 of this invention. 図20に示されている符号化部による映像データの割り振り処理のフローチャートである。FIG. 21 is a flowchart of video data allocation processing by the encoding unit illustrated in FIG. 20. FIG.

符号の説明Explanation of symbols

10 CPU
11、11A〜11G 符号化部
13 編集部
14 データ割振部
151 ハードウェア・エンコーダ
152 ソフトウェア・エンコーダ
16 合成部
17 出力部
22A〜22F 割り振り割合設定部
23 CPU負荷推定部
25 CPU負荷検出部
28 処理速度測定部
100 符号化装置
200 ビデオ編集システム
10 CPU
11, 11A to 11G Encoding unit 13 Editing unit 14 Data allocation unit 151 Hardware encoder 152 Software encoder 16 Synthesis unit 17 Output units 22A to 22F Allocation ratio setting unit 23 CPU load estimation unit 25 CPU load detection unit 28 Processing speed Measuring unit 100 Encoding device 200 Video editing system

Claims (16)

音声データおよび/または映像データを含むAVデータを符号化する符号化装置であって、
CPUと、
符号化処理用のハードウェアで構成され、前記AVデータの一部を符号化するハードウェア・エンコーダと、
前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、
前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、
前記一連の符号化されたAVデータを出力する出力部と、
を備え、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、前記符号化装置。
An encoding device that encodes AV data including audio data and / or video data,
CPU,
A hardware encoder that is configured by hardware for encoding processing and encodes a part of the AV data;
A software encoder that encodes another part of the AV data in parallel with the encoding process by the hardware encoder using the CPU;
A data allocator for allocating the AV data to the hardware encoder and the software encoder;
A synthesizing unit that arranges AV data encoded by each of the hardware encoder and the software encoder in a predetermined order and combines them into a series of encoded AV data;
An output unit for outputting the series of encoded AV data;
With
The encoding apparatus, which encodes AV data at an encoding processing speed larger than an encoding processing speed only by the hardware encoder.
前記データ割振部と前記ハードウェア・エンコーダとの間に接続され、前記データ割振部によって前記ハードウェア・エンコーダに割り振られるAVデータを記憶し、前記ハードウェア・エンコーダにAVデータを供給するバッファを更に備え、
前記データ割振部は、前記バッファの空き情報を取得し、その空き情報に基づいて前記AVデータを前記ソフトウェア・エンコーダに割り振る、
請求項1に記載の符号化装置。
A buffer connected between the data allocator and the hardware encoder, storing AV data allocated to the hardware encoder by the data allocator, and supplying AV data to the hardware encoder; Prepared,
The data allocator obtains free information of the buffer and allocates the AV data to the software encoder based on the free information;
The encoding device according to claim 1.
前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を表すデータが前記データ割振部に供給され、
前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項1に記載の符号化装置。
Data representing a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is supplied to the data allocator.
The data allocator allocates AV data to the hardware encoder and the software encoder based on the data;
The encoding device according to claim 1.
前記CPUは、前記AVデータについて符号化処理以外の他の処理も行い、
前記他の処理による前記CPUの負荷を、前記AVデータに対応させて予測するCPU負荷推定部と、
前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項1に記載の符号化装置。
The CPU also performs processing other than encoding processing on the AV data,
A CPU load estimator for predicting the CPU load caused by the other processing in correspondence with the AV data;
According to the predicted CPU load, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. An allocation ratio setting unit for supplying data to the data allocating unit;
Further comprising
The data allocator allocates AV data to the hardware encoder and the software encoder based on the data;
The encoding device according to claim 1.
前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に基づいて前記割合を変更する、請求項4に記載の符号化装置。   The encoding apparatus according to claim 4, wherein the allocation ratio setting unit detects a load of the CPU and changes the ratio based on the detected load. 前記CPUの負荷を検出し、検出された負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部を更に備え、
前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項1に記載の符号化装置。
The CPU load is detected, and the ratio of the number of data units per unit time between the AV data allocated to the hardware encoder and the AV data allocated to the software encoder is calculated according to the detected load. An allocation ratio setting unit that supplies data representing the ratio to the data allocation unit;
The data allocator allocates AV data to the hardware encoder and the software encoder based on the data;
The encoding device according to claim 1.
前記ハードウェア・エンコーダによる符号化処理速度と前記ソフトウェア・エンコーダによる符号化処理速度とを測定する処理速度測定部と、
前記測定された符号化処理速度に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部が、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項1に記載の符号化装置。
A processing speed measuring unit for measuring the encoding processing speed by the hardware encoder and the encoding processing speed by the software encoder;
According to the measured encoding processing speed, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. An allocation ratio setting unit for supplying data to the data allocating unit;
Further comprising
The data allocator allocates AV data to the hardware encoder and the software encoder based on the data;
The encoding device according to claim 1.
前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に応じて前記割合を変更する、請求項7に記載の符号化装置。   The encoding apparatus according to claim 7, wherein the allocation ratio setting unit detects a load on the CPU and changes the ratio according to the detected load. 前記AVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出し、その検出に応じて検出信号を生成する切換位置検出部を更に備え、
前記データ割振部は、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
請求項1に記載の符号化装置。
A switching position detector for detecting a scene switching position included in the AV data or a change position of the type of editing processing and generating a detection signal in response to the detection;
The data allocator switches the output destination of AV data between the hardware encoder and the software encoder according to the detection signal.
The encoding device according to claim 1.
CPUと、
音声データおよび/または映像データを含むAVデータを編集する編集部と、
符号化処理用の回路で構成され、前記編集されたAVデータの一部を符号化するハードウェア・エンコーダと、
前記CPUを利用して、前記ハードウェア・エンコーダによる符号化処理と並行して、前記編集されたAVデータの他の一部を符号化するソフトウェア・エンコーダと、
前記編集されたAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るデータ割振部と、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成する合成部と、
前記一連の符号化されたAVデータを出力する出力部と、
を備え、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化するビデオ編集システム。
CPU,
An editing unit for editing AV data including audio data and / or video data;
A hardware encoder configured with a circuit for encoding processing and encoding a part of the edited AV data;
A software encoder that encodes another part of the edited AV data in parallel with the encoding process by the hardware encoder using the CPU;
A data allocator for allocating the edited AV data to the hardware encoder and the software encoder;
A synthesizing unit that arranges AV data encoded by each of the hardware encoder and the software encoder in a predetermined order and combines them into a series of encoded AV data;
An output unit for outputting the series of encoded AV data;
With
A video editing system for encoding AV data at an encoding processing speed larger than an encoding processing speed by only the hardware encoder.
前記編集部は、編集対象のAVデータに対してユーザにより設定された編集情報を有し、
前記編集部が編集情報に基づいて編集処理を実行するときのCPUの負荷を予測するCPU負荷推定部と、
前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを前記データ割振部に供給する割り振り割合設定部と、
を更に備え、
前記データ割振部は、前記データに基づいて前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、
請求項10に記載のビデオ編集システム。
The editing unit has editing information set by the user for the AV data to be edited,
A CPU load estimator for predicting a load on the CPU when the editing unit executes an editing process based on editing information;
According to the predicted CPU load, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. An allocation ratio setting unit for supplying data to the data allocating unit;
Further comprising
The data allocator allocates the AV data to the hardware encoder and the software encoder based on the data;
The video editing system according to claim 10.
前記割り振り割合設定部は、前記CPUの負荷を検出し、検出された負荷に応じて前記割合を変更する、請求項10に記載のビデオ編集システム。   The video editing system according to claim 10, wherein the allocation ratio setting unit detects a load on the CPU and changes the ratio according to the detected load. 前記編集部が編集情報に基づいて編集処理を実行して得られるAVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を前記編集情報から検出して、所定の検出信号を生成するフレーム切換位置検出部、を更に備え、
前記データ割振部は、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換える、
請求項10に記載のビデオ編集システム。
The editing unit detects a scene switching position included in AV data obtained by executing editing processing based on editing information or a change position of the type of editing processing from the editing information, and generates a predetermined detection signal. A frame switching position detection unit for performing,
The data allocator switches the output destination of AV data between the hardware encoder and the software encoder according to the detection signal.
The video editing system according to claim 10.
符号化処理用のハードウェアで構成され、AVデータの一部を符号化するハードウェア・エンコーダと、CPUを利用して、前記AVデータの他の一部を符号化するソフトウェア・エンコーダと、を使用して映像データを符号化する方法であって、
前記AVデータを受信するステップと、
前記AVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振るステップと、
前記ハードウェア・エンコーダおよび前記ソフトウェア・エンコーダがそれぞれ割り振られたAVデータを符号化するステップと、
前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとのそれぞれで符号化されたAVデータを所定の順序に配列して一連の符号化されたAVデータに合成するステップと、
前記一連の符号化されたAVデータを出力するステップと、
を含み、
前記ハードウェア・エンコーダのみによる符号化処理速度よりも大きな符号化処理速度でAVデータを符号化する、前記方法。
A hardware encoder that encodes a part of AV data, and a software encoder that encodes another part of the AV data by using a CPU. A method for encoding video data using:
Receiving the AV data;
Allocating the AV data to the hardware encoder and the software encoder;
Encoding the AV data respectively allocated by the hardware encoder and the software encoder;
Arranging the AV data encoded by each of the hardware encoder and the software encoder in a predetermined order and synthesizing the AV data into a series of encoded AV data;
Outputting the series of encoded AV data;
Including
The method, wherein the AV data is encoded at an encoding processing speed larger than an encoding processing speed only by the hardware encoder.
前記AVデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のAVデータに編集するステップであって、前記符号化するステップと並列して実行される、該ステップと、
前記編集するステップの編集情報に基づく編集処理を実行するときのCPUの負荷を符号化対象の一連のAVデータに対応させて予測するステップと、
前記予測された前記CPUの負荷に応じて、前記ハードウェア・エンコーダに割り振られるAVデータと前記ソフトウェア・エンコーダに割り振られるAVデータとの単位時間当たりのデータ単位数の割合を算定し、その割合を表すデータを出力するステップと、
を更に含み、
前記AVデータを割り振るステップは、前記データに基づいてAVデータを前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとに割り振る、請求項14に記載の方法。
Editing the AV data into a series of AV data to be encoded based on editing information set by a user, the step being performed in parallel with the encoding step;
Predicting the CPU load when executing the editing process based on the editing information of the editing step in correspondence with a series of AV data to be encoded;
According to the predicted CPU load, a ratio of the number of data units per unit time between AV data allocated to the hardware encoder and AV data allocated to the software encoder is calculated, and the ratio is calculated. Outputting data to represent;
Further including
15. The method according to claim 14, wherein the step of allocating AV data allocates AV data to the hardware encoder and the software encoder based on the data.
前記AVデータに対してユーザにより設定された編集情報に基づいて符号化対象の一連のAVデータに編集するステップと、
前記符号化対象の一連のAVデータに含まれるシーンの切換位置、又は編集処理の種類の変更位置を検出して、所定の検出信号を生成するステップと、
を更に備え、
前記AVデータを割り振るステップは、前記検出信号に応じてAVデータの出力先を前記ハードウェア・エンコーダと前記ソフトウェア・エンコーダとの間で切り換えるステップを含む、請求項14に記載の方法。
Editing the AV data into a series of AV data to be encoded based on editing information set by a user;
Detecting a scene switching position or a change position of the type of editing process included in the series of AV data to be encoded, and generating a predetermined detection signal;
Further comprising
15. The method according to claim 14, wherein allocating the AV data includes switching an output destination of AV data between the hardware encoder and the software encoder in accordance with the detection signal.
JP2008184758A 2008-04-13 2008-07-16 Encoder and encoding method of video and voice data, and video editing system Pending JP2011077564A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008184758A JP2011077564A (en) 2008-04-13 2008-07-16 Encoder and encoding method of video and voice data, and video editing system
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 (en) 2008-04-13 2008-07-16 Encoder and encoding method of video and voice data, and video editing system

Publications (1)

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

Family

ID=40888096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008184758A Pending JP2011077564A (en) 2008-04-13 2008-07-16 Encoder and encoding method of video and voice data, and video editing system

Country Status (2)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013164660A (en) * 2012-02-09 2013-08-22 Nec Corp Storage device
JP2017216616A (en) * 2016-06-01 2017-12-07 キヤノン株式会社 IMAGING DEVICE AND IMAGING DEVICE CONTROL METHOD
WO2019045297A1 (en) * 2017-08-30 2019-03-07 삼성전자(주) Image processing device and control method thereof
EP3820153A1 (en) 2019-11-11 2021-05-12 Ricoh Company, Ltd. Image capturing device, distribution system, distribution method, and carrier means
JP2021101505A (en) * 2019-12-24 2021-07-08 株式会社Jvcケンウッド Imaging apparatus, image processing apparatus, and image processing method
JP2022097392A (en) * 2020-12-18 2022-06-30 インテル コーポレイション Offloading video coding processes to hardware for better density-quality tradeoffs

Families Citing this family (17)

* 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
US8555169B2 (en) 2009-04-30 2013-10-08 Apple Inc. Media clip auditioning used to evaluate uncommitted media content
US8701007B2 (en) 2009-04-30 2014-04-15 Apple Inc. Edit visualizer for modifying and evaluating uncommitted media content
US8418082B2 (en) 2009-05-01 2013-04-09 Apple Inc. Cross-track edit indicators and edit selections
US8881013B2 (en) 2009-04-30 2014-11-04 Apple Inc. Tool for tracking versions of media sections in a composite presentation
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
US8910046B2 (en) 2010-07-15 2014-12-09 Apple Inc. Media-editing application with anchored timeline
US9099161B2 (en) 2011-01-28 2015-08-04 Apple Inc. Media-editing application with multiple resolution modes
US8839110B2 (en) 2011-02-16 2014-09-16 Apple Inc. Rate conform operation for a media-editing application
US9412414B2 (en) 2011-02-16 2016-08-09 Apple Inc. Spatial conform operation for a media-editing application
US9997196B2 (en) 2011-02-16 2018-06-12 Apple Inc. Retiming media presentations
US11747972B2 (en) 2011-02-16 2023-09-05 Apple Inc. Media-editing application with novel editing tools
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 (en) * 2017-03-31 2019-06-21 武汉斗鱼网络科技有限公司 Software-hardware synergism coding method and system
CN112422974B (en) * 2020-11-04 2025-07-11 腾讯科技(深圳)有限公司 Video encoding method, device, computer equipment and storage medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3729540B2 (en) * 1995-09-08 2005-12-21 株式会社ルネサステクノロジ Image processing device
SG82613A1 (en) * 1999-05-21 2001-08-21 Inst Of Microelectronics Dynamic load-balancing between two processing means for real-time video encoding
CN1245839C (en) * 2001-07-04 2006-03-15 矽统科技股份有限公司 Decentralized video data stream decoding method
JP3680846B2 (en) * 2003-05-28 2005-08-10 セイコーエプソン株式会社 MOVING IMAGE COMPRESSION DEVICE AND IMAGING DEVICE USING THE SAME
EP1839446A1 (en) * 2005-01-19 2007-10-03 THOMSON Licensing Method and apparatus for real time parallel encoding
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 (en) * 2006-04-25 2009-01-28 セイコーエプソン株式会社 Image processing apparatus and image processing method
JP2008066851A (en) * 2006-09-05 2008-03-21 Sony Corp Information processing apparatus, information processing method, recording medium, and program

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013164660A (en) * 2012-02-09 2013-08-22 Nec Corp Storage device
JP2017216616A (en) * 2016-06-01 2017-12-07 キヤノン株式会社 IMAGING DEVICE AND IMAGING DEVICE CONTROL METHOD
WO2019045297A1 (en) * 2017-08-30 2019-03-07 삼성전자(주) Image processing device and control method thereof
KR20190023665A (en) * 2017-08-30 2019-03-08 삼성전자주식회사 Video processing apparatus and the control method thereof
US11463699B2 (en) 2017-08-30 2022-10-04 Samsung Electronics Co., Ltd. Image processing apparatus and control method thereof
KR102459734B1 (en) * 2017-08-30 2022-10-28 삼성전자 주식회사 Video processing apparatus and the control method thereof
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 (en) * 2019-12-24 2021-07-08 株式会社Jvcケンウッド Imaging apparatus, image processing apparatus, and image processing method
JP7447481B2 (en) 2019-12-24 2024-03-12 株式会社Jvcケンウッド Imaging device and image processing method
JP2022097392A (en) * 2020-12-18 2022-06-30 インテル コーポレイション Offloading video coding processes to hardware for better density-quality tradeoffs

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2011077564A (en) Encoder and encoding method of video and voice data, and video editing system
CN104952470B (en) video format for digital video recorder
US8275247B2 (en) Method and apparatus for normal reverse playback
US20090103630A1 (en) Image processing device
US20090310678A1 (en) Image encoding apparatus, method of controlling the same and computer program
CN101557490B (en) Information processing apparatus and information processing method
US8437408B2 (en) Decoding with reference image stored in image memory for random playback
WO2006027880A1 (en) Recording apparatus and method, reproducing apparatus and method, recording medium, and program
JP5224484B2 (en) Video and audio data encoding apparatus, encoding method therefor, and video editing system
US7343088B2 (en) Disc apparatus, disc recording method, disc playback method, recording medium, and program
JP4582185B2 (en) Information processing apparatus and information processing method
US7974523B2 (en) Optimal buffering and scheduling strategy for smooth reverse in a DVD player or the like
JP3344607B2 (en) Optical disc, reproducing apparatus and reproducing method
KR100676723B1 (en) Video playback device
CN102132568A (en) motion detection device
US20110150413A1 (en) Moving picture recording/reproducing apparatus and method
KR100593352B1 (en) Image data recording apparatus and method and recording medium
US20060233528A1 (en) Program, information processing device, information processing method, and recording medium
JP5171666B2 (en) Video / audio recording device
US20040179592A1 (en) Image coding apparatus
JP3384563B2 (en) Optical disc, reproducing apparatus and reproducing method
JP2004297184A (en) Information processing apparatus, information processing method, storage medium, and program
JP2000236539A (en) Image compression coding device
JP2006304103A (en) Moving video recording apparatus and moving video recording/reproducing apparatus
JP2006121415A (en) Moving image encoding device