[go: up one dir, main page]

CN114666593A - Method, Apparatus, Device and Medium for Determining Starting Point Based on Encoded Cache Information - Google Patents

Method, Apparatus, Device and Medium for Determining Starting Point Based on Encoded Cache Information Download PDF

Info

Publication number
CN114666593A
CN114666593A CN202210316015.3A CN202210316015A CN114666593A CN 114666593 A CN114666593 A CN 114666593A CN 202210316015 A CN202210316015 A CN 202210316015A CN 114666593 A CN114666593 A CN 114666593A
Authority
CN
China
Prior art keywords
block vector
coding unit
coding
block
encoding
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.)
Granted
Application number
CN202210316015.3A
Other languages
Chinese (zh)
Other versions
CN114666593B (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202210316015.3A priority Critical patent/CN114666593B/en
Publication of CN114666593A publication Critical patent/CN114666593A/en
Application granted granted Critical
Publication of CN114666593B publication Critical patent/CN114666593B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/103Selection of coding mode or of prediction mode
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

The invention discloses a method, a device, equipment and a medium for determining a starting point based on coding cache information, which are used for acquiring first coding cache information of a source coding unit of a current coding unit, acquiring second coding cache information of an adjacent coding unit of the current coding unit, and generating a temporary block vector list according to the first coding cache information and/or the second coding cache information, wherein the first coding cache information comprises a plurality of first block vectors searched by the source coding unit in a coding process and the second coding cache information comprises a second block vector corresponding to a first reference block with the minimum rate distortion cost of the adjacent coding unit, so that when the searching starting point of the current coding unit is determined according to the temporary block vector list, more references can be provided, and a better searching starting point can be determined to improve the coding effect, the invention can be widely applied to the technical field of coding.

Description

基于编码缓存信息的起始点确定方法、装置、设备及介质Method, Apparatus, Device and Medium for Determining Starting Point Based on Coded Cache Information

技术领域technical field

本发明涉及编码领域,尤其是一种基于编码缓存信息的起始点确定方法、装置、设备及介质。The present invention relates to the field of coding, in particular to a method, apparatus, device and medium for determining a starting point based on coding buffer information.

背景技术Background technique

视频中的每帧图像是划分成小块的形式,分别对其进行编码的,这些小块又被称作编码单元(CU,coding unit)或编码块(CB,coding block),编码单元在尝试帧间预测模式或帧内块复制模式(Intra Block Copy,IBC模式)进行编码时,会采用运动搜索的方式在空间搜索与当前编码单元最相似的参考块,如果当前编码单元(CU,coding unit)相邻的已编码区域内存在使用帧内块复制模式进行编码的编码单元,那么它将使用该相邻编码单元的参考块的位置作为搜索起始点,然后开始块匹配搜索最终确定最优的块矢量进行编码,因此可以看出在运动搜索时,搜索起始点的选取会对编码器的编码性能造成一定的影响,会影响编码效果。Each frame of image in the video is divided into small blocks, which are encoded separately. These small blocks are also called coding units (CU, coding units) or coding blocks (CB, coding blocks). The coding unit is trying to When encoding in the inter prediction mode or the intra block copy mode (Intra Block Copy, IBC mode), the motion search method is used to search for the reference block most similar to the current coding unit in space. If the current coding unit (CU, coding unit) ) There is a coding unit coded using the intra-block copy mode in the adjacent coded area, then it will use the position of the reference block of the adjacent coding unit as the search starting point, and then start the block matching search to finally determine the optimal Therefore, it can be seen that during motion search, the selection of the search starting point will have a certain impact on the coding performance of the encoder, which will affect the coding effect.

发明内容SUMMARY OF THE INVENTION

有鉴于此,为了解决上述技术问题,本发明的目的是提供提高编码效果的一种基于编码缓存信息的起始点确定方法、装置、设备及介质。In view of this, in order to solve the above-mentioned technical problems, the purpose of the present invention is to provide a method, apparatus, device and medium for determining the starting point based on the encoding buffer information, which improves the encoding effect.

本发明实施例采用的技术方案是:The technical solution adopted in the embodiment of the present invention is:

基于编码缓存信息的起始点确定方法,包括:The starting point determination method based on the encoded buffer information, including:

获取当前编码单元的源编码单元的第一编码缓存信息;所述源编码单元的编码顺序早于所述当前编码单元,所述第一编码缓存信息包括所述源编码单元在编码过程中所搜索的若干个第一块矢量;Obtain the first encoding buffer information of the source encoding unit of the current encoding unit; the encoding order of the source encoding unit is earlier than the current encoding unit, and the first encoding buffer information includes the source encoding unit searched in the encoding process Several first block vectors of ;

获取所述当前编码单元的相邻编码单元的第二编码缓存信息;所述第二编码缓存信息包括与所述相邻编码单元的率失真代价最小的第一参考块对应的第二块矢量;Acquiring second encoding buffer information of adjacent encoding units of the current encoding unit; the second encoding buffer information includes a second block vector corresponding to the first reference block with the smallest rate-distortion cost of the adjacent encoding unit;

根据所述第一编码缓存信息和/或所述第二编码缓存信息生成临时块矢量列表;generating a temporary block vector list according to the first encoding buffer information and/or the second encoding buffer information;

根据所述临时块矢量列表确定所述当前编码单元的搜索起始点。A search start point of the current coding unit is determined according to the temporary block vector list.

进一步,所述获取当前编码单元的源编码单元的第一编码缓存信息,包括:Further, the obtaining the first encoding buffer information of the source encoding unit of the current encoding unit includes:

当所述源编码单元为父编码单元,获取所述父编码单元的第一缓存块矢量列表;所述第一缓存块矢量列表包括若干第一子块矢量;When the source coding unit is a parent coding unit, obtain a first buffer block vector list of the parent coding unit; the first buffer block vector list includes several first sub-block vectors;

或者,or,

当所述源编码单元为相邻层编码单元,获取所述相邻层编码单元的位置信息以及尺寸信息,并根据所述位置信息以及所述尺寸信息查找第二缓存块矢量列表;所述第二缓存块矢量列表包括若干第二子块矢量;When the source coding unit is an adjacent layer coding unit, the position information and size information of the adjacent layer coding unit are obtained, and the second cache block vector list is searched according to the position information and the size information; The second cache block vector list includes several second sub-block vectors;

所述第一块矢量包括所述第一子块矢量以及所述第二子块矢量,所述相邻层编码单元以及所述当前编码单元通过对所述父编码单元进行划分得到,所述相邻层编码单元通过所述当前编码单元划分得到或者所述当前编码单元通过所述相邻层编码单元划分得到。The first block vector includes the first sub-block vector and the second sub-block vector, the adjacent layer coding unit and the current coding unit are obtained by dividing the parent coding unit, the phase The adjacent layer coding unit is obtained by dividing the current coding unit or the current coding unit is obtained by dividing the adjacent layer coding unit.

进一步,所述根据所述位置信息以及所述尺寸信息查找第二缓存块矢量列表,包括:Further, the searching for the second cache block vector list according to the position information and the size information includes:

根据所述位置信息以及所述尺寸信息计算得到第一哈希键值并获取哈希表;所述哈希表中包括若干历史哈希键值以及每一所述历史哈希键值对应的历史缓存块矢量列表,所述历史哈希键值根据不同的相邻层编码单元的位置信息以及尺寸信息计算得到,所述历史缓存块矢量列表包括不同的相邻层编码单元在编码过程中所搜索的历史块矢量;Calculate the first hash key value according to the location information and the size information and obtain a hash table; the hash table includes several historical hash key values and the history corresponding to each historical hash key value A cache block vector list, the historical hash key value is calculated according to the position information and size information of different adjacent layer coding units, and the historical cache block vector list includes different adjacent layer coding units searched in the encoding process The history block vector of;

将与所述第一哈希键值相等的历史哈希键值所对应的历史缓存块矢量列表作为第二缓存块矢量列表。The historical cache block vector list corresponding to the historical hash key value equal to the first hash key value is used as the second cache block vector list.

进一步,所述方法还包括:Further, the method also includes:

根据所述搜索起始点进行第二参考块的搜索,得到若干所述第二参考块对应的第一候选块矢量;According to the search starting point, a second reference block is searched to obtain a number of first candidate block vectors corresponding to the second reference blocks;

根据率失真代价最小的第一候选块矢量以及所述当前编码单元完成编码,获取所述当前编码单元新的位置信息以及新的尺寸信息,并根据所述新的位置信息以及新的尺寸信息计算第二哈希键值,将所述第二哈希键值以及所有所述第一候选块矢量保存至所述哈希表。Complete encoding according to the first candidate block vector with the smallest rate-distortion cost and the current coding unit, acquire new position information and new size information of the current coding unit, and calculate according to the new position information and new size information For the second hash key, the second hash key and all the first candidate block vectors are stored in the hash table.

进一步,所述方法还包括:Further, the method also includes:

根据所述搜索起始点进行第三参考块的搜索,得到若干所述第三参考块对应的第二候选块矢量;According to the search starting point, a third reference block is searched to obtain a number of second candidate block vectors corresponding to the third reference blocks;

根据率失真代价最小的第二候选块矢量以及当前编码单元完成编码,并将所有所述第二候选块矢量进行保存。The encoding is completed according to the second candidate block vector with the smallest rate-distortion cost and the current coding unit, and all the second candidate block vectors are stored.

进一步,所述根据所述第一编码缓存信息和/或所述第二编码缓存信息生成临时块矢量列表,包括:Further, generating a temporary block vector list according to the first encoding buffer information and/or the second encoding buffer information includes:

确定所述相邻编码单元的最优编码模式;determining the optimal coding mode of the adjacent coding unit;

当所述最优编码模式为帧内块复制模式,根据所述第一编码缓存信息和所述第二编码缓存信息生成临时块矢量列表,否则根据所述第一编码缓存信息生成临时块矢量列表。When the optimal encoding mode is the intra-block copy mode, a temporary block vector list is generated according to the first encoding buffer information and the second encoding buffer information, otherwise a temporary block vector list is generated according to the first encoding buffer information .

进一步,所述根据所述临时块矢量列表确定所述当前编码单元的搜索起始点,包括:Further, the determining the search starting point of the current coding unit according to the temporary block vector list includes:

当所述临时块矢量列表包括第一块矢量以及所述第二块矢量,计算所有所述第一块矢量以及所述第二块矢量对应的率失真代价,将最小的率失真代价对应的第一块矢量或第二块矢量作为目标块矢量,根据所述目标块矢量确定所述当前编码单元的搜索起始点;When the temporary block vector list includes the first block vector and the second block vector, the rate-distortion costs corresponding to all the first block vectors and the second block vector are calculated, and the first block vector corresponding to the smallest rate-distortion cost is calculated. A block vector or a second block vector is used as a target block vector, and the search start point of the current coding unit is determined according to the target block vector;

或者,当所述临时块矢量列表包括第一块矢量,计算所有所述第一块矢量对应的率失真代价,将最小的率失真代价对应的第一块矢量作为目标块矢量,根据所述目标块矢量确定所述当前编码单元的搜索起始点。Or, when the temporary block vector list includes the first block vector, calculate the rate-distortion costs corresponding to all the first block vectors, and use the first block vector corresponding to the smallest rate-distortion cost as the target block vector, according to the target block vector. The block vector determines the search start point of the current coding unit.

本发明实施例还提供一种基于编码缓存信息的起始点确定装置,包括:An embodiment of the present invention also provides a device for determining a starting point based on encoded buffer information, including:

第一获取模块,用于获取当前编码单元的源编码单元的第一编码缓存信息;所述源编码单元的编码顺序早于所述当前编码单元,所述第一编码缓存信息包括所述源编码单元在编码过程中所搜索的若干个第一块矢量;a first obtaining module, configured to obtain first encoding buffer information of the source encoding unit of the current encoding unit; the encoding order of the source encoding unit is earlier than the current encoding unit, and the first encoding buffer information includes the source encoding Several first block vectors searched by the unit in the encoding process;

第二获取模块,用于获取所述当前编码单元的相邻编码单元的第二编码缓存信息;所述第二编码缓存信息包括与所述相邻编码单元的率失真代价最小的第一参考块对应的第二块矢量;a second obtaining module, configured to obtain second coding buffer information of adjacent coding units of the current coding unit; the second coding buffer information includes a first reference block with the smallest rate-distortion cost of the adjacent coding unit the corresponding second block vector;

生成模块,用于根据所述第一编码缓存信息和/或所述第二编码缓存信息生成临时块矢量列表;a generating module, configured to generate a temporary block vector list according to the first encoding buffer information and/or the second encoding buffer information;

确定模块,用于根据所述临时块矢量列表确定所述当前编码单元的搜索起始点。A determining module, configured to determine a search start point of the current coding unit according to the temporary block vector list.

本发明实施例还提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现所述方法。An embodiment of the present invention further provides an electronic device, the electronic device includes a processor and a memory, and the memory stores at least one instruction, at least a piece of program, a code set or an instruction set, the at least one instruction, the at least one A program, the code set or the instruction set is loaded and executed by the processor to implement the method.

本发明实施例还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现所述方法。An embodiment of the present invention further provides a computer-readable storage medium, where at least one instruction, at least one piece of program, code set or instruction set is stored in the storage medium, the at least one instruction, the at least one piece of program, the code A set or set of instructions is loaded and executed by a processor to implement the method.

本发明的有益效果是:通过获取当前编码单元的源编码单元的第一编码缓存信息,获取所述当前编码单元的相邻编码单元的第二编码缓存信息,根据所述第一编码缓存信息和/或所述第二编码缓存信息生成临时块矢量列表,而所述第一编码缓存信息包括所述源编码单元在编码过程中所搜索的若干个第一块矢量以及第二编码缓存信息包括与所述相邻编码单元的率失真代价最小的第一参考块对应的第二块矢量,因此在根据所述临时块矢量列表确定所述当前编码单元的搜索起始点时,能够提供更多的参考,从而有利于确定一个更优的搜索起始点以提高编码效果。The beneficial effects of the present invention are: by acquiring the first encoding buffer information of the source encoding unit of the current encoding unit, and acquiring the second encoding buffer information of the adjacent encoding units of the current encoding unit, according to the first encoding buffer information and /or the second encoding buffer information generates a temporary block vector list, and the first encoding buffer information includes several first block vectors searched by the source encoding unit in the encoding process, and the second encoding buffer information includes and The second block vector corresponding to the first reference block with the smallest rate-distortion cost of the adjacent coding unit, so when determining the search start point of the current coding unit according to the temporary block vector list, more references can be provided , which helps to determine a better search starting point to improve the coding effect.

附图说明Description of drawings

图1为本发明基于编码缓存信息的起始点确定方法的步骤流程示意图;1 is a schematic flowchart of the steps of a method for determining a starting point based on encoded buffer information according to the present invention;

图2为本发明具体实施例当前编码单元与源编码单元的示意图;2 is a schematic diagram of a current coding unit and a source coding unit according to a specific embodiment of the present invention;

图3为本发明具体实施例哈希表的示意图。FIG. 3 is a schematic diagram of a hash table according to a specific embodiment of the present invention.

具体实施方式Detailed ways

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。In order to make those skilled in the art better understand the solutions of the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only The embodiments are part of the present application, but not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work shall fall within the scope of protection of the present application.

本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。The terms "first", "second", "third" and "fourth" in the description and claims of the present application and the drawings are used to distinguish different objects, rather than to describe a specific order . Furthermore, the terms "comprising" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product or device comprising a series of steps or units is not limited to the listed steps or units, but optionally also includes unlisted steps or units, or optionally also includes For other steps or units inherent to these processes, methods, products or devices.

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。Reference herein to an "embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the present application. The appearances of the phrase in various places in the specification are not necessarily all referring to the same embodiment, nor a separate or alternative embodiment that is mutually exclusive of other embodiments. It is explicitly and implicitly understood by those skilled in the art that the embodiments described herein may be combined with other embodiments.

如图1所示,本发明实施例提供一种基于编码缓存信息的起始点确定方法,包括步骤S100-S400:As shown in FIG. 1 , an embodiment of the present invention provides a method for determining a starting point based on encoding buffer information, including steps S100-S400:

S100、获取当前编码单元的源编码单元的第一编码缓存信息。S100. Acquire first encoding buffer information of the source encoding unit of the current encoding unit.

本发明实施例中,源编码单元的编码顺序早于当前编码单元;可选地,源编码单元可以为父编码单元或者相邻层编码单元,且父编码单元或者相邻层编码单元所采用的编码模式均为帧内块复制模式;一些实施例中,源编码单元还可以为父编码单元的父编码单元。需要说明的是,相邻层编码单元以及当前编码单元通过对父编码单元进行划分得到,相邻层编码单元通过当前编码单元划分得到或者当前编码单元通过相邻层编码单元划分得到。例如如图2所示,具有尺寸最大的编码单元A,通过划分方式(包括但不限于二叉树、三叉树和四叉树等,图2以四叉树为例)将编码单元A划分为四个编码单元B,将编码单元B划分为四个编码单元C,将编码单元C继续划分为四个编码单元D(未图示),那么假设当前编码单元为编码单元C,而编码单元A则为编码单元B、C、D的父编码单元且父编码单元编码顺序早于编码单元B、C、D,而由于实际编码过程中,根据编码器的递归划分与其遍历顺序,可能存在编码单元B、D的编码顺序早于编码单元C的情况,因此编码单元B、D均可能为相邻层编码单元。可以理解的是,当编码单元B为当前编码单元时,C、D可能为相邻层编码单元。In this embodiment of the present invention, the coding order of the source coding unit is earlier than the current coding unit; optionally, the source coding unit may be a parent coding unit or an adjacent layer coding unit, and the parent coding unit or the adjacent layer coding unit adopts the The coding modes are all intra-block copy modes; in some embodiments, the source coding unit may also be the parent coding unit of the parent coding unit. It should be noted that the adjacent layer coding unit and the current coding unit are obtained by dividing the parent coding unit, the adjacent layer coding unit is obtained by dividing the current coding unit, or the current coding unit is obtained by dividing the adjacent layer coding unit. For example, as shown in FIG. 2 , the coding unit A with the largest size is divided into four coding units A by a division method (including but not limited to binary tree, ternary tree and quad tree, etc., and FIG. 2 uses quad tree as an example) Coding unit B, the coding unit B is divided into four coding units C, and the coding unit C is further divided into four coding units D (not shown), then it is assumed that the current coding unit is the coding unit C, and the coding unit A is The parent coding units of coding units B, C, and D and the coding order of the parent coding units are earlier than coding units B, C, and D. In the actual coding process, according to the recursive division of the encoder and its traversal order, there may be coding units B, C, and D. The coding order of D is earlier than that of coding unit C, so coding units B and D may both be adjacent layer coding units. It can be understood that when coding unit B is the current coding unit, C and D may be adjacent layer coding units.

本发明实施例中,第一编码缓存信息包括源编码单元在编码过程中所搜索的若干个第一块矢量(第一BV(block vector)),即源编码单元在编码过程中进行空间搜索时所搜索到的空间块(参考块)所对应的块矢量,在源编码单元进行空间搜索时进行保存,以供后续编码时利用,从而更有利于为后续空间搜索时提供参考以确定一个更优的搜索起始点。In this embodiment of the present invention, the first encoding buffer information includes several first block vectors (first BV (block vector)) searched by the source encoding unit in the encoding process, that is, when the source encoding unit performs a spatial search in the encoding process The block vector corresponding to the searched spatial block (reference block) is saved when the source coding unit performs spatial search for use in subsequent coding, which is more conducive to providing a reference for subsequent spatial searching to determine a better one. search starting point.

可选地,当不存在父编码单元则跳过步骤S100。Optionally, step S100 is skipped when there is no parent coding unit.

可选地,步骤S100可以包括步骤S110或者S120:Optionally, step S100 may include step S110 or S120:

S110、当源编码单元为父编码单元,获取父编码单元的第一缓存块矢量列表。S110. When the source coding unit is the parent coding unit, obtain a first cache block vector list of the parent coding unit.

可选地,当源编码单元为父编码单元,此时在源编码单元进行空间搜索时得到的空间块(参考块)所对应的块矢量保存至第一缓存块矢量列表中,并将第一缓存块矢量列表中保存的块矢量记为第一子块矢量。Optionally, when the source coding unit is a parent coding unit, the block vector corresponding to the spatial block (reference block) obtained when the source coding unit performs a spatial search is stored in the first cache block vector list, and the first The block vector stored in the cached block vector list is denoted as the first sub-block vector.

S120、当源编码单元为相邻层编码单元,获取相邻层编码单元的位置信息以及尺寸信息,并根据位置信息以及尺寸信息查找第二缓存块矢量列表。S120. When the source coding unit is an adjacent layer coding unit, obtain the position information and size information of the adjacent layer coding unit, and search the second cache block vector list according to the position information and the size information.

本发明实施例中,第二缓存块矢量列表包括若干第二子块矢量。可选地,步骤S120中的根据位置信息以及尺寸信息查找第二缓存块矢量列表包括步骤S1201-S1202:In this embodiment of the present invention, the second cache block vector list includes several second sub-block vectors. Optionally, searching the second cache block vector list according to the position information and size information in step S120 includes steps S1201-S1202:

S1201、根据位置信息以及尺寸信息计算得到第一哈希键值并获取哈希表。S1201. Calculate and obtain a first hash key value according to the location information and size information, and obtain a hash table.

本发明实施例中,位置信息可以用横坐标x与纵坐标y组成,尺寸信息可以用长度w与高度h组成,根据相邻层编码单元的位置信息以及尺寸信息可以计算得到第一哈希键值(x,y,w,h)。可选地,第一哈希键值的计算方式包括但不限于md5和CRC。In this embodiment of the present invention, the position information may be composed of abscissa x and ordinate y, and the size information may be composed of length w and height h, and the first hash key may be calculated according to the position information and size information of the adjacent layer coding units value(x,y,w,h). Optionally, the calculation method of the first hash key value includes but is not limited to md5 and CRC.

需要说明的是,哈希表中包括若干历史哈希键值以及每一历史哈希键值对应的历史缓存块矢量列表,历史哈希键值根据不同的相邻层编码单元的位置信息以及尺寸信息计算得到,历史缓存块矢量列表包括不同的相邻层编码单元在编码过程中所搜索的历史块矢量。由于编码顺序早于当前编码单元的不同的相邻层编码单元可能具有多个,而不同的相邻层编码单元均具有对应的一个历史缓存块矢量列表,在相邻层编码单元编码过程中进行空间搜索时所搜索到的若干个空间块(参考块)所对应的若干个块矢量记为历史块矢量并构成历史缓存块矢量列表,而此时相邻层编码单元的位置信息以及尺寸信息所确定的哈希键值记为历史哈希键值并对应一个历史缓存块矢量列表,如图3所示,(xn,yn,wn,hn)为历史哈希键值,n代表序号,(xn,yn,wn,hn)具有对应若干个BV(即历史块矢量)。可选地,在生成哈希表时将重复的历史块矢量删除而仅保留一个。It should be noted that the hash table includes several historical hash key values and a list of historical cache block vectors corresponding to each historical hash key value. The historical hash key value is based on the location information and size of different adjacent layer coding units. According to the information calculation, the list of historical cache block vectors includes the historical block vectors searched by different adjacent layer coding units in the coding process. Since there may be multiple different adjacent layer coding units whose coding order is earlier than that of the current coding unit, and different adjacent layer coding units each have a corresponding historical cache block vector list, the coding process of adjacent layer coding units is performed during the coding process of adjacent layer coding units. Several block vectors corresponding to several spatial blocks (reference blocks) searched during spatial search are recorded as historical block vectors and form a list of historical cache block vectors. The determined hash key value is recorded as the historical hash key value and corresponds to a historical cache block vector list, as shown in Figure 3, (x n , y n , w n , h n ) is the historical hash key value, n represents Sequence number, (x n , y n , wn , h n ) has a corresponding number of BVs (ie, history block vectors). Optionally, duplicate historical block vectors are removed and only one remains when the hash table is generated.

例如,假设当前编码单元对应的键值为(x,y,w,h),则根据划分方式可能具有多种不同的相邻层编码单元的历史哈希键值,如:1)当w=h时,可能有:For example, assuming that the key value corresponding to the current coding unit is (x, y, w, h), there may be different historical hash key values of the coding unit of adjacent layers according to the division method, such as: 1) When w = h, there may be:

(x,y,2w,2h),(x-w,y,2w,2h),(x,y-h,2w,2h),(x-w,y-h,2w,2h),(x,y,2w,h),(x-w,y,2w,h),(x,y,w,2h),(x,y-h,w,2h),(x,y,4w,h),(x-w,y,2w,h),(x-3w,y,4w,h),(x,y,w,4h),(x,y-h,w,2h),(x,y-3h,w,4h)(x,y,2w,2h),(x-w,y,2w,2h),(x,y-h,2w,2h),(x-w,y-h,2w,2h),(x,y,2w,h), (x-w,y,2w,h),(x,y,w,2h),(x,y-h,w,2h),(x,y,4w,h),(x-w,y,2w,h), (x-3w,y,4w,h),(x,y,w,4h),(x,y-h,w,2h),(x,y-3h,w,4h)

2)当w≠h时,可能有:2) When w≠h, there may be:

(x,y,2w,h),(x-w,y,2w,h),(x,y,w,2h),(x,y-h,w,2h),(x,y,4w,h),(x-,y,2w,h),(x-3w,y,4w,h),(x,y,w,4h),(x,y-h,w,2h),(x,y-3h,w,4h)。(x,y,2w,h),(x-w,y,2w,h),(x,y,w,2h),(x,y-h,w,2h),(x,y,4w,h), (x-,y,2w,h),(x-3w,y,4w,h),(x,y,w,4h),(x,y-h,w,2h),(x,y-3h, w,4h).

S1202、将与第一哈希键值相等的历史哈希键值所对应的历史缓存块矢量列表作为第二缓存块矢量列表。S1202. Use the historical cache block vector list corresponding to the historical hash key value equal to the first hash key value as the second cache block vector list.

可选地,将与第一哈希键值相等的历史哈希键值所对应的历史缓存块矢量列表作为第二缓存块矢量列表,此时历史缓存块矢量列表中的历史块矢量即为第二子块矢量,即第一块矢量可以包括第一子块矢量以及第二子块矢量。Optionally, the historical cache block vector list corresponding to the historical hash key value equal to the first hash key value is used as the second cache block vector list, and the historical block vector in the historical cache block vector list is the first cache block vector list. Two sub-block vectors, that is, the first block vector may include the first sub-block vector and the second sub-block vector.

S200、获取当前编码单元的相邻编码单元的第二编码缓存信息。S200. Acquire second coding buffer information of adjacent coding units of the current coding unit.

可选地,第二编码缓存信息包括与相邻编码单元的率失真代价最小的第一参考块对应的第二块矢量。例如,相邻编码单元的编码顺序为当前编码单元的上一顺序,在相邻编码单元编码过程中进行空间搜索时所搜索到的空间块(记为第一参考块),每一第一参考块具有对应的第二块矢量,此时将率失真代价最小的第一参考块对应的第二块矢量作为第二编码缓存信息。Optionally, the second encoding buffer information includes a second block vector corresponding to the first reference block with the smallest rate-distortion cost of adjacent coding units. For example, the coding sequence of adjacent coding units is the previous sequence of the current coding unit, and the spatial block (referred to as the first reference block) searched during the spatial search in the coding process of adjacent coding units, each first reference The block has a corresponding second block vector, and at this time, the second block vector corresponding to the first reference block with the smallest rate-distortion cost is used as the second encoding buffer information.

S300、根据第一编码缓存信息和/或第二编码缓存信息生成临时块矢量列表。S300. Generate a temporary block vector list according to the first encoding buffer information and/or the second encoding buffer information.

需要说明的是,步骤S100、S200、S300之间执行顺序任意,可以先生成临时块矢量列表,然后将第一编码缓存信息和/或第二编码缓存信息加入,或者可以获取第一编码缓存信息和第二编码缓存信息中的其中一个,然后保存至临时块矢量列表,然后再将第一编码缓存信息和第二编码缓存信息中的另外一个加入临时块矢量列表中。It should be noted that the execution order of steps S100, S200 and S300 is arbitrary, and a temporary block vector list may be generated first, and then the first encoding buffer information and/or the second encoding buffer information may be added, or the first encoding buffer information may be obtained. One of the first encoding buffer information and the second encoding buffer information is stored in the temporary block vector list, and then the other one of the first encoding buffer information and the second encoding buffer information is added to the temporary block vector list.

需要说明的是,当临时块矢量列表为空,则直接使用零块矢量作为搜索起始点。It should be noted that when the temporary block vector list is empty, the zero block vector is directly used as the search starting point.

可选地,步骤S300包括S310-S320:Optionally, step S300 includes S310-S320:

S310、确定相邻编码单元的最优编码模式。S310. Determine the optimal coding mode of adjacent coding units.

S320、当最优编码模式为帧内块复制模式,根据第一编码缓存信息和第二编码缓存信息生成临时块矢量列表,否则根据第一编码缓存信息生成临时块矢量列表。S320. When the optimal encoding mode is the intra-block copy mode, generate a temporary block vector list according to the first encoding buffer information and the second encoding buffer information, otherwise, generate a temporary block vector list according to the first encoding buffer information.

本发明实施例中,当最优编码模式为帧内块复制模式,根据第一编码缓存信息和第二编码缓存信息生成临时块矢量列表,当最优编码模式为帧内块复制模式此时忽略或者不获取第二编码缓存信息,直接根据第一编码缓存信息生成临时块矢量列表。In this embodiment of the present invention, when the optimal encoding mode is the intra-block copy mode, a temporary block vector list is generated according to the first encoding buffer information and the second encoding buffer information, and when the optimal encoding mode is the intra-block copy mode, it is ignored at this time Alternatively, the second encoding buffer information is not acquired, and the temporary block vector list is directly generated according to the first encoding buffer information.

S400、根据临时块矢量列表确定当前编码单元的搜索起始点。S400. Determine the search start point of the current coding unit according to the temporary block vector list.

可选地,步骤S400包括步骤S410或S420:Optionally, step S400 includes step S410 or S420:

S410、当临时块矢量列表包括第一块矢量以及第二块矢量,计算所有第一块矢量以及第二块矢量对应的率失真代价,将最小的率失真代价对应的第一块矢量或第二块矢量作为目标块矢量,根据目标块矢量确定当前编码单元的搜索起始点。S410. When the temporary block vector list includes the first block vector and the second block vector, calculate the rate-distortion cost corresponding to all the first block vectors and the second block vector, and assign the first block vector or the second block vector corresponding to the smallest rate-distortion cost The block vector is used as the target block vector, and the search start point of the current coding unit is determined according to the target block vector.

S420、当临时块矢量列表包括第一块矢量,计算所有第一块矢量对应的率失真代价,将最小的率失真代价对应的第一块矢量作为目标块矢量,根据目标块矢量确定当前编码单元的搜索起始点。S420. When the temporary block vector list includes the first block vector, calculate the rate-distortion costs corresponding to all the first block vectors, use the first block vector corresponding to the smallest rate-distortion cost as the target block vector, and determine the current coding unit according to the target block vector search starting point.

本发明实施例中,当临时块矢量列表包括第一块矢量以及第二块矢量,计算所有第一块矢量以及第二块矢量对应的率失真代价,例如最小的率失真代价对应的是其中一个第一块矢量,则将该第一块矢量确定为目标块矢量,若最小的率失真代价对应的是第二块矢量,则将该第二块矢量确定为目标块矢量。而当临时块矢量列表中只有第一块矢量,将最小的率失真代价对应的第一块矢量确定为目标块矢量。In this embodiment of the present invention, when the temporary block vector list includes the first block vector and the second block vector, the rate-distortion costs corresponding to all the first block vectors and the second block vector are calculated, for example, the smallest rate-distortion cost corresponds to one of them The first block vector is determined as the target block vector, and if the minimum rate-distortion cost corresponds to the second block vector, the second block vector is determined as the target block vector. When there is only the first block vector in the temporary block vector list, the first block vector corresponding to the smallest rate-distortion cost is determined as the target block vector.

可选地,本发明实施例的基于编码缓存信息的起始点确定方法,还包括步骤S500或S600:Optionally, the method for determining the starting point based on the encoded buffer information according to the embodiment of the present invention further includes step S500 or S600:

S500、根据搜索起始点进行第二参考块的搜索,得到若干第二参考块对应的第一候选块矢量;根据率失真代价最小的第一候选块矢量以及当前编码单元完成编码,获取当前编码单元新的位置信息以及新的尺寸信息,并根据新的位置信息以及新的尺寸信息计算第二哈希键值,将第二哈希键值以及所有第一候选块矢量保存至哈希表。S500. Search the second reference block according to the search starting point, and obtain first candidate block vectors corresponding to several second reference blocks; complete the encoding according to the first candidate block vector with the smallest rate-distortion cost and the current coding unit, and obtain the current coding unit The new position information and the new size information are calculated, and the second hash key value is calculated according to the new position information and the new size information, and the second hash key value and all the first candidate block vectors are stored in the hash table.

可选地,利用搜索起始点进行第二参考块的空间搜索,得到若干第二参考块以及第二参考块对应的第一候选块矢量,将根据率失真代价最小的第一候选块矢量作为最佳候选块矢量结合当前编码单元完成编码。其中,还获取当前编码单元新的位置信息以及新的尺寸信息,并根据新的位置信息以及新的尺寸信息计算第二哈希键值,将第二哈希键值以及所有第一候选块矢量保存至哈希表。需要说明的是,如图3所示,假设第二哈希键值亦为(x,y,w,h),将第二哈希键值(x,y,w,h)作为新键值并一起与第一候选块矢量加入哈希表,当确定新的当前编码单元,此时新键值亦相当于历史哈希键值,第一候选块矢量即相当于历史块矢量,构成历史缓存块矢量列表。Optionally, use the search starting point to perform a spatial search of the second reference block, obtain several second reference blocks and the first candidate block vector corresponding to the second reference block, and use the first candidate block vector with the smallest rate-distortion cost as the most The best candidate block vector is combined with the current coding unit to complete the encoding. Among them, the new position information and new size information of the current coding unit are also obtained, and the second hash key value is calculated according to the new position information and the new size information, and the second hash key value and all the first candidate block vectors are calculated. Save to hash table. It should be noted that, as shown in Figure 3, assuming that the second hash key value is also (x, y, w, h), the second hash key value (x, y, w, h) is used as the new key value And join the hash table together with the first candidate block vector. When the new current coding unit is determined, the new key value is also equivalent to the historical hash key value, and the first candidate block vector is equivalent to the historical block vector, forming a historical cache. List of block vectors.

S600、根据搜索起始点进行第三参考块的搜索,得到若干第三参考块对应的第二候选块矢量;S600, carry out the search of the third reference block according to the search starting point, and obtain the second candidate block vector corresponding to several third reference blocks;

根据率失真代价最小的第二候选块矢量以及当前编码单元完成编码,并将所有第二候选块矢量进行保存。The encoding is completed according to the second candidate block vector with the smallest rate-distortion cost and the current coding unit, and all the second candidate block vectors are stored.

可选地,利用搜索起始点进行第三参考块的搜索,得到若干第三参考块以及第三参考块对应的第二候选块矢量,将根据率失真代价最小的第二候选块矢量作为最佳候选块矢量结合当前编码单元完成编码,并将所有第二候选块矢量进行保存。Optionally, use the search starting point to search for the third reference block, obtain several third reference blocks and second candidate block vectors corresponding to the third reference blocks, and use the second candidate block vector with the smallest rate-distortion cost as the best. The candidate block vector is combined with the current coding unit to complete encoding, and all second candidate block vectors are stored.

可选地,本发明实施例的基于编码缓存信息的起始点确定方法在步骤S500或S600之后包括步骤S700:Optionally, after step S500 or S600, the method for determining a starting point based on encoding buffer information in this embodiment of the present invention includes step S700:

确定新的当前编码单元并进行其他预测模式的编码尝试(如帧内编码、帧间编码等),若帧内块复制模式为最优编码模式,则对新的当前编码单元进行划分,根据划分后的新的当前编码单元作为步骤S100中的当前编码单元,返回步骤S100。Determine the new current coding unit and perform coding attempts in other prediction modes (such as intra-frame coding, inter-frame coding, etc.). If the intra-frame block copy mode is the optimal coding mode, the new current coding unit is divided. According to the division The subsequent new current coding unit is taken as the current coding unit in step S100, and the process returns to step S100.

本发明实施例还提供一种基于编码缓存信息的起始点确定装置,包括:An embodiment of the present invention also provides a device for determining a starting point based on encoded buffer information, including:

第一获取模块,用于获取当前编码单元的源编码单元的第一编码缓存信息;源编码单元的编码顺序早于当前编码单元,第一编码缓存信息包括源编码单元在编码过程中所搜索的若干个第一块矢量;The first acquisition module is used to acquire the first encoding buffer information of the source encoding unit of the current encoding unit; the encoding order of the source encoding unit is earlier than the current encoding unit, and the first encoding buffer information includes the source encoding unit searched in the encoding process. several first block vectors;

第二获取模块,用于获取当前编码单元的相邻编码单元的第二编码缓存信息;第二编码缓存信息包括与相邻编码单元的率失真代价最小的第一参考块对应的第二块矢量;The second obtaining module is configured to obtain second coding buffer information of adjacent coding units of the current coding unit; the second coding buffer information includes a second block vector corresponding to the first reference block with the smallest rate-distortion cost of the adjacent coding unit ;

生成模块,用于根据第一编码缓存信息和/或第二编码缓存信息生成临时块矢量列表;a generating module, configured to generate a temporary block vector list according to the first encoding buffer information and/or the second encoding buffer information;

确定模块,用于根据临时块矢量列表确定当前编码单元的搜索起始点。The determining module is configured to determine the search start point of the current coding unit according to the temporary block vector list.

上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。The contents in the above method embodiments are all applicable to the present device embodiments, the specific functions implemented by the present device embodiments are the same as the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above method embodiments.

本发明实施例还提供了一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的基于编码缓存信息的起始点确定方法。本发明实施例的电子设备包括但不限于手机、平板电脑、电脑等任意智能终端。An embodiment of the present invention further provides an electronic device, the electronic device includes a processor and a memory, and the memory stores at least one instruction, at least one program, code set or instruction set, at least one instruction, at least one program, code set or instruction set The set is loaded and executed by the processor to implement the method for determining the starting point based on the encoded buffer information of the foregoing embodiments. The electronic device in the embodiment of the present invention includes, but is not limited to, any intelligent terminal such as a mobile phone, a tablet computer, and a computer.

上述方法实施例中的内容均适用于本设备实施例中,本设备实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。The contents in the above method embodiments are all applicable to the present device embodiments, the specific functions implemented by the present device embodiments are the same as the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above method embodiments.

本发明实施例还提供一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的基于编码缓存信息的起始点确定方法。Embodiments of the present invention further provide a computer-readable storage medium, where at least one instruction, at least one piece of program, code set or instruction set is stored in the storage medium, and at least one instruction, at least one piece of program, code set or instruction set is loaded by a processor And execute the method for determining the starting point based on the encoded buffer information in the foregoing embodiment.

本发明实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述实施例的基于编码缓存信息的起始点确定方法。Embodiments of the present invention further provide a computer program product or computer program, where the computer program product or computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the method for determining the starting point based on the encoded cache information of the foregoing embodiments.

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。The terms "first", "second", "third", "fourth", etc. (if any) in the description of the present application and the above-mentioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It is to be understood that data so used may be interchanged under appropriate circumstances so that the embodiments of the application described herein can be practiced in sequences other than those illustrated or described herein. Furthermore, the terms "comprising" and "having" and any variations thereof, are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device comprising a series of steps or units is not necessarily limited to those expressly listed Rather, those steps or units may include other steps or units not expressly listed or inherent to these processes, methods, products or devices.

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。It should be understood that, in this application, "at least one (item)" refers to one or more, and "a plurality" refers to two or more. "And/or" is used to describe the relationship between related objects, indicating that there can be three kinds of relationships, for example, "A and/or B" can mean: only A, only B, and both A and B exist , where A and B can be singular or plural. The character "/" generally indicates that the related objects are an "or" relationship. "At least one item(s) below" or similar expressions thereof refer to any combination of these items, including any combination of single item(s) or plural items(s). For example, at least one (a) of a, b or c, can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c" ", where a, b, c can be single or multiple.

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In the several embodiments provided in this application, it should be understood that the disclosed apparatus and method may be implemented in other manners. For example, the apparatus embodiments described above are only illustrative. For example, the division of units is only a logical function division. In actual implementation, there may be other division methods, for example, multiple units or components may be combined or integrated. to another system, or some features can be ignored, or not implemented. On the other hand, the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms. Units described as separate components may or may not be physically separated, and components shown as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment. In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit. The above-mentioned integrated units may be implemented in the form of hardware, or may be implemented in the form of software functional units.

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。The integrated unit, if implemented as a software functional unit and sold or used as a stand-alone product, may be stored in a computer-readable storage medium. Based on this understanding, the technical solutions of the present application can be embodied in the form of software products in essence, or the parts that contribute to the prior art, or all or part of the technical solutions, and the computer software products are stored in a storage medium , including multiple instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods in the various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, Read-Only Memory (ROM for short), Random Access Memory (RAM for short), magnetic disk or CD, etc. that can store programs medium.

以上,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。Above, the above embodiments are only used to illustrate the technical solutions of the present application, but not to limit them; although the present application has been described in detail with reference to the above-mentioned embodiments, those of ordinary skill in the art should understand that: it can still be used for the above-mentioned implementations The technical solutions described in the examples are modified, or some technical features thereof are equivalently replaced; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions in the embodiments of the present application.

Claims (10)

1. The method for determining the starting point based on the coding cache information is characterized by comprising the following steps:
acquiring first coding cache information of a source coding unit of a current coding unit; the encoding sequence of the source encoding unit is earlier than that of the current encoding unit, and the first encoding cache information comprises a plurality of first block vectors searched by the source encoding unit in the encoding process;
acquiring second coding cache information of an adjacent coding unit of the current coding unit; the second coding buffer information comprises a second block vector corresponding to a first reference block with the minimum rate distortion cost of the adjacent coding unit;
generating a temporary block vector list according to the first coding cache information and/or the second coding cache information;
and determining a search starting point of the current coding unit according to the temporary block vector list.
2. The starting point method based on the encoded cache information of claim 1, wherein: the acquiring first encoding cache information of a source encoding unit of a current encoding unit includes:
when the source coding unit is a parent coding unit, acquiring a first cache block vector list of the parent coding unit; the first cache block vector list comprises a plurality of first sub-block vectors;
or,
when the source coding unit is a coding unit of an adjacent layer, acquiring position information and size information of the coding unit of the adjacent layer, and searching a second cache block vector list according to the position information and the size information; the second cache block vector list comprises a plurality of second sub-block vectors;
the first block vector comprises the first sub-block vector and the second sub-block vector, the adjacent layer coding units and the current coding unit are obtained by dividing the parent coding unit, and the adjacent layer coding units are obtained by dividing the current coding unit or the current coding unit is obtained by dividing the adjacent layer coding unit.
3. The starting point method based on the encoded cache information of claim 2, wherein: the searching for the second cache block vector list according to the position information and the size information includes:
calculating to obtain a first hash key value according to the position information and the size information and acquiring a hash table; the hash table comprises a plurality of historical hash key values and a historical cache block vector list corresponding to each historical hash key value, the historical hash key values are obtained by calculation according to position information and size information of different adjacent layer coding units, and the historical cache block vector list comprises historical block vectors searched by different adjacent layer coding units in the coding process;
and taking a historical cache block vector list corresponding to the historical hash key value equal to the first hash key value as a second cache block vector list.
4. The starting point method based on the encoded cache information of claim 3, wherein: the method further comprises the following steps:
searching a second reference block according to the search starting point to obtain a plurality of first candidate block vectors corresponding to the second reference block;
and completing coding according to the first candidate block vector with the minimum rate-distortion cost and the current coding unit, acquiring new position information and new size information of the current coding unit, calculating a second hash key value according to the new position information and the new size information, and storing the second hash key value and all the first candidate block vectors into the hash table.
5. The starting point method based on the encoded cache information of claim 1, wherein: the method further comprises the following steps:
searching a third reference block according to the search starting point to obtain a plurality of second candidate block vectors corresponding to the third reference block;
and finishing coding according to the second candidate block vector with the minimum rate-distortion cost and the current coding unit, and storing all the second candidate block vectors.
6. The starting point method based on the encoded cache information of claim 1, wherein: generating a temporary block vector list according to the first encoding cache information and/or the second encoding cache information, including:
determining an optimal coding mode of the neighboring coding unit;
and when the optimal coding mode is an intra-frame block copy mode, generating a temporary block vector list according to the first coding cache information and the second coding cache information, otherwise, generating a temporary block vector list according to the first coding cache information.
7. The starting point method based on the encoded cache information according to any one of claims 1-6, wherein: the determining a search starting point of the current coding unit according to the temporary block vector list includes:
when the temporary block vector list comprises a first block vector and a second block vector, calculating rate distortion costs corresponding to all the first block vectors and the second block vectors, taking the first block vector or the second block vector corresponding to the minimum rate distortion cost as a target block vector, and determining a search starting point of the current coding unit according to the target block vector;
or, when the temporary block vector list includes first block vectors, rate distortion costs corresponding to all the first block vectors are calculated, the first block vector corresponding to the smallest rate distortion cost is used as a target block vector, and a search starting point of the current coding unit is determined according to the target block vector.
8. An apparatus for determining a starting point based on encoded buffer information, comprising:
the first obtaining module is used for obtaining first coding cache information of a source coding unit of a current coding unit; the encoding sequence of the source encoding unit is earlier than that of the current encoding unit, and the first encoding cache information comprises a plurality of first block vectors searched by the source encoding unit in the encoding process;
the second obtaining module is used for obtaining second coding cache information of an adjacent coding unit of the current coding unit; the second coding buffer information comprises a second block vector corresponding to a first reference block with the minimum rate distortion cost of the adjacent coding unit;
a generating module, configured to generate a temporary block vector list according to the first encoding cache information and/or the second encoding cache information;
a determining module, configured to determine a search starting point of the current coding unit according to the temporary block vector list.
9. An electronic device comprising a processor and a memory, the memory having stored therein at least one instruction, at least one program, a set of codes, or a set of instructions, the at least one instruction, the at least one program, the set of codes, or the set of instructions being loaded and executed by the processor to implement the method according to any one of claims 1-7.
10. A computer readable storage medium having stored therein at least one instruction, at least one program, a set of codes, or a set of instructions, which is loaded and executed by a processor to implement the method according to any one of claims 1 to 7.
CN202210316015.3A 2022-03-29 2022-03-29 Method, device, equipment and medium for determining starting point based on coding cache information Active CN114666593B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210316015.3A CN114666593B (en) 2022-03-29 2022-03-29 Method, device, equipment and medium for determining starting point based on coding cache information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210316015.3A CN114666593B (en) 2022-03-29 2022-03-29 Method, device, equipment and medium for determining starting point based on coding cache information

Publications (2)

Publication Number Publication Date
CN114666593A true CN114666593A (en) 2022-06-24
CN114666593B CN114666593B (en) 2024-11-05

Family

ID=82032708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210316015.3A Active CN114666593B (en) 2022-03-29 2022-03-29 Method, device, equipment and medium for determining starting point based on coding cache information

Country Status (1)

Country Link
CN (1) CN114666593B (en)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040247029A1 (en) * 2003-06-09 2004-12-09 Lefan Zhong MPEG motion estimation based on dual start points
CN101600108A (en) * 2009-06-26 2009-12-09 北京工业大学 A joint motion and disparity estimation method in multi-view video coding
US20130136181A1 (en) * 2011-11-30 2013-05-30 Amichay Amitay Cache prefetch during motion estimation
CN108076347A (en) * 2016-11-15 2018-05-25 阿里巴巴集团控股有限公司 A kind of acquisition methods and device for encoding starting point
CN108259912A (en) * 2018-03-28 2018-07-06 天津大学 A kind of Parallel Implementation method of point of pixel motion estimation
CN108419082A (en) * 2017-02-10 2018-08-17 北京金山云网络技术有限公司 A motion estimation method and device
CN110662055A (en) * 2018-06-29 2020-01-07 北京字节跳动网络技术有限公司 Extended Merge mode
CN111586415A (en) * 2020-05-29 2020-08-25 浙江大华技术股份有限公司 Video coding method, video coding device, video coder and storage device
WO2020181504A1 (en) * 2019-03-12 2020-09-17 深圳市大疆创新科技有限公司 Video encoding method and apparatus, and video decoding method and apparatus
CN112118451A (en) * 2019-06-20 2020-12-22 杭州海康威视数字技术股份有限公司 Encoding and decoding method, device and equipment
CN112637599A (en) * 2020-12-02 2021-04-09 哈尔滨工业大学(深圳) Novel reconstruction method based on distributed compressed video sensing system
KR20210091316A (en) * 2019-03-08 2021-07-21 텐센트 아메리카 엘엘씨 Integrated block vector prediction for intra picture block compensation
CN113196782A (en) * 2019-01-22 2021-07-30 腾讯美国有限责任公司 Video coding and decoding method and device
CN113259677A (en) * 2021-06-28 2021-08-13 腾讯科技(深圳)有限公司 Data processing method, data processing equipment and computer readable storage medium
CN113596475A (en) * 2021-06-24 2021-11-02 浙江大华技术股份有限公司 Image/video encoding method, apparatus, system, and computer-readable storage medium

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040247029A1 (en) * 2003-06-09 2004-12-09 Lefan Zhong MPEG motion estimation based on dual start points
CN101600108A (en) * 2009-06-26 2009-12-09 北京工业大学 A joint motion and disparity estimation method in multi-view video coding
US20130136181A1 (en) * 2011-11-30 2013-05-30 Amichay Amitay Cache prefetch during motion estimation
CN108076347A (en) * 2016-11-15 2018-05-25 阿里巴巴集团控股有限公司 A kind of acquisition methods and device for encoding starting point
CN108419082A (en) * 2017-02-10 2018-08-17 北京金山云网络技术有限公司 A motion estimation method and device
CN108259912A (en) * 2018-03-28 2018-07-06 天津大学 A kind of Parallel Implementation method of point of pixel motion estimation
CN110662055A (en) * 2018-06-29 2020-01-07 北京字节跳动网络技术有限公司 Extended Merge mode
CN113196782A (en) * 2019-01-22 2021-07-30 腾讯美国有限责任公司 Video coding and decoding method and device
KR20210091316A (en) * 2019-03-08 2021-07-21 텐센트 아메리카 엘엘씨 Integrated block vector prediction for intra picture block compensation
WO2020181504A1 (en) * 2019-03-12 2020-09-17 深圳市大疆创新科技有限公司 Video encoding method and apparatus, and video decoding method and apparatus
CN112118451A (en) * 2019-06-20 2020-12-22 杭州海康威视数字技术股份有限公司 Encoding and decoding method, device and equipment
CN111586415A (en) * 2020-05-29 2020-08-25 浙江大华技术股份有限公司 Video coding method, video coding device, video coder and storage device
CN112637599A (en) * 2020-12-02 2021-04-09 哈尔滨工业大学(深圳) Novel reconstruction method based on distributed compressed video sensing system
CN113596475A (en) * 2021-06-24 2021-11-02 浙江大华技术股份有限公司 Image/video encoding method, apparatus, system, and computer-readable storage medium
CN113259677A (en) * 2021-06-28 2021-08-13 腾讯科技(深圳)有限公司 Data processing method, data processing equipment and computer readable storage medium

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JIAWEN QIU: "A fast coding unit selection algorithm for HEVC", 《2013 IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA AND EXPO WORKSHOPS (ICMEW)》, 3 October 2013 (2013-10-03) *
MUHAMMAD AKRAM: "A Multi-Pattern Search Algorithm for Block Motion Estimation in Video Coding", 《 2010 12TH INTERNATIONAL ASIA-PACIFIC WEB CONFERENCE》, 1 June 2010 (2010-06-01) *
刘英哲;王进祥;: "H.264中一种基于搜索范围自适应调整的运动估计算法", 电子与信息学报, no. 06, 15 June 2013 (2013-06-15) *
谢春来: "视频编码运动估计快速算法研究", 《中国优秀硕士论文电子期刊网》, 15 May 2009 (2009-05-15) *

Also Published As

Publication number Publication date
CN114666593B (en) 2024-11-05

Similar Documents

Publication Publication Date Title
CN112087629B (en) Image prediction method, apparatus, and computer-readable storage medium
CN111145090A (en) Point cloud attribute encoding method, point cloud attribute decoding method, point cloud attribute encoding equipment and point cloud attribute decoding equipment
CN101080930B (en) Motion vector calculation device and motion vector calculation method
CN111654696B (en) An intra-frame multi-reference line prediction method, device, storage medium and terminal
CN115471627A (en) Point cloud geometric information encoding processing method, decoding processing method and related equipment
CN115118977B (en) Intra-frame predictive coding method, system and medium for 360-degree video
KR101520027B1 (en) Method and apparatus for motion estimation
CN111586415B (en) Video coding method, video coding device, video coder and storage device
US12200231B2 (en) Nearest neighbor search method, apparatus, device, and storage medium
KR102799223B1 (en) Methods for predicting attribute information, encoders, decoders and storage media
CN113965753B (en) Inter-frame image motion estimation method and system based on code rate control
WO2016155070A1 (en) Method for acquiring adjacent disparity vectors in multi-texture multi-depth video
JP2003204548A (en) Image processing apparatus, image processing method, recording medium, and program
CN114666593A (en) Method, Apparatus, Device and Medium for Determining Starting Point Based on Encoded Cache Information
JP2006217180A (en) Image processor and method
CN116233388A (en) Point cloud encoding and decoding processing method, device, encoding device and decoding device
CN117440158B (en) MIV immersion type video coding rate distortion optimization method based on three-dimensional geometric distortion
CN116233386B (en) Point cloud attribute encoding method, point cloud attribute decoding method and terminal
CN110351560A (en) A kind of coding method, system and electronic equipment and storage medium
CN116458158B (en) Intra-frame prediction method and device, codec, device, and storage medium
CN114501030A (en) Search method, device, storage medium and electronic device for matching point
CN110267047B (en) Video inter-frame motion estimation method, apparatus, device, and readable storage medium
CN116567267A (en) Motion estimation method in coding process and related products
CN103139557B (en) Method for estimating in a kind of Video coding and system
CN116760986B (en) Candidate motion vector generation method, candidate motion vector generation device, computer equipment and storage medium

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