自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(221)
  • 资源 (3)
  • 收藏
  • 关注

原创 linux 终端设备:系统终端设备

在tty core代码tty_io.c中,有如下几行代码/* * Ok, now we can initialize the rest of the tty devices and can count * on memory allocations, interrupts etc.. */static int __init tty_init(void){ cdev_ini

2013-01-16 11:25:50 2341

原创 V4L2 soc camera 分析 - 系统架构图

图1 soc camera 子系统 系统架构图Soc camera sub-system对应着drivers/media/video/下的soc_camera.c soc_camera_platform.cSoc camera host 是host端实现,是由平台厂商实现的,向上实现soc_camera_host_ops接口,向下操作Camera host硬件以及通过平台特定的

2013-01-09 10:46:59 12185 1

原创 V4L2 soc-camera 分析 - 调用关系

应用层通过设备节点/dev/videoX打开video4linux devices。/dev/videoX是一个字符设备,主设备号81,次设备号: (0~63)分配给capture设备,64~127分配给radio设备,223~255分配给VBI设备,128~191分配给其他类型的。如果驱动要注册一个video4linux设备,那么需要调用video_register_device函数。

2013-01-08 16:08:23 6158 3

原创 v4L2 soc-camera 分析 - soc_camera.c

soc_camera.c1455 static struct platform_driver __refdata soc_camera_pdrv = {1456     .remove  = __devexit_p(soc_camera_pdrv_remove),1457     .driver  = {1458         .name   = "soc-camera-pdr

2013-01-04 10:52:38 14189 2

原创 V4L2 soc-camera 数据结构

static LIST_HEAD(hosts)所有的host都在hosts指向的链表上static LIST_HEAD(devices);所有soc camera device都挂在devices指向的链表上。系统内可能有多个soc_camera_host,每个soc_camera_host可以对应1 ~ n个soc_camera_device。每个soc_camera_d

2012-12-27 18:10:58 3925

翻译 V4L2 soc-camera 子系统

soc-camera的作者之所以引入这个子系统,我想一个主要目的就是把camera驱动划分为camera host端,camera device端,这样同一个camera sensor驱动就可以方便的移植到多个camera host下,而无须做较多的改动。本译文取自kernel文档:Documentation/video4linux/soc-camera.txt术语

2012-12-19 14:45:52 6805 1

原创 YUV YCbCr 区别

YUV是图像色彩空间的一种色彩模型,该模型将亮度和色度分开,常用的三种色彩模型为RGB CMYK和YUV。YCbCr是ITU-R BT601的一部分,是YUV经过缩放和偏移处理后的结果。其中Y与YUV中的Y含义一致,Cb Cr同样都指色彩。二者到RGB空间的转换公式也不一样Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16Cb' =

2012-12-18 10:50:23 4491

翻译 深入了解ALSA

原文 http://www.volkerschatz.com/noise/alsa.htmlIntro任何人如果经常的使用linux机器处理音乐,那么他迟早会和ALSA打交道。ALSA是Advanced Linux Sound Architecture的简称,和过时的Open Sound System(OSS)比起来更强大功能更多。事实上,你可能已经不知不觉的使用了ALSA,比

2012-12-14 14:01:42 30421

翻译 ALSA asoundrc官方文档

原文地址 http://www.alsa-project.org/main/index.php/AsoundrcWhy asoundrc?.asoundrc和asound.conf对于ALSA能供正确工作不是必需的。大部分应用都可以在没有他们的情况下正常运行。这两个文件用来提供特定的额外功能,比如在alsa-lig层进行路由和采样率转换。The .asoundrc

2012-12-13 16:51:18 10021 1

翻译 ALSA plugin 文档

原文地址 http://alsa.opensrc.org/Plugin_DocumentationOfficial documentationALSA plugins的官方文档地址是http://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html此外还可以在下面地址发现有用的信息:http://www.alsa-p

2012-12-13 10:12:06 4843

翻译 ALSA声音编程介绍

ALSA是Advanced Linux Sound Architecture简称。它包含一组kernel 驱动,一个应用编程接口(API)库以及一组工具函数。本文中,我们会向读者展示ALSA项目和组成部件的概况。后面会重点介绍ALSA PCM接口的编程。ALSA不仅仅是sound API。选择ALSA可以让你最大程度的控制和执行执行低级的audio函数,或者使用其它sound API不支持的特

2012-12-11 11:08:07 15064 1

原创 音频处理的基本概念

采样(sample):PCM audio不论是输入还是输出,都包含采样,采样达标声音的一个声道在某个特定时间点的振幅。 很多这样的采样组成了声音。样本是记录音频数据的最基本单位。对于CD audio,每秒有44100个采样。采样的尺寸从8bit 到64bit精度。采样的格式也各式各样: 大端整形,小端整形或者浮点数。采样尺寸决定动态声响范围。动态声响范围是指最静和最大声之差通道

2012-12-10 10:39:39 2758

原创 tw9912 寄存器配置

给出4组,还是以FAE给的配置给为准NTSC_in_656i_output: 输入为CVBS NTSC模拟信号,输出为隔行BT656w FF 00 ; Page 00w 01 78w 02 40w 03 20w 04 00w 05 01w 06 03w 07 02w 08 14w 09 F0w 0A 1Bw 0B D0w 0C CCw 0D 15w

2012-12-10 08:49:27 4592 4

原创 一个简单的ALSA示例代码

代码如下,注释可参看原文http://users.suse.com/~mana/alsa090_howto.html#include int main(){ int ret; snd_pcm_t *pcm_handle; snd_pcm_stream_t stream = SND_PCM_STREAM_PLAYBACK; snd_pcm_hw_params_t *hwpa

2012-12-07 17:56:12 5965

翻译 HDFS Append/Hflush/Read design

原文位置https://issues.apache.org/jira/secure/attachment/12445209/appendDesign3.pdf1. Design challenges对于hflush,HDFS需要使得未关闭文件的最后一个block对所有readers可见。当前存在两个挑战:1.  读一致性问题。在一个给定时间最后一个block的不同rep

2012-12-05 18:04:18 2948

翻译 Hadoop体系结构指南

英文原文 HDFS Architecture Guide简介Hadoop Distributed File System(HDFS)是一个运行在商用硬件平台上的分布式文件系统。它和很多现存的分布式文件系统有很多相似之处。当然,和其他的分布式文件系统的区别也是很明显的。HDFS在廉价硬件平台上提供高可靠的文件服务,提供数据访问的高吞吐量,适合那些运行在大数据集上的应用。HDFS并

2012-11-30 18:06:55 6343

翻译 深入理解Hadoop集群和网络

原文地址 http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/本文侧重于Hadoop集群的体系结构和方法,以及它与网络和服务器基础设施这件的关系。文章的素材主要来自于研究工作以及同现实生活中运行Hadoop集群客户的讨论。如果你也在你的数据中心运行产品级的Hadoop集群,那

2012-11-29 15:38:55 19359 6

原创 mx51 reboot是如何实现的

以前觉得 reboot命令能让系统重启动 是件很神奇的事情,今天看了下电路和代码,从底层搞清楚了reboot的整个流程平台是imx51,PMIC是MC138921. 当linux操作系统下使用reboot命令后,会调用到arch_reset的函数,这个函数是平台特定的,对于imx51芯片一定会去reset CPU内的watchdog,2. arch_reset中设置Watchd

2012-11-22 15:27:03 2561

原创 DC/DC和LDO

DC-DC 直流电压转换器包括boost(升压),buck(降压),Boost/buck(升/降压)和反向结构,具有高效率,高输出电流和低静态电流等特点。该类电源控制器的缺点是:输出波纹和开关噪声较大,成本相对较高。LDO low dropout regulator 意为低压差线性稳压器相对于传统的线性稳压器,传统线性稳压器要求输入电压比输出电压搞出2v~3v,否则就不能正

2012-11-21 17:51:31 1353

原创 JPEG文件格式 JFIF & Exif

JPEG是Joint Photographic Experts Group 的缩写,正是这个专家组制定了JPEG标准以及其他静态图片编解码标准。Joint(联合)是指ISO TC97 WG8(计算机与信息处理技术委员会 第8工作组)和CCITT SGVIII两个工作组的联合. 这个专家组在1992年颁布了第一个JPEG标准, ITU在1992年命名为ITU-T Recommendation T.8

2012-11-12 14:15:18 33674 1

转载 The Google File system中文版

翻译的不错,保存下来慢慢看,原翻译地址 blademaster.ixiezi.com/摘要我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。虽然GFS的设计目标与许多传统的分布式文件系统有很多相同之处,

2012-11-09 14:11:08 1449 1

转载 google gfs 文件系统设计白皮书

英文原文http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en//archive/gfs-sosp2003.pdfcsdn下载http://download.csdn.net/detail/kickxxx/4750122

2012-11-09 13:59:28 1031

转载 解析UML类图符号意义

http://developer.51cto.com/art/201006/205392.htm本节向大家简单介绍一下UML类图符号,每种符号都有不同的意义,希望通过本节的学习你对UML类图符号会有一定的了解,下面就让我们一起来看一下UML类图符号的详细介绍吧。UML类图符号软件工程1、泛化(继承)实线箭头表示继承一个基类B类继承A类2、实现UML类图符号中虚线

2012-11-07 15:36:56 1847

转载 IaaS SaaS和PaaS

IaaS: Infrastructure as a Service 基础设施即服务运营商提供给消费者所有的设施,包括处理,存储网络和其他基本的计算资源。消费者可以利用这些资源部署和运行任意软件(包括操作系统和应用程序),消费者不管理或者控制任何云计算基础设施,但是可以控制操作系统的选择,存储空间的划分,以及部署的应用,也可以获得有限制的网络组件(比如防火墙 负载均衡器等)的控制。P

2012-11-05 14:14:51 1076

原创 S5PV210 多媒体预留内存空间 4 - textscream, GPU1

textscream是为3D引擎预留的内存,在drivers/gpu/pvr/s3c_bc/s3c_bc.c使用预留内存空间。reserved size = ALIGN(fb0->var.xres * fb0->var.yres * fb0->var.bits_per_pixel, PAGE_ALIGN) * 2如果framebuffer的xres=800 yres=480

2012-10-31 18:17:44 2137

原创 Video resolution: 720 vs 704 区别

在做video AD视频转换时,碰到DVD输出的CVBS信号转换后,输出的原始图像宽度并不能充满整个屏幕720pixels,而是左右各有大概8pixels也就是只有704个pixels。这就涉及到DVD官方规定的合法resolutions,在这里也许不该叫resolutions,而是应该称之为"frame size"720x576 (480 NTSC),称为D1标准又称为"

2012-10-25 16:18:27 7642 1

原创 S5PV210 多媒体预留内存空间 3 - JPEG codec

JPEG codec 用来compresses original raw image以及decompresses original JPEG image。这个硬件电路执行compression/decompression需要的所有功能:离散余弦变换,量化和霍夫曼编码。编码功能:输入raw image: 格式为YCbCr4:2:2, RGB565输出的JPEG文件: Baseli

2012-10-25 11:05:35 1692

翻译 Baseline JPEG和Progressive JPEG的区别

JPEG文件格式有两种保存方式。他们是Baseline JPEG和Progressive JPEG. 两种格式有相同尺寸以及图像数据,他们的扩展名也是相同的,唯一的区别是二者显示的方式不同。Baseline JPEG这种类型的JPEG文件存储方式是按从上到下的扫描方式,把每一行顺序的保存在JPEG文件中。打开这个文件显示它的内容时,数据将按照存储时的顺序从上到下一行一行

2012-10-25 10:12:32 9143 3

翻译 Watchdog driver API

A Watch Timer(WDT)是一个硬件电路可以用来在系统软件发生错误的情况下reset计算机系统。通常来说一个用户空间的daemon通过特定设备/dev/watchdog,以一定的时间间隔来通知kernel的watchdog驱动系统仍然alive。驱动然后会通知硬件设备一切正常,硬件WDT电路更新reset系统重启的timeout时间。如果用户空间失败(RAM error, kerne

2012-10-18 11:06:55 7664

原创 S5PV210 多媒体预留内存空间 2 - FIMD和G2D控制器

FIMD FrameBufferS5PV210_VIDEO_SAMSUNG_MEMSIZE_FIMD是为framebuffer预留的物理内存空间,下面的公式是framebuffer预留空间大小 4 表明 LCD屏的像素位数,一般为32bit; CONFIG_FB_S3C_BUFFERS是framebuffer的数目; S5PV210_LCD_WIDTH和S5PV210_LCD_HEIG

2012-10-16 11:16:53 4582 2

原创 S5PV210 多媒体预留内存空间 1 - FIMC控制器

由于GPU 多媒体解码 camera输入以及overlay显示等操作需要大块的连续物理内存,S5PV210开发板在初始化的过程中,会为这些多媒体相关驱动预留内存,这些预留的物理内存不能再被系统的其他部件使用,因此调整这些预留空间使之既能满足项目的需求,同时把浪费部分最小化,有必要分析每一部分内存需求的计算公式。FIMC0, FMIC1, FIMC2预留空间计算在arch

2012-10-12 15:58:19 3549

原创 V4l2 capture时 USERPTR和MMAP的区别

视频应用可以通过两种方式从V4L2驱动申请buffer1. USERPTR, 顾名思义是用户空间指针的意思,应用层负责分配需要的内存空间,然后以指针的形式传递给V4L2驱动层,V4L2驱动会把capture的内容保存到指针所指的空间一般来说,应用层需要确保这个内存空间物理上是连续的(IPU处理单元的需求),在android系统可以通过PMEM驱动来分配大块的连续物理内存。应用层在不需要的时

2012-10-09 10:47:18 8177

原创 Linux kernel High memory

在32bit机器上,由于32bit地址空间的限制,最大寻址范围为2^32 - 1也就是4G的线性地址空间,linux 会按照3G/1G, 2G/2G, 1G/3G的分配方式,把这个4G的地址空间划分为两个部分所谓3G/1G就是3G应用空间 1G内核空间, 2G/2G就是2G的应用地址空间 2G的内核地址空间。我们这里只考虑3G/1G的情况,即只有1G的内核空间。linux 内核又对

2012-09-05 11:26:49 2676

翻译 V4L2 input/output方式

V4L2 API 定义了几种数据传输方式从video设备读写数据,驱动要和应用进行数据交换就必须支持其中的一种经典的I/O方法是打开V4L2 设备后就可以使用的read()和write()方法。驱动可以不支持read/write方式,此时read/write操作会返回错误。其他的I/O方法必须通过协商的方式执行;streaming I/O模式:应用在调用VIDIOC_REQBUFS时确定是

2012-08-30 17:03:09 5704

原创 S5PV210 FIMC capture S_FMT G_FMT处理方式

今天整理tw9912驱动,发现FIMC 在capture时,对S_FMT和G_FMT ioctl调用值得商榷,记录下来。当capture APP调用S_FMT时,会调用到FIMC capture驱动的fimc_s_fmt_vid_capture函数 814 int fimc_s_fmt_vid_capture(struct file *file, void *fh, struct v4

2012-08-21 17:23:59 3637 1

原创 S5PV210 Android Overlay系统(视频输出系统)分析

Overlay是Android经常看到的名字,我们可以理解为视频叠加,Overlay也可以理解为视频输出视频输出和视频叠加是密切相关的,一般来说,输出的视频背景是系统UI层,而视频输出是叠加到UI层上的。视频输出和系统UI一般使用独立的显存区,系统UI通过framebuffer显示;而视频输出在驱动层可以有两种实现方式:1. framebuffer方式,2. V4L2的output设备实现

2012-08-16 16:37:02 7640 7

原创 Android S5PV210 cameraHAL 录像功能分析

Camera系统进行视频录制的过程,涉及到camera driver,camera HAL,camera Service,camera Java 几层camera 录像功能一般是和preview功能同时进行的,samsung HAL的录像线程是借助preview线程来实现的,在这个线程中FIMC0获取preview使用的原始数据,同时FIMC2获取录像需要的原始数据,这里之所以使用两个FI

2012-07-27 18:01:52 4053 2

原创 Android S5PV210 camera S_INPUT实现

三星平台的capture设备节点是/dev/fimc0,但是平台可能存在多个摄像头,更特殊的情况是一个video ADC芯片外接多个模拟摄像头,这几天研究了下如何选择capture的摄像头,做个总结。先对摄像头做个分类,1. CMM CameraCompact Module 摄像头模组; 2. VIDEO ADC + 模拟摄像头视频源的选择是通过VIDIOC_S_INPUT来实

2012-07-26 17:26:57 5112 2

原创 V4L2 Video overlay, Video output, Video output overlay的区别

三者都是V4L2定义的接口,英文原文参见 http://v4l2spec.bytesex.org/spec-single/v4l2.html#OVERLAYVideo Overlay: Video overlay devices have the ability to genlock (TV-)video into the (VGA-)video signal of a graph

2012-07-17 15:43:01 8746 2

原创 Android S5PV210 创建的video设备

S5PV210会在/dev/下生成几个video相关的设备节点,分别为/dev/video0, /dev/video1, /dev/video2/dev/video14, /dev/video21, /dev/video22video0, video1, video2的作用是和Android camera/overlay HAL密切相关的,HAL层来决定这三个设备的具体作用,也

2012-07-13 10:54:24 5636 2

Google GFS 文件系统(英)

Google GFS开发者写的论文,描述了GFS设计理论

2012-11-09

A COMPACT GUIDE TO LEX & YACC

This document explains how to construct a compiler using lex and yacc.

2010-10-29

空空如也

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

TA关注的人

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