本篇文章我们来讲一下音视频基础
像素点:
将以下图片的美女眼睛放大 能够看到一个一个的小方块 这就是像素点
照片像素=宽像素点*高像素点
像素点 代码实例:
#include <opencv2/opencv.hpp>
int main() {
// 创建一个200x100的黑色图像
cv::Mat image(100, 200, CV_8UC3, cv::Scalar(0, 0, 0));
// 将某个像素点设为红色
image.at<cv::Vec3b>(50, 50) = cv::Vec3b(0, 0, 255); // (B, G, R)
// 显示图像
cv::imshow("Pixel Image", image);
cv::waitKey(0);
return 0;
}
分辩率:
图像或者视频的分辨率是指图像的大小或者尺寸 我们通常用像素表示图像的尺寸
图像的分辨率越高 图像就越清晰
例子: 360p(640*360) 宽640 高360
位深
位深通常是8bit 8bit能表示256种颜色 RGB能表示(256*256*256)种颜色
帧率
常见的帧率有以下几种(了解):
24帧/秒:这是电影行业中使用最广泛的帧率,也被称为电影标准帧率。
30帧/秒:这是视频游戏、电视节目和大部分在线视频平台使用的标准帧率之一。
60帧/秒:这是较高的帧率,用于提供更流畅的动画和游戏体验。在电竞领域以及某些要求高画质的视频制作中常见。
120帧/秒或更高:这些超高帧率通常在专业游戏竞技场景、VR(虚拟现实)设备等领域使用,以提供更快速、真实感觉的动画和交互体验。
需要注意的是,不同设备和应用程序对于可支持的帧率有不同要求,而且显示器硬件本身也会有限制。因此,在选择使用何种帧率时需考虑到具体情况和设备能力
帧率代码实例:
#include <opencv2/opencv.hpp>
int main() {
// 打开视频文件
cv::VideoCapture video("path_to_video_file");
if (!video.isOpened()) {
std::cout << "无法打开视频文件" << std::endl;
return -1;
}
// 循环读取帧并计算帧率
double fps;
cv::Mat frame;
while (true) {
double start = cv::getTickCount(); // 记录起始时间
if (!video.read(frame)) { // 读取帧
break;
}
// 在图像上绘制帧率信息
cv::putText(frame, "FPS: " + std::to_string(fps), cv::Point(10, 30), cv::FONT_HERSHEY_SIMPLEX, 1, cv::Scalar(0, 255, 0), 2);
cv::imshow("Video", frame);
if (cv::waitKey(1) == 'q') { // 按下 'q' 键退出循环
break;
}
double end = cv::getTickCount(); // 记录结束时间
double totalTime = (end - start) / cv::getTickFrequency(); // 计算经过的时间(秒)
fps = 1.0 / totalTime; // 计算帧率(每秒显示的帧数)
}
video.release();
cv::destroyAllWindows();
return 0;
}
本段代码采用的是opencv库来实现 喜欢的朋友可以深入了解
码率:
单位时间内码率越高 分辨率就越高 就越清晰
步长(Stride):
Stride决定了每次滑动的距离,它可以控制输出尺寸的大小以及运算的速度。当Stride为1时,滑动窗口/卷积核按一个像素的间隔依次遍历输入数据;而当Stride大于1时,滑动窗口/卷积核每次跳过多个像素进行下一次计算。
较小的Stride值可以产生更多的输出特征图,在某些情况下可能会提取更详细的特征信息。然而,较大的Stride值会减少输出特征图的尺寸并降低计算复杂性。
以下是一个示例说明Stride对输出尺寸影响:
假设输入图像尺寸为W x H(宽度 x 高度),滑动窗口或卷积核大小为K x K,那么使用Stride=S后,输出特征图尺寸为: ( (W - K) / S + 1 ) x ( (H - K) / S + 1 )
通过调整Stride参数可以控制输出特征图的空间分辨率和大小。同时需要注意,过大或过小的Stride值可能导致信息损失或计算资源的浪费,因此在选择Stride时需要权衡性能和特征提取的需求。
总结: 以上描述了图像的一些常用基础 在我们学习音视频的过程中 还是要以基础打起 在追求质量的同时追求速度 搞清楚位深 步长等概念 搞清楚图像的基本元素
好了 本篇文章就到这里结束了 在这里 小编想向大家推荐一个课程:文章来源:https://www.toymoban.com/news/detail-830099.html
https://xxetb.xetslk.com/s/2PjJ3T文章来源地址https://www.toymoban.com/news/detail-830099.html
到了这里,关于音视频基础的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!