视频音频与声音的组织保存
来源:互联网 发布:mac印象笔记导出pdf 编辑:程序博客网 时间:2024/04/28 10:07
视频格式RGB与YUV的转换
计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R、G、B相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示(它也是多媒体计算机技术中用得最多的一种色 彩空间表示方法)。
根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。
F = r [ R ] + g [ G ] + b [ B ]
其中,r、g、b分别为三基色参与混合的系数。当三基色分量都为0(最弱)时混合为黑色光;而当三基色分量都为k(最强)时混合为白色光。调整r、g、b三个系数的值,可以混合出介于黑色光和白色光之间的各种各样的色光。
RGB对所有色彩都用等长像素点的R、G、B三色加以合成,这就使得每个像素在三种成分拥有相同的像素深度和显示分辨率。而且,处理RGB色彩空间的图像也不是最有效的。
通常采用三管彩色摄像机或彩色CCD摄像机进行摄像,然后把摄得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送 出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。
采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号。
RGB到YUV转换公式:
Y= 0.3*R + 0.59*G + 0.11*B
U= (B-Y) * 0.493
V= (R-Y) * 0.877
同样反过来,YUV转换成RGB的公式如下:
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U
以320*240的一帧为例
每个像素点有三个字节组成分别表示R,G,B分量上的颜色值。在数据中的表示方式为一个像素 一个像素表示。字节流可以为:
BGRBGRBGRBGRBGR……
|---------------320*240*3-------|
每一个字母表示一个字节,也就是该颜色分量的数值,相邻的三个BGR字节表示一个像素点。在我们做计算时,通常一次取三个字节,也就是一个像素点。
每个像素点都有一个Y分量,每隔一列就有一个U或者V分量,U和V交替出现。YV12的字节流表示方式和RGB24有很大区别,YV12并不是按照像素依次排列的,而是先放置Y空间,然后放置整个V空间,最后放置U空间,那么字节流如下所示:
YYYYYYY……VVVV……UUUU……
|-----320*240----|-320*240/4-|-320*240/4-|
在320*240个字节的Y后,紧跟着320*240/4个V和320*240/4个U。
YV12和RGB24同样都有320*240个像素点,但是在数据结构和字节流上有着很大区别。单纯从数据大小来看,RGB24的数据大小为320*240*3Bytes,而YV12为320*240*1.5Bytes,可见YV12的数据量为RGB24的一半。
音频格式
WAV音频格式未经过压缩,所以在音质方面不会出现失真的情况,但档案的体积因而在众多音频格式中较为大。该格式支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率,16位量化数字,因此在声音文件质量和CD相差无几!每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。
声音格式
常见的声音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值)。采样率是指:声音信号在“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。 对于单声道声音文件,采样数据为八位的短整数(short int 00H-FFH);而对于双声道立体声声音文件,每次采样数据为一个16位的整数(int),高八位和低八位分别代表左右两个声道。
WAVE文件数据块包含以脉冲编码调制(PCM)格式表示的样本。WAVE文件是由样本组织而成的。在单声道WAVE文件中,声道0代表左声道,声道1代表右声道。在多声道WAVE文件中,样本是交替出现的。
PCM数据的存放方式: 样本1样本2
8位单声道 0声道 0声道
8位立体声 0声道(左) 1声道(右) 0声道(左) 1声道(右) 16位单声道 0声道低字节 0声道高字节 0声道低字节 0声道高字节
16位立体声 0声道(左)低字节 0声道(左)高字节 1声道(右)低字节 1声道(右) 高字节
- 视频音频与声音的组织保存
- HTML5音频与视频实例(带声音的导航、视频与canvas结合、自制播放器)
- 采用FFmpeg从视频中提取音频(声音)保存为mp3文件
- 采用FFmpeg从视频中提取音频(声音)保存为mp3文件
- HTML5的视频与音频
- FFmpeg解析视频里面的音频aac保存
- Html5 音频与视频
- HTML5音频与视频
- ffmpeg处理视频与声音
- MediaRecoder分别获取音频、视频保存本地
- Python 播放声音 音频与beep
- 视频的读取与保存opencv
- 音频、视频的格式
- 音频的实现音乐声音的实现
- 获取音频的专辑图与视频的缩略图
- iOS获取音频的专辑图与视频的缩略图
- iOS获取音频的专辑图与视频的缩略图
- 可视门禁音频模块的代码组织
- 图解GitHub和SourceTree入门教程
- 浅谈计算机网络体系结构
- 静态库与动态库
- 1068. Find More Coins (30)
- 反射-Field
- 视频音频与声音的组织保存
- html和jsp中路径写法不一样
- 如何在Eclipse中执行SQL语句?
- 用C#来学习唐诗三百首和全唐诗
- ROC曲线
- java实现文件拷贝
- Java进阶--对象导论
- git 错误 使用rror: failed to push some refs
- ZOJ