The following JPEG marker segments metadata are supported:
Frame Marker Segment Level
SOF0, SOF1, SOF2 and SOF3 (read only)
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| <Frame marker name> |
<Frame marker Id> |
LEVEL_START |
0 |
NULL |
0 |
True |
| <Frame marker size tag name> |
<Frame marker size tag Id> |
VALUE_ITEM |
UINT16 |
|
1 |
True |
| "Precision" |
212 |
VALUE_ITEM |
UINT8 |
|
1 |
True |
| "Lines" |
213 |
VALUE_ITEM |
UINT16 |
|
1 |
True |
| "SamplesPerLine" |
214 |
VALUE_ITEM |
UINT16 |
|
1 |
True |
| "ComponentNumber" |
215 |
VALUE_ITEM |
UINT8 |
<n> |
1 |
True |
| Frame component level 1 |
| |
| Frame component level <n> |
| <Frame marker name> |
<Frame marker Id> |
LEVEL_END |
0 |
NULL |
0 |
True |
<Frame marker Id>, <Frame marker name>, <Frame marker size tag name>, and <Frame marker size tag Id> are described in the table below:
| Frame Marker |
<Frame Marker Name> |
<Frame Marker Id> |
<Frame Marker Size Tag Name> |
<Frame Marker Size Tag Id> |
| SOF0 |
"SOF0" |
0xFFC0 |
"SOF0_DATASIZE" |
60192 |
| SOF1 |
"SOF1" |
0xFFC1 |
"SOF1_DATASIZE" |
60193 |
| SOF2 |
"SOF2" |
0xFFC2 |
"SOF2_DATASIZE" |
60194 |
| SOF3 |
"SOF3" |
0xFFC3 |
"SOF3_DATASIZE" |
60195 |
Frame Component Level
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "Component" |
<Component No.> |
LEVEL_START |
0 |
NULL |
0 |
True |
| "Id" |
<Component No.> |
VALUE_ITEM |
UINT |
|
1 |
True |
| "MCU_HV" |
<Component No.> |
VALUE_ITEM |
UINT |
|
1 |
True |
| "QuantizationNumber" |
<Component No.> |
VALUE_ITEM |
UINT |
|
1 |
True |
| "Component" |
<Component No.> |
LEVEL_END |
0 |
NULL |
0 |
True |
 |
<Component No.> is frame component identifier of appropriate component. |
Scan Marker Segment Level
SOS (read only)
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "SOS" |
0xFFDA |
LEVEL_START |
0 |
NULL |
0 |
True |
| "SOS_DATASIZE" |
60218 |
VALUE_ITEM |
UINT16 |
|
1 |
True |
| "ComponentNumber" |
228 |
VALUE_ITEM |
UINT8 |
<n> |
1 |
True |
| Scan component level 1 |
| |
| Scan component level <n> |
| "SpectralStart" |
235 |
VALUE_ITEM |
UINT8 |
|
1 |
True |
| "SpectralEnd" |
236 |
VALUE_ITEM |
UINT8 |
|
|
True |
| "AH_AL" |
237 |
VALUE_ITEM |
UINT8 |
|
|
True |
| "SOS" |
0xFFDA |
LEVEL_START |
0 |
NULL |
0 |
True |
Scan Component Level
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "Component" |
<Component No.> |
LEVEL_START |
0 |
NULL |
0 |
True |
| "Selector" |
<Component No.> |
VALUE_ITEM |
UINT8 |
|
1 |
True |
| "DC_AC" |
<Component No.> |
VALUE_ITEM |
UINT8 |
|
1 |
True |
| "Component" |
<Component No.> |
LEVEL_END |
0 |
NULL |
0 |
True |
 |
<Component No.> is scan component selector of appropriate component. |
Define-Quantization-Table Marker Segment Level
DQT (read only)
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "DQT" |
0xFFDB |
LEVEL_START |
0 |
NULL |
0 |
True |
| "DQT_DATASIZE" |
60219 |
VALUE_ITEM |
UINT16 |
|
1 |
True |
| "QuantizationTable" |
<table 1 Id > |
VALUE_ITEM |
UINT8 or UINT16 |
|
64 |
True |
| |
| "QuantizationTable" |
<table 1 Id > |
VALUE_ITEM |
UINT8 or UINT16 |
|
64 |
True |
| "DQT" |
0xFFDB |
LEVEL_END |
0 |
NULL |
0 |
True |
 |
<table Id > is the appropriate quantization table identifier. |
Define-Huffman-Tables Marker Segment Level
DHT (read only)
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "DHT" |
0xFFC4 |
LEVEL_START |
0 |
NULL |
0 |
True |
| "DHT_DATASIZE" |
60196 |
VALUE_ITEM |
UINT16 |
|
1 |
True |
| "DATA" |
0xFFC4 |
VALUE_ITEM |
RAW_DATA |
|
<ValueSize> |
True |
| "DHT" |
0xFFC4 |
LEVEL_END |
0 |
NULL |
0 |
True |
Comment Marker Segment Level
COM (read/write)
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "COM" |
0xFFFE |
LEVEL_START |
0 |
NULL |
0 |
True |
| "COM_DATASIZE" |
60254 |
VALUE_ITEM |
UINT16 |
|
1 |
True |
| "Comment" |
0xFFFE |
VALUE_ITEM |
STRING |
|
<ValueSize> |
True |
| "COM" |
0xFFFE |
LEVEL_END |
0 |
NULL |
0 |
True |
Application Marker Segment Level
APP0-APP15 (read/write)
There are several application marker segments, which data structure is well known. These segments are parsed and their data are passed in special format.
These marker segments are:
JFIF APP0 Segment
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "APP0" |
0xFFE0 |
LEVEL_START |
0 |
NULL |
0 |
True |
| "APP0_DATASIZE" |
60224 |
VALUE_ITEM |
UINT16 |
|
1 |
False |
| "JFIF_HEADER" |
200 |
VALUE_ITEM |
STRING |
JFIF |
5 |
True |
| "Version" |
201 |
VALUE_ITEM |
UINT16 |
|
1 |
False |
| "ResolutionUnits" |
202 |
VALUE_ITEM |
UINT8 |
|
1 |
False |
| "ResolutionX" |
203 |
VALUE_ITEM |
UINT16 |
|
1 |
False |
| "ResolutionY" |
204 |
VALUE_ITEM |
UINT16 |
|
1 |
False |
| "ThumbnailWidth" |
205 |
VALUE_ITEM |
UINT8 |
|
1 |
True |
| "ThumbnailHeight" |
206 |
VALUE_ITEM |
UINT8 |
|
1 |
True |
| "APP0" |
0xFFE0 |
LEVEL_END |
0 |
NULL |
0 |
True |
|
The thumbnail width tags are present only if the thumbnail is stored to JFIF segment.
The thumbnail height tags are present only if the thumbnail is stored to JFIF segment.
|
JFIF Extension (JFXX) APP0 Segment
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "APP0" |
0xFFE0 |
LEVEL_START |
0 |
NULL |
0 |
True |
| "APP0_DATASIZE" |
60224 |
VALUE_ITEM |
UINT16 |
|
1 |
True |
| "JFIF_EX_HEADER" |
209 |
VALUE_ITEM |
STRING |
"JFXX" |
5 |
True |
| "ExtensionCode" |
210 |
VALUE_ITEM |
UINT8 |
|
1 |
True |
| "APP0" |
0xFFE0 |
LEVEL_END |
0 |
NULL |
0 |
True |
Photoshop Image Resource APP13 Marker Segment
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "APP13" |
0xFFED |
LEVEL_START |
0 |
NULL |
0 |
True |
| "APP13_DATASIZE" |
60237 |
VALUE_ITEM |
UINT16 |
|
1 |
False |
| "PHOTOSHOP_HEADER" |
59915 |
VALUE_ITEM |
STRING |
"Photoshop 3.0" |
14 |
False |
| Photoshop Image Resource level 1 |
| ... |
| Photoshop Image Resource level n |
| "APP13" |
0xFFED |
LEVEL_END |
0 |
NULL |
0 |
True |
Other Application Marker Segment Levels
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| <Marker name> |
<Marker Id> |
LEVEL_START |
0 |
NULL |
0 |
True |
| <Marker size tag name> |
<Marker size tag Id> |
VALUE_ITEM |
UINT16 |
|
1 |
False |
| "DATA" |
<Marker Id> |
VALUE_ITEM |
RAW_DATA |
|
<ValueSize> |
False |
| <Marker name> |
<Marker Id> |
LEVEL_END |
0 |
NULL |
0 |
True |
<Marker Id>, <Marker name>, <Marker size tag name>, and <Marker size tag Id> are in table below:
| Marker |
<Marker Name> |
<Marker Id> |
<Marker Size Tag Name> |
<Marker Size Tag Id> |
| APP0 |
"APP0" |
0xFFE0 |
"APP0_DATASIZE" |
60224 |
| APP1 |
"APP1" |
0xFFE1 |
"APP1_DATASIZE" |
60225 |
| APP2 |
"APP2" |
0xFFE2 |
"APP2_DATASIZE" |
60226 |
| APP3 |
"APP3" |
0xFFE3 |
"APP3_DATASIZE" |
60227 |
| APP4 |
"APP4" |
0xFFE4 |
"APP4_DATASIZE" |
60228 |
| APP5 |
"APP5" |
0xFFE5 |
"APP5_DATASIZE" |
60229 |
| APP6 |
"APP6" |
0xFFE6 |
"APP6_DATASIZE" |
60230 |
| APP7 |
"APP7" |
0xFFE7 |
"APP7_DATASIZE" |
60231 |
| APP8 |
"APP8" |
0xFFE8 |
"APP8_DATASIZE" |
60232 |
| APP9 |
"APP9" |
0xFFE9 |
"APP9_DATASIZE" |
60233 |
| APP10 |
"APP10" |
0xFFEA |
"APP10_DATASIZE" |
60234 |
| APP11 |
"APP11" |
0xFFEB |
"APP11_DATASIZE" |
60235 |
| APP12 |
"APP12" |
0xFFEC |
"APP12_DATASIZE" |
60236 |
| APP13 |
"APP13" |
0xFFED |
"APP13_DATASIZE" |
60237 |
| APP14 |
"APP14" |
0xFFEE |
"APP14_DATASIZE" |
60238 |
| APP15 |
"APP15" |
0xFFEF |
"APP15_DATASIZE" |
60239 |