- 博客(43)
- 收藏
- 关注
原创 构造函数和析构函数
生活中你的家有客厅 (Public),有你的卧室 (Private)客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去但是呢,你也可以允许你的好闺蜜好基友进去。(2)如果我们提供有参构造函数,编译器就会不会提供默认构造函数,但是会提供拷贝构造函数。(1)默认构造函数(空实现),析构函数(空实现),拷贝函数(数值的拷贝)。(3)如果提供拷贝函数,就不提供构造函数(有参和无参)(4) :两种访问方式(类访问和对象访问)(6):两种访问方式(对象访问和类访问)
2026-05-11 18:33:17
221
原创 基于C++开发的多路码流的项目
上图是同一个典型的多线程入队,出队的过程。这里需要创建两个线程,一个是入队线程、一个是出队线程。入队线程主要是通过push的api向Queue的队尾插入数据,插入数据的同时通过pthread_cond_broadcast通知出队线程取出数据。此时出队线程正在等待入队线程的唤醒(pthread_cond_wait),若收到唤醒通知则让队列数据出队。
2025-10-14 18:25:11
914
原创 通过GOP模式调节画面质量
GOP模式概述GOP(Group of Pictures)是视频编码中的基本结构单元,用于组织帧序列的压缩和存储。其核心目标是通过帧间预测(如I帧、P帧、B帧)减少冗余数据,提升压缩效率。关键帧类型 I帧(关键帧):独立编码的完整图像,不依赖其他帧,解码起点和随机访问的锚点。 P帧(预测帧):基于前一个I帧或P帧进行运动补偿编码,压缩率高于I帧。 B帧(双向预测帧):参考前后帧信息编码,压缩率最高,但需缓存前后帧,增加延迟。GOP结构参数 GOP长度(N):两个
2025-10-11 13:20:26
749
原创 QP原理的讲解
QP调节画面质量的原理QP(Quantization Parameter)是视频编码中控制量化精度的参数,直接影响压缩率和画面质量。QP值越小,量化步长越小,保留的细节越多,画面质量越高,但文件体积越大;QP值越大,压缩率越高,但可能出现块效应和细节丢失。QP与画面质量的平衡低QP(如10-20):适合高画质需求场景,如影视制作、蓝光视频,但文件体积显著增加。 中等QP(如20-30):平衡画质与体积,适用于流媒体和日常视频分发。 高QP(如30-51):牺牲画质换取极低码率,仅用于低带宽传输或预
2025-10-11 12:23:27
1215
原创 视频编码原理讲解三:视频码率和视频码率控制模式
视频码率定义视频码率(Bitrate)指单位时间内视频数据流的大小,通常以kbps(千比特每秒)或Mbps(兆比特每秒)为单位。码率直接影响视频的清晰度和文件大小:◦ 高码率:画质更清晰,但文件体积大,对带宽要求高。◦ 低码率:文件体积小,节省带宽,但画质可能下降。常见码率范围举例:◦ 720p视频:2-5 Mbps◦ 1080p视频:5-10 Mbps◦ 4K视频:20-50 Mbps码率控制模式码率控制模式是编码器分配码率的方式,主要分为以下类型:1. CBR(恒定码率)◦ 码率固定不变,适合稳定带宽
2025-10-09 19:18:23
777
原创 VCL层和NAL层
VCL 层(视频编码层):H.264/H.265 等编码标准的核心层,负责视频数据压缩,包括帧内 / 帧间预测、变换量化、熵编码等,输出压缩后的原始视频数据流。NAL 层(网络抽象层):封装 VCL 输出的数据为 NAL 单元(NALU),添加头部标识(如数据类型、优先级),适配网络传输(如 IP、广播),处理丢包、优先级控制等,实现编码数据与网络的解耦。
2025-10-09 16:31:09
669
原创 音视频RGA模块
瑞芯微 RGA(旋转与几何加速单元)是硬件加速模块,核心功能为高效处理图像旋转、缩放、格式转换等几何变换,依托硬件加速大幅降低 CPU 占用,适配高帧率场景。常与 VI(视频输入)、VO(视频输出)等模块配合,通过配置属性结构体(如rga_attr)设置参数(旋转角度、缓冲区池等),广泛用于摄像头预处理、显示适配、编码前格式转换等场景。
2025-10-08 20:34:35
417
原创 RV1126 视频输入VI模块
初始化校验:检查通道 ID、格式等参数合法性,验证 MPI 接口返回值(如配置失败直接退出)。缓冲区错误:获取失败时重试几次,仍失败则终止采集并释放资源。超时处理:设置合理超时时间,避免永久阻塞,超时后记录日志并复位。资源释放:无论正常退出还是出错,确保释放缓冲区、关闭文件 / 设备。信号捕获:响应 SIGINT 等信号,触发优雅退出流程(如终止循环、清理资源)。
2025-10-08 19:51:24
1256
原创 音视频YUV
嵌入式音视频学习核心摘要一、核心基础:YUV 格式(嵌入式音视频的 “通用语言”)1. 采样格式对比(核心是 “压缩效率与场景匹配”)1. 4:4:4(全采样):每像素独立 YUV,无损但数据量大(3 字节 / 像素),仅用于医疗 / 电影后期;2. 4:2:2(水平压缩):2×1 像素共用 UV,数据量 2 字节 / 像素,适配 HDMI 传输 / 监控;3. 4:2:0(双轴压缩):2×2 像素共用 UV,数据量 1.5 字节 / 像素(仅 RGB 的 50%),是嵌入式默认格式(瑞芯微 VI
2025-10-05 20:21:49
1053
原创 QT里面的信号槽理解
还有就是自定义信号与槽,连接的还是一样的,就是信号和槽需要自己定义而已,最后需要出发信号有emit +函数()。uidesigner来连接,第二种QObject::connect(ui->定义的信号,SIGNAL(clicked),this,SLOT(函数()));第三种:QObject::connect(ui->信号,&QPushButton::clicked,[=](){}),第四种:QObject::connect(ui->信号,&QPushButton::clicked,&Widget::函数);
2025-04-08 21:42:06
212
原创 纯虚函数是什么?
纯虚函数就是在虚函数的基础上修改的,当一个类的存在纯虚函数时,这个类也叫抽象类,纯虚函数必须满足几点几点就是函数不能进行初始化对象,第二就是当父类进行纯虚函数的书写时间,子就要进行重写父类纯虚函数,否则也不能进行初始化对象。
2025-04-08 17:46:21
181
原创 浅拷贝和深拷贝是什么?
深拷贝:就是在堆区重新申请内存空间,进行拷贝操作。深浅拷贝是面试常见的经典的问题,也是常见的坑.浅拷贝:就是简单的赋值操作过程。
2025-03-10 18:57:33
172
原创 对象的初始化和清理
2.C++的面向对象来源于生活,每个对象都会有初始化设置和销毁前的清理数据的设置二.构造函数和析构函数对象的初始化和清理也是两个非常重要的安全问题使用玩同样的一个对象和变量,如果不及时的清理也会造成一定的安全问题C++利用构造函数和析构函数解决上述的一系列问题,这两个函数会自动被编译器调用,完成对象的初始化和清理过程。
2025-03-10 16:22:59
235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1