自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 librtmp发送AVC,AAC数据包

1. libRTMP的包结构 typedef struct RTMPPacket { uint8_t m_headerType; uint8_t m_packetType; uint8_t m_hasAbsTimestamp; int m_nChannel; uint32_t m_nTimeStamp; int32

2016-01-21 12:39:27 5282 3

原创 打包AAC码流到FLV文件

AAC编码后数据打包到FLV很简单。1. FLV音频Tag格式                              字节位置    意义0x08,                        // 0,       TagType0xzz, 0xzz, 0xzz,            // 1-3,     DataSize,    0xzz, 0xzz, 0

2016-01-21 11:49:30 6102 1

原创 【手势交互】12. MYO臂环

MYO的工作原理与之前所介绍的体感交互方式都不同,它是通过捕捉用户手臂肌肉的生物电变化来进行体感控制的设备。MYO使用的eEMG(表面肌电图)技术最早应用在航空领域,当使用者在前臂上带上MYO并执行不同的手势时,前臂上的肌肉会发射出各不相同的电子信号,MYO内置的高敏传感器捕捉到这些信号,并通过嵌入式算法进行处理,进而识别出不同的手势,通过蓝牙将手势指令发送到主机。目前MYO可以识别出用户的握拳、

2015-09-28 16:17:35 5970 2

原创 【手势交互】11. SixSense STEM System

SixSence的STEM System是一款体感追踪设备,2013年登陆Kickstrater,在短短5小时,就达到了SixSence公司预期的25万美元目标。SixSence的STEM使用无线技术,靠九轴传感器而不是视觉捕捉玩家手部运动,所以他可以更大范围并且更为自由的动作,同时有更准确的捕捉。 SixSence的产品形态有三个:STEM Base 100美金, STEM Contro

2015-09-06 10:03:36 1253

原创 【手势交互】10. Wii Remote

Wii Remote(昵称:Wiimote、Wii遥控器)是任天堂游戏主机Wii的主要控制器。2005年9月在东京电玩展上发布,Wii Remote的主要特色是动作侦测,玩者可以透过移动和指向来与电视荧幕上的虚拟物件产生互动。由于其独特的功能以及与传统游戏控制器有很大的不同,Wii Remote在公开后受到许多关注。 Wiimote外形如传统的电视遥控器,可单手操作,内置CMOS感光摄像头

2015-08-03 17:52:12 4209

原创 【手势交互】9. PS Move

索尼研发体感控制技术已有10年,在过去那么多年里,尝试了3D摄像头、超声波和电磁感应等各种技术,最后还是认为目前的MOVE所使用的技术最为合适。PS Move是索尼于2010年9月份推出,用来让PS3主机具备动态感应功能的控制器。他利用动态控制器(手柄)和PS Eye摄像头,来捕捉玩家的动作,带给玩家全新的游戏操作模式。    主

2015-07-29 17:30:09 1547

原创 【手势交互】8. Nimble Sense

早在2012、2013年度,手势识别领域就发生了几起重要的行业并购。比如英特尔对Omek的收购,谷歌对Flutter的收购,而苹果公司更是以3.45亿美金得高价收购了之前为微软Kinect提供技术支持的以色列公司Prime Sense。手势识别,早已成为了各大巨头角逐未来的战场。因为巨头们正逐渐看清(手势识别)体感技术对传统操作方式的重要改变。 虚拟现实会是下一代人机交互界面,Oculus

2015-07-21 15:02:53 1598

原创 【手势交互】7. 凌指

美国 http://www.usens.com/ 凌感科技(uSens)成立于2013年,坐落于美国硅谷,公司专注于虚拟现实输入和输出技术的高科技创业公司,公司团队都是在美国留学及工作多年的中国高科技工作者。主要产品包括凌指外设,凌指一体机,虚拟现实/增强现实头盔印象湃(Impression Pi)。本文关注凌指相关技术。  凌感科技的三维手势识别产品凌指 凌指(Fin

2015-07-20 20:48:59 1760

原创 【手势交互】6. 微动VID

中国 天津 http://www.sharpnow.com/ 微动VID是天津锋时互动科技有限公司开发的中国Leap Motion。它可以识别并跟踪用户手部的姿态,包括:指尖和掌心的三维空间位置;手指和手掌的三维空间朝向。通过识别设备上空椎状空间的Air Mode模式和识别设备前方扇形区域Touch Mode模式,用户可以更完美的实现人机交互。 微动使用两个低成本的摄像头来实现左右

2015-07-17 12:21:52 1603 2

原创 【手势交互】5. Kinect for Xbox One

Kinect for XBox One是Kinect for XBox的升级版,这里称他为Kinect2 (也有叫它Kinect 720, Kinect One)。Kinect2于2013年中和Xbox One一起配套发售(Kinect1于2010年11月在美国上市,建议售价149美金)。2014年9月开始可以单独购买Kinect2,目前售价149.99美金。  Kinect for 

2015-07-17 09:46:42 4614

原创 【手势交互】4. Kinect for XBox

“You are the Controller”,Kinect for Xbox的广告词,明确说明了Kinect体感的交互方式。作为一款集成了诸多先进视觉技术的自然交互设备,Kinect在学术和游戏业界均享有很高的关注度。此外,Kinect硬件的研发与生产综合了声、光、电和机械学等多方面的技术,其主要零部件近百个,是目前市场上大批量生产中的最为复杂的电子消费产品。 Kinect 的关键

2015-07-16 15:19:51 3522

原创 【手势交互】3. Leap Motion

美国 http://www.leapmotion.com/ Leap Motion是一种3D动作控制系统,其创始人在读书期间发现传统的鼠标对于3D软件的控制极为不方便,因此迸发出要设计一套全新的动作控制系统来自由的控制电脑软件。2012年5月,Leap Motion推出的3D动作控制系统完全突破了以前3D控制的概念,为未来的3D交互打开了无限的想象空间,可以在电脑里进行3D手绘、三维模型设

2015-07-13 20:13:05 4793

原创 【手势交互】2. 分类

按照手势交互的实现原理不同,将手势交互分为以下三种:1. 基于视觉的手势交互   这类手势交互技术发展最为积极,很多老牌和创业公司在这个领域内工作。它依靠光学原理和视觉计算进行物体检测,其优点是:快捷方便和低延迟;缺点是:根据算法差异,精度会有所差别,而且此类方式有可识别区域,超出一定范围便无法识别。    根据识别过程中是否需要额外的辅助设备,又可细分为:裸手识别和辅助手柄识别两类,

2015-07-13 16:59:06 2275

原创 【手势交互】1. 前言

人与人之间的交互方式主要有语音(包括面谈和电话谈或者视频语音谈),文字(在双方异地或者双方语音沟通有障碍或者需要正式的文本背书的情况下选择文字),手势(握手、敬礼、推搡等肢体语言也是表现一个人内心想法的途径)。 人与机器之间的交互要远滞后与人人交互的方式,最传统的方式是键盘鼠标,键盘就类似与文字交流,将确认无误的信息以文本的形式输入机器,让它理解人的意图。鼠标的发明是一项创举,它大大简化了

2015-07-13 11:56:57 1410

原创 3D视频的播放

3D视频的播放人眼产生立体效果的条件有两个:1.需要左右眼两路影像,这两路影像是不同的,具有正确的视差;2.进入左右眼的影像要完全分离,左影像进左眼,右影像进右眼。第一条是对3D视频源提出的要求,视频源必须包括两路视频,这两路视频既有关系,又有差别。它们是在同一时刻、同一架3D摄像机(有两个摄像镜头,两镜头距离与人眼瞳距相近)拍摄的同一个场景所产生的两路视频。这两路视频

2015-07-06 18:07:36 2673

原创 图像空域平滑算法

基于空间相领像素点的平滑算法是图像处理里面经常用到的去噪算法。它的核心思想是:选择当前像素点c和其周围的一些像素{c, n1, n2, ..., nN}(共N+1个像素点),根据他们与c的距离和/或与c的像素差值,赋予他们不同的权重{w0, w1, w2, ..., wn}(要求0空域平滑算法就是不同权重值的卷积运算,卷积运算需要注意的问题1是计算量,2是数据搬移量。3x3的卷积运算,一个

2015-04-02 17:32:26 5154

原创 如何选择摄像头

市面上的摄像头有很多种,规格,价格也是千差万别,如何选择一款适应当前应用系统的摄像头是一个很关键的问题。影响摄像头性能的参数主要有以下几种:1. 分辨率:一般是说摄像头能支持到的最大图像大小,如640x480(普清), 800x600, 1280x720(高清), 1920x1080(全高清或超清)等。分辨率当然是越高越好,但也要考虑系统实际情况,如果系统就用不到1920x1080这样的分

2015-03-27 10:32:16 8929 1

原创 x264并行编码设置

x264有两种并行模式,slice并行和frame并行。slice并行把一帧划分为多个矩形slice,在这多个slice之间并行处理,是一种非延时性的并行模式,多slice会稍微降低编码性能。frame并行是同时开启多帧编码,x264在N个frame并行的时候需要集齐N帧再开始一起编码,因此x264 frame并行是一种延时性的并行模式(这是x264流程的问题,其实frame并行机制并不要求集齐N

2015-03-25 17:49:30 3415

原创 x264码率控制总结3——码率控制参数详解

x264码率控制参数详解  -q, --qp           Force constant QP (0-51, 0=lossless)默认:无说明:三种可选的码率控制方法(bitrate, CQP,CRF)之一。设置x264使用固定QP模式。设定的QP将被作为P帧的量化参数,I帧和B帧的量化参数由–ipratio and –pbratio参数进一步算出。CQP模式使用固定的QP

2015-02-12 16:01:30 8453 1

原创 open-GOP

H.264帧类型主要有五种编码帧:I(IDR帧)、i(非IDR I帧)、P(P帧)、B(参考B帧)、b(非参考B帧)。a. IDR帧,NALU_type = 0x65。IDR帧是一种特殊的I帧,在解码IDR帧前,清空所有前后向参考缓冲区,IDR帧随后的所有帧不能参考IDR前面的任何帧。IDR帧是视频安全的随机访问点,找到一个IDR帧可以丢弃前面所有帧数据而正确解码。b. i帧是帧内预测

2015-02-10 17:24:04 2823

翻译 X264码率控制总结2——x264码率控制方法概述

X264码率控制方法定性概述x264/doc/ratecontrol.txtA qualitative overview of x264's ratecontrol methodsBy Loren Merritt历史笔记:本文件是过时的,但相当一部分叙述仍然是准确的,以下是一些重要的码率控制算法更新:1. 默认情况下,MB-tree代替了qcomp用以计算各帧的复杂度,

2015-02-09 18:55:49 3563 1

原创 X264码率控制总结1——ABR,CQP,CRF

1. X264显式支持的一趟码率控制方法有:    ABR, CQP, CRF. 缺省方法是CRF    这三种方式的优先级是ABR > CQP > CRF.    if(bitrate) rc_method = ABR;    else if(qp || qp_constant) rc_method = CQP;    else rc_method = CRF;

2015-02-09 16:19:09 16648 1

原创 内存分配的四个例子

内存分配的四个例子原文在是:有关内存的思考题 在这篇基础上扩展了些知识,以做记录。第一个例子:char *GetMemory(char * p) { p = (char *)malloc(100); return p;}void Test(void) { char *str = NULL; GetMemory(str); st

2015-02-02 18:48:15 848

原创 FFmpeg sws_scale分析2

FFmpeg sws_scale分析2在网上没有看到有关SwsFilter的讨论,看FFMpeg代码,总结下面的分析结果。sws_scale前后图像滤波都定义为归一化的2维或者1维图像卷积处理。每个滤波器有四个分量typedef struct SwsFilter {    SwsVector *lumH; // 亮度水平处理    SwsVector *lumV;

2015-01-29 12:01:11 1775

原创 FFmpeg sws_scale分析1

FFmpeg sws_scale分析1FFmpeg里面的sws_scale库可以在一个函数里面同时实现:1.图像色彩空间转换;2.分辨率缩放;3.前后图像滤波处理。其核心函数主要有三个:// 初始化sws_scalestruct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcForm

2015-01-28 22:25:19 2418 1

原创 字节对齐

字节对齐1. X86结构是小端模式存储,既数据低位在低存储地址,数据高位在高存储地址。例如 short x = 0x3344; 假设x的地址为 0xBFFFF0F4,那么0xBFFFF0F4地址里面存储的是字节0x44, 0xBFFFF0F5地址里面存储的是字节0x33.2. 为了使CPU能够跟快的访问内存,变量地址和变量长度有关联,即所谓地址对齐。4字节的int类型变量,其起始地址应

2015-01-28 18:40:10 886

原创 程序内存分配

程序内存分配____________________| Stack区(栈区)(函数参数,局部变量,数组);自动创建,函数结束时自动释放,速度快,容量小|____________________| Static存储区(static变量,全局变量); 程序编译的时候就分配好   |____________________|

2015-01-28 17:15:33 763

原创 x264改变输出分辨率的算法

x264改变输出分辨率的算法在某些应用场景下,x264的输入视频分辨率与接收端输出的视频分辨率不同。例如编码端摄像头采集到的YUV数据为1280x720,而接收端视频显示窗口为640x480。对于这种场景,一般的处理方式是:源端:采集,编码,传输 720p的码流收端:接收,解码720p的码流,缩放到480p去显示。这种方式的劣势在于编码,传输了接收端用不到的大分辨率码流。

2015-01-27 23:21:55 4414

转载 x264宏块模式选择

x264宏块模式选择评价编码效率有两个指标:码率和解码图像质量。最好结果是码率小而质量高,但这基本上是不可能的,码率和质量一般是反比的关系。因此编码器编码过程就是对这两个因素的平衡过程。率失真优化RDO(Rate Distortion Optimization)就是在这种情况下提出来的编码优化方案。        J(mode) = SSD+λ*R(mode, ref, mvd, re

2015-01-27 18:21:37 1490

原创 X264支持输入NV12格式

X264支持输入NV12格式一般编码器(例如JM)输入格式是YUV420(YV12),H.264标准也介绍的是YUV420的输入。X264编码器的输入也一般是YUV420格式,但是在内部帧的存储方式上x264采用的是NV12。因为一般编码器对U,V两通道的处理方式是相同的,例如他们有相同的QP,宏块划分,参考帧ID,运动矢量。因此对于U,V两通道的数据读取是一致的,这样NV12 UV两通道

2015-01-23 17:35:45 6413 1

原创 H.264码流格式

H.264码流格式SODB: String Of Data Bits 原始数据比特流, 熵编码输出结果, 以bit为单位。RBSP: Raw Byte Sequence Payload 原始字节序列负载, 在SODB最后加上trailing bits.EBSP: Extent Byte Sequence Payload 扩展字节序列负载, RBSP里面加入防伪起始码字节(0x03)

2015-01-23 16:56:35 2147

原创 打包H264码流到FLV文件

FLV格式非常简单,头信息数据量很少,适合网络传输,因此被广泛的应用。1. H264 NALU结构    h264 NALU:  0x00 00 00 01 | nalu_type(1字节)| nalu_data (N 字节) | 0x00 00 00 01 | ...                              起始码(4字节)          类型

2015-01-19 20:37:16 13192 1

原创 FLV文件结构解析

1. FLV文件格式相对于MP4,简单很多。   FLV Header(9Bytes) + FLV Body                       a比特: 1:有音频; 0:无音频                    v比特: 1:有视频; 0:无视频   如果音视频都有这个字节为0x05   'F'|'L'|'V'|0x01|0b00000a0v| 0x00 00

2015-01-19 19:55:30 3777

原创 MP4格式分析

1.先说几个基本概念   Sample: 采样,对于音视频来说就是一个编码帧;Sample_count即总帧数,Sample_index即帧下标。                   在一个Mp4文件里面,所有Box处理的Samples都是严格按照帧序号排列的。删除或者修改一帧,很多个Box里面的内容需要从新计算。  Chunk: 块,一个Chunk包括一个或者多个同类型Sampl

2015-01-19 14:44:52 1743

原创 YUV格式总结

视频数据总要跟YUV打交道,由于不同公司组织基于对各自产品格式的定义不同,派生出各种各样不同的YUV格式。总的来说,YUV从像素组织形式上来分有两种:1.planer模式,2.packet模式。planar模式举例: Y0Y1....Yn  U0U1...Um  V0V1..Vm,YUV三个通道分别连续存储;packet模式举例: Y0U0V0 + Y1U1V1 + ... + YnU

2014-11-08 16:14:06 9008 1

原创 x264编码延时研究

研究了一下x264编码延时.方法是加log在x264.cstatic int encode( x264_param_t *param, cli_opt_t *opt ){    ...        i_frame_size = encode_frame( h, opt->hout, &pic, &last_dts );        if( i_frame_size ==

2014-11-05 22:45:08 3445

原创 [X264] MinGW编译x264,VC中调用libx264.dll

1. 下载并按照MinGW,最好就缺省按照    http://sourceforge.net/projects/ ... ler/mingw-get-inst/    把C:\MinGW\bin添加到PATH中 (dos命令行 PATH %PATH%;新目录;)2. 下载Yasm,    http://yasm.tortall.net/Download.html   

2014-11-05 22:43:15 2586

原创 MPEG-2系统复用 2

TS与PS的区别TS流与PS流的区别在于TS流的包结构是固定长度的(188、192、204、208字节);而PS流的包结构是可变长度,它的一个视频包可能就是一个视频帧。TS包较小,增加了很多冗余的包头信息,导致它对传输误码具有较高的抵抗能力,因此可以应用于信道环境较差的传输方式;而PS包只适合于应用于误码较低的存储环境。TS做传输,PS做存储。TS可以是多路节目的复合,PS只是一路节目。TS中

2012-07-24 19:19:53 1151

原创 MPEG-2系统复用 1

先说下复用的结构:1.  元素,对原始的音视频数据经过压缩形成编码码流,这些码流称为元素流(Elementary Stream),每个元素都有一个由系统层分配的各自独有的ID号;2. 节目,一个节目(program)一般由视频,音频(可能不止一路音频),文本,数据等元素组成,把这些元素复用到一起成为具有统一时间基轴的一个节目。将这些元素复合在一起的时候,系统会生成一个表用来记录这个节目所包

2012-07-24 18:06:35 859

原创 FFmpeg中libstagefright.cpp的认识

FFmpeg/libavcodec目录中有一个叫做libstagefright.cpp的文件,这个文件一开始以为是H.264在stagefright上的一个软实现。后来看了代码和同事研究过以后觉得是FFmpeg在Android系统上调用StageFright中支持的H.264硬件解码器。它提供了一种FFmpeg调用StageFright中硬解码的途径;不是StageFright调用FFmpeg解码

2012-05-17 17:01:35 5846 8

YUV文件处理播放器

YUV文件播放,存储,比较工具。 支持400,420,422,444,帧/场,Y通道,U通道,V通道,逐点YUV/RGB比较,不同点突出显示;存储YUV成BMP图片,截取YUV文件;显示直方图等功能。

2014-10-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除