标签: hardware-acceleration

如何在directx 11和Windows 7中使用硬件加速视频/ H.264解码?

我一整天都在研究,并没有走得太远.我在Windows 7上,使用directx 11.(我的最终输出是DX11纹理上的视频帧)我想解码一些非常大的H.264视频文件,而CPU(使用libav)则没有剪了它.

我已经看过了使用DXVA2的libav的hwaccel功能,但是当我需要创建一个IDirectXVideoDecoder时,它只能用一个D3D9接口来创建.(我没有使用DX11)

每当我查看DXVA文档时,它都没有引用DX11,是在DX10或11中删除了吗?(无法找到任何关于此的确认,也没有任何说明DXVA2是多余的,可能是它被DXVA-HD超越了吗?)

然后我查看了媒体基础SDK,因为它看起来像我应该用于DX11 ...但我的标题中没有类型(文档说只是包括,但这没有产生任何东西).他们还指定了最少的窗口8来使用它.

我相信使用MF我需要windows 8 SDK,它现在包含所有directx libs/headers.

因此,这与Windows 7存在差距...是否有可能获得硬件加速视频解码?如果是的话,我应该使用哪种API?

directx directx-11 h.264 hardware-acceleration dxva

13
推荐指数
1
解决办法
1万
查看次数

硬件加速FFmpeg在Android上?

我为Android编译了一个旧版本的FFmpeg(如果我没记错的话是0.6.X).FFmpeg解码视频帧,缩放它,然后我使用OpenGL在屏幕上绘制它.据我所知,问题在于解码和缩放 - 它们不是硬件加速的.

我的问题是:

  1. 最新版本的FFmpeg硬件加速了ARM(Android)处理器吗?
  2. 我是以错误的方式来做这件事的吗?也就是说,有更好的方法吗?"这个"正在播放h264高清视频作为视频动态壁纸---帧速率需要很高,因此无论何时可用,都需要硬件加速.

android ffmpeg video-codecs hardware-acceleration live-wallpaper

12
推荐指数
1
解决办法
7403
查看次数

SurfaceView中的Canvas - 硬件加速

我正在开发ICS并尝试理解为什么在SurfaceView中使用Canvas时Canvas.isHardwareAccelerated()将始终返回FALSE.

我尝试过这样一个非常基本的例子:http: //android-coding.blogspot.com/2011/05/drawing-on-surfaceview.html 或者这个:http://jmsliu.com/199/android-帆布example.html的

我甚至将它们修改为在绘制循环中没有任何画布调用,以为我可能在某些绘图调用中遇到了一些不受支持的HW accel操作.我在"不支持的绘图操作"developer.android.com/guide/topics/graphics/hardware-accel.html下检查了此列表,但我没有做任何这些.

我在开发者选项中使用Force GPU渲染标志以及清单内部,我也指定minSDK/targetSDK> = 14.

View.isHardwareAccelerated将返回TRUE,而Canvas.isHardwareAccelerated将始终返回FALSE.

我已经看到Canvas.java的硬编码返回false为isHardwareAccelerated(),而HardwareCanvas.java返回true.我想由于某些原因我没有获得硬件路径,为什么?

SurfaceView中的Canvas可以加速硬件吗?

谢谢

android canvas surfaceview hardware-acceleration

12
推荐指数
3
解决办法
7960
查看次数

如何使用新的GPU加速avd?

谷歌已宣布Android模拟器最终使用GPU,如此处所述

但是,我找不到如何使用它的教程.我试图做一些事情而且它一直在崩溃.

到目前为止,我试过:

  1. 在"...\extras\intel\Hardware_Accelerated_Execution_Manager\IntelHaxm.exe"上安装应用程序.

    1. 启用/禁用avd的GPU仿真上的标志.

    2. 重启eclipse和操作系统.

是否有人成功使用新功能?

android gpu emulation hardware-acceleration android-virtual-device

12
推荐指数
1
解决办法
2万
查看次数

View.isHardwareAccelerated()始终为false

我有一个在许多设备上加速硬件的View.在该视图中,我需要能够检查是否使用了硬件加速. 根据Android SDK文档,这是使用完成的View.isHardwareAccelerated().有趣的是,在支持硬件加速的设备上进行测试时,即使Views本身实际上是硬件加速,此方法也总是返回false.(我已经最终确认了这一点)它变得更加混乱:

如果我打电话给View.getLayerType()我,我发现它始终设置为View.LAYER_TYPE_NONE.如果我打电话给View.setLayerType(View.LAYER_TYPE_SOFTWARE)我可以有效地禁用硬件加速.我可以通过调用View.setLayerType(View.LAYER_TYPE_HARDWARE)OR 重新启用它View.setLayerType(View.LAYER_TYPE_NONE).为什么要View.LAYER_TYPE_NONE启用硬件加速???

继续,对于支持hw加速的设备,似乎我可以通过检查是否View.LAYER_TYPE_SOFTWARE设置来检查状态,但是我怀疑这种方法不适用于不支持hw加速的设备.我想知道我是在滥用View.isHardwareAccelerated()还是只是被打破了.

编辑:我想我更接近理解这个问题.这个问题也很有帮助:

在运行时检测硬件加速:Android

我的工作理论是,当调用构造函数时,View还不知道硬件是否加速,这是我正在检查的地方.如果是这种情况,我想知道我可以在我的类中覆盖哪些扩展View,这将允许我成功检查硬件加速.我怀疑它View.onSizeChanged(...)会起作用,但我想避免使用可能被无数次调用的东西.

编辑#2:看起来就是这样.我把支票搬进去View.onSizeChanged(),现在报道正确.我仍然想知道在我的视图中是否有更好的位置我可以移动此检查.

android hardware-acceleration

12
推荐指数
1
解决办法
5025
查看次数

我的OpenCL内核在更快的硬件上速度较慢..但为什么呢?

在我完成多核编程课程的编写时,我想出了一些非常奇怪的东西,我想和你讨论.

我们被要求创建任何程序,以显示为多核平台编程的显着改进.我决定尝试在GPU上编写代码以试用OpenCL.我已经选择了矩阵卷积问题,因为我对它非常熟悉(我之前使用open_mpi对它进行了并行处理,对于大图像来说速度很快).

所以在这里,我选择一个大的GIF文件(2.5 MB)[2816X2112],我运行顺序版本(原始代码),我得到平均15.3秒.

然后我运行我刚刚在我的MBP集成GeForce 9400M上编写的新OpenCL版本,我得到的平均时间为1.26秒.到目前为止一切都很好,它的速度是12倍!

但是现在我进入节能面板打开"图形性能模式"该模式关闭GeForce 9400M并打开我的系统所具有的Geforce 9600M GT.Apple称这张卡的速度是集成卡的两倍.

猜猜看,我使用kick-ass显卡的时间平均为3.2秒...我的9600M GT似乎比9400M慢两倍多..

对于那些倾向于OpenCL的人,我在开始之前将所有数据复制到远程缓冲区,因此实际计算不需要往返于主ram的往返.另外,我让OpenCL确定最佳本地工作量,因为我已经读过它们在确定参数时已经做了很好的实现.

有人有线索吗?

编辑:makefile文件的完整源代码http://www.mathieusavard.info/convolution.zip

cd gimage
make
cd ../clconvolute
make
put a large input.gif in clconvolute and run it to see results
Run Code Online (Sandbox Code Playgroud)

opencl hardware-acceleration

11
推荐指数
2
解决办法
3970
查看次数

VideoView不会显示在片段上

我在使用Samsung S3(Android 4.1.1)运行视频时遇到问题,问题似乎是因为视频片段在片段上,因为如果我把它放在活动上,它就可以了.我还发现如果我打开GPU硬件加速,视频就可以工作了.我还有一个通过在SurfaceView上绘制而制作的游戏,该视图也不起作用(仅在启用GPU的情况下)...应用程序内容的其余部分按原样显示(按钮和其他布局).

我在Nexus S和仿真器上测试了应用程序,它在其他设备上运行良好.

有谁知道是什么问题?谢谢!

以下是代码:

public class VideoFragment extends Fragment implements MediaPlayer.OnCompletionListener,
        MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener {

    private Video mVideo;
    private VideoView mVideoView;
    // The video position
    private int mPosition;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View fragmentView = inflater.inflate(R.layout.screen_video, container, false);

        mVideoView = (VideoView) fragmentView.findViewById(R.id.VideoView);

        return fragmentView;
    }


    @Override
    public void onPause() {
        super.onPause();

        // Pause the video if it is playing
        if (mVideoView.isPlaying()) {
            mVideoView.pause();
        }

        // Save the current video position
        mPosition = …
Run Code Online (Sandbox Code Playgroud)

android hardware-acceleration android-fragments android-canvas

11
推荐指数
1
解决办法
5852
查看次数

为什么硬件加速不能在我的View上运行?

我正在使用Facebook的Rebound库复制其聊天头实现中看到的有弹性的动画.问题是,大多数时候动画都会断断续续.一些图片将更好地解释这一点.这是黄油般流畅的聊天头像:

Facebook Messenger

这是我的尝试(注意白色动画View几乎所有帧都跳过):

口吃动画

偶尔它会顺利运行:

流畅的动画

下面是我目前正在使用的代码(如果你想快速设置,整个项目都在Github上).我猜这与我的硬件加速没有正确启用有关View.有2个Spring在我的SpringSystem,一个用于"泡沫"(在Android图标),而另一个为内容(白色View时显示上轻敲气泡).如何解决这个问题的任何帮助将不胜感激.谢谢.

AndroidManifest.xml:

    <application android:hardwareAccelerated="true" ...>
        ...
    </application>
Run Code Online (Sandbox Code Playgroud)

AppService.java:

    // the following code is in AppService#onCreate()
    // AppService extends android.app.Service
    // full code at https://github.com/vickychijwani/BubbleNote

    mContent.setLayerType(View.LAYER_TYPE_HARDWARE, null);

    final Spring bubbleSpring = system.createSpring();
    bubbleSpring.setCurrentValue(1.0);
    bubbleSpring.addListener(new SpringListener() {
        @Override
        public void onSpringUpdate(Spring spring) {
            float value = (float) spring.getCurrentValue();
            params.x = (int) (mPos[0] * value);
            params.y = (int) (mPos[1] * value);
            mWindowManager.updateViewLayout(mBubble, params);
            // …
Run Code Online (Sandbox Code Playgroud)

animation android hardware-acceleration android-animation facebook-messenger

11
推荐指数
1
解决办法
4108
查看次数

Android Force GPU渲染如何启用和禁用?

我正在构建一个需要在画布上进行大量绘制的应用程序.我注意到应用程序在高分辨率设备(例如nexus 7)中有点滞后.我看到开发人员选项中有一个Force GPU选项.启用强制GPU后,我的应用程序运行绝对流畅.

我已经读过这个Force GPU选项被称为硬件加速,它仅适用于Android 3.0及更高版本.

我的应用针对Android 2.3及更高版本.

是否有可能在任何Android 3.0或更高版本的设备上以编程方式启用硬件加速(或强制GPU - 无论魔法是什么)?

就像是:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){

    Turn On Hardware Accelerate HERE but How can i do this?
    any code snippet would be welcome/helpful/thanks

}
Run Code Online (Sandbox Code Playgroud)

android gpu canvas hardware-acceleration

10
推荐指数
1
解决办法
1万
查看次数

背景颜色问题,Retina iMac上的Chrome.硬件加速相关?

我正在测试一个网站,我在最新的Chrome版本上遇到了奇怪的问题.在非视网膜iMac上,它显示效果很好,但在5k Retina iMac上,背景颜色变得略微偏离.

附加图像以演示......

Chrome问题

希望你能看到这里发生的事情.盒装区域的颜色与实际背景颜色略有不同.背景颜色仅在上面设置body.

如果您关闭硬件加速,问题就会消失.

有这个或想法的经验吗?

google-chrome background-color hardware-acceleration

10
推荐指数
1
解决办法
259
查看次数