use*_*840 14 streaming byte bits bytestream
到目前为止,我认为它们与由字节组成的字节相同,并且双方需要知道另一侧的字节大小和端点并相应地转换流.然而,维基百科说byte stream!= bit stream(https://en.wikipedia.org/wiki/Byte_stream)并且bit streams专门用于视频编码(https://en.wikipedia.org/wiki/Bitstream_format).在这个RFC https://tools.ietf.org/html/rfc107中,他们讨论了这两件事并进行了描述Two separate kinds of inefficiency arose from bit streams..我的问题是:
Han*_*ant 11
这是一个非常广泛的问题,我必须给出10000英尺的视野.比特流在两个不同的用法中很常见:
非常低级,它是许多硬件运行的基本方式.最好的例子是从硬盘或光盘发出的数据流或通过传输线发送的数据,如USB电缆或您收到此帖子的同轴电缆或电话线.您找到的RFC适用于此处.
高级别,它们在数据压缩中很常见,每个令牌的可变位数允许打包数据更紧密. 霍夫曼编码是最基本的压缩方式.您找到的视频编码主题适用于此处.
字节流和比特流之间的真正区别是什么?
字节流与面向字节的设备以及您在编程中几乎总会遇到的设备高度兼容.比特流更低级别,只有系统集成工程师才会担心它们.虽然比特流的有效载荷通常是计算机感兴趣的字节,但通常需要更多的开销来确保接收器能够正确地解释数据.通常比编码数据中的字节所需的位数多得多.需要额外的位来确保接收器正确同步并且可以检测并且可能纠正位错误. NRZ编码很常见.
RFC是相当考古的,在1971年他们仍然在敲打让计算机互相交流的基础知识.那时他们仍然接近传输线行为,比特流,并且许多计算机还没有就一个字节中的8位达成一致.他们担心在非常贫乏的硬件上将位转换为本地字节的成本以及需要将尽可能多的位打包到消息中.
接收方如何知道在给定时间要处理多少位?
协议确定,就像RFC那样.在可变长度比特编码的情况下,比特值本身决定它,就像霍夫曼编码那样.
为什么在某些情况下比特流比字节流更好?
我认为已经涵盖了,因为它更符合其目的.要么是因为硬件是面向比特的,要么是因为可变比特长度编码是有用的.
小智 5
BYTE流
字节流是一个术语,用于表示允许沿特定路径发送数据的计算技术。在此,沿路径发送的是八位大小的单位(称为字节),而不是单个的零和零(称为二进制数字或位)。有时也将其称为字符流,因为组成自然语言字母,数字等的大多数字符都由此类8位单元表示。路径或数据传输中涉及的实体有点抽象,因为它们可能表示程序正在访问的文件,程序中正在处理的数据或通过网络传输的数据。
为了使字节流最有效,它流经专用且可靠的路径,有时也称为管道或管线。这样的路径必须可靠以确保输出准确。一方面,在考虑计算机编程时,管道是连接程序各个方面的路径,以便在处理来自输入的数据时,可以将其传递到程序的另一部分,再传递到另一部分,依此类推,直到达到输出为止。
某些操作系统可以使用另一种管道来获取数据(例如文件的内容),并通过多个不同的程序运行它以产生一些输出。这对于文本处理应用程序很有用,它通过字符字节流有效地传递数据。因此,字节流的最常见用途之一是用于计算机在访问文件中的数据时的操作系统。
在早期的计算机网络中,某些系统区分了字节和也称为八位位组的字节。由于八位位组也是由八位组成的计算单元,因此这些术语有时可以互换使用,尽管在那些较旧的系统上,它们不是一回事。但是,结果是,八位字节流是在谈到字节流时也使用的术语,尽管主要是关于计算机网络。这样的示例“应用程序/八位字节流”是用于通过网络传送任何类型的二进制数据的多用途Internet邮件扩展(MIME)类型。
在通过计算机网络发送字节流时,需要可靠的双向传输层协议,例如Internet上使用的传输控制协议(TCP)。这些被称为字节流协议。与某些类型的硬件组件一起使用的其他串行数据协议(例如通用异步接收器/发送器(UART)技术)是一个串行数据通道,它也使用字节流进行通信。在这种情况下,字节或字符被打包在发送端的帧中,其中附加了一个额外的起始位和一些可选的校验位,然后在接收端从帧中分离出来。有时将该技术称为面向字节的协议。
Java中的字节流
众所周知,流可以帮助我们顺序访问文件或数据。字节流“适用于任何类型的数据”按字节访问文件,但在某些情况下,不建议使用字节流。例如,如果文件使用unicode编码,并且文件中的一个字符用两个字节表示,则字节流将分别对待它们,我们需要自己进行转换。
“字节流”是否支持Unicode字符?
是的,字节流支持字节,因此支持可以使用字节表示的任何内容。即文本,照片,视频等。这里要考虑的事情是,使用字节流进行操作的所有内容都必须遵循一些编码和解码规则,以将0和1组合在一起。
BIT流
定义:比特流是指从一个设备传输到另一设备的信息的二进制位(1和0)。
但是,在家庭影院应用中,比特流是指来自源组件(例如DVD,Blu-ray或HD-DVD播放器,HD-Cable或HD-Dell)的数字编码的杜比数字或DTS相关压缩音频信号。卫星箱)到前置放大器/处理器(独立的或内置在家庭影院接收器中),以解码并分配到放大器级,以最终以扬声器的模拟形式再现最终声音。
可以通过数字光纤,数字同轴或HDMI接口发送比特流。
也称为:位流,数字位流,音频位流
示例:DVD或蓝光光盘播放器“ X”包含杜比数字或DTS音轨,该音轨被编码为光盘上的数字位。DVD播放机必须读取此编码,并通过数字光学,数字同轴或HDMI连接将比特流形式的编码信号传输到具有杜比数字或DTS解码器的家庭影院接收器“ Y”。接收器依次将数字编码的杜比数字(Dolby Digital)或DTS比特流以模拟形式转换为适当的通道分配,然后进行放大,以使收听者可以通过扬声器听到。