CN115118964A - 视频编码方法、装置、电子设备及计算机可读存储介质 - Google Patents
视频编码方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115118964A CN115118964A CN202210730091.9A CN202210730091A CN115118964A CN 115118964 A CN115118964 A CN 115118964A CN 202210730091 A CN202210730091 A CN 202210730091A CN 115118964 A CN115118964 A CN 115118964A
- Authority
- CN
- China
- Prior art keywords
- unit
- coded
- encoded
- coding
- 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
Links
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/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/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
- H04N19/105—Selection 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
Abstract
本申请实施例提供了一种视频编码方法、装置、电子设备及计算机可读存储介质,涉及图像处理、多媒体、计算机视觉及云技术领域。该方法包括:对于获取的待编码视频流中的每个待编码帧,将该待编码帧划分得到多个待编码单元;对于每个待编码单元,根据其包含的像素点的信息,确定颜色丰富程度,并基于确定的颜色丰富程度,确定对应的编码方式集合中是否包括调色板模式,从确定的编码方式集合中确定出目标编码方式,并采用目标编码方式对待编码单元进行编码。基于本申请实施例提供的方案,可以兼顾编码性能和编码效率的同时,确定出更适合的目标编码方式,提升编码效果,更好的满足实际应用需求。
Description
技术领域
本申请涉及图像处理、多媒体、计算机视觉及云技术领域,具体而言,本申请涉及一种视频编码方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
随着计算机应用的发展,在视频传输的过程中,通常需要先对视频数据进行压缩(即编码),得到编码后的视频数据,再对编码后的视频数据进行传输。
相关技术中,已经有很多种编码方式,对于视频的编码处理,通常是根据应用场景选择其中的一种进行编码处理。但基于相关技术中所选取的编码方式进行编码时,要么编码过程复杂度比较高、编码效率比较低,要不编码性能不佳,无法很好的满足各种应用场景,仍需改进。
发明内容
本申请实施例提供了一种视频编码方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够在整体兼顾视频编码过程的复杂度和视频编码效率的同时,选择出更加合适的编码方式。
根据本申请实施例的一个方面,提供了一种视频编码方法,该方法包括:
获取待编码视频流;
对于待编码视频流中的每个待编码帧,将该待编码帧进行划分,得到多个待编码单元;
对于每个待编码单元,根据该待编码单元中包含的像素点的信息,确定该待编码单元的颜色丰富程度;
对于每个待编码单元,基于该待编码单元的颜色丰富程度,确定该待编码单元的编码方式集合,待编码方式集合为第一集合或第二集合,第一集合包括至少两种预设的编码方式,至少两种预设的编码方式包括调色板模式,第二集合包括第一集合中除调色板模式之外的编码方式;
对于每个待编码单元,从该待编码单元的编码方式集合中确定出目标编码方式,并采用目标编码方式对该待编码单元进行编码。
根据本申请实施例的另一个方面,提供了一种视频编码装置,该装置包括:
视频流获取模块,用于获取待编码视频流;
待编码单元划分模块,用于对于待编码视频流中的每个待编码帧,将该待编码帧进行划分,得到多个待编码单元;
颜色丰富程度确定模块,用于对于每个待编码单元,根据该待编码单元中包含的像素点的信息,确定该待编码单元的颜色丰富程度;
编码方式集合确定模块,用于对于每个待编码单元,基于该待编码单元的颜色丰富程度,确定该待编码单元的编码方式集合,待编码方式集合为第一集合或第二集合,第一集合包括至少两种预设的编码方式,至少两种预设的编码方式包括调色板模式,第二集合包括第一集合中除调色板模式之外的编码方式;
编码模块,用于对于每个待编码单元,从该待编码单元的编码方式集合中确定出目标编码方式,并采用目标编码方式对该待编码单元进行编码。
在一种可能的实现方式中,对于每个待编码单元,上述颜色丰富程度确定模块在根据该待编码单元中包含的像素点的信息,确定该待编码单元的颜色丰富程度时,可以具体用于:
确定该待编码单元中包含的像素值的种类,上述像素点的信息包括像素值的种类;
其中,该待编码单元中包含的像素值的种类表征了该待编码单元的颜色丰富程度。
在一种可能的实现方式中,对于每个待编码单元,上述编码方式集合确定模块,在基于该待编码单元的颜色丰富程度,确定该待编码单元的编码方式集合时,可以具体用于:
若该待编码单元的颜色丰富程度小于或等于参考值,则确定该待编码单元的编码方式集合为第一集合;
若该待编码单元的颜色丰富程度大于上述参考值,则确定该待编码单元的编码方式集合为第二集合。
在一种可能的实现方式中,上述像素点的信息还包括待编码单元中包含的像素点的数量,每个待编码单元对应的参考值是基于待编码单元中包含的像素点的数量确定的,每个待编码单元对应的参考值与该待编码单元中包含的像素点的数量成正相关。
在一种可能的实现方式中,一个待编码单元中包含的像素点的数量为64、256或1024;
对于每个待编码单元,在该待编码单元中包含的像素点的数量为64时,该待编码单元对应的参考值为16,在该待编码单元中包含的像素点的数量为256时,该待编码单元对应的参考值为32,在该待编码单元中包含的像素点的数量为1024时,该待编码单元对应的参考值为64。
在一种可能的实现方式中,对于每个待编码单元,上述编码模块在从该待编码单元的编码方式集合中确定出目标编码方式时,可以具体用于:
在该待编码单元的编码方式集合中包括至少两种编码方式时,确定该待编码单元的编码方式集合中每种编码方式对应的编码代价,将编码代价最低的编码方式确定为目标编码方式;
在该待编码单元的编码方式集合中包括一种编码方式时,将该待编码单元的编码方式集合中的编码方式确定为目标编码方式。
在一种可能的实现方式中,上述待编码视频流可以为屏幕视频流。
在一种可能的实现方式中,上述装置还包括视频流发送模块,
该视频流发送模块用于在得到待编码视频流对应的编码后的视频流之后,将编码后的视频流以及解码指示信息发送到接收方,以使接收方基于该解码指示信息对该编码后的视频流进行解码,得到解码后的视频内容;
其中,上述解码指示信息指示了该编码后的视频流对应的解码方式,上述解码指示信息是基于该待编码视频流中各待编码单元对应的目标编码方式确定的。
根据本申请实施例的又一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现上述方法的步骤。
根据本申请实施例的又一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
根据本申请实施例的又一个方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
在本申请实施例提供的视频编码方法中,在待编码视频流中待编码帧进行编码时,会将待编码帧进行为多个待编码单元进行编码,其中,对于待编码帧的多个待编码单元,并非只是简单的选择一种编码方式对各个编码单元进行编码,而是根据每个待编码单元各自所包含的像素点的信息来确定适用于该待编码单元的目标编码方式,具体地,可以根据每个待编码单元的颜色丰富程度,来确定是否考虑将调色板模式作为该待编码单元的候选编码方式之一,并进一步从候选编码方式中确定出该待编码单元的目标编码方式。
本申请实施例提供的编码方案,对于同一待编码帧,可以根据待编码视频中各个待编码单元各自的像素点的信息,可以在兼顾编码性能和编码效率的同时,选择出视频帧中每一个待编码单元所适合的目标编码方式。采用该方法,可以在保证待编码帧整体的编码性能的前提下,相比于直接对整个视频帧都直接采用同一种编码模式,可以有效降低了编码的复杂度,提高了编码速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1示出了本申请实施例提供的一种终端的示意图;
图2示出了本申请实施例提供的一种视频分享系统的框架图;
图3示出了本申请实施例提供的一种视频编码方法的信令交互图;
图4示出了本申请实施例提供的一种获取屏幕视频的适用场景的示意图;
图5示出了本申请实施例提供的一种待编码单元的示意图;
图6a示出了本申请实施例提供的一种调色板的示意图;
图6b示出了本申请实施例提供的对应于图6a的索引图的示意图;
图7示出了本申请实施例提供的一种适用场景的架构示意图;
图8示出了本申请实施例提供的一种视频编码方法的流程图;
图9示出了本申请实施例提出的一种视频编码装置的示意图;
图10示出了本申请实施例所适用的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
为了更好的理解和说明本申请实施例提供的方案,下面对本申请涉及的术语及相关技术进行说明:
由于视频是基于图像和图像之间的关系形成的,在对视频进行压缩的过程中,每个视频帧代表一幅图像,在对视频进行编码时,可以将视频帧分为I帧、P帧和B帧。
其中,I帧,即关键帧,属于帧内预测帧,利用帧内信息进行预测,解码时只需要本帧数据就可以完成解码出该帧对应的图像。
P帧表示当前帧与之前的一个关键帧或P帧之间的差别,属于帧间预测帧,可采用帧内预测和帧间预测,可前向参考预测。在解码时,需要用之前缓存的画面(前一帧对应的图像)叠加上前一帧与当前帧之间的差别,生成最终画面。即P帧没有完整的画面数据,只有与前一帧的画面之间的差别数据。
B帧即双向差别帧,表示当前帧与前后帧的差别,属于帧间预测帧,可采用帧内预测和帧间预测,可前向、后向、双向参考预测。在解码时,需要获取当前帧之前缓存的画面(前一帧对应的图像),以及当前帧之后的画面(后一帧对应的图像),通过前一帧对应的图像、后一帧对应的图像以及本帧数据进行叠加,生成最终画面。
视频编解码标准:某一种约定的视频码流解码规则。通过该标准,可以将某一视频格式的文件转换为另一种视频格式的文件。依照该标准对视频或音频进行编码(encode)和解码(decode)的程序(或硬件)称为编解码器(codec)。由于视频编码的主要任务是缩小视频文件的存储空间,因此,视频编码又称视频压缩编码或视频压缩,简单地说就是去除视频数据中的冗余信息。在本申请实施例中,可以该视频编解码标准中涉及的具体编码工具称为编码方式。
HEVC(High Efficiency Video Coding,高效率视频编码):一种视频编解码标准,定义了一套全新的图像分割模式,包括了编码单元(code unit,CU)、预测单元(predictionunit,PU)和变换单元(transform unit,TU),有助于根据视频内容特性、视频应用和终端的特性来自适应选择编码模式。主要包括帧内预测(intra prediction)、帧间预测(interprediction)、转换(transform)、量化(quantization)、去区块滤波器(deblockingfilter)、熵编码(entropy coding)等模块。HEVC中的编码方式包括直流(DC)编码模式、平面(Planar)编码模式、基于方向(例如,33个角度方向)的编码模式等。
HEVC-SCC(High Efficiency Video Coding-Screen content encoding,HEVC的扩展标准——屏幕视频编码,以下简称为SCC):一种视频编解码标准,除了HEVC中基本编码方式之外,还采用Intra block copy(IBC,帧内块复制)、Palette mode(PLT,调色板模式)、Adaptive color transform(ACT,自适应颜色变换)和Adaptive motion vectorresolution(自适应运动矢量分辨率)等4种编码模式。由于相比较于HEVC,SCC编码模式更加新颖,以下可以将HEVC中的编码模式称为传统的编码模式或基础编码模式,简称为IPM编码模式。
Intra block copy(IBC,帧内块复制):一种编码方式,当采用IBC对CU进行编码时,该CU中的PU会在当前图像重建部分搜索最相似的块。IBC可以看作是在当前图像里做“运动补偿”。
Palette mode(PLT,调色板模式):一种编码方式,当采用调色板模式对CU进行编码时,选取图像中出现次数最多的几种灰度值作为基本颜色(base color),并为其分别指定索引值建立调色板,再将原图像的每个像素值用对应的索引值替代从而形成一张索引图(index map),最后对调色板和索引图进行预测编码和熵编码。通过将经过熵编码后的调色板和索引图传输至解码端,即可利用调色板和索引图重构出复合图像。其中,像素值可以用RGB的模式进行表征,也可以用YUV的模式进行表征,本申请实施例对此不做限制。
Adaptive color transform(ACT,自适应颜色变换):由于大部分屏幕内容使用RGB(R表示red,红色,G表示green,绿色,B表示blue,蓝色)颜色空间,所以去除不同颜色通道间的冗余能极大提高编码效率。在HEVC-SCC中,CU可以自适应转换颜色空间。也就是说,一个RGB空间的块可以直接编码,也可以转换为YCoCg(Y表示亮度值,Co表示色度橙色,Cg表示色度绿色)空间后,再进行编码。
Adaptive motion vector resolution(自适应运动矢量分辨率):不同于相机拍摄的内容运动都是连续的,屏幕内容中运动经常是离散的是按像素运动的。所以对于大部分屏幕运动没必要进行分像素运动补偿。HEVC-SCC中可以在slice(片)级控制运动向量是整像素还是分像素。
YUV(“Y”表示明亮度(Luminance),“U”表示色度(Chrominance),“V”表示浓度(Chroma)):是一种色彩编码模型,也叫YCbCr。
率失真代价(Rate-Distortion Cost,简称为RD Cost):一种编码代价的表示形式,主要用来指示使用当前编码方式对当前编码单元进行编码所需的比特数和编码质量损失(例如编码单元和预测单元的残差)加权得到的值,该值越小表示对于当前编码单元来说,当前编码方式越有效。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供的视频编码方法可以是基于计算机视觉技术(ComputerVision,CV)实现的。其中,计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。例如,在获取到待编码视频流或者编码后的视频流之后,采用相关的视频处理模型,为所获取的待编码视频流或者编码后的视频流添加视频特效,或者确定所获取的待编码视频流或者编码后的视频流的视频类型等。
本申请实施例提供的视频编码方法可以基于云技术(Cloud technology)实现,比如,在确定目标编码方式的过程中所涉及的数据计算可以采用云计算(Cloud computing)方式。其中,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
当然,本申请实施例提供的视频编码方法还可以应用于云会议过程对相应的屏幕视频进行共享等。其中,云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与全球各地团队及客户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。在云会议过程中,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,用户完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。
需要说明的是,在本申请的可选实施例中,所涉及到的对象信息(如视频编码和视频分享过程中设计的用户信息,例如,用户头像、用户昵称等)等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。也就是说,本申请实施例中如果涉及到与对象有关的数据,这些数据需要经由对象授权同意、且符合国家和地区的相关法律法规和标准的情况下获取的。
如前文所记载的,相比于HEVC,SCC中加入了新的编码工具,考虑到屏幕视频的上述特性,采用SCC对屏幕视频进行压缩时,能够显著提升压缩性能。但同样地,由于新的编码工具的加入,采用SCC对屏幕视频进行压缩时,在对每个编码单元的编码模式进行选择的过程中,除了要基于HEVC中传统的编码模式进行选择之外,还要基于IBC模式和调色板模式等新增的编码模式进行选择,这必然导致对屏幕视频编码的复杂度增加,给网络通信量和带宽带来更大的挑战,影响用户的视觉体验质量。且基于上述对各编码方式的描述,在各编码方式中,相比于其他编码方式,在采用调色板模式进行编码时,编码复杂度最高。
针对相关技术中所存在的上述至少一个技术问题或需要改善的地方,为了降低相关技术中存在的视频编码过程的复杂度,本申请提出一种视频编码方法、装置、电子设备、计算机可读存储介质及计算机程序产品,以在兼顾视频编码过程的复杂度和视频编码效率的同时,确定一种更适合用当前编码需求的目标编码方式,并采用选择的目标编码方式对视频进行编码。
本申请实施例所涉及的视频编码方法可以应用于任意需要进行视频编码的应用场景中,例如,视频传输、视频分享等场景。其中,视频分享场景可以包括但不限于视频通话、视频网站、远程会议、直播等应用场景中。在这些应用场景中,可以基于本申请实施例提供的视频编码方法对获取的视频进行编码,本申请实施例对视频的获取方式不做限制,可以为上述自然视频或者屏幕视频。在获取到编码后的视频之后,也可以对编码后的视频做其他处理,例如,对编码后的视频进行分享等。
考虑到在部分视频分享的应用场景中,对视频分享的实时性有较高要求,根据视频分享的实时性高低,也可以将视频可以分为实时视频和非实时视频。其中,实时视频即持续加载画面的视频,例如,视频通话、直播、远程会议等过程中的视频,非实时视频即加载完成的视频,例如,从网络中下载好的完整视频、录制完成的视频等。对于实时视频,在实际实施过程中,为了提高视频分享的实时性,通常会持续分段加载视频,并行处理视频加载过程、视频编码过程和最后将编码后的视频传输至接收方的过程,直至完成对整段视频的分享。即在进行视频编码时,所编码的视频内容可能不是完整的视频,由于不论是已完成加载过程的视频还是未完成加载过程的视频,都可以以流媒体的形式进行获取,在本申请实施例中,将所获取到的待编码的视频内容称为待编码视频流。
该视频编码方法可以通过视频编码装置实现,该视频编码装置可以为终端。该视频编码装置用于根据本申请实施例提供的视频编码方法对待编码视频流进行编码。在具体实施时,可以根据终端自身的插件对待编码视频流进行编码,也可以根据终端中某一应用程序或该应用程序中的插件对待编码视频流进行编码。该视频编码方法还可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
该终端(也可以称为用户终端或用户设备(User Equipment,UE)可以是智能手机、平板电脑、笔记本电脑、台式计算机、可穿戴电子设备(例如智能手表)、车载终端、智能家电(例如智能电视)、AR(Augmented Reality,增强现实)/VR(Virtual Reality,虚拟现实)设备等任一电子设备,但并不局限于此。
本领域技术人员应能理解上述终端仅为举例,其他现有的或今后可能出现的终端如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
图1示出了本申请实施例提供的一种终端的示意图。如图1所示,在通过终端10进行视频编码时,可以通过该终端的图像采集设备101进行图像采集获取待编码视频流,也可以通过对终端用户界面进行屏幕录制操作(例如,触发屏幕录制插件102)获取待编码视频流,也可以通过在终端通过网络103下载待编码视频流,本申请实施例对此不做限制。其中,图像采集设备101、屏幕录制插件102和网络103等可以为图1示出的设置在用户界面中的入口控件,也可以为通过相关指令调用执行的插件等,本申请实施例对此也不做限制,可以根据实际情况设置。进一步采用本申请实施例提供的视频编码方法对待编码视频流进行编码。
示例性地,图像采集设备可以为终端自带的图像采集设备,也可以为该终端外接的图像采集设备,本申请实施例对此不做限制。该图像采集设备可以包括但不限于摄像头、摄像机、照相机或者其他具有图像采集功能的设备,可以根据实际的情况对图像采集设备进行设置,本申请实施例在此不做限制。
作为一个示例,可以通过在终端设置屏幕录制插件以及对应的屏幕录制控件,通过终端对该屏幕录制控件的触发操作,可以开始对终端的用户界面进行屏幕录制操作,获取对应的视频流。也可以通过在终端安装用于进行屏幕录制操作的应用程序,通过触发该应用程序,可以开始对终端的用户界面进行屏幕录制操作,获取对应的视频流。
通常情况下,可以根据视频的获取方式将视频分为屏幕视频和自然视频,即所获取的待编码视频流可以为对应于屏幕视频的视频流(即屏幕视频流),也可以是对应于自然视频的视频流(即自然视频流)。屏幕视频是无需摄像DV等硬件设备,通过截取诸如计算机、手机等电子设备的屏幕内容图像(例如屏幕上显示的屏幕动作、图像、影像、音效、鼠标移动的轨迹、解说声音等)得到的视频,屏幕视频被广泛应用于例如视频会议、在线教育、远程桌面等应用场景中进行屏幕演示。屏幕视频的视频内容的形式可以包括但不限于PPT演示、word文档等。它与传统的自然视频具有很多明显的区别,例如,屏幕视频中的屏幕内容图像是非连续色调内容,而自然视频中的自然图像是连色调内容;屏幕视频局部区域颜色数较少、存在大量尖锐的边界、存在大量平坦区域、包含对比度高的文字、存在大量重复的纹理等特性。
考虑到SCC标准中,在采用调色板模式进行编码时,需要基于视频中一帧图像中的灰度值依次确定索引值、建立调色板、形成索引图之后,再对调色板和索引图进行预测编码和熵编码,相比于其他的编码方式,该编码方式的编码过程最复杂。且调色板的基本颜色数量越多,逃逸色就越少,失真也越小,但索引图越复杂,不利于提高编码效率;反之,调色板的基本颜色数量越少,索引图越便于压缩,但逃逸色增加,失真也越大。即调色板模式主要与待编码单元中的颜色丰富程度有关,颜色丰富程度越低,越适合采用调色板模式进行编码,颜色丰富程度越高,越不适合采用调色板模式进行编码。
在具体采用调色板模式进行编码的过程中,对于视频中一帧图像中存在颜色数量较少的局部区域,比如计算机屏幕中的文字区域,在基于该局部区域的像素建立颜色调色板,进而进行编码时,能够大幅提升视频编码的性能。
可见,调色板模式的编码方式本身复杂度较高,也并非视频流中的所有编码单元都适合用调色板模式进行编码。
在通过终端对待编码视频流进行编码时,主要是通过确定待编码视频流中待编码单元的颜色丰富程度,进而基于待编码单元的颜色丰富程度进一步确定是否要跳过调色板模式,从SCC标准中其他编码方式中选择一种目标编码方式对待编码单元进行编码。在基于待编码单元的颜色丰富程度进一步确定可以跳过调色板模式,从SCC标准中其他编码方式中选择一种目标编码方式对待编码单元进行编码时,可以降低视频编码的复杂度,降低对整体编码性能的损失,提高编码效率,减少编码过程中的数据处理量。
具体地,由于颜色丰富程度主要与待编码单元中各像素点的像素值以及对应的待编码单元的尺寸相关,在本申请实施例所提供的视频编码方法中,可以利用待编码单元的颜色的统计特性,基于待编码单元中各像素点的像素值以及对应的待编码单元的尺寸确定是否要跳过调色板模式,快速选择出对待编码单元进行编码的最佳编码方式(即目标编码方式)。
需要说明的是,虽然SCC主要是针对屏幕视频提出的编码标准,但该编码标准同样适用于自然视频,即本申请实施例提出的视频编码方法可以适用于任一需要对视频进行编码的应用场景中。
当然,在需要对编码后的视频流进行分享的应用场景中,可能会涉及到将一个终端对应的视频流分享至另一终端,考虑至此,本申请实施例还提供了一种视频流分享系统。
图2示出了本申请实施例提供的一种视频分享系统的框架图。如图2所示,该视频分享系统20包括第一终端201和第二终端202。第一终端201和第二终端202之间可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例对此不做限制。
第一终端201和第二终端202的具体实现可以参照上述对终端10的描述,在此不做赘述。
通过图2所示的视频流分享系统20,可以实现将通过第一终端201生成的待编码视频流分享至第二终端202,也可以实现将第二终端202生成的待编码视频流分享至第一终端201,本申请实施例对此不做限制。
以将第一终端201生成的待编码视频流分享至第二终端202为例,第一终端201的个数可以为一个或多个,第二终端202的个数也可以为一个或多个,可以根据实际需求进行设置,本申请实施例对此不做限制。例如,在远程会议的过程中,可以通过将一个第一终端201对应的屏幕内容分享至参与远程会议的其他多个第二终端202。
以将第一终端201生成的待编码视频流分享至第二终端202为例的具体的视频流分享过程可以为:在通过第一终端201生成待编码视频流之后,通过第一终端201对待编码视频流进行编码,得到编码后的视频流之后,将编码后的视频流以及对待编码视频流进行编码的编码方式发送至第二终端202,通过第二终端202根据接收到的编码方式对编码后的视频流进行解码,并将解码后的视频流通过第二终端202的用户界面进行显示,实现将第一终端201生成的待编码视频流分享至第二终端202。
其中,无论是将第一终端201生成的待编码视频流分享至第二终端202,还是将第二终端202生成的待编码视频流分享至第一终端201,对于生成待编码视频流的方式都可以参照上述第一终端101生成待编码视频流的方式,在此不做赘述。
当然,还可以在第一终端201生成编码后的视频流之后,将该编码后的视频流以及对待编码视频流进行编码的编码方式发送至服务器,通过在服务器根据接收到的编码方式对编码后的视频流进行解码,并根据适用于第二终端202的视频格式,重新对解码后的视频流进行编码,并将再次编码后的视频流以及再次编码时所采用的编码方式发送至第二终端202,通过第二终端202根据接收到的编码方式对再次编码后的视频流进行解码,并将解码后的视频流通过第二终端202的用户界面进行显示,实现将第一终端201生成的待编码视频流分享至第二终端202。
下面结合图2所示的视频分享系统,以该视频分享系统的应用场景为远程会议为例,对本申请实施例所提供的视频编码方法的流程进行说明。
图3示出了本申请实施例提供的一种视频编码方法的信令交互图。在该远程会议过程中,可以通过一个第一终端201与一个第二终端202之间的信息交互实现远程会议过程中的屏幕共享。图3示出的信令交互图是以在远程会议过程中,需要将第一终端201生成的待编码视频流分享至第二终端202为例进行说明的,当然,也可以将第二终端202生成的待编码视频流分享至第一终端201,本申请实施例对此不做限制。如图3所示,具体可以包括以下步骤S31至步骤S39。
步骤S31:如图4所示,通过在第一终端触发屏幕录制控件,可以对第一终端的用户界面进行屏幕录制操作,获取到待编码视频流。其中,该待编码视频流中可以包括第一终端的用户界面内容以及对应于第一终端的用户对该用户界面内容所执行的操作。
步骤S32:第一终端将待编码视频流划分成多个待编码视频帧,并确定出各待编码视频帧中的I帧、B帧和P帧,将I帧作为待编码帧。其中,待编码视频帧表示该待编码视频流中的每一帧。
步骤S33:如图5所示,对于每个待编码帧,第一终端将该待编码帧划分成多个待编码树单元(CTU,code tree unit),并将每个编码树单元会划分为尺寸相同或不同的多个待编码单元,每个待编码单元的尺寸可以为8×8、16×16或32×32。
步骤S34:对于每个待编码单元,第一终端根据该待编码单元的尺寸确定该待编码单元中像素点的数量cuSize,根据该待编码单元中各像素点的像素值,确定该待编码单元中包含的像素值的种类diffCount。
如图6a,以待编码单元中的一个尺寸为4×4的子单元为例,在该子单元中像素点的数量为4×4=16,即cuSize=16。通过该子单元中各像素点的像素值进行聚类,可以确定该子单元中存在4种像素值,即4种基本颜色,diffCount=4。
其中,可以基于这四种基本颜色在该子单元的分布情况,建立如图6a所示的调色板。通过将该子单元中四种基本颜色像素值分别用对应的索引值替代,可以形成图6b所示的索引图。如图6b所示,将每种像素值作为一个索引,可以得到:索引0的像素值为(Y=240,U=80,V=80),索引1的像素值为(Y=100,U=50,V=20),索引2的像素值为(Y=200,U=200,V=250),索引3的像素值为(Y=250,U=250,V=150)。
步骤S35:对于每个待编码单元,第一终端根据该待编码单元中像素点的数量以及预设条件确定该待编码单元对应的参考值。其中,若将待编码单元对应的参考值确定为对应于待编码单元中像素点的数量的函数f(cuSize),则预设条件可以为:在cuSize=64时,f(64)=16,在cuSize=256时,f(256)=32,在cuSize=1024时,f(1024)=64。
根据该待编码单元中包含的像素值的种类,确定该待编码单元中包含的像素值的种类与该待编码单元对应的参考值之间的大小关系。若该待编码单元中包含的像素值的种类小于或等于该待编码单元对应的参考值,则表明该待编码单元的颜色丰富程度较低,可以将该待编码单元可能的编码方式形成的编码方式集合确定为上述SCC中的所有帧内编码方式,即可以从SCC标准中选择一种目标编码方式对待编码单元进行编码。若该待编码单元中包含的像素值的种类大于该待编码单元对应的参考值,则表明该待编码单元的颜色丰富程度较高,可以将该待编码单元可能的编码方式形成的编码方式集合确定为上述SCC中除调色板模式之外的所有帧内编码方式,即可以跳过调色板模式,从SCC标准中其他编码方式中选择一种目标编码方式对待编码单元进行编码。
步骤S36:对于每个待编码单元,第一终端依次根据该待编码单元的编码方式集合中的编码方式对该待编码单元进行预编码,并确定对应于每种编码方式的率失真代价,将率失真代价最小的编码方式确定为对该待编码单元进行编码的目标编码方式。
步骤S37:根据通过步骤S36确定的各待编码单元的目标编码方式,对各待编码单元进行编码,对待编码视频流中各I帧进行编码,并根据各B帧、P帧分别与各I帧之间的关系,采用SCC中的帧间编码方式,对待编码视频流中各B帧和各P帧进行编码,得到编码后的视频流。
步骤S38:第一终端将编码后的视频流、对待编码视频流中各编码单元进行编码的目标编码方式以及对各B帧和各P帧进行编码的编码方式发送至第二终端。其中,可以将对待编码视频流中各编码单元进行编码的目标编码方式以及对各B帧和各P帧进行编码的编码方式统称为解码指示信息。
步骤S39:第一终端根据对待编码视频流中各编码单元进行编码的目标编码方式以及对各B帧和各P帧进行编码的编码方式,对编码后的视频流进行解码,并将解码后的视频流显示在第二终端的用户界面上。
如图7所示,由于在具体实施过程中,基于本申请实施例所提供的视频编码方法进行编码时的复杂度较低,编码效率比较高,实时性较强,如图7所示,实现了将第一终端生成的待编码视频流分享至第二终端,第一终端的用户界面与第二终端的用户界面相同。
图8示出了本申请实施例提供的一种视频编码方法的流程图。如图8所示,该方法包括:
步骤S810:获取待编码视频流。
在该实现方式中,可以采用上述通过图像采集的方式、通过屏幕录制操作的方式或通过网络下载的方式等中的一种或多种方式获取待编码视频流,可以根据实际情况确定,本申请实施例对此不做限制。
步骤S820:对于待编码视频流中的每个待编码帧,将该待编码帧进行划分,得到多个待编码单元。
在本申请实施例中,待编码帧表示待编码视频流中可以进行帧内编码的帧。在待编码视频流中每个视频帧都为可以进行帧内编码的视频帧的情况下,待编码帧即为该待编码视频流中每个视频帧。否则,可以确定出待编码视频流中可以进行帧内编码的视频帧,将确定出的视频帧确定为待编码帧。例如,可以将待编码视频流中各视频帧进行分类,根据各视频帧中的帧内容将各视频帧分为I帧、B帧和P帧,将其中的I帧作为待编码帧。
可以基于上述获取待编码单元的方式,获取到多个待编码单元。当然,也可以在上述获取待编码单元的方式的基础上,继续对每个待编码单元作进一步划分成多个待编码子单元,形成多个层次的待编码单元。从而可以基于本申请实施例提出的对各待编码单元进行编码的方式,对每个层次中的每个待编码单元进行编码。
其中,对于每个待编码帧,该待编码帧中的多个待编码单元的尺寸可以相同,也可以不同,本申请实施例对此不做限制。
步骤S830:对于每个待编码单元,根据该待编码单元中包含的像素点的信息,确定该待编码单元的颜色丰富程度。
待编码单元中包含的像素点的信息可以包括但不限于待编码单元中包含的像素点的个数,待编码单元中各像素点的像素值等,可以根据实际情况进行确定,本申请实施例对此不做限制。
其中,待编码单元中包含的像素点的个数可以基于待编码单元的尺寸确定,示例性地,在待编码单元的尺寸为a×b时,可以确定该待编码单元中包含的像素点的个数为尺寸的乘积结果。例如,在待编码单元的尺寸为8×8时,该待编码单元中包含的像素点的个数为64个。
对于一个待编码单元,可以基于该待编码单元中各像素点的像素值的差异,或者像素值出现差异的像素点的个数占预设区域中(例如,该待编码单元中)的尺寸(例如,像素点的总个数)的比例确定该待编码单元的颜色丰富程度。例如,该待编码单元中各像素点的像素值的差异越大,或者像素值出现差异的像素点的个数占该待编码单元中像素点的总个数的比例越高,可以表征该待编码单元的颜色丰富程度越高,反之,可以表征该待编码单元的颜色丰富程度越低。
在获取到待编码单元中各像素点的像素值之后,可以通过对各像素点的像素值的种类进行统计,得到该待编码单元中各像素值的种类数,从而确定出该待编码单元中各像素点的像素值的差异,进而确定出待编码单元的颜色丰富程度。
步骤S840:对于每个待编码单元,基于该待编码单元的颜色丰富程度,确定该待编码单元的编码方式集合,待编码方式集合为第一集合或第二集合,第一集合包括至少两种预设的编码方式,至少两种预设的编码方式包括调色板模式,第二集合包括第一集合中除调色板模式之外的编码方式。
该待编码单元的编码方式集合为可以对该待编码单元进行编码的编码方式的集合。
示例性地,至少两种预设的编码方式可以为SCC标准中的全部或部分编码方式。
如前文所记载的,由于调色板模式的编码方式本身复杂度较高,也并非视频流中的所有编码单元都适合用调色板模式进行编码。因此,可以基于该待编码单元的颜色丰富程度,是否要跳过调色板模式,确定该待编码单元的编码方式集合,即上述第一集合或第二集合。
步骤S850:对于每个待编码单元,从该待编码单元的编码方式集合中确定出目标编码方式,并采用目标编码方式对该待编码单元进行编码。
在该实现方式中,可以基于预设的规则从待编码单元的编码方式集合中确定出目标编码方式,本申请实施例对该预设的规则的设置方式不做限制。
作为一个示例,可以依次根据待编码单元的编码方式集合中的每种编码方式依次对该待编码单元进行预编码,并获取预编码过程中,采用每种编码方式对该待编码单元进行预编码时所需的编码代价,将其中编码代价最小的编码方式确定为目标编码方式。具体地,
在一种可能的实现方式中,对于每个待编码单元,上述从该待编码单元的编码方式集合中确定出目标编码方式,可以包括:
在该待编码单元的编码方式集合中包括至少两种编码方式时,确定该待编码单元的编码方式集合中每种编码方式对应的编码代价,将编码代价最低的编码方式确定为目标编码方式;
在该待编码单元的编码方式集合中包括一种编码方式时,将该待编码单元的编码方式集合中的编码方式确定为目标编码方式。
其中,可以将率失真代价作为确定编码代价的方式,也可以通过其他方式确定编码代价,本申请实施例对此不做限制。
通过基于待编码单元的编码方式集合中每种编码方式对应的编码代价,确定该待编码单元的目标编码方式,可以快速确定出该待编码单元的目标编码方式。同时,若该待编码单元的编码方式集合中仅包括一种编码方式,则直接将该待编码单元的编码方式集合中的编码方式确定为该待编码单元的目标编码方式,可以不必确定该编码方式对应的编码代价,减少不必要的数据处理量,从而加快编码速度。
在采用待编码视频流中各待编码帧中各待编码单元对应的目标编码方式对相应的待编码单元进行编码之后,即可以得到待编码视频流中编码后的I帧。
在待编码视频流中还存在其他B帧、P帧的情况下,在得到待编码视频流中编码后的I帧之后,可以基于各B帧、P帧和各I帧之间的关系,采用相应的帧间编码方式等对各B帧、P帧进行编码,从而得到编码后的视频流。
在本申请实施例提供的视频编码方法中,通过根据每个待编码单元的颜色丰富程度,来确定是否考虑将调色板模式作为该待编码单元的候选编码方式之一,并进一步从候选编码方式中确定出该待编码单元的目标编码方式。从而对于同一待编码视频帧,可以根据待编码视频中各个待编码单元各自的像素点的信息,可以在兼顾编码性能和编码效率的同时,选择出视频帧中每一个待编码单元所适合的目标编码方式。采用该方法,可以在保证待编码视频帧整体的编码性能的前提下,相比于直接对整个视频帧都直接采用同一种编码模式,可以有效降低了编码的复杂度,提高了编码速度。
随着科学技术的发展,越来越多的领域需要进行屏幕录制,在一种可能的实现方式中,上述待编码视频流可以为屏幕视频流。
考虑到在日常工作中,进行屏幕共享可以大大提高工作效率,对屏幕共享的实时性要求较高,在屏幕共享过程中,需要先对屏幕视频流进行编码,再传输至待分享的用户端,从而在待分享的用户端进行视频流解码,获取到所分享的视频。通过上述记载,本申请实施例所提供的视频编码方法可以提高对待编码视频流进行编码的编码速度,基于此,本申请实施例还提供了以下可能的实现方式:
在一种可能的实现方式中,在得到待编码视频流对应的编码后的视频流之后,上述方法还可以包括:
将编码后的视频流以及解码指示信息发送到接收方,以使接收方基于该解码指示信息对该编码后的视频流进行解码,得到解码后的视频内容;
其中,上述解码指示信息指示了该编码后的视频流对应的解码方式,上述解码指示信息是基于该待编码视频流中各待编码单元对应的目标编码方式确定的。
上述解码指示信息中还可以包括待编码视频流中各B帧、P帧进行编码的编码方式等。从而可以使得接收方基于解码指示信息的对接收到的视频流进行解码,获取到解码后的视频内容。
通过基于本申请实施例提供的视频编码方法对待编码视频流进行编码,得到编码后的视频流,再将该编码后的视频流发送给接收方,可以在降低对待编码视频流进行编码的复杂度,提高对待编码视频流进行编码的编码速度的同时,快速提高视频流共享的实时性,继而提高相应用户的工作效率。
在一种可能的实现方式中,对于每个待编码单元,上述根据该待编码单元中包含的像素点的信息,确定该待编码单元的颜色丰富程度,可以包括:
确定该待编码单元中包含的像素值的种类,上述像素点的信息包括像素值的种类;
其中,该待编码单元中包含的像素值的种类表征了该待编码单元的颜色丰富程度。
在具体实施过程中,考虑到在待编码单元中可能会存在像素值相似度较高的多个像素点,在获取到待编码单元中各像素点的像素值之后,可以通过对该待编码单元中各像素点的像素值进行聚类,按照一定的方式(例如,将编码单元的左上角的第一个像素点作为第一个遍历的像素点),对聚类后的各像素点的像素值进行遍历,若当前遍历到的像素点的像素值第一次出现,则对像素值的种类数进行加1。直至遍历完该待编码单元中的所有像素点。
当然,也可以直接在获取到待编码单元中各像素点的像素值之后,对各像素点的像素值进行遍历,确定该待编码单元中包含的像素值的种类。
对于一个待编码单元,在该待编码单元的尺寸固定的情况下,该待编码单元中包含的像素值的种类越多,其对应的颜色丰富程度越高。
通过基于待编码单元中包含的像素值的种类表征该待编码单元的颜色丰富程度,在确定出待编码单元中包含的像素值的种类,可以快速确定该待编码单元的颜色丰富程度,从而加快确定该待编码单元的编码方式集合的速度。
在一种可能的实现方式中,对于每个待编码单元,上述基于该待编码单元的颜色丰富程度,确定该待编码单元的编码方式集合,可以包括:
若该待编码单元的颜色丰富程度小于或等于参考值,则确定该待编码单元的编码方式集合为第一集合;
若该待编码单元的颜色丰富程度大于上述参考值,则确定该待编码单元的编码方式集合为第二集合。
如前文所记载的,在具体采用调色板模式进行编码的过程中,对于待编码视频流中存在颜色数量较少的局部区域,能够大幅提升对待编码视频流进行编码的性能。
而待编码单元的颜色数量与该待编码单元的颜色丰富程度成正相关。因此,可以通过设定参考值,基于待编码单元的颜色丰富程度与该参考值之间的大小关系,确定当前的待编码单元是否适合采用调色板模式进行编码。在待编码单元的颜色丰富程度小于或等于设定的参考值时,可以确定该待编码单元的颜色丰富程度较低,对应的颜色数量较少。在待编码单元的颜色丰富程度大于设定的参考值时,可以确定该待编码单元的颜色丰富程度较高,对应的颜色数量较多。
通过设定参考值,在待编码单元的颜色丰富程度小于或等于设定的参考值时,确定该待编码单元的编码方式集合为包括调色板模式的第一集合;在该待编码单元的颜色丰富程度大于设定的参考值时,确定该待编码单元的编码方式集合为不包括调色板模式的第二集合,可以提高确定待编码单元的编码方式集合的准确度。
考虑到在确定某一预设区域的颜色丰富程度时,也可以根据像素值出现差异的像素点的个数占预设区域中的尺寸的比例确定,本申请实施例还提供了以下确定参考值的实现方式:
在一种可能的实现方式中,上述像素点的信息还包括待编码单元中包含的像素点的数量,每个待编码单元对应的参考值是基于待编码单元中包含的像素点的数量确定的,每个待编码单元对应的参考值与该待编码单元中包含的像素点的数量成正相关。
通过基于待编码单元中包含的像素点的数量确定待编码单元对应的用来确定颜色丰富程度高低的参考值,可以更精确地确定出待编码单元的颜色丰富程度。
其中,可以具体根据以下方式确定出各待编码单元对应的参考值:
在一种可能的实现方式中,一个待编码单元中包含的像素点的数量为64、256或1024;
对于每个待编码单元,在该待编码单元中包含的像素点的数量为64时,该待编码单元对应的参考值为16,在该待编码单元中包含的像素点的数量为256时,该待编码单元对应的参考值为32,在该待编码单元中包含的像素点的数量为1024时,该待编码单元对应的参考值为64。
需要说明的是,各编码单元的参考值为实验值或经验值,也可以根据实际情况确定,本申请实施例对此不做限制。在待编码单元中包含的像素点数量(待编码单元的尺寸)固定的情况下,对应的参考值越大,对该待编码单元进行编码时,可以采用调色板模式进行编码的概率越大。反之,则采用调色板模式进行编码的概率越小。
基于与本申请实施例提供的视频编码方法相同的原理,本申请实施例中还提供了一种视频编码装置。图9示出了本申请实施例提出的一种视频编码装置的示意图。如图9所示,该装置900包括:
视频流获取模块901,用于获取待编码视频流;
待编码单元划分模块902,用于对于待编码视频流中的每个待编码帧,将该待编码帧进行划分,得到多个待编码单元;
颜色丰富程度确定模块903,用于对于每个待编码单元,根据该待编码单元中包含的像素点的信息,确定该待编码单元的颜色丰富程度;
编码方式集合确定模块904,用于对于每个待编码单元,基于该待编码单元的颜色丰富程度,确定该待编码单元的编码方式集合,待编码方式集合为第一集合或第二集合,第一集合包括至少两种预设的编码方式,至少两种预设的编码方式包括调色板模式,第二集合包括第一集合中除调色板模式之外的编码方式;
编码模块905,用于对于每个待编码单元,从该待编码单元的编码方式集合中确定出目标编码方式,并采用目标编码方式对该待编码单元进行编码。
在一种可能的实现方式中,对于每个待编码单元,上述颜色丰富程度确定模块903在根据该待编码单元中包含的像素点的信息,确定该待编码单元的颜色丰富程度时,可以具体用于:
确定该待编码单元中包含的像素值的种类,上述像素点的信息包括像素值的种类;
其中,该待编码单元中包含的像素值的种类表征了该待编码单元的颜色丰富程度。
在一种可能的实现方式中,对于每个待编码单元,上述编码方式集合确定模块904,在基于该待编码单元的颜色丰富程度,确定该待编码单元的编码方式集合时,可以具体用于:
若该待编码单元的颜色丰富程度小于或等于参考值,则确定该待编码单元的编码方式集合为第一集合;
若该待编码单元的颜色丰富程度大于上述参考值,则确定该待编码单元的编码方式集合为第二集合。
在一种可能的实现方式中,上述像素点的信息还包括待编码单元中包含的像素点的数量,每个待编码单元对应的参考值是基于待编码单元中包含的像素点的数量确定的,每个待编码单元对应的参考值与该待编码单元中包含的像素点的数量成正相关。
在一种可能的实现方式中,一个待编码单元中包含的像素点的数量为64、256或1024;
对于每个待编码单元,在该待编码单元中包含的像素点的数量为64时,该待编码单元对应的参考值为16,在该待编码单元中包含的像素点的数量为256时,该待编码单元对应的参考值为32,在该待编码单元中包含的像素点的数量为1024时,该待编码单元对应的参考值为64。
在一种可能的实现方式中,对于每个待编码单元,上述编码模块905在从该待编码单元的编码方式集合中确定出目标编码方式时,可以具体用于:
在该待编码单元的编码方式集合中包括至少两种编码方式时,确定该待编码单元的编码方式集合中每种编码方式对应的编码代价,将编码代价最低的编码方式确定为目标编码方式;
在该待编码单元的编码方式集合中包括一种编码方式时,将该待编码单元的编码方式集合中的编码方式确定为目标编码方式。
在一种可能的实现方式中,上述待编码视频流可以为屏幕视频流。
在一种可能的实现方式中,上述装置还包括视频流发送模块,
该视频流发送模块用于在得到待编码视频流对应的编码后的视频流之后,将编码后的视频流以及解码指示信息发送到接收方,以使接收方基于该解码指示信息对该编码后的视频流进行解码,得到解码后的视频内容;
其中,上述解码指示信息指示了该编码后的视频流对应的解码方式,上述解码指示信息是基于该待编码视频流中各待编码单元对应的目标编码方式确定的。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
基于与本申请实施例提供的视频编码方法及装置相同的原理,本申请实施例中还提供了一种电子设备(如服务器),该电子设备可以包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现本申请任一可选实施例中提供的方法的步骤。
可选地,图10示出了本申请实施例所适用的一种电子设备的结构示意图,如图10所示,图10所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (12)
1.一种视频编码方法,其特征在于,包括:
获取待编码视频流;
对于所述待编码视频流中的每个待编码帧,将所述待编码帧进行划分,得到多个待编码单元;
对于每个所述待编码单元,根据所述待编码单元中包含的像素点的信息,确定所述待编码单元的颜色丰富程度;
对于每个所述待编码单元,基于所述待编码单元的颜色丰富程度,确定所述待编码单元的编码方式集合,所述编码方式集合为第一集合或第二集合,所述第一集合包括至少两种预设的编码方式,所述至少两种预设的编码方式包括调色板模式,所述第二集合包括所述第一集合中除调色板模式之外的编码方式;
对于每个所述待编码单元,从所述待编码单元的编码方式集合中确定出目标编码方式,并采用所述目标编码方式对所述待编码单元进行编码。
2.根据权利要求1所述的方法,其特征在于,对于每个所述待编码单元,所述根据所述待编码单元中包含的像素点的信息,确定所述待编码单元的颜色丰富程度,包括:
确定所述待编码单元中包含的像素值的种类,所述像素点的信息包括像素值的种类;
其中,所述待编码单元中包含的像素值的种类表征了所述待编码单元的颜色丰富程度。
3.根据权利要求1或2所述的方法,其特征在于,对于每个所述待编码单元,所述基于所述待编码单元的颜色丰富程度,确定所述待编码单元的编码方式集合,包括:
若所述待编码单元的颜色丰富程度小于或等于参考值,则确定所述待编码单元的编码方式集合为第一集合;
若所述待编码单元的颜色丰富程度大于所述参考值,则确定所述待编码单元的编码方式集合为第二集合。
4.根据权利要求3所述的方法,其特征在于,所述像素点的信息还包括所述待编码单元中包含的像素点的数量,每个所述待编码单元对应的参考值是基于所述待编码单元中包含的像素点的数量确定的,每个所述待编码单元对应的参考值与所述待编码单元中包含的像素点的数量成正相关。
5.根据权利要求4所述的方法,其特征在于,一个待编码单元中包含的像素点的数量为64、256或1024;
对于每个所述待编码单元,在所述待编码单元中包含的像素点的数量为64时,所述待编码单元对应的参考值为16,在所述待编码单元中包含的像素点的数量为256时,所述待编码单元对应的参考值为32,在所述待编码单元中包含的像素点的数量为1024时,所述待编码单元对应的参考值为64。
6.根据权利要求1所述的方法,其特征在于,对于每个所述待编码单元,所述从所述待编码单元的编码方式集合中确定出目标编码方式,包括:
在所述待编码单元的编码方式集合中包括至少两种编码方式时,确定所述待编码单元的编码方式集合中每种编码方式对应的编码代价,将编码代价最低的编码方式确定为所述目标编码方式;
在所述待编码单元的编码方式集合中包括一种编码方式时,将所述待编码单元的编码方式集合中的编码方式确定为所述目标编码方式。
7.根据权利要求1所述的方法,其特征在于,所述待编码视频流为屏幕视频流。
8.根据权利要求1、2以及4至7中任一项所述的方法,其特征在于,在得到所述待编码视频流对应的编码后的视频流之后,所述方法还包括:
将所述编码后的视频流以及解码指示信息发送到接收方,以使得所述接收方基于所述解码指示信息对所述编码后的视频流进行解码,得到解码后的视频内容;
其中,所述解码指示信息指示了所述编码后的视频流对应的解码方式,所述解码指示信息是基于所述待编码视频流中各所述待编码单元对应的目标编码方式确定的。
9.一种视频编码装置,其特征在于,包括:
视频流获取模块,用于获取待编码视频流;
待编码单元划分模块,用于对于所述待编码视频流中的每个待编码帧,将所述待编码帧进行划分,得到多个待编码单元;
颜色丰富程度确定模块,用于对于每个所述待编码单元,根据所述待编码单元中包含的像素点的信息,确定所述待编码单元的颜色丰富程度;
编码方式集合确定模块,用于对于每个所述待编码单元,基于所述待编码单元的颜色丰富程度,确定所述待编码单元的编码方式集合,所述编码方式集合为第一集合或第二集合,所述第一集合中包括至少两种预设的编码方式,所述至少两种预设的编码方式包括调色板模式,所述第二集合中包括所述第一集合中除所述调色板模式之外的编码方式;
编码模块,用于对于每个所述待编码单元,从所述待编码单元的编码方式集合中确定出目标编码方式,并采用所述目标编码方式对所述待编码单元进行编码。
10.一种电子设备,包括存储器.处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-8任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210730091.9A CN115118964A (zh) | 2022-06-24 | 2022-06-24 | 视频编码方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210730091.9A CN115118964A (zh) | 2022-06-24 | 2022-06-24 | 视频编码方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115118964A true CN115118964A (zh) | 2022-09-27 |
Family
ID=83329591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210730091.9A Pending CN115118964A (zh) | 2022-06-24 | 2022-06-24 | 视频编码方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118964A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116993839A (zh) * | 2023-09-26 | 2023-11-03 | 苏州元脑智能科技有限公司 | 编码方式筛选方法、装置、电子设备及存储介质 |
WO2024067736A1 (zh) * | 2022-09-29 | 2024-04-04 | 腾讯科技(深圳)有限公司 | 视频编码方法和装置、计算设备、存储介质及程序产品 |
-
2022
- 2022-06-24 CN CN202210730091.9A patent/CN115118964A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024067736A1 (zh) * | 2022-09-29 | 2024-04-04 | 腾讯科技(深圳)有限公司 | 视频编码方法和装置、计算设备、存储介质及程序产品 |
CN116993839A (zh) * | 2023-09-26 | 2023-11-03 | 苏州元脑智能科技有限公司 | 编码方式筛选方法、装置、电子设备及存储介质 |
CN116993839B (zh) * | 2023-09-26 | 2024-01-26 | 苏州元脑智能科技有限公司 | 编码方式筛选方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108833938B (zh) | 用于选取视频封面的方法和设备 | |
CN108924553B (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
WO2019210822A1 (zh) | 视频编解码方法、装置、系统及存储介质 | |
CN115118964A (zh) | 视频编码方法、装置、电子设备及计算机可读存储介质 | |
US20220188976A1 (en) | Image processing method and apparatus | |
CN107172376B (zh) | 一种基于屏幕共享的视频编码方法和装置 | |
US20200404339A1 (en) | Loop filter apparatus and method for video coding | |
CN108848377B (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
CN104581177A (zh) | 一种结合块匹配和串匹配的图像压缩方法和装置 | |
Safin et al. | Hardware and software video encoding comparison | |
WO2021057705A1 (zh) | 视频编解码方法和相关装置 | |
WO2021057686A1 (zh) | 视频解码方法和装置、视频编码方法和装置、存储介质及电子装置 | |
CN111225214B (zh) | 视频处理方法、装置及电子设备 | |
CN111246208B (zh) | 视频处理方法、装置及电子设备 | |
WO2023061129A1 (zh) | 视频编码方法、装置、设备及存储介质 | |
US11765372B1 (en) | Efficient coefficient film grain synthesis for codecs without film grain synthesis | |
CN114071161B (zh) | 图像编码方法、图像解码方法及相关装置 | |
CN111212288B (zh) | 视频数据的编解码方法、装置、计算机设备和存储介质 | |
CN106954074B (zh) | 一种视频数据处理方法和装置 | |
CN111886868B (zh) | 用于替代参考帧渲染的自适应时间滤波的方法和装置 | |
TW202209878A (zh) | 圖像編碼方法、圖像解碼方法及相關裝置 | |
US10609411B1 (en) | Cross color prediction for image/video compression | |
CN111953972A (zh) | IBC模式下的Hash表构建方法、装置、设备 | |
US20150078433A1 (en) | Reducing bandwidth and/or storage of video bitstreams | |
CN117354524B (zh) | 编码器编码性能测试方法、装置、设备及计算机介质 |
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 |