public static void RLGRDecode(Triplet <byte[]> input, EntropyAlgorithm mode, bool useReduceExtrapolate, out Triplet <short[]> output) { var outlist = new List <short[]>(); foreach (var component in input) { short[] decodedComponent; RFXDecoderWrapper.RLGRDecode(component, mode, out decodedComponent); ComputeOriginalLL3FromDeltas(decodedComponent, useReduceExtrapolate); outlist.Add(decodedComponent); } output = new Triplet <short[]>(outlist[0], outlist[1], outlist[2]); }
public static void InverseDWT(Triplet <short[, ]> input, bool useReduceExtrapolate, out Triplet <short[, ]> output) { output = new Triplet <short[, ]>(); output.X = (short[, ])input.X.Clone(); output.Y = (short[, ])input.Y.Clone(); output.Z = (short[, ])input.Z.Clone(); if (useReduceExtrapolate) { InverseDWT_Component(output.X); InverseDWT_Component(output.Y); InverseDWT_Component(output.Z); } else { short[,] x, y, z; RFXDecoderWrapper.InverseDWT(output.X, out x); RFXDecoderWrapper.InverseDWT(output.Y, out y); RFXDecoderWrapper.InverseDWT(output.Z, out z); output = new Triplet <short[, ]>(x, y, z); } }
public static void YUVToRGB(Triplet <short[, ]> input, out Triplet <byte[, ]> output) { byte[,] x, y, z; RFXDecoderWrapper.YUVToRGB(input.X, input.Y, input.Z, out x, out y, out z); output = new Triplet <byte[, ]>(x, y, z); }