diff --git a/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamReader.cs b/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamReader.cs
index 5f1424c33..89aaa68b6 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamReader.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamReader.cs
@@ -62,7 +62,7 @@ internal ref struct Av1BitStreamReader
/// Reads the next encoded bit.
///
/// Zero or one.
- internal uint ReadBit()
+ public uint ReadBit()
{
int byteOffset = Av1Math.DivideBy8Floor(this.BitPosition);
byte shift = (byte)(7 - Av1Math.Modulus8(this.BitPosition));
diff --git a/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamWriter.cs b/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamWriter.cs
index e4612db83..81d64c25e 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamWriter.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Av1BitStreamWriter.cs
@@ -126,7 +126,7 @@ internal ref struct Av1BitStreamWriter
/// Writes one Boolean bit.
///
/// The Boolean value.
- internal void WriteBoolean(bool value)
+ public void WriteBoolean(bool value)
{
byte boolByte = value ? (byte)1 : (byte)0;
this.WriteBit(boolByte);
@@ -172,7 +172,7 @@ internal ref struct Av1BitStreamWriter
///
/// The symbol value.
/// The number of symbols in the alphabet.
- internal void WriteNonSymmetric(uint value, uint numberOfSymbols)
+ public void WriteNonSymmetric(uint value, uint numberOfSymbols)
{
if (numberOfSymbols <= 1)
{
@@ -231,7 +231,7 @@ internal ref struct Av1BitStreamWriter
/// Writes a byte-aligned entropy-coded tile payload.
///
/// The tile payload.
- internal void WriteBlob(ReadOnlySpan tileData)
+ public void WriteBlob(ReadOnlySpan tileData)
{
DebugGuard.IsTrue(Av1Math.Modulus8(this.BitPosition) == 0, "Writing of Tile Data only allowed on byte alignment");
diff --git a/src/ImageSharp/Formats/Heif/Av1/Av1Math.cs b/src/ImageSharp/Formats/Heif/Av1/Av1Math.cs
index 0e4c1bbf9..9a5702d86 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Av1Math.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Av1Math.cs
@@ -55,7 +55,7 @@ internal static class Av1Math
///
/// The value.
/// The zero-based position of the most significant set bit.
- internal static uint Log2_32(uint x)
+ public static uint Log2_32(uint x)
{
uint log = 0;
int i;
@@ -178,7 +178,7 @@ internal static class Av1Math
/// The value to align.
/// The base-two alignment exponent.
/// The aligned value.
- internal static int AlignPowerOf2(int value, int n)
+ public static int AlignPowerOf2(int value, int n)
{
int mask = (1 << n) - 1;
return (value + mask) & ~mask;
@@ -190,7 +190,7 @@ internal static class Av1Math
/// The value.
/// The base-two divisor exponent.
/// The rounded quotient.
- internal static int RoundPowerOf2(int value, int n) => (value + ((1 << n) >> 1)) >> n;
+ public static int RoundPowerOf2(int value, int n) => (value + ((1 << n) >> 1)) >> n;
///
/// Clamps a signed integer to an inclusive range.
@@ -199,7 +199,7 @@ internal static class Av1Math
/// The inclusive lower bound.
/// The inclusive upper bound.
/// The clamped value.
- internal static int Clamp(int value, int low, int high)
+ public static int Clamp(int value, int low, int high)
=> Math.Max(low, Math.Min(high, value));
///
@@ -209,7 +209,7 @@ internal static class Av1Math
/// The inclusive lower bound.
/// The inclusive upper bound.
/// The clamped value.
- internal static long Clamp(long value, long low, long high)
+ public static long Clamp(long value, long low, long high)
=> Math.Max(low, Math.Min(high, value));
///
@@ -218,7 +218,7 @@ internal static class Av1Math
/// The value.
/// The base-two divisor exponent.
/// The floor-rounded quotient.
- internal static int DivideLog2Floor(int value, int n)
+ public static int DivideLog2Floor(int value, int n)
=> value >> n;
///
@@ -227,7 +227,7 @@ internal static class Av1Math
/// The value.
/// The base-two divisor exponent.
/// The ceiling-rounded quotient.
- internal static int DivideLog2Ceiling(int value, int n)
+ public static int DivideLog2Ceiling(int value, int n)
=> (value + (1 << n) - 1) >> n;
///
@@ -236,7 +236,7 @@ internal static class Av1Math
/// The value.
/// The base-two divisor exponent.
/// The rounded quotient.
- internal static int DivideRound(int value, int bitCount)
+ public static int DivideRound(int value, int bitCount)
=> (value + (1 << (bitCount - 1))) >> bitCount;
///
@@ -244,14 +244,14 @@ internal static class Av1Math
///
/// The value.
/// The low three bits of the value.
- internal static int Modulus8(int value) => value & 0x07;
+ public static int Modulus8(int value) => value & 0x07;
///
/// Divides a value by eight with floor rounding.
///
/// The value.
/// The floor-rounded quotient.
- internal static int DivideBy8Floor(int value) => value >> 3;
+ public static int DivideBy8Floor(int value) => value >> 3;
///
/// Divides a signed value by a power of two with symmetric nearest-integer rounding.
@@ -259,7 +259,7 @@ internal static class Av1Math
/// The signed value.
/// The base-two divisor exponent.
/// The signed rounded quotient.
- internal static int RoundPowerOf2Signed(int value, int n)
+ public static int RoundPowerOf2Signed(int value, int n)
=> (value < 0) ? -RoundPowerOf2(-value, n) : RoundPowerOf2(value, n);
///
@@ -268,7 +268,7 @@ internal static class Av1Math
/// The value.
/// The positive shift count.
/// The rounded signed result.
- internal static int RoundShift(long value, int bit)
+ public static int RoundShift(long value, int bit)
{
DebugGuard.MustBeGreaterThanOrEqualTo(bit, 1, nameof(bit));
return (int)((value + (1L << (bit - 1))) >> bit);
@@ -280,7 +280,7 @@ internal static class Av1Math
/// The antecedent.
/// The consequent.
/// only when is true and is false.
- internal static bool Implies(bool a, bool b) => !a || b;
+ public static bool Implies(bool a, bool b) => !a || b;
///
/// Gets one bit from an integer value.
@@ -288,7 +288,7 @@ internal static class Av1Math
/// The value.
/// The zero-based bit position.
/// Zero or one.
- internal static int GetBit(int value, int n)
+ public static int GetBit(int value, int n)
=> (value & (1 << n)) >> n;
///
@@ -296,7 +296,7 @@ internal static class Av1Math
///
/// The value to update.
/// The zero-based bit position.
- internal static void SetBit(ref int endOfBlockExtra, int n)
+ public static void SetBit(ref int endOfBlockExtra, int n)
=> endOfBlockExtra |= 1 << n;
///
@@ -305,5 +305,5 @@ internal static class Av1Math
/// The first value.
/// The second value.
/// The nonnegative absolute difference.
- internal static int AbsoluteDifference(int a, int b) => (a > b) ? a - b : b - a;
+ public static int AbsoluteDifference(int a, int b) => (a > b) ? a - b : b - a;
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Entropy/Av1SymbolContextHelper.cs b/src/ImageSharp/Formats/Heif/Av1/Entropy/Av1SymbolContextHelper.cs
index 3dd862b35..10a7df009 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Entropy/Av1SymbolContextHelper.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Entropy/Av1SymbolContextHelper.cs
@@ -265,7 +265,7 @@ internal static class Av1SymbolContextHelper
///
/// The coded transform size.
/// The square transform-size context.
- internal static Av1TransformSize GetTransformSizeContext(Av1TransformSize originalSize)
+ public static Av1TransformSize GetTransformSizeContext(Av1TransformSize originalSize)
=> (Av1TransformSize)(((int)originalSize.GetSquareSize() + (int)originalSize.GetSquareUpSize() + 1) >> 1);
///
@@ -290,7 +290,7 @@ internal static class Av1SymbolContextHelper
/// The decoded end-of-block token.
/// The decoded offset within the token group.
/// The one-based end-of-block coefficient position.
- internal static int RecordEndOfBlockPosition(int endOfBlockPoint, int endOfBlockExtra)
+ public static int RecordEndOfBlockPosition(int endOfBlockPoint, int endOfBlockExtra)
{
int endOfBlock = EndOfBlockGroupStart[endOfBlockPoint];
if (endOfBlock > 2)
@@ -307,7 +307,7 @@ internal static class Av1SymbolContextHelper
/// The padded coefficient-level buffer.
/// The coordinate whose row-major index identifies the coefficient's scan position.
/// The end-of-block lower-level context.
- internal static int GetLowerLevelContextEndOfBlock(Av1LevelBuffer levels, Point position)
+ public static int GetLowerLevelContextEndOfBlock(Av1LevelBuffer levels, Point position)
=> GetLowerLevelContextEndOfBlock(levels, position.X + (position.Y * levels.Size.Width));
///
@@ -316,7 +316,7 @@ internal static class Av1SymbolContextHelper
/// The padded coefficient-level buffer.
/// The zero-based coefficient index in scan order.
/// The end-of-block lower-level context.
- internal static int GetLowerLevelContextEndOfBlock(Av1LevelBuffer levels, int scanIndex)
+ public static int GetLowerLevelContextEndOfBlock(Av1LevelBuffer levels, int scanIndex)
{
if (scanIndex == 0)
{
@@ -344,7 +344,7 @@ internal static class Av1SymbolContextHelper
/// The coefficient position in raster order.
/// The transform size selecting the positional context offset.
/// The lower-level context.
- internal static int GetLowerLevelsContext2d(Av1LevelBuffer levelBuffer, Point position, Av1TransformSize transformSize)
+ public static int GetLowerLevelsContext2d(Av1LevelBuffer levelBuffer, Point position, Av1TransformSize transformSize)
{
DebugGuard.MustBeGreaterThan(position.X + position.Y, 0, nameof(position));
int mag;
@@ -369,7 +369,7 @@ internal static class Av1SymbolContextHelper
/// The final nonzero coefficient position.
/// The transform direction class.
/// The base-range context.
- internal static int GetBaseRangeContextEndOfBlock(Point pos, Av1TransformClass transformClass)
+ public static int GetBaseRangeContextEndOfBlock(Point pos, Av1TransformClass transformClass)
{
if (pos.X == 0 && pos.Y == 0)
{
@@ -394,7 +394,7 @@ internal static class Av1SymbolContextHelper
/// The coefficient position in raster order.
/// The transform direction class.
/// The base-range context.
- internal static int GetBaseRangeContext(Av1LevelBuffer levels, Point position, Av1TransformClass transformClass)
+ public static int GetBaseRangeContext(Av1LevelBuffer levels, Point position, Av1TransformClass transformClass)
{
Span row0 = levels.GetRow(position.Y);
Span row1 = levels.GetRow(position.Y + 1);
@@ -457,7 +457,7 @@ internal static class Av1SymbolContextHelper
/// The padded coefficient-level buffer.
/// The coefficient position in raster order.
/// The two-dimensional base-range context.
- internal static int GetBaseRangeContext2d(Av1LevelBuffer levels, Point position)
+ public static int GetBaseRangeContext2d(Av1LevelBuffer levels, Point position)
{
DebugGuard.MustBeGreaterThan(position.X + position.Y, 0, nameof(position));
Span row0 = levels.GetRow(position.Y);
@@ -486,7 +486,7 @@ internal static class Av1SymbolContextHelper
/// The coded transform size.
/// The transform direction class.
/// The lower-level coefficient context.
- internal static int GetLowerLevelsContext(Av1LevelBuffer levels, Point position, Av1TransformSize transformSize, Av1TransformClass transformClass)
+ public static int GetLowerLevelsContext(Av1LevelBuffer levels, Point position, Av1TransformSize transformSize, Av1TransformClass transformClass)
{
int stats = Av1NzMap.GetNzMagnitude(levels, position, transformClass);
return Av1NzMap.GetNzMapContextFromStats(stats, position, transformSize, transformClass);
@@ -498,7 +498,7 @@ internal static class Av1SymbolContextHelper
/// The coded transform size.
/// Indicates whether the frame restricts transform choices.
/// The permitted transform set.
- internal static Av1TransformSetType GetExtendedTransformSetType(Av1TransformSize transformSize, bool useReducedSet)
+ public static Av1TransformSetType GetExtendedTransformSetType(Av1TransformSize transformSize, bool useReducedSet)
=> GetExtendedTransformSetType(transformSize, false, useReducedSet);
///
@@ -508,7 +508,7 @@ internal static class Av1SymbolContextHelper
/// Indicates whether the block uses inter prediction.
/// Indicates whether the frame restricts transform choices.
/// The permitted transform set.
- internal static Av1TransformSetType GetExtendedTransformSetType(Av1TransformSize transformSize, bool isInter, bool useReducedSet)
+ public static Av1TransformSetType GetExtendedTransformSetType(Av1TransformSize transformSize, bool isInter, bool useReducedSet)
{
Av1TransformSize squareUpSize = transformSize.GetSquareUpSize();
@@ -544,7 +544,7 @@ internal static class Av1SymbolContextHelper
/// The block prediction modes.
/// The luma or chroma plane category.
/// The transform type associated with the selected prediction mode.
- internal static Av1TransformType ConvertIntraModeToTransformType(Av1BlockModeInfo modeInfo, Av1PlaneType planeType)
+ public static Av1TransformType ConvertIntraModeToTransformType(Av1BlockModeInfo modeInfo, Av1PlaneType planeType)
{
// libaom's get_uv_mode() is the explicit boundary between the distinct UV and luma prediction domains. CfL maps
// to DC because the chroma AC contribution is applied to a DC predictor before coefficient reconstruction.
@@ -561,7 +561,7 @@ internal static class Av1SymbolContextHelper
/// The coded transform size.
/// The transform direction class.
/// The nonzero-map context.
- internal static sbyte GetNzMapContext(
+ public static sbyte GetNzMapContext(
Av1LevelBuffer levels,
Point position,
Av1TransformSize transformSize,
@@ -580,7 +580,7 @@ internal static class Av1SymbolContextHelper
/// The coded transform size.
/// The transform direction class.
/// The raster-indexed destination contexts.
- internal static void GetNzMapContexts(
+ public static void GetNzMapContexts(
Av1LevelBuffer levels,
ReadOnlySpan scan,
ushort eob,
@@ -624,14 +624,14 @@ internal static class Av1SymbolContextHelper
///
/// The transform set.
/// The number of permitted transform types.
- internal static int GetExtendedTransformTypeCount(Av1TransformSetType setType) => ExtendedTransformTypeCounts[(int)setType];
+ public static int GetExtendedTransformTypeCount(Av1TransformSetType setType) => ExtendedTransformTypeCounts[(int)setType];
///
/// Gets the entropy-distribution index for an intra transform set.
///
/// The transform set.
/// The distribution index, or -1 for an inter-only set.
- internal static int GetExtendedTransformSet(Av1TransformSetType setType)
+ public static int GetExtendedTransformSet(Av1TransformSetType setType)
=> GetExtendedTransformSet(setType, false);
///
@@ -640,7 +640,7 @@ internal static class Av1SymbolContextHelper
/// The transform set.
/// Indicates whether the block uses inter prediction.
/// The distribution index, or -1 when the set is unavailable for the prediction class.
- internal static int GetExtendedTransformSet(Av1TransformSetType setType, bool isInter)
+ public static int GetExtendedTransformSet(Av1TransformSetType setType, bool isInter)
=> ExtendedTransformSetToIndex[((isInter ? 1 : 0) * TransformSetCount) + (int)setType];
///
@@ -648,7 +648,7 @@ internal static class Av1SymbolContextHelper
///
/// The cumulative-level context to update.
/// The signed DC coefficient.
- internal static void SetDcSign(ref int culLevel, int dcValue)
+ public static void SetDcSign(ref int culLevel, int dcValue)
{
if (dcValue < 0)
{
@@ -666,7 +666,7 @@ internal static class Av1SymbolContextHelper
/// The one-based end-of-block position.
/// Receives the offset within the selected token group.
/// The end-of-block token.
- internal static short GetEndOfBlockPosition(ushort endOfBlock, out int extra)
+ public static short GetEndOfBlockPosition(ushort endOfBlock, out int extra)
{
short t;
if (endOfBlock < 33)
diff --git a/src/ImageSharp/Formats/Heif/Av1/ModeDecision/Av1BlockGeometry.cs b/src/ImageSharp/Formats/Heif/Av1/ModeDecision/Av1BlockGeometry.cs
index d0e8ca69f..89ffd922b 100644
--- a/src/ImageSharp/Formats/Heif/Av1/ModeDecision/Av1BlockGeometry.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/ModeDecision/Av1BlockGeometry.cs
@@ -39,7 +39,7 @@ internal class Av1BlockGeometry
public Av1BlockSize BlockSize
{
get => this.blockSize;
- internal set
+ set
{
this.blockSize = value;
this.BlockWidth = value.GetWidth();
@@ -53,7 +53,7 @@ internal class Av1BlockGeometry
public Av1BlockSize BlockSizeUv
{
get => this.blockSizeUv;
- internal set
+ set
{
this.blockSizeUv = value;
this.BlockWidthUv = value.GetWidth();
@@ -64,12 +64,12 @@ internal class Av1BlockGeometry
///
/// Gets or sets the block origin in pixels relative to the top-left corner of its superblock.
///
- public Point Origin { get; internal set; }
+ public Point Origin { get; set; }
///
/// Gets or sets a value indicating whether this luma block owns chroma samples in the mode-decision layout.
///
- public bool HasUv { get; internal set; }
+ public bool HasUv { get; set; }
///
/// Gets the luma block width in pixels.
@@ -124,17 +124,17 @@ internal class Av1BlockGeometry
///
/// Gets or sets the mode-decision indices of blocks with the same size and origin as this block.
///
- public List RedunancyList { get; internal set; }
+ public List RedunancyList { get; set; }
///
/// Gets or sets the zero-based component index of this block within a non-square partition.
///
- public int NonSquareIndex { get; internal set; }
+ public int NonSquareIndex { get; set; }
///
/// Gets or sets the number of component blocks produced by this partition shape.
///
- public int TotalNonSuareCount { get; internal set; }
+ public int TotalNonSuareCount { get; set; }
///
/// Gets the chroma block width in pixels.
@@ -149,15 +149,15 @@ internal class Av1BlockGeometry
///
/// Gets or sets the quadtree depth of this block within its superblock.
///
- public int Depth { get; internal set; }
+ public int Depth { get; set; }
///
/// Gets or sets the width and height, in pixels, of the square sequence region that produced this block.
///
- public int SequenceSize { get; internal set; }
+ public int SequenceSize { get; set; }
///
/// Gets or sets a value indicating whether this block belongs to the last quadrant of its parent.
///
- public bool IsLastQuadrant { get; internal set; }
+ public bool IsLastQuadrant { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuConstraintDirectionalEnhancementFilterParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuConstraintDirectionalEnhancementFilterParameters.cs
index 4440307c9..e4d6502d9 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuConstraintDirectionalEnhancementFilterParameters.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuConstraintDirectionalEnhancementFilterParameters.cs
@@ -11,12 +11,12 @@ internal class ObuConstraintDirectionalEnhancementFilterParameters
///
/// Gets or sets the number of bits used to select a filter-strength entry.
///
- public int BitCount { get; internal set; }
+ public int BitCount { get; set; }
///
/// Gets or sets the filter damping value.
///
- public int Damping { get; internal set; } = 3;
+ public int Damping { get; set; } = 3;
///
/// Gets or sets the primary and secondary luma strengths for each filter entry.
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDecoderModelInfo.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDecoderModelInfo.cs
index d0dee6282..15c2b48c1 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDecoderModelInfo.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDecoderModelInfo.cs
@@ -12,21 +12,21 @@ internal class ObuDecoderModelInfo
/// Gets or sets BufferDelayLength. Specifies the length of the decoder_buffer_delay and the encoder_buffer_delay
/// syntax elements, in bits.
///
- internal uint BufferDelayLength { get; set; }
+ public uint BufferDelayLength { get; set; }
///
/// Gets or sets NumUnitsInDecodingTick. This is the number of time units of a decoding clock operating at the frequency time_scale Hz
/// that corresponds to one increment of a clock tick counter.
///
- internal uint NumUnitsInDecodingTick { get; set; }
+ public uint NumUnitsInDecodingTick { get; set; }
///
/// Gets or sets BufferRemovalTimeLength. Specifies the length of the buffer_removal_time syntax element, in bits.
///
- internal uint BufferRemovalTimeLength { get; set; }
+ public uint BufferRemovalTimeLength { get; set; }
///
/// Gets or sets the FramePresentationTimeLength. Specifies the length of the frame_presentation_time syntax element, in bits.
///
- internal uint FramePresentationTimeLength { get; set; }
+ public uint FramePresentationTimeLength { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDeltaParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDeltaParameters.cs
index fe781baa1..a3e709c69 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDeltaParameters.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuDeltaParameters.cs
@@ -11,15 +11,15 @@ internal class ObuDeltaParameters
///
/// Gets or sets a value indicating whether per-block delta values are present.
///
- public bool IsPresent { get; internal set; }
+ public bool IsPresent { get; set; }
///
/// Gets or sets the delta-value multiplier, which is one, two, four, or eight.
///
- public int Resolution { get; internal set; }
+ public int Resolution { get; set; }
///
/// Gets or sets a value indicating whether separate loop-filter deltas are signaled for multiple filter targets.
///
- public bool IsMulti { get; internal set; }
+ public bool IsMulti { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopFilterParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopFilterParameters.cs
index e50527d89..f03d2cf4e 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopFilterParameters.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopFilterParameters.cs
@@ -21,32 +21,32 @@ internal class ObuLoopFilterParameters
///
/// Gets or sets the horizontal and vertical luma filter levels.
///
- public int[] FilterLevel { get; internal set; } = new int[2];
+ public int[] FilterLevel { get; set; } = new int[2];
///
/// Gets or sets the U-plane filter level.
///
- public int FilterLevelU { get; internal set; }
+ public int FilterLevelU { get; set; }
///
/// Gets or sets the V-plane filter level.
///
- public int FilterLevelV { get; internal set; }
+ public int FilterLevelV { get; set; }
///
/// Gets or sets the filter sharpness level.
///
- public int SharpnessLevel { get; internal set; }
+ public int SharpnessLevel { get; set; }
///
/// Gets or sets a value indicating whether reference-frame and mode deltas are enabled.
///
- public bool ReferenceDeltaModeEnabled { get; internal set; }
+ public bool ReferenceDeltaModeEnabled { get; set; }
///
/// Gets or sets a value indicating whether reference-frame and mode deltas are updated by this frame.
///
- public bool ReferenceDeltaModeUpdate { get; internal set; }
+ public bool ReferenceDeltaModeUpdate { get; set; }
///
/// Gets the filter-level deltas for the AV1 reference-frame categories.
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationItem.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationItem.cs
index 02ea3734a..b8d9a8f05 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationItem.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationItem.cs
@@ -11,10 +11,10 @@ internal class ObuLoopRestorationItem
///
/// Gets or sets the restoration-unit size, in samples.
///
- internal int Size { get; set; }
+ public int Size { get; set; }
///
/// Gets or sets the restoration filter type.
///
- internal ObuRestorationType Type { get; set; } = ObuRestorationType.None;
+ public ObuRestorationType Type { get; set; } = ObuRestorationType.None;
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationParameters.cs
index e28537a05..ad0cade7f 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationParameters.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuLoopRestorationParameters.cs
@@ -11,7 +11,7 @@ internal class ObuLoopRestorationParameters
///
/// Initializes a new instance of the class.
///
- internal ObuLoopRestorationParameters()
+ public ObuLoopRestorationParameters()
{
// AV1 addresses restoration state by plane, so all three plane entries must exist even
// when the active color configuration uses fewer planes.
@@ -24,25 +24,25 @@ internal class ObuLoopRestorationParameters
///
/// Gets or sets a value indicating whether any plane uses loop restoration.
///
- internal bool UsesLoopRestoration { get; set; }
+ public bool UsesLoopRestoration { get; set; }
///
/// Gets or sets a value indicating whether either chroma plane uses loop restoration.
///
- internal bool UsesChromaLoopRestoration { get; set; }
+ public bool UsesChromaLoopRestoration { get; set; }
///
/// Gets the loop-restoration configuration for each plane.
///
- internal ObuLoopRestorationItem[] Items { get; }
+ public ObuLoopRestorationItem[] Items { get; }
///
/// Gets or sets the luma restoration-unit size shift.
///
- internal int UnitShift { get; set; }
+ public int UnitShift { get; set; }
///
/// Gets or sets the chroma restoration-unit size shift relative to luma.
///
- internal int UVShift { get; set; }
+ public int UVShift { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuOperatingPoint.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuOperatingPoint.cs
index eb6091731..a6b63f96a 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuOperatingPoint.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuOperatingPoint.cs
@@ -11,36 +11,36 @@ internal class ObuOperatingPoint
///
/// Gets or sets the operating-point index.
///
- internal int OperatorIndex { get; set; }
+ public int OperatorIndex { get; set; }
///
/// Gets or sets the AV1 sequence-level index.
///
- internal int SequenceLevelIndex { get; set; }
+ public int SequenceLevelIndex { get; set; }
///
/// Gets or sets the sequence tier.
///
- internal int SequenceTier { get; set; }
+ public int SequenceTier { get; set; }
///
/// Gets or sets a value indicating whether decoder-model timing is present for this operating point.
///
- internal bool IsDecoderModelInfoPresent { get; set; }
+ public bool IsDecoderModelInfoPresent { get; set; }
///
/// Gets or sets a value indicating whether an initial display delay is present for this operating point.
///
- internal bool IsInitialDisplayDelayPresent { get; set; }
+ public bool IsInitialDisplayDelayPresent { get; set; }
///
/// Gets or sets the initial display delay minus one, in decoded frames.
///
- internal uint InitialDisplayDelay { get; set; }
+ public uint InitialDisplayDelay { get; set; }
///
/// Gets or sets the bitmask selecting temporal and spatial layers for the operating point.
/// A value of zero selects the complete coded sequence.
///
- internal uint Idc { get; set; }
+ public uint Idc { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuQuantizationParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuQuantizationParameters.cs
index 0ef92bee8..412ea7ca1 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuQuantizationParameters.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuQuantizationParameters.cs
@@ -21,25 +21,25 @@ internal class ObuQuantizationParameters
///
/// Gets or sets a value indicating whether quantization matrices are enabled.
///
- public bool IsUsingQMatrix { get; internal set; }
+ public bool IsUsingQMatrix { get; set; }
///
/// Gets or sets the DC quantizer-index deltas for the Y, U, and V planes.
///
- public int[] DeltaQDc { get; internal set; } = new int[3];
+ public int[] DeltaQDc { get; set; } = new int[3];
///
/// Gets or sets the AC quantizer-index deltas for the Y, U, and V planes.
///
- public int[] DeltaQAc { get; internal set; } = new int[3];
+ public int[] DeltaQAc { get; set; } = new int[3];
///
/// Gets or sets the quantization-matrix level for the Y, U, and V planes.
///
- public int[] QMatrix { get; internal set; } = new int[3];
+ public int[] QMatrix { get; set; } = new int[3];
///
/// Gets or sets a value indicating whether the U and V planes use separate quantizer deltas.
///
- public bool HasSeparateUvDelta { get; internal set; }
+ public bool HasSeparateUvDelta { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuReader.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuReader.cs
index a7c21e052..d5d7412b6 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuReader.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuReader.cs
@@ -589,7 +589,7 @@ internal class ObuReader
///
/// The reader positioned at the sequence-header payload.
/// The sequence header to populate.
- internal static void ReadSequenceHeader(ref Av1BitStreamReader reader, ObuSequenceHeader sequenceHeader)
+ public static void ReadSequenceHeader(ref Av1BitStreamReader reader, ObuSequenceHeader sequenceHeader)
{
sequenceHeader.SequenceProfile = (ObuSequenceProfile)reader.ReadLiteral(3);
if (sequenceHeader.SequenceProfile > Av1Constants.MaxSequenceProfile)
@@ -1808,7 +1808,7 @@ internal class ObuReader
/// The reader positioned at the frame-header payload.
/// The OBU header whose remaining payload size is updated.
/// A value indicating whether trailing-bit syntax follows the frame header.
- internal void ReadFrameHeader(ref Av1BitStreamReader reader, ObuHeader header, bool trailingBit)
+ public void ReadFrameHeader(ref Av1BitStreamReader reader, ObuHeader header, bool trailingBit)
{
int startBitPosition = reader.BitPosition;
this.ReadUncompressedFrameHeader(ref reader, header);
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuSegmentationParameters.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuSegmentationParameters.cs
index 6e74a6185..55fbf43fa 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuSegmentationParameters.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuSegmentationParameters.cs
@@ -11,47 +11,47 @@ internal class ObuSegmentationParameters
///
/// Gets or sets the effective quantization-matrix level for each plane and segment.
///
- public int[][] QMLevel { get; internal set; } = new int[3][];
+ public int[][] QMLevel { get; set; } = new int[3][];
///
/// Gets or sets the enabled state of every feature for every segment.
///
- public bool[,] FeatureEnabled { get; internal set; } = new bool[Av1Constants.MaxSegmentCount, Av1Constants.SegmentationLevelMax];
+ public bool[,] FeatureEnabled { get; set; } = new bool[Av1Constants.MaxSegmentCount, Av1Constants.SegmentationLevelMax];
///
/// Gets or sets a value indicating whether segmentation is enabled for the frame.
///
- public bool Enabled { get; internal set; }
+ public bool Enabled { get; set; }
///
/// Gets or sets the value of every feature for every segment.
///
- public int[,] FeatureData { get; internal set; } = new int[Av1Constants.MaxSegmentCount, Av1Constants.SegmentationLevelMax];
+ public int[,] FeatureData { get; set; } = new int[Av1Constants.MaxSegmentCount, Av1Constants.SegmentationLevelMax];
///
/// Gets or sets a value indicating whether segment identifiers are decoded before skip-mode decisions.
///
- public bool SegmentIdPrecedesSkip { get; internal set; }
+ public bool SegmentIdPrecedesSkip { get; set; }
///
/// Gets or sets the greatest segment identifier that has at least one active feature.
///
- public int LastActiveSegmentId { get; internal set; }
+ public int LastActiveSegmentId { get; set; }
///
/// Gets or sets a value indicating whether the segmentation map is updated while decoding the frame.
///
- public int SegmentationUpdateMap { get; internal set; }
+ public int SegmentationUpdateMap { get; set; }
///
/// Gets or sets a value indicating whether segmentation-map updates are coded relative to the existing map.
///
- public int SegmentationTemporalUpdate { get; internal set; }
+ public int SegmentationTemporalUpdate { get; set; }
///
/// Gets or sets a value indicating whether the frame supplies new per-segment feature data.
///
- public int SegmentationUpdateData { get; internal set; }
+ public int SegmentationUpdateData { get; set; }
///
/// Determines whether a feature is active for a segment.
diff --git a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuTileGroupHeader.cs b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuTileGroupHeader.cs
index 69c155429..5f04768e0 100644
--- a/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuTileGroupHeader.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/OpenBitstreamUnit/ObuTileGroupHeader.cs
@@ -11,32 +11,32 @@ internal class ObuTileGroupHeader
///
/// Gets or sets the maximum tile width, in superblocks.
///
- internal int MaxTileWidthSuperblock { get; set; }
+ public int MaxTileWidthSuperblock { get; set; }
///
/// Gets or sets the maximum tile height, in superblocks.
///
- internal int MaxTileHeightSuperblock { get; set; }
+ public int MaxTileHeightSuperblock { get; set; }
///
/// Gets or sets the minimum base-2 logarithm of the tile-column count.
///
- internal int MinLog2TileColumnCount { get; set; }
+ public int MinLog2TileColumnCount { get; set; }
///
/// Gets or sets the maximum base-2 logarithm of the tile-column count.
///
- internal int MaxLog2TileColumnCount { get; set; }
+ public int MaxLog2TileColumnCount { get; set; }
///
/// Gets or sets the maximum base-2 logarithm of the tile-row count.
///
- internal int MaxLog2TileRowCount { get; set; }
+ public int MaxLog2TileRowCount { get; set; }
///
/// Gets or sets the minimum base-2 logarithm of the total tile count.
///
- internal int MinLog2TileCount { get; set; }
+ public int MinLog2TileCount { get; set; }
///
/// Gets or sets a value indicating whether tile columns and rows use uniform spacing.
@@ -46,45 +46,45 @@ internal class ObuTileGroupHeader
///
/// Gets or sets the base-2 logarithm of the tile-column count.
///
- internal int TileColumnCountLog2 { get; set; }
+ public int TileColumnCountLog2 { get; set; }
///
/// Gets or sets the number of tile columns.
///
- internal int TileColumnCount { get; set; }
+ public int TileColumnCount { get; set; }
///
/// Gets or sets the starting superblock column for each tile column.
///
- internal int[] TileColumnStartModeInfo { get; set; } = new int[Av1Constants.MaxTileRowCount + 1];
+ public int[] TileColumnStartModeInfo { get; set; } = new int[Av1Constants.MaxTileRowCount + 1];
///
/// Gets or sets the minimum base-2 logarithm of the tile-row count.
///
- internal int MinLog2TileRowCount { get; set; }
+ public int MinLog2TileRowCount { get; set; }
///
/// Gets or sets the base-2 logarithm of the tile-row count.
///
- internal int TileRowCountLog2 { get; set; }
+ public int TileRowCountLog2 { get; set; }
///
/// Gets or sets the starting superblock row for each tile row.
///
- internal int[] TileRowStartModeInfo { get; set; } = new int[Av1Constants.MaxTileColumnCount + 1];
+ public int[] TileRowStartModeInfo { get; set; } = new int[Av1Constants.MaxTileColumnCount + 1];
///
/// Gets or sets the number of tile rows.
///
- internal int TileRowCount { get; set; }
+ public int TileRowCount { get; set; }
///
/// Gets or sets the tile whose entropy context is retained after frame decoding.
///
- internal uint ContextUpdateTileId { get; set; }
+ public uint ContextUpdateTileId { get; set; }
///
/// Gets or sets the number of bytes used to signal each tile size.
///
- internal int TileSizeBytes { get; set; }
+ public int TileSizeBytes { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Arithmetic.cs b/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Arithmetic.cs
index 7f355d14a..212cd91ef 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Arithmetic.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Arithmetic.cs
@@ -15,7 +15,7 @@ internal static partial class Av1InterPredictor
/// Convolves sixteen adjacent 8-bit samples into four signed 32-bit accumulator vectors.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static void Convolve(
+ public static void Convolve(
ref byte source,
int tapStride,
nuint column,
@@ -51,7 +51,7 @@ internal static partial class Av1InterPredictor
/// Convolves thirty-two adjacent 8-bit samples into four signed 32-bit accumulator vectors.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static void Convolve(
+ public static void Convolve(
ref byte source,
int tapStride,
nuint column,
@@ -85,7 +85,7 @@ internal static partial class Av1InterPredictor
/// Convolves sixty-four adjacent 8-bit samples into four signed 32-bit accumulator vectors.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static void Convolve(
+ public static void Convolve(
ref byte source,
int tapStride,
nuint column,
@@ -119,7 +119,7 @@ internal static partial class Av1InterPredictor
/// Convolves eight adjacent nonnegative 16-bit samples into two signed 32-bit accumulator vectors.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static void Convolve(
+ public static void Convolve(
ref short source,
int tapStride,
nuint column,
@@ -149,7 +149,7 @@ internal static partial class Av1InterPredictor
/// Convolves sixteen adjacent nonnegative 16-bit samples into two signed 32-bit accumulator vectors.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static void Convolve(
+ public static void Convolve(
ref short source,
int tapStride,
nuint column,
@@ -176,7 +176,7 @@ internal static partial class Av1InterPredictor
/// Convolves thirty-two adjacent nonnegative 16-bit samples into two signed 32-bit accumulator vectors.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static void Convolve(
+ public static void Convolve(
ref short source,
int tapStride,
nuint column,
@@ -203,28 +203,28 @@ internal static partial class Av1InterPredictor
/// Applies AV1 power-of-two rounding to four-lane signed accumulators.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static Vector128 RoundPowerOfTwo(Vector128 value, int bits)
+ public static Vector128 RoundPowerOfTwo(Vector128 value, int bits)
=> bits == 0 ? value : (value + Vector128.Create(1 << (bits - 1))) >> bits;
///
/// Applies AV1 power-of-two rounding to eight-lane signed accumulators.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static Vector256 RoundPowerOfTwo(Vector256 value, int bits)
+ public static Vector256 RoundPowerOfTwo(Vector256 value, int bits)
=> bits == 0 ? value : (value + Vector256.Create(1 << (bits - 1))) >> bits;
///
/// Applies AV1 power-of-two rounding to sixteen-lane signed accumulators.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static Vector512 RoundPowerOfTwo(Vector512 value, int bits)
+ public static Vector512 RoundPowerOfTwo(Vector512 value, int bits)
=> bits == 0 ? value : (value + Vector512.Create(1 << (bits - 1))) >> bits;
///
/// Clips and packs sixteen signed accumulators into 8-bit samples.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static Vector128 PackBytes(Vector128 result0, Vector128 result1, Vector128 result2, Vector128 result3)
+ public static Vector128 PackBytes(Vector128 result0, Vector128 result1, Vector128 result2, Vector128 result3)
{
Vector128 maximum = Vector128.Create((int)byte.MaxValue);
result0 = Vector128.Clamp(result0, Vector128.Zero, maximum);
@@ -238,7 +238,7 @@ internal static partial class Av1InterPredictor
/// Clips and packs thirty-two signed accumulators into 8-bit samples.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static Vector256 PackBytes(Vector256 result0, Vector256 result1, Vector256 result2, Vector256 result3)
+ public static Vector256 PackBytes(Vector256 result0, Vector256 result1, Vector256 result2, Vector256 result3)
{
Vector256 maximum = Vector256.Create((int)byte.MaxValue);
result0 = Vector256.Clamp(result0, Vector256.Zero, maximum);
@@ -252,7 +252,7 @@ internal static partial class Av1InterPredictor
/// Clips and packs sixty-four signed accumulators into 8-bit samples.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static Vector512 PackBytes(Vector512 result0, Vector512 result1, Vector512 result2, Vector512 result3)
+ public static Vector512 PackBytes(Vector512 result0, Vector512 result1, Vector512 result2, Vector512 result3)
{
Vector512 maximum = Vector512.Create((int)byte.MaxValue);
result0 = Vector512.Clamp(result0, Vector512.Zero, maximum);
@@ -266,7 +266,7 @@ internal static partial class Av1InterPredictor
/// Clips and packs eight signed accumulators into high-bit-depth samples.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static Vector128 PackHighBitDepth(Vector128 result0, Vector128 result1, int maximumValue)
+ public static Vector128 PackHighBitDepth(Vector128 result0, Vector128 result1, int maximumValue)
{
Vector128 maximum = Vector128.Create(maximumValue);
result0 = Vector128.Clamp(result0, Vector128.Zero, maximum);
@@ -278,7 +278,7 @@ internal static partial class Av1InterPredictor
/// Clips and packs sixteen signed accumulators into high-bit-depth samples.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static Vector256 PackHighBitDepth(Vector256 result0, Vector256 result1, int maximumValue)
+ public static Vector256 PackHighBitDepth(Vector256 result0, Vector256 result1, int maximumValue)
{
Vector256 maximum = Vector256.Create(maximumValue);
result0 = Vector256.Clamp(result0, Vector256.Zero, maximum);
@@ -290,7 +290,7 @@ internal static partial class Av1InterPredictor
/// Clips and packs thirty-two signed accumulators into high-bit-depth samples.
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
- internal static Vector512 PackHighBitDepth(Vector512 result0, Vector512 result1, int maximumValue)
+ public static Vector512 PackHighBitDepth(Vector512 result0, Vector512 result1, int maximumValue)
{
Vector512 maximum = Vector512.Create(maximumValue);
result0 = Vector512.Clamp(result0, Vector512.Zero, maximum);
@@ -301,7 +301,7 @@ internal static partial class Av1InterPredictor
///
/// Computes one signed Q7 convolution sum from 8-bit samples.
///
- internal static int ConvolveScalar(ref byte source, int sourceStride, ref short coefficients, int tapCount)
+ public static int ConvolveScalar(ref byte source, int sourceStride, ref short coefficients, int tapCount)
{
int sum = 0;
for (int tap = 0; tap < tapCount; tap++)
@@ -315,7 +315,7 @@ internal static partial class Av1InterPredictor
///
/// Computes one signed Q7 convolution sum from high-bit-depth samples.
///
- internal static int ConvolveScalar(ref ushort source, int sourceStride, ref short coefficients, int tapCount)
+ public static int ConvolveScalar(ref ushort source, int sourceStride, ref short coefficients, int tapCount)
{
int sum = 0;
for (int tap = 0; tap < tapCount; tap++)
@@ -329,7 +329,7 @@ internal static partial class Av1InterPredictor
///
/// Computes one signed Q7 convolution sum from biased intermediate samples.
///
- internal static int ConvolveScalar(ref short source, int sourceStride, ref short coefficients, int tapCount)
+ public static int ConvolveScalar(ref short source, int sourceStride, ref short coefficients, int tapCount)
{
int sum = 0;
for (int tap = 0; tap < tapCount; tap++)
@@ -343,5 +343,5 @@ internal static partial class Av1InterPredictor
///
/// Rounds an integer after division by a power of two using AV1's unsigned-bias rule.
///
- internal static int RoundPowerOfTwo(int value, int bits) => bits == 0 ? value : (value + (1 << (bits - 1))) >> bits;
+ public static int RoundPowerOfTwo(int value, int bits) => bits == 0 ? value : (value + (1 << (bits - 1))) >> bits;
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Operator.cs b/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Operator.cs
index c298b3b5e..3f947a2f9 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Operator.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Prediction/Inter/Av1InterPredictor.Operator.cs
@@ -755,7 +755,7 @@ internal static partial class Av1InterPredictor
/// The selected Q7 phase kernel.
/// Receives the first coefficient used by the effective kernel.
/// Receives the effective two-, four-, six-, or eight-tap length.
- internal static void GetEffectiveKernel(ReadOnlySpan coefficients, out int firstCoefficient, out int tapCount)
+ public static void GetEffectiveKernel(ReadOnlySpan coefficients, out int firstCoefficient, out int tapCount)
{
// This matches libaom's get_filter_tap decision. Reducing symmetric zero endpoints avoids source loads and
// multiply-adds while retaining the original tap-to-source alignment through firstCoefficient.
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockModeInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockModeInfo.cs
index c97e4a582..5c9702f01 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockModeInfo.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockModeInfo.cs
@@ -53,15 +53,15 @@ internal class Av1EncoderBlockModeInfo
///
/// Gets or sets the transform-tree depth selected for the block.
///
- public int TransformDepth { get; internal set; }
+ public int TransformDepth { get; set; }
///
/// Gets or sets the luma prediction mode written for the block.
///
- public Av1PredictionMode Mode { get; internal set; }
+ public Av1PredictionMode Mode { get; set; }
///
/// Gets or sets the chroma prediction mode written for the block.
///
- public Av1ChromaPredictionMode UvMode { get; internal set; }
+ public Av1ChromaPredictionMode UvMode { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockStruct.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockStruct.cs
index a0e730c75..21da0fca6 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockStruct.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderBlockStruct.cs
@@ -41,10 +41,10 @@ internal class Av1EncoderBlockStruct
///
/// Gets or sets the palette size for luma and for the shared chroma mode.
///
- public required int[] PaletteSize { get; internal set; }
+ public required int[] PaletteSize { get; set; }
///
/// Gets or sets the encoder prediction-unit state for the block.
///
- public required Av1EncoderPredictionUnit[] PredictionUnits { get; internal set; }
+ public required Av1EncoderPredictionUnit[] PredictionUnits { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderCommon.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderCommon.cs
index 90eb8b152..d548ce822 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderCommon.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderCommon.cs
@@ -13,25 +13,25 @@ internal class Av1EncoderCommon
///
/// Gets or sets the frame height in 4x4 mode-information units.
///
- public int ModeInfoRowCount { get; internal set; }
+ public int ModeInfoRowCount { get; set; }
///
/// Gets or sets the frame width in 4x4 mode-information units.
///
- public int ModeInfoColumnCount { get; internal set; }
+ public int ModeInfoColumnCount { get; set; }
///
/// Gets or sets the row stride of frame mode information in 4x4 units.
///
- public int ModeInfoStride { get; internal set; }
+ public int ModeInfoStride { get; set; }
///
/// Gets or sets the coded frame dimensions.
///
- public required ObuFrameSize FrameSize { get; internal set; }
+ public required ObuFrameSize FrameSize { get; set; }
///
/// Gets or sets the tile layout for the current frame.
///
- public required ObuTileGroupHeader TilesInfo { get; internal set; }
+ public required ObuTileGroupHeader TilesInfo { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderPredictionUnit.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderPredictionUnit.cs
index a57247f2c..aa8f078e2 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderPredictionUnit.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EncoderPredictionUnit.cs
@@ -16,10 +16,10 @@ internal class Av1EncoderPredictionUnit
///
/// Gets or sets the chroma-from-luma alpha magnitude index.
///
- public int ChromaFromLumaIndex { get; internal set; }
+ public int ChromaFromLumaIndex { get; set; }
///
/// Gets or sets the packed chroma-from-luma alpha signs for the U and V planes.
///
- public int ChromaFromLumaSigns { get; internal set; }
+ public int ChromaFromLumaSigns { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EntropyCodingContext.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EntropyCodingContext.cs
index a0873b1db..ae5dd0a74 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EntropyCodingContext.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1EntropyCodingContext.cs
@@ -16,21 +16,21 @@ internal partial class Av1TileWriter
///
/// Gets or sets the macroblock mode information currently being encoded.
///
- public required Av1MacroBlockModeInfo MacroBlockModeInfo { get; internal set; }
+ public required Av1MacroBlockModeInfo MacroBlockModeInfo { get; set; }
///
/// Gets or sets the pixel origin of the current superblock.
///
- public Point SuperblockOrigin { get; internal set; }
+ public Point SuperblockOrigin { get; set; }
///
/// Gets or sets the number of luma coefficient positions consumed in the current superblock.
///
- public int CodedAreaSuperblock { get; internal set; }
+ public int CodedAreaSuperblock { get; set; }
///
/// Gets or sets the number of chroma coefficient positions consumed in the current superblock.
///
- public int CodedAreaSuperblockUv { get; internal set; }
+ public int CodedAreaSuperblockUv { get; set; }
}
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1FrameInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1FrameInfo.cs
index 6f944cf56..2484d1b15 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1FrameInfo.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1FrameInfo.cs
@@ -503,7 +503,7 @@ internal partial class Av1FrameInfo : IDisposable
/// Resets every constrained directional enhancement filter strength for a superblock to its unassigned value.
///
/// The position in the frame superblock grid.
- internal void ClearCdef(Point index)
+ public void ClearCdef(Point index)
{
Span cdefs = this.GetCdefStrength(index);
for (int i = 0; i < cdefs.Length; i++)
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1LevelBuffer.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1LevelBuffer.cs
index 84bbe9cfb..66e891e6c 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1LevelBuffer.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1LevelBuffer.cs
@@ -124,7 +124,7 @@ internal sealed class Av1LevelBuffer : IDisposable
///
/// Clears all coefficient levels and context padding.
///
- internal void Clear()
+ public void Clear()
{
ObjectDisposedException.ThrowIf(this.memory == null, this);
this.memory.Memory.Span.Clear();
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockD.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockD.cs
index 8d6b8c5f0..861857a2f 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockD.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockD.cs
@@ -19,7 +19,7 @@ internal class Av1MacroBlockD
public required ReadOnlySpan ModeInfo
{
get => this.modeInfo;
- internal set
+ set
{
// A span cannot be retained by the class, so preserve the selected map entries in owned storage.
this.modeInfo = new Av1ModeInfo[value.Length];
@@ -30,60 +30,60 @@ internal class Av1MacroBlockD
///
/// Gets or sets the tile containing the current block.
///
- public required Av1TileInfo Tile { get; internal set; }
+ public required Av1TileInfo Tile { get; set; }
///
/// Gets or sets a value indicating whether an above block is available within the tile.
///
- public bool IsUpAvailable { get; internal set; }
+ public bool IsUpAvailable { get; set; }
///
/// Gets or sets a value indicating whether a left block is available within the tile.
///
- public bool IsLeftAvailable { get; internal set; }
+ public bool IsLeftAvailable { get; set; }
///
/// Gets or sets the above macroblock mode information, when available.
///
- public Av1MacroBlockModeInfo? AboveMacroBlock { get; internal set; }
+ public Av1MacroBlockModeInfo? AboveMacroBlock { get; set; }
///
/// Gets or sets the left macroblock mode information, when available.
///
- public Av1MacroBlockModeInfo? LeftMacroBlock { get; internal set; }
+ public Av1MacroBlockModeInfo? LeftMacroBlock { get; set; }
///
/// Gets or sets the row stride of the frame mode-information map.
///
- public int ModeInfoStride { get; internal set; }
+ public int ModeInfoStride { get; set; }
///
/// Gets or sets the signed distance from the block to the top frame edge in one-eighth-sample units.
///
- public int ToTopEdge { get; internal set; }
+ public int ToTopEdge { get; set; }
///
/// Gets or sets the signed distance from the block to the bottom frame edge in one-eighth-sample units.
///
- public int ToBottomEdge { get; internal set; }
+ public int ToBottomEdge { get; set; }
///
/// Gets or sets the signed distance from the block to the left frame edge in one-eighth-sample units.
///
- public int ToLeftEdge { get; internal set; }
+ public int ToLeftEdge { get; set; }
///
/// Gets or sets the signed distance from the block to the right frame edge in one-eighth-sample units.
///
- public int ToRightEdge { get; internal set; }
+ public int ToRightEdge { get; set; }
///
/// Gets or sets the block dimensions in samples for rectangular-partition context selection.
///
- public Size N8Size { get; internal set; }
+ public Size N8Size { get; set; }
///
/// Gets or sets a value indicating whether this block is the second half of a rectangular partition.
///
- public bool IsSecondRectangle { get; internal set; }
+ public bool IsSecondRectangle { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockModeInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockModeInfo.cs
index ba1f72fbe..99a566b2c 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockModeInfo.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1MacroBlockModeInfo.cs
@@ -11,15 +11,15 @@ internal class Av1MacroBlockModeInfo
///
/// Gets or sets the prediction, transform, and segmentation decisions for the block.
///
- public required Av1EncoderBlockModeInfo Block { get; internal set; }
+ public required Av1EncoderBlockModeInfo Block { get; set; }
///
/// Gets or sets the luma palette decisions for the block.
///
- public required Av1PaletteLumaModeInfo Palette { get; internal set; }
+ public required Av1PaletteLumaModeInfo Palette { get; set; }
///
/// Gets or sets the constrained directional enhancement filter strength for the block.
///
- public int CdefStrength { get; internal set; }
+ public int CdefStrength { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1ModeInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1ModeInfo.cs
index cdd6732c4..3e6c325c0 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1ModeInfo.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1ModeInfo.cs
@@ -11,5 +11,5 @@ internal class Av1ModeInfo
///
/// Gets or sets the macroblock mode information associated with this map entry.
///
- public required Av1MacroBlockModeInfo MacroBlockModeInfo { get; internal set; }
+ public required Av1MacroBlockModeInfo MacroBlockModeInfo { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1NeighborArrayUnit.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1NeighborArrayUnit.cs
index e3a010134..70e6187fa 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1NeighborArrayUnit.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1NeighborArrayUnit.cs
@@ -295,5 +295,5 @@ internal sealed class Av1NeighborArrayUnit : IDisposable
/// The block dimensions in samples.
/// The neighbor arrays to update.
/// The byte-specific write path is not implemented.
- internal void UnitModeWrite(Span dcSignSpan, Point blockOrigin, Size blockSize, Av1NeighborArrayUnit.UnitMask unitMask) => throw new NotImplementedException();
+ public void UnitModeWrite(Span dcSignSpan, Point blockOrigin, Size blockSize, Av1NeighborArrayUnit.UnitMask unitMask) => throw new NotImplementedException();
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionContext.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionContext.cs
index e2fff6914..b00b6a563 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionContext.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionContext.cs
@@ -55,12 +55,12 @@ internal struct Av1PartitionContext : IMinMaxValue
///
/// Gets or sets the five-bit context derived from the left neighbor.
///
- public byte Left { get; internal set; }
+ public byte Left { get; set; }
///
/// Gets or sets the five-bit context derived from the above neighbor.
///
- public byte Above { get; internal set; }
+ public byte Above { get; set; }
///
/// Gets the above-neighbor partition context for the specified block size.
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionInfo.cs
index 5d45cb100..b71d6aa2f 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionInfo.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PartitionInfo.cs
@@ -145,7 +145,7 @@ internal ref struct Av1PartitionInfo
///
/// Gets or sets the neighboring luma samples used by chroma-from-luma prediction.
///
- public Av1ChromaFromLumaContext? ChromaFromLumaContext { get; internal set; }
+ public Av1ChromaFromLumaContext? ChromaFromLumaContext { get; set; }
///
/// Gets the block width in samples for a color plane.
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureControlSet.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureControlSet.cs
index c0a158d78..f37cdbc75 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureControlSet.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureControlSet.cs
@@ -13,42 +13,42 @@ internal class Av1PictureControlSet
///
/// Gets or sets the partition neighbor contexts for each tile.
///
- public required Av1NeighborArrayUnit[] PartitionContexts { get; internal set; }
+ public required Av1NeighborArrayUnit[] PartitionContexts { get; set; }
///
/// Gets or sets the luma DC-sign and coefficient-level neighbor contexts for each tile.
///
- public required Av1NeighborArrayUnit[] LuminanceDcSignLevelCoefficientNeighbors { get; internal set; }
+ public required Av1NeighborArrayUnit[] LuminanceDcSignLevelCoefficientNeighbors { get; set; }
///
/// Gets or sets the red-difference chroma DC-sign and coefficient-level neighbor contexts for each tile.
///
- public required Av1NeighborArrayUnit[] CrDcSignLevelCoefficientNeighbors { get; internal set; }
+ public required Av1NeighborArrayUnit[] CrDcSignLevelCoefficientNeighbors { get; set; }
///
/// Gets or sets the blue-difference chroma DC-sign and coefficient-level neighbor contexts for each tile.
///
- public required Av1NeighborArrayUnit[] CbDcSignLevelCoefficientNeighbors { get; internal set; }
+ public required Av1NeighborArrayUnit[] CbDcSignLevelCoefficientNeighbors { get; set; }
///
/// Gets or sets the transform-function neighbor contexts for each tile.
///
- public required Av1NeighborArrayUnit[] TransformFunctionContexts { get; internal set; }
+ public required Av1NeighborArrayUnit[] TransformFunctionContexts { get; set; }
///
/// Gets or sets the sequence-wide encoder state.
///
- public required Av1SequenceControlSet Sequence { get; internal set; }
+ public required Av1SequenceControlSet Sequence { get; set; }
///
/// Gets or sets the parent picture state shared across coding passes.
///
- public required Av1PictureParentControlSet Parent { get; internal set; }
+ public required Av1PictureParentControlSet Parent { get; set; }
///
/// Gets or sets the frame segmentation identifiers used for spatial prediction.
///
- public required byte[] SegmentationNeighborMap { get; internal set; }
+ public required byte[] SegmentationNeighborMap { get; set; }
///
/// Gets the frame grid that maps each 4x4 position to its mode-information span.
@@ -58,22 +58,22 @@ internal class Av1PictureControlSet
///
/// Gets or sets the contiguous mode-information storage addressed by .
///
- public required Av1ModeInfo[] Mip { get; internal set; }
+ public required Av1ModeInfo[] Mip { get; set; }
///
/// Gets or sets the row stride of in 4x4 mode-information units.
///
- public int ModeInfoStride { get; internal set; }
+ public int ModeInfoStride { get; set; }
///
/// Gets or sets a value indicating whether the mode-information backing store uses 8x8 rather than 4x4 granularity.
///
- public bool Disallow4x4AllFrames { get; internal set; }
+ public bool Disallow4x4AllFrames { get; set; }
///
/// Gets or sets the constrained directional enhancement filter presets for each filter block.
///
- public required int[][] CdefPreset { get; internal set; }
+ public required int[][] CdefPreset { get; set; }
///
/// Gets the mode-information span mapped to a frame position.
@@ -108,7 +108,7 @@ internal class Av1PictureControlSet
///
/// The block origin in 4x4 mode-information units.
/// The macroblock mode information at the origin.
- internal Av1MacroBlockModeInfo GetMacroBlockModeInfo(Point blockOrigin)
+ public Av1MacroBlockModeInfo GetMacroBlockModeInfo(Point blockOrigin)
{
int modeInfoStride = this.ModeInfoStride;
int offset = (blockOrigin.Y * modeInfoStride) + blockOrigin.X;
@@ -130,7 +130,7 @@ internal class Av1PictureControlSet
/// The block size.
/// The block origin in samples.
/// The segment identifier.
- internal void UpdateSegmentation(Av1BlockSize blockSize, Point origin, int segmentId)
+ public void UpdateSegmentation(Av1BlockSize blockSize, Point origin, int segmentId)
{
Av1EncoderCommon cm = this.Parent.Common;
Span segment_ids = this.SegmentationNeighborMap;
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureParentControlSet.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureParentControlSet.cs
index d3922de77..a262e15e5 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureParentControlSet.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1PictureParentControlSet.cs
@@ -13,35 +13,35 @@ internal class Av1PictureParentControlSet
///
/// Gets or sets frame dimensions and tile state shared by encoder stages.
///
- public required Av1EncoderCommon Common { get; internal set; }
+ public required Av1EncoderCommon Common { get; set; }
///
/// Gets or sets the frame header being encoded.
///
- public required ObuFrameHeader FrameHeader { get; internal set; }
+ public required ObuFrameHeader FrameHeader { get; set; }
///
/// Gets or sets the preceding quantizer index for each tile context.
///
- public required int[] PreviousQIndex { get; internal set; }
+ public required int[] PreviousQIndex { get; set; }
///
/// Gets or sets the encoder palette-search level.
///
- public int PaletteLevel { get; internal set; }
+ public int PaletteLevel { get; set; }
///
/// Gets or sets the frame width aligned for superblock traversal.
///
- public int AlignedWidth { get; internal set; }
+ public int AlignedWidth { get; set; }
///
/// Gets or sets the frame height aligned for superblock traversal.
///
- public int AlignedHeight { get; internal set; }
+ public int AlignedHeight { get; set; }
///
/// Gets or sets the geometry state for each superblock in the picture.
///
- public required Av1SuperblockGeometry[] SuperblockGeometry { get; internal set; }
+ public required Av1SuperblockGeometry[] SuperblockGeometry { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SequenceControlSet.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SequenceControlSet.cs
index 156badf07..907205ae7 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SequenceControlSet.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SequenceControlSet.cs
@@ -13,10 +13,10 @@ internal class Av1SequenceControlSet
///
/// Gets or sets the sequence header that governs encoded pictures.
///
- public required ObuSequenceHeader SequenceHeader { get; internal set; }
+ public required ObuSequenceHeader SequenceHeader { get; set; }
///
/// Gets or sets the maximum number of encoded blocks allocated for a picture.
///
- public int MaxBlockCount { get; internal set; }
+ public int MaxBlockCount { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1Superblock.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1Superblock.cs
index 780de9dd0..2d33bb296 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1Superblock.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1Superblock.cs
@@ -23,10 +23,10 @@ internal class Av1Superblock
///
/// Gets or sets the selected partition type for each partition-tree node.
///
- public required Av1PartitionType[] CodingUnitPartitionTypes { get; internal set; }
+ public required Av1PartitionType[] CodingUnitPartitionTypes { get; set; }
///
/// Gets or sets the superblock index within the picture.
///
- public int Index { get; internal set; }
+ public int Index { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockGeometry.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockGeometry.cs
index 13e7f7df4..e6475e50a 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockGeometry.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockGeometry.cs
@@ -11,5 +11,5 @@ internal class Av1SuperblockGeometry
///
/// Gets or sets a value indicating whether the superblock lies completely within the coded frame.
///
- public bool IsComplete { get; internal set; }
+ public bool IsComplete { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockInfo.cs
index 9d79ba007..8ec50cf35 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockInfo.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1SuperblockInfo.cs
@@ -72,17 +72,17 @@ internal class Av1SuperblockInfo
///
/// Gets or sets the next luma transform-information index while parsing this superblock.
///
- public int TransformInfoIndexY { get; internal set; }
+ public int TransformInfoIndexY { get; set; }
///
/// Gets or sets the next shared chroma transform-information index while parsing this superblock.
///
- public int TransformInfoIndexUv { get; internal set; }
+ public int TransformInfoIndexUv { get; set; }
///
/// Gets or sets the number of mode-information records parsed for this superblock.
///
- public int BlockCount { get; internal set; }
+ public int BlockCount { get; set; }
///
/// Gets the luma transform-information storage reserved for this superblock.
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileReader.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileReader.cs
index f5f34c639..ae78c7936 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileReader.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileReader.cs
@@ -1812,7 +1812,7 @@ internal sealed class Av1TileReader : IAv1TileReader, IDisposable
/// The current coding block and its neighbors.
/// The active tile boundaries used by reference-motion-vector searches.
/// Implements the prefix, intra, and translational inter branches of AV1 section 5.11.7.
- internal void ReadInterFrameModeInfo(ref Av1SymbolDecoder reader, ref Av1PartitionInfo partitionInfo, Av1TileInfo tileInfo)
+ public void ReadInterFrameModeInfo(ref Av1SymbolDecoder reader, ref Av1PartitionInfo partitionInfo, Av1TileInfo tileInfo)
{
Av1BlockModeInfo modeInfo = partitionInfo.ModeInfo;
modeInfo.MotionVectors.Clear();
@@ -2929,7 +2929,7 @@ internal sealed class Av1TileReader : IAv1TileReader, IDisposable
///
/// Implements read_inter_segment_id from AV1 section 5.11.8.
///
- internal void ReadInterSegmentId(ref Av1SymbolDecoder reader, ref Av1PartitionInfo partitionInfo, bool beforeSkip)
+ public void ReadInterSegmentId(ref Av1SymbolDecoder reader, ref Av1PartitionInfo partitionInfo, bool beforeSkip)
{
ObuSegmentationParameters segmentationParameters = this.FrameHeader.SegmentationParameters;
Av1BlockModeInfo modeInfo = partitionInfo.ModeInfo;
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileWriter.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileWriter.cs
index 4cbaeccae..8d422eb60 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileWriter.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TileWriter.cs
@@ -1587,7 +1587,7 @@ internal partial class Av1TileWriter
/// The tile symbol encoder.
/// The encoder block state.
/// The skip value to write.
- internal static void EncodeSkipCoefficients(ref Av1SymbolEncoder writer, Av1EncoderBlockStruct block, bool skip)
+ public static void EncodeSkipCoefficients(ref Av1SymbolEncoder writer, Av1EncoderBlockStruct block, bool skip)
{
Av1MacroBlockModeInfo? above_mi = block.MacroBlock.AboveMacroBlock;
Av1MacroBlockModeInfo? left_mi = block.MacroBlock.LeftMacroBlock;
diff --git a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TransformInfo.cs b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TransformInfo.cs
index d24611d6b..7e6722cd9 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TransformInfo.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Tiling/Av1TransformInfo.cs
@@ -45,22 +45,22 @@ internal struct Av1TransformInfo
///
/// Gets or sets the transform size used for this transform block.
///
- public Av1TransformSize Size { get; internal set; }
+ public Av1TransformSize Size { get; set; }
///
/// Gets or sets the transform type used for this transform block.
///
- public Av1TransformType Type { get; internal set; }
+ public Av1TransformType Type { get; set; }
///
/// Gets or sets the horizontal offset of this block in mode-information units.
///
- public int OffsetX { get; internal set; }
+ public int OffsetX { get; set; }
///
/// Gets or sets the vertical offset of this block in mode-information units.
///
- public int OffsetY { get; internal set; }
+ public int OffsetY { get; set; }
///
/// Gets or sets a value indicating whether the transform block contains a coded residual.
@@ -75,5 +75,5 @@ internal struct Av1TransformInfo
///
///
///
- public bool CodeBlockFlag { get; internal set; }
+ public bool CodeBlockFlag { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Av1/Transform/Av1InverseTransformMath.cs b/src/ImageSharp/Formats/Heif/Av1/Transform/Av1InverseTransformMath.cs
index 40a9f9265..c575b244a 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Transform/Av1InverseTransformMath.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Transform/Av1InverseTransformMath.cs
@@ -284,7 +284,7 @@ internal static class Av1InverseTransformMath
///
/// The signaled transform size.
/// The maximum coefficient end position represented by AV1 syntax.
- internal static int GetMaxEndOfBuffer(Av1TransformSize transformSize)
+ public static int GetMaxEndOfBuffer(Av1TransformSize transformSize)
{
if (transformSize is Av1TransformSize.Size64x64 or Av1TransformSize.Size64x32 or Av1TransformSize.Size32x64)
{
diff --git a/src/ImageSharp/Formats/Heif/Av1/Transform/Av1TransformFunctionParameters.cs b/src/ImageSharp/Formats/Heif/Av1/Transform/Av1TransformFunctionParameters.cs
index 234e420dc..080e6aa8b 100644
--- a/src/ImageSharp/Formats/Heif/Av1/Transform/Av1TransformFunctionParameters.cs
+++ b/src/ImageSharp/Formats/Heif/Av1/Transform/Av1TransformFunctionParameters.cs
@@ -11,30 +11,30 @@ internal struct Av1TransformFunctionParameters
///
/// Gets or sets the compound transform type.
///
- public Av1TransformType TransformType { get; internal set; }
+ public Av1TransformType TransformType { get; set; }
///
/// Gets or sets the transform-block dimensions.
///
- public Av1TransformSize TransformSize { get; internal set; }
+ public Av1TransformSize TransformSize { get; set; }
///
/// Gets or sets the number of coefficient positions represented by the decoded coefficient buffer.
///
- public int EndOfBuffer { get; internal set; }
+ public int EndOfBuffer { get; set; }
///
/// Gets or sets a value indicating whether the coded segment uses the AV1 lossless transform rules.
///
- public bool IsLossless { get; internal set; }
+ public bool IsLossless { get; set; }
///
/// Gets or sets the decoded sample bit depth.
///
- public int BitDepth { get; internal set; }
+ public int BitDepth { get; set; }
///
/// Gets or sets a value indicating whether reconstructed samples use the 16-bit storage pipeline.
///
- public bool Is16BitPipeline { get; internal set; }
+ public bool Is16BitPipeline { get; set; }
}
diff --git a/src/ImageSharp/Formats/Heif/Hevc/HevcSliceSegmentHeader.cs b/src/ImageSharp/Formats/Heif/Hevc/HevcSliceSegmentHeader.cs
index d8c0032ba..de4956705 100644
--- a/src/ImageSharp/Formats/Heif/Hevc/HevcSliceSegmentHeader.cs
+++ b/src/ImageSharp/Formats/Heif/Hevc/HevcSliceSegmentHeader.cs
@@ -450,7 +450,7 @@ internal sealed class HevcSliceSegmentHeader
/// The decoded raw-byte-sequence payload offset.
/// The removed encoded-payload byte positions.
/// The encoded byte-sequence payload offset at the same syntax boundary.
- internal static int GetEncodedPayloadOffset(
+ public static int GetEncodedPayloadOffset(
int rbspOffset,
ReadOnlySpan emulationPreventionBytePositions)
{
@@ -474,7 +474,7 @@ internal sealed class HevcSliceSegmentHeader
/// The encoded byte-sequence payload offset.
/// The removed encoded-payload byte positions.
/// The decoded raw-byte-sequence payload offset at the same syntax boundary.
- internal static int GetDecodedPayloadOffset(
+ public static int GetDecodedPayloadOffset(
int encodedOffset,
ReadOnlySpan emulationPreventionBytePositions)
{