Patents by Inventor Shyam Sadhwani

Shyam Sadhwani 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).

  • Patent number: 9706214
    Abstract: Efficient operations in image or video decoding. For example, a tool such as an image or video decoder receives and decodes encoded data for a picture in a bitstream. As part of the decoding, the tool adapts a multi-symbol lookup table to use in decoding of symbols then decodes the symbols using the multi-symbol lookup table, producing exactly correct results. The tool can also perform selectively truncated inverse frequency transforms. For a given block, the tool identifies upper horizontal and vertical frequencies among non-zero coefficients for the block and, based on the upper frequency values, selectively applies a simplified inverse frequency transform to transform coefficients for the block without hurting decoding quality. Using restart markers in the bitstream, the tool can organize multiple blocks of the picture as partitions. The tool decodes at least some of the partitions in parallel on a partition-by-partition basis using multiple processing cores.
    Type: Grant
    Filed: December 24, 2010
    Date of Patent: July 11, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yongjun Wu, Shyam Sadhwani, Daniele Terdina
  • Patent number: 9674540
    Abstract: To decode encoded video using a computer with a central processing unit and a graphics processing unit as a coprocessor, parameters applied to blocks of intermediate image data are transferred from the central processing unit to the graphics processing unit. When the operation being performed applies to a small portion of the blocks of intermediate image data, then the central processing unit can transfer to the graphics processing unit the parameters for only those blocks to which the operation applies. In particular, the central processing unit can transfer a set of parameters for a limited number of blocks of intermediate image data, with an indication of the block to which each set of parameters applies, which both can improve speed of operation and can reduce power consumption.
    Type: Grant
    Filed: September 25, 2014
    Date of Patent: June 6, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Matthew Wozniak, Yongjun Wu, Yuechuan Li, Shyam Sadhwani
  • Publication number: 20170127072
    Abstract: Aspects extend to methods, systems, and computer program products for transforming video bit streams for parallel decoding. Aspects of the invention can be used to break segment coding structure limitations in video bit streams. Aspects can be used to maximize parallelization of video decoding tasks, including motion compensation processing, to more efficiently utilize multi-core and multi-processor computer systems. Multiple portions of intra-segment data can be processed in parallel to speed up single frame processing. Video communication latency and memory requirements are also reduced.
    Type: Application
    Filed: October 29, 2015
    Publication date: May 4, 2017
    Inventors: Yuechuan Li, Yongjun Wu, Shyam Sadhwani, Bakkama Srinath Reddy, Matthew R. Wozniak, Victor V. Cherepanov
  • Publication number: 20170127074
    Abstract: Aspects extend to methods, systems, and computer program products for video bit stream decoding. Aspects include flexible definition and detection of surface alignment requirements for decoding hardware. Surface alignment requirements can be handled by render cropping (e.g., cropping at a video output device), through adjustment and modification of original syntax values in a video bit stream and relaxed media type negotiation in a software (host) decoder. Resolution changes can be hidden with the aligned surface allocation when applicable. Performance can be improved and power consumption reduced by using hidden resolution changes.
    Type: Application
    Filed: October 29, 2015
    Publication date: May 4, 2017
    Inventors: Yongjun Wu, Shyam Sadhwani, Bakkama Srinath Reddy
  • Publication number: 20170105010
    Abstract: A host has a graphics pipeline that process frames by portions (e.g., pixels or rows) or slices. A remote device transmits a video stream container via a network to the host. A frame of the video stream in the container has encoded portions. The graphics pipeline includes a demultiplexer that extracts the portions of the video frame. When a portion has been extracted it is passed to a decoder, which is next in the pipeline. The decoder may begin decoding the portion before receiving a next portion of the frame, possibly while the demultiplexer is demultiplexing the next portion of the frame. A decoded portion of the frame is passed to a renderer which accumulates the portions of the frame and renders the frame. At any time portions of a frame might concurrently be being received, demultiplexed, decoded, and rendered. The decoder may be single-threaded, multi-threaded, or hardware accelerated.
    Type: Application
    Filed: October 9, 2015
    Publication date: April 13, 2017
    Inventors: Yongjun Wu, Sudhakar Prabhu, Carol Greenbaum, Saswata Mandal, Shyam Sadhwani
  • Publication number: 20170098088
    Abstract: Techniques are described for communicating encoded data using start code emulation prevention. The described techniques include obtaining at least one partially encrypted packet, identifying at least one portion of the packet that is unencrypted, and determining that the identified unencrypted portion(s) emulates a start code. Start code emulation prevention data or emulation prevention bytes (EPBs) may be inserted into only the encrypted portion of the packet. The modified packet may be communicated to another device/storage, along with an indication of which portion(s) of the packet are unencrypted. Upon receiving the packet and indication, the receiving device may identify and remove the EPBs in the identified unencrypted portion(s) of the packet, and decrypt the packet to recover the data. In some aspects, upon identifying the indication, the receiving device may only search for EPBs in the unencrypted portion(s) of the packet, thus yielding a more efficient start code emulation prevention process.
    Type: Application
    Filed: February 19, 2016
    Publication date: April 6, 2017
    Inventors: Yongjun Wu, Shyam Sadhwani, Robert K. Hughes
  • Publication number: 20170094172
    Abstract: Video image stabilization provides better performance on a generic platform for computing devices by evaluating available multimedia digital signal processing components, and selecting the available components to utilize according to a hierarchy structure for video stabilization performance for processing parts of the video stabilization. The video stabilization has improved motion vector estimation that employs refinement motion vector searching according to a pyramid block structure relationship starting from a downsampled resolution version of the video frames. The video stabilization also improves global motion transform estimation by performing a random sample consensus approach for processing the local motion vectors, and selection criteria for motion vector reliability. The video stabilization achieves the removal of hand shakiness smoothly by real-time one-pass or off-line two-pass temporal smoothing with error detection and correction.
    Type: Application
    Filed: December 14, 2016
    Publication date: March 30, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Yongjun Wu, Nikola Borisov, Weidong Zhao, Shyam Sadhwani, Naveen Thumpudi
  • Patent number: 9589540
    Abstract: A battery operated device, having a display with two or more available refresh rates, has its refresh rate selected so as to match the video frame rate of video data played back on the display. This selection is made by coordinating the resources in the device that are used to process the video from its reception through to its display.
    Type: Grant
    Filed: December 5, 2011
    Date of Patent: March 7, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yongjun Wu, Shyam Sadhwani, Naveen Thumpudi, Stephen Estrop, Glenn Evans
  • Patent number: 9590952
    Abstract: Lossy data stream decoder techniques are described herein. In response to a request for decoded content from a consuming application, a decoder may validate headers and identify portions of the data that are considered pertinent to the request. The decoder then performs lossy extraction to form incomplete data that is provided to the consuming application in response to the request. The full data for the data stream is not exposed to the consuming application or other downstream components. In this way, the consuming application is provided data sufficient to perform requested graphics processing and resource management operations, while at the same time the risk of piracy is mitigated since the consuming application is unable to get a full version of the data in the clear and the data have been validated by the decoder.
    Type: Grant
    Filed: September 5, 2014
    Date of Patent: March 7, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yongjun Wu, Fedir Yuriyovych Kyslov, Shyam Sadhwani, Samuel John Wenker, Brian P. Evans, Hany Farag
  • Publication number: 20170064313
    Abstract: A host decoder and accelerator communicate across an acceleration interface. The host decoder receives at least part of a bitstream for video, and it manages certain decoding operations of the accelerator across the acceleration interface. The accelerator receives data from the host decoder across the acceleration interface, then performs decoding operations. For a given frame, settings based on an uncompressed frame header can be transferred in a different buffer of the acceleration interface than a compressed frame header and compressed frame data. Among other features, the host decoder can assign settings used by the accelerator that override values of bitstream syntax elements, can assign surface index values used by the accelerator to update reference frame buffers, and can handle skipped frames without invoking the accelerator. Among other features, the accelerator can use surface index values to update reference frame buffers, and can handle changes in spatial resolution at non-key frames.
    Type: Application
    Filed: August 31, 2015
    Publication date: March 2, 2017
    Inventors: Yongjun Wu, Shyam Sadhwani, Abo Talib Mahfoodh
  • Publication number: 20170064320
    Abstract: A graphics pipeline with components that process frames by portions (e.g., pixels or rows) or slices to reduce end-to-end latency. Components of a pipeline process portions of a same frame at the same time. For example, as graphics data for a frame is being generated and fills a framebuffer, once a certain portion of video data less than the whole frame (slice or sub-frame) becomes available, before the corresponding frame is finished filling the framebuffer, the next pipeline component after the framebuffer, for instance a video processor for color conversion or an encoder, begins to process the portion of the frame. While one portion of a frame is accumulating in the frame buffer, another portion of the same frame is being encoded by an encoder, and another portion of the frame might be being packaged by a multiplexer, and a network socket might start streaming the multiplexed portion.
    Type: Application
    Filed: September 1, 2015
    Publication date: March 2, 2017
    Inventors: Shyam Sadhwani, Sudhakar Prabhu, Carol Greenbaum, Saswata Mandal, Yongjun Wu
  • Patent number: 9578240
    Abstract: Video image stabilization provides better performance on a generic platform for computing devices by evaluating available multimedia digital signal processing components, and selecting the available components to utilize according to a hierarchy structure for video stabilization performance for processing parts of the video stabilization. The video stabilization has improved motion vector estimation that employs refinement motion vector searching according to a pyramid block structure relationship starting from a downsampled resolution version of the video frames. The video stabilization also improves global motion transform estimation by performing a random sample consensus approach for processing the local motion vectors, and selection criteria for motion vector reliability. The video stabilization achieves the removal of hand shakiness smoothly by real-time one-pass or off-line two-pass temporal smoothing with error detection and correction.
    Type: Grant
    Filed: October 20, 2014
    Date of Patent: February 21, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yongjun Wu, Nikola Borisov, Weidong Zhao, Shyam Sadhwani, Naveen Thumpudi
  • Publication number: 20170048532
    Abstract: An encoded bitstream of video data can include layers of encoded video data. Such layers can be removed by a device in response to, for example, available bandwidth or device capabilities. The encoded bitstream also includes values for reference count parameters that are used by a video decoder to allocate memory when decoding the video data. If layers of the encoded video data are removed from the encoded bitstream, the values for these reference count parameters are modified. By modifying the values of these parameters, the video decoder allocates a different amount of memory and memory utilization is improved. Such modifications can be made by processing the encoded bitstream without re-encoding the encoded video data.
    Type: Application
    Filed: August 13, 2015
    Publication date: February 16, 2017
    Inventors: Shyam Sadhwani, Yongjun Wu
  • Publication number: 20170034530
    Abstract: Innovations are provided for encoding and/or decoding video and/or image content using reduced size inverse transforms. For example, a reduced size inverse transform can be performed during encoding or decoding of video or image content using a subset of coefficients (e.g., primarily non-zero coefficients) of a given block. For example, a bounding area can be determined for a block that encompasses the non-zero coefficients of the block. Meta-data for the block can then be generated, including a shortcut code that indicates whether a reduced size inverse transform will be performed. The inverse transform can then be performed using a subset of coefficients for the block (e.g., identified by the bounding area) and the meta-data, which results in decreased utilization of computing resources. The subset of coefficients and the meta-data can be transferred to a graphics processing unit (GPU), which also results in savings in terms of data transfer.
    Type: Application
    Filed: July 28, 2015
    Publication date: February 2, 2017
    Applicant: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Victor Cherepanov, Yongjun Wu, Srinath Reddy, Yuechuan Li, Shyam Sadhwani, Chihlung Lin, Binlong Li
  • Publication number: 20170013286
    Abstract: A media processing tool adds custom data to an elementary media bitstream or media container. The custom data indicates nominal range of samples of media content, but the meaning of the custom data is not defined in the codec format or media container format. For example, the custom data indicates the nominal range is full range or limited range. For playback, a media processing tool parses the custom data and determines an indication of media content type. A rendering engine performs color conversion operations whose logic changes based at least in part on the media content type. In this way, a codec format or media container format can in effect be extended to support full nominal range media content as well as limited nominal range media content, and hence preserve full or correct color fidelity, while maintaining backward compatibility and conformance with the codec format or media container format.
    Type: Application
    Filed: September 22, 2016
    Publication date: January 12, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Yongjun Wu, Naveen Thumpudi, Shyam Sadhwani
  • Publication number: 20170013274
    Abstract: Embodiments relate to encoding and decoding frames of a video stream. Video frames are encoded as intra-coded frames (Iframes) and predictive coded frames (P/Bframes) and transmitted. When a receiver of the encoded frames is unable to decode a frame, due to transmission problems or otherwise, the encoded video stream can be recovered without requiring a full Iframe to be generated at one time. Instead, intra-coded data is provided by the transmitter in slices. Specifically, frames with only portions of intra-coded data (Islices) are transmitted in sequence until enough intra-coded data is provided to the receiver to recover a frame and resume decoding. The intra-refresh frames may also contain slices predictively encoded (Pslices) based on restricted search spaces of preceding intra-refresh frames.
    Type: Application
    Filed: July 9, 2015
    Publication date: January 12, 2017
    Inventors: Shyam Sadhwani, Sudhakar Prabhu, Carol Greenbaum, Saswata Mandal, Yongjun Wu
  • Publication number: 20160366430
    Abstract: In a video processing system including a video decoder, to handle frequent changes in the bit rate of an encoded bitstream, a video decoder can be configured to process a change in bit rates without reinitializing. The video decoder can be configured to reduce memory utilization. The video decoder can be configured both to process a change in bit rate without reinitializing while reducing memory utilization. In one implementation, the video processing system can include an interface between an application running on a host processor and the video decoder which allows the video decoder to communicate with the host application about the configuration of the video decoder.
    Type: Application
    Filed: June 15, 2015
    Publication date: December 15, 2016
    Inventors: Yongjun Wu, Haoyun Wu, Shyam Sadhwani, Sudhakar Prabhu, Glenn Evans
  • Publication number: 20160366424
    Abstract: In a video processing system including a video decoder, to handle frequent changes in the bit rate of an encoded bitstream, a video decoder can be configured to process a change in bit rates without reinitializing. The video decoder can be configured to reduce memory utilization. The video decoder can be configured both to process a change in bit rate without reinitializing while reducing memory utilization. In one implementation, the video processing system can include an interface between an application running on a host processor and the video decoder which allows the video decoder to communicate with the host application about the configuration of the video decoder.
    Type: Application
    Filed: June 15, 2015
    Publication date: December 15, 2016
    Inventors: Yongjun Wu, Haoyun Wu, Shyam Sadhwani, Sudhakar Prabhu, Glenn Evans
  • Patent number: 9521438
    Abstract: A media processing tool adds custom data to an elementary media bitstream or media container. The custom data indicates nominal range of samples of media content, but the meaning of the custom data is not defined in the codec format or media container format. For example, the custom data indicates the nominal range is full range or limited range. For playback, a media processing tool parses the custom data and determines an indication of media content type. A rendering engine performs color conversion operations whose logic changes based at least in part on the media content type. In this way, a codec format or media container format can in effect be extended to support full nominal range media content as well as limited nominal range media content, and hence preserve full or correct color fidelity, while maintaining backward compatibility and conformance with the codec format or media container format.
    Type: Grant
    Filed: March 29, 2013
    Date of Patent: December 13, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yongjun Wu, Naveen Thumpudi, Shyam Sadhwani
  • Publication number: 20160360206
    Abstract: In response to a scene change being detected in screen content, a rate controller instructs a video encoder to generate an intraframe compressed image. The rate controller computes a target size for compressed image data using a function based on a maximum compressed size for a single image, i.e., without buffers for additional image data. For a number of images processed after detection of the scene change, this target size is computed and used to control the video encoder. After this number of images is processed, the rate controller can resume to a prior mode of operation. Such rate control reduces latency in encoding and transmission of screen content, which improves user perception of responsiveness of a host computer, such as for interactive video applications.
    Type: Application
    Filed: June 4, 2015
    Publication date: December 8, 2016
    Inventors: Yongjun Wu, Weidong Zhao, Shyam Sadhwani