CN114827614A - 一种实现lcevc视频编码优化的方法 - Google Patents
一种实现lcevc视频编码优化的方法 Download PDFInfo
- Publication number
- CN114827614A CN114827614A CN202210447137.6A CN202210447137A CN114827614A CN 114827614 A CN114827614 A CN 114827614A CN 202210447137 A CN202210447137 A CN 202210447137A CN 114827614 A CN114827614 A CN 114827614A
- Authority
- CN
- China
- Prior art keywords
- lcevc
- data
- transformation
- gpu
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000005457 optimization Methods 0.000 title claims abstract description 42
- 230000009466 transformation Effects 0.000 claims abstract description 66
- 238000013139 quantization Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000005070 sampling Methods 0.000 claims abstract description 37
- 238000004458 analytical method Methods 0.000 claims abstract description 4
- 238000013461 design Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 25
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 239000011159 matrix material Substances 0.000 claims description 21
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 11
- 238000012360 testing method Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 2
- 238000007792 addition Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/124—Quantisation
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种实现LCEVC视频编码优化的方法,属于多媒体视频处理与传输领域,包括以下步骤:S1:对于给定的输入视频,采用基于Modifiedcubic插值信息的分块下采样方获取最优的下采样输出;S2:将步骤S1所述的分块下采样方法嵌入到LCEVC编码器中,对LCEVC中各个模块进行耗时分析,设计基于CPU‑GPU异构平台的LCEVC编码器框架;S3:根据框架对LCEVC标准中的上采样、改进后的下采样、变换与量化、反变换与反量化、熵编码模块进行并行优化设计,在PC端实现实时低复杂度增强视频编码。本发明提高了LCEVC的编码视频质量,缩短了编码时间,提高了硬件资源的有效利用率。
Description
技术领域
本发明属于多媒体视频处理与传输领域,涉及一种实现LCEVC视频编码优化的方法。
背景技术
随着视频编解码技术的快速发展,高清视频、超高清视频(包括4K、8K)受到大众的青睐,因为它们可以为用户提供更清晰的画质和更逼真的感知质量。但是高清视频、超高清视频的数据量随着分辨率和位深的提高而增大。为了提高压缩效率、减少数据量,为了满足在现有和未来视频编解码器上基于软件扩展的市场需求,提出了低复杂度增强视频编码(LCEVC)。
从LCEVC的测试软件LTM测试可知,LCEVC将压缩率提高到40%左右。以AVC为基本编码器,在相同比特率下同一视频的峰值信噪比(PSNR)、视频质量多方法评价融合(VMAF)、平均主观意见分(MOS)值均高于AVC。以AVC为基本编解码器的LCEVC编码时间比AVC编码时间少2.4倍,以HEVC为基本编解码器的LCEVC编码时间比HEVC编码时间少2.7倍。LCEVC与基本编码器结合应用后,视频图像有了明显的增强。LCEVC的下采样模块采用兰索斯(Lanczos)插值算法,虽然Lanczos算法有较好的插值效果,但是其下采样模块并没有达到最优性能的下采样输出。因此有必要对LCEVC的下采样模块进行优化改进,进而增强视频图像质量。
尽管LCEVC具有复杂度低、编码时间短的特点,但是通过对同一高清视频的测试,当QP为22时,以AVC为基本编解码器的LCEVC编码时间为28.9s,以HEVC为基本编解码器的LCEVC编码时间高达33.8s。对于流媒体、体育直播等一些实时性较强的应用而言,有必要在不影响编码性能的基础上对视频编码过程进行加速实现LCEVC标准下的实时编码。
发明内容
有鉴于此,本发明的目的在于提供一种实现LCEVC视频编码优化的方法,考虑插值依赖的图像下采样优化方法和基于GPU并行优化实现LCEVC实时编码,实现PC端的实时低复杂度增强视频编码。
为达到上述目的,本发明提供如下技术方案:
一种实现LCEVC视频编码优化的方法,包括以下步骤:
S1:对于给定的输入视频,采用基于Modifiedcubic插值信息的分块下采样方法获取最优的下采样输出,以提高LCEVC中下采样模块的输出视频质量,进而提高LCEVC编码视频的图像质量;
S2:将步骤S1中所述的基于Modifiedcubic插值信息的分块下采样方法嵌入到LCEVC编码器中,对LCEVC中各个模块分别统计耗时并进行耗时分析,通过耗时分析结果设计一种基于CPU-GPU异构平台的LCEVC编码器框架;
S3:根据S2中基于CPU-GPU异构平台的LCEVC编码器框架对LCEVC标准中的上采样、改进后的下采样、变换与量化、反变换与反量化、熵编码模块进行并行优化设计,在PC端实现实时低复杂度增强视频编码。
进一步,所述步骤S1中,设输入视频序列为Y,下采样后的图像为X,通过基于Modifiedcubic插值信息的分块下采样方法求得最优的下采样输出X*,具体包括以下步骤:
S11:设Y'为X插值后的图像,H为插值系数,Φ为插值系数和对应的像素值的乘积组成的矩阵,其中Y'表示为:
Y'=HX+Φ
最优的下采样的目标函数表示为:
对X求导化简得:
令上式等于零得X最优解的闭式解为:
X*=(HTH)-1[HT(Y-Φ)]
其中(HTH)-1是(HTH)的逆矩阵,(HTH)-1为满秩矩阵;
由于H矩阵的大小随着图像尺寸的增大而增大,因此在程序中H会占据很大的内存空间,同时(HTH)-1的计算量会随着H的增大而增大。为了解决复杂度高、程序占据内存较大的问题,结合Modifiedcubic插值算法采用周围16个像素点插值得到一个新像素点的特点,对Y采用8×8分块进行处理。Y为8×8的块时,插值矩阵H的大小为16×64,常数向量Φ为一个长度为64的列向量,Φ的值只与边界像素对应的元素有关。
S12:将所有的4×4最优的下采样块X*按照分块顺序合并在一起即为最终的下采样图像的输出结果。
进一步,所述步骤S2具体包括以下步骤:
S21:将步骤S1中所述基于Modifiedcubic插值信息的分块下采样方法嵌入到LCEVC编码器中;
S22:选取一组视频序列,对LCEVC编码器在多核CPU上进行多次串行运行测试,求平均数得到每一帧的平均消耗时间,从而得到LCEVC编码器各个模块的耗时占比;
S23:通过步骤S22中LCEVC编码器各个模块的耗时占比,基于GPU能够进行大规模的并行处理,CPU更适合于逻辑控制特点,设计一种基于CPU-GPU异构平台的LCEVC编码器框架,该编码框架既考虑了GPU,也考虑了CPU的计算资源。其中CPU和GPU之间的通信采用复制数据的方式实现,CPU负责处理的部分包括:
1)负责读取图像数据,负责将输入视频序列和基本编码器生成的Y、U、V分量数据读入到CPU内存中,并将数据复制后传递到GPU的显存中;
2)负责读取编码配置文件,比如图像名称、分辨率大小、位深、上下采样方式、量化参数等信息。
3)负责输出基本编码器的编码视频、输出重建视频序列、输出码流,负责重建视频PSNR的计算以及GPU线程的调度;
对于上采样、下采样、变换、量化、反变换、反量化、熵编码这些数据相关性比较低的模块,根据各个模块不同的算法处理过程设计相应的并行优化算法。
进一步,所述步骤S3具体包括:
S31:对上采样模块并行化处理;从LCEVC中的Modifiedcubic插值过程可以知道,该插值过程只包含了加法、乘法和移位计算,而这三个运算符在GPU上已经有对应的硬件加法器。因此可以采用GPU对上采样插值进行并行实现;共享存储器是GPU的片上存储器,可以快速存取数据,也可以实现各线程块之间的数据通信。
S32:将下采样的输入图像分为8×8的块进行并行处理;在GPU中,分配的block数为Pic_Height/8,thread数为Pic_Width/8,其中Pic_Height和Pic_Width分别表示下采样输入图像的高和宽;下采样的并行化处理与上采样并行化处理流程基本相同,区别在于执行的下采样算法和插值算法不同。
S33:对变换与量化模块进行并行化处理;
S34:反变换与变换的并行原理完全相同,反量化与量化的原理也完全相同。因此对反变换、反量化的并行优化方式与S33相同;
S35:对熵编码模块中的游程编码和哈夫曼编码并行处理;
S36:在PC端的GPU平台上实现S31到S35中的并行优化算法,进而实现对LCEVC编码器的加速,实现实时的低复杂度增强视频编码。
进一步,步骤S31中,上采样并行化具体实现方法如下:
S311:将需要上采样的图像从CPU内存中复制到GPU的全局内存中,并将插值系数矩阵复制到常量内存中;
S312:对输入的图像上下边界进行填充,考虑到图像填充后保证每个线程处理的数据量基本相同,将填充后的图像平均分成64个块,块的高度为U_PicHeight/8,宽度为U_PicWidth/8,其中U_PicHeight和U_PicWidth分别表示待插值视频图像的宽度和长度,然后将图像按照分块分别读入到共享内存中;
S313:分配线程块和线程,分配的block数为8,thread数为8;
S314:每个线程读取共享内存中所需要的像素值,并从常量内存中读取插值系数进行插值运算,经过cudaDeviceSynchronize()函数同步后,将每个块的插值结果保存到全局内存中;
S315:最后将GPU全局内存中的上采样结果复制给CPU内存以供后续数据处理使用。
进一步,所述步骤S33中,LCEVC提供两种变换方式,2×2的变换或者4×4的变换;在并行优化之前,对LCEVC中的变换方式采用蝶形变换,以减少计算次数;2×2的变换公式改写为如下形式:
2×2的变换如果按照常规算法计算,一共需要12次加法,6次乘法计算。通过蝶形变换的矩阵转化,只需要8次加法和4次乘法,不仅节约了硬件资源,而且减少了计算复杂度。LCEVC中变换过程的输入数据是预测残差,对于2×2变换或者4×4变换,变换后会将变换系数解析成层;
对于4×4的变换,首先将残差数据分为4×4的块,然后每个块根据变换矩阵进行蝶形变换,最后将变换系数的数据解析为层;层与层之间的数据是独立的,不具有相关性,因此变换后采用并行计算对量化模块进行优化;由于4×4变换后是将数据解析成16个layer,因此GPU中分配的block数为4,thread数为4;4×4变换在GPU上实现的具体步骤包括:
1)把残差数据从CPU中复制到GPU的全局内存中,然后将原始图像分成4×4的块;
2)分配block和thread数目,block数为4,thread数为4;
3)每个线程根据分配的线程号来读取全局内存中块的数据信息,然后对各个块做蝶形变换,将得到的变换系数解析为层;处理数据的过程中,使用_syncthreads()函数进行同步;量化过程的输入是变换系数,量化过程的输入数据为Tin[layer][y][x],对于4×4的变换来说,layer为16,每个layer中的数据是不相关的,因此不存在依赖性,每一个变换系数的量化过程都可以独立完成,因此可以采取完全并行的方式进行量化优化。
进一步,步骤S35中,量化输出的数据的都是以layer来进行区分的,但是layer中的数据量大小因为亮度分量和色度分量的不同而不同。为了减少由于某些线程数据长度不一致而引起的程序等待时间,应将数据尽可能的平均,以提高并行编码的效率。以L-1层的U1和V1为基准,将layer中较大的数据块分割为和W/16×H/16相同大小的数据,分配的block数为16个,分配的thread数目为30个,使用一个thread处理一个W/16×H/16大小的数据块,基于GPU的熵编码并行优化的具体实现方法为:
1)从CPU内存中将需要量化的输出数据复制传递给GPU的全局内存;
2)将熵编码输入的数据按照W/16×H/16大小的数据块分块读入共享存储器;
3)每个线程从共享储存器中读取所需要的数据进行游程编码和哈夫曼编码,使用cudaDeviceSynchronize()函数等待所有线程都处理完成,将编码数据按序传入全局内存中;
通过GPU并行计算得到熵编码结果,将熵编码数据复制传递给CPU的内存,在写入二进制码流文件时直接使用熵编码输出数据。
本发明的有益效果在于:本发明既考虑了通过改进下采样算法以计算出最优的下采样视频图像,进而提高LCEVC整体视频编码质量,又考虑了将改进后的下采样算法采用分块的方式求解以降低计算复杂度和内存使用空间。通过本发明方法实现实时的LCEVC视频编码***,考虑了上采样、改进后的下采样、变换与量化、反变换与反量化、熵编码模块的并行优化,减少了编码时间,提高了CPU、GPU等硬件资源的有效利用率,提高了编码效率。本发明还实现了PC端实时的低复杂度增强视频编码。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
图1为本发明的***流程框图;
图2为本发明所述方法的步骤S3中对上采样并行优化的流程图
图3为本发明所述方法的步骤S3中对变换与量化并行优化的流程图;
图4为本发明所述方法的步骤S3中对蝶形算法图解的示意图;
图5为本发明所述方法的步骤S3中对熵编码并行优化的流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
如图1所示,本发明提供一种实现LCEVC视频编解码标准的优化方法,包括以下步骤:
S1:对于给定的输入视频,采用基于Modifiedcubic插值信息的分块下采样方法以此提高LCEVC中下采样模块的输出视频质量,进而提高LCEVC编码视频的图像质量。具体步骤为:
S11:设输入视频序列为Y,下采样后的图像为X,通过基于Modifiedcubic插值信息的分块下采样方法求得最优的下采样输出X*。计算过程如下:
设Y'为X插值后的图像,H为插值系数,Φ为插值系数和对应的像素值的乘积组成的矩阵。其中Y'可表示为
Y'=HX+Φ
最优的下采样的目标函数可以表示为:
对X求导化简可得
令上式等于零可得X最优解的闭式解
X*=(HTH)-1[HT(Y-Φ)]
其中(HTH)-1是(HTH)的逆矩阵,(HTH)-1为满秩矩阵。
由于H矩阵的大小随着图像尺寸的增大而增大,因此在程序中H会占据很大的内存空间,同时(HTH)-1的计算量会随着H的增大而增大。为了解决复杂度高、程序占据内存较大的问题,结合Modifiedcubic插值算法采用周围16个像素点插值得到一个新像素点的特点对Y采用8×8分块进行处理。Y为8×8的块时,此时插值矩阵H的大小为16×64,常数向量Φ为一个长度为64的列向量,Φ的值只与边界像素对应的元素有关。
S12:最后将所有的4×4最优的下采样块X*按照分块顺序合并在一起即为最终的下采样输出结果。
S2:将S1中的基于Modifiedcubic插值信息的分块下采样方法加入LCEVC编码器中,并对LCEVC中各个模块分别统计耗时并进行耗时分析,通过耗时分析结果设计了一种基于CPU-GPU异构平台的LCEVC编码器框架。具体步骤为:
S21:将基于Modifiedcubic插值信息的分块下采样方法嵌入到LCEVC编码器中。
S22:选取一组视频序列,对LCEVC编码器在多核CPU上进行测试,经过10次串行运行测试求平均数得到每一帧的平均消耗时间,得到LCEVC编码器各个模块的耗时占比。
S23:通过S22中LCEVC编码器各个模块的耗时占比,基于GPU能够进行大规模的并行处理,CPU更适合于逻辑控制特点,设计一种基于CPU-GPU异构平台的LCEVC编码器框架,该编码框架既考虑了GPU,也考虑了CPU的计算资源。其中CPU和GPU之间的通信主要是采用复制数据的方式实现的,CPU主要负责处理的部分包括:
1)负责读取图像数据,负责将输入视频序列和基本编码器生成的Y、U、V分量数据读入到CPU内存中,CPU并将数据复制后传递到GPU的显存中。
2)负责读取编码配置文件,比如图像名称、分辨率大小、位深、上下采样方式、量化参数等信息。
3)负责输出基本编码器的编码视频、输出重建视频序列、输出码流,负责重建视频PSNR的计算以及GPU线程的调度。
对于上采样、下采样、变换、量化、反变换、反量化、熵编码这些数据相关性比较低的模块,根据各个模块不同的算法处理过程设计相应的并行优化算法。
S3:根据S2中基于CPU-GPU异构平台的LCEVC编码器框架对LCEVC标准中的上采样、改进后的下采样、变换与量化、熵编码模块进行并行优化设计,实现实时低复杂度增强视频编码。本方法能够提高LCEVC的编码视频质量,同时也缩短了编码时间,提高了CPU、GPU等硬件资源的有效利用率。具体步骤为:
S31:如图2所示,对上采样模块并行化处理。从Modifiedcubic插值过程可以知道,插值过程只包含了加法、乘法和移位计算,而这三个运算符在GPU上已经有对应的硬件加法器。因此可以采用GPU对上采样插值进行并行实现。共享存储器是GPU的片上存储器,可以快速存取数据,也可以实现各线程块之间的数据通信。基于此,上采样并行化具体实现方法如下:
1)将需要上采样的图像从CPU内存中拷贝到GPU的全局内存中,并将插值系数矩阵拷贝到常量内存中。
2)对输入的图像上下边界进行填充,考虑到图像填充后保证每个线程处理的数据量基本相同,将填充后的图像平均分成64个块,块的高度为U_PicHeight/8,宽度为U_PicWidth/8,其中U_PicHeight和U_PicWidth分别表示待插值视频图像的宽度和长度,然后将图像按照分块分别读入到共享内存中。
3)分配线程块和线程。分配的线程块数为8,线程数为8。
4)每个线程读取共享内存中所需要的像素值,并从常量内存中读取插值系数进行插值运算,经过cudaDeviceSynchronize()函数同步后,将每个块的插值结果保存到全局内存中。最后将GPU全局内存中的上采样结果复制给CPU内存以供后续数据处理使用。
S32:将下采样的输入图像分为8×8的块进行并行处理。在GPU中,分配的block数为Pic_Height/8,thread数为Pic_Width/8。其中Pic_Height和Pic_Width分别表示下采样输入图像的高和宽。下采样的并行化处理与上采样并行化处理流程基本相同,区别在于执行的下采样算法和插值算法不同。
S33:如图3所示,对变换与量化模块进行并行化处理。在变换的过程中,LCEVC提供了两种变换方式,2×2的变换或者4×4的变换。在并行优化之前,对LCEVC中的变换方式采用蝶形变换,以减少计算次数。2×2的变换公式可以改写为如下形式:
2×2的变换如果按照常规算法计算,一共需要12次加法,6次乘法计算。如图4所示,通过蝶形变换的矩阵转化,只需要8次加法和4次乘法,不仅节约了硬件资源,而且减少了计算复杂度。LCEVC中变换过程的输入数据是预测残差,对于2×2变换或者4×4变换,变换后会将变换系数解析成层。对于4×4的变换,首先会将残差数据分为4×4的块,然后每个块根据变换矩阵进行蝶形变换,最后将变换系数的数据解析为层。层与层之间的数据是独立的,不具有相关性,因此变换后可以采用并行计算对量化模块进行优化。由于4×4变换后是将数据解析成16个layer,因此GPU中分配的block数为4,thread数为4。4×4变换在GPU上实现的具体步骤包括:
1)把残差数据从CPU中复制到GPU的全局内存中,然后将原始图像分成4×4的块。
2)分配block和thread数目,block数为4,thread数为4。
3)每个线程根据分配的线程号来读取全局内存中块的数据信息,然后对各个块做蝶形变换,将得到的变换系数解析为层。处理数据的过程中,需要使用_syncthreads()函数进行同步。量化过程的输入就是变换系数。量化过程的输入数据为Tin[layer][y][x],对于4×4的变换来说,layer为16。每个layer中的数据是不相关的,因此不存在依赖性,每一个变换系数的量化过程都可以独立完成,因此可以采取完全并行的方式进行量化优化。
S34:反变换与变换的并行原理完全相同,反量化与量化的原理也完全相同。因此对反变换、反量化的并行优化方式与S33相同。
S35:如图5所示,对熵编码模块中的游程编码和哈夫曼编码并行处理。量化输出的数据的都是以layer来进行区分的,但是layer中的数据量大小因为亮度分量和色度分量的不同而不同。为了减少由于某些线程数据长度不一致而引起的程序等待时间,应将数据尽可能的平均,以提高并行编码的效率。以L-1层的U1和V1为基准,将layer中较大的数据块分割为和W/16×H/16相同大小的数据。可以考虑分配的block数为16个,分配的thread数目为30个,使用一个thread处理一个W/16×H/16大小的数据块。基于GPU的熵编码并行优化的具体实现方法为:
1)从CPU内存中将需要量化的输出数据复制传递给GPU的全局内存。
2)将熵编码输入的数据按照W/16×H/16大小的数据块分块读入共享存储器。
3)每个线程从共享储存器中读取所需要的数据进行游程编码和哈夫曼编码,使用cudaDeviceSynchronize()函数等待所有线程都处理完成,将编码数据按序传入全局内存中。
通过GPU并行计算得到熵编码结果,将熵编码数据复制传递给CPU的内存,在写入二进制码流文件时可以直接使用熵编码输出数据。
S36:在PC端的GPU平台上实现S31到S34中的并行优化算法,进而实现对LCEVC编码器的加速,实现实时的低复杂度增强视频编码。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种实现LCEVC视频编码优化的方法,其特征在于:包括以下步骤:
S1:对于给定的输入视频,采用基于Modifiedcubic插值信息的分块下采样方法获取最优的下采样输出;
S2:将步骤S1中所述的基于Modifiedcubic插值信息的分块下采样方法嵌入到LCEVC编码器中,对LCEVC中各个模块分别统计耗时并进行耗时分析,通过耗时分析结果设计一种基于CPU-GPU异构平台的LCEVC编码器框架;
S3:根据S2中基于CPU-GPU异构平台的LCEVC编码器框架对LCEVC标准中的上采样、改进后的下采样、变换与量化、反变换与反量化、熵编码模块进行并行优化设计,在PC端实现实时低复杂度增强视频编码。
2.根据权利要求1所述的实现LCEVC视频编码优化的方法,其特征在于:所述步骤S1中,设输入视频序列为Y,下采样后的图像为X,通过基于Modifiedcubic插值信息的分块下采样方法求得最优的下采样输出X*,具体包括以下步骤:
S11:设Y'为X插值后的图像,H为插值系数,Φ为插值系数和对应的像素值的乘积组成的矩阵,X最优解的闭式解为:
X*=(HTH)-1[HT(Y-Φ)]
其中(HTH)-1是(HTH)的逆矩阵,(HTH)-1为满秩矩阵;
对Y采用8×8分块进行处理;
S12:将所有的4×4最优的下采样块X*按照分块顺序合并在一起即为最终的下采样图像的输出结果。
3.根据权利要求1所述的实现LCEVC视频编码优化的方法,其特征在于:所述步骤S2具体包括以下步骤:
S21:将步骤S1中所述基于Modifiedcubic插值信息的分块下采样方法嵌入到LCEVC编码器中;
S22:选取一组视频序列,对LCEVC编码器在多核CPU上进行多次串行运行测试,求平均数得到每一帧的平均消耗时间,从而得到LCEVC编码器各个模块的耗时占比;
S23:通过步骤S22中LCEVC编码器各个模块的耗时占比,设计一种基于CPU-GPU异构平台的LCEVC编码器框架,CPU和GPU之间的通信采用复制数据的方式实现,CPU负责处理的部分包括:
1)负责读取图像数据,负责将输入视频序列和基本编码器生成的Y、U、V分量数据读入到CPU内存中,并将数据复制后传递到GPU的显存中;
2)负责读取编码配置文件;
3)负责输出基本编码器的编码视频、输出重建视频序列、输出码流,负责重建视频PSNR的计算以及GPU线程的调度;
对于数据相关性比较低的模块,根据各个模块不同的算法处理过程设计相应的并行优化算法。
4.根据权利要求1所述的实现LCEVC视频编码优化的方法,其特征在于:所述步骤S3具体包括:
S31:对上采样模块并行化处理;采用GPU对上采样插值进行并行实现;
S32:将下采样的输入图像分为8×8的块进行并行处理;在GPU中,分配的block数为Pic_Height/8,thread数为Pic_Width/8,其中Pic_Height和Pic_Width分别表示下采样输入图像的高和宽;
S33:对变换与量化模块进行并行化处理;
S34:对反变换、反量化的并行优化方式与S33相同;
S35:对熵编码模块中的游程编码和哈夫曼编码并行处理;
S36:在PC端的GPU平台上实现S31到S35中的并行优化算法,进而实现对LCEVC编码器的加速,实现实时的低复杂度增强视频编码。
5.根据权利要求4所述的实现LCEVC视频编码优化的方法,其特征在于:步骤S31中,上采样并行化具体实现方法如下:
S311:将需要上采样的图像从CPU内存中复制到GPU的全局内存中,并将插值系数矩阵复制到常量内存中;
S312:对输入的图像上下边界进行填充,将填充后的图像平均分成64个块,块的高度为U_PicHeight/8,宽度为U_PicWidth/8,其中U_PicHeight和U_PicWidth分别表示待插值视频图像的宽度和长度,然后将图像按照分块分别读入到共享内存中;
S313:分配线程块和线程,分配的block数为8,thread数为8;
S314:每个线程读取共享内存中所需要的像素值,并从常量内存中读取插值系数进行插值运算,经过cudaDeviceSynchronize()函数同步后,将每个块的插值结果保存到全局内存中;
S315:最后将GPU全局内存中的上采样结果复制给CPU内存以供后续数据处理使用。
6.根据权利要求4所述的实现LCEVC视频编码优化的方法,其特征在于:所述步骤S33中,LCEVC提供两种变换方式,2×2的变换或者4×4的变换;在并行优化之前,对LCEVC中的变换方式采用蝶形变换;2×2的变换公式改写为如下形式:
LCEVC中变换过程的输入数据是预测残差,对于2×2变换或者4×4变换,变换后会将变换系数解析成层;
对于4×4的变换,首先将残差数据分为4×4的块,然后每个块根据变换矩阵进行蝶形变换,最后将变换系数的数据解析为层;变换后采用并行计算对量化模块进行优化;GPU中分配的block数为4,thread数为4;4×4变换在GPU上实现的具体步骤包括:
1)把残差数据从CPU中复制到GPU的全局内存中,然后将原始图像分成4×4的块;
2)分配block和thread数目,block数为4,thread数为4;
3)每个线程根据分配的线程号来读取全局内存中块的数据信息,然后对各个块做蝶形变换,将得到的变换系数解析为层;处理数据的过程中,使用_syncthreads()函数进行同步;量化过程的输入是变换系数,量化过程的输入数据为Tin[layer][y][x],对于4×4的变换来说,layer为16,采取完全并行的方式进行量化优化。
7.根据权利要求4所述的实现LCEVC视频编码优化的方法,其特征在于:步骤S35中,以L-1层的U1和V1为基准,将layer中较大的数据块分割为和W/16×H/16相同大小的数据,分配的block数为16个,分配的thread数目为30个,使用一个thread处理一个W/16×H/16大小的数据块,基于GPU的熵编码并行优化的具体实现方法为:
1)从CPU内存中将需要量化的输出数据复制传递给GPU的全局内存;
2)将熵编码输入的数据按照W/16×H/16大小的数据块分块读入共享存储器;
3)每个线程从共享储存器中读取所需要的数据进行游程编码和哈夫曼编码,使用cudaDeviceSynchronize()函数等待所有线程都处理完成,将编码数据按序传入全局内存中;
通过GPU并行计算得到熵编码结果,将熵编码数据复制传递给CPU的内存,在写入二进制码流文件时直接使用熵编码输出数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210447137.6A CN114827614B (zh) | 2022-04-18 | 2022-04-18 | 一种实现lcevc视频编码优化的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210447137.6A CN114827614B (zh) | 2022-04-18 | 2022-04-18 | 一种实现lcevc视频编码优化的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114827614A true CN114827614A (zh) | 2022-07-29 |
CN114827614B CN114827614B (zh) | 2024-03-22 |
Family
ID=82507961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210447137.6A Active CN114827614B (zh) | 2022-04-18 | 2022-04-18 | 一种实现lcevc视频编码优化的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114827614B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102572436A (zh) * | 2012-01-17 | 2012-07-11 | 西安电子科技大学 | 一种基于cuda实现的帧内压缩方法 |
CN104574277A (zh) * | 2015-01-30 | 2015-04-29 | 京东方科技集团股份有限公司 | 图像插值方法和图像插值装置 |
CN104869398A (zh) * | 2015-05-21 | 2015-08-26 | 大连理工大学 | 一种基于cpu+gpu异构平台实现hevc中的cabac的并行方法 |
CN107135392A (zh) * | 2017-04-21 | 2017-09-05 | 西安电子科技大学 | 基于异步模式的hevc运动搜索并行方法 |
CN109391816A (zh) * | 2018-10-26 | 2019-02-26 | 大连理工大学 | 基于cpu+gpu异构平台实现hevc中熵编码环节的并行处理方法 |
CN109495743A (zh) * | 2018-11-15 | 2019-03-19 | 上海电力学院 | 一种基于异构多处理平台的并行化视频编码方法 |
WO2019109771A1 (zh) * | 2017-12-05 | 2019-06-13 | 南京南瑞信息通信科技有限公司 | 基于多核异构并行计算的电力人工智能视觉分析*** |
-
2022
- 2022-04-18 CN CN202210447137.6A patent/CN114827614B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102572436A (zh) * | 2012-01-17 | 2012-07-11 | 西安电子科技大学 | 一种基于cuda实现的帧内压缩方法 |
CN104574277A (zh) * | 2015-01-30 | 2015-04-29 | 京东方科技集团股份有限公司 | 图像插值方法和图像插值装置 |
CN104869398A (zh) * | 2015-05-21 | 2015-08-26 | 大连理工大学 | 一种基于cpu+gpu异构平台实现hevc中的cabac的并行方法 |
CN107135392A (zh) * | 2017-04-21 | 2017-09-05 | 西安电子科技大学 | 基于异步模式的hevc运动搜索并行方法 |
WO2019109771A1 (zh) * | 2017-12-05 | 2019-06-13 | 南京南瑞信息通信科技有限公司 | 基于多核异构并行计算的电力人工智能视觉分析*** |
CN109391816A (zh) * | 2018-10-26 | 2019-02-26 | 大连理工大学 | 基于cpu+gpu异构平台实现hevc中熵编码环节的并行处理方法 |
CN109495743A (zh) * | 2018-11-15 | 2019-03-19 | 上海电力学院 | 一种基于异构多处理平台的并行化视频编码方法 |
Non-Patent Citations (6)
Title |
---|
ANDREAS HEINDEL; EUGEN WIGE; ANDRÉ KAUP: "Low-Complexity Enhancement Layer Compression for Scalable Lossless Video Coding Based on HEVC", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》, vol. 27, no. 8, 20 April 2016 (2016-04-20), pages 1749, XP011658058, DOI: 10.1109/TCSVT.2016.2556338 * |
JIN-TAI SHANGGUAN; YAN-LING LI; YONG-GANG WANG; HUI-LING LI: "Fast algorithm of modified cubic convolution interpolation", 《2011 4TH INTERNATIONAL CONGRESS ON IMAGE AND SIGNAL PROCESSING》, 12 December 2011 (2011-12-12), pages 1 - 4 * |
NEWSHA ARDALANI; CLINT LESTOURGEON; KARTHIKEYAN SANKARALINGAM; XIAOJIN ZHU: "Cross-architecture performance prediction (XAPP) using CPU code to predict GPU performance", 《2015 48TH ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON MICROARCHITECTURE (MICRO)》, 16 February 2017 (2017-02-16), pages 1 - 13 * |
丁杨: "实时低复杂度增强视频编码研究", 《中国优秀硕士学位论文全文数据库》信息科技辑, 15 June 2023 (2023-06-15) * |
袁三男, 王孟彬, 张艳秋, 陶倩昀: "基于异构多处理平台视频编码并行化复杂度与率失真研究", 《上海电力大学学报》, vol. 37, no. 03, 7 May 2021 (2021-05-07), pages 271 - 276 * |
赵晴: "基于CPU+GPU异构平台的H.265/HEVC编码器关键技术研究", 《中国学位论文全文数据库》, 31 October 2019 (2019-10-31) * |
Also Published As
Publication number | Publication date |
---|---|
CN114827614B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Djelouah et al. | Neural inter-frame compression for video coding | |
US11863769B2 (en) | Bandwidth saving architecture for scalable video coding | |
KR100974177B1 (ko) | 랜덤 필드 모델을 사용한 사진 및 비디오 압축과 프레임레이트 업 변환을 개선시키는 방법 및 장치 | |
CN100512431C (zh) | 用于编码和解码立体视频的方法和装置 | |
WO2019019690A1 (zh) | 图像处理方法、设备及*** | |
CN1549459A (zh) | 数字便携式终端和数字信号处理设备 | |
JP2023513564A (ja) | 点群圧縮のためのティア化階層コード化の使用 | |
US10368071B2 (en) | Encoding data arrays | |
CN1695381A (zh) | 在数字视频信号的后处理中使用编码信息和局部空间特征的清晰度增强 | |
CN104205845A (zh) | 具有统一位宽乘法器的lm模式 | |
EP2232884A1 (en) | Intra frame encoding using programmable graphics hardware | |
CN111741302B (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
JP2002531973A (ja) | 画像の圧縮及び伸張 | |
KR20030081403A (ko) | 영상의 부호화 및 복호화 방법, 장치 및 그 애플리케이션 | |
TWI672941B (zh) | 影像處理方法、設備及系統 | |
CN113994685A (zh) | 在分级视频编码中交换信息 | |
CN105472442A (zh) | 一种用于超高清帧率上变换的片外缓存压缩*** | |
Mei et al. | VLSI design of a high-speed and area-efficient JPEG2000 encoder | |
Abhayaratne et al. | Scalable watermark extraction for real-time authentication of JPEG 2000 images | |
CN114827614B (zh) | 一种实现lcevc视频编码优化的方法 | |
JP2007505545A (ja) | スケーラブル信号処理方法及び装置 | |
CN100486333C (zh) | 插值运算装置及方法 | |
CN103379349B (zh) | 一种视点合成预测编码方法、解码方法、对应的装置及码流 | |
KR100381204B1 (ko) | 칼라 정지영상의 부호화 및 복호화 방법 | |
de Cea-Dominguez et al. | Real-time 16K video coding on a GPU with complexity scalable BPC-PaCo |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |