视频编解码优化的几个概念[通俗易懂]

视频编解码优化的几个概念[通俗易懂]视频编解码1.neon2.gpu加速3.汇编neon在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速。目前在移动上使用最多的是ARM芯片。ARM是微处理器行业的一家知名企业,其芯片结构有:armv5、armv6、armv7和armv8系列。芯片类型有:arm7、arm9、arm11、cortex系列。指令集有:armv5、armv6和neon指令。关于ARM到知识参考:ht

大家好,又见面了,我是你们的朋友全栈君。

视频编解码优化可以考虑neon,但是gpu不行。

neon

在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速。目前在移动上使用最多的是ARM芯片。
ARM是微处理器行业的一家知名企业,其芯片结构有:armv5、armv6、armv7和armv8系列。芯片类型有:arm7、arm9、arm11、cortex系列。指令集有:armv5、armv6和neon指令。关于ARM到知识参考:http://baike.baidu.com/view/11200.htm
最初的ARM指令集为通用计算型指令集,指令集都是针对单个数据进行计算,没有并行计算到功能。随着版本的更新,后面逐渐加入了一些复杂到指令以及并行计算到指令。而NEON指令是专门针对大规模到并行运算而设计的。
NEON 技术可加速多媒体和信号处理算法(如视频编码/解码、2D/3D 图形、游戏、音频和语音处理、图像处理技术、电话和声音合成),其性能至少为ARMv5 性能的3倍,为 ARMv6 SIMD性能的2倍。
关于SIMD和SISD:Single Instruction Multiple Data,单指令多数据流。反之SISD是单指令单数据。以加法指令为例,单指令单数据(SISD)的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。而在SIMD型的CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使SIMD特别适合于多媒体应用等数据密集型运算。

gpu

以am335x为例,使用sgx530,加速2d/3d 图形,视频编解码处理的是图像。这里需要区分一组概念:图形(graphic)和图像(image)。
图形是矢量图(Vector Drawn),它是根据几何特性来绘制的。图形的元素是一些点、直线、弧线等。矢量图常用于框架结构的图形处理,应用非常广泛,如计算机辅助设计(CAD)系统中常用矢量图来描述十分复杂的几何图形,适用于直线以及其它可以用角度、坐标和距离来表示的图。图形任意放大或者缩小后,清晰依旧。
图像是位图(Bitmap),它所包含的信息是用像素来度量的,图像放大会模糊。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159788.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月15日 上午9:00
下一篇 2022年7月15日 上午9:16


相关推荐

  • Java 泛型擦除_java中泛型的使用

    Java 泛型擦除_java中泛型的使用java泛型的残酷现实就是:在泛型代码内部,无法获得任何有关泛型参数类型的信息。在使用泛型时,任何具体的类型都被擦除,唯一知道的是你在使用一个对象。比如:List<String>和List<Integer>在运行事实上是相同的类型。他们都被擦除成他们的原生类型,即List。snippet1:1packagecom.cognizant.ch15…

    2026年4月13日
    3
  • postGresql_oracle生成uuid函数

    postGresql_oracle生成uuid函数之前用sqlserver,获取uuid,获取直接selectnewid()就好了,但是postgresql没有这种函数,只好自己写个了。如下:CREATEORREPLACEFUNCTIONuuid() RETURNStextAS$$declarestr1text;str2text;Mactext;begin–MAC地址Mac=’aa:aa:a…

    2022年8月9日
    13
  • 海康isapi协议原理学习(Intelligent Security API 智能安全API)

    海康isapi协议原理学习(Intelligent Security API 智能安全API)ISAPI 协议概述 ISAPI 的定义 ISAPI 全称为 IntelligentS 智能安全 API 是基于 HTTP HypertextTra 的应用层协议 并采用 REST 架构 Representati 表述性状态转移 实现安防设备 如摄像机 数字录像机 网络录像机等 与平台或客户端软件之间的通信 另一说 ISAPI 为 网络脚本应用程序接口 InternetScri

    2026年3月19日
    2
  • List 去重的 6 种方法[通俗易懂]

    List 去重的 6 种方法[通俗易懂]方法1:contains判断去重(有序)要进行数据去重,我们首先想到的是新建一个集合,然后循环原来的集合,每次循环判断原集合中的循环项,如果当前循环的数据,没有在新集合中存在就插入,已经存在了就舍弃,这样当循环执行完,我们就得到了一个没有重复元素的集合了,实现代码如下:publicclassListController{publicstaticvoidmain(String[]args){List<Integer>list=newArra

    2022年5月26日
    52
  • git命令切换分支

    git命令切换分支git切换分支首先通过$gitbranch-a来查看所在目录的分支$gitbranch-amaster*trunkremotes/origin/HEAD-&gt;origin/masterremotes/origin/masterremotes/origin/zhanghanlun然后输入命令切换分支$gitch…

    2022年6月20日
    34
  • Debian下安装3322动态域名更新程序

    Debian下安装3322动态域名更新程序Ez ipupdate 是一个动态域名更新程序 可以更新希网的动态域名 对于动态域名 DYNDNS service type 参数应该选择 qdns 对于静态域名 STATDNS service type 参数应该选择 qdns static 安装和使用方法 将 ez ipupdate 拷贝到 usr local bin 目录 Ez ipupdate 可以运行在以下两种方式 命

    2025年6月18日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号