CN115550685A - 视频帧处理方法、装置及存储介质 - Google Patents

视频帧处理方法、装置及存储介质 Download PDF

Info

Publication number
CN115550685A
CN115550685A CN202211136489.6A CN202211136489A CN115550685A CN 115550685 A CN115550685 A CN 115550685A CN 202211136489 A CN202211136489 A CN 202211136489A CN 115550685 A CN115550685 A CN 115550685A
Authority
CN
China
Prior art keywords
video frame
pixel coordinate
roll
coordinate
calculating
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
Application number
CN202211136489.6A
Other languages
English (en)
Inventor
万金学
钱哲弘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yinniu Microelectronics Wuxi Co ltd
Original Assignee
Yinniu Microelectronics Wuxi Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yinniu Microelectronics Wuxi Co ltd filed Critical Yinniu Microelectronics Wuxi Co ltd
Priority to CN202211136489.6A priority Critical patent/CN115550685A/zh
Publication of CN115550685A publication Critical patent/CN115550685A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0252Improving the response speed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开实施例中提供视频帧处理方法、装置及存储介质,通过获取利用先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的第二视频帧,并对第二视频帧依序提取行块,每个行块包括目标数量行的像素数据,利用当前时刻的用户动作数据对每个行块进行重投影,并将重投影行块组合得到重投影图像,将重投影图像发送给显示器进行显示。当前时刻的用户动作数据相比于第二视频帧是更新的动作,因此,使用当前时刻的用户动作数据对第二视频帧依序提取行块并重投影,相当于对先前时刻的用户动作数据进行了更新。当前时刻的用户动作数据具有即时性,能够解决相关技术存在的异步延迟问题,降低图像抖动问题。

Description

视频帧处理方法、装置及存储介质
技术领域
本公开涉及图像处理技术领域,尤其涉及视频帧处理方法、装置及存储介质。
背景技术
虚拟现实(英语:virtual reality,缩写VR),简称为虚拟技术,也称虚拟环境,是利用电脑模拟产生一个三维空间的虚拟世界,提供用户关于视觉等感官的模拟,让用户感觉仿佛身历其境,可以即时、没有限制地观察三维空间内的事物。用户进行位置移动时,电脑可以立即进行复杂的运算,将精确的三维世界影像传回产生临场感。
在相关技术中,如图1所示,VR系统包括渲染引擎11和显示器12。在工作时,3D视频源及预测的6自由度DOF(Degree of Freedom)数据流入渲染引擎11,渲染引擎11利用6DOF数据对3D视频源进行更新及渲染,然后投射到2D显示器12上。如图2所示,整幅图使用一个6DOF数据。
但是相关技术存在如下问题,当视频帧达到显示器时,会发生图像抖动问题,究其原因是,视频帧锁使用的预测6DOF与实际的6DOF可能不同,导致显示器上显示视频帧出现动作延迟或断开。
因此,如何消除虚拟现实环境的图像抖动是业界普遍考虑的课题。
发明内容
鉴于以上相关技术的缺点,本公开的目的在于提供视频帧处理方法、装置及存储介质,以解决相关技术中虚拟现实环境的图像抖动的技术问题。
本公开第一方面提供一种视频帧处理方法,其包括:
获取利用先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的第二视频帧,并对二视频帧依序提取行块,每个行块包括目标数量行的像素数据;
利用当前时刻的用户动作数据对每个行块进行重投影,并将重投影行块组合得到重投影图像;
将重投影图像发送给显示器进行显示。
在一些实施例中,视频帧处理方法应用于异步时间扭曲引擎,异步时间扭曲引擎部署在渲染引擎与显示器之间;
其中,第二视频帧是从渲染引擎接收得到的。
在一些实施例中,利用当前时刻的用户动作数据对每个行块进行重投影,得到重投影图像,包括:
从每个行块获得目标像素坐标,并根据目标像素坐标反向计算其在第一视频帧中对应的源像素坐标;
利用当前时刻的用户动作数据对源像素坐标进行位置更新,并利用更新的像素坐标进行重投影,得到重投影图像。
在一些实施例中,根据目标像素坐标反向计算其在第一视频帧中对应的源像素坐标,包括:
计算目标像素坐标映射到显示器屏幕上的2D像素坐标xout和yout
从先前时刻的用户动作数据中提取俯仰角pitch、偏摆角yaw及翻滚角roll;
基于yaw及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure BDA0003852317290000021
Figure BDA0003852317290000022
基于pitch及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure BDA0003852317290000023
Figure BDA0003852317290000024
基于roll及2D像素坐标xout和yout计算源像素坐标xin和yin
xin=(xout-xc)*cos(roll)-(yout-yc)*sin(roll)+xc
yin=(xout-xc)*sin(roll)-(yout-yc)*cos(roll)+yc
进行合并,得到最终的源像素坐标xin和yin
Figure BDA0003852317290000025
Figure BDA0003852317290000026
其中,a、b、c、d、e、f、h、i、j、k、l、m均为计算系数,zd为镜头焦距,xc为镜头的x坐标,yc为镜头的y坐标。
本公开第二方面还提供一种视频帧处理装置,其包括:
行块提取模块,获取利用先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的第二视频帧,并对第二视频帧依序提取行块,每个行块包括目标数量行的像素数据;
重投影模块,利用当前时刻的用户动作数据对每个行块进行重投影,并将重投影行块组合得到重投影图像;
发送模块,将重投影图像发送给显示器进行显示。
在一些实施例中,视频帧处理方法应用于异步时间扭曲引擎,异步时间扭曲引擎部署在渲染引擎与显示器之间;
其中,第二视频帧是从渲染引擎接收得到的。
在一些实施例中,重投影模块具体用于:
从每个行块获得目标像素坐标,并根据目标像素坐标反向计算其在第一视频帧中对应的源像素坐标;
利用当前时刻的用户动作数据对源像素坐标进行位置更新,并利用更新的像素坐标进行重投影,得到重投影图像。
在一些实施例中,重投影模块具体还用于:
计算目标像素坐标映射到显示器屏幕上的2D像素坐标xout和yout
从先前时刻的用户动作数据中提取俯仰角pitch、偏摆角yaw及翻滚角roll;
基于yaw及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure BDA0003852317290000031
Figure BDA0003852317290000032
基于pitch及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure BDA0003852317290000033
Figure BDA0003852317290000034
基于roll及2D像素坐标xout和yout计算源像素坐标xin和yin
xin=(xout-xc)*cos(roll)-(yout-yc)*sin(roll)+xc
yin=(xout-xc)*sin(roll)-(yout-yc)*cos(roll)+yc
进行合并,得到最终的源像素坐标xin和yin
Figure BDA0003852317290000041
Figure BDA0003852317290000042
其中,a、b、c、d、e、f、h、i、j、k、l、m均为计算系数,zd为镜头焦距,xc为镜头的x坐标,yc为镜头的y坐标。
本公开第三方面提供一种计算机装置,包括:通信器、存储器及处理器;通信器用于与外部通信;存储器存储有程序指令;处理器用于运行程序指令以执行如第一方面任一项的视频帧处理方法。
本公开第四方面提供一种计算机可读存储介质,存储有程序指令,程序指令被运行以执行如第一方面任一项的视频帧处理方法。
如上,本公开实施例中提供视频帧处理方法、装置及存储介质,通过获取利用先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的第二视频帧,并对第二视频帧依序提取行块,每个行块包括目标数量行的像素数据,利用当前时刻的用户动作数据对每个行块进行重投影,并将重投影行块组合得到重投影图像,将重投影图像发送给显示器进行显示。在第二视频帧渲染时,又采集到当前时刻的用户动作数据,当前时刻的用户动作数据相比于第二视频帧是更新的动作,因此,使用当前时刻的用户动作数据对第二视频帧依序提取行块并重投影,相当于对先前时刻的用户动作数据进行了更新。当前时刻的用户动作数据具有即时性,能够解决相关技术存在的异步延迟问题,降低图像抖动问题。
附图说明
图1展示相关技术的VR系统的架构图。
图2展示相关技术的视频帧处理方法的原理示意图。
图3展示本公开实施例的视频帧处理方法的流程图。
图4展示本公开实施例的视频帧处理方法的原理示意图。
图5展示本公开实施例的视频帧处理系统的架构图。
图6展示本公开实施例的视频帧处理方法中的像素坐标系示意图之一。
图7展示本公开实施例的视频帧处理方法中的像素坐标系示意图之二。
图8展示本公开实施例的视频帧处理方法中的像素坐标系示意图之三。
图9展示本公开实施例的视频帧处理方法中的像素坐标系示意图之四。
图10展示本公开实施例的视频帧处理装置的模块示意图。
图11展示本公开一实施例中计算机装置的结构示意图。
具体实施方式
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本公开所揭露的消息轻易地了解本公开的其他优点与功效。本公开还可以通过另外不同的具体实施方式加以实施或应用系统,本公开中的各项细节也可以根据不同观点与应用系统,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
下面以附图为参考,针对本公开的实施例进行详细说明,以便本公开所属技术领域的技术人员能够容易地实施。本公开可以以多种不同形态体现,并不限定于此处说明的实施例。
在本公开的表示中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的表示意指结合该实施例或示例表示的具体特征、结构、材料或者特点包括于本公开的至少一个实施例或示例中。而且,表示的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本公开中表示的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于表示目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的表示中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了明确说明本公开,省略与说明无关的器件,对于通篇说明书中相同或类似的构成要素,赋予了相同的参照符号。
在通篇说明书中,当说某器件与另一器件“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种器件“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素排除在外,而是意味着可以还包括其它构成要素。
虽然在一些实例中术语第一、第二等在本文中用来表示各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一接口及第二接口等表示。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在的特征、步骤、操执行、元件、模块、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操执行、元件、模块、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操执行的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
此处使用的专业术语只用于言及特定实施例,并非意在限定本公开。此处使用的单数形态,只要语句未明确表示出与之相反的意义,那么还包括复数形态。在说明书中使用的“包括”的意义是把特定特性、区域、整数、步骤、执行业、要素及/或成份具体化,并非排除其它特性、区域、整数、步骤、执行业、要素及/或成份的存在或附加。
表示“下”、“上”等相对空间的术语可以为了更容易地说明在附图中图示的一器件相对于另一器件的关系而使用。这种术语是指,不仅是在附图中所指的意义,还包括使用中的装置的其它意义或执行业。例如,如果翻转附图中的装置,曾说明为在其它器件“下”的某器件则说明为在其它器件“上”。因此,所谓“下”的示例性术语,全部包括上与下方。装置可以旋转90°或其它角度,代表相对空间的术语也据此来解释。
虽然未不同地定义,但包括此处使用的技术术语及科学术语,所有术语均具有与本公开所属技术领域的技术人员一般理解的意义相同的意义。普通使用的字典中定义的术语追加解释为具有与相关技术文献和当前提示的消息相符的意义,只要未进行定义,不得过度解释为理想的或非常公式性的意义。
对相关技术存在的技术问题进行分析,发现导致上述技术问题的原因:
发送图像到显示器的时间与渲染是异步的;
发送完整图像到显示器需要几个毫秒,图像中的第一个像素与最后一个像素经历不同的延迟。
渲染时间可能会长达几十毫秒。在此期间,预测假设可能会因为用户在此期间加了力和速度而产生了变化。
在发现问题原因的基础上,为了解决相关技术存在的技术问题,本公开实施例提出一种精确重投影方案,通过将渲染视频帧依序进行行块提取,利用更新的当前时刻的用户动作数据对行块进行重投影,相当于对先前时刻的用户动作数据进行了更新。当前时刻的用户动作数据具有即时性,能够解决相关技术存在的渲染延迟问题,降低图像抖动问题。
图3展示本公开实施例提供的视频帧处理方法的流程图,如图3所示,本方法可以包括如下步骤:
步骤310:获取利用先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的第二视频帧,并对第二视频帧依序提取行块,每个行块包括目标数量行的像素数据;
步骤320:利用当前时刻的用户动作数据对每个行块进行重投影,并将重投影行块组合得到重投影图像;
步骤330:将重投影图像发送给显示器进行显示。
在本公开实施例中,先前时刻是当前时刻之前的时刻。第一视频帧是源视频帧,第二视频帧是基于先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的。
在第二视频帧渲染时,又采集到当前时刻的用户动作数据,当前时刻的用户动作数据相比于第二视频帧是更新的动作,因此,使用当前时刻的用户动作数据对第二视频帧依序提取行块并重投影,相当于对先前时刻的用户动作数据进行了更新。当前时刻的用户动作数据具有即时性,能够解决相关技术存在的异步延迟问题,降低图像抖动问题。
同时,本实施例采用trunk模式,如图4所示,也就是对第二视频帧依序提取行块并进行重投影。虚线表示一个完整的第二视频帧,其中,Δ1、Δ2、Δ3……Δn-1、Δn为从第二视频帧中依序提取到的n个行块。
行块是渲染视频帧的局部子图像,每次重投影占用资源少,运算效率高,这使得本方案在解决VR系统中图像抖动问题方面具有更高可行性。
在本公开实施例中,用户动作数据是从惯性测量单元IMU(Inertial MeasurementUnit)采集得到的。其中,IMU基于采样频率进行用户动作数据的采集。本实施例锁提出精确重投影可以基于IMU的采样频率,把即时的用户动作数据几乎实时地对当前行块(trunkmode)中像素做即时旋转操作,解决了传统VR方案中的多个异步延迟问题。
而且,每一个视频帧图像中不同行块中的像素均能使用当前时刻的用户动作数据中属于自己的动作信息。
在本实施例中,用户动作数据实际为6DOF数据。
如图5所示,本公开实施例的视频帧处理方法应用于异步时间扭曲ATW(Asynchronous Timewarp)引擎51,ATW引擎51为本公开实施例提出的视频帧处理方法的执行主体。ATW引擎51位于渲染引擎52和显示器53之间,先前时刻的用户动作数据和当前是空的用户动作数据分别流入渲染引擎52和ATW引擎51,渲染引擎52负责对第一视频帧进行更新及渲染,并将渲染得到的第二视频帧发送给ATW引擎51。
这样,渲染和重投影在不同节点上运行,重投影进程不会占用渲染引擎52的资源,不回影响到渲染引擎52的正常渲染,渲染引擎52可按照正常设定运行渲染流程。
尤其是,本公开实施例提出的重投影过程,包括对第二视频帧进行行块提取、重投影及组合,对设备性能具有高要求。本公开实施例提出的重投影进程位于独立部署的ATW引擎51,ATW引擎51能够提供更高效的重投影服务,从而显著提升本实施例重投影策略的可行性。
在本公开实施例中,利用当前时刻的用户动作数据对每个行块进行重投影,得到重投影图像,包括:
从每个行块获得目标像素坐标,并根据目标像素坐标反向计算其在第一视频帧中对应的源像素坐标;
利用当前时刻的用户动作数据对源像素坐标进行位置更新,并利用更新的像素坐标进行重投影,得到重投影图像。
使用本实施例,通过反向计算,将第二视频帧中的每个像素带回其原始的3D位置,基于新的用户动作数据将其转移到一个新的位置,并重新投影到2D帧,得到重投影图像。
具体地,根据目标像素坐标反向计算其在第一视频帧中对应的源像素坐标,包括:
计算目标像素坐标映射到显示器屏幕上的2D像素坐标xout和yout
从先前时刻的用户动作数据中提取俯仰角pitch、偏摆角yaw及翻滚角roll;
基于yaw及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure BDA0003852317290000091
Figure BDA0003852317290000092
基于pitch及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure BDA0003852317290000093
Figure BDA0003852317290000094
基于roll及2D像素坐标xout和yout计算源像素坐标xin和yin
xin=(xout-xc)*cos(roll)-(yout-yc)*sin(roll)+xc
yin=(xout-xc)*sin(roll)-(yout-yc)*cos(roll)+yc
进行合并,得到最终的源像素坐标xin和yin
Figure BDA0003852317290000095
Figure BDA0003852317290000096
其中,a、b、c、d、e、f、h、i、j、k、l、m均为计算系数,zd为镜头焦距,xc为镜头的x坐标,yc为镜头的y坐标。
根据目标像素坐标反向计算源像素坐标,是基于图6所示坐标系实现的,即
Figure BDA0003852317290000097
对计算目标像素坐标映射到显示器屏幕上的2D像素坐标xxut和yout,可参考图7所示坐标系。其中,在VR设备中,透镜位于眼睛和屏幕之间,起到放大作用,显示器位于镜头焦距处。
举例来说,目标像素坐标为3D坐标,如其中一像素G表征为(px,py,zo),则
Figure BDA0003852317290000101
相应地,对于yout可参考计算得到。
本公开实施例认为,先前时刻的用户动作数据使得第一视频帧中的像素发生旋转,也就是,2D像素坐标xout和yout是源像素坐标xin和yin基于用户动作数据旋转得到的。用户动作数据中包含yaw、pitch和roll。
其中yaw是表征偏航的偏摆角,yaw是绕y轴旋转角度。如图8所示,上方坐标系表征在第一视频帧中的像素A的源像素坐标xin,其中α表征像素A相对于z轴的夹角。
图8所示下方坐标系表征像素A从源像素坐标到目标像素坐标的偏摆旋转示意图,基于此,可参考如上有关yaw的公式,根据偏摆导致的旋转计算源像素坐标xin和yin
上文俯仰角pitch是绕x轴的旋转角度。
上文所示翻滚角roll是绕z轴的旋转角度,如图9所示坐标系。
因此,本公开实施例考虑旋转(偏航/俯仰/滚转)变化,并执行纯“2D”重投影。
如图10所示,展示本公开一实施例的视频帧处理装置的模块示意图。需说明的是,视频帧处理装置的原理可以参考之前实施例中的视频帧处理方法,故此处不对相同技术内容执行重复赘述。
图像处理装置1000可以包括:
行块提取模块1010,获取利用先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的第二视频帧,并对第二视频帧依序提取行块,每个行块包括目标数量行的像素数据;
重投影模块1020,利用当前时刻的用户动作数据对每个行块进行重投影,并将重投影行块组合得到重投影图像;
发送模块1030,将重投影图像发送给显示器进行显示。
可选地,视频帧处理方法应用于异步时间扭曲引擎,异步时间扭曲引擎部署在渲染引擎与显示器之间;
其中,第二视频帧是从渲染引擎接收得到的。
可选地,重投影模块1020具体用于:
从每个行块获得目标像素坐标,并根据目标像素坐标反向计算其在第一视频帧中对应的源像素坐标;
利用当前时刻的用户动作数据对源像素坐标进行位置更新,并利用更新的像素坐标进行重投影,得到重投影图像。
可选地,重投影模块1020具体还用于:
计算目标像素坐标映射到显示器屏幕上的2D像素坐标xout和yout
从先前时刻的用户动作数据中提取俯仰角pitch、偏摆角yaw及翻滚角roll;
基于yaw及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure BDA0003852317290000111
Figure BDA0003852317290000112
基于pitch及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure BDA0003852317290000113
Figure BDA0003852317290000114
基于roll及2D像素坐标xout和yout计算源像素坐标xin和yin
xin=(xout-xc)*cos(roll)-(yout-yc)*sin(roll)+xc
yin=(xout-xc)*sin(roll)-(yout-yc)*cos(roll)+yc
进行合并,得到最终的源像素坐标xin和yin
Figure BDA0003852317290000115
Figure BDA0003852317290000116
其中,a、b、c、d、e、f、h、i、j、k、l、m均为计算系数,zd为镜头焦距,xc为镜头的x坐标,yc为镜头的y坐标。
需特别说明的是,在图10实施例中的各个功能模块,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以程序指令产品的形式实现。程序指令产品包括一个或多个程序指令。在计算机上加载和执行程序指令指令时,全部或部分地产生按照本公开的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。程序指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。
并且,图10实施例所揭露的装置,可通过其它的模块划分方式实现。以上所表示的装置实施例仅仅是示意性的,例如模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或模块可以结合或者可以动态到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接于可以是通过一些接口,装置或模块的间接耦合或通信连接于,可以是电性或其它的形式。
另外,图10实施例中的各功能模块及子模块可以动态在一个处理部件中,也可以是各个模块单独物理存在,也可以两个或两个以上模块动态在一个部件中。上述动态的部件既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述动态的部件如果以软件功能模块的形式实现并执行为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
本公开实施例中还可以提供一种计算机可读存储介质,存储有程序指令,程序指令被运行时执行之前图3实施例中的方法步骤。
上述实施例中的方法步骤被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此表示的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。
需特别说明的是,本公开上述实施例的流程图表示的流程或方法表示可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
例如,图3实施例中的各个步骤的顺序可能可以在具体场景中加以变化,并非以上述表示为限。
如11所示,展示本公开一实施例中计算机装置的结构示意图。
在一些实施例中,计算机装置用于装载实现视频帧处理方法的程序指令。计算机装置具体可实现为例如服务器、台式机、笔记本电脑、移动终端等,而可能被基于开发、测试等商业目的而存储和/或运行此程序指令的实施者所使用。
图11展示的计算机装置1100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,计算机装置1100以通用计算设备的形式表现。计算机装置1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130。
其中,存储单元存储有程序代码,程序代码可以被处理单元1110执行,使得计算机装置用于实现本公开上述实施例(例如图3实施例)中描述方法步骤。
在一些实施例中,存储单元1120可以包括易失性存储单元,例如随机存取存储单元(RAM)1121和/或高速缓存存储单元1122,还可以进一步包括只读存储单元(ROM)1123。
在一些实施例中,存储单元1120还可以包括具有一组(至少一个)程序模块1125的程序/实用工具1124,这样的程序模块1125包括但不限于:操执行系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
在一些实施例中,总线1130可以包括数据总线、地址总线和控制总线。
在一些实施例中,计算机装置1100也可以与一个或多个外部设备110(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口1150进行。可选的,计算机装置1100还包括显示单元1140,其连接到输入/输出(I/O)接口1150,用于进行显式。并且,计算机装置1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与计算机装置1100的其它模块通信。应当明白,尽管图中未示出,可以结合计算机装置1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
综上,本公开实施例中提供视频帧处理方法、装置及存储介质,通过获取利用先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的第二视频帧,并对第二视频帧依序提取行块,每个行块包括目标数量行的像素数据,利用当前时刻的用户动作数据对每个行块进行重投影,并将重投影行块组合得到重投影图像,将重投影图像发送给显示器进行显示。当前时刻的用户动作数据相比于第二视频帧是更新的动作,因此,使用当前时刻的用户动作数据对第二视频帧依序提取行块并重投影,相当于对先前时刻的用户动作数据进行了更新。当前时刻的用户动作数据具有即时性,能够解决相关技术存在的异步延迟问题,降低图像抖动问题。
上述实施例仅例示性说明本公开的原理及其功效,而非用于限制本公开。任何熟悉此技术的人士皆可在不违背本公开的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本公开所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本公开的权利要求所涵盖。

Claims (10)

1.一种视频帧处理方法,其特征在于,包括:
获取利用先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的第二视频帧,并对所述第二视频帧依序提取行块,每个行块包括目标数量行的像素数据;
利用当前时刻的用户动作数据对每个行块进行重投影,并将重投影行块组合得到重投影图像;
将所述重投影图像发送给显示器进行显示。
2.根据权利要求1所述的视频帧处理方法,其特征在于,所述视频帧处理方法应用于异步时间扭曲引擎,所述异步时间扭曲引擎部署在渲染引擎与显示器之间;
其中,所述第二视频帧是从所述渲染引擎接收得到的。
3.根据权利要求2所述的视频帧处理方法,其特征在于,所述利用当前时刻的用户动作数据对每个行块进行重投影,得到重投影图像,包括:
从每个行块获得目标像素坐标,并根据所述目标像素坐标反向计算其在所述第一视频帧中对应的源像素坐标;
利用当前时刻的用户动作数据对所述源像素坐标进行位置更新,并利用更新的像素坐标进行重投影,得到重投影图像。
4.根据权利要求3所述的视频帧处理方法,其特征在于,所述根据所述目标像素坐标反向计算其在所述第一视频帧中对应的源像素坐标,包括:
计算所述目标像素坐标映射到显示器屏幕上的2D像素坐标xout和yout
从先前时刻的用户动作数据中提取俯仰角pitch、偏摆角yaw及翻滚角roll;
基于yaw及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure FDA0003852317280000011
Figure FDA0003852317280000012
基于pitch及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure FDA0003852317280000013
Figure FDA0003852317280000021
基于roll及2D像素坐标xout和yout计算源像素坐标xin和yin
xin=(xout-xc)*cos(roll)-(yout-yc)*sin(roll)+xc
yin=(xout-xc)*sin(roll)-(yout-yc)*cos(roll)+yc
进行合并,得到最终的源像素坐标xin和yin
Figure FDA0003852317280000022
Figure FDA0003852317280000023
其中,a、b、c、d、e、f、h、i、j、k、l、m均为计算系数,zd为镜头焦距,xc为镜头的x坐标,yc为镜头的y坐标。
5.一种视频帧处理装置,其特征在于,包括:
行块提取模块,获取利用先前时刻的用户动作数据对第一视频帧进行更新并渲染得到的第二视频帧,并对所述第二视频帧依序提取行块,每个行块包括目标数量行的像素数据;
重投影模块,利用当前时刻的用户动作数据对每个行块进行重投影,并将重投影行块组合得到重投影图像;
发送模块,将所述重投影图像发送给显示器进行显示。
6.根据权利要求5所述的视频帧处理装置,其特征在于,所述视频帧处理方法应用于异步时间扭曲引擎,所述异步时间扭曲引擎部署在渲染引擎与显示器之间;
其中,所述第二视频帧是从所述渲染引擎接收得到的。
7.根据权利要求6所述的视频帧处理装置,其特征在于,所述重投影模块具体用于:
从每个行块获得目标像素坐标,并根据所述目标像素坐标反向计算其在所述第一视频帧中对应的源像素坐标;
利用当前时刻的用户动作数据对所述源像素坐标进行位置更新,并利用更新的像素坐标进行重投影,得到重投影图像。
8.根据权利要求7所述的视频帧处理装置,其特征在于,所述重投影模块具体还用于:
计算所述目标像素坐标映射到显示器屏幕上的2D像素坐标xout和yout
从先前时刻的用户动作数据中提取俯仰角pitch、偏摆角yaw及翻滚角roll;
基于yaw及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure FDA0003852317280000031
Figure FDA0003852317280000032
基于pitch及2D像素坐标xout和yout计算源像素坐标xin和yin
Figure FDA0003852317280000033
Figure FDA0003852317280000034
基于roll及2D像素坐标xout和yout计算源像素坐标xin和yin
xin=(xout-xc)*cos(roll)-(yout-yc)*sin(roll)+xc
yin=(xout-xc)*sin(roll)-(yout-yc)*cos(roll)+yc
进行合并,得到最终的源像素坐标xin和yin
Figure FDA0003852317280000035
Figure FDA0003852317280000036
其中,a、b、c、d、e、f、h、i、j、k、l、m均为计算系数,zd为镜头焦距,xc为镜头的x坐标,yc为镜头的y坐标。
9.一种计算机装置,其特征在于,包括:通信器、存储器及处理器;所述通信器用于与外部通信;所述存储器存储有程序指令;所述处理器用于运行所述程序指令以执行如权利要求1至4中任一项所述的视频帧处理方法。
10.一种计算机可读存储介质,其特征在于,存储有程序指令,所述程序指令被运行以执行如1至4中任一项所述的视频帧处理方法。
CN202211136489.6A 2022-09-19 2022-09-19 视频帧处理方法、装置及存储介质 Pending CN115550685A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211136489.6A CN115550685A (zh) 2022-09-19 2022-09-19 视频帧处理方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211136489.6A CN115550685A (zh) 2022-09-19 2022-09-19 视频帧处理方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN115550685A true CN115550685A (zh) 2022-12-30

Family

ID=84727879

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211136489.6A Pending CN115550685A (zh) 2022-09-19 2022-09-19 视频帧处理方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN115550685A (zh)

Similar Documents

Publication Publication Date Title
US11270460B2 (en) Method and apparatus for determining pose of image capturing device, and storage medium
EP3953796B1 (en) Hybrid rendering
EP2577499B1 (en) Motion detection techniques for improved image remoting
JP6882868B2 (ja) 画像処理装置、画像処理方法、システム
JP2020507850A (ja) 画像内の物体の姿の確定方法、装置、設備及び記憶媒体
EP3311565B1 (en) Low latency application streaming using temporal frame transformation
WO2020048484A1 (zh) 超分辨图像重建方法、装置、终端和存储介质
WO2015115018A1 (ja) Simd型超並列演算処理装置向け超解像処理方法、装置、プログラム及び記憶媒体
US11475636B2 (en) Augmented reality and virtual reality engine for virtual desktop infrastucture
CN113946402A (zh) 基于渲染分离的云手机加速方法、系统、设备及存储介质
US6985149B2 (en) System and method for decoupling the user interface and application window in a graphics application
US20140218367A1 (en) Rendering Processing Device and Rendering Processing Method
CN114222185B (zh) 视频播放方法、终端设备及存储介质
CN112714263B (zh) 视频生成方法、装置、设备及存储介质
CN101060642B (zh) 使用3d图形产生同屏显示的方法和设备
CN115550685A (zh) 视频帧处理方法、装置及存储介质
CN113496506A (zh) 图像处理方法、装置、设备及存储介质
Somraj et al. Temporal view synthesis of dynamic scenes through 3D object motion estimation with multi-plane images
KR20230114375A (ko) 클라우드 서버를 이용한 ai 기반의 xr 콘텐츠 서비스 방법
CN114332603A (zh) 一种对白模的外观处理方法、装置和电子设备
CN113835816A (zh) 一种虚拟机桌面显示方法、装置、设备及可读存储介质
CN106648634A (zh) 一种屏幕截屏的方法及装置
US9361540B2 (en) Fast image processing for recognition objectives system
JP2002042158A (ja) 画像合成装置および画像合成方法およびプログラムを記録した媒体
US11663752B1 (en) Augmented reality processing device and method

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