JPWO2007032123A1 - マルチストリーム復号装置 - Google Patents

マルチストリーム復号装置 Download PDF

Info

Publication number
JPWO2007032123A1
JPWO2007032123A1 JP2007535381A JP2007535381A JPWO2007032123A1 JP WO2007032123 A1 JPWO2007032123 A1 JP WO2007032123A1 JP 2007535381 A JP2007535381 A JP 2007535381A JP 2007535381 A JP2007535381 A JP 2007535381A JP WO2007032123 A1 JPWO2007032123 A1 JP WO2007032123A1
Authority
JP
Japan
Prior art keywords
decoder
decoding
stream
time
decoding process
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
JP2007535381A
Other languages
English (en)
Inventor
光典 法貴
光典 法貴
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2007032123A1 publication Critical patent/JPWO2007032123A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42607Internal components of the client ; Characteristics thereof for processing the incoming bitstream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

デコーダ制御装置(100)内に時間管理部(102)とビットストリームの切り替え制御部(103)とを備え、デコーダ(110)は所定単位の復号処理終了時に切り替え制御部(103)に復号処理の終了を通知する。時間管理部(102)は、デコーダ性能と、復号処理するビットストリーム数情報と、ビットストリームから抜き出した画像サイズ情報やフレームレートから、規定時間内でそれぞれのビットストリームを復号処理できる限界時間を設定し、限界時間に達した場合はビットストリームの切り替えを切り替え制御部(103)に通知する。切り替え制御部(103)は、時間管理部(102)からの切り替え通知と、デコーダ(110)からの所定単位の復号処理の終了通知とを受けてビットストリームを切り替える。

Description

本発明は、符号化された複数のビットストリームの復号処理を支援するマルチストリーム復号装置に関するものである。
図18は、従来のマルチストリーム復号装置の構成を示している。ここでは、MPEG2Videoを例にする。
図18のマルチストリーム復号装置は、複数のビットストリームを蓄積する蓄積装置である第1及び第2のストリームバッファ(SB)1021,1022と、これらのストリームバッファ1021,1022からの出力を切り替える第1の切り替え装置(SW)1020と、デコーダ1010と、復号データを蓄積するための第1及び第2のフレームメモリ(FM)1031,1032と、これらのフレームメモリ1031,1032を入力ビットストリームに応じて切り替える第2の切り替え装置(SW)1030と、デコーダ制御装置1000とから構成される。デコーダ制御装置1000は切り替え制御部1001を含み、デコーダ1010は可変長復号部1011、逆量子化部1012、逆DCT部1013、動き補償部1014から構成される。
デコーダ制御装置1000内の切り替え制御部1001は、ピクチャ単位で、信号線1050を通して第1の切り替え装置1020を切り替え、信号線1051を通して第2の切り替え装置1030を切り替える。
第1のストリームバッファ1021と第2のストリームバッファ1022に蓄積されたビットストリームは信号線1060と信号線1061を通して出力され、第1の切り替え装置1020で選択されて、信号線1062を通してデコーダ1010に入力される。デコーダ1010に入力されたビットストリームは可変長復号部1011で可変長復号され、逆量子化部1012で逆量子化され、逆DCT部1013で逆DCTされる。第1のフレームメモリ1031からの入出力バス1072と、第2のフレームメモリ1032からの入出力バス1073は第2の切り替え装置1030で選択される。動き補償部1014は第2の切り替え装置1030で選択されたフレームメモリから信号線1071を通して取得した参照画像と、逆DCT部1013の逆DCT結果とを加算して、復元画像を作成し、作成された復元画像は信号線1070を通して第2の切り替え装置1030で選択されたフレームメモリに格納される。
このように従来の構成では複数のビットストリームを切り替えながら単一のデコーダ1010で復号処理する際に、入力したビットストリームの処理単位(例えば、ピクチャ単位)のみで切り替えながら復号処理を行っていた(特許文献1参照)。
特開2002−112195号公報
しかしながら、従来の構成では、入力したビットストリームの処理単位のみで復号処理するビットストリームを切り替えているため、例えば一方のビットストリームがアンダーフローを起こして復号処理が遅れた場合、他方のビットストリームの復号処理も遅れてしまい、特に独立した複数のビットストリームを切り換えながら復号処理する場合にはシステムとして破綻してしまうという課題があった。
更に、従来の構成では、ビットストリームを切り替える際に、デコーダ内部に残っており、復号処理ができていないビットストリーム量が判らないために、ビットストリームを切り替える際に必要以上にビットストリームを巻き戻す必要があり、切り替え時のオーバーヘッドが増加してしまうという課題があった。
更に、従来の構成では、元々複数のビットストリームを復号処理することができるデコーダを備えているために、単一ビットストリームを復号処理する場合でも複数ビットストリームを復号処理する場合と同じだけのピークメモリバンド幅や消費電力を使ってしまうという課題があった。
本発明は以上のような課題を解消するためになされたもので、複数のビットストリームをデコードする際のビットストリーム間の影響を抑え、ビットストリーム切り替え時のオーバーヘッドを抑え、更に、ピークメモリバンド幅や消費電力を抑える復号装置を提供することを目的とする。
本発明の第1のマルチストリーム復号装置では、複数のビットストリームをそれぞれ蓄積する蓄積装置と、前記蓄積装置からの出力を切り替える第1の切り替え装置と、前記第1の切り替え装置からの出力を入力として復号を行うデコーダと、前記デコーダで復号したデータをそれぞれ蓄積する複数のフレームメモリと、それぞれのビットストリームに応じて前記フレームメモリを切り替える第2の切り替え装置と、前記デコーダを制御するデコーダ制御手段とを備えたマルチストリーム復号装置において、前記デコーダ制御手段は、ビットストリーム中のヘッダを解析するヘッダ解析手段と、ビットストリームごとに処理時間を割り当てる時間管理手段と、前記第1及び第2の切り替え装置を制御する切り替え制御手段とを備え、前記時間管理手段は、前記ヘッダ解析手段が取得した画像サイズとフレームレートとを含むビットストリーム情報と、前記デコーダの処理性能と、復号するビットストリーム数を含む情報とに応じて、規定時間内でそれぞれのビットストリームの復号処理にかけられる限界時間を決定し、かつ復号処理が前記限界時間に達した場合にビットストリーム切り替え通知信号を出力し、前記切り替え制御手段は、前記時間管理手段が出力したビットストリーム切り替え通知信号と、前記デコーダがそれぞれのビットストリームの第1の所定単位の復号処理を終了した時点で出力する終了通知信号とを用いて、前記第1及び第2の切り替え装置を切り替えることとした。
本発明の第2のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記時間管理手段は、前記規定時間ごとにそれぞれのビットストリームの復号処理にかけられる時間の前記限界時間を設定し直すこととした。
本発明の第3のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記時間管理手段はビットストリームの復号処理時間が前記限界時間に達した時点で前記デコーダに対して復号処理の中断を通知し、前記デコーダは中断通知を受けて直ちに復号処理を中断することとした。
本発明の第4のマルチストリーム復号装置では、前記第3のマルチストリーム復号装置において、前記デコーダ制御手段は、復号の中断が発生した時点で中断した復号処理の再開に必要な前記デコーダ内部の情報を退避し、中断したビットストリームの復号処理が次に開始される前に、退避した情報を前記デコーダに再設定することにより、復号処理を再開することとした。
本発明の第5のマルチストリーム復号装置では、前記第4のマルチストリーム復号装置において、前記規定時間内で複数のビットストリームの復号処理が中断され、かつ、中断されたビットストリーム以外のビットストリームの第1の所定単位の復号処理が早く終了し、前記規定時間内の処理時間が余った場合に、中断されたそれぞれのビットストリームが第1の所定単位の復号処理が完了するまでの予測時間に応じて、それぞれのビットストリームの復号処理にかけられる限界時間を再設定することとした。
本発明の第6のマルチストリーム復号装置では、前記第4のマルチストリーム復号装置において、前記デコーダ内に第2の所定単位の先頭からの処理ビット量をカウントする第1のカウンタを、前記デコーダ制御手段内に前記蓄積装置のポインタを巻き戻す巻き戻し制御手段をそれぞれ備え、前記巻き戻し制御手段は、前記時間管理手段が復号処理を中断したビットストリームに対して、前記デコーダ制御手段が復号処理を再開する際に、前記第1のカウンタの情報を用いて、前記第2の所定単位の先頭まで前記蓄積装置のポインタを巻き戻し、前記第2の所定単位の先頭から復号処理を再開することとした。
本発明の第7のマルチストリーム復号装置では、前記第4のマルチストリーム復号装置において、前記複数のフレームメモリからの出力を入力とし、画像を出力する出力制御装置を更に備え、かつ前記デコーダ制御手段内に前記複数のフレームメモリのデータ量を管理するバッファ管理手段を備え、前記バッファ管理手段は、前記デコーダから通知される前記複数のフレームメモリへのデータ供給量と、前記出力制御装置から通知される前記複数のフレームメモリのデータ消費量とを用いて前記デコーダに復号処理の中断を通知し、前記デコーダは前記中断通知を受けて直ちに復号処理を中断することとした。
本発明の第8のマルチストリーム復号装置では、前記第7のマルチストリーム復号装置において、前記バッファ管理手段は、前記デコーダから通知される前記複数のフレームメモリへのデータ供給量と、前記出力制御装置から通知される前記複数のフレームメモリのデータ消費量とを用いて前記出力制御装置に対して出力画像の切り替えを通知し、前記出力制御装置は前記切り替え通知を受けて直ちに出力画像の切り替えを行うこととした。
本発明の第9のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記デコーダ内に前記第1の切り替え装置からの出力を一時的に保持する入力バッファと、前記入力バッファ内の未処理ビット量を観測する第2のカウンタとを、前記デコーダ制御手段内に前記蓄積装置のポインタを巻き戻す巻き戻し制御手段をそれぞれ備え、前記デコーダ制御手段は、前記切り替え制御手段が前記第1の切り替え装置を切り替える際に、前記第2のカウンタの情報を退避し、切り替える前のビットストリームの復号処理を再開する際に、前記巻き戻し制御手段は、前記第2のカウンタの情報を用いて、前記デコーダが実際に消費した部分まで前記蓄積装置のポインタを巻き戻し、復号処理を再開することとした。
本発明の第10のマルチストリーム復号装置では、前記第9のマルチストリーム復号装置において、前記蓄積装置のポインタ情報を利用して前記蓄積装置内のビットストリームの書き潰しを防ぐための手段を更に備えることとした。
本発明の第11のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記デコーダ制御手段は、前記規定時間終了の直前まで前記デコーダで復号処理していたビットストリームの種類を前記規定時間ごとに判定し、次の規定時間でのビットストリームのデコード順を決定することとした。
本発明の第12のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記デコーダ内に、前記複数のフレームメモリへのアクセス頻度を制御するメモリアクセス制御装置を備え、前記メモリアクセス制御装置は、前記ヘッダ解析手段が取得した画像サイズとフレームレートとを含むビットストリーム情報と、前記デコーダ制御手段から通知される復号処理するビットストリーム数を含む情報とを用いて、前記複数のフレームメモリのアクセス頻度を制御することとした。
本発明の第13のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記ヘッダ解析手段が取得した画像サイズとフレームレートとを含むビットストリーム情報と、前記デコーダの処理性能と、前記デコード制御手段から通知される復号処理するビットストリーム数を含む情報とを用いて、前記デコーダに供給するクロックの周波数を決定するクロック制御装置を更に備えることとした。
本発明の第14のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記デコーダ制御手段から通知される前記規定時間の情報と、前記デコーダから通知される第1の所定単位の復号終了通知とを用いて、前記デコーダに対するクロック供給と停止を切り替えるクロック制御装置を更に備えることとした。
本発明の第15のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記第1の所定単位をピクチャ単位、又はスライス単位、又はマクロブロックライン単位、又はマクロブロック単位とする。
本発明の第16のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記規定時間をビットストリーム中のフレームレートから平均的に割り当てたピクチャ時間、又はスライス時間、又はマクロブロックライン時間、又はマクロブロック時間とする。
本発明の第17のマルチストリーム復号装置では、前記第6のマルチストリーム復号装置において、前記第2の所定単位をピクチャ単位、又はスライス単位、又はマクロブロックライン単位、又はマクロブロック単位とする。
本発明の第18のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、ビットストリームをMPEG1、MPEG2、MPEG4、H.264のいずれかで圧縮されたビットストリームとする。
本発明の第1のマルチストリーム復号装置によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
本発明の第2のマルチストリーム復号装置によれば、規定時間ごとにそれぞれのビットストリームごとの復号処理に割り当てられる限界時間を設定できるので、それぞれのビットストリームの復号処理の状況に応じて最適な処理時間を割り当てることができる。
本発明の第3のマルチストリーム復号装置によれば、復号処理の限界時間に達した時点で直ちに復号処理の中断ができるので、復号処理を中断したビットストリーム以外のビットストリームの復号処理に影響を与えることがない。
本発明の第4のマルチストリーム復号装置によれば、復号処理を中断したビットストリームの復号処理を再開することができるので、中断されたビットストリームとしては途切れることなしに復号処理できる。
本発明の第5のマルチストリーム復号装置によれば、規定時間内の余った時間を、復号処理を中断したビットストリームに割り当て直すことにより、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
本発明の第6のマルチストリーム復号装置によれば、第2の所定単位、例えば、ピクチャやスライスやマクロブロックラインやマクロブロックの先頭から復号処理を再開することができるので、復号処理を中断した際に第2の所定単位の上位階層の情報だけ退避するだけで、復号処理の再開ができる。
本発明の第7のマルチストリーム復号装置によれば、出力制御装置のデータ消費状況を見ながら、復号処理を進めることができるので、出力制御装置がデータを消費しきるぎりぎりまで復号処理を継続することができる。
本発明の第8のマルチストリーム復号装置によれば、復号装置のデータ供給量と、出力制御装置のデータ消費量とに応じて、出力画像を切り替えることができるので、たとえ復号処理が中断しても違和感のない画像を出力することができる。
本発明の第9のマルチストリーム復号装置によれば、ビットストリームを切り替える際にビットストリームの巻き戻しによるオーバーヘッドをなくすことができる。
本発明の第10のマルチストリーム復号装置によれば、内部で処理できていないビットストリームの書き潰しを防ぐことができる。
本発明の第11のマルチストリーム復号装置によれば、ビットストリーム切り替えによるオーバーヘッドを削減することができる。
本発明の第12のマルチストリーム復号装置によれば、メモリバンド幅を復号処理するビットストリームに応じたピークバンド幅に抑えることができるので、外部メモリを共有しているようなシステムにおいて、他のアプリケーションにメモリバンド幅を与えることができる。
本発明の第13のマルチストリーム復号装置によれば、復号処理するビットストリームに応じたクロック周波数を設定することで、消費電力を抑えることができる。
本発明の第14のマルチストリーム復号装置によれば、複数のビットストリームの復号処理が規定時間よりも早く終了した場合に、クロックを停止することができるので、消費電力を抑えることができる。
本発明の第15のマルチストリーム復号装置によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
本発明の第16のマルチストリーム復号装置によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
本発明の第17のマルチストリーム復号装置によれば、第2の所定単位、例えば、ピクチャやスライスやマクロブロックラインやマクロブロックの先頭から復号処理を再開することができるので、復号処理を中断した際に第2の所定単位の上位階層の情報だけ退避するだけで、復号処理の再開ができる。
本発明の第18のマルチストリーム復号装置によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
図1は、第1、第2及び第7の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 図2は、第1の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 図3は、第2の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 図4は、第3の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 図5は、第3の実施形態によるマルチストリーム復号装置の動作説明図である。 図6は、第4の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 図7は、第4の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 図8は、第5の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 図9は、第5の実施形態によるマルチストリーム復号装置の動作説明図である。 図10は、第6の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 図11は、第7の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 図12は、第8の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 図13は、第8の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 図14は、第9の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 図15は、第9の実施形態によるマルチストリーム復号装置の動作説明図である。 図16は、第10の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 図17は、第10の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 図18は、従来のマルチストリーム復号装置の全体構成を示す図である。
符号の説明
100 デコーダ制御装置
101 ヘッダ解析部
102 時間管理部
103 切り替え制御部
110 デコーダ
111 可変長復号部
112 逆量子化部
113 逆DCT部
114 動き補償部
120,130 切り替え装置(SW)
121,122 ストリームバッファ(SB)
131,132 フレームメモリ(FM)
300 ビットカウンタ
310 巻き戻し制御部
400 バッファ管理部
410 出力制御装置
500 未処理ビットカウンタ
510 入力バッファ(IB)
650 メモリアクセス制御部
700,750 クロック制御部
以下、本発明の実施の形態を、図面を参照して詳しく説明する。なお、図面において同一部分又は相当部分には同一の符号を付してその説明は繰り返さない。
以下に示す実施の形態では説明を簡略化するため、MPEG2 Video MP@HLのビットストリームを2ストリーム復号処理する際の動作とし、規定時間については1フレーム時間(1/30秒)、デコーダの所定単位の終了通知を1ピクチャ、各ビットストリームのピクチャ構造もフレーム構造として説明する。
また、以下に示す実施の形態では説明を簡単にするため、2つのビットストリームをch0及びch1という呼び方で呼ぶこととする。
なお、以下に示す実施形態では、復号処理するビットストリーム数は2ストリームとしているが、ビットストリーム数に対する限定はなく、いくつであってもよい。
以下に示す実施形態では、規定時間を1フレーム時間としているが、規定時間に対する限定はなく、また、所定単位の終了通知を1ピクチャとしているが、所定単位に対する限定もなく、また、ビットストリームのピクチャ構造をフレーム構造としているが、ピクチャ構造に対する限定もない。
複数のビットストリームの組み合わせをMPEG2 Video MP@HLの2ストリームとして説明しているが、MPEG2 Video MP@HLとMPEG2 Video MP@MLなどの組み合わせでもよく、ビットストリームの組み合わせに対する限定はない。また、ビットストリームの圧縮方式についてMPEG2 Videoを例に説明しているが、圧縮方式に特に限定はなく、H.264などの圧縮方式でもかまわない。
デコーダ部分についてMPEG2の復号処理を想定した構成になっているが、デコーダ部分の構成については圧縮方式に応じた構成になっていればよいので、特に以下の実施形態で記載している構成でなくてもよい。また、デコーダ制御装置という呼び名が出てくるが、実装としてはハードウェアでもソフトウェアでも、どちらで構成されていてもよい。
《第1の実施形態》
第1の実施形態によるマルチストリーム復号装置の構成を図1に示す。図1のマルチストリーム復号装置は、複数のビットストリームを蓄積する蓄積装置である第1及び第2のストリームバッファ(SB)121,122と、これらのストリームバッファ121,122からの出力を切り替える第1の切り替え装置(SW)120と、デコーダ110と、復号データを蓄積するための第1及び第2のフレームメモリ(FM)131,132と、これらのフレームメモリ131,132を入力ビットストリームに応じて切り替える第2の切り替え装置(SW)130と、デコーダ制御装置100とから構成される。デコーダ制御装置100はヘッダ解析部101、時間管理部102、切り替え制御部103を含み、デコーダ110は可変長復号部111、逆量子化部112、逆DCT部113、動き補償部114から構成される。第1の切り替え装置120と第2の切り替え装置130は、それぞれデコーダ制御装置100内の切り替え制御部103からの制御信号155及び156により切り替えられる。
第1のストリームバッファ121と第2のストリームバッファ122に蓄積されたビットストリームは信号線160と信号線161を通して出力され、第1の切り替え装置120で選択されて、信号線162を通してデコーダ110に入力される。デコーダ110に入力されたビットストリームは可変長復号部111で可変長復号され、逆量子化部112で逆量子化され、逆DCT部113で逆DCTされる。第1のフレームメモリ131からの入出力バス172と、第2のフレームメモリ132からの入出力バス173は第2の切り替え装置130で選択される。動き補償部114は第2の切り替え装置130で選択されたフレームメモリから信号線171を通して取得した参照画像と、逆DCT部113の逆DCT結果とを加算して、復元画像を作成し、作成された復元画像は信号線170を通して第2の切り替え装置130で選択されたフレームメモリに格納される。
デコーダ110は、それぞれのビットストリームの復号処理において、所定単位(第1の実施形態の説明ではピクチャ単位とする。)の復号処理が終了した時点で、信号線151を通して切り替え制御部103に対して復号処理の終了を通知する。
ここで、第1のストリームバッファ121、第1のフレームメモリ131はch0用、第2のストリームバッファ122、第2のフレームメモリ132はch1用として、以下を説明する。
上記のとおり、デコーダ制御装置100はヘッダ解析部101、時間管理部102、切り替え制御部103から構成される。
ヘッダ解析部101は信号線150を通してビットストリームを取得、又は第1のストリームバッファ121、第2のストリームバッファ122から直接ビットストリームを取得し、スライス層より上位層(ピクチャ層以上:第1の実施形態では所定単位をピクチャとしているのでピクチャ層以上としているが、所定単位に応じて階層は変わる)のビットストリームの解析を行う。ヘッダ解析部101が入手したフレームレート及び画像サイズ情報は、時間管理部102に送られる。
時間管理部102は、ヘッダ解析部101から送られたそれぞれのビットストリームのフレームレート及び画像サイズと、デコーダ110の性能情報より、それぞれのビットストリームの復号処理の限界時間を決定する。
時間管理部102は、それぞれのビットストリームの復号処理が限界時間に到達した時点で、信号線152を通してデコーダ110に対して復号処理の中断を通知し、切り替え制御部103に対して復号処理するビットストリームの切り替えを通知する。デコーダ110は、時間管理部102から復号処理の中断通知を受けた場合は直ちに復号処理を中断する。
切り替え制御部103は、時間管理部102からのビットストリームの切り替え通知、又は、デコーダ110からのビットストリームの復号処理の終了通知151を受けて、復号処理するビットストリームの切り替えを行う。具体的に説明すると、切り替え制御部103は、制御信号155を通して第1の切り替え装置120を切り替え、制御信号156を通して第2の切り替え装置130を切り替える。
以下に時間管理部102における復号処理の限界時間の決定方法を、例を挙げて説明する。なお、説明を簡略化するため、以下の前提で行うこととする。
規定時間Tを1/30秒(1フレーム時間)とし、デコーダ110はch0のビットストリーム(MPEG2 Video MP@HL)の1ピクチャ分をa0×Tで、ch1のビットストリーム(MPEG2 Video MP@HL)の1ピクチャ分をb0×Tでそれぞれ復号処理できる性能を持っているものとする。また、規定時間内での性能見積もりで余った時間をΔT0とし、限界時間をT(limit)とする。
この場合、ΔT0は、
ΔT0=規定期間−(ch0復号処理見積時間+ch1復号処理見積時間)
=T−(a0×T+b0×T)
=(1−a0−b0)T ・・・ 式(1)
のようになる。
以下、規定時間T内でch0のビットストリームから復号処理を行うとして限界時間を設定する。なお、以下は説明を簡略化するため、ch0から復号処理を行うとして記載するが、ビットストリームの復号処理順に特に限定はない。
この場合、T(limit)は、
T(limit ch0)=ch0復号処理見積時間+α0×ΔT0
=a0×T+α0×(1−a0−b0)T
・・・ 式(2)
T(limit ch1)=ch0復号処理見積時間+ch1復号処理見積時間+β0×ΔT0
=a0×T+b0×T+β0×(1−a0−b0)T
・・・ 式(3)
0≦T(limit ch0),T(limit ch1)≦T ・・・ 式(4)
のようになる。ここに、α0、β0は係数である。
係数α0、β0は式(4)を満たしていれば、特に制約はない。α0やβ0の付け方によっては、ビットストリームの復号処理に優先順位を付けることもできる。また、2ストリーム復号処理する性能がない場合でも、規定時間内で限界時間の制約を付けることで一方のストリームのみ性能保証を行うという設定もできる。
なお、ここでは限界時間算出方法の例を挙げたが、上記算出方法でなくてはならないというわけではない。
次に、第1の実施形態によるマルチストリーム復号装置の動作を図2を用いて説明する。図2中のリミット200はch0のビットストリーム復号処理にかけられる限界時間を示し、時刻220〜230はビットストリームの切り替え又は所定単位の復号処理が終了した時刻を示す。デコーダの部分で記載されている(1)、(2)、(3)、(4)はそれぞれのビットストリームを復号処理する順番に付けたピクチャ番号である。また、説明簡略化のため、ch1の復号処理完了までにかけられる限界時間は規定期間とし、図中では記載しない。なお、以下の説明ではリミット200は全ての規定期間で同じ値を取っているが、規定期間ごとに再設定可能であり、値が変わってもかまわない。
デコーダ制御装置100におけるビットストリームの切り替え動作の代表的なパターンを以下で説明する。
期間210はch0のビットストリームの復号処理が限界時間内で終わった場合の動作を示す。
まず、ch0のビットストリームの1ピクチャ分の復号処理が終了した時刻220で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻221で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間210での制御が終了する。
期間211はch0のビットストリームの復号処理が限界時間内で終わらず、復号処理の中断が発生した後、規定期間内で復号処理の再開が行われた場合の動作を示す。
まず、時刻222でch0のビットストリームの復号処理が開始される。次にch0のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch0の復号処理の限界時間であるリミット200になった時点でも完了していないため、時刻223において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻224で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送る。時刻224の時点ではまだ規定時間経過していないので、デコーダ制御部100が時刻223で退避したch0のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、デコーダ110がch0のビットストリームの復号処理を継続再開する。次にch0のビットストリームの1ピクチャ分の復号処理が終了した時刻225で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、規定期間211での制御が終了する。なお、中断したビットストリームの復号処理を時刻224で継続して再開したが、再開せずに中断したピクチャを捨ててしまうという選択肢があってもいい。
期間212と期間213はch0のビットストリームの復号処理が限界時間内で終わらず、復号処理の中断が発生した後、規定期間をまたいで復号処理の再開が行われた場合の動作を示す。
まず、時刻225でch0のビットストリームの復号処理が開始される。次にch0のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch0の復号処理の限界時間であるリミット200になった時点でも完了していないため、時刻226において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻227で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間212での制御が終了する。時刻227の時点では、直前の規定時間でのch0のビットストリームの1ピクチャ分の復号処理が終了していないので、デコーダ制御部100が時刻226で退避したch0のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、デコーダ110が直前の規定時間内で復号処理すべきだったch0のビットストリームの復号処理を継続再開する。直前の規定時間内で復号処理すべきだったch0のビットストリームの1ピクチャ分の復号処理が終了した時刻228でも、現在の規定時間内でのch0のビットストリームの復号処理の限界時間(リミット200)まで到達していないので、ch0のビットストリームの次のピクチャの復号処理を継続して行う。ch0のビットストリームの1ピクチャ分の復号処理が終了した時刻229で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻230で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間213での制御が終了する。なお、前の規定時間で中断したビットストリームの復号処理を時刻227で継続して再開したが、直前の規定時間内で処理すべきだったピクチャを捨てて、期間213内で復号処理すべきピクチャから復号処理を開始するという選択肢があってもいい。
以上、デコーダ制御装置100におけるビットストリームの切り替え動作の3パターンを例に説明したが、復号処理の中断・再開は、期間211と期間212との組み合わせなど、切り替え方法も組み合わせが色々あり、上記3パターンしかないというわけではないということは言うまでもない。また、ここではch0のビットストリームの復号処理の中断と再開しか記載していないが、ch1のビットストリームの復号処理の中断と再開がないわけではないということも言うまでもない。
このように第1の実施形態によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
しかも、規定時間ごとにそれぞれのビットストリームの復号処理完了までに割り当てられる限界時間を設定できるので、それぞれのビットストリームの復号処理の状況に応じて最適な処理時間を割り当てることができる。
また、復号処理の限界時間に達した時点で直ちに復号処理の中断ができるので、復号処理を中断したビットストリーム以外の他のビットストリームの復号処理に影響を与えることがない。
また、復号処理を中断したビットストリームの復号処理を再開することができるので、中断されたビットストリームとしては途切れることなしに復号処理できる。
《第2の実施形態》
第2の実施形態では、時間管理部102における規定時間内での復号処理の限界時間の再割り当て方法について例を挙げて説明する。装置構成は図1のとおりである。ただし、ストリームバッファ及びフレームメモリは3チャンネル分とする。
ここで説明を簡略化するため、以下の前提で行うこととする。すなわち、規定時間Tを1/30秒(1フレーム時間)とし、デコーダ110はch0のビットストリーム(MPEG2 Video MP@HL)の復号処理をa1×T時間行って中断、ch1のビットストリーム(MPEG2 Video MP@HL)の復号処理をb1×T時間行って中断、ch2のビットストリーム(MPEG2 Video MP@HL)の1ピクチャ分をc1×T時間行って完了する。また、ch0は復号処理を中断した時点でX1マクロブロックだけ、ch1は復号処理を中断した時点でY1マクロブロックだけ、それぞれ1ピクチャ完了するまでに残っているものとする。また、ch2のビットストリームの復号処理完了時点で規定時間に対して余っている時間をT1、再割り当てした限界時間をT1(limit)とする。
この場合、T1は、
T1=規定時間−(ch0復号処理時間+ch1復号処理時間+ch2復号処理時間)
=T−(a1×T+b1×T+c1×T)
=(1−a1−b1−c1)T ・・・ 式(4)
のようになる。
以下、余り時間T1内でch0のビットストリームから復号処理の再開を行うとして限界時間を再設定する。また、T1は復号再開時点を開始時刻0として記載する。なお、以下は説明を簡略化するため、ch0から復号処理再開を行うとして記載するが、ビットストリームの復号処理再開順に特に限定はない。
この場合、T1(limit)は、
T1(limit ch0)=(X1/(X1+Y1))×(1−a1−b1−c1)T
・・・ 式(5)
T1(limit ch1)=T1
=(1−a1−b1−c1)T ・・・ 式(6)
のようになる。
なお、ここでは説明を簡略化するため、デコーダ110の性能に応じた限界時間の再割り当てに関する記載は行わないが、残りマクロブロック数から第1の実施形態と同じように、デコーダ110の性能を考慮した上で限界時間の再割り当てを行ってもよい。
ここでは再割り当て後の限界時間算出方法の例を挙げたが、上記算出方法でなくてはならないというわけではない。
次に、第2の実施形態によるマルチストリーム復号装置の動作を図3を用いて説明する。図3中のリミット250はch0のビットストリーム復号処理完了までにかけられる限界時間を示し、リミット251はch0とch1のビットストリーム復号処理完了までにかけられる限界時間を示し、リミット252は限界時間再割り当て後のch0のビットストリーム復号処理完了までにかけられる限界時間を示し、リミット253は限界時間再割り当て後のch0とch1のビットストリーム復号処理完了までにかけられる限界時間を示し、時刻270〜278はビットストリームの切り替え又は所定単位の復号処理が終了した時刻を示す。デコーダの部分で記載されている(1)、(2)はそれぞれのビットストリームで復号処理する順番に付けたピクチャ番号である。また、説明簡略化のため、ch2の復号処理完了までにかけられる限界時間は規定期間とし、図中では記載しない。なお、以下の説明ではリミット250、リミット251は全ての規定期間で同じ値を取っているが、規定期間ごとに再設定可能であり、値が変わってもかまわない。
デコーダ制御装置100における限界時間の再割り当ての動作について、以下に説明する。
期間260はch0のビットストリームの復号処理が限界時間内で終わった場合の動作を示す。この動作は第1の実施形態で説明した内容と、復号処理するビットストリーム数が変わるだけで同じである。
まず、ch0のビットストリームの1ピクチャ分の復号処理が終了した時刻270で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻271で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch2のビットストリームに切り替える。次にch2のビットストリームの1ピクチャ分の復号処理が終了した時刻272で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間260での制御が終了する。
期間261はch0とch1のビットストリームの復号処理が限界時間内で終わらず、復号処理の中断が発生した後、規定期間内で復号処理の限界時間の再割り当てが行われたうえ、復号処理の再開が行われた場合の動作を示す。
まず、時刻273でch0のビットストリームの復号処理が開始される。次にch0のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch0の復号処理の限界時間であるリミット250になった時点でも完了していないため、時刻274において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch1の復号処理の限界時間であるリミット251になった時点でも完了していないため、時刻275において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch2のビットストリームに切り替える。次にch2のビットストリームの1ピクチャ分の復号処理が終了した時刻276で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送る。時刻276の時点ではまだ規定時間経過していないので、ch0とch1に対する復号処理の限界時間の再割り当てを行う。
時刻276において、デコーダ制御部100が時刻274で退避したch0のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、デコーダ110がch0のビットストリームの復号処理を再開する。次にch0のビットストリームの1ピクチャ分の復号処理が終了した時刻277で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、ビットストリームをch1のビットストリームに切り替える。次に時刻277において、デコーダ制御部100が時刻275で退避したch1のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、デコーダ110がch1のビットストリームの復号処理を再開する。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻278で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間261での制御が終了する。なお、ここではビットストリームの復号処理の再開順をch0、ch1としたが、復号処理を再開するビットストリーム順番については特に限定はない。
限界時間再割り当て後の動作は、規定時間の最初に限界時間を割り当てた場合の動作(第1の実施形態で説明した内容)と同じなので、ここでは説明を繰り返さない。
このように第2の実施形態によれば、規定時間内の余った時間を、復号処理を中断したビットストリームに割り当て直すことにより、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
《第3の実施形態》
第3の実施形態によるマルチストリーム復号装置の構成を図4に示す。図4のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、デコーダ110内にビットカウンタ300を備え、デコーダ制御装置100内に巻き戻し制御部310を備えた構成になっている。
ビットカウンタ300は、デコーダ110がビットストリーム階層(ピクチャ層、又は、スライス層、又は、マクロブロック層など)の先頭からの処理ビット量をカウントするカウンタである。
巻き戻し制御部310は、ビットカウンタ300の値を信号線320を通して取り込み、それぞれのビットストリームを蓄積するための第1のストリームバッファ121と第2のストリームバッファ122のポインタを巻き戻す機能を備えている。
次に、第3の実施形態によるマルチストリーム復号装置の動作を図2と図5を用いて説明する。図5は復号処理したフレームのイメージを示すもので、ピクチャ350は複数のスライス層(スライス0、スライス1、・・・、スライスN、・・・)から構成される。
なお、以下では説明を簡略化するため、ビットカウンタ300をスライス層先頭からのビット量をカウントするものとして記載するが、スライス層先頭カウントするものに限定されるというわけではないことは言うまでもない。
復号処理の中断と再開の際のビットカウンタ300と巻き戻し制御部310の使用方法を、図2における期間211の動作を元に説明を行う。
まず、時刻222でch0のビットストリームの復号処理が開始される。次にch0のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch0の復号処理の限界時間であるリミット200になった時点でも完了していないため、時刻223において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。ここでは、図5のスライスNの途中で中断が発生したものとして説明を進める。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。この際、ビットカウンタ300の情報も退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻224で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送る。時刻224の時点ではまだ規定時間経過していないので、デコーダ制御部100が時刻223で退避したch0のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、次に巻き戻し制御部310が、ビットカウンタ300の情報を元に、ch0側のビットストリーム蓄積装置である第1のストリームバッファ121のポインタをスライスNの先頭まで巻き戻す。次にデコーダ110がch0のビットストリームの復号処理をスライスNの先頭から再開する。次にch0のビットストリームの1ピクチャ分の復号処理が終了した時刻225で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、規定期間211での制御が終了する。
以上、復号処理の限界時間に達した場合での復号処理の中断と再開を例に、ビットカウンタ300と巻き戻し制御部310の使用方法を説明したが、限界時間に達しない場合でも復号処理の中断や再開をする際にこれらを使用できることは言うまでもない。
このように第3の実施形態によれば、例えば、ピクチャやスライスやマクロブロックラインやマクロブロックの先頭から復号処理を再開することができるので、復号処理を中断した際にビットカウンタ300がカウントしているビットストリーム階層の上位階層の情報だけ退避するだけで、復号処理の再開ができる。
《第4の実施形態》
第4の実施形態によるマルチストリーム復号装置の構成を図6に示す。図6のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、デコーダ制御装置100内にバッファ管理部400を備え、更に、第1のフレームメモリ131からの出力を信号線420を通して、第2のフレームメモリ132からの出力を信号線421を通してそれぞれ取り込み、信号線423を通して画像を出力する出力制御装置410を備えた構成になっている。
バッファ管理部400は、それぞれのビットストリームに対応したフレームメモリ131,132へのデータ供給量をデコーダ110から信号線430を通して取り込み、それぞれのビットストリームに対応したフレームメモリ131,132へのデータ消費量を出力制御装置410から信号線440を通して取り込む。
バッファ管理部400は、信号線430と信号線440から取り込んだ情報より、それぞれのビットストリームに対応したフレームメモリ131,132上のデータ残量を計算し、データ残量が少ないような場合は、デコーダ110に対して信号線431を通して、復号処理の中断を通知し、出力制御装置410に対して信号線441を通して、出力画像の切り替えを通知する。
デコーダ110は、バッファ管理部400からの復号処理の中断通知を受けて、復号処理を中断し、出力制御装置410はバッファ管理部400からの出力画像切り替え通知を受けて、出力画像を切り替える。
なお、フレームメモリ131,132のデータ残量がどの程度までになった場合に、バッファ管理部400が復号処理の中断と出力画像の切り替えを通知するかは特に限定はない。
次に、第4の実施形態によるマルチストリーム復号装置の動作を図7を用いて説明する。図7中のリミット450はch0のビットストリーム復号処理にかけられる限界時間を示し、時刻460〜463はビットストリームの切り替え又は所定単位の復号処理が終了した時刻を示す。デコーダの部分で記載されているI0,P3,B1,B2,P6はピクチャの名称と出力順を示すもので、I0はIピクチャで一番目に出力、P3はPピクチャで四番目に出力、B1はBピクチャで二番目に出力、B2はBピクチャで三番目に出力、P6はPピクチャで七番目に出力ということになる。また、説明簡略化のため、ch1の復号処理完了までにかけられる限界時間は規定期間とし、図中では記載しない。なお、以下の説明ではリミット450は全ての規定期間で同じ値を取っているが、規定期間ごとに再設定可能であり、値が変わってもかまわない。
期間470、期間471では復号処理しか行われておらず、期間472から画像が出力されるものとし、期間472で復号処理の中断が発生し、期間473で中断した復号処理の再開と、バッファ管理部400からの通知により、復号処理の中断と出力画像の切り替えが発生した場合の動作を例に説明する。以下では、中断と復帰の際の詳細な制御については第1の実施形態で説明しているので繰り返しを行わない。
まず、期間470でch0とch1のビットストリームにおいてI0ピクチャの復号処理が行われる。次に、期間471でch0とch1のビットストリームにおいてP3ピクチャの復号処理が行われる。期間470と期間471では復号処理の中断は発生していないものとする。
次に期間472ではch0とch1のビットストリームにおいてB1ピクチャの復号処理が行われ、ch0とch1のビットストリームのI0ピクチャの出力が行われる。
時刻460でch0のビットストリームにおいてB1ピクチャの復号処理が開始される。時刻461でch0のビットストリームのB1ピクチャの復号処理がch0の復号処理の限界時間450までに完了せず、ch0の復号処理が中断され、ch1のビットストリームのB1ピクチャの復号処理が開始され、時刻462で復号処理が終了する。
次に期間473ではch0のビットストリームのB1ピクチャとB2ピクチャの復号処理、ch1のビットストリームのB2ピクチャの復号処理が行われ、ch0とch1のビットストリームのB1ピクチャの出力が開始される。
時刻462でch0のビットストリームのB1ピクチャの復号処理が再開され、同時にch0とch1のビットストリームのB1ピクチャの出力が開始される。この場合、ch0のビットストリームのB1ピクチャの復号処理と、出力処理が同時に発生することとなる。時刻462ではB1ピクチャのデコーダ110での復号処理のデータ供給量が、B1ピクチャの出力制御装置410のデータ消費量を上回っているため、期間473の最初のうちはch0のB1ピクチャが出力される。
時刻463においてデコーダ110のデータ供給量と、出力制御装置410のデータ消費量がほとんど変わらなくなると、バッファ管理部400がデコーダ110に対してch0のビットストリームのB1ピクチャの復号処理の中断と、出力制御装置410に対して、出力画像の切り替えを通知する。デコーダ110はバッファ管理部400からの復号処理中断通知を受けて、B1ピクチャの復号処理を中断し、ピクチャをスキップし、B2ピクチャの復号処理を開始する。出力制御装置410はバッファ管理部400からの出力画像切り替え通知を受けて、ch0側の出力画像をB1ピクチャから、既に、復号処理が完了しているI0ピクチャに切り替える。ここではフレームメモリ131に対するデコーダ110側のデータ供給量と、出力制御装置410のデータ消費量がほとんど変わらなくなったとしたが、差がある場合はそのまま復号処理が継続され、出力画像の切り替えも起こらない。
なお、出力画像を切り替える際に、I0ピクチャに切り替えたが、どの画像に切り替えるかは特に限定はない。
このように第4の実施形態によれば、出力制御装置410のデータ消費状況を見ながら、復号処理を進めることができるので、出力制御装置410がデータを消費しきるぎりぎりまで復号処理を継続することができる。
また、デコーダ110のデータ供給量と、出力制御装置410のデータ消費量に応じて、出力画像を切り替えることができるので、たとえ復号処理が中断しても違和感のない画像を出力することができる。
《第5の実施形態》
第5の実施形態によるマルチストリーム復号装置の構成を図8に示す。図8のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、デコーダ110内に未処理ビットカウンタ500と、入力バッファ(IB)510とを備え、デコーダ制御装置100内に巻き戻し制御部310を備えた構成になっている。
未処理ビットカウンタ500は、入力バッファ510にあるビットストリームのうち、デコーダ110の可変長復号部111でまだ処理されていないビット量を観測するカウンタである。
巻き戻し制御部310は、未処理ビットカウンタ500の値を信号線520を通して取り込み、信号線330を通して、それぞれのビットストリームを蓄積するための第1のストリームバッファ121と第2のストリームバッファ122のポインタを巻き戻す機能を備えている。
次に、第5の実施形態によるマルチストリーム復号装置の動作を図2と図9を用いて説明する。図9は第1のストリームバッファ121と第2のストリームバッファ122とのイメージ図で、WPがストリームバッファ121,122への書き込み状況を表すポインタであり、RPがストリームバッファ121,122からの読み出し状況を表すポインタであって、未処理ビットカウンタ500の値を用いて、巻き戻し制御部310がRPをRP’まで巻き戻す。
未処理ビットカウンタ500と巻き戻し制御部310の使用方法を、図2における期間210の動作を元に説明を行う。
まず、ch0のビットストリームの1ピクチャ分の復号処理が終了した時刻220で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、デコーダ制御装置100が未処理ビットカウンタ500の値を退避し、切り替え制御部103がビットストリームをch1のビットストリームに切り替える。
時刻222において、ch0のビットストリームの復号処理を開始する前に、巻き戻し制御部310が時刻220で退避した未処理ビットカウンタ500の値を用いて、ch0側である第1のストリームバッファ121のポインタを巻き戻し、デコーダ110が実際に処理したビットストリームの位置まで巻き戻す。なお、ここではch1での制御は記載しないが、ch1においても同じ動作を行う。
このように第5の実施形態によれば、デコーダ110の内部での消費していないビット量が判るので、ビットストリームを切り替える際にビットストリームの巻き戻しによるオーバーヘッドをなくすことができる。
《第6の実施形態》
第6の実施形態によるマルチストリーム復号装置の構成を図10に示す。図10のマルチストリーム復号装置は、第5の実施形態によるマルチストリーム復号装置を含み、更に、第1及び第2のストリームバッファ121,122は図9で記載している巻き戻し後のRP’情報を用いて、未処理ビットデータの上書きを防止する機能を備えている。
第1のストリームバッファ121と第2のストリームバッファ122はRP’情報を元にビットストリーム供給側に対して、ストリームバッファのデータ書き込みの限界値を信号線550と信号線551を通して通知し、デコーダ110での未処理データ書き潰しを防ぐ。
このように第6の実施形態によれば、デコーダ110の内部で処理できていないビットストリームの書き潰しを防ぐことができる。
《第7の実施形態》
第7の実施形態によるマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、規定期間の開始時点で、直前で復号処理していたビットストリームの情報を元に、切り替え制御部103が復号処理するビットストリーム順を決定する機構を備える。装置構成は、図1のとおりである。
第7の実施形態によるマルチストリーム復号装置の動作を図11に示す。以下では、規定期間の開始時刻のうち、時刻620と時刻621での動作を例に説明する。
規定期間610はch0、ch1の順でビットストリームの復号処理をしていたので、時刻620では、切り替え制御部103が、規定期間611の開始の直前で復号処理していたのはch1と判断し、ビットストリームの切り替えを行わず、規定期間611ではch1、ch0の順でビットストリームの復号処理が行われる。同じように時刻621では、切り替え制御部103が規定期間612の開始の直前で復号処理していたのはch0と判断し、ビットストリームの切り替えを行わず、規定期間612ではch0、ch1の順でビットストリームの復号処理が行われる。なお、規定時間内でビットストリームの復号処理の中断と再開が発生し、ビットストリームの処理順が不規則になった場合でも同じである。
このように第7の実施形態によれば、ビットストリーム切り替えによるオーバーヘッドを削減することができる。
《第8の実施形態》
第8の実施形態によるマルチストリーム復号装置の構成を図12に示す。図12のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、デコーダ110内にメモリアクセス制御部650を備えた構成になっている。
メモリアクセス制御部650は、ヘッダ解析部101が取得した画像サイズとフレームレートの情報を信号線660を通して取得し、デコーダ制御装置100から復号処理するビットストリーム数などの情報を信号線661を通して取得し、デコーダ110が規定期間内に復号処理を終了するために必要なメモリアクセスレートを決定する。
以下にメモリアクセスレートの決定方法を、
(i) HD(High Definition)2chデコードの場合
ch0 画像サイズ 1920ピクセル×1088ライン
ch1 画像サイズ 1920ピクセル×1088ライン
(ii) HD1chデコードの場合
ch0 画像サイズ 1920ピクセル×1088ライン
ch1 復号処理なし
(iii)SD(Standard Definition)2chデコード場合
ch0 画像サイズ 720ピクセル×480ライン
ch1 画像サイズ 720ピクセル×480ライン
という例を挙げて記載する。
メモリアクセス制御部650は、デコーダ制御装置100から上記情報を入手し、規定期間内に復号処理を終了するために必要なメモリアクセスレートを判定し、メモリアクセスレートを決定する。この場合、画像サイズに応じて必要なメモリアクセスレートが決定される。なお、ここでは説明簡略化のため、例(i)でのメモリアクセスレートを基準として、A回/時間として記載し、フレームレートは同じとする。
(i)HD2chデコードの場合(基準)、規定期間内に復号処理が終了するために必要なメモリアクセスレートがA回/時間なので、メモリアクセス制御部650がメモリアクセスレートをA回/時間に設定する。
(ii)HD1chデコードの場合、画像サイズ情報より規定期間内に復号処理が終了するために必要なメモリアクセスレートはHD2chデコードと比べて1/2となる。メモリアクセス制御部650はメモリアクセスが(1/2)A回/時間になるようにメモリアクセスレートを設定する。
(iii)SD2chデコードの場合、画像サイズ情報より規定期間内に復号処理が終了するために必要なメモリアクセスレートはHD2chデコードと比べて(720×480)/(1920×1088)=約1/6となる。メモリアクセス制御部650はメモリアクセスが約(1/6)A回/時間になるようにメモリアクセスレートを設定する。
このようにして算出した値を元に、メモリアクセス制御部650はメモリアクセスのレート制御を行う。図13に上記の例(i)、(ii)、(iii)におけるメモリアクセス頻度のイメージ図を示す。メモリアクセス制御部650によるメモリアクセスのレート制御を行わない場合は、(i)、(ii)、(iii)ともピークメモリバンド幅は例(i)と同じだけ使用することになるが、レート制御を行った場合は、(i)、(ii)、(iii)に合ったピークメモリバンド幅に抑えることができる。
このように第8の実施形態によれば、復号処理するビットストリームに応じたピークメモリバンド幅にメモリバンド幅を抑えることができるので、外部メモリを共有しているようなシステムにおいて、他のアプリケーションにメモリバンド幅を与えることができる。
《第9の実施形態》
第9の実施形態によるマルチストリーム復号装置の構成を図14に示す。図14のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、クロック制御部700を備えた構成になっている。
クロック制御部700は、ヘッダ解析部101が取得した画像サイズとフレームレートの情報を信号線710を通して取得し、デコーダ制御装置100から復号処理するビットストリーム数などの情報を信号線711を通して取得し、デコーダ110が規定期間内に復号処理を終了するために必要なだけのクロックを信号線712を通して供給する。
クロック制御部700は、デコーダ制御装置100から上記情報を入手し、規定期間内に復号処理を終了するために必要なクロック周波数を判定し、クロック周波数を制御する。この場合、画像サイズに応じて必要なクロック周波数が決定される。なお、ここでは説明簡略化のため、上記の例(i)のクロック周波数を基準として、Sメガヘルツ(MHz)として記載し、フレームレートは同じとする。
上記の例(i)、(ii)、(iii)におけるクロック制御は、次のとおりである。
(i)HD2chデコードの場合(基準)、規定期間内に復号処理が終了するために必要なクロック周波数がSMHzなので、クロック制御部700がクロック周波数をSMHzに設定する。
(ii)HD1chデコードの場合、画像サイズ情報より規定期間内に復号処理が終了するために必要なクロック周波数はHD2chデコードと比べて1/2となる。クロック制御部700はクロック周波数が(1/2)SMHzになるようにクロック周波数を設定する。
(iii)SD2chデコードの場合、画像サイズ情報より規定期間内に復号処理が終了するために必要なクロック周波数はHD2chデコードと比べて(720×480)/(1920×1088)=約1/6となる。クロック制御部700はクロック周波数が約(1/6)SMHzになるようにクロック周波数を設定する。
このようにして算出した値を元にクロック制御部700はクロック周波数の制御を行う。図15に例(i)、(ii)、(iii)のイメージ図を示す。クロック制御部700によるクロック周波数制御を行わない場合は、(i)、(ii)、(iii)ともクロック周波数が同じであるため、同じだけの消費電力を使用することになるが、クロック周波数制御を行った場合は、(i)、(ii)、(iii)に合ったクロック周波数に設定することができるので、(i)、(ii)、(iii)に合った消費電力に抑えることができる。
このように第9の実施形態によれば、復号処理するビットストリームに応じたクロック周波数を設定することで、消費電力を抑えることができる。
《第10の実施形態》
第10の実施形態によるマルチストリーム復号装置の構成を図16に示す。図16のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、クロック制御部750を備えた構成になっている。
クロック制御部750は、時間管理部102から規定時間の情報を信号線760を通して取得し、デコーダ110からピクチャ単位の終了通知を受けて、デコーダ110に対してクロック供給が必要かどうか判断し、信号線761を通じてデコーダ110に供給しているクロックを供給したり、停止したりする。
次に、第10の実施形態によるマルチストリーム復号装置の動作を図17を用いて説明する。ここでは、期間810の動作をクロック供給と停止について説明する。
期間810では時刻800においてクロック制御部750がデコーダ110にクロック供給を開始する。時刻801にch0、ch1のビットストリームの復号処理が完了すると、この時点で規定期間内でデコーダ110を動作させる必要はなくなるので、クロック制御部750がデコーダ110に対するクロック供給を停止する。クロック制御部750は規定期間ごとにこの制御を繰り返す。
このように、クロック制御部750はデコーダ110を動作させる必要がある場合のみクロックを供給することで消費電力を抑えることができる。
このように第10の実施形態によれば、複数のビットストリームの復号処理が規定時間よりも早く終了した場合に、クロックを停止することができるので、消費電力を抑えることができる。
本発明のマルチストリーム復号装置は、デジタルテレビや、DVD、DVRなどの蓄積メディアにおける復号装置への適用が可能である。
本発明は、符号化された複数のビットストリームの復号処理を支援するマルチストリーム復号装置に関するものである。
図18は、従来のマルチストリーム復号装置の構成を示している。ここでは、MPEG2 Videoを例にする。
図18のマルチストリーム復号装置は、複数のビットストリームを蓄積する蓄積装置である第1及び第2のストリームバッファ(SB)1021,1022と、これらのストリームバッファ1021,1022からの出力を切り替える第1の切り替え装置(SW)1020と、デコーダ1010と、復号データを蓄積するための第1及び第2のフレームメモリ(FM)1031,1032と、これらのフレームメモリ1031,1032を入力ビットストリームに応じて切り替える第2の切り替え装置(SW)1030と、デコーダ制御装置1000とから構成される。デコーダ制御装置1000は切り替え制御部1001を含み、デコーダ1010は可変長復号部1011、逆量子化部1012、逆DCT部1013、動き補償部1014から構成される。
デコーダ制御装置1000内の切り替え制御部1001は、ピクチャ単位で、信号線1050を通して第1の切り替え装置1020を切り替え、信号線1051を通して第2の切り替え装置1030を切り替える。
第1のストリームバッファ1021と第2のストリームバッファ1022に蓄積されたビットストリームは信号線1060と信号線1061を通して出力され、第1の切り替え装置1020で選択されて、信号線1062を通してデコーダ1010に入力される。デコーダ1010に入力されたビットストリームは可変長復号部1011で可変長復号され、逆量子化部1012で逆量子化され、逆DCT部1013で逆DCTされる。第1のフレームメモリ1031からの入出力バス1072と、第2のフレームメモリ1032からの入出力バス1073は第2の切り替え装置1030で選択される。動き補償部1014は第2の切り替え装置1030で選択されたフレームメモリから信号線1071を通して取得した参照画像と、逆DCT部1013の逆DCT結果とを加算して、復元画像を作成し、作成された復元画像は信号線1070を通して第2の切り替え装置1030で選択されたフレームメモリに格納される。
このように従来の構成では複数のビットストリームを切り替えながら単一のデコーダ1010で復号処理する際に、入力したビットストリームの処理単位(例えば、ピクチャ単位)のみで切り替えながら復号処理を行っていた(特許文献1参照)。
特開2002−112195号公報
しかしながら、従来の構成では、入力したビットストリームの処理単位のみで復号処理するビットストリームを切り替えているため、例えば一方のビットストリームがアンダーフローを起こして復号処理が遅れた場合、他方のビットストリームの復号処理も遅れてしまい、特に独立した複数のビットストリームを切り換えながら復号処理する場合にはシステムとして破綻してしまうという課題があった。
更に、従来の構成では、ビットストリームを切り替える際に、デコーダ内部に残っており、復号処理ができていないビットストリーム量が判らないために、ビットストリームを切り替える際に必要以上にビットストリームを巻き戻す必要があり、切り替え時のオーバーヘッドが増加してしまうという課題があった。
更に、従来の構成では、元々複数のビットストリームを復号処理することができるデコーダを備えているために、単一ビットストリームを復号処理する場合でも複数ビットストリームを復号処理する場合と同じだけのピークメモリバンド幅や消費電力を使ってしまうという課題があった。
本発明は以上のような課題を解消するためになされたもので、複数のビットストリームをデコードする際のビットストリーム間の影響を抑え、ビットストリーム切り替え時のオーバーヘッドを抑え、更に、ピークメモリバンド幅や消費電力を抑える復号装置を提供することを目的とする。
本発明の第1のマルチストリーム復号装置では、複数のビットストリームをそれぞれ蓄積する蓄積装置と、前記蓄積装置からの出力を切り替える第1の切り替え装置と、前記第1の切り替え装置からの出力を入力として復号を行うデコーダと、前記デコーダで復号したデータをそれぞれ蓄積する複数のフレームメモリと、それぞれのビットストリームに応じて前記フレームメモリを切り替える第2の切り替え装置と、前記デコーダを制御するデコーダ制御手段とを備えたマルチストリーム復号装置において、前記デコーダ制御手段は、ビットストリーム中のヘッダを解析するヘッダ解析手段と、ビットストリームごとに処理時間を割り当てる時間管理手段と、前記第1及び第2の切り替え装置を制御する切り替え制御手段とを備え、前記時間管理手段は、前記ヘッダ解析手段が取得した画像サイズとフレームレートとを含むビットストリーム情報と、前記デコーダの処理性能と、復号するビットストリーム数を含む情報とに応じて、規定時間内でそれぞれのビットストリームの復号処理にかけられる限界時間を決定し、かつ復号処理が前記限界時間に達した場合にビットストリーム切り替え通知信号を出力し、前記切り替え制御手段は、前記時間管理手段が出力したビットストリーム切り替え通知信号と、前記デコーダがそれぞれのビットストリームの第1の所定単位の復号処理を終了した時点で出力する終了通知信号とを用いて、前記第1及び第2の切り替え装置を切り替えることとした。
本発明の第2のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記時間管理手段は、前記規定時間ごとにそれぞれのビットストリームの復号処理にかけられる時間の前記限界時間を設定し直すこととした。
本発明の第3のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記時間管理手段はビットストリームの復号処理時間が前記限界時間に達した時点で前記デコーダに対して復号処理の中断を通知し、前記デコーダは中断通知を受けて直ちに復号処理を中断することとした。
本発明の第4のマルチストリーム復号装置では、前記第3のマルチストリーム復号装置において、前記デコーダ制御手段は、復号の中断が発生した時点で中断した復号処理の再開に必要な前記デコーダ内部の情報を退避し、中断したビットストリームの復号処理が次に開始される前に、退避した情報を前記デコーダに再設定することにより、復号処理を再開することとした。
本発明の第5のマルチストリーム復号装置では、前記第4のマルチストリーム復号装置において、前記規定時間内で複数のビットストリームの復号処理が中断され、かつ、中断されたビットストリーム以外のビットストリームの第1の所定単位の復号処理が早く終了し、前記規定時間内の処理時間が余った場合に、中断されたそれぞれのビットストリームが第1の所定単位の復号処理が完了するまでの予測時間に応じて、それぞれのビットストリームの復号処理にかけられる限界時間を再設定することとした。
本発明の第6のマルチストリーム復号装置では、前記第4のマルチストリーム復号装置において、前記デコーダ内に第2の所定単位の先頭からの処理ビット量をカウントする第1のカウンタを、前記デコーダ制御手段内に前記蓄積装置のポインタを巻き戻す巻き戻し制御手段をそれぞれ備え、前記巻き戻し制御手段は、前記時間管理手段が復号処理を中断したビットストリームに対して、前記デコーダ制御手段が復号処理を再開する際に、前記第1のカウンタの情報を用いて、前記第2の所定単位の先頭まで前記蓄積装置のポインタを巻き戻し、前記第2の所定単位の先頭から復号処理を再開することとした。
本発明の第7のマルチストリーム復号装置では、前記第4のマルチストリーム復号装置において、前記複数のフレームメモリからの出力を入力とし、画像を出力する出力制御装置を更に備え、かつ前記デコーダ制御手段内に前記複数のフレームメモリのデータ量を管理するバッファ管理手段を備え、前記バッファ管理手段は、前記デコーダから通知される前記複数のフレームメモリへのデータ供給量と、前記出力制御装置から通知される前記複数のフレームメモリのデータ消費量とを用いて前記デコーダに復号処理の中断を通知し、前記デコーダは前記中断通知を受けて直ちに復号処理を中断することとした。
本発明の第8のマルチストリーム復号装置では、前記第7のマルチストリーム復号装置において、前記バッファ管理手段は、前記デコーダから通知される前記複数のフレームメモリへのデータ供給量と、前記出力制御装置から通知される前記複数のフレームメモリのデータ消費量とを用いて前記出力制御装置に対して出力画像の切り替えを通知し、前記出力制御装置は前記切り替え通知を受けて直ちに出力画像の切り替えを行うこととした。
本発明の第9のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記デコーダ内に前記第1の切り替え装置からの出力を一時的に保持する入力バッファと、前記入力バッファ内の未処理ビット量を観測する第2のカウンタとを、前記デコーダ制御手段内に前記蓄積装置のポインタを巻き戻す巻き戻し制御手段をそれぞれ備え、前記デコーダ制御手段は、前記切り替え制御手段が前記第1の切り替え装置を切り替える際に、前記第2のカウンタの情報を退避し、切り替える前のビットストリームの復号処理を再開する際に、前記巻き戻し制御手段は、前記第2のカウンタの情報を用いて、前記デコーダが実際に消費した部分まで前記蓄積装置のポインタを巻き戻し、復号処理を再開することとした。
本発明の第10のマルチストリーム復号装置では、前記第9のマルチストリーム復号装置において、前記蓄積装置のポインタ情報を利用して前記蓄積装置内のビットストリームの書き潰しを防ぐための手段を更に備えることとした。
本発明の第11のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記デコーダ制御手段は、前記規定時間終了の直前まで前記デコーダで復号処理していたビットストリームの種類を前記規定時間ごとに判定し、次の規定時間でのビットストリームのデコード順を決定することとした。
本発明の第12のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記デコーダ内に、前記複数のフレームメモリへのアクセス頻度を制御するメモリアクセス制御装置を備え、前記メモリアクセス制御装置は、前記ヘッダ解析手段が取得した画像サイズとフレームレートとを含むビットストリーム情報と、前記デコーダ制御手段から通知される復号処理するビットストリーム数を含む情報とを用いて、前記複数のフレームメモリのアクセス頻度を制御することとした。
本発明の第13のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記ヘッダ解析手段が取得した画像サイズとフレームレートとを含むビットストリーム情報と、前記デコーダの処理性能と、前記デコード制御手段から通知される復号処理するビットストリーム数を含む情報とを用いて、前記デコーダに供給するクロックの周波数を決定するクロック制御装置を更に備えることとした。
本発明の第14のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記デコーダ制御手段から通知される前記規定時間の情報と、前記デコーダから通知される第1の所定単位の復号終了通知とを用いて、前記デコーダに対するクロック供給と停止を切り替えるクロック制御装置を更に備えることとした。
本発明の第15のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記第1の所定単位をピクチャ単位、又はスライス単位、又はマクロブロックライン単位、又はマクロブロック単位とする。
本発明の第16のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、前記規定時間をビットストリーム中のフレームレートから平均的に割り当てたピクチャ時間、又はスライス時間、又はマクロブロックライン時間、又はマクロブロック時間とする。
本発明の第17のマルチストリーム復号装置では、前記第6のマルチストリーム復号装置において、前記第2の所定単位をピクチャ単位、又はスライス単位、又はマクロブロックライン単位、又はマクロブロック単位とする。
本発明の第18のマルチストリーム復号装置では、前記第1のマルチストリーム復号装置において、ビットストリームをMPEG1、MPEG2、MPEG4、H.264のいずれかで圧縮されたビットストリームとする。
本発明の第1のマルチストリーム復号装置によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
本発明の第2のマルチストリーム復号装置によれば、規定時間ごとにそれぞれのビットストリームごとの復号処理に割り当てられる限界時間を設定できるので、それぞれのビットストリームの復号処理の状況に応じて最適な処理時間を割り当てることができる。
本発明の第3のマルチストリーム復号装置によれば、復号処理の限界時間に達した時点で直ちに復号処理の中断ができるので、復号処理を中断したビットストリーム以外のビットストリームの復号処理に影響を与えることがない。
本発明の第4のマルチストリーム復号装置によれば、復号処理を中断したビットストリームの復号処理を再開することができるので、中断されたビットストリームとしては途切れることなしに復号処理できる。
本発明の第5のマルチストリーム復号装置によれば、規定時間内の余った時間を、復号処理を中断したビットストリームに割り当て直すことにより、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
本発明の第6のマルチストリーム復号装置によれば、第2の所定単位、例えば、ピクチャやスライスやマクロブロックラインやマクロブロックの先頭から復号処理を再開することができるので、復号処理を中断した際に第2の所定単位の上位階層の情報だけ退避するだけで、復号処理の再開ができる。
本発明の第7のマルチストリーム復号装置によれば、出力制御装置のデータ消費状況を見ながら、復号処理を進めることができるので、出力制御装置がデータを消費しきるぎりぎりまで復号処理を継続することができる。
本発明の第8のマルチストリーム復号装置によれば、復号装置のデータ供給量と、出力制御装置のデータ消費量とに応じて、出力画像を切り替えることができるので、たとえ復号処理が中断しても違和感のない画像を出力することができる。
本発明の第9のマルチストリーム復号装置によれば、ビットストリームを切り替える際にビットストリームの巻き戻しによるオーバーヘッドをなくすことができる。
本発明の第10のマルチストリーム復号装置によれば、内部で処理できていないビットストリームの書き潰しを防ぐことができる。
本発明の第11のマルチストリーム復号装置によれば、ビットストリーム切り替えによるオーバーヘッドを削減することができる。
本発明の第12のマルチストリーム復号装置によれば、メモリバンド幅を復号処理するビットストリームに応じたピークバンド幅に抑えることができるので、外部メモリを共有しているようなシステムにおいて、他のアプリケーションにメモリバンド幅を与えることができる。
本発明の第13のマルチストリーム復号装置によれば、復号処理するビットストリームに応じたクロック周波数を設定することで、消費電力を抑えることができる。
本発明の第14のマルチストリーム復号装置によれば、複数のビットストリームの復号処理が規定時間よりも早く終了した場合に、クロックを停止することができるので、消費電力を抑えることができる。
本発明の第15のマルチストリーム復号装置によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
本発明の第16のマルチストリーム復号装置によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
本発明の第17のマルチストリーム復号装置によれば、第2の所定単位、例えば、ピクチャやスライスやマクロブロックラインやマクロブロックの先頭から復号処理を再開することができるので、復号処理を中断した際に第2の所定単位の上位階層の情報だけ退避するだけで、復号処理の再開ができる。
本発明の第18のマルチストリーム復号装置によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
以下、本発明の実施の形態を、図面を参照して詳しく説明する。なお、図面において同一部分又は相当部分には同一の符号を付してその説明は繰り返さない。
以下に示す実施の形態では説明を簡略化するため、MPEG2 Video MP@HLのビットストリームを2ストリーム復号処理する際の動作とし、規定時間については1フレーム時間(1/30秒)、デコーダの所定単位の終了通知を1ピクチャ、各ビットストリームのピクチャ構造もフレーム構造として説明する。
また、以下に示す実施の形態では説明を簡単にするため、2つのビットストリームをch0及びch1という呼び方で呼ぶこととする。
なお、以下に示す実施形態では、復号処理するビットストリーム数は2ストリームとしているが、ビットストリーム数に対する限定はなく、いくつであってもよい。
以下に示す実施形態では、規定時間を1フレーム時間としているが、規定時間に対する限定はなく、また、所定単位の終了通知を1ピクチャとしているが、所定単位に対する限定もなく、また、ビットストリームのピクチャ構造をフレーム構造としているが、ピクチャ構造に対する限定もない。
複数のビットストリームの組み合わせをMPEG2 Video MP@HLの2ストリームとして説明しているが、MPEG2 Video MP@HLとMPEG2 Video MP@MLなどの組み合わせでもよく、ビットストリームの組み合わせに対する限定はない。また、ビットストリームの圧縮方式についてMPEG2 Videoを例に説明しているが、圧縮方式に特に限定はなく、H.264などの圧縮方式でもかまわない。
デコーダ部分についてMPEG2の復号処理を想定した構成になっているが、デコーダ部分の構成については圧縮方式に応じた構成になっていればよいので、特に以下の実施形態で記載している構成でなくてもよい。また、デコーダ制御装置という呼び名が出てくるが、実装としてはハードウェアでもソフトウェアでも、どちらで構成されていてもよい。
《第1の実施形態》
第1の実施形態によるマルチストリーム復号装置の構成を図1に示す。図1のマルチストリーム復号装置は、複数のビットストリームを蓄積する蓄積装置である第1及び第2のストリームバッファ(SB)121,122と、これらのストリームバッファ121,122からの出力を切り替える第1の切り替え装置(SW)120と、デコーダ110と、復号データを蓄積するための第1及び第2のフレームメモリ(FM)131,132と、これらのフレームメモリ131,132を入力ビットストリームに応じて切り替える第2の切り替え装置(SW)130と、デコーダ制御装置100とから構成される。デコーダ制御装置100はヘッダ解析部101、時間管理部102、切り替え制御部103を含み、デコーダ110は可変長復号部111、逆量子化部112、逆DCT部113、動き補償部114から構成される。第1の切り替え装置120と第2の切り替え装置130は、それぞれデコーダ制御装置100内の切り替え制御部103からの制御信号155及び156により切り替えられる。
第1のストリームバッファ121と第2のストリームバッファ122に蓄積されたビットストリームは信号線160と信号線161を通して出力され、第1の切り替え装置120で選択されて、信号線162を通してデコーダ110に入力される。デコーダ110に入力されたビットストリームは可変長復号部111で可変長復号され、逆量子化部112で逆量子化され、逆DCT部113で逆DCTされる。第1のフレームメモリ131からの入出力バス172と、第2のフレームメモリ132からの入出力バス173は第2の切り替え装置130で選択される。動き補償部114は第2の切り替え装置130で選択されたフレームメモリから信号線171を通して取得した参照画像と、逆DCT部113の逆DCT結果とを加算して、復元画像を作成し、作成された復元画像は信号線170を通して第2の切り替え装置130で選択されたフレームメモリに格納される。
デコーダ110は、それぞれのビットストリームの復号処理において、所定単位(第1の実施形態の説明ではピクチャ単位とする。)の復号処理が終了した時点で、信号線151を通して切り替え制御部103に対して復号処理の終了を通知する。
ここで、第1のストリームバッファ121、第1のフレームメモリ131はch0用、第2のストリームバッファ122、第2のフレームメモリ132はch1用として、以下を説明する。
上記のとおり、デコーダ制御装置100はヘッダ解析部101、時間管理部102、切り替え制御部103から構成される。
ヘッダ解析部101は信号線150を通してビットストリームを取得、又は第1のストリームバッファ121、第2のストリームバッファ122から直接ビットストリームを取得し、スライス層より上位層(ピクチャ層以上:第1の実施形態では所定単位をピクチャとしているのでピクチャ層以上としているが、所定単位に応じて階層は変わる)のビットストリームの解析を行う。ヘッダ解析部101が入手したフレームレート及び画像サイズ情報は、時間管理部102に送られる。
時間管理部102は、ヘッダ解析部101から送られたそれぞれのビットストリームのフレームレート及び画像サイズと、デコーダ110の性能情報より、それぞれのビットストリームの復号処理の限界時間を決定する。
時間管理部102は、それぞれのビットストリームの復号処理が限界時間に到達した時点で、信号線152を通してデコーダ110に対して復号処理の中断を通知し、切り替え制御部103に対して復号処理するビットストリームの切り替えを通知する。デコーダ110は、時間管理部102から復号処理の中断通知を受けた場合は直ちに復号処理を中断する。
切り替え制御部103は、時間管理部102からのビットストリームの切り替え通知、又は、デコーダ110からのビットストリームの復号処理の終了通知151を受けて、復号処理するビットストリームの切り替えを行う。具体的に説明すると、切り替え制御部103は、制御信号155を通して第1の切り替え装置120を切り替え、制御信号156を通して第2の切り替え装置130を切り替える。
以下に時間管理部102における復号処理の限界時間の決定方法を、例を挙げて説明する。なお、説明を簡略化するため、以下の前提で行うこととする。
規定時間Tを1/30秒(1フレーム時間)とし、デコーダ110はch0のビットストリーム(MPEG2 Video MP@HL)の1ピクチャ分をa0×Tで、ch1のビットストリーム(MPEG2 Video MP@HL)の1ピクチャ分をb0×Tでそれぞれ復号処理できる性能を持っているものとする。また、規定時間内での性能見積もりで余った時間をΔT0とし、限界時間をT(limit)とする。
この場合、ΔT0は、
ΔT0=規定期間−(ch0復号処理見積時間+ch1復号処理見積時間)
=T−(a0×T+b0×T)
=(1−a0−b0)T ・・・ 式(1)
のようになる。
以下、規定時間T内でch0のビットストリームから復号処理を行うとして限界時間を設定する。なお、以下は説明を簡略化するため、ch0から復号処理を行うとして記載するが、ビットストリームの復号処理順に特に限定はない。
この場合、T(limit)は、
T(limit ch0)=ch0復号処理見積時間+α0×ΔT0
=a0×T+α0×(1−a0−b0)T
・・・ 式(2)
T(limit ch1)=ch0復号処理見積時間+ch1復号処理見積時間+β0×ΔT0
=a0×T+b0×T+β0×(1−a0−b0)T
・・・ 式(3)
0≦T(limit ch0),T(limit ch1)≦T ・・・ 式(4)
のようになる。ここに、α0、β0は係数である。
係数α0、β0は式(4)を満たしていれば、特に制約はない。α0やβ0の付け方によっては、ビットストリームの復号処理に優先順位を付けることもできる。また、2ストリーム復号処理する性能がない場合でも、規定時間内で限界時間の制約を付けることで一方のストリームのみ性能保証を行うという設定もできる。
なお、ここでは限界時間算出方法の例を挙げたが、上記算出方法でなくてはならないというわけではない。
次に、第1の実施形態によるマルチストリーム復号装置の動作を図2を用いて説明する。図2中のリミット200はch0のビットストリーム復号処理にかけられる限界時間を示し、時刻220〜230はビットストリームの切り替え又は所定単位の復号処理が終了した時刻を示す。デコーダの部分で記載されている(1)、(2)、(3)、(4)はそれぞれのビットストリームを復号処理する順番に付けたピクチャ番号である。また、説明簡略化のため、ch1の復号処理完了までにかけられる限界時間は規定期間とし、図中では記載しない。なお、以下の説明ではリミット200は全ての規定期間で同じ値を取っているが、規定期間ごとに再設定可能であり、値が変わってもかまわない。
デコーダ制御装置100におけるビットストリームの切り替え動作の代表的なパターンを以下で説明する。
期間210はch0のビットストリームの復号処理が限界時間内で終わった場合の動作を示す。
まず、ch0のビットストリームの1ピクチャ分の復号処理が終了した時刻220で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻221で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間210での制御が終了する。
期間211はch0のビットストリームの復号処理が限界時間内で終わらず、復号処理の中断が発生した後、規定期間内で復号処理の再開が行われた場合の動作を示す。
まず、時刻222でch0のビットストリームの復号処理が開始される。次にch0のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch0の復号処理の限界時間であるリミット200になった時点でも完了していないため、時刻223において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻224で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送る。時刻224の時点ではまだ規定時間経過していないので、デコーダ制御部100が時刻223で退避したch0のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、デコーダ110がch0のビットストリームの復号処理を継続再開する。次にch0のビットストリームの1ピクチャ分の復号処理が終了した時刻225で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、規定期間211での制御が終了する。なお、中断したビットストリームの復号処理を時刻224で継続して再開したが、再開せずに中断したピクチャを捨ててしまうという選択肢があってもいい。
期間212と期間213はch0のビットストリームの復号処理が限界時間内で終わらず、復号処理の中断が発生した後、規定期間をまたいで復号処理の再開が行われた場合の動作を示す。
まず、時刻225でch0のビットストリームの復号処理が開始される。次にch0のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch0の復号処理の限界時間であるリミット200になった時点でも完了していないため、時刻226において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻227で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間212での制御が終了する。時刻227の時点では、直前の規定時間でのch0のビットストリームの1ピクチャ分の復号処理が終了していないので、デコーダ制御部100が時刻226で退避したch0のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、デコーダ110が直前の規定時間内で復号処理すべきだったch0のビットストリームの復号処理を継続再開する。直前の規定時間内で復号処理すべきだったch0のビットストリームの1ピクチャ分の復号処理が終了した時刻228でも、現在の規定時間内でのch0のビットストリームの復号処理の限界時間(リミット200)まで到達していないので、ch0のビットストリームの次のピクチャの復号処理を継続して行う。ch0のビットストリームの1ピクチャ分の復号処理が終了した時刻229で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻230で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間213での制御が終了する。なお、前の規定時間で中断したビットストリームの復号処理を時刻227で継続して再開したが、直前の規定時間内で処理すべきだったピクチャを捨てて、期間213内で復号処理すべきピクチャから復号処理を開始するという選択肢があってもいい。
以上、デコーダ制御装置100におけるビットストリームの切り替え動作の3パターンを例に説明したが、復号処理の中断・再開は、期間211と期間212との組み合わせなど、切り替え方法も組み合わせが色々あり、上記3パターンしかないというわけではないということは言うまでもない。また、ここではch0のビットストリームの復号処理の中断と再開しか記載していないが、ch1のビットストリームの復号処理の中断と再開がないわけではないということも言うまでもない。
このように第1の実施形態によれば、ビットストリーム間で互いに影響を与えることなしに、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
しかも、規定時間ごとにそれぞれのビットストリームの復号処理完了までに割り当てられる限界時間を設定できるので、それぞれのビットストリームの復号処理の状況に応じて最適な処理時間を割り当てることができる。
また、復号処理の限界時間に達した時点で直ちに復号処理の中断ができるので、復号処理を中断したビットストリーム以外の他のビットストリームの復号処理に影響を与えることがない。
また、復号処理を中断したビットストリームの復号処理を再開することができるので、中断されたビットストリームとしては途切れることなしに復号処理できる。
《第2の実施形態》
第2の実施形態では、時間管理部102における規定時間内での復号処理の限界時間の再割り当て方法について例を挙げて説明する。装置構成は図1のとおりである。ただし、ストリームバッファ及びフレームメモリは3チャンネル分とする。
ここで説明を簡略化するため、以下の前提で行うこととする。すなわち、規定時間Tを1/30秒(1フレーム時間)とし、デコーダ110はch0のビットストリーム(MPEG2 Video MP@HL)の復号処理をa1×T時間行って中断、ch1のビットストリーム(MPEG2 Video MP@HL)の復号処理をb1×T時間行って中断、ch2のビットストリーム(MPEG2 Video MP@HL)の1ピクチャ分をc1×T時間行って完了する。また、ch0は復号処理を中断した時点でX1マクロブロックだけ、ch1は復号処理を中断した時点でY1マクロブロックだけ、それぞれ1ピクチャ完了するまでに残っているものとする。また、ch2のビットストリームの復号処理完了時点で規定時間に対して余っている時間をT1、再割り当てした限界時間をT1(limit)とする。
この場合、T1は、
T1=規定時間−(ch0復号処理時間+ch1復号処理時間+ch2復号処理時間)
=T−(a1×T+b1×T+c1×T)
=(1−a1−b1−c1)T ・・・ 式(4)
のようになる。
以下、余り時間T1内でch0のビットストリームから復号処理の再開を行うとして限界時間を再設定する。また、T1は復号再開時点を開始時刻0として記載する。なお、以下は説明を簡略化するため、ch0から復号処理再開を行うとして記載するが、ビットストリームの復号処理再開順に特に限定はない。
この場合、T1(limit)は、
T1(limit ch0)=(X1/(X1+Y1))×(1−a1−b1−c1)T
・・・ 式(5)
T1(limit ch1)=T1
=(1−a1−b1−c1)T ・・・ 式(6)
のようになる。
なお、ここでは説明を簡略化するため、デコーダ110の性能に応じた限界時間の再割り当てに関する記載は行わないが、残りマクロブロック数から第1の実施形態と同じように、デコーダ110の性能を考慮した上で限界時間の再割り当てを行ってもよい。
ここでは再割り当て後の限界時間算出方法の例を挙げたが、上記算出方法でなくてはならないというわけではない。
次に、第2の実施形態によるマルチストリーム復号装置の動作を図3を用いて説明する。図3中のリミット250はch0のビットストリーム復号処理完了までにかけられる限界時間を示し、リミット251はch0とch1のビットストリーム復号処理完了までにかけられる限界時間を示し、リミット252は限界時間再割り当て後のch0のビットストリーム復号処理完了までにかけられる限界時間を示し、リミット253は限界時間再割り当て後のch0とch1のビットストリーム復号処理完了までにかけられる限界時間を示し、時刻270〜278はビットストリームの切り替え又は所定単位の復号処理が終了した時刻を示す。デコーダの部分で記載されている(1)、(2)はそれぞれのビットストリームで復号処理する順番に付けたピクチャ番号である。また、説明簡略化のため、ch2の復号処理完了までにかけられる限界時間は規定期間とし、図中では記載しない。なお、以下の説明ではリミット250、リミット251は全ての規定期間で同じ値を取っているが、規定期間ごとに再設定可能であり、値が変わってもかまわない。
デコーダ制御装置100における限界時間の再割り当ての動作について、以下に説明する。
期間260はch0のビットストリームの復号処理が限界時間内で終わった場合の動作を示す。この動作は第1の実施形態で説明した内容と、復号処理するビットストリーム数が変わるだけで同じである。
まず、ch0のビットストリームの1ピクチャ分の復号処理が終了した時刻270で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻271で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch2のビットストリームに切り替える。次にch2のビットストリームの1ピクチャ分の復号処理が終了した時刻272で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間260での制御が終了する。
期間261はch0とch1のビットストリームの復号処理が限界時間内で終わらず、復号処理の中断が発生した後、規定期間内で復号処理の限界時間の再割り当てが行われたうえ、復号処理の再開が行われた場合の動作を示す。
まず、時刻273でch0のビットストリームの復号処理が開始される。次にch0のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch0の復号処理の限界時間であるリミット250になった時点でも完了していないため、時刻274において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch1の復号処理の限界時間であるリミット251になった時点でも完了していないため、時刻275において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch2のビットストリームに切り替える。次にch2のビットストリームの1ピクチャ分の復号処理が終了した時刻276で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送る。時刻276の時点ではまだ規定時間経過していないので、ch0とch1に対する復号処理の限界時間の再割り当てを行う。
時刻276において、デコーダ制御部100が時刻274で退避したch0のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、デコーダ110がch0のビットストリームの復号処理を再開する。次にch0のビットストリームの1ピクチャ分の復号処理が終了した時刻277で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、ビットストリームをch1のビットストリームに切り替える。次に時刻277において、デコーダ制御部100が時刻275で退避したch1のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、デコーダ110がch1のビットストリームの復号処理を再開する。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻278で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、切り替え制御部103がビットストリームをch0のビットストリームに切り替え、規定期間261での制御が終了する。なお、ここではビットストリームの復号処理の再開順をch0、ch1としたが、復号処理を再開するビットストリーム順番については特に限定はない。
限界時間再割り当て後の動作は、規定時間の最初に限界時間を割り当てた場合の動作(第1の実施形態で説明した内容)と同じなので、ここでは説明を繰り返さない。
このように第2の実施形態によれば、規定時間内の余った時間を、復号処理を中断したビットストリームに割り当て直すことにより、復号装置の性能を最大限に利用した形で、複数ビットストリームの復号処理ができる。
《第3の実施形態》
第3の実施形態によるマルチストリーム復号装置の構成を図4に示す。図4のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、デコーダ110内にビットカウンタ300を備え、デコーダ制御装置100内に巻き戻し制御部310を備えた構成になっている。
ビットカウンタ300は、デコーダ110がビットストリーム階層(ピクチャ層、又は、スライス層、又は、マクロブロック層など)の先頭からの処理ビット量をカウントするカウンタである。
巻き戻し制御部310は、ビットカウンタ300の値を信号線320を通して取り込み、それぞれのビットストリームを蓄積するための第1のストリームバッファ121と第2のストリームバッファ122のポインタを巻き戻す機能を備えている。
次に、第3の実施形態によるマルチストリーム復号装置の動作を図2と図5を用いて説明する。図5は復号処理したフレームのイメージを示すもので、ピクチャ350は複数のスライス層(スライス0、スライス1、・・・、スライスN、・・・)から構成される。
なお、以下では説明を簡略化するため、ビットカウンタ300をスライス層先頭からのビット量をカウントするものとして記載するが、スライス層先頭カウントするものに限定されるというわけではないことは言うまでもない。
復号処理の中断と再開の際のビットカウンタ300と巻き戻し制御部310の使用方法を、図2における期間211の動作を元に説明を行う。
まず、時刻222でch0のビットストリームの復号処理が開始される。次にch0のビットストリームの復号処理が行われるが、1ピクチャ分の復号処理がch0の復号処理の限界時間であるリミット200になった時点でも完了していないため、時刻223において、デコーダ制御装置100内の時間管理部102が信号線152を通して、デコーダ110に復号処理の中断を通知し、更に、切り替え制御部103にビットストリームの切り替えを通知する。ここでは、図5のスライスNの途中で中断が発生したものとして説明を進める。デコーダ110は中断通知を受けて、復号処理を中断し、デコーダ制御装置100はデコーダ110内に残っている復号処理再開に必要な情報を退避する。この際、ビットカウンタ300の情報も退避する。切り替え装置103は時間管理部102からのビットストリームの切り替え通知を受けて、ビットストリームをch1のビットストリームに切り替える。次にch1のビットストリームの1ピクチャ分の復号処理が終了した時刻224で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送る。時刻224の時点ではまだ規定時間経過していないので、デコーダ制御部100が時刻223で退避したch0のビットストリームの復号処理の再開に必要な情報をデコーダ110に設定し、次に巻き戻し制御部310が、ビットカウンタ300の情報を元に、ch0側のビットストリーム蓄積装置である第1のストリームバッファ121のポインタをスライスNの先頭まで巻き戻す。次にデコーダ110がch0のビットストリームの復号処理をスライスNの先頭から再開する。次にch0のビットストリームの1ピクチャ分の復号処理が終了した時刻225で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、規定期間211での制御が終了する。
以上、復号処理の限界時間に達した場合での復号処理の中断と再開を例に、ビットカウンタ300と巻き戻し制御部310の使用方法を説明したが、限界時間に達しない場合でも復号処理の中断や再開をする際にこれらを使用できることは言うまでもない。
このように第3の実施形態によれば、例えば、ピクチャやスライスやマクロブロックラインやマクロブロックの先頭から復号処理を再開することができるので、復号処理を中断した際にビットカウンタ300がカウントしているビットストリーム階層の上位階層の情報だけ退避するだけで、復号処理の再開ができる。
《第4の実施形態》
第4の実施形態によるマルチストリーム復号装置の構成を図6に示す。図6のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、デコーダ制御装置100内にバッファ管理部400を備え、更に、第1のフレームメモリ131からの出力を信号線420を通して、第2のフレームメモリ132からの出力を信号線421を通してそれぞれ取り込み、信号線423を通して画像を出力する出力制御装置410を備えた構成になっている。
バッファ管理部400は、それぞれのビットストリームに対応したフレームメモリ131,132へのデータ供給量をデコーダ110から信号線430を通して取り込み、それぞれのビットストリームに対応したフレームメモリ131,132へのデータ消費量を出力制御装置410から信号線440を通して取り込む。
バッファ管理部400は、信号線430と信号線440から取り込んだ情報より、それぞれのビットストリームに対応したフレームメモリ131,132上のデータ残量を計算し、データ残量が少ないような場合は、デコーダ110に対して信号線431を通して、復号処理の中断を通知し、出力制御装置410に対して信号線441を通して、出力画像の切り替えを通知する。
デコーダ110は、バッファ管理部400からの復号処理の中断通知を受けて、復号処理を中断し、出力制御装置410はバッファ管理部400からの出力画像切り替え通知を受けて、出力画像を切り替える。
なお、フレームメモリ131,132のデータ残量がどの程度までになった場合に、バッファ管理部400が復号処理の中断と出力画像の切り替えを通知するかは特に限定はない。
次に、第4の実施形態によるマルチストリーム復号装置の動作を図7を用いて説明する。図7中のリミット450はch0のビットストリーム復号処理にかけられる限界時間を示し、時刻460〜463はビットストリームの切り替え又は所定単位の復号処理が終了した時刻を示す。デコーダの部分で記載されているI0,P3,B1,B2,P6はピクチャの名称と出力順を示すもので、I0はIピクチャで一番目に出力、P3はPピクチャで四番目に出力、B1はBピクチャで二番目に出力、B2はBピクチャで三番目に出力、P6はPピクチャで七番目に出力ということになる。また、説明簡略化のため、ch1の復号処理完了までにかけられる限界時間は規定期間とし、図中では記載しない。なお、以下の説明ではリミット450は全ての規定期間で同じ値を取っているが、規定期間ごとに再設定可能であり、値が変わってもかまわない。
期間470、期間471では復号処理しか行われておらず、期間472から画像が出力されるものとし、期間472で復号処理の中断が発生し、期間473で中断した復号処理の再開と、バッファ管理部400からの通知により、復号処理の中断と出力画像の切り替えが発生した場合の動作を例に説明する。以下では、中断と復帰の際の詳細な制御については第1の実施形態で説明しているので繰り返しを行わない。
まず、期間470でch0とch1のビットストリームにおいてI0ピクチャの復号処理が行われる。次に、期間471でch0とch1のビットストリームにおいてP3ピクチャの復号処理が行われる。期間470と期間471では復号処理の中断は発生していないものとする。
次に期間472ではch0とch1のビットストリームにおいてB1ピクチャの復号処理が行われ、ch0とch1のビットストリームのI0ピクチャの出力が行われる。
時刻460でch0のビットストリームにおいてB1ピクチャの復号処理が開始される。時刻461でch0のビットストリームのB1ピクチャの復号処理がch0の復号処理の限界時間450までに完了せず、ch0の復号処理が中断され、ch1のビットストリームのB1ピクチャの復号処理が開始され、時刻462で復号処理が終了する。
次に期間473ではch0のビットストリームのB1ピクチャとB2ピクチャの復号処理、ch1のビットストリームのB2ピクチャの復号処理が行われ、ch0とch1のビットストリームのB1ピクチャの出力が開始される。
時刻462でch0のビットストリームのB1ピクチャの復号処理が再開され、同時にch0とch1のビットストリームのB1ピクチャの出力が開始される。この場合、ch0のビットストリームのB1ピクチャの復号処理と、出力処理が同時に発生することとなる。時刻462ではB1ピクチャのデコーダ110での復号処理のデータ供給量が、B1ピクチャの出力制御装置410のデータ消費量を上回っているため、期間473の最初のうちはch0のB1ピクチャが出力される。
時刻463においてデコーダ110のデータ供給量と、出力制御装置410のデータ消費量がほとんど変わらなくなると、バッファ管理部400がデコーダ110に対してch0のビットストリームのB1ピクチャの復号処理の中断と、出力制御装置410に対して、出力画像の切り替えを通知する。デコーダ110はバッファ管理部400からの復号処理中断通知を受けて、B1ピクチャの復号処理を中断し、ピクチャをスキップし、B2ピクチャの復号処理を開始する。出力制御装置410はバッファ管理部400からの出力画像切り替え通知を受けて、ch0側の出力画像をB1ピクチャから、既に、復号処理が完了しているI0ピクチャに切り替える。ここではフレームメモリ131に対するデコーダ110側のデータ供給量と、出力制御装置410のデータ消費量がほとんど変わらなくなったとしたが、差がある場合はそのまま復号処理が継続され、出力画像の切り替えも起こらない。
なお、出力画像を切り替える際に、I0ピクチャに切り替えたが、どの画像に切り替えるかは特に限定はない。
このように第4の実施形態によれば、出力制御装置410のデータ消費状況を見ながら、復号処理を進めることができるので、出力制御装置410がデータを消費しきるぎりぎりまで復号処理を継続することができる。
また、デコーダ110のデータ供給量と、出力制御装置410のデータ消費量に応じて、出力画像を切り替えることができるので、たとえ復号処理が中断しても違和感のない画像を出力することができる。
《第5の実施形態》
第5の実施形態によるマルチストリーム復号装置の構成を図8に示す。図8のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、デコーダ110内に未処理ビットカウンタ500と、入力バッファ(IB)510とを備え、デコーダ制御装置100内に巻き戻し制御部310を備えた構成になっている。
未処理ビットカウンタ500は、入力バッファ510にあるビットストリームのうち、デコーダ110の可変長復号部111でまだ処理されていないビット量を観測するカウンタである。
巻き戻し制御部310は、未処理ビットカウンタ500の値を信号線520を通して取り込み、信号線330を通して、それぞれのビットストリームを蓄積するための第1のストリームバッファ121と第2のストリームバッファ122のポインタを巻き戻す機能を備えている。
次に、第5の実施形態によるマルチストリーム復号装置の動作を図2と図9を用いて説明する。図9は第1のストリームバッファ121と第2のストリームバッファ122とのイメージ図で、WPがストリームバッファ121,122への書き込み状況を表すポインタであり、RPがストリームバッファ121,122からの読み出し状況を表すポインタであって、未処理ビットカウンタ500の値を用いて、巻き戻し制御部310がRPをRP’まで巻き戻す。
未処理ビットカウンタ500と巻き戻し制御部310の使用方法を、図2における期間210の動作を元に説明を行う。
まず、ch0のビットストリームの1ピクチャ分の復号処理が終了した時刻220で、デコーダ110が信号線151を通して、デコーダ制御装置100内の切り替え制御部103に終了通知を送り、デコーダ制御装置100が未処理ビットカウンタ500の値を退避し、切り替え制御部103がビットストリームをch1のビットストリームに切り替える。
時刻222において、ch0のビットストリームの復号処理を開始する前に、巻き戻し制御部310が時刻220で退避した未処理ビットカウンタ500の値を用いて、ch0側である第1のストリームバッファ121のポインタを巻き戻し、デコーダ110が実際に処理したビットストリームの位置まで巻き戻す。なお、ここではch1での制御は記載しないが、ch1においても同じ動作を行う。
このように第5の実施形態によれば、デコーダ110の内部での消費していないビット量が判るので、ビットストリームを切り替える際にビットストリームの巻き戻しによるオーバーヘッドをなくすことができる。
《第6の実施形態》
第6の実施形態によるマルチストリーム復号装置の構成を図10に示す。図10のマルチストリーム復号装置は、第5の実施形態によるマルチストリーム復号装置を含み、更に、第1及び第2のストリームバッファ121,122は図9で記載している巻き戻し後のRP’情報を用いて、未処理ビットデータの上書きを防止する機能を備えている。
第1のストリームバッファ121と第2のストリームバッファ122はRP’情報を元にビットストリーム供給側に対して、ストリームバッファのデータ書き込みの限界値を信号線550と信号線551を通して通知し、デコーダ110での未処理データ書き潰しを防ぐ。
このように第6の実施形態によれば、デコーダ110の内部で処理できていないビットストリームの書き潰しを防ぐことができる。
《第7の実施形態》
第7の実施形態によるマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、規定期間の開始時点で、直前で復号処理していたビットストリームの情報を元に、切り替え制御部103が復号処理するビットストリーム順を決定する機構を備える。装置構成は、図1のとおりである。
第7の実施形態によるマルチストリーム復号装置の動作を図11に示す。以下では、規定期間の開始時刻のうち、時刻620と時刻621での動作を例に説明する。
規定期間610はch0、ch1の順でビットストリームの復号処理をしていたので、時刻620では、切り替え制御部103が、規定期間611の開始の直前で復号処理していたのはch1と判断し、ビットストリームの切り替えを行わず、規定期間611ではch1、ch0の順でビットストリームの復号処理が行われる。同じように時刻621では、切り替え制御部103が規定期間612の開始の直前で復号処理していたのはch0と判断し、ビットストリームの切り替えを行わず、規定期間612ではch0、ch1の順でビットストリームの復号処理が行われる。なお、規定時間内でビットストリームの復号処理の中断と再開が発生し、ビットストリームの処理順が不規則になった場合でも同じである。
このように第7の実施形態によれば、ビットストリーム切り替えによるオーバーヘッドを削減することができる。
《第8の実施形態》
第8の実施形態によるマルチストリーム復号装置の構成を図12に示す。図12のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、デコーダ110内にメモリアクセス制御部650を備えた構成になっている。
メモリアクセス制御部650は、ヘッダ解析部101が取得した画像サイズとフレームレートの情報を信号線660を通して取得し、デコーダ制御装置100から復号処理するビットストリーム数などの情報を信号線661を通して取得し、デコーダ110が規定期間内に復号処理を終了するために必要なメモリアクセスレートを決定する。
以下にメモリアクセスレートの決定方法を、
(i) HD(High Definition)2chデコードの場合
ch0 画像サイズ 1920ピクセル×1088ライン
ch1 画像サイズ 1920ピクセル×1088ライン
(ii) HD1chデコードの場合
ch0 画像サイズ 1920ピクセル×1088ライン
ch1 復号処理なし
(iii) SD(Standard Definition)2chデコード場合
ch0 画像サイズ 720ピクセル×480ライン
ch1 画像サイズ 720ピクセル×480ライン
という例を挙げて記載する。
メモリアクセス制御部650は、デコーダ制御装置100から上記情報を入手し、規定期間内に復号処理を終了するために必要なメモリアクセスレートを判定し、メモリアクセスレートを決定する。この場合、画像サイズに応じて必要なメモリアクセスレートが決定される。なお、ここでは説明簡略化のため、例(i)でのメモリアクセスレートを基準として、A回/時間として記載し、フレームレートは同じとする。
(i) HD2chデコードの場合(基準)、規定期間内に復号処理が終了するために必要なメモリアクセスレートがA回/時間なので、メモリアクセス制御部650がメモリアクセスレートをA回/時間に設定する。
(ii) HD1chデコードの場合、画像サイズ情報より規定期間内に復号処理が終了するために必要なメモリアクセスレートはHD2chデコードと比べて1/2となる。メモリアクセス制御部650はメモリアクセスが(1/2)A回/時間になるようにメモリアクセスレートを設定する。
(iii) SD2chデコードの場合、画像サイズ情報より規定期間内に復号処理が終了するために必要なメモリアクセスレートはHD2chデコードと比べて(720×480)/(1920×1088)=約1/6となる。メモリアクセス制御部650はメモリアクセスが約(1/6)A回/時間になるようにメモリアクセスレートを設定する。
このようにして算出した値を元に、メモリアクセス制御部650はメモリアクセスのレート制御を行う。図13に上記の例(i)、(ii)、(iii)におけるメモリアクセス頻度のイメージ図を示す。メモリアクセス制御部650によるメモリアクセスのレート制御を行わない場合は、(i)、(ii)、(iii)ともピークメモリバンド幅は例(i)と同じだけ使用することになるが、レート制御を行った場合は、(i)、(ii)、(iii)に合ったピークメモリバンド幅に抑えることができる。
このように第8の実施形態によれば、復号処理するビットストリームに応じたピークメモリバンド幅にメモリバンド幅を抑えることができるので、外部メモリを共有しているようなシステムにおいて、他のアプリケーションにメモリバンド幅を与えることができる。
《第9の実施形態》
第9の実施形態によるマルチストリーム復号装置の構成を図14に示す。図14のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、クロック制御部700を備えた構成になっている。
クロック制御部700は、ヘッダ解析部101が取得した画像サイズとフレームレートの情報を信号線710を通して取得し、デコーダ制御装置100から復号処理するビットストリーム数などの情報を信号線711を通して取得し、デコーダ110が規定期間内に復号処理を終了するために必要なだけのクロックを信号線712を通して供給する。
クロック制御部700は、デコーダ制御装置100から上記情報を入手し、規定期間内に復号処理を終了するために必要なクロック周波数を判定し、クロック周波数を制御する。この場合、画像サイズに応じて必要なクロック周波数が決定される。なお、ここでは説明簡略化のため、上記の例(i)のクロック周波数を基準として、Sメガヘルツ(MHz)として記載し、フレームレートは同じとする。
上記の例(i)、(ii)、(iii)におけるクロック制御は、次のとおりである。
(i) HD2chデコードの場合(基準)、規定期間内に復号処理が終了するために必要なクロック周波数がSMHzなので、クロック制御部700がクロック周波数をSMHzに設定する。
(ii) HD1chデコードの場合、画像サイズ情報より規定期間内に復号処理が終了するために必要なクロック周波数はHD2chデコードと比べて1/2となる。クロック制御部700はクロック周波数が(1/2)SMHzになるようにクロック周波数を設定する。
(iii) SD2chデコードの場合、画像サイズ情報より規定期間内に復号処理が終了するために必要なクロック周波数はHD2chデコードと比べて(720×480)/(1920×1088)=約1/6となる。クロック制御部700はクロック周波数が約(1/6)SMHzになるようにクロック周波数を設定する。
このようにして算出した値を元にクロック制御部700はクロック周波数の制御を行う。図15に例(i)、(ii)、(iii)のイメージ図を示す。クロック制御部700によるクロック周波数制御を行わない場合は、(i)、(ii)、(iii)ともクロック周波数が同じであるため、同じだけの消費電力を使用することになるが、クロック周波数制御を行った場合は、(i)、(ii)、(iii)に合ったクロック周波数に設定することができるので、(i)、(ii)、(iii)に合った消費電力に抑えることができる。
このように第9の実施形態によれば、復号処理するビットストリームに応じたクロック周波数を設定することで、消費電力を抑えることができる。
《第10の実施形態》
第10の実施形態によるマルチストリーム復号装置の構成を図16に示す。図16のマルチストリーム復号装置は、第1の実施形態によるマルチストリーム復号装置を含み、更に、クロック制御部750を備えた構成になっている。
クロック制御部750は、時間管理部102から規定時間の情報を信号線760を通して取得し、デコーダ110からピクチャ単位の終了通知を受けて、デコーダ110に対してクロック供給が必要かどうか判断し、信号線761を通じてデコーダ110に供給しているクロックを供給したり、停止したりする。
次に、第10の実施形態によるマルチストリーム復号装置の動作を図17を用いて説明する。ここでは、期間810の動作をクロック供給と停止について説明する。
期間810では時刻800においてクロック制御部750がデコーダ110にクロック供給を開始する。時刻801にch0、ch1のビットストリームの復号処理が完了すると、この時点で規定期間内でデコーダ110を動作させる必要はなくなるので、クロック制御部750がデコーダ110に対するクロック供給を停止する。クロック制御部750は規定期間ごとにこの制御を繰り返す。
このように、クロック制御部750はデコーダ110を動作させる必要がある場合のみクロックを供給することで消費電力を抑えることができる。
このように第10の実施形態によれば、複数のビットストリームの復号処理が規定時間よりも早く終了した場合に、クロックを停止することができるので、消費電力を抑えることができる。
本発明のマルチストリーム復号装置は、デジタルテレビや、DVD、DVRなどの蓄積メディアにおける復号装置への適用が可能である。
第1、第2及び第7の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 第1の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 第2の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 第3の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 第3の実施形態によるマルチストリーム復号装置の動作説明図である。 第4の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 第4の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 第5の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 第5の実施形態によるマルチストリーム復号装置の動作説明図である。 第6の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 第7の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 第8の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 第8の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 第9の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 第9の実施形態によるマルチストリーム復号装置の動作説明図である。 第10の実施形態によるマルチストリーム復号装置の全体構成を示す図である。 第10の実施形態によるマルチストリーム復号装置の動作を示すタイミングチャートである。 従来のマルチストリーム復号装置の全体構成を示す図である。
符号の説明
100 デコーダ制御装置
101 ヘッダ解析部
102 時間管理部
103 切り替え制御部
110 デコーダ
111 可変長復号部
112 逆量子化部
113 逆DCT部
114 動き補償部
120,130 切り替え装置(SW)
121,122 ストリームバッファ(SB)
131,132 フレームメモリ(FM)
300 ビットカウンタ
310 巻き戻し制御部
400 バッファ管理部
410 出力制御装置
500 未処理ビットカウンタ
510 入力バッファ(IB)
650 メモリアクセス制御部
700,750 クロック制御部

Claims (18)

  1. 複数のビットストリームをそれぞれ蓄積する蓄積装置と、前記蓄積装置からの出力を切り替える第1の切り替え装置と、前記第1の切り替え装置からの出力を入力として復号を行うデコーダと、前記デコーダで復号したデータをそれぞれ蓄積する複数のフレームメモリと、それぞれのビットストリームに応じて前記フレームメモリを切り替える第2の切り替え装置と、前記デコーダを制御するデコーダ制御手段とを備えたマルチストリーム復号装置であって、
    前記デコーダ制御手段は、
    ビットストリーム中のヘッダを解析するヘッダ解析手段と、
    ビットストリームごとに処理時間を割り当てる時間管理手段と、
    前記第1及び第2の切り替え装置を制御する切り替え制御手段とを備え、
    前記時間管理手段は、前記ヘッダ解析手段が取得した画像サイズとフレームレートとを含むビットストリーム情報と、前記デコーダの処理性能と、復号するビットストリーム数を含む情報とに応じて、規定時間内でそれぞれのビットストリームの復号処理にかけられる限界時間を決定し、かつ復号処理が前記限界時間に達した場合にビットストリーム切り替え通知信号を出力し、
    前記切り替え制御手段は、前記時間管理手段が出力したビットストリーム切り替え通知信号と、前記デコーダがそれぞれのビットストリームの第1の所定単位の復号処理を終了した時点で出力する終了通知信号とを用いて、前記第1及び第2の切り替え装置を切り替えることを特徴とするマルチストリーム復号装置。
  2. 請求項1記載のマルチストリーム復号装置において、
    前記時間管理手段は、前記規定時間ごとにそれぞれのビットストリームの復号処理にかけられる時間の前記限界時間を設定し直すことを特徴とするマルチストリーム復号装置。
  3. 請求項1記載のマルチストリーム復号装置において、
    前記時間管理手段はビットストリームの復号処理時間が前記限界時間に達した時点で前記デコーダに対して復号処理の中断を通知し、前記デコーダは中断通知を受けて直ちに復号処理を中断することを特徴とするマルチストリーム復号装置。
  4. 請求項3記載のマルチストリーム復号装置において、
    前記デコーダ制御手段は、復号の中断が発生した時点で中断した復号処理の再開に必要な前記デコーダ内部の情報を退避し、中断したビットストリームの復号処理が次に開始される前に、退避した情報を前記デコーダに再設定することにより、復号処理を再開することを特徴とするマルチストリーム復号装置。
  5. 請求項4記載のマルチストリーム復号装置において、
    前記規定時間内で複数のビットストリームの復号処理が中断され、かつ、中断されたビットストリーム以外のビットストリームの第1の所定単位の復号処理が早く終了し、前記規定時間内の処理時間が余った場合に、中断されたそれぞれのビットストリームが第1の所定単位の復号処理が完了するまでの予測時間に応じて、それぞれのビットストリームの復号処理にかけられる限界時間を再設定することを特徴とするマルチストリーム復号装置。
  6. 請求項4記載のマルチストリーム復号装置において、
    前記デコーダ内に第2の所定単位の先頭からの処理ビット量をカウントする第1のカウンタを、前記デコーダ制御手段内に前記蓄積装置のポインタを巻き戻す巻き戻し制御手段をそれぞれ備え、
    前記巻き戻し制御手段は、前記時間管理手段が復号処理を中断したビットストリームに対して、前記デコーダ制御手段が復号処理を再開する際に、前記第1のカウンタの情報を用いて、前記第2の所定単位の先頭まで前記蓄積装置のポインタを巻き戻し、前記第2の所定単位の先頭から復号処理を再開することを特徴とするマルチストリーム復号装置。
  7. 請求項4記載のマルチストリーム復号装置において、
    前記複数のフレームメモリからの出力を入力とし、画像を出力する出力制御装置を更に備え、かつ前記デコーダ制御手段内に前記複数のフレームメモリのデータ量を管理するバッファ管理手段を備え、
    前記バッファ管理手段は、前記デコーダから通知される前記複数のフレームメモリへのデータ供給量と、前記出力制御装置から通知される前記複数のフレームメモリのデータ消費量とを用いて前記デコーダに復号処理の中断を通知し、前記デコーダは前記中断通知を受けて直ちに復号処理を中断することを特徴とするマルチストリーム復号装置。
  8. 請求項7記載のマルチストリーム復号装置において、
    前記バッファ管理手段は、前記デコーダから通知される前記複数のフレームメモリへのデータ供給量と、前記出力制御装置から通知される前記複数のフレームメモリのデータ消費量とを用いて前記出力制御装置に対して出力画像の切り替えを通知し、前記出力制御装置は前記切り替え通知を受けて直ちに出力画像の切り替えを行うことを特徴とするマルチストリーム復号装置。
  9. 請求項1記載のマルチストリーム復号装置において、
    前記デコーダ内に前記第1の切り替え装置からの出力を一時的に保持する入力バッファと、前記入力バッファ内の未処理ビット量を観測する第2のカウンタとを、前記デコーダ制御手段内に前記蓄積装置のポインタを巻き戻す巻き戻し制御手段をそれぞれ備え、
    前記デコーダ制御手段は、前記切り替え制御手段が前記第1の切り替え装置を切り替える際に、前記第2のカウンタの情報を退避し、
    切り替える前のビットストリームの復号処理を再開する際に、前記巻き戻し制御手段は、前記第2のカウンタの情報を用いて、前記デコーダが実際に消費した部分まで前記蓄積装置のポインタを巻き戻し、復号処理を再開することを特徴とするマルチストリーム復号装置。
  10. 請求項9記載のマルチストリーム復号装置において、
    前記蓄積装置のポインタ情報を利用して前記蓄積装置内のビットストリームの書き潰しを防ぐための手段を更に備えたことを特徴とするマルチストリーム復号装置。
  11. 請求項1記載のマルチストリーム復号装置において、
    前記デコーダ制御手段は、前記規定時間終了の直前まで前記デコーダで復号処理していたビットストリームの種類を前記規定時間ごとに判定し、次の規定時間でのビットストリームのデコード順を決定することを特徴とするマルチストリーム復号装置。
  12. 請求項1記載のマルチストリーム復号装置において、
    前記デコーダ内に、前記複数のフレームメモリへのアクセス頻度を制御するメモリアクセス制御装置を備え、
    前記メモリアクセス制御装置は、前記ヘッダ解析手段が取得した画像サイズとフレームレートとを含むビットストリーム情報と、前記デコーダ制御手段から通知される復号処理するビットストリーム数を含む情報とを用いて、前記複数のフレームメモリのアクセス頻度を制御することを特徴とするマルチストリーム復号装置。
  13. 請求項1記載のマルチストリーム復号装置において、
    前記ヘッダ解析手段が取得した画像サイズとフレームレートとを含むビットストリーム情報と、前記デコーダの処理性能と、前記デコード制御手段から通知される復号処理するビットストリーム数を含む情報とを用いて、前記デコーダに供給するクロックの周波数を決定するクロック制御装置を更に備えたことを特徴とするマルチストリーム復号装置。
  14. 請求項1記載のマルチストリーム復号装置において、
    前記デコーダ制御手段から通知される前記規定時間の情報と、前記デコーダから通知される第1の所定単位の復号終了通知とを用いて、前記デコーダに対するクロック供給と停止を切り替えるクロック制御装置を更に備えたことを特徴とするマルチストリーム復号装置。
  15. 請求項1記載のマルチストリーム復号装置において、
    前記第1の所定単位をピクチャ単位、又はスライス単位、又はマクロブロックライン単位、又はマクロブロック単位とするマルチストリーム復号装置。
  16. 請求項1記載のマルチストリーム復号装置において、
    前記規定時間をビットストリーム中のフレームレートから平均的に割り当てたピクチャ時間、又はスライス時間、又はマクロブロックライン時間、又はマクロブロック時間とするマルチストリーム復号装置。
  17. 請求項6記載のマルチストリーム復号装置において、
    前記第2の所定単位をピクチャ単位、又はスライス単位、又はマクロブロックライン単位、又はマクロブロック単位とするマルチストリーム復号装置。
  18. 請求項1記載のマルチストリーム復号装置において、
    ビットストリームをMPEG1、MPEG2、MPEG4、H.264のいずれかで圧縮されたビットストリームとするマルチストリーム復号装置。
JP2007535381A 2005-09-14 2006-05-23 マルチストリーム復号装置 Pending JPWO2007032123A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005266969 2005-09-14
JP2005266969 2005-09-14
PCT/JP2006/310224 WO2007032123A1 (ja) 2005-09-14 2006-05-23 マルチストリーム復号装置

Publications (1)

Publication Number Publication Date
JPWO2007032123A1 true JPWO2007032123A1 (ja) 2009-03-19

Family

ID=37864726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007535381A Pending JPWO2007032123A1 (ja) 2005-09-14 2006-05-23 マルチストリーム復号装置

Country Status (3)

Country Link
US (1) US20090196356A1 (ja)
JP (1) JPWO2007032123A1 (ja)
WO (1) WO2007032123A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8599841B1 (en) * 2006-03-28 2013-12-03 Nvidia Corporation Multi-format bitstream decoding engine
US8593469B2 (en) * 2006-03-29 2013-11-26 Nvidia Corporation Method and circuit for efficient caching of reference video data
US8502709B2 (en) * 2007-09-17 2013-08-06 Nvidia Corporation Decoding variable length codes in media applications
US8849051B2 (en) 2007-09-17 2014-09-30 Nvidia Corporation Decoding variable length codes in JPEG applications
JP5012626B2 (ja) * 2008-04-03 2012-08-29 ソニー株式会社 情報処理装置および方法、並びにプログラム
US9307267B2 (en) 2008-12-11 2016-04-05 Nvidia Corporation Techniques for scalable dynamic data encoding and decoding
US20110158310A1 (en) * 2009-12-30 2011-06-30 Nvidia Corporation Decoding data using lookup tables
JP5848153B2 (ja) * 2012-02-17 2016-01-27 ルネサスエレクトロニクス株式会社 信号処理装置及び半導体装置
US10313683B2 (en) * 2014-08-30 2019-06-04 Apple Inc. Video encoder with context switching
US9942575B1 (en) 2014-11-13 2018-04-10 Google Llc Assigning videos to single-stream and multi-stream decoders
JP2016126037A (ja) 2014-12-26 2016-07-11 ソニー株式会社 信号処理装置、および信号処理方法、並びにプログラム
WO2016166631A1 (en) 2015-04-13 2016-10-20 Semiconductor Energy Laboratory Co., Ltd. Decoder, receiver, and electronic device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000235501A (ja) * 1999-02-16 2000-08-29 Matsushita Electric Ind Co Ltd タスク実行装置
JP2000353100A (ja) * 1999-06-09 2000-12-19 Nec Corp タスク処理システム
JP2003143602A (ja) * 2001-08-06 2003-05-16 Matsushita Electric Ind Co Ltd 復号装置,復号方法,復号プログラム,および復号プログラム記録媒体

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3161017B2 (ja) * 1992-04-16 2001-04-25 ソニー株式会社 動画像復号化装置
DE69841532D1 (de) * 1997-08-29 2010-04-15 Panasonic Corp Optische Platte mit hierarchisch codiertem digitalen Videosignal, Wiedergabevorrichtung und Aufnahmevorrichtung für die optische Platte
JP3356078B2 (ja) * 1998-09-29 2002-12-09 日本電気株式会社 圧縮ストリーム復号装置および圧縮ストリーム復号方法
US6559201B2 (en) * 2000-06-02 2003-05-06 Microphase Coatings, Inc. Antifouling coating composition
JP3639517B2 (ja) * 2000-10-04 2005-04-20 三洋電機株式会社 動画像復号化装置および動画像復号化方法
US7327789B2 (en) * 2001-08-06 2008-02-05 Matsushita Electric Industrial Co., Ltd. Decoding apparatus, decoding method, decoding program, and decoding program storage medium
EP1645122B1 (en) * 2003-07-03 2007-09-12 Matsushita Electric Industrial Co., Ltd. Recording medium, reproduction apparatus, recording method, integrated circuit, program, and reproduction method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000235501A (ja) * 1999-02-16 2000-08-29 Matsushita Electric Ind Co Ltd タスク実行装置
JP2000353100A (ja) * 1999-06-09 2000-12-19 Nec Corp タスク処理システム
JP2003143602A (ja) * 2001-08-06 2003-05-16 Matsushita Electric Ind Co Ltd 復号装置,復号方法,復号プログラム,および復号プログラム記録媒体

Also Published As

Publication number Publication date
WO2007032123A1 (ja) 2007-03-22
US20090196356A1 (en) 2009-08-06

Similar Documents

Publication Publication Date Title
JPWO2007032123A1 (ja) マルチストリーム復号装置
KR100232992B1 (ko) 동화상 디코딩 회로
KR100562116B1 (ko) 처리 효율을 높인 영상음성 처리장치
US7653128B2 (en) Information processing apparatus and method, recording medium, and program
US8270800B2 (en) Information processing apparatus and method, recording medium, and program
US8437408B2 (en) Decoding with reference image stored in image memory for random playback
JP2006094544A (ja) 予測基準値用並びに表示用ピクチャのバッファ処理
KR19980042224A (ko) 트랜스포트, 복호화, 시스템 제어기 기능용 통합 메모리를 가지는 엠피이지 복호화기 시스템 및 방법
JP2003299103A (ja) 動画像符号化方法と装置及び動画像復号化方法と装置
JP3802521B2 (ja) 符号化装置、符号化制御方法及び符号化制御プログラム
JP2009111932A (ja) 動画像復号化装置
JP4010617B2 (ja) 画像復号化装置及び画像復号化方法
WO2011108146A1 (ja) 画像符号化装置、画像符号化復号化システム、画像符号化方法、画像表示方法
KR20050077145A (ko) 듀얼 비디오 디코딩을 위한 비디오 버퍼 제어 장치
JP3410669B2 (ja) 映像音声処理装置
JPH08116532A (ja) 画像復号化方式および装置
US20140334552A1 (en) Image decoding device
WO1998042139A1 (en) Video decoder with reduced size display buffer
JP4433319B2 (ja) 信号再生装置
JP4769268B2 (ja) Mpegビデオ復号器及びmpegビデオ復号方法
KR100726695B1 (ko) 디지털 신호 처리 장치 및 방법과 제공 매체
JPH1155668A (ja) 画像符号化装置
JP2006115168A (ja) 画像復号装置および画像表示装置
JP5361577B2 (ja) 映像復号化装置及び映像復号化方法
JP2009100206A (ja) 画像符号化データ復号化装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101221