CN108235028A - 基于hevc协议的视频图像解码方法及终端 - Google Patents
基于hevc协议的视频图像解码方法及终端 Download PDFInfo
- Publication number
- CN108235028A CN108235028A CN201810236098.9A CN201810236098A CN108235028A CN 108235028 A CN108235028 A CN 108235028A CN 201810236098 A CN201810236098 A CN 201810236098A CN 108235028 A CN108235028 A CN 108235028A
- Authority
- CN
- China
- Prior art keywords
- block
- value
- hevc
- line
- agreements
- 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
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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
- H04N19/45—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种基于hevc协议的视频图像解码方法,包括:遍历当前帧图像中32x32源像素块,获得32x32源像素块中的非零块和全零块,确定所述非零块和所述全零块在32x32源像素块的相对位置;依据所述相对位置确定所述非零块的截止值;基于预设解码规则和所述截止值对所述非零块进行运算,获得解码后的解码图像。本发明对非零块和全零块分开处理,降低了解码过程是占用的内存,同时通过本发明减少了内存读取和整数乘法操作,提升了解码的效率。
Description
技术领域
本发明涉及图像处理领域,具体而言,本发明涉及一种基于hevc协议的视频图像解码方法及终端。
背景技术
在现有HEVC标准的基础上,在进行图像解码的IDCT过程中,均采用了二维变换方式,其主要是先对32x32残差块进行一维变换,生成32x32临时结果;第二步,对临时的32x32块,进行二维变换,然后生成最终的IDCT结果。在此过程中,变换需要设计到IDCT标准系数,该系数是由HEVC标准规定。在常规的变换过程中,不可避免地需要对整个32x32块进行多次的内存读取和整数乘法,计算过程复杂,使得图像解码的过程较慢,在计算过程中,需要耗费较高的电量。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一,特别是内存读取和整数乘法次数多的问题。
本发明提供了一种基于hevc协议的视频图像解码方法,包括如下步骤:
遍历当前帧图像中32x32源像素块,获得32x32源像素块中的非零块和全零块,确定所述非零块和所述全零块在32x32源像素块的相对位置;
依据所述相对位置确定所述非零块的截止值;
基于预设解码规则和所述截止值对所述非零块进行运算,获得解码后的解码图像。
进一步地,在所述基于预设解码规则和所述截止值对所述非零块进行运算,获得解码后的解码图像的步骤中,具体包括:
按照行数序列号依次依据预设索引值和所述非零块与所述索引值相对应的系数确定第一数组值;
将同一行中的所述第一数组值依据预设偏移拼接规则进行偏移和拼接,获得32x32临时像素块;
按照列数序列号依次依据所述预设索引值和所述32x32临时像素块与所述索引值相对应的系数确定第二数组值;
将同一列中的所述第二数组值依据所述预设偏移拼接规则进行偏移和拼接,获得32x32像素块;
根据所述32x32像素块获得当前帧图像经二维解码后的解码图像。
优选地,所述预设偏移拼接规则为:
dst[k]=(E[k]+O[k]+add)>>shift;
dst[k+16]=(E[15-k]-O[15-k]+add)>>shift;
其中,k为索引值且k∈(0,15),E[k]和O[k]为数组值,dst[k]为输出数据,add为变化量,shift转变量。
更优地,在所述将同一行中的所述第一数组值依据预设偏移拼接规则进行偏移和拼接,获得32x32临时像素块的过程中,所述add等于7,所述shift等于32。
更优地,在所述将同一列中的所述第二数组值依据所述预设偏移拼接规则进行偏移和拼接,获得32x32像素块的过程中,所述add等于11,所述shift等于2048。
进一步地,获取所述非零块和所述全零块在32x32源像素块的相对位置步骤中,包括:
获得所述非零块中的最后一个非零元素在所述源像素块中的初始坐标,并以所述非零元素的初始列作为所述全零块的起始列和所述非零块的最后一列,获得所述相对位置。
优选地,所述相对位置为所述非零块最后一个元素和所述全零块起始元素的坐标值。
优选地,当前帧图像中包括至少一个由32x32源像素数据转换成的32x32源像素块。
优选地,所述预设索引值的取值范围为0到15之间任意一个整数,且所述预设索引值的取值范围包括0和15。
进一步地,所述截止值为4、8、12、16、24、32中的任意一个。
本发明的实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序执行时实现任一技术方案所述的基于hevc协议的视频图像解码方法的步骤。
本发明的实施例还提供了一种基于hevc协议的视频图像解码终端,其特征在于,包括处理器、存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现任一技术方案所述的基于hevc协议的视频图像解码方法的步骤。
与现有技术相比,本发明具有以下有益效果:
1、本发明实施例提供了一种基于hevc协议的视频图像解码方法,包括:遍历当前帧图像中32x32源像素块,获得32x32源像素块中的非零块和全零块,确定所述非零块和所述全零块在32x32源像素块的相对位置;依据所述相对位置确定所述非零块的截止值;基于预设解码规则和所述截止值对所述非零块进行运算,获得解码后的解码图像。本发明对非零块和全零块分开处理,减少了解码过程中读取全零块的次数和整数乘法操作次数,降低了解码过程是占用的内存,同时提升了图像解码的效率。
2、本发明实施例提供了一种基于hevc协议的视频图像解码方法,包括如下步骤:遍历当前帧图像中32x32源像素块,获得32x32源像素块中的非零块和全零块,确定所述非零块和所述全零块在32x32源像素块的相对位置,并确定非零块行数的截止值;按照行数序列号依次依据预设索引值和所述非零块中与所述索引值相对应的系数确定第一数组值;将同一行中的所述第一数组值依据预设偏移拼接规则进行偏移和拼接,获得32x32临时像素块;按照列数序列号依次依据所述预设索引值和所述临时像素块与所述索引值相对应的系数确定第二数组值;将同一列中的所述第二数组值依据所述预设偏移拼接规则进行偏移和拼接,获得32x32像素块;根据所述32x32像素块获得当前帧图像经二维解码后的解码图像。将输入的32x32源像素块划分为32x32非零块和全零块,在运算过程中,只读取和整乘非零块中的数据,而对全零块通过特殊处理,进而减少了IDCT运算过程中内存读取和整数乘法的操作步骤,节约了解码过程中IDCT运算时间,减少了IDCT反变换的运算量,进而提升IDCT32x32效率,从而提升整个图像解码的速度,由于运算量和读取次数的减少,降低了图像处理终端的耗电量。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一种基于hevc协议的视频图像解码方法的典型实施例中一种实施方式的流程图;
图2为本发明一种基于hevc协议的视频图像解码方法的典型实施例中另一种实施方式的流程图;
图3为截止值等于4时32x32源像素块的原始输入。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本发明实施例提供了一种基于hevc协议的视频图像解码方法,在其中一种实施方式中,如图1所示,包括如下步骤S100至S300。
S100:遍历当前帧图像中32x32源像素块,获得32x32源像素块中的非零块和全零块,确定所述非零块和所述全零块在32x32源像素块的相对位置;
S200:依据所述相对位置确定所述非零块的截止值;
S300:基于预设解码规则和所述截止值对所述非零块进行运算,获得解码后的解码图像。
进一步地,在所述基于预设解码规则和所述截止值对所述非零块进行运算,获得解码后的解码图像的步骤中,在其中一种实施方式中,如图2所示,具体包括:
S310:按照行数序列号依次依据预设索引值和所述非零块与所述索引值相对应的系数确定第一数组值;
S320:将同一行中的所述第一数组值依据预设偏移拼接规则进行偏移和拼接,获得32x32临时像素块;
S330:按照列数序列号依次依据所述预设索引值和所述32x32临时像素块与所述索引值相对应的系数确定第二数组值;
S340:将同一列中的所述第二数组值依据所述预设偏移拼接规则进行偏移和拼接,获得32x32像素块;
S350:根据所述32x32像素块获得当前帧图像经二维解码后的解码图像。
在本发明的实施例中,在运算过程中,当前帧图像32x32源像素数据矩阵,将其转换为至少一个32x32源像素块,32x32源像素块作为输入的数据源,按照矩阵的排列次序,从左到右,从上到下,依次扫描整个当前帧图像中具有的32x32数据源,找出32x32数据源中非零元素和整零元素在整个32x32数据源中的分界位置,其中32x32数据源形成的是一个源数据矩阵,分界位置具体为非零元素在该矩阵中和整零元素分界的行、列序列号,即在该行、列序列号之前,对应行中至少有一个数不为零,其为非零块;而在该行、列序列号之后对应的行中,全部元素均为零,其为全零块。因此,确定所述非零块和所述全零块在32x32源像素块的相对位置,同时确定所述非零块的截止值,该非零元素所在行的序列号为非零块行数的截止值。在本发明的实施例中,所述截止值称为ColLimite,其该值的取值分别为4、8、12、16、24、32,即32x32源数据分为多个同时具有全零块和非零块的32x32源像素块。
在运算过程中,依据不同的ColLimite的取值,按照行数序列号依次依据预设索引值和所述非零块中与所述索引值相对应的系数确定第一数组值,所述预设索引值的取值范围为0到15之间任意一个整数,且所述预设索引值的取值范围包括0和15。
在运算之前,定义4字节有符号的临时数组:
O[16],EO[8],EE[4],EEEO[2],EEEE[2],EEE[8],E[16]。
定义2字节有符号的原始输入数据:src[32][32]
定义1字节有符号的IDCT 32x32系数表(HEVC标准系数):
transform[32][32]
例如:
1、在ColLimite=4时,计算O[16]/EO[8]/EE[4]的过程如下。
计算O[0..15]数组值,假设k为0..15间的索引值。
O[k]=
transform[01][k]*src[01*line+k]+
transform[03][k]*src[03*line+k];
计算EO[0..8]数组值,假设k为0..7间的索引值.
EO[k]=
transform[02][k]*src[02*line+k];
计算EE[4]数组值,假设k为0..3间的索引值.
EE[k]=
transform[04][k]*src[04*line+k];
具体的,截止值ColLimite=4时,IDCT32x32原始输入如图3所示,依据前述过程按照行数序列号依次依据预设索引值和所述非零块与所述索引值相对应的系数确定第一数组值。
2、在ColLimite=8时,计算O[16]/EO[8]/EE[4]的过程如下。
计算O[0..15]数组值。假设k为0..15间的索引值。
O[k]=
transform[01][k]*src[01*line+k]+
transform[03][k]*src[03*line+k]+
transform[05][k]*src[05*line+k]+
transform[7][k]*src[07*line+k];
计算EO[0..8]数组值,假设k为0..7间的索引值。
EO[k]=
transform[02][k]*src[02*line+k]+
transform[06][k]*src[06*line+k];
计算EE[4]数组值,假设k为0..3间的索引值。
EE[k]=
transform[04][k]*src[04*line+k];
3、在ColLimite=12时,计算O[16]/EO[8]/EE[4]的过程如下。
O[0..15]数组值,假设k为0..15间的索引值。
O[k]=
transform[01][k]*src[01*line+k]+
transform[03][k]*src[03*line+k]+
transform[05][k]*src[05*line+k]+
transform[7][k]*src[07*line+k]+
transform[09][k]*src[09*line+k]+
transform[11][k]*src[11*line+k];
计算EO[0..8]数组值,假设k为0..7间的索引值。
EO[k]=
transform[02][k]*src[02*line+k]+
transform[06][k]*src[06*line+k]+
transform[10][k]*src[10*line+k];
计算EE[4]数组值,假设k为0..3间的索引值。
EE[k]=
transform[04][k]*src[04*line+k];
4、在ColLimite=16时,计算O[16]/EO[8]/EE[4]的过程如下。
计算O[0..15]数组值,假设k为0..15间的索引值。
O[k]=
transform[01][k]*src[01*line+k]+
transform[03][k]*src[03*line+k]+
transform[05][k]*src[05*line+k]+
transform[7][k]*src[07*line+k]+
transform[09][k]*src[09*line+k]+
transform[11][k]*src[11*line+k]+
transform[13][k]*src[13*line+k]+
transform[15][k]*src[15*line+k];
计算EO[0..8]数组值,假设k为0..7间的索引值.
EO[k]=
transform[02][k]*src[02*line+k]+
transform[06][k]*src[06*line+k]+
transform[10][k]*src[10*line+k]+
transform[14][k]*src[14*line+k];
计算EE[4]数组值,假设k为0..3间的索引值。
EE[k]=
transform[04][k]*src[04*line+k]+
transform[12][k]*src[12*line+k]+
5、在ColLimite=24时,计算O[16]/EO[8]/EE[4]的过程如下。
计算O[0..15]数组值,假设k为0..15间的索引值。
O[k]=
transform[01][k]*src[01*line+k]+
transform[03][k]*src[03*line+k]+
transform[05][k]*src[05*line+k]+
transform[7][k]*src[07*line+k]+
transform[09][k]*src[09*line+k]+
transform[11][k]*src[11*line+k]+
transform[13][k]*src[13*line+k]+
transform[15][k]*src[15*line+k]+
transform[17][k]*src[17*line+k]+
transform[19][k]*src[19*line+k]+
transform[21][k]*src[21*line+k]+
transform[23][k]*src[23*line+k];
计算EO[0..8]数组值,假设k为0..7间的索引值。
EO[k]=
transform[02][k]*src[02*line+k]+
transform[06][k]*src[06*line+k]+
transform[10][k]*src[10*line+k]+
transform[14][k]*src[14*line+k]+
transform[18][k]*src[18*line+k]+
transform[22][k]*src[22*line+k];
计算EE[4]数组值,假设k为0..3间的索引值。
EE[k]=
transform[04][k]*src[04*line+k]+
transform[12][k]*src[12*line+k]+
transform[20][k]*src[20*line+k];
6、在ColLimite=32时,计算O[16]/EO[8]/EE[4]的过程如下。
计算O[0..15]数组值,假设k为0..15间的索引值。
O[k]=
transform[01][k]*src[01*line+k]+
transform[03][k]*src[03*line+k]+
transform[05][k]*src[05*line+k]+
transform[7][k]*src[07*line+k]+
transform[09][k]*src[09*line+k]+
transform[11][k]*src[11*line+k]+
transform[13][k]*src[13*line+k]+
transform[15][k]*src[15*line+k]+
transform[17][k]*src[17*line+k]+
transform[19][k]*src[19*line+k]+
transform[21][k]*src[21*line+k]+
transform[23][k]*src[23*line+k]+
transform[25][k]*src[25*line+k]+
transform[27][k]*src[27*line+k]+
transform[29][k]*src[29*line+k]+
transform[31][k]*src[31*line+k];
计算EO[0..8]数组值,假设k为0..7间的索引值。
EO[k]=
transform[02][k]*src[02*line+k]+
transform[06][k]*src[06*line+k]+
transform[10][k]*src[10*line+k]+
transform[14][k]*src[14*line+k]+
transform[18][k]*src[18*line+k]+
transform[22][k]*src[22*line+k]+
transform[26][k]*src[26*line+k]+
transform[30][k]*src[30*line+k];
计算EE[4]数组值,假设k为0..3间的索引值。
EE[k]=
transform[04][k]*src[04*line+k]+
transform[12][k]*src[12*line+k]+
transform[20][k]*src[20*line+k]+
transform[28][k]*src[28*line+k];
根据前述ColLimite分别等于4、8、12、16、24、32的基础上,分别计算EEEO[2]/EEEE[2]/EEE[4]/EE[8]/E[16],其分为四个过程,分别为a、b、c、d。
a,计算EEEO[2],EEEE[2]的值。
EEEO[0]=transform[8][0]*src[8*line];
EEEO[1]=transform[8][1]*src[8*line];
EEEE[0]=transform[0][0]*src[0];
EEEE[1]=transform[0][1]*src[0]。
b,计算EEE[4]的值。
EEE[0]=EEEE[0]+EEEO[0];
EEE[3]=EEEE[0]-EEEO[0];
EEE[1]=EEEE[1]+EEEO[1];
EEE[2]=EEEE[1]-EEEO[1]。
c,计算EE[8]的值。
EE[0]=EEE[0]+EEO[0];
EE[1]=EEE[1]+EEO[1];
EE[2]=EEE[2]+EEO[2];
EE[3]=EEE[3]+EEO[3];
EE[4]=EEE[3]-EEO[3];
EE[5]=EEE[2]-EEO[2];
EE[6]=EEE[1]-EEO[1];
EE[7]=EEE[0]-EEO[0]。
d.计算E[16]的值,假设k为0..15间的索引值。
E[k]=EE[k]+EO[k];
E[k+8]=EE[7-k]-EO[7-k]。
前述ColLimite分别等于4、8、12、16、24、32时得到的O[k]、EO[k]、EE[k]、EEEO[k]、EEEE[k]、EEE[k]、EE[k]、E[k]均为对应ColLimite分别等于4、8、12、16、24、32时的第一数组值,将32x32源像素块中行、列序列号和所述第一数组值中的数值进行一一对应,并将同一行对应的所述第一数组值中的数值依据预设偏移拼接规则进行偏移和拼接。
优选地,所述预设偏移拼接规则为:
dst[k]=(E[k]+O[k]+add)>>shift;
dst[k+16]=(E[15-k]-O[15-k]+add)>>shift;
其中,k为索引值且k∈(0,15),E[k]和O[k]为数组值,dst[k]为输出数据,add为变化量,shift转变量。
由于前述过程为将32x32源像素块进行第一次的变换过程,其变换结果将存储与一临时像素块中,更优地,在第一变换过程中,所述预设偏移拼接规则的获得32x32像素块的过程中,所述add等于7,所述shift等于32,将同一行对应的所述第一数组值中的数值预设偏移拼接规则确定该行对应在临时像素块中的值,具体为临时像素矩阵中的系数,按照32x32源像素块中的行数序列号,依次将各行对应的第一数组值中的数值进行偏移和拼接,并依据偏移量将偏移拼接后的数值对应存储在临时像素块中对应位置处,且临时像素块中对应位置处通过偏移量确定,进而获得32x32临时像素块。
具体的,在计算过程中,按照行数序列号将32x32源像素块中第一行中的32个像素值进行运算,其运算结果为ColLimite分别等于4、8、12、16、24、32时得到的O[k]、EO[k]、EE[k]、EEEO[k]、EEEE[k]、EEE[k]、EE[k]、E[k]第一数组值,将第一数组值中的数值按照预设偏移和拼接规则确定32x32源像素块中第一行中的32个像素值输出到32x32临时像素块中的值;进一步地,按照行数序列号将32x32源像素块中同一行中的32个像素值依次进行前述的运算、偏移和拼接过程,将每一行偏移和拼接之后的值输出到临时像素块中,进而获得32x32临时像素块。此获得临时像素块的整个过程为对32x32源像素块的一维变换。
具体的,例如在ColLimite=4时,依据前述运算过程:
在经过一维变换后,32x32源像素块对应的矩阵中第一行的O[0..15]数组值(即O[0]..O[15]的数据值)分别为:16200,16200,15840,15300,14760,14040,13140,12060,10980,9720,8280,6840,5580,3960,2340,720。对应其他行的O[0]..O[15]的值均为零。第一行EEEO[0]、EEEO[1]、EEEE[0]、EEEE[1]的值分别为:0,0,23040,23040;第二行EEEO[0]、EEEO[1]、EEEE[0]、EEEE[1]的值分别为:0,0,-11520,-11520;第三行EEEO[0]、EEEO[1]、EEEE[0]、EEEE[1]的值分别为:0,0,-11520,-11520,而其他行对应的O[0]..O[15]的值、EEEO[0]的值、EEEO[1]的值、EEEE[0]的值、EEEE[1]的值均为零,且所有行对应的EO[0]..EO[8]的值和EEO[0]..EEO[4]的值均为零。由此,对于等于零的行可单独进行换算,仅对前几行具有不为零的元素的行进行一维转换,由此可降低解码运算的计算量。在二维变换时,变换后的所有行中仅EEO[0]..EEO[4]的值的结果为零,再进过偏移和拼接后,得到优化后的ColLimite=4时解码后的32x32的像素。在此过程中,由于仅对具有不为零元素的行进行变化,降低了解码的运算量,提高了解码运算的速度。
前述的计算过程,与现有技术相比能较大幅度提升Hevc解码器的效率,在计算过程中减少了计算量,使得Hevc速度更快,同时降低了图像解码终端解码过程中的耗电量。以下是IDCT 32x32和标准IDCT 32x32的计算量对比(以计算一行为例):
进一步地,IDCT的变换过程包括两个变换过程,一维变换过程和二维变换过程,其中,二维变换过程同前述的一维变换过程相同,二维变换过程中,按照32x32临时像素块中行的序列号依次进行变换,且给行的序列号与32x32源像素块中列的序列号是相互对应的,在二维变换的过程中,ColLimite分别等于4、8、12、16、24、32时得到的O[k]、EO[k]、EE[k]、EEEO[k]、EEEE[k]、EEE[k]、EE[k]、E[k]均为对应ColLimite分别等于4、8、12、16、24、32时的第二数组值,将32x32临时像素块中行、列序列号和所述第一数组值中的数值进行一一对应,并将同一列对应的所述第二数组值中的数值依据预设偏移拼接规则进行偏移和拼接,更优地,获得32x32像素块的偏移和拼接过程中,预设偏移拼接规则中的add等于11,shift等于2048,进一步地,32x32像素块为IDCT反变换后的像素值,且以矩阵的形式呈现,矩阵中的系数即为当前帧图像经过IDCT反变换的像素值,将该像素值再经过后续的帧内预测、帧间预测、去块滤波和像素自适应补处理过程,从而获得当前帧图像解码后的图像。具体的,帧内预测、帧间预测、去块滤波和像素自适应补的详细过程未直接写出来,虽然未将该些过程写出来,本领域人员应该是可以理解和实施的,在此不做赘述。
进一步地,获取所述非零块和所述全零块在32x32源像素块的相对位置步骤中,包括:
获得所述非零块中的最后一个非零元素在所述源像素块中的初始坐标,并以所述非零元素的初始列作为所述全零块的起始列和所述非零块的最后一列,获得所述相对位置。
如前文所述,在反变换的初始过程中,按照32x32源像素矩阵的排列次序,从左到右,从上到下,依次扫描整个当前帧图像中具有的32x32数据源,确定非零块和全零块的分界位置,其具体为非零元素在该矩阵中和整零元素分界的行、列序列号,在划分32x32源像素矩阵的位置时,以矩阵的左上角为坐标系原点,从上往下为坐标系的Y轴延伸方向,其单位相邻两行的行序列号差,从左往右为坐标系的X轴延伸方向,其单位相邻两列的列序列号差,扫描时获取非零块中最后一个非零元素所在的行和列的坐标值,即行和列的序列号,将该列序列号作为全零块的起始列,同时也是非零块的最后一列,进而划分出全零块和非零块的区域位置,同时最后一个非零元素的列序列号即为全零块和非零块的相对位置,在后续的计算过程,便能基于该相对位置进行后续的计算过程。如前文所述,优选地,所述相对位置为所述非零块最后一个元素和所述全零块起始元素的坐标值,即非零块中最后一个非零元素的行列序列号。
如前文所述,当前帧图像中包括至少一个由32x32源像素数据转换成的32x32源像素块。
优选地,如前文所述,在本发明公开的实施例中,预设了索引值,其中索引值具有一预定的取值范围,在运算过程中,按照索引值取值范围中的值通过前文计算过程进行一一对应的计算,所述预设索引值的取值范围为0到15之间任意一个整数,且所述预设索引值的取值范围包括0和15。
进一步地,在所述确定所述非零块和所述全零块在32x32源像素块的相对位置的步骤之中,包括:
确定所述非零块和所述全零块在32x32源像素块的相对位置,同时确定所述非零块的截止值,所述截止值为4、8、12、16、24、32中的任意一个。如前文所述,所述截止值即为前文的CoLimite值,具体参见前文说明,在此不做赘述。
本发明的实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序执行时实现任一技术方案所述的基于hevc协议的视频图像解码方法的步骤。
本发明的实施例还提供了一种基于hevc协议的视频图像解码终端,其特征在于,包括处理器、存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现任一技术方案所述的基于hevc协议的视频图像解码方法的步骤。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种基于hevc协议的视频图像解码方法,其特征在于,包括如下步骤:
遍历当前帧图像中32x32源像素块,获得32x32源像素块中的非零块和全零块,确定所述非零块和所述全零块在32x32源像素块的相对位置;
依据所述相对位置确定所述非零块的截止值;
基于预设解码规则和所述截止值对所述非零块进行运算,获得解码后的解码图像。
2.根据权利要求1所述的基于hevc协议的视频图像解码方法,其特征在于,在所述基于预设解码规则和所述边界限值对所述非零块进行运算,获得解码后的解码图像的步骤中,具体包括:
按照行数序列号依次依据预设索引值和所述非零块与所述索引值相对应的系数确定第一数组值;
将同一行中的所述第一数组值依据预设偏移拼接规则进行偏移和拼接,获得32x32临时像素块;
按照列数序列号依次依据所述预设索引值和所述32x32临时像素块与所述索引值相对应的系数确定第二数组值;
将同一列中的所述第二数组值依据所述预设偏移拼接规则进行偏移和拼接,获得32x32像素块;
根据所述32x32像素块获得当前帧图像经二维解码后的解码图像。
3.根据权利要求2所述的基于hevc协议的视频图像解码方法,其特征在于,所述预设偏移拼接规则为:
dst[k]=(E[k]+O[k]+add)>>shift;
dst[k+16]=(E[15-k]-O[15-k]+add)>>shift;
其中,k为索引值且k∈(0,15),E[k]和O[k]为数组值,dst[k]为输出数据,add为变化量,shift转变量。
4.根据权利要求3所述的基于hevc协议的视频图像解码方法,其特征在于,在所述将同一行中的所述第一数组值依据预设偏移拼接规则进行偏移和拼接,获得32x32临时像素块的过程中,所述add等于7,所述shift等于32。
5.根据权利要求3所述的基于hevc协议的视频图像解码方法,其特征在于,在所述将同一列中的所述第二数组值依据所述预设偏移拼接规则进行偏移和拼接,获得32x32像素块的过程中,所述add等于11,所述shift等于2048。
6.根据权利要求2所述的基于hevc协议的视频图像解码方法,其特征在于,获取所述非零块和所述全零块在32x32源像素块的相对位置步骤中,包括:
获得所述非零块中的最后一个非零元素在所述源像素块中的初始坐标,并以所述非零元素的初始列作为所述全零块的起始列和所述非零块的最后一列,获得所述相对位置。
7.根据权利要求6所述的基于hevc协议的视频图像解码方法,其特征在于,所述相对位置为所述非零块最后一个元素和所述全零块起始元素的坐标值。
8.根据权利要求7所述的基于hevc协议的视频图像解码方法,其特征在于,当前帧图像中包括至少一个由32x32源像素数据转换成的32x32源像素块。
9.根据权利要求2所述的基于hevc协议的视频图像解码方法,其特征在于,所述预设索引值的取值范围为0到15之间任意一个整数,且所述预设索引值的取值范围包括0和15。
10.根据权利要求2所述的基于hevc协议的视频图像解码方法,其特征在于,所述截止值为4、8、12、16、24、32中的任意一个。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该计算机程序执行时实现权利要求1至10任一项所述基于hevc协议的视频图像解码方法的步骤。
12.一种基于hevc协议的视频图像解码终端,其特征在于,包括处理器、存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现权利要求1至10任一项所述基于hevc协议的视频图像解码方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810236098.9A CN108235028A (zh) | 2018-03-21 | 2018-03-21 | 基于hevc协议的视频图像解码方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810236098.9A CN108235028A (zh) | 2018-03-21 | 2018-03-21 | 基于hevc协议的视频图像解码方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108235028A true CN108235028A (zh) | 2018-06-29 |
Family
ID=62658818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810236098.9A Pending CN108235028A (zh) | 2018-03-21 | 2018-03-21 | 基于hevc协议的视频图像解码方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108235028A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116009792A (zh) * | 2023-03-24 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 一种图像处理中的数据读取、写入装置及方法、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050033788A1 (en) * | 2001-01-09 | 2005-02-10 | Maynard Handley | Method and apparatus for inverse discrete cosine transform |
CN103826136A (zh) * | 2014-02-19 | 2014-05-28 | 华为软件技术有限公司 | 一种快速离散余弦反变换的方法和终端 |
CN103905830A (zh) * | 2012-12-27 | 2014-07-02 | 联芯科技有限公司 | 离散余弦逆变换方法及装置 |
-
2018
- 2018-03-21 CN CN201810236098.9A patent/CN108235028A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050033788A1 (en) * | 2001-01-09 | 2005-02-10 | Maynard Handley | Method and apparatus for inverse discrete cosine transform |
CN103905830A (zh) * | 2012-12-27 | 2014-07-02 | 联芯科技有限公司 | 离散余弦逆变换方法及装置 |
CN103826136A (zh) * | 2014-02-19 | 2014-05-28 | 华为软件技术有限公司 | 一种快速离散余弦反变换的方法和终端 |
Non-Patent Citations (3)
Title |
---|
FRANK BOSSEN: "HEVC HM10 Reference Software", 《JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING: GENEVA, CH, 14–23 JAN. 2013, JCTVC-L1010》 * |
HEMING SUN: "A Low-Cost VLSI Architecture of Multiple-Size IDCT for H.265/HEVC", 《IEICE TRANS FUNDAMENTALS》 * |
RUHAN CONCEIÇÃO等: "Hardware design for the 32×32 IDCT of the HEVC video coding standard", 《 2013 26TH SYMPOSIUM ON INTEGRATED CIRCUITS AND SYSTEMS DESIGN (SBCCI)》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116009792A (zh) * | 2023-03-24 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 一种图像处理中的数据读取、写入装置及方法、电子设备 |
CN116009792B (zh) * | 2023-03-24 | 2023-09-29 | 摩尔线程智能科技(北京)有限责任公司 | 一种图像处理中的数据读取、写入装置及方法、电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6351570B1 (en) | Image coding and decoding apparatus, method of image coding and decoding, and recording medium for recording program for image coding and decoding | |
US20120307004A1 (en) | Video decoding with 3d graphics shaders | |
US20070230817A1 (en) | Image processing apparatus, image processing method and image processing program | |
US9800874B2 (en) | Image decoding apparatus executing successive tile decoding and filtering around tile boundary | |
US8270743B2 (en) | Discrete cosine processing circuit and image processing device utilizing the same | |
US7284026B2 (en) | Hadamard transformation method and device | |
CN108235028A (zh) | 基于hevc协议的视频图像解码方法及终端 | |
US20050047502A1 (en) | Method and apparatus for the efficient representation of interpolated video frames for motion-compensated coding | |
CN112862725A (zh) | 用于计算的方法、计算设备和计算机可读存储介质 | |
CN108184127A (zh) | 一种可配置的多尺寸dct变换硬件复用架构 | |
WO2015131511A1 (zh) | 视频解码的方法及其装置 | |
WO2002023889A2 (en) | Data transfer between rgb and ycrcb color spaces for dct interface | |
US8457445B2 (en) | Image-scaling-down method and image processing apparatus | |
JP2000069478A (ja) | 画像処理装置及び方法並びに記憶媒体 | |
CN114693919A (zh) | 一种目标检测方法、终端设备及存储介质 | |
US8503793B2 (en) | Correlation processing apparatus and medium readable by correlation processing apparatus | |
CN111796788B (zh) | 弧形显示屏边缘信息压缩存取方法和系统 | |
JP2005045797A (ja) | 画像データの伝送に要する帯域幅を縮小するための方法及び装置 | |
JP6070196B2 (ja) | 画像符号化装置および画像符号化方法 | |
US20220044370A1 (en) | Image processing methods | |
JP2802158B2 (ja) | 逆直交変換方法および逆直交変換回路 | |
CN110264412A (zh) | 图像处理方法、装置、终端设备以及存储介质 | |
CN101166272B (zh) | 补差点数据储存方法 | |
CN100512435C (zh) | 一种图像解码显示方法和系统 | |
CN111796788A (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: 20180629 |