赞
踩
Fibre Channel — Audio-Video (FC-AV)
光纤通道音频-视频(FC-AV),定义了使用光纤通道序列和交换传输AV流的协议。光纤通道是一种高速串行接口,使用光或电连接(即物理层),数据速率目前高达2gbits /s,增长路径为10gbits /s。光纤通道支持的拓扑包括点对点、交换结构和仲裁环路。用于传输AV流的光纤通道连接使用标准FC帧格式和序列/交换层次结构。
光纤通道音频-视频(FC-AV)标准分为以下9个条款:条款1 -是标准的范围。
第2条-列举适用于本标准的规范性参考。
条款3 -描述本标准中使用的定义、缩写和约定。
条款4 -提供了在光纤通道上传输FC-AV容器或AV帧的协议概述。
条款5 -描述了FC-AV容器系统。
条款6 -描述了压缩FC-AV流传输。
条款7 -描述帧报头控制协议。
条款8 -描述了简单内容移动架构的简单流协议。
条款9 -描述了简单流协议的SCSI-3 FCP映射。
过
FC-FS描述了一种用于上层协议((ULPs)的高性能传输工具。本文档FC-AV描述了使音频、视频、辅助数据和控制流能够使用FC-FS作为传输服务的标准方法、应用和服务。
光纤通道以分层结构组织,如图1所示。图1中突出显示的部分是本文档的主题。
FC-AV容器系统(见第5条)旨在优化光纤通道上视频数据的传输。
优化的一个基本要素是将视频、音频和辅助数据分组为相对较大的数据集,作为一个单元进行传输。以4:2:2未压缩视频为例,每个视频帧的数据集约为1兆字节。光纤通道非常适合这样一个大数据集的块传输,并且当数据分组成大块而不是小数据包时效率要高得多。
简单内容移动架构(SCMA)提供了支持大多数后期制作和一般编辑应用程序的基本功能,但它并不打算支持一般的广播环境。
简单内容移动架构由两层组成:内容移动层和内容传输层(参见图2)。
—------本文档中“内容”的定义为音频帧、视频帧、AV帧或容器。
第一层称为内容移动层,它定义了一个简单的全双工流协议,用于客户机和服务器之间的交互和通信,而不考虑底层传输。
SCMA的目的是提供一种在两个节点之间传输内容的简单机制。
目前仅为SCMA定义了一个简单的流协议(见第8条)。
第二层称为内容传输层,它允许将内容移动层映射到一个或多个传输协议和物理系统。
任何用于支持内容移动层的已定义协议都应能够支持全双工活动。
大多数内容移动协议采用请求-应答操作的形式。只有内容传输活动具有任何异步元素。任何用于支持内容移动层的已定义协议都应该能够支持这种异步活动。
SCSI-3 FCP协议(见第9条)是目前唯一定义的传输协议。然而,SCMA允许其他协议映射。
帧报头控制协议(FHCP)是FC-AV集装箱传输的低开销机制(见第7条)。FHCP利用FC-2级别的特性,因此,它被优化为低延迟、高效的数据传输。虽然简单流协议提供了开始、停止、播放、暂停、恢复等操作控制,但使用FHCP的节点被认为一直处于播放模式。
内容移动流其他内容传输FCP VI原生
FC-AV容器设计用于优化光纤通道上音频/视频数据的传输。这种优化的一个基本要素是将视频、音频和辅助数据分组为相对较大的数据集,作为一个单元进行传输。以4:2:2未压缩视频为例,每个视频帧的数据集大约为1兆字节。光纤通道非常适合这样一个大数据集的块传输,并且当数据分组在大块而不是小数据包中时效率要高得多。在容器中传输的数据被分隔成对象,每个对象代表一种数据类型。
光纤通道的实现使用复杂的芯片组来“交换”数据。在最低级别,Exchange由FC帧组成,限制为2112字节的有效载荷。实际上,这些FC帧对于接口芯片之上的系统的任何部分都是不可见的。可见的最低级别被称为序列。序列是基于所使用的特定协议的Exchange的一个元素。这个子句中提出的容器映射到光纤通道序列。
第5条不涉及建立序列交换所需的更高级别协议,而只是将数据打包到单个序列中。提供机制以确保容器能够以正确的顺序发送,并提供足够的信息以在尽可能低的级别按类型(视频、音频和辅助数据)传播数据。
容器定义的一个重要方面是能够利用容器头作为一种机制,以最小的软件开销将由元素数据(如视频样本或音频样本)组成的对象直接定向到解码器。这个方向被设计成在尽可能低的水平上实现高效率。
传输具有多个元素和元数据的流的更复杂的应用程序可能需要更高协议层的干预。
定义了一个容器系统(参见图3),用于传输带有相关音频和辅助数据的视频或图形。每个容器旨在保存视频、音频和辅助数据的帧(可选两个字段)。每个容器由容器头和对象组成。对象按类型分类,并通过索引进一步定义。每个数据类型都保存在一个对象中。简单模式支持四种类型受限的对象。扩展报头模式最多支持16个对象。单个容器精确地映射到单个光纤通道序列。
在每个容器中存在许多对象,其中包含视频、音频和元数据元素。在数据对象之前有一个固定长度的容器头。容器头被设计成具有足够的信息,允许直接处理对象中的数据,而不必“破解”单个对象以获取额外信息。这是为了允许在需要时在容器级别进行硬件处理。对于扩展报头模式,一个可选的扩展报头直接跟在固定长度报头之后。第一个数据对象直接位于容器报头或扩展报头(如果存在)的末尾。特定的容器类型在对象分类系统中定义(见5.6)。
定义了两种基本的操作模式:简单模式和扩展报头模式。
简单模式针对的是希望以最小开销发送视频和/或音频流的应用程序。它具有易于在硬件中实现的属性。容器头地址正好是四个对象。
容器头是固定长度的,对象描述按顺序排列,并限制为特定的数据类型。
扩展报头模式为更复杂的流提供了支持,这些流由许多元素组成,需要简单模式中不包含的附加功能。具体来说,扩展报头模式支持使用5到16个可变数量的对象(Object 0到Object 15)。在物理上,扩展报头遵循容器报头,并共享相同的结构。这允许容器报头和扩展报头的组合被视为可变长度的单个报头。
以下是简单模式下描述容器的基本概念:
1)容器封装视频、音频和图形数据。在简单模式中有四个对象。
说明—如果容器中没有使用任何对象,则对象大小设置为零。
头的组织是固定的,以鼓励头信息的硬件解码。每个字映射到一个光纤通道传输字(32位)。为了便于在高性能计算机中使用,标头被组织为解析为 64-bit 字。本条款中其他提及的“字”均指32 bit FC传输字。
容器头(在Simple模式下)如表1所示。容器头是固定长度的22个四字节字。头的前6个字适用于整个容器。其余的单词被分成结构相同的部分,每个数据对象一个部分。简单模式头只使用对象0-3。扩展报头模式可以添加多达12个结构相同的部分来描述对象4-15(见表4)。
容器信息块由 words 0到5组成,对所有容器都是通用的。
Word 0 - Container Count:一个32位无符号整数,用来标识一个Container在具有相同Clip ID的一系列Container中的位置。该系列中每个集装箱的集装箱数量应增加一个。
**Word 1 - Clip ID:**一个32位无符号整数,用于标识一组容器,例如一个视频剪辑。
Word 2-3 - Container Time Stamp: 一个64位字,用于存储用于传输目的的FC-AV时间戳。
此时间戳表示容器时间。可能还有其他与每个对象相关联的时间戳和时间代码。
时间戳格式描述为FC-PH Expiration time,是64位定点数,单位为秒。数字的整数部分是最高有效的32位,小数部分是最低有效的32位。因此,最大整数是2E32-1,在不到一秒的时间内有32位。定时器开始时间为UTC时间1900年1月1日0小时。
Word 4, Byte 0 - Video Fr. Rate: - 视频帧率:视频帧率字段的编码如表2所示。
Word 4, Byte 1 - Trans. Rate – 转换速率:8位带符号整数。正值表示n *视频帧速率。负值表示视频帧率/ n。
这使得协议处理操作相同的实时和比实时传输视频数据不压缩(例如,JPEG和DV)。
**Word 4, Byte 2-3:**保留
Word 5, Byte 0 - Mode: 简单模式或扩展模式:
—Bit 7 = 0,简单模式
—Bit 7 = 1,扩展报头模式
—Bits 6:0 =保留
Word 5, Byte 1 - # of Objects: 容器中对象的整数个数。在简单模式下,对象的 # 是04h。
Word 5, Byte 2: 保留
Word 5, Byte 3 - Sz of Ext Hdr: 扩展报头字段的大小在简单模式下为零,在扩展报头模式下为非零。以字节为单位的值等于对象总数减去4乘以16。
容器头中的每个对象信息块由一个 4-word 字段组成(见表1),该字段描述了该对象的相关信息。对象信息块如表3所示。
Object n Type: 见5.6
Object n Link pointer: 一种无符号字节,用于链接同一容器中的一个对象和另一个对象。该值为关联对象的对象号。
Object n Index : 见5.6
Object n Size: 以字节为单位的对象大小。
Object n Offset: 对象偏移量:对象从容器开始的偏移量,以字节为单位。
Object n Object Class d efined (O.T. defined): (see5.6)
FC-AV容器系统定义了一个扩展头来解决简单模式不直接支持的应用程序的需求。条款包括支持更多可变数量的对象。扩展报头如表4所示。
扩展报头是容器报头的逻辑扩展。它在物理上直接位于容器头之后和对象0之前。对象描述遵循与容器头中的对象描述相同的格式。对于扩展头所处理的任何对象,都没有对象类的限制。扩展头的长度取决于容器中对象的数量。除了Object 3之外,每个Object的扩展报头长度等于4个字。对象的最大数量为16,因此最大长度为4个字*(16-4)= 48个字。
容器系统提供了一种使用对象类和索引分类系统定义对象内容的机制(参见表5)。对象分类在容器头中由每个对象的对象类词的Type和Index字段表示。Type字节是Object的粗略分类。Index字节提供了Object的精细分类。该分类系统使用Type和Index字段,为FC-AV实现提供或确定Object内容和格式提供了一种快速、快捷的方法,而不需要传输复杂的描述或协商。
对象分类系统包括五大分类类型:
每个Type字节表示一个数据格式表。Index字节提供了该表的键。然后,这些表提供信息来定义对象的数据格式。
Type表包含浓缩的信息,可用于快速确定对象的定义或定义文档。Type表包含一个索引或索引范围,它遵循与Type定义的相同的五种主要分类(Null、Assigned、Reserved、negotiation和Vendor specific)。每个表中的指定分类索引提供了对音频/视频对象的“标准”格式的引用,例如由SMPTE或其他组织记录的格式。“Assigned索引”和“Reserved索引”在附件b中列出。例如B.1中提供了“Video Uncompressed Type (Type 10h) Assigned索引”。
对象类型字节(Object n Class, byte 0)是一个无符号值。分配的值如表5所示,并在以下各节中进行描述。所列的保留值用于本标准将来的分配。标记为特定供应商的值用于特定供应商的专有使用。
对象类型字节的赋值要求如下:
选择对象类型字节的范围,以涵盖可能由专用设备解码的数据类型。
4字对象信息块的Object Type Defined Word函数(如果有的话)的定义(见5.4.2)。
3)协商对象类型供更高级别的协议使用。
对象类型字段中的编码值00h表示不存在有效的对象类型。
对象类型10h指定从不使用视频压缩技术的系统产生的视频对象。指定的索引载于B.1。
对象类型11h指定由采用视频压缩技术的系统产生的视频对象。
指定的索引载于B.2。
保留分配给未来的视频对象类型。编码后的值范围如表5所示。
对象类型20h指定从采用音频/视频压缩技术的系统产生的音频/视频对象。指定的索引载于B.3。
保留分配给未来的视频程序对象类型。编码后的值范围如表5所示。
对象类型30h指定图形/静态图像对象。指定的索引载于B.4。
预留给未来的图形对象类型分配。编码后的值范围如表5所示。
对象类型40h表示从没有使用音频压缩技术的系统产生的音频对象。指定的索引载于B.5。
Object Type为41h,表示采用音频压缩技术的系统产生的音频对象。
指定的索引载于B.6。
预留用于分配给未来音频对象类型。编码后的值范围如表5所示。
对象类型50-5Fh指定辅助数据对象(如参数报头、元数据和带内控制数据)。索引不适用于辅助数据对象。
对象类型60h指定音频/视频对象,包括同步信号和格式。指定的索引载于B.7。
保留给未来的Full Stream - structures对象类型分配。编码后的值范围如表5所示。
保留给未来对象类型赋值的编码值范围。编码后的值范围如表5所示。
为对象类型保留的编码值范围,可以在供应商之间为特定实现建立。这些可能会也可能不会被采纳为未来的标准对象类型。编码后的值范围如表5所示。
供应商特定对象类型的使用由实现者自行决定。这些类型不一定有公共对象描述,甚至可能没有唯一的对象描述。供应商可以使用它们来区分供应商自己产品线内或与合作伙伴之间的私有或专有对象。供应商特定代码值永远不应成为指定对象分类。作为供应商特定类型使用的对象,稍后可以在Assigned type代码范围内被赋予不同的代码值。供应商特定类型不注册到特定的供应商。唯一唯一识别两个供应商选择使用相同的供应商特定代码值的机制是通过使用针对供应商特定分类的对象类型定义词要求(见5.6.4.1)。编码的值范围如表5所示。
Object Index bytes (Object n Class, bytes 2和bytes 3)定义为一个2字节的无符号值,表示每个Object Type字节到表的索引。对于null对象,字节数设置为0000h。分配的索引表载于附件B
对象索引值的赋值要求如下:
明确描述该索引所代表的数据格式标准。通常这将是一个公认的标准号码。当可用时,这可能由SMPTE 298M描述。
描述单一数据类型的足够信息。例如,SMPTE 259M是不够的,因为描述了许多不同的类型。一个SMPTE 298M提议的特定SMPTE 259M类型的类型标识符就足够了,只要该类型的定义是现成的。例如SMPTE 259M type A: 270mbits /s, 720x486像素,4:3宽高比,59.97场率,2:1隔行。
Object的大小范围是可选的,但当它存在时,它应该以字节为单位。
对象索引值为16位无符号整数。值Fxxxh是供应商特定的值,不得重新分配。所有其他值要么为空(即00h),要么为指定值,要么为协商值(即E000h到EFFFh),要么为将来的标准保留
在厂商特定对象类型中可以有厂商特定对象索引。如果使用厂商特定对象索引,其值应符合厂商特定类型对象类型定义词的规则(见5.6.4.1)。
对象类型定义字(Object n O.T. Defined)是一个4字节的值,包含与对象类型关联的可选用户自定义参数。
如果对象使用供应商特定对象类型或供应商特定对象索引,则对象类型定义词应定义为以下两种格式之一:
— 将MSB,31位设置为1。
— 7比特,30到24可以由供应商定义
– 24比特,23到0是IEEE OUI公司ID
2) 非组织唯一标识对象类型定义字格式:非组织唯一标识对象类型定义字格式提供了一种格式,使供应商能够控制对象类型定义字32位中的31位。
— 将MSB,第31位置零。
– 7 位,30到24可以由供应商定义。
数据打包是在传输字中放置数据(字节和位)。关于数据打包的资料载于附件G。
压缩后的FC-AV流在视频程序对象中复用。容器的 Object Class 20h及其格式基于子容器格式,如图4所示。子容器由一个流报头和一个或多个压缩数据流(CDS)数据包组成。
流报头由一个32位流描述符字、一个32位流时间戳和一个32位CDS包长度字组成,如图5所示。
流描述符由16位的Packet类型和16位的Stream类型组成,如图6所示。
报文类型为16位半字,表示CDS报文结构。包类型定义如下。
**bit 31:**数据包时间戳字的存在指示位(在6.1.6中描述)。
0 -表示存在报文时间戳字。
1 -不存在报文时间戳字。
**bit 29:**前向纠错(FEC)字的存在指示位(见6.1.9)
0 -表示FEC字存在。
1 -表示该FEC单词不存在。
**bit 28:**表示多个数据包或单个数据包的指示位。
0 -表示子容器由单个CDS报文组成。
1 -表示子容器由多个CDS报文组成。
bit 27:流时间戳字有效或无效的指示位。
0 -表示流时间戳字有效。
1 -表示流时间戳字无效。
bit 26:表示固定或可变报文大小的指示位。
0 -固定cd包大小。
1 -表示cd包大小可变,cd包长度字无效。
**bit 25、bit 24:**为 将来保留 (默认值为’ 00’b)。
**bit 23 ~ bit 16:**表示FEC的字节长度字节计数字的存在指示位(在6.1.7中描述)。
0 -表示存在字节计数字。
01-表示不存在字节计数字。
流类型为16位半字。流类型的定义取决于压缩的数据流格式。在6.4中描述了两种压缩流类型的实例。
流时间戳由一个32位字组成,表示压缩AV流对象被多路复用到容器的时间点。流时间戳用于恢复端到端的相对流对象时间,当报文类型的第27位设置为0时有效。使用这个词的同步方案将在6.2中描述。
CDS包长度由一个32位的字组成,表示在流报头之后复用的CDS包的字节长度。当“包类型”的第26位设置为0时,CDS包长度字有效。只有当“CDS包大小”固定时,“CDS包长度”才有效。
CDS包格式由一个32位的包时间戳字、一个32位的字节计数字、一个n字节的CDS包有效载荷和一个m字节的FEC组成(见图7)。
CDS报文时间戳是一个32位的字,当报文类型的第31位设置为0时存在。CDS报文时间戳用于恢复端到端CDS报文的相对时间。包时间戳的参考时钟与容器报头中的对象时间戳的参考时钟频率相同。使用这个字的同步方案将在6.2中描述。
字节数是指当“报文类型”的第30位设置为0时存在的一个32位的单词。字节数表示可变CDS报文有效载荷大小的字节长度或固定CDS报文有效载荷中的有效字节长度。如果包时间戳字不存在,字节计数字位于CDS包的头字。
CDS包载荷的格式取决于压缩后的数据流,详见6.4。
前向纠错(Forward Error Correction, FEC)是一个m字节的码,当报文类型的第29位设置为0时存在。FEC适用于CDS包的第一个字节到最后一个字节。错误管理方案见6.3。
同步方案根据压缩方案进行分类,分为MPEG组和帧/字段压缩组两组。
在MPEG系统中,由于在MPEG流报文中嵌入了时间戳信息(PTS/DTS),因此需要始终保持MPEG流报文(MPEG- ts报文或MPEG- ps报文)的相对定时。
在具有主时钟(例如,27 MHz)的发送端,每个CDS包时间戳(CTS)和每个流时间戳(STS)由主时钟计算。每个CTS分别在每个CDS包规划器的输入时间复用。另一方面,每个STS在对象公式器的输入时间在每个流标头中进行多路复用。在接收器中,每个STS都在接收器对象格式化器中解码,相对的对象定时应该在对象格式化器的输出点使用接收到的STS来恢复。
此外,在CDS包格式化器的输出点,应该使用接收到的cts来恢复相对的包定时。
如果容器内对象的相对时间不需要恢复,则不需要流时间戳。
在像DVCPRO或JPEG这样的帧/场压缩系统中,如果只精确地恢复帧/场频率,则不需要精确地恢复相对的CDS包时间,只需要恢复发送端生成的帧/场内的CDS包。因此,STS或CTS并不总是必需的。
误差管理方案应根据流输的应用情况灵活应用。但是,在流传输应用中,要求错误管理方案不干扰实时传输。
错误管理方案分为以下三种模式:
无FEC模式的进程策略适用于对可靠性要求不高的视频发放系统。
FEC模式的进程策略适用于对可靠性要求较高的演播室系统,适用于光纤通道链路带宽不足以重传流的情况。
说明—FC链路的误码率< 10E-12。如果压缩流的码率为27mbits /s,则平均故障时间间隔约为10小时。
立即重传丢弃策略适用于对可靠性要求较高的演播室系统,适用于FC链路带宽足以重传数据流的情况。
光纤通道上基于DV的压缩流的实例如下所述。基于DV的压缩流数据结构分为25mbits /s结构和50mbits /s结构两类。这些在SMPTE 314M中有规定(参见参考文献[19])。
• bit 31 = 1:数据包时间戳字不存在。
• bit 30 = 1:字节计数字不存在。
• bit 29 = 0或1:根据基于DV的流传输应用采用的误差方案。
• bit 28 = 1:子容器由多个CDS包组成。
•bit 27= 0或1:根据容器中其他对象的关系。
• bit 26 = 0:表示cd包大小固定。
• bit 25,bit 24:默认值’ 00’b
• bit 23 ~ bit 16:当FEC字存在时,FEC的长度应为04h(4字节)当FEC字不存在时,FEC的长度应为00h(0字节)。
流类型的 7-0 位定义为信号类型。信号类型格式如图8所示。
• bit 15 ~ bit 8:保留以备将来使用。(默认值为’ 0000 0000b ')
• bit 7:保留以备将来使用。(默认值为’ 0’b)
• bit 6 ~ 4:基于DV的压缩流的DIF结构的指示位。
' 011'b -表示基于DV的压缩流为25mbits /s结构。
' 101'b -表示基于DV的压缩流是50mbits /s的结构。
其他值保留。
• bit 3 ~ bit 0:保留以备将来使用。(默认值为’ 0000’b)
当FEC字存在时,报文长度应为000000A4h(164字节)。
当FEC字不存在时,报文长度为000000A0h(160字节)。
根据分组类型,基于DV的压缩流的CDS分组格式如图9所示。
CDS包有效负载格式如图10所示。DIF块ID (ID0-2)和DIF块数据在SMPTE 314M中指定(参见文献[19])。一个CDS包包括两个DIF块数据。在525/60系统中,一个压缩的AV流对象由750个25mbits /s结构的CDS包(1500个DIF块)或1500个50mbits /s结构的CDS包(3000个DIF块)组成。在625/50系统中,一个压缩的AV流对象由900个25mbits /s结构的CDS包(1800个DIF块)或1800个50mbits /s结构的CDS包(3600个DIF块)组成。
前向纠错(Forward Error Correction, FEC)可选地保护CDS包数据。FEC是一个4字节的代码,当数据包类型的第29位设置为0时,它位于CDS数据包有效载荷之后。FEC适用于CDS包的第一个字节到最后一个字节。采用4字节里德-所罗门纠错作为FEC方法。错误管理方案见6.3。
光纤通道上MPEG-TS的一个实例如下。MPEG-TS的规范定义在参考文献[27]“ISO/IEC 13818-1,信息技术-运动图像和相关音频系统的通用编码”第2页。MPEG-TS包不是基于帧/场结构,而是可以作为视频对象在容器上传输。
• bit 31 = 0:数据包时间戳字存在。
• bit 30 = 1:字节计数字不存在。
• bit 29 = 0或1:根据MPEG-TS传输应用采用的错误方案。
• bit 28 = 1:子容器由多个CDS包组成。
• bit 27= 0或1:根据容器中其他对象的关系。
• bit 26 = 0:表示 CDS包大小固定。
• bit 25, bit 24:默认值’ 00’b
• bit 23 ~ bit 16:当FEC字存在时,FEC的长度应为04h(4字节)当FEC字不存在时,FEC的长度应为00h(0字节)。
定义流类型的15-8位为信号类型。信号类型格式如图11所示。
• bit 15 ~ bit 13 :MPEG-TS报文结构的指示位:
—“000b”表示cd报文的有效载荷为188字节的MPEG-TS报文。
--“100b”表示cd报文的有效载荷为204字节的DVB报文格式,包含188字节的MPEG-TS报文和16字节的RS (Reed-Solomon)纠错码。DVB格式在ETS 300 429中规定。
-- ' 101'b - cd报文的有效载荷为204字节的报文,其中包含188字节的MPEG-TS报文和16字节的零码。
—其他值保留。
• bit 12 ~ bit 8:为将来保留(默认值为’ 0000 0’b)。
• bit 7 ~ bit 0:保留以备将来使用。(默认值为’ 0000 0000b ’ b)。
当存在FEC字时,报文长度应为000000C4h(196字节)或000000D4h(212字节)。
当FEC字不存在时,报文长度为000000C0h(192字节)或000000D0h(208字节)。
根据MPEG-TS的包类型,CDS包格式如图12所示。
CDS 报文时间戳是一个32位的字。包时间戳的参考时钟频率与内部同步频率同步。
CDS报文有效载荷格式如图13所示。根据TS包结构,CDS包的有效载荷要么是188字节的MPEG-TS包,要么是包含16字节RS纠错码或16字节零码的204字节包。
CDS数据包数据可选地由FEC保护,FEC是一个4字节的代码,当数据包类型的第29位设置为0时,FEC位于CDS数据包有效载荷之后。FEC适用于CDS包的第一个字节到最后一个字节。采用4字节里德-所罗门纠错作为FEC方法。错误管理方案见6.3。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。