CN112911309B - avs2 encoder motion vector processing system, method, apparatus, device and medium - Google Patents

avs2 encoder motion vector processing system, method, apparatus, device and medium Download PDF

Info

Publication number
CN112911309B
CN112911309B CN202110089571.7A CN202110089571A CN112911309B CN 112911309 B CN112911309 B CN 112911309B CN 202110089571 A CN202110089571 A CN 202110089571A CN 112911309 B CN112911309 B CN 112911309B
Authority
CN
China
Prior art keywords
motion vector
unit
coding unit
sequence number
current coding
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.)
Active
Application number
CN202110089571.7A
Other languages
Chinese (zh)
Other versions
CN112911309A (en
Inventor
文湘鄂
向国庆
徐辉
东健慧
王世超
张磊
刘洋
束文韬
宋磊
贾惠柱
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.)
Beijing Boya Huishi Intelligent Technology Research Institute Co ltd
Original Assignee
Beijing Boya Huishi Intelligent Technology Research Institute Co ltd
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 Beijing Boya Huishi Intelligent Technology Research Institute Co ltd filed Critical Beijing Boya Huishi Intelligent Technology Research Institute Co ltd
Priority to CN202110089571.7A priority Critical patent/CN112911309B/en
Publication of CN112911309A publication Critical patent/CN112911309A/en
Application granted granted Critical
Publication of CN112911309B publication Critical patent/CN112911309B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type

Landscapes

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

Abstract

The disclosure relates to the technical field of image processing, and in particular provides a avs encoder motion vector processing system, a method, a device, a medium and equipment, wherein the system comprises: a shared motion vector line buffer for storing the motion vector generated after the mode unit has selected and processed the current coding unit; a predicted motion vector sequence number unit for storing the sequence number of the processed motion vector; a mode selection unit for writing and processing data into the shared motion vector line buffer and the predicted motion vector sequence number unit; the whole pixel prediction unit is used for reading and processing the data in the shared motion vector line cache and the predicted motion vector sequence number unit; a sub-pixel prediction unit for reading and processing the data processed by the whole pixel prediction unit; and an arithmetic coding module for arithmetic coding the data processed by the mode selection unit.

Description

avs2 encoder motion vector processing system, method, apparatus, device and medium
Technical Field
The present disclosure relates to the field of image processing technology, and more particularly, to avs2 encoder motion vector processing systems, methods, apparatuses, devices, and media.
Background
The architecture of the avs hardware encoder includes main functional modules of pre (intra prediction), IME (whole pixel prediction), FME (split pixel prediction), MD (mode decision), AEC (arithmetic coding), etc., which are arranged to be pipelined for improving hardware utilization efficiency, specifically, pre and IME are arranged in the same stage of pipeline, and FME, MD, AEC each occupy a stage of pipeline. At the same time, each picture to be encoded is divided into CUs (coding units, sub 64x64, and the like) of not more than 64x64 pixels, the CUs enter the pipeline in the order of scan lines, and each stage of pipeline processes each CU in turn.
In general, functional blocks in a pipeline have data dependencies on functional blocks at a previous stage in its pipeline, e.g., an IME may not begin processing a 0 th CU if it does not complete processing the 0 th CU, and conversely, functional blocks at a previous stage of the pipeline typically do not have data dependencies on blocks at a subsequent stage of the pipeline. However, for the avs hardware encoder, there is an exception to this pipeline paradigm that the optimal MV (motion vector) generated by the MD at the later stage of the pipeline must be passed back to the IME at the earlier stage of the pipeline, and for small-size pictures (width less than or equal to 192 pixels), the pipeline design creates a data dependency between the IME (first stage pipeline) and the MD (third stage pipeline). The mechanism of this dependency generation is as follows:
the IME needs to make full-pel motion estimation by using the original pixel provided by the current frame and the reference pixel provided by the encoded frame, both of which have no data dependence on other modules, but in motion estimation, PMV (Predictive Motion Vector) of the current frame is required to determine the start point of the search position, so that in order to obtain a more accurate search start point, PMVs need to generate final PMVs according to the optimal MVs of neighboring encoded CUs around the current frame, including left, upper right, median prediction, and other modes, and these optimal MVs can be determined only after MD (mode decision) is made, and considering that the order of the CU is the scan line mode, the MV result on the upper right must be the one that is obtained the latest, which has the effect that PMV calculation for the current CU in the IME module depends on the optimal MV value calculated by the upper right CU in the MD module. It should also be noted that for a CU arranged in the first row, there is no CU above and above right, so the IME need not use the MV results above and above right in calculating its PMV, and also for a CU arranged in a non-first row but at the far right, there is only the CU above it, there is no CU above right, so the IME need only wait for the MV results of its CU above it.
This data dependence is not problematic for a somewhat wider image (width greater than 192) because the MD is only two stages behind the IME in the pipeline, whose MVs for the upper right CU have been calculated when the IME calculated the PMV. However, for pictures with a width of 192 pixels or less (e.g., pictures in QCIF format 176x 144), there are only 3 CUs in total per line, when the IME calculates the first CU of the second line, the MD is processing the second CU of the first line, and the first CU of the second line needs to know the optimal MV of the second CU of the first line to calculate its own PMV.
Disclosure of Invention
The method aims at solving the technical problem that the prior art cannot meet the efficient operation of the pipeline design of the user.
To achieve the above technical object, the present disclosure provides a avs encoder motion vector processing system, comprising:
a shared motion vector line buffer for storing the motion vector generated after the mode unit has selected and processed the current coding unit;
a predicted motion vector sequence number unit for storing the sequence number of the processed motion vector;
a mode selection unit for writing and processing data into the shared motion vector line buffer and the predicted motion vector sequence number unit;
the whole pixel prediction unit is used for reading and processing the data in the shared motion vector line cache and the predicted motion vector sequence number unit;
a sub-pixel prediction unit for reading and processing the data processed by the whole pixel prediction unit;
and an arithmetic coding module for arithmetic coding the data processed by the mode selection unit.
To achieve the above technical object, the present disclosure further provides a avs encoder motion vector processing method, which is applied to the avs encoder motion vector processing system, and the method includes:
obtaining a motion vector after module selection processing of the module selection unit;
writing the motion vector into the motion vector line cache according to the sequence number of the coding unit of the motion vector, and storing the sequence number of the motion vector into the predicted motion vector sequence number unit;
and reading the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit by the whole pixel prediction unit to complete the process of feeding back the motion vector from the mode decision unit to the whole pixel prediction unit.
Further, the process of reading the motion vector in the motion vector line buffer and the sequence number of the motion vector in the predicted motion vector sequence number unit by the whole pixel prediction unit to complete the feedback of the motion vector from the mode decision unit to the whole pixel prediction unit specifically includes:
and judging according to the current abscissa and ordinate of the coding unit so as to read the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit.
Further, the process of judging according to the current abscissa and ordinate of the coding unit specifically includes:
if the abscissa of the current coding unit is 0, directly storing the data in the current coding unit into the motion vector line cache, and writing the data into the predicted motion vector sequence number unit according to the abscissa of the current coding unit;
if the abscissa of the current coding unit is greater than 0 and the addition of 1 to the ordinate of the current coding unit is equal to a preset parameter, verifying whether the following expression is established, if so, storing the data according to the current coding unit and the motion vector data in the coding unit right above the current coding unit into the motion vector line cache, and writing the abscissa according to the current coding unit into the predicted motion vector sequence number unit; if not, waiting until the following expression is established;
MV index+w is greater than or equal to (y+w+x) +1; wherein, MV index represents the data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit.
Further, the process of judging according to the current abscissa and ordinate of the coding unit further includes:
if the two judging conditions are not satisfied, that is, if the abscissa of the current coding unit is greater than 0 and the ordinate of the current coding unit is added with 1 to be less than a preset parameter, verifying whether the following expression is satisfied:
if the expression is established, storing the data of the current coding unit and the motion vector data in the coding unit right above the current coding unit and the coding unit right above the current coding unit into the motion vector line cache;
if the expression is not established, waiting until the following expression is established;
MV index+w > (y+w+x) +1; wherein, MV index represents the data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit.
To achieve the above technical object, the present disclosure also provides a avs encoder motion vector processing apparatus, comprising:
the mode selection module is used for obtaining a motion vector after the module selection processing of the module selection unit;
a motion vector writing module, configured to write the motion vector into the motion vector line buffer according to a sequence number sequence of a coding unit of the motion vector, and store the sequence number of the motion vector into the predicted motion vector sequence number unit;
and the motion vector feedback processing module is used for reading the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit through the whole pixel prediction unit to complete the process of feeding back the motion vector from the mode decision unit to the whole pixel prediction unit.
Further, the motion vector feedback processing module specifically includes:
the judging sub-module is used for judging according to the current horizontal and vertical coordinates of the coding unit;
and the reading sub-module is used for reading the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit.
Further, the judging submodule is specifically configured to:
judging whether the abscissa of the current coding unit is 0, if so, directly storing the data in the current coding unit into the motion vector line cache, and writing the data into the predicted motion vector sequence number unit according to the abscissa of the current coding unit;
if the abscissa of the current coding unit is greater than 0 and the addition of 1 to the ordinate of the current coding unit is equal to a preset parameter, verifying whether the following expression is established, if so, storing the data according to the current coding unit and the motion vector data in the coding unit right above the current coding unit into the motion vector line cache, and writing the abscissa according to the current coding unit into the predicted motion vector sequence number unit; if not, waiting until the following expression is established;
MV index+w is greater than or equal to (y+w+x) +1; wherein MV index represents data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit;
if the two judging conditions are not satisfied, that is, if the abscissa of the current coding unit is greater than 0 and the ordinate of the current coding unit is added with 1 to be less than a preset parameter, verifying whether the following expression is satisfied:
if the expression is established, storing the data of the current coding unit and the motion vector data in the coding unit right above the current coding unit and the coding unit right above the current coding unit into the motion vector line cache;
if the expression is not established, waiting until the following expression is established;
MV index+w > (y+w+x) +1; wherein, MV index represents the data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit.
To achieve the above technical object, the present disclosure also provides a computer storage medium having stored thereon a computer program for implementing the steps of the avs encoder motion vector processing method described above when the computer program is executed by a processor.
To achieve the above technical purpose, the present disclosure further provides an electronic device, including a memory, a processor, and a computer program stored in the memory and capable of running on the processor, where the processor executes the steps of the avs encoder motion vector processing method.
The beneficial effects of the present disclosure are:
the present disclosure describes how a hardware design describes how MV is passed back from MD to IME, while this design incorporates a pipeline halt and restart mechanism, with which the pipeline design has no impact on the pipeline operation over wide images (wide >192 pixels), and only halts the pipeline at the necessary time over narrow images (wide < = 192 pixels), ensuring efficient operation of the pipeline design.
Drawings
FIG. 1 shows a schematic diagram of the structure of a CU of the present disclosure;
fig. 2 shows a schematic structural diagram of embodiment 1 of the present disclosure;
FIG. 3 shows a schematic flow diagram of embodiment 2 of the present disclosure;
fig. 4 shows a schematic structural view of embodiment 3 of the present disclosure;
fig. 5 shows a schematic structural diagram of embodiment 5 of the present disclosure.
Detailed Description
Hereinafter, embodiments of the present disclosure will be described with reference to the accompanying drawings. It should be understood that the description is only exemplary and is not intended to limit the scope of the present disclosure. In addition, in the following description, descriptions of well-known structures and techniques are omitted so as not to unnecessarily obscure the concepts of the present disclosure.
Various structural schematic diagrams according to embodiments of the present disclosure are shown in the drawings. The figures are not drawn to scale, wherein certain details are exaggerated for clarity of presentation and may have been omitted. The shapes of the various regions, layers and relative sizes, positional relationships between them shown in the drawings are merely exemplary, may in practice deviate due to manufacturing tolerances or technical limitations, and one skilled in the art may additionally design regions/layers having different shapes, sizes, relative positions as actually required.
Concept of CU of image:
one CU is a hardware processing basic unit, and the CU size selected in the AVS2 encoder is 64x64, and other CU size divisions exist in the hardware encoder without affecting the methods and concepts described in this disclosure. For a CU, the disclosure first numbers the CU according to its physical location in the image for ease of description. An image to be encoded is first partitioned into closely adjacent but non-overlapping CUs. The first CU in the upper left corner we call its CU (0, 0), and the CU (0, 1) immediately next to it in the right, the CU (1, 0) in the lower. The numbering convention here employs CUs (line labels, column labels). The division and numbering of the CUs is directly related to the size of the image, and for QCIF images (size 176x 144), the numbering of the CUs is schematically shown in fig. 1.
Embodiment one:
as shown in fig. 2:
the present disclosure provides a avs2 encoder motion vector processing system comprising:
a shared motion vector line buffer for storing the motion vector generated after the mode unit has selected and processed the current coding unit;
a predicted motion vector sequence number unit for storing the sequence number of the processed motion vector;
a mode selection unit for writing and processing data into the shared motion vector line buffer and the predicted motion vector sequence number unit;
the whole pixel prediction unit is used for reading and processing the data in the shared motion vector line cache and the predicted motion vector sequence number unit;
a sub-pixel prediction unit for reading and processing the data processed by the whole pixel prediction unit;
and an arithmetic coding module for arithmetic coding the data processed by the mode selection unit.
Embodiment two:
as shown in fig. 3:
the disclosure also provides a avs encoder motion vector processing method applied to the avs encoder motion vector processing system, the method comprising:
s201: obtaining a motion vector after module selection processing of the module selection unit;
s202: writing the motion vector into the motion vector line cache according to the sequence number of the coding unit of the motion vector, and storing the sequence number of the motion vector into the predicted motion vector sequence number unit;
s203: and reading the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit by the whole pixel prediction unit to complete the process of feeding back the motion vector from the mode decision unit to the whole pixel prediction unit.
Specifically, the step S203 specifically includes:
and judging according to the current abscissa and ordinate of the coding unit so as to read the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit.
Specifically, the process of judging according to the current abscissa and ordinate of the coding unit specifically includes:
if the abscissa of the current coding unit is 0, directly storing the data in the current coding unit into the motion vector line cache, and writing the data into the predicted motion vector sequence number unit according to the abscissa of the current coding unit;
if the abscissa of the current coding unit is greater than 0 and the addition of 1 to the ordinate of the current coding unit is equal to a preset parameter, verifying whether the following expression is established, if so, storing the data according to the current coding unit and the motion vector data in the coding unit right above the current coding unit into the motion vector line cache, and writing the abscissa according to the current coding unit into the predicted motion vector sequence number unit; if not, waiting until the following expression is established;
MV index+w is greater than or equal to (y+w+x) +1; wherein, MV index represents the data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit.
Further, the process of judging according to the current abscissa and ordinate of the coding unit further includes:
if the two judging conditions are not satisfied, that is, if the abscissa of the current coding unit is greater than 0 and the ordinate of the current coding unit is added with 1 to be less than a preset parameter, verifying whether the following expression is satisfied:
if the expression is established, storing the data of the current coding unit and the motion vector data in the coding unit right above the current coding unit and the coding unit right above the current coding unit into the motion vector line cache;
if the expression is not established, waiting until the following expression is established;
MV index+w > (y+w+x) +1; wherein, MV index represents the data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit.
Embodiment III:
as shown in figure 4 of the drawings,
the present disclosure also provides a avs2 encoder motion vector processing apparatus comprising:
a mode selection module 301, configured to obtain a motion vector after the module selection processing of the module selection unit;
a motion vector writing module 302, configured to write the motion vector into the motion vector line buffer according to the sequence number of the coding unit of the motion vector, and store the sequence number of the motion vector into the predicted motion vector sequence number unit;
and the motion vector feedback processing module 303 is configured to complete a process of feeding back the motion vector from the mode decision unit to the whole pixel prediction unit by reading the motion vector in the motion vector line buffer and the sequence number of the motion vector in the predicted motion vector sequence number unit by the whole pixel prediction unit.
The mode selection module 301 is sequentially connected to the motion vector writing module 302 and the motion vector feedback processing module 303.
Specifically, the motion vector feedback processing module 303 specifically includes:
the judging sub-module is used for judging according to the current horizontal and vertical coordinates of the coding unit;
and the reading sub-module is used for reading the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit.
Further, the judging submodule is specifically configured to:
judging whether the abscissa of the current coding unit is 0, if so, directly storing the data in the current coding unit into the motion vector line cache, and writing the data into the predicted motion vector sequence number unit according to the abscissa of the current coding unit;
if the abscissa of the current coding unit is greater than 0 and the addition of 1 to the ordinate of the current coding unit is equal to a preset parameter, verifying whether the following expression is established, if so, storing the data according to the current coding unit and the motion vector data in the coding unit right above the current coding unit into the motion vector line cache, and writing the abscissa according to the current coding unit into the predicted motion vector sequence number unit; if not, waiting until the following expression is established;
MV index+w is greater than or equal to (y+w+x) +1; wherein MV index represents data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit;
if the two judging conditions are not satisfied, that is, if the abscissa of the current coding unit is greater than 0 and the ordinate of the current coding unit is added with 1 to be less than a preset parameter, verifying whether the following expression is satisfied:
if the expression is established, storing the data of the current coding unit and the motion vector data in the coding unit right above the current coding unit and the coding unit right above the current coding unit into the motion vector line cache;
if the expression is not established, waiting until the following expression is established;
MV index+w > (y+w+x) +1; wherein, MV index represents the data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit.
Embodiment four:
the present disclosure can also provide a computer storage medium having stored thereon a computer program for implementing the steps of the avs encoder motion vector processing method described above when the computer program is executed by a processor.
The computer storage media of the present disclosure may be implemented using semiconductor memory, magnetic core memory, drum memory, or magnetic disk memory.
Semiconductor memory devices mainly used for computers mainly include two types, mos and bipolar. The Mos device has high integration level, simple process and slower speed. Bipolar devices have complex processes, high power consumption, low integration, and high speed. After the advent of NMos and CMos, mos memories began to dominate semiconductor memories. NMos is fast, e.g., 1K bit SRAM access time from Intel corporation is 45ns. And the CMos has low power consumption, and the access time of the CMos static memory with 4K bits is 300ns. The semiconductor memories are all Random Access Memories (RAM), i.e. new contents can be read and written randomly during operation. While semiconductor read-only memory (ROM) is randomly readable but not writable during operation and is used to store cured programs and data. ROM is in turn divided into two types, non-rewritable fuse read-only memory-PROM and rewritable read-only memory EPROM.
The magnetic core memory has the characteristics of low cost and high reliability, and has practical use experience of more than 20 years. Core memory has been widely used as main memory before the mid-70 s. Its storage capacity can be up to above 10 bits, and its access time is up to 300ns. The internationally typical core memory capacity is 4 MS-8 MB with access cycles of 1.0-1.5 mus. After the rapid development of semiconductor memory replaces the location of core memory as main memory, core memory can still be applied as mass expansion memory.
A magnetic drum memory, an external memory for magnetic recording. Because of its fast information access speed, it works stably and reliably, and although its capacity is smaller, it is gradually replaced by disk memory, but it is still used as external memory for real-time process control computers and middle and large-sized computers. In order to meet the demands of small-sized and microcomputer, a microminiature magnetic drum has appeared, which has small volume, light weight, high reliability and convenient use.
A magnetic disk memory, an external memory for magnetic recording. It has the advantages of both drum and tape storage, i.e. its storage capacity is greater than that of drum, and its access speed is faster than that of tape storage, and it can be stored off-line, so that magnetic disk is widely used as external memory with large capacity in various computer systems. Magnetic disks are generally classified into hard disks and floppy disk storage.
Hard disk memory is of a wide variety. Structurally, the device is divided into a replaceable type and a fixed type. The replaceable disk platter is replaceable, and the fixed disk platter is fixed. The replaceable and fixed magnetic disks have two types of multi-disc combination and single-disc structure, and can be divided into fixed magnetic head type and movable magnetic head type. The fixed head type magnetic disk has a small capacity, a low recording density, a high access speed, and a high cost. The movable magnetic head type magnetic disk has high recording density (up to 1000-6250 bit/inch) and thus large capacity, but has low access speed compared with the fixed magnetic head magnetic disk. The storage capacity of the disk product may be up to several hundred megabytes with a bit density of 6250 bits per inch and a track density of 475 tracks per inch. The disk group of the disk memory can be replaced, so that the disk memory has large capacity, large capacity and high speed, can store large-capacity information data, and is widely applied to an online information retrieval system and a database management system.
Fifth embodiment:
the present disclosure also provides an electronic device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the steps of the avs encoder motion vector processing method described above when executing the computer program.
Fig. 5 is a schematic diagram of an internal structure of an electronic device in one embodiment. As shown in fig. 5, the electronic device includes a processor, a storage medium, a memory, and a network interface connected by a system bus. The storage medium of the computer device stores an operating system, a database and computer readable instructions, the database can store a control information sequence, and the computer readable instructions, when executed by the processor, can enable the processor to implement a avs2 encoder motion vector processing method. The processor of the electrical device is used to provide computing and control capabilities, supporting the operation of the entire computer device. The memory of the computer device may have stored therein computer readable instructions that, when executed by the processor, cause the processor to perform a avs encoder motion vector processing method. The network interface of the computer device is for communicating with a terminal connection. It will be appreciated by those skilled in the art that the structure shown in FIG. 5 is merely a block diagram of some of the structures associated with the present inventive arrangements and is not limiting of the computer device to which the present inventive arrangements may be applied, and that a particular computer device may include more or fewer components than shown, or may combine some of the components, or have a different arrangement of components.
The electronic device includes, but is not limited to, a smart phone, a computer, a tablet computer, a wearable smart device, an artificial smart device, a mobile power supply, and the like.
The processor may in some embodiments be comprised of integrated circuits, for example, a single packaged integrated circuit, or may be comprised of multiple integrated circuits packaged with the same or different functionality, including one or more central processing units (Central Processing unit, CPU), microprocessors, digital processing chips, graphics processors, a combination of various control chips, and the like. The processor is a Control Unit (Control Unit) of the electronic device, connects various components of the entire electronic device using various interfaces and lines, and executes various functions of the electronic device and processes data by running or executing programs or modules stored in the memory (for example, executing remote data read-write programs, etc.), and calling data stored in the memory.
The bus may be a peripheral component interconnect standard (peripheral component interconnect, PCI) bus or an extended industry standard architecture (extended industry standard architecture, EISA) bus, among others. The bus may be classified as an address bus, a data bus, a control bus, etc. The bus is arranged to enable a connection communication between the memory and at least one processor or the like.
Fig. 5 shows only an electronic device with components, and it will be understood by those skilled in the art that the structure shown in fig. 5 is not limiting of the electronic device and may include fewer or more components than shown, or may combine certain components, or a different arrangement of components.
For example, although not shown, the electronic device may further include a power source (such as a battery) for supplying power to the respective components, and preferably, the power source may be logically connected to the at least one processor through a power management device, so that functions of charge management, discharge management, power consumption management, and the like are implemented through the power management device. The power supply may also include one or more of any of a direct current or alternating current power supply, recharging device, power failure detection circuit, power converter or inverter, power status indicator, etc. The electronic device may further include various sensors, bluetooth modules, wi-Fi modules, etc., which are not described herein.
Further, the electronic device may also include a network interface, optionally, the network interface may include a wired interface and/or a wireless interface (e.g., WI-FI interface, bluetooth interface, etc.), typically used to establish a communication connection between the electronic device and other electronic devices.
Optionally, the electronic device may further comprise a user interface, which may be a Display, an input unit, such as a Keyboard (Keyboard), or a standard wired interface, a wireless interface. Alternatively, in some embodiments, the display may be an LED display, a liquid crystal display, a touch-sensitive liquid crystal display, an OLED (Organic Light-Emitting Diode) touch, or the like. The display may also be referred to as a display screen or display unit, as appropriate, for displaying information processed in the electronic device and for displaying a visual user interface.
Further, the computer-usable storage medium may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program required for at least one function, and the like; the storage data area may store data created from the use of blockchain nodes, and the like.
In the several embodiments provided in the present application, it should be understood that the disclosed apparatus, device and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the modules is merely a logical function division, and there may be other manners of division when actually implemented.
The modules described as separate components may or may not be physically separate, and components shown as modules may or may not be physical units, may be located in one place, or may be distributed over multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
In addition, each functional module in the embodiments of the present application may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units can be realized in a form of hardware or a form of hardware and a form of software functional modules.
The embodiments of the present disclosure are described above. However, these examples are for illustrative purposes only and are not intended to limit the scope of the present disclosure. The scope of the disclosure is defined by the appended claims and equivalents thereof. Various alternatives and modifications can be made by those skilled in the art without departing from the scope of the disclosure, and such alternatives and modifications are intended to fall within the scope of the disclosure.

Claims (4)

1. A avs encoder motion vector processing method, which is applied to a avs encoder motion vector processing system as follows:
a shared motion vector line buffer for storing the motion vector generated after the mode unit has selected and processed the current coding unit;
a predicted motion vector sequence number unit for storing the sequence number of the processed motion vector;
a mode selection unit for writing and processing data into the shared motion vector line buffer and the predicted motion vector sequence number unit;
the whole pixel prediction unit is used for reading and processing the data in the shared motion vector line cache and the predicted motion vector sequence number unit;
a sub-pixel prediction unit for reading and processing the data processed by the whole pixel prediction unit;
and an arithmetic coding module for arithmetic coding the data processed by the mode selection unit, characterized in that the method comprises:
obtaining a motion vector after the module selection processing of the mode selection unit;
writing the motion vector into the motion vector line cache according to the sequence number of the coding unit of the motion vector, and storing the sequence number of the motion vector into the predicted motion vector sequence number unit;
reading the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit by the whole pixel prediction unit to complete the process of feeding back the motion vector from the mode decision unit to the whole pixel prediction unit;
judging according to the current abscissa and ordinate of the coding unit so as to read the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit;
the process for judging according to the current abscissa and ordinate of the coding unit specifically comprises the following steps:
if the abscissa of the current coding unit is 0, directly storing the data in the current coding unit into the motion vector line cache, and writing the data into the predicted motion vector sequence number unit according to the abscissa of the current coding unit;
if the abscissa of the current coding unit is greater than 0 and the ordinate of the current coding unit plus 1 is equal to a preset parameter, verifying whether the following first expression is established:
MV index+w is greater than or equal to (y+w+x) +1; wherein MV index represents data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit;
if so, storing the data according to the current coding unit and the motion vector data in the coding unit right above the current coding unit into the motion vector line cache, and writing the data according to the abscissa and the ordinate of the current coding unit into the predicted motion vector sequence number unit; if not, waiting until the first expression is established;
the process of judging according to the current abscissa and ordinate of the coding unit further comprises the following steps:
if the two judging conditions are not satisfied, that is, if the abscissa of the current coding unit is greater than 0 and the ordinate of the current coding unit is added with 1 to be less than a preset parameter, verifying whether the following second expression is established:
MV index+w > (y+w+x) +1; wherein MV index represents data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit;
if the second expression is true, storing the data of the current coding unit and the motion vector data in the coding unit right above the current coding unit and the coding unit right above the current coding unit into the motion vector line cache;
if the second expression is not established, waiting until the second expression is established.
2. A avs encoder motion vector processing device, which is applied to a avs encoder motion vector processing system as follows:
a shared motion vector line buffer for storing the motion vector generated after the mode unit has selected and processed the current coding unit;
a predicted motion vector sequence number unit for storing the sequence number of the processed motion vector;
a mode selection unit for writing and processing data into the shared motion vector line buffer and the predicted motion vector sequence number unit;
the whole pixel prediction unit is used for reading and processing the data in the shared motion vector line cache and the predicted motion vector sequence number unit;
a sub-pixel prediction unit for reading and processing the data processed by the whole pixel prediction unit;
and an arithmetic coding module for arithmetic coding the data processed by the mode selection unit, wherein the avs encoder motion vector processing device comprises:
the mode selection module is used for obtaining a motion vector after the module selection processing of the mode selection unit;
a motion vector writing module, configured to write the motion vector into the motion vector line buffer according to a sequence number sequence of a coding unit of the motion vector, and store the sequence number of the motion vector into the predicted motion vector sequence number unit;
a motion vector feedback processing module, configured to read, by the whole pixel prediction unit, the motion vector in the motion vector line buffer and a sequence number of the motion vector in the predicted motion vector sequence number unit, to complete a process of feeding back the motion vector from the mode decision unit to the whole pixel prediction unit;
the motion vector feedback processing module specifically comprises:
the judging sub-module is used for judging according to the current horizontal and vertical coordinates of the coding unit;
the judging submodule is specifically used for:
judging whether the abscissa of the current coding unit is 0, if so, directly storing the data in the current coding unit into the motion vector line cache, and writing the data into the predicted motion vector sequence number unit according to the abscissa of the current coding unit;
if the abscissa of the current coding unit is greater than 0 and the ordinate of the current coding unit plus 1 is equal to a preset parameter, verifying whether the following first expression is established:
MV index+w is greater than or equal to (y+w+x) +1; wherein MV index represents data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit;
if so, storing the data according to the current coding unit and the motion vector data in the coding unit right above the current coding unit into the motion vector line cache, and writing the data according to the abscissa and the ordinate of the current coding unit into the predicted motion vector sequence number unit; if not, waiting until the first expression is established;
if the two judging conditions are not satisfied, that is, if the abscissa of the current coding unit is greater than 0 and the ordinate of the current coding unit is added with 1 to be less than a preset parameter, verifying whether the following second expression is established:
MV index+w > (y+w+x) +1; wherein MV index represents data in the predicted motion vector sequence number unit, w is a preset parameter, x is the abscissa of the current coding unit, and y is the ordinate of the current coding unit;
if the second expression is true, storing the data of the current coding unit and the motion vector data in the coding unit right above the current coding unit and the coding unit right above the current coding unit into the motion vector line cache;
if the second expression is not established, waiting until the second expression is established;
and the reading sub-module is used for reading the motion vector in the motion vector line cache and the sequence number of the motion vector in the predicted motion vector sequence number unit.
3. An electronic device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the steps corresponding to the avs encoder motion vector processing method of claim 1 when the computer program is executed by the processor.
4. A computer storage medium having stored thereon computer program instructions for performing the steps corresponding to the avs encoder motion vector processing method of claim 1 when executed by a processor.
CN202110089571.7A 2021-01-22 2021-01-22 avs2 encoder motion vector processing system, method, apparatus, device and medium Active CN112911309B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110089571.7A CN112911309B (en) 2021-01-22 2021-01-22 avs2 encoder motion vector processing system, method, apparatus, device and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110089571.7A CN112911309B (en) 2021-01-22 2021-01-22 avs2 encoder motion vector processing system, method, apparatus, device and medium

Publications (2)

Publication Number Publication Date
CN112911309A CN112911309A (en) 2021-06-04
CN112911309B true CN112911309B (en) 2023-11-17

Family

ID=76117666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110089571.7A Active CN112911309B (en) 2021-01-22 2021-01-22 avs2 encoder motion vector processing system, method, apparatus, device and medium

Country Status (1)

Country Link
CN (1) CN112911309B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685497A (en) * 2012-05-29 2012-09-19 北京大学 Rapid interframe mode selection method and device for AVS (Advanced Audio Video Coding Standard) coder
CN103327330A (en) * 2013-06-14 2013-09-25 中国计量学院 Video coding algorithm optimization method based on serial algorithm parameter value selection

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060002474A1 (en) * 2004-06-26 2006-01-05 Oscar Chi-Lim Au Efficient multi-block motion estimation for video compression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685497A (en) * 2012-05-29 2012-09-19 北京大学 Rapid interframe mode selection method and device for AVS (Advanced Audio Video Coding Standard) coder
CN103327330A (en) * 2013-06-14 2013-09-25 中国计量学院 Video coding algorithm optimization method based on serial algorithm parameter value selection

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于AVS2的高效能熵编码算法及硬件结构的设计与优化;严韫瑶;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20181231(第12期);全文 *

Also Published As

Publication number Publication date
CN112911309A (en) 2021-06-04

Similar Documents

Publication Publication Date Title
US9448663B2 (en) Parallel touch point detection using processor graphics
CN113569508B (en) Database model construction method and device for data indexing and access based on ID
US11635904B2 (en) Matrix storage method, matrix access method, apparatus and electronic device
US8688946B2 (en) Selecting an auxiliary storage medium for writing data of real storage pages
CN106055274A (en) Data storage method, data reading method and electronic device
CN111209116A (en) Method and device for distributing video memory space and computer storage medium
CN1896971B (en) Operating system supplemental disk caching system and method
KR20170065085A (en) Method and apparuts for system resource managemnet
CN112911309B (en) avs2 encoder motion vector processing system, method, apparatus, device and medium
Wang et al. VLSI implementation of HEVC motion compensation with distance biased direct cache mapping for 8K UHDTV applications
CN109089120B (en) Analysis-aided encoding
CN112911285B (en) Hardware encoder intra mode decision circuit, method, apparatus, device and medium
CN115878824A (en) Image retrieval system, method and device
CN113971225A (en) Image retrieval system, method and device
CN113473135B (en) Intra-frame prediction method, device and medium for nonlinear texture
CN113806539B (en) Text data enhancement system, method, equipment and medium
CN115827552A (en) Computing task processing method and device and storage medium
CN113866638A (en) Battery parameter inference method, device, equipment and medium
CN112685189B (en) Method, device, equipment and medium for realizing data processing
CN114201729A (en) Method, device and equipment for selecting matrix operation mode and storage medium
CN112686756B (en) Funds channel switching method, device, equipment and medium
CN117893753A (en) Interactive human body analysis method, system, medium and equipment based on correction
Moshnyaga Reducing energy dissipation of frame memory by adaptive bit-width compression
CN117237697B (en) Small sample image detection method, system, medium and equipment
CN115421712A (en) Software development method, device, equipment and medium based on component model

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant