`
啸笑天
  • 浏览: 3461100 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

多媒体的一些基础概念

 
阅读更多

音频采样

大自然中的声音,他的形态是一种波。我们通过采样,将这种波量化成数据,记录下来,如下图所示:



 

 

如上图所示,采样的数据并不能完整的还原出原来的波形,只能做到尽量接近原波形。并且采样率(采样的次数)越高,波形越接近原波形。不过采样的次数增多,必然会导致存储的数据量要增加,所以我们不可能无限提升采样率。经过长期的研究人们发现,当采样率等于波形中最高频率的2倍时,已经足够将波形还原到可接受的程度了。这个频率称为奈奎斯特频率。人耳能接受的最高频率为20kHz,所以只要采样率超过40kHz,就可以呈现出可接受的声音。目前常见的CD采样率为44.1kHz。

除了采样率之外,音频采样还有一个重要参数叫做音频的位元深度。表示用多少位(bit)定义线性维度上的离散度来保存一个音频样本。位数越高,离散度越多,表示的声音越精确(音质越好)。一般来说16bit比较常见,可以表示65536个离散度。

一个音频文件的体积,有如下算法:体积=采样率*位元深度*音道数*时间

音频压缩

对声音进行采样、量化过程被称为脉冲编码调制(Pulse Code Modulation),直接脉冲编码调制(Linear Pulse Code Modulation)产生的数据称为Linear PCM数据,LPCM数据是最原始的音频数据完全无损,但是他的体积非常大,比如一个44.1kHz,16bit,双音道的音频文件,每分钟的数据量为44.1*16*2*60kbit=10.3M。一个普通5分钟的音乐就得50M,这个数据量对普通用户来说是过于庞大的。

为了解决这个问题,诞生了一系列的压缩算法,其中主要分为有无损压缩(ALAC、APE、FLAC)和有损压缩(MP3、AAC、OGG、WMA)两种。其具体的压缩算法对应到AVFoundation的CoreAudioTypes.h中有:

CF_ENUM(AudioFormatID)
{
    kAudioFormatLinearPCM               = 'lpcm',
    kAudioFormatAC3                     = 'ac-3',
    kAudioFormat60958AC3                = 'cac3',
    kAudioFormatAppleIMA4               = 'ima4',
    kAudioFormatMPEG4AAC                = 'aac ',
    kAudioFormatMPEG4CELP               = 'celp',
    kAudioFormatMPEG4HVXC               = 'hvxc',
    kAudioFormatMPEG4TwinVQ             = 'twvq',
    kAudioFormatMACE3                   = 'MAC3',
    kAudioFormatMACE6                   = 'MAC6',
    kAudioFormatULaw                    = 'ulaw',
    kAudioFormatALaw                    = 'alaw',
    kAudioFormatQDesign                 = 'QDMC',
    kAudioFormatQDesign2                = 'QDM2',
    kAudioFormatQUALCOMM                = 'Qclp',
    kAudioFormatMPEGLayer1              = '.mp1',
    kAudioFormatMPEGLayer2              = '.mp2',
    kAudioFormatMPEGLayer3              = '.mp3',
    kAudioFormatTimeCode                = 'time',
    kAudioFormatMIDIStream              = 'midi',
    kAudioFormatParameterValueStream    = 'apvs',
    kAudioFormatAppleLossless           = 'alac',
    kAudioFormatMPEG4AAC_HE             = 'aach',
    kAudioFormatMPEG4AAC_LD             = 'aacl',
    kAudioFormatMPEG4AAC_ELD            = 'aace',
    kAudioFormatMPEG4AAC_ELD_SBR        = 'aacf',
    kAudioFormatMPEG4AAC_ELD_V2         = 'aacg',    
    kAudioFormatMPEG4AAC_HE_V2          = 'aacp',
    kAudioFormatMPEG4AAC_Spatial        = 'aacs',
    kAudioFormatAMR                     = 'samr',
    kAudioFormatAMR_WB                  = 'sawb',
    kAudioFormatAudible                 = 'AUDB',
    kAudioFormatiLBC                    = 'ilbc',
    kAudioFormatDVIIntelIMA             = 0x6D730011,
    kAudioFormatMicrosoftGSM            = 0x6D730031,
    kAudioFormatAES3                    = 'aes3',
    kAudioFormatEnhancedAC3             = 'ec-3'
};

色彩二次抽样

经过大量的研究表明,人的眼睛对亮度非常敏感,但是对色彩信息比较迟钝。色彩二次抽样是指在原有的图片样本中,二次抽样,减少对色彩信息的抽样,而达到减小图片体积(样本数减小),又不怎么影响图片质量(眼睛对色彩不敏感)的效果。

视频数据使用的是YCbCr的颜色模型,YCbCr也称为YUV。其中Y表示亮度分量,Cb表示蓝色分量,Cr表示红色分量。
常用的YCbCr有4:4:4、4:2:2、4:2:0、4:1:1。

  1. 4:4:4 亮度和色彩信息的比值为1:1,所有色彩信息都会被抽样,也就是全彩。
  2. 4:2:2 亮度和色彩信息的比值为2:1,只有1/2的色彩信息被抽样
  3. 4:2:0和4:1:1 亮度和色彩信息比值为4:1,只有1/4的色彩信息被抽样

对应到AVFoundation的CVImageBuffer.h中有:

CV_EXPORT const CFStringRef CV_NONNULL kCVImageBufferChromaSubsamplingKey __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_4_0);        // CFString/CFNumber with one of the following values
CV_EXPORT const CFStringRef CV_NONNULL kCVImageBufferChromaSubsampling_420 __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_4_0);
CV_EXPORT const CFStringRef CV_NONNULL kCVImageBufferChromaSubsampling_422 __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_4_0);
CV_EXPORT const CFStringRef CV_NONNULL kCVImageBufferChromaSubsampling_411 __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_4_0);

一些特别专业的相机可能会用到4:4:4参数捕捉图片,大部分情况下会用4:2:2参数,普通的摄像头(如:iPhone摄像头)一般都是4:2:0、4:1:1

H.264

跟音频文件相比,视频文件体积更大。我们平时使用的视频文件都是经过压缩处理的。大部分音视频都使用编解码器(codec)来进行压缩和解压,iOS中使用的主要编解码器标准为H.264,H.264对应AVFoundation的AVVideoSettings.h中:

AVF_EXPORT NSString *const AVVideoCodecKey /* NSString (CMVideoCodecType) */                NS_AVAILABLE(10_7, 4_0);
    AVF_EXPORT NSString *const AVVideoCodecH264 /* @"avc1" */                                NS_AVAILABLE(10_7, 4_0);

H.264通过空间和时间2个维度来压缩体积:

  1. 空间:空间上的压缩独立于视频帧,也称为帧内压缩。主要通过压缩图片的方式(如色彩二次抽样等)来减小体积,帧内压缩一般为有损压缩
  2. 时间:时间上的压缩也称为帧间压缩。视频是由连续的帧(图片)组成。一段视频中(很多张图片)有很多不变的冗余元素,通过减小这些冗余元素来达到压缩的目的,这就是帧间压缩,帧间压缩一般为无损压缩

H.264有3种profile,用于确定编码过程中帧间压缩使用的算法:

  1. BaseLine:这个标准提供了最低效的压缩,经过这个标准压缩后的文件体积任然比较大,但是这种算法计算强度最小
  2. Main:这个标准的计算强度比BaseLine大,但是能达到更高的压缩效果
  3. High:这个标准能达到最高质量的压缩效果,但他的压缩算法最复杂

H.264除了profile还有一个等级(Level)标准,Level是对自身特性的一些描述(码率,分辨率,fps等),Level越高,视频的码率、分辨率、fps越高。

对应AVfoundation的AVVideoSettings.h中:

AVF_EXPORT NSString *const AVVideoProfileLevelKey /* NSString, H.264 only, one of: */                    NS_AVAILABLE(10_8, 4_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264Baseline30 /* Baseline Profile Level 3.0 */        NS_AVAILABLE(10_8, 4_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264Baseline31 /* Baseline Profile Level 3.1 */        NS_AVAILABLE(10_8, 4_0);
       AVF_EXPORT NSString *const AVVideoProfileLevelH264Baseline41 /* Baseline Profile Level 4.1 */        NS_AVAILABLE(10_8, 5_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264BaselineAutoLevel /* Baseline Profile Auto Level */ NS_AVAILABLE(10_9, 7_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264Main30 /* Main Profile Level 3.0 */                NS_AVAILABLE(10_8, 4_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264Main31 /* Main Profile Level 3.1 */                NS_AVAILABLE(10_8, 4_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264Main32 /* Main Profile Level 3.2 */                NS_AVAILABLE(10_8, 5_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264Main41 /* Main Profile Level 4.1 */                NS_AVAILABLE(10_8, 5_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264MainAutoLevel /* Main Profile Auto Level */        NS_AVAILABLE(10_9, 7_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264High40 /* High Profile Level 4.0 */                NS_AVAILABLE(10_9, 6_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264High41 /* High Profile Level 4.1 */                NS_AVAILABLE(10_9, 6_0);
    AVF_EXPORT NSString *const AVVideoProfileLevelH264HighAutoLevel /* High Profile Auto Level */        NS_AVAILABLE(10_9, 7_0);

一些移动设备(手机、游戏机、PMP)由于性能有限,不支持全部高级视频压缩特性和高分辨率图像,只支持基础压缩特性和分辨率低一些的图像。

视频码率(bitRate)

码率是指单位时间内传输的数据位数。视频体积=视频码率*时间,由此可见固定长度的视频,码率是决定大小的唯一因素。视频码率决定着视频的压缩效果,也决定了视频是质量。码率越高,质量越好,体积越大。码率越低,体积越小,视频质量也越差。
编码时,根据码率可以分为固定码率(CBR)编码和可变码率(VBR)编码。

  1. 固定码率:指编码器输出的码率一直为一个固定值,这种编码方式计算量小,编码速度快,但是编码效果不怎么好。对于画面变化大的视频片段,由于码率限制,导致视频非常模糊,然而对于画面变化小的片段,却会造成码率浪费。
  2. 可变码率:指编码器的输出码率可以根据编码器的输入源信号的复杂度自适应的调整,这种方式编码效果比较好

码率对应于AVFoundation中AVVideoSettings.h

AVF_EXPORT NSString *const AVVideoAverageBitRateKey /* NSNumber (bits per second, H.264 only) */         NS_AVAILABLE(10_7, 4_0);

 

iOS音频播放 (一):概述
H.264中profile和level
音频的位元深度
奈奎斯特频率

AVFoundation(一):基础知识


 

 

 

  • 大小: 25.4 KB
  • 大小: 24.5 KB
分享到:
评论
1 楼 啸笑天 2016-11-02  
AVFoundation的介绍
http://blog.csdn.net/Smiling8866/article/details/51707820

相关推荐

    多媒体技术基础及应用试题

    本试题集旨在测试和提升读者在多媒体技术基础及应用方面的知识和技能。 一、多媒体技术基础 1. **多媒体元素**:多媒体技术的核心组成部分包括文本、图形、图像(静态和动态)、音频、视频和动画。了解每种元素的...

    多媒体技术基础及应用

    "多媒体技术基础及应用" 多媒体技术是融合两种或者两种以上媒体的一种人-机交互式信息交流和传播媒体,使用的媒体包括文字、图形、图像、声音、动画和电视图像(video)的。多媒体是超媒体系统中的一个子集,超媒体...

    多媒体技术基础及应用(钟玉琢)习题解答

    在学习多媒体技术基础及应用的过程中,理解这些基本概念和技术是至关重要的,它们构成了多媒体系统的基础,并且持续推动着信息技术的发展,带来了更加丰富和互动的用户体验。通过习题解答,学生可以深入理解并掌握...

    多媒体技术基本概念.pptx

    多媒体计算机系统是实现多媒体技术的基础,它通常由专门设计的硬件和软件组成。这些系统可能包括高性能的CPU、大容量内存、高速CD-ROM或DVD驱动器、声卡、图形卡以及支持多媒体的系统软件。随着时间的发展,MPC...

    多媒体应用基础 ppt

    1. 理解多媒体计算机的概念及其技术特征。 2. 了解多媒体技术在不同领域的应用,如教育、娱乐、商业等。 3. 掌握使用扫描仪的注意事项,如正确的扫描技巧和设备维护。 4. 实践图像采集,尝试扫描并编辑奥运相关的...

    多媒体技术基础 无损压缩

    在标签中,“多媒体技术基础”再次强调了这是针对初学者的基础教程,可能会涵盖数据压缩的基本概念,如压缩比、信源编码、信道编码等。“无损压缩”则意味着教材会详细讲解如何实现数据压缩的同时保持数据完整性。 ...

    《多媒体技术基础》电子教案

    《多媒体技术基础》电子教案是一份详实的教学资源,涵盖了多媒体技术的基础理论和实践应用,旨在帮助学习者理解和掌握多媒体领域的核心概念和技术。教程共分为8个章节,内容丰富,全面解析了多媒体技术的各个方面。 ...

    多媒体技术基础 电子教案 第一张

    《多媒体技术基础》电子教案的第一张内容主要涵盖了多媒体技术的基础概念、媒体的分类、多媒体的特点、多媒体计算机系统组成以及多媒体技术的发展。以下是详细的知识点解析: 1. **媒体的定义与分类**: - 传统...

    多媒体技术基础 绝对啊好哦用

    以上是多媒体技术基础的一些关键点,这些技术和概念构成了多媒体技术的基础框架,并不断推动着信息技术领域的创新和发展。在njdown150906p这个文件中,可能包含了多媒体技术相关的教程、软件、案例或数据,对于学习...

    多媒体技术基础及应用-钟玉琢-目录

    本书不仅涵盖了多媒体技术的基本概念和发展历程,还详细探讨了多媒体信息的获取、处理、压缩、传输以及应用系统设计等方面。 #### 多媒体信息获取与处理 多媒体信息的获取与处理是多媒体技术的核心环节之一。首先...

    多媒体技术基础电子课件

    总的来说,多媒体技术基础涵盖了从基本概念到实际应用的各个方面,帮助初学者理解多媒体在计算机中的工作原理和实际应用。通过学习,可以掌握如何利用计算机处理和创作丰富的多媒体内容,提升数字时代的信息处理能力...

    多媒体通信技术基础(第二版)

    《多媒体通信技术基础(第二版)》是一门深入探讨多媒体数据如何在通信系统中传输的课程,对于理解和应用现代通信技术至关重要。多媒体通信涉及到多个领域,包括计算机科学、电子工程和信息处理,它旨在高效、高质量...

    多媒体应用基础(第4版).7z

    《多媒体应用基础(第4版)》是一本深入探讨多媒体技术及其应用的教材,适合初学者和有一定基础的学习者。7z格式的压缩文件包含了该教材的全部内容,旨在为学习者提供一个全面、系统的多媒体知识框架。标签“课件”...

    多媒体技术基础及应用答案

    多媒体技术基础及应用 多媒体技术基础及应用是指利用计算机技术将...多媒体技术基础及应用课程习题解答涵盖了多媒体技术的基础概念、多媒体核心软件、多媒体计算机的关键技术、多媒体技术的应用领域等方面的知识点。

    多媒体计算基础(课件)

    多媒体计算基础是计算机科学与电信领域的一个重要组成部分,它涵盖了图像、声音、视频等多种类型的数据处理和交互技术。本课程的目的是系统性地介绍多媒体技术的基本概念、原理及其应用,帮助计算机专业和电信专业的...

Global site tag (gtag.js) - Google Analytics