Difference between revisions of "Filling Out the Image Compression Parameters Class"

From The SBN Wiki
Jump to navigation Jump to search
(Safety Save)
 
(Safety Save - Still editing)
 
Line 1: Line 1:
 
The ''Image_Compression_Parameters'' class contains attributes describing onboard compression parameters used for data storage and transmission.
 
The ''Image_Compression_Parameters'' class contains attributes describing onboard compression parameters used for data storage and transmission.
  
{| class="wikitable" style="background-color: yellow"
+
== <compression_class> ==
|
 
The first three attributes below are part of a choice list where each element has minOccurs=0.  (Problem with LDDTool?)
 
|}
 
  
== <compression_mode_id> ==
+
''REQUIRED''
 
 
''OPTIONAL''
 
 
 
{| class="wikitable" style="background-color: yellow"
 
|
 
This is defined as an integer, with is not consistent with the usual use of "mode".
 
|}
 
  
== <compression_mode_name> ==
+
== <compression_mode> ==
  
 
''OPTIONAL''  
 
''OPTIONAL''  
 
{| class="wikitable" style="background-color: yellow"
 
|
 
There is no standard value list for this attribute.
 
|}
 
  
 
== <compression_type> ==
 
== <compression_type> ==
Line 28: Line 13:
 
''OPTIONAL''
 
''OPTIONAL''
  
{| class="wikitable" style="background-color: yellow"
+
== <compression_rate> ==
|
 
There is no standard value list for this attribute.
 
|}
 
 
 
== <compressor_id> ==
 
  
 
''OPTIONAL''
 
''OPTIONAL''
  
{| class="wikitable" style="background-color: yellow"
+
== <compression_ratio> ==
|
 
There is no standard value list for this attribute.
 
|}
 
 
 
== <compression_parameter> ==
 
  
 
''OPTIONAL''
 
''OPTIONAL''
 
{| class="wikitable" style="background-color: yellow"
 
|
 
The definition of this attribute actually says it is specific to JPEG.  If this is true, the attribute name really should indicate that.  If it's not true, the definition needs re-writing.
 
|}
 
  
 
== <compression_quality> ==
 
== <compression_quality> ==
Line 62: Line 32:
 
|}
 
|}
  
== <compression_rate> ==
+
== <deferred_flag> ==
 +
 
 +
''OPTIONAL''
 +
 
 +
== <error_pixel_count> ==
  
 
''OPTIONAL''
 
''OPTIONAL''
  
== <compression_ratio> ==
+
== Compression-Algorithm-Specific Parameters ==
 +
 
 +
The inclusion of any of the following classes at this point in the label is optional. In addition, multiple classes may be included and/or each class can be repeated an unlimited number of times.  The order of the classes is also, in this case, not significant - they can be listed, repeated, and sorted in any manner.
 +
 
 +
=== <ICER_Parameters> ===
  
 
''OPTIONAL''
 
''OPTIONAL''
  
== <block_count> ==
+
==== <wavelet_filter> ====
  
 
''OPTIONAL''
 
''OPTIONAL''
  
{| class="wikitable" style="background-color: lavenderblush"
+
==== <icer_quality> ====
|
+
 
How are this and the related values attributes of the image object?
+
''OPTIONAL''
|}
 
  
== <block_size_x> ==
+
==== <decomposition_stages> ====
  
 
''OPTIONAL''
 
''OPTIONAL''
  
== <block_size_y> ==
+
==== <segment_count> ====
  
 
''OPTIONAL''
 
''OPTIONAL''
  
== <color_mode> ==
+
==== <Image_Compression_Segment> ====
  
 
''OPTIONAL''
 
''OPTIONAL''
  
{| class="wikitable" style="background-color: yellow"
+
This class is repeatable.
|
+
 
There is a null rule in the Schematron for this context, but no standard values defined.
+
===== <segment_number> =====
|}
 
  
== <decomposition_stages> ==
+
''REQUIRED''
  
''OPTIONAL''
+
===== <first_line> =====
  
{| class="wikitable" style="background-color: yellow"
+
''REQUIRED''
|
 
This attribute seems to assume wavelet decomposition.  Is that the only type of compression, or the only type of compression for which the term "decomposition" is ever used (or will ever be used)?
 
|}
 
  
== <quantization_table_id> ==
+
===== <first_sample> =====
  
''OPTIONAL''
+
''REQUIRED''
  
{| class="wikitable" style="background-color: yellow"
+
===== <lines> =====
|
 
Given the definition of this attribute, it does not seem to comply with PDS4 IM design principles.  It is neither explicit nor does is it sufficient in itself to provide the linking detailed in its definition.
 
|}
 
  
== <quantization_table_id_ac> ==
+
''REQUIRED''
  
''OPTIONAL''
+
===== <samples> =====
  
{| class="wikitable" style="background-color: yellow"
+
''REQUIRED''
|
 
This seems to have a much  more specific relevance than the name implies (relevant only to specific compression types), and has the same referential issues as ''&lt;quantization_table_id&gt;''.
 
|}
 
  
== <quantization_table_id_dc> ==
+
===== <segment_quality> =====
  
 
''OPTIONAL''
 
''OPTIONAL''
  
{| class="wikitable" style="background-color: yellow"
+
===== <segment_status> =====
|
+
 
This seems to have a much  more specific relevance than the name implies (relevant only to specific compression types), and has the same referential issues as ''&lt;quantization_table_id&gt;''.
+
''OPTIONAL''
|}
 
  
== <quantization_type> ==
+
===== <mission_pixel_count> =====
  
 
''OPTIONAL''
 
''OPTIONAL''
  
{| class="wikitable" style="background-color: yellow"
+
=== <JPEG_Parmeters> ===
|
 
There are no standard values define for this attribute.
 
|}
 
 
 
== <segment_count> ==
 
  
 
''OPTIONAL''
 
''OPTIONAL''
  
== <Image_Compression_Segment> ==
+
==== <color_subsampling_mode> ====
  
 
''OPTIONAL''
 
''OPTIONAL''
  
{| class="wikitable" style="background-color: yellow"
+
==== <jpeg_quality> ====
|
 
Seems like ''&lt;segment_count&gt;'' should be required if at least one occurence of this class is present.
 
|}
 
  
=== <segment_number> ===
+
''OPTIONAL''
  
''REQUIRED''
+
==== <jpeg_parameter> ====
  
=== <first_line> ===
+
''OPTIONAL''
  
''REQUIRED''
+
=== <JPEG_Progressive_Parameters> ===
  
{| class="wikitable" style="background-color: yellow"
+
''OPTIONAL
|
 
This attribute is allowed to be zero or negative.
 
|}
 
  
=== <first_sample> ===
+
==== <color_subsampling_mode> ====
  
''REQUIRED''
+
''OPTIONAL''
  
{| class="wikitable" style="background-color: yellow"
+
==== <jpeg_quality> ====
|
 
This attribute is allowed to be zero or negative.
 
|}
 
  
=== <lines> ===
+
''OPTIONAL''
  
''REQUIRED''
+
==== <jpeg_parameter> ====
  
{| class="wikitable" style="background-color: yellow"
+
''OPTIONAL''
|
 
This value is allowed to be zero.
 
|}
 
  
=== <samples> ===
+
==== <progressive_stage> ====
  
 
''REQUIRED''
 
''REQUIRED''
  
{| class="wikitable" style="background-color: yellow"
+
=== <LOCO_Parameters> ===
|
 
This value is allowed to be zero.
 
|}
 
 
 
=== <segment_quality> ===
 
  
 
''OPTIONAL''
 
''OPTIONAL''
  
{| class="wikitable" style="background-color: yellow"
+
==== <wavelet_filter> ====
|
 
This attribute appears to only be relevant to specific compression methods, though the name implies otherwise.  There is no indication of whether this value can be negative, or zero, or whether a higher number corresponds to higher or lower quality.
 
|}
 
 
 
=== <segment_status> ===
 
  
 
''OPTIONAL''
 
''OPTIONAL''
  
{| class="wikitable" style="background-color: yellow"
+
==== <missing_pixel_count> ====
|
 
This is actually defined as a "bit mask", which is not consistent with the definition of "status".  There is also no indication in the definition of byte-order, even though this value is not constrained to be 8 digits or less in length.  Neither is there any indication of whether the mask must be a multiple of 8 digits, or how to apply masks that are not multiple of 8 digits.
 
|}
 
 
 
=== <missing_constant> ===
 
  
 
''OPTIONAL''
 
''OPTIONAL''
 
{| class="wikitable" style="background-color: yellow"
 
|
 
The definition refers to a missing "value", but in the context of this class there is nothing that corresponds to a single "value".
 
|}
 

Latest revision as of 21:37, 24 June 2018

The Image_Compression_Parameters class contains attributes describing onboard compression parameters used for data storage and transmission.

<compression_class>

REQUIRED

<compression_mode>

OPTIONAL

<compression_type>

OPTIONAL

<compression_rate>

OPTIONAL

<compression_ratio>

OPTIONAL

<compression_quality>

OPTIONAL

The definition of this attribute actually says it is specific to JPEG. If this is true, the attribute name really should indicate that. If it's not true, the definition needs re-writing.

This is also defined as an integer without any indication of whether a larger integer is higher or lower quality.

<deferred_flag>

OPTIONAL

<error_pixel_count>

OPTIONAL

Compression-Algorithm-Specific Parameters

The inclusion of any of the following classes at this point in the label is optional. In addition, multiple classes may be included and/or each class can be repeated an unlimited number of times. The order of the classes is also, in this case, not significant - they can be listed, repeated, and sorted in any manner.

<ICER_Parameters>

OPTIONAL

<wavelet_filter>

OPTIONAL

<icer_quality>

OPTIONAL

<decomposition_stages>

OPTIONAL

<segment_count>

OPTIONAL

<Image_Compression_Segment>

OPTIONAL

This class is repeatable.

<segment_number>

REQUIRED

<first_line>

REQUIRED

<first_sample>

REQUIRED

<lines>

REQUIRED

<samples>

REQUIRED

<segment_quality>

OPTIONAL

<segment_status>

OPTIONAL

<mission_pixel_count>

OPTIONAL

<JPEG_Parmeters>

OPTIONAL

<color_subsampling_mode>

OPTIONAL

<jpeg_quality>

OPTIONAL

<jpeg_parameter>

OPTIONAL

<JPEG_Progressive_Parameters>

OPTIONAL

<color_subsampling_mode>

OPTIONAL

<jpeg_quality>

OPTIONAL

<jpeg_parameter>

OPTIONAL

<progressive_stage>

REQUIRED

<LOCO_Parameters>

OPTIONAL

<wavelet_filter>

OPTIONAL

<missing_pixel_count>

OPTIONAL