- 博客(53)
- 资源 (7)
- 收藏
- 关注
原创 深度学习入门介绍
深度学习是一种从训练数据出发,经过一个端到端(end-to-end)的模型,然后直接输出得到最终结果的一种新模式。一般的机器学习处理流程如下:传感器获得数据——>预处理——>特征提取——>特征选择——>推理,预测或识别。预处理——>特征提取——>特征选择,概况起来就是特征表达,良好的特征表达,对最终算法的准确性起了非常关键的作用。
2018-01-02 17:16:48 1474 1
原创 openni2结构简介
openni框架是一套开源的SDK,用于开发3D传感器的中间层和应用层。各个传感器需要实现OniDriverAPI.h中定义的接口,具体实现在OpenNI2/Source/Drivers目录下,不同传感器编译成不同的动态库。openni::initialize()用于加载各个传感器的动态库,并获得动态库接口的地址。上层调用最终是调用到传感器的动态库中。下面简单看下initialize的
2017-05-04 18:13:21 3513
原创 摄像头标定简介
摄像头标定即求摄像头的内参和外参。两个坐标系世界坐标系:描述真实世界的三维坐标系。原点在镜头的光学中心,单位为距离单位。投影坐标系:描述图像传感器成像平面的二维坐标系,原点在成像平面的左上角,单位是像素。内参:是3*3的矩阵,三维世界坐标系跟二维投影坐标系之间的转换就是通过摄像头内参来进行的。这种转换的实际作用是从投影坐标系的深度图得到世界坐标系的点云图。
2017-04-27 14:08:41 3341
原创 深度摄像头测距原理简介
深度检测主要技术方法:1.双目匹配(双RGB摄像头+可选的照明系统)三角测量原理即目标点在左右两幅视图中成像的横坐标之间存在的差异(视差Disparity),与目标点到成像平面的距离成反比例的关系:Z = ft/d;得到深度信息。双目匹配采用三角测量原理完全基于图像处理技术,通过寻找两个图像中的相同的特征点得到匹配点,从而得到深度值。双目测距中光源是环境光或者白光这种没有经过编码的
2017-04-26 17:49:07 28357
原创 webview chromium v51 webgl context video元素渲染到texture上的实现原理
2DCanvas的webgl context提供了一组接口 texImage2D()用于将不同类型的源作为材质渲染到指定texture上。这些不同类型的源包括:ArrayBufferView, ImageData,HTMLImageElement,HTMLCanvasElement, HTMLVideoElement这篇博客分析HTMLVideoElement作为源渲染到指定textu
2016-07-27 18:42:14 1968
原创 webview chromium v48 h5 video上屏过程详解
前段时间网上有同学问h5 video不显示图像问题。我好像误导别人了。最近刚好有机会看这块,就仔细梳理了下。这篇博客分为两部分,第一部分是h5 video 播放器的实现结构,第二部分是h5 video上屏过程的详细剖析。这部分比想象中复杂,不过梳理清楚这块,对于chromium系统如何跨线程使用texture会有更深的认识,花些精力还比较值得。第一部分h5 video播放器的实现结构
2016-06-20 17:57:40 1871
原创 webview chromium v35网页加载触发时机
上层触发,点击进入网址,创建renderview流程WebView::loadUrl()//WebViewChromium::loadUrl()WebViewChromium::loadUrlOnUiThread()AwContents::loadUrl()ContentViewCoreImpl::LoadUrl() //javaContentViewCoreImpl::L
2016-04-08 14:41:06 1199
原创 从gpu到chromium compositor(cc)详解android4.4 webview chromium v37硬件绘制流程
本文旨在按照从底层到上层的顺序,详细串联下android4.4 webview chromium架构下的硬件绘制实现细节。目录结构一.webview chromium与GPU交互的方式(单进程CommandBuffer系统的详细结构) 1.1 OpenGL ES2.0与EGL简介 1.2 android4.4中创建的供chromium内核使用的EGLContext和
2015-12-28 20:37:15 2809
翻译 合成器线程架构
原文链接:http://www.chromium.org/developers/design-documents/compositor-thread-architecture目标render主线程是一个相当可怕的地方。HTML,CSS,JavaScript,以及Web平台上的一切都运行或起始于render主线程。It routinely stalls for tens to hundr
2015-12-21 17:57:20 1427
翻译 webview同步合成
问题Chrome合成器现在已经有了软件模式,但是只靠这一点还不能解决现有AndroidWebview的使用/滥用问题。目前AndroidWebview系统的渲染情况如下:● Nonmodal(非模态)用户无法通过WebView API指定WebView是处于软件模式还是硬件模式。相反地,canvas是一层接一层的传递给draw调用的,而这个canvas的后端存储可以是硬的也可以
2015-10-26 18:04:55 1290
原创 webview chromium v35 2dcanvas实现流程详解
webview版本chromium(即与android4.4webview chromium架构相同)2dcanvas的实现与原生chromium(surfaceview方案)有很大不同。下面详细记下webview chromium中2dcanvas的实现方案.及其在个别gpu上存在的一个性能瓶颈。webkit建树时,遇到2dcanvas会为其单独创建一个RenderLayer,开启硬
2015-01-30 16:16:18 2537 1
原创 chromium for android v38硬件绘制渲染结构及流程分析(render进程)
38渲染这块变化比较大,以前看的29版本有些地方也是一知半解的,没整太明白,感觉还是有必要重新梳理一下,温故知新吧。一.blink合成模块结构RenderLayerCompositorblink中管理RenderLayer绘制顺序的类。RenderLayer代表网页上的一层内容,RenderLayer与GraphicsLayer一一对应。GraphicsLayer对
2014-11-08 18:10:40 1603
原创 chromium for android v34 2dcanvas硬件渲染实现分析
这篇接着上一篇2dcanvas硬件绘制,分析保存绘制结果的texture被合成到on screen framebuffer上的过程。1.webkit为canvas元素对应的render树节点RenderHTMLCanvas,创建RenderLayer的过程如下:RenderLayerModelObject::createLayer()调用RenderLayer::ins
2014-10-10 17:40:54 1998 3
原创 chromium for android v34 2dCanvas硬件绘制实现分析
HTMLCanvasElement对应h5的canvas元素。解析网页遇到canvas元素会创建HTMLCanvasElement实例。Canvas可以支持2d和3d图形的绘制。HTMLCanvasElement提供了getContext()接口,返回图形绘制的上下文对象,对于2d图形返回的是CanvasRenderingContext2D。CanvasRenderingCon
2014-10-08 10:59:13 2204 1
原创 android4.4 webview chromium与chromium for android硬件渲染的异同
相同点:android4.4 webview chromium的渲染流程与 chromium for android硬件渲染流程全解析(render进程)中总结的五个子流程完全一致。android4.4 webview chromium的渲染流程也是这五个子流程组成的。不同点:1.android4.4中网页渲染的驱动还是android的UI系统控制的。即WebView.onDr
2014-06-13 14:29:57 2029 1
原创 android4.4 webview chromium实现硬件渲染的chromium内核结构
一.DrawGLFunctorandroid4.4 webview chromium的硬件渲染是android ui系统和chromium内核协作完成的。android ui系统负责触发网页渲染(调用WebView.onDraw()),以及提供网页内容的最终目的地(HardwareCanvas);chromium内核提供具体的渲染行为。这里就引出了DrawGLFunctor结构。
2014-06-13 13:43:58 3344
原创 android4.4 webview chromium显示网页的chromium内核结构
android4.4 webview chromium是单进程的,图中所有组件都运行在Browser进程中。按从上而下的顺序介绍这张图中与显示网页相关的chromium内核结构。1.AwContents->WebContentsImplAwContnents的创建过程如下图:AwContents是WebView接口的主要实现类。native层的AwContents包含chr
2014-06-08 15:45:31 4224
原创 android4.4 webview chromium 桥接层结构
android4.4在保持webview接口不变的前提下,将webkit替换成了chromium.这篇总结一下webview和chromium之间的桥接层结构。
2014-05-30 14:59:30 2312 1
原创 chromium for android GPU进程结构分析
GPU进程的客户端(Browser进程,Render进程)都会创建一个WebGraphicsContext3DCommandBufferImpl的实例,用于封装与GPU进程的通信。所以我们从WebGraphicsContext3DCommandBufferImpl开始引出GPU进程的结构。一.WebGraphicsContext3DCommandBufferImpl的创建。WebG
2014-05-29 12:10:29 4012 3
翻译 GPU Command Buffer
原文链接http://www.chromium.org/developers/design-documents/gpu-command-buffer。This are mostly just notes on the GPU command bufferGPU Command Buffer系统是Chrome通过OpenGL或OpenGL ES(或者ANGLE模拟的OpenGL ES)与
2014-05-23 15:51:51 4478
原创 chromium for android 硬件渲染流程总结
render进程中一.webkit模块webkit引擎会为网页内容同时创建Dom tree, Render tree和RenderLayer tree.这三棵树之间的关系参见
2014-05-20 18:08:10 3041
原创 chromium for android硬件渲染流程全解析(browser进程)
Browser进程的主要工作是将render进程中包含网页内容的texture合成到on-screen surface。Browser进程创建的是on-screen surface,网页内容最终要渲染到on-screen surface的back buffer上。Browser进程调用eglswapbuffer后onscreen surface对应的back buffer和front buffer会互换,下次屏幕刷新时,front buffer的内容会显示到屏幕上。
2014-03-16 16:47:39 3698
原创 chromium for android硬件渲染流程全解析(render进程)
这篇博客分析的是网页内容更新时(比如滚动),render进程将新的网页内容渲染出来的完整流程。我把Render进程的整个处理流程分成四个大的子流程:一.发生在主线程中,网页内容绘制命令被存储在LayerTreeHostImpl包含的LayerTreeImpl中。二.发生在实现线程中,网页内容的光栅化,及光栅化后,变为像素的网页内容被作为纹理数据上传给opengles.(glTexIma
2014-01-15 16:15:32 8142 4
原创 chromium for android render进程结构分析
一.首先看Render进程中的核心类RenderWidget,RenderView(Impl)与WebKit模块之间关系的建立RendeWidget与WebKit::WebWidget,RenderView(Impl)与WebKit::WebView(Impl)之间的关系RenderWidget类是WebKit::WebWidget和RenderWidgetHost之间的通信桥梁。Re
2014-01-15 15:49:39 3344
原创 chromium for android render进程创建过程分析
render进程的创建是由应用程序调用ContentView.java的loadUrl开始触发的。ContentView.java的loadUrl调用ContentViewCore.java的loadUrl,ContentViewCore.java调用nativeLoadUrl(),通过chromium的jni机制ContentViewCore_jni.h(定义在out/Release
2014-01-15 15:39:43 4677
原创 chromium for android Browser进程结构分析
java层与页面显示有关的类1.ContentView.java 功能:ContentViewCore.java的封装类,继承自Android的FrameLayout控件,提供了类似于Android WebView.java的接口。是android版chrome应用程序可以直接使用的类。2.ContentViewCore.java功能:native层WebContent在jav
2014-01-15 15:25:53 4815 1
原创 chromium for android Browser进程创建过程分析
ContentMainDelegate是客户端程序注册给content_main_runner.cc的回调接口,content_main_runner.cc通过调用ContentMainDelegate的接口来通知客户端当前Content框架的状态。客户端程序通过ContentMainDelegate::RegisterApplicationNativeMethods接口注册自己的
2014-01-15 15:01:02 2750
原创 smali文件解析
Smali,Baksmali分别是指安卓系统里的Java虚拟机(Dalvik)所使用的一种.dex格式文件的汇编器,反汇编器。其语法是一种宽松式的Jasmin/dedexer语法,而且它实现了.dex格式所有功能(注解,调试信息,线路信息等)。Android平台上使用了google自己的Dalvik虚拟机,这种虚拟机直接执行的并非Java字节码,而是另一种字节码:dex格式的字节码
2013-08-25 16:52:34 4063 1
原创 android4.1.2 网页a标签处理流程
DOMWindow::open 调用WebCore::createWindow()这个函数定义在FrameLoader.cpp中。WebCore::createWindow(){oldPage->chrome()->createWindow()}Chrome::createWindow(){Page* newPage = m_client->createWindow(fra
2013-06-26 18:53:19 1341
翻译 Chromium 怎样显示网页
http://www.chromium.org/developers/design-documents/displaying-a-web-page-in-chrome这篇文档描述了Chromium 怎样自上而下显示网页。确保你已经读了multi-process architecture design document.你会特别想了解主要部件的框图。你也许对多进程加载网页资源感兴
2013-06-05 15:44:26 3127
原创 Ubuntu11.10编译chromium for android
官网:http://dev.chromium.org/developers/how-tos/get-the-codehttp://code.google.com/p/chromium/wiki/AndroidBuildInstructions按照官网:http://dev.chromium.org/developers/how-tos/get-the-codeBootstrap
2013-06-03 14:04:28 3307
翻译 chromium Multi-process Architecture
原文链接:http://www.chromium.org/developers/design-documents/multi-process-architecture本文档描述了Chromium的上层架构。问题创建一个从不崩溃或宕机的渲染引擎几乎是不可能的。创建一个具有完美安全性的渲染引擎也几乎是不可能的。从某些方面讲,浏览器的现状像是过去的单用户,多任务的操作系统。在
2013-05-30 10:43:12 1497
原创 android4.1.2inputmethodframework结构分析
以下来自android官网的介绍:input method framework (IMF) architecture包含三个主要部分:1.input method manager是负责管理其他部分交互的中心点;以client-side API的形式存在于每个应用上下文中,并与一个负责管理跨进程交互的全局系统服务(InputMethodManagerService)通信。2.inpu
2013-05-26 20:53:58 1876
原创 linux 环境变量和Bash
linux环境变量与Bash参考资料:http://blog.csdn.net/ddviplinux/article/details/4280433http://blog.sina.com.cn/s/blog_5420e00001017z66.htmlhttp://www.cnblogs.com/cxz2009/archive/2010/11/04/1868987.htmlht
2013-05-13 09:08:00 1226
原创 android4.1.2 browser下载音乐文件中文名乱码问题解决
参考资料:http://blog.csdn.net/qinysong/article/details/1179489http://lavasoft.blog.51cto.com/62575/273608http://wenku.baidu.com/view/3668f2d6195f312b3169a571.htmlhttp://blog.csdn.net/lijinwei_123/
2013-04-26 19:57:02 1224
原创 android4.0.1 surfaceflinger系统分析
先给出本篇的主要结论:1.ISurfaceComposer,ISurfaceComposerClient, ISurfaceTexture,ISurface这四个接口描述了SurfaceFlinger系统及其客户端的定义和协作方式。2.ISurfaceComposer定义了SurfaceFlinger系统,它的server端的具体实现类是SurfaceFlinger。它的Proxy端封装在
2013-03-19 11:19:09 3250 1
原创 tcpdump抓包命令
/system/xbin/tcpdump -p -vv -s 0 -w /data/capture.pcap9网络包查看工具:wireshark
2013-03-13 10:28:06 842
原创 Android4.0.1 Activity的DecorView与SurfaceFlinger的Surface之间关系的建立过程分析
通过Android4.0.1 Activity的Window与DecorView关系建立过程分析,我们知道DecorView与ViewRootImpl之间是一一对应的关系。ViewRootImpl的成员变量mView保存DecorView的实例。DecorView是整个Activity的View Tree的根视图,整个Activity的显示就是从DecorView开始将整颗ViewTree
2013-02-27 19:20:20 2413
原创 android4.0.1 Activity的Window,DecorView 之间关系的建立过程分析
这篇主要关注Activity的窗口对象(Window)和根视图对象(DecorView)之间的关系以及二者的建立过程。ActivityManagerService负责管理每个Activity整个生命周期的所有活动。ActivityThread类是运行Activity的线程,实现开发者直接调用的Activity的功能。我们从ActivityThread启动应用程序的Activity开始,分析
2013-02-26 15:25:43 1397 1
原创 gdb 调试命令
以下命令在开发板上执行:/system/bin # ./gdbserver --attach 192.168.1.101:8888(PC机 ip) 1204(要调试的开发板上运行的apk进程)以下三个命令在PC机上执行:./prebuilt/linux-x86/toolchain/mips-4.4.6/bin/mips-linux-gnu-gdb ./out/target/p
2013-02-21 13:33:55 915
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人