mirror of https://github.com/SixLabors/ImageSharp
6 changed files with 146 additions and 39 deletions
@ -1,25 +1,43 @@ |
|||||
// Copyright (c) Six Labors.
|
// Copyright (c) Six Labors.
|
||||
// Licensed under the Six Labors Split License.
|
// Licensed under the Six Labors Split License.
|
||||
|
|
||||
|
using System.Diagnostics.CodeAnalysis; |
||||
|
using System.Runtime.CompilerServices; |
||||
|
|
||||
namespace SixLabors.ImageSharp.Formats.Heif.Av1.Tiling; |
namespace SixLabors.ImageSharp.Formats.Heif.Av1.Tiling; |
||||
|
|
||||
/// <summary>
|
/// <summary>
|
||||
/// Stores encoder-selected intra prediction modes and directional-angle adjustments for one block.
|
/// Stores encoder-selected intra prediction modes and directional-angle adjustments for one block.
|
||||
/// </summary>
|
/// </summary>
|
||||
internal class Av1EncoderPredictionUnit |
internal struct Av1EncoderPredictionUnit |
||||
{ |
{ |
||||
/// <summary>
|
/// <summary>
|
||||
/// Gets or sets the directional angle adjustment for each prediction plane.
|
/// Stores the signed luma and chroma directional adjustments.
|
||||
|
/// </summary>
|
||||
|
private InlineArray2<sbyte> angleDelta; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Gets the directional angle adjustment for each prediction plane.
|
||||
/// </summary>
|
/// </summary>
|
||||
public required byte[] AngleDelta { get; set; } |
[UnscopedRef] |
||||
|
public Span<sbyte> AngleDelta => this.angleDelta; |
||||
|
|
||||
/// <summary>
|
/// <summary>
|
||||
/// Gets or sets the chroma-from-luma alpha magnitude index.
|
/// Gets or sets the chroma-from-luma alpha magnitude index.
|
||||
/// </summary>
|
/// </summary>
|
||||
public int ChromaFromLumaIndex { get; set; } |
public byte ChromaFromLumaIndex { get; set; } |
||||
|
|
||||
/// <summary>
|
/// <summary>
|
||||
/// Gets or sets the packed chroma-from-luma alpha signs for the U and V planes.
|
/// Gets or sets the packed chroma-from-luma alpha signs for the U and V planes.
|
||||
/// </summary>
|
/// </summary>
|
||||
public int ChromaFromLumaSigns { get; set; } |
public sbyte ChromaFromLumaSigns { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// Stores the two signed angle deltas embedded by libaom in block mode information.
|
||||
|
/// </summary>
|
||||
|
[InlineArray(Av1Constants.PlaneTypeCount)] |
||||
|
private struct InlineArray2<T> |
||||
|
{ |
||||
|
private T element; |
||||
|
} |
||||
} |
} |
||||
|
|||||
Loading…
Reference in new issue