public override Tile[] DoAction(Tile[] inputs)
        {
            Triplet <byte[, ]> output;

            this.Input = inputs;

            RFXPDecoderWrapper.YUVToRGB(inputs[0].GetMatrices <short>(), out output);

            Tile tile = Tile.FromMatrices <byte>(output);

            this.Result = new[] { tile };
            return(new[] { tile });
        }
        public override Tile[] DoAction(Tile[] inputs)
        {
            Triplet <short[, ]> output;

            this.Input = inputs;

            RFXPDecoderWrapper.InverseDWT(inputs[0].GetMatrices <short>(), UseReduceExtrapolate.Enabled, out output);

            Tile tile = Tile.FromMatrices <short>(output);

            this.Result = new[] { tile };
            return(new[] { tile });
        }
        public override Tile[] DoAction(Tile[] inputs)
        {
            Triplet <short[, ]> output;

            this.Input = inputs;

            QuantizationFactorsArray quants = (QuantizationFactorsArray)Parameters[Constants.PARAM_NAME_QUANT_FACTORS_ARRAY];

            RFXPDecoderWrapper.DeQuantization(inputs[0].GetMatrices <short>(), quants, UseReduceExtrapolate.Enabled, out output);

            Tile tile = Tile.FromMatrices <short>(output);

            this.Result = new[] { tile };
            return(new[] { tile });
        }
        public override Tile[] DoAction(Tile[] inputs)
        {
            Triplet <short[]> output;

            this.Input = inputs;

            QuantizationFactorsArray quants = (QuantizationFactorsArray)Parameters[Constants.PARAM_NAME_PROGRESSIVE_QUANTS];

            RFXPDecoderWrapper.ProgressiveDequantization(inputs[0].GetArrays <short>(), quants, UseReduceExtrapolate.Enabled, out output);

            Tile tile = Tile.FromArrays <short>(output);

            this.Result = new[] { tile };
            return(new[] { tile });
        }
        public override Tile[] DoAction(Tile[] inputs)
        {
            Triplet <short[]> output;

            this.Input = inputs;

            Frame           lastFrame  = (Frame)Parameters[Constants.PARAM_NAME_PREVIOUS_FRAME];
            EncodedTileType encodeType = (EncodedTileType)Parameters[Constants.PARAM_NAME_ENCODED_TILE_TYPE];

            Triplet <short[]> preTriplet = lastFrame == null ? null : lastFrame.Tile.GetArrays <short>();

            RFXPDecoderWrapper.SubBandDiffing(inputs[0].GetArrays <short>(), preTriplet, ParamUseDifferenceTile.Enabled, encodeType.Type, out output);

            Tile tile = Tile.FromArrays <short>(output);

            this.Result = new[] { tile };
            return(new[] { tile });
        }
        public override Tile[] DoAction(Tile[] inputs)
        {
            Triplet <short[]> output;

            this.Input = inputs;

            EncodedTileType encodeType = (EncodedTileType)Parameters[Constants.PARAM_NAME_ENCODED_TILE_TYPE];

            if (encodeType == null || encodeType.Type == EncodedTileType.EncodedType.Simpe || encodeType.Type == EncodedTileType.EncodedType.FirstPass)
            {
                RFXPDecoderWrapper.RLGRDecode(inputs[0].GetArrays <byte>(), Mode, UseReduceExtrapolate.Enabled, out output);
            }
            else
            {
                Frame DAS = (Frame)Parameters[Constants.PARAM_NAME_DAS];
                QuantizationFactorsArray quants    = (QuantizationFactorsArray)Parameters[Constants.PARAM_NAME_PROGRESSIVE_QUANTS];
                QuantizationFactorsArray preQuants = (QuantizationFactorsArray)Parameters[Constants.PARAM_NAME_PREVIOUS_PROGRESSIVE_QUANTS];
                RFXPDecoderWrapper.SRLDecode(inputs[0].GetArrays <byte>(), inputs[1].GetArrays <byte>(), quants, DAS.Tile.GetArrays <short>(), preQuants, UseReduceExtrapolate.Enabled, out output);
            }
            Tile tile = Tile.FromArrays <short>(output);

            this.Result = new[] { tile };
            return(new[] { tile });
        }