Patents by Inventor Thomas Pun
Thomas Pun 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: 20090010325Abstract: A rate controller for allocating a bit budget for video frames to be encoded is disclosed. The rate controller of the present invention considers many different factors when determining the frame bit budget including: desired video quality, target bit rate, frame type (intra-frame or inter-frame), frame duration, intra-frame frequency, frame complexity, intra-block frequency within an intra-frame, buffer overflow, buffer underflow, and the encoded video frame quality for a possible second pass.Type: ApplicationFiled: June 30, 2008Publication date: January 8, 2009Inventors: Xiaochun Nie, Thomas Pun, Roger Kumar, Hsi-Jung Wu
-
Patent number: 7456760Abstract: Techniques for encoding data based at least in part upon an awareness of the decoding complexity of the encoded data and the ability of a target decoder to decode the encoded data are disclosed. In some embodiments, a set of data is encoded based at least in part upon a state of a target decoder to which the encoded set of data is to be provided. In some embodiments, a set of data is encoded based at least in part upon the states of multiple decoders to which the encoded set of data is to be provided.Type: GrantFiled: September 11, 2006Date of Patent: November 25, 2008Assignee: Apple Inc.Inventors: Jim Normile, Thomas Pun, Xiaojin Shi, Xin Tong, Hsi-Jung Wu
-
Publication number: 20080240600Abstract: Some embodiments of the invention provide a method of decoding an encoded video signal that includes a plurality of successive encoded images. The method initially receives an encoded image of the video signal. It then decodes the encoded image. The method next examines the decoded image to determine whether the decoded image satisfies at least one criterion for performing a post-filter operation on the decoded image. Only if the decoded image satisfies the criterion, the method performs the post-filter operation on the decoded image. The criterion in some embodiments is whether the amount of time for applying the post-filter operation exceeds the remaining amount of time that the method has to process the received image. Some embodiments of the invention provide a method of post-filtering a current image that was decoded from an encoded video signal, which includes a plurality of successive encoded images. The current image has several sub-sections. The method selects a sub-section of the current image.Type: ApplicationFiled: June 9, 2008Publication date: October 2, 2008Inventors: Thomas Pun, Maynard Handley, Roger Kumar, Xiaochun Nie, Hsi-Jung Wu
-
Publication number: 20080232469Abstract: A rate controller for allocating a bit budget for video frames to be encoded is disclosed. The rate controller of the present invention considers many different factors when determining the frame bit budget including: desired video quality, target bit rate, frame type (intra-frame or inter-frame), frame duration, intra-frame frequency, frame complexity, intra-block frequency within an intra-frame, buffer overflow, buffer underflow, and the encoded video frame quality for a possible second pass.Type: ApplicationFiled: March 10, 2008Publication date: September 25, 2008Inventors: Xiaochun Nie, Thomas Pun, Roger Kumar, Hsi-Jung Wu
-
Publication number: 20080232475Abstract: A method for encoding video with a two-dimensional (2D) transform separable to two one-dimensional (1D) transforms. The method receives an array of values for a sub-section of an image, performs a first 1D-transform of the array, transposes the resulting array, and performs a second 1D-transform of the array resulting from the transpose. The method, without performing another transpose, generates a data stream using a transposed scan order based on the values of the array resulting from the second transform. A method for decoding video encoded by a 2D transform, which separable to two 1D transforms. The method receives a data stream containing encoded values for an image, parses out the values into an array using a transposed scan order, performs a first 1D-inverse transform on the array, transposes the resulting array, and performs a second 1D-inverse transform of the array resulting from the transpose to produce a decoded output.Type: ApplicationFiled: April 28, 2008Publication date: September 25, 2008Inventors: Maynard Handley, Roger Kumar, Thomas Pun, Xiaochun Nie, Hsi-Jung Wu
-
Patent number: 7418037Abstract: A rate controller for allocating a bit budget for video frames to be encoded is disclosed. The rate controller of the present invention considers many different factors when determining the frame bit budget including: desired video quality, target bit rate, frame type (intra-frame or inter-frame), frame duration, intra-frame frequency, frame complexity, intra-block frequency within an intra-frame, buffer overflow, buffer underflow, and the encoded video frame quality for a possible second pass.Type: GrantFiled: April 30, 2003Date of Patent: August 26, 2008Assignee: Apple Inc.Inventors: Xiaochun Nie, Thomas Pun, Roger Kumar, Hsi-Jung Wu
-
Patent number: 7412080Abstract: Some embodiments of the invention provide a method of performing motion estimation for an array of image values obtained from a current image. The method starts with an initial estimate of the motion of the current image. The method then determines whether the initial estimate of the motion of the current image array between the current image and a reference image is acceptable. If not, the method specifies a first value for a parameter for performing the motion estimation. Otherwise, the method specifies a second value for the parameter. The method then performs a motion estimation operation based on the specified value of the parameter. One example of a specified parameter is the size of the window that the motion estimation operation uses. Another example is the starting level for a hierarchical motion estimation operation that it performs. A hierarchical motion estimation operation searches the reference frame at several different levels of granularity.Type: GrantFiled: May 21, 2007Date of Patent: August 12, 2008Assignee: Apple IncInventors: Roger Kumar, Thomas Pun, Xiaochun Nie, Hsi-Jung Wu
-
Patent number: 7391812Abstract: Some embodiments of the invention provide a method of decoding an encoded video signal that includes a plurality of successive encoded images. The method initially receives an encoded image of the video signal. It then decodes the encoded image. The method next examines the decoded image to determine whether the decoded image satisfies at least one criterion for performing a post-filter operation on the decoded image. Only if the decoded image satisfies the criterion, the method performs the post-filter operation on the decoded image. The criterion in some embodiments is whether the amount of time for applying the post-filter operation exceeds the remaining amount of time that the method has to process the received image. Some embodiments of the invention provide a method of post-filtering a current image that was decoded from an encoded video signal, which includes a plurality of successive encoded images. The current image has several sub-sections. The method selects a sub-section of the current image.Type: GrantFiled: April 30, 2003Date of Patent: June 24, 2008Assignee: Apple Inc.Inventors: Thomas Pun, Maynard Handley, Roger Kumar, Xiaochun Nie, Hsi-Jung Wu
-
Publication number: 20080147765Abstract: Some embodiments of the invention provide a method of performing a Discrete Cosine Transform (“DCT”) encoding or decoding coefficients of a data array by (1) multiplying the coefficients by a scalar value before the encoding or decoding, and then (2) dividing the encoded or decoded coefficients by the scalar value. When used in conjunction with fixed-point arithmetic, this method increases the precision of the encoded and decoded results. In addition, some embodiments provide a method of performing a two-dimensional (2D) Inverse Discrete Cosine Transform (“iDCT”). This method splits a pre-multiplication operation of the iDCT into two or more separate stages. When used in conjunction with fixed-point arithmetic, this splitting increases the precision of the decoded results of the iDCT.Type: ApplicationFiled: February 25, 2008Publication date: June 19, 2008Inventors: Roger Kumar, Maynard Handley, Thomas Pun, Xiaochun Nie, Hsi-Jung Wu
-
Patent number: 7379956Abstract: Some embodiments of the invention provide a method of performing a Discrete Cosine Transform (“DCT”) encoding or decoding coefficients of a data array by (1) multiplying the coefficients by a scalar value before the encoding or decoding, and then (2) dividing the encoded or decoded coefficients by the scalar value. When used in conjunction with fixed-point arithmetic, this method increases the precision of the encoded and decoded results. In addition, some embodiments provide a method of performing a two-dimensional (2D) Inverse Discrete Cosine Transform (“iDCT”). This method splits a pre-multiplication operation of the iDCT into two or more separate stages. When used in conjunction with fixed-point arithmetic, this splitting increases the precision of the decoded results of the iDCT.Type: GrantFiled: April 30, 2003Date of Patent: May 27, 2008Assignee: Apple Inc.Inventors: Roger Kumar, Maynard Handley, Thomas Pun, Xiaochun Nie, Hsi-Jung Wu
-
Patent number: 7376280Abstract: A method for encoding video with a two-dimensional (2D) transform separable to two one-dimensional (1D) transforms. The method receives an array of values for a sub-section of an image, performs a first 1D-transform of the array, transposes the resulting array, and performs a second 1D-transform of the array resulting from the transpose. The method, without performing another transpose, generates a data stream using a transposed scan order based on the values of the array resulting from the second transform. A method for decoding video encoded by a 2D transform, which separable to two 1D transforms. The method receives a data stream containing encoded values for an image, parses out the values into an array using a transposed scan order, performs a first 1D-inverse transform on the array, transposes the resulting array, and performs a second 1D-inverse transform of the array resulting from the transpose to produce a decoded output.Type: GrantFiled: April 30, 2003Date of Patent: May 20, 2008Assignee: Apple IncInventors: Maynard Handley, Roger Kumar, Thomas Pun, Xiaochun Nie, Hsi-Jung Wu
-
Publication number: 20080062018Abstract: Techniques for encoding data based at least in part upon an awareness of the decoding complexity of the encoded data and the ability of a target decoder to decode the encoded data are disclosed. In some embodiments, a set of data is encoded based at least in part upon a state of a target decoder to which the encoded set of data is to be provided. In some embodiments, a set of data is encoded based at least in part upon the states of multiple decoders to which the encoded set of data is to be provided.Type: ApplicationFiled: September 11, 2006Publication date: March 13, 2008Inventors: Jim Normile, Thomas Pun, Xiaojin Shi, Xin Tong, Hsi-Jung Wu
-
Publication number: 20070217503Abstract: Scalable video coding and multiplexing compatible with non-scalable decoders is disclosed. In some embodiments, video data is received and encoded in a manner that renders at least a base layer to be compatible with a non-scalable video encoding standard, including by assigning for at least the base layer default values to one or more scalability parameters. In some embodiments, video data is received and encoded to produce an encoded video data that includes a base layer that conforms to a non-scalable video encoding standard and one or more subordinate non-scalable layers, which subordinate non-scalable layers do not by themselves conform to the non-scalable video encoding standard but which can be combined with the base layer to produce a result that does conform to the non-scalable video encoding standard, such that the result can be decoded by a non-scalable decoder.Type: ApplicationFiled: February 23, 2007Publication date: September 20, 2007Inventors: Barin Geoffry Haskell, David William Singer, Thomas Pun, Hsi-Jung Wu, James Oliver Normile
-
Publication number: 20070217514Abstract: Some embodiments of the invention provide a method of performing motion estimation for an array of image values obtained from a current image. The method starts with an initial estimate of the motion of the current image. The method then determines whether the initial estimate of the motion of the current image array between the current image and a reference image is acceptable. If not, the method specifies a first value for a parameter for performing the motion estimation. Otherwise, the method specifies a second value for the parameter. The method then performs a motion estimation operation based on the specified value of the parameter. One example of a specified parameter is the size of the window that the motion estimation operation uses. Another example is the starting level for a hierarchical motion estimation operation that it performs. A hierarchical motion estimation operation searches the reference frame at several different levels of granularity.Type: ApplicationFiled: May 21, 2007Publication date: September 20, 2007Inventors: Roger Kumar, Thomas Pun, Xiaochun Nie, Hsi-Jung Wu
-
Patent number: 7239721Abstract: Some embodiments of the invention provide a method of performing motion estimation for an array of image values obtained from a current image. The method starts with an initial estimate of the motion of the current image. The method then determines whether the initial estimate of the motion of the current image array between the current image and a reference image is acceptable. If not, the method specifies a first value for a parameter for performing the motion estimation. Otherwise, the method specifies a second value for the parameter. The method then performs a motion estimation operation based on the specified value of the parameter. One example of a specified parameter is the size of the window that the motion estimation operation uses. Another example is the starting level for a hierarchical motion estimation operation that it performs. A hierarchical motion estimation operation searches the reference frame at several different levels of granularity.Type: GrantFiled: April 30, 2003Date of Patent: July 3, 2007Assignee: Apple Inc.Inventors: Roger Kumar, Thomas Pun, Xiaochun Nie, Hsi-Jung Wu
-
Publication number: 20070116437Abstract: A method for decoding a compressed video data sequence containing one or more coded pixel blocks The compressed video sequence is buffered. Prediction information for each of the coded pixel blocks is reviewed. One or more groups of coded pixet blocks are formed based on the reviewed prediction information such that the coded pixel blocks within a given group have similar prediction dependencies and/or at least do not depend on a reconstructed pixel within a group of received pixel blocks to enable parallel decoding. The formed groups are scheduled for processing and subsequently decoded to produce a decoded video data sequence.Type: ApplicationFiled: August 4, 2006Publication date: May 24, 2007Applicant: APPLE COMPUTER, INC.Inventors: Thomas PUN, Paul CHANG, Hsi-Jung WU
-
Publication number: 20070116126Abstract: An encoder includes an encoder engine, a storage device and a controller to implement an iterative coding process. The encoder engine compresses a selected portion of a data sequence. The storage device stores the compressed portion of the data sequence after each iteration. The controller selects the portion of the data sequence to compress for each iteration. The controller gathers statistics from the compressed portion of the data sequence. The gathered statistics include statistics generated by the selected frames and statistics extrapolated from the selected frames for the non-selected frames. The controller adjusts coding parameters of the encoder engine on each iteration until the gathered statistics meet a specified performance requirement.Type: ApplicationFiled: March 21, 2006Publication date: May 24, 2007Inventors: Barin Haskell, Adriana Dumitras, Hsi-Jung Wu, Xin Tong, Thomas Pun
-
Publication number: 20070116124Abstract: This invention is directed to a method for decoding coded video data in which decoder performance is regulated based on perceptual masking. The method includes, upon receipt of coded video data, applying the coded video data to a multi-stage decoding process; computing perceptual masking measures for the coded video data; and switching a stage of the decoding process to a lower performance level based on the computed perceptual masking measures. The method may be applied to non-reference frames and reference frames with low numbers of dependent frames. The method provides scalability among decoders to allow for various decoder and/or coded data complexity.Type: ApplicationFiled: August 4, 2006Publication date: May 24, 2007Applicant: APPLE COMPUTER, INC.Inventors: Hsi-Jung WU, Thomas PUN
-
Publication number: 20060245492Abstract: Some embodiments of the invention provide a method for specifying a bit allocation for encoding a set of images in a sequence of video images. The method computes a masking value for one or more images. The method computes a bit allocation for a current image based on the computed masking value of one or more images. In some embodiments, the method further ascertains a total number of bits used for images that have been already encoded before computing the bit allocation. The computed bit allocation for the current image is also based on the total number of bits used in some embodiments of the invention. In some embodiments, the method specifies a bit allocation for the current image by specifying a quantization parameter (QP) value for the current image. The method then adjusts the specified QP value based on a categorization of the current image.Type: ApplicationFiled: April 28, 2005Publication date: November 2, 2006Inventors: Thomas Pun, Hsi Wu, Adriana Dumitras
-
Publication number: 20060244819Abstract: Some embodiments provide an architecture for establishing multi-participant video conferences. This architecture has a central distributor that receives video images from two or more participants. From the received images, the central distributor generates composite images that the central distributor transmits back to the participants. Each composite image includes a set of sub images, where each sub image belongs to one participant. In some embodiments, the central distributor saves network bandwidth by removing each particular participant's image from the composite image that the central distributor sends to the particular participant. In some embodiments, images received from each participant are arranged in the composite in a non-interleaved manner. For instance, in some embodiments, the composite image includes at most one sub-image for each participant, and no two sub-images are interleaved.Type: ApplicationFiled: April 28, 2005Publication date: November 2, 2006Inventors: Thomas Pun, Hsi Wu, Hyeonkuk Jeong