JP2006345452A - Information processing device, its controlling method, computer program, and storage medium - Google Patents

Information processing device, its controlling method, computer program, and storage medium Download PDF

Info

Publication number
JP2006345452A
JP2006345452A JP2005171656A JP2005171656A JP2006345452A JP 2006345452 A JP2006345452 A JP 2006345452A JP 2005171656 A JP2005171656 A JP 2005171656A JP 2005171656 A JP2005171656 A JP 2005171656A JP 2006345452 A JP2006345452 A JP 2006345452A
Authority
JP
Japan
Prior art keywords
layers
image data
layer
data
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005171656A
Other languages
Japanese (ja)
Inventor
Chie Ishikawa
智恵 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2005171656A priority Critical patent/JP2006345452A/en
Publication of JP2006345452A publication Critical patent/JP2006345452A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technology to provide appropriate image data according to various applications executed on the client side. <P>SOLUTION: The information processing device comprises an accepting means which accepts the request for image data consisting of a plurality of layers, with the request including the specification of the number of layers; a judging means which judges whether the specified number of layers and the number of layers of the requested image data are the same or not; and a converting means which, when it is judged by the judging means that the number of layers are not the same, converts the image data into one consisting of the specified number of layers. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は階層化された画像データを送受信する技術に関する。   The present invention relates to a technique for transmitting and receiving hierarchical image data.

近年、200万〜500万画素程度の画像を撮像可能な家庭用デジタルカメラが普及している。業務用のデジタルカメラは、1000万画素クラスのものが普及している。デジタルカメラは、今後も高精細化されていくと想定される。   In recent years, home digital cameras capable of capturing images of about 2 million to 5 million pixels have become widespread. Digital cameras for business use are in the 10 million pixel class. It is expected that digital cameras will continue to have higher definition.

また、デジタルカメラ等で撮影した画像データを、ネットワーク経由で受け取り、該画像データをネットワーク上で公開する、オンラインのアルバムサービスが普及している。アルバムサービスは、受け取った画像データを公開するサーバと、ネットワーク経由でサーバにアクセスし、公開された画像データを閲覧するクライアントからなるシステムによって実現される。   Also, an online album service that receives image data taken with a digital camera or the like via a network and publishes the image data on the network has become widespread. The album service is realized by a system including a server that publishes received image data and a client that accesses the server via a network and browses the published image data.

このようなクライアント・サーバシステムにおけるクライアント機器として、近年、PDA(Personal Digital Assistance)端末等の、携帯型の情報処理端末(携帯情報機器)も用いられるようになってきた。   In recent years, portable information processing terminals (portable information devices) such as PDA (Personal Digital Assistance) terminals have been used as client devices in such client / server systems.

一方、アルバムサービスの上位アプリケーションでは、サムネイル画像による一覧表示を行い、一覧表示した画像中から、拡大して表示したい画像の選択を受け付け、選択された画像をサムネイル画像よりも大きく表示するインタフェースが一般的に採用されている。   On the other hand, an upper-level application of the album service generally displays an interface with thumbnail images, accepts selection of an image to be enlarged from the displayed images, and displays the selected image larger than the thumbnail image. Has been adopted.

しかし、大きな画素数を持つ近年のデジタルカメラにより撮像された画像データを、拡大表示のたびに全てサーバからダウンロードするような構成においては、拡大画像を要求してからクライアント端末に画像が表示されるまでに、長い待ち時間を必要とする。   However, in a configuration in which image data captured by a recent digital camera having a large number of pixels is downloaded from the server for every enlarged display, the image is displayed on the client terminal after the enlarged image is requested. By the long waiting time.

このような問題を解決するために、複数の解像度レベル毎に複数のレイヤ(階層)から構成され、さらに各解像度レベルのデータを複数のタイルに分割し符号化した画像データをサーバに保存し、表示に必要な部分データのみをダウンロードしてクライアント上に表示する技術が開発されている。このような技術として、JPEG2000(Joint Photographic Experts Group 2000)やJPIP(JPEG2000 image coding system - Part 9: Interactivity tools, APIs and protocols)等を利用した構成が知られている。   In order to solve such a problem, it is composed of a plurality of layers (hierarchies) for each of a plurality of resolution levels, and further, the image data obtained by dividing and encoding the data of each resolution level into a plurality of tiles is stored in a server, A technique has been developed in which only partial data necessary for display is downloaded and displayed on the client. As such a technique, a configuration using JPEG2000 (Joint Photographic Experts Group 2000), JPIP (JPEG2000 image coding system-Part 9: Interactivity tools, APIs and protocols), or the like is known.

JPEG2000とは、2001年に標準化された画像符号化方式である。この方式によれば、画像データは、複数の解像度レベル毎に複数のレイヤから構成され、更にタイル分割されるように符号化される。ここで、レイヤとは、複数の画質で画像を閲覧可能なように、グループ分けされた符号化データのまとまりである。レイヤ構造においては、閲覧者に伝達する情報量への寄与が大きい符号順に上位レイヤから下位レイヤへと符号化データが配置されている。そして、ある下位レイヤの符号化データは、そのレイヤの上位のレイヤにおける符号化データに対する差分の情報が記述されている。このため、上位のレイヤの符号化データをデコードすれば、ある程度の情報量を伝達することが可能な画像を提供できる一方、下位のレイヤまでデコードすれば、より高画質の画像を提供することができる。   JPEG2000 is an image encoding method standardized in 2001. According to this method, the image data is composed of a plurality of layers for each of a plurality of resolution levels, and is encoded so as to be further divided into tiles. Here, the layer is a group of encoded data grouped so that images can be viewed with a plurality of image quality. In the layer structure, the encoded data is arranged from the upper layer to the lower layer in the code order that contributes greatly to the amount of information transmitted to the viewer. The encoded data of a certain lower layer describes difference information with respect to the encoded data in an upper layer of that layer. For this reason, if the encoded data of the upper layer is decoded, an image capable of transmitting a certain amount of information can be provided. On the other hand, if the lower layer is decoded, a higher quality image can be provided. it can.

JPIPとは、JPEG2000の方式で符号化された画像ファイルへアクセスし、画像データをレイヤ、解像度レベル、タイル等の単位の所望の単位で取得して表示するための、クライアント・サーバ間のプロトコル、API(Application Interface)、ツール等を規格化したものであり、現在、仕様策定中である。   JPIP is a protocol between a client and a server for accessing an image file encoded by the JPEG2000 system, acquiring and displaying image data in a desired unit such as a layer, a resolution level, or a tile. API (Application Interface), tools, etc. are standardized, and specifications are currently being formulated.

JPEG2000を利用した構成として、特許文献1には、JPEG2000で符号化された画像データの部分データをサーバ・クライアントで送受信するシステムが開示されている。この構成において、クライアントは、サーバに格納されているコードストリームのどの部分が、既にクライアントのバッファに格納されているかを判別し、未だバッファに格納していない圧縮データの部分をサーバに要求する。一方、サーバは、要求された圧縮データの部分データを抜き出してクライアントに返送する。クライアントは、受信したデータと既にバッファに格納されたデータを統合することで、画像を取得する。   As a configuration using JPEG2000, Patent Document 1 discloses a system that transmits / receives partial data of image data encoded by JPEG2000 using a server / client. In this configuration, the client determines which part of the codestream stored in the server is already stored in the client's buffer, and requests the server for the portion of compressed data that is not yet stored in the buffer. On the other hand, the server extracts the partial data of the requested compressed data and returns it to the client. The client acquires the image by integrating the received data and the data already stored in the buffer.

また、特許文献2には、サーバ側に格納されているJPEG2000符号データを、クライアント側で高速にプログレッシブ表示するための技術が開示されている。この構成において、クライアントは、欲しい解像度レベルを指定するリクエストを発行し、サーバへ送出する。サーバは、クライアントから指定された解像度レベルのサブバンド符号データを、格納された画像ファイルから取り出してクライアントに送信する。クライアントは、表示している画像の解像度レベルの、復号化されたサブバンドの係数と、サーバから受信した符号データを復号して得られたサブバンドの係数とに基づいて画像データを復元することで、プログレッシブ表示を実現している。   Patent Document 2 discloses a technique for displaying JPEG2000 code data stored on the server side in a progressive manner on the client side. In this configuration, the client issues a request specifying the desired resolution level and sends it to the server. The server extracts subband code data of the resolution level designated by the client from the stored image file and transmits it to the client. The client restores the image data based on the decoded subband coefficient of the resolution level of the displayed image and the subband coefficient obtained by decoding the code data received from the server. And progressive display is realized.

また、特許文献3には、JPEG2000画像データの一部のデータをクライアントにおいてキャッシュし、キャッシュデータからJPEG2000符号化データを作成する構成が開示されている。   Patent Document 3 discloses a configuration in which a part of JPEG2000 image data is cached at a client and JPEG2000 encoded data is created from the cache data.

上記のようなJPEG2000を利用した構成では、クライアントからの要求に応じて、ユーザの望む画像サイズ(解像度レベル)、レイヤ、部分領域(タイル)のデータを、サーバ側に格納されているJPEG2000符号化データから抜き出して、送受信する。   In the configuration using JPEG2000 as described above, the image size (resolution level), layer, and partial area (tile) data desired by the user is stored on the server side in accordance with a request from the client. Extract from data and send / receive.

また、上記の構成において、サーバ・クライアント間でJPEG2000の画像データを効率的に送受信するために、クライアントは、受信したデータをキャッシュ(保存)しておく必要がある。これは、JPEG2000符号化データにおいては、ある解像度レベルの画像データは、その解像度より1レベル低い解像度レベルの画像データに対する差分として表現されるためである。また、上述のように、ある下位レイヤの符号化データは、そのレイヤの上位のレイヤにおける符号化データに対する差分として構成されているためである。   In the above configuration, in order to efficiently transmit and receive JPEG 2000 image data between the server and the client, the client needs to cache (save) the received data. This is because in JPEG2000 encoded data, image data at a certain resolution level is expressed as a difference with respect to image data at a resolution level one level lower than the resolution. In addition, as described above, the encoded data of a certain lower layer is configured as a difference with respect to the encoded data in an upper layer of the layer.

このように、既に受信したデータをクライアント側でキャッシュしておくことで、拡大したり、画質を向上させたりする際に、クライアント・サーバ間で送受信するデータは、受信済みのデータとの差分データのみとなる。これにより、クライアント・サーバ間の通信データ量を削減することができる。
特開2003−23630号公報 特開2004−40674号公報 特開2003−179760号公報
In this way, when data that has already been received is cached on the client side to enlarge or improve image quality, the data sent and received between the client and server is the difference data from the received data. It becomes only. Thereby, the amount of communication data between the client and the server can be reduced.
JP 2003-23630 A Japanese Patent Laid-Open No. 2004-40673 JP 2003-179760 A

しかし、上記従来の構成においては、サーバに格納された画像データを構成するレイヤ数に対応するようにクライアントを設計する必要がある。サーバに格納された画像データを構成するレイヤ数と、クライアントが想定するレイヤ数とが異なる場合、設計されたユーザビリティが満たされない場合がある。   However, in the above conventional configuration, it is necessary to design the client so as to correspond to the number of layers constituting the image data stored in the server. If the number of layers constituting the image data stored in the server is different from the number of layers assumed by the client, the designed usability may not be satisfied.

例えば、サーバ側に5つの画質を持つようにエンコードされたJPEG2000画像が格納されている場合、このサーバに対して、3段階の画質選択肢をもつUIを備えたアプリケーションを実行するクライアントが要求を出す際には、5つの画質を3段階にマッピングする必要がある。逆に、サーバ側には2つの画質を持つようにエンコードされたJPEG2000画像が格納されている場合において、このサーバに対して、3段階の画質選択肢をもつUIを備えたアプリケーションを実行するクライアントが要求を出す場合、クライアントは、3つではなく、2つの画質しか選択することができない。   For example, when a JPEG2000 image encoded to have five image quality is stored on the server side, a client that executes an application having a UI having three image quality options issues a request to the server. In some cases, it is necessary to map five image quality levels in three stages. Conversely, when a JPEG2000 image encoded to have two image quality is stored on the server side, a client that executes an application having a UI having three image quality options for this server When making a request, the client can select only two image quality instead of three.

このように、上記従来の構成においては、クライアントのUI設計者の意図を反映したサービスを提供することができない場合があった。   As described above, in the conventional configuration, there is a case where a service reflecting the intention of the client UI designer cannot be provided.

本発明は上記問題に鑑みなされたものであり、クライアント上で実行される多様なアプリケーションに合わせて適切な画像データを提供することを可能にする技術を提供する。   The present invention has been made in view of the above problems, and provides a technique that makes it possible to provide appropriate image data according to various applications executed on a client.

本発明によれば、
複数のレイヤから構成された画像データの要求であって、少なくともレイヤ数の指定が含まれる要求を受け付ける受付手段と、
指定された前記レイヤ数と、要求された前記画像データのレイヤの数とが一致するか否かを判定する判定手段と、
前記判定手段において一致しないと判定された場合に、前記画像データを、指定された前記レイヤ数で構成される画像データに変換する変換手段と、を備えることを特徴とする情報処理装置が提供される。
According to the present invention,
An accepting means for accepting a request for image data composed of a plurality of layers, at least including a designation of the number of layers;
Determination means for determining whether or not the specified number of layers matches the number of layers of the requested image data;
An information processing apparatus is provided, comprising: conversion means for converting the image data into image data composed of the specified number of layers when the determination means determines that they do not match. The

本発明によれば、クライアント上で実行される多様なアプリケーションに合わせて適切な画像データを提供することを可能にする技術を提供することができる。   ADVANTAGE OF THE INVENTION According to this invention, the technique which makes it possible to provide suitable image data according to the various applications performed on a client can be provided.

以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。   Embodiments according to the present invention will be described below in detail with reference to the accompanying drawings. However, the constituent elements described in this embodiment are merely examples, and are not intended to limit the scope of the present invention only to them.

〔第1実施形態〕
本実施形態のサーバ・クライアントシステムは、サーバ・クライアント間でセッションを維持することにより通信を行う。サーバは、既に生成済みの複数のJPEG2000ファイルを保有しており、クライアントから指定されたレイヤ(画質、階層)の数に基づいて、JPEG2000データを変換し、セッションが終了するまで、変換されたJPEG2000データを保持し、そのクライアントからの要求に応じて、変換後のJPEG2000データからデータを抜き出して返送する。そして、サーバはそのセッションの維持が解除されるまで、送信したデータの情報(ファイル名、解像度、画質など)を保持する。
[First Embodiment]
The server / client system of this embodiment performs communication by maintaining a session between the server / client. The server holds a plurality of JPEG2000 files that have already been generated, converts JPEG2000 data based on the number of layers (image quality, hierarchy) designated by the client, and converts the JPEG2000 data until the session is completed. The data is held, and the data is extracted from the converted JPEG2000 data and returned in response to a request from the client. Then, the server holds the information (file name, resolution, image quality, etc.) of the transmitted data until the maintenance of the session is canceled.

クライアントは、JPEG2000画像を扱う上位アプリケーションのサービスが提供するレイヤ(画質)の選択肢数を取得し、サーバに通知する。その後、アプリケーションからの表示要求に基づいて、サーバにJPEG2000画像データを要求し、返送されたデータをキャッシュし、アプリケーションに表示用画像を渡す。尚、本実施形態の構成においては、通信対象のデータとしてJPEG2000ファイルを想定するが、階層化された、即ち、複数のlayer(レイヤ、階層)としてエンコードされた画像データであればどのようなものに対しても本実施形態の構成を適用できる。   The client acquires the number of layer (image quality) options provided by the service of the upper application that handles JPEG2000 images, and notifies the server of the number of options. Thereafter, based on the display request from the application, the server requests JPEG2000 image data, caches the returned data, and passes the display image to the application. In the configuration of the present embodiment, a JPEG2000 file is assumed as data to be communicated. However, any image data may be used as long as it is layered, that is, encoded as a plurality of layers. The configuration of the present embodiment can also be applied to.

(情報処理装置のハードウェア構成)
図1は、本実施形態の構成における、サーバ及びクライアントのハードウェア構成を示したブロック図である。サーバ及びクライアントは、それぞれ、例えば、パーソナルコンピュータ(PC)やワークステーション(WS)、或いは、携帯電話、PHS、携帯情報端末(PDA)等で実現される情報処理装置である。
(Hardware configuration of information processing device)
FIG. 1 is a block diagram showing a hardware configuration of a server and a client in the configuration of the present embodiment. Each of the server and the client is an information processing apparatus realized by, for example, a personal computer (PC), a workstation (WS), a mobile phone, a PHS, or a personal digital assistant (PDA).

図1において、CPU101は、システム全体の動作をコントロールし、一次記憶装置102に格納されたプログラムの実行などを行う。一次記憶装置102は、RAM、ROM等のメモリであり、二次記憶装置103に記憶されたプログラムなどを読み込んで格納する。   In FIG. 1, a CPU 101 controls the operation of the entire system and executes a program stored in the primary storage device 102. The primary storage device 102 is a memory such as a RAM or a ROM, and reads and stores programs stored in the secondary storage device 103.

二次記憶装置103は例えば、ハードディスク等の大容量記憶装置である。一般に一次記憶装置102の容量は二次記憶装置103の容量より小さく、一次記憶装置102に格納しきれないプログラムやデータなどは二次記憶装置103に格納される。また、長時間記憶しなければならないデータなども二次記憶装置103に格納される。本実施形態では、プログラムを二次記憶装置103に格納し、プログラム実行時に一次記憶102に読み込んでCPU101が実行処理を行う。   The secondary storage device 103 is, for example, a mass storage device such as a hard disk. Generally, the capacity of the primary storage device 102 is smaller than the capacity of the secondary storage device 103, and programs and data that cannot be stored in the primary storage device 102 are stored in the secondary storage device 103. Data that must be stored for a long time is also stored in the secondary storage device 103. In the present embodiment, the program is stored in the secondary storage device 103, read into the primary storage 102 when the program is executed, and the CPU 101 executes the execution process.

尚、一次記憶装置102、二次記憶装置103は、それぞれ、例えば、所定のメディアと、当該メディアへのアクセスを実現するための外部記憶ドライブとによって構成してもよい。このようなメディアには、例えば、フレキシブルディスク(FD)、CD−ROM、CD−R、CD−RW、PCカード、DVD、ICメモリカード、MO、メモリスティック等を採用することができる。   Note that the primary storage device 102 and the secondary storage device 103 may each be configured by, for example, a predetermined medium and an external storage drive for realizing access to the medium. As such a medium, for example, a flexible disk (FD), a CD-ROM, a CD-R, a CD-RW, a PC card, a DVD, an IC memory card, an MO, a memory stick, and the like can be adopted.

入力デバイス104はユーザからの指示入力を受け付ける装置であり、例えば、マウスやキーボード等がこれに該当する。指示入力に基づいてプログラムなどに割り込み信号を送ったりする。出力デバイス105は情報処理装置の応答を出力する表示装置であり、例えば、モニタ(ディスプレイ)やプリンタ等によって構成することができる。   The input device 104 is a device that receives an instruction input from a user, and corresponds to, for example, a mouse or a keyboard. An interrupt signal is sent to a program or the like based on an instruction input. The output device 105 is a display device that outputs a response of the information processing apparatus, and can be configured by, for example, a monitor (display) or a printer.

I/F106は、インターフェイス(Interface)であり、情報処理装置は、このI/F106を介して外部装置とのデータのやり取りを行う。システムバス107は、情報処理装置内のデータの流れを司る役割を果たす。   The I / F 106 is an interface, and the information processing apparatus exchanges data with an external device via the I / F 106. The system bus 107 plays a role in managing the flow of data in the information processing apparatus.

尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。   In addition, it can also be comprised as an alternative of a hardware apparatus with the software which implement | achieves a function equivalent to the above each apparatus.

また、本実施形態では、説明の便宜のため、本実施形態に対応する情報処理装置を1つの装置で実現した構成について述べるが、複数の装置にリソースを分散した構成によって実現してもよい。例えば、記憶や演算のリソースを複数の装置に分散した形に構成してもよい。或いは、情報処理装置上で仮想的に実現される構成要素毎にリソースを分散し、並列処理を行うようにしてもよい。   In the present embodiment, for convenience of explanation, a configuration in which the information processing apparatus corresponding to the present embodiment is realized by one apparatus will be described. However, the information processing apparatus may be realized by a configuration in which resources are distributed to a plurality of apparatuses. For example, storage and calculation resources may be distributed in a plurality of devices. Alternatively, resources may be distributed for each component virtually realized on the information processing apparatus, and parallel processing may be performed.

(システム構成)
図2は、本実施形態の構成におけるシステムの概略を示した模式図である。201はクライアント1、202はクライアント2をあらわしており、それぞれ図1で説明したハードウェア構成を有する。このシステムでは、クライアント1(201)、クライアント2(202)のようなクライアントが、有線、無線を問わず、ネットワーク203を経由して、サーバ204と通信することが可能である。サーバ204は解像度レベル毎に複数のレイヤから構成された画像ファイルを蓄積する大容量の記憶装置205を備えている。大容量の記憶装置205は、例えばハードディスク等によって実現される。このハードディスク205には、JPEG2000符号化方式により符号化された、複数のレイヤから構成された画像データが格納されている。クライアント201、202は、サーバ204が格納しているJPEG2000画像データから、レイヤを順に受信し、閲覧、保存する。
(System configuration)
FIG. 2 is a schematic diagram showing an outline of a system in the configuration of the present embodiment. Reference numeral 201 denotes a client 1, and 202 denotes a client 2. Each has the hardware configuration described with reference to FIG. In this system, clients such as the client 1 (201) and the client 2 (202) can communicate with the server 204 via the network 203 regardless of wired or wireless. The server 204 includes a large-capacity storage device 205 that stores an image file composed of a plurality of layers for each resolution level. The large-capacity storage device 205 is realized by, for example, a hard disk. The hard disk 205 stores image data composed of a plurality of layers encoded by the JPEG2000 encoding method. The clients 201 and 202 sequentially receive layers from the JPEG2000 image data stored in the server 204, and browse and save them.

また、サーバは、クライアントとの間でセッションを維持している間、そのクライアントに送信したデータの情報を維持、管理する。   In addition, the server maintains and manages information on data transmitted to the client while maintaining a session with the client.

(JPEG2000符号化データの構成)
次に、一般的なJPEG2000の符号化データの概略について、図3を参照して説明する。図3は、JPEG2000の符号化データの概略図である。
(Configuration of JPEG2000 encoded data)
Next, an outline of general JPEG2000 encoded data will be described with reference to FIG. FIG. 3 is a schematic diagram of JPEG2000 encoded data.

図3のように、JPEG2000符号化データは、先頭のMain Header(メインヘッダ)データ301と1以上のタイル(Tile)データ302から構成される。   As shown in FIG. 3, JPEG2000 encoded data is composed of head Main Header data 301 and one or more tile data 302.

メインヘッダデータ301には、Resolution Level数、Layer数など画像全体の符号化条件についての情報が記述されている。   In the main header data 301, information about the coding conditions of the entire image such as the number of resolution levels and the number of layers is described.

タイルデータ302は、それぞれ、タイルヘッダ(Tile Header)302と、符号化データ306から構成される。タイルヘッダ302は、タイルの符号化条件を記述したヘッダデータである。   The tile data 302 includes a tile header 302 and encoded data 306, respectively. The tile header 302 is header data describing a coding condition of a tile.

タイルヘッダ302に後続する符号化データ306は、1以上のPacket(パケット)303という符号化単位データから構成される。   The encoded data 306 following the tile header 302 is composed of one or more encoded unit data called Packets 303.

図3は、Layer-Resolution level-Component-Position progression(LRCP)に沿ってパケットデータが記録されたJPEG2000ファイルを例示している。図3のように、LRCPに準じた場合、符号化データはLayer / Resolution / Component / Positionの順で構成される。このようなデータの並び方をProgression Orderと呼ぶ。また、ここで記されているPosition(ポジション、位置)とは、JPEG2000符号化データにおけるPrecinct(プリシンクト)のことである。   FIG. 3 exemplifies a JPEG2000 file in which packet data is recorded in accordance with Layer-Resolution level-Component-Position progression (LRCP). As shown in FIG. 3, in the case of conforming to LRCP, the encoded data is configured in the order of Layer / Resolution / Component / Position. This way of arranging data is called Progression Order. Further, the “Position” (position, position) described here is Precinct in the JPEG2000 encoded data.

図3のようにProgression OrderがLRCPの場合、各Layer(レイヤ)内は、Resolution(解像度)番号の小さい順にデータが格納されている。レイヤ番号は復元する画像の原画に対するS/N比に対応し、レイヤ番号が小さいほどS/N比が悪くなる。一つのJPEG2000ファイル内でのResolution番号とレイヤ番号、Component(コンポーネント)番号の最大値は、エンコーダによって予め設定され、そのパラメータにしたがってエンコードされており、その情報は符号化データの中に格納されている。   When Progression Order is LRCP as shown in FIG. 3, data is stored in each layer in ascending order of Resolution (resolution) number. The layer number corresponds to the S / N ratio with respect to the original image of the image to be restored. The smaller the layer number, the worse the S / N ratio. The maximum resolution number, layer number, and component number in one JPEG2000 file are preset by the encoder and encoded according to the parameters, and the information is stored in the encoded data. Yes.

図4はレイヤとビットプレーンとの関係を示した図である。レイヤは、量子化されたDWT(Discrete Wavelet Transform、離散ウェーブレット変換)係数(ビットプレーン)をMSB(Most Significant Bit、最上位ビット)側からグループ化したものであり、レイヤ0は、MSBを含む複数のビットプレーンから構成され、レイヤの番号が上がるほどLSB(Least Significant Bit、最下位ビット)に近いビットプレーンを含むことになる。図4の場合、3つのレイヤに分けた例を示しており、レイヤ0で最も粗い画像が、レイヤ0とレイヤ1のデータで少し画質が良くなり、レイヤ0, レイヤ1およびLSBを含むレイヤ2を全てデコードすると高画質な画像が得られる。ビットプレーンの分け方は決まっておらず、エンコード条件に左右される。   FIG. 4 is a diagram showing the relationship between layers and bit planes. The layer is a group of quantized DWT (Discrete Wavelet Transform) coefficients (bit planes) from the MSB (Most Significant Bit) side, and layer 0 includes a plurality of MSBs. The bit plane closer to the LSB (Least Significant Bit, the least significant bit) is included as the layer number increases. In the case of FIG. 4, an example in which the image is divided into three layers is shown, and the coarsest image in layer 0 is slightly improved in image quality with the data of layers 0 and 1, and layer 2 including layers 0, 1, and LSB When all of these are decoded, a high-quality image can be obtained. The way to divide bit planes is not fixed and depends on the encoding conditions.

なお、packet body305は、図4に示すグループ化されたビットプレーン群をコードブロックと呼ばれる符号化単位で配列したものである。また、packet header304には、packet body305に含まれるデータに関して、コードブロック単位のデータ長やデータ位置を示す符号化データが格納されている。   The packet body 305 is obtained by arranging the grouped bit plane groups shown in FIG. 4 in coding units called code blocks. The packet header 304 stores encoded data indicating the data length and data position of each code block with respect to the data included in the packet body 305.

このようなJPEG2000符号化データを用いることで、クライアントはサーバに格納された全ての画像データを取得せず、要求される画質に基づいて必要なデータのみをサーバから受信することが可能である。ユーザの受信データの単位としては、JPEG2000のパケット、あるいは、パケットよりも大きい符号化単位であるタイル単位等を採用することができる。   By using such JPEG2000 encoded data, the client can receive only necessary data from the server based on the required image quality without acquiring all the image data stored in the server. As a unit of user's received data, a JPEG2000 packet or a tile unit which is an encoding unit larger than the packet can be adopted.

本実施形態では、クライアントがサーバから受信するデータ単位としてパケット単位を想定する。図5は、パケット単位のリクエスト(要求)およびレスポンス(応答)の対応関係を示した図である。クライアント501はサーバ502に画像のタイル番号とResolution Level(解像度レベル)とレイヤ、コンポーネント、プリシンクト番号を指定して、データを要求する。サーバ502は、画像503のコードストリームを解析して、指定されたタイル番号、解像度レベルとレイヤ、コンポーネント、プリシンクト番号に相当するパケットデータを抜き出し、応答してクライアント501に送り返す。   In this embodiment, a packet unit is assumed as a data unit received by the client from the server. FIG. 5 is a diagram showing a correspondence relationship between requests (requests) and responses (responses) in units of packets. The client 501 requests data by designating the tile number, resolution level, layer, component, and precinct number of the image to the server 502. The server 502 analyzes the code stream of the image 503, extracts packet data corresponding to the specified tile number, resolution level and layer, component, and precinct number, and sends it back to the client 501 in response.

(JPIPレスポンスデータの構成)
次に、JPIPを使ってパケットデータを送信単位として、データを送受信する場合のレスポンス(応答)データの構成を、図6および図7を使って説明する。
(Configuration of JPIP response data)
Next, the structure of response data when data is transmitted and received using JPIP as packet data transmission units will be described with reference to FIGS. 6 and 7. FIG.

図6は、precinct data-binの構造の概略図である。JPIPでは、図6の601に示すように、precinct data-binと呼ばれるJPEG2000のパケットデータの塊を基本としてレスポンスデータ(Response Data)を作成する。precinct data-binとは、タイル番号tnの中の、プリシンクト番号pnの解像度レベル rn、 コンポーネント番号cnを構成する全てのレイヤのパケットを、レイヤ番号が昇順になるように並べてつなげたデータの塊である。   FIG. 6 is a schematic diagram of the structure of the precinct data-bin. In JPIP, as shown by 601 in FIG. 6, response data (Response Data) is created based on a block of JPEG2000 packet data called “precinct data-bin”. The precinct data-bin is a block of data in which the packets of all layers that make up the resolution level rn of the precinct number pn and the component number cn in the tile number tn are arranged in an ascending order. is there.

図6に示すprecinct data-binから抜き出したPacket(tn, rn, cn, pn, 1)を使って、作成されたJPIP Response Dataの例を図7に示す。図7は、JPIP Response Dataの一例を示す図である。ここで、Packet(tn, rn, cn, pn, qn)とは、タイルtnの解像度レベルがrn, コンポーネント番号がcn, プリシンクト番号がpn, レイヤ番号がqnのパケットを示す。JPIP Response Dataは、message header 701と message body 703から構成される。message headerとmessage bodyを合わせて、JPIP messageと呼ぶ。precinct data-binから作成されたJPIP messageをprecinct data-bin messageと呼び、メインヘッダから作成されたJPIP messageをmain header data-bin messageと呼ぶ。   FIG. 7 shows an example of JPIP Response Data created using the Packet (tn, rn, cn, pn, 1) extracted from the precinct data-bin shown in FIG. FIG. 7 is a diagram illustrating an example of JPIP Response Data. Here, Packet (tn, rn, cn, pn, qn) indicates a packet whose resolution level of the tile tn is rn, the component number is cn, the precinct number is pn, and the layer number is qn. JPIP Response Data is composed of a message header 701 and a message body 703. The message header and message body are collectively called a JPIP message. A JPIP message created from precinct data-bin is called a precinct data-bin message, and a JPIP message created from a main header is called a main header data-bin message.

precinct data-bin messageのmessage body 703には、precinct data-bin 601から切り出されたJPEG2000符号化データが格納される。例えば、図6のPacket(tn, rn, cn, pn, 1)603を抜き出してJPIP Response Dataを作成する場合、Packet(tn, rn, cn, pn, 1)603がmessage body 703に格納される。   The message body 703 of the precinct data-bin message stores JPEG2000 encoded data cut out from the precinct data-bin 601. For example, when creating the JPIP Response Data by extracting the Packet (tn, rn, cn, pn, 1) 603 in FIG. 6, the Packet (tn, rn, cn, pn, 1) 603 is stored in the message body 703. .

message header 701は、4つのパラメータから構成される。即ち、1番目のパラメータは、message body 703に入っているデータがprecinct data-binであるか否かを示す識別子が格納される。   The message header 701 is composed of four parameters. That is, the first parameter stores an identifier indicating whether or not the data contained in the message body 703 is a precinct data-bin.

2番目のパラメータには、precinct data-bin ID(PrID)が格納される。これは、タイル番号tn, 解像度レベル番号rn, コンポーネント番号cn, プリシンクト番号pnから次式により一意に定まるパラメータである。
PrID(tn, rn, cn, pn)=tn+(cn+s×(コンポーネント数))×タイル数
ただし、
s=pn+tn×(解像度レベルrnにおける1タイルあたりのプリシンクト数)
+(解像度レベル0から(rn−1)までのタイルtnのプリシンクト数の総和)。
The second parameter stores a precinct data-bin ID (PrID). This is a parameter uniquely determined from the tile number tn, the resolution level number rn, the component number cn, and the precinct number pn by the following equation.
PrID (tn, rn, cn, pn) = tn + (cn + s x (number of components)) x number of tiles
s = pn + tn × (number of precincts per tile at resolution level rn)
+ (Total number of precincts of tile tn from resolution level 0 to (rn−1)).

3番目のパラメータは、レスポンスデータのprecinct data-binにおけるオフセット値PrOffset 602である。つまり、message body703に入っているデータが、PrID(tn, rn, cn, pn)のprecinct data-bin601において何Byte目からのデータであるのかを示す値であり、図6の602の値と等しい。   The third parameter is an offset value PrOffset 602 in the response data-precinct data-bin. That is, the data in the message body 703 is a value indicating the number of bytes from which data in the precinct data-bin 601 of PrID (tn, rn, cn, pn) is equal to the value 602 in FIG. .

message header 701の4番目のパラメータは、Response Data(レスポンスデータ)のバイト長、即ち、message body 703のバイト長である。つまり、ResLen702には、ResLen[byte]704の値が格納される。   The fourth parameter of message header 701 is the byte length of Response Data (response data), that is, the byte length of message body 703. That is, the value of ResLen [byte] 704 is stored in ResLen 702.

(画像データの例)
本実施形態では、サーバはJPEG2000画像を保有しており、この画像に対して、クライアントがJPIPを使ってアクセスするものとする。以下は、本実施形態におけるサーバが保有するJPEG2000画像のエンコード条件を例示的に示したものである。
(Example of image data)
In the present embodiment, it is assumed that the server has a JPEG2000 image, and the client accesses this image using JPIP. The following is an example of the encoding conditions for JPEG2000 images held by the server in this embodiment.

[サーバが保有するオリジナルのJPEG2000画像データ]
<ファイル名:sample.jp2>
最大画像サイズ:1600×1200[pixel]
タイルサイズ:256×256[pixel]
タイル数:35=(7×5)
レイヤ数:2
解像度レベル数:3
各解像度レベルの画像サイズ:
解像度レベル2: 1600×1200pixel] (tileサイズ:256×256[pixel])
解像度レベル1: 800×600[pixel] (tileサイズ:128×128[pixel])
解像度レベル0: 400×300[pixel] (tileサイズ:64×64[pixel])
<ファイル名:example.jp2>
最大画像サイズ:1600×1200[pixel]
タイルサイズ:256×256[pixel]
タイル数:35=(7×5)
レイヤ数:5
解像度レベル数:3
各解像度レベルの画像サイズ:
解像度レベル2: 1600×1200pixel] (tileサイズ:256×256[pixel])
解像度レベル1: 800×600[pixel] (tileサイズ:128×128[pixel])
解像度レベル0: 400×300[pixel] (tileサイズ:64×64[pixel])
上記2つのファイル、sample.jp2とexample.jp2のエンコード条件の相違点は、レイヤ数である。前者が2レイヤ、後者が5レイヤでエンコードされている。
[Original JPEG2000 image data held by the server]
<File name: sample.jp2>
Maximum image size: 1600 × 1200 [pixel]
Tile size: 256 x 256 [pixel]
Number of tiles: 35 = (7 × 5)
Number of layers: 2
Number of resolution levels: 3
Image size for each resolution level:
Resolution level 2: 1600 × 1200 pixel] (tile size: 256 × 256 [pixel])
Resolution level 1: 800 x 600 [pixel] (tile size: 128 x 128 [pixel])
Resolution level 0: 400 x 300 [pixel] (tile size: 64 x 64 [pixel])
<File name: example.jp2>
Maximum image size: 1600 × 1200 [pixel]
Tile size: 256 x 256 [pixel]
Number of tiles: 35 = (7 × 5)
Number of layers: 5
Number of resolution levels: 3
Image size for each resolution level:
Resolution level 2: 1600 × 1200 pixel] (tile size: 256 × 256 [pixel])
Resolution level 1: 800 x 600 [pixel] (tile size: 128 x 128 [pixel])
Resolution level 0: 400 x 300 [pixel] (tile size: 64 x 64 [pixel])
The difference between the above two files, sample.jp2 and example.jp2, is the number of layers. The former is encoded with 2 layers and the latter is encoded with 5 layers.

(基本処理)
本実施形態では、サーバは、クライアント・サーバ間でセッションを維持した状態で、画像データの送受信に先立ち、クライアント側から提供する画像データの画質(レイヤ)数(以下、提供画質数と呼ぶ)の通知を取得し、その値に合わせて、サーバが保有している画像データのレイヤ数を変更する。その後、JPIPを利用して画像データを送受信する。
(Basic processing)
In the present embodiment, the server maintains the number of image data image quality (layers) provided from the client side (hereinafter referred to as the provided image quality number) prior to transmission / reception of image data while maintaining a session between the client and the server. The notification is acquired, and the number of image data layers held by the server is changed according to the value. Thereafter, image data is transmitted and received using JPIP.

このようなサーバの動作について、図8を参照して説明する。図8は、サーバ装置の処理の流れを示したフローチャートである。尚、本実施形態のクライアントは3つの画質選択肢を持つアプリケーションを搭載しているものとするが、本構成の適用範囲はこれに限られない。   The operation of such a server will be described with reference to FIG. FIG. 8 is a flowchart showing a processing flow of the server apparatus. In addition, although the client of this embodiment assumes that the application which has three image quality choices is mounted, the application range of this structure is not restricted to this.

まず、ステップS801では、クライアントとの間でセッションを開始する。セッションの開始は、TCP/IP等の公知の手法を適用することができる。   First, in step S801, a session is started with a client. A known method such as TCP / IP can be applied to start the session.

次に、ステップS802では、クライアントに提供画質数Mを問い合わせ、その数を取得する。本実施形態の場合、クライアントは3つの画質選択肢を持つアプリケーションであるので、M=3となる。   Next, in step S802, the client is inquired about the number M of provided image quality, and the number is acquired. In this embodiment, since the client is an application having three image quality options, M = 3.

次に、ステップS803では、クライアントからのリクエストを受信する。リクエストには、サーバのURL、画像ファイル名、解像度レベル、画質(レイヤをどこまで取得するか)等の情報が含まれる。尚、ステップS802で取得する提供画質数Mは、例えば、このリクエストに含めるようにしてもよい。   In step S803, a request from the client is received. The request includes information such as the URL of the server, the image file name, the resolution level, and the image quality (how far the layer is to be acquired). The provided image quality number M acquired in step S802 may be included in this request, for example.

次に、ステップS804では、ステップS803で受信したリクエストを解析する。即ち、リクエストに含まれる、サーバのURL、画像ファイル名、解像度レベル、画質等の情報の値を取得する。   Next, in step S804, the request received in step S803 is analyzed. That is, information values such as server URL, image file name, resolution level, and image quality included in the request are acquired.

次に、ステップS805では、ステップS804で取得した、画像ファイル名を取得し、その画像ファイルへの要求がこのセッションにおいて初めてのアクセスであるか否かを判断する。初めてのアクセスの場合(ステップS805でYES)は、ステップS806へ進み、初めてではない、即ち、既に要求された画像ファイルがこのセッション内でアクセスがあったファイルの場合(ステップS805でNO)はステップS807へ進む。なお、ここでは、画像ファイル名、もしくは、画像データに付けられた識別子が一致するリクエストを受信したか否かで、リクエストが初めてか否かを判定する。   In step S805, the image file name acquired in step S804 is acquired, and it is determined whether or not the request for the image file is the first access in this session. If it is the first access (YES in step S805), the process proceeds to step S806. If it is not the first time, that is, if the requested image file is a file accessed in this session (NO in step S805), step is performed. The process proceeds to S807. Here, it is determined whether or not the request is the first time based on whether or not a request in which the image file name or the identifier attached to the image data matches is received.

本実施形態で、クライアントから送られたリクエストが
http://www.image.com/JPIP.cgi?target=sample.jp2&・・・
とあれば、sample.jp2へのアクセスであり、
http://www.image.com/JPIP.cgi?target=example.jp2&・・・
とあれば、example.jp2へのアクセスである。以下、いずれかの画像データに対して初めてのリクエストがなされた場合、即ち、ステップS806へ進む場合について例示的に説明する。
In this embodiment, the request sent from the client
http://www.image.com/JPIP.cgi?target=sample.jp2& ・ ・ ・
If so, it is access to sample.jp2,
http://www.image.com/JPIP.cgi?target=example.jp2& ・ ・ ・
If so, it is access to example.jp2. Hereinafter, the case where the first request is made for any of the image data, that is, the case where the process proceeds to step S806 will be exemplarily described.

ステップS806では、返送コードストリームを設定、即ち、既にサーバに格納された画像データを、クライアントへ送出するための画像データ(返送コードストリーム)に変換する。この設定処理については、図9を参照して、後に説明する。そして、ステップS807へ進む。   In step S806, a return code stream is set, that is, image data already stored in the server is converted into image data (return code stream) to be sent to the client. This setting process will be described later with reference to FIG. Then, the process proceeds to step S807.

ステップS807では、ステップS804で解析した結果に基づいて、ステップS806で設定された返送コードストリームから返送すべきデータを抜き出し、返送データを作成し、送信する。ステップS807においては、例えば、通常のJPIPにおける処理と同様の処理を適用することができる。   In step S807, based on the result analyzed in step S804, data to be returned is extracted from the return code stream set in step S806, and return data is created and transmitted. In step S807, for example, processing similar to processing in normal JPIP can be applied.

ステップS808では、セッションを閉じるかどうかを判断する。クライアントからのセッションクローズの要求があったり、セッション開始から所定の時間が経過してタイムアウトが発生した等により、セッションを閉じると判断した場合(ステップS808でYES)ステップS809へ進み、まだ、セッションを維持すると判断した場合(ステップS808でNO)、ステップS803へ戻って、クライアントからのリクエストを受信可能に動作する。   In step S808, it is determined whether to close the session. When it is determined that the session is closed due to a request for closing the session from the client or when a predetermined time has elapsed since the start of the session and a timeout has occurred (YES in step S808), the process proceeds to step S809. If it is determined to maintain (NO in step S808), the process returns to step S803 and operates so that a request from the client can be received.

ステップS809では、クライアントとのセッションを閉じる処理を行う。次に、ステップS810では、返送コードストリームとオリジナルファイルの符号化データが同じであったか否かを判断する。同じである場合(ステップS810でYES)はこのフロー(処理)を終了し、異なる場合(ステップS810でNO)には、ステップS811へ進む。ステップS811では、オリジナルファイルとは別に返送コードストリームが作成されているため、この返送コードストリームを削除する。そして、処理を終了する。   In step S809, processing for closing the session with the client is performed. Next, in step S810, it is determined whether the return code stream and the encoded data of the original file are the same. If they are the same (YES in step S810), the flow (process) is terminated. If they are different (NO in step S810), the process proceeds to step S811. In step S811, since a return code stream is created separately from the original file, this return code stream is deleted. Then, the process ends.

(返送コードストリーム設定処理)
次に、ステップS805の返送コードストリーム設定処理について、図9を参照して説明する。図9は、返送コードストリーム設定処理の流れを示したフローチャートである。
(Return code stream setting process)
Next, the return code stream setting process in step S805 will be described with reference to FIG. FIG. 9 is a flowchart showing the flow of the return code stream setting process.

まず、ステップS901では、要求されたファイル、即ち、サーバに格納されたオリジナルファイルのレイヤ数Qを取得する。この値は、オリジナルファイルの、main headerのCODマーカを解析して取得する。   First, in step S901, the layer number Q of the requested file, that is, the original file stored in the server is acquired. This value is obtained by analyzing the COD marker in the main header of the original file.

図11はCODマーカの構成を模式的に示した図である。図11に示すように、CODマーカは5つの部分、COD, Lcod, Scod, SGcod, SPcod、から構成される。その中のSGcod1101は、更に3つのパート、1102、1103、1104から構成される。最初のパート1102には、コードストリームのprogression orderが記述されている。2番目のパート1103には、レイヤ数が記述されている。3番目のパート1104には、色変換の情報が記述されている。したがって、本実施形態の場合、sample.jp2のSGcod1101の2番目のパート1103にはレイヤ数2が記述されており、example.jp2の1103にはレイヤ数5が記述されている。   FIG. 11 is a diagram schematically showing the configuration of the COD marker. As shown in FIG. 11, the COD marker is composed of five parts, COD, Lcod, Scod, SGcod, and SPcod. Among them, SGcod 1101 further includes three parts, 1102, 1103, and 1104. The first part 1102 describes the progression order of the code stream. The second part 1103 describes the number of layers. In the third part 1104, color conversion information is described. Therefore, in the present embodiment, the number of layers 2 is described in the second part 1103 of the SGcod 1101 of sample.jp2, and the number of layers 5 is described in 1103 of example.jp2.

次に、ステップS902では、ステップS802で取得したクライアントの提供画質数MとステップS901で取得したレイヤ数Qの値とが等しい否か判断する。等しい場合(ステップS902でYES)、オリジナルのコードストリームを変換する必要が無いので、ステップS906へ進み、異なる場合(ステップS902でNO)、オリジナルのコードストリームを提供画質数Mに合わせて変換する必要があるので、ステップS903へ進む。   Next, in step S902, it is determined whether the provided image quality number M acquired in step S802 is equal to the value of the layer number Q acquired in step S901. If they are equal (YES in step S902), it is not necessary to convert the original code stream, so the process proceeds to step S906. If they are different (NO in step S902), it is necessary to convert the original code stream in accordance with the provided image quality number M. Since there is, the process proceeds to step S903.

ステップS906では、オリジナルのコードストリームを変換する必要が無いため、返送用コードストリーム名にオリジナルファイル名を設定し、このフロー(処理)を終了する。   In step S906, since there is no need to convert the original code stream, the original file name is set as the return code stream name, and this flow (process) is terminated.

上記の例では、sample.jp2(Q=2)への要求であっても、example.jp2(Q=5)への要求であっても、提供画質数M=3とは異なる値であるので、ステップS903へ進むことになる。   In the above example, whether the request is for sample.jp2 (Q = 2) or the request for example.jp2 (Q = 5), the provided image quality number M is different from 3. The process proceeds to step S903.

ステップS903では、提供画質数Mとレイヤ数Qの値を比較し、レイヤ数Qが小さい場合(ステップS903でNO)はステップS907へ進み、レイヤ数Qが大きい場合(ステップS903でYES)はステップS904へ進む。上記の例の場合、sample.jp2への要求であれば、Q=2<M=3であるので、ステップS907へ進み、example.jp2への要求であれば、Q=5>M=3であるので、ステップS904へ進むことになる。   In step S903, the provided image quality number M and the layer number Q are compared. If the layer number Q is small (NO in step S903), the process proceeds to step S907. If the layer number Q is large (YES in step S903), step S903 is performed. The process proceeds to S904. In the case of the above example, if Q = 2 <M = 3 if the request is for sample.jp2, the process proceeds to step S907. If the request is for example.jp2, Q = 5> M = 3. Since there is, it will progress to step S904.

ステップS904では、画質提供数Mよりもレイヤ数Qが多い場合であるため、レイヤ数をMに減らしたファイルtmp_decを作成するレイヤ合成処理を行う。ファイルtmp_decには、例えば、オリジナルのファイル名と、変更したレイヤ数を反映したファイル名(e.g. example_3.jp2)をつける。例えば、変換後のレイヤ数をオリジナルファイル名の後ろにつけた名前を用いることで、あるクライアントのセッション中に、同じ画質提供数Mを持つ他のクライアントが同じ画像ファイルにリクエストを発行した場合に、このデータを再利用することができる。このtmp_dec作成、即ち、レイヤ合成処理については、図10を参照して後に説明する。   In step S904, since the number of layers Q is larger than the image quality provision number M, layer composition processing for creating a file tmp_dec with the number of layers reduced to M is performed. For example, an original file name and a file name (e.g. example_3.jp2) reflecting the changed number of layers are attached to the file tmp_dec. For example, by using the name with the number of layers after conversion after the original file name, when another client with the same image quality provision number M issues a request to the same image file during a client session, This data can be reused. This tmp_dec creation, that is, layer synthesis processing will be described later with reference to FIG.

次に、ステップS905では、返送用コードストリーム名にステップS904で作成したtmp_decを設定してこのフロー(処理)を終了する。   In step S905, the return code stream name is set to tmp_dec created in step S904, and this flow (process) is terminated.

ステップS907では、提供画質数Mよりもレイヤ数Qが少ない場合であるため、再エンコードするために、オリジナルの画像データを一度デコードする。   In step S907, since the number of layers Q is smaller than the number M of provided image quality, the original image data is once decoded for re-encoding.

次に、ステップS908では、ステップS907でデコードされた画像データを、レイヤ数がMとなるようにエンコードしなおしたファイルtmp_incを作成する。ファイル名tmp_incは、tmp_decと同様に、オリジナルのファイル名に変更後のレイヤ数を用いて名前(e.g. sample_3.jp2)をつける。ファイルtmp_incの作成処理は、例えば、公知の手法を適用することができる。   In step S908, a file tmp_inc is generated by re-encoding the image data decoded in step S907 so that the number of layers is M. Similarly to tmp_dec, the file name tmp_inc uses the number of layers after the change to the original file name (e.g. sample_3.jp2). For example, a known method can be applied to the process of creating the file tmp_inc.

次に、ステップS909では、返送用コードストリーム名にステップS908で作成したtmp_incを設定し、このフローを終了する。   Next, in step S909, tmp_inc created in step S908 is set in the return code stream name, and this flow ends.

以上のように、返送コードストリーム設定処理を実行後、返送用コードストリームは、提供画質数Mとレイヤ数Qが一致したコードストリームになる。   As described above, after the return code stream setting process is executed, the return code stream is a code stream in which the provided image quality number M and the layer number Q match.

(レイヤ合成処理)
次に、ステップS904のレイヤ数をMに減らすファイル変換処理について、図10を参照して説明する。図10は、ファイル変換処理の流れを示したフローチャートである。上記の例では、クライアントがexample.jp2を要求した場合に、このフローを実行することになる。
(Layer composition processing)
Next, the file conversion processing for reducing the number of layers to M in step S904 will be described with reference to FIG. FIG. 10 is a flowchart showing the flow of the file conversion process. In the above example, this flow is executed when the client requests example.jp2.

まず、ステップS1001では、オリジナルのコードストリームからmain headerを抜き出し、レイヤ数をMに書き換え、tmp_decファイルに保存する。具体的には、図11に示す、CODマーカ中1103に格納された数字をMに書き換える。これは、このフローによって、作成されるtmp_decのレイヤ数が、提供画質数Mと一致するように作成されるためである。上記の例では、CODマーカ1103には、値5が格納されているので、この処理によって値3に書き換えることになる。   First, in step S1001, the main header is extracted from the original code stream, the number of layers is rewritten to M, and stored in a tmp_dec file. Specifically, the number stored in 1103 in the COD marker shown in FIG. This is because the number of layers of tmp_dec created by this flow is created to match the provided image quality number M. In the above example, since the value 5 is stored in the COD marker 1103, the value is rewritten to 3 by this processing.

次に、ステップS1002では、オリジナルコードストリームのレイヤ数Qを、提供画質数Mで割ったときの商bと余りxを求める。上記の例の場合、Q=5, M=3であるので、b=1, x=2となる。   Next, in step S1002, a quotient b and a remainder x obtained by dividing the number Q of layers of the original code stream by the number M of provided image quality are obtained. In the case of the above example, since Q = 5 and M = 3, b = 1 and x = 2.

次に、ステップS1003では、オリジナルコードストリームのタイル数TNを取得する。これは、main headerを解析することで、容易に計算できる。上記の例の場合、TN=35である。   In step S1003, the number of tiles TN of the original code stream is acquired. This can be easily calculated by analyzing the main header. In the above example, TN = 35.

次に、ステップS1004では、一時記憶102等の所定の記憶装置に、タイル用の変数tのための領域を確保し、値0を代入して初期化する。   Next, in step S1004, an area for the variable t for the tile is secured in a predetermined storage device such as the temporary storage 102, and the value 0 is substituted and initialized.

次に、ステップS1005では、一時記憶102等の所定の記憶装置に、オリジナルコードストリームのレイヤ番号をカウントする変数qのための領域を確保し、値0を代入して初期化する。   Next, in step S1005, an area for a variable q for counting the layer number of the original code stream is secured in a predetermined storage device such as the temporary storage 102, and is initialized by substituting the value 0.

次に、ステップS1006では、一時記憶102等の所定の記憶装置に、tmp_decのレイヤ番号をカウントする変数nqのための領域を確保し、値0を代入して初期化する。   Next, in step S1006, an area for the variable nq for counting the layer number of tmp_dec is secured in a predetermined storage device such as the temporary storage 102, and the value 0 is substituted and initialized.

次に、ステップS1007では、タイルtのレイヤq〜レイヤ(q+b−1)のレイヤ(レイヤq、レイヤq+1、レイヤq+2、・・・、レイヤ(q+b−1))をオリジナルコードストリームから抜き出し、1レイヤに変換する処理を行う。そして、変換されたレイヤをtmp_decのレイヤnqとする。尚、複数のレイヤを1つにする処理は、例えば、それぞれのpacket body305を抜き出し、ビットプレーンを並べ直し、パケットヘッダを作成しなおす手法を採用することができる。このような手法を採用することで、逆DWT(離散ウェーブレット変換)を実行するする必要がないので、レイヤを統合する変換処理が軽減される。   Next, in step S1007, a layer q to a layer (q + b−1) of layer t (layer q, layer q + 1, layer q + 2,..., Layer (q + b−1)) is extracted from the original code stream. Process to convert to layer. Then, the converted layer is set as a layer nq of tmp_dec. For example, a method of extracting each packet body 305, rearranging the bit planes, and recreating the packet header can be employed for the process of making the plurality of layers into one. By adopting such a method, it is not necessary to perform inverse DWT (discrete wavelet transform), so that the conversion process for integrating layers is reduced.

次に、ステップS1008では、変数qにbを加え、さらに変数nqに1を加える。   Next, in step S1008, b is added to the variable q, and 1 is further added to the variable nq.

次に、ステップS1009では、nqと(M−x)とを比較し、同じ値の場合(ステップS1009でYES)はステップS1010へ進み、異なる値、つまり、nqが(M−x)に達していない場合(ステップS1009でNO)は、ステップS1007へ戻り、ステップS1007、S1008の処理を繰り返す。   Next, in step S1009, nq and (M−x) are compared, and if they are the same value (YES in step S1009), the process proceeds to step S1010, and a different value, that is, nq has reached (M−x). If not (NO in step S1009), the process returns to step S1007, and the processes in steps S1007 and S1008 are repeated.

上記のように、ステップS1007〜S1009の処理では、オリジナルコードストリームを構成するレイヤがb個存在するグループを、(M−x)個作成し、各グループ毎に、グループを構成するレイヤの集合を1つのレイヤに合成する処理を行っている。従って、ステップS1007〜S1009において、処理が適用される、オリジナルコードストリームのレイヤの数はb×(M−x)である。   As described above, in the processing of steps S1007 to S1009, (M−x) groups having b layers constituting the original codestream are created, and a set of layers constituting the group is created for each group. A process of combining into one layer is performed. Accordingly, in steps S1007 to S1009, the number of layers of the original code stream to which the process is applied is b × (M−x).

上記の例の場合、b=1であるので、q=(q+b−1)=qとなるので、ステップS1007で対象となるのは、1レイヤずつである。さらに、M=3, x=2であるので、ステップS1008を一度通過すると、nq=1=(M−x)=(3−2)となり、ステップS1010へ処理を進めることになる。つまり、オリジナルコードストリームのレイヤ0がtmp_decにおいてもレイヤ0に対応することになる。   In the case of the above example, since b = 1, q = (q + b−1) = q. Therefore, the target in step S1007 is one layer at a time. Further, since M = 3 and x = 2, once passing through step S1008, nq = 1 = (M−x) = (3-2), and the process proceeds to step S1010. That is, layer 0 of the original code stream corresponds to layer 0 even in tmp_dec.

次に、ステップS1010では、変数nqとMを比較し、値が等しい場合(ステップS1010でYES)はステップS1013へ進み、異なる値である場合(ステップS1010でNO)はステップS1011へ進む。もし、ステップS1002でオリジナルコードストリームのレイヤ数Qを、提供画質数Mで割り切る場合は、ステップS1011、ステップS1012の処理をせずに、ステップS1013へ進むことになる。   Next, in step S1010, the variables nq and M are compared. If the values are equal (YES in step S1010), the process proceeds to step S1013. If the values are different (NO in step S1010), the process proceeds to step S1011. If it is determined in step S1002 that the number Q of layers of the original code stream is divisible by the number M of provided image quality, the process proceeds to step S1013 without performing the processes in steps S1011 and S1012.

上記の例では、レイヤ数Q(=5)を提供画質数M(=3)で割った余りx=2≠0であるので、ステップS1011へ進むことになる。   In the above example, since the remainder x = 2 ≠ 0 obtained by dividing the number of layers Q (= 5) by the number of provided image quality M (= 3), the process proceeds to step S1011.

ステップS1011では、タイルtのレイヤq〜レイヤ(q+b)のレイヤ(レイヤq、レイヤq+1、レイヤq+2、・・・、レイヤ(q+b))を1レイヤに変換し、tmp_decのレイヤnqとする。レイヤの変換処理は、ステップS1007における処理と同様の手法を採用することができる。   In step S1011, the layer (layer q, layer q + 1, layer q + 2,..., Layer (q + b)) of layer q to layer (q + b) of tile t is converted into one layer, and is set as layer nq of tmp_dec. The layer conversion process can employ the same method as the process in step S1007.

次に、ステップS1012では、変数qに(b+1)を加え、さらに、変数nqに1を加え、ステップS1010へ進む。   Next, in step S1012, (b + 1) is added to the variable q, and 1 is further added to the variable nq, and the process proceeds to step S1010.

上記のように、ステップS1010〜S1012の処理では、オリジナルコードストリームを構成するレイヤが(b+1)個存在するグループを、x個作成し、各グループ毎に、グループを構成するレイヤの集合を1つのレイヤに合成する処理を行っている。従って、ステップS1010〜S1012において、処理が適用される、オリジナルコードストリームのレイヤの数は(b+1)×xである。   As described above, in the processing of steps S1010 to S1012, x groups are created in which (b + 1) layers constituting the original codestream exist, and one set of layers constituting the group is created for each group. Processing to compose the layer. Therefore, in steps S1010 to S1012, the number of layers of the original code stream to which the process is applied is (b + 1) × x.

また、ステップS1007〜S1009、ステップS1010〜S1012の処理により、合成処理が適用されるオリジナルコードストリームのレイヤの総数はb×(M−x)+(b+1)×x=bM+x=Qであり、合成処理は、オリジナルコードストリームの全てのレイヤに対し適用されることが理解される。尚、上記のように構成したことで、グループを構成するレイヤの個数は、各グループについて、等しい、又は、1異なる。   In addition, the total number of layers of the original code stream to which the synthesis process is applied is b × (M−x) + (b + 1) × x = bM + x = Q by the processes of steps S1007 to S1009 and steps S1010 to S1012. It will be appreciated that the process applies to all layers of the original codestream. In addition, by having comprised as mentioned above, the number of the layers which comprise a group is the same about each group, or differs by one.

上記の例では、ステップS1011に初めて処理が移ったとき、q=1, nq=1であり、また、ステップS1002でb=1となるので、レイヤ1, レイヤ2から1レイヤに変換されたレイヤがtmp_decのレイヤ1になり、レイヤ3, レイヤ4から1レイヤに変換されたレイヤがtmp_decのレイヤ2となる。そして、ステップS1013へ進むことになる。   In the above example, when the process moves to step S1011 for the first time, q = 1, nq = 1, and b = 1 in step S1002, so that the layer converted from layer 1, layer 2 to one layer Becomes layer 1 of tmp_dec, and the layer converted from layer 3 and layer 4 to layer 1 becomes layer 2 of tmp_dec. Then, the process proceeds to step S1013.

ステップS1013では、タイルtのタイルヘッダを書き換える。つまり、ステップS1007やステップS1011で複数レイヤを1レイヤに変換した場合、変換前後における、それぞれのパケット長が異なるため、タイルのデータ長が変化する。この変化したタイルのデータ長に基づいてタイルヘッダの値を更新する処理を行う。   In step S1013, the tile header of tile t is rewritten. That is, when a plurality of layers are converted into one layer in step S1007 or step S1011, the packet data length before and after the conversion is different, so that the tile data length changes. Based on the changed data length of the tile, processing for updating the value of the tile header is performed.

次に、ステップS1014では、タイルtから作成した、レイヤ数を減らしたデータをtmp_decに保存する。具体的には、ステップS1007、ステップS1011で作成したレイヤ0〜レイヤM、及び、ステップS1013で書き換えたタイルヘッダをtmp_decに保存する。   Next, in step S1014, data created from the tile t with the reduced number of layers is stored in tmp_dec. Specifically, the layer 0 to layer M created in step S1007 and step S1011 and the tile header rewritten in step S1013 are stored in tmp_dec.

次に、ステップS1015では、タイル用の変数tを1つ増やし、ステップS1016へ進む。   In step S1015, the tile variable t is incremented by one, and the flow advances to step S1016.

ステップS1016では、変数tとタイル数TNを比較する。変数tとタイル数TNが同じ値である場合(ステップS1016でYES)、tile0〜tile(TN−1)の全てのタイルについて変換処理を終えたと判断し、この処理を終了する。逆に、変数tとタイル数TNが異なる場合(ステップS1016でNO)には、まだ、変換処理をすべきタイルが残っているものと判断して、ステップS1005へ戻り処理を継続する。   In step S1016, the variable t is compared with the tile number TN. If the variable t and the number of tiles TN are the same value (YES in step S1016), it is determined that the conversion process has been completed for all tiles tile 0 to tile (TN-1), and this process ends. Conversely, if the variable t and the number of tiles TN are different (NO in step S1016), it is determined that there are still tiles to be converted, and the process returns to step S1005 and continues.

上記のように、本実施形態のサーバは、クライアントから通知された提供画質数に合わせて画像データのレイヤ数を変換するため、クライアントは、サーバのレイヤ数から画質選択肢へのマッピング等の作業をすることなく、通知した画質選択肢と同じ数のレイヤをもつJPEG2000画像を入手できる。また、クライアント上のUIとしてデザインされた画質選択肢の中で、サーバがサービスを提供できない画質が存在することもない。   As described above, since the server according to the present embodiment converts the number of layers of image data in accordance with the number of provided image quality notified from the client, the client performs operations such as mapping from the number of layers of the server to image quality options. Without having to do so, a JPEG2000 image having the same number of layers as the notified image quality option can be obtained. Also, there is no image quality that cannot be provided by the server among image quality options designed as UI on the client.

また、レイヤ合成処理においては、画像を完全にデコードすることなく、DWT係数を取得するところまでデコードし、レイヤを作成しなおせばよいため、レイヤ数変換に伴う負荷は小さい。   Further, in the layer synthesis process, it is only necessary to decode the image to the point where the DWT coefficient is obtained without completely decoding the image, and to recreate the layer. Therefore, the load accompanying the conversion of the number of layers is small.

さらに、サーバ側では、クライアントとのセッションを開始してから、セッションをクローズするまで変換したコードストリームを保存しておくため、同一セッション内での2回目以降の画像データ通信においては、返送時間を短縮することができる。   Furthermore, since the server side stores the converted codestream from the start of the session with the client until the session is closed, the return time is set in the second and subsequent image data communication within the same session. It can be shortened.

尚、変換コードストリームは、セッション毎に作成され、セッション毎に消去される。したがって、サーバ側で、1つのコードストリームに対して膨大な種類のコードストリームを保存しておくことがないため、サーバ側の記憶容量を圧迫することもない。   The conversion code stream is created for each session and deleted for each session. Therefore, since the server side does not store a huge number of code streams for one code stream, the server side storage capacity is not compressed.

もちろん、用途や目的に応じて変換コードストリームを長期間保持するための記憶装置を構成し、このデータを保存しておいても良い。その場合、同じ提供画質レベル数を持つ他のクライアントに対して、作成済みのコードストリームから返送データを作成することができるので、レスポンス時間を短縮することができる。   Of course, a storage device for holding the converted code stream for a long period of time may be configured in accordance with the application and purpose, and this data may be stored. In this case, since the return data can be created from the created code stream for other clients having the same number of provided image quality levels, the response time can be shortened.

本実施形態では、サーバ・クライアント間で通信の間、セッションを維持する必要があるが、これは、例えば、TCP/IP等の公知の手法を適用することができる。例えば、HTTPヘッダにSSL情報を追加する手法や、ステートレスなシステムを用いたCookieベースによるセッション維持の手法、或いは、送信元IPアドレス情報を利用する手法等を適用することができる。ただし、ステートレスなシステムを利用する場合には、図8のステップS808におけるセッションクローズの検出は、アクセスのない時間が所定時間経過する、タイムアウトイベントの発生によって行うことになる。   In this embodiment, it is necessary to maintain a session during communication between the server and the client. For this, for example, a known method such as TCP / IP can be applied. For example, a method of adding SSL information to an HTTP header, a method of maintaining a session based on a cookie using a stateless system, a method of using source IP address information, or the like can be applied. However, when a stateless system is used, the session close detection in step S808 in FIG. 8 is performed by the occurrence of a timeout event in which a predetermined time has elapsed without access.

〔第2実施形態〕
第1実施形態では、画質提供数Mがレイヤ数Qより大きい場合、一度、オリジナルのJPEG2000データをデコードし、レイヤ数Qになるように再エンコードを行った。しかし、図4を参照して説明したように、画像データを構成するレイヤは、1以上のビットプレーンから構成されるため、各パケットについて、1つのレイヤを構成するビットプレーンの境界の位置情報を取得し、その情報に基づいて、レイヤをビットプレーンの境界で分割することにより、画質提供数Mにレイヤ数を分割するように構成してもよい。本実施形態では、例えば、画質選択肢数(画質提供数)Mが3であるクライアントが、レイヤ数Q=2のsample.jp2を要求した場合を想定して、説明する。
[Second Embodiment]
In the first embodiment, when the image quality provision number M is larger than the layer number Q, the original JPEG2000 data is once decoded and re-encoded so that the layer number Q is obtained. However, as described with reference to FIG. 4, since the layers constituting the image data are composed of one or more bit planes, the position information of the boundaries of the bit planes constituting one layer is obtained for each packet. It may be configured to divide the number of layers into the image quality provision number M by acquiring and dividing the layers at bit plane boundaries based on the information. In the present embodiment, for example, it is assumed that a client whose image quality option number (image quality provision number) M is 3 requests sample.jp2 with the number of layers Q = 2.

本実施形態においては、返送コードストリームを設定する処理が第1実施形態と異なる。基本処理は第1実施形態と同様に、図8のフローチャートに基づいて実行される。   In the present embodiment, the process for setting the return code stream is different from that in the first embodiment. The basic processing is executed based on the flowchart of FIG. 8 as in the first embodiment.

本実施形態の返送コードストリーム設定処理を、図12を参照して説明する。図12は、返送コードストリーム設定処理の流れを示したフローチャートである。ただし、ここでは、第1実施形態の図9との相違点を中心に説明し、第1実施形態と同様の処理については、同じ番号を付して説明を省略する。   The return code stream setting process of this embodiment will be described with reference to FIG. FIG. 12 is a flowchart showing the flow of the return code stream setting process. However, here, the difference from FIG. 9 of the first embodiment will be mainly described, and the same processes as those of the first embodiment will be denoted by the same reference numerals and description thereof will be omitted.

図12において、ステップS901からステップS906は、第1実施形態と同様の処理であるので、説明を省略する。   In FIG. 12, steps S901 to S906 are the same processing as in the first embodiment, and thus the description thereof is omitted.

ステップS903で提供画質数Mよりレイヤ数Qが小さいと判断された場合(ステップS903でNO)は、ステップS1201へ進む。   If it is determined in step S903 that the number Q of layers is smaller than the provided image quality number M (NO in step S903), the process advances to step S1201.

ステップS1201では、各パケットについて、1つのレイヤを複数のレイヤに分割することが可能な、画像データの区切れ(ビットプレーンの境界)の位置の情報を取得する。この情報は、別ファイルとして保持するように構成してもよいが、同じファイル(画像データファイル)の中に保存しておいてもよい。本実施形態では、ベンダー定義の情報として、UUID boxの中に独自の形式で、位置情報を保存しているものとする。   In step S1201, for each packet, information on the position of image data delimiters (bit plane boundaries) that can divide one layer into a plurality of layers is acquired. This information may be stored as a separate file, but may be stored in the same file (image data file). In this embodiment, it is assumed that position information is stored in a unique format in a UUID box as vendor-defined information.

ステップS1202では、ステップS1201で取得した情報を参照して、サーバに格納された画像データのレイヤを分割し、返送用コードストリームtmp_incに変換する。この処理については、図13を参照して後述する。ステップS1202でtmp_incを作成後、ステップS909へ進み、返送用コードストリーム名にtmp_incを設定して、この処理を終了する。   In step S1202, with reference to the information acquired in step S1201, the layer of the image data stored in the server is divided and converted into a return code stream tmp_inc. This process will be described later with reference to FIG. After creating tmp_inc in step S1202, the process proceeds to step S909, where tmp_inc is set as the return code stream name, and this process ends.

(レイヤ分割処理)
次に、図13を参照して、レイヤを分割するレイヤ分割処理について説明する。図13は、レイヤ分割処理の流れを示したフローチャートである。ただし、第1実施形態の図10に示したレイヤ合成処理と同様の処理をするステップについては、図10と同じ番号を付し、詳しい説明を省略する。
(Layer division processing)
Next, a layer division process for dividing a layer will be described with reference to FIG. FIG. 13 is a flowchart showing the flow of the layer division process. However, steps that perform the same processing as the layer synthesis processing shown in FIG. 10 of the first embodiment are assigned the same numbers as in FIG. 10, and detailed descriptions thereof are omitted.

まず、ステップS1001では、第1実施形態と同様、オリジナルのコードストリームからmain headerを抜き出し、レイヤ数をQからMに書き換え、保存する。   First, in step S1001, as in the first embodiment, the main header is extracted from the original code stream, the number of layers is rewritten from Q to M, and stored.

次に、ステップS1301では、第1実施形態と同様、レイヤ数Qで画質選択肢数Mを割った時の、商bと余りxを求める。上記の例の場合、Q=2, M=3であるので、b=1, x=1となる。そして、ステップS1003へ進む。   Next, in step S1301, as in the first embodiment, the quotient b and the remainder x when the image quality option number M is divided by the layer number Q are obtained. In the case of the above example, since Q = 2 and M = 3, b = 1 and x = 1. Then, the process proceeds to step S1003.

ステップS1003からステップS1006は、第1実施形態の図10と同様の処理なので、説明を省略する。上記の例の場合、ステップS1003で取得されるタイル数TNは35である。ステップS1006の処理を終了すると、ステップS1302へ進む。   Steps S1003 to S1006 are the same processes as those in FIG. 10 of the first embodiment, and a description thereof will be omitted. In the case of the above example, the number of tiles TN acquired in step S1003 is 35. When the process of step S1006 ends, the process proceeds to step S1302.

ステップS1302では、ステップS1301で求めた余りxが0より大きいか否かを判定する。余りxが0よりも大きい場合(ステップS1302でYES)はステップS1303へ進み、余りxよりも大きくない、即ち、0と等しい場合(ステップS1302でNO)はステップS1305へ進む。つまり、画質選択肢数Mがレイヤ数Qで割り切れたかどうかを調べ、割り切れる場合(ステップS1302でNO)はステップS1305へ処理を進め、割り切れない場合(ステップS1302でYES)は、余りxの回数だけステップS1303、ステップS1304の処理を繰り返す。   In step S1302, it is determined whether the remainder x obtained in step S1301 is greater than zero. If the remainder x is greater than 0 (YES in step S1302), the process proceeds to step S1303. If the remainder x is not greater than x, that is, equal to 0 (NO in step S1302), the process proceeds to step S1305. That is, it is checked whether the number M of image quality options is divisible by the number Q of layers. If it is divisible (NO in step S1302), the process proceeds to step S1305. The processes of S1303 and step S1304 are repeated.

上記の例の場合、ステップS1006からステップS1302の処理に入った時点では、x=1であるので、ステップS1303へ進むことになる。   In the case of the above example, since x = 1 at the time of entering the process from step S1006 to step S1302, the process proceeds to step S1303.

ステップS1303では、ステップS1201で取得した、各パケットのレイヤに分割できるビットプレーンの境界の位置情報に基づいて、レイヤをビットプレーンの境界で分割することにより、タイルtのレイヤqを(b+1)のレイヤに分割し、それぞれをtmp_incのタイルtのレイヤnq〜レイヤ(nq+b)とするする。つまり、パケットqのパケットヘッダを解析し、ステップS1201で取得した、レイヤ分割できるポイントが、パケットqのどの位置に当たるのかを特定する。その特定された箇所で、packet bodyを分割し、それぞれのpacket bodyに対応するpacket headerを新たに作成し、packet bodyとあわせることで、パケットを分割する。   In step S1303, the layer q of the tile t is set to (b + 1) by dividing the layer at the bit plane boundary based on the position information of the bit plane boundary that can be divided into the layers of each packet acquired in step S1201. The layers are divided into layers nq to layer (nq + b) of tile t of tmp_inc. That is, the packet header of the packet q is analyzed, and the position in the packet q corresponding to the point that can be divided into layers acquired in step S1201 is specified. The packet body is divided at the specified location, a packet header corresponding to each packet body is newly created, and the packet is divided by combining with the packet body.

次に、ステップS1304では、オリジナルコードストリームのレイヤ番号のカウンタqを1つ増やし、temp_incのレイヤ番号の変数nqに(b+1)を加え、さらに、余りxを1減らし、ステップS1302に処理を戻す。   Next, in step S1304, the layer number counter q of the original code stream is incremented by 1, (b + 1) is added to the variable nq of the layer number of temp_inc, the remainder x is further decreased by 1, and the process returns to step S1302.

上記の例の場合、初めてステップS1303に入った時点では、q=0, b=1であるので、オリジナルコードストリームのレイヤ0は2レイヤに分割され、それぞれtmp_incのレイヤ0, レイヤ1になる。その後、ステップS1304でq=1, nq=2, x=0となり、ステップS1302に処理を戻すことになる。ステップS1302に戻った時点では、x=0になっているので、ステップS1305に進むことになる。   In the case of the above example, since q = 0 and b = 1 at the time of entering step S1303 for the first time, layer 0 of the original codestream is divided into two layers, which become layer 0 and layer 1 of tmp_inc, respectively. Thereafter, in step S1304, q = 1, nq = 2, and x = 0, and the process returns to step S1302. Since x = 0 at the time of returning to step S1302, the process proceeds to step S1305.

ステップS1305では、タイルtのレイヤqをb個のレイヤに分割し、tmp_incのレイヤnq〜レイヤ(nq+b−1)とする処理を行う。この処理もステップS1303と同様に、ステップS1201で取得した、各パケットのレイヤに分割できるビットプレーンの境界の位置情報に基づいて、レイヤをビットプレーンの境界で分割することにより、分割処理を行う。   In step S1305, the layer q of the tile t is divided into b layers, and processing of layer nq to layer (nq + b-1) of tmp_inc is performed. Similarly to step S1303, this processing is also performed by dividing the layer at the boundary of the bit plane based on the position information of the boundary of the bit plane that can be divided into the layers of each packet acquired in step S1201.

次に、ステップS1306では、オリジナルコードストリームのレイヤ番号の変数qに1を加え、tmp_incのレイヤ番号変数nqにbを加える。   In step S1306, 1 is added to the variable q of the layer number of the original code stream, and b is added to the layer number variable nq of tmp_inc.

ステップS1307では、tmp_incのレイヤ番号変数nqが、画質選択肢数Mと等しいか否かを判定する。nq=Mの場合(ステップS1307でYES)は、M個のレイヤに分割し終えたと判断し、ステップS1013へ進む。nqとMが等しくない場合(ステップS1307でNO)は、オリジナルコードストリームのレイヤをさらに分割する必要があると判断し、ステップS1305へ処理を戻し、さらに、ステップS1305、S1306の処理を継続する。   In step S1307, it is determined whether or not the layer number variable nq of tmp_inc is equal to the number M of image quality choices. If nq = M (YES in step S1307), it is determined that the division into M layers has been completed, and the process proceeds to step S1013. If nq is not equal to M (NO in step S1307), it is determined that the layer of the original codestream needs to be further divided, the process returns to step S1305, and the processes of steps S1305 and S1306 are continued.

上記の例の場合、ステップS1302からステップS1305へ移った時点で、q=1, nq=2, b=1となっているので、ステップS1305でオリジナルコードストリームのレイヤ 1を1つのレイヤに分割する。この場合は、分割前後でレイヤ数が変化しないため、オリジナルコードストリームのレイヤ1を分割する必要が無く、そのまま、tmp_incのレイヤ 2となる。   In the case of the above example, since q = 1, nq = 2, and b = 1 when moving from step S1302 to step S1305, layer 1 of the original codestream is divided into one layer in step S1305. . In this case, since the number of layers does not change before and after the division, there is no need to divide layer 1 of the original code stream, and layer 2 of tmp_inc is used as it is.

そしてステップS1306では、q=2, nq=2+1=3となり、ステップS1307でnq=M=3から、nqとMは等しい(ステップS1307でYES)と判断され、ステップS1013へ処理を進めることになる。   In step S1306, q = 2 and nq = 2 + 1 = 3. Since nq = M = 3 in step S1307, it is determined that nq and M are equal (YES in step S1307), and the process proceeds to step S1013. .

ステップS1013からステップS1016までは、第1実施形態の図10の処理と同様であるので、説明は省略する。   Steps S1013 to S1016 are the same as the processing in FIG. 10 of the first embodiment, and thus description thereof is omitted.

上記のように、本実施形態では、予め、各パケットについてレイヤ分割できるビットプレーンの境界の位置情報を解析しておき、レイヤ分割処理において、この情報を用いてパケットの分割処理を行うように構成したことで、コードストリームの変換の処理を簡略化することができ、変換時間をさらに短縮することができる。即ち、完全にデコードした状態から再エンコードするのではなく、レイヤ分割できるビットプレーンの境界の位置情報に基づいて、DWT係数の段階でパケットの分割を行うことで、コードストリームの変換時間を更に短縮することができる。   As described above, in this embodiment, the position information of the boundary of the bit plane that can be layer-divided for each packet is analyzed in advance, and the packet division processing is performed using this information in the layer division processing. As a result, the code stream conversion process can be simplified, and the conversion time can be further shortened. In other words, instead of re-encoding from a completely decoded state, the code stream conversion time is further reduced by performing packet division at the DWT coefficient stage based on the position information of the boundary of the bit plane that can be divided into layers. can do.

〔第3実施形態〕
第1、第2実施形態では、サーバ側でクライアントの上位アプリケーションが提供する画質選択肢数に合わせて、コードストリームの変換を行っていた。このコードストリーム変換は必ずしもサーバで行う必要はなく、クライアント側で行うように構成してもよい。 本実施形態では、アプリケーションの画質選択肢数に合わせて、クライアントが変換コードストリームを作成する。まず、アプリケーションの画質選択肢に、サーバにあるJPEG2000符号化データのレイヤをマッピングする。その後、アプリケーションの表示要求に基づいてJPIPリクエストを作成し、サーバにデータを要求する。サーバから返送されたデータを、サーバ側のエンコード条件のままキャッシュする。そのキャッシュデータからアプリケーションに表示用コードストリームを渡す際に、画質選択肢数に合わせて、コードストリーム変換を行う。尚、サーバ側が保持するJPEG200画像データには、第2実施形態と同様に、各パケットの中でレイヤに分割できるビットプレーンの境界の位置情報がベンダー定義の情報として、それぞれのファイルのUUID boxの中に独自の形式で格納されているものとする。クライアントは、この分割位置(ビットプレーンの境界の位置)の情報を利用してコードストリーム変換を行う。
[Third Embodiment]
In the first and second embodiments, the code stream conversion is performed on the server side in accordance with the number of image quality options provided by the upper application of the client. This code stream conversion is not necessarily performed by the server, but may be configured to be performed by the client side. In this embodiment, the client creates a conversion code stream in accordance with the number of image quality options of the application. First, the layer of JPEG2000 encoded data in the server is mapped to the image quality option of the application. Thereafter, a JPIP request is created based on the application display request, and data is requested from the server. The data returned from the server is cached with the server side encoding conditions. When the display code stream is transferred from the cache data to the application, code stream conversion is performed in accordance with the number of image quality options. As in the second embodiment, the JPEG200 image data held on the server side includes bit plane boundary position information that can be divided into layers in each packet as vendor-defined information in the UUID box of each file. It shall be stored in its own format. The client performs code stream conversion using information on the division position (bit plane boundary position).

(クライアント処理)
このような動作をするクライアントについて、図14を参照して説明する。図14は、クライアント処理の流れを示したフローチャートである。
(Client processing)
A client that operates in this manner will be described with reference to FIG. FIG. 14 is a flowchart showing the flow of client processing.

まず、ステップS1401では、クライアント上の上位アプリケーションから提供画質選択肢数Mを取得する。以下、低・中・高の3つの画質選択肢数を持つ場合について例示的に説明する。   First, in step S1401, the number M of provided image quality options is acquired from the upper application on the client. Hereinafter, a case where there are three image quality option numbers of low, medium, and high will be described as an example.

次に、ステップS1402では、上位アプリケーションから画像データの表示要求を取得する。ここでは、表示したい画像ファイルの名前、その画像全体のサイズや、その中の表示したい部分領域の位置と大きさ及び、画質などに関する要求事項を取得する。なお、提供画質選択肢数MをステップS1401ではなく、この要求事項に含めて取得するように構成してもよい。   In step S1402, a display request for image data is acquired from the upper application. In this case, the requirements regarding the name of the image file to be displayed, the size of the entire image, the position and size of the partial area to be displayed, the image quality, and the like are acquired. Note that the number M of provided image quality options may be acquired in this requirement instead of in step S1401.

次に、ステップS1403では、ステップS1402でアプリケーションから受け取った要求事項に記述された画像データに対応するファイルが、クライアント上の所定の記憶装置(例えば、一時記憶102、二次記憶103等)に存在するか否かを判定する。キャッシュデータが存在しない場合(ステップS1403でYES)はステップS1404へ進み、キャッシュデータが存在する場合(ステップS1403でNO)はステップS1406へ進む。   Next, in step S1403, a file corresponding to the image data described in the request received from the application in step S1402 exists in a predetermined storage device (eg, temporary storage 102, secondary storage 103, etc.) on the client. It is determined whether or not to do. If cache data does not exist (YES in step S1403), the process proceeds to step S1404. If cache data exists (NO in step S1403), the process proceeds to step S1406.

ステップS1404では、ステップS1402で取得した要求事項に基づいて、表示したい画像のmain headerと各パケット情報を含む、画像の送信要求(リクエスト)情報をサーバに送出する。このパケット情報とは、1レイヤを複数のレイヤに分割可能な位置の情報、即ち、ビットプレーンの境界の位置情報であり、本実施形態の場合、UUID boxがこれに相当する。   In step S1404, based on the requirements acquired in step S1402, image transmission request (request) information including the main header of the image to be displayed and each packet information is sent to the server. This packet information is information on the position where one layer can be divided into a plurality of layers, that is, position information on the boundary of the bit plane. In the present embodiment, this corresponds to the UUID box.

次に、ステップS1405では、サーバから返送されたmain headerとパケット情報を受信し、クライアント上の所定の記憶装置(例えば、一時記憶102、二次記憶103等)にキャッシュとして保存する。そして、ステップS1406へ進む。   In step S1405, the main header and packet information returned from the server are received and stored as a cache in a predetermined storage device (eg, temporary storage 102, secondary storage 103, etc.) on the client. Then, the process proceeds to step S1406.

ステップS1406では、キャッシュされたmain headerを解析し、サーバから受信した画像データを構成するレイヤ数Qを取得する。これは、CODマーカを解析することで得られる。   In step S1406, the cached main header is analyzed, and the number Q of layers constituting the image data received from the server is acquired. This is obtained by analyzing the COD marker.

次に、ステップS1407では、ステップS1406で取得したレイヤ数QとステップS1401で取得した提供画質数Mの対応関係を作成する。この対応関係の作成処理については、図15を参照して後述する。上記の例の場合、sample.jp2が要求されていれば、低レベルおよび中レベルの画質に対応するのはレイヤ0、高レベルの画質はレイヤ1となる。example.jp2が要求されていれば、低レベルにはレイヤ0とレイヤ1、中レベルにはレイヤ2とレイヤ3、高レベルにはレイヤ4が対応する。   In step S1407, a correspondence relationship between the number of layers Q acquired in step S1406 and the number of provided image quality M acquired in step S1401 is created. The correspondence creation process will be described later with reference to FIG. In the case of the above example, if sample.jp2 is requested, layer 0 corresponds to the low-level and medium-level image quality, and layer 1 corresponds to the high-level image quality. If example.jp2 is requested, layers 0 and 1 correspond to the low level, layers 2 and 3 correspond to the middle level, and layer 4 corresponds to the high level.

次に、ステップS1408では、ステップS1407で作成された対応関係から、表示要求画質をレイヤにマッピングする。表示要求画質が複数のレイヤと対応付けられている場合には、その中で最も高画質なレイヤにマッピングする。上記の例では、例えば、アプリケーションがexample.jp2を中レベルで表示したいと要求した場合、レイヤ2とレイヤ3のうち、高画質のレイヤであるレイヤ3にマッピングすることになる。   In step S1408, the display request image quality is mapped to a layer from the correspondence created in step S1407. When the display required image quality is associated with a plurality of layers, it is mapped to the highest image quality layer. In the above example, for example, when the application requests to display example.jp2 at a medium level, the layer 2 and the layer 3 are mapped to the layer 3 that is a high-quality layer.

次に、ステップS1409ではキャッシュデータを参照し、上位アプリケーションから要求された表示を行うために、キャッシュされたデータで不足がないか否かを判定する。不足データがあると判定した場合(ステップS1409でYES)は、ステップS1410へ進み、不足データがないと判定した場合(ステップS1409でNO)は、ステップS1412に進む。   Next, in step S1409, the cache data is referred to, and it is determined whether or not there is a shortage of cached data in order to perform the display requested by the upper application. If it is determined that there is insufficient data (YES in step S1409), the process proceeds to step S1410. If it is determined that there is no insufficient data (NO in step S1409), the process proceeds to step S1412.

ステップS1410では、JPIPリクエストを作成し、サーバに送信する。JPIPリクエストの作成処理は、例えば、通常のJPIPクライアントが行う処理と同様の処理を採用することができる。   In step S1410, a JPIP request is created and transmitted to the server. For the JPIP request creation processing, for example, processing similar to processing performed by a normal JPIP client can be employed.

次に、ステップS1411では、サーバからのレスポンスデータを受信し、キャッシュする。キャッシュ手法については、例えば、特許文献3で開示されている手法を用いてもよいし、その他の手法を用いてもよい。キャッシュ手法については、本件の主眼ではないので、説明は省略する。そして、ステップS1412へ進む。   Next, in step S1411, response data from the server is received and cached. As for the cache method, for example, the method disclosed in Patent Document 3 may be used, or other methods may be used. The cache method is not the main point of this case, so the explanation is omitted. Then, the process proceeds to step S1412.

ステップS1412では、キャッシュデータから表示用のコードストリームを作成し、画像の表示要求を出したアプリケーションに表示用コードストリームを提供する。この際、レイヤ数Qを提供画質選択肢数Mと同一にするように変換する。これは、第1、第2実施形態と同様の処理で実現できる。つまり、Q=Mの場合は変換しない。Q>Mの場合には図10に示した処理(レイヤ合成処理)と同様の処理を行う。Q<Mの場合には、図13に示した処理(レイヤ分割処理)と同様の処理を行う。   In step S1412, a code stream for display is created from the cache data, and the display code stream is provided to the application that has issued the image display request. At this time, the number of layers Q is converted to be the same as the number M of provided image quality options. This can be realized by the same processing as in the first and second embodiments. That is, no conversion is performed when Q = M. When Q> M, the same processing as the processing (layer synthesis processing) shown in FIG. 10 is performed. In the case of Q <M, the same processing as the processing (layer division processing) shown in FIG. 13 is performed.

次に、ステップS1413では、上位アプリケーションが、ステップS1412で作成されたコードストリームを受け取り、そのコードストリームをデコードして出力デバイス105に画像を表示する。   In step S <b> 1413, the upper application receives the code stream created in step S <b> 1412, decodes the code stream, and displays an image on the output device 105.

次に、ステップS1414では、新しい表示要求があるか否かを判定し、新たな表示要求がある場合(ステップS1414でYES)はステップS1415へ進み、表示要求が無い場合(ステップS1414でNO)は、このフローを終了する。   Next, in step S1414, it is determined whether or not there is a new display request. If there is a new display request (YES in step S1414), the process proceeds to step S1415, and if there is no display request (NO in step S1414). This flow is finished.

ステップS1415では、アプリケーションからの新たな表示要求を取得し、ステップS1408へ処理を戻す。   In step S1415, a new display request from the application is acquired, and the process returns to step S1408.

(対応関係作成処理)
次に、ステップS1407における、レイヤ数Qと提供画質数Mの対応関係作成処理について、図15を参照して説明する。図15は、対応関係作成処理の流れを示したフローチャートである。
(Correspondence creation process)
Next, the correspondence creation process between the number of layers Q and the number of provided image quality M in step S1407 will be described with reference to FIG. FIG. 15 is a flowchart showing the flow of correspondence creation processing.

ステップS1501では、提供画質カウンタiとレイヤカウンタqの双方に0を代入して、初期化する。これらの値は、一時記憶102等に領域を確保して一時的に記憶するものとする。   In step S1501, initialization is performed by substituting 0 into both the provided image quality counter i and the layer counter q. These values are temporarily stored with an area secured in the temporary storage 102 or the like.

次に、ステップS1502では、レイヤ数Qと提供画質数Mが等しいか否かを判定し、等しい場合(ステップS1502でYES)はステップS1503へ進み、異なる場合(ステップS1502でNO)はステップS1506へ進む。   Next, in step S1502, it is determined whether or not the number of layers Q and the provided image quality number M are equal. If they are equal (YES in step S1502), the process proceeds to step S1503. move on.

ステップS1503以降の処理では、レイヤ数Qと提供画質数Mが同数であるので、レイヤと提供画質を1対1に対応させる処理を行う。   In the processing after step S1503, since the number of layers Q and the number of provided image quality M are the same, processing for associating the layer with the provided image quality one-to-one is performed.

ステップS1503では、各提供画質レベルに対応するレイヤ番号を格納する配列m[i]にレイヤ番号qを代入する。この配列m[i]も、一時記憶102等に領域を確保して一時的に記憶するものとする。   In step S1503, the layer number q is substituted into the array m [i] that stores the layer number corresponding to each provided image quality level. This array m [i] is also temporarily stored with an area secured in the temporary storage 102 or the like.

次に、ステップS1504では、提供画質カウンタi、およびレイヤカウンタqの値をそれぞれ1増やす。次に、ステップS1505では、提供画質カウンタiの値と提供画質数Mの値を比較し、等しい場合(ステップS1505でYES)はこのフローを終了し、異なる場合(ステップS1505でNO)はステップS1503へ処理を戻し、更にステップS1503、S1504の処理を繰り返す。   In step S1504, the provided image quality counter i and the layer counter q are each incremented by one. Next, in step S1505, the value of the provided image quality counter i is compared with the value of the provided image quality number M. If they are equal (YES in step S1505), this flow ends. If not (NO in step S1505), step S1503 is executed. The process is returned to step S1503 and steps S1504 are repeated.

上記の例の場合、sample.jp2のレイヤ数は2、example.jp2のレイヤ数は5、提供画質数は3であるので、sample.jp2、example.jp2のいずれのファイルへの要求であっても、ステップS1502からステップS1506へ処理を進める(ステップS1502でNO)ことになる。   In the case of the above example, sample.jp2 has 2 layers, example.jp2 has 5 layers, and the number of provided image quality is 3, so it is a request to either sample.jp2 or example.jp2. Also, the process proceeds from step S1502 to step S1506 (NO in step S1502).

ステップS1506では、レイヤ数Qと提供画質数Mの大小を比較する。QがMよりも大きい場合(ステップS1506でYES)はステップS1507へ進み、QがMよりも小さい場合(ステップS1506でNO)はステップS1514へ進む。上記の例の場合、sample.jp2への要求であれば、Q=2<M=3であるので、ステップS1514へ進み、example.jp2への要求であれば、Q=5>M=3であるので、ステップS1507へ進むことになる。   In step S1506, the number of layers Q is compared with the number of provided image quality M. If Q is larger than M (YES in step S1506), the process proceeds to step S1507. If Q is smaller than M (NO in step S1506), the process proceeds to step S1514. In the case of the above example, if Q = 2 <M = 3 if the request is for sample.jp2, the process proceeds to step S1514. If the request is for example.jp2, Q = 5> M = 3. Since there is, it will progress to step S1507.

ステップS1507では、レイヤ数Qを提供画質数Mで割り、商をb、余りをxとする。   In step S1507, the number of layers Q is divided by the number M of provided image quality, the quotient is b, and the remainder is x.

次に、ステップS1508では、各提供画質レベルに対応するレイヤ番号を格納する配列m[i]にレイヤq〜レイヤ(q+b−1)の番号q〜(q+b−1)を格納する。配列m[i]は、例えば、一時記憶102に必要な領域を確保し、一時的に値を保持するようにする。   Next, in step S1508, the numbers q to (q + b-1) of layer q to layer (q + b-1) are stored in the array m [i] for storing the layer numbers corresponding to the respective provided image quality levels. The array m [i] secures a necessary area in the temporary storage 102 and temporarily holds a value, for example.

次に、ステップS1509では、提供画質レベル用カウンタiに1加え、レイヤカウンタqにbを加える。   In step S1509, 1 is added to the provided image quality level counter i, and b is added to the layer counter q.

次に、ステップS1510では、提供画質レベル用カウンタiと、提供画質数MからステップS1507で求めた余りxを引いた値とを比較し、値が等しい場合(ステップS1510でYES)はステップS1511へ進み、値が異なる場合(ステップS1510でNO)はステップS1508へ処理を戻し、さらにステップS1508、S1509の処理を繰り返す。このような処理を行うことで、(M−x)個の画質レベルに、b個のレイヤを割り当てることになる。   In step S1510, the provided image quality level counter i is compared with the value obtained by subtracting the remainder x obtained in step S1507 from the provided image quality number M. If the values are equal (YES in step S1510), the process advances to step S1511. If the values are different (NO in step S1510), the process returns to step S1508, and the processes in steps S1508 and S1509 are repeated. By performing such processing, b layers are allocated to (M−x) image quality levels.

ステップS1511では、値xが0より大きいか否かを判定する。0より大きい場合(ステップS1511でYES)はステップS1512へ進み、そうでない場合(ステップS1511でNO)はこのフローを終了する。   In step S1511, it is determined whether the value x is greater than zero. If greater than 0 (YES in step S1511), the process proceeds to step S1512. If not (NO in step S1511), the flow ends.

ステップS1512では、各提供画質レベルに対応するレイヤ番号を格納する配列m[i]にレイヤq〜レイヤ(q+b)の番号q〜(q+b)
次に、ステップS1513では、提供画質レベル用カウンタiに1を加え、レイヤカウンタqに(b+1)を加え、xの値を一つ減らす。
In step S1512, layer q to layer (q + b) numbers q to (q + b) are stored in an array m [i] that stores layer numbers corresponding to the respective provided image quality levels.
In step S1513, 1 is added to the provided image quality level counter i, (b + 1) is added to the layer counter q, and the value of x is decreased by one.

つまり、xはステップS1507で求めた余りxの値であるので、Q÷Mが割り切れる場合は、ステップS1512およびステップS1513の処理を一度も実行せずにこのフローを終了し、割り切れない場合は、余りxの回数だけ、ステップS1512とステップS1513の処理を繰り返すことになる。   In other words, since x is the value of the remainder x obtained in step S1507, if Q ÷ M is divisible, this flow is terminated without executing steps S1512 and S1513, and if not divisible, The processes in steps S1512 and S1513 are repeated as many times as the remainder x.

上記の例では、example.jp2への要求を行った場合、Q=5, M=3であるので、Q÷M=5÷3=1余り2となる。したがって、ステップS1511までに、最初のレベル(レベル低)にレイヤ0が割り当てる処理を行う。さらに、ステップS1511〜S1513によって、2番目のレベル(レベル中)にレイヤ1とレイヤ2を、3番目のレベル(レベル高)にレイヤ3とレイヤ4を割り当てる処理を行う。   In the above example, when a request is made to example.jp2, since Q = 5 and M = 3, Q ÷ M = 5 ÷ 3 = 1 remainder 2. Therefore, processing for assigning layer 0 to the first level (level low) is performed by step S1511. Further, in steps S1511 to S1513, processing for assigning layer 1 and layer 2 to the second level (medium level) and assigning layer 3 and layer 4 to the third level (level high) is performed.

上述のように、本実施形態において、sample.jp2への要求を行った場合、Q=2<M=3であるため、処理はステップS1506からステップS1514へ進められる。   As described above, in the present embodiment, when a request is made to sample.jp2, since Q = 2 <M = 3, the process proceeds from step S1506 to step S1514.

ステップS1514では、提供画質数Mをレイヤ数Qで割り算し、商をb、余りをxとする。   In step S1514, the provided image quality number M is divided by the layer number Q, the quotient is b, and the remainder is x.

次に、ステップS1515では、各提供画質レベルに対応するレイヤ番号を格納する配列m[i]〜m[i+b−1]にレイヤqの番号qを代入する。配列m[i]は、上記と同様に、例えば、一時記憶102に必要な領域を確保し、一時的に値を保持するように構成する。   Next, in step S1515, the number q of the layer q is substituted into an array m [i] to m [i + b-1] that stores the layer number corresponding to each provided image quality level. Similar to the above, the array m [i] is configured to reserve a necessary area in the temporary storage 102 and temporarily hold a value, for example.

次に、ステップS1516では、提供画質レベル用カウンタiにbを加える処理を行う。   In step S1516, a process of adding b to the provided image quality level counter i is performed.

次に、ステップS1517では、xの値が0より大きいか否かを判定する。xの値が0より大きい場合(ステップS1517でYES)はステップS1518へ進み、そうでない場合(ステップS1517でNO)はステップS1520へ進む。   Next, in step S1517, it is determined whether or not the value of x is greater than zero. If the value of x is greater than 0 (YES in step S1517), the process proceeds to step S1518. If not (NO in step S1517), the process proceeds to step S1520.

ステップS1518では、各提供画質レベルに対応するレイヤ番号を格納する配列m[i]にレイヤqの番号qを代入する。   In step S1518, the number q of the layer q is substituted into the array m [i] that stores the layer number corresponding to each provided image quality level.

次に、ステップS1519では、提供画質レベル用カウンタiに1を加え、xの値を一つ減らす。そして、ステップS1520へ進む。   In step S1519, 1 is added to the provided image quality level counter i, and the value of x is decreased by one. Then, the process proceeds to step S1520.

ステップS1520では、レイヤカウンタqに1を加える。   In step S1520, 1 is added to the layer counter q.

次に、ステップS1521では、提供画質レベル用カウンタiと提供画質数Mの値を比較する。提供画質レベル用カウンタiと提供画質数Mが等しい場合(ステップS1521でYES)はこのフローを終了し、異なる場合(ステップS1521でNO)には、処理をステップS1515へ戻し、ステップS1515〜S1520の処理を繰り返す。つまり、ステップS1514で求めた余りxと同数のレイヤまでは、1つのレイヤを(b+1)個の提供画質レベルに分割し、残りの(Q−x)個のレイヤは、1つのレイヤをb個の提供画質レベルで分割することになる。   In step S1521, the provided image quality level counter i is compared with the provided image quality number M. If the provided image quality level counter i is equal to the provided image quality number M (YES in step S1521), this flow ends. If not (NO in step S1521), the process returns to step S1515, and steps S1515 to S1520 are performed. Repeat the process. That is, up to the same number of layers as the remainder x obtained in step S1514, one layer is divided into (b + 1) provided image quality levels, and the remaining (Q−x) layers are b one layer. Will be divided at the provided image quality level.

上記の例においてsample.jp2へ要求を行った場合、Q=2, M=3であるので、M÷Q=3÷2=1余り1となる。したがって、レイヤ0を2個の提供画質レベル(レベル低、中)に分割して割り当て、レイヤ1を1個の提供画質レベル(レベル高)に割り当てることになる。   In the above example, when a request is made to sample.jp2, since Q = 2 and M = 3, M ÷ Q = 3 ÷ 2 = 1 and the remainder is 1. Therefore, layer 0 is divided and assigned to two provided image quality levels (level low and medium), and layer 1 is assigned to one provided image quality level (level high).

上記のように、本実施形態の構成においては、クライアント側でコードストリームの変換の処理を行うことで、オリジナルコードストリームのレイヤ数と、クライアントの上位アプリケーションが想定する画質レベル数とが一致しない場合においても、クライアント上の上位アプリケーションは予め設計された画質レベル数の画像データを取得、表示することができる。   As described above, in the configuration of the present embodiment, when the code stream conversion process is performed on the client side, the number of layers of the original code stream does not match the number of image quality levels assumed by the upper application of the client In this case, the host application on the client can acquire and display image data of the number of image quality levels designed in advance.

また、クライアント上にキャッシュされたコードストリームをアプリケーションに渡すコードストリームに変換する際に、アプリケーションが必要とする画質数に変換するように構成したことで、異なるデザインを持つ複数のアプリケーション間で、一つのキャッシュデータを共有することができる。即ち、同一のキャッシュデータから、アプリケーションの様々な用途に合わせて多様なコードストリームを生成することができる。このため、クライアントのキャッシュの容量は、オリジナルコードストリームを格納できる程度の容量があればよい。   In addition, when the code stream cached on the client is converted to the code stream to be passed to the application, it is converted to the number of image quality required by the application. Two cache data can be shared. That is, various code streams can be generated from the same cache data in accordance with various uses of the application. Therefore, the capacity of the client cache only needs to be large enough to store the original code stream.

〔第4実施形態〕
第1乃至第3実施形態では、ネットワークを介してJPEG2000画像を断片的に送受信するサーバ/クライアントシステムについて述べた。しかし、ネットワークを経由せず、クライアントに接続された、或いは、クライアントに備えられた、CD−ROM等のメディアや外部記憶装置等から画像データをダウンロードし、上位アプリケーションに画像データを渡し、表示処理を実行する際に、アプリケーションに合わせて、レイヤ数を変換するように構成してもよい。
[Fourth Embodiment]
In the first to third embodiments, a server / client system that transmits and receives JPEG2000 images in a fragmented manner via a network has been described. However, the image data is downloaded from a medium such as a CD-ROM or an external storage device connected to the client or provided in the client without passing through the network, and the image data is transferred to the host application and displayed. May be configured to convert the number of layers in accordance with the application.

(ダウンロードデータの変換処理)
JPEG2000画像のデータをダウンロードし、必要に応じてレイヤ数を変換する処理(ダウンロードデータの変換処理)について、図16を参照して説明する。図16は、ダウンロードデータの変換処理の流れを示したフローチャートである。
(Download data conversion process)
Processing for downloading JPEG 2000 image data and converting the number of layers as necessary (download data conversion processing) will be described with reference to FIG. FIG. 16 is a flowchart showing the flow of download data conversion processing.

ステップS1601では、画像データを利用する(例えば、表示する等)アプリケーションが提供する、画質数Mを取得する。   In step S1601, the image quality number M provided by an application that uses (for example, displays) image data is acquired.

次に、ステップS1602では、表示する全ての画像データファイルをCD−ROM等のメディアや外部記憶装置等からダウンロードする。   In step S1602, all the image data files to be displayed are downloaded from a medium such as a CD-ROM or an external storage device.

次に、ステップS1603では、ステップS1602でダウンロードした画像のmain headerを解析し、レイヤ数Qを取得する。   In step S1603, the main header of the image downloaded in step S1602 is analyzed, and the number Q of layers is acquired.

次に、ステップS1604では、ステップS1601で取得した提供画質数Mに合わせて、ステップS1602でダウンロードしたファイルのレイヤ数Qを変更した画像データを作成する。この処理は、例えば、第1乃至第3実施形態の処理のいずれかを採用することができる。   In step S1604, image data is created by changing the layer number Q of the file downloaded in step S1602 in accordance with the provided image quality number M acquired in step S1601. For this process, for example, any one of the processes of the first to third embodiments can be adopted.

次に、ステップS1605では、ステップS1604で作成した画像データを、上位アプリケーションに転送し、このフローを終了する。画像データを受け取った上位アプリケーションは、レイヤ数が変更された画像データを利用して処理を行うことができる。   In step S1605, the image data created in step S1604 is transferred to the upper application, and this flow ends. The host application that has received the image data can perform processing using the image data whose number of layers has been changed.

本実施形態の構成においては、外部記憶装置から画像データをファイル単位でダウンロードし、そのレイヤ数をアプリケーション(のUIデザイン)が想定する画質レベル数に基づいて変更してからアプリケーションに渡すため、レイヤの分割配信を伴うことなく、1回の変換処理により画像データをアプリケーションに対応したレイヤ数に変換することができる。   In the configuration of the present embodiment, the image data is downloaded from the external storage device in units of files, the number of layers is changed based on the number of image quality levels assumed by the application (UI design), and then passed to the application. Therefore, the image data can be converted into the number of layers corresponding to the application by a single conversion process without being divided and distributed.

〔その他の実施形態〕
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
[Other Embodiments]
As described above, the exemplary embodiments of the present invention have been described in detail. However, the present invention can take an embodiment as, for example, a system, an apparatus, a method, a program, or a storage medium. You may apply to the system comprised from an apparatus, and may apply to the apparatus which consists of one apparatus.

尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。   The present invention can also be achieved by supplying a program that realizes the functions of the above-described embodiment directly or remotely to a system or apparatus, and the computer of the system or apparatus reads and executes the supplied program code. Including the case where it is achieved.

従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。   Therefore, since the functions of the present invention are implemented by a computer, the program code installed in the computer is also included in the technical scope of the present invention. That is, the present invention includes a computer program itself for realizing the functional processing of the present invention.

その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。   In that case, as long as it has the function of a program, it may be in the form of object code, a program executed by an interpreter, script data supplied to the OS, or the like.

プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。   As a recording medium for supplying the program, for example, floppy (registered trademark) disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card ROM, DVD (DVD-ROM, DVD-R) and the like.

その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。   As another program supply method, a client computer browser is used to connect to an Internet homepage, and the computer program of the present invention itself or a compressed file including an automatic installation function is downloaded from the homepage to a recording medium such as a hard disk. Can also be supplied. It can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. That is, a WWW server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer is also included in the present invention.

また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。 また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。   In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and key information for decryption is downloaded from a homepage via the Internet to users who have cleared predetermined conditions. It is also possible to execute the encrypted program by using the key information and install the program on a computer. In addition to the functions of the above-described embodiments being realized by the computer executing the read program, the OS running on the computer based on an instruction of the program is a part of the actual processing. Alternatively, the functions of the above-described embodiment can be realized by performing all of them and performing the processing.

さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。   Furthermore, after the program read from the recording medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion board or The CPU or the like provided in the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing.

本実施形態の構成における、サーバ及びクライアントのハードウェア構成を示したブロック図である。It is the block diagram which showed the hardware constitutions of the server and client in the structure of this embodiment. 本実施形態の構成におけるシステムの概略を示した模式図である。It is the schematic diagram which showed the outline of the system in the structure of this embodiment. JPEG2000の符号化データの概略図である。It is the schematic of the encoding data of JPEG2000. レイヤとビットプレーンとの関係を示した図である。It is the figure which showed the relationship between a layer and a bit plane. パケット単位のリクエストおよびレスポンスの対応関係を示した図である。It is the figure which showed the correspondence of the request and response of a packet unit. precinct data-binの構造の概略図である。It is the schematic of the structure of precinct data-bin. JPIP Response Dataの一例を示す図である。It is a figure which shows an example of JPIP Response Data. サーバ装置の処理の流れを示したフローチャートである。It is the flowchart which showed the flow of the process of the server apparatus. 返送コードストリーム設定処理の流れを示したフローチャートである。It is the flowchart which showed the flow of the return code stream setting process. ファイル変換処理の流れを示したフローチャートである。It is the flowchart which showed the flow of the file conversion process. CODマーカの構成を模式的に示した図である。It is the figure which showed the structure of the COD marker typically. 返送コードストリーム設定処理の流れを示したフローチャートである。It is the flowchart which showed the flow of the return code stream setting process. レイヤ分割処理の流れを示したフローチャートである。It is the flowchart which showed the flow of the layer division | segmentation process. クライアント処理の流れを示したフローチャートである。It is the flowchart which showed the flow of the client process. 対応関係作成処理の流れを示したフローチャートである。It is the flowchart which showed the flow of the correspondence creation process. ダウンロードデータの変換処理の流れを示したフローチャートである。It is the flowchart which showed the flow of the conversion process of download data.

Claims (10)

複数のレイヤから構成された画像データの要求であって、少なくともレイヤ数の指定が含まれる要求を受け付ける受付手段と、
指定された前記レイヤ数と、要求された前記画像データのレイヤの数とが一致するか否かを判定する判定手段と、
前記判定手段において一致しないと判定された場合に、前記画像データを、指定された前記レイヤ数で構成される画像データに変換する変換手段と、を備えることを特徴とする情報処理装置。
An accepting means for accepting a request for image data composed of a plurality of layers, at least including a designation of the number of layers;
Determination means for determining whether or not the specified number of layers matches the number of layers of the requested image data;
An information processing apparatus comprising: conversion means for converting the image data into image data composed of the designated number of layers when the determination means determines that they do not match.
前記変換手段は、
前記画像データを構成する複数の前記レイヤを、指定された前記レイヤ数のグループに分類し、該グループ毎に、当該グループを構成する前記レイヤの集合を1つのレイヤに合成する合成手段を備え、
指定された前記レイヤ数が、要求された前記複数のレイヤから構成された画像データのレイヤの数よりも小さい場合、前記合成手段を利用して前記変換を行うことを特徴とする請求項1に記載の情報処理装置。
The converting means includes
A plurality of the layers constituting the image data are classified into a group of the specified number of layers, and for each group, combining means for combining the set of layers constituting the group into one layer;
2. The conversion is performed using the synthesizing unit when the designated number of layers is smaller than the number of layers of the requested image data composed of the plurality of layers. The information processing apparatus described.
前記グループを構成する前記レイヤの個数は、各グループについて、等しい、又は、1異なることを特徴とする請求項2に記載の情報処理装置。   The information processing apparatus according to claim 2, wherein the number of the layers constituting the group is equal or different for each group. 前記画像データを構成する前記レイヤは、1以上のビットプレーンから構成され、
前記装置内に前記レイヤを構成する前記ビットプレーンの境界の位置情報を保持し、
前記変換手段は、
指定された前記レイヤ数が、要求された前記複数のレイヤから構成された画像データのレイヤの数よりも大きい場合、前記位置情報に基づいて、前記レイヤを、前記ビットプレーンの境界で分割することにより、前記変換を行うことを特徴とする請求項1に記載の情報処理装置。
The layer constituting the image data is composed of one or more bit planes,
Holds the position information of the boundary of the bit plane constituting the layer in the device,
The converting means includes
When the specified number of layers is larger than the number of layers of the requested image data composed of the plurality of layers, the layers are divided at the boundary of the bit plane based on the position information. The information processing apparatus according to claim 1, wherein the conversion is performed.
前記情報処理装置は、ネットワークを経由して外部装置に接続されたサーバ装置であって、
前記受付手段は前記外部装置から前記要求を受け付け、
変換された前記画像データを前記外部装置へ送出する送出手段を更に備えることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
The information processing device is a server device connected to an external device via a network,
The accepting means accepts the request from the external device;
5. The information processing apparatus according to claim 1, further comprising a sending unit that sends the converted image data to the external apparatus.
前記画像データに基づいて処理を行うアプリケーション実行手段を更に備え、
前記受付手段は前記アプリケーション実行手段から前記要求を受け付け、
変換された前記画像データを前記アプリケーション実行手段へ受け渡す受渡手段を更に備えることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
Further comprising application execution means for performing processing based on the image data;
The accepting means accepts the request from the application executing means,
The information processing apparatus according to claim 1, further comprising a delivery unit that delivers the converted image data to the application execution unit.
前記複数のレイヤから構成された画像データは、JPEG2000方式に基づく符号化データであることを特徴とする請求項1乃至6のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the image data including the plurality of layers is encoded data based on a JPEG2000 system. 複数のレイヤから構成された画像データの要求であって、少なくともレイヤ数の指定が含まれる要求を受け付ける受付工程と、
指定された前記レイヤ数と、要求された前記画像データのレイヤの数とが一致するか否かを判定する判定工程と、
前記判定工程において一致しないと判定された場合に、前記画像データを、指定された前記レイヤ数で構成される画像データに変換する変換工程と、を備えることを特徴とする情報処理装置の制御方法。
An accepting step of accepting a request for image data composed of a plurality of layers, at least including a designation of the number of layers;
A determination step of determining whether or not the specified number of layers matches the number of layers of the requested image data;
And a conversion step of converting the image data into image data composed of the specified number of layers when it is determined in the determination step that they do not coincide with each other. .
コンピュータを請求項1乃至7のいずれかに記載の情報処理装置として機能させるためのコンピュータプログラム。   A computer program for causing a computer to function as the information processing apparatus according to claim 1. 請求項9に記載のコンピュータプログラムを格納したコンピュータで読み取り可能な記憶媒体。   A computer-readable storage medium storing the computer program according to claim 9.
JP2005171656A 2005-06-10 2005-06-10 Information processing device, its controlling method, computer program, and storage medium Pending JP2006345452A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005171656A JP2006345452A (en) 2005-06-10 2005-06-10 Information processing device, its controlling method, computer program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005171656A JP2006345452A (en) 2005-06-10 2005-06-10 Information processing device, its controlling method, computer program, and storage medium

Publications (1)

Publication Number Publication Date
JP2006345452A true JP2006345452A (en) 2006-12-21

Family

ID=37642030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005171656A Pending JP2006345452A (en) 2005-06-10 2005-06-10 Information processing device, its controlling method, computer program, and storage medium

Country Status (1)

Country Link
JP (1) JP2006345452A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009038607A (en) * 2007-08-02 2009-02-19 Sony Corp Image display device and image display method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003169216A (en) * 2001-11-29 2003-06-13 Canon Inc Method and apparatus for creating coded data
JP2004349939A (en) * 2003-05-21 2004-12-09 Canon Inc Method and device for image encoding and recording device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003169216A (en) * 2001-11-29 2003-06-13 Canon Inc Method and apparatus for creating coded data
JP2004349939A (en) * 2003-05-21 2004-12-09 Canon Inc Method and device for image encoding and recording device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009038607A (en) * 2007-08-02 2009-02-19 Sony Corp Image display device and image display method

Similar Documents

Publication Publication Date Title
JP4603947B2 (en) Image communication system, server apparatus and control method therefor, and computer program
JP4709493B2 (en) Method and product for communicating compressed digital images
EP1335561B1 (en) Method for document viewing
KR101016465B1 (en) Information processing device, information processing method, and recording medium having computer program recorded thereon
CN100394448C (en) Three-dimensional remote rendering system and method based on image transmission
JP4377103B2 (en) Image processing for JPEG2000 in a server client environment
US7236988B2 (en) Methods and systems for providing random access to structured media content
US7206804B1 (en) Methods and systems for transmitting digital images
JP2000504906A (en) Method and system for progressive asynchronous transmission of multimedia data
US7260614B2 (en) Methods and systems for scalable streaming of images with client-side control
JP2006191159A (en) Method and apparatus for image processing
JP2009021901A (en) Image transmitting apparatus, image transmitting method, receiving apparatus, and image transmitting system
JP2004274758A (en) Method and apparatus for converting jpp-stream into jpeg-2000 code stream
JP5515758B2 (en) Image processing apparatus and method
KR20120133006A (en) System and method for providing a service to streaming IPTV panorama image
US8577157B2 (en) Conditional replenishment for motion JPEG2000
JP4878487B2 (en) Information distribution apparatus, information distribution system, information processing method, and program
JP4315914B2 (en) Image reproducing apparatus and image reproducing method
Ponchio et al. ARIADNE Visual Media Service: easy web publishing of advanced visual media
JP4371982B2 (en) Image processing apparatus, control method therefor, computer program, and computer-readable storage medium
JP2006345452A (en) Information processing device, its controlling method, computer program, and storage medium
CN101395918B (en) Method and system for creating and applying dynamic media specification creator and applicator
JP2006339972A (en) Image processing apparatus and its control method, computer program, and storage medium
JP4125186B2 (en) Image processing method and image processing apparatus
JP5144771B2 (en) Image processing apparatus, image reproducing apparatus, image recording apparatus, image processing method, image reproducing method, and image recording method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110124

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110701