首页> 中国专利> 一种多媒体网关多路数据存取方法及多媒体网关

一种多媒体网关多路数据存取方法及多媒体网关

摘要

本发明适用于机顶盒技术领域,提供了一种多媒体网关多路数据存取方法方法及多媒体网关。在本发明中,通过解扰模块创建的存数据线程将解扰后的传输流数据存入到对应的缓存数据区,通过数据分发模块创建的取数据线程读取所述对应的缓存数据区的数据,将读取的数据发送给用户,从而使得存数据和取数据是在相互独立的进程中实现的,提高了安全性。同时,缓存数据区有多个缓存片对解扰后传输流数据进行缓存,通过缓存数据区的缓存片对解扰后的数据流进行缓存解决了视频流丢帧和卡频问题。

著录项

  • 公开/公告号CN103491078A

    专利类型发明专利

  • 公开/公告日2014-01-01

    原文格式PDF

  • 申请/专利权人 深圳市九洲电器有限公司;

    申请/专利号CN201310412852.7

  • 发明设计人 蔡汉锋;

    申请日2013-09-11

  • 分类号H04L29/06;H04L1/00;H04N21/41;G06F9/46;

  • 代理机构深圳中一专利商标事务所;

  • 代理人张全文

  • 地址 518000 广东省深圳市南山区高新南区科技南12路九洲电器大厦6楼

  • 入库时间 2024-02-19 22:10:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-28

    未缴年费专利权终止 IPC(主分类):H04L29/06 授权公告日:20170412 终止日期:20170911 申请日:20130911

    专利权的终止

  • 2017-04-12

    授权

    授权

  • 2014-02-05

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20130911

    实质审查的生效

  • 2014-01-01

    公开

    公开

说明书

技术领域

本发明属于机顶盒技术领域,尤其涉及一种多媒体网关多路数据存取方法 及多媒体网关。

背景技术

随着三网融合的发展,现有的一个机顶盒配一台电视的收费模式增加了拥 有多台电视家庭负担,此种模式已难以适应社会的需求和市场的发展,为此一 种由机顶盒演化出来的家庭多媒体网关也应运而生。多媒体网关是一个具备对 多路数字电视节目进行解扰和分发功能的设备,家庭只需要承担相当于一台机 顶盒的收视费用,就能实现家庭所有电视进行节目收看。

当前机顶盒的技术,一般只支持2路数据处理,两路数据经过解扰后,一 路推送给解码设备进行显示播放,另外一路要么是用来实现PVR(Personal video  recorder,个人视频录像)功能要么是实现PIP(Picture In Picture,画中画)功 能,而两路数据处理都在同一个机顶盒中进行,其数据处理能力以及数据分发 能力要求不高。现有的机顶盒技术中,不涉及到网络分发以及网络数据交互问 题,很多应用模块,数据解扰模块以及数据解码模块都在一个进程中完成,系 统安全性并无太大缺陷。但演化成多媒体网关后,作为一个网络分发数据和交 互数据的设备,其对多路数据的处理能力要求必然大大增加,系统安全性要求 也会提高,如果数据解扰模块与其他应用模块还是在一个进程中完成,在数据 交互过程中,黑客容易破解解扰模块密码。为此,要通过现有的机顶盒技术去 实现家庭多媒体网关的功能,必须要考虑的系统的安全性问题。同时在多路数 据分发过程中容易出现丢帧和卡频问题。

发明内容

本发明的目的在于提供一种存取数据进程相互独立的多媒体网关多路数据 存取方法,旨在解决现有机顶盒在实现多媒体网关功能时安全性低的问题。

进一步的,本发明的另一目的在于提供一种有包含通过多个缓存片存储数 据的多媒体网关多路数据存取方法,旨在解决现有机顶盒实现多媒体网关功能 时,视频流出现丢帧和卡频的问题。

本发明是这样实现的,一种多媒体网关多路数据存取方法,所述方法包括 以下步骤:

提供一解扰模块,所述解扰模块对传输流进行解扰;

提供一共享内存模块,所述解扰模块将解扰后的传输流数据存入到所述共 享内存模块的对应的缓存区;

提供一数据分发模块,所述数据分发模块在接收到数据获取请求时从所述 共享内存模块的对应的缓存区中读取解扰后的传输流数据,并根据所述数据获 取请求将读取到的传输流数据分发出去。

优选的,所述解扰模块将解扰后的传输流数据存入到所述共享内存模块的 对应的缓存区,具体为:所述解扰模块创建存数据线程,通过所述存数据线程 将解扰后的传输流数据存入到所述共享内存模块的对应的缓存区;所述数据分 发模块在接收到数据获取请求时从所述共享内存模块的对应的缓存区中读取解 扰后的传输流数据,具体为:所述数据分发模块创建取数据线程,在接收到数 据获取请求时从所述共享内存模块的对应的缓存区中读取解扰后的传输流数 据。

优选的,当所述传输流包括N路传输流时,所述解扰模块创建存数据线程 具体包括:所述解扰模块创建与N路传输流对应的N个存数据线程;所述共享 内存模块中的缓存区包括与所述N个存数据线程对应的N个缓存区;所述数据 分发模块创建取数据线程具体包括:所述数据分发模块创建与所述N路传输流 对应的N个取数据线程;其中所述N为自然数且N大于1。

优选的,所述的缓存数据区包括数据区和同步信号区。所述的数据区包括 M个缓存片;所述的同步信号区包括与M个缓存片对应的M个同步信号,所 述同步信号用于标识与所述同步信号对应的缓存片为初始状态、存数据状态或 者读数据状态,所述的M为自然数且M大于1。

本发明还提供了根据上述多媒体网关多路数据存取方法实现的多媒体网 关。

在本发明中,通过解扰模块创建的存数据线程将解扰后的传输流数据存入 到对应的缓存数据区,通过数据分发模块创建的取数据线程读取所述对应的缓 存数据区的数据,将读取的数据发送给用户,从而使得存数据和取数据是在相 互独立的进程中实现的,提高了安全性。同时,缓存数据区有多个缓存片对解 扰后传输流数据进行缓存,通过缓存数据区的缓存片对解扰后的数据流进行缓 存解决了视频流丢帧和卡频问题。

附图说明

图1是本发明实施例提供的多媒体网关多路数据存取方法的实现流程图;

图2是本发明实施例提供的多媒体网关多路数据存取示意图;

图3是本发明实施例提供的多媒体网关存储一路TS流数据实现流程图;

图4是本发明实施例提供的多媒体网关读取一路TS流数据实现流程图;

图5是本发明实施例提供的多媒体网关结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本发明,并不用于限定本发明。

图1示出了本发明实施例提供的一种多媒体网关多路数据存取方法的实现 流程,多媒体网关包括解扰模块,共享内存模块和数据分发模块,该方法实现 流程详述如下:

步骤101、提供一解扰模块,所述解扰模块对传输流进行解扰。

具体的,通过解扰模块对传输流TS(Transport Stream)流进行解扰,得到 解扰后的传输流数据。

步骤102、提供一共享内存模块,所述解扰模块将解扰后的传输流数据存 入到所述共享内存模块的对应的缓存区。

具体的,解扰模块对传输流进行解扰后,创建存数据线程,通过存数据线 程将解扰后的传输流数据存入到共享内存模块的对应的缓存区。

步骤103、提供一数据分发模块,所述数据分发模块在接收到数据获取请求 时从所述共享内存模块的对应的缓存区中读取解扰后的传输流数据,并根据所 述数据获取请求将读取到的传输流数据分发出去。

数据分发模块在接收到数据获取请求时创建取数据线程,并通过取数据线 程从共享内存模块的对应的缓存区中读取解扰后的传输流数据。具体的,当接 收到用户数据获取请求时,通过数据分发模块创建取数据线程,通过创建的取 数据线程从共享内存模块对应的缓存区读取数据。数据分发模块根据数据获取 请求将读取到的传输流数据分发出去。优选的,数据分发模块通过CRC(Cyclic  Redundancy Check,循环冗余校验码)校验算法对读取的数据进行打包发送给 接收方。CRC是一种差错校验码,其特征是信息字段和校验字段的长度可以任 意选定,对大批量数据校验速度快。

优选的,如图2所示,当有多路TS传输流时,比如N路传输流,对应的, 解扰模块创建与N路传输流对应的N个存数据线程,上述共享内存模块的缓存 区包括有与之对应的N个缓存区,上述数据分发模块创建与所述N个缓存区对 应的N个取数据线程,N为自然数且N大于1。上述N个存数据线程是通过解 扰模块创建的N个并发独立的线程,N个取数据线程是通过数据分发模块创建 的N个并发独立的线程,且存数据线程和取数据线程是在独立的进程中创建的, 解扰模块和数据分发模块是隔离开的,提高了系统安全性。同时存在多个并发 的存数据线程和取数据线程,使得不同用户能同时收看不同频点的节目。

进一步的,上述缓存区包括数据区和同步信号区。进一步的,将数据区划 分为M个缓存片,将同步信号区前M个字节作为M个同步信号,每个同步信 号对应一个缓存片,M为自然数,且M大于1。具体的,M是通过数据区大小 以及系统信息计算得到的。M具体计算公式为:其中B表示 所述数据区的大小,C表示1秒钟解扰模块将一路解扰后的TS流存入数据区 的次数,RC1表示信道有效传输效率,其中表示向上取整。比如,数据区的 缓存大小B为10MB,信号同步区为大小128KB。采用DVB-C标准系统,系 统信息为:传输信道的信号整形升余弦滚降系数a=0.16,使用64QAM调制, 频带利用率即每个调制符号的比特数n为log264=6,频道物理带宽为 BW=8MHz。那么:符号率RD为:传输速率 RC为:RC=RD×n=6.8996×6=41.397Mbps,又因DVB-C的信道编码为(204,188) RS编码,那么有效传输速率RC1为:RC1=RC×188204=41.397×188204=38.134Mbps.解扰模块按照每5毫秒往缓冲区的数据区存入一次数据,那么1秒钟可以存入 次数C为200次,一次存入的数据大小至少为才 能满足要求,向上取整为25KB,因此,我们要将10MB大小的数据缓存区划 分成个大小为25KB的缓存片,即M等于409,同样将同步信 号区的前409个字节作为同步信号,每一个同步信号对应一个缓存片。

这样划分主要考虑到解扰模块和数据分发模块并行协作工作问题,如果缓 存片划分的过小过多,每个缓存片无法满足解扰模块5毫秒内所处理的TS流, 且会造成丢帧情况。如果缓存片划分得过大过少则会影响数据分发模块长时间 等待解扰模块往缓存片写入数据的现象,这样会造成外发数据卡屏等不流畅现 象,因此按照以上方法划分,则保证了解扰模块和数据分发模块以最优的协作 方式进行工作,保证了数据分发模块外发数据的流畅性。

上述只针对DVB-C系统举例说明,对于DVB-S,DVB-T,ATSC,IPTV 等等其它机顶盒系统同样适用,只需要根据系统的参数利用上面的公式重新计 算缓存片的划分大小即可。

进一步的,为了更加清楚的描述对每一路TS流解扰后的数据存入对应的缓 存区的数据区内过程,本发明实施例结合附图3,做以下详细描述:

步骤301、解扰模块对TS流进行解扰,并创建存数据线程。

通过解扰模块解扰TS流,同时解扰模块按照包含缓存区的共享内存模块的 进程接口标准创建存数据线程。

步骤302、通过存数据线程查询对应的缓存区的第一个同步信号的状态是否 为存数据状态或者为初始状态,如果是,则执行步骤303后执行步骤304,如 果否,则执行步骤305。

具体的,同步信号有3个状态:存数据状态、取数据状态和初始状态。例 如,当同步信号为00000001时表示存数据状态,当同步信号为00000010时表 示取数据状态,当同步信号为00000000时表示初始状态。开发人员可以根据研 发需要进行设置。通过存数据线程查询对应的缓存区的同步信号区第一个同步 信号的状态是否为存数据状态或者为初始状态。

步骤303、存数据线程将对应的解扰后的TS流数据存入对应的缓存区第一 个同步信号对应的缓存片,同时将第一个同步信号状态修改为取数据状态。

当存数据线程查询到对应的缓存区的同步信号区第一个同步信号的状态是 存数据状态或者初始状态时,将对应的解扰后的TS流数据存入对应的缓存区 第一个同步信号对应的缓存片,如前述实施例所述,解扰模块5ms就向缓存区 的数据区存入一次数据,将第一个5ms内解扰模块处理的数据存入第一个同步 信号对应的缓存片。

当在第一个同步信号对应的第一缓存片存入第一个5ms内的解扰后TS流之 后,需将第一个同步信号状态修改为取数据状态,等待读取。否则,会造成后 续解扰的TS流覆盖为读取的数据,造成丢帧。将第一个同步信号状态修改为 取数据状态后执行步骤304。

步骤304、判断传输流数据是否缓存完毕,若是则结束,否则的话执行步骤 305。

步骤305、存数据线程再查询所述缓存区的下一个同步信号的状态,若下一 个同步信号的状态是存数据状态或者初始状态,则将解扰后的传输流数据存入 所述下一个同步信号对应的缓存片,然后将该同步信号状态修改为取数据状态。

当存数据线程将对应的解扰后的传输流数据存入所述对应的缓存区第一个 同步信号对应的第一缓存片,并将第一个同步信号状态修改为取数据状态后, 之后存数据线程再查询所述缓存区的下一个同步信号即第二个同步信号的状 态,比如当第一个5ms内数据存入到第一缓存片后,由于TS流是不断的,存 数据线程需要按类似的方式查询下一个同步信号的状态,以存储第二个5ms内 的数据。

当存数据线程查询到对应的缓存区的同步信号区第一个同步信号的状态不 是存数据状态或者初始状态时,存数据线程直接查询所述缓存区的下一个同步 信号即第二个同步信号的状态,若第二个同步信号的状态为是存数据状态或者 初始状态时,则将解扰后的TS流数据存入第二个同步信号对应的缓存片,然 后将该同步信号状态修改为取数据状态。

步骤306、返回执行步骤304,直到查询完所有的同步信号后,再返回到步 骤302。

返回执行步骤304,若传输流数据缓存完毕则结束,否则重复执行步骤305, 依此类推直到查询完所有的同步信号后,再返回到步骤302重新查询,依此反 复循环操作,直到TS流数据终止缓存完毕。

需要说明的是,该实施例是对一路TS流数据缓存过程进行描述,对于多路 TS流,其中每一路TS流的缓存过程都与该实施例一致。

进一步的,为了更加清楚的描述取出对应的缓存区的数据区内每一路TS流 解扰后的数据过程,本发明实施例结合附图4,做以下详细描述:

步骤401、当接收到用户数据获取请求时,通过数据分发模块创建取数据线 程。

具体的,当接收到用户数据获取请求时,数据分发模块按照包含缓存区的 共享内存模块的进程接口标准创建取数据线程。

步骤402、通过取数据线程查询对应的缓存区的第一个同步信号的状态是否 为取数据状态,若是则执行步骤403后执行步骤404,若否则执行步骤405。

步骤403、取数据线程将所述对应的缓存区第一个同步信号对应的缓存片的 数据取出并发送给接收方,同时将第一个同步信号状态修改为存数据状态。

当取数据线程查询对应的缓存区的第一个同步信号的状态是取数据状态 时,则数据分发模块通过取数据线程将对应的缓存区第一个同步信号对应的缓 存片的数据取出并发送给接接收方。当数据分发模块通过取数据线程将第一个 同步信号对应的缓存片的数据读取出后,需将第一个同步信号状态修改为存数 据状态,等待解扰后的TS流数据存储。

优选的,数据分发模块通过CRC(Cyclic Redundancy Check,循环冗余校验 码)算法对读取的数据进行打包发送给接收方。如前述实施例所述,,每个缓 存片大小为25KB,使用CRC校验从缓存片取出的数据,每一个缓存片25KB 数据进行一次CRC校验,并把数据和校验码打包外发。其打包方式如表1所示:

表1打包后的数据

DATA(25Kbytes) CRC(4Bytes)

接收方在收到数据包后,也使用同样的算法对25KB的DATA进行CRC 校验,并把算出的检验结果CRC1和包后的4Bytes的CRC比较,如果CRC1 等于CRC值,说明DATA数据分发正确,如果CRC1和CRC不等,则请求数 据重发,这样有效防止了数据在网络传输过程中出现的丢失,差错问题。保证 了外发视频的流畅性。

步骤404、判断数据获取请求是否终止,若是则结束,否则执行步骤405。

步骤405、取数据线程再查询缓存区的下一个同步信号的状态,若所述下一 个同步信号的状态为取数据状态,所述取数据线程将所述下一个同步信号对应 的缓存片的数据取出并发送给接收方,同时将所述下一个同步信号状态修改为 存数据状态。当取数据线程将对应的缓存区第一个同步信号对应的第一缓存片 的数据取出并发送给接收方,同时将第一个同步信号状态修改为存数据状态后, 需要接着读取下一时刻的数据,否则将出现卡频或丢帧现象。因此,执行步骤 405后执行步骤406。

当取数据线程查询对应的缓存区的第一个同步信号的状态不是取数据状态 时,取数据线程直接查询缓存区的下一个同步信号即第二个同步信号的状态。 若第二个同步信号的状态为是取数据状态时,则取数据线程读取第二个同步信 号对应的第二缓存片的数据,然后将第二个同步信号状态修改为存数据状态, 之后执行步骤406。

步骤406、返回执行步骤404,直到查询完所述缓存区中的所有同步信号后, 返回步骤402。

具体的,返回执行所述步骤404,依此类推,直到查询完所述缓存区中的 所有同步信号后,返回步骤402,依此反复循环操作,直到数据获取请求终止。

进一步的,数据分发模块在规定的时间内监听接收用户的反馈信息,如果 发送数据失败,则数据分发模块进行重发。同时数据分发模块监听到用户的停 止发送数据获取请求后,取数据线程停止读取数据并挂起线程。

同样,需要说明的是,该实施例是对一路TS流数据取数据过程进行描述, 对于多路TS流,其中每一路TS流的取数据过程都与该实施例一致。

同时,本发明还提供了一种根据前述实施例的方法创建的多媒体网关,即 提供一种根据前述的多媒体网关多路数据存取方法进行多路数据存取的多媒体 网关。图5为本发明实施例提供的一种根据前述实施例的方法实现的多媒体网 关结构框图,该多媒体网关可以集成在机顶盒内部或其他设备中,或者作为单 独的功能实体应用。该多媒体网关能实现前述实施例所述的方法,根据前述的 多路数据存取方法对多路数据进行存取。该多媒体网关主要包括:解扰模块51, 共享内存模块52,数据分发模块53。共享内存模块52包括缓存区521。解扰 模块51,用于对传输流进行解扰以及创建存数据线程。缓存区521,用于存储 通过所述存数据线程存入的解扰后的传输流数据。数据分发模块53,用于创建 取数据线程,通过所述取数据线程读取所述缓存区的数据,并将读取的数据发 送给用户,具体的,通过CRC循环冗余校验码算法对读取的数据进行打包分发 出去。

进一步的,上述缓存区521包括数据区5211和同步信号区5212。

进一步的,数据区5211包括M个缓存片;所述的同步信号区5212包括与 M个缓存片对应的M个同步信号;所述的M为自然数且M大于1,具体的, 其中B表示所述数据区的大小,RC1表示信道有效传输速率, C表示1秒钟解扰模块将一路解扰后的TS流存入数据区的次数,其中表示 向上取整。

进一步的,数据分发模块53还包括监听模块531,用于在规定的时间内监 听接收用户的反馈信息,如果发送数据失败,则数据分发模块进行重发。监听 模块531还用于监听用户是否停止发送请求,若监听到用户停止发送请求则取 数据线程停止读取数据并挂起线程。

进一步的,当上述传输流包括N路传输流,对应的解扰模块51可以创建N 个相互独立的并发线程,上述共享内存模块52可以包括N个缓存区,上述数 据分发模块53可以创建N个相互独立的存数据线程,其中N为自然数且大于 1。

在本发明实施例中,通过解扰模块创建的存数据线程将解扰后的传输流数 据存入到对应的缓存数据区,通过数据分发模块创建的取数据线程读取所述对 应的缓存数据区的数据,将读取的数据发送给用户,同时缓存数据区有多个缓 存片对解扰后传输流数据进行缓存,从而使得存数据和取数据是在相互独立的 进程中实现的,提高了安全性,通过缓存数据区的缓存片对解扰后的数据流进 行缓存解决了视频流丢帧和卡频问题。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述 为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的 动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号