CN114079769A - 视频编码方法、装置、设备及计算机可读存储介质 - Google Patents
视频编码方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114079769A CN114079769A CN202010818441.8A CN202010818441A CN114079769A CN 114079769 A CN114079769 A CN 114079769A CN 202010818441 A CN202010818441 A CN 202010818441A CN 114079769 A CN114079769 A CN 114079769A
- Authority
- CN
- China
- Prior art keywords
- coding
- mode
- block
- frame
- coding block
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 23
- 238000005070 sampling Methods 0.000 claims description 22
- 238000013139 quantization Methods 0.000 claims description 19
- 230000009466 transformation Effects 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/147—Data rate or code amount at the encoder output according to rate distortion criteria
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种视频编码方法、装置、设备及计算机可读存储介质;方法包括:对待编码的目标视频帧进行编码块划分,得到对应所述目标视频帧的多个编码块;分别确定各所述编码块的纹理复杂度;基于各所述编码块的纹理复杂度,确定相应的所述编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过所述帧内模式,并通过调色板模式对所述编码块进行编码,以在所述多个编码块的编码完成时实现对所述目标视频帧的编码。通过本申请,能够在保证视频帧编码质量情况下,提升视频帧编码的速度。
Description
技术领域
本申请涉及视频编码技术领域,尤其涉及一种视频编码方法、装置、设备及计算机可读存储介质。
背景技术
高性能视频编码(HEVC,High Efficiency Video Coding,)编码过程中,涉及到许多模式决策过程,率失真优化(RDO,Rate Distortion Optimization)是当前业界最重要的视频编码决策技术,能有效的为视频编码的各个环节选择最优的编码模式,进而提升压缩效率。
在HEVC屏幕内容编码(SCC,Screen Content Coding)中,通过帧内块复制(IBC,Intra Block Copy)和调色板(PLT,Palette)编码工具,能够大幅度提升屏幕内容视频压缩效率。但其主要计算流程中,绝大多数计算以串行计算为主,由于很难通过单指令多数据流(SIMD,Single Instruction Multiple Data)对PLT模块做大规模并行计算,直接将PLT模块放到现有HEVC420编码器中会导致计算复杂度大幅增加。
发明内容
本申请实施例提供一种视频编码方法、装置、设备及计算机可读存储介质,能够在保证视频帧编码质量情况下,提升视频帧编码的速度。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种视频编码方法,包括:
对待编码的目标视频帧进行编码块划分,得到对应所述目标视频帧的多个编码块;
分别确定各所述编码块的纹理复杂度;
基于各所述编码块的纹理复杂度,确定相应的所述编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过所述帧内模式,并
通过调色板模式对所述编码块进行编码,以在所述多个编码块的编码完成时实现对所述目标视频帧的编码。
本申请实施例提供一种视频编码装置,其特征在于,所述装置包括:
划分模块,用于对待编码的目标视频帧进行编码块划分,得到对应所述目标视频帧的多个编码块;
确定模块,用于分别确定各所述编码块的纹理复杂度;
编码模块,用于基于各所述编码块的纹理复杂度,确定相应的所述编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过所述帧内模式,并
通过调色板模式对所述编码块进行编码,以在所述多个编码块的编码完成时实现对所述目标视频帧的编码。
上述方案中,所述确定模块,还用于分别获取各所述编码块的梯度值,将所述梯度值作为相应编码块的纹理复杂度;
分别将各所述编码块的梯度值与梯度阈值进行比较,得到比较结果;
当所述比较结果表征所述梯度值达到梯度阈值时,确定所述梯度值对应的所述编码块满足模式跳过条件。
上述方案中,所述确定模块,还用于针对各所述编码块分别执行以下操作:
将所述编码块划分为多个编码子块;
获取对应所述编码块的多个编码子块的梯度值;
将对应所述编码块的多个编码子块的梯度值之和,作为所述编码块的梯度值。
上述方案中,所述确定模块,还用于当所述目标编码帧满足第一条件时,通过帧内块复制IBC模式,分别对各所述编码子块进行编码,并
在通过所述IBC模式对所述编码子块进行编码的过程中,确定相应的编码子块的梯度值。
上述方案中,所述确定模块,还用于获取所述目标编码帧的类型;
当所述目标编码帧的类型指示所述目标编码帧为帧内编码帧时,确定所述目标编码帧满足第一条件;
当所述目标编码帧的类型指示所述目标编码帧为前向预测帧时,获取目标编码块当前的编码模式,并
在所述编码块当前的编码模式不为跳过模式、且采用所述帧间模式对所述编码块进行编码得到的残差量化值不为零时,确定所述目标编码帧满足第一条件。
上述方案中,所述确定模块,还用于对于每个所述编码子块,执行以下处理:
确定所述编码子块中各像素的水平梯度及垂直梯度;
获取所述编码子块中各像素对应的水平梯度和垂直梯度的梯度平均值;
将所述编码子块包含的各像素对应的所述梯度平均值的和,作为所述编码子块的梯度值。
上述方案中,所述编码模块,还用于获取所述目标编码帧的类型;
当所述目标编码帧的类型指示所述目标编码帧为前向预测帧时,获取所述编码块当前的编码模式;当所述编码块当前的编码模式为跳过模式时,结束针对所述编码块的处理;或者,
当所述编码块当前的编码模式为帧间模式、且采用所述帧间模式对所述编码块进行编码得到的残差量化值为零时,结束针对所述编码块的处理。
上述方案中,所述编码模块,还用于获取采用跳过模式对所述编码块进行编码时的第一率失真代价;
当所述第一率失真代价不大于率失真阈值时,确定所述编码块当前的编码模式为跳过模式。
上述方案中,所述编码模块,还用于获取采用所述帧间模式对编码块进行编码时,所述编码块的预测值以及编码块的实际值;
比较所述编码块的所述实际值与所述预测值,得到所述编码块的实际值与所述预测值之间的残差;
对所述残差进行编码,得到残差量化值。
上述方案中,所述编码模块,还用于生成调色板,所述调色板为包含所述编码块中至少一个颜色值的表;
分别获取所述编码块中各像素在所述表中的索引,将所述索引作为对所述编码块的编码结果。
上述方案中,所述编码模块,还用于生成调色板,所述调色板为包含所述编码块中至少一个颜色值的表;
根据预设的像素采样间隔,对所述编码块中的像素进行采样,得到多个采样像素;
分别获取所述编码块中各所述采样像素在所述表中的索引,将所述索引作为对所述编码块的编码结果。
上述方案中,所述编码模块,还用于基于所述纹理复杂度确定相应的所述编码块不满足模式跳过条件时,通过帧内模式对所述编码块进行编码;
获取通过帧内模式对所述编码块进行编码时的第二率失真代价;
当所述第二率失真代价大于率失真阈值时,通过调色板模式对所述编码块进行编码。
上述方案中,所述编码模块,还用于分别通过所述帧内模式包括的垂直模式、水平模式、直流模式及平面模式,对所述编码块进行编码;
所述获取通过帧内模式对所述编码块进行编码时的第二率失真代价,包括:
分别获取通过垂直模式、水平模式、直流模式及平面模式进行编码时的绝对变换误差和;
根据获取的绝对变换误差和,将获取的绝对变换误差和中的最小值所对应的模式作为最优帧内模式;
获取通过所述最优帧内模式对所述编码块进行编码时的第二率失真代价。
本申请实施例提供一种计算机设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的视频编码方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的视频编码方法。
本申请实施例具有以下有益效果:
本申请通过分别确定各所述编码块的纹理复杂度;基于各所述编码块的纹理复杂度,确定相应的所述编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过所述帧内模式,并通过调色板模式对所述编码块进行编码,以在所述多个编码块的编码完成时实现对所述目标视频帧的编码;如此,能够通过在纹理复杂度满足模式跳过条件时,跳过帧内模式,以在保证视频帧编码质量情况下,提升视频帧编码的速度。
附图说明
图1是本申请实施例提供的视频帧的编码系统100的架构示意图;
图2是本申请实施例提供的计算机设备的结构示意图;
图3是本发明实施例提供的视频帧的编码方法的流程示意图;
图4是本申请实施例提供的编码块划分的示意图;
图5是本申请实施例提供的执行帧内块复制模式的示意图;
图6是本申请实施例提供的执行调色板模式的示意图;
图7是本申请实施例提供的视频帧的编码方法的流程示意图;
图8是本申请实施例提供的视频帧的编码装置的组成结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)编码块,是视频编码技术中的一个基本概念,通过将视频帧分成一个个大小不同的块,来为不同位置选择不同的压缩策略。
2)纹理,是一种反映图像中同质现象的视觉特征,它体现了物体表面的具有缓慢变化或者周期性变化的表面结构组织排列属性。
3)I帧,即帧内编码帧,表示关键帧,通常是每个画面组(GOP,Group of Pictures)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图像。
4)P帧,前向预测编码帧,表示的是这一帧跟之前的一个I帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。
参见图1,图1是本申请实施例提供的视频编码系统100的架构示意图,为实现支撑一个示例性应用,终端400(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400-1,用于实时采集视频,将当前采集到的视频帧作为待编码的目标视频帧;对待编码的目标视频帧进行编码块划分,得到对应所述目标视频帧的多个编码块;分别确定各所述编码块的纹理复杂度;基于各所述编码块的纹理复杂度,确定相应的所述编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过所述帧内模式,并通过调色板模式对所述编码块进行编码,以在所述多个编码块的编码完成时实现对所述目标视频帧的编码;将已编码的目标视频帧发送给服务器200。
服务器200,用于将已编码的目标视频帧发送给400-2;
终端400-2,用于对已编码的目标视频帧进行解码,得并展示解码得到的视频帧。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例中不做限制。
下面对本发明实施例提供的视频编码方法的计算机设备的硬件结构做详细说明,计算机设备包括但不限于服务器或终端。参见图2,图2是本申请实施例提供的计算机设备的结构示意图,图2所示的计算机设备包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的视频编码装置可以采用软件方式实现,图2示出了存储在存储器450中的视频编码装置455,其可以是程序和插件等形式的软件,包括以下软件模块:划分模块4551、确定模块4552和编码模块4553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的视频编码方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specif ic Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic De vice)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
基于上述对本发明实施例的视频编码系统及计算机设备的说明,下面说明本发明实施例提供的视频编码方法。参见图3,图3是本发明实施例提供的视频编码方法的流程示意图;在一些实施例中,该视频编码方法可由服务器或终端单独实施,或由服务器及终端协同实施,以终端实施为例,本发明实施例提供的视频编码方法包括:
步骤301:终端对待编码的目标视频帧进行编码块划分,得到对应目标视频帧的多个编码块。
在实际实施时,在视频编码中,一个视频帧通常划分成若干个编码块,若各干编码块排列成片的形式,视频编码算法以编码块为单位,逐个对各编码块进行编码,组织成连续的视频码流。
在一些实施例中,终端上设置有客户端,如桌面共享客户端、网络会议客户端、即时通讯客户端等,终端可以通过客户端采集视频数据,以对采集的视频数据进行编码。
示例性地,以应用于桌面共享客户端为例,实时从终端的图像显示单元捕获屏幕内容图像,将当前获取到的屏幕内容图像作为待编码的目标视频帧,以实时对目标视频帧进行编码,进而将编码后的目标视频帧传输给与当前终端进行桌面共享的终端,以使与当前终端进行桌面共享的终端可以获取。
示例性地,以应用于网络会议客户端为例,这里,第一终端和第二终端通过网络会议客户端进行视频会议,在视频会议期间,第一终端和第二终端中的每个终端都可以通过摄像头实时采集视频图像,将当前获取到的屏幕内容图像作为待编码的目标视频帧,以实时对目标视频帧进行编码,进而将编码后的目标视频帧传输给另一终端第一终端和第二终端中的每个终端还可接收另一终端传输的已编码的目标视频帧,且可对已编码的目标视频帧进行解码以恢复目标视频帧,且可根据恢复的的目标视频帧在可访问的显示装置上显示的目标视频帧。
步骤302:分别确定各编码块的纹理复杂度。
这里,纹理是一种反映图像中同质现象的视觉特征,它体现了物体表面的具有缓慢变化或者周期性变化的表面结构组织排列属性。
在实际实施时,可以通过编码块的灰度级直方图的二阶矩(方差)来描述纹理复杂度,也可以通过编码块的梯度来描述纹理复杂度,还可以通过其它方式来描述纹理复杂度。
在一些实施例中,分别确定各编码块的纹理复杂度之前,方法还包括:获取目标编码帧的类型;当目标编码帧的类型指示目标编码帧为前向预测帧时,获取编码块当前的编码模式;当编码块当前的编码模式为跳过模式时,结束针对编码块的处理;或者,当编码块当前的编码模式为帧间模式、且采用帧间模式对编码块进行编码得到的残差量化值为零时,结束针对编码块的处理。
在实际实施时,获取目标编码帧的类型,如I帧(帧内编码帧)、P帧(前向预测编码帧),当目标编码帧为P帧时,需要判断编码块当前的编码模式是否为跳过(skip)模式,以及采用帧间(Inter)模式时得到的残差量化值是否为零;当编码块当前的编码模式为skip模式,或者采用帧间(Inter)模式时得到的残差量化值为零时,结束针对编码块的处理;否则,获取编码块的纹理复杂度。
这里,由于针对I帧的编码模式中不存在skip模式和帧间(Inter)模式,因此,当目标编码帧为I帧时,直接获取编码块的纹理复杂度。
在一些实施例中,终端可以通过以下方式确定当前的编码模式为跳过模式:获取采用跳过模式对编码块进行编码时的第一率失真代价;当第一率失真代价不大于率失真阈值时,确定编码块当前的编码模式为跳过模式。
在实际实施时,通过skip模式对编码块进行编码,以获取采用跳过模式对编码块进行编码时的第一率失真代价,若第一率失真代价不大于率失真阈值,表示通过skip模式对该编码块进行编码的效果达到标准,基于此,将skip模式作为对应该编码块的最优编码模式,而无需再通过其它模式对该编码块进行编码。
在一些实施例中,可以通过以下方式获取采用帧间模式对编码块进行编码时的残差量化值:获取采用帧间模式对编码块进行编码时,编码块的预测值以及编码块的实际值;比较编码块的实际值与预测值,得到编码块的实际值与预测值之间的残差;对残差进行编码,得到残差量化值。
在实际实施时,帧间(Inter)模式是指利用视频时间域相关性,使用临近已编码视频帧像素预测目标视频帧的像素,以达到有效去除视频时域冗余的目的。由于视频序列通常包括较强的时域相关性,因此预测残差值接近于0,将残差信号作为后续模块的输入进行变换、量化、扫描及熵编码,可实现对视频信号的高效压缩。
这里,残差量化值可以为编码块模式(CBP,Coded Block Pattern)信息,CBP信息是用于反映编码块编码中残差情况的语法元素。在本实施例中,编码块尺寸为16x16,CBP信息共有6位,其中前面2位代表UV分量;后面4位是Y分量,分别代表编码块内的4个8x8编码子块,如果任意一位为0,表明对应的8x8块中所有变换系数level(transform coefficientlevels也就是对像素残差进行变换、量化后的矩阵内的值,以后统称level)全部都是0,否则表明对应的8x8块中的变换系数level不全为0。
步骤303:基于各编码块的纹理复杂度,确定相应的编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过帧内模式,并通过调色板模式对编码块进行编码,以在多个编码块的编码完成时实现对目标视频帧的编码。
本申请的发明人在实施本发明的过程中发现,当编码块的纹理复杂度较低,也即编码块的纹理信息相对简单时,帧内模式(标准Intra模式)是有必要计算的;而当编码块的纹理复杂度较高,调色板(PLT,Palette)模式的率失真代价通常会比标准Intra模式好,因此,可以跳过标准Intra模式,直接执行PLT模式。
在一些实施例中,终端可以通过以下方式确定各编码块的纹理复杂度:分别获取各编码块的梯度值,将梯度值作为相应编码块的纹理复杂度;相应的,可以通过以下方式确定梯度值对应编码块满足模式跳过条件:分别将各编码块的梯度值与梯度阈值进行比较,得到比较结果;当比较结果表征梯度值达到梯度阈值时,确定梯度值对应的编码块满足模式跳过条件。
在实际实施时,可以通过编码块的梯度值来描述复杂度,并预设一个梯度阈值,通过比较梯度值和预设的梯度阈值,判断梯度值是否达到预设的梯度阈值,若是,跳过标准Intra模式,直接执行PLT模式;否则,确定需要执行标准Intra模式。
这里,设置的梯度阈值越小,需要执行标准Intra模式的概率越低,当不需要执行Intra模式时,可以降低计算的复杂度,提升编码的速度。
在一些实施例中,可以通过以下方式获取各编码块的梯度值:
针对各编码块分别执行以下操作:将编码块划分为多个编码子块;获取对应编码块的多个编码子块的梯度值;将对应编码块的多个编码子块的梯度值之和,作为编码块的梯度值。
在实际实施时,可以将编码块划分为多个大小相同的编码子块,以分别获取各编码子块的梯度值;在得到各编码子块的梯度值后,对各编码子块的梯度值进行求和,得到编码快的梯度值。
例如,图4是本申请实施例提供的编码块划分的示意图,参见图4,可以将目标视频帧划分为4个16×16编码块,每个16×16编码块可以划分为4个8×8编码子块。
在一些实施例中,可以通过以下方式获取各编码子块的梯度值:当目标编码帧满足第一条件时,通过帧内块复制(IBC,Intra Block Copy)模式,分别对各编码子块进行编码,并在通过IBC模式对编码子块进行编码的过程中,确定相应的编码子块的梯度值。
这里,采用IBC模式时,编码子块会在目标视频帧已重建的编码子块中搜索最相似的块作为预测子块,并计算块向量(BV,Block Bector),其中,块向量表明当前块和预测子块的位置关系。
在实际实施时,图5是本申请实施例提供的执行帧内块复制模式的示意图,参见图5,在目标视频帧的重建部分搜索与编码子块501相似的预测子块502,将从编码子块501所处位置到预测子块502所处位置的向量,作为块向量503。其中,当前预测子块和当前编码子块必须在同一条带(slice)和同一个图块(t ile)中,以避免存在不同slice或tile的依赖关系,影响slice和tile的并行处理能力;并且,预测子块需要限制在图5中灰色区域内,以避免影响波前并行处理能力。
在实际实施时,可以基于哈希(Hash)的搜索方法寻找最优块向量。例如,对于8x8编码子块,在Hash表内的每个节点表示一个BV候选项在目标视频帧中的位置,只对和当前块有相同Hash值的BV候选项进行检查,Hash值长度为16bit。
这里,16bit的Hash值可以通过以下公式计算得到:
H=msb(dc0,3)<<13+msb(dc1,1)<<10+msb(dc2,3)<<7+msb(dc3,3)<<4+msb(gradBLK,4) (1),
其中,msb(X,n)表示X的最高n个有效位,dc0,dc1,dc2,dc3分别表示8x8编码子块的4个4x4子块的DC值,gradBLK表示8x8编码子块的梯度值。
也即,在执行IBC的过程中,需要计算编码子块的梯度值,基于此,可以利用该编码子块的梯度值,得到编码块的梯度值,以避免重新计算编码子块的梯度值,如此,能够避免增加额外的计算量,提升编码的效率。
在一些实施例中,可以通过以下方式确定目标编码帧满足第一条件:获取目标编码帧的类型;当目标编码帧的类型指示目标编码帧为帧内编码帧时,确定目标编码帧满足第一条件;当目标编码帧的类型指示目标编码帧为前向预测帧时,获取目标编码块当前的编码模式,并在编码块当前的编码模式不为跳过模式、且采用帧间模式对编码块进行编码得到的残差量化值不为零时,确定目标编码帧满足第一条件。
在实际实施时,获取目标编码帧的类型,如I帧(帧内编码帧)、P帧(前向预测编码帧),当目标编码帧为I帧时,确定目标编码帧满足第一条件,直接通过IBC模式,分别对各编码子块进行编码;当目标编码帧为P帧时,需要判断编码块当前的编码模式是否为跳过(skip)模式,以及采用帧间(Inter)模式时得到的残差量化值是否为零;当编码块当前的编码模式不为skip模式,且采用Inter模式时得到的残差量化值为零时,确定目标编码帧满足第一条件,通过IBC模式,分别对各编码子块进行编码。
在一些实施例中,可以通过以下方式获取对应编码块的多个编码子块的梯度值:
对于每个编码子块,执行以下处理:确定编码子块中各像素的水平梯度及垂直梯度;获取编码子块中各像素对应的水平梯度和垂直梯度的梯度平均值;将编码子块包含的各像素对应的梯度平均值的和,作为编码子块的梯度值。
在实际实施时,对于编码子块中,除了首行和首列所有像素,计算像素对应的水平梯度和垂直梯度,然后取水平梯度和垂直梯度的平均值,作为该像素的梯度值;对编码子块中所有像素对应梯度值进行求和,就可以得到编码子块的梯度值。
这里,对于编码子块中,除了首行和首列所有像素,可以获取该像素与相邻左侧像素间像素差的绝对值,将该像素与相邻左侧像素间像素差的绝对值作为该像素对应的水平梯度;并获取该像素与相邻上方像素间像素差的绝对值,将该像素与相邻上方像素间像素差的绝对值作为该像素对应的垂直梯度。
例如,对于一个8x8编码子块,可以通过公式(2)及公式(3),获取编码子块的梯度值:
g(i,j)=(|p(i,j-1)-p(i,j)|+|p(i-1,j)-p(i,j)|)/2 (2)
其中,g(i,j)表示编码子块中第i行第j列的像素对应的梯度值,p(i,j)表示编码子块中第i行第j列的像素,g表示编码子块的梯度值。
对于16x16编码块,在计算得到16x16编码块包括的4个8x8编码子块的梯度值之后,可以通过公式(4),获取16x16编码块的梯度值:
在一些实施例中,可以通过以下方式通过PLT模式对编码块进行编码:生成调色板,调色板为包含编码块中至少一个颜色值的表;分别获取编码块中各像素在表中的索引,将索引作为对编码块的编码结果。
这里,调色板为包含编码块中至少一个颜色值的表,表中每个条目包含三个分量,对于4:2:0或4:2:2颜色格式,如果当前位置像素没有色度分量,就只使用第一个分量重建像素。在调色表中有一个特殊索引escape index用于那些在表中没有对应值的像素。在这种情况下,码流中除了要传输该像素的索引es cape index,还要传输该像素的量化值。
图6是本申请实施例提供的执行调色板模式的示意图,参见图6,这里编码块的大小为4×4,调色板大小为4,根据像素的颜色,获取像素在调色板中的索引,如第一行第一列的像素的索引为2;若在调色板中没有对应某一像素的值,则其索引为escape对应的索引,如第二行第二列的像素对应的就是esca pe索引4。
在一些实施例中,可以通过以下方式通过PLT模式对编码块进行编码:生成调色板,调色板为包含编码块中至少一个颜色值的表;根据预设的像素采样间隔,对编码块中的像素进行采样,得到多个采样像素;分别获取编码块中各采样像素在表中的索引,将索引作为对编码块的编码结果。
这里,可以通过降低PLT模式的采样精度,来简化PLT选择及实际PLT熵编码复杂度,进而降低PLT模式的计算复杂度。
在实际应用中,若跳过帧内(Intra)模式,直接执行PLT模式,由于没有执行Intra模式,使得计算的复杂度降低,这里,可以适当提升PLT模式的精度,例如,可以将PLT模式的采样精度从3x3提升到3x2像素区域。如此,能够同时提升编码的质量和速度。
在一些实施例中,终端还可以基于纹理复杂度确定相应的编码块不满足模式跳过条件时,通过帧内模式对编码块进行编码;获取通过帧内模式对编码块进行编码时的第二率失真代价;当第二率失真代价大于率失真阈值时,通过调色板模式对编码块进行编码。
在实际实施时,通过Intra模式对编码块进行编码,得到编码结果;然后根据Intra模式的编码结果,计算通过帧内模式对编码块进行编码时的第二率失真代价,进而判断是否还需要通过调色板模式对编码块进行编码。若第二率失真代价大于率失真阈值时,通过调色板模式对编码块进行编码;若第二率失真代价小于率失真阈值时,则表示Intra模式为最优编码模式,因此,不需要再通过调色板模式对编码块进行编码。
需要说明的是,仅仅在第二率失真代价大于率失真阈值时,才通过调色板模式对编码块进行编码,如此,能够减少计算的复杂度。也即,在第二率失真代价小于率失真阈值时,即使调色板模式对编码块进行编码的结果可能优于Intra模式,但由于编码质量已经满足要求,因此无需增加多余的计算。
在一些实施例中,终端可以通过以下方式对,分别通过帧内模式包括的垂直模式、水平模式、直流模式及平面模式,对编码块进行编码;
相应的,可以通过以下方式获取通过帧内模式对编码块进行编码时的第二率失真代价:分别获取通过垂直模式、水平模式、直流模式及平面模式进行编码时的绝对变换误差和;根据获取的绝对变换误差和,将获取的绝对变换误差和中的最小值所对应的模式作为最优帧内模式;获取通过最优帧内模式对编码块进行编码时的第二率失真代价。
这里,绝对误差变换和(SATD,Sum of Absolute Transformed Difference)指的是hadamard变换后再绝对值求和。
在实际实施时,帧内(Intra)模式包括4种模式,即垂直(vertical)模式、水平(horizontal)模式、直流(DC)模式及平面(plane)模式,分别通过这四种模式对编码块进行编码,以获取4种模式对应的编码块的预测值;对于每种模式,计算编码块的预测值与实际值之间的差得到残差;这里,残差是一个矩阵,对该矩阵进行hadamard变换,再对矩阵元素绝对值求和,得到对应各模式的绝对误差变换和。
这里,绝对误差变换和的值越小,说明相应模式越好,基于此,可以通过比较四个模式对应的绝对误差变换和,以选取最小值所对应的模式为最优帧内模式。
本申请通过分别确定各编码块的纹理复杂度;基于各编码块的纹理复杂度,确定相应的编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过帧内模式,并通过调色板模式对编码块进行编码,以在多个编码块的编码完成时实现对目标视频帧的编码;如此,能够通过在纹理复杂度满足模式跳过条件时,跳过帧内模式,以在保证视频帧编码质量情况下,提升视频帧编码的速度。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
在相关技术中,因为很难采用SIMD技术对PLT模块做大规模并行计算,直接把PLT模块放到现有HEVC420编码器中会带来巨幅的复杂度增加,因此局部的引入PLT模块是必须的,首先PLT模式只会用在16x16和32x32块,8x8块使用IBC模式,Intra4x4和transformskip。然后把PLT模块的画板采样精度从逐像素降为每3x3像素采样一个,这样可以简化了画板选择流程和减少了实际PLT熵编码复杂度,可以大幅度地减少了PLT模块的计算复杂度,同时也在增加一定计算复杂度的情况下获得了PLT模块的一些编码增益。然而,当对HEVC编码器和IBC模式做过深度优化之后,原本做过优化的PLT模式的计算量又变得比较大了,需要对其做进一步的深度优化提升尤其在人工智能(AI,Artificial Intelligence)模式下的SCC编码器速度。
基于此,提出本申请实施例的视频编码方法,图7是本申请实施例提供的视频编码方法的流程示意图,参见图7,本申请实施例提供的视频编码方法包括:
步骤701:将目标视频帧划分为多个16x16编码块。
这里,将目标视频帧划分为多个16x16编码块,以编码块为单位,逐个对各编码块进行编码。
步骤702:获取目标视频帧的类型,当目标视频帧为I帧,执行步骤703;当目标视频帧为P帧,执行步骤709。
步骤703:对于目标视频帧的每个编码块,将16x16编码块划分为4个8x8编码子块,分别通过IBC模式对各编码子块进行预测。
这里,采用IBC模式时,编码子块会在目标视频帧已重建的编码子块中搜索最相似的块作为预测子块,并计算块向量(BV,Block Bector),其中,块向量表明当前块和预测子块的位置关系。
在实际实施时,可以基于哈希(Hash)的搜索方法寻找最优块向量,在计算编码子块的Hash值时,会计算编码子块的梯度值,因此,可以利用通过IBC模式对各8x8编码子块进行预测的中间结果,来获取各编码子块的梯度值。
步骤704:在通过IBC模式对各8x8编码子块进行预测的过程中,确定各编码子块的梯度值。
步骤705:对各8x8编码子块的梯度值进行求和,得到16x16编码块的梯度值。
这里,对于8x8编码子块中,除了首行和首列所有像素,可以获取该像素与相邻左侧像素间像素差的绝对值,将该像素与相邻左侧像素间像素差的绝对值作为该像素对应的水平梯度;并获取该像素与相邻上方像素间像素差的绝对值,将该像素与相邻上方像素间像素差的绝对值作为该像素对应的垂直梯度;然后取水平梯度和垂直梯度的平均值,作为该像素的梯度值;对8x8编码子块中所有像素对应梯度值进行求和,就可以得到8x8编码子块的梯度值。
也即,可以通过以下公式获取8x8编码子块的梯度值:
g(i,j)=(|p(i,j-1)-p(i,j)|+|p(i-1,j)-p(i,j)|)/2;
其中,g(i,j)表示编码子块中第i行第j列的像素对应的梯度值,p(i,j)表示编码子块中第i行第j列的像素,g表示编码子块的梯度值。这里,像素指的是亮度像素。
在得到8x8编码子块中4个8x8编码子块的梯度值之后,可以通过以下公式得到8x8编码子块的梯度值:
步骤706:判断16x16编码块的梯度值是否小于梯度阈值,若是,执行步骤707;否则,执行步骤708。
这里,用梯度值来描述纹理复杂度,当16x16编码块的梯度值小于梯度阈值时,表示16x16编码块的纹理信息相对简单,标准Intra模式是有必要计算的;当16x16编码块的梯度值大于或等于梯度阈值时,表示16x16编码块的纹理信息相对复杂,PLT模式有很大概率获得比标准Intra模式好的率失真代价。
对于梯度阈值的设置,梯度阈值越小,执行标准Intra模式概率越低,能够降低计算的复杂度,以提升编码的速度。
步骤707:通过Intra16 x16模式对16x16编码块进行预测。
步骤708:通过PLT模式对16x16编码块进行预测。
当跳过步骤707,直接执行步骤708时,由于没有执行标准Intra模式,使得计算的复杂度降低,这里,可以提升PLT模式的精度,例如,可以将PLT模式的采样精度从3x3提升到3x2像素区域。如此,能够同时提升编码的质量和速度。
步骤709:对于目标视频帧对应的每个16x16编码块,判断该编码块是否为skip块,若是,则执行步骤712;否则,执行步骤710。
步骤710:通过标准Inter模式对16x16编码块进行预测,以得到采用标准Inter模式时的CBP信息。
步骤711:判断用标准Inter模式时的CBP信息是否为零,若是,执行步骤712;否则执行步骤703。
这里,CBP信息用来反映该编码块编码中残差情况的语法元素。CBP信息共有6位,其中前面2位代表UV分量;后面4位是Y分量,分别代表编码块内的4个8x8编码子块,如果任意一位为0,表明对应的8x8块中所有变换系数level(transform coefficient levels也就是对像素残差进行变换、量化后的矩阵内的值,以后统称level)全部都是0,否则表明对应的8x8块中的变换系数level不全为0。
步骤712:分别确定对应各编码块的最优编码模式,以基于确定实现对目标视频帧的编码。
这里,在执行各编码模式后,可以根据各编码模式的执行结果,选择出对应编码块的最优编码模式,以确定通过最优编码模式对该编码块进行编码。在确定目标视频帧中所有编码块对应的最优编码模式后,便可以实现对目标视频帧的编码。
采用本申请实施例具有以下有益效果:
对于QQ265 SCC 444编码器,当Tintra16x16_skip设置为1024,PLT模块的画板采样精度设为3x2。在常用屏幕场景视频下,AI模式下编码速度有10%的提升,同时BD-rate有-0.27%的提升;长时间播放(LP,Long Play)模式下编码复杂度有3.1%的下降,同时BD-rate有-0.23%的提升。
下面继续说明本申请实施例提供的视频编码装置455的实施为软件模块的示例性结构,图8是本申请实施例提供的视频编码装置的组成结构示意图,如图8所示,本申请实施例提供的视频编码装置455包括:
划分模块4551,用于对待编码的目标视频帧进行编码块划分,得到对应所述目标视频帧的多个编码块;
确定模块4552,用于分别确定各所述编码块的纹理复杂度;
编码模块4553,用于基于各所述编码块的纹理复杂度,确定相应的所述编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过所述帧内模式,并
通过调色板模式对所述编码块进行编码,以在所述多个编码块的编码完成时实现对所述目标视频编码。
在一些实施例中,所述确定模块4552,还用于分别获取各所述编码块的梯度值,将所述梯度值作为相应编码块的纹理复杂度;
分别将各所述编码块的梯度值与梯度阈值进行比较,得到比较结果;
当所述比较结果表征所述梯度值达到梯度阈值时,确定所述梯度值对应的所述编码块满足模式跳过条件。
在一些实施例中,所述确定模块4552,还用于针对各所述编码块分别执行以下操作:
将所述编码块划分为多个编码子块;
获取对应所述编码块的多个编码子块的梯度值;
将对应所述编码块的多个编码子块的梯度值之和,作为所述编码块的梯度值。
在一些实施例中,所述确定模块4552,还用于当所述目标编码帧满足第一条件时,通过帧内块复制IBC模式,分别对各所述编码子块进行编码,并
在通过所述IBC模式对所述编码子块进行编码的过程中,确定相应的编码子块的梯度值。
在一些实施例中,所述确定模块,还用于获取所述目标编码帧的类型;
当所述目标编码帧的类型指示所述目标编码帧为帧内编码帧时,确定所述目标编码帧满足第一条件;
当所述目标编码帧的类型指示所述目标编码帧为前向预测帧时,获取目标编码块当前的编码模式,并
在所述编码块当前的编码模式不为跳过模式、且采用所述帧间模式对所述编码块进行编码得到的残差量化值不为零时,确定所述目标编码帧满足第一条件。
在一些实施例中,所述确定模块4552,还用于对于每个所述编码子块,执行以下处理:
确定所述编码子块中各像素的水平梯度及垂直梯度;
获取所述编码子块中各像素对应的水平梯度和垂直梯度的梯度平均值;
将所述编码子块包含的各像素对应的所述梯度平均值的和,作为所述编码子块的梯度值。
在一些实施例中,所述编码模块4553,还用于获取所述目标编码帧的类型;
当所述目标编码帧的类型指示所述目标编码帧为前向预测帧时,获取所述编码块当前的编码模式;当所述编码块当前的编码模式为跳过模式时,结束针对所述编码块的处理;或者,
当所述编码块当前的编码模式为帧间模式、且采用所述帧间模式对所述编码块进行编码得到的残差量化值为零时,结束针对所述编码块的处理。
在一些实施例中,所述编码模块4553,还用于获取采用跳过模式对所述编码块进行编码时的第一率失真代价;
当所述第一率失真代价不大于率失真阈值时,确定所述编码块当前的编码模式为跳过模式。
在一些实施例中,所述编码模块4553,还用于获取采用所述帧间模式对编码块进行编码时,所述编码块的预测值以及编码块的实际值;
比较所述编码块的所述实际值与所述预测值,得到所述编码块的实际值与所述预测值之间的残差;
对所述残差进行编码,得到残差量化值。
在一些实施例中,所述编码模块4553,还用于生成调色板,所述调色板为包含所述编码块中至少一个颜色值的表;
分别获取所述编码块中各像素在所述表中的索引,以实现对所述编码块进行编码。
在一些实施例中,所述编码模块4553,还用于生成调色板,所述调色板为包含所述编码块中至少一个颜色值的表;
根据预设的像素采样间隔,对所述编码块中的像素进行采样,得到多个采样像素;
分别获取所述编码块中各所述采样像素在所述表中的索引,将所述索引作为对所述编码块的编码结果。
在一些实施例中,所述编码模块4553,还用于基于所述纹理复杂度确定相应的所述编码块不满足模式跳过条件时,通过帧内模式对所述编码块进行编码;
获取通过帧内模式对所述编码块进行编码时的第二率失真代价;
当所述第二率失真代价大于率失真阈值时,通过调色板模式对所述编码块进行编码。
在一些实施例中,所述编码模块4553,还用于分别通过所述帧内模式包括的垂直模式、水平模式、直流模式及平面模式,对所述编码块进行编码;
所述获取通过帧内模式对所述编码块进行编码时的第二率失真代价,包括:
分别获取通过垂直模式、水平模式、直流模式及平面模式进行编码时的绝对变换误差和;
根据获取的绝对变换误差和,将获取的绝对变换误差和中的最小值所对应的模式作为最优帧内模式;
获取通过所述最优帧内模式对所述编码块进行编码时的第二率失真代价。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的视频编码方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3示出的方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种视频编码方法,其特征在于,所述方法包括:
对待编码的目标视频帧进行编码块划分,得到对应所述目标视频帧的多个编码块;
分别确定各所述编码块的纹理复杂度;
基于各所述编码块的纹理复杂度,确定相应的所述编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过所述帧内模式,并
通过调色板模式对所述编码块进行编码,以在所述多个编码块的编码完成时实现对所述目标视频帧的编码。
2.如权利要求1所述的方法,其特征在于,所述分别确定各所述编码块的纹理复杂度,包括:
分别获取各所述编码块的梯度值,将所述梯度值作为相应编码块的纹理复杂度;
所述分别确定各所述编码块的纹理复杂度之后,所述方法还包括:
分别将各所述编码块的梯度值与梯度阈值进行比较,得到比较结果;
当所述比较结果表征所述梯度值达到梯度阈值时,确定所述梯度值对应的所述编码块满足模式跳过条件。
3.如权利要求2所述的方法,其特征在于,所述分别获取各所述编码块的梯度值,包括:
针对各所述编码块分别执行以下操作:
将所述编码块划分为多个编码子块;
获取对应所述编码块的多个编码子块的梯度值;
将对应所述编码块的多个编码子块的梯度值之和,作为所述编码块的梯度值。
4.如权利要求3所述的方法,其特征在于,所述获取对应所述编码块的多个编码子块的梯度值,包括:
当所述目标编码帧满足第一条件时,通过帧内块复制IBC模式,分别对各所述编码子块进行编码,并
在通过所述IBC模式对所述编码子块进行编码的过程中,确定相应的编码子块的梯度值。
5.如权利要求4所述的方法,其特征在于,所述通过IBC模块,分别对各所述编码子块进行编码之前,所述方法还包括:
获取所述目标编码帧的类型;
当所述目标编码帧的类型指示所述目标编码帧为帧内编码帧时,确定所述目标编码帧满足第一条件;
当所述目标编码帧的类型指示所述目标编码帧为前向预测帧时,获取目标编码块当前的编码模式,并
在所述编码块当前的编码模式不为跳过模式、且采用所述帧间模式对所述编码块进行编码得到的残差量化值不为零时,确定所述目标编码帧满足第一条件。
6.如权利要求3所述的方法,其特征在于,所述获取对应所述编码块的多个编码子块的梯度值,包括:
对于每个所述编码子块,执行以下处理:
确定所述编码子块中各像素的水平梯度及垂直梯度;
获取所述编码子块中各像素对应的水平梯度和垂直梯度的梯度平均值;
将所述编码子块包含的各像素对应的所述梯度平均值的和,作为所述编码子块的梯度值。
7.如权利要求1所述的方法,其特征在于,所述分别确定各所述编码块的纹理复杂度之前,所述方法还包括:
获取所述目标编码帧的类型;
当所述目标编码帧的类型指示所述目标编码帧为前向预测帧时,获取所述编码块当前的编码模式;
当所述编码块当前的编码模式为跳过模式时,结束针对所述编码块的处理;或者,
当所述编码块当前的编码模式为帧间模式、且采用所述帧间模式对所述编码块进行编码得到的残差量化值为零时,结束针对所述编码块的处理。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
获取采用跳过模式对所述编码块进行编码时的第一率失真代价;
当所述第一率失真代价不大于率失真阈值时,确定所述编码块当前的编码模式为跳过模式。
9.如权利要求7所述的方法,其特征在于,所述采用所述帧间模式对编码块进行编码时的残差量化值,包括:
获取采用所述帧间模式对编码块进行编码时,所述编码块的预测值以及编码块的实际值;
比较所述编码块的所述实际值与所述预测值,得到所述编码块的实际值与所述预测值之间的残差;
对所述残差进行编码,得到残差量化值。
10.如权利要求1~9任一项所述的方法,其特征在于,所述通过调色板模式对所述编码块进行编码,包括:
生成调色板,所述调色板为包含所述编码块中至少一个颜色值的表;
分别获取所述编码块中各像素在所述表中的索引,将所述索引作为对所述编码块的编码结果。
11.如权利要求1~9任一项所述的方法,其特征在于,所述通过调色板模式对所述编码块进行编码,包括:
生成调色板,所述调色板为包含所述编码块中至少一个颜色值的表;
根据预设的像素采样间隔,对所述编码块中的像素进行采样,得到多个采样像素;
分别获取所述编码块中各所述采样像素在所述表中的索引,将所述索引作为对所述编码块的编码结果。
12.如权利要求1~9任一项所述的方法,其特征在于,所述方法还包括:
基于所述纹理复杂度确定相应的所述编码块不满足模式跳过条件时,通过帧内模式对所述编码块进行编码;
获取通过帧内模式对所述编码块进行编码时的第二率失真代价;
当所述第二率失真代价大于率失真阈值时,通过调色板模式对所述编码块进行编码。
13.如权利要求12所述的方法,其特征在于,所述通过帧内模式对所述编码块进行编码,包括:
分别通过所述帧内模式包括的垂直模式、水平模式、直流模式及平面模式,对所述编码块进行编码;
所述获取通过帧内模式对所述编码块进行编码时的第二率失真代价,包括:
分别获取通过垂直模式、水平模式、直流模式及平面模式进行编码时的绝对变换误差和;
根据获取的绝对变换误差和,将获取的绝对变换误差和中的最小值所对应的模式作为最优帧内模式;
获取通过所述最优帧内模式对所述编码块进行编码时的第二率失真代价。
14.一种视频编码装置,其特征在于,所述装置包括:
划分模块,用于对待编码的目标视频帧进行编码块划分,得到对应所述目标视频帧的多个编码块;
确定模块,用于分别确定各所述编码块的纹理复杂度;
编码模块,用于基于各所述编码块的纹理复杂度,确定相应的所述编码块满足模式跳过条件时,对于顺序执行的帧内模式及调色板模式,跳过所述帧内模式,并
通过调色板模式对所述编码块进行编码,以在所述多个编码块的编码完成时实现对所述目标视频帧的编码。
15.一种计算机设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至13任一项所述的视频编码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010818441.8A CN114079769A (zh) | 2020-08-14 | 2020-08-14 | 视频编码方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010818441.8A CN114079769A (zh) | 2020-08-14 | 2020-08-14 | 视频编码方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114079769A true CN114079769A (zh) | 2022-02-22 |
Family
ID=80279484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010818441.8A Pending CN114079769A (zh) | 2020-08-14 | 2020-08-14 | 视频编码方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114079769A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116260973A (zh) * | 2023-03-31 | 2023-06-13 | 北京百度网讯科技有限公司 | 一种时域滤波方法、装置、电子设备及存储介质 |
CN117336548A (zh) * | 2023-10-16 | 2024-01-02 | 北京百度网讯科技有限公司 | 一种视频编码的处理方法、装置、设备及存储介质 |
CN117596392A (zh) * | 2023-09-28 | 2024-02-23 | 书行科技(北京)有限公司 | 编码块的编码信息确定方法及相关产品 |
-
2020
- 2020-08-14 CN CN202010818441.8A patent/CN114079769A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116260973A (zh) * | 2023-03-31 | 2023-06-13 | 北京百度网讯科技有限公司 | 一种时域滤波方法、装置、电子设备及存储介质 |
CN116260973B (zh) * | 2023-03-31 | 2024-03-19 | 北京百度网讯科技有限公司 | 一种时域滤波方法、装置、电子设备及存储介质 |
CN117596392A (zh) * | 2023-09-28 | 2024-02-23 | 书行科技(北京)有限公司 | 编码块的编码信息确定方法及相关产品 |
CN117336548A (zh) * | 2023-10-16 | 2024-01-02 | 北京百度网讯科技有限公司 | 一种视频编码的处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7351463B2 (ja) | 画像符号化方法及び装置、画像復号方法及び装置並びにプログラム | |
RU2665237C1 (ru) | Устройство кодирования движущихся изображений, устройство декодирования движущихся изображений, способ кодирования движущихся изображений и способ декодирования движущихся изображений | |
CN1956546B (zh) | 图像编码装置 | |
US10455229B2 (en) | Prediction mode selection method, apparatus and device | |
CN103918273B (zh) | 确定用于变换系数的二进制码字的方法 | |
JP4495580B2 (ja) | 面内予測装置および面内予測方法 | |
JP6807987B2 (ja) | 画像符号化装置、動画像復号装置、動画像符号化データ及び記録媒体 | |
JP4707118B2 (ja) | 動画像符号化装置および動画像復号装置のイントラ予測方式 | |
US20120044994A1 (en) | Image predictive encoding and decoding device | |
CN104581177B (zh) | 一种结合块匹配和串匹配的图像压缩方法和装置 | |
US20090225871A1 (en) | Image encoding apparatus | |
KR20110114524A (ko) | 화상 예측 부호화 장치, 방법 및 프로그램, 화상 예측 복호 장치, 방법 및 프로그램, 및 부호화·복호 시스템 및 방법 | |
JP2007189276A (ja) | 画像圧縮装置及び画像圧縮プログラム | |
CN114930852B (zh) | 用于视频编解码的方法和装置 | |
JP4074868B2 (ja) | 画像符号化制御方法及びその装置 | |
CN114079769A (zh) | 视频编码方法、装置、设备及计算机可读存储介质 | |
CN111654696B (zh) | 一种帧内的多参考行预测方法、装置、存储介质及终端 | |
KR100771640B1 (ko) | 고속 모드 결정 기능을 구비한 h.264 인코더 | |
CN115118990B (zh) | 色度预测方法、装置、编码设备、解码设备及存储介质 | |
CN109587502B (zh) | 一种帧内压缩的方法、装置、设备及计算机可读存储介质 | |
JP2024511272A (ja) | イントラ予測方法、符号器、復号器及び記憶媒体 | |
CN112738522A (zh) | 视频编码方法、装置 | |
JP2011142699A (ja) | 画像符号化装置、画像符号化方法 | |
JP6825699B2 (ja) | 動画像処理装置、動画像処理方法、及び、動画像処理プログラム | |
KR101525325B1 (ko) | 인트라 예측 모드 결정 방법 및 그 장치 |
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 |