我知道,我对与电子有关的所有事情都很着迷,但不论从哪个角度看,今天的现场可编程门阵列(FPGA),都显得“鹤立鸡群”,真是非常棒的器件。如果在这个智能时代,在这个领域,想拥有一技之长的你还没有关注FPGA,那么世界将抛弃你,时代将抛弃你。本公众号作者ALIFPGA,多年FPGA开发经验,所有文章皆为多年学习和工作经验之总结。


很多视频压缩算法都存在着竞争,都想获得业界和消费者的认可。它们的出现反映了一种趋势,即从单个设备上专门存储和播放媒体转向所谓流媒体概念,也就是说媒体内容在由无线或有线网络连接的媒体节点之间流动。这些传输网络可能是低带宽的,也有可能是高带宽的,最重要的是流媒体内容要与传输媒介协调一致。否则,用户体验是和糟糕的——移动缓慢的视频、音频以及巨大的处理延迟。

同等画质下对压缩带宽的估计


新的算法都在努力以比上一代标准更低的比特率提供更高分辨率的视频内容,但视频质量与以前相当甚至更好。而且好处还远不止这些,这些算法延伸到比其上一代标准更多的应用领域,提供了很多新的特性,例如更强的可扩展性、更好的容错性能,以及数字版权管理能力。

但是,这些最新的算法也有缺点,即为了实现更好的结果,它们往往要比其前一代标准需要更强大的处理能力。

和编码相比,解码的处理通常要小的多,大约只有前者的一半。解码器的操作流程通常由设计压缩算法的标准组织指定。但是,同样是这个机构,却不规定编码器如何实现。因此,为了以最低的输出比特率处理输入流,编码器往往会使用更多的处理能力。实际上,现在对于一些便携式设备而言,比较常用的模式是在PC上编码,在设备上解码。

随着视频和音频标准的显著增加,系统之间的互操作性变得越来越具有挑战性。当可用的格式不断增加的时候,网络和媒体设备的种类和数量也在急剧增加。不同的网络服务等级产生了多种压缩标准,分别可以满足系统中不同的多媒体需求。

编码转换

消费者需要有一条无缝途径来实现媒体内容的分享、传输和体验。多媒体内容的编码转换有助于不同编码平台之间的障碍。编码转换可以允许在有限和无线网络之间或之内完全透明的传输。在最高层次,只是简单的从一种编码格式转换为另一种编码格式而已。重要的是,它允许在视频内容有一定损失的前提下降低比特流,自动适应可用的数据通道。换句话说,编码转换允许对数据流进行压缩以满足目标存储区大小或者专门的传输路径要求。例如,从DVD服务器而来的MPEG-2内容,在通过无线网络传输到PDA之前可能先被转换为MPEG-4格式,这样就可以极大的减少比特流。数据到达PDA之后,在显示前再转换为适当的格式。

上述描述的这种操作称为格式转换。另一个相关的过程是采样率降低转换,也就是通过降低显示分辨率或者帧速率来降低流媒体比特率。在这两种情况下,为了满足目标设备的要求,需要进行适当的转换,这样在系统处理器上就会有很大的负担。

就编码转换而言,像汇聚式处理器这样的完全可编程解决方案要比功能固定的ASIC更有优势,因为它们允许在任意的媒体格式之间进行非常灵活的转换。此外,汇聚式处理器具有非常快速的时钟,可以完成实时编码转换,这样处理器可以一边对输入数据流进行解码,一边将解码后的数据编码为目标格式。这样就加速了处理过程,同时也省掉了中间过程的存储空间。也就是说,整个源数据流在开始转换为要求的格式之前不必下载到存储器中。在这种方案中,处理器执行的任务可能是多个ASIC执行任务的总和,这些ASIC每一个专门执行一组有限的视频编码或者解码功能。


版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA极客空间 微信公众号


扫描二维码关注杭州卿萃科技FPGA极客空间


 

嵌入式媒体处理(EMP)中的编码和解码的更多相关文章

  1. 说说http协议中的编码和解码

    http://www.csdn1 2 3.com/html/itweb/20130730/29422_29378_29408.htm ****************************** 一. ...

  2. 转 python3中SQLLIT编码与解码之Unicode与bytes

    #########sample########## sqlite3.OperationalError: Could not decode to UTF-8 column 'logtype' with ...

  3. Android 中的编码与解码

    前言:今天遇到一个问题,一个用户在登录的时候,出现登录失败.但是其他用户登录都是正常的,经过调试发现登录失败的用户的密码中有两个特殊字符: * .#  . 特殊符号在提交表单的时候,出现了编码不一样的 ...

  4. js和C#中的编码和解码

    同一个字符串,用URL编码和HTML编码,结果是完全不同的. JS中的URL编码和解码.对 ASCII 字母和数字及以下特殊字符无效: - _ . ! ~ * ' ( ) ,/?:@&=+$# ...

  5. ASP.Net中的编码与解码

    当javascript传递的参数中有中文时,服务端获得的将是乱码,此时需要用到编码和解码 javascript中编码与解码的三种方法 escape方法返回一个可在所有计算机上读取的编码 String ...

  6. 关于JavaScript中的编码和解码函数

    js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...

  7. python3中的编码与解码(超好理解)

    编码和解码是针对数据而言的,数据能干什么呢?无非就是用来显示,储存和传输的: 储存和传输数据当然是希望数据越小越好,所以发明了utf-8这种数据编码显示:它智能将英文用一个字节表示,欧洲的字符用两个字 ...

  8. python中的编码与解码

      编码与解码 首先,明确一点,计算机中存储的信息都是二进制的   编码/解码本质上是一种映射(对应关系),比如‘a’用ascii编码则是65,计算机中存储的就是00110101,但是显示的时候不能显 ...

  9. python中base64编码与解码

    在python3中用base64进行编码和解码的时候特别注意: 题目要求: 准备一张.jpg图片,比如:mm.jpg,读取图片数据并通过b85encode加密之后写入到新文件mm.txt文件中,然后读 ...

随机推荐

  1. eclipse格式化代码快捷键失效解决的一个基本方法

    eclipse格式化代码的快捷键Ctrl+Shift+F,是比较常用的一个快捷键之一. 但是用到时却发现按了也没有反应,百度了说是跟搜狗输入法的快捷键冲突了. 搜狗输入法的快捷键Ctrl+Shift+ ...

  2. linux ioctl()函数

    我这里说的ioctl函数是指驱动程序里的,因为我不知道还有没有别的场合用到了它,所以就规定了我们讨论的范围.写这篇文章是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑. ...

  3. ZC_异常

    1. “Exception in thread "main" java.lang.UnsatisfiedLinkError: no JniVC6 in java.library.p ...

  4. 全方位解读Java反射(reflection)

    JAVA提供了一种反射机制,反射也称为反省. java程序运行以后内存中就是一堆对象,除了对象什么都没有. 找对象 拉关系 瞎折腾 对象在运行过程中能否有一种机制查看自身的状态,属性和行为.这就是反射 ...

  5. js 技巧总结

    插件解析 我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 -- 我们为记录思想和分享知识提供更专业的工具. 您可以使 ...

  6. sql内连接外连接自然连接

    为什么我们要使用内连接和外连接呢?可以从两张或者多张表中找出,我们需要的属性. 这个比较好:http://www.cnblogs.com/youzhangjin/archive/2009/05/22/ ...

  7. spring mvc:常用标签库(文本框,密码框,文本域,复选框,单选按钮,下拉框隐藏于,上传文件等)

    在jsp页面需要引入:<%@taglib uri="http://www.springframework.org/tags/form" prefix="form&q ...

  8. python random使用生成随机字符串

    应用python random标准库做一个随机生成密码的程序,可以随机生成任意多个字符.(基于python2.7,如果是python3需要修改下) 案例: #-*-coding:utf-8 -*-#a ...

  9. C语言之内存四区模型和函数调用模型

      内存四区模型 流程说明1.操作系统把物理硬盘代码load到内存2.操作系统把c代码分成四个区3.操作系统找到main函数入口执行 1.内存四区: 一个由c/C++编译的程序占用的内存分为以下几个部 ...

  10. mysql必会必知

    select distinct CHARACTER_SET_NAME from CHARACTER_SETS limit 12 offset 30;select distinct CHARACTER_ ...