Machine-readable media, methods, apparatus and system for managing an encoder output rate at least partially based upon wireless communication link feedback are described. In some embodiments, a device driver of the system may generate link information indicating quality of a wireless communication link between the system and another system, wherein the link information is generated at least partially based upon at least one of media access layer (mac) information and physical layer information of the system. A system managing entity of the system may manage an output rate of an encoder of the system at least partially based upon the link information.
|
6. A non-transitory storage medium having stored thereon instructions that, when executed by a machine, result in a device driver, the device driver comprising:
a media access control (mac) layer management entity to generate link information indicating quality of a wireless communication link between the system and another system, wherein the link information is generated at least partially based upon at least one type of information selected from a group consisting of mac layer information and physical layer information of the system, and wherein the link information is configured to allow managing an output rate of an encoder of the system, relative to a transmission rate at which the system transmits data to the another system on the wireless communication link, based on whether or not the link information indicates that the quality of the wireless communication link is in a critical condition.
1. A method, comprising:
obtaining link information indicating quality of a wireless communication link between a system and another system, wherein the link information is at least partially based upon at least one type of information selected from a group consisting of media access control (mac) layer information and physical layer information of the system; and
managing an output rate of an encoder of the system at least partially based upon the link information, wherein the managing comprises, when the link information indicates that the quality of the wireless communication link is not in a critical condition, matching the output rate of the encoder with a transmission rate at which the system transmits data to the another system on the wireless communication link, and, when the link information indicates that the quality of the wireless communication link is in the critical condition, reducing the output rate of the encoder to be lower than the transmission rate at which the system transmits data to the another system on the wireless communication link.
18. A non-transitory storage medium having stored thereon instructions that, when executed by a machine, result in:
obtaining link information indicating quality of a wireless communication link between a system and another system, wherein the link information is at least partially based upon at least one type of information selected from a group consisting of media access control (mac) layer information and physical layer information of the system; and
managing an output rate of an encoder of the system at least partially based upon the link information, wherein the managing comprises, when the link information indicates that the quality of the wireless communication link is not in a critical condition, matching the output rate of the encoder with a transmission rate at which the system transmits data to the another system on the wireless communication link, and, when the link information indicates that quality of the wireless communication link is in the critical condition, reducing the output rate of the encoder to be lower than the transmission rate at which the system transmits data to the another system on the wireless communication link.
13. A system, comprising:
a transceiver to transceive data via a wireless communication link between the system and another system;
a chipset;
a device driver to generate link information indicating quality of said wireless communication link, wherein the link information is at least partially based upon at least one type of information selected from a group consisting of media access control (mac) layer information and physical layer information of the system; and
a station management entity to manage an output rate of an encoder of the system at least partially based upon the link information, wherein said station management entity is to, when the link information indicates that the quality of the wireless communication link is not in a critical condition, match the output rate of the encoder with a transmission rate at which the system transmits data to the another system on the wireless communication link, said station management entity is to, when the link information indicates that the quality of the wireless communication link is in the critical condition, reduce the output rate of the encoder to be lower than the transmission rate at which the system transmits data to the another system on the wireless communication link.
2. The method of
3. The method of
4. The method of
5. The method of
7. The non-transitory storage medium of
8. The non-transitory storage medium of
9. The non-transitory storage medium of
10. The non-transitory storage medium of
11. The non-transitory storage medium of
12. The non-transitory storage medium of
14. The system of
15. The system of
16. The system of
17. The system of
19. The non-transitory storage medium of
20. The non-transitory storage medium of
21. The non-transitory storage medium of
22. The non-transitory storage medium of
|
This application is a U.S. National Phase application under 35 U.S.C. §371 of International Patent Application No. PCT/CN2009/001542, filed Dec. 24, 2009, entitled “METHOD, APPARATUS AND SYSTEM OF MANAGING AN ENCODER OUTPUT RATE BASED UPON WIRELESS COMMUNICATION LINK FEEDBACK”, the entire contents of which are incorporated herein by reference.
High speed wireless communication, such as 60 GHz wireless communication technology according to Wireless Gigabits Alliance, may be widely used for short-range wireless transmissions in many multimedia applications that may require transmission of a huge amount of data in a short distance within a few seconds, such as high-definition digital video transferred between a computer and monitors, or between a set-top box and high-definition televisions.
Due to the high speed transmission, when the high speed link (e.g., 60 GHz link) is severely degrading and/or to be broken, a significant amount of data may need to be buffered at a transmitting station, while a receiving station may wait to receive the data to be displayed.
The invention described herein is illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. For example, the dimensions of some elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.
The following description describes techniques for managing an encoder output rate at least partially based upon wireless communication link feedback. In the following description, numerous specific details such as logic implementations, pseudo-code, methods to specify operands, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide a more thorough understanding of the present invention. However, the invention may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
References in the specification to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Embodiments of the invention may be implemented in hardware, firmware, software, or any combination thereof. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by one or more processors. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; and others.
Examples of stations 11 and 12 may comprise computer, set-top box, digital video disc (DVD) player, video compact disc (VCD) player, compact disc (CD) player, hand-held device, monitor and other devices for transceiving and processing data. Herein, “transceiving” may comprise sending and/or receiving. For example, station 11 (e.g., a DVD player) may transmit video data to station 12 (e.g., a monitor) via the 60 GHz wireless communication link, and vise versa.
In the embodiment, station 11 may comprise one or more processor 21, chipset 22, I/O device 23, firmware 24, memory system 25, and possibly other components. One or more processors 21 may be communicatively coupled to various components (e.g., the chipset 22) via one or more buses such as a processor bus. Processors 21 may be implemented as an integrated circuit (IC) with one or more processing cores that may execute codes under a suitable architecture, for example, including Intel® Xeon™, Intel® Pentium™, Intel® Itanium™, Intel® Core architectures, available from Intel Corporation of Santa Clara, Calif.
Chipset 22 may provide one or more communicative path among processors 21, I/O devices 23, firmware 24, memory 25 and possibly other components. I/O devices 33 may input or output data to or from station 11 via the high speed wireless communication link, such as the 60 GHz wireless communication link according to the Wireless Gigabits Alliance. Examples for I/O devices 34 may comprise a network interface card, video input interface such as HDMI, DVI or DisplayPort and possibly other devices for transceiving data.
Firmware 24 may comprise programs or data structures that internally control various devices of station 11. Firmware 24 may reside in read-only memory (ROM), programmable ROM, flash memory and/or other types of storing devices. In an embodiment, firmware 24 may comprise a device driver 240 to control at least one of I/O device 23, e.g., network interface card (NID) 230 or video capturing module (not shown in
In an embodiment, MLME 2402 may generate link information indicating quality of the high speed wireless link (e.g., 60 GHz wireless link). If the data (e.g., video data) is transmitted on the link in form of streams, the link information may indicate quality of the high speed wireless link with regard to per data stream transmitted on the link. It should be appreciated that if the data is transmitted in other forms, the link information may be adapted accordingly.
In an embodiment, the link information may comprise a raw transmission rate over the link, a packet error rate (PER), a link condition parameter and/or other parameters indicating the link quality per data stream. The link condition parameter may indicate how much the link is degraded. For example, the link condition parameter may be a link broken possibility.
MLME 2402 may generate the link information at least partially based upon MAC layer and/or PHY layer information. In an embodiment, MLME 2402 may track the raw transmission rate over the physical layer, for example, available throughput over the link, through communicating with PLME 2401. MLME 2402 may further calculate the PER by tracking successful transmissions vs. unsuccessful transmissions, for example, with use of acknowledgement (ACK) and non-acknowledgement (NACK) information from station 12. MLME 2402 may further track signal to noise rate (SNR) at the physical layer for a number of time periods and generate the link condition parameter based on the SNRs. In an embodiment, the longer and/or the faster the SNR degrades (e.g., the SNR is lower than a predetermined threshold), the higher possibility the link condition is going to be broken.
Memory 25 may store instructions and data to be executed by the processor 31. Examples for memory 32 may comprise one or any combination of the following semiconductor devices, such as synchronous dynamic random access memory (SDRAM) devices, RAMBUS dynamic random access memory (RDRAM) devices, double data rate (DDR) memory devices, static random access memory (SRAM), and flash memory devices.
In an embodiment, memory 25 may store instructions and data functioning as a station management entity (SME) 250 to manage a rate at which an encoder 251 outputs encoded data (e.g., video data) to a buffer 252. It should be appreciated that station management entity 250, encoder 251, and/or buffer 252 may be implemented with other technologies, such as implemented with digital/analog circuits.
SME 250 may comprise link information obtaining logic 2501 and encoder managing logic 2502. Link information obtaining logic 2501 may obtain the link information related to the quality of the high speed wireless communication link (e.g., 60 GHz wireless link). In an embodiment, the link information may be generated at least partially based upon the MAC layer and/or PHY layer information. In another embodiment, the link information may indicate the link quality with regard to per data stream transmitted on the link.
SME 250 may obtain the link information from MLME 2402. In an embodiment, MLME 2402 may send the link information to SME 250 upon a request from SME 250. In another embodiment, MLME 2402 may send the link information if the link information shows the link is in a critical condition, for example, if the link is severely degraded and/or almost broken. It should be appreciated that “critical condition” may be determined in other ways.
In an embodiment, link information may comprise the raw transmission rate over the link, packet error rate, link condition parameter and/or other parameters indicating the link quality per data stream.
Encoder managing logic 2502 may manage the rate at which encoder 251 outputs the encoded data to buffer 252 at least partially based upon the link information obtained from MLME 2402. Encoder managing logic 2502 may determine whether the link information indicates that the link is in the critical condition. In an embodiment, encoder manager logic 2502 may determine that the link is in a critical condition if the link condition parameter (e.g., link broken possibility) is over a predetermined threshold and vice versa.
If the link is determined to be in a non-critical condition, encoder managing logic 2502 may keep the encoder output rate matching with a transmission rate that station 11 transmits the encoded data to station 12. In an embodiment, the transmission rate may include at least one of the raw transmission rate equal to the available throughput at which station 11 successfully or unsuccessfully transmits the encoded data to station 12, and an effective transmission rate at which station 11 successfully transmits the encoded data to station 12. In an embodiment, the effective transmission rate may be calculated with the following equation:
Effective transmission rate=Raw transmission rate (or available output)*(1−PER)
If the link is determined to be in the critical condition, encoder managing logic 2502 may adjust the encoder output rate lower than the rate that station 11 transmits the encoded data on the link. In this way, buffer 252 space may be preserved for the incoming link degradation, which may cause more data stuck in buffer 252. In an embodiment, the encoder output rate may be reduced according to the following formula:
Encoder output rate=Transmission rate/N
Wherein, N may be configurable at least partially based upon a link broken possibility and predicated time to link broken.
Different embodiments may apply different technologies to adjust the encoder output rate. In another embodiment, the encoder output rate may be lowered through increasing an encoder compression rate, dropping a part of the data, sub-sampling a color space (for video data), and possible other ways, and vice versa. To increase the encoder compression rate and/or to sub-sample the color space may help to transmit more data with the limited bandwidth so that station 12 may receive and buffer the highly compressed data for displaying during the link degrading period.
Different embodiments may apply different technologies to stimulate MLME 2402 to generate the link packet. In an embodiment, MLME 2402 or other device may generate the link packet upon receiving a link packet request from SME 250 (block 301). In another embodiment, MLME 2402 or other device may generate the link packet if the link is in a critical condition (block 302), for example, the link is severely degraded and/or almost broken. For example, MLME 2402 or other device may track SNRs over the link, and if the SNRs are lower than a predetermined threshold for a period of time, MLME 2402 or other device may determine that the link is in the critical condition.
In block 303, MLME 2402 or other device may generate the link information indicating the quality of the high speed wireless link. In an embodiment, the link information may comprise the raw transmission rate over the link, packet error rate (PER), link condition parameter and/or other parameters indicating the link quality, e.g., the link quality per data stream. The link condition parameter may indicate how much the link is degraded. For example, the link condition parameter may be a link broken possibility.
Many technologies may be applied for MLME 2402 or other device to generate the link information. In an embodiment, MLME 2402 or other device may track the raw transmission rate over the physical layer, e.g., available throughput over the link, through communicating with PLME 2401. MLME 2402 or other device may further calculate the PER by tracking successful transmission vs. unsuccessful transmission, for example, via acknowledgement (ACK) and non-acknowledgement (NACK) from station 12. MLME 2402 or other device may track signal to noise rate (SNR) at the physical layer for a number of time periods and generate the link condition parameter based on the SNRs. In an embodiment, the longer and/or the faster the SNR degrades (e.g., the SNR is lower than a predetermined threshold), the higher possibility that the link condition is going to be broken.
Then, MLME 2402 or other device may pack the link information into a link packet in block 304 and send the link packet to SME 250 in block 305.
In block 403, SME 250 or other device may determine if the link is in the critical condition, for example, whether the link is severely degrading and/or whether the link is to be broken. In an embodiment, SME 250 or other device may make the determination at least partially based upon the link quality parameter. Taking the link quality parameter is a link broken possibility as an example, SME 250 or other device may determine the link is in the critical condition if the link broken possibility is higher than a predetermined threshold and vice versa.
In response that the link is not in the critical condition, in block 404, SME 250 or other device may keep the encoder output rate matched with the transmission rate. In an embodiment, the transmission rate may include at least one of the raw transmission rate equal to the available throughput at which station 11 successfully or unsuccessfully transmits the encoded data to station 12, and the effective transmission rate at which station 11 successfully transmit the encoded data to station 12. In an embodiment, the effective transmission rate may be calculated with the following equation:
Effective transmission rate=Raw transmission rate (or available output)*(1−PER)
In response that the link is in the critical condition, in block 405, SME 250 or other device may adjust the encoder output rate to be lower than the transmission rate. Different embodiments may apply different technologies to adjust the encoder output rate. In an embodiment, the encoder output rate may be lowered through increasing an encoder compression rate, dropping a part of the data, sub-sampling a color space (for video data), and possible other ways, and vice versa. To increase the encoder compression rate and/or to sub-sample the color space may help to transmit more data with the limited bandwidth so that station 12 may receive and buffer the highly compressed data for displaying during the link degrading period.
Although the present invention has been described in conjunction with certain embodiments, it shall be understood that modifications and variations may be resorted to without departing from the spirit and scope of the invention as those skilled in the art readily understand. Such modifications and variations are considered to be within the scope of the invention and the appended claims.
Li, Guoqing, Belogolovy, Andrey, Somayazulu, Vallabhajosyula S., Shen, Lei, Tsvetkov, Mikhail S.
Patent | Priority | Assignee | Title |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 24 2009 | Intel Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
May 24 2019 | 4 years fee payment window open |
Nov 24 2019 | 6 months grace period start (w surcharge) |
May 24 2020 | patent expiry (for year 4) |
May 24 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
May 24 2023 | 8 years fee payment window open |
Nov 24 2023 | 6 months grace period start (w surcharge) |
May 24 2024 | patent expiry (for year 8) |
May 24 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
May 24 2027 | 12 years fee payment window open |
Nov 24 2027 | 6 months grace period start (w surcharge) |
May 24 2028 | patent expiry (for year 12) |
May 24 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |