<?xml version="1.0" encoding="utf-8"?>
<PRONOM-Report xmlns="http://pronom.nationalarchives.gov.uk">
  <report_format_detail>
    <FileFormat>
      <FormatID>670</FormatID>
      <FormatName>Raw JPEG Stream</FormatName>
      <FormatVersion>
      </FormatVersion>
      <FormatAliases>JPEG</FormatAliases>
      <FormatFamilies>
      </FormatFamilies>
      <FormatTypes>Image (Raster)</FormatTypes>
      <FormatDisclosure>
      </FormatDisclosure>
      <FormatDescription>Raw JPEG Stream represents JPEG bitstream sequence of digital objects. JPEG stands for Joint Photographic Experts Group, an international organization that standardized the concept of lossy compression during the late 1980s and early 1990s. It uses DCT (Discrete Cosine Transform) compression technique used for images and audio. The standard of lossy compression is able to remove some visual data invisible to human eye which averages out colour variation and reduces the file size. JPEG image consists of a sequence of segments, each beginning with a two-byte "marker", each of which begins with a 0xFF byte, followed by a byte indicating what kind of marker it is. The signature for this entry represents the first two bytes of every JPEG stream, which are the Start Of Image (SOI) marker with values of 0xFF and 0xD8 (indicating that the baseline is DCT-based) and the End of Image (EOI) marker with valued of 0xFF and 0xD9. The second signatures represents the "colour transform" field of the APP14 which is an "Adobe" segment, representing graphic files which may have been edited in Adobe applications such as Adobe Photoshop.</FormatDescription>
      <BinaryFileFormat>Binary</BinaryFileFormat>
      <ByteOrders>Big-endian (Motorola)</ByteOrders>
      <ReleaseDate>
      </ReleaseDate>
      <WithdrawnDate>
      </WithdrawnDate>
      <ProvenanceSourceID>1</ProvenanceSourceID>
      <ProvenanceName>Digital Preservation Department / The National Archives</ProvenanceName>
      <ProvenanceSourceDate>11 Mar 2005</ProvenanceSourceDate>
      <ProvenanceDescription>08/2023 (v.113) - Photoshop JPEG signature added 0 value to offset in EOF signature as null offset is causing max-offset to be ignored. Submitted by Preservica.</ProvenanceDescription>
      <LastUpdatedDate>15 Aug 2023</LastUpdatedDate>
      <FormatNote>https://www.loc.gov/preservation/digital/formats/fdd/fdd000017.shtml#:~:text=The%20Library%20of%20Congress%20Recommended,specify%20a%20version%20of%20JPEG.

https://web.archive.org/web/20220624201809/https://www.adobe.com/creativecloud/file-types/image/raster/jpeg-file.html

https://web.archive.org/web/20221015163305/https://en.wikipedia.org/wiki/JPEG</FormatNote>
      <FormatRisk>
      </FormatRisk>
      <TechnicalEnvironment>
      </TechnicalEnvironment>
      <FileFormatIdentifier>
        <Identifier>fdd000017</Identifier>
        <IdentifierType>Library of Congress Format Description Identifier</IdentifierType>
      </FileFormatIdentifier>
      <FileFormatIdentifier>
        <Identifier>fmt/41</Identifier>
        <IdentifierType>PUID</IdentifierType>
      </FileFormatIdentifier>
      <FileFormatIdentifier>
        <Identifier>image/jpeg</Identifier>
        <IdentifierType>MIME</IdentifierType>
      </FileFormatIdentifier>
      <ExternalSignature>
        <ExternalSignatureID>554</ExternalSignatureID>
        <Signature>jpe</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <ExternalSignature>
        <ExternalSignatureID>578</ExternalSignatureID>
        <Signature>jpg</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <ExternalSignature>
        <ExternalSignatureID>652</ExternalSignatureID>
        <Signature>jpeg</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <ExternalSignature>
        <ExternalSignatureID>3224</ExternalSignatureID>
        <Signature>jif</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <ExternalSignature>
        <ExternalSignatureID>3225</ExternalSignatureID>
        <Signature>jfif</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <ExternalSignature>
        <ExternalSignatureID>3226</ExternalSignatureID>
        <Signature>jfi</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <InternalSignature>
        <SignatureID>69</SignatureID>
        <SignatureName>Raw JPEG</SignatureName>
        <SignatureNote>SOI marker at BOF, EOI marker at EOF</SignatureNote>
        <ByteSequence>
          <ByteSequenceID>174</ByteSequenceID>
          <PositionType>Absolute from BOF</PositionType>
          <Offset>0</Offset>
          <MaxOffset>
          </MaxOffset>
          <IndirectOffsetLocation>
          </IndirectOffsetLocation>
          <IndirectOffsetLength>
          </IndirectOffsetLength>
          <Endianness>
          </Endianness>
          <ByteSequenceValue>FFD8FF</ByteSequenceValue>
        </ByteSequence>
        <ByteSequence>
          <ByteSequenceID>175</ByteSequenceID>
          <PositionType>Absolute from EOF</PositionType>
          <Offset>0</Offset>
          <MaxOffset>65536</MaxOffset>
          <IndirectOffsetLocation>
          </IndirectOffsetLocation>
          <IndirectOffsetLength>
          </IndirectOffsetLength>
          <Endianness>
          </Endianness>
          <ByteSequenceValue>FFD9</ByteSequenceValue>
        </ByteSequence>
      </InternalSignature>
      <InternalSignature>
        <SignatureID>697</SignatureID>
        <SignatureName>Photoshop JPEG</SignatureName>
        <SignatureNote>BOF: SOI marker (FF|D8), APP14 - Photoshop Segment Marker (FF|ED), segment size {2}, Photoshop identification string, in ASCII: Photoshop 3.0. 
EOF: EOI marker (FF|D9) with a large offset due to the amount of photoshop metadata seen after the end of image marker in sample files.</SignatureNote>
        <ByteSequence>
          <ByteSequenceID>868</ByteSequenceID>
          <PositionType>Absolute from BOF</PositionType>
          <Offset>0</Offset>
          <MaxOffset>0</MaxOffset>
          <IndirectOffsetLocation>
          </IndirectOffsetLocation>
          <IndirectOffsetLength>
          </IndirectOffsetLength>
          <Endianness>
          </Endianness>
          <ByteSequenceValue>FFD8FFED{2}50686F746F73686F7020332E30003842494D</ByteSequenceValue>
        </ByteSequence>
        <ByteSequence>
          <ByteSequenceID>869</ByteSequenceID>
          <PositionType>Absolute from EOF</PositionType>
          <Offset>0</Offset>
          <MaxOffset>16000</MaxOffset>
          <IndirectOffsetLocation>
          </IndirectOffsetLocation>
          <IndirectOffsetLength>
          </IndirectOffsetLength>
          <Endianness>
          </Endianness>
          <ByteSequenceValue>FFD9</ByteSequenceValue>
        </ByteSequence>
      </InternalSignature>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>667</RelatedFormatID>
        <RelatedFormatName>JPEG File Interchange Format</RelatedFormatName>
        <RelatedFormatVersion>1.00</RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>668</RelatedFormatID>
        <RelatedFormatName>JPEG File Interchange Format</RelatedFormatName>
        <RelatedFormatVersion>1.01</RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>669</RelatedFormatID>
        <RelatedFormatName>JPEG File Interchange Format</RelatedFormatName>
        <RelatedFormatVersion>1.02</RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>671</RelatedFormatID>
        <RelatedFormatName>Still Picture Interchange File Format</RelatedFormatName>
        <RelatedFormatVersion>1.0</RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>675</RelatedFormatID>
        <RelatedFormatName>Exchangeable Image File Format (Compressed)</RelatedFormatName>
        <RelatedFormatVersion>2.1</RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>676</RelatedFormatID>
        <RelatedFormatName>Exchangeable Image File Format (Compressed)</RelatedFormatName>
        <RelatedFormatVersion>2.2</RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>751</RelatedFormatID>
        <RelatedFormatName>Exchangeable Image File Format (Compressed)</RelatedFormatName>
        <RelatedFormatVersion>2.0</RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>1444</RelatedFormatID>
        <RelatedFormatName>Exchangeable Image File Format (Compressed)</RelatedFormatName>
        <RelatedFormatVersion>2.21</RelatedFormatVersion>
      </RelatedFormat>
      <RelatedFormat>
        <RelationshipType>Has lower priority than</RelationshipType>
        <RelatedFormatID>2330</RelatedFormatID>
        <RelatedFormatName>Exchangeable Image File Format (Compressed)</RelatedFormatName>
        <RelatedFormatVersion>2.3.x</RelatedFormatVersion>
      </RelatedFormat>
      <FormatProperties>
        <FormatProperty>
          <PropertyName>Compression Type</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Compression Level</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Image Width</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Image Height</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Colour Space</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Sampling Frequency Unit</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>X Sampling Frequency</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Y Sampling Frequency</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Bits Per Sample</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Samples Per Pixel</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Byte Order</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
        <FormatProperty>
          <PropertyName>Comments</PropertyName>
          <PropertyDescription>
          </PropertyDescription>
          <PropertyType>Instance</PropertyType>
          <PropertyRiskScore>
          </PropertyRiskScore>
          <PropertyHighRisk>
          </PropertyHighRisk>
          <PropertyValueDescription>
          </PropertyValueDescription>
          <PropertyRisks />
        </FormatProperty>
      </FormatProperties>
    </FileFormat>
    <SearchCriteria>Criteria</SearchCriteria>
  </report_format_detail>
</PRONOM-Report>
