视频处理方法、装置及电子设备与流程

专利2022-06-29  72


本公开实施例涉及编码技术领域,尤其涉及一种视频处理方法、装置及电子设备。



背景技术:

随着信息技术的发展,高清晰度电视、网络会议、交互式网络电视(iptv)、三维(3d)电视等视频图像业务迅速发展,视频图像信号以其直观性和高效性等优势成为人们日常生活中获取信息最主要的方式。以屏幕视频为例,屏幕视频内容是计算机、手机等终端的图像显示器里直接捕捉到的视频内容,主要包括计算机图形,文字文档,自然视频和图形文字混合图像,计算机生成图像等。屏幕视频编码在桌面共享、视频会议、在线教育、云游戏等领域有广泛应用前景。

相关技术中,hevcscc在hevc/h.265上针对屏幕视频内容提出拓展提案。hevcscc编码工具有帧内块拷贝(intrablockcopy,简称ibc)。在屏幕视频内容中有大量重复的内容,比如文字图标等。在编码当前块时,执行传统的运动搜索方法并不能精准找到完全匹配的参考块。如果采用上述ibc来搜索屏幕内容中匹配的块,如果能搜索到匹配的参考块,则残差几乎为零,大幅提升压缩效率。

然而,ibc基于图像块的梯度计算,会有大量相似的图像块具有相同的hash值,这样,后续在根据hash值搜索参考块时,会导致搜索的参考块较多,需要对搜索的参考块进一步处理确定最终参考块,从而降低编码速度。



技术实现要素:

本公开实施例提供一种视频处理方法、装置及电子设备,以克服ibc编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题。

第一方面,本公开实施例提供一种视频处理方法,包括:

在预设编码模式,根据目标像素块的32位循环冗余校验(cyclicredundancycheck,简称crc)值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;

若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;

根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。

第二方面,本公开实施例提供一种视频处理装置,包括:

搜索模块,用于在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;

获得模块,用于若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;

编码模块,用于根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。

第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的视频处理方法。

第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的视频处理方法。

本公开实施例提供的视频处理方法、装置及电子设备,该方法在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决ibc编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例提供的一种视频处理系统架构示意图;

图2为本公开实施例提供的一种视频处理方法的流程示意图;

图3为本公开实施例提供的另一种视频处理方法的流程示意图;

图4为本公开实施例提供的再一种视频处理方法的流程示意图;

图5为本公开实施例提供的又一种视频处理方法的流程示意图;

图6为本公开实施例提供的又一种视频处理方法的流程示意图;

图7为本公开实施例提供的又一种视频处理方法的流程示意图;

图8为本公开实施例提供的一种视频处理装置的结构示意图;

图9为本公开实施例提供的另一种视频处理装置的结构示意图;

图10为本公开实施例提供的电子设备的硬件结构示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

首先对本公开所涉及的名词进行解释:

视频编码:通常是指处理形成视频或视频序列的图片序列。在视频编码领域,术语“图片(picture)”、“帧(frame)”或“图像(image)”可以用作同义词。本公开中视频编码在源侧执行,通常包括处理(例如,通过压缩)原始视频图片以减少表示该视频图片所需的数据量(从而更高效地存储和/或传输)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重构视频图片。

如本公开中所用,术语“块”可以为图片或帧的一部分。为便于描述,参考多用途视频编码(versatilevideocoding,简称vvc)或由itu-t视频编码专家组(videocodingexpertsgroup,简称vceg)和iso/iec运动图像专家组(motionpictureexpertsgroup,简称mpeg)的视频编码联合工作组(jointcollaborationteamonvideocoding,简称jct-vc)开发的高效视频编码(high-efficiencyvideocoding,简称hevc)描述本公开实施例。在hevc中,通过使用表示为编码树的四叉树结构将编码树单元拆分为多个编码单元(codingunit,简称cu)。其中,cu即编码单元,通常对应于一个a×b的矩形区域,包含a×b亮度像素和它对应的色度像素,a为矩形的宽,b为矩形的高,a和b可以相同也可以不同,a和b的取值通常为2的整数次幂,例如128、64、32、16、8、4。一个编码单元可通过解码处理解码得到一个a×b的矩形区域的重建图像,解码处理通常包括预测、反量化、反变换等处理,产生预测图像和残差,预测图像和残差叠加后得到重建图像。ctu即编码树单元,一幅图像由多个ctu构成,一个ctu通常对应于一个方形图像区域,包含这个图像区域中的亮度像素和色度像素(或者也可以只包含亮度像素,或者也可以只包含色度像素);ctu中还包含语法元素,这些语法元素指示如何将ctu划分成至少一个cu,以及解码每个编码单元得到重建图像的方法。

现有屏幕视频内容是计算机、手机等终端的图像显示器里直接捕捉到的视频内容,主要包括计算机图形,文字文档,自然视频和图形文字混合图像,计算机生成图像等。相关技术中,hevcscc在hevc/h.265上针对屏幕视频内容提出拓展提案。hevcscc编码工具有ibc。在屏幕视频内容中有大量重复的内容,比如文字图标等。在编码当前块时,执行传统的运动搜索方法并不能精准找到完全匹配的参考块。如果采用上述ibc来搜索屏幕内容中匹配的块,如果能搜索到匹配的参考块,则残差几乎为零,大幅提升压缩效率。

然而,ibc是基于图像块的梯度计算,有大量相似的图像块具有相同的hash值,这样,后续根据hash值搜索参考块时,会导致搜索的参考块较多,需要对搜索的参考块进一步处理确定最终参考块,从而降低编码速度。示例性的,ibc:对于8x8的编码块:

h=msb(dc0,3)<<13 msb(dc1,3)<<10 msb(dc2,3)<<7 msb(dc3,3)<<4 msb(grad,4)

其中,h是要计算的结果hash值,一共16bit。msb(val,n)是指val的最高n个bits。<<表示左移。dc0-3表示四个4x4的子块的dc值,或称像素平均值。grad表示水平和竖直方向的梯度值的平均值。

因此,考虑到上述问题,本公开提供一种视频处理方法,通过在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决ibc编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

本公开提供的一种视频处理方法,可以适用于图1所示的视频处理系统架构示意图,如图1所示,视频处理系统10包括源设备12和目标设备14,源设备12包括:图片获取装置121、预处理器122、编码器123和通信接口124。目标设备14包括:显示设备141、处理器142、解码器143和通信接口144。源设备12将编码得到的编码数据13发送给目标设备14。本公开的方法应用于编码器123。

其中,源设备12可称为视频编码设备或视频编码装置。目标设备14可称为视频解码设备或视频解码装置。源设备12以及目标设备14可以是视频编码设备或视频编码装置的实例。

源设备12和目标设备14可以包括各种设备中的任一个,包含任何类别的手持或静止设备,例如,笔记本或膝上型计算机、移动电话、智能电话、平板或平板计算机、摄像机、台式计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备(例如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并可以不使用或使用任何类别的操作系统。

在一些情况下,源设备12和目标设备14可以经装备以用于无线通信。因此,源设备12和目标设备14可以为无线通信设备。

在一些情况下,图1中所示视频处理系统10仅为示例,本公开的技术可以适用于不必包含编码和解码设备之间的任何数据通信的视频编码设置(例如,视频编码或视频解码)。在其它实例中,数据可从本地存储器检索、在网络上流式传输等。视频编码设备可以对数据进行编码并且将数据存储到存储器,和/或视频解码设备可以从存储器检索数据并且对数据进行解码。在一些实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备执行编码和解码。

在一些情况下,视频处理系统10的编码器123也可以称为视频编码器,解码器143也可以称为视频解码器。

在一些情况下,图片获取装置121可以包括或可以为任何类别的图片捕获设备,用于例如捕获现实世界图片,和/或任何类别的图片或评论(对于屏幕内容编码,屏幕上的一些文字也认为是待编码的图片或图像的一部分)生成设备,例如,用于生成计算机动画图片的计算机图形处理器,或用于获取和/或提供现实世界图片、计算机动画图片(例如,屏幕内容、虚拟现实(virtualreality,简称vr)图片)的任何类别设备,和/或其任何组合(例如,实景(augmentedreality,简称ar)图片)。其中,图片为或者可以视为具有亮度值的采样点的二维阵列或矩阵。以阵列为例,阵列中的采样点也可以称为像素(pixel)或像素(pictureelement,简称pel)。阵列在水平和垂直方向(或轴线)上的采样点数目定义图片的尺寸和/或分辨率。为了表示颜色,通常采用三个颜色分量,即图片可以表示为或包含三个采样阵列。rbg格式或颜色空间中,图片包括对应的红色、绿色及蓝色采样阵列。但是,在视频编码中,每个像素通常以亮度/色度格式或颜色空间表示,例如,ycbcr,包括y指示的亮度(简写为luma)分量(有时也可以用l指示)以及cb和cr指示的两个色度(简写为chroma)分量。亮度分量y表示亮度或灰度水平强度(例如,在灰度等级图片中两者相同),而两个色度分量cb和cr表示色度或颜色信息分量。相应地,ycbcr格式的图片包括亮度分量(y)的亮度采样阵列,和色度分量(cb和cr)的两个色度采样阵列。rgb格式的图片可以转换或变换为ycbcr格式,反之亦然,该过程也称为色彩变换或转换。

另外,图片获取装置121可以为,例如用于捕获图片的相机,例如图片存储器的存储器,包括或存储先前捕获或产生的图片,和/或获取或接收图片的任何类别的(内部或外部)接口。其中,相机可以为,例如,本地的或集成在源设备中的集成相机,存储器可为本地的或例如集成在源设备中的集成存储器。接口可以为,例如,从外部视频源接收图片的外部接口,这里,外部视频源例如为外部图片捕获设备,比如相机、外部存储器或外部图片生成设备,外部图片生成设备例如为外部计算机图形处理器、计算机或服务器。另外,接口可以为根据任何专有或标准化接口协议的任何类别的接口,例如有线或无线接口、光接口。图1中获取图片数据125的接口可以是与通信接口124相同的接口或是通信接口124的一部分。其中,图片数据125(例如,视频数据)可以称为原始图片或原始图片数据。

在一些情况下,预处理器122用于接收图片数据125并对图片数据125执行预处理,以获取经预处理的图片(或经预处理的图片数据)126。其中,预处理器122执行的预处理可以包括整修、色彩格式转换(例如,从rgb转换为ycbcr)、调色或去噪。可以理解,预处理器122可以是可选组件。

在一些情况下,编码器123(例如,视频编码器)用于接收经预处理的图片(或经预处理的图片数据)126并提供经编码图片数据127。

在一些情况下,源设备12的通信接口124可以用于接收经编码图片数据127并传输至其它设备,例如,目标设备14或任何其它设备,以用于存储或直接重构,或用于在对应地存储编码数据13和/或传输编码数据13至其它设备之前处理经编码图片数据127,其它设备例如为目标设备14或任何其它用于解码或存储的设备。目标设备14的通信接口144用于例如,直接从源设备12或任何其它源接收经编码图片数据127或编码数据13,任何其它源例如为存储设备,存储设备例如为经编码图片数据存储设备。

其中,通信接口124和通信接口144可以用于藉由源设备12和目标设备14之间的直接通信链路或藉由任何类别的网络传输或接收经编码图片数据127或编码数据13,直接通信链路例如为直接有线或无线连接,任何类别的网络例如为有线或无线网络或其任何组合,或任何类别的私网和公网,或其任何组合。通信接口124可以例如用于将经编码图片数据127封装成合适的格式,例如包,以在通信链路或通信网络上传输。形成通信接口124的对应部分的通信接口144可以例如用于解封装编码数据13,以获取经编码图片数据127。通信接口124和通信接口144都可以配置为单向通信接口,如图1中用于经编码图片数据127的从源设备12指向目标设备14的箭头所指示,或配置为双向通信接口,以及可以用于例如发送和接收消息来建立连接、确认和交换任何其它与通信链路和/或例如经编码图片数据传输的数据传输有关的信息。

在一些情况下,解码器143用于接收经编码图片数据127并提供经解码图片数据(或经解码图片)145。

在一些情况下,目标设备14的处理器142用于后处理经解码图片数据(或经解码图片)145,例如,经解码图片,以获取经后处理图片数据146,例如,经后处理图片。处理器142执行的后处理可以包括,例如,色彩格式转换(例如,从ycbcr转换为rgb)、调色、整修或重采样,或任何其它处理,用于例如准备经解码图片数据(或经解码图片)145以由显示设备141显示。

在一些情况下,目标设备14的显示设备141用于接收经后处理图片数据145以向例如用户或观看者显示图片。显示设备141可以为或可以包括任何类别的用于呈现经重构图片的显示器,例如,集成的或外部的显示器或监视器。例如,显示器可以包括液晶显示器(liquidcrystaldisplay,简称lcd)、有机发光二极管(organiclightemittingdiode,简称oled)显示器、等离子显示器、投影仪、微led显示器、硅基液晶(liquidcrystalonsilicon,简称lcos)、数字光处理器(digitallightprocessor,简称dlp)或任何类别的其它显示器。

另外,虽然图1将源设备12和目标设备14绘示为单独的设备,但设备实施例也可以同时包括源设备12和目标设备14或同时包括两者的功能性,即源设备12或对应的功能性以及目标设备14或对应的功能性。在此类实施例中,可以使用相同硬件和/或软件,或使用单独的硬件和/或软件,或其任何组合来实施源设备12或对应的功能性以及目标设备14或对应的功能性。不同单元的功能性或图1所示的源设备12和/或目标设备14的功能性的存在和(准确)划分可能根据实际设备和应用有所不同。

在一些情况下,编码器123(例如,视频编码器)和解码器143(例如,视频解码器)都可以实施为各种合适电路中的任一个,例如,一个或多个微处理器、数字信号处理器(digitalsignalprocessor,简称dsp)、专用集成电路(application-specificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)、离散逻辑、硬件或其任何组合。如果部分地以软件实施所述技术,则设备可将软件的指令存储于合适的非暂时性计算机可读存储介质中,且可使用一或多个处理器以硬件执行指令从而执行本公开的技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可视为一或多个处理器。编码器123和解码器143中的每一个可以包含在一或多个编码器或解码器中,所述编码器或解码器中的任一个可以集成为对应设备中的组合编码器/解码器(编解码器)的一部分。

应理解,对于以上参考编码器123所描述的实例中的每一个,解码器143可以用于执行相反过程。关于信令语法元素,解码器143可以用于接收并解析这种语法元素,相应地解码相关视频数据。在一些例子中,编码器123可以将一个或多个定义的语法元素熵编码成经编码视频比特流。在此类实例中,解码器143可以解析这种语法元素,并相应地解码相关视频数据。

下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体地实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。

图2为本公开实施例提供的一种视频处理方法的流程示意图,本公开实施例的执行主体可以为上述实施例中的编码器。如图2所示,该方法可以包括:

s201:在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。

其中,上述目标像素块均可以根据实际情况确定,本公开实施例对比不做特别限制。

这里,上述预设编码模式可以为ibc编码模式、hashme编码模式等。上述第一预设比特位和第二预设比特位可以根据实际情况设置,例如以上述32位crc值中的高16比特位作为上述第一预设比特位,以上述32位crc值中的低16比特位作为上述第二预设比特位。

上述预设像素块信息表可以预存多个像素块的32位crc值中第一预设比特位的值、第二预设比特位的值,以及像素块的坐标的对应关系。

以ibc编码模式为例,以目标像素块的32位crc值中第一预设比特位的值,在上述预设像素块信息表的上述对应关系中搜索与上述第一预设比特位的值对应的第二预设比特位的值。

另外,上述32位crc值可以为fastcrc32值。

s202:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标。

这里,如果在上述预设像素块信息表中搜索到与上述第一预设比特位的值对应的第二预设比特位的值,且搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则进一步根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标。

如果在上述预设像素块信息表中没有搜索到与上述第一预设比特位的值对应的第二预设比特位的值,或者搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值不同,则进行相应提示,可以在其它预设编码模式执行上述步骤,直至获得参考像素块的坐标。

s203:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。

其中,目标像素块向目标像素块的比特表示转换表示进行编码,目标像素块的比特表示向目标像素块转换表示进行解码。

示例性的,如果上述编码模式为ibc编码模式,则根据上述参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换。如果不能编码为ibc模式,可以尝试hashme编码模式,在hashme编码模式,根据上述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值,如果搜索到的第二预设比特位的值与上述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标,根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换等。

从上述描述可知,本公开实施例在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决ibc编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

另外,本公开实施例在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值之前,还能够确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,并从中获取目标像素块的32位crc值。图3为本公开实施例提出的另一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图3所示,该方法包括:

s301:确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

其中,上述待处理编码树单元可以根据实际情况确定,本公开实施例对比不做特别限制。

示例性的,在编码ctu之前计算当前ctu亮度分量的每一个像素位置的每一像素块,例如8×8像素块的32位crc值,从而,从计算的像素块的32位crc值中获取目标像素块的32位crc值。

可选地,上述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,可以包括:

对上述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

另外,上述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,还可以包括:

对上述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;

根据上述32位像素值,采用32位crc值的计算函数,获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

这里,上述待处理编码树单元的32位crc值可以通过并行计算,和/或,在计算过程中对像素值的合并,提高计算速度,进而,提高编码速度。

其中,上述32位crc值的计算函数可以根据实际情况确定,本公开实施例对比不做特别限制。例如在一些情况下,上述32位crc值的计算函数可以为x32 x26 x23 x22 x16 x12 x11 x10 x8 x7 x5 x4 x2 x 1

这里,上述获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,可以包括:

根据上述32位像素值,采用上述32位crc值的计算函数,获得待处理32位crc值;

根据上述待处理32位crc值,采用随机计算函数,获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

其中,上述随机计算函数也可以根据实际情况确定,本公开实施例对比不做特别限制。

这里,对于像素值有差异的两个块,采用上述32位crc值的计算函数,可以获得不一样的待处理32位crc值。但是考虑到后续处理会对32位crc值进行分段,例如后续在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,可能会出现分段后的crc值相同的情况。为了解决该问题,本公开实施例进一步采用随机计算函数,基于上述待处理32位crc值,获得上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,保证像素值有差异的两个块的32位crc值在后续分段处理后,分段后的crc值也不同,进而,保证后续处理正常进行。

示例性的,以计算8×8像素块的32位crc值为例,可以包括以下操作:

(1)对于8x8的像素块,共有64个像素,每个像素值是8bit,每4个像素一组合并,即分别合并4个8bit像素值得到一个32bit的值,最终得到16个32bit的值buf[i](i=0,1…15)。在后续步骤中,以p表示最终32位crc值,有32bit,初始值设为0。

(2)对于每一个buf[i],执行p=f(p,buf[i]),直至完成16次迭代计算,其中f是32位crc值的计算函数。

(3)执行随机计算,p=rand(p),其中rand是随机计算函数。

这里,对待处理编码树单元的亮度分量的每一像素位置的像素块的像素值可以进行并行处理,获得每一像素位置的像素块的32位crc值,其中,每一处理的具体步骤可以如上述(1)-(3),从而提高计算速度,进而,提高编码速度。上述并行处理可以通过单指令多数据流(singleinstructionmultipledata,简称simd)矢量并行计算实现,本公开实施例以完成armv7armv8sseavx2的simd实现,以256bit的avx2实现为例,对于一行像素点a[i](i=0…31),一个avx2寄存器执行步骤(1)-(3),可以并行完成a[0]a[8]a[16]a[24]四个位置的32位crc值。

s302:从上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取目标像素块的32位crc值。

s303:在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。

s304:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标。

s305:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。

其中,步骤s303-s305与上述步骤s201-s203的实现方式相同,此处不再赘述。

本公开实施例提供的视频处理方法,通过并行计算,和/或,在计算过程中对像素值的合并,提高计算待处理编码树单元的32位crc值的速度,进而,提高编码速度,并且,在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决ibc编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

另外,本公开实施例在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值之前,还能够在预设像素块信息表保存像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,以及像素块的坐标。图4为本公开实施例提出的再一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图4所示,该方法包括:

s401:确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

其中,步骤s401与上述步骤s301的实现方式相同,此处不再赘述。

s402:从上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取第一预设比特位的值和第二预设比特位的值,并确定相应像素块的坐标。

这里,相应表示上述获取的第一预设比特位的值和第二预设比特位的值,以及确定的像素块的坐标为同一像素块的信息。

s403:将获取的上述第一预设比特位的值和上述第二预设比特位的值,以及确定的相应像素块的坐标,保存在预设像素块信息表中。

这里,上述像素块信息表可以预先设立,在该像素块信息表可以预存多个像素块的32位crc值中第一预设比特位的值、第二预设比特位的值,以及像素块的坐标的对应关系。

在上述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值后,从该32位crc值中分别获取第一预设比特位的值和第二预设比特位的值,并确定相应像素块的坐标,更新上述hash表,进而在后续视频处理中,可以直接从上述预设像素块信息表中获取相应信息,减少重复计算。

s404:从上述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取目标像素块的32位crc值。

s405:在预设编码模式,根据上述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。

s406:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标。

s407:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。

其中,步骤s405-s407与上述步骤s303-s305的实现方式相同,此处不再赘述。

本公开实施例提供的视频处理方法,通过建立预设像素块信息表,使得在后续视频处理中,可以直接从上述信息表中获取相应信息,减少重复计算,并且,在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决ibc编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

另外,本公开实施例还能够在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值之前,还能够判断搜索次数。图5为本公开实施例提出的又一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图5所示,该方法包括:

s501:判断在预设像素块信息表中搜索与第一预设比特位的值对应的第二预设比特位的值的次数是否达到预设搜索次数上限。

s502:若上述次数未达到预设搜索次数上限,则在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。

其中,上述预设搜索次数上限可以根据实际情况设置,本公开实施例对此不做特别限制。

在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值之前,判断搜索次数是否达到预设搜索次数上限,如果达到,则停止搜索,否则,进行相应搜索。

这里,通过设置预设搜索次数上限,解决现有搜索次数过多,编码速度慢的问题。

s503:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则根据搜索到的第二预设比特位的值,从上述预设像素块信息表中获得参考像素块的坐标。

s504:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。

其中,步骤s502-s504与上述步骤s201-s203的实现方式相同,此处不再赘述。

本公开实施例提供的视频处理方法,通过设置预设搜索次数上限,解决现有搜索次数过多,编码速度慢的问题,并且在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决ibc编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

另外,本公开实施例还能够根据相应代价从预设像素块信息表中获取参考像素块的坐标。图6为本公开实施例提出的又一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图6所示,该方法包括:

s601:在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与上述第一预设比特位的值对应的第二预设比特位的值。

其中,步骤s601与上述步骤s201的实现方式相同,此处不再赘述。

s602:若搜索到的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则分别确定上述目标像素块与搜索到的第二预设比特位的值对应的且属于上述预设像素块信息表的待处理像素块之间的代价值。

s603:从上述待处理像素块中获取上述代价值的最小值对应的像素块作为参考像素块,从上述预设像素块信息表中获取上述参考像素块的坐标。

这里,分别计算目标像素块搜索到的第二预设比特位的值对应的且属于上述预设像素块信息表的待处理像素块之间的代价值,其中,该代价值可以为率失真代价(rdcost),从而,将上述待处理像素块中获取上述代价值的最小值对应的像素块作为参考像素块,找到最佳参考像素块,使得残差几乎为零,大幅提升压缩效率。

s604:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。

其中,步骤s604与上述步骤s203的实现方式相同,此处不再赘述。

本公开实施例提供的视频处理方法,能搜索到匹配的参考块,使得残差几乎为零,大幅提升压缩效率,另外,在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决ibc编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

另外,上述预设像素块信息表为hash表,该hash表中以像素块的32位crc值中第一预设比特位的值为key,以像素块的32位crc值中第二预设比特位的值和像素块的坐标为value。本公开实施例还能够在上述hash表中搜索与第一预设比特位的值对应的第二预设比特位的值。图7为本公开实施例提出的又一种视频处理方法的流程示意图,本实施例的执行主体可以为图1所示实施例中的编码器。如图7所示,该方法包括:

s701:在预设编码模式,将目标像素块的32位crc值中第一预设比特位的值作为搜索key,在上述hash表中搜索与上述搜索key对应的value。

s702:若搜索到的上述搜索key对应的value中的第二预设比特位的值与上述目标像素块的32位crc值中第二预设比特位的值相同,则在上述搜索key对应的value中获得参考像素块的坐标。

这里,可以在每一帧设置上述hash表,该hash表是根据关键码值(keyvalue)而直接进行访问的数据结构。其中,key为像素块的32位crc值中第一预设比特位的值,value为像素块的32位crc值中第二预设比特位的值和像素块。一个key可能对应多个value,通过链表连接。

上述获得参考像素块的坐标过程中,是先将目标像素块的32位crc值中的第一预设比特位的值作为搜索key,在hash表中查找,如果能找到则得到value链表的表头,遍历value链表,找到value中第二预设比特位的值与目标像素块的32位crc值中第二比特位相等的value,从这个value中获得参考像素的坐标,随即可以执行上述目标像素块与目标像素块的比特表示之间的转换步骤。其中,通过建立hash表使得后续视频处理中,可以直接从上述hash表中获取相应信息,减少重复计算。

s703:根据上述参考像素块的坐标,执行上述目标像素块与目标像素块的比特表示之间的转换。

其中,步骤s703与上述步骤s203的实现方式相同,此处不再赘述。

本公开实施例提供的视频处理方法,通过建立hash表,使得在后续视频处理中,可以直接从上述hash表中获取相应信息,减少重复计算,另外,在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取参考像素块的坐标,进而,根据参考像素块的坐标执行上述目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,进而解决ibc编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据上述目标像素块的32位crc值中第一预设比特位的值和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

另外,基于本申请实施例在自研项目上实现的ibc和hashme工具,快速档测试结果,bd-bitrate:-30%左右,编码时间 30%,编码效率达到了预期,同时复杂度远低于原始方案。

对应于上文实施例的视频处理方法,图8为本公开实施例提供的视频处理装置的结构示意图。为了便于说明,仅示出了与本公开实施例相关的部分。图8为本公开实施例提供的一种视频处理装置的结构示意图。如图7所示,该视频处理装置80包括:搜索模块801、获得模块802以及编码模块803。

其中,搜索模块801,用于在预设编码模式,根据所述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值。

获得模块802,用于若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标。

编码模块803,用于根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。

本公开实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本公开实施例此处不再赘述。

图9为本公开实施例提供的另一种视频处理装置的结构示意图。如图9所示,本公开实施例在图8实施例的基础上,还包括:确定模块804、获取模块805和保存模块806。

在一种可能的设计中,确定模块804,用于所述搜索模块801在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;

获取模块805,用于从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。

在一种可能的设计中,所述确定模块804,具体用于:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

在一种可能的设计中,所述确定模块804,具体用于:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;

根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

在一种可能的设计中,所述确定模块804获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:

根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;

根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

在一种可能的设计中,所述保存模块806,用于在所述确定模块804确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;将获取的所述第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中。

在一种可能的设计中,所述搜索模块801在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还用于:

判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;

若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。

在一种可能的设计中,所述获得模块802,具体用于:

分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;

从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。

在一种可能的设计中,所述预设像素块信息表为hash表,所述hash表中以像素块的32位crc值中第一预设比特位的值为key,以像素块的32位crc值中第二预设比特位的值和像素块的坐标为value。

所述搜索模块801根据所述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值,包括:

将所述目标像素块的32位crc值中第一预设比特位的值作为搜索key,在所述hash表中搜索与所述搜索key对应的value;

所述若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则获得模块802根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:

若搜索到的所述搜索key对应的value中的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则在所述搜索key对应的value中获得所述参考像素块的坐标。

本公开实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本公开实施例此处不再赘述。

参考图10,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)1001,其可以根据存储在只读存储器(readonlymemory,简称rom)1002中的程序或者从存储装置1008加载到随机访问存储器(randomaccessmemory,简称ram)1003中的程序而执行各种适当的动作和处理。在ram1003中,还存储有电子设备1000操作所需的各种程序和数据。处理装置1001、rom1002以及ram1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。

通常,以下装置可以连接至i/o接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括例如lcd、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1008;以及通信装置1009。通信装置1009可以允许电子设备1000与其他设备进行无线或有线通信以交换数据。虽然图10示出了具有各种装置的电子设备1000,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1008被安装,或者从rom1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体地例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(localareanetwork,简称lan)或广域网(wideareanetwork,简称wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

第一方面,根据本公开的一个或多个实施例,提供了一种视频处理方法,包括:

在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;

若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;

根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。

根据本公开的一个或多个实施例,在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还包括:

确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;

从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。

根据本公开的一个或多个实施例,所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

根据本公开的一个或多个实施例,所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;

根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

根据本公开的一个或多个实施例,所述获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:

根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;

根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

根据本公开的一个或多个实施例,在所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,还包括:

从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;

将获取的所述第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中

根据本公开的一个或多个实施例,在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还包括:

判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;

若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。

根据本公开的一个或多个实施例,所述根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:

分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;

从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。

根据本公开的一个或多个实施例,所述预设像素块信息表为hash表,所述hash表中以像素块的32位crc值中第一预设比特位的值为key,以像素块的32位crc值中第二预设比特位的值和像素块的坐标为value;

所述根据所述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值,包括:

将所述目标像素块的32位crc值中第一预设比特位的值作为搜索key,在所述hash表中搜索与所述搜索key对应的value。

根据本公开的一个或多个实施例,所述若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:

若搜索到的所述搜索key对应的value中的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则在所述搜索key对应的value中获得所述参考像素块的坐标。

第二方面,根据本公开的一个或多个实施例,提供了视频处理装置,包括:

搜索模块,用于在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;

获得模块,用于若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;

编码模块,用于根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。

根据本公开的一个或多个实施例,还包括确定模块,用于所述搜索模块在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;

获取模块,用于从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。

根据本公开的一个或多个实施例,所述确定模块,具体用于:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

根据本公开的一个或多个实施例,所述确定模块,具体用于:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;

根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

根据本公开的一个或多个实施例,所述确定模块获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:

根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;

根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

根据本公开的一个或多个实施例,还包括保存模块,用于在所述确定模块确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,从所述待处理编码树单元的亮度分量的每一个像素位置的每一像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;将获取的所述第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中。

根据本公开的一个或多个实施例,所述搜索模块在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还用于:

判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。

根据本公开的一个或多个实施例,所述获得模块,具体用于:

分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。

第三方面,根据本公开的一个或多个实施例,提供了一种电子设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的视频处理方法。

第四方面,根据本公开的一个或多个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的视频处理方法。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。


技术特征:

1.一种视频处理方法,其特征在于,包括:

在预设编码模式,根据目标像素块的32位循环冗余校验crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;

若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;

根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。

2.根据权利要求1所述的方法,其特征在于,在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还包括:

确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;

从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。

3.根据权利要求2所述的方法,其特征在于,所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

4.根据权利要求2所述的方法,其特征在于,所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;

根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

5.根据权利要求4所述的方法,其特征在于,所述获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:

根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;

根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

6.根据权利要求2所述的方法,其特征在于,在所述确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,还包括:

从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;

将获取的所述第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中。

7.根据权利要求1所述的方法,其特征在于,在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还包括:

判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;

若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。

8.根据权利要求1所述的方法,其特征在于,所述根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:

分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;

从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。

9.根据权利要求1所述的方法,其特征在于,所述预设像素块信息表为hash表,所述hash表中以像素块的32位crc值中第一预设比特位的值为key,以像素块的32位crc值中第二预设比特位的值和像素块的坐标为value;

所述根据所述目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值,包括:

将所述目标像素块的32位crc值中第一预设比特位的值作为搜索key,在所述hash表中搜索与所述搜索key对应的value;

所述若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标,包括:

若搜索到的所述搜索key对应的value中的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则在所述搜索key对应的value中获得所述参考像素块的坐标。

10.一种视频处理装置,其特征在于,包括:

搜索模块,用于在预设编码模式,根据目标像素块的32位crc值中第一预设比特位的值,在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值;

获得模块,用于若搜索到的所述第二预设比特位的值与所述目标像素块的32位crc值中所述第二预设比特位的值相同,则根据搜索到的所述第二预设比特位的值,从所述预设像素块信息表中获得参考像素块的坐标;

编码模块,用于根据所述参考像素块的坐标,执行所述目标像素块与所述目标像素块的比特表示之间的转换。

11.根据权利要求10所述的装置,其特征在于,还包括确定模块,用于所述搜索模块在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值;

获取模块,用于从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,获取所述目标像素块的32位crc值。

12.根据权利要求11所述的装置,其特征在于,所述确定模块,具体用于:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行并行处理,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

13.根据权利要求11所述的装置,其特征在于,所述确定模块,具体用于:

对所述待处理编码树单元的亮度分量的每一像素位置的像素块的像素值进行合并,获得32位像素值;

根据所述32位像素值,采用32位crc值的计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

14.根据权利要求13所述的装置,其特征在于,所述确定模块获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值,包括:

根据所述32位像素值,采用所述32位crc值的计算函数,获得待处理32位crc值;

根据所述待处理32位crc值,采用随机计算函数,获得所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值。

15.根据权利要求11所述的装置,其特征在于,还包括保存模块,用于在所述确定模块确定待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值之后,从所述待处理编码树单元的亮度分量的每一像素位置的像素块的32位crc值中,分别获取所述第一预设比特位的值和所述第二预设比特位的值,并确定相应像素块的坐标;将获取的所述第一预设比特位的值和所述第二预设比特位的值,以及确定的相应像素块的坐标,保存在所述预设像素块信息表中。

16.根据权利要求10所述的装置,其特征在于,所述搜索模块在所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值之前,还用于:

判断在所述预设像素块信息表中搜索与所述第一预设比特位的值对应的所述第二预设比特位的值的次数是否达到预设搜索次数上限;

若所述次数未达到所述预设搜索次数上限,则执行所述在预设像素块信息表中搜索与所述第一预设比特位的值对应的第二预设比特位的值的步骤。

17.根据权利要求10所述的装置,其特征在于,所述获得模块,具体用于:

分别确定所述目标像素块与搜索到的所述第二预设比特位的值对应的且属于所述预设像素块信息表的待处理像素块之间的代价值;

从所述待处理像素块中获取所述代价值的最小值对应的像素块作为所述参考像素块,从所述预设像素块信息表中获取所述参考像素块的坐标。

18.一种电子设备,其特征在于,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至9任一项所述的视频处理方法。

19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至9任一项所述的视频处理方法。

技术总结
本公开实施例提供一种视频处理方法、装置及电子设备,该方法在编码目标像素块时,在预设编码模式根据目标像素块的32位crc值,从预设像素块信息表中搜索参考像素块,并获取其坐标,进而,根据该坐标执行目标像素块与目标像素块的比特表示之间的转换,其中,对于像素值有差异的两个块,32位crc值是完全不一样的,解决IBC编码导致大量相似的图像块具有相同的hash值,从而降低编码速度的问题,另外,本公开实施例在搜索参考像素块时,根据目标像素块的32位crc值中第一预设比特位和第二预设比特位的值,在预设像素块信息表中进行分段搜索,从而,使得预设像素块信息表可以对信息进行分段存储,节省了存储空间,适合实际应用。

技术研发人员:黎凌宇;尹海斌;王悦
受保护的技术使用者:北京字节跳动网络技术有限公司
技术研发日:2020.01.22
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-53919.html

最新回复(0)