
多媒体技术
文章平均质量分 78
shenbin1430
本人只搞技术,不搞歪门邪道!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
WAV文件格式剖析
WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。WAVE文件各部分内容及格式见附表。 常见的声音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。采样率是指转载 2011-05-15 22:58:00 · 2763 阅读 · 0 评论 -
Cairo图形指南(1)
简介欢迎阅读 Cairo 绘图指南,这份指南会向你讲述 Cairo 二维矢量绘图库的基本知识以及一些高级问题。指南中的示例采用 C 语言实现,其中大部分使用了 GTK+ 库。二维矢量图形计算机图形可分为两类,矢量图形与光栅图形。光栅图形是将图像表示为像素点集。矢量图形则是使用一些几何图元(点、直线、曲线、多边形等)表示图像,这些图元是使用数学公式生成的。这两类计算机图形表达方式各有转载 2009-09-22 16:14:00 · 2167 阅读 · 0 评论 -
Cairo图形指南(7)
合成合成 (Compositing) 可以将一些单独的源 (source)所生成可视元素组合成到单幅图像中去,主要用于创建所有的可视元素作为同一场景的一部分这样一种假象。合成在电影工业中被广为使用,用于创建人群、不寻常的世界等画面,因为这样的画面在现实中的制作代价非常昂贵甚至难以实现。Cairo 图形库提供了 14 种不同的合成操作。#include #includ转载 2009-09-22 16:23:00 · 1940 阅读 · 1 评论 -
DirectFB和Cairo的嵌入式图形开发实践
引 言 DirectFB是一个提供硬件图形加速、输入设备处理抽象并集成了透明功能窗体系统和多显示层处理的开源库。通过对底层硬件不支持的图形操作以回调函数实现,DirectFB实现硬件设备的完全抽象。另外DirectFB在设计之初就充分考虑嵌入式系统的固有特性,体积小巧,资源消耗低。作为嵌入式系统中强大的图形处理库,DirectFB成为Linux下图形处理的一个新的标准(CE转载 2009-09-22 10:20:00 · 2254 阅读 · 0 评论 -
Cairo图形指南(5)
形状与填充这一部分,讲述一些基本的以及较为高级的形状绘制及其纯色 (solid color)、图案 (pattern) 与渐变 (gradient) 填充方法。基本形状Cairo 提供了几个用于绘制基本形状的函数。#include #include #include static gbooleanon_expose_event (GtkW转载 2009-09-22 16:20:00 · 3352 阅读 · 2 评论 -
显卡加速网页渲染
Firefox的锐意进取将给对手带来前所未见的压力,显卡加速网页浏览即将进入现实,而Firefox将无可争议成为最快的浏览器。微软将首当其冲面对这些压力,显然微软不会打算以IE 7.0应战,但IE 8.0似乎还没有将显卡加速渲染功能考虑在内,那么它就很难有效遏制Firefox3.0/4.0对市场的进一步蚕食。 有大量的网站只是针对IE设计,使用Fi转载 2009-09-18 14:03:00 · 2073 阅读 · 0 评论 -
媒体720p和1080p概念
720P是美国电影电视工程师协会(SMPTE)制定的高等级高清数字电视的格式标准,有效显示格式为:1280×720.SMPTE(美国电影电视工程协会)将数字高清信号数字电视扫描线的不同分为1080P、1080I、720P(i是interlace,隔行的意思,p是Progressive,逐行的意思)。720P是一种在逐行扫描下达到1280×720的分辨率的显示格式。是数字电影成像技术和计算机技术的融原创 2009-09-15 10:14:00 · 1508 阅读 · 0 评论 -
用 cairo 实现跨平台图形(用于产生一致输出的矢量绘图库)
cairo 的目标是以跨平台的方式在打印机和屏幕上产生相同的输出,它正在成为 Linux® 图形领域的重要软件。GNOME、GTK+、Pango 等许多软件已经使用了它提供的 2D 功能。 cairo 的优点和用途cairo是一个免费的矢量绘图软件库,它可以绘制多种输出格式。cairo 支持许多平台,包括 Linux、BSD、Microsoft® Windows®和转载 2009-09-11 11:22:00 · 2472 阅读 · 1 评论 -
Flash的编解码格式介绍
目前flash player 9+的普及率已经超过了94%,10也接近40%,所以我们这里讨论的flash对视频格式的支持情况也是针对flash 9+的。目前flash(9.0.115.0 +) 支持的视频编解码格式有:H.264, Sorenson H.263, 屏幕视频(仅限 SWF版本 7 和更高版本), VP6(仅限 SWF 版本 8 和更高版本), 带有 Alpha 通道的原创 2009-09-10 12:54:00 · 5940 阅读 · 2 评论 -
Cairo图形指南(3)
Cairo 后端Cairo 支持多种后端,本文基于几个示例讲述如何使用 Cairo 各种后端创建 PNG 图像、PDF 文件与 SVG 文件以及如何使用 Cairo 在 GTK 窗口中绘图。1. PNG 图像第一个示例 (example-1.c) 用于生成 PNG 图像。#include intmain (int argc, char *ar转载 2009-09-22 16:18:00 · 3879 阅读 · 0 评论 -
Cairo图形指南(6)
透明这一篇讲述有关透明的一些基本知识,并提供两个有趣的透明效果。透明是透过某种材质的可见度。理解透明最简单的方式就是想像一下玻璃或者水。从技术上讲,光线可以穿过玻璃,因此我们可以看到玻璃之后的物体。在计算机图形学中,可以使用alpha 混合方式来实现透明效果。Alpha 混合,是通过将图像与背景组合实现部分透明的视觉效果。混合过程中使用了一种叫做 alpha 通道的东西。Al转载 2009-09-22 16:21:00 · 1973 阅读 · 0 评论 -
Sprite in computer graphics
In computer graphics, a sprite (also known by other names; see Synonyms below) is a two-dimensional/three-dimensional image or animation that is integrated into a larger scene.Sprites were转载 2009-09-23 18:00:00 · 1712 阅读 · 0 评论 -
camera isp
<br />1. 目标[52RD.com]<br />手机摄像头模组用ISP功能模块的市场走向及研发方向。为能够正确认识手机摄像模组行业提供技术及市场依据。[52RD.com]<br />2. ISP在模组上的应用原理[52RD.com]<br />2.1 功能区域[52RD.com]<br />无论数码相机、摄像机或者摄像手机,其影像数据从前端感应后,皆须经过ASP(Analog SignalProcessing)、ADC(Analog-DigitalConverter)、前期影像转载 2010-12-09 14:17:00 · 20953 阅读 · 0 评论 -
用gstreamer实现照相机功能
<br />Camera的主要功能是照相和录像,利用gstreamer,我们可以使Camera的实现更加简单。<br />1、照相照相的实现一般有两种方法:<br />第一种需要创建两个管道,分别用来预览和照相,<br />预览管道:pipeline = gst_parse_launch("v4lsrc name=src ! xvimagesink name=display", &error);<br /><br />照相管道:photobin = gst_parse_l原创 2010-07-02 09:19:00 · 9579 阅读 · 6 评论 -
数字电视中的编解码器同步机制
<br /><br />1、MPEG-2码流结构<br /> 在数字电视系统中,模拟视音频信号按照MPEG-2的标准,经过抽样、量化及压缩编码形成基本码流ES,基本码流ES是不分段的连续码流。把基本码流分割成段,并加上相应的头文件打包形成的打包基本码流PES(如图1所示),PES包和包之间可以是不连续的。在传输时将PES包再分段打成有固定长度188B的传送码流TS或可变长度的节目流包(PS包)。PES只是PS转换为TS或TS转换为PS的中间步骤或桥梁,时MPEG-2数据流互换的逻辑结转载 2010-07-02 09:38:00 · 2035 阅读 · 0 评论 -
用gstreamer抓取视频的缩略图
<br />通过构建不同的gstreamer管道,可以有多种方法来抓取视频文件中的缩略图,以下作一简单介绍。<br />1、从gdkpixbufsink中获取图像该方法通过gdkpixbufsink的"last-pixbuf"来获取图像的pixbuf。 descr = g_strdup_printf ("uridecodebin uri=%s ! ffmpegcolorspace ! videoscale ! gdkpixbufsink name=sink", fileurl)原创 2010-06-30 16:42:00 · 7788 阅读 · 10 评论 -
V4L2操作与常见结构
一般操作流程(视频设备): 1. 打开设备文件。 int fd=open("/dev/video0",O_RDWR); 2. 取得设备的capability,看看设备具有什么功能,比如是否具有视频输入,或者音频输入输出等。VIDIOC_QUERYCAP,struct v4l2_capability 3. 选择视频输入,一个视频设备可以有多个视频输入。VIDIOC_S_INPU转载 2009-12-02 15:47:00 · 4159 阅读 · 1 评论 -
颜色空间转换(YUV,RGB)
计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色彩空间表示方法)。根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。F转载 2009-11-19 16:15:00 · 4781 阅读 · 0 评论 -
Linux下ALSA声卡编程
一. 介绍 ALSA 标准是一个先进的linux声音体系。它包含内核驱动集合,API库和工具对Linux声音进行支持。ALSA 包含一系列内核驱动对不同的声卡进行支持,还提供了libasound的API库。用这些进行写程序不需要打开设备等操作,所以编程人员在写程序的时候不会被底层的东西困扰。与此相反OSS/Fre转载 2009-10-21 13:48:00 · 2538 阅读 · 3 评论 -
De-interlace 反交错 简介
<!-- document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text");转载 2009-10-19 10:07:00 · 3815 阅读 · 2 评论 -
video4linux sink详解
V4L在嵌入式设备上应用广泛,他对硬件进行加速,而不经过X的管理,提高系统的性能。 1、Video4Linux介绍 Video4Linux从1997年开始引进,它基于一个统一的接口,并用于视频的获取驱动。因此它通常被认为是一个视频获取的框架,通常应用于照相机、电视调谐器、甚至是收音机。 主要针对片上芯片的多媒体设计。 2、Video4Linux应用于原创 2009-09-04 14:04:00 · 2667 阅读 · 0 评论 -
ximagesink与xvimagesink和v4lsink的区别
首先介绍一下Gstreamer支持的几种video sink,v4lsink, v4l2sink:video for linux的输出ximagesink:使用XWindow输出,基本都支持xvimagesink:使用XVideo extension输出,在ubuntu下要装一大堆库才支持sdlvideosink:使用sdl库输出,需要装sdl库dfbvideosink:用原创 2009-09-03 17:27:00 · 10385 阅读 · 0 评论 -
EGL接口介绍
EGL是OpenGL ES和底层Native平台视窗系统之间的接口。本章主要讲述OpenGL ES的EGL API,以及如何用它创建Context和绘制Surface等,并对用于OpenGL的其他视窗API做了比较分析,比如WGL和GLX。本章中将涵盖如下几个方面:原创 2009-06-29 13:08:00 · 2399 阅读 · 0 评论 -
FFPLAY的原理(二)
关于包Packets的注释从技术上讲一个包可以包含部分或者其它的数据,但是ffmpeg的解释器保证了我们得到的包Packets包含的要么是完整的要么是多种完整的帧。现在我们需要做的是让SaveFrame函数能把RGB信息定稿到一个PPM格式的文件中。我们将生成一个简单的PPM格式文件,请相信,它是可以工作的。void SaveFrame(AVFrame *pFrame, i转载 2009-06-23 15:53:00 · 3016 阅读 · 0 评论 -
FFPLAY的原理(一)
概要电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元素)。在流中的数据元素被称为帧Frame。每个流是由不同的编码器来编码生成的。编解码器转载 2009-06-23 15:51:00 · 4012 阅读 · 2 评论 -
基于libmad 的简单MP3流媒体播放器的实现
1.介绍 本文在 Fedora 5 Linux 下实现了一个基于 libmad 的 MP3 流媒体播放器。此流媒体播放器可以播放基于 HTTP 1.1 协议传输的 MP3 流媒体数据。 基本原理是:从 HTTP 服务器获得 MP3 媒体信息,然后通过网络传输把 MP3 数据以数据流的形式接收到 MP3流媒体播放器客户端,由客户端通过 libmad 解码 MP3 数据流,得转载 2009-08-12 15:53:00 · 1428 阅读 · 0 评论 -
视频解码优化
以下通过剖析一些经验来了解视频解码优化1 在嵌入式系统中实现MPEG4的视频解码有两种方法可行(1)采用ffmpeg(mplayer 的核心就是采用ffmpeg),然后对ffmpeg mp4解码优化1)对IDCT汇编化,并优化VLD的实现 ->inline&汇编化2)根据ARM9 cache & cache line的大小做MB的分组,使得每次可以同时处理多个MB转载 2009-08-11 13:59:00 · 936 阅读 · 0 评论 -
MPlayer编解码开发指导
一、介绍 不论是音频数据还是视频数据,我都为MPlayer项目开发过一些开源的解码器。因此我个人认为我有资格写一篇文档来介绍如何开发新的编解码器。 学习如何添加一个新的编解码器的最好方法通常是学习大量的已有代码。本文档仅仅是对代码的一个补充,给出一些技巧、关键点和一般的路线图。 术语介绍:“Codec"表示编码器/解码器(如果你愿意,也可以称为压缩器/解压缩器),它表翻译 2009-07-24 15:03:00 · 5254 阅读 · 2 评论 -
用 GStreamer 简化 Linux 多媒体开发
一、基本概念 GStreamer 作为 GNOME 桌面环境推荐的流媒体应用框架,采用了基于插件(plugin)和管道(pipeline)的体系结构,框架中的所有的功能模块都被实现成可以插拔的组件(component),并且在需要的时候能够很方便地安装到任意一个管道上,由于所有插件都通过管道机制进行统一的数据交换,因此很容易利用已有的各种插件“组装”出一个功能完转载 2009-07-24 09:49:00 · 1456 阅读 · 0 评论 -
使用 GStreamer 进行多用途的多媒体处理
使用 GStreamer 进行多用途的多媒体处理适用于多种需求的通用解决方案本文向您介绍 GStreamer,它是一种通用的多媒体处理库,可以使得多媒体处理更加容易。多媒体,依照其定义,表示各种各样的媒体类型。您可以各种格式存储音频、视频和元数据。然而,这也就意味着要使用许多工具来处理这些不同的内容。 GStreamer 可以为您提供帮助。通过将所有不同的工具和库隐藏到转载 2009-07-24 09:43:00 · 2085 阅读 · 0 评论 -
Gstreamer调度模式的分析
Gstreamer的调度模式是gstreamer 内核中比较重要,但是又较为复杂的部分(呵呵,好象是废话,但是又不得不说的)。简单地说,Gstreamer的调度模式就是:一种确定一个element何时被调用为它的同伴element处理和准备数据的方法。是不是觉得上面的话太简单又太复杂了啊?继续看。一.Gstreamer转载 2009-07-24 09:48:00 · 1204 阅读 · 0 评论 -
FFPLAY的原理(五)
创建线程Spawning ThreadsOverviewLast time we added audio support by taking advantage of SDLs audiofunctions. SDL started a thread that made callbacks to a function wedefined every time it n转载 2009-06-23 15:56:00 · 2847 阅读 · 0 评论 -
FFPLAY的原理(六)
显示视频这就是我们的视频线程。现在我们看过了几乎所有的线程除了一个--记得我们调用schedule_refresh()函数吗?让我们看一下实际中是如何做的:static void schedule_refresh(VideoState *is, int delay) {SDL_AddTimer(delay, sdl_refresh_timer_cb, is);}转载 2009-06-23 15:57:00 · 4966 阅读 · 0 评论 -
FFPLAY的原理(七)
同步音频现在我们已经有了一个比较像样的播放器。所以让我们看一下还有哪些零碎的东西没处理。上次,我们掩饰了一点同步问题,也就是同步音频到视频而不是其它的同步方式。我们将采用和视频一样的方式:做一个内部视频时钟来记录视频线程播放了多久,然后同步音频到上面去。后面我们也来看一下如何推而广之把音频和视频都同步到外部时钟。生成一个视频时钟转载 2009-06-23 15:59:00 · 4605 阅读 · 3 评论 -
WPF全景体验
2007年1月30日,Windows Vista正式全球同步发布。此举标志着Windows Vista已经旋风般地吹向了整个网络世界。比尔盖茨预言:只需要三分钟时间就能让用户接受Windows Vista。但是,微软如何才能做到这一点呢?其中最关键的一点就是Windows Presentation Foundation(WPF),她依赖于WPF所带来的震撼视觉效转载 2009-06-30 10:39:00 · 1030 阅读 · 0 评论 -
Advanced GStreamer concepts
In this part we will cover the more advanced features of GStreamer.With the basics you learned in theprevious part you should be able to create a simple application. However, GStreamer provides much转载 2009-09-02 11:23:00 · 1981 阅读 · 0 评论 -
基于OpenGL ES的3D图形绘制管线优化问题
莫 军 陈雷霆 《计算机应用研究》 2007年第01期 摘要:目前,在嵌入式设备上(如手机)的3D游戏开发总是基于一定的图形API来进行的。OpenGLES是为嵌入式系统而开发的3D图形绘制编程接口。在基于嵌入式的3D游戏开发过程中,由于硬件资源的相对不足,要得到绘制效果较理想的图形,就需要优化3D图形绘制过程。采用最新的图形管线理论,将OpenGLES的3D图形管线绘制转载 2009-06-29 13:20:00 · 2294 阅读 · 0 评论 -
Gstreamer的一些基本概念与A/V同步分析
一、媒体流(streams)流线程中包含事件和缓存如下: -events -NEW_SEGMENT (NS) -EOS (EOS) * -TAG (T) -buffers (B) *其中标*号的需要同时钟进行同步。典型的流如图1所示原创 2009-06-23 16:02:00 · 14964 阅读 · 5 评论 -
FFPLAY的原理(四)
意外情况你们将会注意到我们有一个全局变量quit,我们用它来保证还没有设置程序退出的信号(SDL会自动处理TERM类似的信号)。否则,这个线程将不停地运行直到我们使用kill -9来结束程序。FFMPEG同样也提供了一个函数来进行回调并检查我们是否需要退出一些被阻塞的函数:这个函数就是url_set_interrupt_cb。int decode_interrupt_cb(转载 2009-06-23 15:55:00 · 2487 阅读 · 0 评论 -
FFPLAY的原理(三)
播放声音现在我们要来播放声音。SDL也为我们准备了输出声音的方法。函数SDL_OpenAudio()本身就是用来打开声音设备的。它使用一个叫做SDL_AudioSpec结构体作为参数,这个结构体中包含了我们将要输出的音频的所有信息。在我们展示如何建立之前,让我们先解释一下电脑是如何处理音频的。数字音频是由一长串的样本流组成的。每个样本表示声音波形中的一个值。声音按照一个特定的采转载 2009-06-23 15:54:00 · 3578 阅读 · 1 评论