(57)【特許請求の範囲】
【請求項１】
ＪＰＥＧ２０００の符号又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する符号処理装置であって、
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従って前記符号中のパケットを配列する手段を有することを特徴とする符号処理装置。
【請求項２】
前記選択されたプログレッションオーダを特定する情報を、前記符号中のＣＯＭマーカセグメントに記録する手段を有することを特徴する請求項１記載の符号処理装置。
【請求項３】
前記選択されたプログレッションオーダを特定する情報を、前記符号中のＣＯＤマーカセグメントに記録する手段を有することを特徴する請求項１記載の符号処理装置。
【請求項４】
前記選択されたプログレッションオーダを特定する情報を、前記符号中のＣＯＭマーカセグメント及びＣＯＤマーカセグメントに分散して記録する手段を有することを特徴する請求項１記載の符号処理装置。
【請求項５】
ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する符号処理装置であって、
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従って前記符号中のパケットを配列する手段と、
前記選択されたプログレッションオーダを特定する情報を、前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録する手段と、を有することを特徴とする符号処理装置。
【請求項６】
ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する符号処理装置であって、
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従って前記符号中のパケットを配列する手段と、
前記選択されたプログレッションオーダを特定する情報を、前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘと前記符号中のＣＯＤマーカセグメントとに分散して記録する手段と、を有することを特徴とする符号処理装置。
【請求項７】
前記選択されたプログレッションオーダを特定する情報を、前記符号又は前記ファイルと関連付けて外部データベースに記録する手段を有することを特徴とする請求項１記載の符号処理装置。
【請求項８】
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを処理する符号処理装置であって、
前記符号中のパケットのプログレッションオーダに対応したｆｏｒループを構成する手段と、
前記構成する手段により構成されたｆｏｒループにより前記符号から所要のパケットを選択する手段と、を有することを特徴とする符号処理装置。
【請求項９】
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを処理する符号処理装置であって、
前記符号中のＣＯＭマーカセグメントとＣＯＤマーカセグメントのいずれか一方又は両方に記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する手段と、
前記検知する手段により検知されたプログレッションオーダに対応したｆｏｒループを構成する手段と、
前記構成する手段により構成されたｆｏｒループにより前記符号から所要のパケットを選択する手段と、を有することを特徴とする符号処理装置。
【請求項１０】
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを処理する符号処理装置であって、
前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘ、あるいは、前記符号中のＣＯＤマーカセグメントと前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する手段と、
前記検知する手段により検知されたプログレッションオーダに対応したｆｏｒループを構成する手段と、
前記構成する手段により構成されたｆｏｒループにより前記符号から所要のパケットを選択する手段と、を有することを特徴とする符号処理装置。
【請求項１１】
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを処理する符号処理装置であって、
前記符号又は前記ファイルに関連付けられて外部データベースに記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する手段と、
前記検知する手段により検知されたプログレッションオーダに対応したｆｏｒループを構成する手段と、
前記構成する手段により構成されたｆｏｒループにより前記符号から所要のパケットを選択する手段と、を有することを特徴とする符号処理装置。
【請求項１２】
前記選択する手段により選択されたパケットを外部装置へ送信する手段を有することを特徴とする請求項７，８，９，１０又は１１記載の符号処理装置。
【請求項１３】
前記選択する手段により選択されたパケットからタイルパートを生成する手段と、
前記生成する手段により生成されたタイルパートを外部装置へ送信する手段を有することを特徴とする請求項７，８，９，１０又は１１記載の符号処理装置。
【請求項１４】
ＪＰＥＧ２０００の符号又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、
コンピュータに、
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、
前記選択されたプログレッションオーダを特定する情報をメモリ上の前記符号中のＣＯＭマーカセグメント又はＣＯＤマーカセグメントに記録する工程とを実行させることを特徴するプログラム。
【請求項１５】
ＪＰＥＧ２０００の符号又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、
コンピュータに、
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、
前記選択されたプログレッションオーダを特定する情報をメモリ上の前記符号中のＣＯＭマーカセグメントとＣＯＤマーカセグメントに分散して記録する工程とを実行させることを特徴するプログラム。
【請求項１６】
ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、
コンピュータに、
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、
前記選択されたプログレッションオーダを特定する情報をメモリ上の前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録する工程とを実行させることを特徴とするプログラム。
【請求項１７】
ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、
コンピュータに、
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、
前記選択されたプログレッションオーダを特定する情報を、メモリ上の前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘと前記符号中のＣＯＤマーカセグメントとに分散して記録する工程とを実行させることを特徴とするプログラム。
【請求項１８】
ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、
コンピュータに、
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、
前記選択されたプログレションオーダを特定する情報を前記符号又は前記ファイルと関連付けて外部データベースに記録する工程とを実行させることを特徴とするプログラム。
【請求項１９】
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルに対する処理をコンピュータに行わせるプログラムであって、
コンピュータに、
メモリ上の前記符号中のＣＯＭマーカセグメントとＣＯＤマーカセグメントの一方又は両方に記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、メモリ上の前記符号中のパケットのプログレッションオーダを検知する工程と、
前記検知する工程により検知されたプログレッションオーダに対応したｆｏｒループを構成する工程と、
前記構成する工程により構成されたｆｏｒループによりメモリ上の前記符号から所要のパケットを選択する工程とを実行させることを特徴とするプログラム。
【請求項２０】
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルに対する処理をコンピュータに行わせるプログラムであって、
コンピュータに、
メモリ上の前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘ、あるいは、メモリ上の前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘと前記符号中のＣＯＤマーカセグメントとに記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する工程と、
前記検知する工程により検知されたプログレッションオーダに対応したｆｏｒループを構成する工程と、
前記構成する工程により構成されたｆｏｒループによりメモリ上の前記符号から所要のパケットを選択する工程とを実行させることを特徴とするプログラム。
【請求項２１】
プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルに対する処理をコンピュータに行わせるプログラムであって、
コンピュータに、
前記符号又は前記ファイルに関連付けられて外部データベースに記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する工程と、
前記検知する工程により検知されたプログレッションオーダに対応したｆｏｒループを構成する工程と、
前記構成する工程により構成されたｆｏｒループによりメモリ上の前記符号から所要のパケットを選択する工程とを実行させることを特徴とするプログラム。
【請求項２２】
前記選択する工程により選択されたパケットを外部装置へ送信する工程をコンピュータに実行させることを特徴とする請求項１８，１９，２０又は２１記載のプログラム。
【請求項２３】
前記選択する工程により選択されたパケットからタイルパートをメモリ上に生成する工程と、
前記生成する工程により生成されたタイルパートを外部装置へ送信する工程と、
をコンピュータに実行させることを特徴とする請求項１８，１９，２０又は２１記載のプログラム。
【請求項２４】
請求項１４乃至２３のいずれか１項記載のプログラムが記録された、コンピュータが読み取り可能な情報記録媒体。
【請求項２５】
ＪＰＥＧ２０００の符号又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルが記録された、コンピュータが読み取り可能な情報記録媒体であって、
前記符号中のパケットが、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従って配列されており、
前記選択されたプログレッションオーダを特定する情報が、前記符号中のＣＯＭマーカセグメントに記録され、あるいは、前記符号中のＣＯＭマーカセグメントとＣＯＤマーカセグメントとに分散して記録され、あるいは、前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録され、あるいは、前記符号中のＣＯＤマーカセグメントと前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘとに分散して記録されている、
ことを特徴とする情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＪＰＥＧ２０００の符号又はそれを含むＪＰＥＧ２０００ファミリーフォーマットのファイルの生成と処理に関する。本発明はＪＰＩＰサーバ等に好適に応用できるものである。
【背景技術】
【０００２】
近年、画像圧縮の分野において、ＪＰＥＧ（Joint  Photographic  Coding  Experts  Group）で採用されたＤＣＴ（離散コサイン変換）に代わる周波数変換として、ウェーブレット変換の採用が増加している。その代表例は、２００１年に国際標準になったＪＰＥＧ２０００である。
【０００３】
ＪＰＥＧ２０００の符号化処理は概ね図１のブロック図に示す流れで行われる。画像は矩形のタイルに分割され(分割数≧１)、タイル毎に処理される。
【０００４】
まず、各タイルは、輝度・色差等のコンポ−ネントへ色変換される（ブロック１）。ＲＢＧデータのような正数で表されるデータの場合、ダイナミックレンジの半分を減じるＤＣレベルシフトも施される。変換後のコンポ−ネント（タイルコンポ−ネントと呼ばれる）はウェーブレット変換を適用されてサブバンドに分割される（ブロック２）。１回のウェーブレット変換（デコンポジション）によってLL，HL，LH，HHと略称される４つのサブバンドに分割される。そして、LLサブバンドに対して再帰的にウェーブレット変換を繰返すと、最終的に１つのLLサブバンドと複数のHL，LH，HHサブバンドが生成される。
【０００５】
３回のウェーブレット変換（デコンポジション）を行った場合のサブバンドを図３に示す。図３中の各サブバンド名の接頭の数字（例えば”３ＬＬ”の”３”）は、デコンポジションレベル（施されたウェーブレット変換の回数）を示す。また、後の説明のため、デコンポジションレベルと解像度レベルの関係を図３に示した。
【０００６】
９×７変換と呼ばれる非可逆ウェーブレット変換が用いられる場合には、ウェーブレット係数は、サブバンド毎に線形量子化（正規化を含む）を施され（ブロック３）、次にエントロピー符号化される（ブロッ４）。このエントロピー符号化では、各サブバンドはプリシンクトとよばれる矩形に分割される。プリシンクトとは、サブバンドを矩形に分割したもので、ＨＬ，ＬＨ，ＨＨの３つのサブバンドの対応したプリシンクトは３つで１まとまりとして扱われる。ただし、ＬＬサブバンドを分割したプリシンクトは１つで１まとまりとして扱われる。プリシンクトは、大まかには画像中の場所（Position）を表すものである。プリシンクトはサブバンドと同じサイズにできる。プリシンクトをさらに矩形に分割したものがコードブロックである。図２にタイル、サブバンド、プリシンクト、コードブロックの関係を示す。よって、物理的な大きさの序列は、画像≧タイル＞サブバンド≧プリシンクト≧コードブロックとなる。以上の分割の後、係数のエントロピー符号化（ビットプレーン符号化）が、コードブロック毎かつビットプレーン順に行われる。
【０００７】
次に必要なエントロピー符号をまとめてパケットを生成する（ブロック５）。パケットとは、プリシンクトに含まれる全てのコードブロックから、ビットプレーンの符号の一部（例えば全てのコードブロックのＭＳＢから３枚目までのビットプレーンの符号）を集めたものにヘッダ（パケットヘッダ）をつけたものである。上記”一部”は”空”（から）でもよいので、パケットの中身が符号的には”空)”ということもある。パケットヘッダには、当該パケットに含まれる符号に関する情報が含まれる。各パケットは独立に扱うことができる。いわばパケットは符号の単位である。
【０００８】
そして、全てのプリシンクト（＝全てのコードブロック＝全てのサブバンド）のパケットを集めると、画像全域の符号の一部（例えば、画像全域のウェーブレット係数の、ＭＳＢから３枚目までのビットプレーンの符号）ができるが、これをレイヤと呼ぶ。レイヤは、大まかには画像全体のビットプレーンの符号の一部であるから、復号されるレイヤ数が増えれば画質は上がることになる。すなわち、レイヤは画質の単位である。すべてのレイヤを集めると、画像全域の全てのビットプレーンの符号になる。
【０００９】
デコンポジションレベル数＝２、プリシンクトサイズ＝サブバンドサイズ、としたときのレイヤの例を図４の上段に示す。いくつかのレイヤに含まれるパケットを図４の下段に太枠で囲んで示す。
【００１０】
以上のようにして生成されたパケットやレイヤの区切りに従って、パケットを配列するとともに必要なタグやタグ情報を付加することにより、最終的なＪＰＥＧ２０００の符号（コードストリーム）が形成される（ブロック６）。
【００１１】
以上の説明から理解されるように、パケットは
・どのコンポ−ネント（記号Ｃ）に属するか、
・どの解像度レベル（記号Ｒ）に属するか、
・どのプリシンクト（“場所”，記号Ｐ）に属するか、
・どのレイヤ（記号Ｌ）に属するか、
という４つの属性（本願では、これら属性を”プログレッション属性”と呼ぶ）を有する。パケットの先頭にはパケットヘッダがあり、その後にＭＱ符号（パケットデータ）が続いているが、パケットヘッダには上記属性そのものは記述されていない。
【００１２】
パケットの配列とは、パケット（パケットヘッダおよびパケットデータ）を、どの属性の順に階層的に並べるかを意味する。この配列順をプログレッションオーダと呼び、図５に示す５通りが規定されている。
【００１３】
ここで、エンコーダがプログレッションオーダの順にパケットを並べる様子と、デコーダがプログレッションオーダの順にパケットの属性を解釈する様子を以下に示す。
【００１４】
例えば、ＬＲＣＰプログレッションオーダの場合、次のようなｆｏｒループ
for(レイヤ)｛
for(解像度)｛
for(コンポ−ネント)｛
for(プリシンクト)｛
エンコード時：パケットを配置
デコード時：パケットの属性を解釈
｝
｝
｝
｝
により、パケットの配列（エンコード時）又は解釈（デコード時）がなされる。
【００１５】
各パケットのパケットヘッダには、
・そのパケットが空かどうか、
・そのパケットにどのコードブロックが含まれるか、
・そのパケットに含まれる各コードブロックのゼロビットプレーン数、
・そのパケットに含まれる各コードブロック符号のコーディングパス数（ビットプレーン数）、
・そのパケットに含まれる各コードブロックの符号長、
が記載されている。しかし、レイヤ番号や解像度レベル等はパケットヘッダには一切記載されていない。デコード時に、そのパケットがどのレイヤのどの解像度レベルのものかを判別するには、メインヘッダ中のＣＯＤマーカセグメント（図１７，図１８参照）等に記載されたプログレッションオーダから上記のようなｆｏｒループを構成し、そのパケットに含まれる各コードブロックの符号長の和からパケットの切れ目を判別し、各パケットがｆｏｒループ内のどの位置でハンドリングされたかを見ればよい。これは、パケットヘッダ中の符号長さえ読み出せば、パケットデータ（エントロピー符号）をデコードしなくとも、次のパケットを検出できること、すなわち任意のパケットにアクセス可能であることを意味する。
【００１６】
なお、本願においては、上記のようなｆｏｒループのネストの一番外側を”プログレッションオーダの最外殻”と呼ぶ。
【００１７】
図６は、ＬＲＣＰプログレッションオーダの符号の様な、レイヤ（Ｌ）がプログレッションオーダの最外殻に位置するレイヤプログレッシブ符号の概念図である。ただし、タイルパート（後述）の数は１としている。
【００１８】
図７に、画像サイズ＝１００×１００画素、タイル分割無し（１タイル）、２レイヤ、解像度レベル数＝３（０〜２）、３コンポ−ネント（０〜２）、プリシンクトサイズ＝３２×３２、ＬＲＣＰプログレッションオーダの場合における３６個のパケットの配列例を示す。ただし、タイルパート（後述）の数は１としている。
【００１９】
図８は、ＲＬＣＰプログレッションオーダの符号の様な、解像度レベルがプログレッションオーダの最外殻に位置する解像度プログレッシブ符号の概念図である。ただし、タイルパート数は１としている。
【００２０】
図９に、画像サイズ＝１００×１００画素、タイル分割無し（１タイル）、２レイヤ、解像度レベル数＝３（０〜２）、３コンポ−ネント（０〜２）、プリシンクトサイズ＝３２×３２、ＲＬＣＰプログレッションオーダの場合における３６個のパケットの配列例を示す。ただし、タイルパート（後述）の数は１としている。
【００２１】
さて、各タイルを構成する符号を、パケットの切れ目でさらに複数の部分に分割することができ、分割した部分をタイルパートと呼ぶ。なお、先に言及したように、図７と図９はタイルパート数＝１の場合である。
【００２２】
各タイルパートは、パケットのほかに、ＳＯＴ（start  of  tile-part）マーカセグメントで始まりＳＯＤ（start  of  data）マーカで終わるヘッダを有し、このヘッダをタイルパートヘッダと呼ぶ（図６，図８参照）。
【００２３】
図１０にＳＯＴマーカセグメントの構成を示す。なお、マーカ（この例ではＳＯＴマーカ）とそれに関連したパラメータから構成されるものをマーカセグメントと呼ぶ。ＳＯＴマーカセグメントのパラメータの内容を図１１に示す。図１１から理解されるように、ＳＯＴマーカセグメント中のパラメータＰｓｏｔの内容を読めば当該タイルパートの長さを知ることができる。したがって、ＳＯＴマーカセグメントを読み込めば、パケットヘッダをデコードすることなく、タイルパート単位で符号にアクセスすることができる。
【００２４】
パケットヘッダのデコードを省略したい場合には、タイルパートヘッダ中のＰＬＴマーカセグメントやメインヘッダ中のＰＬＭマーカセグメントに、各パケットの長さを記録しておくこともできる。さらに、ＳＯＴマーカセグメントを探すプロセスを省きたい場合には、メインヘッダ中のＴＬＭマーカセグメントに各タイルパートの長さを記録しておくこともできる。ＴＬＭマーカセグメントは図１２に示すような構成であり、そのパラメータの内容は図１３に示す通りである。ＴＬＭマーカセグメント中のＰｔｍｌ(i)を読めば、ｉ番目のタイルパートの長さを知ることができる。
【００２５】
さて、以上に説明したように、ＪＰＥＧ２０００の符号は、パケット単位でのアクセスが可能であるとともに、より簡易には、タイルパート単位でのアクセスが可能である。これは、原符号から、それをデコードすることなく、必要なパケットやタイルパートだけを抜き出して新たな符号を生成できることを意味する。また、原符号の必要なパケット又はタイルパートだけを復号することができることをも意味する。
【００２６】
例えば、サーバに保存されている大きな画像をクライアント側で表示しようとする場合に、必要な画質だけの符号、必要な解像度だけの符号、見たい場所だけの符号、見たいコンポ−ネントだけの符号をサーバから受信して復号するような事が可能である。
【００２７】
この様に、サーバにあるＪＰＥＧ２０００の符号の必要な部分だけを受信するためのプロトコルをＪＰＩＰ（JPEG2000  Interactive  Protocol）と呼び、現在、標準化の途上にある。このような階層的な画像を部分的にアクセスするためのプロトコルは、古くは、画像の多重解像度表現であるＦｌａｓｈＰｉｘと、それにアクセスするためのプロトコルであるＩＩＰ（Internet  Imaging  Protocol）に見ることができる（例えば特許文献１参照）。なお、ｗｅｂサイトhttp://www.i3a.org/i_iip.htmlでＩＩＰの標準書を提供している。また、ＪＰＩＰに関連した先行技術文献としては、例えばＪＰＩＰのキャッシュモデル等に関する特許文献２がある。
【００２８】
【特許文献１】特開平１１−２０５７８６号公報
【特許文献２】特開２００３−２３６３０号公報
【発明の開示】
【発明が解決しようとする課題】
【００２９】
さて、ＪＰＩＰにおいて、クライアントからサーバへ、描画したい解像度と実際に描画するウィンドウサイズを指定することが提案されている。このような指定を受けた場合、サーバ側では当該解像度の当該領域をカバーするプリシンクトのパケットを送信するか、あるいは、より簡易に、当該領域をカバーするタイルパートを送信する。
【００３０】
まず、後者のタイルパートを送信するＪＰＩＰシステム（これをＪＰＴシステムという）を例に説明する。
【００３１】
ＪＰＴシステムの場合、画像全体を構成するタイルパート中から、当該領域をカバーするタイルパートを抽出する手順は以下の通りである。サーバは、自分が管理する符号が、どのようにタイルパートに分かれているか知っていることが前提となる。
【００３２】
今、図９に示した１タイル、２レイヤのＲＬＣＰプログレッションオーダの符号のパケットを、すべての解像度レベルの境界位置（解像度レベルの切り替わり位置）でタイルパートに分けた場合、図１４に示したような３個のタイルパートができる。また、同じＲＬＰＣプログレッションオーダの符号のパケットを、すべての解像度レベルの境界位置及び全てのレイヤの境界位置でタイルパートに分けた場合、図１５に示したような６個のタイルパートができる。また、同じ符号を、すべての解像度レベルの境界位置、すべてのレイヤの境界位置及びすべてのコンポ−ネントの境界位置でタイルパートに分けた場合、図１６に示したような１８個のタイルパートができる。
【００３３】
ここで、クライアントからサーバへ、「２５×２５画素に相当する解像度部分を、２０×２０のウィンドウサイズで表示したい」というリクエストが来たとする。図９の例では、２５×２５画素に相当する解像度とは解像度レベル０の部分を指し、２０×２０のウィンドウとは解像度レベル０の画素のうちの２０×２０の部分だけを表示するということを意味する。
【００３４】
したがって、サーバは、自分の持っている符号から、解像度レベル０をカバーするタイルパート（図１４の例ならタイルパート０）を抽出し、それをメインヘッダの情報とともにクライアントへ送信すればよい。タイルパートの先頭には必ずＳＯＴマーカセグメントがあり、タイルパートの長さもわかるため、タイルパートの境界自体は常に判別可能である。
【００３５】
しかし、図１４、図１５及び図１６の例を見れば明らかなように、（何番目から）何番目までのタイルパートを送信すればよいかは、符号のプログレッションオーダ及びタイルパートへの分割方法（分割位置）という２つのパラメータに依存するのである。
【００３６】
前者のプログレッションオーダは、メインヘッダやタイルパートヘッダのＣＯＤマーカセグメントに記述されているため直ちに知ることができる。
【００３７】
しかし、後者のタイルパートへの分割方法は、ＪＰＥＧ２０００の符号やＪＰＥＧ２０００ファミリーフォーマットのファイルに記録されているわけではない。したがって、従来は、タイルパートへの分割方法が既知でない限り、所望のタイルパートを選ぶには符号のパケットを１つ１つ数えていかざるを得ず効率が悪い。
【００３８】
この問題を解決するため、本願出願人は、ＪＰＥＧ２０００の符号フォーマットにおけるベンダー情報等の自由な情報を入れることが許されているＣＯＭマーカセグメント、あるいは、ＪＰＥＧ２０００ファミリーのファイルフォーマットにおけるベンダー情報等の自由な情報を記録可能なＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに、タイルパートへの分割方法を示す情報を記録することを特徴とする発明を提案している（特願２００６−６７４８２号）。
【００３９】
さて、以上のようにＪＰＴサーバにおいては、
・各タイルパートの位置を算出する
・そのタイルパートの送信が必要ならば送信する
という２つのステップを実行する。その代表的な構成は、
（i）全てのタイルパートの位置を算出する（ＳＯＴマーカセグメントをスキャンする）
（ii）そのタイルパートの送信が必要ならば送信する
である。
【００４０】
したがって、このような構成のＪＰＴサーバでは、上記（i）として
for(全てのタイルパートについて)｛
次のＳＯＴマーカセグメントをスキャンしタイルパートの位置と長さを記録
｝
というステップ（これを「ステップＡ」と呼ぶ）が実行されるのが通常である。
【００４１】
このような構成をとる理由の一つは、送信する必要のあるタイルパートが、クライアント側ユーザのウィンドウ選択等によって時系列で変わるため、送信要否の判断の前に全タイルパートの位置を予め算出して保持しておくのが実装が簡易になるからである。しかし、一番の理由は、符号中のタイルパートの並び方に関するものである。以下、これについて述べる。
【００４２】
ＪＰＴにとって、符号中にタイルパートがどのような順番で並んでいるかということが重要な要素である。例えば、２つのタイルからなり、各タイルとも「最高解像度レベル＝２、レイヤ数＝１、解像度レベルの境界位置でタイルパートへ分割されている」モノクロ画像の符号（図２４参照）を例にタイルパートの並び方（配列方法）について考える。
【００４３】
この場合、従来のプログレッション属性Ｒ，Ｌ，Ｃ，Ｐによるプログレッションオーダに、「どのタイルか(タイルindex)」という要素が加わり、タイルパートの配列方法として、図２５に示す様な「タイル順→解像度レベル順」（このようなプログレッションオーダの最外殻にタイルがあるかの様な順番をタイル順最上位と呼ぶ）、又は図２６に示す様な「解像度レベル順→タイル順」をとり得る。
【００４４】
さて、ＪＰＴで要求されるタイルパートが例えば解像度レベル０のものである場合、図２５のようなタイルパート配列の符号ならば、図中に示した”タイルパートＡ”までの位置と長さがわかればよいため、合計４個のタイルパートをスキャンすれば足りる（要求されるタイルパートが変わらない限り）。そして、この例の場合、前記”ステップＡ”のような構成（全タイルパートをスキャンする）であっても、スキャンされるタイルパートは合計６個にすぎず、それほど余分なＳＯＴスキャンが行われるわけではない。
【００４５】
一方、図２６のようなタイルパート配列の場合、図中に示した”タイルパートＢ”までの位置と長さがわかればよいため、合計２個のタイルパートをスキャンすれば足りる（要求されるタイルパートが変わらない限り）。そして、この例の場合には、前記”ステップＡ”のような構成であると、合計６個分のＳＯＴスキャンの３分の２は無駄なスキャンである。
【００４６】
しかし、図２６のようなタイルパート配列であることが既知である場合には、「解像度レベル順→タイル順」というｆｏｒループを構成し、
for(解像度レベル=0)｛
for(0≦タイルindex≦1)｛
次のＳＯＴマーカセグメントをスキャンしてタイルパートの位置と長さを記録
｝
｝
という手順をとることにより、必要な２個のタイルパートのスキャンのみ行い、無駄なスキャンを排除することが可能になる。このようなｆｏｒループを構成するためには（あるいは最初から必要なタイルパート数を算出しておき，ＳＯＴマーカセグメントをスキャンする回数自体を制限するためには）、その前提として、そのようなタイルパート配列であることが分からなければならない。しかしながら、従来のＪＰＥＧ２０００の符号やＪＰＥＧ２０００ファミリーフォーマットのファイルには、符号中のタイルパートの配列方法が記録されているわけではないのである。
【００４７】
なお、ＪＰＴあるいはＪＰＰ（JPIP  Precinct）においては、用途に応じた属性をプログレションオーダの最外殻に位置させるのが典型である。例えば、縮小表示が主な用途であれば最外殻にＲを位置させ、カラー画像の白黒表示が主な用途であれば最外殻にＣを位置させるのである。そして、ＪＰＴでは、かかる用途に応じた属性の境界位置でタイルパートへ分割するのが典型である。
【００４８】
以上の観点に鑑み、本願出願人は、タイルパートの分割方法と配列方法を示す情報を、符号中のＣＯＭマーカセグメント、あるいはＪＰＥＧ２０００ファミリーのファイルフォーマットのＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録することを特徴とする発明を提案している（特願２００６−７７２０６号）。
【００４９】
さて、図２６に示したような「解像度レベル順→タイル順」というタイルパート配列を可能とするためには、各タイルが解像度レベルの境界位置で「２以上の」タイルパートに分割されいることが前提となるのである。１タイルパート/１タイルでは、そのようなタイルパート配列に並べ替えることはできないからである。
【００５０】
本発明は、以上の議論を踏まえ、かつ、ＪＰＥＧ２０００の符号が基本的にパケットを単位としてアクセス可能で、各パケットがＲ，Ｌ，Ｃ，Ｐというプログレッション属性を持つことに着目したものであり、その目的は、所要のパケットを簡易かつ効率的にアクセスもしくは選択することが可能なＪＰＥＧ２０００の符号及びＪＰＥＧ２０００ファミリーフォーマットのファイルを生成すること、及び、ＪＰＩＰサーバ等において、ＪＰＥＧ２０００の符号又はそれを含むＪＰＥＧ２０００ファミリーフォーマットのファイルから、符号の所要のパケットを簡易かつ効率的に選択し、さらには選択したパケットをＪＰＩＰクライアント等へ送信できるようにすることにある。
【課題を解決するための手段】
【００５１】
ＪＰＥＧ２０００の符号はパケットで構成され、パケットは解像度レベル毎に存在する。したがって、「あるタイルの、ある解像度レベルに属する全てのパケット」を、あたかも「解像度レベルの境界位置で分割された１つのタイルパート」と見なし、図２６に示したように「解像度レベル順→タイル順」に並べ、サーバ側に蓄積することは可能である。プログレッション属性として、Ｒ，Ｌ，Ｃ，Ｐに「タイル」という属性を追加し、あたかも「解像度レベル順→タイル順」にパケットを並べるのである。
【００５２】
この「タイル」という属性を追加し拡張したプログレッションオーダに従って「解像度レベル順→タイル順」に並べた符号は、ＪＰＥＧ２０００の仕様に忠実に従うものではないから、厳密には、正規の（legal）ＪＰＥＧ２０００符号ではないという意味でＪＰＥＧ２０００ライクな符号というべきであろう。しかし、このようなパケットの並びを持つ符号は、サーバ側で適切に解釈・管理するならば、ＪＰＥＧ２０００符号として扱って支障がないものであり、余計なパケットをスキャンすることなく所要のパケットを簡易・効率的にアクセスもしくは選択することができるというメリットが生まれるのである。
【００５３】
ここで、ＪＰＥＧ２０００において、プログレッション属性としてＲ，Ｌ，Ｃ，Ｐを用いる通常のプログレッションオーダは、図５に示すように、ＬＲＣＰ、ＲＬＣＰ、ＲＰＣＬ、ＰＣＲＬ、ＣＰＲＬと表記される。
【００５４】
この表記方法に倣って、本願においては、プログレッション属性にタイル（Ｔ）を加えて拡張したプログレッションオーダをＴｘｘｘｘ，ｘＴｘｘｘ，ｘｘＴｘｘ，ｘｘｘＴｘ，ｘｘｘｘＴと表すものとする。この表記において、左端のｘはプログレッションオーダの最外殻に位置する属性であり、各ｘはＲ，Ｌ，Ｃ，Ｐのいずれかである。
【００５５】
このような拡張したプログレッションは、具体的には図２７に示すＴＬＲＣＰからＣＰＲＬＴまでの２５通りである。ただし、Ｔｘｘｘｘすなわち最初の５通りＴＬＲＣＰ，ＴＲＬＣＰ，ＴＲＰＣＬ，ＴＰＣＲＬ，ＴＣＰＲＬは、通常のプログレッションオーダＬＲＣＰ，ＲＬＣＰ，ＲＰＣＬ，ＰＣＲＬ，ＣＰＲＬとパケットの並び順が実質的に同じである。複数のタイルからなる例えばＬＲＣＰ符号では、ＴＬＲＣＰ順にパケットが並ぶからである。
【００５６】
先に述べたように、ＪＰＥＧ２０００には、ベンダー情報等の任意の情報を記録可能なマーカセグメントとしてＣＯＭマーカセグメントがある。ＣＯＭマーカセグメントは図１９に示す構造であり、そのＣｃｏｍ（ｉ）に任意のデータをバイト単位で記録することができる。
【００５７】
また、先に述べたＪＰＥＧ２０００ファミリーフォーマットとは、ＪＰ２、ＪＰＸ、ＪＰＭである。図２０にＪＰ２フォーマットのファイル構造を示す。図中のＵＵＩＤＢｏｘとＸＭＬＢｏｘに任意の情報を記録可能である。図２１にＢｏｘの構造を、図２２にＢｏｘ情報の内容を示す。ＵＵＩＤＢｏｘのＤＢｏｘ（のＤＡＴＡフィールド）とＸＭＬＢｏｘのＤＢｏｘに任意の情報を記録できる。
【００５８】
ＪＰＸはＪＰ２の拡張ファイルフォーマットであり、その構造は示さないが、ＵＵＩＤＢｏｘとＸＭＬＢｏｘに関してはＪＰ２フォーマットと同様である。
【００５９】
また、図２３に、ＪＰＭ（JPEG2000  Multi  Layer）フォーマットのファイル構造を示す。図中の”Ｃ．２”で示されたＭｅｔａｄａｔａＢｏｘに、図２１と同様なＵＵＩＤＢｏｘ、ＸＭＬＢｏｘが含まれており、ここに任意の情報を記録可能である。
【００６０】
しかして、請求項１記載の発明は、ＪＰＥＧ２０００の符号又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する符号処理装置であって、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”（ただし、左端のｘがプログレッションオーダの最外殻に位置する属性であり、各ｘは解像度レベル、レイヤ、コンポーネント又はプリシンクトのいずれかであり、Ｔはタイルである）より選択されたプログレッションオーダに従って前記符号中のパケットを配列する手段を有することを特徴とする符号処理装置である。
【００６１】
ここで、「拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従って前記符号中のパケットを配列する」とは、「パケットを、プログレッションオーダの最外殻に位置するプログレッション属性以外のプログレッション属性に関し、タイル順にソートして配置する」と言い換えることもできる。
【００６２】
請求項２記載の発明は、請求項１記載の発明に係る符号処理装置であって、前記選択されたプログレッションオーダを特定する情報を、前記符号中のＣＯＭマーカセグメント（図１９）に記録する手段を有することを特徴する符号処理装置である。ここで選択されたプログレッションオーダを特定する情報としては、具体的には例えば図２７に示すように拡張したプログレッションオーダを割り当てた１バイトデータを用いることができる。
【００６３】
請求項３記載の発明は、請求項１記載の発明に係る符号処理装置であって、前記選択されたプログレッションオーダを特定する情報を、前記符号中のＣＯＤマーカセグメントに記録する手段を有することを特徴する符号処理装置である。ＪＰＥＧ２０００の仕様では、ＣＯＤマーカセグメント（図１７）のＳｇｃｏｄに、プログレッションオーダを１バイトデータとして指定する。これを踏まえるならば、具体的には例えば、前記選択されたプログレッションオーダを特定する情報として図２７のように拡張したプログレッションオーダを割り当てた１バイトデータを用い、これをＣＯＤマーカセグメントのＳｇｃｏｄに記録するとよい。
【００６４】
請求項４記載の発明は、請求項１記載の発明に係る符号処理装置であって、前記選択されたプログレッションオーダを特定する情報を、前記符号中のＣＯＭマーカセグメント及びＣＯＤマーカセグメントに分散して記録する手段を有することを特徴する符号処理装置である。具体的には例えば、Ｔｘｘｘｘ，ｘＴｘｘｘ，ｘｘＴｘｘ，ｘｘｘｘＴのいずれであるかを特定するための図２８のように割り当てた１バイトデータ（データＡ）をＣＯＭマーカセグメントに記録し、また、ｘｘｘｘ（通常のプログレッションオーダに相当）を特定するための１バイトデータ（データＢ）をＣＯＤマーカセグメントのＳｇｃｏｄに記録することができる。ＪＰＥＧ２０００の仕様によれば、Ｓｇｃｏｄ中のプログレッションオーダを指定するバイトは図１８のようにプログレッションオーダが割り当てられているが、この割り当てに従ったバイトデータそのままデータＢとして用いればよい。
【００６５】
請求項５記載の発明は、ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する符号処理装置であって、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従って前記符号中のパケットを配列する手段と、前記選択されたプログレッションオーダを特定する情報を、前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録する手段とを有することを特徴とする符号処理装置である。具体的には、前記選択されたプログレッションオーダを特定するための情報としては例えば図２７のように拡張したプログレッションオーダを割り当てた１バイトデータを用いることができ、これをＵＵＩＤＢｏｘ又はＸＭＬＢｏｘのＤＢｏｘ位置に記録することができる。
【００６６】
請求項６記載の発明は、ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する符号処理装置であって、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従って前記符号中のパケットを配列する手段と、前記選択されたプログレッションオーダを特定する情報を、前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘと前記符号中のＣＯＤマーカセグメントとに分散して記録する手段とを有することを特徴とする符号処理装置である。具体的には例えば、前記選択されたプログレッションオーダを特定する情報として、図２８のように割り当てた１バイトデータをＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録し、図１８のように割り当てられた１バイトデータをＣＯＤマーカセグメントのＳｇｃｏｄに記録することができる。
【００６７】
請求項７記載の発明は、請求項１記載の発明に係る符号処理装置であって、前記選択されたプログレッションオーダを特定する情報を、前記符号又は前記ファイルと関連付けて外部データベースに記録する手段を有することを特徴とする符号処理装置である。具体的には例えば、外部データベースに、図２９に示すようにファイル名（もしくは符号の識別子）と図２７に示すように拡張したプログレッションオーダを割り当てた１バイトデータを対応させて記録することができる。
【００６８】
請求項８記載の発明は、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを処理する符号処理装置であって、前記符号中のパケットのプログレッションオーダに対応したｆｏｒループを構成する手段と、前記構成する手段により構成されたｆｏｒループにより前記符号から所要のパケットを選択する手段と、を有することを特徴とする符号処理装置である。ただし、ここでは、パケットのプログレッションオーダは既知であることを前提としている。
【００６９】
請求項９記載の発明は、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを処理する符号処理装置であって、前記符号中のＣＯＭマーカセグメントとＣＯＤマーカセグメントのいずれか一方又は両方に記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する手段と、前記検知する手段により検知されたプログレッションオーダに対応したｆｏｒループを構成する手段と、前記構成する手段により構成されたｆｏｒループにより前記符号から所要のパケットを選択する手段と、を有することを特徴とする符号処理装置である。この符号処理装置は、請求項２，３又は４記載の発明に係る符号処理装置により生成された符号もしくはファイル、あるいは、それと同様の符号もしくはファイルを処理の対象とするものである。
【００７０】
請求項１０記載の発明は、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを処理する符号処理装置であって、前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘ、あるいは、前記符号中のＣＯＤマーカセグメントと前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する手段と、前記検知する手段により検知されたプログレッションオーダに対応したｆｏｒループを構成する手段と、前記構成する手段により構成されたｆｏｒループにより前記符号から所要のパケットを選択する手段と、を有することを特徴とする符号処理装置である。この符号処理装置は、請求項５又は６記載の発明に係る符号処理装置により生成されたファイル、あるいは、それと同様のファイルを処理の対象とするものである。
【００７１】
請求項１１記載の発明は、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを処理する符号処理装置であって、前記符号又は前記ファイルに関連付けられて外部データベースに記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する手段と、前記検知する手段により検知されたプログレッションオーダに対応したｆｏｒループを構成する手段と、前記構成する手段により構成されたｆｏｒループにより前記符号から所要のパケットを選択する手段と、を有することを特徴とする符号処理装置。この符号処理装置は、請求項７記載の発明に係る符号処理装置により生成された符号もしくはファイル、あるいは、それと同様の符号もしくはファイルを処理の対象とするものである。
【００７２】
請求項１２記載の発明は、請求項７，８，９，１０又は１１記載の発明に係る符号処理装置であって、前記選択する手段により選択されたパケットを外部装置へ送信する手段を有することを特徴とする符号処理装置である。
【００７３】
請求項１３記載の発明は、請求項７，８，９，１０又は１１記載の発明に係る符号処理装置であって、前記選択する手段により選択されたパケットからタイルパートを生成する手段と、前記生成する手段により生成されたタイルパートを外部装置へ送信する手段を有することを特徴とする符号処理装置である。
【００７４】
請求項１４記載の発明は、ＪＰＥＧ２０００の符号又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、コンピュータに、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、前記選択されたプログレッションオーダを特定する情報をメモリ上の前記符号中のＣＯＭマーカセグメント又はＣＯＤマーカセグメントに記録する工程とを実行させることを特徴するプログラムである。
【００７５】
請求項１５記載の発明は、ＪＰＥＧ２０００の符号又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、コンピュータに、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、前記選択されたプログレッションオーダを特定する情報をメモリ上の前記符号中のＣＯＭマーカセグメントとＣＯＤマーカセグメントに分散して記録する工程とを実行させることを特徴するプログラムである。
【００７６】
請求項１６記載の発明は、ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、コンピュータに、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、前記選択されたプログレッションオーダを特定する情報をメモリ上の前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録する工程とを実行させることを特徴とするプログラムである。
【００７７】
請求項１７記載の発明は、ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、コンピュータに、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、前記選択されたプログレッションオーダを特定する情報を、メモリ上の前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘと前記符号中のＣＯＤマーカセグメントとに分散して記録する工程とを実行させることを特徴とするプログラムである。
【００７８】
請求項１８記載の発明は、ＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルを生成する処理をコンピュータに行わせるプログラムであって、コンピュータに、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってメモリ上の前記符号中のパケットを配列する工程と、前記選択されたプログレションオーダを特定する情報を前記符号又は前記ファイルと関連付けて外部データベースに記録する工程とを実行させることを特徴とするプログラムである。
【００７９】
請求項１９記載の発明は、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルに対する処理をコンピュータに行わせるプログラムであって、コンピュータに、メモリ上の前記符号中のＣＯＭマーカセグメントとＣＯＤマーカセグメントの一方又は両方に記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、メモリ上の前記符号中のパケットのプログレッションオーダを検知する工程と、前記検知する工程により検知されたプログレッションオーダに対応したｆｏｒループを構成する工程と、前記構成する工程により構成されたｆｏｒループによりメモリ上の前記符号から所要のパケットを選択する工程とを実行させることを特徴とするプログラムである。
【００８０】
請求項２０記載の発明は、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルに対する処理をコンピュータに行わせるプログラムであって、コンピュータに、メモリ上の前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘ、あるいは、メモリ上の前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘと前記符号中のＣＯＤマーカセグメントとに記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する工程と、前記検知する工程により検知されたプログレッションオーダに対応したｆｏｒループを構成する工程と、前記構成する工程により構成されたｆｏｒループによりメモリ上の前記符号から所要のパケットを選択する工程とを実行させることを特徴とするプログラムである。
【００８１】
請求項２１記載の発明は、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従ってパケットが配列されたＪＰＥＧ２０００の符号、又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルに対する処理をコンピュータに行わせるプログラムであって、コンピュータに、前記符号又は前記ファイルに関連付けられて外部データベースに記録されている、前記選択されたプログレッションオーダを特定する情報を参照することにより、前記符号中のパケットのプログレッションオーダを検知する工程と、前記検知する工程により検知されたプログレッションオーダに対応したｆｏｒループを構成する工程と、前記構成する工程により構成されたｆｏｒループによりメモリ上の前記符号から所要のパケットを選択する工程とを実行させることを特徴とするプログラムである。
【００８２】
請求項２２記載の発明は、１８，１９，２０又は２１記載の発明に係るプログラムであって、前記選択する工程により選択されたパケットを外部装置へ送信する工程をコンピュータに実行させることを特徴とするプログラムである。
【００８３】
請求項２３記載の発明は、請求項１８，１９，２０又は２１記載の発明に係るプログラムであって、前記選択する工程により選択されたパケットからタイルパートをメモリ上に生成する工程と、前記生成する工程により生成されたタイルパートを外部装置へ送信する工程とをコンピュータに実行させることを特徴とするプログラムである。
【００８４】
請求項２４記載の発明は、請求項１４乃至２３のいずれか１項記載の発明に係るプログラムが記録された、コンピュータが読み取り可能な情報記録媒体である。
【００８５】
請求項２５記載の発明は、ＪＰＥＧ２０００の符号又は該符号を含むＪＰＥＧ２０００ファミリーフォーマットのファイルが記録された、コンピュータが読み取り可能な情報記録媒体であって、前記符号中のパケットが、プログレッション属性として解像度レベル、レイヤ、コンポーネント、プリシンクトに加えタイルを用いる拡張したプログレッションオーダ”ｘＴｘｘｘ”，”ｘｘＴｘｘ”，”ｘｘｘＴｘ”及び”ｘｘｘｘＴ”より選択されたプログレッションオーダに従って配列されており、前記選択されたプログレッションオーダを特定する情報が、前記符号中のＣＯＭマーカセグメントに記録され、あるいは、前記符号中のＣＯＭマーカセグメントとＣＯＤマーカセグメントとに分散して記録され、あるいは、前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘに記録され、あるいは、前記符号中のＣＯＤマーカセグメントと前記ファイル中のＵＵＩＤＢｏｘ又はＸＭＬＢｏｘとに分散して記録されていることを特徴とする情報記録媒体である。
【発明の効果】
【００８６】
請求項１乃至７記載の発明に係る符号処理装置によれば、所要のパケットを簡易かつ効率的に選択もしくはアクセス可能で、ＪＰＩＰサーバ等に好適な符号又はそれを含むファイルを生成することができる。これについて図３０乃至図３２により説明する。
【００８７】
今、図３０に模式的に示すような「２つのタイルからなり、各タイルとも最高解像度レベル＝２、レイヤ数＝１、プリシンクト数＝１（マキシマムプリシンクト）のモノクロ画像」の符号を考える。プログレッションオーダが通常のＲＬＣＰの場合（L=C=P=1であるため実質はＲプログレッション)、パケットは図３１に示す順番に並ぶ。なお、各タイルのパケットの先頭にＳＯＴマーカセグメントが配置される。この符号の場合、例えば全タイルの解像度レベル０のパケットを選択しようとすると、図示の先頭から４個目までのパケットまでは少なくともスキャンする必要がある。あるいは、予め全てのパケットの位置及び長さを検出する必要がある。
【００８８】
一方、請求項１乃至７記載の発明に係る符号処理装置によれば、例えば拡張したプログレッションオーダのＲＴＬＣＰが選ばれた場合には、符号中のパケットは図３２に示すように「解像度レベル順→タイル順」に並べられる。したがって、先頭から２個目までのパケットをスキャンするだけで全タイルの解像度レベル０のパケットを効率よく選択することが可能になる。
【００８９】
なお、このＲＴＬＣＰ符号の場合、図３２の上段の図に示すようにタイル０とタイル１のＳＯＴマーカセグメントをパケットの先頭に集めた形で設けることもできるが、図３２の下段の図に示すように、タイル０のＳＯＴマーカセグメントのみをパケットの先頭に設ける形をとっても、次の理由から通常支障はない。すなわち、通常、各タイルの符号化条件が共通の場合には、２番目以降のＳＯＴマーカセグメントにはタイル番号、タイルパート番号、タイルパート長の値が含まれる。しかし、符号のデコードやパケット選択を行う際に、タイルをプログレッション属性に含めた拡張プログレッションオーダのｆｏｒループのループ変数のカウントによってタイル番号は検知可能となり、また、タイルパート番号はパケットのデコードや選択には不要である。そして、パケット長は、パケットヘッダあるいはＰＬＴマーカセグメント等によって知ることができるからである。
【００９０】
参考のために、タイル数＝２、解像度レベル数＝３、レイヤ数＝２、コンポ−ネンント数＝３、プリシンクト数＝１(マキシマムプリシンクト)の符号におけるパケット配列を図３３と図３４に示す。図３３はＴＬＲＣＰプログレッションオーダの場合であり、図３４はＬＴＲＣＰプログレッションオーダの場合である。
【００９１】
また、請求項２乃至７記載の発明に係る符号処理装置によれば、生成される符号又はファイル、あるいは外部データベースに、符号中のパケットのプログレッションオーダ（拡張プログレッションオーダ）を特定する情報が記録される。したがって、その符号の所望のパケットを選択する際に、上記情報からパケットのプログレッションオーダを容易に検知することができるので、プログレッションオーダが既知でなくとも、パケット選択のためのｆｏｒループを容易に構成することができるようになる。
【００９２】
請求項８乃至１３記載の発明に係る符号処理装置によれば、請求項１乃至７記載の発明に係る符号処理装置によって生成された符号もしくはファイルを入力として、符号中の所要のファイルを簡易かつ効率的に選択することが可能である。また、請求項１２記載の発明に係る符号処理装置はＪＰＴストリーム送信が可能であり、請求項１３記載の発明に係る符号処理装置はＪＰＰストリーム送信が可能である。
【００９３】
また、請求項１４乃至２３記載の発明に係るプログラム、または請求項２４記載の発明に係る情報記録媒体に記録されたプログラムをコンピュータに実行させることにより、コンピュータを利用して容易に請求項１乃至１３記載の発明を実施することができる。
【００９４】
また、請求項２５記載の発明に係る情報記録媒体は、それに記録されている符号又はファイルが、符号中の所要のパケットを簡易かつ効率的に選択することが可能であってＪＰＩＰサーバ等にとって有用である。
【発明を実施するための最良の形態】
【００９５】
以下、本発明の実施の形態について説明する。
【００９６】
本発明は、例えば図３５に示すようなシステムで実施することができる。図３５において、１００と１０１はパーソナルコンピュータ（ＰＣ）であり、ネットワーク（ＬＡＮ、イントラネット、インターネット等）１０２を経由して通信可能である。
【００９７】
ＰＣ１００はＣＰＵ１１０、ＲＡＭ１１１、ハードディスク装置１１２、表示装置１１３、キーボード、マウス等の入力装置１１４、ネットワーク・インターフェース１１５等がバス１１６に接続された一般的な構成である。ＰＣ１０１も同様の構成で構わない。
【００９８】
本発明は、各ＰＣ１００，１０１がそれぞれ単独で実施する形態、あるいは、例えばＰＣ１０１をクライアント、ＰＣ１００をサーバとしたクライアント・サーバシステム上で実施する形態をとり得る。また、単独のＰＣ１００又は１０１上でクライアント・ソフトウェアとサーバ・ソフトウェアを走らせてクライアント・サーバシステムを構築することも可能であり、かかるシステム上で本発明を実施する形態もとり得る。なお、後述する各実施例を専用のハードウェアで実施することも可能であり、かかる実施形態も本発明に当然に包含される。
【実施例１】
【００９９】
図３６は、本発明の実施例１を説明するためのフローチャートである。このフローチャートに示す手順は、ＪＰＥＧ２０００の符号化処理も含めて、図３５に示したＰＣ１００（又は１０１）上でソフトウェアによって実行されるものとする。そのためのプログラムは、ハードディスク装置１１２に保存されており、ＲＡＭ（メインメモリ）１１１へロードされてＣＰＵ１１０により実行されるものとする。ただし、ＪＰＥＧ２０００のハードウェア・エンコーダをＰＣ１００が備えている場合には、ＪＰＥＧ２０００の符号化処理そのものは同エンコーダにより実行させることも可能であり、そのような態様も本実施例に含まれる。以上は、下記の実施例２，３，４においても同様である。
【０１００】
処理の対象となる画像データはハードディスク装置１１２に蓄積されており、これがＲＡＭ１１１へ転送されて処理されるものとする。その処理結果であるＪＰＥＧ２０００の符号（コードストリーム）と、それを格納したＪＰ２ファイルはＲＡＭ１１１上に生成され、該ファイルはハードディスク装置１１２に転送され保存されるものとして説明する。このことは下記の実施例２，３，４においても同様である。
【０１０１】
図３６を参照する。まず、ＰＣ１００において拡張プログレッションオーダｘＴｘｘｘ，ｘｘＴｘｘ，ｘｘｘＴｘ，ｘｘｘｘＴのいずれかを選択する（ｓｔｅｐ１００）。例えば、ユーザが入力装置１１４より拡張プログレッションオーダの指定入力を行い、指定された拡張プログレッションオーダを選択する。あるいは、クライアントであるＰＣ１０１より同様の指定が入力される。あるいは、予め決められた拡張プログレッションオーダが選択される。
【０１０２】
次に、ＰＣ１００において、選択された拡張プログレッションオーダに対応した図２７のバイトデータをＣＯＭマーカセグメントに記録する（ｓｔｅｐ１０１）。具体的には例えば、ＲＡＭ１１１上に確保されたＪＰＥＧ２０００フォーマット用領域のメインヘッダ領域に当該バイトデータを記録したＣＯＭマーカセグメントを書き込む。ＣＯＭマーカセグメントは図１９に示す構造であるが、該バイトデータはバイナリデータであるためＲｃｏｍ＝０に設定され、該バイトデータはコメントデータ（Ｃｃｏｍ（０））として書き込まれる。ＣＯＭマーカ自体を除いたマーカセグメントの長さは５バイト（＝２＋２＋１）であるので、Ｌｃｏｍ＝５に設定される。
【０１０３】
次にＰＣ１００において、ハードディスク装置１１２より画像データをＲＡＭ１１１に読み込み、この画像データに対しＪＰＥＧ２０００のパケット生成までの符号化処理（図１中のブロック１〜５の処理）を実行することにより、ＲＡＭ１１１上にパケットを生成する（ｓｔｅｐ１０２）。
【０１０４】
次に、ＰＣ１００において、それらパケットを選択された拡張プログレッションオーダに従って配列し（ｓｔｅｐ１０３）、上記ＣＯＭマーカセグメントを含むメインヘッダ等を付加した最終的なＪＰＥＧ２０００符号（厳密にはＪＰＥＧ２０００ライクな符号）をＲＡＭ１１１上に生成する（ｓｔｅｐ１０４）。このｓｔｅｐ１０３，１０４は図１中のブロック６の処理に相当する。最後に、この符号を格納したＪＰ２フォーマットのファイルをＲＡＭ１１１上に生成し（ｓｔｅｐ１０５）、これをハードディスク装置１１２へ転送し保存する（ｓｔｅｐ１０６）。なお、生成したＪＰＥＧ２０００の符号をＪＰ２フォーマットでファイル化せず、そのままハードディスク装置１１２に保存することも可能であり、かかる態様も本実施例に包含される。
【０１０５】
以上の説明から明らかなように、本実施例は、コンピュータを利用した請求項１，２記載の発明に係る符号処理装置の一実施例に相当するものである。また、本実施例に係る符号処理装置より生成される符号又はファイルが記録された、コンピュータが読み取り可能な各種の情報記録媒体は、請求項２５記載の発明に係る情報記録媒体の一実施例に相当する。また、本実施例のためのプログラムは、請求項１４記載の発明に係るプログラムの一実施例に相当する。かかるプログラムが記録された情報記録媒体は請求項２４記載の発明に係る情報記録媒体の一実施例に相当する。
【０１０６】
なお、本実施例の一変形例によれば、ｓｔｅｐ１０１において、選択された拡張プログレッションオーダに対応した図２７のバイトデータが、メインヘッダのＣＯＭマーカセグメントに記録されるのではなく、ＣＯＤマーカセグメントのＳｇｃｏｄに記録される。この変形例に係る符号処理装置は、請求項１，３記載の発明に係る符号処理装置の一実施例に相当し、該変形例により生成されたファイル又は符号が記録された情報記録媒体は請求項２５記載の発明に係る情報記録媒体の一実施例に相当する。また、この変形例のためのプログラムは請求項１４記載の発明に係るプログラムの一実施例に相当し、該プログラムが記録された情報記録媒体は請求項２４記載の発明に係る情報記録媒体の一実施例に相当する。
【実施例２】
【０１０７】
図３７は、本発明の実施例２を説明するためのフローチャートである。図中のｓｔｅｐ２００，２０２〜２０６は、前記実施例１に係る図３６中の対応したｓｔｅｐ１００，１０２〜１０６と同一処理のステップであるので、その説明を省略する。
【０１０８】
ｓｔｅｐ２０１は図３６中のｓｔｅｐ１０１に対応する処理ステップであるが、処理内容が一部異なる。すなわち、ＰＣ１００は、ｓｔｅｐ２００で選択された拡張プログレッションオーダを特定する情報として、図２８に示した該拡張プログレッションオーダに対応したバイトデータと、該拡張プログレッションオーダにおけるＲ，Ｌ，Ｃ，Ｐの並び順（つまり通常のプログレッションオーダ）に対応した図１８に示したバイトデータを生成し、前者のバイトデータをＣＯＭマーカセグメントに記録し、後者のバイトデータをＣＯＤマーカセグメントに記録する。具体的には例えば、ＲＡＭ１１１上に確保されたＪＰＥＧ２０００フォーマット用領域のメインヘッダ領域に、前者のバイトデータを記録したＣＯＭマーカセグメントを書き込み、後者のバイトデータを記録したＣＯＤマーカセグメントを書き込む。
【０１０９】
なお、ｓｔｅｐ２０４で生成したＪＰＥＧ２０００の符号をＪＰ２フォーマットでファイル化せず、そのままハードディスク装置１１２に保存することも可能であり、かかる態様も本実施例に包含される。
【０１１０】
以上の説明から明らかなように、本実施例は、コンピュータを利用した請求項１，４記載の発明に係る符号処理装置の一実施例に相当するものである。また、本実施例に係る符号処理装置より生成される符号又はファイルが記録された、コンピュータが読み取り可能な各種の情報記録媒体は、請求項２５記載の発明に係る情報記録媒体の一実施例に相当する。また、本実施例のためのプログラムは、請求項１５記載の発明に係るプログラムの一実施例に相当し、該プログラムが記録された情報記録媒体は請求項２４記載の発明に係る情報記録媒体の一実施例に相当する。
【０１１１】
なお、本実施例の一変形例によれば、ｓｔｅｐ２０１は省かれるとともに、例えばｓｔｅｐ２０６の後で、ｓｔｅｐ１０１で選択された拡張プログレッションオーダに対応した図２７のバイトデータが、当該ファイルのファイル名、あるいは、該ファイルに含まれる符号の識別子と関連付けられた形で外部データベース（図２９参照）に記録される。かかる変形例に係る符号処理装置は、請求項１，７記載の発明に係る符号処理装置の一実施例に相当し、そのためのプログラムは請求項１８記載の発明に係るプログラムの一実施例に相当する。該プログラムが記録された情報記録媒体は請求項２４記載の発明に係る情報記録媒体の一実施例に相当する。
【実施例３】
【０１１２】
図３８は、本発明の実施例３を説明するためのフローチャートである。図中のｓｔｅｐ３００，３０１，３０２，３０３，３０５，３０６は、前記実施例１に係る図３６中の対応したｓｔｅｐ１００，１０２，１０３，１０４，１０５，１０６と同様の処理ステップであるので、その説明を省略する。
【０１１３】
本実施例ではｓｔｅｐ３０４において、ｓｔｅｐ３００で選択した拡張プログレッションオーダを特定する情報として、該拡張プログレッションオーダに対応した図２７に示すバイトデータを、ＪＰ２フォーマットのＵＵＩＤＢｏｘのＤｂｏｘ（のＤＡＴＡフィールド）に記録するか、又はＸＭＬＢｏｘのＤＢｏｘにタグ形式で記録する。より具体的には例えば、ＲＡＭ１１１上に確保されたＪＰ２フォーマット領域中のこれらＢｏｘ領域に該バイトデータが書き込まれる。
【０１１４】
以上の説明から明らかなように、本実施例は、コンピュータを利用した請求項１，５記載の発明に係る符号処理装置の一実施例に相当するものである。また、本実施例に係る符号処理装置より生成される符号又はファイルが記録された、コンピュータが読み取り可能な各種の情報記録媒体は、請求項２５記載の発明に係る情報記録媒体の一実施例に相当する。また、本実施例のためのプログラムは、請求項１６記載の発明に係るプログラムの一実施例に相当し、該プログラムが記録された情報記録媒体は請求項２４記載の発明に係る情報記録媒体の一実施例に相当する。
【実施例４】
【０１１５】
図３９は、本発明の実施例４を説明するためのフローチャートである。図中のｓｔｅｐ４００，４０１，４０２，４０４，４０６，４０７は、前記実施例１に係る図３６中の対応したｓｔｅｐ１００，１０２，１０３，１０４，１０５，１０６と同様の処理ステップであるので、その説明を省略する。
【０１１６】
ＰＣ１００は、選択された拡張プログレッションオーダを特定するための情報として、該拡張プログレッションオーダにおけるＲ，Ｌ，Ｃ，Ｐの並び順に対応した図１８に示すバイトデータをＪＰＥＧ２０００符号フォーマットのメインヘッダ中のＣＯＤマーカセグメントのＳｇｃｏｄに記録し（ｓｔｅｐ４０３）、また、該拡張プログレッションオーダに対応した図２８に示すバイトデータをＪＰ２ファイルフォーマットのＵＵＩＤＢｏｘ又はＸＭＬＢｏｘのＤＢｏｘに記録する（ｓｔｅｐ４０５）。
【０１１７】
以上の説明から明らかなように、本実施例は、コンピュータを利用した請求項１，６記載の発明に係る符号処理装置の一実施例に相当するものである。また、本実施例に係る符号処理装置より生成されるファイルが記録された、コンピュータが読み取り可能な各種の情報記録媒体は、請求項２５記載の発明に係る情報記録媒体の一実施例に相当する。また、本実施例のためのプログラムは、請求項１７記載の発明に係るプログラムの一実施例に相当し、該プログラムが記録された情報記録媒体は請求項２４記載の発明に係る情報記録媒体の一実施例に相当する。
【実施例５】
【０１１８】
図４０は、本発明の実施例５を説明するためのフローチャートである。本実施例においては、ＰＣ１００がＪＰＩＰサーバとして動作し、ＰＣ１０１がＪＰＩＰクライアントとして動作する場合を想定している。また、図４０に示す手順は、ＪＰＩＰサーバとしてのＰＣ１００で実行されるものである。
【０１１９】
処理の対象となるファイルは、前記実施例１乃至４（それら変形例も含む）のいずれかに係る符号処理装置によって生成されたＪＰ２フォーマットのファイルであり、これはＰＣ１００内のハードディスク装置１１２に保存されているものとする。ただし、そのＪＰ２フォーマットファイルが、ＪＰＩＰサーバにより管理されている外部のハードディスク装置等に保存されている態様も本実施例に包含される。選択された拡張プログレッションオーダを特定する情報がどのような形で記録されているかは既知であるものとする。
【０１２０】
ＪＰＩＰでは、クライアントからサーバへ、表示したいファイル名のほか解像度指定と表示ウインドウ指定が送信される。解像度指定はｘ方向のサイズfx、ｙ方向のサイズfy等からなるfsizというパラメータによって指定され、表示ウインドウはrsizというパラメータによって指定される。例えば
fsiz="fsiz"  "="  x方向のサイズ  ","  y方向のサイズ  [","  "closest"]
rsiz="rsiz"  "="  x方向のウインドウサイズ  ","  ｘ方向のウインドウサイズ
の様に表現される。
【０１２１】
ただし、ここでは、クライアントが要求する解像度レベル(の画像サイズ)と表示ウインドウウサイズとは一致しているものとする。また、ファイルに格納されている符号のタイルサイズは、縦横ともに２のべき乗であるものとする。
【０１２２】
図４０を参照する。まず、ＪＰＩＰサーバであるＰＣ１００は、ＪＰＩＰクライアントであるＰＣ１０１から表示すべきファイル名と解像度レベル（ｆｓｉｚとして）を受信する（ｓｔｅｐ５００）。
【０１２３】
ＰＣ１００において、指定されたファイルを開き（ｓｔｅｐ５０１）、ｆｓｉｚのｘ方向サイズ（ｆｘ），ｙ方向サイズ（ｆｙ）から送信の必要な解像度レベルｒを算出する（ｓｔｅｐ５０２）。解像度レベル０から解像度レベルｒまでのパケットを送信する必要がある。ｓｔｅｐ５０２の詳細は後述する。
【０１２４】
次にＰＣ１００において、指定ファイル内の符号のメインヘッダ中のＳＩＺマーカセグメントやＣＯＤマーカセグメントから、該符号の符号化条件すなわちタイル数、デコンポジションレベル数、レイヤ数、コンポーネント数、プリシンクト分割数を検出する（ｓｔｅｐ５０３）。
【０１２５】
次にＰＣ１００におい、符号のパケットの並び順（ここではプログレション属性にタイルを含む拡張プログレッションオーダ）を検知する（ｓｔｅｐ５０４）。この検知は、符号及び／又はファイル、あるいは外部データベースに記録されている拡張プログレッションオーダを特定する情報（前記実施例１乃至４及び変形例を参照）を参照することによって行う。ただし、符号のパケットが特定の拡張プログレッションオーダに従って配列されていることが既知の場合は、ｓｔｅｐ５０４は省略される。かかる態様も本実施例に包含される。
【０１２６】
次にＰＣ１００は、符号のメインヘッダに関する情報をメインヘッダデータビンとしてクライアントＰＣ１０１へ送信する（ｓｔｅｐ５０５）。
【０１２７】
次に、解像度レベルｒで解像度レベルのループ変数を制限した、当該拡張プログレッションオーダに対応したｆｏｒループを構成する（ｓｔｅｐ５０４）。このｆｏｒループを回して、必要なパケットを選択し、選択したパケットをクライアントＰＣ１０１へ送信する（ｓｔｅｐ５０７）。最後に指定ファイルを閉じ（ｓｔｅｐ５０８）、一連の処理を完了する。
【０１２８】
例えば、タイル数＝２、解像度レベル数＝３、レイヤ数＝２、コンポ−ネンント数＝３、プリシンクト数＝１(マキシマムプリシンクト)、拡張プログレッションオーダＲＴＬＣＰに従ってパケットが配列された符号であるとすると、
for（０≦解像度レベル≦r）｛
for（０≦タイル番号≦１）｛
for（０≦レイヤ番号）≦１）｛
for（０≦コンポ−ネント番号≦２）｛
for（プリシンクト番号＝０）｛
｝
｝
｝
｝
｝
というｆｏｒループが構成される。
【０１２９】
この場合、ｓｔｅｐ５０７においては、
for（０≦解像度レベル≦r）｛
for（０≦タイル番号≦１）｛
for（０≦レイヤ番号）≦１）｛
for（０≦コンポ−ネント番号≦２）｛
for（プリシンクト番号＝０）｛
パケットヘッダをデコードしてパケット長を検知し、
当該パケットの先頭位置およびパケット長を保持する
｝
｝
｝
｝
｝
というループ処理によって、送信すべき全てのパケットの先頭位置とパケット長をまず取得し、次に、この情報に基づいて送信すべきパケットを実際に選択して送信する形態をとることができる。
【０１３０】
あるいは、
for（０≦解像度レベル≦r）｛
for（０≦タイル番号≦１）｛
for（０≦レイヤ番号）≦１）｛
for（０≦コンポ−ネント番号≦２）｛
for（プリシンクト番号＝０）｛
パケットヘッダをデコードしてパケット長を検知し、
このパケット長をもとに当該パケットを選択して送信する
｝
｝
｝
｝
｝
という処理の形態をとることができる。
【０１３１】
いずれの形態をとるにしても、複数のタイルからなる符号であるにもかかわらず、検知（スキャン）すべきパケット数を制限し、必要なパケットを効率的に選択することが可能となる。
【０１３２】
そして、以上のようにして選択したパケットの送信に関して２つの形態をとり得る。その１つは、選択した各パケットの前に、あるいは選択したパケット列の解像度レベル又はコンポーネントの境界位置に、ＳＯＴマーカセグメントを付加することにより、選択したパケットをタイルパート化してから送信する形態である。この場合、生成した各タイルパートを必要に応じて分割し、所定のメッセージヘッダを付けてＪＰＴの「メッセージ」とすればよい。つまりＪＰＴストリーム送信を行う形態である。
【０１３３】
もう１つの形態は、選択したパケットをパケット化することなく送信する方法である。この場合、各パケットを必要に応じて分割し、所定の「メッセージヘッダ」を付けてＪＰＰの「メッセージ」とすればよい。つまり、ＪＰＰストリーム送信を行う形態である。ここで、ＪＰＰ（JPIP  Precinct）とは、ＪＰＩＰにおけるパケットを送信の対象とする方式である。
【０１３４】
図４１は、ｓｔｅｐ５０２の処理内容を示すフローチャートである。まず、ｆｓｉｚのｆｘ，ｆｙを取り込み（ｓｔｅｐ６００）、指定ファイル内の符号のメインヘッダ中のＳＩＺマーカセグメントから原画像の横方向サイズ（Ｘｚｉｚ）と縦方向サイズ（Ｙｓｉｚ）を検出し（ｓｔｅｐ６０１）、メインヘッダ中のＣＯＤマーカセグメントからデコンポジションレベル数ｄを検出する（ｓｔｅｐ６０２）。そして、２のｄ乗によりＸｓｉｚを除した値がｆｘ以下であり、かつ、２のｄ乗によりＹｓｉｚを除した値がｆｙ以下であるという条件の判定を行い（ｓｔｅｐ６０３）、条件が成立するならば（ｓｔｅｐ６０３，Ｙｅｓ）、解像度レベルｒ＝０とする（ｓｔｅｐ６０４）。条件が不成立ならば（ｓｔｅｐ６０３，Ｎｏ）、次の演算
解像度レベルｒ＝ｄ−min[log2(Xsiz/fx)，log2(Ysiz/yx)]＋１
により解像度レベルｒを求める（ｓｔｅｐ６０５）。ここで、ｌｏｇ２()は２を底とする対数であり、ｍｉｎ[a,b]はａ，ｂのうちの大きくない値を与える関数である。
【０１３５】
なお、本実施例においては、クライアントが要求する解像度レベル(の画像サイズ)と表示ウィンドウサイズとは一致しているものとしたが、前記要求解像度レベルの画像サイズよりも表示ウィンドウサイズが小さい場合には、要求解像度レベルにおいて、表示ウィンドウに含まれる位置に存在するタイルだけに関してパケットあるいはタイルパートを送信すればよい。
【０１３６】
また、前記実施例においては、ＪＰ２フォーマットのファイルを処理するものとしたが、ファイル化されない符号を入力として同様の処理も可能であり、かかる態様も当然に本実施例に包含される。
【０１３７】
以上の説明から明らかなように、本実施例に係る符号処理装置（ＪＰＩＰサーバ）は、コンピュータを利用した請求項８乃至１３記載の発明に係る符号処理装置の一実施例に相当する。本実施例に係る符号処理装置のためのプログラムは、請求項１９乃至２３記載の発明に係るプログラムの一実施例に相当する。また、このプログラムが記録された情報記録媒体は、請求項２４記載の発明に係る情報記録媒体の一実施例に相当する。
【０１３８】
なお、本実施例は選択したパケットを送信する例であったが、選択したパケットのみからなる別の符号又はそれを含むファイルを生成する処理を行うことも可能である。このような処理を行う符号処理装置も請求項８乃至１１記載の発明に係る符号処理装置に包含される。また、そのためのプログラムも請求項１９乃至２１記載の発明に係るプログラムに包含される。
【図面の簡単な説明】
【０１３９】
【図１】ＪＰＥＧ２０００の符号化アルゴリズムの説明のためのブロック図である。
【図２】画像、タイル、サブバンド、プリシンクト、コードブロックの関係を示す図である。
【図３】サブバンド分割の例、及び、デコンポジションレベルと解像度レベルの関係を示す図である。
【図４】レイヤー分割例を示す図である。
【図５】ＪＰＥＧ２０００規定のプログレッションオーダを示す図である。
【図６】レイヤープログレッシブ符号の概要図である。
【図７】ＬＲＣＰプログレッションオーダの符号におけるパケット配列例を示す図である。
【図８】解像度プログレッシブ符号の概要図である。
【図９】ＲＬＣＰプログレッションオーダの符号におけるパケット配列例を示す図である。
【図１０】ＳＯＴマーカセグメントの構成図である。
【図１１】ＳＯＴマーカセグメントの内容説明図である。
【図１２】ＴＬＭマーカセグメントの構成図である。
【図１３】ＴＬＭマーカセグメントの内容説明図である。
【図１４】全ての解像度レベルの境界位置でのタイルパート分割例を示す図である。
【図１５】全ての解像度レベルの境界位置及び全てのレイヤーの境界位置でタイルパートへ分割した例を示す図である。
【図１６】全ての解像度レベルの境界位置、全てのレイヤーの境界位置及び全てのコンポーネントの境界位置でタイルパートへ分割した例を示す図である。
【図１７】ＣＯＤマーカセグメントの構成図である。
【図１８】ＣＯＤマーカセグメントのＳｇｃｏｄにおける通常のプログレッションオーダのバイト表現を示す図である。
【図１９】ＣＯＭマーカセグメントの構成図である。
【図２０】ＪＰ２ファイルの構造を示す図である。
【図２１】Ｂｏｘの構造を示す図である。
【図２２】Ｂｏｘの情報内容の説明図である。
【図２３】ＪＰＭファイルの構造を示す図である。
【図２４】２タイルのモノクロ画像の符号の説明図である。
【図２５】図２４のモノクロ画像の符号のタイルパート配列の一例を示す図である。
【図２６】図２４のモノクロ画像の符号のタイルパート配列の一例を示す図である。
【図２７】拡張プログレッションに対応したバイトデータの例を示す図である。
【図２８】拡張プログレッションに対応したバイトデータの例を示す図である。
【図２９】ファイルに関連付けて拡張プログレッションオーダが記録されたデータベースの説明図である。
【図３０】２タイルのモノクロ画像の符号の説明図である。
【図３１】図３０のモノクロ画像の符号のＲＬＣＰプログレッションオーダによるパケット配列を示す図である。
【図３２】図３０のモノクロ画像の符号のＲＴＬＣＰプログレッションオーダによるパケット配列を示す図である。
【図３３】ＴＬＲＣＰプログレッションオーダの符号におけるパケット配列例を示す図である。
【図３４】ＬＴＲＣＰプログレッションオーダの符号におけるパケット配列例を示す図である。
【図３５】本発明の実施形態に係るシステム構成例を示すブロック図である。
【図３６】本発明の実施例１を説明するためのフローチャートである。
【図３７】本発明の実施例２を説明するためのフローチャートである。
【図３８】本発明の実施例３を説明するためのフローチャートである。
【図３９】本発明の実施例４を説明するためのフローチャートである。
【図４０】本発明の実施例５を説明するためのフローチャートである。
【図４１】図４０中のｓｔｅｐ５０２を説明するフローチャートである。
【符号の説明】
【０１４０】
１００    パーソナルコンピュータ（ＪＰＩＰサーバ）
１０１    パーソナルコンピュータ（ＪＰＩＰクライアント）
１０２    ネットワーク
１１０    ＣＰＵ
１１１    ＲＡＭ
１１２    ハードディスク装置
１１３    表示装置
１１４    入力装置
１１５    ネットワーク・インターフェース
【図１】
0004789192.tif 000002
【図２】
0004789192.tif 000003
【図３】
0004789192.tif 000004
【図４】
0004789192.tif 000005
【図５】
0004789192.tif 000006
【図６】
0004789192.tif 000007
【図７】
0004789192.tif 000008
【図８】
0004789192.tif 000009
【図９】
0004789192.tif 000010
【図１０】
0004789192.tif 000011
【図１１】
0004789192.tif 000012
【図１２】
0004789192.tif 000013
【図１３】
0004789192.tif 000014
【図１４】
0004789192.tif 000015
【図１５】
0004789192.tif 000016
【図１６】
0004789192.tif 000017
【図１７】
0004789192.tif 000018
【図１８】
0004789192.tif 000019
【図１９】
0004789192.tif 000020
【図２０】
0004789192.tif 000021
【図２１】
0004789192.tif 000022
【図２２】
0004789192.tif 000023
【図２３】
0004789192.tif 000024
【図２４】
0004789192.tif 000025
【図２５】
0004789192.tif 000026
【図２６】
0004789192.tif 000027
【図２７】
0004789192.tif 000028
【図２８】
0004789192.tif 000029
【図２９】
0004789192.tif 000030
【図３０】
0004789192.tif 000031
【図３１】
0004789192.tif 000032
【図３２】
0004789192.tif 000033
【図３３】
0004789192.tif 000034
【図３４】
0004789192.tif 000035
【図３５】
0004789192.tif 000036
【図３６】
0004789192.tif 000037
【図３７】
0004789192.tif 000038
【図３８】
0004789192.tif 000039
【図３９】
0004789192.tif 000040
【図４０】
0004789192.tif 000041
【図４１】
0004789192.tif 000042