- 博客(29)
- 收藏
- 关注
原创 算法的数据相关性
算法的数据相关性数据无关算法与数据相关算法数据无关算法数据相关算法数据无关算法与数据相关算法本节主要介绍数据无关算法和数据相关算法的定义、性质、区别与联系。数据无关算法定义: 算法运行时的访存行为不依赖于任何存储单元的具体值。数据无关算法(Data Independent Algorithm,DIA)的访存关系在编译期已经确定。无论存储单元存储的数据值是什么,其访存关系也不会改变。这个良好的性质导致这类算法容易通过编译器或者手工调整访存的次序来提高访存的规则性和局部性,容易使用硬件进行加速。许多高
2021-05-26 13:04:31 485 2
原创 计算机网络模拟器比较
目录1. 模拟simulation和仿真emulation的区别2. 网络模拟器的作用3. 不同网络模拟器的比较模拟simulation和仿真emulation的区别网络模拟器(simulation)试图对现实世界网络建模网络仿真器(emulation)意味着终端系统(例如,计算机)可以被嵌入到emulator上,好像嵌入到真实的网络中。网络仿真器的侧重点是连接终端的网络,而不是终端,典型
2017-10-07 14:32:45 6909
原创 使用ffmpeg接口将YUV编码为h.264
目录1. 第一步: 解析数据参数2. 第二步: 按要求初始化ffmpeg结构2.1. 第一步: 根据编解码器ID,获取编解码器指针2.2. 第二步: 获取AVCodecContext实例。通过编解码器AVCodec指针,获取编解码器上下文2.3. 第三步: 设置编码器参数2.4. 第四步: 根据AVCodec和AVCodecContext实例,打开编码器2.5. 第五步:配置编码的输入数
2017-10-07 13:55:29 1341
原创 使用ffmpeg接口将h.264解码为YUV
目录1. 参数传递和解析2. 按照要求初始化需要的FFMpeg结构2.1. 第一步: 获取解码器指针。根据编解码器ID,获取编解码器指针2.2. 第二步: 获取解码器上下文。AVCodecContext实例。通过编解码器AVCodec指针,获取编解码器上下文2.3. 第三步: 设置 AVCodecContext可以截断方式读取数据2.4. 第四步: 打开解码器,不需要像编码一样设置 AVC
2017-10-07 13:48:37 1027
原创 使用ffmpeg接口将YUV编码封装为文件
目录1. 第一步: 初始化相关结构体1.1. 第一步: 手动创造 AVFormatContext(封装输出文件格式)1.2. 第二步: 设置stream的id和codec等参数1.3. 第三步: 打开编码音视频数据所需要的编码器1.4. 第四步: 分配相应的frame对象 为frame分配空间1.5. 打开音视频,分配frame对象的代码2. 第二步: 打开输出文件并写入文件头3. 第
2017-10-06 11:42:25 715
原创 使用ffmpeg接口解封装解码为YUV
目录1. 第一步: 相关结构的初始化1.1. 第一步: 通过打开文件获取 AVFormatContext(解封装输入文件格式)1.2. 第二步: 通过打开文件的 AVFormatContext,获取音频和视频AVStream1.3. 第三步: 获取音频和视频解码器上下文和解码器实例1.4. 整体初始化的函数代码为1.5. 分配AVFrame和初始化AVPacket对象:2. 第二步: 循
2017-10-06 11:38:37 827
原创 怎样判断ffmpeg接口是线程安全的?
文档中一般会有警告信息,比如avcodec_open2 ffmpeg中线程不安全函数的处理方式 http://stackoverflow.com/questions/13888915/thread-safety-of-libav-ffmpeg 安装库的时候定义默认的锁自己写程序使用av_lockmgr_register(lockmgr)https://www.ffmpeg.org/dox
2017-10-06 11:35:55 1717
原创 FFmpeg网络传输协议
目录1. 抓流和推流2. 各种协议比较抓流和推流视频直播中说的抓流和推流,是什么意思,两种有什么区别? - 知乎 各种协议比较RTMP直播应用与延时分析-andersonyan-ChinaUnix博客 关于直播,所有的技术细节都在这里了(二) | U刻 直播服务器简单实现 http_flv和hls 内网直播桌面 - lucpp - 博客园 直播协议的选择:RTMP vs. HLS - 推
2017-10-06 10:53:27 2154
原创 FFmpeg框架解析及核心数据结构
目录1. ffmpeg关键数据结构及对应的协议层2. 协议层(http,rtsp,rtmp,mms)3. 封装层(flv,avi,rmvb,mp4)3.1. 解封装3.2. 封装3.3. 主要结构体及初始化3.3.1. AVFormatContext主要存储视音频封装格式中包含的信息(非常重要,包含封装层、编码层)3.3.2. AVStream是视频文件中某一音频流或者视频流的抽象。3
2017-10-06 10:47:33 1438
原创 FFmpeg常用命令
目录1. 视频解封装,提取音频或者视频数据1.1. 分离视频中的音频和视频数据。提取的视频与源视频使用相同编码器,舍弃音频数据1.2. 分离视频中的音频和视频数据。提取的音频与源视频中音频使用相同编码器,舍弃视频数据1.3. 从某时间间隔,剪切一段视频。目标与源使用相同的编码器。1.4. 从视频文件中抽取出可以播放的h.2642. 视频格式转换2.1. 使用ffmpeg默认的目标文件编码器
2017-10-06 10:38:41 3709
原创 视频基础知识
目录1. 改变帧率并不会改变视频的播放速度2. 码率和比特率是同义词改变帧率并不会改变视频的播放速度60fps 转为 10fps,只是每秒显示的图片变少了,会有卡顿的感觉 ffmpeg -i 1.mp4 -r 60 output.mp4 码率和比特率是同义词每秒视频含有的bit个数 可以通过码率计算出文件大小 ffmpeg-比特率,帧率和文件大小 - BIGBurning - CSDN博
2017-10-06 10:30:09 559
原创 YUV基础知识
目录1. BMP格式2. YUV格式BMP格式BMP 使用 R、G、B三种颜色表示一个像素点 YUV格式YUV 使用一个亮度分量与两个色度分量表示一个像素点。 亮度分量与色度分量的采样分辨率可以是一致的,也可以不是一致的。 YUV420格式中,每4个Y像素对应一个U像素和一个V像素。即,只有图像本身分辨率的四分之一。
2017-10-06 10:24:02 254
原创 pcm基础知识
目录1. pcm格式信息2. pcm格式pcm格式信息物理编码方式: 有符号16位(s16) 字节序: 小端(le) 声道数: 视频中音频的声道数 采样频率: 视频中音频的采样率pcm格式PCM文件格式简介_百度文库
2017-10-06 10:22:10 1149
原创 bision教程
目录1. lex与yacc比较2. bison语法(分为三部分)2.1. 三部分通过%%分割2.2. 第一部分:声明和选项设置(编译后复制到生成的yac.tab.c中)2.3. 第二部分:文法匹配后进行某种动作(生成yylex()函数到lex.yy.c中)2.3.1. 基础语法2.3.2. 文法表达式2.3.2.1. bision一条规则有两类符号构成: 非终结符和终结符2.3.2.2.
2017-10-05 16:14:20 3535
原创 flex教程
目录1. lex/yacc简介1.1. lex/yacc与flex/bison的关系1.2. lex/yacc的优势1.3. 程序例子下载地址1.4. 学习资料2. flex语法(分为三部分)2.1. 三部分通过%%分割2.2. 第一部分:声明和选项设置(直接复制到生成的lex.yy.c中)2.3. 第二部分:单词匹配后进行某种动作(核心部分语法分析器,生成yylex()函数到lex.
2017-10-05 15:41:07 2860 1
原创 ANTLR教程(五)语法树节点间数据传递
目录1. 方法一: 使用程序员自定义的栈,适用于listener和visit等2. 方法二: 使用antlr语法树节点返回值,只适用于visit,lister函数没有返回值3. 方法三: 将值存入语法树种的节点上下文中,适用于listener,visit3.1. 方法一:节点上下文有个value字段,只能存放整型3.2. 方法二:最容易的方式是使用map,可以存放任意类型方法一: 使用程序员
2017-10-05 15:16:37 1711
原创 ANTLR教程(四)语法树遍历机制
目录1. 方法一: 使用antlr定义的语法树遍历顺序——listener1.1. 类的继承关系1.2. 需要与antlr遍历类ParseTreeWalker一起使用1.3. 对同一非终结符的不同产生式进行标记1.3.1. 不标记的话实现起来复杂1.3.2. 解决方法: 标记产生式1.4. 特点1.5. 例子2. 方法二: 程序员需要自定义语法树遍历顺序——visit2.1. 类的继承
2017-10-05 15:11:27 13923 4
原创 ANTLR教程(三)语法分析
目录1. 文法产生式1.1. 基于四种模式实现文法产生式1.1.1. 顺序模式1.1.2. 选择模式1.1.3. 记号依赖1.1.4. 递归模式1.2. 消除产生式歧义1.2.1. 定义符号结合性1.2.2. 定义符号优先级1.3. antlr 实际语言例子1.3.1. csv 主要顺序模式1.3.2. json 主要递归模式2. 使用antlr显示语法树方法3. 使用antlr
2017-10-05 15:00:20 6645 1
原创 ANTLR教程(二)词法分析
目录1. 匹配大小写字符组成的单词2. 产生式中语法规则中关键字也用到了单词,与词法规则冲突,谁先匹配3. 匹配数字4. 匹配带引号的字符串5. 匹配到字符串后丢掉,不要送给语法分析器6. 划分词法分析器和语法分析器的界限本节讲解antlr词法分析的功能。 匹配大小写字符组成的单词ID : [a-zA-Z]+ ; */ match 1-or-more upper or lowercas
2017-10-05 14:49:10 3418
原创 ANTLR教程(一)简介
目录1. antlr参考资料2. antlr环境搭建3. antlr4的优点4. antlr语法分析流程antlr参考资料The Definitive ANTLR 4 Reference.pdf基本概念 · ANTLR 4简明教程antlr环境搭建intellij java编程环境下的antlr编程环境安装intellij java编程环境 官网下载开发版安装java sdk
2017-10-05 14:36:50 2214
原创 docker使用教程
目录1. docke安装方法2. 下载镜像3. docker使用方法3.1. 镜像与容器3.2. docker的使用方法3.3. 镜像操作3.3.1. 本地登陆docker hub账号3.3.2. 加载镜像到docker3.3.3. 显示加载到docker中的镜像信息3.3.4. 删除镜像,释放存储空间3.3.5. 将镜像推到远程3.4. 容器操作3.4.1. 显示所有正在运行的
2017-10-05 14:02:04 973
原创 makefile编写教程
目录1. 版权声明2. 一个原始示例3. makefile语法基本规则4. makefile如何工作的5. makefile样例代码优化5.1. 使用变量,减少字符串重复使用5.2. 静态模式5.3. 使用隐含规则5.4. 多目标消除重复的[.h]5.5. 标志多目标的自动化变量6. makefile组成6.1. 显式规则6.2. 隐含规则6.2.1. 打印make的所有隐含规
2017-10-05 13:45:45 482
原创 cmake使用教程
目录1. 参考文档2. cmake优点3. 什么时候用cmake4. 第一部分:CMakeLists.txt语法4.1. cmake基本使用方法4.1.1. 定义和使用变量4.1.1.1. 显示的定义变量4.1.1.2. 变量的作用域4.1.1.3. 获取变量值4.1.1.4. 隐式变量4.1.1.5. 常用变量4.1.2. 打印信息语句:向终端输出用户自定
2017-10-04 18:01:02 2120
原创 zsh教程
目录1. 本文参考链接2. 显示系统中存在的shell3. zsh环境3.1. 第一步 安装zsh3.1.1. mac3.1.2. linux3.2. 第二步 安装oh my zsh3.2.1. 手动安装3.2.2. 自动安装4. 设置zsh为系统默认shell5. 配置zsh5.1. 别名5.2. 主题6. zsh插件6.1. 插件使用方式和插件位置6.2. 插件打开方式6
2017-10-04 16:58:24 2223
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人