mirror of https://github.com/SixLabors/ImageSharp
6 changed files with 146 additions and 39 deletions
@ -1,25 +1,43 @@ |
|||
// Copyright (c) Six Labors.
|
|||
// Licensed under the Six Labors Split License.
|
|||
|
|||
using System.Diagnostics.CodeAnalysis; |
|||
using System.Runtime.CompilerServices; |
|||
|
|||
namespace SixLabors.ImageSharp.Formats.Heif.Av1.Tiling; |
|||
|
|||
/// <summary>
|
|||
/// Stores encoder-selected intra prediction modes and directional-angle adjustments for one block.
|
|||
/// </summary>
|
|||
internal class Av1EncoderPredictionUnit |
|||
internal struct Av1EncoderPredictionUnit |
|||
{ |
|||
/// <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>
|
|||
public required byte[] AngleDelta { get; set; } |
|||
[UnscopedRef] |
|||
public Span<sbyte> AngleDelta => this.angleDelta; |
|||
|
|||
/// <summary>
|
|||
/// Gets or sets the chroma-from-luma alpha magnitude index.
|
|||
/// </summary>
|
|||
public int ChromaFromLumaIndex { get; set; } |
|||
public byte ChromaFromLumaIndex { get; set; } |
|||
|
|||
/// <summary>
|
|||
/// Gets or sets the packed chroma-from-luma alpha signs for the U and V planes.
|
|||
/// </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