Bu program, yüksek oranda yedekli 2 bayt dizileri (görüntü gibi) aktarmak için yuva kullanır. Transfer oranı nispeten yüksek (10 Mbps) iken, diziler de yüksek oranda yedeklidir (örneğin, her sıra birkaç sonuç olarak benzer değerler içerebilir). zlib ve lz4'ü denedim ve sonuçlar ümit vericiydi, ancak yine de daha iyi bir sıkıştırma yöntemi olduğunu düşünüyorum ve lütfen lz4'teki gibi nispeten hızlı olması gerektiğini unutmayın. Baska öneri? satırlardaki veriler böylece azaltan bir kaynak/dizin harita oluşturup benzer iseYüksek oranda yedekli veri için hangi sıkıştırma algoritması kullanılır
cevap
Eğer kendi yaratabilecek önemli boyut, bu
Orijinal dosya gibi bir şey:
satır 1: 1212, 34, 45,1212,45,34,56,45,56
satır 2: 34,45,1212,78,54,87, ....
Kullanımdan farklı bir değer listesi oluşturabilirsiniz. değiştirmede,
34,45,54,56,78,87,1212
satır 1: 6,0,2,6,1,0, .....
bu% 30 veya daha fazla veri transferi üzerinde kurtaracak potantialy, ancak veri
ne kadar gereksiz bağlıdırİşte GÜNCELLEME
basit uygulama çizgi ile başlar eğer başlamak eğer, "i" siz ", dizini tam tersini alabilirim sadece alıcı son anda
std::set<int> uniqueValues
DataTable my2dData; //assuming 2d vector implementation
std::string indexMap;
std::string fileCompressed = "";
int Find(int value){
for(int i = 0; i < uniqueValues.size; ++i){
if(uniqueValues[i] == value) return i;
}
return -1;
}
//create list of unique values
for(int i = 0; i < my2dData.size; ++i){
for(int j = 0; j < my2dData[i].size; ++j){
uniqueValues.insert(my2dData[i][j]);
}
}
//create indexes
for(int i = 0; i < my2dData.size; ++i){
std::string tmpRow = "";
for(int j = 0; j < my2dData[i].size; ++j){
if(tmpRow == ""){
tmpRow = Find(my2dData[i][j]);
}
else{
tmpRow += "," + Find(my2dData[i][j]);
}
}
tmpRow += "\n\r";
indexMap += tmpRow;
}
//create file to transfer
for(int k = 0; k < uniqueValues.size; ++k){
if(fileCompressed == ""){
fileCompressed = "i: " + uniqueValues[k];
}
else{
fileCompressed += "," + uniqueValues[k];
}
}
fileCompressed += "\n\r\d:" + indexMap;
d "alırsın Veriler
Teşekkürler Fabrizio. Ben aklımda benzer bir şey var, Ancak, böyle bir yöntemi uygulamaya başlamadan önce, yedek olarak (belirtilen özel model ile) veri için tasarlanmış standart bir sıkıştırma algoritması arıyorum. – beebee
Sanırım @Fabrizio haklı, ama sanırım zlib senin de sorununun kabul edilebilir bir çözümü. Yüksek performans ile yüksek karmaşıklık arasındaki denge noktasını bulmanız gerekir. – Netherwire
bahsettiğiniz kütüphane oldukça iyi bir iş çıkarır, ancak herhangi bir genel amaçlı kütüphane tüm durumlar için en iyi olmayabilecek "genel" olarak uygulandığından, size verdiğim örnek .obj 3d veri dosyaları tarafından kullanılır biçimlendirmek için uzun sürmemelidir ve güçlüdür http://en.wikipedia.org/wiki/Wavefront_.obj_file – Sherlock
Sıkıştırmadan önce PNG algorithms for filtering image data'a bakmalısınız. Önceki değerlere dayanan bir 2D dizisinde değerlerin tahmin edilmesi için daha karmaşık yöntemlere başvurmak kolaydır. Tahminlerin iyi olduğu ölçüde, filtreleme sonraki sıkıştırma adımında dramatik gelişmeler sağlayabilir.
Verilerinizde bu filtreleri denemeniz ve daha sonra lz4'e beslemeniz gerekir.
Teşekkürler Mark, konseptini aldım ve komşu piksellerin konseptinin çevredeki 1 piksel komşularından daha fazla uzatılabileceğini düşünüyorum ... Her yöne n piksel penceresine sahip olmayı düşünüyorum. o zaman belki de 3 ... – beebee
filtre tipini kullanın, ancak n-1'in makul zaman içinde n'yi bulduğunu ve 2-kenarları ile ne yapacağını bilmiyorum ... – beebee
Kenarlar için diziyi sanki sıfırlarla çevrili. –
- 1. hangi şifreleme algoritması ask.fm'da kullanılır?
- 2. Şeffaf SQLite Veri Sıkıştırma
- 3. Yüksek sıklıkta kullanım için en hızlı levenshtein algoritması nedir?
- 4. C# SQL Server Compact Edition: Çok Yüksek Sıkıştırma Oranı
- 5. Veri sınıflandırması için makine öğrenme algoritması.
- 6. Yedekli OpenGL aramaları yapma
- 7. Bir zaman dizisinde bilinmeyen sayıda kümeyi tespit etmek için hangi veri kümeleme algoritması uygundur?
- 8. Yüksek Puan Veri Tabanı Ölçeklendiriliyor
- 9. Hangi karma algoritması en uzun çıkışı sağlıyor?
- 10. Hangi yerleşik .NET şifreleme algoritması en güvenlidir?
- 11. PostgreSQL'i ayrıştırmak için hangi dilbilgisi kullanılır?
- 12. Verilen durum için hangi konteyner kullanılır?
- 13. Fortune algoritması için sözde kod
- 14. Dairesel İlerleme Çubuğu İstenen oranda durmuyor
- 15. WinMerge, Yüksek DPI Windows ayarıyla nasıl kullanılır?
- 16. Mathematica antialiasing algoritması
- 17. SDCH sıkıştırma?
- 18. Sıkıştırma Zlib
- 19. lzma sıkıştırma
- 20. Şifreli NFS'de hangi şifre kullanılır?
- 21. Paylaşılan parametreleri iletmek için hangi uygulama functor kullanılır?
- 22. Sıkıştırma dosyaları
- 23. Kanonik LR (1) ayrıştırıcı kapanışlarını belirlemek için geçiş kapanması için Warshall algoritması nasıl kullanılır?
- 24. Google Veri Listesi API'ları kullanımdan kaldırıldıkça, Google siteleri için hangi API kullanılır?
- 25. MongoDB Yüksek hacimli veri üzerinde sırala
- 26. MySQL hangi sıralama algoritmalarını kullanır?
- 27. Eppstein'ın algoritması ve en kısa yollar için Yen algoritması
- 28. ASTC yazılımı için doku sıkıştırma/dekompresyon
- 29. org.springframework.mail için hangi artifakt?
- 30. Google PageSpeed & ImageMagick JPG sıkıştırma
"image-compression" etiketli mesaj verdiniz. Verileri bir görüntü akışı sıkıştırıyor mu? Eğer öyleyse ben ya Lossless Video/Image codec kullanın. – Aron
Veriler gerçek görüntüler değil, ancak resim gibi davranmak için gereken tüm gereksinimleri karşılıyorlar ve kayıpsız video kodeklerini inceledim, ancak veriler gerçek zamanlı olarak oluşturuluyor ve video kodekleri sıkıştırma aşamasında yavaş olma eğilimindedir. – beebee
[Bu makale] 'yi (https://www.usenix.org/legacy/event/fast11/tech/full_papers/Meyer.pdf) okumaya çalışın. – jxh