CN108494704A - 一种基于通道的双缓冲技术的实时数据流处理方法 - Google Patents
一种基于通道的双缓冲技术的实时数据流处理方法 Download PDFInfo
- Publication number
- CN108494704A CN108494704A CN201810180410.7A CN201810180410A CN108494704A CN 108494704 A CN108494704 A CN 108494704A CN 201810180410 A CN201810180410 A CN 201810180410A CN 108494704 A CN108494704 A CN 108494704A
- Authority
- CN
- China
- Prior art keywords
- data
- channel
- channel pipe
- pipe
- wrapper
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9021—Plurality of buffers per packet
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于通道的双缓冲技术的实时数据流处理方法,属于数据信息处理技术领域,通过开启两个并行的数据接收线程和数据处理线程,在数据接收线程接收到数据后,通过辅助标志位找到未被数据处理模块读取的数据通道pipe,数据接收模块将接收到的数据通过push方法构造成数据结构data Wrapper后,加入到数据通道pipe中,辅助标志位的指向改变为此时不为空的数据通道pipe,数据处理模块便读取辅助标志位此时指向的这个不为空的数据通道pipe,进行数据处理,本发明解决了现有数据流处理方法采用固定的长数组,当通道内数组满后容易阻塞数据通道,且容易造成空间浪费,以及数据接收和处理的吞吐量低的问题。
Description
技术领域
本发明属于数据信息处理技术领域,特别涉及一种基于通道的双缓冲技术的实时数据流处理方法。
背景技术
随着4G网络的日趋成熟,各种多媒体应用如雨后春笋般涌现,但4G网络的覆盖并不完全尽如人意,从而可能会导致网速的大幅度波动。在多媒体应用,特别是实时数据收发的流媒体应用中,为了降低由于网速波动带来的接收数据不均等影响,必须提出一些响应的解决方案,其中最直接和最有效的方案之一就是使用缓冲技术。
目前现有的数据流处理方法大多是使用单通道缓冲技术解决网络忽快忽慢带来的数据处理问题,由于单通道缓冲技术是通过创建固定的数组,当通道内数组满后便容易阻塞通道,且数组分配空间后,即使不存储数据,也会占用该存储空间,造成了空间浪费,以及数据接收和处理的吞吐量低的问题。
发明内容
本发明的目的在于:提供了一种基于通道的双缓冲技术的实时数据流处理方法,解决了现有数据流处理方法采用单通道缓冲技术创建固定的数组,当通道内数组满后便容易阻塞通道,且数组分配空间后,即使不存储数据,也会占用该存储空间,因此造成的空间浪费,以及数据接收和处理的吞吐量低的问题。
本发明采用的技术方案如下:
一种基于通道的双缓冲技术的实时数据流处理方法,其特征在于,包括以下步骤:
步骤1:开启两个并行的数据接收线程和数据处理线程,创建n个数据通道pipe和一个记录正在被读取的数据通道pipe的辅助标志位,n≥2;
步骤2:根据步骤1,数据接收线程接收到数据后,若通过辅助标志位找到一个未被读取的数据通道pipe,则将接收到的数据加入到数据通道pipe中;
步骤3:根据步骤1,数据接收线程接收到数据后,若通过辅助标志位找到两个数据通道pipe,一个数据通道pipe为空,另一个数据通道pipe不为空,则将接收到的数据加入到空的数据通道pipe中,同时,辅助标志位的指向改变为不为空的数据通道pipe,此数据通道pipe中的数据进入数据处理线程。
进一步地,所述步骤1中创建n个数据通道pipe的具体步骤为:
步骤1.1:创建数据结构data Wrapper,所述数据结构data Wrapper包含存储具体数据信息的变量data和指向下一个数据结构data Wrapper存储地址的指针next DataPointer;
步骤1.2:创建数据通道pipe,所述数据通道pipe包含用于记录第一个数据结构data Wrapper存储地址的指针start Pointer和用于记录最后一个数据结构data Wrapper存储地址的end Pointer;
步骤1.3:在步骤1.2创建的数据通道pipe中创建三个方法函数,push方法、pop方法和empty方法,所述push方法用于向pipe中添加data Wrapper,所述pop方法用于从pipe中移除data Wrapper,所述empty方法用于判定pipe是否为空。
进一步地,所述步骤2中采用push方法将接收到的数据通过构造成数据结构dataWrapper后,加入到数据通道pipe中。
进一步地,所述步骤1的数据接收线程在数据发送/接收模块中开启,数据处理线程在数据处理模块中开启。
更进一步地,所述步骤1.1的数据结构data Wrapper还包含一个指向上一个数据结构data Wrapper存储地址的指针pre Data Pointer。
更进一步地,所述步骤1.3中的push方法和pop方法互斥,不能同时执行这两个方法。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.一种基于通道的双缓冲技术的实时数据流处理方法,通过创建数据通道pipe,由辅助标志位切换选择数据通道pipe,再添加数据,避免因只有一条数据通道导致堵塞,从而造成数据接收和处理的吞吐量低的问题;
2.本发明通过开启两个并行的数据接收线程和数据处理线程,充分利用数据空间,有效避免了空间浪费;
3.本发明步骤1.1的数据结构data Wrapper还包含一个指向上一个数据结构dataWrapper 存储地址的指针pre Data Pointer,能进一步提升性能。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是一种基于通道的双缓冲技术的实时数据流处理方法的流程图;
图2是本发明的单向通道数据模型示意图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
下面结合图1、图2对本发明作详细说明。
一种基于通道的双缓冲技术的实时数据流处理方法,其特征在于,包括以下步骤:
步骤1:开启两个并行的数据接收线程和数据处理线程,创建n个数据通道pipe和一个记录正在被读取的数据通道pipe的辅助标志位,n≥2;
步骤2:根据步骤1,数据接收线程接收到数据后,若通过辅助标志位找到一个未被读取的数据通道pipe,则将接收到的数据加入到数据通道pipe中;
步骤3:根据步骤1,数据接收线程接收到数据后,若通过辅助标志位找到两个数据通道pipe,一个数据通道pipe为空,另一个数据通道pipe不为空,则将接收到的数据加入到空的数据通道pipe中,同时,辅助标志位的指向改变为不为空的数据通道pipe,此数据通道pipe中的数据进入数据处理线程。
进一步地,所述步骤1中创建n个数据通道pipe的具体步骤为:
步骤1.1:创建数据结构data Wrapper,所述数据结构data Wrapper包含存储具体数据信息的变量data和指向下一个数据结构data Wrapper存储地址的指针next DataPointer;
步骤1.2:创建数据通道pipe,所述数据通道pipe包含用于记录第一个数据结构data Wrapper存储地址的指针start Pointer和用于记录最后一个数据结构data Wrapper存储地址的end Pointer;
步骤1.3:在步骤1.2创建的数据通道pipe中创建三个方法函数,push方法、pop方法和empty方法,所述push方法用于向pipe中添加data Wrapper,所述pop方法用于从pipe中移除data Wrapper,所述empty方法用于判定pipe是否为空。
进一步地,所述步骤2中采用push方法将接收到的数据通过构造成数据结构dataWrapper后,加入到数据通道pipe中。
进一步地,所述步骤1的数据接收线程在数据发送/接收模块中开启,数据处理线程在数据处理模块中开启。
更进一步地,所述步骤1.1的数据结构data Wrapper还包含一个指向上一个数据结构 data Wrapper存储地址的指针pre Data Pointer,进一步提升性能。
更进一步地,所述步骤1.3中的push方法和pop方法互斥,不能同时执行这两个方法。
本发明的具体实施例为:
在一个实时音频/视频软件开发中,数据信息为音频/视频字节码,数据信息发送端为服务器,数据信息接收端为客户端软件,通过在本地开启两个并行的线程,即一个用于接收音频/视频数据的数据接收线程和一个用于处理音频/视频的播放处理线程,当数据接收线程收到了数据后,将数据添加到辅助标志位未标记的数据通道pipe中,而播放处理线程则从辅助标志位标记的数据通道pipe中读取数据,再播放出来。
本发明通过开启两个并行的线程,数据接收线程和数据处理线程,在数据接收线程接收到数据后,通过辅助标志位找到未被数据处理模块读取的数据通道pipe,数据接收模块将接收到的数据通过push方法构造成数据结构data Wrapper后,加入到数据通道pipe中,辅助标志位的指向改变为此时不为空的数据通道pipe,数据处理模块便读取辅助标志位此时指向的这个不为空的数据通道pipe,进行数据处理,解决了现有数据流处理方法容易阻塞数据通道和空间浪费,以及数据接收和处理的吞吐量低的问题。
以上所述,仅为本发明的优选实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。
Claims (6)
1.一种基于通道的双缓冲技术的实时数据流处理方法,其特征在于,包括以下步骤:
步骤1:开启两个并行的数据接收线程和数据处理线程,创建n个数据通道pipe和一个记录正在被读取的数据通道pipe的辅助标志位,n≥2;
步骤2:根据步骤1,数据接收线程接收到数据后,若通过辅助标志位找到一个未被读取的数据通道pipe,则将接收到的数据加入到数据通道pipe中;
步骤3:根据步骤1,数据接收线程接收到数据后,若通过辅助标志位找到两个数据通道pipe,一个数据通道pipe为空,另一个数据通道pipe不为空,则将接收到的数据加入到空的数据通道pipe中,同时,辅助标志位的指向改变为不为空的数据通道pipe,此数据通道pipe中的数据进入数据处理线程。
2.根据权利要求1所述的一种基于通道的双缓冲技术的实时数据流处理方法,其特征在于,所述步骤1中创建n个数据通道pipe的具体步骤为:
步骤1.1:创建数据结构data Wrapper,所述数据结构data Wrapper包含存储具体数据信息的变量data和指向下一个数据结构data Wrapper存储地址的指针next DataPointer;
步骤1.2:创建数据通道pipe,所述数据通道pipe包含用于记录第一个数据结构dataWrapper存储地址的指针start Pointer和用于记录最后一个数据结构data Wrapper存储地址的end Pointer;
步骤1.3:在步骤1.2创建的数据通道pipe中创建三个方法函数,push方法、pop方法和empty方法,所述push方法用于向pipe中添加data Wrapper,所述pop方法用于从pipe中移除data Wrapper,所述empty方法用于判定pipe是否为空。
3.根据权利要求1或2所述的一种基于通道的双缓冲技术的实时数据流处理方法,其特征在于:所述步骤2中采用push方法将接收到的数据通过构造成数据结构data Wrapper后,加入到数据通道pipe中。
4.根据权利要求1所述的一种基于通道的双缓冲技术的实时数据流处理方法,其特征在于:所述步骤1的数据接收线程在数据发送/接收模块中开启,数据处理线程在数据处理模块中开启。
5.根据权利要求2所述的一种基于通道的双缓冲技术的实时数据流处理方法,其特征在于:所述步骤1.1的数据结构data Wrapper还包含一个指向上一个数据结构dataWrapper存储地址的指针pre Data Pointer。
6.根据权利要求2所述的一种基于通道的双缓冲技术的实时数据流处理方法,其特征在于:所述步骤1.3中的push方法和pop方法互斥,不能同时执行这两个方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810180410.7A CN108494704A (zh) | 2018-03-05 | 2018-03-05 | 一种基于通道的双缓冲技术的实时数据流处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810180410.7A CN108494704A (zh) | 2018-03-05 | 2018-03-05 | 一种基于通道的双缓冲技术的实时数据流处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108494704A true CN108494704A (zh) | 2018-09-04 |
Family
ID=63341392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810180410.7A Pending CN108494704A (zh) | 2018-03-05 | 2018-03-05 | 一种基于通道的双缓冲技术的实时数据流处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108494704A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1680929A (zh) * | 2004-04-08 | 2005-10-12 | 华为技术有限公司 | 一种多通道数据缓冲设计方法与装置 |
CN101030134A (zh) * | 2007-03-29 | 2007-09-05 | 复旦大学 | 一种处理单发射流水线数据相关的动态调度控制器和方法 |
CN101567001A (zh) * | 2009-05-22 | 2009-10-28 | 清华大学 | 并行文件系统的元数据文件布局管理方法 |
CN102402414A (zh) * | 2011-08-19 | 2012-04-04 | 大道计算机技术(上海)有限公司 | 适用于大屏幕的采集卡缓冲区同步图像刷新系统及方法 |
CN103176837A (zh) * | 2013-03-27 | 2013-06-26 | 南京大学 | 基于反转单链表的锁无关消息队列实现方法 |
CN105868123A (zh) * | 2016-04-07 | 2016-08-17 | 武汉数字派特科技有限公司 | 一种并发数据的缓存结构及方法 |
-
2018
- 2018-03-05 CN CN201810180410.7A patent/CN108494704A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1680929A (zh) * | 2004-04-08 | 2005-10-12 | 华为技术有限公司 | 一种多通道数据缓冲设计方法与装置 |
CN101030134A (zh) * | 2007-03-29 | 2007-09-05 | 复旦大学 | 一种处理单发射流水线数据相关的动态调度控制器和方法 |
CN101567001A (zh) * | 2009-05-22 | 2009-10-28 | 清华大学 | 并行文件系统的元数据文件布局管理方法 |
CN102402414A (zh) * | 2011-08-19 | 2012-04-04 | 大道计算机技术(上海)有限公司 | 适用于大屏幕的采集卡缓冲区同步图像刷新系统及方法 |
CN103176837A (zh) * | 2013-03-27 | 2013-06-26 | 南京大学 | 基于反转单链表的锁无关消息队列实现方法 |
CN105868123A (zh) * | 2016-04-07 | 2016-08-17 | 武汉数字派特科技有限公司 | 一种并发数据的缓存结构及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102012818B (zh) | 屏幕录制方法与装置 | |
US7917687B2 (en) | Flash memory apparatus and access method to flash memory | |
CN101916227B (zh) | 一种rldram sio存储器访问控制方法和装置 | |
MX2009002191A (es) | Metodo y aparato para recibir, almacenar y presentar programacion multimedia sin indexar antes de almacenar. | |
CN105142004B (zh) | 多媒体文件读取方法及装置 | |
KR20050118197A (ko) | 스트림 버퍼 채널들에 대한 cpi 데이터 | |
CN101521807B (zh) | 一种传输流平滑处理的方法、系统及数字电视前端设备 | |
CN103974013B (zh) | 进行视频录像回放的方法及视频录像设备 | |
WO2017008563A1 (zh) | 一种数据处理方法及其装置、存储介质 | |
CN110232029B (zh) | 一种基于索引的fpga中ddr4包缓存的实现方法 | |
CN113126911B (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
CN101365088A (zh) | 一种硬盘录像方法 | |
CN108494704A (zh) | 一种基于通道的双缓冲技术的实时数据流处理方法 | |
CN107122320B (zh) | 一种基于fpga实现pcm音频播放装置及系统及方法 | |
CN108833200A (zh) | 一种大数据文件自适应单向传输方法及装置 | |
US20070081528A1 (en) | Method and system for storing data packets | |
CN102831073B (zh) | 一种内存数据处理方法和系统 | |
CN101938404B (zh) | 用于数据流量管理的随机早期丢弃方法和装置 | |
CN115209216A (zh) | 视频的播放方法、装置及电子设备 | |
MX2008001567A (es) | Dispositivo de almacenamiento de datos de contenido y su metodo de control. | |
CN105592281A (zh) | Mpeg视频处理方法、装置和系统 | |
KR101124168B1 (ko) | 다채널 영상 녹화장치 | |
CN101894556B (zh) | 一种测试音频解码程序的方法和装置 | |
CN101505435A (zh) | 决定开启储存装置的功能种类的机顶盒测试方法 | |
CN116647713B (zh) | 一种多路视频写读优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180904 |