(57)【特許請求の範囲】
【請求項１】
可変長符号化されたパラメータを含む第１及び第２のストリームを接続するための編集装置であって、前記第１及び第２のストリームの接続点において新たに隣接する第１のストリームに含まれる符号化された第１のパラメータと第２のストリームに含まれる符号化された第２のパラメータとは異なる値に設定することが必要とされる編集装置において、
前記第１のパラメータと、前記第２のパラメータとを比較し、前記第１のパラメータと前記第２のパラメータが同一の値であるかに基づいて前記第１のパラメータ及び前記第２のパラメータのうち少なくともいずれか一方を置換すべきか否かを判定する判定手段と、
前記判定手段により置換すべきと判定された場合は、前記第１のパラメータ及び前記第２のパラメータのうち少なくともいずれか一方を、前記第１及び第２のパラメータに付与された符号語と等しい長さを有する他の符号語に置換する置換手段とを備える
編集装置。
【請求項２】
前記置換手段は、複数の可変長符号語グループの中の一つのグループであって前記第１及び第２のパラメータに付与された符号語を含むグループの中から、前記他の符号語を決定する、ことを特徴とする請求項１に記載の編集装置。
【請求項３】
前記第１のストリーム及び前記第２のストリームは記録媒体に記録されており、前記記録媒体は、ストリームを記録した領域を所定のアクセス単位の集合で管理する管理情報を有し、
前記置換手段により他の符号語に置換されたパラメータが記録されたアクセス単位のみを書き換える書き換え手段と、
前記第１のストリームが記録された前記アクセス単位の集合と前記第２のストリームが記録された前記アクセス単位の集合とを前記管理情報上で接続する接続手段とを有する
ことを特徴とする請求項１に記載の編集装置。
【請求項４】
前記第１のストリーム及び前記第２のストリームは複数の第１のデータ単位で構成され、さらに前記第１のデータ単位は複数の第２のデータ単位で構成され、
前記判定手段は、前記第１のデータ単位毎にパラメータを置換すべきか否かを判定し、
前記置換手段は、前記第１のストリーム及び前記第２のストリームのうちのいずれか一方の前記第１のデータ単位内に含まれる全ての第２のデータ単位のパラメータを置換することを特徴とする請求項１に記載の編集装置。
【請求項５】
前記置換手段は、符号化されたパラメータとして前記第１のストリームに付与された符号語及び符号化されたパラメータとして前記第２のストリームに付与された符号語のいずれとも異なり、かつ長さが等しい符号語が存在しない場合、
前記第１のストリーム及び前記第２のストリームのいずれかにおいて、前記判定手段により置換すべきと判定された第１のデータ単位に含まれる全ての第２のデータ単位の符号語を、その符号語よりも８ビットの整数倍だけ長い別の符号語で置換し、前記第１のデータ単位内に存在する無効領域を８ビットの整数倍の長さだけ削除する
ことを特徴とする、請求項４に記載の編集装置。
【請求項６】
前記第１のストリーム及び前記第２のストリームは映像信号を符号化したストリームであって、前記第１のデータ単位はピクチャであり、前記第２のデータ単位はピクチャを複数に分割したスライスであることを特徴とする、請求項４に記載の編集装置。
【請求項７】
前記第１のストリーム及び前記第２のストリームはＨ．２６４規格に基づくストリームであり、前記パラメータはｉｄｒ＿ｐｉｃ＿ｉｄであることを特徴とする、請求項６に記載の編集装置。
【請求項８】
前記第１のストリーム及び前記第２のストリームはＨ．２６４規格に基づくストリームであり、前記パラメータはｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄであることを特徴とする、請求項６に記載の編集装置。
【請求項９】
前記第１のストリーム及び前記第２のストリームは、映像信号をＨ．２６４規格に基づいて符号化したストリームであって、
前記置換手段は、符号化されたパラメータとして前記第１のストリームに付与された符号語及び符号化されたパラメータとして前記第２のストリームに付与された符号語のいずれとも異なり、かつ長さが等しい符号語が存在しない場合、
前記第１のストリーム及び前記第２のストリームのいずれかにおいて、前記判定手段により置換すべきと判定されたパラメータを含むピクチャに含まれる全てのスライスにおいて、前記置換すべきと判定されたパラメータとして付与された符号語を、その符号語よりもＮビット（Ｎ≦７の自然数）だけ長い符号語で置換し、
前記スライス内に存在するＮ個のｃａｂａｃ＿ａｌｉｇｎｍｅｎｔ＿ｏｎｅ＿ｂｉｔを削除する
ことを特徴とする、請求項６に記載の編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長符号により情報を埋め込む符号方式を用いてエンコードを行う符号化装置、及び符号化装置により生成されたストリームを編集する編集装置に関する。
【背景技術】
【０００２】
可変長符号化（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ、以下、「ＶＬＣ」と称す）は情報源符号化における基礎技術であり、情報源シンボルの発生確率に応じて長さの異なる符号語を割り当てることで情報量を圧縮する。例えば、図２４に示すような符号化規則によれば、０以上の値（ｃｏｄｅＮｕｍ）を１、３、５、．．．ビットの可変長符号語に変換する。なお、同図において、ｘnｘn-1、…、ｘ0のビット列の部分がデータ値（ｃｏｄｅＮｕｍ）によって変更される部分である。例えば、１または２の値（ｃｏｄｅＮｕｍ）を符号化する場合、３ビットの符号語に変換され、７から１４までのいずれかの値を符号化する場合、７ビットの符号語に変換される。このようにＶＬＣでは、符号化対象のデータの値（ｃｏｄｅＮｕｍ）により符号化後の語長が異なる。
【０００３】
ＶＬＣは、ＭＰＥＧに代表される、動画像符号化の分野の規格において採用されている。ＶＬＣの適用対象は、画像の画素ブロックのＤＣＴ係数や動きベクトルのような画像の符号化データのシンタックスと、ヘッダに記述されるシンタックスの２種類に大別される。近年の画像圧縮技術に含まれる符号化ツールの多様化・複雑化に伴って、ヘッダに記述されるシンタックスの種類が増加しており、符号量削減の観点からヘッダに記述されるシンタックスにＶＬＣを適用するものも増加している。
【０００４】
一方、Ｈ．２６４／ＡＶＣ規格（ＩＳＯ／ＩＥＣ１４４９６−１０）（非特許文献１）では、シーケンスパラメータセット（Ｓｅｑｕｅｎｃｅ  ｐａｒａｍｅｔｅｒ  ｓｅｔ、以下、「ＳＰＳ」と称す）、ピクチャパラメータセット（Ｐｉｃｔｕｒｅ  ｐａｒａｍｅｔｅｒ  ｓｅｔ、以下、「ＰＰＳ」と称す）、及びスライスヘッダ（Ｓｌｉｃｅ  ｈｅａｄｅｒ）に含まれる多くのシンタックスでＶＬＣが採用されている。
【０００５】
図２１から図２３に、Ｈ．２６４におけるＳＰＳ、ＰＰＳ、スライスヘッダそれぞれのシンタックスの概要を示す。これらの図において、Ｄｅｓｃｒｉｐｔｏｒがｕｅ（ｖ）又はｓｅ（ｖ）であるものはＶＬＣで符号化されたシンタックスを意味する。ｕｅ（ｖ）は、図２４に示すような、０以上の値（ｃｏｄｅＮｕｍ）を１、３、５、．．．ビットの可変長符号に符号化する方式を示す。ｓｅ（ｖ）は、図２５に示すように、符号付きの値をｃｏｄｅＮｕｍに変換した後に図２４のＶＬＣで符号化するものを示す。
【０００６】
Ｈ．２６４のバイトストリームの構成を、図２６から図２９を用いて説明する。画像の符号化データは、図２８に示すスライスデータ（ｓｌｉｃｅ＿ｄａｔａ）に格納される。スライスとは、ピクチャをｎ個（ｎ≧１）に分割した単位であり、マクロブロックの集合である。スライスデータは、図２７に示すスライスレイヤ（ｓｌｉｃｅ＿ｌａｙｅｒ＿ｗｉｔｈｏｕｔ＿ｐａｒｔｉｔｉｏｎｉｎｇ＿ｒｂｓｐ）において、スライスヘッダと共に符号化される。ＳＰＳ、ＰＰＳ、スライスレイヤは図２６に示すＮＡＬユニット（ｎａｌ＿ｕｎｉｔ）としてパケット化される。ＳＰＳ、ＰＰＳ、スライスレイヤの各ＮＡＬユニットを一つのストリームに多重化する場合、各ＮＡＬユニットを図２９に示すバイトストリームＮＡＬユニット（ｂｙｔｅ＿ｓｔｒｅａｍ＿ｎａｌ＿ｕｎｉｔ：以下「ＢＮＵ」と称す）にパケット化した後、一つのバイトストリームに接続する。
【０００７】
映像編集装置にて、Ｈ．２６４に準拠した複数のバイトストリームを接続する際の処理を図３０を用いて説明する。具体的には図、映像編集装置において、ストリームＡ（１５０）の部分ストリームａ（１５３）と、ストリームＢ（１６０）の部分ストリームｂ（１６３）とを接続し、ストリームＣ（１７０）を作成する処理を説明する。
【０００８】
ストリームＡ（１５０）は、ＳＰＳ１１０のバイトストリームＮＡＬユニット（以下、「ＳＰＳ−ＢＮＵ」と称す）１５１、ＰＰＳ１１１のバイトストリームＮＡＬユニット（以下、「ＰＰＳ−ＢＮＵ」と称す）１５２、接続したいシーンの部分ストリームａ（１５３）を含む。同様に、ストリームＢ（１６０）は、ＳＰＳ−ＢＮＵ１６１、ＰＰＳ−ＢＮＵ１６２、部分ストリームｂ（１６３）を含む。部分ストリームａ（１５３）及び部分ストリームｂ（１６３）はそれぞれ、バイト／ＮＡＬヘッダ（例えば、１０１）、スライスヘッダ（例えば、１２０）及びスライスデータ（例えば、１２１）の組を１つまたは複数含んでいる。
【０００９】
ここで、ストリームＡ（１５０）及びストリームＢ（１６０）は全てＩＤＲ（Ｉｎｓｔａｎｔａｎｅｏｕｓ  Ｄｅｃｏｄｉｎｇ  Ｒｅｆｒｅｓｈ）ピクチャから構成され、ストリームＡ（１５０）及びストリームＢ（１６０）においてＩＤＲピクチャの符号量が全て同一の場合を仮定する。また、ＳＰＳ及びＰＰＳは、バイトストリームの先頭にのみ配置される場合を仮定する。
【００１０】
Ｈ．２６４規格では、ＩＤＲピクチャの識別情報（ＩＤ）としてｉｄｒ＿ｐｉｃ＿ｉｄが規定されている。ｉｄｒ＿ｐｉｃ＿ｉｄは、図２３に示ように、スライスヘッダに含まれ、そこにはＶＬＣで符号化された値が格納される。また、Ｈ．２６４規格では、ストリームの互換性保証のため、隣接するＩＤＲピクチャのｉｄｒ＿ｐｉｃ＿ｉｄは異なる値に設定することが必要となる。
【００１１】
前述の仮定に従えば、部分ストリームａ（１５３）及び部分ストリームｂ（１６３）を接続する処理は、部分ストリームａ（１５３）と部分ストリームｂ（１６３）を連結して新しいバイトストリームＣ（１７０）を作成し、再生及び互換性の保証のため、接続点のピクチャ内の全てのスライスヘッダに含まれるｉｄｒ＿ｐｉｃ＿ｉｄを、隣接するピクチャと異なる値に書き換えることで実現される。すなわち、接続前のストリームＡ（１５０）及びストリームＢ（１６０）単体ではｉｄｒ＿ｐｉｃ＿ｉｄの値は隣接ピクチャ間で異なっていることが保証されているが、ストリームの接続後も、接続点において新たに隣接するピクチャ間でｉｄｒ＿ｐｉｃ＿ｉｄの値が異なることを保証する必要がある。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】ＩＳＯ／ＩＥＣ１４４９６−１０  Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ．
【発明の概要】
【発明が解決しようとする課題】
【００１３】
接続点において新たに隣接するピクチャ間でｉｄｒ＿ｐｉｃ＿ｉｄの値が異なることを保証するために、接続後のストリームにおける接続点直後のストリームにおいて、ｉｄｒ＿ｐｉｃ＿ｉｄの値を書き換える必要がある。
【００１４】
ｉｄｒ＿ｐｉｃ＿ｉｄの値はＶＬＣにより得られる。このため、あるＩＤＲピクチャのｉｄｒ＿ｐｉｃ＿ｉｄの値を、それに隣接するＩＤＲピクチャの値と異なるように書き換える場合、書き換え前後でｉｄｒ＿ｐｉｃ＿ｉｄの符号語の長さが異なる場合がある。この場合、そのｉｄｒ＿ｐｉｃ＿ｉｄ以降のデータを修正する必要が生じるため処理が複雑なものとなる。
【００１５】
例えば図３１のように、記録媒体に記録されたストリームの接続点近傍における隣接するＩＤＲピクチャ間でｉｄｒ＿ｐｉｃ＿ｉｄの値を異ならせるために、アドレス０ｘ８０００２にあるｉｄｒ＿ｐｉｃ＿ｉｄの符号語「０１１」を符号語「００１０１」に書き換える場合を考える。書き換え後の符号語「００１０１」は書き換え前の符号語「０１１」よりも２ビット長いため、この書き換え処理により０ｘ８０００２以降のアドレスに存在するデータを全て２ビットずつシフトする必要が生じる。
【００１６】
上記のようなシフト処理は、複数ビット長のデータを線形アドレスにより管理する全ての記録媒体、つまりメモリに代表される１次記録媒体やハードディスクに代表される２次記録媒体を含む多くの記録媒体において必要となってしまう。
【００１７】
以上説明したように、Ｈ．２６４規格に基づいて符号化された複数のバイトストリームを接続する場合、互換性保証及び再生保証のため記録媒体上でスライスヘッダに含まれるｉｄｒ＿ｐｉｃ＿ｉｄを書き換える必要がある。しかし、異なる符号長の符号語に書き換えざるを得ない場合に、前述のシフト処理が発生し、データ領域の書き換えが発生する。このデータ領域の書き換えは、ＣＰＵの処理能力が限られる場合や記録媒体のアクセス速度があまり高くない場合に処理時間を大きく遅延させるという課題がある。また光ディスクのように書き換え回数を抑えたい記録媒体に対して、必要以上の書き換えを行って記録媒体の寿命を縮めてしまうという課題もある。また、スライスヘッダに含まれるｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを書き換える際にも、同様の課題がある。
【００１８】
本発明は、上記課題を解決すべくなされたものであり、その目的とするところは、例えばＨ．２６４に準拠したバイトストリームの接続時に、必要以上のデータ書き換えを発生させない符号化装置、及び接続時のＣＰＵの処理負荷や記録メディアの書き換え回数を抑制することのできる編集装置を提供することにある。
【課題を解決するための手段】
【００１９】
本発明の編集装置は、可変長符号化されたパラメータを含む第１及び第２のストリームを接続するための編集装置であって、前記第１及び第２のストリームの接続点において新たに隣接する第１のストリームに含まれる符号化された第１のパラメータと第２のストリームに含まれる符号化された第２のパラメータとは異なる値に設定することが必要とされる編集装置である。編集装置は、前記第１のパラメータと、前記第２のパラメータとを比較し、前記第１のパラメータと前記第２のパラメータが同一の値であるかに基づいて前記第１のパラメータ及び前記第２のパラメータのうち少なくともいずれか一方を置換すべきか否かを判定する判定手段と、前記判定手段により置換すべきと判定された場合は、前記第１のパラメータ及び前記第２のパラメータのうち少なくともいずれか一方を、前記第１及び第２のパラメータに付与された符号語と等しい長さを有する他の符号語に置換する置換手段とを備える。
【発明の効果】
【００２０】
本発明の符号化装置によれば、可変長符号化されたパラメータを含むストリーム（例えばＨ．２６４のバイトストリーム）の接続時に、パラメータを変更した場合であっても、パラメータの符号長を変化させないため、不必要なデータ書き換えの発生を抑制できる。
また、本発明の編集装置によれば、ストリームの接続時に、可変長符号化されたパラメータを含むヘッダを書き換える必要がある場合に、書き換えられるヘッダと同じ符号長を持つ符号語を用いて互換性保証が行える場合は、接続部のヘッダの符号語をその符号語で書き換えし、一方、同じ符号長を持つ符号語が存在しない場合、所定のデータ単位でのデータ長が変化しないようヘッダの書き換えが行われる。このため、ヘッダの書き換えにより必要以上のデータ書き換えを発生させることのない符号化装置、及び接続時のＣＰＵの処理負荷や記録メディアの書き換え回数を抑制することができる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１における映像符号化回路の構成図
【図２】実施の形態１におけるｉｄｒ＿ｐｉｃ＿ｉｄの符号化を説明する図
【図３】実施の形態１におけるストリームの接続時の処理を説明する図
【図４】実施の形態１における映像記録装置の例を示す図
【図５】実施の形態１における映像記録装置の内部構成図
【図６】実施の形態２におけるピクチャパラメータセットを記憶・管理するテーブルを示す図
【図７】実施の形態２におけるｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄの符号化を説明する図
【図８】実施の形態２におけるストリームの接続時の処理を説明する図
【図９】実施の形態２におけるストリームの接続時の処理を説明する図
【図１０】実施の形態３における映像編集装置の例を示す図
【図１１】実施の形態３における映像編集装置の内部構成図
【図１２】実施の形態３における映像編集装置のディスプレイ表示例を示す図
【図１３】実施の形態３におけるストリームの接続処理を示すフローチャート
【図１４】実施の形態３におけるＳＰＳ・ＰＰＳの読み込み・生成処理を示すフローチャート
【図１５】実施の形態３におけるＩＤ書き換え処理を示すフローチャート
【図１６】実施の形態３におけるＩＤ書き換え処理を示す図
【図１７】実施の形態３におけるＩＤ書き換え処理を示す図
【図１８】実施の形態３におけるＦＡＴファイルシステムのボリューム構造を示す図
【図１９】実施の形態３におけるＦＡＴファイルシステムのデータ構造を示す図
【図２０】実施の形態３におけるストリームを記録媒体にファイルとして記録する場合の例を示す図記録媒体
【図２１】Ｈ．２６４におけるＳＰＳのシンタックスを示した図
【図２２】Ｈ．２６４におけるＰＰＳのシンタックスを示した図
【図２３】Ｈ．２６４におけるスライスヘッダのシンタックスを示した図
【図２４】Ｄｅｓｃｒｉｐｔｏｒがｕｅ（ｖ）であるものをＶＬＣで符号化するときの符号化規則を示した図
【図２５】Ｄｅｓｃｒｉｐｔｏｒがｓｅ（ｖ）であるものがＶＬＣで符号化するときの符号化規則を示した図
【図２６】Ｈ．２６４におけるＮＡＬユニットの構成を示した図
【図２７】Ｈ．２６４におけるスライスレイヤの構成を示した図
【図２８】Ｈ．２６４におけるスライスデータの構成を示した図
【図２９】Ｈ．２６４におけるバイトストリームＮＡＬユニットの構成を示した図
【図３０】実施の形態１で前提とするバイトストリームの接続処理の概要を示す図
【図３１】従来の装置におけるストリーム修正の説明図
【発明を実施するための形態】
【００２２】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００２３】
（実施の形態１）
１．映像符号化装置の構成
本実施の形態では、ＩＤＲ（Ｉｎｓｔａｎｔａｎｅｏｕｓ  Ｄｅｃｏｄｉｎｇ  Ｒｅｆｒｅｓｈ）ピクチャを用いて符号化された複数のバイトストリームの接続時に、ＩＤＲピクチャの識別情報（ＩＤ）であるｉｄｒ＿ｐｉｃ＿ｉｄに対して異なる符号長の符号語への書き換えが発生しないように、バイトストリームの符号化を制御する映像符号化装置を示す。
【００２４】
図１に、本発明の実施の形態１における映像符号化装置に含まれる映像符号化回路を示す。映像符号化回路７００は、ヘッダ生成・多重化回路７０１、ＤＣＴ回路７１０、逆ＤＣＴ回路７１１、量子化回路７２０、逆量子化回路７２１、量子化ステップ決定回路７３０、エントロピー符号化回路７４０、イントラ予測回路７５０、インター予測回路７６０、動き予測回路７６１、及びデブロックフィルタ回路７７０から構成される。なおＩＤＲピクチャのみの符号化を行う場合は、動き予測回路７６１、インター予測回路７６０は使用されない。
【００２５】
２．映像符号化回路の動作
以下に映像符号化回路７００の動作を説明する。
最初に、フレーム内のデータのみで復号可能となるイントラマクロブロックの符号化について説明する。マクロブロックは通常１６×１６画素のブロックであり、後述するＤＣＴやイントラ予測の単位となるブロックを複数個含む。
【００２６】
入力されたディジタル映像信号７９０に含まれる符号化対象のマクロブロックと、イントラ予測回路７５０で予測された符号化対象のマクロブロックとの間で、画素毎に画素値の差分が計算され、１６×１６画素の差分値のブロックが生成される。
【００２７】
ＤＣＴ回路７１０は、差分値のブロックに対してＤＣＴ処理を実行する。この処理は、通常４×４画素や８×８画素のブロック単位に行われ、周波数成分の変換係数が出力される。変換係数は量子化回路７２０に入力されて量子化される。量子化された変換係数は、エントロピー符号化回路７４０により符号化される。Ｈ．２６４におけるエントロピー符号化には、コンテキスト適応可変長符号化（Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ：ＣＡＶＬＣ）と、コンテキスト適応算術符号化（Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ：ＣＡＢＡＣ）のいずれかを用いる。エントロピー符号化された後の発生符号量は、量子化ステップ決定回路７３０に入力される。量子化ステップ決定回路７３０は、発生符号量が目標符号量に近づくように量子化回路７２０の量子化ステップの値を制御する。さらに、量子化後の係数は逆量子化回路７２１と逆ＤＣＴ回路７１１にて復号され、イントラ予測回路７５０に入力される。イントラ予測回路７５０は、後に符号化される周辺のマクロブロックに対する画素予測値を作成する。
【００２８】
次に、フレーム間予測を用いるインターマクロブロックの符号化について説明する。動き予測回路７６１は、現在符号化しているブロック（動き補償の単位となるブロック）と参照フレームの画素とのマッチング処理を行い、誤差が最小となるようなベクトル値が算出される。動き予測の結果に基づいてインター予測回路７６０が出力した、符号化対象のマクロブロックの画素予測値と、入力したディジタル映像信号７９０における符号化対象のマクロブロックの画素値との差分が計算され、ＤＣＴ回路７１０に入力される。この後の処理は、基本的にイントラマクロブロックの符号化と同様である。インター符号化の場合には、視覚的なブロック歪みの低減のためにデブロックフィルタ回路７７０を用いる場合が多い。
【００２９】
ヘッダ生成・多重化回路７０１はスライスヘッダを生成し、生成したスライスヘッダをエントロピー符号化回路７４０で符号化されたスライスデータに付加し、バイトストリームＮＡＬユニット７９１として出力する。その際、ヘッダ生成・多重化回路７０１はｉｄｒ＿ｐｉｃ＿ｉｄをスライスヘッダに組み込む。
【００３０】
本実施の形態による映像符号化回路７００では、ヘッダ生成・多重化回路７０１は、ピクチャにｉｄｒ＿ｐｉｃ＿ｉｄを付与する際、図２４に示した符号化規則にしたがい符号語を割り当てる。図２４に示す符号化規則では、データ値（ｃｏｄｅＮｕｍ）をいくつかの範囲（グループ）に分けており、各範囲（グループ）内では、符号語の符号長は同一であるが、範囲（グループ）毎に、割り当てる符号語の符号長は異ならせている。例えば、データ値が３〜６の範囲に含まれる符号語の長さは全て５ビットであるが、７〜１４の範囲では、７ビットである。
【００３１】
特に、本実施の形態による映像符号化回路７００（具体的には、ヘッダ生成・多重化回路７０１）は、ｉｄｒ＿ｐｉｃ＿ｉｄを付与する際、複数のｃｏｄｅＮｕｍの範囲のうち、含まれる符号語の数が３個以上存在する範囲を１つ選択し、その選択した範囲に含まれる複数の符号語群の中から１つを選択して、ｉｄｒ＿ｐｉｃ＿ｉｄに割り当てる。例えば、図２４の例では、５ビット以上の符号語を含むｃｏｄｅＮｕｍの範囲、すなわち「００１ｘ1ｘ0」、「０００１ｘ2ｘ1ｘ0」、「００００１ｘ3ｘ2ｘ1ｘ0」、・・・に対応するｃｏｄｅＮｕｍの範囲のうちの１つが選択される。例えば、データ値が３〜６の範囲（００１ｘ1ｘ0）が選択された場合、ｉｄｒ＿ｐｉｃ＿ｉｄの値は、３、４、５、６のいずれかの値に割り当てられる。
【００３２】
図２は、３〜６のｃｏｄｅＮｕｍの範囲を選択してｉｄｒ＿ｐｉｃ＿ｉｄを付与した場合の、ｉｄｒ＿ｐｉｃ＿ｉｄの付与の例を説明した図である。映像符号化回路７００は、ストリームＡ（１５０）及びストリームＢ（１６０）の生成時に、ｉ番目（ｉは０以上の整数）のＩＤＲピクチャのスライスヘッダを生成する際にｉｄｒ＿ｐｉｃ＿ｉｄの値を下記式により求める。
ｉｄｒ＿ｐｉｃ＿ｉｄの値＝３＋（ｉ％３）
ここで、％は剰余を与える演算子である。
【００３３】
Ｈ．２６４規格によれば、ｉｄｒ＿ｐｉｃ＿ｉｄは、隣接するＩＤＲピクチャ間で同一の値を持たないように付与される必要がある。図２４より、ｃｏｄｅＮｕｍが３〜６の場合、ｉｄｒ＿ｐｉｃ＿ｉｄの符号長はいずれも５ビットとなる。よって、同一範囲に含まれる符号語を用いてｉｄｒ＿ｐｉｃ＿ｉｄの値を書き換えても、符号長は変化しない。したがって、このように符号化することで、例えば図２に示す部分ストリームａ（１５３）と部分ストリームｂ（１６３）を接続する際に、図３に示すように、接続点近傍のピクチャ＃ｍ＋３とピクチャ＃ｎのｉｄｒ＿ｐｉｃ＿ｉｄが同一の値（ここでは、３）となる場合でも、容易にｉｄｒ＿ｐｉｃ＿ｉｄの値を別の値に変更することができる。この例では、ピクチャ＃ｍ＋３とピクチャ＃ｎのｉｄｒ＿ｐｉｃ＿ｉｄが共に３となっており、ピクチャ＃ｎ＋１のｉｄｒ＿ｐｉｃ＿ｉｄが４であるため、ピクチャ＃ｎのｉｄｒ＿ｐｉｃ＿ｉｄを５に書き換える。このように、ｉｄｒ＿ｐｉｃ＿ｉｄとして、同一の符号長が３個以上存在するｃｏｄｅＮｕｍの範囲内の値を用いているため、ピクチャ＃ｎのｉｄｒ＿ｐｉｃ＿ｉｄを隣接するピクチャ＃ｍ＋３及びピクチャ＃ｎ＋１のいずれとも異なりかつ符号長が同じ値「５」に書き換えることが可能となる。なお、図２は簡単のため部分ストリームａ（１５３）及び部分ストリームｂ（１６３）の長さを４ピクチャ分ずつにしているが、任意の長さでも書き換えが可能なことは明らかである。
【００３４】
なお、本実施の形態による映像符号化回路７００が符号化する全てのストリームに対して、ｉｄｒ＿ｐｉｃ＿ｉｄに使用するｃｏｄｅＮｕｍの範囲を同一にする必要はない。画像の水平画素数、垂直画素数、ビットレート等のパラメータが同一である場合、もしくは接続が意味のある場合にのみ、同一の範囲を選択すれば良い。例えば高ビットレートと低ビットレートの２種類のビットレートで符号化し、高ビットレートのストリームは素材映像として、低ビットレートのストリームはプレビュー用の映像として用いる場合を考える。この場合低ビットレートのストリームは接続の必要性がないため、低ビットレートの符号化では符号長を最小とするためｉｄｒ＿ｐｉｃ＿ｉｄ＝ｉ％２とし、高ビットレートではｉｄｒ＿ｐｉｃ＿ｉｄ＝３＋（ｉ％３）とすることが考えられる。
【００３５】
３．記録装置
図４に、上記の映像符号化回路７００を搭載する映像記録装置の外観図を示す。映像記録装置６００は、レンズ６９１及びマイク６９２を介して入力された映像及び音声を、本体に内蔵した映像符号化回路７００により符号化し、ドライブ６９０に挿入された記録メディア５００に記録するものである。
【００３６】
図５に映像記録装置６００の内部構成を示す。映像記録装置６００は、レンズ６９１、マイク６９２、撮像素子６８７、ＡＤ変換回路６８８、６８９、音声処理回路６８６、ＣＰＵ６８１、メモリ６８２、不揮発性メモリ６８３、バスコントローラ６８５、及び映像符号化回路７００から構成される。ＣＰＵ６８１は映像記録装置６００全体の制御を行う。不揮発性メモリ６８３はＣＰＵ６８１が実行するためのプログラムを格納する。バスコントローラ６８５は記録メディア５００への入出力を制御する。
【００３７】
外部から入射した映像はレンズ６９１を通して集光され、撮像素子６８７で撮像され電気信号に変換される。ＡＤ変換回路６８８はその電気信号をディジタル映像信号に変換する。映像符号化回路７００は、ディジタル映像信号をＨ．２６４のバイトストリームに符号化し、記録メディア５００に記録する。記録メディア５００に記録されたバイトストリームは、撮影の終了後に映像編集装置（後述）にて編集される。
【００３８】
４．まとめ
以上説明したように、本実施の形態では、編集時に、ＩＤＲピクチャを用いて符号化された複数のバイトストリームの接続を行う際の処理負荷を軽減することのできる映像符号化装置を実現できる。
【００３９】
なお、本実施の形態では、全てのピクチャがＩＤＲピクチャであるとの前提に基づいたが、２つのストリームの接続点で隣接するピクチャが共にＩＤＲピクチャである場合等、前記仮定が成り立たない場合でも適用できることは明らかである。
【００４０】
また、ピクチャの符号量が全て同一の場合、もしくは仮想参照デコーダのバッファ制約が維持できる場合を仮定したが、バッファ制約を維持するために映像編集装置にて以下の操作を行うこともできる。
・部分ストリームａ（１５３）終了後のバッファ占有度（ＶＡ）が接続前の部分ストリームｂ（１６３）開始直前のバッファ占有度（ＶＢ）より大きい場合は、（ＶＡ−ＶＢ）バイトのｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓ（パディングビット）を部分ストリームａ（１５３）終了直後に挿入することでバッファ占有度をＶＢに合わせることができる。
・ＶＡがＶＢより小さい場合は、部分ストリームａ（１５３）の最後の数ピクチャを再エンコードする等して、バッファ占有度をＶＢにすることができる。
以上の方法により、本実施の形態の思想を前述の前提に関わらず適用できる。
【００４１】
また、ＳＰＳ又はＰＰＳがバイトストリームの先頭にのみ配置される場合を仮定したが、ＰＰＳは必ずしも先頭に配置される必要はなく、部分ストリームｂ（１６３）のＳＰＳが部分ストリームａ（１５３）のＳＰＳと共通化されない場合は必ずしも先頭に配置される必要はない。
【００４２】
ｉｄｒ＿ｐｉｃ＿ｉｄを符号化する場合を例にとって説明したが、本発明は、ＳＰＳ、ＰＰＳ、スライスヘッダを含む全てのパラメータにおいて、ＶＬＣで符号化されるシンタックスを符号化する場合に適用できる。また、バイトストリームの存在を前提としたが、ＮＡＬユニットを多重化する態様はこれに限定されるものではない。
【００４３】
（実施の形態２）
本実施の形態では、複数のバイトストリームの接続時に、ＰＰＳ（ピクチャパラメータセット）の識別情報を示すｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄについて書き換えが発生しないように符号化を行う映像符号化装置を示す。本実施の形態は、特に複数のＰＰＳが符号化された、複数のバイトストリームの接続を行う際に有効である。映像符号化装置の基本的な構成は、実施の形態１で説明したものと同じである。
【００４４】
本実施の形態では、ヘッダ生成・多重化回路７０１において、ＰＰＳの内容と、ｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄ（以下「ＰＰＳＩＤ」と称す）との組み合わせを記憶、管理する。具体的には、本実施形態の映像符号化装置により生成されるストリームにおいて符号化される全てのＰＰＳについて、シンタックスが異なる場合は、異なるＰＰＳＩＤが付与されるように符号化が行われる。
【００４５】
図６に、ヘッダ生成・多重化回路７０１においてＰＰＳを記憶・管理するテーブルの例を示す。ＰＰＳのシンタックスの値が異なる場合、異なるＰＰＳＩＤが付与される。図６において、例えば、ＰＰＳＩＤ＝０のＰＰＳのシンタックスにおいてｐｉｃ＿ｉｎｉｔ＿ｑｐ＿ｍｉｎｕｓ２６を１０に変更したＰＰＳを用意する場合、ＰＰＳＩＤ＝１を追加する。同様に、ＰＰＳＩＤ＝０のＰＰＳのシンタックスにおいてｃｈｒｏｍａ＿ｑｐ＿ｉｎｄｅｘ＿ｏｆｆｓｅｔを３としたＰＰＳを用意する場合、ＰＰＳＩＤ＝２を追加する。ＰＰＳＩＤ＝０のＰＰＳに対してｐｉｃ＿ｉｎｉｔ＿ｑｐ＿ｍｉｎｕｓ２６を１０に、ｃｈｒｏｍａ＿ｑｐ＿ｉｎｄｅｘ＿ｏｆｆｓｅｔを３に変更したＰＰＳは、ＰＰＳＩＤ＝０、１、２のいずれとも異なるＰＰＳであるので、ＰＰＳＩＤ＝３を追加する。このように、一意にＰＰＳＩＤが付与されるようにＰＰＳの管理テーブルを更新する。映像符号化装置において、ヘッダ生成・多重化回路７０１は図６に示すようなＰＰＳの管理テーブルを参照することで、重複することなく一意にＰＰＳＩＤを付与することができる。
【００４６】
図７を参照し、ヘッダ生成・多重化回路７０１によるＰＰＳＩＤの付与処理について説明する。ストリームＡ（１５０）の符号化において、ＰＰＳＩＤ＝０、１を持つ２種類のＰＰＳが必要な場合、その２種類のＰＰＳを出力し、各スライスヘッダにおいて参照するＰＰＳＩＤの値を出力する。同様にストリームＢ（１６０）の符号化において、ＰＰＳＩＤ＝０、２、３の３種類のＰＰＳが必要な場合、３種類のＰＰＳを出力し、各スライスヘッダにおいて参照するＰＰＳＩＤの値を出力する。重要な点は、ストリームＡ（１５０）及びストリームＢ（１６０）を通して、ＰＰＳＩＤが一意に定義される点である。
【００４７】
図８に、映像編集装置を用いて、図７で示した部分ストリームａ（１５３）と部分ストリームｂ（１６３）を接続する例を示す。まず、接続後のストリームで必要となるＰＰＳを全て出力する。スライスヘッダのＰＰＳＩＤは、本実施形態の映像符号化装置で符号化する限りは一意になっているので、可変長符号化されているＰＰＳＩＤを書き換えることなく接続することが可能となる。一般にＰＰＳＩＤを異なる長さの符号語に書き換える処理の負荷はストリームの長さに比例して増大するため、ＰＰＳＩＤの書き換えを生じない本発明は非常に有効である。
【００４８】
なお、図７及び図８ではＰＰＳを全てＳＰＳの直後に出力したが、図９のようにＰＰＳＩＤが最初に出現するピクチャの直前に配置することも可能である。また、後述する実施の形態４の説明と同様に、本実施の形態による映像符号化装置が符号化する全てのストリームに対して、図６のようにＰＰＳＩＤを一意とする必要はない。画像の水平画素数、垂直画素数、ビットレート等のパラメータが同一もしくは接続して意味のある場合のみ、一意のＰＰＳＩＤから選択すれば良い。
【００４９】
以上説明したように、本実施の形態では、符号化を行う際に、特に複数のピクチャパラメータセットが符号化された複数のバイトストリームの接続を行う際の処理負荷を軽減できる映像符号化装置を実現できる。
【００５０】
（実施の形態３）
本実施の形態では、ＩＤＲピクチャを用いて符号化された複数のバイトストリームの接続時に、接続点に隣接するＩＤＲピクチャのｉｄｒ＿ｐｉｃ＿ｉｄの値が重複せず、かつ記録媒体上で値を書き換える領域をできる限り小さくするように構成した映像編集装置を示す。
【００５１】
１．映像編集装置の構成
図１０に本実施の形態にかかる映像編集装置の例を示す。映像編集装置５０１はコンピュータ５０２を用いて実現できる。コンピュータ５０２は、映像データが記録された記録メディア５００を装填するための内蔵ドライブ５９０又は外付けドライブ５９１を有する。記録メディア５００は、メモリカード、光ディスク、リムーバブルハードディスク等を含む。また、コンピュータ５０２はネットワークケーブル５９４または無線でネットワークと接続され、映像データの送受信を行っても良い。コンピュータ５０２には、オペレータが映像編集を行うためのディスプレイ５９２及びキーボードマウス等の入力装置５９３が接続される。
【００５２】
映像編集装置５０１の内部構成を図１１に示す。映像編集装置５０１は、ＣＰＵ５８１、メモリ５８２、プログラムやオペレーションシステム（以下「ＯＳ」と称す）を格納するハードディスク５８３、それらを接続する内部バス５８４を含む。ハードディスク５８３はプログラムやオペレーションシステム（以下ＯＳ）を格納する。映像編集装置５０１はさらに、記録メディア５００を接続するためのバスコントローラ５８５、ネットワークを介して映像データを入出力するためのネットワークコントローラ５８８、ディスプレイ５９２を接続するためのグラフィックコントローラ５８７、入力装置５９３を接続するための入力デバイスコントローラ５８６を含む。
【００５３】
記録メディア５００の接続形態としては、例えばＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）がある。ＯＳ及びプログラムは、ハードディスク５８３に格納されており、必要に応じてメモリ５８２にロードされＣＰＵ５８１により実行される。映像編集装置５０１の映像編集機能はＯＳ上で動作するプログラムにより実現される。
【００５４】
映像編集装置５０１のディスプレイ５９２上の表示例を図１２に示す。ディスプレイ５９２には、ビデオ編集のためのタイムライン５７１、オーディオ編集のためのタイムライン５７２、再生映像を表示するためのプレビューウィンドウ５７３、キャプチャされた映像素材の一覧を表示するビンウィンドウ５７４が表示されている。バイトストリームの接続は、入力装置５９３を用いて、ビンウィンドウ５７４上に表示された複数の映像素材データを選択して、ビデオのタイムライン５７１に貼り付け、ファイル出力（レンダリング）することで実施できる。
【００５５】
なお、以下の説明では、図１１におけるメモリ５８２、ハードディスク５８３、記録メディア５００、ネットワークコントローラ５８８を介したネットワークドライブといった記録媒体上に、図３０に示した部分ストリームａ（１５３）、部分ストリームｂ（１６３）が存在している状態を仮定する。そのような記録媒体上で、部分ストリームａ（１５３）と部分ストリームｂ（１６３）を接続したストリームＣ（１７０）を作成する。よってストリームＣ（１７０）の作成は、理想的には記録媒体上の領域管理情報を、部分ストリームａ（１５３）及び部分ストリームｂ（１６３）を連結させるように書き換える操作のみによって実現される。
【００５６】
本実施形態は、ｉｄｒ＿ｐｉｃ＿ｉｄを対象としたＩＤ書き換え処理によって特徴づけられる。ｉｄｒ＿ｐｉｃ＿ｉｄを対象としたＩＤ書き換え処理とは、ＩＤＲピクチャを用いて符号化された複数のバイトストリームを接続する際に、接続点に隣接するピクチャのＩＤ（ｉｄｒ＿ｐｉｃ＿ｉｄ）の値が重複せず、かつ記録媒体上で値を書き換える領域をできる限り小さくするように構成した処理である。
【００５７】
２．ストリーム接続処理
図１３のフローチャートを用いて本実施の形態における映像編集装置によるストリーム接続処理を説明する。
【００５８】
まず、ＳＰＳ・ＰＰＳの読み込み・生成処理を行う（Ｓ１１）。ここでは、図３０のストリームＡ（１５０）のＳＰＳ−ＢＮＵ（１５１）、ストリームＢ（１６０）のＳＰＳ−ＢＮＵ（１６１）を読み込んで、ストリームＣ（１５３）のＳＰＳ−ＢＮＵ（１７１）を生成する。ストリームＣ（１５３）のＳＰＳ−ＢＮＵ（１７１）は、ストリームＡ（１５０）のＳＰＳ−ＢＮＵ（１５１）やストリームＢ（１６０）のＳＰＳ−ＢＮＵ（１６１）と同じにする場合、新たに記憶領域上に作成する必要はない。同様に、ストリームＡ（１５０）のＰＰＳ−ＢＮＵ（１５２）、ストリームＢ（１６０）のＰＰＳ−ＢＮＵ（１６２）を読み込んで、ストリームＣ（１７０）のＰＰＳ−ＢＮＵ（１７２）を生成する。
【００５９】
続いて、部分ストリームａ（１５３）の最終ピクチャのＩＤ（ｉｄ＿Ａｌａｓｔ）の読み込み（Ｓ１２）、部分ストリームｂ（１６３）の１番目のピクチャのＩＤ（ｉｄ＿Ｂ１）の読み込み（Ｓ１３）、部分ストリームｂ（１６３）の２番目のピクチャのＩＤ（ｉｄ＿Ｂ２）の読み込み（Ｓ１４）を行う。
【００６０】
ストリームからＩＤ即ちｉｄｒ＿ｐｉｃ＿ｉｄを取得するには、以下のようにすれば良い。まずストリーム上で図２９のｓｔａｒｔ＿ｃｏｄｅ＿ｐｒｅｆｉｘ＿ｏｎｅ＿３ｂｙｔｅｓをサーチし、図２６のＮＡＬユニットに含まれるｎａｌ＿ｕｎｉｔ＿ｔｙｐｅの値を判別することで、スライスレイヤが含まれるＮＡＬユニットを確定する。スライスレイヤのスライスヘッダを解析することでｉｄｒ＿ｐｉｃ＿ｉｄの値を取得することができる。
【００６１】
次にＩＤ書き換え処理を行う（Ｓ１５）。この処理では、隣接するピクチャのｉｄｒ＿ｐｉｃ＿ｉｄが同じとなる場合、ｉｄｒ＿ｐｉｃ＿ｉｄを書き換える。最後に領域管理情報の更新を行う（Ｓ１６）。本処理では、ＳＰＳ・ＰＰＳ、部分ストリームａ（１５３）、及び部分ストリームｂ（１６３）を一つのストリームに関連づけて終了する。
【００６２】
さらに、ストリームＡ（１５０）内の部分ストリームａ（１５３）以外の部分、ストリームＢ（１６０）の部分ストリームｂ（１６３）以外の部分についても、ＳＰＳ、ＰＰＳを加えてバイトストリームとして成立するように領域管理情報が更新される。
【００６３】
図１４のフローチャートを用いてＳＰＳ・ＰＰＳの読み込み・生成処理（Ｓ１１）の詳細を説明する。
【００６４】
ストリームＡ（１５０）のＳＰＳ（１１０）の読み込み、ストリームＢ（１６０）のＳＰＳの読み込みを行う（Ｓ１１１、Ｓ１１２）。２つのＳＰＳを比較し、それらが共用可能であるか否かを判定する（Ｓ１１３）。この判定は以下のように行う。第一に、２つのＳＰＳが全く同じバイト列の場合、共用可能と判定する。第二に、２つのＳＰＳがｓｅｑ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄのみ異なる場合、共用可能と判定し、いずれかのｓｅｑ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを採用する。それ以外の場合、共用不可能と判定する。共用可能と判定された場合、共通するＳＰＳを出力する（Ｓ１１４）。共用不可能と判定された場合、ストリームＡのＳＰＳ及びストリームＢのＳＰＳを出力する（Ｓ１１９、Ｓ１２０）。
【００６５】
次に、ストリームＡ（１５０）のＰＰＳの読み込み、ストリームＢ（１６０）のＰＰＳの読み込みを行う（Ｓ１１５、Ｓ１１６）。２つのＰＰＳを比較し、共用可能か否かを判定する（Ｓ１１７）。この判定は以下のように行う。第一に、２つのＰＰＳが全く同じバイト列の場合、共用可能と判定する。但し、ステップＳ１１３でＳＰＳのｓｅｑ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄが異なっていた場合は、全く同じバイト列になることはない。第二に、２つのＰＰＳがｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄのみ異なる場合、共用可能と判定し、いずれかのｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを採用する。それ以外の場合、共用不可能と判定する。共用可能と判定された場合、共通のＰＰＳの出力を行う（Ｓ１１８）。共用不可能と判定された場合、ストリームＡのＰＰＳ及びストリームＢのＰＰＳの出力を行う（Ｓ１２１、Ｓ１２２）。
【００６６】
なお、ストリームＡ（１５０）の部分ストリームａ（１５３）以外の部分や、ストリームＢ（１６０）の部分ストリームｂ（１６３）以外の部分も記録媒体上でバイトストリームとして残す場合、最終的に記録媒体上に生じるストリーム数に対応した数のＳＰＳ・ＰＰＳを記録メディア５００等に出力する必要がある。
【００６７】
図１５のフローチャートを用いてＩＤ書き換え処理（Ｓ１５）の詳細を説明する。
【００６８】
ＣＰＵ５８１により、部分ストリームｂの１番目のピクチャのＩＤ（ｉｄ＿Ｂ１）と部分ストリームａの最終ピクチャのＩＤ（ｉｄ＿Ａｌａｓｔ）を比較し、ＩＤが重複しているか（同じ値か）否かを判定する（Ｓ１５１）。ＩＤが重複していない場合、ＩＤ書き換え処理を終了し、ＩＤが重複している場合、以下の処理を行う。
【００６９】
ｉｄ＿Ｂ１と符号長が同じでかつｉｄ＿Ａｌａｓｔ及びｉｄ＿Ｂ２と重複しないＩＤが存在するかを判定する（Ｓ１５２）。例えば、図２４に示すＶＬＣを用いる場合、ｉｄ＿Ａｌａｓｔ＝７、ｉｄ＿Ｂ１＝７、ｉｄ＿Ｂ２＝１０の場合、ｉｄ＿Ｂ１と符号長が同じでかつｉｄ＿Ａｌａｓｔ及びｉｄ＿Ｂ２と重複しないＩＤ（符号語）として、８、９、１１、１２、１３、１４が存在する。該当するＩＤが存在する場合は、ｉｄ＿Ｂ１を該当のＩＤで書き換える（Ｓ１５７）。存在しない場合、例えばｉｄ＿Ａｌａｓｔ＝１、ｉｄ＿Ｂ１＝１、ｉｄ＿Ｂ２＝２のような場合は、スライスヘッダの長さが変更されることを許容する。すなわち、この場合は、ｉｄ＿Ａｌａｓｔやｉｄ＿Ｂ１とは異なるｃｏｄｅＮｕｍの範囲に含まれる符号語が新たにｉｄ＿Ｂ１に割り当てられる。
【００７０】
次にｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｍｏｄｅ＿ｆｌａｇ＝１かつ、部分ストリームｂ（１６３）の１番目のピクチャに含まれる全てのスライスでｃａｂａｃ＿ａｌｉｇｎｍｅｎｔ＿ｏｎｅ＿ｂｉｔ≧１かを判定する（Ｓ１５３）。コンテキスト適応算術符号化（ＣＡＢＡＣ）で符号化されている場合（ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｍｏｄｅ＿ｆｌａｇ＝１）、スライスヘッダの終了点がバイトアライメントされていなければ、スライスデータの先頭に図２８に示したｃａｂａｃ＿ａｌｉｇｎｍｅｎｔ＿ｚｅｒｏ＿ｂｉｔが１ビット以上存在する。部分ストリームｂ（１６３）の１番目のピクチャに含まれる全てのスライスでｃａｂａｃ＿ａｌｉｇｎｍｅｎｔ＿ｏｎｅ＿ｂｉｔ≧１であれば、ｃａｂａｃ＿ａｌｉｇｎｍｅｎｔ＿ｏｎｅ＿ｂｉｔを１ビット削減することで、データ量の多いスライスデータをシフトせずにｉｄ＿Ｂ１を、今の符号長よりも１ビットだけ長い符号語で置き換えることが可能である。
【００７１】
図１６に示すように、ｉｄ＿Ｂ１を、（現在のｉｄ＿Ｂ１の符号長＋１ビット）のサイズのＩＤで書き換え（Ｓ１５８）、さらに、ｃａｂａｃ＿ａｌｉｇｎｍｅｎｔ＿ｏｎｅ＿ｂｉｔの直前までのスライスヘッダ１２０を１ビットシフトする（Ｓ１５９）。（現在の符号長＋１ビット）のサイズのＩＤには、必ずｉｄ＿Ａｌａｓｔ及びｉｄ＿Ｂ２と重複しないＩＤが含まれる。この場合、１つのｃａｂａｃ＿ａｌｉｇｎｍｅｎｔ＿ｏｎｅ＿ｂｉｔが削除される。なお、ステップＳ１５８において、ｉｄ＿Ｂ１を、現在の符号語よりもＮビット（Ｎ≦７の自然数）だけ長い符号語で置換してもよい。このときは、スライス内に存在するＮ個のｃａｂａｃ＿ａｌｉｇｎｍｅｎｔ＿ｏｎｅ＿ｂｉｔが削除される。
【００７２】
ステップＳ１５３の条件が成立しない場合、ピクチャ内のｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓの数がピクチャ内のスライス数以上かを判定する（Ｓ１５４）。ｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓは、図２９に示したＮＡＬユニット（ｎａｌ＿ｕｎｉｔ）の終了後に配置されるため、各スライスレイヤの末尾に０個以上存在する。図１７に示すように、部分ストリームｂ（１６３）の１番目のピクチャ内のｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓの数がピクチャ内のスライスの数以上の場合、ｉｄ＿Ｂ１を（現在のｉｄ＿Ｂ１の符号長＋８ビット）のサイズのＩＤで書き換えるとともに（Ｓ１６０）、ｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓまでのスライスレイヤのデータを８ビット（＝１バイト）シフトする（Ｓ１６１）。図１７の例では、スライス＃１直後のｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓを１個減らせば、スライス＃１全体の符号長は変わらない。
【００７３】
スライス＃１から＃３のようにスライスレイヤの直後にｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓが存在しない場合でも、スライス＃１を１バイト、スライス＃２を２バイト、スライス＃３を３バイト、スライス＃４を４バイトシフトし、スライス＃４直後のｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓを４個減らせば良い。この処理ではピクチャの符号長は変わらないため、以降のピクチャに影響を及ぼすことはない。
【００７４】
図１５において、ピクチャ内のｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓの数がピクチャ内のスライス数より小さい場合は、ピクチャの符号長が増加する。ステップＳ１５４において、ｉｄ＿Ｂ１を（ｉｄ＿Ｂ１の符号長＋８ビット）のサイズのＩＤで書き換えたが、符号長はこの長さに限るものではない。符号語のサイズを（ｉｄ＿Ｂ１の符号長＋８ビット）とした理由は、スライスレイヤのデータをバイト単位でシフトすれば良いため、処理がより簡単になることによる。ステップＳ１５５において増加した符号長の分だけ、シフト処理を行う（Ｓ１５６）。この処理は、ｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓを用いて符号長が増加した分を吸収できるまで、もしくは部分ストリームｂ（１６３）の終端まで続けられる。例えば、符号語の増加分は、８ビット（＝１バイト）の整数倍に設定してもよい。
【００７５】
領域管理情報の更新処理（Ｓ１６）の具体例を、クラスタ管理情報を例にとって説明する。
【００７６】
クラスタ管理情報とは、ＦＡＴファイルシステムにおけるファイルアロケーションテーブル（ＦＡＴ）のように、各ファイルを構成するディスク上のデータが格納されるクラスタのリンク情報を記録したものである。ここで、クラスタとは、ファイル（ストリーム）が記録されている領域を管理する際に使用されるアクセス単位である。１つのファイル（ストリーム）の記録領域はクラスタの集合で表わされる。図１８にＦＡＴファイルシステムのボリューム構造を示す。同図は、記録メディア５００等の物理ドライブ８００内に設定された論理ドライブ８０１を、ＦＡＴファイルシステムでフォーマットした時の領域構造を示している。ファイルアロケーションテーブル８０４は、図１９のようにクラスタ番号１４３のテーブルであり、ユーザデータ領域８０６に記録されたクラスタ単位の部分データ１４４の連結関係を示すものである。図１９の例では、クラスタ番号３、４、７が一つのファイル１４５であることを示している。
【００７７】
ＩＤ（パラメータ）が書き換えられた場合、そのＩＤを含むクラスタのみ情報が書き換えられる。そして、本実施の形態の領域管理情報の更新処理（Ｓ１６）においては、ＳＰＳ、ＰＰＳ、部分ストリームａ（１５３）及び部分ストリームｂ（１６３）のそれぞれの記録領域に対応するクラスタ間の連結関係をファイルアロケーションテーブル８０４上で変更することによって、ＳＰＳ、ＰＰＳ、部分ストリームａ（１５３）及び部分ストリームｂ（１６３）を１つのファイルに接続することが可能となる。
【００７８】
本実施の形態において使用するストリームを、映像符号化装置によりハードディスクや光ディスク等の記録媒体にファイルとして記録する場合の例について、図２０を用いて説明する。
【００７９】
図２０のように、ストリームＡ（１５０）及びストリームＢ（１６０）は、記録メディア５００等の記録媒体に、各ピクチャデータの先頭がファイルシステムの記録単位であるクラスタ１４１の先頭にアライメントされて記録されている。本実施の形態は、このように部分ストリームａ（１５３）の末端と部分ストリームｂ（１６３）の先頭がアライメントされて記録される場合に、接続後のストリームを書き換える必要がないため特に有効となる。映像符号化装置による符号化時に、各ピクチャデータの末尾がクラスタ境界１４２に合わない場合は、無効領域であるスタッフィングバイト（ｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓ）１３１を用いてスタッフィングされる。記録された部分ストリームａ（１５３）と、部分ストリームｂ（１６３）を本実施の形態で前述した方法に従い接続する。なお、クラスタ１４１にアライメントされる単位は、ピクチャ以外にもスライスやＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）等、ストリームを接続する可能性のある単位を用いることができる。なお、図２０では１ピクチャに含まれるスライス数を２個としているが、任意のスライス数に適用できることは明らかである。ピクチャの先頭がクラスタ境界になる前提で説明したが、ＧＯＰ等、ストリームの編集単位の先頭がクラスタ境界である場合にも適用できる。さらには部分ストリームａ（１５３）及び部分ストリームｂ（１６３）の接続点がクラスタ境界である場合にも適用できる。
【００８０】
３．まとめ
以上説明したように、本実施の形態では、可変長符号化されたパラメータ（ｉｄｒ＿ｐｉｃ＿ｉｄ）を含むストリーム（例えばＨ．２６４のバイトストリーム）の接続時に、パラメータに対する可変長符号語として、同じ符号長を持つ符号語を用いて互換性保証が行える場合、接続部のヘッダの符号語を当該符号語で書き換え、さらに同じ符号長を持つ符号語が存在しない場合にも、データの書き換えに要する処理負荷をできる限り抑制するよう、パラメータを書き換える。これにより、ＩＤＲピクチャを用いて符号化された複数のバイトストリームを接続する際に、隣接するピクチャのｉｄｒ＿ｐｉｃ＿ｉｄの値が重複せず、かつ記録媒体上で値を書き換える領域をできる限り小さくするように構成した映像編集装置を実現できる。ここで値を書き換える領域ができる限り小さくできるのは次の理由からである。
１）ｉｄ＿Ｂ１を等長の符号語で書き換え可能な場合（Ｓ１５７）は、当該ピクチャに含まれる全てのスライスのｉｄｒ＿ｐｉｃ＿ｉｄのみを書き換えれば良い。
２）等長の符号語が存在しない場合（Ｓ１５８）は、ｃａｂａｃ＿ａｌｉｇｎｍｅｎｔ＿ｏｎｅ＿ｂｉｔを利用することでデータ量の大きいスライスデータを書き換える必要がない。
３）スライスデータの書き換えが必要な場合（Ｓ１５５）にも、ｉｄ＿Ｂ１を８ビットシフトすることでスライスデータをバイト単位のシフトで済ませることができる。
【００８１】
本実施の形態では、部分ストリームｂ（１６３）の先頭ピクチャのＩＤを書き換える場合を示したが、部分ストリームａ（１５３）の最終ピクチャのＩＤを書き換える場合も同様の手順で実施できることは明らかである。特に、部分ストリームａ（１５３）を用いた方がＩＤ書き換え処理（Ｓ１５）の負荷が軽くなる場合、部分ストリームａ（１５３）の最終ピクチャのＩＤを書き換える方が望ましい。ｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓを用いる例を説明したが、ｔｒａｉｌｉｎｇ＿ｚｅｒｏ＿８ｂｉｔｓの代わりにｃａｂａｃ＿ｚｅｒｏ＿ｗｏｒｄを用いたり、ＮＡＬユニットを包含するシステムストリームの無効データを用いたりしても良い。また、Ｈ．２６４規格でのストリームの接続処理を例にとって説明したが、可変長符号化されたシンタックスを書き換える映像編集装置に適用できる。映像編集装置として、図１１のようにＣＰＵ５８１及びメモリ５８２を用いた装置及び前記装置上で動作するＯＳ及びプログラムを仮定したが、本実施の形態で説明した接続処理を行う手段は前記に限定されないことは言うまでもない。
【００８２】
（実施の形態４）
本実施の形態では、実施の形態３の映像編集装置において、複数のバイトストリームを接続する際に、ｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄの値を正しく書き換え、かつ記録媒体上で値を書き換える領域を出来る限り小さくするように構成した映像編集装置を示す。本実施の形態の映像編集装置の動作は基本的に実施の形態３における図１３から図１５のフローチャートで示したとおりである。但し、図１３から図１５において、ｉｄｒ＿ｐｉｃ＿ｉｄを、ｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄに読み替える。
【００８３】
本実施の形態が適用される顕著な例は、ピクチャ固有のパラメータを記述するＰＰＳが部分ストリームａ（１５３）と部分ストリームｂ（１６３）で異なり、かつ同じｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを使用している場合である。この場合、図１４のＳＰＳ・ＰＰＳの読み込み・生成処理Ｓ１１におけるステップＳ１１７でＰＰＳは共用可能でないと判定され、ステップＳ１２２において、ストリームＢのＰＰＳに対してｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを変更したＰＰＳを出力する。ＰＰＳのｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄが変更されたため、部分ストリームｂ（１６３）の全ピクチャにおいてスライスヘッダが参照するｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを変更する必要がある。この部分ストリームｂ（１６３）の全スライスにおいて可変長符号であるｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄを変更する処理は、異なる値の等長な符号語への置き換えが不可能な場合にストリーム全体のシフト処理を引き起こす可能性がある。本発明はこのシフト処理を最小限にできるため、極めて有効となる。
【００８４】
以上説明したように、本実施の形態では複数のバイトストリームを接続する際に、ｐｉｃ＿ｐａｒａｍｅｔｅｒ＿ｓｅｔ＿ｉｄの値を正しく書き換え、かつ記録媒体上で値を書き換える領域をできる限り小さくするように構成した映像編集装置を実現できる。
【産業上の利用可能性】
【００８５】
本発明は、カメラレコーダや録画装置などに用いる映像符号化装置、及びカメラレコーダや録画装置などで記録した映像を編集するための映像編集装置に適用可能である。
【符号の説明】
【００８６】
１０１  バイト／ＮＡＬヘッダ
１１０  シーケンスパラメータセット
１１１  ピクチャパラメータセット
１２０  スライスヘッダ
１２１  スライスデータ
１４１  クラスタ
２００  ＩＤ書き換え処理
２２０  ＳＰＳ・ＰＰＳの読み込み・生成処理
５００  記録メディア
５０１  映像編集装置
６００  映像記録装置
７００  映像符号化回路
７０１  ヘッダ生成・多重化回路
８０４  ファイルアロケーションテーブル
【図１】
0005414736.tif 000002
【図２】
0005414736.tif 000003
【図３】
0005414736.tif 000004
【図４】
0005414736.tif 000005
【図５】
0005414736.tif 000006
【図６】
0005414736.tif 000007
【図７】
0005414736.tif 000008
【図８】
0005414736.tif 000009
【図９】
0005414736.tif 000010
【図１０】
0005414736.tif 000011
【図１１】
0005414736.tif 000012
【図１２】
0005414736.tif 000013
【図１３】
0005414736.tif 000014
【図１４】
0005414736.tif 000015
【図１５】
0005414736.tif 000016
【図１６】
0005414736.tif 000017
【図１７】
0005414736.tif 000018
【図１８】
0005414736.tif 000019
【図１９】
0005414736.tif 000020
【図２０】
0005414736.tif 000021
【図２１】
0005414736.tif 000022
【図２２】
0005414736.tif 000023
【図２３】
0005414736.tif 000024
【図２４】
0005414736.tif 000025
【図２５】
0005414736.tif 000026
【図２６】
0005414736.tif 000027
【図２７】
0005414736.tif 000028
【図２８】
0005414736.tif 000029
【図２９】
0005414736.tif 000030
【図３０】
0005414736.tif 000031
【図３１】
0005414736.tif 000032