编码器软件

2024-07-11

编码器软件(精选九篇)

编码器软件 篇1

三网融合本质上是业务的融合。对于广电、电信运营商来说, 允许互相进入对方的传统业务领域, 意味着互相打开了巨大的市场。政策壁垒被突破, 剩下的就是如何面对各自陌生的市场, 满足消费者需求, 从而实现整个产业的跨越式发展。

三网融合带来的市场竞争, 要求广电运营商尽快适应市场要求, 转变角色。除了做好传统广播电视节目传输和安全播出外, 还必须面对新媒体带来的机遇和挑战。推出各类新业务满足人民群众的需求。传统的广电网络只需要传输几十套标清节目, 而现阶段, 除在在电视上提供直播、点播、时移、高清等多种服务, 还要服务于新媒体, 为手机、互联网、城市信息屏等提供各类音视频的节目内容。所以, 对运营商的内容生产环节提出了更高的要求。

1 运营商对编码器需求

离线编码器是一种将多种格式的音视频内容根据需要进行重新加工编码, 以满足在不同网络上传输, 服务不同能力终端需求。

从广电运营商运营实践中, 对离线编码器的需求主要有如下:

(1) 多格式转码能力

目前, 广电运营商对各种音视频多媒体格式要求越来越多。在视频编码格式上, 数字电视上需要MPEG2格式, 互动电视点、互联网电视、手机视频, 则需要MPEG-4或H.264格式。在音频编码格式上, MP2, MP3, AAC-LC, AAC-MAIN, HE-AAC V1, HE-AAC V2, AC3, AMR-NB/WB, WMA。从封装格式上, 有TS、MP4、MKV、FLV等等。从分辨率上说, 需要支持128×76、352×288、640×480、720×576、1024×768、1280×720、1920×1280等。

(2) 任务调度和联机工作能力

广电运营商的对多媒体转码有很大的需求量。通常有两类任务:实时编码和离线编码。实时编码是只对直播类节目进行实时录制, 实时编码并输入, 主要关注的是实时性。而离线编码则是对以各种介质存储的多媒体文件进行转码, 输出需要的格式。

以国内某广电运营商为例, 拥有近百台的实时和离线编码器。因此, 根据运营商生产部门的计划, 各类任务分布在不同的编码器, 对编码器的运算能力进行综合调度显得十分有必要。

编码器需要有运算能力抽象和任务调度的联机工作能力。多台编码器组网后, 任务管理系统能将任务分解后, 根据每个任务的量分布到编码器上。从而实现编码器的负载均和及效率的最大化。

2 离线编码器实现构想

基于软件方式实现的编码器有编码质量高, 参数配置灵活, 速度较快, 对运行硬件环境要求较低, 维护性较好的特点。所以, 本文种提出一种基于纯软件方式实现的离线编码器构想。

2.1 系统架构

这种离线编码器运行在通用服务器上, 操作系统为windows 2003。按照其功能模块划分, 主要包含的模块如图1所示。

(1) 输入系统

输入系统负责接收和采集来自磁盘、磁带、光盘、接口卡等输入设备的多媒体素材。将素材进行初步处理, 并以文件的形式存储。

(2) 编码系统

编码系统是整个编码器的核心。编码系统将来自输入系统的临时文件抽象程流, 根据多媒体流处理的一般流程, 步骤如图2所示。

(3) 输出系统

输出系统将来自编码系统的输出流根据需求, 以以太网帧、TS流或文件等形式输出。

(4) 调度管理系统

调度管理系统包含单机任务调度系统和联机管理系统两部分。单机调度系统负责对管理本机上的任务队列。联机管理系统负责和调度管理系统对接, 能将本机的编码能力、存储能力抽象成整个系统的一部分, 接受调度管理主机的统一管理。

2.2 硬件需求

(1) 运算能力要求

运算能力是多媒体编码系统的核心能力, 经过分析测算, 对于多媒体编码器, 至少需要Intel Xeon E5620或以上级别的CPU, 该级别CPU采用四核心八线程设计, 32纳米工艺, 12MB三级缓存, 支持SSE4.2多媒体指令集, CPU主频达到2.4GHz, 内核电压为0.8-1.3V, 设计功耗为80W。

(2) 内存要求

考虑到多媒体编码需要处理大量数据, 特别是高清、3D编码, 数据量更加要翻翻。因此, 本系统中, 至少需要8GB内存。

(3) 存储要求

编码器采用本地存储和网络存储, 本地存储配置主要为存储编码过程中产生的零时文件, 要求磁盘IO性能较好, 建议配置1TB。

(4) IO要求

要求有4xPCI-E用以外接SDI, ASI视频信号接收卡, STAT接口用于挂接蓝光CD-ROM等。

3 实现方式

3.1 音视频编解码核心

本文所描述的编码器, 以FFMPEG为编码核心组件。

FFMPEG是一个开源免费跨平台的视频和音频流方案, 属于自由软件, 采用LGPL或GPL许可证 (依据你选择的组件) , 它提供了录制、转换以及流化音视频的完整解决方案。

F F M P E G可以用来记录、转换数字音频、视频, 并能将其转化为流的开源计算机程序。

FFMPEG对音视频的处理遵循一套固有的流程, 其基本流程如图3所示。

3.2 任务调度系统

任务调度统一调度网络上所有的编码器和存储。将用户的转码任务根据每台编码器上当前运行的任务情况分配到空闲的编码器上。将编码器的输出, 根据每台NAS存储剩余容量, 输入到相应的存储。当多台编码器和存储组网后, 需要配置相应的任务调度服务器进行统一的管理。其架构如图4所示。

4 性能测试

经过测试, 本文中开发的基于软件的编码器, 在上述硬件平台上, 能够实现标清H.264、800kbps码率视频60帧/秒的编码速率, 720p高清H.264、8Mbps码率视频35帧/秒, 1080p、H.264 20帧/秒。

5 总结

本文提出了一种基于软件架构的音视频编码器, 并在实践中得到了应用, 取得了不错的效果。但是本文所述音视频编码核心库FFMPEG是在LGPL/GPL协议下发布的 (如果使用了其中一些使用GPL协议发布的模块则必须使用GPL协议) , 任何人都可以自由使用, 但必须严格遵守LGPL/GPL协议。LGPL/GPL的核心是必须公开源代码。所以, 本文中所涉及到的离线编码器产品若要商业化, 必须公开源代码, 这也是这种离线编码器商用的障碍之一。

摘要:本文基于开放源代码的音视频编码核心库FFM PEG, 提出了一种基于软件架构的音视频编码器, 并在实践中得到了应用。

09编码计划书-软件开发常用质量 篇2

1、编码人员及负责人

包括项目负责人、项目成员。

2、编码工作分工

介绍编码阶段项目组中各个成员工作分工。

3、工作进度安排

介绍整个编码阶段的进度安排,包括开始、验收时间,各个里程碑时间。

4、采用的工具

介绍项目组使用的开发工具、编程语言、测试工具、源代码管理工具等。

5、编码具体要求

介绍编码要求,包括编程规范、界面设计规范、源代码控制工具使用规范等。

6、输出要求

介绍编码阶段最后的输出情况。

编码器软件 篇3

摘要 随着科技的进步,计算机水平不断提高,目前利用计算机软件对比赛视频进行技战术统计分析已经在体育领域广泛运用。本研究在前人研究基础上,运用Sportstec分析软件并结合计算机科学的相关内容,构建Sportstec篮球技战术视频统计系统,介绍Sportstec分析软件编码窗口的创建,为教练员创新训练方法、提高训练效果提供数据参考和理论支持。

关键词 Sportstec分析软件 统计指标 编码窗口

一、研究方法

(一)影视资料法

收集大量篮球比赛录像及相关资料,赛后对比赛录像反复观摩学习了解篮球运动项目特点。

(二)文献资料法

在本文研究过程中,根据研究目的和课题研究需要,查阅了中国学术期刊全文数据库、万方学位论文数据库、维普中文科技期刊以及中国体育核心期刊等与本研究相关的论文资料;查阅篮球技战术、训练理论、Sportstec相关硕士、博士学位论文;查阅科研方法、影视学、计算机理论、体育理论以及软件大全等方面的著作文献,为本研究提供理论依据。

(三)逻辑分析法

通过文献资料查阅研究、数据分析等手段收集相关内容,以逻辑的形式表现出来,从对象的、纯粹的、概括的状态上考察发展的必然性,在揭示其内部逻辑的基础上再现其发展,从而总结出具有规律性的认知与启示。

二、研究目的与意义

(一)学习并掌握sportstec的相关知识并运用此软件进行实战练习,本文从sportstec分析软件的指标体系建立与编码窗口的创建两个出发点进行简单的阐述。

(二)运用Sportstec分析软件建立篮球项目比赛视频资料数据库,为收集、整理、查阅重要比赛视頻资料提供了基础。

(三)运用Sportstec分析软件对对手的技战术分析,能快速准确归纳出对手的常规战术、主要得分点、主要得分队员以及该队伍的薄弱点,并及时有效反馈给教练员,从而制定出针对该对手的技战术,为取得比赛胜利奠定了基础。

三、结果与分析

(一)Sprotstec篮球视频技战术统计指标体系

统计指标体系是根据统计任务的需要,能够全面反映统计对象数量特征和数量关系,互相联系的一套指标。不同的统计指标所反映的内容不同,根据其内容的不同统计指标可分为基础指标和特征指标。基础指标是反映总体基本状况的指标,由总量指标和相对指标构成[1]。Sprotstec篮球视频技战术统计指标体系要具有科学性、可操作性、全面系统性等原则,技战术统计指标体系要能够真实、准确、客观地反映出篮球技战术统计的本质,查阅相关文献资料得知,关于篮球技战术统计指标体系的论文并不是很多,对于统计指标体系的构建也不是很明确,分类不清晰,为此,本文将以评价的目的为依据,以评价的对象为出发点,构建一个符合本课题的篮球技战术统计指标。

构造一个统计指标体系,就是要构造一个系统,而系统的构造一般包括系统元素的配置和系统结构的安排两方面。在统计指标体系这一系统中,每单个指标都是系统元素,而各指标之间的相互关系则是系统结构[2]。因此,Sprotstec篮球视频技战术统计指标体系的构造分为指标体系的设计(即系统结构的安排)以及指标的设计(即元素配置)。

图1篮球视频技战术统计指标体系结构图

1.Sprotstec篮球视频技战术统计指标的特征

(1)质的规定性

Sprotstec篮球视频技战术指标具有反应篮球技战术某一方面或几个方面特征及其内容的属性,且每一类统计指标都具有相同或者相近的表现属性,比如得分、助攻、三分球、抢断、进攻等均表示技战术中个人技术能力表现的不同类型。但是每个不同的技术在质的规定上具有相同或者相近的功能,因此每个技术统计指标所反映的内容基本相同或者相近但是不同的指标反应的技术内容具有不同的规定性[3]。

(2)同质可量性

没有质的规定性不能称其为Sprotstec篮球视频技战术的统计指标,但是即使有了质的规定性而不能用数字来表示也不能成为统计指标。一些抽象的概念难以直接量化,如“战术”等[3]。

(二)Sprotstec分析软件篮球编码窗口的制作

1.Sprotstec分析软件编码窗口的制作

制作编码窗口要具备可操作性强、指标体系全面、精简操作人员等原则,编码窗口使用了启动链接和排外链接,用最少的点击次数完成更多的指标统计工作,不同项目甚至操作人员的制作思路不同都决定着编码窗口的版面设计,因此,制作一个适合篮球项目的战术板需要操作人员熟练掌握该系统,制作出符合自己风格的编码窗口。

编码窗口有Sprotstec分析软件的“眼睛”之称,编码窗口是战术板的最小单位,其内设有编码、文本、标题、启动链接、编码窗口惯用准备和滞后时间等功能,如何制作一个适合自己风格的编码窗口?我们以江苏女篮队员龚俪的抢断为例制作一个最简单的编码窗口。

(1)编码窗口的创建

打开Sprotstec分析软件点击文件新建编码窗口,编码窗口具有链接、按钮设置、编辑、编码、录制、清除等功能按钮。其中按钮是创建编辑按钮的工具,根据实际情况来设置编辑按钮。

(2)标签的设置

队员的姓名或号码是统计的主题,将其设置为编码标签。为了适应篮球项目攻守转换快等特点,将惯用准备时间和滞后时间都设置为2秒,将编码标题选择放置,这样在编码窗口上就显示了此按钮。字体大小、颜色、常用健等都可以根据个人风格来设置。虽然与Dartfish技战术分析软件有诸多相似,但是Sprotstec软件更加细致、专业。

一个标签的设置只能实现一个或几个指标的运作,操作人员在熟练掌握该技能的前提下可以根据教练员的需求来编排多个标签于战术板上,能够根据场上比赛形势的发展显示需要的技战术,为教练员掌握比赛节奏、发挥本队的技战术特点以及遏制对手起到了重要作用[6]。

(3)战术板的指标组成

根据教练员的需求,设置需要的指标。凯尔特人队的指标分两部分组成,第一部分是本队的个人技术能力如全队的进攻、(1、2、3、4、5号位)的进攻能力、防守、投篮、2分球和三分球的成功与失败、进攻篮板、防守篮板、主攻、抢断、盖帽、失误、犯规等指标组成;第二部分是客队的个人能力如全队的进攻、(1、2、3、4、5号位)的进攻能力、防守、投篮、2分球和三分球的成功与失败、进攻篮板、防守篮板、主攻、抢断、盖帽、失误、犯规等指标组成。

2.Sprotstec分析软件的功能

(1)视频剪切与重组→根据需求进行视频重组,可以方便地进行视频片段组合、切换、合成、转换格式、刻录DVD等功能→更直观。

(2)将战术图插入战术视频中→根据需求,将需要的战术图加入录像中→动静结合,易于战术讲解。

(3)录像重叠播放技术→相同战术片段叠加同时播放→更精细的战术、技术的对比,可以方便地进行录像片段查询、检索、回放;录像回放可以精确进行控制,可以实现慢放、停帧、回放、步进等功能。

(4)个人数据库计划→选择要研究的特定球员活特定球队,制作其个人能力(如突破、跑位、进攻能力、得分点等)或战术特点,监测比赛对手状态,发现对方漏洞,并分类制作影像资料,衡量对方压力,有目标性地研究并掌握此特定球员或特定球队。

(5)可以现场进行录像实时标注分析和后期标注分析;结合场地图,便于对球类项目进行精确标记。

(6)战术板灵活简便,便于现场及赛后进行操作;能够进行数据统计,数据完整可靠。

(7)中文界面和帮助,以及多国语言操作菜单。

(8)灵活强大的编程功能,可以自行编制统计程序,实现教练和队伍训练比赛的任何要求(可以使用独有的编程语言(类似于C++,BASIC)对编辑窗口内的按钮和标签进行编程)。

(9)设计比赛战略战术,协助执行既定方针,发现和强化特定运动技能,检验团队配合的有效性和灵活性。

四、小结

制作战术板要具备可操作性强、指标体系全面、精简操作人员等原则,用最少的点击次数完成更多的指标统计工作,不同项目甚至操作人员的制作思路不同都决定着战术板的版面设计,因此,制作一个适合篮球项目的战术板需要操作人员熟练掌握该系统,制作出符合自己风格的战术板。Sprotstec篮球视频技战术统计指标体系要具有科学性、可操作性、全面系统性等原则,技战术统计指标体系要能够真实、准确、客观地反映出篮球技战术统计的本质,因此指标体系的构建显得尤为重要。Sprotstec分析软件对篮球项目的日常训练、赛前指导、赛后总结等起着积极的作用,运用sportstec软件分析,可以让教练员更直观的进行战术安排,让队员更容易找出自己的不足,在很大程度上给球队在训练竞赛中带来帮助。

参考文献:

[1] 百度百科.统计指标体系词汇描述[J].

[2] 苏为华.论统计指标体系的构造方法[J].统计研究.1995(2):63-66.

[3] 贺亮.中国房地产住宅市场统计指标体系研究[D].南京农业大学.2008.

[4] 赵传杰,刘颖华等.击剑比赛视频数据库管理系统的结构与应用[J].上海体育学报.2006.30(6):56-59.

[5] 王勇,张宏杰.基于NET平台下篮球比赛技战术统计与分析系统的研发[J].上海体育学院学报.第33卷第6期.

[6] 王明波.基于sportscode软件手球技战术视频统计系统的构建与应用[D].河北师范大学.2010.

[7] 赵传杰,刘颖华等.击剑比赛视频数据库管理系统的结构与应用[J].上海体育学报.2006.30(6):56-59.

CASS软件中编码成图的方法 篇4

在内业成图时, 依据草图对测绘仪器采集的点进行连接及赋予相应的属性, 此种方法称为草图法作业模式, 在此种模式下, 根据作业方式的不同, 分为“点号定位”、“坐标定位”、“编码引导”几种方法。 (1) 点号定位成图法:鼠标点击绘制地物或地貌的图标, 提示输入点号, 输入测点点号后自动成图。 (2) 坐标定位成图法:鼠标点击绘制地物或地貌的图标, 提示输入坐标数据, 用户可以直接输入坐标也然也可以直接图上选取。 (3) 编码引导:通过编码文件来定义地物的属性和连接关系, 使用此方式成图, 需要输入引导文件和坐标文件。

2 坐标数据文件格式及传输

每日外业采集的地形、地貌信息都存储在了全站仪内存中, 只有把这些信息传输到计算机内才能进行内业成图的编辑工作。当打开绘图软件后, 点击数据处理工具菜单, 在此菜单中点击读取全站仪数据项目, 即可出现全站仪内存数据转换窗口, 在此窗口中要选择所用全站仪的类型, 传输的波特率, 校验设定、数据位、停止位等, 这些都要与全站仪的设定一致。并且要选择一个文件名作为接收存储数据的文件。波特率:表示数据传输速度的快慢, 用位/秒 (b/s) 表示, 即每秒钟传输数据的位数 (bit) 。一般包括4800 b/s, 9600 b/s, 19200 b/s等几种选项。数据位:是指单向传输数据的位数, 数据代码通常使用ASCII码, 一般用7位或8位。校检位:校检位, 又称奇偶校检位, 是指数据传输时接在每个7位二进制数据信息后面发送的第八位, 它是检查传输数据正确与否的方法, 校检位通常有三种校检方式:NONE (无校检) 、EVEN (偶校检) 及ODD (奇校检) 。“CASS”坐标数据文件是“CASS”最基础的数据文件, 扩展名为“dat”, 只要是从“CASS”7.0支持的全站仪或电子手簿传输到计算机的数据, 都会生成下列格式的坐标数据文件。1点点名, 1点编码, 1点Y (东) 坐标, 1点X (北) 坐标, 1点高程N点点名, N点编码, N点Y (东) 坐标, N点X (北) 坐标, N点高程: (1) 文件内每一行代表一个点, 各行第一个逗号前的数字, 是该测点的点号。点号作为点的识别符, 在数字化地形图的编辑中非常重要, 若没有准确清晰的点号及其相互关系的记录, 所有测点将是相互没有联系的离散点, 不可能编辑成图。 (2) 每个点的坐标和高程的单位均是“米”, 要特别注意的是Y坐标在前, x坐标在后。 (3) 无码作业时, 文件中的编码位置为空或为自定义的代码, 此时的文件称为无码坐标数据文件。但是即使编码为空, 文件中第二个逗号也不能省略。

3 编码引导文件及编码引导法成图

3.1 编码引导文件格式

编码引导文件是用户根据“草图”编辑生成的, 文件的每一行描绘一个地物, 数据格式为:Code, N1, N2, ……, Nn:

(1) 每一行表示一个地物; (2) 每一行的第一项为地物的“地物代码”, 以后各数据为构成该地物的各测点的点号 (依连接顺序的排列) ; (3) 同行的数据之间用逗号分隔; (4) 表示地物代码的字母要大写; (5) 用户可根据自己的需要定制野外操作简码, 通过更改C:CASS 70SYSTEMJCODE.DEF文件即可实现。其中:Code为该地物的地物代码, 表示地物的属性;Ni为构成该地物的第i点的点号。值得注意的是:N1、N2、……、Nn的排列顺序应与实际顺序一致。显然, 引导文件是对无码坐标数据文件的补充, 二者结合即可完备地描述地图上的各个地物。在“CASS”中, 通过操作码定义文件jcode.def, 把地物代码与“CASS”内部编码的对应关系的, 用户可编辑此文件使之符合自己的要求, 文件格式为:

野外操作码, “CASS”内部编码

……

END

(1) 野外操作码有1-3位, 第一位是英文字母, 大小写等价, 后面是范围为0-99的数字, 无意义的0可以省略, 例如, A和A00等价、F1和F01等价。 (2) 野外操作码第一个字母不能是“P”, 该字母只代表平行信息。 (3) 可旋转独立地物要测两个点以便确定旋转角。 (4) 野外操作码如以“U”, “Q”, “B”开头, 将被认为是拟合的, 所以如果某地物有的拟合, 有的不拟合, 就需要两种野外操作码。 (5) 房屋类和填充类地物将自动被认为是闭合的。 (6) 对于查不到“CASS”编码的地物以及没有测够点数的地物, 如只测一个点, 自动绘图时不做处理, 如测两点以上按线性地物处理。

3.2“编码引导”法作业流程

此方式也称为“编码引导文件+无码坐标数据文件自动绘图方式”, 其操作步骤如下: (1) 编辑引导文件:移动鼠标至绘图屏幕的顶部菜单, 选择“编辑”的“编辑文本文件”项, 该处以高亮度 (深蓝) 显示, 按左键, 屏幕上将弹出记事本, 这时根据野外作业草图, 编辑好此文件。 (2) 定显示区:执行此命令, 通过指定矩形区域对角线的坐标, 来选择测区的范围。 (3) 编码引导:编码引导的作用是将“引导文件”与“无码的坐标数据文件”合并生成一个新的带简编码格式的坐标数据文件。这个新的带简编码格式的坐标数据文件在下一步“简码识别”操作时将要用到。a.移动鼠标至绘图屏幕的最上方, 选择“绘图处理”项, 按左键。b.移动鼠标将光标移至“编码引导”项, 该处以高亮度 (深蓝) 显示, 按下鼠标左键, 输入编码引导文件名C:CASS70DEMOWMSJ.YD, 或通过WINDOWS窗口操作找到此文件, 然后用鼠标左键选择“确定”按钮。c.输入坐标数据文件名, 此时输入C:CASS70DEMOWMSJ.DAT。然后屏幕按照这两个文件自动生成数字地形图。

结束语

“CASS”也可采用简码法成图, 简码文件包含了属性信息和坐标信息。在野外作业时, 观测员必须对所有测点进行编码工作, 也就要求测量员要记住所有不同地物类型的简码, 每获得一个测点的坐标就要现场输入该点的简码。回到室内后将全站仪内带有简码的坐标数据文件导出。导出带有简码的坐标数据文件后, 使用“CASS”中的“简码识”别命令, 打开带有简码的坐标数据文件后, 即可自动完成简单地物测点的自动连接工作, 但仍然需要进行绘制等高线、标注高程注记等图面整饰工作。

摘要:数字化测图是经过计算机软件自动处理, 自动绘出所测的地形图。因此, 数字测图时必须采集绘图信息, 它包括点的坐标信息、连接信息和属性信息。在编码成图中, 用编码文件表示连接信息和属性信息, 这样结合外业测定的坐标文件, 就可以实现自动成图。

关键词:CASS,编码成图,坐标文件

参考文献

[1]孙艳崇.数字化测图[M].哈尔滨:东北大学出版社, 2013.

编码器软件 篇5

一、硬件电路

图1、图2分别为发射电路和接收电路, 无线发射与接收使用315MHz的组件模块电路NDR315和CJS-R01A, 单片机采用20引腿的AT89C2051, 其体积小, 设计好后可独立作为编、解码电路, 为降低对高频无线模块的电磁干扰, 单片机采用4MHz的晶振。发射电路将P1输入的数据编码为串行数据从P3.7输出到无线发射模块, 图1中隔离电路可以不用。为增大发射距离, 可对端口进行隔离, 隔离电路可采用比较器构成, 将隔离电路与NDR315单独供电 (最佳12V) 可进一步增大发射距离。接收电路将无线模块接收到的数据从P3.7输入解码为并行数据, 输出到P1口进行后续处理, 如显示等。

二、软件编程

1. 发送编码

实验中发现, 当发射模块不工作时, 接收模块仍然会接收到一系列由尖脉冲组成的白噪声, 不编码时干扰很大, 根据噪声波形特点, 借鉴PT2272的编码方式, 采用抗干扰的措施且本着编码从简的原则, 设计一帧数只包含9位信息, 其中一位是前导码, 其余8位为从低到高的8位数据 (若需要的话可以扩展为16位数据或再加1位效验位) , 前导码为一高电平在前, 低电平在后, 且占空比为1/31的脉冲;数据“1”为一高电平在前, 低电平在后, 且占空比为1/4的脉冲;数据“0”为一高电平在前, 低电平在后, 且占空比为3/4的脉冲;每位数据只发送一次 (PT6672每位数据由2个脉冲构成) , 一帧数至少发送三次, 再从P1读入新数据, 数据不变则一直发送。

程序1为发送编码程序, 无线发射信号时, 过宽的调制脉冲信号容易引起调制效率下降, 收发距离变近。当高电平脉冲宽度在80μs~500μs时发射效果较好, 大于1000μs时效率开始下降, 程序1中的常量M决定了脉冲宽度, 对应4MHz的晶振, 当M为5时, 数据“1”的高电平脉宽约为375μs, 数据“0”的高电平脉宽约为125μs, 一帧数占时约为8ms。

程序1:

2. 接收编码

程序2为接收解码程序, 解码采用查询方式, 测量相邻的一个高电平宽度和一个低电平宽度 (一位数据) , 连续检测18位 (两帧) , 这样可提高查询检测所得到电平宽度的精度, 检测结束后再根据高低电平的比例, 判断是干扰信号或是有效数据, 首先捕捉前导码, 考虑单片机运行时间及发射、接收电路的稳定性等因素, 将判断比例增大一些, 如设为1 29到1 33之间, 程序中比例的判别采用乘法运算, 可以防止除数为0的出错, 找到前导码后, 若后面有8数据, 再一一判断其为“1”还是“0”, 同样考虑误差, 将判断比例增大, 程序2中设为2~5之间 (此误差范围的设置要兼顾灵敏性与抗干扰性这一对矛盾, 需通过实验电路进行调试。) , 否则丢弃这帧数, 干扰信号高电平时间很短, 出现在所设的比例之间概率小, 这样的数据判断方法可以较有效地去除干扰。

程序2:

编码器软件 篇6

FiWi(光纤无线混合接入)网络融合了光纤接入与无线接入的优势,在通信网络中扮演着重要的角色。视频会议、视频点播等业务的快速发展使业务日益趋于本地化,引入NC(网络编码)技术来提升FiWi网络的性能备受关注。无线光宽带接入网络中基于NC的分布式多播算法[1],PON(无源光网络)中包队列编码方法[2]和FiWi网络包队列按位编码机制[3]提高了网络带宽利用率。文献[4-5]在网络中部署基于NC的休眠与混合调度机制,获得了节能与提高服务质量的效果。然而,以上研究中的编码方案使网络 节点控制 功能高度 复杂。SDN (软件定义网络)[6]将控制逻辑从IP网络节点分离, 利用控制器实现对网络的集中操控,在网络创新上迈出了一大步。文献[7]研究了SDN技术对光传送网的影响,文献[8]首次在Openflow平台上应用了NC,文献[8-9]设计了NC与软件定义PON融合架构和NCoS(软件定义网络中网络编码)架构,文献 [10]对基于SDN的FiWi网络架构进行了研究。

然而,如何在软件定义FiWi网络中进行NC的部署,利用SDN的集中控制优势来提高FiWi网络的性能尚未有研究成果。本文在软件定义FiWi网络架构下设计了一种新型编码控制方法,即在控制器中实现源编码包的筛选与编码控制,全面提升了FiWi网络中的编码效率与网络性能。

1NC-FiWi架构及原理

FiWi网络架构及NC原理如图1所示。FiWi网络主要由OLT(光线路终端)、ONU-MPP(光网络单元网关节点)与WMN(无线网状网)中的MAP (无线接入点)组成。上行传输中MAP以任播传输方式经无线链路向ONU-MPP发送数据包P1、P2, ONU-MPP以TDMA(时分多址接入)方式将数据包发送到OLT。无NC下行传输中,OLT对两个数据包进行广播,ONU-MPP1与ONU-MPP2分别接收数据包P2、P1,并单播到目的MAP。有NC的下行传输方案中,OLT将接收到的数据包进行按位异或编码操作,生成数据包P1⊕ P2并广播,ONUMPP 1与ONU-MPP2接收到编码包后利用缓存的已发送数据包进行解码操作,分别得到P2与P1包并发送到目的MAP。此NC传输方案中,OLT下行传输1个数据包即能完成数据交换,与非NC方案相比减少了50%的包传输量,提高了网络带宽利用率,同时也降低了OLT的能耗。

2软件定义FiWi网络架构

传统网络 的NC控制过程 中需要OLT与ONU-MPP间大量的Gate和Report包进行信息交换,以完成编码包筛选、编码队列长度控制等。这不仅增加了网络的信息开销,而且会增 大NC时延。 本文设计了一种支持NC功能的软件定义FiWi网络架构,将FiWi网络中的编码策略集中在控制器, 全面提升了FiWi网络的编码效率与网络性能。

如图2所示,软件定义FiWi网络架构自底向上分为基础设施层、控制层和应用层。基础设施层包括FiWi网络中的OLT、ONU-MPP和MAP,网络将这些节点中决定报文如何转发的控制逻辑解耦出来,并形成独立的控制平面。每个基础设施节点为一个Openflow交换机,来自控制器的指令以流表形式下发到交换机,交换机通过查询流表来执行编解码和数据转发等动作。

控制层的控制器能够获取基础设施节点信息并存储在数据库中。网络中所有控制功能集中在功能控制模块,包括FiWi网络拓扑管理、多等级QoS策略和路由算法等。我们在控制器中增加NC策略控制模块,通过访问数据库,完成编码包的筛选等工作,并通过流表管理器生成相应指令下发到基础设施层。

流表是决定网络流量如何动作的核心数据结构。为了使此网络中的Openflow节点支持NC功能,将流表按图3所示扩展。在包头域扩展编码队列和包长度匹配项,筛选出编码包后将包压入相应编码队列,编码包长度需小于队列容量以防止包溢出队列造成丢包或无法及时对包进行编码处理。在行动集中加入可选行动“入队”,完成编码队列的排列,扩展编码 和解码来 支持OLT编码与ONU MPP解码功能。

3软件定义NC控制策略

解码节点有足够的源包信息是数据包能够编码的前提。传统NC通过Gate、Report信息交换 于OLT或ONU-MPP处实现编码包的筛选和编码队列的排列,网络信息冗余复杂。本文利用SDN的集中控制功能,在软件定义FiWi网络架构下提出软件定义NC控制方案。方案控制过程如图4所示。

此方案实现了NC在控制器中的集中控制,有效减少了网络信息复杂度及冗余度,在提高带宽利用率的同时降低了网络时延。同时,控制器中快速的编码决策提高了编码效率,从而有效提升了网络吞吐量。

4网络仿真

本文采用OPNET软件分别对网络、节点和进程三层模型建模进行仿真。仿真网络模型包括1个控制器、一个OLT、4个ONU-MPP和12个MAP。 OLT与ONU-MPP间距离设定为20km,传输速率为1Gbit/s,MAP到ONU-MPP与MAP间的距离均设定为100m,传输速率为54 Mbit/s。各MAP的业务均为突发性自相似业务,包长度均匀分布于64~1 518byte。分别对传统FiWi网络环境与本文提出的软件定义FiWi网络环境中NC传输方案进行仿真,对MAP时延与网络吞吐量随着不同负载变化的情况进行分析比较。

图5所示为两种传输方案下MAP时延变化情况。MAP时延随着网络负载的增大而增加,而软件定义FiWi网络中NC传输的时延低于传统FiWi网络中NC传输时延。这是因为软件定义FiWi网络NC控制过程由控制器集中控制,与传统FiWi网络中NC传输相比节省了节点间大量信息交换的过程,缩短了编码判断与等待时间。

图6所示为两种传输方案下MAP吞吐量随负载变化的情况。MAP节点吞吐量随网络负载的增加而增大,负载较小的情况下,两种传输方案的吞吐量均接近负载值;随着负载的不断增大,软件定义FiWi网络架构下吞吐量优势逐渐明显,且吞吐量饱和值高于传统网络架构NC传输的吞吐量饱和值。 这是由于在软件定义FiWi网络架构中,控制信息数量减少,且控制器的集中控制能够提高编码效率,从而提升了网络的吞吐量。

5结束语

本文针对传统FiWi网络中NC控制消息复杂导致时延增大的问题,提出了一种扩展NC功能的软件定义FiWi网络架构及相应的NC控制策略。 仿真结果表明,所提出的支持NC的软件定义FiWi网络架构和集中的编码控制策略能够降低网络时延,有效提升网络吞吐量。

摘要:针对传统FiWi(光纤无线混合接入)网络中网络编码控制过程中大量Gate、Report信息交换导致的网络信息复杂、编码时延增大等问题,设计了一种支持编码功能的软件定义FiWi网络架构和基于Openflow协议的网络编码控制方法。仿真结果表明,所提出的软件定义FiWi网络架构中的集中编码控制方法及其实现方案能够减少网络中控制信息数量,提高带宽利用率,有效降低数据传输时延并提高网络吞吐量。

编码器软件 篇7

软件水印是将作者的个人及版权信息转换成相应的水印信息嵌入到程序中,当软件发生版权纠纷时可提取出已嵌入的水印信息作为有效的法律依据证明作者的版权。软件水印按照嵌入时刻不同分为静态水印和动态水印[1],静态水印由于其本身抗攻击性较低的缺点,许多学者转而研究动态水印,动态水印嵌入的不是水印信息本身而是代表水印的动态信息,保存在程序的执行状态中,如动态的数据结构中。

1996年,Davison和Myhrvold发表了基本模块调整算法[2],该算法的基本思想类似于文本水印算法,把源程序中的每个基本模块进行重新排列,并将水印信息嵌入到程序中,这种算法比较容易在面向对象的程序中实现,只需将各个函数的排列顺序进行重新排列即可达到目的,但由于其实现方法较简单,导致其抗攻击性偏低。

2010年王慧娇等人提出一种基于PPCT和基数K的动态图混合编码方案[3],主要是针对PPCT动态图编码效率低的问题,在保证其抗攻击性的前提下,将基数K枚举编码的循环链表指针编码系数的方法运用到PPCT枚举编码中,该方案同时具有了PPCT枚举编码的抗攻击能力和基数K枚举编码的编码效率。但由于两种方法中都含有大量的指针,导致这种混合编码方案的水印嵌入程序中后会对程序的运行速度有一定的影响。

在以上研究的基础上,提出了一种改进的基于PPCT编码的软件水印方案。该方案结合了PPCT编码、基数K编码以及排列图编码,使得PPCT树中叶节点指针能够指向树中所有的节点,在保证其抗攻击性的前提下提高了数据率及鲁棒性。

1 基于PPCT的编码方案

1.1 典型的PPCT编码方案

PPCT编码也是从二叉树转化而来的,它增加了一个生成节点Origin,这个节点的右指针指向第一个根节点,左指针指向最右边的叶节点,所有的叶节点的左指针从右向左依次链接,最左边的叶节点的左指针指向生成节点,所有的叶节点的右指针指向自己,如图1所示:

n个节点的PPCT编码表示的最大水印值为Cn-12n-2/n,所以水印编码值的范围为0~Cn-12n-2/n。PPCT编码的编码效率较低,但其容错与检错性较强。

1.2 PPCT与基数K混合编码

PPCT与基数K混合编码是将基数K链表水印编码中的叶节点系数编码方案运用到PPCT中[4]。对PPCT树中叶节点进行编号,并改变每个叶节点右指针指向,使其指向其他叶节点,这样即可得到一组对应的数字编码,通过计算可得到嵌入的水印数字。可大大增加嵌入水印的数据率。

1.3 PPCT与排列图混合编码

PPCT与排列图混合编码是在PPCT与基数K编码的基础上改进而来,对图中的叶节点进行编号,PPCT树中叶节点的每一个状态对应着一组数字,并对图中叶节点的编号进行全排列,每一组排列对应着一个数字,这样n个叶节点的PPCT图结构所能够表示的最大水印值为n!-1.此种编码结构的性能过载度与纠错能力要高于K基数编码,有较高的数据率,但其抗攻击能力较差,鲁棒性与PPCT编码相比要低一些,在实际使用中用的不多。

2. 改进的PPCT水印方案

2.1 基本思想

本文提出的基于PPCT混合编码方案是将PPCT、K基数链表及排列图三种编码方案融合在一起,在不影响PPCT编码自身抗攻击性及程序运行速度的前提下提高水印的数据率,在水印中加入防篡改技术以提高水印的抗攻击性,利用水印的冗余嵌入实现水印的容错提取。其基本思想如下:

1)首先需要对PPCT树进行改造。给树中的每个叶节点增加一个next指针,每个叶子节点的next指针只能指向除生成节点及叶子节点外的其他节点。下面对PPCT树中除生成节点外的其他节点编号,叶节点的编号规则:从PPCT树中的最左叶节点开始按照从左至右深度遍历的方式依次从0编号,假设PPCT树中的叶节点数为m,某个叶节点的编号为j,当某一节点指针指向此节点时,其代表的值为mj;除叶节点及生成节点外的其它节点编码规则:从生成节点的右指针所指向的节点开始按照深度遍历的方式从0逐个节点编号。同上,假设PPCT树中的此类节点数为n,某个节点的编号为k,当某一节点的指针指向此节点时其代表的值为nk。(如图2所示)

2)该混合编码方案的水印数据值为int(T')=int(T)+K,其中int(T)为PPCT的CLOC索引,而K值为PPCT树的基数编码值,K值的计算方法为:

如图2的基数编码值为:

3)基数编码值K既是重要的水印数据,又作为防篡改信息用于判定水印是否遭到攻击。为了进一步加强对K值的保护,采用AES模块对PPCT树及K值进行加密处理并将密钥妥善保管,使用AES模块加密处理是为了使其具有防篡改的功能。

2.2 水印的嵌入

水印的嵌入:1)首先确定需要嵌入的水印数据值并构造相应的PPCT树;2)在程序中嵌入创建PPCT水印的代码,同时为了提高水印的隐蔽性,可将水印进行分解,将不同的分支分别嵌入在程序中的不同位置;3)对嵌入水印后的代码及基数编码值K使用AES加密模块进行加密处理。

2.3 水印的提取

提取水印:1)计算实际的基数编码值K';2)通过密钥解密得到基数编码值K,并将K'与K的值进行比较,若相等则说明版权得到验证;若不相等则说明水印遭到攻击破坏,程序会立刻终止运行;3)在提取水印的同时,随机执行验证代码检查程序是否发生可识别的攻击并恢复PPCT树结构.在水印中加入防篡改代码后,当嵌入水印后的程序遭到可识别的攻击后,程序不会立即终止,而是转而执行隐藏其中的冗余代码创建与原图相同的水印图,继续提取水印以验证程序的版权。

3 水印的性能分析

3.1 数据率

数据率是指一个程序中可嵌入的最大水印信息量,是软件水印系统的重要指标。一个好的水印方案必须满足在较少的节点中嵌入较多的水印数据,同时还要保证嵌入水印的隐蔽性与安全性,根据计算得到K基数编码、排列图编码、PPCT编码、PPCT混合编码及改进后的PPCT混合编码方案的数据率如下表所示:

从表1中可见,PPCT的数据率偏低,K基数编码的数据率强于其他水印方案,PPCT混合编码方案相对于PPCT编码数据率有较大提升,改进后的PPCT混合编码方案相比于原混合方案在数据率上略有提升,但仍低于K基数编码方案。四种水印方案的数据率对比图如图3所示:

3.2 隐蔽性

隐蔽性是用来衡量嵌入到程序中的水印信息被攻击者发现和和定位的难易程度。基于此,文献[5]提出了一个用水印信息与其周围代码及未嵌入水印的程序的特征值来表示水印的隐蔽性,特征值计算公式为:,其中{ni}为嵌入水印后的程序各个字节码指令所占的百分比,{mi}为一般程序各种字节码指令所占的百分比,特征值越小表示水印的隐蔽性越强。通过计算得到的4种算法的特征值如表2所示:

PPCT树的结构类似于线索二叉树,虽采用混合编码的方式提高了水印的数据率,但并未改变或破坏PPCT树的结构,因此PPCT本身仍然具有较高的隐蔽性,从表中的数据也可知,PPCT的隐蔽性要略好与其他方案。

3.3 抗攻击性

抗攻击性是水印性能指标中的重要一项,它是指水印抵抗攻击能力,在不计代价的条件下,理论上任何一种水印方案都是可以被破解的,对一种水印方案而言,只需其破解所需付出的代价要大于其破解所获得的利益,那么便可说这种水印方案的抗攻击性达到了要求[6]。下面从四个方面来介绍本水印方案的抗攻击性:

1)添加或删除攻击。它是指攻击者对程序中的语句进行简单的添加或删除,由于在本水印方案中加入了防篡改方法,当攻击者对代码进行添加或删除后,程序运行时防篡改代码会进行检测,当发现代码被篡改后,会生成一个新的与原来相同的PPCT树结构来继续完成水印的提取。若不能够生成新的PPCT树结构,程序会立即停止运行。

2)扭曲攻击。它是指在攻击者在找到水印嵌入的位置后,对嵌入水印的代码进行变换,如更改语序、改变表达式顺序以及更改条件规则等方法,以达到破坏水印提取的目的。这时防篡改代码同样会进行修复,因此该方法对水印的破坏力有限。

3)代码优化攻击。该方案是攻击者同样在找到了水印的嵌入位置后,采用代码优化的方法将嵌入水印的冗余代码删除掉,达到破坏水印的目的。此种方法可能会删掉防篡改代码,使得水印无法修复。但在该水印方案中水印代码被拆分并嵌入到程序的不同区域,防篡改代码被删除的几率很低。

4)语义保持攻击。它是指采用代码迷乱技术对程序进行攻击,在不改变程序的功能和特性的前提下打乱原程序的结构。对于本水印方案而言,打乱程序结构不会对水印造成影响,因为水印是经过拆分后嵌入到水印的不同区域中,单纯的打乱结构对水印功能不会有影响。

4 结束语

水印的各种性能指标之间是相互约束的,通常是一项指标的增强往往意味着另外其他性能指标的降低。软件水印方案的构造需要在其中寻找一个平衡点,使得各种性能指标都能够处于一个较高的水平。同时软件水印的发展仍处于起步阶段,其理论体系尚需不断完善。本文对基于PPCT编码的混合水印方案进行了改进,通过实验证明,在不影响PPCT编码原有的较好抗攻击性的前提下提高了水印的数据率,但仍低于K基数编码,而且由于水印中指针的大量增加,必定会对程序的运行造成一定的影响,因此该水印方案仍有进一步改进的空间,这也是下一步工作的方向。

摘要:该文针对PPCT软件水印编码效率低等问题提出了一种改进的基于PPCT编码的软件水印方案。该方案是结合了基数K编码、排列图编码以及PPCT编码的混合编码方案,将基数K编码的链表指针编码系数及排列图编码中枚举编码方案运用到PPCT编码中。并在Sand Mark实验平台上通过具体的实例证明在不影响PPCT数据结构及其抗攻击性的前提下增加了水印的数据率及鲁棒性。

关键词:PPCT编码,基数K编码,排列图编码,混合编码

参考文献

[1]张立和,杨义先,钮心忻,等.软件水印综述[J].软件学报,2003,14(2):268-277.

[2]AKITO M,HAJIMUI,KEN-ICHI M,et al.Apractical methodfor watermarking Java programs[C].Proceedings of the24thComputer Software and Applications Conference,2000.

[3]王慧娇.基于PPCT和基数K的动态图混合编码方案[J].计算机工程与应用.2010,46(25):109-111.

[4]周亮.软件水印算法评估研究[D].长春:吉林大学,2010.

[5]蒋华,沙宗鲁,轩爱成.基于表达式逆序数的软件水印算法[J].计算机应用,2009,9(6):3189-3190.

[6]汤战勇,房鼎益,苏琳.一种基于代码加密的防篡改软件水印方案[J].中国科学技术大学学报,2011,41(7):599-606.

[7]Christian S C,Ginger M,Andrew H Sandmark-A Tool for soft-ware Protection Research[J].IEEE Security&Privacy.2003,1(4):40-49.

编码器软件 篇8

AVS解码器是中国具备自主知识产权的第二代信源编码标准,其编码效率是MPEG-2的2~3倍,与H.264标准相当。由于AVS标准复杂度高,解码器需要对数据进行复杂运算,而高清视频图像像素量大,海量数据的重复读写和运算给解码的实时完成带来了很大的困难。

单指令多数据(Single Instruction Multiple Data,SIMD)技术是针对这种数据密集型多媒体计算业务推出的优化指令,可以在很少的指令周期内完成多路数据的并行计算[1,2,3]。因此,将该指令引入AVS[4]高清解码器的优化后可数倍提高解码器的运算速度。同时,解码器各个运算模块之间大量且频繁的数据传递,也对解码器的数据结构设计提出了高要求,高效的数据组织方式可以避免不必要的速度损失。

2 SIMD指令的主要特点

笔者将研究基于Intel公司面向其IA-32架构[5,6,7]的SIMD指令——MMX技术。MMX技术提供了两组寄存器:MM0~MM7(64 bit)和XMM0~XMM7(128 bit),可以直接从CPU的L1 Data Cache中(如图1所示)读取多路数据,同时提供了一系列指令集配合该寄存器的加减乘除和移位等各种运算功能的实现。

3 AVS参考解码器功能分析

本文对AVS解码器的优化是基于AVS工作组提供的rm52j版本的解码器代码[4],该代码能够实现AVS标准压缩视频的准确解码,但是无法做到对高清视频实时解码。表1是利用Intel公司的Vtune软件分析该代码在解码高清AVS压缩视频时各个模块的运行时间比例。

从表1可以看出,帧间亮度插值、帧间色度插值、预测块残差块合成、DCT反变换这4个运算模块占据了整个解码时间约80%。这4个模块的共同特点是:运算基本单元都是8×8大小的block,同一运算过程要重复64次,满足数据密集的特点。因此,本文将对这4个模块进行SIMD指令的汇编代码优化。

4 SIMD汇编指令优化

4.1 亮度插值优化

文献[1]在解码器插值部分简化的讨论中提出使用PMADDWD指令来完成插值部分的运算。虽然PMADDWD指令可以完成以双字节(16 bit)为基本单元的乘法-加法联合运算,但是对于8×8大小的block,一次只能完成128/(16×4)=2个点的插值运算,实际运算效率不高。

本设计能够不使用乘法运算而只使用移位和插值来完成滤波器插值。首先,插值滤波器是对称的,如1/2插值滤波器系数为[1 5 5 1],因此每次1/2插值运算实际上只有5这一个乘法因子,如果在此使用PMADDWD指令则需要对每个因子做乘法运算,从而造成运算资源浪费。其次,根据公式a×5=a<<2+a,可以把定乘数的乘法运算转化为一次加法和一次移位,由于乘法运算比加法需要移位更多的时钟周期,因此采用这种乘法替代运算可以提高运算速度。

亮度插值方式虽然会根据亚像素点的位置而有所不同,但都是对水平方向插值和垂直方向插值进行组合而成。因此下文将介绍这两个基本插值方式的计算方法。

图2为水平方向插值数据组织方式,XMM0~XMM3存放从参考图像矩阵中读取的同一行像素(每个像素保存在16 bit空间内),相邻XMM寄存器间存在1个像素的位移,这样是为了在纵向上配齐像素X(0,0)~X(0,7)这8个像素的插值点,如进行1/2像素插值

相应地,XMM寄存器的并行运算为

最后的运算结果将保存在寄存器XMM0中。

图3所示为垂直方向插值,同水平方向插值不同的是,XMM0~XMM3中存放的是从-1行到2行的8点像素值,目的也是配齐第0行的X(0,0)~X(0,7)这8个像素的纵向插值点,如进行1/2像素插值

XMM寄存器的运算和水平方向相同,同样可以得到第0行像素的插值结果。

4.2 色度插值优化

AVS的色度插值采用的是双线性插值,如图4所示。

计算公式为

从以上公式可以推出,第一行像素X(0,0)~X(0,7)的插值同样可以8个像素同时并行计算,其中,XMM0~XMM3和亮度插值类似,分别读入4行像素。不同的是,需要使用XMM4~XMM7读入参数W1~W4。如图5所示,以XMM0和XMM4的数据组织为例,XMM0读入第0行像素,而XMM4中的8个数据单元全部读入参数W1,这一步可以通过指令PSHUFLW来完成。

这样,XMM寄存器的并行计算如下

式中,⊙表示利用指令PMULLW完成XMM寄存器中每个word单位(16 bit)数值并行相乘。这样最终结果保存在XMM0中,完成一行像素X(0,0)~X(0,7)的色度插值。

4.3 DCT反变换优化

AVS标准采用基于8×8块大小的DCT变换,其变换矩阵为T8,则反变换计算公式为

设计DCT反变换的SIMD实现,需要对反变换计算作一些调整。因为XMM寄存器每次可以读入8×8矩阵一行的数据,但是无法一次读入一列,因此系数矩阵Coef只能看成把行向量当作基本元素的列向量:Coef=[C0,C1,...,C7]T。这样,列变换为

H′的每一行为向量C0~C7的线性组合,可以利用XMM寄存器来完成,其中乘以系数的计算可以参照前文插值部分采用的使用移位和加法替换的方法,例如计算10×C0,将C0中的8个系数读入寄存器XMM0之后,有

第二步需要计算H=H′×T8T,这里无法把H′如第一步的系数矩阵Coef一样当作列向量来处理,因此需要作一个变换

在计算H之前先对H′求转置,就可以如之前作列变换一样完成行变换,最后得到的结果是HT,HT再经过一次转置就可以得到最终反变换结果H。不过这里可以作一个调整,也就是在熵解码读取DCT系数矩阵Coef时,直接把元素放在矩阵的转置位置,即

这样,最后得到的H_new T=H,可以避免最后一次转置操作。

4.4 预测快残差块合成优化

本模块完成的功能比较简单,即图像块=预测块+残差块,只有大数据量的加法运算消耗了解码时间。因此,通过并行加法指令PMADDWD和饱和操作指令PACKUSWB可以较为轻松地完成优化。

5 实验结果

测试使用720p(1 280×720)规格高清序列Shields,Stockholm,Mobile,分别采用高、中、低码率进行AVS标准压缩编码,共9组测试数据。

实验使用的PC机基本配置:CPU为Intel Pentium Dual CPU E2160@1.80 GHz,内存1 Gbyte。表2列出了优化前后AVS解码器的解码速度。

6 小结

笔者通过对AVS标准及其参考解码软件进行分析,找到造成解码器速度瓶颈的关键模块——亮度插值、色度插值、DCT反变换以及图像块合成,提出了针对这些模块的SIMD指令优化的具体实现方法,最后的优化结果实现了AVS标准的高清视频的实时解码。

参考文献

[1]CHEN Y K,LI E Q,ZHOU X S,et al.Implementation of H.264 encoderand decoder on personal computers[J].Journal of Visual Communicationand Image Representation,2006,17(2):509-532.

[2]KRISHNAPASAD S.SIMD programming illustrated using Intel's MMX instruction set[J].Journal of Computing Sciences in Colleges,2004,19(3):268-277.

[3]TALLA D,JOHN L K,BURGER D.Bottlenecks in multimediaprocessing with SIMD style extensions and architectural enhancement[J].IEEE Trans.Computers,2003,52(8):1015-1031.

[4]FAN L,MA S W,WU F.Overview of AVS video standard[EB/OL].[2010-02-20].http://vod.cs.nthu.edu.tw/ezLMS/show.php?id=421&1219283368.

[5]Intel Corp.IA-32 intel architecture software develop's manual volume2 instruction set reference[R].USA:Intel Corp,2006.

[6]Intel Corp.Next generation Intel_processor:software developers guide,order number:252490[R].USA:Intel Corp,2004.

编码器软件 篇9

1 音频信号处理基本概念

1.1 模拟音频与数字化音频

自然的声音是连续变化的,它是一种模拟量。比如当人们对麦克风讲话时,麦克风能根据它周围空气压力的不同变化而输出相应连续变化的电压值,这种变化的电压值是对人讲话声音的一种模拟,称为模拟音频。要将模拟音频变为计算机能存储和处理的对象,必须将模拟音频数字化。

数字化音频的获得是通过每隔一定的时间测一次模拟音频的值并将其数字化,通常包括采样、量化和编码。每秒钟采样的次数称为采样频率。根据采样定理,只要采样频率等于或大于模拟音频信号中最高频率成分的两倍,信息量就不会丢失,即可以由采样后的离散信号不失真地重建原始连续的模拟音频信号,否则就会产生不同程度的失真。采样定律用公式表示为:fs≥2f或Ts≤T/2,其中f为被采样信号的最高频率。

我们将由模拟量转变为数字量的过程称为模-数转换。计算机要利用数字音频信息驱动扬声器发声,还需要将离散的数字量再转变为连续的模拟量,该过程称之为数-模转换。在大多数计算机中,这些功能是通过声卡来完成的。音频信号的一般处理如图1所示。

1.2 数字化音频信号的压缩编码

1.2.1 数字化音频信号压缩编码简介

数字化的音频信号必须经过压缩编码处理才能适应存储和传输要求,才能在再生时得到最好音质的声音听觉。音频信号压缩编码主要依据人耳的听觉特性。人的听觉系统中存在一个听觉阈值电平,低于这个电平的声音信号人耳听不到,可以不必保留这部分信号;当几个强弱不同的声音同时存在时,强声使弱声难以听到,当声音在不同时间先后发生时,强声使其周围弱声难以听见。声音编码算法就是通过这些特性来去掉冗余数据,从而达到压缩数据的目的。

1.2.2 常见音频压缩编码方式

常见的音频压缩编码有MPEG-1音频压缩编码、MPEG-2音频压缩编码、杜比数字AC-3音频压缩编码等。

1)MPEG-1音频压缩编码

ISO/IEC的MPEG音频编码的标准化采用了2种编码算法:MUSICAM和ASPEC。以这两种算法为基础形成了三个不同层次的音频压缩算法,对应不同的应用要求并具有不同的编码复杂度。在MPEG-1的音频编码标准中,按复杂度规定了三种模式:层1、层2、层3。层1采用MUSICAM算法,典型码流为384kbps,典型码流为256kbps~192kbps。层3是综合了层2和ASPEC的优点提出的混合压缩技术,它的复杂度相对较高,编码不利于实时。如今流行的MP3音乐就是一种采用MPEG-1层3编码的高质量的数字音乐,它能以10倍左右的压缩比降低高保真数字声音的存储量,使一张普通的CD光盘上可以存储大约100首MP3歌曲。层3是MUSICA和ASPEC两个算法的结合,典型码流为64kbps。

MPEG压缩等级与压缩比率如表1所示。

ISO/MPEG音频编码(层3)结构图如图2所示。

MPEG-1层3中采用改进余弦变换MDCT。MDCT的表达式为:,其中(固定时间偏移量)。余弦变换在边界处存在固有的不连续性,导致在块边界处产生较大噪声,MDCT采用时域混叠抵消TDAC技术,有利于消除这种噪声。做MDCT前要进行加窗处理:ω(n)是窗函数,它的长度等于变换块N的长度),从而降低边界效应对谱分析的影响,提高频率选择性。窗函数ω(n)的选择必须满足窗函数越长,编码效率就越高,但是过长会使时域分辨率下降,选择窗函数应该兼顾编码效率和时域分辨率。

PCM数据输入经过分析滤波组被分割成若干子频带信号,同时数据流经过FFT变换模块,动态求出每个编码频带的掩码阈值。MDCT对滤波器组的不足作了一定的补偿,把子带的输出在频域里进一步细分以达到更高的频域分辨率。比例设置和量化器模块根据掩码阈值对子频带信号进行量化,量化后得到的数据分别经过Huffman编码模块和边信号编码器模块进行编码,再经过多路复用器MUX得到码流。

2)MPEG-2音频压缩编码

MPEG-2的音频压缩编码采用与MPEG-1相同的编译码器,层1、层2、层3的结构也相同,但它能支持5.1声道和7.1声道的环绕立体声。

MPEG-2 BC是一种类似MP3的音频压缩算法。MPEG-2 BC压缩编码主要是在MPEG-1和CCIR Rec.755的基础上发展起来的。与MPEG-1相比较,MPEG-2主要在两方面做了重大改进,一是支持多声道声音形式;二是为某些低码率应用场合,进行低采样率扩展。同时,标准规定的码流形式还可与MPEG-1的第1和第2层前、后向兼容,并可依据CCIR Rec.755与双声道、单声道形式的向下兼容,还能够与Dolby Surround形式兼容。

3)杜比数字AC-3音频压缩编码

杜比数字AC-3是美国杜比实验室开发的多声道全频带声音编码系统,采用第三代ATC技术,被称为感觉编码系统,它将特殊的心理音响知识、人耳效应的最新研究成果与先进的数码信号处理技术很好地结合起来,形成了这种数字多声道音频处理技术。它提供的环绕立体声系统由5个(或7个)全频带声道加一个超低音声道组成,所有声道的信息在制作和还原过程中全部数字化,信息损失很少,细节十分丰富,具有真正的立体声效果,在数字电视、DVD和家庭影院中被广泛使用。

AC-3编码原理结构图如图3所示。

1.3 声音的重构

模拟音频要经过采样、量化和编码,就能得到便于计算机处理的数字语音信息,如果要重新播放数字化语音,必须经过解码、D/A转换和插值,其中解码是编码的逆过程,又称解压缩。以ISO/MPEG音频解码(层3)为例,结构图如图4所示。D/A转换是将数字量再转换为模拟量便于驱动扬声器发声;而插值是为了弥补在采样过程中引起的语音信2音频播放器简介:

本文中介绍的音频播放器如图6所示,该音频播放器能实现mp3、wav、mid、wma等格式音频文件的播放。

2 音频播放器制作过程简介

2.1 音频播放器制作中所需控件及变量设置介绍

1)所需控件:

TMediaPlayer控件(可以通过MCI播放多种多媒体文件,如MID、MP3、WAV、CD音乐文件和AVI、WMV文件等)、三个TEdit控件(分别显示正在播放文件的时间进度、正在播放文件的信息、重复播放区域的设置)、若干TBitBtn控件(用于对文件进行操作)、TListBox控件(用于显示播放列表)、TTrackBar控件(用于控制播放的音量和播放的进度)、以及TTimer控件和TOpenDialog控件。

2)设置变量(说明:在程序代码中出现的其它变量为控件中的局部变量):

在Form中设置全局变量:

SongDir:array[0..999]of Variant;//播放的文件的路径(不包括播放的文件名)

mode:integer;//播放的模式,是正常播放还是重复播放指定区域

sound_sign:integer;//静音的标志

startpos,endpos:integer;//正常播放时播放的起始位置和结束位置

startpos1,endpos1:integer;//重复播放指定区域的起始位置和结束位置

flag:integer;//暂停的标志

addfileflag:integer;//是否第一次添加播放文件的标志

2.2 音频播放器各功能模块介绍(在此仅介绍较为复杂的功能)

1)文件打开功能模块:该模块的功能是打开若干需要播放的文件,并把这些文件加载到ListBox当中,形成播放列表。若列表框中无任何文件,则直接将打开的文件加载到列表框中;若列表框中已有文件,则将打开的文件与列表框中已有的文件逐个进行比对,判断文件是否已经加载过,若已经加载过,则不加载。在此功能模块中,需要利用数组变量SongDir记录加载进去的文件的路径(不包括文件名),并利用变量addfileflag判断是否为第一次添加播放文件,如果是则自动选中播放列表中的第一首歌曲并显示该文件的信息,同时改变变量addfileflag的值,保证以后添加进去的播放文件不影响正在播放的文件。文件打开功能模块处理流程如图7所示。

2)静音功能模块:该模块的功能是在播放文件时,按下此按钮,则产生静音效果,再次按下时,声音恢复。从而实现静音的功能。实现此功能需要在该模块程序中控制变量sound_sign的变化。该功能是通过Windows API函数waveoutsetvolume来实现,在使用该函数之前,必须引用mmsystem单元。并且为该按钮在静音和非静音时加载不同的图片,从而清楚地显示声音处于何种状态。

3)设置重复播放的开始位置功能,设置重复播放的结束位置功能,清除重复播放区域,播放重复区域功能:

(1)设置重复播放的开始位置主要需要将TrackBar2.Position即播放的当前位置记录在变量startpos1中,并将开始时间点显示在Edit3当中。部分程序代码及说明如下:

startpos1:=TrackBar2.Position;//记录开始位置

Edit3.Text:='重复播放:'+calculate(startpos1)+'->'+'结束点'+'请设置';//显示开始时间点

设置重复播放的结束位置主要需要将TrackBar2.Position即播放的当前位置记录在变量endpos1中,并将结束时间点显示在Edit3当中。部分程序代码及说明如下:

endpos1:=TrackBar2.Position;//记录结束位置

Edit3.Text:='重复播放:'+calculate(startpos1)+'->'+calculate(endpos1);//显示结束时间点

运行时设置好的重复播放区域如图1中A所示。

(2)在显示设置的开始时间点和结束时间点时,需要用到自定义函数calculate(),该函数的功能主要是根据提供的播放进度,将其转换为时间格式的字符串,以方便显示。播放进度是以毫秒(Milliseconds)为计数单位的。输入播放进度,返回字符串类型的时间数。该自定义函数calculate()在后面讲述的歌曲信息的显示以及文件播放时间进度的显示中也有重要的应用。

(3)清除重复播放区域主要需要将变量startpos1、endpos1设置为0,并将播放模式变量mode设置为0,即正常播放模式。

(4)播放重复区域主要用到TMediaPlayer控件的StartPos、EndPos、Position属性以及Play方法。StartPos属性设置为StartPos1,EndPos属性设置为EndPos1,Position属性设置为StartPos1,并将播放模式变量mode设置为1,即重复播放指定区域模式。

3)逐个删除歌曲播放列表中歌曲的功能,全部删除歌曲播放列表中歌曲的功能:

实现逐个删除功能需要判断ListBox1中的歌曲条目是否处于选中状态,如处于选中状态,则调用ListBox1的Delete方法来完成选中歌曲的删除。实现全部删除功能只需要利用ListBox1.Clear即可。

4)歌曲信息的显示功能:

歌曲信息的显示主要是通过调用自定义过程ShowInfo(Sender)来实现的。自定义过程ShowInfo(Sender)主要需要设置TMediaPlayer控件的FileName属性、调用TMediaPlayer控件的Open方法、在窗体的标题栏上显示完整的文件路径、调用自定义函数calculate()在Edit2中显示文件的时间长度及文件名、设置全局变量startpos和endpos的值、设置TrackBar2的min和max属性。歌曲信息的显示如图1中B所示。

5)自动加载历史播放记录功能:

在实际情况中,媒体播放器都是应该有记忆功能的,即保存文件播放列表,在下次打开播放器的时候自动加载该列表。要想实现这一功能,需要在退出程序的时候,将文件播放列表保存到INI文件当中,当再次运行程序时,从INI文件中读取信息即可。在Delphi中提供了TIniFile类用于操作INI文件,该类在inifiles单元文件中,在使用该类文件时,需要引用inifiles单元。

在窗体关闭过程FormClose(FormClose过程需要映射为OnClose)中,需要在该项目生成的可执行文件目录下创建名为———recentplay.ini的文件,用于存放播放列表。并将每首歌曲的文件路径(不包括文件名)、每首歌曲的文件名、播放列表中文件的总数记录在recentplay.ini文件中。保存文件播放列表处理流程如图8所示。

3 结束语

随着经济与科技的飞速发展,促使计算机技术和电子技术的发展突飞猛进。音频信号的处理做为多媒体处理的一个重要分支,已经深入到人们的工作、学习、生活当中。我们根据不同的应用场合或者不同的技术要求,可以采用不同的数字音频压缩编码技术。我们在音频信号处理方面的研究仍待继续深入,提出新的数字音频压缩编码方法或者改进现行的压缩编码方法以适应实际应用的需求。本文中利用应用软件Delphi设计的音频播放器,经过调试和测试,实现各种音频文件的播放和文中所述的各种功能,具有一定实际应用价值。

参考文献

[1]陈洪光,林嘉宇,易波.数字音频压缩技术研究[J].通信技术,2000(2):68-71.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【编码器软件】相关文章:

自动编码器07-28

编码器实验小结04-28

编码器知识小结05-03

RS编码器05-08

光电脉冲编码器06-16

AVS编码器08-11

全新的视频编码器06-26

小波视频编码器08-12

编码教案04-18

编码理论05-02

上一篇:活性焦烟气净化技术下一篇:液相还原