Browse Source

Merge branch 'master' into js/assignable-palette-quantizer

af/merge-core
James Jackson-South 7 years ago
parent
commit
ac69ab8f97
  1. 14
      src/ImageSharp/Common/Helpers/DebugGuard.cs
  2. 2
      src/ImageSharp/Common/Helpers/InliningOptions.cs
  3. 14
      src/ImageSharp/Common/Helpers/SimdUtils.ExtendedIntrinsics.cs
  4. 181
      src/ImageSharp/Formats/Jpeg/Components/Block8x8F.CopyTo.cs
  5. 6
      src/ImageSharp/Formats/Jpeg/Components/Block8x8F.Generated.cs
  6. 6
      src/ImageSharp/Formats/Jpeg/Components/Block8x8F.Generated.tt
  7. 75
      src/ImageSharp/Formats/Jpeg/Components/Block8x8F.cs
  8. 21
      src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverter.FromGrayScale.cs
  9. 11
      src/ImageSharp/Formats/Jpeg/Components/Decoder/IJpegComponent.cs
  10. 18
      src/ImageSharp/Formats/Jpeg/Components/Decoder/JpegComponent.cs
  11. 14
      src/ImageSharp/Formats/Jpeg/Components/Decoder/JpegComponentPostProcessor.cs
  12. 62
      src/ImageSharp/Formats/Jpeg/Components/Decoder/ScanDecoder.cs
  13. 14
      src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs
  14. 24
      src/ImageSharp/Image.Decode.cs
  15. 23
      src/ImageSharp/MetaData/Profiles/Exif/ExifReader.cs
  16. 133
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_CopyTo1x1.cs
  17. 404
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_CopyTo2x2.cs
  18. 6
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_DivideRound.cs
  19. 53
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_LoadFromInt16.cs
  20. 7
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_Round.cs
  21. 59
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg.cs
  22. 35
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpegMultiple.cs
  23. 48
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg_Aggregate.cs
  24. 119
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg_ImageSpecific.cs
  25. 86
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/LoadResizeSave.cs
  26. 96
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/LoadResizeSave_Aggregate.cs
  27. 107
      tests/ImageSharp.Benchmarks/Codecs/Jpeg/LoadResizeSave_ImageSpecific.cs
  28. 32
      tests/ImageSharp.Benchmarks/Codecs/MultiImageBenchmarkBase.cs
  29. 74
      tests/ImageSharp.Benchmarks/Samplers/Resize.cs
  30. 5
      tests/ImageSharp.Sandbox46/Program.cs
  31. 21
      tests/ImageSharp.Tests/Common/SimdUtilsTests.cs
  32. 35
      tests/ImageSharp.Tests/ComplexIntegrationTests.cs
  33. 22
      tests/ImageSharp.Tests/Formats/Jpg/Block8x8FTests.CopyToBufferArea.cs
  34. 42
      tests/ImageSharp.Tests/Formats/Jpg/Block8x8FTests.cs
  35. 7
      tests/ImageSharp.Tests/Formats/Jpg/Utils/JpegFixture.cs
  36. 3
      tests/ImageSharp.Tests/Formats/Jpg/Utils/LibJpegTools.ComponentData.cs
  37. 25
      tests/ImageSharp.Tests/Image/ImageTests.cs
  38. 72
      tests/ImageSharp.Tests/ProfilingBenchmarks/JpegBenchmarks.cs
  39. 44
      tests/ImageSharp.Tests/ProfilingBenchmarks/LoadResizeSaveBenchmarks.cs
  40. 18
      tests/ImageSharp.Tests/ProfilingBenchmarks/ProfilingSetup.cs
  41. 12
      tests/ImageSharp.Tests/TestImages.cs
  42. 11
      tests/ImageSharp.Tests/TestUtilities/TestDataGenerator.cs
  43. 331
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/Calliphora.jpg.txt
  44. 266
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/Floorplan.jpg.txt
  45. 319
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/Hiyamugi.jpg.txt
  46. 683
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/Lake.jpg.txt
  47. 282
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/MultiScanBaselineCMYK.jpg.txt
  48. 683
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/Snake.jpg.txt
  49. 347
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/badeof.jpg.txt
  50. 434
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/badrst.jpg.txt
  51. 435
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/cmyk.jpg.txt
  52. 454
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/exif.jpg.txt
  53. 339
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/gamma_dalai_lama_gray.jpg.txt
  54. 211
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/jpeg400jfif.jpg.txt
  55. 412
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/jpeg420exif.jpg.txt
  56. 330
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/jpeg420small.jpg.txt
  57. 405
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/jpeg444.jpg.txt
  58. 338
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/ratio-1x1.jpg.txt
  59. 342
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/testimgint.jpg.txt
  60. 342
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/testorig.jpg.txt
  61. 367
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/turtle.jpg.txt
  62. 640
      tests/Images/Input/Jpg/baseline/JpegSnoopReports/ycck.jpg.txt
  63. 461
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue159-MissingFF00-Progressive-Bedroom.jpg.txt
  64. 520
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue159-MissingFF00-Progressive-Girl.jpg.txt
  65. 471
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue178-BadCoeffsProgressive-Lemon.jpg.txt
  66. 94
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue214-CriticalEOF .jpg.txt
  67. 468
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue385-BadZigZag-Progressive.jpg.txt
  68. 438
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue394-MultiHuffmanBaseline-Speakers.jpg.txt
  69. 406
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue517-No-EOI-Progressive.jpg.txt
  70. 759
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue518-Bad-RST-Progressive.jpg.txt
  71. 364
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue520-InvalidCast.jpg.txt
  72. 284
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue624-DhtHasWrongLength-Progressive-N.jpg.txt
  73. 368
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue694-Decode-Exif-OutOfRange.jpg.txt
  74. 39
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue695-Invalid-EOI.jpg.txt
  75. 377
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue696-Resize-Exif-OutOfRange.jpg.txt
  76. 446
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue721-InvalidAPP0.jpg.txt
  77. 519
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue723-Ordered-Interleaved-Progressive-A.jpg.txt
  78. 477
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue723-Ordered-Interleaved-Progressive-B.jpg.txt
  79. 484
      tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue723-Ordered-Interleaved-Progressive-C.jpg.txt
  80. 772
      tests/Images/Input/Jpg/issues/JpegSnoopReports/issue750-exif-load.jpg.txt
  81. 435
      tests/Images/Input/Jpg/issues/JpegSnoopReports/issue750-exif-tranform.jpg.txt
  82. 452
      tests/Images/Input/Jpg/progressive/JpegSnoopReports/BadEofProgressive.jpg.txt
  83. 535
      tests/Images/Input/Jpg/progressive/JpegSnoopReports/ExifUndefType.jpg.txt
  84. 459
      tests/Images/Input/Jpg/progressive/JpegSnoopReports/Festzug.jpg.txt
  85. 525
      tests/Images/Input/Jpg/progressive/JpegSnoopReports/fb.jpg.txt
  86. 468
      tests/Images/Input/Jpg/progressive/JpegSnoopReports/progress.jpg.txt

14
src/ImageSharp/Common/Helpers/DebugGuard.cs

@ -163,6 +163,20 @@ namespace SixLabors.ImageSharp
}
}
/// <summary>
/// Verifies whether a specific condition is met, throwing an exception if it's false.
/// </summary>
/// <param name="target">The condition</param>
/// <param name="message">The error message</param>
[Conditional("DEBUG")]
public static void IsTrue(bool target, string message)
{
if (!target)
{
throw new InvalidOperationException(message);
}
}
/// <summary>
/// Verifies, that the method parameter with specified target value is false
/// and throws an exception if it is found to be so.

2
src/ImageSharp/Common/Helpers/InliningOptions.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
// Uncomment this for verbose profiler results:
// Uncomment this for verbose profiler results. DO NOT PUSH TO MAIN!
// #define PROFILING
using System.Runtime.CompilerServices;

14
src/ImageSharp/Common/Helpers/SimdUtils.ExtendedIntrinsics.cs

@ -25,6 +25,20 @@ namespace SixLabors.ImageSharp
false;
#endif
/// <summary>
/// Widen and convert a vector of <see cref="short"/> values into 2 vectors of <see cref="float"/>-s.
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static void ConvertToSingle(
Vector<short> source,
out Vector<float> dest1,
out Vector<float> dest2)
{
Vector.Widen(source, out Vector<int> i1, out Vector<int> i2);
dest1 = Vector.ConvertToSingle(i1);
dest2 = Vector.ConvertToSingle(i2);
}
/// <summary>
/// <see cref="BulkConvertByteToNormalizedFloat"/> as many elements as possible, slicing them down (keeping the remainder).
/// </summary>

181
src/ImageSharp/Formats/Jpeg/Components/Block8x8F.CopyTo.cs

@ -3,64 +3,41 @@
using System.Numerics;
using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.Memory;
// ReSharper disable UseObjectOrCollectionInitializer
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Formats.Jpeg.Components
{
internal partial struct Block8x8F
{
/// <summary>
/// Copy block data into the destination color buffer pixel area with the provided horizontal and vertical.
/// Copy block data into the destination color buffer pixel area with the provided horizontal and vertical scale factors.
/// </summary>
[MethodImpl(InliningOptions.ShortMethod)]
public void CopyTo(in BufferArea<float> area, int horizontalScale, int verticalScale)
{
if (horizontalScale == 1 && verticalScale == 1)
{
this.CopyTo(area);
this.Copy1x1Scale(area);
return;
}
else if (horizontalScale == 2 && verticalScale == 2)
if (horizontalScale == 2 && verticalScale == 2)
{
this.CopyTo2x2(area);
this.Copy2x2Scale(area);
return;
}
ref float destBase = ref area.GetReferenceToOrigin();
// TODO: Optimize: implement all the cases with loopless special code! (T4?)
for (int y = 0; y < 8; y++)
{
int yy = y * verticalScale;
int y8 = y * 8;
for (int x = 0; x < 8; x++)
{
int xx = x * horizontalScale;
float value = this[y8 + x];
for (int i = 0; i < verticalScale; i++)
{
int baseIdx = ((yy + i) * area.Stride) + xx;
for (int j = 0; j < horizontalScale; j++)
{
// area[xx + j, yy + i] = value;
Unsafe.Add(ref destBase, baseIdx + j) = value;
}
}
}
}
// TODO: Optimize: implement all cases with scale-specific, loopless code!
this.CopyArbitraryScale(area, horizontalScale, verticalScale);
}
// [MethodImpl(MethodImplOptions.AggressiveInlining)]
public void CopyTo(in BufferArea<float> area)
public void Copy1x1Scale(in BufferArea<float> destination)
{
ref byte selfBase = ref Unsafe.As<Block8x8F, byte>(ref this);
ref byte destBase = ref Unsafe.As<float, byte>(ref area.GetReferenceToOrigin());
int destStride = area.Stride * sizeof(float);
ref byte destBase = ref Unsafe.As<float, byte>(ref destination.GetReferenceToOrigin());
int destStride = destination.Stride * sizeof(float);
CopyRowImpl(ref selfBase, ref destBase, destStride, 0);
CopyRowImpl(ref selfBase, ref destBase, destStride, 1);
@ -80,76 +57,86 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
Unsafe.CopyBlock(ref d, ref s, 8 * sizeof(float));
}
private void CopyTo2x2(in BufferArea<float> area)
private void Copy2x2Scale(in BufferArea<float> area)
{
ref float destBase = ref area.GetReferenceToOrigin();
int destStride = area.Stride;
this.WidenCopyImpl2x2(ref destBase, 0, destStride);
this.WidenCopyImpl2x2(ref destBase, 1, destStride);
this.WidenCopyImpl2x2(ref destBase, 2, destStride);
this.WidenCopyImpl2x2(ref destBase, 3, destStride);
this.WidenCopyImpl2x2(ref destBase, 4, destStride);
this.WidenCopyImpl2x2(ref destBase, 5, destStride);
this.WidenCopyImpl2x2(ref destBase, 6, destStride);
this.WidenCopyImpl2x2(ref destBase, 7, destStride);
ref Vector2 destBase = ref Unsafe.As<float, Vector2>(ref area.GetReferenceToOrigin());
int destStride = area.Stride / 2;
this.WidenCopyRowImpl2x2(ref destBase, 0, destStride);
this.WidenCopyRowImpl2x2(ref destBase, 1, destStride);
this.WidenCopyRowImpl2x2(ref destBase, 2, destStride);
this.WidenCopyRowImpl2x2(ref destBase, 3, destStride);
this.WidenCopyRowImpl2x2(ref destBase, 4, destStride);
this.WidenCopyRowImpl2x2(ref destBase, 5, destStride);
this.WidenCopyRowImpl2x2(ref destBase, 6, destStride);
this.WidenCopyRowImpl2x2(ref destBase, 7, destStride);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private void WidenCopyImpl2x2(ref float destBase, int row, int destStride)
private void WidenCopyRowImpl2x2(ref Vector2 destBase, int row, int destStride)
{
ref Vector4 selfLeft = ref Unsafe.Add(ref this.V0L, 2 * row);
ref Vector4 selfRight = ref Unsafe.Add(ref selfLeft, 1);
ref float destLocalOrigo = ref Unsafe.Add(ref destBase, row * 2 * destStride);
Unsafe.Add(ref destLocalOrigo, 0) = selfLeft.X;
Unsafe.Add(ref destLocalOrigo, 1) = selfLeft.X;
Unsafe.Add(ref destLocalOrigo, 2) = selfLeft.Y;
Unsafe.Add(ref destLocalOrigo, 3) = selfLeft.Y;
Unsafe.Add(ref destLocalOrigo, 4) = selfLeft.Z;
Unsafe.Add(ref destLocalOrigo, 5) = selfLeft.Z;
Unsafe.Add(ref destLocalOrigo, 6) = selfLeft.W;
Unsafe.Add(ref destLocalOrigo, 7) = selfLeft.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 0) = selfRight.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 1) = selfRight.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 2) = selfRight.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 3) = selfRight.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 4) = selfRight.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 5) = selfRight.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 6) = selfRight.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 7) = selfRight.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 0) = selfLeft.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 1) = selfLeft.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 2) = selfLeft.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 3) = selfLeft.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 4) = selfLeft.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 5) = selfLeft.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 6) = selfLeft.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 7) = selfLeft.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 0) = selfRight.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 1) = selfRight.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 2) = selfRight.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 3) = selfRight.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 4) = selfRight.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 5) = selfRight.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 6) = selfRight.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 7) = selfRight.W;
ref Vector4 sLeft = ref Unsafe.Add(ref this.V0L, 2 * row);
ref Vector4 sRight = ref Unsafe.Add(ref sLeft, 1);
int offset = 2 * row * destStride;
ref Vector4 dTopLeft = ref Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref destBase, offset));
ref Vector4 dBottomLeft = ref Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref destBase, offset + destStride));
var xyLeft = new Vector4(sLeft.X);
xyLeft.Z = sLeft.Y;
xyLeft.W = sLeft.Y;
var zwLeft = new Vector4(sLeft.Z);
zwLeft.Z = sLeft.W;
zwLeft.W = sLeft.W;
var xyRight = new Vector4(sRight.X);
xyRight.Z = sRight.Y;
xyRight.W = sRight.Y;
var zwRight = new Vector4(sRight.Z);
zwRight.Z = sRight.W;
zwRight.W = sRight.W;
dTopLeft = xyLeft;
Unsafe.Add(ref dTopLeft, 1) = zwLeft;
Unsafe.Add(ref dTopLeft, 2) = xyRight;
Unsafe.Add(ref dTopLeft, 3) = zwRight;
dBottomLeft = xyLeft;
Unsafe.Add(ref dBottomLeft, 1) = zwLeft;
Unsafe.Add(ref dBottomLeft, 2) = xyRight;
Unsafe.Add(ref dBottomLeft, 3) = zwRight;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void WidenCopyImpl(ref Vector4 s, ref float destBase)
[MethodImpl(InliningOptions.ColdPath)]
private void CopyArbitraryScale(BufferArea<float> area, int horizontalScale, int verticalScale)
{
Unsafe.Add(ref destBase, 0) = s.X;
Unsafe.Add(ref destBase, 1) = s.X;
Unsafe.Add(ref destBase, 2) = s.Y;
Unsafe.Add(ref destBase, 3) = s.Y;
Unsafe.Add(ref destBase, 4) = s.Z;
Unsafe.Add(ref destBase, 5) = s.Z;
Unsafe.Add(ref destBase, 6) = s.W;
Unsafe.Add(ref destBase, 7) = s.W;
ref float destBase = ref area.GetReferenceToOrigin();
for (int y = 0; y < 8; y++)
{
int yy = y * verticalScale;
int y8 = y * 8;
for (int x = 0; x < 8; x++)
{
int xx = x * horizontalScale;
float value = this[y8 + x];
for (int i = 0; i < verticalScale; i++)
{
int baseIdx = ((yy + i) * area.Stride) + xx;
for (int j = 0; j < horizontalScale; j++)
{
// area[xx + j, yy + i] = value;
Unsafe.Add(ref destBase, baseIdx + j) = value;
}
}
}
}
}
}
}

6
src/ImageSharp/Formats/Jpeg/Components/Block8x8F.Generated.cs

@ -17,7 +17,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// Transpose the block into the destination block.
/// </summary>
/// <param name="d">The destination block</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void TransposeInto(ref Block8x8F d)
{
d.V0L.X = V0L.X;
@ -119,7 +119,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// <summary>
/// AVX2-only variant for executing <see cref="NormalizeColorsInplace"/> and <see cref="RoundInplace"/> in one step.
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void NormalizeColorsAndRoundInplaceAvx2()
{
Vector<float> off = new Vector<float>(128f);
@ -154,7 +154,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// <summary>
/// Fill the block from 'source' doing short -> float conversion.
/// </summary>
public void LoadFrom(ref Block8x8 source)
public void LoadFromInt16Scalar(ref Block8x8 source)
{
ref short selfRef = ref Unsafe.As<Block8x8, short>(ref source);

6
src/ImageSharp/Formats/Jpeg/Components/Block8x8F.Generated.tt

@ -30,7 +30,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// Transpose the block into the destination block.
/// </summary>
/// <param name="d">The destination block</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void TransposeInto(ref Block8x8F d)
{
<#
@ -82,7 +82,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// <summary>
/// AVX2-only variant for executing <see cref="NormalizeColorsInplace"/> and <see cref="RoundInplace"/> in one step.
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void NormalizeColorsAndRoundInplaceAvx2()
{
Vector<float> off = new Vector<float>(128f);
@ -104,7 +104,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// <summary>
/// Fill the block from 'source' doing short -> float conversion.
/// </summary>
public void LoadFrom(ref Block8x8 source)
public void LoadFromInt16Scalar(ref Block8x8 source)
{
ref short selfRef = ref Unsafe.As<Block8x8, short>(ref source);

75
src/ImageSharp/Formats/Jpeg/Components/Block8x8F.cs

@ -57,7 +57,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// <returns>The float value at the specified index</returns>
public float this[int idx]
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
get
{
GuardBlockIndex(idx);
@ -65,7 +65,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
return Unsafe.Add(ref selfRef, idx);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
set
{
GuardBlockIndex(idx);
@ -149,7 +149,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// <summary>
/// Fill the block with defaults (zeroes)
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void Clear()
{
// The cheapest way to do this in C#:
@ -160,7 +160,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// Load raw 32bit floating point data from source
/// </summary>
/// <param name="source">Source</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void LoadFrom(Span<float> source)
{
ref byte s = ref Unsafe.As<float, byte>(ref MemoryMarshal.GetReference(source));
@ -174,7 +174,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// </summary>
/// <param name="blockPtr">Block pointer</param>
/// <param name="source">Source</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public static unsafe void LoadFrom(Block8x8F* blockPtr, Span<float> source)
{
blockPtr->LoadFrom(source);
@ -200,7 +200,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// Copy raw 32bit floating point data to dest
/// </summary>
/// <param name="dest">Destination</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void CopyTo(Span<float> dest)
{
ref byte d = ref Unsafe.As<float, byte>(ref MemoryMarshal.GetReference(dest));
@ -214,7 +214,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// </summary>
/// <param name="blockPtr">Pointer to block</param>
/// <param name="dest">Destination</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public static unsafe void CopyTo(Block8x8F* blockPtr, Span<byte> dest)
{
float* fPtr = (float*)blockPtr;
@ -230,7 +230,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// </summary>
/// <param name="blockPtr">Block pointer</param>
/// <param name="dest">Destination</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public static unsafe void CopyTo(Block8x8F* blockPtr, Span<float> dest)
{
blockPtr->CopyTo(dest);
@ -240,7 +240,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// Copy raw 32bit floating point data to dest
/// </summary>
/// <param name="dest">Destination</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public unsafe void CopyTo(float[] dest)
{
fixed (void* ptr = &this.V0L)
@ -276,7 +276,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// Multiply all elements of the block.
/// </summary>
/// <param name="value">The value to multiply by</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void MultiplyInplace(float value)
{
this.V0L *= value;
@ -300,7 +300,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// <summary>
/// Multiply all elements of the block by the corresponding elements of 'other'
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void MultiplyInplace(ref Block8x8F other)
{
this.V0L *= other.V0L;
@ -325,7 +325,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
/// Adds a vector to all elements of the block.
/// </summary>
/// <param name="diff">The added vector</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
public void AddToAllInplace(Vector4 diff)
{
this.V0L += diff;
@ -420,7 +420,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
}
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
private static void DivideRoundAll(ref Block8x8F a, ref Block8x8F b)
{
a.V0L = DivideRound(a.V0L, b.V0L);
@ -493,6 +493,51 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
}
}
[MethodImpl(InliningOptions.ShortMethod)]
public void LoadFrom(ref Block8x8 source)
{
#if SUPPORTS_EXTENDED_INTRINSICS
if (SimdUtils.IsAvx2CompatibleArchitecture)
{
this.LoadFromInt16ExtendedAvx2(ref source);
return;
}
#endif
this.LoadFromInt16Scalar(ref source);
}
/// <summary>
/// Loads values from <paramref name="source"/> using extended AVX2 intrinsics.
/// </summary>
/// <param name="source">The source <see cref="Block8x8"/></param>
public void LoadFromInt16ExtendedAvx2(ref Block8x8 source)
{
DebugGuard.IsTrue(
SimdUtils.IsAvx2CompatibleArchitecture,
"LoadFromUInt16ExtendedAvx2 only works on AVX2 compatible architecture!");
ref Vector<short> sRef = ref Unsafe.As<Block8x8, Vector<short>>(ref source);
ref Vector<float> dRef = ref Unsafe.As<Block8x8F, Vector<float>>(ref this);
// Vector<ushort>.Count == 16 on AVX2
// We can process 2 block rows in a single step
SimdUtils.ExtendedIntrinsics.ConvertToSingle(sRef, out Vector<float> top, out Vector<float> bottom);
dRef = top;
Unsafe.Add(ref dRef, 1) = bottom;
SimdUtils.ExtendedIntrinsics.ConvertToSingle(Unsafe.Add(ref sRef, 1), out top, out bottom);
Unsafe.Add(ref dRef, 2) = top;
Unsafe.Add(ref dRef, 3) = bottom;
SimdUtils.ExtendedIntrinsics.ConvertToSingle(Unsafe.Add(ref sRef, 2), out top, out bottom);
Unsafe.Add(ref dRef, 4) = top;
Unsafe.Add(ref dRef, 5) = bottom;
SimdUtils.ExtendedIntrinsics.ConvertToSingle(Unsafe.Add(ref sRef, 3), out top, out bottom);
Unsafe.Add(ref dRef, 6) = top;
Unsafe.Add(ref dRef, 7) = bottom;
}
/// <inheritdoc />
public override string ToString()
{
@ -511,7 +556,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
return sb.ToString();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
private static Vector<float> NormalizeAndRound(Vector<float> row, Vector<float> off, Vector<float> max)
{
row += off;
@ -520,7 +565,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components
return row.FastRound();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
private static Vector4 DivideRound(Vector4 dividend, Vector4 divisor)
{
// sign(dividend) = max(min(dividend, 1), -1)

21
src/ImageSharp/Formats/Jpeg/Components/Decoder/ColorConverters/JpegColorConverter.FromGrayScale.cs

@ -3,6 +3,8 @@
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.ColorConverters
{
@ -17,24 +19,17 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder.ColorConverters
public override void ConvertToRgba(in ComponentValues values, Span<Vector4> result)
{
// TODO: We can optimize a lot here with Vector<float> and SRCS.Unsafe()!
ReadOnlySpan<float> yVals = values.Component0;
var v = new Vector4(0, 0, 0, 1);
var scale = new Vector4(1 / 255F, 1 / 255F, 1 / 255F, 1F);
ref float sBase = ref MemoryMarshal.GetReference(values.Component0);
ref Vector4 dBase = ref MemoryMarshal.GetReference(result);
for (int i = 0; i < result.Length; i++)
{
float y = yVals[i];
v.X = y;
v.Y = y;
v.Z = y;
var v = new Vector4(Unsafe.Add(ref sBase, i));
v.W = 1f;
v *= scale;
result[i] = v;
Unsafe.Add(ref dBase, i) = v;
}
}
}

11
src/ImageSharp/Formats/Jpeg/Components/Decoder/IJpegComponent.cs

@ -2,7 +2,6 @@
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Memory;
using SixLabors.Memory;
using SixLabors.Primitives;
namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
@ -43,16 +42,8 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
/// <summary>
/// Gets the <see cref="Buffer2D{Block8x8}"/> storing the "raw" frequency-domain decoded + unzigged blocks.
/// We need to apply IDCT and dequantiazition to transform them into color-space blocks.
/// We need to apply IDCT and dequantization to transform them into color-space blocks.
/// </summary>
Buffer2D<Block8x8> SpectralBlocks { get; }
/// <summary>
/// Gets a reference to the <see cref="Block8x8"/> at the given row and column index from <see cref="SpectralBlocks"/>
/// </summary>
/// <param name="column">The column</param>
/// <param name="row">The row</param>
/// <returns>The <see cref="Block8x8"/></returns>
ref Block8x8 GetBlockReference(int column, int row);
}
}

18
src/ImageSharp/Formats/Jpeg/Components/Decoder/JpegComponent.cs

@ -128,21 +128,11 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
this.SubSamplingDivisors = c0.SamplingFactors.DivideBy(this.SamplingFactors);
}
this.SpectralBlocks = this.memoryAllocator.Allocate2D<Block8x8>(blocksPerColumnForMcu, blocksPerLineForMcu + 1, AllocationOptions.Clean);
}
int totalNumberOfBlocks = blocksPerColumnForMcu * (blocksPerLineForMcu + 1);
int width = this.WidthInBlocks + 1;
int height = totalNumberOfBlocks / width;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public ref Block8x8 GetBlockReference(int column, int row)
{
int offset = ((this.WidthInBlocks + 1) * row) + column;
return ref Unsafe.Add(ref MemoryMarshal.GetReference(this.SpectralBlocks.GetSpan()), offset);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public ref short GetBlockDataReference(int column, int row)
{
ref Block8x8 blockRef = ref this.GetBlockReference(column, row);
return ref Unsafe.As<Block8x8, short>(ref blockRef);
this.SpectralBlocks = this.memoryAllocator.Allocate2D<Block8x8>(width, height, AllocationOptions.Clean);
}
}
}

14
src/ImageSharp/Formats/Jpeg/Components/Decoder/JpegComponentPostProcessor.cs

@ -2,6 +2,8 @@
// Licensed under the Apache License, Version 2.0.
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using SixLabors.ImageSharp.Memory;
using SixLabors.Memory;
@ -88,12 +90,14 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
int yBuffer = y * this.blockAreaSize.Height;
for (int x = 0; x < this.SizeInBlocks.Width; x++)
{
int xBlock = x;
int xBuffer = x * this.blockAreaSize.Width;
Span<Block8x8> blockRow = this.Component.SpectralBlocks.GetRowSpan(yBlock);
ref Block8x8 blockRowBase = ref MemoryMarshal.GetReference(blockRow);
ref Block8x8 block = ref this.Component.GetBlockReference(xBlock, yBlock);
for (int xBlock = 0; xBlock < this.SizeInBlocks.Width; xBlock++)
{
ref Block8x8 block = ref Unsafe.Add(ref blockRowBase, xBlock);
int xBuffer = xBlock * this.blockAreaSize.Width;
BufferArea<float> destArea = this.ColorBuffer.GetArea(
xBuffer,

62
src/ImageSharp/Formats/Jpeg/Components/Decoder/ScanDecoder.cs

@ -1,8 +1,10 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System;
using System.Runtime.CompilerServices;
using SixLabors.ImageSharp.IO;
using SixLabors.ImageSharp.Memory;
namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
{
@ -142,7 +144,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
}
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
private static uint LRot(uint x, int y) => (x << y) | (x >> (32 - y));
private void ParseBaselineData()
@ -179,10 +181,14 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
int h = component.HorizontalSamplingFactor;
int v = component.VerticalSamplingFactor;
int mcuRow = mcu / mcusPerLine;
// Scan out an mcu's worth of this component; that's just determined
// by the basic H and V specified for the component
for (int y = 0; y < v; y++)
{
int blockRow = (mcuRow * v) + y;
Span<Block8x8> blockSpan = component.SpectralBlocks.GetRowSpan(blockRow);
for (int x = 0; x < h; x++)
{
if (this.eof)
@ -190,15 +196,12 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
return;
}
int mcuRow = mcu / mcusPerLine;
int mcuCol = mcu % mcusPerLine;
int blockRow = (mcuRow * v) + y;
int blockCol = (mcuCol * h) + x;
this.DecodeBlockBaseline(
component,
blockRow,
blockCol,
ref blockSpan[blockCol],
ref dcHuffmanTable,
ref acHuffmanTable,
ref fastACRef);
@ -236,6 +239,10 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
int mcu = 0;
for (int j = 0; j < h; j++)
{
// TODO: Isn't blockRow == j actually?
int blockRow = mcu / w;
Span<Block8x8> blockSpan = component.SpectralBlocks.GetRowSpan(blockRow);
for (int i = 0; i < w; i++)
{
if (this.eof)
@ -243,13 +250,12 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
return;
}
int blockRow = mcu / w;
// TODO: Isn't blockCol == i actually?
int blockCol = mcu % w;
this.DecodeBlockBaseline(
component,
blockRow,
blockCol,
ref blockSpan[blockCol],
ref dcHuffmanTable,
ref acHuffmanTable,
ref fastACRef);
@ -299,6 +305,10 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
// by the basic H and V specified for the component
for (int y = 0; y < v; y++)
{
int mcuRow = mcu / mcusPerLine;
int blockRow = (mcuRow * v) + y;
Span<Block8x8> blockSpan = component.SpectralBlocks.GetRowSpan(blockRow);
for (int x = 0; x < h; x++)
{
if (this.eof)
@ -306,15 +316,12 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
return;
}
int mcuRow = mcu / mcusPerLine;
int mcuCol = mcu % mcusPerLine;
int blockRow = (mcuRow * v) + y;
int blockCol = (mcuCol * h) + x;
this.DecodeBlockProgressiveDC(
component,
blockRow,
blockCol,
ref blockSpan[blockCol],
ref dcHuffmanTable);
}
}
@ -351,6 +358,10 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
int mcu = 0;
for (int j = 0; j < h; j++)
{
// TODO: isn't blockRow == j actually?
int blockRow = mcu / w;
Span<Block8x8> blockSpan = component.SpectralBlocks.GetRowSpan(blockRow);
for (int i = 0; i < w; i++)
{
if (this.eof)
@ -358,23 +369,22 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
return;
}
int blockRow = mcu / w;
// TODO: isn't blockCol == i actually?
int blockCol = mcu % w;
ref Block8x8 block = ref blockSpan[blockCol];
if (this.spectralStart == 0)
{
this.DecodeBlockProgressiveDC(
component,
blockRow,
blockCol,
ref block,
ref dcHuffmanTable);
}
else
{
this.DecodeBlockProgressiveAC(
component,
blockRow,
blockCol,
ref block,
ref acHuffmanTable,
ref fastACRef);
}
@ -391,8 +401,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
private void DecodeBlockBaseline(
JpegComponent component,
int row,
int col,
ref Block8x8 block,
ref HuffmanTable dcTable,
ref HuffmanTable acTable,
ref short fastACRef)
@ -405,7 +414,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
JpegThrowHelper.ThrowBadHuffmanCode();
}
ref short blockDataRef = ref component.GetBlockDataReference(col, row);
ref short blockDataRef = ref Unsafe.As<Block8x8, short>(ref block);
int diff = t != 0 ? this.ExtendReceive(t) : 0;
int dc = component.DcPredictor + diff;
@ -470,8 +479,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
private void DecodeBlockProgressiveDC(
JpegComponent component,
int row,
int col,
ref Block8x8 block,
ref HuffmanTable dcTable)
{
if (this.spectralEnd != 0)
@ -481,7 +489,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
this.CheckBits();
ref short blockDataRef = ref component.GetBlockDataReference(col, row);
ref short blockDataRef = ref Unsafe.As<Block8x8, short>(ref block);
if (this.successiveHigh == 0)
{
@ -505,9 +513,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
}
private void DecodeBlockProgressiveAC(
JpegComponent component,
int row,
int col,
ref Block8x8 block,
ref HuffmanTable acTable,
ref short fastACRef)
{
@ -516,7 +522,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg.Components.Decoder
JpegThrowHelper.ThrowImageFormatException("Can't merge DC and AC.");
}
ref short blockDataRef = ref component.GetBlockDataReference(col, row);
ref short blockDataRef = ref Unsafe.As<Block8x8, short>(ref block);
if (this.successiveHigh == 0)
{

14
src/ImageSharp/Formats/Jpeg/JpegDecoderCore.cs

@ -913,7 +913,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg
/// <param name="index">The table index</param>
/// <param name="codeLengths">The codelengths</param>
/// <param name="values">The values</param>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
private void BuildHuffmanTable(HuffmanTables tables, int index, ReadOnlySpan<byte> codeLengths, ReadOnlySpan<byte> values)
=> tables[index] = new HuffmanTable(this.configuration.MemoryAllocator, codeLengths, values);
@ -921,7 +921,7 @@ namespace SixLabors.ImageSharp.Formats.Jpeg
/// Reads a <see cref="ushort"/> from the stream advancing it by two bytes
/// </summary>
/// <returns>The <see cref="ushort"/></returns>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[MethodImpl(InliningOptions.ShortMethod)]
private ushort ReadUint16()
{
this.InputStream.Read(this.markerBuffer, 0, 2);
@ -936,12 +936,18 @@ namespace SixLabors.ImageSharp.Formats.Jpeg
private Image<TPixel> PostProcessIntoImage<TPixel>()
where TPixel : struct, IPixel<TPixel>
{
var image = Image.CreateUninitialized<TPixel>(
this.configuration,
this.ImageWidth,
this.ImageHeight,
this.MetaData);
using (var postProcessor = new JpegImagePostProcessor(this.configuration, this))
{
var image = new Image<TPixel>(this.configuration, this.ImageWidth, this.ImageHeight, this.MetaData);
postProcessor.PostProcess(image.Frames.RootFrame);
return image;
}
return image;
}
}
}

24
src/ImageSharp/Image.Decode.cs

@ -5,6 +5,7 @@ using System.IO;
using System.Linq;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.Memory;
@ -15,6 +16,29 @@ namespace SixLabors.ImageSharp
/// </content>
public static partial class Image
{
/// <summary>
/// Creates an <see cref="Image{TPixel}"/> instance backed by an uninitialized memory buffer.
/// This is an optimized creation method intended to be used by decoders.
/// The image might be filled with memory garbage.
/// </summary>
/// <typeparam name="TPixel">The pixel type</typeparam>
/// <param name="configuration">The <see cref="Configuration"/></param>
/// <param name="width">The width of the image</param>
/// <param name="height">The height of the image</param>
/// <param name="metadata">The <see cref="ImageMetaData"/></param>
/// <returns>The result <see cref="Image{TPixel}"/></returns>
internal static Image<TPixel> CreateUninitialized<TPixel>(
Configuration configuration,
int width,
int height,
ImageMetaData metadata)
where TPixel : struct, IPixel<TPixel>
{
Buffer2D<TPixel> uninitializedMemoryBuffer =
configuration.MemoryAllocator.Allocate2D<TPixel>(width, height);
return new Image<TPixel>(configuration, uninitializedMemoryBuffer.MemorySource, width, height, metadata);
}
/// <summary>
/// By reading the header on the provided stream this calculates the images format.
/// </summary>

23
src/ImageSharp/MetaData/Profiles/Exif/ExifReader.cs

@ -124,7 +124,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Exif
private byte ConvertToByte(ReadOnlySpan<byte> buffer) => buffer[0];
private unsafe string ConvertToString(ReadOnlySpan<byte> buffer)
private string ConvertToString(ReadOnlySpan<byte> buffer)
{
int nullCharIndex = buffer.IndexOf((byte)0);
@ -382,13 +382,13 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Exif
this.invalidTags.Add(tag);
}
[MethodImpl(InliningOptions.ShortMethod)]
private TEnum ToEnum<TEnum>(int value, TEnum defaultValue)
where TEnum : struct
{
var enumValue = (TEnum)(object)value;
if (Enum.GetValues(typeof(TEnum)).Cast<TEnum>().Any(v => v.Equals(enumValue)))
if (EnumHelper<TEnum>.IsDefined(value))
{
return enumValue;
return Unsafe.As<int, TEnum>(ref value);
}
return defaultValue;
@ -557,5 +557,18 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Exif
? BinaryPrimitives.ReadInt16BigEndian(buffer)
: BinaryPrimitives.ReadInt16LittleEndian(buffer);
}
private class EnumHelper<TEnum>
where TEnum : struct
{
private static readonly int[] Values = Enum.GetValues(typeof(TEnum)).Cast<TEnum>()
.Select(e => Convert.ToInt32(e)).OrderBy(e => e).ToArray();
[MethodImpl(InliningOptions.ShortMethod)]
public static bool IsDefined(int value)
{
return Array.BinarySearch(Values, value) >= 0;
}
}
}
}
}

133
tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_CopyTo1x1.cs

@ -0,0 +1,133 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System;
using System.Numerics;
using System.Runtime.CompilerServices;
using BenchmarkDotNet.Attributes;
using SixLabors.ImageSharp.Formats.Jpeg.Components;
using SixLabors.ImageSharp.Memory;
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg.BlockOperations
{
public class Block8x8F_CopyTo1x1
{
private Block8x8F block;
private Buffer2D<float> buffer;
private BufferArea<float> destArea;
[GlobalSetup]
public void Setup()
{
if (!SimdUtils.IsAvx2CompatibleArchitecture)
{
throw new InvalidOperationException("Benchmark Block8x8F_CopyTo1x1 is invalid on platforms without AVX2 support.");
}
this.buffer = Configuration.Default.MemoryAllocator.Allocate2D<float>(1000, 500);
this.destArea = this.buffer.GetArea(200, 100, 64, 64);
}
[Benchmark(Baseline = true)]
public void Original()
{
ref byte selfBase = ref Unsafe.As<Block8x8F, byte>(ref this.block);
ref byte destBase = ref Unsafe.As<float, byte>(ref this.destArea.GetReferenceToOrigin());
int destStride = this.destArea.Stride * sizeof(float);
CopyRowImpl(ref selfBase, ref destBase, destStride, 0);
CopyRowImpl(ref selfBase, ref destBase, destStride, 1);
CopyRowImpl(ref selfBase, ref destBase, destStride, 2);
CopyRowImpl(ref selfBase, ref destBase, destStride, 3);
CopyRowImpl(ref selfBase, ref destBase, destStride, 4);
CopyRowImpl(ref selfBase, ref destBase, destStride, 5);
CopyRowImpl(ref selfBase, ref destBase, destStride, 6);
CopyRowImpl(ref selfBase, ref destBase, destStride, 7);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void CopyRowImpl(ref byte selfBase, ref byte destBase, int destStride, int row)
{
ref byte s = ref Unsafe.Add(ref selfBase, row * 8 * sizeof(float));
ref byte d = ref Unsafe.Add(ref destBase, row * destStride);
Unsafe.CopyBlock(ref d, ref s, 8 * sizeof(float));
}
[Benchmark]
public void UseVector8()
{
ref Block8x8F s = ref this.block;
ref float origin = ref this.destArea.GetReferenceToOrigin();
int stride = this.destArea.Stride;
ref Vector<float> d0 = ref Unsafe.As<float, Vector<float>>(ref origin);
ref Vector<float> d1 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride));
ref Vector<float> d2 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 2));
ref Vector<float> d3 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 3));
ref Vector<float> d4 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 4));
ref Vector<float> d5 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 5));
ref Vector<float> d6 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 6));
ref Vector<float> d7 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 7));
Vector<float> row0 = Unsafe.As<Vector4, Vector<float>>(ref s.V0L);
Vector<float> row1 = Unsafe.As<Vector4, Vector<float>>(ref s.V1L);
Vector<float> row2 = Unsafe.As<Vector4, Vector<float>>(ref s.V2L);
Vector<float> row3 = Unsafe.As<Vector4, Vector<float>>(ref s.V3L);
Vector<float> row4 = Unsafe.As<Vector4, Vector<float>>(ref s.V4L);
Vector<float> row5 = Unsafe.As<Vector4, Vector<float>>(ref s.V5L);
Vector<float> row6 = Unsafe.As<Vector4, Vector<float>>(ref s.V6L);
Vector<float> row7 = Unsafe.As<Vector4, Vector<float>>(ref s.V7L);
d0 = row0;
d1 = row1;
d2 = row2;
d3 = row3;
d4 = row4;
d5 = row5;
d6 = row6;
d7 = row7;
}
[Benchmark]
public void UseVector8_V2()
{
ref Block8x8F s = ref this.block;
ref float origin = ref this.destArea.GetReferenceToOrigin();
int stride = this.destArea.Stride;
ref Vector<float> d0 = ref Unsafe.As<float, Vector<float>>(ref origin);
ref Vector<float> d1 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride));
ref Vector<float> d2 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 2));
ref Vector<float> d3 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 3));
ref Vector<float> d4 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 4));
ref Vector<float> d5 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 5));
ref Vector<float> d6 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 6));
ref Vector<float> d7 = ref Unsafe.As<float, Vector<float>>(ref Unsafe.Add(ref origin, stride * 7));
d0 = Unsafe.As<Vector4, Vector<float>>(ref s.V0L);
d1 = Unsafe.As<Vector4, Vector<float>>(ref s.V1L);
d2 = Unsafe.As<Vector4, Vector<float>>(ref s.V2L);
d3 = Unsafe.As<Vector4, Vector<float>>(ref s.V3L);
d4 = Unsafe.As<Vector4, Vector<float>>(ref s.V4L);
d5 = Unsafe.As<Vector4, Vector<float>>(ref s.V5L);
d6 = Unsafe.As<Vector4, Vector<float>>(ref s.V6L);
d7 = Unsafe.As<Vector4, Vector<float>>(ref s.V7L);
}
// RESULTS:
//
// Method | Mean | Error | StdDev | Scaled |
// -------------- |---------:|----------:|----------:|-------:|
// Original | 22.53 ns | 0.1660 ns | 0.1553 ns | 1.00 |
// UseVector8 | 21.59 ns | 0.3079 ns | 0.2571 ns | 0.96 |
// UseVector8_V2 | 22.57 ns | 0.1699 ns | 0.1506 ns | 1.00 |
//
// Conclusion:
// Doesn't worth to bother with this
}
}

404
tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_CopyTo2x2.cs

@ -0,0 +1,404 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System.Numerics;
using System.Runtime.CompilerServices;
using BenchmarkDotNet.Attributes;
using SixLabors.ImageSharp.Formats.Jpeg.Components;
using SixLabors.ImageSharp.Memory;
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg.BlockOperations
{
public class Block8x8F_CopyTo2x2
{
private Block8x8F block;
private Buffer2D<float> buffer;
private BufferArea<float> destArea;
[GlobalSetup]
public void Setup()
{
this.buffer = Configuration.Default.MemoryAllocator.Allocate2D<float>(1000, 500);
this.destArea = this.buffer.GetArea(200, 100, 128, 128);
}
[Benchmark(Baseline = true)]
public void Original()
{
ref float destBase = ref this.destArea.GetReferenceToOrigin();
int destStride = this.destArea.Stride;
ref Block8x8F src = ref this.block;
WidenCopyImpl2x2(ref src, ref destBase, 0, destStride);
WidenCopyImpl2x2(ref src, ref destBase, 1, destStride);
WidenCopyImpl2x2(ref src, ref destBase, 2, destStride);
WidenCopyImpl2x2(ref src, ref destBase, 3, destStride);
WidenCopyImpl2x2(ref src, ref destBase, 4, destStride);
WidenCopyImpl2x2(ref src, ref destBase, 5, destStride);
WidenCopyImpl2x2(ref src, ref destBase, 6, destStride);
WidenCopyImpl2x2(ref src, ref destBase, 7, destStride);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void WidenCopyImpl2x2(ref Block8x8F src, ref float destBase, int row, int destStride)
{
ref Vector4 selfLeft = ref Unsafe.Add(ref src.V0L, 2 * row);
ref Vector4 selfRight = ref Unsafe.Add(ref selfLeft, 1);
ref float destLocalOrigo = ref Unsafe.Add(ref destBase, row * 2 * destStride);
Unsafe.Add(ref destLocalOrigo, 0) = selfLeft.X;
Unsafe.Add(ref destLocalOrigo, 1) = selfLeft.X;
Unsafe.Add(ref destLocalOrigo, 2) = selfLeft.Y;
Unsafe.Add(ref destLocalOrigo, 3) = selfLeft.Y;
Unsafe.Add(ref destLocalOrigo, 4) = selfLeft.Z;
Unsafe.Add(ref destLocalOrigo, 5) = selfLeft.Z;
Unsafe.Add(ref destLocalOrigo, 6) = selfLeft.W;
Unsafe.Add(ref destLocalOrigo, 7) = selfLeft.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 0) = selfRight.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 1) = selfRight.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 2) = selfRight.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 3) = selfRight.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 4) = selfRight.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 5) = selfRight.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 6) = selfRight.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, 8), 7) = selfRight.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 0) = selfLeft.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 1) = selfLeft.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 2) = selfLeft.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 3) = selfLeft.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 4) = selfLeft.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 5) = selfLeft.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 6) = selfLeft.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride), 7) = selfLeft.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 0) = selfRight.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 1) = selfRight.X;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 2) = selfRight.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 3) = selfRight.Y;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 4) = selfRight.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 5) = selfRight.Z;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 6) = selfRight.W;
Unsafe.Add(ref Unsafe.Add(ref destLocalOrigo, destStride + 8), 7) = selfRight.W;
}
[Benchmark]
public void Original_V2()
{
ref float destBase = ref this.destArea.GetReferenceToOrigin();
int destStride = this.destArea.Stride;
ref Block8x8F src = ref this.block;
WidenCopyImpl2x2_V2(ref src, ref destBase, 0, destStride);
WidenCopyImpl2x2_V2(ref src, ref destBase, 1, destStride);
WidenCopyImpl2x2_V2(ref src, ref destBase, 2, destStride);
WidenCopyImpl2x2_V2(ref src, ref destBase, 3, destStride);
WidenCopyImpl2x2_V2(ref src, ref destBase, 4, destStride);
WidenCopyImpl2x2_V2(ref src, ref destBase, 5, destStride);
WidenCopyImpl2x2_V2(ref src, ref destBase, 6, destStride);
WidenCopyImpl2x2_V2(ref src, ref destBase, 7, destStride);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void WidenCopyImpl2x2_V2(ref Block8x8F src, ref float destBase, int row, int destStride)
{
ref Vector4 selfLeft = ref Unsafe.Add(ref src.V0L, 2 * row);
ref Vector4 selfRight = ref Unsafe.Add(ref selfLeft, 1);
ref float dest0 = ref Unsafe.Add(ref destBase, row * 2 * destStride);
Unsafe.Add(ref dest0, 0) = selfLeft.X;
Unsafe.Add(ref dest0, 1) = selfLeft.X;
Unsafe.Add(ref dest0, 2) = selfLeft.Y;
Unsafe.Add(ref dest0, 3) = selfLeft.Y;
Unsafe.Add(ref dest0, 4) = selfLeft.Z;
Unsafe.Add(ref dest0, 5) = selfLeft.Z;
Unsafe.Add(ref dest0, 6) = selfLeft.W;
Unsafe.Add(ref dest0, 7) = selfLeft.W;
ref float dest1 = ref Unsafe.Add(ref dest0, 8);
Unsafe.Add(ref dest1, 0) = selfRight.X;
Unsafe.Add(ref dest1, 1) = selfRight.X;
Unsafe.Add(ref dest1, 2) = selfRight.Y;
Unsafe.Add(ref dest1, 3) = selfRight.Y;
Unsafe.Add(ref dest1, 4) = selfRight.Z;
Unsafe.Add(ref dest1, 5) = selfRight.Z;
Unsafe.Add(ref dest1, 6) = selfRight.W;
Unsafe.Add(ref dest1, 7) = selfRight.W;
ref float dest2 = ref Unsafe.Add(ref dest0, destStride);
Unsafe.Add(ref dest2, 0) = selfLeft.X;
Unsafe.Add(ref dest2, 1) = selfLeft.X;
Unsafe.Add(ref dest2, 2) = selfLeft.Y;
Unsafe.Add(ref dest2, 3) = selfLeft.Y;
Unsafe.Add(ref dest2, 4) = selfLeft.Z;
Unsafe.Add(ref dest2, 5) = selfLeft.Z;
Unsafe.Add(ref dest2, 6) = selfLeft.W;
Unsafe.Add(ref dest2, 7) = selfLeft.W;
ref float dest3 = ref Unsafe.Add(ref dest2, 8);
Unsafe.Add(ref dest3, 0) = selfRight.X;
Unsafe.Add(ref dest3, 1) = selfRight.X;
Unsafe.Add(ref dest3, 2) = selfRight.Y;
Unsafe.Add(ref dest3, 3) = selfRight.Y;
Unsafe.Add(ref dest3, 4) = selfRight.Z;
Unsafe.Add(ref dest3, 5) = selfRight.Z;
Unsafe.Add(ref dest3, 6) = selfRight.W;
Unsafe.Add(ref dest3, 7) = selfRight.W;
}
[Benchmark]
public void UseVector2()
{
ref Vector2 destBase = ref Unsafe.As<float, Vector2>(ref this.destArea.GetReferenceToOrigin());
int destStride = this.destArea.Stride / 2;
ref Block8x8F src = ref this.block;
WidenCopyImpl2x2_Vector2(ref src, ref destBase, 0, destStride);
WidenCopyImpl2x2_Vector2(ref src, ref destBase, 1, destStride);
WidenCopyImpl2x2_Vector2(ref src, ref destBase, 2, destStride);
WidenCopyImpl2x2_Vector2(ref src, ref destBase, 3, destStride);
WidenCopyImpl2x2_Vector2(ref src, ref destBase, 4, destStride);
WidenCopyImpl2x2_Vector2(ref src, ref destBase, 5, destStride);
WidenCopyImpl2x2_Vector2(ref src, ref destBase, 6, destStride);
WidenCopyImpl2x2_Vector2(ref src, ref destBase, 7, destStride);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void WidenCopyImpl2x2_Vector2(ref Block8x8F src, ref Vector2 destBase, int row, int destStride)
{
ref Vector4 sLeft = ref Unsafe.Add(ref src.V0L, 2 * row);
ref Vector4 sRight = ref Unsafe.Add(ref sLeft, 1);
ref Vector2 dTopLeft = ref Unsafe.Add(ref destBase, 2 * row * destStride);
ref Vector2 dTopRight = ref Unsafe.Add(ref dTopLeft, 4);
ref Vector2 dBottomLeft = ref Unsafe.Add(ref dTopLeft, destStride);
ref Vector2 dBottomRight = ref Unsafe.Add(ref dBottomLeft, 4);
var xLeft = new Vector2(sLeft.X);
var yLeft = new Vector2(sLeft.Y);
var zLeft = new Vector2(sLeft.Z);
var wLeft = new Vector2(sLeft.W);
var xRight = new Vector2(sRight.X);
var yRight = new Vector2(sRight.Y);
var zRight = new Vector2(sRight.Z);
var wRight = new Vector2(sRight.W);
dTopLeft = xLeft;
Unsafe.Add(ref dTopLeft, 1) = yLeft;
Unsafe.Add(ref dTopLeft, 2) = zLeft;
Unsafe.Add(ref dTopLeft, 3) = wLeft;
dTopRight = xRight;
Unsafe.Add(ref dTopRight, 1) = yRight;
Unsafe.Add(ref dTopRight, 2) = zRight;
Unsafe.Add(ref dTopRight, 3) = wRight;
dBottomLeft = xLeft;
Unsafe.Add(ref dBottomLeft, 1) = yLeft;
Unsafe.Add(ref dBottomLeft, 2) = zLeft;
Unsafe.Add(ref dBottomLeft, 3) = wLeft;
dBottomRight = xRight;
Unsafe.Add(ref dBottomRight, 1) = yRight;
Unsafe.Add(ref dBottomRight, 2) = zRight;
Unsafe.Add(ref dBottomRight, 3) = wRight;
}
[Benchmark]
public void UseVector4()
{
ref Vector2 destBase = ref Unsafe.As<float, Vector2>(ref this.destArea.GetReferenceToOrigin());
int destStride = this.destArea.Stride / 2;
ref Block8x8F src = ref this.block;
WidenCopyImpl2x2_Vector4(ref src, ref destBase, 0, destStride);
WidenCopyImpl2x2_Vector4(ref src, ref destBase, 1, destStride);
WidenCopyImpl2x2_Vector4(ref src, ref destBase, 2, destStride);
WidenCopyImpl2x2_Vector4(ref src, ref destBase, 3, destStride);
WidenCopyImpl2x2_Vector4(ref src, ref destBase, 4, destStride);
WidenCopyImpl2x2_Vector4(ref src, ref destBase, 5, destStride);
WidenCopyImpl2x2_Vector4(ref src, ref destBase, 6, destStride);
WidenCopyImpl2x2_Vector4(ref src, ref destBase, 7, destStride);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void WidenCopyImpl2x2_Vector4(ref Block8x8F src, ref Vector2 destBase, int row, int destStride)
{
ref Vector4 sLeft = ref Unsafe.Add(ref src.V0L, 2 * row);
ref Vector4 sRight = ref Unsafe.Add(ref sLeft, 1);
ref Vector2 dTopLeft = ref Unsafe.Add(ref destBase, 2 * row * destStride);
ref Vector2 dTopRight = ref Unsafe.Add(ref dTopLeft, 4);
ref Vector2 dBottomLeft = ref Unsafe.Add(ref dTopLeft, destStride);
ref Vector2 dBottomRight = ref Unsafe.Add(ref dBottomLeft, 4);
var xLeft = new Vector4(sLeft.X);
var yLeft = new Vector4(sLeft.Y);
var zLeft = new Vector4(sLeft.Z);
var wLeft = new Vector4(sLeft.W);
var xRight = new Vector4(sRight.X);
var yRight = new Vector4(sRight.Y);
var zRight = new Vector4(sRight.Z);
var wRight = new Vector4(sRight.W);
Unsafe.As<Vector2, Vector4>(ref dTopLeft) = xLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopLeft, 1)) = yLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopLeft, 2)) = zLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopLeft, 3)) = wLeft;
Unsafe.As<Vector2, Vector4>(ref dTopRight) = xRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopRight, 1)) = yRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopRight, 2)) = zRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopRight, 3)) = wRight;
Unsafe.As<Vector2, Vector4>(ref dBottomLeft) = xLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomLeft, 1)) = yLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomLeft, 2)) = zLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomLeft, 3)) = wLeft;
Unsafe.As<Vector2, Vector4>(ref dBottomRight) = xRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomRight, 1)) = yRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomRight, 2)) = zRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomRight, 3)) = wRight;
}
[Benchmark]
public void UseVector4_SafeRightCorner()
{
ref Vector2 destBase = ref Unsafe.As<float, Vector2>(ref this.destArea.GetReferenceToOrigin());
int destStride = this.destArea.Stride / 2;
ref Block8x8F src = ref this.block;
WidenCopyImpl2x2_Vector4_SafeRightCorner(ref src, ref destBase, 0, destStride);
WidenCopyImpl2x2_Vector4_SafeRightCorner(ref src, ref destBase, 1, destStride);
WidenCopyImpl2x2_Vector4_SafeRightCorner(ref src, ref destBase, 2, destStride);
WidenCopyImpl2x2_Vector4_SafeRightCorner(ref src, ref destBase, 3, destStride);
WidenCopyImpl2x2_Vector4_SafeRightCorner(ref src, ref destBase, 4, destStride);
WidenCopyImpl2x2_Vector4_SafeRightCorner(ref src, ref destBase, 5, destStride);
WidenCopyImpl2x2_Vector4_SafeRightCorner(ref src, ref destBase, 6, destStride);
WidenCopyImpl2x2_Vector4_SafeRightCorner(ref src, ref destBase, 7, destStride);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void WidenCopyImpl2x2_Vector4_SafeRightCorner(ref Block8x8F src, ref Vector2 destBase, int row, int destStride)
{
ref Vector4 sLeft = ref Unsafe.Add(ref src.V0L, 2 * row);
ref Vector4 sRight = ref Unsafe.Add(ref sLeft, 1);
ref Vector2 dTopLeft = ref Unsafe.Add(ref destBase, 2 * row * destStride);
ref Vector2 dBottomLeft = ref Unsafe.Add(ref dTopLeft, destStride);
var xLeft = new Vector4(sLeft.X);
var yLeft = new Vector4(sLeft.Y);
var zLeft = new Vector4(sLeft.Z);
var wLeft = new Vector4(sLeft.W);
var xRight = new Vector4(sRight.X);
var yRight = new Vector4(sRight.Y);
var zRight = new Vector4(sRight.Z);
var wRight = new Vector2(sRight.W);
Unsafe.As<Vector2, Vector4>(ref dTopLeft) = xLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopLeft, 1)) = yLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopLeft, 2)) = zLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopLeft, 3)) = wLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopLeft, 4)) = xRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopLeft, 5)) = yRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dTopLeft, 6)) = zRight;
Unsafe.Add(ref dTopLeft, 7) = wRight;
Unsafe.As<Vector2, Vector4>(ref dBottomLeft) = xLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomLeft, 1)) = yLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomLeft, 2)) = zLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomLeft, 3)) = wLeft;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomLeft, 4)) = xRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomLeft, 5)) = yRight;
Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref dBottomLeft, 6)) = zRight;
Unsafe.Add(ref dBottomLeft, 7) = wRight;
}
[Benchmark]
public void UseVector4_V2()
{
ref Vector2 destBase = ref Unsafe.As<float, Vector2>(ref this.destArea.GetReferenceToOrigin());
int destStride = this.destArea.Stride / 2;
ref Block8x8F src = ref this.block;
WidenCopyImpl2x2_Vector4_V2(ref src, ref destBase, 0, destStride);
WidenCopyImpl2x2_Vector4_V2(ref src, ref destBase, 1, destStride);
WidenCopyImpl2x2_Vector4_V2(ref src, ref destBase, 2, destStride);
WidenCopyImpl2x2_Vector4_V2(ref src, ref destBase, 3, destStride);
WidenCopyImpl2x2_Vector4_V2(ref src, ref destBase, 4, destStride);
WidenCopyImpl2x2_Vector4_V2(ref src, ref destBase, 5, destStride);
WidenCopyImpl2x2_Vector4_V2(ref src, ref destBase, 6, destStride);
WidenCopyImpl2x2_Vector4_V2(ref src, ref destBase, 7, destStride);
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static void WidenCopyImpl2x2_Vector4_V2(ref Block8x8F src, ref Vector2 destBase, int row, int destStride)
{
ref Vector4 sLeft = ref Unsafe.Add(ref src.V0L, 2 * row);
ref Vector4 sRight = ref Unsafe.Add(ref sLeft, 1);
int offset = 2 * row * destStride;
ref Vector4 dTopLeft = ref Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref destBase, offset));
ref Vector4 dBottomLeft = ref Unsafe.As<Vector2, Vector4>(ref Unsafe.Add(ref destBase, offset + destStride));
var xyLeft = new Vector4(sLeft.X);
xyLeft.Z = sLeft.Y;
xyLeft.W = sLeft.Y;
var zwLeft = new Vector4(sLeft.Z);
zwLeft.Z = sLeft.W;
zwLeft.W = sLeft.W;
var xyRight = new Vector4(sRight.X);
xyRight.Z = sRight.Y;
xyRight.W = sRight.Y;
var zwRight = new Vector4(sRight.Z);
zwRight.Z = sRight.W;
zwRight.W = sRight.W;
dTopLeft = xyLeft;
Unsafe.Add(ref dTopLeft, 1) = zwLeft;
Unsafe.Add(ref dTopLeft, 2) = xyRight;
Unsafe.Add(ref dTopLeft, 3) = zwRight;
dBottomLeft = xyLeft;
Unsafe.Add(ref dBottomLeft, 1) = zwLeft;
Unsafe.Add(ref dBottomLeft, 2) = xyRight;
Unsafe.Add(ref dBottomLeft, 3) = zwRight;
}
// RESULTS:
// Method | Mean | Error | StdDev | Scaled | ScaledSD |
// --------------------------- |---------:|----------:|----------:|-------:|---------:|
// Original | 92.69 ns | 2.4722 ns | 2.7479 ns | 1.00 | 0.00 |
// Original_V2 | 91.72 ns | 1.2089 ns | 1.0095 ns | 0.99 | 0.03 |
// UseVector2 | 86.70 ns | 0.5873 ns | 0.5206 ns | 0.94 | 0.03 |
// UseVector4 | 55.42 ns | 0.2482 ns | 0.2322 ns | 0.60 | 0.02 |
// UseVector4_SafeRightCorner | 58.97 ns | 0.4152 ns | 0.3884 ns | 0.64 | 0.02 |
// UseVector4_V2 | 41.88 ns | 0.3531 ns | 0.3303 ns | 0.45 | 0.01 |
}
}

6
tests/ImageSharp.Benchmarks/General/Block8x8F_DivideRound.cs → tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_DivideRound.cs

@ -10,7 +10,7 @@ using SixLabors.ImageSharp.Formats.Jpeg.Components;
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Benchmarks.General
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg.BlockOperations
{
/// <summary>
/// The goal of this benchmark is to measure the following Jpeg-related scenario:
@ -24,8 +24,8 @@ namespace SixLabors.ImageSharp.Benchmarks.General
private static readonly Vector4 MinusOne = new Vector4(-1);
private static readonly Vector4 Half = new Vector4(0.5f);
private Block8x8F inputDividend = default(Block8x8F);
private Block8x8F inputDivisior = default(Block8x8F);
private Block8x8F inputDividend;
private Block8x8F inputDivisior;
[GlobalSetup]
public void Setup()

53
tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_LoadFromInt16.cs

@ -0,0 +1,53 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
// ReSharper disable InconsistentNaming
using System;
using System.Numerics;
using BenchmarkDotNet.Attributes;
using SixLabors.ImageSharp.Formats.Jpeg.Components;
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg.BlockOperations
{
public class Block8x8F_LoadFromInt16
{
private Block8x8 source;
private Block8x8F dest = default;
[GlobalSetup]
public void Setup()
{
if (Vector<float>.Count != 8)
{
throw new NotSupportedException("Vector<float>.Count != 8");
}
for (short i = 0; i < Block8x8F.Size; i++)
{
this.source[i] = i;
}
}
[Benchmark(Baseline = true)]
public void Scalar()
{
this.dest.LoadFromInt16Scalar(ref this.source);
}
[Benchmark]
public void ExtendedAvx2()
{
this.dest.LoadFromInt16ExtendedAvx2(ref this.source);
}
// RESULT:
// Method | Mean | Error | StdDev | Scaled |
// ------------- |---------:|----------:|----------:|-------:|
// Scalar | 34.88 ns | 0.3296 ns | 0.3083 ns | 1.00 |
// ExtendedAvx2 | 21.58 ns | 0.2125 ns | 0.1884 ns | 0.62 |
}
}

7
tests/ImageSharp.Benchmarks/General/Block8x8F_Round.cs → tests/ImageSharp.Benchmarks/Codecs/Jpeg/BlockOperations/Block8x8F_Round.cs

@ -1,4 +1,7 @@
// ReSharper disable InconsistentNaming
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
// ReSharper disable InconsistentNaming
using System;
using System.Numerics;
@ -8,7 +11,7 @@ using BenchmarkDotNet.Attributes;
using SixLabors.ImageSharp.Formats.Jpeg.Components;
namespace SixLabors.ImageSharp.Benchmarks.General
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg.BlockOperations
{
public class Block8x8F_Round
{

59
tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg.cs

@ -1,59 +0,0 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System.Drawing;
using System.IO;
using BenchmarkDotNet.Attributes;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Tests;
using CoreSize = SixLabors.Primitives.Size;
using SDImage = System.Drawing.Image;
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg
{
[Config(typeof(Config.ShortClr))]
public class DecodeJpeg : BenchmarkBase
{
private byte[] jpegBytes;
private string TestImageFullPath => Path.Combine(TestEnvironment.InputImagesDirectoryFullPath, this.TestImage);
[Params(TestImages.Jpeg.Baseline.Jpeg420Exif, TestImages.Jpeg.Baseline.Calliphora)]
public string TestImage { get; set; }
[GlobalSetup]
public void ReadImages()
{
if (this.jpegBytes == null)
{
this.jpegBytes = File.ReadAllBytes(this.TestImageFullPath);
}
}
[Benchmark(Baseline = true, Description = "Decode Jpeg - System.Drawing")]
public Size JpegSystemDrawing()
{
using (var memoryStream = new MemoryStream(this.jpegBytes))
{
using (var image = SDImage.FromStream(memoryStream))
{
return image.Size;
}
}
}
[Benchmark(Description = "Decode Jpeg - ImageSharp")]
public CoreSize JpegImageSharp()
{
using (var memoryStream = new MemoryStream(this.jpegBytes))
{
using (var image = Image.Load<Rgba32>(memoryStream, new JpegDecoder()))
{
return new CoreSize(image.Width, image.Height);
}
}
}
}
}

35
tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpegMultiple.cs

@ -1,35 +0,0 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System.Collections.Generic;
using BenchmarkDotNet.Attributes;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.PixelFormats;
using SDImage = System.Drawing.Image;
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg
{
[Config(typeof(Config.ShortClr))]
public class DecodeJpegMultiple : MultiImageBenchmarkBase
{
protected override IEnumerable<string> InputImageSubfoldersOrFiles => new[]
{
"Jpg/baseline",
"Jpg/progressive",
};
protected override IEnumerable<string> SearchPatterns => new[] { "*.jpg" };
[Benchmark(Description = "DecodeJpegMultiple - ImageSharp")]
public void DecodeJpegImageSharp()
{
this.ForEachStream(ms => Image.Load<Rgba32>(ms, new JpegDecoder()));
}
[Benchmark(Baseline = true, Description = "DecodeJpegMultiple - System.Drawing")]
public void DecodeJpegSystemDrawing()
{
this.ForEachStream(SDImage.FromStream);
}
}
}

48
tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg_Aggregate.cs

@ -0,0 +1,48 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System.Collections.Generic;
using BenchmarkDotNet.Attributes;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Tests;
using SDImage = System.Drawing.Image;
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg
{
/// <summary>
/// An expensive Jpeg benchmark, running on a wide range of input images, showing aggregate results.
/// </summary>
[Config(typeof(MultiImageBenchmarkBase.Config))]
public class DecodeJpeg_Aggregate : MultiImageBenchmarkBase
{
protected override IEnumerable<string> InputImageSubfoldersOrFiles =>
new[]
{
TestImages.Jpeg.BenchmarkSuite.Jpeg400_SmallMonochrome,
TestImages.Jpeg.BenchmarkSuite.Jpeg420Exif_MidSizeYCbCr,
TestImages.Jpeg.BenchmarkSuite.Lake_Small444YCbCr,
TestImages.Jpeg.BenchmarkSuite.MissingFF00ProgressiveBedroom159_MidSize420YCbCr,
TestImages.Jpeg.BenchmarkSuite.ExifGetString750Transform_Huge420YCbCr,
};
[Params(InputImageCategory.AllImages)]
public override InputImageCategory InputCategory { get; set; }
[Benchmark]
public void ImageSharp()
{
this.ForEachStream(ms => Image.Load<Rgba32>(ms, new JpegDecoder()));
}
[Benchmark(Baseline = true)]
public void SystemDrawing()
{
this.ForEachStream(SDImage.FromStream);
}
}
}

119
tests/ImageSharp.Benchmarks/Codecs/Jpeg/DecodeJpeg_ImageSpecific.cs

@ -0,0 +1,119 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System.Drawing;
using System.IO;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Jobs;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Tests;
using CoreSize = SixLabors.Primitives.Size;
using SDImage = System.Drawing.Image;
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg
{
/// <summary>
/// Image-specific Jpeg benchmarks
/// </summary>
[Config(typeof(Config.ShortClr))]
public class DecodeJpeg_ImageSpecific
{
public class Config : ManualConfig
{
public Config()
{
// Uncomment if you want to use any of the diagnoser
this.Add(new BenchmarkDotNet.Diagnosers.MemoryDiagnoser());
}
public class ShortClr : Benchmarks.Config
{
public ShortClr()
{
this.Add(
//Job.Clr.WithLaunchCount(1).WithWarmupCount(2).WithTargetCount(3),
Job.Core.WithLaunchCount(1).WithWarmupCount(2).WithTargetCount(3)
);
}
}
}
private byte[] jpegBytes;
private string TestImageFullPath => Path.Combine(TestEnvironment.InputImagesDirectoryFullPath, this.TestImage);
[Params(
TestImages.Jpeg.BenchmarkSuite.Lake_Small444YCbCr,
TestImages.Jpeg.BenchmarkSuite.BadRstProgressive518_Large444YCbCr,
// The scaled result for the large image "ExifGetString750Transform_Huge420YCbCr"
// is almost the same as the result for Jpeg420Exif,
// which proves that the execution time for the most common YCbCr 420 path scales linearly.
//
// TestImages.Jpeg.BenchmarkSuite.ExifGetString750Transform_Huge420YCbCr,
TestImages.Jpeg.BenchmarkSuite.Jpeg420Exif_MidSizeYCbCr
)]
public string TestImage { get; set; }
[GlobalSetup]
public void ReadImages()
{
if (this.jpegBytes == null)
{
this.jpegBytes = File.ReadAllBytes(this.TestImageFullPath);
}
}
[Benchmark(Baseline = true, Description = "Decode Jpeg - System.Drawing")]
public Size JpegSystemDrawing()
{
using (var memoryStream = new MemoryStream(this.jpegBytes))
{
using (var image = SDImage.FromStream(memoryStream))
{
return image.Size;
}
}
}
[Benchmark(Description = "Decode Jpeg - ImageSharp")]
public CoreSize JpegImageSharp()
{
using (var memoryStream = new MemoryStream(this.jpegBytes))
{
using (var image = Image.Load<Rgba32>(memoryStream, new JpegDecoder(){ IgnoreMetadata = true}))
{
return new CoreSize(image.Width, image.Height);
}
}
}
// RESULTS (2018 November 4):
//
// BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
// Intel Core i7-7700HQ CPU 2.80GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
// Frequency=2742191 Hz, Resolution=364.6719 ns, Timer=TSC
// .NET Core SDK=2.1.403
// [Host] : .NET Core 2.1.5 (CoreCLR 4.6.26919.02, CoreFX 4.6.26919.02), 64bit RyuJIT
//
// Method | TestImage | Mean | Error | StdDev | Scaled | ScaledSD | Gen 0 | Gen 1 | Gen 2 | Allocated |
// ------------------------------- |-------------------------------------------- |-----------:|-----------:|----------:|-------:|---------:|----------:|---------:|---------:|------------:|
// 'Decode Jpeg - System.Drawing' | Jpg/baseline/Lake.jpg | 6.117 ms | 0.3923 ms | 0.0222 ms | 1.00 | 0.00 | 62.5000 | - | - | 205.83 KB |
// 'Decode Jpeg - ImageSharp' | Jpg/baseline/Lake.jpg | 18.126 ms | 0.6023 ms | 0.0340 ms | 2.96 | 0.01 | - | - | - | 19.97 KB |
// | | | | | | | | | | |
// 'Decode Jpeg - System.Drawing' | Jpg/baseline/jpeg420exif.jpg | 17.063 ms | 2.6096 ms | 0.1474 ms | 1.00 | 0.00 | 218.7500 | - | - | 757.04 KB |
// 'Decode Jpeg - ImageSharp' | Jpg/baseline/jpeg420exif.jpg | 41.366 ms | 1.0115 ms | 0.0572 ms | 2.42 | 0.02 | - | - | - | 21.94 KB |
// | | | | | | | | | | |
// 'Decode Jpeg - System.Drawing' | Jpg/issues/Issue518-Bad-RST-Progressive.jpg | 428.282 ms | 94.9163 ms | 5.3629 ms | 1.00 | 0.00 | 2375.0000 | - | - | 7403.76 KB |
// 'Decode Jpeg - ImageSharp' | Jpg/issues/Issue518-Bad-RST-Progressive.jpg | 386.698 ms | 33.0065 ms | 1.8649 ms | 0.90 | 0.01 | 125.0000 | 125.0000 | 125.0000 | 35186.97 KB |
// | | | | | | | | | | |
// 'Decode Jpeg - System.Drawing' | Jpg/issues/issue750-exif-tranform.jpg | 95.192 ms | 3.1762 ms | 0.1795 ms | 1.00 | 0.00 | 1750.0000 | - | - | 5492.63 KB |
// 'Decode Jpeg - ImageSharp' | Jpg/issues/issue750-exif-tranform.jpg | 230.158 ms | 48.8128 ms | 2.7580 ms | 2.42 | 0.02 | 312.5000 | 312.5000 | 312.5000 | 58834.66 KB |
}
}

86
tests/ImageSharp.Benchmarks/Codecs/Jpeg/LoadResizeSave.cs

@ -1,86 +0,0 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using BenchmarkDotNet.Attributes;
using System;
using System.IO;
using SixLabors.ImageSharp.Tests;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using SixLabors.ImageSharp.Processing;
using SDImage = System.Drawing.Image;
using SixLabors.ImageSharp.Formats.Jpeg;
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg
{
[Config(typeof(Config.ShortClr))]
public class LoadResizeSave : BenchmarkBase
{
private readonly Configuration configuration = new Configuration(new JpegConfigurationModule());
private byte[] sourceBytes;
private byte[] destBytes;
private string TestImageFullPath => Path.Combine(TestEnvironment.InputImagesDirectoryFullPath, this.TestImage);
[Params(
TestImages.Jpeg.Baseline.Jpeg420Exif
//, TestImages.Jpeg.Baseline.Calliphora
)]
public string TestImage { get; set; }
[Params(false, true)]
public bool EnableParallelExecution { get; set; }
[GlobalSetup]
public void Setup()
{
this.configuration.MaxDegreeOfParallelism =
this.EnableParallelExecution ? Environment.ProcessorCount : 1;
if (this.sourceBytes == null)
{
this.sourceBytes = File.ReadAllBytes(this.TestImageFullPath);
}
if (this.destBytes == null)
{
this.destBytes = new byte[this.sourceBytes.Length];
}
}
[Benchmark(Baseline = true)]
public void SystemDrawing()
{
using (var sourceStream = new MemoryStream(this.sourceBytes))
using (var destStream = new MemoryStream(this.destBytes))
using (var source = SDImage.FromStream(sourceStream))
using (var destination = new Bitmap(source.Width / 4, source.Height / 4))
{
using (var graphics = Graphics.FromImage(destination))
{
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.DrawImage(source, 0, 0, 400, 400);
}
destination.Save(destStream, ImageFormat.Jpeg);
}
}
[Benchmark]
public void ImageSharp()
{
var source = Image.Load(this.configuration, this.sourceBytes, new JpegDecoder { IgnoreMetadata = true });
using (source)
using (var destStream = new MemoryStream(this.destBytes))
{
source.Mutate(c => c.Resize(source.Width / 4, source.Height / 4));
source.SaveAsJpeg(destStream);
}
}
}
}

96
tests/ImageSharp.Benchmarks/Codecs/Jpeg/LoadResizeSave_Aggregate.cs

@ -0,0 +1,96 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
using BenchmarkDotNet.Attributes;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Tests;
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg
{
[Config(typeof(MultiImageBenchmarkBase.Config))]
public class LoadResizeSave_Aggregate : MultiImageBenchmarkBase
{
protected override IEnumerable<string> InputImageSubfoldersOrFiles =>
new[]
{
TestImages.Jpeg.BenchmarkSuite.Jpeg400_SmallMonochrome,
TestImages.Jpeg.BenchmarkSuite.Jpeg420Exif_MidSizeYCbCr,
TestImages.Jpeg.BenchmarkSuite.Lake_Small444YCbCr,
TestImages.Jpeg.BenchmarkSuite.MissingFF00ProgressiveBedroom159_MidSize420YCbCr,
TestImages.Jpeg.BenchmarkSuite.ExifGetString750Transform_Huge420YCbCr,
};
[Params(InputImageCategory.AllImages)]
public override InputImageCategory InputCategory { get; set; }
private readonly Configuration configuration = new Configuration(new JpegConfigurationModule());
private byte[] destBytes;
public override void Setup()
{
base.Setup();
this.configuration.MaxDegreeOfParallelism = 1;
const int MaxOutputSizeInBytes = 2 * 1024 * 1024; // ~2 MB
this.destBytes = new byte[MaxOutputSizeInBytes];
}
[Benchmark(Baseline = true)]
public void SystemDrawing()
{
this.ForEachStream(
sourceStream =>
{
using (var destStream = new MemoryStream(this.destBytes))
using (var source = System.Drawing.Image.FromStream(sourceStream))
using (var destination = new Bitmap(source.Width / 4, source.Height / 4))
{
using (var g = Graphics.FromImage(destination))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
g.DrawImage(source, 0, 0, 400, 400);
}
destination.Save(destStream, ImageFormat.Jpeg);
}
return null;
});
}
[Benchmark]
public void ImageSharp()
{
this.ForEachStream(
sourceStream =>
{
using (var source = Image.Load<Rgba32>(
this.configuration,
sourceStream,
new JpegDecoder { IgnoreMetadata = true }))
{
using (var destStream = new MemoryStream(this.destBytes))
{
source.Mutate(c => c.Resize(source.Width / 4, source.Height / 4));
source.SaveAsJpeg(destStream);
}
}
return null;
});
}
}
}

107
tests/ImageSharp.Benchmarks/Codecs/Jpeg/LoadResizeSave_ImageSpecific.cs

@ -0,0 +1,107 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using BenchmarkDotNet.Attributes;
using System;
using System.IO;
using SixLabors.ImageSharp.Tests;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using SixLabors.ImageSharp.Processing;
using SDImage = System.Drawing.Image;
using SixLabors.ImageSharp.Formats.Jpeg;
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Benchmarks.Codecs.Jpeg
{
[Config(typeof(Config.ShortClr))]
public class LoadResizeSave_ImageSpecific
{
private readonly Configuration configuration = new Configuration(new JpegConfigurationModule());
private byte[] sourceBytes;
private byte[] destBytes;
private string TestImageFullPath => Path.Combine(TestEnvironment.InputImagesDirectoryFullPath, this.TestImage);
[Params(
TestImages.Jpeg.BenchmarkSuite.Lake_Small444YCbCr,
TestImages.Jpeg.BenchmarkSuite.BadRstProgressive518_Large444YCbCr,
TestImages.Jpeg.BenchmarkSuite.Jpeg420Exif_MidSizeYCbCr
)]
public string TestImage { get; set; }
[Params(false, true)]
public bool ParallelExec { get; set; }
[GlobalSetup]
public void Setup()
{
this.configuration.MaxDegreeOfParallelism =
this.ParallelExec ? Environment.ProcessorCount : 1;
this.sourceBytes = File.ReadAllBytes(this.TestImageFullPath);
this.destBytes = new byte[this.sourceBytes.Length * 2];
}
[Benchmark(Baseline = true)]
public void SystemDrawing()
{
using (var sourceStream = new MemoryStream(this.sourceBytes))
using (var destStream = new MemoryStream(this.destBytes))
using (var source = SDImage.FromStream(sourceStream))
using (var destination = new Bitmap(source.Width / 4, source.Height / 4))
{
using (var g = Graphics.FromImage(destination))
{
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
g.DrawImage(source, 0, 0, 400, 400);
}
destination.Save(destStream, ImageFormat.Jpeg);
}
}
[Benchmark]
public void ImageSharp()
{
var source = Image.Load(this.configuration, this.sourceBytes, new JpegDecoder { IgnoreMetadata = true });
using (source)
using (var destStream = new MemoryStream(this.destBytes))
{
source.Mutate(c => c.Resize(source.Width / 4, source.Height / 4));
source.SaveAsJpeg(destStream);
}
}
// RESULTS (2018 October 31):
//
// BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
// Intel Core i7-7700HQ CPU 2.80GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
// Frequency=2742191 Hz, Resolution=364.6719 ns, Timer=TSC
// .NET Core SDK=2.1.403
// [Host] : .NET Core 2.1.5 (CoreCLR 4.6.26919.02, CoreFX 4.6.26919.02), 64bit RyuJIT
// Job-ZPEZGV : .NET Framework 4.7.1 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3190.0
// Job-SGOCJT : .NET Core 2.1.5 (CoreCLR 4.6.26919.02, CoreFX 4.6.26919.02), 64bit RyuJIT
//
// Method | Runtime | TestImage | ParallelExec | Mean | Error | StdDev | Scaled | ScaledSD | Gen 0 | Allocated |
// -------------- |-------- |----------------------------- |------------- |----------:|----------:|----------:|-------:|---------:|---------:|----------:|
// SystemDrawing | Clr | Jpg/baseline/jpeg420exif.jpg | False | 64.88 ms | 3.735 ms | 0.2110 ms | 1.00 | 0.00 | 250.0000 | 791.07 KB |
// ImageSharp | Clr | Jpg/baseline/jpeg420exif.jpg | False | 129.53 ms | 23.423 ms | 1.3234 ms | 2.00 | 0.02 | - | 50.09 KB |
// | | | | | | | | | | |
// SystemDrawing | Core | Jpg/baseline/jpeg420exif.jpg | False | 65.87 ms | 10.488 ms | 0.5926 ms | 1.00 | 0.00 | 250.0000 | 789.79 KB |
// ImageSharp | Core | Jpg/baseline/jpeg420exif.jpg | False | 92.00 ms | 7.241 ms | 0.4091 ms | 1.40 | 0.01 | - | 46.36 KB |
// | | | | | | | | | | |
// SystemDrawing | Clr | Jpg/baseline/jpeg420exif.jpg | True | 64.23 ms | 5.998 ms | 0.3389 ms | 1.00 | 0.00 | 250.0000 | 791.07 KB |
// ImageSharp | Clr | Jpg/baseline/jpeg420exif.jpg | True | 82.63 ms | 29.320 ms | 1.6566 ms | 1.29 | 0.02 | - | 57.59 KB |
// | | | | | | | | | | |
// SystemDrawing | Core | Jpg/baseline/jpeg420exif.jpg | True | 64.20 ms | 6.560 ms | 0.3707 ms | 1.00 | 0.00 | 250.0000 | 789.79 KB |
// ImageSharp | Core | Jpg/baseline/jpeg420exif.jpg | True | 68.08 ms | 18.376 ms | 1.0383 ms | 1.06 | 0.01 | - | 50.49 KB |
}
}

32
tests/ImageSharp.Benchmarks/Codecs/MultiImageBenchmarkBase.cs

@ -3,6 +3,9 @@
// Licensed under the Apache License, Version 2.0.
// </copyright>
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Jobs;
using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Benchmarks.Codecs
@ -20,8 +23,27 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs
using CoreImage = ImageSharp.Image;
public abstract class MultiImageBenchmarkBase : BenchmarkBase
public abstract class MultiImageBenchmarkBase
{
public class Config : ManualConfig
{
public Config()
{
// Uncomment if you want to use any of the diagnoser
this.Add(new BenchmarkDotNet.Diagnosers.MemoryDiagnoser());
}
public class ShortClr : Benchmarks.Config
{
public ShortClr()
{
this.Add(
Job.Core.WithLaunchCount(1).WithWarmupCount(1).WithTargetCount(2)
);
}
}
}
protected Dictionary<string, byte[]> FileNamesToBytes = new Dictionary<string, byte[]>();
protected Dictionary<string, Image<Rgba32>> FileNamesToImageSharpImages = new Dictionary<string, Image<Rgba32>>();
@ -49,7 +71,7 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs
/// <summary>
/// Gets the file names containing these strings are substrings are not processed by the benchmark.
/// </summary>
protected IEnumerable<string> ExcludeSubstringsInFileNames => new[] { "badeof", "BadEof", "CriticalEOF" };
protected virtual IEnumerable<string> ExcludeSubstringsInFileNames => new[] { "badeof", "BadEof", "CriticalEOF" };
/// <summary>
/// Enumerates folders containing files OR files to be processed by the benchmark.
@ -87,7 +109,7 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs
protected abstract IEnumerable<string> InputImageSubfoldersOrFiles { get; }
[GlobalSetup]
public void ReadImages()
public virtual void Setup()
{
if (!Vector.IsHardwareAccelerated)
{
@ -107,11 +129,13 @@ namespace SixLabors.ImageSharp.Benchmarks.Codecs
continue;
}
string[] excludeStrings = this.ExcludeSubstringsInFileNames.Select(s => s.ToLower()).ToArray();
string[] allFiles =
this.SearchPatterns.SelectMany(
f =>
Directory.EnumerateFiles(path, f, SearchOption.AllDirectories)
.Where(fn => !this.ExcludeSubstringsInFileNames.Any(w => fn.ToLower().Contains(w)))).ToArray();
.Where(fn => !excludeStrings.Any(excludeStr => fn.ToLower().Contains(excludeStr)))).ToArray();
foreach (string fn in allFiles)
{

74
tests/ImageSharp.Benchmarks/Samplers/Resize.cs

@ -22,15 +22,17 @@ namespace SixLabors.ImageSharp.Benchmarks
private Bitmap sourceBitmap;
public const int SourceSize = 3032;
[Params(3032)]
public int SourceSize { get; set; }
public const int DestSize = 400;
[Params(400)]
public int DestSize { get; set; }
[GlobalSetup]
public void Setup()
{
this.sourceImage = new Image<Rgba32>(this.Configuration, SourceSize, SourceSize);
this.sourceBitmap = new Bitmap(SourceSize, SourceSize);
this.sourceImage = new Image<Rgba32>(this.Configuration, this.SourceSize, this.SourceSize);
this.sourceBitmap = new Bitmap(this.SourceSize, this.SourceSize);
}
[GlobalCleanup]
@ -43,14 +45,17 @@ namespace SixLabors.ImageSharp.Benchmarks
[Benchmark(Baseline = true)]
public int SystemDrawing()
{
using (var destination = new Bitmap(DestSize, DestSize))
using (var destination = new Bitmap(this.DestSize, this.DestSize))
{
using (var graphics = Graphics.FromImage(destination))
using (var g = Graphics.FromImage(destination))
{
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.DrawImage(this.sourceBitmap, 0, 0, DestSize, DestSize);
g.CompositingMode = CompositingMode.SourceCopy;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
g.DrawImage(this.sourceBitmap, 0, 0, this.DestSize, this.DestSize);
}
return destination.Width;
@ -83,15 +88,60 @@ namespace SixLabors.ImageSharp.Benchmarks
{
protected override void ExecuteResizeOperation(IImageProcessingContext<Rgba32> ctx)
{
ctx.Resize(DestSize, DestSize, KnownResamplers.Bicubic);
ctx.Resize(this.DestSize, this.DestSize, KnownResamplers.Bicubic);
}
// RESULTS (2018 October):
//
// BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
// Intel Core i7-7700HQ CPU 2.80GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
// Frequency=2742191 Hz, Resolution=364.6719 ns, Timer=TSC
// .NET Core SDK=2.1.403
// [Host] : .NET Core 2.1.5 (CoreCLR 4.6.26919.02, CoreFX 4.6.26919.02), 64bit RyuJIT
// Job-IGUFBA : .NET Framework 4.7.1 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3190.0
// Job-DZFERG : .NET Core 2.1.5 (CoreCLR 4.6.26919.02, CoreFX 4.6.26919.02), 64bit RyuJIT
//
// Method | Runtime | SourceSize | DestSize | Mean | Error | StdDev | Scaled | ScaledSD | Allocated |
// ----------------------------------------- |-------- |----------- |--------- |----------:|----------:|----------:|-------:|---------:|----------:|
// SystemDrawing | Clr | 3032 | 400 | 101.13 ms | 18.659 ms | 1.0542 ms | 1.00 | 0.00 | 0 B |
// 'ImageSharp, MaxDegreeOfParallelism = 1' | Clr | 3032 | 400 | 122.05 ms | 19.622 ms | 1.1087 ms | 1.21 | 0.01 | 21856 B |
// 'ImageSharp, MaxDegreeOfParallelism = 4' | Clr | 3032 | 400 | 41.34 ms | 54.841 ms | 3.0986 ms | 0.41 | 0.03 | 28000 B |
// 'ImageSharp, MaxDegreeOfParallelism = 8' | Clr | 3032 | 400 | 31.68 ms | 12.782 ms | 0.7222 ms | 0.31 | 0.01 | 28256 B |
// | | | | | | | | | |
// SystemDrawing | Core | 3032 | 400 | 100.37 ms | 18.479 ms | 1.0441 ms | 1.00 | 0.00 | 0 B |
// 'ImageSharp, MaxDegreeOfParallelism = 1' | Core | 3032 | 400 | 73.03 ms | 10.540 ms | 0.5955 ms | 0.73 | 0.01 | 21368 B |
// 'ImageSharp, MaxDegreeOfParallelism = 4' | Core | 3032 | 400 | 22.59 ms | 4.863 ms | 0.2748 ms | 0.23 | 0.00 | 25220 B |
// 'ImageSharp, MaxDegreeOfParallelism = 8' | Core | 3032 | 400 | 21.10 ms | 23.362 ms | 1.3200 ms | 0.21 | 0.01 | 25539 B |
}
public class Resize_BicubicCompand : ResizeBenchmarkBase
{
protected override void ExecuteResizeOperation(IImageProcessingContext<Rgba32> ctx)
{
ctx.Resize(DestSize, DestSize, KnownResamplers.Bicubic, true);
ctx.Resize(this.DestSize, this.DestSize, KnownResamplers.Bicubic, true);
}
// RESULTS (2018 October):
//
// BenchmarkDotNet=v0.10.14, OS=Windows 10.0.17134
// Intel Core i7-7700HQ CPU 2.80GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
// Frequency=2742191 Hz, Resolution=364.6719 ns, Timer=TSC
// .NET Core SDK=2.1.403
// [Host] : .NET Core 2.1.5 (CoreCLR 4.6.26919.02, CoreFX 4.6.26919.02), 64bit RyuJIT
// Job-IGUFBA : .NET Framework 4.7.1 (CLR 4.0.30319.42000), 64bit RyuJIT-v4.7.3190.0
// Job-DZFERG : .NET Core 2.1.5 (CoreCLR 4.6.26919.02, CoreFX 4.6.26919.02), 64bit RyuJIT
//
// Method | Runtime | SourceSize | DestSize | Mean | Error | StdDev | Scaled | ScaledSD | Allocated |
// ----------------------------------------- |-------- |----------- |--------- |----------:|----------:|----------:|-------:|---------:|----------:|
// SystemDrawing | Clr | 3032 | 400 | 100.63 ms | 13.864 ms | 0.7833 ms | 1.00 | 0.00 | 0 B |
// 'ImageSharp, MaxDegreeOfParallelism = 1' | Clr | 3032 | 400 | 156.83 ms | 28.631 ms | 1.6177 ms | 1.56 | 0.02 | 21856 B |
// 'ImageSharp, MaxDegreeOfParallelism = 4' | Clr | 3032 | 400 | 53.43 ms | 38.493 ms | 2.1749 ms | 0.53 | 0.02 | 28512 B |
// 'ImageSharp, MaxDegreeOfParallelism = 8' | Clr | 3032 | 400 | 38.47 ms | 11.969 ms | 0.6763 ms | 0.38 | 0.01 | 28000 B |
// | | | | | | | | | |
// SystemDrawing | Core | 3032 | 400 | 99.87 ms | 23.459 ms | 1.3255 ms | 1.00 | 0.00 | 0 B |
// 'ImageSharp, MaxDegreeOfParallelism = 1' | Core | 3032 | 400 | 108.19 ms | 38.562 ms | 2.1788 ms | 1.08 | 0.02 | 21368 B |
// 'ImageSharp, MaxDegreeOfParallelism = 4' | Core | 3032 | 400 | 36.21 ms | 53.802 ms | 3.0399 ms | 0.36 | 0.03 | 25300 B |
// 'ImageSharp, MaxDegreeOfParallelism = 8' | Core | 3032 | 400 | 26.52 ms | 2.173 ms | 0.1228 ms | 0.27 | 0.00 | 25589 B |
}
}

5
tests/ImageSharp.Sandbox46/Program.cs

@ -4,6 +4,7 @@
// </copyright>
using SixLabors.ImageSharp.Tests.PixelFormats.PixelOperations;
using SixLabors.ImageSharp.Tests.ProfilingBenchmarks;
namespace SixLabors.ImageSharp.Sandbox46
{
@ -62,8 +63,8 @@ namespace SixLabors.ImageSharp.Sandbox46
private static void RunDecodeJpegProfilingTests()
{
Console.WriteLine("RunDecodeJpegProfilingTests...");
var benchmarks = new JpegProfilingBenchmarks(new ConsoleOutput());
foreach (object[] data in JpegProfilingBenchmarks.DecodeJpegData)
var benchmarks = new JpegBenchmarks(new ConsoleOutput());
foreach (object[] data in JpegBenchmarks.DecodeJpegData)
{
string fileName = (string)data[0];
benchmarks.DecodeJpeg(fileName);

21
tests/ImageSharp.Tests/Common/SimdUtilsTests.cs

@ -257,6 +257,27 @@ namespace SixLabors.ImageSharp.Tests.Common
);
}
[Theory]
[InlineData(1234)]
public void ExtendedIntrinsics_ConvertToSingle(short scale)
{
int n = Vector<float>.Count;
short[] sData = new Random(scale).GenerateRandomInt16Array(2 * n, (short)-scale, scale);
float[] fData = sData.Select(u => (float)u).ToArray();
var source = new Vector<short>(sData);
var expected1 = new Vector<float>(fData, 0);
var expected2 = new Vector<float>(fData, n);
// Act:
SimdUtils.ExtendedIntrinsics.ConvertToSingle(source, out Vector<float> actual1, out Vector<float> actual2);
// Assert:
Assert.Equal(expected1, actual1);
Assert.Equal(expected2, actual2);
}
[Theory]
[MemberData(nameof(ArbitraryArraySizes))]
public void BulkConvertNormalizedFloatToByteClampOverflows(int count)

35
tests/ImageSharp.Tests/ComplexIntegrationTests.cs

@ -1,35 +0,0 @@
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.Primitives;
using Xunit;
namespace SixLabors.ImageSharp.Tests
{
/// <summary>
/// Might be useful to catch complex bugs
/// </summary>
public class ComplexIntegrationTests
{
[Theory]
[WithFile(TestImages.Jpeg.Baseline.Snake, PixelTypes.Rgba32, 75, JpegSubsample.Ratio420)]
[WithFile(TestImages.Jpeg.Baseline.Lake, PixelTypes.Rgba32, 75, JpegSubsample.Ratio420)]
[WithFile(TestImages.Jpeg.Baseline.Snake, PixelTypes.Rgba32, 75, JpegSubsample.Ratio444)]
[WithFile(TestImages.Jpeg.Baseline.Lake, PixelTypes.Rgba32, 75, JpegSubsample.Ratio444)]
public void LoadResizeSave<TPixel>(TestImageProvider<TPixel> provider, int quality, JpegSubsample subsample)
where TPixel : struct, IPixel<TPixel>
{
using (Image<TPixel> image = provider.GetImage(x => x.Resize(new ResizeOptions { Size = new Size(150, 100), Mode = ResizeMode.Max })))
{
image.MetaData.ExifProfile = null; // Reduce the size of the file
JpegEncoder options = new JpegEncoder { Subsample = subsample, Quality = quality };
provider.Utility.TestName += $"{subsample}_Q{quality}";
provider.Utility.SaveTestOutputFile(image, "png");
provider.Utility.SaveTestOutputFile(image, "jpg", options);
}
}
}
}

22
tests/ImageSharp.Tests/Formats/Jpg/Block8x8FTests.CopyToBufferArea.cs

@ -7,14 +7,16 @@
using SixLabors.ImageSharp.Formats.Jpeg.Components;
using SixLabors.ImageSharp.Memory;
using SixLabors.ImageSharp.Tests.Formats.Jpg.Utils;
using SixLabors.Memory;
using SixLabors.Primitives;
using Xunit;
using Xunit.Abstractions;
// ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Tests.Formats.Jpg
{
public partial class Block8x8FTests : JpegFixture
public partial class Block8x8FTests
{
public class CopyToBufferArea : JpegFixture
{
@ -37,17 +39,15 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
}
}
// TODO: This test occasionally fails from the same reason certain ICC tests are failing. Should be false negative.
[Fact(Skip = "This test occasionally fails from the same reason certain ICC tests are failing. Should be false negative.")]
//[Fact]
public void Unscaled()
[Fact]
public void Copy1x1Scale()
{
Block8x8F block = CreateRandomFloatBlock(0, 100);
using (var buffer = Configuration.Default.MemoryAllocator.Allocate2D<float>(20, 20))
using (Buffer2D<float> buffer = Configuration.Default.MemoryAllocator.Allocate2D<float>(20, 20, AllocationOptions.Clean))
{
BufferArea<float> area = buffer.GetArea(5, 10, 8, 8);
block.CopyTo(area);
block.Copy1x1Scale(area);
Assert.Equal(block[0, 0], buffer[5, 10]);
Assert.Equal(block[1, 0], buffer[6, 10]);
@ -59,22 +59,20 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
}
}
// TODO: This test occasionally fails from the same reason certain ICC tests are failing. Should be false negative.
[Theory(Skip = "This test occasionally fails from the same reason certain ICC tests are failing. Should be false negative.")]
//[Theory]
[Theory]
[InlineData(1, 1)]
[InlineData(1, 2)]
[InlineData(2, 1)]
[InlineData(2, 2)]
[InlineData(4, 2)]
[InlineData(4, 4)]
public void Scaled(int horizontalFactor, int verticalFactor)
public void CopyTo(int horizontalFactor, int verticalFactor)
{
Block8x8F block = CreateRandomFloatBlock(0, 100);
var start = new Point(50, 50);
using (var buffer = Configuration.Default.MemoryAllocator.Allocate2D<float>(100, 100))
using (Buffer2D<float> buffer = Configuration.Default.MemoryAllocator.Allocate2D<float>(100, 100, AllocationOptions.Clean))
{
BufferArea<float> area = buffer.GetArea(start.X, start.Y, 8 * horizontalFactor, 8 * verticalFactor);
block.CopyTo(area, horizontalFactor, verticalFactor);

42
tests/ImageSharp.Tests/Formats/Jpg/Block8x8FTests.cs

@ -408,5 +408,47 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
Assert.Equal(original[i] * 42f, actual[i]);
}
}
[Fact]
public void LoadFromUInt16Scalar()
{
if (this.SkipOnNonAvx2Runner())
{
return;
}
short[] data = Create8x8ShortData();
var source = new Block8x8(data);
Block8x8F dest = default;
dest.LoadFromInt16Scalar(ref source);
for (int i = 0; i < Block8x8F.Size; i++)
{
Assert.Equal((float)data[i], dest[i]);
}
}
[Fact]
public void LoadFromUInt16ExtendedAvx2()
{
if (this.SkipOnNonAvx2Runner())
{
return;
}
short[] data = Create8x8ShortData();
var source = new Block8x8(data);
Block8x8F dest = default;
dest.LoadFromInt16ExtendedAvx2(ref source);
for (int i = 0; i < Block8x8F.Size; i++)
{
Assert.Equal((float)data[i], dest[i]);
}
}
}
}

7
tests/ImageSharp.Tests/Formats/Jpg/Utils/JpegFixture.cs

@ -58,7 +58,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils
{
for (int j = 0; j < 8; j++)
{
result[i * 8 + j] = (short)(i * 10 + j);
short val = (short)(i * 10 + j);
if ((i + j) % 2 == 0)
{
val *= -1;
}
result[i * 8 + j] = val;
}
}
return result;

3
tests/ImageSharp.Tests/Formats/Jpg/Utils/LibJpegTools.ComponentData.cs

@ -67,9 +67,10 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg.Utils
for (int y = 0; y < result.HeightInBlocks; y++)
{
Span<Block8x8> blockRow = c.SpectralBlocks.GetRowSpan(y);
for (int x = 0; x < result.WidthInBlocks; x++)
{
short[] data = c.GetBlockReference(x, y).ToArray();
short[] data = blockRow[x].ToArray();
result.MakeBlock(data, y, x);
}
}

25
tests/ImageSharp.Tests/Image/ImageTests.cs

@ -2,7 +2,10 @@
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Advanced;
using SixLabors.ImageSharp.MetaData;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Tests.Memory;
using Xunit;
// ReSharper disable InconsistentNaming
@ -46,7 +49,7 @@ namespace SixLabors.ImageSharp.Tests
}
[Fact]
public void Configuration_Width_Height_BackroundColor()
public void Configuration_Width_Height_BackgroundColor()
{
Configuration configuration = Configuration.Default.Clone();
Rgba32 color = Rgba32.Aquamarine;
@ -61,6 +64,26 @@ namespace SixLabors.ImageSharp.Tests
Assert.Equal(configuration, image.GetConfiguration());
}
}
[Fact]
public void CreateUninitialized()
{
Configuration configuration = Configuration.Default.Clone();
byte dirtyValue = 123;
configuration.MemoryAllocator = new TestMemoryAllocator(dirtyValue);
var metadata = new ImageMetaData();
using (Image<Gray8> image = Image.CreateUninitialized<Gray8>(configuration, 21, 22, metadata))
{
Assert.Equal(21, image.Width);
Assert.Equal(22, image.Height);
Assert.Same(configuration, image.GetConfiguration());
Assert.Same(metadata, image.MetaData);
Assert.Equal(dirtyValue, image[5, 5].PackedValue);
}
}
}
}
}

72
tests/ImageSharp.Tests/Formats/Jpg/JpegProfilingBenchmarks.cs → tests/ImageSharp.Tests/ProfilingBenchmarks/JpegBenchmarks.cs

@ -13,27 +13,27 @@ using SixLabors.ImageSharp.PixelFormats;
using Xunit;
using Xunit.Abstractions;
namespace SixLabors.ImageSharp.Tests.Formats.Jpg
namespace SixLabors.ImageSharp.Tests.ProfilingBenchmarks
{
public class JpegProfilingBenchmarks : MeasureFixture
public class JpegBenchmarks : MeasureFixture
{
public JpegProfilingBenchmarks(ITestOutputHelper output)
public JpegBenchmarks(ITestOutputHelper output)
: base(output)
{
}
public static readonly TheoryData<string> DecodeJpegData = new TheoryData<string>()
public static readonly TheoryData<string> DecodeJpegData = new TheoryData<string>
{
TestImages.Jpeg.Baseline.Cmyk,
TestImages.Jpeg.Baseline.Ycck,
TestImages.Jpeg.Baseline.Calliphora,
TestImages.Jpeg.Baseline.Jpeg400,
TestImages.Jpeg.Baseline.Jpeg420Exif,
TestImages.Jpeg.Baseline.Jpeg444,
TestImages.Jpeg.BenchmarkSuite.Jpeg400_SmallMonochrome,
TestImages.Jpeg.BenchmarkSuite.Jpeg420Exif_MidSizeYCbCr,
TestImages.Jpeg.BenchmarkSuite.Lake_Small444YCbCr,
TestImages.Jpeg.BenchmarkSuite.MissingFF00ProgressiveBedroom159_MidSize420YCbCr,
TestImages.Jpeg.BenchmarkSuite.BadRstProgressive518_Large444YCbCr,
TestImages.Jpeg.BenchmarkSuite.ExifGetString750Transform_Huge420YCbCr,
};
// [Theory] // Benchmark, enable manually
// [MemberData(nameof(DecodeJpegData))]
[Theory(Skip = ProfilingSetup.SkipProfilingTests)]
[MemberData(nameof(DecodeJpegData))]
public void DecodeJpeg(string fileName)
{
this.DecodeJpegBenchmarkImpl(fileName, new JpegDecoder());
@ -47,7 +47,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
return;
}
const int ExecutionCount = 30;
const int ExecutionCount = 20;
if (!Vector.IsHardwareAccelerated)
{
@ -62,17 +62,18 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
() =>
{
var img = Image.Load<Rgba32>(bytes, decoder);
img.Dispose();
},
// ReSharper disable once ExplicitCallerInfoArgument
$"Decode {fileName}");
}
// Benchmark, enable manually!
// [Theory]
// [InlineData(1, 75, JpegSubsample.Ratio420)]
// [InlineData(30, 75, JpegSubsample.Ratio420)]
// [InlineData(30, 75, JpegSubsample.Ratio444)]
// [InlineData(30, 100, JpegSubsample.Ratio444)]
[Theory(Skip = ProfilingSetup.SkipProfilingTests)]
[InlineData(1, 75, JpegSubsample.Ratio420)]
[InlineData(30, 75, JpegSubsample.Ratio420)]
[InlineData(30, 75, JpegSubsample.Ratio444)]
[InlineData(30, 100, JpegSubsample.Ratio444)]
public void EncodeJpeg(int executionCount, int quality, JpegSubsample subsample)
{
// do not run this on CI even by accident
@ -82,31 +83,32 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
}
string[] testFiles = TestImages.Bmp.All
.Concat(new[] { TestImages.Jpeg.Baseline.Calliphora, TestImages.Jpeg.Baseline.Cmyk })
.ToArray();
.Concat(new[] { TestImages.Jpeg.Baseline.Calliphora, TestImages.Jpeg.Baseline.Cmyk }).ToArray();
Image<Rgba32>[] testImages =
testFiles.Select(
tf => TestImageProvider<Rgba32>.File(tf, pixelTypeOverride: PixelTypes.Rgba32).GetImage())
.ToArray();
Image<Rgba32>[] testImages = testFiles.Select(
tf => TestImageProvider<Rgba32>.File(tf, pixelTypeOverride: PixelTypes.Rgba32).GetImage()).ToArray();
using (var ms = new MemoryStream())
{
this.Measure(executionCount,
this.Measure(
executionCount,
() =>
{
foreach (Image<Rgba32> img in testImages)
{
var options = new JpegEncoder { Quality = quality, Subsample = subsample };
img.Save(ms, options);
ms.Seek(0, SeekOrigin.Begin);
}
},
foreach (Image<Rgba32> img in testImages)
{
var options = new JpegEncoder { Quality = quality, Subsample = subsample };
img.Save(ms, options);
ms.Seek(0, SeekOrigin.Begin);
}
},
// ReSharper disable once ExplicitCallerInfoArgument
$@"Encode {testFiles.Length} images"
);
$@"Encode {testFiles.Length} images");
}
}
foreach (Image<Rgba32> image in testImages)
{
image.Dispose();
}
}
}
}

44
tests/ImageSharp.Tests/ProfilingBenchmarks/LoadResizeSaveBenchmarks.cs

@ -0,0 +1,44 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System.IO;
using SixLabors.ImageSharp.Processing;
using Xunit;
using Xunit.Abstractions;
namespace SixLabors.ImageSharp.Tests.ProfilingBenchmarks
{
public class LoadResizeSaveBenchmarks : MeasureFixture
{
public LoadResizeSaveBenchmarks(ITestOutputHelper output)
: base(output)
{
}
[Theory(Skip = ProfilingSetup.SkipProfilingTests)]
[InlineData(TestImages.Jpeg.Baseline.Jpeg420Exif)]
public void LoadResizeSave(string imagePath)
{
var configuration = Configuration.CreateDefaultInstance();
configuration.MaxDegreeOfParallelism = 1;
byte[] imageBytes = TestFile.Create(imagePath).Bytes;
using (var ms = new MemoryStream())
{
this.Measure(30,
() =>
{
using (var image = Image.Load(configuration, imageBytes))
{
image.Mutate(x => x.Resize(image.Size() / 4));
image.SaveAsJpeg(ms);
}
ms.Seek(0, SeekOrigin.Begin);
});
}
}
}
}

18
tests/ImageSharp.Tests/ProfilingBenchmarks/ProfilingSetup.cs

@ -0,0 +1,18 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
// Uncomment to enable local profiling benchmarks. DO NOT PUSH TO MAIN!
// #define PROFILING
namespace SixLabors.ImageSharp.Tests.ProfilingBenchmarks
{
public static class ProfilingSetup
{
public const string SkipProfilingTests =
#if PROFILING
null;
#else
"Profiling benchmark, enable manually!";
#endif
}
}

12
tests/ImageSharp.Tests/TestImages.cs

@ -165,6 +165,18 @@ namespace SixLabors.ImageSharp.Tests
}
public static readonly string[] All = Baseline.All.Concat(Progressive.All).ToArray();
public static class BenchmarkSuite
{
public const string Jpeg400_SmallMonochrome = Baseline.Jpeg400;
public const string Jpeg420Exif_MidSizeYCbCr = Baseline.Jpeg420Exif;
public const string Lake_Small444YCbCr = Baseline.Lake;
// A few large images from the "issues" set are actually very useful for benchmarking:
public const string MissingFF00ProgressiveBedroom159_MidSize420YCbCr = Issues.MissingFF00ProgressiveBedroom159;
public const string BadRstProgressive518_Large444YCbCr = Issues.BadRstProgressive518;
public const string ExifGetString750Transform_Huge420YCbCr = Issues.ExifGetString750Transform;
}
}
public static class Bmp

11
tests/ImageSharp.Tests/TestUtilities/TestDataGenerator.cs

@ -88,6 +88,17 @@ namespace SixLabors.ImageSharp.Tests
return values;
}
public static short[] GenerateRandomInt16Array(this Random rnd, int length, short minVal, short maxVal)
{
short[] values = new short[length];
for (int i = 0; i < values.Length; i++)
{
values[i] = (short)rnd.Next(minVal, maxVal);
}
return values;
}
private static float GetRandomFloat(this Random rnd, float minVal, float maxVal) => ((float)rnd.NextDouble() * (maxVal - minVal)) + minVal;
}
}

331
tests/Images/Input/Jpg/baseline/JpegSnoopReports/Calliphora.jpg.txt

@ -0,0 +1,331 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Calliphora.jpg]
Filesize: [254766] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 96 x 96 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: COM (Comment) (xFFFE) ***
OFFSET: 0x00000014
Comment length = 80
Comment=File source: http://commons.wikimedia.org/wiki/File:Calliphora_sp_Portrait.jpg
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000066
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 4 4 6 10 16 20 24
DQT, Row #1: 5 5 6 8 10 23 24 22
DQT, Row #2: 6 5 6 10 16 23 28 22
DQT, Row #3: 6 7 9 12 20 35 32 25
DQT, Row #4: 7 9 15 22 27 44 41 31
DQT, Row #5: 10 14 22 26 32 42 45 37
DQT, Row #6: 20 26 31 35 41 48 48 40
DQT, Row #7: 29 37 38 39 45 40 41 40
Approx quality factor = 79.94 (scaling=40.12 variance=1.43)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000000AB
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 7 7 10 19 40 40 40 40
DQT, Row #1: 7 8 10 26 40 40 40 40
DQT, Row #2: 10 10 22 40 40 40 40 40
DQT, Row #3: 19 26 40 40 40 40 40 40
DQT, Row #4: 40 40 40 40 40 40 40 40
DQT, Row #5: 40 40 40 40 40 40 40 40
DQT, Row #6: 40 40 40 40 40 40 40 40
DQT, Row #7: 40 40 40 40 40 40 40 40
Approx quality factor = 79.87 (scaling=40.26 variance=0.36)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x000000F0
Frame header length = 17
Precision = 8
Number of Lines = 1198
Samples per Line = 804
Image Size = 804 x 1198
Raw Image Orientation = Portrait
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000103
Huffman table length = 28
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 04
Codes of length 03 bits (005 total): 00 01 02 03 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000121
Huffman table length = 79
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 06 31
Codes of length 07 bits (004 total): 13 22 41 51
Codes of length 08 bits (004 total): 14 32 61 71
Codes of length 09 bits (003 total): 07 81 91
Codes of length 10 bits (006 total): 15 23 42 52 A1 B1
Codes of length 11 bits (003 total): 33 62 C1
Codes of length 12 bits (007 total): 16 24 43 72 82 D1 F0
Codes of length 13 bits (002 total): 25 E1
Codes of length 14 bits (003 total): 34 53 92
Codes of length 15 bits (002 total): A2 F1
Codes of length 16 bits (015 total): 08 63 B2 26 44 C2 D2 73 27 35 55 74 84 93 A3
Total number of codes: 060
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000172
Huffman table length = 26
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 007
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000018E
Huffman table length = 59
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (002 total): 03 31
Codes of length 06 bits (004 total): 12 41 51 F0
Codes of length 07 bits (003 total): 04 61 71
Codes of length 08 bits (008 total): 13 22 81 91 A1 B1 C1 D1
Codes of length 09 bits (002 total): 32 E1
Codes of length 10 bits (002 total): 42 F1
Codes of length 11 bits (002 total): 05 23
Codes of length 12 bits (002 total): 52 62
Codes of length 13 bits (002 total): 14 33
Codes of length 14 bits (001 total): 72
Codes of length 15 bits (004 total): 24 82 92 A2
Codes of length 16 bits (003 total): 43 B2 E2
Total number of codes: 040
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000001CB
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x000001D9
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x0003E32C.0
Compression stats:
Compression Ratio: 11.36:1
Bits per pixel: 2.11:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 2628 ( 17%)
# codes of length 03 bits: 10491 ( 69%)
# codes of length 04 bits: 1319 ( 9%)
# codes of length 05 bits: 611 ( 4%)
# codes of length 06 bits: 101 ( 1%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 23843 ( 79%)
# codes of length 03 bits: 3770 ( 12%)
# codes of length 04 bits: 1945 ( 6%)
# codes of length 05 bits: 653 ( 2%)
# codes of length 06 bits: 89 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 118632 ( 45%)
# codes of length 03 bits: 34447 ( 13%)
# codes of length 04 bits: 57131 ( 22%)
# codes of length 05 bits: 27139 ( 10%)
# codes of length 06 bits: 8648 ( 3%)
# codes of length 07 bits: 9574 ( 4%)
# codes of length 08 bits: 4195 ( 2%)
# codes of length 09 bits: 1503 ( 1%)
# codes of length 10 bits: 1711 ( 1%)
# codes of length 11 bits: 386 ( 0%)
# codes of length 12 bits: 470 ( 0%)
# codes of length 13 bits: 66 ( 0%)
# codes of length 14 bits: 62 ( 0%)
# codes of length 15 bits: 38 ( 0%)
# codes of length 16 bits: 58 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 58553 ( 58%)
# codes of length 03 bits: 21076 ( 21%)
# codes of length 04 bits: 4270 ( 4%)
# codes of length 05 bits: 6075 ( 6%)
# codes of length 06 bits: 6016 ( 6%)
# codes of length 07 bits: 2009 ( 2%)
# codes of length 08 bits: 2750 ( 3%)
# codes of length 09 bits: 429 ( 0%)
# codes of length 10 bits: 213 ( 0%)
# codes of length 11 bits: 91 ( 0%)
# codes of length 12 bits: 44 ( 0%)
# codes of length 13 bits: 22 ( 0%)
# codes of length 14 bits: 5 ( 0%)
# codes of length 15 bits: 9 ( 0%)
# codes of length 16 bits: 3 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[119] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1008, 0, 0] RGB=[254,254,254] @ MCU[ 35, 37]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x0003E32C.0
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0003E32C
*** Searching Compression Signatures ***
Signature: 01DC499064BA9264D591FDE9071DFD89
Signature (Rotated): 0175BAF3251040E0EFB2930B73328E7F
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C2000Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C40Z,D40Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C700UZ ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
SW :[Apple ImageIO.framework ] [050 (Normal) ]
SW :[IJG Library ] [080 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [080 ]
SW :[IrfanView ] [080 ]
SW :[idImager ] [080 ]
SW :[FastStone Image Viewer ] [080 ]
SW :[NeatImage ] [080 ]
SW :[Paint.NET ] [080 ]
SW :[Photomatix ] [080 ]
SW :[XnView ] [080 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

266
tests/Images/Input/Jpg/baseline/JpegSnoopReports/Floorplan.jpg.txt

@ -0,0 +1,266 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Floorplan.jpg]
Filesize: [161577] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 300 x 300 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 13464
Identifier = [Exif]
Identifier TIFF = 0x[4D4D002A 00000008]
Endian = Motorola (big)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x000A
[Model ] = "Photosmart Plus B209a-m"
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 300/1
[YResolution ] = 300/1
[ResolutionUnit ] = Inch
[Software ] = "Windows Photo Editor 10.0.10011.16384"
[DateTime ] = "2016:01:02 20:17:37"
[ExifOffset ] = @ 0x091A
Offset to Next IFD = 0x000011B6
EXIF IFD1 @ Absolute 0x000011D4
Dir Length = 0x0006
[Compression ] = JPEG
[XResolution ] = 96/1
[YResolution ] = 96/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x1214 = @ 0x1232
[JpegIFByteCount ] = 0x[0000227C] / 8828
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x00000938
Dir Length = 0x0008
[DateTimeOriginal ] = "2016:01:02 19:22:28"
[DateTimeDigitized ] = "2016:01:02 19:22:28"
[SubSecTimeOriginal ] = "00"
[SubSecTimeDigitized ] = "00"
[ColorSpace ] = sRGB
[ExifImageWidth ] = 0x[00000922] / 2338
[ExifImageHeight ] = 0x[000008C9] / 2249
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x000034AE
Length = 12772
Identifier = [http://ns.adobe.com/xap/1.0/]
XMP =
|<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
|<x:xmpmeta xmlns:x="adobe:ns:meta/"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="uuid:faf5bdd5-ba3d-11da-ad31-d33d75182f1b" xmlns:xmp="http://ns.adobe.com/xap/1.0/"><xmp:CreatorTool>Windows Photo Editor 10.0.10011.16384</xmp:CreatorTool><xmp:CreateDate>2016-01-02T19:22:28</xmp:CreateDate></rdf:Description></rdf:RDF></x:xmpmeta>
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00006694
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 3 2 2 3 5 8 10 12
DQT, Row #1: 2 2 3 4 5 12 12 11
DQT, Row #2: 3 3 3 5 8 11 14 11
DQT, Row #3: 3 3 4 6 10 17 16 12
DQT, Row #4: 4 4 7 11 14 22 21 15
DQT, Row #5: 5 7 11 13 16 21 23 18
DQT, Row #6: 10 13 16 17 21 24 24 20
DQT, Row #7: 14 18 19 20 22 20 21 20
Approx quality factor = 90.06 (scaling=19.88 variance=1.14)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x000066D9
Frame header length = 11
Precision = 8
Number of Lines = 645
Samples per Line = 976
Image Size = 976 x 645
Raw Image Orientation = Landscape
Number of Img components = 1
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000066E6
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00006707
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000067BE
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x000067C8
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00027727.0
Compression stats:
Compression Ratio: 4.66:1
Bits per pixel: 1.72:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 3571 ( 36%)
# codes of length 03 bits: 4320 ( 44%)
# codes of length 04 bits: 925 ( 9%)
# codes of length 05 bits: 456 ( 5%)
# codes of length 06 bits: 313 ( 3%)
# codes of length 07 bits: 291 ( 3%)
# codes of length 08 bits: 6 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 78118 ( 44%)
# codes of length 03 bits: 22349 ( 13%)
# codes of length 04 bits: 35264 ( 20%)
# codes of length 05 bits: 18811 ( 11%)
# codes of length 06 bits: 4312 ( 2%)
# codes of length 07 bits: 8245 ( 5%)
# codes of length 08 bits: 4682 ( 3%)
# codes of length 09 bits: 1584 ( 1%)
# codes of length 10 bits: 1900 ( 1%)
# codes of length 11 bits: 324 ( 0%)
# codes of length 12 bits: 116 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 6 ( 0%)
# codes of length 16 bits: 639 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[231] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1017, 0, 0] RGB=[255,255,255] @ MCU[ 7, 0]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00027726.4
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00027727
*** Searching Compression Signatures ***
Signature: 015C645021E37D3469A6B652789383DB
Signature (Rotated): 01D400C125EB43B05762A66347B271F7
File Offset: 0 bytes
Chroma subsampling: Gray
EXIF Make/Model: OK [???] [Photosmart Plus B209a-m]
EXIF Makernotes: NONE
EXIF Software: OK [Windows Photo Editor 10.0.10011.16384]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[IJG Library ] [090 Gray ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [090 Gray ]
SW :[IrfanView ] [090 Gray ]
SW :[idImager ] [090 Gray ]
SW :[FastStone Image Viewer ] [090 Gray ]
SW :[NeatImage ] [090 Gray ]
SW :[Paint.NET ] [090 Gray ]
SW :[Photomatix ] [090 Gray ]
SW :[XnView ] [090 Gray ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 2 - Image has high probability of being processed/edited

319
tests/Images/Input/Jpg/baseline/JpegSnoopReports/Hiyamugi.jpg.txt

@ -0,0 +1,319 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Hiyamugi.jpg]
Filesize: [540458] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.0]
density = 96 x 96 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000014
Length = 65110
Identifier = [JFXX]
Not known APP0 type. Skipping remainder.
*** Marker: COM (Comment) (xFFFE) ***
OFFSET: 0x0000FE6C
Comment length = 31
Comment=LEAD Technologies Inc. V1.01.
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x0000FE8D
Table length = 132
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 2 2 2 2 2 2 2 2
DQT, Row #1: 2 2 2 2 2 2 2 2
DQT, Row #2: 2 2 2 2 2 2 2 2
DQT, Row #3: 2 2 2 2 2 3 3 2
DQT, Row #4: 2 2 2 2 2 4 4 3
DQT, Row #5: 2 2 2 2 3 4 4 3
DQT, Row #6: 2 2 3 3 4 4 4 4
DQT, Row #7: 2 3 3 3 4 4 4 3
Approx quality factor = 96.75 (scaling=6.50 variance=21.01)
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 2 2 2 2 3 3 3 3
DQT, Row #1: 2 2 2 2 3 3 3 3
DQT, Row #2: 2 2 2 3 3 3 3 3
DQT, Row #3: 2 2 3 3 3 3 3 3
DQT, Row #4: 3 3 3 3 3 3 3 3
DQT, Row #5: 3 3 3 3 3 3 3 3
DQT, Row #6: 3 3 3 3 3 3 3 3
DQT, Row #7: 3 3 3 3 3 3 3 3
Approx quality factor = 98.06 (scaling=3.88 variance=4.78)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000FF13
Huffman table length = 418
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x000100B7
Frame header length = 17
Precision = 8
Number of Lines = 794
Samples per Line = 1123
Image Size = 1123 x 794
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000100CA
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x000100D8
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00083F28.0
Compression stats:
Compression Ratio: 5.64:1
Bits per pixel: 4.26:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 727 ( 5%)
# codes of length 03 bits: 7443 ( 52%)
# codes of length 04 bits: 2171 ( 15%)
# codes of length 05 bits: 1627 ( 11%)
# codes of length 06 bits: 1355 ( 10%)
# codes of length 07 bits: 785 ( 6%)
# codes of length 08 bits: 92 ( 1%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 2590 ( 36%)
# codes of length 03 bits: 1357 ( 19%)
# codes of length 04 bits: 1187 ( 17%)
# codes of length 05 bits: 856 ( 12%)
# codes of length 06 bits: 616 ( 9%)
# codes of length 07 bits: 346 ( 5%)
# codes of length 08 bits: 109 ( 2%)
# codes of length 09 bits: 39 ( 1%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 223973 ( 44%)
# codes of length 03 bits: 69375 ( 14%)
# codes of length 04 bits: 93550 ( 19%)
# codes of length 05 bits: 58421 ( 12%)
# codes of length 06 bits: 13137 ( 3%)
# codes of length 07 bits: 22630 ( 4%)
# codes of length 08 bits: 9176 ( 2%)
# codes of length 09 bits: 6545 ( 1%)
# codes of length 10 bits: 3947 ( 1%)
# codes of length 11 bits: 1890 ( 0%)
# codes of length 12 bits: 1162 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 77 ( 0%)
# codes of length 16 bits: 1763 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 44319 ( 35%)
# codes of length 03 bits: 21048 ( 17%)
# codes of length 04 bits: 24019 ( 19%)
# codes of length 05 bits: 17303 ( 14%)
# codes of length 06 bits: 9470 ( 7%)
# codes of length 07 bits: 2699 ( 2%)
# codes of length 08 bits: 3432 ( 3%)
# codes of length 09 bits: 2092 ( 2%)
# codes of length 10 bits: 717 ( 1%)
# codes of length 11 bits: 679 ( 1%)
# codes of length 12 bits: 85 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 150 ( 0%)
# codes of length 15 bits: 75 ( 0%)
# codes of length 16 bits: 425 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[117] (range: 0..255)
Brightest Pixel Search:
YCC=[ 812, 102, -218] RGB=[189,244,250] @ MCU[ 19, 16]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00083F27.7
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00083F28
*** Searching Compression Signatures ***
Signature: 0193B6220463E5A621ED25A53EC2FE7D
Signature (Rotated): 010D9693F4FC34B402EFA979BED34733
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[LEAD Technologies Inc ] [002 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

683
tests/Images/Input/Jpg/baseline/JpegSnoopReports/Lake.jpg.txt

@ -0,0 +1,683 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Lake.jpg]
Filesize: [206342] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000002
Length = 10392
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000014
Dir Length = 0x0008
[Make ] = "Canon"
[Model ] = "Canon EOS DIGITAL REBEL XSi"
[XResolution ] = 300/1
[YResolution ] = 300/1
[ResolutionUnit ] = Inch
[Software ] = "Adobe Photoshop Camera Raw 9.8 (Windows)"
[DateTime ] = "2016:12:29 12:57:54"
[ExifOffset ] = @ 0x00DE
Offset to Next IFD = 0x000002D6
EXIF IFD1 @ Absolute 0x000002E2
Dir Length = 0x0006
[Compression ] = JPEG
[XResolution ] = 72/1
[YResolution ] = 72/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x0334 = @ 0x0340
[JpegIFByteCount ] = 0x[0000255C] / 9564
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000000EA
Dir Length = 0x001B
[ExposureTime ] = 1/640 s
[FNumber ] = F8.0
[ExposureProgram ] = Normal program
[ISOSpeedRatings ] = 200
[ExifVersion ] = 02.30
[DateTimeOriginal ] = "2009:07:19 17:00:36"
[DateTimeDigitized ] = "2009:07:19 17:00:36"
[ShutterSpeedValue ] = 9321928/1000000
[ApertureValue ] = 6/1
[ExposureBiasValue ] = 0.00 eV
[MaxApertureValue ] = 4/1
[MeteringMode ] = Pattern
[Flash ] = Flash did not fire
[FocalLength ] = 200 mm
[SubSecTimeOriginal ] = "73"
[SubSecTimeDigitized ] = "73"
[ColorSpace ] = Uncalibrated
[FocalPlaneXResolution ] = 4272000/878
[FocalPlaneYResolution ] = 2848000/584
[FocalPlaneResolutionUnit ] = Inch
[CustomRendered ] = Normal process
[ExposureMode ] = Auto exposure
[WhiteBalance ] = Auto white balance
[SceneCaptureType ] = Standard
*** Marker: APP13 (xFFED) ***
OFFSET: 0x0000289C
Length = 9752
Identifier = [Photoshop 3.0]
8BIM: [0x03ED] Name="" Len=[0x0010] DefinedName="ResolutionInfo structure"
Horizontal resolution = 300 pixels per inch
Width unit = inch
Vertical resolution = 300 pixels per inch
Height unit = inch
8BIM: [0x0404] Name="" Len=[0x003F] DefinedName="IPTC-NAA record"
IPTC [001:090] Coded Character Set = "%G"
IPTC [002:000] Record Version = 4
IPTC [002:055] Date Created = "20090719"
IPTC [002:060] Time Created = "170036"
IPTC [002:062] Digital Creation Date = "20090719"
IPTC [002:063] Digital Creation Time = "170036"
8BIM: [0x040C] Name="" Len=[0x2578] DefinedName="Thumbnail resources"
Format = 1
Width of thumbnail = 256 pixels
Height of thumbnail = 171 pixels
Widthbytes = 768 bytes
Total size = 131328 bytes
Size after compression = 9564 bytes
Bits per pixel = 24 bits
Number of planes = 1
JFIF data @ 0x0000293E
8BIM: [0x0425] Name="" Len=[0x0010] DefinedName="Caption digest"
Caption digest = | 0x52 C5 4C EC 1E FE 25 B8 CA 88 F7 0D 2B 5F 09 F5 | R.L...%.....+_..
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00004EB6
Length = 576
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 560 bytes
Preferred CMM Type : 'ADBE' (0x41444245)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 1999-06-03 00:00:00
Profile file signature : 'acsp' (0x61637370)
Primary platform : Apple Computer, Inc. ('APPL' (0x4150504C))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : 'none' (0x6E6F6E65)
Device Model : '....' (0x00000000)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'ADBE' (0x41444245)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x000050F8
Length = 10738
Identifier = [http://ns.adobe.com/xap/1.0/]
XMP =
|<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
|<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c128 79.159124, 2016/03/18-14:01:55 ">
| <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
| <rdf:Description rdf:about=""
| xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
| xmlns:xmp="http://ns.adobe.com/xap/1.0/"
| xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
| xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
| xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
| xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
| xmlns:dc="http://purl.org/dc/elements/1.1/"
| xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/"
| aux:SerialNumber="470113872"
| aux:LensInfo="70/1 200/1 0/0 0/0"
| aux:Lens="EF70-200mm f/4L USM"
| aux:LensID="186"
| aux:ImageNumber="0"
| aux:ApproximateFocusDistance="4294967295/1"
| aux:FlashCompensation="0/1"
| aux:Firmware="1.0.4"
| xmp:ModifyDate="2016-12-29T12:57:54-08:00"
| xmp:CreateDate="2009-07-19T17:00:36.73"
| xmp:CreatorTool="Adobe Photoshop Camera Raw 9.8 (Windows)"
| xmp:MetadataDate="2016-12-29T12:57:54-08:00"
| photoshop:DateCreated="2009-07-19T17:00:36.73"
| xmpMM:DocumentID="xmp.did:47bcd1a4-3faa-ae43-8543-3b61d68d0367"
| xmpMM:OriginalDocumentID="A9041C696BAB0C0CD85DC7C772360D9E"
| xmpMM:InstanceID="xmp.iid:47bcd1a4-3faa-ae43-8543-3b61d68d0367"
| dc:format="image/jpeg"
| crs:RawFileName="IMG_2443.CR2"
| crs:Version="9.8"
| crs:ProcessVersion="6.7"
| crs:WhiteBalance="As Shot"
| crs:AutoWhiteVersion="134348800"
| crs:Temperature="5600"
| crs:Tint="+13"
| crs:Saturation="0"
| crs:Sharpness="25"
| crs:LuminanceSmoothing="0"
| crs:ColorNoiseReduction="25"
| crs:VignetteAmount="0"
| crs:ShadowTint="0"
| crs:RedHue="0"
| crs:RedSaturation="0"
| crs:GreenHue="0"
| crs:GreenSaturation="0"
| crs:BlueHue="0"
| crs:BlueSaturation="0"
| crs:Vibrance="0"
| crs:HueAdjustmentRed="0"
| crs:HueAdjustmentOrange="0"
| crs:HueAdjustmentYellow="0"
| crs:HueAdjustmentGreen="0"
| crs:HueAdjustmentAqua="0"
| crs:HueAdjustmentBlue="0"
| crs:HueAdjustmentPurple="0"
| crs:HueAdjustmentMagenta="0"
| crs:SaturationAdjustmentRed="0"
| crs:SaturationAdjustmentOrange="0"
| crs:SaturationAdjustmentYellow="0"
| crs:SaturationAdjustmentGreen="0"
| crs:SaturationAdjustmentAqua="0"
| crs:SaturationAdjustmentBlue="0"
| crs:SaturationAdjustmentPurple="0"
| crs:SaturationAdjustmentMagenta="0"
| crs:LuminanceAdjustmentRed="0"
| crs:LuminanceAdjustmentOrange="0"
| crs:LuminanceAdjustmentYellow="0"
| crs:LuminanceAdjustmentGreen="0"
| crs:LuminanceAdjustmentAqua="0"
| crs:LuminanceAdjustmentBlue="0"
| crs:LuminanceAdjustmentPurple="0"
| crs:LuminanceAdjustmentMagenta="0"
| crs:SplitToningShadowHue="0"
| crs:SplitToningShadowSaturation="0"
| crs:SplitToningHighlightHue="0"
| crs:SplitToningHighlightSaturation="0"
| crs:SplitToningBalance="0"
| crs:ParametricShadows="0"
| crs:ParametricDarks="0"
| crs:ParametricLights="0"
| crs:ParametricHighlights="0"
| crs:ParametricShadowSplit="25"
| crs:ParametricMidtoneSplit="50"
| crs:ParametricHighlightSplit="75"
| crs:SharpenRadius="+1.0"
| crs:SharpenDetail="25"
| crs:SharpenEdgeMasking="0"
| crs:PostCropVignetteAmount="0"
| crs:GrainAmount="0"
| crs:ColorNoiseReductionDetail="50"
| crs:ColorNoiseReductionSmoothness="50"
| crs:LensProfileEnable="0"
| crs:LensManualDistortionAmount="0"
| crs:PerspectiveVertical="0"
| crs:PerspectiveHorizontal="0"
| crs:PerspectiveRotate="0.0"
| crs:PerspectiveScale="100"
| crs:PerspectiveAspect="0"
| crs:PerspectiveUpright="0"
| crs:PerspectiveX="0.00"
| crs:PerspectiveY="0.00"
| crs:AutoLateralCA="0"
| crs:Exposure2012="0.00"
| crs:Contrast2012="0"
| crs:Highlights2012="0"
| crs:Shadows2012="0"
| crs:Whites2012="0"
| crs:Blacks2012="0"
| crs:Clarity2012="0"
| crs:DefringePurpleAmount="0"
| crs:DefringePurpleHueLo="30"
| crs:DefringePurpleHueHi="70"
| crs:DefringeGreenAmount="0"
| crs:DefringeGreenHueLo="40"
| crs:DefringeGreenHueHi="60"
| crs:Dehaze="0"
| crs:ToneMapStrength="0"
| crs:ConvertToGrayscale="False"
| crs:ToneCurveName="Medium Contrast"
| crs:ToneCurveName2012="Linear"
| crs:CameraProfile="Adobe Standard"
| crs:CameraProfileDigest="162E063AD6FEDE4357249927BD89FB79"
| crs:LensProfileSetup="LensDefaults"
| crs:UprightVersion="151388160"
| crs:UprightCenterMode="0"
| crs:UprightCenterNormX="0.5"
| crs:UprightCenterNormY="0.5"
| crs:UprightFocalMode="0"
| crs:UprightFocalLength35mm="35"
| crs:UprightPreview="False"
| crs:UprightTransformCount="6"
| crs:UprightFourSegmentsCount="0"
| crs:HasSettings="True"
| crs:HasCrop="False"
| crs:AlreadyApplied="True">
| <xmpMM:History>
| <rdf:Seq>
| <rdf:li
| stEvt:action="derived"
| stEvt:parameters="converted from image/x-canon-cr2 to image/jpeg, saved to new location"/>
| <rdf:li
| stEvt:action="saved"
| stEvt:instanceID="xmp.iid:47bcd1a4-3faa-ae43-8543-3b61d68d0367"
| stEvt:when="2016-12-29T12:57:54-08:00"
| stEvt:softwareAgent="Adobe Photoshop Camera Raw 9.8 (Windows)"
| stEvt:changed="/"/>
| </rdf:Seq>
| </xmpMM:History>
| <xmpMM:DerivedFrom
| stRef:documentID="A9041C696BAB0C0CD85DC7C772360D9E"
| stRef:originalDocumentID="A9041C696BAB0C0CD85DC7C772360D9E"/>
| <crs:ToneCurve>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>32, 22</rdf:li>
| <rdf:li>64, 56</rdf:li>
| <rdf:li>128, 128</rdf:li>
| <rdf:li>192, 196</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurve>
| <crs:ToneCurveRed>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurveRed>
| <crs:ToneCurveGreen>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurveGreen>
| <crs:ToneCurveBlue>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurveBlue>
| <crs:ToneCurvePV2012>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurvePV2012>
| <crs:ToneCurvePV2012Red>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurvePV2012Red>
| <crs:ToneCurvePV2012Green>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurvePV2012Green>
| <crs:ToneCurvePV2012Blue>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurvePV2012Blue>
| </rdf:Description>
| </rdf:RDF>
|</x:xmpmeta>
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00007AEC
Table length = 132
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 4 4 6 9 11 12 16
DQT, Row #1: 4 5 5 6 8 10 12 12
DQT, Row #2: 4 5 5 6 10 12 12 12
DQT, Row #3: 6 6 6 11 12 12 12 12
DQT, Row #4: 9 8 10 12 12 12 12 12
DQT, Row #5: 11 10 12 12 12 12 12 12
DQT, Row #6: 12 12 12 12 12 12 12 12
DQT, Row #7: 16 12 12 12 12 12 12 12
Approx quality factor = 88.28 (scaling=23.43 variance=111.68)
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 7 7 13 24 20 20 17 17
DQT, Row #1: 7 12 16 14 14 12 12 12
DQT, Row #2: 13 16 14 14 12 12 12 12
DQT, Row #3: 24 14 14 12 12 12 12 12
DQT, Row #4: 20 14 12 12 12 12 12 12
DQT, Row #5: 20 12 12 12 12 12 12 12
DQT, Row #6: 17 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
Approx quality factor = 90.19 (scaling=19.62 variance=201.04)
*** Marker: DRI (Restart Interval) (xFFDD) ***
OFFSET: 0x00007B72
Length = 4
interval = 160
*** Marker: APP14 (xFFEE) ***
OFFSET: 0x00007B78
Length = 14
DCTEncodeVersion = 100
APP14Flags0 = 49152
APP14Flags1 = 0
ColorTransform = 1 [YCbCr]
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x00007B88
Frame header length = 17
Precision = 8
Number of Lines = 853
Samples per Line = 1280
Image Size = 1280 x 853
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x00, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00007B9B
Huffman table length = 159
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 03
Codes of length 03 bits (003 total): 01 02 04
Codes of length 04 bits (001 total): 05
Codes of length 05 bits (001 total): 06
Codes of length 06 bits (001 total): 07
Codes of length 07 bits (001 total): 08
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 04
Codes of length 06 bits (001 total): 05
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 006
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 12 21 31
Codes of length 06 bits (002 total): 05 41
Codes of length 07 bits (003 total): 13 22 51
Codes of length 08 bits (006 total): 32 61 71 81 91 A1
Codes of length 09 bits (005 total): 06 14 23 42 B1
Codes of length 10 bits (002 total): 52 C1
Codes of length 11 bits (004 total): 15 33 62 D1
Codes of length 12 bits (004 total): 07 72 E1 F1
Codes of length 13 bits (005 total): 16 24 43 82 F0
Codes of length 14 bits (003 total): 34 92 A2
Codes of length 15 bits (000 total):
Codes of length 16 bits (011 total): 53 63 C2 25 73 B2 D2 26 54 93 E2
Total number of codes: 054
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (001 total): 02
Codes of length 05 bits (000 total):
Codes of length 06 bits (002 total): 12 21
Codes of length 07 bits (002 total): 03 31
Codes of length 08 bits (003 total): 13 41 51
Codes of length 09 bits (001 total): 61
Codes of length 10 bits (000 total):
Codes of length 11 bits (002 total): 04 71
Codes of length 12 bits (003 total): 14 22 81
Codes of length 13 bits (001 total): 32
Codes of length 14 bits (001 total): 42
Codes of length 15 bits (001 total): 91
Codes of length 16 bits (000 total):
Total number of codes: 020
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00007C3C
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),1(AC)
Component[3]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x00007C4A
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00032604.0
Compression stats:
Compression Ratio: 18.77:1
Bits per pixel: 1.28:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 8237 ( 48%)
# codes of length 03 bits: 7451 ( 44%)
# codes of length 04 bits: 930 ( 5%)
# codes of length 05 bits: 300 ( 2%)
# codes of length 06 bits: 197 ( 1%)
# codes of length 07 bits: 5 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 16681 ( 49%)
# codes of length 02 bits: 10125 ( 30%)
# codes of length 03 bits: 5138 ( 15%)
# codes of length 04 bits: 1825 ( 5%)
# codes of length 05 bits: 432 ( 1%)
# codes of length 06 bits: 39 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 104267 ( 49%)
# codes of length 03 bits: 23564 ( 11%)
# codes of length 04 bits: 44372 ( 21%)
# codes of length 05 bits: 19037 ( 9%)
# codes of length 06 bits: 5565 ( 3%)
# codes of length 07 bits: 5437 ( 3%)
# codes of length 08 bits: 5066 ( 2%)
# codes of length 09 bits: 2163 ( 1%)
# codes of length 10 bits: 491 ( 0%)
# codes of length 11 bits: 407 ( 0%)
# codes of length 12 bits: 211 ( 0%)
# codes of length 13 bits: 115 ( 0%)
# codes of length 14 bits: 36 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 26 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 34240 ( 51%)
# codes of length 02 bits: 15658 ( 24%)
# codes of length 03 bits: 7424 ( 11%)
# codes of length 04 bits: 3865 ( 6%)
# codes of length 05 bits: 0 ( 0%)
# codes of length 06 bits: 3125 ( 5%)
# codes of length 07 bits: 1208 ( 2%)
# codes of length 08 bits: 744 ( 1%)
# codes of length 09 bits: 113 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 60 ( 0%)
# codes of length 12 bits: 60 ( 0%)
# codes of length 13 bits: 9 ( 0%)
# codes of length 14 bits: 4 ( 0%)
# codes of length 15 bits: 1 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[122] (range: 0..255)
Brightest Pixel Search:
YCC=[ 714, -42, 42] RGB=[224,215,206] @ MCU[113, 24]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 106
Next position in scan buffer: Offset 0x00032604.0
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00032604
*** Embedded JPEG Thumbnail ***
Offset: 0x00000340
Length: 0x0000255C (9564)
* Embedded Thumb Marker: SOI
* Embedded Thumb Marker: DQT
Length = 132
----
Precision=8 bits
Destination ID=0 (Luminance, typically)
DQT, Row #0: 6 4 4 6 9 11 12 16
DQT, Row #1: 4 5 5 6 8 10 12 12
DQT, Row #2: 4 5 5 6 10 12 12 12
DQT, Row #3: 6 6 6 11 12 12 12 12
DQT, Row #4: 9 8 10 12 12 12 12 12
DQT, Row #5: 11 10 12 12 12 12 12 12
DQT, Row #6: 12 12 12 12 12 12 12 12
DQT, Row #7: 16 12 12 12 12 12 12 12
----
Precision=8 bits
Destination ID=1 (Chrominance, typically)
DQT, Row #0: 7 7 13 24 20 20 17 17
DQT, Row #1: 7 12 16 14 14 12 12 12
DQT, Row #2: 13 16 14 14 12 12 12 12
DQT, Row #3: 24 14 14 12 12 12 12 12
DQT, Row #4: 20 14 12 12 12 12 12 12
DQT, Row #5: 20 12 12 12 12 12 12 12
DQT, Row #6: 17 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
* Embedded Thumb Marker: DRI
Length = 4
* Embedded Thumb Marker: APP14
Length = 14
* Embedded Thumb Marker: SOF
Frame header length = 17
Precision = 8
Number of Lines = 171
Samples per Line = 256
Image Size = 256 x 171
* Embedded Thumb Marker: DHT
Length = 148
* Embedded Thumb Marker: SOS
Skipping scan data
Skipped 9212 bytes
* Embedded Thumb Marker: EOI
* Embedded Thumb Signature: 01180AF3DE63318828A86409EF4013DD
*** Searching Compression Signatures ***
Signature: 01180AF3DE63318828A86409EF4013DD
Signature (Rotated): 01180AF3DE63318828A86409EF4013DD
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: OK [Canon] [Canon EOS DIGITAL REBEL XSi]
EXIF Makernotes: NONE
EXIF Software: OK [Adobe Photoshop Camera Raw 9.8 (Windows)]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[Adobe Photoshop ] [Save As 08 ]
NOTE: EXIF Software field recognized as from editor
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
Appears to be new signature for known software.
If the camera/software doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

282
tests/Images/Input/Jpg/baseline/JpegSnoopReports/MultiScanBaselineCMYK.jpg.txt

@ -0,0 +1,282 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\MultiScanBaselineCMYK.jpg]
Filesize: [47443] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 72 x 72 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP14 (xFFEE) ***
OFFSET: 0x00000014
Length = 14
DCTEncodeVersion = 25600
APP14Flags0 = 0
APP14Flags1 = 0
ColorTransform = 2 [YCCK]
*** Marker: COM (Comment) (xFFFE) ***
OFFSET: 0x00000024
Comment length = 38
Comment=Created by fCoder Graphics Processor
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x0000004C
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 5 3 3 5 7 12 15 18
DQT, Row #1: 4 4 4 6 8 17 18 17
DQT, Row #2: 4 4 5 7 12 17 21 17
DQT, Row #3: 4 5 7 9 15 26 24 19
DQT, Row #4: 5 7 11 17 20 33 31 23
DQT, Row #5: 7 11 17 19 24 31 34 28
DQT, Row #6: 15 19 23 26 31 36 36 30
DQT, Row #7: 22 28 29 29 34 30 31 30
Approx quality factor = 84.93 (scaling=30.13 variance=1.05)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000091
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 5 5 7 14 30 30 30 30
DQT, Row #1: 5 6 8 20 30 30 30 30
DQT, Row #2: 7 8 17 30 30 30 30 30
DQT, Row #3: 14 20 30 30 30 30 30 30
DQT, Row #4: 30 30 30 30 30 30 30 30
DQT, Row #5: 30 30 30 30 30 30 30 30
DQT, Row #6: 30 30 30 30 30 30 30 30
DQT, Row #7: 30 30 30 30 30 30 30 30
Approx quality factor = 84.93 (scaling=30.15 variance=0.29)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x000000D6
Frame header length = 20
Precision = 8
Number of Lines = 842
Samples per Line = 595
Image Size = 595 x 842
Raw Image Orientation = Portrait
Number of Img components = 4
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Cr)
Component[4]: ID=0x04, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (K)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000EC
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000010D
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000001C4
Huffman table length = 31
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000001E5
Huffman table length = 181
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000029C
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support CMYK files yet.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00005825
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support CMYK files yet.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000766A
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support CMYK files yet.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000A1FA
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x04, table=0(DC),0(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support CMYK files yet.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000B951
*** Searching Compression Signatures ***
Signature: 0155D875C95B74D0F3C5835A62516F48
Signature (Rotated): 01D38A25358EB7649A254E19F1D46600
File Offset: 0 bytes
Chroma subsampling: ?x?
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[Nokia ] [N73 ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C2000Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[PENTAX ] [PENTAX Optio 550 ] [ ] No
CAM:[Research In Motion ] [BlackBerry 8100 ] [ ] No
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
SW :[IJG Library ] [085 ]
SW :[Picasa ] [085 (Normal) ]
SW :[ZoomBrowser EX ] [medium ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [085 ]
SW :[IrfanView ] [085 ]
SW :[idImager ] [085 ]
SW :[FastStone Image Viewer ] [085 ]
SW :[NeatImage ] [085 ]
SW :[Paint.NET ] [085 ]
SW :[Photomatix ] [085 ]
SW :[XnView ] [085 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

683
tests/Images/Input/Jpg/baseline/JpegSnoopReports/Snake.jpg.txt

@ -0,0 +1,683 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Snake.jpg]
Filesize: [165200] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000002
Length = 11941
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000014
Dir Length = 0x0008
[Make ] = "Canon"
[Model ] = "Canon EOS DIGITAL REBEL XSi"
[XResolution ] = 300/1
[YResolution ] = 300/1
[ResolutionUnit ] = Inch
[Software ] = "Adobe Photoshop Camera Raw 9.8 (Windows)"
[DateTime ] = "2016:12:29 12:57:50"
[ExifOffset ] = @ 0x00DE
Offset to Next IFD = 0x000002D6
EXIF IFD1 @ Absolute 0x000002E2
Dir Length = 0x0006
[Compression ] = JPEG
[XResolution ] = 72/1
[YResolution ] = 72/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x0334 = @ 0x0340
[JpegIFByteCount ] = 0x[00002B69] / 11113
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000000EA
Dir Length = 0x001B
[ExposureTime ] = 1/25 s
[FNumber ] = F4.0
[ExposureProgram ] = Shutter priority
[ISOSpeedRatings ] = 250
[ExifVersion ] = 02.30
[DateTimeOriginal ] = "2009:07:19 13:25:29"
[DateTimeDigitized ] = "2009:07:19 13:25:29"
[ShutterSpeedValue ] = 4643856/1000000
[ApertureValue ] = 4/1
[ExposureBiasValue ] = 0.00 eV
[MaxApertureValue ] = 4/1
[MeteringMode ] = Pattern
[Flash ] = Flash did not fire
[FocalLength ] = 200 mm
[SubSecTimeOriginal ] = "03"
[SubSecTimeDigitized ] = "03"
[ColorSpace ] = Uncalibrated
[FocalPlaneXResolution ] = 4272000/878
[FocalPlaneYResolution ] = 2848000/584
[FocalPlaneResolutionUnit ] = Inch
[CustomRendered ] = Normal process
[ExposureMode ] = Auto exposure
[WhiteBalance ] = Auto white balance
[SceneCaptureType ] = Standard
*** Marker: APP13 (xFFED) ***
OFFSET: 0x00002EA9
Length = 11302
Identifier = [Photoshop 3.0]
8BIM: [0x03ED] Name="" Len=[0x0010] DefinedName="ResolutionInfo structure"
Horizontal resolution = 300 pixels per inch
Width unit = inch
Vertical resolution = 300 pixels per inch
Height unit = inch
8BIM: [0x0404] Name="" Len=[0x003F] DefinedName="IPTC-NAA record"
IPTC [001:090] Coded Character Set = "%G"
IPTC [002:000] Record Version = 4
IPTC [002:055] Date Created = "20090719"
IPTC [002:060] Time Created = "132529"
IPTC [002:062] Digital Creation Date = "20090719"
IPTC [002:063] Digital Creation Time = "132529"
8BIM: [0x040C] Name="" Len=[0x2B85] DefinedName="Thumbnail resources"
Format = 1
Width of thumbnail = 256 pixels
Height of thumbnail = 171 pixels
Widthbytes = 768 bytes
Total size = 131328 bytes
Size after compression = 11113 bytes
Bits per pixel = 24 bits
Number of planes = 1
JFIF data @ 0x00002F4B
8BIM: [0x0425] Name="" Len=[0x0010] DefinedName="Caption digest"
Caption digest = | 0xEE 2F A2 47 C5 F8 ED 07 08 CD FF 82 A0 D1 7F F2 | ./.G............
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00005AD1
Length = 576
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 560 bytes
Preferred CMM Type : 'ADBE' (0x41444245)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 1999-06-03 00:00:00
Profile file signature : 'acsp' (0x61637370)
Primary platform : Apple Computer, Inc. ('APPL' (0x4150504C))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : 'none' (0x6E6F6E65)
Device Model : '....' (0x00000000)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'ADBE' (0x41444245)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00005D13
Length = 10733
Identifier = [http://ns.adobe.com/xap/1.0/]
XMP =
|<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
|<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c128 79.159124, 2016/03/18-14:01:55 ">
| <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
| <rdf:Description rdf:about=""
| xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
| xmlns:xmp="http://ns.adobe.com/xap/1.0/"
| xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
| xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
| xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
| xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
| xmlns:dc="http://purl.org/dc/elements/1.1/"
| xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/"
| aux:SerialNumber="470113872"
| aux:LensInfo="70/1 200/1 0/0 0/0"
| aux:Lens="EF70-200mm f/4L USM"
| aux:LensID="186"
| aux:ImageNumber="0"
| aux:ApproximateFocusDistance="121/100"
| aux:FlashCompensation="0/1"
| aux:Firmware="1.0.4"
| xmp:ModifyDate="2016-12-29T12:57:50-08:00"
| xmp:CreateDate="2009-07-19T13:25:29.03"
| xmp:CreatorTool="Adobe Photoshop Camera Raw 9.8 (Windows)"
| xmp:MetadataDate="2016-12-29T12:57:50-08:00"
| photoshop:DateCreated="2009-07-19T13:25:29.03"
| xmpMM:DocumentID="xmp.did:b16e4ed6-3504-b044-b578-0016dee13c23"
| xmpMM:OriginalDocumentID="54CC515CE34BE4AB86FB9C16883EAAD4"
| xmpMM:InstanceID="xmp.iid:b16e4ed6-3504-b044-b578-0016dee13c23"
| dc:format="image/jpeg"
| crs:RawFileName="IMG_2325.CR2"
| crs:Version="9.8"
| crs:ProcessVersion="6.7"
| crs:WhiteBalance="As Shot"
| crs:AutoWhiteVersion="134348800"
| crs:Temperature="4200"
| crs:Tint="+54"
| crs:Saturation="0"
| crs:Sharpness="25"
| crs:LuminanceSmoothing="0"
| crs:ColorNoiseReduction="25"
| crs:VignetteAmount="0"
| crs:ShadowTint="0"
| crs:RedHue="0"
| crs:RedSaturation="0"
| crs:GreenHue="0"
| crs:GreenSaturation="0"
| crs:BlueHue="0"
| crs:BlueSaturation="0"
| crs:Vibrance="0"
| crs:HueAdjustmentRed="0"
| crs:HueAdjustmentOrange="0"
| crs:HueAdjustmentYellow="0"
| crs:HueAdjustmentGreen="0"
| crs:HueAdjustmentAqua="0"
| crs:HueAdjustmentBlue="0"
| crs:HueAdjustmentPurple="0"
| crs:HueAdjustmentMagenta="0"
| crs:SaturationAdjustmentRed="0"
| crs:SaturationAdjustmentOrange="0"
| crs:SaturationAdjustmentYellow="0"
| crs:SaturationAdjustmentGreen="0"
| crs:SaturationAdjustmentAqua="0"
| crs:SaturationAdjustmentBlue="0"
| crs:SaturationAdjustmentPurple="0"
| crs:SaturationAdjustmentMagenta="0"
| crs:LuminanceAdjustmentRed="0"
| crs:LuminanceAdjustmentOrange="0"
| crs:LuminanceAdjustmentYellow="0"
| crs:LuminanceAdjustmentGreen="0"
| crs:LuminanceAdjustmentAqua="0"
| crs:LuminanceAdjustmentBlue="0"
| crs:LuminanceAdjustmentPurple="0"
| crs:LuminanceAdjustmentMagenta="0"
| crs:SplitToningShadowHue="0"
| crs:SplitToningShadowSaturation="0"
| crs:SplitToningHighlightHue="0"
| crs:SplitToningHighlightSaturation="0"
| crs:SplitToningBalance="0"
| crs:ParametricShadows="0"
| crs:ParametricDarks="0"
| crs:ParametricLights="0"
| crs:ParametricHighlights="0"
| crs:ParametricShadowSplit="25"
| crs:ParametricMidtoneSplit="50"
| crs:ParametricHighlightSplit="75"
| crs:SharpenRadius="+1.0"
| crs:SharpenDetail="25"
| crs:SharpenEdgeMasking="0"
| crs:PostCropVignetteAmount="0"
| crs:GrainAmount="0"
| crs:ColorNoiseReductionDetail="50"
| crs:ColorNoiseReductionSmoothness="50"
| crs:LensProfileEnable="0"
| crs:LensManualDistortionAmount="0"
| crs:PerspectiveVertical="0"
| crs:PerspectiveHorizontal="0"
| crs:PerspectiveRotate="0.0"
| crs:PerspectiveScale="100"
| crs:PerspectiveAspect="0"
| crs:PerspectiveUpright="0"
| crs:PerspectiveX="0.00"
| crs:PerspectiveY="0.00"
| crs:AutoLateralCA="0"
| crs:Exposure2012="0.00"
| crs:Contrast2012="0"
| crs:Highlights2012="0"
| crs:Shadows2012="0"
| crs:Whites2012="0"
| crs:Blacks2012="0"
| crs:Clarity2012="0"
| crs:DefringePurpleAmount="0"
| crs:DefringePurpleHueLo="30"
| crs:DefringePurpleHueHi="70"
| crs:DefringeGreenAmount="0"
| crs:DefringeGreenHueLo="40"
| crs:DefringeGreenHueHi="60"
| crs:Dehaze="0"
| crs:ToneMapStrength="0"
| crs:ConvertToGrayscale="False"
| crs:ToneCurveName="Medium Contrast"
| crs:ToneCurveName2012="Linear"
| crs:CameraProfile="Adobe Standard"
| crs:CameraProfileDigest="162E063AD6FEDE4357249927BD89FB79"
| crs:LensProfileSetup="LensDefaults"
| crs:UprightVersion="151388160"
| crs:UprightCenterMode="0"
| crs:UprightCenterNormX="0.5"
| crs:UprightCenterNormY="0.5"
| crs:UprightFocalMode="0"
| crs:UprightFocalLength35mm="35"
| crs:UprightPreview="False"
| crs:UprightTransformCount="6"
| crs:UprightFourSegmentsCount="0"
| crs:HasSettings="True"
| crs:HasCrop="False"
| crs:AlreadyApplied="True">
| <xmpMM:History>
| <rdf:Seq>
| <rdf:li
| stEvt:action="derived"
| stEvt:parameters="converted from image/x-canon-cr2 to image/jpeg, saved to new location"/>
| <rdf:li
| stEvt:action="saved"
| stEvt:instanceID="xmp.iid:b16e4ed6-3504-b044-b578-0016dee13c23"
| stEvt:when="2016-12-29T12:57:50-08:00"
| stEvt:softwareAgent="Adobe Photoshop Camera Raw 9.8 (Windows)"
| stEvt:changed="/"/>
| </rdf:Seq>
| </xmpMM:History>
| <xmpMM:DerivedFrom
| stRef:documentID="54CC515CE34BE4AB86FB9C16883EAAD4"
| stRef:originalDocumentID="54CC515CE34BE4AB86FB9C16883EAAD4"/>
| <crs:ToneCurve>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>32, 22</rdf:li>
| <rdf:li>64, 56</rdf:li>
| <rdf:li>128, 128</rdf:li>
| <rdf:li>192, 196</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurve>
| <crs:ToneCurveRed>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurveRed>
| <crs:ToneCurveGreen>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurveGreen>
| <crs:ToneCurveBlue>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurveBlue>
| <crs:ToneCurvePV2012>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurvePV2012>
| <crs:ToneCurvePV2012Red>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurvePV2012Red>
| <crs:ToneCurvePV2012Green>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurvePV2012Green>
| <crs:ToneCurvePV2012Blue>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurvePV2012Blue>
| </rdf:Description>
| </rdf:RDF>
|</x:xmpmeta>
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00008702
Table length = 132
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 4 4 6 9 11 12 16
DQT, Row #1: 4 5 5 6 8 10 12 12
DQT, Row #2: 4 5 5 6 10 12 12 12
DQT, Row #3: 6 6 6 11 12 12 12 12
DQT, Row #4: 9 8 10 12 12 12 12 12
DQT, Row #5: 11 10 12 12 12 12 12 12
DQT, Row #6: 12 12 12 12 12 12 12 12
DQT, Row #7: 16 12 12 12 12 12 12 12
Approx quality factor = 88.28 (scaling=23.43 variance=111.68)
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 7 7 13 24 20 20 17 17
DQT, Row #1: 7 12 16 14 14 12 12 12
DQT, Row #2: 13 16 14 14 12 12 12 12
DQT, Row #3: 24 14 14 12 12 12 12 12
DQT, Row #4: 20 14 12 12 12 12 12 12
DQT, Row #5: 20 12 12 12 12 12 12 12
DQT, Row #6: 17 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
Approx quality factor = 90.19 (scaling=19.62 variance=201.04)
*** Marker: DRI (Restart Interval) (xFFDD) ***
OFFSET: 0x00008788
Length = 4
interval = 160
*** Marker: APP14 (xFFEE) ***
OFFSET: 0x0000878E
Length = 14
DCTEncodeVersion = 100
APP14Flags0 = 49152
APP14Flags1 = 0
ColorTransform = 1 [YCbCr]
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0000879E
Frame header length = 17
Precision = 8
Number of Lines = 853
Samples per Line = 1280
Image Size = 1280 x 853
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x00, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000087B1
Huffman table length = 153
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 02 03
Codes of length 03 bits (003 total): 01 04 05
Codes of length 04 bits (001 total): 00
Codes of length 05 bits (001 total): 06
Codes of length 06 bits (001 total): 07
Codes of length 07 bits (001 total): 08
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 04
Codes of length 06 bits (001 total): 05
Codes of length 07 bits (001 total): 06
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 007
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (002 total): 00 03
Codes of length 04 bits (002 total): 04 11
Codes of length 05 bits (001 total): 21
Codes of length 06 bits (003 total): 05 12 31
Codes of length 07 bits (003 total): 13 41 51
Codes of length 08 bits (003 total): 06 22 61
Codes of length 09 bits (003 total): 14 32 71
Codes of length 10 bits (003 total): 42 81 91
Codes of length 11 bits (003 total): 15 23 A1
Codes of length 12 bits (004 total): 07 52 B1 C1
Codes of length 13 bits (001 total): 33
Codes of length 14 bits (002 total): 24 43
Codes of length 15 bits (002 total): 62 D1
Codes of length 16 bits (011 total): 16 34 72 E1 25 53 63 92 82 A2 F0
Total number of codes: 045
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (001 total): 02
Codes of length 05 bits (000 total):
Codes of length 06 bits (003 total): 03 12 21
Codes of length 07 bits (001 total): 31
Codes of length 08 bits (000 total):
Codes of length 09 bits (002 total): 04 41
Codes of length 10 bits (003 total): 13 22 51
Codes of length 11 bits (000 total):
Codes of length 12 bits (003 total): 32 61 71
Codes of length 13 bits (000 total):
Codes of length 14 bits (003 total): 05 14 42
Codes of length 15 bits (000 total):
Codes of length 16 bits (003 total): 81 52 62
Total number of codes: 022
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000884C
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),1(AC)
Component[3]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x0000885A
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x0002854E.0
Compression stats:
Compression Ratio: 25.14:1
Bits per pixel: 0.95:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 7183 ( 42%)
# codes of length 03 bits: 7286 ( 43%)
# codes of length 04 bits: 1551 ( 9%)
# codes of length 05 bits: 856 ( 5%)
# codes of length 06 bits: 218 ( 1%)
# codes of length 07 bits: 26 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 12266 ( 36%)
# codes of length 02 bits: 11394 ( 33%)
# codes of length 03 bits: 6548 ( 19%)
# codes of length 04 bits: 2911 ( 9%)
# codes of length 05 bits: 875 ( 3%)
# codes of length 06 bits: 241 ( 1%)
# codes of length 07 bits: 5 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 59325 ( 45%)
# codes of length 03 bits: 31160 ( 24%)
# codes of length 04 bits: 18131 ( 14%)
# codes of length 05 bits: 4871 ( 4%)
# codes of length 06 bits: 9522 ( 7%)
# codes of length 07 bits: 4029 ( 3%)
# codes of length 08 bits: 2270 ( 2%)
# codes of length 09 bits: 1006 ( 1%)
# codes of length 10 bits: 515 ( 0%)
# codes of length 11 bits: 268 ( 0%)
# codes of length 12 bits: 195 ( 0%)
# codes of length 13 bits: 24 ( 0%)
# codes of length 14 bits: 29 ( 0%)
# codes of length 15 bits: 20 ( 0%)
# codes of length 16 bits: 26 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 34240 ( 51%)
# codes of length 02 bits: 16000 ( 24%)
# codes of length 03 bits: 5994 ( 9%)
# codes of length 04 bits: 5610 ( 8%)
# codes of length 05 bits: 0 ( 0%)
# codes of length 06 bits: 3610 ( 5%)
# codes of length 07 bits: 600 ( 1%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 410 ( 1%)
# codes of length 10 bits: 200 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 70 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 17 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 6 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[110] (range: 0..255)
Brightest Pixel Search:
YCC=[ 954, 14, -14] RGB=[244,248,248] @ MCU[124, 21]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 106
Next position in scan buffer: Offset 0x0002854D.3
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0002854E
*** Embedded JPEG Thumbnail ***
Offset: 0x00000340
Length: 0x00002B69 (11113)
* Embedded Thumb Marker: SOI
* Embedded Thumb Marker: DQT
Length = 132
----
Precision=8 bits
Destination ID=0 (Luminance, typically)
DQT, Row #0: 6 4 4 6 9 11 12 16
DQT, Row #1: 4 5 5 6 8 10 12 12
DQT, Row #2: 4 5 5 6 10 12 12 12
DQT, Row #3: 6 6 6 11 12 12 12 12
DQT, Row #4: 9 8 10 12 12 12 12 12
DQT, Row #5: 11 10 12 12 12 12 12 12
DQT, Row #6: 12 12 12 12 12 12 12 12
DQT, Row #7: 16 12 12 12 12 12 12 12
----
Precision=8 bits
Destination ID=1 (Chrominance, typically)
DQT, Row #0: 7 7 13 24 20 20 17 17
DQT, Row #1: 7 12 16 14 14 12 12 12
DQT, Row #2: 13 16 14 14 12 12 12 12
DQT, Row #3: 24 14 14 12 12 12 12 12
DQT, Row #4: 20 14 12 12 12 12 12 12
DQT, Row #5: 20 12 12 12 12 12 12 12
DQT, Row #6: 17 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
* Embedded Thumb Marker: DRI
Length = 4
* Embedded Thumb Marker: APP14
Length = 14
* Embedded Thumb Marker: SOF
Frame header length = 17
Precision = 8
Number of Lines = 171
Samples per Line = 256
Image Size = 256 x 171
* Embedded Thumb Marker: DHT
Length = 150
* Embedded Thumb Marker: SOS
Skipping scan data
Skipped 10759 bytes
* Embedded Thumb Marker: EOI
* Embedded Thumb Signature: 01180AF3DE63318828A86409EF4013DD
*** Searching Compression Signatures ***
Signature: 01180AF3DE63318828A86409EF4013DD
Signature (Rotated): 01180AF3DE63318828A86409EF4013DD
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: OK [Canon] [Canon EOS DIGITAL REBEL XSi]
EXIF Makernotes: NONE
EXIF Software: OK [Adobe Photoshop Camera Raw 9.8 (Windows)]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[Adobe Photoshop ] [Save As 08 ]
NOTE: EXIF Software field recognized as from editor
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
Appears to be new signature for known software.
If the camera/software doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

347
tests/Images/Input/Jpg/baseline/JpegSnoopReports/badeof.jpg.txt

@ -0,0 +1,347 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\badeof.jpg]
Filesize: [5770] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 8 6 5 8 12 20 26 31
DQT, Row #1: 6 6 7 10 13 29 30 28
DQT, Row #2: 7 7 8 12 20 29 35 28
DQT, Row #3: 7 9 11 15 26 44 40 31
DQT, Row #4: 9 11 19 28 34 55 52 39
DQT, Row #5: 12 18 28 32 41 52 57 46
DQT, Row #6: 25 32 39 44 52 61 60 51
DQT, Row #7: 36 46 48 49 56 50 52 50
Approx quality factor = 74.75 (scaling=50.51 variance=0.81)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 9 9 12 24 50 50 50 50
DQT, Row #1: 9 11 13 33 50 50 50 50
DQT, Row #2: 12 13 28 50 50 50 50 50
DQT, Row #3: 24 33 50 50 50 50 50 50
DQT, Row #4: 50 50 50 50 50 50 50 50
DQT, Row #5: 50 50 50 50 50 50 50 50
DQT, Row #6: 50 50 50 50 50 50 50 50
DQT, Row #7: 50 50 50 50 50 50 50 50
Approx quality factor = 74.74 (scaling=50.52 variance=0.19)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 149
Samples per Line = 227
Image Size = 227 x 149
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000D2
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000189
Huffman table length = 31
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000001AA
Huffman table length = 181
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000261
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x0000026F
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Compression stats:
Compression Ratio: 19.73:1
Bits per pixel: 1.22:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 88 ( 15%)
# codes of length 03 bits: 409 ( 68%)
# codes of length 04 bits: 66 ( 11%)
# codes of length 05 bits: 33 ( 6%)
# codes of length 06 bits: 4 ( 1%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 134 ( 45%)
# codes of length 03 bits: 68 ( 23%)
# codes of length 04 bits: 60 ( 20%)
# codes of length 05 bits: 26 ( 9%)
# codes of length 06 bits: 12 ( 4%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 2706 ( 48%)
# codes of length 03 bits: 636 ( 11%)
# codes of length 04 bits: 1331 ( 23%)
# codes of length 05 bits: 473 ( 8%)
# codes of length 06 bits: 196 ( 3%)
# codes of length 07 bits: 169 ( 3%)
# codes of length 08 bits: 66 ( 1%)
# codes of length 09 bits: 60 ( 1%)
# codes of length 10 bits: 28 ( 0%)
# codes of length 11 bits: 14 ( 0%)
# codes of length 12 bits: 4 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 5 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 697 ( 46%)
# codes of length 03 bits: 243 ( 16%)
# codes of length 04 bits: 294 ( 19%)
# codes of length 05 bits: 164 ( 11%)
# codes of length 06 bits: 68 ( 4%)
# codes of length 07 bits: 5 ( 0%)
# codes of length 08 bits: 35 ( 2%)
# codes of length 09 bits: 4 ( 0%)
# codes of length 10 bits: 2 ( 0%)
# codes of length 11 bits: 1 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[107] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1008, -9, 0] RGB=[254,254,250] @ MCU[ 4, 8]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00001687.2
*** Skipped 1 marker pad bytes ***
*** Marker: ??? (Unknown) (xFF00) ***
OFFSET: 0x00001689
WARNING: Unknown marker [0xFF00]
Stopping decode
Use [Img Search Fwd/Rev] to locate other valid embedded JPEGs
*** Searching Compression Signatures ***
Signature: 0182408A81A4ABF04D4A34A8A5E98C58
Signature (Rotated): 012D821C6AB210E2A753BE053B8F55D0
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[SONY ] [CYBERSHOT U ] [ ] Yes
SW :[Adobe Photoshop 7.0 ] [Save As 07 ]
SW :[Apple Quicktime ] [0466-0467 ]
SW :[Digital Photo Professiona] [05 ]
SW :[IJG Library ] [075 ]
SW :[MS Paint ] [ ]
SW :[MS Visio ] [ ]
SW :[ZoomBrowser EX ] [low ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [075 ]
SW :[IrfanView ] [075 ]
SW :[idImager ] [075 ]
SW :[FastStone Image Viewer ] [075 ]
SW :[NeatImage ] [075 ]
SW :[Paint.NET ] [075 ]
SW :[Photomatix ] [075 ]
SW :[XnView ] [075 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]
*** Additional Info ***
NOTE: Data exists after EOF, range: 0x00000000-0x0000168A (5770 bytes)

434
tests/Images/Input/Jpg/baseline/JpegSnoopReports/badrst.jpg.txt

@ -0,0 +1,434 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\badrst.jpg]
Filesize: [74497] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 96 x 96 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 8628
Identifier = [Exif]
Identifier TIFF = 0x[4D4D002A 00000008]
Endian = Motorola (big)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x0003
[Orientation ] = 1 = Row 0: top, Col 0: left
[ExifOffset ] = @ 0x083E
Offset to Next IFD = 0x000010B6
EXIF IFD1 @ Absolute 0x000010D4
Dir Length = 0x0006
[Compression ] = JPEG
[XResolution ] = 96/1
[YResolution ] = 96/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x1114 = @ 0x1132
[JpegIFByteCount ] = 0x[00001097] / 4247
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x0000085C
Dir Length = 0x0005
[DateTimeOriginal ] = "2016:02:28 11:17:08"
[DateTimeDigitized ] = "2016:02:28 11:17:08"
[SubSecTimeOriginal ] = "06"
[SubSecTimeDigitized ] = "06"
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x000021CA
Length = 2464
Identifier = [http://ns.adobe.com/xap/1.0/]
XMP =
|<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
|<x:xmpmeta xmlns:x="adobe:ns:meta/"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="uuid:faf5bdd5-ba3d-11da-ad31-d33d75182f1b" xmlns:xmp="http://ns.adobe.com/xap/1.0/"><xmp:CreateDate>2016-02-28T11:17:08.057</xmp:CreateDate></rdf:Description></rdf:RDF></x:xmpmeta>
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00002B6C
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 3 2 2 3 5 8 10 12
DQT, Row #1: 2 2 3 4 5 12 12 11
DQT, Row #2: 3 3 3 5 8 11 14 11
DQT, Row #3: 3 3 4 6 10 17 16 12
DQT, Row #4: 4 4 7 11 14 22 21 15
DQT, Row #5: 5 7 11 13 16 21 23 18
DQT, Row #6: 10 13 16 17 21 24 24 20
DQT, Row #7: 14 18 19 20 22 20 21 20
Approx quality factor = 90.06 (scaling=19.88 variance=1.14)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00002BB1
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 3 4 5 9 20 20 20 20
DQT, Row #1: 4 4 5 13 20 20 20 20
DQT, Row #2: 5 5 11 20 20 20 20 20
DQT, Row #3: 9 13 20 20 20 20 20 20
DQT, Row #4: 20 20 20 20 20 20 20 20
DQT, Row #5: 20 20 20 20 20 20 20 20
DQT, Row #6: 20 20 20 20 20 20 20 20
DQT, Row #7: 20 20 20 20 20 20 20 20
Approx quality factor = 89.93 (scaling=20.14 variance=0.34)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x00002BF6
Frame header length = 17
Precision = 8
Number of Lines = 480
Samples per Line = 640
Image Size = 640 x 480
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002C09
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002C2A
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002CE1
Huffman table length = 31
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002D02
Huffman table length = 181
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: DRI (Restart Interval) (xFFDD) ***
OFFSET: 0x00002DB9
Length = 4
interval = 600
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00002DBF
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x00002DCD
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Expect Restart interval elapsed @ 0x00008802.4
ERROR: Restart marker not detected
*** ERROR: Can't find huffman bitstring @ 0x00008802.5, table 0, value [0xffffffe0]
*** ERROR: Bad huffman code @ 0x00008802.4
*** ERROR: Bad scan data in MCU(0,15): Lum CSS(0,0) @ Offset 0x00008802.5
MCU located at pixel=(0,240)
*** ERROR: Can't find huffman bitstring @ 0x00008802.6, table 0, value [0xffffffc0]
*** ERROR: Bad huffman code @ 0x00008802.5
*** ERROR: Bad scan data in MCU(0,15): Lum CSS(1,0) @ Offset 0x00008802.6
MCU located at pixel=(8,240)
*** ERROR: Can't find huffman bitstring @ 0x00008802.7, table 0, value [0xffffff80]
*** ERROR: Bad huffman code @ 0x00008802.6
*** ERROR: Bad scan data in MCU(0,15): Lum CSS(0,1) @ Offset 0x00008802.7
MCU located at pixel=(0,248)
*** ERROR: Can't find huffman bitstring @ 0x00008803.0, table 0, value [0xffffffff]
*** ERROR: Bad huffman code @ 0x00008802.7
*** ERROR: Bad scan data in MCU(0,15): Lum CSS(1,1) @ Offset 0x00008803.0
MCU located at pixel=(8,248)
*** ERROR: Can't find huffman bitstring @ 0x00008803.1, table 1, value [0xfffffffe]
*** ERROR: Bad huffman code @ 0x00008803.0
*** ERROR: Bad scan data in MCU(0,15): Chr(Cb) CSS(0,0) @ Offset 0x00008803.1
MCU located at pixel=(0,240)
*** ERROR: Can't find huffman bitstring @ 0x00008803.2, table 1, value [0xfffffffc]
*** ERROR: Bad huffman code @ 0x00008803.1
*** ERROR: Bad scan data in MCU(0,15): Chr(Cr) CSS(0,0) @ Offset 0x00008803.2
MCU located at pixel=(0,240)
*** ERROR: Can't find huffman bitstring @ 0x00008803.3, table 0, value [0xfffffff8]
*** ERROR: Bad huffman code @ 0x00008803.2
Only reported first 20 instances of this message...
Compression stats:
Compression Ratio: 14.80:1
Bits per pixel: 1.62:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 40 ( 1%)
# codes of length 02 bits: 202 ( 4%)
# codes of length 03 bits: 3515 ( 73%)
# codes of length 04 bits: 423 ( 9%)
# codes of length 05 bits: 338 ( 7%)
# codes of length 06 bits: 228 ( 5%)
# codes of length 07 bits: 54 ( 1%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 20 ( 1%)
# codes of length 02 bits: 1657 ( 69%)
# codes of length 03 bits: 311 ( 13%)
# codes of length 04 bits: 232 ( 10%)
# codes of length 05 bits: 123 ( 5%)
# codes of length 06 bits: 49 ( 2%)
# codes of length 07 bits: 8 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 32135 ( 43%)
# codes of length 03 bits: 8668 ( 12%)
# codes of length 04 bits: 15771 ( 21%)
# codes of length 05 bits: 7559 ( 10%)
# codes of length 06 bits: 2518 ( 3%)
# codes of length 07 bits: 3834 ( 5%)
# codes of length 08 bits: 1387 ( 2%)
# codes of length 09 bits: 1122 ( 2%)
# codes of length 10 bits: 562 ( 1%)
# codes of length 11 bits: 234 ( 0%)
# codes of length 12 bits: 131 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 57 ( 0%)
# codes of length 16 bits: 286 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 4525 ( 57%)
# codes of length 03 bits: 1153 ( 14%)
# codes of length 04 bits: 1341 ( 17%)
# codes of length 05 bits: 543 ( 7%)
# codes of length 06 bits: 281 ( 4%)
# codes of length 07 bits: 14 ( 0%)
# codes of length 08 bits: 93 ( 1%)
# codes of length 09 bits: 23 ( 0%)
# codes of length 10 bits: 3 ( 0%)
# codes of length 11 bits: 3 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 2 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[103] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1014, -3, -27] RGB=[248,255,252] @ MCU[ 0, 13]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 1
Next position in scan buffer: Offset 0x0001210E.0
*** Skipped 10 marker pad bytes ***
*** Marker: RST# ***
OFFSET: 0x0000880D
WARNING: Restart marker [0xFFD0] detected outside scan
Stopping decode
Use [Img Search Fwd/Rev] to locate other valid embedded JPEGs
*** Searching Compression Signatures ***
Signature: 013BA18D5561625796E986FDBC09F846
Signature (Rotated): 01AC57E12793DFA7C46C704625C5AF0F
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[??? ] [Treo 680 ] [ ] Yes
CAM:[Canon ] [Canon PowerShot Pro1 ] [fine ] No
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[NIKON ] [E3100 ] [FINE ] No
CAM:[NIKON ] [E4500 ] [FINE ] No
CAM:[NIKON ] [E5000 ] [FINE ] No
CAM:[NIKON ] [E5700 ] [FINE ] No
CAM:[NIKON ] [E775 ] [FINE ] No
CAM:[NIKON ] [E885 ] [FINE ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[PENTAX ] [PENTAX Optio 550 ] [ ] No
CAM:[Research In Motion ] [BlackBerry 9530 ] [Superfine ] Yes
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
CAM:[SONY ] [DSC-H7 ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
CAM:[SONY ] [DSC-S90 ] [ ] No
CAM:[SONY ] [DSC-W1 ] [ ] No
CAM:[SONY ] [SONY ] [ ] No
SW :[ACDSee ] [ ]
SW :[FixFoto ] [fine ]
SW :[IJG Library ] [090 ]
SW :[ZoomBrowser EX ] [high ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [090 ]
SW :[IrfanView ] [090 ]
SW :[idImager ] [090 ]
SW :[FastStone Image Viewer ] [090 ]
SW :[NeatImage ] [090 ]
SW :[Paint.NET ] [090 ]
SW :[Photomatix ] [090 ]
SW :[XnView ] [090 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]
*** Additional Info ***
NOTE: Data exists after EOF, range: 0x00000000-0x00012301 (74497 bytes)

435
tests/Images/Input/Jpg/baseline/JpegSnoopReports/cmyk.jpg.txt

@ -0,0 +1,435 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\cmyk.jpg]
Filesize: [2531270] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 300 x 300 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP14 (xFFEE) ***
OFFSET: 0x00000014
Length = 14
DCTEncodeVersion = 100
APP14Flags0 = 0
APP14Flags1 = 0
ColorTransform = 0 [Unknown (RGB or CMYK)]
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00000024
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 29
Profile Size : 1829080 bytes
Preferred CMM Type : 'HDM ' (0x48444D20)
Profile Version : 0.2.4.0 (0x02400000)
Profile Device/Class : Output Device profile ('prtr' (0x70727472))
Data Colour Space : cmykData ('CMYK' (0x434D594B))
Profile connection space (PCS) : 'Lab ' (0x4C616220)
Profile creation date : 2007-02-28 08:00:00
Profile file signature : 'acsp' (0x61637370)
Primary platform : ? (0x00000000) ('....' (0x00000000))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : '....' (0x00000000)
Device Model : '....' (0x00000000)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Media-Relative Colorimetric
Profile creator : 'HDM ' (0x48444D20)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0000FE1E
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 2 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0001FC18
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 3 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0002FA12
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 4 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0003F80C
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 5 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0004F606
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 6 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0005F400
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 7 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0006F1FA
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 8 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0007EFF4
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 9 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0008EDEE
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 10 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0009EBE8
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 11 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000AE9E2
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 12 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000BE7DC
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 13 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000CE5D6
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 14 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000DE3D0
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 15 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000EE1CA
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 16 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000FDFC4
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 17 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0010DDBE
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 18 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0011DBB8
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 19 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0012D9B2
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 20 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0013D7AC
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 21 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0014D5A6
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 22 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0015D3A0
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 23 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0016D19A
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 24 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0017CF94
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 25 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0018CD8E
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 26 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0019CB88
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 27 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x001AC982
Length = 65016
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 28 of 29
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x001BC77C
Length = 9096
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 29 of 29
Only support decode of 1st ICC Marker
*** Marker: APP13 (xFFED) ***
OFFSET: 0x001BEB06
Length = 188
Identifier = [Photoshop 3.0]
8BIM: [0x0404] Name="" Len=[0x009F] DefinedName="IPTC-NAA record"
IPTC [002:025] Keywords = "jpeg, productbeelden, productie, ptc, ptc369x1, pulsar"
IPTC [002:210] ? = ???
IPTC [002:211] ? = ???
IPTC [002:212] ? = ???
IPTC [002:213] ? = ???
IPTC [002:214] ? = ???
IPTC [002:215] ? = ???
IPTC [002:216] ? = ???
IPTC [002:217] ? = ???
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x001BEBC4
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 1 1 1 1 1 1 1 1
DQT, Row #1: 1 1 1 1 1 1 1 1
DQT, Row #2: 1 1 1 1 1 1 1 1
DQT, Row #3: 1 1 1 1 1 1 1 1
DQT, Row #4: 1 1 1 1 1 1 1 1
DQT, Row #5: 1 1 1 1 1 1 1 1
DQT, Row #6: 1 1 1 1 1 1 1 1
DQT, Row #7: 1 1 1 1 1 1 1 1
Approx quality factor = 100.00 (scaling=2.99 variance=6.13)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x001BEC09
Frame header length = 20
Precision = 8
Number of Lines = 900
Samples per Line = 414
Image Size = 414 x 900
Raw Image Orientation = Portrait
Number of Img components = 4
Component[1]: ID=0x43, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Y)
Component[2]: ID=0x4D, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Cb)
Component[3]: ID=0x59, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Cr)
Component[4]: ID=0x4B, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (K)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x001BEC1F
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x001BEC40
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x001BECF7
Scan header length = 14
Number of img components = 4
Component[1]: selector=0x43, table=0(DC),0(AC)
Component[2]: selector=0x4D, table=0(DC),0(AC)
Component[3]: selector=0x59, table=0(DC),0(AC)
Component[4]: selector=0x4B, table=0(DC),0(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support CMYK files yet.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00269FC4
*** Searching Compression Signatures ***
Signature: 01BC2BB6764A7F9709F829E766D93AAE
Signature (Rotated): 01BC2BB6764A7F9709F829E766D93AAE
File Offset: 0 bytes
Chroma subsampling: ?x?
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[IJG Library ] [100 Gray ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [100 Gray ]
SW :[IrfanView ] [100 Gray ]
SW :[idImager ] [100 Gray ]
SW :[FastStone Image Viewer ] [100 Gray ]
SW :[NeatImage ] [100 Gray ]
SW :[Paint.NET ] [100 Gray ]
SW :[Photomatix ] [100 Gray ]
SW :[XnView ] [100 Gray ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

454
tests/Images/Input/Jpg/baseline/JpegSnoopReports/exif.jpg.txt

@ -0,0 +1,454 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\exif.jpg]
Filesize: [32764] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 72 x 72 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 7678
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x0009
[Make ] = "Canon"
[Model ] = "Canon PowerShot S40"
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 180/1
[YResolution ] = 180/1
[ResolutionUnit ] = Inch
[DateTime ] = "2003:12:14 12:01:44"
[YCbCrPositioning ] = Centered
[ExifOffset ] = @ 0x00C4
Offset to Next IFD = 0x000005BE
EXIF IFD1 @ Absolute 0x000005DC
Dir Length = 0x0006
[Compression ] = JPEG
[XResolution ] = 180/1
[YResolution ] = 180/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x07F4 = @ 0x0812
[JpegIFByteCount ] = 0x[00001548] / 5448
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000000E2
Dir Length = 0x001F
[ExposureTime ] = 1/500 s
[FNumber ] = F4.9
[ExifVersion ] = 02.20
[DateTimeOriginal ] = "2003:12:14 12:01:44"
[DateTimeDigitized ] = "2003:12:14 12:01:44"
[ComponentsConfiguration ] = [Y Cb Cr .]
[CompressedBitsPerPixel ] = 5/1
[ShutterSpeedValue ] = 287/32
[ApertureValue ] = 149/32
[ExposureBiasValue ] = 0.00 eV
[MaxApertureValue ] = 194698/65536
[MeteringMode ] = CenterWeightedAverage
[Flash ] = Flash did not fire
[FocalLength ] = 21 mm
[MakerNote ] = @ 0x03AE
[UserComment ] = ""
[FlashPixVersion ] = 01.00
[ColorSpace ] = sRGB
[ExifImageWidth ] = 2272
[ExifImageHeight ] = 1704
[ExifInteroperabilityOffset ] = @ 0x0588
[FocalPlaneXResolution ] = 2272000/280
[FocalPlaneYResolution ] = 1704000/210
[FocalPlaneResolutionUnit ] = Inch
[SensingMethod ] = One-chip color area sensor
[FileSource ] = DSC
[CustomRendered ] = Normal process
[ExposureMode ] = Auto exposure
[WhiteBalance ] = Auto white balance
[DigitalZoomRatio ] = 2272/2272
[SceneCaptureType ] = Standard
EXIF MakerIFD @ Absolute 0x000003CC
Makernote decode option not enabled.
EXIF InteropIFD @ Absolute 0x000005A6
Dir Length = 0x0004
[InteroperabilityIndex ] = "R98"
[InteroperabilityVersion ] = 01.00
[RelatedImageWidth ] = 2272
[RelatedImageLength ] = 1704
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00001E14
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 8 6 5 8 12 20 26 31
DQT, Row #1: 6 6 7 10 13 29 30 28
DQT, Row #2: 7 7 8 12 20 29 35 28
DQT, Row #3: 7 9 11 15 26 44 40 31
DQT, Row #4: 9 11 19 28 34 55 52 39
DQT, Row #5: 12 18 28 32 41 52 57 46
DQT, Row #6: 25 32 39 44 52 61 60 51
DQT, Row #7: 36 46 48 49 56 50 52 50
Approx quality factor = 74.75 (scaling=50.51 variance=0.81)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00001E59
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 9 9 12 24 50 50 50 50
DQT, Row #1: 9 11 13 33 50 50 50 50
DQT, Row #2: 12 13 28 50 50 50 50 50
DQT, Row #3: 24 33 50 50 50 50 50 50
DQT, Row #4: 50 50 50 50 50 50 50 50
DQT, Row #5: 50 50 50 50 50 50 50 50
DQT, Row #6: 50 50 50 50 50 50 50 50
DQT, Row #7: 50 50 50 50 50 50 50 50
Approx quality factor = 74.74 (scaling=50.52 variance=0.19)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x00001E9E
Frame header length = 17
Precision = 8
Number of Lines = 360
Samples per Line = 480
Image Size = 480 x 360
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00001EB1
Huffman table length = 28
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 03
Codes of length 03 bits (005 total): 01 02 04 05 06
Codes of length 04 bits (001 total): 00
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00001ECF
Huffman table length = 65
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (002 total): 12 21
Codes of length 06 bits (004 total): 05 31 41 51
Codes of length 07 bits (004 total): 13 22 61 71
Codes of length 08 bits (004 total): 06 32 81 91
Codes of length 09 bits (004 total): 14 42 A1 B1
Codes of length 10 bits (004 total): 23 52 C1 D1
Codes of length 11 bits (005 total): 07 15 33 62 E1
Codes of length 12 bits (003 total): 43 72 F0
Codes of length 13 bits (003 total): 24 92 F1
Codes of length 14 bits (004 total): 16 34 53 82
Codes of length 15 bits (003 total): 25 83 C2
Codes of length 16 bits (000 total):
Total number of codes: 046
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00001F12
Huffman table length = 26
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 007
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00001F2E
Huffman table length = 45
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (004 total): 04 12 21 31
Codes of length 06 bits (001 total): 41
Codes of length 07 bits (004 total): 13 22 51 61
Codes of length 08 bits (002 total): 32 71
Codes of length 09 bits (002 total): 05 14
Codes of length 10 bits (002 total): 23 91
Codes of length 11 bits (001 total): F0
Codes of length 12 bits (005 total): 33 42 81 A1 B1
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 026
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00001F5D
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x00001F6B
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00007FFA.0
Compression stats:
Compression Ratio: 20.97:1
Bits per pixel: 1.14:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 509 ( 18%)
# codes of length 03 bits: 1910 ( 69%)
# codes of length 04 bits: 249 ( 9%)
# codes of length 05 bits: 87 ( 3%)
# codes of length 06 bits: 5 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 905 ( 66%)
# codes of length 03 bits: 213 ( 15%)
# codes of length 04 bits: 169 ( 12%)
# codes of length 05 bits: 84 ( 6%)
# codes of length 06 bits: 9 ( 1%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 14518 ( 48%)
# codes of length 03 bits: 2881 ( 10%)
# codes of length 04 bits: 6591 ( 22%)
# codes of length 05 bits: 2038 ( 7%)
# codes of length 06 bits: 2356 ( 8%)
# codes of length 07 bits: 926 ( 3%)
# codes of length 08 bits: 484 ( 2%)
# codes of length 09 bits: 220 ( 1%)
# codes of length 10 bits: 149 ( 0%)
# codes of length 11 bits: 76 ( 0%)
# codes of length 12 bits: 27 ( 0%)
# codes of length 13 bits: 14 ( 0%)
# codes of length 14 bits: 8 ( 0%)
# codes of length 15 bits: 3 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 2784 ( 53%)
# codes of length 03 bits: 1230 ( 24%)
# codes of length 04 bits: 370 ( 7%)
# codes of length 05 bits: 582 ( 11%)
# codes of length 06 bits: 94 ( 2%)
# codes of length 07 bits: 121 ( 2%)
# codes of length 08 bits: 26 ( 0%)
# codes of length 09 bits: 14 ( 0%)
# codes of length 10 bits: 6 ( 0%)
# codes of length 11 bits: 2 ( 0%)
# codes of length 12 bits: 5 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[122] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1008, 9, 27] RGB=[255,251,255] @ MCU[ 15, 13]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00007FF9.7
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00007FFA
*** Embedded JPEG Thumbnail ***
Offset: 0x00000812
Length: 0x00001548 (5448)
* Embedded Thumb Marker: SOI
* Embedded Thumb Marker: DQT
Length = 132
----
Precision=8 bits
Destination ID=0 (Luminance, typically)
DQT, Row #0: 9 6 5 9 13 22 29 35
DQT, Row #1: 6 6 8 11 15 33 34 30
DQT, Row #2: 8 7 9 13 22 33 39 31
DQT, Row #3: 8 9 12 16 28 49 45 34
DQT, Row #4: 10 12 21 32 39 61 58 42
DQT, Row #5: 13 19 31 36 45 58 63 51
DQT, Row #6: 28 36 44 49 58 68 66 55
DQT, Row #7: 41 52 54 55 62 56 57 54
----
Precision=8 bits
Destination ID=1 (Chrominance, typically)
DQT, Row #0: 9 9 12 20 15 26 79 79
DQT, Row #1: 9 10 12 10 26 26 79 79
DQT, Row #2: 12 12 10 10 26 79 79 79
DQT, Row #3: 20 10 10 26 79 79 79 79
DQT, Row #4: 15 26 26 79 79 79 79 79
DQT, Row #5: 26 26 79 79 79 79 79 79
DQT, Row #6: 79 79 79 79 79 79 79 79
DQT, Row #7: 79 79 79 79 79 79 79 79
* Embedded Thumb Marker: SOF
Frame header length = 17
Precision = 8
Number of Lines = 120
Samples per Line = 160
Image Size = 160 x 120
* Embedded Thumb Marker: DHT
Length = 418
* Embedded Thumb Marker: SOS
Skipping scan data
Skipped 4869 bytes
* Embedded Thumb Marker: EOI
* Embedded Thumb Signature: 01D91E583DD0037108266E42ED3A262C
*** Searching Compression Signatures ***
Signature: 0182408A81A4ABF04D4A34A8A5E98C58
Signature (Rotated): 012D821C6AB210E2A753BE053B8F55D0
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: OK [Canon] [Canon PowerShot S40]
EXIF Makernotes: OK
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[SONY ] [CYBERSHOT U ] [ ] Yes
SW :[Adobe Photoshop 7.0 ] [Save As 07 ]
SW :[Apple Quicktime ] [0466-0467 ]
SW :[Digital Photo Professiona] [05 ]
SW :[IJG Library ] [075 ]
SW :[MS Paint ] [ ]
SW :[MS Visio ] [ ]
SW :[ZoomBrowser EX ] [low ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [075 ]
SW :[IrfanView ] [075 ]
SW :[idImager ] [075 ]
SW :[FastStone Image Viewer ] [075 ]
SW :[NeatImage ] [075 ]
SW :[Paint.NET ] [075 ]
SW :[Photomatix ] [075 ]
SW :[XnView ] [075 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 4 - Uncertain if processed or original
While the EXIF fields indicate original, no compression signatures
in the current database were found matching this make/model
Appears to be new signature for known camera.
If the camera/software doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

339
tests/Images/Input/Jpg/baseline/JpegSnoopReports/gamma_dalai_lama_gray.jpg.txt

@ -0,0 +1,339 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\gamma_dalai_lama_gray.jpg]
Filesize: [84887] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 72 x 72 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: COM (Comment) (xFFFE) ***
OFFSET: 0x00000014
Comment length = 46
Comment= Scaled 1:2 this image wrongly becomes gray.
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000044
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 1 1 1 1 1 1 1 1
DQT, Row #1: 1 1 1 1 1 1 1 1
DQT, Row #2: 1 1 1 1 1 1 1 1
DQT, Row #3: 1 1 1 1 1 1 1 1
DQT, Row #4: 1 1 1 1 1 1 1 1
DQT, Row #5: 1 1 1 1 1 1 1 1
DQT, Row #6: 1 1 1 1 1 1 1 1
DQT, Row #7: 1 1 1 1 1 1 1 1
Approx quality factor = 100.00 (scaling=2.99 variance=6.13)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000089
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 1 1 1 1 1 1 1 1
DQT, Row #1: 1 1 1 1 1 1 1 1
DQT, Row #2: 1 1 1 1 1 1 1 1
DQT, Row #3: 1 1 1 1 1 1 1 1
DQT, Row #4: 1 1 1 1 1 1 1 1
DQT, Row #5: 1 1 1 1 1 1 1 1
DQT, Row #6: 1 1 1 1 1 1 1 1
DQT, Row #7: 1 1 1 1 1 1 1 1
Approx quality factor = 100.00 (scaling=1.54 variance=1.58)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x000000CE
Frame header length = 17
Precision = 8
Number of Lines = 222
Samples per Line = 258
Image Size = 258 x 222
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000E1
Huffman table length = 25
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (003 total): 01 02 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 006
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000FC
Huffman table length = 111
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (002 total): 04 11
Codes of length 05 bits (002 total): 05 21
Codes of length 06 bits (007 total): 00 06 12 13 14 31 41
Codes of length 07 bits (003 total): 22 51 61
Codes of length 08 bits (007 total): 07 15 16 32 42 71 81
Codes of length 09 bits (005 total): 08 23 52 62 91
Codes of length 10 bits (008 total): 33 43 44 72 A1 A2 B1 E3
Codes of length 11 bits (010 total): 17 24 53 54 55 66 82 92 95 C1
Codes of length 12 bits (009 total): 18 25 28 34 45 56 63 64 65
Codes of length 13 bits (014 total): 26 27 46 73 76 85 93 96 A3 A5 A6 C3 C7 D7
Codes of length 14 bits (010 total): 83 86 B2 B3 B8 C6 D3 D6 E8 F0
Codes of length 15 bits (011 total): 36 37 48 74 75 84 94 A8 B4 B6 D1
Codes of length 16 bits (001 total): D2
Total number of codes: 092
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000016D
Huffman table length = 27
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 04
Codes of length 06 bits (001 total): 05
Codes of length 07 bits (001 total): 06
Codes of length 08 bits (001 total): 07
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 008
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000018A
Huffman table length = 121
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 02 03 04
Codes of length 04 bits (002 total): 05 11
Codes of length 05 bits (002 total): 06 21
Codes of length 06 bits (005 total): 07 08 12 13 31
Codes of length 07 bits (009 total): 00 09 14 16 17 22 32 41 51
Codes of length 08 bits (005 total): 0A 15 23 42 61
Codes of length 09 bits (005 total): 18 24 33 52 71
Codes of length 10 bits (002 total): 62 81
Codes of length 11 bits (007 total): 19 34 43 53 72 82 91
Codes of length 12 bits (007 total): 25 44 54 56 63 A1 A2
Codes of length 13 bits (014 total): 1A 26 27 28 46 47 55 57 64 73 97 B1 E3 E6
Codes of length 14 bits (007 total): 35 45 48 58 92 A4 C1
Codes of length 15 bits (002 total): D8 29
Codes of length 16 bits (031 total): 67 74 83 85 93 94 B2 36 68 87 88 98 D6 F0 37 39
65 66 75 78 84 96 A3 A6 A8 C3 C9 D1 D3 D9 DA
Total number of codes: 102
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000205
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x00000213
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00014B95.0
Compression stats:
Compression Ratio: 2.04:1
Bits per pixel: 11.78:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 893 ( 97%)
# codes of length 02 bits: 0 ( 0%)
# codes of length 03 bits: 23 ( 2%)
# codes of length 04 bits: 4 ( 0%)
# codes of length 05 bits: 4 ( 0%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 1728 ( 94%)
# codes of length 02 bits: 46 ( 2%)
# codes of length 03 bits: 30 ( 2%)
# codes of length 04 bits: 18 ( 1%)
# codes of length 05 bits: 14 ( 1%)
# codes of length 06 bits: 6 ( 0%)
# codes of length 07 bits: 4 ( 0%)
# codes of length 08 bits: 2 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 14381 ( 45%)
# codes of length 03 bits: 3819 ( 12%)
# codes of length 04 bits: 4489 ( 14%)
# codes of length 05 bits: 2199 ( 7%)
# codes of length 06 bits: 3836 ( 12%)
# codes of length 07 bits: 911 ( 3%)
# codes of length 08 bits: 1089 ( 3%)
# codes of length 09 bits: 398 ( 1%)
# codes of length 10 bits: 294 ( 1%)
# codes of length 11 bits: 190 ( 1%)
# codes of length 12 bits: 84 ( 0%)
# codes of length 13 bits: 75 ( 0%)
# codes of length 14 bits: 21 ( 0%)
# codes of length 15 bits: 11 ( 0%)
# codes of length 16 bits: 1 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 17100 ( 23%)
# codes of length 03 bits: 31709 ( 42%)
# codes of length 04 bits: 7638 ( 10%)
# codes of length 05 bits: 4203 ( 6%)
# codes of length 06 bits: 6465 ( 9%)
# codes of length 07 bits: 5462 ( 7%)
# codes of length 08 bits: 1472 ( 2%)
# codes of length 09 bits: 804 ( 1%)
# codes of length 10 bits: 206 ( 0%)
# codes of length 11 bits: 296 ( 0%)
# codes of length 12 bits: 156 ( 0%)
# codes of length 13 bits: 164 ( 0%)
# codes of length 14 bits: 47 ( 0%)
# codes of length 15 bits: 7 ( 0%)
# codes of length 16 bits: 55 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[125] (range: 0..255)
Brightest Pixel Search:
YCC=[ -8, 0, 0] RGB=[127,127,127] @ MCU[ 0, 0]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00014B94.4
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00014B95
*** Searching Compression Signatures ***
Signature: 01BBB1709AC9C1F89220D955A31A8F34
Signature (Rotated): 01BBB1709AC9C1F89220D955A31A8F34
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[CASIO COMPUTER CO.,LTD ] [EX-Z750 ] [ ] No
CAM:[CASIO COMPUTER CO.,LTD. ] [EX-Z1000 ] [ ] No
CAM:[PENTAX ] [PENTAX Optio S5i ] [ ] No
CAM:[SIGMA ] [SIGMA SD9 ] [ ] No
SW :[ACDSee ] [100 ]
SW :[Apple ImageIO.framework ] [100 (Best) ]
SW :[Digital Photo Professiona] [10 ]
SW :[IJG Library ] [100 ]
SW :[MS Office Pic Mgr ] [ ]
SW :[Nikon Scan ] [Excellent Qualit]
SW :[Picasa ] [100 (Maximum) ]
SW :[ZoomBrowser EX ] [highest ]
SW :[EOS Viewer Utility ] [ ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [100 ]
SW :[IrfanView ] [100 ]
SW :[idImager ] [100 ]
SW :[FastStone Image Viewer ] [100 ]
SW :[NeatImage ] [100 ]
SW :[Paint.NET ] [100 ]
SW :[Photomatix ] [100 ]
SW :[XnView ] [100 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

211
tests/Images/Input/Jpg/baseline/JpegSnoopReports/jpeg400jfif.jpg.txt

@ -0,0 +1,211 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\jpeg400jfif.jpg]
Filesize: [45066] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.2]
density = 300 x 300 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 4 4 6 9 11 12 16
DQT, Row #1: 4 5 5 6 8 10 12 12
DQT, Row #2: 4 5 5 6 10 12 12 12
DQT, Row #3: 6 6 6 11 12 12 12 12
DQT, Row #4: 9 8 10 12 12 12 12 12
DQT, Row #5: 11 10 12 12 12 12 12 12
DQT, Row #6: 12 12 12 12 12 12 12 12
DQT, Row #7: 16 12 12 12 12 12 12 12
Approx quality factor = 88.28 (scaling=23.43 variance=111.68)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x00000059
Frame header length = 11
Precision = 8
Number of Lines = 800
Samples per Line = 600
Image Size = 600 x 800
Raw Image Orientation = Portrait
Number of Img components = 1
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
*** Marker: DRI (Restart Interval) (xFFDD) ***
OFFSET: 0x00000066
Length = 4
interval = 75
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000006C
Huffman table length = 210
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (000 total):
Codes of length 03 bits (007 total): 04 05 03 02 06 01 00
Codes of length 04 bits (001 total): 07
Codes of length 05 bits (001 total): 08
Codes of length 06 bits (001 total): 09
Codes of length 07 bits (001 total): 0A
Codes of length 08 bits (001 total): 0B
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 11 04 00
Codes of length 05 bits (003 total): 05 21 12
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 51 06 13 61
Codes of length 08 bits (002 total): 22 71
Codes of length 09 bits (006 total): 81 14 32 91 A1 07
Codes of length 10 bits (007 total): 15 B1 42 23 C1 52 D1
Codes of length 11 bits (003 total): E1 33 16
Codes of length 12 bits (004 total): 62 F0 24 72
Codes of length 13 bits (002 total): 82 F1
Codes of length 14 bits (006 total): 25 43 34 53 92 A2
Codes of length 15 bits (002 total): B2 63
Codes of length 16 bits (115 total): 73 C2 35 44 27 93 A3 B3 36 17 54 64 74 C3 D2 E2
08 26 83 09 0A 18 19 84 94 45 46 A4 B4 56 D3 55
28 1A F2 E3 F3 C4 D4 E4 F4 65 75 85 95 A5 B5 C5
D5 E5 F5 66 76 86 96 A6 B6 C6 D6 E6 F6 37 47 57
67 77 87 97 A7 B7 C7 D7 E7 F7 38 48 58 68 78 88
98 A8 B8 C8 D8 E8 F8 29 39 49 59 69 79 89 99 A9
B9 C9 D9 E9 F9 2A 3A 4A 5A 6A 7A 8A 9A AA BA CA
DA EA FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000140
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x0000014A
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x0000B008.0
Compression stats:
Compression Ratio: 10.73:1
Bits per pixel: 0.75:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 0 ( 0%)
# codes of length 03 bits: 7215 ( 96%)
# codes of length 04 bits: 146 ( 2%)
# codes of length 05 bits: 139 ( 2%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 26194 ( 42%)
# codes of length 03 bits: 2772 ( 4%)
# codes of length 04 bits: 16626 ( 27%)
# codes of length 05 bits: 5914 ( 9%)
# codes of length 06 bits: 4996 ( 8%)
# codes of length 07 bits: 2599 ( 4%)
# codes of length 08 bits: 988 ( 2%)
# codes of length 09 bits: 1360 ( 2%)
# codes of length 10 bits: 617 ( 1%)
# codes of length 11 bits: 60 ( 0%)
# codes of length 12 bits: 152 ( 0%)
# codes of length 13 bits: 60 ( 0%)
# codes of length 14 bits: 30 ( 0%)
# codes of length 15 bits: 5 ( 0%)
# codes of length 16 bits: 28 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[ 58] (range: 0..255)
Brightest Pixel Search:
YCC=[ 894, 0, 0] RGB=[239,239,239] @ MCU[ 35, 23]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 99
Next position in scan buffer: Offset 0x0000B007.2
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000B008
*** Searching Compression Signatures ***
Signature: 01BE82BEB1019CB30EB122273E78E87C
Signature (Rotated): 01BE82BEB1019CB30EB122273E78E87C
File Offset: 0 bytes
Chroma subsampling: Gray
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

412
tests/Images/Input/Jpg/baseline/JpegSnoopReports/jpeg420exif.jpg.txt

@ -0,0 +1,412 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\jpeg420exif.jpg]
Filesize: [768608] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000002
Length = 8817
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000014
Dir Length = 0x0008
[Make ] = "Hewlett-Packard Company"
[Model ] = "HP PhotoSmart 715"
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 72/1
[YResolution ] = 72/1
[ResolutionUnit ] = Inch
[YCbCrPositioning ] = Centered
[ExifOffset ] = @ 0x006E
Offset to Next IFD = 0x0000018E
EXIF IFD1 @ Absolute 0x0000019A
Dir Length = 0x0007
[Compression ] = JPEG
[XResolution ] = 72/1
[YResolution ] = 72/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x0C07 = @ 0x0C13
[JpegIFByteCount ] = 0x[00001658] / 5720
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x0000007A
Dir Length = 0x0015
[ExposureTime ] = 48/10000 s
[FNumber ] = F8.2
[ISOSpeedRatings ] = 100
[ExifVersion ] = 02.10
[DateTimeOriginal ] = "2001:10:02 14:57:31"
[DateTimeDigitized ] = "2001:10:02 14:57:31"
[ComponentsConfiguration ] = [Y Cb Cr .]
[CompressedBitsPerPixel ] = 20/10
[ExposureBiasValue ] = 0.00 eV
[MaxApertureValue ] = 20/10
[SubjectDistance ] = 5043/1000
[MeteringMode ] = CenterWeightedAverage
[LightSource ] = unknown
[Flash ] = Flash did not fire
[FocalLength ] = 7 mm
[MakerNote ] = @ 0x0282
[FlashPixVersion ] = 01.00
[ColorSpace ] = sRGB
[ExifImageWidth ] = 2048
[ExifImageHeight ] = 1536
[ExifInteroperabilityOffset ] = @ 0x0170
EXIF MakerIFD @ Absolute 0x0000028E
Makernote decode option not enabled.
EXIF InteropIFD @ Absolute 0x0000017C
Dir Length = 0x0002
[InteroperabilityIndex ] = "R98"
[InteroperabilityVersion ] = 01.00
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00002275
Table length = 132
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 3 2 2 3 5 9 11 14
DQT, Row #1: 3 3 3 4 5 12 13 12
DQT, Row #2: 3 3 3 5 9 12 15 12
DQT, Row #3: 3 3 5 6 11 19 18 13
DQT, Row #4: 3 5 7 12 15 24 23 17
DQT, Row #5: 5 7 12 14 18 23 25 21
DQT, Row #6: 11 14 17 19 23 27 27 22
DQT, Row #7: 16 21 21 22 25 22 23 22
Approx quality factor = 89.24 (scaling=21.52 variance=2.21)
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 3 3 5 10 22 22 22 22
DQT, Row #1: 3 5 5 14 22 22 22 22
DQT, Row #2: 5 5 11 22 22 22 22 22
DQT, Row #3: 10 14 22 22 22 22 22 22
DQT, Row #4: 22 22 22 22 22 22 22 22
DQT, Row #5: 22 22 22 22 22 22 22 22
DQT, Row #6: 22 22 22 22 22 22 22 22
DQT, Row #7: 22 22 22 22 22 22 22 22
Approx quality factor = 89.12 (scaling=21.76 variance=1.62)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000022FB
Huffman table length = 418
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0000249F
Frame header length = 17
Precision = 8
Number of Lines = 1536
Samples per Line = 2048
Image Size = 2048 x 1536
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000024B2
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x000024C0
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x000BBA5E.0
Compression stats:
Compression Ratio: 12.43:1
Bits per pixel: 1.93:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 4275 ( 9%)
# codes of length 03 bits: 32688 ( 67%)
# codes of length 04 bits: 5786 ( 12%)
# codes of length 05 bits: 3984 ( 8%)
# codes of length 06 bits: 2042 ( 4%)
# codes of length 07 bits: 377 ( 1%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 16194 ( 66%)
# codes of length 03 bits: 3495 ( 14%)
# codes of length 04 bits: 2416 ( 10%)
# codes of length 05 bits: 1460 ( 6%)
# codes of length 06 bits: 736 ( 3%)
# codes of length 07 bits: 261 ( 1%)
# codes of length 08 bits: 14 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 363342 ( 41%)
# codes of length 03 bits: 113855 ( 13%)
# codes of length 04 bits: 200569 ( 23%)
# codes of length 05 bits: 102577 ( 12%)
# codes of length 06 bits: 32874 ( 4%)
# codes of length 07 bits: 43593 ( 5%)
# codes of length 08 bits: 14054 ( 2%)
# codes of length 09 bits: 8847 ( 1%)
# codes of length 10 bits: 4365 ( 0%)
# codes of length 11 bits: 2009 ( 0%)
# codes of length 12 bits: 770 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 17 ( 0%)
# codes of length 16 bits: 780 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 60258 ( 49%)
# codes of length 03 bits: 17570 ( 14%)
# codes of length 04 bits: 20881 ( 17%)
# codes of length 05 bits: 14001 ( 11%)
# codes of length 06 bits: 6443 ( 5%)
# codes of length 07 bits: 842 ( 1%)
# codes of length 08 bits: 1737 ( 1%)
# codes of length 09 bits: 387 ( 0%)
# codes of length 10 bits: 169 ( 0%)
# codes of length 11 bits: 93 ( 0%)
# codes of length 12 bits: 31 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 2 ( 0%)
# codes of length 15 bits: 5 ( 0%)
# codes of length 16 bits: 1 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[108] (range: 0..255)
Brightest Pixel Search:
YCC=[ 996, 0, -33] RGB=[244,255,252] @ MCU[ 32, 59]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x000BBA5D.5
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x000BBA5E
*** Embedded JPEG Thumbnail ***
Offset: 0x00000C13
Length: 0x00001658 (5720)
* Embedded Thumb Marker: SOI
* Embedded Thumb Marker: DQT
Length = 132
----
Precision=8 bits
Destination ID=0 (Luminance, typically)
DQT, Row #0: 10 6 6 10 14 26 32 40
DQT, Row #1: 8 8 8 12 16 36 38 36
DQT, Row #2: 8 8 10 14 26 36 44 36
DQT, Row #3: 8 10 14 18 32 56 52 40
DQT, Row #4: 10 14 22 36 44 70 66 50
DQT, Row #5: 14 22 36 42 52 68 74 60
DQT, Row #6: 32 42 50 56 66 78 78 64
DQT, Row #7: 46 60 62 64 74 64 66 64
----
Precision=8 bits
Destination ID=1 (Chrominance, typically)
DQT, Row #0: 10 10 14 30 64 64 64 64
DQT, Row #1: 10 14 16 42 64 64 64 64
DQT, Row #2: 14 16 36 64 64 64 64 64
DQT, Row #3: 30 42 64 64 64 64 64 64
DQT, Row #4: 64 64 64 64 64 64 64 64
DQT, Row #5: 64 64 64 64 64 64 64 64
DQT, Row #6: 64 64 64 64 64 64 64 64
DQT, Row #7: 64 64 64 64 64 64 64 64
* Embedded Thumb Marker: DHT
Length = 418
* Embedded Thumb Marker: SOF
Frame header length = 17
Precision = 8
Number of Lines = 120
Samples per Line = 160
Image Size = 160 x 120
* Embedded Thumb Marker: SOS
Skipping scan data
Skipped 5141 bytes
* Embedded Thumb Marker: EOI
* Embedded Thumb Signature: 0158E595F22440126FB766B33F56B158
*** Searching Compression Signatures ***
Signature: 010A5B03EB73D6AF719B39FCC8C3AE25
Signature (Rotated): 011326BE69D2A27FCF4DBCC33DEB07A2
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: OK [Hewlett-Packard Company] [HP PhotoSmart 715]
EXIF Makernotes: OK
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 4 - Uncertain if processed or original
While the EXIF fields indicate original, no compression signatures
in the current database were found matching this make/model
Appears to be new signature for known camera.
If the camera/software doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

330
tests/Images/Input/Jpg/baseline/JpegSnoopReports/jpeg420small.jpg.txt

@ -0,0 +1,330 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\jpeg420small.jpg]
Filesize: [5276] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 96 x 96 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 5 3 3 5 7 12 15 18
DQT, Row #1: 4 4 4 6 8 17 18 17
DQT, Row #2: 4 4 5 7 12 17 21 17
DQT, Row #3: 4 5 7 9 15 26 24 19
DQT, Row #4: 5 7 11 17 20 33 31 23
DQT, Row #5: 7 11 17 19 24 31 34 28
DQT, Row #6: 15 19 23 26 31 36 36 30
DQT, Row #7: 22 28 29 29 34 30 31 30
Approx quality factor = 84.93 (scaling=30.13 variance=1.05)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 5 5 7 14 30 30 30 30
DQT, Row #1: 5 6 8 20 30 30 30 30
DQT, Row #2: 7 8 17 30 30 30 30 30
DQT, Row #3: 14 20 30 30 30 30 30 30
DQT, Row #4: 30 30 30 30 30 30 30 30
DQT, Row #5: 30 30 30 30 30 30 30 30
DQT, Row #6: 30 30 30 30 30 30 30 30
DQT, Row #7: 30 30 30 30 30 30 30 30
Approx quality factor = 84.93 (scaling=30.15 variance=0.29)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 100
Samples per Line = 200
Image Size = 200 x 100
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 28
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 04
Codes of length 03 bits (005 total): 00 02 03 05 07
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 01
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000CF
Huffman table length = 66
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 11 21
Codes of length 05 bits (002 total): 04 12
Codes of length 06 bits (004 total): 05 06 31 41
Codes of length 07 bits (004 total): 07 13 22 51
Codes of length 08 bits (002 total): 32 61
Codes of length 09 bits (005 total): 71 72 B1 D1 D2
Codes of length 10 bits (007 total): 14 23 33 62 81 91 A1
Codes of length 11 bits (010 total): 15 16 24 25 34 42 44 82 92 A2
Codes of length 12 bits (007 total): 26 52 53 54 64 94 C2
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 047
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000113
Huffman table length = 28
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 06 07
Codes of length 03 bits (002 total): 04 05
Codes of length 04 bits (003 total): 00 03 08
Codes of length 05 bits (001 total): 01
Codes of length 06 bits (001 total): 02
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000131
Huffman table length = 63
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 00 02
Codes of length 04 bits (002 total): 03 04
Codes of length 05 bits (004 total): 05 06 11 21
Codes of length 06 bits (007 total): 07 12 34 51 61 72 B1
Codes of length 07 bits (014 total): 13 15 16 17 31 32 33 35 41 53 71 91 92 D1
Codes of length 08 bits (004 total): 22 62 C1 E1
Codes of length 09 bits (006 total): 14 52 54 81 82 B2
Codes of length 10 bits (003 total): 36 42 C2
Codes of length 11 bits (001 total): F0
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 044
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000172
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x00000180
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x0000149A.0
Compression stats:
Compression Ratio: 12.27:1
Bits per pixel: 1.96:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 69 ( 19%)
# codes of length 03 bits: 232 ( 64%)
# codes of length 04 bits: 34 ( 9%)
# codes of length 05 bits: 19 ( 5%)
# codes of length 06 bits: 10 ( 3%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 76 ( 42%)
# codes of length 03 bits: 60 ( 33%)
# codes of length 04 bits: 36 ( 20%)
# codes of length 05 bits: 5 ( 3%)
# codes of length 06 bits: 5 ( 3%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 2698 ( 51%)
# codes of length 03 bits: 506 ( 10%)
# codes of length 04 bits: 1064 ( 20%)
# codes of length 05 bits: 373 ( 7%)
# codes of length 06 bits: 334 ( 6%)
# codes of length 07 bits: 133 ( 3%)
# codes of length 08 bits: 37 ( 1%)
# codes of length 09 bits: 43 ( 1%)
# codes of length 10 bits: 33 ( 1%)
# codes of length 11 bits: 26 ( 0%)
# codes of length 12 bits: 7 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 276 ( 20%)
# codes of length 03 bits: 340 ( 25%)
# codes of length 04 bits: 214 ( 15%)
# codes of length 05 bits: 190 ( 14%)
# codes of length 06 bits: 141 ( 10%)
# codes of length 07 bits: 170 ( 12%)
# codes of length 08 bits: 29 ( 2%)
# codes of length 09 bits: 17 ( 1%)
# codes of length 10 bits: 6 ( 0%)
# codes of length 11 bits: 1 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[ 86] (range: 0..255)
Brightest Pixel Search:
YCC=[ 250, -405, 230] RGB=[198,156, 68] @ MCU[ 0, 6]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00001499.3
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000149A
*** Searching Compression Signatures ***
Signature: 0155D875C95B74D0F3C5835A62516F48
Signature (Rotated): 01D38A25358EB7649A254E19F1D46600
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[Nokia ] [N73 ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C2000Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[PENTAX ] [PENTAX Optio 550 ] [ ] No
CAM:[Research In Motion ] [BlackBerry 8100 ] [ ] No
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
SW :[IJG Library ] [085 ]
SW :[Picasa ] [085 (Normal) ]
SW :[ZoomBrowser EX ] [medium ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [085 ]
SW :[IrfanView ] [085 ]
SW :[idImager ] [085 ]
SW :[FastStone Image Viewer ] [085 ]
SW :[NeatImage ] [085 ]
SW :[Paint.NET ] [085 ]
SW :[Photomatix ] [085 ]
SW :[XnView ] [085 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

405
tests/Images/Input/Jpg/baseline/JpegSnoopReports/jpeg444.jpg.txt

@ -0,0 +1,405 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\jpeg444.jpg]
Filesize: [5667] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.0]
density = 300 x 300 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 68
Identifier = [This is an unknown APP marker. Compliant decoders must ignore it.]
Identifier [This is an unknown APP marker. Compliant decoders must ignore it.] not supported. Skipping remainder.
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0000005A
Length = 68
Identifier = [This is an unknown APP marker. Compliant decoders must ignore it.]
Not supported. Skipping remainder.
*** Marker: APP3 (xFFE3) ***
OFFSET: 0x000000A0
Length = 68
*** Marker: APP4 (xFFE4) ***
OFFSET: 0x000000E6
Length = 68
*** Marker: APP5 (xFFE5) ***
OFFSET: 0x0000012C
Length = 68
*** Marker: APP6 (xFFE6) ***
OFFSET: 0x00000172
Length = 68
*** Marker: APP7 (xFFE7) ***
OFFSET: 0x000001B8
Length = 68
*** Marker: APP8 (xFFE8) ***
OFFSET: 0x000001FE
Length = 68
*** Marker: APP9 (xFFE9) ***
OFFSET: 0x00000244
Length = 68
*** Marker: APP10 (xFFEA) ***
OFFSET: 0x0000028A
Length = 68
*** Marker: APP11 (xFFEB) ***
OFFSET: 0x000002D0
Length = 68
*** Marker: APP12 (xFFEC) ***
OFFSET: 0x00000316
Length = 68
Identifier = [This is an unknown APP marker. Compliant decoders must ignore it.]
Not Photoshop DUCKY. Skipping remainder.
*** Marker: APP13 (xFFED) ***
OFFSET: 0x0000035C
Length = 68
Identifier = [This is an unknown APP marker. Compliant decoders must ignore it.]
Not Photoshop. Skipping remainder.
*** Marker: APP14 (xFFEE) ***
OFFSET: 0x000003A2
Length = 68
DCTEncodeVersion = 26995
APP14Flags0 = 8289
APP14Flags1 = 28192
ColorTransform = 117 [???]
*** Marker: APP15 (xFFEF) ***
OFFSET: 0x000003E8
Length = 68
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0000042E
Frame header length = 17
Precision = 8
Number of Lines = 256
Samples per Line = 256
Image Size = 256 x 256
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x00, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x02 (Chrom: Cr)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000441
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 8 6 5 8 12 20 26 31
DQT, Row #1: 6 6 7 10 13 29 30 28
DQT, Row #2: 7 7 8 12 20 29 35 28
DQT, Row #3: 7 9 11 15 26 44 40 31
DQT, Row #4: 9 11 19 28 34 55 52 39
DQT, Row #5: 12 18 28 32 41 52 57 46
DQT, Row #6: 25 32 39 44 52 61 60 51
DQT, Row #7: 36 46 48 49 56 50 52 50
Approx quality factor = 74.75 (scaling=50.51 variance=0.81)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000486
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 9 9 12 24 50 50 50 50
DQT, Row #1: 9 11 13 33 50 50 50 50
DQT, Row #2: 12 13 28 50 50 50 50 50
DQT, Row #3: 24 33 50 50 50 50 50 50
DQT, Row #4: 50 50 50 50 50 50 50 50
DQT, Row #5: 50 50 50 50 50 50 50 50
DQT, Row #6: 50 50 50 50 50 50 50 50
DQT, Row #7: 50 50 50 50 50 50 50 50
Approx quality factor = 74.74 (scaling=50.52 variance=0.19)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000004CB
Table length = 67
----
Precision=8 bits
Destination ID=2 (Chrominance)
DQT, Row #0: 9 9 12 24 50 50 50 50
DQT, Row #1: 9 11 13 33 50 50 50 50
DQT, Row #2: 12 13 28 50 50 50 50 50
DQT, Row #3: 24 33 50 50 50 50 50 50
DQT, Row #4: 50 50 50 50 50 50 50 50
DQT, Row #5: 50 50 50 50 50 50 50 50
DQT, Row #6: 50 50 50 50 50 50 50 50
DQT, Row #7: 50 50 50 50 50 50 50 50
Approx quality factor = 74.74 (scaling=50.52 variance=0.19)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000510
Huffman table length = 418
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000006B4
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),1(AC)
Component[3]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x000006C2
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00001620.0
Compression stats:
Compression Ratio: 49.99:1
Bits per pixel: 0.48:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 992 ( 97%)
# codes of length 03 bits: 31 ( 3%)
# codes of length 04 bits: 0 ( 0%)
# codes of length 05 bits: 1 ( 0%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 1023 ( 50%)
# codes of length 03 bits: 864 ( 42%)
# codes of length 04 bits: 128 ( 6%)
# codes of length 05 bits: 0 ( 0%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 2 ( 0%)
# codes of length 08 bits: 31 ( 2%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 0 ( 0%)
# codes of length 03 bits: 0 ( 0%)
# codes of length 04 bits: 1024 ( 50%)
# codes of length 05 bits: 1024 ( 50%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 2048 ( 67%)
# codes of length 03 bits: 1024 ( 33%)
# codes of length 04 bits: 0 ( 0%)
# codes of length 05 bits: 0 ( 0%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[126] (range: 0..255)
Brightest Pixel Search:
YCC=[ 984,-1026, -999] RGB=[ 75,255, 24] @ MCU[ 0, 31]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x0000161F.6
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00001620
*** Searching Compression Signatures ***
Signature: 019DC7724B5425C464D28F2CF78F707E
Signature (Rotated): 016C4383FFABE35F063D8FCB331942C0
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[NIKON ] [E4800 ] [NORMAL ] No
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]
*** Additional Info ***
NOTE: Data exists after EOF, range: 0x00001622-0x00001623 (1 bytes)

338
tests/Images/Input/Jpg/baseline/JpegSnoopReports/ratio-1x1.jpg.txt

@ -0,0 +1,338 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\ratio-1x1.jpg]
Filesize: [34674] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 3 2 2 3 4 6 8 10
DQT, Row #1: 2 2 2 3 4 9 10 9
DQT, Row #2: 2 2 3 4 6 9 11 9
DQT, Row #3: 2 3 4 5 8 14 13 10
DQT, Row #4: 3 4 6 9 11 17 16 12
DQT, Row #5: 4 6 9 10 13 17 18 15
DQT, Row #6: 8 10 12 14 16 19 19 16
DQT, Row #7: 12 15 15 16 18 16 16 16
Approx quality factor = 91.86 (scaling=16.28 variance=1.13)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 3 3 4 8 16 16 16 16
DQT, Row #1: 3 3 4 11 16 16 16 16
DQT, Row #2: 4 4 9 16 16 16 16 16
DQT, Row #3: 8 11 16 16 16 16 16 16
DQT, Row #4: 16 16 16 16 16 16 16 16
DQT, Row #5: 16 16 16 16 16 16 16 16
DQT, Row #6: 16 16 16 16 16 16 16 16
DQT, Row #7: 16 16 16 16 16 16 16 16
Approx quality factor = 91.90 (scaling=16.20 variance=0.15)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 769
Samples per Line = 1900
Image Size = 1900 x 769
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 29
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 07 08
Codes of length 04 bits (002 total): 06 09
Codes of length 05 bits (002 total): 04 05
Codes of length 06 bits (003 total): 01 02 03
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 010
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000D0
Huffman table length = 78
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (001 total): 01
Codes of length 04 bits (003 total): 02 03 04
Codes of length 05 bits (003 total): 05 06 11
Codes of length 06 bits (001 total): 07
Codes of length 07 bits (005 total): 08 12 21 31 41
Codes of length 08 bits (005 total): 13 14 22 51 61
Codes of length 09 bits (003 total): 15 32 71
Codes of length 10 bits (009 total): 09 16 23 52 62 81 91 92 A1
Codes of length 11 bits (005 total): 17 33 42 72 82
Codes of length 12 bits (005 total): 24 43 54 93 B3
Codes of length 13 bits (006 total): 63 73 83 A2 B2 C2
Codes of length 14 bits (003 total): 25 44 A3
Codes of length 15 bits (009 total): 34 35 36 37 64 76 B1 B4 C1
Codes of length 16 bits (000 total):
Total number of codes: 059
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000120
Huffman table length = 28
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (003 total): 05 06 07
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (000 total):
Codes of length 06 bits (003 total): 02 03 08
Codes of length 07 bits (001 total): 01
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000013E
Huffman table length = 64
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (001 total): 01
Codes of length 04 bits (002 total): 02 03
Codes of length 05 bits (003 total): 04 05 11
Codes of length 06 bits (005 total): 06 21 31 71 81
Codes of length 07 bits (003 total): 41 51 91
Codes of length 08 bits (010 total): 12 13 14 22 32 61 A1 B1 C1 D1
Codes of length 09 bits (005 total): 15 33 42 E1 F0
Codes of length 10 bits (003 total): 07 23 52
Codes of length 11 bits (004 total): 43 62 72 82
Codes of length 12 bits (002 total): 92 F1
Codes of length 13 bits (001 total): B2
Codes of length 14 bits (005 total): 16 A2 C2 D2 E2
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 045
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000180
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x0000018E
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00008770.0
Compression stats:
Compression Ratio: 127.89:1
Bits per pixel: 0.19:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 22539 ( 97%)
# codes of length 02 bits: 0 ( 0%)
# codes of length 03 bits: 379 ( 2%)
# codes of length 04 bits: 246 ( 1%)
# codes of length 05 bits: 91 ( 0%)
# codes of length 06 bits: 69 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 11012 ( 94%)
# codes of length 02 bits: 0 ( 0%)
# codes of length 03 bits: 445 ( 4%)
# codes of length 04 bits: 105 ( 1%)
# codes of length 05 bits: 0 ( 0%)
# codes of length 06 bits: 81 ( 1%)
# codes of length 07 bits: 19 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 23301 ( 56%)
# codes of length 02 bits: 0 ( 0%)
# codes of length 03 bits: 4265 ( 10%)
# codes of length 04 bits: 7407 ( 18%)
# codes of length 05 bits: 3364 ( 8%)
# codes of length 06 bits: 767 ( 2%)
# codes of length 07 bits: 1399 ( 3%)
# codes of length 08 bits: 642 ( 2%)
# codes of length 09 bits: 201 ( 0%)
# codes of length 10 bits: 285 ( 1%)
# codes of length 11 bits: 99 ( 0%)
# codes of length 12 bits: 42 ( 0%)
# codes of length 13 bits: 30 ( 0%)
# codes of length 14 bits: 6 ( 0%)
# codes of length 15 bits: 9 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 11662 ( 60%)
# codes of length 02 bits: 0 ( 0%)
# codes of length 03 bits: 1971 ( 10%)
# codes of length 04 bits: 1938 ( 10%)
# codes of length 05 bits: 1525 ( 8%)
# codes of length 06 bits: 1005 ( 5%)
# codes of length 07 bits: 339 ( 2%)
# codes of length 08 bits: 727 ( 4%)
# codes of length 09 bits: 148 ( 1%)
# codes of length 10 bits: 41 ( 0%)
# codes of length 11 bits: 23 ( 0%)
# codes of length 12 bits: 8 ( 0%)
# codes of length 13 bits: 2 ( 0%)
# codes of length 14 bits: 5 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[250] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1017, 0, 0] RGB=[255,255,255] @ MCU[ 0, 0]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x0000876F.5
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00008770
*** Searching Compression Signatures ***
Signature: 01557A9AE226A38386271DFE13D64298
Signature (Rotated): 0167FCEDBA3A8E8CF822163DB3564762
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[Konica Minolta Camera, In] [DiMAGE Z2 ] [ ] No
CAM:[Minolta Co., Ltd. ] [DiMAGE F100 ] [ ] No
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[NIKON ] [E4500 ] [FINE ] No
CAM:[NIKON ] [E5000 ] [FINE ] No
CAM:[NIKON ] [E8700 ] [FINE ] No
CAM:[NIKON ] [E885 ] [FINE ] No
CAM:[OLYMPUS CORPORATION ] [C8080WZ ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C2000Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
CAM:[SONY ] [DSC-H2 ] [ ] No
CAM:[SONY ] [DSC-H7 ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
CAM:[SONY ] [DSC-P200 ] [ ] No
CAM:[SONY ] [DSC-S90 ] [ ] No
CAM:[SONY ] [DSC-W7 ] [ ] No
SW :[IJG Library ] [092 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [092 ]
SW :[IrfanView ] [092 ]
SW :[idImager ] [092 ]
SW :[FastStone Image Viewer ] [092 ]
SW :[NeatImage ] [092 ]
SW :[Paint.NET ] [092 ]
SW :[Photomatix ] [092 ]
SW :[XnView ] [092 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

342
tests/Images/Input/Jpg/baseline/JpegSnoopReports/testimgint.jpg.txt

@ -0,0 +1,342 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\testimgint.jpg]
Filesize: [5756] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 8 6 5 8 12 20 26 31
DQT, Row #1: 6 6 7 10 13 29 30 28
DQT, Row #2: 7 7 8 12 20 29 35 28
DQT, Row #3: 7 9 11 15 26 44 40 31
DQT, Row #4: 9 11 19 28 34 55 52 39
DQT, Row #5: 12 18 28 32 41 52 57 46
DQT, Row #6: 25 32 39 44 52 61 60 51
DQT, Row #7: 36 46 48 49 56 50 52 50
Approx quality factor = 74.75 (scaling=50.51 variance=0.81)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 9 9 12 24 50 50 50 50
DQT, Row #1: 9 11 13 33 50 50 50 50
DQT, Row #2: 12 13 28 50 50 50 50 50
DQT, Row #3: 24 33 50 50 50 50 50 50
DQT, Row #4: 50 50 50 50 50 50 50 50
DQT, Row #5: 50 50 50 50 50 50 50 50
DQT, Row #6: 50 50 50 50 50 50 50 50
DQT, Row #7: 50 50 50 50 50 50 50 50
Approx quality factor = 74.74 (scaling=50.52 variance=0.19)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 149
Samples per Line = 227
Image Size = 227 x 149
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000D2
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000189
Huffman table length = 31
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000001AA
Huffman table length = 181
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000261
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x0000026F
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x0000167A.0
Compression stats:
Compression Ratio: 19.78:1
Bits per pixel: 1.21:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 86 ( 14%)
# codes of length 03 bits: 412 ( 69%)
# codes of length 04 bits: 65 ( 11%)
# codes of length 05 bits: 33 ( 6%)
# codes of length 06 bits: 4 ( 1%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 132 ( 44%)
# codes of length 03 bits: 70 ( 23%)
# codes of length 04 bits: 60 ( 20%)
# codes of length 05 bits: 26 ( 9%)
# codes of length 06 bits: 12 ( 4%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 2692 ( 48%)
# codes of length 03 bits: 628 ( 11%)
# codes of length 04 bits: 1327 ( 23%)
# codes of length 05 bits: 471 ( 8%)
# codes of length 06 bits: 199 ( 4%)
# codes of length 07 bits: 170 ( 3%)
# codes of length 08 bits: 65 ( 1%)
# codes of length 09 bits: 58 ( 1%)
# codes of length 10 bits: 31 ( 1%)
# codes of length 11 bits: 15 ( 0%)
# codes of length 12 bits: 4 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 6 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 689 ( 46%)
# codes of length 03 bits: 244 ( 16%)
# codes of length 04 bits: 289 ( 19%)
# codes of length 05 bits: 158 ( 11%)
# codes of length 06 bits: 70 ( 5%)
# codes of length 07 bits: 5 ( 0%)
# codes of length 08 bits: 36 ( 2%)
# codes of length 09 bits: 5 ( 0%)
# codes of length 10 bits: 1 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[107] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1008, -9, 0] RGB=[254,254,250] @ MCU[ 4, 8]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00001679.6
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000167A
*** Searching Compression Signatures ***
Signature: 0182408A81A4ABF04D4A34A8A5E98C58
Signature (Rotated): 012D821C6AB210E2A753BE053B8F55D0
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[SONY ] [CYBERSHOT U ] [ ] Yes
SW :[Adobe Photoshop 7.0 ] [Save As 07 ]
SW :[Apple Quicktime ] [0466-0467 ]
SW :[Digital Photo Professiona] [05 ]
SW :[IJG Library ] [075 ]
SW :[MS Paint ] [ ]
SW :[MS Visio ] [ ]
SW :[ZoomBrowser EX ] [low ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [075 ]
SW :[IrfanView ] [075 ]
SW :[idImager ] [075 ]
SW :[FastStone Image Viewer ] [075 ]
SW :[NeatImage ] [075 ]
SW :[Paint.NET ] [075 ]
SW :[Photomatix ] [075 ]
SW :[XnView ] [075 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

342
tests/Images/Input/Jpg/baseline/JpegSnoopReports/testorig.jpg.txt

@ -0,0 +1,342 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\testorig.jpg]
Filesize: [5770] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 8 6 5 8 12 20 26 31
DQT, Row #1: 6 6 7 10 13 29 30 28
DQT, Row #2: 7 7 8 12 20 29 35 28
DQT, Row #3: 7 9 11 15 26 44 40 31
DQT, Row #4: 9 11 19 28 34 55 52 39
DQT, Row #5: 12 18 28 32 41 52 57 46
DQT, Row #6: 25 32 39 44 52 61 60 51
DQT, Row #7: 36 46 48 49 56 50 52 50
Approx quality factor = 74.75 (scaling=50.51 variance=0.81)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 9 9 12 24 50 50 50 50
DQT, Row #1: 9 11 13 33 50 50 50 50
DQT, Row #2: 12 13 28 50 50 50 50 50
DQT, Row #3: 24 33 50 50 50 50 50 50
DQT, Row #4: 50 50 50 50 50 50 50 50
DQT, Row #5: 50 50 50 50 50 50 50 50
DQT, Row #6: 50 50 50 50 50 50 50 50
DQT, Row #7: 50 50 50 50 50 50 50 50
Approx quality factor = 74.74 (scaling=50.52 variance=0.19)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 149
Samples per Line = 227
Image Size = 227 x 149
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000D2
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000189
Huffman table length = 31
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000001AA
Huffman table length = 181
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000261
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x0000026F
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00001688.0
Compression stats:
Compression Ratio: 19.73:1
Bits per pixel: 1.22:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 88 ( 15%)
# codes of length 03 bits: 409 ( 68%)
# codes of length 04 bits: 66 ( 11%)
# codes of length 05 bits: 33 ( 6%)
# codes of length 06 bits: 4 ( 1%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 134 ( 45%)
# codes of length 03 bits: 68 ( 23%)
# codes of length 04 bits: 60 ( 20%)
# codes of length 05 bits: 26 ( 9%)
# codes of length 06 bits: 12 ( 4%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 2706 ( 48%)
# codes of length 03 bits: 636 ( 11%)
# codes of length 04 bits: 1331 ( 23%)
# codes of length 05 bits: 473 ( 8%)
# codes of length 06 bits: 196 ( 3%)
# codes of length 07 bits: 169 ( 3%)
# codes of length 08 bits: 66 ( 1%)
# codes of length 09 bits: 60 ( 1%)
# codes of length 10 bits: 28 ( 0%)
# codes of length 11 bits: 14 ( 0%)
# codes of length 12 bits: 4 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 5 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 697 ( 46%)
# codes of length 03 bits: 243 ( 16%)
# codes of length 04 bits: 294 ( 19%)
# codes of length 05 bits: 164 ( 11%)
# codes of length 06 bits: 68 ( 4%)
# codes of length 07 bits: 5 ( 0%)
# codes of length 08 bits: 35 ( 2%)
# codes of length 09 bits: 4 ( 0%)
# codes of length 10 bits: 2 ( 0%)
# codes of length 11 bits: 1 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[107] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1008, -9, 0] RGB=[254,254,250] @ MCU[ 4, 8]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00001687.2
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00001688
*** Searching Compression Signatures ***
Signature: 0182408A81A4ABF04D4A34A8A5E98C58
Signature (Rotated): 012D821C6AB210E2A753BE053B8F55D0
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[SONY ] [CYBERSHOT U ] [ ] Yes
SW :[Adobe Photoshop 7.0 ] [Save As 07 ]
SW :[Apple Quicktime ] [0466-0467 ]
SW :[Digital Photo Professiona] [05 ]
SW :[IJG Library ] [075 ]
SW :[MS Paint ] [ ]
SW :[MS Visio ] [ ]
SW :[ZoomBrowser EX ] [low ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [075 ]
SW :[IrfanView ] [075 ]
SW :[idImager ] [075 ]
SW :[FastStone Image Viewer ] [075 ]
SW :[NeatImage ] [075 ]
SW :[Paint.NET ] [075 ]
SW :[Photomatix ] [075 ]
SW :[XnView ] [075 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

367
tests/Images/Input/Jpg/baseline/JpegSnoopReports/turtle.jpg.txt

@ -0,0 +1,367 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\turtle.jpg]
Filesize: [55126] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 28 x 28 DPcm (dots per cm)
thumbnail = 0 x 0
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00000014
Length = 3256
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 3240 bytes
Preferred CMM Type : 'appl' (0x6170706C)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 2012-05-11 16:46:50
Profile file signature : 'acsp' (0x61637370)
Primary platform : Apple Computer, Inc. ('APPL' (0x4150504C))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : '....' (0x00000000)
Device Model : '....' (0x00000000)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'appl' (0x6170706C)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000CCE
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 3 2 2 3 4 6 8 10
DQT, Row #1: 2 2 2 3 4 9 10 9
DQT, Row #2: 2 2 3 4 6 9 11 9
DQT, Row #3: 2 3 4 5 8 14 13 10
DQT, Row #4: 3 4 6 9 11 17 16 12
DQT, Row #5: 4 6 9 10 13 17 18 15
DQT, Row #6: 8 10 12 14 16 19 19 16
DQT, Row #7: 12 15 15 16 18 16 16 16
Approx quality factor = 91.86 (scaling=16.28 variance=1.13)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000D13
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 3 3 4 8 16 16 16 16
DQT, Row #1: 3 3 4 11 16 16 16 16
DQT, Row #2: 4 4 9 16 16 16 16 16
DQT, Row #3: 8 11 16 16 16 16 16 16
DQT, Row #4: 16 16 16 16 16 16 16 16
DQT, Row #5: 16 16 16 16 16 16 16 16
DQT, Row #6: 16 16 16 16 16 16 16 16
DQT, Row #7: 16 16 16 16 16 16 16 16
Approx quality factor = 91.90 (scaling=16.20 variance=0.15)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x00000D58
Frame header length = 17
Precision = 8
Number of Lines = 281
Samples per Line = 450
Image Size = 450 x 281
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000D6B
Huffman table length = 29
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 06
Codes of length 03 bits (004 total): 00 04 05 07
Codes of length 04 bits (003 total): 01 03 08
Codes of length 05 bits (001 total): 02
Codes of length 06 bits (001 total): 09
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 010
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000D8A
Huffman table length = 82
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 02 03 04
Codes of length 04 bits (003 total): 05 06 11
Codes of length 05 bits (002 total): 00 12
Codes of length 06 bits (004 total): 07 13 21 31
Codes of length 07 bits (003 total): 22 41 51
Codes of length 08 bits (004 total): 08 14 61 71
Codes of length 09 bits (006 total): 15 23 32 81 91 A1
Codes of length 10 bits (007 total): 16 42 52 55 94 B1 D2
Codes of length 11 bits (004 total): 33 62 72 C1
Codes of length 12 bits (007 total): 24 34 82 92 A2 D1 F0
Codes of length 13 bits (005 total): 17 43 53 54 E1
Codes of length 14 bits (006 total): 09 25 35 83 93 B2
Codes of length 15 bits (007 total): 18 26 44 64 73 A3 C2
Codes of length 16 bits (001 total): A4
Total number of codes: 063
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000DDE
Huffman table length = 28
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 04 05 06 07
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 02
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000DFC
Huffman table length = 76
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (004 total): 00 03 04 21
Codes of length 05 bits (003 total): 05 12 31
Codes of length 06 bits (004 total): 06 41 51 61
Codes of length 07 bits (006 total): 13 22 71 81 91 A1
Codes of length 08 bits (006 total): 07 14 32 52 B1 D1
Codes of length 09 bits (007 total): 15 42 53 62 72 92 C1
Codes of length 10 bits (005 total): 23 33 A2 E1 F0
Codes of length 11 bits (005 total): 16 17 34 82 B2
Codes of length 12 bits (007 total): 24 35 54 63 73 D2 F1
Codes of length 13 bits (004 total): 08 25 93 C2
Codes of length 14 bits (003 total): 43 C3 D3
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 057
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000E4A
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x00000E58
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x0000D754.0
Compression stats:
Compression Ratio: 7.37:1
Bits per pixel: 3.26:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 344 ( 16%)
# codes of length 03 bits: 1157 ( 55%)
# codes of length 04 bits: 453 ( 22%)
# codes of length 05 bits: 102 ( 5%)
# codes of length 06 bits: 32 ( 2%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 216 ( 21%)
# codes of length 03 bits: 672 ( 64%)
# codes of length 04 bits: 77 ( 7%)
# codes of length 05 bits: 59 ( 6%)
# codes of length 06 bits: 20 ( 2%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 11146 ( 23%)
# codes of length 03 bits: 21025 ( 43%)
# codes of length 04 bits: 8376 ( 17%)
# codes of length 05 bits: 3259 ( 7%)
# codes of length 06 bits: 2911 ( 6%)
# codes of length 07 bits: 840 ( 2%)
# codes of length 08 bits: 696 ( 1%)
# codes of length 09 bits: 499 ( 1%)
# codes of length 10 bits: 295 ( 1%)
# codes of length 11 bits: 93 ( 0%)
# codes of length 12 bits: 85 ( 0%)
# codes of length 13 bits: 26 ( 0%)
# codes of length 14 bits: 15 ( 0%)
# codes of length 15 bits: 8 ( 0%)
# codes of length 16 bits: 1 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 5260 ( 31%)
# codes of length 03 bits: 4077 ( 24%)
# codes of length 04 bits: 4031 ( 24%)
# codes of length 05 bits: 1544 ( 9%)
# codes of length 06 bits: 912 ( 5%)
# codes of length 07 bits: 626 ( 4%)
# codes of length 08 bits: 335 ( 2%)
# codes of length 09 bits: 163 ( 1%)
# codes of length 10 bits: 58 ( 0%)
# codes of length 11 bits: 27 ( 0%)
# codes of length 12 bits: 18 ( 0%)
# codes of length 13 bits: 6 ( 0%)
# codes of length 14 bits: 3 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[167] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1017, 3, -3] RGB=[253,255,255] @ MCU[ 26, 8]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x0000D753.1
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000D754
*** Searching Compression Signatures ***
Signature: 01557A9AE226A38386271DFE13D64298
Signature (Rotated): 0167FCEDBA3A8E8CF822163DB3564762
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[Konica Minolta Camera, In] [DiMAGE Z2 ] [ ] No
CAM:[Minolta Co., Ltd. ] [DiMAGE F100 ] [ ] No
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[NIKON ] [E4500 ] [FINE ] No
CAM:[NIKON ] [E5000 ] [FINE ] No
CAM:[NIKON ] [E8700 ] [FINE ] No
CAM:[NIKON ] [E885 ] [FINE ] No
CAM:[OLYMPUS CORPORATION ] [C8080WZ ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C2000Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
CAM:[SONY ] [DSC-H2 ] [ ] No
CAM:[SONY ] [DSC-H7 ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
CAM:[SONY ] [DSC-P200 ] [ ] No
CAM:[SONY ] [DSC-S90 ] [ ] No
CAM:[SONY ] [DSC-W7 ] [ ] No
SW :[IJG Library ] [092 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [092 ]
SW :[IrfanView ] [092 ]
SW :[idImager ] [092 ]
SW :[FastStone Image Viewer ] [092 ]
SW :[NeatImage ] [092 ]
SW :[Paint.NET ] [092 ]
SW :[Photomatix ] [092 ]
SW :[XnView ] [092 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

640
tests/Images/Input/Jpg/baseline/JpegSnoopReports/ycck.jpg.txt

@ -0,0 +1,640 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\ycck.jpg]
Filesize: [611572] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000002
Length = 4452
Identifier = [Exif]
Identifier TIFF = 0x[4D4D002A 00000008]
Endian = Motorola (big)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000014
Dir Length = 0x0007
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 720000/10000
[YResolution ] = 720000/10000
[ResolutionUnit ] = Inch
[Software ] = "Adobe Photoshop CC 2015.5 (Windows)"
[DateTime ] = "2016:08:23 18:21:25"
[ExifOffset ] = @ 0x00AC
Offset to Next IFD = 0x000000D8
EXIF IFD1 @ Absolute 0x000000E4
Dir Length = 0x0006
[Compression ] = JPEG
[XResolution ] = 72/1
[YResolution ] = 72/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x0136 = @ 0x0142
[JpegIFByteCount ] = 0x[00001026] / 4134
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000000B8
Dir Length = 0x0003
[ColorSpace ] = Uncalibrated
[ExifImageWidth ] = 0x[00000200] / 512
[ExifImageHeight ] = 0x[00000200] / 512
*** Marker: APP13 (xFFED) ***
OFFSET: 0x00001168
Length = 6522
Identifier = [Photoshop 3.0]
8BIM: [0x0425] Name="" Len=[0x0010] DefinedName="Caption digest"
Caption digest = | 0x00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................
8BIM: [0x043A] Name="" Len=[0x00E5] DefinedName="Print Information"
Print Information =
| 0x00 00 00 10 00 00 00 01 00 00 00 00 00 0B 70 72 | ..............pr
| 0x69 6E 74 4F 75 74 70 75 74 00 00 00 05 00 00 00 | intOutput.......
| 0x00 50 73 74 53 62 6F 6F 6C 01 00 00 00 00 49 6E | .PstSbool.....In
| 0x74 65 65 6E 75 6D 00 00 00 00 49 6E 74 65 00 00 | teenum....Inte..
| 0x00 00 43 6C 72 6D 00 00 00 0F 70 72 69 6E 74 53 | ..Clrm....printS
| 0x69 78 74 65 65 6E 42 69 74 62 6F 6F 6C 00 00 00 | ixteenBitbool...
| 0x00 0B 70 72 69 6E 74 65 72 4E 61 6D 65 54 45 58 | ..printerNameTEX
| 0x54 00 00 00 01 00 00 00 00 00 0F 70 72 69 6E 74 | T..........print
| ...
8BIM: [0x043B] Name="" Len=[0x022D] DefinedName="Print Style"
Print Style =
| 0x00 00 00 10 00 00 00 01 00 00 00 00 00 12 70 72 | ..............pr
| 0x69 6E 74 4F 75 74 70 75 74 4F 70 74 69 6F 6E 73 | intOutputOptions
| 0x00 00 00 17 00 00 00 00 43 70 74 6E 62 6F 6F 6C | ........Cptnbool
| 0x00 00 00 00 00 43 6C 62 72 62 6F 6F 6C 00 00 00 | .....Clbrbool...
| 0x00 00 52 67 73 4D 62 6F 6F 6C 00 00 00 00 00 43 | ..RgsMbool.....C
| 0x72 6E 43 62 6F 6F 6C 00 00 00 00 00 43 6E 74 43 | rnCbool.....CntC
| 0x62 6F 6F 6C 00 00 00 00 00 4C 62 6C 73 62 6F 6F | bool.....Lblsboo
| 0x6C 00 00 00 00 00 4E 67 74 76 62 6F 6F 6C 00 00 | l.....Ngtvbool..
| ...
8BIM: [0x03ED] Name="" Len=[0x0010] DefinedName="ResolutionInfo structure"
Horizontal resolution = 72 pixels per inch
Width unit = cm
Vertical resolution = 72 pixels per inch
Height unit = cm
8BIM: [0x0426] Name="" Len=[0x000E] DefinedName="Print scale"
Style = centered
X location = 0.00000
Y location = 0.00000
Scale = 1.00000
8BIM: [0x040D] Name="" Len=[0x0004] DefinedName="Global Angle"
Global Angle = 30 degrees
8BIM: [0x0419] Name="" Len=[0x0004] DefinedName="Global Altitude"
Global Altitude = 30
8BIM: [0x03F3] Name="" Len=[0x0009] DefinedName="Print flags"
Labels = false
Crop marks = false
Color bars = false
Registration marks = false
Negative = false
Flip = false
Interpolate = false
Caption = false
Print flags = true
8BIM: [0x2710] Name="" Len=[0x000A] DefinedName="Print flags information"
Version = 1
Center crop marks = 0
Reserved = 0
Bleed width value = 0
Bleed width scale = 2
8BIM: [0x03F5] Name="" Len=[0x0048] DefinedName="Color halftoning information"
Color halftoning information =
| 0x00 2F 66 66 00 01 00 6C 66 66 00 06 00 00 00 00 | ./ff...lff......
| 0x00 01 00 2F 66 66 00 01 00 A1 99 9A 00 06 00 00 | .../ff..........
| 0x00 00 00 01 00 32 00 00 00 01 00 5A 00 00 00 06 | .....2.....Z....
| 0x00 00 00 00 00 01 00 35 00 00 00 01 00 2D 00 00 | .......5.....-..
| 0x00 06 00 00 00 00 00 01 | ........
8BIM: [0x03F8] Name="" Len=[0x0070] DefinedName="Color transfer functions"
Color transfer functions =
| 0x00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ................
| 0xFF FF FF FF FF FF FF FF 03 E8 00 00 00 00 FF FF | ................
| 0xFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ................
| 0xFF FF FF FF 03 E8 00 00 00 00 FF FF FF FF FF FF | ................
| 0xFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ................
| 0x03 E8 00 00 00 00 FF FF FF FF FF FF FF FF FF FF | ................
| 0xFF FF FF FF FF FF FF FF FF FF FF FF 03 E8 00 00 | ................
8BIM: [0x0400] Name="" Len=[0x0002] DefinedName="Layer state information"
Target layer = 0
8BIM: [0x0402] Name="" Len=[0x0002] DefinedName="Layers group information"
Layer #0:
Layer Group = 0
8BIM: [0x0430] Name="" Len=[0x0001] DefinedName="Layer Groups Enabled ID"
Layer #0:
Layer Group Enabled ID = 1
8BIM: [0x042D] Name="" Len=[0x0006] DefinedName="Layer Selection IDs"
Num selected = 1
Layer ID = 3
8BIM: [0x0408] Name="" Len=[0x0010] DefinedName="Grid and guides information"
Version = 1
Grid Horizontal = 576
Grid Vertical = 576
Number of Guide Resources = 0
8BIM: [0x041E] Name="" Len=[0x0004] DefinedName="URL List"
URL List = | 0x00 00 00 00 | ....
8BIM: [0x041A] Name="" Len=[0x0363] DefinedName="Slices"
Slice Header:
Version = 6
Bound Rect (top) = 0
Bound Rect (left) = 0
Bound Rect (bottom) = 512
Bound Rect (right) = 512
Name of group of slices = "imageprocessor-logo-512"
Number of slices = 1
-----
Slice #0:
Slice Resource:
ID = 0
Group ID = 0
Origin = 0
Name = ""
Type = 1
Position (top) = 0
Position (left) = 0
Position (bottom) = 512
Position (right) = 512
URL = ""
Target = ""
Message = ""
Alt Tag = ""
Cell text is HTML = true
Cell text = ""
Horizontal alignment = 0
Vertical alignment = 0
Alpha color = 0
Red = 0
Green = 0
Blue = 0
Descriptor version = 16
Descriptor:
Name from classID = ""
classID = "null"
Num items in descriptor = 2
-----
Descriptor item #0:
Key = "bounds"
OSType key = "Objc"
Descriptor:
Name from classID = ""
classID = "Rct1"
Num items in descriptor = 4
-----
Descriptor item #0:
Key = "Top "
OSType key = "long"
Value = 0
Descriptor item #1:
Key = "Left"
OSType key = "long"
Value = 0
Descriptor item #2:
Key = "Btom"
OSType key = "long"
Value = 512
Descriptor item #3:
Key = "Rght"
OSType key = "long"
Value = 512
-----
Descriptor item #1:
Key = "slices"
OSType key = "VlLs"
Num items in list = 1
-----
Item #0:
OSType key = ""
Descriptor:
Name from classID = ""
classID = "slice"
Num items in descriptor = 18
-----
Descriptor item #0:
Key = "sliceID"
OSType key = "long"
Value = 0
Descriptor item #1:
Key = "groupID"
OSType key = "long"
Value = 0
Descriptor item #2:
Key = "origin"
OSType key = "enum"
Type = "ESliceOrigin"
Enum = "autoGenerated"
Descriptor item #3:
Key = "Type"
OSType key = "enum"
Type = "ESliceType"
Enum = "Img "
Descriptor item #4:
Key = "bounds"
OSType key = "Objc"
Descriptor:
Name from classID = ""
classID = "Rct1"
Num items in descriptor = 4
-----
Descriptor item #0:
Key = "Top "
OSType key = "long"
Value = 0
Descriptor item #1:
Key = "Left"
OSType key = "long"
Value = 0
Descriptor item #2:
Key = "Btom"
OSType key = "long"
Value = 512
Descriptor item #3:
Key = "Rght"
OSType key = "long"
Value = 512
-----
Descriptor item #5:
Key = "url"
OSType key = "TEXT"
String = ""
Descriptor item #6:
Key = "null"
OSType key = "TEXT"
String = ""
Descriptor item #7:
Key = "Msge"
OSType key = "TEXT"
String = ""
Descriptor item #8:
Key = "altTag"
OSType key = "TEXT"
String = ""
Descriptor item #9:
Key = "cellTextIsHTML"
OSType key = "bool"
Value = true
Descriptor item #10:
Key = "cellText"
OSType key = "TEXT"
String = ""
Descriptor item #11:
Key = "horzAlign"
OSType key = "enum"
Type = "ESliceHorzAlign"
Enum = "default"
Descriptor item #12:
Key = "vertAlign"
OSType key = "enum"
Type = "ESliceVertAlign"
Enum = "default"
Descriptor item #13:
Key = "bgColorType"
OSType key = "enum"
Type = "ESliceBGColorType"
Enum = "None"
Descriptor item #14:
Key = "topOutset"
OSType key = "long"
Value = 0
Descriptor item #15:
Key = "leftOutset"
OSType key = "long"
Value = 0
Descriptor item #16:
Key = "bottomOutset"
OSType key = "long"
Value = 0
Descriptor item #17:
Key = "rightOutset"
OSType key = "long"
Value = 0
-----
-----
-----
-----
8BIM: [0x0428] Name="" Len=[0x000C] DefinedName="Pixel Aspect Ratio"
Version = 2
X/Y Ratio = 1.00000
8BIM: [0x0414] Name="" Len=[0x0004] DefinedName="Document-specific IDs seed number"
Base value = 3
8BIM: [0x040C] Name="" Len=[0x1042] DefinedName="Thumbnail resources"
Format = 1
Width of thumbnail = 160 pixels
Height of thumbnail = 160 pixels
Widthbytes = 480 bytes
Total size = 76800 bytes
Size after compression = 4134 bytes
Bits per pixel = 24 bits
Number of planes = 1
JFIF data @ 0x00001A3C
8BIM: [0x0421] Name="" Len=[0x0061] DefinedName="Version Info"
Version = 1
hasRealMergedData = 1
Writer name = "Adobe Photoshop"
Reader name = "Adobe Photoshop CC 2015.5"
File version = 1
8BIM: [0x0406] Name="" Len=[0x0007] DefinedName="JPEG quality"
Photoshop Save As Quality = 8
Photoshop Save Format = "Standard"
Photoshop Save Progressive Scans = "3 Scans"
??? = 1
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00002AE4
Length = 3685
Identifier = [http://ns.adobe.com/xap/1.0/]
XMP =
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0000394B
Length = 65506
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 9
Profile Size : 557168 bytes
Preferred CMM Type : 'ADBE' (0x41444245)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Output Device profile ('prtr' (0x70727472))
Data Colour Space : cmykData ('CMYK' (0x434D594B))
Profile connection space (PCS) : 'Lab ' (0x4C616220)
Profile creation date : 2000-07-26 05:41:53
Profile file signature : 'acsp' (0x61637370)
Primary platform : Apple Computer, Inc. ('APPL' (0x4150504C))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : 'ADBE' (0x41444245)
Device Model : '....' (0x00000000)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Media-Relative Colorimetric
Profile creator : 'ADBE' (0x41444245)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0001392F
Length = 65506
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 2 of 9
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00023913
Length = 65506
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 3 of 9
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000338F7
Length = 65506
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 4 of 9
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000438DB
Length = 65506
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 5 of 9
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000538BF
Length = 65506
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 6 of 9
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x000638A3
Length = 65506
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 7 of 9
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00073887
Length = 65506
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 8 of 9
Only support decode of 1st ICC Marker
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0008386B
Length = 33264
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 9 of 9
Only support decode of 1st ICC Marker
*** Marker: APP14 (xFFEE) ***
OFFSET: 0x0008BA5D
Length = 14
DCTEncodeVersion = 100
APP14Flags0 = 0
APP14Flags1 = 0
ColorTransform = 2 [YCCK]
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x0008BA6D
Table length = 132
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 4 4 6 9 11 12 16
DQT, Row #1: 4 5 5 6 8 10 12 12
DQT, Row #2: 4 5 5 6 10 12 12 12
DQT, Row #3: 6 6 6 11 12 12 12 12
DQT, Row #4: 9 8 10 12 12 12 12 12
DQT, Row #5: 11 10 12 12 12 12 12 12
DQT, Row #6: 12 12 12 12 12 12 12 12
DQT, Row #7: 16 12 12 12 12 12 12 12
Approx quality factor = 88.28 (scaling=23.43 variance=111.68)
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 7 7 13 24 20 20 17 17
DQT, Row #1: 7 12 16 14 14 12 12 12
DQT, Row #2: 13 16 14 14 12 12 12 12
DQT, Row #3: 24 14 14 12 12 12 12 12
DQT, Row #4: 20 14 12 12 12 12 12 12
DQT, Row #5: 20 12 12 12 12 12 12 12
DQT, Row #6: 17 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
Approx quality factor = 90.19 (scaling=19.62 variance=201.04)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0008BAF3
Frame header length = 20
Precision = 8
Number of Lines = 512
Samples per Line = 512
Image Size = 512 x 512
Raw Image Orientation = Landscape
Number of Img components = 4
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Cr)
Component[4]: ID=0x04, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (K)
*** Marker: DRI (Restart Interval) (xFFDD) ***
OFFSET: 0x0008BB09
Length = 4
interval = 64
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0008BB0F
Huffman table length = 418
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (000 total):
Codes of length 03 bits (007 total): 04 05 03 02 06 01 00
Codes of length 04 bits (001 total): 07
Codes of length 05 bits (001 total): 08
Codes of length 06 bits (001 total): 09
Codes of length 07 bits (001 total): 0A
Codes of length 08 bits (001 total): 0B
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 00
Codes of length 03 bits (002 total): 02 03
Codes of length 04 bits (003 total): 04 05 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 11 04 00
Codes of length 05 bits (003 total): 05 21 12
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 51 06 13 61
Codes of length 08 bits (002 total): 22 71
Codes of length 09 bits (006 total): 81 14 32 91 A1 07
Codes of length 10 bits (007 total): 15 B1 42 23 C1 52 D1
Codes of length 11 bits (003 total): E1 33 16
Codes of length 12 bits (004 total): 62 F0 24 72
Codes of length 13 bits (002 total): 82 F1
Codes of length 14 bits (006 total): 25 43 34 53 92 A2
Codes of length 15 bits (002 total): B2 63
Codes of length 16 bits (115 total): 73 C2 35 44 27 93 A3 B3 36 17 54 64 74 C3 D2 E2
08 26 83 09 0A 18 19 84 94 45 46 A4 B4 56 D3 55
28 1A F2 E3 F3 C4 D4 E4 F4 65 75 85 95 A5 B5 C5
D5 E5 F5 66 76 86 96 A6 B6 C6 D6 E6 F6 37 47 57
67 77 87 97 A7 B7 C7 D7 E7 F7 38 48 58 68 78 88
98 A8 B8 C8 D8 E8 F8 29 39 49 59 69 79 89 99 A9
B9 C9 D9 E9 F9 2A 3A 4A 5A 6A 7A 8A 9A AA BA CA
DA EA FA
Total number of codes: 162
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 00
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (002 total): 04 21
Codes of length 06 bits (003 total): 12 31 41
Codes of length 07 bits (005 total): 05 51 13 61 22
Codes of length 08 bits (005 total): 06 71 81 91 32
Codes of length 09 bits (004 total): A1 B1 F0 14
Codes of length 10 bits (005 total): C1 D1 E1 23 42
Codes of length 11 bits (006 total): 15 52 62 72 F1 33
Codes of length 12 bits (004 total): 24 34 43 82
Codes of length 13 bits (008 total): 16 92 53 25 A2 63 B2 C2
Codes of length 14 bits (003 total): 07 73 D2
Codes of length 15 bits (003 total): 35 E2 44
Codes of length 16 bits (109 total): 83 17 54 93 08 09 0A 18 19 26 36 45 1A 27 64 74
55 37 F2 A3 B3 C3 28 29 D3 E3 F3 84 94 A4 B4 C4
D4 E4 F4 65 75 85 95 A5 B5 C5 D5 E5 F5 46 56 66
76 86 96 A6 B6 C6 D6 E6 F6 47 57 67 77 87 97 A7
B7 C7 D7 E7 F7 38 48 58 68 78 88 98 A8 B8 C8 D8
E8 F8 39 49 59 69 79 89 99 A9 B9 C9 D9 E9 F9 2A
3A 4A 5A 6A 7A 8A 9A AA BA CA DA EA FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0008BCB3
Scan header length = 14
Number of img components = 4
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Component[4]: selector=0x04, table=0(DC),0(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support CMYK files yet.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x000954F2
*** Searching Compression Signatures ***
Signature: 01180AF3DE63318828A86409EF4013DD
Signature (Rotated): 01180AF3DE63318828A86409EF4013DD
File Offset: 0 bytes
Chroma subsampling: ?x?
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: OK [Adobe Photoshop CC 2015.5 (Windows)]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[Adobe Photoshop ] [Save As 08 ]
NOTE: Photoshop IRB detected
NOTE: EXIF Software field recognized as from editor
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited

461
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue159-MissingFF00-Progressive-Bedroom.jpg.txt

@ -0,0 +1,461 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue159-MissingFF00-Progressive-Bedroom.jpg]
Filesize: [338422] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 72 x 72 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 4 4 6 9 14 18 22
DQT, Row #1: 4 4 5 7 9 21 22 20
DQT, Row #2: 5 5 6 9 14 21 25 20
DQT, Row #3: 5 6 8 10 18 31 29 22
DQT, Row #4: 6 8 13 20 24 39 37 28
DQT, Row #5: 9 13 20 23 29 37 41 33
DQT, Row #6: 18 23 28 31 37 44 43 36
DQT, Row #7: 26 33 34 35 40 36 37 36
Approx quality factor = 81.99 (scaling=36.03 variance=1.13)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 6 6 9 17 36 36 36 36
DQT, Row #1: 6 8 9 24 36 36 36 36
DQT, Row #2: 9 9 20 36 36 36 36 36
DQT, Row #3: 17 24 36 36 36 36 36 36
DQT, Row #4: 36 36 36 36 36 36 36 36
DQT, Row #5: 36 36 36 36 36 36 36 36
DQT, Row #6: 36 36 36 36 36 36 36 36
DQT, Row #7: 36 36 36 36 36 36 36 36
Approx quality factor = 81.88 (scaling=36.24 variance=0.48)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 2300
Samples per Line = 2300
Image Size = 2300 x 2300
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 27
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 01 02
Codes of length 04 bits (003 total): 03 04 05
Codes of length 05 bits (001 total): 06
Codes of length 06 bits (001 total): 07
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 008
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000CE
Huffman table length = 26
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 04
Codes of length 06 bits (001 total): 05
Codes of length 07 bits (001 total): 06
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 007
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000000EA
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),0(AC)
Component[3]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000CBBB
Huffman table length = 56
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (000 total):
Codes of length 03 bits (004 total): 00 01 02 03
Codes of length 04 bits (005 total): 04 10 11 12 41
Codes of length 05 bits (002 total): 21 31
Codes of length 06 bits (005 total): 05 13 20 22 32
Codes of length 07 bits (003 total): 15 30 42
Codes of length 08 bits (005 total): 14 23 33 34 50
Codes of length 09 bits (000 total):
Codes of length 10 bits (002 total): 24 40
Codes of length 11 bits (002 total): 06 16
Codes of length 12 bits (002 total): 43 60
Codes of length 13 bits (002 total): 70 A0
Codes of length 14 bits (003 total): 44 80 90
Codes of length 15 bits (001 total): B0
Codes of length 16 bits (001 total): 35
Total number of codes: 037
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000CBF5
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0001A2A8
Huffman table length = 51
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (005 total): 02 03 10 20 30
Codes of length 05 bits (003 total): 12 13 31
Codes of length 06 bits (004 total): 04 21 32 40
Codes of length 07 bits (002 total): 14 51
Codes of length 08 bits (002 total): 05 41
Codes of length 09 bits (002 total): 33 50
Codes of length 10 bits (001 total): 22
Codes of length 11 bits (004 total): 15 52 61 70
Codes of length 12 bits (003 total): 23 42 60
Codes of length 13 bits (000 total):
Codes of length 14 bits (003 total): 71 A0 B0
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 032
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0001A2DD
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0001BB1E
Huffman table length = 50
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (005 total): 02 03 10 20 30
Codes of length 05 bits (003 total): 12 13 31
Codes of length 06 bits (004 total): 04 21 32 40
Codes of length 07 bits (002 total): 14 51
Codes of length 08 bits (003 total): 05 41 50
Codes of length 09 bits (001 total): 22
Codes of length 10 bits (000 total):
Codes of length 11 bits (001 total): 61
Codes of length 12 bits (004 total): 23 33 60 70
Codes of length 13 bits (002 total): 15 43
Codes of length 14 bits (003 total): 52 A0 B0
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 031
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0001BB52
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0001D49C
Huffman table length = 67
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (000 total):
Codes of length 04 bits (004 total): 10 11 21 31
Codes of length 05 bits (005 total): 02 41 51 71 81
Codes of length 06 bits (001 total): 20
Codes of length 07 bits (006 total): 12 22 30 61 91 A1
Codes of length 08 bits (004 total): 03 32 33 C1
Codes of length 09 bits (002 total): 40 50
Codes of length 10 bits (010 total): 13 23 42 52 72 82 B1 D1 E1 F0
Codes of length 11 bits (002 total): 34 62
Codes of length 12 bits (003 total): 60 92 F1
Codes of length 13 bits (000 total):
Codes of length 14 bits (002 total): 24 80
Codes of length 15 bits (000 total):
Codes of length 16 bits (007 total): 04 70 43 A2 14 C0 D0
Total number of codes: 048
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0001D4E1
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000291D6
Huffman table length = 44
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 11 21
Codes of length 04 bits (002 total): 31 41
Codes of length 05 bits (001 total): 51
Codes of length 06 bits (003 total): 10 61 71
Codes of length 07 bits (003 total): 81 91 A1
Codes of length 08 bits (003 total): 20 B1 F0
Codes of length 09 bits (004 total): 30 C1 D1 E1
Codes of length 10 bits (003 total): 40 50 F1
Codes of length 11 bits (001 total): 60
Codes of length 12 bits (001 total): 70
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 025
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00029204
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00044080
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=0(DC),0(AC)
Component[3]: selector=0x03, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00047DC7
Huffman table length = 45
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (004 total): 10 30 31 61
Codes of length 05 bits (006 total): 20 21 40 41 51 71
Codes of length 06 bits (002 total): 50 60
Codes of length 07 bits (003 total): 81 91 A1
Codes of length 08 bits (001 total): B1
Codes of length 09 bits (000 total):
Codes of length 10 bits (002 total): 70 F0
Codes of length 11 bits (002 total): C1 D1
Codes of length 12 bits (003 total): A0 B0 F1
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 026
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00047DF6
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00048BD6
Huffman table length = 45
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (004 total): 20 30 31 61
Codes of length 05 bits (006 total): 10 21 40 41 51 71
Codes of length 06 bits (002 total): 50 81
Codes of length 07 bits (003 total): 60 91 B1
Codes of length 08 bits (001 total): A1
Codes of length 09 bits (000 total):
Codes of length 10 bits (002 total): 70 C1
Codes of length 11 bits (002 total): 80 F0
Codes of length 12 bits (003 total): A0 B0 D1
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 026
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00048C05
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00049AE7
Huffman table length = 48
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 70
Codes of length 03 bits (001 total): 00
Codes of length 04 bits (007 total): 01 11 31 41 51 80 91
Codes of length 05 bits (003 total): 10 21 81
Codes of length 06 bits (002 total): 50 60
Codes of length 07 bits (005 total): 20 40 61 71 D1
Codes of length 08 bits (004 total): 30 B1 E1 F1
Codes of length 09 bits (002 total): A1 F0
Codes of length 10 bits (003 total): A0 C0 C1
Codes of length 11 bits (001 total): D0
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 029
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00049B19
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x000529F4
*** Searching Compression Signatures ***
Signature: 0138A8D4ECE59F41D2EB9AF5168B6675
Signature (Rotated): 01CA9A809F737BA668C16DDE52E74092
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C700UZ ] [ ] No
SW :[IJG Library ] [082 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [082 ]
SW :[IrfanView ] [082 ]
SW :[idImager ] [082 ]
SW :[FastStone Image Viewer ] [082 ]
SW :[NeatImage ] [082 ]
SW :[Paint.NET ] [082 ]
SW :[Photomatix ] [082 ]
SW :[XnView ] [082 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

520
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue159-MissingFF00-Progressive-Girl.jpg.txt

@ -0,0 +1,520 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue159-MissingFF00-Progressive-Girl.jpg]
Filesize: [60927] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.2]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: APP13 (xFFED) ***
OFFSET: 0x00000014
Length = 132
Identifier = [Photoshop 3.0]
8BIM: [0x0404] Name="" Len=[0x0067] DefinedName="IPTC-NAA record"
IPTC [002:040] Special Instructions = "FBMD01000a820d0000192d00007a4400006e460000a9470000a44e00000b7b0000cc830000e0880000a08c0000ffed0000"
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0000009A
Length = 3064
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 3048 bytes
Preferred CMM Type : '....' (0x00000000)
Profile Version : 0.2.0.0 (0x02000000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 2009-03-27 21:36:31
Profile file signature : 'acsp' (0x61637370)
Primary platform : ? (0x00000000) ('....' (0x00000000))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : '....' (0x00000000)
Device Model : '....' (0x00000000)
Device attributes : 0x00000001_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : '....' (0x00000000)
Profile ID : 0x29F83DDE_AFF255AE_7842FAE4_CA83390D
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000C94
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 9 6 6 9 14 23 30 35
DQT, Row #1: 7 7 8 11 15 34 35 32
DQT, Row #2: 8 8 9 14 23 33 40 32
DQT, Row #3: 8 10 13 17 30 50 46 36
DQT, Row #4: 10 13 21 32 39 63 60 45
DQT, Row #5: 14 20 32 37 47 60 66 53
DQT, Row #6: 28 37 45 50 60 70 70 59
DQT, Row #7: 42 53 55 57 65 58 60 57
Approx quality factor = 71.07 (scaling=57.86 variance=0.92)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000CD9
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 10 10 14 27 57 57 57 57
DQT, Row #1: 10 12 15 38 57 57 57 57
DQT, Row #2: 14 15 32 57 57 57 57 57
DQT, Row #3: 27 38 57 57 57 57 57 57
DQT, Row #4: 57 57 57 57 57 57 57 57
DQT, Row #5: 57 57 57 57 57 57 57 57
DQT, Row #6: 57 57 57 57 57 57 57 57
DQT, Row #7: 57 57 57 57 57 57 57 57
Approx quality factor = 71.23 (scaling=57.54 variance=0.18)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x00000D1E
Frame header length = 17
Precision = 8
Number of Lines = 990
Samples per Line = 750
Image Size = 750 x 990
Raw Image Orientation = Portrait
Number of Img components = 3
Component[1]: ID=0x00, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x01, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000D31
Huffman table length = 27
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 008
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000D4E
Huffman table length = 24
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 04
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 005
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000D68
Huffman table length = 24
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 04
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 005
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000D82
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),1(AC)
Component[3]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002CED
Huffman table length = 42
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (003 total): 03 10 11
Codes of length 05 bits (003 total): 04 12 20
Codes of length 06 bits (004 total): 21 30 31 40
Codes of length 07 bits (002 total): 32 41
Codes of length 08 bits (002 total): 13 22
Codes of length 09 bits (003 total): 05 14 50
Codes of length 10 bits (001 total): 33
Codes of length 11 bits (001 total): 42
Codes of length 12 bits (001 total): 23
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00002D19
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00004455
Huffman table length = 35
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (001 total): 00
Codes of length 04 bits (005 total): 02 10 11 20 30
Codes of length 05 bits (001 total): 40
Codes of length 06 bits (000 total):
Codes of length 07 bits (002 total): 12 50
Codes of length 08 bits (003 total): 03 31 41
Codes of length 09 bits (001 total): 21
Codes of length 10 bits (001 total): 51
Codes of length 11 bits (001 total): 60
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 016
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000447A
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000464C
Huffman table length = 32
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (000 total):
Codes of length 04 bits (007 total): 00 10 11 20 30 40 50
Codes of length 05 bits (001 total): 02
Codes of length 06 bits (001 total): 12
Codes of length 07 bits (000 total):
Codes of length 08 bits (003 total): 21 31 70
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 013
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000466E
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00004775
Huffman table length = 50
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (003 total): 02 21 40
Codes of length 05 bits (007 total): 10 12 30 31 32 50 91
Codes of length 06 bits (003 total): 20 41 51
Codes of length 07 bits (003 total): 60 61 71
Codes of length 08 bits (004 total): 03 22 42 81
Codes of length 09 bits (002 total): 13 62
Codes of length 10 bits (001 total): 43
Codes of length 11 bits (005 total): 23 52 70 80 A1
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 031
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000047A9
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00004E79
Huffman table length = 41
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (003 total): 10 21 31
Codes of length 05 bits (004 total): 41 61 71 81
Codes of length 06 bits (002 total): 20 51
Codes of length 07 bits (002 total): 30 91
Codes of length 08 bits (003 total): A1 D1 F0
Codes of length 09 bits (001 total): 40
Codes of length 10 bits (001 total): B1
Codes of length 11 bits (001 total): C1
Codes of length 12 bits (001 total): F1
Codes of length 13 bits (001 total): E1
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 022
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00004EA4
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00007B0B
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),1(AC)
Component[3]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000083AB
Huffman table length = 31
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (000 total):
Codes of length 04 bits (003 total): 10 11 20
Codes of length 05 bits (000 total):
Codes of length 06 bits (003 total): 21 30 31
Codes of length 07 bits (001 total): 41
Codes of length 08 bits (001 total): 51
Codes of length 09 bits (001 total): 40
Codes of length 10 bits (001 total): 61
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000083CC
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000088BF
Huffman table length = 31
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (003 total): 00 10 11
Codes of length 04 bits (001 total): 20
Codes of length 05 bits (001 total): 30
Codes of length 06 bits (000 total):
Codes of length 07 bits (003 total): 21 31 41
Codes of length 08 bits (001 total): 40
Codes of length 09 bits (001 total): 51
Codes of length 10 bits (001 total): 71
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000088E0
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00008C75
Huffman table length = 41
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (002 total): 41 51
Codes of length 06 bits (001 total): 61
Codes of length 07 bits (003 total): 10 71 81
Codes of length 08 bits (003 total): 91 A1 B1
Codes of length 09 bits (005 total): 20 30 C1 D1 F1
Codes of length 10 bits (001 total): E1
Codes of length 11 bits (001 total): F0
Codes of length 12 bits (001 total): 40
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 022
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00008CA0
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000EDFD
*** Searching Compression Signatures ***
Signature: 01B8FDD60747E53114DC15797CC09B4E
Signature (Rotated): 011975EE86201F10E48E4F365C73A839
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[IJG Library ] [071 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [071 ]
SW :[IrfanView ] [071 ]
SW :[idImager ] [071 ]
SW :[FastStone Image Viewer ] [071 ]
SW :[NeatImage ] [071 ]
SW :[Paint.NET ] [071 ]
SW :[Photomatix ] [071 ]
SW :[XnView ] [071 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

471
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue178-BadCoeffsProgressive-Lemon.jpg.txt

@ -0,0 +1,471 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue178-BadCoeffsProgressive-Lemon.jpg]
Filesize: [279270] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 1 1 1 1 1 1 1 1
DQT, Row #1: 1 1 1 1 1 1 1 1
DQT, Row #2: 1 1 1 1 1 1 1 1
DQT, Row #3: 1 1 1 1 1 2 2 1
DQT, Row #4: 1 1 1 1 1 2 2 2
DQT, Row #5: 1 1 1 1 2 2 2 2
DQT, Row #6: 1 1 2 2 2 2 2 2
DQT, Row #7: 1 2 2 2 2 2 2 2
Approx quality factor = 98.32 (scaling=3.35 variance=5.00)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 1 1 1 1 2 2 2 2
DQT, Row #1: 1 1 1 1 2 2 2 2
DQT, Row #2: 1 1 1 2 2 2 2 2
DQT, Row #3: 1 1 2 2 2 2 2 2
DQT, Row #4: 2 2 2 2 2 2 2 2
DQT, Row #5: 2 2 2 2 2 2 2 2
DQT, Row #6: 2 2 2 2 2 2 2 2
DQT, Row #7: 2 2 2 2 2 2 2 2
Approx quality factor = 98.83 (scaling=2.34 variance=0.89)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 710
Samples per Line = 710
Image Size = 710 x 710
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 30
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 05
Codes of length 03 bits (004 total): 03 04 06 07
Codes of length 04 bits (003 total): 00 02 08
Codes of length 05 bits (001 total): 01
Codes of length 06 bits (001 total): 09
Codes of length 07 bits (001 total): 0A
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 011
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000D1
Huffman table length = 29
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 03
Codes of length 03 bits (005 total): 00 01 02 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 010
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000000F0
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),0(AC)
Component[3]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002D06
Huffman table length = 49
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 02
Codes of length 03 bits (004 total): 00 01 03 04
Codes of length 04 bits (002 total): 05 11
Codes of length 05 bits (002 total): 06 12
Codes of length 06 bits (002 total): 13 21
Codes of length 07 bits (002 total): 07 14
Codes of length 08 bits (001 total): 22
Codes of length 09 bits (003 total): 10 15 31
Codes of length 10 bits (004 total): 16 23 32 41
Codes of length 11 bits (001 total): 20
Codes of length 12 bits (004 total): 08 30 33 50
Codes of length 13 bits (003 total): 24 40 42
Codes of length 14 bits (001 total): 34
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 030
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00002D39
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00007ADB
Huffman table length = 72
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 00 02 03
Codes of length 04 bits (002 total): 04 11
Codes of length 05 bits (003 total): 12 21 31
Codes of length 06 bits (005 total): 05 22 41 51 61
Codes of length 07 bits (005 total): 06 13 71 81 A1
Codes of length 08 bits (005 total): 14 32 91 B1 F0
Codes of length 09 bits (006 total): 23 42 52 C1 D1 E1
Codes of length 10 bits (004 total): 10 15 33 62
Codes of length 11 bits (003 total): 07 82 F1
Codes of length 12 bits (006 total): 20 24 30 43 72 A2
Codes of length 13 bits (006 total): 16 34 53 92 B2 E2
Codes of length 14 bits (003 total): 25 44 93
Codes of length 15 bits (001 total): D2
Codes of length 16 bits (000 total):
Total number of codes: 053
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00007B25
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000A7E3
Huffman table length = 74
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 02 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (005 total): 05 12 21 31 41
Codes of length 06 bits (005 total): 06 13 22 51 61
Codes of length 07 bits (004 total): 32 71 81 91
Codes of length 08 bits (006 total): 14 42 52 A1 B1 F0
Codes of length 09 bits (008 total): 07 10 15 23 62 C1 D1 E1
Codes of length 10 bits (004 total): 33 43 72 92
Codes of length 11 bits (004 total): 24 82 A2 F1
Codes of length 12 bits (004 total): 16 34 63 D2
Codes of length 13 bits (006 total): 20 40 53 B2 C2 E2
Codes of length 14 bits (003 total): 17 25 30
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 055
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000A82F
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000E96D
Huffman table length = 84
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (003 total): 00 03 21
Codes of length 05 bits (005 total): 04 12 31 41 51
Codes of length 06 bits (004 total): 05 22 61 71
Codes of length 07 bits (006 total): 13 32 81 91 A1 F0
Codes of length 08 bits (008 total): 10 14 23 42 52 B1 C1 D1
Codes of length 09 bits (003 total): 33 62 E1
Codes of length 10 bits (005 total): 06 72 82 92 F1
Codes of length 11 bits (006 total): 15 20 24 43 53 A2
Codes of length 12 bits (004 total): 30 34 63 73
Codes of length 13 bits (004 total): 44 83 B2 C2
Codes of length 14 bits (005 total): 40 50 93 A3 D2
Codes of length 15 bits (002 total): 16 25
Codes of length 16 bits (007 total): 26 35 54 60 64 B3 E2
Total number of codes: 065
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000E9C3
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0001AD55
Huffman table length = 40
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 11 21
Codes of length 04 bits (002 total): 00 31
Codes of length 05 bits (002 total): 41 51
Codes of length 06 bits (002 total): 61 71
Codes of length 07 bits (002 total): 81 91
Codes of length 08 bits (002 total): A1 B1
Codes of length 09 bits (003 total): C1 D1 F0
Codes of length 10 bits (000 total):
Codes of length 11 bits (003 total): 10 E1 F1
Codes of length 12 bits (001 total): 20
Codes of length 13 bits (001 total): 30
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 021
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0001AD7F
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000287B1
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=0(DC),0(AC)
Component[3]: selector=0x03, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00028DB3
Huffman table length = 39
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 11 21
Codes of length 04 bits (002 total): 00 31
Codes of length 05 bits (001 total): 41
Codes of length 06 bits (003 total): 51 61 71
Codes of length 07 bits (003 total): 81 91 F0
Codes of length 08 bits (005 total): A1 B1 C1 D1 E1
Codes of length 09 bits (001 total): F1
Codes of length 10 bits (001 total): 10
Codes of length 11 bits (001 total): 20
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 020
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00028DDC
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0002CD0C
Huffman table length = 41
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 11 21
Codes of length 04 bits (002 total): 00 31
Codes of length 05 bits (002 total): 41 51
Codes of length 06 bits (001 total): 61
Codes of length 07 bits (004 total): 71 81 91 F0
Codes of length 08 bits (002 total): A1 B1
Codes of length 09 bits (003 total): C1 D1 E1
Codes of length 10 bits (001 total): F1
Codes of length 11 bits (001 total): 30
Codes of length 12 bits (001 total): 10
Codes of length 13 bits (001 total): 20
Codes of length 14 bits (001 total): 40
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 022
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0002CD37
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00031187
Huffman table length = 38
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 11
Codes of length 03 bits (001 total): 21
Codes of length 04 bits (000 total):
Codes of length 05 bits (003 total): 00 31 41
Codes of length 06 bits (000 total):
Codes of length 07 bits (002 total): 51 61
Codes of length 08 bits (002 total): 71 81
Codes of length 09 bits (002 total): 91 A1
Codes of length 10 bits (002 total): B1 C1
Codes of length 11 bits (003 total): D1 E1 F0
Codes of length 12 bits (001 total): F1
Codes of length 13 bits (001 total): 10
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 019
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000311AF
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x000442E4
*** Searching Compression Signatures ***
Signature: 01C7F83908166C226C06A44017421732
Signature (Rotated): 01D3EFDD3855C42AE3E0E6289F1A6726
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[Canon ] [Canon EOS-1Ds Mark II ] [fine ] No
CAM:[CASIO COMPUTER CO.,LTD. ] [EX-Z1000 ] [ ] Yes
CAM:[NIKON ] [NIKON D2X ] [FINE ] No
CAM:[NIKON ] [NIKON D3 ] [FINE ] No
CAM:[SIGMA ] [SIGMA SD10 ] [Qual:12 ] No
CAM:[SIGMA ] [SIGMA SD10 ] [Qual:12 ] No
CAM:[SIGMA ] [SIGMA SD14 ] [Qual:12 ] No
CAM:[SIGMA ] [SIGMA SD14 ] [Qual:12 ] No
CAM:[SONY ] [DSC-H2 ] [ ] No
CAM:[SONY ] [DSC-R1 ] [ ] No
CAM:[SONY ] [DSC-W7 ] [ ] No
SW :[Digital Photo Professiona] [09 ]
SW :[IJG Library ] [099 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [099 ]
SW :[IrfanView ] [099 ]
SW :[idImager ] [099 ]
SW :[FastStone Image Viewer ] [099 ]
SW :[NeatImage ] [099 ]
SW :[Paint.NET ] [099 ]
SW :[Photomatix ] [099 ]
SW :[XnView ] [099 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

94
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue214-CriticalEOF .jpg.txt

@ -0,0 +1,94 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue214-CriticalEOF .jpg]
Filesize: [35601] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 300 x 300 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 39251
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x0015
[Make ] = "NIKON CORPORATION"
[Model ] = "NIKON D40"
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 300/1
[YResolution ] = 300/1
[ResolutionUnit ] = Inch
[Software ] = "Ver.1.10 "
[DateTime ] = "2009:02:17 08:30:16"
[YCbCrPositioning ] = Co-sited
[ExifOffset ] = @ 0x015C
[CustomRendered ] = Normal process
[ExposureMode ] = Auto exposure
[WhiteBalance ] = Auto white balance
[SceneCaptureType ] = Standard
Offset to Next IFD = 0x00007652
EXIF IFD1 @ Absolute 0x00007670
Dir Length = 0x0007
[Compression ] = JPEG
[XResolution ] = 300/1
[YResolution ] = 300/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x76BC = @ 0x76DA
[JpegIFByteCount ] = 0x[0000228F] / 8847
[YCbCrPositioning ] = Co-sited
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x0000017A
Dir Length = 0x001C
[ExposureTime ] = 10/1250 s
[FNumber ] = F5.6
[ExposureProgram ] = Not defined
[ISOSpeedRatings ] = 220
[ExifVersion ] = 02.21
[DateTimeOriginal ] = "2009:02:17 08:30:16"
[DateTimeDigitized ] = "2009:02:17 08:30:15"
[ComponentsConfiguration ] = [Y Cb Cr .]
[CompressedBitsPerPixel ] = 1/1
[ExposureBiasValue ] = 0.00 eV
[MaxApertureValue ] = 41/10
[MeteringMode ] = Pattern
[LightSource ] = unknown
[Flash ] = Flash did not fire
[FocalLength ] = 30 mm
[MakerNote ] = @ 0x030A
[UserComment ] = " "
[SubSecTime ] = "60"
[SubSecTimeOriginal ] = "60"
[SubSecTimeDigitized ] = "60"
[FlashPixVersion ] = 01.00
[ColorSpace ] = sRGB
[ExifImageWidth ] = 3008
[ExifImageHeight ] = 2000
[SensingMethod ] = One-chip color area sensor
[FileSource ] = DSC
[SceneType ] = A directly photographed image
[CFAPattern ] =
= [ Blu Grn ]
= [ Grn Red ]
EXIF MakerIFD @ Absolute 0x00000328
Makernote decode option not enabled.
ERROR: Early EOF - file may be missing EOI

468
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue385-BadZigZag-Progressive.jpg.txt

@ -0,0 +1,468 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue385-BadZigZag-Progressive.jpg]
Filesize: [388517] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 5 3 3 5 7 12 15 18
DQT, Row #1: 4 4 4 6 8 17 18 17
DQT, Row #2: 4 4 5 7 12 17 21 17
DQT, Row #3: 4 5 7 9 15 26 24 19
DQT, Row #4: 5 7 11 17 20 33 31 23
DQT, Row #5: 7 11 17 19 24 31 34 28
DQT, Row #6: 15 19 23 26 31 36 36 30
DQT, Row #7: 22 28 29 29 34 30 31 30
Approx quality factor = 84.93 (scaling=30.13 variance=1.05)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 5 5 7 14 30 30 30 30
DQT, Row #1: 5 6 8 20 30 30 30 30
DQT, Row #2: 7 8 17 30 30 30 30 30
DQT, Row #3: 14 20 30 30 30 30 30 30
DQT, Row #4: 30 30 30 30 30 30 30 30
DQT, Row #5: 30 30 30 30 30 30 30 30
DQT, Row #6: 30 30 30 30 30 30 30 30
DQT, Row #7: 30 30 30 30 30 30 30 30
Approx quality factor = 84.93 (scaling=30.15 variance=0.29)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 1440
Samples per Line = 1920
Image Size = 1920 x 1440
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 28
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (003 total): 02 03 04
Codes of length 04 bits (001 total): 05
Codes of length 05 bits (001 total): 06
Codes of length 06 bits (001 total): 07
Codes of length 07 bits (001 total): 08
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000CF
Huffman table length = 25
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 04
Codes of length 06 bits (001 total): 05
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 006
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000000EA
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),0(AC)
Component[3]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00007E0B
Huffman table length = 55
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (003 total): 04 12 21
Codes of length 06 bits (002 total): 05 10
Codes of length 07 bits (004 total): 13 20 22 31
Codes of length 08 bits (004 total): 06 14 30 41
Codes of length 09 bits (005 total): 15 32 33 34 40
Codes of length 10 bits (005 total): 23 24 35 42 50
Codes of length 11 bits (000 total):
Codes of length 12 bits (002 total): 25 70
Codes of length 13 bits (003 total): 16 44 60
Codes of length 14 bits (001 total): 36
Codes of length 15 bits (001 total): 45
Codes of length 16 bits (001 total): 43
Total number of codes: 036
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00007E44
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00012C0C
Huffman table length = 46
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (004 total): 02 10 12 20
Codes of length 05 bits (000 total):
Codes of length 06 bits (004 total): 03 21 30 31
Codes of length 07 bits (006 total): 13 32 40 41 50 51
Codes of length 08 bits (002 total): 22 61
Codes of length 09 bits (002 total): 04 60
Codes of length 10 bits (003 total): 23 33 71
Codes of length 11 bits (001 total): 42
Codes of length 12 bits (001 total): 05
Codes of length 13 bits (001 total): 43
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 027
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00012C3C
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00013C45
Huffman table length = 43
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (004 total): 02 10 12 20
Codes of length 05 bits (001 total): 30
Codes of length 06 bits (004 total): 03 21 31 40
Codes of length 07 bits (002 total): 41 50
Codes of length 08 bits (002 total): 13 51
Codes of length 09 bits (002 total): 22 60
Codes of length 10 bits (003 total): 32 42 61
Codes of length 11 bits (001 total): 04
Codes of length 12 bits (001 total): 81
Codes of length 13 bits (001 total): 71
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 024
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00013C72
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000148F2
Huffman table length = 75
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (000 total):
Codes of length 04 bits (004 total): 02 11 21 31
Codes of length 05 bits (002 total): 03 10
Codes of length 06 bits (006 total): 12 20 22 32 41 51
Codes of length 07 bits (007 total): 04 30 33 61 71 81 91
Codes of length 08 bits (005 total): 13 40 50 52 72
Codes of length 09 bits (007 total): 23 34 42 62 82 92 A1
Codes of length 10 bits (001 total): B1
Codes of length 11 bits (006 total): 14 60 70 73 C1 E1
Codes of length 12 bits (005 total): 05 63 83 A2 D1
Codes of length 13 bits (004 total): 24 43 53 93
Codes of length 14 bits (002 total): 74 F0
Codes of length 15 bits (002 total): 15 B2
Codes of length 16 bits (003 total): 35 E2 F1
Total number of codes: 056
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0001493F
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0001BD13
Huffman table length = 44
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 11
Codes of length 03 bits (000 total):
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (002 total): 41 51
Codes of length 06 bits (002 total): 10 61
Codes of length 07 bits (001 total): 71
Codes of length 08 bits (004 total): 20 81 91 A1
Codes of length 09 bits (002 total): 30 B1
Codes of length 10 bits (002 total): C1 F0
Codes of length 11 bits (003 total): 40 D1 F1
Codes of length 12 bits (001 total): E1
Codes of length 13 bits (001 total): 50
Codes of length 14 bits (001 total): 60
Codes of length 15 bits (001 total): 70
Codes of length 16 bits (000 total):
Total number of codes: 025
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0001BD41
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0002C20D
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=0(DC),0(AC)
Component[3]: selector=0x03, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0002E1DF
Huffman table length = 37
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (000 total):
Codes of length 05 bits (002 total): 21 31
Codes of length 06 bits (002 total): 10 41
Codes of length 07 bits (003 total): 20 51 61
Codes of length 08 bits (001 total): 71
Codes of length 09 bits (001 total): 30
Codes of length 10 bits (001 total): 81
Codes of length 11 bits (001 total): 40
Codes of length 12 bits (001 total): 91
Codes of length 13 bits (001 total): A1
Codes of length 14 bits (001 total): B1
Codes of length 15 bits (001 total): C1
Codes of length 16 bits (000 total):
Total number of codes: 018
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0002E206
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000313D7
Huffman table length = 36
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 11
Codes of length 03 bits (000 total):
Codes of length 04 bits (003 total): 10 21 31
Codes of length 05 bits (000 total):
Codes of length 06 bits (003 total): 20 41 51
Codes of length 07 bits (001 total): 61
Codes of length 08 bits (001 total): 71
Codes of length 09 bits (001 total): 30
Codes of length 10 bits (001 total): 81
Codes of length 11 bits (001 total): 40
Codes of length 12 bits (001 total): 91
Codes of length 13 bits (001 total): B1
Codes of length 14 bits (001 total): A1
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 017
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000313FD
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00033E31
Huffman table length = 40
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (002 total): 41 51
Codes of length 06 bits (002 total): 61 71
Codes of length 07 bits (002 total): 81 91
Codes of length 08 bits (002 total): A1 B1
Codes of length 09 bits (003 total): 10 C1 D1
Codes of length 10 bits (001 total): F0
Codes of length 11 bits (001 total): E1
Codes of length 12 bits (001 total): F1
Codes of length 13 bits (001 total): 20
Codes of length 14 bits (001 total): 30
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 021
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00033E5B
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0005EDA3
*** Searching Compression Signatures ***
Signature: 0155D875C95B74D0F3C5835A62516F48
Signature (Rotated): 01D38A25358EB7649A254E19F1D46600
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[Nokia ] [N73 ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C2000Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[PENTAX ] [PENTAX Optio 550 ] [ ] No
CAM:[Research In Motion ] [BlackBerry 8100 ] [ ] No
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
SW :[IJG Library ] [085 ]
SW :[Picasa ] [085 (Normal) ]
SW :[ZoomBrowser EX ] [medium ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [085 ]
SW :[IrfanView ] [085 ]
SW :[idImager ] [085 ]
SW :[FastStone Image Viewer ] [085 ]
SW :[NeatImage ] [085 ]
SW :[Paint.NET ] [085 ]
SW :[Photomatix ] [085 ]
SW :[XnView ] [085 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

438
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue394-MultiHuffmanBaseline-Speakers.jpg.txt

@ -0,0 +1,438 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue394-MultiHuffmanBaseline-Speakers.jpg]
Filesize: [257401] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00000002
Length = 576
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 560 bytes
Preferred CMM Type : 'ADBE' (0x41444245)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 1999-06-03 00:00:00
Profile file signature : 'acsp' (0x61637370)
Primary platform : Apple Computer, Inc. ('APPL' (0x4150504C))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : 'none' (0x6E6F6E65)
Device Model : '....' (0x00000000)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'ADBE' (0x41444245)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: APP13 (xFFED) ***
OFFSET: 0x00000244
Length = 90
Identifier = [Photoshop 3.0]
8BIM: [0x0404] Name="" Len=[0x003D] DefinedName="IPTC-NAA record"
IPTC [001:090] Coded Character Set = "%G"
IPTC [002:000] Record Version = 3
IPTC [002:055] Date Created = "20161215"
IPTC [002:060] Time Created = "043026-0600"
IPTC [002:221] ? = ???
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000002A0
Table length = 132
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 4 4 6 9 11 12 16
DQT, Row #1: 4 5 5 6 8 10 12 12
DQT, Row #2: 4 5 5 6 10 12 12 12
DQT, Row #3: 6 6 6 11 12 12 12 12
DQT, Row #4: 9 8 10 12 12 12 12 12
DQT, Row #5: 11 10 12 12 12 12 12 12
DQT, Row #6: 12 12 12 12 12 12 12 12
DQT, Row #7: 16 12 12 12 12 12 12 12
Approx quality factor = 88.28 (scaling=23.43 variance=111.68)
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 7 7 13 24 20 20 17 17
DQT, Row #1: 7 12 16 14 14 12 12 12
DQT, Row #2: 13 16 14 14 12 12 12 12
DQT, Row #3: 24 14 14 12 12 12 12 12
DQT, Row #4: 20 14 12 12 12 12 12 12
DQT, Row #5: 20 12 12 12 12 12 12 12
DQT, Row #6: 17 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
Approx quality factor = 90.19 (scaling=19.62 variance=201.04)
*** Marker: DRI (Restart Interval) (xFFDD) ***
OFFSET: 0x00000326
Length = 4
interval = 115
*** Marker: APP14 (xFFEE) ***
OFFSET: 0x0000032C
Length = 14
DCTEncodeVersion = 100
APP14Flags0 = 49152
APP14Flags1 = 0
ColorTransform = 1 [YCbCr]
*** Marker: SOF1 (Extended Sequential DCT, Huffman) (xFFC1) ***
OFFSET: 0x0000033C
Frame header length = 17
Precision = 8
Number of Lines = 496
Samples per Line = 920
Image Size = 920 x 496
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x00, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000034F
Huffman table length = 626
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 05
Codes of length 03 bits (005 total): 02 03 04 06 07
Codes of length 04 bits (001 total): 01
Codes of length 05 bits (001 total): 08
Codes of length 06 bits (001 total): 00
Codes of length 07 bits (000 total):
Codes of length 08 bits (003 total): 09 0A 0B
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 02 03
Codes of length 03 bits (003 total): 01 04 05
Codes of length 04 bits (001 total): 00
Codes of length 05 bits (001 total): 06
Codes of length 06 bits (000 total):
Codes of length 07 bits (002 total): 07 08
Codes of length 08 bits (003 total): 09 0A 0B
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 2
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (003 total): 00 03 04
Codes of length 04 bits (001 total): 05
Codes of length 05 bits (000 total):
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (005 total): 07 08 09 0A 0B
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (002 total): 03 11
Codes of length 04 bits (002 total): 04 12
Codes of length 05 bits (001 total): 21
Codes of length 06 bits (003 total): 00 05 13
Codes of length 07 bits (002 total): 22 31
Codes of length 08 bits (004 total): 06 14 32 41
Codes of length 09 bits (002 total): 23 51
Codes of length 10 bits (003 total): 15 42 61
Codes of length 11 bits (005 total): 07 16 33 52 71
Codes of length 12 bits (006 total): 24 43 62 81 91 F0
Codes of length 13 bits (006 total): 25 34 72 A1 B1 C1
Codes of length 14 bits (012 total): 08 18 26 46 53 63 82 92 93 D1 D2 F1
Codes of length 15 bits (111 total): 09 0A 17 19 1A 27 28 29 2A 35 36 37 38 39 3A 44
45 47 48 49 4A 54 55 56 57 58 59 5A 64 65 66 67
68 69 6A 73 74 75 76 77 78 79 7A 83 84 85 86 87
88 89 8A 94 95 96 97 98 99 9A A2 A3 A4 A5 A6 A7
A8 A9 AA B2 B3 B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5
C6 C7 C8 C9 CA D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3
E4 E5 E6 E7 E8 E9 EA F2 F3 F4 F5 F6 F7 F8 F9
Codes of length 16 bits (001 total): FA
Total number of codes: 162
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (003 total): 02 21 31
Codes of length 05 bits (004 total): 41 51 61 F0
Codes of length 06 bits (006 total): 03 12 13 71 81 91
Codes of length 07 bits (006 total): 14 A1 B1 C1 D1 E1
Codes of length 08 bits (002 total): 04 F1
Codes of length 09 bits (002 total): 22 32
Codes of length 10 bits (002 total): 52 62
Codes of length 11 bits (004 total): 05 42 72 A2
Codes of length 12 bits (125 total): 06 07 08 09 0A 15 16 17 18 19 1A 23 24 25 26 27
28 29 2A 33 34 35 36 37 38 39 3A 43 44 45 46 47
48 49 4A 53 54 55 56 57 58 59 5A 63 64 65 66 67
68 69 6A 73 74 75 76 77 78 79 7A 82 83 84 85 86
87 88 89 8A 92 93 94 95 96 97 98 99 9A A3 A4 A5
A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7 B8 B9 BA C2 C3
C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5 D6 D7 D8 D9 DA
E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3 F4 F5
Codes of length 13 bits (005 total): F6 F7 F8 F9 FA
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 162
----
Destination ID = 2
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (001 total): 02
Codes of length 05 bits (005 total): 12 21 31 41 51
Codes of length 06 bits (004 total): 03 61 71 F0
Codes of length 07 bits (004 total): 13 81 91 A1
Codes of length 08 bits (006 total): 04 14 C1 D1 E1 F1
Codes of length 09 bits (002 total): 22 B1
Codes of length 10 bits (001 total): 42
Codes of length 11 bits (004 total): 32 52 92 D2
Codes of length 12 bits (131 total): 05 06 07 08 09 0A 15 16 17 18 19 1A 23 24 25 26
27 28 29 2A 33 34 35 36 37 38 39 3A 43 44 45 46
47 48 49 4A 53 54 55 56 57 58 59 5A 62 63 64 65
66 67 68 69 6A 72 73 74 75 76 77 78 79 7A 82 83
84 85 86 87 88 89 8A 93 94 95 96 97 98 99 9A A2
A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7 B8 B9
BA C2 C3 C4 C5 C6 C7 C8 C9 CA D3 D4 D5 D6 D7 D8
D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3 F4 F5 F6
F7 F8 F9
Codes of length 13 bits (001 total): FA
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000005C3
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),1(AC)
Component[3]: selector=0x02, table=2(DC),2(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x000005D1
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x0003ED77.0
Compression stats:
Compression Ratio: 5.35:1
Bits per pixel: 4.49:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 1109 ( 16%)
# codes of length 03 bits: 4934 ( 69%)
# codes of length 04 bits: 705 ( 10%)
# codes of length 05 bits: 22 ( 0%)
# codes of length 06 bits: 360 ( 5%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 2599 ( 36%)
# codes of length 03 bits: 2938 ( 41%)
# codes of length 04 bits: 1592 ( 22%)
# codes of length 05 bits: 1 ( 0%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 2, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 3838 ( 54%)
# codes of length 03 bits: 3132 ( 44%)
# codes of length 04 bits: 156 ( 2%)
# codes of length 05 bits: 0 ( 0%)
# codes of length 06 bits: 4 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 170962 ( 54%)
# codes of length 03 bits: 67518 ( 21%)
# codes of length 04 bits: 33616 ( 11%)
# codes of length 05 bits: 9306 ( 3%)
# codes of length 06 bits: 15458 ( 5%)
# codes of length 07 bits: 7462 ( 2%)
# codes of length 08 bits: 6393 ( 2%)
# codes of length 09 bits: 1640 ( 1%)
# codes of length 10 bits: 1220 ( 0%)
# codes of length 11 bits: 975 ( 0%)
# codes of length 12 bits: 581 ( 0%)
# codes of length 13 bits: 213 ( 0%)
# codes of length 14 bits: 134 ( 0%)
# codes of length 15 bits: 75 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 11236 ( 26%)
# codes of length 03 bits: 12123 ( 28%)
# codes of length 04 bits: 7424 ( 17%)
# codes of length 05 bits: 5864 ( 13%)
# codes of length 06 bits: 4420 ( 10%)
# codes of length 07 bits: 1997 ( 5%)
# codes of length 08 bits: 545 ( 1%)
# codes of length 09 bits: 244 ( 1%)
# codes of length 10 bits: 61 ( 0%)
# codes of length 11 bits: 41 ( 0%)
# codes of length 12 bits: 31 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 2, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 15434 ( 46%)
# codes of length 03 bits: 3540 ( 11%)
# codes of length 04 bits: 2524 ( 8%)
# codes of length 05 bits: 5638 ( 17%)
# codes of length 06 bits: 3224 ( 10%)
# codes of length 07 bits: 1556 ( 5%)
# codes of length 08 bits: 1170 ( 3%)
# codes of length 09 bits: 277 ( 1%)
# codes of length 10 bits: 14 ( 0%)
# codes of length 11 bits: 111 ( 0%)
# codes of length 12 bits: 34 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[ 97] (range: 0..255)
Brightest Pixel Search:
YCC=[ 762, 70, -70] RGB=[210,226,237] @ MCU[ 56, 4]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 61
Next position in scan buffer: Offset 0x0003ED76.3
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0003ED77
*** Searching Compression Signatures ***
Signature: 01180AF3DE63318828A86409EF4013DD
Signature (Rotated): 01180AF3DE63318828A86409EF4013DD
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[Adobe Photoshop ] [Save As 08 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

406
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue517-No-EOI-Progressive.jpg.txt

@ -0,0 +1,406 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue517-No-EOI-Progressive.jpg]
Filesize: [2192567] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 500 x 500 (aspect ratio)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 248
Identifier = [Exif]
Identifier TIFF = 0x[4D4D002A 00000008]
Endian = Motorola (big)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x0007
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 500/1
[YResolution ] = 500/1
[ResolutionUnit ] = Inch
[Software ] = "Adobe Photoshop CS6 (Macintosh)"
[DateTime ] = "2018:01:06 12:59:23"
[ExifOffset ] = @ 0x00A6
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000000C4
Dir Length = 0x0004
[DateTimeDigitized ] = "2018:01:06 04:40:19"
[ColorSpace ] = sRGB
[ExifImageWidth ] = 0x[000008CA] / 2250
[ExifImageHeight ] = 0x[000008CA] / 2250
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x0000010E
Length = 4875
Identifier = [http://ns.adobe.com/xap/1.0/]
XMP =
*** Marker: APP13 (xFFED) ***
OFFSET: 0x0000141B
Length = 100
Identifier = [Photoshop 3.0]
8BIM: [0x0404] Name="" Len=[0x002C] DefinedName="IPTC-NAA record"
IPTC [001:090] Coded Character Set = "%G"
IPTC [002:000] Record Version = 2
IPTC [002:062] Digital Creation Date = "20180106"
IPTC [002:063] Digital Creation Time = "044019-0500"
8BIM: [0x0425] Name="" Len=[0x0010] DefinedName="Caption digest"
Caption digest = | 0x5D 51 F3 F0 D0 DE FC 5F 94 67 16 6F B1 02 A3 89 | ]Q....._.g.o....
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x00001481
Frame header length = 17
Precision = 8
Number of Lines = 2250
Samples per Line = 2250
Image Size = 2250 x 2250
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00001494
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 03
Codes of length 03 bits (005 total): 02 04 01 05 00
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000014B5
Huffman table length = 195
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 02 00 03
Codes of length 04 bits (003 total): 11 04 12
Codes of length 05 bits (002 total): 21 05
Codes of length 06 bits (004 total): 31 13 22 10
Codes of length 07 bits (003 total): 06 41 51
Codes of length 08 bits (004 total): 32 14 61 71
Codes of length 09 bits (006 total): 23 07 81 20 91 42
Codes of length 10 bits (004 total): 15 A1 52 33
Codes of length 11 bits (007 total): B1 24 62 30 16 C1 72
Codes of length 12 bits (006 total): D1 43 92 34 82 08
Codes of length 13 bits (004 total): E1 53 40 25
Codes of length 14 bits (008 total): 63 17 35 F0 93 73 A2 50
Codes of length 15 bits (006 total): 44 B2 83 F1 26 54
Codes of length 16 bits (115 total): 36 64 94 74 C2 60 D2 84 A3 18 70 E2 27 45 37 65
B3 55 75 A4 95 C3 85 F2 D3 46 76 80 E3 47 56 66
B4 09 0A 19 1A 28 29 2A 38 39 3A 48 49 4A 57 58
59 5A 67 68 69 6A 77 78 79 7A 86 87 88 89 8A 90
96 97 98 99 9A A0 A5 A6 A7 A8 A9 AA B0 B5 B6 B7
B8 B9 BA C0 C4 C5 C6 C7 C8 C9 CA D0 D4 D5 D6 D7
D8 D9 DA E0 E4 E5 E6 E7 E8 E9 EA F3 F4 F5 F6 F7
F8 F9 FA
Total number of codes: 176
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000157A
Huffman table length = 31
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 01 02 00
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000159B
Huffman table length = 195
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 00
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (003 total): 10 12 21
Codes of length 06 bits (003 total): 04 20 31
Codes of length 07 bits (003 total): 41 13 05
Codes of length 08 bits (002 total): 30 22
Codes of length 09 bits (003 total): 32 51 14
Codes of length 10 bits (005 total): 40 06 33 23 61
Codes of length 11 bits (002 total): 42 15
Codes of length 12 bits (005 total): 71 52 34 81 50
Codes of length 13 bits (002 total): 24 91
Codes of length 14 bits (004 total): A1 43 B1 16
Codes of length 15 bits (004 total): 07 62 35 53
Codes of length 16 bits (135 total): F0 D1 25 60 C1 44 E1 72 F1 17 82 63 36 70 26 45
54 92 27 A2 D2 08 09 0A 18 19 1A 28 29 2A 37 38
39 3A 46 47 48 49 4A 55 56 57 58 59 5A 64 65 66
67 68 69 6A 73 74 75 76 77 78 79 7A 80 83 84 85
86 87 88 89 8A 90 93 94 95 96 97 98 99 9A A0 A3
A4 A5 A6 A7 A8 A9 AA B0 B2 B3 B4 B5 B6 B7 B8 B9
BA C0 C2 C3 C4 C5 C6 C7 C8 C9 CA D0 D3 D4 D5 D6
D7 D8 D9 DA E0 E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 176
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00001660
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 1 1 1 1 1 1 1 2
DQT, Row #1: 1 1 1 1 1 1 1 2
DQT, Row #2: 1 1 1 1 1 1 2 2
DQT, Row #3: 1 1 1 1 1 2 2 3
DQT, Row #4: 1 1 1 1 2 2 3 3
DQT, Row #5: 1 1 1 2 2 3 3 3
DQT, Row #6: 1 1 2 2 3 3 3 3
DQT, Row #7: 2 2 2 3 3 3 3 3
Approx quality factor = 98.11 (scaling=3.79 variance=4.10)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000016A5
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 1 1 1 2 3 3 3 3
DQT, Row #1: 1 1 1 2 3 3 3 3
DQT, Row #2: 1 1 2 3 3 3 3 3
DQT, Row #3: 2 2 3 3 3 3 3 3
DQT, Row #4: 3 3 3 3 3 3 3 3
DQT, Row #5: 3 3 3 3 3 3 3 3
DQT, Row #6: 3 3 3 3 3 3 3 3
DQT, Row #7: 3 3 3 3 3 3 3 3
Approx quality factor = 98.36 (scaling=3.29 variance=0.42)
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000016EA
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00023AAF
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0003E82C
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0006B107
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0008AA32
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000BA727
Huffman table length = 51
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (003 total): 11 00 21
Codes of length 04 bits (000 total):
Codes of length 05 bits (002 total): 31 41
Codes of length 06 bits (002 total): 51 61
Codes of length 07 bits (002 total): 71 81
Codes of length 08 bits (002 total): 91 A1
Codes of length 09 bits (002 total): B1 C1
Codes of length 10 bits (003 total): F0 D1 10
Codes of length 11 bits (001 total): E1
Codes of length 12 bits (001 total): F1
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (002 total): 20 30
Codes of length 16 bits (011 total): 40 50 60 70 80 90 A0 B0 C0 D0 E0
Total number of codes: 032
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000BA75C
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000FE1E7
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x001056B6
Huffman table length = 51
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (000 total):
Codes of length 05 bits (003 total): 21 31 10
Codes of length 06 bits (000 total):
Codes of length 07 bits (001 total): 41
Codes of length 08 bits (002 total): 51 61
Codes of length 09 bits (005 total): 20 71 F0 91 81
Codes of length 10 bits (005 total): A1 B1 D1 C1 E1
Codes of length 11 bits (001 total): F1
Codes of length 12 bits (001 total): 30
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): 40
Codes of length 15 bits (001 total): 50
Codes of length 16 bits (009 total): 60 70 80 90 A0 B0 C0 D0 E0
Total number of codes: 032
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x001056EB
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0014E060
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x001879C8
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x002174B5
*** Searching Compression Signatures ***
Signature: 01DADDC4908E9BA57CC067EEAD54E67D
Signature (Rotated): 01DADDC4908E9BA57CC067EEAD54E67D
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: OK [Adobe Photoshop CS6 (Macintosh)]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[Adobe Photoshop ] [Save As 12 ]
NOTE: EXIF Software field recognized as from editor
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited

759
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue518-Bad-RST-Progressive.jpg.txt

@ -0,0 +1,759 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue518-Bad-RST-Progressive.jpg]
Filesize: [3764739] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 300 x 300 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 14215
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x0009
[Make ] = "OLYMPUS CORPORATION"
[Model ] = "E-1"
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 300/1
[YResolution ] = 300/1
[ResolutionUnit ] = Inch
[Software ] = "GIMP 2.8.10"
[DateTime ] = "2017:04:18 16:37:56"
[ExifOffset ] = @ 0x00BE
Offset to Next IFD = 0x000001DC
EXIF IFD1 @ Absolute 0x000001FA
Dir Length = 0x0006
[Compression ] = JPEG
[XResolution ] = 72/1
[YResolution ] = 72/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x023A = @ 0x0258
[JpegIFByteCount ] = 0x[00003545] / 13637
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000000DC
Dir Length = 0x0011
[ExposureTime ] = 1/4 s
[FNumber ] = F18.0
[ExposureProgram ] = Manual
[ISOSpeedRatings ] = 100
[ExifVersion ] = 02.21
[DateTimeOriginal ] = "2005:07:20 20:08:42"
[ShutterSpeedValue ] = 2/1
[ApertureValue ] = 833985/100000
[ExposureBiasValue ] = 0.00 eV
[MaxApertureValue ] = 2972656/1000000
[MeteringMode ] = CenterWeightedAverage
[Flash ] = Flash did not fire
[FocalLength ] = 14 mm
[FlashPixVersion ] = 01.00
[ColorSpace ] = Uncalibrated
[ExifImageWidth ] = 0x[00000BB8] / 3000
[ExifImageHeight ] = 0x[00000BB8] / 3000
*** Marker: COM (Comment) (xFFFE) ***
OFFSET: 0x0000379D
Comment length = 3
Comment=
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x000037A2
Length = 5091
Identifier = [http://ns.adobe.com/xap/1.0/]
XMP =
|<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
|<x:xmpmeta xmlns:x='adobe:ns:meta/'>
|<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
| <rdf:Description xmlns:crs='http://ns.adobe.com/camera-raw-settings/1.0/'>
| <crs:Version>3.1</crs:Version>
| <crs:RawFileName>_7201666.ORF</crs:RawFileName>
| <crs:WhiteBalance>Custom</crs:WhiteBalance>
| <crs:Temperature>7450</crs:Temperature>
| <crs:Tint>-7</crs:Tint>
| <crs:Exposure>-0.75</crs:Exposure>
| <crs:AutoShadows>True</crs:AutoShadows>
| <crs:Shadows>4</crs:Shadows>
| <crs:AutoBrightness>True</crs:AutoBrightness>
| <crs:Brightness>100</crs:Brightness>
| <crs:AutoContrast>True</crs:AutoContrast>
| <crs:Contrast>0</crs:Contrast>
| <crs:Saturation>0</crs:Saturation>
| <crs:Sharpness>25</crs:Sharpness>
| <crs:LuminanceSmoothing>0</crs:LuminanceSmoothing>
| <crs:ColorNoiseReduction>25</crs:ColorNoiseReduction>
| <crs:ChromaticAberrationR>0</crs:ChromaticAberrationR>
| <crs:ChromaticAberrationB>0</crs:ChromaticAberrationB>
| <crs:VignetteAmount>0</crs:VignetteAmount>
| <crs:ShadowTint>0</crs:ShadowTint>
| <crs:RedHue>0</crs:RedHue>
| <crs:RedSaturation>0</crs:RedSaturation>
| <crs:GreenHue>0</crs:GreenHue>
| <crs:GreenSaturation>0</crs:GreenSaturation>
| <crs:BlueHue>0</crs:BlueHue>
| <crs:BlueSaturation>0</crs:BlueSaturation>
| <crs:ToneCurveName>Medium Contrast</crs:ToneCurveName>
| <crs:CameraProfile>ACR 2.4</crs:CameraProfile>
| <crs:HasSettings>True</crs:HasSettings>
| <crs:HasCrop>False</crs:HasCrop>
| <crs:AlreadyApplied>True</crs:AlreadyApplied>
| <crs:ToneCurve>
| <rdf:Seq>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>32, 22</rdf:li>
| <rdf:li>64, 56</rdf:li>
| <rdf:li>128, 128</rdf:li>
| <rdf:li>192, 196</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Seq>
| </crs:ToneCurve>
| <crs:Version>3.1</crs:Version>
| <crs:RawFileName>_7201666.ORF</crs:RawFileName>
| <crs:WhiteBalance>Custom</crs:WhiteBalance>
| <crs:Temperature>7450</crs:Temperature>
| <crs:Tint>-7</crs:Tint>
| <crs:Exposure>-0.75</crs:Exposure>
| <crs:AutoShadows>True</crs:AutoShadows>
| <crs:Shadows>4</crs:Shadows>
| <crs:AutoBrightness>True</crs:AutoBrightness>
| <crs:Brightness>100</crs:Brightness>
| <crs:AutoContrast>True</crs:AutoContrast>
| <crs:Contrast>0</crs:Contrast>
| <crs:Saturation>0</crs:Saturation>
| <crs:Sharpness>25</crs:Sharpness>
| <crs:LuminanceSmoothing>0</crs:LuminanceSmoothing>
| <crs:ColorNoiseReduction>25</crs:ColorNoiseReduction>
| <crs:ChromaticAberrationR>0</crs:ChromaticAberrationR>
| <crs:ChromaticAberrationB>0</crs:ChromaticAberrationB>
| <crs:VignetteAmount>0</crs:VignetteAmount>
| <crs:ShadowTint>0</crs:ShadowTint>
| <crs:RedHue>0</crs:RedHue>
| <crs:RedSaturation>0</crs:RedSaturation>
| <crs:GreenHue>0</crs:GreenHue>
| <crs:GreenSaturation>0</crs:GreenSaturation>
| <crs:BlueHue>0</crs:BlueHue>
| <crs:BlueSaturation>0</crs:BlueSaturation>
| <crs:ToneCurveName>Medium Contrast</crs:ToneCurveName>
| <crs:CameraProfile>ACR 2.4</crs:CameraProfile>
| <crs:HasSettings>True</crs:HasSettings>
| <crs:HasCrop>False</crs:HasCrop>
| <crs:AlreadyApplied>True</crs:AlreadyApplied>
| <crs:ToneCurve>
| <rdf:Bag>
| <rdf:li>0, 0</rdf:li>
| <rdf:li>32, 22</rdf:li>
| <rdf:li>64, 56</rdf:li>
| <rdf:li>128, 128</rdf:li>
| <rdf:li>192, 196</rdf:li>
| <rdf:li>255, 255</rdf:li>
| </rdf:Bag>
| </crs:ToneCurve>
| </rdf:Description>
| <rdf:Description xmlns:xmp='http://ns.adobe.com/xap/1.0/'>
| <xmp:Rating>0</xmp:Rating>
| <xmp:CreatorTool>Adobe Photoshop CS6 (Macintosh)</xmp:CreatorTool>
| <xmp:Rating>0</xmp:Rating>
| <xmp:ModifyDate>2014-06-09T12:43:59-04:00</xmp:ModifyDate>
| <xmp:CreateDate>2005-07-21T18:39:06-06:00</xmp:CreateDate>
| <xmp:MetadataDate>2014-06-09T12:43:59-04:00</xmp:MetadataDate>
| </rdf:Description>
| <rdf:Description xmlns:xmpMM='http://ns.adobe.com/xap/1.0/mm/'>
| <xmpMM:InstanceID>xmp.iid:0A801174072068118083C9374AAA53C2</xmpMM:InstanceID>
| <xmpMM:OriginalDocumentID>uuid:021303F2FBA711D98B5DCD54C315AFD0</xmpMM:OriginalDocumentID>
| <xmpMM:DocumentID rdf:resource='uuid:021303F2FBA711D98B5DCD54C315AFD0' />
| <xmpMM:InstanceID>xmp.iid:0A801174072068118083C9374AAA53C2</xmpMM:InstanceID>
| <xmpMM:OriginalDocumentID>uuid:021303F2FBA711D98B5DCD54C315AFD0</xmpMM:OriginalDocumentID>
| <xmpMM:DerivedFrom rdf:parseType='Resource'>
| </xmpMM:DerivedFrom>
| <xmpMM:History>
| <rdf:Seq>
| </rdf:Seq>
| </xmpMM:History>
| </rdf:Description>
| <rdf:Description xmlns:dc='http://purl.org/dc/elements/1.1/'>
| <dc:format>image/jpeg</dc:format>
| </rdf:Description>
| <rdf:Description xmlns:photoshop='http://ns.adobe.com/photoshop/1.0/'>
| <photoshop:DateCreated>2005-07-20T20:08:42</photoshop:DateCreated>
| <photoshop:LegacyIPTCDigest>A8D68AA81537D1C7170A5C69A46C6C94</photoshop:LegacyIPTCDigest>
| <photoshop:ColorMode>3</photoshop:ColorMode>
| <photoshop:ICCProfile>Adobe RGB (1998)</photoshop:ICCProfile>
| </rdf:Description>
| <rdf:Description xmlns:exifEX='http://cipa.jp/exif/1.0/'>
| <exifEX:PhotographicSensitivity>100</exifEX:PhotographicSensitivity>
| </rdf:Description>
|</rdf:RDF>
|</x:xmpmeta>
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00004B87
Length = 3160
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 3144 bytes
Preferred CMM Type : 'Lino' (0x4C696E6F)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 1998-02-09 06:49:00
Profile file signature : 'acsp' (0x61637370)
Primary platform : Microsoft Corporation ('MSFT' (0x4D534654))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : 'IEC ' (0x49454320)
Device Model : 'sRGB' (0x73524742)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'HP ' (0x48502020)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000057E1
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 3 2 2 3 5 8 10 12
DQT, Row #1: 2 2 3 4 5 12 12 11
DQT, Row #2: 3 3 3 5 8 11 14 11
DQT, Row #3: 3 3 4 6 10 17 16 12
DQT, Row #4: 4 4 7 11 14 22 21 15
DQT, Row #5: 5 7 11 13 16 21 23 18
DQT, Row #6: 10 13 16 17 21 24 24 20
DQT, Row #7: 14 18 19 20 22 20 21 20
Approx quality factor = 90.06 (scaling=19.88 variance=1.14)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00005826
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 3 4 5 9 20 20 20 20
DQT, Row #1: 4 4 5 13 20 20 20 20
DQT, Row #2: 5 5 11 20 20 20 20 20
DQT, Row #3: 9 13 20 20 20 20 20 20
DQT, Row #4: 20 20 20 20 20 20 20 20
DQT, Row #5: 20 20 20 20 20 20 20 20
DQT, Row #6: 20 20 20 20 20 20 20 20
DQT, Row #7: 20 20 20 20 20 20 20 20
Approx quality factor = 89.93 (scaling=20.14 variance=0.34)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000586B
Frame header length = 17
Precision = 8
Number of Lines = 3000
Samples per Line = 3000
Image Size = 3000 x 3000
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000587E
Huffman table length = 28
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 04 05
Codes of length 03 bits (002 total): 03 06
Codes of length 04 bits (003 total): 00 01 02
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000589C
Huffman table length = 27
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 01 02 03
Codes of length 03 bits (001 total): 00
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 008
*** Marker: DRI (Restart Interval) (xFFDD) ***
OFFSET: 0x000058B9
Length = 4
interval = 375
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000058BF
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),0(AC)
Component[3]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0004A3DA
Huffman table length = 55
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 02 03
Codes of length 03 bits (003 total): 01 04 05
Codes of length 04 bits (000 total):
Codes of length 05 bits (001 total): 00
Codes of length 06 bits (004 total): 06 11 12 13
Codes of length 07 bits (001 total): 14
Codes of length 08 bits (003 total): 15 21 22
Codes of length 09 bits (003 total): 10 23 31
Codes of length 10 bits (004 total): 07 20 24 41
Codes of length 11 bits (002 total): 16 32
Codes of length 12 bits (002 total): 30 33
Codes of length 13 bits (002 total): 25 40
Codes of length 14 bits (002 total): 17 42
Codes of length 15 bits (000 total):
Codes of length 16 bits (007 total): 34 50 60 43 26 35 44
Total number of codes: 036
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0004A413
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000B0746
Huffman table length = 62
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (004 total): 03 10 12 31
Codes of length 06 bits (001 total): 41
Codes of length 07 bits (004 total): 13 20 22 51
Codes of length 08 bits (002 total): 04 32
Codes of length 09 bits (001 total): 61
Codes of length 10 bits (003 total): 14 30 71
Codes of length 11 bits (003 total): 23 40 42
Codes of length 12 bits (003 total): 33 50 52
Codes of length 13 bits (003 total): 05 81 91
Codes of length 14 bits (003 total): 60 A1 B1
Codes of length 15 bits (000 total):
Codes of length 16 bits (011 total): 15 24 62 43 53 C1 D1 72 F0 F1 E1
Total number of codes: 043
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000B0786
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000E3DFE
Huffman table length = 69
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (002 total): 03 21
Codes of length 05 bits (002 total): 12 31
Codes of length 06 bits (000 total):
Codes of length 07 bits (006 total): 04 10 13 22 41 51
Codes of length 08 bits (001 total): 32
Codes of length 09 bits (002 total): 20 61
Codes of length 10 bits (005 total): 05 14 23 42 71
Codes of length 11 bits (002 total): 30 52
Codes of length 12 bits (004 total): 33 40 81 91
Codes of length 13 bits (005 total): 15 50 60 A1 B1
Codes of length 14 bits (002 total): 62 F0
Codes of length 15 bits (000 total):
Codes of length 16 bits (015 total): 24 43 70 C1 D1 06 53 72 E1 F1 25 34 44 63 A2
Total number of codes: 050
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000E3E45
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0012926F
Huffman table length = 79
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 00 02 03
Codes of length 04 bits (002 total): 11 12
Codes of length 05 bits (005 total): 04 13 21 31 41
Codes of length 06 bits (003 total): 22 32 51
Codes of length 07 bits (003 total): 23 42 61
Codes of length 08 bits (002 total): 05 14
Codes of length 09 bits (003 total): 33 52 71
Codes of length 10 bits (007 total): 10 24 43 62 81 91 A1
Codes of length 11 bits (001 total): B1
Codes of length 12 bits (006 total): 15 20 30 53 72 C1
Codes of length 13 bits (004 total): 34 40 50 82
Codes of length 14 bits (003 total): 60 63 92
Codes of length 15 bits (002 total): A2 D1
Codes of length 16 bits (015 total): 25 44 70 E1 F0 73 83 B2 F1 06 54 16 35 C2 74
Total number of codes: 060
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x001292C0
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x001CCECE
Huffman table length = 42
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (003 total): 41 51 61
Codes of length 06 bits (000 total):
Codes of length 07 bits (002 total): 71 81
Codes of length 08 bits (002 total): 91 A1
Codes of length 09 bits (002 total): 10 B1
Codes of length 10 bits (002 total): C1 D1
Codes of length 11 bits (003 total): 20 E1 F0
Codes of length 12 bits (001 total): F1
Codes of length 13 bits (001 total): 30
Codes of length 14 bits (001 total): 40
Codes of length 15 bits (001 total): 50
Codes of length 16 bits (000 total):
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x001CCEFA
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0024E532
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=0(DC),0(AC)
Component[3]: selector=0x03, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0025B81A
Huffman table length = 42
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (001 total): 31
Codes of length 06 bits (001 total): 41
Codes of length 07 bits (000 total):
Codes of length 08 bits (002 total): 10 51
Codes of length 09 bits (002 total): 61 71
Codes of length 10 bits (001 total): 81
Codes of length 11 bits (003 total): 20 91 A1
Codes of length 12 bits (005 total): 30 B1 C1 D1 F0
Codes of length 13 bits (001 total): E1
Codes of length 14 bits (001 total): 40
Codes of length 15 bits (001 total): F1
Codes of length 16 bits (001 total): 50
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0025B846
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0029943F
Huffman table length = 43
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (001 total): 31
Codes of length 06 bits (000 total):
Codes of length 07 bits (002 total): 41 51
Codes of length 08 bits (002 total): 10 61
Codes of length 09 bits (001 total): 71
Codes of length 10 bits (003 total): 81 91 A1
Codes of length 11 bits (005 total): 20 B1 C1 D1 F0
Codes of length 12 bits (001 total): E1
Codes of length 13 bits (001 total): 30
Codes of length 14 bits (001 total): F1
Codes of length 15 bits (000 total):
Codes of length 16 bits (003 total): 40 50 60
Total number of codes: 024
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0029946C
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x002E23F1
Huffman table length = 41
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (003 total): 41 51 61
Codes of length 06 bits (001 total): 71
Codes of length 07 bits (000 total):
Codes of length 08 bits (002 total): 81 91
Codes of length 09 bits (002 total): A1 B1
Codes of length 10 bits (002 total): C1 D1
Codes of length 11 bits (003 total): 10 E1 F0
Codes of length 12 bits (001 total): F1
Codes of length 13 bits (001 total): 20
Codes of length 14 bits (001 total): 30
Codes of length 15 bits (001 total): 40
Codes of length 16 bits (000 total):
Total number of codes: 022
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x002E241C
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00397201
*** Embedded JPEG Thumbnail ***
Offset: 0x00000258
Length: 0x00003545 (13637)
* Embedded Thumb Marker: SOI
* Embedded Thumb Marker: APP0
Length = 16
* Embedded Thumb Marker: DQT
Length = 67
----
Precision=8 bits
Destination ID=0 (Luminance, typically)
DQT, Row #0: 8 6 5 8 12 20 26 31
DQT, Row #1: 6 6 7 10 13 29 30 28
DQT, Row #2: 7 7 8 12 20 29 35 28
DQT, Row #3: 7 9 11 15 26 44 40 31
DQT, Row #4: 9 11 19 28 34 55 52 39
DQT, Row #5: 12 18 28 32 41 52 57 46
DQT, Row #6: 25 32 39 44 52 61 60 51
DQT, Row #7: 36 46 48 49 56 50 52 50
* Embedded Thumb Marker: DQT
Length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance, typically)
DQT, Row #0: 9 9 12 24 50 50 50 50
DQT, Row #1: 9 11 13 33 50 50 50 50
DQT, Row #2: 12 13 28 50 50 50 50 50
DQT, Row #3: 24 33 50 50 50 50 50 50
DQT, Row #4: 50 50 50 50 50 50 50 50
DQT, Row #5: 50 50 50 50 50 50 50 50
DQT, Row #6: 50 50 50 50 50 50 50 50
DQT, Row #7: 50 50 50 50 50 50 50 50
* Embedded Thumb Marker: SOF
Frame header length = 17
Precision = 8
Number of Lines = 196
Samples per Line = 196
Image Size = 196 x 196
* Embedded Thumb Marker: DHT
Length = 31
* Embedded Thumb Marker: DHT
Length = 181
* Embedded Thumb Marker: DHT
Length = 31
* Embedded Thumb Marker: DHT
Length = 181
* Embedded Thumb Marker: SOS
Skipping scan data
Skipped 13024 bytes
* Embedded Thumb Marker: EOI
* Embedded Thumb Signature: 0182408A81A4ABF04D4A34A8A5E98C58
*** Searching Compression Signatures ***
Signature: 013BA18D5561625796E986FDBC09F846
Signature (Rotated): 01AC57E12793DFA7C46C704625C5AF0F
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: OK [OLYMPUS CORPORATION] [E-1]
EXIF Makernotes: NONE
EXIF Software: OK [GIMP 2.8.10]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[??? ] [Treo 680 ] [ ] No
CAM:[Canon ] [Canon PowerShot Pro1 ] [fine ] No
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[NIKON ] [E3100 ] [FINE ] No
CAM:[NIKON ] [E4500 ] [FINE ] No
CAM:[NIKON ] [E5000 ] [FINE ] No
CAM:[NIKON ] [E5700 ] [FINE ] No
CAM:[NIKON ] [E775 ] [FINE ] No
CAM:[NIKON ] [E885 ] [FINE ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[PENTAX ] [PENTAX Optio 550 ] [ ] No
CAM:[Research In Motion ] [BlackBerry 9530 ] [Superfine ] No
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
CAM:[SONY ] [DSC-H7 ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
CAM:[SONY ] [DSC-S90 ] [ ] No
CAM:[SONY ] [DSC-W1 ] [ ] No
CAM:[SONY ] [SONY ] [ ] No
SW :[ACDSee ] [ ]
SW :[FixFoto ] [fine ]
SW :[IJG Library ] [090 ]
SW :[ZoomBrowser EX ] [high ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [090 ]
SW :[IrfanView ] [090 ]
SW :[idImager ] [090 ]
SW :[FastStone Image Viewer ] [090 ]
SW :[NeatImage ] [090 ]
SW :[Paint.NET ] [090 ]
SW :[Photomatix ] [090 ]
SW :[XnView ] [090 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 2 - Image has high probability of being processed/edited

364
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue520-InvalidCast.jpg.txt

@ -0,0 +1,364 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue520-InvalidCast.jpg]
Filesize: [7751] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 499
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x0011
[DateTime ] = "2017:09:06 15:13:32"
[Model ] = "SAMSUNG-SM-J320AZ"
[Orientation ] = 1 = Row 0: top, Col 0: left
[WhiteBalance ] = Auto white balance
[DateTime ] = "2017:09:06 15:13:04"
[Make ] = "samsung"
[GPSOffset ] = @ 0x0124
[ExifOffset ] = @ 0x01CD
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000001EB
Dir Length = 0x0002
EXIF GPSIFD @ Absolute 0x00000142
Dir Length = 0x0008
[GPSTimeStamp ] = 115:8:12.00
[GPSLatitudeRef ] = "N"
[GPSLongitude ] = 115 deg 8' 12.000"
[GPSLongitudeRef ] = "W"
[GPSDateStamp ] = "2017:08:08"
[GPSLatitude ] = 36 deg 11' 18.000"
[GPSAltitudeRef ] = Below Sea Level
[GPSAltitude ] = 0.000 m
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000209
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 1 1 1 1 1 1 1 1
DQT, Row #1: 1 1 1 1 1 1 1 1
DQT, Row #2: 1 1 1 1 1 1 1 1
DQT, Row #3: 1 1 1 1 1 2 2 1
DQT, Row #4: 1 1 1 1 1 2 2 2
DQT, Row #5: 1 1 1 1 2 2 2 2
DQT, Row #6: 1 1 2 2 2 2 2 2
DQT, Row #7: 1 2 2 2 2 2 2 2
Approx quality factor = 98.32 (scaling=3.35 variance=5.00)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x0000024E
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 1 1 1 1 2 2 2 2
DQT, Row #1: 1 1 1 1 2 2 2 2
DQT, Row #2: 1 1 1 2 2 2 2 2
DQT, Row #3: 1 1 2 2 2 2 2 2
DQT, Row #4: 2 2 2 2 2 2 2 2
DQT, Row #5: 2 2 2 2 2 2 2 2
DQT, Row #6: 2 2 2 2 2 2 2 2
DQT, Row #7: 2 2 2 2 2 2 2 2
Approx quality factor = 98.83 (scaling=2.34 variance=0.89)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x00000293
Frame header length = 17
Precision = 8
Number of Lines = 100
Samples per Line = 100
Image Size = 100 x 100
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000002A6
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 0A
Codes of length 03 bits (001 total): 09
Codes of length 04 bits (004 total): 06 07 08 0B
Codes of length 05 bits (003 total): 03 04 05
Codes of length 06 bits (001 total): 01
Codes of length 07 bits (001 total): 02
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000002C7
Huffman table length = 60
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (004 total): 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (003 total): 00 07 11
Codes of length 06 bits (003 total): 08 12 13
Codes of length 07 bits (002 total): 14 21
Codes of length 08 bits (003 total): 09 22 31
Codes of length 09 bits (005 total): 0A 15 41 51 61
Codes of length 10 bits (006 total): 16 23 24 32 33 71
Codes of length 11 bits (003 total): 17 52 62
Codes of length 12 bits (009 total): 18 42 54 73 91 93 A3 B1 B2
Codes of length 13 bits (001 total): D2
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 041
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000305
Huffman table length = 28
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 03 04 05 06 07
Codes of length 04 bits (001 total): 08
Codes of length 05 bits (001 total): 02
Codes of length 06 bits (001 total): 01
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000323
Huffman table length = 50
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 04 05 11
Codes of length 05 bits (003 total): 00 12 21
Codes of length 06 bits (003 total): 06 22 31
Codes of length 07 bits (003 total): 13 41 51
Codes of length 08 bits (002 total): 61 71
Codes of length 09 bits (004 total): 07 14 32 91
Codes of length 10 bits (005 total): 15 23 42 81 D1
Codes of length 11 bits (005 total): 16 62 92 A1 B1
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 031
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000357
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x00000365
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00001E45.0
Compression stats:
Compression Ratio: 4.36:1
Bits per pixel: 5.50:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 97 ( 49%)
# codes of length 03 bits: 25 ( 13%)
# codes of length 04 bits: 51 ( 26%)
# codes of length 05 bits: 18 ( 9%)
# codes of length 06 bits: 3 ( 2%)
# codes of length 07 bits: 2 ( 1%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 26 ( 27%)
# codes of length 03 bits: 62 ( 63%)
# codes of length 04 bits: 5 ( 5%)
# codes of length 05 bits: 3 ( 3%)
# codes of length 06 bits: 2 ( 2%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 971 ( 16%)
# codes of length 03 bits: 3435 ( 57%)
# codes of length 04 bits: 456 ( 8%)
# codes of length 05 bits: 579 ( 10%)
# codes of length 06 bits: 285 ( 5%)
# codes of length 07 bits: 96 ( 2%)
# codes of length 08 bits: 74 ( 1%)
# codes of length 09 bits: 59 ( 1%)
# codes of length 10 bits: 30 ( 0%)
# codes of length 11 bits: 7 ( 0%)
# codes of length 12 bits: 9 ( 0%)
# codes of length 13 bits: 1 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 1143 ( 50%)
# codes of length 03 bits: 254 ( 11%)
# codes of length 04 bits: 445 ( 19%)
# codes of length 05 bits: 228 ( 10%)
# codes of length 06 bits: 111 ( 5%)
# codes of length 07 bits: 48 ( 2%)
# codes of length 08 bits: 20 ( 1%)
# codes of length 09 bits: 22 ( 1%)
# codes of length 10 bits: 13 ( 1%)
# codes of length 11 bits: 5 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[193] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1001, -7, 97] RGB=[255,244,251] @ MCU[ 5, 3]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00001E44.1
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00001E45
*** Searching Compression Signatures ***
Signature: 01C7F83908166C226C06A44017421732
Signature (Rotated): 01D3EFDD3855C42AE3E0E6289F1A6726
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: OK [samsung] [SAMSUNG-SM-J320AZ]
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[Canon ] [Canon EOS-1Ds Mark II ] [fine ] No
CAM:[CASIO COMPUTER CO.,LTD. ] [EX-Z1000 ] [ ] Yes
CAM:[NIKON ] [NIKON D2X ] [FINE ] No
CAM:[NIKON ] [NIKON D3 ] [FINE ] No
CAM:[SIGMA ] [SIGMA SD10 ] [Qual:12 ] No
CAM:[SIGMA ] [SIGMA SD10 ] [Qual:12 ] No
CAM:[SIGMA ] [SIGMA SD14 ] [Qual:12 ] No
CAM:[SIGMA ] [SIGMA SD14 ] [Qual:12 ] No
CAM:[SONY ] [DSC-H2 ] [ ] No
CAM:[SONY ] [DSC-R1 ] [ ] No
CAM:[SONY ] [DSC-W7 ] [ ] No
SW :[Digital Photo Professiona] [09 ]
SW :[IJG Library ] [099 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [099 ]
SW :[IrfanView ] [099 ]
SW :[idImager ] [099 ]
SW :[FastStone Image Viewer ] [099 ]
SW :[NeatImage ] [099 ]
SW :[Paint.NET ] [099 ]
SW :[Photomatix ] [099 ]
SW :[XnView ] [099 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 2 - Image has high probability of being processed/edited

284
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue624-DhtHasWrongLength-Progressive-N.jpg.txt

@ -0,0 +1,284 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue624-DhtHasWrongLength-Progressive-N.jpg]
Filesize: [30441] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 132
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 6 6 7 10 15 22 34
DQT, Row #1: 6 7 8 11 14 16 21 30
DQT, Row #2: 6 8 10 12 17 25 36 54
DQT, Row #3: 7 11 12 16 21 30 42 62
DQT, Row #4: 10 14 17 21 28 38 52 76
DQT, Row #5: 15 16 25 30 38 50 68 95
DQT, Row #6: 22 21 36 42 52 68 90 124
DQT, Row #7: 34 30 54 62 76 95 124 167
Approx quality factor = 71.19 (scaling=57.62 variance=593.35)
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 6 6 6 7 10 15 22 34
DQT, Row #1: 6 7 8 11 14 16 21 30
DQT, Row #2: 6 8 10 12 17 25 36 54
DQT, Row #3: 7 11 12 16 21 30 42 62
DQT, Row #4: 10 14 17 21 28 38 52 76
DQT, Row #5: 15 16 25 30 38 50 68 95
DQT, Row #6: 22 21 36 42 52 68 90 124
DQT, Row #7: 34 30 54 62 76 95 124 167
Approx quality factor = 80.24 (scaling=39.51 variance=961.47)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000009A
Frame header length = 17
Precision = 8
Number of Lines = 1080
Samples per Line = 1080
Image Size = 1080 x 1080
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000AD
Huffman table length = 51
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 05 06
Codes of length 04 bits (003 total): 01 03 04
Codes of length 05 bits (001 total): 02
Codes of length 06 bits (001 total): 07
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 008
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (003 total): 02 04 06
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 01
Codes of length 06 bits (001 total): 05
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 007
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000000E2
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),0(AC)
Component[3]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000151B
Huffman table length = 2
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000151F
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=0(DC),0(AC)
Component[3]: selector=0x03, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000022BA
Huffman table length = 2
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000022BE
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=0(DC),0(AC)
Component[3]: selector=0x03, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000309F
Huffman table length = 53
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 02 03
Codes of length 04 bits (003 total): 00 04 20
Codes of length 05 bits (007 total): 11 31 33 34 50 71 72
Codes of length 06 bits (001 total): 05
Codes of length 07 bits (005 total): 12 21 52 60 61
Codes of length 08 bits (007 total): 10 13 22 32 41 51 A1
Codes of length 09 bits (003 total): 23 53 62
Codes of length 10 bits (005 total): 70 80 81 A0 F1
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 034
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000030D6
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003353
Huffman table length = 54
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 02 04
Codes of length 04 bits (002 total): 03 05
Codes of length 05 bits (008 total): 00 06 20 32 50 63 71 B1
Codes of length 06 bits (005 total): 11 25 31 35 73
Codes of length 07 bits (002 total): 12 21
Codes of length 08 bits (004 total): 10 22 51 60
Codes of length 09 bits (005 total): 13 23 41 42 52
Codes of length 10 bits (005 total): 14 33 70 80 A1
Codes of length 11 bits (001 total): A0
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 035
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000338B
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000378D
Huffman table length = 83
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 02 03 04
Codes of length 04 bits (001 total): 05
Codes of length 05 bits (003 total): 06 07 11
Codes of length 06 bits (005 total): 00 21 30 31 B2
Codes of length 07 bits (009 total): 12 13 32 40 41 50 51 72 74
Codes of length 08 bits (011 total): 14 16 22 33 35 42 52 61 71 B1 B3
Codes of length 09 bits (009 total): 15 20 23 24 60 62 81 91 C2
Codes of length 10 bits (006 total): 10 25 36 43 75 92
Codes of length 11 bits (004 total): 82 93 A1 A2
Codes of length 12 bits (006 total): 34 63 64 73 C3 D2
Codes of length 13 bits (001 total): A3
Codes of length 14 bits (005 total): 26 45 53 65 83
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 064
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000037E2
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x000076E7
*** Searching Compression Signatures ***
Signature: 014D6128740A2927C9914C433E852F5A
Signature (Rotated): 014D6128740A2927C9914C433E852F5A
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

368
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue694-Decode-Exif-OutOfRange.jpg.txt

@ -0,0 +1,368 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue694-Decode-Exif-OutOfRange.jpg]
Filesize: [226421] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000002
Length = 194
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000014
Dir Length = 0x0007
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 96/1
[YResolution ] = 96/1
[ResolutionUnit ] = Inch
[Software ] = "PhotoFiltre 7"
[DateTime ] = "2017:08:30 22:45:26"
[ExifOffset ] = @ 0x0094
Offset to Next IFD = 0xFC5019BC
EXIF IFD1 @ Absolute 0xFC5019C8
Dir Length = 0x0000
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000000A0
Dir Length = 0x0003
[ExifVersion ] = 02.10
[ExifImageWidth ] = 1400
[ExifImageHeight ] = 1400
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000000C6
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 1 1 1 1 1 1 1 1
DQT, Row #1: 1 1 1 1 1 1 1 1
DQT, Row #2: 1 1 1 1 1 1 1 1
DQT, Row #3: 1 1 1 1 1 1 1 1
DQT, Row #4: 1 1 1 1 1 1 1 1
DQT, Row #5: 1 1 1 1 1 1 1 1
DQT, Row #6: 1 1 1 1 1 1 1 1
DQT, Row #7: 1 1 1 1 1 1 1 1
Approx quality factor = 100.00 (scaling=2.99 variance=6.13)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x0000010B
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 1 1 1 1 1 1 1 1
DQT, Row #1: 1 1 1 1 1 1 1 1
DQT, Row #2: 1 1 1 1 1 1 1 1
DQT, Row #3: 1 1 1 1 1 1 1 1
DQT, Row #4: 1 1 1 1 1 1 1 1
DQT, Row #5: 1 1 1 1 1 1 1 1
DQT, Row #6: 1 1 1 1 1 1 1 1
DQT, Row #7: 1 1 1 1 1 1 1 1
Approx quality factor = 100.00 (scaling=1.54 variance=1.58)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x00000150
Frame header length = 17
Precision = 8
Number of Lines = 1400
Samples per Line = 1400
Image Size = 1400 x 1400
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000163
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000184
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000023B
Huffman table length = 31
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000025C
Huffman table length = 181
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000313
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x00000321
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00037473.0
Compression stats:
Compression Ratio: 26.06:1
Bits per pixel: 0.92:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 25384 ( 82%)
# codes of length 03 bits: 1101 ( 4%)
# codes of length 04 bits: 566 ( 2%)
# codes of length 05 bits: 758 ( 2%)
# codes of length 06 bits: 429 ( 1%)
# codes of length 07 bits: 616 ( 2%)
# codes of length 08 bits: 933 ( 3%)
# codes of length 09 bits: 1189 ( 4%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 13762 ( 89%)
# codes of length 03 bits: 146 ( 1%)
# codes of length 04 bits: 264 ( 2%)
# codes of length 05 bits: 354 ( 2%)
# codes of length 06 bits: 509 ( 3%)
# codes of length 07 bits: 335 ( 2%)
# codes of length 08 bits: 116 ( 1%)
# codes of length 09 bits: 2 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 48125 ( 26%)
# codes of length 03 bits: 20074 ( 11%)
# codes of length 04 bits: 54692 ( 30%)
# codes of length 05 bits: 21145 ( 12%)
# codes of length 06 bits: 3017 ( 2%)
# codes of length 07 bits: 14358 ( 8%)
# codes of length 08 bits: 8803 ( 5%)
# codes of length 09 bits: 2231 ( 1%)
# codes of length 10 bits: 5065 ( 3%)
# codes of length 11 bits: 1096 ( 1%)
# codes of length 12 bits: 224 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 6 ( 0%)
# codes of length 16 bits: 4924 ( 3%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 25772 ( 49%)
# codes of length 03 bits: 5924 ( 11%)
# codes of length 04 bits: 7056 ( 13%)
# codes of length 05 bits: 6378 ( 12%)
# codes of length 06 bits: 2891 ( 5%)
# codes of length 07 bits: 1200 ( 2%)
# codes of length 08 bits: 1082 ( 2%)
# codes of length 09 bits: 1030 ( 2%)
# codes of length 10 bits: 559 ( 1%)
# codes of length 11 bits: 299 ( 1%)
# codes of length 12 bits: 38 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 73 ( 0%)
# codes of length 15 bits: 67 ( 0%)
# codes of length 16 bits: 260 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[ 57] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1016, 0, 0] RGB=[255,255,255] @ MCU[ 40, 2]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x00037472.4
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00037473
*** Searching Compression Signatures ***
Signature: 01BBB1709AC9C1F89220D955A31A8F34
Signature (Rotated): 01BBB1709AC9C1F89220D955A31A8F34
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: OK [PhotoFiltre 7]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[CASIO COMPUTER CO.,LTD ] [EX-Z750 ] [ ] Yes
CAM:[CASIO COMPUTER CO.,LTD. ] [EX-Z1000 ] [ ] Yes
CAM:[PENTAX ] [PENTAX Optio S5i ] [ ] Yes
CAM:[SIGMA ] [SIGMA SD9 ] [ ] Yes
SW :[ACDSee ] [100 ]
SW :[Apple ImageIO.framework ] [100 (Best) ]
SW :[Digital Photo Professiona] [10 ]
SW :[IJG Library ] [100 ]
SW :[MS Office Pic Mgr ] [ ]
SW :[Nikon Scan ] [Excellent Qualit]
SW :[Picasa ] [100 (Maximum) ]
SW :[ZoomBrowser EX ] [highest ]
SW :[EOS Viewer Utility ] [ ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [100 ]
SW :[IrfanView ] [100 ]
SW :[idImager ] [100 ]
SW :[FastStone Image Viewer ] [100 ]
SW :[NeatImage ] [100 ]
SW :[Paint.NET ] [100 ]
SW :[Photomatix ] [100 ]
SW :[XnView ] [100 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

39
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue695-Invalid-EOI.jpg.txt

@ -0,0 +1,39 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue695-Invalid-EOI.jpg]
Filesize: [4805575] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 72 x 72 (aspect ratio)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 64
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x0001
[ExifOffset ] = @ 0x001A
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x00000038
Dir Length = 0x0002
[ExifImageWidth ] = 0x[000003E8] / 1000
[ExifImageHeight ] = 0x[000003E8] / 1000
ERROR: Expected marker 0xFF, got 0x49 @ offset 0x00000056. Consider using [Tools->Img Search Fwd/Rev].

377
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue696-Resize-Exif-OutOfRange.jpg.txt

@ -0,0 +1,377 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue696-Resize-Exif-OutOfRange.jpg]
Filesize: [3196058] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 201
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x0007
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 96/1
[YResolution ] = 96/1
[ResolutionUnit ] = Inch
[Software ] = "PhotoFiltre Studio X"
[DateTime ] = "2017:09:12 23:47:30"
[ExifOffset ] = @ 0x009B
Offset to Next IFD = 0xFFFFFFFF
EXIF IFD1 @ Absolute 0x0000001D
Dir Length = 0x4900
Excessive # components (117440512). Limiting to first 4000.
Offset to Next IFD = 0x03011200
EXIF SubIFD @ Absolute 0x000000B9
Dir Length = 0x0003
[ExifVersion ] = 02.10
[ExifImageWidth ] = 3000
[ExifImageHeight ] = 3000
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000000DF
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 1 1 1 1 1 1 1 1
DQT, Row #1: 1 1 1 1 1 1 1 1
DQT, Row #2: 1 1 1 1 1 1 1 1
DQT, Row #3: 1 1 1 1 1 1 1 1
DQT, Row #4: 1 1 1 1 1 1 1 1
DQT, Row #5: 1 1 1 1 1 1 1 1
DQT, Row #6: 1 1 1 1 1 1 1 1
DQT, Row #7: 1 1 1 1 1 1 1 1
Approx quality factor = 100.00 (scaling=2.99 variance=6.13)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000124
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 1 1 1 1 1 1 1 1
DQT, Row #1: 1 1 1 1 1 1 1 1
DQT, Row #2: 1 1 1 1 1 1 1 1
DQT, Row #3: 1 1 1 1 1 1 1 1
DQT, Row #4: 1 1 1 1 1 1 1 1
DQT, Row #5: 1 1 1 1 1 1 1 1
DQT, Row #6: 1 1 1 1 1 1 1 1
DQT, Row #7: 1 1 1 1 1 1 1 1
Approx quality factor = 100.00 (scaling=1.54 variance=1.58)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x00000169
Frame header length = 17
Precision = 8
Number of Lines = 3000
Samples per Line = 3000
Image Size = 3000 x 3000
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000017C
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000019D
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000254
Huffman table length = 31
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000275
Huffman table length = 181
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000032C
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x0000033A
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x0030C498.0
Compression stats:
Compression Ratio: 8.45:1
Bits per pixel: 2.84:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 35306 ( 25%)
# codes of length 03 bits: 79378 ( 56%)
# codes of length 04 bits: 10642 ( 8%)
# codes of length 05 bits: 5371 ( 4%)
# codes of length 06 bits: 3913 ( 3%)
# codes of length 07 bits: 2829 ( 2%)
# codes of length 08 bits: 2486 ( 2%)
# codes of length 09 bits: 1451 ( 1%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 45165 ( 64%)
# codes of length 03 bits: 10069 ( 14%)
# codes of length 04 bits: 6960 ( 10%)
# codes of length 05 bits: 3541 ( 5%)
# codes of length 06 bits: 2100 ( 3%)
# codes of length 07 bits: 1345 ( 2%)
# codes of length 08 bits: 1100 ( 2%)
# codes of length 09 bits: 324 ( 0%)
# codes of length 10 bits: 84 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 1981662 ( 53%)
# codes of length 03 bits: 213036 ( 6%)
# codes of length 04 bits: 749857 ( 20%)
# codes of length 05 bits: 410362 ( 11%)
# codes of length 06 bits: 173055 ( 5%)
# codes of length 07 bits: 94282 ( 3%)
# codes of length 08 bits: 61648 ( 2%)
# codes of length 09 bits: 36705 ( 1%)
# codes of length 10 bits: 19723 ( 1%)
# codes of length 11 bits: 10118 ( 0%)
# codes of length 12 bits: 2157 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 211 ( 0%)
# codes of length 16 bits: 9772 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 425513 ( 38%)
# codes of length 03 bits: 127308 ( 11%)
# codes of length 04 bits: 204956 ( 18%)
# codes of length 05 bits: 171523 ( 15%)
# codes of length 06 bits: 89715 ( 8%)
# codes of length 07 bits: 30159 ( 3%)
# codes of length 08 bits: 25054 ( 2%)
# codes of length 09 bits: 22104 ( 2%)
# codes of length 10 bits: 10243 ( 1%)
# codes of length 11 bits: 4250 ( 0%)
# codes of length 12 bits: 210 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 1829 ( 0%)
# codes of length 15 bits: 1498 ( 0%)
# codes of length 16 bits: 2262 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[127] (range: 0..255)
Brightest Pixel Search:
YCC=[ 992, -112, 17] RGB=[254,255,227] @ MCU[ 35, 79]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x0030C497.3
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0030C498
*** Searching Compression Signatures ***
Signature: 01BBB1709AC9C1F89220D955A31A8F34
Signature (Rotated): 01BBB1709AC9C1F89220D955A31A8F34
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: OK [PhotoFiltre Studio X]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[CASIO COMPUTER CO.,LTD ] [EX-Z750 ] [ ] Yes
CAM:[CASIO COMPUTER CO.,LTD. ] [EX-Z1000 ] [ ] Yes
CAM:[PENTAX ] [PENTAX Optio S5i ] [ ] Yes
CAM:[SIGMA ] [SIGMA SD9 ] [ ] Yes
SW :[ACDSee ] [100 ]
SW :[Apple ImageIO.framework ] [100 (Best) ]
SW :[Digital Photo Professiona] [10 ]
SW :[IJG Library ] [100 ]
SW :[MS Office Pic Mgr ] [ ]
SW :[Nikon Scan ] [Excellent Qualit]
SW :[Picasa ] [100 (Maximum) ]
SW :[ZoomBrowser EX ] [highest ]
SW :[EOS Viewer Utility ] [ ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [100 ]
SW :[IrfanView ] [100 ]
SW :[idImager ] [100 ]
SW :[FastStone Image Viewer ] [100 ]
SW :[NeatImage ] [100 ]
SW :[Paint.NET ] [100 ]
SW :[Photomatix ] [100 ]
SW :[XnView ] [100 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

446
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue721-InvalidAPP0.jpg.txt

@ -0,0 +1,446 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue721-InvalidAPP0.jpg]
Filesize: [1225163] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000002
Length = 806
Identifier = [Exif]
Identifier TIFF = 0x[4D4D002A 00000008]
Endian = Motorola (big)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000014
Dir Length = 0x0007
[Make ] = "NIKON CORPORATION"
[Model ] = "NIKON D300S"
[Software ] = "Adobe Bridge CS6 (Windows)"
[DateTime ] = "2017:06:07 16:49:51"
[Artist ] = ""Evgeniy Ivahiv Mr.Ivas""
[Copyright ] = "Evgeniy Ivahiv Erich Krause"
[ExifOffset ] = @ 0x00EC
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000000F8
Dir Length = 0x0022
[ExposureTime ] = 1/160 s
[FNumber ] = F10.0
[ExposureProgram ] = Manual
[ISOSpeedRatings ] = 200
[ExifVersion ] = 02.21
[DateTimeOriginal ] = "2017:06:06 11:29:53"
[ShutterSpeedValue ] = 7321928/1000000
[ApertureValue ] = 6643856/1000000
[ExposureBiasValue ] = -3.00 eV
[MaxApertureValue ] = 50/10
[MeteringMode ] = CenterWeightedAverage
[LightSource ] = unknown
[Flash ] = Flash did not fire
[FocalLength ] = 48 mm
[SubSecTimeOriginal ] = "24"
[ColorSpace ] = Uncalibrated
[ExifImageWidth ] = 2304
[ExifImageHeight ] = 2998
[SensingMethod ] = One-chip color area sensor
[FileSource ] = DSC
[SceneType ] = A directly photographed image
[ExposureMode ] = Manual exposure
[WhiteBalance ] = Manual white balance
[DigitalZoomRatio ] = 1/1
[FocalLengthIn35mmFilm ] = 72
[SceneCaptureType ] = Standard
[GainControl ] = 0
[Contrast ] = 0
[Saturation ] = 0
[Sharpness ] = 2
[SubjectDistanceRange ] = 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x0000032A
Length = 4442
Identifier = [http://ns.adobe.com/xap/1.0/]
XMP =
*** Marker: APP13 (xFFED) ***
OFFSET: 0x00001486
Length = 160
Identifier = [Photoshop 3.0]
8BIM: [0x0404] Name="" Len=[0x0068] DefinedName="IPTC-NAA record"
IPTC [001:090] Coded Character Set = "%G"
IPTC [002:000] Record Version = 4
IPTC [002:055] Date Created = "20170606"
IPTC [002:060] Time Created = "112953"
IPTC [002:080] By-line = "Evgeniy Ivahiv Mr.Ivas"
IPTC [002:116] Copyright Notice = "Evgeniy Ivahiv Erich Krause"
8BIM: [0x0425] Name="" Len=[0x0010] DefinedName="Caption digest"
Caption digest = | 0x59 13 63 D2 BD 08 14 B4 2B E3 4F 37 D7 52 D2 6F | Y.c.....+.O7.R.o
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00001528
Length = 3160
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 3144 bytes
Preferred CMM Type : 'Lino' (0x4C696E6F)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 1998-02-09 06:49:00
Profile file signature : 'acsp' (0x61637370)
Primary platform : Microsoft Corporation ('MSFT' (0x4D534654))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : 'IEC ' (0x49454320)
Device Model : 'sRGB' (0x73524742)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'HP ' (0x48502020)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00002182
Length = 12
Identifier = [Adobe_CM]
Not known APP0 type. Skipping remainder.
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00002190
Table length = 132
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 4 7 11 14 17 22 17
DQT, Row #1: 4 5 6 10 14 19 12 12
DQT, Row #2: 7 6 8 14 19 12 12 12
DQT, Row #3: 11 10 14 19 12 12 12 12
DQT, Row #4: 14 14 19 12 12 12 12 12
DQT, Row #5: 17 19 12 12 12 12 12 12
DQT, Row #6: 22 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
Approx quality factor = 83.88 (scaling=32.24 variance=430.71)
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 7 9 19 34 20 20 17 17
DQT, Row #1: 9 12 19 14 14 12 12 12
DQT, Row #2: 19 19 14 14 12 12 12 12
DQT, Row #3: 34 14 14 12 12 12 12 12
DQT, Row #4: 20 14 12 12 12 12 12 12
DQT, Row #5: 20 12 12 12 12 12 12 12
DQT, Row #6: 17 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
Approx quality factor = 89.11 (scaling=21.78 variance=377.49)
*** Marker: DRI (Restart Interval) (xFFDD) ***
OFFSET: 0x00002216
Length = 4
interval = 288
*** Marker: APP14 (xFFEE) ***
OFFSET: 0x0000221C
Length = 14
DCTEncodeVersion = 100
APP14Flags0 = 49152
APP14Flags1 = 0
ColorTransform = 1 [YCbCr]
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x0000222C
Frame header length = 17
Precision = 8
Number of Lines = 2998
Samples per Line = 2304
Image Size = 2304 x 2998
Raw Image Orientation = Portrait
Number of Img components = 3
Component[1]: ID=0x00, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000223F
Huffman table length = 418
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (004 total): 03 04 05 06
Codes of length 04 bits (003 total): 02 07 08
Codes of length 05 bits (001 total): 01
Codes of length 06 bits (001 total): 09
Codes of length 07 bits (001 total): 0A
Codes of length 08 bits (001 total): 0B
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 04
Codes of length 06 bits (001 total): 05
Codes of length 07 bits (001 total): 06
Codes of length 08 bits (000 total):
Codes of length 09 bits (002 total): 07 08
Codes of length 10 bits (003 total): 09 0A 0B
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 02 03 11
Codes of length 04 bits (002 total): 00 21
Codes of length 05 bits (004 total): 04 12 31 41
Codes of length 06 bits (002 total): 51 61
Codes of length 07 bits (008 total): 05 13 22 71 81 91 A1 F0
Codes of length 08 bits (004 total): 06 14 B1 C1
Codes of length 09 bits (005 total): 23 32 D1 E1 F1
Codes of length 10 bits (002 total): 07 42
Codes of length 11 bits (003 total): 15 24 52
Codes of length 12 bits (002 total): 33 62
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 16
Codes of length 16 bits (125 total): 34 43 72 82 92 A2 08 17 53 B2 C2 25 D2 E2 44 83
84 F2 09 0A 18 19 1A 26 27 28 29 2A 35 36 37 38
39 3A 45 46 47 48 49 4A 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 85
86 87 88 89 8A 93 94 95 96 97 98 B3 C3 D3 99 9A
A3 A4 A5 A6 A7 A8 A9 AA B4 B5 B6 B7 B8 B9 BA C4
C5 C6 C7 C8 C9 CA D4 D5 D6 D7 D8 D9 DA E3 E4 E5
E6 E7 E8 E9 EA F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (000 total):
Codes of length 04 bits (002 total): 02 11
Codes of length 05 bits (001 total): 03
Codes of length 06 bits (003 total): 12 21 31
Codes of length 07 bits (001 total): 41
Codes of length 08 bits (005 total): 04 13 51 61 71
Codes of length 09 bits (002 total): 81 F0
Codes of length 10 bits (006 total): 22 91 A1 B1 C1 D1
Codes of length 11 bits (003 total): 14 32 E1
Codes of length 12 bits (001 total): F1
Codes of length 13 bits (000 total):
Codes of length 14 bits (127 total): 05 06 07 08 09 0A 15 16 17 18 19 1A 23 24 25 26
27 28 29 2A 33 34 35 36 37 38 39 3A 42 43 44 45
46 47 48 49 4A 52 53 54 55 56 57 58 59 5A 62 63
64 65 66 67 68 69 6A 72 73 74 75 76 77 78 79 7A
82 83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98
99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6
B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4
D5 D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA
Codes of length 15 bits (009 total): F2 F3 F4 F5 F6 F7 F8 F9 FA
Codes of length 16 bits (000 total):
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000023E3
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),1(AC)
Component[3]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x000023F1
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
*** ERROR: Overread scan segment (after bitstring)! @ Offset: 0x00003EA5.1
*** ERROR: Bad huffman code @ 0x00003EA5.6
*** ERROR: Bad scan data in MCU(272,16): Lum CSS(0,0) @ Offset 0x00003EA5.1
MCU located at pixel=(2176,128)
*** ERROR: Overread scan segment (before nCode)! @ Offset: 0x00003EA5.1
*** ERROR: Bad huffman code @ 0x00003EA5.1
*** ERROR: Bad scan data in MCU(272,16): Chr(Cb) CSS(0,0) @ Offset 0x00003EA5.1
MCU located at pixel=(2176,128)
*** ERROR: Overread scan segment (before nCode)! @ Offset: 0x00003EA5.1
*** ERROR: Bad huffman code @ 0x00003EA5.1
*** ERROR: Bad scan data in MCU(272,16): Chr(Cr) CSS(0,0) @ Offset 0x00003EA5.1
MCU located at pixel=(2176,128)
*** ERROR: Overread scan segment (before nCode)! @ Offset: 0x00003EA5.1
*** ERROR: Bad huffman code @ 0x00003EA5.1
*** ERROR: Bad scan data in MCU(0,17): Lum CSS(0,0) @ Offset 0x00003EA5.1
MCU located at pixel=(0,136)
*** ERROR: Overread scan segment (before nCode)! @ Offset: 0x00003EA5.1
*** ERROR: Bad huffman code @ 0x00003EA5.1
*** ERROR: Bad scan data in MCU(0,17): Chr(Cb) CSS(0,0) @ Offset 0x00003EA5.1
MCU located at pixel=(0,136)
*** ERROR: Overread scan segment (before nCode)! @ Offset: 0x00003EA5.1
*** ERROR: Bad huffman code @ 0x00003EA5.1
*** ERROR: Bad scan data in MCU(0,17): Chr(Cr) CSS(0,0) @ Offset 0x00003EA5.1
MCU located at pixel=(0,136)
*** ERROR: Overread scan segment (before nCode)! @ Offset: 0x00003EA5.1
*** ERROR: Bad huffman code @ 0x00003EA5.1
*** ERROR: Bad scan data in MCU(0,18): Lum CSS(0,0) @ Offset 0x00003EA5.1
MCU located at pixel=(0,144)
Only reported first 20 instances of this message...
Compression stats:
Compression Ratio: 3031.33:1
Bits per pixel: 0.01:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 4841 ( 99%)
# codes of length 03 bits: 33 ( 1%)
# codes of length 04 bits: 6 ( 0%)
# codes of length 05 bits: 1 ( 0%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 9732 (100%)
# codes of length 02 bits: 23 ( 0%)
# codes of length 03 bits: 5 ( 0%)
# codes of length 04 bits: 0 ( 0%)
# codes of length 05 bits: 0 ( 0%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 274 ( 5%)
# codes of length 03 bits: 297 ( 5%)
# codes of length 04 bits: 4903 ( 85%)
# codes of length 05 bits: 88 ( 2%)
# codes of length 06 bits: 26 ( 0%)
# codes of length 07 bits: 98 ( 2%)
# codes of length 08 bits: 25 ( 0%)
# codes of length 09 bits: 4 ( 0%)
# codes of length 10 bits: 14 ( 0%)
# codes of length 11 bits: 1 ( 0%)
# codes of length 12 bits: 2 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 17 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 9760 (100%)
# codes of length 02 bits: 5 ( 0%)
# codes of length 03 bits: 0 ( 0%)
# codes of length 04 bits: 14 ( 0%)
# codes of length 05 bits: 0 ( 0%)
# codes of length 06 bits: 2 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[128] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1014, 0, 0] RGB=[254,254,254] @ MCU[ 0, 0]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 17
Next position in scan buffer: Offset 0x00003EA5.1
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0012B1C9
*** Searching Compression Signatures ***
Signature: 01A20F69263117021CD16AEF44D6E650
Signature (Rotated): 01A20F69263117021CD16AEF44D6E650
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: OK [NIKON] [NIKON D300S]
EXIF Makernotes: NONE
EXIF Software: OK [Adobe Bridge CS6 (Windows)]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[Adobe Photoshop ] [Save As 08 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 2 - Image has high probability of being processed/edited

519
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue723-Ordered-Interleaved-Progressive-A.jpg.txt

@ -0,0 +1,519 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue723-Ordered-Interleaved-Progressive-A.jpg]
Filesize: [42798] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 72 x 72 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 2 1 1 2 2 4 5 6
DQT, Row #1: 1 1 1 2 3 6 6 6
DQT, Row #2: 1 1 2 2 4 6 7 6
DQT, Row #3: 1 2 2 3 5 9 8 6
DQT, Row #4: 2 2 4 6 7 11 10 8
DQT, Row #5: 2 4 6 6 8 10 11 9
DQT, Row #6: 5 6 8 9 10 12 12 10
DQT, Row #7: 7 9 10 10 11 10 10 10
Approx quality factor = 95.04 (scaling=9.93 variance=1.25)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 2 2 2 5 10 10 10 10
DQT, Row #1: 2 2 3 7 10 10 10 10
DQT, Row #2: 2 3 6 10 10 10 10 10
DQT, Row #3: 5 7 10 10 10 10 10 10
DQT, Row #4: 10 10 10 10 10 10 10 10
DQT, Row #5: 10 10 10 10 10 10 10 10
DQT, Row #6: 10 10 10 10 10 10 10 10
DQT, Row #7: 10 10 10 10 10 10 10 10
Approx quality factor = 94.91 (scaling=10.18 variance=0.26)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 600
Samples per Line = 600
Image Size = 600 x 600
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 29
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 01 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (005 total): 04 05 06 07 08
Codes of length 06 bits (001 total): 09
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 010
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000000D0
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000A58
Huffman table length = 27
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 01 02
Codes of length 04 bits (003 total): 03 04 05
Codes of length 05 bits (001 total): 06
Codes of length 06 bits (001 total): 07
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 008
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000A75
Scan header length = 10
Number of img components = 2
Component[1]: selector=0x02, table=1(DC),0(AC)
Component[2]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000E55
Huffman table length = 37
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (000 total):
Codes of length 03 bits (005 total): 02 04 05 11 12
Codes of length 04 bits (004 total): 00 01 03 06
Codes of length 05 bits (001 total): 30
Codes of length 06 bits (005 total): 10 13 14 15 16
Codes of length 07 bits (001 total): 40
Codes of length 08 bits (001 total): 20
Codes of length 09 bits (001 total): A0
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 018
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000E7C
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 2
Successive approximation = 0x03
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000015BD
Huffman table length = 82
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 02 03
Codes of length 04 bits (004 total): 00 04 05 11
Codes of length 05 bits (002 total): 12 21
Codes of length 06 bits (002 total): 13 31
Codes of length 07 bits (011 total): 06 10 14 22 30 32 40 41 51 61 92
Codes of length 08 bits (012 total): 15 23 25 52 53 54 71 73 91 A1 B1 C1
Codes of length 09 bits (007 total): 20 24 33 42 72 81 93
Codes of length 10 bits (006 total): 43 44 55 62 63 A2
Codes of length 11 bits (003 total): 82 83 D1
Codes of length 12 bits (006 total): 16 26 34 50 A0 B2
Codes of length 13 bits (007 total): 35 45 64 84 A3 C2 E1
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 063
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00001611
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 3 .. 63
Successive approximation = 0x03
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002E3F
Huffman table length = 42
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 11
Codes of length 03 bits (001 total): 00
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (004 total): 10 41 51 61
Codes of length 06 bits (005 total): 20 71 81 91 F0
Codes of length 07 bits (005 total): 30 A1 B1 C1 D1
Codes of length 08 bits (001 total): F1
Codes of length 09 bits (001 total): E1
Codes of length 10 bits (001 total): 40
Codes of length 11 bits (001 total): A0
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00002E6B
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x32
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003F38
Huffman table length = 43
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (002 total): 41 51
Codes of length 06 bits (001 total): 61
Codes of length 07 bits (004 total): 10 71 81 91
Codes of length 08 bits (001 total): A1
Codes of length 09 bits (005 total): 30 B1 C1 D1 F0
Codes of length 10 bits (001 total): E1
Codes of length 11 bits (001 total): F1
Codes of length 12 bits (000 total):
Codes of length 13 bits (003 total): 20 40 A0
Codes of length 14 bits (001 total): 50
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 024
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00003F65
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00005B9B
Huffman table length = 58
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 00 02 03
Codes of length 04 bits (003 total): 04 11 12
Codes of length 05 bits (001 total): 21
Codes of length 06 bits (005 total): 05 13 14 31 51
Codes of length 07 bits (005 total): 10 15 20 30 41
Codes of length 08 bits (005 total): 22 23 32 33 71
Codes of length 09 bits (005 total): 24 34 61 81 F0
Codes of length 10 bits (008 total): 80 91 A1 B1 C1 D1 E1 F1
Codes of length 11 bits (003 total): 42 52 62
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 039
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00005BD7
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00006270
Huffman table length = 57
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (004 total): 00 02 03 11
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (003 total): 12 21 31
Codes of length 06 bits (002 total): 05 30
Codes of length 07 bits (004 total): 10 13 14 20
Codes of length 08 bits (003 total): 32 41 51
Codes of length 09 bits (007 total): 15 22 23 61 71 81 F0
Codes of length 10 bits (002 total): 91 A1
Codes of length 11 bits (004 total): 24 25 33 80
Codes of length 12 bits (007 total): 42 62 B1 C1 D1 E1 F1
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 038
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000062AB
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00006827
Huffman table length = 42
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 11
Codes of length 03 bits (000 total):
Codes of length 04 bits (002 total): 00 21
Codes of length 05 bits (002 total): 31 41
Codes of length 06 bits (002 total): 51 61
Codes of length 07 bits (001 total): 71
Codes of length 08 bits (004 total): 81 91 A1 B1
Codes of length 09 bits (003 total): 30 C1 D1
Codes of length 10 bits (001 total): F0
Codes of length 11 bits (001 total): E1
Codes of length 12 bits (001 total): 10
Codes of length 13 bits (000 total):
Codes of length 14 bits (003 total): 40 A0 F1
Codes of length 15 bits (001 total): 20
Codes of length 16 bits (000 total):
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00006853
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000099AB
Huffman table length = 41
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (003 total): 31 41 61
Codes of length 06 bits (003 total): 10 51 91
Codes of length 07 bits (004 total): 20 71 81 B1
Codes of length 08 bits (002 total): 30 A1
Codes of length 09 bits (002 total): C1 F0
Codes of length 10 bits (003 total): 80 E1 F1
Codes of length 11 bits (001 total): D1
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 022
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000099D6
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000A0BC
Huffman table length = 41
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (001 total): 41
Codes of length 06 bits (004 total): 10 51 61 71
Codes of length 07 bits (002 total): 30 91
Codes of length 08 bits (002 total): 20 81
Codes of length 09 bits (002 total): A1 B1
Codes of length 10 bits (002 total): C1 D1
Codes of length 11 bits (003 total): 40 80 E1
Codes of length 12 bits (001 total): F1
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 022
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000A0E7
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000A72C
*** Searching Compression Signatures ***
Signature: 01E764F3ECB6C14A51FF83F1FF6D546B
Signature (Rotated): 01E6610D026E8E6FE4BECEA9B3328A63
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[Minolta Co., Ltd. ] [DiMAGE F100 ] [ ] No
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[NIKON ] [E4500 ] [FINE ] No
CAM:[NIKON ] [E5400 ] [FINE ] No
CAM:[NIKON ] [E5700 ] [FINE ] No
CAM:[NIKON ] [E775 ] [FINE ] No
CAM:[NIKON ] [E8700 ] [FINE ] No
CAM:[OLYMPUS CORPORATION ] [C8080WZ ] [ ] No
CAM:[PENTAX ] [PENTAX K10D ] [ ] No
CAM:[SAMSUNG TECHWIN ] [Pro 815 ] [ ] No
CAM:[SAMSUNG TECHWIN ] [VLUU NV 7, NV 7 ] [ ] No
CAM:[SAMSUNG TECHWIN ] [VLUU NV10, NV10 ] [ ] No
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
CAM:[SONY ] [DSC-F828 ] [ ] No
CAM:[SONY ] [DSC-H1 ] [ ] No
CAM:[SONY ] [DSC-H2 ] [ ] No
CAM:[SONY ] [DSC-H5 ] [ ] No
CAM:[SONY ] [DSC-H7 ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
CAM:[SONY ] [DSC-L1 ] [ ] No
CAM:[SONY ] [DSC-N1 ] [ ] No
CAM:[SONY ] [DSC-P150 ] [ ] No
CAM:[SONY ] [DSC-P200 ] [ ] No
CAM:[SONY ] [DSC-S90 ] [ ] No
CAM:[SONY ] [DSC-V3 ] [ ] No
CAM:[SONY ] [DSC-W55 ] [ ] No
CAM:[SONY ] [DSC-W7 ] [ ] No
SW :[Apple ImageIO.framework ] [084 ]
SW :[IJG Library ] [095 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [095 ]
SW :[IrfanView ] [095 ]
SW :[idImager ] [095 ]
SW :[FastStone Image Viewer ] [095 ]
SW :[NeatImage ] [095 ]
SW :[Paint.NET ] [095 ]
SW :[Photomatix ] [095 ]
SW :[XnView ] [095 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

477
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue723-Ordered-Interleaved-Progressive-B.jpg.txt

@ -0,0 +1,477 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue723-Ordered-Interleaved-Progressive-B.jpg]
Filesize: [36937] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 72 x 72 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 3 2 2 3 5 8 10 12
DQT, Row #1: 2 2 3 4 5 12 12 11
DQT, Row #2: 3 3 3 5 8 11 14 11
DQT, Row #3: 3 3 4 6 10 17 16 12
DQT, Row #4: 4 4 7 11 14 22 21 15
DQT, Row #5: 5 7 11 13 16 21 23 18
DQT, Row #6: 10 13 16 17 21 24 24 20
DQT, Row #7: 14 18 19 20 22 20 21 20
Approx quality factor = 90.06 (scaling=19.88 variance=1.14)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 3 4 5 9 20 20 20 20
DQT, Row #1: 4 4 5 13 20 20 20 20
DQT, Row #2: 5 5 11 20 20 20 20 20
DQT, Row #3: 9 13 20 20 20 20 20 20
DQT, Row #4: 20 20 20 20 20 20 20 20
DQT, Row #5: 20 20 20 20 20 20 20 20
DQT, Row #6: 20 20 20 20 20 20 20 20
DQT, Row #7: 20 20 20 20 20 20 20 20
Approx quality factor = 89.93 (scaling=20.14 variance=0.34)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 600
Samples per Line = 600
Image Size = 600 x 600
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 30
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (000 total):
Codes of length 04 bits (007 total): 02 03 04 05 06 07 08
Codes of length 05 bits (001 total): 01
Codes of length 06 bits (001 total): 09
Codes of length 07 bits (001 total): 0A
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 011
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000000D1
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000A95
Huffman table length = 28
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 04 05
Codes of length 04 bits (003 total): 01 03 06
Codes of length 05 bits (001 total): 02
Codes of length 06 bits (001 total): 07
Codes of length 07 bits (001 total): 08
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000AB3
Scan header length = 10
Number of img components = 2
Component[1]: selector=0x02, table=1(DC),0(AC)
Component[2]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000E60
Huffman table length = 54
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (000 total):
Codes of length 03 bits (006 total): 00 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (003 total): 11 12 13
Codes of length 06 bits (002 total): 21 50
Codes of length 07 bits (004 total): 07 10 14 15
Codes of length 08 bits (004 total): 20 22 23 31
Codes of length 09 bits (005 total): 16 24 30 32 36
Codes of length 10 bits (003 total): 25 40 41
Codes of length 11 bits (004 total): 17 42 43 80
Codes of length 12 bits (003 total): 26 33 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 035
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000E98
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00001E73
Huffman table length = 75
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (002 total): 00 11
Codes of length 05 bits (002 total): 04 12
Codes of length 06 bits (005 total): 13 21 31 41 51
Codes of length 07 bits (006 total): 10 22 52 61 71 81
Codes of length 08 bits (010 total): 05 14 20 32 42 50 91 A1 B1 C1
Codes of length 09 bits (005 total): 23 33 62 72 D1
Codes of length 10 bits (010 total): 24 30 40 53 63 73 82 92 E1 F0
Codes of length 11 bits (005 total): 15 34 35 43 A2
Codes of length 12 bits (004 total): 64 74 80 B2
Codes of length 13 bits (003 total): 60 93 F1
Codes of length 14 bits (001 total): A3
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 056
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00001EC0
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003A1E
Huffman table length = 42
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (002 total): 31 41
Codes of length 06 bits (005 total): 10 51 61 71 81
Codes of length 07 bits (004 total): 50 91 A1 B1
Codes of length 08 bits (002 total): C1 F0
Codes of length 09 bits (003 total): 20 D1 E1
Codes of length 10 bits (001 total): F1
Codes of length 11 bits (001 total): 40
Codes of length 12 bits (001 total): 80
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00003A4A
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00005386
Huffman table length = 43
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 11
Codes of length 03 bits (000 total):
Codes of length 04 bits (002 total): 00 21
Codes of length 05 bits (002 total): 31 41
Codes of length 06 bits (001 total): 51
Codes of length 07 bits (003 total): 61 71 81
Codes of length 08 bits (004 total): 50 91 A1 B1
Codes of length 09 bits (002 total): 10 C1
Codes of length 10 bits (003 total): D1 E1 F0
Codes of length 11 bits (000 total):
Codes of length 12 bits (003 total): 20 80 F1
Codes of length 13 bits (001 total): 30
Codes of length 14 bits (001 total): 40
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 024
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000053B3
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00007B5B
Huffman table length = 50
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (003 total): 13 31 40
Codes of length 07 bits (003 total): 06 22 41
Codes of length 08 bits (002 total): 14 32
Codes of length 09 bits (004 total): 10 16 23 33
Codes of length 10 bits (005 total): 15 20 42 60 61
Codes of length 11 bits (005 total): 24 34 50 51 52
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 031
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00007B8F
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 12
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000081EE
Huffman table length = 49
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (004 total): 21 31 41 51
Codes of length 05 bits (003 total): 02 61 71
Codes of length 06 bits (007 total): 10 40 81 91 A1 B1 C1
Codes of length 07 bits (003 total): D1 E1 F0
Codes of length 08 bits (003 total): 03 50 F1
Codes of length 09 bits (004 total): 12 22 30 60
Codes of length 10 bits (003 total): 20 32 70
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 030
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00008221
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 13 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000084F2
Huffman table length = 48
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (002 total): 03 04
Codes of length 04 bits (001 total): 05
Codes of length 05 bits (003 total): 00 11 12
Codes of length 06 bits (003 total): 06 21 31
Codes of length 07 bits (003 total): 13 22 40
Codes of length 08 bits (002 total): 14 41
Codes of length 09 bits (005 total): 07 10 15 32 50
Codes of length 10 bits (003 total): 42 60 61
Codes of length 11 bits (005 total): 20 23 33 43 51
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 029
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00008524
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 12
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00008C10
Huffman table length = 51
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (002 total): 00 21
Codes of length 05 bits (004 total): 02 31 41 51
Codes of length 06 bits (002 total): 61 71
Codes of length 07 bits (009 total): 03 12 40 81 91 A1 B1 C1 D1
Codes of length 08 bits (003 total): 10 E1 F0
Codes of length 09 bits (003 total): 22 32 F1
Codes of length 10 bits (004 total): 04 50 52 70
Codes of length 11 bits (003 total): 20 42 60
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 032
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00008C45
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 13 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00009047
*** Searching Compression Signatures ***
Signature: 013BA18D5561625796E986FDBC09F846
Signature (Rotated): 01AC57E12793DFA7C46C704625C5AF0F
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[??? ] [Treo 680 ] [ ] Yes
CAM:[Canon ] [Canon PowerShot Pro1 ] [fine ] No
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[NIKON ] [E3100 ] [FINE ] No
CAM:[NIKON ] [E4500 ] [FINE ] No
CAM:[NIKON ] [E5000 ] [FINE ] No
CAM:[NIKON ] [E5700 ] [FINE ] No
CAM:[NIKON ] [E775 ] [FINE ] No
CAM:[NIKON ] [E885 ] [FINE ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[PENTAX ] [PENTAX Optio 550 ] [ ] No
CAM:[Research In Motion ] [BlackBerry 9530 ] [Superfine ] Yes
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
CAM:[SONY ] [DSC-H7 ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
CAM:[SONY ] [DSC-S90 ] [ ] No
CAM:[SONY ] [DSC-W1 ] [ ] No
CAM:[SONY ] [SONY ] [ ] No
SW :[ACDSee ] [ ]
SW :[FixFoto ] [fine ]
SW :[IJG Library ] [090 ]
SW :[ZoomBrowser EX ] [high ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [090 ]
SW :[IrfanView ] [090 ]
SW :[idImager ] [090 ]
SW :[FastStone Image Viewer ] [090 ]
SW :[NeatImage ] [090 ]
SW :[Paint.NET ] [090 ]
SW :[Photomatix ] [090 ]
SW :[XnView ] [090 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

484
tests/Images/Input/Jpg/issues/JpegSnoopReports/Issue723-Ordered-Interleaved-Progressive-C.jpg.txt

@ -0,0 +1,484 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Issue723-Ordered-Interleaved-Progressive-C.jpg]
Filesize: [46799] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 38 x 38 DPcm (dots per cm)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 2 1 1 2 2 4 5 6
DQT, Row #1: 1 1 1 2 3 6 6 6
DQT, Row #2: 1 1 2 2 4 6 7 6
DQT, Row #3: 1 2 2 3 5 9 8 6
DQT, Row #4: 2 2 4 6 7 11 10 8
DQT, Row #5: 2 4 6 6 8 10 11 9
DQT, Row #6: 5 6 8 9 10 12 12 10
DQT, Row #7: 7 9 10 10 11 10 10 10
Approx quality factor = 95.04 (scaling=9.93 variance=1.25)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 2 2 2 5 10 10 10 10
DQT, Row #1: 2 2 3 7 10 10 10 10
DQT, Row #2: 2 3 6 10 10 10 10 10
DQT, Row #3: 5 7 10 10 10 10 10 10
DQT, Row #4: 10 10 10 10 10 10 10 10
DQT, Row #5: 10 10 10 10 10 10 10 10
DQT, Row #6: 10 10 10 10 10 10 10 10
DQT, Row #7: 10 10 10 10 10 10 10 10
Approx quality factor = 94.91 (scaling=10.18 variance=0.26)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 517
Samples per Line = 502
Image Size = 502 x 517
Raw Image Orientation = Portrait
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 30
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (001 total): 06
Codes of length 04 bits (004 total): 04 05 07 08
Codes of length 05 bits (003 total): 02 03 09
Codes of length 06 bits (001 total): 01
Codes of length 07 bits (001 total): 0A
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 011
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000000D1
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000858
Huffman table length = 29
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (001 total): 05
Codes of length 04 bits (005 total): 02 03 04 06 07
Codes of length 05 bits (001 total): 01
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 010
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000877
Scan header length = 10
Number of img components = 2
Component[1]: selector=0x02, table=1(DC),0(AC)
Component[2]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000012C2
Huffman table length = 67
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 03
Codes of length 03 bits (004 total): 01 02 04 05
Codes of length 04 bits (002 total): 00 06
Codes of length 05 bits (001 total): 11
Codes of length 06 bits (002 total): 07 12
Codes of length 07 bits (004 total): 13 14 21 50
Codes of length 08 bits (004 total): 08 15 22 31
Codes of length 09 bits (002 total): 17 23
Codes of length 10 bits (006 total): 10 16 20 24 32 41
Codes of length 11 bits (008 total): 25 33 34 42 51 52 54 62
Codes of length 12 bits (004 total): 26 30 35 40
Codes of length 13 bits (005 total): 18 27 37 55 56
Codes of length 14 bits (005 total): 44 53 61 70 80
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 048
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00001307
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 12
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002FBE
Huffman table length = 80
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 02 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 12 21 31
Codes of length 06 bits (005 total): 13 22 41 51 61
Codes of length 07 bits (011 total): 05 10 14 32 50 71 81 91 A1 B1 C1
Codes of length 08 bits (007 total): 20 23 42 52 62 82 D1
Codes of length 09 bits (009 total): 15 30 33 53 72 92 A2 B2 E1
Codes of length 10 bits (006 total): 24 40 43 73 C2 E2
Codes of length 11 bits (004 total): 06 63 D2 F0
Codes of length 12 bits (005 total): 25 54 75 A3 B3
Codes of length 13 bits (005 total): 44 64 70 80 83
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 061
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00003010
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 13 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000048A9
Huffman table length = 43
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (001 total): 41
Codes of length 06 bits (003 total): 51 61 71
Codes of length 07 bits (003 total): 10 81 A1
Codes of length 08 bits (004 total): 50 91 B1 C1
Codes of length 09 bits (003 total): 20 D1 F0
Codes of length 10 bits (001 total): F1
Codes of length 11 bits (001 total): E1
Codes of length 12 bits (001 total): 30
Codes of length 13 bits (001 total): 70
Codes of length 14 bits (001 total): 80
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 024
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000048D6
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000060D3
Huffman table length = 42
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 11
Codes of length 03 bits (000 total):
Codes of length 04 bits (002 total): 00 21
Codes of length 05 bits (002 total): 31 41
Codes of length 06 bits (002 total): 51 61
Codes of length 07 bits (001 total): 71
Codes of length 08 bits (004 total): 50 81 91 A1
Codes of length 09 bits (002 total): 10 B1
Codes of length 10 bits (002 total): C1 F0
Codes of length 11 bits (002 total): D1 F1
Codes of length 12 bits (003 total): 30 70 E1
Codes of length 13 bits (001 total): 20
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000060FF
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00007FD1
Huffman table length = 54
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 03
Codes of length 03 bits (004 total): 01 02 04 05
Codes of length 04 bits (001 total): 00
Codes of length 05 bits (002 total): 06 11
Codes of length 06 bits (006 total): 07 12 13 21 31 50
Codes of length 07 bits (001 total): 14
Codes of length 08 bits (002 total): 15 22
Codes of length 09 bits (005 total): 10 23 32 33 41
Codes of length 10 bits (003 total): 16 17 20
Codes of length 11 bits (002 total): 24 34
Codes of length 12 bits (007 total): 25 26 30 40 42 51 70
Codes of length 13 bits (001 total): 80
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 035
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00008009
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 8
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00008F76
Huffman table length = 59
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 00 02 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (004 total): 03 12 41 51
Codes of length 06 bits (003 total): 61 71 81
Codes of length 07 bits (005 total): 10 22 50 91 A1
Codes of length 08 bits (007 total): 32 52 B1 C1 D1 F0 F1
Codes of length 09 bits (002 total): 04 13
Codes of length 10 bits (004 total): 20 23 42 72
Codes of length 11 bits (006 total): 62 70 80 82 92 E1
Codes of length 12 bits (003 total): 30 60 A2
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 040
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00008FB3
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 9 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00009B28
Huffman table length = 51
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 03
Codes of length 03 bits (004 total): 01 02 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (003 total): 00 07 11
Codes of length 06 bits (003 total): 12 13 31
Codes of length 07 bits (003 total): 08 21 50
Codes of length 08 bits (003 total): 10 14 15
Codes of length 09 bits (004 total): 20 23 32 41
Codes of length 10 bits (001 total): 16
Codes of length 11 bits (003 total): 22 24 40
Codes of length 12 bits (005 total): 17 18 33 34 70
Codes of length 13 bits (001 total): 80
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 032
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00009B5D
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 8
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000AB99
Huffman table length = 62
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 00 02 11
Codes of length 04 bits (002 total): 03 21
Codes of length 05 bits (004 total): 12 31 41 51
Codes of length 06 bits (003 total): 04 61 71
Codes of length 07 bits (005 total): 10 22 32 50 81
Codes of length 08 bits (004 total): 13 91 A1 B1
Codes of length 09 bits (008 total): 20 23 42 52 62 72 C1 D1
Codes of length 10 bits (005 total): 05 14 92 E1 F0
Codes of length 11 bits (003 total): 30 33 F1
Codes of length 12 bits (005 total): 70 80 82 90 A2
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 043
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000ABD9
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 9 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000B6CD
*** Searching Compression Signatures ***
Signature: 01E764F3ECB6C14A51FF83F1FF6D546B
Signature (Rotated): 01E6610D026E8E6FE4BECEA9B3328A63
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[Minolta Co., Ltd. ] [DiMAGE F100 ] [ ] No
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[NIKON ] [E4500 ] [FINE ] No
CAM:[NIKON ] [E5400 ] [FINE ] No
CAM:[NIKON ] [E5700 ] [FINE ] No
CAM:[NIKON ] [E775 ] [FINE ] No
CAM:[NIKON ] [E8700 ] [FINE ] No
CAM:[OLYMPUS CORPORATION ] [C8080WZ ] [ ] No
CAM:[PENTAX ] [PENTAX K10D ] [ ] No
CAM:[SAMSUNG TECHWIN ] [Pro 815 ] [ ] No
CAM:[SAMSUNG TECHWIN ] [VLUU NV 7, NV 7 ] [ ] No
CAM:[SAMSUNG TECHWIN ] [VLUU NV10, NV10 ] [ ] No
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
CAM:[SONY ] [DSC-F828 ] [ ] No
CAM:[SONY ] [DSC-H1 ] [ ] No
CAM:[SONY ] [DSC-H2 ] [ ] No
CAM:[SONY ] [DSC-H5 ] [ ] No
CAM:[SONY ] [DSC-H7 ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
CAM:[SONY ] [DSC-L1 ] [ ] No
CAM:[SONY ] [DSC-N1 ] [ ] No
CAM:[SONY ] [DSC-P150 ] [ ] No
CAM:[SONY ] [DSC-P200 ] [ ] No
CAM:[SONY ] [DSC-S90 ] [ ] No
CAM:[SONY ] [DSC-V3 ] [ ] No
CAM:[SONY ] [DSC-W55 ] [ ] No
CAM:[SONY ] [DSC-W7 ] [ ] No
SW :[Apple ImageIO.framework ] [084 ]
SW :[IJG Library ] [095 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [095 ]
SW :[IrfanView ] [095 ]
SW :[idImager ] [095 ]
SW :[FastStone Image Viewer ] [095 ]
SW :[NeatImage ] [095 ]
SW :[Paint.NET ] [095 ]
SW :[Photomatix ] [095 ]
SW :[XnView ] [095 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

772
tests/Images/Input/Jpg/issues/JpegSnoopReports/issue750-exif-load.jpg.txt

@ -0,0 +1,772 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\issue750-exif-load.jpg]
Filesize: [36885] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000002
Length = 3656
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000014
Dir Length = 0x0010
[Make ] = "Canon"
[Model ] = "Canon EOS 70D"
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 720000/10000
[YResolution ] = 720000/10000
[ResolutionUnit ] = Inch
[Software ] = "Adobe Photoshop CS6 (Windows)"
[DateTime ] = "2018:02:28 17:51:59"
[YCbCrPositioning ] = Centered
[ExifOffset ] = @ 0x012C
[GPSOffset ] = @ 0x04C8
Offset to Next IFD = 0x000004DC
EXIF IFD1 @ Absolute 0x000004E8
Dir Length = 0x0006
[Compression ] = JPEG
[XResolution ] = 72/1
[YResolution ] = 72/1
[ResolutionUnit ] = Inch
[JpegIFOffset ] = @ +0x053A = @ 0x0546
[JpegIFByteCount ] = 0x[00000906] / 2310
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x00000138
Dir Length = 0x0025
[ExposureTime ] = 1/60 s
[FNumber ] = F11.0
[ExposureProgram ] = Manual
[ISOSpeedRatings ] = 100
[ExifVersion ] = 02.30
[DateTimeOriginal ] = "2017:09:14 14:41:54"
[DateTimeDigitized ] = "2017:09:14 14:41:54"
[ComponentsConfiguration ] = [Y Cb Cr .]
[ShutterSpeedValue ] = 393216/65536
[ApertureValue ] = 458752/65536
[ExposureBiasValue ] = 0.00 eV
[MeteringMode ] = Pattern
[Flash ] = Flash did not fire
[FocalLength ] = 50 mm
[UserComment ] = ""
[SubSecTime ] = "277"
[SubSecTimeOriginal ] = "00"
[SubSecTimeDigitized ] = "00"
[FlashPixVersion ] = 01.00
[ColorSpace ] = sRGB
[ExifImageWidth ] = 0x[000001D3] / 467
[ExifImageHeight ] = 0x[000002BC] / 700
[ExifInteroperabilityOffset ] = @ 0x04A8
[FocalPlaneXResolution ] = 5472000/899
[FocalPlaneYResolution ] = 3648000/599
[FocalPlaneResolutionUnit ] = Inch
[CustomRendered ] = Normal process
[ExposureMode ] = Manual exposure
[WhiteBalance ] = Auto white balance
[SceneCaptureType ] = Standard
EXIF GPSIFD @ Absolute 0x000004D4
Dir Length = 0x0001
[GPSVersionID ] = 2.3.0.0
EXIF InteropIFD @ Absolute 0x000004B4
Dir Length = 0x0002
[InteroperabilityIndex ] = "R98"
[InteroperabilityVersion ] = 01.00
*** Marker: APP13 (xFFED) ***
OFFSET: 0x00000E4C
Length = 4648
Identifier = [Photoshop 3.0]
8BIM: [0x0404] Name="" Len=[0x002C] DefinedName="IPTC-NAA record"
IPTC [001:090] Coded Character Set = "%G"
IPTC [002:000] Record Version = 51658
IPTC [002:055] Date Created = "20170914"
IPTC [002:060] Time Created = "144154+0000"
8BIM: [0x0425] Name="" Len=[0x0010] DefinedName="Caption digest"
Caption digest = | 0x8B 58 80 D1 16 85 C7 6D 47 04 59 0B 61 59 FA 69 | .X.....mG.Y.aY.i
8BIM: [0x043A] Name="" Len=[0x00E5] DefinedName="Print Information"
Print Information =
| 0x00 00 00 10 00 00 00 01 00 00 00 00 00 0B 70 72 | ..............pr
| 0x69 6E 74 4F 75 74 70 75 74 00 00 00 05 00 00 00 | intOutput.......
| 0x00 50 73 74 53 62 6F 6F 6C 01 00 00 00 00 49 6E | .PstSbool.....In
| 0x74 65 65 6E 75 6D 00 00 00 00 49 6E 74 65 00 00 | teenum....Inte..
| 0x00 00 43 6C 72 6D 00 00 00 0F 70 72 69 6E 74 53 | ..Clrm....printS
| 0x69 78 74 65 65 6E 42 69 74 62 6F 6F 6C 00 00 00 | ixteenBitbool...
| 0x00 0B 70 72 69 6E 74 65 72 4E 61 6D 65 54 45 58 | ..printerNameTEX
| 0x54 00 00 00 01 00 00 00 00 00 0F 70 72 69 6E 74 | T..........print
| ...
8BIM: [0x043B] Name="" Len=[0x022D] DefinedName="Print Style"
Print Style =
| 0x00 00 00 10 00 00 00 01 00 00 00 00 00 12 70 72 | ..............pr
| 0x69 6E 74 4F 75 74 70 75 74 4F 70 74 69 6F 6E 73 | intOutputOptions
| 0x00 00 00 17 00 00 00 00 43 70 74 6E 62 6F 6F 6C | ........Cptnbool
| 0x00 00 00 00 00 43 6C 62 72 62 6F 6F 6C 00 00 00 | .....Clbrbool...
| 0x00 00 52 67 73 4D 62 6F 6F 6C 00 00 00 00 00 43 | ..RgsMbool.....C
| 0x72 6E 43 62 6F 6F 6C 00 00 00 00 00 43 6E 74 43 | rnCbool.....CntC
| 0x62 6F 6F 6C 00 00 00 00 00 4C 62 6C 73 62 6F 6F | bool.....Lblsboo
| 0x6C 00 00 00 00 00 4E 67 74 76 62 6F 6F 6C 00 00 | l.....Ngtvbool..
| ...
8BIM: [0x03ED] Name="" Len=[0x0010] DefinedName="ResolutionInfo structure"
Horizontal resolution = 72 pixels per inch
Width unit = cm
Vertical resolution = 72 pixels per inch
Height unit = cm
8BIM: [0x0426] Name="" Len=[0x000E] DefinedName="Print scale"
Style = centered
X location = 0.00000
Y location = 0.00000
Scale = 1.00000
8BIM: [0x040D] Name="" Len=[0x0004] DefinedName="Global Angle"
Global Angle = 30 degrees
8BIM: [0x0419] Name="" Len=[0x0004] DefinedName="Global Altitude"
Global Altitude = 30
8BIM: [0x03F3] Name="" Len=[0x0009] DefinedName="Print flags"
Labels = false
Crop marks = false
Color bars = false
Registration marks = false
Negative = false
Flip = false
Interpolate = false
Caption = false
Print flags = true
8BIM: [0x2710] Name="" Len=[0x000A] DefinedName="Print flags information"
Version = 1
Center crop marks = 0
Reserved = 0
Bleed width value = 0
Bleed width scale = 2
8BIM: [0x03F5] Name="" Len=[0x0048] DefinedName="Color halftoning information"
Color halftoning information =
| 0x00 2F 66 66 00 01 00 6C 66 66 00 06 00 00 00 00 | ./ff...lff......
| 0x00 01 00 2F 66 66 00 01 00 A1 99 9A 00 06 00 00 | .../ff..........
| 0x00 00 00 01 00 32 00 00 00 01 00 5A 00 00 00 06 | .....2.....Z....
| 0x00 00 00 00 00 01 00 35 00 00 00 01 00 2D 00 00 | .......5.....-..
| 0x00 06 00 00 00 00 00 01 | ........
8BIM: [0x03F8] Name="" Len=[0x0070] DefinedName="Color transfer functions"
Color transfer functions =
| 0x00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ................
| 0xFF FF FF FF FF FF FF FF 03 E8 00 00 00 00 FF FF | ................
| 0xFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ................
| 0xFF FF FF FF 03 E8 00 00 00 00 FF FF FF FF FF FF | ................
| 0xFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | ................
| 0x03 E8 00 00 00 00 FF FF FF FF FF FF FF FF FF FF | ................
| 0xFF FF FF FF FF FF FF FF FF FF FF FF 03 E8 00 00 | ................
8BIM: [0x0408] Name="" Len=[0x0010] DefinedName="Grid and guides information"
Version = 1
Grid Horizontal = 576
Grid Vertical = 576
Number of Guide Resources = 0
8BIM: [0x041E] Name="" Len=[0x0004] DefinedName="URL List"
URL List = | 0x00 00 00 00 | ....
8BIM: [0x041A] Name="" Len=[0x0341] DefinedName="Slices"
Slice Header:
Version = 6
Bound Rect (top) = 0
Bound Rect (left) = 0
Bound Rect (bottom) = 700
Bound Rect (right) = 467
Name of group of slices = "513566"
Number of slices = 1
-----
Slice #0:
Slice Resource:
ID = 0
Group ID = 0
Origin = 0
Name = ""
Type = 1
Position (top) = 0
Position (left) = 0
Position (bottom) = 467
Position (right) = 700
URL = ""
Target = ""
Message = ""
Alt Tag = ""
Cell text is HTML = true
Cell text = ""
Horizontal alignment = 0
Vertical alignment = 0
Alpha color = 0
Red = 0
Green = 0
Blue = 0
Descriptor version = 16
Descriptor:
Name from classID = ""
classID = "null"
Num items in descriptor = 2
-----
Descriptor item #0:
Key = "bounds"
OSType key = "Objc"
Descriptor:
Name from classID = ""
classID = "Rct1"
Num items in descriptor = 4
-----
Descriptor item #0:
Key = "Top "
OSType key = "long"
Value = 0
Descriptor item #1:
Key = "Left"
OSType key = "long"
Value = 0
Descriptor item #2:
Key = "Btom"
OSType key = "long"
Value = 700
Descriptor item #3:
Key = "Rght"
OSType key = "long"
Value = 467
-----
Descriptor item #1:
Key = "slices"
OSType key = "VlLs"
Num items in list = 1
-----
Item #0:
OSType key = ""
Descriptor:
Name from classID = ""
classID = "slice"
Num items in descriptor = 18
-----
Descriptor item #0:
Key = "sliceID"
OSType key = "long"
Value = 0
Descriptor item #1:
Key = "groupID"
OSType key = "long"
Value = 0
Descriptor item #2:
Key = "origin"
OSType key = "enum"
Type = "ESliceOrigin"
Enum = "autoGenerated"
Descriptor item #3:
Key = "Type"
OSType key = "enum"
Type = "ESliceType"
Enum = "Img "
Descriptor item #4:
Key = "bounds"
OSType key = "Objc"
Descriptor:
Name from classID = ""
classID = "Rct1"
Num items in descriptor = 4
-----
Descriptor item #0:
Key = "Top "
OSType key = "long"
Value = 0
Descriptor item #1:
Key = "Left"
OSType key = "long"
Value = 0
Descriptor item #2:
Key = "Btom"
OSType key = "long"
Value = 700
Descriptor item #3:
Key = "Rght"
OSType key = "long"
Value = 467
-----
Descriptor item #5:
Key = "url"
OSType key = "TEXT"
String = ""
Descriptor item #6:
Key = "null"
OSType key = "TEXT"
String = ""
Descriptor item #7:
Key = "Msge"
OSType key = "TEXT"
String = ""
Descriptor item #8:
Key = "altTag"
OSType key = "TEXT"
String = ""
Descriptor item #9:
Key = "cellTextIsHTML"
OSType key = "bool"
Value = true
Descriptor item #10:
Key = "cellText"
OSType key = "TEXT"
String = ""
Descriptor item #11:
Key = "horzAlign"
OSType key = "enum"
Type = "ESliceHorzAlign"
Enum = "default"
Descriptor item #12:
Key = "vertAlign"
OSType key = "enum"
Type = "ESliceVertAlign"
Enum = "default"
Descriptor item #13:
Key = "bgColorType"
OSType key = "enum"
Type = "ESliceBGColorType"
Enum = "None"
Descriptor item #14:
Key = "topOutset"
OSType key = "long"
Value = 0
Descriptor item #15:
Key = "leftOutset"
OSType key = "long"
Value = 0
Descriptor item #16:
Key = "bottomOutset"
OSType key = "long"
Value = 0
Descriptor item #17:
Key = "rightOutset"
OSType key = "long"
Value = 0
-----
-----
-----
-----
8BIM: [0x0428] Name="" Len=[0x000C] DefinedName="Pixel Aspect Ratio"
Version = 2
X/Y Ratio = 1.00000
8BIM: [0x0414] Name="" Len=[0x0004] DefinedName="Document-specific IDs seed number"
Base value = 1
8BIM: [0x040C] Name="" Len=[0x0922] DefinedName="Thumbnail resources"
Format = 1
Width of thumbnail = 107 pixels
Height of thumbnail = 160 pixels
Widthbytes = 324 bytes
Total size = 51840 bytes
Size after compression = 2310 bytes
Bits per pixel = 24 bits
Number of planes = 1
JFIF data @ 0x000016FA
8BIM: [0x0421] Name="" Len=[0x0055] DefinedName="Version Info"
Version = 1
hasRealMergedData = 1
Writer name = "Adobe Photoshop"
Reader name = "Adobe Photoshop CS6"
File version = 1
8BIM: [0x0406] Name="" Len=[0x0007] DefinedName="JPEG quality"
Photoshop Save As Quality = 7
Photoshop Save Format = "Standard"
Photoshop Save Progressive Scans = "3 Scans"
??? = 1
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00002076
Length = 3752
Identifier = [http://ns.adobe.com/xap/1.0/]
XMP =
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00002F20
Length = 3160
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 3144 bytes
Preferred CMM Type : 'Lino' (0x4C696E6F)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 1998-02-09 06:49:00
Profile file signature : 'acsp' (0x61637370)
Primary platform : Microsoft Corporation ('MSFT' (0x4D534654))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : 'IEC ' (0x49454320)
Device Model : 'sRGB' (0x73524742)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'HP ' (0x48502020)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: APP14 (xFFEE) ***
OFFSET: 0x00003B7A
Length = 14
DCTEncodeVersion = 100
APP14Flags0 = 0
APP14Flags1 = 0
ColorTransform = 1 [YCbCr]
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00003B8A
Table length = 132
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 10 7 7 10 15 18 20 17
DQT, Row #1: 7 8 8 10 13 16 12 12
DQT, Row #2: 7 8 8 10 16 12 12 12
DQT, Row #3: 10 10 10 18 12 12 12 12
DQT, Row #4: 15 13 16 12 12 12 12 12
DQT, Row #5: 18 16 12 12 12 12 12 12
DQT, Row #6: 20 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
Approx quality factor = 83.48 (scaling=33.04 variance=462.13)
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 11 12 21 34 20 20 17 17
DQT, Row #1: 12 19 24 14 14 12 12 12
DQT, Row #2: 21 24 14 14 12 12 12 12
DQT, Row #3: 34 14 14 12 12 12 12 12
DQT, Row #4: 20 14 12 12 12 12 12 12
DQT, Row #5: 20 12 12 12 12 12 12 12
DQT, Row #6: 17 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
Approx quality factor = 87.98 (scaling=24.05 variance=592.80)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x00003C10
Frame header length = 17
Precision = 8
Number of Lines = 700
Samples per Line = 467
Image Size = 467 x 700
Raw Image Orientation = Portrait
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 1 x 1), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DRI (Restart Interval) (xFFDD) ***
OFFSET: 0x00003C23
Length = 4
interval = 59
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003C29
Huffman table length = 418
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (000 total):
Codes of length 03 bits (007 total): 04 05 03 02 06 01 00
Codes of length 04 bits (001 total): 07
Codes of length 05 bits (001 total): 08
Codes of length 06 bits (001 total): 09
Codes of length 07 bits (001 total): 0A
Codes of length 08 bits (001 total): 0B
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 00
Codes of length 03 bits (002 total): 02 03
Codes of length 04 bits (003 total): 04 05 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 11 04 00
Codes of length 05 bits (003 total): 05 21 12
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 51 06 13 61
Codes of length 08 bits (002 total): 22 71
Codes of length 09 bits (006 total): 81 14 32 91 A1 07
Codes of length 10 bits (007 total): 15 B1 42 23 C1 52 D1
Codes of length 11 bits (003 total): E1 33 16
Codes of length 12 bits (004 total): 62 F0 24 72
Codes of length 13 bits (002 total): 82 F1
Codes of length 14 bits (006 total): 25 43 34 53 92 A2
Codes of length 15 bits (002 total): B2 63
Codes of length 16 bits (115 total): 73 C2 35 44 27 93 A3 B3 36 17 54 64 74 C3 D2 E2
08 26 83 09 0A 18 19 84 94 45 46 A4 B4 56 D3 55
28 1A F2 E3 F3 C4 D4 E4 F4 65 75 85 95 A5 B5 C5
D5 E5 F5 66 76 86 96 A6 B6 C6 D6 E6 F6 37 47 57
67 77 87 97 A7 B7 C7 D7 E7 F7 38 48 58 68 78 88
98 A8 B8 C8 D8 E8 F8 29 39 49 59 69 79 89 99 A9
B9 C9 D9 E9 F9 2A 3A 4A 5A 6A 7A 8A 9A AA BA CA
DA EA FA
Total number of codes: 162
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 00
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (002 total): 04 21
Codes of length 06 bits (003 total): 12 31 41
Codes of length 07 bits (005 total): 05 51 13 61 22
Codes of length 08 bits (005 total): 06 71 81 91 32
Codes of length 09 bits (004 total): A1 B1 F0 14
Codes of length 10 bits (005 total): C1 D1 E1 23 42
Codes of length 11 bits (006 total): 15 52 62 72 F1 33
Codes of length 12 bits (004 total): 24 34 43 82
Codes of length 13 bits (008 total): 16 92 53 25 A2 63 B2 C2
Codes of length 14 bits (003 total): 07 73 D2
Codes of length 15 bits (003 total): 35 E2 44
Codes of length 16 bits (109 total): 83 17 54 93 08 09 0A 18 19 26 36 45 1A 27 64 74
55 37 F2 A3 B3 C3 28 29 D3 E3 F3 84 94 A4 B4 C4
D4 E4 F4 65 75 85 95 A5 B5 C5 D5 E5 F5 46 56 66
76 86 96 A6 B6 C6 D6 E6 F6 47 57 67 77 87 97 A7
B7 C7 D7 E7 F7 38 48 58 68 78 88 98 A8 B8 C8 D8
E8 F8 39 49 59 69 79 89 99 A9 B9 C9 D9 E9 F9 2A
3A 4A 5A 6A 7A 8A 9A AA BA CA DA EA FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00003DCD
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x00003DDB
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x00009013.0
Compression stats:
Compression Ratio: 46.60:1
Bits per pixel: 0.52:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 0 ( 0%)
# codes of length 03 bits: 4910 ( 95%)
# codes of length 04 bits: 280 ( 5%)
# codes of length 05 bits: 2 ( 0%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 9997 ( 96%)
# codes of length 03 bits: 335 ( 3%)
# codes of length 04 bits: 52 ( 1%)
# codes of length 05 bits: 0 ( 0%)
# codes of length 06 bits: 0 ( 0%)
# codes of length 07 bits: 0 ( 0%)
# codes of length 08 bits: 0 ( 0%)
# codes of length 09 bits: 0 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 5649 ( 33%)
# codes of length 03 bits: 1560 ( 9%)
# codes of length 04 bits: 6758 ( 39%)
# codes of length 05 bits: 1189 ( 7%)
# codes of length 06 bits: 349 ( 2%)
# codes of length 07 bits: 488 ( 3%)
# codes of length 08 bits: 255 ( 1%)
# codes of length 09 bits: 351 ( 2%)
# codes of length 10 bits: 254 ( 1%)
# codes of length 11 bits: 70 ( 0%)
# codes of length 12 bits: 76 ( 0%)
# codes of length 13 bits: 14 ( 0%)
# codes of length 14 bits: 115 ( 1%)
# codes of length 15 bits: 41 ( 0%)
# codes of length 16 bits: 88 ( 1%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 10917 ( 93%)
# codes of length 03 bits: 435 ( 4%)
# codes of length 04 bits: 77 ( 1%)
# codes of length 05 bits: 75 ( 1%)
# codes of length 06 bits: 121 ( 1%)
# codes of length 07 bits: 47 ( 0%)
# codes of length 08 bits: 36 ( 0%)
# codes of length 09 bits: 5 ( 0%)
# codes of length 10 bits: 15 ( 0%)
# codes of length 11 bits: 39 ( 0%)
# codes of length 12 bits: 11 ( 0%)
# codes of length 13 bits: 3 ( 0%)
# codes of length 14 bits: 2 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 1 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[222] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1020, 0, 0] RGB=[255,255,255] @ MCU[ 0, 0]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 87
Next position in scan buffer: Offset 0x00009012.5
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00009013
*** Embedded JPEG Thumbnail ***
Offset: 0x00000546
Length: 0x00000906 (2310)
* Embedded Thumb Marker: SOI
* Embedded Thumb Marker: APP13
Length = 12
* Embedded Thumb Marker: APP14
Length = 14
* Embedded Thumb Marker: DQT
Length = 132
----
Precision=8 bits
Destination ID=0 (Luminance, typically)
DQT, Row #0: 12 8 8 12 17 21 24 17
DQT, Row #1: 8 9 9 11 15 19 12 12
DQT, Row #2: 8 9 10 12 19 12 12 12
DQT, Row #3: 12 11 12 21 12 12 12 12
DQT, Row #4: 17 15 19 12 12 12 12 12
DQT, Row #5: 21 19 12 12 12 12 12 12
DQT, Row #6: 24 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
----
Precision=8 bits
Destination ID=1 (Chrominance, typically)
DQT, Row #0: 13 11 13 16 20 20 17 17
DQT, Row #1: 11 14 14 14 14 12 12 12
DQT, Row #2: 13 14 14 14 12 12 12 12
DQT, Row #3: 16 14 14 12 12 12 12 12
DQT, Row #4: 20 14 12 12 12 12 12 12
DQT, Row #5: 20 12 12 12 12 12 12 12
DQT, Row #6: 17 12 12 12 12 12 12 12
DQT, Row #7: 17 12 12 12 12 12 12 12
* Embedded Thumb Marker: SOF
Frame header length = 17
Precision = 8
Number of Lines = 160
Samples per Line = 107
Image Size = 107 x 160
* Embedded Thumb Marker: DRI
Length = 4
* Embedded Thumb Marker: DHT
Length = 319
* Embedded Thumb Marker: SOS
Skipping scan data
Skipped 1785 bytes
* Embedded Thumb Marker: EOI
* Embedded Thumb Signature: 01C2DDA29A1B5DCCD5E217CF9C558A62
*** Searching Compression Signatures ***
Signature: 0165B3F1B409A4D8D5F2ADFFA970D3A5
Signature (Rotated): 0165B3F1B409A4D8D5F2ADFFA970D3A5
File Offset: 0 bytes
Chroma subsampling: 1x1
EXIF Make/Model: OK [Canon] [Canon EOS 70D]
EXIF Makernotes: NONE
EXIF Software: OK [Adobe Photoshop CS6 (Windows)]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[NIKON ] [E885 ] [FINE ] Yes
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C700UZ ] [ ] Yes
SW :[Adobe Photoshop 7.0 ] [Save As 07 ]
NOTE: Photoshop IRB detected
NOTE: EXIF Software field recognized as from editor
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited

435
tests/Images/Input/Jpg/issues/JpegSnoopReports/issue750-exif-tranform.jpg.txt

@ -0,0 +1,435 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\issue750-exif-tranform.jpg]
Filesize: [5587341] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 300 x 300 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 8272
Identifier = [Exif]
Identifier TIFF = 0x[4D4D002A 00000008]
Endian = Motorola (big)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000026
Dir Length = 0x000A
[Make ] = "Canon"
[Model ] = "Canon EOS 500D"
[Orientation ] = 1 = Row 0: top, Col 0: left
[DateTime ] = "2017:12:06 15:48:51"
[Artist ] = ""
[YCbCrPositioning ] = Co-sited
[Copyright ] = ""
[ExifOffset ] = @ 0x00B0
[GPSOffset ] = @ 0x2034
[XPAuthor ] = "??"
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x000000CE
Dir Length = 0x0020
[ExposureTime ] = 1/160 s
[FNumber ] = F9.0
[ExposureProgram ] = Normal program
[ISOSpeedRatings ] = 3200
[ExifVersion ] = 02.21
[DateTimeOriginal ] = "2017:12:06 15:48:51"
[DateTimeDigitized ] = "2017:12:06 15:48:51"
[ComponentsConfiguration ] = [Y Cb Cr .]
[ShutterSpeedValue ] = 483328/65536
[ApertureValue ] = 417792/65536
[ExposureBiasValue ] = 1.00 eV
[MeteringMode ] = Pattern
[Flash ] = Flash did not fire
[FocalLength ] = 24 mm
[MakerNote ] = @ 0x028E
[UserComment ] = ""
[SubSecTime ] = "80"
[SubSecTimeOriginal ] = "80"
[SubSecTimeDigitized ] = "80"
[FlashPixVersion ] = 01.00
[ColorSpace ] = sRGB
[ExifImageWidth ] = 4752
[ExifImageHeight ] = 3168
[ExifInteroperabilityOffset ] = @ 0x2010
[FocalPlaneXResolution ] = 4752000/894
[FocalPlaneYResolution ] = 3168000/593
[FocalPlaneResolutionUnit ] = Inch
[CustomRendered ] = Normal process
[ExposureMode ] = Auto exposure
[WhiteBalance ] = Auto white balance
[SceneCaptureType ] = Standard
EXIF MakerIFD @ Absolute 0x000002AC
Makernote decode option not enabled.
EXIF GPSIFD @ Absolute 0x00002052
Dir Length = 0x0001
[GPSVersionID ] = 2.2.0.0
EXIF InteropIFD @ Absolute 0x0000202E
Dir Length = 0x0001
[InteroperabilityVersion ] = 01.00
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00002066
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 1 1 1 1 1 2 3 4
DQT, Row #1: 1 1 1 1 2 3 4 3
DQT, Row #2: 1 1 1 1 2 3 4 3
DQT, Row #3: 1 1 1 2 3 5 5 4
DQT, Row #4: 1 1 2 3 4 7 6 5
DQT, Row #5: 1 2 3 4 5 6 7 6
DQT, Row #6: 3 4 5 5 6 7 7 6
DQT, Row #7: 4 6 6 6 7 6 6 6
Approx quality factor = 96.95 (scaling=6.11 variance=1.09)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000020AB
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 1 1 1 3 6 6 6 6
DQT, Row #1: 1 1 2 4 6 6 6 6
DQT, Row #2: 1 2 3 6 6 6 6 6
DQT, Row #3: 3 4 6 6 6 6 6 6
DQT, Row #4: 6 6 6 6 6 6 6 6
DQT, Row #5: 6 6 6 6 6 6 6 6
DQT, Row #6: 6 6 6 6 6 6 6 6
DQT, Row #7: 6 6 6 6 6 6 6 6
Approx quality factor = 96.99 (scaling=6.01 variance=0.24)
*** Marker: SOF0 (Baseline DCT) (xFFC0) ***
OFFSET: 0x000020F0
Frame header length = 17
Precision = 8
Number of Lines = 3168
Samples per Line = 4752
Image Size = 4752 x 3168
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002103
Huffman table length = 31
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (005 total): 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 09
Codes of length 08 bits (001 total): 0A
Codes of length 09 bits (001 total): 0B
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002124
Huffman table length = 181
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (003 total): 00 04 11
Codes of length 05 bits (003 total): 05 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 06 13 51 61
Codes of length 08 bits (003 total): 07 22 71
Codes of length 09 bits (005 total): 14 32 81 91 A1
Codes of length 10 bits (005 total): 08 23 42 B1 C1
Codes of length 11 bits (004 total): 15 52 D1 F0
Codes of length 12 bits (004 total): 24 33 62 72
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (001 total): 82
Codes of length 16 bits (125 total): 09 0A 16 17 18 19 1A 25 26 27 28 29 2A 34 35 36
37 38 39 3A 43 44 45 46 47 48 49 4A 53 54 55 56
57 58 59 5A 63 64 65 66 67 68 69 6A 73 74 75 76
77 78 79 7A 83 84 85 86 87 88 89 8A 92 93 94 95
96 97 98 99 9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3
B4 B5 B6 B7 B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA
D2 D3 D4 D5 D6 D7 D8 D9 DA E1 E2 E3 E4 E5 E6 E7
E8 E9 EA F1 F2 F3 F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000021DB
Huffman table length = 31
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 02
Codes of length 03 bits (001 total): 03
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (001 total): 05
Codes of length 06 bits (001 total): 06
Codes of length 07 bits (001 total): 07
Codes of length 08 bits (001 total): 08
Codes of length 09 bits (001 total): 09
Codes of length 10 bits (001 total): 0A
Codes of length 11 bits (001 total): 0B
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 012
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000021FC
Huffman table length = 181
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (002 total): 03 11
Codes of length 05 bits (004 total): 04 05 21 31
Codes of length 06 bits (004 total): 06 12 41 51
Codes of length 07 bits (003 total): 07 61 71
Codes of length 08 bits (004 total): 13 22 32 81
Codes of length 09 bits (007 total): 08 14 42 91 A1 B1 C1
Codes of length 10 bits (005 total): 09 23 33 52 F0
Codes of length 11 bits (004 total): 15 62 72 D1
Codes of length 12 bits (004 total): 0A 16 24 34
Codes of length 13 bits (000 total):
Codes of length 14 bits (001 total): E1
Codes of length 15 bits (002 total): 25 F1
Codes of length 16 bits (119 total): 17 18 19 1A 26 27 28 29 2A 35 36 37 38 39 3A 43
44 45 46 47 48 49 4A 53 54 55 56 57 58 59 5A 63
64 65 66 67 68 69 6A 73 74 75 76 77 78 79 7A 82
83 84 85 86 87 88 89 8A 92 93 94 95 96 97 98 99
9A A2 A3 A4 A5 A6 A7 A8 A9 AA B2 B3 B4 B5 B6 B7
B8 B9 BA C2 C3 C4 C5 C6 C7 C8 C9 CA D2 D3 D4 D5
D6 D7 D8 D9 DA E2 E3 E4 E5 E6 E7 E8 E9 EA F2 F3
F4 F5 F6 F7 F8 F9 FA
Total number of codes: 162
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000022B3
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),1(AC)
Component[3]: selector=0x03, table=1(DC),1(AC)
Spectral selection = 0 .. 63
Successive approximation = 0x00
*** Decoding SCAN Data ***
OFFSET: 0x000022C1
Scan Decode Mode: No IDCT (DC only)
NOTE: Low-resolution DC component shown. Can decode full-res with [Options->Scan Segment->Full IDCT]
Scan Data encountered marker 0xFFD9 @ 0x0055418B.0
Compression stats:
Compression Ratio: 8.10:1
Bits per pixel: 2.96:1
Huffman code histogram stats:
Huffman Table: (Dest ID: 0, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 7852 ( 3%)
# codes of length 03 bits: 194801 ( 83%)
# codes of length 04 bits: 18114 ( 8%)
# codes of length 05 bits: 9703 ( 4%)
# codes of length 06 bits: 3623 ( 2%)
# codes of length 07 bits: 941 ( 0%)
# codes of length 08 bits: 188 ( 0%)
# codes of length 09 bits: 2 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 1, Class: DC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 53609 ( 46%)
# codes of length 03 bits: 36337 ( 31%)
# codes of length 04 bits: 20089 ( 17%)
# codes of length 05 bits: 4404 ( 4%)
# codes of length 06 bits: 2062 ( 2%)
# codes of length 07 bits: 903 ( 1%)
# codes of length 08 bits: 206 ( 0%)
# codes of length 09 bits: 2 ( 0%)
# codes of length 10 bits: 0 ( 0%)
# codes of length 11 bits: 0 ( 0%)
# codes of length 12 bits: 0 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 0 ( 0%)
# codes of length 16 bits: 0 ( 0%)
Huffman Table: (Dest ID: 0, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 3801677 ( 49%)
# codes of length 03 bits: 1263986 ( 16%)
# codes of length 04 bits: 1288745 ( 17%)
# codes of length 05 bits: 606891 ( 8%)
# codes of length 06 bits: 282047 ( 4%)
# codes of length 07 bits: 273734 ( 4%)
# codes of length 08 bits: 85749 ( 1%)
# codes of length 09 bits: 90483 ( 1%)
# codes of length 10 bits: 39213 ( 1%)
# codes of length 11 bits: 19089 ( 0%)
# codes of length 12 bits: 6439 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 0 ( 0%)
# codes of length 15 bits: 136 ( 0%)
# codes of length 16 bits: 7545 ( 0%)
Huffman Table: (Dest ID: 1, Class: AC)
# codes of length 01 bits: 0 ( 0%)
# codes of length 02 bits: 309037 ( 51%)
# codes of length 03 bits: 124353 ( 21%)
# codes of length 04 bits: 87742 ( 14%)
# codes of length 05 bits: 43060 ( 7%)
# codes of length 06 bits: 28928 ( 5%)
# codes of length 07 bits: 2442 ( 0%)
# codes of length 08 bits: 8544 ( 1%)
# codes of length 09 bits: 1150 ( 0%)
# codes of length 10 bits: 376 ( 0%)
# codes of length 11 bits: 126 ( 0%)
# codes of length 12 bits: 30 ( 0%)
# codes of length 13 bits: 0 ( 0%)
# codes of length 14 bits: 50 ( 0%)
# codes of length 15 bits: 24 ( 0%)
# codes of length 16 bits: 4 ( 0%)
YCC clipping in DC:
Y component: [<0= 0] [>255= 0]
Cb component: [<0= 0] [>255= 0]
Cr component: [<0= 0] [>255= 0]
RGB clipping in DC:
R component: [<0= 0] [>255= 0]
G component: [<0= 0] [>255= 0]
B component: [<0= 0] [>255= 0]
Average Pixel Luminance (Y):
Y=[215] (range: 0..255)
Brightest Pixel Search:
YCC=[ 1016, -3, 3] RGB=[255,255,253] @ MCU[ 92, 26]
Finished Decoding SCAN Data
Number of RESTART markers decoded: 0
Next position in scan buffer: Offset 0x0055418A.7
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0055418B
*** Searching Compression Signatures ***
Signature: 010564D93F295ADB889B91604DC82EE1
Signature (Rotated): 014302FE54745F4DBB58A0D51CDC66BD
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: OK [Canon] [Canon EOS 500D]
EXIF Makernotes: OK
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[Leica Camera AG ] [M8 Digital Camera ] [ ] No
CAM:[Leica Camera AG ] [M8 Digital Camera ] [ ] No
CAM:[Leica Camera AG ] [M8 Digital Camera ] [ ] No
CAM:[NIKON ] [E4500 ] [FINE ] No
CAM:[NIKON ] [E5400 ] [FINE ] No
CAM:[NIKON ] [E775 ] [FINE ] No
CAM:[NIKON ] [E775 ] [FINE ] No
CAM:[OLYMPUS CORPORATION ] [C8080WZ ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C40Z,D40Z ] [ ] No
CAM:[Samsung Techwin ] [Digimax V50/a5 ] [ ] No
CAM:[SAMSUNG TECHWIN ] [Pro 815 ] [ ] No
CAM:[SAMSUNG TECHWIN ] [VLUU NV 7, NV 7 ] [ ] No
CAM:[SAMSUNG TECHWIN ] [VLUU NV10, NV10 ] [ ] No
CAM:[SONY ] [CYBERSHOT ] [ ] No
CAM:[SONY ] [DSC-H1 ] [ ] No
CAM:[SONY ] [DSC-H2 ] [ ] No
CAM:[SONY ] [DSC-H5 ] [ ] No
CAM:[SONY ] [DSC-H7 ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
CAM:[SONY ] [DSC-L1 ] [ ] No
CAM:[SONY ] [DSC-N2 ] [ ] No
CAM:[SONY ] [DSC-P150 ] [ ] No
CAM:[SONY ] [DSC-P200 ] [ ] No
CAM:[SONY ] [DSC-R1 ] [ ] No
CAM:[SONY ] [DSC-S90 ] [ ] No
CAM:[SONY ] [DSC-V1 ] [ ] No
CAM:[SONY ] [DSC-V3 ] [ ] No
CAM:[SONY ] [DSC-W35 ] [ ] No
CAM:[SONY ] [DSC-W7 ] [ ] No
CAM:[SONY ] [SONY ] [ ] No
SW :[IJG Library ] [097 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [097 ]
SW :[IrfanView ] [097 ]
SW :[idImager ] [097 ]
SW :[FastStone Image Viewer ] [097 ]
SW :[NeatImage ] [097 ]
SW :[Paint.NET ] [097 ]
SW :[Photomatix ] [097 ]
SW :[XnView ] [097 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 4 - Uncertain if processed or original
While the EXIF fields indicate original, no compression signatures
in the current database were found matching this make/model
Appears to be new signature for known camera.
If the camera/software doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

452
tests/Images/Input/Jpg/progressive/JpegSnoopReports/BadEofProgressive.jpg.txt

@ -0,0 +1,452 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\BadEofProgressive.jpg]
Filesize: [67503] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.2]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: APP13 (xFFED) ***
OFFSET: 0x00000014
Length = 124
Identifier = [Photoshop 3.0]
8BIM: [0x0404] Name="" Len=[0x005F] DefinedName="IPTC-NAA record"
IPTC [002:040] Special Instructions = "FBMD2300098903000068210000c735000008450000e88e0000fab00000c6cd000002f80000191a0100653f0100"
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x00000092
Length = 540
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 524 bytes
Preferred CMM Type : 'lcms' (0x6C636D73)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 2012-01-25 03:41:57
Profile file signature : 'acsp' (0x61637370)
Primary platform : Apple Computer, Inc. ('APPL' (0x4150504C))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : '....' (0x00000000)
Device Model : '....' (0x00000000)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'lcms' (0x6C636D73)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000002B0
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 6 4 4 6 10 16 20 24
DQT, Row #1: 5 5 6 8 10 23 24 22
DQT, Row #2: 6 5 6 10 16 23 28 22
DQT, Row #3: 6 7 9 12 20 35 32 25
DQT, Row #4: 7 9 15 22 27 44 41 31
DQT, Row #5: 10 14 22 26 32 42 45 37
DQT, Row #6: 20 26 31 35 41 48 48 40
DQT, Row #7: 29 37 38 39 45 40 41 40
Approx quality factor = 79.94 (scaling=40.12 variance=1.43)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x000002F5
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 7 7 10 19 40 40 40 40
DQT, Row #1: 7 8 10 26 40 40 40 40
DQT, Row #2: 10 10 22 40 40 40 40 40
DQT, Row #3: 19 26 40 40 40 40 40 40
DQT, Row #4: 40 40 40 40 40 40 40 40
DQT, Row #5: 40 40 40 40 40 40 40 40
DQT, Row #6: 40 40 40 40 40 40 40 40
DQT, Row #7: 40 40 40 40 40 40 40 40
Approx quality factor = 79.87 (scaling=40.26 variance=0.36)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000033A
Frame header length = 17
Precision = 8
Number of Lines = 640
Samples per Line = 640
Image Size = 640 x 640
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x00, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x01, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000034D
Huffman table length = 29
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (000 total):
Codes of length 03 bits (007 total): 01 02 03 04 05 06 07
Codes of length 04 bits (001 total): 00
Codes of length 05 bits (001 total): 08
Codes of length 06 bits (001 total): 09
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 010
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000036C
Huffman table length = 27
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (003 total): 00 03 04
Codes of length 04 bits (001 total): 05
Codes of length 05 bits (001 total): 06
Codes of length 06 bits (001 total): 07
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 008
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000389
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),0(AC)
Component[3]: selector=0x02, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002127
Huffman table length = 63
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (004 total): 00 02 03 11
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (003 total): 12 21 31
Codes of length 06 bits (002 total): 05 41
Codes of length 07 bits (003 total): 13 22 51
Codes of length 08 bits (004 total): 10 32 61 A1
Codes of length 09 bits (007 total): 14 20 71 81 91 B1 F0
Codes of length 10 bits (007 total): 06 23 42 52 C1 D1 E1
Codes of length 11 bits (002 total): 15 30
Codes of length 12 bits (005 total): 16 24 33 34 62
Codes of length 13 bits (005 total): 25 40 50 72 F1
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 044
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00002168
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003588
Huffman table length = 61
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (003 total): 04 12 21
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (004 total): 05 10 13 51
Codes of length 08 bits (003 total): 14 20 22
Codes of length 09 bits (005 total): 32 42 61 71 91
Codes of length 10 bits (007 total): 15 23 33 81 A1 B1 C1
Codes of length 11 bits (003 total): 06 30 D1
Codes of length 12 bits (002 total): E1 F0
Codes of length 13 bits (007 total): 16 24 34 40 43 50 52
Codes of length 14 bits (001 total): 62
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 042
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000035C7
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x00
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000044BF
Huffman table length = 71
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 00 02 03
Codes of length 04 bits (002 total): 04 11
Codes of length 05 bits (003 total): 12 21 31
Codes of length 06 bits (004 total): 13 22 41 51
Codes of length 07 bits (007 total): 05 10 20 32 61 71 81
Codes of length 08 bits (005 total): 14 23 42 52 91
Codes of length 09 bits (005 total): 30 33 62 72 A1
Codes of length 10 bits (007 total): 15 34 43 53 82 92 B1
Codes of length 11 bits (003 total): 06 24 40
Codes of length 12 bits (004 total): 44 A2 C1 D1
Codes of length 13 bits (001 total): E1
Codes of length 14 bits (004 total): 25 35 50 F0
Codes of length 15 bits (003 total): 54 63 73
Codes of length 16 bits (000 total):
Total number of codes: 052
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00004508
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00008EC5
Huffman table length = 33
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (000 total):
Codes of length 05 bits (003 total): 10 21 31
Codes of length 06 bits (001 total): 41
Codes of length 07 bits (001 total): 51
Codes of length 08 bits (001 total): 20
Codes of length 09 bits (001 total): 61
Codes of length 10 bits (001 total): 71
Codes of length 11 bits (001 total): 30
Codes of length 12 bits (001 total): 81
Codes of length 13 bits (001 total): 40
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 014
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00008EE8
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 1 .. 10
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000B0CE
Huffman table length = 42
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (006 total): 10 41 51 61 71 91
Codes of length 06 bits (002 total): 20 81
Codes of length 07 bits (001 total): 30
Codes of length 08 bits (005 total): 40 A1 B1 C1 F0
Codes of length 09 bits (001 total): D1
Codes of length 10 bits (001 total): F1
Codes of length 11 bits (001 total): E1
Codes of length 12 bits (001 total): 50
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000B0FA
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 11 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000CDA4
Huffman table length = 32
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (001 total): 31
Codes of length 06 bits (001 total): 10
Codes of length 07 bits (001 total): 41
Codes of length 08 bits (001 total): 51
Codes of length 09 bits (001 total): 20
Codes of length 10 bits (001 total): 61
Codes of length 11 bits (001 total): 71
Codes of length 12 bits (001 total): 81
Codes of length 13 bits (001 total): 91
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 013
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000CDC6
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 1 .. 10
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000F7DF
Huffman table length = 33
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (002 total): 10 41
Codes of length 06 bits (003 total): 51 61 71
Codes of length 07 bits (001 total): 20
Codes of length 08 bits (001 total): 81
Codes of length 09 bits (001 total): 30
Codes of length 10 bits (001 total): 40
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 014
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000F802
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 11 .. 19
Successive approximation = 0x10
ERROR: Ran out of buffer before EOI during phase 1 of Scan decode @ 0x000107B0
NOTE: Scan parsing doesn't support this SOF mode.
ERROR: Early EOF - file may be missing EOI
*** Searching Compression Signatures ***
Signature: 01DC499064BA9264D591FDE9071DFD89
Signature (Rotated): 0175BAF3251040E0EFB2930B73328E7F
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C2000Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C40Z,D40Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C700UZ ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
SW :[Apple ImageIO.framework ] [050 (Normal) ]
SW :[IJG Library ] [080 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [080 ]
SW :[IrfanView ] [080 ]
SW :[idImager ] [080 ]
SW :[FastStone Image Viewer ] [080 ]
SW :[NeatImage ] [080 ]
SW :[Paint.NET ] [080 ]
SW :[Photomatix ] [080 ]
SW :[XnView ] [080 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

535
tests/Images/Input/Jpg/progressive/JpegSnoopReports/ExifUndefType.jpg.txt

@ -0,0 +1,535 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\ExifUndefType.jpg]
Filesize: [6582] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 72 x 72 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000014
Length = 804
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 86020000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x000002A4
Dir Length = 0x000C
[Orientation ] = 1 = Row 0: top, Col 0: left
[XResolution ] = 72/1
[YResolution ] = 72/1
[ResolutionUnit ] = Inch
[Software ] = "Adobe Photoshop CS4 Windows"
[DateTime ] = "2014:03:28 16:44:10"
[WhitePoint ] = 0/1000000, 0/1000000
[PrimChromaticities ] = 0/1000000, 0/1000000, 0/1000000, 0/1000000, 0/1000000, 0/1000000
[YCbCrCoefficients ] = 0/1000000, 0/1000000, 0/1000000
[YCbCrPositioning ] = 0
[ReferenceBlackWhite ] = 0/1000000, 0/1000000, 0/1000000, 0/1000000, 0/1000000, 0/1000000
[ExifOffset ] = @ 0x0138
Offset to Next IFD = 0x00000000
EXIF SubIFD @ Absolute 0x00000156
Dir Length = 0x001B
[ExposureTime ] = 0/1000000 s
[FNumber ] = F0.0
[ExposureProgram ] = Not defined
[ISOSpeedRatings ] = 0, 0
[ExifVersion ] = 12.20
[CompressedBitsPerPixel ] = 0/1000000
[ShutterSpeedValue ] = 0/1000000
[ApertureValue ] = 0/1000000
[BrightnessValue ] = 0/1000000
[ExposureBiasValue ] = 0.00 eV
[MaxApertureValue ] = 0/1000000
[SubjectDistance ] = 0/1000000
[MeteringMode ] = Unknown
[LightSource ] = unknown
[Flash ] = Flash did not fire
[FocalLength ] = 0 mm
[FlashPixVersion ] =
[ColorSpace ] = sRGB
[ExifImageWidth ] = 850
[ExifImageHeight ] = 638
[FocalPlaneXResolution ] = 0/1000000
[FocalPlaneYResolution ] = 0/1000000
[FocalPlaneResolutionUnit ] = 0
[ExposureIndex ] = 0/1000000
[SensingMethod ] = 0
[FileSource ] = 0
[SceneType ] = 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x0000033A
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 3 2 2 3 5 8 10 12
DQT, Row #1: 2 2 3 4 5 12 12 11
DQT, Row #2: 3 3 3 5 8 11 14 11
DQT, Row #3: 3 3 4 6 10 17 16 12
DQT, Row #4: 4 4 7 11 14 22 21 15
DQT, Row #5: 5 7 11 13 16 21 23 18
DQT, Row #6: 10 13 16 17 21 24 24 20
DQT, Row #7: 14 18 19 20 22 20 21 20
Approx quality factor = 90.06 (scaling=19.88 variance=1.14)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x0000037F
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 3 4 5 9 20 20 20 20
DQT, Row #1: 4 4 5 13 20 20 20 20
DQT, Row #2: 5 5 11 20 20 20 20 20
DQT, Row #3: 9 13 20 20 20 20 20 20
DQT, Row #4: 20 20 20 20 20 20 20 20
DQT, Row #5: 20 20 20 20 20 20 20 20
DQT, Row #6: 20 20 20 20 20 20 20 20
DQT, Row #7: 20 20 20 20 20 20 20 20
Approx quality factor = 89.93 (scaling=20.14 variance=0.34)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x000003C4
Frame header length = 17
Precision = 8
Number of Lines = 165
Samples per Line = 220
Image Size = 220 x 165
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000003D7
Huffman table length = 28
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 03 07
Codes of length 04 bits (003 total): 02 04 05
Codes of length 05 bits (001 total): 06
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (001 total): 01
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000003F5
Huffman table length = 22
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (000 total):
Codes of length 05 bits (000 total):
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 003
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000040D
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),0(AC)
Component[3]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000581
Huffman table length = 41
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (000 total):
Codes of length 03 bits (006 total): 00 01 02 03 04 05
Codes of length 04 bits (001 total): 06
Codes of length 05 bits (003 total): 11 15 16
Codes of length 06 bits (004 total): 12 13 14 21
Codes of length 07 bits (002 total): 07 10
Codes of length 08 bits (002 total): 22 40
Codes of length 09 bits (003 total): 17 30 60
Codes of length 10 bits (001 total): 24
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 022
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000005AC
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000883
Huffman table length = 27
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 11
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (000 total):
Codes of length 04 bits (002 total): 01 10
Codes of length 05 bits (003 total): 20 30 40
Codes of length 06 bits (001 total): 50
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 008
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000008A0
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000008BF
Huffman table length = 28
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 11
Codes of length 03 bits (001 total): 01
Codes of length 04 bits (000 total):
Codes of length 05 bits (003 total): 10 21 30
Codes of length 06 bits (000 total):
Codes of length 07 bits (003 total): 20 40 50
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000008DD
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000905
Huffman table length = 65
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (000 total):
Codes of length 03 bits (004 total): 00 01 02 03
Codes of length 04 bits (002 total): 04 11
Codes of length 05 bits (004 total): 12 21 31 34
Codes of length 06 bits (008 total): 13 32 33 35 91 92 93 D2
Codes of length 07 bits (009 total): 05 10 14 22 41 51 71 A1 D1
Codes of length 08 bits (010 total): 20 23 40 42 52 61 81 A2 A3 B1
Codes of length 09 bits (007 total): 15 24 60 62 72 E1 E2
Codes of length 10 bits (001 total): 30
Codes of length 11 bits (001 total): B2
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 046
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000948
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000E49
Huffman table length = 42
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (002 total): 31 41
Codes of length 06 bits (004 total): 51 61 71 D1
Codes of length 07 bits (006 total): 81 91 A1 C1 F0 F1
Codes of length 08 bits (002 total): 40 B1
Codes of length 09 bits (003 total): 10 20 60
Codes of length 10 bits (001 total): 30
Codes of length 11 bits (001 total): E1
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000E75
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00001266
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=0(DC),0(AC)
Component[3]: selector=0x03, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000012E8
Huffman table length = 28
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 11
Codes of length 03 bits (001 total): 10
Codes of length 04 bits (000 total):
Codes of length 05 bits (002 total): 30 51
Codes of length 06 bits (003 total): 21 40 50
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00001306
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000133E
Huffman table length = 30
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 11
Codes of length 03 bits (000 total):
Codes of length 04 bits (003 total): 10 30 51
Codes of length 05 bits (000 total):
Codes of length 06 bits (002 total): 20 61
Codes of length 07 bits (003 total): 21 40 50
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 011
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000135E
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000139C
Huffman table length = 42
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 11
Codes of length 03 bits (000 total):
Codes of length 04 bits (002 total): 00 21
Codes of length 05 bits (001 total): 31
Codes of length 06 bits (003 total): 41 51 61
Codes of length 07 bits (003 total): 71 81 B1
Codes of length 08 bits (003 total): 91 A1 D1
Codes of length 09 bits (004 total): 10 40 E1 F0
Codes of length 10 bits (003 total): 20 C1 F1
Codes of length 11 bits (001 total): 60
Codes of length 12 bits (001 total): 30
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 023
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000013C8
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x000019B4
*** Searching Compression Signatures ***
Signature: 013BA18D5561625796E986FDBC09F846
Signature (Rotated): 01AC57E12793DFA7C46C704625C5AF0F
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: OK [Adobe Photoshop CS4 Windows]
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[??? ] [Treo 680 ] [ ] Yes
CAM:[Canon ] [Canon PowerShot Pro1 ] [fine ] No
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[NIKON ] [E3100 ] [FINE ] No
CAM:[NIKON ] [E4500 ] [FINE ] No
CAM:[NIKON ] [E5000 ] [FINE ] No
CAM:[NIKON ] [E5700 ] [FINE ] No
CAM:[NIKON ] [E775 ] [FINE ] No
CAM:[NIKON ] [E885 ] [FINE ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[PENTAX ] [PENTAX Optio 550 ] [ ] No
CAM:[Research In Motion ] [BlackBerry 9530 ] [Superfine ] Yes
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
CAM:[SONY ] [DSC-H7 ] [ ] No
CAM:[SONY ] [DSC-H9 ] [ ] No
CAM:[SONY ] [DSC-S90 ] [ ] No
CAM:[SONY ] [DSC-W1 ] [ ] No
CAM:[SONY ] [SONY ] [ ] No
SW :[ACDSee ] [ ]
SW :[FixFoto ] [fine ]
SW :[IJG Library ] [090 ]
SW :[ZoomBrowser EX ] [high ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [090 ]
SW :[IrfanView ] [090 ]
SW :[idImager ] [090 ]
SW :[FastStone Image Viewer ] [090 ]
SW :[NeatImage ] [090 ]
SW :[Paint.NET ] [090 ]
SW :[Photomatix ] [090 ]
SW :[XnView ] [090 ]
NOTE: EXIF Software field recognized as from editor
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
Appears to be new signature for known software.
If the camera/software doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

459
tests/Images/Input/Jpg/progressive/JpegSnoopReports/Festzug.jpg.txt

@ -0,0 +1,459 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\Festzug.jpg]
Filesize: [49977] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 229 x 229 DPI (dots per inch)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 131
----
Precision=16 bits
Destination ID=0 (Luminance)
DQT, Row #0: 53 37 33 53 80 133 170 203
DQT, Row #1: 40 40 47 63 87 193 200 183
DQT, Row #2: 47 43 53 80 133 190 230 186
DQT, Row #3: 47 57 73 97 170 290 266 206
DQT, Row #4: 60 73 123 186 226 363 343 256
DQT, Row #5: 80 117 183 213 270 346 376 306
DQT, Row #6: 163 213 260 290 343 403 400 336
DQT, Row #7: 240 306 316 326 373 333 343 330
Approx quality factor = 15.01 (scaling=333.00 variance=1.25)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000099
Table length = 131
----
Precision=16 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 57 60 80 157 330 330 330 330
DQT, Row #1: 60 70 87 220 330 330 330 330
DQT, Row #2: 80 87 186 330 330 330 330 330
DQT, Row #3: 157 220 330 330 330 330 330 330
DQT, Row #4: 330 330 330 330 330 330 330 330
DQT, Row #5: 330 330 330 330 330 330 330 330
DQT, Row #6: 330 330 330 330 330 330 330 330
DQT, Row #7: 330 330 330 330 330 330 330 330
Approx quality factor = 15.00 (scaling=333.41 variance=0.14)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000011E
Frame header length = 17
Precision = 8
Number of Lines = 1071
Samples per Line = 1443
Image Size = 1443 x 1071
Raw Image Orientation = Landscape
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000131
Huffman table length = 25
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 03
Codes of length 05 bits (001 total): 04
Codes of length 06 bits (001 total): 05
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 006
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000014C
Huffman table length = 22
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (001 total): 00
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (000 total):
Codes of length 05 bits (000 total):
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 003
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000164
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),0(AC)
Component[3]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000028E0
Huffman table length = 38
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (004 total): 02 10 20 30
Codes of length 05 bits (003 total): 12 31 40
Codes of length 06 bits (000 total):
Codes of length 07 bits (003 total): 21 41 50
Codes of length 08 bits (001 total): 60
Codes of length 09 bits (001 total): 03
Codes of length 10 bits (000 total):
Codes of length 11 bits (003 total): 22 32 42
Codes of length 12 bits (001 total): 13
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 019
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00002908
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003D97
Huffman table length = 29
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (003 total): 00 10 11
Codes of length 04 bits (001 total): 20
Codes of length 05 bits (000 total):
Codes of length 06 bits (002 total): 30 60
Codes of length 07 bits (003 total): 80 90 C0
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 010
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00003DB6
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003DE1
Huffman table length = 28
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 10 11
Codes of length 04 bits (003 total): 00 20 60
Codes of length 05 bits (000 total):
Codes of length 06 bits (003 total): 80 90 C0
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00003DFF
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003E21
Huffman table length = 23
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 21
Codes of length 02 bits (001 total): D0
Codes of length 03 bits (001 total): A0
Codes of length 04 bits (001 total): B0
Codes of length 05 bits (000 total):
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 004
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00003E3A
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003E4C
Huffman table length = 36
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 10 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (003 total): 20 30 41
Codes of length 06 bits (000 total):
Codes of length 07 bits (003 total): 40 50 51
Codes of length 08 bits (001 total): 61
Codes of length 09 bits (001 total): 60
Codes of length 10 bits (001 total): 71
Codes of length 11 bits (001 total): 81
Codes of length 12 bits (001 total): B1
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 017
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00003E72
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00006325
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=0(DC),0(AC)
Component[3]: selector=0x03, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00007512
Huffman table length = 30
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 11
Codes of length 03 bits (000 total):
Codes of length 04 bits (003 total): 10 21 60
Codes of length 05 bits (001 total): 31
Codes of length 06 bits (000 total):
Codes of length 07 bits (003 total): 20 41 80
Codes of length 08 bits (001 total): C0
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 011
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00007532
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000075CE
Huffman table length = 30
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 11
Codes of length 03 bits (001 total): 10
Codes of length 04 bits (000 total):
Codes of length 05 bits (003 total): 21 31 60
Codes of length 06 bits (001 total): 41
Codes of length 07 bits (000 total):
Codes of length 08 bits (003 total): 20 80 C0
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 011
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000075EE
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00007676
Huffman table length = 43
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (000 total):
Codes of length 05 bits (002 total): 21 31
Codes of length 06 bits (002 total): 10 41
Codes of length 07 bits (002 total): 20 51
Codes of length 08 bits (002 total): 30 61
Codes of length 09 bits (003 total): 40 50 71
Codes of length 10 bits (000 total):
Codes of length 11 bits (003 total): 60 81 91
Codes of length 12 bits (001 total): A1
Codes of length 13 bits (001 total): B1
Codes of length 14 bits (000 total):
Codes of length 15 bits (002 total): C1 D1
Codes of length 16 bits (003 total): E1 F0 F1
Total number of codes: 024
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000076A3
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000C337
*** Searching Compression Signatures ***
Signature: 0105A3D95D2D36DE9351313E30D8E945
Signature (Rotated): 013C3A43642D2E8325A76C3818B3C324
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
SW :[IJG Library ] [015 ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [015 ]
SW :[IrfanView ] [015 ]
SW :[idImager ] [015 ]
SW :[FastStone Image Viewer ] [015 ]
SW :[NeatImage ] [015 ]
SW :[Paint.NET ] [015 ]
SW :[Photomatix ] [015 ]
SW :[XnView ] [015 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

525
tests/Images/Input/Jpg/progressive/JpegSnoopReports/fb.jpg.txt

@ -0,0 +1,525 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\fb.jpg]
Filesize: [15787] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.2]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: COM (Comment) (xFFFE) ***
OFFSET: 0x00000014
Comment length = 4
Comment=*.
*** Marker: APP2 (xFFE2) ***
OFFSET: 0x0000001A
Length = 540
Identifier = [ICC_PROFILE]
ICC Profile:
Marker Number = 1 of 1
Profile Size : 524 bytes
Preferred CMM Type : 'lcms' (0x6C636D73)
Profile Version : 0.2.1.0 (0x02100000)
Profile Device/Class : Display Device profile ('mntr' (0x6D6E7472))
Data Colour Space : rgbData ('RGB ' (0x52474220))
Profile connection space (PCS) : 'XYZ ' (0x58595A20)
Profile creation date : 2012-01-25 03:41:57
Profile file signature : 'acsp' (0x61637370)
Primary platform : Apple Computer, Inc. ('APPL' (0x4150504C))
Profile flags : 0x00000000
Profile flags > Profile not embedded
Profile flags > Profile can't be used independently of embedded
Device Manufacturer : '....' (0x00000000)
Device Model : '....' (0x00000000)
Device attributes : 0x00000000_00000000
Device attributes > Reflective
Device attributes > Glossy
Device attributes > Media polarity = negative
Device attributes > Black & white media
Rendering intent : Perceptual
Profile creator : 'lcms' (0x6C636D73)
Profile ID : 0x00000000_00000000_00000000_00000000
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000238
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 8 6 5 8 12 20 26 31
DQT, Row #1: 6 6 7 10 13 29 30 28
DQT, Row #2: 7 7 8 12 20 29 35 28
DQT, Row #3: 7 9 11 15 26 44 40 31
DQT, Row #4: 9 11 19 28 34 55 52 39
DQT, Row #5: 12 18 28 32 41 52 57 46
DQT, Row #6: 25 32 39 44 52 61 60 51
DQT, Row #7: 36 46 48 49 56 50 52 50
Approx quality factor = 74.75 (scaling=50.51 variance=0.81)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x0000027D
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 9 9 12 24 50 50 50 50
DQT, Row #1: 9 11 13 33 50 50 50 50
DQT, Row #2: 12 13 28 50 50 50 50 50
DQT, Row #3: 24 33 50 50 50 50 50 50
DQT, Row #4: 50 50 50 50 50 50 50 50
DQT, Row #5: 50 50 50 50 50 50 50 50
DQT, Row #6: 50 50 50 50 50 50 50 50
DQT, Row #7: 50 50 50 50 50 50 50 50
Approx quality factor = 74.74 (scaling=50.52 variance=0.19)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x000002C2
Frame header length = 17
Precision = 8
Number of Lines = 336
Samples per Line = 276
Image Size = 276 x 336
Raw Image Orientation = Portrait
Number of Img components = 3
Component[1]: ID=0x00, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x01, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000002D5
Huffman table length = 27
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 04
Codes of length 03 bits (005 total): 00 02 03 05 06
Codes of length 04 bits (001 total): 01
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 008
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000002F2
Huffman table length = 24
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 03
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (000 total):
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 005
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000030C
Huffman table length = 24
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (003 total): 00 01 03
Codes of length 03 bits (001 total): 02
Codes of length 04 bits (001 total): 04
Codes of length 05 bits (000 total):
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 005
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000326
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),1(AC)
Component[3]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000935
Huffman table length = 43
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 02 03
Codes of length 03 bits (002 total): 01 04
Codes of length 04 bits (001 total): 00
Codes of length 05 bits (002 total): 11 12
Codes of length 06 bits (006 total): 05 10 13 20 31 32
Codes of length 07 bits (002 total): 21 33
Codes of length 08 bits (002 total): 14 22
Codes of length 09 bits (002 total): 34 41
Codes of length 10 bits (003 total): 15 23 30
Codes of length 11 bits (001 total): 24
Codes of length 12 bits (001 total): 42
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 024
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000962
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000012EE
Huffman table length = 39
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 10
Codes of length 05 bits (004 total): 03 20 21 31
Codes of length 06 bits (001 total): 12
Codes of length 07 bits (004 total): 13 30 41 51
Codes of length 08 bits (001 total): 22
Codes of length 09 bits (005 total): 32 40 42 50 61
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 020
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00001317
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000142A
Huffman table length = 36
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (001 total): 10
Codes of length 05 bits (004 total): 03 20 21 31
Codes of length 06 bits (002 total): 12 30
Codes of length 07 bits (002 total): 13 41
Codes of length 08 bits (003 total): 22 40 51
Codes of length 09 bits (001 total): 50
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 017
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00001450
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x0000155A
Huffman table length = 51
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (002 total): 00 02
Codes of length 04 bits (003 total): 03 10 11
Codes of length 05 bits (006 total): 12 20 21 31 41 51
Codes of length 06 bits (005 total): 22 32 61 71 81
Codes of length 07 bits (002 total): 13 30
Codes of length 08 bits (005 total): 04 33 42 72 91
Codes of length 09 bits (004 total): 14 52 62 A1
Codes of length 10 bits (003 total): 23 82 B1
Codes of length 11 bits (001 total): 43
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 032
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000158F
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00001D3E
Huffman table length = 40
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 11 21
Codes of length 04 bits (001 total): 31
Codes of length 05 bits (003 total): 10 41 51
Codes of length 06 bits (004 total): 20 61 71 A1
Codes of length 07 bits (002 total): 81 91
Codes of length 08 bits (002 total): B1 F0
Codes of length 09 bits (003 total): 30 C1 D1
Codes of length 10 bits (001 total): E1
Codes of length 11 bits (001 total): F1
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 021
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00001D68
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000028B9
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x00, table=0(DC),0(AC)
Component[2]: selector=0x01, table=1(DC),1(AC)
Component[3]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000029E4
Huffman table length = 32
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (000 total):
Codes of length 05 bits (003 total): 10 21 31
Codes of length 06 bits (000 total):
Codes of length 07 bits (003 total): 20 41 51
Codes of length 08 bits (001 total): 30
Codes of length 09 bits (001 total): 61
Codes of length 10 bits (001 total): 40
Codes of length 11 bits (001 total): 50
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 013
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00002A06
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002B55
Huffman table length = 32
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (003 total): 10 21 31
Codes of length 05 bits (001 total): 20
Codes of length 06 bits (001 total): 41
Codes of length 07 bits (000 total):
Codes of length 08 bits (003 total): 30 51 61
Codes of length 09 bits (001 total): 71
Codes of length 10 bits (001 total): 40
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 013
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00002B77
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=1(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002CEA
Huffman table length = 40
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (003 total): 31 41 51
Codes of length 06 bits (003 total): 10 61 71
Codes of length 07 bits (004 total): 81 91 A1 B1
Codes of length 08 bits (003 total): 20 C1 F0
Codes of length 09 bits (001 total): D1
Codes of length 10 bits (001 total): E1
Codes of length 11 bits (001 total): F1
Codes of length 12 bits (001 total): 30
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 021
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00002D14
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x00, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x00003DA9
*** Searching Compression Signatures ***
Signature: 0182408A81A4ABF04D4A34A8A5E98C58
Signature (Rotated): 012D821C6AB210E2A753BE053B8F55D0
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[SONY ] [CYBERSHOT U ] [ ] Yes
SW :[Adobe Photoshop 7.0 ] [Save As 07 ]
SW :[Apple Quicktime ] [0466-0467 ]
SW :[Digital Photo Professiona] [05 ]
SW :[IJG Library ] [075 ]
SW :[MS Paint ] [ ]
SW :[MS Visio ] [ ]
SW :[ZoomBrowser EX ] [low ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [075 ]
SW :[IrfanView ] [075 ]
SW :[idImager ] [075 ]
SW :[FastStone Image Viewer ] [075 ]
SW :[NeatImage ] [075 ]
SW :[Paint.NET ] [075 ]
SW :[Photomatix ] [075 ]
SW :[XnView ] [075 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]

468
tests/Images/Input/Jpg/progressive/JpegSnoopReports/progress.jpg.txt

@ -0,0 +1,468 @@
JPEGsnoop 1.8.0 by Calvin Hass
http://www.impulseadventure.com/photo/
-------------------------------------
Filename: [.\progress.jpg]
Filesize: [44884] Bytes
Start Offset: 0x00000000
*** Marker: SOI (xFFD8) ***
OFFSET: 0x00000000
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
Length = 16
Identifier = [JFIF]
version = [1.1]
density = 1 x 1 (aspect ratio)
thumbnail = 0 x 0
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000014
Table length = 67
----
Precision=8 bits
Destination ID=0 (Luminance)
DQT, Row #0: 5 3 3 5 7 12 15 18
DQT, Row #1: 4 4 4 6 8 17 18 17
DQT, Row #2: 4 4 5 7 12 17 21 17
DQT, Row #3: 4 5 7 9 15 26 24 19
DQT, Row #4: 5 7 11 17 20 33 31 23
DQT, Row #5: 7 11 17 19 24 31 34 28
DQT, Row #6: 15 19 23 26 31 36 36 30
DQT, Row #7: 22 28 29 29 34 30 31 30
Approx quality factor = 84.93 (scaling=30.13 variance=1.05)
*** Marker: DQT (xFFDB) ***
Define a Quantization Table.
OFFSET: 0x00000059
Table length = 67
----
Precision=8 bits
Destination ID=1 (Chrominance)
DQT, Row #0: 5 5 7 14 30 30 30 30
DQT, Row #1: 5 6 8 20 30 30 30 30
DQT, Row #2: 7 8 17 30 30 30 30 30
DQT, Row #3: 14 20 30 30 30 30 30 30
DQT, Row #4: 30 30 30 30 30 30 30 30
DQT, Row #5: 30 30 30 30 30 30 30 30
DQT, Row #6: 30 30 30 30 30 30 30 30
DQT, Row #7: 30 30 30 30 30 30 30 30
Approx quality factor = 84.93 (scaling=30.15 variance=0.29)
*** Marker: SOF2 (Progressive DCT, Huffman) (xFFC2) ***
OFFSET: 0x0000009E
Frame header length = 17
Precision = 8
Number of Lines = 486
Samples per Line = 341
Image Size = 341 x 486
Raw Image Orientation = Portrait
Number of Img components = 3
Component[1]: ID=0x01, Samp Fac=0x22 (Subsamp 1 x 1), Quant Tbl Sel=0x00 (Lum: Y)
Component[2]: ID=0x02, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cb)
Component[3]: ID=0x03, Samp Fac=0x11 (Subsamp 2 x 2), Quant Tbl Sel=0x01 (Chrom: Cr)
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000B1
Huffman table length = 28
----
Destination ID = 0
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 04
Codes of length 03 bits (005 total): 01 02 03 05 06
Codes of length 04 bits (001 total): 00
Codes of length 05 bits (001 total): 07
Codes of length 06 bits (001 total): 08
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 009
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000000CF
Huffman table length = 26
----
Destination ID = 1
Class = 0 (DC / Lossless Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 02 03
Codes of length 03 bits (003 total): 00 01 04
Codes of length 04 bits (001 total): 05
Codes of length 05 bits (001 total): 06
Codes of length 06 bits (000 total):
Codes of length 07 bits (000 total):
Codes of length 08 bits (000 total):
Codes of length 09 bits (000 total):
Codes of length 10 bits (000 total):
Codes of length 11 bits (000 total):
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 007
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000000EB
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=1(DC),0(AC)
Component[3]: selector=0x03, table=1(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00000CCC
Huffman table length = 45
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 01 02
Codes of length 03 bits (002 total): 00 03
Codes of length 04 bits (002 total): 04 11
Codes of length 05 bits (001 total): 12
Codes of length 06 bits (003 total): 05 13 21
Codes of length 07 bits (003 total): 10 22 31
Codes of length 08 bits (004 total): 14 20 32 41
Codes of length 09 bits (002 total): 06 23
Codes of length 10 bits (002 total): 30 33
Codes of length 11 bits (003 total): 15 24 42
Codes of length 12 bits (001 total): 34
Codes of length 13 bits (001 total): 43
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 026
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00000CFB
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 5
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000020DC
Huffman table length = 46
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 03
Codes of length 04 bits (001 total): 11
Codes of length 05 bits (004 total): 04 10 21 31
Codes of length 06 bits (001 total): 12
Codes of length 07 bits (003 total): 13 20 41
Codes of length 08 bits (003 total): 05 22 51
Codes of length 09 bits (003 total): 23 32 61
Codes of length 10 bits (005 total): 14 30 33 42 71
Codes of length 11 bits (000 total):
Codes of length 12 bits (003 total): 15 52 91
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 027
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000210C
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00002604
Huffman table length = 41
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (002 total): 00 01
Codes of length 03 bits (002 total): 02 11
Codes of length 04 bits (002 total): 03 10
Codes of length 05 bits (002 total): 21 31
Codes of length 06 bits (002 total): 12 20
Codes of length 07 bits (001 total): 13
Codes of length 08 bits (004 total): 04 22 41 61
Codes of length 09 bits (002 total): 42 51
Codes of length 10 bits (002 total): 14 32
Codes of length 11 bits (003 total): 33 71 F0
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 022
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000262F
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x01
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000029A7
Huffman table length = 61
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (000 total):
Codes of length 02 bits (001 total): 01
Codes of length 03 bits (003 total): 00 02 11
Codes of length 04 bits (003 total): 03 12 21
Codes of length 05 bits (001 total): 31
Codes of length 06 bits (005 total): 10 22 41 51 61
Codes of length 07 bits (006 total): 04 13 20 32 71 81
Codes of length 08 bits (005 total): 23 30 42 52 91
Codes of length 09 bits (002 total): A1 B1
Codes of length 10 bits (004 total): 62 72 C1 F0
Codes of length 11 bits (006 total): 14 33 40 82 D1 E1
Codes of length 12 bits (001 total): 24
Codes of length 13 bits (005 total): 05 43 53 73 F1
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 042
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000029E6
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 6 .. 63
Successive approximation = 0x02
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00003FF3
Huffman table length = 39
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (002 total): 21 31
Codes of length 05 bits (002 total): 41 51
Codes of length 06 bits (001 total): 61
Codes of length 07 bits (003 total): 71 81 91
Codes of length 08 bits (004 total): 10 A1 B1 C1
Codes of length 09 bits (003 total): D1 E1 F0
Codes of length 10 bits (001 total): 20
Codes of length 11 bits (001 total): F1
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 020
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x0000401C
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x21
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00006299
Scan header length = 12
Number of img components = 3
Component[1]: selector=0x01, table=0(DC),0(AC)
Component[2]: selector=0x02, table=0(DC),0(AC)
Component[3]: selector=0x03, table=0(DC),0(AC)
Spectral selection = 0 .. 0
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x000064A9
Huffman table length = 39
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (000 total):
Codes of length 03 bits (002 total): 00 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (003 total): 31 41 51
Codes of length 06 bits (003 total): 10 61 71
Codes of length 07 bits (004 total): 81 91 D1 F0
Codes of length 08 bits (003 total): A1 B1 E1
Codes of length 09 bits (001 total): C1
Codes of length 10 bits (001 total): F1
Codes of length 11 bits (001 total): 20
Codes of length 12 bits (000 total):
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 020
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x000064D2
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x03, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00006ACB
Huffman table length = 38
----
Destination ID = 1
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 00
Codes of length 03 bits (001 total): 11
Codes of length 04 bits (001 total): 21
Codes of length 05 bits (000 total):
Codes of length 06 bits (002 total): 31 41
Codes of length 07 bits (002 total): 10 51
Codes of length 08 bits (001 total): 61
Codes of length 09 bits (003 total): 91 D1 F0
Codes of length 10 bits (005 total): 71 81 A1 B1 C1
Codes of length 11 bits (001 total): 20
Codes of length 12 bits (001 total): E1
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 019
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00006AF3
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x02, table=0(DC),1(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: DHT (Define Huffman Table) (xFFC4) ***
OFFSET: 0x00006F95
Huffman table length = 38
----
Destination ID = 0
Class = 1 (AC Table)
Codes of length 01 bits (001 total): 01
Codes of length 02 bits (001 total): 11
Codes of length 03 bits (000 total):
Codes of length 04 bits (002 total): 00 21
Codes of length 05 bits (002 total): 31 41
Codes of length 06 bits (002 total): 51 61
Codes of length 07 bits (002 total): 71 81
Codes of length 08 bits (002 total): 91 A1
Codes of length 09 bits (002 total): B1 F0
Codes of length 10 bits (003 total): C1 D1 E1
Codes of length 11 bits (001 total): F1
Codes of length 12 bits (001 total): 10
Codes of length 13 bits (000 total):
Codes of length 14 bits (000 total):
Codes of length 15 bits (000 total):
Codes of length 16 bits (000 total):
Total number of codes: 019
*** Marker: SOS (Start of Scan) (xFFDA) ***
OFFSET: 0x00006FBD
Scan header length = 8
Number of img components = 1
Component[1]: selector=0x01, table=0(DC),0(AC)
Spectral selection = 1 .. 63
Successive approximation = 0x10
NOTE: Scan parsing doesn't support this SOF mode.
*** Marker: EOI (End of Image) (xFFD9) ***
OFFSET: 0x0000AF52
*** Searching Compression Signatures ***
Signature: 0155D875C95B74D0F3C5835A62516F48
Signature (Rotated): 01D38A25358EB7649A254E19F1D46600
File Offset: 0 bytes
Chroma subsampling: 2x2
EXIF Make/Model: NONE
EXIF Makernotes: NONE
EXIF Software: NONE
Searching Compression Signatures: (3347 built-in, 0 user(*) )
EXIF.Make / Software EXIF.Model Quality Subsamp Match?
------------------------- ----------------------------------- ---------------- --------------
CAM:[NIKON ] [E2500 ] [FINE ] No
CAM:[Nokia ] [N73 ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C2000Z ] [ ] No
CAM:[OLYMPUS OPTICAL CO.,LTD ] [C3040Z ] [ ] No
CAM:[PENTAX ] [PENTAX Optio 550 ] [ ] No
CAM:[Research In Motion ] [BlackBerry 8100 ] [ ] No
CAM:[SEIKO EPSON CORP. ] [PhotoPC 3000Z ] [ ] No
SW :[IJG Library ] [085 ]
SW :[Picasa ] [085 (Normal) ]
SW :[ZoomBrowser EX ] [medium ]
The following IJG-based editors also match this signature:
SW :[GIMP ] [085 ]
SW :[IrfanView ] [085 ]
SW :[idImager ] [085 ]
SW :[FastStone Image Viewer ] [085 ]
SW :[NeatImage ] [085 ]
SW :[Paint.NET ] [085 ]
SW :[Photomatix ] [085 ]
SW :[XnView ] [085 ]
Based on the analysis of compression characteristics and EXIF metadata:
ASSESSMENT: Class 1 - Image is processed/edited
This may be a new software editor for the database.
If this file is processed, and editor doesn't appear in list above,
PLEASE ADD TO DATABASE with [Tools->Add Camera to DB]
Loading…
Cancel
Save