Video coding
Patent Information
- Application Number
- PCT/IB2026/052901
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-03-26
- Filing Date
- 2026-03-25
- Publication Date
- 2026-10-01
Smart Images

Figure IB2026052901_01102026_PF_FP_ABST
Abstract
Description
VIDEO CODINGTECHNICAL FIELD
[0001] The examples and non-limiting embodiments relate generally to video coding and.BACKGROUND
[0002] It is known to provide standardized formats for encoding, signaling, or decoding of media data.SUMMARY
[0003] Example 1: An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: for a current block in a current picture, using an intra-frame motion information around a collocated block in a collocated picture as the intra-frame motion information predictor for the current block; and coding the current block based on the intra-frame motion information predictor.
[0004] Example 2: The apparatus of example 1, wherein for the current block in the current picture, the apparatus is further caused to perform: using a block vector of the intra-frame motion information predictor as a block vector predictor for indicating a displacement from the current block to a prediction block in the current picture.
[0005] Example 3: The apparatus of any of examples 1 or 2, wherein for the current block in the current picture, the apparatus is further caused to perform: checking for blocks at specific positions around the collocated block in the collocated picture.
[0006] Example 4: The apparatus of example 3, wherein checking comprises determining determine whether the specific positions are coded in intra block copy (IBC) mode.
[0007] Example 5: The apparatus of any of the examples 3 or 4, wherein the specific positions comprise a bottom-right position of the collocated block and / or the center position of the collocated block.
[0008] Example 6: The apparatus of any of the examples 3 or 4, wherein the specific positions comprise neighboring positions around the collocated block.
[0009] Example 7: The apparatus of any of the examples 3 or 4, wherein the specific positions comprise non-adjacent neighboring positions around the collocated block.
[0010] Example 8: The apparatus of any of the examples 3 or 4, wherein the specific positions comprise positions as specified for temporal motion vector predictor (TMVP) merge candidates in an enhanced compression model (ECM).
[0011] Example 9: The apparatus of any of the examples 3 to 8, wherein for the current block in the current picture, the apparatus is further caused to perform: refining one or more block vectors at the specific check positions around the collocated block in the collocated picture within small areas to generate one or more refined block vectors; and using a final refined block vector as the block vector predictor for the current block, wherein the one or more refined block vectors comprise the final refined block vector.
[0012] Example 10: The apparatus of example 9, wherein the apparatus is further caused to perform: refining the one or more block vectors based on a pre-defined coding cost metrics.
[0013] Example 11: The apparatus of example 10, wherein the apparatus is further caused to perform: using template costs as the pre-defined coding cost metrics.
[0014] Example 12: The apparatus of any of the examples 9 to 11, wherein for refining the one or more block vectors the apparatus is further caused to perform: refining the one or more block vectors from block around the collocated block in the collocated picture by using the template costs of one or more prediction blocks pointed by the one or more block vectors and the one or more refined block vectors against the current block.
[0015] Example 13: The apparatus of any of the examples 11 or 12, wherein the apparatus is further caused to perform: defining the template costs of the block vector against the current block as a difference between a template of the prediction block pointed by the block vector and a template of the current block in the current picture.
[0016] Example 14: The apparatus of any of the examples 9 to 13, wherein the apparatus is further caused to perform: setting granularity of the block vector refinement to 1 / 16 pel, 1 / 8 pel, 1 / 4 pel, 1 / 2 pel, and / or 1 pel.
[0017] Example 15: The apparatus of any of the examples 9 to 13, wherein to perform refining, the apparatus is further caused to perform: using a multi-stage refinement process for refining the one or more block vectors.
[0018] Example 16: The apparatus of example 15, wherein when the apparatus uses the multi-stage refinement process, a later refinement stage uses a smaller refinement granularity as compared to an earlier refinement stage.
[0019] Example 17: The apparatus of any of the examples 15 or 16, wherein the multi-stage refinement process comprises three stages, and wherein for a first-stage refinement granularity is set to 1 / 4 pel, for a second-stage refinement granularity is set to 1 / 8 pel, and for a third-stage refinement granularity is set to 1 / 16 pel.
[0020] Example 18: The apparatus of any of the examples 3 to 17, wherein the blocks comprise intra block copy blocks.
[0021] Example 19: The apparatus of any of the examples 9 to 18, wherein the one or more refined block vectors comprise one or more refined intra block copy block vectors.
[0022] Example 20: A method comprising: for a current block in a current picture, using an intra-frame motion information around a collocated block in a collocated picture as the intra-frame motion information predictor for the current block; and coding the current block based on the intra-frame motion information predictor.
[0023] Example 21: The method of example 20, wherein for the current block in the current picture, the method further comprises: using a block vector of the intra-frame motion information predictor as a block vector predictor for indicating a displacement from the current block to a prediction block in the current picture.
[0024] Example 22: The method of any of examples 20 or 21 , wherein for the current block in the current picture, the method is further caused to perform: checking for blocks at specific positions around the collocated block in the collocated picture.
[0025] Example 23: The method of example 22, wherein checking comprises determining determinewhether the specific positions are coded in intra block copy (I BC) mode.
[0026] Example 24: The method of any of the examples 22 or 23, wherein the specific positions comprise a bottom-right position of the collocated block and / or the center position of the collocated block.
[0027] Example 25: The method of any of the examples 22 or 23, wherein the specific positions comprise neighboring positions around the collocated block.
[0028] Example 26: The method of any of the examples 22 or 23, wherein the specific positions comprise non-adjacent neighboring positions around the collocated block.
[0029] Example 27: The method of any of the examples 22 or 23, wherein the specific positions comprise positions as specified for temporal motion vector predictor (TMVP) merge candidates in an enhanced compression model (ECM).
[0030] Example 28: The method of any of the examples 22 to 27, wherein for the current block in the current picture, the method further comprises: refining one or more block vectors at the specific check positions around the collocated block in the collocated picture within small areas to generate one or more refined block vectors; and using a final refined block vector as the block vector predictor for the current block, wherein the one or more refined block vectors comprise the final refined block vector.
[0031] Example 29: The method of example 28 further comprising: refining the one or more block vectors based on a pre-defined coding cost metrics.
[0032] Example 30: The method of example 29 further comprising: using template costs as the pre-defined coding cost metrics.
[0033] Example 31 : The method of any of the examples 28 to 30, wherein for refining the one or more block vectors, the method further comprises: refining the one or more block vectors from block around the collocated block in the collocated picture by using the template costs of one or more prediction blocks pointed by the one or more block vectors and the one or more refined block vectors against the current block.
[0034] Example 32: The method of any of the examples 30 or 31 further comprising: defining the template costs of the block vector against the current block as a difference between a template of the prediction block pointed by the block vector and a template of the current block in the current picture.
[0035] Example 33: The method of any of the examples 28 to 32further comprising: setting granularity of the block vector refinement to 1 / 16 pel, 1 / 8 pel, 1 / 4 pel, 1 / 2 pel, and / or 1 pel.
[0036] Example 34: The method of any of the examples 28 to 32, wherein refining comprises: using a multistage refinement process for refining the one or more block vectors.
[0037] Example 35: The method of example 34, wherein when the multi-stage refinement process is used, a later refinement stage uses a smaller refinement granularity as compared to an earlier refinement stage.
[0038] Example 36: The method of any of the examples 22 to 35, wherein the blocks comprise intra block copy blocks.
[0039] Example 37: The method of any of the examples 28 to 36, wherein the one or more refined blockvectors comprise one or more refined intra block copy block vectors.
[0040] Example 38: The method of any of the examples 20 to 27 further comprising: refining the motion vectors held in inter merge candidates for the current block in the current picture; and using the refined motion vectors as motion vector predictors for the current block.
[0041] Example 39: A method comprising: refining intra-frame motion vectors around a collocated block in a collocated picture for a current block in a current picture; and using the refined intra-frame motion vectors as intra-frame motion vector predictors for the current block.
[0042] Example 40: The method of example 39 further comprising: coding the current block based on the refined motion vector predictors.
[0043] Example 41 : An apparatus comprising means for performing the methods as described in any of the examples 20 to 40.
[0044] Example 42: A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus at least to perform the methods as described in any of the examples 20 to 40.
[0045] Example 43: The computer readable medium of example 42, wherein the computer readable medium comprises a non-transitory computer readable medium.
[0046] Example 44: An apparatus comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform: refining intra-frame motion vectors around a collocated block in a collocated picture for a current block in a current picture; and using the refined intra-frame motion vectors as intra-frame motion vector predictors for the current block.
[0047] Example 45: The apparatus of example 44, wherein the apparatus is further caused to perform: coding the current block based on the refined motion vector predictors.BRIEF DESCRIPTION OF THE DRAWINGS
[0048] The foregoing embodiments and other features are explained in the following description, taken in connection with the accompanying drawings, wherein:
[0049] FIG. 1 shows schematically an apparatus employing embodiments of the examples described herein.
[0050] FIG. 2 shows schematically a user equipment suitable for employing embodiments of the examples described herein.
[0051] FIG. 3 further shows schematically electronic devices employing embodiments of the examples described herein connected using wireless and wired network connections.
[0052] FIG. 4 is a block diagram illustrating a system in accordance with an example.
[0053] FIG. 5 shows an example of a current block in intra block copy (IBC) coding mode.
[0054] FIG. 6 shows two positions for temporal motion vector predictor (TMVP) merge candidates specified in versatile video coding (WC).
[0055] FIG. 7 shows an example, where there are multiple check positions around a collocated block.
[0056] FIG. 8 is an example showing checking of non-neighboring positions around a collocated block, in accordance with an embodiment.
[0057] FIG. 9 shows the check positions in the collocated picture for a current block, specified in enhanced compression model (ECM).
[0058] FIG. 10 shows a template of a current coding unit and a template of a corresponding prediction block.
[0059] Fig. 11 shows an example of two-stage block vector refinement, in accordance with an embodiment.
[0060] FIG. 12 is an example apparatus, which may be implemented in hardware, and is caused to, implement examples described herein.
[0061] FIG. 13 shows a representation of an example of non-volatile memory media used to store instructions that implement the examples described herein.
[0062] FIG. 14 is an example method performed with an encoder or a decoder, based on the examples described herein.
[0063] FIG. 15 is an example method performed with an encoder or a decoder, based on the examples described herein.DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS
[0064] The following acronyms and abbreviations that may be found in the specification and / or the drawing figures are defined as follows (the abbreviations may be appended with each other or with other characters using e.g. a hyphen or dash (-), and may be case insensitive):
[0065] Some embodiments will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments may be shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms ‘data,’ ‘content,’ ‘information,’ and similar terms may be used interchangeably to refer to data capable of being transmitted, received and / or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments.
[0066] Described herein is a method and apparatus for encoding and / or decoding motion information.
[0067] The following describes in detail a suitable apparatus and possible method for encoding and / or decoding motion information. In this regard reference is first made to FIG. 1 and FIG. 2, where FIG. 1 shows an example block diagram of an electronic device or apparatus 100. The apparatus 100 may be an Internet of Things (loT) apparatus configured to perform various functions, such as for example, gathering information by one or more sensors, receiving or transmitting information, analyzing information gathered or received by the apparatus, or the like. The apparatus may comprise a video coding system, which may incorporate a codec. FIG. 2 shows a layout of an apparatus according to an example embodiment. The elements of FIG. 1 and FIG. 2 are explained next.
[0068] The apparatus 100 may for example be a mobile terminal or user equipment of a wirelesscommunication system, a sensor device, a tag, or other lower power device. However, it would be appreciated that embodiments of the examples described herein may be implemented within any electronic device or apparatus which may process data by neural networks.
[0069] The apparatus 100 may comprise a housing 101 for incorporating and protecting the device. The apparatus 100 further may comprise a display 102 in the form of a liquid crystal display. In other embodiments of the examples described herein the display may be any suitable display technology suitable to display an image or video. The apparatus 100 may further comprise a keypad 104. In other embodiments of the examples described herein any suitable data or user interface mechanism may be employed. For example the user interface may be implemented as a virtual keyboard or data entry system as part of a touch-sensitive display.
[0070] The apparatus may comprise a microphone 106 or any suitable audio input which may be a digital or analog signal input. The apparatus 100 may further comprise an audio output device which in embodiments of the examples described herein may be any one of: an earpiece 108, speaker, or an analog audio or digital audio output connection. The apparatus 100 may also comprise a battery (or in other embodiments of the examples described herein the device may be powered by any suitable mobile energy device such as solar cell, fuel cell or clockwork generator). The apparatus 100 may further comprise a camera 109 capable of recording or capturing images and / or video. The apparatus 100 may further comprise an infrared port for short range line of sight communication to other devices. In other embodiments the apparatus 100 may further comprise any suitable short range communication solution such as for example a Bluetooth wireless connection or a USB / firewire wired connection.
[0071] The apparatus 100 may comprise a controller 110, processor or processor circuitry for controlling the apparatus 100. The controller 110 may be connected to memory 112 which in embodiments of the examples described herein may store both data in the form of image and audio data and / or may also store instructions for implementation on the controller 110. The controller 110 may further be connected to codec circuitry 114 suitable for carrying out coding and / or decoding of audio and / or video data or assisting in coding and / or decoding carried out by the controller.
[0072] The apparatus 100 may further comprise a card reader 118 and a smart card 116, for example a universal integrated circuit card (UICC) and UICC reader for providing user information and being suitable for providing authentication information for authentication and authorization of the user at a network.
[0073] The apparatus 100 may comprise radio interface circuitry 120 connected to the controller and suitable for generating wireless communication signals for example for communication with a cellular communications network, a wireless communications system or a wireless local area network. The apparatus 100 may further comprise an antenna 122 connected to the radio interface circuitry 120 for transmitting radio frequency signals generated at the radio interface circuitry 120 to other apparatus(es) and / or for receiving radio frequency signals from other apparatus(es).
[0074] The apparatus 100 may comprise a camera capable of recording or detecting individual frames which are then passed to the codec circuitry 114 or the controller for processing. The apparatus may receive the videoimage data for processing from another device prior to transmission and / or storage. The apparatus 100 may also receive either wirelessly or by a wired connection the image for coding / decoding. The structural elements of apparatus 100 described above represent examples of means for performing a corresponding function.
[0075] With respect to FIG. 3, an example of a system within which embodiments of the examples described herein can be utilized is shown. The system 300 comprises multiple communication devices which can communicate through one or more networks. The system 300 may comprise any combination of wired or wireless networks including, but not limited to a wireless cellular telephone network (such as a global system for mobile (GSM), universal mobile telecommunications system (UMTS), code-division multiple access (CDMA), long-term evolution (LTE), fourth-generation cellular network technology (4G), fifth generation cellular network technology (5G) network, etc.), a wireless local area network (WLAN) such as defined by any of the IEEE 802.x standards, a Bluetooth® personal area network, an Ethernet local area network, a token ring local area network, a wide area network, and the Internet.
[0076] The system 300 may include both wired and wireless communication devices and / or apparatus 100 suitable for implementing embodiments of the examples described herein.
[0077] For example, the system shown in FIG. 3 shows a mobile telephone network 301 and a representation of the internet 302. Connectivity to the internet 302 may include, but is not limited to, long range wireless connections, short range wireless connections, and various wired connections including, but not limited to, telephone lines, cable lines, power lines, and similar communication pathways.
[0078] The example communication devices shown in the system 300 may include, but are not limited to, an electronic device or apparatus 100, a combination of a personal digital assistant (PDA) and a mobile telephone 304, a PDA 306, an integrated messaging device (IMD) 308, a desktop computer 310, a notebook computer 312, or a head-mounted apparatus. The head-mounted apparatus may be a head-mounted display (HMD), or glasses having a device such as a camera configured to encode and / or decode images and / or video. The apparatus 100 may be stationary or mobile when carried by an individual who is moving. The apparatus 100 may also be located in a mode of transport including, but not limited to, a car, a truck, a taxi, a bus, a train, a boat, an airplane, a bicycle, a motorcycle or any similar suitable mode of transport.
[0079] The embodiments may also be implemented in a set-top box; e.g., a digital TV receiver, which may / may not have a display or wireless capabilities, in tablets or (laptop) personal computers (PC), which have hardware and / or software to process neural network data, in various operating systems, and in chipsets, processors, DSPs and / or embedded systems offering hardware / software based coding.
[0080] Some or further apparatus may send and receive calls and messages and communicate with service providers through a wireless connection 314 to a base station 316. The base station 316 may be connected to a network server 318 that allows communication between the mobile telephone network 301 and the internet 302. The system may include additional communication devices and communication devices of various types.
[0081] The communication devices may communicate using various transmission technologies including, butnot limited to, CDMA, GSM, universal mobile telecommunications system (UMTS), time divisional multiple access (TDMA), frequency division multiple access (FDMA), transmission control protocol-internet protocol (TCP-1 P), short messaging service (SMS), multimedia messaging service (MMS), email, instant messaging service (IMS), Bluetooth, IEEE 802.11, third generation partnership project (3GPP) narrowband Internet of Things (loT) and any similar wireless communication technology. A communications device involved in implementing various embodiments of the examples described herein may communicate using various media including, but not limited to, radio, infrared, laser, cable connections, and any suitable connection.
[0082] In telecommunications and data networks, a channel may refer either to a physical channel or to a logical channel. A physical channel may refer to a physical transmission medium such as a wire, whereas a logical channel may refer to a logical connection over a multiplexed medium, capable of conveying several logical channels. A channel may be used for conveying an information signal, for example a bitstream, from one or several senders (or transmitters) to one or several receivers.
[0083] The embodiments may also be implemented in so-called loT devices. The loT may be defined, for example, as an interconnection of uniquely identifiable embedded computing devices within the existing Internet infrastructure. The convergence of various technologies has and may enable many fields of embedded systems, such as wireless sensor networks, control systems, home / building automation, etc. to be included in the loT. In order to utilize the Internet loT devices are provided with an IP address as a unique identifier. loT devices may be provided with a radio transmitter, such as a WLAN or Bluetooth transmitter or a radio-frequency identification (RFID) tag. Alternatively, loT devices may have access to an IP-based network via a wired network, such as an Ethernet-based network or a power-line connection (PLC).
[0084] FIG. 4 is a block diagram illustrating a system or apparatus 400 in accordance with several examples. In an example, the encoder 402 is used to encode an image or video, and the encoder 402 may be implemented in a transmitting apparatus 404. The encoder 402 produces a bitstream 406 comprising signaling that is received by the receiving apparatus 408, which implements a decoder 410. The encoder 402 sends the bitstream 406 that comprises the herein described signaling. The decoder 410 forms the image or video, and the receiving apparatus 408 may present this to the user, e.g., via a smartphone, television, or projector among many other options.
[0085] In some examples, the encoder 402 may reside in a separate apparatus from the transmitting apparatus 404. In some examples, the apparatus comprising the encoder 402 may be connected to the transmitting apparatus 404, e.g., through a memory bus. In some examples, the encoder 402 may produce the bitstream 406 that is stored, e.g. in a mass memory.
[0086] In some examples, the decoder 410 may reside in a separate apparatus from the receiving apparatus 408. In some examples, the apparatus comprising the decoder 410 may be operationally connected to the receiving apparatus 408, e.g., through a memory bus. In some examples, the decoder 410 may obtain the bitstream 406 from a mass memory.
[0087] In some examples, the transmitting apparatus 404 and the receiving apparatus 408 are at least partiallywithin a common apparatus, and for example, are located within a common housing 412. For example, the common apparatus comprising the encoder 402 and decoder 410 implements a codec. In other examples, the encoder 402 and the decoder 410 are at least partially not within a common apparatus and have at least partially different housings, but when together, may still implement a codec.
[0088] As indicated at 414, the decoder 410 performs an operation(s) or action(s) based on the received signaling.
[0089] In some examples, encoding 416 performs encoding of motion information, based on the examples described herein. In some examples, decoding 418 performs decoding of motion information, based on the examples described herein.
[0090] Having thus introduced a suitable but non-limiting technical context for the practice of the example embodiments of the present disclosure, example embodiments will now be described in detail.
[0091] Features as described herein may generally relate, for example, to motion information.
[0092] Versatile video coding
[0093] Versatile Video Coding (WC) is a video coding standard, and Enhanced Compression Model (ECM), built on top of WC, is potentially a future video coding standard currently under development sponsored by JVET. Both WC and ECM are block-based video coding standards, where an input picture is divided into Coding Tree Units (CTUs), and each CTU may be further split into Coding Units (CUs). A CU (or block) is coded in either interceding mode or intra-coding mode. When the block is in inter-coding mode, the encoder searches for a temporal prediction block in reference picture(s) and signals the decoder on how to find the same prediction block in reference picture(s) at the decoder end. When the block is in intra-coding mode, the encoder constructs a spatial prediction block from the current picture and signals the decoder on how to form the same spatial prediction block from the current picture at the decoder end.
[0094] Intra Block Copy (IBC) in WC and ECM is a coding tool used for intra-frame coding. If a current block in a current picture is in IBC coding mode, an intra-frame prediction block is copied from the coded area of the same current picture. The displacement of the intra-frame prediction block from the same current block is indicated by block vector. The displacement (or motion) information associated with a IBC block in a current picture includes block vector and the reference index for the same current picture (e.g., 16 - max reference index in ECM).
[0095] FIG. 5 shows an example of a current block c 502 in intra block copy (IBC) coding mode. In this example, an intra-frame prediction block p 504 is pointed by block vector 506 in the coded area 508 of the same current picture. Further, for the block c 502 in IBC mode, an intra-frame prediction block (e.g., the intra-frame prediction block p 504) is copied from the coded area of the same current picture.
[0096] For a current block in a current picture, inter-frame motion information around a collocated block in a collocated picture has been used as inter-frame motion predictor (e.g., temporal merge candidate) for the current block. The collocated picture is a past coded picture. The collocated block is a block of the same size at the same geometric location in the collocated picture as the current block in the current picture.
[0097] Various embodiments of the disclosure propose that for a current block in a current picture, intra-frame motion information around the collocated block in the collocated picture is used as intra-frame motion predictor for the current block.
[0098] IBC is an intra-frame prediction coding tool, where for a current block in a current picture, a (IBC) block vector is used to indicate the displacement from the current block to the prediction block in the same current picture.
[0099] In an embodiment, for a current block in a current picture, an IBC block vector around the collocated block in the collocated picture is used as IBC block vector predictor for the current block.
[0100] In an embodiment, for a current block in a current picture, encoder and decoder check for IBC blocks at specific positions around a collocated block in a collocated picture.
[0101] In an embodiment, for a current block in a current picture, encoder and decoder may check for IBC blocks at the bottom-right position cO of the collocated block and the center position d of the collocated block, as shown in FIG. 6, which are the same check positions for temporal motion vector predictor (TMVP) merge candidates in WC.
[0102] Referring to FIG. 6, it shows the two positions for TMVP merge candidates in versatile video coding (WC). For example, FIG. 6 shows the two positions cO 602 and d 604, specified in WC. The position cO 602 is at the bottom-right corner of a collocated block 606 and the position d 604 is at the center of the collocated block 606.
[0103] In WC, for a current block 608, position cO 602 is checked first. When position cO 602 is coded in inter mode, its motion information is included in the merge candidate list as the only TMVP candidate, and position d 604 will not be checked. Otherwise, when position cO 602 is not coded in inter mode or not available, position d 604 is then checked. When position d 604 is coded in inter mode, its motion information is included in the merge candidate list as the only TMVP candidate. When none of positions cO 602 and d 604 are not coded in inter mode or not available, there will be no TMVP in the merge candidate list.
[0104] In an embodiment, for a current block in a current picture, encoder and decoder may check for IBC blocks at the neighboring positions around the collocated block, as shown in FIG. 7. For example, the collocated picture is a past-coded picture or previously decoded picture. Accordingly, encoder and decoder have knowledge about how each CU in the collocated picture is coded. In some embodiment, the encoder and decoder check a few specific positions around the collocated block to determine whether these specific positions are coded in IBC mode.
[0105]
[0106] Referring to FIG. 7, it shows an example, where, for a current block 702, there are multiple check positions (cO, d, .... c10) around a collocated block 704.
[0107] In an embodiment, for a current block in a current picture, encoder and decoder may check for IBC blocks at the non-adjacent neighboring positions around the collocated block, as shown in FIG. 8, where 802 isthe current block in the current picture.
[0108] In an embodiment, encoder and decoder may check for IBC blocks at the same check positions as specified for TMVP merge candidates in ECM.
[0109] ECM supports two collocated pictures for a current picture.
[0110] Over each collocated picture, ECM also increases possible check positions for TMVP candidates for a current block.
[0111] FIG. 9 shows the check positions in the collocated picture for a current block, specified in enhanced compression model (ECM). As an example, FIG. 9 shows the check positions in the collocated picture for a current block, specified in ECM. The check positions are spread over an area of 5x5 blocks in the collocated picture. Each block is of the same size as the current and collocated blocks. The top-left block of the area is the collocated block 902.
[0112] The collocated block 902 includes four check positions, a red circle 904 and a red triangle 906; and a blue circle 908 and a blue triangle 910, as shown in FIG. 9. Assuming the top-left coordinate of the collocated block is (x,y), weight is w, and height is h, co-ordinates for four check positions, the red circle 904, the red triangle 906, the blue circle 908, and the blue triangle 910 may be determined as following:• The coordinate of red circle 904 position is (x+w-1 ,y+h-1).• The coordinate of red triangle 906 position is (x+w»1,y+h»1).• The coordinate of blue circle 908 position is (x+w,y+3*h»2).• The coordinate of blue triangle 910 position is (x+3*w»2,y+h).
[0113] Positions for the red circle 904 and the red triangle 906, in the collocated block, form a pair.
[0114] Positions for the blue circle 908 and the blue triangle 910, in the collocated block, form a pair.
[0115] Each block, along a diagonal line from the top-left to the bottom-right, includes two check positions: for example, the red circle and the red triangle, as shown in FIG. 9. Assuming the top-left coordinate of a block along the diagonal line is (x,y) and weight is w and height is h, co-ordinates for the red circle and the red triangle in the block may be determined as following:• The coordinate of red circle position in the block is (x+w-1, y+h-1).• The coordinate of red triangle position in the block is (x+w»1,y+h»1).
[0116] Position for red circle and red triangle in a block on the diagonal line form a pair. For example, positions for the red circle 904 and the red triangle 906 form a pair.
[0117] Each block on the first horizontal block row 912, except the collocated block 902, includes one check position (e.g., the blue circle 918) on the right, as shown in FIG. 9. Assuming the top-left coordinate of a block on the first horizontal block row is (x,y) and weight is w and height is h, co-ordinates for the blue circle in the block may be determined as following:• The coordinate of the blue circle position in the block is (x+w,y+h»1).
[0118] Each block on the first vertical block column 914 , except the collocated block 902, includes one checkposition (e.g., the blue triangle 920) at the bottom, as shown in FIG. 9. Assuming the top-left coordinate of a block on the first vertical block column is (x,y) and weight is w and height is h, co-ordinates for the blue triangle in the block may be determined as following:• The coordinate of the blue triangle position in the block is (x+w»1 ,y+h).
[0119] On each blue diagonal line in FIG. 9 (e.g., a diagonal line 916), there is one blue circle position (e.g., the blue circle 918 position) in the first horizontal block row 912 and one blue triangle position (e.g., position of the blue triangle 920) in the first vertical block column 914. The position of the blue circle 918 and the position of the blue triangle 920 form a pair.
[0120] In ECM, for a current block, pairs of positions in the collocated picture are checked and motion information at some of positions are included in the merge candidate list as TMVP candidates. Specifically, red pairs (e.g., the red circle 904 and the red triangle 906) and blue pairs (e.g., the blue circle 908 and the blue triangle 910) are checked alternatively across the area of 5x5 blocks from the top-left to the bottom-right, starting the red pair (e.g., the red circle 904 and the red triangle 906) in the collocated block at the top-left of 5x5 blocks.
[0121] In an embodiment, for a current block in a current picture, encoder and decoder further refine the IBC block vectors at the specific check positions around the collocated block in the collocated picture within small areas and use the refined IBC block vectors as block vector predictors for the current block. In an embodiment, size of the small areas is pre-set, for example, the small areas may be set to + / - 1 pel, or 1 / 2 pel around the IBC block vectors. A block vector refinement may be performed based on a pre-defined coding cost metrics.
[0122] In an embodiment, template cost is used as the pre-defined coding cost for IBC block vector refinement.
[0123] In an embodiment, encoder and decoder refine a block vector from IBC block around the collocated block in the collocated picture using template costs of the prediction blocks pointed by the block vector and its refined block vectors against the current block.
[0124] FIG. 10 shows a template of a current coding unit and a template of a corresponding prediction block. The left and above reconstructed neighboring pixels of the current block 1002 and the prediction block 1004 form the template of the current block (Tc) 1006 and the template of the corresponding prediction block (Tp) 1008, respectively, as shown in FIG. 10. For example, the template cost of a block vector is calculated based upon the difference between the templates of the prediction block pointed by the block vector and the current block.
[0125] The template cost of a block vector against the current block may be defined as the difference between the template of the prediction block pointed by the block vector and the template of the current block in the same current picture, as following:template cost = diff(Tc — Tp)
[0126] One of possible metrics for difference is SAD (sum of absolute difference).
[0127] In an embodiment, the granularity of block vector refinement may be set to 1 / 16 pel, 1 / 8 pel, 1 / 4 pel, 1 / 2 pel, and / or 1 pel.
[0128] In an embodiment, block vector refinement may be performed at multiple stages.
[0129] FIG. 11 shows an example of two-stage block vector refinement, in accordance with an embodiment. In this example, block x 1102 is a current block and block p 1104 is the prediction block pointed by an initial block vector 1106 found from IBC block around the collocated block in the collocated picture. Encoder and decoder perform a first stage refinement around the initial block vector 1106 within a small area. In an embodiment, size of the small area is pre-set, for example, the small area for the first stage refinement may be set to + / - 1 / 4 pel around the initial block vector 1106. Block p’ 1108 is the prediction block with the least template cost against the current block x 1102 found within the first-stage refinement area 1110. In the second-stage refinement area 1112, encoder and decoder further refine the block vector 1114 pointing to block p’ 1108 within another small area. In an embodiment, size of the another small area is pre-set, for example, the another small area for the second stage refinement may be set to + / - 1 / 8 pel around the block vector 1114. Block p” 1116 is a prediction block with the smallest template cost against the current block x 1102 within the second-stage refinement area 1112. The final refined block vector 1118 pointing to prediction block p” 1116 is used as a possible block vector predictor for the current block x 1102.
[0130] In an embodiment, in a multi-stage block vector refinement process, the later stage refinement may use smaller refinement granularity than the earlier stage refinement. For example, in a three-stage refinement process, the first-stage refinement granularity may be set to 1 / 4 pel, the second-stage refinement granularity to 1 / 8 pel, and the third-stage refinement granularity to 1 / 16 pel.
[0131] FIG. 12 is an example apparatus 1200, which may be implemented in hardware, configured to implement the examples described herein. The apparatus 1200 comprises at least one processor 1202 (e.g., an FPGA and / or CPU), at least one memory 1204 including computer program code 1205, the computer program code 1205 having instructions to carry out the methods described herein, wherein the at least one memory 1204 and the computer program code 1205 are configured to, with the at least one processor 1202, cause the apparatus 1200 to implement circuitry, a process, component, module, or function (implemented with control module 1206) to implement the examples described herein, including encoding and / or decoding motion information. Optionally included encoder 1208 of the control module 1206 implements encoding based on the examples described herein, and optionally included decoder 1210 implements decoding based on the examples described herein. The at least one memory 1204 may be a non-transitory memory, a transitory memory, a volatile memory (e.g. RAM), ora nonvolatile memory (e.g., ROM).
[0132] The apparatus 1200 includes a display and / or I / O interface 1212, which includes user interface (Ul) circuitry and elements, that may be used to display features or a status of the methods described herein (e.g., as one of the methods is being performed or at a subsequent time), or to receive input from a user such as with using a keypad, camera, touchscreen, touch area, microphone, biometric recognition, one or more sensors, etc. The apparatus 1200 includes one or more communication e.g. network (N / W) interfaces (l / F(s)) 1214. The communication l / F(s) 1214 may be wired and / or wireless and communicate over the Internet / other network(s) via any communication technique including via one or more links 1216. The communication l / F(s) 1214 may compriseone or more transmitters or one or more receivers.
[0133] The transceiver 1218 comprises one or more transmitters 1220 and one or more receivers 1222. The transceiver 1218 and / or communication l / F(s) 1214 may comprise standard well-known components such as an amplifier, filter, frequency-converter, (de)modulator, and encoder / decoder circuitries and one or more antennas, such as antennas 1224 used for communication over wireless link 1226.
[0134] The control module 1206 of the apparatus 1200 comprises one of or both parts 1206-1 and / or 1206-2, which may be implemented in a number of ways. The control module 1206 may be implemented in hardware as control module 1206-1, such as being implemented as part of the at least one processor 1202. The control module 1206-1 may be implemented also as an integrated circuit or through other hardware such as a programmable gate array. In another example, the control module 1206 may be implemented as control module 1206-2, which is implemented as computer program code (having corresponding instructions) 1205 and is executed by the at least one processor 1202. For instance, the at least one memory 1204 store instructions that, when executed by the at least one processor 1202, cause the apparatus 1200 to perform one or more of the operations as described herein. Furthermore, the at least one processor 1202, the at least one memory 1204, and example algorithms (e.g., as flowcharts and / or signaling diagrams), encoded as instructions, programs, or code, are means for causing performance of the operations described herein.
[0135] The apparatus 1200 to implement the functionality of control module 1206 may correspond to any of the apparatuses depicted herein. Alternatively, apparatus 1200 and its elements may not correspond to any of the other apparatuses depicted herein, as apparatus 1200 may be part of a self-organizing / optimizing network (SON) node or other node, such as a node in a cloud.
[0136] The apparatus 1200 may also be distributed throughout the network including within and between apparatus 1200 and any network element (such as a base station and / or terminal device and / or user equipment).
[0137] Interface 1228 enables data communication and signaling between the various items of apparatus 1200, as shown in FIG. 12. For example, the interface 1228 may be one or more buses such as address, data, or control buses, and may include any interconnection mechanism, such as a series of lines on a motherboard or integrated circuit, fiber optics or other optical communication equipment, and the like. Computer program code (e.g. instructions) 1205, including control module 1206 may comprise object-oriented software configured to pass data or messages between objects within computer program code 1205. The apparatus 1200 need not comprise each of the features mentioned, or may comprise other features as well. The various components of apparatus 1200 may at least partially reside in a housing 1230, or a subset of the various components of apparatus 1200 may at least partially be located in different housings, which different housings may include housing 1230.
[0138] FIG. 13 shows a schematic representation of non-volatile memory media 1300a (e.g. computer / compact disc (CD) or digital versatile disc (DVD)) and 1300b (e.g. universal serial bus (USB) memory stick) and 1300c (e.g. cloud storage for downloading instructions and / or parameters 1302 or receiving emailed instructions and / or parameters 1302) storing instructions and / or parameters 1302 which when executed by aprocessor allows the processor to perform one or more of the operations of the methods described herein. Instructions and / or parameters 1302 may represent or correspond to a non-transitory computer readable medium.
[0139] FIG. 14 is an example method 1400 performed with an encoder or a decoder, based on the examples described herein. At 1402, the method 1400 includes for a current block in a current picture, using an intra-frame motion information around a collocated block in a collocated picture as the intra-frame motion information predictor for the current block. At 1404, the method 1400 includes coding the current block based on the intra-frame motion information predictor.
[0140] In an example, the method 1400 may be performed with an encoding apparatus, such as the apparatus 100, 1200, apparatuses depicted in FIG. 3 and FIG. 4, for example, the transmitting apparatus 404 with the encoder 402, or the apparatus 400 with the encoder 402. In another example, the method 1400 may be performed with a decoding apparatus, such as the apparatus 100, 1200, apparatuses depicted in FIG. 3 and FIG. 4, for example, the receiving apparatus 408 with the decoder 410, or the apparatus 400 with the decoder 410.
[0141] FIG. 15 is an example method 1500 performed with an encoder or a decoder, based on the examples described herein. At 1502, the method 1500 includes refining intra-frame motion vectors around a collocated block in a collocated picture for a current block in a current picture. At 1504, the method 1500 includes using the refined intra-frame motion vectors as intra-frame motion vector predictors for the current block.
[0142] In an example, the method 1500 may be performed with an encoding apparatus, such as the apparatus 100, 1200, apparatuses depicted in FIG. 3 and FIG. 4, for example, the transmitting apparatus 404 with the encoder 402, or the apparatus 400 with the encoder 402. In another example, the method 1500 may be performed with a decoding apparatus, such as the apparatus 100, 1200, apparatuses depicted in FIG. 3 and FIG. 4, for example, the receiving apparatus 408 with the decoder 410, or the apparatus 400 with the decoder 410.
[0143] As described above, FIG. 14 include flowcharts of an apparatus (e.g. 100, 400, 1200, or any other apparatuses described herein), method, and computer program product according to certain example embodiments. It will be understood that each block of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by various means, such as hardware, firmware, processor, circuitry, and / or other devices associated with execution of software including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions. In this regard, the computer program instructions which embody the procedures described above may be stored by a memory (e.g., 112 or 1204) of an apparatus employing an embodiment of the present invention and executed by processing circuitry (e.g., 110 or 1202) of the apparatus. As will be appreciated, any such computer program instructions may be loaded onto a computer or other programmable apparatus (e.g., hardware) to produce a machine, such that the resulting computer or other programmable apparatus implements the functions specified in the flowchart blocks. These computer program instructions may also be stored in a computer-readable memory that may direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture, the execution of which implements the functionspecified in the flowchart blocks. The computer program instructions may also be loaded onto a computer or other programmable apparatus to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide operations for implementing the functions specified in the flowchart blocks.
[0144] A computer program product is therefore defined in those instances in which the computer program instructions, such as computer-readable program code portions, are stored by at least one non-transitory computer-readable storage medium with the computer program instructions, such as the computer-readable program code portions, being configured, upon execution, to perform the functions described above, such as in conjunction with the flowchart(s) of FIG. 14. In other embodiments, the computer program instructions, such as the computer-readable program code portions, need not be stored or otherwise embodied by a non-transitory computer-readable storage medium, but may, instead, be embodied by a transitory medium with the computer program instructions, such as the computer-readable program code portions, still being configured, upon execution, to perform the functions described above.
[0145] Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
[0146] In some embodiments, certain ones of the operations above may be modified or further amplified. Furthermore, in some embodiments, additional optional operations may be included. Modifications, additions, or amplifications to the operations above may be performed in any order and in any combination.
[0147] Some embodiments have been described in relation to one or more neural networks performing visual temporal extrapolation. It is to be understood that embodiments can be realized with any generative modelling neural networks.
[0148] In the above, some example embodiments have been described with the help of syntax of the bitstream. It needs to be understood, however, that the corresponding structure and / or computer program may reside at the encoder for generating the bitstream and / or at the decoder for decoding the bitstream.
[0149] In the above, where example embodiments have been described with reference to an encoder, it needs to be understood that the resulting bitstream and the decoder have corresponding elements in them. Likewise, where example embodiments have been described with reference to a decoder, it needs to be understood that the encoder has structure and / or computer program for generating the bitstream to be decoded by the decoder.
[0150] Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limitedto the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and / or functions, it should be appreciated that different combinations of elements and / or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and / or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Accordingly, the description is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
[0151] Though the idea is described using IBC block vectors as an example, however, it should be noted that the idea of refining the IBC block vectors may extend to the motion vectors of inter merge candidates. For example, the idea may be extended to refine the motion vectors held in inter merge candidates for a current block in a current picture, and use the refined motion vectors as motion vector predictors for the current block.
[0152] It should be understood that the foregoing description is only illustrative. Various alternatives and modifications may be devised by those skilled in the art. For example, features recited in the various dependent claims could be combined with each other in any suitable combination(s). In addition, features from different embodiments described above could be selectively combined into a new embodiment. Accordingly, the description is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.
[0153] References to a ‘computer’, 'processor1, etc. should be understood to encompass not only computers having different architectures such as single / multi-processor architectures and sequential (Von Neumann) / parallel architectures but also specialized circuits such as field-programmable gate arrays (FPGA), application specific circuits (ASIC), signal processing devices and other processing circuitry. References to computer program, instructions, code etc. should be understood to encompass software for a programmable processor or firmware such as, for example, the programmable content of a hardware device such as instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device, and the like.
[0154] As used herein, the term 'circuitry1may refer to any of the following: (a) hardware circuit implementations, such as implementations in analog and / or digital circuitry, and (b) combinations of circuits and software (and / or firmware), such as (as applicable): (i) a combination of processor(s) or (ii) portions of processor(s) / software including digital signal processor(s), software, and memory(ies) that work together to cause an apparatus to perform various functions, and (c) circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even when the software or firmware is not physically present. This description of 'circuitry1applies to uses of this term in this application. As a further example, as used herein, the term 'circuitry1would also cover an implementation of merely a processor (or multiple processors) or a portion of a processor and its (or their) accompanying software and / or firmware. The term 'circuitry1would also cover, for example and when applicable to the particular element, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, or another network device.
[0155] Circuitry or Circuit: As used in this application, the term ‘circuitry’ or ‘circuit’ may refer to one or more or all of the following:(a) hardware-only circuit implementations (such as implementations in only analog and / or digital circuitry); and(b) combinations of hardware circuits and software, such as (as applicable):(i) a combination of analog and / or digital hardware circuit(s) with software / firmware; and (ii) any portions of hardware processor(s) with software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions); and(c) hardware circuit(s) and or processor(s), such as a microprocessor(s) or a portion of a microprocessor(s), that requires software (e.g., firmware) for operation, but the software may not be present when it is not needed for operation.
[0156] This definition of circuitry applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term circuitry also covers an implementation of merely a hardware circuit or processor (or multiple processors) or portion of a hardware circuit or processor and its (or their) accompanying software and / or firmware. The term circuitry also covers, for example, and when applicable to the particular claim element, a baseband integrated circuit or processor integrated circuit for a mobile device or a similar integrated circuit in server, a cellular network device, or other computing or network device.
Claims
CLAIMSWhat is claimed is:
1. An apparatus comprising:at least one processor; andat least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform:for a current block in a current picture, using an intra-frame motion information around a collocated block in a collocated picture as an intra-frame motion information predictor for the current block; andcoding the current block based on the intra-frame motion information predictor.
2. The apparatus of claim 1 , wherein for the current block in the current picture, the apparatus is further caused to perform: using a block vector of the intra-frame motion information predictor as a block vector predictor for indicating a displacement from the current block to a prediction block in the current picture.
3. The apparatus of any of claims 1 or 2, wherein for the current block in the current picture, the apparatus is further caused to perform: checking for blocks at specific positions around the collocated block in the collocated picture.
4. The apparatus of claim 3, wherein checking comprises determining determine whether the specific positions are coded in intra block copy (I BC) mode.
5. The apparatus of any of the claims 3 or 4, wherein the specific positions comprise a bottom-right position of the collocated block and / or a center position of the collocated block.
6. The apparatus of any of the claims 3 or 4, wherein the specific positions comprise neighboring positions around the collocated block.
7. The apparatus of any of the claims 3 or 4, wherein the specific positions comprise non-adjacent neighboring positions around the collocated block.
8. The apparatus of any of the claims 3 or 4, wherein the specific positions comprise positions as specified for temporal motion vector predictor (TMVP) merge candidates in an enhanced compression model (ECM).
9. The apparatus of any of the claims 3 to 8, wherein for the current block in the current picture, the apparatus is further caused to perform:refining one or more block vectors at specific check positions around the collocated block in the collocated picture within small areas to generate one or more refined block vectors; andusing a final refined block vector as the block vector predictor for the current block, wherein the one or more refined block vectors comprise the final refined block vector.
10. The apparatus of claim 9, wherein the apparatus is further caused to perform: refining the one or more block vectors based on a pre-defined coding cost metrics.
11. The apparatus of claim 10, wherein the apparatus is further caused to perform: using template costs as the pre-defined coding cost metrics.
12. The apparatus of any of the claims 9 to 11, wherein for refining the one or more block vectors the apparatus is further caused to perform: refining the one or more block vectors from block around the collocated block in the collocated picture by using template costs of one or more prediction blocks pointed by the one or more block vectors and the one or more refined block vectors against the current block.
13. The apparatus of any of the claims 11 or 12, wherein the apparatus is further caused to perform: defining the template costs of the block vector against the current block as a difference between a template of the prediction block pointed by the block vector and a template of the current block in the current picture.
14. The apparatus of any of the claims 9 to 13, wherein the apparatus is further caused to perform: setting granularity of a block vector refinement to 1 / 16 pel, 1 / 8 pel, 1 / 4 pel, 1 / 2 pel, and / or 1 pel.
15. The apparatus of any of the claims 9 to 13, wherein to perform refining, the apparatus is further caused to perform: using a multi-stage refinement process for refining the one or more block vectors.
16. The apparatus of claim 15, wherein when the apparatus uses the multi-stage refinement process, a later refinement stage uses a smaller refinement granularity as compared to an earlier refinement stage.
17. The apparatus of any of the claims 15 or 16, wherein the multi-stage refinement process comprises three stages, and wherein for a first-stage refinement granularity is set to 1 / 4 pel, for a second-stage refinement granularity is set to 1 / 8 pel, and for a third-stage refinement granularity is set to 1 / 16 pel.
18. The apparatus of any of the claims 3 to 17, wherein the blocks comprise intra block copy blocks.
19. The apparatus of any of the claims 9 to 18, wherein the one or more refined block vectors comprise one or more refined intra block copy block vectors.
20. A method comprising:for a current block in a current picture, using an intra-frame motion information around a collocated block in a collocated picture as an intra-frame motion information predictor for the current block; andcoding the current block based on the intra-frame motion information predictor.
21. The method of claim 20, wherein for the current block in the current picture, the method further comprises: using a block vector of the intra-frame motion information predictor as a block vector predictor for indicating a displacement from the current block to a prediction block in the current picture.
22. The method of any of claims 20 or 21, wherein for the current block in the current picture, the method is further caused to perform: checking for blocks at specific positions around the collocated block in the collocated picture.
23. The method of claim 22, wherein checking comprises determining determine whether the specific positions are coded in intra block copy (IBC) mode.
24. The method of any of the claims 22 or 23, wherein the specific positions comprise a bottom-right position of the collocated block and / or a center position of the collocated block.
25. The method of any of the claims 22 or 23, wherein the specific positions comprise neighboring positions around the collocated block.
26. The method of any of the claims 22 or 23, wherein the specific positions comprise non-adjacent neighboring positions around the collocated block.
27. The method of any of the claims 22 or 23, wherein the specific positions comprise positions as specified for temporal motion vector predictor (TMVP) merge candidates in an enhanced compression model (ECM).
28. The method of any of the claims 22 to 27, wherein for the current block in the current picture, the method further comprises:refining one or more block vectors at specific check positions around the collocated block in the collocated picture within small areas to generate one or more refined block vectors; andusing a final refined block vector as the block vector predictor for the current block, wherein the one or more refined block vectors comprise the final refined block vector.
29. The method of claim 28 further comprising: refining the one or more block vectors based on a pre-defined coding cost metrics.
30. The method of claim 29 further comprising: using template costs as the pre-defined coding cost metrics.
31. The method of any of the claims 28 to 30, wherein for refining the one or more block vectors, the method further comprises: refining the one or more block vectors from block around the collocated block in the collocated picture by using template costs of one or more prediction blocks pointed by the one or more block vectors and the one or more refined block vectors against the current block.
32. The method of any of the claims 30 or 31 further comprising: defining the template costs of the block vector against the current block as a difference between a template of the prediction block pointed by the block vector and a template of the current block in the current picture.
33. The method of any of the claims 28 to 32 further comprising: setting granularity of a block vector refinement to 1 / 16 pel, 1 / 8 pel, 1 / 4 pel, 1 / 2 pel, and / or 1 pel.
34. The method of any of the claims 28 to 32, wherein refining comprises: using a multi-stage refinement process for refining the one or more block vectors.
35. The method of claim 34, wherein when the multi-stage refinement process is used, a later refinement stage uses a smaller refinement granularity as compared to an earlier refinement stage.
36. The method of any of the claims 22 to 35, wherein the blocks comprise intra block copy blocks.
37. The method of any of the claims 28 to 36, wherein the one or more refined block vectors comprise one or more refined intra block copy block vectors.
38. The method of any of the claims 20 to 27 further comprising:refining intra-frame motion vectors around the collocated block in a collocated picture for a current block in a current picture; andusing the refined intra-frame motion vectors as intra-frame motion vector predictors for the current block.
39. A method comprising:refining intra-frame motion vectors around a collocated block in a collocated picture for a current block in a current picture; andusing the refined intra-frame motion vectors as intra-frame motion vector predictors for the current block.
40. The method of claim 39 further comprising: coding the current block based on the refined motion vector predictors.
41. An apparatus comprising means for performing the methods as claimed in any of the claims 20 to 40.
42. A computer readable medium comprising program instructions that, when executed by an apparatus, cause the apparatus at least to perform the methods as claimed in any of the claims 20 to 40.
43. The computer readable medium of claim 42, wherein the computer readable medium comprises a non-transitory computer readable medium.
44. An apparatus comprising:at least one processor; andat least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to perform:refining intra-frame motion vectors around a collocated block in a collocated picture for a current block in a current picture; andusing the refined intra-frame motion vectors as intra-frame motion vector predictors for the current block.
45. The apparatus of claim 44, wherein the apparatus is further caused to perform: coding the current block based on the refined motion vector predictors.