CN112672165A - 图像编码、解码方法、电子设备及可读存储介质 - Google Patents
图像编码、解码方法、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN112672165A CN112672165A CN202011558973.9A CN202011558973A CN112672165A CN 112672165 A CN112672165 A CN 112672165A CN 202011558973 A CN202011558973 A CN 202011558973A CN 112672165 A CN112672165 A CN 112672165A
- Authority
- CN
- China
- Prior art keywords
- width
- value
- image
- height
- plane
- 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 62
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function 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
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Abstract
本发明提供了一种图像编码、解码方法、电子设备及可读存储介质,涉及图像处理技术领域。图像编码方法,包括:分别获取输入图像的第一宽度和第一高度;根据所述第一宽度和所述第一高度,获取第二宽度和第二高度,其中,所述第二宽度和所述第二高度均为偶数;根据所述第二宽度和所述第二高度,为所述输入图像申请第一内存;将所述输入图像存储于所述第一内存中,得到YUV格式的图像信息。此种方式不会因输入图像的尺寸不同而造成系统崩溃,能够保证系统性能不受影响。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种图像编码、解码方法、电子设备及可读存储介质。
背景技术
YUV(亦称YCrCb)是被欧洲电视系统所采用的一种颜色编码方法(属于电视广播制式(Phase Alteration Line,PAL),是PAL和塞康制(SECAM,意为“按顺序传送彩色与存储”)模拟彩色电视制式采用的颜色空间。其中的Y代表亮度,uv代表色差,u和v是构成彩色的两个分量。YUV_NV21是YUV格式中的一种,常使用于ANDROID等嵌入式设备中。YUV_NV21属于4:2:0采样,每四个Y共用一组VU分量,相比于JPG、YUV444、YUV422等占用更少的存储空间。图1为YUV_NV21的内存示意图,分为Y平面与VU平面,VU平面中,VU交错存储。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:
在Android端设备中,视频的宽高都是偶数的,但测试图片做为输入时,图片的宽高是不固定的,会出现奇数的情况。但是现有YUV_NV21的内存格式,可能使系统造成崩溃,进而导致系统性能降低。
发明内容
本发明实施例提供一种图像编码、解码方法、电子设备及可读存储介质,以解决现有的YUV的内存格式,可能会造成系统崩溃而导致系统性能降低的问题。
第一方面,本发明的实施例提供了一种图像编码方法,包括:
分别获取输入图像的第一宽度和第一高度;
根据所述第一宽度和所述第一高度,获取第二宽度和第二高度,其中,所述第二宽度和所述第二高度均为偶数;
根据所述第二宽度和所述第二高度,为所述输入图像申请第一内存;
将所述输入图像存储于所述第一内存中,得到YUV格式的图像信息。
可选地,所述根据所述第一宽度和所述第一高度,获取第二宽度和第二高度,包括:
若所述第一宽度为偶数,则所述第二宽度等于所述第一宽度;若所述第一宽度为奇数,则所述第二宽度的取值为大于所述第一宽度的最小的偶数;
若所述第一高度为偶数,则所述第二高度等于所述第一高度;若所述第一高度为奇数,则所述第二高度的取值为大于所述第一高度的最小的偶数。
可选地,所述第一内存的空间大小为:
其中,inputHeight为第一高度;inputWidth为第一宽度;width为第二宽度;height为第二高度。
可选地,所述将所述输入图像存储于所述第一内存中,得到YUV格式的图像信息,包括:
按照从左至右、从上至下的原则,遍历输入图像中的每一个像素点;
获取所述像素点的颜色取值,所述颜色取值包括:透明度A值、红颜色通道R值、绿颜色通道G值、蓝颜色通道B值;
根据所述颜色取值,确定像素点的YUV格式取值,所述YUV格式取值包括:Y值、U值和V值;
将所述YUV格式取值,分别存储于所述第一内存的Y平面和VU平面中,获取YUV格式的图像信息。
可选地,所述将所述YUV格式取值,分别存储于所述第一内存的Y平面和VU平面中,包括:
将所述像素点的Y值填入Y平面的索引位置;
若所述像素点在Y平面中的行号为偶数且列号为偶数,则分别将所述像素点的V值和U值按顺序写入VU平面。
第二方面,本发明的实施例提供了一种图像解码方法,包括:
获取待解码图像的第五宽度和第五高度;
根据所述第五宽度和第五高度,对所述待解码图像的Y平面进行遍历,获取Y值;
根据所述第五宽度,确定第六宽度,所述第六宽度为偶数;
根据所述第六宽度以及Y值在所述Y平面中所对应的位置,对所述待解码图像进行解码,获取解码后的图像。
可选地,所述根据所述第五宽度,确定第六宽度,包括:
若所述第五宽度为偶数,则所述第六宽度等于所述第五宽度;若所述第五宽度为奇数,则所述第六宽度的取值为大于所述第五宽度的最小的偶数。
可选地,所述根据所述第六宽度以及Y值在所述Y平面中所对应的位置,对所述待解码图像进行解码,获取解码后的图像,包括:
根据所述第六宽度以及Y值在所述Y平面中所对应的位置,确定U值和V值;
根据所述Y值、U值和V值,对所述待解码图像进行解码,获取解码后的图像。
可选地,所述根据所述Y值、U值和V值,对所述待解码图像进行解码,获取解码后的图像,包括:
根据所述Y值、U值和V值,确定红颜色通道R值、绿颜色通道G值、蓝颜色通道B值;
将R值、G值和B值,按顺序写入像素位中,获取解码后的图像。
依据本发明的另一个方面,提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的图像编码方法的步骤或上述的图像解码方法的步骤。
依据本发明的再一个方面,提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的图像编码方法的步骤或上述的图像解码方法的步骤。
本发明实施例中,通过将输入图像的宽度和高度调整为偶数的宽度和高度,以此为输入图像申请内存,进而实现图像的编码,此种方式不会因输入图像的尺寸不同而造成系统崩溃,能够保证系统性能不受影响。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为YUV_NV21的内存示意图;
图2表示本申请实施例的图像编码方法的流程示意图;
图3表示向上最近取偶的流程示意图;
图4表示YUV_NV21存储结果示意图;
图5表示应用本申请实施例的宽为奇数、高为偶数时YUV_NV21存储结果示意图;
图6表示应用本申请实施例的宽为偶数、高为奇数时YUV_NV21存储结果示意图;
图7表示应用本申请实施例的宽为奇数、高为奇数时YUV_NV21存储结果示意图;
图8表示本申请实施例的编码方法的详细流程示意图;
图9表示本申请实施例的图像解码方法的流程示意图;
图10表示本申请实施例的解码方法的详细流程示意图;
图11表示图像编解码流程示意图;
图12表示bitmap序列化后的内存示意图;
图13表示改进后的YUV_NV21的内存示意图;
图14表示本申请实施例提供的图像编码装置的结构示意图;
图15表示本申请实施例提供的电子设备的实施结构示意图;
图16表示本申请实施例提供的图像解码装置的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。另外,本文中术语“系统”和“网络”在本文中常可互换使用。
如图2所示,本申请的实施例提供了一种图像编码方法,包括:
步骤201,分别获取输入图像的第一宽度和第一高度;
需要说明的是,该输入图像指的是位图(Bitmap)图像,该第一宽度指的是该输入图像在宽度方向上具有的像素点的个数,该第一高度指的是输入图像在高度方向上具有的像素点的个数。
步骤202,根据所述第一宽度和所述第一高度,获取第二宽度和第二高度,其中,所述第二宽度和所述第二高度均为偶数;
步骤203,根据所述第二宽度和所述第二高度,为所述输入图像申请第一内存;
需要说明的是,该第一内存指的是存储输入图像的存储空间。
步骤204,将所述输入图像存储于所述第一内存中,得到YUV格式的图像信息。
需要说明的是,本申请中所说的YUV格式指的是YUV_NV21格式或YUV_NV12格式,也就是说,本申请实施例适用于将Bitmap图像编码为YUV_NV21格式的图像,也同样适用于将Bitmap图像编码为YUV_NV12格式的图像。
进一步需要说明的是,该步骤202的具体实现方式为:
若所述第一宽度为偶数,则所述第二宽度等于所述第一宽度;若所述第一宽度为奇数,则所述第二宽度的取值为大于所述第一宽度的最小的偶数;
若所述第一高度为偶数,则所述第二高度等于所述第一高度;若所述第一高度为奇数,则所述第二高度的取值为大于所述第一高度的最小的偶数。
需要说明的是,为了将Bitmap图像编码为YUV格式的图像,需要利用Bitmap图像的宽度和高度申请存储空间,该存储空间包括Y平面和VU平面,具体地,申请的Y平面的存储空间大小可直接根据Bitmap图像的宽度和高度得到,同时还需要借助Bitmap图像的宽度和高度获取VU平面的存储空间大小,本申请中为了兼容Bitmap图像的宽度和高度为奇数和偶数的情况,在Bitmap图像的宽度和高度不为偶数的情况下,需要先获取偶数的宽度和高度,具体地获取原则为:将宽度向上最近取偶得到新的宽度,将高度向上最近取偶得到新的高度,依据新得到的高度和宽度去申请VU平面的存储空间大小。
其中,inputHeight为第一高度;inputWidth为第一宽度;width为第二宽度;height为第二高度。
例如,本申请中采用的一种可选地向上最近取偶的流程如图3所示,设Bitmap图像的宽高分别为W、H,则向上最近取偶后,VU平面的存储空间大小(size)分为如下三种情况:
(1)H为奇数且W为奇数:size=(H+1)/2×(W+1);
(2)H为奇数且W为偶数:size=(H+1)/2×W;
(3)H为偶数且W为奇数:size=H/2×(W+1)。
以YUV_NV21格式为例,下面在图像的宽度和高度(用像素点个数标识宽度和高度)分别为4×4、4×5、5×4、5×5四种情况下,对比本申请所采用的向上最近取偶的方式与现有技术的不同。
依据现有技术的处理方式,会对上述四种情况下的图像进行裁剪,统一为4×4的结果,如图4所示。
而按本申请实施例的申请内存的方式,对图像的宽度和高度分别为4×4、4×5、5×4、5×5四种情况的处理如下:
A1、宽高分别为4×4,与现有YUV_NV21格式的存储结果一致,参见图4。
A12、宽高分别为5×4,即宽度为奇数、高度为偶数:按照本申请方式处理后,Height’=Height,Width’=Width+1,Y平面中每两行的最后一列Y对应VU平面中相应行中最后一对VU。此时YUV_NV21格式的存储结果如图5所示,其中,图5中虚线框表示相比于现有技术在Y平面与VU平面中增加的相素。
A13、宽高分别为4×5,即宽度为偶数、高度为奇数:按照本申请方式处理后,Height’=Height+1,Width’=Width,Y平面中最后一行Y中每两个Y对应VU平面中最后一行中相应的一对VU,此时YUV_NV21格式的存储结果如图6所示。
A14、宽高分别为5×5,即宽度为奇数、高度为奇数:按照本申请方式处理后,Height’=Height+1,Width’=Width+1,Y平面中每两行的最后一列Y对应VU平面中相应行中最后一对VU,Y平面中最后一行Y中每两个Y对应VU平面中最后一行中相应的一对VU,此时YUV_NV21格式的存储结果如图7所示。
具体地,所述步骤204的实现过程包括:
步骤2041,按照从左至右、从上至下的原则,遍历输入图像中的每一个像素点;
步骤2042,获取所述像素点的颜色取值,所述颜色取值包括:透明度(A)值、红颜色通道(R)值、绿颜色通道(G)值、蓝颜色通道(B)值;
步骤2043,根据所述颜色取值,确定像素点的YUV格式取值,所述YUV格式取值包括:Y值、U值和V值;
步骤2044,将所述YUV格式取值,分别存储于所述第一内存的Y平面和VU平面中,获取YUV格式的图像信息;
具体地,此步骤的实现方式为:将所述像素点的Y值填入Y平面的索引位置;若所述像素点在Y平面中的行号为偶数且列号为偶数,则分别将所述像素点的V值和U值按顺序写入VU平面。
如图8所示,以将位图图像编码为YUV_NV21格式的图像为例,本申请实施例的编码流程具体为:
步骤801,得到输入图像的宽度(inputWidth)与高度(inputHeight),分别对宽度和高度向上最近取偶,向上最近取偶后的宽度和高度分别为width、height;
步骤802,申请inputHeight×inputWidth+width×height/2的内存空间用于保存YUV_NV21图像;
步骤803,设置Y平面的地址为0至inputHeight×inputWidth,VU平面的地址为inputHeight×inputWidth至inputHeight×inputWidth+width×height/2;
步骤804,从左至右(0至inputWidth)、从上至下(0至inputHeight)遍历图像中的像素点(未对图像进行裁剪),并记录此次遍历的像素点的行号(j)、列号(i)、像素点的序号(index);
步骤805,从步骤804中得到的像素点按规则一得到A值、R值、G值、B值;
规则一:
A←(argb[index]&oxFF000000)>>24
R←(argb[index]&oxFF0000)>>16
G←(argb[index]&oxFF00)>>8
B←(argb[index]&oxFF);
其中,>>为向右移位的符号。
步骤806,将像素点的R值、B值、G值按规则二得到同一像素点的Y值、U值、V值;
规则二:
Y←((66×R+129×G+25×B+128)>>8)+16
U←((-38×R-74×G+112×B+128)>>8)+128
V←((112×R-94×G-18×B+128)>>8)+128
步骤807,将像素点Y值填入Y平面的index位置;
步骤808,判断像素点在Y平面中的行号是否为偶数且列号是否为偶数;若像素点在Y平面中的行号为偶数且列号为偶数,则执行步骤809,否则,执行810;
步骤809,分别将像素点V值、U值按顺序写入VU平面中;
步骤810,判断是否已完成编码,若未完成,则跳转到步骤804。
需要说明的是,本申请实施例的编码方式,不会因输入图像的尺寸不同而造成系统崩溃,能够保证系统性能不受影响,且此种编码方式,能够兼容各种尺寸的图像,在进行YUV格式编码时,能够保留原始图像信息,不会破坏原始图像,进而提升了YUV格式编码的准确性。
对应于上述的编码方法,如图9所示,本申请实施例还提供一种图像解码方法,包括:
步骤901,获取待解码图像的第五宽度和第五高度;
需要说明的是,该待解码图像指的是YUV格式的图像。
步骤902,根据所述第五宽度和第五高度,对所述待解码图像的Y平面进行遍历,获取Y值;
步骤903,根据所述第五宽度,确定第六宽度,所述第六宽度为偶数;
步骤904,根据所述第六宽度以及Y值在所述Y平面中所对应的位置,对所述待解码图像进行解码,获取解码后的图像。
本申请实施例适用于将YUV_NV21格式的图像解码为Bitmap图像,也同样适用于将YUV_NV12格式的图像解码为Bitmap图像。
进一步需要说明的是,本申请的步骤903的具体实现方式为:
若所述第五宽度为偶数,则所述第六宽度等于所述第五宽度;若所述第五宽度为奇数,则所述第六宽度的取值为大于所述第五宽度的最小的偶数。
进一步地,所述步骤904的具体实现过程为:
步骤9041,根据所述第六宽度以及Y值在所述Y平面中所对应的位置,确定U值和V值;
步骤9042,根据所述Y值、U值和V值,对所述待解码图像进行解码,获取解码后的图像;
具体地,此步骤的实现方式为:根据所述Y值、U值和V值,确定红颜色通道R值、绿颜色通道G值、蓝颜色通道B值;将R值、G值和B值,按顺序写入像素位中,获取解码后的图像。
具体地,如图10所示,以将YUV_NV21格式的图像解码为Bitmap图像为例,本申请实施例的解码流程具体为:
步骤1001,传入图像的宽度(width)与高度(height),宽度和高度可为奇数,可为偶数;
步骤1002,设置Y平面的起始地址为0,VU平面的地址为width×height;
步骤1003,从左至右(0至width)、从上至下(0至height)遍历Y平面,并记录此次遍历Y平面的行号(i)、列号(j);
步骤1004,从Y平面中取i×width+j处的值,得到Y值。
步骤1005,判断width是否为奇数,若不为奇数,则执行步骤1006,若为奇数,则执行步骤1007;
步骤1006,按Y值所在的位置(i,j),按规则一在VU平面中计算V、U的位置,并获取V值、U值;
规则一如下:
V值(index_v)=(i/2×width/2+j/2)×2
U值(index_u)=(i/2×width/2+j/2)×2+1。
步骤1007,按Y值所在的位置(i,j),按规则二在VU平面中计算V、U的位置,并获取V值、U值;
规则二如下:
V值(index_v)=(i/2×(width+1)/2+j/2)×2
U值(index_u)=(i/2×(width+1)/2+j/2)×2+1。
步骤1008,将Y值、U值、V值按规则三生成R值、G值、B值;
规则三:
R←1.164×(Y-16)+1.596×(V-128)
G←1.164×(Y-16)-0.813×(V-128)-0.392×(U-128)
B←1.164×(Y-16)+2.017×(U-128)
步骤1009,将B值、G值、R值按顺序写入图像的像素位中;
步骤1010,判断解码是否完成,若未完成,则跳转到步骤1003继续执行。
综上可知,本申请提供一种android端基于YUV格式的编解码方法,用来编解码图像,本方法兼容宽度、高度为奇偶的情况(宽为偶数、高为偶数,宽为奇数、高为偶数,宽为偶数、高为奇数,宽为奇数、高为奇数)。其主要流程如图11所示,主要步骤为:
步骤1101,获取Bitmap图像;
步骤1102,将获取到的Bitmap图像读入序列化的内存中;
具体地,内存中的Bitmap图像格式如图12所示,此种格式中有且只有一个平面,每一个像素点记录了ARGB值。
步骤1103,申请YUV格式的图像内存;
需要说明的是,YUV格式的内存示意图如图13,YUV格式的内存分两个平面,Y平面与VU平面;Y平面的宽高与bitmap的宽高一致;VU平面的宽高是bitmap的宽高的向上最近取偶,其中,VU平面根据图像尺寸奇偶尺寸的不同,重新分配了Y与VU的对应关系,改变存储布局,以实现可对不同奇偶尺寸大小图像的兼容性。
步骤1104,将内存中读入的Bitmap图像进行YUV编码,内存中的YUV格式如图13所示;
步骤1105,通过网络接口或者本地调用将编码数据及相应宽高传送给解码器;
步骤1106,解码器中,将内存中YUV格式的图像进行解码,得到RGB图像。
需要说明的是,本申请实施例,可达到如下有益效果:
1、宽高兼容奇数与偶数,不会对奇数的宽高强行进行裁剪,能够保留原始图像信息;
2、在改变存储布局结构的基础上,又改变了后续编解码方式,使得该编解码方式可更好的与该存储布局融合,能够处理不同规格的图像,提升了对不同尺寸的图像的兼容性。
如图14所示,本申请实施例还提供一种图像编码装置,包括:
第一获取模块1401,用于分别获取输入图像的第一宽度和第一高度;
第二获取模块1402,用于根据所述第一宽度和所述第一高度,获取第二宽度和第二高度,其中,所述第二宽度和所述第二高度均为偶数;
内存申请模块1403,用于根据所述第二宽度和所述第二高度,为所述输入图像申请第一内存;
第三获取模块1404,用于将所述输入图像存储于所述第一内存中,得到YUV格式的图像信息。
可选地,所述第二获取模块1402,用于:
若所述第一宽度为偶数,则所述第二宽度等于所述第一宽度;若所述第一宽度为奇数,则所述第二宽度的取值为大于所述第一宽度的最小的偶数;
若所述第一高度为偶数,则所述第二高度等于所述第一高度;若所述第一高度为奇数,则所述第二高度的取值为大于所述第一高度的最小的偶数。
其中,inputHeight为第一高度;inputWidth为第一宽度;width为第二宽度;height为第二高度。
可选地,所述第三获取模块1404,包括:
遍历单元,用于按照从左至右、从上至下的原则,遍历输入图像中的每一个像素点;
第一获取单元,用于获取所述像素点的颜色取值,所述颜色取值包括:透明度A值、红颜色通道R值、绿颜色通道G值、蓝颜色通道B值;
第一确定单元,用于根据所述颜色取值,确定像素点的YUV格式取值,所述YUV格式取值包括:Y值、U值和V值;
存储单元,用于将所述YUV格式取值,分别存储于所述第一内存的Y平面和VU平面中,获取YUV格式的图像信息。
可选地,所述存储单元,用于:
将所述像素点的Y值填入Y平面的索引位置;
若所述像素点在Y平面中的行号为偶数且列号为偶数,则分别将所述像素点的V值和U值按顺序写入VU平面。
需要说明的是,上述图像编码方法实施例中所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。
如图15所示,本申请实施例还提供了一种电子设备,包括:处理器1501、存储器1502及存储在所述存储器1502上并可在所述处理器1501上运行的计算机程序,所述处理器1501执行所述计算机程序时实现上述的图像编码方法的步骤。具体的,所述处理器1501用于实现:分别获取输入图像的第一宽度和第一高度;根据所述第一宽度和所述第一高度,获取第二宽度和第二高度,其中,所述第二宽度和所述第二高度均为偶数;根据所述第二宽度和所述第二高度,为所述输入图像申请第一内存;将所述输入图像存储于所述第一内存中,得到YUV格式的图像信息。
可选地,所述处理器1501执行根据所述第一宽度和所述第一高度,获取第二宽度和第二高度的程序时,用于实现:
若所述第一宽度为偶数,则所述第二宽度等于所述第一宽度;若所述第一宽度为奇数,则所述第二宽度的取值为大于所述第一宽度的最小的偶数;
若所述第一高度为偶数,则所述第二高度等于所述第一高度;若所述第一高度为奇数,则所述第二高度的取值为大于所述第一高度的最小的偶数。
其中,inputHeight为第一高度;inputWidth为第一宽度;width为第二宽度;height为第二高度。
可选地,所述处理器1501执行将所述输入图像存储于所述第一内存中,得到YUV格式的图像信息的程序时,用于实现:
按照从左至右、从上至下的原则,遍历输入图像中的每一个像素点;
获取所述像素点的颜色取值,所述颜色取值包括:透明度A值、红颜色通道R值、绿颜色通道G值、蓝颜色通道B值;
根据所述颜色取值,确定像素点的YUV格式取值,所述YUV格式取值包括:Y值、U值和V值;
将所述YUV格式取值,分别存储于所述第一内存的Y平面和VU平面中,获取YUV格式的图像信息。
可选地,所述处理器1501执行将所述YUV格式取值,分别存储于所述第一内存的Y平面和VU平面中的程序时,用于实现:
将所述像素点的Y值填入Y平面的索引位置;
若所述像素点在Y平面中的行号为偶数且列号为偶数,则分别将所述像素点的V值和U值按顺序写入VU平面。
需要说明的是,在图15中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1501代表的一个或多个处理器1501和存储器1502代表的存储器1502的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口1503提供接口。处理器1501负责管理总线架构和通常的处理,存储器1502可以存储处理器在执行操作时所使用的数据。
本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过计算机程序来指示相关的硬件来完成,所述计算机程序包括执行上述方法的部分或者全部步骤的指令;且该计算机程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。
另外,本发明具体实施例还提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述图像编码方法中的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
如图16所示,本申请实施例还提供一种图像解码装置,包括:
第四获取模块1601,用于获取待解码图像的第五宽度和第五高度;
第五获取模块1602,用于根据所述第五宽度和第五高度,对所述待解码图像的Y平面进行遍历,获取Y值;
第二确定模块1603,用于根据所述第五宽度,确定第六宽度,所述第六宽度为偶数;
第六获取模块1604,用于根据所述第六宽度以及Y值在所述Y平面中所对应的位置,对所述待解码图像进行解码,获取解码后的图像。
可选地,所述第二确定模块1603,用于:
若所述第五宽度为偶数,则所述第六宽度等于所述第五宽度;若所述第五宽度为奇数,则所述第六宽度的取值为大于所述第五宽度的最小的偶数。
可选地,所述第六获取模块1604,包括:
第二确定单元,用于根据所述第六宽度以及Y值在所述Y平面中所对应的位置,确定U值和V值;
第二获取单元,用于根据所述Y值、U值和V值,对所述待解码图像进行解码,获取解码后的图像。
可选地,所述第二获取单元,包括:
根据所述Y值、U值和V值,确定红颜色通道R值、绿颜色通道G值、蓝颜色通道B值;
将R值、G值和B值,按顺序写入像素位中,获取解码后的图像。
本申请实施例还提供了一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的图像解码方法的步骤。具体的,所述处理器用于实现:获取待解码图像的第五宽度和第五高度;根据所述第五宽度和第五高度,对所述待解码图像的Y平面进行遍历,获取Y值;根据所述第五宽度,确定第六宽度,所述第六宽度为偶数;根据所述第六宽度以及Y值在所述Y平面中所对应的位置,对所述待解码图像进行解码,获取解码后的图像。
可选地,所述处理器执行根据所述第五宽度,确定第六宽度的程序时,用于实现:
若所述第五宽度为偶数,则所述第六宽度等于所述第五宽度;若所述第五宽度为奇数,则所述第六宽度的取值为大于所述第五宽度的最小的偶数。
可选地,所述处理器执行根据所述第六宽度以及Y值在所述Y平面中所对应的位置,对所述待解码图像进行解码,获取解码后的图像的程序时,用于实现:
根据所述第六宽度以及Y值在所述Y平面中所对应的位置,确定U值和V值;
根据所述Y值、U值和V值,对所述待解码图像进行解码,获取解码后的图像。
可选地,所述处理器执行根据所述Y值、U值和V值,对所述待解码图像进行解码,获取解码后的图像的程序时,用于实现:
根据所述Y值、U值和V值,确定红颜色通道R值、绿颜色通道G值、蓝颜色通道B值;
将R值、G值和B值,按顺序写入像素位中,获取解码后的图像。
需要说明的是,该电子设备的结构图与图15中电子设备的结构相同,在此不再赘述。
本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过计算机程序来指示相关的硬件来完成,所述计算机程序包括执行上述方法的部分或者全部步骤的指令;且该计算机程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。
另外,本发明具体实施例还提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述图像解码方法中的步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述收发方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述的原理前提下还可以作出若干改进和润饰,这些改进和润饰也在本发明的保护范围内。
Claims (11)
1.一种图像编码方法,其特征在于,包括:
分别获取输入图像的第一宽度和第一高度;
根据所述第一宽度和所述第一高度,获取第二宽度和第二高度,其中,所述第二宽度和所述第二高度均为偶数;
根据所述第二宽度和所述第二高度,为所述输入图像申请第一内存;
将所述输入图像存储于所述第一内存中,得到YUV格式的图像信息。
2.根据权利要求1所述的图像编码方法,其特征在于,所述根据所述第一宽度和所述第一高度,获取第二宽度和第二高度,包括:
若所述第一宽度为偶数,则所述第二宽度等于所述第一宽度;若所述第一宽度为奇数,则所述第二宽度的取值为大于所述第一宽度的最小的偶数;
若所述第一高度为偶数,则所述第二高度等于所述第一高度;若所述第一高度为奇数,则所述第二高度的取值为大于所述第一高度的最小的偶数。
4.根据权利要求1所述的图像编码方法,其特征在于,所述将所述输入图像存储于所述第一内存中,得到YUV格式的图像信息,包括:
按照从左至右、从上至下的原则,遍历输入图像中的每一个像素点;
获取所述像素点的颜色取值,所述颜色取值包括:透明度A值、红颜色通道R值、绿颜色通道G值、蓝颜色通道B值;
根据所述颜色取值,确定像素点的YUV格式取值,所述YUV格式取值包括:Y值、U值和V值;
将所述YUV格式取值,分别存储于所述第一内存的Y平面和VU平面中,获取YUV格式的图像信息。
5.根据权利要求4所述的图像编码方法,其特征在于,所述将所述YUV格式取值,分别存储于所述第一内存的Y平面和VU平面中,包括:
将所述像素点的Y值填入Y平面的索引位置;
若所述像素点在Y平面中的行号为偶数且列号为偶数,则分别将所述像素点的V值和U值按顺序写入VU平面。
6.一种图像解码方法,其特征在于,包括:
获取待解码图像的第五宽度和第五高度;
根据所述第五宽度和第五高度,对所述待解码图像的Y平面进行遍历,获取Y值;
根据所述第五宽度,确定第六宽度,所述第六宽度为偶数;
根据所述第六宽度以及Y值在所述Y平面中所对应的位置,对所述待解码图像进行解码,获取解码后的图像。
7.根据权利要求6所述的图像解码方法,其特征在于,所述根据所述第五宽度,确定第六宽度,包括:
若所述第五宽度为偶数,则所述第六宽度等于所述第五宽度;若所述第五宽度为奇数,则所述第六宽度的取值为大于所述第五宽度的最小的偶数。
8.根据权利要求6所述的图像解码方法,其特征在于,所述根据所述第六宽度以及Y值在所述Y平面中所对应的位置,对所述待解码图像进行解码,获取解码后的图像,包括:
根据所述第六宽度以及Y值在所述Y平面中所对应的位置,确定U值和V值;
根据所述Y值、U值和V值,对所述待解码图像进行解码,获取解码后的图像。
9.根据权利要求8所述的图像解码方法,其特征在于,所述根据所述Y值、U值和V值,对所述待解码图像进行解码,获取解码后的图像,包括:
根据所述Y值、U值和V值,确定红颜色通道R值、绿颜色通道G值、蓝颜色通道B值;
将R值、G值和B值,按顺序写入像素位中,获取解码后的图像。
10.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的图像编码方法的步骤或如权利要求6至9中任一项所述的图像解码方法的步骤。
11.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的图像编码方法的步骤或如权利要求6至9中任一项所述的图像解码方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011558973.9A CN112672165A (zh) | 2020-12-25 | 2020-12-25 | 图像编码、解码方法、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011558973.9A CN112672165A (zh) | 2020-12-25 | 2020-12-25 | 图像编码、解码方法、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112672165A true CN112672165A (zh) | 2021-04-16 |
Family
ID=75408887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011558973.9A Pending CN112672165A (zh) | 2020-12-25 | 2020-12-25 | 图像编码、解码方法、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112672165A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6100941A (en) * | 1998-07-28 | 2000-08-08 | U.S. Philips Corporation | Apparatus and method for locating a commercial disposed within a video data stream |
CN101170707A (zh) * | 2007-11-08 | 2008-04-30 | 华为技术有限公司 | 图像格式的转换和恢复方法及装置 |
CN101520989A (zh) * | 2008-02-28 | 2009-09-02 | 无锡紫芯集成电路系统有限公司 | Yuv格式和rgb格式的视频液晶显示控制的硬件集成设计 |
CN102034220A (zh) * | 2010-12-23 | 2011-04-27 | 武汉大学苏州研究院 | 一种基于数字水印的票据电子影像防篡改方法 |
-
2020
- 2020-12-25 CN CN202011558973.9A patent/CN112672165A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6100941A (en) * | 1998-07-28 | 2000-08-08 | U.S. Philips Corporation | Apparatus and method for locating a commercial disposed within a video data stream |
CN101170707A (zh) * | 2007-11-08 | 2008-04-30 | 华为技术有限公司 | 图像格式的转换和恢复方法及装置 |
CN101520989A (zh) * | 2008-02-28 | 2009-09-02 | 无锡紫芯集成电路系统有限公司 | Yuv格式和rgb格式的视频液晶显示控制的硬件集成设计 |
CN102034220A (zh) * | 2010-12-23 | 2011-04-27 | 武汉大学苏州研究院 | 一种基于数字水印的票据电子影像防篡改方法 |
Non-Patent Citations (1)
Title |
---|
石器时代的小古董: "OpenCV宽高必须是偶数", 《简书:HTTPS://WWW.JIANSHU.COM/P/A70E53369DDF》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5327254A (en) | Method and apparatus for compressing and decompressing image data | |
US20160100161A1 (en) | Decoder, encoder, decoding method, encoding method, and codec system | |
US8184127B2 (en) | Apparatus for and method of generating graphic data, and information recording medium | |
US7760209B2 (en) | Video format conversion using 3D graphics pipeline of a GPU | |
EP3107289A1 (en) | Picture coding and decoding methods and devices | |
KR100547812B1 (ko) | 컬러 참조테이블을 사용하여 화소데이터의 컬러모델을변환하는 장치 및 방법 | |
CN110971839B (zh) | 视频融合方法、电子设备及存储介质 | |
CN1973535A (zh) | 缩减并混和两个高分辨率图像的设备和方法 | |
US11431977B2 (en) | Image coding method and apparatus, and image decoding method and apparatus | |
US7483037B2 (en) | Resampling chroma video using a programmable graphics processing unit to provide improved color rendering | |
CN102572207B (zh) | 一种适于jpeg图像的颜色空间转换方法 | |
CN102835104B (zh) | 去块滤波方法 | |
US20200226822A1 (en) | Content Based Anti-Aliasing for Image Downscale | |
CN112650460A (zh) | 媒体显示方法和媒体显示装置 | |
CN112672165A (zh) | 图像编码、解码方法、电子设备及可读存储介质 | |
US7885487B2 (en) | Method and apparatus for efficiently enlarging image by using edge signal component | |
US11082718B2 (en) | Method and device for coding image and method and device for decoding image | |
CN111526366B (zh) | 图像处理方法、装置、摄像设备和存储介质 | |
EP2169616B1 (en) | Video scaling techniques | |
US8064709B2 (en) | Method and apparatus for buffering output pixel data of a joint photographic experts group image | |
US7903124B2 (en) | Individual channel filtering of palettized image formats | |
CN113271466B (zh) | 图像编码方法、解码方法、传输方法以及存储装置和处理装置 | |
WO2024087864A1 (zh) | 图像水印处理方法及装置 | |
CN109982087B (zh) | 图像处理电路及相关的图像处理方法 | |
CN116320449A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210416 |