• FFplay文档解读-39-视频过滤器十四


    29.130 prewitt

    应用prewitt运算符输入视频流

    过滤器接受以下选项:

    planes
    

    设置要处理的平面,将复制未处理的平面。 默认值为0xf,将处理所有平面。

    scale
    

    设定值将与过滤结果相乘。

    delta
    

    设置将添加到筛选结果的值。

    29.131 program_opencl

    使用OpenCL程序过滤视频。

    source
    

    OpenCL程序源文件。

    kernel
    

    程序中的内核名称。

    inputs
    

    过滤器的输入数量。 默认为1

    size, s
    

    输出帧的大小。 默认值与第一个输入相同。

    程序源文件必须包含具有给定名称的内核函数,该函数将针对输出的每个平面运行一次。 平面上的每次运行都会作为单独的2D全局NDRange排队,每个像素都会生成一个工作项。 因此,每个工作项的全局ID偏移量是目标图像中像素的坐标。

     学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂
    【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

      

    内核函数需要采用以下参数:

    • 目标图像,__ write_only image2d_t

      这个图像将成为输出; 内核应该写出所有内容。

    • 帧索引,unsigned int

      这是一个从零开始的计数器,每帧增加一个。

    • 源图像,__ read_only image2d_t

      这些是每个输入的最新图像。 内核可以从它们读取以生成输出,但是它们无法写入。

    示例程序如下:

    • 将输入复制到输出(输出必须与输入的大小相同)。

      1. __kernel void copy(__write_only image2d_t destination,
      2. unsigned int index,
      3. __read_only image2d_t source)
      4. {
      5. const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
      6. int2 location = (int2)(get_global_id(0), get_global_id(1));
      7. float4 value = read_imagef(source, sampler, location);
      8. write_imagef(destination, location, value);
      9. }
    • 应用简单的转换,使用索引计数器增加一个量的输入。 采样器对像素值进行线性插值,输出的尺寸不必与输入相同。

      1. __kernel void rotate_image(__write_only image2d_t dst,
      2. unsigned int index,
      3. __read_only image2d_t src)
      4. {
      5. const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
      6. CLK_FILTER_LINEAR);
      7. float angle = (float
  • 相关阅读:
    【Django】掌握models.py模型文件的使用
    微信小程序之自定义导航toolbar添加home键
    maven
    HTML基础
    商业管理和经济学哪个好ib?
    测试 chatgpt 图片功能
    SQL仓库
    对雷达中相位补偿概念的一些理解
    [C国演义] 第十六章
    聊聊基于Alink库的主成分分析(PCA)
  • 原文地址:https://blog.csdn.net/irainsa/article/details/127850856