Beispiel #1
0
 private void DecodeDpcm_Click(object sender, RoutedEventArgs e)
 {
     lock (this)
     {
         DecodDpcm.Label = "Decodificando...";
         var task = Task.Run(async() =>
         {
             string folder        = (await StorageLibrary.GetLibraryAsync(KnownLibraryId.Music)).SaveFolder.Path;
             double[] decodedLeft = dpcmLib.DPCMDecoding(dpcmLeft, particao, codebook, PreditorLeft);
             //double[] decodedRight = dpcmLib.DPCMDecoding(dpcmRight, particao, codebook, PreditorRight);
             WavController.SaveWavFile(Path.Combine(folder, "Decodificado.wav"), decodedLeft, decodedLeft, 16, header);
             await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => DecodDpcm.Label = "Decodificar");
         });
     }
 }
Beispiel #2
0
        private void CodeDpcm_Click(object sender, RoutedEventArgs e)
        {
            lock (this)
            {
                CodDpcm.Label = "Codificando...";
                var task = Task.Run(async() =>
                {
                    string folder = (await StorageLibrary.GetLibraryAsync(KnownLibraryId.Music)).SaveFolder.Path;

                    header = WavController.OpenWavFile(Path.Combine(folder, "PCM_original.wav"), out left, out right);

                    dpcmLib.PreQuantizar(-1, 1, sizeQuantizer, out particao, out codebook);
                    double MsqLeft = dpcmLib.meansqr(left);
                    //double MsqRight = dpcmLib.meansqr(right);
                    PreditorLeft = dpcmLib.GerarPreditor(PreditorCorrelacoes.VozHumana, MsqLeft); // Coeficientes do preditor esquerdo
                    //PreditorRight = dpcmLib.GerarPreditor(PreditorCorrelacoes.VozHumana, MsqRight); // Coeficientes do preditor esquerdo

                    dpcmLeft = dpcmLib.DPCMEncoding(left, particao, codebook, PreditorLeft);
                    //dpcmRight = dpcmLib.DPCMEncoding(right, particao, codebook, PreditorRight);
                    WavController.SaveWavFile(Path.Combine(folder, "DPCM.wav"), dpcmLeft, dpcmLeft, 8, header);
                    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => CodDpcm.Label = "Codificar");
                });
            }
        }