视音频开发
文章平均质量分 83
ch3rry
每天早上醒来,看见你和阳光都在,这就是我想要的未来。
展开
-
H.264编码原理以及I帧B帧P帧
前言----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中, 一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整 的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完整帧的1/10或更小!B帧之后的C帧如果变化...原创 2020-06-03 21:32:56 · 472 阅读 · 0 评论 -
相机系统综述 —— ISP
ISP(Image Signal Processor),即图像信号处理器,用于处理图像信号传感器输出的图像信号。它在相机系统中占有核心主导的地位,是构成相机的重要设备。主要内部构成如下图所示,ISP 内部包含 CPU、SUP IP、IF 等设备,事实上,可以认为 ISP 是一个 SOC,可以运行各种算法程序,实时处理图像信号。ISP 架构 CPU CPU 即中央处理器,可以运行 ...原创 2020-03-18 21:05:25 · 618 阅读 · 0 评论 -
Camera光学、成像和 3A 算法
成像与光学。计算机视觉,图像处理,数字成像。自动驾驶与视觉。镜头设计;人成像(相机),机器视觉 计算机视觉-- 光学与 camera,书籍《应用光学》,《几何光学》Camera(摄像头)算法的书,FPGA或DSP实现的。如ISP功能实现、3A、3D降噪、边缘增强、色彩还原、图像增强、防抖、去雾、隐私遮挡等的,张芙蓉,《基于DM642的H.264编码器研究》李方慧,王飞,何佩...转载 2020-03-18 20:55:35 · 4038 阅读 · 0 评论 -
详解计算机视觉五大技术:图像分类、对象检测、目标跟踪、语义分割和实例分割
1详解计算机视觉五大技术:图像分类、对象检测、目标跟踪、语义分割和实例分割2Convolutional Neural Networks for Visual Recognition github原创 2019-11-25 17:05:17 · 277 阅读 · 0 评论 -
高通Camera HAL调用流程
以开启预览为例:1,在Qcamera2hwi.cpp中的QCamera2HardwareInterface::startPreview()函数中调用startChannel(QCAMERA_CH_TYPE_PREVIEW);2,进入QCamera2HardwareInterface::startChannel(qcamera_ch_type_enum_t ch_type)调用m_channel...转载 2019-05-23 22:37:59 · 1024 阅读 · 0 评论 -
数字成像系统简述
本文向你介绍三方面内容:成像系统组成、3A系统概述、ISP统计信息。文章目录1成像系统的组成 1.1视角 1.2曝光 1.3感光度 ISO 23A 系统概述 3ISP统计信息成像系统的组成从成像过程来看,成像系统由如下部分组成:当你打开手机准备拍照,镜头(Lens)会首先把被摄景物投影在图像传感器(Sensor)上,与此同时,影像处理器(ISP...转载 2019-05-23 22:34:42 · 3826 阅读 · 1 评论 -
高通camera调试
摄像头基础介绍一、摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像。数字信号处理芯片DSP(DIGITAL SIGNAL PROC...原创 2019-05-23 22:31:24 · 1541 阅读 · 0 评论 -
手机双摄像头原理解析:RGB +Depth
智能手机摄像头中:普通彩色相机(RGB) + 深度相机(Depth)的技术原理。首先来解释一下什么是深度相机吧。深度相机顾名思义,深度相机就是可以直接获取场景中物体距离摄像头物理距离的相机。根据原理不同,主要有飞行时间(TOF)、结构光、激光扫描几种方式(注:有些地方将双目立体视觉相机也列为深度相机的一种,它是单纯依靠算法计算得到的深度信息)。目前使用较多的是TOF相...原创 2019-04-14 22:04:14 · 1874 阅读 · 1 评论 -
手机双摄像头工作原理详解:RBG +RGB, RGB + Mono
由于双摄技术的快速发展,目前已经衍生出了几种不同的双摄硬件和算法配置解决方案。不同手机厂商可能有不同的双摄配置,比如华为荣耀P9采用的就是黑白相机+彩色相机的硬件配置,而iPhone 7 plus采用的就是广角+长焦的配置。此外,随着技术的演化,同一厂商也可能推出多种不同的配置。比如,华为2014年底推出第一款双摄手机是荣耀6plus,后置两个相同的彩色相机平行排列,2016年推出的年度旗舰产品荣...原创 2019-04-14 22:03:19 · 3090 阅读 · 0 评论 -
超详细的单摄→双摄→三摄→3D成像摄像头产业链
随着时代不断发展,光电技术在各大应用领域遍地开花,中国光博会面向光通信/信息处理与储存、消费电子、先进制造、国防安防、半导体加工、能源、传感及测试测量、照明显示、医疗等九大应用领域展示前沿技术及创新综合解决方案。iPhone X 采用的 3D Sensing 核心元件包括点阵投影器(Dot projector)、接近传感器(TOF)和泛光照明(Flood...转载 2019-04-14 22:00:41 · 1166 阅读 · 0 评论 -
相机基本知识点
1、持续对焦和触摸对焦的工作原理;答:首先要了解一下对焦的工作原理。AF工作原理:就是通过微距移动镜头,sensor采集图像并传送给ISP处理,ISP把当前frame的对比度值(FV)记录下来并保存为A1,同时按照固定的step把镜头移动到下个位置。下个frame时,sensor又采集图像并传送给ISP处理,ISP把当前frame的对比度值(FV)记录下来并保存为A2。通过A1与A2对...原创 2019-04-12 22:23:52 · 2095 阅读 · 1 评论 -
如何在 kernel 和 hal 层读取同一个标志
很多时候我们需要从 HAL 层(Hardware Abstract Layer)传一个标志给 kernel 层。一般这种传递是不能直接通过定义全局变量来实现的。此时可以通过读写文件来实现该标志。譬如我们有这样一个需求,在录像过程中去掉持续对焦功能,而录像预览时开启持续对焦功能。在 HAL 层中有开始录像和停止录像的接口。/trunk/ALPS.JB3.TDD.MP.V2_TD_xx...原创 2019-04-12 22:20:13 · 317 阅读 · 0 评论 -
高通camera基本代码架构
Camera原理:外部光线穿过lens后,经过color filter滤波后照射到sensor面上,sensor将从lens上传到过来的光线转换成电信号,再通过内部的AD转换为数字信号,如果sensor没有集成DSP,则通过DVP的方式传输到baseband,此时的数据格式是RAW DATA。必须通过平台的isp来处理。如果集成了DSP,这RAW DATA数据经过AWB,color matrix,...转载 2017-11-28 17:22:03 · 3446 阅读 · 0 评论 -
高通平台camera调试移植入门
1 camera基本代码架构 高通平台对于camera的代码组织,大体上还是遵循Android的框架:即上层应用和HAL层交互,高通平台在HAL层里面实现自己的一套管理策略;在kernel中实现sensor的底层驱动。但是,对于最核心的sensor端的底层设置、ISP效果相关等代码则是单独进行了抽离,放在了一个daemon进程中进行管理:图1 Qualcomm平台camera代...转载 2017-11-28 17:20:19 · 527 阅读 · 0 评论 -
ov9650摄像头驱动之——linux内核v4l2架构分析3
V4L2的API和数据结构V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。1、常用的结构体在内核目录include/linux/videodev2.h中定义 struct v4l2_requestbuffers //申请帧缓冲,对应命令VIDIOC_REQBUFS struct v4l2_capabil...原创 2019-07-12 16:54:21 · 321 阅读 · 0 评论 -
ov9650摄像头驱动之——linux内核v4l2架构分析2
1.根据camera控制器的描述,图像传输有两个DMA通道,我们用的是C通道,所以先将DMA内存初始化,因为在V4L2操作中有把VIDIOC_REQBUFS中分配的数据缓存转换成物理地址的操作所以DMA在用之前要初始化,包括实际物理地址的计算init_image_buffer(camera_dev);// 初始化static int __inline__ init_image_buf...原创 2019-07-12 16:48:02 · 338 阅读 · 0 评论 -
ov9650摄像头驱动之—Linux内核v4l2架构分析1
v4l2视频驱动主要涉及几个知识点:摄像头方面的知识(摄像头厂家提供的芯片手册可以查看)要了解选用的摄像头的特性,包括访问控制方法、各种参数的配置方法、信号输出类型等。Camera解码器、控制器(主控芯片的芯片手册里面有摄像头相关的寄存器设置,比如2410里,里面主要是设置相关控制功能使能,芯片内部自己的架构)如果摄像头是模拟量输出的,要熟悉解码器的配置。最后数...原创 2019-07-12 16:42:57 · 337 阅读 · 0 评论 -
EasyDSS流媒体服务器成功实现5G超高清8k视频RTMP/HLS(m3u8)直播过程中遇到的一些坑(insta360 4k/8k直播)
自从2019年春节回来之后,5G直播就如雨后春笋一般,各大公司和运营商都在推行5G 4K、8K高清直播,当然,这也就卖火了insta360这款设备了,各家都在用这个设备做360全景高清4k、8k直播,我们对接的有移动、联通、华为,都是用的这款设备;insta360全景采用的也是RTMP推流直播的方式,唯一区别于我们大众常见的直播,就是码率非常大,一般都到15M~30M,所以,一般的网络条件,...转载 2019-08-27 09:26:29 · 2753 阅读 · 0 评论 -
ubuntu下安装摄像头应用程序xawtv
准备工作:安装xawtv应用程序方法一、源码xawtv-3.95.tar.gzxawtv官网下载: http://www.kraxel.org/releases/xawtv/ 下载后上传到Ubuntu上解压安装。./configure && make && make install 这个方法太麻烦,不提倡。方法二、su...转载 2019-09-08 21:58:55 · 963 阅读 · 0 评论 -
摄像头驱动程序
摄像头驱动程序必需的11个ioctl: // 表示它是一个摄像头设备 .vidioc_querycap = vidioc_querycap, /* 用于列举、获得、测试、设置摄像头的数据的格式 */ .vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap, .vidioc_g_fmt_vid_cap...原创 2019-09-08 22:04:19 · 601 阅读 · 0 评论 -
理解Gstreamer架构
本文给出了Gstreamer的总体设计。通过阅读本文可以了解Gstreamer的内部工作原理。本文编译自gstreamer源码中的文档,原文在源码中的位置是/gstreamer/docs/design/part-overview.txt。概述Gstreamer是一个libraries和plugins的集合,用于帮助实现各种类型的多媒体应用程序,比如播放器,转码工具,多媒体服务器等。利用Gstr...转载 2017-12-07 14:48:35 · 1316 阅读 · 0 评论 -
I 帧和 IDR 帧的区别
I 帧和 IDR 帧的区别: IDR 帧属于 I 帧。解码器收到 IDR frame 时,将所有的参考帧队列丢弃 (用x264_reference_reset 函数实现——在 encoder.c 文件中) 。这点是所有 I 帧共有的特性,但是收到 IDR 帧时,解码器另外需要做的工作就是:把所有的 PPS 和 SPS 参数进行更新。由此可见,在编码器端,每发一个 IDR ,就相转载 2017-11-16 13:57:10 · 483 阅读 · 0 评论 -
FFmpeg源码结构图 - 解码
FFmpeg的库函数源码分析文章列表:【架构图】FFmpeg源码结构图 - 解码FFmpeg源码结构图 - 编码【通用】FFmpeg 源码简单分析:av_register_all()FFmpeg 源码简单分析:avcodec_register_all()FFmpeg 源码简单分析:内存的分配和释放(av_malloc()、av_free()等)FFmpeg 源...原创 2019-08-20 16:27:18 · 398 阅读 · 0 评论 -
FFMPEG解码多线程
FFMPEG多线程编码器一般以在Slice内分功能模块进行多线程编码,如h263,h263P,msmpeg(v1, v2, v3),wmv1。包含以下几个线程:(1)Pre_estimation_motion_thread运动估计前的准备;(2)Estimation_motion_thread运动估计;(3)Mb_var_thread宏块其他变量;(4)Encode_thread编码主线程。当然也...转载 2019-08-20 09:39:25 · 3457 阅读 · 0 评论 -
深入了解ALSA
翻译原文 http://www.volkerschatz.com/noise/alsa.htmlIntro任何人如果经常的使用linux机器处理音乐,那么他迟早会和ALSA打交道。ALSA是Advanced Linux Sound Architecture的简称,和过时的Open Sound System(OSS)比起来更强大功能更多。事实上,你可能已经不知不觉的使用了AL转载 2018-01-22 19:54:14 · 399 阅读 · 0 评论 -
Camera Sensor
YUV SensorYUV Sensor输出的格式是YUV,图像的处理效果使用sensor内部的ISP,BB端接收到的YUV格式数据后只能进行格式的转换,效果方面不进行处理,由于Sensor内部的ISP处理嫩里有限,而且YUV Sensor的数据量比较大(YUV422格式1个pixel占据两个bytes),所以YUV Sensor的size都比较小,常见的YUV sensor都在5MB以下。原创 2018-01-22 17:27:28 · 719 阅读 · 0 评论 -
浅谈语音信号处理系列之二 语音信号处理的基础
下面简单扼要的总结几个基本概念,如果想深入了解请告诉我或者直接参考相关文献。一 语音信号的产生一般来说,声音是通过振动产生的。同样,语音是肺里面的空气形成气流通过声道,再从口鼻辐射而产生的。语音信号主要是由三种成分组成:浊音、清音和爆破音组成,这三种不同的发音取决于声带的振动和发音器官(口鼻舌等)的位置和状态。如果用信号系统的角度来看,气流通过声门(声带)形成激励源,从声门到口转载 2017-11-16 15:46:58 · 1006 阅读 · 0 评论 -
视频编解码学习之二:编解码框架
视频编解码学习之二:编解码框架第四章 视频编码基础1. 压缩码流语法:码流中各个元素的位置关系01001001…图像编码类型(01),宏块类型(00),编码系数1001等语义:每个语法元素所表达的意义。例如:图像编码类型2. 编码层次序列(Sequence)图像组(Group of Pictures,GOP)图像(Pictur转载 2017-11-16 14:47:20 · 561 阅读 · 0 评论 -
[总结]FFMPEG视音频编解码零基础学习方法
在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者。在和大家探讨的过程中,我忽然发现了一个问题:在“大神”和初学者之间好像有一个不可逾越的鸿沟。“大神”们水平高超,探讨着深奥的问题;而初学者们还停留在入门阶段。究竟是什么原因造成的这种“两极分化”呢?最后,我发现了问题的关键:FFMPEG难度比较大,转载 2017-11-30 14:45:25 · 220 阅读 · 0 评论 -
V4L2的使用及运行机制
v4l2 操作实际上就是 open() 设备, close() 设备,以及中间过程的 ioctl() 操作。对于 ioctl 的调用,要注意对 errno 的判断,如果调用被其他信号中断,即 errno 等于 EINTR 的时候,要重新调用。Video capture device 的实际功能就是采集视频信号,并将数字化的图像保存在 memory 中,现在几乎上所有的相关设备都能采集 25转载 2017-09-28 22:12:12 · 1467 阅读 · 0 评论 -
试简介视频编码技术?——知乎大神神回答
https://www.zhihu.com/question/22567173我需要宏观的关于视频编码的指导,最好是基于HEVC的编码器原理。如帧间预测编码过程,帧内预测编码过程,熵编码过程。细节可不详细,但求有宏观的流程概念,不胜感激!关注者707被浏览14507转载 2017-11-14 09:11:38 · 990 阅读 · 0 评论 -
GStreamer实现视频本地播放并RTP上传到网络VLC播放
本文介绍了如何使用gst-launch在命令行方式下实现本地视频文件的播放,并基于RTP上传到网络使用VLC播放 。send端实现了本地音视频播放和网络传输。(见末尾代码)Receive端实现了接收网络音视频数据并播放,但是,receive端的没有实现,提示faac解码错误,可能是我选择的视频格式问题,虽改用vlc播放器播放。 步骤如下:1,首先将send端命令在命令行下执行,转载 2017-11-10 09:08:55 · 19618 阅读 · 1 评论 -
gstreamer插件工作原理与流程分析
gstreamer plugins的工作同所有的基于插件的程序的工作原理类似,本质上都是通过读取动态库实现的,只需要每个动态库都实现某一个特定的接口就可以了,比如XX_init等,gstreamer统一使用plugin_init。里面会有个像注册表一样的数据结构会存储所有的插件的信息。 (1)在应用程序启动时,会调用gst_init--->gst_init_check...转载 2017-12-19 10:37:51 · 707 阅读 · 0 评论 -
GStreamer建议的学习步骤和网页链接汇总
学习步骤:0. 可以看看我做的《GStreamer讲解》ppt入门,里面对于很多知识的入门讲解,不用积分,下载链接:http://download.csdn.net/detail/yanbixing123/96679901. 学习《GStreamer中文开发手册.pdf》,这时候结合《GStreamer基础教程》和《GStreamer播放教程》来看;2. 如果想要深入理解应用开发的话,...转载 2017-12-08 14:50:56 · 541 阅读 · 0 评论 -
gstreamer插件简介
1. 简介 GStreamer是一个开源的多媒体框架库。利用它,可以构建一系列的媒体处理模块,包括从简单的ogg播放功能到复杂的音频(混音)和视频(非线性编辑)的处理。应用程序可以透明的利用解码和过滤技术。开发者可以使用简洁通用的接口来编写一个简单的插件来添加新的解码器或滤镜。目前,gstreamer已经可以应用在Linux、windows、macos、android、unix...转载 2017-12-08 14:48:20 · 1014 阅读 · 0 评论 -
AVS2 有点令人不敢相信
王荣刚:建立中国自主视频技术生态文 / 王荣刚整理 / LiveVideoStack直播回放:https://www.baijiayun.com/web/playback/index?classid=18072579438145&session_id=201807260&token=PsTmsjVpbRht681rrJ0J_Xl0fbNahfHFmF1doYNdca...转载 2019-08-20 09:35:49 · 6199 阅读 · 0 评论 -
海康大华等安防摄像机采用通用RTSP协议流转RTMP推送至Web无插件播放展示的流程方法
行业现状中国互联网化的进程已经越来越快了,各个行业都在进行着互联网化的改造,流媒体、音视频,作为跑在互联网上最大量级的数据类型,其从编码方式到传输协议到终端兼容都成为各家标准抢占的高点,RTMP、HLS(m3u8)、WEBRTC、AV1等等,互联网带来的使用习惯已经冲击了非常非常多的传统行业,就包括非常稳重的电力行业、高速交通行业,都逐步在往互联网、物联网架构进行靠拢,视频技术在这些行业也逐步开...转载 2019-08-08 20:10:16 · 2233 阅读 · 0 评论 -
最新海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明
本文档主要介绍海康威视设备预览、回放、流媒体取流的RTSP URL和IE直接预览、回放的HTTP URL。RTSP为取流协议,取到码流后需要解码显示,可以通过VLC播放器进行测试,IE等浏览器网页不支持RTSP协议直接取流预览或者回放。网页上需要跳过登录界面直接访问我们设备的预览或者回放画面,可以使用文档中所述的HTTP的URL实现。注:1)URL中“:”“?”“&”等符号...原创 2019-08-08 11:49:59 · 3477 阅读 · 1 评论 -
MIPI接口资料汇总
一、介绍1、MIPI联盟,即移动产业处理器接口(Mobile Industry Processor Interface 简称MIPI)联盟。MIPI(移动产业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准和一个规范。2、MIPI联盟定义了一套接口标准,把移动设备内部的接口如摄像头、显示屏、基带、射频接口等标准化,从而增加设计灵活性,同时降低成本、设计复杂度、功耗和EMI。...原创 2019-06-24 22:21:38 · 1368 阅读 · 0 评论 -
gstreamer插件工作原理与流程分析
gstreamer plugins的工作同所有的基于插件的程序的工作原理类似,本质上都是通过读取动态库实现的,只需要每个动态库都实现某一个特定的接口就可以了,比如XX_init等,gstreamer统一使用plugin_init。里面会有个像注册表一样的数据结构会存储所有的插件的信息。 (1)在应用程序启动时,会调用gst_init--->gst_init_check...转载 2017-12-07 14:51:41 · 820 阅读 · 0 评论