WO2022132138A1 - Smart bandwidth allocation in multi-device environments - Google Patents

Smart bandwidth allocation in multi-device environments Download PDF

Info

Publication number
WO2022132138A1
WO2022132138A1 PCT/US2020/065182 US2020065182W WO2022132138A1 WO 2022132138 A1 WO2022132138 A1 WO 2022132138A1 US 2020065182 W US2020065182 W US 2020065182W WO 2022132138 A1 WO2022132138 A1 WO 2022132138A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
bandwidth
mind
current
application
Prior art date
Application number
PCT/US2020/065182
Other languages
French (fr)
Inventor
Phillip SORRELLS
David Walter ASH
Yanjun Ma
Vlad Grigore DABIJA
Original Assignee
Funai Electric Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Funai Electric Co., Ltd. filed Critical Funai Electric Co., Ltd.
Priority to PCT/US2020/065182 priority Critical patent/WO2022132138A1/en
Publication of WO2022132138A1 publication Critical patent/WO2022132138A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4131Peripherals receiving signals from specially adapted client devices home appliance, e.g. lighting, air conditioning system, metering devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44218Detecting physical presence or behaviour of the user, e.g. using sensors to detect if the user is leaving the room or changes his face expression during a TV program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations

Definitions

  • the present disclosure generally describes techniques for dynamic bandwidth allocation in a multi-device environment based on device, application, and user characteristics and user state of mind.
  • a system for management of bandwidth allocation in a multi-device environment may include a hub device communicatively coupled to a plurality of networked devices at a location.
  • the hub device may be configured to determine available total bandwidth from one or more connectivity resources; receive device, application, user bandwidth demand profiles, demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
  • the system may also include a first server communicatively coupled to the hub device, the first server configured to generate, store, and update a plurality of device, application, user bandwidth demand profiles, and demand priorities; and a second server communicatively coupled to the hub device, the second server configured to generate, store, and update a plurality of standard user state of mind models.
  • a hub device for management of bandwidth allocation in a multi-device environment may include a communication module configured to facilitate communications with a plurality of networked devices and one or more computing devices over one or more networks; a memory configured to store instructions; and a processor coupled to the communication module and the memory.
  • the processor in conjunction with the instructions stored in the memory, may be configured to determine available total bandwidth from the one or more networks; receive device, application, user bandwidth demand profiles, and demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
  • a method for management of bandwidth allocation in a multi-device environment may include determining available total bandwidth from one or more connectivity resources; receiving device, application, user bandwidth demand profiles, and demand priorities; determining a current user state of mind for a user; determining a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocating portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
  • FIG. 1 includes an architectural illustration of a home, where dynamic bandwidth allocation in a multi-device environment may be implemented
  • FIG. 2 includes a conceptual illustration of example networked devices and a smart hub device managing dynamic bandwidth allocation for the networked devices;
  • FIG. 3 A illustrates major components of an example system for dynamic bandwidth allocation in a multi-device environment and their actions
  • FIG. 3B illustrates an example flow of actions for generating a user state of mind database
  • FIG. 3C illustrates an example flow of actions in user state of mind determination and bandwidth allocation through machine learning
  • FIG. 4 illustrates a computing device, which may be used to manage dynamic bandwidth allocation in a multi-device environment
  • FIG. 5 is a flow diagram illustrating an example method for dynamic bandwidth allocation in a multi-device environment that may be performed by a computing device such as the computing device in FIG. 4;
  • FIG. 6 illustrates a block diagram of an example computer program product, all of which are arranged in accordance with at least some embodiments described herein.
  • This disclosure is generally drawn, inter alia, to methods, apparatus, systems, devices, and/or computer program products related to dynamic bandwidth allocation in a multidevice environment based on device, application, and user characteristics and user state of mind.
  • a hub device may determine available total bandwidth from one or more connectivity resources such as metered or unmetered, wired or wireless networks. Receiving or generating device, application, and user bandwidth demand profiles, the hub device may also determine a current user state of mind for a user. When a current bandwidth demand exceeds the available total bandwidth, the hub device may dynamically allocate portions of the available total bandwidth to demanding devices, applications, or users based on the current user state of mind and the profiles, which may be based on device, application, and user characteristics such as priority, connection flexibility, or bandwidth flexibility for each device, application, and user.
  • FIG. 1 includes an architectural illustration of a home, where dynamic bandwidth allocation in a multi-device environment may be implemented, arranged in accordance with at least some embodiments described herein.
  • Diagram 100 shows a home 102, which may include a bedroom 104, a living room 110, a study 106 and a kitchen 108. Each room in the home has example furniture such as bed, chair, couch, table, piano, etc.
  • a number of loT devices 132 are distributed around in house in various rooms. The loT devices 132 may perform various functionalities and communicate with other devices over one or more networks. Additional networked devices consuming network bandwidth in the home 102 include television 136, laptop 134, desktop computer 138, among others.
  • Networked devices at the home 102 may be connected to a variety of networks such as wired network 160 through a modem 162, wireless area network 150 (e.g., a city network, a wide area network) through an access point 152, and a cellular network 140 (e.g., a 5G network) through a base station 142.
  • a hub device 130 may manage dynamic allocation of available bandwidth from all networks to the networked devices.
  • the hub device 130 may provide connectivity to respective networks for some of the networked devices. In other examples, the hub device may not be in direct connection between a networked device and the respective network but receive information about consumed bandwidth from the respective network by the network device.
  • Networked devices may include any computing device and any electronic device equipped with wired or wireless networking capability such as Internet of Things (loT) devices.
  • loT devices may perform a variety of functions. Examples may include, but are not limited to, environmental controls, environmental sensors, security devices (e.g., cameras, microphones, motion sensors, etc.), smart appliances, toys, mechanical controls / sensors, healthcare monitors, elderly monitors (e.g., fall sensors), etc.
  • Each loT device may receive instructions and/or transmit data associated with their functionality.
  • the loT devices may communicate with a number of other devices such as a manufacturer’s server, a service provider’s server, a user device, etc.
  • the hub device 130 may determine available bandwidth from the wired network 160, the wireless area network 150, and/or the cellular network 140, and dynamically allocate portions of the available total bandwidth to the plurality of devices, applications by allocating a connection timing, a bandwidth, and/or a network type to each device, application, or user. In determining the allocations, the hub device 130 may take into account device, application, user bandwidth demand profiles, which may be based on characteristic, priority, connection flexibility, demand priority, and/or bandwidth flexibility of each device, application and user. To perform bandwidth allocation, the hub device may also take into account a user’s state of mind.
  • characteristics of the user such as a feature expression, a microexpression, a gesture, a large body movement, a speech usage, a speech pattern (e.g., slower or faster speech, slurring, etc.), an emotion, a device interaction, and/or a body characteristic associated with the user may be captured.
  • the captured characteristics of the user may be analyzed to update a standard user state of mind model, and the current user state of mind for the user may be determined in relation to a current bandwidth demand by the user based on the updated standard user state of mind model.
  • the captured characteristics of the user may also be weighted based on one or more environmental factors.
  • machine learning may be used to learn and continuously refine a model (of priorities, etc.), which may then be used to perform bandwidth allocation.
  • machine learning may also be used to learn and adjust state of mind model(s).
  • a state of mind model may define how detectable characteristics such as those described above can be used to infer a state of mind for a user. As an illustrative example, decreasing body movements, yawning, and less frequent eyelid movements may result in the inference of boredom.
  • the state of mind model may output a set of predefined states (e.g., bored, excited, happy, sad, angry, etc.) or a numerical score, where certain values may indicate different states.
  • a standard state of mind model may define rules for a broad (or select) population of people, which may then be customized and adjusted for a particular individual based on detected characteristics to arrive at a specific state of mind model for that individual.
  • state of mind may be defined as a score (o a set of scores), a table, or a map showing the state of mind with the score defining the relationship between the score and the state of mind, respectively. Then, the optimization of the bandwidth may be performed based on pre-defined or ML-processed parameters substantially.
  • bandwidth allocation in addition to state of mind, device or application type (e.g., an loT controlling a smart light bulb may be assigned lower priority in bandwidth allocation compared to a smart phone).
  • User bandwidth demand profile may also be used to assign priority to each user based on multiple characteristics associated with each user such as those described above. Connection flexibility may allow the hub device to assign or change network connections for particular devices or applications. For example, a device or application may be switched from cellular network to a WiFi network to accommodate another device needing higher bandwidth on the cellular network. Bandwidth flexibility may indicate whether a device or application can handle reduced bandwidth (temporarily) or different connection times (e.g., connecting to the network at lower demand hours).
  • the hub device 130 may be implemented as a separate device communicatively coupled to a router or customer premises equipment (CPE), as part of the router or CPE, or even as a special purpose device or server within one of the networks.
  • CPE customer premises equipment
  • the home 102 in diagram 100 is an illustrative example for a location, where embodiments may be implemented, but is not intended to limit embodiments.
  • Other locations may include, but are not limited to, an office, a school, a health care facility, a hotel, a factory, or comparable buildings, as well as, a vehicle such as an automobile, a bus, a recreational vehicle, an airplane, a ship, and similar ones.
  • FIG. 2 includes a conceptual illustration of example networked devices and a smart hub device managing dynamic bandwidth allocation for the networked devices, arranged in accordance with at least some embodiments described herein.
  • Diagram 200 shows example networked devices such as loT devices 202, computing devices 204, and other devices 206 interacting with example networks such as metered wireless network 212, unmetered wireless network 214, and wired network 216.
  • a smart hub (hub device 210) may communicatively couple to active devices and networks, and manage dynamic allocation of bandwidth as described herein.
  • a wired network 216 such as a digital subscriber line (DSL) network, an optical network, or a cable network may provide highest data speeds, but may be costly or have bandwidth restrictions such as throttling of network speeds at certain thresholds.
  • Wireless unmetered networks 214 such as city LAN, WAN, etc. may provide cost-effective connectivity, but may have bandwidth and/or speed limitations in addition to signal strength challenges at certain locations.
  • Examples of a metered network may include any of the wired or wireless types, but also cellular networks. While older cellular networks had bandwidth and speed limitations, newer technologies such as 5G provide bandwidth and speeds comparable to wired networks. Metered networks may restrict connectivity by a fee schedule or bandwidth restrictions at certain thresholds.
  • Other network examples may include, but are not limited to, satellite communication links, microwave links, etc.
  • 5G networks are digital cellular networks, in which the service area is divided into small geographical areas called cells. All 5G wireless devices in a cell exchange digital data with the Internet and the telephone network by radio waves through a local antenna in the cell. 5G networks provide greater bandwidth compared to previous standards allowing higher download speeds more than 10 gigabits per second (Gbit/s). This, in turn, allows cellular service providers to become Internet service providers interconnecting most user devices.
  • Gbit/s gigabits per second
  • 5G protocol replaces a number of the hardware components of the cellular network with software that “virtualizes” the network by using the common language of Internet Protocol (IP).
  • IP Internet Protocol
  • Low band 5G uses a similar frequency range to current 4G network in the 600-700 MHz range supporting download speeds a little higher than 4G (30-250 megabits per second).
  • Mid band 5G uses microwaves in the range of 2.5- 3.7 GHz allowing speeds of 100-900 Mbit/s with each cell tower providing service up to several miles in radius.
  • High band 5G uses frequencies in the range of 25-39 GHz, near the millimeter wave band, although higher frequencies may be used in the future. The high band may achieve download speeds of a gigabit per second comparable to cable Internet.
  • the hub device 210 may take a number of factors such as device, application, user characteristics and user state of mind in allocating bandwidth to different devices, applications, and users over respective networks. In determining user state of mind, as well as, allocating bandwidth, hub device 210 may employ artificial intelligence or machine learning techniques.
  • Artificial Intelligence (Al) algorithms control any device that perceives its environment and takes actions that maximize its chance of successfully achieving predefined goals such as determining user state of mind from captured user characteristics and standard state of mind models, etc.
  • a subset of Al, machine learning (ML) algorithms build a mathematical model based on sample data (training data) in order to make predictions or decisions without being explicitly programmed to do so.
  • ML machine learning
  • an Al planning algorithm or a specific ML algorithm may be employed to determine user state of mind and allocation of available bandwidth to devices, applications, and users.
  • the system may also allow ML (training) data to be uploaded to a network so that other systems can benefit from their data.
  • the ML algorithm may facilitate both supervised and unsupervised learning.
  • a home may be equipped with a number of loT devices using a cable network and a cellular network (5G) for connectivity.
  • a parent may be watching a streamed movie on a handheld device through the cellular network while another parent may be chatting online through the wired network.
  • One or more children may be taking online lessons or gaming through their respective devices using the wired or cellular networks.
  • a hub device at the home may determine connectivity (bandwidth) needs of each device along with their flexibility. For example, some loT devices may be scheduled to transmit and receive their data at night hours when the bandwidth demand is low. Other loT devices may be instructed to reduce their exchanged data amount or user alternative networks (e.g., wired network instead of cellular).
  • the hub device may also assign (and/or receive from a user or administrator) priorities for different users, devices, and applications. For example, gaming applications may be assigned lower priority compared to school communication applications. Similarly, parents may be given higher priority than children, but this prioritization may be weighted based on particular activities (or applications). For example, a parent watching a movie may have their priority lowered compared to a child attending an online class.
  • the hub device may store or receive static models for prioritization and other factors in allocation of bandwidth. The hub device may then adjust those models according to current usage (active devices, applications, users).
  • the hub device may also take user state of mind into account.
  • Various user characteristics such as gestures, facial features, facial microexpressions, speech characteristics, body characteristics, etc. may be captured by different sensors and devices and analyzed to update standard models arriving at a current state of mind. Even if users are involved in activities that require them to maintain some composure (like a video call or performance) their microexpressions may provide valuable clues as to their state of mind. For example, eyelid movements, eye movements, body posture of a person watching a movie may indicate the person is bored and may even be ready to nap. Detecting that state, the hub device may lower an assigned bandwidth to that user or application if there is a need for bandwidth by other devices, applications.
  • the lowered bandwidth may cause some degradation of the presented movie, but in the detected state of mind, the user may not care about the degradation.
  • the user’s state of mind e.g., excitement or boredom
  • the hub device may plan on switching from the movie streaming application to a communication application with respective bandwidth and network.
  • FIG. 3 A illustrates major components of an example system for dynamic bandwidth allocation in a multi-device environment and their actions, arranged in accordance with at least some embodiments described herein.
  • Diagram 300 shows major actions by different components of a system according to embodiments.
  • device and/or application characteristics 302, user / administrator input 304, user characteristics 310 such as priority 312, status 314, and state of mind 316 may be inputs to bandwidth management 306 along with available bandwidths 306.
  • Bandwidth management 320, performed by a hub device, for example, may include analysis of device, application, user profiles 322 for optimization 324 and allocation 326, which may be a dynamic and/or iterative process performed by a machine learning or Al algorithm.
  • the allocation results may be provided to networked devices 330 for their connectivity.
  • Device and/or application characteristics 302 may include, among other things, bandwidth demand, bandwidth or connection flexibility (if some or all demand can be shifted to different times or networks), priority (e.g., medical monitoring devices may have highest priority), preferred or required network type, etc.
  • User or administrator input 304 may be provided by a user or an administrator of the system through a remote device or through a user interface at the hub device to define or modify device, application, user characteristics such as priorities.
  • User priority 312 may be based on age, hierarchical status (e.g., parent/child, supervisor/supervisee, etc.), medical condition (healthy, ill, specific conditions, etc.), and similar factors).
  • User status 314 may include factors such as whether a user is part of a household / office or a visitor, whether a user is engaged in a work activity or an entertainment activity, and comparable ones.
  • a smart hub may enable a more effective home or office environment by becoming the connectivity master control for the entire home bandwidth consumption.
  • the smart hub may control or be aware of connections of all networked devices that consume bandwidth at a particular location.
  • the hub may consolidate available bandwidth and manage bandwidth consumption for the location based on user defined priorities combined with algorithms that monitor, measure, and learn actual usage patterns.
  • the smart hub may continuously perform intelligent bandwidth capacity allocation based on the priorities learnt by the model(s) and explicit and/or implicit feedback from users’ device performance, to optimize the overall user experience.
  • Machine learning may provide the smart hub the capability to learn priorities to optimize time of day trends for utilization and synchronize with other sources of information regarding bandwidth usage needs (e.g., user calendars).
  • the allocation of bandwidth may then follow predefined priorities while using machine learning to drive optimization protocols.
  • the predefined priorities may include bandwidth allocation priorities initially assigned to different devices, applications, and users (e.g., by a user or an administrator). Additionally, the smart hub may monitor bandwidth data caps from various network service providers and adjust available speeds to the prioritized users, devices, and applications.
  • a hub device may act as a bandwidth consolidation router.
  • This router may connect the incoming bandwidth to a home, office, or similar location from all available sources.
  • Such a device may consolidate metered bandwidth capacity (e.g., LTE or 5G cellular networks) with unmetered wireless or wired bandwidth capacity (e.g., cable network).
  • the router may be part of the hub device or coupled to the hub device through wired or wireless connection and either control or be aware of network connectivity of the networked devices at the location.
  • Another feature of the smart hub router may include the ability to detect and authenticate the sources of available bandwidth.
  • the bandwidth management may include following functions.
  • the smart hub may consolidate available bandwidth from all sources. This may include detection of all sources and authentication of sources via a database of approved resources.
  • the registration database may compile appropriate resource identifications and passwords to use the bandwidth resource.
  • the database may also capture the available bandwidth and the cost of bandwidth consumption. This data may be used for optimization of bandwidth resource allocation and/or maximization of overall user satisfaction.
  • the smart hub may also consolidate approved users of available resources.
  • the smart hub may register each device at the location that can draw bandwidth from the resources.
  • the smart hub may include or access a detailed registry of each device / application and include an option for the administrator to set user priorities. For example, a homeowner that works from home may set their home computer as the highest priority for bandwidth allocation during their working hours.
  • the smart hub may use an optimization algorithm that continually monitors the registration database and approved users of available resources and make allocation decisions.
  • the allocation decision protocols may be established by the administrator based on priority of each user, by cost of the resources, by utilization trends determined by machine learning, or by a combination thereof.
  • the smart hub may work to ensure that capacity allocation is directed towards the most critical applications: e.g., during critical working periods vs. entertainment periods, homework vs. gaming, etc.
  • the system may build a model of bandwidth utilization for the entire home at each time of the day/week/month, starting from an initial static user-defined model and then improving the model dynamically on an ongoing basis using machine learning technology that monitors usage and user satisfaction and adjusts the model based on these parameters.
  • the smart hub may allow the user to establish priority assignments for each device, application, and user at different times of the day/week/month.
  • the definition of the initial static usage model may begin with defining a model to describe at which times different types of access take place and prioritizing by the criteria deemed important - for example, work related access may get high priority, then homework, then different types of entertainment depending on who it serves (e.g., movie streaming for a group of people may be higher than games played by individual children, or vice versa).
  • the use of augmented reality (AR) glasses for home office may require prioritized bandwidth when AR glasses are worn and used for videoconferencing or collaboration workload (as opposed to for gaming).
  • the model may then be continuously refined by learning home-specific bandwidth usage models using supervised and unsupervised machine learning techniques to optimize network capacity allocation over time.
  • the system may start learning from user feedback which may be explicit (the user clicks a certain button or requests by voice better connectivity performance explicitly) or implicit (e.g., a user tries to access a certain type of device or bandwidth repeatedly, or makes comments regarding poor connectivity like “the image froze” or “there is a lag in the video feed”, etc.). These priorities may also vary by the time or day, by the user’s status within the household, etc.
  • each of the example components may be executed at a separate server (or special purpose machine), some components may be executed at the same server, or all components may be executed at the same server.
  • the components may also be executed in a distributed manner at the cloud. Additionally, some of the operations discussed above may be combined at the same component or a single operation may be performed by more than one component.
  • Embodiments may provide many benefits over existing technologies such as maximization of the overall bandwidth for home or office network users by employing Al to continuously learn and adapt to allocation of capacity per user/device/application according to dynamic usage priorities, from all available bandwidth sources (e.g., Wi-Fi, LTE, 5G, etc.).
  • Bandwidth management is a complex technology issue which is mostly addressed for enterprises and network service providers that can afford active management by dedicated, qualified system/network administrators.
  • example embodiments approach the bandwidth management from the perspective of a home or office with limited technical capabilities and resources, but with increasingly complex needs. Building network usage models from both the user and the network perspective using ML (multiple learning techniques) and Al (speech and image processing and understanding) brings the affordability to home or office users.
  • FIG. 3B illustrates an example flow of actions for generating a user state of mind database, arranged in accordance with at least some embodiments described herein.
  • a dynamic bandwidth allocation system takes into account a current user state of mind as described herein.
  • Diagram 300B shows how a standard user state of mind database (or model) may be generated and/or updated to determine a current state of mind.
  • Sensors or devices such as camera 344, microphone 346, and other sensors 348 (e.g., thermometer, blood pressure monitor, eye tracker, keyboard tracker, etc.) may capture various reactions of a user 342 by recording a video 350, recording a speech 352, or recording other reactions / interactions 354.
  • camera 344 may capture feature (facial) expressions, microexpressions, gestures, and body movements (large, small) or posture (356).
  • Microphone 346 may capture onomatopoetic expressions (noises or sounds resembling the thing they describe), words, patterns, or even emotions (excitement, boredom in speech tone) (358).
  • Other sensors 348 may capture body characteristics such as heart rate, temperature, blood pressure level, sleepiness, etc., as well as, interactive reactions such as keystrokes, patterns of access to certain devices or applications, etc. (360).
  • the system may begin with a standard user state of mind database 314 and customize / update based on available (captured) user reactions to create a learned model for a particular user.
  • the model may then be further refined based on user’s activity and/or current environment (e.g., playing a computer game and winning or losing, in an online communication and receiving good news or bad news, etc.).
  • the environmental factors such as interactions with other people, the location’s temperature, humidity, etc., noise level, and similar factors may also contribute to the inferred state of mind of the user.
  • external causes of state of mind such as noisy environment, other people’s interactions, etc.
  • Machine learning may be used at some or all of the above discussed processes to improve over time the recognition and prediction models for each task described above.
  • FIG. 3C illustrates an example flow of actions in user state of mind determination and bandwidth allocation through machine learning, arranged in accordance with at least some embodiments described herein.
  • an example process may begin with standard state of mind datasets 370, which may include average user state of mind data as discussed previously and be used to categorize data for actual users (at the location) as closely as possible building an initial user data / model database 372.
  • the model(s) may be improved by supervised learning 374. For example, if a majority of captured user features show a happy state of mind, an assumption may be made that the user is happy and the model adjusted so that other features also indicate the user is happy. Facial expressions, microexpressions, tone of voice, and similar features, when available, may be used as definitive indicator of state of mind 378.
  • unsupervised learning 376 may be used to classify user data / model(s) into buckets 380. Either the inferred state of mind or the buckets may be used to strategize bandwidth allocation 382.
  • the bandwidth allocation strategy 382 may also be further improved by supervised learning (384). For example, state of mind of a group (or all) of the people at the location (e.g., home) may be determined upon implementation of the bandwidth allocation and the allocation adjusted accordingly based on the broader state of mind inference.
  • FIG. 4 illustrates a computing device, which may be used to manage dynamic bandwidth allocation in a multi-device environment, arranged in accordance with at least some embodiments described herein.
  • the computing device 400 may include one or more processors 404 and a system memory 406.
  • a memory bus 408 may be used to communicate between the processor 404 and the system memory 406.
  • the basic configuration 402 is illustrated in FIG. 4 by those components within the inner dashed line.
  • the processor 404 may be of any type, including but not limited to a microprocessor (pP), a microcontroller (pC), a digital signal processor (DSP), or any combination thereof.
  • the processor 404 may include one or more levels of caching, such as a cache memory 412, a processor core 414, and registers 416.
  • the example processor core 414 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP core), or any combination thereof.
  • An example memory controller 418 may also be used with the processor 404, or in some implementations, the memory controller 418 may be an internal part of the processor 404.
  • the system memory 406 may be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof.
  • the system memory 406 may include an operating system 420, a bandwidth management application 422, and program data 424.
  • the bandwidth management application 422 may include a communication module 426 and an analysis module 427.
  • the bandwidth management application 422 may be configured to determine available total bandwidth from one or more connectivity resources such as metered or unmetered, wired or wireless networks.
  • the bandwidth management application 422 may also receive or generate device, application, and user bandwidth demand profiles, and determine a current user state of mind for a user.
  • the bandwidth management application 422 may then dynamically allocate portions of the available total bandwidth to demanding devices, applications, or users based on the current user state of mind and the profiles, which may be based on device, application, and user characteristics such as priority, connection flexibility, or bandwidth flexibility for each device, application, and user.
  • the program data 424 may include device data 428 and bandwidth data (available bandwidth types, etc.), among other data, as described herein.
  • the computing device 400 may have additional features or functionality, and additional interfaces to facilitate communications between the basic configuration 402 and any desired devices and interfaces.
  • a bus/interface controller 430 may be used to facilitate communications between the basic configuration 402 and one or more data storage devices 432 via a storage interface bus 434.
  • the data storage devices 432 may be one or more removable storage devices 436, one or more non-removable storage devices 438, or a combination thereof.
  • Examples of the removable storage and the non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDDs), optical disk drives such as compact disc (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSDs), and tape drives to name a few.
  • Example computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.
  • the system memory 406, the removable storage devices 436 and the non- removable storage devices 438 are examples of computer storage media.
  • Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD- ROM, digital versatile disks (DVDs), solid state drives (SSDs), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by the computing device 400. Any such computer storage media may be part of the computing device 400.
  • the computing device 400 may also include an interface bus 440 for facilitating communication from various interface devices (e.g., one or more output devices 442, one or more peripheral interfaces 450, and one or more communication devices 460) to the basic configuration 402 via the bus/interface controller 430.
  • interface devices e.g., one or more output devices 442, one or more peripheral interfaces 450, and one or more communication devices 460
  • Some of the example output devices 442 include a graphics processing unit 444 and an audio processing unit 446, which may be configured to communicate to various external devices such as a display or speakers via one or more A/V ports 448.
  • One or more example peripheral interfaces 450 may include a serial interface controller 454 or a parallel interface controller 456, which may be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports 458.
  • An example communication device 460 includes a network controller 462, which may be arranged to facilitate communications with one or more other computing devices 466 over a network communication link via one or more communication ports 464.
  • the one or more other computing devices 466 may include servers at a datacenter, customer equipment, and comparable devices.
  • the network controller 462 may also control operations of a wireless communication module 468, which may facilitate communication with other devices via a variety of protocols using a number of frequency bands such as WiFi®, cellular (e.g., 4G, 5G), satellite link, terrestrial link, etc.
  • a wireless communication module 468 may facilitate communication with other devices via a variety of protocols using a number of frequency bands such as WiFi®, cellular (e.g., 4G, 5G), satellite link, terrestrial link, etc.
  • the network communication link may be one example of a communication media.
  • Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media.
  • a “modulated data signal” may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
  • communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media.
  • RF radio frequency
  • IR infrared
  • the term computer readable media as used herein may include non- transitory storage media.
  • the computing device 400 may be implemented as a part of a specialized server, mainframe, or similar computer that includes any of the above functions.
  • the computing device 400 may also be implemented as a personal computer including both laptop computer and nonlaptop computer configurations.
  • FIG. 5 is a flow diagram illustrating an example method for dynamic bandwidth allocation in a multi-device environment that may be performed by a computing device such as the computing device in FIG. 4, arranged in accordance with at least some embodiments described herein.
  • Example methods may include one or more operations, functions, or actions as illustrated by one or more of blocks 522, 524, 526, 528, and 530 may in some embodiments be performed by a computing device such as the computing device 400 in FIG. 4. Such operations, functions, or actions in FIG. 5 and in the other figures, in some embodiments, may be combined, eliminated, modified, and/or supplemented with other operations, functions or actions, and need not necessarily be performed in the exact sequence as shown.
  • the operations described in the blocks 522-530 may be implemented through execution of computer-executable instructions stored in a computer-readable medium such as a computer-readable medium 520 of a computing device 510.
  • An example process to provide dynamic bandwidth allocation in a multi-device environment may begin with block 522, “DETERMINE AVAILABLE TOTAL BANDWIDTH FROM ONE OR MORE CONNECTIVITY RESOURCES”, where a bandwidth management application or a smart hub device may available bandwidth from metered or unmetered networks such as wireless area networks, cable networks, cellular networks, satellite links, etc.
  • Block 522 may be followed by block 524, “RECEIVE DEVICE, APPLICATION, USER BANDWIDTH DEMAND PROFILES, AND DEMAND PRIORITIES”, where the bandwidth management application or the smart hub device may receive information associated with device, application, user characteristics, and predefined device/application/user priorities to assist in allocating bandwidth among requesting devices, applications, and users.
  • Block 524 may be followed by block 526, “DETERMINE A CURRENT USER STATE OF MIND FOR A USER”, where the current user state of mind may be inferred based on standard models adjusted based on captured user features such as expressions, gestures, speech, interactions, etc.
  • Block 526 may be followed by block 528, “DETERMINE CURRENT TOTAL BANDWIDTH DEMAND”, where the bandwidth management application or the smart hub device may determine a current total bandwidth based on requests by active networked devices.
  • Block 528 may be followed by block 530, “IF THE CURRENT BANDWIDTH DEMAND EXCEEDS THE AVAILABLE TOTAL BANDWIDTH, DYNAMICALLY ALLOCATE PORTIONS OF THE AVAILABLE TOTAL BANDWIDTH TO A PLURALITY OF DEVICES, APPLICATIONS, OR USERS BASED ON THE CURRENT USER STATE OF MIND AND THE DEVICE, APPLICATION, USER BANDWIDTH DEMAND PROFILES, AND DEMAND PRIORITIES”, where the bandwidth management application or the smart hub device may allocate available bandwidth from different networks to demanding devices, applications, and users based on supervised or unsupervised learning models and real time adjustments.
  • process 500 The operations included in process 500 are for illustration purposes. Dynamic bandwidth allocation in a multi-device environment may be implemented by similar processes with fewer or additional operations, as well as in different order of operations using the principles described herein.
  • the operations described herein may be executed by one or more processors operated on one or more computing devices, one or more processor cores, and/or specialized processing devices, among other examples.
  • parallel processing may be employed, computations or the execution of processes may be carried out simultaneously by one or more processors dividing large tasks into smaller ones and solving at the same time. Tasks split for parallel processing may be controlled by necessary elements. Different types of parallel processing such as bit-level, instruction-level, data, and task parallelism may be used.
  • FIG. 6 illustrates a block diagram of an example computer program product, arranged in accordance with at least some embodiments described herein.
  • a computer program product 600 may include a signal bearing medium 602 that may also include one or more machine readable instructions 604 that, in response to execution by, for example, a processor may provide the functionality described herein.
  • the bandwidth management application 422 may perform or control performance of one or more of the tasks shown in FIG. 6 in response to the instructions 604 conveyed to the processor 404 by the signal bearing medium 602 to perform actions associated with the dynamic bandwidth allocation in a multi-device environment as described herein.
  • Some of those instructions may include, for example, determining available total bandwidth from one or more connectivity resources; receiving device, application, user bandwidth demand profiles, and demand priorities; determining a current user state of mind for a user; determining current total bandwidth demand; and/or if the current bandwidth demand exceeds the available total bandwidth, dynamically allocating portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities, according to some embodiments described herein.
  • the signal bearing medium 602 depicted in FIG. 6 may encompass computer-readable medium 606, such as, but not limited to, a hard disk drive (HDD), a solid state drive (SSD), a compact disc (CD), a digital versatile disk (DVD), a digital tape, memory, and comparable non-transitory computer-readable storage media.
  • the signal bearing medium 602 may encompass recordable medium 608, such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, etc.
  • the signal bearing medium 602 may encompass communications medium 610, such as, but not limited to, a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.).
  • communications medium 610 such as, but not limited to, a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.).
  • the computer program product 600 may be conveyed to one or more modules of the processor 604 by an RF signal bearing medium, where the signal bearing medium 602 is conveyed by the communications medium 610 (e.g., a wireless communications medium conforming with the IEEE 802.11 standard).
  • a system for management of bandwidth allocation in a multi-device environment may include a hub device communicatively coupled to a plurality of networked devices at a location.
  • the hub device may be configured to determine available total bandwidth from one or more connectivity resources; receive device, application, user bandwidth demand profiles, demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
  • the system may also include a first server communicatively coupled to the hub device, the first server configured to generate, store, and update a plurality of device, application, user bandwidth demand profiles, and demand priorities; and a second server communicatively coupled to the hub device, the second server configured to generate, store, and update a plurality of standard user state of mind models.
  • the hub device may be configured to determine the available total bandwidth from one or more connectivity resources based on available bandwidth from a metered wireless network, an unmetered wireless network, or a wired network.
  • the hub device may be configured to dynamically allocate the portions of the available total bandwidth to the plurality of devices, applications, or users through allocation of one or more of a connection timing, a bandwidth, or a network type to each device, application, or user.
  • the device, application, and user bandwidth demand profiles may include information associated with one or more of a characteristic, a priority, a connection flexibility, or a bandwidth flexibility for each device, application and user.
  • the second server may be further configured to receive captured one or more characteristics of the user; analyze the captured one or more characteristics of the user to generate or update a standard user state of mind model; and determine the current user state of mind for the user in relation to a current bandwidth demand by the user based on the updated standard user state of mind model.
  • the one or more characteristics of the user may include one or more of a feature expression, a microexpression, a facial microexpression, a gesture, a large body movement, a speech usage, a speech pattern, an emotion, a device interaction, or a body characteristic associated with the user.
  • the second server may be further configured to weight the captured one or more characteristics of the user based on one or more environmental factors.
  • the hub device and/or the second server may be configured to employ a machine learning technique to determine the current user state of mind for each user or to allocate portions of the available total bandwidth.
  • the hub device may be implemented as a computing device communicatively coupled to a customer premises equipment (CPE), the CPE, or a computing device within a network communicatively coupled to the plurality of networked devices.
  • One of the connectivity resources may include a 5G-compliant network.
  • the hub device may be configured to act as an access point for at least a portion of the plurality of networked devices.
  • the plurality of networked devices may include Internet of Things (loT) devices.
  • a hub device for management of bandwidth allocation in a multi-device environment may include a communication module configured to facilitate communications with a plurality of networked devices and one or more computing devices over one or more networks; a memory configured to store instructions; and a processor coupled to the communication module and the memory.
  • the processor in conjunction with the instructions stored in the memory, may be configured to determine available total bandwidth from the one or more networks; receive device, application, user bandwidth demand profiles, and demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
  • the processor may be configured to determine the available total bandwidth from one or more networks based on available bandwidth from a metered wireless network, an unmetered wireless network, or a wired network.
  • the processor may be configured to dynamically allocate the portions of the available total bandwidth to the plurality of devices, applications, or users through allocation of one or more of a connection timing, a bandwidth, or a network type to each device, application, or user.
  • the device, application, and user bandwidth demand profiles may include information associated with one or more of a characteristic, a priority, a connection flexibility, or a bandwidth flexibility for each device, application and user.
  • the processor may be further configured to receive captured one or more characteristics of the user; analyze the captured one or more characteristics of the user to generate or update a standard user state of mind model; and determine the current user state of mind for the user in relation to a current bandwidth demand by the user based on the updated standard user state of mind model.
  • the one or more characteristics of the user may include one or more of a feature expression, a microexpression, a facial microexpression, a gesture, a large body movement, a speech usage, a speech pattern, an emotion, a device interaction, or a body characteristic associated with the user.
  • the processor may be further configured to weight the captured one or more characteristics of the user based on one or more environmental factors.
  • the processor may be configured to employ a machine learning technique to determine the current user state of mind for each user or to allocate portions of the available total bandwidth.
  • the hub device may be implemented as a computing device communicatively coupled to a customer premises equipment (CPE), the CPE, or a computing device within one of the one or more networks.
  • CPE customer premises equipment
  • One of the one or more networks may include a 5G-compliant network.
  • the hub device may be configured to act as an access point for at least a portion of the plurality of networked devices.
  • the plurality of networked devices may include Internet of Things (loT) devices.
  • a method for management of bandwidth allocation in a multi-device environment may include determining available total bandwidth from one or more connectivity resources; receiving device, application, user bandwidth demand profiles, and demand priorities; determining a current user state of mind for a user; determining a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocating portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
  • determining the available total bandwidth from the one or more connectivity resources may include determining available bandwidth from a metered wireless network, an unmetered wireless network, or a wired network.
  • Dynamically allocating portions of the available total bandwidth to the plurality of devices, applications, or users may include allocating one or more of a connection timing, a bandwidth, or a network type to each device, application, or user.
  • Receiving the device, application, and user bandwidth demand profiles may include receiving one or more of a characteristic, a priority, a connection flexibility, or a bandwidth flexibility for each device, application and user.
  • Determining the current user state of mind for the user may include capturing one or more characteristics of the user; analyzing the captured one or more characteristics of the user to update a standard user state of mind model; and determining the current user state of mind for the user in relation to a current bandwidth demand by the user based on the updated standard user state of mind model.
  • capturing the one or more characteristics of the user may include capturing one or more of a feature expression, a microexpression, a facial microexpression, a gesture, a large body movement, a speech usage, a speech pattern, an emotion, a device interaction, or a body characteristic associated with the user.
  • Analyzing the captured one or more characteristics of the user may include weighting the captured one or more characteristics of the user based on one or more environmental factors.
  • the method may also include employing a machine learning technique to determine a current user state of mind for each user or to allocate portions of the available total bandwidth.
  • Examples of a signal bearing medium include, but are not limited to, the following: a recordable type medium such as a floppy disk, a hard disk drive (HDD), a compact disc (CD), a digital versatile disk (DVD), a digital tape, a computer memory, a solid state drive (SSD), etc.; and a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.).
  • a recordable type medium such as a floppy disk, a hard disk drive (HDD), a compact disc (CD), a digital versatile disk (DVD), a digital tape, a computer memory, a solid state drive (SSD), etc.
  • a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.).
  • a data processing system may include one or more of a system unit housing, a video display device, a memory such as volatile and non-volatile memory, processors such as microprocessors and digital signal processors, computational entities such as operating systems, drivers, graphical user interfaces, and applications programs, one or more interaction devices, such as a touch pad or screen, and/or control systems including feedback loops and control motors.
  • a data processing system may be implemented utilizing any suitable commercially available components, such as those found in data computing/communi cation and/or network computing/communication systems.
  • the herein described subject matter sometimes illustrates different components contained within, or connected with, different other components.
  • Such depicted architectures are merely exemplary, and in fact, many other architectures may be implemented which achieve the same functionality.
  • any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved.
  • any two components herein combined to achieve a particular functionality may be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermediate components.
  • any two components so associated may also be viewed as being “operably connected”, or “operably coupled”, to each other to achieve the desired functionality, and any two components capable of being so associated may also be viewed as being “operably couplable”, to each other to achieve the desired functionality.
  • operably couplable include but are not limited to physically connectable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components.
  • ranges disclosed herein also encompass any and all possible subranges and combinations of subranges thereof. Any listed range can be easily recognized as sufficiently describing and enabling the same range being broken down into at least equal halves, thirds, quarters, fifths, tenths, etc. As a non-limiting example, each range discussed herein can be readily broken down into a lower third, middle third and upper third, etc. As will also be understood by one skilled in the art all language such as “up to,” “at least,” “greater than,” “less than,” and the like include the number recited and refer to ranges which can be subsequently broken down into subranges as discussed above. Finally, a range includes each individual member. Thus, for example, a group having 1-3 cells refers to groups having 1, 2, or 3 cells. Similarly, a group having 1-5 cells refers to groups having 1, 2, 3, 4, or 5 cells, and so forth.

Abstract

Technologies are generally described for dynamic bandwidth allocation in a multi-device environment. In a system according examples, a hub device may determine available total bandwidth from one or more connectivity resources such as metered or unmetered, wired or wireless networks. Receiving or generating device, application, and user bandwidth demand profiles, the hub device may also determine a current user state of mind for a user. When a current bandwidth demand exceeds the available total bandwidth, the hub device may dynamically allocate portions of the available total bandwidth to demanding devices, applications, or users based on the current user state of mind and the profiles, which may be based on device, application, and user characteristics such as priority, connection flexibility, or bandwidth flexibility for each device, application, and user.

Description

SMART BANDWIDTH ALLOCATION IN MULTI-DEVICE ENVIRONMENTS
BACKGROUND
[0001] Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
[0002] With the growth of networked devices at home and office, there is competition for available bandwidth among devices, applications, and users. For example, due to the COVID-19 pandemic, a very large number of adults are working from home competing for limited bandwidth with students attending school online from home and other members of the home consuming entertainment bandwidth, not to mention any number of automation devices such as Internet of Things (loT) devices in the same environment. Many local networks such as home offices are not truly engineered to provide optimal bandwidth provisioning that anticipates, manages, and delivers optimized capacity.
SUMMARY
[0003] The present disclosure generally describes techniques for dynamic bandwidth allocation in a multi-device environment based on device, application, and user characteristics and user state of mind.
[0004] According to some examples, a system for management of bandwidth allocation in a multi-device environment may include a hub device communicatively coupled to a plurality of networked devices at a location. The hub device may be configured to determine available total bandwidth from one or more connectivity resources; receive device, application, user bandwidth demand profiles, demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities. The system may also include a first server communicatively coupled to the hub device, the first server configured to generate, store, and update a plurality of device, application, user bandwidth demand profiles, and demand priorities; and a second server communicatively coupled to the hub device, the second server configured to generate, store, and update a plurality of standard user state of mind models.
[0005] According to other examples, a hub device for management of bandwidth allocation in a multi-device environment may include a communication module configured to facilitate communications with a plurality of networked devices and one or more computing devices over one or more networks; a memory configured to store instructions; and a processor coupled to the communication module and the memory. The processor, in conjunction with the instructions stored in the memory, may be configured to determine available total bandwidth from the one or more networks; receive device, application, user bandwidth demand profiles, and demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
[0006] According to further examples, a method for management of bandwidth allocation in a multi-device environment may include determining available total bandwidth from one or more connectivity resources; receiving device, application, user bandwidth demand profiles, and demand priorities; determining a current user state of mind for a user; determining a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocating portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
[0007] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description. BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The foregoing and other features of this disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only several embodiments in accordance with the disclosure and are, therefore, not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail through use of the accompanying drawings, in which:
FIG. 1 includes an architectural illustration of a home, where dynamic bandwidth allocation in a multi-device environment may be implemented;
FIG. 2 includes a conceptual illustration of example networked devices and a smart hub device managing dynamic bandwidth allocation for the networked devices;
FIG. 3 A illustrates major components of an example system for dynamic bandwidth allocation in a multi-device environment and their actions;
FIG. 3B illustrates an example flow of actions for generating a user state of mind database;
FIG. 3C illustrates an example flow of actions in user state of mind determination and bandwidth allocation through machine learning;
FIG. 4 illustrates a computing device, which may be used to manage dynamic bandwidth allocation in a multi-device environment;
FIG. 5 is a flow diagram illustrating an example method for dynamic bandwidth allocation in a multi-device environment that may be performed by a computing device such as the computing device in FIG. 4; and
FIG. 6 illustrates a block diagram of an example computer program product, all of which are arranged in accordance with at least some embodiments described herein.
DETAILED DESCRIPTION
[0009] In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein. The aspects of the present disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated herein.
[0010] This disclosure is generally drawn, inter alia, to methods, apparatus, systems, devices, and/or computer program products related to dynamic bandwidth allocation in a multidevice environment based on device, application, and user characteristics and user state of mind.
[0011] Briefly stated, technologies are generally described for dynamic bandwidth allocation in a multi-device environment. In a system according examples, a hub device may determine available total bandwidth from one or more connectivity resources such as metered or unmetered, wired or wireless networks. Receiving or generating device, application, and user bandwidth demand profiles, the hub device may also determine a current user state of mind for a user. When a current bandwidth demand exceeds the available total bandwidth, the hub device may dynamically allocate portions of the available total bandwidth to demanding devices, applications, or users based on the current user state of mind and the profiles, which may be based on device, application, and user characteristics such as priority, connection flexibility, or bandwidth flexibility for each device, application, and user.
[0012] FIG. 1 includes an architectural illustration of a home, where dynamic bandwidth allocation in a multi-device environment may be implemented, arranged in accordance with at least some embodiments described herein.
[0013] Diagram 100 shows a home 102, which may include a bedroom 104, a living room 110, a study 106 and a kitchen 108. Each room in the home has example furniture such as bed, chair, couch, table, piano, etc. A number of loT devices 132 are distributed around in house in various rooms. The loT devices 132 may perform various functionalities and communicate with other devices over one or more networks. Additional networked devices consuming network bandwidth in the home 102 include television 136, laptop 134, desktop computer 138, among others. There may also be multiple users 122, 124, and 126. For example, user 126 may be an adult working from home, user 124 may be a child attending online school, and user 122 may be another household member. [0014] Networked devices at the home 102 may be connected to a variety of networks such as wired network 160 through a modem 162, wireless area network 150 (e.g., a city network, a wide area network) through an access point 152, and a cellular network 140 (e.g., a 5G network) through a base station 142. A hub device 130 may manage dynamic allocation of available bandwidth from all networks to the networked devices. The hub device 130 may provide connectivity to respective networks for some of the networked devices. In other examples, the hub device may not be in direct connection between a networked device and the respective network but receive information about consumed bandwidth from the respective network by the network device.
[0015] Networked devices may include any computing device and any electronic device equipped with wired or wireless networking capability such as Internet of Things (loT) devices. loT devices may perform a variety of functions. Examples may include, but are not limited to, environmental controls, environmental sensors, security devices (e.g., cameras, microphones, motion sensors, etc.), smart appliances, toys, mechanical controls / sensors, healthcare monitors, elderly monitors (e.g., fall sensors), etc. Each loT device may receive instructions and/or transmit data associated with their functionality. The loT devices may communicate with a number of other devices such as a manufacturer’s server, a service provider’s server, a user device, etc.
[0016] In some examples, the hub device 130 may determine available bandwidth from the wired network 160, the wireless area network 150, and/or the cellular network 140, and dynamically allocate portions of the available total bandwidth to the plurality of devices, applications by allocating a connection timing, a bandwidth, and/or a network type to each device, application, or user. In determining the allocations, the hub device 130 may take into account device, application, user bandwidth demand profiles, which may be based on characteristic, priority, connection flexibility, demand priority, and/or bandwidth flexibility of each device, application and user. To perform bandwidth allocation, the hub device may also take into account a user’s state of mind. For example, characteristics of the user such as a feature expression, a microexpression, a gesture, a large body movement, a speech usage, a speech pattern (e.g., slower or faster speech, slurring, etc.), an emotion, a device interaction, and/or a body characteristic associated with the user may be captured. The captured characteristics of the user may be analyzed to update a standard user state of mind model, and the current user state of mind for the user may be determined in relation to a current bandwidth demand by the user based on the updated standard user state of mind model. The captured characteristics of the user may also be weighted based on one or more environmental factors.
[0017] In some examples, machine learning may be used to learn and continuously refine a model (of priorities, etc.), which may then be used to perform bandwidth allocation. Similarly, machine learning may also be used to learn and adjust state of mind model(s). A state of mind model may define how detectable characteristics such as those described above can be used to infer a state of mind for a user. As an illustrative example, decreasing body movements, yawning, and less frequent eyelid movements may result in the inference of boredom. The state of mind model may output a set of predefined states (e.g., bored, excited, happy, sad, angry, etc.) or a numerical score, where certain values may indicate different states. A standard state of mind model may define rules for a broad (or select) population of people, which may then be customized and adjusted for a particular individual based on detected characteristics to arrive at a specific state of mind model for that individual. In other examples, state of mind may be defined as a score (o a set of scores), a table, or a map showing the state of mind with the score defining the relationship between the score and the state of mind, respectively. Then, the optimization of the bandwidth may be performed based on pre-defined or ML-processed parameters substantially.
[0018] The factors taken into account for bandwidth allocation, in addition to state of mind, device or application type (e.g., an loT controlling a smart light bulb may be assigned lower priority in bandwidth allocation compared to a smart phone). User bandwidth demand profile may also be used to assign priority to each user based on multiple characteristics associated with each user such as those described above. Connection flexibility may allow the hub device to assign or change network connections for particular devices or applications. For example, a device or application may be switched from cellular network to a WiFi network to accommodate another device needing higher bandwidth on the cellular network. Bandwidth flexibility may indicate whether a device or application can handle reduced bandwidth (temporarily) or different connection times (e.g., connecting to the network at lower demand hours). Demand priority may be used to assign priorities to different devices or applications for bandwidth allocation. For example, healthcare monitoring devices / applications or elderly monitoring devices may be assigned higher priority in bandwidth allocation. [0019] The hub device 130 may be implemented as a separate device communicatively coupled to a router or customer premises equipment (CPE), as part of the router or CPE, or even as a special purpose device or server within one of the networks.
[0020] The home 102 in diagram 100 is an illustrative example for a location, where embodiments may be implemented, but is not intended to limit embodiments. Other locations may include, but are not limited to, an office, a school, a health care facility, a hotel, a factory, or comparable buildings, as well as, a vehicle such as an automobile, a bus, a recreational vehicle, an airplane, a ship, and similar ones.
[0021] FIG. 2 includes a conceptual illustration of example networked devices and a smart hub device managing dynamic bandwidth allocation for the networked devices, arranged in accordance with at least some embodiments described herein.
[0022] Diagram 200 shows example networked devices such as loT devices 202, computing devices 204, and other devices 206 interacting with example networks such as metered wireless network 212, unmetered wireless network 214, and wired network 216. A smart hub (hub device 210) may communicatively couple to active devices and networks, and manage dynamic allocation of bandwidth as described herein.
[0023] Different network types may provide different advantages and disadvantages. For example, a wired network 216 such as a digital subscriber line (DSL) network, an optical network, or a cable network may provide highest data speeds, but may be costly or have bandwidth restrictions such as throttling of network speeds at certain thresholds. Wireless unmetered networks 214 such as city LAN, WAN, etc. may provide cost-effective connectivity, but may have bandwidth and/or speed limitations in addition to signal strength challenges at certain locations. Examples of a metered network may include any of the wired or wireless types, but also cellular networks. While older cellular networks had bandwidth and speed limitations, newer technologies such as 5G provide bandwidth and speeds comparable to wired networks. Metered networks may restrict connectivity by a fee schedule or bandwidth restrictions at certain thresholds. Other network examples may include, but are not limited to, satellite communication links, microwave links, etc.
[0024] As mentioned above, fifth generation technology(5G) standard for cellular networks is the most recent network. 5G networks are digital cellular networks, in which the service area is divided into small geographical areas called cells. All 5G wireless devices in a cell exchange digital data with the Internet and the telephone network by radio waves through a local antenna in the cell. 5G networks provide greater bandwidth compared to previous standards allowing higher download speeds more than 10 gigabits per second (Gbit/s). This, in turn, allows cellular service providers to become Internet service providers interconnecting most user devices.
[0025] 5G protocol replaces a number of the hardware components of the cellular network with software that “virtualizes” the network by using the common language of Internet Protocol (IP). The increased speed/bandwidth is achieved in 5G networks partly by using higher- frequency radio waves than current cellular networks. Low band 5G uses a similar frequency range to current 4G network in the 600-700 MHz range supporting download speeds a little higher than 4G (30-250 megabits per second). Mid band 5G uses microwaves in the range of 2.5- 3.7 GHz allowing speeds of 100-900 Mbit/s with each cell tower providing service up to several miles in radius. High band 5G uses frequencies in the range of 25-39 GHz, near the millimeter wave band, although higher frequencies may be used in the future. The high band may achieve download speeds of a gigabit per second comparable to cable Internet.
[0026] As discussed in more detail below, the hub device 210 may take a number of factors such as device, application, user characteristics and user state of mind in allocating bandwidth to different devices, applications, and users over respective networks. In determining user state of mind, as well as, allocating bandwidth, hub device 210 may employ artificial intelligence or machine learning techniques.
[0027] Artificial Intelligence (Al) algorithms control any device that perceives its environment and takes actions that maximize its chance of successfully achieving predefined goals such as determining user state of mind from captured user characteristics and standard state of mind models, etc. A subset of Al, machine learning (ML) algorithms build a mathematical model based on sample data (training data) in order to make predictions or decisions without being explicitly programmed to do so. In some examples, an Al planning algorithm or a specific ML algorithm may be employed to determine user state of mind and allocation of available bandwidth to devices, applications, and users. The system may also allow ML (training) data to be uploaded to a network so that other systems can benefit from their data. The ML algorithm may facilitate both supervised and unsupervised learning.
[0028] In an example scenario, a home may be equipped with a number of loT devices using a cable network and a cellular network (5G) for connectivity. A parent may be watching a streamed movie on a handheld device through the cellular network while another parent may be chatting online through the wired network. One or more children may be taking online lessons or gaming through their respective devices using the wired or cellular networks. A hub device at the home may determine connectivity (bandwidth) needs of each device along with their flexibility. For example, some loT devices may be scheduled to transmit and receive their data at night hours when the bandwidth demand is low. Other loT devices may be instructed to reduce their exchanged data amount or user alternative networks (e.g., wired network instead of cellular). The hub device may also assign (and/or receive from a user or administrator) priorities for different users, devices, and applications. For example, gaming applications may be assigned lower priority compared to school communication applications. Similarly, parents may be given higher priority than children, but this prioritization may be weighted based on particular activities (or applications). For example, a parent watching a movie may have their priority lowered compared to a child attending an online class. The hub device may store or receive static models for prioritization and other factors in allocation of bandwidth. The hub device may then adjust those models according to current usage (active devices, applications, users).
[0029] In further examples, the hub device may also take user state of mind into account. Various user characteristics such as gestures, facial features, facial microexpressions, speech characteristics, body characteristics, etc. may be captured by different sensors and devices and analyzed to update standard models arriving at a current state of mind. Even if users are involved in activities that require them to maintain some composure (like a video call or performance) their microexpressions may provide valuable clues as to their state of mind. For example, eyelid movements, eye movements, body posture of a person watching a movie may indicate the person is bored and may even be ready to nap. Detecting that state, the hub device may lower an assigned bandwidth to that user or application if there is a need for bandwidth by other devices, applications. The lowered bandwidth may cause some degradation of the presented movie, but in the detected state of mind, the user may not care about the degradation. Similarly, the user’s state of mind (e.g., excitement or boredom) may be used by the hub device to predict a next activity and allocate bandwidth proactively. For example, if a user is about to finish watching a movie or playing a game and are excited, the prediction may be that they will call (e.g., a video call) a friend and chat about their experience. Thus, the hub device may plan on switching from the movie streaming application to a communication application with respective bandwidth and network.
[0030] FIG. 3 A illustrates major components of an example system for dynamic bandwidth allocation in a multi-device environment and their actions, arranged in accordance with at least some embodiments described herein.
[0031] Diagram 300 shows major actions by different components of a system according to embodiments. For example, device and/or application characteristics 302, user / administrator input 304, user characteristics 310 such as priority 312, status 314, and state of mind 316 may be inputs to bandwidth management 306 along with available bandwidths 306. Bandwidth management 320, performed by a hub device, for example, may include analysis of device, application, user profiles 322 for optimization 324 and allocation 326, which may be a dynamic and/or iterative process performed by a machine learning or Al algorithm. The allocation results may be provided to networked devices 330 for their connectivity.
[0032] Device and/or application characteristics 302 may include, among other things, bandwidth demand, bandwidth or connection flexibility (if some or all demand can be shifted to different times or networks), priority (e.g., medical monitoring devices may have highest priority), preferred or required network type, etc. User or administrator input 304 may be provided by a user or an administrator of the system through a remote device or through a user interface at the hub device to define or modify device, application, user characteristics such as priorities. User priority 312 may be based on age, hierarchical status (e.g., parent/child, supervisor/supervisee, etc.), medical condition (healthy, ill, specific conditions, etc.), and similar factors). User status 314 may include factors such as whether a user is part of a household / office or a visitor, whether a user is engaged in a work activity or an entertainment activity, and comparable ones.
[0033] A smart hub according to examples may enable a more effective home or office environment by becoming the connectivity master control for the entire home bandwidth consumption. The smart hub may control or be aware of connections of all networked devices that consume bandwidth at a particular location. The hub may consolidate available bandwidth and manage bandwidth consumption for the location based on user defined priorities combined with algorithms that monitor, measure, and learn actual usage patterns. The smart hub may continuously perform intelligent bandwidth capacity allocation based on the priorities learnt by the model(s) and explicit and/or implicit feedback from users’ device performance, to optimize the overall user experience. Machine learning may provide the smart hub the capability to learn priorities to optimize time of day trends for utilization and synchronize with other sources of information regarding bandwidth usage needs (e.g., user calendars). The allocation of bandwidth may then follow predefined priorities while using machine learning to drive optimization protocols. The predefined priorities may include bandwidth allocation priorities initially assigned to different devices, applications, and users (e.g., by a user or an administrator). Additionally, the smart hub may monitor bandwidth data caps from various network service providers and adjust available speeds to the prioritized users, devices, and applications.
[0034] Thus, a hub device according to examples may act as a bandwidth consolidation router. This router may connect the incoming bandwidth to a home, office, or similar location from all available sources. Such a device may consolidate metered bandwidth capacity (e.g., LTE or 5G cellular networks) with unmetered wireless or wired bandwidth capacity (e.g., cable network). The router may be part of the hub device or coupled to the hub device through wired or wireless connection and either control or be aware of network connectivity of the networked devices at the location. Another feature of the smart hub router may include the ability to detect and authenticate the sources of available bandwidth.
[0035] In some examples, the bandwidth management may include following functions. The smart hub may consolidate available bandwidth from all sources. This may include detection of all sources and authentication of sources via a database of approved resources. The registration database may compile appropriate resource identifications and passwords to use the bandwidth resource. The database may also capture the available bandwidth and the cost of bandwidth consumption. This data may be used for optimization of bandwidth resource allocation and/or maximization of overall user satisfaction. The smart hub may also consolidate approved users of available resources. The smart hub may register each device at the location that can draw bandwidth from the resources. The smart hub may include or access a detailed registry of each device / application and include an option for the administrator to set user priorities. For example, a homeowner that works from home may set their home computer as the highest priority for bandwidth allocation during their working hours. The smart hub may use an optimization algorithm that continually monitors the registration database and approved users of available resources and make allocation decisions. The allocation decision protocols may be established by the administrator based on priority of each user, by cost of the resources, by utilization trends determined by machine learning, or by a combination thereof.
[0036] The smart hub may work to ensure that capacity allocation is directed towards the most critical applications: e.g., during critical working periods vs. entertainment periods, homework vs. gaming, etc. To achieve this goal, the system may build a model of bandwidth utilization for the entire home at each time of the day/week/month, starting from an initial static user-defined model and then improving the model dynamically on an ongoing basis using machine learning technology that monitors usage and user satisfaction and adjusts the model based on these parameters.
[0037] In order to define the initial static usage model, the smart hub may allow the user to establish priority assignments for each device, application, and user at different times of the day/week/month. The definition of the initial static usage model may begin with defining a model to describe at which times different types of access take place and prioritizing by the criteria deemed important - for example, work related access may get high priority, then homework, then different types of entertainment depending on who it serves (e.g., movie streaming for a group of people may be higher than games played by individual children, or vice versa). In another example, the use of augmented reality (AR) glasses for home office may require prioritized bandwidth when AR glasses are worn and used for videoconferencing or collaboration workload (as opposed to for gaming).
[0038] The model may then be continuously refined by learning home-specific bandwidth usage models using supervised and unsupervised machine learning techniques to optimize network capacity allocation over time. The system may start learning from user feedback which may be explicit (the user clicks a certain button or requests by voice better connectivity performance explicitly) or implicit (e.g., a user tries to access a certain type of device or bandwidth repeatedly, or makes comments regarding poor connectivity like “the image froze” or “there is a lag in the video feed”, etc.). These priorities may also vary by the time or day, by the user’s status within the household, etc.
[0039] The components described above are for illustration purposes. Each of the example components may be executed at a separate server (or special purpose machine), some components may be executed at the same server, or all components may be executed at the same server. The components may also be executed in a distributed manner at the cloud. Additionally, some of the operations discussed above may be combined at the same component or a single operation may be performed by more than one component.
[0040] Embodiments may provide many benefits over existing technologies such as maximization of the overall bandwidth for home or office network users by employing Al to continuously learn and adapt to allocation of capacity per user/device/application according to dynamic usage priorities, from all available bandwidth sources (e.g., Wi-Fi, LTE, 5G, etc.). Bandwidth management is a complex technology issue which is mostly addressed for enterprises and network service providers that can afford active management by dedicated, qualified system/network administrators. In contrast, example embodiments approach the bandwidth management from the perspective of a home or office with limited technical capabilities and resources, but with increasingly complex needs. Building network usage models from both the user and the network perspective using ML (multiple learning techniques) and Al (speech and image processing and understanding) brings the affordability to home or office users.
[0041] FIG. 3B illustrates an example flow of actions for generating a user state of mind database, arranged in accordance with at least some embodiments described herein.
[0042] A dynamic bandwidth allocation system according to embodiments takes into account a current user state of mind as described herein. Diagram 300B shows how a standard user state of mind database (or model) may be generated and/or updated to determine a current state of mind. Sensors or devices such as camera 344, microphone 346, and other sensors 348 (e.g., thermometer, blood pressure monitor, eye tracker, keyboard tracker, etc.) may capture various reactions of a user 342 by recording a video 350, recording a speech 352, or recording other reactions / interactions 354. For example, camera 344 may capture feature (facial) expressions, microexpressions, gestures, and body movements (large, small) or posture (356). Microphone 346 may capture onomatopoetic expressions (noises or sounds resembling the thing they describe), words, patterns, or even emotions (excitement, boredom in speech tone) (358). Other sensors 348 may capture body characteristics such as heart rate, temperature, blood pressure level, sleepiness, etc., as well as, interactive reactions such as keystrokes, patterns of access to certain devices or applications, etc. (360).
[0043] The system may begin with a standard user state of mind database 314 and customize / update based on available (captured) user reactions to create a learned model for a particular user. The model may then be further refined based on user’s activity and/or current environment (e.g., playing a computer game and winning or losing, in an online communication and receiving good news or bad news, etc.). The environmental factors such as interactions with other people, the location’s temperature, humidity, etc., noise level, and similar factors may also contribute to the inferred state of mind of the user. Thus, external causes of state of mind such as noisy environment, other people’s interactions, etc. may be filtered out from the inferred state of mind in order to focus on the state of mind associated with the computer-related activity and the impact of allocated bandwidth on the activity / state of mind. Machine learning may be used at some or all of the above discussed processes to improve over time the recognition and prediction models for each task described above.
[0044] FIG. 3C illustrates an example flow of actions in user state of mind determination and bandwidth allocation through machine learning, arranged in accordance with at least some embodiments described herein.
[0045] As shown in diagram 300C, an example process may begin with standard state of mind datasets 370, which may include average user state of mind data as discussed previously and be used to categorize data for actual users (at the location) as closely as possible building an initial user data / model database 372. In some examples, the model(s) may be improved by supervised learning 374. For example, if a majority of captured user features show a happy state of mind, an assumption may be made that the user is happy and the model adjusted so that other features also indicate the user is happy. Facial expressions, microexpressions, tone of voice, and similar features, when available, may be used as definitive indicator of state of mind 378. In other examples, unsupervised learning 376 may be used to classify user data / model(s) into buckets 380. Either the inferred state of mind or the buckets may be used to strategize bandwidth allocation 382. The bandwidth allocation strategy 382 may also be further improved by supervised learning (384). For example, state of mind of a group (or all) of the people at the location (e.g., home) may be determined upon implementation of the bandwidth allocation and the allocation adjusted accordingly based on the broader state of mind inference.
[0046] FIG. 4 illustrates a computing device, which may be used to manage dynamic bandwidth allocation in a multi-device environment, arranged in accordance with at least some embodiments described herein.
[0047] In an example basic configuration 402, the computing device 400 may include one or more processors 404 and a system memory 406. A memory bus 408 may be used to communicate between the processor 404 and the system memory 406. The basic configuration 402 is illustrated in FIG. 4 by those components within the inner dashed line.
[0048] Depending on the desired configuration, the processor 404 may be of any type, including but not limited to a microprocessor (pP), a microcontroller (pC), a digital signal processor (DSP), or any combination thereof. The processor 404 may include one or more levels of caching, such as a cache memory 412, a processor core 414, and registers 416. The example processor core 414 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP core), or any combination thereof. An example memory controller 418 may also be used with the processor 404, or in some implementations, the memory controller 418 may be an internal part of the processor 404.
[0049] Depending on the desired configuration, the system memory 406 may be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof. The system memory 406 may include an operating system 420, a bandwidth management application 422, and program data 424. The bandwidth management application 422 may include a communication module 426 and an analysis module 427. The bandwidth management application 422 may be configured to determine available total bandwidth from one or more connectivity resources such as metered or unmetered, wired or wireless networks. The bandwidth management application 422 may also receive or generate device, application, and user bandwidth demand profiles, and determine a current user state of mind for a user. The bandwidth management application 422 may then dynamically allocate portions of the available total bandwidth to demanding devices, applications, or users based on the current user state of mind and the profiles, which may be based on device, application, and user characteristics such as priority, connection flexibility, or bandwidth flexibility for each device, application, and user. The program data 424 may include device data 428 and bandwidth data (available bandwidth types, etc.), among other data, as described herein.
[0050] The computing device 400 may have additional features or functionality, and additional interfaces to facilitate communications between the basic configuration 402 and any desired devices and interfaces. For example, a bus/interface controller 430 may be used to facilitate communications between the basic configuration 402 and one or more data storage devices 432 via a storage interface bus 434. The data storage devices 432 may be one or more removable storage devices 436, one or more non-removable storage devices 438, or a combination thereof. Examples of the removable storage and the non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDDs), optical disk drives such as compact disc (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSDs), and tape drives to name a few. Example computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.
[0051] The system memory 406, the removable storage devices 436 and the non- removable storage devices 438 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD- ROM, digital versatile disks (DVDs), solid state drives (SSDs), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by the computing device 400. Any such computer storage media may be part of the computing device 400.
[0052] The computing device 400 may also include an interface bus 440 for facilitating communication from various interface devices (e.g., one or more output devices 442, one or more peripheral interfaces 450, and one or more communication devices 460) to the basic configuration 402 via the bus/interface controller 430. Some of the example output devices 442 include a graphics processing unit 444 and an audio processing unit 446, which may be configured to communicate to various external devices such as a display or speakers via one or more A/V ports 448. One or more example peripheral interfaces 450 may include a serial interface controller 454 or a parallel interface controller 456, which may be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports 458. An example communication device 460 includes a network controller 462, which may be arranged to facilitate communications with one or more other computing devices 466 over a network communication link via one or more communication ports 464. The one or more other computing devices 466 may include servers at a datacenter, customer equipment, and comparable devices. The network controller 462 may also control operations of a wireless communication module 468, which may facilitate communication with other devices via a variety of protocols using a number of frequency bands such as WiFi®, cellular (e.g., 4G, 5G), satellite link, terrestrial link, etc.
[0053] The network communication link may be one example of a communication media. Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media. A “modulated data signal” may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media. The term computer readable media as used herein may include non- transitory storage media.
[0054] The computing device 400 may be implemented as a part of a specialized server, mainframe, or similar computer that includes any of the above functions. The computing device 400 may also be implemented as a personal computer including both laptop computer and nonlaptop computer configurations.
[0055] FIG. 5 is a flow diagram illustrating an example method for dynamic bandwidth allocation in a multi-device environment that may be performed by a computing device such as the computing device in FIG. 4, arranged in accordance with at least some embodiments described herein.
[0056] Example methods may include one or more operations, functions, or actions as illustrated by one or more of blocks 522, 524, 526, 528, and 530 may in some embodiments be performed by a computing device such as the computing device 400 in FIG. 4. Such operations, functions, or actions in FIG. 5 and in the other figures, in some embodiments, may be combined, eliminated, modified, and/or supplemented with other operations, functions or actions, and need not necessarily be performed in the exact sequence as shown. The operations described in the blocks 522-530 may be implemented through execution of computer-executable instructions stored in a computer-readable medium such as a computer-readable medium 520 of a computing device 510. [0057] An example process to provide dynamic bandwidth allocation in a multi-device environment may begin with block 522, “DETERMINE AVAILABLE TOTAL BANDWIDTH FROM ONE OR MORE CONNECTIVITY RESOURCES”, where a bandwidth management application or a smart hub device may available bandwidth from metered or unmetered networks such as wireless area networks, cable networks, cellular networks, satellite links, etc.
[0058] Block 522 may be followed by block 524, “RECEIVE DEVICE, APPLICATION, USER BANDWIDTH DEMAND PROFILES, AND DEMAND PRIORITIES”, where the bandwidth management application or the smart hub device may receive information associated with device, application, user characteristics, and predefined device/application/user priorities to assist in allocating bandwidth among requesting devices, applications, and users.
[0059] Block 524 may be followed by block 526, “DETERMINE A CURRENT USER STATE OF MIND FOR A USER”, where the current user state of mind may be inferred based on standard models adjusted based on captured user features such as expressions, gestures, speech, interactions, etc.
[0060] Block 526 may be followed by block 528, “DETERMINE CURRENT TOTAL BANDWIDTH DEMAND”, where the bandwidth management application or the smart hub device may determine a current total bandwidth based on requests by active networked devices.
[0061] Block 528 may be followed by block 530, “IF THE CURRENT BANDWIDTH DEMAND EXCEEDS THE AVAILABLE TOTAL BANDWIDTH, DYNAMICALLY ALLOCATE PORTIONS OF THE AVAILABLE TOTAL BANDWIDTH TO A PLURALITY OF DEVICES, APPLICATIONS, OR USERS BASED ON THE CURRENT USER STATE OF MIND AND THE DEVICE, APPLICATION, USER BANDWIDTH DEMAND PROFILES, AND DEMAND PRIORITIES”, where the bandwidth management application or the smart hub device may allocate available bandwidth from different networks to demanding devices, applications, and users based on supervised or unsupervised learning models and real time adjustments.
[0062] The operations included in process 500 are for illustration purposes. Dynamic bandwidth allocation in a multi-device environment may be implemented by similar processes with fewer or additional operations, as well as in different order of operations using the principles described herein. The operations described herein may be executed by one or more processors operated on one or more computing devices, one or more processor cores, and/or specialized processing devices, among other examples. In further examples, parallel processing may be employed, computations or the execution of processes may be carried out simultaneously by one or more processors dividing large tasks into smaller ones and solving at the same time. Tasks split for parallel processing may be controlled by necessary elements. Different types of parallel processing such as bit-level, instruction-level, data, and task parallelism may be used.
[0063] FIG. 6 illustrates a block diagram of an example computer program product, arranged in accordance with at least some embodiments described herein.
[0064] In some examples, as shown in FIG. 6, a computer program product 600 may include a signal bearing medium 602 that may also include one or more machine readable instructions 604 that, in response to execution by, for example, a processor may provide the functionality described herein. Thus, for example, referring to the processor 404 in FIG. 4, the bandwidth management application 422 may perform or control performance of one or more of the tasks shown in FIG. 6 in response to the instructions 604 conveyed to the processor 404 by the signal bearing medium 602 to perform actions associated with the dynamic bandwidth allocation in a multi-device environment as described herein. Some of those instructions may include, for example, determining available total bandwidth from one or more connectivity resources; receiving device, application, user bandwidth demand profiles, and demand priorities; determining a current user state of mind for a user; determining current total bandwidth demand; and/or if the current bandwidth demand exceeds the available total bandwidth, dynamically allocating portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities, according to some embodiments described herein.
[0065] In some implementations, the signal bearing medium 602 depicted in FIG. 6 may encompass computer-readable medium 606, such as, but not limited to, a hard disk drive (HDD), a solid state drive (SSD), a compact disc (CD), a digital versatile disk (DVD), a digital tape, memory, and comparable non-transitory computer-readable storage media. In some implementations, the signal bearing medium 602 may encompass recordable medium 608, such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, etc. In some implementations, the signal bearing medium 602 may encompass communications medium 610, such as, but not limited to, a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.). Thus, for example, the computer program product 600 may be conveyed to one or more modules of the processor 604 by an RF signal bearing medium, where the signal bearing medium 602 is conveyed by the communications medium 610 (e.g., a wireless communications medium conforming with the IEEE 802.11 standard).
[0066] According to some examples, a system for management of bandwidth allocation in a multi-device environment may include a hub device communicatively coupled to a plurality of networked devices at a location. The hub device may be configured to determine available total bandwidth from one or more connectivity resources; receive device, application, user bandwidth demand profiles, demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities. The system may also include a first server communicatively coupled to the hub device, the first server configured to generate, store, and update a plurality of device, application, user bandwidth demand profiles, and demand priorities; and a second server communicatively coupled to the hub device, the second server configured to generate, store, and update a plurality of standard user state of mind models.
[0067] According to other examples, the hub device may be configured to determine the available total bandwidth from one or more connectivity resources based on available bandwidth from a metered wireless network, an unmetered wireless network, or a wired network. The hub device may be configured to dynamically allocate the portions of the available total bandwidth to the plurality of devices, applications, or users through allocation of one or more of a connection timing, a bandwidth, or a network type to each device, application, or user. The device, application, and user bandwidth demand profiles may include information associated with one or more of a characteristic, a priority, a connection flexibility, or a bandwidth flexibility for each device, application and user. The second server may be further configured to receive captured one or more characteristics of the user; analyze the captured one or more characteristics of the user to generate or update a standard user state of mind model; and determine the current user state of mind for the user in relation to a current bandwidth demand by the user based on the updated standard user state of mind model. [0068] According to further examples, the one or more characteristics of the user may include one or more of a feature expression, a microexpression, a facial microexpression, a gesture, a large body movement, a speech usage, a speech pattern, an emotion, a device interaction, or a body characteristic associated with the user. The second server may be further configured to weight the captured one or more characteristics of the user based on one or more environmental factors. The hub device and/or the second server may be configured to employ a machine learning technique to determine the current user state of mind for each user or to allocate portions of the available total bandwidth. The hub device may be implemented as a computing device communicatively coupled to a customer premises equipment (CPE), the CPE, or a computing device within a network communicatively coupled to the plurality of networked devices. One of the connectivity resources may include a 5G-compliant network. The hub device may be configured to act as an access point for at least a portion of the plurality of networked devices. The plurality of networked devices may include Internet of Things (loT) devices.
[0069] According to other examples, a hub device for management of bandwidth allocation in a multi-device environment may include a communication module configured to facilitate communications with a plurality of networked devices and one or more computing devices over one or more networks; a memory configured to store instructions; and a processor coupled to the communication module and the memory. The processor, in conjunction with the instructions stored in the memory, may be configured to determine available total bandwidth from the one or more networks; receive device, application, user bandwidth demand profiles, and demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
[0070] According to further examples, the processor may be configured to determine the available total bandwidth from one or more networks based on available bandwidth from a metered wireless network, an unmetered wireless network, or a wired network. The processor may be configured to dynamically allocate the portions of the available total bandwidth to the plurality of devices, applications, or users through allocation of one or more of a connection timing, a bandwidth, or a network type to each device, application, or user. The device, application, and user bandwidth demand profiles may include information associated with one or more of a characteristic, a priority, a connection flexibility, or a bandwidth flexibility for each device, application and user. The processor may be further configured to receive captured one or more characteristics of the user; analyze the captured one or more characteristics of the user to generate or update a standard user state of mind model; and determine the current user state of mind for the user in relation to a current bandwidth demand by the user based on the updated standard user state of mind model.
[0071] According to some examples, the one or more characteristics of the user may include one or more of a feature expression, a microexpression, a facial microexpression, a gesture, a large body movement, a speech usage, a speech pattern, an emotion, a device interaction, or a body characteristic associated with the user. The processor may be further configured to weight the captured one or more characteristics of the user based on one or more environmental factors. The processor may be configured to employ a machine learning technique to determine the current user state of mind for each user or to allocate portions of the available total bandwidth. The hub device may be implemented as a computing device communicatively coupled to a customer premises equipment (CPE), the CPE, or a computing device within one of the one or more networks. One of the one or more networks may include a 5G-compliant network. The hub device may be configured to act as an access point for at least a portion of the plurality of networked devices. The plurality of networked devices may include Internet of Things (loT) devices.
[0072] According to further examples, a method for management of bandwidth allocation in a multi-device environment may include determining available total bandwidth from one or more connectivity resources; receiving device, application, user bandwidth demand profiles, and demand priorities; determining a current user state of mind for a user; determining a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocating portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
[0073] According to some examples, determining the available total bandwidth from the one or more connectivity resources may include determining available bandwidth from a metered wireless network, an unmetered wireless network, or a wired network. Dynamically allocating portions of the available total bandwidth to the plurality of devices, applications, or users may include allocating one or more of a connection timing, a bandwidth, or a network type to each device, application, or user. Receiving the device, application, and user bandwidth demand profiles may include receiving one or more of a characteristic, a priority, a connection flexibility, or a bandwidth flexibility for each device, application and user. Determining the current user state of mind for the user may include capturing one or more characteristics of the user; analyzing the captured one or more characteristics of the user to update a standard user state of mind model; and determining the current user state of mind for the user in relation to a current bandwidth demand by the user based on the updated standard user state of mind model.
[0074] According to other examples, capturing the one or more characteristics of the user may include capturing one or more of a feature expression, a microexpression, a facial microexpression, a gesture, a large body movement, a speech usage, a speech pattern, an emotion, a device interaction, or a body characteristic associated with the user. Analyzing the captured one or more characteristics of the user may include weighting the captured one or more characteristics of the user based on one or more environmental factors. The method may also include employing a machine learning technique to determine a current user state of mind for each user or to allocate portions of the available total bandwidth.
[0075] There are various vehicles by which processes and/or systems and/or other technologies described herein may be affected (e.g., hardware, software, and/or firmware), and the preferred vehicle will vary with the context in which the processes and/or systems and/or other technologies are deployed. For example, if an implementer determines that speed and accuracy are paramount, the implementer may opt for mainly hardware and/or firmware vehicle; if flexibility is paramount, the implementer may opt for mainly software implementation; or, yet again alternatively, the implementer may opt for some combination of hardware, software, and/or firmware.
[0076] The foregoing detailed description has set forth various embodiments of the devices and/or processes via the use of block diagrams, flowcharts, and/or examples. Insofar as such block diagrams, flowcharts, and/or examples contain one or more functions and/or operations, each function and/or operation within such block diagrams, flowcharts, or examples may be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. In one embodiment, several portions of the subject matter described herein may be implemented via application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital signal processors (DSPs), or other integrated formats. However, t some aspects of the embodiments disclosed herein, in whole or in part, may be equivalently implemented in integrated circuits, as one or more computer programs executing on one or more computers (e.g., as one or more programs executing on one or more computer systems), as one or more programs executing on one or more processors (e.g., as one or more programs executing on one or more microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry and/or writing the code for the software and/or firmware are possible in light of this disclosure.
[0077] The present disclosure is not to be limited in terms of the particular embodiments described in this application, which are intended as illustrations of various aspects. Many modifications and variations can be made without departing from its spirit and scope. Functionally equivalent methods and apparatuses within the scope of the disclosure, in addition to those enumerated herein, are possible from the foregoing descriptions. Such modifications and variations are intended to fall within the scope of the appended claims. The present disclosure is to be limited only by the terms of the appended claims, along with the full scope of equivalents to which such claims are entitled. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting.
[0078] In addition, the mechanisms of the subject matter described herein are capable of being distributed as a program product in a variety of forms, and that an illustrative embodiment of the subject matter described herein applies regardless of the particular type of signal bearing medium used to actually carry out the distribution. Examples of a signal bearing medium include, but are not limited to, the following: a recordable type medium such as a floppy disk, a hard disk drive (HDD), a compact disc (CD), a digital versatile disk (DVD), a digital tape, a computer memory, a solid state drive (SSD), etc.; and a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.).
[0079] It is common within the art to describe devices and/or processes in the fashion set forth herein, and thereafter use engineering practices to integrate such described devices and/or processes into data processing systems. That is, at least a portion of the devices and/or processes described herein may be integrated into a data processing system via a reasonable amount of experimentation. A data processing system may include one or more of a system unit housing, a video display device, a memory such as volatile and non-volatile memory, processors such as microprocessors and digital signal processors, computational entities such as operating systems, drivers, graphical user interfaces, and applications programs, one or more interaction devices, such as a touch pad or screen, and/or control systems including feedback loops and control motors.
[0080] A data processing system may be implemented utilizing any suitable commercially available components, such as those found in data computing/communi cation and/or network computing/communication systems. The herein described subject matter sometimes illustrates different components contained within, or connected with, different other components. Such depicted architectures are merely exemplary, and in fact, many other architectures may be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality may be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermediate components. Likewise, any two components so associated may also be viewed as being "operably connected", or "operably coupled", to each other to achieve the desired functionality, and any two components capable of being so associated may also be viewed as being "operably couplable", to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically connectable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components.
[0081] With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.
[0082] In general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation, no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to embodiments containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an" (e.g., “a” and/or “an” should be interpreted to mean “at least one” or “one or more”); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number (e.g., the bare recitation of "two recitations," without other modifiers, means at least two recitations, or two or more recitations).
[0083] Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general, such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B.”
[0084] For any and all purposes, such as in terms of providing a written description, all ranges disclosed herein also encompass any and all possible subranges and combinations of subranges thereof. Any listed range can be easily recognized as sufficiently describing and enabling the same range being broken down into at least equal halves, thirds, quarters, fifths, tenths, etc. As a non-limiting example, each range discussed herein can be readily broken down into a lower third, middle third and upper third, etc. As will also be understood by one skilled in the art all language such as “up to,” “at least,” “greater than,” “less than,” and the like include the number recited and refer to ranges which can be subsequently broken down into subranges as discussed above. Finally, a range includes each individual member. Thus, for example, a group having 1-3 cells refers to groups having 1, 2, or 3 cells. Similarly, a group having 1-5 cells refers to groups having 1, 2, 3, 4, or 5 cells, and so forth.
[0085] While various aspects and embodiments have been disclosed herein, other aspects and embodiments are possible. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.

Claims

28 CLAIMSWHAT IS CLAIMED IS:
1. A system for management of bandwidth allocation in a multi-device environment, the system comprising: a hub device communicatively coupled to a plurality of networked devices at a location, the hub device configured to: determine available total bandwidth from one or more connectivity resources; receive device, application, user bandwidth demand profiles, demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities; a first server communicatively coupled to the hub device, the first server configured to generate, store, and update a plurality of device, application, user bandwidth demand profiles, and demand priorities; and a second server communicatively coupled to the hub device, the second server configured to generate, store, and update a plurality of standard user state of mind models.
2. The system of claim 1 , wherein the hub device is configured to determine the available total bandwidth from one or more connectivity resources based on available bandwidth from a metered wireless network, an unmetered wireless network, or a wired network.
3. The system of claim 1, wherein the hub device is configured to dynamically allocate the portions of the available total bandwidth to the plurality of devices, applications, or users through allocation of one or more of a connection timing, a bandwidth, or a network type to each device, application, or user.
4. The system of claim 1 , wherein the device, application, and user bandwidth demand profiles include information associated with one or more of a characteristic, a priority, a connection flexibility, or a bandwidth flexibility for each device, application and user.
5. The system of claim 1, wherein the second server is further configured to: receive captured one or more characteristics of the user; analyze the captured one or more characteristics of the user to generate or update a standard user state of mind model; and determine the current user state of mind for the user in relation to a current bandwidth demand by the user based on the updated standard user state of mind model.
6. The system of claim 5, wherein the one or more characteristics of the user include one or more of a feature expression, a microexpression, a facial microexpression, a gesture, a large body movement, a speech usage, a speech pattern, an emotion, a device interaction, or a body characteristic associated with the user.
7. The system of claim 5, wherein the second server is further configured to: weight the captured one or more characteristics of the user based on one or more environmental factors.
8. The system of claim 1, wherein the hub device and/or the second server are configured to employ a machine learning technique to determine the current user state of mind for each user or to allocate portions of the available total bandwidth.
9. The system of claim 1 , wherein the hub device is implemented as a computing device communicatively coupled to a customer premises equipment (CPE), the CPE, or a computing device within a network communicatively coupled to the plurality of networked devices.
10. The system of claim 1, wherein one of the connectivity resources includes a 5G- compliant network.
11. The system of claim 1 , wherein the hub device is configured to act as an access point for at least a portion of the plurality of networked devices.
12. The system of claim 1, wherein the plurality of networked devices include Internet of Things (loT) devices.
13. A hub device for management of bandwidth allocation in a multi-device environment, the hub device comprising: a communication module configured to facilitate communications with a plurality of networked devices and one or more computing devices over one or more networks; a memory configured to store instructions; and a processor coupled to the communication module and the memory, the processor, in conjunction with the instructions stored in the memory, configured to: determine available total bandwidth from the one or more networks; receive device, application, user bandwidth demand profiles, and demand priorities; determine a current user state of mind for a user; determine a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocate portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
14. The hub device of claim 13, wherein the processor is configured to determine the available total bandwidth from one or more networks based on available bandwidth from a metered wireless network, an unmetered wireless network, or a wired network.
15. The hub device of claim 13, wherein the processor is configured to dynamically allocate the portions of the available total bandwidth to the plurality of devices, applications, or users through allocation of one or more of a connection timing, a bandwidth, or a network type to each device, application, or user.
16. The hub device of claim 13, wherein the device, application, and user bandwidth demand profiles include information associated with one or more of a characteristic, a priority, a connection flexibility, or a bandwidth flexibility for each device, application and user.
17. The hub device of claim 13, wherein the processor is further configured to: receive captured one or more characteristics of the user; analyze the captured one or more characteristics of the user to generate or update a standard user state of mind model; and determine the current user state of mind for the user in relation to a current bandwidth demand by the user based on the updated standard user state of mind model.
18. The hub device of claim 17, wherein the one or more characteristics of the user include one or more of a feature expression, a microexpression, a facial microexpression, a gesture, a large body movement, a speech usage, a speech pattern, an emotion, a device interaction, or a body characteristic associated with the user.
19. The hub device of claim 17, wherein the processor is further configured to: weight the captured one or more characteristics of the user based on one or more environmental factors.
20. The hub device of claim 13, wherein the processor is configured to employ a machine learning technique to determine the current user state of mind for each user or to allocate portions of the available total bandwidth.
21. The hub device of claim 13, wherein the hub device is implemented as a computing device communicatively coupled to a customer premises equipment (CPE), the CPE, or a computing device within one of the one or more networks.
22. The hub device of claim 13, wherein one of the one or more networks includes a 5G- compliant network. 32
23. The hub device of claim 13, wherein the hub device is configured to act as an access point for at least a portion of the plurality of networked devices.
24. The hub device of claim 13, wherein the plurality of networked devices include Internet of Things (loT) devices.
25. A method for management of bandwidth allocation in a multi-device environment, the method comprising: determining available total bandwidth from one or more connectivity resources; receiving device, application, user bandwidth demand profiles, and demand priorities; determining a current user state of mind for a user; determining a current total bandwidth demand; and if the current bandwidth demand exceeds the available total bandwidth, dynamically allocating portions of the available total bandwidth to a plurality of devices, applications, or users based on the current user state of mind and the device, application, user bandwidth demand profiles, and demand priorities.
26. The method of claim 25, wherein determining the available total bandwidth from the one or more connectivity resources comprises: determining available bandwidth from a metered wireless network, an unmetered wireless network, or a wired network.
27. The method of claim 25, wherein dynamically allocating portions of the available total bandwidth to the plurality of devices, applications, or users comprises: allocating one or more of a connection timing, a bandwidth, or a network type to each device, application, or user.
28. The method of claim 25, wherein receiving the device, application, and user bandwidth demand profiles comprises: 33 receiving one or more of a characteristic, a priority, a connection flexibility, or a bandwidth flexibility for each device, application and user.
29. The method of claim 25, wherein determining the current user state of mind for the user comprises: capturing one or more characteristics of the user; analyzing the captured one or more characteristics of the user to update a standard user state of mind model; and determining the current user state of mind for the user in relation to a current bandwidth demand by the user based on the updated standard user state of mind model.
30. The method of claim 29, wherein capturing the one or more characteristics of the user comprises: capturing one or more of a feature expression, a microexpression, a facial microexpression, a gesture, a large body movement, a speech usage, a speech pattern, an emotion, a device interaction, or a body characteristic associated with the user.
31. The method of claim 29, wherein analyzing the captured one or more characteristics of the user comprises: weighting the captured one or more characteristics of the user based on one or more environmental factors.
32. The method of claim 25, further comprising: employing a machine learning technique to determine a current user state of mind for each user or to allocate portions of the available total bandwidth.
PCT/US2020/065182 2020-12-16 2020-12-16 Smart bandwidth allocation in multi-device environments WO2022132138A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2020/065182 WO2022132138A1 (en) 2020-12-16 2020-12-16 Smart bandwidth allocation in multi-device environments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/065182 WO2022132138A1 (en) 2020-12-16 2020-12-16 Smart bandwidth allocation in multi-device environments

Publications (1)

Publication Number Publication Date
WO2022132138A1 true WO2022132138A1 (en) 2022-06-23

Family

ID=82059711

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/065182 WO2022132138A1 (en) 2020-12-16 2020-12-16 Smart bandwidth allocation in multi-device environments

Country Status (1)

Country Link
WO (1) WO2022132138A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080192820A1 (en) * 2007-02-14 2008-08-14 Brooks Paul D Methods and apparatus for content delivery notification and management
US20140122594A1 (en) * 2012-07-03 2014-05-01 Alcatel-Lucent Usa, Inc. Method and apparatus for determining user satisfaction with services provided in a communication network
US20170171180A1 (en) * 2015-12-14 2017-06-15 Afero, Inc. System and method for sharing internet of things (iot) devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080192820A1 (en) * 2007-02-14 2008-08-14 Brooks Paul D Methods and apparatus for content delivery notification and management
US20140122594A1 (en) * 2012-07-03 2014-05-01 Alcatel-Lucent Usa, Inc. Method and apparatus for determining user satisfaction with services provided in a communication network
US20170171180A1 (en) * 2015-12-14 2017-06-15 Afero, Inc. System and method for sharing internet of things (iot) devices

Similar Documents

Publication Publication Date Title
Wang et al. Dependent task offloading for edge computing based on deep reinforcement learning
KR102444165B1 (en) Apparatus and method for providing a meeting adaptively
US10827206B1 (en) Dynamic video background responsive to environmental cues
Wu et al. Design and realization of a framework for human–system interaction in smart homes
CN109085885A (en) Intelligent ring
JP5972889B2 (en) Integration policy across disparate device types
Callaghan et al. Inhabited intelligent environments
US20210272467A1 (en) Interactive environments using visual computing and immersive reality
US20190038964A1 (en) Personalized calibration and adaption of vr experience
US10080961B2 (en) Uniform game display across multiple devices
CN110457569A (en) Cognitive engine for multiple internet of things equipment
CN116126510A (en) Method, related device and system for providing service based on multiple devices
Qian et al. AIEM: AI-enabled affective experience management
EP2962448A1 (en) Dynamic power management of context aware services
Kim R-learning-based team game model for Internet of things quality-of-service control scheme
WO2022132138A1 (en) Smart bandwidth allocation in multi-device environments
US20230379763A1 (en) Dynamic continuous quality of service adjustment system
Laskaridis et al. The future of consumer edge-ai computing
Parry et al. Introducing the media use behaviour conceptual framework
Chen et al. A distributed algorithm for maximizing utility of data collection in a crowd sensing system
CN115398354A (en) Dynamic optimized Environmental Control System (ECS)
CN115699964A (en) Scheduling radio resources in a communication network
Wallace When AI Meets IoT: AIoT
YR et al. A Fuzzy based Scheduling approach for Efficient Sensing in IoT-Cloud
Priya et al. DBAHHO: Deep belief network-based adaptive Harris Hawks optimization for adaptive offloading strategy in mobile edge computing

Legal Events

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

Ref document number: 20966134

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20966134

Country of ref document: EP

Kind code of ref document: A1