Patents by Inventor Thomas W. Holcomb
Thomas W. Holcomb 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: 9071847Abstract: A video codec provides for encoding and decoding pictures of a video sequence at various coded resolutions, such that pictures can be encoded at lower coded resolutions based on bit rate or other constraints while maintaining a consistent display resolution. The video codec employs a coding syntax where a maximum coded resolution is signaled at the sequence level of the syntax hierarchy, whereas a lower coded resolution is signaled at the entry point level for a segment of one or more intra-coded frames and frames predictively encoded based thereon. This allows the use of a separate out-of-loop resampler after the decoder to up-sample the pictures to the display resolution.Type: GrantFiled: October 6, 2004Date of Patent: June 30, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Thomas W. Holcomb, Chih-Lung Lin, Sridhar Srinivasan, Pohsiang Hsu
-
Publication number: 20150063459Abstract: Techniques and tools for video coding/decoding with motion resolution switching and sub-block transform coding/decoding are described. For example, a video encoder adaptively switches the resolution of motion estimation and compensation between quarter-pixel and half-pixel resolutions; a corresponding video decoder adaptively switches the resolution of motion compensation between quarter-pixel and half-pixel resolutions. For sub-block transform sizes, for example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding.Type: ApplicationFiled: November 11, 2014Publication date: March 5, 2015Applicant: MICROSOFT CORPORATIONInventors: Pohsiang Hsu, Chih-Lung Lin, Ming-Chieh Lee, Thomas W. Holcomb, Sridhar Srinivasan
-
Patent number: 8917768Abstract: Techniques and tools for encoding and decoding motion vector information for video images are described. For example, a video encoder yields an extended motion vector code by jointly coding, for a set of pixels, a switch code, motion vector information, and a terminal symbol indicating whether subsequent data is encoded for the set of pixels. In another aspect, an encoder/decoder selects motion vector predictors for macroblocks. In another aspect, a video encoder/decoder uses hybrid motion vector prediction. In another aspect, a video encoder/decoder signals a motion vector mode for a predicted image. In another aspect, a video decoder decodes a set of pixels by receiving an extended motion vector code, which reflects joint encoding of motion information together with intra/inter-coding information and a terminal symbol. The decoder determines whether subsequent data exists for the set of pixels based on e.g., the terminal symbol.Type: GrantFiled: November 21, 2008Date of Patent: December 23, 2014Assignee: Microsoft CorporationInventors: Sridhar Srinivasan, Pohsiang Hsu, Thomas W. Holcomb, Kunal Mukerjee, Bruce Chih-Lung Lin
-
Patent number: 8908768Abstract: Techniques and tools for video coding/decoding with motion resolution switching and sub-block transform coding/decoding are described. For example, a video encoder adaptively switches the resolution of motion estimation and compensation between quarter-pixel and half-pixel resolutions; a corresponding video decoder adaptively switches the resolution of motion compensation between quarter-pixel and half-pixel resolutions. For sub-block transform sizes, for example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding.Type: GrantFiled: July 16, 2013Date of Patent: December 9, 2014Assignee: Microsoft CorporationInventors: Pohsiang Hsu, Chih-Lung Lin, Ming-Chieh Lee, Thomas W. Holcomb, Sridhar Srinivasan
-
Publication number: 20140334534Abstract: Techniques and tools for sub-block transform coding are described. For example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding. The video encoder may determine the transform sizes as well as switching levels (e.g., frame, macroblock, or block) in a closed loop evaluation of the different transform sizes and switching levels. The encoder and decoder may use different scan patterns for different transform sizes when scanning values from two-dimensional blocks into one-dimensional arrays, or vice versa. The encoder and decoder may use sub-block pattern codes to indicate the presence or absence of information for the sub-blocks of particular blocks.Type: ApplicationFiled: July 22, 2014Publication date: November 13, 2014Applicant: MICROSOFT CORPORATIONInventors: Thomas W. Holcomb, Chih-Lung Lin
-
Publication number: 20140307776Abstract: Techniques and tools for video coding/decoding with sub-block transform coding/decoding and re-oriented transforms are described. For example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding. The video encoder may determine the transform sizes as well as switching levels (e.g., frame, macroblock, or block) in a closed loop evaluation of the different transform sizes and switching levels. When a video encoder or decoder uses spatial extrapolation from pixel values in a causal neighborhood to predict pixel values of a block of pixels, the encoder/decoder can use a re-oriented transform to address non-stationarity of prediction residual values.Type: ApplicationFiled: April 22, 2014Publication date: October 16, 2014Applicant: MICROSOFT CORPORATIONInventors: Sridhar Srinivasan, Thomas W. Holcomb, Chih-Lung Lin, Pohsiang Hsu, Ming-Chieh Lee
-
Patent number: 8817868Abstract: Techniques and tools for sub-block transform coding are described. For example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding. The video encoder may determine the transform sizes as well as switching levels (e.g., frame, macroblock, or block) in a closed loop evaluation of the different transform sizes and switching levels. The encoder and decoder may use different scan patterns for different transform sizes when scanning values from two-dimensional blocks into one-dimensional arrays, or vice versa. The encoder and decoder may use sub-block pattern codes to indicate the presence or absence of information for the sub-blocks of particular blocks.Type: GrantFiled: August 3, 2007Date of Patent: August 26, 2014Assignee: Microsoft CorporationInventors: Thomas W. Holcomb, Chih-Lung Lin
-
Publication number: 20140161191Abstract: Techniques and tools for encoding and decoding motion vector information for video images are described. For example, a video encoder yields an extended motion vector code by jointly coding, for a set of pixels, a switch code, motion vector information, and a terminal symbol indicating whether subsequent data is encoded for the set of pixels. In another aspect, an encoder/decoder selects motion vector predictors for macroblocks. In another aspect, a video encoder/decoder uses hybrid motion vector prediction. In another aspect, a video encoder/decoder signals a motion vector mode for a predicted image. In another aspect, a video decoder decodes a set of pixels by receiving an extended motion vector code, which reflects joint encoding of motion information together with intra/inter-coding information and a terminal symbol. The decoder determines whether subsequent data exists for the set of pixels based on e.g., the terminal symbol.Type: ApplicationFiled: February 13, 2014Publication date: June 12, 2014Applicant: MICROSOFT CORPORATIONInventors: Sridhar Srinivasan, Pohsiang Hsu, Thomas W. Holcomb, Kunal Mukerjee, Bruce Chih-Lung Lin
-
Patent number: 8743949Abstract: Techniques and tools for video coding/decoding with sub-block transform coding/decoding and re-oriented transforms are described. For example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding. The video encoder may determine the transform sizes as well as switching levels (e.g., frame, macroblock, or block) in a closed loop evaluation of the different transform sizes and switching levels. When a video encoder or decoder uses spatial extrapolation from pixel values in a causal neighborhood to predict pixel values of a block of pixels, the encoder/decoder can use a re-oriented transform to address non-stationarity of prediction residual values.Type: GrantFiled: July 16, 2013Date of Patent: June 3, 2014Assignee: Microsoft CorporationInventors: Sridhar Srinivasan, Thomas W. Holcomb, Chih-Lung Lin, Pohsiang Hsu, Ming-Chieh Lee
-
Publication number: 20140133583Abstract: Various new and non-obvious apparatus and methods for using frame caching to improve packet loss recovery are disclosed. One of the disclosed embodiments is a method for using periodical and synchronized frame caching within an encoder and its corresponding decoder. When the decoder discovers packet loss, it informs the encoder which then generates a frame based on one of the shared frames stored at both the encoder and the decoder. When the decoder receives this generated frame it can decode it using its locally cached frame.Type: ApplicationFiled: January 17, 2014Publication date: May 15, 2014Applicant: Microsoft CorporationInventors: Chih-Lung Lin, Minghui Xia, Pohsiang Hsu, Shankar Regunathan, Thomas W. Holcomb
-
Patent number: 8687697Abstract: Techniques and tools for encoding and decoding motion vector information for video images are described. For example, a video encoder yields an extended motion vector code by jointly coding, for a set of pixels, a switch code, motion vector information, and a terminal symbol indicating whether subsequent data is encoded for the set of pixels. In another aspect, an encoder/decoder selects motion vector predictors for macroblocks. In another aspect, a video encoder/decoder uses hybrid motion vector prediction. In another aspect, a video encoder/decoder signals a motion vector mode for a predicted image. In another aspect, a video decoder decodes a set of pixels by receiving an extended motion vector code, which reflects joint encoding of motion information together with intra/inter-coding information and a terminal symbol. The decoder determines whether subsequent data exists for the set of pixels based on e.g., the terminal symbol.Type: GrantFiled: April 24, 2012Date of Patent: April 1, 2014Assignee: Microsoft CorporationInventors: Sridhar Srinivasan, Pohsiang Hsu, Thomas W. Holcomb, Kunal Mukerjee, Bruce Chih-Lung Lin
-
Patent number: 8687709Abstract: An encoder/decoder obtains pixel data from one or more field lines associated with a first block in an interlaced frame coded picture comprising plural macroblocks each having an equal number of top and bottom field lines. The encoder/decoder obtains pixel data from one or more field lines associated with a second block and performs in-loop deblocking filtering across a boundary. The in-loop deblocking filtering comprises filter operations performed on pixel data from field lines of same polarity only. In another aspect, an encoder/decoder obtains transform size information for plural blocks of macroblock, obtains field/frame type information for the macroblock and selects one or more boundaries for in-loop deblocking based at least in part on the transform size information and the field/frame type information. In-loop deblocking can be performed on horizontal block boundaries prior to vertical block boundaries.Type: GrantFiled: September 4, 2004Date of Patent: April 1, 2014Assignee: Microsoft CorporationInventors: Pohsiang Hsu, Chih-Lung Lin, Sridhar Srinivasan, Thomas W. Holcomb
-
Patent number: 8634413Abstract: Various new and non-obvious apparatus and methods for using frame caching to improve packet loss recovery are disclosed. One of the disclosed embodiments is a method for using periodical and synchronized frame caching within an encoder and its corresponding decoder. When the decoder discovers packet loss, it informs the encoder which then generates a frame based on one of the shared frames stored at both the encoder and the decoder. When the decoder receives this generated frame it can decode it using its locally cached frame.Type: GrantFiled: December 30, 2004Date of Patent: January 21, 2014Assignee: Microsoft CorporationInventors: Chih-Lung Lin, Minghui Xia, Pohsiang Hsu, Shankar Regunathan, Thomas W. Holcomb
-
Patent number: 8625669Abstract: Techniques and tools for encoding and decoding predicted images in interlaced video are described. For example, a video encoder or decoder computes a motion vector predictor for a motion vector for a portion (e.g., a block or macroblock) of an interlaced P-field, including selecting between using a same polarity or opposite polarity motion vector predictor for the portion. The encoder/decoder processes the motion vector based at least in part on the motion vector predictor computed for the motion vector. The processing can comprise computing a motion vector differential between the motion vector and the motion vector predictor during encoding and reconstructing the motion vector from a motion vector differential and the motion vector predictor during decoding. The selecting can be based at least in part on a count of opposite polarity motion vectors for a neighborhood around the portion and/or a count of same polarity motion vectors.Type: GrantFiled: March 11, 2009Date of Patent: January 7, 2014Assignee: Microsoft CorporationInventor: Thomas W. Holcomb
-
Patent number: 8625680Abstract: Techniques and tools for bitstream-controlled filtering are described. For example, a video encoder puts control information into a bitstream for encoded video. A video decoder decodes the encoded video and, according to the control information, performs post-processing filtering on the decoded video with a de-ringing and/or de-blocking filter. Typically, a content author specifies the control information to the encoder. The control information itself is post-processing filter levels, filter selections, and/or some other type of information. In the bitstream, the control information is specified for a sequence, scene, frame, region within a frame, or at some other syntax level.Type: GrantFiled: October 6, 2003Date of Patent: January 7, 2014Assignee: Microsoft CorporationInventors: Sridhar Srinivasan, Chih-Lung Lin, Pohsiang Hsu, Thomas W. Holcomb, Ming-Chieh Lee, Jordi Ribas-Corbera
-
Publication number: 20130301704Abstract: Techniques and tools for video coding/decoding with sub-block transform coding/decoding and re-oriented transforms are described. For example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding. The video encoder may determine the transform sizes as well as switching levels (e.g., frame, macroblock, or block) in a closed loop evaluation of the different transform sizes and switching levels. When a video encoder or decoder uses spatial extrapolation from pixel values in a causal neighborhood to predict pixel values of a block of pixels, the encoder/decoder can use a re-oriented transform to address non-stationarity of prediction residual values.Type: ApplicationFiled: July 16, 2013Publication date: November 14, 2013Inventors: Sridhar Srinivasan, Thomas W. Holcomb, Chih-Lung Lin, Pohsiang Hsu, Ming-Chieh Lee
-
Publication number: 20130301732Abstract: Techniques and tools for video coding/decoding with motion resolution switching and sub-block transform coding/decoding are described. For example, a video encoder adaptively switches the resolution of motion estimation and compensation between quarter-pixel and half-pixel resolutions; a corresponding video decoder adaptively switches the resolution of motion compensation between quarter-pixel and half-pixel resolutions. For sub-block transform sizes, for example, a video encoder adaptively switches between 8×8, 8×4, and 4×8 DCTs when encoding 8×8 prediction residual blocks; a corresponding video decoder switches between 8×8, 8×4, and 4×8 inverse DCTs during decoding.Type: ApplicationFiled: July 16, 2013Publication date: November 14, 2013Inventors: Pohsiang Hsu, Chih-Lung Lin, Ming-Chieh Lee, Thomas W. Holcomb, Sridhar Srinivasan
-
Patent number: 8576908Abstract: Quality settings established by an encoder are adjusted based on information associated with regions of interest (“ROIs”). For example, quantization step sizes can be reduced (to improve quality) or increased (to reduce bit rate). ROIs can be identified and quality settings can be adjusted based on input received from a user interface. An overlap setting can be determined for a portion of a picture that corresponds to an ROI overlap area. For example, an overlap setting is chosen from step sizes corresponding to a first overlapping ROI and a second overlapping ROI, or from relative reductions in step size corresponding to the first ROI and the second ROI. ROIs can be parameterized by information (e.g., using data structures) that indicates spatial dimensions of the ROIs and quality adjustment information (e.g., dead zone information, step size information, and quantization mode information).Type: GrantFiled: July 2, 2012Date of Patent: November 5, 2013Assignee: Microsoft CorporationInventors: Chih-Lung Lin, Ming-Chieh Lee, Stacey Spears, Philip Lawrence Garrett, Anil Madhav Murching, Amy Jennifer Beauford, Thomas W. Holcomb, Xiping Zuo
-
Patent number: 8498335Abstract: Techniques and tools are described for adaptive deadzone (“DZ”) resizing during quantization. For example, in some embodiments, for quantization of an AC frequency coefficient of a block, a video encoder adjusts DZ size of a selected quantizer depending on the texture of the block. In other embodiments, a video encoder adjusts DZ size depending on the frequency of a coefficient being quantized. In still other embodiments, for quantization of an AC frequency coefficient of a block, a video encoder adjusts DZ size depending on the texture of the block and the frequency of the coefficient being quantized.Type: GrantFiled: March 26, 2007Date of Patent: July 30, 2013Assignee: Microsoft CorporationInventors: Thomas W. Holcomb, Minghui Xia, Chih-Lung Lin, Cheng Chang
-
Patent number: 8494052Abstract: Techniques and tools for selecting search ranges and/or motion vector ranges during motion estimation are described. For example, a video encoder performs motion estimation constrained by a first search range, which results in multiple motion vectors. The encoder computes motion vector distribution information for the motion vectors. To compute the distribution information, the encoder can track the motion vectors in a histogram and count how many of the motion vectors fall within each of multiple intervals for the distribution information. The encoder then selects a second search range and performs motion estimation constrained by the second search range. Selecting the second search range can include selecting a motion vector range, which in some cases in effect determines the second search range.Type: GrantFiled: April 7, 2006Date of Patent: July 23, 2013Assignee: Microsoft CorporationInventors: Cheng Chang, Chih-Lung Lin, Thomas W. Holcomb