2012-11-26 28 views
7

Temel ses için paket kaybı gizleme yapan bir temel algoritma oluşturmaya çalışıyorum. Sadece eksik olan verileri sessizlikle değiştirmek istiyorum .. kitaptaki çekirdek sesi öğrenirken, yazar kayıpsız PCM'de sıfırın sessiz olduğunu söylüyor. VBR (yani sıkıştırılmış veri) oynuyorum mu diye merak ettim, sıfırları susturmak için yeterli olur mu? Mevcut kodundaçekirdek ses: sadece PCM ses için sessizlik sıfır eşdeğerdir?

.. Ben ses sıraya sıfırları taktığınızda .. aniden sıkışmaları (yani artık ses kuyruk callback'inde .. verileri tüketilen boşaltır) ve ben neden

+0

En popüler sıkıştırılmış biçimler için, eksik verilerin değiştirilmesi, sıkıştırmadan sonra susturmak için bir rampa ile söyleyin, tek sorun değildir. (Yeniden) Bırakma sonrasında sıkıştırılmış bir veri akışıyla senkronize etmek de büyük bir problemdir. Hiçbir yerde kod çözmeye başlayamazsınız ve verilerin herhangi bir anlam ifade etmesini sağlayamazsınız. – hotpaw2

cevap

3

merak ediyorum PCM ham kodlanmış örnektir. Tüm 0 (örnekler için imzalı verileri kullanırken) gerçekten sessizdir. (Aslında, tüm değerler sessizdir, ancak böyle bir DC ofset, filtrelenmemişse, amplifikatörünüze ve/veya hoparlörlere zarar verme potansiyeline sahiptir.)

Kayıp kodek ile sıkıştırdığınızda, sessizlik eklemek için önemsiz olmadığı bir dijital format girin. Bir dosyanın sonuna boş bayt eklemek için bir ZIP dosyasına veri eklemeyi düşünün. Bunları rasgele ZIP dosyasına eklemek kadar basit değildir.

Sıkıştırılmış bir dosyaya sessizlik eklemek isterseniz, uygun kod çözücüyü kullanarak bunu yapmanız gerekir. Daha sonra, bunu da önemsiz olmayan bit akışına sığdırmalısınız. Genellikle akış kareler tarafından bölünür, ancak bazı biçimlerde bu karelere bile bölünemezsiniz. MP3 ve AAC, daha önceki karelerde kullanılmayan verilerin daha sonra daha karmaşık kareleri kodlamak için kullanılabildiği ve dosyanın bölünmesini çok zorlaştıran bir rezervuar kullanır.

+0

Sıkıştırılmış veri formatını (MP3 veya AAC) PCM'ye çevirirseniz .. * o zaman sessizliği sıfırlar şeklinde eklersiniz. Bu doğru bir operasyon hakkı olmalıdır? – abbood

+0

Bu doğru. Yeniden sıkıştırmak isterseniz, seste ek kaliteyi kaybedeceğinizi unutmayın. – Brad

+0

yeniden sıkıştırmak gerekli olmayacaktır .. b/c ben sadece sıkıştırmak ve sonra sessiz parçaları eklemek sonra ben sadece müzik çalmak .. söyleniyor .. tek endişem gecikme olduğunu .. benim Uygulama gerçek zamanlı: bir telefon, ses paketlerini almalı ve senkronize olarak çalmalı diğer telefonlara müzik yayınlar. Eğer de-sıkıştırma zamanı sabitse .. bu sadece başlangıçta sabit bir tamponlama süresi ekleyecektir. Eğer değişken ise .. o zaman sorunum var – abbood

İlgili konular