JP2008066851A - 情報処理装置および情報処理方法、記録媒体、並びに、プログラム - Google Patents

情報処理装置および情報処理方法、記録媒体、並びに、プログラム Download PDF

Info

Publication number
JP2008066851A
JP2008066851A JP2006240301A JP2006240301A JP2008066851A JP 2008066851 A JP2008066851 A JP 2008066851A JP 2006240301 A JP2006240301 A JP 2006240301A JP 2006240301 A JP2006240301 A JP 2006240301A JP 2008066851 A JP2008066851 A JP 2008066851A
Authority
JP
Japan
Prior art keywords
encoding
picture
section
predetermined
encoder
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
JP2006240301A
Other languages
English (en)
Inventor
Takaaki Fuchie
孝明 渕江
Hiromi Yoshinari
博美 吉成
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2006240301A priority Critical patent/JP2008066851A/ja
Priority to TW96131504A priority patent/TWI390988B/zh
Priority to US11/899,005 priority patent/US8170120B2/en
Priority to CN2007101453013A priority patent/CN101141641B/zh
Publication of JP2008066851A publication Critical patent/JP2008066851A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/103Selection of coding mode or of prediction mode
    • 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/124Quantisation
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at 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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

【課題】複数のエンコーダを用いてベースバンド信号をエンコードして結合する。
【解決手段】1セクションの長さがエンコード処理により生成されるGOPの長さの整数倍となるようにベースバンド信号が分割され、並列で同時にエンコードされる複数のセクションによりセクショングループが構成される。#0エンコーダ乃至#3エンコーダへ入力されるベースバンド信号は、それぞれのセクションに対応する範囲となる。そして、#0エンコーダ乃至#3エンコーダは、制御部の制御に基づいて、先頭GOPをClosedGOPとしてエンコードするなどの所定の制約の基に、並列にエンコードを実行し、エンコード後の符号化ストリームをPCIブリッジ17に出力する。そしてメモリにおいて、それぞれのセクションがセクション番号順に結合されるように、それぞれの記憶アドレスが制御されて記憶される。本発明は、編集装置に適用できる。
【選択図】図7

Description

本発明は、情報処理装置および情報処理方法、記録媒体、並びに、プログラムに関し、特に、エンコード処理を実行する場合に用いて好適な、情報処理装置および情報処理方法、記録媒体、並びに、プログラムに関する。
MPEG(Moving Picture Coding Experts Group/Moving Picture Experts Group)などに代表される画像圧縮方式では、フレーム間予測を用いて映像信号を圧縮符号化することで、高い圧縮効率を実現している。
MPEGにおいて、Iピクチャ(I-Picture)、Pピクチャ(P-Picture)、および、Bピクチャ(B-Picture)から構成される、双方向のフレーム間予測を用いた圧縮符号化方式は、Long GOP(Group of Picture)方式の圧縮と呼ばれる。
Iピクチャとは、フレーム内(Intra)符号化画像のことであり、他の画面とは独立に符号化されるピクチャであり、この情報のみで画像を復号することができるものである。Pピクチャとは、フレーム間(inter)順方向予測符号化画像のことであり、時間的に前(順方向)のフレームからの差分によって表現される前方向予測符号化ピクチャである。Bピクチャとは、双方向予測符号化画像のことであり、時間的に前(順方向)、または後(逆方向)、または前後(双方向)のピクチャを利用して動き補償フレーム間予測により符号化されるピクチャである。
映像を編集することを考えた場合、フレーム間予測を用いた圧縮画像は、フレーム間に予測による圧縮信号の関連があるため、圧縮されたままの映像信号で、映像素材をつなぎ合わせることとはできない。そのため、映像素材を編集することが予め考慮されたシステムにおいては、一般的に、フレーム間予測を用いず、フレーム内での圧縮のみを用いて符号化が行われている。
しかしながら、例えば、HD(High Definition)信号のように、高精細で情報量の多い映像信号が取り扱われる場合、フレーム内圧縮のみで符号化を行うと、低い圧縮効率しか得られないため、多量のデータを伝送したり、蓄積するためには、転送速度が速かったり、記憶容量が大きいなどの不具合が生じる可能性があり、このために、処理速度が速い高価なシステムが必要となってしまう。すなわち、高精細で情報量の多い映像信号を安価なシステムで取り扱うためには、フレーム間予測を用いて圧縮効率を上げることが必要となる。
MPEGストリームを編集するために、従来、編集点(スプライス点)近傍のピクチャを一旦デコードし、非圧縮の画像信号を編集点でつなぎあわせた後、再エンコードする技術が用いられている(例えば、特許文献1)。
国際公開番号WO99/05864号公報
高速に符号化を実行するために、従来、フレームを分割してエンコードを実行する技術があった(例えば、特許文献2)。
特願平10−178645号公報
特許文献1に記載の技術など、符号化処理を伴う編集やデータ変換処理の効率を向上させるために、符号化処理の高速化が求められている。現在、一般的なLong GOP構造の圧縮を行うエンコーダの処理速度は、リアルタイムか、それより遅い。よって、長時間の素材を変換する場合、非常に長い時間を必要としている。
そして、上述した特許文献1のように、高速に符号化を実行するために、従来、フレームを分割してエンコードを実行する技術があったが、1フレームを複数に分割することにより処理を高速化するため、フレーム間またはフレーム内の参照を行うための制御や、分割して処理されたフレームを結合して1フレームを生成するための制御が複雑となってしまう。
本発明はこのような状況に鑑みてなされたものであり、1フレームを分割することなく、高速にエンコード処理を実行することができるようにするものである。
本発明の一側面の情報処理装置は、ベースバンド信号をエンコードする処理を実行する情報処理装置であって、前記ベースバンド信号を取得して、所定のエンコード単位に分割するデータ分割手段と、前記データ分割手段により分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するものを並行してエンコードして、符号化ストリームを生成するエンコード手段と、所定の制約を掛けながら並行してエンコードするように、前記エンコード手段によるエンコード処理を制御する制御手段と、前記エンコード手段により生成された符号化ストリームを結合する結合手段とを備える。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位の切れ目が、前記エンコード手段によりエンコードされて生成された符号化ストリームのGOPの切れ目となるようにエンコード処理を実行することであるものとすることができる。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のうちの先頭GOPをClosed GOPとしてエンコード処理を実行することであるものとすることができる。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のエンコードの開始点に、Sequence HeaderまたはQuant Matrix Extensionを付加することであるものとすることができる。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のエンコード終了点のVBV Buffer Occupancyが、次の前記所定のエンコード単位のエンコードの開始点のVBV Buffer Occupancyと等しくなるように、発生符号量の制御を行うことであるものとすることができる。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位の切れ目が、前記エンコード手段によりエンコードされて生成された符号化ストリームのGOPの切れ目から、IピクチャまたはPピクチャの間隔Mだけ時間的に後ろにずれた位置となるように、エンコード処理を実行することであるものとすることができる。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のうち、その前に他の前記所定のエンコード単位に対応するベースバンド信号が存在するものについては、一つ前の前記所定のエンコード単位の最後の1ピクチャを加えたベースバンド信号を取得し、一つ前の前記所定のエンコード単位の最後の1ピクチャのエンコード結果は出力せずに、参照画として用いて、エンコード処理を実行することであるものとすることができる。
前記所定の制約は、参照画として用いられる一つ前の前記所定のエンコード単位の最後の1ピクチャのエンコード条件と、並行して実行される、一つ前の前記所定のエンコード単位のエンコード処理における対応するピクチャのエンコード条件とを一致させることであるものとすることができる。
前記エンコード条件は、ピクチャの割り当てビット、および、最初のマクロブロックのQスケールを含むものとすることができる。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のうち、その前に他の前記所定のエンコード単位に対応するベースバンド信号が存在するものについては、一つ前の前記所定のエンコード単位の最後のM+1ピクチャを加えたベースバンド信号を取得し、一つ前の前記所定のエンコード単位の最後の1ピクチャのエンコード結果は出力せずに、参照画として用いて、エンコード処理を実行することであるものとすることができる。
前記所定の制約は、取得された一つ前の前記所定のエンコード単位の最後のM+1ピクチャのうち、1枚目となる第1のピクチャのエンコード結果を参照画として用いて2枚目となる第2のピクチャおよび3枚目となる第3のピクチャのエンコード処理を実行し、これらのエンコード結果は出力せず、これらのエンコード結果を基に、並行して実行される、一つ前の前記所定のエンコード単位のエンコードにおける前記第2のピクチャおよび前記第3のピクチャに対応する2枚のピクチャの発生符号量を制御することであるものとすることができる。
前記所定の制約は、取得された一つ前の前記所定のエンコード単位の最後のM+1ピクチャのうち、1枚目のピクチャを、Iピクチャとしてエンコード処理を実行することであるものとすることができる。
本発明の一側面の情報処理方法は、ベースバンド信号をエンコードする処理を実行する情報処理装置の情報処理方法であって、前記ベースバンド信号を取得して、所定のエンコード単位ごとの前記ベースバンド信号の分割を制御し、分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するもののエンコーダへの供給を制御し、前記所定のエンコード単位ごとの前記ベースバンド信号を、所定の制約の基に、並行してエンコードして、符号化ストリームを生成し、生成された前記符号化ストリームを結合するステップを含む。
本発明の一側面のプログラムは、ベースバンド信号をエンコードする処理の制御をコンピュータに実行させるためのプログラムであって、前記ベースバンド信号の取得を制御するとともに、所定のエンコード単位ごとの前記ベースバンド信号の分割を制御し、分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するもののエンコーダへの供給を制御し、前記所定のエンコード単位ごとの前記ベースバンド信号を、所定の制約の基に、並行してエンコードする処理を制御し、生成された前記符号化ストリームを結合する処理を制御するステップを含む処理をコンピュータに実行させる。
本発明の一側面においては、ベースバンド信号が取得され、所定のエンコード単位ごとにベースバンド信号が分割され、分割された所定のエンコード単位ごとのベースバンド信号のうち、複数の連続するものがエンコーダへ供給され、所定のエンコード単位ごとのベースバンド信号が、所定の制約の基に、並行してエンコードされ、生成された符号化ストリームが結合される。
ネットワークとは、少なくとも2つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、1つの装置を構成している内部ブロックどうしであっても良い。
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
編集装置は、独立した装置であっても良いし、情報処理装置の編集処理を行うブロックであっても良い。
以上のように、本発明の一側面によれば、エンコードを実行することができ、特に、所定の制約の基に、所定のエンコード単位ごとのベースバンド信号を、所定の制約の基に、並行してエンコードしたものを接続して、正しい符号化ストリームを得ることができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の情報処理装置は、ベースバンド信号をエンコードする処理を実行する情報処理装置(例えば、編集処理1)であって、前記ベースバンド信号を取得して、所定のエンコード単位(例えば、セクション)に分割するデータ分割手段(例えば、図1または図3のセレクタ23)と、前記データ分割手段により分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するものを並行してエンコードして、符号化ストリームを生成するエンコード手段(例えば、図1または図3のエンコーダユニット24)と、所定の制約を掛けながら並行してエンコードするように、前記エンコード手段によるエンコード処理を制御する制御手段(例えば、図1のCPU20、または、図3の制御部101)と、前記エンコード手段により生成された符号化ストリームを結合する結合手段(例えば、図1のメモリ18)とを備える。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位の切れ目が、前記エンコード手段によりエンコードされて生成された符号化ストリームのGOPの切れ目から、IピクチャまたはPピクチャの間隔M(例えば、一般的な15ピクチャのMPEG LongGOPでは、M=3)だけ時間的に後ろにずれた位置(例えば、GOP先頭のIBBと、次のPの間)となるように、エンコード処理を実行することであるものとすることができる。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のうち、その前に他の前記所定のエンコード単位に対応するベースバンド信号が存在するものについては、一つ前の前記所定のエンコード単位の最後の1ピクチャ(例えば、参照画として用いられるIピクチャ)を加えたベースバンド信号を取得し、一つ前の前記所定のエンコード単位の最後の1ピクチャのエンコード結果は出力せずに、参照画として用いて、エンコード処理を実行することであるものとすることができる。
前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のうち、その前に他の前記所定のエンコード単位に対応するベースバンド信号が存在するものについては、一つ前の前記所定のエンコード単位の最後のM+1ピクチャ(例えば、参照画として用いられるIピクチャと、その前の3枚のピクチャ)を加えたベースバンド信号を取得し、一つ前の前記所定のエンコード単位の最後の1ピクチャのエンコード結果は出力せずに、参照画として用いて、エンコード処理を実行することであるものとすることができる。
本発明の一側面の情報処理方法は、ベースバンド信号をエンコードする処理を実行する情報処理装置の情報処理方法であって、前記ベースバンド信号を取得して、所定のエンコード単位(例えば、セクション)ごとの前記ベースバンド信号の分割を制御し(例えば、図9のステップS41,図16のステップS81,または、図23のステップS181の処理)、分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するもの(例えば、セクショングループ)のエンコーダへの供給を制御し(例えば、図9のステップS42,図16のステップS82,または、図23のステップS182の処理)、前記所定のエンコード単位ごとの前記ベースバンド信号を、所定の制約の基に、並行してエンコードして、符号化ストリームを生成し(例えば、図9のステップS47,図16のステップS88,または、図23のステップS189の処理)、生成された前記符号化ストリームを結合する(例えば、図9のステップS49,図16のステップS91,または、図23のステップS192の処理)ステップを含む。
本発明の一側面のプログラムは、ベースバンド信号をエンコードする処理の制御をコンピュータに実行させるためのプログラムであって、前記ベースバンド信号の取得を制御するとともに、所定のエンコード単位(例えば、セクション)ごとの前記ベースバンド信号の分割を制御し(例えば、図9のステップS41,図16のステップS81,または、図23のステップS181の処理)、分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するもの(例えば、同一のセクショングループに含まれるセクション)のエンコーダへの供給を制御し(例えば、図9のステップS42,図16のステップS82,または、図23のステップS182の処理)、前記所定のエンコード単位ごとの前記ベースバンド信号を、所定の制約の基に、並行してエンコードする処理を制御し(例えば、図9のステップS47,図16のステップS88,または、図23のステップS189の処理)、生成された前記符号化ストリームを結合する処理を制御する(例えば、図9のステップS49,図16のステップS91,または、図23のステップS192の処理)ステップを含む処理をコンピュータに実行させる。
以下、図を参照して、本発明の実施の形態について説明する。
図1は本発明を適用した編集装置1のハードウェア構成を示すブロック図である。
CPU(Central Processing Unit)11は、ノースブリッジ12に接続され、例えば、HDD(Hard disk Drive)16に記憶されているデータの読み出しなどの処理を制御したり、CPU20が実行する編集処理を制御するための制御信号やコマンドを生成し、出力する。ノースブリッジ12は、PCIバス(Peripheral Component Interconnect/Interface)14に接続され、例えば、CPU11の制御に基づいて、サウスブリッジ15を介して、HDD16に記憶されているデータの供給を受けて、PCIバス14、PCIブリッジ17を介して、メモリ18に供給する。また、ノースブリッジ12は、メモリ13とも接続されており、CPU11の処理に必要なデータを授受する。
メモリ13は、CPU11が実行する処理に必要なデータを保存する。サウスブリッジ15は、HDD16のデータの書き込みおよび読み出しを制御する。HDD16には、非圧縮のベースバンド信号または符号化データが記憶される。
PCIブリッジ17は、メモリ18のデータの書き込みおよび読み出しを制御したり、デコーダユニット22への符号化ストリームの供給、または、セレクタ23への非圧縮データの供給を制御するとともに、PCIバス14およびコントロールバス19のデータの授受を制御する。メモリ18は、PCIブリッジ17の制御に基づいて、HDD16により読み出されたベースバンド信号または符号化データや、エンコーダユニット24から供給される処理後の符号化データを記憶する。
CPU20は、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU11から供給された制御信号やコマンドにしたがって、PCIブリッジ17、デコーダユニット22、セレクタ23、および、エンコーダユニット24が実行する処理を制御する。メモリ21は、CPU20の処理に必要なデータを記憶する。
デコーダユニット22は、デコーダ31-1乃至31−mの、m個のデコーダにより構成され、CPU20の制御に基づいて、PCIブリッジ17から供給された符号化ストリームをデコードし、セレクタ23に供給する。デコーダユニット22に含まれるデコーダ31-1乃至31−mは、並列して動作することが可能である。
以下、m個のデコーダを、それぞれ、#0デコーダ31-1、#1デコーダ31−2、#2デコーダ31−3、・・・#m−1デコーダ31−mと称するものとし、#0デコーダ31-1乃至#m−1デコーダ31−mを個々に区別する必要がない場合、単に、デコーダ31と称する。
セレクタ23は、PCIブリッジ17またはデコーダユニット22から供給された非圧縮のベースバンド信号を時系列に所定の長さに分割し、エンコーダユニット24のエンコーダ41-1乃至41-nのうちのいずれか複数のエンコーダ41に供給する。
セレクタ23により分割されるデータの基本単位をセクション(Section)と称し、その長さをSection_Lengthとする。セレクタ23は、セクションに対応する所定範囲のデータがエンコードされるように、セクションに対応する範囲のデータ、および、セクションに対応する範囲をエンコードするために必要な範囲のデータを、エンコーダユニット24に供給する。エンコーダユニット24にそれぞれ供給されるベースバンド信号の範囲は、それぞれのセクションにおいて全く重ならない場合と、一部重なる場合とがある。
エンコーダユニット24は、エンコーダ41-1乃至41-nの、n個のエンコーダより構成され、CPU20の制御に基づいて、セレクタ23から供給された非圧縮のベースバンド信号を、所定の制約を守ってエンコードして、PCIブリッジ17に出力する。エンコーダユニット24に含まれるエンコーダ41-1乃至41-nは、並列して動作することが可能である。すなわち、エンコーダ41-1乃至41-nを並列して動作させて得られた符号化ストリームを接続した場合に不具合が生じないように、エンコード処理には所定の制約が課せられる。所定の制約についての詳細は後述する。
また、エンコーダユニット24またはエンコーダエンコーダ41-1乃至41-nのそれぞれは、編集装置1に含まれない独立した装置として設けられていても良い。例えば、エンコーダユニット24が、独立した装置として設けられている場合、エンコーダユニット24は、非圧縮の映像信号の入力を受け、後述する処理によりエンコードして、出力することができるようになされる。
以下、n個のエンコーダを、それぞれ、#0エンコーダ41-1、#1エンコーダ41−2、#2エンコーダ41−3、・・・#n−1エンコーダ41−nと称するものとし、#0エンコーダ41-1乃至#n−1エンコーダ41−nを個々に区別する必要がない場合、単に、エンコーダ41と称する。
次に、編集装置1の動作について説明する。
HDD16には、Long GOPのOpen GOP方式で圧縮された、または、全てフレーム内符号化(Intra圧縮)された符号化ストリームや、非圧縮のベースバンド信号が記憶されている。CPU11は、図示しない操作入力部からユーザの操作入力を受け、ユーザの操作入力に基づいて、エンコード処理を実行するデータを決定するとともに、そのデータのデコードを行うか否かを決定する。
CPU11は、処理される符号化ストリームまたはベースバンド信号を、ノースブリッジ12、および、PCIバス14を介して、PCIブリッジ17に供給するとともに、コマンドを生成する。そして、CPU11は、デコードまたはエンコードに必要なパラメータがある場合は、そのパラメータとともに、生成されたコマンドを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に供給する。
CPU20は、PCIブリッジ17を制御して、供給された符号化ストリームまたはベースバンド信号を、メモリ18に保存させ、供給されたコマンドに基づいて、供給されたデータがデコードの必要な符号化ストリームである場合、PCIブリッジ17を制御して、符号化ストリームをデコーダユニット22に供給させ、供給されたデータがデコードの不必要なベースバンド信号である場合、PCIブリッジ17を制御して、ベースバンド信号をセレクタ23に供給させる。
デコーダユニット22に含まれるデコーダ31-1乃至31−mは、並列して動作することが可能である。したがって、1つのストリームを複数のデコーダ31を用いてデコードさせる場合、CPU20は、PCIブリッジ17を制御して、符号化ストリームを分割させ、Long GOPのOpen GOP方式で圧縮された符号化ストリームである場合は、必要に応じてそれぞれのデコーダ31におけるデコードに必要な参照画像フレームとともに、対応するデコーダ31に供給する。
そして、CPU20は、デコーダユニット22を制御して、デコード処理を実行させ、デコードされて生成された、非圧縮のベースバンド信号をセレクタ23に供給させる。デコーダユニット22を構成する#0デコーダ31-1乃至#m−1デコーダ31−mは、CPU20の制御に基づいて、供給されたデータをデコードし、非圧縮のベースバンド信号をセレクタ23に供給する。
CPU20は、CPU11から供給されたコマンドに基づいて、セレクタ23を制御し、セレクタ23に供給されたベースバンド信号をセクションに分割させ、並行して利用するエンコーダ41の数のセクションでセクショングループを設定して、セクションごとエンコードするために必要なベースバンド信号を、エンコーダユニット24のうちの所定数のエンコーダ41に供給させる。セレクタ23は、CPU20の制御に基づいて、供給されたデータを、所定長のセクションに分割し、並行して利用するエンコーダ41の数のセクションでセクショングループを設定し、1つのセクショングループに対応するベースバンド信号が、同時にエンコーダ41のうちのいずれかでエンコードされるように、それぞれのセクションをエンコードするために必要なベースバンド信号をエンコーダ41に供給する。
CPU20は、CPU11から供給されたコマンドに基づいて、エンコーダユニット24を制御して、それぞれのセクションのエンコード処理を実行させ、エンコードされて生成された符号化ストリームをPCIブリッジ17に供給させる。エンコーダユニット24に含まれるエンコーダ41-1乃至41-nの全部または一部は、並列して動作することが可能である。すなわち、エンコーダ41-1乃至41-nを並列して動作させて得られた符号化ストリームを接続した場合に不具合が生じないように、エンコード処理には後述する所定の制約が課せられる。
エンコーダユニット24を構成するエンコーダ41-1乃至41-nのうち、ベースバンド信号の供給を受けたエンコーダ41は、CPU20の制御に基づいて、供給されたデータを、所定の制約の基にエンコードする。所定の制約とエンコード処理の詳細は後述する。そして、それぞれのエンコーダ41は、エンコードの結果得られる符号化ストリームをPCIブリッジ17に供給する。
CPU20は、CPU11から供給されたコマンドに基づいて、PCIブリッジ17を制御して、供給された符号化ストリームがユーザの操作入力に基づいた順に連続するように、保存されるアドレスを制御して、エンコーダ41から供給されたそれぞれのセクションに該当する長さの符号化ストリームをメモリ18に保存させる。
すなわち、複数のエンコーダ41によりエンコードされて生成されたセクションに該当する長さの符号化ストリームは、セクショングループに該当するように接続され、更に、それぞれのセクショングループが、処理前のデータに対応するように接続されるように、メモリ18における保存アドレスが制御される。また、例えば、ユーザの操作入力により、複数のストリームまたはベースバンド信号を所定の編集点で接続することが指令されていた場合、CPU11から供給されたコマンドに基づいて、所定の編集点で複数のストリームまたはベースバンド信号が接続されるようにそれぞれのセクションに該当する長さの符号化ストリームのメモリ18における保存アドレスが制御される。換言すれば、エンコーダユニット24においてエンコードされたそれぞれのセクションに該当する長さの符号化ストリームは、メモリ18上で結合される。
CPU20は、コントロールバス19、PCIブリッジ17、PCIバス14、および、ノースブリッジ12を介して、CPU11に、供給されたコマンド処理に基づいたデータの処理が終了したことを通知する。CPU11は、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18から結合された符号化ストリームを読み出し、ノースブリッジ12およびサウスブリッジ15を介して、HDD16に格納させたり、図示しないインタフェースを介して、外部の機器などに出力させる。
次に、図2は、図1の編集装置1が有する主な機能の構成について説明するための機能ブロック図である。なお、図2において、図1における場合と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
編集装置1は、制御部101、取得部102、デコーダユニット22、セレクタ23、エンコーダユニット24、および、記憶・出力部103を含んで構成される。
制御部101は、CPU11およびCPU20に対応し、編集装置1の各部を制御する。取得部102は、制御部101の制御に基づいて、HDD16またはメモリ18から処理されるデータを取得して、デコード処理が必要な部分は、デコーダユニット22に供給し、デコード処理が必要ではない部分は、セレクタ23に供給する。圧縮符号化ストリーム、または、非圧縮のベースバンド信号が記憶されるHDD16またはメモリ18が取得部102に含まれるものとしてもよいし、HDD16またはメモリ18、もしくは、編集装置1に接続されている他の装置から、圧縮符号化ストリーム、または、非圧縮のベースバンド信号を取得するPCIブリッジ17が、取得部102に含まれるものとしてもよい。
デコーダユニット22に含まれる複数のデコーダ31は、取得部102から供給された圧縮素材映像データをデコードし、その結果として得られた非圧縮のベースバンド信号を、セレクタ23に供給する。セレクタ23は、制御部101の制御に基づいて、デコーダユニット22または取得部102から供給された非圧縮のベースバンド信号をセクションに分割して、セクショングループを設定し、同一のセクショングループに含まれているセクションを、同時に、エンコーダユニット24に供給する。
エンコーダユニット24に含まれる複数のエンコーダ41は、制御部101の制御に基づいて、セレクタ23から供給された非圧縮のベースバンド信号を、セクションごとに、並行して、所定の制約の基でエンコードする。エンコードにおける制約の具体的な例については、後述する。
記憶・出力部103は、エンコーダユニット24においてエンコードされて生成された符号化ストリームを記憶または出力するものであり、例えば、HDD16またはメモリ18が記憶・出力部103に含まれるものとしてもよいし、HDD16またはメモリ18、もしくは、編集装置1に接続されている他の装置へ、圧縮符号化ストリームを出力するPCIブリッジ17が、取得部102に含まれるものとしてもよい。
また、制御部101は、より詳細には図3に示すような機能を有している。
すなわち、制御部101は、CPU11およびCPU20が実行可能な機能を併せ持つものとして定義されるものである。また、CPU11は、操作入力取得部131、デコードおよびエンコード区間決定部132、ストリーム送出制御部133、および、コマンドおよび制御情報送出部134の機能を有し、CPU20は、ストリーム取得制御部151、コマンドおよび制御情報取得部152、復号制御部153、符号化制御部154、および、ストリーム結合制御部155から構成される。
操作入力取得部131は、ユーザによる操作入力を受けて、エンコード処理が実行されるデータの形式は、圧縮された符号化ストリームであるか非圧縮のベースバンド信号であるか、換言すれば、エンコード前にデコードされる必要があるか否かや、何GOP分のデータがエンコードされるかなど、エンコード処理が実行されるデータに関する情報を、ユーザの操作に応じて取得し、取得した情報をデコードおよびエンコード区間決定部132またはストリーム送出制御部133に供給する。
デコードおよびエンコード区間決定部132は、操作入力取得部131から供給される情報に基づいて、エンコーダユニット24によりエンコードされる区間を決定して、エンコードされるデータがデコードされるか否かを決定するとともに、エンコード処理に必要なパラメータや初期値などを決定する。デコードおよびエンコード区間決定部132は、決定された内容をコマンドおよび制御情報送出部134並びにストリーム送出制御部133に供給する。
ストリーム送出制御部133は、操作入力取得部131並びにデコードおよびエンコード区間決定部132からの情報に基づいて、エンコードされる区間として設定された部分がデコードする必要がある場合、その部分のデータがデコーダユニット22に送出され、デコードする必要がない場合、その部分のデータがセレクタ23に供給されるように、取得部102を制御する。また、ストリーム送出制御部133は、操作入力取得部131からの情報に基づいて、ストリームの編集などのユーザの操作に応じた処理を行うための制御信号をストリーム取得制御部151に供給する。
コマンドおよび制御情報送出部134は、デコードおよびエンコード区間決定部132から供給された情報に基づいて、エンコード処理またはデコード処理、および、エンコード結果の接続などの制御に必要な各種のパラメータを、コマンドおよび制御情報取得部152に供給する。
ストリーム取得制御部151は、ストリーム送出制御部133からの制御信号に基づいて、取得部102による圧縮符号化ストリーム、または、非圧縮のベースバンド信号の取得を制御するとともに、エンコードされる区間として設定された部分のうちデコードする必要がある部分のデータがデコーダユニット22に送出され、デコードする必要がない部分のデータがセレクタ23に供給されるように、取得部102を制御する。また、ストリーム取得制御部151は、セレクタ23を制御し、非圧縮のベースバンド信号を時系列に所定の長さのセクションに分割させ、エンコーダユニット24に供給させる。
コマンドおよび制御情報取得部152は、コマンドおよび制御情報送出部134からストリームのデコードおよびエンコードに必要な各種のパラメータを取得し、復号制御部153および符号化制御部154に供給する。
復号制御部153は、コマンドおよび制御情報取得部152から供給されるパラメータに基づいて、デコードユニット22によるデコード処理を制御する。
符号化制御部154は、コマンドおよび制御情報取得部152から供給されるパラメータに基づいて、エンコーダユニット24による、所定の制約に基づいたエンコード処理を制御する。
ストリーム結合制御部155は、記憶・出力部103を制御して、エンコーダユニット24によりエンコードされた符号化ストリームの結合および出力を制御する。
なお、図3においては、CPU11およびCPU20が実行可能な機能を分割して説明したが、これらの機能は、制御部101として、1つのCPUで実現されるものであっても、3つ以上のCPUで実現されるものであってもよいことは言うまでもない。
次に、図4のフローチャートを参照して、CPU11の処理について説明する。
ステップS1において、CPU11(操作入力取得部131)は、図示しない操作入力部により、ユーザから、実行される処理の指令を受ける。処理としては、例えば、HDD16に保存されているベースバンド信号をエンコードさせる処理であったり、HDD16に保存されているIntra符号化ストリームをLongGOPの符号化ストリームに変換させる処理であったり、HDD16に保存されている符号化ストリームまたはベースバンド信号を、所定の編集点で接続させる処理などである。
ステップS2において、CPU11(デコードおよびエンコード区間決定部132)は、ユーザの操作入力を基に、デコードおよびエンコード区間を決定する。そして、CPU11(コマンドおよび制御情報送出部134)は、ユーザの操作入力に基づいた処理を実行させるためのコマンドを生成し、生成したコマンドを、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、CPU20に送出する。
ステップS3において、CPU11(ストリーム送出制御部133)は、処理されるデータの送出を制御する。具体的には、CPU11は、処理される符号化ストリームまたはベースバンド信号を、ノースブリッジ12、および、PCIバス14を介して、PCIブリッジ17に供給する。
ステップS4において、CPU11は、CPU20から、供給されたコマンド処理に基づいたデータの処理が終了したことの通知を受け、ノースブリッジ12、PCIバス14、および、PCIブリッジ17を介して、メモリ18から結合された符号化ストリームを読み出し、ノースブリッジ12およびサウスブリッジ15を介して、HDD16への処理後のデータの記憶を制御し、処理が終了される。
このような処理により、ユーザの操作入力に基づいた処理が実行されるように、CPU11において、コマンドが生成されてCPU20に送出されるとともに、HDD16に格納されているデータが、PCIブリッジ17に供給され、CPU20の制御に基づいて処理されて生成された符号化ストリームが、HDD16に格納される。
次に、図5のフローチャートを参照して、CPU20の処理について説明する。
ステップS21において、CPU20(コマンドおよび制御情報取得部152)は、CPU11から、ノースブリッジ12、PCIバス14、PCIブリッジ17、および、コントロールバス19を介して、コマンドの供給を受ける。また、CPU20(ストリーム取得制御部151)は、PCIブリッジ17を制御して、供給された符号化ストリームまたはベースバンド信号を、メモリ18に保存させる。
ステップS22において、CPU20(コマンドおよび制御情報取得部152)は、供給されたコマンドに基づいて、処理されるデータは、デコーダに供給する必要のあるデータであるか否かを判断する。
ステップS22において、処理されるデータは、デコーダに供給する必要のあるデータであると判断された場合、ステップS23において、CPU20(ストリーム取得制御部151)は、PCIブリッジ17を制御して、処理するデータ、すなわち、符号化ストリームをデコーダユニット22に供給させる。そして、CPU20(復号制御部153)は、デコーダユニット22を制御して、デコード処理を実行させ、デコードされて生成された、非圧縮のベースバンド信号をセレクタ23に供給させ、処理は、後述するステップS25に進む。
ステップS22において、処理されるデータは、デコーダに供給する必要のあるデータではないと判断された場合、ステップS24において、CPU20(ストリーム取得制御部151)は、PCIブリッジ17を制御して、処理するデータ、すなわち、ベースバンド信号をセレクタ23に供給させ、処理は、後述するステップS25に進む。
ステップS23、または、ステップS24の処理の終了後、ステップS25において、CPU20(符号化制御部154)は、CPU11から供給されたコマンドに基づいて、セレクタ23を制御し、セレクタ23に供給されたベースバンド信号をセクションに分割させ、並行して利用するエンコーダ41の数のセクションでセクショングループを設定して、セクションごとに、それぞれのセクションをエンコードするために必要なベースバンド信号を、エンコーダユニット24のうちの所定数のエンコーダ41に供給させる。
ステップS26において、CPU20(符号化制御部154)は、CPU11から供給されたコマンドに基づいて、エンコーダユニット24を制御して、それぞれのセクションのエンコード処理を、所定の制約のもとに実行させ、エンコードされて生成された符号化ストリームをPCIブリッジ17に供給させる。
ステップS27において、CPU20(ストリーム結合制御部155)は、CPU11から供給されたコマンドに基づいて、PCIブリッジ17を制御して、供給された符号化ストリームがユーザの操作入力に基づいた順に連続するように、保存されるアドレスを制御して、エンコーダ41から供給されたそれぞれのセクションに該当する長さの符号化ストリームをメモリ18に保存させ、エンコード後の符号化ストリームの結合を制御する。
ステップS28において、CPU20は、コントロールバス19、PCIブリッジ17、PCIバス14、および、ノースブリッジ12を介して、CPU11に、供給されたコマンド処理に基づいたデータの処理が終了したことを通知し、処理が終了される。
このような処理により、CPU20は、CPU11から供給されたコマンドに基づいて、PCIブリッジ17、デコーダユニット22、セレクタ23、および、エンコーダユニット24を制御して、例えば、HDD16に保存されているベースバンド信号をエンコードさせる処理であったり、HDD16に保存されているIntra符号化ストリームをLongGOPの符号化ストリームに変換させる処理であったり、HDD16に保存されている符号化ストリームまたはベースバンド信号を、所定の編集点で接続させる処理などの実行を制御する。
上述したように、エンコーダユニット24は、複数のエンコーダ41により構成されており、それぞれのエンコーダ41は、セレクタ23から、非圧縮のベースバンド信号の供給を受け、エンコード処理を実行し、エンコードの結果得られる符号化ストリームをPCIブリッジ17に供給する。PCIブリッジ17に供給されたそれぞれの短い符号化ストリームは、CPU20の制御に基づいて、メモリ18の所定のアドレス位置に書き込まれて、結合される。
エンコーダユニット24においては、複数のエンコーダ41にデータが分割されて並行してエンコードが実行される。そして、エンコードの結果得られたセクションごとの符号化ストリームメモリ18において所定のアドレス位置に書き込まれることにより、符号化ストリームが結合されるが、結合されたストリームの連続性が、さまざまな条件において矛盾しないためには、所定の制約に基づいてエンコード処理が実行されなければならない。
エンコード処理に所定の制約を課す方法として、分割されて生成されるセクションの先頭GOPをClosed GOPとする場合の制約を有する方法1、分割されて生成されるセクションの先頭GOPをClosed GOPとせず、セクションの分割を方法1と異なるものとする制約を有する方法2、および、分割されて生成されるセクションの先頭GOPをClosed GOPとせず、セクションの分割は方法2と同一とするが、エンコーダ41に供給されるデータ範囲は方法2とは異なるものとするとともに、部分的にプリエンコードを行う場合の制約を有する方法3などの方法がある。
なお、セレクタ23からエンコーダユニット24に供給される非圧縮のベースバンド信号は、デコーダユニット22によりデコードされて生成された非圧縮のベースバンド信号であっても、PCIブリッジ17から直接セレクタ23に供給された非圧縮のベースバンド信号であってもかまわない。すなわち、上述した方法1、方法2、または、方法3のいずれかでエンコード処理を実現するためには、図6に示される構成要素を少なくとも有している編集装置1であればよい。
セレクタ23は、制御部101の制御に基づいて、取得部102から供給された非圧縮のベースバンド信号を時系列に所定の長さのセクションに分割し、それぞれのセクションをエンコードするために必要なベースバンド信号を、エンコーダユニット24のエンコーダ41-1乃至41-nのうちのいずれか複数のエンコーダ41に供給する。
エンコーダユニット24のエンコーダ41-1乃至41-nのうち、セレクタ23からベースバンド信号の供給を受けたエンコーダ41は、制御部101の制御に基づいて、供給されたベースバンド信号を、所定の制約に基づいて、図7乃至図27を用いて後述するように並列にエンコードし、記憶・出力部103に出力する。
次に、図7乃至図9を参照して、方法1におけるエンコードの制約について説明する。
図7を参照して、データの分割と結合について説明する。図7においては、4セクションを並列してエンコードする場合を例として説明する。
セレクタ23は、Section_Lengthが、エンコード処理により生成されるGOPの長さ GOP_Length の整数倍となるようにベースバンド信号を分割する。すなわち、エンコーダ41により生成される符号化ストリームを構成するGOP長を一般的に良く使われる15フレームであるとした場合、Section_Lengthは、15フレームの整数倍のフレーム数に対応するデータになる。
エンコーダユニット24により並列で同時にエンコードされる複数のセクションによりセクショングループ(Section_Group)が構成される。すなわち、図7に示されるように、4セクションを並列してエンコードする場合においては、セクション0乃至セクション3、セクション4乃至セクション7・・・のように、4セクションで1セクショングループが構成される。
#0エンコーダ41−1乃至#3エンコーダ41−4へ入力されるベースバンド信号は、それぞれのセクションに対応する範囲のベースバンド信号となる。#0エンコーダ41−1乃至#3エンコーダ41−4への入力は、セクション毎に切り替えられる。具体的には、並列に動作させるエンコーダの数をNum_Of_Encoderとすると、素材の先頭からNum_Of_Encoder個のセクション、すなわち、1つのセクショングループに含まれる複数のセクションが、同時にエンコーダ41−1乃至エンコーダ41−4に入力される。
例えば、図7に示されるように、#0エンコーダ41−1に、セクション番号0,4,8・・・のセクションが、#1エンコーダ41-2に、セクション番号1,5,9・・・のセクションが、#2エンコーダ41-3に、セクション番号2,6,10・・・のセクションが、#3エンコーダ41−4に、セクション番号3,7,11・・・のセクションが、それぞれ供給されるものとしてもよいし、同一のセクショングループを構成するセクションが、同時にそれぞれのエンコーダ41に供給されるのであれば、それ以外の供給方法であってもかまわない。例えば、#0エンコーダ41−1に、セクション番号0,7,8・・・のセクションが、#1エンコーダ41-2に、セクション番号1,6,9・・・のセクションが、#2エンコーダ41-3に、セクション番号2,5,10・・・のセクションが、#3エンコーダ41−4に、セクション番号3,4,11・・・のセクションが、それぞれ供給されるものとしてもよいし、#0エンコーダ41−1に、セクション番号0,5,11・・・のセクションが、#1エンコーダ41-2に、セクション番号2,4,9・・・のセクションが、#2エンコーダ41-3に、セクション番号1,7,10・・・のセクションが、#3エンコーダ41−4に、セクション番号3,6,8・・・のセクションが、それぞれ供給されるものとしてもよい。
そして、#0エンコーダ41−1乃至#3エンコーダ41−4は、制御部101(CPU20)の制御に基づいて、供給されたベースバンド信号を、所定の制約に基づいて、並列にエンコードし、エンコード後の符号化ストリームをPCIブリッジ17に出力する。
例えば、#0エンコーダ41−1に、セクション番号0,4,8・・・のセクションが、#1エンコーダ41-2に、セクション番号1,5,9・・・のセクションが、#2エンコーダ41-3に、セクション番号2,6,10・・・のセクションが、#3エンコーダ41−4に、セクション番号3,7,11・・・のセクションが、それぞれ供給されるようになされていた場合、1つ目のセクショングループの入力データ、すなわち、セクション番号0乃至3のセクションが#0エンコーダ41−1乃至#3エンコーダ41−4のそれぞれに供給され、エンコードが実行されて、セクション番号0乃至3のセクションに対応するエンコード後の符号化ストリームがPCIブリッジ17に出力される。そして、2つ目のセクショングループの入力データ、すなわち、セクション番号4乃至7のセクションが#0エンコーダ41−1乃至#3エンコーダ41−4のそれぞれに供給され、エンコードが実行されて、セクション番号4乃至7のセクションに対応するエンコード後の符号化ストリームがPCIブリッジ17に出力される。
PCIブリッジ17は、#0エンコーダ41−1乃至#3エンコーダ41−4から供給されたセクションごとの符号化ストリームが、セクション順に並ぶように、メモリ18の所定のアドレスに記憶させる。
例えば、#0エンコーダ41−1に、セクション番号0,4,8・・・のセクションが、#1エンコーダ41-2に、セクション番号1,5,9・・・のセクションが、#2エンコーダ41-3に、セクション番号2,6,10・・・のセクションが、#3エンコーダ41−4に、セクション番号3,7,11・・・のセクションが、それぞれ供給されるようになされていた場合、1つ目のセクショングループのエンコードが実行されて、#0エンコーダ41−1乃至#3エンコーダ41−4から、セクション番号0乃至3のセクションがPCIブリッジ17を介してメモリ18に供給される。メモリ18においては、セクション番号0乃至3のセクションがセクション番号順に結合されるように、それぞれの記憶アドレスが制御されて記憶される。そして、2つ目のセクショングループのエンコードが実行されて、#0エンコーダ41−1乃至#3エンコーダ41−4から、セクション番号4乃至7のセクションがPCIブリッジ17を介してメモリ18に供給される。メモリ18においては、セクション番号4乃至7のセクションがセクション番号順に結合されるように、それぞれの記憶アドレスが制御されて記憶される。したがって、図7に示されるように、メモリ18においては、それぞれのセクショングループ内のセクションが、セクション順に並んで結合されて記憶される。
そして、方法1におけるエンコードの第1の制約は、セクション単位で個別にエンコードしたストリームをつなげた時に、一つの連続なストリームになる様に、セクションの切れ目がGOPの切れ目となるようにセクションを決定し、少なくともセクションの先頭、すなわち、それぞれのエンコーダ41におけるエンコードの開始点を含むGOPは、Closed GOPとしてエンコードを実行することである。これによりセクション間に、予測による関係が無くなる。
そして、第2の制約は、セクションの先頭、すなわち、それぞれのエンコーダ41におけるエンコードの開始点となるGOPの先頭に、Sequence Headerを付加することである。これにより、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなる。
そして、第3の制約は、セクションの先頭、すなわち、それぞれのエンコーダ41における1セクション分のエンコードの開始点のVBV Buffer Occupancyをあらかじめ決めておき、セクションの最後、すなわち、それぞれのエンコーダ41における1セクション分のエンコード終了点のVBV Buffer Occupancyが、次のSectionの開始点のVBV Buffer Occupancyと等しくなるように、発生符号量の制御を行うことである。
すなわち、セクション番号xの先頭のVBV Buffer Occupancyを、Occupancy_Start_xとし、セクション番号xの最後のVBV Buffer Occupancyを、Occupancy_End_x としたとき、Occupancy_End_x がOccupancy_Start_x+1に等しくなるように、エンコード処理を制御する。これにより、個別にエンコードしたストリームをつなげた時に、VBV Buffer占有量の連続性を保つことができる。
具体的には、図8に示されるように、最終的に結合された場合の符号化ストリームの先頭のVBV Buffer Occupancyの値である、図中、aで示されるOccupancy_Start_Sec0は、予め指定されているものとする。そして、#0エンコーダ41-1でセクション0を、#1エンコーダ41-2でセクション1を、#2エンコーダ41-3でセクション2を、#3エンコーダ41-4でセクション3を、それぞれエンコードする前に、図中c,e,gで示されるOccupancy_Start_Sec1、Occupancy_Start_Sec2、および、Occupancy_Start_Sec3を決定する。これら、セクション先頭のOccupancyの決定方法は、任意である。例えば、セクション毎の符号化難易度があらかじめ分かっている場合、符号化難易度に応じて値を決定してもよいし、符号化難易度が未知である場合、Occupancy_Start_Sec1、Occupancy_Start_Sec2、および、Occupancy_Start_Sec3を、全て、開始点Occupancy_Start_Sec0と同じ値にしてもよい。
そして、#0エンコーダ41-1において、セクション0に対して、VBV Buffer Occupancyの初期値を図中aで示されるOccupancy_Start_Sec0とし、図中bで示される終了点のVBV Buffer Occupancyの値を、続くセクションの先頭のVBV Buffer Occupancyの初期値であるOccupancy_Start_Sec1と等しい値となるように、エンコード処理が実行される。また、#1エンコーダ41-2において、セクション1に対して、VBV Buffer Occupancyの初期値を図中cで示されるOccupancy_Start_Sec1とし、図中dで示される終了点のVBV Buffer Occupancyの値を、続くセクションの先頭のVBV Buffer Occupancyの初期値であるOccupancy_Start_Sec2と等しい値となるように、エンコード処理が実行される。
また、同様に、#2エンコーダ41-3において、セクション2に対して、VBV Buffer Occupancyの初期値を図中eで示されるOccupancy_Start_Sec2とし、図中fで示される終了点のVBV Buffer Occupancyの値を、続くセクションの先頭のVBV Buffer Occupancyの初期値であるOccupancy_Start_Sec3と等しい値となるように、エンコード処理が実行される。そして、#3エンコーダ41-4においては、セクション3に対して、VBV Buffer Occupancyの初期値を図中gで示されるOccupancy_Start_Sec3とし、エンコード処理が実行される。エンコード終了後、図中hで示される終了点のVBV Buffer Occupancyの値であるOccupancy_Start_Sec4は、続くセクションの先頭、すなわち、続くセクショングループの先頭のセクションの先頭のVBV Buffer Occupancyの初期値となる。すなわち、次のセクショングループのエンコードにおいて、#0エンコーダ41-1は、セクション4に対して、VBV Buffer Occupancyの初期値をOccupancy_Start_Sec4として、エンコードを実行する。
このようにして、エンコードされて得られた符号化ストリームは、CPU20の制御に基づいて、メモリ18上において、結合される。
このように発生符号量を制御することにより、結合されて生成される符号化ストリームは、VBV Bufferの占有量の連続性を保つことが可能となり、MPEGの規格を満たした符号化ストリームとなる。
次に、図9のフローチャートを参照して、エンコード処理の第1の例であり、方法1に対応する、エンコード処理1について説明する。
ステップS41において、ストリーム取得制御部151は、エンコーダユニット24に含まれるエンコーダ41のうち並列してエンコードを実行させるエンコーダ41の数を決定し、エンコーダ41への入力データの分割位置、すなわち、図7を用いて説明したセクションとセクショングループを決定する。
ステップS42において、ストリーム取得制御部151は、使用するエンコーダ41の数のセクションの入力データ、すなわち、1セクショングループのデータを取得する。
ステップS43において、符号化制御部154は、入力データのエンコード時におけるピクチャタイプを、セクションの切れ目がGOPの切れ目となるように、決定する。
ステップS44において、ストリーム取得制御部151は、セクションごとのデータを入力するエンコーダ41を決定する。
ステップS45において、符号化制御部154は、図8を用いて説明したように、処理を実行するセクショングループが、処理されるデータの先頭である場合は、その先頭セクションの開始点におけるVBV Buffer Occupancyの値は、予め指定されている値とし、処理を実行するセクショングループが、処理されるデータ全体の先頭ではない場合は、その先頭セクションの開始点におけるVBV Buffer Occupancyの値は、前セクショングループの最後のセクションの終了点におけるVBV Buffer Occupancyの値を引き継ぐものとするとともに、それ以外のセクション、すなわち、セクショングループの先頭以外のセクションの開始点におけるVBV Buffer Occupancyの値を決定する。
これら、セクショングループの先頭以外のセクション先頭のOccupancyの決定方法は、任意である。例えば、セクション毎の符号化難易度があらかじめ分かっている場合、符号化難易度に応じて値を決定してもよいし、符号化難易度が未知である場合、Occupancy_Start_Sec1、Occupancy_Start_Sec2、および、Occupancy_Start_Sec3を、全て、開始点Occupancy_Start_Sec0と同じ値にしてもよい。
ステップS46において、符号化制御部154は、図8を用いて説明したように、処理を実行するセクショングループの最後のセクション以外の終了VBV Buffer Occupancyの値を、次のセクションの開始点におけるVBV Buffer Occupancyの値に決定する。
ステップS47において、ストリーム取得制御部151は、セレクタ23を制御して、並列に処理されるデータを、エンコーダユニット24の対応するエンコーダ41にそれぞれ供給させ、符号化制御部154は、エンコーダユニット24の対応するエンコーダ41を制御して、それぞれのセクションを、個別に、上述した方法1の3つの制約を守りながらエンコードさせる。
すなわち、セクション単位で個別にエンコードしたストリームをつなげた時に、一つの連続なストリームになる様に、セクションの切れ目がGOPの切れ目となるようにセクションを決定し、セクションの先頭、すなわち、それぞれのエンコーダ41におけるエンコードの開始点を含むGOPのみClosed GOPとする第1の制約、セクションの先頭、すなわち、それぞれのエンコーダ41におけるエンコードの開始点となるGOPの先頭に、Sequence Headerを付加する第2の制約、および、セクションの先頭、すなわち、それぞれのエンコーダ41における1セクション分のエンコードの開始点のVBV Buffer Occupancyをあらかじめ決めておき、セクションの最後、すなわち、それぞれのエンコーダ41における1セクション分のエンコード終了点のVBV Buffer Occupancyが、次のセクションの開始点のVBV Buffer Occupancyと等しくなるように、発生符号量の制御を行う第3の制約に基づいて、エンコードが実行される。
ステップS48において、符号化制御部154は、エンコードしたセクショングループの最後のセクションの終了VBV Occupancyの値を、次のエンコードのために一時保存する。
ステップS49において、ストリーム結合制御部155は、エンコーダユニット24からPCIブリッジ17に供給された符号化ストリームの、メモリ18におけるアドレスを制御することにより、並列で使用されたエンコードの数と等しい数のセクションのエンコーダ出力データ、すなわち、セクションに対応する所定長の符号化ストリームの結合を制御する。
ステップS50において、符号化制御部154は、エンコードは終了されるか否かを判断する。ステップS50において、エンコードが終了されないと判断された場合、処理は、ステップS41に戻り、それ以降の処理が繰り返される。ステップS50において、エンコードが終了されると判断された場合、処理が終了される。
このような処理により、セクション間に、予測による関係が無くなり、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなり、VBV Buffer Occupancyが、セクション間で連続するので、複数のエンコーダ41において並列して個別にエンコードされた符号化ストリームを、メモリ18上でそのまま接続して、破綻のない符号化ストリームを得ることができる。
このようにして、複数のエンコーダ41を並列にエンコードさせることができるので、高速な処理を実行することが可能なエンコーダを用いることなく、換言すれば、それぞれのエンコーダ41が有する処理能力以上に、高速なLong GOP構造の符号化処理を行う事が可能となる。
次に、図10乃至図19を参照して、方法2について説明する。
方法1においては、ユニットの先頭のGOPをClosed GOPとしてエンコードしたが、方法2においては、Closed GOPの制約は行わず、他の制約を基に、エンコードを実行する。
まず、図10乃至図12を参照して、方法2を導き出すために、Closed GOPの制約を行わない場合のセクションとそれぞれのエンコーダ41に実際に入力されるデータとの関係を、参照画の観点から考えた場合について説明する。なお、図10乃至図12を用いて説明する内容は、方法2を導き出すための考え方を説明するためのものであって、結果的には、方法2に適用されていない。
図10においては、方法1におけるセクションを、Section_closedと表している。セレクタ23が、方法1と同様にして、Section_Lengthが、エンコード処理により生成されるGOPの長さ GOP_Length の整数倍となるようにベースバンド信号を分割した場合、Closed GOPの制約を行わないならば、エンコードには、GOP先頭の2枚のBピクチャの参照画となる前のGOPのPピクチャが必要となってしまう。そこで、全体のエンコード処理の先頭、すなわち、前のフレームが存在しないセクション番号0以外は、Section_closedに対して、一つ前のセクションの最後の1ピクチャを加えた部分がエンコーダ41に供給されるものとする。図10においては、それぞれのエンコーダに供給されるべき部分を、Section_x_inputで示している。すなわち、図中、Overlap1,2,3,4と示されるように、それぞれのセクションに対応するSection_x_inputは、その前後のセクションに対応するSection_x_inputと、1ピクチャ分ずつ重なって設定されている。
このように、GOPの切れ目を基準として、セクションを決定し、エンコーダ41に供給されるデータの開始点が、一つ前のセクションのGOPの最後のピクチャの前、エンコーダ41に供給されるデータの終了点がGOPの終了点となるようにして、エンコードを実行した場合、それぞれのセクションにおけるピクチャタイプは、Section_x_inputを決定する基準となったSection_closedにおけるGOPのピクチャタイプと同様に定められる。
したがって、Coding Orderにおいて、先頭のIピクチャに続く2枚のBピクチャをエンコードするための参照画像として必要な一つ前のGOPのPピクチャも、常に、エンコーダ41に供給される。それぞれのエンコーダ41においては、Section_x_inputの先頭のPピクチャは、エンコーダの参照画像として用いられるのみであり、エンコード後のSection_x_inputの先頭のPピクチャは出力されない。
このようなセクション分割を行い、4セクションを並列してエンコードする場合の処理について図11および図12を用いて説明する。
図11には、2つのセクションブロック、すなわち、セクション0乃至セクション7において、#0エンコーダ41−1乃至#3エンコーダ41−4のそれぞれに供給されるデータ、すなわち、Section_x_inputが示されている。上述したように、Section_x_inputの先頭のPピクチャは、エンコーダの参照画像として用いられるのみであり、エンコード後のSection_x_inputの先頭のPピクチャは出力されない。図11においては、出力される部分を、Section_open xと表している。Section_open xは、図10におけるSection_closedと同一となる。
ここでは、方法1と同様に、それぞれのセクションが供給されるエンコーダ41が決定されるものとする。そして、方法1の第2の制約および第3の制約が、同様にして課せられるものとする。
セクション0以外のセクション1乃至セクション7においては、セクション先頭がOpen GOPであるため、セクション先頭の2枚のB-Pictureは、セクション外のピクチャ、すなわち、セクション直前のPピクチャを参照してエンコードが行われる。セクション0以外のセクション1乃至セクション7において、Section_open xに含まれない先頭のPピクチャは、続くGOPの先頭の2枚のBピクチャのエンコードの参照画としてのみ用いられる。
まず、#0エンコーダ41−1乃至#3エンコーダ41−4に、図10のSection_x_inputで示される部分がDisplay Orderで入力され、次にCoding Orderに並び替えられた後、エンコードが実行される。
図12に示されるように、例えば、#1エンコーダ41−2においてエンコードされる、図中αで示されるセクション先頭の2枚のBピクチャは、図中βで示されるそのGOPの前のGOP、すなわち、一つ前のセクションの最後のGOPの最後のPピクチャと、図中γで示される同一のGOPの先頭のIピクチャとを参照してエンコードされる。しかしながら、図中αで示されるセクション先頭の2枚のBピクチャがエンコードされる時点では、#0エンコーダ41−1において図中βで示されるPピクチャはまだエンコードされていない。そこで、図中βで示されるPピクチャと同じ図中β´で示されるPピクチャを#1エンコーダ41−2に供給して、参照画として用いる。
しかしながら、連続したデータを1つのエンコーダで従来どおりエンコードする場合に、図中βで示されるPピクチャを参照画で使うとき、実際に使われるのは、一度エンコードした後デコードした画である。換言すれば、図中αで示されるセクション先頭の2枚のBピクチャは、セクションで分割されなかった場合、エンコードされたPピクチャをエンコーダ内で再度デコードすることにより得られる、歪んだ画を用いてエンコードされるべきものである。ここで、エンコーダ内で、一度エンコードした後参照のためデコードされて得られた画をローカルデコード画と称する。
したがって、図中β´で示されるPピクチャにおいても、同様に一度エンコードした後デコードし、得られるローカルでコード画を参照画として用いることが求められる。図中βで示されるPピクチャと図中β´で示されるPピクチャとのローカルデコード画を同じものにするためには、同じエンコード条件でエンコードする必要がある。しかしながら、ピクチャタイプがPであるピクチャを、同じ条件でエンコードするためには、直前のIピクチャと、それ以降のPピクチャを、#0エンコーダ41−1における場合と全て同じ条件で#1エンコーダ41−2においてエンコードする必要があるが、エンコード条件を合わせるのは、非常に困難であり、このような方法を取ることは、非常に効率が悪い。
また、これに対して、図中β´で示されるピクチャをIピクチャとしでエンコードする方法も考えられるが、ローカルデコード画は異なったものとなってしまい、デコードの際に画質劣化を引き起こしてしまう可能性が高い。
このように、参照画としてセクションをまたいでデコーダに供給されるピクチャがPピクチャとなるようなセクションの分割の方法は、効率が悪く、画質劣化を引き起こしてしまう可能性が高いので、不適切であるということができる。そこで、次に、参照画として次のセクションをまたいでエンコーダ41に供給されるピクチャがIピクチャとなるようなセクションの分割の方法について考える。
Iピクチャは、他のピクチャを参照することなく、自分自身のみでエンコードが完結する。また、同じエンコーダを使う場合、エンコードアルゴリズムは同一となるものと考えられるので、初期パラメータが同じであれば、同じエンコード結果が得られると推測される。よって、方法2においては、参照画としてセクションをまたいでデコーダに供給されるピクチャをIピクチャとして、そのピクチャのエンコードにおける初期パラメータ同一となるように制御することにより、異なるエンコーダのローカルデコード画を同一のものとする。
図13を参照して、方法2におけるセクションの分割位置と、エンコーダ41へ入力するピクチャとについて説明する。
図13においては、方法1におけるセクションを、Section_closedと表している。セレクタ23は、方法2において、方法1におけるセクションSection_closedを基準として、GOPのIピクチャまたはPピクチャの間隔M(一般的な15ピクチャのMPEG LongGOPでは、M=3)だけ分割位置を後ろにずらして、セクションの分割位置を決定する。なお、全体のエンコード処理の先頭、すなわち、前のフレームが存在しないセクション番号0においては、Section_closedにおける場合と同様のピクチャ構成でエンコードが行われ、セクションの終了点のみ、間隔Mだけ後ろにずれる。図13において、方法2のセクション分割を、Section_open xで示す。
また、方法2における、セクションとピクチャタイプの関係、すなわち、図中Section_openで示される方法2におけるセクションの境界の位置は、GOPの先頭のBBIと、続く2枚のBピクチャとの間となるように設定される。
また、セクションの最初の不完全な(先頭のBBIがぬけている)GOPのそれぞれのピクチャをエンコードするためには、前のセクションの最後のIピクチャが参照画として必要である。そこで、全体のエンコード処理の先頭、すなわち、前のフレームが存在しないセクション番号0以外は、Section_open xに対して、一つ前のセクションの最後の1ピクチャ、すなわち、参照画として用いられるIピクチャを加えた部分がエンコーダ41に供給されるものとする。図13においては、それぞれのエンコーダに供給されるべき部分を、Section_x_inputで示している。すなわち、図中、Overlap1,2,3,4と示されるように、それぞれのセクションに対応するSection_x_inputは、その前後のセクションに対応するSection_x_inputと、1ピクチャ分ずつ重なって設定されている。
そして、使用されるエンコーダ41の数のセクションでセクショングループが設定され、セクショングループごとに、並行してエンコードが実行されるように、それぞれのセクションに対応するSection_x_inputの範囲のベースバンド信号が、所定のエンコーダ41に供給される。なお、それぞれのセクションに対応するSection_x_inputの範囲のベースバンド信号が、いずれのエンコーダ41に供給されるかの決定方法は、方法1と同様である。
このように、方法2においては、GOPの切れ目からMだけ後ろにずれた位置を基準として、セクションが決定され、エンコーダ41に供給されるデータの開始点が、一つ前のセクションの最後のピクチャの前、エンコーダ41に供給されるデータの終了点がセクションの終了点となるように決定される。
したがって、Coding Orderにおいて、セクションの先頭となる2枚のBピクチャをエンコードするための参照画像として必要な一つ前のセクションのIピクチャも、常に、エンコーダ41に供給される。それぞれのエンコーダ41においては、Section_x_inputの先頭のIピクチャは、エンコーダの参照画像として用いられるのみであり、エンコード後のSection_x_inputの先頭のIピクチャは出力されない。
方法2において4セクションを並列してエンコードする場合の処理について、図14および図15を用いて説明する。
図14には、2つのセクションブロック、すなわち、セクション0乃至セクション7において、#0エンコーダ41−1乃至#3エンコーダ41−4のそれぞれに供給されるデータ、すなわち、Section_x_inputが示されている。上述したように、セクション1乃至セクション7のection_x_inputの先頭のIピクチャは、エンコーダの参照画像として用いられるのみであり、エンコード後のSection_x_inputの先頭のIピクチャは出力されない。図中Section_open xの部分のみが、エンコードされて出力される。
セクション0以外のセクション1乃至セクション7においては、セクション先頭の2枚のB-Pictureは、セクション外のピクチャ、すなわち、セクション直前のIピクチャを参照してエンコードが行われる。セクション0以外のセクション1乃至セクション7において、Section_open xに含まれない先頭のIピクチャは、セクションの先頭の2枚のBピクチャのエンコードの参照画としてのみ用いられる。
まず、#0エンコーダ41−1乃至#3エンコーダ41−4に、図13のSection_x_inputで示される部分がDisplay Orderで入力され、次にCoding Orderに並び替えられた後、エンコードが実行される。
例えば、#1エンコーダ41−2においてエンコードされる、セクション先頭の2枚のBピクチャは、一つ前のセクションの最後のGOPの最後のIピクチャと、同一のセクションの先頭のPピクチャとを参照してデコードされる。しかしながら、セクション先頭の2枚のBピクチャがデコードされる時点では、#0エンコーダ41−1において最後のIピクチャはまだデコードされていない。そこで、図15に示されるように、#0エンコーダ41−1に供給されるセクションの最後のIピクチャと同じIピクチャを#1エンコーダ41−2に供給して、参照画として用いる。
すなわち、エンコードするピクチャの単位であるセクションの切れ目が、他のセクションのピクチャを参照しているOpen構造であるので、Section_x_inputの先頭ピクチャをIピクチャとしてエンコードし、ローカルデコード画を得て、これを参照画として、対応するセクションのベースバンド信号をエンコードする。この参照画のIピクチャのエンコード条件は、一つ前のセクションでエンコードする同じIピクチャと、完全に一致するようにする。もちろん、セクショングループの先頭セクションの参照画のエンコード条件は、前のセクション、すなわち、前のセクショングループの最後のセクションの同じピクチャのエンコード条件を引き継ぐようになされる。なお、参照画以外のピクチャにおいては、通常通り、エンコード条件が決定される。
すなわち、#0エンコーダ41−1乃至#n−1エンコーダ41−nが、同一の機能を有するエンコーダである場合、同じアルゴリズムでエンコードが実行されるので、初期パラメータをあらかじめ決めておき、それを両方のIピクチャのエンコードで使用するようにする。例えば、TM5のstep2を使って画面内のQスケールを決定するレートコントロールをしている場合、ピクチャの割り当てビットと最初のマクロブロックのQスケールを同じにする事で、同じエンコード結果を得ることができる。
セクション1乃至セクション7における実際のエンコードは、参照画であるIピクチャのローカルデコード画が生成された後、これを用いて、セクション先頭のPピクチャから開始され、続く2枚のBピクチャは、これらIピクチャおよびPピクチャを参照画としてエンコードされる。
これにより、セクション間に、予測による相互関係がある場合においても、参照画像を用意するために複雑な処理を実行したり、ローカルデコード画の作成のために画質を劣化させることなく、複数のエンコーダ41において、並列してセクションごとにエンコード処理を行うことが可能となる。
すなわち、方法2においては、方法1におけるセクションSection_closedを基準として、GOPのIピクチャまたはPピクチャの間隔M(一般的な15ピクチャのMPEG LongGOPでは、M=3)だけ分割位置を後ろにずらして、セクションの分割位置を決定する第4の制約と、全体のエンコード処理の先頭、すなわち、前のフレームが存在しないセクション番号0以外は、Section_open xに対して、一つ前のセクションの最後の1ピクチャ、すなわち、参照画として用いられるIピクチャを加えた部分がエンコーダ41に供給されるものとする第5の制約と、参照画として用いられるIピクチャのエンコード条件は、一つ前のセクションでエンコードする同じIピクチャと、完全に一致する様にする第6の制約が、新たに課せられる。
また、方法2においても、方法1と同様に、それぞれのセクションが供給されるエンコーダ41が決定されるものとする。
そして、方法2においても、方法1の第2の制約と略同様の制約および第3の制約が、同様にして課せられる。
すなわち、図8を用いて説明した場合と同様にして、それぞれのエンコーダ41における1セクション分のエンコードの開始点、すなわち、セクション先頭のPピクチャのVBV Buffer Occupancyをあらかじめ決めておき、セクションの最後、すなわち、それぞれのエンコーダ41における1セクション分のエンコード終了点のVBV Buffer Occupancyが、次のSectionの開始点のVBV Buffer Occupancyと等しくなるように、換言すれば、セクション番号xの先頭のVBV Buffer Occupancyを、Occupancy_Start_xとし、セクション番号xの最後のVBV Buffer Occupancyを、Occupancy_End_xとしたとき、Occupancy_End_xがOccupancy_Start_x+1に等しくなるように、エンコード処理が制御される。これにより、個別にエンコードしたストリームをつなげた時に、VBV Buffer占有量の連続性を保つことができる。
また、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャに、Quant Matrix Extensionが付加される。すなわち、方法1においては、Sequence HeaderがIピクチャに付加されることにより、Q-Matrixが、セクション毎にリセットされたが、方法2においては、先頭がPピクチャなので、Q-Matrixをセクションごとにリセットするために、Quant Matrix Extensionが付加される。これにより、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなる。
そして、エンコードされて得られた符号化ストリームは、CPU20の制御に基づいて、メモリ18上において、結合される。
次に、図16のフローチャートを参照して、エンコード処理の第2の例であり、方法2に対応する、エンコード処理2について説明する。
ステップS81において、ストリーム取得制御部151は、エンコーダユニット24に含まれるエンコーダ41のうち並列してエンコードを実行させるエンコーダ41の数を決定し、エンコーダ41への入力データの分割位置、すなわち、図13乃至図15を用いて説明したセクションとセクショングループを決定する。
ステップS82において、ストリーム取得制御部151は、使用するエンコーダ41の数のセクションの入力データを取得する。
ステップS83において、符号化制御部154は、セクションの切れ目がGOPの切れ目から、IピクチャまたはPピクチャの間隔Mピクチャ分だけ後ろとなるように、例えば、一般的な15ピクチャのLongGOPにおいては、GOPの先頭のBBIと、続く2枚のBピクチャとの間となるように、入力データのエンコード時におけるピクチャタイプを決定する。
ステップS84において、ストリーム取得制御部151は、セクションごとのデータを入力するエンコーダ41を決定する。
ステップS85において、符号化制御部154は、セクションの先頭に供給される、Iピクチャに対応する参照画のエンコード条件は、前のセクションの同じピクチャのエンコード条件と同一となるように、また、他のピクチャは、通常通り、エンコード条件を決定する。もちろん、セクショングループの先頭セクションの参照画のエンコード条件は、前のセクショングループの最後のセクションの同じピクチャのエンコード条件を引き継ぐようになされる。
ステップS86において、符号化制御部154は、図8を用いて説明したように、処理を実行するセクショングループが、符号化されるデータの先頭である場合は、その先頭セクションの開始点におけるVBV Buffer Occupancyの値は、予め指定されている値とし、処理を実行するセクショングループが、符号化されるデータの先頭ではない場合は、その先頭セクションの開始点におけるVBV Buffer Occupancyの値は、前セクショングループの最後のセクションの終了点におけるVBV Buffer Occupancyの値を引き継ぐものとするとともに、それ以外のセクション、すなわち、セクショングループの先頭以外のセクションの開始点におけるVBV Buffer Occupancyの値を決定する。
ステップS87において、符号化制御部154は、図8を用いて説明したように、処理を実行するセクショングループの最後のセクション以外の終了VBV Buffer Occupancyの値を、次のセクションの開始点におけるVBV Buffer Occupancyの値に決定する。
ステップS88において、図17乃至図19を用いて後述するセクションのエンコード処理1が実行される。
ステップS89において、符号化制御部154は、エンコードしたセクショングループの最後のセクションの終了VBV Occupancyの値を、次のセクショングループのエンコードのために一時保存する。
ステップS90において、符号化制御部154は、エンコードしたセクショングループの最後のセクションのIピクチャのエンコード条件を、次のセクショングループのエンコードのために一時保存する。
ステップS91において、ストリーム結合制御部155は、エンコーダユニット24からPCIブリッジ17に供給された符号化ストリームの、メモリ18におけるアドレスを制御することにより、並列で使用されたエンコードの数と等しい数のセクションのエンコーダ出力データ、すなわち、セクションに対応する所定長の符号化ストリームの結合を制御する。
ステップS92において、符号化制御部154は、エンコードは終了されるか否かを判断する。ステップS92において、エンコードが終了されないと判断された場合、処理は、ステップS81に戻り、それ以降の処理が繰り返される。ステップS92において、エンコードが終了されると判断された場合、処理が終了される。
このような処理により、セクション間に、予測による関係があっても、画質の劣化を発生することなく参照画をIピクチャとして用意することができ、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなり、VBV Buffer Occupancyが、セクション間で連続するので、複数のエンコーダ41において並列して個別にエンコードされた符号化ストリームを、メモリ18上でそのまま接続して、破綻のない符号化ストリームを得ることができる。
したがって、複数のエンコーダ41を並列にエンコードさせる事により、高速なLong GOP構造の符号化処理を行う事が可能となる。
また、セクションの先頭に対応するGOPをClosedGOPとせず、OpenGOPとすることができるので、方法1と比較して、エンコードによる画質の劣化を抑制することが可能となる。
次に、図17乃至図19のフローチャートを参照して、図16のステップS88において実行される、セクションのエンコード処理1について説明する。
セクションのエンコード処理1は、符号化制御部154により、それぞれのエンコーダ41ごとに、個別に制御が実行されるものである。
ステップS121において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、先頭のセクションのピクチャであるか否かが判断される。ステップS121において、先頭のセクションのピクチャであると判断された場合、処理は、後述するステップS147に進む。
ステップS121において、先頭のセクションのピクチャではないと判断された場合、ステップS122において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクショングループの最後のセクションであるか否かを判断する。ステップS122において、セクショングループの最後のセクションであると判断された場合、処理は、後述するステップS137に進む。
ステップS122において、セクショングループの最後のセクションではないと判断された場合、ステップS123において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、供給された最初のピクチャであるか否かを判断する。
ステップS123において、供給された最初のピクチャであると判断された場合、すなわち、セクション外の参照用Iピクチャであると判断された場合、ステップS124において、符号化制御部154は、供給された最初のピクチャ、すなわち、セクション外の参照用Iピクチャを、参照画としてエンコードし、処理は、後述するステップS136に進む。
ステップS123において、供給された最初のピクチャではないと判断された場合、すなわち、セクションに含まれるピクチャであると判断された場合、ステップS125において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、2番目に供給されたピクチャ、すなわち、セクションの先頭のPピクチャであるか否かを判断する。ステップS125において、2番目に供給されたピクチャ、すなわち、セクションの先頭のPピクチャではないと判断された場合、処理は、後述するステップS128に進む。
ステップS125において、2番目に供給されたピクチャ、すなわち、セクションの先頭のPピクチャであると判断された場合、ステップS125において、符号化制御部154は、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャに、Quant Matrix Extensionを付加する。これにより、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなる。
ステップS126において、符号化制御部154は、それぞれのエンコーダ41における1セクション分のエンコードの開始点のVBV Buffer Occupancy、換言すれば、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャのVBV Buffer Occupancyを、指定された所定の値にセットし、処理は、後述するステップS130に進む。
これら、セクショングループの先頭以外のセクション先頭のOccupancyの決定方法は、任意である。例えば、セクション毎の符号化難易度があらかじめ分かっている場合、符号化難易度に応じて値を決定してもよいし、符号化難易度が未知である場合、Occupancy_Start_Sec1、Occupancy_Start_Sec2、および、Occupancy_Start_Sec3を、全て、セクション先頭のOccupancy_Start_Sec0と同じ値にしてもよい。
ステップS125において、2番目に供給されたピクチャ、すなわち、セクションの先頭のPピクチャではないと判断された場合、ステップS128において、符号化制御部154は、MPEGの規則に従い、必要に応じて、Quant Matrix Extensionを付加する。
ステップS129において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの2番目のピクチャであるPピクチャより前のBピクチャであるか否かを判断する。ステップS129において、セクションの2番目のピクチャであるPピクチャより前のBピクチャではないと判断された場合、処理は、後述するステップS131に進む。
ステップS127の処理の終了後、または、ステップS129において、セクションの2番目のピクチャであるPピクチャより前のBピクチャであると判断された場合、すなわち、あるエンコーダ41においてエンコードされるピクチャがセクション先頭のPBBピクチャのいずれかであった場合、ステップS130において、符号化制御部154は、該当するピクチャのエンコードに、参照画として最初に入力されたIピクチャが使用されるものとして、処理は、後述するステップS133に進む。
ステップS129において、セクションの2番目のピクチャであるPピクチャより前のBピクチャではないと判断された場合、ステップS131において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のPピクチャであるか否かを判断する。ステップS131において、セクションの最後のPピクチャであると判断された場合、処理は、後述するステップS135に進む。
ステップS131において、セクションの最後のPピクチャではないと判断された場合、ステップS132において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のIピクチャであるか否かを判断する。ステップS132において、セクションの最後のIピクチャであると判断された場合、処理は、後述するステップS134に進む。
ステップS130の処理の終了後、または、ステップS132において、セクションの最後のIピクチャではないと判断された場合、ステップS133において、符号化制御部154は、図8を用いて説明したように、セクション終了時点において指定されたVBV Buffer Occupancy終了値にバッファ占有量が近づくようにレート制御を行いながら、エンコード処理を実行し、処理は、後述するステップS136に進む。
ステップS132において、セクションの最後のIピクチャであると判断された場合、ステップS134において、符号化制御部154は、並行して他のエンコーダ41において参照画としてエンコードされている対応するIピクチャと同一の固定の条件で、Iピクチャをエンコードし、処理は、後述するステップS136に進む。
ステップS131において、セクションの最後のPピクチャであると判断された場合、ステップS135において、符号化制御部154は、図8を用いて説明したように、セクション終了時点において指定されたVBV Buffer Occupancy終了値にバッファ占有量が一致するようにレート制御を行いながら、エンコード処理を実行する。
ステップS124、ステップS133、ステップS134、または、ステップS135の処理の終了後、ステップS136において、符号化制御部154は、該当するセクションのエンコード処理は終了であるか否かを判断する。ステップS136において、符号化制御部154は、該当するセクションのエンコード処理は終了ではないと判断された場合、処理は、ステップS123に戻り、それ以降の処理が繰り返される。ステップS136において、符号化制御部154は、該当するセクションのエンコード処理は終了であると判断された場合、処理は、図16のステップS88に戻り、ステップS89に進む。
ステップS122において、セクショングループの最後のセクションであると判断された場合、ステップS137乃至ステップS142において、上述したステップS123乃至ステップS128と基本的に同様の処理が実行される。
すなわち、あるエンコーダ41においてエンコードされるピクチャは、供給された最初のピクチャであると判断された場合、すなわち、セクション外の参照用Iピクチャであると判断された場合、符号化制御部154は、供給された最初のピクチャ、すなわち、セクション外の参照用Iピクチャを、参照画としてエンコードする。これに対して、供給された最初のピクチャではないと判断された場合、すなわち、セクションに含まれるピクチャであると判断された場合、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、2番目に供給されたピクチャ、すなわち、セクションの先頭のPピクチャであるか否かを判断する。
2番目に供給されたピクチャ、すなわち、セクションの先頭のPピクチャであると判断された場合、符号化制御部154は、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャに、Quant Matrix Extensionを付加する。これにより、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなる。そして、符号化制御部154は、それぞれのエンコーダ41における1セクション分のエンコードの開始点のVBV Buffer Occupancy、換言すれば、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャのVBV Buffer Occupancyを、指定された所定の値にセットする。
そして、あるエンコーダ41においてエンコードされるピクチャは、2番目に供給されたピクチャ、すなわち、セクションの先頭のPピクチャではないと判断された場合、符号化制御部154は、MPEGの規則に従い、必要に応じて、Quant Matrix Extensionを付加する。
そして、ステップS143において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの2番目のピクチャであるPピクチャより前のBピクチャであるか否かを判断する。ステップS143において、セクションの2番目のピクチャであるPピクチャより前のBピクチャではないと判断された場合、処理は、後述するステップS145に進む。
ステップS141の処理の終了後、または、ステップS143において、セクションの2番目のピクチャであるPピクチャより前のBピクチャであると判断された場合、すなわち、あるエンコーダ41においてエンコードされるピクチャがセクション先頭のPBBピクチャのいずれかであった場合、ステップS144において、符号化制御部154は、該当するピクチャのエンコードに、参照画として最初に入力されたIピクチャを使用するものとする。
ステップS143において、セクションの2番目のピクチャであるPピクチャより前のBピクチャではないと判断された場合、または、ステップS144の処理の終了後、ステップS145において、符号化制御部154は、通常のレート制御でエンコード処理を実行する。
ステップS138、または、ステップS145の処理の終了後、ステップS146において、符号化制御部154は、該当するセクションのエンコード処理は終了であるか否かを判断する。ステップS146において、該当するセクションのエンコード処理は終了ではないと判断された場合、処理は、ステップS137に戻り、それ以降の処理が繰り返される。ステップS146において、該当するセクションのエンコード処理は終了であると判断された場合、処理は、図16のステップS88に戻り、ステップS89に進む。
ステップS121において、先頭のセクションのピクチャであると判断された場合、ステップS147において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、供給された最初のピクチャであるか否かを判断する。ステップS147において、供給された最初のピクチャではないと判断された場合、処理は、後述するステップS149に進む。
ステップS147において、供給された最初のピクチャであると判断された場合、すなわち、先頭セクションの先頭のピクチャであると判断された場合、ステップS148において、符号化制御部154は、先頭セクションのエンコードの開始点のVBV Buffer Occupancyを、指定された所定の値にセットし、処理は、後述するステップS153に進む。
ステップS147において、供給された最初のピクチャではないと判断された場合、ステップS149において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のピクチャであるか否かを判断する。
ステップS149において、セクションの最後のピクチャであると判断された場合、ステップS150において、符号化制御部154は、図8を用いて説明したように、セクション終了時点において指定されたVBV Buffer Occupancy終了値にバッファ占有量が一致するようにレート制御を行いながら、エンコード処理を実行し、処理は、後述するステップS154に進む。
ステップS149において、セクションの最後のピクチャではないと判断された場合、ステップS151において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のIピクチャであるか否かを判断する。ステップS151において、セクションの最後のIピクチャではないと判断された場合、処理は、後述するステップS153に進む。
ステップS151において、セクションの最後のIピクチャであると判断された場合、ステップS152において、符号化制御部154は、並行して他のエンコーダ41において参照画としてエンコードされている対応するIピクチャと同一の固定の条件で、Iピクチャをエンコードし、処理は、後述するステップS154に進む。
ステップS148の処理の終了後、または、ステップS151において、セクションの最後のIピクチャではないと判断された場合、ステップS153において、符号化制御部154は、図8を用いて説明したように、セクション終了時点において指定されたVBV Buffer Occupancy終了値にバッファ占有量が近づくようにレート制御を行いながら、エンコード処理を実行する。
ステップS150、ステップS152、または、ステップS153の処理の終了後、ステップS154において、符号化制御部154は、該当するセクションのエンコード処理は終了であるか否かを判断する。ステップS154において、該当するセクションのエンコード処理は終了ではないと判断された場合、処理は、ステップS147に戻り、それ以降の処理が繰り返される。ステップS154において、該当するセクションのエンコード処理は終了であると判断された場合、処理は、図16のステップS88に戻り、ステップS89に進む。
このような処理により、所定の制約を基に、第2の方法によって、それぞれのセクションがエンコードされる。このようにエンコーダ41のそれぞれを制御することにより、個別にエンコードしたストリームをメモリ18上で結合して、一つの連続なストリームとする事が可能になり、また、複数のエンコーダ41を用いて1つのセクショングループに含まれる複数のセクションを、セクションごとに並列にエンコードさせる事により、高速なLong GOP構造の圧縮符号化を行う事が可能となる。
具体的には、方法2においては、方法1と略同様の第2の制約および第3の制約とともに、方法1とは異なる第4の制約、第5の制約、および、第6の制約が課せられている。
方法2における第2の制約は、セクションの先頭、すなわち、それぞれのエンコーダ41におけるエンコードの開始点に、Quant Matrix Extensionを付加することである。これにより、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなる。
第3の制約は、セクションの先頭、すなわち、それぞれのエンコーダ41における1セクション分のエンコードの開始点のVBV Buffer Occupancyをあらかじめ決めておき、セクションの最後、すなわち、それぞれのエンコーダ41における1セクション分のエンコード終了点のVBV Buffer Occupancyが、次のSectionの開始点のVBV Buffer Occupancyと等しくなるように、発生符号量の制御を行うことである。
そして、第4の制約は、方法1におけるセクションSection_closedを基準として、GOPのIピクチャまたはPピクチャの間隔M(一般的な15ピクチャのMPEG LongGOPでは、M=3)だけ分割位置を後ろにずらして、セクションの分割位置を決定することであり、第5の制約は、全体のエンコード処理の先頭、すなわち、前のフレームが存在しないセクション番号0以外は、Section_open xに対して、一つ前のセクションの最後の1ピクチャ、すなわち、参照画として用いられるIピクチャを加えた部分をエンコーダ41に供給することであり、第6の制約は、参照画として用いられるIピクチャのエンコード条件は、一つ前のセクションでエンコードする同じIピクチャと、完全に一致させることである。第4の制約、第5の制約、および、第6の制約により、セクション間をClosedGOPではなく、OpenGOPとしてエンコードすることができる。
次に、図20乃至図27を参照して、方法3について説明する。
方法3とは、方法2よりも更に、終了VBV Buffer Occupancyを目標値に合わせこむ精度を上げるため、部分的にプリエンコード(その部分だけの2パスエンコード)を行うものである。
図20を参照して、方法3におけるセクションの分割位置と、エンコーダ41へ入力するピクチャとについて説明する。
図20においては、方法1におけるセクションを、Section_closedと表している。セレクタ23は、方法3において、方法2における場合と同様に、方法1におけるセクションSection_closedを基準として、GOPのIピクチャまたはPピクチャの間隔M(一般的な15ピクチャのMPEG LongGOPでは、M=3)だけ分割位置を後ろにずらして、セクションの分割位置を決定する。なお、全体のエンコード処理の先頭、すなわち、前のフレームが存在しないセクション番号0においては、Section_closedにおける場合と同様のピクチャ構成でエンコードが行われ、セクションの終了点のみ、間隔Mだけ後ろにずれる。図30において、方法3のセクション分割を、Section_open xで示す。
また、方法3における、セクションとピクチャタイプの関係も、方法2における場合と同様に、セクションの境界が、GOPの先頭のBBIと、続く2枚のBピクチャとの間となるように設定される。
また、方法2における場合と同様に、方法3においても、セクションの最初の不完全な(先頭のBBIがぬけている) GOPのそれぞれのピクチャをエンコードするためには、前のセクションの最後のIピクチャが参照画として必要である。
方法3においては、全体のエンコード処理の先頭、すなわち、前のフレームが存在しないセクション番号0以外は、Section_open xに対して、セクションの最初の不完全な(先頭のBBIがぬけている) GOPの前の、同一のGOPを構成しているM枚のピクチャの部分、すなわち、図20における前のセクションの最後のBBIと、そのM枚に含まれるBピクチャのエンコードにおいて参照画として利用される、もう1枚前のピクチャとの、M+1枚のピクチャをを加えた部分がエンコーダ41に供給されるものとする。図20においては、それぞれのエンコーダに供給されるべき部分を、Section_x_inputで示している。すなわち、図中、Overlap1,2,3,4と示されるように、それぞれのセクションに対応するSection_x_inputは、その前後のセクションに対応するSection_x_inputと、M+1ピクチャ分ずつ重なって設定されている。すなわち、先頭のセクショングループの先頭のセクションは、セクションに対応する部分のベースバンド信号が、そのまま所定のエンコーダに入力するようになされ、先頭以外のセクションは、該当するセクションとその一つ前のセクションの最後の(M+1)枚のピクチャが入力所定のエンコーダに入力するようになされる。
そして、使用されるエンコーダ41の数のセクションでセクショングループが設定され、セクショングループごとに、並行してエンコードが実行されるように、それぞれのセクションに対応するSection_x_inputの範囲のベースバンド信号が、所定のエンコーダ41に供給される。なお、それぞれのセクションに対応するSection_x_inputの範囲のベースバンド信号が、いずれのエンコーダ41に供給されるかの決定方法は、方法1と同様である。
このように、方法3においては、GOPの切れ目からMだけ後ろにずれた位置を基準として、セクションが決定され、先頭のセクショングループの先頭のセクションは、セクションに対応する部分のベースバンド信号が、そのまま所定のエンコーダに入力するようになされ、先頭以外のセクションは、該当するセクションとその一つ前のセクションの最後の(M+1)枚のピクチャが入力所定のエンコーダに入力するようになされる。
方法3において、4セクションを並列してエンコードする場合の処理について図21および図22を用いて説明する。
図21には、2つのセクションブロック、すなわち、セクション0乃至セクション7において、#0エンコーダ41−1乃至#3エンコーダ41−4のそれぞれに供給されるデータ、すなわち、Section_x_inputが示されている。セクション1乃至セクション7のSection_x_inputの先頭のM+1枚のピクチャは、エンコードの参照画像およびプリエンコード用のデータとして用いられ、エンコード後のSection_x_inputの先頭のM+1ピクチャは出力されない。図中Section_open xの部分のみが、エンコードされて出力される。
まず、#0エンコーダ41−1乃至#3エンコーダ41−4に、Section_x_inputで示される部分がDisplay Orderで入力され、次にCoding Orderに並び替えられた後、エンコードが実行される。
そして、以下の条件で部分的なプリエンコードを実行することにより、VBV Occupancyのつなぎ目を合わせるための情報を得る。
セクション0以外のセクション1乃至セクション7においては、それぞれのエンコーダ41に供給されるベースバンド信号の先頭、すなわち、ひとつ前のセクションにおいては、Pピクチャに対応するピクチャは、Iピクチャとしてエンコードされ、ローカルデコード画が得られる。
また、セクション0以外のセクション1乃至セクション7においては、Coding Orderにおいてその次となるピクチャは、セクション先頭の2枚のBピクチャをエンコードするための参照画となるIピクチャである。この参照画のIピクチャのエンコード条件は、方法2における場合と同様に、一つ前のセクションでエンコードする同じIピクチャと、完全に一致する様にする。もちろん、セクショングループの先頭セクションの参照画のエンコード条件は、前のセクション、すなわち、前のセクショングループの最後のセクションの同じピクチャのエンコード条件を引き継ぐようになされる。
そして、Coding Orderにおいて次に続く2枚のBピクチャが、2枚のIピクチャを参照してエンコードされる。このエンコードは、その一つ前のセクションの最後の部分の発生符号量の制御のために用いられるパラメータを取得するためのプリエンコードであり、プリエンコードの結果得られる符号は、出力されない。
すなわち、図22に示されるように、#1エンコーダ41−2乃至#3エンコーダ41−4において3ピクチャ目と4ピクチャ目にエンコードされるピクチャは、その一つ前のセクションの最後の2枚のBピクチャに対応するものである。そして、一つ前のセクションの最後の2枚のBピクチャは、遅れてエンコードされるので、そのエンコード時に、プリエンコード時に得られた発生符号量の情報を用いることにより、セクション終了点におけるVBV Buffer Occupancyを、目標値に精度よく合致させるようにすることができる。
具体的には、図22に示されるように、それぞれのエンコーダ41に供給されたベースバンド信号において、2番目のピクチャからの1GOPの先頭および最後における仮のVBV Buffer OccupancyであるOccupancy_Start_Sec_closed、および、Occupancy_End_Sec_closedを基に、レートコントロールが実行されてIピクチャおよび2枚のBピクチャのプリエンコードが行われる。
このプリエンコードの結果、実際のエンコードにおけるセクションの開始点のVBV Buffer OccupancyであるOccupancy_Start_Sec_open xが求められる。そして、セクションの最後、すなわち、それぞれのエンコーダ41における1セクション分のエンコード終了点のVBV Buffer Occupancyが、次のSectionの開始点のVBV Buffer Occupancyと等しくなるように設定される。換言すれば、プリエンコードにより求められたセクション番号xの先頭のVBV Buffer Occupancyを、Occupancy_Start_Sec_openxとし、セクション番号xの最後のVBV Buffer Occupancyを、Occupancy_End_Sec_open xとしたとき、Occupancy_End_Sec_open xがOccupancy_Start_Sec_open x+1に等しくなるように、それぞれのOccupancy_End_Sec_open xが設定される。これにより、個別にエンコードしたスト
リームをつなげた時に、VBV Buffer占有量の連続性を保つことができる。
なお、それぞれのセクショングループの先頭のセクションの開始点におけるOccupancy_Start_Sec_openを決める処理は不要である。
セクション1乃至セクション7における実際のエンコードは、セクション外のIIBBの4ピクチャのエンコードの終了後、参照画であるIピクチャのローカルデコード画を用いて、セクション先頭のPピクチャから開始される。
そして、セクション最後のIピクチャは、次のセクションの参照画として用いられたIピクチャと同一のエンコード条件でエンコードが実行される。すなわち、#0エンコーダ41−1乃至#n−1エンコーダ41−nが、同一の機能を有するエンコーダである場合、同じアルゴリズムでエンコード処理が実行されるので、初期パラメータをあらかじめ決めておき、それを両方のIピクチャのエンコードで使用するようにする。例えば、TM5のstep2を使って画面内のQスケールを決定するレートコントロールをしている場合、ピクチャの割り当てビットと最初のマクロブロックのQスケールを同じにする事で、同じエンコード結果を得ることができる。
そして、セクションの最後の2枚のBピクチャは、次のセクションのエンコード前に異なるエンコーダ41において実行されたプリエンコード結果を基に、発生符号量が調整されて、エンコードが実行される。
具体的には、プリエンコード結果を用いて、Iピクチャのエンコード終了時点におけるOccupancyから、プリエンコードの条件で2枚のBピクチャをエンコードしたときの終了点のOccupancyを算出して、目標値となるOccupancy_End_Sec_openとの差分を求め、これを基に、エンコードの条件を変更して符号発生量の調整を行い、終了VBV Buffer OccupancyをOccupancy_End_Sec_openに合致させる。
これにより、セクション間に、予測による相互関係がある場合においても、参照画像を用意するために複雑な処理を実行したり、ローカルデコード画の作成のために画質を劣化させることなく、複数のエンコーダ41において、並列してセクションごとにエンコード処理を行うことが可能であるとともに、セクションの終端部分に対応するピクチャを、異なるエンコーダ21を用いてプリエンコードし、その結果を基にレートコントロールを行うため、セクション間のバッファ占有量の合わせこみの精度が向上する。
すなわち、方法3においては、方法2と同様に、方法1におけるセクションSection_closedを基準として、GOPのIピクチャまたはPピクチャの間隔M(一般的な15ピクチャのMPEG LongGOPでは、M=3)だけ分割位置を後ろにずらして、セクションの分割位置を決定する第4の制約と、参照画として用いられるIピクチャのエンコード条件は、一つ前のセクションでエンコードする同じIピクチャと、完全に一致する様にする第6の制約とが課せられるとともに、方法1および方法2とは異なり、全体のエンコード処理の先頭、すなわち、前のフレームが存在しないセクション番号0以外は、Section_open xに対して、M+1枚分のピクチャ、すなわち、参照画として用いられるIピクチャと、それに続く2枚のBピクチャおよびそれらのBピクチャの参照画として用いられるピクチャ(実際のセクション内ではPピクチャであるが、プリエンコードにおいては、Iピクチャとしてエンコードされる)を加えた部分がエンコーダ41に供給されるものとする第7の制約と、プリエンコードの結果に基づいて、プリエンコードされた部分に対応するピクチャ(ここでは、セクション最後の2枚のBピクチャ)の発生符号量を制御する第8の制約が、新たに課せられる。
また、方法3においても、方法1および方法2と同様に、それぞれのセクションが供給されるエンコーダ41が決定されるものとする。
そして、方法3においても、方法1の第2の制約および第3の制約が、同様にして課せられる。
すなわち、図8を用いて説明した場合と同様にして、それぞれのエンコーダ41における1セクション分のエンコードの開始点、すなわち、セクション先頭のPピクチャのVBV Buffer Occupancyをあらかじめ決めておき、セクションの最後、すなわち、それぞれのエンコーダ41における1セクション分のエンコード終了点のVBV Buffer Occupancyが、次のSectionの開始点のVBV Buffer Occupancyと等しくなるように、エンコード処理を制御する。これにより、個別にエンコードしたストリームをつなげた時に、VBV Buffer占有量の連続性を保つことができる。なお、方法3においては、それぞれのエンコーダ41における1セクション分のエンコードの開始点のVBV Buffer Occupancyを、プリエンコードの結果に基づいて決定することができる。
また、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャに、方法2における場合と同様に、Quant Matrix Extensionが付加される。これにより、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなる。
そして、エンコードされて得られた符号化ストリームは、CPU20の制御に基づいて、メモリ18上において、結合される。
次に、図23のフローチャートを参照して、エンコード処理の第3の例であり、方法3に対応する、エンコード処理3について説明する。
ステップS181乃至ステップS184において、図16を用いて説明したステップS81乃至ステップS84と基本的に同様の処理が実行される。
すなわち、ストリーム取得制御部151は、エンコーダユニット24に含まれるエンコーダ41のうち並列してエンコードを実行させるエンコーダ41の数を決定し、エンコーダ41への入力データの分割位置、すなわち、図20乃至図22を用いて説明したセクションとセクショングループを決定し、使用するエンコーダ41の数のセクションの入力データを取得する。
そして、符号化制御部154は、セクションの切れ目が、GOPの切れ目からIピクチャまたはPピクチャの間隔Mピクチャ分だけ後ろとなるように、例えば、一般的な15ピクチャのLongGOPにおいては、GOPの先頭のBBIと、続く2枚のBピクチャとの間となるように、入力データのエンコード時におけるピクチャタイプを決定する。
そして、ストリーム取得制御部151は、セクションごとのデータを入力するエンコーダ41を決定する。
ステップS185において、符号化制御部154は、セクショングループの先頭のセクションをエンコードするエンコーダに供給されるベースバンド信号のエンコードにおける開始VBV Buffer Occupancyの値は、前のセクションの終了値を引き継ぎ、他のセクションの開始点におけるVBV Buffer Occupancyの値として、2番目のピクチャからの1GOPのエンコードを実行する場合を仮定して、図22を用いて説明した仮のVBV Buffer OccupancyであるOccupancy_Start_Sec_closedを決定する。
ステップS186において、符号化制御部154は、2番目のピクチャからの1GOPのエンコードを実行する場合を仮定して、図22を用いて説明した仮の終了VBV Buffer OccupancyであるOccupancy_End_Sec_closedを決定する。
ステップS187において、図24を用いて後述するプリエンコード処理が実行される。
ステップS188において、符号化制御部154は、セクショングループの中の最後のセクション以外の終了点におけるVBV Buffer Occupancyの値を、プリエンコードで得られた次のセクションの開始点におけるVBV Buffer Occupancyの値に決定する。
ステップS189において、図25乃至図27を用いて後述するセクションのエンコード処理2が実行される。
そして、ステップS190乃至ステップS193において、図16を用いて説明したステップS89乃至ステップS92と同様の処理が実行される。
すなわち、エンコードしたセクショングループの最後のセクションの終了VBV Occupancyの値が、次のセクショングループのエンコードのために一時保存され、エンコードしたセクショングループの最後のセクションのIピクチャのエンコード条件が、次のセクショングループのエンコードのために一時保存される。そして、エンコーダユニット24からPCIブリッジ17に供給された符号化ストリームの、メモリ18におけるアドレスを制御することにより、並列で使用されたエンコードの数と等しい数のセクションのエンコーダ出力データ、すなわち、セクションに対応する所定長の符号化ストリームの結合が制御される。
そして、エンコードは終了されるか否かが判断され、エンコードが終了されないと判断された場合、処理は、ステップS181に戻り、それ以降の処理が繰り返され、エンコードが終了されると判断された場合、処理が終了される。
このような処理により、セクション間に、予測による関係があっても、画質の劣化を発生することなく参照画をIピクチャとして用意することができ、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなり、VBV Buffer Occupancyが、セクション間で連続するので、複数のエンコーダ41において並列して個別にエンコードされた符号化ストリームを、メモリ18上でそのまま接続して、破綻のない符号化ストリームを得ることができる。
したがって、複数のエンコーダ41を並列にエンコードさせる事により、高速なLong GOP構造の符号化処理を行う事が可能となる。
また、セクショングループ先頭セクションに対応するGOPをClosedGOPとせず、OpenGOPとすることができるので、方法1と比較して、エンコードによる画質の劣化を抑制することが可能となる。
更に、プリエンコードを実行し、その結果を用いて符号発生量を制御するものとしたので、方法1および方法2と比較して、メモリ18上で接続された符号化ストリームにおいて、セクション間のOccupancyの連続性を精度よく制御することができる。
次に、図24のフローチャートを参照して、図23のステップS187において実行される、プリエンコード処理について説明する。
プリエンコード処理は、符号化制御部154により、それぞれのエンコーダ41ごとに、個別に制御が実行されるものである。
ステップS221において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、エンコードが実行されるデータの先頭のセクションのピクチャであるか否かが判断される。ステップS221において、先頭のセクションのピクチャであると判断された場合、処理は、図23のステップS187に戻り、ステップS188に進む。
ステップS221において、先頭のセクションのピクチャではないと判断された場合、ステップS222において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクショングループの先頭のセクションであるか否かを判断する。ステップS222において、セクショングループの先頭のセクションであると判断された場合、処理は、後述するステップS230に進む。
ステップS222において、セクショングループの先頭のセクションではないと判断された場合、ステップS223において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、供給された最初のピクチャであるか否かを判断する。
ステップS223において、供給された最初のピクチャであると判断された場合、ステップS224において、符号化制御部154は、そのピクチャをIピクチャとしてエンコードを行い、プリエンコード用の参照画を取得して、処理は、後述するステップS229に進む。
ステップS223において、供給された最初のピクチャではないと判断された場合、ステップS225において、符号化制御部154は、上述したステップS186において決定された、図22を用いて説明した仮の終了点VBV Buffer OccupancyであるOccupancy_End_Sec_closedに、終了点のバッファ占有量が近づくように、レート制御を行いながら、エンコードを行う。
ステップS226において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、供給された2番目のピクチャであるか否かを判断する。
ステップS226において、2番目のピクチャであると判断された場合、ステップS227において、符号化制御部154は、セクション内のピクチャの参照用のIピクチャを取得する。
ステップS226において、2番目のピクチャではないと判断された場合、または、ステップS227の処理の終了後、ステップS228において、符号化制御部154は、実行されたエンコードのエンコード条件および発生符号量を、上位CPU,すなわち、CPU20に供給する。
ステップS224、または、ステップS228の処理の終了後、ステップS229において、符号化制御部154は、エンコードが実行されたのは、(M+1)番目のピクチャであるか否かを判断する。ステップS229において、(M+1)番目のピクチャではないと判断された場合、処理は、ステップS223に戻り、それ以降の処理が繰り返される。ステップS229において、(M+1)番目のピクチャであると判断された場合、処理は、図23のステップS187に戻り、ステップS188に進む。
ステップS222において、セクショングループの先頭のセクションであると判断された場合、ステップS230において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、供給された2番目のピクチャであるか否かを判断する。ステップS230において、供給された2番目のピクチャではないと判断された場合、処理は、後述するステップS233に進む。
ステップS230において、供給された2番目のピクチャであると判断された場合、ステップS231において、符号化制御部154は、そのピクチャを、前のセクション、すなわち、前のセクショングループの最後のセクションの最後のIピクチャと同一の固定の条件で、Iピクチャとしてエンコードを行う。
ステップS232において、符号化制御部154は、セクション内のピクチャの参照画を取得する。
ステップS230において、供給された2番目のピクチャではないと判断された場合、または、ステップS232の処理の終了後、ステップS233において、符号化制御部154は、エンコードが実行されたのは、(M+1)番目のピクチャであるか否かを判断する。ステップS233において、(M+1)番目のピクチャではないと判断された場合、処理は、ステップS230に戻り、それ以降の処理が繰り返される。ステップS233において、(M+1)番目のピクチャであると判断された場合、処理は、図23のステップS187に戻り、ステップS188に進む。
このような処理により、それぞれのエンコーダで、セクション前のM+1枚のピクチャのプリエンコードが実行されて、発生符号量の調整のために用いられるパラメータや、セクション内のピクチャのエンコードに用いられる参照画が取得される。
次に、図25乃至図27を参照して、図23のステップS189において実行される、セクションのエンコード処理2について説明する。
セクションのエンコード処理2は、符号化制御部154により、それぞれのエンコーダ41ごとに、個別に制御が実行されるものである。
ステップS261において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、先頭のセクションのピクチャであるか否かが判断される。ステップS261において、先頭のセクションのピクチャであると判断された場合、処理は、後述するステップS285に進む。
ステップS261において、先頭のセクションのピクチャではないと判断された場合、ステップS262において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクショングループの最後のセクションであるか否かを判断する。ステップS262において、セクショングループの最後のセクションであると判断された場合、処理は、後述するステップS277に進む。
ステップS262において、セクショングループの最後のセクションではないと判断された場合、ステップS263において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最初のピクチャであるか否かを判断する。ステップS263において、セクションの最初のピクチャではないと判断された場合、処理は、後述するステップS266に進む。
ステップS263において、セクションの最初のピクチャであると判断された場合、すなわち、エンコーダ41に供給されたM+2番目のピクチャであるPピクチャであると判断された場合、ステップS264において、符号化制御部154は、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャに、Quant Matrix Extensionを付加する。これにより、Q-Matrixが、セクション毎にリセットされ、他のセクションのエンコード結果の影響を受けなくなる。
ステップS265において、符号化制御部154は、それぞれのエンコーダ41における1セクション分のエンコードの開始点のVBV Buffer Occupancy、換言すれば、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャのVBV Buffer Occupancyを、指定された所定の値、例えば、プリエンコードの終了時のバッファ占有量にセットし、処理は、後述するステップS268に進む。
ステップS263において、セクションの最初のピクチャではないと判断された場合、ステップS266において、符号化制御部154は、MPEGの規則に従い、必要に応じて、Quant Matrix Extensionを付加する。
ステップS267において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの2番目のピクチャであるPピクチャより前のBピクチャであるか否かを判断する。ステップS267において、セクションの2番目のピクチャであるPピクチャより前のBピクチャではないと判断された場合、処理は、後述するステップS269に進む。
ステップS265の処理の終了後、または、ステップS267において、セクションの2番目のピクチャであるPピクチャより前のBピクチャであると判断された場合、すなわち、あるエンコーダ41においてエンコードされるピクチャがセクション先頭のPBBピクチャのいずれかであった場合、ステップS268において、符号化制御部154は、該当するピクチャのエンコードに、参照画として最初に入力されたIピクチャが使用されるものとして、処理は、後述するステップS272に進む。
ステップS267において、セクションの2番目のピクチャであるPピクチャより前のBピクチャではないと判断された場合、ステップS269において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のIピクチャよりも前のピクチャであるか否かを判断する。ステップS269において、セクションの最後のIピクチャよりも前のピクチャであると判断された場合、処理は、後述するステップS272に進む。
ステップS269において、セクションの最後のIピクチャよりも前のピクチャではないと判断された場合、ステップS270において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のBピクチャのうちのいずれかであるか否かを判断する。ステップS270において、セクションの最後のBピクチャのうちのいずれかであると判断された場合、処理は、後述するステップS275に進む。
ステップS270において、セクションの最後のBピクチャのうちのいずれかではないと判断された場合、ステップS271において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のIピクチャであるか否かを判断する。ステップS271において、セクションの最後のIピクチャであると判断された場合、処理は、後述するステップS273に進み、セクションの最後のIピクチャではないと判断された場合、処理は、後述するステップS274に進む。
ステップS268の処理の終了後、または、ステップS269において、セクションの最後のIピクチャよりも前のピクチャであると判断された場合、ステップS272において、符号化制御部154は、指定された仮のVBV Buffer Occupancy終了値にバッファ占有量が近づくようにレート制御を行いながら、エンコード処理を実行し、処理は、後述するステップS276に進む。
ステップS271において、セクションの最後のIピクチャであると判断された場合、ステップS273において、符号化制御部154は、並行して他のエンコーダ41において参照画としてエンコードされている対応するIピクチャと同一の、固定の条件で、Iピクチャをエンコードし、処理は、後述するステップS276に進む。
ステップS271において、セクションの最後のIピクチャではないと判断された場合、ステップS274において、符号化制御部154は、指定されたVBV Buffer Occupancy終了値にバッファ占有量が近づくように、プリエンコードの情報を用いてレート制御を行いながら、エンコード処理を実行し、処理は、後述するステップS276に進む。
ステップS270において、セクションの最後のBピクチャのうちのいずれかであると判断された場合、ステップS275において、符号化制御部154は、指定されたVBV Buffer Occupancy終了値にバッファ占有量が一致するように、プリエンコードの情報を用いてレート制御を行いながら、エンコード処理を実行し、処理は、後述するステップS276に進む。
ステップS272、ステップS273、ステップS274、または、ステップS275の処理の終了後、ステップS276において、符号化制御部154は、該当するセクションのエンコード処理は終了であるか否かを判断する。ステップS276において、符号化制御部154は、該当するセクションのエンコード処理は終了ではないと判断された場合、処理は、ステップS263に戻り、それ以降の処理が繰り返される。ステップS276において、符号化制御部154は、該当するセクションのエンコード処理は終了であると判断された場合、処理は、図23のステップS189に戻り、ステップS190に進む。
ステップS262において、セクショングループの最後のセクションであると判断された場合、ステップS277乃至ステップS280において、上述したステップS263乃至ステップS266と基本的に同様の処理が実行される。
すなわち、あるエンコーダ41においてエンコードされるピクチャは、セクションの最初のピクチャである、すなわち、エンコーダ41に供給されたM+2番目のピクチャであるPピクチャであると判断された場合、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャに、Quant Matrix Extensionが付加され、それぞれのエンコーダ41における1セクション分のエンコードの開始点のVBV Buffer Occupancyが、指定された所定の値、例えば、プリエンコードの終了時のバッファ占有量にセットされる。
そして、セクションの最初のピクチャではないと判断された場合、MPEGの規則に従い、必要に応じて、Quant Matrix Extensionが付加される。
ステップS280の処理の終了後、ステップS281において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの2番目のピクチャであるPピクチャより前のBピクチャであるか否かを判断する。ステップS281において、セクションの2番目のピクチャであるPピクチャより前のBピクチャではないと判断された場合、処理は、後述するステップS283に進む。
ステップS279の処理の終了後、または、ステップS283において、セクションの2番目のピクチャであるPピクチャより前のBピクチャであると判断された場合、すなわち、あるエンコーダ41においてエンコードされるピクチャがセクション先頭のPBBピクチャのいずれかであった場合、ステップS282において、符号化制御部154は、該当するピクチャのエンコードに、参照画として最初に入力されたIピクチャが使用されるものとする。
ステップS281において、セクションの2番目のピクチャであるPピクチャより前のBピクチャではないと判断された場合、または、ステップS282の処理の終了後、ステップS283において、符号化制御部154は、通常のレート制御を行いながら、エンコード処理を実行する。
ステップS284において、符号化制御部154は、該当するセクションのエンコード処理は終了であるか否かを判断する。ステップS284において、符号化制御部154は、該当するセクションのエンコード処理は終了ではないと判断された場合、処理は、ステップS277に戻り、それ以降の処理が繰り返される。ステップS284において、符号化制御部154は、該当するセクションのエンコード処理は終了であると判断された場合、処理は、図23のステップS189に戻り、ステップS190に進む。
ステップS261において、先頭のセクションのピクチャであると判断された場合、ステップS285において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最初のピクチャであるか否かを判断する。
ステップS385において、セクションの最初のピクチャであると判断された場合、すなわち、エンコーダ41に供給されたM+2番目のピクチャであるPピクチャであると判断された場合、ステップS386において、符号化制御部154は、それぞれのエンコーダ41における1セクション分のエンコードの開始点のVBV Buffer Occupancy、換言すれば、セクションの先頭、すなわち、それぞれのエンコーダ41においてエンコードされて生成される符号化ストリームの先頭となるPピクチャのVBV Buffer Occupancyを、指定された所定の値、例えば、プリエンコードの終了時のバッファ占有量にセットし、処理は、後述するステップS288に進む。
ステップS385において、セクションの最初のピクチャではないと判断された場合、ステップS287において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のIピクチャよりも前のピクチャであるか否かを判断する。
ステップS286の処理の終了後、または、ステップS287において、セクションの最後のIピクチャよりも前のピクチャであると判断された場合、ステップS288において、符号化制御部154は、指定された仮のVBV Buffer Occupancy終了値にバッファ占有量が近づくようにレート制御を行いながら、エンコード処理を実行し、処理は、後述するステップS294に進む。
ステップS287において、セクションの最後のIピクチャよりも前のピクチャではないと判断された場合、ステップS289において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のBピクチャのうちのいずれかであるか否かを判断する。ステップS289において、セクションの最後のBピクチャのうちのいずれかであると判断された場合、処理は、後述するステップS293に進む。
ステップS289において、セクションの最後のBピクチャのうちのいずれかではないと判断された場合、ステップS290において、符号化制御部154は、あるエンコーダ41においてエンコードされるピクチャは、セクションの最後のIピクチャであるか否かを判断する。
ステップS290において、セクションの最後のIピクチャであると判断された場合、ステップS291において、符号化制御部154は、並行して他のエンコーダ41において参照画としてエンコードされている対応するIピクチャと同一の、固定の条件で、Iピクチャをエンコードし、処理は、後述するステップS294に進む。
ステップS290において、セクションの最後のIピクチャではないと判断された場合、ステップS292において、符号化制御部154は、指定されたVBV Buffer Occupancy終了値にバッファ占有量が近づくように、プリエンコードの情報を用いてレート制御を行いながら、エンコード処理を実行し、処理は、後述するステップS294に進む。
ステップS289において、セクションの最後のBピクチャのうちのいずれかであると判断された場合、ステップS293において、符号化制御部154は、指定されたVBV Buffer Occupancy終了値にバッファ占有量が一致するように、プリエンコードの情報を用いてレート制御を行いながら、エンコード処理を実行し、処理は、後述するステップS294に進む。
ステップS288、ステップS291、ステップS292、または、ステップS293の処理の終了後、ステップS294において、符号化制御部154は、該当するセクションのエンコード処理は終了であるか否かを判断する。ステップS294において、符号化制御部154は、該当するセクションのエンコード処理は終了ではないと判断された場合、処理は、ステップS285に戻り、それ以降の処理が繰り返される。ステップS294において、符号化制御部154は、該当するセクションのエンコード処理は終了であると判断された場合、処理は、図23のステップS189に戻り、ステップS190に進む。
このような処理により、所定の制約を基に、第3の方法によって、それぞれのセクションがエンコードされる。このようにエンコーダ41のそれぞれを制御することにより、個別にエンコードしたストリームをメモリ18上で結合して、一つの連続なストリームとする事が可能になり、また、複数のエンコーダ41を用いて1つのセクショングループに含まれる複数のセクションを、セクションごとに並列にエンコードさせる事により、高速なLong GOP構造の圧縮符号化を行う事が可能となる。
具体的には、方法3のエンコード処理においては、方法1および方法2と同様の第2の制約および第3の制約とともに、方法2と同様の第4の制約、および、第6の制約が課せられ、更に、方法1および方法2とは異なる法則である、全体のエンコード処理の先頭、すなわち、前のフレームが存在しないセクション番号0以外は、Section_open xに対して、M+1枚分のピクチャ、すなわち、参照画として用いられるIピクチャと、それに続く2枚のBピクチャおよびそれらのBピクチャの参照画として用いられるピクチャ(実際のセクション内ではPピクチャであるが、プリエンコードにおいては、Iピクチャとしてエンコードされる)を加えた部分がエンコーダ41に供給されるものとする第7の制約と、プリエンコードの結果に基づいて、発生符号量を制御する第8の制約が、新たに課せられている。
この第7および第8の制約に基づいてエンコーダを制御することにより、セクションごとに個別にエンコードしたストリームのVBV Bufferの接続を精度よく行い、一つの連続なストリームとする事が可能になる。
このような構成を有することにより、編集装置1は、通常のエンコーダを複数用いる事で、高速なLong GOP構造のエンコード処理を実行することが可能になる。つまり、新たなエンコーダを用意することなく、現状のエンコーダを複数個組み合わせる事で、高速エンコードを実現することができる。これにより、例えば、非圧縮の素材や、Intra Frame構造で圧縮された素材を、Long GOP構造の圧縮に変換する処理や、ストリームを所定の編集点で接続して編集する処理を短時間で行う事が出来る。
なお、ここでは、コーディックの方式としてMPEGを用いた場合を例として説明しているが、フレーム相関を伴うコーディック処理を行う場合、バッファモデリングにしたがうコーディック処理を行う場合においても、本発明は適用可能であることはいうまでもない。例えば、AVC(Advanced Video Coding)/H.264などにおいて、本発明は適用可能である。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。この場合、例えば、図1を用いて説明した編集装置1は、図28に示されるようなパーソナルコンピュータ201により構成される。
図28において、CPU(Central Processing Unit)211は、ROM(Read Only Memory)212に記憶されているプログラム、または記憶部218からRAM(Random Access Memory)213にロードされたプログラムにしたがって、各種の処理を実行する。RAM213にはまた、CPU211が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU211、ROM212、およびRAM213は、バス214を介して相互に接続されている。このバス214にはまた、入出力インタフェース215も接続されている。
入出力インタフェース215には、キーボード、マウスなどよりなる入力部216、ディスプレイやスピーカなどよりなる出力部217、ハードディスクなどより構成される記憶部218、モデム、ターミナルアダプタなどより構成される通信部219が接続されている。通信部219は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース215にはまた、必要に応じてドライブ220が接続され、磁気ディスク231、光ディスク232、光磁気ディスク233、もしくは、半導体メモリ234などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部218にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
この記録媒体は、図28に示されるように、装置本体とは別に、ユーザにプログラムを供給するために配布される、プログラムが記憶されている磁気ディスク231(フロッピディスクを含む)、光ディスク232(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク233(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリ234などよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに供給される、プログラムが記憶されているROM212や、記憶部218に含まれるハードディスクなどで構成される。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
更に、上述した一連の処理は、複数のサブCPUコアを用いて並列に実行させることによっても実現可能である。この場合、例えば、図1を用いて説明した編集装置1は、図29に示されるような編集システムにより構成される。
図29に示すように、図1の編集装置1に対応する編集システムは、編集装置281、編集装置281とPCIバス282によって接続された、記憶装置283および複数台のビデオテープレコーダ(VTR)284−1乃至284−S、並びに、ユーザがこれらに対する操作入力を行うためのマウス285、キーボード286、および、操作コントローラ287から構成されている。
この編集システムでは、記憶装置283に取り込まれた動画コンテンツを所望状態につなぎ合わせて所望の編集映像音声を得ることができ、その結果得られた編集映像及び編集音声を新たなクリップとして、RAID(Redundant Arrays of Independent Disks)でなる大容量の記憶装置283に蓄積したり、ビデオテープレコーダ284−1乃至284−Sを介してビデオテープに記録し得るようになされている。また、ビデオテープレコーダ284−1乃至284−Sに装着されたビデオテープに記録された静止画コンテンツについても記憶装置283に取り込み得るようになされている。
編集装置281は、マイクロプロセッサ301、GPU(Graphics Processing Unit)302、XDR(Extreme Data Rate)−RAM303、サウスブリッジ304、HDD305、USBインタフェース306およびサウンド入出力コーデック307を含んで構成されている。
編集装置281においては、マイクロプロセッサ301に対してGPU302、XDR−RAM303およびサウスブリッジ304が接続されるとともに、サウスブリッジ304にHDD305、USBインタフェース306、および、サウンド入出力コーデック307が接続されている。このサウンド入出力コーデック307にはスピーカ321が接続されている。また、GPU302にはディスプレイ322が接続されている。
またサウスブリッジ304には、PCIバス282を介して、マウス285、キーボード286、ビデオテープレコーダ284−1乃至284−S、記憶装置283、および、操作コントローラ287が接続されている。
マウス285およびキーボード286は、ユーザの操作入力を受け、PCIバス282およびサウスブリッジ304を介して、ユーザの操作入力の内容を示す信号を、マイクロプロセッサ301に供給する。記憶装置283およびビデオテープレコーダ284−1乃至284−Sは、所定のデータを記録または再生できるようになされている。
マイクロプロセッサ301は、OS(Operating System)等の基本プログラムを実行する汎用のメインCPUコア341と、メインCPUコア341に内部バス345を介して接続された複数(この場合8個)のRISC(Reduced Instruction Set Computer)タイプの信号処理プロセッサ(以下、これをサブCPUコアと称する)342−1乃至342−8と、例えば256[MByte]の容量を持つXDR−RAM303に対するメモリコントロールを行うメモリコントローラ343と、サウスブリッジ304との間でデータの入出力を管理するI/O(In/Out)コントローラ344とが1チップに集積されたマルチコア構成でなり、例えば動作周波数4[GHz]を実現している。
この編集装置281のマイクロプロセッサ301は、例えば、MPEG、JPEG(Joint Photographic Experts Group)2000、H.264/AVC(Advanced Video Coding)等のコーデックの役割を担い、エンコードの結果得られた符号化ストリームを、サウスブリッジ304を介して、HDD305に供給して記憶させたり、デコードした結果得られる動画または静止画のコンテンツの再生映像を、GPU302へデータ転送して、ディスプレイ322に表示させることができるとともに、コーデック処理に関する物理演算等を行うようになされている。
また、マイクロプロセッサ301は、処理されるベースバンド信号または符号化ストリームが有する種々のパラメータを抽出する処理も実行可能なようになされている。
特に、マイクロプロセッサ301では、8個のサブCPUコア342−1乃至342−8が、エンコーダユニットを構成するエンコーダの役割をそれぞれ担い、8個のサブCPUコア342−1乃至342−8が、ベースバンド信号を同時並列的にエンコードすることが可能である。
このように、マイクロプロセッサ301は、8個のサブCPUコア342−1乃至342−8によって同時並列的にエンコード処理を実行することができるようになされている。
また、マイクロプロセッサ301の8個のサブCPUコア342−1乃至342−8は、そのうちの一部がエンコード処理を、他の部分がデコード処理を、同時並列的に実行することも可能である。
例えば、PCIバス282に、独立したエンコーダまたはデコーダ、もしくは、コーデック処理装置が接続されている場合、更に、マイクロプロセッサ301の8個のサブCPUコア342−1乃至342−8は、サウスブリッジ304およびPCIバス282を介して、これらの装置が実行する処理を制御することができるようになされている。これらの装置が複数接続されている場合、または、これらの装置が複数のデコーダまたはエンコーダを含んでいる場合、マイクロプロセッサ301の8個のサブCPUコア342−1乃至342−8は、複数のデコーダまたはエンコーダが実行する処理を、分担して制御することが可能である。
またメインCPUコア341は、8個のサブCPUコア342−1乃至342−8が行う以外の処理や管理を行うようになされており、サウスブリッジ304を介してマウス285、キーボード286、または、操作コントローラ287から供給された命令を受け付け、命令に応じた種々の処理を実行する。
すなわち、マイクロプロセッサ301は、起動時、HDD305に格納された制御プログラムに基づき、HDD305に格納されている必要なアプリケーションプログラムを読み出してXDR−RAM303に展開し、この後このアプリケーションプログラム及びオペレータ操作に基づいて必要な制御処理を実行する。
GPU302は、ディスプレイ322に表示する動画コンテンツの再生映像を動かすときのテクスチャの張り込みなどに関する最終的なレンダリング処理に加えて、動画コンテンツの再生映像及び静止画コンテンツの静止画像をディスプレイ322に一度に複数表示するときの座標変換計算処理や、動画コンテンツの再生映像及び静止画コンテンツの静止画像に対する拡大・縮小処理等を行う機能を司り、マイクロプロセッサ301の処理負担を軽減させるようになされている。
GPU302は、マイクロプロセッサ301の制御のもとに、供給された動画コンテンツの映像データや静止画コンテンツの画像データに対して所定の信号処理を施し、その結果得られた映像データや画像データをディスプレイ322へ送出して、画像信号をディスプレイ322へ表示させる。
ところで、マイクロプロセッサ301における8個のサブCPUコア342−1乃至342−8で同時並列的にデコードされた複数の動画コンテンツにおける再生映像は、バス311を介してGPU302へデータ転送されるのだが、このときの転送速度は、例えば、最大30[Gbyte/sec]であり、特殊効果の施された複雑な再生映像であっても高速かつ滑らかに表示し得るようになされている。
一方、マイクロプロセッサ301は、動画コンテンツの映像データ及び音声データのうち音声データに対して音声ミキシング処理を施し、その結果得られた編集音声データを、サウスブリッジ304およびサウンド入出力コーデック307を介して、スピーカ321へ送出することにより、音声信号に基づく音声をスピーカ321から出力させることもできる。
上述した一連のエンコード処理は、このような編集システムのマイクロプロセッサ301が有する、複数のサブCPUコアを用いて並列に実行、または、制御させることによっても実現可能である。
なお、上述の実施の形態においては、編集装置1が、それぞれ、デコーダとエンコーダを有しているものとして説明したが、デコーダおよびエンコーダが、それぞれ、独立した装置として構成されている場合においても、本発明は適用可能である。例えば、図30に示されるように、ストリームデータを復号してベースバンド信号に変換する復号装置371、ベースバンド信号を符号化してストリームデータに変換する符号化装置372が、それぞれ独立した装置として構成されていても良い。
このとき、復号装置371は、映像素材である圧縮符号化データを復号し、符号化装置372に供給するのみならず、本発明を適用することにより符号化装置372により部分的に符号化された後、編集されて生成された圧縮符号化データの供給を受け、復号処理を行い、ベースバンド信号に変換することができる。ベースバンド信号に変換された編集後のストリームは、例えば、所定の表示装置に供給されて表示されたり、他の装置に出力されて、必要な処理が施される。
さらに、上述の実施の形態においては、デコーダユニット22が、供給された圧縮符号化データを完全にデコードせず、対応するエンコーダユニット24が、非完全に復号されたデータの対応する部分を部分的にエンコードする場合においても、本発明は適用可能である。
例えば、デコーダユニット22が、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していなかった場合、エンコーダユニット24は、量子化および可変長符号化処理を行うが、DCT変換処理は行わない。このような部分的な符号化(中途段階からの符号化)を行うエンコーダにおいても、本発明を適用することができるのは言うまでもない。
さらに、上述の実施の形態においては、デコーダユニット22が完全に復号したベースバンド信号を、エンコーダユニット24が中途段階まで符号化する場合(例えば、DCT変換および量子化を行うが可変長符号化処理を行わないなど)や、デコーダユニット22が完全に復号していない(例えば、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していない)ため、中途段階まで符号化されているデータに対して、エンコーダユニット24が更に中途段階まで符号化する場合など(例えば、量子化を行うが可変長符号化処理を行わないなど)においても、本発明は適用可能である。
更に、図30に示される復号装置371が、供給されたストリームデータを完全に復号せず、対応する符号化装置372が、非完全に復号されたデータの対応する部分を部分的に符号化する場合においても、本発明は適用可能である。
例えば、復号装置371が、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していなかった場合、符号化装置372は、量子化および可変長符号化処理を行うが、DCT変換処理は行わない。このような部分的な復号処理(中途段階までの復号)を行う復号装置371のデコード処理、および、符号化(中途段階からの符号化)を行う符号化装置372のエンコード処理において、本発明を適用することができるのは言うまでもない。
更に、復号装置371が完全に復号したベースバンド信号を、符号化装置372が中途段階まで符号化する場合(例えば、DCT変換および量子化を行うが可変長符号化処理を行わないなど)や、復号装置371が完全に復号していない(例えば、VLC符号に対する復号および逆量子化のみを行い、逆DCT変換を実行していない)ため、中途段階まで符号化されているデータに対して、符号化装置372が更に中途段階まで符号化する場合など(例えば、量子化を行うが可変長符号化処理を行わないなど)においても、本発明は適用可能である。
更に、このような部分的な復号を行う(復号処理の工程のうちの一部を実行する)符号化装置31と部分的な符号化を行う(符号化処理の工程のうちの一部を実行する)符号化装置372で構成されたトランスコーダ381においても、本発明は適用可能である。このようなトランスコーダ381は、例えば、スプライシングなどの編集を行う編集装置382、すなわち、上述した編集装置1のストリームスプライサ25やエフェクト/スイッチ26が実行可能な機能を有する編集装置が利用される場合などに用いられる。
さらに、上述の実施の形態においては、CPU11およびCPU20がそれぞれ別の形態で構成されているが、これに限らず、編集装置1全体を制御する1つのCPUとして構成する形態も考えられる。同様に、上述の実施の形態においては、メモリ13およびメモリ21がそれぞれ別の形態で構成されているが、これに限らず、編集装置1において1つのメモリとして構成する形態も考えられる。
さらに、上述の実施の形態においては、CPU11およびCPU20と、HDD16、デコーダユニット22、セレクタ23、および、エンコーダユニット24とを、それぞれ、ブリッジおよびバスを介して接続し、編集装置として一体化されている場合について述べたが、本発明はこれに限らず、例えば、これらの構成要素のうちの一部が、外部から有線または無線で接続されるようにしても良いし、これらの構成要素は、この他、種々の接続形態で相互に接続されるようにしてもよい。
さらに、上述の実施の形態においては、圧縮符号化された符号化ストリーム、または、非圧縮のベースバンド信号がHDDに記憶されている場合について述べたが、本発明はこれに限らず、例えば、光ディスク、光磁気ディスク、半導体メモリ、磁気ディスク等の種々の記録媒体に記録された符号化ストリーム、または、ベースバンド信号を用いて処理を行う場合にも適用することができる。
さらに、上述の実施の形態においては、デコーダユニット22、セレクタ23、および、エンコーダユニット24は、同一の拡張カード(例えば、PCIカード、PCI−Expressカード)に搭載する形態に限らず、例えばPCI−Expressなどの技術によりカード間の転送速度が高い場合には、それぞれ別の拡張カードに搭載してもよい。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
編集装置の構成を示すブロック図である。 編集装置の機能構成を示す機能ブロック図である。 制御部の機能構成を示す機能ブロック図である。 CPU11の処理について説明するためのフローチャートである。 CPU20の処理について説明するためのフローチャートである。 編集装置の機能構成を示す機能ブロック図である。 方法1について説明するための図である。 方法1について説明するための図である。 エンコード処理1について説明するためのフローチャートである。 方法2について説明するための図である。 方法2について説明するための図である。 方法2について説明するための図である。 方法2について説明するための図である。 方法2について説明するための図である。 方法2について説明するための図である。 エンコード処理2について説明するためのフローチャートである。 セクションのエンコード処理1について説明するためのフローチャートである。 セクションのエンコード処理1について説明するためのフローチャートである。 セクションのエンコード処理1について説明するためのフローチャートである。 方法2について説明するための図である。 方法2について説明するための図である。 方法2について説明するための図である。 エンコード処理3について説明するためのフローチャートである。 プリエンコード処理について説明するためのフローチャートである。 セクションのエンコード処理2について説明するためのフローチャートである。 セクションのエンコード処理2について説明するためのフローチャートである。 セクションのエンコード処理2について説明するためのフローチャートである。 パーソナルコンピュータの構成を示すブロック図である。 本発明を適用可能な異なる装置の構成について説明するための図である。 本発明を適用可能な異なる装置の構成について説明するための図である。
符号の説明
1 編集装置, 11 CPU, 16 HDD, 20 CPU, 22 デコーダユニット, 23 セレクタ, 24 エンコーダユニット, 41 エンコーダ, 101 制御部, 102 取得部, 103 記憶・出力部, 154 符号化制御部

Claims (15)

  1. ベースバンド信号をエンコードする処理を実行する情報処理装置において、
    前記ベースバンド信号を取得して、所定のエンコード単位に分割するデータ分割手段と、
    前記データ分割手段により分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するものを並行してエンコードして、符号化ストリームを生成するエンコード手段と、
    所定の制約をかけながら並行してエンコードするように、前記エンコード手段によるエンコード処理を制御する制御手段と、
    前記エンコード手段により生成された符号化ストリームを結合する結合手段と
    を備える情報処理装置。
  2. 前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位の切れ目が、前記エンコード手段によりエンコードされて生成された符号化ストリームのGOPの切れ目となるようにエンコード処理を実行することである
    請求項1に記載の情報処理装置。
  3. 前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のうちの先頭GOPをClosed GOPとしてエンコード処理を実行することである
    請求項2に記載の情報処理装置。
  4. 前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のエンコードの開始点に、Sequence HeaderまたはQuant Matrix Extensionを付加することである
    請求項1に記載の情報処理装置。
  5. 前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のエンコード終了点のVBV Buffer Occupancyが、次の前記所定のエンコード単位のエンコードの開始点のVBV Buffer Occupancyと等しくなるように、発生符号量の制御を行うことである
    請求項1に記載の情報処理装置。
  6. 前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位の切れ目が、前記エンコード手段によりエンコードされて生成された符号化ストリームのGOPの切れ目から、IピクチャまたはPピクチャの間隔Mだけ時間的に後ろにずれた位置となるように、エンコード処理を実行することである
    請求項1に記載の情報処理装置。
  7. 前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のうち、その前に他の前記所定のエンコード単位に対応するベースバンド信号が存在するものについては、一つ前の前記所定のエンコード単位の最後の1ピクチャを加えたベースバンド信号を取得し、一つ前の前記所定のエンコード単位の最後の1ピクチャのエンコード結果は出力せずに、参照画として用いて、エンコード処理を実行することである
    請求項6に記載の情報処理装置。
  8. 前記所定の制約は、参照画として用いられる一つ前の前記所定のエンコード単位の最後の1ピクチャのエンコード条件と、並行して実行される、一つ前の前記所定のエンコード単位のエンコード処理における対応するピクチャのエンコード条件とを一致させることである
    請求項7に記載の情報処理装置。
  9. 前記エンコード条件は、ピクチャの割り当てビット、および、最初のマクロブロックのQスケールを含む
    請求項8に記載の情報処理装置。
  10. 前記所定の制約は、前記データ分割手段により分割された前記所定のエンコード単位のうち、その前に他の前記所定のエンコード単位に対応するベースバンド信号が存在するものについては、一つ前の前記所定のエンコード単位の最後のM+1ピクチャを加えたベースバンド信号を取得し、一つ前の前記所定のエンコード単位の最後の1ピクチャのエンコード結果は出力せずに、参照画として用いて、エンコード処理を実行することである
    請求項6に記載の情報処理装置。
  11. 前記所定の制約は、取得された一つ前の前記所定のエンコード単位の最後のM+1ピクチャのうち、1枚目となる第1のピクチャのエンコード結果を参照画として用いて2枚目となる第2のピクチャおよび3枚目となる第3のピクチャのエンコード処理を実行し、これらのエンコード結果は出力せず、これらのエンコード結果を基に、並行して実行される、一つ前の前記所定のエンコード単位のエンコードにおける前記第2のピクチャおよび前記第3のピクチャに対応する2枚のピクチャの発生符号量を制御することである
    請求項10に記載の情報処理装置。
  12. 前記所定の制約は、取得された一つ前の前記所定のエンコード単位の最後のM+1ピクチャのうち、1枚目のピクチャを、Iピクチャとしてエンコード処理を実行することである
    請求項11に記載の情報処理装置。
  13. ベースバンド信号をエンコードする処理を実行する情報処理装置の情報処理方法において、
    前記ベースバンド信号を取得して、所定のエンコード単位ごとの前記ベースバンド信号の分割を制御し、
    分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するもののエンコーダへの供給を制御し、
    前記所定のエンコード単位ごとの前記ベースバンド信号を、所定の制約の基に、並行してエンコードして、符号化ストリームを生成し、
    生成された前記符号化ストリームを結合する
    ステップを含む情報処理方法。
  14. ベースバンド信号をエンコードする処理の制御をコンピュータに実行させるためのプログラムであって、
    前記ベースバンド信号の取得を制御するとともに、所定のエンコード単位ごとの前記ベースバンド信号の分割を制御し、
    分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するもののエンコーダへの供給を制御し、
    前記所定のエンコード単位ごとの前記ベースバンド信号を、所定の制約の基に、並行してエンコードする処理を制御し、
    生成された前記符号化ストリームを結合する処理を制御する
    ステップを含む処理をコンピュータに実行させるプログラム。
  15. ベースバンド信号をエンコードする処理の制御をコンピュータに実行させるためのプログラムであって、
    前記ベースバンド信号の取得を制御するとともに、所定のエンコード単位ごとの前記ベースバンド信号の分割を制御し、
    分割された前記所定のエンコード単位ごとの前記ベースバンド信号のうち、複数の連続するもののエンコーダへの供給を制御し、
    前記所定のエンコード単位ごとの前記ベースバンド信号を、所定の制約の基に、並行してエンコードする処理を制御し、
    生成された前記符号化ストリームを結合する処理を制御する
    ステップを含む処理をコンピュータに実行させるためのプログラムが記録されている記録媒体。
JP2006240301A 2006-09-05 2006-09-05 情報処理装置および情報処理方法、記録媒体、並びに、プログラム Pending JP2008066851A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006240301A JP2008066851A (ja) 2006-09-05 2006-09-05 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
TW96131504A TWI390988B (zh) 2006-09-05 2007-08-24 資訊處理裝置及資訊處理方法
US11/899,005 US8170120B2 (en) 2006-09-05 2007-08-30 Information processing apparatus and information processing method
CN2007101453013A CN101141641B (zh) 2006-09-05 2007-09-05 信息处理设备和信息处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006240301A JP2008066851A (ja) 2006-09-05 2006-09-05 情報処理装置および情報処理方法、記録媒体、並びに、プログラム

Publications (1)

Publication Number Publication Date
JP2008066851A true JP2008066851A (ja) 2008-03-21

Family

ID=39151483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006240301A Pending JP2008066851A (ja) 2006-09-05 2006-09-05 情報処理装置および情報処理方法、記録媒体、並びに、プログラム

Country Status (4)

Country Link
US (1) US8170120B2 (ja)
JP (1) JP2008066851A (ja)
CN (1) CN101141641B (ja)
TW (1) TWI390988B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5267655B2 (ja) * 2009-03-19 2013-08-21 富士通株式会社 画像符号化装置、画像符号化制御方法および画像符号化プログラム
US8538178B2 (en) 2010-06-22 2013-09-17 Sony Corporation Image processing device and image processing method
JP2014086770A (ja) * 2012-10-19 2014-05-12 Nippon Hoso Kyokai <Nhk> 映像信号分割装置、映像伝送送信装置、映像伝送受信装置および映像伝送システム
JP2017530613A (ja) * 2014-08-20 2017-10-12 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ビデオ合成

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4264582B2 (ja) * 2006-06-13 2009-05-20 ソニー株式会社 情報処理装置および情報処理方法、プログラム、並びに記録媒体
US8873932B2 (en) 2007-12-11 2014-10-28 Cisco Technology, Inc. Inferential processing to ascertain plural levels of picture interdependencies
US8155207B2 (en) * 2008-01-09 2012-04-10 Cisco Technology, Inc. Processing and managing pictures at the concatenation of two video streams
JP2011077564A (ja) * 2008-04-13 2011-04-14 Thomson Canopus Co Ltd 映像および音声データの符号化装置とその符号化方法、及びビデオ編集システム
JP5309700B2 (ja) * 2008-06-03 2013-10-09 富士通株式会社 動画像復号装置および符号化装置
WO2009152450A1 (en) 2008-06-12 2009-12-17 Cisco Technology, Inc. Picture interdependencies signals in context of mmco to assist stream manipulation
US8971402B2 (en) 2008-06-17 2015-03-03 Cisco Technology, Inc. Processing of impaired and incomplete multi-latticed video streams
JP5152402B2 (ja) 2009-02-27 2013-02-27 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
US8949883B2 (en) 2009-05-12 2015-02-03 Cisco Technology, Inc. Signalling buffer characteristics for splicing operations of video streams
GB2484969B (en) * 2010-10-29 2013-11-20 Canon Kk Improved reference frame for video encoding and decoding
US10536726B2 (en) * 2012-02-24 2020-01-14 Apple Inc. Pixel patch collection for prediction in video coding system
US9197888B2 (en) 2012-03-13 2015-11-24 Dolby Laboratories Licensing Corporation Overlapped rate control for video splicing applications
CN103379320B (zh) * 2012-04-16 2016-11-23 华为技术有限公司 视频图像码流处理方法和设备
US9451288B2 (en) * 2012-06-08 2016-09-20 Apple Inc. Inferred key frames for fast initiation of video coding sessions
US9451251B2 (en) * 2012-11-27 2016-09-20 Broadcom Corporation Sub picture parallel transcoding
JP2014241507A (ja) 2013-06-11 2014-12-25 ソニー株式会社 画像処理装置および方法、プログラム、並びに撮像装置
JP2015005939A (ja) 2013-06-24 2015-01-08 ソニー株式会社 画像処理装置および方法、プログラム、並びに撮像装置
US10694227B2 (en) * 2017-01-13 2020-06-23 Panasonic Intellectual Property Management Co., Ltd. Video transmission system and video transmission method
US11778211B2 (en) * 2021-09-16 2023-10-03 Apple Inc. Parallel video parsing for video decoder processing

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3713715B2 (ja) 1994-08-12 2005-11-09 ソニー株式会社 ビデオ信号編集装置
US20010002851A1 (en) * 1995-04-14 2001-06-07 Takao Shimada Multimedia data processing system in network
JP3309656B2 (ja) 1995-08-18 2002-07-29 ソニー株式会社 画像処理装置及び画像処理方法
SE512719C2 (sv) * 1997-06-10 2000-05-02 Lars Gustaf Liljeryd En metod och anordning för reduktion av dataflöde baserad på harmonisk bandbreddsexpansion
KR100555164B1 (ko) * 1997-07-25 2006-03-03 소니 가부시끼 가이샤 편집 장치, 편집 방법, 재부호화 장치, 재부호화 방법, 스플라이싱 장치 및 스플라이싱 방법
WO1999018720A1 (en) * 1997-10-03 1999-04-15 Sony Corporation Encoded stream splicing device and method, and an encoded stream generating device and method
EP0982726A4 (en) * 1998-01-19 2003-06-04 Sony Corp CUTTING SYSTEM, CUTTING CONTROL DEVICE AND CUTTING METHOD
US6414998B1 (en) 1998-01-27 2002-07-02 Sony Corporation Method and apparatus for inserting an image material
JPH11341435A (ja) * 1998-05-22 1999-12-10 Sony Corp 編集方法および編集装置
JP2000134617A (ja) 1998-10-22 2000-05-12 Matsushita Electric Ind Co Ltd 画像符号化装置
CN1197253C (zh) * 1999-04-15 2005-04-13 株式会社理光 数据高速压缩伸展方法及其装置
GB2353655B (en) * 1999-08-26 2003-07-23 Sony Uk Ltd Signal processor
US6721453B1 (en) * 2000-07-10 2004-04-13 The Board Of Trustees Of The University Of Illinois Method and apparatus for processing an image of an agricultural field
JP2002199392A (ja) 2000-10-19 2002-07-12 Matsushita Electric Ind Co Ltd 映像符号化方法および装置
US20020057739A1 (en) * 2000-10-19 2002-05-16 Takumi Hasebe Method and apparatus for encoding video
US7936814B2 (en) * 2002-03-28 2011-05-03 International Business Machines Corporation Cascaded output for an encoder system using multiple encoders
TWI252656B (en) * 2003-03-21 2006-04-01 Realtek Semiconductor Corp Sampling clock compensation device of multi-carrier system and method thereof
JP4174728B2 (ja) 2004-08-25 2008-11-05 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4221667B2 (ja) 2004-08-25 2009-02-12 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US8295347B2 (en) 2004-08-25 2012-10-23 Sony Corporation Information processing apparatus and information processing method, recording medium, and program
KR20060043050A (ko) * 2004-09-23 2006-05-15 엘지전자 주식회사 영상 신호의 인코딩 및 디코딩 방법
EP1797722B1 (en) * 2004-10-05 2019-05-29 Vectormax Corporation Adaptive overlapped block matching for accurate motion compensation
US20060209970A1 (en) * 2005-01-11 2006-09-21 Emmanuel Kanterakis Adaptive transmission rate communication system
US8311088B2 (en) * 2005-02-07 2012-11-13 Broadcom Corporation Method and system for image processing in a microprocessor for portable video communication devices
WO2006088090A1 (ja) * 2005-02-17 2006-08-24 Pioneer Corporation エンコード装置、エンコード方法およびエンコードを行うためのコンピュータプログラム
US8654848B2 (en) * 2005-10-17 2014-02-18 Qualcomm Incorporated Method and apparatus for shot detection in video streaming
JP5227875B2 (ja) * 2009-04-06 2013-07-03 株式会社日立製作所 動画像符号化装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5267655B2 (ja) * 2009-03-19 2013-08-21 富士通株式会社 画像符号化装置、画像符号化制御方法および画像符号化プログラム
US8538178B2 (en) 2010-06-22 2013-09-17 Sony Corporation Image processing device and image processing method
JP2014086770A (ja) * 2012-10-19 2014-05-12 Nippon Hoso Kyokai <Nhk> 映像信号分割装置、映像伝送送信装置、映像伝送受信装置および映像伝送システム
JP2017530613A (ja) * 2014-08-20 2017-10-12 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン ビデオ合成
US10425652B2 (en) 2014-08-20 2019-09-24 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Video composition

Also Published As

Publication number Publication date
TW200830885A (en) 2008-07-16
CN101141641B (zh) 2010-09-22
CN101141641A (zh) 2008-03-12
US20080056358A1 (en) 2008-03-06
TWI390988B (zh) 2013-03-21
US8170120B2 (en) 2012-05-01

Similar Documents

Publication Publication Date Title
JP2008066851A (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4207072B2 (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4221676B2 (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP5189640B2 (ja) ビデオデータの再生システム
JP2012508485A (ja) Gpu加速を伴うソフトウエアビデオトランスコーダ
KR101119685B1 (ko) 정보 처리 장치, 정보 처리 방법, 및 기록 매체
US7558465B2 (en) Information processing apparatus and information processing method, recording medium, and program
JP5120981B2 (ja) 特殊再生用のビデオデータの生成方法
US8699856B2 (en) Editing apparatus, editing method, program, and recording medium
JPWO2012120908A1 (ja) 動画像符号化装置および動画像符号化方法
JPH1198024A (ja) 符号化信号処理装置
JP2008085617A (ja) 画像処理装置および画像処理方法、記録媒体、並びに、プログラム
JP4399744B2 (ja) プログラム、情報処理装置、情報処理方法、並びに、記録媒体
US8045842B2 (en) Information processing apparatus and method, transmission apparatus and method, recording apparatus and method and program
JP4333522B2 (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP2004104361A (ja) データ編集装置、データ編集方法、及びプログラム
JP5553533B2 (ja) 画像編集装置およびその制御方法およびプログラム
JP2006303627A (ja) 記録装置及びその制御方法
JP2008066846A (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP2008066845A (ja) 情報処理装置および方法、記録媒体、並びにプログラム
JP2004228679A (ja) 画像処理装置、画像処理方法及びプログラム
JP2007074467A (ja) 情報処理装置および方法、送信装置および方法、記録装置および方法、並びにプログラム
JP2016201774A (ja) ビデオサーバーシステムおよび画像連結方法
JP2006067098A (ja) 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP2007074470A (ja) 記録装置および方法、並びにプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090818