WO2021175297A1 - 一种分布式数据传输的方法、装置和系统 - Google Patents

一种分布式数据传输的方法、装置和系统 Download PDF

Info

Publication number
WO2021175297A1
WO2021175297A1 PCT/CN2021/079148 CN2021079148W WO2021175297A1 WO 2021175297 A1 WO2021175297 A1 WO 2021175297A1 CN 2021079148 W CN2021079148 W CN 2021079148W WO 2021175297 A1 WO2021175297 A1 WO 2021175297A1
Authority
WO
WIPO (PCT)
Prior art keywords
output device
time
data
delay time
delay
Prior art date
Application number
PCT/CN2021/079148
Other languages
English (en)
French (fr)
Inventor
兰文涛
黄一炜
唐旭
张磊
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to US17/905,604 priority Critical patent/US20230126759A1/en
Priority to EP21764425.1A priority patent/EP4102797A1/en
Publication of WO2021175297A1 publication Critical patent/WO2021175297A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/801Real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Definitions

  • This application relates to the field of communications, and more specifically, to a method, device, and system for distributed data transmission.
  • RTP Real-time Transport Protocol
  • This application provides a method, device and system for distributed data transmission.
  • the input device sends RTP data to the output device, it will determine the delay time of the first output device and the delay time of the second output device according to the device delay control list; according to the delay time of the first output device and the delay time of the second output device At time, the RTP data is sent to the first output device and the second output device, so that the first output device and the second output device output data at the same time.
  • the first output device and the second output device can output data at the same time, without reducing the output quality of the output device, and improving User experience.
  • a distributed data transmission method is provided.
  • the execution subject of the method can be either an input device or a chip applied to the input device.
  • the method includes: the input device determines the delay time T 1 of the first output device and the delay time T 2 of the second output device according to the device delay control list, wherein the device delay control list Including the identification of the output device and the delay time of the output device associated with the identification of the output device; the input device sends RTP data to the first output device and the second output device according to the T 1 and the T 2, where:
  • the RTP data sent to the first output device includes the time stamp of the RTP data sent by the input device to the first output device, and the RTP data sent to the second output device includes the input device The time stamp of the RTP data is sent to the second output device.
  • the input device determines the delay time of the first output device and the delay time of the second output device according to the device delay control list; The input device sends RTP data to the first output device and the second output device according to the delay time of the first output device and the delay time of the second output device. Controlling the time when the device outputs data can make the first output device and the second output device output data at the same time, avoiding the need for the first output device and the second output device to reduce the output quality of the output device by changing the bit rate in the prior art. At the same time output data, this method does not reduce the output quality of the output device, and improves the user experience.
  • the input device in this application refers to the device providing data, sending the data to other devices, and playing by other devices.
  • the input device can be a network device or a terminal device.
  • the output device means that the device receives data and plays it.
  • the output device can be a terminal device, a wearable device, or a network device. If the input device is a mobile phone, the output devices are TV and stereo respectively.
  • the input device sends RTP data to the first output device and the second output device according to the T 1 and the T 2, including: according to formula (1 ) Determine the time difference T between the T 1 and the T 2,
  • T T 1 -T 2 , T>0;
  • the RTP data After sending the RTP data to the first output device, after a time of T, the RTP data is sent to the second output device.
  • the input device determining a first delay time T delay output device 1 and a second output device T of the time difference T 2, T>0;
  • Xianxiang input device transmits the first RTP data output apparatus, after After T time, the input device sends RTP data to the second output device, so that the first output device and the second output device receive data at the same time, and the first output device and the second output device decode and output at the same time data.
  • the input device sends RTP data to the first output device and the second output device according to the T 1 and the T 2, including: according to formula (2 ) Determine the time difference T between the T 1 and the T 2,
  • T T 1 -T 2 , T>0;
  • the RTP data is sent to the first output device and the second output device at the same time, wherein, when the RTP data is sent to the second output device, first indication information is also included, and the first indication information is used to indicate that the second output device is The data is output at T time after receiving the data.
  • the input device determining a first delay time T delay output device 1 and a second output device T 2 time difference T, T>0; simultaneously to the first input device and the output device outputs the second
  • the device sends RTP data and also includes first indication information when sending RTP data to the second output device.
  • the first indication information is used to instruct the second output device to output data at time T after receiving the data, so that the first One output device and the second output device output data at the same time.
  • the method further includes: the input device receives a first real-time transmission control protocol reception report RTCP RR sent by the first output device, and the first RTCP RR includes the first RTCP RR.
  • a delay time the input device receives the second real-time transmission control protocol reception report RTCP RR sent by the second output device, the second RTCP RR includes a second delay time; according to the first delay time and the second delay time, Update the device delay control list.
  • the input device receives the first delay time sent by the first output device, receives the second delay time sent by the second output device, and updates the first delay time according to the first delay time and the second delay time.
  • the device delay control list allows the input device to dynamically update the delay control list according to the first delay time and the second delay time. Therefore, if due to network reasons, the delay time between the first output device and the second output device occurs With changes, the input device can adjust the delay control list in time to ensure that the first output device and the second output device output data at the same time, thereby improving user experience.
  • the input device updates the device delay control list according to the first delay time and the second delay time, including: the input device counts the statistics within a preset time A plurality of the first delay time and a plurality of the second delay time; the input device averages the plurality of the first delay time The input device averages the multiple second delay times The input device is based on the And this Updating the first delay output apparatus control apparatus list delay time T 1 and a second time delay output device T 2.
  • the input device respectively averages a plurality of the first delay time and a plurality of the second delay time within a preset time And this According to the And this Updating the first delay output apparatus control apparatus list delay time T 1 and a second time delay output device T 2, eliminating the first delay time and the second delay time jitter, a delay device such that the control list
  • the delay time T 1 of the first output device and the delay time T 2 of the second output device have higher accuracy.
  • the preset time may be a predefined period of time, such as 1000ms, and the delay of multiple RTP data packets within the 1000ms is counted; the preset time may also be determined according to different applications
  • the first period can be preset with a duration of 1000ms
  • the second period can be preset with a duration of 500ms
  • the preset time can also be dynamically set according to the application's playback duration, such as
  • the preset time is the system default time period of 500ms. As the application progresses, the preset time can be added to the default time period.
  • the preset time per hour is increased by 500ms; the preset time can also be based on The network quality changes dynamically. For example, when the network quality is good, the preset time can be reduced, and when the network quality is poor, the preset time can be increased.
  • the input device updates the device delay control list according to the first delay time and the second delay time, including: according to the first delay time and the second delay time second delay time, a first delay device to update the list of output device control delay time T 1 and a second time delay output device T 2.
  • the first delay time is an average value of the delay time of a plurality of data of the first output device within a preset time counted by the first output device
  • the The second delay time is an average value of the delay time of the plurality of data of the second output device within the preset time counted by the second output device.
  • the first delay time sent by the first output device received by the input device is an average value of the delay time of a plurality of data counted by the first output device within a preset time
  • the input device receives
  • the second delay time sent by the second output device is the average value of the delay time of a plurality of data counted by the second output device within a preset time
  • the input device is based on the first delay time and the second delay time time delay time, delay control directly update the device list T 1 of the first output device and a second output device T 2, without any calculations, saving computational resources of the input device.
  • the method further includes: the input device obtains the identification of the third output device; determining the delay time of the third output device; adding to the device delay control list The identification of the third output device and the delay time of the third output device.
  • the method further includes: when the third output device is disconnected from the input device, the input device deletes the third output device from the device delay control list. The identification of the output device and the delay time of the third output device.
  • the input device can dynamically update the device delay control list according to whether it is connected to the output device, so as to avoid occupying the storage resources of the output device.
  • a distributed data transmission method is provided.
  • the execution subject of the method can be either an output device or a chip applied to the output device.
  • the method includes: receiving RTP data sent by a first input device; determining a first delay time according to the RTP data; sending a first real-time transmission control protocol to the first input device Receive a report RTCP RR, where the first RTCP RR includes a first delay time, which is used by the first input device to determine the time for sending RTP data to the first output device.
  • the method further includes determining the first delay time, and the determining the first delay time includes: collecting statistics on multiple data of the first output device within a preset time Delay time; the delay time of the multiple data is averaged to obtain the first delay time.
  • the output device counts the delay time of the multiple data of the first output device within the preset time; the delay time of the multiple data is averaged to obtain the first delay time, which eliminates the jitter of the first delay time, so that the input device to a first delay time more accurately, to improve the delay time of the delay device controls the first output device list T 1 accuracy.
  • the method further includes: receiving data sent by the input device and first indication information, where the first indication information is used to indicate that the second output device is receiving data After T time, output data; after T time, output data.
  • an input device including a processor, configured to determine the delay time T 1 of the first output device and the delay time T 2 of the second output device according to the device delay control list, wherein the device delays
  • the control list includes the identification of the output device and the delay time of the output device associated with the identification of the output device; the transceiver is used to send RTP to the first output device and the second output device according to the T 1 and the T 2 Data, wherein the RTP data sent to the first output device includes the time stamp of the RTP data sent by the input device to the first output device, and the RTP data sent to the second output device includes The input device sends the time stamp of the RTP data to the second output device.
  • the transceiver is specifically configured to: determine the time difference T between the T 1 and the T 2 according to formula (3),
  • T T 1 -T 2 , T>0;
  • the RTP data After sending the RTP data to the first output device, after a time of T, the RTP data is sent to the second output device.
  • the transceiver is specifically configured to: determine the time difference T between the T 1 and the T 2 according to formula (4),
  • T T 1 -T 2 , T>0; (4)
  • the RTP data is sent to the first output device and the second output device at the same time, wherein, when the RTP data is sent to the second output device, the first indication information is also included, and the first indication information is used to indicate that the second output device is The data is output at T time after receiving the data.
  • the transceiver is further configured to receive a first real-time transmission control protocol reception report RTCP RR sent by the first output device, where the first RTCP RR includes a first delay Time; receiving a second real-time transmission control protocol reception report RTCP RR sent by the second output device, where the second RTCP RR includes a second delay time; the processor is further configured to perform according to the first delay time and the second delay time , Update the device delay control list.
  • the processor is specifically configured to: count a plurality of the first delay times and a plurality of the second delay times within a preset time; A delay time is averaged Take the average of the multiple second delay times According to the And this Updating the first delay output apparatus control apparatus list delay time T 1 and a second time delay output device T 2.
  • the processor is specifically configured to: update the delay time of the first output device of the device delay control list according to the first delay time and the second delay time T 1 and the delay time T 2 of the second output device.
  • the first delay time is an average value of the delay time of a plurality of data of the first output device within a preset time counted by the first output device
  • the The second delay time is an average value of the delay time of the plurality of data of the second output device within the preset time counted by the second output device.
  • the processor is further configured to obtain the identification of the third output device; determine the delay time of the third output device; add the second output device to the device delay control list The identification of the third output device and the delay time of the third output device.
  • an output device which is characterized by comprising: a transceiver for receiving data sent by a first input device; and the transceiver for sending a first real-time transmission control protocol to the first input device Receive a report RTCP RR, where the first RTCP RR includes a first delay time, which is used by the first input device to determine the time for sending RTP data to the first output device.
  • the output device further includes a processor configured to determine the first delay time, and the processor is specifically configured to: count the first delay time within a preset time The delay time of multiple data of the output device; the delay time of the multiple data is averaged to obtain the first delay time.
  • the transceiver is further configured to receive data sent by the input device and first indication information, and the first indication information is used to indicate that the second output device is receiving The data is output at the time T after the data; the transceiver outputs the data after the time T.
  • an input device in a fifth aspect, includes a unit for executing the steps in the above first aspect or any possible implementation of the first aspect.
  • an output device is provided, and the device includes a unit for executing each step in the above second aspect or any possible implementation manner of the second aspect.
  • an input device in a seventh aspect, includes at least one processor and a memory, and the at least one processor is configured to execute the above first aspect or the method in any possible implementation manner of the first aspect.
  • an output device includes at least one processor and a memory, and the at least one processor is configured to execute the above second aspect or any possible implementation method of the second aspect.
  • an input device in a ninth aspect, includes at least one processor and an interface circuit, and the at least one processor is configured to execute the above first aspect or the method in any possible implementation of the first aspect.
  • an output device in a tenth aspect, includes at least one processor and an interface circuit, and the at least one processor is configured to execute the above second aspect or any possible implementation of the second aspect.
  • a computer program product includes a computer program.
  • the computer program is executed by a processor, the computer program is used to execute the method in the first aspect or any possible implementation of the first aspect , Or execute the method in the second aspect or any possible implementation of the second aspect.
  • a computer-readable storage medium stores a computer program, and when the computer program is executed, it is used to execute the first aspect or any possible implementation manner of the first aspect Or execute the method in the second aspect or any possible implementation of the second aspect.
  • a system which includes the aforementioned input device and output device.
  • a chip in a fourteenth aspect, includes a processor, configured to call and run a computer program from a memory, so that a communication device installed with the chip executes the first aspect or any possible aspect of the first aspect The method in the implementation manner, or the method in the second aspect or any possible implementation manner of the second aspect is executed.
  • FIG. 1 is a schematic diagram of an example of the architecture of a communication system applicable to an embodiment of the present application.
  • FIG. 2 is a schematic interaction diagram of a method 200 for distributed data transmission according to an embodiment of the present application.
  • FIG. 3 is a schematic interaction diagram of a method 300 for distributed data transmission according to an embodiment of the present application.
  • Figure 4 shows a block diagram of distributed device delay management.
  • Fig. 5 shows a schematic block diagram of an input device according to an embodiment of the present application.
  • Fig. 6 shows a schematic block diagram of an output device according to an embodiment of the present application.
  • Fig. 7 shows a schematic block diagram of a communication device according to an embodiment of the present application.
  • RTP Real-time Transport Protocol
  • this application provides a distributed data transmission method.
  • an input device sends RTP data to an output device, it will determine the delay time of the first output device and the delay of the second output device according to the device delay control list. Time; according to the delay time of the first output device and the delay time of the second output device, send RTP data to the first output device and the second output device, so that the first output device and the second output device output data The time is the same.
  • the first output device and the second output device can output data at the same time, without reducing the output quality of the output device, and improving User experience.
  • GSM Global System of Mobile Communication
  • CDMA Code Division Multiple Access
  • WCDMA Wideband Code Division Multiple Access
  • GSM Global System of Mobile Communication
  • GPRS General Packet Radio Service
  • LTE Long Term Evolution
  • FDD Frequency Division Duplex
  • TDD Time Division Duplex
  • UMTS Universal Mobile Telecommunication System
  • WiMAX Worldwide Interoperability for Microwave Access
  • 5G Fifth Generation
  • 5NR New Radio
  • the data transmission methods between devices all involve the seven-layer network protocol, also known as the OSI model, which is an open communication system interconnection reference model.
  • OSI model which is an open communication system interconnection reference model.
  • This model defines the standards for the interconnection of different computers, and is the basic framework for designing and describing computer network communications.
  • the seven-layer network protocols are the physical layer, data link layer, network layer, transport layer, session layer, presentation layer, and application layer.
  • the technical solutions of the embodiments of the present application involve changes in the transmission layer, so the technical solutions of the embodiments of the present application can be applied to the various communication systems described above.
  • An input device means that the device provides data and sends the data to other devices for playback by other devices.
  • the input device can be a network device or a terminal device.
  • the output device means that the device receives data and plays it.
  • the output device can be a network device, a terminal device, or a wearable device. If the input device is a mobile phone, the output devices are TV and stereo respectively.
  • the terminal equipment in the embodiments of this application may refer to user equipment, access terminals, user units, user stations, mobile stations, mobile stations, remote stations, remote terminals, mobile equipment, user terminals, terminals, wireless communication equipment, user agents, or User device.
  • the terminal device can also be a cellular phone, a cordless phone, a Session Initiation Protocol (SIP) phone, a wireless local loop (Wireless Local Loop, WLL) station, a personal digital processing (Personal Digital Assistant, PDA), and wireless communication.
  • SIP Session Initiation Protocol
  • WLL Wireless Local Loop
  • PDA Personal Digital Assistant
  • Functional handheld devices computing devices or other processing devices connected to wireless modems, in-vehicle devices, wearable devices, smart TVs, stereos, etc., terminal devices in the future 5G network or future evolution of the public land mobile communication network (Public Land Mobile Network, PLMN) terminal equipment, etc., which are not limited in the embodiment of the present application.
  • PLMN Public Land Mobile Network
  • the network device in the embodiment of the application may be a device used to communicate with terminal devices.
  • the network device may be a Global System of Mobile Communication (GSM) system or Code Division Multiple Access (CDMA)
  • GSM Global System of Mobile Communication
  • CDMA Code Division Multiple Access
  • BTS Base Transceiver Station
  • BTS base station
  • NodeB, NB base station
  • WCDMA Wideband Code Division Multiple Access
  • Evolutional Base Station Evolution Base Station
  • NodeB eNB or eNodeB
  • it can also be a wireless controller in the cloud radio access network (Cloud Radio Access Network, CRAN) scenario
  • the network device can be a relay station, an access point, a vehicle-mounted device, a wearable device, and the future
  • the network equipment in the 5G network, the network equipment in the future evolved PLMN network, or the network equipment in other types of communication systems in the future, etc., are not limited in the embodiment of the present application.
  • the terminal device or the network device includes a hardware layer, an operating system layer running on the hardware layer, and an application layer running on the operating system layer.
  • the hardware layer includes hardware such as a central processing unit (CPU), a memory management unit (MMU), and memory (also referred to as main memory).
  • the operating system can be any one or more computer operating systems that implement business processing through processes, for example, Linux operating systems, Unix operating systems, Android operating systems, iOS operating systems, or windows operating systems.
  • the application layer includes applications such as browsers, address books, word processing software, and instant messaging software.
  • the embodiments of the application do not specifically limit the specific structure of the execution body of the method provided in the embodiments of the application, as long as the program that records the codes of the methods provided in the embodiments of the application can be provided in accordance with the embodiments of the application.
  • the execution subject of the method provided in the embodiments of the present application may be a terminal device or a network device, or a functional module in the terminal device or the network device that can call and execute the program.
  • various aspects or features of the present application can be implemented as methods, devices, or products using standard programming and/or engineering techniques.
  • article of manufacture used in this application encompasses a computer program accessible from any computer-readable device, carrier, or medium.
  • computer-readable media may include, but are not limited to: magnetic storage devices (for example, hard disks, floppy disks, or tapes, etc.), optical disks (for example, compact discs (CD), digital versatile discs (DVD)) Etc.), smart cards and flash memory devices (for example, erasable programmable read-only memory (EPROM), cards, sticks or key drives, etc.).
  • various storage media described herein may represent one or more devices and/or other machine-readable media for storing information.
  • machine-readable medium may include, but is not limited to, wireless channels and various other media capable of storing, containing, and/or carrying instructions and/or data.
  • FIG. 1 is a schematic diagram of the architecture of a communication system 100 applicable to the resource request method of an embodiment of the present application.
  • the communication system 100 includes three communication devices, for example, an input device 110, an output device 120, and an output device 130. Data communication can be carried out between the input device 110 and the output device 120, and the output device 130. When the input device 110 sends data to the output device 120 and the output device 130, the data can be transmitted by the distributed data transmission method in the embodiment of the present application.
  • the communication system shown in FIG. 1 may also include more network nodes, such as terminal devices or network devices, and the network devices or terminal devices included in the communication system shown in FIG. 1 may be the aforementioned various forms of networks.
  • Equipment or terminal equipment The embodiments of the present application are not shown one by one in the figure.
  • FIG. 2 is a schematic interaction diagram of a distributed data transmission method 200 according to an embodiment of the present application.
  • the method 200 can be applied to the method shown in FIG. In the scenario, it can of course also be applied in other communication scenarios, and the embodiment of the present application does not limit it here.
  • the input device and the output device are taken as an example of the execution subject of the execution method to describe the method.
  • the execution subject of the method may also be a chip, a chip system, or a processor applied to an input device and an output device.
  • the input device may be the network device or terminal device described above
  • the output device may be the network device or terminal device described above.
  • the method 200 shown in FIG. 2 may include S210 to S230. Each step in the method 200 will be described in detail below with reference to FIG. 2.
  • the input device determines the delay time T 1 of the first output device and the delay time T 2 of the second output device according to the device delay control list, where the device delay control list includes the identification of the output device and the identification of the output device The delay time of the associated output device.
  • the input device sends RTP data to the first output device and the second output device according to the T 1 and the T 2 , wherein the RTP data sent to the first output device includes the input device to the The timestamp of the RTP data sent by the first output device, and the RTP data sent to the second output device includes the timestamp of the RTP data sent by the input device to the second output device.
  • S230 The first output device receives and plays the data.
  • S240 The second output device receives and plays the data.
  • the input device determines the delay time of the first output device and the delay time of the second output device according to the device delay control list;
  • the input device sends RTP data to the first output device and the second output device according to the delay time of the first output device and the delay time of the second output device. Controlling the time when the output device outputs data can make the first output device and the second output device output data at the same time, without reducing the output quality of the output device, and improving the user experience.
  • the device delay control list is used by the input device to determine the delay time T 1 of the first output device and the delay time T 2 of the second output device.
  • the device delay control list may be a table or a data
  • the structure can also be a group of data associated with multiple output devices.
  • the device delay control list is only one form of expression.
  • the RTP data sent by the input device to the first output device and the RTP data sent to the second output device may be the same or different.
  • the input device is a mobile phone
  • the first output device is a Bluetooth headset
  • the second output device is a speaker
  • the phone is connected to Bluetooth and speaker respectively
  • the user sends the RTP to the Bluetooth and the speaker through the phone
  • the data is the same, all are song audio streams; when the user wants to watch the video, the mobile phone is connected to the smart TV and the stereo, the input device is a mobile phone, the first output device is a smart TV, and the second output device is a stereo, then the mobile phone sends to the smart
  • the RTP data of the TV is a video stream
  • the RTP data sent to the speaker is an audio stream. That is, according to different application scenarios, RTP data can be audio data or video data.
  • the input device sending RTP data to the first output device and the second output device according to the T 1 and the T 2 includes: determining the time difference T between the T 1 and the T 2 according to formula (1) ,
  • T T 1 -T 2 , T>0;
  • the RTP data After sending the RTP data to the first output device, after a time of T, the RTP data is sent to the second output device.
  • the input device determining a first delay time T delay output device 1 and a second output device T of the time difference T 2, T>0;
  • Xianxiang input device transmits the first RTP data output apparatus, after After T time, the input device sends RTP data to the second output device, so that the first output device and the second output device receive data at the same time, and the first output device and the second output device decode and output at the same time data.
  • a mobile phone is connected to a smart TV and a stereo
  • the input device is a mobile phone
  • the first output device is a smart TV
  • the second output device is a stereo.
  • a structure linked list will be generated, which is the device delay control list, as shown below.
  • the mobile phone When the mobile phone is playing the RTP data stream, it first sends the video data to the TV, and then sends the audio data to the speaker after a delay of 1 ms, so that the TV is playing video while the speaker is playing audio.
  • the input device sending RTP data to the first output device and the second output device according to the T 1 and the T 2 includes: determining the time difference T between the T 1 and the T 2 according to formula (2) ,
  • T T 1 -T 2 , T>0;
  • the input device determining a first delay time T delay output device 1 and a second output device T 2 time difference T, T>0; simultaneously to the first input device and the output device outputs the second
  • the device sends RTP data and also includes first indication information when sending RTP data to the second output device.
  • the first indication information is used to instruct the second output device to output data at time T after receiving the data, so that the first One output device and the second output device output data at the same time.
  • FIG. 3 is a schematic interaction diagram of a distributed data transmission method 300 according to an embodiment of the present application.
  • the method 300 can be applied to the method shown in FIG. In the scenario, it can of course also be applied in other communication scenarios, and the embodiment of the present application does not limit it here.
  • the input device and the output device are taken as an example of the execution subject of the execution method to describe the method.
  • the execution subject of the method may also be a chip, a chip system, or a processor applied to an input device and an output device.
  • the input device may be the network device or terminal device described above
  • the output device may be the network device or terminal device described above.
  • the method 300 shown in FIG. 3 may include S310 to S380.
  • the steps in the method 200 will be described in detail below in conjunction with FIG. 3.
  • the first output device sends a first real-time transmission control protocol reception report RTCP RR to the input device, where the first RTCP RR includes a first delay time.
  • the input device receives the first real-time transmission control protocol reception report RTCP sent by the first output device.
  • the second output device sends a second real-time transmission control protocol reception report RTCP RR to the input device, where the second RTCP RR includes a second delay time.
  • the input device receives a second real-time transmission control protocol reception report RTCP sent by the second output device.
  • the input updates the device delay control list according to the first delay time and the second delay time.
  • the input device determines the delay time T 1 of the first output device and the delay time T 2 of the second output device according to the device delay control list, where the device delay control list includes the identification of the output device and the identification of the output device The delay time of the associated output device.
  • the input device sends RTP data to the first output device and the second output device according to the T 1 and the T 2 , so that the first output device and the second output device output data at the same time.
  • S380 The first output device receives and plays the data.
  • S390 The second output device receives and plays the data.
  • step S310 before the first output device sends the first real-time transmission control protocol reception report RTCP RR to the input device, the first output device needs to determine according to the RTP data packet sent by the input device to the first output device device The first delay time, the RTP data message includes the time stamp of the RTP data message sent by the input device to the first output device device, and the first output device is based on the time when the RTP message is received and the input device The time difference between the RTP data packets sent to the first output device device determines the first delay time.
  • the method for determining the second delay time by the second output device may refer to the method for determining the first delay time by the first output device, which will not be repeated here.
  • the real-time transmission control protocol reception report RTCP RR sent by the output device to the input device is a data response packet sent to the input device, and the response packet will be sent when the output device receives RTP data.
  • the output devices are the first output device and the second output device for example only, and the input device may be connected to multiple output devices.
  • Figure 4 shows a block diagram of distributed device delay management. As shown in Figure 4, they are the input device, the first output device, the second output device, and the third output device.
  • the input device needs to simultaneously output a piece of audio data on the first output device, the second output device, and the third output device.
  • the input device sends an RTP data message to the first output device, the second output device, and the third output device.
  • the data message includes the time when the input device sends the data message, the first output device, the second output device, and the third output device.
  • the three output devices When the three output devices respectively receive the data message, they determine the delay time of the data message according to the receiving time of the data message, and send it to the input device through the RTCP RR message, and the input device according to the received RTCP RR message Text, update the device delay control list on the input device.
  • the RTP data message sent by the input device to the first output device, the second output device, and the third output device may be a test message or a data message of the previous task. This application does not Make any restrictions.
  • the RTCP RR message of this application adds a data delay delta-delay field to the format of the original RTCP RR message, and does not change the original message format.
  • the input device receives the first delay time sent by the first output device, receives the second delay time sent by the second output device, and updates the first delay time according to the first delay time and the second delay time.
  • the device delay control list allows the input device to dynamically update the delay control list according to the first delay time and the second delay time. Therefore, if due to network reasons, the delay time between the first output device and the second output device occurs With changes, the input device can adjust the delay control list in time to ensure that the first output device and the second output device output data at the same time, which improves user experience.
  • the input device updates the device delay control list according to the first delay time and the second delay time, including: the input device counts a plurality of the first delay times and a plurality of the first delay times within a preset time Second delay time; the input device averages the multiple first delay times The input device averages the multiple second delay times The input device is based on the And this Updating the first delay output apparatus control apparatus list delay time T 1 and a second time delay output device T 2.
  • the input device respectively averages a plurality of the first delay time and a plurality of the second delay time within a preset time And this According to the And this Updating the first delay output apparatus control apparatus list delay time T 1 and a second time delay output device T 2, eliminating the first delay time and the second delay time jitter, a delay device such that the control list
  • the delay time T 1 of the first output device and the delay time T 2 of the second output device have higher accuracy.
  • the preset time may be a predefined period of time, such as 1000ms, and the delay of multiple RTP data packets within the 1000ms is counted; the preset time may also be determined according to different applications
  • the first period can be preset with a duration of 1000ms
  • the second period can be preset with a duration of 500ms
  • the preset time can also be dynamically set according to the application's playback duration, such as
  • the preset time is the system default time period of 500ms. As the application progresses, the preset time can be added to the default time period.
  • the preset time per hour is increased by 500ms; the preset time can also be based on The network quality changes dynamically. For example, when the network quality is good, the preset time can be reduced, and when the network quality is poor, the preset time can be increased.
  • the input device updating the device delay control list according to the first delay time and the second delay time includes: updating the first delay control list of the device according to the first delay time and the second delay time a delay time period T 1 of the output device and the second output device T 2.
  • the first delay time is an average value of the delay times of a plurality of data of the first output device within a preset time calculated by the first output device
  • the second delay time is calculated by the second output device The average value of the delay time of the multiple data of the second output device within the preset time.
  • the input device and the output device may be agreed in advance, and after the preset time is reached, the input device is based on the first delay time sent by the first output device and the second delay time sent by the second output device.
  • the delay time updates the device delay control list. Within the preset time, the input device no longer updates the device delay control list.
  • the first delay time sent by the first output device received by the input device is the average value of the delay time of a plurality of data counted by the first output device within a preset time
  • the second output device received by the input device The second delay time sent is the average of the delay times of multiple data counted by the second output device within a preset time
  • the input device directly updates the device according to the first delay time and the second delay time a first output delay time control device list delay time T 1 and the second output device T 2, without any calculations, saving computational resources of the input device.
  • the method further includes the first output device determining the first delay time, and the determining the first delay time includes: counting the delay time of a plurality of pieces of data of the first output device within a preset time; The delay time of the data is averaged to obtain the first delay time.
  • the output device counts the delay time of the multiple data of the first output device within the preset time; the delay time of the multiple data is averaged to obtain the first delay time, which eliminates the jitter of the first delay time, so that the input device to a first delay time more accurately, to improve the delay time of the delay device controls the first output device list T 1 accuracy.
  • first output device As an example to describe how the output device determines the first delay time.
  • the second output device and any other output devices can determine the data packet according to the method of the first output device. The delay time will not be repeated here.
  • the method further includes: the input device obtains the identifier of the third output device; determining the delay time of the third output device; adding the identifier of the third output device and the third output to the device delay control list The delay time of the device.
  • the method further includes: when the third output device is disconnected from the input device, the input device deletes the identifier of the third output device and the delay of the third output device in the device delay control list time.
  • the input device can dynamically update the device delay control list according to whether it is connected to the output device, so as to avoid occupying the storage resources of the output device.
  • the method further includes: receiving data and first indication information sent by the input device, where the first indication information is used to instruct the second output device to output data at time T after receiving the data; after time T, Output Data.
  • the input device determining a first delay time T delay output device 1 and a second output device T of the time difference T 2, T>0; simultaneously transmitting to the first input device and the output device outputs the second device RTP data, but the input device also includes first indication information when sending RTP data to the second output device.
  • the first indication information is used to instruct the second output device to output data at time T after receiving the data.
  • the output device after receiving the data sent by the input device and the first instruction information, outputs the data after T time according to the first instruction information, so that the first output device and the second output device output data at the same time .
  • FIG. 5 shows a schematic block diagram of an input device 400 according to an embodiment of the present application.
  • the device 400 may correspond to the input device described in the above method 200, or may be a chip or component applied to the input device, and the device 400 Each module or unit is used to execute each action or process performed by the input device in the above method 200 and the above method 300, respectively.
  • the device 400 may include a processing unit 410 and a transceiving unit 420.
  • the transceiving unit 420 is configured to perform specific signal transceiving under the driving of the processing unit 310.
  • the processing unit 410 is configured to determine the delay time T 1 of the first output device and the delay time T 2 of the second output device according to the device delay control list, where the device delay control list includes the identification of the output device and the connection with the output device The delay time of the associated output device.
  • the transceiver unit 420 is configured to send RTP data to the first output device and the second output device according to the T 1 and the T 2 , so that the first output device and the second output device output data at the same time.
  • the input device provided in this application sends RTP data to the output device, it will determine the delay time of the first output device and the delay time of the second output device according to the device delay control list; according to the delay time of the first output device and the first output device Second, the delay time of the output device, sending RTP data to the first output device and the second output device, so that the first output device and the second output device output data at the same time.
  • the delay time of the output device sending RTP data to the first output device and the second output device, so that the first output device and the second output device output data at the same time.
  • the transceiving unit 420 may include a receiving unit (module) and a sending unit (module), which are used to execute each embodiment of the aforementioned method 200 and method 300 and the input in the embodiments shown in FIG. 2, FIG. 3, and FIG. 4 Steps for the device to receive and send information.
  • a receiving unit module
  • a sending unit module
  • the device 500 may correspond to the input device described in the above method 200, or may be a chip or component applied to the input device, and the device 500 may Each module or unit is respectively used to execute each action or processing procedure performed by the input device in the above method 200.
  • the device 500 may include a transceiving unit 510.
  • the transceiving unit 510 is configured to receive data sent by the first input device; the transceiving unit 510 is further configured to send a first real-time transmission control protocol reception report RTCP RR to the first input device, where the first RTCP RR includes a first delay time, This is used for the first input device to determine the time for sending RTP data to the first output device.
  • the output device 500 further includes a processing unit 520, the processing unit 520 is configured to determine the first delay time, and the processor is specifically configured to: count the delay time of multiple data of the first output device within a preset time ; The delay time of the multiple data is averaged to obtain the first delay time.
  • the output device 500 further includes an output unit 530, and the transceiving unit 510 is configured to receive data and first indication information sent by the input device, and the first indication information is used to indicate that the second output device receives the data after receiving the data Output data at time T; the output unit 530 is used to output data after time T.
  • the transceiving unit 510 is configured to perform specific signal transceiving under the driving of the processing unit 520.
  • the transceiving unit 410 may include a receiving unit (module) and a sending unit (module), which are used to execute each embodiment of the aforementioned method 200 and method 300 and the input in the embodiments shown in FIG. 2, FIG. 3, and FIG. 4 Steps for the device to receive and send information.
  • a receiving unit module
  • a sending unit module
  • Fig. 7 is a schematic block diagram of a communication device according to an embodiment of the present application. It should be understood that the communication device may refer to the aforementioned input device and output device.
  • the communication device 600 shown in FIG. 7 may be used to perform steps corresponding to the steps performed by the input device and the output device in the method 200 in FIG. 2 and the method 300 in FIG. 3.
  • the communication device embodiment and the method embodiment correspond to each other.
  • the communication device 600 includes: a processor 610, a memory 620, and a transceiver 630.
  • the processor 610, the memory 620, and the transceiver 630 are connected through communication.
  • the memory 620 stores instructions
  • the processor 610 is configured to execute instructions stored in the memory 620
  • the transceiver 630 is configured to perform specific signal transceiving under the driving of the processor 610.
  • each unit in the device can be all implemented in the form of software called by processing elements; they can also be all implemented in the form of hardware; part of the units can also be implemented in the form of software called by the processing elements, and some of the units can be implemented in the form of hardware.
  • each unit can be a separate processing element, or it can be integrated in a certain chip of the device for implementation.
  • it can also be stored in the memory in the form of a program, which is called and executed by a certain processing element of the device. Function.
  • the processing element may also be called a processor, and may be an integrated circuit with signal processing capability.
  • each step of the above method or each of the above units may be implemented by an integrated logic circuit of hardware in a processor element or implemented in a form of being called by software through a processing element.
  • the unit in any of the above devices may be one or more integrated circuits configured to implement the above methods, for example: one or more application specific integrated circuits (ASIC), or, one or Multiple digital signal processors (digital signal processors, DSP), or, one or more field programmable gate arrays (FPGA), or a combination of at least two of these integrated circuits.
  • ASIC application specific integrated circuits
  • DSP digital signal processors
  • FPGA field programmable gate arrays
  • the unit in the device can be implemented in the form of a processing element scheduler
  • the processing element can be a general-purpose processor, such as a central processing unit (CPU) or other processors that can call programs.
  • CPU central processing unit
  • these units can be integrated together and implemented in the form of a system-on-a-chip (SOC).
  • the processor may be a central processing unit (central processing unit, CPU), and the processor may also be other general-purpose processors, digital signal processors (digital signal processors, DSP), and dedicated integration Circuit (application specific integrated circuit, ASIC), ready-made programmable gate array (field programmable gate array, FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the memory in the embodiments of the present application may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), and electrically available Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be random access memory (RAM), which is used as an external cache.
  • RAM random access memory
  • static random access memory static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • Access memory synchronous DRAM, SDRAM
  • double data rate synchronous dynamic random access memory double data rate SDRAM, DDR SDRAM
  • enhanced synchronous dynamic random access memory enhanced SDRAM, ESDRAM
  • synchronous connection dynamic random access memory Take memory (synchlink DRAM, SLDRAM) and direct memory bus random access memory (direct rambus RAM, DR RAM).
  • the above-mentioned embodiments may be implemented in whole or in part by software, hardware, firmware or any other combination.
  • the above-mentioned embodiments may be implemented in the form of a computer program product in whole or in part.
  • the computer program product includes one or more computer instructions or computer programs.
  • the computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instruction may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer instruction may be transmitted from a website, computer, server, or data center through a cable (For example, infrared, wireless, microwave, etc.) to transmit to another website, computer, server or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center that includes one or more sets of available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium.
  • the semiconductor medium may be a solid state drive.
  • the embodiment of the present application also provides a system, which includes: the above-mentioned input device and the above-mentioned output device.
  • the embodiment of the present application also provides a computer-readable medium for storing computer program code, and the computer program includes instructions for executing the distributed data transmission method of the embodiment of the present application in the above method 200.
  • the readable medium may be a read-only memory (ROM) or a random access memory (RAM), which is not limited in the embodiment of the present application.
  • the present application also provides a computer program product, the computer program product including instructions, when the instructions are executed, so that the input device and the output device respectively perform operations corresponding to the above method of the input device and output device.
  • An embodiment of the present application also provides a system chip, which includes a processing unit and a communication unit.
  • the processing unit may be, for example, a processor, and the communication unit may be, for example, an input/output interface, a pin, or a circuit.
  • the processing unit can execute computer instructions, so that the chip in the communication device executes any of the distributed data transmission methods provided in the foregoing embodiments of the present application.
  • any device provided in the foregoing embodiments of the present application may include the system chip.
  • the computer instructions are stored in a storage unit.
  • the storage unit is a storage unit in the chip, such as a register, a cache, etc.
  • the storage unit can also be a storage unit in the terminal located outside the chip, such as a ROM or other storage units that can store static information and instructions.
  • static storage devices RAM, etc.
  • the processor mentioned in any of the above may be a CPU, a microprocessor, an ASIC, or one or more integrated circuits used to control the program execution of the above resource request method.
  • the processing unit and the storage unit can be decoupled, respectively set on different physical devices, and connected in a wired or wireless manner to realize the respective functions of the processing unit and the storage unit, so as to support the system chip to implement the above-mentioned embodiments Various functions in.
  • the processing unit and the memory may also be coupled to the same device.
  • the memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), and electrically available Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be random access memory (RAM), which is used as an external cache.
  • RAM random access memory
  • static random access memory static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • Access memory synchronous DRAM, SDRAM
  • double data rate synchronous dynamic random access memory double data rate SDRAM, DDR SDRAM
  • enhanced synchronous dynamic random access memory enhanced SDRAM, ESDRAM
  • synchronous connection dynamic random access memory Take memory (synchlink DRAM, SLDRAM) and direct memory bus random access memory (direct rambus RAM, DR RAM).
  • system and "network” in this article are often used interchangeably in this article.
  • and/or in this article is only an association relationship describing the associated objects, which means that there can be three relationships, for example, A and/or B, which can mean: A alone exists, A and B exist at the same time, exist alone B these three situations.
  • the character "/" in this text generally indicates that the associated objects before and after are in an "or” relationship.
  • the disclosed system, device, and method can be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the unit is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components may be combined or may be Integrate into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present application essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM), and random access.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种分布式数据传输的方法、装置和系统。输入设备在向输出设备发送RTP数据时,会根据设备延迟控制列表,确定第一输出设备的延迟时间和第二输出设备的延迟时间;根据第一输出设备的延迟时间和第二输出设备的延迟时间,向该第一输出设备和该第二输出设备发送RTP数据,使得该第一输出设备和该第二输出设备输出数据的时间相同。通过在时间上对该第一输出设备和该第二输出设备输出数据的时间进行控制,可以使得第一输出设备和第二输出设备同时输出数据,并且不会降低输出设备的输出质量,提高了用户的体验度。

Description

一种分布式数据传输的方法、装置和系统
本申请要求于2020年3月5日提交中国专利局、申请号为202010148510.9、申请名称为“一种分布式数据传输的方法、装置和系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,更为具体的,涉及一种分布式数据传输的方法、装置和系统。
背景技术
目前主要基于实时传输协议(Real-time Transport Protocol,RTP)在多终端上实现音频视频的播放。但由于在网络传输过程中,不可避免的会发生延时,现有技术针对网络传输过程中的延迟,使用拥塞机制GCC和带宽调节策略来保证延迟、质量和网络速度之间的平衡。
在面对未来1+8的应用场景(即一个输入源设备和多个输出源设备)的时候,需要协调同步多个输出源设备的播放,否则会出现多输出设备播放延时不可控,相位不同步,带来声音干涉的情况,影响用户的视听享受。如果继续采用现有的拥塞机制和带宽调节策略,在保证输出同步时,会降低输出源设备的输出质量,影响用户的体验。
发明内容
本申请提供一种分布式数据传输的方法、装置和系统。输入设备在向输出设备发送RTP数据时,会根据设备延迟控制列表,确定第一输出设备的延迟时间和第二输出设备的延迟时间;根据第一输出设备的延迟时间和第二输出设备的延迟时间,向该第一输出设备和该第二输出设备发送RTP数据,使得该第一输出设备和该第二输出设备输出数据的时间相同。通过在时间上对该第一输出设备和该第二输出设备输出数据的时间进行控制,可以使得第一输出设备和第二输出设备同时输出数据,并且不会降低输出设备的输出质量,提高了用户的体验度。
第一方面,提供了一种分布式数据传输的方法,该方法的执行主体既可以是输入设备,也可以是应用于输入设备的芯片。以执行主体为输入设备为例,该方法包括:该输入设备根据设备延迟控制列表,确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,其中,该设备延迟控制列表包括输出设备的标识以及与该输出设备的标识关联的输出设备的延迟时间;该输入设备根据该T 1和该T 2,向该第一输出设备和该第二输出设备发送RTP数据,其中,发送给所述第一输出设备的RTP数据中包括所述输入设备向所述第一输出设备发送RTP数据的时间戳,所述发送给所述第二输出设备的RTP数据中包括所述输入设备向所述第二输出设备发送RTP数据的时间戳。
第一方面提供的分布式数据传输的方法,在输入设备向输出设备发送RTP数据时,该输入设备根据设备延迟控制列表,确定第一输出设备的延迟时间和第二输出设备的延迟时 间;该输入设备根据第一输出设备的延迟时间和第二输出设备的延迟时间,向该第一输出设备和该第二输出设备发送RTP数据,通过在时间上对该第一输出设备和该第二输出设备输出数据的时间进行控制,可以使得第一输出设备和第二输出设备同时输出数据,避免了现有技术中通过改变码率降低输出设备的输出质量来使得第一输出设备和第二输出设备同时输出数据,该方法不会降低输出设备的输出质量,提高了用户的体验度。
应理解,本申请中的输入设备是指该设备提供数据,将数据发送给其他设备,由其他设备进行播放。该输入设备可以是网络设备,也可以是终端设备。该输出设备是指该设备接收数据,进行播放。该输出设备可以是终端设备,也可以是可穿戴设备,还可以是网络设备。如该输入设备为手机,输出设备分别为电视和音响。
结合第一方面,在第一方面的某些实现方式中,该输入设备根据该T 1和该T 2,向该第一输出设备和该第二输出设备发送RTP数据,包括:根据式(1)确定该T 1和该T 2的时间差T,
T=T 1-T 2,T>0;      (1)
向该第一输出设备发送RTP数据后,经过T时间,向该第二输出设备发送RTP数据。
在该实现方式中,输入设备确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2的时间差T,T>0;输入设备先向该第一输出设备发送RTP数据,经过T时间后,输入设备向该第二输出设备发送RTP数据,使得该第一输出设备和该第二输出设备接收数据的时间相同,该第一输出设备和该第二输出设备各自解码,同时输出数据。
结合第一方面,在第一方面的某些实现方式中,该输入设备根据该T 1和该T 2,向该第一输出设备和该第二输出设备发送RTP数据,包括:根据式(2)确定该T 1和该T 2的时间差T,
T=T 1-T 2,T>0;       (2)
向该第一输出设备和该第二输出设备同时发送RTP数据,其中,向该第二输出设备发送RTP数据时还包括第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据。
在该实现方式中,输入设备确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2的时间差T,T>0;输入设备同时向该第一输出设备和该第二输出设备发送RTP数据,同时向该第二输出设备发送RTP数据时还包括第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据,使得该第一输出设备和该第二输出设备输出数据的时间相同。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:该输入设备接收该第一输出设备发送的第一实时传输控制协议接收报告RTCP RR,该第一RTCP RR包括第一延迟时间;该输入设备接收该第二输出设备发送的第二实时传输控制协议接收报告RTCP RR,该第二RTCP RR包括第二延迟时间;根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表。
在该实现方式中,该输入设备接收该第一输出设备发送的第一延迟时间,接收该第二输出设备发送的第二延迟时间,根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表,使得该输入设备可以根据该第一延迟时间和该第二延迟时间动态更新延迟控制列表,因此,如果由于网络原因,该第一输出设备和该第二输出设备的延迟时间发生变化, 该输入设备可以及时对延迟控制列表进行调整,确保该第一输出设备和该第二输出设备同时输出数据,提高用户体验度。
结合第一方面,在第一方面的某些实现方式中,该输入设备根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表,包括:该输入设备统计预设时间内的多个该第一延迟时间和多个该第二延迟时间;该输入设备对该多个第一延迟时间取平均值
Figure PCTCN2021079148-appb-000001
该输入设备对该多个第二延迟时间取平均值
Figure PCTCN2021079148-appb-000002
该输入设备根据该
Figure PCTCN2021079148-appb-000003
和该
Figure PCTCN2021079148-appb-000004
更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2
在该实现方式中,该输入设备在预设时间内分别对多个该第一延迟时间和多个该第二延迟时间取平均值
Figure PCTCN2021079148-appb-000005
和该
Figure PCTCN2021079148-appb-000006
根据该
Figure PCTCN2021079148-appb-000007
和该
Figure PCTCN2021079148-appb-000008
更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,消除了该第一延迟时间和该第二延迟时间的抖动,使得该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2准确度更高。
应理解,在本申请中,该预设时间可以是预定义的一段时间,如1000ms,统计在该1000ms内的多个RTP数据包的延时;该预设时间也可以是根据不同应用确定的一段时间,如视频播放时,可以预设第一时段,时长为1000ms;音频播放时,可以预设第二时段,时长为500ms;该预设时间还可以根据应用的播放时长动态设定,如应用启动时,预设时间为系统默认的时间段500ms,随着应用的进行,预设时间可以在默认时间段上增加时长,如每一小时预设时间增加500ms;该预设时间还可以根据网络质量动态改变,如网络质量好时,可以减小该预设时间,当网络质量差时,可以增加该预设时长。
应理解,该预设时间本申请不做任何限定,上述预设时间的形式均为举例,该预设时间还可以有其他实现形式。
结合第一方面,在第一方面的某些实现方式中,该输入设备根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表,包括:根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2
结合第一方面,在第一方面的某些实现方式中,该第一延迟时间为该第一输出设备统计的预设时间内该第一输出设备的多个数据的延迟时间的平均值,该第二延迟时间为该第二输出设备统计的预设时间内该第二输出设备的多个数据的延迟时间的平均值。
在该实现方式中,该输入设备接收的该第一输出设备发送的该第一延迟时间是该第一输出设备在预设时间内统计的多个数据的延迟时间的平均值,该输入设备接收的该第二输出设备发送的该第二延迟时间是该第二输出设备在预设时间内统计的多个数据的延迟时间的平均值,该输入设备根据该第一延迟时间和该第二延迟时间,直接更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,无需进行任何计算,节省了该输入设备的计算资源。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:该输入设备获取第三输出设备的标识;确定该第三输出设备的延迟时间;在该设备延时控制列表添加该第三输出设备的标识和该第三输出设备的延迟时间。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:当第三输出设备断开与该输入设备的连接时,该输入设备在该设备延时控制列表删除该第三输出设备的标识和该第三输出设备的延迟时间。
因此,该输入设备可以根据是否与该输出设备连接来动态更新该设备延时控制列表,避免占用该输出设备的存储资源。
第二方面,提供了一种分布式数据传输的方法,该方法的执行主体既可以是输出设备,也可以是应用于输出设备的芯片。以执行主体为输出设备为例,该方法包括:接收第一输入设备发送的RTP数据;用于根据所述RTP数据,确定第一延迟时间;向该第一输入设备发送第一实时传输控制协议接收报告RTCP RR,该第一RTCP RR包括第一延迟时间,该用于该第一输入设备确定向该第一输出设备发送RTP数据的时间。
结合第二方面,在第二方面的某些实现方式中,该方法还包括确定该第一延迟时间,该确定该第一延迟时间包括:统计预设时间内该第一输出设备多个数据的延迟时间;对该多个数据的延迟时间取平均值,得到该第一延迟时间。
输出设备经过统计预设时间内该第一输出设备多个数据的延迟时间;对该多个数据的延迟时间取平均值,得到该第一延迟时间,消除了该第一延迟时间的抖动,使得发送给该输入设备的第一延迟时间更加准确,提高了设备延迟控制列表的第一输出设备的延迟时间T 1的准确度。
结合第二方面,在第二方面的某些实现方式中,该方法还包括:接收输入设备发送的数据和第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据;在T时间后,输出数据。
第三方面,提供了一种输入设备,包括:处理器,用于根据设备延迟控制列表,确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,其中,该设备延迟控制列表包括输出设备的标识以及与该输出设备的标识关联的输出设备的延迟时间;收发器,用于根据该T 1和该T 2,向该第一输出设备和该第二输出设备发送RTP数据,其中,发送给所述第一输出设备的RTP数据中包括所述输入设备向所述第一输出设备发送RTP数据的时间戳,所述发送给所述第二输出设备的RTP数据中包括所述输入设备向所述第二输出设备发送RTP数据的时间戳。
结合第三方面,在第三方面的某些实现方式中,该收发器具体用于:根据式(3)确定该T 1和该T 2的时间差T,
T=T 1-T 2,T>0;      (3)
向该第一输出设备发送RTP数据后,经过T时间,向该第二输出设备发送RTP数据。
结合第三方面,在第三方面的某些实现方式中,该收发器具体用于:根据式(4)确定该T 1和该T 2的时间差T,
T=T 1-T 2,T>0;     (4)
同时向该第一输出设备和该第二输出设备发送RTP数据,其中,向该第二输出设备发送RTP数据时还包括第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据。
结合第三方面,在第三方面的某些实现方式中,该收发器还用于接收该第一输出设备发送的第一实时传输控制协议接收报告RTCP RR,该第一RTCP RR包括第一延迟时间;接收该第二输出设备发送的第二实时传输控制协议接收报告RTCP RR,该第二RTCP RR包括第二延迟时间;该处理器还用于根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表。
结合第三方面,在第三方面的某些实现方式中,该处理器具体用于:统计预设时间内的多个该第一延迟时间和多个该第二延迟时间;对该多个第一延迟时间取平均值
Figure PCTCN2021079148-appb-000009
对该多个第二延迟时间取平均值
Figure PCTCN2021079148-appb-000010
根据该
Figure PCTCN2021079148-appb-000011
和该
Figure PCTCN2021079148-appb-000012
更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2
结合第三方面,在第三方面的某些实现方式中,该处理器具体用于:根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2
结合第三方面,在第三方面的某些实现方式中,该第一延迟时间为该第一输出设备统计的预设时间内该第一输出设备的多个数据的延迟时间的平均值,该第二延迟时间为该第二输出设备统计的预设时间内该第二输出设备的多个数据的延迟时间的平均值。
结合第三方面,在第三方面的某些实现方式中,该处理器还用于获取第三输出设备的标识;确定该第三输出设备的延迟时间;在该设备延时控制列表添加该第三输出设备的标识和该第三输出设备的延迟时间。
第四方面,提供了一种输出设备,其特征在于,包括:收发器,用于接收第一输入设备发送的数据;该收发器还用于向该第一输入设备发送第一实时传输控制协议接收报告RTCP RR,该第一RTCP RR包括第一延迟时间,该用于该第一输入设备确定向该第一输出设备发送RTP数据的时间。
结合第四方面,在第四方面的某些实现方式中,该输出设备还包括处理器,该处理器用于确定该第一延迟时间,该处理器具体用于:统计预设时间内该第一输出设备多个数据的延迟时间;对该多个数据的延迟时间取平均值,得到该第一延迟时间。
结合第四方面,在第四方面的某些实现方式中,该收发器还用于接收输入设备发送的数据和第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据;该收发器在T时间后,输出数据。
第五方面,提供了一种输入设备,该装置包括用于执行以上第一方面或第一方面的任意可能的实现方式中的各个步骤的单元。
第六方面,提供了一种输出设备,该装置包括用于执行以上第二方面或第二方面的任意可能的实现方式中的各个步骤的单元。
第七方面,提供了一种输入设备,该装置包括至少一个处理器和存储器,该至少一个处理器用于执行以上第一方面或第一方面的任意可能的实现方式中的方法。
第八方面,提供了一种输出设备,该装置包括至少一个处理器和存储器,该至少一个处理器用于执行以上第二方面或第二方面的任意可能的实现方式中的方法。
第九方面,提供了一种输入设备,该装置包括至少一个处理器和接口电路,该至少一个处理器用于执行以上第一方面或第一方面的任意可能的实现方式中的方法。
第十方面,提供了一种输出设备,该装置包括至少一个处理器和接口电路,该至少一个处理器用于执行以上第二方面或第二方面的任意可能的实现方式中的方法。
第十一方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序在被处理器执行时,用于执行第一方面或第一方面的任意可能的实现方式中的方法,或者执行第二方面或第二方面的任意可能的实现方式中的方法。
第十二方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机 程序,当该计算机程序被执行时,用于执行第一方面或第一方面的任意可能的实现方式中的方法,或者执行第二方面或第二方面的任意可能的实现方式中的方法。
第十三方面,提供了一种系统,该系统包括上述的输入设备和输出设备。
第十四方面,提供了一种芯片,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的通信设备执行第一方面或第一方面的任意可能的实现方式中的方法,或者执行第二方面或第二方面的任意可能的实现方式中的方法。
附图说明
图1是一例适用于本申请实施例的通信系统的架构示意图。
图2是本申请一个实施例的分布式数据传输的方法200的示意性交互图。
图3是本申请一个实施例的分布式数据传输的方法300的示意性交互图。
图4中示出了分布式设备延时管理的框图。
图5示出了本申请实施例的输入设备的示意性框图。
图6示出了本申请实施例的输出设备的示意性框图。
图7示出了本申请实施例的通信设备的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
目前主要基于实时传输协议(Real-time Transport Protocol,RTP)在多终端上实现音频视频的播放。但由于在网络传输过程中,不可避免的会发生延时,现有技术针对网络传输过程中的延迟,使用拥塞机制GCC和带宽调节策略来保证延迟、质量和网络速度之间的平衡。
目前多终端播放音频视频,相对比较简单,一个输入源设备和一个输出源设备。但在在面对未来1+8的应用场景(即一个输入源设备和多个输出源设备)的时候,需要协调同步多个输出源设备的播放,否则会出现多输出设备播放延时不可控,相位不同步,带来声音干涉的情况,或者出现音频视频不同步的情况,影响用户的视听享受。如果继续采用现有的拥塞机制和带宽调节策略,在保证输出同步时,会降低输出源设备的输出质量,影响用户的体验。
有鉴于此,本申请提供了一种分布式数据传输的方法,输入设备在向输出设备发送RTP数据时,会根据设备延迟控制列表,确定第一输出设备的延迟时间和第二输出设备的延迟时间;根据第一输出设备的延迟时间和第二输出设备的延迟时间,向该第一输出设备和该第二输出设备发送RTP数据,使得该第一输出设备和该第二输出设备输出数据的时间相同。通过在时间上对该第一输出设备和该第二输出设备输出数据的时间进行控制,可以使得第一输出设备和第二输出设备同时输出数据,并且不会降低输出设备的输出质量,提高了用户的体验度。
本申请实施例的技术方案可以应用于各种通信系统,例如:全球移动通讯(Global System of Mobile communication,GSM)系统、码分多址(Code Division Multiple Access,CDMA)系统、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)系统、通用分组无线业务(General Packet Radio Service,GPRS)、长期演进(Long Term Evolution, LTE)系统、LTE频分双工(Frequency Division Duplex,FDD)系统、LTE时分双工(Time Division Duplex,TDD)、通用移动通信系统(Universal Mobile Telecommunication System,UMTS)、全球互联微波接入(Worldwide Interoperability for Microwave Access,WiMAX)通信系统、未来的第五代(5th Generation,5G)系统或新无线(New Radio,NR)等。在上述各种系统中,设备之间数据的传输方法都涉及网络七层协议也称为OSI模型,是一个开放性的通信系统互连参考模型。该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。网络七层协议分别是是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。本申请实施例的技术方案涉及传输层的改变,所以本申请实施例的技术方案可以应用于上述各种通信系统。
本申请实施例中的输入设备和输出设备只是为了描述引入的定义,并不对本申请造成任何限定。输入设备是指该设备提供数据,将数据发送给其他设备,由其他设备进行播放。该输入设备可以是网络设备,也可以是终端设备。该输出设备是指该设备接收数据,进行播放。该输出设备可以是网络设备,也可以是终端设备,还可以是可穿戴设备。如该输入设备为手机,输出设备分别为电视和音响。
本申请实施例中的终端设备可以指用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。终端设备还可以是蜂窝电话、无绳电话、会话启动协议(Session Initiation Protocol,SIP)电话、无线本地环路(Wireless Local Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备、智能电视、音响等,未来5G网络中的终端设备或者未来演进的公用陆地移动通信网络(Public Land Mobile Network,PLMN)中的终端设备等,本申请实施例对此并不限定。
本申请实施例中的网络设备可以是用于与终端设备通信的设备,该网络设备可以是全球移动通讯(Global System of Mobile communication,GSM)系统或码分多址(Code Division Multiple Access,CDMA)中的基站(Base Transceiver Station,BTS),也可以是宽带码分多址(Wideband Code Division Multiple Access,WCDMA)系统中的基站(NodeB,NB),还可以是LTE系统中的演进型基站(Evolutional NodeB,eNB或eNodeB),还可以是云无线接入网络(Cloud Radio Access Network,CRAN)场景下的无线控制器,或者该网络设备可以为中继站、接入点、车载设备、可穿戴设备以及未来5G网络中的网络设备、未来演进的PLMN网络中的网络设备或未来的其他类型的通信系统中的网络设备等,本申请实施例并不限定。
在本申请实施例中,终端设备或网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(central processing unit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。并且,本申请实施例并未对本申请实施例提供的方法的执行主体的具体结构特别限定,只要能够通过运行记录有本申请实施例的提供的方法的代码的程序,以根据本申请实施例提供的方法 进行通信即可,例如,本申请实施例提供的方法的执行主体可以是终端设备或网络设备,或者,是终端设备或网络设备中能够调用程序并执行程序的功能模块。
另外,本申请的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatile disc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmable read-only memory,EPROM)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
为便于理解本申请实施例,首先结合图1简单介绍适用于本申请实施例的通信系统。
图1是适用于本申请实施例的资源请求的方法的通信系统100的架构示意图。如图1所示,该通信系统100包括三个通信设备,例如,输入设备110,输出设备120和输出设备130。输入设备110与输出设备120,输出设备130之间可以进行数据通信。输入设备110向输出设备120和输出设备130发送数据时可以通过本申请实施例的分布式数据传输的方法进行数据传输。
应理解,图1所示的通信系统中还可以包括更多的网络节点,例如终端设备或网络设备,图1所示的通信系统中包括的网络设备或者终端设备可以是上述各种形式的网络设备或者终端设备。本申请实施例在图中不再一一示出。
下面结合图2详细说明本申请提供的分布式数据传输的方法,图2是本申请一个实施例的分布式数据传输的方法200的示意性交互图,该方法200可以应用在图1所示的场景中,当然也可以应用在其他通信场景中,本申请实施例在此不作限制。
还应理解,在本申请实施例中,以输入设备、输出设备作为执行方法的执行主体为例,对方法进行说明。作为示例而非限定,执行方法的执行主体也可以是应用于输入设备和输出设备的芯片、芯片系统、或处理器等。
还应理解,该输入设备可以是上文所述的网络设备或终端设备,该输出设备可以是上文所述的网络设备或终端设备。
如图2所示,图2中示出的方法200可以包括S210至S230。下面结合图2详细说明方法200中的各个步骤。
S210,输入设备根据设备延迟控制列表,确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,其中,该设备延迟控制列表包括输出设备的标识以及与该输出设备的标识关联的输出设备的延迟时间。
S220,该输入设备根据该T 1和该T 2,向该第一输出设备和该第二输出设备发送RTP数据,其中,发送给所述第一输出设备的RTP数据中包括所述输入设备向所述第一输出设备发送RTP数据的时间戳,所述发送给所述第二输出设备的RTP数据中包括所述输入设备向所述第二输出设备发送RTP数据的时间戳。
S230,该第一输出设备接收并播放数据。
S240,该第二输出设备接收并播放数据。
本申请实施例提供的分布式数据传输的方法,在输入设备向输出设备发送RTP数据 时,该输入设备根据设备延迟控制列表,确定第一输出设备的延迟时间和第二输出设备的延迟时间;该输入设备根据第一输出设备的延迟时间和第二输出设备的延迟时间,向该第一输出设备和该第二输出设备发送RTP数据,通过在时间上对该第一输出设备和该第二输出设备输出数据的时间进行控制,可以使得第一输出设备和第二输出设备同时输出数据,并且不会降低输出设备的输出质量,提高了用户的体验度。
可选的,该设备延迟控制列表是输入设备用来确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,该设备延迟控制列表可以是一个表格,也可以是一个数据结构,还可以是一组和多个输出设备相关联数据,该设备延迟控制列表只是其中一种表现形式。
应理解,在步骤S220中,该输入设备向该第一输出设备发送的RTP数据和向该第二输出设备发送的RTP数据可以相同也可以不相同。例如,当用户在不同设备上进行音乐播放,输入设备为手机,第一输出设备为蓝牙耳机,第二输出设备为音响,手机分别连接蓝牙和音响,则用户通过手机发送给蓝牙和音响的RTP数据一样,均为歌曲音频流;当用户想要观看视频时,手机分别连接智能电视和音响,输入设备为手机,第一输出设备为智能电视,第二输出设备为音响,则手机发送给智能电视的RTP数据为视频流,发送给音响的RTP数据为音频流。即根据不同的应用场景,RTP数据可以是音频数据也可以是视频数据。
可选的,该输入设备根据该T 1和该T 2,向该第一输出设备和该第二输出设备发送RTP数据,包括:根据公式(1)确定该T 1和该T 2的时间差T,
T=T 1-T 2,T>0;      (1)
向该第一输出设备发送RTP数据后,经过T时间,向该第二输出设备发送RTP数据。
在该实现方式中,输入设备确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2的时间差T,T>0;输入设备先向该第一输出设备发送RTP数据,经过T时间后,输入设备向该第二输出设备发送RTP数据,使得该第一输出设备和该第二输出设备接收数据的时间相同,该第一输出设备和该第二输出设备各自解码,同时输出数据。
具体而言,例如手机分别连接智能电视和音响,输入设备为手机,第一输出设备为智能电视,第二输出设备为音响。在手机端,会产生一个结构体链表,该结构体链表即为设备延时控制列表,如下所示。
Stract vicesNode{
DeviceID;
DelayTime;
Stract devicesNode*Next;
};
电视:                 音响:
Device ID=1          Device ID=1
Delay Time=2ms       Delay Time=1ms
当手机进行RTP数据流播放的时候,先向电视发送视频数据,在延迟1ms后向音响发送音频数据,使得电视播放视频的同时音响在播放音频。
可选的,该输入设备根据该T 1和该T 2,向该第一输出设备和该第二输出设备发送RTP数据,包括:根据公式(2)确定该T 1和该T 2的时间差T,
T=T 1-T 2,T>0;     (2)
向该第一输出设备和该第二输出设备同时发送RTP数据,其中,向该第二输出设备发送RTP数据时还包括第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据。
在该实现方式中,输入设备确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2的时间差T,T>0;输入设备同时向该第一输出设备和该第二输出设备发送RTP数据,同时向该第二输出设备发送RTP数据时还包括第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据,使得该第一输出设备和该第二输出设备输出数据的时间相同。
下面结合图3详细说明本申请提供的分布式数据传输的方法,图3是本申请一个实施例的分布式数据传输的方法300的示意性交互图,该方法300可以应用在图1所示的场景中,当然也可以应用在其他通信场景中,本申请实施例在此不作限制。
还应理解,在本申请实施例中,以输入设备、输出设备作为执行方法的执行主体为例,对方法进行说明。作为示例而非限定,执行方法的执行主体也可以是应用于输入设备和输出设备的芯片、芯片系统、或处理器等。
还应理解,该输入设备可以是上文所述的网络设备或终端设备,该输出设备可以是上文所述的网络设备或终端设备。
如图3所示,图3中示出的方法300可以包括S310至S380。下面结合图3详细说明方法200中的各个步骤。
S310,该第一输出设备向该输入设备发送第一实时传输控制协议接收报告RTCP RR,该第一RTCP RR包括第一延迟时间。
S320,该输入设备接收该第一输出设备发送的第一实时传输控制协议接收报告RTCP。
S330,该第二输出设备向该输入设备发送第二实时传输控制协议接收报告RTCP RR,该第二RTCP RR包括第二延迟时间。
S340,该输入设备接收该第二输出设备发送的第二实时传输控制协议接收报告RTCP。
S350,该输入根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表。
S360,输入设备根据设备延迟控制列表,确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,其中,该设备延迟控制列表包括输出设备的标识以及与该输出设备的标识关联的输出设备的延迟时间。
S370,该输入设备根据该T 1和该T 2,向该第一输出设备和该第二输出设备发送RTP数据,使得该第一输出设备和该第二输出设备输出数据的时间相同。
S380,该第一输出设备接收并播放数据。
S390,该第二输出设备接收并播放数据。
在步骤S310,该第一输出设备向该输入设备发送第一实时传输控制协议接收报告RTCP RR之前,该第一输出设备需要根据该输入设备向该第一输出设备设备发送的RTP数据报文确定第一延迟时间,该RTP数据报文中包括该输入设备向该第一输出设备设备发送的RTP数据报文的时间戳,该第一输出设备根据接收到该RTP报文的时间和该输入设备向该第一输出设备设备发送的RTP数据报文的时间差确定该第一延迟时间。
应理解,该第二输出设备确定第二延迟时间的方法可以参考上述第一输出设备确定第 一延迟时间的方法,此处不再赘述。
还应理解,该输出设备向该输入设备发送的实时传输控制协议接收报告RTCP RR是向该输入设备发送的数据响应包,该响应包会在输出设备收到RTP数据时发送。
应理解,在本申请实施例中,输出设备为第一输出设备和第二输出设备仅用来举例,该输入设备可以连接多个输出设备。
下面以三个输出设备为例,对本申请实施例进行描述。图4中示出了分布式设备延时管理的框图。如图4所示,分别为输入设备,第一输出设备、第二输出设备和第三输出设备。输入设备需要在第一输出设备、第二输出设备和第三输出设备上同时输出一段音频数据。输入设备向第一输出设备、第二输出设备和第三输出设备发送RTP数据报文,该数据报文中包括输入设备发送该数据报文的时间,第一输出设备、第二输出设备和第三输出设备分别接收到该数据报文时,根据该数据报文的接收时间,确定该数据报文的延迟时间,并通过RTCP RR报文发送给输入设备,输入设备根据接收到的RTCP RR报文,更新输入设备上的设备延迟控制列表。
应理解,该输入设备向第一输出设备、第二输出设备和第三输出设备发送的RTP数据报文,可以是测试报文,也可以是上个任务的数据报文,本申请对此不进行任何限定。
还应理解,本申请的RTCP RR报文是在原RTCP RR报文的格式中增加了数据延时delta-delay字段,并不改变原有的报文格式。
在该实现方式中,该输入设备接收该第一输出设备发送的第一延迟时间,接收该第二输出设备发送的第二延迟时间,根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表,使得该输入设备可以根据该第一延迟时间和该第二延迟时间动态更新延迟控制列表,因此,如果由于网络原因,该第一输出设备和该第二输出设备的延迟时间发生变化,该输入设备可以及时对延迟控制列表进行调整,确保该第一输出设备和该第二输出设备同时输出数据,提高用户体验度。
可选的,该输入设备根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表,包括:该输入设备统计预设时间内的多个该第一延迟时间和多个该第二延迟时间;该输入设备对该多个第一延迟时间取平均值
Figure PCTCN2021079148-appb-000013
该输入设备对该多个第二延迟时间取平均值
Figure PCTCN2021079148-appb-000014
该输入设备根据该
Figure PCTCN2021079148-appb-000015
和该
Figure PCTCN2021079148-appb-000016
更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2
在该实现方式中,该输入设备在预设时间内分别对多个该第一延迟时间和多个该第二延迟时间取平均值
Figure PCTCN2021079148-appb-000017
和该
Figure PCTCN2021079148-appb-000018
根据该
Figure PCTCN2021079148-appb-000019
和该
Figure PCTCN2021079148-appb-000020
更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,消除了该第一延迟时间和该第二延迟时间的抖动,使得该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2准确度更高。
应理解,在本申请中,该预设时间可以是预定义的一段时间,如1000ms,统计在该1000ms内的多个RTP数据包的延时;该预设时间也可以是根据不同应用确定的一段时间,如视频播放时,可以预设第一时段,时长为1000ms;音频播放时,可以预设第二时段,时长为500ms;该预设时间还可以根据应用的播放时长动态设定,如应用启动时,预设时间为系统默认的时间段500ms,随着应用的进行,预设时间可以在默认时间段上增加时长,如每一小时预设时间增加500ms;该预设时间还可以根据网络质量动态改变,如网络 质量好时,可以减小该预设时间,当网络质量差时,可以增加该预设时长。
应理解,该预设时间本申请不做任何限定,上述预设时间的形式均为举例,该预设时间还可以有其他实现形式。
可选的,该输入设备根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表,包括:根据该第一延迟时间和该第二延迟时间,更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2
可选的,该第一延迟时间为该第一输出设备统计的预设时间内该第一输出设备的多个数据的延迟时间的平均值,该第二延迟时间为该第二输出设备统计的预设时间内该第二输出设备的多个数据的延迟时间的平均值。
在该实现方式中,该输入设备可以与输出设备事先约定,在到达预设时间后,该输入设备根据该第一输出设备发送的该第一延迟时间和该第二输出设备发送的该第二延迟时间更新该设备延迟控制列表。在预设时间内,该输入设备不再更新该设备延迟控制列表。
该输入设备接收的该第一输出设备发送的该第一延迟时间是该第一输出设备在预设时间内统计的多个数据的延迟时间的平均值,该输入设备接收的该第二输出设备发送的该第二延迟时间是该第二输出设备在预设时间内统计的多个数据的延迟时间的平均值,该输入设备根据该第一延迟时间和该第二延迟时间,直接更新该设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,无需进行任何计算,节省了该输入设备的计算资源。
可选的,该方法还包括该第一输出设备确定该第一延迟时间,该确定该第一延迟时间包括:统计预设时间内该第一输出设备多个数据的延迟时间;对该多个数据的延迟时间取平均值,得到该第一延迟时间。
输出设备经过统计预设时间内该第一输出设备多个数据的延迟时间;对该多个数据的延迟时间取平均值,得到该第一延迟时间,消除了该第一延迟时间的抖动,使得发送给该输入设备的第一延迟时间更加准确,提高了设备延迟控制列表的第一输出设备的延迟时间T 1的准确度。
应理解,本申请仅以该第一输出设备为例,描述了输出设备如何确定该第一延迟时间,该第二输出设备以及其他任何输出设备都可以根据该第一输出设备的方法确定数据包的延迟时间,在此不再赘述。
可选的,该方法还包括:该输入设备获取第三输出设备的标识;确定该第三输出设备的延迟时间;在该设备延时控制列表添加该第三输出设备的标识和该第三输出设备的延迟时间。
可选的,该方法还包括:当第三输出设备断开与该输入设备的连接时,该输入设备在该设备延时控制列表删除该第三输出设备的标识和该第三输出设备的延迟时间。
因此,该输入设备可以根据是否与该输出设备连接来动态更新该设备延时控制列表,避免占用该输出设备的存储资源。
可选的,该方法还包括:接收输入设备发送的数据和第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据;在T时间后,输出数据。
具体而言,输入设备确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2的时间差T,T>0;输入设备同时向该第一输出设备和该第二输出设备发送RTP数据,但 是该输入设备向该第二输出设备发送RTP数据时还包括第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据,该第二输出设备在接收到该输入设备发送的数据和第一指示信息,根据该第一指示信息,在T时间后,输出数据,使得该第一输出设备和该第二输出设备输出数据的时间相同。
以上结合图1至图4对本申请实施例的资源请求的方法做了详细说明。以下,结合图5至图7对本申请实施例通信装置进行详细说明。
图5示出了本申请实施例的输入设备400的示意性框图,该设备400可以对应上述方法200中描述的输入设备,也可以是应用于输入设备的芯片或组件,并且,该设备400中各模块或单元分别用于执行上述方法200和上述方法300中输入设备所执行的各动作或处理过程。
如图5所示,该设备400可以包括处理单元410和收发单元420。收发单元420用于在处理单元310的驱动下执行具体的信号收发。
处理单元410,用于根据设备延迟控制列表,确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,其中,该设备延迟控制列表包括输出设备的标识以及与该输出设备的标识关联的输出设备的延迟时间。
收发单元420,用于根据该T 1和该T 2,向该第一输出设备和该第二输出设备发送RTP数据,使得该第一输出设备和该第二输出设备输出数据的时间相同。
本申请提供的输入设备,在向输出设备发送RTP数据时,会根据设备延迟控制列表,确定第一输出设备的延迟时间和第二输出设备的延迟时间;根据第一输出设备的延迟时间和第二输出设备的延迟时间,向该第一输出设备和该第二输出设备发送RTP数据,使得该第一输出设备和该第二输出设备输出数据的时间相同。通过在时间上对该第一输出设备和该第二输出设备输出数据的时间进行控制,可以使得第一输出设备和第二输出设备同时输出数据,并且不会降低输出设备的输出质量,提高了用户的体验度。
应理解,设备400中各单元执行上述相应步骤的具体过程请参照前文中结合方法200、方法300以及图2、图3中相关实施例的输入设备相关的描述,为了简洁,这里不加赘述。
可选的,收发单元420可以包括接收单元(模块)和发送单元(模块),用于执行前述方法200和方法300的各个实施例以及图2、图3和图4所示的实施例中输入设备接收信息和发送信息的步骤。
图6示出了本申请实施例的输出设备500的示意性框图,该设备500可以对应上述方法200中描述的输入设备,也可以是应用于输入设备的芯片或组件,并且,该设备500中各模块或单元分别用于执行上述方法200中输入设备所执行的各动作或处理过程。
如图5所示,该设备500可以包括收发单元510。
收发单元510用于接收第一输入设备发送的数据;该收发单元510还用于向该第一输入设备发送第一实时传输控制协议接收报告RTCP RR,该第一RTCP RR包括第一延迟时间,该用于该第一输入设备确定向该第一输出设备发送RTP数据的时间。
可选的,该输出设备500还包括处理单元520,该处理单元520用于确定该第一延迟时间,该处理器具体用于:统计预设时间内该第一输出设备多个数据的延迟时间;对该多个数据的延迟时间取平均值,得到该第一延迟时间。
可选的,该输出设备500还包括输出单元530,该收发单元510用于接收输入设备发 送的数据和第一指示信息,该第一指示信息用于指示该第二输出设备在接收到数据后的T时间输出数据;该输出单元530用于在T时间后,输出数据。
收发单元510用于在处理单元520的驱动下执行具体的信号收发。
应理解,设备500中各单元执行上述相应步骤的具体过程请参照前文中结合方法200、方法300以及图2、图3和图4中相关实施例的输入设备相关的描述,为了简洁,这里不加赘述。
可选的,收发单元410可以包括接收单元(模块)和发送单元(模块),用于执行前述方法200和方法300的各个实施例以及图2、图3和图4所示的实施例中输入设备接收信息和发送信息的步骤。
图7是本申请一个实施例的通信设备的示意性框图。应理解,该通信设备可以指上述的输入设备和输出设备。图7所示的通信设备600可以用于执行对应于图2中方法200和图3中方法300中输入设备和输出设备执行的步骤。通信设备实施例与方法实施例相互对应,类似的描述可以参照方法实施例,该通信设备600包括:处理器610、存储器620和收发器630,处理器610、存储器620和收发器630通过通信连接,存储器620存储指令,处理器610用于执行存储器620存储的指令,收发器630用于在处理器610的驱动下执行具体的信号收发。
还应理解,以上装置中单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。这里该处理元件又可以称为处理器,可以是一种具有信号处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
在一个例子中,以上任一装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个专用集成电路(application specific integrated circuit,ASIC),或,一个或多个数字信号处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
应理解,本申请实施例中,该处理器可以为中央处理单元(central processing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包 括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行该计算机指令或计算机程序时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
本申请实施例还提供了一种系统,该系统包括:上述的输入设备和上述的输出设备。
本申请实施例还提供了一种计算机可读介质,用于存储计算机程序代码,该计算机程序包括用于执行上述方法200中本申请实施例的分布式数据传输的方法的指令。该可读介质可以是只读存储器(read-only memory,ROM)或随机存取存储器(random access memory,RAM),本申请实施例对此不做限制。
本申请还提供了一种计算机程序产品,该计算机程序产品包括指令,当该指令被执行时,以使得该输入设备和输出设备分别执行对应于上述方法的输入设备和输出设备的操作。
本申请实施例还提供了一种系统芯片,该系统芯片包括:处理单元和通信单元,该处理单元,例如可以是处理器,该通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行计算机指令,以使该通信装置内的芯片执行上述本申请实施例提供的任一种分布式数据传输的方法。
可选地,上述本申请实施例中提供的任意一种设备可以包括该系统芯片。
可选地,该计算机指令被存储在存储单元中。
可选地,该存储单元为该芯片内的存储单元,如寄存器、缓存等,该存储单元还可以是该终端内的位于该芯片外部的存储单元,如ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM等。其中,上述任一处提到的处理器,可以是一个CPU,微处理器,ASIC,或一个或多个用于控制上述的资源请求的方法的程序执行的集成电路。该处理 单元和该存储单元可以解耦,分别设置在不同的物理设备上,通过有线或者无线的方式连接来实现该处理单元和该存储单元的各自的功能,以支持该系统芯片实现上述实施例中的各种功能。或者,该处理单元和该存储器也可以耦合在同一个设备上。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请中可能出现的对各种消息/信息/设备/网元/系统/装置/动作/操作/流程/概念等各类客体进行了赋名,可以理解的是,这些具体的名称并不构成对相关客体的限定,所赋名称可随着场景,语境或者使用习惯等因素而变更,对本申请中技术术语的技术含义的理解,应主要从其在技术方案中所体现/执行的功能和技术效果来确定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (22)

  1. 一种分布式数据传输的方法,所述方法由输入设备执行,其特征在于,包括:
    根据设备延迟控制列表,确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,其中,所述设备延迟控制列表包括输出设备的标识以及与所述输出设备的标识关联的输出设备的延迟时间;
    根据所述T 1和所述T 2,向所述第一输出设备和所述第二输出设备分别发送实时传输协议RTP数据,其中,发送给所述第一输出设备的RTP数据中包括所述输入设备向所述第一输出设备发送RTP数据的时间戳,所述发送给所述第二输出设备的RTP数据中包括所述输入设备向所述第二输出设备发送RTP数据的时间戳。
  2. 根据权利要求1所述的方法,其特征在于,所述根据所述T 1和所述T 2,向所述第一输出设备和所述第二输出设备发送RTP数据,包括:
    根据式(1)确定所述T 1和所述T 2的时间差T,
    T=T 1-T 2,T>0;  (1)
    向所述第一输出设备发送RTP数据后,经过T时间,向所述第二输出设备发送RTP数据。
  3. 根据权利要求1所述的方法,其特征在于,所述根据所述T 1和所述T 2,向所述第一输出设备和所述第二输出设备发送RTP数据,包括:
    根据式(2)确定所述T 1和所述T 2的时间差T,
    T=T 1-T 2,T>0;  (2)
    同时向所述第一输出设备和所述第二输出设备发送RTP数据,其中,向所述第二输出设备发送RTP数据时还包括第一指示信息,所述第一指示信息用于指示所述第二输出设备在接收到数据后的T时间输出数据。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
    接收所述第一输出设备发送的第一实时传输控制协议接收报告RTCP RR,所述第一RTCP RR包括第一延迟时间;
    接收所述第二输出设备发送的第二实时传输控制协议接收报告RTCP RR,所述第二RTCP RR包括第二延迟时间;
    根据所述第一延迟时间和所述第二延迟时间,更新所述设备延迟控制列表。
  5. 根据权利要求4所述的方法,其特征在于,所述根据所述第一延迟时间和所述第二延迟时间,更新所述设备延迟控制列表,包括:
    统计预设时间内的多个所述第一延迟时间和多个所述第二延迟时间;
    对所述多个第一延迟时间取平均值
    Figure PCTCN2021079148-appb-100001
    对所述多个第二延迟时间取平均值
    Figure PCTCN2021079148-appb-100002
    根据所述
    Figure PCTCN2021079148-appb-100003
    和所述
    Figure PCTCN2021079148-appb-100004
    更新所述设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2
  6. 根据权利要求4所述的方法,其特征在于,所述第一延迟时间为所述第一输出设备统计的预设时间内所述第一输出设备的多个数据的延迟时间的平均值,所述第二延迟时间为所述第二输出设备统计的预设时间内所述第二输出设备的多个数据的延迟时间的平均值。
  7. 一种分布式数据传输的方法,所述方法由第一输出设备执行,其特征在于,包括:
    接收输入设备发送的RTP数据;
    根据所述RTP数据,确定第一延迟时间;
    向所述输入设备发送第一实时传输控制协议接收报告RTCP RR,所述第一RTCP RR包括第一延迟时间,所述第一延迟时间用于所述输入设备确定向所述第一输出设备发送RTP数据的时间。
  8. 根据权利要求7所述的方法,其特征在于,所述方法还包括确定所述第一延迟时间,
    所述确定所述第一延迟时间包括:
    统计预设时间内所述第一输出设备多个数据的延迟时间;
    对所述多个数据的延迟时间取平均值,得到所述第一延迟时间。
  9. 根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
    接收所述输入设备发送的数据和第一指示信息,所述第一指示信息用于指示所述第二输出设备在接收到数据后的T时间输出数据;
    在T时间后输出所述数据。
  10. 一种输入设备,其特征在于,包括:
    处理器,用于根据设备延迟控制列表,确定第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2,其中,所述设备延迟控制列表包括输出设备的标识以及与所述输出设备的标识关联的输出设备的延迟时间;
    收发器,用于根据所述T 1和所述T 2,向所述第一输出设备和所述第二输出设备发送RTP数据,其中,发送给所述第一输出设备的RTP数据中包括所述输入设备向所述第一输出设备发送RTP数据的时间戳,所述发送给所述第二输出设备的RTP数据中包括所述输入设备向所述第二输出设备发送RTP数据的时间戳。
  11. 根据权利要求10所述的输入设备,其特征在于,所述收发器具体用于:
    根据式(3)确定所述T 1和所述T 2的时间差T,
    T=T 1-T 2,T>0;  (3)
    向所述第一输出设备发送RTP数据后,经过T时间,向所述第二输出设备发送RTP数据。
  12. 根据权利要求10所述的输入设备,其特征在于,所述收发器具体用于:
    根据式(4)确定所述T 1和所述T 2的时间差T,
    T=T 1-T 2,T>0;  (4)
    同时向所述第一输出设备和所述第二输出设备发送RTP数据,其中,向所述第二输出设备发送RTP数据时还包括第一指示信息,所述第一指示信息用于指示所述第二输出设备在接收到数据后的T时间输出数据。
  13. 根据权利要求10至12中任一项所述的输入设备,其特征在于,所述收发器还用于接收所述第一输出设备发送的第一实时传输控制协议接收报告RTCP RR,所述第一RTCP RR包括第一延迟时间;
    接收所述第二输出设备发送的第二实时传输控制协议接收报告RTCP RR,所述第二RTCP RR包括第二延迟时间;
    所述处理器还用于根据所述第一延迟时间和所述第二延迟时间,更新所述设备延迟 控制列表。
  14. 根据权利要求13所述的输入设备,其特征在于,所述处理器具体用于:
    统计预设时间内的多个所述第一延迟时间和多个所述第二延迟时间;
    对所述多个第一延迟时间取平均值
    Figure PCTCN2021079148-appb-100005
    对所述多个第二延迟时间取平均值
    Figure PCTCN2021079148-appb-100006
    根据所述
    Figure PCTCN2021079148-appb-100007
    和所述
    Figure PCTCN2021079148-appb-100008
    更新所述设备延迟控制列表的第一输出设备的延迟时间T 1和第二输出设备的延迟时间T 2
  15. 根据权利要求13所述的输入设备,其特征在于,所述第一延迟时间为所述第一输出设备统计的预设时间内所述第一输出设备的多个数据的延迟时间的平均值,所述第二延迟时间为所述第二输出设备统计的预设时间内所述第二输出设备的多个数据的延迟时间的平均值。
  16. 一种输出设备,其特征在于,包括:
    收发器,用于接收第一输入设备发送的RTP数据;
    处理器,用于根据所述RTP数据,确定第一延迟时间;
    所述收发器还用于向所述第一输入设备发送第一实时传输控制协议接收报告RTCP RR,所述第一RTCP RR包括第一延迟时间,所述第一延迟时间用于所述第一输入设备确定向所述第一输出设备发送RTP数据的时间。
  17. 根据权利要求16所述的输出设备,其特征在于,所述输出设备还包括处理器,
    所述处理器用于确定所述第一延迟时间,
    所述处理器具体用于:
    统计预设时间内所述第一输出设备多个数据的延迟时间;
    对所述多个数据的延迟时间取平均值,得到所述第一延迟时间。
  18. 根据权利要求16或17所述的方法,其特征在于,所述收发器还用于:
    接收所述输入设备发送的数据,所述数据中包括第一指示信息,所述第一指示信息用于指示所述第二输出设备在接收到数据后的T时间输出数据;
    根据所述第一指示信息的指示,在T时间后输出所述数据。
  19. 一种分布式数据传输的系统,其特征在于,所述系统包括如权利要求10至15中任一项所述的输入设备和权利要求16至18中任一项所述的输出设备。
  20. 一种通信装置,其特征在于,所述装置包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合:
    所述至少一个处理器,用于执行所述至少一个存储器中存储的计算机程序或指令,以使得所述装置执行如权利要求1至6中任一项所述的方法,或者权利要求7至9中任一项所述的方法。
  21. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当计算机读取并执行所述计算机程序或指令时,使得计算机执行如权利要求1至6中任一项所述的方法,或者权利要求7至9中任一项所述的方法。
  22. 一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的通信设备执行如权利要求1至6中任一项所述的方法,或者权利要求7至9中任一项所述的方法。
PCT/CN2021/079148 2020-03-05 2021-03-04 一种分布式数据传输的方法、装置和系统 WO2021175297A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/905,604 US20230126759A1 (en) 2020-03-05 2021-03-04 Distributed Data Transmission Method, Apparatus, and System
EP21764425.1A EP4102797A1 (en) 2020-03-05 2021-03-04 Distributed data transmission method, apparatus and system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010148510.9A CN113364726A (zh) 2020-03-05 2020-03-05 一种分布式数据传输的方法、装置和系统
CN202010148510.9 2020-03-05

Publications (1)

Publication Number Publication Date
WO2021175297A1 true WO2021175297A1 (zh) 2021-09-10

Family

ID=77523732

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/079148 WO2021175297A1 (zh) 2020-03-05 2021-03-04 一种分布式数据传输的方法、装置和系统

Country Status (4)

Country Link
US (1) US20230126759A1 (zh)
EP (1) EP4102797A1 (zh)
CN (2) CN113364726A (zh)
WO (1) WO2021175297A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113364726A (zh) * 2020-03-05 2021-09-07 华为技术有限公司 一种分布式数据传输的方法、装置和系统
CN116520813B (zh) * 2023-06-29 2023-09-12 芯动微电子科技(珠海)有限公司 一种控制器的fpga原型验证方法和系统
CN117041100B (zh) * 2023-10-07 2024-03-12 之江实验室 一种分布式系统应用间网络包延迟检测方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1206536A (zh) * 1995-11-08 1999-01-27 西门子商业通讯系统公司 具有系统相关自适应延迟的多媒体通信
US20080259966A1 (en) * 2007-04-19 2008-10-23 Cisco Technology, Inc. Synchronization of one or more source RTP streams at multiple receiver destinations
CN102742249A (zh) * 2010-01-27 2012-10-17 荷兰皇家Kpn电信集团 用于媒体流同步的方法、系统和装置
CN107682715A (zh) * 2016-08-01 2018-02-09 腾讯科技(深圳)有限公司 视频同步方法及装置
CN111935525A (zh) * 2020-08-06 2020-11-13 深圳传音控股股份有限公司 一种播放多媒体的方法及电子终端设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10972536B2 (en) * 2004-06-04 2021-04-06 Apple Inc. System and method for synchronizing media presentation at multiple recipients
US8925003B2 (en) * 2013-03-08 2014-12-30 Silicon Image, Inc. Mechanism for facilitating synchronization of audio and video between multiple media devices
CN106331562B (zh) * 2015-06-16 2020-04-24 南宁富桂精密工业有限公司 云端服务器、控制设备及音频视频同步方法
EP3378233A1 (en) * 2015-11-17 2018-09-26 Net Insight Intellectual Property AB Video distribution synchronization
CN106057222B (zh) * 2016-05-20 2020-10-27 联想(北京)有限公司 一种多媒体文件的播放方法及电子设备
CN109819303B (zh) * 2019-03-06 2021-04-23 Oppo广东移动通信有限公司 数据输出方法及相关设备
CN113364726A (zh) * 2020-03-05 2021-09-07 华为技术有限公司 一种分布式数据传输的方法、装置和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1206536A (zh) * 1995-11-08 1999-01-27 西门子商业通讯系统公司 具有系统相关自适应延迟的多媒体通信
US20080259966A1 (en) * 2007-04-19 2008-10-23 Cisco Technology, Inc. Synchronization of one or more source RTP streams at multiple receiver destinations
CN102742249A (zh) * 2010-01-27 2012-10-17 荷兰皇家Kpn电信集团 用于媒体流同步的方法、系统和装置
CN107682715A (zh) * 2016-08-01 2018-02-09 腾讯科技(深圳)有限公司 视频同步方法及装置
CN111935525A (zh) * 2020-08-06 2020-11-13 深圳传音控股股份有限公司 一种播放多媒体的方法及电子终端设备

Also Published As

Publication number Publication date
EP4102797A1 (en) 2022-12-14
CN113364726A (zh) 2021-09-07
US20230126759A1 (en) 2023-04-27
CN114760275A (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
WO2021175297A1 (zh) 一种分布式数据传输的方法、装置和系统
US11546682B2 (en) Method and system for synchronous audio playback of TWS earphones
US8655280B2 (en) Method and system for role management for complex bluetooth® devices
WO2021159864A1 (zh) 一种传输视频音频数据的方法、云端服务器和系统
CN115551068A (zh) 蓝牙媒体设备时间同步
CN112771941B (zh) 数据同步方法、装置、设备、系统及存储介质
US11025550B2 (en) Method, device and computer readable storage medium for transmitting information
WO2021203814A1 (zh) 处理时间同步报文的方法和装置
JP2013102484A (ja) ブルーツースモジュールを使用して非ブルーツース信号を処理する方法
WO2020088653A1 (zh) 确定传输资源的方法和装置
WO2021031088A1 (zh) 确定资源复用方法及装置、信息解调方法及装置、介质
WO2021238377A1 (zh) 时钟源管理的方法和装置
WO2023000926A1 (zh) 时钟同步方法及通信装置
US7688718B2 (en) Variable-sized packet support for enhanced synchronous connection oriented links over a USB interface
WO2021204248A1 (zh) 无线通信方法和通信装置
WO2022241742A1 (zh) 参数配置方法及装置、电子设备及存储介质
WO2021142767A1 (zh) 通信方法和通信装置
WO2021062809A1 (zh) 一种时刻信息的通知方法和装置
WO2020147768A1 (zh) 处理数据的方法和处理数据的装置
WO2021007791A1 (zh) 资源配置的方法及装置、通信设备及存储介质
US10142249B2 (en) Method and apparatus for determining buffer status of user equipment
TWI798890B (zh) 用於產生立體聲語音效果的藍牙語音通信系統及相關的電腦程式產品
WO2017193308A1 (zh) 通信方法和通信设备
WO2023040586A1 (zh) 定时器处理方法、装置及存储介质
WO2024046071A1 (zh) 一种数据传输方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21764425

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021764425

Country of ref document: EP

Effective date: 20220907

NENP Non-entry into the national phase

Ref country code: DE