本发明涉及通信领域,更具体地涉及一种数据传输的方法及装置。
背景技术:
图像传感器是组成数字摄像头的重要组成部分。根据元件的不同,可分为电荷耦合元件(Charge Coupled Device,CCD)和金属氧化物半导体元件(Complementary Metal-Oxide Semiconductor,CMOS)两大类。随着低成本的CMOS图像传感器和视频压缩芯片的普及,对于音视频的无线传输的需求快速增长,现有的无线保真(Wireless Fidelity,WIFI)系统是最合适的传输方案。然而,现有的WIFI系统对音视频流的实时传输质量没有保障,数据报文的传输延时抖动很大,有些报文的延时超过音视频播放器能容忍的最大延时,从而导致播放的声音和/或画面不流畅,用户体验不好。
技术实现要素:
考虑到上述问题而提出了本发明。本发明提供了一种数据传输的方法,能够减少或避免播放器播放不流畅的情况,从而提升用户体验。
根据本发明的第一方面,提供了一种数据传输的方法,包括:
在第一时刻接收来自发送主机的第一报文;
在所述第一报文的基础上生成第二报文,其中所述第二报文包括所述第一时刻;
将所述第二报文发送至接收WIFI系统。
示例性地,如果接收到所述第二报文的确认报文,或者如果系统时刻到达或超过第二时刻,则丢弃所述第二报文;或
如果没有接收到所述第二报文的确认报文,且所述系统时刻位于所述第二时刻之前,则重发所述第二报文;
其中,所述第二时刻与所述第一时刻之差等于预设的报文存活时长。
示例性地,在所述第一报文的基础上生成第二报文,包括:
在所述第一报文的介质访问控制MAC帧头与MAC服务数据单元之间增加时间戳,以生成所述第二报文,其中,所述时间戳表示所述第一时刻。
第二方面,提供了一种数据传输的方法,包括:
接收第二报文,所述第二报文包括介质访问控制MAC服务数据单元和第一时刻,其中所述第一时刻表示所述MAC服务数据单元到达发送WIFI系统的时刻;
如果系统时刻到达或超过第三时刻,则将所述MAC服务数据单元传递给接收主机,其中,所述第三时刻与所述第一时刻之差等于预设的延时时长。
示例性地,所述第二报文中的MAC帧头与所述MAC服务数据单元之间包括时间戳,其中,所述时间戳表示所述第一时刻。
第三方面,提供了一种数据传输的装置,包括:接收模块、生成模块和发送模块,该装置可以用于实现前述第一方面所述的数据传输的方法。
第四方面,提供了一种计算机芯片,该计算机芯片包括处理器,当该处理器执行代码时,能够实现前述第一方面所述的数据传输的方法。
第五方面,提供了一种数据传输的装置,包括:接收模块和传递模块,该装置可以用于实现前述第二方面所述的数据传输的方法。
第六方面,提供了一种计算机芯片,该计算机芯片包括处理器,当该处理器执行代码时,能够实现前述第二方面所述的数据传输的方法。
本发明实施例中,发送WIFI系统通过在MPDU加入时间戳,可以保证报文从发送主机到接收主机端到端的延时,从而能够减少或避免不流畅的情况,保证音视频流等流数据的传输质量,提升用户体验。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是利用WIFI系统进行音视频传输的一个场景示意图;
图2是本发明实施例的数据传输的方法的一个示意性流程图;
图3是本发明实施例的第一报文的MPDU格式的一个示意图;
图4是本发明实施例的第二报文的MPDU格式的一个示意图;
图5是本发明实施例的数据传输的方法的另一个示意性流程图;
图6是本发明实施例的数据传输的方法的一个交互性流程图;
图7是本发明实施例的数据传输的装置的一个示意性框图;
图8是本发明实施例的数据传输的装置的另一个示意性框图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
图1是利用WIFI系统进行音视频传输的一个场景示意图。其中,发送主机10发送的报文经由发送WIFI(也称为发送WIFI系统)11发送,并由接收WIFI(也称为接收WIFI系统)21接收,从而报文可以传递至接收主机20并由接收主机20的播放设备播放报文携带的相关音视频。
具体地,发送主机10采集和生成音视频数据流,通过发送WIFI系统11发送;接收WIFI系统21接收音视频数据流,提交给接收主机20。
图2是本发明实施例的数据传输的方法一个示意性流程图。本发明实施例中的数据传输的方法是WIFI系统之间的流媒体传输的方法。图2所示的方法由发送WIFI系统11执行,包括:
S101,在第一时刻接收来自主机的第一报文。
具体地,发送主机10可以通过主机接口发送第一报文给发送WIFI系统11,发送WIFI系统11记录该第一报文从发送主机10进入到发送WIFI系统11的时刻,该进入的时刻即为第一时刻,可以表示为timestamp。
其中,发送主机10所生成的第一报文,即发送WIFI系统11接收到的第一报文,可以是基于介质访问控制(Media Access Control,MAC)层协议的MAC协议数据单元(MAC Protocol Data Unit,MPDU)。如图3所示,MPDU可以包括MAC帧头、MAC服务数据单元(MAC Service Data Unit,MSDU)和帧校验序列(Frame Check Sequence,FCS)。也即是说,发送主机10可以在MSDU前加上MAC帧头,在MSDU后加上作为循环冗余校验(Cyclic Redundancy Check,CRC)的FCS从而生成第一报文。
其中,发送主机10上具有主机接口,用于与发送WIFI系统11进行连接。
S102,在所述第一报文的基础上生成第二报文,其中第二报文包括所述第一时刻。
示例性地,可以将第一报文的MPDU格式进行修改,以生成第二报文。具体地,可以在第一报文的MAC帧头和MSDU之间增加时间戳(timestamp),以生成第二报文,其中,所述时间戳表示所述第一时刻。
S102中的第二报文具有修改后的MPDU格式,如图4所示。修改后的MPDU格式包括:MAC帧头、时间戳、MSDU和FCS。
S103,将所述第二报文发送至接收WIFI系统。
本发明实施例中,发送WIFI系统可以预先存储有报文存活时长,表示为lifespan。该报文存活时长可以是预先设定的。
在S101之后,可以标定第二时刻为第一时刻加报文存活时长。若将第二时刻标记为deadline,则deadline=timestamp+lifespan。
可选地,报文存活时长也可以称为最大报文存活期,第二时刻也可以称为报文的最后发送时刻,本发明对此不限定。
示例性地,发送WIFI系统11中可以设置有定时器等以记录其系统时间,例如可以根据时间同步功能(Timing Synchronization Function,TSF)由系统时钟(System Timer)获得系统时刻。可理解,本发明实施例中的发送WIFI系统和接收WIFI系统均具有TSF,因此,发送WIFI系统的系统时钟和接收WIFI系统的系统时钟是同步的。在S103中,若系统时刻位于所述第二时刻之前,则向接收WIFI系统发送第二报文。
示例性地,在S103之后,如果接收到接收WIFI系统21发送的确认(Acknowledgement,ACK)报文,即接收到关于第二报文的ACK响应,则说明该第二报文已经传输成功,发送WIFI系统11可以丢弃第二报文。
示例性地,在S103之后,如果系统时刻到达或超过所述第二时刻,则可以丢弃第二报文。
示例性地,在S103之后,如果没有接收到确认报文,且系统时刻位于第二时刻之前,则可以重发第二报文。
其中,确认报文是接收WIFI系统21发送的针对于第二报文的响应报文。
图5是本发明实施例的数据传输的方法的另一个示意性流程图。图5所示的方法可以由接收WIFI系统21执行,包括:
S201,接收第二报文,所述第二报文包括MAC服务数据单元(MSDU)和第一时刻,其中所述第一时刻表示所述MSDU到达发送WIFI系统的时刻。
如前述图2的实施例中关于第二报文的描述,该第二报文的MPDU格式可以如图4所示。
S202,如果系统时刻到达或超过第三时刻,则将所述MSDU传递给接收主机,其中,所述第三时刻与第一时刻之差等于预设的延时时长。
示例性地,接收WIFI系统21可以预先存储有延时时长,表示为receiving_delay,也可以称为接收延时时长。一般地,延时时长大于报文存活时长,即receiving_delay>lifespan。举例来说,receiving_delay=0.8秒(s),lifespan=0.5s。
在S201之后,可以先确定第三时刻,第三时刻可以称为报文提交给主机的时刻,表示为submission_time。如前所述,第一时刻表示为timestamp,从而满足:submission_time=timestamp+receiving_delay。
示例性地,发送WIFI系统和接收WIFI系统均具有TSF,因此,发送WIFI系统的系统时钟和接收WIFI系统的系统时钟是同步的。在S202中,接收WIFI系统可以由其系统时钟获取系统时刻。如果系统时刻到达或超过第三时刻,则接收WIFI系统21可以通过主机接口将所述MSDU传递给接收主机20。
这样,接收WIFI系统在第一报文的发送时刻(即第一时刻timestamp)之后的固定时长(即延时时长receiving_delay)后,将MSDU发送至接收主机,这样能够避免由于传输延时导致的到达接收主机的时刻不一致而造成的抖动和不流畅现象,从而提升用户体验。
图6是本发明实施例的数据传输的方法的一个交互性流程图。图6中的相关附图标记可以参照前述图2或图5的相关记载,为避免重复,这里不再赘述。
由此可见,本发明实施例中,发送WIFI系统通过在MPDU加入时间戳,可以保证报文从发送主机到接收主机端到端的延时,从而能够减少或避免不流畅的情况,保证音视频流等流数据的传输质量,提升用户体验。
图7是本发明实施例的数据传输的装置的一个示意性框图。图7所示的装置70包括接收模块701、生成模块702和发送模块703。
接收模块701,用于在第一时刻接收来自发送主机的第一报文。
生成模块702,用于在所述接收模块701接收的所述第一报文的基础上生成第二报文,其中所述第二报文包括所述第一时刻。
发送模块703,用于将所述生成模块702生成的所述第二报文发送至接收WIFI系统。
示例性地,装置70还可以包括丢弃模块,用于如果接收到所述第二报文的确认报文,或者如果系统时刻到达或超过第二时刻,则丢弃所述第二报文。或者,装置70还可以包括重发模块,用于如果没有接收到所述第二报文的确认报文,且所述系统时刻位于所述第二时刻之前,则重发所述第二报文。其中,所述第二时刻与所述第一时刻之差等于预设的报文存活时长
应理解,装置70可以同时包括重发模块和丢弃模块,即可以在由重发模块执行至少一个重发之后,由丢弃模块丢弃第二报文。
示例性地,生成模块702具体用于:在所述第一报文的MAC帧头与MAC服务数据单元之间增加时间戳,以生成所述第二报文,其中,所述时间戳表示所述第一时刻。
图7所示的装置70能够实现前述图2或图6所示的由发送WIFI系统11执行的数据传输的方法,为避免重复,这里不再赘述。
可选地,装置70为前述的发送WIFI系统11。
另外,本发明实施例还提供了另一种数据传输的装置,该装置可以包括至少一个处理器和存储器,处理器与存储器通过总线系统等进行连接通信。其中,存储器用于存储指令,处理器可以用于执行存储器所存储的指令,且处理器执行该指令时可以实现前述图2或图6所示的由发送WIFI系统11执行的数据传输的方法。
处理器可以是中央处理单元(Central Processing Unit,CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制该发送节点中的其它组件以执行期望的功能。
存储器可以是易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(Random Access Memory,RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(Read Only Memory,ROM)、硬盘、闪存等。
存储器可以存储一个或多个程序指令,处理器可以运行所述程序指令,以实现上述由发送WIFI系统执行的数据传输的方法。
图8是本发明实施例的数据传输的装置的另一个示意性框图。图8所示的装置80包括接收模块801和传递模块802。
接收模块801用于接收第二报文,所述第二报文包括MAC服务数据单元(MSDU)和第一时刻,其中所述第一时刻表示所述MAC服务数据单元到达发送WIFI系统的时刻。
传递模块802,用于如果系统时刻到达或超过第三时刻,则将所述MAC服务数据单元传递给接收主机,其中,所述第三时刻与所述第一时刻之差等于预设的延时时长。
示例性地,所述第二报文中的MAC帧头与所述MAC服务数据单元之间包括时间戳,其中,所述时间戳表示所述第一时刻。
图8所示的装置80能够实现前述图5或图6所示的由接收WIFI系统21执行的数据传输的方法,为避免重复,这里不再赘述。
可选地,装置80为前述的接收WIFI系统21。
另外,本发明实施例还提供了另一种数据传输的装置,该装置可以包括至少一个处理器和存储器,处理器与存储器通过总线系统等进行连接通信。其中,存储器用于存储指令,处理器可以用于执行存储器所存储的指令,且处理器执行该指令时可以实现前述图5或图6所示的由接收WIFI系统21执行的数据传输的方法。
处理器可以是CPU或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制该发送节点中的其它组件以执行期望的功能。
存储器可以是易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括RAM和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括ROM、硬盘、闪存等。
存储器可以存储一个或多个程序指令,处理器可以运行所述程序指令,以实现上述由接收WIFI系统执行的数据传输的方法。
由此可见,本发明实施例中,发送WIFI系统通过在MPDU加入时间戳,可以保证报文从发送主机到接收主机端到端的延时,从而能够减少或避免不流畅的情况,保证音视频流等流数据的传输质量,提升用户体验。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的物品分析设备中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。