AS ISO/IEC 15444.9:2024 identically adopts ISO/IEC 15444 9:2023, which defines, in an extensible manner, syntaxes and methods for the remote interrogation and optional modification of JPEG 2000 codestreams and files in accordance with their definition in Rec. ITU-T T.800 or ISO/IEC 15444 1 and other members of the Rec. ITU-T T.8xx or ISO/IEC 15444-x family of Recommendations and/or Standards
Table of contents
Header
About this publication
Preface
Foreword
Summary
Keywords
FOREWORD
NOTE
INTELLECTUAL PROPERTY RIGHTS
Introduction
1 Scope
2 Normative references
3 Definitions
3.1 JPEG 2000 definitions
3.2 HTTP definitions
3.3 JPIP definitions
3.4 Symbols
4 Abbreviations
5 Conventions
5.1 ABNF rules
5.2 File format ABNF rules
5.3 Key to graphical descriptions of boxes (informative)
6 General description
6.1 JPIP protocol
6.2 Purpose
7 Conformance
Annex A
A.1 Introduction
A.2 Message header structure
A.2.1 General
A.2.2 Message class identifiers
A.2.3 In-class identifiers
A.3 Data-bins
A.3.1 Introduction
A.3.2 Precinct data-bins
A.3.2.1 Precinct data-bin format
A.3.2.2 Precinct data-bin example (informative)
A.3.3 Tile header data-bins
A.3.4 Tile data-bins
A.3.5 Main header data-bin
A.3.6 Metadata-bins
A.3.6.1 Introduction to metadata-bins
A.3.6.2 Division of a logical target containing a JPEG 2000 file into metadata-bins
A.3.6.3 Placeholder box format
A.3.6.4 Referencing of incremental codestreams with placeholders
A.3.6.5 Using Placeholder boxes with MJ2 and J2KS files
A.3.6.6 Using Placeholder boxes with J2KI files
A.4 Conventions for parsing and delivery of JPP-streams and JPT-streams
A.5 Conventions for JPP-stream or JPT-stream interoperability (informative)
Annex B
B.1 Requests within a session vs. stateless requests
B.2 Channels and sessions
B.3 Cache model management
B.4 Interrogation and manipulation of model-sets
Annex C
C.1 Request syntax
C.1.1 Introduction
C.1.2 Request structure
C.1.3 Restrictions on combining request fields
C.2 Target identification fields
C.2.1 Introduction to logical targets
C.2.2 Target (target)
C.2.3 Sub-target (subtarget)
C.2.4 Target ID (tid)
C.3 Fields for working with sessions and channels
C.3.1 Introduction
C.3.2 Channel ID (cid)
C.3.3 New Channel (cnew)
C.3.4 Channel Close (cclose)
C.3.5 Request ID (qid)
C.4 View-window request fields
C.4.1 Mapping view-window requests to codestream image resolutions and regions
C.4.2 Frame Size (fsiz)
C.4.3 Offset (roff)
C.4.4 Region Size (rsiz)
C.4.5 Frame size for variable dimension data (fvsiz)
C.4.6 Offset for variable dimension data (rvoff)
C.4.7 Region size for variable dimension data (rvsiz)
C.4.8 Components (comps)
C.4.9 Codestream (stream)
C.4.10 Codestream Context (context)
C.4.11 Sampling Rate (srate)
C.4.12 ROI (roi)
C.4.13 Layers (layers)
C.4.14 Multi-component transformation (MCT) Resolution Value
C.5 Metadata request fields
C.5.1 Metadata requested implicitly with view-window requests
C.5.2 Metadata Request (metareq)
C.5.2.2 root-bin
C.5.2.3 max-depth
C.5.2.4 I-box-prop
C.5.2.5 limit
C.5.2.6 metareq-qualifier
C.5.2.7 priority
C.5.2.8 metadata-only
C.5.2.9 Implications of layout-constraints
C.5.2.10 Special considerations for cross-reference boxes
C.6 Data limiting request fields
C.6.1 Maximum Response Length (len)
C.6.2 Quality (quality)
C.7 Server control request fields
C.7.1 Alignment (align)
C.7.2 Wait (wait)
C.7.3 Image Return Type (type)
C.7.4 Delivery Rate (drate)
C.7.5 Send To (Sendto)
C.7.6 Abandon (abandon)
C.7.7 Barrier (barrier)
C.7.8 Timed wait (twait)
C.8 Cache management request fields
C.8.1 Model (model)
C.8.1.1 General
C.8.1.2 Explicit form
C.8.1.3 Implicit form
C.8.2 Summary of cache descriptor options (informative)
C.8.3 Tile-part model involving JPT-streams (tpmodel)
C.8.4 Need for stateless requests (need)
C.8.5 Tile-part need for stateless requests (tpneed)
C.8.6 Model set for requests within a session (mset)
C.9 Upload request parameters
C.9.1 Upload (upload)
C.10 Client capability and preference request fields
C.10.1 Client capability (cap)
C.10.2 Client preferences (pref)
C.10.2.1 General
C.10.2.2 View-window handling preferences
C.10.2.3 Colourspace method preference
C.10.2.4 Max bandwidth
C.10.2.5 Bandwidth slice
C.10.2.6 Placeholder preference
C.10.2.7 Codestream sequencing
C.10.2.8 Conciseness preference
C.10.3 Contrast sensitivity (csf)
C.10.4 Handled (handled)
Annex D
D.1 Reply syntax
D.1.1 Introduction
D.1.2 Reply structure
D.1.3 Status codes and reason phrases
D.1.3.1 General
D.1.3.2 200 (OK)
D.1.3.3 202 (Accepted)
D.1.3.4 400 (Bad request)
D.1.3.5 404 (Not found)
D.1.3.6 415 (Unsupported media type)
D.1.3.7 501 (Not implemented)
D.1.3.8 503 (Service unavailable)
D.1.4 Impact of errors on the server state
D.2 JPIP response headers
D.2.1 Introduction to JPIP response headers
D.2.2 Target ID (JPIP-tid)
D.2.3 New channel (JPIP-cnew)
D.2.4 Request ID (JPIP-qid)
D.2.5 Frame size (JPIP-fsiz)
D.2.6 Region size (JPIP-rsiz)
D.2.7 Offset (JPIP-roff)
D.2.8 Frame size for variable dimension data (JPIP-fvsiz)
D.2.9 Region size for variable dimension data (JPIP-rvsiz)
D.2.10 Offset for variable dimension data (JPIP-rvoff)
D.2.11 Components (JPIP-comps)
D.2.12 Codestream (JPIP-stream)
D.2.13 Codestream Context (JPIP-context)
D.2.14 ROI (JPIP-roi)
D.2.15 Layers (JPIP-layers)
D.2.16 Sampling rate (JPIP-srate)
D.2.17 Metadata request (JPIP-metareq)
D.2.18 Maximum response length (JPIP-len)
D.2.19 Quality (JPIP-quality)
D.2.20 Image return type (JPIP-type)
D.2.21 Model set (JPIP-mset)
D.2.22 Needed capability (JPIP-cap)
D.2.23 Unavailable preference (JPIP-pref)
D.2.24 Alignment (JPIP-align)
D.2.25 Subtarget (JPIP-subtarget)
D.2.26 Handled request (JPIP-handled)
D.3 Response data
Annex E
E.1 Introduction
E.2 Upload request
E.2.1 Request structure
E.2.2 Upload request fields
E.2.3 Upload request body
E.2.3.1 General
E.2.3.2 JPT-stream
E.2.3.3 JPP-stream
E.2.3.4 Complete image upload
E.3 Server response
E.3.1 General
E.3.2 201 (Created)
E.3.3 202 (Accepted)
E.3.4 400 (Bad request)
E.3.5 404 (Not found)
E.3.6 415 (Unsupported media type)
E.3.7 501 (Not implemented)
E.4 Merging data on the server
E.4.1 Updating the image
E.4.2 JPT-stream
E.4.3 JPP-stream
E.4.4 JPP-stream and JPT-stream metadata-bins
E.4.5 Complete image upload
Annex F
F.1 Introduction
F.2 Requests
F.2.1 Requests introduction
F.2.2 GET requests
F.2.3 POST requests
F.2.4 Upload requests
F.3 Session establishment
F.4 Responses
F.4.1 Introduction
F.4.2 Status code and reason-phrase
F.4.3 Header information
F.4.3.1 JPIP headers
F.4.3.2 Use of HTTP Accept header
F.4.3.3 Use of Cache-Control header
F.4.3.4 Use of Content-type header
F.4.3.5 Use of Redirect header
F.4.4 Body
F.5 Additional HTTP features
F.5.1 Use of HTTP HEAD method
F.5.2 Use of HTTP OPTIONS method
F.5.3 Etag usage
F.5.4 Use of chunked transfer encoding
F.6 HTTP and length request field (informative)
Annex G
G.1 Introduction
G.2 Client requests
G.3 Session establishment
G.3.1 Channel establishment
G.3.2 Server framing of response data
G.3.3 Client acknowledgement of server response chunks
G.4 Server responses
G.5 TCP and length request field (informative)
Annex H
H.1 Introduction
H.2 Reliable requests with unreliable data
H.3 Unreliable requests with unreliable data
H.4 Request and response syntax
H.5 Session establishment
Annex I
I.1 Introduction (informative)
I.2 Identifying the use of JPIP index boxes in the JPEG 2000 file format compatibility list
I.3 Defined boxes
I.3.1 General
I.3.2 Codestream Index box (superbox)
I.3.2.1 General
I.3.2.2 Codestream Finder box
I.3.2.3 Manifest box
I.3.2.4 Index tables
I.3.2.4.1 General
I.3.2.4.2 Fragment Array Index Box
I.3.2.4.3 Header Index Table Box
I.3.2.4.4 Tile-part Index Table box (superbox)
I.3.2.4.5 Tile Header Index Table box (superbox)
I.3.2.4.6 Precinct Packet Index Table box (superbox)
I.3.2.4.7 Packet Header Index Table box (superbox)
I.3.3 File Index box (superbox)
I.3.3.1 General
I.3.3.2 File Finder box
I.3.3.3 Proxy box
I.3.4 Index Finder box
I.4 Association of codestream indexes with codestreams
I.5 Placement restrictions (informative)
Annex J
J.1 Introduction
J.1.1 Profiles
J.1.2 Variants
J.2 Definition of variants
J.2.1 Image return type variant (P, T or R)
J.2.2 State model variant (N or S)
J.2.3 Bitstream variant (M or C)
J.3 Definition of profiles
J.3.1 Profile 0: “Basic Communication”
J.3.2 Profile 1: “Enhanced Communications”
J.3.3 Full profile
J.4 Testing methodology
J.4.1 Server conventions required for testing
J.4.2 Server testing
J.4.3 Comparing server responses
J.4.3.1 Comparing the size of the server response
J.4.3.2 Parsing stage
J.4.3.3 Abstracting from the metadata-bin layout
J.4.3.4 Comparing databins
J.4.4 Client testing
J.4.4.1 Comparing metadata
J.4.4.2 Comparing reconstructed image data
Annex K
K.1 Introduction
K.2 Client requests
K.3 Response data delivery and channel establishment
K.4 Server responses
K.5 Framing of response data into chunks
K.6 Client acknowledgement of server responses
K.7 UDP and Maximum Response Length Field (informative)
K.8 Implementation strategies for acknowledged communication (informative)
K.9 Implementation strategies for unacknowledged communication (informative)
Annex L
Annex M
M.1 Introduction
M.2 Use of JPIP with codestreams in other file formats
M.3 Tile-part implementation techniques
M.3.1 Server determination of relevant tile-parts for a view-window request
M.3.2 Decoding an image from returned JPT-stream messages
M.3.3 Auxiliary signalling for tile-parts
M.4 Precinct-based implementation techniques
M.4.1 Server determination of relevant precincts for a view-window request
M.4.2 Decoding an image from returned JPP-stream messages