Notice of Pre-AIA or AIA Status
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
2. This Office Action is sent in response to Applicant’s amendments/remarks received on November 25,2025.
3. Claims 1, 4-7, 9-16 and 22-28 are pending in this application.
4. Claims 1, 16 and 22 have been amended. Claims 2-3, 8 and 17-21 have been canceled. New claim 28 is presented for examination.
Response to Arguments
5. Applicant's arguments filed November 25,2025 have been fully considered but they are deemed moot in view of a necessitated new grounds of rejection.
Information Disclosure Statement
6. The information disclosure statement (IDS) submitted on October 7, 2025 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Claim Rejections - 35 USC § 103
7. In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
8. The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
9. The factual inquiries for establishing a background for determining obviousness under 35 U.S.C. 103 are summarized as follows:
1. Determining the scope and contents of the prior art.
2. Ascertaining the differences between the prior art and the claims at issue.
3. Resolving the level of ordinary skill in the pertinent art.
4. Considering objective evidence present in the application indicating obviousness or nonobviousness.
10. Claims 1, 4-7, 9, 10, 12, 16 and 22-28 are rejected under 35 U.S.C. 103 as being unpatentable over Chen et al.(US 2018/0098089 A1)(hereinafter Chen) in view of BROSS et al.(US 2021/0409755 A1)(hereinafter Bross).
Regarding claims 1 and 28, Chen discloses an apparatus and a method for decoding a current block[See Chen: at least Figs. 1, 3 and 10 regarding video decoder 30 and decoding method], comprising:
a processor [See Chen: at least par. 7, 9, 41, 191-192 regarding video decoder 30 each may be implemented as any of a variety of suitable encoder circuitry or decoder circuitry, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware or any combinations thereof.] configured to:
obtain / obtaining at least one of a maximum motion vector (MV) precision or a minimum MV precision for a group of blocks, wherein the group of blocks includes the current block[See Chen: at least Figs. 1, 3, 10 and par. 27, 63, 144, 153, 171-174, 184-185 regarding video encoder 20 may be configured to encode one or more precision syntax elements indicating the current MVD precision from the three or more MVD precisions in one or more of a sequence parameter set, a picture parameter set, or a slice header.… The derivation of set of MVD precisions may depend on the sequence resolution, quantization parameters, coding modes, temporal level of a picture. In one example, for pictures which are not referred by succeeding pictures (e.g., highest temporal level in hierarchy structure), only integer or half precision are allowed. In one example, the MV precision is aligned with the MVD precision… Further, video decoder 30 may be configured to receive one or more precision syntax elements indicating the current MVD precision from the three or more MVD precisions in one or more of a sequence parameter set, a picture parameter set, a coding unit, a prediction unit, or a slice header, and decode the one or more precision syntax elements indicating the current MVD precision. In one example, the one or more precision syntax elements indicate the value of N for the N-sample MVD precision. Video decoder 30 may be further configured to determine the three or more MVD precisions based on one or more of a sequence resolution, a quantization parameter, a coding mode, or a temporal level of a picture...];
obtain / obtaining a block-level MV precision for decoding the current block[See Chen: at least Figs. 1, 3, 10 and par. 27, 63, 129, 138, 144, 147, 153, 171-174, 184-185 regarding Video decoder 30 may be configured to determine a current MVD precision, from three or more MVD precisions, for the one or more syntax elements indicating the MVD, wherein the three or more MVD precisions include an N-sample MVD precision (404)…], wherein the block-level MV precision is limited by the at least one of the maximum MV precision or the minimum MV precision[See Chen: at least Figs. 1, 3, 10 and par. 27, 63, 129, 138, 144, 147, 153, 171-174, 184-185 regarding Video decoder 30 may be configured to determine a current MVD precision, from three or more MVD precisions, for the one or more syntax elements indicating the MVD, wherein the three or more MVD precisions include an N-sample MVD precision (404)... The derivation of set of MVD precisions may depend on the sequence resolution, quantization parameters, coding modes, temporal level of a picture. In one example, for pictures which are not referred by succeeding pictures (e.g., highest temporal level in hierarchy structure), only integer or half precision are allowed. In one example, the MV precision is aligned with the MVD precision.];
decode / decoding an MV for the current block using the block-level MV precision[See Chen: at least Figs. 1, 3, 10 and par. 27, 63, 129, 138, 144, 147, 153, 171-174, 184-185 regarding Video decoder 30 may be further configured to decode the one or more syntax elements indicating the MVD using the determined current MVD precision (406), and decode the encoded block of video data using the decoded MVD (408)…( the MV is obtained from MVD in block 408)]; and
obtain / obtaining a prediction block for the current block using the MV[See Chen: at least Figs. 1, 3, 10 and par. 27, 63, 129, 138, 144, 147, 153, 171-174, 184-185 regarding Video decoder 30 may be further configured to decode the one or more syntax elements indicating the MVD using the determined current MVD precision (406), and decode the encoded block of video data using the decoded MVD (408)…].
Chen does not explicitly disclose wherein the at least one of the maximum MV precision or the minimum MV precision is a limit on block-level MV precisions available for blocks within the group of blocks.
However, determining one of the maximum MV precision or the minimum MV precision is a limit on block-level MV precisions available for blocks within the group of blocks was well known in the art at the time of the invention was filed as evident from the teaching of Bross [See Bross: at least Figs. 1-19, and par. 33-37, 56-60, 85-89, 116-120, 159-161, 185-187, 278, 333-352, regarding the encoder is configured to selectively determine a set of processing schemes (e.g. “multi-possibility encoding”) for a motion vector accuracy (e.g. a sub-sample motion vector accuracy, e.g. HPEL) which is between a maximum motion vector accuracy (e.g. a sub-sample motion vector resolution which is finer than the motion vector accuracy mentioned before; e.g. QPEL) and a minimum motion vector accuracy (e.g. 4PEL) or for a motion vector accuracy (e.g. HPEL) which is between a maximum motion vector accuracy (e.g. QPEL) and a full-sample motion vector accuracy (e.g. FPEL) and select processing scheme from the determined set. For example, for the maximum MV accuracy, there may be one particularly efficient processing scheme, so that it may be beneficial not to determine a set of processing schemes, while for the maximum or the full-sample MV accuracy, selecting a processing scheme may be unnecessary, as possibly none of the selectable processing schemes may be applied. In contrast, for a MV accuracy between the maximum MV accuracy and the a full-sample or minimum MV accuracy, it may be particularly beneficial to adapt the processing scheme to the property of the portion… the decoder is configured to selectively determine a set of processing schemes (e.g. “multi-possibility encoding”) for a motion vector accuracy (e.g. a sub-sample motion vector accuracy, e.g. HPEL) which is between a maximum motion vector accuracy (e.g. a sub-sample motion vector resolution which is finer than the motion vector accuracy mentioned before; e.g. QPEL) and a minimum motion vector accuracy (e.g. 4PEL) or for a motion vector accuracy (e.g. HPEL) which is between a maximum motion vector accuracy (e.g. QPEL) and a full-sample motion vector accuracy (e.g. FPEL) from which a processing scheme to be applied is identified…].
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Chen with Bross teachings by including “wherein the at least one of the maximum MV precision or the minimum MV precision is a limit on block-level MV precisions available for blocks within the group of blocks” because this combination has the benefit of improved tradeoff between bit rate , complexity and achievable quality of the video coding system[See Bross: at least par. 3-24].
Regarding claim 22, Chen discloses an apparatus for encoding a current block[See Chen: at least Figs. 1, 2 and 9 regarding video encoder 20 and encoding method], comprising:
a processor [See Chen: at least par. 7, 9, 41, 191-192 regarding video decoder 30 each may be implemented as any of a variety of suitable encoder circuitry or decoder circuitry, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware or any combinations thereof.] configured to:
obtain at least one of a maximum motion vector (MV) precision or a minimum MV precision for a group of blocks, wherein the group of blocks includes the current block [See Chen: at least Figs. 1, 2, 9-10 and par. 27, 63, 144, 153, 171-174, 181-185 regarding Video encoder 20 may further determine a current MVD precision, from three or more MVD precisions, for encoding one or more syntax elements indicating the MVD, wherein the three or more MVD precisions include an N-sample MVD precision (304).… The derivation of set of MVD precisions may depend on the sequence resolution, quantization parameters, coding modes, temporal level of a picture. In one example, for pictures which are not referred by succeeding pictures (e.g., highest temporal level in hierarchy structure), only integer or half precision are allowed. In one example, the MV precision is aligned with the MVD precision…];
obtain a block-level MV precision for decoding the current block[See Chen: at least Figs. 1, 3, 10 and par. 27, 63, 129, 138, 144, 147, 153, 171-174, 181-185 regarding Video encoder 20 may further determine a current MVD precision, from three or more MVD precisions, for encoding one or more syntax elements indicating the MVD, wherein the three or more MVD precisions include an N-sample MVD precision (304)… In one example, the MV precision is aligned with the MVD precision.],, wherein the block-level MV precision is limited by the at least one of the maximum MV precision or the minimum MV precision[See Chen: at least Figs. 1, 2, 9-10 and par. 27, 63, 144, 153, 171-174, 181-185 regarding Video encoder 20 may further determine a current MVD precision, from three or more MVD precisions, for encoding one or more syntax elements indicating the MVD, wherein the three or more MVD precisions include an N-sample MVD precision (304).… The derivation of set of MVD precisions may depend on the sequence resolution, quantization parameters, coding modes, temporal level of a picture. In one example, for pictures which are not referred by succeeding pictures (e.g., highest temporal level in hierarchy structure), only integer or half precision are allowed. In one example, the MV precision is aligned with the MVD precision…];
encode an MV for the current block using the block-level MV precision [See Chen: at least Figs. 1, 2, 9-10 and par. 27, 63, 144, 153, 171-174, 181-185 regarding Video encoder 20 may be further configured to encode the block of video data using the MVD and the inter-prediction mode (306), and encode the one or more syntax elements indicating the MVD using the determined current MVD precision (308).];
obtain a prediction block for encoding the current block using the MV; and encode, using the prediction block, a residual block for the current block[See Chen: at least Figs. 1, 2, 9-10 and par. 27, 63, 144, 153, 171-174, 181-185 regarding Video encoder 20 may be further configured to encode the block of video data using the MVD and the inter-prediction mode (306), and encode the one or more syntax elements indicating the MVD using the determined current MVD precision (308).].
Chen does not explicitly disclose wherein the at least one of the maximum MV precision or the minimum MV precision is a limit on block-level MV precisions available for blocks within the group of blocks.
However, determining one of the maximum MV precision or the minimum MV precision is a limit on block-level MV precisions available for blocks within the group of blocks was well known in the art at the time of the invention was filed as evident from the teaching of Bross [See Bross: at least Figs. 1-19, and par. 33-37, 56-60, 85-89, 116-120, 159-161, 185-187, 278, 333-352, regarding the encoder is configured to selectively determine a set of processing schemes (e.g. “multi-possibility encoding”) for a motion vector accuracy (e.g. a sub-sample motion vector accuracy, e.g. HPEL) which is between a maximum motion vector accuracy (e.g. a sub-sample motion vector resolution which is finer than the motion vector accuracy mentioned before; e.g. QPEL) and a minimum motion vector accuracy (e.g. 4PEL) or for a motion vector accuracy (e.g. HPEL) which is between a maximum motion vector accuracy (e.g. QPEL) and a full-sample motion vector accuracy (e.g. FPEL) and select processing scheme from the determined set. For example, for the maximum MV accuracy, there may be one particularly efficient processing scheme, so that it may be beneficial not to determine a set of processing schemes, while for the maximum or the full-sample MV accuracy, selecting a processing scheme may be unnecessary, as possibly none of the selectable processing schemes may be applied. In contrast, for a MV accuracy between the maximum MV accuracy and the a full-sample or minimum MV accuracy, it may be particularly beneficial to adapt the processing scheme to the property of the portion… the decoder is configured to selectively determine a set of processing schemes (e.g. “multi-possibility encoding”) for a motion vector accuracy (e.g. a sub-sample motion vector accuracy, e.g. HPEL) which is between a maximum motion vector accuracy (e.g. a sub-sample motion vector resolution which is finer than the motion vector accuracy mentioned before; e.g. QPEL) and a minimum motion vector accuracy (e.g. 4PEL) or for a motion vector accuracy (e.g. HPEL) which is between a maximum motion vector accuracy (e.g. QPEL) and a full-sample motion vector accuracy (e.g. FPEL) from which a processing scheme to be applied is identified…].
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Chen with Bross teachings by including “wherein the at least one of the maximum MV precision or the minimum MV precision is a limit on block-level MV precisions available for blocks within the group of blocks” because this combination has the benefit of improved tradeoff between bit rate , complexity and achievable quality of the video coding system[See Bross: at least par. 3-24].
Regarding claims 4 and 23, Chen and Bross teach all of the limitations of claims 1 and 22, and are analyzed as previously discussed with respect to those claims. Further, Chen teaches or suggests wherein the processor is configured to: decode / encode, from / into a frame header of a frame that includes the group of blocks, at least one flag indicating that a super-block header of the group of blocks includes the at least one of the maximum MV precision or the minimum MV precision [See Chen: at least par. 131, 142, 147, 151, 156, 165-167, 171-174, 179 regarding Some examples relate to signaled adaptive motion vector precision. In such an example, motion vector precision may be signaled in bitstream such as at LCU, CU or PU level. A flag/value may be used to indicate the motion vector precision, such as integer precision, half-pixel precision, quarter-pixel precision, or other precisions… video encoder 20 may be configured to generate syntax elements that indicate the set of allowed MVD precisions that are used for a picture, and/or a slice, and/or a tile(superblock), and/or a sequence. Video encoder 20 may signal the syntax elements in the encoded video bitstream. In one example, video encoder 20 may signal such syntax elements in, e.g., the PPS or slice header, to indicate that only a portion of all allowed MVD precisions are used for the blocks in a picture or slice…video decoder 30 may be configured to receive one or more precision syntax elements indicating the current MVD precision from the three or more MVD precisions in one or more of a sequence parameter set, a picture parameter set, a coding unit, a prediction unit, or a slice header, and decode the one or more precision syntax elements indicating the current MVD precision.].
Regarding claims 5 and 24, Chen and Bross teach all of the limitations of claims 1 and 22, and are analyzed as previously discussed with respect to those claims. Further, Chen teaches or suggests wherein to obtain the at least one of the maximum MV precision or the minimum MV precision for the group of blocks comprises to: decode, from a header of a frame that includes the group of blocks, the at least one of the maximum MV precision or the minimum MV precision / wherein the processor is configured to: encode, into a header of a frame that includes the group of blocks, the at least one of the maximum MV precision or the minimum MV precision[See Chen: at least par. 131, 142, 147, 151, 156, 165-167, 171-174, 179 regarding Some examples relate to signaled adaptive motion vector precision. In such an example, motion vector precision may be signaled in bitstream such as at LCU, CU or PU level. A flag/value may be used to indicate the motion vector precision, such as integer precision, half-pixel precision, quarter-pixel precision, or other precisions… video encoder 20 may be configured to generate syntax elements that indicate the set of allowed MVD precisions that are used for a picture, and/or a slice, and/or a tile, and/or a sequence. Video encoder 20 may signal the syntax elements in the encoded video bitstream. In one example, video encoder 20 may signal such syntax elements in, e.g., the PPS or slice header, to indicate that only a portion of all allowed MVD precisions are used for the blocks in a picture or slice…video decoder 30 may be configured to receive one or more precision syntax elements indicating the current MVD precision from the three or more MVD precisions in one or more of a sequence parameter set, a picture parameter set, a coding unit, a prediction unit, or a slice header, and decode the one or more precision syntax elements indicating the current MVD precision.]; and use the at least one of the maximum MV precision or the minimum MV precision for decoding motion vectors of sub-blocks of the group of blocks[See Chen: at least at least Fig. 10 and par. 183-188 regarding Video decoder 30 may be configured to determine a current MVD precision, from three or more MVD precisions, for the one or more syntax elements indicating the MVD, wherein the three or more MVD precisions include an N-sample MVD precision (404). Video decoder 30 may be further configured to decode the one or more syntax elements indicating the MVD using the determined current MVD precision (406), and decode the encoded block of video data using the decoded MVD (408)].
Regarding claims 6 and 25, Chen and Bross teach all of the limitations of claims 1 and 22, and are analyzed as previously discussed with respect to those claims. Further, Chen teaches or suggests wherein to obtain the at least one of the maximum MV precision or the minimum MV precision for the group of blocks comprises to: decode, from a header of a group of frames that includes a frame that includes the group of blocks, the at least one of the maximum MV precision or the minimum MV precision / wherein the processor is configured to: encode, into a header of a group of frames that includes a frame that includes the group of blocks, the at least one of the maximum MV precision or the minimum MV precision[See Chen: at least par. 131, 142, 147, 151, 156, 165-167, 171-174, 179 regarding Some examples relate to signaled adaptive motion vector precision. In such an example, motion vector precision may be signaled in bitstream such as at LCU, CU or PU level. A flag/value may be used to indicate the motion vector precision, such as integer precision, half-pixel precision, quarter-pixel precision, or other precisions… video encoder 20 may be configured to generate syntax elements that indicate the set of allowed MVD precisions that are used for a picture, and/or a slice, and/or a tile, and/or a sequence. Video encoder 20 may signal the syntax elements in the encoded video bitstream. In one example, video encoder 20 may signal such syntax elements in, e.g., the PPS or slice header, to indicate that only a portion of all allowed MVD precisions are used for the blocks in a picture or slice…video decoder 30 may be configured to receive one or more precision syntax elements indicating the current MVD precision from the three or more MVD precisions in one or more of a sequence parameter set, a picture parameter set, a coding unit, a prediction unit, or a slice header, and decode the one or more precision syntax elements indicating the current MVD precision.]; and use the at least one of the maximum MV precision or the minimum MV precision for decoding motion vectors of sub-blocks of the group of blocks[See Chen: at least Fig. 10 and par. 183-188 regarding Video decoder 30 may be configured to determine a current MVD precision, from three or more MVD precisions, for the one or more syntax elements indicating the MVD, wherein the three or more MVD precisions include an N-sample MVD precision (404). Video decoder 30 may be further configured to decode the one or more syntax elements indicating the MVD using the determined current MVD precision (406), and decode the encoded block of video data using the decoded MVD (408)].
Regarding claims 7 and 26, Chen and Bross teach all of the limitations of claims 1 and 22, and are analyzed as previously discussed with respect to those claims. Further, Chen teaches or suggests wherein to obtain the block-level MV precision for decoding the current block comprises to one of: decode, from a header of the current block, the block-level MV precision / wherein the processor is one of configured to: encode, into a header of the current block, the block-level MV precision[See Chen: at least par. 174, 181-182 regarding video decoder 30 may be configured to receive one or more precision syntax elements indicating the current MVD precision from the three or more MVD precisions in one or more of a sequence parameter set, a picture parameter set, a coding unit, a prediction unit, or a slice header, and decode the one or more precision syntax elements indicating the current MVD precision…Video encoder 20 may further determine a current MVD precision, from three or more MVD precisions, for encoding one or more syntax elements indicating the MVD, wherein the three or more MVD precisions include an N-sample MVD precision (304)… Video encoder 20 may be further configured to encode the block of video data using the MVD… ]; or in response to determining that a size of the current block is smaller than a threshold size, use the maximum MV precision as the block-level MV precision / omit the block-level MV precision from a compressed bitstream[See Chen: at least par. 74, 144-145 regarding When the difference exceeds a threshold, resolution selection unit 48 may select the one-eighth-pixel precision motion vector for encoding the block…].
Regarding claims 9 and 27, Chen and Bross teach all of the limitations of claims 1 and 22, and are analyzed as previously discussed with respect to those claims. Further, Chen teaches or suggests wherein to obtain the block-level MV precision for decoding the current block comprises to / wherein the processor is configured to: select a probability distribution using the at least one of the maximum MV precision or the minimum MV precision and respective MV precisions of neighboring blocks of the current block; and entropy decode / entropy encode the block-level MV precision from / into a compressed bitstream using the probability distribution[See Chen: at least par. 65, 69, 79-80, 83-85, 89, 91, 92, 149 regarding entropy encoding unit 56 may be configured to encode an indication of an MV/MVD precision for a motion vector and/or MVD, e.g., to indicate whether the motion vector has integer-pixel precision or has sub-pixel precision, such as one-quarter pixel precision or one-eighth pixel precision (or other sub-pixel precisions, in various examples). Entropy encoding unit 56 may encode the indication using CABAC. Furthermore, entropy encoding unit 56 may use context information for performing CABAC to encode the indication that indicates size information for a PU corresponding to the motion vector, where the size information may include any or all of a depth of a CU including the PU, a size of the PU, and/or a type for the PU… e precision used for encoding motion vectors and/or MVDs may be defined by precision indicators (e.g., one or more syntax elements) that are decoded by entropy decoding unit 70…When entropy coding the motion vector precision information with CABAC, contexts other than the motion vector precision information in spatially neighboring blocks/CUs may be used to save line buffer, such as CU depth, PU partitioning, block size, temporal level and so on…].
Regarding claim 10, Chen and Bross teach all of the limitations of claim 1, and are analyzed as previously discussed with respect to that claim. Further on, Chen teaches or suggests wherein to obtain the block-level MV precision for decoding the current block comprises to: decode, from a compressed bitstream, a flag indicating whether the block-level MV precision is equal to the maximum MV precision; and determine, based on a value of the flag, whether to use the maximum MV precision as the block-level MV precision or to decode the block-level MV precision from the compressed bitstream[See Chen: at least par. 131, 142, 147, 151, 156, 165-167, 171-174, 179 regarding Some examples relate to signaled adaptive motion vector precision. In such an example, motion vector precision may be signaled in bitstream such as at LCU, CU or PU level. A flag/value may be used to indicate the motion vector precision, such as integer precision, half-pixel precision, quarter-pixel precision, or other precisions… video encoder 20 may be configured to generate syntax elements that indicate the set of allowed MVD precisions that are used for a picture, and/or a slice, and/or a tile, and/or a sequence. Video encoder 20 may signal the syntax elements in the encoded video bitstream. In one example, video encoder 20 may signal such syntax elements in, e.g., the PPS or slice header, to indicate that only a portion of all allowed MVD precisions are used for the blocks in a picture or slice…video decoder 30 may be configured to receive one or more precision syntax elements indicating the current MVD precision from the three or more MVD precisions in one or more of a sequence parameter set, a picture parameter set, a coding unit, a prediction unit, or a slice header, and decode the one or more precision syntax elements indicating the current MVD precision.].
Regarding claim 12, Chen and Bross teach all of the limitations of claim 1, and are analyzed as previously discussed with respect to that claim. Further on, Chen teaches or suggests wherein to obtain the block-level MV precision for decoding the current block comprises to: determine a predicted block-level MV precision using respective MV precisions of neighboring blocks of the current block [See Chen: at least par. 114-115, 118-119, 144-145 regarding motion vector precision may be dependent on the result of template matching at video decoder 30. When a template matching result of an integer-pixel position and that of its neighboring sub-pixel position are quite different (e.g., greater than some threshold distance), the related region may be regarded as screen content and video decoder 30 may decode MVs with integer-pixel precision. Otherwise, video decoder 30 may be configured to use sub-pixel motion vector precision. To define “quite different,” one or more fixed or adaptive thresholds may be used… Video decoder 30 may, for example, decode video data by determining a motion vector precision based on template matching. In such an example, video decoder 30 may, for a current block being coded, identify an integer pixel position of an already coded neighboring block and, based on a location of the integer pixel position, apply a template to determine a plurality of integer pixel positions..]; decode, from a compressed bitstream, a flag indicating whether the block-level MV precision is equal to the predicted block-level MV precision; and responsive to the flag indicating that the block-level MV precision is equal to the predicted block-level MV precision, use the predicted block-level MV precision as the block-level MV precision[See Chen: at least Table 1, par. 141-142, 147, 151, 165-167, 179 regarding depending on the motion vector precision flag, may be used to code certain syntax element. In one example, when coding an AMVP candidate index for a block such as PU, the motion vector precision flag(s) of a PU or an associated CU or spatially neighboring blocks or temporally neighboring blocks is (are) used as the CABAC coding context(s)... A flag/value may be used to indicate the motion vector precision, such as integer precision, half-pixel precision, quarter-pixel precision, or other precisions. When motion vector precision is signaled for one block or one region/slice, all smaller blocks within this block/region/slice may share the same motion vector precision. Moreover, MVD information may also signaled in the signaled precision. Before motion compensation, MV (MV predictor+MVD) may be rounded to the signaled precision. The rounding may be toward positive infinity, negative infinity, zero, or infinity (negative value is rounded to negative infinity while positive value is rounded to positive infinity). Alternatively, or in addition, MV predictor may be first rounded as mentioned above and then form the MV for a block. After motion compensation, the MV of the block is saved for MV prediction of later blocks. When saving the MV, the rounded MV may be saved, for example, to be used later as a merge candidate or AMVP candidate for a subsequently decoded block.] .
Regarding claim 16, Chen and Bross teach all of the limitations of claim 1, and are analyzed as previously discussed with respect to that claim. Further on, Chen and Bross teach or suggest wherein the processor is configured to: responsive to determining that the block-level MV precision is less than a threshold MV precision, use a default interpolation filter, and responsive to determining that the block-level MV precision is a sub-pixel precision, decode an interpolation filter from a compressed bitstream[See Chen: at least par. 63, 74, 88, 93-94, 100 regarding When the difference exceeds a threshold, resolution selection unit 48 may select the one-eighth-pixel precision motion vector for encoding the block…Motion compensation unit 44 may also apply one or more interpolation filters to the reconstructed residual block to calculate sub-integer pixel values for use in motion estimation. … Motion compensation unit 72 produces motion compensated blocks, possibly performing interpolation based on interpolation filters. Identifiers for interpolation filters to be used for motion estimation with sub-pixel precision may be included in the syntax elements… Motion compensation unit 72 may determine the interpolation filters used by video encoder 20 according to received syntax information and use the interpolation filters to produce predictive blocks… Values for half-pixel positions 102, quarter-pixel positions 104, and eighth-pixel positions 106 (collectively referred to as fractional pixel positions) may be interpolated using adaptive interpolation filters or fixed interpolation filters, e.g., filters of various numbers of “taps” (coefficients) such as various Wiener filters, bilinear filters, or other filters… See Bross: at least Figs. 1-19, and par. 33-37, 56-60, 85-98, 116-120, 159-161, 185-187, 278, 333-352, regarding he decoder is configured to selectively determine a set of processing schemes (e.g. “multi-possibility encoding”) for a motion vector accuracy (e.g. a sub-sample motion vector accuracy, e.g. HPEL) which is between a maximum motion vector accuracy (e.g. a sub-sample motion vector resolution which is finer than the motion vector accuracy mentioned before; e.g. QPEL) and a minimum motion vector accuracy (e.g. 4PEL) or for a motion vector accuracy (e.g. HPEL) which is between a maximum motion vector accuracy (e.g. QPEL) and a full-sample motion vector accuracy (e.g. FPEL) from which a processing scheme to be applied is identified… According to an embodiment, the decoder is configured to decode the index (processing scheme index, if_idx) for selecting between a first FIR filtering (e.g., an HEVC filtering) (e.g. HEVC 8-tap filtering), a second FIR filtering and a third FIR…. According to an embodiment, the decoder is configured to apply processing schemes (e.g., interpolation filters) having different characteristics (e.g. stronger low-pass characteristic vs. weaker low-pass characteristic)… According to an embodiment, the decoder is configured to determine available sets of processing schemes (e.g. interpolation filters) in dependence on motion vector accuracy… the decoder is configured to apply one of a quarter-sample motion vector resolution, a half-sample motion vector resolution, a full-sample motion vector resolution or a four-sample motion vector resolution (wherein, for example, the index element describing a processing scheme or an interpolation filter is selectively included in the bit stream in case a half-sample motion vector resolution is selected and wherein the index element describing the processing scheme is, for example, omitted otherwise).].
11. Claims 11 and 13 are rejected under 35 U.S.C. 103 as being unpatentable over Chen et al.(US 2018/0098089 A1)(hereinafter Chen) in view of BROSS et al.(US 2021/0409755 A1)(hereinafter Bross) and in further view of IKAI(US 2019/0045218 A1)(hereinafter Ikai).
Regarding claim 11, Chen and Bross teach all of the limitations of claim 10, and are analyzed as previously discussed with respect to that claim. Further on, Chen discloses wherein the processor is configured to: determine that the value of the flag indicates to decode the block-level MV precision from the compressed bitstream[See Chen: at least Table 1, par. 141-142, 147, 151, 165-167, 179 regarding depending on the motion vector precision flag, may be used to code certain syntax element. In one example, when coding an AMVP candidate index for a block such as PU, the motion vector precision flag(s) of a PU or an associated CU or spatially neighboring blocks or temporally neighboring blocks is (are) used as the CABAC coding context(s)... A flag/value may be used to indicate the motion vector precision, such as integer precision, half-pixel precision, quarter-pixel precision, or other precisions. When motion vector precision is signaled for one block or one region/slice, all smaller blocks within this block/region/slice may share the same motion vector precision. Moreover, MVD information may also signaled in the signaled precision. Before motion compensation, MV (MV predictor+MVD) may be rounded to the signaled precision. The rounding may be toward positive infinity, negative infinity, zero, or infinity (negative value is rounded to negative infinity while positive value is rounded to positive infinity). Alternatively, or in addition, MV predictor may be first rounded as mentioned above and then form the MV for a block. After motion compensation, the MV of the block is saved for MV prediction of later blocks. When saving the MV, the rounded MV may be saved, for example, to be used later as a merge candidate or AMVP candidate for a subsequently decoded block.].
Chen and Bross do not explicitly disclose decode, from the compressed bitstream, a difference between the maximum MV precision and the block-level MV precision; and subtract the difference from the maximum MV precision to obtain the block-level MV precision.
However, Ikai teaches decode, from the compressed bitstream, a difference between the maximum MV precision and the block-level MV precision [See Ikai: at least Figs. 23- 27C and par. 201- 234 regarding FIG. 23 is used as another example of a configuration (derivation processing PS_P1B) to describe motion vector scale derivation processing using a block size of a target block and a motion vector accuracy flag… accuracy of a motion vector is determined by referring to both of a block size and a motion vector accuracy flag, and thus a motion vector having more appropriate accuracy can be used. For example, in a case that accuracy of a motion vector is indicated as integer accuracy (low accuracy) by a motion vector accuracy flag, accuracy of a difference vector is configured to be integer accuracy (low accuracy) regardless of a block size. In a case that accuracy of a motion vector is indicated as fractional accuracy (high accuracy) by a motion vector accuracy flag, accuracy of a difference vector can be further switched according to a block size. ]; and subtract the difference from the maximum MV precision to obtain the block-level MV precision[See Ikai: at least Figs. 23- 27C and par. 201- 234 regarding in Fig. 23, shiftS(shift amount) is determined…].
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Chen and Bross with Ikai teachings by including “decode, from the compressed bitstream, a difference between the maximum MV precision and the block-level MV precision; and subtract the difference from the maximum MV precision to obtain the block-level MV precision” because this combination has the benefit of improving coding efficiency[See Ikai: par. 8-17].
Regarding claim 13, Chen and Bross teach all of the limitations of claim 12, and are analyzed as previously discussed with respect to that claim.
Chen and Bross do not explicitly disclose wherein the processor is configured to: responsive to the flag indicating that the block-level MV precision is not equal to the predicted block-level MV precision, decode, from the compressed bitstream, a difference between the predicted block-level MV precision and the block-level MV precision.
However, Ikai teaches wherein the processor is configured to: responsive to the flag indicating that the block-level MV precision is not equal to the predicted block-level MV precision, decode, from the compressed bitstream, a difference between the predicted block-level MV precision and the block-level MV precision[See Ikai: at least Figs. 23- 27C and par. 201- 234 regarding FIG. 23 is used as another example of a configuration (derivation processing PS_P1B) to describe motion vector scale derivation processing using a block size of a target block and a motion vector accuracy flag… accuracy of a motion vector is determined by referring to both of a block size and a motion vector accuracy flag, and thus a motion vector having more appropriate accuracy can be used. For example, in a case that accuracy of a motion vector is indicated as integer accuracy (low accuracy) by a motion vector accuracy flag, accuracy of a difference vector is configured to be integer accuracy (low accuracy) regardless of a block size. In a case that accuracy of a motion vector is indicated as fractional accuracy (high accuracy) by a motion vector accuracy flag, accuracy of a difference vector can be further switched according to a block size… Further on, in Fig. 23, shiftS(shift amount) is determined…].
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Chen with Ikai teachings by including “wherein the processor is configured to: responsive to the flag indicating that the block-level MV precision is not equal to the predicted block-level MV precision, decode, from the compressed bitstream, a difference between the predicted block-level MV precision and the block-level MV precision” because this combination has the benefit of improving coding efficiency[See Ikai: par. 8-17].
12. Claim 14 is rejected under 35 U.S.C. 103 as being unpatentable over Chen et al.(US 2018/0098089 A1)(hereinafter Chen) in view of BROSS et al.(US 2021/0409755 A1)(hereinafter Bross) and in further view of GAO et al.(US 2020/0304801 A1)(hereinafter Gao).
Regarding claim 14, Chen and Bross teach all of the limitations of claim 12, and are analyzed as previously discussed with respect to that claim.
Chen and Bross do not explicitly disclose wherein to obtain the block-level MV precision for decoding the current block comprises to: construct a list of MV precisions using MV precisions of neighboring blocks of the current block; decode, from a compressed bitstream, an index; and use, as the block-level MV precision, a neighboring MV precision corresponding that is at the index in the list of MV precisions.
However, Gao teaches wherein to obtain the block-level MV precision for decoding the current block comprises to: construct a list of MV precisions using MV precisions of neighboring blocks of the current block; decode, from a compressed bitstream, an index; and use, as the block-level MV precision, a neighboring MV precision corresponding that is at the index in the list of MV precisions[See Gao: at least Figs. 1-7, Tables 1, 3, 5, 6, 9, 10, and par. 144-153, 282-326 regarding after parsing the bitstream to obtain a location of an adjacent image block, the decoder side can determine, based on the correspondence between an adjacent image block location and motion vector precision, motion vector precision corresponding to the adjacent image block. In some embodiments, in Table 2, a location of each adjacent image block may further be corresponding to one index value. In this case, a correspondence among an index value, a location of an adjacent image block, and motion vector precision may be listed in Table 3. Table 3 lists the index value corresponding to the location of each adjacent image block. In this way, during encoding, a target index value corresponding to a target adjacent image block may be written into the bitstream directly. When performing decoding, the decoder side may determine a location of the target adjacent image block by using the target index value obtained through decoding, and then determine, based on the correspondence between an adjacent image block location and motion vector precision, motion vector precision corresponding to the location of the target adjacent image block. Alternatively, the decoder side may directly determine, by using the target index value, a location of the target adjacent image block and motion vector precision corresponding to the location of the target adjacent image block…].
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Chen and Bross with Gao teachings by including “wherein to obtain the block-level MV precision for decoding the current block comprises to: construct a list of MV precisions using MV precisions of neighboring blocks of the current block; decode, from a compressed bitstream, an index; and use, as the block-level MV precision, a neighboring MV precision corresponding that is at the index in the list of MV precisions” because this combination has the benefit of reducing complexity when performing prediction [See Gao: at least par. 3-18]
Allowable Subject Matter
13. Claim 15 is objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims.
Conclusion
14. Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
15. Any inquiry concerning this communication or earlier communications from the examiner should be directed to ANA J PICON-FELICIANO whose telephone number is (571)272-5252. The examiner can normally be reached Monday-Friday 9:00-5:00.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Christopher Kelley can be reached at 571 272 7331. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/Ana Picon-Feliciano/Examiner, Art Unit 2482
/CHRISTOPHER S KELLEY/Supervisory Patent Examiner, Art Unit 2482