(57)【要約】【課題】ＰＯＣタイプがタイプ１の場合に、ランダムアクセスの際にもＰＯＣの正しいデコードができるようにすること。【解決手段】エンコーダ１００のＲＰＳＥＩ挿入部１１０がＲＰＳＥＩの挿入位置を制限し、デコーダ２００のＰＯＣデコード部２１０がフレーム番号オフセットを適切に初期設定する。具体的には、ＲＰＳＥＩ挿入部１１０は、参照フレームカウンタの値がＰＯＣサイクル内参照フレーム数の整数倍またはＰＯＣサイクル内参照フレーム数の整数倍の整数倍の参照フレームだけにＲＰＳＥＩを挿入する。また、ＰＯＣデコード部２１０は、ＩＤＲフレーム以外でＲＰＳＥＩが挿入されたフレームを最初に検出した場合に、フレーム番号オフセットをフレーム番号の符号をマイナスにした値に初期化する。【選択図】        図２
2009260736.tif 000002
【特許請求の範囲】
【請求項１】
復旧点を挿入しつつ、ピクチャ順序カウント（ＰＯＣ）を符号化するエンコーディング装置であって、
符号化するフレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号がＰＯＣサイクル内参照フレーム数の正整数倍であるか否かを判定する挿入可否判定手段と、
前記挿入可否判定手段により前記フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号が前記ＰＯＣサイクル内参照フレーム数の正整数倍であると判定された場合に前記フレームに復旧点を挿入する復旧点挿入手段と
を備えたことを特徴とするエンコーディング装置。
【請求項２】
復旧点が挿入されつつ符号化された動画像を復号するデコーディング装置であって、
ランダムアクセスによる復号開始の場合に、ＰＯＣの復号で使用するＰＯＣサイクル内フレーム番号がゼロになるように初期化処理を行ってＰＯＣを復号するＰＯＣ復号手段
を備えたことを特徴とするデコーディング装置。
【請求項３】
前記ＰＯＣ復号手段は、瞬時復号リフレッシュフレーム以外のフレームに最初に前記復旧点を検出すると、瞬時復号リフレッシュフレームからのフレーム番号の符号を反転した値にＰＯＣサイクル内参照フレーム数の整数倍を加えた値をフレーム番号オフセットに初期設定することによって、ＰＯＣサイクル内フレーム番号がゼロになるように初期化処理を行うことを特徴とする請求項２に記載のデコーディング装置。
【請求項４】
復旧点を挿入しつつ、ピクチャ順序カウント（ＰＯＣ）を符号化するエンコーディング装置が動画像を符号化し、該エンコーディング装置により符号化された動画像をデコーディング装置が復号化する動画像処理方法であって、
前記エンコーディング装置が、
符号化するフレームについて、該フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号がＰＯＣサイクル内参照フレーム数の正整数倍であるか否かを判定する挿入可否判定ステップと、
前記挿入可否判定ステップにより前記フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号が前記ＰＯＣサイクル内参照フレーム数の正整数倍であると判定された場合に前記フレームに前記復旧点を挿入する復旧点挿入ステップとを含み、
前記デコーディング装置が、
ランダムアクセスによる復号開始の場合に、前記ＰＯＣの復号で使用するＰＯＣサイクル内フレーム番号がゼロになるように初期化処理を行って前記ＰＯＣを復号するＰＯＣ復号ステップを含んだことを特徴とする動画像処理方法。
【請求項５】
復旧点を挿入しつつ、ピクチャ順序カウント（ＰＯＣ）を符号化する、動画像を符号化するエンコーディング装置および該エンコーディング装置により符号化された動画像を復号化するデコーディング装置を有する動画像処理システムであって、
前記エンコーディング装置が、
符号化するフレームについて、該フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号が前記ＰＯＣサイクル内参照フレーム数の正整数倍であるか否かを判定する挿入可否判定手段と、
前記挿入可否判定手段により前記フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号が前記ＰＯＣサイクル内参照フレーム数の正整数倍であると判定された場合に前記フレームに前記復旧点を挿入する復旧点挿入手段とを備え、
前記デコーディング装置が、
ランダムアクセスによる復号開始の場合に、前記ＰＯＣの復号で使用するＰＯＣサイクル内フレーム番号がゼロになるように初期化処理を行って前記ＰＯＣを復号するＰＯＣ復号手段を備えたことを特徴とする動画像処理システム。
【請求項６】
復旧点を挿入しつつ、ピクチャ順序カウント（ＰＯＣ）を符号化する動画像を符号化するエンコーディングプログラムであって、
符号化するフレームについて、該フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号が前記ＰＯＣサイクル内参照フレーム数の正整数倍であるか否かを判定する挿入可否判定手順と、
前記挿入可否判定手順により前記フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号がＰＯＣサイクル内参照フレーム数の正整数倍であると判定された場合に前記フレームに前記復旧点を挿入する復旧点挿入手順と
をコンピュータに実行させることを特徴とするエンコーディングプログラム。
【請求項７】
復旧点ＳＥＩが挿入されつつ、ピクチャ順序カウント（ＰＯＣ）が符号化された動画像を復号するデコーディングプログラムであって、
ランダムアクセスによる復号開始の場合に、前記ＰＯＣの復号で使用するＰＯＣサイクル内フレーム番号がゼロになるように初期化処理を行って前記ＰＯＣを復号するＰＯＣ復号手順
をコンピュータに実行させることを特徴とするデコーディングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動画像を符号化／復号化（エンコード／デコード）する動画像処理技術に関し、特に、ランダムアクセスによる復号開始の場合にも、動画像を正確に復号することを可能とする動画像処理技術に関するものである。１例として、Ｈ．２６４形式の動画像処理技術に関するものである。
【背景技術】
【０００２】
Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ標準において、ＰＯＣ（Picture  Order  Count）は、フレーム／フィールドを表示する順番を示すパラメータである。ＰＯＣは、Ｂピクチャの復号において参照ピクチャの初期順序決定に用いられる。また、ＰＯＣは、時間ダイレクトモードにおける動きベクトル算出に関してフレームまたはフィールド間におけるピクチャ順序の差を表す。また、ＰＯＣは、Ｂピクチャの暗黙的モード重みつき予測やデコーダの適合性チェックにも用いられる。したがって、ＰＯＣを正確にデコードすることが必要となる。
【０００３】
ＰＯＣは、ＰＯＣタイプに基づいて３種類の方法でデコードされる。タイプ１のデコード方法については、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ標準の８．２．１．２節に記載されている（例えば、非特許文献１参照）。
【０００４】
図８は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ標準に基づく従来のＰＯＣデコード処理の処理手順を示すフローチャートである。同図に示すように、従来のＰＯＣデコード処理では、デコーダは、まずフレーム番号オフセット（FrameNumOffset）を計算する（ステップＳ１）。
【０００５】
ここで、フレーム番号オフセットは、最新のＩＤＲフレーム（Instantaneous  Decoding  Refresh  Frame：瞬時復号リフレッシュフレーム）を基準とするフレーム番号（frame＿num）のオフセット値である。なお、各フレームは、ＩＤＲフレームからの相対番号を有し、相対番号は、フレーム番号（０〜MaxFrameNum：フレーム番号最大値）とフレーム番号オフセットから算出される。また、フレーム番号は、参照フレームが現れるとカウントアップされ、非参照フレームが現れてもカウントアップされない番号である。
【０００６】
図９（ａ）に、フレーム番号オフセットを計算するコードを示す。同図において、nal＿unit＿type＝＝５は、フレームがＩＤＲフレームであることを示し、prevFrameNumは前のフレームのフレーム番号であり、prevFrameNumOffsetは前のフレームのフレーム番号オフセットである。
【０００７】
そして、デコーダは、フレーム番号オフセットから絶対フレーム番号（absFrameNum）を計算する（ステップＳ２）。絶対フレーム番号は、最新のＩＤＲフレームからの相対番号であり、フレーム番号オフセットを用いない番号という意味で「絶対」という用語が用いられている。
【０００８】
図９（ｂ）に、絶対フレーム番号を計算するコードを示す。同図において、num＿ref＿frames＿in＿pic＿order＿cnt＿cycleすなわちＰＯＣサイクル内参照フレーム数は、ＰＯＣサイクル内の参照フレーム数を示す定数であり、nal＿ref＿idc＝＝０は、フレームが非参照フレームであることを示す。また、ＰＯＣサイクルは、参照フレームと非参照フレームから構成される繰り返しグループである。
【０００９】
そして、デコーダは、ＰＯＣサイクル番号（picOrderCntCycleCnt）およびＰＯＣサイクル内フレーム番号（frameNumInPicOrderCntCycle）を計算する（ステップＳ３）。ＰＯＣサイクル内フレーム番号は、ＰＯＣサイクル内でのフレームの位置を示す番号であり、０〜ＰＯＣサイクル内参照フレーム数の値をとる。このＰＯＣサイクル内フレーム番号は、ＰＯＣサイクルにおける参照フレームのリストへのアクセスに用いられる参照フレームオフセット（offset＿for＿ref＿frame）の値の計算に用いられる非常に重要な変数である。図９（ｃ）に、ＰＯＣサイクル番号およびＰＯＣサイクル内フレーム番号を計算するコードを示す。
【００１０】
そして、デコーダは、ＰＯＣ期待値（expectedPicOrderCnt）を計算する（ステップＳ４）。参照フレームのＰＯＣ期待値は、そのＰＯＣサイクルのデルタ期待値（expectedDeltaPerPicOrderCntCycle）、ＰＯＣサイクル番号、参照フレームに対応するオフセットリスト（offset＿for＿ref＿frame［ｉ］）により与えられるオフセット値から計算される。ここで、各ＰＯＣサイクルのデルタ期待値は、そのＰＯＣサイクルの参照フレームに対するオフセット値の和として計算される。
【００１１】
また、非参照フレームのＰＯＣ期待値は、そのＰＯＣサイクルの非参照フレームに対するオフセット値が用いられる。図９（ｄ）に、各ＰＯＣサイクルのデルタ期待値を計算するコードを示し、図９（ｅ）に、ＰＯＣ期待値を計算するコードを示す。
【００１２】
そして、デコーダは、トップフィールド／ボトムフィールドのＰＯＣ値を計算する（ステップＳ５）。図９（ｆ）に、トップフィールド／ボトムフィールドのＰＯＣ値を計算するコードを示す。同図において、TopFieldOrderCntがトップフィールドのＰＯＣ値を示し、BottomFieldOrderCntがボトムフィールドのＰＯＣ値を示す。
【００１３】
なお、図９において、nal＿unit＿type、frame＿num、MaxFrameNum、num＿ref＿frames＿in＿pic＿order＿cnt＿cycle、nal＿ref＿idc、offset＿for＿ref＿frame[i]、offset＿for＿non＿ref＿pic、field＿pic＿flag、delta＿pic＿order＿cnt[0]、delta＿pic＿order＿cnt[1]、bottom＿field＿flag、offset＿for＿top＿to＿bottom＿fieldはエンコードされた画像データの構文（シンタックス）から得られる。また、図１０にＰＯＣの計算例を示す。
【００１４】
【非特許文献１】H.264  Advanced  Video  Coding  for  Generic  Audiovisual  Services,  ITU-T  Standard
【発明の開示】
【発明が解決しようとする課題】
【００１５】
従来のＰＯＣの計算では、図９（ａ）に示したように、ＩＤＲフレームがあれば最初にフレーム番号オフセットがゼロに設定され、後続のフレームに対してはフレーム番号が前のフレーム番号以上である場合は前のフレームのフレーム番号オフセットが設定される。
【００１６】
しかしながら、ランダムアクセスポイントからデコードが開始される場合には、ＰＯＣが正しく計算できないという問題がある。ここで、ランダムアクセスポイントとは、ランダムアクセスを可能とする情報を含む位置である。なお、ランダムアクセスの可能性がある場合には、復旧点を示す付加情報（ＲＰＳＥＩ：Recovery  Point  Supplemental  Enhancement  Information）が用いられる。ＲＰＳＥＩ（復旧点ＳＥＩ）は、デコーダがリカバリポイント以降のフレームを正しくデコードできるようにするための補足情報である。
【００１７】
すなわち、ＲＰＳＥＩを用いてリカバリポイントから正しくデコードしようとしても、ランダムアクセスの場合には、前のフレームのフレーム番号オフセットが不明なため、フレーム番号オフセットが正しく初期設定されない。このため、絶対フレーム番号の値が正しく計算されず、ＰＯＣサイクル内フレーム番号が正しく計算されない。その結果、オフセットリストに正しくアクセスすることができず、ＰＯＣを正しくデコードできない。したがって、ＰＯＣを正しくデコードするためには、フレーム番号オフセットを正しく初期設定し、ＰＯＣサイクル内フレーム番号を正しく計算する必要がある。
【００１８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ＰＯＣタイプがタイプ１の場合に、ランダムアクセスの際にもＰＯＣの正しいデコードを可能とする動画像処理システムなどを提供することを目的とする。
【課題を解決するための手段】
【００１９】
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、復旧点を挿入しつつ動画像を符号化するエンコーディング装置が、符号化するフレームについて、該フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号がＰＯＣサイクル内参照フレーム数の正整数倍であるか否かを判定する挿入可否判定手段と、前記挿入可否判定手段により前記フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号がＰＯＣサイクル内参照フレーム数の正整数倍であると判定された場合に前記フレームに前記復旧点を挿入する復旧点挿入手段とを備える。
【００２０】
この態様によれば、符号化するフレームについて、フレームが参照フレームであり、かつ、瞬時復号リフレッシュフレームからのフレーム番号がＰＯＣサイクル内参照フレーム数の正整数倍であると判定した場合にフレームに復旧点を挿入することとしたので、デコーディング装置がランダムアクセスにおいてもＰＯＣを正しく復号することが可能となる。
【００２１】
また、本発明の他の態様では、復旧点が挿入されつつ符号化された動画像を復号するデコーディング装置が、ランダムアクセスによる復号開始の場合に、ＰＯＣの復号で使用するＰＯＣサイクル内フレーム番号がゼロになるように初期化処理を行ってＰＯＣを復号するＰＯＣ復号手段を備える。
【００２２】
この態様によれば、ランダムアクセスによる復号開始の場合に、ＰＯＣの復号で使用するＰＯＣサイクル内フレーム番号がゼロになるように初期化処理を行ってＰＯＣを復号することとしたので、ＰＯＣを正しく復号することができる。
【００２３】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも上述した課題を解決するために有効である。
【発明の効果】
【００２４】
本発明の一つの態様によれば、ランダムアクセスにおいても、ＰＯＣを正しく復号することができるので、動画像を正確に復号することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照して、この発明に係るエンコーディング装置、デコーディング装置、動画像処理方法、動画像処理システム、エンコーディングプログラムおよびデコーディングプログラムの好適な実施例を詳細に説明する。また、請求項で記載の復旧点は、ＲＥＳＥＩを示します。
【実施例】
【００２６】
まず、本実施例に係るエンコーダによるＲＰＳＥＩ挿入位置制限について説明する。図１は、本実施例に係るエンコーダによるＲＰＳＥＩ挿入位置制限を説明するための図である。同図は、ＩＤＲフレームから始まってＢ、Ｐ、Ｂ、Ｂ、Ｐ、Ｂ、Ｐ、Ｂ、Ｂ、Ｐ、Ｂ・・・と続くフレームシーケンスを示す。ここで、Ｐは参照フレームを示し、Ｂは非参照フレームを示す。また、参照フレームカウンタは参照フレームの数を数えるカウンタであり、フレームカウンタは非参照フレームも含めたフレームの数を数えるカウンタである。
【００２７】
本実施例に係るエンコーダは、参照フレームカウンタの値がＰＯＣサイクル内参照フレーム数の整数倍（ｎ倍）またはＰＯＣサイクル内参照フレーム数の整数倍（ｎ倍）の整数倍（ｍ倍）の参照フレームだけにＲＰＳＥＩを挿入する。
【００２８】
図１では、ＰＯＣサイクル内参照フレーム数は２であり、参照フレームカウンタの値が２の整数倍（ｎ＝１、ｍ＝１）の参照フレーム、すなわち参照フレームカウンタの値が０（ＩＤＲフレーム）、２および４の参照フレームに対してＲＰＳＥＩを挿入する。他の例としてｎ＝３、ｍ＝１とすると、参照フレームカウンタの値が０、６、１２、１８・・・の参照フレームに対してＲＰＳＥＩを挿入し、ｎ＝２、ｍ＝５とすると、参照フレームカウンタの値が０、２０、４０、６０・・・の参照フレームに対してＲＰＳＥＩを挿入する。
【００２９】
一方、本実施例に係るデコーダは、後述するように、ＩＤＲフレーム以外でＲＰＳＥＩが挿入されたフレームを最初に検出した場合に、フレーム番号オフセットをフレーム番号の符号をマイナスにした値に初期化する。その結果、次の参照フレームでＰＯＣサイクル内フレーム番号をゼロとすることができ、ＰＯＣサイクル内フレーム番号（frameNumInPicOrderCntCycle）を正しい値０に設定できる。これにより、最初に検出したＲＰＳＥＩ（復旧点ＳＥＩ）が挿入されたフレームを基準(０)に、続く全フレームの相対的なＰＯＣを正しくデコードすることができる。
【００３０】
このように、本実施例では、エンコーダがＲＰＳＥＩを挿入するフレームに制限を設け、デコーダがフレーム番号オフセットを適切に初期設定することによって、ランダムアクセスの場合にもＰＯＣを正しくデコードすることができる。したがって、デコーダは、ランダムアクセスにより復号を開始する場合にも、動画像を正確に復号することができる。
【００３１】
次に、本実施例に係るエンコーダおよびデコーダの構成について説明する。図２は、本実施例に係るエンコーダおよびデコーダの構成を示す図である。同図に示すように、本実施例に係るエンコーダ１００は、ＲＰＳＥＩ挿入部１１０を有し、デコーダ２００は、ＰＯＣデコード部２１０を有する。
【００３２】
ＲＰＳＥＩ挿入部１１０は、フレームにＲＰＳＥＩを挿入する処理部である。このＲＰＳＥＩ挿入部１１０は、参照フレームカウンタの値がＰＯＣサイクル内参照フレーム数の整数倍またはＰＯＣサイクル内参照フレーム数の整数倍の整数倍の参照フレームだけにＲＰＳＥＩを挿入する。
【００３３】
一方、ＰＯＣデコード部２１０は、ＩＤＲフレーム以外でＲＰＳＥＩが挿入されたフレームを最初に検出した場合に、フレーム番号オフセットをフレーム番号の符号をマイナスにした値に初期化する。
【００３４】
このように、ＲＰＳＥＩ挿入部１１０がＲＰＳＥＩの挿入位置を制限し、ＰＯＣデコード部２１０がフレーム番号オフセットを適切に初期設定することによって、ランダムアクセスの場合にもＰＯＣを正しくデコードすることができる。
【００３５】
次に、エンコーダ１００によるエンコード処理の処理手順について説明する。図３は、エンコーダ１００によるエンコード処理の処理手順を示すフローチャートである。なお、各フレームは、ＳＥＩ、ＳＰＳ（Sequence  Parameter  Set、シークエンスパラメータセット）、ＰＰＳ（Picture  Parameter  Set、ピクチャパラメータセット）およびスライス（フレームデータ）を有する。ただし、ＳＥＩ、ＳＰＳおよびＰＰＳはオプショナルである。
【００３６】
また、ここでは１つのＩＤＲフレームおよびそれに続く一連のフレームをエンコードする場合について説明するが、図３に示す処理手順を繰り返すことによって、複数のＩＤＲフレームを含む画像データをエンコードすることができる。
【００３７】
図３に示すように、このエンコーダ１００は、まずエンコード処理に必要な初期化処理を行う（ステップＳ１０１）。具体的には、フレーム参照構造の決定、ＰＯＣタイプ１に関するパラメータ値の決定、参照フレームカウンタなど変数の初期化を行う。
【００３８】
そして、ＩＤＲフレームのエンコードを行って参照フレームカウンタを１増加し（ステップＳ１０２）、フレーム番号を示す変数ｎを１に初期設定する（ステップＳ１０３）。そして、ｎ番目のフレームが参照フレームであり、かつ、参照フレームカウンタをＰＯＣサイクル内参照フレーム数で割った余りがゼロであるか否かを判定する（ステップＳ１０４）。
【００３９】
その結果、ｎ番目のフレームが参照フレームであり、かつ、参照フレームカウンタをＰＯＣサイクル内参照フレーム数で割った余りがゼロである場合には、ＲＰＳＥＩ、ＳＰＳ、ＰＰＳをエンコードする（ステップＳ１０５）。
【００４０】
そして、ｎ番目のフレームをエンコードし（ステップＳ１０６）、ｎ番目のフレームは参照フレームであるか否かを判定する（ステップＳ１０７）。その結果、参照フレームである場合には、参照フレームカウンタを１増加する（ステップＳ１０８）。
【００４１】
そして、ｎを１増加し（ステップＳ１０９）、ｎがエンコードフレーム数より大きいか否かを判定する（ステップＳ１１０）。その結果、ｎがエンコードフレーム数より大きくない場合には、ステップＳ１０４に戻って次のフレームを処理し、ｎがエンコードフレーム数より大きい場合には、エンコード処理を終了する。
【００４２】
このように、エンコーダが参照フレームカウンタをＰＯＣサイクル内参照フレーム数で割った余りがゼロである参照フレームだけにＲＰＳＥＩを挿入することによって、デコーダは正しくＰＯＣをデコードすることが可能となる。
【００４３】
次に、ＰＯＣデコード部２１０によるＰＯＣデコード処理について説明する。図４は、ＰＯＣデコード部２１０によるＰＯＣデコード処理の処理手順を示すフローチャートである。同図に示すように、このＰＯＣデコード部２１０は、フレーム番号オフセット（FrameNumOffset）を計算する（ステップＳ１０）。
【００４４】
ただし、このＰＯＣデコード部２１０は、ＩＤＲフレーム以外のフレームで最初にＲＰＳＥＩを検出した場合には、フレーム番号オフセットをフレーム番号の符号を反転した値に初期化する。図５に、ステップＳ１０の処理に対応するコードを示す。図５において、sei＿message->payloadType＝＝６はＲＰＳＥＩが挿入されていることを示し、この場合に、式（１）に示すように、FrameNumOffset＝−frame＿Numとフレーム番号オフセットが初期化されている。
【００４５】
そして、ＰＯＣデコード部２１０は、ステップＳ２０〜Ｓ５０の処理を行う。なお、図４において、ステップＳ２０〜Ｓ５０の処理は、それぞれ図８のステップＳ２〜Ｓ５の処理に対応する。
【００４６】
このように、ＰＯＣデコード部２１０が、ＩＤＲフレーム以外のＲＰＳＥＩを最初に検出した場合に、フレーム番号オフセットをフレーム番号の符号を反転した値に初期化することによって、ＰＯＣを正しくデコードすることができる。
【００４７】
図６にランダムアクセスの際のＰＯＣの計算例を示す。この例では、ＩＤＲ以外のフレームで最初にＲＰＳＥＩが検出され、フレーム番号オフセット（FrameNumOffset）が−２に初期化される。そして、次の参照フレームでＰＯＣサイクル内フレーム番号（frameNumInPicOrderCntCycle）の値として正しくゼロが計算されている。ＰＯＣ値は、本来の値より、−１２された値になっているが、フレーム間の相対値は保存されている。
【００４８】
上述してきたように、本実施例では、エンコーダ１００のＲＰＳＥＩ挿入部１１０がＲＰＳＥＩの挿入位置を制限し、デコーダ２００のＰＯＣデコード部２１０がフレーム番号オフセットを適切に初期設定することによって、デコーダ２００はランダムアクセスの場合にもＰＯＣを正しくデコードすることができる。
【００４９】
なお、本実施例では、ＩＤＲフレーム以外のフレームで最初にＲＰＳＥＩを検出した場合に、フレーム番号オフセットをフレーム番号の符号を反転した値に初期化する場合について説明した。しかし、次の参照フレームに対してＰＯＣサイクル内フレーム番号を正しく計算するためには、図９（ｃ）から、絶対フレーム番号（absFrameNum）−１がＰＯＣサイクル内参照フレーム数（num＿ref＿frames＿in＿pic＿order＿cnt＿cycle）の整数倍であればよい。したがって、フレーム番号の符号を反転した値にＰＯＣサイクル内参照フレーム数を整数倍した値にフレーム番号オフセットを初期化することもできる。すなわち、図５の（１）式の代わりにFrameNumOffset＝−frame＿Num＋Ｍ＊num＿ref＿frames＿in＿pic＿order＿cnt＿cycleを用いることもできる。ここで、Ｍは整数である。
【００５０】
また、上記の実施例では、最初にＲＰＳＥＩを検出した参照フレームの次の参照フレームにてＰＯＣサイクル内フレーム番号を正しく計算する場合について説明したが、最初にＲＰＳＥＩを検出した参照フレームにてＰＯＣサイクル内フレーム番号を正しく計算することもできる。具体的には、エンコーダでは参照フレームカウンタの値が１以上であり、かつ（参照フレームカウンタ値−１）をＰＯＣサイクル内参照フレームの値で割った場合の余りが０である参照フレームだけにＲＰＳＥＩを挿入する。また、デコーダでは、最初にＲＰＳＥＩを検出した参照フレームでのFrameNumOffsetの計算において、図５の（１）式の代わりに、
FrameNumOffset＝num＿ref＿frames＿in＿pic＿order＿cnt＿cycle−frame＿num＋1
を用いる。図１１に本実施例でのランダムアクセス時のＰＯＣの計算例を示す。
【００５１】
また、本実施例では、エンコーダ１００およびデコーダ２００について説明したが、エンコーダ１００あるいはデコーダ２００が有する構成をソフトウェアによって実現することで、同様の機能を有するエンコーディングプログラムあるいはデコーディングプログラムを得ることができる。そこで、エンコーディングプログラムを実行するコンピュータについて説明する。なお、デコーディングプログラムも同様の構成を有するコンピュータで実行することができる。
【００５２】
図７は、本実施例に係るエンコーディングプログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ３００は、ＲＡＭ３１０と、ＣＰＵ３２０と、ＨＤＤ３３０と、ＬＡＮインタフェース３４０と、入出力インタフェース３５０と、ＤＶＤドライブ３６０とを有する。
【００５３】
ＲＡＭ３１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ３２０は、ＲＡＭ３１０からプログラムを読み出して実行する中央処理装置である。ＨＤＤ３３０は、プログラムやデータを格納するディスク装置であり、ＬＡＮインタフェース３４０は、コンピュータ３００をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。入出力インタフェース３５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ３６０は、ＤＶＤの読み書きを行う装置である。
【００５４】
そして、このコンピュータ３００において実行されるエンコーディングプログラム３１１は、ＤＶＤに記憶され、ＤＶＤドライブ３６０によってＤＶＤから読み出されてコンピュータ３００にインストールされる。あるいは、このエンコーディングプログラム３１１は、ＬＡＮインタフェース３４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ３００にインストールされる。そして、インストールされたエンコーディングプログラム３１１は、ＨＤＤ３３０に記憶され、ＲＡＭ３１０に読み出されてＣＰＵ３２０によって実行される。
【図面の簡単な説明】
【００５５】
【図１】本実施例に係るエンコーダによるＲＰＳＥＩ挿入位置制限を説明するための図である。
【図２】本実施例に係るエンコーダおよびデコーダの構成を示す図である。
【図３】エンコーダによるエンコード処理の処理手順を示すフローチャートである。
【図４】ＰＯＣデコード部によるＰＯＣデコード処理の処理手順を示すフローチャートである。
【図５】ステップＳ１０の処理に対応するコードを示す図である。
【図６】ランダムアクセスの際のＰＯＣの計算例を示す図である。
【図７】本実施例に係るエンコーディングプログラムを実行するコンピュータの構成を示す機能ブロック図である。
【図８】従来のＰＯＣデコード処理の処理手順を示すフローチャートである。
【図９】従来のＰＯＣデコード処理のコードを示す図である。
【図１０】ＰＯＣの計算例を示す図である。
【図１１】ランダムアクセスの際のＰＯＣの計算例を示す図である。
【符号の説明】
【００５６】
１００    エンコーダ
１１０    ＲＰＳＥＩ挿入部
２００    デコーダ
２１０    ＰＯＣデコード部
３００    コンピュータ
３１０    ＲＡＭ
３１１    エンコーディングプログラム
３２０    ＣＰＵ
３３０    ＨＤＤ
３４０    ＬＡＮインタフェース
３５０    入出力インタフェース
３６０    ＤＶＤドライブ
【図１】
2009260736.tif 000003
【図２】
2009260736.tif 000004
【図３】
2009260736.tif 000005
【図４】
2009260736.tif 000006
【図５】
2009260736.tif 000007
【図６】
2009260736.tif 000008
【図７】
2009260736.tif 000009
【図８】
2009260736.tif 000010
【図９】
2009260736.tif 000011
【図１０】
2009260736.tif 000012
【図１１】
2009260736.tif 000013