mirror of https://github.com/SixLabors/ImageSharp
6 changed files with 123 additions and 109 deletions
@ -0,0 +1,68 @@ |
|||
namespace SixLabors.ImageSharp.Formats.Jpeg.GolangPort.Components.Decoder |
|||
{ |
|||
/// <summary>
|
|||
/// Provides enumeration of the various available subsample ratios.
|
|||
/// https://en.wikipedia.org/wiki/Chroma_subsampling
|
|||
/// </summary>
|
|||
internal enum SubsampleRatio |
|||
{ |
|||
Undefined, |
|||
|
|||
/// <summary>
|
|||
/// 4:4:4
|
|||
/// </summary>
|
|||
Ratio444, |
|||
|
|||
/// <summary>
|
|||
/// 4:2:2
|
|||
/// </summary>
|
|||
Ratio422, |
|||
|
|||
/// <summary>
|
|||
/// 4:2:0
|
|||
/// </summary>
|
|||
Ratio420, |
|||
|
|||
/// <summary>
|
|||
/// 4:4:0
|
|||
/// </summary>
|
|||
Ratio440, |
|||
|
|||
/// <summary>
|
|||
/// 4:1:1
|
|||
/// </summary>
|
|||
Ratio411, |
|||
|
|||
/// <summary>
|
|||
/// 4:1:0
|
|||
/// </summary>
|
|||
Ratio410, |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Various utilities for <see cref="SubsampleRatio"/>
|
|||
/// </summary>
|
|||
internal static class Subsampling |
|||
{ |
|||
public static SubsampleRatio GetSubsampleRatio(int horizontalRatio, int verticalRatio) |
|||
{ |
|||
switch ((horizontalRatio << 4) | verticalRatio) |
|||
{ |
|||
case 0x11: |
|||
return SubsampleRatio.Ratio444; |
|||
case 0x12: |
|||
return SubsampleRatio.Ratio440; |
|||
case 0x21: |
|||
return SubsampleRatio.Ratio422; |
|||
case 0x22: |
|||
return SubsampleRatio.Ratio420; |
|||
case 0x41: |
|||
return SubsampleRatio.Ratio411; |
|||
case 0x42: |
|||
return SubsampleRatio.Ratio410; |
|||
} |
|||
|
|||
return SubsampleRatio.Ratio444; |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue