CN111836046A - 视频编码方法及装置、电子设备和计算机可读存储介质 - Google Patents

视频编码方法及装置、电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN111836046A
CN111836046A CN202010575931.XA CN202010575931A CN111836046A CN 111836046 A CN111836046 A CN 111836046A CN 202010575931 A CN202010575931 A CN 202010575931A CN 111836046 A CN111836046 A CN 111836046A
Authority
CN
China
Prior art keywords
current
block
linked list
coding unit
video
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.)
Pending
Application number
CN202010575931.XA
Other languages
English (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010575931.XA priority Critical patent/CN111836046A/zh
Publication of CN111836046A publication Critical patent/CN111836046A/zh
Pending legal-status Critical Current

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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

本公开提供了一种视频编码方法及装置、电子设备和计算机可读存储介质。该方法包括:获取当前待编码视频,当前待编码视频包括当前图像,当前图像包括当前最大编码单元,当前最大编码单元包括当前块;获取当前块的哈希值和当前块在所述当前最大编码单元内的地址;从当前最大编码单元的帧内块复制哈希表中,确定哈希索引值与当前块的哈希值匹配的目标链表;根据当前块在当前最大编码单元内的地址排除目标链表中的至少部分无效节点,获取目标链表中的剩余节点,其中无效节点对应处于当前最大编码单元的未编码区域内的候选参考块;从剩余节点中搜索当前块的匹配参考块,以对当前块进行帧内块复制编码。

Description

视频编码方法及装置、电子设备和计算机可读存储介质
技术领域
本公开涉及视频编码技术领域,具体而言,涉及一种视频编码方法、视频编码装置、电子设备和计算机可读存储介质。
背景技术
一方面,互联网即将进入5G(5th generation mobile networks或5thgeneration wireless systems、5th-Generation,第五代移动通信技术)新时代,各种互联网应用中出现的图像(视频)已经成为互联网带宽的主要消耗者。特别是移动互联网图像流量与日俱增,在5G时代更将有爆发式的增长,将给图像编码技术的加速发展注入全新的强大推动力。与此同时,也对图像编码技术提出了诸多过去未曾遇到的严峻的新挑战。5G时代,万物互联,各类新兴应用中产生的新型互联网图像具有多样性和差异性。因此,如何针对具有多样性和差异性的新型互联网图像的特点,研究高效的图像编码技术成为了迫切需求。
另一方面,用于描绘即使相对较短影片所需的视频数据量也可能相当大,当数据为流式或者以其它方式通过具有有限带宽容量的通信网进行传送时,这可能产生困难。因此,在通过现代电信网络进行传送之前,视频数据通常进行压缩。在传输之前,视频压缩设备通常使用在源侧的软件和/或硬件来对视频数据进行编码,从而减少了用于表示数字视频图像所需的数据量。随后由视频解压缩设备在目的地接收压缩数据,所述视频解压缩设备对视频数据进行编码。在有限的网络资源以及对较高视频质量的需求不断增加的情况下,需要提高图像质量而不会增加位速率的改进的压缩和解压缩技术。
帧内块复制(Intra Block Copy,IBC)技术可以有效提升视频的率失真(RateDistortion,RD)质量。但是,相关技术中的IBC技术的编码复杂度较高,会耗费较多的计算资源。
因此,需要一种新的视频编码方法及装置、电子设备和计算机可读存储介质。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解。
发明内容
本公开实施例提供一种视频编码方法、视频编码方法、电子设备和计算机可读存储介质,能够提高视频编码效率,降低编码复杂度,占用较少的计算资源。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
本公开实施例提供一种视频编码方法,所述方法包括:获取当前待编码视频,所述当前待编码视频包括当前图像,所述当前图像包括当前最大编码单元,所述当前最大编码单元包括当前块;获取所述当前块的哈希值和所述当前块在所述当前最大编码单元内的地址;从所述当前最大编码单元的帧内块复制哈希表中,确定哈希索引值与所述当前块的哈希值匹配的目标链表;根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,获取所述目标链表中的剩余节点,其中所述无效节点对应处于所述当前最大编码单元的未编码区域内的候选参考块;从所述剩余节点中搜索所述当前块的匹配参考块,以对所述当前块进行帧内块复制编码。
本公开实施例提供一种视频编码装置,所述装置包括:待编码视频获取单元,用于获取当前待编码视频,所述当前待编码视频包括当前图像,所述当前图像包括当前最大编码单元,所述当前最大编码单元包括当前块;编码块信息获取单元,用于获取所述当前块的哈希值和所述当前块在所述当前最大编码单元内的地址;编码块链表确定单元,用于从所述当前最大编码单元的帧内块复制哈希表中,确定哈希索引值与所述当前块的哈希值匹配的目标链表;编码无效块排除单元,用于根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,获取所述目标链表中的剩余节点,其中所述无效节点对应处于所述当前最大编码单元的未编码区域内的候选参考块;帧内块复制编码单元,用于从所述剩余节点中搜索所述当前块的匹配参考块,以对所述当前块进行帧内块复制编码。
在本公开的一些示例性实施例中,所述视频编码装置还包括:候选参考块地址获取单元,用于根据扫描顺序依次获取所述当前最大编码单元内的候选参考块的哈希值及其在所述当前最大编码单元内的地址;候选参考块节点生成单元,用于根据所述候选参考块的哈希值,将所述候选参考块插入所述帧内块复制哈希表对应的链表中,作为对应链表中的节点;候选参考块地址存储单元,用于在链表中的对应节点存储所述候选参考块在所述当前最大编码单元内的地址。
在本公开的一些示例性实施例中,所述扫描顺序为根据所述当前最大编码单元划分块的方式,从左到右,从上到下的扫描顺序。
在本公开的一些示例性实施例中,所述当前块在所述当前最大编码单元内的地址为所述当前块的左上角像素在所述当前最大编码单元内的坐标,所述候选参考块在所述当前最大编码单元内的地址为所述候选参考块的左上角像素在所述当前最大编码单元内的坐标。
在本公开的一些示例性实施例中,所述编码无效块排除单元包括:节点地址获取单元,用于获取所述目标链表中的节点在所述当前最大编码单元内的地址;第一节点排除单元,用于排除所述目标链表中的节点的地址的纵坐标大于所述当前块的地址的纵坐标的节点,将其作为所述至少部分无效节点。
在本公开的一些示例性实施例中,所述编码无效块排除单元还包括:第二节点排除单元,用于排除所述目标链表中的节点的地址的纵坐标等于所述当前块的地址的纵坐标,且所述目标链表中的节点的地址的横坐标大于所述当前块的地址的横坐标的节点,将其作为所述至少部分无效节点。
在本公开的一些示例性实施例中,所述帧内块复制哈希表中的链表中的节点是先入后出的。
在本公开的一些示例性实施例中,所述当前最大编码单元的右下角块为链表的起始节点,在对每个当前块进行帧内块复制哈希值搜索时,直接使用已存储的当前块在哈希索引链表节点的地址开始搜索。
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的视频编码方法。
本公开实施例提供了一种电子设备,包括:至少一个处理器;存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如上述实施例中所述的视频编码方法。
在本公开的一些实施例所提供的技术方案中,通过在对每个当前块进行IBC哈希(hash)搜索时,直接使用每个当前块在其对应的当前最大编码单元内的地址,来排除其对应的当前最大编码单元的IBC hash表中的目标链表中的至少部分无效节点,可以在对当前块进行IBC编码时,只需要在该目标链表排除该至少部分无效节点后的剩余节点中搜索该当前块的匹配参考块,一方面,可以减少解析IBC hash表中的目标链表中的无效节点的数目,从而可以在不降低视频质量的前提下,提高IBC编码速度和编码效率,另一方面,可以耗费较少的运算资源,在保证视频RD质量不变的情况下,降低编码复杂度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了相关技术中的一种视频编码基本框图;
图2示意性示出了相关技术中的帧内块复制的示意图;
图3示意性示出了根据本公开的一实施例的视频编码方法的流程图;
图4示意性示出了根据本公开的一实施例的视频编码方法的示意图;
图5示意性示出了根据本公开的一实施例的视频编码方法的示意图;
图6示意性示出了根据本公开的一实施例的视频编码装置的框图;
图7示出了适于用来实现本公开实施例的电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在至少一个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本公开实施例提供的技术方案可以应用于云游戏(Cloud gaming)、云会议等任意涉及到视频、图像等处理的应用场景,本公开对此不做限定。
其中,云游戏又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thinclient)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
其中,云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。
目前云会议主要集中在以SaaS(Software as a Service,软件即服务)模式为主体的服务内容,包括电话、网络、视频等服务形式,基于云计算的视频会议就叫云会议。
在云会议时代,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,用户完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。
云会议系统支持多服务器动态集群部署,并提供多台高性能服务器,大大提升了会议稳定性、安全性、可用性。近年来,视频会议因能大幅提高沟通效率,持续降低沟通成本,带来内部管理水平升级,而获得众多用户欢迎,已广泛应用在政府、军队、交通、运输、金融、运营商、教育、企业等各个领域。毫无疑问,视频会议运用云计算以后,在方便性、快捷性、易用性上具有更强的吸引力,必将激发视频会议应用新高潮的到来。
首先对本公开实施例中涉及的部分术语进行说明。
AVS:Audio Video Coding Standard,音视频编码标准。
HEVC:High Efficiency Video Coding,高效视频编码,也称之为H.265。
VVC:Versatile Video Coding,多功能视频编码,也称之为H.266。
Intra(picture)Prediction:帧内预测。
Inter(picture)Prediction:帧间预测。
SCC:screen content coding,屏幕内容/图像编码。
Loop Filtering:环路滤波。
QP:Quantization Parameter,量化参数。
LCU:Largest Coding Unit,最大编码单元。
CTU:Coding Tree Unit,编码树单元,一般由最大编码单元开始往下划分。
CU:Coding Unit,编码单元。
PU:Prediction Unit,预测单元。
MV:Motion Vector,运动矢量。
MVP:Motion Vector Prediction,运动矢量预测值。
MVD:Motion Vector Difference,MVP与MV的真正估值之间的差值。
AMVP:Advanced Motion Vector Prediction,高级运动矢量预测。
ME:Motion Estimation,运动估计,得到运动矢量MV的过程称作为运动估计,作为运动补偿(Motion Compensation,MC)中的技术。
MC:根据运动矢量和帧间预测方法,求得当前图像的估计值过程。运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是描述前面一帧的每个小块怎样移动到当前帧中的某个位置去。这种方法经常被视频压缩/视频编码器用来减少视频序列中的空域冗余。相邻的帧通常很相似,也就是说,包含了很多冗余。使用运动补偿的目的是通过消除这种冗余,来提高压缩比。
BV:Block Vector,块位移矢量/块矢量。
BVP:Block Vector Prediction,块矢量预测值。
BVD:Block Vector Difference,BVP与BV的真正估值之间的差值。
I Slice:Intra Slice,帧内条带/片。可以把图像分成一帧(frame)或两场(field),而帧又可以分成一个或几个片(Slice)。
视频信号,从信号的获取方式看,可以包括摄像机拍摄到的以及计算机生成的两种方式。由于统计特性的不同,其对应的压缩编码方式也可能有所区别。
部分视频编码技术例如HEVC,VVC以及AVS,采用了混合编码框架,如图1所示,对输入的原始视频信号(input video)中的图像(pictures)按顺序编码,进行了如下一系列的操作和处理:
1)块划分结构(block partition structure):将输入图像划分成若干个不重叠的处理单元,对每个处理单元将进行类似的压缩操作。这个处理单元可以称之为CTU或者LCU。CTU或者LCU再往下,可以继续进行更加精细的划分,得到至少一个基本编码的单元,称之为CU。每个CU是一个编码环节中最基本的元素。以下描述的是对每一个CU可能采用的各种编码方式。
2)预测编码(Predictive Coding):包括了帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端需要为当前CU决定在众多可能的预测编码模式中,选择最适合的一种,并告知编码端。
a.帧内预测:预测的信号来自于同一图像内已经编码重建过的区域。
其中,帧内预测的基本思想就是利用相邻像素的相关性去除空间冗余。在视频编码中,相邻像素指的就是当前CU周围的已编码CU的重建(reconstructed)像素。
b.帧间预测:预测的信号来自已经编码过的,且不同于当前图像的其他图像(称之为参考图像)。
3)变换编码及量化(Transform&Quantization):残差视频信号经过DFT(DIBCreteFourier Transform,离散傅里叶变换),DCT(DIBCrete Cosine Transform,离散余弦变换)等变换操作,将残差视频信号转换到变换域中,称之为变换系数。在变换域中的残差视频信号,进一步的进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。
在一些视频编码标准中,可能有多于一种变换方式可以选择,因此,编码端也需要为待编码的当前CU选择其中的一种变换,并告知编码端。
其中,量化的精细程度通常由量化参数(Quantization Parameters,QP)来决定,QP取值较大时,表示更大取值范围的变换系数将被量化为同一个输出,因此通常会带来更大的失真及较低的码率;相反,QP取值较小时,表示较小取值范围的变换系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
4)熵编码(Entropy Coding)或统计编码:量化后的变换域信号,将根据各个值出现的频率,进行统计压缩编码,最后输出二值化(0或者1)的压缩码流(bitstream)。
同时,编码产生其他信息,例如选择的编码模式(coding modes),运动矢量等,也需要进行熵编码以降低码率。
其中,统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常见的统计编码方式有变长编码(Variable Length Coding,VLC)或者基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。
5)环路滤波(Loop Filtering):已经编码过的图像,经过反量化,反变换及预测补偿的操作(上述步骤2)~4)的反向操作),可获得重建的编码图像(decoded picture)。重建的编码图像与原始的输入图像相比,由于存在量化的影响,部分信息与原始的输入图像有所不同,产生失真(Distortion)。对重建的编码图像进行滤波操作,例如去块效应滤波(deblocking),SAO(Sample Adaptive Offset,样点自适应补偿)或者ALF(Adaptive LoopFilter,自适应环路滤波)等滤波器,可以有效的降低量化所产生的失真程度。由于这些经过滤波后的重建的编码图像,将做为后续编码图像的参考,用于对将来的信号进行预测,所以上述的滤波操作也称为环路滤波,及在编码环路内的滤波操作。
图1展示了一个视频编码器的基本流程图。图1中以第k个CU(标记为sk[x,y])为例进行举例说明。其中,k为大于或等于1且小于或等于输入的当前图像中的CU的数量的正整数,sk[x,y]表示第k个CU中坐标为[x,y]的像素点,x表示像素点的横坐标,y表示像素点的纵坐标。sk[x,y]经过运动补偿或者帧内预测等中的一种较优处理后获得预测信号
Figure BDA0002550995600000091
sk[x,y]与
Figure BDA0002550995600000092
相减得到残差信号uk[x,y],然后对该残差信号uk[x,y]进行变换和量化,量化输出的数据有两个不同的去处:一个是送给熵编码器进行熵编码,编码后的码流输出到一个缓冲器(buffer)中保存,等待传送出去;另一个应用是进行反量化和反变换后,得到信号u′k[x,y]。将信号u′k[x,y]与
Figure BDA0002550995600000093
相加得到新的预测信号s* k[x,y],并将s* k[x,y]送至当前图像的缓冲器中保存。s* k[x,y]经过帧内-图像预测获得f(s* k[x,y])。s* k[x,y]经过环路滤波后获得s′k[x,y],并将s′k[x,y]送至编码图像缓冲器中保存,以用于生成重建视频。s′k[x,y]经过运动-补偿预测后获得s′r[x+mx,y+my],s′r[x+mx,y+my]表示参考块,mx和my分别表示运动矢量的水平和竖直分量。
一些视频编码标准,如HEVC,VVC,AVS3,均采用基于块的混合编码框架。它们将原始的视频数据分成一系列的编码块,结合预测、变换和熵编码等视频编码方法,实现视频数据的压缩。其中,运动补偿是视频编码常用的一类预测方法,运动补偿基于视频内容在时域或空域的冗余特性,从已编码的区域导出当前块的预测值。这类预测方法包括:帧间预测、帧内块复制预测、帧内串复制预测等。在具体的编码实现中,可能单独或组合使用这些预测方法。对于使用了这些预测方法的编码块,通常需要在码流中显式或隐式的编码至少一个二维的位移矢量,指示当前块(或当前块的同位块)相对它的至少一个参考块的位移。
其中,在不同的预测模式及不同的实现下,位移矢量可能有不同的名称,本公开实施例中统一按照以下方式进行描述:1)帧间预测中的位移矢量称为运动矢量(MV);2)帧内块复制中的位移矢量称为块矢量或者块位移矢量(BV);3)帧内串复制中的位移矢量称为串矢量(String Vector,简称SV)。
以下对帧内块复制预测中相关的技术进行介绍。
屏幕图像即由电脑、手机、电视等电子设备产生的图像,主要包含两类内容:一类是计算机生成的非连续色调的内容,包含大量小而尖的线条形状,如文字、图标、按钮和网格等;另一类是摄像机拍摄的包含大量连续色调的内容,例如电影、电视片段、自然图像视频等。相关技术中的基于块的混合编码方式的视频编码标准例如AVS、HEVC,对于包含大量连续内容的自然图像和视频有很高的压缩比,但是对于包含非连续色调内容的屏幕图像压缩效果并不好。
伴随着云计算、移动通信技术和无线显示技术的快速发展,如何在低码率下使屏幕图像在各类电子终端设备上高质量显示,是SCC需要解决的问题。为提高屏幕图像编码性能,开发HEVC标准的SCC版本,并已经采用了一些有利于屏幕图像编码的工具,例如IBC(intra block copy,帧内块复制)。
IBC是HEVC屏幕内容编码(SCC)扩展中采纳的一种帧内编码工具,它显著的提升了屏幕内容的编码效率。在AVS3,VVC中,也采纳了IBC技术以提升屏幕内容编码的性能。IBC利用屏幕内容视频在空间的相关性,使用当前图像上已编码图像像素预测当前待编码块(图2中称之为当前块)的像素,能够有效节省编码像素所需的比特。
如图2所示,在IBC中当前块与其参考块之间的位移,称为块矢量(BV)。VVC采用了类似于帧间预测中的AMVP模式对BV进行预测,并允许使用1或4像素分辨率编码BVD。
HEVC SCC可以在计算机生成的屏幕内容场景下非常有效地提升视频编码质量,IBC是SCC中对视频RD质量提升贡献较大的模块。但是IBC技术要求尽可能对有效已编码区域进行帧内逐点搜索,以找到最匹配的参考块的位置,这样的整像素全搜索会导致巨大地编码复杂度。
为了降低复杂度且尽可能地对有效已编码区域搜索,IBC hash搜索算法应运而生,通过对视频帧中每个CTU逐行扫描,在每个可能的像素搜索位置得到对应块的Hash值,并将该位置添加到Hash表中相同Hash值(索引值)对应的链表中去,这样就可以在有效已编码区域创建IBC Hash表,该表由很多单向链表组成,每个链表都会对应一个Hash索引值。
那么在对一个编码块进行IBC编码时,首先会计算出它的hash值,然后根据这个hash值在IBC Hash表中找到对应的链表,这样通过链表中每个节点找到具有相同Hash信息的参考位置,在这些节点中找到最佳匹配块的位置。因为链表中的每个节点的位置并不是连续的,可以大大减少搜索点的个数,并且因为这些节点的Hash值相同,也就意味着它们所代表的参考块和当前块有相近的内容或者纹理信息,所以能基本保留全搜索方法的编码性能。
在相关技术中,在编码一个CTU之前,IBC Hash表会在这个CTU区域内扫描所有可能位置的参考块的hash信息来扩展IBC Hash表,由于该IBC Hash表中的单向链表中的节点的存储顺序是先入后出的,且通常采用从左到右、从上到下的编码顺序,因此最后一个插入单向链表的参考块位置,都会放到对应单向链表的起始位置,那么对应的IBC Hash表中更新过的单向链表的起始参考块的位置就有可能指向到了当前CTU的右下角区域,由于这些区域还未进行IBC编码,因此这些区域对于当前LCU还未进行IBC编码的左上角的CU来说都是无效的。
但是在该单向链表中的搜索都是从起始位置开始,过滤掉该CTU内部未编码区域内的参考块位置,直到找到该CTU内有效已编码区域内的参考块位置。对于解析和排除位于CTU内部无效参考区域的单向链表节点,这一过程会耗费较多的计算资源。
本公开实施例提供的方法可以应用到使用了IBC的视频编码器或视频压缩的产品中,可以适用于有损数据压缩的编码,也可以适用于无损数据压缩的编码。其中,编码过程中所涉及到的数据是指以下举例之一或者其组合:
1)一维数据;
2)二维数据;
3)多维数据;
4)图形;
5)图像;
6)图像的序列;
7)视频;
8)三维场景;
9)持续变化的三维场景的序列;
10)虚拟现实的场景;
11)持续变化的虚拟现实的场景的序列;
12)像素形式的图像;
13)图像的变换域数据;
14)二维或二维以上字节的集合;
15)二维或二维以上比特的集合;
16)像素的集合;
17)三分量像素(Y,U,V)的集合;
18)三分量像素(Y,Cb,Cr)的集合;
19)三分量像素(Y,Cg,Co)的集合;
20)三分量像素(R,G,B)的集合;
21)四分量像素(C,M,Y,K)的集合;
22)四分量像素(R,G,B,A)的集合;
23)四分量像素(Y,U,V,A)的集合;
24)四分量像素(Y,Cb,Cr,A)的集合;
25)四分量像素(Y,Cg,Co,A)的集合。
当数据为上述列举出的图像、或者图像的序列、或者视频时,编码块是图像的一个编码区域,应当至少包括以下一种:一组图像、预定数目的若干幅图像、一幅图像、一帧图像、一场图像、图像的子图像、条带、宏块、最大编码单元LCU、编码树单元CTU、编码单元CU。
图3示意性示出了根据本公开的一实施例的视频编码方法的示意图。图3实施例以编码端为例进行介绍。如图3所示,本公开实施例提供的方法可以包括以下步骤。
在步骤S310中,获取当前待编码视频,所述当前待编码视频包括当前图像,所述当前图像包括当前最大编码单元,所述当前最大编码单元包括当前块。
本公开实施例,在编码端,对当前待编码块(即当前块)进行编码时,当前待编码块是子图像,至少包括以下之一:CU、PU、TU,在下面的举例说明中,均以CU为例进行举例说明,但本公开并不限定于此。对编码块中的像素采用帧内块复制模式进行编码,即产生IBC的编码信息压缩数据码流,并将IBC的编码信息压缩数据码流传输至编码端。
在步骤S320中,获取所述当前块的哈希值和所述当前块在所述当前最大编码单元内的地址。
本公开实施例中,可以利用当前块的梯度和DC(Direct Current,直流,像素的亮度分量值)系数来计算获得当前块的hash值。
例如,假设当前块的大小为8x8,即一共有8x8个像素,可以得到每个像素对应的水平和垂直梯度,然后将其求和,并获得8x8对应的4个4x4块的像素和,获得DC系数。每个4x4块的像素和只取最高3位。为了节省带宽,这里只用前三个4x4块的最高3位,即占16位hash值的高9位,剩下的低7位用来标识梯度有效值。但本公开对块的哈希值的计算方式不做限定,这里仅用于举例说明。
在步骤S330中,从所述当前最大编码单元的帧内块复制哈希表中,确定哈希索引值与所述当前块的哈希值匹配的目标链表。
在示例性实施例中,所述方法还可以包括:根据扫描顺序依次获取所述当前最大编码单元内的候选参考块的哈希值及其在所述当前最大编码单元内的地址;根据所述候选参考块的哈希值,将所述候选参考块插入所述帧内块复制哈希表对应的链表中,作为对应链表中的节点;在链表中的对应节点存储所述候选参考块在所述当前最大编码单元内的地址。
在示例性实施例中,所述扫描顺序可以为根据所述当前最大编码单元划分块的方式,从左到右,从上到下的扫描顺序。视频编码采用从左到右、从上到下的扫描顺序,可以充分地利用已编码的块做帧内预测。
在示例性实施例中,在示例性实施例中,所述当前块在所述当前最大编码单元内的地址可以为所述当前块的左上角像素在所述当前最大编码单元内的坐标,所述候选参考块在所述当前最大编码单元内的地址为所述候选参考块的左上角像素在所述当前最大编码单元内的坐标。
在示例性实施例中,所述帧内块复制哈希表中的链表中的节点是先入后出的。
在示例性实施例中,所述当前最大编码单元的右下角块为链表的起始节点,在对每个当前块进行帧内块复制哈希值搜索时,直接使用已存储的当前块在哈希索引链表节点的地址开始搜索。
本公开实施例中,可以构建当前LCU的IBC hash表,在更新当前LCU的IBC hash表时,可以在IBC hash表对应的链表的节点中存储每个候选参考块的地址,例如每个候选参考块的地址可以包括每个候选参考块的左上角像素在当前LCU内的坐标,但本公开并不限定于此。这样,在对每个当前块进行IBC hash搜索时,可以直接使用已存储的各个候选参考块的地址开始当前块的IBC hash搜索,可以尽可能地减少解析IBC hash表中的链表的无效节点的数目,从而在不降低视频质量的前提下,提高IBC模块的编码速度。
在步骤S340中,根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,获取所述目标链表中的剩余节点,其中所述无效节点对应处于所述当前最大编码单元的未编码区域内的候选参考块。
在示例性实施例中,根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,可以包括:获取所述目标链表中的节点在所述当前最大编码单元内的地址;排除所述目标链表中的节点的地址的纵坐标大于所述当前块的地址的纵坐标的节点,将其作为所述至少部分无效节点。例如可以参照下图4和5的举例说明。
在示例性实施例中,根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,还可以包括:排除所述目标链表中的节点的地址的纵坐标等于所述当前块的地址的纵坐标,且所述目标链表中的节点的地址的横坐标大于所述当前块的地址的横坐标的节点,将其作为所述至少部分无效节点。例如可以参照下图4和5的举例说明。
在步骤S350中,从所述剩余节点中搜索所述当前块的匹配参考块,以对所述当前块进行帧内块复制编码。
例如,可以通过SAD(Sum of absolute differences,绝对差之和)计算,在这些剩余节点中找到当前块的匹配参考块的位置。
本公开实施方式提高的视频编码方法,通过在对每个当前块进行IBC哈希(hash)搜索时,直接使用每个当前块在其对应的当前最大编码单元内的地址,来排除其对应的当前最大编码单元的IBC hash表中的目标链表中的至少部分无效节点,可以在对当前块进行IBC编码时,只需要在该目标链表排除该至少部分无效节点后的剩余节点中搜索该当前块的匹配参考块,一方面,可以减少解析IBC hash表中的目标链表中的无效节点的数目,从而可以在不降低视频质量的前提下,提高IBC编码速度和编码效率,另一方面,可以耗费较少的运算资源,在保证视频RD质量不变的情况下,降低编码复杂度。
图4是以当前LCU大小为64x64,其划分为64个8x8的CU为例,举例说明本公开实施例提供的视频编码方法,以阐述IBC Hash搜索的快速寻址方式。
在HEVC SCC中每一视频帧由多个LCU组成,在对一个LCU编码之前,IBC hash表会根据这个LCU区域内所有可能参考位置的8x8块位置信息以从左到右,从上到下的顺序来更新IBC hash表,使得IBC hash表中各个hash索引值对应的hash单向链表的节点数有所增加,并且各个单向链表的起始节点的坐标都有可能指向到了对应LCU右下角的位置。
例如,当对如图4所示的一个LCU中的黑色8x8 CU(当前块)进行IBC编码时,首先可以计算出其hash值,并用该当前块的hash值为hash索引在IBC hash表找到具有相同hash索引值的目标链表。
在图4中,可以发现在对黑色8x8当前块进行IBC编码时,对当前LCU扩充后的IBChash表中的链表中的节点所对应的位置绝大部分还没有编码,处于无效hash表范围,如细虚线箭头所示,对于处于有效已编码区域的有效hash表范围如细实线箭头所示,即位于粗实线框内的已编码区域。
那么对应黑色8x8当前块对应的hash值的目标链表,在未编码区域内的路径(无效哈希搜索路径)用粗虚点线表示,可以发现其起始节点位于当前LCU 8x8块的最后一行,并且可以依次得到该目标链表的后续节点,从最后一行逐渐指向到黑色8x8当前块,可以发现要至少分析该目标链表的6个节点才能找到8x8当前块在目标链表的地址,分析这6个节点的过程是完全没有必要的,且都是串行判断处理,会给处理器带来较多的计算负载。
利用本公开实施例提供的方法,在当前LCU中扩充IBC hash表中的链表的节点时,会在IBC hash表的链表的每个节点存储每个8x8块所对应的地址。那么对于待编码的8x8当前块,就可以直接通过存储在IBC hash表的目标链表的节点的地址找到其对应的有效候选参考块对应的节点,还可能包括少部分的无效候选参考块对应的节点,从而避免不必要的节点分析。
如图4所示,黑色的当前块的地址可以是其左上角相对于原点O的坐标(8,16),这里假设水平向右为横坐标(X轴)的正方向,竖直向下为纵坐标(Y轴)。当前LCU中的每个块的坐标都可以类似确定。
对于图4中位于第三行第二列的8x8块,通过本公开实施例提供的方法,可以去除其对应的IBC hash目标链表中位于第四行(纵坐标均为24,大于当前块的纵坐标16)到第八行(纵坐标均为56,大于当前块的纵坐标16)的所有节点,并且第三行第二列右侧节点(其纵坐标为16,等于当前块的纵坐标;其横坐标大于或等于16,即其横坐标大于当前块的横坐标)也可以去掉。从而其对应的目标链表在当前LCU所对应的节点只有三个,其中包括两个有效候选参考块(已编码,(由有效Hash搜索路径串联),一个无效候选参考块(未编码,由无效Hash搜索路径串联)。因此本公开实施例提供的方法,可以在当前LCU中,减少IBC hash链表中的无效节点的数量,从而在不降低IBC RD压缩质量的前提下提高IBC模块的编码速度。
再例如,如图5所示,本公开实施例中,还是假设一个LCU的大小为64x64(但本公开并不限定于此,仅用于举例说明,例如还可以是128x128,256x128等等),首先将其划分为四个32x32大小的块,并对这四个32x32大小的块按照从左到右、从上到下的顺序进行编码;然后再将每个32x32大小的块划分为四个16x16大小的块,类似的,在每个32x32大小的块中,再按照从左到右、从上到下的顺序对各个16x16大小的块进行编码;然后再将每个16x16大小的块划分为四个8x8大小的块,类似的,在每个16x16大小的块中,再按照从左到右、从上到下的顺序对各个8x8大小的块进行编码。
继续参考图5,这里假设左上角的第一个16x16的块中包括按照从左到右、从上到下依次编号为0,1,2,3的四个8x8大小的块,则首先编码编号为0的块,然后再编码编号为1的块,再编码编号为2的块,接着编码编号为3的块,后续块的编码顺序或者扫描顺序于此类似。
其中,在编码编号为1的块时,编号为2和3的块还未编码,可以根据编号为1的块的纵坐标0小于编号为2和3的块的纵坐标8,来排除编号为2和3的块为无效后续参考块或者无效节点。
需要说明的是,每个最大编码单元的尺寸、每个最大编码单元所划分块的尺寸和数量、以及每个块的位置或者坐标的确定并不限于上述举例说明。
经过测试可知,SCC YUV420编码器在All intra(全帧内)单线程模式下,采用本公开实施例提供的方法后,在视频RD质量不变的情况下,编码复杂度下降了2.38%;在Allintra四线程模式下,采用本公开实施例提供的方法后,在视频RD质量不变的情况下,编码复杂度下降了9.53%。
本公开实施方式提供的视频编码方法,通过在更新当前LCU的IBC hash表时,在对应哈希索引的链表的节点中,存储每个后续参考块CU的地址,从而在对每个当前待编码块进行IBC hash搜索时,可以直接使用已存储的目标链表的节点的地址和当前块的地址开始IBC hash搜索,这样就可以尽可能地减少解析IBC hash表中的目标链表中从当前LCU末尾开始的无效节点的数目,从而快速地进入有效节点区域以提升IBC hash搜索的速度,在不降低视频质量前提下提高IBC模块的编码速度。
本公开实施例提供的视频编码方法可以使用在输入源数据是YUV420/422/444等格式的HEVC SCC编码器中。可以应用在视频会议、网络游戏等各种应用场景中。
进一步的,本公开实施例还提供一种视频编码装置600,所述装置600可以包括:待编码视频获取单元610、编码块信息获取单元620、编码块链表确定单元630、编码无效块排除单元640以及帧内块复制编码单元650。
其中,待编码视频获取单元610可以用于获取当前待编码视频,所述当前待编码视频包括当前图像,所述当前图像包括当前最大编码单元,所述当前最大编码单元包括当前块。
编码块信息获取单元620可以用于获取所述当前块的哈希值和所述当前块在所述当前最大编码单元内的地址。
编码块链表确定单元630可以用于从所述当前最大编码单元的帧内块复制哈希表中,确定哈希索引值与所述当前块的哈希值匹配的目标链表。
编码无效块排除单元640可以用于根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,获取所述目标链表中的剩余节点,其中所述无效节点对应处于所述当前最大编码单元的未编码区域内的候选参考块。
帧内块复制编码单元650可以用于从所述剩余节点中搜索所述当前块的匹配参考块,以对所述当前块进行帧内块复制编码。
在示例性实施例中,视频编码装置600还可以包括:候选参考块地址获取单元,可以用于根据扫描顺序依次获取所述当前最大编码单元内的候选参考块的哈希值及其在所述当前最大编码单元内的地址;候选参考块节点生成单元,可以用于根据所述候选参考块的哈希值,将所述候选参考块插入所述帧内块复制哈希表对应的链表中,作为对应链表中的节点;候选参考块地址存储单元,可以用于在链表中的对应节点存储所述候选参考块在所述当前最大编码单元内的地址。
在示例性实施例中,所述扫描顺序可以为根据所述当前最大编码单元划分块的方式,从左到右,从上到下的扫描顺序。
在示例性实施例中,所述当前块在所述当前最大编码单元内的地址可以为所述当前块的左上角像素在所述当前最大编码单元内的坐标,所述候选参考块在所述当前最大编码单元内的地址可以为所述候选参考块的左上角像素在所述当前最大编码单元内的坐标。
在示例性实施例中,编码无效块排除单元640可以包括:节点地址获取单元,可以用于获取所述目标链表中的节点在所述当前最大编码单元内的地址;第一节点排除单元,可以用于排除所述目标链表中的节点的地址的纵坐标大于所述当前块的地址的纵坐标的节点,将其作为所述至少部分无效节点。
在示例性实施例中,编码无效块排除单元640还可以包括:第二节点排除单元,可以用于排除所述目标链表中的节点的地址的纵坐标等于所述当前块的地址的纵坐标,且所述目标链表中的节点的地址的横坐标大于所述当前块的地址的横坐标的节点,将其作为所述至少部分无效节点。
在示例性实施例中,所述帧内块复制哈希表中的链表中的节点可以是先入后出的。
在示例性实施例中,所述当前最大编码单元的右下角块为链表的起始节点,在对每个当前块进行帧内块复制哈希值搜索时,直接使用已存储的当前块在哈希索引链表节点的地址开始搜索。
本公开实施例提供的视频编码装置中的各个单元的具体实现可以参照上述视频编码方法中的内容,在此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的视频编码方法。
本公开实施例提供了一种电子设备,包括:至少一个处理器;存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如上述实施例中所述的视频编码方法。
图7示出了适于用来实现本公开实施例的电子设备的结构示意图。
需要说明的是,图7示出的电子设备700仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。电子设备700可以是任意的终端设备和/或服务器。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
如图7所示,电子设备700包括中央处理单元(CPU,Central Processing Unit)701,其可以根据存储在只读存储器(ROM,Read-Only Memory)702中的程序或者从储存部分708加载到随机访问存储器(RAM,Random Access Memory)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统操作所需的各种程序和数据。CPU701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(input/output,I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分707;包括硬盘等的储存部分708;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入储存部分708。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法和/或装置中限定的各种功能。
需要说明的是,本公开所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有至少一个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF(Radio Frequency,射频)等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3所示的各个步骤。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例提供的各种可选实现方式中提供的方法。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (11)

1.一种视频编码方法,其特征在于,包括:
获取当前待编码视频,所述当前待编码视频包括当前图像,所述当前图像包括当前最大编码单元,所述当前最大编码单元包括当前块;
获取所述当前块的哈希值和所述当前块在所述当前最大编码单元内的地址;
从所述当前最大编码单元的帧内块复制哈希表中,确定哈希索引值与所述当前块的哈希值匹配的目标链表;
根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,获取所述目标链表中的剩余节点,其中所述无效节点对应处于所述当前最大编码单元的未编码区域内的候选参考块;
从所述剩余节点中搜索所述当前块的匹配参考块,以对所述当前块进行帧内块复制编码。
2.根据权利要求1所述的视频编码方法,其特征在于,还包括:
根据扫描顺序依次获取所述当前最大编码单元内的候选参考块的哈希值及其在所述当前最大编码单元内的地址;
根据所述候选参考块的哈希值,将所述候选参考块插入所述帧内块复制哈希表对应的链表中,作为对应链表中的节点;
在链表中的对应节点存储所述候选参考块在所述当前最大编码单元内的地址。
3.根据权利要求2所述的视频编码方法,其特征在于,所述扫描顺序为根据所述当前最大编码单元划分块的方式,从左到右,从上到下的扫描顺序。
4.根据权利要求3所述的视频编码方法,其特征在于,所述当前块在所述当前最大编码单元内的地址为所述当前块的左上角像素在所述当前最大编码单元内的坐标,所述候选参考块在所述当前最大编码单元内的地址为所述候选参考块的左上角像素在所述当前最大编码单元内的坐标。
5.根据权利要求2至4任一项所述的视频编码方法,其特征在于,根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,包括:
获取所述目标链表中的节点在所述当前最大编码单元内的地址;
排除所述目标链表中的节点的地址的纵坐标大于所述当前块的地址的纵坐标的节点,将其作为所述至少部分无效节点。
6.根据权利要求5所述的视频编码方法,其特征在于,根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,还包括:
排除所述目标链表中的节点的地址的纵坐标等于所述当前块的地址的纵坐标,且所述目标链表中的节点的地址的横坐标大于所述当前块的地址的横坐标的节点,将其作为所述至少部分无效节点。
7.根据权利要求1所述的视频编码方法,其特征在于,所述帧内块复制哈希表中的链表中的节点是先入后出的。
8.根据权利要求7所述的视频编码方法,其特征在于,所述当前最大编码单元的右下角块为链表的起始节点,在对每个当前块进行帧内块复制哈希值搜索时,直接使用已存储的当前块在哈希索引链表节点的地址开始搜索。
9.一种视频编码装置,其特征在于,包括:
待编码视频获取单元,用于获取当前待编码视频,所述当前待编码视频包括当前图像,所述当前图像包括当前最大编码单元,所述当前最大编码单元包括当前块;
编码块信息获取单元,用于获取所述当前块的哈希值和所述当前块在所述当前最大编码单元内的地址;
编码块链表确定单元,用于从所述当前最大编码单元的帧内块复制哈希表中,确定哈希索引值与所述当前块的哈希值匹配的目标链表;
编码无效块排除单元,用于根据所述当前块在所述当前最大编码单元内的地址排除所述目标链表中的至少部分无效节点,获取所述目标链表中的剩余节点,其中所述无效节点对应处于所述当前最大编码单元的未编码区域内的候选参考块;
帧内块复制编码单元,用于从所述剩余节点中搜索所述当前块的匹配参考块,以对所述当前块进行帧内块复制编码。
10.一种电子设备,其特征在于,包括:
至少一个处理器;
存储装置,配置为存储至少一个程序,当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现如权利要求1至8中任一项所述的视频编码方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的视频编码方法。
CN202010575931.XA 2020-06-22 2020-06-22 视频编码方法及装置、电子设备和计算机可读存储介质 Pending CN111836046A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010575931.XA CN111836046A (zh) 2020-06-22 2020-06-22 视频编码方法及装置、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010575931.XA CN111836046A (zh) 2020-06-22 2020-06-22 视频编码方法及装置、电子设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN111836046A true CN111836046A (zh) 2020-10-27

Family

ID=72899293

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010575931.XA Pending CN111836046A (zh) 2020-06-22 2020-06-22 视频编码方法及装置、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111836046A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804528A (zh) * 2021-02-05 2021-05-14 北京字节跳动网络技术有限公司 屏幕内容处理方法、装置及设备
CN113542769A (zh) * 2021-09-17 2021-10-22 苏州浪潮智能科技有限公司 一种视频图像编码方法、系统、设备以及介质
CN114217758A (zh) * 2021-12-01 2022-03-22 深圳Tcl新技术有限公司 图像显示方法、装置、电子设备及计算机可读存储介质
WO2024093994A1 (zh) * 2022-11-04 2024-05-10 华为技术有限公司 编解码方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804528A (zh) * 2021-02-05 2021-05-14 北京字节跳动网络技术有限公司 屏幕内容处理方法、装置及设备
CN113542769A (zh) * 2021-09-17 2021-10-22 苏州浪潮智能科技有限公司 一种视频图像编码方法、系统、设备以及介质
CN113542769B (zh) * 2021-09-17 2021-12-10 苏州浪潮智能科技有限公司 一种视频图像编码方法、系统、设备以及介质
WO2023040166A1 (zh) * 2021-09-17 2023-03-23 苏州浪潮智能科技有限公司 一种视频图像编码方法、系统、设备以及介质
CN114217758A (zh) * 2021-12-01 2022-03-22 深圳Tcl新技术有限公司 图像显示方法、装置、电子设备及计算机可读存储介质
WO2024093994A1 (zh) * 2022-11-04 2024-05-10 华为技术有限公司 编解码方法和装置

Similar Documents

Publication Publication Date Title
CN109274974B (zh) 图像预测的方法及装置
CN111836046A (zh) 视频编码方法及装置、电子设备和计算机可读存储介质
CN111819853A (zh) 变换域中预测的信令残差符号
JP7279154B2 (ja) アフィン動きモデルに基づく動きベクトル予測方法および装置
CN111225206B (zh) 视频解码方法和视频解码器
CN113727108B (zh) 视频解码方法、视频编码方法及相关设备
US11503323B2 (en) Method and apparatus for inter-picture prediction with virtual reference picture for video coding
CN115243048A (zh) 视频图像解码、编码方法及装置
CN113259671B (zh) 视频编解码中的环路滤波方法、装置、设备及存储介质
JP2023105074A (ja) 運動ベクトルインタ予測のための大域的運動モデル
US20220224888A1 (en) Video encoding method, video decoding method, and related device
CN112804525B (zh) Ibc模式帧内块拷贝预测方法、装置、介质及设备
CN112565767B (zh) 视频解码方法、视频编码方法及相关设备
CN112543333B (zh) 视频解码方法、视频编码方法及相关设备
WO2021263251A1 (en) State transition for dependent quantization in video coding
EP3926953A1 (en) Inter-frame prediction method and related device
CN111327894B (zh) 块划分方法、视频编解码方法、视频编解码器
CN111953972A (zh) IBC模式下的Hash表构建方法、装置、设备
CN114071158A (zh) 视频编解码中的运动信息列表构建方法、装置及设备
CN112532989B (zh) 视频编码方法、视频解码方法及相关设备
CN115398893B (zh) 用于在视频编解码中滤波的方法和用于视频解码的设备
RU2787885C2 (ru) Способ и оборудование взаимного прогнозирования, поток битов и энергонезависимый носитель хранения
CN110944177B (zh) 视频解码方法及视频解码器,视频编码方法及视频编码器
KR20230081711A (ko) 비디오 압축을 위한 기하학적 모델을 사용한 모션 코딩
CN118339828A (zh) 用于仿射运动细化的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40031413

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination