From 735b40989dabebc97259ea136ab709c963ba0274 Mon Sep 17 00:00:00 2001 From: Kaori Hagihara Date: Tue, 8 Nov 2011 10:21:24 +0000 Subject: [PATCH] [1.5][JPIP] backport r1042 to branch 1.5 --- applications/jpip/CHANGES | 3 +++ applications/jpip/doc/jpip_protocol.png | Bin 6305 -> 6376 bytes applications/jpip/mainpage.h | 24 ++++++++++++------------ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/applications/jpip/CHANGES b/applications/jpip/CHANGES index 2bdbdc0d..7d52da31 100644 --- a/applications/jpip/CHANGES +++ b/applications/jpip/CHANGES @@ -5,6 +5,9 @@ What's New for OpenJPIP ! : changed + : added +November 8, 2011 +! [kaori] updated main page of doxygen + November 3, 2011 * [kaori] solved memory leak of opj_server ! [kaori] removed redundant defines diff --git a/applications/jpip/doc/jpip_protocol.png b/applications/jpip/doc/jpip_protocol.png index b83070386ed0ff8a9d5a7c71127fd50f3d07b6bd..bc326d456d6b120e641561faa3ce6e7ec3ae0c6b 100644 GIT binary patch literal 6376 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 WT*>e+Gr(UDpsTt@Iyi0H@V^1&-`gnw diff --git a/applications/jpip/mainpage.h b/applications/jpip/mainpage.h index d7e127d2..a3c4e0ac 100644 --- a/applications/jpip/mainpage.h +++ b/applications/jpip/mainpage.h @@ -28,7 +28,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -/*! \mainpage OpenJPIP v1.0 Documentation +/*! \mainpage OpenJPIP v2.1 Documentation * * \section intro Introduction * This manual documents the low-level OpenJPIP C API.\n @@ -36,12 +36,12 @@ * ( For more info about JPIP, check the website: http://www.jpeg.org/jpeg2000/j2kpart9.html)\n * * This whole documents covers the following six programs.\n - * - opj_server.c JPIP server supporting HTTP connection and JPT-stream - * - opj_dec_server.c Server to decode JPT-stream and communicate locally with JPIP client, which is coded in java - * - addXMLinJP2.c To Embed metadata into JP2 file - * - jpip_to_jp2.c To Convert JPT-stream to JP2 - * - jpip_to_j2k.c To Convert JPT-stream to J2K - * - test_index.c To test index code format of a JP2 file + * - opj_server.c JPIP server supporting HTTP connection and JPT/JPP-stream + * - opj_dec_server.c Server to decode JPT/JPP-stream and communicate locally with JPIP client, which is coded in java + * - addXMLinJP2.c To Embed metadata into JP2 file + * - jpip_to_jp2.c To Convert JPT/JPP-stream to JP2 + * - jpip_to_j2k.c To Convert JPT/JPP-stream to J2K + * - test_index.c To test index code format of a JP2 file * * \section license License * This software is released under the BSD license, anybody can use or modify the library, even for commercial applications.\n @@ -66,8 +66,8 @@ * \section sysarchtect System Architecture * JPIP protocol is implimented between the JPIP server program (opj_server) and the JPIP client java program (opj_viewer).\n * Figure below represents the overview of our system architecture.\n - * The JPIP server parses JPIP query and sends corresponding JPT-stream. - * The JPIP client viewer is an image viewer with GUI to publish JPIP requests and receive JPT-stream.\n + * The JPIP server parses JPIP query and sends corresponding JPT/JPP-stream. + * The JPIP client viewer is an image viewer with GUI to publish JPIP requests and receive JPT/JPP-stream.\n * Particularly, our system has the image decoding module implemented on a server (opj_dec_server, Image decoding Server). * Image decoding Server and JPIP client viewer communicate closely. * This specific architecture enables sharing cache of image codestream data among all viewers connected to the same Image decoding Server not only locally but also remotely. @@ -81,9 +81,9 @@ * The Image decoding Server maintains the association between channel IDs and targets, and provides a reference channel ID to a Viewer on demand.\n * * Typical requests and replies among JPIP server, JPIP client, and Image decoding server is presented below.\n - * The JPIP server parses HTTP query and sends corresponding JPT-stream back to the JPIP client (Viewer). - * JPT-stream is unreadable by JPIP client, and it is directly passed to Image decoding Server, and which provides the image in raw format (PGM or PPM) to the JPIP client. - * The Image decoding Server handles the decoding and caching of JPT-stream. + * The JPIP server parses HTTP query and sends corresponding JPT/JPP-stream back to the JPIP client (Viewer). + * JPT/JPP-stream is unreadable by JPIP client, and it is directly passed to Image decoding Server, and which provides the image in raw format (PGM or PPM) to the JPIP client. + * The Image decoding Server handles the decoding and caching of JPT/JPP-stream. * JPIP client can read PGM and PPM images natively. * Before connecting to the JPIP server, every JPIP client checks local cache data of the requesting image with the image decoding server. * If its cache exists, the image decoding server provides ChannelID (CID), which identifies the image and its cache model on the JPIP server, and the whole system can continue the session using the CID.