- 博客(30)
- 资源 (4)
- 收藏
- 关注
原创 C++之compare_exchange_weak和compare_exchange_strong
这两个函数都是C++原子操作中的比较交换(compare-and-swap, CAS)操作,用于实现无锁编程,但它们有一些重要区别。
2025-07-21 19:45:54
233
原创 gstreamer之pipeline/loop/bus
是 GLib 和 GStreamer 中两个重要的函数,它们在多媒体应用程序中通常一起使用,但服务于不同的目的。是通过 GStreamer 的 bus (消息总线) 机制集成在一起的。管道是多媒体处理的基本单元,包含一系列连接的元件(element)来处理媒体流。GStreamer 的 bus (消息总线) 会向 GLib 主循环发送消息。管道处理媒体数据,而主循环处理相关事件,两者协同工作实现完整的媒体处理应用。会处理 GStreamer 管道产生的各种事件 (如状态改变、消息等)
2025-07-16 20:42:46
894
原创 Video Python(Pyav)解码二
img = frame.to_ndarray(format="bgr24") # 转为OpenCV可用的numpy数组。print("解码帧:", frame.pts, frame.time_base)print("解码帧:", frame.pts, frame.time_base)# frame 是解码后的视频帧(av.VideoFrame)# frame 是解码后的视频帧(av.VideoFrame)print("解码帧:", frame.pts)# 直接解码帧(自动处理Packet→Frame)
2025-07-15 14:19:29
639
原创 Video Python(Pyav)解码一
是一个字典,用于传递FFmpeg的格式(Format)、编解码器(Codec)、协议(Protocol)等选项。'c:v': 'h264_cuvid', # NVIDIA硬解。'analyzeduration': '100000', # 快速格式探测。'fflags': 'nobuffer', # 减少缓冲。'flags': 'low_delay', # 低延迟模式。'timeout': '10000000', # 10秒超时。
2025-07-15 14:17:40
540
原创 Gstreamer之”pad-added“事件
gst_bin_add_many(GST_BIN(pipeline), rtspsrc, queue, /* 其他元素 */, NULL);是 GStreamer 中一个非常重要的信号,当元素动态创建一个新的 pad(连接点)时会发出此信号。:某些元素(如 rtspsrc、decodebin)在运行时才会创建 pad,而不是在初始化时就存在。:GStreamer 中元素之间的连接点,数据通过 pad 流动。// 可以在这里实现流重启逻辑。// ... 其他元素创建。// pad-added 回调。
2025-07-14 21:33:44
615
原创 AI之batch normalization
通过对每个批次的均值和方差添加噪声(因批次样本随机性),BN隐式地起到了轻微正则化的作用,可减少对Dropout的依赖。BN通过标准化和可学习的仿射变换,显著提升了深度网络的训练效率和性能,成为现代神经网络设计的标配组件之一。标准化后的数据更接近激活函数(如ReLU)的敏感区间,缓解梯度消失/爆炸问题,允许使用更大的学习率。:对每一层的输入进行标准化(均值为0、方差为1),减少分布波动,使后续层的学习更稳定。对卷积层,BN会沿批次和空间维度(H、W)计算统计量,保持通道(C)独立。# 定义带BN的模型。
2025-07-10 21:37:38
594
原创 AI梯度传播之链式法则
残差连接提供恒等映射路径,确保至少有一条路径的梯度为1(∂y/∂x=1),缓解梯度消失。:残差连接通过梯度叠加(而非连乘)缓解深层网络的梯度消失问题。若多层梯度绝对值 ≪1≪1,连乘后前层梯度趋近于0(消失)。若多层梯度绝对值 ≫1≫1,连乘后前层梯度急剧增大(爆炸)。(II 为指示函数,ReLU的梯度在输入≤0时为0)激活函数(如ReLU)的梯度是局部门控(0或1)。每一层的梯度都是后一层梯度与本层局部梯度的乘积。这是残差结构的核心:梯度来自两条路径的叠加。,每一层的梯度依赖于后一层的梯度计算结果。
2025-07-10 20:50:21
924
原创 AI之梯度反向传播
计算主路径:(x -> h1 -> a1 -> h2 -> yres( 也就是F(x)+x) -> y。y=ReLU(F(x)+x),其中 F(x)=Conv2(ReLU(Conv1(x)))即使深层梯度 ∂L/∂F(x) 很小,∂L/∂x仍能有效更新浅层权重。:残差结构确保梯度能直接回传至浅层(如 ∂L/∂x),避免梯度消失。若输入>0则梯度为1,否则为0。
2025-07-10 20:42:19
502
原创 AI onnxruntime iobinding介绍
在 ONNX Runtime 中,是一种,允许直接将输入/输出张量绑定到特定的内存(如 GPU 显存),避免不必要的内存拷贝,从而提升推理速度。
2025-07-01 14:15:28
695
原创 AI 内存基础介绍
在 ONNX Runtime 中,合理选择内存类型可以显著提升推理性能,特别是在 GPU 加速场景下。显卡(GPU)专用的高速内存,CPU 无法直接访问,必须通过 PCIe 总线传输数据。时,输入数据通常需要先拷贝到固定内存,再传输到 GPU 显存。:当系统内存不足时,部分内存页可能被交换到磁盘(虚拟内存)。→ 普通 CPU 内存,可能被换出,适合非实时任务。→ GPU 专用内存,计算速度最快,但容量有限。从固定内存高速拷贝数据,比可分页内存快得多。管理,内存页可以按需交换到磁盘(swap)。
2025-07-01 10:07:48
524
原创 Mesa中DRI3与SWRast屏幕创建区别
如果你需要高性能的图形渲染,并且系统支持硬件加速,使用。如果你在没有GPU或需要兼容性测试的环境下,使用。
2025-03-13 14:10:50
298
原创 Linux PCIE热插拔设备及其驱动相关(on-going)
struct pci_device_id用于定义PCI设备;MODULE_DEVICE_TABLE;导出pci_device_id中设备的相关信息至modules.pcimaphttps://zhuanlan.zhihu.com/p/116478513http://blog.chinaunix.net/uid-7187477-id-3221645.htmlpci_driver其中,成员id_table指向struct pci_device_id设备信息,其他成员为驱动相关的函数等;然后会调用p
2021-01-20 11:49:30
648
原创 PCI & PCIE (on-going)
Backgroundhttps://blog.youkuaiyun.com/zuowanbishe/article/details/86751577
2021-01-18 10:33:25
571
原创 Keil工具
RegionTableTableTableBasehttps://blog.youkuaiyun.com/u012502355/article/details/105000014
2020-12-25 10:46:15
377
原创 Good Articles
DFT,FFT傅里叶变换 https://zhuanlan.zhihu.com/p/19763358DFT https://blog.youkuaiyun.com/enjoy_pascal/article/details/81478582Audio wavehttps://www.chiphell.com/thread-2166579-1-1.htmlAudio AIhttps://ww...
2020-12-23 16:34:18
157
原创 ftrace 使用示例
1.make menuconfig->Kernel hacking>Tracers>Kernel Function Tracer …2.user manualexample:If I am only interested in sys_nanosleep and hrtimer_interrupt:# echo sys_nanosleep hrtimer_interrupt > set_ftrace_filter# echo function > current_t
2020-12-23 15:43:16
622
原创 Libmad编译的坑
1.参考文章https://www.ibm.com/developerworks/cn/linux/l-cn-libmadmp3player/https://blog.youkuaiyun.com/cnclenovo/article/details/45562389https://blog.youkuaiyun.com/xiahouzuoxin/article/details/7867260https://www.cnblogs.com/musicfans/archive/2012/07/15/2819301.html2
2020-12-21 19:53:25
383
原创 Linux 驱动不固化,编译成模块
需求,调试USB gadget一直存在问题,想按照网上的例子,以模块加载的形式来试一下,所以想把默认的USB配置全部删除,顺便把没有用到的sound等无用的设备驱动一并删除~发现一 对defconfig删减了一通,删除了USB所有的模块等,使用的开发板 通过命令“$ cat /lib/modules/$(uname -r)/modules.builtin”查看以编译进内核的模块,发现还有usb*.ko编译进了内核,这个问题的主要原因是,内核的确删除了USB模块,但查看的命令,使用的是文件系统
2020-12-21 14:33:06
261
原创 虚拟机设置及安装Win10的坑
安装环境:虚拟机:VMware Workstation 15 Player系统镜像:YLMF_GHOST_WIN10_X64_V2018_11.iso1.创建新虚拟机后,修改*.vmx中,firmaware为"bios"。2.CD/DVD高级设置->虚拟设备节点,选择IDE
2020-12-21 13:04:41
867
原创 Orangepi 4B
www.orangepi.cn1.orangepi 4B利用python3使用snowboy实现语音唤醒以及使用腾讯AI api实现语音识别、回复以及合成https://blog.youkuaiyun.com/q310139033/article/details/108873825
2020-12-15 16:55:12
715
原创 GitHub Git Command
1.下载git clone https://github.com/fudexiang/TestTool.git2.提交
2020-12-11 15:12:49
148
原创 USB gadget UVC 笔记(待续)
1.应用代码https://github.com/wlhe/uvc-gadgetgadget-testing.txt 提到的命令用法为:# uvc-gadget -u /dev/video<uvc video node #> -v /dev/video<vivid video node #>,其中u后面的video节点为 out数据流 udev ubufv后面的video节点为 capture数据流 vdev vbuf所以,难怪uvc gadget驱动中一直没
2020-12-09 19:22:47
5191
原创 Linux Driver Things (on-going)
1.device resource managementhttp://www.wowotech.net/linux_kenrel/device_resource_management.html相关的函数:platform_get_resource:获取寄存器资源芯片资源一般在特殊的文件中统一定义,通过name匹配要找的资源devm_ioremap_resource...
2020-10-30 11:00:08
197
原创 Soc-Camera Subsystem(阅读理解与记录)
1.三要素camera/camera device/came sensor, 通常指带有I2C接口作为控制与配置,并行或串行总线作为图像数据传输通道的传感器。camera host, 提供sensor连接的接口。came host bus, 数据通道,包含时钟,控制总线,图像同步信号等。2.目的早期是为host驱动和sensor驱动提供统一的接口,后来sensor API被V4L2标准子设备API代替,这也使得,没有host的情况下,camera驱动代码可以复用。3.Camera Host AP
2020-10-28 16:25:00
443
原创 Linux kernel media framework(阅读理解与记录)
1.Abstract media device model在系统内部的拓扑结构中,快速找到设备,并进行实时配置,是设计该模型的一个重要目的,为了实现它,把那些具有方向图表性的构件抽象为通过pads相连的entities的硬件设备模型。三要素:entity:实体,sensor, controller等。pad: entity用于连接其他entity的端点。link: pad间的点对点连接。2.Media device强制要赋值的属性dev, 指向parent devicemodel,dev
2020-10-28 14:19:49
933
原创 基于信号案例,解析离散傅里叶变换结果的本质与公式推导
假设待分析的模拟信号为y(t) = A * sin(w1 * t + Q1) + B * sin(w2 * t + Q2) + C, FFT的目标就是根据采样点数据,获取A,B,w1, w2的信息(Q1,Q2假设为0)用如下参数模拟未知信号y(t):#define A 10#define B 20#define C 50#define Q1 0#define Q2 0#define freq_signal_1 1#define freq_signal_2 16#define
2020-08-28 11:55:59
396
原创 我学嵌入式linux(二)V4L2(持续更新中)
V4L2 apihttps://www.cnblogs.com/emouse/archive/2013/03/04/2943243.html
2020-06-03 11:11:29
2334
原创 我学嵌入式Linux(一)吐槽
1.第一次写文章,记录些无关的东西,因工作和学习的需要,买了友善之臂的Nanopi Neo小开发板,初衷是等着将来空闲有心情且想学的时候,学习下嵌入式Linux系统方面的知识,工作快7年,刚开始接触这块,很多优秀的工作机会都是跟系统相关,这块没啥经验只能望而却步。2.选择这款开发板的原因,便宜,小巧玲珑,配上铝制的盒子,看着舒服,就当买块砖头也罢。3.以前不是没有学习嵌入式linux开发板的想法,看到那些繁琐的工具链安装,还要在linux系统里面操作,真是麻烦,哪有单片机的开发环境简单,比如keil,连
2020-05-30 17:10:47
450
UCOSIIV2.52在STM32F103的移植
2011-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人