Skip to content

Proposal: Add New Image File Object

Ivan Kirillov edited this page Dec 18, 2013 · 3 revisions

Status: Closed
Comment Period Closes: 12/17/2013
Affects Backwards Compatibility: No
Relevant Issue: https://github.com/CybOXProject/schemas/issues/117

Background Information

Many image file formats exist that all share a common set of properties; some examples are JPEG, PNG, BMP, and GIF. CybOX 2.0.1 does not provide standard characterization of these image formats and their common set of properties.

Proposal

We propose the creation of a new CybOX object capable of characterizing the common set of metadata associated with image files.

The ImageFileObjectType is an extension of the FileObj:FileObjectType and will introduce the following fields.

Field Type Description
Image_File_Format ImageFileFormatType The Image_File_Format field specifies the name of the file format used in the image file. It is strongly recommended that the values provided in the ImageFileFormatEnum are used for describing common image formats, but other formats may also be specified as a custom string.
Image_Height cyboxCommon:IntegerObjectPropertyType The Image_Height field specifies the height of the image in the image file, in pixels.
Image_Width cyboxCommon:IntegerObjectPropertyType The Image_Width field specifies the width of the image in the image file, in pixels.
Bits_Per_Pixel cyboxCommon:PositiveIntegerObjectPropertyType The Bits_Per_Pixel field specifies the sum of bits used for each color channel in the image in the image file, and thus the total number of pixels used for expressing the color depth of the image.
Compression_Algorithm cyboxCommon:StringObjectPropertyType The Compression_Algorithm field specifies the name of the compression algorithm used to compress the image, if applicable. Note that for many popular image formats, such as JPEG, the compression algorithm is inherent to the file format and so does need to be captured here as long as the format itself is identified in the Image_File_Format field.
image_is_compressed xs:boolean The image_is_compressed field specifies whether the image in the image file is compressed.

The ImageFileFormatType is a union of the base xs:string type and the ImageFileFormatEnum. The ImageFileFormatEnum is intended to non-exhaustively enumerate possible types of image file format names and thus contains the following values:

Value Description
JPEG/JFIF Specifies the Joint Photographic Experts Group (JPEG) JPEG File Interchange Format (JFIF).
JPEG 2000 Specifies the Joint Photographic Experts Group (JPEG) 2000 format.
Exif Specifies the Exchangeable image file format (Exif).
TIFF Specifies the Tagged Image File Format (TIFF).
DNG Specifies the Digital Negative (DNG) file format.
GIF Specifies the Graphics Interchange Format (GIF).
BMP Specifies the Windows bitmap (BMP) image file format.
PNG Specifies the Portable Network Graphics (PNG) format.

For the full proposed schema, please see https://github.com/ikiril01/schemas/commit/9468da4831c01eef37d04b75eea8b94dd11630af

Impact

There is no expected compatibility impact.

Requested Feedback

  1. Does it make sense to add such an object to CybOX?
  2. Are there any fields we should add to the ImageFileObjectType? Should we change any of the types used to capture the fields we've defined?
  3. Are there any values we should add to the ImageFileFormatEnum?
Clone this wiki locally