WO2020260766A1 - Procédé, appareil, produit programme informatique pour mémoriser des vecteurs de mouvement d'un codage vidéo - Google Patents

Procédé, appareil, produit programme informatique pour mémoriser des vecteurs de mouvement d'un codage vidéo Download PDF

Info

Publication number
WO2020260766A1
WO2020260766A1 PCT/FI2020/050461 FI2020050461W WO2020260766A1 WO 2020260766 A1 WO2020260766 A1 WO 2020260766A1 FI 2020050461 W FI2020050461 W FI 2020050461W WO 2020260766 A1 WO2020260766 A1 WO 2020260766A1
Authority
WO
WIPO (PCT)
Prior art keywords
motion vector
partition
blending
blocks
partitions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/FI2020/050461
Other languages
English (en)
Inventor
Krit Panusopone
Limin Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of WO2020260766A1 publication Critical patent/WO2020260766A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/583Motion compensation with overlapping blocks

Definitions

  • An example embodiment of the present disclosure relates to electronic imagery and video content, and more particularly, to video encoding.
  • VVC Versatile Video Coding
  • MV motion vector
  • triangle partition mode is a commonly utilized mode used to code two objects with a boundary split along a diagonal direction.
  • a coding unit CU
  • each triangle partition has its own uni-prediction motion vector, derived from a merge candidate index.
  • Triangle partitions may be split, for example, along 45 degree (from top right comer to bottom left comer), or 135 degree (from top left comer to bottom right comer).
  • Blending applies to pixels in the coding unit around the triangle split by weighted averaging motion compensation predictors from both triangle partitions.
  • the predictor obtained from motion compensation process is used for blending.
  • the motion compensation process obtains a block of pixels in reference slice at a location determined by the motion vector. That block is a motion compensation predictor.
  • the goal of the blending process is to generate a final pixel predictor, to smooth differences around the partition boundaries.
  • Motion vectors derived for the triangle partition mode are stored for later use as a neighbor motion vector, such as in Advanced Motion Vector Prediction (AMVP) and/or Termporal Motion Vector Predictor iTMVP).
  • AMVP Advanced Motion Vector Prediction
  • iTMVP Termporal Motion Vector Predictor
  • the motion vector is stored at 4x4 block granularity.
  • each 4x4 block stores motion vectors of triangle partitions belonging to 4x4 blocks along a triangle split belonging to two triangle partitions and hence motion vectors from two triangle partitions are stored for each blending block.
  • Figure 1 shows an example of a triangle partition mode block for motion vector storage.
  • Figure 1 shows triangle partition mode blocks for motion vector storage for a 16x16 CU having a 135 degree split (left) and 45 degree split (right).
  • Each square represents 4x4 block and the shaded squares represent blending blocks 100.
  • Table 1 Example of partition index assignment in many VVC designs for 32x16 CU; 45 degree split (left) and 135 degree (right).
  • Table 1 shows another example of motion vector partition assignment for triangle partition mode.
  • ‘O’ represents a partition index 0 motion vector
  • ‘ 1’ represents a partition index‘ 1’ motion vector
  • ‘2’ represents a blending block.
  • Index 0 means that the motion vector from partition index 0 is stored for the corresponding block.
  • Index 1 means that the motion vector from partition index 1 is stored for the corresponding block.
  • the blocks represented by‘2’ in Table 1 may indicate blending blocks, and example embodiments determine which index 0 or 1, or both, should be utilized as the respective blending block’s motion vector(s).
  • a reference list allows bi-direction prediction and each motion vector has its own reference list.
  • a codec can determine which reference slice it can refer to for encoding and/or decoding. The motion vector is then used to locate the motion
  • Reference is a decoded picture and can be included in both lists.
  • the motion vector can refer to a block located anywhere in that picture.
  • Example embodiments store the motion vector, (and reference and list) so that it can serve as a motion vector predictor for a future block. Mapping is performed when the reference used in an original list is also included in the other list.
  • the first case is when one triangle partition uses a reference from one list (e.g., reference list) and another partition uses a reference from the other list.
  • Motion vector storage in this case may be straightforward and the motion vector for each list is the same as the motion vector of triangle partition that uses that reference list.
  • the first case directly stores both partition’s motion vectors.
  • the second case is when both triangle partitions use the same reference list.
  • a motion vector from one list must be mapped to the other list so that there is one motion vector in one list. In the event case that a corresponding reference in the mapped list does not exist, only one motion vector is stored.
  • the second case is more complex than the first case as more processing steps are required to determine the motion vector and encode and decode the frame accordingly.
  • a method, apparatus, and computer program product are therefore provided herein according to example embodiments to reduce this complexity and reduce the processing steps otherwise required to encode and/or decode video content and particularly in determining which motion vector to use in blending blocks.
  • Example embodiments may therefore be utilized by codes to determine motion vector storage by storing two motion vectors (one from each partition) used in motion compensation prediction
  • One approach provided by example embodiments described herein is to predetermine a partition index for each blending block.
  • the second case described above when both triangle partitions use the same reference list
  • Example embodiments according to the first approach modify the partition index assignment buffer such that blending block (index 2) is not used. Hence, only one motion is stored for all blocks in triangle mode.
  • Methods 1-6 described herein describe the first approach in more detail.
  • embodiments includes predetermining the partition index of blending block when both triangle partitions refers to the same reference list.
  • the second approach stores one motion vector from a predetermined partition for all blending blocks in a coding unit when the motion vector from the first and second triangle partition of that coding unit are from the same reference list. There is no change in partition index assignment buffer. Methods 7 and 8 described herein describe how to determine the predetermined partition index.
  • An apparatus for encoding video comprising at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the processor, cause the apparatus to at least:
  • each partition has a respective corresponding motion vector
  • determine a partition index for each of the blending blocks wherein the partition indices indicate a motion vector to be stored for each respective blending block, wherein each motion vector corresponds to a motion vector of one of the partitions, and encode the video segment by storing the motion vectors according to the determined partition indices.
  • a method for encoding video comprising: receive an indication of a coding unit used for video compression of a video segment, wherein the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector, determining a partition index for each of the blending blocks, wherein the partition indices indicate a motion vector to be stored for each respective blending block, wherein each motion vector corresponds to a motion vector of one of the partitions, and encoding the video segment by storing the motion vectors according to the determined partition indices.
  • a computer program product for encoding video comprising at least one non-transitory computer-readable storage medium having computer-executable program code instructions stored therein, the computer- executable program code instructions comprising program code instructions to receive an indication of a coding unit used for video compression of a video segment, wherein the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector, determine a partition index for each of the blending blocks, wherein the partition indices indicate a motion vector to be stored for each respective blending block, wherein each motion vector corresponds to a motion vector of one of the partitions, and encode the video segment by storing the motion vectors according to the determined partition indices.
  • An apparatus for encoding video comprising means for receiving an indication of a coding unit used for video compression of a video segment, wherein the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector, means for determining a partition index for each of the blending blocks, wherein the partition indices indicate a motion vector to be stored for each respective blending block, wherein each motion vector corresponds to a motion vector of one of the partitions, and means for encoding the video segment by storing the motion vectors according to the determined partition indices.
  • the partition index indicates each motion vector of a blending block as the respective motion vector of the partition bordering one of a top neighbor, bottom neighbor, left neighbor or right neighbor. According to some embodiments, the partition index indicates a motion vector of a blending block as the respective motion vector of a neighbor partition having more blocks closer to the respective blending block relative to a number of blocks of the other partition, and/or the partition index indicates each motion vector of a blending block as the respective motion vector of a closest neighbor partition to the blending blocks.
  • An apparatus for encoding video comprising at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the processor, cause the apparatus to at least:
  • the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector, determine whether a motion vector for the two partitions belong to the same list, and adaptively function depending on a reference list of partitions used in the coding unit.
  • the at least one memory and the computer program code are further configured to, with the processor, cause the apparatus to store a motion vector of a partition bordering a right neighbor to all blending blocks for a same reference list case.
  • the at least one memory and the computer program code are further configured to, with the processor, cause the apparatus to store a motion vector of a partition that has a longer border with right and bottom neighbors to all blending blocks for a same reference list case.
  • a method for encoding video comprising receiving an indication of a coding unit used for video compression of a video segment, wherein the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector, determining whether a motion vector for the two partitions belong to the same list, and adaptively functioning depending on a reference list of partitions used in the coding unit.
  • the method comprises storing a motion vector of a partition bordering a right neighbor to all blending blocks for a same reference list case.
  • the method comprises storing a motion vector of a partition that has a longer border with right and bottom neighbors to all blending blocks for a same reference list case.
  • a computer program product for encoding video comprising at least one non-transitory computer-readable storage medium having computer-executable program code instructions stored therein, the computer- executable program code instructions comprising program code instructions to receive an indication of a coding unit used for video compression of a video segment, wherein the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector, determine whether a motion vector for the two partitions belong to the same list, and adaptively function depending on a reference list of partitions used in the coding unit for the blending blocks to use a motion vector of one of the partitions.
  • the computer-executable program code instructions comprises program code instructions to store a motion vector of a partition bordering a right neighbor to all blending blocks for a same reference list case. In some embodiments, in an instance the motion vector for the two partitions belong to the same list, the computer-executable program code instructions comprises program code instructions to store a motion vector of a partition that has a longer border with right and bottom neighbors to all blending blocks for a same reference list case.
  • An apparatus is provided with means for encoding the video.
  • the apparatus includes means for receiving an indication of a coding unit used for video compression of a video segment, wherein the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector.
  • the apparatus includes means for determining a partition index for each of the blending blocks, wherein the partition indices indicate a motion vector to be stored for each respective blending block, wherein each motion vector corresponds to a motion vector of one of the partitions.
  • the apparatus further includes means for encoding the video segment by storing the motion vectors according to the determined partition indices.
  • An apparatus with means for encoding video having means for receiving an indication of a coding unit used for video compression of a video segment, wherein the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector.
  • the apparatus further includes means for, determining whether a motion vector for the two partitions belong to the same list.
  • the apparatus further includes means for adaptively functioning depending on a reference list of partitions used in the coding units.
  • Figure 1 illustrates an example of a triangle partition mode block for motion vector storage
  • Figure 2 is an exemplary schematic diagram of an apparatus in accordance with some example embodiments.
  • Figures 3 and 4 are flowcharts of operations that may be performed in accordance with an example embodiment.
  • circuitry refers to (a) hardware-only circuit implementations (e.g., implementations in analog circuitry and/or digital circuitry); (b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and (c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present.
  • This definition of‘circuitry’ applies to all uses of this term herein, including in any claims.
  • the term‘circuitry’ also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware.
  • the term‘circuitry’ as used herein also includes, for example, 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, other network device, field programmable gate array, and/or other computing device.
  • Figure 2 is an overview of a system that can be used to practice certain
  • Apparatus 200 is a computing device(s) configured for encoding video content according to example
  • Apparatus 200 may include or otherwise be in communication with processor 220, user interface 222, communication interface 224, and memory device 226.
  • the user interface 222 may be considered optional in apparatus 200, as indicated by the dashed line.
  • apparatus 200 may include a wide variety of devices including personal computers, work stations, or mobile terminals, such as laptop computers, tablet computers, smartphones, wearable devices (e.g., head-worn devices), or any combination of the aforementioned devices, and other types of voice and text communications systems.
  • apparatus 200 may be embodied by a user device comprising the display on which content is provided to a user. Additionally or alternatively, apparatus 200 may be embodied by a server for storing and retrieving video content, encoding video content, and/or the like.
  • the processor 220 (and/or co-processors or any other processing circuitry assisting or otherwise associated with the processor 220) may be in communication with the memory device 226 via a bus for passing information among components of the apparatus 200.
  • the memory device 226 may include, for example, one or more volatile and/or non-volatile memories.
  • the memory device 226 may be an electronic storage device (e.g., a computer readable storage medium) comprising gates configured to store data (e.g., bits) that may be retrievable by a machine (e.g., a computing device like the processor 220).
  • the memory device 226 may be configured to store information, data, content, applications, instructions, or the like for enabling the apparatus to carry out various functions in accordance with an example embodiment of the present invention.
  • the memory device 226 may store video content and/or the associated compressed data, as well as compute program instructions for performing such compression as described herein.
  • the memory device 226 could be configured to buffer input data for processing by the processor 220.
  • the memory device 226 could be configured to store instructions for execution by the processor 220.
  • memory device 226 may comprise or embody database 50.
  • the apparatus 200 may be embodied as a chip or chip set.
  • the apparatus 200 may comprise one or more physical packages (e.g., chips) including materials, components and/or wires on a structural assembly (e.g., a baseboard).
  • a physical package e.g., chips
  • a structural assembly e.g., a baseboard
  • the structural assembly may provide physical strength, conservation of size, and/or limitation of electrical interaction for component circuitry included thereon.
  • the apparatus 200 may therefore, in some cases, be configured to implement an embodiment of the present invention on a single chip or as a single“system on a chip.”
  • a chip or chipset may constitute means for performing one or more operations for providing the functionalities described herein.
  • the processor 220 may be embodied in a number of different ways.
  • the processor 220 may be embodied as one or more of various hardware processing means such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing element with or without an accompanying DSP, or various other processing circuitry including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like.
  • the processor 220 may include one or more processing cores configured to perform independently.
  • a multi-core processor may enable multiprocessing within a single physical package.
  • the processor 220 may include one or more processors configured in tandem via the bus to enable independent execution of instructions, pipelining and/or multithreading.
  • the processor 220 may be configured to execute instructions stored in the memory device 226 or otherwise accessible to the processor 220. Alternatively or additionally, the processor 220 may be configured to execute hard coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor 220 may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly. Thus, for example, when the processor 220 is embodied as an ASIC, FPGA or the like, the processor 220 may be specifically configured hardware for conducting the operations described herein.
  • the instructions may specifically configure the processor 220 to perform the algorithms and/or operations described herein when the instructions are executed.
  • the processor 220 may be a processor of a specific device (e.g., a mobile terminal or network entity) configured to employ an embodiment of the present invention by further configuration of the processor 220 by instructions for performing the algorithms and/or operations described herein.
  • the processor 220 may include, among other things, a clock, an arithmetic logic unit (ALU) and logic gates configured to support operation of the processor 220.
  • ALU arithmetic logic unit
  • the communication interface 224 may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data ffom/to a network and/or any other device or module in communication with the apparatus 200.
  • the communication interface 224 may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network.
  • the communication interface 224 may include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s).
  • the communication interface 224 may alternatively or also support wired communication.
  • the communication interface 224 may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB) or other mechanisms.
  • Communication interface 224 may include a network (e.g., network 10), such as any wired or wireless communication network including a local area network (LAN), personal area network (PAN), wide area network (WAN), the Internet, an intranet, or the like, as well as any attendant hardware, software and/or firmware required to implement said networks (e.g. network routers and network switches).
  • the communication interface 224 may be configured to facilitate communication between apparatus 200 and other devices.
  • a user interface 222 may be present.
  • the user interface 222 may be configured to cause provision of any audible, visual, mechanical or other output to the user.
  • the user interface 222 may include a display, such as one configured for displaying an image or video.
  • Example displays which may be included in user interface 222 may include a computer monitor, tablet screen, television monitor, head-worn display, other wearable display, a display or plurality of displays providing a virtual reality environment, and/or the like.
  • user interface 222 may include additional output mechanisms.
  • the user interface 222 may include a means for user input, such as a keyboard, mouse, joystick, touch screen, touch areas, scroller ball, soft keys, a microphone, ringer, speaker, or other input mechanisms.
  • Apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for determining a partition index assignment.
  • the partition index assignment may be determined differently than in other VVC methods.
  • the partition index assignment may be a table representing indicators for how particular pixels and/or blocks thereof are partitioned for encoding and/or compression. Blocks comprised by the partition (e.g., bordering an edge of a partitioned coding unit) may be considered blending blocks.
  • Example embodiments determine the partition index by operating at the beginning of sequence and partitioning the coding units accordingly using the same method for each cording unit in a sequence of video frames.
  • FIG. 3 is a flowchart of operations for modifying a partition index assignment based on a CU dimension.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for receiving an indication of a coding unit used for video compression of a video segment, wherein the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector.
  • the video segment may refer to any portion of a video file and/or multimedia video file.
  • a coding unit may have various dimensionalities. The dimensionality of the coding unit refers to the number of pixels or blocks utilized in a macroblock to encode a frame.
  • apparatus may include means, such as the processor 220, memory device 226, or the like, for determining a dimensionality of a coding unit used for video compression of a video segment
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for determining a partition index for each of the blending blocks, wherein the partition indices indicate a motion vector to be stored for each respective blending block, wherein each motion vector corresponds to a motion vector of one of the partitions.
  • the blending block therefore refers to certain blocks of any one coding unit that are subject to blending and/or other graphics modifications to provide smoother transitions within the video and between frames.
  • the blending blocks according to a triangular mode VVC may border the partitions on an angle.
  • Table 1,‘2’ represents blending blocks.
  • a blending block is 4x4 and is smaller than a coding unit.
  • a coding unit has many 4x4 blocks and some of them are blending blocks. Modifying a partition index assignment may be performed by any of the methods 1-6 described in further detail below. It will be appreciated that the methods are numbered for the purposed of explanation, and no significance should necessarily be placed on any of the method numberings or order thereof.
  • Method 1 (“Favor top”) assigns partition index‘O’ to all blending blocks, given the example of the top partition having index‘O’. This assignment uses motion vector of a partition bordering a top neighbor.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for determining a partition index of blending blocks such that the partition index indicates each motion vector of a blending block as the respective motion vector of the partition bordering a top neighbor.
  • Table 2 shows an example of partition assignment for method 1. As compared to VTM5.0 anchor, method 1 for internal short test sequences has a coding efficiency loss of 0.06% for RA, as shown in Table 3.
  • Table 2 Example of partition index assignment for method 1; 45 degree split (left) and 135 degree (right).
  • Table 3 The results as compared with VTM5.0 anchor in terms of Bjontegaard-Delta. (BD) rate.
  • Y is for luminance channel
  • U and V are two chrominance channels.
  • EncT is relative encoding time compared to anchor and DecT is relative decoding time compared to anchor.
  • Class is a term used to describe a set of test sequences which has same picture resolution (e.g, high definition (HD), (1920x1080)). Both Class A1 and A2 have the same resolution; 3840x2160. Class C has the lowest resolution; 832x480.
  • HD high definition
  • Method 2 (“Favor bottom”) assigns partition index‘ G to all blending blocks, given the example of the bottom partition having index‘ G. This assignment uses motion vector of partition bordering bottom neighbor.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for determining a partition index of blending blocks such that the partition index indicates each motion vector of a blending block as the respective motion vector of the partition bordering a bottom neighbor.
  • Table 4 shows an example of partition assignment for method 2. As compared to VTM5.0 (VVC Test Model) anchor, method 2 for internal short test sequences has a loss of 0.05% for random access (RA), as shown in Table 5.
  • Table 4 Example of partition index assignment for method 2; 45 degree split (left) and 135 degree (right). [0049] Table 5. The results as compared to VTM5.0 anchor in terms of BD rate.
  • Method 3 (“Favor left”) assigns partition indices such that the partition borders a left neighbor to all blending blocks.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for determining a partition index of blending blocks such that the partition index indicates each motion vector of a blending block as the respective motion vector of the partition bordering a left neighbor.
  • Table 6 shows an example of partition assignment for method 3. As compared to VTM5.0 anchor, method 3 for internal short test sequences has a loss of 0.03% for RA, as shown in Table 7.
  • Table 6 Example of partition index assignment for method 3; 45 degree split (left) and 135 degree (right).
  • Method 4 (“Favor right”) assigns partition indices such that the partition borderers a right neighbor to all blending blocks.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for determining a partition index of blending blocks such that the partition index indicates each motion vector of a blending block as the respective motion vector of the partition bordering a right neighbor.
  • Table 8 shows an example of partition assignment for method 4. As compared to VTM5.0 anchor, method 4 for internal short test sequences has a gain of 0.01% for RA, as shown in Table 9.
  • Table 8 Example of partition index assignment for method 4; 45 degree split (left) and 135 degree (right).
  • Methods 5 and 6 determine a partition index for each of the blending blocks based on a dimensionality of the coding unit.
  • the motion vectors for the blending blocks according to these methods may be dynamically determined based on the coding unit dimensions.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for determining a partition index of blending blocks such that the partition index indicates each motion vector of a blending block as the respective motion vector of a neighbor partition having more blocks closer to the respective blending block relative to a number of blocks of the other partition. This method is not applicable for a square coding unit since distance from blending block to either partition is the same.
  • N blending block for each 4x4 block row, where N is greater than 1.
  • left N/2 blending blocks stores a motion vector of the partition on the left side; 0 for 45 degree split and 1 for 135 degree split, and right N/2 blending blocks stores a motion vector of the partition on the right side; 1 for 45 degree split and 0 for 135 degree split.
  • CU that has height larger than width.
  • N blending block for each 4x4 block columns, where N is greater than 1.
  • top N/2 blending blocks stores a motion vector of the partition above; 0 for 45 degree split and 0 for 135 degree split, and bottom N/2 blending blocks stores a motion vector of the partition below; 1 for 45 degree split and 1 for 135 degree split.
  • Table 10 shows an example of partition assignment for method 5.
  • Table 10 shows an example of method 5 where there are 2 blending blocks in each 4x4 block row that need new assignment. By comparing table 8 and 10, it shows that bottom left assignment has different assignment since that one is closer to more blocks of partition 0 relative to blocks of partition 1 , while the right position of the bottom left still has assignment index 1 since it is closer to more blocks of partition 1 than blocks of partition 0.
  • method 5 for a non-square coding unit combining with method 4 for a square coding unit for internal short test sequences has a loss of 0.03% for RA, as shown in Table 11.
  • Method 6 (Favor longer border) assigns partition indices such that the motion vector of the blending blocks are selected based on the longer of a horizontal length or vertical height. This method is not applicable for a square coding unit since border lengths for both horizontal and vertical are the same.
  • the method 6 uses the longer of a bottom or right edge of the coding unit.
  • any combination of a longer of a bottom or left edge, bottom or right edge, to top or right edge, and top or left edge may be used, so as it is repeated for the sequence of coding units of frames in a given coding and/or decoding task.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for determining a partition index of blending blocks such that the partition index indicates each motion vector of a blending block as the respective motion vector of a partition having a longer border with right and bottom neighbors to the bending blocks.
  • the length of a bottom boundary and a right boundary are different.
  • Method 6 assigns a partition index for a blending block according to partition angle and relative size of the bottom boundary and the right boundary.
  • Tables 12 and 13 shows two examples of partition assignment for method 6. As compared to VTM5.0 anchor, method 6 for a non-square CU combining with method 4 for a square CU for internal short test sequences has a loss of 0.02% for RA, as shown in Table 14.
  • Table 12 Example of partition index assignment for method 6 (32x16 CU); 45 degree split (left) and 135 degree (right).
  • Table 13 Example of partition index assignment for method 6 (16x32 CU); 45 degree split (left) and 135 degree (right).
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for encoding the video segment according to the determined partition.
  • the video may therefore be compressed according to the video compression technique being utilized (e.g., VVC), and based on the partitions determined according to example embodiments.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for receiving an indication of a coding unit used for video compression of a video segment, wherein the coding unit comprising a plurality of blending blocks and two partitions, wherein each partition has a respective corresponding motion vector.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for determining whether a motion vector for the two partitions belong to the same list.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for adaptively functioning depending on a reference list of partitions used in the coding unit.
  • both triangle partitions as defined by the VVC in a coding are checked to see whether their motion vectors belong to the same list or not. If not, a motion vector storage method such as one used in many VVC designs is used. Otherwise (if the motion vectors below to the same reference list), a motion vector from one of the triangle partitions (e.g.,‘O’ or‘ G) is stored as a motion vector for the blending blocks. If it is, the second approach forces storing a motion vector of one the partitions for the blending block based on criteria in methods 7 or 8 described below.
  • method 7 stores a motion vector of a partition bordering right neighbor to all blending blocks for the same reference list case.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for storing a motion vector of a partition bordering a right neighbor to all blending blocks for the same reference list case.
  • method 8 stores motion vector of partition that has longer border with right and bottom neighbors to all blending blocks for the same reference list case.
  • apparatus 200 may include means, such as the processor 220, memory device 226, or the like, for stores motion vector of partition that has longer border with right and bottom neighbors to all blending blocks for the same reference list case.
  • method 8 stores motion vector of partition bordering a right neighbor.
  • Example embodiments described herein provide numerous technical advantages of other methods of video compression, including some other VVC designs.
  • Example embodiments may utilize fewer processing resources relative to other VVC designs.
  • Both the first approach and second approach may save processing resources in both an encoder and decoder implemented according to example embodiments, in comparison to many VVC designs, since motion vector storage steps are performed in the same fashion at both the encoder and decoder.
  • the second approach reduces complexity particularly when two partitions use the same reference list by skipping all mapping and searching functionality for same reference slice in the other list.
  • the first approach doesn’t allow any blending block (e.g., index 2).
  • the second case allows blending block and activates only when two motion vectors refer to the same list.
  • second case is more complex since it has to process a blending block, which is not available in the first case.
  • Figures 3 and 4 illustrate flowcharts of an apparatus 200, method, and computer program product according to an example embodiment of the invention. It will be understood that each block of the flowchart, and combinations of blocks in the flowchart, 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 device 226 of an apparatus 200 employing an embodiment of the present invention and executed by a processor 220 of the apparatus 200.
  • 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 function specified 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.
  • blocks of the flowchart 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 flowchart, and combinations of blocks in the flowchart, may be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un procédé, un appareil et un produit programme informatique servant à déterminer un vecteur de mouvement d'un bloc de mélange de codage d'un segment vidéo comportant des partitions triangulaires. Une première approche détermine une attribution d'indice de partition de telle sorte que l'indice de partition indique chaque vecteur de mouvement d'un bloc de mélange en tant que vecteur de mouvement respectif de la partition bordant l'un d'un voisin supérieur, voisin inférieur, voisin gauche ou voisin droit. Selon certains exemples, les indices de partition sont basés sur une dimensionnalité d'unité de codage. Une seconde approche consiste à déterminer un indice de partition du bloc de mélange lorsque les deux partitions triangulaires se rapportent à la même liste de référence. La seconde approche maintient une attribution d'indice de partition et fonctionne de manière adaptative en fonction d'une liste de référence de partitions triangulaires utilisées dans une unité de codage.
PCT/FI2020/050461 2019-06-26 2020-06-25 Procédé, appareil, produit programme informatique pour mémoriser des vecteurs de mouvement d'un codage vidéo Ceased WO2020260766A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962866708P 2019-06-26 2019-06-26
US62/866,708 2019-06-26

Publications (1)

Publication Number Publication Date
WO2020260766A1 true WO2020260766A1 (fr) 2020-12-30

Family

ID=74061526

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FI2020/050461 Ceased WO2020260766A1 (fr) 2019-06-26 2020-06-25 Procédé, appareil, produit programme informatique pour mémoriser des vecteurs de mouvement d'un codage vidéo

Country Status (1)

Country Link
WO (1) WO2020260766A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019039322A1 (fr) * 2017-08-22 2019-02-28 Panasonic Intellectual Property Corporation Of America Codeur d'image, décodeur d'image, procédé de codage d'image et procédé de décodage d'image

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019039322A1 (fr) * 2017-08-22 2019-02-28 Panasonic Intellectual Property Corporation Of America Codeur d'image, décodeur d'image, procédé de codage d'image et procédé de décodage d'image

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BLÄSER (RWTH-AACHEN) M; SAUER (RWTH AACHEN UNIVERSITY) J: "CE10-related: Bi-directional motion vector storage for triangular prediction", JVET DOCUMENT JVET-M581. JVET DOCUMENT MANAGEMENT SYSTEM, 13TH MEETING, 12 January 2019 (2019-01-12), Marrakech, XP030201829, Retrieved from the Internet <URL:http://phenix.it-sudparis.eu/jvet> [retrieved on 20201022] *
LEE H; S-C LIM; LEE J; KANG J; KIM (ETRI) H Y: "Non-CE4: Simplification of motion vector storage process for triangle merge mode", JVET DOCUMENT JVET-O0329. JVET DOCUMENT MANAGEMENT SYSTEM, 15TH MEETING, 25 June 2019 (2019-06-25), Gothenburg, XP030219274, Retrieved from the Internet <URL:http://phenix.it-sudparis.eu/jvet> [retrieved on 20201022] *
REUZÉ (QUALCOMM) K; C-C CHEN (QUALCOMM); W-J CHIEN (QUALCOMM); HUANG (QUALCOMM) H; KARCZEWICZ (QUALCOMM) M: "Non-CE4: Simplification of bi-prediction MV generation for triangle partition mode storage", JVET DOCUMENT JVET-O0411. JVET DOCUMENT MANAGEMENT SYSTEM, 15TH MEETING, 25 June 2019 (2019-06-25), Gothenburg, XP030219496, Retrieved from the Internet <URL:http://phenix.it-sudparis.eu/jvet> [retrieved on 20201022] *

Similar Documents

Publication Publication Date Title
US12382081B2 (en) Picture prediction method and related apparatus
US11831902B2 (en) Picture prediction method and picture prediction apparatus
US10536692B2 (en) Picture prediction method and related apparatus
CN116506646B (zh) 影像编码/解码方法及装置
JP6163674B2 (ja) 高効率次世代ビデオコーディングのためのコンテンツ適応双方向性又は機能性予測マルチパスピクチャ
JP2019198092A (ja) 画像予測方法および関連装置
US9262839B2 (en) Image processing device and image processing method
TW201820881A (zh) 使用樹結構的塊分割
US11190766B2 (en) Method and apparatus for determining division of coding unit, computing device, and readable storage medium
US20200280722A1 (en) High quality advanced neighbor management encoder architecture
US12267495B2 (en) Affine predication method, computing device and non-transitory storage medium
JP2019016896A (ja) 画像処理装置、画像処理方法
WO2020260766A1 (fr) Procédé, appareil, produit programme informatique pour mémoriser des vecteurs de mouvement d&#39;un codage vidéo
JP2011199868A (ja) 動き推定処理における適応検索領域
WO2022017747A1 (fr) Rafraîchissement de décodage progressif sans fuite et sans restriction sur des unités de codage dans des zones propres
US12506864B2 (en) Block-based reference sample interpolation filter optimization for video
US11222414B2 (en) Image processing apparatus that specifies a block to be encoded
CN119110064A (zh) 对编码块进行帧间预测的方法及其相关产品
CN113438485A (zh) 图像编码方法、装置、电子设备和存储介质
CN118138784A (zh) 视频分割压缩方法、装置、设备以及介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20831211

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20831211

Country of ref document: EP

Kind code of ref document: A1