CN117155824A - 一种数据传输方法、电子设备及系统 - Google Patents
一种数据传输方法、电子设备及系统 Download PDFInfo
- Publication number
- CN117155824A CN117155824A CN202210549309.0A CN202210549309A CN117155824A CN 117155824 A CN117155824 A CN 117155824A CN 202210549309 A CN202210549309 A CN 202210549309A CN 117155824 A CN117155824 A CN 117155824A
- Authority
- CN
- China
- Prior art keywords
- packets
- data
- data packets
- electronic device
- receiving
- 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
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000005540 biological transmission Effects 0.000 title claims abstract description 68
- 230000006854 communication Effects 0.000 claims abstract description 101
- 238000004891 communication Methods 0.000 claims abstract description 100
- 230000015654 memory Effects 0.000 claims description 32
- 238000012937 correction Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 description 36
- 238000012545 processing Methods 0.000 description 31
- 239000010410 layer Substances 0.000 description 29
- 238000007726 management method Methods 0.000 description 25
- 238000010295 mobile communication Methods 0.000 description 14
- 230000005236 sound signal Effects 0.000 description 14
- 230000000694 effects Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000005266 casting Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 239000000523 sample Substances 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000003416 augmentation Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000010985 leather Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 101150067085 los1 gene Proteins 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供了一种数据传输方法、电子设备及系统,方法包括:发送端分别与至少两个接收端建立通信连接;发送端向至少两个接收端发送K个数据包,K为大于1的正整数;发送端接收来自至少两个接收端的丢包数量,丢包数量用于指示接收端丢失的数据包的数量;发送端基于至少两个接收端的丢包数量,获得重传包数量R,R为正整数;发送端向至少两个接收端发送R个校验包,R个校验包是基于K个数据包生成的校验数据,R个校验包用于至少两个接收端分别基于接收到的数据包还原K个数据包。实施本申请实施例,可以减少发生丢包时发送端需要重发的数据量,有效提高数据传输的效率。
Description
技术领域
本申请实施例涉及通信技术,尤其涉及一种数据传输方法、电子设备及系统。
背景技术
随着通信技术的发展,数据传输在手机、平板和智能电视等电子设备中使用越来越广泛。数据在网络中是被分成多个数据包传输的,由于环境等因素的干扰,在数据包的传输过程中经常出现部分数据包被丢失(即丢包)的现象。
丢包现象会对数据的应用造成极大影响,从而影响用户的体验感。例如,在视频通话中丢包可能造成的影响包括图像质量上的影响,如马赛克现象、局部变形(图像的某些区域不清晰)、图像模糊、屏幕频繁刷新或闪烁、视音频不同步、帧率下降、图像静止等;音频质量上的影响包括总体音频失真、间断或间歇性噪音、音频中断等。又例如,在演示幻灯片过程中丢包可能造成幻灯片模糊变形、翻页速度减慢或屏幕频繁刷新和图像静止等影响。
针对丢包问题,现有技术中往往通过重新发送全部原始数据,或发送基于前向纠错技术得到的原始数据对应的校验包,以使接收端接收到全部的原始数据。上述方法需要发送的数据量较大,数据传输效率低。
发明内容
本申请提供了一种数据传输方法、电子设备及系统,该数据传输方法中,发送端可以通过至少两个接收端反馈的丢包数量得到重传包数量,从而减少发生丢包时发送端需要重发的数据量,有效提高数据传输的效率。
第一方面,本申请实施例提供了一种数据传输方法,应用于发送端,该方法包括:
发送端分别与至少两个接收端建立通信连接;
发送端向至少两个接收端发送K个数据包,K为大于1的正整数;
发送端接收来自至少两个接收端的丢包数量,丢包数量用于指示接收端丢失的数据包的数量;
发送端基于至少两个接收端的丢包数量,获得重传包数量R,R为正整数;
发送端向至少两个接收端发送R个校验包,R个校验包是基于K个数据包生成的校验数据,R个校验包用于至少两个接收端分别基于接收到的数据包还原K个数据包。
实施本申请实施例,在发送端向至少两个接收端发送K个数据包时,K为大于1的正整数,接收端在接收到数据包后会向发送端反馈本端的丢包数量;进而,发送端可以来自至少两个接收端发送的丢包数量得到重传包数量R,R为正整数。由于该重传包数量是结合至少两个接收端的丢包情况确定的,重传的数据包为校验包,因此,发送端不需要向每个接收端分别重传数据包,而仅需要向至少两个接收端发送R个校验包,即可使至少两个接收端分别基于接收到的数据包和R个校验包还原K个数据包。
结合第一方面,在一种可能的实施方式中,R的取值为至少两个接收端的丢包数量中数值最大的值。
可以理解的,一对多传输过程中,若采用一对一的重传方法,将由于接收端丢包情况不一样而产生大量重传数据包,传输效率低。本申请实施例中,发送端可以预先计算校验包,发送数据包后接收各接收端反馈的丢包数量,取其最大值作为重传包数量,进而传输该数量的校验包。
可见,要实现相同的技术效果,本申请实施例需要传输的校验包个数远远小于现有技术重传的数据包的个数,由于校验包与数据包的大小基本一致,因此本申请实施例可以有效减少传输过程中的数据量,提高数据传输的效率。
在一种可能的实施方式中,R的取值可以大于至少两个接收端的丢包数量中数值最大的值。
本申请实施例中,为保证每一个接收端均可以基于接收到的数据包和R个校验包还原K个数据包,R的取值至少为至少两个接收端的丢包数量中数值最大的值。但是为了防止丢包情况的再次发生,发送端可以基于丢包的历史情况或预设幅值,在得到至少两个接收端的丢包数量中数值最大的值后确定R值,使R大于至少两个接收端的丢包数量中数值最大的值,从而保证每一个接收端均可以成功基于接收到的数据包和R个校验包还原K个数据包。
结合第一方面,在一种可能的实施方式中,K个数据包中每一个数据包包括指示信息,指示信息用于指示K个数据包的个数。
本申请实施例中,接收端接收到的数据包中包括指示K的指示信息,那么,接收端可以将K和接收到的数据包的数量之差确定为第一丢包数量。
可选的,K个数据包中每一个数据包均可以包括指示K的指示信息,则接收端在接收到K个数据包中任一个数据包时,都可以基于上述指示信息确定数据包的总数为K,从而将K和接收端接收到的数据包的数量之差确定为丢包数量。其中,上述指示信息位于K个数据包中每一个数据包的包头。
结合第一方面,在一种可能的实施方式中,在发送端向至少两个接收端发送R个校验包之前,方法还包括:
发送端基于前向纠错算法,生成K个数据包对应的N个校验包;
发送端从N个校验包中获取R个校验包。
结合第一方面,在一种可能的实施方式中,发送端向至少两个接收端发送数据的方式为广播。
本申请实施例中,发送端向至少两个接收端发送数据的方式为广播。可以理解的,发送端通过广播的方式向多个接收端发送K个数据包,则发送端只需要发送一次数据,可以提高数据传输的效率。
第二方面,本申请实施例提供了一种数据传输方法,应用于接收端,该方法包括:
接收端与发送端建立通信连接;
接收端接收来自发送端的数据包;
接收端基于接收到的数据包,得到丢失的数据包的丢包数量;
接收端将丢包数量发送至发送端;
接收端接收来自发送端的R个校验包,R不小于丢包数量;R个校验包是基于K个数据包生成的校验数据;K个数据包包括接收到的数据包;
接收端基于接收到的数据包和R个校验包还原K个数据包。
结合第二方面,在一种可能的实施方式中,方法还包括:
接收端接收指示信息,指示信息用于指示K个数据包的个数;
接收端确定丢包数量为K与接收到的数据包的个数之差。
本申请实施例中,一对多传输过程中,若采用一对一的重传方法,将由于接收端丢包情况不一样而产生大量重传数据包,传输效率低。本申请实施例中,发送端可以预先计算校验包,发送数据包后接收各接收端反馈的丢包数量,取其最大值作为重传包数量,进而传输该数量的校验包,该方法可以减少重传包的数量,提升一对多传输过程的传输效率。
在一种可能的实施方式中,发送端向至少两个接收端发送数据的方式可以为广播。可以理解的,发送端通过广播的方式向多个接收端发送K个数据包,则发送端只需要发送一次数据,可以提高数据传输的效率。
结合第二方面,在一种可能的实施方式中,K个数据包中每一个数据包包括指示信息。
结合第二方面,在一种可能的实施方式中,R为发送端接收到的丢包数量中数值最大的丢包数量。
在一种可能的实施方式中,R的取值可以大于至少两个接收端的丢包数量中数值最大的值。
本申请实施例中,为保证每一个接收端均可以基于接收到的数据包和R个校验包还原K个数据包,R的取值至少为至少两个接收端的丢包数量中数值最大的值。但是为了防止丢包情况的再次发生,发送端可以基于丢包的历史情况或预设幅值,在得到至少两个接收端的丢包数量中数值最大的值后确定R值,使R大于至少两个接收端的丢包数量中数值最大的值,从而保证每一个接收端均可以成功基于接收到的数据包和R个校验包还原K个数据包。
第三方面,本申请实施例提供了一种电子设备,包括一个或多个功能模块,该一个或多个功能模块可用于执行如上述第一方面中任一项可能的实现方式中的数据传输方法。
第四方面,本申请实施例提供了一种电子设备,包括一个或多个功能模块,该一个或多个功能模块可用于执行如上述第二方面中任一项可能的实现方式中的数据传输方法。
第五方面,本申请提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得通信装置执行上述第一方面任一项可能的实现方式中的数据传输方法。
第六方面,本申请提供了一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得通信装置执行上述第二方面任一项可能的实现方式中的数据传输方法。
第七方面,本申请提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第一方面任一项可能的实现方式中的数据传输方法。
第八方面,本申请提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述第二方面任一项可能的实现方式中的数据传输方法。
第九方面,本申请提供了一种芯片,包括:处理器和接口,所述处理器和接口相互配合,使得所述芯片执行上述第一方面任一项可能的实现方式中的数据传输方法。
第十方面,本申请提供了一种芯片,包括:处理器和接口,所述处理器和接口相互配合,使得所述芯片执行上述第二方面任一项可能的实现方式中的数据传输方法。
可以理解地,上述第三方面和第四方面提供的电子设备、第五方面和第六方面提供的计算机可读存储介质、第七方面和第八方面提供的计算机程序产品、第九方面和第十方面提供的芯片均用于执行本申请实施例所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1A是本申请实施例提供的一种数据传输系统的示意图;
图1B是本申请实施例提供的一种投屏场景下的数据传输系统的示意图;
图1C是本申请实施例提供的一种视频播放场景下的系统结构的示意图;
图2是本申请实施例提供的一种电子设备100的硬件结构示意图;
图3是本申请实施例提供的一种发送端101的软件结构框图;
图4是本申请实施例提供的一种接收端的硬件结构示意图;
图5是本申请实施例提供的一种数据传输方法流程图;
图6A-图6D示例性示出了第一电子设备与第二电子设备建立通信连接的用户界面;
图7是本申请实施例提供的一种显示投屏内容的示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请以下实施例中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接收形式之间的转换。用户界面是通过java、可扩展标记语言(extensible markuplanguage,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
在基于数据包的通信网络中,尤其是不具有受保证的服务质量的互联网协议(Internet Protocol,IP)网络中,数据传输时经常会遭受不定数量的数据包丢失,数据包丢失的原因很多,例如可能是路由器或数据段过载、数据包中比特误差造成;在流媒体传输,特别是压缩的视频数据的传输中,受数据包丢失的影响很大。
在实施数据包恢复的技术方案中,可以利用重传(Automatic Repeat-reQuest,ARQ)、前向纠错(ForwardError Correction,以下简称FEC)或者重传与前向纠错结合的方法来恢复数据包,但对于流媒体业务而言,其对实时性的要求很高,尤其是在直播、组播、快进快退模式和视频通话的情况下,采用重传的方式来解决丢包问题存在很大的局限性。
其中,自动重传技术是指发送端向接收端发送数据,等待接收端反馈接收情况,若在一定时间内没接收到接收端的确认信息则重新发送数据,以解决丢包问题。该方法需要重传所有丢失的数据包,在发送端给多个接收端传输数据的情况下,由于各接收端丢包情况不同会导致重传包数量增加,重传效率降低。
其中,FEC是通过发送冗余信息来恢复被损坏、被丢弃或丢失的数据包中所包含的数据,该冗余信息可以被接收器用来重构丢失的数据,因此,FEC可以提供比重传更快的数据恢复,FEC尤其适合于流媒体传输。其中,该冗余信息是基于原始数据生成的校验数据,也可以称为校验包。
具体的,前向纠错技术可以根据待发送M个原始数据包预先计算出N个校验包,并通过M+N个原始数据包和校验包中的任意M个数据,还原M个原始数据包。那么,如果有任意小于等于N个的数据失效,仍然能通过剩下的数据还原出来。其中,M和N均为正整数。现有技术中,发送端通常将M个数据包与N个校验包同时发送给接收端,当M个数据包部分丢失时,可以根据N个校验包还原完整的M个数据包,解决丢包问题。该方法在发送端给多个接收端传输数据的情况下,需要发送的数据量大。
本申请的发明人发现在发送端向多个接收端传输数据的情况下,即一对多传输的场景下,上述数据传输方法为保证接收端接收到全部的原始数据,需要传输的数据量较大,数据传输效率较低。
其中,一对多传输的场景是指发送端向至少两个接收端发送数据的场景,具体可以包括一对多投屏以及一对多遥控等场景等。例如在未来驾驶舱场景下,发送端周边的终端设备可能包括抬头显示仪、液晶仪表盘、车载中控屏等,这些均可以作为本申请实施例中的接收端。又例如,发送端为投屏设备时,接收端可以为被投屏设备,可同时包括:平板电脑、个人电脑、电视、车机、智能手表、耳机、音响、虚拟现实设备和增强现实设备等。或者根据实际需求,可以减少或添加更多其他设备。
因此,本申请实施例提出了一种数据传输方法、电子设备和系统,该方法通过接收端反馈的丢包数量确定重传包数量,可以减少丢包时需要重发的数据量,有效提高数据传输的效率。
例如,在一对一ARQ的场景中,发送端给接收端发送n个数据包,n个数据包分别为[M1,M2,…,Mn],若接收端检测到未接收到[M2,M3]这两个包,则将丢包信息loss=[M2,M3]发送给发送端以通知发送端重传。
在一对多ARQ的场景中,发送端向x个接收端发送n个数据包,x个接收端分别为[接收端1,接收端2,…接收端i…接收端x],n个数据包分别为[M1,M2,…,Mn],其中,接收端i为x个接收端中的一个接收端。假如接收端1检测到丢包loss1=[M2,M3],接收端2检测到丢包loss2=[M3,M4],接收端i检测到丢包lossi=[M5],此时发送端需要重传的数据包是loss1、loss2和lossi的并集[M2,M3,M4,M5]。
执行本申请实施例,在与上述一对多场景发包丢包情况一致的时候,loss1是丢失2包,loss2丢失2包,lossi丢失1包,发送端需要重传的包是max(2,2,1)=2,即重传校验包中的任意两包[Nx,Ny]即可。可见,要实现相同的技术效果,本申请实施例需要传输的校验包个数远远小于现有技术重传的数据包的个数,由于校验包与数据包的大小基本一致,因此本申请实施例可以有效减少传输过程中的数据量,提高数据传输的效率。
为了更加清楚、详细地介绍本申请实施例提供的数据传输方法,下面先介绍本申请实施例提供的数据传输系统10。
如图1A所示,该数据传输系统10可以包括发送端101和接收端102。其中,接收端102包括至少两个接收端,如图1A所示,接收端102可以包括N个接收端,N个接收端包括第一接收端、第二接收端至第N接收端,其中,N为大于1的正整数。
其中,发送端101可以通过无线通信方式(例如,无线保真(wireless fidelity,Wi-Fi),蓝牙等)和接收端102建立无线连接。发送端101可以通过无线连接向接收端102传输文件数据,或者,发送端101可以将应用界面投屏至接收端102上显示等。在数据传输系统10中,可以使用实时流传输协议(Real Time Streaming Protocol,RTSP)控制实时数据的传输。RTSP是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制。发送端101可以通过RTSP控制数据流的传输。
例如,在利用在Wi-Fi点对点(peer to peer,P2P)技术进行投屏业务时,发送端101可以将压缩之后的H.264格式的视频或高级音频编码(advanced audio coding,AAC)格式的音频混合成传输流(transport stream,TS)文件,并使用RTSP协议将该TS文件通过Wi-Fi P2P发送给接收端102,接收端102通过RTSP协议接收来自发送端101的TS文件并解码播放。其中,H.264是视频编解码协议,ACC是音频编解码协议。
在一些实施例中,发送端101可以分别向N个接收端中每一个接收端发送K个数据包,K为大于1的整数;N个接收端中每一个接收端在接收来自发送端101的数据包后,确定丢包数量,将丢包数量反馈至发送端101;进而,发送端101基于接收到的丢包数量集合,将数值最大的丢包数量确定为重传包数量R,进而,发送端可以将N个接收端中每一个接收端发送R个校验包,其中,R个校验包是基于K个数据包通过前向纠错算法生成的校验数据;N个接收端中每一个接收端在接收到R个校验包后,可以基于R个校验包和接收到的数据包通过FEC解码还原K个数据包。
其中,在本申请实施例中,发送端101可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备等等。
接收端102可以是平板、显示器、电视机、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机、上网本,增强现实设备、虚拟现实设备、人工智能设备、车载设备、智能家居设备等等。
在本申请的一些实施例中,数据传输系统10还可包括:Wi-Fi接入点和服务器。发送端101可以接入Wi-Fi接入点。服务器可以提供网络音视频服务。示例性地,服务器可以为存储有多种多样的图像资源的服务器,例如可以是提供音视频服务的华为视频服务器。服务器的数量可以为一个,也可以为多个。当发送端使用投屏技术向接收端102共享图像资源时,示例性地,该图像资源可以是发送端运行视频类应用程序时通过Wi-Fi接入点向服务器获取的网络视频。
以下以投屏场景为例,介绍另一种数据传输系统20。请参见图1B,图1B示例性示出了投屏场景下的数据传输系统20。
如图1B所示,该数据传输系统20可以包括投屏设备201和被投屏设备202。其中,被投屏设备202包括至少两个被投屏设备,如图1B所示,被投屏设备202可以包括第一电子设备和第二电子设备。
在一些实施例中,投屏设备201可以通过广播的方式向被投屏设备202发送投屏数据。进而,被投屏设备202可以接收来自投屏设备201发送的投屏数据,将该投屏数据对应的显示内容显示至被投屏设备202的显示屏上。
本申请实施例中,投屏设备201可以将K个数据包和指示K的指示信息发送至第一电子设备和第二电子设备,K为大于1的整数;第一电子设备和第二电子设备在接收到来自投屏设备201的数据包和指示信息后,基于接收到的数据包的个数和K确定丢包数量,进而,第一电子设备和第二电子设备分别将确定的丢包数量发送至投屏设备201;进而,投屏设备201可以基于接收到的丢包数量,确定重传包数量R,R为正整数,将R个校验包发送至第一电子设备和第二电子设备,其中,R个校验包是基于K个数据包通过前向纠错算法生成的校验数据;第一电子设备和第二电子设备在接收到R个校验包后,可以基于R个校验包和接收到的数据包通过FEC解码还原K个数据包,进而,将K个数据包对应的投屏内容显示至显示屏上。
在一些实施例中,投屏设备201可以在被投屏设备202上投屏视频内容。
请参见图1C,图1C示例性示出了视频播放场景下的系统结构。如图1C所示,投屏设备201可以包括视频编码模块、数据封装模块和FEC编码器;在IP网络的另一侧,即被被投屏设备202,可以包括FEC解码器和播放器。
其中,视频编码模块用于对视频进行编码;数据封装模块对视频编码后的码流数据进行封装,得到数据包;FEC编码器可以基于前向纠错算法对数据包进行编码,得到K个数据包和N个校验包,通过IP网络传输到被投屏设备202。被投屏设备202的FEC解码器能够基于接收到的数据包和校验包,根据前向纠错算法恢复丢失的数据包,最后由播放器进行视频播放。
在本申请实施例中,被投屏设备202的设备个数大于1,可以实现投屏设备201到被投屏设备202的一对多投屏。其中,被投屏设备202可以是包含独立系统或者非独立系统的设备及屏幕。例如在未来驾驶舱场景下,周边的终端设备可能包括抬头显示仪、液晶仪表盘、车载中控屏等,这些均可以作为本申请实施例中的被投屏设备202。又例如,当投屏设备201为手机时,被投屏设备202可同时包括:平板电脑、个人电脑、电视、车机、智能手表、耳机、音响、虚拟现实设备和增强现实设备。或者根据实际需求,可以添加更多其他设备。
图2示出了电子设备100的硬件结构示意图。
下面以发送端101为电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
SIM接口可以被用于与SIM卡接口195通信,实现传送数据到SIM卡或读取SIM卡中数据的功能。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用(比如人脸识别功能,指纹识别功能、移动支付功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如人脸信息模板数据,指纹信息模板等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180G检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,电子设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于合成请求,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。
本申请实施例中,电子设备100可以通过处理器110执行所述数据传输方法。
图3是本申请实施例提供的发送端101的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息和投屏管理等应用程序。
在一些实施例中,用户可以通过投屏管理与其他设备进行通信连接,进而将图像资源投屏在建立通信连接的设备界面。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图3所示,应用程序框架层可以包括显示(display)管理器,传感器(sensor)管理器,跨设备连接管理器,事件管理器,任务(activity)管理器,窗口管理器,内容提供器,视图系统,资源管理器,通知管理器等。
显示管理器用于系统的显示管理,负责所有显示相关事务的管理,包括创建、销毁、方向切换、大小和状态变化等。一般来说,单设备上只会有一个默认显示模块,即主显示模块。
在处于投屏场景时,发送端101可创建多个虚拟显示模块,异源投屏就是创建了一个虚拟的显示模块承载应用的显示并用于投屏。
本申请实施例中,发送端可以通过显示管理器执行显示多个投屏窗口,并对投屏窗口和其显示内容进行调整,具体调整过程可以参见下文中的相关内容。
传感器管理器负责传感器的状态管理,并管理应用向其监听传感器事件,将事件实时上报给应用。
跨设备连接管理器用于和接收端102建立通信连接,基于该通信连接向接收端102发送图像资源。
事件管理器用于系统的事件管理服务,负责接收底层上传的事件并分发给各窗口,完成事件的接收和分发等工作。
任务管理器用于任务(Activity)组件的管理,包括启动管理、生命周期管理、任务方向管理等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。窗口管理器还用于负责窗口显示管理,包括窗口显示方式、显示大小、显示坐标位置、显示层级等相关的管理。
以上各个实施例的具体执行过程可以参见下文中数据传输方法的相关内容。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库(也可称为数据管理层)可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)和事件数据等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
在本申请实施例中,系统库具体用于跨设备场景下数据管理。发送端101将系统库中的图层数据、音视频等数据发送至接收端102,接收端102将事件数据发送至发送端101完成事件流程,同时互相传输的还有一些其它的数据。例如,本申请实施例中的传感器数据,接收端102将传感器数据状态实时传输给发送端101,发送端101中虚拟显示模块的显示才能正确根据接收端102的传感器状态来控制显示。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
在本申请实施例中,内核层提供设备的发现、设备的认证、设备的连接等能力,并向上上报设备发现离开等事件。
接下来本申请实施例以电子设备200为例介绍接收端102的硬件结构和软件结构。
如图4所示,接收端102可包括:处理器222、存储器223、无线通信模块224、电源开关225、显示屏229、音频模块230。在一些实施例中,接收端102还可以包括有线LAN通信处理模块226、高清晰度多媒体接口(high definition multimedia interface,HDMI)通信处理模块227、USB通信处理模块228等。上述各个模块可通过总线连接。其中:
处理器222可用于读取和执行计算机可读指令。具体实现中,处理器222可主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责执行定点或浮点算数运算操作、移位操作以及逻辑操作等,也可以执行地址运算和转换。寄存器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。具体实现中,处理器222的硬件架构可以是专用集成电路(ASIC)架构、MIPS架构、ARM架构或者NP架构等等。
在本申请实施例中,处理器222可以用于解析无线通信模块224接收到的信号,如发送端101发送的新URL,根据该新的URL获取播放列表中的多个视频和关联视频。
无线通信模块224可以包括WLAN通信处理模块。可选的,无线通信模块224还可包括蓝牙(BT)通信处理模块、NFC处理模块、蜂窝移动通信处理模块(未示出)等等。
在本申请实施例中,无线通信模块224可用于和发送端101建立通信连接。无线通信模块224和发送端101建立的通信连接可以为多种。例如,WLAN通信处理模块可用于和发送端101建立Wi-Fi直连通信连接,蓝牙(BT)通信处理模块可用于和发送端101建立蓝牙通信连接,NFC处理模块可用于和发送端101建立NFC连接等等。
在本申请实施例中,无线通信模块224还可以用于和发送端101建立通信连接,并基于该通信连接接收发送端101发送的视频流。无线通信模块224和发送端101建立的通信连接可以基于HTTP协议进行数据传输,本申请对设备间的通信连接类型、数据传输协议不作任何限制。
存储器223与处理器222耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器223可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器223可以存储操作系统,例如uCOS、VxWorks、RTLinux等嵌入式操作系统。存储器223还可以存储通信程序,该通信程序可用于与发送端101,一个或多个服务器,或附加设备进行通信。
电源开关225可用于控制电源向接收端102的供电。
有线LAN通信处理模块226可用于通过有线LAN和同一个LAN中的其他设备进行通信,还可用于通过有线LAN连接到WAN,可与WAN中的设备通信。
HDMI通信处理模块227可用于通过HDMI接口(未示出)与其他设备进行通信。
USB通信处理模块228可用于通过USB接口(未示出)与其他设备进行通信。
显示屏229可用于投屏页面,视频等。显示屏229可以采用LCD、OLED、AMOLED、FLED、QLED等显示屏。显示屏229所显示的内容可参考后续方法实施例的相关描述。
在本申请实施例中,显示屏229可以根据无线通信模块224接收到服务器发送的播放列表和关联视频等多个视频的视频流,来实现连续播放多个视频。
音频模块230。音频模块230可用于通过音频输出接口输出音频信号,这样可使得接收端102支持音频播放。音频模块230还可用于通过音频输入接口接收音频数据。音频模块230可包括但不限于:麦克风、扬声器、受话器等等。
在一些实施例中,接收端102还可以包括RS-232接口等串行接口。该串行接口可连接至其他设备,如音箱等音频外放设备,使得显示器和音频外放设备协作播放音视频。
可以理解的是图1A示意的结构并不构成对接收端102的具体限定。在本申请另一些实施例中,接收端102可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
在一些实施例中,接收端102可以包括上述图2中所示的发送端101包括的硬件。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
接收端102的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构等等。示例性地,接收端102的软件系统可以包括但不限于 Linux或者其它操作系统。/>为华为的鸿蒙系统。
在一些实施例中,接收端102为Android系统,分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时和系统库,以及内核层。其中,应用程序层可以包括投屏管理的应用用于设备连接和投屏显示,应用程序框架层可以包括跨设备连接管理器,事件管理器,窗口管理器和显示管理器等,系统库可以包括媒体库和事件数据等,内核层用于设备发现,设备认证和设备连接等,其中各部分内容具体可以参见图3中的相关描述,此处不再赘述。
下面基于图1A所示的数据传输系统10的示意图、图2和图3所示的发送端的硬件和软件结构示意图、图4所示的接收端的硬件结构示意图,来详细描述本申请实施例提供的数据传输方法。
以至少两个接收端为第一接收端和第二接收端为例,图5示例性示出了本申请实施例提供的另一种数据传输方法流程。该数据传输方法可以包括以下部分或全部步骤:
需要说明的是,本申请实施例中,用户操作为用户的触控操作(例如点击操作、长按操作、上滑操作、下滑操作或侧滑操作),也可以为非接触操作(例如隔空手势),还可以为用户的语音指令,本申请实施例对此不做具体限制。
S501、发送端分别与第一接收端和第二接收端建立通信连接。
其中,发送端和第一接收端和第二接收端之间建立的通信连接可包括但不限于:Wi-Fi P2P通信连接、蓝牙通信连接、NFC连接等等。
在一些实施例中,发送端可以在接收到目标指令时,执行S501的操作。其中,该目标指令可以是用户或第三方设备输入的,也可以是由发送端自身主动生成的。具体需由实际应用场景确定。
以手机为发送端,智能电视和电脑为接收端为例,用户可以打开手机、智能电视和电脑的Wi-Fi功能并接入同一Wi-Fi网络。如果用户希望将手机中的显示内容投射至电脑和智能电视中显示,用户可以打开手机中的投屏APP;进而,手机检测到用户针对该投屏APP的用户操作,手机可以显示搜索到的位于同一Wi-Fi网络下的设备列表,例如,设备列表中包括智能电视的标识和电脑的标识。进而,如果检测到用户选中设备列表中智能电视和电脑的标识,则手机可通过WLAN直连功能与智能电视和电脑建立Wi-Fi连接。
另外,在用户选中设备列表中智能电脑或电脑的标识后,智能电视或电脑还可以提示用户确认建立与手机的Wi-Fi连接。例如,当智能电视检测到用户确认建立本次Wi-Fi连接后,手机可通过WLAN直连功能与智能电视建立Wi-Fi连接。又例如,用户打开智能电视和手机中的投屏APP后,智能电视还可以默认作为接入点(AP)显示二维码。二维码中可以携带智能电视的标识,例如电视的标识的MAC地址或IP地址等。进而,用户可使用手机中投屏APP提供的扫码功能扫描该二维码,从而获取智能电视的标识。这样,手机根据智能电视的标识,通过WLAN直连功能可与智能电视建立Wi-Fi连接。
在一些实施例中,智能电视、电脑与手机建立通信连接后,智能电视、电脑与手机A构成了一个设备组。该设备组内的成员是可以动态增加或减少的。
以下示例性的以投屏场景为例,介绍发送端与接收端建立通信连接的过程。以下以第一电子设备为发送端,第二电子设备为接收端为例进行详细介绍。
图6A-图6D示例性示出了第一电子设备与第二电子设备建立通信连接的用户界面。
图6A示例性示出了第一电子设备上的用于展示第一电子设备安装的应用程序的用户界面710。
如图6A所示,用户界面710可包括:状态栏711、页面指示符712、具有常用应用程序图标的托盘713,导航栏714,以及多个其他应用程序图标。其中:
状态栏711可包括:移动通信信号(又可称为蜂窝信号)的一个或多个信号强度指示符(例如信号强度指示符711A、信号强度指示符711B)、无线高保真(wireless fidelity,Wi-Fi)信号的一个或多个信号强度指示符711C,电池状态指示符711E、时间指示符711F。
当第一电子设备打开蓝牙后,状态栏711中还可以显示指示符711D,显示符711D可用于指示第一电子设备成功开启蓝牙。
页面指示符712可用于指示当前显示的页面与其他页面的位置关系。
具有常用应用程序图标的托盘713可以包括多个托盘图标(例如相机应用图标、通讯录应用图标、电话应用图标、信息应用图标),托盘图标在页面切换时保持显示。上述托盘图标是可选的,本申请实施例对此不做限定。
其他应用程序图标可以是多个应用图标,例如,图库应用图标715、华为视频应用图标、华为钱包应用图标、录音机应用图标、设置应用图标等。其他应用程序图标可分布在多个页面,页面指示符712还可以用于指示用户当前浏览的是哪一个页面中的应用程序。用户可以左右滑动其他应用程序图标的区域,来浏览其他页面中的应用程序图标。
导航栏714可包括返回键、主屏幕键、多任务键等系统导航键。
在一些实施例中,图6A所示的用户界面710可以为主屏幕界面(home screen)。可以理解的是,图6A仅仅示例性示出了第一电子设备的一个用户界面,不应构成对本申请实施例的限定。
如图6A及图6B所示,当第一电子设备检测到在显示屏上的向下滑动手势时,响应于该滑动手势,第一电子设备可以在用户界面710上显示窗口716。如图6B所示,窗口716中可以显示有控件716A,控件716A可接收开启/关闭电子设备的投屏功能的操作(例如触摸操作、点击操作)。控件716A的表现形式可以包括图标和/或文本(例如文本“无线投屏”、“投屏”、“多屏互动”等)。窗口716中还可以显示有其他功能例如Wi-Fi、蓝牙、手电筒等等的开关控件。
如图6B所示,第一电子设备可以检测到作用于控件716A的用于开启投屏功能的用户操作。在一些实施例中,第一电子设备检测到作用于控件716A的用户操作后,可以更改控件716A的显示形式,例如增加显示控件716A时的阴影等。
不限于在图6A所示的主界面上,用户还可以在其他界面上输入向下滑动的手势,触发第一电子设备显示窗口716。
不限于图6A及图6B示出的用户在窗口716中作用于控件716A的用户操作,在本申请实施例中,用于开启投屏功能的用户操作还可以实现为其他形式,本申请实施例不做限制。
例如,第一电子设备还可以显示设置(settings)应用提供的设置界面,该设置界面中可包括提供给用户的用于开启/关闭第一电子设备的投屏功能的控件,用户可通过在该控件上输入用户操作来开启第一电子设备的投屏功能。
如图6C所示,第一电子设备响应于图6B中检测到的用于开启投屏功能的用户操作,开启无线通信模块160中的WLAN、蓝牙或NFC中的一项或多项,并可以通过Wi-Fi直连、蓝牙、NFC中一项或多项无线通信技术发现该第一电子设备附近的可投屏的电子设备。例如,第一电子设备可以通过Wi-Fi直连技术扫描附近其他设备广播的探测请求(如proberequest帧),并发现附近的第二电子设备以及其他电子设备。如图6C所示,第一电子设备显示的用户界面710中包括窗口717。窗口717中可以显示有:界面指示符717A、图标717B、电子设备发现的电子设备的图像717C和标识717D。
其中,界面指示符717A用于指示该窗口717中显示的内容是开启投屏功能后发现的电子设备的信息。图标717B用于指示第一电子设备还在持续发现周围的其他电子设备。在第一电子设备还未发现附近的电子设备时,窗口717中显示的电子设备的数量为0。电子设备的图像717C和标识717D均可以被携带在电子设备广播的探测请求(如probe request帧)中。图像717C和/或标识717D可接收用户操作(例如触摸操作),响应于该用户操作,第一电子设备可以向该图像717C和/或标识717D对应的电子设备发起建立通信连接的请求。
图6D示例性示出了第二电子设备接收到第一电子设备发来的建立通信连接的请求后,在显示屏上显示的用户界面720。该用户界面720包括窗口721。窗口721用于提示用户第一电子设备请求建立通信连接。第二电子设备可以检测到确定与第一电子设备建立投屏的通信连接的操作,例如图6D所示的用户通过遥控器点击控件721A这一操作,响应于该操作,第二电子设备与第一电子设备建立了投屏的通信连接。或者,第二电子设备检测到拒绝与第一电子设备建立投屏的通信连接的操作,例如图6D所示的用户通过遥控器点击控件721B这一操作,响应于该操作,第二电子设备拒绝与第一电子设备建立投屏的通信连接。
不限于上述图6A-图6D示出的第一电子设备和第二电子设备之间建立通信连接的方式,在其他实施例中,还可以通过其他方式建立该通信连接,这里不做限制。例如,第二电子设备可以提供NFC标签,该NFC标签中携带有该第二电子设备的标识(例如MAC地址),当用户将第一电子设备靠近第二电子设备时,第一电子设备可以读取该NFC标签中的标识,并直接和该标识对应的该第二电子设备建立通信连接。该通信连接也可以为Wi-Fi P2P连接、蓝牙连接、NFC连接等等。
S502、发送端基于通信连接向第一接收端和第二接收端发送K个数据包,K为不小于2的正整数。
在一些实施例中,发送端可以通过广播的方式向第一接收端和第二接收端发送K个数据包,或者,通过单播的方法分别向第一接收端和第二接收端发送K个数据包。例如第一接收端和第二接收端均位于发送端的广播范围内,那么,在发送端广播上述K个数据包时,第一接收端和第二接收端可以接收来自发送端广播的数据包。
其中,K个数据包可以是视频数据,也可以是文字数据,此处不作限定。例如,在投屏场景中,K个数据包可以是投屏数据,例如视频或图像等数据。
可选的,K个数据包中每一个数据包均可以包括指示K的指示信息。可以理解的,在接收端接收到K个数据包中任一个数据包时,都可以基于上述指示信息确定数据包的总数为K,从而确定发送端发送至本端时的丢包数量。
在一种实现中,发送端在检测到用户的用户操作时,可以响应于该用户操作确定第一接收端、第二接收端以及要发送的数据;进而,发送端可以将该数据编码为K个数据包,向第一接收端和第二接收端发送K个数据包。其中,该用户操作也可以用于指示向周围设备发送数据,第一接收端和第二接收端均位于发送端的广播范围内,第一接收端和第二接收端即为上述发送端的周围设备,则发送端在广播范围内广播上述K个数据包时,第一接收端和第二接收端可以接收来自发送端广播的数据包。
在多个接收端的场景中,发送端向多个接收端发送数据的方式为广播。可以理解的,发送端通过广播的方式向多个接收端发送K个数据包,则发送端只需要发送一次数据,可以提高数据传输的效率。
可选的,K个数据包中每一个数据包还包括指示信息,指示信息用于指示K个数据包的个数。例如,K个数据包中每一个数据包的包头均包括上述指示信息。
可选的,K个数据包中每一个数据包还可以包括序号。例如,K个数据包中每一个数据包的包头均包括数据包的数量K以及自身的序号i,其中,i∈[1,K],i为整数。
在一对多投屏场景中,发送端为投屏设备,多个接收端为多个被投屏设备。在一种实现中,发送端上有投屏应用,发送端在检测到用户作用于该投屏设备上的用户操作时,可以响应于该用户操作,将投屏内容编码成K个数据包,进而,向多个被投屏设备发送K个数据包。
S503、第一接收端基于接收到的数据包,确定第一丢包数量。
在一些实施例中,第一接收端接收到的数据包中包括指示K的指示信息,那么,第一接收端可以将K和接收到的数据包的数量之差确定为第一丢包数量。
可选的,K个数据包中每一个数据包均可以包括指示K的指示信息,则第一接收端在接收到K个数据包中任一个数据包时,都可以基于上述指示信息确定数据包的总数为K,从而将K和第一接收端接收到的数据包的数量之差确定为第一丢包数量。其中,上述指示信息位于K个数据包中每一个数据包的包头。
例如发送端发送的K个数据包为[M1,M2,…,Mk],每一个数据包的包头均包括指示个数K的指示信息以及自身序号,则第一接收端在接收到数据包Mk后,可以确定丢失的数据包,假设第一接收端没有接收到数据包M2和数据包M4,则第一接收端可以确定第一丢包数量为2。
需要说明的是,上述指示信息也可以是发送端在发送K个数据包后发送至接收端的,也可以是其他设备发送至第一接收端的,还可以是第一接收端通过其他方式得到的,此处不作限制。
S504、第二接收端基于接收到的数据包,确定第二丢包数量。
在一些实施例中,第二接收端接收到的数据包中包括指示K的指示信息,那么,第二接收端可以将K和接收到的数据包的数量之差确定为第二丢包数量。
可选的,K个数据包中每一个数据包均可以包括指示K的指示信息,则第二接收端在接收到K个数据包中任一个数据包时,都可以基于上述指示信息确定数据包的总数为K,从而将K和第二接收端接收到的数据包的数量之差确定为第二丢包数量。其中,上述指示信息位于K个数据包中每一个数据包的包头。
关于第二接收端确定第二丢包数量的具体过程可以参见上文中步骤S503的相关内容,此处不再赘述。
需要说明的是,第一丢包数量和第二丢包数量可以相同,也可以不同,据实际情况而定,此处不作限定;在多个接收端的场景中,多个接收端确定的丢包数量可以是相同的,也可以是不同的,据实际情况而定,此处不作限定。
S505、第一接收端向发送端发送第一丢包数量。
在一些实施例中,第一接收端在确定第一丢包数量后,可以向发送端发送第一丢包数量。需要说明的是,第一接收端向发送端发送第一丢包数量可以是采用单播或广播的方式,此处不作限定。
S506、第二接收端向发送端发送第二丢包数量。
在一些实施例中,第二接收端在确定第一丢包数量后,可以基于上述通信连接向发送端发送第二丢包数量。需要说明的是,第二接收端向发送端发送第一丢包数量可以是采用单播或广播的方式,此处不作限定。
在另一些实施例中,第一接收端和第二接收端中每一个接收端可以在分别确定丢包数量后,通过上述通信连接向发送端发送丢包数量。其中,若接收端接收到的数据包个数等于K时,即没有丢包时,接收端可以向发送端发送丢包数量为0,也可以不向发送端发送丢包数量,此处不作限定。
S507、发送端将第一丢包数量和第二丢包数量中较大的丢包数量确定为重传包数量R,R为正整数。
在一种实现中,发送端在接收到第一丢包数量和第二丢包数量后,可以将第一丢包数量和第二丢包数量进行对比,将第一丢包数量和第二丢包数量中较大的丢包数量确定为重传包数量。例如,第一丢包数量为2,第二丢包数量为3,则发送端可以确定重传包数量为3。需要说明的是,若第一丢包数量等于第二丢包数量,则将该相同的数值作为重传包数量,例如第一丢包数量和第二丢包数量均为R,则将R作为重传包数量。
在多个接收端的场景时,发送端可以将多个接收端的丢包数量中数值最大的丢包数量确定为重传包数量R。例如,发送端接收到的丢包数量包括R1、R2和R3,其中,R1>R2>R3,则发送端可以将R1确定为R;又例如,发送端接收端的丢包数量相同时,可以将该丢包数量确定为重传包数量R;又例如,发送端仅接收到一个丢包数量时,可以将该丢包数量确定为丢包数量。
在另一种实现中,发送端确定的重传包数量R可以大于多个接收端的丢包数量中数值最大的丢包数量。例如,例如发送端接收到的丢包数量包括R1、R2和R3,其中,R1>R2>R3,则发送端可以将R1+N确定为R,例如N为1,则发送端可以将R1+1确定为R。其中,N为正整数,N可以是基于经验值获取的,也可以是基于其他方法得到,此处对N不作限定。可以理解的,该方法可以避免下文中发送R个校验包时丢包的情况下接收端无法还原K个数据包。
在一些实施例中,发送端可以基于预设时间内接收到的丢包数量确定重传包数量R;也可以在接收到所有接收端的丢包数量后确定重传包数量R,此处不作限定。例如,在智能家居环境中,手机检测到用户针对周围设备发送K个数据包的用户操作,手机与5台周围设备建立通信连接,并分别向5台周围设备发送K个数据包,但预设时间内仅接收到3个丢包数量,那么,手机可以基于3个丢包数量确定重传包数量R,进而,向分别向5台周围设备发送R个数据包。
S508、发送端从N个校验包中获取R个校验包,N个校验包是基于K个数据包生成的校验数据。
在一些实施例中,发送端可以在确定重传包数量R时,从N个校验包中任意抽取R个校验包。其中,N个校验包是基于K个数据包生成的。
例如,发送端可以先对原始数据进行编码;再对编码后的码流数据进行封装,得到数据包;再通过FEC编码器,基于前向纠错算法对数据包进行编码,得到K个数据包和N个校验包。
S509、发送端向第一接收端和第二接收端发送R个校验包。
在一些实施例中,发送端可以通过广播的方式向向第一接收端和第二接收端发送R个校验包,或者,通过单播的方法分别向第一接收端和第二接收端发送R个校验包。
可以理解的,现有技术中发送端若分别向第一接收端和第二发送端发送其没有接收到的数据包,则发送端需要重传第一丢包数量个数据包和第二丢包数量个数据包,而本申请实施例中,发送端仅需要广播R个校验包即可,可以有效减少数据传输的数据量。
在一种实现中,发送端可以基于前向纠错算法,生成K个数据包对应的N个校验包;进而,发送端可以从N个校验包中随机抽取R个校验包。其中,发送端可以通过FEC编码器生成N个校验包,此处对前向纠错算法不作限定。
其中,发送端生成校验包的步骤可以位于步骤S501之前,也可以位于步骤S501至S509中的任一时刻,此处不作限定。
可以理解的,一对多传输过程中,若采用一对一的重传方法,将由于接收端丢包情况不一样而产生大量重传数据包,传输效率低。本申请实施例中,发送端可以预先计算校验包,发送数据包后接收各接收端反馈的丢包数量,取其最大值作为重传包数量,进而传输该数量的校验包,该方法可以减少重传包的数量,提升一对多传输过程的传输效率。
S510、第一接收端基于R个校验包和接收到的数据包,得到K个数据包。
在一种实现中,第一接收端可以基于R个接收到校验包和接收到的数据包,还原K个数据包。具体的,第一接收端可以基于接收到的数据包和R个校验包通过FEC解码还原K个数据包。
在投屏的场景中,第一接收端在还原得到K个数据包后,可以将K个数据包对应的投屏内容显示在第一接收端的显示屏上。
S511、第二接收端基于R个校验包和接收到的数据包,得到K个数据包。
关于步骤S511的具体内容可以参见步骤S510中的具体内容,此处不再赘述。
在投屏的场景中,上述K个数据包即为编码后的投屏数据,第一接收端和第二接收端在还原得到K个数据包后,可以将K个数据包进行解码,得到投屏数据,进而,将投屏数据对应的投屏内容显示在接收端的显示屏上。
请参见图7,图7示例性的示出了第一接收端和第二接收端在接收到K个数据包后,显示投屏内容的示意图。如图7所示,第一接收端和第二接收端显示的投屏内容相同,该显示内容即为投屏数据对应的显示内容。可以理解的,发送端向第一接收端和第二接收端发送的数据包相同,因此,第一接收端和第二接收端显示的投屏内容相同。需要说明的是,第一接收端和第二接收端也可以对接收到的投屏数据进行处理后,进行显示,例如显示不同滤镜下的投屏内容,此处对第一接收端和第二接收端也可以对接收到的投屏数据进行处理的具体方法不作限定。
本申请实施例还提供了一种电子设备,电子设备包括一个或多个处理器和一个或多个存储器;其中,一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述实施例描述的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述实施例描述的方法。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当指令在电子设备上运行时,使得电子设备执行上述实施例描述的方法。
可以理解的是,本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本申请技术方案的实施例而已,并非用于限定本申请的保护范围。凡根据本申请的揭露,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种数据传输方法,其特征在于,应用于发送端,所述方法包括:
所述发送端分别与至少两个接收端建立通信连接;
所述发送端向所述至少两个接收端发送K个数据包,所述K为大于1的正整数;
所述发送端接收来自所述至少两个接收端的丢包数量,所述丢包数量用于指示接收端丢失的数据包的数量;
所述发送端基于所述至少两个接收端的丢包数量,获得重传包数量R,所述R为正整数;
所述发送端向所述至少两个接收端发送R个校验包,所述R个校验包是基于所述K个数据包生成的校验数据,所述R个校验包用于所述至少两个接收端分别基于接收到的数据包还原所述K个数据包。
2.根据权利要求1所述的方法,其特征在于,所述R的取值为所述至少两个接收端的丢包数量中数值最大的值。
3.根据权利要求1或2所述的方法,其特征在于,所述K个数据包中每一个数据包包括指示信息,所述指示信息用于指示所述K个数据包的个数。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述发送端向所述至少两个接收端发送所述R个校验包之前,所述方法还包括:
所述发送端基于前向纠错算法,生成所述K个数据包对应的N个校验包;
所述发送端从所述N个校验包中获取所述R个校验包。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述发送端向所述至少两个接收端发送数据的方式为广播。
6.一种数据传输方法,其特征在于,应用于接收端,所述方法包括:
所述接收端与所述发送端建立通信连接;
所述接收端接收来自所述发送端的数据包;
所述接收端基于接收到的数据包,得到丢失的数据包的丢包数量;
所述接收端将所述丢包数量发送至所述发送端;
所述接收端接收来自所述发送端的R个校验包,所述R不小于所述丢包数量;所述R个校验包是基于K个数据包生成的校验数据;所述K个数据包包括所述接收到的数据包;
所述接收端基于所述接收到的数据包和所述R个校验包还原所述K个数据包。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述接收端接收指示信息,所述指示信息用于指示所述K个数据包的个数;
所述接收端确定所述丢包数量为所述K与所述接收到的数据包的个数之差。
8.根据权利要求6所述的方法,其特征在于,所述K个数据包中每一个数据包包括所述指示信息。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述R为发送端接收到的丢包数量中数值最大的丢包数量。
10.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器;其中,所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-5或6-9中任一项所述的方法。
11.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-5或6-9中任一项所述的方法。
12.一种数据传输系统,其特征在于,所述数据传输系统包括至少两个接收端和发送端,所述发送端用于执行如权利要求1-5中任一项所述的方法,所述至少两个接收端用于执行如权利要求6-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210549309.0A CN117155824A (zh) | 2022-05-20 | 2022-05-20 | 一种数据传输方法、电子设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210549309.0A CN117155824A (zh) | 2022-05-20 | 2022-05-20 | 一种数据传输方法、电子设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117155824A true CN117155824A (zh) | 2023-12-01 |
Family
ID=88901361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210549309.0A Pending CN117155824A (zh) | 2022-05-20 | 2022-05-20 | 一种数据传输方法、电子设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117155824A (zh) |
-
2022
- 2022-05-20 CN CN202210549309.0A patent/CN117155824A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11989482B2 (en) | Split-screen projection of an image including multiple application interfaces | |
CN111316598B (zh) | 一种多屏互动方法及设备 | |
CN113542839B (zh) | 电子设备的投屏方法和电子设备 | |
CN115473957B (zh) | 一种图像处理方法和电子设备 | |
WO2020244623A1 (zh) | 一种空鼠模式实现方法及相关设备 | |
CN113885759B (zh) | 通知消息处理方法、设备、系统及计算机可读存储介质 | |
CN114040242B (zh) | 投屏方法、电子设备和存储介质 | |
CN113556479B (zh) | 一种多应用共享摄像头的方法与电子设备 | |
CN112615960B (zh) | 一种设备能力调度方法及电子设备 | |
WO2021023035A1 (zh) | 一种镜头切换方法及装置 | |
CN111628916B (zh) | 一种智能音箱与电子设备协作的方法及电子设备 | |
CN113835649B (zh) | 一种投屏方法和终端 | |
CN116360725B (zh) | 显示交互系统、显示方法及设备 | |
CN116361255A (zh) | 数据同步方法、电子设备和计算机可读存储介质 | |
CN114185503B (zh) | 多屏交互的系统、方法、装置和介质 | |
WO2023005900A1 (zh) | 一种投屏方法、电子设备及系统 | |
CN114157756A (zh) | 任务处理方法及相关电子设备 | |
US20230350629A1 (en) | Double-Channel Screen Mirroring Method and Electronic Device | |
CN115237359A (zh) | 一种投屏显示参数调节方法 | |
CN116170629A (zh) | 一种传输码流的方法、电子设备及计算机可读存储介质 | |
CN111131272B (zh) | 流服务器的调度方法、装置及系统、计算设备、存储介质 | |
CN115119048B (zh) | 一种视频流处理方法及电子设备 | |
CN117155824A (zh) | 一种数据传输方法、电子设备及系统 | |
CN115460445B (zh) | 电子设备的投屏方法和电子设备 | |
WO2024159925A1 (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 |