当前位置:首页 > 编码
  • 根据软件编码的中速红外技术在FTU中的应用

    根据软件编码的中速红外技术在FTU中的应用

    根据软件编码的中速红外技术在FTU中的应用 概 述   馈线自动化终端(FTU)是自动化系统与一次设备联结的接口,主要用于配电系统变压器、断路器、重合器、分段器、柱上负荷开关等应用场合,主要安装于户外柱上或环网柜。由于设备和电力一次设备安装距离比较近,特别是柱上安装模式给应用程序更新、设备调试、运行参数整定和维护带来困难,传统的经过串口进行调试和维护的方式需要直接接触,往往还需要设备掉电,存在安全隐患,接线很不方便,而非接触式维护调试接口将解决上述问题。和蓝牙等一些短距离无线通讯相比,红外数据通讯成本低,设计简单保密性好。红外通讯是一种短距离无线通讯技术,采用点对点传输方式,传输距离为0~30 m,发射角度为30°锥角以内,最高传输速率达16 Mb/s。中速红外数据通讯产品,具有成本低廉、连接方便、简单易用、结构紧凑、传输距离远和传输速率快等特点,非常适合作为FTU调试接口,很好地解决了FTU的参数设置和维护等困难。1 常用的红外数据传输规范1.1 IrDA协议的红外数据传输IrDA 1.0协议基于异步收发器UART,最高通信速率在115.2 Kb/s。IrDA 1.1协议提高通信速率到4 Mb/s,之后,IrDA又推出了最高通信速率在16 Mb/s的协议。使用IrDA协议的高速传输红外收发器,传输距离比较近,只有几十厘米,而且角度很窄,而FTU一般安装在柱上,距地面距离5~6 m,这种方法使现场对准光轴很困难,传输距离远不能满足要求。而且阳光中的红外波段会对红外收发器的灵敏度产生很大影响,并且带来许多干扰。1.2 红外遥控用数据传输遥控用的收发器传输距离在几米到几十米,发射角度通常在0~30°,发射强度与接收灵敏度因不同器件不同应用设计而强弱不一,在小型移动设备中有着广泛的应用。标准的红外遥控用波长为900~950 nm,副载波为33~40 kHz。但遥控用的红外收发器的数据传输速率很低,通常只传输简单的命令或读取设备状态等少量数据,对FTU来说其调试接口可能需要观察设备内部数据或更新程序,需要传输的数据量大,如果速率很低,会导致性能无法接受。2 系统设计方案FTU安装在户外柱上,距离较长,数据速率要求,高干扰,因此采用Vishay中速红外收发器,利用CPLD/FPGA实现红外调制和数据波形识别,通过软件实现应用层的编码和解码,既降低硬件设计难度又提高了电路的抗干扰能力。整个系统分为主机侧红外适配器和FTU侧收发器,主机侧适配器通过RS 232和计算机相连经USB接口为适配器供电,通过FTU维护软件经适配器向外收发数据,FTU经红外收发器接收来自主机的命令和数据,并向主机发送主机需要的数据报。FTU是基于A1tera NiosⅡ的SoPC系统,红外收发器的信号通过UART和处理器Nios相连接。2.1 FTU侧红外适配器FTU侧的收发电路包括一个接收器和两个红外发射管,将红外收发器的信号ITXD和IRXD直接接到FPGA的两个I/O脚上即可,框图如图1所示。图1中虚线框内的部件由FPGA实现,在Nios处理器的总线上挂接一个UART控制器,UART输出TXD信号经过红外调制器和连接到红外发射管的驱动电路,来自红外接收管的信号经整形后送到脉宽检测器进行解码,脉宽检测器的解码输出连接到UART的RXD,同时由复位检出组件检出复位信号连接到Nios的控制总线来控制系统重启。2.2 主机侧电路主机侧红外适配器电路如图2所示,其中红外收发器信号经过CPLD和经MAX232再接入主机的串行接口。通过串口供电可以简化外部接线,但由于本设计的传输距离远,传输速率高,所以功耗要求高,串口不能提供稳定的输出。所以适配器从主机的USB接口接入5 V工作电源,晶振Z103提供给CPLD做红外物理层编码时钟和接收信号识别用。图2中R22和C742构成上电复位,D306和J1构成主机侧RS 232接口,红外发射管由D1,D2串接组成,增强发射功率和灵敏度。Q1为红外接收管,D301为CPLDXC9536。主机侧由CPLD完成红外发射的载波生成和调制及接收信号的脉宽检测和复位命令产生。2.3  收发器组件红外发射管采用Vishay公司的TSHF5400,TSHF5400是一个高速砷化镓红外发射管,调制带宽可达10 MHz,在电流If=100 mA时tr=30 ns,tf=30 ns,光角φ=±22°,峰值波长为870 nm,工作环境温度-40~+100℃,非常适合在户外运行。红外接收采用Vishay的高速接收管TSOP7000,如图3所示,可以工作在455 kHz,和870 nm的红外发射管TSHF5400配对使用时,在If=300 mA时传输距离可达20 m。3 物理层调制和宽度鉴别文献[8]给出了几种常用的应用层传输规范,但不能满足现场安全性和强干扰下中速传输的可靠性要求,所以需要对传输的信号进行编码传输,并在无数据传输时关闭收发器。传输采用曼切斯特编码,所以在码流中除了起始符和结束符采用违规编码外不存在连0码和连1码。接收部件的宽度检测单元对编码字段的码流进行检测,三个以上的连0码和连1码均判为误码。3.1 红外调制输出红外收发器的物理层发送信号调制和接收信号检测由VHDL实现,把主时钟分频得到455 kHz的数据载波,通过发送信号TXD控制数据载波的有无实现数据发送。若当前传输信号TXD为0则输出一串数据载波,否则关闭输出。为了减少红外发射管的功耗,控制数据载波的占空比为30%。3.2 红外接收控制红外传输为半双工方式ASK调制方式,在发射管发送逻辑0时关闭接收回路,避免发射管对接收电路的影响。FTU安装的环境决定了其强干扰,而短的突发帧被干扰命中的几率相对较低。本文在接收方增加两个控制字符和一个信号.检测部件,仅在检测到9-bit0时允许接收,在接收到8-bit0时关闭接收部件,这两个字符分别对应0x0和0x80,通过应用层对数据进行编码和解码实现。3.3 红外复位信号发送和接收FTU在更新应用程序和改变特定的运行参数时需要重启系统,通过在FTU侧的红外接收接口中的复位脉冲检出组件和主机侧的红外发送接口中复位脉冲产生组件相配合,完成主机对FTU的复位控制。主机需要复位FTU时,只需要通过主机侧接口软件在RS 232接口的RTS线上产生一个逻辑l到逻辑0的跳变,CPLD检测到该跳变后产生50 ms的连续调制输出。由于正常的编码发送中没有连续50 ms的低电平,干扰信号也不会产生连续的电平,所以接收方的复位检测组件在检测到红外接收管连续输出50 ms低电平后即可产生系统复位信号,完成FTU的重新启动,整个复位逻辑不依赖应用软件,可用于紧急情况下系统重启。4 软件编码与解码4.1  帧格式本文采取了短突发帧物理层的帧结构如表1所示,包含起始符0x0和结束符0x80不编码,码字的连0特性分别用来启动红外接收器和关闭红外接收器。起始符和结束符由发送方的驱动程序添加,接收方的脉宽检测单元自动去除。编码字段用来传输用户数据,一个用户数据报文可以分成多个物理层突发帧,发送方驱动程序根据链路特征将用户数据报拆分,接收方负责重组。本文所采用的用户数据报文格式如表2所示,采用字符同步方式,包含AA55EB90H四个字节的帧头、1 B的目标地址和2 B的帧长(整个编码字段的字节长度)、NB的数据以及2 B CRC校验,这部分数据需要驱动程序进行软件差分编码和解码。编码后实际发送的数据为帧长的两倍。4.2 红外数据编码发送通过对应用层数据按曼切斯特编码规则进行编码,保证应用数据不出现连0和连1。按下面的算法生成编码查找表:    (1)循环变量置0,编码结果值置0;    (2)取数据位7,若为1,则编码成10;否则编码成01;    (3)数据左移1位,编码结果值左移2位,循环变量加1;(4)若循环变量为7,则退出;否则,转步骤(2)继续编码。在这张表中,0被编码成0x5555,0xff编码成0xaaaa等。由于待编码的数据总是介于0~255之间,所以通过下面的查找表可以实现应用层编码。发送时把待发送的字符作为数组索引,依次查找上面的数组就可以得到编码输出。4.3 红外数据解码接收参照编码算法,发送方1 b被编码成2 b,而在接收方,每2 b则被解释成一个bit,由于接收方接收到的8 b字符也位于0~255之中,对应解码后的4 b,16 b构成一个8 b字符。按下述方法生成解码数组:(1)循环变量置0,解码结果值置0;(2)取数据位D7,D6,若为10则将解码结果值加1;若为01则将解码结果置于0xfe,否则视为误码将解码结果值加80退出;(3)数据左移2位,解码结果值左移1位,循环变量加1;(4)若循环变量为3则退出,否则转步骤(2)继续编码。十六进制解码对照表如表3所示,如输入55,解码值为0,输入99解码值为a,对应其他输入解码输出为0x80即误码。   4.4  帧接收和帧同步由于一个应用帧会被分成多个物理层帧,而且采用差分编码发送,一个字符被分成两个字符,所以解码时帧同步很重要,否则无法重新恢复原始数据。本文把同步头作为一个整体,则根据编码算法,序列0xAA55EB90编码成序列0x99998666a99a9655,接收程序接收到序列0x99996666a99a9655立即同步帧接收计数器。按表2所述的应用层数据报文格式,帧同步点对应接收计数器为8。接收到帧同步序列后就可以处理数据接收,由两个半字符合成一个应用层字符。当接收计数器为偶数时,根据解码输出可以获得一个字符的低4位;接收计数器为奇数时,获得一个字符的高4位。如根据接收计数器为8和9时获得目标地址字段,接收计数器为10和11时获得帧长的低字节,接收计数器为12和13时获得帧长的高字节,依次类推接收所有应用层数据,整个帧同步和解码过程如图4所示。4.5  差错控制本文综合使用了宽度检测、编码违规检测和帧校验三种手段进行接收帧校验。帧校验采用16位的CRC校验,其生成多项式为G(x)=x16+x15+x2+1,校验出错的帧被丢弃,并由主机侧控制超时重发。通过这种机制识别错误报文,强干扰时仍然能够保证逻辑链路的可靠性。报文发送方在发送之前先计算报文CRC校验码并附加在报文的帧校验字段,然后启动编码程序编码并发送当前数据报。接收方程序在排除违规编码错误和CRC错误后才将收到的数据包提交到应用层接收处理程序,如图4所示。5 系统软件设计   整个系统的逻辑采用VHDL描述语言,CPLD设计采用Xilinx ISE进行逻辑综合和调试,FTU侧采用Altera SoPC Buitder构建Nios系统,并在QuartusⅡ环境下完成逻辑设计和仿真调试。FTU应用软件则采用C语言,在Nios IDE环境下完成编码和调试,主机侧的软件采用Visual Basic 6.0完成控制台软件编码和调试。通过这些开发工具的相互配合完成整个项目的编码和调试。6 结  语由于FTU多安装在户外柱上和环网柜,传输距离长,收发器对准困难,背景光很强,必须考虑可见光和日光的干扰。针对这种应用场合,应从以下几个方面考虑灵敏度和抗干扰的问题:(1)采用广角的红外接收管,发射管则采取多个串联,适当增加驱动电流来兼顾灵敏度和功耗,收发器对准困难;(2)采用短突发帧,减少数据帧被干扰命中的机率;(3)本地发送数据时关闭接收器,应用程序在发送时不处理接收的数据,同时考虑收发转换的时机;(4)采用本文所述的发送端编码和接收段进行宽度检测的方法,仅在收到启动字符时打开接收部件,收到结束字符时关闭接收,减少接收窗口;(5)数据段采取差分编码和帧校验相结合以及出错重发等差错控制机制,配合软件有效滤除出错报文,使得链路抗干扰性能进一步加强;(6)对户外应用,设计还要考虑背景光、电磁干扰、湿度和温度对收发器的影响。按上述介绍设计的中速红外收发器电路和软件已成功应用在我公司DMP2000配电自动化系统的FTU中和DMP5000数字化变电站的智能采集终端,现场运行三年,稳定可靠。在中午阳光直射条件下传输距离可达5 m以上,晚上可以达到20 m,数据码元速率为38 400 b/s,考虑差分编码因素实际数据传输速率为19 200 b/s,链路检错和抗干扰能力很强,极大地方便了FTU现场维护和参数整定。

    时间:2020-09-10 关键词: 红外 软件 编码

  • USB3.0与USB2.0编码方式的区别

        1 概述   互调(IM,InterModulaTIon)是指当两个或多个频率信号经过具有非线性特征的器件时产生的与原信号有和差关系的射频信号,又称互调产物、交调或交调产物。为了提升系统容量,通信系统中同时采用多个载波(频点)的现象非常普遍,而且载波功率也有逐渐加大的趋势;考虑到实际电路通常都具备非线性特点,互调及互调干扰成为常见现象,在蜂窝移动通信系统、微波通信系统、集群移动通信系统、卫星通信系统、舰船通信系统等系统、民航通信系统、有线电视系统等系统中都有发现并引起广泛注意。   互调一般分成有源互调和无源互调两种。鉴于所产生互调产物的严重程度,传统上人们主要关注有源互调,但随着更大功率发射机的应用和接收机灵敏度的不断提高,无源互调产生的系统干扰日益严重,因此越来越被运营商、系统制造商和器件制造商所关注。文献[1]对比了有源互调和无源互调的特征:   有源互调的特点:(1)有源电路的非线性相对固定,不随时间而变化;(2)分析理论相对成熟;指标明确,规范均能给出明确指标要求;(3)传输方向相对稳定;(3)可通过增加带通/带阻滤波器或改善滤波器性能加以抑制,高阶互调干扰几近忽略。   无源互调的特点:(1)随功率而变,美国安费诺公司的实验证实,输入功率每增大1dBm,PIM产生电平变化约3 dBm;(2)随时间而变。材料表面氧化、连接处接触压力、电缆弯曲程度等均会随时间发生改变,进而影响非线性程度。(3)研究理论滞后,仿真研究手段未有实质突破,离工程化尚有相当距离。(4)产生环节多,传输方向非单一,难以抑制。(5)存在高阶互调。   资助信息:本文受国家“新一代宽带无线移动通信网”重大专项“TD-LTE网络优化工具开发”(2010ZX03002-008)项目资助   2 2 互调的产生机制[1][2]   2.1谐波的产生机制   假设网络中只有一个单频信号输入,输出信号和输入信号之间的关系如下:   (1)   上式中, 为直流项, 为线性放大项, 、 等高次幂项系数非零时,输出信号就会出现非线性增大失真,即通常所说的谐波和互调干扰。单频信号经过接收机等处理后,输出信号常常会伴有N倍频率的信号,这就是所谓的N次谐波。   假设输入一个单频正弦波,   代入泰勒展开式中,展开式右边的2次幂项为:   (2)   上式出现了2倍频信号( ),即通常称作的2次谐波干扰信号;同样地,展开式右边的3次幂项可以得到3次谐波干扰信号-----。   2.2互调的产生机制   假设网络中两个单频信号输入,那么此时产生的干扰除了谐波外,还有互调。   (3)   A.2阶互调的推导   泰勒展开式展开后的2次幂项为:   (4)   上式中, 和 数学变换后得到的是上面已经介绍过的2次谐波干扰信号,而 经过三角变换后得到:   (5)   此式中的后两项即是所谓的2阶互调项,信号频率分别是: 和 。   B.3阶互调的推导   两个标准正弦信号代入泰勒展开式后的3次幂项为:   (6)   上式中, 和 数学变换后引起的是3次谐波项,而 经过三角变换后得到:   (7)   此式中的后两项即是所谓的3阶互调项,信号频率分别是:2f0-f1和2f0+f1。   同样, 也可以经过三角变换得到两个3阶互调项,信号频率分别是:2f1-f0和2f1+f0。   同样地,可以得到4阶互调项、5阶互调项、6阶互调项-----。   B.N阶互调的一般性定义   将以上双频信号互调的分析推广到多频,即可得到互调产物在频率上的一般表达式为 , 、 、---、 为任意整数值, 即互调产物的阶数。   一般地,每一对互调产物中的加号项(如f0+f1、2f0+f1)通常超出工作带宽,只有减号项(如2f0-f1、3f0-2f1)才可能落在工作带宽附近;并且对于偶数阶的互调产物,其减号项(如f0-f1、2f0-2f1)接近直流项,通常也位于工作带宽之外。因此,业界主要关注奇数阶减号项互调。  

    时间:2020-09-08 关键词: usb2.0 usb3.0 编码

  • BBC Micro:bit 编码套件在中国现已通过 e络盟 发售

    BBC Micro:bit 编码套件在中国现已通过 e络盟 发售

    小型编码套件旨在激发年轻一代学习编码的兴趣 中国上海,2017 年 7 月 27 日——隶属于 Premier Farnell 集团的 e络盟 现已向中国客户发售 BBC Micro:bit 编码套件。BBC micro:bit 于 2016 年 3 月在英国首发,配合由英国广播公司 (BBC) 主导并与许多技术合作伙伴(包括 ARM、Microsoft 和 Premier Farnell)合作开展的一项教育计划。 Premier Farnell 是 BBC micro:bit 的独家制造商,通过它在中国的英蓓特业务制造编码套件,并在欧洲和北美洲先行推广该套件。 自从 BBC Micro:bit 在英国发售以来,microbit.org 网站的访问量已达 1,300 万,编码模拟器运行次数将近 1,000 万,编译次数达 200 万。micro:bit 在教学领域的应用也使人们对 STEM* 的态度发生了积极转变。 · 39% 的女生决定选择 ICT/计算机专业,之前仅为 23% · 86% 的使用者表示该套件让计算机科学变得更有趣 · 88% 的学员认为该套件让编码看起来并不像原来想象的那么难 BBC micro:bit 的尺寸仅为 4 厘米 x 5 厘米,是通往技术领域的易用实践入门工具,功能多样,能够激发无限的创造力。该器件由 www.microbit.org 网站提供支持,网站包含大量资源和教程,可帮助用户充分利用 micro:bit 的巨大潜能。 micro:bit 包含: · 25 个红色 LED – 开启指示灯、更新信息、开发游戏、创作数字故事 · 2个可编程按钮 – 将它们与某个操作关联并与您的项目交互 · 板载运动探测器 – 就像一个智能手机;micro:bit 可以对摇动、倾斜甚至下落做出反应 · 内置罗盘 – 感应您面对的方向以及您移动的角度 · 蓝牙智能技术和低功耗 – 连接互联网、世界就在您身边!无论是其他 micro:bit、手机、相机还是平板电脑,都可以“随时随地编码”或是自拍 · 5个输入和输出环 – 将 micro:bit 通过鳄鱼夹或 4 毫米香蕉插头直接连接到其他设备,并往返发送指令 Premier Farnell 销售与营销高级副总裁 Ralf Buehler 介绍:“BBC micro:bit 项目是英国 STEM 教育和计算机编程方面具有里程碑意义的事件,我们很高兴它可以在中国 e络盟 出售。我们致力于帮助发展科技的未来,无论是支持客户开发可以令世界更美好的产品,还是帮助教师激发学生对于编码的兴趣。BBC micro:bit 是向学生讲解编码课程的绝佳方式,让技术实践应用激发年轻一代的兴趣。” BBC micro:bit 有多种不同的包装规格,包括单个 BBC micro:bit“micro:bit go”套装(包含一根 USB 数据线、电池座和两节 7 号电池,还有一本快速入门指南及四项入门启发创意提示);另有“社团”套件(10 件套装)和 300 件大容量套盒。

    时间:2020-08-07 关键词: e络盟 microbit 编码

  • 音频压缩技术编码分类

    音频压缩技术编码分类

      音频压缩技术定义

    时间:2020-08-06 关键词: 音频压缩 编码

  • H.266视频编码来了:可远没想象的那么好

    H.266视频编码来了:可远没想象的那么好

    下一代视频技术实现重大突破,视频编码标准H.266出炉。 近日,Fraunhofer宣布最新的视频编解码标准 H.266/VVC制定完成。同等画质下将节省近50%传输流量,清晰度越高,码率节省越多。这项耗时3年的标准,主要面向未来的4K和8K。 H.266由MPEG和ITU联合开发,全球范围内包括高通、HHI、华为、三星、索尼、英特尔、诺基亚、爱立信、华为、腾讯、阿里等企业均有参与其中。 其中不少企业正在设计新芯片,以启用/加速H.266。并且提供支持H.266编码器和解码器的软件也将在今年秋季发布。 1 什么是视频编解码技术? 视频是由一张张图片连接起来形成的动态图像序列,若直接将每张图片的每一个像素点数据都加以存储,视频码流所占用的带宽将不可估量。 视频编解码的作用,是在摄像头采集画面前后,将图像进行压缩和数字编码,获取更加优化、抗干扰能力强的码流,以用于传输。本质上,就是用尽可能小的带宽传送高质量的视音频数据。 从MPEG-1到MPEG-2,从H.263、H.264到H.265(HEVC),以及现在的H.266等一系列标准,都是为了让码流更优化、压缩效率更高、稳定性更强。 2013年推出的H.265是在H.264编解码结构基础上,提高了压缩率、编码质量,并且仍然采用混合编解码。 超高清视频时代,帧率逐渐从30fps向60fps、120fps甚至240fps进发。高度密集的数据给带宽和存储带来巨大挑战,当前主流的H.264的编解码技术已经不能满足未来4K、8K的需求,H.266应运而生。 H.266/VVC的压缩视频方式与H.265/HEVC相似,但是在分区、预测和熵编码等方面都有所改进。 与H.265相比,H.266进一步优化了压缩性能,在保证视频清晰度不变的情况下,H.266存储体积减小一半、宽带流量节省一半,画质更细腻。 比如,下载一部基于H.265编解码的电影需要2GB,画质、清晰度、播放速度不变的情况下,基于H.266编解码技术耗费的流量只要1GB。 简单来说,可以极大地提升用户体验,降低企业成本。 2 如果H.266得到普及,所有与超高清视频相关的行业将迎来巨大变革,说视频编解码技术H.265/H.266是4K/8K超高清视频发展的基石也不为过。 但,技术迭代的狂欢背后,隐藏着巨大的隐患:专利费收取混乱。这也是H.265至今7年未能普及的原因。 一个视频编解码技术标准的形成来自近千个专利的支撑,而这些专利权分散在大量不同的企业手中。 H.265标准推出时,原来H.264的老牌专利池MPEG LA提高了H.265的收费标准,一些企业另起炉灶,成立新的专利收费组织,还有不少的专利持有者没有加入组织,提出单独收取专利费诉求。 “目前至少有四家组织或公司在收取H.265的许可费用:老牌的专利池MPEG LA,新兴的专利池HEVC Advance和Velos Media,以及Technicolor公司。”某业内人士感慨到: “H.265从2013年定稿的第一天起,各组织和公司就开始收取专利费,每台终端设备的专利费最高可达1.2美元。” 收费标准太高,且收费主体不清晰,不仅极大地侵占产品利润、带来高昂的成本,还给企业带来严重的知识产权风险。 如今H.265还没被捧热乎,H.266就来了。但H.265存在的问题,H.266一个也逃不掉。 “VVC不是免费的开源编解码器。”Fraunhofer 表示,H.266 / VVC已获得专利,只有合作伙伴可通过基于FRAND原则(即公平,合理和非歧视)的统一且透明的许可模式使用它。 业界有专家曾表示,传统国际标准组织需要具备打破困境的意识,主导建立一个相对干净权属的技术平台,建立不过多依赖H.265的新标准,才能走出目前的困境。 但现在看来,以H.265为基础演进的H.266,仍会延续H.265的专利许可乱局和危机,H.266产业应用将无法快速享受到技术发展带来的福利,消费者也将因此承受更多的代价。 专利权的本意是保护创新,促进技术的革新与产业发展,现在却因为各种因素成为阻碍行业发展的最大障碍。 行业的发展需要各界、各级共同的努力,期望视频编解码技术与应用的困局能被打破,迎来视频产业应有的辉煌。

    时间:2020-08-06 关键词: 视频 编码

  • 在争夺5G编码标准的时候,中兴背后捅了华为一刀?

    在争夺5G编码标准的时候,中兴背后捅了华为一刀?

    在中兴事件后,网上盛传在争夺5G编码标准的时候,中兴背后捅了华为一刀,把票投给高通。然而这完全就是子虚乌有的谣言。 先说一下三大场景。 增强型移动宽带(eMBB,Enhance Mobile Broadband),按照计划能够在人口密集区为用户提供1Gbps用户体验速率和10Gbps峰值速率,在流量热点区域,可实现每平方公里数十Tbps的流量密度。 海量物联网通信(mMTC,Massive Machine Type CommunicaTIon),不仅能够将医疗仪器、家用电器和手持通讯终端等全部连接在一起,还能面向智慧城市、环境监测、智能农业、森林防火等以传感和数据采集为目标的应用场景,并提供具备超千亿网络连接的支持能力。 低时延、高可靠通信(uRLLC,Ultra Reliable & Low Latency CommunicaTIon),主要面向智能无人驾驶、工业自动化等需要低时延高可靠连接的业务,能够为用户提供毫秒级的端到端时延和接近100%的业务可靠性保证。 再说明一下,什么是长码,短码。 优化的编码致力于用最短的二进制位数表示一个指令,越短效率越高。在指令数量不变的情况下,越常用的指令当然越短越好,但是指令不等长将造成接收端沉重的处理负担。然后用等长的编码显然会导致无效数据的大量传输,浪费带宽。于是把指令编成两个组(个别也有三个组的),常用的用相对短的二进制位数表示,不常用的用相对长的二进制位数表示。短码代表常用的指令,长码代表不常用的指令。 控制信道是用于传送信令或同步数据的信息通道,主要用于传输指令操作下级网络设备。信息通过网络传输的过程中由于受到外界干扰可能产生错误,为了纠正这些错误,以及不让错误信息进一步积累,对要在信道中传送的数字信号进行的纠、检错编码就是信道编码。随着传输速度的提高和同时工作的传输协议的种类越来越多,数据信道的数量也随之大幅增加,信道编码的传输渐渐独立出来,由专用的信道负责,也就是编码信道,这可以增强数据在信道中传输时抵御各种干扰的能力,提高系统的可靠性。 中兴鼎立支持Polar 联想投了LDPC 在投票时,Polar、LDPC是成为最后的竞争对手。 在投票时,有一轮是中国大陆和台湾厂商统一投票给Polar ,其中,中兴和努比亚两票都投了Polar 。另一轮是除了联想和摩托罗拉两票投给了LDPC,中国厂商集体弃权。 网上盛传的中兴捅华为一刀完全是谣传。 关于中国厂商那一轮集体弃权,铁流猜测可能事Polar 出来时间太短,技术不够成熟,解决方案相对于LDPC有明显差距,而国内厂商出于同进退的考量,不好投LDPC,只好选择集体弃权。而联想和MOTO投LDPC么。..。..可能就是完全出于商业利益的考量,或者是为了充分展现自己是一家国际化公司。..。.. 在当年投票结果出来后,有媒体大肆鼓吹“华为碾压高通,拿下5G时代”,但实际上,Polar只是被确定为短码控制信道的eMBB场景标准。而eMBB场景长码的控制信道和编码信道,以及短码编码信道都选择了LDPC。 必须指出的是,Polar虽然获得了中国企业的力挺,但其实并不完全属于中国,更不属于华为。polar码是土耳其一位学者提出的,很多专利并不在中国公司手中。之所以力推polar码,主要是因为这项技术比较新,欧美公司技术积累相对较少。另一方面LDPC这项技术时间出来长一些,也相对成熟一些,欧美公司技术积累也比较多。 另外,由于LDPC这项技术时间出来长一些很多专利已经过期,或快过期了。欧洲、日本、美国的众多厂商选择LDPC,实现各自的利益做大化,实属正常。 总结一下,投LDPC的是联想/moto,中兴和努比亚都投了Polar。 这次投票没有必要用非常富有“民族情绪”的眼光去审视,毕竟Polar并非中国原创,很多专利也不在中国企业手中,更多的是手上没有原创好牌的情况下,从产业实力非常弱的玩家手里借一张牌,当作用来防御欧美科技公司的武器。由于LDPC很多专利过期或快过期了,最后投票的结果更符合全球通信厂商的利益。

    时间:2020-07-17 关键词: 中兴 物联网 5G 编码

  • 话说学习linux改变人生

    话说学习linux改变人生

    无论您学习什么,兴趣和持久性都是两个最重要的方面,因为兴趣可以使您更容易入门,持久性可以帮助您成功,学习Linux也不例外! 大学毕业的两年时间里,我干过销售,做过文员,当过前台,适合女生的工作换了一次又一次,并不是吃不了苦,只是我每次的工作都是迫于生计,都不是我所喜欢的。而Linux技术行业不一样,可以这样说,虽然它并不是最轻松的,但确是最理想的,最喜欢的。 我喜欢计算机!看着电视剧与电影中,黑客主角们,手在键盘上打出的悦耳节奏,与扫一眼就能看懂没有任何中文的代码,别提心中有多么崇拜与羡慕了。但空有一肚子的喜欢,根本无用,而一年前的我,也不会想象得到自己会从事这份工作,一直以为这个埋藏在心底的计算机梦想,终究只会是想想而已,并没有得到很大的重视。 好在毕业后人生迷茫聊以度日的日子里,有个朋友指点我转行,也是他的无私教导让我真正开始鼓起勇气,打破原定的安稳却不喜欢的生活,开始追逐那个埋藏在心底,不敢与人说的梦想。 记得他曾经告诉过我,市面上有许多可以学习linux的书,但是大多数都只有生硬的知识概念,枯燥乏味不说,还不易懂,根本不适合什么都不懂的菜鸟!但是他推荐我《linux就该这样学》,容易上手,它从准备工具,到如何安装linux软件直到如何部署动态网络环境,都十分详细的记录在了书本上,其中还有大多数的图片,可以帮助菜鸟更好的理解linux,不会因为乏味枯燥看不懂而放弃学习linux。 可以这样说,这本书他就是为了新手们量身定做的,它可以让你了解linux,垫上入门的砖,即使是毫无基础的新人,毕竟古话说得好,兴趣才是最好的老师。 我会学习并且从事运维技术行业,自然与我对计算机的崇拜和喜欢,有这密不可分的缘故,自小起,我就喜欢看与黑客有关的电视剧与电影,比如说前不久红极一时的《微微一笑很倾城》,里面肖奈与ko的编码较量就看得我热血沸腾,还有小时候美国的电影《黑客帝国》《骇客追缉令》之类的,都是我的最爱。 而凡事都贵在坚持,难在坚持。刚学习linux的前三个月,放弃的念头可以说是经常在我的脑海中徘徊,虽说学习linux与英语的好坏并没有特别大的关系,但是它的编码还是由26个字母组成,对于我这种看见字母就发怵的人,还是会有些畏惧,特别是每次看见复杂难懂的命令和脚本,总会让我感到抓狂。 好在我的身边有朋友。一本好书,详尽的讲解可以帮助我很好的理解那些生硬难懂的命令与脚本,再加上朋友的督促指导,半途而废的念头从时有时无到彻底消失。 当然实验才是检验真理的唯一标准,所以书中的理论知识再生动形象,也没有亲自实验获得的知识多,所以这本书,就是从一开始便教你如何在实验之中理解有关于linux的专业知识。 如今想想,好在我坚持下来了,如果当初真的放弃了,现在一时富足的美好生活怎么样不说,我的梦想肯定会再次石沉大海,而生活也会恢复到之前那种没有梦想,日日为了没有目标混日子而发愁的生活。 有了兴趣与坚持,我想这个世界上,不会有你学不会的事。而同时,学习linux,也可以成为人生的一个新的机遇,即使之前对于计算机行业无感的人,也可以去试着接触一下linux。 而且自我从事这个行业之后,也认识了好多半路出家,靠着极大的魄力转行学习linux,从而改变了自己的一生。 不论是本就喜欢计算机行业还是想要改变人生,选择linux运维技术行业,都是不错的选择,但最重要的是,入门之后,不要轻言放弃,毕竟半途而废放在任何事物上,都会落上一事无成的结果。 如果你喜欢这个行业,那就请你相信你自己,不要害怕,不要轻言放弃,不要觉得自己不是对口专业毕业,而不敢从事这个行业,毕竟现在毕业的大学生研究生,有多少出了校园后,干这之前未涉及过得行业?不用说别人,我自己原本就只是学艺术的,与计算机完全没有任何关系,现在也依旧干的很好! 更不要害怕linux运维技术行业的前景不好,恰恰相反,linux运维技术行业,可以说是近几年来,飞快兴起的行业,而面对现在科技高速发展的互联网时代,linux完全顺潮流发展,当然是不会落伍!只会是最富有潜力的行业。 请不要害怕身边没有朋友涉足或者自己未曾涉足过这个行业,而不敢尝试,我记得我在一本励志散文书中,看到过一句话,概意是‘想要成功只有俩种选择,一是,将别人都会做的事情做到极致,方能成功,二是,去做别人不敢做的事情!’ 敢踏入linux行业,你就会比哪些不敢尝试新事物的人,成功了一步,书是最好的朋友,兴趣是最好的老师,只要你想要,会有水滴石穿,铁杵磨成针的那天。

    时间:2020-07-11 关键词: Linux 运维 编码

  • 蓝牙耳机编码音质测试

    蓝牙耳机编码音质测试

    以iPhone 7为主要开端,越来越多的手机开始抛弃3.5mm耳机孔,虽然USB-C耳机、转接头的出现让有线耳机仍能派上用场,但业界的共识是无线音频将在未来扮演更重要的角色。 无线蓝牙音频想要取得大发展,也需要解决不少问题,比如耳机的价位、续航、音质等。以音质为例,典型的一首MP3格式音乐入耳大约需要经过两次解码和一次编码,MP3本就有损,如果再经一次有损编码,对音质损伤不言而喻。 传统蓝牙传输编码主要有SBC、AAC,近年来,高通的aptx/aptxHD和索尼主导的LDAC开始崭露头角,它们的解析度依次升高,其中aptx就已经可以实现16-bit/44.1kHz/384kbps的CD级音质。 不过,经SoundGuys测试,任何一种单独的蓝牙编解码方案都可感知的音质问题,尽管并不是很明显。其次,目前任何一款在售的蓝牙耳机都不能达到有线的信号质量。 先看AAC编码,这是苹果坚持的方案。华为P20 Pro处理的能力最差,完全无法驾驭24bit,底噪对听感的影响最明显。 即便是当前最强的LDAC,在不同手机上也设定了不同的码率,比如三星Note8、LG V30是660kbps,而谷歌Pixel 3就只有最低的330kbps。 从对连接质量的统计来看,-45dBm为最佳值,然而仅LDC 990kbps和660kbps属于保持得比较好。 测试显示,每一个蓝牙编解码器都表现出比有线音频更高的噪声水平,尽管只有AAC、SBC和LDAC 330 kbps具有人耳可听的噪声。另外,在有线音频可以处理CD音频和24位音乐的地方,蓝牙耳机根本不能处理。

    时间:2020-06-25 关键词: 蓝牙耳机 编码

  • 音频几个很重要的参数

    音频几个很重要的参数

      音频几个很重要的参数!   采样率:每秒采集数据的次数   采样精度:每次采集数据的位数   通道数:存在几路音频   比特率:针对编码格式,表示压缩编码后每秒的音频数据量大小。   音频的帧的概念没有视频帧那么清晰,几乎所有视频编码格式都可以简单的认为一帧就是编码后的一副图像。   但音频帧跟编码格式相关,它是各个编码标准自己实现的。因为如果以PCM(未经编码的音频数据)来说,它根本就不需要帧的概念,根据采样率和采样精度就可以播放了。比如采样率为44.1HZ,采样精度为16位的音频,你可以算出bitrate(比特率)是44100*16kbps,每秒的音频数据是固定的44100*16/8 字节。   amr帧比较简单,它规定每20ms的音频是一帧,每一帧音频都是独立的,有可能采用不同的编码算法,以及不同的编码参数。   mp3帧较为复杂一点,包含了更多的信息,比如采样率,比特率,等各种参数。      AT测试前设定音频参数   这里主要是说明一个从C语言调用AudioSystem::SetParameter封装的过程。   新增一个audio_hw_interface.cpp文件   #include 《media/AudioSystem.h》   namespace android {   extern “C” void send_audio_calibration(int acdb_id, int capability, int app_id, int sample_rate)   {   char param[50];   String8 paramValue;   snprintf(param, sizeof(param), “send_audio_calibraTIon=%d-%d-%d-%d”,acdb_id, capability, app_id, sample_rate);   paramValue.setTo(param);   AudioSystem::setParameters(paramValue);   return;   }   }; // namespace android   在Android.mk中添加需要头文件搜索目录和动态库   LOCAL_C_INCLUDES := $(LOCAL_PATH)/include   $(TOP)/frameworks/av/include/media   LOCAL_SHARED_LIBRARIES := libcuTIls liblog libc libmedia libuTIls   在调用该封装函数的C语言中。   extern void send_audio_calibraTIon(int acdb_id, int capability, int app_id, int sample_rate);   send_audio_calibration(acdb_id, 2,14, 48000);   这样就可以了。

    时间:2020-06-03 关键词: 音频 at 编码

  • 千视电子视频编码器支持NDI协议

    千视电子视频编码器支持NDI协议

    NDI是Network Device Interface的简称,是由美国NewTek公司于2015年推出的网络设备接口协议;NDI是使视频兼容产品通过局域网进行视频共享的开放式协议,它让视频在IP空间进行简捷高效的传输成为现实,这一特性和应用将在很大程度上取代目前行业特定的有线连接和传输(比如HDMI,SDI等)。 音视频信号在进行NDI编码后,能实时通过IP网络对多重广播级质量信号进行传输和接收,同时具有低延迟、精确帧视频、数据流相互识别和通信等特性。 NDI有哪些优势?多信道:任何设备都能够连接上其他所有设备,实时传输多路信号;少流量:可在本地完成信号切播后只输出一路,不受网络条件影响;高码率:局域网可轻松传输720P、1080P等超高清画质的视频流;低延迟:无需上传至云端再下载到本地,延迟可控制在0.1秒左右。 大范围:即便是不同办公区域,只要在同一局域网中即可正常通信;小成本:无需投资全新的设备、网络或信号基础设施即可投入使用。千视哪款视频编码器产品支持NDI?千视电子是NewTek全球合作伙伴,所有视频编码器产品均支持NDI协议! 多机位拍摄导播应用举例: 当前的多机位移动直播一般采用多部手机拍摄并上传至视频云,再导入进直播软件进行切换的方式,不但消耗过多公网带宽,而且各机位由于网络延迟不等,将会出现几秒甚至几十秒的时差,导致信源的音画无法互相同步。如果使用摄像机拍摄,并在前方通过导播台进行切换后回传,则需要使用SDI视频线连接,活动范围将受到很大限制。 有了千视NDI解决方案,这些问题便迎刃而解,只要在前方架设一台无线路由器和数台千视编码器。 摄像机则可以通过千视电子编码器设备,直接将输出的SDI或HDMI转换成NDI信号,通过网线或Wifi传输,同样可被局域网中的导播电脑接收。这样就算不依靠昂贵的图传设备,也能实现摄像机的自由移动,并确保视频高清、低延时、无卡顿传输。

    时间:2020-06-01 关键词: 音视频信号 编码

  • 比H.265更先进!MPEG-5编码标准落地:华为、高通、三星首批支持

    比H.265更先进!MPEG-5编码标准落地:华为、高通、三星首批支持

    经过两年时间的紧张工作,由ISO(国际标准化组织)牵头、华为、高通、三星等企业领导制定MPEG-5 EVC编码标准正式落子定稿。 本周,华为、高通、三星出面欢迎MPEG-5 EVC的推出,除了首批支持,三大主要贡献者也表态会采取多种方式扩大新标准的影响力。 MPEG-5 EVC是继1993年的MPEG-1(主要用于CD视频)、1995年的MPEG-2(主要用于DVD和数字广播电视)、2003年的MPEG-4 Part10(AVC/H.264)、2013年的MPEG HEVC(H.265)后,又一划时代的编码标准。 我们知道,当前H.265主要用于4K、HDR(高动态范围)、WCG视频(宽色域),MPEG-5的使命在于让4K、8K、VR/AR、HDR以更快、更优质的方式普及。 经查,MPEG-5 EVC有Layer1(基本模式)和Layer2(主模式)两个层级,Layer 1免授权费,Layer 2则包含所有的技术组件并支持单独开闭,至少120帧、10位精度。 测试数据显示,MPEG-5 EVC在主模式下拥有和H.265相同的视频质量,但平均比特率降低26%;基本模式相较于H.264,平均比特率降低31%,解码时间减少60%。

    时间:2020-05-22 关键词: 华为 高通 格式 编码

  • 淘汰H.265!联发科天玑1000首发支持AV1视频编码

    淘汰H.265!联发科天玑1000首发支持AV1视频编码

    联发科今天宣布,旗下旗舰级5G SoC处理器天玑1000已支持先进的AV1视频编码格式,这也是全球第一款集成AV1硬件编码器的SoC芯片,可以流畅播放AV1格式的4K/60fps高清视频。 AV1视频编码出自开放媒体联盟(AOM),诞生于2018年6月,相比目前的H.265(HEVC)编码,不仅能保持原视频的分辨率、帧率、比特率,视频体积还能再缩小20%,这就意味着在同等带宽下可以传输更高清的画质。 更诱人的是,AV1编码开源、免版权费,不像H.265那样需高昂的专利费、复杂的专利授权。 而相比于Google推出的另一种视频编码格式VP9,AV1的压缩率也要高出30%。 AOM联盟已经迅速吸引了诸多行业巨头加盟,包括Google、微软、亚马逊、苹果、Facebook、思科、Intel、ARM、Mozilla、Netfix、腾讯、爱奇艺等等,其中爱奇艺是国内第一家支持AV1格式的视频网站。 联发科天玑1000集成了最新的ARM A77 CPU、G77 GPU架构,用于独立的APU 3.0 AI单元、ISP图像单元,并支持5G双模、5G载波聚合、5G双卡双待,号称6GHz以下频段5G速率最快。

    时间:2020-05-21 关键词: 视频 联发科 天玑1000 av1 h.265 编码

  • 二维码的原理是什么样子的

    二维码的原理是什么样子的

    二维码是什么原理?不知道从什么时候开始,我们的生活突然之间就充满了二维码,看网页要扫二维码,加好友要扫二维码,现在连楼下卖草莓的大爷都支持扫码支付,那么,你有没有想过,这个长得很奇怪的二维码,到底是怎么来的呢?它的原理是什么?看完你就知道了 其实在介绍二维码原理之前你可能已经猜到了,二维码就是把信息翻译成黑白小方块,然后填到这个大方块里,这有点类似中学考试用的答题卡,就是把信息变成机器可扫描图案,一秒钟就能知道你得了多少分。当然,二维码的原理和答题卡还不太一样,这个稍后会讲到。 我们先来说一下二维码的哥哥----条形码。也就是超时收银员扫的那个黑白条,电脑在水平方向上识别粗细不均的黑白条,就能找出藏在其中的商品编号信息,相比于只在一个维度上携带信息的条形码,“二维码”在水平垂直两个维度上都携带了信息,也就做成了方块状的样子,条形码和二维码这一对好兄弟说白了,其实就是给数字、字母、符号等这些字符换了一身衣服,把他们打扮成了能被手机相机识别的黑白条或块。那么,最关键的问题来了,这些字符,到底是怎么变成这种二维码图案的呢? 这就要提到一个人类具有划时代意义的伟大发明“二进制”。我们平时使用的数字。字符、汉字等各种字符,虽然画风完全不同,但是机智的人类发明了一个方法,使他们都可以被统一转换成又0和1组成的二进制数字序列,这个转换的过程叫做编码,国际上有几套通用的编码规则,我们今天就用一个例子来感受一下,编码是怎么回事。比如AB这个由两个英文字母组成的字符,根据编码规则,每一个独立的英文字母都有唯一一个十进制数字与之对应,而像AB这样的字符串则要在对应数字的基础上再做运算,而运算的结果再转换成二进制,就变成“000111001101”这样的数字,哦对了,整个计算机和互联网文明都是建立在这种二进制编码上的,你现在看得视频,不管在你的电脑还是手机里,其实也只是一串0和1而以。 我们回到二维码的生成原理上,字符在变成只有0和1组成的数字序列后,在进行一系列优化算法(此处自行脑补一系列优化算法),就得到了最终的二进制编码。在最后的这串编码中,一个0就对应的是一个'白色小方块',一个1就对应的一个‘黑色小方块’,我们把这些小方块分成8个一组填进大方块里,这就是一个完整的、可以被手机相机识别的二维码图案了。 如果你要问为什么所有二维码角上有3个大方块,其实这3个一模一样的方块是用来给收相机定位的,不信你就扫一扫,是不是不管正着扫、反着扫还是斜着扫结果都是一样的?

    时间:2020-05-13 关键词: 二维码 条形码 编码

  • 李莱曲线和阻力公式在海底管道检测信标设备测试中的研究

    李莱曲线和阻力公式在海底管道检测信标设备测试中的研究

    引言 近年来,由于海洋防务和开发的需求,水下遥控技术越来越受重视。目前来看,在海水中传递信息、无线电波和光很容易被吸收并形成散射,而声波在海洋中的传播速度约为1530m/s,远远大于在空气中的340m/s的速度,并且衰减很小。所以声波是目前水中信息传输的主要载体,水声通信成为水下遥控信息传输的主要手段。 海底管道检测信标设备(以下简称信标)应用水声通信的调制解调和编码解码技术对海底管道进行漏磁检测,以防管道因年久失修或腐蚀而出现故障。 信标通常用于水下300m以内的浅海领域的石油管道故障检测。故信标由静止状态从水面下降到水底过程的研究和从水下解锁上浮到水面过程的研究对于信标测试具有实际价值。运动状态的分析、计算、仿真和实验对于确定信标设备的最佳材质和尺寸以及水下的实际布放具有指导意义。 1 、球体水下运动状态研究 信标设备的形状与球形物体有相似之处。在分析信标设备的运动状态前,分析和研究相同材质和体积等参数的球体在水下的运动状态是很有必要和价值的。通过修正球体运动的阻力通式即可得到信标运动所受阻力的通式。 1.1 球体水下受力分析 球体由静止状态从水面下降到水底的过程如图1所示,初速度、初加速度和初始位移均为0。 忽略流体相对地面的运动,球体下落过程做的是变加速直线运动。球体水下主要受力为重力、浮力和阻力。重力和浮力为恒定值,球体阻力随速度的增大而增大。当达到一定速度时,球体处于平衡状态,保持匀速直线运动继续下降,直到水底。信标设备放置区域为200m以内的浅海领域,故分析0m~300m位移内球体的运动。 根据牛顿第二定律得到运动方程: (1) 雷廷智根据牛顿理论推导出球体在理想流体中运动的阻力公式,后经修正得到湍流条件下的压差阻力公式: Re≤1时,阻力为粘滞阻力,应用斯托克斯公式,阻力与速度成正比。 当物体运动的雷诺数在牛顿-雷廷智公式与斯托克斯公式之间,即1≤Re≤500,两种阻力同时影响物体的运动。阿连曾在实验基础上提出一个适合2≤Re≤300的阻力公式[1]: 其中Φ为阻力系数,是雷诺数的函数,即f=f(Re)。英国物理学家李莱用实验方法确定了Φ-Re关系曲线[3]如图2所示。曲线的纵坐标与横坐标均用对数表示。可以看出,Φ随Re的增大而连续平滑地减小。已知Re可以估算出阻力系数。 1) Re≤1时,斯托克斯公式成立,主要考虑粘滞阻力,流体处于层流状态,阻力与速度成正比; 2) 500≤Re≤2≤105时,牛顿-雷廷智公式成立,主要考虑压差阻力,流体处于紊流状态,阻力与速度的平方成正比; 3) 2≤Re≤300时,阿连公式成立,两种力并存,雷诺数不同,两种力的比例不同,流体处于过度状态。 1.2 球体阻力的修正 考虑信标的当量直径很大,故达到沉降末速时的雷诺数可高达李莱曲线的末端,故要推测出超出牛顿-雷廷智公式区域外的阻力系数,而不能仅仅采用固定的阻力系数。根据李莱曲线修正后的阻力系数与雷诺数的关系如下: (7) 由于Re是速度和直径的函数,故直径确定下,可分段求解二阶微分方程,确定每段的初始条件,最后利用MATLAB求解微分方程,得到运动关系曲线。这种修正阻力系数的方法使阻力系数的确定更加精确,进而仿真结果更加可信,适用于高雷诺数下阻力的计算。 1.3 球体MATLAB仿真结果 研究球体在水下的运动过程,方程如下: (8) 整理得: (9) 由于球体下落过程的雷诺数很大,故球体运动过程主要是在紊流区域,符合牛-雷公式,阻力系数为定值。 MATLAB仿真,将高阶微分方程转化为一阶微分方程组,即状态方程,然后基于龙格-库塔法求解此方程组,得到二阶微分方程满足初始条件下的特解。龙格-库塔法的一般调用格式为: 这两个函数分别采用了二阶、三阶、四阶和五阶龙格-库塔法,并采用自适应和变步长的求解方法,即当解的变化较慢时采用较大的步长,从而使得计算速度很快;当解的变化较快时步长会自动变小,从而提高计算精度。 2 、信标水下运动状态研究 2.1 信标阻力公式的修正 修正球体在介质中沉降速度及介质阻力公式,可以分析计算出信标设备在介质中的沉降规律。球形系数X为相同体积下球体的表面积与非球体的表面积之比,用其表征形状与球体的偏离程度。 经过修正后,非球体在水中所受阻力通式为: (12) 其中,Φf为非球体在水中所受阻力的阻力系数,dv为体积当量直径,即等体积下球体的直径。vf为非球体在水中的运行速度。非球体在水下的沉降末速公式为: 一般来说,球体比其他形状的物体更便于介质从周围流过。等体积条件下,球体的表面积最小,球形系数越小,说明物体越不规则,所受的阻力越大,沉降末速也就越小。总信标设备包括压载基座和信标仪器舱。如图3所示。 2.2 信标运动方程的计算 信标下降过程的主要参数如下: SolidWords计算测得总信标设备的表面积约为:S=1.277m2 计算得出: 体积当量直径: ; 球形系数: 修正后的阻力系数为: 下沉过程中,相同密度和当量直径的球体经过计算后的阻力如下: (17) 上浮过程中,信标设备的基座留在水下,信标仪器舱解锁上浮,上浮过程的主要参数如下: SolidWords计算测得信标仪器舱的表面积约为: s=0.8577m2 计算得出: 体积当量直径: 球形系数: 修正后的阻力系数为: 2.3 MATLAB仿真计算 信标下降运动状态仿真如图4; 相同当量直径球体下降运动状态仿真曲线如图5; 信标上升运动状态仿真曲线如图6; 相同当量直径球体上升运动状态仿真曲线如图7。 2.4 信标运动状态结论 信标设备下沉过程中1s达到沉降末速1.59m/s,而后以该速度做匀速直线运动。相同当量直径球体约3s达到沉降末速3.19m/s,后以该速度做匀速直线运动。信标设备上浮过程中1s达到末速1.44m/s,相同当量直径球体约2s达到沉降末速2.175m/s。信标设备的沉降末速约为相同当量直径球体沉降末速的X倍,信标设备的表面积越接近标准球形,其球形系数越接近1,运动末速越接近球体的沉降末速,运动状态越接近具有相同当量直径的球体。可见,该信标的形状与相同当量直径的标准球体相差还是较大的。 3 、山东烟台海试 在船上首先将信标连同基座锁紧后投入海里后进行遥控操作,解锁上浮正常。传输距离约为100m,水深约13m ,上浮时间约为8s~9s,平均速度约为1.5m/s。与仿真结果1.44 m/s相差不大。 4 、总结 本文通过理论推导和仿真推导海底管道检测信标设备的水下布放与解锁上浮的运动状态,通过海试验证理论推导的正确性,最终验证了李莱曲线和阻力公式应用于信标设备运动分析的正确性和可行性。

    时间:2020-05-05 关键词: 设备 测试 编码

  • ASCII uinicode UTF8 UTF16 编码的故事

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们认为8个开关状态作为原子单位很好,于是他们把这称为"字节"。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出更多的状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为"计算机"。开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种不同的状态。他们把其中的编号从0开始的32种状态分别规定了特殊的用途,一但终端设备或者打印机遇上这些约定好的字节时,就要做一些约定的动作。遇上 00x10, 终端就换行,遇上0x07, 终端就向人们嘟嘟叫,例好遇上0x1b, 打印机就打印反白的字,对于终端就用彩色显示字母。他们看到这样很好,于是就把这些0x20(十进制32)以下的字节状态称为"控制码"。他们又把所有的空格、标点符号、数字、大小写字母分别用连续的字节状态表示,一直编到了第127号,这样计算机就可以用不同字节来存储英语的 文字了。大家看到这样,都感觉很好,于是大家都把这个方案叫做 ANSI 的"Ascii"编码(American Standard Code for Information Interchange,美国信息互换标准代码)。当时世界上所有的计算机都用同样的ASCII方案来保存英文文字。后来,就像建造巴比伦塔一样,世界各地的都开始使用计算机,但是很多国家用的不是英文,他们用到的许多字母在ASCII中根本没有,为了也可以在计算机中保存他们的文字,他们决定采用127号之后的空位来表示这些新的字母、符号,还加入了很多画表格时需要用下到的横线、竖线、交叉等形状,一直把序号编到了最后一个状态255。从128到255这一页的字符集被称"扩展字符集"。从此之后,贪婪的人类再没有新的状态可以用了,美帝国主义可能没有想到还有第三世界国家的人们也希望可以用到计算机吧!等中国人们得到计算机时,已经没有可以利用的字节状态来表示汉字,况且有6000多个常用汉字需要保存呢。但是这难不倒智慧的中国人民,我们不客气地把那些127号之后的奇异符号们直接取消掉,并且规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(他称之为高字节)从0xA1用到 0xF7,后面一个字节(低字节)从0xA1到0xFE,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,我们还把数学符号、罗马希腊的字母、日文的假名们都编进去了,连在 ASCII 里本来就有的数字、标点、字母都统统重新编了两个字节长的编码,这就是常说的"全角"字符,而原来在127号以下的那些就叫"半角"字符了。中国人民看到这样很不错,于是就把这种汉字方案叫做"GB2312"。GB2312 是对 ASCII 的中文扩展。但是中国的汉字太多了,我们很快就就发现有许多人的人名没有办法在这里打出来,特别是某些很会麻烦别人的国家领导人(如朱镕基的“镕”字)。于是我们不得不继续把 GB2312 没有用到的码位找出来老实不客气地用上。后来还是不够用,于是干脆不再要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始,不管后面跟的是不是扩展字符集里的内容。结果扩展之后的编码方案被称为 GBK 标准,GBK 包括了 GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。后来少数民族也要用电脑了,于是我们再扩展,又加了几千个新的少数民族的字,GBK 扩成了 GB18030。从此之后,中华民族的文化就可以在计算机时代中传承了。中国的程序员们看到这一系列汉字编码的标准是好的,于是通称他们叫做 "DBCS"(Double Byte Charecter Set 双字节字符集)。在DBCS系列标准里,最大的特点是两字节长的汉字字符和一字节长的英文字符并存于同一套编码方案里,因此他们写的程序为了支持中文处理,必须要注意字串里的每一个字节的值,如果这个值是大于127的,那么就认为一个双字节字符集里的字符出现了。那时候凡是受过加持,会编程的计算机僧侣们都要每天念下面这个咒语数百遍:"一个汉字算两个英文字符!一个汉字算两个英文字符……"因为当时各个国家都像中国这样搞出一套自己的编码标准,结果互相之间谁也不懂谁的编码,谁也不支持别人的编码,连大陆和台湾这样只相隔了150海里,使用着同一种语言的兄弟地区,也分别采用了不同的 DBCS 编码方案——当时的中国人想让电脑显示汉字,就必须装上一个"汉字系统",专门用来处理汉字的显示、输入的问题,但是那个台湾的愚昧封建人士写的算命程序就必须加装另一套支持 BIG5 编码的什么"倚天汉字系统"才可以用,装错了字符系统,显示就会乱了套!这怎么办?而且世界民族之林中还有那些一时用不上电脑的穷苦人民,他们的文字又怎么办?真是计算机的巴比伦塔命题啊!正在这时,大天使加百列及时出现了——一个叫 ISO (国际标谁化组织)的国际组织决定着手解决这个问题。他们采用的方法很简单:废了所有的地区性编码方案,重新搞一个包括了地球上所有文化、所有字母和符号的编码!他们打算叫它"Universal Multiple-Octet Coded Character Set",简称 UCS, 俗称 "UNICODE"。UNICODE 开始制订时,计算机的存储器容量极大地发展了,空间再也不成为问题了。于是 ISO 就直接规定必须用两个字节,也就是16位来统一表示所有的字符,对于ascii里的那些"半角"字符,UNICODE 包持其原编码不变,只是将其长度由原来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。由于"半角"英文符号只需要用到低8位,所以其高 8位永远是0,因此这种大气的方案在保存英文文本时会多浪费一倍的空间。这时候,从旧社会里走过来的程序员开始发现一个奇怪的现象:他们的strlen函数靠不住了,一个汉字不再是相当于两个字符了,而是一个!是 的,从 UNICODE 开始,无论是半角的英文字母,还是全角的汉字,它们都是统一的"一个字符"!同时,也都是统一的"两个字节",请注意"字符"和"字节"两个术语的不同, "字节"是一个8位的物理存贮单元,而"字符"则是一个文化相关的符号。在UNICODE 中,一个字符就是两个字节。一个汉字算两个英文字符的时代已经快过去了。从前多种字符集存在时,那些做多语言软件的公司遇上过很大麻烦,他们为了在不同的国家销售同一套软件,就不得不在区域化软件时也加持那个双字节字符集咒语,不仅要处处小心不要搞错,还要把软件中的文字在不同的字符集中转来转去。UNICODE 对于他们来说是一个很好的一揽子解决方案,于是从 Windows NT 开始,MS 趁机把它们的操作系统改了一遍,把所有的核心代码都改成了用 UNICODE 方式工作的版本,从这时开始,WINDOWS 系统终于无需要加装各种本土语言系统,就可以显示全世界上所有文化的字符了。但是,UNICODE 在制订时没有考虑与任何一种现有的编码方案保持兼容,这使得 GBK 与UNICODE 在汉字的内码编排上完全是不一样的,没有一种简单的算术方法可以把文本内容从UNICODE编码和另一种编码进行转换,这种转换必须通过查表来进行。如前所述,UNICODE 是用两个字节来表示为一个字符,他总共可以组合出65535不同的字符,这大概已经可以覆盖世界上所有文化的符号。如果还不够也没有关系,ISO已经准备了UCS-4方案,说简单了就是四个字节来表示一个字符,这样我们就可以组合出21亿个不同的字符出来(最高位有其他用途),这大概可以用到银河联邦成立那一天吧!UNICODE 来到时,一起到来的还有计算机网络的兴起,UNICODE 如何在网络上传输也是一个必须考虑的问题,于是面向传输的众多 UTF(UCS Transfer Format)标准出现了,顾名思义,UTF8就是每次8个位传输数据,而UTF16就是每次16个位,只不过为了传输时的可靠性,从UNICODE到 UTF时并不是直接的对应,而是要过一些算法和规则来转换。受到过网络编程加持的计算机僧侣们都知道,在网络里传递信息时有一个很重要的问题,就是对于数据高低位的解读方式,一些计算机是采用低位先发送的方法,例如我们PC机采用的 INTEL 架构;而另一些是采用高位先发送的方式。在网络中交换数据时,为了核对双方对于高低位的认识是否是一致的,采用了一种很简便的方法,就是在文本流的开始时向对方发送一个标志符——如果之后的文本是高位在位,那就发送"FEFF",反之,则发送"FFFE"。不信你可以用二进制方式打开一个UTF-X格式的文件,看看开头两个字节是不是这两个字节?下面是Unicode和UTF-8转换的规则UnicodeUTF-80000 - 007F0xxxxxxx0080 - 07FF110xxxxx 10xxxxxx0800 - FFFF1110xxxx 10xxxxxx 10xxxxxx例如"汉"字的Unicode编码是6C49。6C49在0800-FFFF之间,所以要用3字节模板:1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是:0110 1100 0100 1001,将这个比特流按三字节模板的分段方法分为0110 110001 001001,依次代替模板中的x,得到:1110-0110 10-110001 10-001001,即E6 B1 89,这就是其UTF8的编码。讲到这里,我们再顺便说说一个很著名的奇怪现象:当你在 windows 的记事本里新建一个文件,输入"联通"两个字之后,保存,关闭,然后再次打开,你会发现这两个字已经消失了,代之的是几个乱码!呵呵,有人说这就是联通之所以拼不过移动的原因。其实这是因为GB2312编码与UTF8编码产生了编码冲撞的原因。当一个软件打开一个文本时,它要做的第一件事是决定这个文本究竟是使用哪种字符集的哪种编码保存的。软件一般采用三种方式来决定文本的字符集和编码:检测文件头标识,提示用户选择,根据一定的规则猜测最标准的途径是检测文本最开头的几个字节,开头字节 Charset/encoding,如下表:EF BB BF UTF-8FF FE UTF-16/UCS-2, little endianFE FF UTF-16/UCS-2, big endianFF FE 00 00 UTF-32/UCS-4, little endian.00 00 FE FF UTF-32/UCS-4, big-endian.当你新建一个文本文件时,记事本的编码默认是ANSI(代表系统默认编码,在中文系统中一般是GB系列编码), 如果你在ANSI的编码输入汉字,那么他实际就是GB系列的编码方式,在这种编码下,"联通"的内码是:c1 1100 0001aa 1010 1010cd 1100 1101a8 1010 1000注意到了吗?第一二个字节、第三四个字节的起始部分的都是"110"和"10",正好与UTF8规则里的两字节模板是一致的,于是当我们再次打开记事本时,记事本就误认为这是一个UTF8编码的文件,让我们把第一个字节的110和第二个字节的10去掉,我们就得到了"00001 101010",再把各位对齐,补上前导的0,就得到了"0000 0000 0110 1010",不好意思,这是UNICODE的006A,也就是小写的字母"j",而之后的两字节用UTF8解码之后是0368,这个字符什么也不是。这就是只有"联通"两个字的文件没有办法在记事本里正常显示的原因。而如果你在"联通"之后多输入几个字,其他的字的编码不见得又恰好是110和10开始的字节,这样再次打开时,记事本就不会坚持这是一个utf8编码的文件,而会用ANSI的方式解读之,这时乱码又不出现了。

    时间:2019-07-10 关键词: ascii 编码

  • C语言“绰号”之typedef的理解

    C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是 stu,要想定义一个结构体变量就得这样写:struct stu stu1;struct 看起来就是多余的,但不写又会报错。如果为 struct stu 起了一个别名 STU,书写起来就简单了:STU stu1;这种写法更加简练,意义也非常明确,不管是在标准头文件中还是以后的编程实践中,都会大量使用这种别名。使用关键字 typedef 可以为类型起一个新的别名,语法格式为:typedef  oldName  newName;oldName 是类型原来的名字,newName 是类型新的名字。例如:typedef int INTEGER; INTEGER a, b; a = 1; b = 2;INTEGER a,b;等于int a,b;。typedef 还可以给数组、指针、结构体等类型定义别名。先来看一个给数组类型定义别名的例子:typedef char ARRAY20 [20] ;表示 ARRAY20 是类型char [20]的别名。它是一个长度为 20 的数组类型。接着可以用 ARRAY20 定义数组:ARRAY20 a1, a2, s1, s2;它等价于:char a1[20], a2[20], s1[20], s2[20];又如,为结构体类型定义别名:typedef struct stu{     char name[20];     int age;     char sex; } STU;STU 是 struct stu 的别名,可以用 STU 定义结构体变量:STU body1,body2;它等价于:struct stu body1, body2;再如,为指针类型定义别名:typedef int (*PTR_TO_ARR)[4];表示 PTR_TO_ARR 是类型int * [4]的别名,它是一个二维数组指针类型。接着可以使用 PTR_TO_ARR 定义二维数组指针:PTR_TO_ARR p1, p2;按照类似的写法,还可以为函数指针类型定义别名:typedef int (*PTR_TO_FUNC)(int, int); PTR_TO_FUNC pfunc;为指针定义别名。#includetypedef char (*PTR_TO_ARR)[30]; typedef int (*PTR_TO_FUNC)(int, int); int max(int a, int b){     return a>b ? a : b; } char str[3][30] = {     "http://write.blog.csdn.net/postedit",     "C",     "C-Language" }; int main(){     PTR_TO_ARR parr = str;     PTR_TO_FUNC pfunc = max;     int i;         printf("max: %dn", (*pfunc)(10, 20));     for(i=0; i<3; i++){         printf("str[%d]: %sn", i, *(parr+i));     }     return 0; }需要强调的是,typedef 是赋予现有类型一个新的名字,而不是创建新的类型。为了“见名知意”,请尽量使用含义明确的标识符,并且尽量大写。

    时间:2019-04-09 关键词: C语言 typedef 编码

  • VB 获取网页源码后乱码怎么办?

    utf-8 编码问题用我这个试试Public Function GetBody(ByVal URL$, Optional ByVal Coding$ = "GB2312") Dim ObjXML On Error Resume Next Set ObjXML = CreateObject("Microsoft.XMLHTTP") With ObjXML .Open "Get", URL, False, "", "" .setRequestHeader "If-Modified-Since", "0" .Send GetBody = .responseBody End With GetBody = BytesToBstr(GetBody, Coding) Set ObjXML = Nothing End Function Public Function BytesToBstr(strBody, CodeBase) Dim ObjStream Set ObjStream = CreateObject("Adodb.Stream") With ObjStream .Type = 1 .Mode = 3 .Open .Write strBody .Position = 0 .Type = 2 .Charset = CodeBase BytesToBstr = .ReadText .Close End With Set ObjStream = Nothing End Function注意第一行代码中Coding$ = "GB2312" 表示获取的网页内容为GB2312编码格式,如果出现乱码,那么就换成Coding$ = "utf-8"返回值为:a = GetBody("http://www.baidu.com")也有人说strconv( .responseBody,vbUnicode) 就可以了

    时间:2019-03-27 关键词: vb 编码

  • 《视频直播技术详解》系列课程:编码和封装

    视频编码的意义原始视频数据存储空间大,一个 1080P 的 7 s 视频需要 817 MB原始视频数据传输占用带宽大,10 Mbps 的带宽传输上述 7 s 视频需要 11 分钟而经过 H.264 编码压缩之后,视频大小只有 708 k ,10 Mbps 的带宽仅仅需要 500 ms ,可以满足实时传输的需求,所以从视频采集传感器采集来的原始视频势必要经过视频编码。基本原理那为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?核心思想就是去除冗余信息:空间冗余:图像相邻像素之间有较强的相关性时间冗余:视频序列的相邻图像之间内容相似编码冗余:不同像素值出现的概率不同视觉冗余:人的视觉系统对某些细节不敏感知识冗余:规律性的结构可由先验知识和背景知识得到视频本质上讲是一系列图片连续快速的播放,最简单的压缩方式就是对每一帧图片进行压缩,例如比较古老的 MJPEG 编码就是这种编码方式,这种编码方式只有帧内编码,利用空间上的取样预测来编码。形象的比喻就是把每帧都作为一张图片,采用 JPEG 的编码格式对图片进行压缩,这种编码只考虑了一张图片内的冗余信息压缩,如图 1,绿色的部分就是当前待编码的区域,灰色就是尚未编码的区域,绿色区域可以根据已经编码的部分进行预测(绿色的左边,下边,左下等)。但是帧和帧之间因为时间的相关性,后续开发出了一些比较高级的编码器可以采用帧间编码,简单点说就是通过搜索算法选定了帧上的某些区域,然后通过计算当前帧和前后参考帧的向量差进行编码的一种形式,通过下面两个图 2 连续帧我们可以看到,滑雪的同学是向前位移的,但实际上是雪景在向后位移,P 帧通过参考帧(I 或其他 P 帧)就可以进行编码了,编码之后的大小非常小,压缩比非常高。可能有同学对这两张图片怎么来的感兴趣,这里用了 FFmpeg 的两行命令来实现,具体 FFmpeg 的更多内容请看后续章节:第一行生成带有移动矢量的视频第二行把每一帧都输出成图片ffmpeg  -flags2 +export_mvs -i tutu.mp4 -vf codecview=mv=pf+bf+bb tutudebug2.mp4 ffmpeg -i tutudebug2.mp4 'tutunormal-%03d.bmp'除了空间冗余和时间冗余的压缩,主要还有编码压缩和视觉压缩,下面是一个编码器主要的流程图:图 3、图 4 两个流程,图 3 是帧内编码,图 4 是帧间编码,从图上看到的主要区别就是第一步不相同,其实这两个流程也是结合在一起的,我们通常说的 I 帧和 P 帧就是分别采用了帧内编码和帧间编码。编码器的选择前面梳理了一下编码器的原理和基本流程,编码器经历了数十年的发展,已经从开始的只支持帧内编码演进到现如今的 H.265 和 VP9 为代表的新一代编码器,就目前一些常见的编码器进行分析,带大家探索一下编码器的世界。1) H.264 简介H.264/AVC 项目意图创建一种视频标准。与旧标准相比,它能够在更低带宽下提供优质视频(换言之,只有 MPEG-2,H.263 或 MPEG-4 第 2 部分的一半带宽或更少),也不增加太多设计复杂度使得无法实现或实现成本过高。另一目的是提供足够的灵活性以在各种应用、网络及系统中使用,包括高、低带宽,高、低视频分辨率,广播,DVD 存储,RTP/IP 网络,以及 ITU-T 多媒体电话系统。H.264/AVC 包含了一系列新的特征,使得它比起以前的编解码器不但能够更有效的进行编码,还能在各种网络环境下的应用中使用。这样的技术基础让 H.264 成为包括 YouTube 在内的在线视频公司采用它作为主要的编解码器,但是使用它并不是一件很轻松的事情,理论上讲使用 H.264 需要交纳不菲的专利费用。专利许可和 MPEG-2 第一部分、第二部分,MPEG-4 第二部分一样,使用 H.264/AVC 的产品制造商和服务提供商需要向他们的产品所使用的专利的持有者支付专利许可费用。这些专利许可的主要来源是一家称为 MPEG-LA LLC 的私有组织,该组织和 MPEG 标准化组织没有任何关系,但是该组织也管理著 MPEG-2 第一部分系统、第二部分视频、MPEG-4 第二部分视频和其它一些技术的专利许可。其他的专利许可则需要向另一家称为 VIA Licensing 的私有组织申请,这家公司另外也管理偏向音频压缩的标准如 MPEG-2 AAC 及 MPEG-4 Audio 的专利许可。H.264 的开源实现:OpenH264、x264OpenH264 是思科实现的开源 H.264 编码,虽然 H.264 需要交纳不菲的专利费用,但是专利费有一个年度上限,思科把 OpenH264 实现的年度专利费交满后,OpenH264 事实上就可以免费自由的使用了。x264 是一个采用 GPL 授权的视频编码自由软件。x264 的主要功能在于进行 H.264/MPEG-4 AVC 的视频编码,而不是作为解码器(decoder)之用。除去费用问题比较来看:OpenH264 CPU 的占用相对 x264低很多OpenH264 只支持 baseline profile,x264 支持更多 profile2) HEVC/H.265 简介高效率视频编码(High Efficiency Video Coding,简称 HEVC)是一种视频压缩标准,被视为是 ITU-T H.264/MPEG-4 AVC 标准的继任者。2004 年开始由 ISO/IEC Moving Picture Experts Group(MPEG)和 ITU-T Video Coding Experts Group(VCEG)作为 ISO/IEC 23008-2 MPEG-H Part 2 或称作 ITU-T H.265 开始制定。第一版的 HEVC/H.265 视频压缩标准在 2013 年 4 月 13 日被接受为国际电信联盟(ITU-T)的正式标准。HEVC 被认为不仅提升视频质量,同时也能达到 H.264/MPEG-4 AVC 两倍之压缩率(等同于同样画面质量下比特率减少了 50%),可支持 4K 分辨率甚至到超高清电视(UHDTV),最高分辨率可达到 8192×4320(8K 分辨率)。专利许可HEVC Advance 要求所有包括苹果、YouTube、Netflix、Facebook、亚马逊等使用 H.265 技术的内容制造商上缴内容收入的 0.5%作为技术使用费,而整个流媒体市场每年达到约 1000 亿美元的规模,且不断增长中,征收 0.5%绝对是一笔庞大的费用。而且他们还没有放过设备制造商,其中电视厂商需要支付每台 1.5 美元、移动设备厂商每台 0.8 美元的专利费。他们甚至没有放过蓝光设备播放器、游戏机、录像机这样的厂商,这些厂商必须支付每台 1.1 美元的费用。最无法令人接受的是,HEVC Advance 的专利使用权追溯到了厂商的「」”,意思是之前已经发售的产品依然要追缴费用。H.265 的开源实现:libde265、x265libde265 HEVC 由 struktur 公司以开源许可证 GNU LesserGeneral Public License (LGPL) 提供,观众可以较慢的网速下欣赏到最高品质的影像。跟以前基于H.264标准的解码器相比,libde265 HEVC 解码器可以将您的全高清内容带给多达两倍的受众,或者,减少 50%流媒体播放所需要的带宽。高清或者 4K/8K 超高清流媒体播放,低延迟/低带宽视频会议,以及完整的移动设备覆盖。具有「拥塞感知」视频编码的稳定性,十分适合应用在 3/4G 和 LTE 网络。x265 是由 MulticoreWare 开发,并开源。采用 GPL 协议,但是资助这个项目的几个公司组成了联盟可以在非 GPL 协议下使用这个软件。3) VP8 简介VP8 是一个开放的视频压缩格式,最早由 On2 Technologies 开发,随后由 Google 发布。同时 Google 也发布了 VP8 编码的实做库:libvpx,以 BSD 授权条款的方式发行,随后也附加了专利使用权。而在经过一些争论之后,最终 VP8 的授权确认为一个开放源代码授权。目前支持 VP8 的网页浏览器有 Opera、Firefox 和 Chrome。专利许可2013 年三月,Google 与 MPEG LA 及 11 个专利持有者达成协议,让 Google 获取 VP8 以及其之前的 VPx 等编码所可能侵犯的专利授权,同时 Google 也可以无偿再次授权相关专利给 VP8 的用户,此协议同时适用于下一代 VPx 编码。至此 MPEG LA 放弃成立 VP8 专利集中授权联盟,VP8 的用户将可确定无偿使用此编码而无须担心可能的专利侵权授权金的问题。VP8 的开源实现:libvpxlibvpx 是 VP8 的唯一开源实现,由 On2 Technologies 开发,Google 收购后将其开放源码,License 非常宽松可以自由使用。4) VP9 简介VP9 的开发从 2011 年第三季开始,目标是在同画质下,比 VP8 编码减少 50% 的文件大小,另一个目标则是要在编码效率上超越 HEVC 编码。2012 年 12 月 13 日,Chromium 浏览器加入了 VP9 编码的支持。Chrome 浏览器则是在 2013 年 2 月 21 日开始支持 VP9 编码的视频播放。Google 宣布会在 2013 年 6 月 17 日完成 VP9 编码的制定工作,届时 Chrome 浏览器将会把 VP9 编码默认引导。2014 年 3 月 18 日,Mozilla 在 Firefox 浏览器中加入了 VP9 的支持。2015 年 4 月 3 日,谷歌发布了libvpx1.4.0 增加了对 10 位和 12 位的比特深度支持、4:2:2 和 4:4:4 色度抽样,并 VP9 多核心编/解码。专利许可VP9 是一个开放格式、无权利金的视频编码格式。VP9 的开源实现:ibvpxlibvpx 是 VP9 的唯一开源实现,由 Google 开发维护,里面有部分代码是 VP8 和 VP9 公用的,其余分别是 VP8 和 VP9 的编解码实现。VP9 和 H.264 和 HEVC 比较HEVC 和 H.264 在不同分辨率下的比较跟 H.264/MPEG-4 相比,HEVC 的平均比特率减低值为:可见码率下降了 60% 以上。HEVC (H.265) 对 VP9 和 H.264 在码率节省上有较大的优势,在相同 PSNR 下分别节省了 48.3% 和 75.8%。H.264 在编码时间上有巨大优势,对比 VP9 和 HEVC(H.265) ,HEVC 是 VP9 的 6 倍,VP9 是 H.264 的将近 40 倍5) FFmpeg谈到视频编码相关内容就不得不提一个伟大的软件包 - FFmpeg。FFmpeg 是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了 libavcodec -这是一个用于多个项目中音频和视频的解码器库,以及 libavformat -一个音频与视频格式转换库。FFmpeg 这个单词中的 FF 指的是 Fast Forward。有些新手写信给 FFmpeg 的项目负责人,询问 FF 是不是代表 Fast Free 或者 Fast Fourier 等意思,FFmpeg  的项目负责人回信说:「Just for the record, the original meaning of FF in FFmpeg is Fast Forward.」这个项目最初是由 Fabrice Bellard 发起的,而现在是由 Michael Niedermayer 在进行维护。许多 FFmpeg 的开发者同时也是 MPlayer 项目的成员,FFmpeg 在 MPlayer 项目中是被设计为服务器版本进行开发。FFmpeg 下载地址是 : https://ffmpeg.org/download.html可以浏览器输入下载,目前支持 Linux ,Mac OS,Windows 三个主流的平台,也可以自己编译到 Android 或者 iOS 平台。如果是 Mac OS ,可以通过 brew 安装 brew install ffmpeg --with-libvpx --with-libvorbis --with-ffplay我们可以用 FFmpeg 来做哪些有用有好玩的事情呢?通过一系列小实验来带大家领略 FFmpeg 的神奇和强大。FFmpeg 录屏通过一个小例子看一下怎么在 Mac OS 下面使用 FFmpeg 进行录屏:输入:ffmpeg -f avfoundation -list_devices true -i ""输出:[AVFoundation input device @ 0x7fbec0c10940] AVFoundation video devices: [AVFoundation input device @ 0x7fbec0c10940] [0] FaceTime HD Camera [AVFoundation input device @ 0x7fbec0c10940] [1] Capture screen 0 [AVFoundation input device @ 0x7fbec0c10940] [2] Capture screen 1 [AVFoundation input device @ 0x7fbec0c10940] AVFoundation audio devices: [AVFoundation input device @ 0x7fbec0c10940] [0] Built-in Microphone给出了当前设备支持的所有输入设备的列表和编号,我本地有两块显示器,所以 1 和 2 都是我屏幕,可以选择一块进行录屏。查看当前的 H.264 编解码器:输入:ffmpeg -codecs | grep 264输出: DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_vda ) (encoders: libx264 libx264rgb )查看当前的 VP8 编解码器:输入:ffmpeg -codecs | grep vp8输出:  DEV.L. vp8                  On2 VP8 (decoders: vp8 libvpx ) (encoders: libvpx )可以选择用 VP8 或者 H264 做编码器ffmpeg -r 30 -f avfoundation -i 1 -vcodec vp8 -quality realtime screen2.webm # -quality realtime 用来优化编码器,如果不加在我的 Air 上帧率只能达到 2orffmpeg -r 30 -f avfoundation -i 1 -vcodec h264 screen.mp4然后用 ffplay 播放就可以了ffplay screen.mp4orffplay screen2.webpFFmpeg 视频转换成 gif有一个特别有用的需求,在网上发现了一个特别有趣的视频想把它转换成一个动态表情,作为一个 IT 从业者,我第一个想到的不是下载一个转码器,也不是去找一个在线转换网站,直接利用手边的工具 FFmpeg,瞬间就完成了转码:ffmpeg -ss 10 -t 10  -i tutu.mp4  -s 80x60  tutu.gif ## -ss 指从 10s 开始转码,-t 指转换 10s 的视频 -sFFmpeg 录制屏幕并直播可以继续扩展例子1,直播当前屏幕的内容,向大家介绍一下怎么通过几行命令搭建一个测试用的直播服务:Step 1:首先安装 docker: 访问 https://www.docker.com/products/docker ,按操作系统下载安装。<p style="clear:both;min-height:1em;color:rgb(62,62,62);font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', 'Microsoft YaHei', Arial, s

    时间:2019-01-18 关键词: 封装 视频直播技术 编码

  • linux下文件系统和文件编辑

    linux下文件系统和文件编辑

    一、Linux文件和目录权限操作 每一个文件和目录的访问权限都有三组,每组用三位表示: (1)文件所属的用户具有读、写和可执行权限;(2)和文件、目录所属的用户的同组用户只有读和写的权限;(3)其他用户具备读的权限; -rwxrw-r-- 1 xiaoru xiaoru 444 Jun 25 07:42 variableShell.sh 修改文件权限的方法: 其中+/-/=分别代表:增加某个权限;取消某个权限;赋值某个权限其他权限清除; 修改增加某个权限: (1)的权限:chmod u+r/w/x 文件名;修改(2)的权限 chmod g+r/w/x 文件名;修改(3)的权限 chmod o+r/w/x 文件名; 减掉某个权限: (1)的权限:chmod u-r/w/x 文件名;修改(2)的权限 chmod g-r/w/x 文件名;修改(3)的权限 chmod o-r/w/x 文件名; 赋值成某个权限: (1)的权限:chmod u=r/w/x 文件名;修改(2)的权限 chmod g=r/w/x 文件名;修改(3)的权限 chmod o=r/w/x 文件名; 修改全部的权限chmod a+r/w/x 文件名;当然也可以直接chmod 666(权限值) 文件名。 二、linux文件和文件夹改变所属用户的操作 chown -h 用户组 文件/目录;将该文件/目录所属用户组由当前用户组修改为新的用户组; -rw-rw-r-- 1 xiaoru xiaoru 120 Jun 25 03:07 file.txt 执行sudo chown -h renyunjun file.txt -rw-rw-r-- 1 renyunjun xiaoru 120 Jun 25 03:07 file.txt 三、liunx下特殊权限SUID与SGID 1、设置SGID 使用chmod g+s filename;只要设置SGID之后该文件将具有所有组用户的特权,即不论那个用户只要能够看到该文件,那么就具备和该文件所属组相同的权限,可以任意操作该文件; 例如: 下xiaoru用户下: -rwxrwxr-x 1 xiaoru xiaoru 444 Jun 25 07:42 variableShell.shchmod u+s filename  chmod g+s filename 执行之后 -rwxrwsr-x 1 xiaoru xiaoru 444 Jun 25 07:42 variableShell.sh 此时切换到用户renyunjun; -rwxrwsr-x 1 xiaoru xiaoru 444 Jun 25 07:42 variableShell.sh 便可以执行该文件 2、设置SUID 使用chmod u+s filename ,设置了SUID之后执行者就拥有文件所有者的全部权限,但是在做实验的过程中发现并不是这样成子,貌似设置了当前用户的SUID特权之后只有当前用户才有执行权限; 还存在一定的疑问,希望各位博友高手帮忙解释 四、文件的查找 find . -name 'commond*'  -print 查找当前目录下以commond开头的文件并输出到shell find 。 -mtime -1 -print查找更改时间距离今天1天内的文件 find . -name 'c*' -mtime -1 -print 查找以c开头的文件且更改时间距离今天1天内的文件 find  、 sudo find /dev -type b  -print查找dev下的所有块设备文件并显示 sudo find /run -type p -print 查找/run下的所有管道文件 run/systemd/inhibit/9.ref /run/systemd/inhibit/8.ref /run/systemd/inhibit/7.ref /run/systemd/inhibit/6.ref /run/systemd/inhibit/1.ref /run/systemd/sessions/c2.ref 顺便咨询一下什么事管道文件?在linux下的这些文件起到什么作用? sudo find /run -type p -exec ls -l {} ;exec后面可以跟随shell下执行命令,例如删除文件等等; prw------- 1 root root 0 Jun 26 04:44 /run/systemd/inhibit/9.ref prw------- 1 root root 0 Jun 26 04:44 /run/systemd/inhibit/8.ref prw------- 1 root root 0 Jun 26 04:44 /run/systemd/inhibit/7.ref prw------- 1 root root 0 Jun 26 04:44 /run/systemd/inhibit/6.ref prw------- 1 root root 0 Jun 26 04:34 /run/systemd/inhibit/1.ref prw------- 1 root root 0 Jun 26 04:44 /run/systemd/sessions/c2.ref 五、文本编辑器 替换文件中的字符: (1)/word自光标位置起向下查找word字符 (2)?word自光标位置起向上查找word字符 (3)n1,n2s/word1/word2/g将n1行和n2行之间的word1替换为word2; (4)1,$s/word1/word2/g将第一行到最后一行所有的word1替换为word2; vi有俩种模式,一种为编辑模式,另一种为命令模式;

    时间:2018-11-26 关键词: Linux 编码

  • 模拟信号的原理

    模拟信号的原理

    模拟信号|0">模拟信号是传播能量的一种形式,它指的是在时间上连续的(不间断),数值幅度大小也是连续不问断变化的信号(传统的音频信号、视频信号)。如声波使它经过的媒体产生振动,可以以频率(以每秒的周期数或赫兹(Hz)为单位)测量声波。通过将二进制数表示为电脉冲(其中每个脉冲是一个信号元素)使数字信号通过媒体传输。线路上的电压在高低状态之间变化。例如,可以采用高电平传输二进制的1,采用低电平传输二进制的0。带宽是指每秒通过链路传输位数的术语。 图1描述了模拟和数字信号,其中模拟信号与数字信号等效。在长距离传输时,信号由于衰减、噪声和导线束中其他导线的干扰而退化。模拟信号可以周期性地加以放大,但是如果信号受到噪声破坏,则放大的是失真信号。相比而言,由于可以很容易地从噪声中提取数字信号并重发,所以长距离传输数字信号更可靠。 信号编码方案 数字数据传输利用PCM数字信道传输数据信号,首先要解决的问题是数据信号如何进入PCM话路的问题。主要通过两种方式:同步方式和异步方式。 同步方式利用PCM数字信道传输数据,如果数据信号与数字端局的时钟是同步的,这时,数据终端输出的数据信号是受PCM信道时钟控制的,因此只需对数据信号进行多路化处理即可。这里数据终端设备处于受控制的从属地位,因此灵活性差。 如果数据信号与数据端局时钟是异步的,这时数据信号可采用填充方式复用到64kbit/s的集合信号,这就是异步方式。 如上所述,数字数据借助于电脉冲传输。一一对应使用单脉冲表示一个位。它的效率是非常低的,因此已经开发了多种编码方案以使用电脉冲更高效地传输数字数据。结果大大提高了吞吐量。 这与使用旗语发送消息的情况相类似。比如说“信号旗升起”表示1,“信号旗降下”表示O。一种更有效的编码方案是“只在出现二进制1时升起或降下信号旗”。例如,如果信号旗已经举起,则把 它降下来。不管信号旗是举起还是降下,它的运动才是指示器。这种方法还需要某种类型的定时(例如,每秒发送一位)。因此,在第一秒,信号旗升起。 图1 AM和FM对数字信号的表达 (假设它原来是降下的)以表示1。然后再维持升起两秒钟(两个为0的位),然后在第四秒降下以表示改变到为1的位。 对于数字设备,接收器必须具有某种方法能够知道数据流中字节的起始和结束。在异步通信中,字节边界由起始和停止位指示。在同步通信中,定时机制帮助发送器和接收器处于同步状态。同步信号可以占有一个单独的信道,但更经常的是直接集成到信号中。 下面介绍几种信令和编码方案并以图2说明。图中示出的是0100110001位序列。目的是传尽可能多的信号,使用低电平以减少长距离衰减的影响,并在信号中直接提供同步机制。前几个例子表示基本的信号,但很少在实际中应用。 单极性 单极性码有电压表示1,无电压表示O。没有特殊的编码。单极性码会累积直流分量。 双极性 双极性码中正电压表示1,负电压表示0。该方案降低了功率要求并减小了高电平衰减。双极性码的直流分量则大大减少,从而有利于传输。 RZ (归零制) 归零码的电压状态在某个信号状态后返回到零。归零码的脉冲较窄,根据脉冲宽度与传输频带宽度成反比的关系,因而归零码在信道上占用的频带较宽。 图2 数字信号编码方案 NRZI(按1反相不归零制) NRZI编码中不论电平是高还是低,都不代表二进制的1和0。而是电压变化表示二进制的1。如果没有电压变化,则下一位是0;如果有电压变化,则下一位是1。不归零码在传输中难以确定一位的结束和另一位的开始,需要用某种方法使发送器和接收器之间进行定时或同步。NRZI用于较慢的RS—232串行通信和硬盘驱动器上的数据存储中。在同步链路上,长串的连续位(可能数千个0)会出现问题。接收器可能会失去同步,不能检测到连续串中0的正确个数。另一问题是长串的0表现为直流,它不能通过某些电气部件。Manchester编码和其他方案通过增加时钟信号解决了这些问题。 Manchester(曼彻斯特) 在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。这给接收器提供了可以与之保持同步的定时信号。曼彻斯特编码常用在LAN上。

    时间:2018-11-19 关键词: 模拟信号 电源技术解析 pcm 编码

首页  上一页  1 2 3 4 5 6 7 8 9 下一页 尾页
发布文章

技术子站

更多

项目外包