當前位置:首頁 » 操作系統 » pps演算法

pps演算法

發布時間: 2022-05-09 15:56:15

⑴ 在linux 上,編寫一個每秒接收 100萬UDP數據包的程序究竟有多難

首先,我們假設:
測量每秒的數據包(pps)比測量每秒位元組數(Bps)更有意思。您可以通過更好的管道輸送以及發送更長數據包來獲取更高的Bps。而相比之下,提高pps要困難得多。
因為我們對pps感興趣,我們的實驗將使用較短的 UDP 消息。准確來說是 32 位元組的 UDP 負載,這相當於乙太網層的 74 位元組。
在實驗中,我們將使用兩個物理伺服器:「接收器」和「發送器」。
它們都有兩個六核2 GHz的 Xeon處理器。每個伺服器都啟用了 24 個處理器的超線程(HT),有 Solarflare 的 10G 多隊列網卡,有 11 個接收隊列配置。稍後將詳細介紹。
測試程序的源代碼分別是:udpsender、udpreceiver。
預備知識
我們使用4321作為UDP數據包的埠,在開始之前,我們必須確保傳輸不會被iptables干擾:

Shell

receiver$ iptables -I INPUT 1 -p udp --dport 4321 -j ACCEPT

receiver$ iptables -t raw -I PREROUTING 1 -p udp --dport 4321 -j NOTRACK

為了後面測試方便,我們顯式地定義IP地址:

Shell

receiver$ for i in `seq 1 20`; do

ip addr add 192.168.254.$i/24 dev eth2;

done

sender$ ip addr add 192.168.254.30/24 dev eth3

1. 簡單的方法
開始我們做一些最簡單的試驗。通過簡單地發送和接收,有多少包將會被傳送?
模擬發送者的偽代碼:

Python

fd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

fd.bind(("0.0.0.0", 65400)) # select source port to rece nondeterminism

fd.connect(("192.168.254.1", 4321))

while True:

fd.sendmmsg(["x00" * 32] * 1024)

因為我們使用了常見的系統調用的send,所以效率不會很高。上下文切換到內核代價很高所以最好避免它。幸運地是,最近Linux加入了一個方便的系統調用叫sendmmsg。它允許我們在一次調用時,發送很多的數據包。那我們就一次發1024個數據包。
模擬接受者的偽代碼:

Python

fd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
fd.bind(("0.0.0.0", 4321))
while True:
packets = [None] * 1024
fd.recvmmsg(packets, MSG_WAITFORONE)

同樣地,recvmmsg 也是相對於常見的 recv 更有效的一版系統調用。
讓我們試試吧:

Shell

sender$ ./udpsender 192.168.254.1:4321
receiver$ ./udpreceiver1 0.0.0.0:4321
0.352M pps 10.730MiB / 90.010Mb
0.284M pps 8.655MiB / 72.603Mb
0.262M pps 7.991MiB / 67.033Mb
0.199M pps 6.081MiB / 51.013Mb
0.195M pps 5.956MiB / 49.966Mb
0.199M pps 6.060MiB / 50.836Mb
0.200M pps 6.097MiB / 51.147Mb
0.197M pps 6.021MiB / 50.509Mb

測試發現,運用最簡單的方式可以實現 197k – 350k pps。看起來還不錯嘛,但不幸的是,很不穩定啊,這是因為內核在核之間交換我們的程序,那我們把進程附在 CPU 上將會有所幫助

Shell

sender$ taskset -c 1 ./udpsender 192.168.254.1:4321
receiver$ taskset -c 1 ./udpreceiver1 0.0.0.0:4321
0.362M pps 11.058MiB / 92.760Mb
0.374M pps 11.411MiB / 95.723Mb
0.369M pps 11.252MiB / 94.389Mb
0.370M pps 11.289MiB / 94.696Mb
0.365M pps 11.152MiB / 93.552Mb
0.360M pps 10.971MiB / 92.033Mb

現在內核調度器將進程運行在特定的CPU上,這提高了處理器緩存,使數據更加一致,這就是我們想要的啊!
2. 發送更多的數據包
雖然 370k pps 對於簡單的程序來說已經很不錯了,但是離我們 1Mpps 的目標還有些距離。為了接收更多,首先我們必須發送更多的包。那我們用獨立的兩個線程發送,如何呢:

Shell

sender$ taskset -c 1,2 ./udpsender
192.168.254.1:4321 192.168.254.1:4321
receiver$ taskset -c 1 ./udpreceiver1 0.0.0.0:4321
0.349M pps 10.651MiB / 89.343Mb
0.354M pps 10.815MiB / 90.724Mb
0.354M pps 10.806MiB / 90.646Mb
0.354M pps 10.811MiB / 90.690Mb

接收一端的數據沒有增加,ethtool –S 命令將顯示數據包實際上都去哪兒了:

Shell

receiver$ watch 'sudo ethtool -S eth2 |grep rx'
rx_nodesc_drop_cnt: 451.3k/s
rx-0.rx_packets: 8.0/s
rx-1.rx_packets: 0.0/s
rx-2.rx_packets: 0.0/s
rx-3.rx_packets: 0.5/s
rx-4.rx_packets: 355.2k/s
rx-5.rx_packets: 0.0/s
rx-6.rx_packets: 0.0/s
rx-7.rx_packets: 0.5/s
rx-8.rx_packets: 0.0/s
rx-9.rx_packets: 0.0/s
rx-10.rx_packets: 0.0/s

通過這些統計,NIC 顯示 4 號 RX 隊列已經成功地傳輸大約 350Kpps。rx_nodesc_drop_cnt 是 Solarflare 特有的計數器,表明NIC發送到內核未能實現發送 450kpps。
有時候,這些數據包沒有被發送的原因不是很清晰,然而在我們這種情境下卻很清楚:4號RX隊列發送數據包到4號CPU,然而4號CPU已經忙不過來了,因為它最忙也只能讀350kpps。在htop中顯示為:

多隊列 NIC 速成課程
從歷史上看,網卡擁有單個RX隊列,用於硬體和內核之間傳遞數據包。這樣的設計有一個明顯的限制,就是不可能比單個CPU處理更多的數據包。
為了利用多核系統,NIC開始支持多個RX隊列。這種設計很簡單:每個RX隊列被附到分開的CPU上,因此,把包送到所有的RX隊列網卡可以利用所有的CPU。但是又產生了另一個問題:對於一個數據包,NIC怎麼決定把它發送到哪一個RX隊列?

用 Round-robin 的方式來平衡是不能接受的,因為這有可能導致單個連接中數據包的重排序。另一種方法是使用數據包的hash值來決定RX號碼。Hash值通常由一個元組(源IP,目標IP,源port,目標port)計算而來。這確保了從一個流產生的包將最終在完全相同的RX隊列,並且不可能在一個流中重排包。
在我們的例子中,hash值可能是這樣的:

Shell

1

RX_queue_number = hash('192.168.254.30', '192.168.254.1', 65400, 4321) % number_of_queues

多隊列 hash 演算法
Hash演算法通過ethtool配置,設置如下:

Shell

receiver$ ethtool -n eth2 rx-flow-hash udp4
UDP over IPV4 flows use these fields for computing Hash flow key:
IP SA
IP DA

對於IPv4 UDP數據包,NIC將hash(源 IP,目標 IP)地址。即

Shell

1

RX_queue_number = hash('192.168.254.30', '192.168.254.1') % number_of_queues

這是相當有限的,因為它忽略了埠號。很多NIC允許自定義hash。再一次,使用ethtool我們可以選擇元組(源 IP、目標 IP、源port、目標port)生成hash值。

Shell

receiver$ ethtool -N eth2 rx-flow-hash udp4 sdfn
Cannot change RX network flow hashing options: Operation not supported

不幸地是,我們的NIC不支持自定義,我們只能選用(源 IP、目的 IP) 生成hash。
NUMA性能報告
到目前為止,我們所有的數據包都流向一個RX隊列,並且一個CPU。我們可以借這個機會為基準來衡量不同CPU的性能。在我們設置為接收方的主機上有兩個單獨的處理器,每一個都是一個不同的NUMA節點。
在我們設置中,可以將單線程接收者依附到四個CPU中的一個,四個選項如下:
另一個CPU上運行接收器,但將相同的NUMA節點作為RX隊列。性能如上面我們看到的,大約是360 kpps。
將運行接收器的同一 CPU 作為RX隊列,我們可以得到大約430 kpps。但這樣也會有很高的不穩定性,如果NIC被數據包所淹沒,性能將下降到零。
當接收器運行在HT對應的處理RX隊列的CPU之上,性能是通常的一半,大約在200kpps左右。
接收器在一個不同的NUMA節點而不是RX隊列的CPU上,性能大約是330 kpps。但是數字會不太一致。
雖然運行在一個不同的NUMA節點上有10%的代價,聽起來可能不算太壞,但隨著規模的變大,問題只會變得更糟。在一些測試中,每個核只能發出250 kpps,在所有跨NUMA測試中,這種不穩定是很糟糕。跨NUMA節點的性能損失,在更高的吞吐量上更明顯。在一次測試時,發現在一個壞掉的NUMA節點上運行接收器,性能下降有4倍。
3.多接收IP
因為我們NIC上hash演算法的限制,通過RX隊列分配數據包的唯一方法是利用多個IP地址。下面是如何將數據包發到不同的目的IP:

1

sender$ taskset -c 1,2 ./udpsender 192.168.254.1:4321 192.168.254.2:4321

ethtool 證實了數據包流向了不同的 RX 隊列:

Shell

receiver$ watch 'sudo ethtool -S eth2 |grep rx'
rx-0.rx_packets: 8.0/s
rx-1.rx_packets: 0.0/s
rx-2.rx_packets: 0.0/s
rx-3.rx_packets: 355.2k/s
rx-4.rx_packets: 0.5/s
rx-5.rx_packets: 297.0k/s
rx-6.rx_packets: 0.0/s
rx-7.rx_packets: 0.5/s
rx-8.rx_packets: 0.0/s
rx-9.rx_packets: 0.0/s
rx-10.rx_packets: 0.0/s

接收部分:

Shell

receiver$ taskset -c 1 ./udpreceiver1 0.0.0.0:4321
0.609M pps 18.599MiB / 156.019Mb
0.657M pps 20.039MiB / 168.102Mb
0.649M pps 19.803MiB / 166.120Mb

萬歲!有兩個核忙於處理RX隊列,第三運行應用程序時,可以達到大約650 kpps !
我們可以通過發送數據到三或四個RX隊列來增加這個數值,但是很快這個應用就會有另一個瓶頸。這一次rx_nodesc_drop_cnt沒有增加,但是netstat接收到了如下錯誤:

Shell

receiver$ watch 'netstat -s --udp'
Udp:
437.0k/s packets received
0.0/s packets to unknown port received.
386.9k/s packet receive errors
0.0/s packets sent
RcvbufErrors: 123.8k/s
SndbufErrors: 0
InCsumErrors: 0

這意味著雖然NIC能夠將數據包發送到內核,但是內核不能將數據包發給應用程序。在我們的case中,只能提供440 kpps,其餘的390 kpps + 123 kpps的下降是由於應用程序接收它們不夠快。
4.多線程接收
我們需要擴展接收者應用程序。最簡單的方式是利用多線程接收,但是不管用:

Shell

sender$ taskset -c 1,2 ./udpsender 192.168.254.1:4321 192.168.254.2:4321
receiver$ taskset -c 1,2 ./udpreceiver1 0.0.0.0:4321 2
0.495M pps 15.108MiB / 126.733Mb
0.480M pps 14.636MiB / 122.775Mb
0.461M pps 14.071MiB / 118.038Mb
0.486M pps 14.820MiB / 124.322Mb

接收性能較於單個線程下降了,這是由UDP接收緩沖區那邊的鎖競爭導致的。由於兩個線程使用相同的套接字描述符,它們花費過多的時間在UDP接收緩沖區的鎖競爭。這篇論文詳細描述了這一問題。
看來使用多線程從一個描述符接收,並不是最優方案。
5. SO_REUSEPORT
幸運地是,最近有一個解決方案添加到 Linux 了 —— SO_REUSEPORT 標志位(flag)。當這個標志位設置在一個套接字描述符上時,Linux將允許許多進程綁定到相同的埠,事實上,任何數量的進程將允許綁定上去,負載也會均衡分布。
有了SO_REUSEPORT,每一個進程都有一個獨立的socket描述符。因此每一個都會擁有一個專用的UDP接收緩沖區。這樣就避免了以前遇到的競爭問題:

Shell

1
2
3
4

receiver$ taskset -c 1,2,3,4 ./udpreceiver1 0.0.0.0:4321 4 1
1.114M pps 34.007MiB / 285.271Mb
1.147M pps 34.990MiB / 293.518Mb
1.126M pps 34.374MiB / 288.354Mb

現在更加喜歡了,吞吐量很不錯嘛!
更多的調查顯示還有進一步改進的空間。即使我們開始4個接收線程,負載也會不均勻地分布:

兩個進程接收了所有的工作,而另外兩個根本沒有數據包。這是因為hash沖突,但是這次是在SO_REUSEPORT層。
結束語
我做了一些進一步的測試,完全一致的RX隊列,接收線程在單個NUMA節點可以達到1.4Mpps。在不同的NUMA節點上運行接收者會導致這個數字做多下降到1Mpps。
總之,如果你想要一個完美的性能,你需要做下面這些:
確保流量均勻分布在許多RX隊列和SO_REUSEPORT進程上。在實踐中,只要有大量的連接(或流動),負載通常是分布式的。
需要有足夠的CPU容量去從內核上獲取數據包。
To make the things harder, both RX queues and receiver processes should be on a single NUMA node.
為了使事情更加穩定,RX隊列和接收進程都應該在單個NUMA節點上。
雖然我們已經表明,在一台Linux機器上接收1Mpps在技術上是可行的,但是應用程序將不會對收到的數據包做任何實際處理——甚至連看都不看內容的流量。別太指望這樣的性能,因為對於任何實際應用並沒有太大用處。

⑵ PPS是哪個國家的軟體

PPS網路視頻(www.PPS.TV) 創辦於2006年1月,是全球最大的網路電視服務商。

2005年6月,PPS在雷量、張洪禹兩人的研發下,正式推出,立刻獲得了驚人的肯定,9月徐偉峰加入,正式進入了的商業運營並著手成立公司,三位聯合創始人從此成為互聯網影音視頻的領導者。PPS在創立的第一天就將自己定位成未來的互聯網電視平台,並願為此目標不懈的努力奮斗。

PPS一直致力於傾聽、挖掘與滿足中國網民的需求,秉承「用戶體驗至上」的理念,除PPS網路視頻播放器外,還提供影視網路、PPS看看、娛樂、社區、圖庫、影視調查等多樣化的產品及服務,率先創造了以影視網路為代表的社區,將無數網民頭腦中所有的影視需求融入了PPS。「PPS」已經成為了人們進行互聯網影視的代名詞。

PPS網路視頻目前已擁有30000套頻道節目,總安裝量已達4億,日活躍用戶達到1100-1200萬人,月活躍用戶超過1億,月收視時長突破600億分鍾,社區注冊用戶600萬,並穩居網路視頻第一。

創始人

雷量

上海眾源網路有限公司CEO,資深程序員,有著豐富的IT軟體研發實戰經驗。PPS網路視頻(PPStream軟體)創始人之一,曾與張洪禹共同編寫MP3 hunter等產品,多次獲得國內軟體評比第一名,備受業界關注和好評的同時也為中國互聯網視頻領域的探索與發展起到了積極的推廣作用。

張洪禹

上海眾源網路有限公司總裁CTO,資深程序員,有著豐富的IT軟體研發實戰經驗。PPS網路視頻(PPStream軟體)創始人之一,長期致力於互聯網軟體開發和網路傳輸技術演算法研究,2001年開始創業先後開發過:touchnet browser、MP3 hunter等產品,備受業界廣泛關注和好評的同時也為中國互聯網視頻領域的探索與發展起到了積極的推廣作用。

徐偉峰

上海眾源網路有限公司總裁,資深IT職業經理人,有著豐富的IT行業團隊運營及管理經驗。2002年起就涉足互聯網視頻相關領域,曾任ezpeer、reallusion等國內外公司大中華區負責人,有著非常豐富的IT行業團隊運營及管理經驗,在職業生涯中多次帶領團隊創下不俗戰績,對中國互聯網、視頻、P2P技術及相關內容、平台、媒體等角色均有多方的觀察,並於2005年9月參與PPS公司的創建,是PPS網路視頻創始人之一。

⑶ pps影音比特率400多kbps算高清嗎

MP3各項參數的意義 頻率(如44100Hz),比特(如16Bits),碼率(如128Kbps)
首先了解一下:音頻采樣

數碼音頻系統是通過將聲波波形轉換成一連串的二進制數據來再現原始聲音的,實現這個步驟使用的設備是模/數轉換器(A/D)它以每秒上萬次的速率對聲波進行采樣,每一次采樣都記錄下了原始模擬聲波在某一時刻的狀態,稱之為樣本。將一串的樣本連接起來,就可以描述一段聲波了,把每一秒鍾所采樣的數目稱為采樣頻率或采率,單位為HZ(赫茲)。采樣頻率越高所能描述的聲波頻率就越高。采樣率決定聲音頻率的范圍(相當於音調),可以用數字波形表示。以波形表示的頻率范圍通常被稱為帶寬。要正確理解音頻采樣可以分為采樣的位數和采樣的頻率。

1.頻率(如44100Hz):音頻采樣級別(音頻采樣頻率)

采樣位數可以理解為採集卡處理聲音的解析度。這個數值越大,解析度就越高,錄制和回放的聲音就越真實。我們首先要知道:電腦中的聲音文件是用數字0和1來表示的。所以在電腦上錄音的本質就是把模擬聲音信號轉換成數字信號。反之,在播放時則是把數字信號還原成模擬聲音信號輸出。採集卡的位是指採集卡在採集和播放聲音文件時所使用數字聲音信號的二進制位數。採集卡的位客觀地反映了數字聲音信號對輸入聲音信號描述的准確程度。8位代表2的8次方--256,16位則代表2的16次方--64K。比較一下,一段相同的音樂信息,16位音效卡能把它分為64K個精度單位進行處理,而8位音效卡只能處理256個精度單位,造成了較大的信號損失,最終的采樣效果自然是無法相提並論的。
如今市面上所有的主流產品都是16位的採集卡,而並非有些無知商家所鼓吹的64位乃至128位,他們將採集卡的復音概念與采樣位數概念混淆在了一起。如今功能最為強大的採集卡系列採用的EMU10K1晶元雖然號稱可以達到32位,但是它只是建立在Direct Sound加速基礎上的一種多音頻流技術,其本質還是一塊16位的音效卡。應該說16位的采樣精度對於電腦多媒體音頻而言已經綽綽有餘了。

2.比特(如16Bits):音頻采樣的位數

數碼音頻系統是通過將聲波波形轉換成一連串的二進制數據來再現原始聲音的,實現這個步驟使用的設備是模/數轉換器(A/D)它以每秒上萬次的速率對聲波進行采樣,每一次采樣都記錄下了原始模擬聲波在某一時刻的狀態,稱之為樣本。將一串的樣本連接起來,就可以描述一段聲波了,把每一秒鍾所采樣的數目稱為采樣頻率或采率,單位為HZ(赫茲)。采樣頻率越高所能描述的聲波頻率就越高。
采樣頻率是指錄音設備在一秒鍾內對聲音信號的采樣次數,采樣頻率越高聲音的還原就越真實越自然。在當今的主流採集卡上,采樣頻率一般共分為22.05KHz、44.1KHz、48KHz三個等級,22.05 KHz只能達到FM廣播的聲音品質,44.1KHz則是理論上的CD音質界限,48KHz則更加精確一些。對於高於48KHz的采樣頻率人耳已無法辨別出來了,所以在電腦上沒有多少使用價值。
5kHz的采樣率僅能達到人們講話的聲音質量。
11kHz的采樣率是播放小段聲音的最低標准,是CD音質的四分之一。
22kHz采樣率的聲音可以達到CD音質的一半,目前大多數網站都選用這樣的采樣率。
44kHz的采樣率是標準的CD音質,可以達到很好的聽覺效果。

3.碼率(如128Kbps):碼率就是比特率的另一種叫法,也叫位速

比特是二進制單位,就是位元組,8位二進制為1比特。位速是指在一個數據流中每秒鍾能通過的信息量。您可能看到過音頻文件用 「128–Kbps MP3」 或 「64–Kbps WMA」 進行描述的情形。Kbps 表示 「每秒千位元組數」,因此數值越大表示數據越多:128–Kbps MP3 音頻文件包含的數據量是 64–Kbps WMA 文件的兩倍,並佔用兩倍的空間。(不過在這種情況下,這兩種文件聽起來沒什麼兩樣。原因是什麼呢?有些文件格式比其他文件能夠更有效地利用數據,64–Kbps WMA 文件的音質與 128–Kbps MP3 的音質相同。)需要了解的重要一點是,位速越高,信息量越大,對這些信息進行解碼的處理量就越大,文件需要佔用的空間也就越多。
為項目選擇適當的位速取決於播放目標:如果您想把製作的 VCD 放在 DVD 播放器上播放,那麼視頻必須是 1150 Kbps,音頻必須是 224 Kbps。典型的 206 MHz Pocket PC 支持的 MPEG 視頻可達到 400 Kbps—超過這個限度播放時就會出現異常。

VBR(Variable Bitrate)動態比特率。也就是沒有固定的比特率,壓縮軟體在壓縮時根據音頻數據即時確定使用什麼比特率。這是Xing發展的演算法,他們將一首歌的復雜部分用高Bitrate編碼,簡單部分用低Bitrate編碼。主意雖然不錯,可惜Xing編碼器的VBR演算法很差,音質與CBR相去甚遠。幸運的是,Lame完美地優化了VBR演算法,使之成為MP3的最佳編碼模式。這是以質量為前提兼顧文件大小的方式,推薦編碼模式。

ABR(Average Bitrate)平均比特率,是VBR的一種插值參數。Lame針對CBR不佳的文件體積比和VBR生成文件大小不定的特點獨創了這種編碼模式。ABR也被稱為「Safe VBR」,它是在指定的平均Bitrate內,以每50幀(30幀約1秒)為一段,低頻和不敏感頻率使用相對低的流量,高頻和大動態表現時使用高流量。舉例來說,當指定用192kbps ABR對一段wav文件進行編碼時,Lame會將該文件的85%用192kbps固定編碼,然後對剩餘15%進行動態優化:復雜部分用高於192kbps來編碼、簡單部分用低於192kbps來編碼。與192kbps CBR相比,192kbps ABR在文件大小上相差不多,音質卻提高不少。ABR編碼在速度上是VBR編碼的2到3倍,在128-256kbps范圍內質量要好於CBR。可以做為VBR和CBR的一種折衷選擇。

CBR(Constant Bitrate),常數比特率,指文件從頭到尾都是一種位速率。相對於VBR和ABR來講,它壓縮出來的文件體積很大,但音質卻不會有明顯的提高。
對MP3來說Bitrate是最重要的因素,它用來表示每秒鍾的音頻數據佔用了多少個bit(bit per second,簡稱bps)。這個值越高,音質就越好。

心理聲學音頻壓縮
心理聲學 一詞似乎很令人費解,其實很簡單,它就是指「人腦解釋聲音的方式」。壓縮音頻的所有形式都是用功能強大的演算法將我們聽不到的音頻信息去掉。例如,如果我扯著嗓子喊一聲,同時輕輕地踏一下腳,您就會聽到我的喊聲,但可能聽不到我踏腳的聲音。通過去掉踏腳聲,就會減少信息量,減小文件的大小,但聽起來卻沒有區別。

(附:心理視覺視頻壓縮
心理視覺視頻壓縮與和其對等的音頻壓縮相似。心理視覺模型去掉的不是我們聽不到的音頻數據,而是去掉眼睛不需要的視頻數據。假設有一個在 60 秒的時間內顯示位於同一位置的一把椅子的未經壓縮的視頻片段,在每幀圖像中,都將重復這把椅子的同一數據。如果使用了心理視覺壓縮,就會把一幀圖像中椅子的數據存儲下來,以在接下來的幀中使用。這種壓縮類型—叫做「統計數據冗餘」—是 WMV、MPEG 和其他視頻格式用於壓縮視頻並同時保持高質量的一種數學竅門。)

一首MP3音樂主要有這么幾個參數:頻率,比特,碼率,長度等。
要理解這些東西,還需要說到音樂文件是怎麼在計算機上存儲的。請看:

讓我們來看看一個很短的例子。要把自然界的模擬聲音變成計算機存儲的數字文件,需要進行模、數轉換。如果按CD質量保存,所以你以44.1KHz的采樣頻率,立體聲,每個采樣值16比特的方式進行采樣。44.1KHz意味著每秒鍾有44100個采樣值從你的聲音卡(或輸入文件)里出來。乘以2是因為你有兩個通道。再乘以2是因為每個采樣值有兩個位元組(這是16比特的意思)。那首歌總共會占據:

44100 (樣本值/秒) * 2(兩個通道)* 2(每樣本值兩個位元組)*60(每分鍾60秒) =10584000 (位元組)

壓縮率,比特率和質量

因為壓縮率是比較難以測量,專家們在談及壓縮的強度時使用術語比特率。比特率表示一秒的聲音數據會消耗的平均BITS的數量。這里的通常單位是KBPS,即每秒1000 BITS.

在CD上的數字音頻信號,比特率是1411.2KBPS。使用了MPEG-2ACC,如同CD音質的聲音質量可以達到96KBPS的比特率。

一首標準的MP3,頻率,比特,碼率這幾個參數的值一般都是這樣的:44100 Hz,16 Bits,128 Kbps.需要聲明的是比特和比特率是不一樣的概念:比特就是每個采樣值用幾比特的二進制代碼表示,一般都是8比特,因為是2個通道,所以是16比特。其中碼率就是比特率的另一種叫法。128Kbps的意思就是每秒鍾消耗128比特的存儲空間

說說立體聲吧:我們人的耳朵有兩個,當一個聲源發出聲音的時候,因為我們的兩只耳朵分別接受到聲音,而且因為聲音傳輸的距離不同,造成給兩只耳朵的感覺就不同,我們人就通過這二者的差別來判斷聲源的位置。如果只有一隻耳朵的話,那麼我們不能判斷聲源的位置,只能知道聲音的大小。立體聲音樂至少需要兩個通道,當然可以有很多個,來保存不同位置的聲音信息,我們聽起來就有一種身臨其境的感覺。如果我們聽的是單聲道音樂,給我們的感覺就是聲源始終在我們腦袋中間位置。假如你玩立體聲的射擊游戲,你可以真實的感覺子彈是從哪裡打到你身上。

flv轉換mp3或者錄制MP3的時候,只有比特這個參數影響生成文件的大小,所以采樣率盡量選高點吧,聲音層次感更清楚。

⑷ 比特幣礦池有什麼差別

主要是獲得的比特幣分配模式不同:根據運營模式,常見的比特幣礦池有如下幾種:PPLNS、PPS、DGM、P2Pool等

PPLNS:(最純正的組隊挖礦)全稱Pay Per Last N Shares,意思是說「根據過去的N個股份來支付收益」,這意味著,所有的礦工一旦發現了一個區塊,大家將根據每個人自己貢獻的股份數量佔比來分配區塊中的貨幣。(share就是股份的意思)

在PPLNS模式下,運氣成份非常重要,如果礦池一天能夠發現很多個區塊,那麼大家的分紅也會非常多,如果礦池一天下來都沒有能夠發現區塊,那麼大家也就沒有任何收益。

PPS:Pay-Per-Share方式---該方式為立即為每一個share支付報酬。該支出來源於礦池現有的比特幣資金,因此可以立即取現,而不用等待區塊生成完畢或者確認。這樣可以避免礦池運營者幕後操縱。這中方法減少了礦工的風險,但將風險轉移給了礦池的運營者。運營者可以收取手續費來彌補這些風險可能造成的損失。

為了解決PPLNS那種有時候收益很高,有時候沒有收益的情況,PPS採用了新的演算法。PPS根據你的算力在礦池中的佔比,並估算了礦池每天可以獲得的礦產,給你每天基本固定的收益。

怎麼樣,有沒有感覺這就是一個穩定的工作?實際上,PPS模式的礦池為了避免虧本風險,往往會收取7%-8%的高額手續費。

DGM:Double Geometric Method. 雙幾何制. 結合了 PPLNS 和幾何獎勵類型, 使得礦池運營者能規避一部分風險. 礦池運營者在短期內收取部分挖出的貨幣, 然後在之後以正規化過的值返還給礦工,像電容充放電, 運氣好每 block 少給你點, 運氣差多給你點。

175btc:175btc的挖礦節點工作在類似比特幣區塊鏈的一種shares鏈上。由於沒有中心,所以也不會受到DoS攻擊。和其他現有的礦池技術都不一樣---每個節點工作的區塊,都包括支付給前期shares的所有者以及該節點自己的比特幣。99%的獎勵(50BTC+交易費用)會平均分給礦工,另外0.5%會獎勵給生成區塊的人。

比特幣之家網有詳細的介紹。

⑸ spass可以做因果分析嗎

最優秀的統計分析軟體之一。SPSS的全稱是:Statistical Program for Social Sciences,即社會科學統計程序。該軟體是公認的最優秀的統計分析軟體包之一。SPSS原是為大型計算機開發的,其版本為SPSSx.Spss是著名的綜合性統計軟體,SPSS軟體面向行業應用人員,軟體設計突出統計方法的成熟、實用、易用性、界面易操作性及與文字處理軟體等的交互性上

SPSS 13版新增功能介紹
1.增強的數據管理功能
在10版以後,SPSS的每個新增版本都會對數據管理功能作一些改進,以使用戶的使用更為方便。13版中的改進可能主要有以下幾個方面:

1)超長變數名:在12版中,變數名已經最多可以為64個字元長度,13版中可能還要大大放寬這一限制,以達到對當今各種復雜數據倉庫更好的兼容性。

2)改進的Autorecode過程:該過程將可以使用自動編碼模版,從而用戶可以按自定義的順序,而不是默認的ASCII碼順序進行變數值的重編碼。另外,Autorecode過程將可以同時對多個變數進行重編碼,以提高分析效率。

3)改進的日期/時間函數:本次的改進將集中在使得兩個日期/時間差值的計算,以及對日期變數值的增減更為容易上。

2.更完善的結果報告功能
從10版起,對數據和結果的圖表呈現功能一直是SPSS改進的重點。在12版中,SPSS推出了全新的常規圖功能,報表功能也達到了比較完善的地步。13版將針對使用中出現的一些問題,以及用戶的需求對圖表功能作進一步的改善。

1)統計圖:在經過一年的使用後,新的常規圖操作界面已基本完善,本次的改進除使得操作更為便捷外,還突出了兩個重點。首先在常規圖中引入更多的交互圖功能,如圖組(Paneled charts),帶誤差線的分類圖形如誤差線條圖和線圖,三維效果的簡單、堆積和分段餅圖等。其次是引入幾種新的圖形,目前已知的有人口金字塔和點密度圖兩種。

2)統計表:幾乎全部過程的輸出都將會棄用文本,改為更美觀的樞軸表。而且樞軸表的表現和易用性會得到進一步的提高,並加入了一些新的功能,如可以對統計量進行排序、在表格中合並/省略若干小類的輸出等。此外,樞軸表將可以被直接導出到PowerPoint中,這些無疑都方便了用戶的使用。

3.為Complex Samples模塊增加統計建模功能:
Complex Samples是12版中新增的模塊,用於實現復雜抽樣的設計方案,以及對相應的數據進行描述。但當時並未提供統計建模功能。在13版中,這將會有很大的改觀。一般線形模型將會被完整地引入復雜抽樣模塊中,以實現對復雜抽樣研究中各種連續性變數的建模預測功能,例如對市場調研中的客戶滿意度數據進行建模。對於分類數據,Logistic回歸則將會被系統的引入。這樣,對於一個任意復雜的抽樣研究,如多階段分層整群抽樣,或者更復雜的PPS抽樣,研究者都可以在該模塊中輕松的實現從抽樣設計、統計描述到復雜統計建模以發現影響因素的整個分析過程,方差分析模型、線形回歸模型、Logistic回歸模型等復雜的統計模型都可以加以使用,而操作方式將會和完全隨機抽樣數據的分析操作沒有什麼差別。可以預見,該模塊的推出將會大大促進國內對復雜抽樣時統計推斷模型的正確應用。

4.新增的Classification Tree模塊:

這個模塊實際上就是將以前單獨發行的SPSS AnswerTree軟體整合進了SPSS平台。筆者幾年前在自己的網站上介紹SPSS 11的新功能時,曾經很尖銳地指出SPSS目前的產品線過於分散,應當把各種功能較單一的小軟體,如AnswerTree、Sample Power等整合到SPSS等幾個平台上去。看來SPSS公司也意識到了這一點,而AnswerTree就是在此背景下第一個被徹底整合的產品。

Classification Tree模塊基於數據挖掘中發展起來的樹結構模型對分類變數或連續變數進行預測,可以方便、快速的對樣本進行細分,而不需要用戶有太多的統計專業知識。目前在市場細分和數據挖掘中有較廣泛的應用。現在已知該模塊提供了CHAID、Exhaustive CHAID和C&RT三種演算法,在AnswerTree中提供的QUEST演算法尚不能肯定是否會被納入。

為了方便新老用戶的使用,Tree模塊在操作方式上不再使用AnswerTree中的向導方式,而是SPSS近兩年開始採用的互動式選項卡對話框。但是,整個選項卡界面的內容實際上是和原先的向導基本一致的,另外,模型的結果輸出仍然是AnswerTree中標準的樹形圖,這使得AnswerTree的老用戶基本上不需要專門的學習就能夠懂得如何使用該模塊。

由於樹結構模型的方法體系和傳統的統計方法完全不同,貿然引入可能會引起讀者統計方法體系的混亂。為此,本次編寫的高級教程並未介紹該模塊,而將在高級教程的下一個版本,以及關於市場細分問題的教材中對其加以詳細介紹。

5.更好的SPSS系列產品兼容性
隨著自身產品線的不斷完善,SPSS公司的產品體系已經日益完整,而不同產品間的互補和兼容性也在不斷加以改進。在13版中,SPSS軟體已經可以和其他一些最新的產品很好的整合在一起,形成更為完整的解決方案。例如,SPSS、SPSS Data Entry和新發布的SPSS Text Analysis for Surveys一起就形成了對調查研究的完整解決方案。而新增的SPSS Classification Trees模塊將使得SPSS軟體本身就能夠針對市場細分工作提供更為完整的方法體系。

⑹ linux內核的pps驅動有什麼用

1,如果你只是寫驅動,那麼沒必要專門學內核,在你以後的實際工作中(寫驅動的過程中),你會接觸內核的方方面面。那時你可以從點到面,不自覺的就對內核有了新的認識。
2,內核的學習比單獨的驅動的學習復雜的多,光內存管理的各種演算法就夠你喝一壺的。如果你真決心啃這塊骨頭,做好心理准備,不要期望1,2個月就能把它搞定。

⑺ 華為PPS是什麼

華為PPS首批核心代理揭曉,雲動助力共建營銷新生態
2018年10月18日,由華為終端雲服務舉辦的生態合作夥伴策略溝通會在北京正式召開。經過一系列深入探討,與會各方對數字營銷行業的前景均表達出堅定的信心,並認為以華為的優質資源為基礎,經過大家的共同努力,能夠在該領域內完成革命性意義的突破。
經過華為為期數月的考核評選,首批PPS核心代理商評選結果揭曉,雲動時代憑借專業的數字營銷團隊、領域內創新優勢及應用實踐,正式成為華為核心推廣合作夥伴。作為中國領先的手機生態營銷服務商,雲動時代與去哪兒、網路、新浪、位元組跳動等互聯網領軍企業歡聚一堂,共論數字營銷行業未來。

⑻ pps網路電視是什麼時候開始的,有人說2007年

PPS網路視頻(www.PPS.TV) 創辦於2006年1月,是全球最大的網路視頻軟體服務運營商。
2005年6月,PPS在雷量、張洪禹兩人的研發下,正式推出,立刻獲得了驚人的肯定,9月徐偉峰加入,正式進入了的商業運營並著手成立公司,三位聯合創始人從此成為互聯網影音視頻的領導者。PPS在創立的第一天就將自己定位成未來的互聯網電視平台,並願為此目標不懈的努力奮斗。
PPS網路視頻目前已擁有6000套頻道節目,總安裝量已達3.5億,日活躍用戶達到1100-1200萬人,月活躍用戶超過1億,月收視時長突破600億分鍾,社區注冊用戶500萬,並穩居網路視頻第一。
創始人:

雷量
上海眾源網路有限公司CEO,資深程序員,有著豐富的IT軟體研發實戰經驗。PPS網路視頻(PPStream軟體)創始人之一,曾與張洪禹共同編寫MP3 hunter等產品,多次獲得國內軟體評比第一名,備受業界關注和好評的同時也為中國互聯網視頻領域的探索與發展起到了積極的推廣作用。

張洪禹
上海眾源網路有限公司總裁CTO,資深程序員,有著豐富的IT軟體研發實戰經驗。PPS網路視頻(PPStream軟體)創始人之一,長期致力於互聯網軟體開發和網路傳輸技術演算法研究,2001年開始創業先後開發過:touchnet browser、MP3 hunter等產品,備受業界廣泛關注和好評的同時也為中國互聯網視頻領域的探索與發展起到了積極的推廣作用。

徐偉峰
上海眾源網路有限公司總裁,資深IT職業經理人,有著豐富的IT行業團隊運營及管理經驗。2002年起就涉足互聯網視頻相關領域,曾任ezpeer、reallusion等國內外公司大中華區負責人,有著非常豐富的IT行業團隊運營及管理經驗,在職業生涯中多次帶領團隊創下不俗戰績,對中國互聯網、視頻、P2P技術及相關內容、平台、媒體等角色均有多方的觀察,並於2005年9月參與PPS公司的創建,是PPS網路視頻創始人之一。

⑼ pps抽樣中有一個項目被選2次怎麼辦

PPS抽樣技術在審計實務中的具體運用現代審計的一個重要特點是充分運用現代經濟統計技術和方法,以抽樣審查代替全面審查,以提高審計效率,保證審計質量,降低審計風險。在內部審計發展的初期,大多審計人員在審計實踐中基本上採用全面詳查的方法,對所有經濟業務和會計憑證進行具體核查。而在企業生產不斷發展,經營規模不斷擴大,經濟業務量急劇增長的情況下,無論是從審計成本還是從審計時間上考慮,具體審計必將存在一定的困難。隨著內部審計的發展,審計人員逐步在工作中運用審計抽樣技術,規范審計抽樣工作,提高審計抽樣工作的質量。各國都相繼制訂了審計抽樣准則。美國於1981年頒布了審計准則公告第39號審計抽樣;我國於1996年制訂並發布了《獨立審計具體准則第4號—審計抽樣》。根據我國《獨立審計具體准則第4號—審計抽樣》的表述,抽樣審計是審計師在實施審計程序時,從審計對象總體中選取一定數量的樣本進行測試,並根據測試結果推斷總體特徵。一、運用抽樣審計的必要性。社會經濟發展的需要。內部審計產生初期,社會經濟活動不復雜,企業規模小,其記錄經濟業務的會計資料不太多,但隨著市場經濟的發展和社會生產力的提高,企業規模不斷擴大,其經濟業務不斷增多,且日益多樣化,尤其是集團公司和跨國公司的出現,使經濟業務和會計記錄不斷增多和日趨復雜,審計人員要對所有的經濟業務和會計記錄進行全面的詳查要耗費大量的時間和人力物力,不僅成本太高而且非常困難。審計技術和方法要適應社會生產力的發展,審計抽樣技術得以產生和發展。符合成本和效益的原則。根據審計的重要性原則,審計人員並不需要對所有的經濟業務進行全面的判定,只要能恰當的運用審計抽樣技術,通過對局部的樣本進行審查,便可推斷總體特徵,可在有限的審計資源條件限制下,收集充分、恰當的審計證據,以形成和支持審計結論。審計結論可靠性高。統計抽樣是根據經濟統計數學概率論的原理科學地確定抽樣規模,其抽樣風險是可預知的,也是可控制的,樣本按隨機方法選出,較少主觀的因素,其樣本結果客觀地反映總體特性,抽樣結果的有效性不受審計人員的經驗和職業判定能力影響,因而其結果更科學、更可靠,但不能認為統計抽樣就不需要審計人員的專業判定,對於審計抽樣對象確定、估計誤差率等均需要審計人員運用個人經驗和職業判定。二、抽樣審計的特點:抽樣審計不同於具體審計。具體審計是指百分百地審計對象總體中的全部項目,並根據審計結果形成審計意見。而抽樣審計是從審計對象總體根據統計原理選取部分樣本進行審計,並根據樣本推斷總體並發表審計意見。審計抽樣不能等同於抽查。抽查作為一種技術,可以用於審前調查、確定審計重點、取得審計證據,在使用中無嚴格要求。而審計抽樣作為一種審計方法,需運用統計原理,並嚴格按規定的程序和抽樣方法的要求實施。抽樣審計一般可用於逆查、順查、函證等審計程序,也可用於符合性測試和實質性測試;但審計師在進行詢問、觀察、分析性復核時則不宜運用審計抽樣。三、運用統計抽樣技術需要考慮的問題。按審計所了解的總體特徵不同分為屬性抽樣和變數抽樣。屬性抽樣常用於企業內部控制制度的符合性測試,其目的是確定被企業內部控制制度的有效程度,一般分為固定樣本抽樣、停一走抽樣和發現抽樣。變數抽樣常用於企業會計表帳戶余額的實質性測試,其目的是確定資產或負債項目的誤差,一般分單位平均數推演算法、差額估演算法、比率估演算法和貨幣單位抽樣法。關注審計風險。審計風險就是通過審計抽樣所得出的審計結論不能完整反映總體情況的不確定性。風險分為固有風險、控制風險和檢查風險,而審計抽樣與控制風險和檢查風險相關。控制風險是指內部控制不能防止或發現會計表中重要錯的風險;檢查風險則是指審計人員不能正確評估表數額的風險。在符合性測試中運用抽樣技術,可為審計人員提供直接與評價控制風險的有關信息;在實質性測試中運用抽樣技術,可幫助審計人員量化檢查風險。降低抽樣風險。抽樣風險是可能出現的抽樣導出的審計結論與被審總體特徵不相符的可能性,它與由於審計人員採用不恰當的審計程序和方法或誤解審計證據等原因而帶來的非抽樣風險的性質不同。抽樣風險分為二類:一是信賴不足風險,指抽樣結果表明樣本項目存在的問題或差錯的比例大於被審總體實際存在的問題或差錯的比例,它會導致審計人員執行額外的審計程序,降低審計效率。二是信賴過度風險指抽樣結果表明樣本項目存在的問題或差錯的比例小於被審總體實際存在的問題或差錯的比例,這將導致審計人員形成不正確的審計結論。信賴過度風險對內部審計人員來說是最危險的風險,它將使審計無法達到預期的效果。了解抽樣方法的適用范圍。審計抽樣預備為一種現代審計方法,並不適用於所有的項目審計,當審計對象總體中的項目都很重要、被審計的項目具有較大的審計風險、或從成本效益考慮並不有利時,一般不應採用審計抽樣的方法。審計師在確定審計對象時,應充分考慮其相關性和完整性;相關性是指審計對象總體必須符合具體的審計目標;完整性是指在選取審計總體時須包括為實現審計目標所涉及的所有項目。審計風險較大的項目宜採取詳查方法,對審計內容較多、審計風險相對較小的項目宜採取抽樣審計,並結合分析性復核手段,將審計風險降至最低。這其中的關鍵在根據各種抽樣方法的特點,做好抽樣樣本的設計,主要根據審計經驗做好審計誤差、評估抽樣風險、確定總體誤差等設計工作。統計抽樣技術的運用必須以企業有健全的內部控制制度為前提,企業具有健全的內部控制制度,則經濟活動中發生的錯誤和弊端的可能性必會減少,即使發生了錯誤和弊端也能迅速發現;但統計抽樣要求審計人員有較多的抽樣專業知識,並需要較為繁復的計算和處理,目前隨著計算機技術的發展,已有專門的抽樣軟體,利用計算機進行隨機抽樣,繁復的計算和處理可由計算機自動完成;盡管統計抽樣具有較多的優點,並解決了非統計抽樣難於解決的問題,但在某種情況下,判定抽樣仍有具運用的必要性。

熱點內容
csgo和永劫無間哪個配置要求高 發布:2024-10-08 18:20:47 瀏覽:48
43資料庫 發布:2024-10-08 18:19:20 瀏覽:816
svn伺服器不能訪問 發布:2024-10-08 18:18:36 瀏覽:984
壓縮面膜多少錢 發布:2024-10-08 18:18:01 瀏覽:539
徐州少兒編程培訓機構 發布:2024-10-08 17:52:29 瀏覽:389
c語言常用函數大全 發布:2024-10-08 17:46:33 瀏覽:410
win10怎麼取消啟動密碼 發布:2024-10-08 17:29:22 瀏覽:211
c圖像演算法 發布:2024-10-08 17:02:13 瀏覽:238
android上傳圖片php 發布:2024-10-08 16:48:44 瀏覽:996
陽湖醫院的wifi密碼是多少 發布:2024-10-08 16:43:31 瀏覽:763