Device and method for decoding video data
A method of decoding video data performed by an electronic device is provided. The method receives the video data and determines a block unit from a current frame included in the video data. The method further determines, for the block unit, multiple integer-sample reference blocks and multiple fractional-sample reference blocks from the current frame, determines multiple integer-sample template cost values based on the plurality of integer-sample reference blocks, and determines multiple fractional-sample template cost values based on the multiple fractional-sample reference blocks. The method then selects multiple prediction reference blocks from the multiple integer-sample reference blocks and the multiple fractional-sample reference blocks based on the multiple integer-sample template cost values and the multiple fractional-sample template cost values and reconstructs the block unit based on the multiple prediction reference blocks. Each of the multiple fractional-sample reference blocks is located at one of multiple fractional-sample positions in the current frame.
1 . A method of decoding video data performed by an electronic device, the method comprising:
receiving the video data;
determining a block unit from a current frame included in the video data;
determining, for the block unit, a plurality of integer-sample reference blocks and a plurality of fractional-sample reference blocks from the current frame, wherein:
each of the plurality of integer-sample reference blocks is located at one of a plurality of integer-sample positions in the current frame, and
each of the plurality of fractional-sample reference blocks is located at one of a plurality of fractional-sample positions in the current frame;
determining a plurality of integer-sample template cost values based on the plurality of integer-sample reference blocks of the current frame;
determining a plurality of fractional-sample template cost values based on the plurality of fractional-sample reference blocks of the current frame;
selecting a plurality of prediction reference blocks of the current frame from the plurality of integer-sample reference blocks and the plurality of fractional-sample reference blocks based on the plurality of integer-sample template cost values and the plurality of fractional-sample template cost values; and
reconstructing the block unit based on the plurality of prediction reference blocks of the current frame.
2 . The method according to claim 1 , wherein at least one of the plurality of prediction reference blocks is selected from the plurality of fractional-sample reference blocks.
3 . The method according to claim 1 , further comprising:
determining a plurality of weighting parameters based on the plurality of integer-sample template cost values and the fractional-sample template cost values for the plurality of prediction reference blocks; and
weightedly combining the plurality of prediction reference blocks based on the plurality of weighting parameters to determine a predicted block,
wherein reconstructing the block unit is further based on the predicted block.
4 . The method according to claim 1 , further comprising:
determining an arrangement of the plurality of integer-sample reference blocks and the plurality of fractional-sample reference blocks based on the plurality of integer-sample template cost values and the plurality of fractional-sample template cost values,
wherein selecting the plurality of prediction reference blocks is further based on the arrangement.
5 . The method according to claim 1 , further comprising:
determining a reference area of the block unit from the current image, wherein:
the reference area is reconstructed prior to reconstructing the block unit, and
the plurality of integer-sample reference blocks and the plurality of fractional-sample reference blocks are determined from the reference area of the block unit.
6 . The method according to claim 5 , further comprising:
determining, from the reference area of the current frame, a block template region of the current frame neighboring the block unit;
determining, from the reference area of the current frame, a plurality of integer-sample template regions of the current frame, each neighboring one of the plurality of integer-sample reference blocks, wherein each of the plurality of integer-sample template cost values is determined by calculating a difference between the block template region of the current frame and a corresponding one of the plurality of integer-sample template regions of the current frame; and
determining, from the reference area of the current frame, a plurality of fractional-sample template regions of the current frame, each neighboring one of the plurality of fractional-sample reference blocks, wherein each of the plurality of fractional-sample template cost values is determined by calculating a difference between the block template region of the current frame and a corresponding one of the plurality of fractional-sample template regions of the current frame.
7 . The method according to claim 5 , further comprising:
sub-sampling the reference area based on the block unit by a sub-sampling factor to determine the plurality of integer-sample reference blocks;
determining a plurality of intermediate reference blocks from the plurality of integer-sample reference blocks based on the plurality of integer-sample template cost values; and
determining the plurality of fractional-sample reference blocks, each neighboring one of the plurality of intermediate reference blocks.
8 . The method according to claim 7 , further comprising:
determining the sub-sampling factor for the block unit from the video data.
9 . The method according to claim 5 , wherein:
the reference area includes a plurality of reconstructed samples reconstructed prior to reconstructing the block unit; and
each of the plurality of fractional-sample reference blocks is determined by using an interpolation filter to filter, respectively, at least one of the plurality of reconstructed samples.
10 . An electronic device for decoding video data, the electronic device comprising:
at least one processor; and
at least one non-transitory computer-readable medium coupled to the at least one processor and storing one or more computer-executable instructions that, when executed by the at least one processor, cause the electronic device to:
receive the video data;
determine a block unit from a current frame included in the video data;
determine, for the block unit, a plurality of integer-sample reference blocks and a plurality of fractional-sample reference blocks from the current frame, wherein:
each of the plurality of integer-sample reference blocks is located at one of a plurality of integer-sample positions in the current frame, and
each of the plurality of fractional-sample reference blocks is located at one of a plurality of fractional-sample positions in the current frame;
determine a plurality of integer-sample template cost values based on the plurality of integer-sample reference blocks of the current frame;
determine a plurality of fractional-sample template cost values based on the plurality of fractional-sample reference blocks of the current frame;
select a plurality of prediction reference blocks of the current frame from the plurality of integer-sample reference blocks and the plurality of fractional-sample reference blocks based on the plurality of integer-sample template cost values and the plurality of fractional-sample template cost values; and
reconstruct the block unit based on the plurality of prediction reference blocks of the current frame.
11 . The electronic device according to claim 10 , wherein at least one of the plurality of prediction reference blocks is selected from the plurality of fractional-sample reference blocks.
12 . The electronic device according to claim 10 , wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to:
determine a plurality of weighting parameters based on the plurality of integer-sample template cost values and the fractional-sample template cost values for the plurality of prediction reference blocks; and
weightedly combine the plurality of prediction reference blocks based on the plurality of weighting parameters to determine a predicted block,
wherein reconstructing the block unit is further based on the predicted block.
13 . The electronic device according to claim 10 , wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to:
determine an arrangement of the plurality of integer-sample reference blocks and the plurality of fractional-sample reference blocks based on the plurality of integer-sample template cost values and the plurality of fractional-sample template cost values,
wherein selecting the plurality of prediction reference blocks is further based on the arrangement.
14 . The electronic device according to claim 10 , wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to:
determine a reference area of the block unit from the current image, wherein:
the reference area is reconstructed prior to reconstructing the block unit, and
the plurality of integer-sample reference blocks and the plurality of fractional-sample reference blocks are determined from the reference area of the block unit.
15 . The electronic device according to claim 14 , wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to:
determine, from the reference area of the current frame, a block template region of the current frame neighboring the block unit;
determine, from the reference area of the current frame, a plurality of integer-sample template regions of the current frame, each neighboring one of the plurality of integer-sample reference blocks, wherein each of the plurality of integer-sample template cost values is determined by calculating a difference between the block template region of the current frame and a corresponding one of the plurality of integer-sample template regions of the current frame; and
determine, from the reference area of the current frame, a plurality of fractional-sample template regions of the current frame, each neighboring one of the plurality of fractional-sample reference blocks, wherein each of the plurality of fractional-sample template cost values is determined by calculating a difference between the block template region of the current frame and a corresponding one of the plurality of fractional-sample template regions of the current frame.
16 . The electronic device according to claim 14 , wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to:
sub-sample the reference area based on the block unit by a sub-sampling factor to determine the plurality of integer-sample reference blocks;
determine a plurality of intermediate reference blocks from the plurality of integer-sample reference blocks based on the plurality of integer-sample template cost values; and
determine the plurality of fractional-sample reference blocks, each neighboring one of the plurality of intermediate reference blocks.
17 . The electronic device according to claim 16 , wherein the one or more computer-executable instructions, when executed by the at least one processor, further cause the electronic device to:
determine the sub-sampling factor for the block unit from the video data.
18 . The electronic device according to claim 14 , wherein:
the reference area includes a plurality of reconstructed samples reconstructed prior to reconstructing the block unit; and
each of the plurality of fractional-sample reference blocks is determined by using an interpolation filter to filter, respectively, at least one of the plurality of reconstructed samples.