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: 10523944
    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: Grant
    Filed: May 3, 2019
    Date of Patent: December 31, 2019
    Assignee: GOOGLE LLC
    Inventors: Ching-Han Chiang, Yaowu Xu, Jingning Han, Jia Feng
  • Publication number: 20190394463
    Abstract: Systems and methods are disclosed for encoding and decoding video. For example, methods may include: accessing an encoded bitstream; reconstructing an image including multiple color planes based on data from the encoded bitstream; decoding a first filter level from the encoded bitstream, wherein the first filter level specifies one or more thresholds that are used to select a length for a deblocking filter; decoding a second filter level from the encoded bitstream, wherein the second filter level specifies one or more thresholds that are used to select a length for a deblocking filter; after reconstruction of the image, applying a deblocking filter to a first color plane of the image using the first filter level; and, after reconstruction of the image, applying a deblocking filter to a second color plane of the image using the second filter level.
    Type: Application
    Filed: June 25, 2018
    Publication date: December 26, 2019
    Inventors: Cheng Chen, Jingning Han, Yaowu Xu
  • Publication number: 20190394491
    Abstract: Multi-stage coding block partition search is disclosed. A method includes selecting a partition-none partition type and a partition-split partition type for predicting the block, determining a first cost of predicting the block using the partition-none partition type, and determining a second cost of predicting the block using the partition-split partition type. The partition-none partition type and the partition-split partition type are selected from a set of partition types that includes the partition-none partition type, the partition-split partition type, and third partition types. The method also includes, on condition that the result meets a criterion, determining a respective encoding cost corresponding to at least some of the third partition types; selecting a selected partition type corresponding to a minimal cost amongst the partition-none partition type and the at least some of the third partition types; and encoding, in a compressed bitstream, the selected partition type.
    Type: Application
    Filed: June 25, 2018
    Publication date: December 26, 2019
    Inventors: Jingning Han, Yaowu Xu
  • Patent number: 10506258
    Abstract: Video syntax elements are coded using a context tree. Context information used for coding previously-coded syntax elements is identified. A context tree is produced by separating the previously-coded syntax elements into data groups based on the context information. The context tree includes nodes representing the data groups. Separating the previously-coded syntax elements can include applying separation criteria against values of the context information to produce at least some of the nodes. Context information is then identified for another set of syntax elements to be coded. One of the nodes of the context tree is identified based on values of the context information associated with one of the other set of syntax elements. That syntax element is then coded according to a probability model associated with the identified node. The context tree can be used to encode or decode syntax elements.
    Type: Grant
    Filed: July 13, 2017
    Date of Patent: December 10, 2019
    Assignee: GOOGLE LLC
    Inventors: Ching-Han Chiang, Jingning Han, Yaowu Xu
  • Patent number: 10506242
    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: Grant
    Filed: January 30, 2018
    Date of Patent: December 10, 2019
    Assignee: GOOGLE LLC
    Inventors: Jingning Han, James Zern, Linfeng Zhang, Ching-Han Chiang, Yaowu Xu
  • Publication number: 20190364281
    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: August 8, 2019
    Publication date: November 28, 2019
    Inventors: Jingning Han, Dake He
  • 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: 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
  • 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
  • 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