SYSTEM AND METHOD FOR OPTIMIZED APPLIANCE UTILIZATION
20210218591 ยท 2021-07-15
Inventors
- Bhuvanesh Prabhu (Bangalore, IN)
- Sarika Desai (Bangalore, IN)
- Nicu Ahmadi (Santa Ana, CA, US)
- Arsham Hatambeiki (San Francisco, CA, US)
Cpc classification
H04N21/42684
ELECTRICITY
H04N21/44231
ELECTRICITY
H04L12/2809
ELECTRICITY
G06F3/1423
PHYSICS
G09G2370/20
PHYSICS
H04L12/2807
ELECTRICITY
H04L12/281
ELECTRICITY
G09G5/12
PHYSICS
H04N21/4104
ELECTRICITY
International classification
H04L12/28
ELECTRICITY
G06F3/14
PHYSICS
G09G5/12
PHYSICS
Abstract
A system and method functions to automatically determine a capability of a consumer electronic device and capabilities of ports of an appliance to which the consumer electronic device is connected. The system and method further detects a port of the appliance to which a consumer electronic device is connected. When it is determined that the consumer electronic device is not connected to a port of the appliance that best supports the determined capability of the consumer electronic device, the system and method will automatically provide a user with instructions, e.g., via use of a speaker and/or a display, by which the user can reconnect the consumer electronic device to another port of the appliance having a determined capability that is better suited to the determined capability of the consumer electronic device.
Claims
1. A method for optimizing utilization of a sink appliance having a plurality of ports, comprising: using a first data indicative of a make and type of a source appliance to determine a capability of the source appliance; determining if the capability of the source appliance and a capability of at least a first one of the plurality of ports of the sink appliance match; and in response to it being determined that the capability of the source appliance and the capability of the at least one of the plurality of ports of the sink appliance match, causing an instruction to be provided to a user to inform the user that the consumer electronic device source appliance should be connected to the at least one of the plurality of ports of the sink appliance.
2. The method as recited in claim 1, wherein the plurality of ports each comprise a High-Definition Multimedia Interface port.
3. The method as recited in claim 1, wherein the first data is read from Extended Display Identification Data received by the sink appliance from the source appliance.
4. The method as recited in claim 1, wherein the first data is read from Consumer Electronics Control related data received by the sink appliance from the source appliance.
5. The method as recited in claim 1, wherein the capability of the source appliance comprises a video resolution capability.
6. The method as recited in claim 1, wherein the first data is provided by a controlling device application configured to control functional operations of the source appliance.
7. The method as recited in claim 1, wherein the sink appliance comprises a television.
8. The method as recited in claim 1, comprising causing the sink appliance to automatically enable the capability of the at least one of the plurality of ports of the sink appliance.
9. (canceled)
10. The method as recited in claim 1, comprising providing a remote server with the first data to determine the capability of the source appliance.
11. An appliance, comprising: a processing device; a plurality of ports in communication with the processing device; and a memory having instructions executable by the processing device, the instructions, when executed by the processing device, causing the appliance to: use first data indicative of a make and type of a source appliance to determine a capability of the source appliance; determine if the capability of the consumer device and a capability of at least a first one of the plurality of ports match; and in response to it being determined that the capability of the source appliance and the capability of the at least one of the plurality of ports match, cause an instruction to be provided to a user to inform the user that the source appliance should be connected to the at least one of the plurality of ports.
12. The appliance as recited in claim 11, wherein the plurality of ports each comprise a High-Definition Multimedia Interface port.
13. The appliance as recited in claim 11, wherein the first data is read from the signal comprises Extended Display Identification Data received from the source appliance.
14. The appliance as recited in claim 11, wherein the first data is read from Consumer Electronics Control related data received from the source appliance.
15. The appliance as recited in claim 11, wherein the capability of the source appliance comprises a video resolution capability.
16. The appliance as recited in claim 11, wherein the first data is provided by a controlling device application configured to control functional operations of the source appliance.
17. The appliance as recited in claim 11, wherein the appliance comprises a television.
18. The appliance as recited in claim 11, wherein the instructions cause the appliance to provide a remote server with the first data to determine the capability of the consumer device.
19. The appliance as recited in claim 11, wherein the instructions cause the appliance to automatically enable the capability at the at least one of the plurality of ports.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] For a better understanding of the hereinafter described systems and methods, reference may be had to preferred examples shown in the attached drawings in which:
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
DETAILED DESCRIPTION
[0021] With reference to
[0022] It will however be appreciated that while illustrated in the context of IR, RF, and wired CEC signal transmissions, in general, transmissions to and from device 100 may take the form of any convenient IR, RF, hardwired, point-to-point, or networked protocol, as necessary for a particular embodiment. Further, while wireless communications 116, 118, etc., between exemplary devices are illustrated herein as direct links, it should be appreciated that in some instances such communication may take place via a local area network or personal area network, and as such may involve various intermediary devices such as routers, bridges, access points, etc. Since these items are not necessary for an understanding of the instant disclosure, they are omitted from this and subsequent Figures for the sake of clarity.
[0023] Since smart device remote control apps such as that contemplated in the illustrative device 104 are well known, for the sake of brevity the operation, features, and functions thereof will not be described in detail herein. Nevertheless, if a more complete understanding of the nature of such apps is desired, the interested reader may turn to, for example, the before mentioned U.S. patent application Ser. No. 12/406,601 or U.S. patent application Ser. No. 13/329,940, (now U.S. Pat. No. 8,243,207).
[0024] Turning now to
[0025] With reference to
[0026] In the further illustrative embodiment of
[0027] As will be appreciated, various other configurations are also possible without departing from the underlying functional concept, for example the functional modules 100 may be incorporated into an Internet-capable TV, an HDMI switch, a game console, etc.; appliance command set and capability database 207 may be located at an internet cloud or a cable system headend, may be stored locally (in all or in part), which local storage may take the form of internal memory within the UCE itself or in an appliance such as a TV, STB or AV receiver, or may take the form of a memory stick or the like attachable to a smart device or appliance; etc.
[0028] With reference to
[0029] As will be understood by those skilled in the art, some or all of the memory 502 may include executable instructions that are intended to be executed by the processor 500 to control the operation of the CE device 100 or functional module(s) 100 (collectively, the functional programming) as well as data which serves to define the necessary control protocols and command values for use in transmitting command signals to controllable appliances (collectively, the command data). In this manner, the processor 500 may be programmed to control the various electronic components within the exemplary device 100 or functional module(s) 100, e.g., to monitor the communication means 504,510 for incoming request messages from controlling devices, to cause the transmission of appliance command signals, etc. To cause the device 100 or functional module(s) 100 to perform an action, the device 100 or functional module(s) 100 may be adapted to be responsive to events, such as a received request message from remote control 102 or smart device 104, changes in connected appliance status reported over HDMI interface 508, WiFi interface 510, or Ethernet interface 512, etc. In response to an event, appropriate instructions within the functional programming may be executed. For example, when a command request is received from a smart phone 104, the functional programming may retrieve from the command data stored in memory 502 a preferred command transmission medium (e.g., IR, CEC over HDMI, IP over WiFi, etc.) and a corresponding command value and control protocol to be used in transmitting that command to an intended target appliance, e.g., TV 106, in a format recognizable by that appliance to thereby control one or more functional operations of that appliance. By way of further example, the status of connected appliances, e.g., powered or not powered, currently selected input, playing or paused, etc., as may be discerned from interfaces 508 through 514, may be monitored and/or tabulated by the functional programming in order to facilitate adjustment of appliance settings to match user-defined activity profiles, e.g. Watch TV, View a movie, etc.
[0030] An overview of an exemplary control environment is presented in
[0031] The preferred method/protocol/medium for issuance of commands to the exemplary appliances of
[0032] In order to determine the optimum method for each configured appliance type and command, the core program 650 may be provisioned with a preferred command matrix 700, as illustrated in
[0033] In order to perform initial configuration of a device 100 or functional module(s) 100, a setup application may be provided. In some embodiments, such a set up application may take the form of programming to be executed on any convenient device with a suitable user interface and capable of establishing communication with the device 100 or functional module(s) 100, such as without limitation a smart phone, tablet computer, personal computer, set top box, TV, etc., as appropriate for a particular embodiment. In other embodiments such a set up application may be incorporated into the functional programming itself, utilizing for example a connected TV screen and an associated controlling device as the user interface. Regardless of the exact form and location of the programming and user interface means, the series of steps which may be performed by a set up application when configuring a device 100 or functional module(s) 100 for operation with a specific set of appliances remains similar. Accordingly, it will be appreciated that the methods comprising the illustrative set up application presented below in conjunction with
[0034] With reference to
[0035] Memory 802 may include executable instructions that are intended to be executed by the processor 800 to control the operation of the tablet computer device 202 and to implement various functionalities such as Web browsing, game playing, video streaming, etc. As is known in the art, programming comprising additional functionalities (referred to as apps) may be downloaded into tablet computer 202 via, for example, WiFi interface 818, USB 816, external memory 804, or any other convenient method. As discussed previously, one such app may comprise a remote control app, for example as that described in co-pending U.S. patent application Ser. No. 13/329,940 of like assignee and incorporated herein by reference in its entirety, which app may be for use in commanding the operation of appliances 106, 108, 110 and/or 120 via device 100 or functional module(s) 100. In order to initially configure device 100 or functional module(s) 100 to match the appliances to be controlled and to establish an appropriate command matrix, tablet computer 202 may also be provisioned with a setup app 214, either as part of a remote control app or as separately downloadable item.
[0036] With reference now to
[0037] Thereafter, at step 912 the setup application may display a listing of detected appliances (both identified and not yet identified) to the user. At step 914, the user may be prompted to enter appliance identifying information for those HDMI or otherwise connected appliances which were detected but not identified, as well as identifying information regarding any additional appliances which may form part of the system to be controlled but are not discoverable as described above (for example appliances such as AV receiver 120 or CD player 408 which may be responsive only to unidirectional IR commands). Without limitation, such identifying information may take the form of user-entered data such as an appliance type, brand and model number, or a setup code from a listing in a user guide; or may take the form of scanned or electronic information such as a digital picture of the appliance itself or of a bar code, QR code, or the like associated with appliance; near field acquisition of RFID tag data; etc.; or any combination thereof as appropriate for a particular embodiment.
[0038] Once appropriate identifying information has been acquired, at step 916 the setup app may communicate that information to a database server, for example server 206, for performance of step 918, comprising identification of and retrieval of command codeset and capability data corresponding to the identified appliances from a database 207, and provision of this data to the setup application for processing and ultimate transfer to the device 100 or functional module(s) 100. As will be appreciated, the transferred codeset data may comprise complete command data values and formatting information, may comprise pointers to command data values and formatting information already stored in the memories 502 and/or 802/804 or the memory of a device upon which the setup application is currently resident, or a combination thereof. Where necessary, for example when database 207 may contain alternate codesets for an identified appliance, or where uncertainty exists regarding a particular appliance model number, etc., at steps 920, 922, and 924 various control paradigms and/or command data sets may be tested against the appliances to be controlled. Such testing may take the form of soliciting user response to effects observable commands, monitoring of HDMI interface status changes as described for example in U.S. patent application Ser. No. 13/240,604, of like assignee and incorporated herein by reference in its entirety, or any other method as convenient for a particular application. Once appropriate codesets have been fully determined, at steps 926,928 and 930 a suitable preferred command matrix, for example as illustrated in
[0039] In order to select the optimum command method for each function of each configured appliance any suitable method may be utilized, for example a system-wide prioritization of command media and methods by desirability (e.g., apply IP, CEC, IR in descending order); appliance-specific command maps by brand and/or model; function-specific preference and/or priority maps (e.g., all volume function commands via IR where available); etc.; or any combination thereof. The exact selection of command method priorities or mapping may take into account factors such connection reliability, e.g., wired versus wireless, bidirectional versus unidirectional communication, etc.; speed of command transmission or execution; internal priorities within an appliance, e.g., received IP received packets processed before CEC packets, etc.; type of protocol support (e.g. error correction versus error detection; ack/nak, etc.); or any other factors which may applied in order to achieve optimum performance of a particular embodiment.
[0040] As will be appreciated, the construction of said preferred command matrix may be performed at the database server or within the setup application, or a combination thereof, depending on the particular embodiment. Once a preferred command matrix has been finalized and stored in the UCE device, at step 932 a series of desired appliance configurations associated with specific user activities may be configured and stored into memory, as will be now be described.
[0041] Upon completion and storage of a preferred command matrix, an exemplary setup application may subsequently guide a user through a series of steps in order to establish the desired appliance configurations for a series of possible activities. With reference to
[0042] Returning now to
[0043] If testing is unsuccessful, at step 1018 the set up application may return to step 1002 to allow reconfiguration of that activity and/or definition of alternative activities. If testing was successful, at steps 1020 and 1022 the completed activity matrix, for example 1100 as illustrated in
[0044] With reference now to
[0045] If the retrieved preferred command matrix element data is valid, at step 1306 the functional programming may cause the corresponding function command to be communicated to the target appliance using the indicated command value and transmission method, e.g., for the exemplary data element 720 this may comprise issuing a CEC power on command to CEC logical device address zero (TV) via the UCE HDMI interface 508. Once the command has been issued, at step 1308 the functional programming may determine if the communication interface and protocol used in issuing the command provides for any confirmation mechanism, i.e., explicit acknowledgement of receipt, monitoring of HDMI status on an interface, detection of a media stream or HDCP handshake, etc. If not, for example the command was issued using a unidirectional IR signal and no other confirmation means such as power or input signal monitoring is available, the functional programming may simply assume that the command was successful and processing is complete. If however confirmation means exists, at step 1310 the functional programming may wait to determine if the command was successfully executed. Once positive confirmation is received, processing is complete. If no confirmation or a negative confirmation is received, at step 1312 the functional programming may determine if an alternative method is available to communicate the command to the target appliance. Returning to the specific example presented above this may comprise accessing a secondary command matrix 716 in order to determine if an alternative communication method is available for the specific function, e.g., TV power on. If an alternative does exist, at step 1316 the substitute command value and transmission method may be retrieved and processing may return to step 1306 to initiate an alternative attempt. Returning again to the specific example, if the CEC power on command corresponding to data element 720 of matrix 700 issued to TV 106 cannot be confirmed, an IR power on command encoded according to SIRCS (Sony Infrared Control System) in correspondence with the equivalent data element in secondary matrix 716 may be attempted as a substitute.
[0046] In addition to relaying individual command requests as described above, an exemplary device having the functional programming may also support activity selection, whereby receipt of a single user request from a controlling device may cause a series of commands to be issued to various appliances in order to configure a system appropriately for a particular user activity, such as for example, watching television. To this end a set of matrices defining desired equipment states suitable to various activities, for example as illustrated at 1100 through 1102 of
[0047] In order to configure a group of appliances for a desired activity, the functional programming may compare a desired state matrix, for example 1100, to a current state matrix, for example 1200, element by element, issuing commands as necessary to bring appliances to the desired state. By way of example, an exemplary series of steps which may be performed by the functional programming in order to effect a Watch TV activity configuration will now be presented in conjunction with
[0048] Upon receipt of a Watch TV request 1400, at step 1402 the exemplary functional programming may access an applicable appliance state matrix 1100. Next, at step 1404 it may be determined by the functional programming whether the present power state of TV 106 as indicated by current state matrix 1200 matches the desired state stored in the corresponding data element of matrix 1100. If the states match, processing may continue at step 1408. If the states do not match, at step 1406 a power on command may be communicated to TV 106. As will be appreciated from the earlier discussion in conjunction with
[0049] As noted above, the functional programming may also support activity selection, whereby receipt of a single user request from a smart device may cause a series of commands to be issued to various appliances in order to configure a system appropriately for one or more user activities, such as watch TV, watch movie, listen to music, etc. To setup the user interface of the smart device to support such macro command functionality, an exemplary method is illustrated in
[0050] The setup application then continues to step 1510 (after scanning for CEC connected appliances as discussed above) whereat the setup application may next determine if additional non-CEC appliances are connected to the UCE device via the HDMI interface. This may be accomplished by requesting the UCE programming to scan for any further HDMI connections at step 1512 and communicate the findings back to the setup application. Though not illustrated, it will be appreciated that, where appropriate for a particular embodiment, the functional programming may conduct similar scans in order to discover appliances connected via Ethernet, USB, Bluetooth, RF4CE, WiFi etc., where such interfaces may be provisioned to a device 100 or device having functional module(s) 100.
[0051] Thereafter, at step 1514 the setup application may display a listing of detected appliances (both identified and not yet identified) to the user. At step 1516, the user may then be prompted to enter appliance identifying information for those HDMI or otherwise connected appliances which were detected but not identified, as well as identifying information regarding any additional appliances which may form part of the system to be controlled but which were not discoverable as described above (for example appliances such as AV receiver 120 or CD player 408 which may be responsive only to unidirectional IR commands). Without limitation, such identifying information may take the form of user-entered data such as an appliance type, brand and model number, or a setup code from a listing in a user guide; or may take the form of scanned or electronic information such as a digital picture of the appliance itself or of a bar code, QR code, or the like associated with appliance; near field acquisition of RFID tag data; MAC address; etc.; or any combination thereof as appropriate for a particular embodiment.
[0052] Once appropriate identifying information has been acquired, at step 1518 the setup app may communicate that information to a database server, for example server 206, for performance of step 1520 in which the database server uses the identification information to retrieve icon information as needed (e.g., when such data was not obtainable from the appliance), command information as discussed previously, and in step 1522, to automatically generate macros which correspond to the appliance or a plurality of appliances considering their capability data as maintained in a database 207 and/or as retrieved from the appliances. Any such data gathered from and/or created by the server 206 will then be provisioned to the setup application for processing and ultimate transfer to the smart device and/or device 100 as required. As will be appreciated, the transferred information and/or metadata may comprise complete command data values, appliance input/output data and current status, formatting information, pointers to command data values and formatting information already stored in the memories 502 and/or 802/804 or memory of the device upon which the setup application is currently resident, etc. Where necessary, for example when database 207 may contain alternate codesets, icon metadata, or macro information for an identified appliance, or where uncertainty exists regarding a particular appliance model number, etc., at steps 1528, 1530, and 1522 various control paradigms and/or command data sets may be tested against the appliances to be controlled. Such testing may take the form of soliciting user response to effects observable commands, monitoring of HDMI interface status changes as described for example in U.S. patent application Ser. No. 13/240,604, of like assignee and incorporated herein by reference in its entirety, or any other method as convenient for a particular application. Once appropriate codesets and macro operations have been fully determined, at steps 1528 and 1530 a suitable preferred user profile 1524, may be constructed and stored into the memory 502, the user profile 1524 being constructed by considering the communication capabilities and functionalities of the devices identified via the above-described processes.
[0053] In order to select the optimum command method for each function of each configured appliance any suitable method may be utilized, for example a system-wide prioritization of command media and methods by desirability (e.g. apply IP, CEC, IR in descending order); appliance-specific command maps by brand and/or model; function-specific preference and/or priority maps (e.g. all volume function commands via IR where available); etc.; or any combination thereof. The exact selection of command method priorities or mapping may take into account factors such connection reliability, e.g. wired versus wireless, bidirectional versus unidirectional communication, etc.; speed of command transmission or execution; internal priorities within an appliance, e.g. received IP received packets processed before CEC packets, etc.; type of protocol support (e.g. error correction versus error detection; ack/nak, etc.); or any other factors which may applied in order to achieve optimum performance of a particular embodiment.
[0054] As will be appreciated, the construction of said user profile 1524 may be performed at the database server or within the setup application, or a combination thereof, depending on the particular embodiment.
[0055] Turning to
[0056] By way of more particular example, considering a consumer electronic device that has capabilities associated with HDMI version 2.0 and an appliance having at least one port that supports HDMI version 2.0 capabilities (which means the appliance supports 4K video as shown in
[0057] Next, in the illustrative example, having determined that the consumer electronic device is 4K capable, the method would check to determine if the consumer electronic device is connected to a 4K capable port of the appliance, e.g., is connected to one of HDMI port 1 or HDMI port 2 of the appliance. To this end, the system may instruct the user to place the consumer electronic device into a known state and may then scan the ports of the appliance to determine the port to which the consumer electronic device is connected as described previously. Using the determined port capability information obtained from the appliance signature database, it would then be determined if the determined port to which the consumer electronic device is connected is a 4K capable port of the appliance, e.g., is one of HDMI port 1 or HDMI port 2. When it is determined that the port to which the appliance is connected is not a 4K capable port of the appliance, the system may then instruct the user, via use of an audio or visual instruction, to reconnect the consumer electronic device to one of HDMI port 1 or HDMI 2 port to thereby allow the user to fully utilize the capabilities of the consumer electronic device. As will be appreciated, as the system may recognize that HDMI port 1 or HDMI port 2 is already connected to another consumer electronic device, the system may function to recommend only an available port to the user. Furthermore, as the system may use the same process to determine that another consumer electronic device is coupled to an incompatible port, e.g., that a non-4K capable appliance is coupled to a 4K capable port, the system may further instruct the use to reconnect the another appliance to a different, more appropriate port of the consumer electronic device while instructing the user to use the now-free port to connect the consumer electronic device of interest.
[0058] In some instances where a consumer electronic device or appliance is not found in the consumer electronic device or appliance signature database, it will be appreciated that the system may use a machine learning process to attempt to predict a capability of the consumer electronic device and/or port capability information via use of any consumer electronic device/appliance identifying data provide thereto for this purpose. In addition, it will also be appreciated that port capability may be determined by analyzing data exchanges via a given port without the need to reference a particular database. For example, by analyzing EDID data, such as the data value provided for the amount of active or addressable horizontal pixels, it can be determined whether a port is 4K capable, e.g., a value below a threshold valuesuch as 1920can indicate the port is not 4K capable.
[0059] Finally, in the event that is determined that no port of the appliance is capable of supporting the capabilities of a given consumer electronic device, the system can function to recommend additional appliances for purchase and/or integration into the system of the user as described in U.S. Pat. No. 9,600,082, the disclosure of which is incorporated herein by reference in its entirety.
[0060] In further circumstances, the appliance detection operation may utilize a determined bandwidth (e.g., 18 Gbps or 48 Gbps and/or supported frame rate) to determine the attributes that would be needed by an appliance to provide the best user experience when the appliance is connected thru an HDMI cable. In this scenario, the database may be polled to obtain the recommended attribute information and the recommended attribute information can be used to automatically enable/disable certain features and/or settings, such as CEC, ARC, Internet over HDMI, framerate, etc., or to otherwise notify the user that manual enabling/disabling of certain features and/or settings would be desirable. Likewise, the database may be polled to obtain hardware recommendations, e.g., the user may be informed that using an ultra-high speed cable and connecting that cable to HDMI2 would provide the best user experience at 4 k at 60 Hz and that the user should not use a determined current set up of 4 k @30 Hz. Similarly, the system can recommend (for example when a video game console is detected) that the user setup the system to perform at 120 frames per second (fps) but at a lower resolution when gaming is made active (or cause such action to be performed automatically) while also using the obtained information to inform the user that using an ultra-high speed HDMI cable in this instance would not provide a better user experience.
[0061] It is also contemplated that, when an appliance does not support all of the latest HDMI features to provide the best user experience at the time that the appliance was set up, when/if the firmware of the appliance is updated, the steps described above can be repeated in order to provision the system in a manner that will provide the latest recommendations to the user to obtain the best user experience. In some circumstances, the steps can be caused to be repeated automatically in response to such a firmware update.
[0062] While various concepts have been described in detail, it will be appreciated by those skilled in the art that various modifications and alternatives to those concepts could be developed in light of the overall teachings of the disclosure. For example, in an alternate embodiment of functional programming, in place of a preferred command matrix such as illustrated in
[0063] Further, while described in the context of functional modules and illustrated using block diagram format, it is to be understood that, unless otherwise stated to the contrary, one or more of the described functions and/or features may be integrated in a single physical device and/or a software module, or one or more functions and/or features may be implemented in separate physical devices or software modules. It will also be appreciated that a detailed discussion of the actual implementation of each module is not necessary for an enabling understanding of the invention. Rather, the actual implementation of such modules would be well within the routine skill of an engineer, given the disclosure herein of the attributes, functionality, and inter-relationship of the various functional modules in the system. Therefore, a person skilled in the art, applying ordinary skill, will be able to practice the invention set forth in the claims without undue experimentation. It will be additionally appreciated that the particular concepts disclosed are meant to be illustrative only and not limiting as to the scope of the invention which is to be given the full breadth of the appended claims and any equivalents thereof.
[0064] All patents/publications cited within this document are hereby incorporated by reference in their entirety.