(57)【要約】      （修正有）【課題】必要なメモリ容量を増大させることなく倍速再生時に滑らかな再生を行うことができる画像デコード装置及びデコードプログラムを提供する。【解決手段】画像デコード装置は、予測符号化された符号化ストリームが入力され、前記符号化ストリームの各ピクチャを参照画像を参照しながらデコードしてデコードデータを出力するデコード部と、前記デコード部のデコードの制御並びに２画面分の前記参照画像、前記デコード部からの前記デコードデータ及び表示に用いる前記デコードデータを格納する４画面分の記憶領域を有するメモリ部のメモリ管理を行うものであって、倍速再生時に１画面期間において倍速数に応じた数のピクチャを前記デコード部にデコードさせると共に、倍速再生時に前記表示に用いる前記デコードデータが前記記憶領域に保持されるように前記４画面分の記憶領域間で格納されたデータの入れ替えを行う制御部とを具備する。【選択図】図１
2012100162.tif 000002
【特許請求の範囲】
【請求項１】
予測符号化された符号化ストリームが入力され、前記符号化ストリームの各ピクチャを参照画像を参照しながらデコードしてデコードデータを出力するデコード部と、
前記デコード部のデコードの制御並びに２画面分の前記参照画像、前記デコード部からの前記デコードデータ及び表示に用いる前記デコードデータを格納する４画面分の記憶領域を有するメモリ部のメモリ管理を行うものであって、倍速再生時に１画面期間において倍速数に応じた数のピクチャを前記デコード部にデコードさせると共に、倍速再生時に前記表示に用いる前記デコードデータが前記記憶領域に保持されるように前記４画面分の記憶領域間で格納されたデータの入れ替えを行う制御部と
を具備したことを特徴とする画像デコード装置。
【請求項２】
前記制御部は、倍速再生時に２枚目にデコードするピクチャとして、Ｐピクチャを選択する
ことを特徴とする請求項１に記載の画像デコード装置。
【請求項３】
前記メモリ部が前方参照画像及び後方参照画像からなる前記２画面分の前記参照画像を格納する第１格納領域及び第２格納領域、及び前記デコードデータ及び表示に用いる前記デコードデータを格納する第３格納領域及び第４格納領域を含む場合において、
前記制御部は、
倍速再生時の２枚目にデコードするピクチャのデコード時に、
第１格納領域と第２格納領域とで格納されたデータを入れ替え、
第２格納領域に格納されたデータが現フレーム又は次フレーム期間に表示されるか否かを判断し、表示されない場合にはデコードデータを第２格納領域に書込み、表示される場合には第３格納領域のデータが現フレーム又は次フレーム期間に表示されるか否かを更に判断し表示される場合には第２格納領域と第４格納領域とで格納されたデータを入れ換えた後デコードデータを第２格納領域に書込み表示されない場合には第２格納領域と第３格納領域とで格納されたデータを入れ換えた後デコードデータを第２格納領域に書込む
ことを特徴とする請求項１又は２に記載の画像デコード装置。
【請求項４】
予測符号化された符号化ストリームが入力され、前記符号化ストリームの各ピクチャのピクチャタイプを解析する手順と、
倍速再生時に倍速数及び前記ピクチャタイプに基づいてデコードするピクチャを選択する手順と、
選択されたピクチャをデコードする手順と、
２画面分の前記参照画像、デコードされて得られる前記デコードデータ及び表示に用いる前記デコードデータを格納する４画面分の記憶領域を有するメモリ部を制御して、倍速再生時に前記表示に用いる前記デコードデータが前記記憶領域に保持されるように前記４画面分の記憶領域間で格納されたデータの入れ替えを行う手順と、
前記メモリ部に前記デコードデータを記憶させる手順と、
をコンピュータに実行させるためのデコードプログラム。
【請求項５】
前記４画面分の記憶領域間で格納されたデータの入れ替えを行う手順は、
前記２画面分の前記参照画像を格納する記憶領域間で格納されたデータの入れ替えを行う手順と、
前回のデコード時のデコードデータを表示に用いる場合には、当該デコードデータが保持されるように前記記憶領域間で格納されたデータの入れ替えを行う手順と、
を含むことを特徴とする請求項４に記載のデコードプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像デコード装置及びデコードプログラムに関する。
【背景技術】
【０００２】
従来、ディジタル化された動画像信号は、記憶及び伝送に際して、ＭＰＥＧ（Moving Picture Experts Group）−２、ＭＰＥＧ−４、Ｈ．２６４やＶＣ−１等の符号化方式を用いて符号化されることが多い。
【０００３】
画像デコード装置において、符号化されたストリームを倍速再生することがある。画像デコード装置は、符号化ストリームからデコードするピクチャを間引く（スキップする）ことで、倍速再生が可能である。例えば、２枚につき１枚のピクチャのみをデコードして表示出力することで、２倍速再生が可能である。
【０００４】
ところが、Ｐ，Ｂピクチャをデコードするためには、その参照画像であるＩ，Ｐピクチャをデコードする必要がある。従って、Ｂピクチャについては倍速数に応じて適宜スキップ可能であるが、Ｉ，Ｐピクチャについては、スキップに際して参照関係を考慮する必要がある。
【０００５】
動き補償予測符号化では、動きが大きい画像については、両方向予測符号化するよりも片方向予測符号化した方が符号量が低減されることがある。このような場合には、符号化ストリームにおいてＢピクチャが存在せずに、Ｐピクチャが連続することがある。Ｐピクチャをスキップすると以降のＰピクチャは復号化できないので、倍速再生時には、倍速数に応じて連続的にＰピクチャをデコードし、連続的にＰピクチャをスキップさせることになる。従って、Ｐピクチャが連続したストリームを倍速再生する場合には、画像がぎくしゃくした動きになってしまうことがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−８４５５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の実施形態は、必要なメモリ容量を増大させることなく倍速再生時に滑らかな再生を行うことができる画像デコード装置及びデコードプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施形態の画像デコード装置は、予測符号化された符号化ストリームが入力され、前記符号化ストリームの各ピクチャを参照画像を参照しながらデコードしてデコードデータを出力するデコード部と、前記デコード部のデコードの制御並びに２画面分の前記参照画像、前記デコード部からの前記デコードデータ及び表示に用いる前記デコードデータを格納する４画面分の記憶領域を有するメモリ部のメモリ管理を行うものであって、倍速再生時に１画面期間において倍速数に応じた数のピクチャを前記デコード部にデコードさせると共に、倍速再生時に前記表示に用いる前記デコードデータが前記記憶領域に保持されるように前記４画面分の記憶領域間で格納されたデータの入れ替えを行う制御部とを具備したことを特徴とする。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施の形態に係る画像デコード装置を示すブロック図。
【図２】従来技術における２倍速再生を説明するための説明図。
【図３】従来技術における２倍速再生を説明するための説明図。
【図４】横軸に時間をとり縦軸にＤＴＳをとって、デコードタイミングを説明するための説明図。
【図５】図４に対応した図表。
【図６】符号化フレームを解析して得られるピクチャテーブルを示す図表。
【図７】制御部１３においてデコードするピクチャを決定するためのフローを示すフローチャート。
【図８】制御部１３においてデコードするピクチャを決定するためのフローを示すフローチャート。
【図９】通常再生時及び倍速再生時の１枚目のデコード時のメモリ管理を説明するためのフローチャート。
【図１０】倍速再生時の２枚目のデコード時のメモリ管理を説明するためのフローチャート。
【図１１】符号化フレームのピクチャタイプとＤＴＳとの関係を示す図表。
【図１２】メモリ部１５の各バッファｆｂ０〜ｆｂ３の内容の変化を時間の経過に従って示す説明図。
【図１３】符号化フレームのピクチャタイプとＤＴＳとの関係を示す図表。
【図１４】メモリ部１５の各バッファｆｂ０〜ｆｂ３の内容の変化を時間の経過に従って示す説明図。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図１は本発明の一実施の形態に係る画像デコード装置を示すブロック図である。
【００１１】
図１において、画像デコード装置１０の入力バッファ１１には、入力動画像の符号化ストリームが入力される。入力バッファ１１からの符号化ストリームはストリーム解析部１２に供給される。ストリーム解析部１２は、順次入力される符号化ストリーム中の各ピクチャのピクチャタイプ及びデコード時刻情報（ＤＴＳ）を解析して、各ピクチャ及び解析結果を制御部１３に出力する。
【００１２】
制御部１３には、ＳＴＣカウンタ１６からシステム内の時刻情報ＳＴＣ(System Time Clock)も与えられる。制御部１３は、再生モードに基づいて各部を制御する。即ち、制御部１３は、再生モードに応じて各ピクチャをデコーダ１４に供給すると共に、ＳＴＣに基づくタイミングで各ピクチャのデコードをデコーダ１４に指示する。デコーダ１４は制御部１３に制御されて、入力されたピクチャをデコードし、デコード結果をメモリ部１５に与えて記憶させる。メモリ部１５は、前方参照用バッファｆｂ０、後方参照用バッファｆｂ１、デコード用バッファｆｂ２及び表示用バッファｆｂ３の各１フレーム分のメモリを有している。
【００１３】
本実施の形態においては、制御部１３は、通常再生モードだけでなく倍速再生モードで各部を制御することができる。制御部１３は、倍速再生時においてはデコーダ１４を制御して、倍速再生数に応じたピクチャを選択してデコードさせると共に、１フレーム期間に倍速再生数に応じたピクチャ数のピクチャをデコードさせることができるようになっている。更に、制御部１３は、メモリ部１５を制御して、各バッファｆｂ０〜ｆｂ３に記憶されているデコードデータをバッファｆｂ０〜ｆｂ３内で入れ替えて記憶させるようになっている。
【００１４】
次に、図２乃至図１０を参照して、本実施の形態における倍速再生時のデコード方法について説明する。なお、図６乃至図１０のデコード方法は、図６乃至図１０の方法に沿ってコンピュータを動作させるプログラムによって実現することができる。
【００１５】
図２及び図３は従来技術における２倍速再生を説明するための説明図である。
【００１６】
図２（ａ）は所定の入力動画像を符号化して得られる符号化ストリームを示している。図２（ａ）の符号化ストリームはＩ，Ｐ，Ｂが夫々Ｉピクチャ、Ｐピクチャ、Ｂピクチャを示し、添え字によって入力動画像の動画シーケンスに対応するフレーム番号を示している。Ｐ，Ｂピクチャのデコードには、参照画像が必要であり、符号化ストリームのピクチャ順序は動画シーケンスと異なる。例えば、Ｂ３，Ｂ４ピクチャのデコードには、Ｉ２，Ｐ５ピクチャのデコード画像を参照画像として用いる必要があり、Ｉ２，Ｐ５ピクチャの後にＢ３，Ｂ４ピクチャが伝送される。
【００１７】
図２（ｂ）は破線部分によって２倍速再生時のスキップ画像を示している。理想的には、２倍速再生では、例えばフレーム番号０，２，４，…のフレームを再生すればよい。しかしながら、Ｂ４ピクチャの再生のためにはＰ５ピクチャを再生する必要があり、このため、Ｂ４ピクチャに代えてＰ５ピクチャをデコードして再生出力する。即ち、図２（ｂ）の例では、フレーム番号０，２，５，６，８，１１，…のフレームが順次再生出力される。図２の例では、スキップ間隔は若干不均一となるが、再生画像にはそれ程の不自然さはない。
【００１８】
これに対し、図３（ａ）は比較的動きが多い入力動画像を符号化して得られる符号化ストリームの例を示している。この例では、Ｂピクチャが採用されずに、Ｐピクチャが連続する。図３（ｂ）は図３（ａ）の符号化ストリームが入力された従来の画像デコード装置において、２倍速再生を行う場合のスキップ画像を破線にて示している。上述したように、理想的には例えばフレーム番号０，２，４，…のフレームを再生すればよいが、Ｐピクチャのデコードにはその参照画像となるＩ，Ｐピクチャをデコードする必要がある。Ｐピクチャをスキップした場合には、以後のＰピクチャをデコードすることはできない。このため、図３（ｂ）の例では、Ｉピクチャに続く連続したＰピクチャをデコードして再生出力する必要がある。即ち、図３（ｂ）の例では、フレーム番号０，１，２，３，４，５，１２，…のフレームが順次再生出力される。図３の例では、スキップ間隔が大きくなり、再生画像はぎくしゃくしてしまう。
【００１９】
そこで、１フレーム期間に表示と参照画像生成のために２つのピクチャをデコードすることで、スキップ間隔を略均一にした倍速再生を可能にすることが考えられる。
【００２０】
図４は横軸に時間をとり縦軸にＤＴＳをとって、デコードタイミングを説明するための説明図である。なお、図４は図３と異なる例を示している。また、図５は図４に対応した図表であり、符号化ストリームの各ピクチャに対応するＤＴＳ（デコード時刻情報）と、ＳＴＣ（システムクロック）と、再生時刻との関係を示す。
【００２１】
画像デコード装置においては、一定期間おきに、システム内部の時刻情報（ＳＴＣ）を参照し、ＳＴＣの値がデコード対象となるフレームに設定されたデコード時刻情報（ＤＴＳ）に達すると、デコードを行うようになっている。
【００２２】
図４及び図５は、ＳＴＣが９０ＫＨｚカウンタによって構成され、フレームレートが３０フレーム／秒であって、１フレーム毎にＳＴＣが（９００００／３０）＝３０００増加する例を示しており、通常再生時においてＳＴＣが３０００増加する毎に、各ピクチャのデコードタイミングに到達することを示している。即ち、通常再生時には、各ピクチャは、時刻Ｖ１，Ｖ２，Ｖ３，…のタイミングで順次デコードされて再生出力される。
【００２３】
これに対し、２倍速再生時には、各時刻Ｖ１，Ｖ２，Ｖ３，…にＳＴＣが６０００ずつ増加することになる。図４及び図５に示すように、各時刻において、画像デコード装置は、複数のフレームのピクチャの再生が可能である。例えば、時刻Ｖ４の時点において、入力バッファにはＰ３ピクチャ〜Ｉ’６ピクチャが供給されるので、画像デコード装置は、これらのピクチャのいずれかを復号することができる。
【００２４】
画像デコード装置において、各時刻に１つのピクチャのみをデコードして再生出力するものとすると、図４及び図５の例では、倍速再生時に、Ｉ０，Ｐ１，Ｐ３，Ｉ’６，Ｐ’７，…がデコードされて再生出力されることになり、図３（ｂ）の例と同様に、動きがぎくしゃくする再生画像が得られてしまう。
【００２５】
ところで、画像デコード装置においては、Ｐ，Ｂピクチャを復号可能なように、十分なメモリバンド幅が設定されている。メモリアクセスがデコード時の負荷に与える影響は大きく、Ｂピクチャの復号に比べてＰピクチャの復号時の負荷は十分に小さく、通常、画像デコード装置は１フレーム期間に２つのＰピクチャをデコード（以下、多フレームデコードともいう）する能力を有する。そこで、Ｐピクチャについては、参照画像用と再生用とで各時刻に２つのピクチャをデコードすることが考えられる。
【００２６】
例えば、図４及び図５の例において、時刻Ｖ２でＰ１，Ｐ２ピクチャをデコードする。Ｐ１ピクチャのデコードは、Ｐ２ピクチャのデコード時の参照画像を得るために行われる。これにより、スキップ間隔を略均等にした倍速再生を可能にすることが考えられる。
【００２７】
しかしながら、この場合には、１フレーム期間に２つのピクチャがデコードされるので、デコードデータを保持するために必要なメモリ容量が増大してしまうという欠点がある。本実施の形態においては、メモリ容量の増大を防ぐためのメモリ書き込み方法を採用する。
【００２８】
図６乃至図８は本実施の形態においてデコードするピクチャを選択する方法を説明するためのものである。図６の説明図は符号化フレームを解析して得られるピクチャテーブルを示している。ピクチャテーブルは、各ピクチャのヘッダ情報を解析することで得られる。
【００２９】
ストリーム解析部１２は、入力バッファ１１に入力されたストリーム中のヘッダ情報をデコード前に解析し、入力順に図６のピクチャテーブルを生成する。各ピクチャにはインデックス（index）を付け、各ピクチャのピクチャタイプ（picture_coding_type）及びＤＴＳの情報が抽出される。なお、各ピクチャは種々のヘッダ情報を有しているが、図６では図示を省略する（破線）。
【００３０】
デコード又はスキップされたピクチャについては、ピクチャテーブルから削除される。ストリーム解析部１２は、ピクチャテーブルをリングバッファとして管理し、最終エントリの次は先頭エントリに戻って書き込みが行われる。なお、図６はフレーム単位で情報を管理する例を示しているが、フィールド単位で管理してもよい。
【００３１】
図７及び図８は制御部１３においてデコードするピクチャを決定するためのフローを示すフローチャートである。図７及び図８のフローは、通常再生時及び倍速再生時のいずれの場合も共通に用いられる。
【００３２】
上述したように、本実施の形態においては、倍速再生時には、１フレーム期間に、倍速再生数に応じた枚数のピクチャをデコードする。図７は通常再生時及び倍速再生時において１枚目にデコードするピクチャを選択するためのものである。図４及び図５に示したように、倍速再生時には、１フレーム期間にデコード可能なピクチャが複数となる。図８は倍速再生時において２枚目以降のデコードピクチャを選択するためのものである。
【００３３】
図７のステップＳ１１において、制御部１３は、インデックスのための変数ｉに未処理ピクチャの先頭ｉｎｄｅｘの値ｒｐを代入する。変数ｄｅｃｏｄｅは、デコード候補ピクチャのｉｎｄｅｘを示しており、制御部１３は、この変数ｄｅｃｏｄｅに−１を代入する。また、制御部１３は、デコード候補がＩピクチャ又はＰピクチャの場合に１となる変数ｉｐに０を代入する。
【００３４】
ステップＳ１２では、制御部１３は、インデックスｉのピクチャテーブルが空になっているか又はインデックスｉのピクチャテーブルのＤＴＳがＳＴＣよりも大きいか否かを判定する。制御部１３は、インデックスｉのピクチャテーブルが空でなく、且つＳＴＣがインデックスｉのピクチャテーブルのＤＴＳ以上である場合には、処理をステップＳ１７に移行し、ｉｐが０であるか否かを判定する。ｉｐが０の場合には、制御部１３は、ステップＳ１８において、インデックスｉのピクチャタイプがＢピクチャでないか否かを判定する。Ｂピクチャでない場合には、制御部１３は、ステップＳ１９において変数ｉｐに１を代入し、変数ｄｅｃｏｄｅにｉを代入し（ステップＳ２０）、ｉを９９を上限としてインクリメントする（ステップＳ２２）。
【００３５】
なお、制御部１３は、ステップＳ１８において、ピクチャタイプがＢピクチャであると判定した場合には、ｉｐに１を代入することなくステップＳ２０に処理を進める。また、制御部１３は、ステップＳ１７においてｉｐが０でない場合には、ステップＳ２１においてピクチャタイプがＩピクチャであるか否かを判定し、Ｉピクチャの場合には処理をステップＳ２０に移行し、Ｉピクチャでない場合には処理をステップＳ２２に移行する。
【００３６】
制御部１３は、ステップＳ１２において、インデックスｉのピクチャテーブルが空になっているか又はインデックスｉのピクチャテーブルのＤＴＳがＳＴＣよりも大きいか否かを判定し、この条件を満たす場合において、変数ｄｅｃｏｄｅが−１の場合には（ステップＳ１３）、制御部１３は、デコードは不能であるものと判断して、ステップＳ１６においてデコードを行うことなく処理を終了する。
【００３７】
変数ｄｅｃｏｄｅが−１でない場合には、制御部１３は、ステップＳ２０において変数ｄｅｃｏｄｅに代入されたｉに基づいてインデックスｉのテーブルのピクチャをデコードする（ステップＳ１４）。制御部１３は、ステップＳ１５において、未処理ピクチャの先頭インデックスｒｐを９９を上限としてインクリメントして処理を終了する。
【００３８】
即ち、図７の処理は、ＤＴＳ≦ＳＴＣであるピクチャを、Ｉ＞Ｐ＞Ｂの優先順でデコードし、且つ、Ｉ，Ｂピクチャについては最後に入力されたピクチャを優先してデコードし、Ｐピクチャについては最初に入力されたピクチャを優先してデコードすることを意味する。
【００３９】
倍速再生時には、制御部１３は、１フレーム期間に倍速数に応じた数のピクチャのデコードをデコーダ１４に指示する。２枚目以降にデコードするピクチャについては、図８に示すフローに従って選択を行う。制御部１３は、ステップＳ３１において、１枚目でＢピクチャをデコードしたか否かを判定する。１枚目でＢピクチャをデコードした場合には、制御部１３は、ステップＳ３８においてデコード行うことなく処理を終了する。なお、１枚目でＢピクチャをデコードした場合には、その時点でデコード可能なＰピクチャは存在しないので、ステップＳ３１の判定処理は省略してもよい。
【００４０】
１枚目でＩ，Ｐピクチャをデコードした場合には、制御部１３は、次のステップＳ３２において、変数ｉにｒｐを代入し、ステップＳ３３において、インデックスｉのピクチャテーブルが空になっているか又はインデックスｉのピクチャテーブルのＤＴＳがＳＴＣよりも大きいか否かを判定する。この条件を満足する場合には、デコード可能なピクチャは存在しないので、制御部１３はステップＳ３８においてデコードを行うことなく処理を終了する。
【００４１】
制御部１３は、次のステップＳ３３において、インデックスｉのピクチャテーブルが空でなく、且つＳＴＣがインデックスｉのピクチャテーブルのＤＴＳ以上であると判定した場合には、ステップＳ３４において、インデックスｉのピクチャがＰピクチャか否かを判定する。
【００４２】
制御部１３は、ステップＳ３４において、Ｐピクチャでないと判定した場合には、ステップＳ３５において、ｉを９９を上限としてインクリメントして処理をステップＳ３３に戻す。
【００４３】
制御部１３は、ステップＳ３４においてＰピクチャであると判定した場合には、処理をステップＳ３６に移行して、インデックスｉのピクチャをデコードし、変数ｒｐを９９を上限としてインクリメントして（ステップＳ３７）処理を終了する。
【００４４】
即ち、図８の処理は、直前にデコードしたピクチャの次のＰピクチャをデコードすることを意味する。
【００４５】
図８のフローに従って、１フレーム期間に複数枚のピクチャのデコードを行った場合には、従来と同様のメモリ管理を行うとデコードデータを格納するためのメモリを余分に用意する必要がある。そこで、本実施の形態においては、図９及び図１０のフローチャートによるメモリ管理を行うことによって、メモリ容量を増大することなく多フレームデコードを行って倍速再生を可能にする。
【００４６】
図９は通常再生時及び倍速再生時の１枚目のデコード時のメモリ管理を説明するためのフローチャートである。
【００４７】
図１に示すように、メモリ部１５としては、４フレーム分のバッファｆｂ０〜ｆｂ３が必要である。なお、通常再生時においても、４フレーム分のバッファｆｂ０〜ｆｂ３が必要であり、本実施の形態は、メモリ部１５の容量を増大させることなく、倍速再生を可能にするものである。
【００４８】
デコーダ１４によってデコードされたピクチャがＩ，Ｐピクチャの場合には、そのデコードデータは参照画像として、前方参照用バッファｆｂ０又は後方参照用バッファｆｂ１に供給されて記憶される。
【００４９】
デコーダ１４によってデコードされたピクチャがＢピクチャの場合には、そのデコードデータはデコード用バッファｆｂ２に供給されて記憶される。更に、デコードされるフレームの順序と表示順とが異なることから、デコードデータを表示タイミングまで保持するための表示用バッファｆｂ３が必要である。
【００５０】
制御部１３は、ステップＳ４１において、デコード対象のピクチャがＢピクチャか否かを判定する。Ｂピクチャの場合には、制御部１３は、表示用バッファｆｂ３に現フレーム期間において表示されるデコードデータが格納されているか否かを判定する（ステップＳ４２）。表示用バッファｆｂ３のデータが現フレーム期間に表示される場合には、制御部１３はステップＳ４３において表示用バッファｆｂ３の内容をデコード用バッファｆｂ２の内容とを入れ換えた後、デコードデータをデコード用バッファｆｂ２に書込む（ステップＳ４４）。表示用バッファｆｂ３に格納されているデータが現フレームで表示されない場合には、制御部１３は、ステップＳ４３でバッファ内容の入れ替えを行うことなく、デコードデータをデコード用バッファｆｂ２に書込む（ステップＳ４４）。次のステップＳ４５において、制御部１３は、デコード用バッファｆｂ２のデコードデータを次のフレーム期間に表示する。
【００５１】
デコード対象のピクチャがＩ，Ｐピクチャである場合には、制御部１３は、処理をステップＳ４１からステップＳ４６に移行する。後述するように、Ｉ，Ｐピクチャについてはそのデコードデータを例えば後方参照用バッファｆｂ１に書込むようになっている（ステップＳ５２）。このため、制御部１３は、ステップＳ４６において、前方参照用バッファｆｂ０と後方参照用バッファｆｂ１の内容を入れ替えることで、デコード時点において後方参照用バッファｆｂ１に書込まれているデコードデータについては、参照画像として前方参照用バッファｆｂ０に転送する。
【００５２】
次のステップＳ４７において、制御部１３は、表示用バッファｆｂ３のデータが現フレーム期間に表示されるか否かを判断する。表示用バッファｆｂ３のデータが現フレーム期間に表示される場合には、制御部１３はステップＳ４９において後方参照用バッファｆｂ１の内容とデコード用バッファｆｂ２の内容とを入れ換えた後、デコードデータを後方参照用バッファｆｂ１に書込む（ステップＳ５２）。
【００５３】
表示用バッファｆｂ３に格納されているデータが現フレームで表示されない場合には、制御部１３は、次のステップＳ４８で、後方参照用バッファｆｂ１の内容と表示用バッファｆｂ３の内容とを入れ換えた後、表示用バッファｆｂ３に格納されているデータが現フレームで表示されるか否かを判定する。
【００５４】
表示用バッファｆｂ３のデータが現フレーム期間に表示されない場合には、制御部１３はステップＳ５１において表示用バッファｆｂ３の内容とデコード用バッファｆｂ２の内容とを入れ換えた後、デコードデータを後方参照用バッファｆｂ１に書込む（ステップＳ５２）。表示用バッファｆｂ３に格納されているデータが現フレームで表示される場合には、制御部１３は、ステップＳ５１でバッファ内容の入れ替えを行うことなく、デコードデータを後方参照用バッファｆｂ１に書込む。
【００５５】
次のステップＳ５３において、制御部１３は、変数low_delayが１であるかいなかを判定し、low_delayが１の場合には、次フレーム期間に後方参照用バッファｆｂ１の内容を表示し、low_delayが１でない場合には、次フレーム期間に前方参照用バッファｆｂ０の内容を表示する。
【００５６】
図１０は倍速再生時の２枚目のデコード時のメモリ管理を説明するためのフローチャートである。
【００５７】
制御部１３は、ステップＳ６１において、前方参照用バッファｆｂ０の内容と後方参照用バッファｆｂ１の内容とを入れ替える。次のステップＳ６２において、制御部１３は、後方参照用バッファｆｂ１のデータが現フレーム又は次フレーム期間に表示されるか否かを判断する。後方参照用バッファｆｂ１のデータが現フレーム又は次フレーム期間に表示されない場合には、制御部１３はステップＳ６６において、デコードデータを後方参照用バッファｆｂ１に書込む。
【００５８】
制御部１３は、ステップＳ６２において、後方参照用バッファｆｂ１のデータが現フレーム又は次フレーム期間に表示されると判断した場合には、次のステップＳ６３において、デコード用バッファｆｂ２のデータが現フレーム又は次フレーム期間に表示されるか否かを判断する。
【００５９】
デコード用バッファｆｂ２のデータが現フレーム又は次フレーム期間に表示される場合には、制御部１３はステップＳ６４において後方参照用バッファｆｂ１の内容と表示用バッファｆｂ３の内容とを入れ換えた後、デコードデータを後方参照用バッファｆｂ１に書込む（ステップＳ６６）。
【００６０】
デコード用バッファｆｂ２に格納されているデータが現フレーム又は次フレーム期間で表示されない場合には、制御部１３は、次のステップＳ６５で、後方参照用バッファｆｂ１の内容とデコード用バッファｆｂ２の内容とを入れ換えた後、デコードデータを後方参照用バッファｆｂ１に書込む（ステップＳ６６）。
【００６１】
次に、このように構成された実施の形態の動作について図１１乃至図１４を参照して説明する。図１１及び図１３は夫々符号化フレームのピクチャタイプとＤＴＳとの関係を示し、図１２及び図１４はメモリ部１５の各バッファｆｂ０〜ｆｂ３の内容の変化を時間の経過に従って示す説明図である。なお、図１２及び図１４において、Ｓ４３，Ｓ４４，Ｓ４６，Ｓ４８，Ｓ４９，Ｓ５１，Ｓ５２，Ｓ６１，Ｓ６４，Ｓ６５，Ｓ６６は、図９及び図１０の対応する手順において実施されることを示している。
【００６２】
図１１乃至図１４において、Ｉ，Ｐ，Ｂは夫々Ｉピクチャ、Ｐピクチャ、Ｂピクチャを示し、添え字は、フレーム番号を示している。また、図１２及び図１４においては、Ｆｂ０〜Ｆｂ３は、バッファｆｂ０〜ｆｂ３の内容を示しており、ピクチャタイプ及びフレーム番号によってそのピクチャのデコードデータを示している。図１２及び図１４においては、ｄｅｃ、ｄｓｐは、夫々、デコードするピクチャ、表示するピクチャを示している。また、図１２及び図１４は、縦軸にＳＴＣの値（ｓｔｃ）を時間の流れに対応させて示しており、各バッファｆｂ０〜ｆｂ３の内容の変化を時間の流れに沿って１行毎に示している。なお、図１２及び図１４では、太線はフレーム期間の区切りを示し、破線太線は１枚目と２枚目のデコードの区切りを示している。
【００６３】
図１１及び図１２はＰピクチャが連続する符号化フレームの例である。図１１は、符号化フレームのピクチャＩ０，Ｐ１，Ｐ２，…，Ｐ８，…と各ピクチャのＤＴＳとの関係を示している。
【００６４】
図１２は図１１の例におけるメモリ管理を示している。Ｉ０ピクチャが入力されると、制御部１３は、デコーダ１４にこのＩ０ピクチャをデコードさせる。Ｉ０ピクチャのデコードデータは、図９のステップＳ５２において、バッファｆｂ１に書込まれる。
【００６５】
ＳＴＣが６０００になると、図１１に示すように、Ｐ１，Ｐ２ピクチャのデコードが可能である。制御部１３は、ステップＳ４６において、バッファｆｂ０，ｆｂ１の内容を入れ替えた後、Ｐ１ピクチャをデコードする。このＰ１ピクチャはバッファｆｂ１に書込まれる。
【００６６】
本実施の形態においては、このフレーム期間において、Ｐ２ピクチャのデコードも行う。このデコードの前に、ステップＳ６１において、ｆｂ０，ｆｂ１のデータを入れ替え、ステップＳ６４においてｆｂ１とｆｂ３の内容を入れ替える。Ｐ２ピクチャのデコードデータは、ステップＳ６６においてバッファｆｂ１に書込まれる。
【００６７】
ＳＴＣが１２０００になると、Ｐ３，Ｐ４ピクチャのデコードが可能である。制御部１３は、ステップＳ４６において、バッファｆｂ０，ｆｂ１の内容を入れ替えた後、ステップＳ４９において、バッファｆｂ１，ｆｂ２の内容を入れ替える。次いで、制御部１３は、Ｐ３ピクチャをデコードする。このＰ３ピクチャはバッファｆｂ１に書込まれる（ステップＳ５２）。
【００６８】
この時点において、バッファｆｂ３には、Ｉ０ピクチャのデコードデータが格納されており、制御部１３はこのデータを表示部１７に与えて表示させる。
【００６９】
また、このフレーム期間において、制御部１３はＰ４ピクチャのデコードも行う。このデコードの前に、ステップＳ６１において、ｆｂ０，ｆｂ１のデータを入れ替え、ステップＳ６５においてｆｂ１とｆｂ２の内容を入れ替える。Ｐ４ピクチャのデコードデータは、ステップＳ６６においてバッファｆｂ１に書込まれる。
【００７０】
ＳＴＣが１８０００になると、Ｐ５，Ｐ６ピクチャのデコードが可能である。制御部１３は、ステップＳ４６において、バッファｆｂ０，ｆｂ１の内容を入れ替えた後、ステップＳ４８において、バッファｆｂ１，ｆｂ３の内容を入れ替え、ステップＳ５１において、バッファｆｂ３，ｆｂ２の内容を入れ替える。次いで、制御部１３は、Ｐ５ピクチャをデコードする。このＰ５ピクチャはバッファｆｂ１に書込まれる（ステップＳ５２）。
【００７１】
この時点において、バッファｆｂ３には、Ｐ２ピクチャのデコードデータが格納されており、制御部１３はこのデータを表示部１７に与えて表示させる。
【００７２】
また、このフレーム期間において、制御部１３はＰ６ピクチャのデコードも行う。このデコードの前に、制御部１３は、ステップＳ６１において、ｆｂ０，ｆｂ１のデータを入れ替え、ステップＳ６５においてｆｂ１とｆｂ２の内容を入れ替える。Ｐ４ピクチャのデコードデータは、ステップＳ６６においてバッファｆｂ１に書込まれる。
【００７３】
以後、同様の動作が繰り返される。こうして、図１２に示すように、全てのピクチャをデコードし、４つのバッファｆｂ０〜ｆｂ３の内容を入れ替えながらデコードデータをバッファｆｂ１に書込む。これにより、表示用バッファｆｂ３には、倍速数に応じた均一なスキップ間隔のフレームのデコードデータを記憶させ、２倍速で表示順に出力して表示させることができる。
【００７４】
図１３及び図１４はＢピクチャが含まれる符号化フレームの例である。図１３は、符号化フレームのピクチャＩ２，Ｂ０，Ｂ１，Ｐ５，Ｂ３，Ｂ４，Ｐ６，…，Ｐ１０と各ピクチャのＤＴＳとの関係を示している。即ち、図１３の符号化フレームは、一部においてＢピクチャが混在し、一部においてＰピクチャが連続している。
【００７５】
図１４は図１３の例におけるメモリ管理を示している。Ｉ２ピクチャが入力されると、制御部１３は、デコーダ１４にこのＩ２ピクチャをデコードさせる。Ｉ２ピクチャのデコードデータは、図９のステップＳ５２において、バッファｆｂ１に書込まれる。
【００７６】
ＳＴＣが６０００になると、図１３に示すように、Ｂ０，Ｂ１ピクチャのデコードが可能である。図７に示すように、制御部１３は、Ｉ，Ｂピクチャについては最後に入力されたピクチャ、即ち、Ｂ１ピクチャを優先してデコードする。ステップＳ４３において、バッファｆｂ２，ｆｂ３の内容を入れ替えた後、Ｂ１ピクチャがデコードされる。このＢ１ピクチャはバッファｆｂ１に書込まれる。
【００７７】
ＳＴＣが１２０００になると、Ｐ５，Ｂ３ピクチャのデコードが可能である。図７に示すように、制御部１３は、Ｉ，Ｐ，ＢピクチャについてはＩ＞Ｐ＞Ｂの優先順位でピクチャを選択する。即ち、制御部１３は、Ｐ５ピクチャを優先してデコードする。制御部１３は、Ｐ５ピクチャのデコード前に、ステップＳ４６において、バッファｆｂ０，ｆｂ１の内容を入れ替えた後、ステップＳ４８において、バッファｆｂ１，ｆｂ３の内容を入れ替え、ステップＳ５１において、バッファｆｂ３，ｆｂ２の内容を入れ替える。次いで、制御部１３は、Ｐ５ピクチャをデコードする。このＰ５ピクチャはバッファｆｂ１に書込まれる（ステップＳ５２）。
【００７８】
この時点において、バッファｆｂ３には、Ｂ１ピクチャのデコードデータが格納されており、制御部１３はこのデータを表示部１７に与えて表示させる。
【００７９】
ＳＴＣが１８０００になると、Ｂ４，Ｐ６ピクチャのデコードが可能である。この場合においても、制御部１３は、Ｐ６ピクチャを優先的にデコードする。Ｐ６ピクチャのデコード前に、制御部１３は、ステップＳ４６において、バッファｆｂ０，ｆｂ１の内容を入れ替えた後、ステップＳ４８において、バッファｆｂ１，ｆｂ３の内容を入れ替える。次いで、制御部１３は、Ｐ６ピクチャをデコードする。このＰ６ピクチャはバッファｆｂ１に書込まれる（ステップＳ５２）。
【００８０】
この時点において、バッファｆｂ３には、Ｉ２ピクチャのデコードデータが格納されており、制御部１３はこのデータを表示部１７に与えて表示させる。
【００８１】
ＳＴＣが２４０００になると、Ｐ７，Ｐ８ピクチャのデコードが可能である。制御部１３は、ステップＳ４６において、バッファｆｂ０，ｆｂ１の内容を入れ替えた後、ステップＳ４８において、バッファｆｂ１，ｆｂ３の内容を入れ替える。次いで、制御部１３は、Ｐ７ピクチャをデコードする。このＰ５ピクチャはバッファｆｂ１に書込まれる（ステップＳ５２）。
【００８２】
この時点において、バッファｆｂ３には、Ｐ５ピクチャのデコードデータが格納されており、制御部１３はこのデータを表示部１７に与えて表示させる。
【００８３】
本実施の形態においては、このフレーム期間において、制御部１３はＰ８ピクチャのデコードも行う。このデコードの前に、制御部１３は、ステップＳ６１において、ｆｂ０，ｆｂ１のデータを入れ替え、ステップＳ６５においてｆｂ１とｆｂ２の内容を入れ替える。次いで、制御部１３は、Ｐ８ピクチャをデコードし、このデコードデータはステップＳ６６においてバッファｆｂ１に書込まれる。
【００８４】
ＳＴＣが３００００になると、Ｐ９，Ｐ１０ピクチャのデコードが可能である。制御部１３は、ステップＳ４６において、バッファｆｂ０，ｆｂ１の内容を入れ替えた後、ステップＳ４８において、バッファｆｂ１，ｆｂ３の内容を入れ替え、ステップＳ５１において、バッファｆｂ３，ｆｂ２の内容を入れ替える。次いで、制御部１３は、Ｐ９ピクチャをデコードする。このＰ９ピクチャはバッファｆｂ１に書込まれる（ステップＳ５２）。
【００８５】
この時点において、バッファｆｂ３には、Ｐ６ピクチャのデコードデータが格納されており、制御部１３はこのデータを表示部１７に与えて表示させる。
【００８６】
また、このフレーム期間において、制御部１３はＰ１０ピクチャのデコードも行う。このデコードの前に、ステップＳ６１において、ｆｂ０，ｆｂ１のデータを入れ替え、ステップＳ６５においてｆｂ１とｆｂ２の内容を入れ替える。次いで、制御部１３は、Ｐ１０ピクチャをデコードし、このデコードデータは、ステップＳ６６においてバッファｆｂ１に書込まれる。
【００８７】
以後、同様の動作が繰り返される。こうして、図１４に示すように、平均的には倍速数に応じたスキップ間隔のピクチャについて、４つのバッファｆｂ０〜ｆｂ３の内容を入れ替えながらデコードデータをバッファｆｂ１に書込むことができる。これにより、表示用バッファｆｂ３には、略倍速数に応じたスキップ間隔のフレームのデコードデータを記憶させ、２倍速で表示順に出力して表示させることができる。
【００８８】
このように本実施の形態においては、倍速再生時において倍速数に応じたピクチャを選択すると共に、１フレーム期間において倍速数に応じた枚数のピクチャをデコードする。そして、メモリ部の４フレーム分のバッファの内容を入れ替えながらデコードデータを記憶させることにより、倍速数に応じたピクチャのデコードデータを表示タイミングに対応させて表示用バッファに格納することを可能にする。これにより、スキップ間隔を略均一化した倍速再生が可能であり、倍速再生画像がぎくしゃくすることを防止することができる。
【００８９】
なお、図９乃至図１４の例は、表示に用いるデコードデータを表示用バッファに必ず格納するようにしたものである。表示に用いるデータを他のバッファから直接表示部に与える場合等においては、図９乃至図１４に示すメモリ管理以外の管理方法を採用することができることは明らかである。
【符号の説明】
【００９０】
１０…画像デコード装置、１１…入力バッファ、１２…ストリーム解析部、１３…制御部、１４…デコーダ、１５…メモリ部、１６…ＳＴＣカウンタ、１７…表示部、ｆｂ０〜ｆｂ３…バッファ。
【図１】
2012100162.tif 000003
【図２】
2012100162.tif 000004
【図３】
2012100162.tif 000005
【図４】
2012100162.tif 000006
【図５】
2012100162.tif 000007
【図６】
2012100162.tif 000008
【図７】
2012100162.tif 000009
【図８】
2012100162.tif 000010
【図９】
2012100162.tif 000011
【図１０】
2012100162.tif 000012
【図１１】
2012100162.tif 000013
【図１２】
2012100162.tif 000014
【図１３】
2012100162.tif 000015
【図１４】
2012100162.tif 000016