CN117528118A - 解码方法及装置、编解码系统以及存储介质 - Google Patents
解码方法及装置、编解码系统以及存储介质 Download PDFInfo
- Publication number
- CN117528118A CN117528118A CN202311502152.7A CN202311502152A CN117528118A CN 117528118 A CN117528118 A CN 117528118A CN 202311502152 A CN202311502152 A CN 202311502152A CN 117528118 A CN117528118 A CN 117528118A
- Authority
- CN
- China
- Prior art keywords
- ctu
- ctu row
- row
- information
- processing
- 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 160
- 238000003860 storage Methods 0.000 title claims abstract description 28
- 238000001914 filtration Methods 0.000 claims abstract description 176
- 238000012545 processing Methods 0.000 claims abstract description 155
- 230000008569 process Effects 0.000 claims description 98
- 230000015654 memory Effects 0.000 claims description 27
- 230000003044 adaptive effect Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 22
- 238000005192 partition Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 239000000306 component Substances 0.000 description 5
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例提供了一种解码方法及装置、编解码系统以及存储介质。包括:对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息,根据当前图像的残差信息和块划分信息,对第一CTU行进行第一处理,第一处理包括:对第一CTU行进行CTU重构,得到第一CTU行的重构图像信息,根据第一CTU行的重构图像信息,获取第一CTU行的滤波参数信息,向GPU发送携带第一CTU行的滤波参数信息的数据处理请求,以使GPU执行第一CTU行的预设类型滤波处理,得到第一CTU行的解码图像数据,对第一CTU行的下一行CTU行进行第一处理,直至当前图像的CTU行处理完成,根据接收到的GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。
Description
技术领域
本申请实施例涉及图像处理技术中的编解码领域,更为具体地,涉及一种解码方法及装置、编解码系统以及存储介质。
背景技术
视频编码是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式,转化成的数据可以称为码流。视频解码是将编码产生的码流进行解码,得到解码后的视频或图像数据。
现有技术中,在编解码过程中,目标图像帧被划分为大小相等的多个编码树单元(Coding Tree Unit,CTU),CTU行是指划分后的CTU在水平方向上的排列,CTU列是指划分后的CTU在垂直方向上的排列,在多线程环境中,编解码器可以并行处理多个CTU行,以提高编解码速度。在解码时,解码器逐行逐个处理划分后的CTU,具体是依次进行码流解码、CTU重构和CTU滤波处理,待所有的CTU滤波处理完成时,解码出目标图像帧。
然而,上述解码过程中,解码时间较长,解码效率较低。
发明内容
本申请实施例提供了一种解码方法及装置、编解码系统以及存储介质,可以减少解码时间,提升解码效率。
第一方面,本申请实施例提供了一种解码方法,包括:
对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息;
根据当前图像的残差信息和块划分信息,对第一编码树单元CTU行进行第一处理,所述第一CTU行包括至少一个CTU块,所述第一处理包括:对所述第一CTU行进行CTU重构,得到所述第一CTU行的重构图像信息,根据所述第一CTU行的重构图像信息,获取所述第一CTU行的滤波参数信息,向图形处理器GPU发送携带所述第一CTU行的滤波参数信息的数据处理请求,以使所述GPU执行所述第一CTU行的预设类型滤波处理,得到所述第一CTU行的解码图像数据;
对所述第一CTU行的下一行CTU行进行所述第一处理,直至当前图像的CTU行处理完成;
根据接收到的所述GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。
第二方面,本申请实施例提供了一种解码装置,包括:
解码模块,用于对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息;
处理模块,用于根据当前图像的残差信息和块划分信息,对第一编码树单元CTU行进行第一处理,所述第一CTU行包括至少一个CTU块,所述第一处理包括:对所述第一CTU行进行CTU重构,得到所述第一CTU行的重构图像信息,根据所述第一CTU行的重构图像信息,获取所述第一CTU行的滤波参数信息;
发送模块,用于向图形处理器GPU发送携带所述第一CTU行的滤波参数信息的数据处理请求,以使所述GPU执行所述第一CTU行的预设类型滤波处理,得到所述第一CTU行的解码图像数据;
所述处理模块还用于:对所述第一CTU行的下一行CTU行进行所述第一处理,直至当前图像的CTU行处理完成;
接收模块,用于接收所述GPU发送的当前图像的每个CTU行的解码图像数据;
所述处理模块还用于:根据所述接收模块接收到的所述GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。
第三方面,本申请实施例提供了一种解码设备,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如第一方面所述的方法。
第四方面,本申请实施例提供了一种编解码系统,包括编码设备和第三方面所述的解码设备。
第五方面,本申请实施例提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行如第一方面所述的方法。
第六方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如第一方面所述的解码方法。
本申请实施例提供的解码方法,通过对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息后,CPU先获取每个CTU行的滤波参数信息,并将获取的每个CTU行的滤波参数信息发送至GPU,由GPU执行每个CTU行的预设类型滤波处理,得到每个CTU行的解码图像数据,最后CPU根据接收到的GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。由于将预设类型滤波处理的运算过程在GPU上运行,CPU无需等待GPU运行结束就可直接执行剩余CTU行的解码过程,即GPU和CPU可同时处理数据,从而节省了CPU的功耗和运行时间,而且将预设类型滤波处理的数据按照CTU行发送至GPU,可节省CPU与GPU之间的数据交互产生的时间,提高了GPU的并行度,进一步节省了解码时间,提高了解码效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种视频图像处理过程示意图。
图2为本申请实施例提供的一种视频图像处理过程示意图。
图3为本申请实施例涉及的一种编解码系统的示意性框图。
图4是本申请提供的解码方法的示意性流程图。
图5为本申请实施例提供的一种解码方法的流程示意图。
图6为本申请实施例提供的一种解码方法的流程示意图。
图7为本申请实施例提供的一种解码装置的结构示意图。
图8是本申请实施例提供的解码设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在介绍本申请实施例技术方案之前,下面先对本申请实施例涉及的相关知识进行介绍:
1、云技术(Cloud technology),是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术(Cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
2、视频编码,通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式,转化成的数据可以称为码流。
3、编码单元(Coding Unit,CU),H.266中的基本编码块。
4、编码树单元(Coding Tree Uint,CTU),由一个或者多个CU组成。一帧图像首先将被划分为一系列同等尺寸的CTU,每个CTU再决定自身的CU划分。CTU是一种用于表示图像分块结构的术语。CTU是高效视频编码(HEVC/H.265)和其他现代视频编码标准(如AV1、VVC等)中的基本编码单元。CTU用于将图像分割为可独立处理的块,从而提高编码效率和并行性。
5、中央处理器(Central Processing Unit,CPU),是计算机的核心部件之一,也称为中央处理器。CPU的主要功能包括指令解码、数据处理、控制流程和中断处理。它可以执行算术和逻辑运算、访问内存、控制输入输出设备等操作。
6、图形处理器(Graphics Processing Unit,GPU),是一种专门用于处理图形计算的处理器,它的设计目标是为了加速图形渲染和计算任务。相比于CPU,GPU拥有更多的流处理器和更高的并行计算能力,使得它可以同时处理大量的数据,从而提供更高的图形渲染性能。
7、开放计算语言(Open Computing Language,OpenCL),是一个跨平台的编程框架,旨在支持各种类型的处理器(如CPU、GPU、DSP等)进行并行计算。它允许开发人员编写能在不同硬件平台上运行的程序。OpenCL提供了一种C语言的扩展,使得开发人员能够编写能在多个处理器上并行执行的内核(kernel)代码。这些内核可以在各种设备上执行大量计算任务,从而实现高性能计算。
8、自适应环路滤波器(Adaptive Loop Filter,ALF),是一种用于提高视频压缩效率和质量的技术。ALF是一种在视频编码解码过程中的后处理技术,它在解码器的环路中应用,用于减少视频编码过程中产生的块效应(block artifacts)和噪声。ALF通过对解码图像的边界进行平滑处理,降低编码残差,从而提高视频质量。ALF可以根据视频内容自适应地调整滤波器参数,以获得最佳的去块效果和压缩性能。
相关技术中,解码器的解码时间较长,解码效率较低。为了解决这一技术问题,本申请实施例中,通过对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息后,CPU先获取每个CTU行的滤波参数信息,并将获取的每个CTU行的滤波参数信息发送至GPU,由GPU执行每个CTU行的预设类型滤波处理,得到每个CTU行的解码图像数据,最后CPU根据接收到的GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。由于将预设类型滤波处理的运算过程在GPU上运行,CPU无需等待GPU运行结束就可直接执行剩余CTU行的解码过程,即GPU和CPU可同时处理数据,从而节省了CPU的功耗和运行时间,而且将预设类型滤波处理的数据按照CTU行发送至GPU,可节省CPU与GPU之间的数据交互产生的时间,提高了GPU的并行度,进一步节省了解码时间,提高了解码效率。
本申请可应用于图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域、实时视频编解码领域。例如,本申请的方案可结合至音视频编码标准(Audio Video coding Standard,AVS)。例如,H.264/音视频编码(Audio Video coding,AVC)标准,H.265/高效视频编码(High Efficiency Video Coding,HEVC)标准以及H.266/多功能视频编码(Versatile Video Coding,VVC)标准。
本申请实施例提供的技术方案可应用于视频点播类业务场景和视频直播类业务场景等,还可以应用于音视频交互类场景,如云游戏、交互类直播、视频会议、视频通话等场景。
应理解的是,本申请实施例提供的技术方案可以应用于如下场景,但不限于:
目前对于一些基于云场景中视频或者图像处理过程可以如下:图1为本申请实施例提供的一种视频图像处理过程示意图,图2为本申请实施例提供的一种视频图像处理过程示意图。如图1所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行处理,对经过处理后的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,最后按照解码结果进行视频图像的展示。或者,如图2所示,云服务器生成视频,进行视频图像采集,对采集到的视频图像进行编码,得到视频图像的码流,进一步地,云服务器可以将码流发送给终端设备,终端设备对该码流进行解码,并对解码后的视频图像进行处理,如锐化处理、模糊处理、降噪处理等,最后对处理后的视频图像进行展示。
为了便于理解,首先结合图3对本申请实施例涉及的编解码系统进行介绍。
图3为本申请实施例涉及的一种编解码系统的示意性框图。
如图3所示,编解码系统100包含编码设备110和解码设备120。
其中,编码设备110用于对视频或图像数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备120。解码设备120对编码设备110编码产生的码流进行解码,得到解码后的视频或图像数据。
编码设备110可以理解为具有对视频或图像进行编码的功能的设备,解码设备120可以理解为具有对视频或图像进行解码的功能的设备。编码设备110可根据通信标准来调制编码后的数据,且将调制后的数据发射到解码设备120。该编码设备110或解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等。
编码设备110可以经由信道130将编码后的数据(例如码流)传输给解码设备120。
在一实施例中,编码设备110读取到目标图像帧后,将该目标图像帧划分成为块数据,并基于块数据进行编码。例如,该编码设备110读取到目标图像帧后,可将目标图像帧划分成若干个编码树单元(Coding Tree Unit,CTU),一个编码树单元又可以继续被划分成若干个编码单元(Coding Unit,CU),CU可以为矩形块也可以为方形块。即编码设备110可基于CTU或CU进行编码。
信道130可以包括能够将编码后的数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。信道130可以包括使编码设备110能够实时地将编码后的数据直接发射到解码设备120的一个或多个通信媒体。其中通信媒体包含无线通信媒体,例如射频频谱。通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。信道130可以包括存储介质,该存储介质可以存储编码设备110编码后的数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。解码设备120可从该存储介质中获取编码后的数据。信道130可以包含存储服务器,该存储服务器可以存储编码设备110编码后的数据。解码设备120可以从该存储服务器中下载存储的编码后的数据。可选的,该存储服务器可以存储编码后的数据且可以将该编码后的数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
编码设备110包含编码器112及输出接口113。
其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。编码器112经由输出接口113将编码后的数据直接传输到解码设备120。编码后的数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
编码设备110除了包括编码器112和输入接口113外,还可以包括视频源111或图像源。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收视频数据,计算机图形系统用于产生视频数据。编码器112对来自视频源111的视频数据进行编码,产生码流。视频数据可包括一个或多个图像(picture)或图像序列(sequence of pictures)。码流以比特流的形式包含了图像或图像序列的编码信息。编码信息可以包含编码图像数据及相关联数据。相关联数据可包含序列参数集(sequence parameter set,SPS)、图像参数集(picture parameter set,PPS)及其它语法结构。SPS可含有应用于一个或多个序列的参数。PPS可含有应用于一个或多个图像的参数。语法结构是指:码流中以指定次序排列的零个或多个语法元素的集合。
解码设备120包含输入接口121和解码器122。输入接口121可包含接收器及/或调制解调器。
解码设备120除包括输入接口121和解码器122外,还可以包括显示装置123。
其中,输入接口121可通过信道130接收编码后的数据。解码器122用于对编码后的数据进行解码,得到解码后的数据,并将解码后的数据传输到显示装置123。显示装置123显示解码后的数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
应当理解,图3仅为本申请的示例,不应理解为对本申请的限制,也即是说,本申请实施例的技术方案不限于图3所示的系统框架,例如本申请的技术方案还可以应用于单侧的视频解码。
下边将对本申请提供的技术方案进行详细说明。
图4是本申请提供的解码方法的示意性流程图。应理解,该解码方法可由解码器执行。例如该解码方法可由图3所示的解码设备120或视频解码器122执行。为便于描述,下面以解码器为例进行说明。
S101、对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息。
具体地,本实施例的解码方法可由解码器执行,解码器运行在CPU上,也即本实施例的执行主体也可以为CPU。在解码时,当前图像的码流输入到解码器中,解码器对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息。其中块划分信息包括当前图像编码时被划分的结果,本申请实施例中,在编解码过程中,图像被分割成大小相等的CTU块,然后逐个处理。CTU行是指这些CTU块在水平方向上的排列。处理CTU行时,编解码器可以并行处理多个CTU行,从而利用多核处理器的性能。例如,假设有一个1920x1080大小的图像,CTU的大小为64x64。在这种情况下,图像将被划分为30(1920/64)个CTU列和17(1080/64)个CTU行。编解码器将逐行处理这些CTU块,即首先处理第一行的CTU块,然后处理第二行的CTU块,依此类推。在多线程环境中,可以同时处理多个CTU行,以提高编解码速度。在一实施例中,块划分信息包括划分后得到的CTU行的数量和CTU列的数量以及每个CTU行包括的CTU块的数量。
可选的,一个CTU又可以继续被划分成若干个编码单元(Coding Unit,CU),CU可以为矩形块也可以为方形块。即解码器可基于CTU或CU进行解码。
S102、根据当前图像的残差信息和块划分信息,对第一CTU行进行第一处理,第一CTU行包括至少一个CTU块,第一处理包括:对第一CTU行进行CTU重构,得到第一CTU行的重构图像信息,根据第一CTU行的重构图像信息,获取第一CTU行的滤波参数信息,向GPU发送携带第一CTU行的滤波参数信息的数据处理请求,以使GPU执行第一CTU行的预设类型滤波处理,得到第一CTU行的解码图像数据。
具体地,每一CTU行包括至少个CTU块,第一CTU行可以是划分后的CTU行中第一个CTU行,CPU先对第一CTU行进行第一处理,然后对第一CTU行的下一行CTU行进行第一处理,直至当前图像的CTU行处理完成。
其中,第一处理具体包括:先对第一CTU行进行CTU重构,得到第一CTU行的重构图像信息,根据第一CTU行的重构图像信息,获取第一CTU行的滤波参数信息,获取到第一CTU行的滤波参数信息后,向GPU发送携带第一CTU行的滤波参数信息的数据处理请求,GPU接收到该数据处理请求后,GPU执行第一CTU行的预设类型滤波处理,得到第一CTU行的解码图像数据。GPU得到第一CTU行的解码图像数据后,可以向CPU发送,也可以先存储第一CTU行的解码图像数据,在得到最后一个CTU行的解码图像数据后,将所有CTU行的解码图像数据一起发送给CPU。
可选的,第一CTU行的滤波参数信息包括第一CTU行中每个CTU块进行预设类型滤波处理的执行参数信息,其中,预设类型滤波处理可以为在进行该类型的滤波处理时,第N行CTU行的滤波处理不需要使用第N-1行CTU行的滤波处理信息。在一实施例中,预设类型滤波可以为自适应环路滤波。
可选的,第一CTU行的重构图像信息包括第一CTU行中每个CTU块的重构图像信息,其中,一个CTU块的重构图像信息可以为该CTU块中每个点的像素值,相应地,S102中根据第一CTU行的重构图像信息,获取第一CTU行的滤波参数信息,具体可以为:
S1021、按照第一CTU行的CTU块的预设排列顺序,依次针对第一CTU行中每一CTU块,对CTU块的重构图像信息进行第一滤波处理和第二滤波处理,得到CTU块进行预设类型滤波处理的执行参数信息并存储。
具体地,一个CTU块的重构图像信息可以为该CTU块中每个点的像素值,第一CTU行的CTU块的预设排列顺序可以是从左至右的排列顺序。按照第一CTU行的CTU块的从左至右的排列顺序,依次针对第一CTU行中每一CTU块,对CTU块的重构图像信息(即CTU块中每个点的像素值)进行第一滤波处理和第二滤波处理,得到CTU块中滤波处理后每个点的像素值,CTU块中滤波处理后每个点的像素值即为CTU块进行预设类型滤波处理的执行参数信息,存储该CTU块进行预设类型滤波处理的执行参数信息。
S1022、根据第一CTU行中每个CTU块的进行预设类型滤波处理的执行参数信息,得到第一CTU行的滤波参数信息。
具体地,在第一CTU行中最后一个CTU块的进行预设类型滤波处理的执行参数信息存储完时,即可得到第一CTU行的滤波参数信息。
可选的,在一种可实施的方式中,第一滤波处理为去块滤波(debock),第二滤波处理为自适应样本补偿滤波(Sample Adaptive Offset,SAO),由于去块滤波和自适应样本补偿滤波这两种滤波,第N行CTU行的滤波处理需要使用第N-1行CTU行的滤波处理信息,因此需要CPU先对第一CTU行的每个CTU块进行去块滤波和自适应样本补偿滤波,得到每个CTU块进行预设类型滤波处理的执行参数信息。将第一CTU行中每个CTU块的进行预设类型滤波处理的执行参数信息合并,可得到第一CTU行的滤波参数信息。
可选的,在一种可实施的方式中,S102中向GPU发送携带第一CTU行的滤波参数信息的数据处理请求,具体可以为:
确定已存储完第一CTU行中最后一个CTU块的进行预设类型滤波处理的执行参数信息时,向GPU发送数据处理请求。
具体地,在一种可实施的方式中,向GPU发送数据处理请求,可以是通过OPENCL工具(包括多个接口)向GPU发送数据处理请求。OPENCL是一个跨平台的编程框架,旨在支持各种类型的处理器(如CPU、GPU、DSP等)进行并行计算。它允许开发人员编写能在不同硬件平台上运行的程序。OpenCL提供了一种C语言的扩展,使得开发人员能够编写能在多个处理器上并行执行的内核(kernel)代码。这些内核可以在各种设备上执行大量计算任务,从而实现高性能计算。因此,本实施例中可以通过OPENCL工具向GPU发送数据处理请求。
本实施例中,GPU接收到数据处理请求后,GPU根据数据处理请求携带的第一CTU行的滤波参数信息,执行第一CTU行的预设类型滤波处理,得到第一CTU行的解码图像数据。例如预设类型滤波处理为自适应环路滤波,第一CTU行的滤波参数信息包括第一CTU行中每个CTU块进行预设类型滤波处理的执行参数信息,GPU按照CTU块在第一CTU行中的排列顺序,依次针对第一CTU行中每个CTU块,根据该CTU块进行预设类型滤波处理的执行参数信息对该CTU块进行自适应环路滤波,得到该CTU块的解码图像数据,最后将第一CTU行中每个CTU块的解码图像数据按照CTU块在第一CTU行中的排列顺序合并,即可得到第一CTU行的解码图像数据。
S103、对第一CTU行的下一行CTU行进行第一处理,直至当前图像的CTU行处理完成。
可选的,在多线程环境中,CPU可以并行处理多个CTU行,在一种可实施的方式中,S102中根据当前图像的残差信息和块划分信息,对第一CTU行进行第一处理,具体可以为:
S1、获取并行处理的线程数N,N为正整数。
具体地,并行处理的线程数N是CPU可支持的并行处理的线程数量,可直接获取到。
S2、根据N、当前图像的残差信息和块划分信息,对第一CTU行进行第一处理。
可选的,作为一种可实施的方式,N大于1时,第一CTU行为当前图像的第一组CTU行中的第一个CTU行,第一组CTU行包括N个CTU行,相应地,S2具体可以为:
对第一CTU行和N个CTU行中的其它N-1个CTU行并行进行第一处理。
具体来说,例如,N为4或者8,以N为4为例,则一组CTU行最多包括4个CTU行,第一组CTU行包括从上到下排列的前4个CTU行,同时对第一CTU行和第一CTU行的下3行CTU行进行第一处理。
可选的,在一实施例中,在对第一CTU行的下一行CTU行进行第一处理之前,本实施例的方法还可以包括:
将当前图像的第一组CTU行的下一组CTU行中的第一个CTU行确定为第一CTU行的下一行CTU行。例如N为4,第一CTU行为当前图像的第一组CTU行中的第一个CTU行,第一组CTU行包括从上到下排列的前4个CTU行,第一组CTU行的下一组CTU行包括第5行至第8行CTU行,相应地,即就是将第5行确定为第一CTU行的下一行CTU行。
S104、根据接收到的GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。
可选的,作为一种可实施的方式,S104具体可以为:
根据块划分信息中当前图像的CTU行的排列顺序和每个CTU行的CTU块的排列顺序,将当前图像的每个CTU行的解码图像数据合并,得到当前图像的重建图像。
本实施例提供的解码方法,通过对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息后,CPU先获取每个CTU行的滤波参数信息,并将获取的每个CTU行的滤波参数信息发送至GPU,由GPU执行每个CTU行的预设类型滤波处理,得到每个CTU行的解码图像数据,最后CPU根据接收到的GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。由于将预设类型滤波处理的运算过程在GPU上运行,CPU无需等待GPU运行结束就可直接执行剩余CTU行的解码过程,即GPU和CPU可同时处理数据,从而节省了CPU的功耗和运行时间,而且将预设类型滤波处理的数据按照CTU行发送至GPU,可节省CPU与GPU之间的数据交互产生的时间,提高了GPU的并行度,进一步节省了解码时间,提高了解码效率。
下面结合一个具体的实施例,对本申请实施例提供的解码方法的技术方案进行详细说明。
图5为本申请实施例提供的一种解码方法的流程示意图,本实施例的执行主体可以为解码器,如图5所示,本实施例中以预设类型滤波处理为自适应环路滤波为例,本实施例的方法可以包括:
S201、将当前图像的码流输入到解码器中。
S202、解码器对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息。
具体地,本实施例的解码方法可由解码器执行,解码器运行在CPU上,也即本实施例的执行主体也可以为CPU。在解码时,当前图像的码流输入到解码器中,解码器对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息。其中块划分信息包括当前图像编码时被划分的结果,在一实施例中,块划分信息包括划分后得到的CTU行的数量和CTU列的数量以及每个CTU行包括的CTU块的数量。
可选的,一个CTU又可以继续被划分成若干个编码单元(Coding Unit,CU),CU可以为矩形块也可以为方形块。即解码器可基于CTU或CU进行解码。
S203、解码器根据当前图像的残差信息和块划分信息,对第一CTU行进行第一处理,第一CTU行包括至少一个CTU块,第一处理包括:
S231、对第一CTU行进行CTU重构,得到第一CTU行的重构图像信息。
S232、根据第一CTU行的重构图像信息,获取第一CTU行的滤波参数信息。
S233、解码器向GPU发送携带第一CTU行的滤波参数信息的数据处理请求。
可选的,第一CTU行的滤波参数信息包括第一CTU行中每个CTU块进行预设类型滤波处理的执行参数信息,其中,预设类型滤波处理可以为在进行该类型的滤波处理时,第N行CTU行的滤波处理不需要使用第N-1行CTU行的滤波处理信息。在本实施例中,预设类型滤波为自适应环路滤波。
可选的,第一CTU行的重构图像信息包括第一CTU行中每个CTU块的重构图像信息,其中,一个CTU块的重构图像信息可以为该CTU块中每个点的像素值,相应地,S232中根据第一CTU行的重构图像信息,获取第一CTU行的滤波参数信息,具体可以为:
S2321、按照第一CTU行的CTU块的预设排列顺序,依次针对第一CTU行中每一CTU块,对CTU块的重构图像信息进行第一滤波处理和第二滤波处理,得到CTU块进行预设类型滤波处理的执行参数信息并存储。
具体地,一个CTU块的重构图像信息可以为该CTU块中每个点的像素值,第一CTU行的CTU块的预设排列顺序可以是从左至右的排列顺序。按照第一CTU行的CTU块的从左至右的排列顺序,依次针对第一CTU行中每一CTU块,对CTU块的重构图像信息(即CTU块中每个点的像素值)进行第一滤波处理和第二滤波处理,得到CTU块中滤波处理后每个点的像素值,CTU块中滤波处理后每个点的像素值即为CTU块进行预设类型滤波处理的执行参数信息,存储该CTU块进行预设类型滤波处理的执行参数信息。
S2322、根据第一CTU行中每个CTU块的进行预设类型滤波处理的执行参数信息,得到第一CTU行的滤波参数信息。
具体地,在第一CTU行中最后一个CTU块的进行预设类型滤波处理的执行参数信息存储完时,即可得到第一CTU行的滤波参数信息。
可选的,在一种可实施的方式中,第一滤波处理为去块滤波(debock),第二滤波处理为自适应样本补偿滤波(Sample Adaptive Offset,SAO),由于去块滤波和自适应样本补偿滤波这两种滤波,第N行CTU行的滤波处理需要使用第N-1行CTU行的滤波处理信息,因此需要CPU先对第一CTU行的每个CTU块进行去块滤波和自适应样本补偿滤波,得到每个CTU块进行预设类型滤波处理的执行参数信息。将第一CTU行中每个CTU块的进行预设类型滤波处理的执行参数信息合并,可得到第一CTU行的滤波参数信息。
可选的,在一种可实施的方式中,S23中向GPU发送携带第一CTU行的滤波参数信息的数据处理请求,具体可以为:
确定已存储完第一CTU行中最后一个CTU块的进行预设类型滤波处理的执行参数信息时,向GPU发送数据处理请求。
具体地,在一种可实施的方式中,向GPU发送数据处理请求,可以是通过OPENCL工具(包括多个接口)向GPU发送数据处理请求。OPENCL是一个跨平台的编程框架,旨在支持各种类型的处理器(如CPU、GPU、DSP等)进行并行计算。它允许开发人员编写能在不同硬件平台上运行的程序。OpenCL提供了一种C语言的扩展,使得开发人员能够编写能在多个处理器上并行执行的内核(kernel)代码。这些内核可以在各种设备上执行大量计算任务,从而实现高性能计算。因此,本实施例中可以通过OPENCL工具向GPU发送数据处理请求。
S204、GPU执行第一CTU行的预设类型滤波处理,得到第一CTU行的解码图像数据。
具体地,每一CTU行包括至少个CTU块,第一CTU行可以是划分后的CTU行中第一个CTU行,CPU先对第一CTU行进行第一处理,然后对第一CTU行的下一行CTU行进行第一处理,直至当前图像的CTU行处理完成。
本实施例中,GPU接收到数据处理请求后,GPU根据数据处理请求携带的第一CTU行的滤波参数信息,执行第一CTU行的预设类型滤波处理,得到第一CTU行的解码图像数据。例如本实施例中预设类型滤波处理为自适应环路滤波,第一CTU行的滤波参数信息包括第一CTU行中每个CTU块进行预设类型滤波处理的执行参数信息,GPU按照CTU块在第一CTU行中的排列顺序,依次针对第一CTU行中每个CTU块,根据该CTU块进行预设类型滤波处理的执行参数信息对该CTU块进行自适应环路滤波,得到该CTU块的解码图像数据,最后将第一CTU行中每个CTU块的解码图像数据按照CTU块在第一CTU行中的排列顺序合并,即可得到第一CTU行的解码图像数据。
S205、解码器对第一CTU行的下一行CTU行进行第一处理,直至当前图像的CTU行处理完成。
S206、GPU向解码器发送当前图像的每个CTU行的解码图像数据。
需要说明的是,GPU得到第一CTU行的解码图像数据后,可以向CPU发送,也可以先存储第一CTU行的解码图像数据,在得到最后一个CTU行的解码图像数据后,将所有CTU行的解码图像数据一起发送给CPU。
S207、解码器根据接收到的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。
可选的,作为一种可实施的方式,S207具体可以为:
根据块划分信息中当前图像的CTU行的排列顺序和每个CTU行的CTU块的排列顺序,将当前图像的每个CTU行的解码图像数据合并,得到当前图像的重建图像。
在多线程环境中,CPU可以并行处理多个CTU行,S203中解码器根据当前图像的残差信息和块划分信息,对第一CTU行进行第一处理,具体可以为:先获取并行处理的线程数N,N为正整数。其中,并行处理的线程数N是CPU可支持的并行处理的线程数量,可直接获取到。接着根据N、当前图像的残差信息和块划分信息,对第一CTU行进行第一处理。
下面结合图6详细说明多线程对CTU行进行第一处理的过程。图6为本申请实施例提供的一种解码方法的流程示意图,如图6所示,本实施例中以并行处理的线程数N=2为例,说明CPU侧和GPU侧分别执行的数据处理。例如图6中所示,并行处理第一个CTU行和第二个CTU行,第一个CTU行包括多个CTU块,图6中示出了4个CTU块,第二个CTU行包括多个CTU块。针对第一个CTU行和第二个CTU行,CPU侧对第一个CTU行中的每个CTU块依次进行CTU重构、去块滤波和自适应样本补偿滤波,得到每个CTU块的ALF的执行参数信息(即进行自适应环路滤波的执行参数信息),CPU侧根据第一个CTU行中每个CTU块的ALF的执行参数信息,得到第一个CTU行的ALF参数信息。然后CPU侧向GPU发送携带第一个CTU行的ALF参数信息的数据处理请求,GPU执行第一个CTU行的ALF滤波处理,得到第一个CTU行的解码图像数据。同样地,CPU侧对第二个CTU行中的每个CTU块依次进行CTU重构、去块滤波和自适应样本补偿滤波,得到每个CTU块的ALF的执行参数信息(即进行自适应环路滤波的执行参数信息),CPU侧根据第二个CTU行中每个CTU块的ALF的执行参数信息,得到第二个CTU行的ALF参数信息。然后CPU侧向GPU发送携带第二个CTU行的ALF参数信息的数据处理请求,GPU执行第二个CTU行的ALF滤波处理,得到第二个CTU行的解码图像数据。
当GPU执行例如第一个CTU行的ALF滤波处理时,CPU不用等待GPU执行完成,可同时对第一个CTU行的下一行CTU行进行上述处理,直至当前图像的CTU行处理完成。当CPU获取并存储下一行CTU行的ALF参数信息时,对应的第一个CTU行的ALF滤波处理可能也已执行完,从而,对于CPU而言,相比于现有技术,省去了ALF滤波处理所需的时间,进而提高了解码效率。
本实施例提供的解码方法,通过对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息后,CPU先获取每个CTU行的滤波参数信息,并将获取的每个CTU行的滤波参数信息发送至GPU,由GPU执行每个CTU行的自适应环路滤波处理,得到每个CTU行的解码图像数据,最后CPU根据接收到的GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。由于将自适应环路滤波处理的运算过程在GPU上运行,CPU无需等待GPU运行结束就可直接执行剩余CTU行的解码过程,即GPU和CPU可同时处理数据,从而节省了CPU的功耗和运行时间,而且将自适应环路滤波处理的数据按照CTU行发送至GPU,可节省CPU与GPU之间的数据交互产生的时间,提高了GPU的并行度,进一步节省了解码时间,提高了解码效率。
本实施例提供的解码方法,可节省解码器约20%-30%的时间,缩短了解码时间,提升了解码效率。
图7为本申请实施例提供的一种解码装置的结构示意图,如图7所示,该解码装置可以包括:解码模块11、处理模块12、发送模块13和接收模块14。
其中,解码模块11用于对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息;
处理模块12用于:根据当前图像的残差信息和块划分信息,对第一编码树单元CTU行进行第一处理,第一CTU行包括至少一个CTU块,第一处理包括:对第一CTU行进行CTU重构,得到第一CTU行的重构图像信息,根据第一CTU行的重构图像信息,获取第一CTU行的滤波参数信息;
发送模块13用于向图形处理器GPU发送携带第一CTU行的滤波参数信息的数据处理请求,以使GPU执行第一CTU行的预设类型滤波处理,得到第一CTU行的解码图像数据;
处理模块12还用于:对第一CTU行的下一行CTU行进行第一处理,直至当前图像的CTU行处理完成;
接收模块13用于接收GPU发送的当前图像的每个CTU行的解码图像数据;
处理模块12还用于:根据接收模块13接收到的GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。
在一实施例中,第一CTU行的滤波参数信息包括第一CTU行中每个CTU块进行预设类型滤波处理的执行参数信息,预设类型滤波处理为自适应环路滤波。
在一实施例中,第一CTU行的重构图像信息包括第一CTU行中每个CTU块的重构图像信息,处理模块12用于:
按照第一CTU行的CTU块的预设排列顺序,依次针对第一CTU行中每一CTU块,对CTU块的重构图像信息进行第一滤波处理和第二滤波处理,得到CTU块进行预设类型滤波处理的执行参数信息并存储;
根据第一CTU行中每个CTU块的进行预设类型滤波处理的执行参数信息,得到第一CTU行的滤波参数信息。
在一实施例中,第一滤波处理为去块滤波,第二滤波处理为自适应样本补偿滤波。
在一实施例中,发送模块13用于:
确定已存储完第一CTU行中最后一个CTU块的进行预设类型滤波处理的执行参数信息时,向GPU发送数据处理请求。
在一实施例中,处理模块12用于:
根据块划分信息中当前图像的CTU行的排列顺序和每个CTU行的CTU块的排列顺序,将当前图像的每个CTU行的解码图像数据合并,得到当前图像的重建图像。
在一实施例中,处理模块12用于:
获取并行处理的线程数N,N为正整数;
根据N、当前图像的残差信息和块划分信息,对第一CTU行进行第一处理。
在一实施例中,N大于1时,第一CTU行为当前图像的第一组CTU行中的第一个CTU行,第一组CTU行包括N个CTU行,处理模块12具体用于:
对第一CTU行和N个CTU行中的其它N-1个CTU行并行进行第一处理。
在一实施例中,处理模块12还用于:在对第一CTU行的下一行CTU行进行第一处理之前,将当前图像的第一组CTU行的下一组CTU行中的第一个CTU行确定为第一CTU行的下一行CTU行。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图7所示的解码装置可以执行图4对应的方法实施例,并且解码装置中的各个模块的前述和其它操作和/或功能分别为了实现图4对应的方法实施例中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的解码装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图8是本申请实施例提供的解码设备的示意性框图。该解码设备可以是上述方法实施例中的解码器。
如图8所示,该解码设备可包括:
存储器210和处理器220,该存储器210用于存储计算机程序,并将该程序代码传输给该处理器220。换言之,该处理器220可以从存储器210中调用并运行计算机程序,以实现本申请实施例中的方法。
例如,该处理器220可用于根据该计算机程序中的指令执行上述方法实施例。
在本申请实施例的一些实施例中,该处理器220可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请实施例的一些实施例中,该存储器210包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请实施例的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器210中,并由该处理器220执行,以完成本申请实施例提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该编码设备中的执行过程。
如图8所示,该解码设备还可包括:
收发器230,该收发器230可连接至该处理器220或存储器210。
其中,处理器220可以控制该收发器230与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器230可以包括发射机和接收机。收发器230还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该编码设备中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
本申请实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如上述实施例所述的解码方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请实施例各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以该权利要求的保护范围为准。
Claims (13)
1.一种解码方法,其特征在于,包括:
对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息;
根据当前图像的残差信息和块划分信息,对第一编码树单元CTU行进行第一处理,所述第一CTU行包括至少一个CTU块,所述第一处理包括:对所述第一CTU行进行CTU重构,得到所述第一CTU行的重构图像信息,根据所述第一CTU行的重构图像信息,获取所述第一CTU行的滤波参数信息,向图形处理器GPU发送携带所述第一CTU行的滤波参数信息的数据处理请求,以使所述GPU执行所述第一CTU行的预设类型滤波处理,得到所述第一CTU行的解码图像数据;
对所述第一CTU行的下一行CTU行进行所述第一处理,直至当前图像的CTU行处理完成;
根据接收到的所述GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。
2.根据权利要求1所述的方法,其特征在于,所述第一CTU行的滤波参数信息包括所述第一CTU行中每个CTU块进行预设类型滤波处理的执行参数信息,所述预设类型滤波处理为自适应环路滤波。
3.根据权利要求1所述的方法,其特征在于,所述第一CTU行的重构图像信息包括所述第一CTU行中每个CTU块的重构图像信息,所述根据所述第一CTU行的重构图像信息,获取所述第一CTU行的滤波参数信息,包括:
按照所述第一CTU行的CTU块的预设排列顺序,依次针对所述第一CTU行中每一CTU块,对所述CTU块的重构图像信息进行第一滤波处理和第二滤波处理,得到所述CTU块进行所述预设类型滤波处理的执行参数信息并存储;
根据所述第一CTU行中每个CTU块的进行所述预设类型滤波处理的执行参数信息,得到所述第一CTU行的滤波参数信息。
4.根据权利要求3所述的方法,其特征在于,所述第一滤波处理为去块滤波,所述第二滤波处理为自适应样本补偿滤波。
5.根据权利要求3所述的方法,其特征在于,所述向图形处理器GPU发送携带所述第一CTU行的滤波参数信息的数据处理请求,包括:
确定已存储完所述第一CTU行中最后一个CTU块的进行所述预设类型滤波处理的执行参数信息时,向所述GPU发送所述数据处理请求。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据接收到的所述GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像,包括:
根据所述块划分信息中当前图像的CTU行的排列顺序和每个CTU行的CTU块的排列顺序,将所述当前图像的每个CTU行的解码图像数据合并,得到当前图像的重建图像。
7.根据权利要求1所述的方法,其特征在于,所述根据当前图像的残差信息和块划分信息,对第一编码树单元CTU行进行第一处理,包括:
获取并行处理的线程数N,所述N为正整数;
根据所述N、当前图像的残差信息和块划分信息,对所述第一CTU行进行所述第一处理。
8.根据权利要求7所述的方法,其特征在于,所述N大于1时,所述第一CTU行为当前图像的第一组CTU行中的第一个CTU行,所述第一组CTU行包括所述N个CTU行,所述根据所述N、当前图像的残差信息和块划分信息,对所述第一CTU行进行所述第一处理,包括:
对所述第一CTU行和所述N个CTU行中的其它N-1个CTU行并行进行所述第一处理。
9.根据权利要求8所述的方法,其特征在于,所述对所述第一CTU行的下一行CTU行进行所述第一处理之前,还包括:
将当前图像的第一组CTU行的下一组CTU行中的第一个CTU行确定为所述第一CTU行的下一行CTU行。
10.一种解码装置,其特征在于,包括:
解码模块,用于对当前图像的码流进行解码,得到当前图像的残差信息和块划分信息;
处理模块,用于根据当前图像的残差信息和块划分信息,对第一编码树单元CTU行进行第一处理,所述第一CTU行包括至少一个CTU块,所述第一处理包括:对所述第一CTU行进行CTU重构,得到所述第一CTU行的重构图像信息,根据所述第一CTU行的重构图像信息,获取所述第一CTU行的滤波参数信息;
发送模块,用于向图形处理器GPU发送携带所述第一CTU行的滤波参数信息的数据处理请求,以使所述GPU执行所述第一CTU行的预设类型滤波处理,得到所述第一CTU行的解码图像数据;
所述处理模块还用于:对所述第一CTU行的下一行CTU行进行所述第一处理,直至当前图像的CTU行处理完成;
接收模块,用于接收所述GPU发送的当前图像的每个CTU行的解码图像数据;
所述处理模块还用于:根据所述接收模块接收到的所述GPU发送的当前图像的每个CTU行的解码图像数据,得到当前图像的重建图像。
11.一种解码设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如上述权利要求1至9中任一项所述的方法。
12.一种编解码系统,其特征在于,包括编码设备和权利要求11所述的解码设备。
13.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如上述权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311502152.7A CN117528118A (zh) | 2023-11-10 | 2023-11-10 | 解码方法及装置、编解码系统以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311502152.7A CN117528118A (zh) | 2023-11-10 | 2023-11-10 | 解码方法及装置、编解码系统以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117528118A true CN117528118A (zh) | 2024-02-06 |
Family
ID=89765793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311502152.7A Pending CN117528118A (zh) | 2023-11-10 | 2023-11-10 | 解码方法及装置、编解码系统以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117528118A (zh) |
-
2023
- 2023-11-10 CN CN202311502152.7A patent/CN117528118A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11057628B2 (en) | Effective intra encoding for screen data | |
US20230128206A1 (en) | Method and apparatus for dc intra prediction | |
CN105163126A (zh) | 一种基于hevc协议的硬件解码方法和装置 | |
US11323706B2 (en) | Method and apparatus for aspect-ratio dependent filtering for intra-prediction | |
US20210084298A1 (en) | Method and apparatus for boundary partition | |
US11539953B2 (en) | Apparatus and method for boundary partition | |
CN117528118A (zh) | 解码方法及装置、编解码系统以及存储介质 | |
US11805250B2 (en) | Performing intra-prediction using intra reference sample filter switching | |
US20220094931A1 (en) | Low frequency non-separable transform and multiple transform selection deadlock prevention | |
WO2023221599A1 (zh) | 图像滤波方法、装置及设备 | |
WO2022174475A1 (zh) | 视频编解码方法与系统、及视频编码器与视频解码器 | |
CN116405675A (zh) | 编码方法、装置、设备及存储介质 | |
CN116805971A (zh) | 图像编解码方法、装置、设备 | |
CN117501695A (zh) | 用于基于深度学习的视频处理的增强体系结构 | |
KR20220119643A (ko) | 데이터 스트림의 압축 | |
CN116781934A (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 |