一种视频旋转方法

文档序号:6488486阅读:759来源:国知局
一种视频旋转方法
【专利摘要】本申请公开了一种视频旋转方法,包括:确定源视频的图像分辨率和目标缩放率,在目标旋转角度和目标缩放率下,按照预先确定出的缩放前像素值与旋转后像素值间的函数关系,直接根据源视频每帧的各像素值计算旋转后视频每帧的各像素值,并按照计算结果进行显示。应用本申请,能够大大降低对系统内存的消耗。
【专利说明】一种视频旋转方法
【技术领域】
[0001]本申请涉及视频处理技术,特别涉及一种视频旋转方法。
【背景技术】
[0002]现有的智能多媒体播放设备在播放视频时可由内置方向传感器获知设备屏幕的角度变化从而进行90度、180度或者270度的旋转。视频的旋转多数可以通过硬件设备,如视频处理芯片的相应功能完成。但当没有可完成类似功能的硬件设备存在时,或者该硬件设备不提供相应的旋转功能接口时,视频播放器需要采用软件处理的方法对解码后并即将显示的视频图像进行旋转,而后进行显示。
[0003]现有的采用软件处理方式对图像进行90/180/270度旋转的方法包括两个步骤:
[0004]I)保持原图像宽高比的图像缩放:因为图像显示区域的大小恒定,当90/270旋转后,图像的宽、高发生交换可能会超出显示区域的大小,若需要将旋转后的图像仍然显示在该显示区域,则需要将图像进行缩放,如图1所示。(180度旋转不需要此步骤,其旋转后的宽度和高度不变)
[0005]2) 90/180/270度旋转时查找目的图像的每个像素点在缩放后的原图像上对应的像素点,并拷贝该像素值。
[0006]对于需要旋转的图像无论是从硬件或软件视频解码器输出,一般多存储于一维的连续内存。因此上述旋转方法存在以下缺点:
[0007]I)需要中央处理器(CPU)消耗大量的乘法、加法运算和内存访问操作在逐像素的坐标计算和数据存取上。导致每帧视频图像的旋转操作速度过慢,尤其对高清(HD,1280x720分辨率)、全高清(Ful I HD 1920x1080分辨率)的视频图像的旋转速度远远超过可流畅播放视频的最低限制。
[0008]2)缩放和旋转需要先后进行,而且需要储存中间过程的图像(即缩放后的图像),对系统内存消耗较大。

【发明内容】

[0009]本申请提供一种视频旋转方法,能够降低视频旋转过程中对内存的消耗。
[0010]一种视频旋转方法,包括:
[0011]确定源视频的图像分辨率和目标缩放率,按照目标旋转角度和所述目标缩放率,根据源视频每帧的各像素值和预先确定出的缩放前像素值与旋转后像素值间的函数关系,计算旋转后视频每帧的各像素值,并按照计算结果进行显示;
[0012]其中,所述缩放前像素值与旋转后像素值间的函数关系为预先根据缩放法则的缩放前像素值和缩放后像素值间的函数关系以及90/180/270度旋转的旋转前像素值和旋转后像素值间的函数关系确定的;其中,90度旋转的旋转前像素值和旋转后像素值间的
H
函数关系为v(x,y) = 〃(.ι\--l-x),x=0,1,...,H/r-1, y = 0,1,...,W/r-1 ;180 度旋转

r的旋转前像素值和旋转后像素值间的函数关系为v(x,y) =u(ff-1-x, H-l-y), x=0,1,...,W-1, y = O, I,..., H-1 ;270度旋转的旋转前像素值和旋转后像素值间的函数关系为W
v(x,y) = ?/(--1 —).’,x) , x=0,1,..., H/r-1, y = O, 1,..., ff/r-1 ;v(x, y)为旋转后坐标为
(x,y)点的像素值,u(x' ,y')为缩放后、旋转前坐标为(X' y')点的像素值;W和H分别为所述源视频的宽度和高度,r为所述目标缩放率。
[0013]较佳地,该方法进一步包括:在确定所述源视频的图像分辨率和目标缩放率之后、计算旋转后目标视频每帧的各像素值前,该方法进一步包括:
[0014]将所述缩放前像素值与旋转后像素值间的函数关系分解为坐标点表达式部分和像素值表达式部分,并将分解出的各个所述坐标点表达式部分分解为若干乘法操作的求和操作;对于任一所述乘法操作,对应旋转后视频各坐标点(x,y)计算该乘法操作的结果,并对应(X,y)进行保存;其中,像素值表达式部分是对坐标点表达式部分的结果进行处理的操作;
[0015]所述计算旋转后视频每帧的各像素值包括:对应旋转后视频每帧的任一坐标点(X,y),查找对应该取值保存的各所述乘法操作的结果,并根据相应的结果计算各所述坐标点表达部分的处理结果,再将该处理结果代入所述像素值表达式部分,计算任一坐标点(X,y)的像素值。
[0016]较佳地,在所述对应旋转后视频各坐标点(X,y)计算各所述乘除法操作的结果并对应(x,y)进行保存后,计算旋转后视频每帧的各像素值前,该方法进一步包括:将旋转后视频的每帧图像从上到下均分为N个部分,分别分配给N个旋转线程;所述N为预设的整数;
[0017]在计算旋转后视频每帧的各像素值时,各个旋转线程并行进行相应部分图像坐标点(X,y)的像素值计算;其中,对应(X,y)保存的各所述乘除法操作的结果在每个线程中
保存一份。
[0018]较佳地,N个线程中的第i个线程计算旋转后视频中第+F/r行到第



/ r -1,r / r -1)行的坐标点的像素值。
[0019]较佳地,所述缩放法则为最近邻域法;
[0020]所述缩放前像素值和缩放后像素值间的函数关系为:u (X,y) =f (xr, yr),f (xr,yr)为缩放前坐标点(xr, yr)的像素值;
[0021]90度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:v(x,y)=f(yr,(H/r-l-x)r) ; 180度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:v(x,y) =f (ff-l-x, H-l-y) ;270度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:V(x, y)=f((ff/r-l-y)r, xr)。
[0022]较佳地,当所述缩放前的像素值和缩放后的像素值均按照光栅扫描顺序分别利用一维数组src[]和dst[]表示时,90度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:dst[yH/r+x]=src[(H/r-l-x)Wr+yr] ;180度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:dSt[yW+X]=Src[W(H-l-y)+W-l-X] ;270度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:dst[yH/r+x]=src[xWr+(W/r-l-y)r]。[0023]较佳地,所述目标旋转角度为90度时,所述坐标点表达式部分包括:yH/r+X和(H/r-1-x) Wr+yr ;乘法操作包括:yH/r、(H/r-l_x)Wr 和 yr ;
[0024]所述目标旋转角度为180度时,所述坐标点表达式部分包括:yW+x和W (H-1-y) +ff-1-χ ;乘法操作包括:yW 和 W (H-1-y);
[0025]所述目标旋转角度为270度时,所述坐标点表达式部分包括:yH/r+X和xWr+(W/r-l-y)r ;乘法操作包括:yH/r、xWr 和(W/r-l-y)r。
[0026]较佳地,当所述缩放前的像素值和缩放后的像素值均按照光栅扫描顺序利用一维数组表示、且目标缩放率〈I时,
[0027]对于90度和270度的旋转,在计算旋转后视频每帧的各像素值时按照列优先顺序进行;
[0028]对于180度的旋转,在计算旋转后视频每帧的各像素值时按照行优先顺序进行。
[0029]由上述技术方案可见,确定源视频的图像分辨率和目标缩放率,在目标旋转角度和目标缩放率下,按照预先确定出的缩放前像素值与旋转后像素值间的函数关系,直接根据源视频每帧的各像素值计算旋转后视频每帧的各像素值,并按照计算结果进行显示。上述处理方式中,不需要将缩放和旋转的操作先后分两步执行,而是直接一步完成缩放加旋转,从而避免了在处理过程中额外占用系统内存存储缩放后图像,大大降低了对系统内存的消耗。
[0030]进一步地,可以将缩放前像素值与旋转后像素值间的函数关系中仅与坐标点相关的处理分离出来,对应旋转后视频的各坐标点,一次性计算相应的处理结果并对应相应的坐标点进行保存。在实际播放视频图像时,根据坐标点对应查找相应的处理结果,再利用该处理结果计算旋转后的像素值,从而在视频图像处理过程中,避免在每一帧图像处理时,都要实时进行所有函数关系的运算,而只需要在最初计算一次坐标点相关的运算,之后可以直接利用初次计算结果,大大降低了实时运算量,提高图像处理速度;同时,还可以将每一帧图像分成多个部分,利用多线程并行进行每个部分的图像旋转,再合成显示,从而进一步提高处理速度。
【专利附图】

【附图说明】
[0031]图1为现有方法全高清视频90度旋转示意图;
[0032]图2为本申请实施例中视频旋转方法的具体流程图。
【具体实施方式】
[0033]为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
[0034]本申请的基本视频旋转方法包括:确定源视频的图像分辨率和目标缩放率,按照目标旋转角度和所述目标缩放率,根据源视频每帧的各像素值和缩放前像素值与旋转后像素值间的函数关系,计算旋转后视频每帧的各像素值,并按照计算结果进行显示。
[0035]其中,缩放前像素值和旋转后像素值间函数关系的确定方式包括:根据缩放法则中缩放前和缩放后像素值间的函数关系以及90/180/270度旋转的旋转前像素值和旋转后像素值间的函数关系确定。具体地,对应每种缩放法则,都有确定的缩放前和缩放后像素值间的函数关系,可以根据实际需要选择缩放法则,确定相应的函数关系;对于90度旋转,
旋转前像素值和旋转后像素值间的函数关系为V,(A.,- O x=0,1,..., H/r-1,




r
y=0,1,..., ff/r-1 ;对于180度旋转,旋转前像素值和旋转后像素值间的函数关系为v(x,y) =u(ff-l-x, H-l-y),x=0,1,..., ff-1, y=0,1,...,H_1 ;对于 270 度旋转,旋转前像素值和
旋转后像素值间的函数关系为
【权利要求】
1.一种视频旋转方法,其特征在于,包括: 确定源视频的图像分辨率和目标缩放率,按照目标旋转角度和所述目标缩放率,根据源视频每帧的各像素值和预先确定出的缩放前像素值与旋转后像素值间的函数关系,计算旋转后视频每帧的各像素值,并按照计算结果进行显示; 其中,所述缩放前像素值与旋转后像素值间的函数关系为预先根据缩放法则的缩放前像素值和缩放后像素值间的函数关系以及90/180/270度旋转的旋转前像素值和旋转后像素值间的函数关系确定的;其中,90度旋转的旋转前像素值和旋转后像素值间的函数关系为
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:在确定所述源视频的图像分辨率和目标缩放率之后、计算旋转后目标视频每帧的各像素值前,该方法进一步包括: 将所述缩放前像素值与旋转后像素值间的函数关系分解为坐标点表达式部分和像素值表达式部分,并将分解出的各个所述坐标点表达式部分分解为若干乘法操作的求和操作;对于任一所述乘法操作,对应旋转后视频各坐标点(x,y)计算该乘法操作的结果,并对应(X,y)进行保存;其中,像素值表达式部分是对坐标点表达式部分的结果进行处理的操作; 所述计算旋转后视频每帧的各像素值包括:对应旋转后视频每帧的任一坐标点(X,y),查找对应该取值保存的各所述乘法操作的结果,并根据相应的结果计算各所述坐标点表达部分的处理结果,再将该处理结果代入所述像素值表达式部分,计算任一坐标点U,y)的像素值。
3.根据权利要求2所述的方法,其特征在于,在所述对应旋转后视频各坐标点(X,y)计算各所述乘除法操作的结果并对应(X,y)进行保存后,计算旋转后视频每帧的各像素值前,该方法进一步包括:将旋转后视频的每帧图像从上到下均分为N个部分,分别分配给N个旋转线程;所述N为预设的整数; 在计算旋转后视频每帧的各像素值时,各个旋转线程并行进行相应部分图像坐标点(x,y)的像素值计算;其中,对应(x,y)保存的各所述乘除法操作的结果在每个线程中保存—份。
4.根据权利要求3所述的方法,其特征在于,N个线程中的第i个线程计算旋转后视频中第
5.根据权利要求3所述的方法,其特征在于,所述缩放法则为最近邻域法; 所述缩放前像素值和缩放后像素值间的函数关系为:u(x, y) =f (xr, yr), f (xr, yr)为缩放前坐标点(xr,yr)的像素值; 90度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:v(x,y) =f (yr,(H/r-l-x)r) ;180度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:v(x,y) =f (ff-l-x, H-l-y) ;270度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:V(x, y)=f((ff/r-l-y)r, xr)。
6.根据权利要求5所述的方法,其特征在于,当所述缩放前的像素值和缩放后的像素值均按照光栅扫描顺序分别利用一维数组src[]和dst[]表示时,90度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:dst[yH/r+x]=src[(H/r-l-x)Wr+yr] ;180度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:dst[yff+x] =src[ff (H-l-y) +ff-1-χ];270度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:dst [yH/r+x]=src[xffr+(ff/r-l-y)r]。
7.根据权利要求6所述的方法,其特征在于,所述目标旋转角度为90度时,所述坐标点表达式部分包括:yH/r+x和(H/r-1-χ) Wr+yr ;乘法操作包括:yH/r、(H/r-l_x)Wr和yr ; 所述目标旋转角度为180度时,所述坐标点表达式部分包括:yW+x和W(H-l-y)+W-l-x ;乘法操作包括:yW和W(H-l-y); 所述目标旋转角度为270度时,所述坐标点表达式部分包括:yH/r+X和xWr+ (ff/r-1-y)r ;乘法操作包括:yH/r、xffr 和(W/r-l-y)r。
8.根据权利要求1到7中任一所述的方法,其特征在于,当所述缩放前的像素值和缩放后的像素值均按照光栅扫描顺序利用一维数组表示、且目标缩放率〈I时, 对于90度和270度的旋转,在计算旋转后视频每帧的各像素值时按照列优先顺序进行; 对于180度的旋转,在计算旋转后视频每帧的各像素值时按照行优先顺序进行。
【文档编号】G06T3/40GK103679630SQ201210320566
【公开日】2014年3月26日 申请日期:2012年9月3日 优先权日:2012年9月3日
【发明者】朱春波, 吴迪, 加纳纳塞卡·塞尼尼, 民时·宋, 维纳·哥帕拉·拉玛那 申请人:三星电子(中国)研发中心, 三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1