Xilinx官方提供了TPG、MIPI、SDI、HDMI和FILE等接口作为图像的输入源,在工程中例化为V4L2架构设备,供上层软件调用。TPG全称为Test Pattern Generator,为FPGA逻辑产生的一个模拟图像源,可提供一系列不同模式的模拟图像,对于初学者而言是学习V4L2架构、Gstreamer命令以及调试流程最合适的开端。VCU编码并通过rtp网络传输是很多工程应用的基本需求,本文将演示如何将TPG图像编码并通过网络传输。

平台、配件及软件
ZCU104
Vivado2020.1
Petalinux2020.1
micro usb数据线
网线
Vivado工程
  整个工程的block desigh如下:

  VCU的配置和之前一样,使能Encoder和Decoder,并按照下图进行配置。

  TPG和Frame Write配置如下:


 
  VCU的HP口选择和之前一致,也是接到HP2和HP3,TPG的Frame Write单独接到HP1口。

Petalinux工程
  按照官方ug1144的命令新建工程、配置工程、编译工程、生成BOOT.BIN。
  petalinux-create --type project --template --name <PROJECT_NAME>
  petalinux-config --get-hw-description /–get-hw-description=<PATH-TO_XSA Directory>
  xliinx工具已经为VCU、TPG生成好了完美的devicetree,不用自己去修改。
  在rootfs下打开gstreamer插件和v4l2插件。
  petalinux-build
  petalinux-package --boot --format BIN --fsbl --u-boot -o PATH-TO-OUTPUT-WITH-FILE-NAME

工程演示
  将生成的BOOT.BIN和image.ub复制到SD卡,插入SD卡,上电启动,TPG会例化为V4l2的设备挂载到/dev/video0,执行如下命令:
  设置ZCU104板子的IP为192.168.1.101
  root@blog:/mnt# ifconfig eth0 192.168.1.101
  将video0的视频编码通过rtp协议发送到网络
  root@blog:/mnt# gst-launch-1.0 v4l2src device=/dev/video0 ! “video/x-raw, width=1920, height=1080” ! omxh264enc target-bitrate=20000 ! h264parse config-interval=-1 ! mpegtsmux ! rtpmp2tpay ! udpsink host=192.168.1.99 port=9001 sync=true
  板子上打印信息如下:

root@blog:/mnt# ifconfig eth0 192.168.1.101
root@blog:/mnt# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0A:35:00:22:01
inet addr:192.168.1.101 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::20a:35ff:fe00:2201/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1933 errors:0 dropped:2 overruns:0 frame:0
TX packets:119657 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1088389 (1.0 MiB) TX bytes:163819758 (156.2 MiB)
Interrupt:30

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

root@blog:/mnt# gst-launch-1.0 v4l2src device=/dev/video0 ! “video/x-raw, width=1920, height=1080” ! omxh264enc target-bitrate=20000 ! h264parse config-interval=-1 ! mpegtsmux ! rtpmp2tpay ! udpsink host=192.168.1.99 port=9001 sync=true
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
Redistribute latency…
[ 1105.839444] xilinx-vtc a0010000.v_tc: Failed to set clk rate: 74250000, actual rate: 75000000
!! Warning : Adapting profile to support bitdepth and chroma mode
!! The specified Level is too low and will be adjusted !!

  设置PC的IP地址为192.168.1.99,然后打开vlc软件,媒体->打开网络串流->网络->rtp://@:9001->播放。最终显示效果如下:


代码及源文件
  交流和合作请发邮件至humph-hobbit@foxmail.com
————————————————
版权声明:本文为CSDN博主「Humph-Hobbit」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangyanhui2008/article/details/109960311

Hobbit玩转Zynq MPSoC系列之2:TPG输入+VCU编码+rtp网络传输相关推荐

  1. ultrascale和arm区别_[原创] Avnet Zynq UltraScale+MPSoC系列Ultra96开发方案

    Avnet公司的Ultra96 开发板是基于ARM的Xilinx ZynqUltraScale+™ MPSoC系列产品的满足Linaro 96板指标的开发板,设计者可创建或评估Zynq处理器子系统(P ...

  2. 【Xilinx】Zynq\MPSoc\Versal不同速度等级下的ARM主频

    [Xilinx]Zynq\MPSoc\Versal不同速度等级下的ARM主频 一.Zynq(A9) 二.MPSoC(A53+R5) 三.Versal(A72+R5F) 最近有很多人在选型的时候,问到A ...

  3. 探索 Zynq MPSoC:配套 PYNQ 和机器学习应用一起使用 - 序言鸣谢目录20211231

    写在前面的话:看到朋友圈分享的这本书,一时技痒,给自己定个小目标,从今天开始翻译本书,作为小白学习FPGA之路的记录,仅供个人学习之用,并非用于任何商业目的.仅发布于知乎.个人CSDN博客和/或个人微 ...

  4. Zynq MPSOC 电子书免费下载

    Zynq MPSOC 电子书免费下载 期待已久的 Zynq MPSOC 电子书终于上线了, 书名为<Exploring Zynq MPSoC With PYNQ and Machine Lear ...

  5. Xilinx ZYNQ MPSOC 多核高性能计算平台

    Xilinx ZYNQ MPSOC 多核高性能计算平台 转自:微信公众号 FPGA渠道及方案一站式服务商 本平台搭载16nm工艺的ZYNQ UltraScale XCZU15EG-2FFVB1156 ...

  6. 【玩转server 2019系列】Windows server 2019打开windows defender提示“需要新应用打开windows defender”的解决方法

    [玩转server 2019系列]Windows server 2019打开windows defender提示"需要新应用打开windows defender"的解决方法 参考文 ...

  7. 玩转大数据系列之三:数据报表与展示

    为什么80%的码农都做不了架构师?>>>    经过了数据采集与数据同步.数据分析和处理,我们应该考虑将处理好的数据做成报表或者大屏展示给老板们看,以便老板们可以更加精准地做出战略决 ...

  8. ROS系统MoveIt玩转双臂机器人系列(二)--生成MoveIt配置包

    ROS系统MoveIt玩转双臂机器人系列(二)--生成MoveIt配置包 注:本篇博文全部源码下载地址为:Git Repo. 1. 下载到本地后解压到当前文件夹然后运行:catkin_make 编译. ...

  9. zynq开发系列5:通过AXI GPIO的中断实现PL端按键控制PS端LED(SDK开发详解)

    axi_gpio是PL端gpio(FPGA资源搭建的软核),ps7_gpio是ps端gpio(硬核).打开Documentation的示例Examples,可知第二个是关于中断的示例.导入示例impo ...

最新文章

  1. 经验 | 深度学习优化背后的数学基础
  2. idea clone 华为云仓库
  3. 大话风险投资的风险-不只是独角戏(上)
  4. Spring 资源访问剖析和策略模式应用
  5. 颠沛流离的Arcsight,辉煌不再
  6. 使用Hot Chocolate创建ASP.NET Core GraphQL服务
  7. elasticsearch 6.x (一) 部署 windows入门 spingboot连接
  8. android组建之间通信_Android组件化(三)组件之间的通信
  9. 数据管理的3种方法,看完后感叹:数字化转型、数据中台真不难
  10. vivo Y66的usb调试模式在哪里,打开vivo Y66usb调试模式的流程
  11. 计算机视觉论文-2021-06-25
  12. 解释Linux进程的父子关系,Linux进程管理
  13. HDU 6444 Neko's loop(单调队列)
  14. JAVA多线程----用--取钱问题1
  15. 数据结构详解之栈和队列
  16. ConcurrentLinkedQueue since java1.5
  17. IPEmotion 2022 R1支持ARINC 429数据总线标准
  18. 半导体器件物理【6】固体量子——各种电子有效质量 + 状态密度函数
  19. 通过微信公众号实现微信快捷登陆
  20. kuangbin专题十二 HDU1069 Monkey and Banana

热门文章

  1. boost::type_erasure相关的测试程序
  2. boost::mpl::string相关的测试程序
  3. boost::interprocess::message_queue用法的测试程序
  4. boost::boost::maximum_adjacency_search用法的测试程序
  5. boost::dynamic_bitset模块实现ambiguous set的测试程序
  6. Boost:BOOST_VERIFY扩展的用法测试程序
  7. VTK:Utilities之DataAnimation
  8. OpenCV检测拐角detecting corners的实例(附完整代码)
  9. OpenCV限制对比度自适应直方图均衡(CLAHE)的实例(附完整代码)
  10. C语言实现段树segment tree(附完整源码)