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: 10523944Abstract: 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: GrantFiled: May 3, 2019Date of Patent: December 31, 2019Assignee: GOOGLE LLCInventors: Ching-Han Chiang, Yaowu Xu, Jingning Han, Jia Feng
-
Publication number: 20190394463Abstract: 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: ApplicationFiled: June 25, 2018Publication date: December 26, 2019Inventors: Cheng Chen, Jingning Han, Yaowu Xu
-
Publication number: 20190394491Abstract: 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: ApplicationFiled: June 25, 2018Publication date: December 26, 2019Inventors: Jingning Han, Yaowu Xu
-
Patent number: 10506258Abstract: 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: GrantFiled: July 13, 2017Date of Patent: December 10, 2019Assignee: GOOGLE LLCInventors: Ching-Han Chiang, Jingning Han, Yaowu Xu
-
Patent number: 10506242Abstract: 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: GrantFiled: January 30, 2018Date of Patent: December 10, 2019Assignee: GOOGLE LLCInventors: Jingning Han, James Zern, Linfeng Zhang, Ching-Han Chiang, Yaowu Xu
-
Publication number: 20190364281Abstract: 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: ApplicationFiled: August 8, 2019Publication date: November 28, 2019Inventors: Jingning Han, Dake He
-
Patent number: 10491923Abstract: 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: GrantFiled: December 18, 2017Date of Patent: November 26, 2019Assignee: GOOGLE LLCInventors: Cheng Chen, Jingning Han, Yaowu Xu
-
Patent number: 10484707Abstract: 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: GrantFiled: July 15, 2019Date of Patent: November 19, 2019Assignee: GOOGLE LLCInventors: Yaowu Xu, Jingning Han
-
Publication number: 20190342572Abstract: 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: ApplicationFiled: July 15, 2019Publication date: November 7, 2019Inventors: Yaowu Xu, Jingning Han
-
Patent number: 10462472Abstract: 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: GrantFiled: March 26, 2018Date of Patent: October 29, 2019Assignee: GOOGLE LLCInventors: Debargha Mukherjee, Jingning Han
-
Patent number: 10462457Abstract: 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: GrantFiled: December 9, 2016Date of Patent: October 29, 2019Assignee: GOOGLE LLCInventors: Yaowu Xu, Jingning Han
-
Patent number: 10455253Abstract: 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: GrantFiled: February 28, 2017Date of Patent: October 22, 2019Assignee: GOOGLE LLCInventors: Stanislav Vitvitskyy, Jingning Han, Ching-Han Chiang, Adrian W. Grange
-
Patent number: 10448013Abstract: 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: GrantFiled: December 22, 2016Date of Patent: October 15, 2019Assignee: GOOGLE LLCInventors: Debargha Mukherjee, Yaowu Xu, James Bankoski, Paul Wilkins, Jingning Han, Yuxin Liu, Wei-Ting Lin
-
Publication number: 20190313123Abstract: 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: ApplicationFiled: June 25, 2019Publication date: October 10, 2019Inventors: Jingning Han, Ching-Han Chiang
-
Patent number: 10440394Abstract: 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: GrantFiled: September 8, 2016Date of Patent: October 8, 2019Assignee: GOOGLE LLCInventors: Jingning Han, Ching-Han Chiang
-
Patent number: 10412410Abstract: 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: GrantFiled: August 14, 2017Date of Patent: September 10, 2019Assignee: GOOGLE LLCInventors: Jingning Han, Yaowu Xu
-
Publication number: 20190268598Abstract: 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: ApplicationFiled: May 3, 2019Publication date: August 29, 2019Inventors: Ching-Han Chiang, Yaowu Xu, Jingning Han, Jia Feng
-
Publication number: 20190268617Abstract: 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: ApplicationFiled: April 18, 2016Publication date: August 29, 2019Applicant: GOOGLE INC.Inventors: Yaowu Xu, Jingning Han
-
Patent number: 10397600Abstract: 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: GrantFiled: April 18, 2016Date of Patent: August 27, 2019Assignee: GOOGLE LLCInventors: Yaowu Xu, Jingning Han
-
Patent number: 10382758Abstract: 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: GrantFiled: January 26, 2018Date of Patent: August 13, 2019Assignee: GOOGLE LLCInventors: Jingning Han, Dake He