‘壹’ 在android 平台实现硬解的大侠们,你们是怎么实现硬解码的
1、视频尺寸
一般都能支持176X144/352X288这种尺寸,但是大一些的,640X480就有很多机子不行了,至于为什么,我也不知道。当然,这个尺寸必须和摄像头预览的尺寸一致,预览的尺寸可以枚举一下。
2、颜色空间
根据ANdroid SDK文档,确保所有硬件平台都支持的颜色,在摄像头预览输出是YUV12,在编码器输入是COLOR_FormatYUV420Planar,也就是前面代码中设置的那样。 不过,文档终究是文档,否则安卓就不是安卓。
在有的平台上,这两个颜色格式是一样的,摄像头的输出可以直接作为编码器的输入。也有的平台,两个是不一样的,前者就是YUV12,后者等于I420,需要把前者的UV分量颠倒一下。
byte[] i420bytes = null;
private byte[] swapYV12toI420(byte[] yv12bytes, int width, int height) {
if (i420bytes == null)
i420bytes = new byte[yv12bytes.length];
for (int i = 0; i < width*height; i++)
i420bytes[i] = yv12bytes[i];
for (int i = width*height; i < width*height + (width/2*height/2); i++)
i420bytes[i] = yv12bytes[i + (width/2*height/2)];
for (int i = width*height + (width/2*height/2); i < width*height + 2*(width/2*height/2); i++)
i420bytes[i] = yv12bytes[i - (width/2*height/2)];
return i420bytes;
}
3、输入输出缓冲区的格式
SDK里并没有规定格式,但是,这种情况H264的格式基本上就是附录B。但是,也有比较有特色的,它就是不带那个StartCode,就是那个0x000001,搞得把他编码器编出来的东西送给他的解码器。
ByteBuffer outputBuffer = outputBuffers[outputBufferIndex];
byte[] outData = new byte[bufferInfo.size + 3];
outputBuffer.get(outData, 3, bufferInfo.size);
if (frameListener != null) {
if ((outData[3]==0 && outData[4]==0 && outData[5]==1)
|| (outData[3]==0 && outData[4]==0 && outData[5]==0 && outData[6]==1))
{
frameListener.onFrame(outData, 3, outData.length-3, bufferInfo.flags);
}
else
{
outData[0] = 0;
outData[1] = 0;
outData[2] = 1;
frameListener.onFrame(outData, 0, outData.length, bufferInfo.flags);
}
}
‘贰’ android vlc怎么硬解码
前几天用PC平台上的VLC播放RTSP流媒体时延迟时间较长,存在1s左右的延迟,效果不是很好,后来查了资料,发现这个延迟时间是可以修改的。 找到工具->首选项,然后参数设置左下角选择“全部”,左边选择 “输入编解码”->“网络缓存”选项,可以根据具体需要加以修改,具体见下图不过这个值不要太小,否则缓存太小,播放视频的过程中会很卡
‘叁’ Android万能视频播放器07-检测视频是否可以被硬解码
1、解码流程:
根据FFmpeg中视频解码器的名称找到对应手机硬解码器,如果存在则可以硬解码,
走硬解码流程;不存在就只能走软解码流程。
2、硬解码:
使用MediaCodec直接解旅戚码AVpacket,此时需要对AVPacket进行格式过滤,然后
MediaCodec解码后的数据用OpenGL ES渲染出来。
3、软解码:
直接用OpenGL ES 渲染YUV数闹吵据。
MediaCodecList.getCodecCount()支持的最低的SDK版本是16,buile.gradle中改 minSdkVersion 16
宏拆弯陵定义硬解码、软解码
‘肆’ android硬解码cpu消耗性能
题主是否想询问游兄派“android硬解码需要cpu消耗性能吗”?不需要。android硬解码是将原来全部交由CPU来处理的视频数据的一部分交由cpu来做,而cpu的并行运算能力要远远高于cpu,这尘轿样可以大大的降低对cpu的负载,不需要cpu消耗性能,cpu的占用率较神贺低了之后就可以同时运行一些其它的程序了。硬解码是由显卡核心cpu来对高清视频进行解码工作,cpu占用率很低。
‘伍’ android播放器怎么调用硬解
软解,是单靠软件的运算,软件是由cpu运行,因此软解,是单靠cpu的能力来计算。这样会增加CPU负担 硬解,是借助于硬件来完成视频的解码,现在一般是由显卡来完成,好一点的显卡直接支持高清的硬解码。解压卡也能完成,手模银不过现码亩在一般不用了。毕宴要使用硬解,必须是播放器能使用显卡的硬解功能,如果使用不了,那它还是软解。
‘陆’ 三星6410开发板的操作系统都有哪些,支持情况如何
其他单位好像很多买开发板,只提供WINCE6.0跟linux2.6操作系统的,当然多要额外付点钱也是可以的。楼主的意思应该是买硬件,标准配置就送4个操作系统吧。 立宇泰电子的6410开发板是提供四大主流操作系统,WINCE6.0(R2/R3),linux2.6.28,Android,ubuntu,丰富的驱动和测试资源只能在光盘里看到,大概的介绍可以列一些给楼主看看。 一.WINCE6.0操作下软件软件特色: 1,CPU默认工作于667MHz主频。 2,提供“多媒体综合测试”,分为“解码测试”、“编码测试”和“显示测试”三大项 ,充分展示了ARMSYS6410在多种格式的音视频硬解码、JPEG图像解码、DirectShow、多重解码分屏显示、视频采集 和编码、显示处理和缩放、TV输出等特色功能上良好的性能表现;为用户评估提供了充分依据。 3,提供DirectShow Filters支持MPEG-4/H.264/ VC-1格式视频硬解码和音频解码。 4,标配800*600,800×480和640×480分辨率液晶屏,默认支持扬声器,尚佳的视觉和音效体验! 5,提供BSP源码包,包含所有板载外设驱动。 6,提供丰富应用实例源码包,方便用户应用程序开发。 7,为购买用户免费更换启动界面上logo图片! 8,开机启动界面上动态进度条显示内核加载进度。 9,提供两路SD/MMC卡,两路都支持MMC4.0卡,都支持热插拔。 10,支持CF3.0规格高速CF卡。 11,注册表切换TV out输出通道(RCA接口或S-VIDEO接口)。 12,提供4路串行口,并支持注册表切换串口普通模式和红外模式 13,支持HIVE注册表,系统设置自动保存。 14,支持Norflash和SD卡启动更新WINCE系统。 15,USB 2.0 OTG接口高速下载系统映像,提升开发效率。 16,支持睡眠、唤醒,提供电源管理相关驱动。 17,带有IDE接口,支持WINCE6.0系统下挂载PATA硬盘,顺利通过80G硬盘读写测试! 18,支持 LCD2VGA板,支持1024×768分辨率显示,视频播放流畅。 二.Linux2.6.28操作下软件软件特色: ARMSYS 6410采用了Linux-2.6.28作为标准版的linux内核,其中集成了丰富的驱动资源,充分展现S3C6410的各项特性,包括硬件编解码、2D/3D加速、显示协处理、TVOUT输出、视频采集和编码、4路串口、2路SD/MMC接口、1路10/100M以太网接口、1路USB host接口等等,使ARMSYS 6410成为目前linux配置最为强劲和最完整的开发板之一。ARMSYS 6410支持Yaffs2文件系统,根文件系统提供了完整的常用命令和多种网络服务,结构清晰简明,使用灵活方便。图形界面采用Qtpia2.2.0版本,集成丰富的应用程序,可以支持触摸屏输入和鼠标输入。同时提供丰富的测试程序,可以对ARMSYS 6410的各项特色功能进行充分测试和展现。更提供了android和ubuntu版本,共 3个版本的linux系统,连同WindowsCE6.0共四大主流操作系统,供客户感受最丰富的应用体验! 1,提供linux2.6.28.6版本内核,是目前国内 6410开发板最高、配置最完整的linux版本; 2,提供丰富多媒体测试程序(multimediatest),全面展现 S3C6410特色功能,包括H.264/263,MPEG4,VC-1视频文件解码,摄像头视频采集和编码,JPEG编解码,3,TVOUT 输出等等; 4,完备的驱动资源,除视频图像处理外,还包括2D/3D,看门狗,4路串口,2路SD/MMC,1路 10/100M网口,AC97音频,多种分辨率液晶屏的驱动等等; 5,采用NFS网络文件系统和YAFFS2格式文件系统 ; 6,提供nfs,ftp,telnet等网络服务,使linux下的应用程序开发更快捷; 7,提供tslib触摸屏校 准,Qtopia2.2.0图形界面,系统使用方便,更接近产品化。 三.ARMSYS6410_ubuntu 9.04相关资源 引导装载 (u-boot1.1.6) Bootloader 初始化并装载启动linux内核 支持设置内核启动参数 提供从SD卡启动的版本 内核及设备驱动 采用2.6.29.1版本内核 系统主频:533MHz 4路串口驱动(ttySAC0~3) 256M NandFlash驱动 2×5用户按键驱动 1路SD/MMC卡座驱动 液晶(支持立宇泰电子TFT型液晶屏系列)驱动 支持4线触摸屏 文件系统 支持EXT3根文件系统 编译器 Arm-none-linux-gnueabi 图形界面 Lxde-ubuntu 四.Android系统的详细配置: Android系统为专为S3C6410定制的版本,不是google官方版本; 因此Android自带的Mediaplayer、Music和Galley程序,可以支持视频硬解码、支持音频解码、和JPEG硬解码;采用S3C6410内部2D/3D加速器支持Android图形系统; U-boot支持yaffs2映像写入; 所有映像通过USB下载,uboot写入,快捷方便; 内核提供USB gadget驱动(支持android adb); 支持4路串口,2路SD/MMC卡口; 支持立宇泰电子TFT型液晶屏系列; 提供APK安装器、文件管理器等实用Android应用软件。 带上显示图片的效果比这个好多了,语言描述还是讲不大清楚,楼主可以直接联系他们公司售前或者技术支持沟通啊 。
‘柒’ 手机 软解码和硬解码 解惑
为了氏闹节约存储空间,我们在设备上播放的视频文件都是经过压缩的;在播放过程,需要进行一个反射的解压缩过程,这就是 解码
软解码的解码过程完全由 CPU 完成的,所以 对 CPU 的性能要求非常高 。如果 CPU 性能不行, 解码速度跟不上,那我们所看到的画面就是不流畅、有卡顿的,以当前市场的手机设备,软解 4K 的视频,就非常明显看到这种现象。同时,由于 CPU 是非常耗电的, CPU 的使用率越高, 耗电量越高, 所以 软解码是非常耗电的 。
而硬解码是通过 GPU 等类似具备 图形处理功能的芯片完成解码过程,而 GPU 是基于大的吞吐量、并发计算设计,对数据相关性不大的重复运算,有时加速比能达到几百倍甚至更高,所以, 使用 GPU 实现视频解码, 速度远快于软解码 。 另外,GPU 耗电量是远小于 GPU ,所以 硬解码耗电量是非常小的 。
但由于,GPU 本身限于 GPU 开发平台,只能对 GPU 本身支持的编码格式才能神配进行解码,所以只有 符合硬解的编码格式的视频才能使用硬解码 ,例如 H264 格式。
软解码
硬解码
这里举例的视频是 【720P】 ,所以比较并不是很明显。 不过,还是可以看出硬解码比软解码对 CPU 的使用率小很多:
同时,帧率硬歼瞎罩解码比软解码要高很多,也意味着硬解画面会更流畅:
建议: 对于符合硬解码的编码格式,例如【H264】,采用【硬解码】进行解码;不符合硬解码的编码格式视频,才采用软解码 。
这样,不仅仅降低对 CPU 的负荷,让画面更流畅,还大大降低耗电量。
视频解码的步骤分为:
首先,无论是 硬件解码 还是 软件解码 ,所进行的解码过程和解码结果都是完全一样的。
他们的 区别 就是视频解码的工作是由 CPU 完成,还是由 GPU 来完成而已。
因此, 在理论上硬件解码和软件解码的效果应该是完全一样的 。
但在最后一个解码步骤 PostProc ( 显示后处理,解码去块滤波操作 Deblocking ) 。
Deblocking 的意思为解码去块,能够消除 H.264 压缩编码可能产生的马赛克现象,真实地还原视频图像。
Deblocking 对 CPU 提出了较高的要求,在 CPU 性能不够时 , 开启 GPU 硬件加速就会关闭解码去块滤波操作 (Deblocking) ,这时播放一些影片会看到较明显的马赛克现象,明显影响画面质量。
换句话说,确实存在, 在 CPU 性能不够的时候,启用 硬解码 ,会关闭解码去块滤波操作 (Deblocking) ,明显影响画面质量 。
但基于当前手机设备,大多数 CPU 的性能足够满足于硬解码的需求,所以, 出现这种情况的手机设备必然是低端机、远次于目前市场的微量手机 。
另外,我们对 iOS 和 Android 各种机型实际测试中,也未曾发现开启硬解后,画质明显下降的现象。
‘捌’ 9023 ram 是说512 显示的是总共345 可用为什么只有一百多 512-345还剩的跑那去了
这是Android系统的正常现象,内核会划去一部岩做肢分内存来供特定的硬件使用。以下是来说说这少掉的RAM的粗世究竟使用到哪去了,他们分别是 72MB用于MFC(硬解码),16MB用于FIMC(CAM/IF),16MB提供给Android系统(ashmem),8MB给GPU(3D),2MB提供给ADSP(声音),5MB提供给jpeg(jpeg硬件解码),6MB提供给FIMD(LCD控制器) ,3MB提供给FIMG2D(2D加速),胡铅0.5MB提供给WIFI设备,还有10MB提供给texstream。除此之外,Kernel自身也会占用大概10-20MB的空间,因此,留给应用程序的有大概350MB左右。
‘玖’ 手机硬解和软解哪个好
您好!手机软解和硬解有什么区别
硬解就是硬件解码,指利用GPU来部分代替CPU进行解码,软解就是软件解码,指利用软件让CPU来进行解码。两者的具体区别如下所示:
硬件解码:是将原来全部交由CPU来处理的视频数据的一部分交由GPU来做,而GPU的并行运算能力要远远高于CPU,这样可以大大的降低对CPU的负载,CPU的占用率较低了之后就可以同时运行一些其他的程序了,当然,对于较好的处理器来说,比如i5 2320,或者AMD 任何一款四核心处理器来说,硬解和软件的区别只是个人偏好问题了吧。
软解码:即通过软件让CPU来对视频进行解码处理;而硬解码:指不借助于CPU,而通过专用的子卡设备来独立完成视频解码任务。曾经的VCD/DVD解压卡、视频压缩卡等都隶属于硬解码这个范畴。而现如今,要完成高清解码已经不再需要额外的子卡,因为硬解码的模块已经被整合到显卡GPU的内部,所以目前的主流显卡(集显)都能够支持硬解码技术。
硬解,和软解,哪个对手机损害大
硬解,因为要把手机主板上硬盘打磨掉换一个新的
HTC的手机是硬解好还是软解好?链槐
现在的硬解跟以前的硬解不是一个概念,并不是改动硬件。HTC S OFF硬解是通过一张带有工程模式的SIM卡(俗称白卡)解除HBOOT安全模式,而软解就是通过电脑软件解除安全锁达到S OFF。两者虽然过程不一样,但最后解完S OFF的效果都是一样的。
ship S-OFF:无论怎么刷机,最后都是S OFF
eng S-OFF :刷过一次机后就会变回S ON
eng S-OFF是以前软解不成熟的表现,现在软解软件都已成熟,解完跟硬解一样都是ship S-OFF。
如还有不懂请准问
手机软解和硬解哪个效果好
那要看你接受的了那个价钱了
解码模式是硬解好还是软解好?
手机还是电脑.
硬件依赖硬件,只能处理你的显卡支持的格式.效果好,功耗小.
软解依赖CPU.不如硬解效果好,并且功耗还大.但只要软解支持,可以处理更多的视频格式.
迅雷手机播放器软解好还是硬解好
我用的也是Mobo,其实感觉没多大区别,只是软解用的是cpu处理的,会稍微清楚一点,通常我都用默认的硬解,主要看你手机的配置了尽量不占用cpu,希望对你有帮助
Android手机的高清视频解码是硬解好还是软解好
硬件省电,软解流畅,硬解的时候是专门的核在工作,就像转化成mp4模式一样,软解就是软件渲染,当你没有硬件来解码播放的时候,软件自己调用处理器通过程序来解码,所以,你觉得玩mp省电还是手机省电呢?
手机如何从硬解换成软解
下载第三方软件就可以了,但软解码使用cup进行运算解码导致手机功耗上升而且解码效果不是很好一般会导致视频不流畅卡顿,如果手机支持硬解码还是用硬解码
看高清软解和硬解的区别?
硬解码是指视频播放的全过程由显卡GPU完成 由于显卡与CPU不同的工作方式它的解码能力大大高于CPUATI显卡能真正实现硬解码 NVIDIA的部分步骤仍然棚隐友要调用CPU 但是CPU的使用率仍然很低 所以也可视为硬解码 硬件方面 你需要ATI HD2000以上的显卡 或者NVIDIA Gefoce 8200 以上的显卡或者英特尔X4500 HD显示核心 播放器 目前QQ影音和暴风都提供智能硬解携旁码POTPLAYER 和KMPLAYER 以及 MPC 需要手动调节 他们在XP下的硬解码很易实现但在WIN7下 比较麻烦具体步骤 你可去相关BBS或博客查看
硬解和软解的区别到底在哪
硬解就是硬件解码,指利用GPU来部分代替CPU进行解码,软解就是解码,指利用让CPU来进行解码。两者的具体区别如下所示:
硬件解码:是将原来全部交由CPU来处理的数据的一部分交由GPU来做,而GPU的并行运算能力要远远高于CPU,这样可以大大的降低对CPU的负载,CPU的占用率较低了之后就可以同时运行一些其他的程序了,当然,对于较好的处理器来说,比如i5 2320,或者AMD 任何一款四核心处理器来说,硬解和的区别只是个人偏好问题了吧。
软解码:即通过让CPU来对进行解码处理;而硬解码:指不借助于CPU,而通过专用的子卡设备来独立完成解码任务。曾经的VCD/DVD解压卡、压缩卡等都隶属于硬解码这个范畴。而现如今,要完成高清解码已经不再需要额外的子卡,因为硬解码的模块已经被整合到显卡GPU的内部,所以目前的主流显卡(集显)都能够支持硬解码技术。
‘拾’ 我用的android 中的SurfaceView来进行jpeg图片的播放,请问是属于硬件解码吗
android的canvas是用cpu软解,有的团数亮公司自己开发芯片,这样可以调用底塌宽层,使用的是GPU硬毕好解