基于Tesseract OCR的文字识别Android应用开发资料整理 前言一、Tesseract OCR引擎 Tesseract OCR是HP公司于1985~1995年间开发的商业级OCR(Optical Character Reader, 光学字符阅读器)引擎,并于2005年开放源代码。以下是它sourceforge上的网址: http://sourceforge.net/projects/tesseract-ocr
基于Linux的USB子系统学习 --- <基础知识与USB协议概述> ing 一、参考资料 1.《USB基础知识概论》 http://www.crifan.com/files/doc/docbook/usb_basic/release/html/usb_basic.html 2.《USB in a NutShell》 http://www.beyondlogic.org/usbnutshell/usb1.shtml 3.《
《深入Linux内核架构》附录A<体系结构相关知识>笔记 附录A 体系结构相关知识A.1 概述为便于扩展到新的体系结构,内核严格隔离了体系结构相关和体系结构无关的代码。内核中特定于处理器的部分,包含定义和原型的头文件保存在include/asm-arch/(例如,include/asm-arm/)目录下,而C语言和汇编程序源代码实现则保存在arch/arch/(例如,arch/arm/)目录下。联编系统也考虑到一般代码可能需要
基于Eclipse的Android JNI层测试应用开发过程记录 前言 本文记录一个Java层与JNI层参数与数据交互的应用程序开发过程,为实现一个功能完整的带Java与JNI的应用程序打下基础。本文假设读者已搭建好Android的Eclipse与NDK开发环境,包括通过ADB连接手机的配置。1. 构建基本的Android应用程序 1.1 引导界面配置 打开Eclipse,"File"->"New"->"Andro
《Cortex™-A系列编程者指南(V3.0)》第14章<其它异常处理>笔记 在本章中,我们会简单的看看用于中止、未定义指令和SVC指令的中断处理程序,看看Linux内核是如何处理中断的。复位处理程序在第15章启动代码里将会深入涉及。
《Cortex™-A系列编程者指南(V3.0)》第13章<中断处理>笔记 在本章,我们会看看ARM处理器处理中断的一系列方法,简单地看看通用中断控制器(Generic Interrupt Controller,GIC)架构。 旧版本的ARM架构允许实现者在他们的外部中断控制器设计中相当大的自由,没有关于中断类型或数量,或者是被用于中断控制模块接口的软件模型的协议。GIC架构提供一个更为严格的控制规范,使得来自不同制造商之间的中断控制器之间有更高程度的一致性。这
C\C++代码优化的27个建议 1. 记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经常使用的代码不需要做较多优化考虑(或者完全不优化)。这里有句俗语:让经常执行的路径运行更加高效,而运行稀少的路径正确运行。
《Cortex™-A系列编程者指南(V3.0)》第12章<异常处理>笔记 在本章,我们看看ARM处理器如何响应异常。异常是任何需要挂起正常执行转而运行与每个异常类型相关联软件(称为异常处理程序)的条件。12.1 异常的类型如我们在第四章看到,A系列和R系列架构支持七种处理器模式,六种特权模式(称为快速中断模式、外部中断模式、管理模式、中止模式、未定义模式和系统模式),一种非特权模式(用户模式)。如果虚拟化扩展和安全扩展被实现,Hyp和Monito
《Cortex™-A系列编程者指南(V3.0)》第4章<ARM寄存器、工作模式和指令集>笔记 《Cortex-A系列编程者指南(3.0版)》文档来源:DEN0013C_cortex_a_series_PG.pdf说明:前三章是介绍性的,略过,值得关注的是Linaro:www.linaro.org。第四章 ARM寄存器、工作模式和指令集本章介绍ARM处理器的基础特性,包括寄存器、工作模式和指令集的细节。我们也会涉及一些处理器实现细节,包括指令流水线和分支预测。
《Using OpenMP》第五章<如何通过使用OpenMP获得好的性能>笔记 ing 5.2 串行程序的性能考虑目前,单核处理器的性能经常归因为未充分利用的cache内存子系统。特别地,缓存分层中的最高层缓存未命中的代价是高昂的,因为这意味着数据在使用之前必须从主内存中获取。典型地,相比从缓存中获取数据,通常需要付出5-10倍更多的代价。在一个共享内存多核处理器系统中,这一负面影响更为严重:涉及的线程越多,潜在地性能问题越大。我们简约的讨论了存储器分层和它的
OpenMP for Android初学记录 OpenMP是一种应用程序接口(API),支持多平台共享内存的C/C++/Fortran多处理器编程,可以运行在绝大多数处理器架构和操作系统上,包括Solaris, AIX, HP-UX, GNU/Linux, Mac OS X和Windows平台。它由编译器指令集、库函数和环境变量组成,影响运行时行为。
《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第三章<用Autoconf配置你的项目> 因为对于原本的Autoconf框架,Automake和Libtool本质上是追加的组件,花费一些时间使用Autoconf而不使用Automake和Libtool是有用的。通过暴露这个工具的那些经常被Automake隐藏的部分,提供给你关于Autoconf如何运作相当多的见解。 在Automake出现之前,Autoconf是被单独使用的。实际上,很多遗留的开源软件项目从没有做从Autoco
《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第二章<理解GNU编码标准> 在第一章中,我给出了GNU Autotools和一些资源的概述,可以帮助降低所需要的学习曲线来掌握它们。在这一章节中,我们会退一小步,调查可用于任何工程的项目组织技术,不仅仅使用Autotools。当你完成阅读这一章节,你应该会熟悉普通的make目标,知晓它们为何存在。你应该也会对工程组织方式有一个坚实的理解。当你完成这一章节,你会是很好地在通往Automake专家的路上。
《Autotools - GNU Autoconf, Automake与Libtool实践者指南》第一章<GNU Autotools简要介绍> 前言 本文根据《Autotools - A Practioner's Guide to GNU Autoconf, Automake, and Libtool》第一章翻译整理,省略了部分语句。正文
《Mali OpenCL SDK v1.1.0》教程样例之六“索贝尔滤波器” Sobel图像滤波器是一种简单的卷积滤波器,主要用于边缘检测算法。样例结果输入图像输出图像算法 一种做图像边缘检测的技术是,找出图像的梯度。大梯度值的区域对应图像色彩或密度的剧变区域。典型地,这些区域是边缘。 如果你对于幅图像卷积两个Sobel算子,你会得到两个输出: > X方向的梯度(dX) > Y方
《Mali-T600系列GPU OpenCL开发者指南》第六章< 为Mali GPU调整现有OpenCL代码>笔记 本章介绍如何为 Mali GPU 优化现有的 OpenCL 代码。它包含以下小节: > 关于为优化现有代码 > 为优化现有代码的步骤 6.1 关于为 Mali GPU 优化现有 OpenCL 代码 OpenCL 是一种可移植语言,但并不总是在性能上可移植。这意味着 OpenCL 可以在不同类型的计算设备上工作,但性能无法维持。现有的 OpenCL 通常针对桌面
《Mali-T600系列GPU OpenCL开发者指南》第五章<转换现有代码到OpenCL>笔记 5.1 检索你的应用程序 检索你的应用程序,寻找计算最密集的部,这些是值得移植到OpenCL上的部分。 你可以使用DS-5来检索你的应用程序,从Mali开发者网站下载DS-5:http://www.malideveloper.arm.com5.2 为并行化分析你的代码 该部分描述如何为并行化,分析计算密集型代码,包含以下部分: >为并行