Patents by Inventor Jingning Han

Jingning Han 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: 10491923
    Abstract: Multiple directional filters are applied against lines of pixels associated with a video block to determine filtered noise values. Each directional filter uses a different direction for filtering lines of pixels. For example, for each pixel value of the video block along a line of pixels having a direction corresponding to a directional filter, a difference can be determined between the pixel value and a corresponding pixel value along the line of pixels and outside of the video block. A value for line of pixels is determined as the sum of the absolute values of each of the differences, and a filtered noise value is determined as the sum of the values for the lines of pixels. The directional filter used to determine a lowest one of the filtered noise values for the video block is then selected. The video block is filtered using the selected directional filter.
    Type: Grant
    Filed: December 18, 2017
    Date of Patent: November 26, 2019
    Assignee: GOOGLE LLC
    Inventors: Cheng Chen, Jingning Han, Yaowu Xu
  • Patent number: 10484707
    Abstract: Candidate motion vectors are identified from previously coded blocks. For each candidate, a distance between a previously coded block associated with the candidate and a current block and a popularity value based previously coded pixels associated with the candidate are determined. Each candidate is ranked within a list according to a priority value, the priority value based on the distance and the popularity value associated with the candidate. The ranking also includes determining reference blocks that share first and second reference frames for decoding the current block using compound prediction, and assigning a higher priority to candidates that share the same combination of the reference frames within the list than combinations of candidates encoded using respective single reference frames of the first reference frame and the second reference frame. The reference motion vector is selected from the list and is used to decode the current block.
    Type: Grant
    Filed: July 15, 2019
    Date of Patent: November 19, 2019
    Assignee: GOOGLE LLC
    Inventors: Yaowu Xu, Jingning Han
  • Publication number: 20190342572
    Abstract: Candidate motion vectors are identified from previously coded blocks. For each candidate, a distance between a previously coded block associated with the candidate and a current block and a popularity value based previously coded pixels associated with the candidate are determined. Each candidate is ranked within a list according to a priority value, the priority value based on the distance and the popularity value associated with the candidate. The ranking also includes determining reference blocks that share first and second reference frames for decoding the current block using compound prediction, and assigning a higher priority to candidates that share the same combination of the reference frames within the list than combinations of candidates encoded using respective single reference frames of the first reference frame and the second reference frame. The reference motion vector is selected from the list and is used to decode the current block.
    Type: Application
    Filed: July 15, 2019
    Publication date: November 7, 2019
    Inventors: Yaowu Xu, Jingning Han
  • Patent number: 10462472
    Abstract: Coding efficiency may be improved by subdividing a block into smaller sub-blocks for prediction. A first rate distortion value of a block optionally partitioned into smaller prediction sub-blocks of a first size is calculated using respective inter prediction modes and transforms of the first size. The residuals are used to encode the block using a transform of a second size smaller than the first size, generating a second rate distortion value. The values are compared to determine whether coding efficiency gains may result from inter predicting the smaller, second size sub-blocks. If so, the block is encoded by generating prediction residuals for the second size sub-blocks, and neighboring sub-blocks are grouped, where possible, based on common motion information. Each resulting composite residual block is transformed by a transform of the same size to generate another rate distortion value. The encoded block with the lowest rate distortion value is used.
    Type: Grant
    Filed: March 26, 2018
    Date of Patent: October 29, 2019
    Assignee: GOOGLE LLC
    Inventors: Debargha Mukherjee, Jingning Han
  • Patent number: 10462457
    Abstract: Techniques are described to use a reference motion vector to reduce the amount of bits needed to encode motion vectors for inter prediction. A dynamic motion vector coding mode generates a ranked list of motion vector candidates using a distance between previously coded blocks and a current block, and the frequency of use of the motion vectors of those previously coded blocks. The list is used to assign the effective motion vectors to different inter-prediction modes, including a variable number of reference motion vector modes.
    Type: Grant
    Filed: December 9, 2016
    Date of Patent: October 29, 2019
    Assignee: GOOGLE LLC
    Inventors: Yaowu Xu, Jingning Han
  • Patent number: 10455253
    Abstract: A first interpolation filter is selected for a first direction of the prediction block, and a second interpolation filter is selected for a second direction of the prediction block. The first interpolation filter has a first number of taps and the second interpolation filter has a second number of taps. The second interpolation filter is set to an interpolation filter having a third number of taps in response to determining that the first number of taps is greater than a threshold number of taps and the second number of taps is greater than a threshold number of taps. The third number of taps is smaller than or equal to the threshold number of taps. The prediction block is generated using the first interpolation filter and the second interpolation filter.
    Type: Grant
    Filed: February 28, 2017
    Date of Patent: October 22, 2019
    Assignee: GOOGLE LLC
    Inventors: Stanislav Vitvitskyy, Jingning Han, Ching-Han Chiang, Adrian W. Grange
  • Patent number: 10448013
    Abstract: Encoding or decoding blocks of video frames using multiple reference frames with adaptive temporal filtering can include generating one or more candidate reference frames by applying temporal filtering to one or more frames of a video sequence according to relationships between respective ones of the one or more frames and a current frame of the video sequence. A reference frame to use for predicting the current frame can be selected from the one or more candidate reference frames, and a prediction block can be generated using the selected reference frame. During an encoding operation, the prediction block can be used to encode a block of a current frame of the video sequence. During a decoding operation, the prediction block can be used to decode a block of a current frame of the video sequence.
    Type: Grant
    Filed: December 22, 2016
    Date of Patent: October 15, 2019
    Assignee: GOOGLE LLC
    Inventors: Debargha Mukherjee, Yaowu Xu, James Bankoski, Paul Wilkins, Jingning Han, Yuxin Liu, Wei-Ting Lin
  • Publication number: 20190313123
    Abstract: Video coding using a context adaptive scan order for entropy coding may include an apparatus decoding a current block by identifying a context adaptive scan order for entropy decoding a transform block, which may include identifying non-zero-coefficient probabilities for the transform block such that each location in the transform block corresponds to a respective non-zero-coefficient probability from the non-zero-coefficient probabilities, assigning a respective context adaptive scan order position to each location in the transform block in descending magnitude order of the respective corresponding non-zero-coefficient probabilities such that the context adaptive scan order position for each location exceeds the context adaptive scan order position assigned to entropy coding context locations for the respective location, entropy decoding transform coefficients from the encoded video stream based on the context adaptive scan order, and reconstructing the decoded block based on the transform block.
    Type: Application
    Filed: June 25, 2019
    Publication date: October 10, 2019
    Inventors: Jingning Han, Ching-Han Chiang
  • Patent number: 10440394
    Abstract: Video coding using a context adaptive scan order for entropy coding may include decoding a current block by identifying a context adaptive scan order for entropy decoding a transform block, which may include identifying non-zero-coefficient probabilities for the transform block such that each location in the transform block corresponds to a respective non-zero-coefficient probability from the non-zero-coefficient probabilities, assigning a respective context adaptive scan order position to each location in the transform block in descending magnitude order of the respective corresponding non-zero-coefficient probabilities such that the context adaptive scan order position for each location exceeds the context adaptive scan order position assigned to entropy coding context locations for the respective location, entropy decoding transform coefficients from the encoded video stream based on the context adaptive scan order, and reconstructing the decoded block based on the transform block.
    Type: Grant
    Filed: September 8, 2016
    Date of Patent: October 8, 2019
    Assignee: GOOGLE LLC
    Inventors: Jingning Han, Ching-Han Chiang
  • Patent number: 10412410
    Abstract: A prediction scheme is selected for encoding or decoding a video block. A first compound motion block can be determined by weighting distances from a first reference frame to the video frame and from a second reference frame to the video frame using one or more quantized weighting coefficients. A second compound motion block can be determined based on an average of pixel values a video block of the first reference frame and pixel values from a video block of the second reference frame. One of the first compound motion block or the second compound motion block is selected and used to generate a prediction block. Alternatively, data encoded to a bitstream including the video frame can be used to determine which compound motion block to use to generate the prediction block. The current block of the video frame is then encoded or decoded using the prediction block.
    Type: Grant
    Filed: August 14, 2017
    Date of Patent: September 10, 2019
    Assignee: GOOGLE LLC
    Inventors: Jingning Han, Yaowu Xu
  • Publication number: 20190268617
    Abstract: Techniques are described to use a reference motion vector to reduce the amount of bits needed to encode motion vectors for inter prediction. One method includes identifying a candidate motion vector used to inter predict each of a plurality of previously coded blocks to define a plurality of candidate motion vectors, determining a distance between the previously decoded block associated with the candidate motion vector and a current block, determining a popularity value for each candidate motion vector based on a set of previously coded pixels associated with the candidate motion vector, and ranking the candidate motion vectors according to a priority value for each candidate motion vector. The priority value, based on the distance and the popularity value associated with the candidate motion vector, is used to select a reference motion vector from the candidate motion vectors that is used to encode the motion vector for the current block.
    Type: Application
    Filed: April 18, 2016
    Publication date: August 29, 2019
    Applicant: GOOGLE INC.
    Inventors: Yaowu Xu, Jingning Han
  • Publication number: 20190268598
    Abstract: Generating a new scan order includes incrementing a next index value after assigning the next index value to a coefficient in the new scan order; assigning, to a first coefficient at a first scan index m in the original scan order, a first scan index in the new scan order, the first coefficient is a context coefficient for entropy coding a parent coefficient that is at a parent scan index n in the original scan order; adding, to a list, a first item indicative of the parent coefficient and parent scan index n; before assigning a second scan index to a second coefficient that is at a second index m+j in the original scan order, wherein j>1, assigning the next index value to the parent coefficient, and removing the first item from the list; and assigning the next index value to the second coefficient in the new scan order.
    Type: Application
    Filed: May 3, 2019
    Publication date: August 29, 2019
    Inventors: Ching-Han Chiang, Yaowu Xu, Jingning Han, Jia Feng
  • Patent number: 10397600
    Abstract: Techniques are described to use a reference motion vector to reduce the amount of bits needed to encode motion vectors for inter prediction. One method includes identifying a candidate motion vector used to inter predict each of a plurality of previously coded blocks to define a plurality of candidate motion vectors, determining a distance between the previously decoded block associated with the candidate motion vector and a current block, determining a popularity value for each candidate motion vector based on a set of previously coded pixels associated with the candidate motion vector, and ranking the candidate motion vectors according to a priority value for each candidate motion vector. The priority value, based on the distance and the popularity value associated with the candidate motion vector, is used to select a reference motion vector from the candidate motion vectors that is used to encode the motion vector for the current block.
    Type: Grant
    Filed: April 18, 2016
    Date of Patent: August 27, 2019
    Assignee: GOOGLE LLC
    Inventors: Yaowu Xu, Jingning Han
  • Patent number: 10382758
    Abstract: A scan order for encoding or decoding coefficients of a transform block is selected on a transform block-level. A set of candidate scan orders is processed by identifying end of block positions within the transform block for each of the candidate scan orders. Cost values are determined for each of the candidate scan orders to reflect a number of the coefficients of the transform block that are located before the respective end of block positions. In particular, a cost value for a candidate scan order reflects the number of zero-value coefficients located before the end of block position for that candidate scan order. One of the candidate scan orders is then selected based on those cost values. The selected scan order is used to scan the coefficients in the transform block, such as for encoding those coefficients to a bitstream or for decoding those coefficients to an output video stream.
    Type: Grant
    Filed: January 26, 2018
    Date of Patent: August 13, 2019
    Assignee: GOOGLE LLC
    Inventors: Jingning Han, Dake He
  • Publication number: 20190238865
    Abstract: Coding a transform block using level maps is disclosed. A method includes determining a lower plane of values, processing the lower plane in a backward scan order, and selecting a template for entropy-coding the values of the lower plane. The method also includes, for a current value of the lower plane, selecting, based on the template anti-diagonal lines, two or more line buffers, each of the two or more line buffers corresponding to a respective scan-order anti-diagonal line, determining a context using the two or more line buffers, and entropy encoding the current value using the context. Each value is a respective “up-to” value of a transform coefficient. The backward scan order visits the values of the lower plane along scan-order anti-diagonal lines. The template indicates scan positions of coded values of the lower plane, the scan positions are arranged, in the template, along template anti-diagonal lines.
    Type: Application
    Filed: January 30, 2018
    Publication date: August 1, 2019
    Inventors: Jingning Han, James Zern, Linfeng Zhang, Ching-Han Chiang, Yaowu Xu
  • Publication number: 20190238879
    Abstract: A method for decoding an encoded block of an encoded frame includes selecting motion vectors corresponding to blocks of an extended collocated processing unit in a first reference frame; identifying a block of the blocks, such that the encoded block is a projection, using a motion vector of the block that refers to a third reference frame, onto the encoded frame; on condition that a block is identified, determining a temporal motion vector candidate for the encoded block in a second reference frame using a motion vector of the identified block and respective display orders of the encoded frame, the first reference frame, the second reference frame, and the third reference frame, and adding the temporal motion vector candidate to a motion vector candidate list; selecting a motion vector from the motion vector candidate list; generating a prediction block using the selected motion vector for decoding the encoded block.
    Type: Application
    Filed: April 9, 2019
    Publication date: August 1, 2019
    Inventors: Jingning Han, Yaowu Xu, James Bankoski, Jia Feng
  • Publication number: 20190215533
    Abstract: Encoding a transform block includes de-composing transform coefficients of the transform block into binary level maps arranged in a tier and a residual transform map, the binary level maps formed by breaking down a value of a respective transform coefficient into a series of binary decisions; and encoding, using a context model, a to-be-encoded binary decision that is at a scan location in a scan order, the to-be-encoded binary decision being a value of a binary level map at a level k. The context model is selected using first neighboring binary decisions of the binary level map at a level k that precede the to-be-encoded binary decision; and second neighboring binary decisions of a binary level map at a level (k?1), the second neighboring binary decisions including values that precede and values that follow, in the scan order, a co-located binary decision of the to-be-encoded binary decision.
    Type: Application
    Filed: March 12, 2019
    Publication date: July 11, 2019
    Inventors: Yaowu Xu, Jingning Han, Ching-Han Chiang
  • Publication number: 20190191164
    Abstract: A scan order for encoding or decoding coefficients of a transform block is selected on a transform block-level. A set of candidate scan orders is processed by identifying end of block positions within the transform block for each of the candidate scan orders. Cost values are determined for each of the candidate scan orders to reflect a number of the coefficients of the transform block that are located before the respective end of block positions. In particular, a cost value for a candidate scan order reflects the number of zero-value coefficients located before the end of block position for that candidate scan order. One of the candidate scan orders is then selected based on those cost values. The selected scan order is used to scan the coefficients in the transform block, such as for encoding those coefficients to a bitstream or for decoding those coefficients to an output video stream.
    Type: Application
    Filed: January 26, 2018
    Publication date: June 20, 2019
    Inventors: Jingning Han, Dake He
  • Patent number: 10326994
    Abstract: A method for coding a transform block of coefficients includes generating a new scan order from the original scan order such that a maximum scan distance of the new scan order is smaller than or equal to a predetermined distance, and coding the coefficients based on the new scan order. An apparatus for decoding a transform block of coefficients. The apparatus includes a memory and a processor. The memory includes instructions executable by the processor to identify an original scan order for encoding the coefficients, generate a new scan order from the original scan order such that a maximum scan distance of the new scan order is less than or equal to a predetermined distance, and decode, from an encoded bitstream, the coefficients based on the new scan order.
    Type: Grant
    Filed: April 11, 2018
    Date of Patent: June 18, 2019
    Assignee: GOOGLE LLC
    Inventors: Ching-Han Chiang, Yaowu Xu, Jingning Han, Jia Feng
  • Publication number: 20190158843
    Abstract: An optical flow reference frame portion (e.g., a block or an entire frame) is generated that can be used for inter prediction of blocks of a current frame in a video sequence. A forward reference frame and a backward reference frame are used in an optical flow estimation that produces a respective motion field for pixels of a current frame. The motion fields are used to warp some or all pixels of the reference frames to the pixels of the current frame. The warped reference frame pixels are blended to form the optical flow reference frame portion. The inter prediction may be performed as part of encoding or decoding portions of the current frame.
    Type: Application
    Filed: November 20, 2017
    Publication date: May 23, 2019
    Inventors: Yaowu Xu, Bohan Li, Jingning Han