一种视频旋转方法技术

技术编号:9840899 阅读:196 留言:0更新日期:2014-04-02 04:04
本申请公开了一种视频旋转方法,包括:确定源视频的图像分辨率和目标缩放率,在目标旋转角度和目标缩放率下,按照预先确定出的缩放前像素值与旋转后像素值间的函数关系,直接根据源视频每帧的各像素值计算旋转后视频每帧的各像素值,并按照计算结果进行显示。应用本申请,能够大大降低对系统内存的消耗。

【技术实现步骤摘要】
【专利摘要】本申请公开了,包括:确定源视频的图像分辨率和目标缩放率,在目标旋转角度和目标缩放率下,按照预先确定出的缩放前像素值与旋转后像素值间的函数关系,直接根据源视频每帧的各像素值计算旋转后视频每帧的各像素值,并按照计算结果进行显示。应用本申请,能够大大降低对系统内存的消耗。【专利说明】
本申请涉及视频处理技术,特别涉及。
技术介绍
现有的智能多媒体播放设备在播放视频时可由内置方向传感器获知设备屏幕的角度变化从而进行90度、180度或者270度的旋转。视频的旋转多数可以通过硬件设备,如视频处理芯片的相应功能完成。但当没有可完成类似功能的硬件设备存在时,或者该硬件设备不提供相应的旋转功能接口时,视频播放器需要采用软件处理的方法对解码后并即将显示的视频图像进行旋转,而后进行显示。现有的采用软件处理方式对图像进行90/180/270度旋转的方法包括两个步骤:I)保持原图像宽高比的图像缩放:因为图像显示区域的大小恒定,当90/270旋转后,图像的宽、高发生交换可能会超出显示区域的大小,若需要将旋转后的图像仍然显示在该显示区域,则需要将图像进行缩放,如图1所示。(180度旋转不需要此步骤,其旋转后的宽度和高度不变)2) 90/180/270度旋转时查找目的图像的每个像素点在缩放后的原图像上对应的像素点,并拷贝该像素值。对于需要旋转的图像无论是从硬件或软件视频解码器输出,一般多存储于一维的连续内存。因此上述旋转方法存在以下缺点:I)需要中央处理器(CPU)消耗大量的乘法、加法运算和内存访问操作在逐像素的坐标计算和数据存取上。导致每帧视频图像的旋转操作速度过慢,尤其对高清(HD,1280x720分辨率)、全高清(Ful I HD 1920x1080分辨率)的视频图像的旋转速度远远超过可流畅播放视频的最低限制。2)缩放和旋转需要先后进行,而且需要储存中间过程的图像(即缩放后的图像),对系统内存消耗较大。
技术实现思路
本申请提供,能够降低视频旋转过程中对内存的消耗。,包括:确定源视频的图像分辨率和目标缩放率,按照目标旋转角度和所述目标缩放率,根据源视频每帧的各像素值和预先确定出的缩放前像素值与旋转后像素值间的函数关系,计算旋转后视频每帧的各像素值,并按照计算结果进行显示;其中,所述缩放前像素值与旋转后像素值间的函数关系为预先根据缩放法则的缩放前像素值和缩放后像素值间的函数关系以及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度旋转的旋转前像素值和旋转后像素值间的函数关系为Wv(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为所述目标缩放率。较佳地,该方法进一步包括:在确定所述源视频的图像分辨率和目标缩放率之后、计算旋转后目标视频每帧的各像素值前,该方法进一步包括:将所述缩放前像素值与旋转后像素值间的函数关系分解为坐标点表达式部分和像素值表达式部分,并将分解出的各个所述坐标点表达式部分分解为若干乘法操作的求和操作;对于任一所述乘法操作,对应旋转后视频各坐标点(x,y)计算该乘法操作的结果,并对应(X,y)进行保存;其中,像素值表达式部分是对坐标点表达式部分的结果进行处理的操作;所述计算旋转后视频每帧的各像素值包括:对应旋转后视频每帧的任一坐标点(X,y),查找对应该取值保存的各所述乘法操作的结果,并根据相应的结果计算各所述坐标点表达部分的处理结果,再将该处理结果代入所述像素值表达式部分,计算任一坐标点(X,y)的像素值。较佳地,在所述对应旋转后视频各坐标点(X,y)计算各所述乘除法操作的结果并对应(x,y)进行保存后,计算旋转后视频每帧的各像素值前,该方法进一步包括:将旋转后视频的每帧图像从上到下均分为N个部分,分别分配给N个旋转线程;所述N为预设的整数;在计算旋转后视频每帧的各像素值时,各个旋转线程并行进行相应部分图像坐标点(X,y)的像素值计算;其中,对应(X,y)保存的各所述乘除法操作的结果在每个线程中保存一份。较佳地,N个线程中的第i个线程计算旋转后视频中第+F/r行到第 / r -1,r / r -1)行的坐标点的像素值。较佳地,所述缩放法则为最近邻域法;所述缩放前像素值和缩放后像素值间的函数关系为: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)。较佳地,当所述缩放前的像素值和缩放后的像素值均按照光栅扫描顺序分别利用一维数组src表示时,90度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:dst=src ;180度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:dSt=Src ;270度旋转的所述缩放前像素值和旋转后像素值间的函数关系为:dst=src。较佳地,所述目标旋转角度为90度时,所述坐标点表达式部分包括:yH/r+X和(H/r-1-x) Wr+yr ;乘法操作包括:yH/r、(H/r-l_x)Wr 和 yr ;所述目标旋转角度为180度时,所述坐标点表达式部分包括:yW+x和W (H-1-y) +ff-1-χ ;乘法操作包括:yW 和 W (H-1-y);所述目标旋转角度为270度时,所述坐标点表达式部分包括:yH/r+X和xWr+(W/r-l-y)r ;乘法操作包括:yH/r、xWr 和(W/r-l-y)r。较佳地,当所述缩放前的像素值和缩放后的像素值均按照光栅扫描顺序利用一维数组表示、且目标缩放率〈I时,对于90度和270度的旋转,在计算旋转后视频每帧的各像素值时按照列优先顺序进行;对于180度的旋转,在计算旋转后视频每帧的各像素值时按照行优先顺序进行。由上述技术方案可见,确定源视频的图像分辨率和目标缩放率,在目标旋转角度和目标缩放率下,按照预先确定出的缩放前像素值与旋转后像素值间的函数关系,直接根据源视频每帧的各像素值计算旋转后视频每帧的各像素值,并按照计算结果进行显示。上述处理方式中,不需要将缩放和旋转的操作先后分两步执行,而是直接一步完成缩放加旋转,从而避免了在处理过程中额外占用系统内存存储缩放后图像,大大降低了对系统内存的消耗。进一步地,可以将缩放前像素本文档来自技高网
...

【技术保护点】
一种视频旋转方法,其特征在于,包括:确定源视频的图像分辨率和目标缩放率,按照目标旋转角度和所述目标缩放率,根据源视频每帧的各像素值和预先确定出的缩放前像素值与旋转后像素值间的函数关系,计算旋转后视频每帧的各像素值,并按照计算结果进行显示;其中,所述缩放前像素值与旋转后像素值间的函数关系为预先根据缩放法则的缩放前像素值和缩放后像素值间的函数关系以及90/180/270度旋转的旋转前像素值和旋转后像素值间的函数关系确定的;其中,90度旋转的旋转前像素值和旋转后像素值间的函数关系为x=0,1,...,H/r‑1,y=0,1,...,W/r‑1;180度旋转的旋转前像素值和旋转后像素值间的函数关系为v(x,y)=u(W‑1‑x,H‑1‑y),x=0,1,...,W‑1,y=0,1,...,H‑1;270度旋转的旋转前像素值和旋转后像素值间的函数关系为x=0,1,...,H/r‑1,y=0,1,...,W/r‑1;v(x,y)为旋转后坐标为(x,y)点的像素值,u(x′,y′)为缩放后、旋转前坐标为(x′,y′)点的像素值;W和H分别为所述源视频的宽度和高度,r为所述目标缩放率。FDA00002091645700011.jpg,FDA00002091645700012.jpg...

【技术特征摘要】

【专利技术属性】
技术研发人员:朱春波吴迪加纳纳塞卡·塞尼尼民时·宋维纳·哥帕拉·拉玛那
申请(专利权)人:三星电子中国研发中心 三星电子株式会社
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1