常用的資料壓縮演算法有哪些?

時間 2021-05-12 01:49:04

1樓:斑智科技

作為一家從事汽車AI應用的大資料公司,在過去的三年,我們積累了300萬台車、10億段行程、150億公里、320億分鐘的超大資料規模,基於對這些海量資料的建模分析,我們服務於汽車生產研發,效能測試、智慧型排程、營銷、車險等應用場景。

在資料壓縮方面,由於資料量龐大,我們不得不嘗試更有效的壓縮方案以緩解壓力,最終我們的方案做到了100行GPS資料大小為%20CSV,50%Protobuf。整個資料壓縮方法包括列式壓縮、資料Int化、字首提取、混合編碼和邊界值處理方案。具體來說:

一、列式

列式壓縮可以把具有相同特徵的資料聚在一起,選擇最優的資料壓縮和處理方式。

二、資料Int化

資料使用Int型別的格式,可以最大化壓縮資料的位元組數。

三、字首提取

將gps資料和感測器資料中有大量相同資料字首,比如gps經緯度資料前4位基本不變,可以大幅度壓縮資料大小。

四、混合編碼

根據資料不同的特性,如波動性變化小,採用差值編碼;大量資料連續,採用RLE編碼;大量資料重複,採用字典編碼;資料的最大值不大,採用BitPacked編碼

五、邊界值處理

對gps和sensor資料,數字都是在一定範圍內波動,在採用差值編碼後,存在極值像0轉變,需要特殊處理。

2樓:潔西卡大姐姐

基本的分為兩大類:有損和無損。

有失真壓縮:主要是一些量化演算法,比如a率,u率,lloyds最優量化。

無失真壓縮:主要是一些編碼演算法,比如子帶編碼,差分編碼,哈夫曼編碼等。

另外時頻變換雖然沒壓縮效果,但是是很好的壓縮工具,比如fft,dct等。

最後就是壓縮感知稀疏重建等。

3樓:王開

資料壓縮分為有失真壓縮和無失真壓縮,其中有失真壓縮方法有兩種。

一種是行程編碼,即將原資料中連續出現的信源符號(行程)用乙個計數值(行程長度)和該信源符號來代替。舉個例子,資料段aaaaabbbbbccccdddd,經行程編碼壓縮後的結果為5a5b4c4d,壓縮比約為2:1。

另一種是哈夫曼編碼,根據信源符號出現的比率的分布特徵而進行壓縮編碼,在信源符號和編碼之間建立明確的一一對應的關係。哈夫曼編碼採用變長二進位制編碼,將出現比率高的信源符號用較短的編碼,而出現比率低的用較長編碼,從而實現資料壓縮。

ACM 中常用的演算法有哪些?

JamesZhao USACO裡面有這麼乙個介紹,這是針對IOI的,供樓主參考。Hal Burch conducted an analysis over spring break of 1999 and made an amazing discovery there are only 16 type...

C 的常用查詢演算法有哪些?

小王同學在積累 一 筆記 二 筆記目錄 演算法簡介 1.find 查詢元素 2.find if 按條件查詢元素 3.adjacent find 查詢相鄰重複元素 4.binary search 二分查詢法 5.cout 統計元素個數 6.count if 按條件統計元素個數 功能描述 查詢指定元素,...

C 的常用集合演算法有哪些?

小王同學在積累 一 筆記 二 筆記目錄 演算法簡介 1.set itersection 求兩個容器的交集 2.set union 求兩個容器的並集 3.set difference 求兩個容器的差集 功能描述 求兩個容器的交集。函式原型 set intersection iterator beg1,...