浅压缩、深压缩、双引擎、计算机屏幕编码……何去何从?
专业视听领域尤其显示控制和坐席控制领域,最近几年最激动人心的技术,莫过于分布式了。
分布式从推出之日就备受关注:担心稳定性的,质疑同步性能的,怀疑画面质量的……
诚然,我们在此前见多了带着马赛克的模糊不清的监控画面,遇到过电脑上网刷个网页几秒钟不出来的事情。
这么不靠谱的网络上能担当起专业音视频所需要的高画质、高度同步和低延时?
但是分布式音视频带给人们的体验确实是革命性的,因此吸引了众多的行业精英倾其所能的投入研发。
路虽远行则将至,事虽难做则必成。
至今,无论过去对分布式持何种看法的主流视听领域的公司都在投入研发,并且提出了各自的解决方案。
因每个公司看问题的角度,解决问题的出发点不同,提出了不同的解决方案,浅压缩、深压缩、双引擎、计算机屏幕编码……眼花缭乱。
这些分布式方案都对音视频进行IP化,但IP化必然会对视频压缩,毕竟视频的带宽比网络的带宽大太多了。
压缩就面临画质和码率问题。
分布式产品最基本的是解决显示问题,如果图像不好,再丰富的功能也是舍本逐末;如果码率过大,IP化不“彻底”,不能获得IP化的红利。
因此可以说,图像压缩和还原技术好坏,是评判一家公司技术水平的关键,也是评判一款产品优劣的核心要素。
那么何谓浅压缩、深压缩、双引擎、计算机屏幕编码?各自有什么优劣?这应该是系统建设方、使用方、设计方最关心的问题了。
首先我们以一个表格来列举下各种方式的对比,然后再逐一尽量详细客观的列出其优缺点,以便读者在设计和建设音视频系统时参考。
计算机屏幕编码:只用低码率、高压缩比编码方式(一般H.264/265),实现达到计算机屏幕级别(表现为颜色突然跳变,如黑底红字,黑底蓝字,红底黑字,红底蓝字等)画质要求的编码技术。高通、微软、华为都具备这方面的发明专利,国内分布式领域也有公司具有这方面的发明专利技术。系统不论大小均可胜任,缺点是成本较高。
优点之一:画质好,即便严苛的计算机测试画面,也和原图几乎没有差异(如上图);
优点之二:是带宽低。其采用的编码方式还是HEVC(H.265)或者H.264,因此码率1路1080P@60一般就在10-20Mbps水平,对一般的有线网络来说非常轻松,甚至可以用现有的计算机网络(甚至因特网)承载而不影响业务网络;
优点之三:和安防、视频图像网、AI等无缝衔接(因为都是H.264/265),分布式的优势体现得更大(如无需任何解码器直接取安防平台流上显示墙,直接取流进行人、车以及人脸识别等)。
缺点:技术难度大,用以实现的芯片组价格昂贵,往往还需要配合FPGA或者DSP之类,设备成本高,价格往往比较高;
浅度压缩:视听行业中一类高码率视频压缩算法的总称,这类算法因压缩程度相对较低,算法复杂度也较低,故称为浅度压缩。浅压缩分布式主要采用SDVoE、VC-2、JPEG2000和私有算法等编码方式,对视频的压缩较小,视频画面的还原度高,相比深压缩产品,画质更好,同步性更高,延时更低。但同时因为码率高,所以较多用于本地会议级的小规模场景应用,整个系统对网络带宽的要求也会高出很多,整体建设成本更高。
优点之一:相对降采样为4:2:0后的深度压缩画质好,尤其计算机画面,基本能做到视觉无损;
优点之二:一般来说浅度压缩用帧内编码,编码延时比较小;但是因为码率大,往往消除网络抖动的时间余量都留得比较大;综合后延时有的产品和深压缩相当,有的略优。
优点之三:器件要求不高,成本低,容易实现。
缺点之一:码率太大,一般1路1080P@60就达到300-900Mbps,1路4KP@60最大可能达到4000Mbps,远超1路千兆网的承载水平,和5G等结合就更没可能了。
缺点之二:存储需求的存储空间太大,几乎不可用。按平均码率500Mbps算,也是H.264/265码率的20-50倍。
缺点之三:编码方式和安防平台几乎都不兼容,分布式的红利发挥不出来,还需要大量的转码器、编解码器和安防平台对接。
深度压缩:视听行业中一类低码率视频压缩算法的总称,与浅度压缩相反,这类算法因压缩程度相对较高,故称为深度压缩。行业内一般特指用安防H.264/265编码芯片的,降采样为4:2:0后进行编码的方式。因为画质比较低,所以一般应用于低成本,要求不高的场合。
优点之一:带宽低。其采用的编码方式是HEVC(H.265)或者H.264,因此1路1080P@60码率一般就在10-20Mbps水平,对一般的有线网络来说非常轻松,甚至可以用现有的计算机网络承载而不影响业务;
优点之二:和安防、视频图像网、AI等无缝衔接(因为都是H.264/265),分布式的优势体现得更大(如无需任何解码器直接取安防平台流上显示墙,直接取流进行人、车以及人脸识别等)。
优点之三:成本低,容易实现。因为采用安防芯片,芯片成本低,而且一般有较为成熟的方案,进行功能性研发即可。
缺点:画质较差。一般视频画面,电脑画面没问题,但是有强烈反差的画面,如CAD图、轨道交通图、雷达图、电力运行图,甚至部分情况下word,excel的效果都无法接受(如当excel表格选中一列时就模糊了,特别是当文字是红色时)。
双引擎(双码流):一个设备里边同时放置高码率编码芯片和低码率编码芯片,严格来说它并不是一种编码方式,但它是一种解决码率和画质的方法:高码率芯片用于解决本地显示清晰度问题,低码率编解码芯片(一般是H.264/265)为了解决远距离传输和对接安防平台的问题。实现较为容易,但网络较为复杂,同时只解决了本地画质问题,异地画质和存储画质问题还是未能解决。
优点之一:能兼顾本地显示画质和远距离传输的低码率要求;
优点之二:低码率引擎其实一般就是安防编解码芯片,所以也能和安防、视频图像网等对接。
优点之三:成本虽然比浅压缩和深压缩略高,但是浅压缩芯片和安防芯片(深压缩)都便宜,所以即便都放置进去,成本也低,而且容易实现。
缺点之一:远距离传输和存储的画质始终还是安防级的画质,是难以让人满意的。高码率和低码率同时编码1路图像,始终只是权宜之计,并没有从根本上解决压缩率和画质的问题。
缺点之二:浅压缩的码率还是很高,即便本地应用,大规模的应用对核心交换机的压力非常大,接入交换机选型也非常苛刻(系统必须满足极限要求,即每个端口900Mbps,48路的接入交换机,则上行44G,10个10G口都不够,但是往往接入交换机达不到48个千兆线速+4个万兆线速的包交换速度)。
缺点之三:系统互相影响大,系统稳定性,特别是大规模项目的稳定性,尚需要时间检验。
结语
一方面,是网络技术的飞速发展,虽然主流还是千兆网络,但是万兆网络也不再昂贵,且全部的千兆网络迭代到万兆尚需时日;
另一方面是视频清晰度往更清(4KP30,4KP60,8KP30均已经较为常见)、色彩更丰富(从24位色往30、36位升级,内容增加50%)方向升级的速度更快。
正在建设中,且可预见的近5-10年内大放异彩的5G,虽然下载速度达到500Mbps甚至更高,但是普遍上行速度为50+Mbps,即便网络良好的地方上行速度也就在200Mbps,是无法承载哪怕1路1080P@60的浅压缩视频流的,更别说1路4KP60了。
所以现阶段看来,分布式在未来5-10年内要充分5G的红利,依托5G生态建立更多精彩的应用,甚至能否跳出显示控制的狭窄应用,无缝融合到指挥、业务流程,实现更大的价值,低码率和画质始终是绕不过去的槛。
何去何从,我们拭目以待!
原文链接:https://mp.weixin.qq.com/s/jvp1I9BcngYxX0OVwqHivw
相关文章:

浅压缩、深压缩、双引擎、计算机屏幕编码……何去何从?
专业视听领域尤其显示控制和坐席控制领域,最近几年最激动人心的技术,莫过于分布式了。 分布式从推出之日就备受关注:担心稳定性的,质疑同步性能的,怀疑画面质量的…… 诚然,我们在此前见多了带着马赛克的…...

2020年通信工程师初级专业实务真题
文章目录 一、第1章 现代通信网概述:信令网、同步网、管理网。第10章 通信业务:通信产业链,通信终端的分类,通信业务的定义及分类二、第3章 接入网:无线接入网的优点,接入网的接口(UNIÿ…...
Linux常见面试题汇总
Linux上如何查询某个端口是否被占用? 在Linux上,你可以使用以下几种方法来查询某个端口是否被占用: 使用netstat命令: netstat -tuln | grep <端口号>这个命令会列出当前正在运行的所有TCP和UDP端口,并过滤出指…...

C语言小游戏:贪吃蛇(游戏开发的环境和功能介绍)
❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ 生命不停,学习不止。铁汁们,我是大伟,欢迎来到大伟的游戏时间,…...

ElementUI Form:InputNumber 计数器
ElementUI安装与使用指南 InputNumber 计数器 点击下载learnelementuispringboot项目源码 效果图 el-radio.vue (InputNumber 计数器)页面效果图 项目里el-input-number.vue代码 <script> export default {name: el_input_number,data() {re…...

apk反编译修改教程系列---修改apk的默认颜色 布局颜色 手机电脑同步演示【十】
往期教程: apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】 apk反编译修改教程系列---简单…...

响应式开发如何设置断点,小屏幕界面该如何显示(有动图)
Hi,我是贝格前端工场,本期分享响应式开发,如何设置屏幕断点,pc页面布局到了移动端之后该如何布局的问题,微软也提供了设置屏幕断点的动图演示,非常直观。 一、什么是响应式开发,为何要设置屏幕断…...

Java基础 集合(二)List详解
目录 简介 数组与集合的区别如下: 介绍 AbstractList 和 AbstractSequentialList Vector 替代方案 Stack ArrayList LinkedList 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界…...

UE4运用C++和框架开发坦克大战教程笔记(十七)(第51~54集)
UE4运用C和框架开发坦克大战教程笔记(十七)(第51~54集) 51. UI 框架介绍UE4 使用 UI 所面临的问题以及解决思路关于即将编写的 UI 框架的思维导图 52. 管理类与面板类53. 预加载与直接加载54. UI 首次进入界面 51. UI 框架介绍 U…...

GaussDB新体验,新零售选品升级注入新思路【华为云GaussDB:与数据库同行的日子】
选品思维:低频VS高频 一个的商超,假设有50个左右的品类,每个品类下有2到10个不等的商品。然而如此庞大的商品,并非所有都是高频消费品。 结合自身日常的消费习惯,对于高频和低频的区分并不难。一般大型家电、高端礼盒…...

C语言问题汇总
指针 #include <stdio.h>int main(void){int a[4] {1,2,3,4};int *p &a1;int *p1 a1;printf("%#x,%#x",p[-1],*p1);} 以上代码中存在错误。 int *p &a1; 错误1:取a数组的地址,然后1,即指针跳过int [4]大小的字节…...
QT 的 blockSignals(true) 的作用范围
在 Qt 中,blockSignals 是一个用于控件的方法,它用于阻止控件发出的信号。如果你在一个 MainWindow 对象上调用 blockSignals(true),它会阻止该 MainWindow 对象发出的所有信号。 这意味着,如果 MainWindow 上有任何子控件&#…...

【C++私房菜】类和对象万字详解
目录 一、类与对象 1、类是什么 二、类和对象的基础知识 2.1 定义类:成员变量和成员函数 2.2 创建对象:实例化一个类的对象。 2.3对象的生命周期:构造函数和析构函数。 a. 构造函数 b. 析构函数 c.小结: 三、成员变量和…...
PDF下载添加水印和访问密码
下载接口 ApiOperation(value "下载文件-pdf", notes "下载文件pdf版", httpMethod "GET", response WebResult.class)RequestMapping(value "/downloadPdf", method RequestMethod.GET)public void downloadFilePdf(RequestPar…...

基于SSM+MySQL的的新闻发布系统设计与实现
目录 项目简介 项目技术栈 项目运行环境 项目截图 代码截取 源码获取 项目简介 新闻发布系统是一款基于Servletjspjdbc的网站应用程序,旨在提供一个全面且高效的新闻发布平台。该系统主要包括后台管理和前台新闻展示两个平台,涵盖了新闻稿件的撰写…...
记录首次使用yolov8-obb
1.数据格式 之前使用的数据格式是yolov5_obb的数据格式,然后需要转数据格式: 目前的数据只支持四个坐标点标注的数据,参考:If a corner of the rotate rectangle is out of the image range, How to annotate the image? Issu…...

深度学习环境配置:Anaconda 安装和 pip 源
conda是一种通用包管理系统,与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。 Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,就是把很多常用…...
100 个 NLP 面试问题
100 个 NLP 面试问题 一、 说明 对于技术磨练中,其中一项很酷的技能培训是提问。不知道答案并没有多大的错;错就错在不谷歌这些疑问。本篇就是在面试之前,您将此文档复制给自己,做一个系统的模拟实战。 二、经典NLP问题(共8题&a…...

C# OMRON PLC FINS TCP协议简单测试
FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。运用 FINS指令可实现各种网络间的无缝通信,包括用于信息网络的 Etherne(以太网),用于控制网络的Controller Link和SYSMAC LINK。…...

MQTT在linux下服务端和客户端的应用
MQTT(Message Queuing Telemetry Transport)是一种轻量级、开放标准的消息传输协议,设计用于受限设备和低带宽、不稳定网络的通信。 MQTT的一些关键特点和概念: 发布/订阅模型: MQTT采用发布/订阅(Publ…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...