全部科目 > 多媒体应用设计师 >
2017年上半年 上午试卷 综合知识
第 26 题
知识点 量化   脉冲编码调制   信号   信号量   噪声  
关键词 数字化   信号量   噪声   信号  
章/节 多媒体音频的处理与编辑  
 
 
信号数字化的量化精度提高2位会使得信号量化噪声比(SQNR) (26)。
 
  A.  提高约12dB
 
  B.  提高256倍
 
  C.  降低约12dB
 
  D.  降低256倍
 
 




 
 
 
知识点讲解
· 量化
· 脉冲编码调制
· 信号
· 信号量
· 噪声
 
        量化
        经过FDCT变换后的系数,其数值变化较多,不利于编码。为了将系数数值映射到更小的取值范围,可以使用量化(quantisation)实现。通过量化可以减小非0系数的幅度和增加0值系数的数目。当然,量化也是导致图像质量下降的主要原因。
        JPEG的有损压缩算法使用均匀标量量化器进行量化,量化步距是按照系数所在的位置和每种颜色分量的色调值确定的。
        由于人眼对亮度信号比对色差信号更敏感,因此JPEG编码中使用了亮度量化表和色差量化表两种标准的量化表,参见下1表和下2表。此外,由于人眼对低频分量的图像比对高频分量的图像更敏感,因此表中的左上角的量化步距要比右下角的量化步距小。
        
        亮度量化值表
        
        色差量化值表
        量化的具体计算公式如下。
        
        其中,Squ,v)为量化后的结果,Fuv)为FDCT系数,Quv)为量化表中的数值,round为舍入取整函数。
 
        脉冲编码调制
        PCM脉冲编码调制是对连续语音信号进行空间采样、幅度值量化及用适当码字将其编码的总称,即它把连续输入的模拟信号变换为在时域和振幅上都离散的量,然后将其转化为代码形式传输或存储,其原理框图如下图所示。在下图中,输入是模拟声音信号,输出是PCM样本。下图中的防失真滤波器是一个低通滤波器,用来滤除声音频带以外的信号;波形编码器可暂时理解为采样器;量化器可理解为量化阶大小(step-size)生成器或者量化间隔生成器。
        
        PCM脉冲编码调制原理
        PCM方法可以按量化方式的不同分为均匀量化、非均匀量化和自适应量化等。
        ①均匀量化。
        采用相等的量化间隔对采样得到的信号进行量化称为均匀量化,也称线性量化。均匀量化将输入的声音信号的振幅范围分成2B个等份(B为量化的二进制位数),所有落入同一等份数的采样值都被编码成相同的B位二进制码。只要采样频率足够大,量化位数也适当,便能获得较高的声音信号数字化效果。为了满足听觉效果,均匀量化必须使用较多的量化位数,这样所记录和产生的音乐才可以达到最接近原声的效果。当然,提高采样率及分辨率将造成存储数据空间的增大。
        为了适应幅度大的输入信号,同时又要满足精度要求,就需要增加样本的位数。但是,对话音信号来说,大信号出现的机会并不多,增加的样本位数没有被充分利用。为了克服这个不足,出现了非均匀量化的方法,这种方法也称非线性量化。
        ②非均匀量化。
        对输入信号进行量化时,大的输入信号采用大的量化间隔,小的输入信号采用小的量化间隔,这样就可以在满足精度要求的情况下用较少的位数表示。声音数据还原时则采用相同的规则。
        ③自适应量化。
        自适应量化是一种根据输入信号幅度改变量化阶距的一种波形编码技术。这种自适应可以是瞬时自适应(即量化阶距每隔几个样本就改变),也可以是音节自适应(即量化阶距在较长的时间周期内发生变化)。
 
        信号
        任务间同步的另一种方式是异步信号。在两个任务之间,可以通过相互发送信号的方式,来协调它们之间的运行步调。
        所谓的信号,指的是系统给任务的一个指示,表明某个异步事件已经发生了。该事件可能来自于外部(如其他的任务、硬件或定时器),也可能来自于内部(如执行指令出错)。异步信号管理允许任务定义一个异步信号服务例程ASR(Asynchronous Signal Routine),与中断服务程序不同的是,ASR是与特定的任务相对应的。当一个任务正在运行的时候,如果它收到了一个信号,将暂停执行当前的指令,转而切换到相应的信号服务例程去运行。不过这种切换不是任务之间的切换,因为信号服务例程通常还是在当前任务的上下文环境中运行的。
        信号机制与中断处理机制非常相似,但又各有不同。它们的相同点是:
        .都具有中断性:在处理中断和异步信号时,都要暂时地中断当前任务的运行;
        .都有相应的服务程序;
        .都可以屏蔽响应:外部硬件中断可以通过相应的寄存器操作来屏蔽,任务也能够选择不对异步信号进行响应。
        信号机制与中断机制的不同点是:
        .中断是由硬件或特定的指令产生,而信号是由系统调用产生;
        .中断触发后,硬件会根据中断向量找到相应的处理程序去执行;而信号则通过发送信号的系统调用来触发,但系统不一定马上对它进行处理;
        .中断处理程序是在系统内核的上下文中运行,是全局的;而信号处理程序是在相关任务的上下文中运行,是任务的一个组成部分。
        实时系统中不同的任务经常需要互斥地访问共享资源。当任务试图访问资源时被正使用该资源的其他任务阻塞,可能出现优先级反转的现象,即当高优先级任务企图访问已被某低优先级任务占有的共享资源时,高优先级任务必须等待直到低优先级任务释放它占有的资源。如果该低优先级任务又被一个或多个中等优先级任务阻塞,问题就更加严重。由于低优先级任务得不到执行就不能访问资源、释放资源。于是低优先级任务就以一个不确定的时间阻塞高优先级的任务,导致系统的实时性没有保障。下图为是一个优先级反转的示例。
        
        一个优先级反转的示例
        如上图所示,系统存在任务1、任务2、任务3(优先级从高到低排列)和资源R。某时,任务1和任务2都被阻塞,任务3运行且占用资源R。一段时间后,任务1和任务2相继就绪,任务1抢占任务3运行,由于申请资源R失败任务1被挂起。由于任务2的优先级高于任务3,任务2运行。由于任务3不能运行和释放资源R,因此任务1一直被阻塞。极端情况下,任务1永远无法运行,处于饿死状态。
        解决优先级反转问题的常用算法有优先级继承和优先级天花板。
               优先级继承协议
               L. Sha、R. Rajkumar和J. P. Lehoczky针对资源访问控制提出了优先级继承协议(Priority Inheritance Protocol,PIP)。
               PIP协议能与任何优先级驱动的抢占式调度算法配合使用,而且不需要有关任务访问资源情况的先验知识。优先级继承协议的执行方式是:当低优先级任务正在使用资源,高优先级任务抢占执行后也要访问该资源时,低优先级任务将提升自身的优先级到高优先级任务的级别,保证低优先级任务继续使用当前资源,以尽快完成访问,尽快释放占用的资源。这样就使高优先级任务得以执行,从而减少高优先级任务被多个低优先级任务阻塞的时间。低优先级任务在运行中,继承了高优先级任务的优先级,所以该协议被称作优先级继承协议。
               由于只有高优先级任务访问正被低优先级任务使用的资源时,优先级继承才会发生,在此之前,高优先级任务能够抢占低优先级任务并执行,所以优先级继承协议不能防止死锁,而且阻塞是可以传递的,会形成链式阻塞。另外,优先级继承协议不能将任务所经历的阻塞时间减少到尽可能小的某个范围内。最坏情况下,一个需要μ个资源,并且与v个低优先级任务冲突的任务可能被阻塞min(μ,v)次。
               优先级冲顶协议
               J. B. Goodenough和L. Sha针对资源访问控制提出了优先级冲顶协议(Priority Ceiling Protocol,PCP)。
               PCP协议扩展了PIP协议,能防止死锁和减少高优先级任务经历的阻塞时间。该协议假设所有任务分配的优先级都是固定的,每个任务需要的资源在执行前就已确定。每个资源都具有优先级冲顶值,等于所有访问该资源的任务中具有的最高优先级。任一时刻,当前系统冲顶值(current priority ceiling)等于所有正被使用资源具有的最高冲顶值。如果当前没有资源被访问,则当前系统冲顶值等于一个不存在的最小优先级。当任务试图访问一个资源时,只有其优先级高于当前系统冲顶值,或其未释放资源的冲顶值等于当前系统冲顶值才能获得资源,否则会被阻塞。而造成阻塞的低优先级任务将继承该高优先级任务的优先级。
               已经证明,PCP协议的执行规则能防止死锁,但其代价是高优先级任务可能会经历优先级冲顶阻塞(Priority ceiling blocking)。即高优先级任务可能被一个正使用某资源的低优先级任务阻塞,而该资源并不是高优先级任务请求的。这种阻塞又被称作回避阻塞(avoidance blocking),意思是因为回避死锁而引起的阻塞。即使如此,在PCP协议下,每个高优先级任务至多被低优先级任务阻塞一次。使用PCP协议后,能静态分析和确定任务之间的资源竞争,计算出任务可能经历的最大阻塞时间,从而能分析任务集合的可调度性。在PCP协议下,高优先级任务被阻塞时会放弃处理器,因此,访问共享资源的任务可能会产生4次现场切换。
 
        信号量
        信号量是1965年由著名的荷兰计算机科学家Dijkstra提出的,其基本思路是使用一种新的变量类型,即信号量来记录当前可用资源的数量。
        在信号量的具体实现上,有两种不同的方式。
        (1)方式一:要求信号量的取值必须大于或等于0。如果信号量的值等于0,表示当前已没有可用的空闲资源;如果信号量的值大于0,则该值就代表了当前可用的空闲资源数量;
        (2)方式二:信号量的取值可正可负。如果是正数或0,其含义与方式一是相同的;如果是负数,则它的绝对值就代表正在等待进入临界区的任务个数。
        信号量是由操作系统来维护的,任务不能直接去修改它的值,只能通过初始化和两个标准原语(即P、V原语)来对它进行访问。在初始化时,可以指定一个非负整数,即空闲资源的总数。所谓的原语,通常由若干条语句组成,用来实现某个特定的操作,并通过一段不可分割或不可中断的程序来实现其功能。原语是操作系统内核的一个组成部分,必须在内核态下执行。原语的不可中断性是通过在其执行过程中关闭中断来实现的。
        P、V原语作为操作系统内核代码的一部分,是一种不可分割的原子操作。它们在运行时,不会被时钟中断所打断。另外,在P、V原语中包含有任务的阻塞和唤醒机制,因此,当任务在等待进入临界区的时候,会被阻塞起来,而不会去浪费CPU时间。
        P原语中的字母P,是荷兰语单词测试的首字母。它的主要功能是申请一个空闲的资源,把信号量的值减1。如果成功的话,就退出原语;如果失败的话,这个任务就会被阻塞起来。V原语当中的字母V,是荷兰语单词增加的首字母。它的主要功能是释放一个被占用的资源,把信号量的值加1,如果发现有被阻塞的任务,就从中选择一个把它唤醒。
        采用信号量来实现任务之间的互斥,优点有两个:一是可以设置信号量的计数值,从而允许多个任务同时进入临界区;二是当一个任务暂时无法进入临界区时,它会被阻塞起来,从而让出CPU给其他的任务。
        大多数嵌入式操作系统都提供了信号量的机制,用户可以通过函数调用的方式去使用。
 
        噪声
        噪声是通信系统性能的主要制约因素,噪声可分为四种:热噪声、内调制杂音、串扰和脉冲噪声。
        (1)热噪声。热噪声又称为白噪声,是由导体中电子的震动引起的,出现在所有电子设备和传输介质中。热噪声是在所有频谱中以相同的形态分布,是不能够消除的,由此对通信系统性能构成上限。热噪声的特点是:时刻存在,幅度较小,强度与频率无关,但频谱很宽,是一类随机噪声。
        (2)脉冲噪声。脉冲噪声由外界电磁干扰引起,与热噪声相比,冲击噪声幅度较大,是引起传输差错的主要原因。冲击噪声持续时间与数据传输中每位的发送时间相比,可能较长,因而冲击噪声引起相邻的多个数据位出错,所引起的传输差错为突发错。通信过程中产生的传输差错由随机错与突发错共同构成。
        (3)串扰。串扰是信号通路之间产生了不必要的耦合,一般在邻近的双绞线之间因电耦合,或在运载多个信号的同轴电缆中产生。
        (4)内调制杂音。当不同频率的信号共享同一传输介质的时候,可能导致内调制杂音,内调制杂音的结构往往产生这样一些信号,它们的频率是某两个频率的和、差或倍数。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有