Systems and methods for latency improvement for wireless speakers
By establishing a direct buffer channel between the media player and the wireless speaker and using the I2S protocol to transmit audio data, the problem of audio and video synchronization latency in wireless entertainment systems is solved, thus improving the user experience.
Patent Information
- Application Number
- CN202510488358.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-04-30
- Filing Date
- 2025-04-18
- Publication Date
- 2025-10-31
AI Technical Summary
In wireless entertainment systems, there is a latency issue in the synchronization of audio and video, which disrupts the balance between audio and video and affects the user experience.
By establishing a direct buffer channel between the media player and the wireless speaker, bypassing network protocols, and using the Inter-IC Voice (I2S) protocol to transmit audio data, processing steps are reduced to decrease latency.
It effectively reduces audio communication latency for wireless speakers, improves audio-video synchronization, and enhances the user experience.
Smart Images

Figure CN120881053A_ABST
Abstract
Description
Technical Field
[0001] This disclosure generally relates to systems and methods for synchronizing network-based content playback, including but not limited to improving latency in wireless speaker systems. Background Technology
[0002] When consuming multimedia content, the quality of the user experience depends on the synchronization of audio and video. Any alignment deviation, even a few milliseconds, can ruin the viewing experience and diminish enjoyment. In wireless entertainment systems, during content playback, the audio transmitted wirelessly to the wireless speakers via wireless media should be synchronized with the corresponding video of the content being played. Summary of the Invention
[0003] During the playback of multimedia content (such as TV programs, movies, and music), wireless entertainment systems can wirelessly transmit audio data from a source (e.g., a media player) to a wireless speaker. Wireless entertainment systems may experience latency due to network latency, where transmission latency can vary based on network conditions, including but not limited to congestion, bandwidth limitations, or interference. Furthermore, wireless entertainment systems may experience processing latency because both the source device and the wireless speaker require time to process the audio data, which increases the overall latency. The choice of wireless transmission technology (including Bluetooth and Wi-Fi) may have latency characteristics that affect synchronization. The placement of the speaker relative to the source may introduce fixed latency that needs to be compensated for. These variable latencyes can disrupt the balance between audio and video, leading to problems such as audio lagging behind video, creating a disconnect between visual and auditory cues, or causing audio artifacts (e.g., echo or distortion) that further degrade the listening experience.
[0004] The technical solution disclosed herein overcomes these challenges by bypassing network protocols (e.g., transport layer stacks) by establishing a buffered conduit directly between the media player and the wireless speaker. This solution reduces latency by avoiding unnecessary processing steps. The buffered conduit can use protocols configured for audio data transmission between digital audio devices. As a result, the technical solution disclosed herein reduces the latency of audio communication with the wireless speaker.
[0005] At least one aspect of the technical solution relates to a method for improving the latency of a wireless speaker. The method may include establishing a buffer channel between a first wireless chip of a media player and a second wireless chip of a wireless speaker using an Inter-IC Voice (I2S) protocol, wherein the wireless speaker wirelessly communicates with the media player. The method may include receiving samples of audio data by a receiver of the first wireless chip of the media player. The method may also include having the first wireless chip transmit the audio data to the second wireless chip using the buffer channel to bypass the transport layer stack of the media player and the wireless speaker. The transmitter of the second wireless chip may directly provide the audio data to a digital-to-audio converter for output to the speaker of the wireless speaker.
[0006] The method may include transmitting pulse code modulation (PCM) audio data from a first wireless chip to a second wireless chip via the I2S protocol. The method may also include the first wireless chip transmitting the audio data to the second wireless chip via a machine access control (MAC) layer of a network stack. Furthermore, the method may include the first wireless chip transmitting the audio data to the second wireless chip via a buffered copy of the audio data from a first buffer of the first wireless chip to a second buffer of the second wireless chip. The wireless speaker may communicate with the media player via an access point. The media player may include at least one of a set-top box, a television, a home theater system, or an over-the-top (OTT) device.
[0007] The method may include receiving samples of audio data by the receiver from the output of the audio processor of the media player. The receiver may include an I2S receiver. The method may also include receiving the audio data by the transmitter from a buffer of the second wireless chip. The transmitter may include an I2S transmitter.
[0008] At least one aspect of the technical solution relates to a system. The system may include one or more processors coupled to memory. The one or more processors may be configured to include a first wireless chip of a media player that wirelessly communicates with a second wireless chip of a wireless speaker. The first and second wireless chips may be configured to establish a buffered channel using an Inter-IC Voice (I2S) protocol to transmit audio data. An I2S receiver of the first wireless chip of the media player may be configured to receive samples of the audio data. The one or more processors may be configured to use the buffered channel to transmit the audio data to the second wireless chip to bypass the transport layer stack of the media player and the wireless speaker. The I2S transmitter of the second wireless chip may directly provide the audio data to a digital audio converter for output to the speaker of the wireless speaker.
[0009] In some embodiments, the I2S receiver may be further configured to transmit pulse code modulation (PCM) audio data from the first wireless chip to the second wireless chip via the Inter-IC Voice (I2S) protocol. In some embodiments, the first wireless chip may be further configured to transmit the audio data to the second wireless chip via a machine access control (MAC) layer of the network stack. In some embodiments, the first wireless chip may be further configured to transmit the audio data to the second wireless chip via a buffer copy of the audio data from a first buffer of the first wireless chip to a second buffer of the second wireless chip. In some embodiments, the media player may include at least one of a set-top box, a television, a home theater system, or an over-the-top (OTT) device. In some embodiments, the I2S receiver may be further configured to receive the sample of audio data from the output of the audio processor of the media player.
[0010] At least one aspect of the technical solution relates to a method for providing audio streaming. The method may include identifying a media player and a wireless speaker, and providing a low-latency data pipeline for the media player and the wireless speaker via an access point. The access point provides a wireless connection between the media player and the wireless speaker. The method may include establishing a constant bit rate pipeline between the media player and the access point. The method may include establishing a high-priority data pipeline between the access point and the wireless speaker. The method may include transmitting pulse code modulation (PCM) audio data from the media player to the access point via the constant bit rate pipeline and to the wireless speaker via the high-priority data pipeline.
[0011] The method may include disabling data aggregation via at least one of the media player, the access point, or the wireless speaker. The method may include establishing a wireless link from the media player to the wireless speaker, bypassing any other mesh nodes on the access point's network. The access point may maintain a high-priority queue for audio data from the media player to be delivered to the wireless speaker via the high-priority data pipeline. The method may include delivering uncompressed audio data. The media player may include at least one of a set-top box, a television, a home theater system, or an over-the-top (OTT) device.
[0012] At least one aspect of the technical solution relates to a system. The system may include one or more processors coupled to memory. The one or more processors may be configured to identify a media player and a wireless speaker, and to provide a low-latency data pipeline to the media player and the wireless speaker via an access point. The access point may provide a wireless connection between the media player and the wireless speaker. The one or more processors may be configured to establish a constant bit rate pipeline between the media player and the access point. The one or more processors may be configured to establish a high-priority data pipeline between the access point and the wireless speaker. The one or more processors may be configured to transmit pulse code modulation (PCM) audio data from the media player to the access point via the constant bit rate pipeline and to the wireless speaker via the high-priority data pipeline.
[0013] The one or more processors may be configured to disable aggregation of data via at least one of the media player, the access point, or the wireless speaker. The one or more processors may be configured to establish a wireless link from the media player to the wireless speaker, thereby bypassing any other mesh nodes on the access point's network. The access point may maintain a high-priority queue for audio data from the media player to be delivered to the wireless speaker via the high-priority data pipeline. The one or more processors may be configured to deliver uncompressed audio data. The media player may include at least one of a set-top box, a television, a home theater system, or an over-the-top (OTT) device. Attached Figure Description
[0014] The foregoing and other objects, aspects, features and advantages of this disclosure will become more clearly and better understood through the following description taken in conjunction with the accompanying drawings, wherein:
[0015] Figure 1A This illustrates a general schematic block diagram of a communication system according to one or more embodiments;
[0016] Figure 1B Description according to one or more embodiments Figure 1A A general schematic block diagram of a part of the communication system described herein;
[0017] Figure 1C Description of the relationship according to one or more embodiments Figure 1A A general schematic block diagram of the application for communication of the cloud infrastructure of the communication system described herein;
[0018] Figure 1D Description according to one or more embodiments Figure 1A A general schematic block diagram of the application program of the communication system described herein;
[0019] Figure 1E Description according to one or more embodiments Figure 1A A general schematic block diagram of the application program of the communication system described herein;
[0020] Figure 1F Description according to one or more embodiments Figure 1A The schematic block diagram of the communication system described herein includes a server configured for augmented reality / virtual reality and / or metaverse applications;
[0021] Figure 2A A block diagram illustrating an embodiment of a computing device according to one or more embodiments;
[0022] Figure 2B A block diagram illustrating a computing environment including a client device communicating with a cloud service provider, according to one or more embodiments;
[0023] Figure 3A A block diagram illustrating an example system for improving the latency of a wireless speaker according to one or more embodiments;
[0024] Figure 3B A block diagram illustrating an example system for reducing latency in audio streaming between a media player and a wireless speaker, according to one or more embodiments.
[0025] Figure 4 An example flowchart illustrating a method for improving the latency of a wireless speaker according to one or more embodiments; and
[0026] Figure 5 Example flowchart illustrating a method for providing audio streaming according to one or more embodiments. Detailed Implementation
[0027] The following disclosure provides numerous different embodiments or instances for implementing various features of the provided subject matter. Specific examples of components and arrangements are described below to simplify this disclosure. Of course, these are merely examples and are not intended to be limiting. For example, in the following description, a first feature communicating or communicatively coupled to a second feature may include embodiments in which the first feature directly communicates with or is directly coupled to the second feature, and may also include embodiments in which an additional feature may be located between the first and second features, such that the first feature indirectly communicates with or is indirectly coupled to the second feature. Furthermore, reference numerals and / or letters may be repeated in various instances of this disclosure. Such repetition is for simplicity and clarity and does not in itself indicate a relationship between the various embodiments and / or configurations discussed.
[0028] The following IEEE standards (including any draft versions thereof) are hereby incorporated herein by reference in their entirety and are part of this disclosure for all purposes: IEEE 802.11 TM IEEE 802.14 TM IEEE P802.3 TM and IEEE Ethernet standard systems, including but not limited to LRM, VSR, SR, MR, LR, ZR, and KR. Although this disclosure may refer to aspects of these standards, it is in no way limited to these standards.
[0029] In some embodiments, devices provided by an ISP and customer-owned AR / VR devices, mobile phones, OTT devices, and cloud gaming clients are configured for low-latency use. Some embodiments of the systems and methods disclosed herein provide real-time or near-real-time systems for monitoring end-to-end latency. In some applications, latency monitoring is performed using a Precise Time Protocol (PTP) synchronization protocol to synchronize timestamps with applications at intermediate nodes and terminal devices. In some embodiments, end-to-end latency monitoring takes into account the latency of all devices throughout the entire end-to-end process, thereby enabling the identification of sources of significant latency.
[0030] In some embodiments, the system and method synchronize wall clocks across all nodes and end-user devices by timestamping low-latency data packets at each node. Latency at each node is determined by the application at that node. The latency determination is reported to a server communicating with the application. The system and method allow the communication system to distinguish whether the latency originates from a home network, an ISP, or a cloud server.
[0031] In some embodiments, the low-latency application server extension is integrated into a modem or router provided by an ISP. In some embodiments, the server extension has the ability to filter all necessary information and transmit it to the ISP's cloud server or share open data with application developers. In some embodiments, the server extension can store or receive information about a customer's low-latency plan subscription and can track low-latency usage within the home.
[0032] In some embodiments, a server extension can refer to a software component or module that extends the functionality of a server application (e.g., a low-latency application). Server extensions can be used in various server environments, such as web servers, application servers, ISP servers, and database servers, to enhance their capabilities or add specific features tailored to the needs of users or applications, and can be installed using extension files. Extensions can be installed on any of the devices discussed herein. In some embodiments, extensions are provided on ISP-controlled servers in the cloud, ISP-controlled modems or access points, third-party WiFi access points, third-party modems, or low-latency devices provided by ISPs.
[0033] In some embodiments, the server extension allows users to select device applications for different latency handling scenarios. A server within a residence can use classifiers and queues to reduce latency for low-latency devices. In some embodiments, the server may be part of a router, set-top box, hub, etc. In some embodiments, the server extension supports end-to-end use by multiple parties (e.g., cloud managers, ISPs, application developers, and silicon vendors).
[0034] Regarding latency, generally, in some embodiments, latency refers to the amount of time a system, application, or device takes to process a request and respond to it. Regarding low latency, in some embodiments, low latency refers to this amount of time being within a threshold, performance level, user experience level, or application or usage requirement. Application thresholds, performance levels, user experience levels, or requirements can vary based on context, such as the type of application and / or use case and the system, network, and computing environment in which such use cases and / or applications operate or are performed. From a computing environment perspective, low latency refers to the ability of a computing system or network to provide a response to a context or use case with minimal or no unacceptable latency. System criteria and application parameters can influence the low latency threshold. The threshold can be fixed or variable (e.g., depending on conditions or actual needs or requirements at a particular time). Regarding low-latency networks and systems in the context of networks and network communications, low latency describes computer networks, systems, and environments designed, configured, and / or implemented to support applications, network services, and processing operations to reduce or improve latency or meet low latency thresholds. End-to-end latency refers to the latency between two points in a network or communication system. These two points can be a data source and a data consumer, or in some embodiments, an intermediate point between the data source and the data consumer.
[0035] In some embodiments, a low-latency device refers to any hardware, device component, or system that has low-latency considerations or requirements. A low-latency device can be a telecommunications, remote control system, gaming, audio processing, financial transaction, augmented reality, and / or virtual reality device in which latency can affect user experience or system performance. In some embodiments, there may be several levels of low-latency requirements, with one low-latency device having more stringent requirements than another. In some embodiments, a low-latency path refers to a path used for low-latency operation. In some embodiments, latency data refers to any indication of latency associated with communication or configuration data used for low-latency operation or control. In some embodiments, a low-latency application refers to using or performing low-latency operations. Low-latency devices or software programs can be used to perform low-latency operations (video conferencing, cloud gaming, augmented reality / virtual reality (AR / VR) applications, and metaverse applications).
[0036] Some embodiments relate to a system including a first device and an application. The application operates on the first device and is configured to append timestamps to first packets received by the first device. The timestamps indicate a first time the first device receives the first packet and a second time the first device sends the first packet. In some embodiments, appending means adding or attaching information to a data structure (e.g., a packet).
[0037] In some embodiments, the application is configured to use timestamps to determine latency information associated with communication through the first device. The timestamps include a first timestamp at a first time and a second timestamp at a second time. In some embodiments, the application is configured to provide a second packet containing latency information and to transmit the second packet to a server remote from the first device via a virtual communication link. In some embodiments, the first timestamp is an ingress timestamp, and the second timestamp is an egress timestamp.
[0038] In some embodiments, the timestamp is provided as part of a precise time protocol. In some embodiments, the first packet is used in low-latency operation. In some embodiments, the timestamp is derived from a satellite time source. In some embodiments, the latency information includes a history of the timestamp. In some embodiments, the first device is a user device, cloud infrastructure, Internet service provider infrastructure, set-top box, cable modem, or wireless router.
[0039] Some embodiments relate to a non-transitory computer-readable medium storing instructions thereon that, when executed by a processor, cause the processor to receive a first packet from a first node. The first packet contains latency information associated with a second packet provided to the first node for a low-latency application. If the latency information indicates that a latency threshold for the low-latency application has not yet been met, the instructions further cause the processor to provide a third packet to the first node or other nodes to increase the priority of the low-latency application packet. The first node may be part of a communication system comprising a cable, fiber optic, or wireless network. Other nodes and the first node are in a path associated with the second packet provided to the first node for the low-latency application.
[0040] In some embodiments, the processor is located on a server located remotely from the first node. In some embodiments, the server communicates with the Internet Service Provider Infrastructure (ISPI), and a third packet is provided to the ISPI. In some embodiments, the third packet is provided to the ISPI, a set-top box, a cable modem, or a wireless router.
[0041] In some embodiments, if the latency information indicates that the latency threshold for the low-latency application has been met and additional bandwidth is available, then the instruction causes the processor to provide a fourth packet to the first node or other nodes to reduce the priority of the packet used for the low-latency application.
[0042] In some embodiments, the latency information includes a user identifier.
[0043] Some embodiments relate to a method for providing low-latency services. The method includes providing a first timestamp to a first packet provided to a first device. The first packet can be used by a low-latency device or for low-latency operation. The method further includes providing a second packet containing latency information to a server remotely connected to the first device via a virtual communication link.
[0044] In some embodiments, the method further includes providing a second timestamp to a first packet provided to a first device. In some embodiments, the first timestamp is an ingress timestamp and the second timestamp is an egress timestamp. In some embodiments, the first device includes an application configured to append the first timestamp to the first packet.
[0045] Some embodiments relate to a server. The server includes a first application configured to monitor end-to-end latency of a network. The network includes devices. The application is configured to receive latency information from at least one of the devices. The latency information includes timestamps or time period data of packets used for transmission across devices or links. Monitoring refers to the act of observing, checking, and / or recording performance, and typically occurs over a period of time.
[0046] A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to receive a first packet from a first node. The first packet contains latency information associated with a second packet provided to the first node for a low-latency application. The instructions also cause the processor to provide a subscription offer in response to the latency information. The first node is part of a communication system including a cable, fiber optic, or wireless network. Other nodes and the first node are in a path associated with the second packet provided to the first node for a low-latency application.
[0047] In some embodiments, the first device is a set-top box, cable modem, or wireless router. In some embodiments, device may refer to any equipment, system, or component used to perform operations. Low-latency device may refer to any device capable of performing low-latency operations. In some embodiments, low-latency operation refers to an operation in which operations above low latency can affect the performance level, user experience level, or requirements of an application or use. In some embodiments, packet refers to a unit of data transmitted over a network. A packet may include a header and a payload. In some embodiments, timestamps and latency information may be appended to packets. In some embodiments, classify may refer to any operation used to determine a classification, grouping, or arrangement. For example, in some embodiments, packets may be classified for use with low-latency devices or applications by examining addresses, appended data, their data type, or other information. In some embodiments, bandwidth may refer to the amount of capacity used for communication. In some embodiments, priority refers to rank, hierarchical order, level, or other classification. For example, in some embodiments, packets may be ordered for transmission based on priorities associated with latency requirements. In some embodiments, cable, fiber optic, or wireless network refers to any network that uses one or more of fiber optic cables, coaxial cables, Ethernet cables, other wires, or wireless media.
[0048] For the purpose of reading the descriptions of the various embodiments below, the following descriptions of the sections of the specification and their corresponding contents may be helpful:
[0049] Section A describes a communication system that can be used to practice the embodiments described herein.
[0050] Section B describes low-latency applications that can be used to practice the embodiments described herein.
[0051] Section C describes embodiments of the network and computing environments that can be used to practice the embodiments described herein.
[0052] Section D describes embodiments of systems and methods for improving the latency of wireless speakers.
[0053] A. Communication System
[0054] Network latency can significantly impact internet connectivity, user experience, and the performance of various online applications and services. Some embodiments inform ISPs to address end-to-end latency issues through network optimization, infrastructure upgrades, and efficient routing to ensure a reliable and responsive internet experience for their customers. In some embodiments, tools are provided that allow ISPs' cloud servers to collect and analyze data and to reconfigure ISP-provided devices, such as cable modems, GPON modems, or set-top boxes. In some embodiments, systems and methods allow multiple parties (e.g., more than one ISP, cloud service provider, public switch operator, and application developer) to address low-latency usage, including but not limited to video conferencing, augmented reality (AR) / virtual reality (VR), and metaverse end-to-end usage. In some embodiments, systems and methods allow multiple parties to collaborate and work together to address latency issues. In some embodiments, systems and methods can be used with Wi-Fi networks, Ethernet networks, modems, access networks, backbone networks, IXPs, and cloud infrastructure, and allow multiple teams to work together to optimize latency across various media.
[0055] In some embodiments, a latency monitor measures and reports latency for each link, device, and end application. The reports are provided to path controllers, such as ISPs, application developers, and end users, enabling action to be taken if low-latency requirements are not met. In some embodiments, the system and method provide seamless latency monitoring, analysis, and optimization. Analysis of latency measurements and reports allows for real-time identification of latency contributors and optimization by mapping services requiring low latency to low-latency queues or paths. In some embodiments, devices in the path have applications (e.g., software) for performing monitoring, analysis, and optimization. Analysis of latency measurements and reports allows control devices to appropriately provide low-latency services to low-latency queues or paths. The application may communicate with a latency server (e.g., a server for the application) that coordinates operations and accumulates data based on monitoring, analysis, and optimization actions. An application (application / app) can refer to a software program or module configured to perform a specific function or task on an electronic device.
[0056] refer to Figure 1AThe communication system 100 includes a network 1002A for residences 1016A and 1018A, a network 1002B for residences 1016B and 1018B, cloud infrastructure 1004, and a BQUICK_TOP server 1005. The communication system 100 is advantageously configured such that information is provided to the ISP to address latency issues through network optimization, infrastructure upgrades, service upgrades, and / or efficient routing, ensuring a reliable and responsive internet experience for customers on networks 1002A and 1002B. In some embodiments, the BQUICK_TOP server 1005 is configured to receive information and address latency issues. In some embodiments, the BQUICK_TOP server 1005 communicates with the cloud infrastructure 1004 and networks 1002A and B (residences 1016A to B and 1018A to B) (e.g., via direct or virtual connections) to share information, reports, commands, and other data. BQUICK_TOP servers 1005, infrastructure 1004, and residential units 1016A to B and 1018A to B can use any form of communication media, network, protocol, etc. to transmit data and information.
[0057] In some embodiments, cloud infrastructure 1004 includes a collection of hardware, software, networking, and other resources that enable the delivery of cloud computing services over the Internet. In some embodiments, cloud infrastructure 1004 includes physical servers, storage devices, networking equipment, and other hardware components hosted in data centers spread across multiple geographically distributed locations. In some embodiments, the data centers are equipped with high-performance servers, storage arrays, and networking devices to support the computing needs of cloud services. In some embodiments, cloud infrastructure 1004 is configured to provide high-speed, redundant network links, routers, switches, and content delivery networks (CDNs) for delivering low-latency, high-bandwidth content to users. In some embodiments, cloud infrastructure 1004 includes block storage devices (e.g., Amazon EBS, Azure disk storage), object storage devices (e.g., Amazon S3, Google Cloud Storage), and file storage devices (e.g., Amazon EFS, Azure Files).
[0058] Residences 1016A and 1018A may include networks associated with a first ISP, and residences 1016B and 1018B may include networks associated with the same ISP or a second ISP. In some embodiments, the networks for residences 1016A and 1018A, and residences 1016B and 1018B, are part of a Broadband Access Server (BAS) network. Network 1002A includes infrastructure 1006A, headend 1008A, BQUICKISP_A server 1012A, splitter 1014A, equipment for residence 1016A, and equipment for residence 1018A. Equipment for residence 1018A includes an Optical Network Unit (ONU) 1020, a user equipment 1022, and a television 1024. In some embodiments, the modem or optical network unit 1020 may be a fiber optic router, switch, gateway, etc., and has WiFi capability for the WiFi network associated with residence 1018A. In some embodiments, the optical network unit 1020 is a GPON modem or optical network terminal (ONT). GPON is a technology that allows high-speed Internet access via fiber optic cables. The optical network unit 1020 converts optical signals transmitted via fiber optic cables into electrical and / or radio signals usable by devices in residence 1018A. Although system 100 is shown communicating via coaxial and fiber optic cables, terrestrial wireless and satellite communications can be used in system 100. The optical network unit 1020 is typically provided by an optical network operator (ISP-A) and may be referred to as an optical network terminal. The BQUICK_TOP server 1005 and BQUICKISP_A server 1012A can be Broadcom analytics systems (BAS servers) that collect and analyze data from various devices such as modems, set-top boxes, and other devices.
[0059] User device 1022 can be a smartphone, AR / VR device, tablet computer, laptop computer, smartwatch, sports equipment, smart appliance, camera, headphones, automobile, or other computing device. Residence 1016A may have similar devices to residence 1018A. Television 1024 and user device 1022 communicate with optical network unit 1020 via a wireless network or wired connection. In some embodiments, optical network unit 1020 may include an Ethernet router that includes wired connections to user device 1022, wireless modem, and television 1024.
[0060] Headend 1008A includes routers, switches, servers, and / or other infrastructure for communication between ISP infrastructure 1006A and cloud infrastructure 1004. ISP infrastructure 1006A includes routers, switches, servers, and / or other infrastructure for communication between headend 1008A and splitter 1014A. Splitter 1014A communicates via fiber optic cable between infrastructure 1006A and residences 1016A and 1018A. BQUICKISP_A1012A and BQUICK_TOP server 1005 communicate with server 1012, infrastructure 1006A, headend 1008A, and residences 1016A and 1018A via direct or indirect communication (e.g., via the Internet).
[0061] In some embodiments, splitter 1014A is a fiber optic splitter. Splitter 1014A can be used in a fiber optic network to split an incoming optical signal into multiple separate signals for residential 1016A and 1018A, and to unify the signal into one or more signals for infrastructure 1006A. Splitter 1014A can be configured for a passive optical network (PON) architecture. In some embodiments, bidirectional communication occurs across splitter 1014A. In some embodiments, splitter 1014A is a conductive cable type splitter (e.g., for coaxial cable rather than optical fiber). In some embodiments, splitter 1014A includes repeaters, amplifiers, signal conditioners, etc.
[0062] BQUICK ISP_A server 1012A is a computing device, such as a machine equipped with one or more processors, memory, and storage drives. In some embodiments, BQUICK ISP_A server 1012A delivers various services to ISP customers (e.g., residences 1016A and 1018A). BQUICK_TOP server 1005 is configured as a central hub responsible for managing its subscribers and routing Internet traffic. BQUICK ISP_A server 1012A handles requests from users, such as accessing websites, sending emails, streaming content, and downloading files. BQUICK ISP_A server 1012A manages network protocols, assigns IP addresses, and facilitates communication between different devices on the Internet. BQUICK ISP_A server 1012A includes an operating system (such as Linux or Windows Server) and networking software (e.g., routing protocols (e.g., BGP, OSPF), a DNS (Domain Name System) server, a Dynamic Host Configuration Protocol (DHCP) server for IP address allocation, and firewall / security software to protect system 100 from network threats). The BQUICK ISP_A server 1012A employs service shaping and Quality of Service (QoS) mechanisms to prioritize and optimize Internet services, thereby ensuring a smooth and consistent user experience for all subscribers. These operations may involve managing bandwidth allocation, prioritizing certain types of services (e.g., VoIP or video streaming), and mitigating network congestion during peak usage periods, and may be performed in response to information from server 1012. In some embodiments, the BQUICK ISP_A server 1012A uses monitoring tools or applications to continuously analyze service data to detect anomalies, resolve network problems, and ensure compliance with Service Level Agreements (SLAs) and regulatory requirements.
[0063] BQUICK_TOP server 1005 is a computing device similar to and configured to communicate with servers 1012A and 1012B. In some embodiments, BQUICK_TOP server 1005 includes software advantageously configured to address latency issues through network optimization, infrastructure upgrades, and efficient routing to ensure a reliable and responsive Internet experience for its customers. In some embodiments, BQUICK_TOP server 1005 may receive logs of network activity from servers 1012A and 1012B, including but not limited to business patterns, usage statistics, and security events. In some embodiments, BQUICK_TOP server 1005 employs monitoring tools to continuously analyze business data to detect anomalies, resolve network problems, and ensure compliance with Service Level Agreements (SLAs) and regulatory requirements. In some embodiments, BQUICK_TOP server 1005 is a platform configured to perform real-time latency monitoring, real-time latency analysis, and real-time latency optimization. In some embodiments, latency optimization is performed to provide reports indicating latency issues. In some embodiments, the BQUICK_TOP server 1005 can configure paths in networks 1002A and 1002B and control devices in networks 1002A and 1002B to meet low latency requirements.
[0064] BQUICK_TOP server 1005 and BQUICKISP_B server 1012B are similar to BQUICKISP_A server 1012A and are configured to operate in conjunction with residences 1016B and 1018B. Residences 1016A, 1018A, 1016B, and 1018B are similar to each other and may contain similar devices. Residence 1018B includes a cable modem 1030B, a set-top box 1036B, a game controller 1038, a television 1034, and a user device 1032. User device 1032 is similar to user device 1022. Headend 1008B is similar to headend 1008A, and ISP infrastructure 1006B is similar to ISP infrastructure 1006A. Televisions 1024 and 1034 are monitors, smart TVs, or other audio / video equipment. In some embodiments, networks 1002A and 1002B may include cameras, security devices, fire and safety equipment, smart appliances, etc., that communicate with infrastructures 1006A and 1006B. In some embodiments, ISP infrastructures 1006A and 1006B may each include fiber optic cables, coaxial cables, remote nodes, splitters, and other equipment for cable customers. The equipment may include amplifiers, remote physical devices or layers, and remote media access control devices or layers. Intermediate nodes in ISP infrastructures 1006A and 1006B can process data packets and monitor latency and traffic at various points in the network. In some embodiments, BQUICK_TOP server 1005, BQUICK ISP_B server 1012B, and BQUICK ISP_A server 1012A are controlled by an ISP (e.g., the respective ISP).
[0065] In some embodiments, ISP infrastructure 1006B is coupled to residences 1016B and 1018B via coaxial cable. Cable modem 1030B is a device configured to connect devices in residence 1018B to ISP infrastructure 1006B. In some embodiments, cable modem 1030 includes a computer, router, gateway, or other communication device. Modem 1030 may be configured to provide a wireless network for communicating with devices in residence 1018B. In some embodiments, repeaters, amplifiers, signal conditioners, etc., may be provided on the cable associated with modem 1030. In some embodiments, cable modem refers to any device used for communication across the cable. Optical network unit 1020 and modem 1030 provide data connectivity to the ISP data pipeline via fiber optic cable or cable. All devices within the home can connect to the modem via WiFi or Ethernet for Internet connectivity. Each node within the home (e.g., router, repeater, modem, WiFi access point) can introduce latency. In some embodiments, the ONU 1020 and modem 1030 can be any device in a home or business that connects a networked device to an Internet data pipeline provided by an ISP via coaxial cable, fiber optic cable, or digital subscriber line (DSL) or cell connection (e.g., via a tower (e.g., 5G, LTE modem)).
[0066] Set-top box 1036 is configured to receive and decode digital television signals for viewing on television 1034. Set-top box 1036 may be configured for gaming and can communicate with game controller 1038. Set-top box 1036 may also be configured to provide internet access, shopping services, home automation, audio features, screen mirroring, etc. In some embodiments, set-top box 1036 includes one or more processors, memory, a dedicated graphics processing unit (GPU), and / or storage capacity for storing games, applications (apps), latency data, and recorded content. A set-top box refers to any device connected to a television or monitor that allows a user to receive and decode video signals. In some embodiments, the set-top box may serve as an interface between a television and various broadcast media sources, such as cable television, satellite, or internet-based streaming services. Dashed lines in the figures may represent virtual connections, and solid lines may represent physical connections (e.g., wires or fiber optic cables).
[0067] Cloud infrastructure 1004, headends 1008A and 1008B communicate virtually or directly with the Internet 1009. Headends 1008A and 1008B may be associated with buildings 111A and 111B, respectively. In some embodiments, communication system 100 is typically an end-to-end combination of networking elements used to connect services from a home or business to the Internet 1009 (e.g., the public Internet). In some embodiments, cloud infrastructure 1004 is a group of multiple servers, switches, and storage units. ISPs may have a data center / cloud server co-located with headends 1008A and 1008B, or a pool of dedicated links from headends 1008A and 1008B to cloud infrastructure 1004 and headend connections to the Internet 1009.
[0068] Although cloud infrastructure 1004 is presented as a single block, cloud servers and data servers may co-locate with ISP headends 1008A and / or 1008B. Cloud servers may be located at third-party private facilities, and the ISP may have a dedicated physical link or a link via the Internet 1009. Depending on congestion and server processing capacity, cloud infrastructure 1004 may be a source of latency. In some embodiments, cloud server processing elements may be upgraded to support latency monitoring applications (e.g., BQUICK applications) or configurable devices to support low-latency services. Headends 1008A and 1008B may be central facilities (e.g., central offices). In some embodiments, a headend refers to a facility where Internet data or audio / video content is received, processed, and routed to end subscribers (such as residential or business owners). Headends 1008A and 1008B may have multiple switching, routing, data metering, queuing, security elements, and / or other devices that may introduce latency. The 1008A and 1008B headends can also host cable modem terminal systems (CMTS) in cable networks, DSLAMs (Digital Subscriber Line Access Multiplexers) in DSL networks, and OLTs (Optical Line Terminals) in fiber optic networks.
[0069] Networks 1002A and 1002B are operated by one of ISPs, ISP-A and ISP-B. ISPs extend their services to various residences or businesses within a community, city, or specific area. Networks 1002A and 1002B represent two different networks served by the same or different ISPs located in the same neighborhood or completely different regions or countries. Homeowners or business owners look for ISPs providing services in their local area and subscribe to internet services accordingly.
[0070] B. Application
[0071] System 100 advantageously includes an ISP infrastructure BQUICK application 1056A for ISP infrastructure 1006A, a headend BQUICK application 1058A for headend 1008A, a modem BQUICK application 1020A for optical network unit 1020, a user device BQUICK application 1022A for user device 1022, and a television BQUICK application 1024A for television 1024. Applications 1056A, 1058A, 1020A, 1022A, and 1024A may be software applications or programs designed to perform specific tasks or provide specific functions as described herein (e.g., latency monitoring, latency analysis and latency optimization, and the transmission and storage of associated data). Applications 1056A, 1058A, 1020A, 1022A, and 1024A may be provided on any electronic device in the communication system 100, including but not limited to servers, computers, smartphones, tablets, smart devices, electrical appliances, cameras, security devices, vehicles, user devices, and other digital platforms. In some embodiments, applications 1056A, 1058A, 1020A, 1022A, and 1024A may execute on Windows, macOS, iOS, Android, or other operating systems, or may be web-based and accessible via an internet browser. In some embodiments, applications 1056A, 1058A, 1020A, 1022A, and 1024A may be cross-platform, capable of executing on multiple OS environments. Applications 1056A, 1058A, 1020A, 1022A, and 1024A may be installed from various sources such as application stores and software repositories, or directly from an ISP's website. In some embodiments, applications 1056A, 1058A, 1020A, 1022A, and 1024A are configured to communicate with the BQUICK_TOP server 1005 via a virtual connection. In some embodiments, applications 1056A, 1058A, 1020A, 1022A, and 1024A are configured to communicate with the BQUICK_TOP server 1005 via the BQUICK ISP_A server 1012A. Applications 1056A, 1058A, 1020A, 1022A, and 1024A may be updated via an app store or via automatic updates, depending on device settings.
[0072] BQUICK applications 1056A, 1058A, 1020A, 1022A, and 1024A are configured to facilitate integration with other services or platforms and seamless access to communication, data sharing, collaboration, and / or additional functionality. Applications 1056A, 1058A, 1020A, 1022A, and 1024A allow optical network unit 1020, television 1024, and user device 1022 to monitor latency, store subscription information (e.g., classic bandwidth in megabits per second (MPPS), monitor low-latency bandwidth (MBPS), maximum jitter in milliseconds), and provide options for upgrading Internet services. In some embodiments, latency and subscription information can be tracked based on device, device type, user identifier, application, address identifier, etc. In some embodiments, latency information can be provided to BQUICK_TOP server 1005 in timestamped packets. The user interface can be provided by applications 1056A, 1058A, 1020A, 1022A, and 1024A on the optical network unit 1020, television 1024, and user device 1022 to upgrade or downgrade to different levels of service based on latency information. In some embodiments, different levels of service can be provided to the latency server and BQUICK_TOP server 1005, BQUICK ISP_A server 1012A, or BQUICKISP_B server 1012B.
[0073] System 100 advantageously includes an ISP infrastructure BQUICK application 1056B for ISP infrastructure 1006B, a headend BQUICK application 1058B associated with headend 1008B, a modem BQUICK application 1030B for modem 1030, and a set-top box BQUICK application 1036B for set-top box. Applications 1056B, 1058B, 1030B, and 1036B are similar to applications 1056A, 1058A, 1020A, 1022A, and 1024A. In some embodiments, when applications 1030B, 1036B, 1056A, 1056B, 1058B, 1058A, 1020A, 1022A, and 1024A are installed or associated devices join the network, applications 1030B, 1036B, 1056A, 1056B, 1058B, 1058A, 1020A, 1022A, and 1024A register at server 1012 for operations consistent with those described herein. User device 1032, television 1034, and game controller 1038 may also include applications similar to BQUICK applications 1022A and 1024A.
[0074] In some embodiments, BQUICK applications 1030B, 1036B, 1056A, 1056B, 1058B, 1058A, 1020A, 1022A, and 1024A are latency applications configured to communicate data to enable the provision of topology reports. Topology reports identify end-to-end devices / networks. In some embodiments, latency requirements for each device are provided in the report (e.g., per device, per usage type, per user ID, or per application). In some embodiments, the report may be stored at server 1012. Latency requirements across the topology can be used for traffic shaping, flow prioritization, etc. In some embodiments, the report tracks which devices are offline, so that bandwidth reserved for those devices in some embodiments can be made available to another device. In some embodiments, the report tracks whether a device is not running a low-latency (e.g., BQUICK) application but is still online, so that bandwidth reserved for that device in some embodiments can be made available to other devices. In some embodiments, offline refers to a state where a device, system, or application does not actively communicate with other devices or access online resources. In some embodiments, a device that is turned off or in sleep mode is offline. In some embodiments, the low-latency application may be offline when it is not running.
[0075] In some embodiments, marking low-latency packets enables applications 1030B and 1036B, 1056A, 1056B, 1058B, 1058A, 1020A, 1022A, and 1024A to process the packets and flow as low-latency streams. In some embodiments, a terminal device (e.g., application 1024A) may send a command or request indicating that latency requirements have not been met, and in some embodiments, each application in the path (applications 1020A, 1056A, and 1058A) may respond to the command by processing packets for that device with higher priority or removing traffic from the path. Latency issues may originate from APs, grids, devices, or nodes. Tracking the bit rate or latency at each location allows the solution to be directed to the specific location of the latency problem.
[0076] refer to Figure 1BResidential building 1018B may include an access point 1031 communicating with a modem 1030, and a wireless router 1074 communicating with televisions 1034, 1035, a set-top box 1036, and a user device 1032. Access point 1031 may be integrated with modem 1030 or may be a separate unit. User device 1032 includes a user device BQUICK application 1032B, and access point 1031 includes a latency access point application 1031B. Router 1074 includes a wireless router BQUICK application 1074B, television 1034 includes a television BQUICK application 1034B, and television 1035 includes a television BQUICK application 1035B. In some embodiments, the BQUICK_TOP server 1005, BQUICK_ISP_A server 1012A, and BQUICK_ISP_B server 1012B communicate virtually with applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B. In some embodiments, a server is any computing device that provides services or resources to other computers or clients within the network.
[0077] Applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B are similar to applications 1056A, 1058A, 1020A, 1022A, and 1024A. Applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B allow modems 1030, televisions 1034 and 1035, access point 1031, router 1074, set-top box 1036, user device 1032, and other cable modem terminal systems to monitor latency, store subscription information (e.g., classic bandwidth in megabits per second (MPPS), low-latency bandwidth (MBPS), maximum jitter in milliseconds), and provide options for upgrading Internet services. User interfaces can be provided on optical network unit 1020, television 1024, and user device 1022 to upgrade or downgrade to different levels of service based on latency information. In some embodiments, this capability is available even if the device is a third-party device. In some embodiments, application 1031B or 1074B can be configured to update network topology information to BQUICK TOP server 1012, and applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B can monitor low-latency resources, request services, register devices, and request different latency processing (e.g., for video, audio, commands, downloads, etc.). In some embodiments, the devices or nodes associated with applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B may include algorithms for changing packet priorities based on time and latency requirements. Applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B may communicate using virtual or logical connections (e.g., using the Internet 1009).
[0078] Access point 1031 is a networking device that allows Wi-Fi-enabled devices to connect to a wired network. In some embodiments, access point 1031 acts as a bridge between wireless devices (e.g., wireless router 1074, set-top box 1036, user device 1032, television 1034 and 1035) and wired network infrastructure (e.g., modem 1030, router, switch, and server). Wireless router 1074 may be a networking device that provides a wireless access point for a wireless network. Wireless router 1074 acts as a hub for a wireless local area network (LAN), allowing multiple devices within or around residence 1018B to connect to the Internet and communicate with each other. Wireless router 1074 may include a wireless built-in Ethernet switch that provides multiple ports for connecting wired devices. In some embodiments, a wired connection can connect router 1074 to access point 1031 or modem 1030. In some embodiments, a wireless router refers to any device that provides a wireless access point for a wireless network.
[0079] refer to Figures 1B to 1C Applications 1030B and 1032B communicate with the BQUICK_TOP server 1005 via a logical interface. The architecture of applications 1030B and 1032B can be used in any of applications 1031B, 1036B, 1074B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A. A logical interface is a virtual interface representing a specific network configuration or functionality within a networking device (e.g., modem 1030 or user device 1032). In some embodiments, the logical interface is software-defined and can be created, configured, and managed within the device's operating system. Applications 1030B and 1032B may include modems, routers, access points, mesh devices, set-top boxes, AR / VR devices, game consoles, telephones, over-the-top (OTT) devices, etc. Applications 1030B and 1032B, and cloud infrastructure 1004 can communicate using application-to-application communication. In some embodiments, application-to-application communication is the exchange of data, messages, or commands over a network between two or more software applications running on the same or different devices. In some embodiments, application-to-application communication enables seamless integration and collaboration between different applications, allowing them to share information, trigger actions, or synchronize states without user intervention. The BQUICK_TOP server 1012 may include an application for monitoring and / or determining end-to-end latency.
[0080] In some embodiments, applications 1020A, 1024A, 1032B, 1034B, 1035B, 1036B, and 1032B are client-level applications. Application 1036B can be configured for the highest priority (e.g., lowest latency application), while normal streaming latency is associated with applications 1020A, 1024A, 1032B, 1034B, 1035B, and 1032B. Applications 1074B and 1031B are node-level applications and can be configured to provide or assign priorities to applications 1020A, 1024A, 1032B, 1034B, 1035B, 1036B, and 1032B (client-level applications) and associated devices. Application 1030B can be configured to provide or assign priority among applications 1036B, 1074B, and 1031B (e.g., node-level applications) and applications 1020A, 1024A, 1032B, 1034B, 1035B, and 1032B (e.g., client-level applications) and their associated devices. In some embodiments, cloud-level applications may include applications 1056B and 1058B. In some embodiments, the partitioning of applications 1056B, 1058B, 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B allows for the separation of local and cloud processing, reduced cloud server communication and ISP bandwidth, local data storage and security, availability of local resources (including edge processing and filtering of information), and faster response to low-latency devices. In some embodiments, application 1030B has a server extension and handles communication between server 1012 and applications 1020A, 1024A, 1032B, 1034B, 1035B, 1036B and 1032B.
[0081] In some embodiments, when application 1030B includes a server extension, application 1030B may be a client-level application or a cloud-level application and maintain a virtual connection to server 1012. In some embodiments, the server extension may provide the following advantages: decoupling development from the ISP (which may help standardization), having a direct data path from application 1020A or 1031B to the application developer's server, maintaining local data privacy, availability of local resources (e.g., local machine learning (ML), edge processing, and filtering information), and faster response to local low-latency gadgets or devices.
[0082] In some embodiments, applications 1056B, 1058B, 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B can synchronize the wall clock across all nodes and end-user devices. Applications 1056B, 1058B, 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B use timestamps for low-latency data packets at each node. In some embodiments, this enhancement enables the determination of latency at each node and reporting it to server 1012. In some embodiments, by utilizing the Precision Time Protocol (PTP), applications 1056B, 1058B, 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B can use timestamps to distinguish whether latency originates from a home network, an ISP, or a cloud server. Each device may have an associated PTP clock that communicates with the application associated with the device. Latency at each node can be shared across the network, allowing the network to avoid devices with latency issues or perform other operations to reduce latency at said nodes (e.g., diverting higher-latency traffic away from the problematic node). In some embodiments, the PTP clock may be derived from a satellite clock.
[0083] refer to Figure 1C Applications 1030B and 1032B each include a latency module 1040, an application 1042, an application framework 1044, a library and hardware abstraction layer 1046, a driver and Linux kernel 1048, and hardware and firewall 1050. In some embodiments, the latency module 1040 is configured to control and monitor the hardware and firewall based on latency. The latency module or BQUICK module 1040 is software configured to provide the low-latency operation described herein. Application 1042 is an application for performing various operations and may contain third-party applications (e.g., Android APK packages). Application framework 1044 is a set of structured software components that provide the necessary infrastructure for building and running applications.
[0084] The library and hardware abstraction layer 1046 provides a standardized interface for device drivers to interact with hardware components. The library and hardware abstraction layer 1046 allows applications and system services to access hardware functionality in a consistent manner across different devices. The library and hardware abstraction layer 1046 provides a collection of pre-written code that developers can use to perform common tasks or implement specific functionality, and typically contains reusable functions, classes, or modules that provide specific capabilities.
[0085] In some embodiments, the driver and Linux kernel 1048 act as a bridge between the hardware and software layers of the system, thereby managing system resources. In some embodiments, the driver and Linux kernel 1048 provide basic services and facilitate communication between software processes and hardware devices. In some embodiments, the driver and Linux kernel 1048 include software components that facilitate communication between the operating system (OS) and hardware devices.
[0086] refer to Figure 1D Functions, services, processes, or operations 1080 can be performed by applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A. Figure 1A and 1B Any of the following can be used for control: classifier 1082, low-latency queue 1084, and classic queue 1086. Queues 1084 and 1086 are used to manage network devices or systems 100. Figure 1A A queue is a memory or data structure for packets or message streams within a communication system 100. In some embodiments, queue 1084 is associated with a high-performance path, and queue 1086 is associated with a low-performance path. In some embodiments, a queue refers to any structure used for storing information (e.g., packets). Any networking device may have separate queues to support low-latency services and may be integrated into the communication system 100. Figure 1A Operations can be performed on any device within the application. Applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A can independently report the latency of each queue.
[0087] In some embodiments, queues 1084 and 1086 are configured to temporarily store packets or messages in a first-in-first-out (FIFO) buffer before transmitting or processing messages. In some embodiments, queue 1084 may store messages for high-performance paths (e.g., low-latency paths), and queue 1086 may store messages for low-performance paths (e.g., high-latency paths). In some embodiments, low-latency operations may use low-performance paths, and high-latency operations may use high-performance paths, or each operation may use the same path. In some embodiments, a path refers to any communication route or channel through which data or information propagates from a source to a destination (e.g., via a device and across media). In some embodiments, a path may include intermediate components and links involved in transmitting data between two or more points in one or more networks. In some embodiments, a low-latency path refers to a path used for low-latency services.
[0088] Classifier 1082 is a processor and / or software configured to classify or categorize network services based on certain criteria (e.g., according to latency requirements and / or priority). In some embodiments, classifier 1082 is configured to enforce network policies, determine service priorities (e.g., for high-performance or low-performance paths), and / or apply specific actions based on the classification results. Classifier 1082 distinguishes different types of services (e.g., voice, video, data) and applies QoS policies to ensure that critical applications receive sufficient bandwidth and latency requirements. Classifier 1082 determines service priorities based on predefined criteria, thereby ensuring that important or time-sensitive applications receive priority processing relative to less critical services by appropriately serving services to queues 1084 and 1086. In some embodiments, classifier 1082 may utilize information about customer subscriptions (e.g., device level, user level, residential level) to classify services.
[0089] refer to Figure 1E Operation 1088 can be controlled by any of the applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A. Operation 1088 is similar to operation 1080 and utilizes a classifier 1090, a first low-latency queue 1092, a second low-latency queue 1094, a classic queue 1096, and a priority queue 1098. Queues 1092, 1094, 1096, and 1098 are used to manage network devices or systems 100 (…). Figure 1AThis refers to a memory or data structure containing packets or message flows within a network. In some embodiments, queues 1092 and 1094 are associated with high-performance paths, and queue 1096 is associated with low-performance paths. In some embodiments, queue 1098 receives messages from queues 1092 and 1094 and provides messages or data to high-performance paths based on a priority scheme associated with queues 1092 and 1094. In some embodiments, classifier 1090 is similar to classifier 1082 and is configured to classify or categorize network traffic based on certain criteria (e.g., according to latency requirements) of queues 1092, 1094, and 1096. In some embodiments, classifiers 1082 and 1090 are software modules operating on a device (e.g., a server, an ISP-provided device, a user device, etc.). In some embodiments, queues 1084, 1086, 1092, 1094, 1096, and 1098 are virtual queues provided on the memory of a device configured by operation 1080 or 1088. In some embodiments, queues 1084, 1086, 1092, 1094, 1096, and 1098 are dedicated hardware queues (e.g., FIFO memories) on the device. Classifiers 1090 and 1082, as well as queues 1084, 1086, 1092, 1094, 1096, and 1098, are implemented in the application layer of the device and, in some embodiments, may utilize services and structures provided by the media access layer and the physical layer. In some embodiments, classifiers 1082 and 1090 can be configured via commands provided by the BQUICK TOP server 1012 to appropriately classify low-latency traffic.
[0090] In some embodiments, applications 1080 and 1088 are configured to operate at nodes associated with devices including, but not limited to, ONU 1020, modem 1030, set-top box 1036, television 1024, access point 1031, user equipment 1032, and / or router 1074. Applications 1080 and 1088 are configured to control and / or segment subscribed low-latency bandwidth services (e.g., 20 Mbps vs. 50 Mbps), track latency statistics (e.g., minimum, maximum, and average latency of low-latency streams), process five tuples (e.g., source IP address, source port, destination IP address, destination port, and transport protocol) of X streams (where X is any integer) with latency and / or bandwidth requirements, monitor latency introduced by the nodes, provide timestamps at ingress and egress ports, monitor buffer depth, enforce boundary clock precision protocols (e.g., the IEEE 10588-2008 standard and its extensions), and determine service priorities among multiple low-latency clients. Monitoring and measurement information can be attached to packets to provide them to other nodes and servers (e.g., server 1012). For example, timestamps can be applied to packets at each node or device. Latency can be determined by comparing timestamps. In some embodiments, applications 1080 and 1088 are also configured to track the state of low-latency applications and provide a user interface for controlling low-latency configurations. In some embodiments, classifiers 1082 and 1090 and / or queues 1084, 1086, 1092, 1094, 1096 are configured by applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A (e.g., at each respective node). In some embodiments, servers 1012, 1012A, and 1012B configure classifiers 1082 and 1090 and / or queues 1084, 1086, 1092, 1094, and 1096 via virtual connections.
[0091] Applications 1080 and 1088 can identify end-to-end bandwidth available for low-latency applications, provide users with real-time feedback on monitored latency, and adjust latency responses. In some embodiments, the adjustment may be in response to purchased services or bandwidth upgrades. In some embodiments, applications 1080 and 1088 can be configured to provide advertisements or customer offers for low-latency resources. Applications 1080 and 1088 can address variable latency for each user and adjust responses to latency levels at specific times, within specific time periods, etc. In some embodiments, latency information may be transmitted as a timestamp appended to packets as described herein or as a timestamp appended to a packet identifier (e.g., 5 tuples and a sequence number) to servers 1012A, 1012B, and 1012, and applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, 1058B, 1056A, 1058A, 1020A, 1022A, and 1024A. In some embodiments, the timestamp information may be sent to servers 1012A, 1012B, and / or 1012 via a separate virtual / logical channel.
[0092] refer to Figure 1F Cloud infrastructure 1004 may contain application 1004A. Application 1004A is similar to applications 1030B, 1031B, 1036B, 1074B, 1032B, 1034B, 1035B, 1056B, and 1058B. BQUICK TOP server 1012 may be configured to monitor AR / VR applications and / or metaverse applications. Applications running on BQUICK TOP server 1012 can perform monitoring functions. Application 1004A communicates with BQUICK TOP server 1012. Servers 1012A and 1012B may contain applications similar to application 1004A.
[0093] Using applications 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B, low-latency usage can be facilitated by devices provided by ISPs, customer-owned AR / VR devices, mobile phones, over-the-top (OTT) devices, and cloud gaming clients. Applications 1020A, 1024A, 1030B, 1032B, 1034B, 1035B, 1036B, 1074B, and 1032B allow devices in residences 1018A and 1018B to interact with server extensions integrated into the ONU 1020 and (e.g., ISP-provided) modem 1030 or router. Additionally, the server extensions have the ability to filter all necessary information and transmit it to servers 1012A and 1012B or share open data with application developers.
[0094] C. Computing Environment
[0095] Before discussing the details of embodiments of the system and method of this solution, it may be helpful to discuss the computing environment in which such embodiments may be deployed.
[0096] like Figure 2A As shown, computer 2001 may include one or more processors 2003, volatile memory 2022 (e.g., random access memory (RAM)), non-volatile memory 2028 (e.g., one or more hard disk drives (HDDs) or other magnetic or optical storage media, one or more solid-state drives (SSDs) (e.g., flash drives or other solid-state storage media), one or more hybrid magnetic and solid-state drives, and / or one or more virtual storage volumes (e.g., cloud storage devices), or combinations of such physical storage volumes and virtual storage volumes or arrays thereof), user interface (UI) 2023, one or more communication interfaces 2018, and communication bus 2050. User interface 2023 may include graphical user interface (GUI) 2024 (e.g., touch screen, display, etc.) and one or more input / output (I / O) devices 2026 (e.g., mouse, keyboard, microphone, one or more speakers, one or more cameras, one or more biometric scanners, one or more environmental sensors, one or more accelerometers, etc.). Non-volatile memory 2028 stores operating system 2015, one or more application programs 2016, and data 2017, such that computer instructions, such as those of operating system 2015 and / or application programs 2016, are executed by processor 2003 outside of volatile memory 2022. In some embodiments, volatile memory 2022 may include one or more types of RAM and / or cache memory, which can provide a faster response time than main memory. Data can be input using the input device of GUI 2024 or received from I / O device 2026. Various components of computer 2001 can communicate via one or more communication buses shown as communication bus 2050.
[0097] like Figure 2AThe computer 2001 shown herein is illustrated only as an example of a client, server, intermediary device, and other networking device, and can be implemented by any computing or processing environment and with any type of machine or group of machines that may have suitable hardware and / or software capable of operating as described herein. The processor 2003 may be implemented by one or more programmable processors to execute one or more executable instructions (e.g., a computer program) to perform the functions of the system. As used herein, the term "processor" describes a circuit system that performs a function, operation, or sequence of operations. Functions, operations, or sequences of operations may be hard-coded into the circuit system or soft-coded by means of instructions stored in a memory device and executed by the circuit system. A "processor" may perform functions, operations, or sequences of operations using digital values and / or analog signals. In some embodiments, a "processor" may be embodied in one or more application-specific integrated circuits (ASICs), microprocessors, digital signal processors (DSPs), graphics processing units (GPUs), microcontrollers, field-programmable gate arrays (FPGAs), programmable logic arrays (PLAs), multi-core processors, or general-purpose computers with associated memory. A "processor" may be analog, digital, or mixed-signal. In some embodiments, a "processor" may be one or more physical processors or one or more "virtual" (e.g., remotely located or "cloud") processors. A processor containing multiple processor cores and / or multiple processors may provide functionality for parallel, simultaneous execution of instructions or for parallel execution of one instruction on more than one piece of data.
[0098] The communication interface 2018 may include one or more interfaces to enable the computer 2001 to access a computer network, such as a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or the Internet, via various wired and / or wireless or cellular connections.
[0099] In some implementations, computing device 2001 may execute applications on behalf of a user of a client computing device. For example, computing device 2001 may execute a virtual machine that provides an execution session in which an application executes on behalf of a user or client computing device, such as a hosted desktop session. Computing device 2001 may also execute a terminal services session to provide a hosted desktop environment. Computing device 2001 may provide access to a computing environment comprising one or more of the following: one or more applications, one or more desktop applications, and one or more desktop sessions in which one or more applications can execute.
[0100] refer to Figure 2BThis describes a computing environment 2060. The computing environment 2060 can generally be considered as implemented as a cloud computing environment, an on-premium (“on-prem”) computing environment, or a hybrid computing environment comprising one or more on-premium computing environments and one or more cloud computing environments. When implemented as a cloud computing environment (also referred to as a cloud environment, cloud computing, or cloud network), the computing environment 2060 can provide shared services (e.g., computer services) and the delivery of shared resources (e.g., computer resources) to multiple users. For example, the computing environment 2060 may include an environment or system for providing or delivering access to multiple shared services and resources to multiple users via the Internet. Shared resources and services may include, but are not limited to, networks, network bandwidth, servers, processing, memory, storage devices, applications, virtual machines, databases, software, hardware, analytics, and intelligence.
[0101] In this embodiment, computing environment 2060 may provide client 2062 with one or more resources provided by a network environment. Computing environment 2062 may include one or more clients 2062a to 2062n communicating with cloud 2068 via one or more networks 2064. Client 2062 may include, for example, fat clients, thin clients, and zero clients. Cloud 2068 may include a backend platform, such as server 1005, storage devices, server clusters, or data centers. Client 2062 may communicate with... Figure 2A The computer is the same as or largely similar to the 2001 computer.
[0102] User or client 2062 may correspond to a single organization or multiple organizations. For example, computing environment 2060 may include a private cloud (e.g., an enterprise cloud) serving a single organization. Computing environment 2060 may include a community cloud or public cloud serving multiple organizations. In embodiments, computing environment 2060 may include a hybrid cloud as a combination of public and private clouds. For example, cloud 2068 may be public, private, or hybrid. Public cloud 2068 may include a public server maintained by a third party of client 2062 or the owner of client 2062. The server may be geographically located in a remote geographic location, as described above or otherwise publicly disclosed. Public cloud 2068 can be connected to the server via public network 2064. Private cloud 2068 may include a private server physically maintained by client 2062 or the owner of client 2062. Private cloud 2068 can be connected to the server via private network 2064. Hybrid cloud 2068 may include both private and public networks 2064 and the server.
[0103] Cloud 2068 may include a backend platform, such as servers, storage devices, server clusters, or data centers. For example, cloud 2068 may include or correspond to servers or systems remote from one or more clients 2062 to provide third-party control over shared services and resource pools. Computing environment 2060 may provide resource pooling to serve multiple users via clients 2062 through a multi-tenant environment or multi-tenant model, wherein different physical and virtual resources are dynamically assigned and reallocated in response to different demands within the respective environment. A multi-tenant environment may include a system or architecture that provides software, applications, or a single instance of a software application to serve multiple users. In embodiments, computing environment 2060 may provide on-demand self-service to unilaterally provide computing power (e.g., server time, network storage) to multiple clients 2062 across a network. Computing environment 2060 may provide resilience to dynamically scale outward or inward in response to different demands from one or more clients 2062. In some embodiments, computing environment 2060 may include or provide monitoring services to monitor, control, and / or generate reports corresponding to the shared services and resources provided.
[0104] In some embodiments, computing environment 2060 may include and provide different types of cloud computing services. For example, computing environment 2060 may include Infrastructure as a Service (IaaS). Computing environment 2060 may include Platform as a Service (PaaS). Computing environment 2060 may include serverless computing. Computing environment 2060 may include Software as a Service (SaaS). For example, cloud 2068 may also include cloud-based delivery, such as Software as a Service (SaaS) 2070, Platform as a Service (PaaS) 2072, and Infrastructure as a Service (IaaS) 2074. IaaS can refer to a user's rental of access to infrastructure resources required for a specified period of time. IaaS providers may offer storage, networking, server, or virtualization resources from a large pool, allowing users to scale rapidly by accessing more resources as needed. IaaS instances include Amazon Web Services provided by Amazon.com, Inc. of Seattle, Washington; RACKSPACECLOUD provided by Rackspace US, Inc. of San Antonio, Texas; Google Compute Engine provided by Google Inc. of Mountain View, California; or RIGHTSCALE provided by RightScale, Inc. of Santa Barbara, California. PaaS providers offer the functionality provided by IaaS, including, for example, storage, networking, servers, or virtualization, as well as additional resources such as operating systems, middleware, or runtime resources. Examples of PaaS include Windows Azure provided by Microsoft Corporation of Redmond, Washington; Google App Engine provided by Google Inc.; and Heroku provided by Heroku, Inc. of San Francisco, California. SaaS providers offer the resources offered by PaaS, which include storage, networking, servers, virtualization, operating systems, middleware, or runtime resources. In some embodiments, SaaS providers may offer additional resources, including, for example, data and application resources.SaaS instances include Google Apps, Salesforce.com, based in San Francisco, California, or Office 365, provided by Microsoft. SaaS instances may also include data storage providers such as Dropbox, based in San Francisco, California; Microsoft SkyDrive, based in San Francisco, California; Google Drive, based in Google; or Apple iCloud, based in Cupertino, California.
[0105] Client 2062 can access IaaS resources with one or more IaaS standards, including, for example, Amazon Elastic Compute Cloud (EC2), Open Cloud Computing Interface (OCCI), Cloud Infrastructure Management Interface (CIMI), or OpenStack standards. Some IaaS standards allow clients to access resources via HTTP and can use the Representational State Transfer (REST) protocol or the Simple Object Access Protocol (SOAP). Client 2062 can access PaaS resources with different PaaS interfaces. Some PaaS interfaces use HTTP wrappers, standard Java APIs, Java Mail APIs, Java Data Objects (JDO), Java Persistence APIs (JPA), Python APIs, web integration APIs for different programming languages, including, for example, Rack for Ruby, WSGI for Python, or PSGI for Perl, or other APIs that can be built on REST, HTTP, XML, or other protocols. Client 2062 can access SaaS resources using a web-based user interface provided by a web browser (e.g., Google Chrome, Microsoft Internet Explorer, or Mozilla Firefox provided by the Mozilla Foundation in Mountain View, California). Client 2062 can also access SaaS resources via smartphone or tablet applications, such as Salesforce Sales Cloud or Google Drive. Client 2062 can also access SaaS resources via a client operating system, including, for example, a Windows file system for DROPBOX.
[0106] In some embodiments, access to IaaS, PaaS, or SaaS resources can be authenticated. For example, a server or authentication server can authenticate users via a security certificate, HTTPS, or an API key. The API key can contain various encryption standards, such as Advanced Encryption Standard (AES). Data resources can be sent via Transport Layer Security (TLS) or Secure Sockets Layer (SSL).
[0107] While examples of the communication systems described above may include devices operating according to Ethernet and other standards, it should be understood that embodiments of the described systems and methods may operate according to alternative standards and use wireless communication devices other than those configured as devices. For example, multiple unit communication interfaces associated with cellular networks, satellite communications, vehicular communication networks, wired networks, and networks may utilize the systems and methods described herein without departing from the scope of the systems and methods described herein.
[0108] D. Systems and methods for improving latency in wireless speakers
[0109] The following is a detailed description of various concepts and embodiments thereof related to techniques, methods, apparatus, and systems for improving the latency of wireless speakers. The various concepts introduced above and discussed in more detail below can be implemented in any of a variety of ways, as the described concepts are not limited to any particular mode of implementation. Examples of specific embodiments and applications are provided primarily for illustrative purposes.
[0110] The technical solutions disclosed herein aim to improve the latency of wireless speakers in wireless entertainment systems. Specifically, this disclosure aims to wirelessly distribute audio during multimedia content playback to maintain synchronization between audio and video. In wireless entertainment systems, in some embodiments, audio latency may refer to the time difference between the time it takes for multimedia content (e.g., a movie, TV program, or music) or its audio portion to be transmitted from a source (e.g., a media player) and the time it takes for the speaker to output the audio portion to the user. The problem may be a result of wireless transmission and processing delays, which may be due to network conditions, bandwidth limitations, or the latency characteristics of technologies such as Bluetooth and Wi-Fi.
[0111] The aforementioned latency can interfere with the synchronization between audio and video. The technical solution involves establishing a buffered channel between the wireless chip in the media player and the wireless speaker using the Inter-IC Voice (I2S) protocol for audio data transmission. The wireless chip in the media player receives audio data samples and transmits them to the wireless chip in the wireless speaker, bypassing a portion of the transport layer stack. Direct transmission reduces or minimizes latency, and the audio data can be transmitted to the wireless speaker's digital-to-audio converter for output. The technical solution provides a low-latency data pipeline facilitated by the access point, acting as an intermediary for the connection between the media player and the wireless speaker. Furthermore, establishing a constant bit-rate pipeline for the audio data stream from the media player to the access point and a high-priority data pipeline from the access point to the wireless speaker prioritizes audio transmission over other network services.
[0112] Figure 3A This describes an example system 300A for improving latency in wireless speakers. Example system 300A may include one or more servers 1005 communicatively coupled to one or more media players 305 and one or more wireless speakers 310 via one or more access points 320. Example system 300A may include one or more constant bit rate pipes 375 between media players 305 and access points 320, and one or more high-priority data pipes 380 between wireless speakers 310 and access points 320. Access points 320 may include one or more latency controllers 385.
[0113] Media player 305 may include one or more audio processors 330 and one or more wireless chips 325. Wireless chip 325 may include one or more inter-IC voice (I2S) receivers 350, one or more data buffers 340, and one or more wireless communication interfaces 360. Data buffer 340 may include one or more audio buffer copies 345. Wireless communication interface 360 may include one or more machine access control (MAC) layers 365 and one or more radio systems 370. Wireless speaker 310 may include one or more digital-to-audio converters 335 and one or more wireless chips 325. The wireless chip 325 of wireless speaker 310 may include one or more I2S transmitters 355, one or more data buffers 340, and one or more wireless communication interfaces 360.
[0114] Media player 305 may be a system, device, software, application, or other executable instructions that can be executed on a device and configured to play multimedia content, including video and audio data. Media player 305 may be configured to play audio, such as music. Media player 305 may include a set-top box (STB), television (TV), home theater system, and over-the-top (OTT) device. Media player 305 in an STB supplied by a cable or satellite television provider can decode and display TV channels, while frequently integrating recording and streaming functions. Media player 305 can provide access to on-demand content and applications from various services. Media player 305 in a television may have built-in capabilities to play local media files stored on a USB drive or network-attached storage device and can directly access streaming services via built-in applications. In some embodiments, media player 305 may be part of a system configured for high-quality audio and video playback, wherein functionality may be integrated into a receiver or as a separate component that typically supports various file formats and playback characteristics. Media player 305 in an OTT device can connect to a TV and stream content from online services.
[0115] Media player 305 can communicate via network 2064 (e.g., home or local) to stream content from different content sources over the Internet, such as in combination with... Figure 2B As shown, media player 305 can receive content (e.g., movies, music, etc.) from various electronic devices (e.g., computers, smartphones, and Internet of Things (IoT) devices) via network 2064. Any or all of the computing devices described herein can wirelessly communicate (e.g., via Wi-Fi, cellular, radio, etc.) with transceivers of other computing devices in network 2064 via hardwired connections (e.g., via fiber optic cables, CAT5 cables, etc.). Any or all of the computing devices described herein can also wirelessly communicate with computing devices in network 2064 via proxy devices (e.g., routers, access points, network switches, or gateways).
[0116] The wireless speaker 310 can be a device configured to output audio from audio data or signals received wirelessly from another device, application, or system via one or more speakers, for example, without requiring a physical cable to connect the speaker's audio input to an audio source (e.g., media player 305). The wireless speaker 310 can use wireless communication technologies (e.g., Bluetooth or Wi-Fi) to receive audio signals from smartphones, computers, televisions, or other devices. In some embodiments, the wireless speakers 310 can be paired or grouped together on the same network to create a synchronized audio system across multiple rooms or areas. In some embodiments, the wireless speaker 310 can be powered by a battery or any power source, providing portability and versatility.
[0117] The audio processor 330 may include any combination of hardware and software for processing audio data (e.g., sampling, encoding, decoding, formatting, etc.). The hardware may include a digital signal processor (DSP), a field-programmable gate array (FPGA), or a microcontroller. The software may include an audio processing library or custom algorithms. The audio data may include pulse code modulation (PCM) audio data. The audio processor 330 may perform one or more tasks, including but not limited to decoding, encoding, mixing, equalization, and volume control. Decoding may include converting compressed audio formats (e.g., MP3 (MPEG Audio Layer 3) or AAC (Advanced Audio Coding)) into uncompressed digital data. Encoding may include converting uncompressed digital audio data into a compressed format for storage or transmission. Mixing may include combining multiple audio sources into a single output. Equalization may include adjusting the frequency response of the audio to achieve desired tonal characteristics. Volume control may include adjusting the overall loudness of the audio.
[0118] In some embodiments, the audio processor 330 may process or be configured to convert audio signals from the media player 305 into uncompressed digital audio data (e.g., pulse code modulation (PCM) data). The audio processor 330 may sample the analog audio signal from the media player 305 at a specific rate (e.g., sampling rate) to determine the frequency at which the amplitude of the signal is measured per second. The audio processor 330 may quantize each sampled amplitude value into discrete values, mapping the amplitude of each sample to the nearest value that can be represented by a binary number. The audio processor 330 may observe the system's bit depth (e.g., 16-bit, 24-bit) to determine the resolution of the discrete values. The audio processor 330 may encode the quantized values into PCM data, providing a direct representation of the sampled and quantized audio amplitudes in binary form, enabling the data to be stored or transmitted as digital audio.
[0119] In some embodiments, the audio processor 330 may compress PCM data and further process the data using an audio compression algorithm (e.g., MP3, AAC) to minimize file size for more efficient storage or transmission. The audio processor 330 may analyze the PCM data to identify and remove portions of the audio signal that are imperceptible to the human ear. In some embodiments, when a compressed audio file is played, the compressed audio data is first decompressed back to PCM data, which is then converted to an analog signal via a digital-to-analog converter or a digital-to-audio converter (DAC) and played through a speaker or headphones.
[0120] The digital audio converter 335 may include any combination of hardware and software for converting digital audio data into analog electrical signals for driving speakers. The digital audio converter 335 may receive digital audio data in a format such as PCM, which represents sound amplitude and frequency as discrete values stored as binary numbers. If the digital data is encoded using information such as error correction or synchronization, the digital audio converter 335 may remove elements to extract the original audio data. The digital audio converter 335 may decode the PCM data and translate each digital value into a corresponding voltage level in the analog domain, thereby producing an analog signal very similar to the original sound wave. The digital audio converter 335 may apply filters to remove any unwanted high-frequency noise generated. Depending on the implementation, the digital audio converter 335 may amplify the analog signal to drive the speaker.
[0121] Wireless chip 325 is a circuit system comprising an integrated circuit configured for wireless communication. Wireless chip 325 may include a wireless chipset. Wireless chip 325 may include any baseband processor, radio frequency transceiver, integrated circuit, chip, or chipset, or any combination thereof, and any associated software for implementing wireless communication. Wireless chip 325 can transmit and receive data over a distance using radio signals. Wireless chip 325 may be configured to communicate with other wireless devices according to a specific protocol (e.g., Wi-Fi, Bluetooth, cellular). Wireless chip 325 may be configured to communicate with other devices using any of the IEEE standards (e.g., the IEEE 802.11 standard). Wireless chip 325 may be a system-on-a-chip (SoC), which integrates various functions onto a single chip, including, but not limited to, a processor (for tasks), memory (for storage), and a communication interface (for interacting with devices), as well as other components.
[0122] Wireless chip 325 may include any combination of hardware and software for establishing buffered conduit 312. The buffered conduit may include any software and / or hardware constructs, including queues, buffers, logic, circuitry, firmware or software, data channels, any of the aforementioned connections and management, to transfer data from a data buffer on one wireless chip to a data buffer on another wireless chip, for example, using the I2S protocol on the machine access control layer. The buffered conduit manages the flow of audio data. In some embodiments, wireless chip 325 may use the buffered conduit to transmit audio data, thereby bypassing the transport layer stack of both media player 305 and wireless speaker 310. I2S formatted data may be temporarily stored in data buffer 340, creating or generating an audio buffer copy 345 until it is ready for transmission. Wireless chip 325 of media player 305 may transmit audio data (e.g., the contents of audio buffer copy 345) to wireless chip 325 of wireless speaker 310 via the buffered conduit, thereby bypassing the transport layer stack.
[0123] In some embodiments, the wireless chip 325 may be configured to support a network service discovery protocol. The registration process may be managed by a software layer or firmware that interacts with the wireless chip 325 for network access and registration. This configuration enables the access point 320 to act as a bridge, facilitating communication and querying the network for devices registered via the discovery protocol. In some embodiments, the system 300A may be manually configured using a separate user interface or software application (not directly on the wireless chip itself), which can be communicated to the wireless chip 325 for identification. In some embodiments, the wireless chip 325 may be configured to retrieve pre-pairing information from storage. In some embodiments, the wireless chips 325 of the media player 305 and the wireless speaker 310 may be configured to identify each other as a pair using a network discovery protocol, user configuration, or pre-pairing information.
[0124] In some embodiments, the wireless chip 325 may establish a wireless link from the media player 305 to the wireless speaker 310, thereby bypassing any other mesh nodes on the network of the access point 320. In some embodiments, the media player 305 (e.g., via the wireless chip) may discover available connections by scanning the Wi-Fi network to detect nearby access point 320 or mesh nodes. Once an available connection is identified, the wireless chip 325 may evaluate several factors, such as assessing signal strength to prioritize connections with stronger signals for better data transmission, assessing distance to select the mesh node or access point 320 closest to the wireless speaker 310, assessing network congestion to avoid heavily congested mesh nodes for smooth audio streaming, and assessing the likelihood of a direct connection if the wireless speaker supports direct Wi-Fi connectivity and is within range. Based on the chosen method, the wireless chip 325 may establish a standard Wi-Fi connection with the selected mesh node, or initiate a direct Wi-Fi connection handshake with the wireless speaker 310 if both devices support direct Wi-Fi handshake.
[0125] I2S receiver 350 may include any combination of hardware and software for implementing the I2S protocol. The I2S protocol is a standard communication method for exchanging digital audio data between integrated circuits (ICs). The I2S protocol can use synchronous serial protocols and interfaces for data transmission, such as for conveying digital audio data, separating data into clock signals, channel selection, and audio data packetization. I2S receiver 350 may be implemented using hardware, software, or a combination of both, and can receive audio data via the I2S protocol. In some embodiments, I2S receiver 350 may receive digital audio data in a format such as PCM (Pulse Code Modulation) from various sources within media player 305 (e.g., audio processor 330, internal storage, or streaming media services). PCM can be used to digitally represent analog signals. In some embodiments, I2S receiver 350 may include a data formatter to transform or convert input audio data into a serial format conforming to an I2S standard (e.g., a serial bus standard for digital audio communication). The conversion process may include factors including, but not limited to, adjusting the sampling rate to maintain audio quality, modifying the bit depth for higher resolution audio, and grouping data into I2S frames.
[0126] In some embodiments, the I2S receiver 350 may adjust the sampling rate of the incoming audio data to match the receiver's operating specifications and the requirements of the I2S standard. For example, a higher or matching sampling rate can achieve better sound fidelity by representing the original signal more accurately. In some embodiments, the I2S receiver 350 may modify the bit depth of the audio data to achieve higher resolution audio by increasing the number of bits used to represent each sample of the audio signal. For example, a higher bit depth can achieve a more detailed representation of the audio signal, resulting in improved dynamic range and reduced quantization noise. The I2S receiver 350 may group the adjusted audio data into I2S frames to organize the digital audio data into a device-recognizable and usable format that conforms to the I2S standard. Grouping into I2S frames may include organizing the bits of the data into a structured order and setting word selection signals to indicate the start of a new data frame, etc.
[0127] I2S transmitter 355 can receive audio data in I2S format. In some embodiments, if the audio data is transmitted in a digital format (e.g., MP3 or AAC), the audio data can be directly decoded to PCM. Depending on the implementation, the decoding process may occur in a separate component or within the I2S transmitter 355 itself. I2S transmitter 355 can convert audio data into a digital form (e.g., PCM) before sending it to digital audio converter 335. I2S transmitter 355 can rearrange the data channel, converting it from an I2S sequence back to a format suitable for PCM processing. I2S transmitter 355 can adjust the data word size (e.g., data volume) to match the input requirements of digital audio converter 335. I2S transmitter 355 can remove synchronization signals (e.g., clock and frame synchronization) used for I2S transmission.
[0128] In some embodiments, the I2S transmitter 355 of the wireless chip 325 can receive audio data from a buffer pipe in I2S format, and can use a clock and / or data line for synchronizing audio transmission. The I2S transmitter 355 can process the audio data for conversion. In some embodiments, the digital audio converter 335 may require a different format to convert to an analog signal. The I2S transmitter 355 can convert the audio data to a format compatible with the digital audio converter 335, such as PCM format. Depending on the implementation, the I2S transmitter 355 can transmit the converted audio data to the digital audio converter 335 via an interface, which can be a physical connection or a digital bus. In some embodiments, the I2S transmitter 355 of the wireless chip 325 can provide audio data directly to the digital audio converter 335 for output to the speaker of the wireless speaker 310.
[0129] Data buffer 340 may include any combination of hardware and software for storing and managing data (e.g., audio data) such as data for audio buffer copy 345. For example, data buffer 340 may create or generate audio buffer copy 345 as a temporary storage device to preserve audio data before processing or sending it to a speaker. Audio buffer copy 345 may refer to a temporary storage location within memory allocated for storing audio data. Audio buffer copy 345 may be a copy of a specific segment of an audio data stream. Data buffer 340 may include any data structure or other construct for storing and managing data in an allocated portion of memory. Data buffer 340 may include memory chips for or based on data transfer rates. For example, data buffer 340 may move audio data rapidly. In some embodiments, data buffer 340 may use system memory to store audio data, enabling data buffer 340 to maintain audio data or streams. Data buffer 340 may temporarily store data to facilitate data flow from storage devices to processing units configured for decoding and playback (which, depending on system configuration, may be a media player or a wireless speaker). The data buffer 340 maintains data to provide continuous speaker operation. In some embodiments, the data buffer 340 can control the data release rate to match the receiver's processing capabilities. For example, the data buffer 340 can adjust or modify the rate at which audio data is sent out to match the rate at which the receiver can process such data.
[0130] The wireless communication interface 360 can include any combination of hardware and software to enable communication or data exchange between devices. The wireless communication interface 360 facilitates connections without a physical link, allowing devices to communicate over long distances. The wireless communication interface 360 operates by adhering to rules instructing communication and standard wireless protocols (such as Wi-Fi or Bluetooth).
[0131] In some embodiments, the wireless communication interface 360 may include a MAC (Machine Access Control) layer 365 and a radio 370. The MAC layer 365 may manage access to wireless media using a selected Media Access Control (MAC) protocol (e.g., via Wi-Fi or Bluetooth). The MAC layer 365 may establish rules for data transmission over a shared wireless channel to prevent collisions and maintain orderly communication. In some embodiments, the MAC layer 365 may assign addresses (e.g., MAC addresses) to devices on the network to enable data to reach its intended recipient. The MAC layer 365 may package or group data into manageable units (e.g., frames) and may add information such as sender and receiver addresses or error check codes.
[0132] In some embodiments, the wireless chip 325 may be configured to transmit audio data via the MAC layer 365, for example, using the I2S protocol. For example, the wireless chip 325 may encapsulate audio data within network packets by adding header information containing source and destination addresses, routing instructions, and other control data. The MAC layer 365 may manage network access and / or facilitate communication between devices. The MAC layer 365 may acquire prepared audio data packets and transmit them via the wireless communication interface 360 using standard network protocols (e.g., Wi-Fi or Bluetooth). In some embodiments, the MAC layer 365 may perform tasks such as channel selection (e.g., based on available channels, signal strength, etc.), collision avoidance (e.g., via Carrier Sense Multiple Access and Collision Avoidance (CSMA / CA)), or packet forwarding (e.g., based on its MAC address). The wireless chip 325 may receive audio data packets via its wireless communication interface 360, wherein the MAC layer 365 on the wireless chip 325 may extract audio data from the packets and remove header information. The received audio data may be further processed before being sent for playback.
[0133] In some embodiments, the radio system 370 may transform or convert digital data (e.g., audio or video data) into radio signals or waves at several frequencies (e.g., frequencies determined by a selected wireless protocol, such as Wi-Fi or Bluetooth). The radio system 370 may transmit radio waves carrying data and may receive incoming signals from other devices. In some embodiments, the radio system 370 may amplify outgoing signals for efficient transmission and may attenuate (e.g., reduce strength or intensity) incoming signals for improved or desired processing.
[0134] Access point 320 may include means or modules (comprising a combination of hardware and software) that allow wireless communication devices to connect to a wired network using Wi-Fi or other standards. Access point 320 may sometimes be referred to as a wireless access point (WAP). Access point 320 may be implemented (e.g., configured, designed, and / or constructed) to operate in a wireless local area network (WLAN). In some embodiments, access point 320 may be connected as a standalone device to a router (e.g., via a wired network). In some embodiments, access point 320 may be a component of a router. Access point 320 may provide access to network 2064 for multiple devices. For example, access point 320 may connect to a wired Ethernet connection and use a radio frequency link to provide wireless connectivity for other devices to utilize the wired connection. Access point 320 may be implemented to support standards for transmitting and receiving data using one or more radio frequencies. Those standards and the frequencies they use may be defined by IEEE (e.g., the IEEE 802.11 standard). Access point 320 may be configured and / or used to support Internet hotspots and / or extend the Wi-Fi signal range of a network. In some embodiments, access point 320 may facilitate a connection between media player 305 and wireless speaker 310. For example, the wireless chip 325 of media player 305 and the wireless chip 325 of wireless speaker 310 may communicate via access point 320. Access point 320 may receive data packets from media player 305 and forward data packets to wireless speaker 310.
[0135] The latency controller 385 may include any combination of hardware and software for identifying, managing, and controlling the latency between the media player 305 and the wireless speaker 310. In some embodiments, the latency controller 385 is located within an access point. In other embodiments, the access point is connected to a latency server (e.g., acting as the latency controller). Figures 1A to 1F The delay controller 385 communicates with a delay server 1005. The delay controller 385 manages and / or prioritizes audio data, transmitting the prioritized audio data through certain data pipes or channels (e.g., constant bit rate pipe 375 and high priority data pipe 380). The delay controller 385 can use predefined tags or protocols to identify audio data packets. The delay controller 385 can identify audio packets based on tuple information in the packet. The delay controller 385 can identify audio packets based on header information and / or content of packets carrying audio data. The delay controller 385 can establish or maintain queues (e.g., high priority queues) for the identified audio data. Audio data can be forwarded before other types of data (e.g., lower priority content). In some embodiments, the delay controller 385 can dynamically identify network conditions, congestion levels, and audio content characteristics to adjust or modify the priority of different packets (sometimes referred to as audio packets) or different streams of audio packets.
[0136] In some embodiments, system 300A may establish a constant bit rate (CBR) pipeline 375 between media player 305 and access point 320, for example, via circuitry, software, applications, service procedures, libraries, functions, or a set of executable instructions on the media player device and / or access point. A constant bit rate (CBR) can provide a consistent or stable transmission or data stream rate, for example, over a network or connection, unaffected by network fluctuations. The pipeline of the CBR or CBR pipeline 375 may include any software and / or hardware constructs, including queues, buffers, logic, circuitry, firmware or software, data channels, any of the aforementioned connections, and management, to provide a constant bit rate data stream or data transmission between two points (e.g., two devices, such as from the access point to the media player device or a wireless speaker). Wireless chip 325 may transmit audio data (e.g., PCM audio data) from media player 305 to access point 320 via the constant bit rate pipeline 375. Access point 320 can establish, maintain, and / or retain data channels for CBR pipeline to media player device and for audio transmission from access point to wireless speaker 310, for example, to provide specific bandwidth or network availability to maintain a consistent or stable data rate for audio data streams.
[0137] In some embodiments, system 300A may establish a high-priority data pipeline 380 between access point 320 and wireless speaker 310, for example, through circuitry, software, applications, service procedures, libraries, functions, or a set of executable instructions on the wireless speaker and / or access point. The high-priority data pipeline may include any software and / or hardware constructs, including queues, buffers, logic, circuitry, firmware or software, data channels, any of the aforementioned connections and management, to provide a data stream between the media player and the access point and prioritize it for processing. The high-priority data pipeline may be implemented on the WiFi chip and / or the media player and / or the access point. The media player and / or WiFi chip may store audio data for transmission to the WiFi speaker in one or more queues identified as having a higher priority (e.g., high priority) than other data to be transmitted on the media player and / or WiFi chip. Data buffer 340 may be a portion of the high-priority queues that form or implement the high-priority data pipeline. The firmware, software, and / or logic of the WiFi chip may transmit audio data from these high-priority queues to the access point. Such transmissions of audio data packets or frames can be identified using a priority field or signal to indicate to the access point a higher-priority quality service to be transmitted to the WiFi speaker. The access point can store such audio data in a high- or higher-priority queue for transmission to the WiFi speaker, for example, prioritizing audio data over the transmission of other data through the access point. For example, the access point can transmit PCM audio data from access point 320 to wireless speaker 310 via high-priority data pipe 380. Access point 320 may have queues for different types of services, and delay controller 385 can configure access point 320 to prioritize audio data from media player 305 by placing such audio data in a high-priority queue, causing audio packets to be transmitted before other types of data (such as web browsing or downloading).
[0138] In some embodiments, the media player 305, wireless speaker 310, and access point 320 can each be configured to dynamically disable or enable data aggregation. For example, if an application is identified as a low-latency application (e.g., for music streaming or gaming), then data aggregation can be disabled. In some embodiments, such as in combination Figures 1A to 1F The described server 1005 or low-latency application detector can identify characteristics indicating low-latency applications. In some embodiments, the media player 305, wireless speaker 310, and access point 320 may each be configured to identify low-latency applications.
[0139] When a low-latency application is detected, system 300A (e.g., via wireless chip 325) may dynamically disable data aggregation. In some embodiments, wireless chip 325 of media player 305 may disable packet aggregation to avoid combining multiple audio data packets into a larger chunk before transmission. Wireless chip 325 of media player 305 may adjust or modify its internal buffer to transmit data closer to real-time, reducing latency caused by buffering large amounts of data before transmission. In some embodiments, latency controller 385 of access point 320 may disable frame aggregation to avoid combining multiple data frames from different sources before transmission. In some embodiments, latency controller 385 of access point 320 may prioritize audio data packets over other network traffic. In some embodiments, wireless chip 325 of wireless speaker 310 may disable packet aggregation to reduce the time to convert data into sound and minimize latency between receiving and playing audio. In some embodiments, wireless chip 325 of wireless speaker 310 may adjust its buffer to process audio data closer to real-time, reducing latency caused by buffering data before playback.
[0140] Now for reference Figure 3B The 300B drawing system depicts... Figure 3A System 300A bypasses the network stack or parts thereof to reduce latency. For example, System 300A bypasses the application CPU, network stack, frame buffers, packet buffers, Wi-Fi drivers, Peripheral Component Interconnect Fast (PCIe) interface, Direct Memory Access (DMA), and encoders, all of which are marked as crossed out and not used in the 300A implementation. The aforementioned system components can be used for network communication protocols but may introduce unnecessary overhead for low-latency audio streaming.
[0141] Such as combination Figure 3A As described, audio data in PCM format from audio processor 330 can bypass several components involved in network communication. For example, Figure 3B The configuration described avoids the need for an encoder to convert audio data into a compressed format for network transmission. Frame buffers are considered unnecessary for temporarily storing audio data used for network packet creation. The application CPU can be offloaded from processing audio data for network transmission. The network stack, with its complex protocols and routing functions, can be bypassed completely or at least partially. The Wi-Fi driver responsible for managing Wi-Fi communication protocols can be excluded from this initial stage. Furthermore, the PCIe and DMA interfaces typically expected for data transfer may be unnecessary for this configuration path in System 300A.
[0142] like Figure 3A As described, audio data can take a direct path to the I2S receiver 350, rather than being routed through the network stack, such as... Figure 3B As shown in the diagram. The I2S receiver 350 within the Wi-Fi wireless chip 325 can receive digital audio data in formats such as PCM from various sources within the media player 305, such as the audio processor 330, internal storage, or streaming services. In some embodiments, the data buffer 340 can be used to generate a copy of the audio buffer 345 as a temporary storage device to save audio data before transmission, thereby bypassing the network stack. The data buffer 340 can operate within the Wi-Fi wireless chip 325, thereby bypassing the network stack. In some embodiments, the media player 305 may include a built-in digital-to-audio converter 335 that can convert digital audio data into analog signals suitable for directly driving speakers via standard analog cables.
[0143] The wireless communication interface 360 within the Wi-Fi wireless chip 325 is configured to enable communication or data exchange between devices, for example via a MAC layer, for transmitting audio data between the media player and the WiFi speaker.
[0144] Figure 3B Explain the audio processing path of the Wi-Fi speaker. For example, as combined with... Figure 3A As described, the Wi-Fi wireless chip 325 of the Wi-Fi speaker 310 can receive audio data via a wireless communication interface 360 and transmit the audio data to a data buffer 340, and subsequently to an I2S transmitter 355. The I2S transmitter 355 can convert the audio data into a digital form, such as PCM, before it can be sent to a digital audio converter 335. The digital audio converter 335 can convert the digital audio data into an analog signal to drive the speaker of the Wi-Fi device, thereby bypassing several stages of audio data processing. For example, the configuration can avoid sending audio data from the data buffer to the DMA and then to the Wi-Fi driver. Furthermore, the configuration can eliminate the expectation of sending audio data to a packet buffer and then to an audio processor for PCM data conversion before reaching the digital audio converter 335.
[0145] Figure 4 A method 400 for improving the latency of a wireless speaker is described. Method 400 can be implemented using systems 100, 200, 300A, and 300B, or any other features discussed in Figures 1 to 3. The method may include actions 402 to 408. At 402, a first wireless chip of a media player, communicating wirelessly with a second wireless chip of the wireless speaker, can establish a buffer channel. At 404, the first wireless chip of the media player can receive samples of audio data. At 406, the first wireless chip of the media player can transmit the audio data to the second wireless chip of the wireless speaker. At 408, the second wireless chip of the wireless speaker can directly transmit the audio data to a digital audio converter.
[0146] At point 402, a first wireless chip in a media player that wirelessly communicates with a second wireless chip of a wireless speaker (e.g., via an access point or wireless network) can establish a buffer channel 312. The first and second wireless chips establish the buffer channel using the I2S protocol to transmit audio data. The first and second wireless chips can communicate using WiFi-based communication via the MAC layer using the I2S protocol. Each of the first and second wireless chips can establish one or more data buffers for receiving, storing, and transmitting audio data between the devices.
[0147] The media player's wireless chip can initiate a connection with the wireless speaker's wireless chip via standard wireless protocols such as Bluetooth or Wi-Fi. The wireless chip can be configured to negotiate its capabilities and agree to establish a buffer channel using a protocol, which can be proprietary or standardized. The media player's wireless chip can allocate buffer space in its memory to store audio data, acting as a temporary storage area before sending it to the wireless speaker. The media player's wireless chip can send or transmit the audio data in packets to the wireless speaker's data buffer, where the data flow is controlled by the agreed protocol. The wireless speaker's wireless chip can process the audio data from the buffer copy and play the audio data through its audio processing and drivers. Using a buffer channel reduces latency, minimizing the delay between data transmission and playback for smoother audio. The wireless speaker's wireless chip can be configured to shut down its radio more frequently when data is available in the buffer, thus saving battery life. Instances can be expanded to include dynamic buffer resizing based on network conditions, speaker capabilities, and audio content, incorporate error correction mechanisms to ensure data integrity during transmission, and extend the buffer channel to manage or configure multi-channel audio formats for a surround sound experience.
[0148] At position 404, the I2S receiver within the media player's wireless chip receives samples of audio data. The media player's wireless chip can process (e.g., via an audio processor) the audio signal from the media player into uncompressed digital audio data, such as PCM data. The I2S receiver receives PCM formatted digital audio data. The I2S receiver can adjust the sampling rate of the incoming audio data to match the receiver's operating specifications and the requirements of the I2S standard. For example, a higher or matching sampling rate can achieve better sound fidelity by representing the original signal more accurately. The I2S receiver can modify the bit depth of the audio data to achieve higher resolution audio by increasing the number of bits used to represent each sample of the audio signal. For example, a higher bit depth allows for a more detailed representation of the audio signal, resulting in improved dynamic range and reduced quantization noise. The I2S receiver can group the adjusted audio data into I2S frames to organize the digital audio data into a format recognizable and usable by devices conforming to the I2S standard. The I2S receiver can store the received and processed audio data in a data buffer for transmission.
[0149] At position 406, the media player's wireless chip can transmit audio data from the data buffer to the wireless speaker's wireless chip. The media player's wireless chip can then transmit the audio data to the access point via a constant bit rate data channel. The access point can then transmit the audio data to the wireless speaker via a high-priority data channel. Therefore, the buffer channel between the media player and the WiFi speaker can transmit data to the access point via a constant bit rate channel and to the WiFi speaker via a high-priority data channel.
[0150] The wireless chip of a wireless speaker can receive incoming audio data via a wireless communication interface. The wireless chip may include an I2S transmitter capable of receiving audio data (e.g., from a data buffer). The audio data may be in I2S format. The I2S transmitter of the wireless speaker can convert the audio data into a digital form, such as PCM, before sending it to a digital audio converter. The I2S transmitter can adjust the data word size to match the input requirements of the digital audio converter. In some embodiments, the I2S transmitter can remove the synchronization signal used for I2S transmission. In some embodiments, the I2S transmitter can rearrange the data channel, converting it from an I2S sequence back to a format suitable for PCM processing. In some embodiments, if the audio data within the system is transmitted in a digital format (e.g., MP3 or AAC), then the audio data can be directly decoded to PCM.
[0151] At 408, the I2S transmitter within the wireless speaker's wireless chip provides audio data to a digital audio converter (DAC), for example, directly to the DAC. The DAC receives digital audio data in a format such as PCM, which represents sound amplitude and frequency as discrete values stored as binary numbers. If the digital data is encoded with information such as error correction or synchronization, the DAC can remove elements to extract the original audio data. The DAC can decode the PCM data and translate each digital value into a corresponding voltage level in the analog domain, thereby producing an analog signal very similar to the original sound wave. The DAC can apply filters to remove any unwanted high-frequency noise generated. Depending on the implementation, the DAC can amplify the analog signal to drive the speaker.
[0152] Figure 5 This describes a method 500 for providing audio streaming. Method 500 can be implemented using systems 100, 200, 300A, and 300B, or any other features discussed in Figures 1 to 3. Method 500 may include actions 502 through 508. At 502, a wireless chip may be configured to identify a media player and a wireless speaker for which a low-latency data pipeline is to be provided. At 504, an access point may be configured (e.g., via a network controller) to establish a constant bit-rate pipeline between the media player and the access point. At 506, the access point may be configured (e.g., via a network controller) to establish a high-priority data pipeline between the access point and the wireless speaker. At 508, the media player's wireless chip may transmit pulse-code modulated audio data to the wireless speaker's wireless chip via the data pipeline.
[0153] At point 502, the wireless chips of the media player and wireless speaker can recognize each other to establish connections and communication, for example, via an access point. The wireless chips can use network discovery protocols (such as mDNS or DLNA) to broadcast their presence and pairing details. The wireless chips can be manually configured with a name or identifier to set up direct pairing. The wireless chips can also embed pre-paired identifiers in their firmware.
[0154] Access points facilitate wireless connectivity between wireless chips. An access point may have a wireless network interface that can transmit and receive radio signals according to protocols such as Wi-Fi and Bluetooth. In some embodiments, the wireless chips of the media player and the speaker may be configured to connect to the access point; this may include manually selecting a network and entering a password or using an automatic configuration protocol such as Wi-Fi Protected Settings (WPS). Once connected, the wireless chips of the media player and the wireless speaker can exchange data through the access point. The access point can receive data packets from the media player and forward them to the wireless speaker.
[0155] In some embodiments, the wireless chip can establish a wireless link from the media player to the wireless speaker, bypassing any other mesh nodes on the access point's network. In some embodiments, the media player (e.g., via the wireless chip) can discover available connections by scanning Wi-Fi networks to detect nearby access points or mesh nodes. Once an available connection is identified, the wireless chip can evaluate several factors, such as signal strength to prioritize connections with stronger signals for better data transmission, distance to select the mesh node or access point closest to the wireless speaker, network congestion to avoid heavily congested mesh nodes for smooth audio streaming, and the likelihood of a direct connection if the wireless speaker supports direct Wi-Fi connectivity and is within range. Based on the chosen method, the wireless chip can establish a standard Wi-Fi connection with the selected mesh node, or, if both devices support Wi-Fi handshake, initiate a direct Wi-Fi handshake with the wireless speaker.
[0156] At 504, the access point can be configured (e.g., via a network controller) to establish a constant bit rate pipeline between the media player and the access point. The media player's wireless chip can transmit uncompressed audio data (e.g., PCM audio data) to the access point via the constant bit rate pipeline. The access point can be configured (e.g., via hardware support or using a protocol) to provide a specific bandwidth to maintain a consistent data rate for the audio data stream. In some embodiments, the access point can use a Resource Reservation Protocol (RSVP) to reserve a minimum amount of bandwidth for audio data streams across the network via RSVP messages. In some embodiments, users or manufacturers can use proprietary protocols to establish a constant bit rate connection for audio streaming.
[0157] At 506, the access point can be configured (e.g., via a delay controller or otherwise) to establish a high-priority data pipeline between the access point and the wireless speaker. The access point can then transmit PCM audio data to the wireless speaker's wireless chip via this high-priority data pipeline. The access point can be configured to have queues for different types of traffic, and can prioritize audio data received from the media player's wireless chip (e.g., via a delay controller) by placing audio data in a high-priority queue, allowing audio data packets to be transmitted before other types of data (e.g., web browsing or downloading). In some embodiments, where the access point supports a Quality of Service (QoS) protocol, the access point can be configured to predefine QoS tags for audio data packets. These predefined QoS tags can indicate the importance of relevant audio data packets and cause the access point to prioritize transmissions accordingly.
[0158] At point 508, the media player's wireless chip can transmit PCM audio data to the wireless speaker via a data pipe. The media player's wireless chip can also transmit audio data packets to the access point via a constant bit rate pipe. The constant bit rate pipe provides a consistent bit rate for stable data transmission. The access point can receive audio data packets from the constant bit rate pipe and can prioritize audio data packets in the high-priority data pipe over other network traffic (e.g., via a delay controller). The access point can forward the prioritized audio packets to the wireless speaker's wireless chip. The wireless speaker's wireless chip can receive the prioritized audio data packets from the access point, extract PCM audio data from the audio data packets, and convert the digital data back into an analog audio signal for playback.
[0159] In some embodiments, the wireless chip may dynamically disable or enable data aggregation. For example, the wireless chip, access point, or server may identify an application as a low-latency application, such as for music streaming or gaming. When a low-latency application is detected, the wireless chip may dynamically disable data aggregation. For example, the wireless chip in a media player may disable packet aggregation to avoid combining multiple audio data packets into a larger chunk before transmitting them. The wireless chip in a wireless speaker may disable packet aggregation to reduce the time required to convert audio data into sound and minimize the latency between receiving and playing audio.
[0160] It should be noted that certain paragraphs of this disclosure may use terms such as "first" and "second" in connection with apparatus, mode of operation, transmission chain, etc., for the purpose of identifying or distinguishing one another or others. These terms are not intended to relate entities (e.g., first apparatus and second apparatus) solely in time or according to sequence, although in some cases such relationships may exist. These terms also do not limit the number of possible entities (e.g., apparatuses) that can operate within a system or environment. The term coupling or connection includes both indirect and direct coupling and connection.
[0161] While this disclosure has been described with respect to specific embodiments, those skilled in the art will recognize that many modifications are possible. For example, although specific examples of rules (including triggering conditions and / or result actions) and processes for generating recommendations are described, other rules and processes may also be implemented. Embodiments of this disclosure may be implemented using various computer systems and communication technologies, including, but not limited to, the specific examples described herein.
[0162] The embodiments of this disclosure can be implemented using any combination of dedicated components and / or programmable processors and / or other programmable devices. The various processes described herein can be implemented on the same processor or different processors in any combination. Where a component is described as being configured to perform certain operations, such configuration can be implemented, for example, by designing electronic circuitry to perform operations, by programming programmable electronic circuitry (e.g., a microprocessor) to perform operations, or any combination thereof. Furthermore, while the embodiments described above may refer to specific hardware and software components, those skilled in the art will understand that different combinations of hardware and / or software components may also be used, and specific operations described as being implemented in hardware may also be implemented in software, or vice versa.
[0163] Computer programs incorporating the various features of this disclosure may be encoded and stored on a variety of computer-readable storage media; suitable media include magnetic disks or magnetic tapes, optical storage media (e.g., optical discs (CDs) or DVDs (Digital Versatile Discs)), flash memory, and other non-transitory media. Computer-readable media encoded with program code may be packaged with a compatible electronic device, or the program code may be provided separately from the electronic device (e.g., downloaded via the Internet or as a separately packaged computer-readable storage media).
[0164] Therefore, although this disclosure has been described with respect to specific embodiments, it will be understood that this disclosure is intended to cover all modifications and equivalents within the scope of the appended claims.
[0165] It should be understood that the disclosed embodiments do not represent all claimed innovations. Therefore, certain aspects of this disclosure have not yet been discussed herein. Alternative embodiments may not have been proposed for specific parts of the innovation, or further undescribed alternative embodiments may be available for a portion, and this should not be construed as a disclaimer regarding these alternative embodiments. Therefore, it should be understood that other embodiments can be utilized, and functional, logical, operational, organizational, structural, and / or topological modifications can be made without departing from the scope of this disclosure. Thus, throughout this disclosure, all instances and / or embodiments are considered non-limiting.
[0166] Some embodiments described herein relate to methods. It should be understood that such methods can be computer-implemented methods (e.g., instructions stored in memory and executed on a processor). Where the methods described above instruct certain events to occur in a specific order, the order of certain events can be modified. Furthermore, certain events can be performed repeatedly, in parallel where possible, and sequentially as described above. Additionally, in some embodiments, one or more of the described events may be omitted.
[0167] Some embodiments described herein relate to a computer storage product having a non-transitory computer-readable medium (also referred to as a non-transitory processor-readable medium) having instructions or computer code thereon for performing various computer-implemented operations. Computer-readable media (or processor-readable media) are non-transitory because they do not inherently contain transient propagation signals (e.g., propagating electromagnetic waves carrying information in a transmission medium such as space or cable). The media and computer code (also referred to as code) can be those media and computer code designed and constructed for a particular purpose. Examples of non-transitory computer-readable media include, but are not limited to, magnetic storage media such as hard disks, floppy disks, and magnetic tapes; optical storage media such as optical discs / digital video discs (CD / DVD), optical disc read-only memories (CD-ROMs), and holographic devices; magneto-optical storage media such as optical discs; carrier signal processing modules; and hardware devices specifically configured to store and execute program code, such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), read-only memories (ROMs), and random access memories (RAMs). Other embodiments described herein relate to computer program products that may include, for example, instructions and / or computer code discussed herein.
[0168] Some of the embodiments and / or methods described herein can be implemented by software (executing on hardware), hardware, or a combination thereof. Hardware modules may include, for example, general-purpose processors, field-programmable gate arrays (FPGAs), and / or application-specific integrated circuits (ASICs). Software modules (executing on hardware) can be expressed in various software languages (e.g., computer code), including C, C++, Java, etc. TM Ruby, Visual Basic TM and / or other object-oriented, procedural, or other programming languages and development tools. Examples of computer code include, but are not limited to, microcode or microinstructions, such as machine instructions generated by a compiler, code for generating web page services, and files containing high-level instructions executed by a computer using an interpreter. For example, embodiments may be implemented using Python, Java, JavaScript, C++, and / or other programming languages and software development tools. For example, embodiments may be implemented using imperative programming languages (e.g., C, Fortran, etc.), functional programming languages (Haskell, Erlang, etc.), logic programming languages (e.g., Prolog), object-oriented programming languages (e.g., Java, C++, etc.), or other suitable programming languages and / or development tools. Additional examples of computer code include, but are not limited to, control signals, encrypted code, and compressed code.
[0169] The accompanying drawings are for illustrative purposes only and are not intended to limit the scope of the subject matter described herein. The drawings are not necessarily drawn to scale; in some instances, various aspects of the subject matter disclosed herein may be exaggerated or enlarged in the drawings to facilitate understanding of the different features. In the drawings, similar reference characters generally refer to similar features (e.g., elements with similar functions and / or structures).
[0170] Actions performed as part of the disclosed method can be ordered in any suitable manner. Therefore, embodiments in which processes or steps are performed in an order different from the illustrated order can be constructed, which may include the simultaneous execution of some steps or processes, even if shown as sequential actions in the illustrative embodiments. In other words, it should be understood that such features are not necessarily limited to a particular execution order, but can be performed serially, asynchronously, concurrently, in parallel, simultaneously, synchronously, and / or similarly in a manner consistent with this disclosure. Consequently, some of these features may be contradictory, as they cannot coexist in a single embodiment. Similarly, some features may be applicable to one aspect of the innovation but not to others.
[0171] Where a range of values is provided, it should be understood that, unless the context explicitly indicates otherwise, every midpoint value between the upper and lower limits of the range and one-tenth of the unit to the lower limit, as well as any other stated or midpoint value within the range, is included in this disclosure. The upper and lower limits of these smaller ranges may be independently included within the smaller ranges, but are subject to any expressly excluded limitations within the ranges. Where the range includes one or both of the limitations, the range excluding one or both of the included limitations is also included in this disclosure.
[0172] The phrase “and / or” as used herein in the specification and embodiments should be understood to mean “any or both” of the elements so combined, that is, elements that exist together in some cases and separately in others. Multiple elements listed with “and / or” should be interpreted in the same way, that is, “one or more” of the elements so connected. In addition to the elements explicitly identified by the “and / or” clause, other elements may optionally be present, whether related to or unrelated to those explicitly identified. Thus, as a non-limiting example, in one embodiment, when used in conjunction with open-ended language (e.g., “including”), a reference to “A and / or B” may refer to only A (optionally including elements other than B); in another embodiment, only B (optionally including elements other than A); in yet another embodiment, both A and B (optionally including other elements); and so on.
[0173] As used herein in the specification and in the embodiments, “or” should be understood to have the same meaning as “and / or” as defined above. For example, when separating items in a list, “or” or “and / or” should be interpreted as inclusive, i.e., including at least one, but also including several elements or more than one element in a list of elements, as well as optional additional unlisted items. Only terms that explicitly indicate the opposite, such as “only one” or “exactly one”, or, when used in the embodiments, “consisting of…”, will refer to including several elements or exactly one element in a list of elements. In general, the word “or” as used herein should only be interpreted as indicating an exclusive alternative (i.e., “one or the other, but not both”), provided that it is preceded by an exclusive term, such as “either one,” “one,” “only one,” or “exactly one.” When used in the embodiments, “consisting substantially of…” should have its ordinary meaning as used in the field of patent law.
[0174] As used herein in the specification and in the embodiments, referring to a list of one or more elements, the phrase "at least one" should be understood to mean at least one element selected from any or more elements in the list of elements, but does not necessarily include every and at least one of each element expressly listed in the list of elements, and does not exclude any combination of elements in the list of elements. This definition also allows for the optional presence of other elements in addition to those expressly identified in the list of elements referred to by the phrase "at least one," whether or not these elements are related to those expressly identified elements. Therefore, as a non-limiting example, in one embodiment, “at least one of A and B” (or equivalently, “at least one of A or B”, or equivalently, “at least one of A and / or B”) may refer to at least one, optionally including multiple A’s, while B is absent (and optionally including elements other than B); in another embodiment, at least one, optionally including more than one B, while A is absent (and optionally including elements other than A); in yet another embodiment, at least one (optionally including more than one A) and at least one (optionally including more than one B) (and optionally including other elements); etc.
[0175] In the embodiments and in the foregoing description, all transitional phrases, such as “comprising,” “including,” “carrying,” “having,” “containing,” “involving,” “holding,” “consisting of,” etc., should be understood as open-ended, that is, meaning including but not limited to. As described in Section 2111.03 of the U.S. Patent Examination Process Manual, only the transitional phrases “consisting of” and “substantially consisting of” should be closed or semi-closed transitional phrases, respectively.
Claims
1. A method comprising: A buffer channel is established between the first wireless chip of the media player and the second wireless chip of the wireless speaker using the inter-IC audio I2S protocol, and the wireless speaker communicates wirelessly with the media player. The receiver of the first wireless chip in the media player receives samples of audio data; and The first wireless chip uses the buffer pipe to transmit the audio data to the second wireless chip to bypass the transport layer stack of the media player and the wireless speaker, and the transmitter of the second wireless chip directly provides the audio data to the digital audio converter for output to the speaker of the wireless speaker.
2. The method of claim 1, further comprising transmitting pulse code modulation (PCM) audio data from the first wireless chip to the second wireless chip via the inter-IC audio I2S protocol.
3. The method of claim 1, further comprising transmitting the audio data from the first wireless chip to the second wireless chip via the Machine Access Control (MAC) layer of the network stack.
4. The method of claim 1, further comprising transmitting the audio data from the first wireless chip to a buffered copy of the audio data from a first buffer of the first wireless chip to a second buffer of the second wireless chip.
5. The method of claim 1, wherein the wireless speaker communicates with the media player via an access point.
6. The method of claim 1, wherein the media player comprises at least one of a set-top box, a television, a home theater system, or an over-the-top OTT device.
7. The method of claim 1, further comprising receiving samples of audio data from the output of the audio processor of the media player by the receiver, wherein the receiver includes an I2S receiver.
8. The method of claim 1, further comprising receiving the audio data from a buffer of the second wireless chip by the transmitter, wherein the transmitter includes an I2S transmitter.
9. A system comprising: The media player's first wireless chip communicates wirelessly with the wireless speaker's second wireless chip. The first wireless chip and the second wireless chip are configured to establish a buffer channel using the Inter-IC Voice I2S protocol to transmit audio data. The I2S receiver of the first wireless chip in the media player is configured to receive samples of audio data. and The audio data is transmitted to the second wireless chip using the buffered pipe to bypass the transport layer stack of the media player and the wireless speaker; and The I2S transmitter of the second wireless chip directly provides the audio data to the digital audio converter for output to the speaker of the wireless speaker.
10. The system of claim 9, wherein the I2S receiver is further configured to transmit pulse code modulation (PCM) audio data from the first wireless chip to the second wireless chip via the inter-IC voice I2S protocol.
11. The system of claim 9, wherein the first wireless chip is further configured to transmit the audio data to the second wireless chip via the machine access control (MAC) layer of the network stack.
12. The system of claim 9, wherein the first wireless chip is further configured to transmit the audio data to the second wireless chip via a buffer copy of the audio data from a first buffer of the first wireless chip to a second buffer of the second wireless chip.
13. The system of claim 9, wherein the media player comprises at least one of a set-top box, a television, a home theater system, or an over-the-top OTT device.
14. The system of claim 9, wherein the I2S receiver is further configured to receive the sample of audio data from the output of the audio processor of the media player.
15. A method comprising: Identify a media player and a wireless speaker, and provide a low-latency data pipeline for the media player and the wireless speaker through an access point, wherein the access point provides a wireless connection between the media player and the wireless speaker; A constant bit rate pipeline is established between the media player and the access point; Establish a high-priority data pipeline between the access point and the wireless speaker; and Pulse Code Modulation (PCM) audio data is transmitted from the media player to the access point via the constant bit rate pipeline and then to the wireless speaker via the high priority data pipeline.
16. The method of claim 15, further comprising disabling data aggregation via at least one of the media player, the access point, or the wireless speaker.
17. The method of claim 15, further comprising establishing a wireless link from the media player to the wireless speaker, thereby bypassing any other mesh nodes on the network of the access point.
18. The method of claim 15, wherein the access point maintains a high-priority queue for audio data from the media player to be transmitted to the wireless speaker via the high-priority data pipeline.
19. The method of claim 15, further comprising conveying uncompressed audio data.
20. The method of claim 15, wherein the media player comprises at least one of a set-top box, a television, a home theater system, or an over-the-top OTT device.