发布时间:2012-12-31 01:54:17
//pthread_cond_signal 只发信号,内部不会解锁,在Linux 线程中,有两个队列,分别是cond_wait队列和mutex_lock队列, cond_signal只是让线程从cond_wait队列移到mutex_lock队列,而不用返回到用户空间,不会有性能的损耗。(pthread_cond_signal unlock后pthread_cond_wait才能上锁) //pthread_cond_wait 先解锁,等待,有信号来,上锁,执行while检查防止另外的线程更改条件 //循环判断的原因如下:假设2个线程在getq阻塞,然后两者都被激活......【阅读全文】
发布时间:2012-12-17 11:10:01
人的立体感是这样建立的:双眼同时注视某物体,双眼视线交叉于一点,叫注视点,从注视点反射回到视网膜上的光点是对应的,这两点将信号转入大脑视中枢合成一个物体完整的像。不但看清了这一点,而且这一点与周围物体间的距离、深度、凸凹等等都能辨别出来,这样成的像就是立体的像,这种视觉也叫立体视觉。 欠缺立体视觉者称为立体盲。 立体视觉是人眼在观察事物时所具有的立体感。再进一步讲,人眼对获取的景象有相当的深度感知能力(Depth Perception),而这些感知能力又源自人眼可以提取出景象中的深度要素(Depth Cue)。之所以可以具备这些能力,主要依靠人眼的如下几种机能: 1. 双目视差(Bino......【阅读全文】
发布时间:2012-12-14 17:46:08
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 MVC是一个框架模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。[5]视图 视图是用户看到并与......【阅读全文】
发布时间:2012-12-14 17:15:41
YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。在现代彩色电视系统中,通常采用三管彩色摄影机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最大的......【阅读全文】
发布时间:2012-12-14 16:34:39
ffmpeg源码分析之数据流本文主要介绍ffmpeg的数据流,在ffmpeg中主要分有三个主要用途用于媒体流的解码播放,媒体流的转换(解码之后再编码)和媒体流录制。媒体流的解码播放在ffmpeg中媒体流的解码播放流程如下图:其主要流程为从媒体文件中读取出媒体流,然后送入媒体格式解码器(demuxer)中去除多余的外衣--媒体格式。然后送入ffmpeg的codec的decode中进行解码,最终生成显示需要的YUV格式的图片,然后再送入类似SDL中进行渲染。ffmpeg中媒体流的解码播放流程相对比较来说其最大的难点在于pts的同步,在ffmpeg的ffplay中有很好的例子。例子中是启动了多个线程......【阅读全文】