多媒体
文章平均质量分 67
Smith先生
全栈多媒体软件系统技术负责人与资深架构师,目前任职于国际大型半导体公司,拥有超过8年以上的音视频软件设计,产品开发与平台化交付经验。工作以来,带领了多个大型全新多媒体项目攻关开发,精进和优化了多个大型软件系统,成功完成平台化建设和运维,为多个技术公司构建了可持续迭代的软件生态,业务面设计GPU系统、人工智能、视频监控系统、会议系统、采集系统、数字电视、多媒体框架、播放器、流式计算及编解码加速等,拥有从上层到底层的全栈软件开发经验和技术团队建设和管理经验。学海无涯,山外有山,天外有天。同大部分技术人一样,希望每天保持进步,最终实现财富自由和人生理想。:)
展开
-
what are the different types of redundancy in an image.
在图像处理和压缩中,了解和识别这些冗余形式是非常重要的,因为通过消除或减少这些冗余,可以有效地压缩图像数据,减少存储和传输的需求。原创 2024-04-27 19:28:19 · 149 阅读 · 1 评论 -
学习笔记:RTP/RTCP的音视频同步原理总结
参考文章::https://blog.csdn.net/lincaig/article/details/81209895https://www.cnblogs.com/x_wukong/p/5876645.htmlhttps://blog.csdn.net/wxl1986622/article/details/52758022?utm_medium=distribute.pc_relevan...原创 2020-05-04 21:40:32 · 4436 阅读 · 0 评论 -
H264 中的参考帧列表
H264中允许从多至15个帧里面选择1帧或者2帧出来作为参考进行预测,所以必须引入一个列表来管理这些参考图像,对与P slice而言,对应 list0,对于 B slice 而言,还需要多一个 list1,因为 B slice 是进行的两次预测!(一个前向一个后向/两个前向/两个后向)参考帧分为 long term / short term 两种,即所谓的长期参考帧和短期参考帧。其中长期参...转载 2019-11-05 11:15:35 · 2480 阅读 · 0 评论 -
H264--2--语法及结构
---------------前言-------------H264结构中,一个视频图像编码后的数据叫做一帧,一帧由一个片(slice)或多个片组成,一个片由一个或多个宏块(MB)组成,一个宏块由16x16的yuv数据组成。宏块作为H264编码的基本单位。-------------------------名词解释 -------------------------转载 2015-03-17 22:27:26 · 898 阅读 · 0 评论 -
为什么要进行傅立叶变换,究竟有何意义?如何用MATLAB实现快速傅立叶变换
原文地址:为什么要进行傅立叶变换,究竟有何意义?如何用MATLAB实现快速傅立叶变换?作者:0方天华戟0 纪念让·巴普蒂斯·约瑟夫·傅立叶!!!公元1768年的今天,法国著名数学家、物理学家让·巴普蒂斯·约瑟夫·傅立叶出生于法国欧塞尔,特写此文悼念。。。本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,绝大部分内容非我所原创,在此向多位原创作者致敬!!!一、傅立叶变换转载 2015-03-09 22:30:10 · 4683 阅读 · 0 评论 -
深入浅出的讲解傅里叶变换(2)
上一篇文章发出来之后,为了掐死我,大家真是很下工夫啊,有拿给姐姐看的,有拿给妹妹看的,还有拿给女朋友看的,就是为了听到一句“完全看不懂啊”。幸亏我留了个心眼,不然就真的像标题配图那样了。我的文章题目是,如果看了这篇文章你“还”不懂就过来掐死我,潜台词就是在你学了,但是没学明白的情况下看了还是不懂,才过来掐死我。 另外,想跟很多人抱歉,因为评论太多了,时间有限,不能给每个人回复,还望大家谅解。转载 2015-03-09 22:48:00 · 1478 阅读 · 0 评论 -
深入浅出的讲解傅里叶变换
来源:知乎 作者:Heinrich http://www.elecfans.com/engineer/blog/20140527344277.html 我保证这篇文章和你以前看过的所有文章都不同,这是12年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者…… 这篇文章的核心思想就是: 要让读者在不看任何数学公式的情况下理解傅里叶分析。转载 2015-03-09 22:14:29 · 1405 阅读 · 0 评论 -
H264--3--NAL层的处理
------------------------------H.264的NAL层处理 ------------------------------H264以NALU(NAL unit)为单位来支持编码数据在基于分组交换技术网络中传输。NALU定义了可用于基于分组和基于比特流系统的基本格式,同时给出头信息,从而提供了视频编码和外部世界的接口。转载 2015-03-17 22:37:07 · 1193 阅读 · 0 评论 -
使用 libjpeg进行编码之一:建立libjpeg开发环境(X86平台)
第一步:下载libjpeg地址:http://www.ijg.org/选择下载最新的UNIX格式的源码包:jpegsrc.v9b.tar.gz.第二步:解压: tar zxvf jpegsrc.v9b.tar.gz第三步:进入目录,生成makefile执行:./configure (x86平台使用默认参数即可) --p如果是ARM平台,需要使用如下参数原创 2017-04-13 10:30:29 · 1030 阅读 · 0 评论 -
傅里叶分析之掐死教程(完整版)更新于2014.06.06
Heinrich· 9 个月前 作 者:韩 昊知 乎:Heinrich微 博:@花生油工人 知乎专栏:与时间无关的故事谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。——更新于2014.6.6,想直接看更新的同学可以直接跳到第四章————我保证这篇文章和你以前看过转载 2015-03-10 10:10:23 · 1181 阅读 · 0 评论 -
H264--1--编码原理以及I帧B帧P帧
-----------------------前言----------------------- H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变转载 2015-03-17 22:00:10 · 1606 阅读 · 0 评论 -
H264学习指南
1、看看我从零开始学习的经验: [原创] 我的H.264学习历程http://bbs.chinavideo.org/viewthread.php?tid=9882、看看他从零开始学习的经验: 【原创】H.264新手的成长历程http://bbs.chinavideo.org/viewthread.php?tid=51393、从宏观上讲讲如何读标准和代码:转载 2015-03-18 20:59:22 · 1625 阅读 · 1 评论 -
理解公钥、秘钥和数字签名
公钥密码体制的核心思想是:加密和解密采用不同的密钥。这是公钥密码体制和传统的对称密码体制最大的区别。对于传统对称密码而言,密文的安全性完全依赖于密钥的保密性,一旦密钥泄漏,将毫无保密性可言。但是公钥密码体制彻底改变了这一状况。在公钥密码体制中,公钥是公开的,只有私钥是需要保密的。知道公钥和密码算法要推测出私钥在计算上是不可行的。这样,只要私钥是安全的,那么加密就是可信的。 显然,原创 2015-06-24 16:42:15 · 6034 阅读 · 0 评论 -
使用libjpeg进行编码之二:对I420YUV实现编码
#include #include #include #include #include #include using namespace std; extern "C" {#include #include #include } #define WIDTH 320#define HEIGHT 240#define QUALITY 80#de原创 2017-04-13 11:16:03 · 2688 阅读 · 1 评论 -
关于视频技术发展趋势的一些理解
视频行业近几年经历了飞速的发展,一些新的视频用语和应用逐步进入我们的生活中,例如VR,短视频,视频云,智能视频等。这些炫酷的词语可能让你眼花缭乱,不知所云。 本文试图从一个较高层次对视频的未来进行总结和分析,主要目的是抛砖引玉,并增进对视频系统技术发展趋势的理解。 视频技术的发展主要是随着“互联网+”和人工智能AI等新技术的发展而不断往前推进,它与云计算和...原创 2018-03-18 15:52:54 · 8066 阅读 · 0 评论 -
Gstreamer被ffmpeg或其他媒体框架淘汰了吗?
目前,很大部分音视频编解码应用开发都是基于ffmpeg框架。ffmpeg API简单 上手快,也迅速成为了国内视频相关开发者的首选开源库。而gstreamer由于其复杂难懂,学习成本高,似乎在国内使用的人越来越少. 于是乎, 有人认为 熟悉ffmpeg API就可以在音视频流媒体开发畅通无阻了。 个人认为,不是这样。如果你只想写一个简单的音视频应用,那么也许ff...原创 2019-06-10 23:01:01 · 20605 阅读 · 6 评论 -
理解Gstreamer架构
本文给出了Gstreamer的总体设计。通过阅读本文可以了解Gstreamer的内部工作原理。本文编译自gstreamer源码中的文档,原文在源码中的位置是/gstreamer/docs/design/part-overview.txt。概述Gstreamer是一个libraries和plugins的集合,用于帮助实现各种类型的多媒体应用程序,比如播放器,转码工具,多媒体服务器等。转载 2012-02-23 00:08:38 · 4337 阅读 · 0 评论 -
数字视频编解码基础
1. 绪论人类社会的三大支柱是物质、能量和信息。具体而言,农业现代化的基础是物质,工业现代化的支柱是能量,而信息化的支柱是信息。90 年代以来,随着Internet和移动通信的迅猛发展,视频信息和多媒体信息在Internet 网络和移动网络中的处理和传输成为了当前我国信息化中的热点技术,数字视频技术在通信和广播领域获得了日益广泛的应用。视频信息具有直观性、确切性、高效性、广泛原创 2015-03-07 12:35:01 · 4216 阅读 · 1 评论 -
H.264中NALU、RBSP、SODB的关系 (弄清码流结构)
原文友情链接: http://blog.csdn.net/stpeace/article/details/8221945NALU:Coded H.264 data is stored or transmitted as a series of packets known as NetworkAbstractionLayerUnits. (NALU单元) RBS转载 2015-03-16 21:02:31 · 1752 阅读 · 0 评论 -
H265,网络视频的高清时代
HEVC/H.265标准LOGO去年八月,爱立信公司推出了首款H.265编解码器,而在仅仅六个月之后,国际电联(ITU)就正式批准通过了HEVC/H.265标准,标准全称为高效视频编码(High Efficiency Video Coding),相较于目前的H.264标准有了相当大的改善。H.265旨在在有限带宽下传输更高质量的网络视频,仅需原先的一半带转载 2015-03-19 23:14:24 · 3622 阅读 · 0 评论 -
CRC原理简介
在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最著名的一种。CRC的全称是循环冗余校验。 为了方便理解CRC原理, 我们这里先介绍一种简单的错误检测方法:校验和。 待发送的消息 : 6 23 4 带校验和的消息 : 6 23 4 33 接受端收到的消息 : 6 27 4 33原创 2013-02-21 13:37:20 · 4987 阅读 · 0 评论 -
gstreamer A/V同步技术
一、媒体流(streams )流线程中包含事件和缓存如下:-events -NEW_SEGMENT (NS) -EOS (EOS) * -TAG (T)-buffers (B) *其中标* 号的需要同时钟进行同步。 典型的流如图1 所示: 图1 媒体转载 2012-02-22 23:53:37 · 2632 阅读 · 0 评论 -
函数指针、回调函数与 GObject 闭包
本文原始出处:http://garfileo.is-programmer.com本文首先复习一下基于 C 语言函数指针和回调函数的概念,进而学习 GObject 闭包的用法。这些知识都与面向对象程序设计基本上没有什么关系。函数指针所谓函数指针,就是可以指向函数的指针,例如:?123456789101112转载 2012-06-08 11:11:36 · 2756 阅读 · 0 评论 -
相见恨晚之gstreamer核心源码走读typefind原理和对象关系浅析(三) .
mark>待完善 Smith先生版权所有, 如需转载,请注明出处:本博客链接http://blog.csdn.net/acs713/article/details/7742976原创 2012-07-17 17:26:55 · 5515 阅读 · 2 评论 -
gstreamer插件工作原理与流程分析
gstreamer plugins的工作同所有的基于插件的程序的工作原理类似,本质上都是通过读取动态库实现的,只需要每个动态库都实现某一个特定的接口就可以了,比如XX_init等,gstreamer统一使用plugin_init。里面会有个像注册表一样的数据结构会存储所有的插件的信息。 (1)在应用程序启动时,会调用gst_init--->gst_init_check。gst_init原创 2012-07-02 14:48:04 · 12496 阅读 · 2 评论 -
Gstreamer调度模式的分析
http://www.rosoo.net/a/201007/9825.htmlGstreamer 的调度模式是 gstreamer 内核中比较重要,但是又较为复杂的部分(呵呵,好象是废话,但是又不得不说的)。简单地说, Gstreamer 的调度模式就是:一种确定一个 element 何时被调用 为它的同伴 element 处理和准备数据的方法。是不是觉得上面的话太简单又太复杂了啊?继续看。转载 2012-02-23 00:19:06 · 1745 阅读 · 0 评论 -
相见恨晚之gstreamer 核心源码source创建和识别typefind原理浅析(一)
一般情况下,用户打开一个多媒体文件,gstreamer首先需要知道文件的类型,然后创建相应的解码器来解析这个文件,最终实现播放这个文件。 一个实现流程实例如下: (1) app程序通知gstreamer会根据uri、文件路径,创建相应类型的src组件,一般为filesrc组件(element)) (2) 接着根据插件名创建type_find组件 (3)原创 2012-07-13 10:35:42 · 6801 阅读 · 0 评论 -
GObject 子类私有属性的外部访问
本文原始出处:http://garfileo.is-programmer.com 之前,写了一篇 GObject 劝学的文章 [1],还有两篇有关 GObject 子类对象数据封装的文章[2,3]。虽然,创建一个 GObject 子类对象需要一些辅助函数和宏的支持,并且它们的内幕也令人费解,但是只要将足够的信任交托给 GObject 开发者,将那些辅助函数和宏当作“语法”糖一样享用,一转载 2012-06-08 10:42:51 · 2436 阅读 · 0 评论 -
GSTREAMER 综述(英文)
Overview--------This part gives an overview of the design of GStreamer with references tothe more detailed explanations of the different topics.This document is intented for people that want t转载 2012-06-20 12:45:19 · 1833 阅读 · 0 评论 -
相见恨晚之gstreamer核心源码走读typefind原理浅析(二)
在我的上一篇文章里,谈到: 8)Filesrc最终会调用open函数打开文件。接着src组件状态也发生切换,创建一个task,最后把文件信息推送给typefind; 9) typefind会从src读取一部分数据然后送出typefind_callback,在callback里面创建合适的plugin。合适的plugin. 本文将从源码分析的角度,重点将这2步分析清楚。可以说,理解了原创 2012-07-17 10:19:49 · 7494 阅读 · 0 评论 -
深入浅出gstreamer的调度模式
gstreamer的官方文档里,调度的英文是schedule. 什么是schedule? 它的英文解释为" to plan that something will happen at a particular time “.在gstreamer里,调度的意义跟它基本差不多。在gstreamer里,调度的目的主要有以下几个: (1)在适当的时候通知每个元件去完成相应的任务,确保这些职责原创 2012-07-27 16:49:37 · 4064 阅读 · 0 评论 -
Fusion实例1:如何通过竞技场使用共享内存来发布一个指针?
DirectFB采用了主从模型(Master/Slave)。Fusion即融合,多个应用程序在不同的进程空间,通过这个内核模块通信,在这里,一切都溶为一体了。Master应用程序负责初始化一个称为竞技场的东西,其它Slave应用程序可以加入或者退出竞技场。当Master退出时,则其它所有Slave都必须退出。 我们先实现fusion master,文件名为fusionee_maste原创 2012-09-10 11:09:46 · 1597 阅读 · 0 评论 -
avi格式媒体文件介绍
AVI英文全称为Audio Video Interleaved,即音频视频交错格式。是将语音和影像同步组合在一起的文件格式。它对视频文件采用了一种有损压缩方式,但压缩比较高,因此尽管画面质量不是太好,但其应用范围仍然非常广泛。AVI支持256色和RLE压缩。AVI信息主要应用在多媒体光盘上,用来保存电视、电影等各种影像信息。 avi含三部分:文件头、数据块和索引块。原创 2013-05-04 20:28:57 · 2279 阅读 · 0 评论 -
快速上手Gobject
What is G-object?—很多人被灌输了这样一种概念:要写面向对象程序,那么就需要学习一种面向对象编程语言,例如C++、Java、C#等等,而C语言是用来编写结构化程序的。—事实上,面向对象只是一种编程思想,不是一种编程语言。换句话说,面向对象是一种游戏规则,它不是游戏。—Gobject,亦称Glib对象系统,是一个程序库,它可以帮助我们使用C语言编写面向对象程序;它提供了一原创 2012-07-24 10:12:52 · 28998 阅读 · 13 评论 -
DirectFB显卡驱动的加载和初始化
前面我们提到,dfb_core_part_initialize会完成各个核心部件的初始化。 具体是怎么完成这些初始化工作呢?答案是遍历调用各个部件提供的初始化函数。这个调用规则是通过宏 DFB_CORE_PART来制定的。这个宏的定义如下: 由上图的定义可见,DFB_CORE_PART宏指定的规则就是:每一个核心部件都应该在相应的.c文件中填充此宏,也就是为需要实现的各原创 2012-08-09 13:11:54 · 2579 阅读 · 0 评论 -
基于fusion的DirectFB消息流 .
本文转载自李先静先生博客:http://blog.csdn.net/absurd/article/details/619243 传统的DirectFB应用中,所有的应用程序都在一个进程中,在性能上,有一些优势,然而一个应用程序不稳定会造成整个系统的不稳定。若采用C/S模型,无疑是重蹈X Widnow的覆辙,会丧失性能上的优势。 所以DirectFB采用了另外一种转载 2012-09-10 11:05:03 · 1793 阅读 · 0 评论 -
libgupnp源码解读之对象框架与设备发现
libgupnp是一款开源的upnp软件。它采用gobject思想设计,实现了异步消息传递;用面向过程语言C实现了面向对象的框架。当然,最主要的是,它实现了通用即插即用协议UPNP,方便了很多数字家庭网络的应用开发者。 接下来,我先简单介绍下UPNP协议;接着从libgupnp的类设计结构图着手,以给大家提供框架上的认识;然后,我将分析upnp的设备发现部分在libgupnp中的设计与原创 2012-06-09 12:54:22 · 3981 阅读 · 0 评论 -
基于DirectFB的framebuffer底层驱动及应用程序架构原理分析
本文作者为:铁匠Smith 先生转载请在显著位置注明出处和链接,否则保留追究相关事务之权利。一、DirecfFB架构下应用层fbdev系统的初始化 对任何一个dfb应用程序,它在初始化时一定会调用下面两句: /* DirectFB init */ DirectFBInit( &argc, &argv); DirectFBCreate(&dfb原创 2013-05-19 21:05:10 · 5511 阅读 · 2 评论 -
DFB初始化简介
对任何一个dfb应用程序,它在初始化时一定会调用下面两句: /* DirectFB init */ DirectFBInit( &argc, &argv); DirectFBCreate(&dfb); 第一步,DirectFBInit主要完成directFB配置的一些初始化。主要包括读取环境变量DIRECTFBPATH,读取directfbrc文件原创 2012-08-09 11:19:48 · 4825 阅读 · 3 评论 -
相见恨晚之gstreamer衬垫的激活
1.衬垫的激活 当一个bin(箱柜)的状态发生变化时,它里面的元件的状态是按照sink到source的顺序变化的,即先设置sink元件的新状态,再设置source元件的新状态。当状态变化是从ready变到pause时,元件的衬垫开始激活,为数据在元件之间的流动做准备。有些pad,还会启动一个任务(task),来驱动数据流。 对某个元件来说,它通常先激活它的sourc原创 2012-07-29 10:25:27 · 2458 阅读 · 0 评论