Patents by Inventor Philip A. Chou
Philip A. Chou has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20070274324Abstract: A local network coding framework and method including techniques to improve efficiency in a wireless network by reducing overhead. The local network coding method includes exchanging data availability between nodes on the wireless network by sending Bloom filters of lists of packets to neighboring nodes. Based on data availability, optimized mixing of pure packets is performed to form mixture packets for output. A separate acknowledgement buffer keeps track of the pure packets transmitted but not acknowledged. If an acknowledgement does not arrive after a certain time period, the packet is assumed to be lost and is retransmitted. An optimized packet mixing process generates mixture packets and decides which nodes to send the mixture packets. The local network coding framework and method also includes methods for representing the composition of a mixture packet and using mixing at a wireless access point to improve the performance of the wireless local area network.Type: ApplicationFiled: May 26, 2006Publication date: November 29, 2007Applicant: Microsoft CorporationInventors: Yunnan Wu, Jitendra D. Padhye, Ranveer Chandra, Venkata N. Padmanabhan, Philip A. Chou, Mohamed Jawad Khaki
-
Publication number: 20070263607Abstract: Structured hierarchies for communicating contextual information relating to a VoIP conversation are provided. The structured hierarchies are utilized for efficient communications of various amounts and types of contextual information over a VoIP conversation channel. Information identifying at least one structured hierarchy, which will be used to carry the contextual information, is transmitted during establishment of a conversation between two VoIP enhanced devices and prior to the exchange of contextual information. The structural hierarchy is selected from a set of predefined and declared structured hierarchies. Subsequently transmitted contextual information exchanged between two VoIP enhanced devices is represented in accordance with the identified structural hierarchy. Additionally, the structural hierarchies can be extensible by the addition of more definitions to the current structural hierarchies.Type: ApplicationFiled: March 31, 2006Publication date: November 15, 2007Applicant: Microsoft CorporationInventors: David Milstein, David Howell, Linda Criddle, Michael Malueg, Philip Chou
-
Publication number: 20070253407Abstract: A method and system for providing enhanced VoIP services relating to the use of callee rules and/or caller rules is provided. A callee may specify callee rules defining the callee preferences such as which VoIP device of the callee is appropriate for responding to an incoming communication from a specified caller. The callee rules may define a priority of VoIP devices of the callee, designating in which order the VoIP devices are to be notified of any incoming communication from a specified caller. Similarly, a caller can specify caller rules defining the caller preferences. The method and system compares the callee rules and the caller rules to establish a communication channel. As such, various enhanced VoIP services can be tailored based on the callee rules and the caller rules.Type: ApplicationFiled: May 1, 2006Publication date: November 1, 2007Applicant: Microsoft CorporationInventors: Kaunsan Wang, Michael Malueg, Philip Chou
-
Publication number: 20070239428Abstract: A method and system for processing contextual information relating to an exchange of a conversation over a communication channel is provided. Several users, and/or service providers are allowed to specify a set of rules relating to a conversation channel. Contextual information, including information relating to the specified set of rules and conditions of the users, is exchanged among the users and/or several service providers when one user requests to initiate a communication channel. The received contextual information is processed to extract a set of rules and the current conditions of users. If the current conditions of the users satisfy the set of rules, a corresponding communication channel is established among the users. However, additional contextual information may be received and processed whenever there is a change in the contextual information during the conversation. Appropriate actions to the existing communication channel may be determined based on the changes.Type: ApplicationFiled: April 6, 2006Publication date: October 11, 2007Applicant: Microsoft CorporationInventors: David Milstein, David Howell, Kuansan Wang, Linda Criddle, Michael Malueg, Philip Chou, Scott Forbes, Timothy Moore
-
Publication number: 20070237130Abstract: Aspects of the present invention are directed at obtaining contextual information with a voicemail message. In accordance with one embodiment, a method is provided that obtains additional contextual information that is not obtained automatically when a voicemail message is received. More specifically, the method includes automatically obtaining a first set of contextual information from a client associated with the caller when the caller is transferred to a voicemail system. Then a determination is made regarding whether the callee requests that additional contextual information be obtained. If the callee requests that additional contextual information be obtained, the requested information is obtained from a third-party service or by prompting the caller.Type: ApplicationFiled: April 6, 2006Publication date: October 11, 2007Applicant: Microsoft CorporationInventors: David Milstein, David Howell, Linda Criddle, Philip Chou, Timothy Moore
-
Publication number: 20070230439Abstract: A method and system for communicating a variable set of contextual information relating to a conversation over a communication channel is provided. When the contextual information is exchanged, any authorized sending party of the contextual information can change the scope, content, or amount of the contextual information that is transmitted to a next receiving party in a determined communication channel path. Before transmitting the contextual information, a desirable scope of the contextual information may be determined based on the next receiving party, in conjunction with the sending party's rules. The contextual information may be updated by adding new contextual information and/or deleting part of the contextual information which is outside of the scope. No contextual information may be transmitted if the next destination desires no contextual information or does not have capabilities to receive any contextual information.Type: ApplicationFiled: March 31, 2006Publication date: October 4, 2007Applicant: Microsoft CorporationInventors: David Milstein, David Howell, Linda Criddle, Michael Malueg, Philip Chou
-
Publication number: 20070206610Abstract: Various embodiments can utilize a distributed solution for scheduling connections between peers in a file sharing environment. In accordance with at least some embodiments, individual nodes in a peer-to-peer system include scheduling software that enables the nodes to make scheduling decisions with regard to how, when and where connections are made with other peers. Scheduling decisions can be based on a number of different parameters. In at least some embodiments, a synchronization negotiation manager is embodied with logic that drives the negotiation and scheduling process. This logic is represented by an innovative state machine that is designed to implement the negotiation and synchronization process.Type: ApplicationFiled: December 16, 2005Publication date: September 6, 2007Applicant: Microsoft CorporationInventors: Dan Teodosiu, Philip Chou, Alexandra Heron, Cheng Huang, Tom Kleinpeter, Jin Li, Eyal Schwartz, John Spivey, David Steere
-
Publication number: 20070201371Abstract: Congestion adaptive data routing is leveraged to provide a substantial increase in data throughput in networks with data congestion. By continuously adapting the data routes when a congested route is encountered, the data can reach its destination via alternate routes around the congested area. This is accomplished in a distributed manner where each node provides an alternative path to congestion based on its local knowledge and/or knowledge obtained from neighboring nodes. This allows the data path to be dynamically adjusted for congestion without requiring a centralized body of control. In another instance, data rate changes can be combined with data path changes to increase the efficiency of the data throughput. Alternative routes can be determined based upon the costs associated with selecting that route. Selecting a minimum cost route yields the most efficient transfer of data.Type: ApplicationFiled: February 28, 2006Publication date: August 30, 2007Applicant: Microsoft CorporationInventors: Philip Chou, Kamal Jain, Dinesh Garg
-
Publication number: 20070204203Abstract: A data sequence may be encoded in a plurality of layers of multiple description coding. The layers of multiple description coding may include a first and a second layer of multiple description coding. The first layer of multiple description coding may include an initial part of a data sequence as well as forward error correction code for the initial part. The second layer of multiple description coding may include a next part of the data sequence as well as forward error correction code for the next part. A first set of data sequence breakpoints may be determined for the first layer of multiple description coding. A second set of data sequence breakpoints may be determined for the second layer. The data sequence may be encoded in the plurality of layers of multiple description coding as a function of the first and second sets of data sequence breakpoints.Type: ApplicationFiled: April 16, 2007Publication date: August 30, 2007Applicant: Microsoft CorporationInventors: Philip Chou, Venkata Padmanabhan, Helen Wang
-
Publication number: 20060251062Abstract: An overlay network and scheme for building and using the overlay network are described. As the overlay network is built, new nodes joining the network are connected randomly with other nodes which results in a random graph as the network topology. The network is fully scalable, with each new node providing the same number of network connections for output to other nodes as it consumes when it joins the network. In addition, network coding is implemented at each node to mix packets of data entering each node using random linear functions. The network coding at each node generates new packets that are independent combinations of original data packets entering the node. The new coded packets make the distribution of data to other nodes more efficient and robust.Type: ApplicationFiled: April 7, 2005Publication date: November 9, 2006Applicant: Microsoft CorporationInventors: Kamal Jain, Laszlo Lovasz, Philip Chou
-
Publication number: 20060209955Abstract: Real-time packet-based audio communications over packet-based networks frequently results in the loss of one or more packets during any given communication session. The real-time nature of such communications precludes retransmission of lost packets due to the unacceptable delays that would result. Consequently, packet loss concealment methods are employed to “hide” lost packets from the listener. Unfortunately, conventional loss concealment methods, such as packet repetition or stretch/overlap methods, do not fully exploit information available from partially received samples. Therefore, when a single frame of N coefficients is lost, 2N samples are only partially reconstructed, thereby degrading the reconstructed signal.Type: ApplicationFiled: June 30, 2005Publication date: September 21, 2006Applicant: Microsoft CorporationInventors: Dinei Florencio, Philip Chou
-
Publication number: 20060198446Abstract: A method and system including an improved generalized reference decoder that operates according to any number of sets of rate and buffer parameters for a given bit stream. Each set characterizes a leaky bucket model and contains three parameters representing the transmission bit rate, buffer size, and initial decoder buffer fullness. An encoder provides at least two sets of these parameters, whereby the decoder selects one or interpolates between them to operate at any desired peak bit rate, buffer size or delay. The generalized reference decoder may select the smallest buffer size and corresponding delay that decodes the bit stream without buffer underflow or overflow, or alternatively may select and operate at the minimum required peak transmission rate, or something between both. In practice, the buffer size, delay and/or the peak transmission rate can be reduced by significant factors, and/or the signal-to-noise ratio (SNR) can be increased.Type: ApplicationFiled: May 4, 2006Publication date: September 7, 2006Applicant: Microsoft CorporationInventors: Jordi Ribas-Corbera, Philip Chou
-
Publication number: 20060165166Abstract: A system and process for controlling the coding bit rate of streaming media data is presented where a server streams data that exhibits one of a number of coding bit rates supported by the server. Initially, the server chooses the coding bit rate. However, after this startup period, the client provides coding bit rate requests. The server transmits the streaming media data at the most appropriate supported coding bit rate closest to the rate requested. The coding bit rates requested are those estimated to provide a high quality playback of the streaming data while still keeping a decoder buffer of the client filled to a desired level. A leaky bucket model is incorporated so that the changes in buffer duration due to natural variation in the instantaneous coding bit rate are not mistaken for changes in buffer duration due to network congestion.Type: ApplicationFiled: December 10, 2004Publication date: July 27, 2006Applicant: Microsoft CorporationInventors: Philip Chou, Anders Klemets, Cheng Huang
-
Publication number: 20060143678Abstract: A system and process for controlling the coding bit rate of streaming media data is presented. This coding bit rate control involves dynamically adjusting the coding bit rate to control client buffer duration to prevent the buffer from underflowing, while keeping the average coding bit rate close to the average transmission bit rate of the network (an thus maximizing the quality of the data playback). Using the theory of optimal linear quadratic control, the client buffer duration is kept as close as possible to a target level while still keeping the coding bit rate (and hence the quality) as constant as possible. In addition, a leaky bucket model is incorporated into the control loop so that the changes in buffer duration due to natural variation in the instantaneous coding bit rate are not mistaken for changes in buffer duration due to network congestion.Type: ApplicationFiled: December 10, 2004Publication date: June 29, 2006Applicant: Microsoft CorporationInventors: Philip Chou, Anders Klemets, Cheng Huang
-
Publication number: 20060126713Abstract: A system and process for performing an exponentially weighted moving average on streaming data to establish a moving average bit rate of data units is presented. In general, the system or process computes, on a unit-by-unit basis, the product of the moving average bit rate computed for a data unit immediately prior to a unit under consideration and a first fractional weighting factor, added to the product of the instantaneous bit rate of the data unit under consideration and a second fractional weighting factor, wherein at least one fractional weighting factor is not a constant but instead based on the time between data units.Type: ApplicationFiled: December 10, 2004Publication date: June 15, 2006Applicant: Microsoft CorporationInventors: Philip Chou, Anders Klemets, Cheng Huang
-
Patent number: 6996097Abstract: A system and method for correcting errors and losses occurring during a receiver-driven layered multicast (RLM) of real-time media over a heterogeneous packet network such as the Internet. This is accomplished by augmenting RLM with one or more layers of error correction information. This allows each receiver to separately optimize the quality of received audio and video information by subscribing to at least one error correction layer. Ideally, each source layer in a RLM would have one or more multicasted error correction data streams (i.e., layers) associated therewith. Each of the error correction layers would contain information that can be used to replace lost packets from the associated source layer. More than one error correction layer is proposed as some of the error correction packets contained in the data stream needed to replace the packets lost in the associated source stream may themselves be lost in transmission.Type: GrantFiled: May 21, 1999Date of Patent: February 7, 2006Assignee: Microsoft CorporationInventors: Philip A. Chou, Albert S. Wang, Sanjeev Mehrotra, Alexander E. Mohr
-
Publication number: 20060007947Abstract: A content distribution method and system for distributing content over a peer-to-peer network such that the full potential throughput of the network is achieved. The content distribution method divides the content to be distributed into many small blocks. Each of the content blocks then is assigned to a node, which can be a content-requesting node, a non-content-requesting node or a source node. Content is assigned based on a capacity of the node, where nodes having a larger capacity are assigned a greater number of content blocks and nodes having a smaller capacity are assigned a fewer content blocks. The capacity generally is defined as the upload bandwidth of the node. Redistribution queues are employed to control the throughput of the distribution. This bandwidth control strategy ensures that upload bandwidths of the peer and source nodes are fully utilized even with network anomalies such as packet losses and delivery jitters.Type: ApplicationFiled: July 7, 2004Publication date: January 12, 2006Inventors: Jin Li, Philip Chou, Cha Zhang
-
Publication number: 20050249211Abstract: A system and method for correcting errors and losses occurring during a receiver-driven layered multicast (RLM) of real-time media over a heterogeneous packet network such as the Internet. This is accomplished by augmenting RLM with one or more layers of error correction information. This allows each receiver to separately optimize the quality of received audio and video information by subscribing to at least one error correction layer. Ideally, each source layer in a RLM would have one or more multicasted error correction data streams (i.e., layers) associated therewith. Each of the error correction layers would contain information that can be used to replace lost packets from the associated source layer. More than one error correction layer is proposed as some of the error correction packets contained in the data stream needed to replace the packets lost in the associated source stream may themselves be lost in transmission.Type: ApplicationFiled: July 8, 2005Publication date: November 10, 2005Applicant: Microsoft CorporationInventors: Philip Chou, Albert Wang, Sanjeev Mehrotra, Alexander Mohr
-
Publication number: 20050210356Abstract: A data sequence may be encoded in a plurality of layers of multiple description coding. The layers of multiple description coding may include a first and a second layer of multiple description coding. The first layer of multiple description coding may include an initial part of a data sequence as well as forward error correction code for the initial part. The second layer of multiple description coding may include a next part of the data sequence as well as forward error correction code for the next part. A first set of data sequence breakpoints may be determined for the first layer of multiple description coding. A second set of data sequence breakpoints may be determined for the second layer. The data sequence may be encoded in the plurality of layers of multiple description coding as a function of the first and second sets of data sequence breakpoints.Type: ApplicationFiled: March 17, 2004Publication date: September 22, 2005Applicant: Microsoft CorporationInventors: Philip Chou, Venkata Padmanabhan, Helen Wang
-
Publication number: 20050204242Abstract: A system and method for correcting errors and losses occurring during a receiver-driven layered multicast (RLM) of real-time media over a heterogeneous packet network such as the Internet. This is accomplished by augmenting RLM with one or more layers of error correction information. This allows each receiver to separately optimize the quality of received audio and video information by subscribing to at least one error correction layer. Ideally, each source layer in a RLM would have one or more multicasted error correction data streams (i.e., layers) associated therewith. Each of the error correction layers would contain information that can be used to replace lost packets from the associated source layer. More than one error correction layer is proposed as some of the error correction packets contained in the data stream needed to replace the packets lost in the associated source stream may themselves be lost in transmission.Type: ApplicationFiled: April 18, 2005Publication date: September 15, 2005Applicant: Microsoft CorporationInventors: Philip Chou, Albert Wang, Sanjeev Mehrotra, Alexander Mohr