- 博客(41)
- 资源 (4)
- 收藏
- 关注
转载 总结: 笔试中常见virtual函数问题
C++中的虚函数(virtual function) 1.简介虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次:class A{public:virtual void foo() { cout };class B: public A{public:virtual
2012-03-21 10:26:33 604
转载 多进程同时从消息队列取消息的问题
Posted on 2008-08-26 15:01 Prayer 阅读(478) 评论(0) 编辑 收藏 引用 所属分类: LINUX/UNIX/AIX 我现在有一个程序,是做成了多进程同时从一个消息队列中取消息,都以阻塞的方式,从消息队列中顺序取消息,但是多进程同时取的时候我没有加锁,不知道这样会不会出现什么问题?操作系统应该对进程有个排队的操作吧? 不会有什么问题,OS保证操作
2012-03-06 14:33:51 7452 1
转载 ucos II 任务间 通信之五:消息队列2
ucos II 任务间 通信之五:消息队列2分类: ucos II2011-12-18 22:04 38人阅读 评论(0) 收藏 举报 ucos II 任务间 通信之五:消息队列2消息队列通常可以应用以下两个地方;1.存储外部事件:外部事件由中断收集,然后存储到队列。2.串口接收程序中的接收循环缓冲
2012-03-06 11:59:11 1052
转载 ucos II 任务间 通信之五:消息队列1
ucos II 任务间 通信之五:消息队列1分类: ucos II2011-12-18 22:04 52人阅读 评论(0) 收藏 举报 ucos II 任务间 通信之五:消息队列 如果把邮箱比作是信号量的升级版,那消息队列就是邮箱的升级版。邮箱可以实现从一个任务向另外一个任务发送一个指针变量,消息队列则可以实现从一个任
2012-03-06 11:58:20 666
转载 消息队列
优缺点消息队列只适用于单台主机的进程间通信,如果是不同主机,需要用socket等其他方式,也就不属于IPC的范畴了。消息队列可以实现异步通信,这似乎是优点,但说是它缺点也是可以的:通讯往往不是实时的。消息队列有大小限制,通常只用于小数据量的发送。系统对用户的大小限制可以通过 ulimit -q 命令进行查询。消息队列可以实现阻塞调用和非阻塞调用。实现简单,且可移植性好。
2012-03-06 11:51:20 487
转载 Linux消息队列操作
对消息队列的操作无非有下面三种类型:1、 打开或创建消息队列消息队列的内核持续性要求每个消息队列都在系统范围内对应唯一的键值,所以,要获得一个消息队列的描述字,只需提供该消息队列的键值即可;注:消息队列描述字是由在系统范围内唯一的键值生成的,而键值可以看作对应系统内的一条路经。2、 读写操作消息读写操作非常简单,对开发人员来说,每个消息都类似如下的数据 结构:
2012-03-06 11:48:15 473
转载 彻底搞定C指针---指向指针的指针
彻底搞定C指针---指向指针的指针(转) 发信站: 北邮人论坛 (Fri Apr 4 11:32:54 2008), 站内 一. 回顾指针概念: 今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧! 当我们程序如下申明变量: short int i; char a; short int * pi; 程序会在内存某地址空间上为各变量
2012-03-05 10:05:33 439
转载 H.264的码率控制算法
H.264的码率控制算法采用了多种技术,其中包括自适应基本单元层(Adaptive Basic Unit Layer)、流量往返模型(Fluid Traffic Model)、线性MAD模型、二次率失真模型等。并且采用了分层码率控制策略,共分为三层:GOP层、帧层和基本单元层。在JVT的提案中,采用的是JVT-G012码率控制算法,该算法提出了基本单元的概念,将一帧划分为若干个基本单元,基本单元可
2012-01-11 14:05:13 2351
转载 码率控制技术原理
引起编码器的输出比特码率波动的原因主要有两个。首先,数字视频信号中包含了大量的时域和空域冗余,编码器的主要任务就是去除这些冗余。由于时间冗余和空间冗余是随机的,从而造成编码器输出比特率波动。另一个原因是变长编码,变长编码根据某个事件(如零游程)的发生概率来设计码字。事件发生的概率越大,其编码码字越短,反之亦然,从而引起编码器输出比特率的变化。由于视频应用的要求和目的不同,根据输出码率是否要求恒定,
2012-01-11 14:03:43 9440
转载 H.264码率控制机制
H.264标准码率控制算法步骤如下:1.计算当前帧的目标码字,并将其限定到HRD的边界中。2.通过线性模型(式4.5)预测当前帧中基本单元的MAD。3.为未编码基本单元分配码字。4.通过二次R.D模型计算相应的量化步长。5.对基本单元中每个宏块进行RDO。其中a1和a2是该预测模型中的两个参数。a1和a2的初始值设为1和0。当每个基本单元的编码结束后,他
2012-01-11 14:02:38 1458
转载 I 帧,B帧,P帧,IDR帧的区别
I 帧,B帧,P帧,IDR帧 2011-01-06 16:25:15| 分类: h.264|字号 订阅 I帧:帧内编码帧I帧特点:1.它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;2.解码时仅用I帧的数据就可重构完整图像;3.I帧描述了图像背景和运动主体的详情;4.I帧不需要参考其他画面而生成;
2012-01-11 14:01:42 2716
转载 H264参数语法文档: SPS、PPS、IDR
H264参数语法文档: SPS、PPS、IDR分类: H264图像图形系列2011-02-24 16:05 4347人阅读 评论(1) 收藏 举报H.264码流第一个 NALU 是 SPS(序列参数集Sequence Parameter Set)对应H264标准文档 7.3.2.1 序列参数集的语法进行解析SPS参数解析// fill sps with cont
2012-01-11 09:08:52 5525
转载 X264使用介绍 命令行设置
2011-06-10 18:27:43| 分类: H264|字号 订阅命令行界面的x264我们下载到的x264.exe是一个命令行工具,不需要安装,随便放在哪里都能运行。双击x264.exe只能看到打开了一个黑色的窗口里在刷着什么,然后就没了。x264.exe需要在命令行里输入命令,没有GUI。不可否认有GUI的工具用来很方便,更容易上手,比如用的最广
2012-01-10 17:19:59 10586
转载 H.264编码详细文字说明 基于x264
(1) x264_param_default( x264_param_t *param ) 作用: 对编码器进行参数设定 cqm:量化表相关信息 csp: 量化表相关信息里的memset( param->cqm_4iy, 16, 16 );
2012-01-09 11:16:57 1090
转载 如何在vc6下编译x264
如何在vc6下编译x264Peter Lee(lspbeyond@sohu.com) ==============================================NOTE: 目前我已提供x264在vc6,vc7下成功编译的源代码,每周更新一次。大家可以直接下载使用,省去一些麻烦。http://lspbeyond.go1.icpcn.c
2012-01-09 10:08:23 1655
转载 linux内核编译命令解析
通常编译内核的时候,网络上总会告诉你一步一步该怎么做,但是这每一步是什么意思,倒不是很清楚。特别对于现在linux内核从2.4升级到了2.6了,更是省去了很多的麻烦,所以对以前的哪些复杂的命令更是不会去了解了。简单归简单,但我想只是有不少内核固定认为我们会这样做而已了,对整个编译的了解还是需要的。我这里主要是以uclinux的编译过程来介绍的,有些内容是从网络上copy的。首先在2.6内核
2012-01-08 20:25:18 1165
翻译 BMP文件格式
说到图片,位图(Bitmap)当然是最简单的,它Windows显示图片的基本格式,其文件扩展名为*.BMP。在Windows下,任何各式的图片文件(包括视频播放)都要转化为位图个时候才能显示出来,各种格式的图片文件也都是在位图格式的基础上采用不同的压缩算法生成的(Flash中使用了适量图,是按相同颜色区域存储的)。一、下面我们来看看位图文件(*.BMP)的格式。位图文件主要分为如下3个部分
2012-01-08 20:23:41 592
转载 YUV格式详解
YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。转载一篇对yuv格式解释的比较清楚地文章,也可以直接参考微软的那篇文章。对于YUV格式,比较原始的讲解是MPEG-2 VIDEO部分的解释,当然后来微软有一个比较经典的解释,中文的大
2012-01-08 20:22:32 435
转载 电视信号码率计算
对于视频图像的传输,码率计算的方法总是有些糊涂,这里介绍一下。首先对电视播放的原理这里不做详细介绍,基本上就是电视按照一定的速率把一幅幅图像快速的显示出来,对人的视觉特性来说,这就是动态的视频了,这个速率就是帧率。而每幅图像也可以有清晰的和普通的区分,这个就是图像的格式,也分很多种,例如QCIF 176X144CIF 352X288D1 720X576 (pal)720X480
2012-01-08 20:20:57 798
转载 H.264的基本概念
图像,场,帧1). frame;逐行扫描图像2). field:隔行扫描图像,偶数行成为顶场行,奇数行称为为底场行,所有顶场行称为顶场,同样所有底场行称为底场。3). pictue:场和帧都可认为是图像 顶底场分别编码,对应位置的宏块叫做宏块对。顶场对已编码的顶/底场预测编码。底场一般对顶场预测编码. IDR帧与I帧的区别:因为264采用了多帧预测,就有可能
2012-01-08 20:19:57 2545
转载 基于ADSP-BF561的H.264视频编码器的实现
转一篇崔海燕,王卿写的论文文章是把JM8.5移植到BF561上,使用VDSP++来实现的。文章从总体上来看,是很不错的,也看得出来,进行了相应的工作。不过不足之处是,JM本身不适于进行实现,适于进行理论研究,最好使用X264/T264来移植,效果会好很多。同时文章也只透露了使用得是CIF格式,但没有透露在压缩得时候帧率能到多少等等这些参数,到最后把重心放到介绍优化上了。同时结论是优化的
2012-01-08 20:18:51 1121
转载 MPEG-2的系统
MPEG-2的系统,不只是使用mpeg-2的视频编码标准,也适用于其他的压缩标准,所以要区分系统和视频的关系。 这里主要记录以下系统部分。MPEG-2系统是将视频、音频及其它数据基本流组合成一个或多个适宜于存储或传输的数据流的规范。主要来说就是把编码好的音视频数据,按照包的格式的传输,同时解决传输中的同步问题,加解密问题,数据流合并分离问题等。所以以数据包形式来存储和传输是本系统的
2012-01-08 20:13:31 729
转载 arm-linux-gcc编译x264
arm-linux-gcc编译x264来源: ChinaUnix博客 日期: 2008.12.17 11:30 (共有条评论) 我要评论 要做视频传输,时间又紧迫,本人的“家底”又特别薄,就在网上下了个x264编码的,在Linux下能编译过去的。首先得配置一下:./configure --disable-asm
2012-01-08 20:07:35 1097
转载 X264的调试与移植
今年9月份接手了关于无线视频传输的项目,我主要负责H.264部分。由于H.264采用了分层设计、多模式运动估计、改进的帧内预测等技术,显著提高了预测精度,从而获得比其他标准好得多的压缩性能。然而H.264获得优越性能的代价是大幅度增加计算复杂度。而对于我们使用的ARM9,处理能力有限,所以选用X264来进行视频的处理压缩。 网上自由组织联合开发的兼容264标准码流的编码器,创始人是一
2012-01-08 20:06:14 2425
转载 基于V4L2的视频驱动开发(4)
3 、 Video 核心层的实现 参见内核 /drivers/media/videodev.c( 1 )注册 256 个视频设备 static int __init videodev_init(void){int ret; if (register_chrdev (VIDEO_MAJOR, VIDEO_NAME, &video_f
2012-01-05 17:21:08 811
转载 基于V4L2的视频驱动开发(3)
四、 V4L2 驱动框架上述流程的各个操作都需要有底层 V4L2 驱动的支持。内核中有一些非常完善的例子。比如: linux-2.6.26 内核目录 /drivers/media/video//zc301/zc301_core.c 中的 ZC301 视频驱动代码。上面的 V4L2 操作流程涉及的功能在其中都有实现。1 、 V4L2 驱动注册、注销函数
2012-01-05 17:19:45 463
转载 基于V4L2的视频驱动开发(2)
三、 V4L2 API 及数据结构V4L2 是 V4L 的升级版本,为 linux 下视频设备程序提供了一套接口规范。包括一套数据结构和底层 V4L2 驱动接口。1 、常用的结构体在内核目录 include/linux/videodev2.h 中定义 struct v4l2_requestbuffers // 申请帧缓冲,对应命令 VIDIOC_REQBUFS
2012-01-05 17:18:43 369
转载 V4L2 简介
1.什么是video4linuxVideo4linux(简称V4L),是linux中关于视频设备的内核驱动,现在已有Video4linux2,还未加入linux内核,使用需自己下载补丁。在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video0下。2.Video4linux下视频编程的流程(1)打开视频设备:(2) 读取设备信息(
2012-01-05 17:15:02 428
转载 unistd.h
#include 是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型,例如read函数、write函数和getpid函数 #ifndef _UNISTD_H #define _UNISTD_H #include unistd.h含有的常量与函数: ssize_t re
2012-01-05 16:39:52 596
翻译 Overlay(覆盖
Overlay(覆盖)是一种数字视频的显示技术,它允许数字信号不经过显示芯片处理,而直接通过显存输出到显示器屏幕上。Overlay显示模式最大的用途在于优化视频播放。由于不同的视频有不同基准色调、亮度、对比度和饱和度,对于不同的电脑、不同的视频文件,为了获得最好的显示效果就需要对各种显示属性进行调节,普通显示模式显然无法胜任,所以就用到了Overlay显示模式进行单独调节。Overlay显示模式具
2012-01-05 09:26:06 867
转载 转载H.264视频开发---代码移植ZZ
基于DSP系统开发的视频编解码系统,国内几乎都是走的移植,优化的路线,并且移植的代码,都是开源的。毕竟花费大量的人力,物力去开发一套自己的代码,并不见得比一些成熟的开源代码效率更高,健壮性更好。更何况开发速度对于一个产品的发展而言,更是重要。目前对于H.264而言,移植的代码主要有JM,x264和T264。移植的时候,就需要对各个代码进行测试,以确定要移植的代码。相对而言,JM 的移植更容
2012-01-04 17:08:56 540
转载 H.264几大开源编码器简介
1 JM德国hhi研究所负责开发的H.264的官方测试源码,对于264的学术研究和比较都必须基于JM。JM完全实现了H.264的全部内容,JM8.6之前的版本实现了H.264_200503标准,8.6之后的版本开始开始支持H.264附加案的高保真技术。但JM程序结构非常复杂,编码复杂度极高,只考虑对所有技术的完整实现,而忽视了实用性。JM包括了编码和解码。2 X
2012-01-04 17:08:14 2697
转载 图像色彩空间YUV和RGB的差别
假如是200万像素的sensor,是不是RGB一个pixel是2M,YUV是1M?linchare Post at 2007-1-30 0:36:12首先,200万象素的sensor,就是有2M个pixel; YUV是电视传输用的名词,一个亮度信号(Y),两个色差信号(U分量、V分量) YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于P
2011-12-31 15:06:32 7476
转载 回调函数
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。回调函数实现的机制是 (1)定义一个回调函数; (2)提供函数实现的一方在初始化的时候,将回调函数
2011-12-31 10:49:37 393
转载 实时传输协议RTP
2.实时传输协议RTP(Real-Time Transport Protocol):RTP是针对Internet上多媒体数据流的一 个传输协议, 由IETF(Internet工程任务组)作为RFC1889发布。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同 步。RTP的典型应用建立在UDP上,但也可以在TCP或ATM等其他协议之上工作。RTP本身只保证实时数据的
2011-12-29 21:03:49 642
转载 RTP中时间戳的作用
1、调整语序 时间戳字段是RTP首部中说明数据包时间的同步信息,是数据能以正确的时间顺序恢复的关键。时间戳的值给出了分组中数据的第一个字节的采样 时间(Sampling Instant),要求发送方时间戳的时钟是连续、单调增长的,即使在没有数据输入或发送数据时也是如此。在静默时,发送方不必发送数据,保持时间戳的增 长,在接收端,由于接收到的数据分组的序号没有丢失,就知道没有发生数据丢失,
2011-12-29 21:02:24 3265
转载 linux 下基于jrtplib库的实时传送实现
2010-06-08 09:56:33linux 下基于jrtplib库的实时传送实现一、RTP 是进行实时流媒体传输的标准协议和关键技术实时传输协议(Real-time Transport Protocol,PRT)是在 Internet 上处理多媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多(multicast,多播)的网络环境中实现
2011-12-29 20:58:03 514
转载 jrtplib3.7.1编译调试心得体会
今天我在博客里写一篇纯技术的文章。说到技术,其实也是跟别人学的,从网上搜来的纯粹是学习和研究之用,但是由于这个过程颇费我的心机,要说说和大家分享,大家可以在这个过程中吸取教训! 研究的项目是jrtplib3.7.1和jthread1.2.1的编译,以及jrtlib3.7.1自带实例的调试过程。 jrtplib是real time protocol的流媒体传输的协议,在网络中特别是在
2011-12-29 20:54:30 813
转载 sscanf
编辑本称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( const char *, const char *, ...); int sscanf(const char *buffer,const char *format,[argument ]...); buffer 存储的数据
2011-12-29 20:04:22 456
转载 gets函数
从流中读一行或指定个字符, 原型是char *fgets(char *s, int n, FILE *stream); 从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。 形参注释:*s结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针 例:如果
2011-12-29 20:01:52 5898
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人