我来说说CUDA 转码为啥不受人待见

2024-02-01 06:48

本文主要是介绍我来说说CUDA 转码为啥不受人待见,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原因1、业界用免费X264.exe习惯了。
直到目前,X264.exe依旧是大势所趋,地位崇高,因为X264.exe除了慢没有缺点。其实也不慢,转RMVB等其他格式也是一样慢。CUDA转码软件中免费的只有Media Coder稍好点,但是。。。

原因2、不支持预订码率。
据我所知,免费版的Media Coder只支持Const Quality,不支持预订码率。预订码率可以让你获得你期望的文件大小,不支持这点很囧。

原因3、画质不好。
我曾今试验过,X264 2pass @ 1000kbps 基本等同于 CUDA @ 2000kbps,也就是说,同大小下,CUDA的画质根本不是X264的对手。有些人说目测无区别,但是在习惯和1080p打交道的人眼里,哪怕头发的边缘出现一两个噪点都是区别。画质不好的原因请看原因4:

原因4:支持参数惨不忍睹的少:
1、CUDA不支持自定义CABAC
2、CUDA不支持自定义B帧数量、B-Bias、B-pyramids,要知道B帧的引入是X264效率的灵魂;
3、CUDA不支持自定义Chroma ME,导致CUDA对于高速运动画面的处理惨不忍睹;
4、诸如量化细节之类的参数,统统没有。
5、基本只能自定义level。。。
为什么CUDA的编码器跟x264差别如此大?请看原因5:

原因5:
这是没办法的事情。因为显卡的结构和CPU不同。CPU的分支预测要强于显卡好多好多。而且此类软件数据吞吐量很大,要用到缓存、内存之处比比皆是,但是要想程序员来利用GPU里面的寄存器、缓存、显存、内存来编程,编程难度实在太大,尽管NV频频更新SDK,但是研究新SDK、API的难度无异于学习一门新的语言。目前要根据NV CUDA 或者 OpenCL写压缩软件很难,加上GPU先天不足使得理论上CUDA画质完败X264,程序员没有为CUDA开发强大的X264编码器的热情。

为啥说CUDA适合做移动设备转码?
答案:再渣的画质上了PSP那种小屏幕也就无所谓了。

这篇关于我来说说CUDA 转码为啥不受人待见的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666406

相关文章

PyInstaller问题解决 onnxruntime-gpu 使用GPU和CUDA加速模型推理

前言 在模型推理时,需要使用GPU加速,相关的CUDA和CUDNN安装好后,通过onnxruntime-gpu实现。 直接运行python程序是正常使用GPU的,如果使用PyInstaller将.py文件打包为.exe,发现只能使用CPU推理了。 本文分析这个问题和提供解决方案,供大家参考。 问题分析——找不到ONNX Runtime GPU 动态库 首先直接运行python程序

CUDA:用并行计算的方法对图像进行直方图均衡处理

(一)目的 将所学算法运用于图像处理中。 (二)内容 用并行计算的方法对图像进行直方图均衡处理。 要求: 利用直方图均衡算法处理lena_salt图像 版本1:CPU实现 版本2:GPU实现  实验步骤一 软件设计分析: 数据类型: 根据实验要求,本实验的数据类型为一个256*256*8的整型矩阵,其中元素的值为256*256个0-255的灰度值。 存储方式: 图像在内存中

ffmpeg安装测试(支持cuda支持SRT)

文章目录 背景安装ffmpeg直接下载可执行文件选择版本选择对应系统版本下载测试Linux下安装 查看支持协议以及编码格式 常见错误缺少 libmvec.so.1LD_LIBRARY_PATH 错误 GPU加速测试SRT服务器搭建下载srs5.0源码解压安装配置启动 SRT推流测试SRT播放测试 背景 在音视频开发测试中,FFmpeg是一个不可或缺的工具,它以其强大的音视频处理

mysql中,字段类型为tinyint(1),在查询时为啥不显示正常的数字而是true或false?

背景 在查询数据的时候发现gender字段应该显示1,2,3,4等这样的数字,但是查出来却是true或false这样的boolean类型 分析 不免产生疑问,为何education字段也是存的数字,就能正确显示出数字,而gender不行,我又查看字段,发现这两个字段的类型不一样 gender字段的类型是tinyint()类型,那在不想改变字段类型的情况下,该如何能查出正确的数据呢?

JS 对中文进行转码防止乱码

var BREED_TYPE = escape(breedType);//进行转码diag.URL = 'test_add.jsp?BREED_TYPE='+BREED_TYPE //弹出一个新的页面var Request = new Object();Request = GetRequest();var breedType = Request["BREED_TYPE"];//看到正

【FFMPEG】Install FFmpeg CUDA gltransition in Ubuntu

因为比较复杂,记录一下自己安装过程,方便后续查找,所有都是在docker环境安装cuda11.7的 **ffmpeg 4.2.2 nv-codec-headers-9.1.23.3 ** 手动下载安装吧 https://github.com/aperim/docker-nvidia-cuda-ffmpeg/blob/v0.1.10/ffmpeg/Dockerfile最好手动一个一个安装,错误跳

windows 机器学习 tensorflow-gpu +keras gpu环境的 相关驱动安装-CUDA,cuDNN。

本人真实实现的情况是: windows 10 tensorboard             1.8.0 tensorflow-gpu          1.8.0 pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ tensorflow-gpu==1.8.0 Keras                   2.2.4 pip

CUDA与TensorRT学习三:TensorRT基础入门

文章目录 一、TensorRT概述二、TensorRT应用场景三、TensorRT模块四、导出并分析ONNX五、剖析ONNX架构并理解Protobuf六、ONNX注册算子的方法七、快速分析开源代码并导出ONNX八、使用trtexec九、trtexec log分析 一、TensorRT概述 二、TensorRT应用场景 三、TensorRT模块 四、导出并分析ONNX 五、

【并行计算】CUDA基础

cuda程序的后缀:.cu 编译:nvcc hello_world.cu 执行:./hello_world.cu 使用语言还是C++。 1. 核函数 __global__ void add(int *a, int *b, int *c) {*c = *a + *b;} 核函数只能访问GPU的内存。也就是显存。CPU的存储它是碰不到的。 并且核函数不能使用变长参数、静态变量、函数指