当前位置:首页 » 操作系统 » 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号—审计抽样》的表述,抽样审计是审计师在实施审计程序时,从审计对象总体中选取一定数量的样本进行测试,并根据测试结果推断总体特征。一、运用抽样审计的必要性。社会经济发展的需要。内部审计产生初期,社会经济活动不复杂,企业规模小,其记录经济业务的会计资料不太多,但随着市场经济的发展和社会生产力的提高,企业规模不断扩大,其经济业务不断增多,且日益多样化,尤其是集团公司和跨国公司的出现,使经济业务和会计记录不断增多和日趋复杂,审计人员要对所有的经济业务和会计记录进行全面的详查要耗费大量的时间和人力物力,不仅成本太高而且非常困难。审计技术和方法要适应社会生产力的发展,审计抽样技术得以产生和发展。符合成本和效益的原则。根据审计的重要性原则,审计人员并不需要对所有的经济业务进行全面的判定,只要能恰当的运用审计抽样技术,通过对局部的样本进行审查,便可推断总体特征,可在有限的审计资源条件限制下,收集充分、恰当的审计证据,以形成和支持审计结论。审计结论可靠性高。统计抽样是根据经济统计数学概率论的原理科学地确定抽样规模,其抽样风险是可预知的,也是可控制的,样本按随机方法选出,较少主观的因素,其样本结果客观地反映总体特性,抽样结果的有效性不受审计人员的经验和职业判定能力影响,因而其结果更科学、更可靠,但不能认为统计抽样就不需要审计人员的专业判定,对于审计抽样对象确定、估计误差率等均需要审计人员运用个人经验和职业判定。二、抽样审计的特点:抽样审计不同于具体审计。具体审计是指百分百地审计对象总体中的全部项目,并根据审计结果形成审计意见。而抽样审计是从审计对象总体根据统计原理选取部分样本进行审计,并根据样本推断总体并发表审计意见。审计抽样不能等同于抽查。抽查作为一种技术,可以用于审前调查、确定审计重点、取得审计证据,在使用中无严格要求。而审计抽样作为一种审计方法,需运用统计原理,并严格按规定的程序和抽样方法的要求实施。抽样审计一般可用于逆查、顺查、函证等审计程序,也可用于符合性测试和实质性测试;但审计师在进行询问、观察、分析性复核时则不宜运用审计抽样。三、运用统计抽样技术需要考虑的问题。按审计所了解的总体特征不同分为属性抽样和变量抽样。属性抽样常用于企业内部控制制度的符合性测试,其目的是确定被企业内部控制制度的有效程度,一般分为固定样本抽样、停一走抽样和发现抽样。变量抽样常用于企业会计表帐户余额的实质性测试,其目的是确定资产或负债项目的误差,一般分单位平均数推算法、差额估算法、比率估算法和货币单位抽样法。关注审计风险。审计风险就是通过审计抽样所得出的审计结论不能完整反映总体情况的不确定性。风险分为固有风险、控制风险和检查风险,而审计抽样与控制风险和检查风险相关。控制风险是指内部控制不能防止或发现会计表中重要错的风险;检查风险则是指审计人员不能正确评估表数额的风险。在符合性测试中运用抽样技术,可为审计人员提供直接与评价控制风险的有关信息;在实质性测试中运用抽样技术,可帮助审计人员量化检查风险。降低抽样风险。抽样风险是可能出现的抽样导出的审计结论与被审总体特征不相符的可能性,它与由于审计人员采用不恰当的审计程序和方法或误解审计证据等原因而带来的非抽样风险的性质不同。抽样风险分为二类:一是信赖不足风险,指抽样结果表明样本项目存在的问题或差错的比例大于被审总体实际存在的问题或差错的比例,它会导致审计人员执行额外的审计程序,降低审计效率。二是信赖过度风险指抽样结果表明样本项目存在的问题或差错的比例小于被审总体实际存在的问题或差错的比例,这将导致审计人员形成不正确的审计结论。信赖过度风险对内部审计人员来说是最危险的风险,它将使审计无法达到预期的效果。了解抽样方法的适用范围。审计抽样预备为一种现代审计方法,并不适用于所有的项目审计,当审计对象总体中的项目都很重要、被审计的项目具有较大的审计风险、或从成本效益考虑并不有利时,一般不应采用审计抽样的方法。审计师在确定审计对象时,应充分考虑其相关性和完整性;相关性是指审计对象总体必须符合具体的审计目标;完整性是指在选取审计总体时须包括为实现审计目标所涉及的所有项目。审计风险较大的项目宜采取详查方法,对审计内容较多、审计风险相对较小的项目宜采取抽样审计,并结合分析性复核手段,将审计风险降至最低。这其中的关键在根据各种抽样方法的特点,做好抽样样本的设计,主要根据审计经验做好审计误差、评估抽样风险、确定总体误差等设计工作。统计抽样技术的运用必须以企业有健全的内部控制制度为前提,企业具有健全的内部控制制度,则经济活动中发生的错误和弊端的可能性必会减少,即使发生了错误和弊端也能迅速发现;但统计抽样要求审计人员有较多的抽样专业知识,并需要较为繁复的计算和处理,目前随着计算机技术的发展,已有专门的抽样软件,利用计算机进行随机抽样,繁复的计算和处理可由计算机自动完成;尽管统计抽样具有较多的优点,并解决了非统计抽样难于解决的问题,但在某种情况下,判定抽样仍有具运用的必要性。

热点内容
电脑上怎么看本机的配置 发布:2024-10-08 13:26:02 浏览:41
androidepub 发布:2024-10-08 13:25:22 浏览:549
怎么拿云服务器做进销存 发布:2024-10-08 13:25:14 浏览:724
小本解说服务器是什么 发布:2024-10-08 13:25:09 浏览:393
安卓倍速脚本 发布:2024-10-08 13:18:48 浏览:77
饥荒本地服务器后续怎么添加服务器模组 发布:2024-10-08 13:18:24 浏览:199
阿里云服务器centos7还是8 发布:2024-10-08 13:16:16 浏览:718
安卓手机的屏幕设置在哪里 发布:2024-10-08 13:14:37 浏览:702
解压车祸 发布:2024-10-08 12:50:16 浏览:636
我的世界天空之镜服务器文件夹 发布:2024-10-08 12:49:38 浏览:75