CN116708696B - 视频处理方法和电子设备 - Google Patents

视频处理方法和电子设备 Download PDF

Info

Publication number
CN116708696B
CN116708696B CN202211473918.9A CN202211473918A CN116708696B CN 116708696 B CN116708696 B CN 116708696B CN 202211473918 A CN202211473918 A CN 202211473918A CN 116708696 B CN116708696 B CN 116708696B
Authority
CN
China
Prior art keywords
video
finger
target application
format
image
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.)
Active
Application number
CN202211473918.9A
Other languages
English (en)
Other versions
CN116708696A (zh
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.)
Honor Device Co Ltd
Original Assignee
Honor Device 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211473918.9A priority Critical patent/CN116708696B/zh
Publication of CN116708696A publication Critical patent/CN116708696A/zh
Application granted granted Critical
Publication of CN116708696B publication Critical patent/CN116708696B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • 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
    • 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/4402Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • 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/47End-user applications
    • H04N21/485End-user interface for client configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/45Picture in picture, e.g. displaying simultaneously another television channel in a region of the screen

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本申请实施例提供了一种视频处理方法和电子设备。该方法包括:当目标应用确定第一个手指触摸图像预览区域时,目标应用通过视图系统记录第一个手指落下时的第一坐标数据;当第一个手指移动时,目标应用通过视图系统根据第一坐标数据以及移动后的第一个手指的第二坐标数据计算移动的第一移动距离;目标应用将第一移动距离同步到渲染模块;渲染模块基于第二显示窗口的预设矩阵,以及目标应用同步的第一移动距离,得到第一移动距离对应的第一矩阵;渲染模块基于第一矩阵对第二显示窗口进行渲染,得到第一渲染图像;媒体框架将第一渲染图像处理为第一目标图像,并送显第一目标图像。这样,用户可基于手势操作对画中画视频进行编辑,提升用户使用体验。

Description

视频处理方法和电子设备
技术领域
本申请涉及终端技术领域,尤其涉及以一种视频处理方法和电子设备。
背景技术
随着终端技术的发展,终端设备的图库(也可称为“相册”)中可存储有多种来源的图片、视频等图像内容,例如:终端设备基于相机应用拍摄的图像、终端设备下载到相册的图像以及终端设备使用录屏功能录制的图像。用户可在图库应用中浏览这些图像。
可能的实现中,为便于用户对图像进行编辑,终端设备的图库应用可提供图像编辑入口,例如:图库应用界面中的“编辑”按钮。用户在图库中选择希望编辑的图像后,用户可点击图像下方的“编辑”按钮,响应于该点击操作,终端设备可进入图像编辑界面。
但图库应用目前可提供的图像编辑功能较少,从而降低了用户编辑图像的体验感。
发明内容
本申请实施例提供一种视频处理方法和电子设备,应用于终端技术领域,该方法用于丰富图库应用中视频编辑功能,用户可在视频编辑过程中添加画中画视频,并基于手势操作调整画中画视频的显示位置、大小、旋转角度等,提升用户使用体验。
第一方面,本申请实施例提出一种视频处理方法,应用于终端设备,终端设备的应用层包括目标应用,终端设备的应用程序框架层包括媒体框架和视图系统,终端设备的系统库包括渲染模块,该方法包括:目标应用将在第一格式下的第一视频同步到媒体框架,并通过媒体框架将在第一格式下的第一视频同步到渲染模块;渲染模块将在第一格式下的第一视频转换为在第二格式下的第一视频;目标应用将在第一格式下的第二视频同步到媒体框架,并通过媒体框架将在第一格式下的第二视频同步到渲染模块;渲染模块将在第一格式下的第二视频转换为在第二格式下的第二视频;当目标应用确定第一个手指触摸图像预览区域时,目标应用通过视图系统记录第一个手指落下时的第一坐标数据;当第一个手指移动时,目标应用通过视图系统根据第一坐标数据以及移动后的第一个手指的第二坐标数据计算移动的第一移动距离;目标应用将第一移动距离同步到渲染模块;渲染模块基于第二显示窗口的预设矩阵,以及目标应用同步的第一移动距离,得到第一移动距离对应的第一矩阵;渲染模块基于第一矩阵将在第二格式下的第二视频的纹理贴到在第二格式下的第一视频的帧缓存对象FBO上,并进行渲染,得到在第二格式下的第一渲染图像;渲染模块得到在第一格式下的第一渲染图像,并将在第一格式下的第一渲染图像同步到媒体框架;媒体框架将第一渲染图像处理为第一目标图像,并向目标应用送显第一目标图像。这样,丰富了图库应用的图像编辑功能,提升了用户的使用体验。
在一种可能的实现方式中,方法还包括:当目标应用确定第一个手指持续作用于图像预览区域中,且有第二个手指触摸图像预览区域时,目标应用通过视图系统记录第二个手指落下时的第三坐标数据;当目标应用确定第一个手指和/或第二个手指移动时,目标应用通过视图系统根据第二坐标数据、第三坐标数据、以及第一个手指和/或第二个手指移动后的坐标数据,计算第一个手指和第二个手指之间的缩放比例和/或旋转角度;目标应用将缩放比例和/或旋转角度同步到渲染模块;渲染模块基于第二显示窗口的预设矩阵,以及视图系统返回的缩放比例和/或旋转角度,得到缩放比例和/或旋转角度对应的第二矩阵;渲染模块基于第二矩阵将在第二格式下的第二视频的纹理贴到在第二格式下的第一视频的FBO上,并进行渲染,得到在第二格式下的第二渲染图像;渲染模块得到在第一格式下的第二渲染图像,并将在第一格式下的第二渲染图像同步到媒体框架;媒体框架将第二渲染图像处理为第二目标图像,并向目标应用送显第二目标图像。这样,终端设备可基于用户的双指操作对画中画视频的旋转角度及尺寸大小进行自定义调整,提升了用户在编辑视频过程中的体验感。
在一种可能的实现方式中,目标应用基于第二显示窗口的预设矩阵,以及目标应用同步的缩放比例和/或旋转角度,得到缩放比例和/或旋转角度对应的第二矩阵,包括:目标应用基于第二显示窗口的预设矩阵,以及目标应用同步的缩放比例和/或旋转角度,对预设矩阵对应的尺寸进行缩小或放大,和/或,对预设矩阵对应的区域进行旋转,得到第二矩阵。这样,终端设备可根据缩放比例和/或旋转角度对画中画视频的预设矩阵进行缩放、旋转的操作,以实现基于用户手势操作控制画中画视频的尺寸及旋转角度的效果。
在一种可能的实现方式中,当第一个手指持续作用于图像预览区域,且有第二个手指触摸图像预览区域时,终端设备还显示旋转角度文字提示。这样,用户可根据旋转角度文字提示获知当前画中画视频的旋转角度,提升了用户的使用体验。
在一种可能的实现方式中,方法还包括:显示目标应用的第一界面,其中,第一界面中包括至少一个视频和/或至少一个图片,至少一个视频和/或至少一个图片按照预设分类方式分类别显示;接收到针对第一界面中的第一视频的触发,显示第二界面,第二界面包括第一视频以及功能栏,功能栏中包括第一控件;接收到针对第一控件的触发,目标应用向媒体框架请求创建解码器,以及向渲染模块请求渲染环境初始化;渲染模块向显存区域申请需要使用的显存,显存包括FBO和纹理;渲染模块将申请成功的FBO和纹理返回目标应用;目标应用基于返回的纹理指示媒体框架创建surface纹理。这样,终端设备可在编辑视频之前,为待编辑视频初始化视频编辑环境。
其中,第一界面可以为图7中的a所示界面,第二界面可以为图7中的b所示界面;第一控件可以为“编辑”按钮702。
在一种可能的实现方式中,当目标应用确定第一个手指触摸图像预览区域时,目标应用通过视图系统记录第一个手指落下时的第一坐标数据,包括:接收到对图像预览区域的手指触摸操作;响应于手指触摸操作,判断终端设备是否处于能够响应触摸操作的状态;当终端设备处于能够响应触摸操作的状态时,确定手指触摸操作的类型;当手指触摸操作的类型为第一个手指长按图像预览区域时,目标应用通过视图系统记录第一个手指落下时的第一坐标数据。这样,终端设备可根据终端设备所处的能够响应触摸操作的状态确定是否记录第一个手指落下时的第一坐标数据,从而提升了坐标数据的准确性。
在一种可能的实现方式中,能够响应触摸操作的状态中不包括下述一种或多种情况:终端设备为全屏显示状态、终端设备切换出画中画编辑功能或终端设备中的弹窗弹起。这样,当终端设备所处状态不能够响应触摸操作的状态时,终端设备不记录第一个手指落下时的第一坐标数据,从而提升了坐标数据的准确性。
在一种可能的实现方式中,在第一个手指触摸图像预览区域时,终端设备还暂停第一视频和第二视频的播放。这样。终端设备在调整第二显示窗口时,终端设备暂停播放视频,以减少由于渲染绘制不同视频帧造成的卡顿、浪费资源等情况。
在一种可能的实现方式中,当作用在终端设备显示屏上的全部手指抬起时,恢复第一视频和第二视频的播放。这样,在调整第二显示窗口后可自动恢复播放,简化用户操作,提升用户的使用体验。
第二方面,本申请实施例提供一种终端设备,终端设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
该终端设备包括:包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得终端设备执行如第一方面的方法。
第三方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现如第一方面的方法。
第四方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面的方法。
第五方面,本申请实施例提供了一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行如第一方面的方法。
应当理解的是,本申请的第二方面至第五方面与本申请的第一方面的技术方案案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的终端设备的结构示意图;
图2为本申请实施例提供的终端设备的软件结构示意图;
图3为本申请实施例提供的一种视频处理方法的流程示意图;
图4为本申请实施例提供的一种视频处理方法的流程示意图;
图5为本申请实施例提供的计算旋转角度和缩放比例的方法示意图;
图6为本申请实施例提供的一种视频处理方法的流程示意图;
图7为本申请实施例提供的一种视频处理方法的界面示意图;
图8为本申请实施例提供的一种视频处理方法的界面示意图;
图9为本申请实施例提供的一种视频处理方法的界面示意图;
图10为本申请实施例提供的一种视频处理方法的界面示意图;
图11为本申请实施例提供的一种视频处理方法的界面示意图;
图12为本申请实施例提供的一种视频处理方法的界面示意图;
图13为本申请实施例提供的一种视频处理方法的流程示意图;
图14为本申请实施例提供的一种视频处理方法的界面示意图;
图15为本申请实施例提供的一种视频处理方法的流程示意图;
图16为本申请实施例提供的一种视频处理装置的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
需要说明的是,本申请实施例中的“在……时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本申请实施例对此不作具体限定。此外,本申请实施例提供的显示界面仅作为示例,显示界面还可以包括更多或更少的内容。
终端设备:也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobilephone)、智能电视、可穿戴设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
其中,可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
此外,在本申请实施例中,终端设备还可以是物联网(internet of things,IoT)系统中的终端设备,IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
在本申请实施例中,终端设备可以包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(central processingunit,CPU)、内存管理单元(memory management unit,MMU)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,Linux操作系统、Unix操作系统、Android操作系统、iOS操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
为了能够更好地理解本申请实施例,下面对本申请实施例的终端设备的结构进行介绍:
图1示出了终端设备100的结构示意图。终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentification module,SIM)卡接口195等。
其中,传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integratedcircuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
示例性的,终端设备100还可以包括按键190、马达191、指示器192、SIM卡接口195(eSIM卡)等一项或多项。
终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构,等。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。
图2是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用层,应用程序框架层,系统库和硬件层。
应用层可以包括一系列应用程序包,如电话、邮箱、日历、音乐等应用程序。
在本申请实施例中,如图2所示,应用程序层还包括视频编辑应用。视频编辑应用具备视频数据处理能力,能够为用户提供编辑视频的功能,包括裁剪、渲染等视频数据处理。其中,本申请实施例中可利用视频编辑应用,实现在原视频画面中添加画中画视频,并通过对画中画视频的拖拽、缩放以及旋转等手势操作,调整画中画视频的显示位置。
应用程序框架层为应用层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,用程序框架层可以包括媒体框架、应用框架和视图系统View。
媒体框架中提供有多个编辑视频、音频的工具。其中,上述工具包括媒体框架(MediaCodec)。MediaCodec是Android提供的用于对音视频进行编解码的模块。它包括编码器、解码器以及surface类型缓存。
MeidaCodec提供的编码器可将输入该编码器的一种格式的视频或音频通过压缩技术转换成另一种格式,而解码器用于执行编码的反向过程,将输入该解码器的一种格式的视频或音频通过解压缩技术转换成另一种格式。
MediaCodec还可以申请一块共享内存,该共享内存即硬件层中的surface内存(后续简称为surface)。Surface可用于缓存视频数据。例如,电子设备执行编辑操作,得到被渲染的视频帧后,电子设备可将上述视频帧输入surface缓存。然后,应用程序可从surface中获取渲染后的视频帧,用于存储或显示等。
媒体框架中还包括共享内存管理模块(surface flinger),共享内存管理模块用于将多个App的应用窗口的视图surface根据屏幕显示的层级顺序,叠加混合成一个视图surface,并放入缓存区域。屏幕在根据一定频率刷新画面的时候,可以将缓存区域的视图显示到显示屏上。
应用框架(FrameWork)可以管理当前每个应用App的窗口处理事件和动作,以及和SurfaceFlinger进行数据通信;也可以处理应用App的工作事件或者方法调用,根据App的要求作出相应的响应。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成。例如,显示视频编辑的界面,可以包括视频帧的图像的视图。
系统库可以包括多个功能模块。如图2所示,系统库中可包括渲染模块,渲染模块可用于实现三维图形绘图,图像渲染,合成和图层处理等。作为示例而非限定,渲染模块包括但不限于以下至少一项:开放图形库(open graphics library,OpenGL)、开源计算机视觉库(open source computer vision library,OpenCV)、开放运算语言库(opencomputing language library,OpenCL)。
渲染模块提供有多个图像渲染函数,可用于绘制从简单的图形到复杂的三维景象。在本申请实施例中系统库提供的渲染模块可用于支持视频编辑应用执行图像编辑操作,例如,视频裁剪操作、添加滤镜等。
作为示例,系统库中还可以包括其它功能模块,例如,例如:状态监测服务,表面管理器(surface manager),媒体库(Media Libraries)等。
其中,硬件层包括内存(memory)、图形处理器(GPU)和显存。内存可用于暂时存放中央处理器(central processing unit,CPU)中的运算数据,和与硬盘等外部存储器交换的数据。内存中还包括前文中的共享内存(surface)。电子设备运行视频编辑应用所需的存储空间可通过内存提供,例如,surface。
GPU是执行图像和图形相关运算工作的处理器。在本申请实施例中,电子设备利用渲染模块进行视频裁剪的过程可通过GPU完成。显存用于存放每一次GPU计算后的渲染画面数据。
随着终端技术的发展,终端设备的图库(也可称为“相册”)中可存储有多种来源的图片、视频等图像内容,例如:终端设备基于相机应用拍摄的图像、终端设备下载到相册的图像以及终端设备使用录屏功能录制的图像。用户可在图库应用中浏览这些图像。
可能的实现中,为便于用户对图像进行编辑,终端设备的图库应用可提供图像编辑入口,例如:图库应用界面中的“编辑”按钮。用户在图库中选择希望编辑的图像后,用户可点击图像下方的“编辑”按钮,响应于该点击操作,终端设备可进入图像编辑界面。
但图库应用目前可提供的图像编辑功能较少,用户需下载第三方图像编辑应用才能够使用较为丰富的图像编辑功能,这将降低用户使用图库应用进行图像编辑的体验感。
有鉴于此,本申请实施例提供了一种视频处理方法,终端设备可通过图库应用选择待编辑的原视频,并在原视频的基础上导入画中画视频或图片;终端设备可基于用户的手势操作自定义设置画中画图像的大小、位置和旋转角度等参数;终端设备导出的编辑后的图像中,原视频画面中可包括画中画图像。这样,丰富了图库应用的图像编辑功能,提升了用户的使用体验。
下面结合附图对本申请实施例提供的视频处理方法进行详细地介绍。需要说明的是,本申请实施例中的“在……时”,可以为在某种情况发生的瞬时,也可以为在某种情况发生后的一段时间内,本申请实施例对此不作具体限定。
需要说明的是,为了便于区分原视频与在原视频上层显示的画中画视频,本申请实施例将原视频定义为第一视频,将画中画视频定义为第二视频。
本申请实施例中,用户可基于手势操作自定义设置第二视频在第一视频中的显示位置。下面以用户基于手势操作控制第二视频移动为例,并结合图3对本申请实施例提供的视频处理方法进行说明,如图3所示:
S301、目标应用将在第一格式下的第一视频同步到媒体框架,并通过媒体框架将在第一格式下的第一视频同步到渲染模块。
目标应用可以为图库应用、视频编辑应用等,第一视频可以为用户在目标应用中导入的原视频,第一格式可以为颜色格式,例如YUV格式。可以理解的是,终端设备在接收到用于指示添加第一视频的触发操作时,终端设备获取YUV格式的第一视频,目标应用这时获得的YUV格式的第一视频为封装好的视频。目标应用可将YUV格式的第一视频同步到媒体框架。
媒体框架用于对音视频数据进行编解码操作,媒体框架可以为MediaCodec,MediaCodec中可包括解码器,其中解码器用于将封装好的第一格式下的第一视频进行解码操作,得到第一格式下的第一视频的视频帧;例如:解码器将YUV格式的第一视频解码为一帧一帧的YUV格式的第一视频。在媒体框架执行完第一视频的解码流程后,解码器输出的YUV格式的第一视频的视频帧序列被同步到渲染模块。
S302、渲染模块将在第一格式下的第一视频转换为在第二格式下的第一视频。
渲染模块可用于实现三维图形绘图,图像渲染,合成和图层处理等,渲染模块可以为OpenGL;第二格式可以为RGB格式。渲染模块在接收到YUV格式的第一视频的视频帧后,可将YUV格式的第一视频转换为RGB格式的第一视频。
得到RGB格式的第一视频后,渲染模块可对RGB格式的第一视频进行归一化处理,转化为浮点型(float)RGB格式的第一视频。
S303、目标应用将第一格式下的第二视频同步到媒体框架,并通过媒体框架将在第一格式下的第二视频同步到渲染模块。
第二视频可以为用户在目标应用中导入的画中画视频,第一格式可以为颜色格式,例如YUV格式。可以理解的是,终端设备在接收到用于指示添加第二视频的触发操作时,终端设备可从图库应用中获取YUV格式的第二视频,目标应用这时获得的YUV格式的第二视频为封装好的视频。目标应用可将YUV格式的第二视频同步到媒体框架。
媒体框架中可包括解码器,其中解码器用于将封装好的第一格式下的第二视频进行解码操作,得到与第二视频对应的第一格式下的第二视频的视频帧;例如:解码器将YUV格式的第二视频解码为一帧一帧的YUV格式的第二视频。在媒体框架执行完第二视频的解码流程后,解码器输出的YUV格式的第二视频的视频帧序列被同步到渲染模块。
S304、渲染模块将在第一格式下的第二视频帧转换为在第二格式下的第二视频帧。
第二格式可以为RGB格式,渲染模块可以为OpenGL。渲染模块在接收到YUV格式的第二视频的视频帧后,可将YUV格式的第二视转换为RGB格式的第二视频。
得到RGB格式的第二视频后,渲染模块可对RGB格式的第二视频进行归一化处理,转化为浮点型(float)RGB格式的第二视频。
需要说明的是,第一视频显示在终端设备的第一显示窗口中,第二视频显示在终端设备的第二显示窗口中,第二显示窗口位于第一显示窗口的上层,第一显示窗口的尺寸大于第二显示窗口。本申请实施例中,用户在使用目标应用的视频编辑功能时,习惯性在尺寸较大的图像中粘贴尺寸较小的画中画图像,因此,本申请实施例中的第一显示窗口的尺寸大于第二显示窗口,但本申请实施例对此不做限制,第一显示窗口的尺寸也可小于第二显示窗口。
S305、当目标应用确定第一个手指触摸图像预览区域时,目标应用通过视图系统记录第一个手指落下时的第一坐标数据。
视图系统可以为View,图像预览区域可包括第一显示窗口和第二显示窗口。
示例性的,当目标应用接收到第一个手指触摸图像预览区域时,目标应用可将该触摸操作对应的事件Event同步到视图系统,例如,该触发操作所对应的event为ACTION_DOWN。视图系统可调用getX接口与getY接口获取第一个手指落下时的第一坐标数据(x1,y1)。,目标应用通过视图系统记录第一个手指落下时的第一坐标数据。S306、当第一个手指移动时,目标应用通过视图系统根据第一坐标数据以及移动后的第一个手指的第二坐标数据计算移动的第一移动距离。
当目标应用确定第一个手指移动时,视图系统可记录移动后的第一个手指的第二坐标数据,并根据第一坐标数据与第二坐标数据计算得到第一个手指移动的第一移动距离。一种可能的实现方式中,目标应用在接收到用户未抬起第一个手指且移动第一个手指的操作时,目标应用将ACTION_MOVE事件传到视图系统,视图系统调用getX与getY接口获取第一个手指移动后的第二坐标数据(x2,y2)。第一移动距离可以为(x2-x1,y2-y1)。
视图系统在得到第一移动距离后,将第一移动距离同步到目标应用。
S307、目标应用将第一移动距离同步到渲染模块。
可以理解的是,应用系统框架层的视图系统与系统库的渲染模块无法直接交互,视图系统可将第一移动距离上报给应用程序层的目标应用,由目标应用将第一移动距离同步到渲染模块。
S308、渲染模块基于第二显示窗口的预设矩阵,以及目标应用同步的第一移动距离,得到第一移动距离对应的第一矩阵。
第二显示窗口用于显示第二视频的视频帧,第二显示窗口的预设矩阵可理解为用于显示第一个手指移动前的第二显示窗口的矩阵,第一矩阵可理解为用于显示第一个手指移动后的第二显示窗口的矩阵。一种可能的实现方式中,渲染模块在获取第一移动距离后,可将第一移动距离的参数输入位移接口,得到与第一移动距离对应的第一矩阵。例如:位移接口可以为Android内部的matirx的位移应用程序接口(Application ProgrammingInterface,API),其中,位移API可以为transformMatrix.postTranslate。渲染模块可调用matirx并将第一移动距离输入transformMatrix.postTranslate(dx,dy),得到用于表征移动后的RGB格式的第二视频的第一矩阵以及移动后的RGB格式的第二视频的顶点坐标。
S309、渲染模块基于第一矩阵将在第二格式下的第二视频的纹理贴到在第二格式下的第一视频的帧缓存对象(Frame Buffer Object,FBO)上,并进行渲染,得到在第二格式下的第一渲染图像。
第一矩阵与移动后的RGB格式的第二视频的纹理(texture)相对应,第一渲染图像可以为第一个手指移动后的RGB格式的第一视频与第二视频的离屏渲染画面。渲染模块可将RGB格式的第二视频的纹理贴到RGB格式的第一视频的FBO上,得到第一渲染图像。可以理解的是,在显示第二视频之前,终端设备已显示有第一视频。这时,GPU下发的原始FBO上贴有RGB格式的第一视频的纹理。终端设备再显示第二视频时,可将贴有RGB格式的第一视频的纹理的FBO作为新的帧缓存对象,渲染模块将RGB格式的第二视频的纹理贴到新的FBO上,得到RGB格式的第一渲染图。
S310、渲染模块得到在第一格式下的第一渲染图像,并将在第一格式下的第一渲染图像同步到媒体框架。
在将第一渲染图像进行输出时,渲染模块可将第二格式下的第一渲染图像转化为与原始视频格式一致的第一渲染图像,从而不改变移动前后的第二视频的颜色格式。示例性的,渲染模块可调用GPU的显存,将RGB格式的第一渲染图像转化为YUV格式的第一渲染图像。
渲染模块将YUV格式的第一渲染图像存放在预先申请的共享内存(surface)中,并将承载有YUV格式的第一渲染图像的surface传到媒体框架。
S311、媒体框架将第一渲染图像处理为第一目标图像,并向目标应用送显第一目标图像。
第一目标图像可以为移动后的第一视频与第二视频合成的图像。
绘制后的YUV格式的第一渲染图像可以为多帧图像。媒体框架中还包括编码器,编码器用于将多帧YUV格式的第一渲染图像进行编码,从而得到封装好的支持目标应用播放的视频。
目标应用可显示或保存编码后的YUV格式的第一目标图像。
本申请实施例提供的视频处理方法中,目标应用将在第一格式下的第一视频同步到媒体框架,并通过媒体框架将在第一格式下的第一视频同步到渲染模块;渲染模块将在第一格式下的第一视频转换为在第二格式下的第一视频;目标应用将在第一格式下的第二视频同步到媒体框架,并通过媒体框架将在第一格式下的第二视频同步到渲染模块;渲染模块将在第一格式下的第二视频转换为在第二格式下的第二视频;当目标应用确定第一个手指触摸图像预览区域时,目标应用通过视图系统记录第一个手指落下时的第一坐标数据;当第一个手指移动时,目标应用通过视图系统根据第一坐标数据以及移动后的第一个手指的第二坐标数据计算移动的第一移动距离;目标应用将第一移动距离同步到渲染模块;渲染模块基于第二显示窗口的预设矩阵,以及目标应用同步的第一移动距离,得到第一移动距离对应的第一矩阵;渲染模块基于第一矩阵将在第二格式下的第二视频的纹理贴到在第二格式下的第一视频的FBO上,并进行渲染,得到在第二格式下的第一渲染图像;渲染模块得到在第一格式下的第一渲染图像,并将在第一格式下的第一渲染图像同步到媒体框架;媒体框架将第一渲染图像处理为第一目标图像,并向目标应用送显第一目标图像。这样,终端设备可基于用户的单指操作对画中画视频的位置进行自定义调整,提升了用户在编辑视频过程中的体验感。
上述实施例对本申请实施例提供的视频处理方法中的用户基于手势操作控制第二视频移动的方法进行了描述。下面以用户基于手势操作控制第二视频缩放及旋转为例,并结合图4对本申请实施例的视频处理方法进行说明。
一些实施例中,终端设备在执行步骤S306时,用户的第一个手指在执行触摸操作且单指滑动的动作后,用户未执行抬起第一个手指的动作,而是将第二个手指触摸到第二显示窗口。下面结合该场景对本申请实施例提供的视频处理方法进行说明。示例性的,在步骤S306之后,还包括:
S401、当目标应用确定第一个手指持续作用于图像预览区域中,且有第二个手指触摸图像预览区域时,目标应用通过视图系统记录第二个手指落下时的第三坐标数据。
第一个手指持续作用于图像预览区域可理解为用户在做出第一个手指移动的动作后,未抬起第一个手指。这时,用户又按下第二个手指,第一个手指和第二个手指均在图像预览区域内。目标应用可通过视图系统记录第二个手指落下时的第三坐标数据。
一种可能的实现方式中,目标应用在接收到用户未抬起第一个手指且第二个手指落下的操作时,目标应用可确定当前处于按下状态的手指的数量,当确定第二个手指按下时,目标应用将ACTION_POINTER_DOWN事件传到视图系统,视图系统调用getX与getY接口获取第二个手指触摸的第三坐标数据(x3,y3)。
S402、当目标应用确定第一个手指和/或第二个手指移动时,目标应用通过视图系统根据第二坐标数据、第三坐标数据、以及第一个手指和/或第二个手指移动后的坐标数据,计算第一个手指和第二个手指之间的缩放比例和/或旋转角度。
一种可能的实现方式中,在第一时刻,目标应用确定第一个手指和第二个手指均处于按下且未移动的状态,视图系统可得到第二坐标数据和第三坐标数据;随后在第二时刻,目标应用确定第一个手指和第二个手指均移动,视图系统可得到第一个手指移动后的第四坐标数据和第二个手指移动后的第五坐标数据。下面结合图5对视图系统计算旋转角度与缩放比例的方法进行说明。
示例性的,移动前第一个手指在图像预览区域中的触摸点为A、第二个手指在图像预览区域中的触摸点为B;移动后第一个手指在图像预览区域中的触摸点为C、第二个手指在图像预览区域中的触摸点为D。
示例性的,对于旋转角度:视图系统计算点A与点B所在直线的斜率;以及计算点C与点D所在直线的斜率。视图系统基于两条直线的斜率计算两条直线的夹角,从而得到旋转角度。
对于缩放比例:视图系统计算点A与点B的距离;以及计算点C与点D的距离。视图系统计算点C与点D的距离和点A与点B的距离的比值。视图系统将该比值作为缩放比例或在该比值的基础上添加预设的基数作为缩放比例,本申请实施例对此不做限制。
本申请实施例仅示例性的示出了一种基于移动前第一个手指的触摸点、第二个手指的触摸点移动后的第一个手指的触摸点和第二个手指的触摸点计算缩放比例及旋转角度的方法,本申请实施例对此不做限制。
另一种可能的实现方式中,在第一时刻,目标应用确定第一个手指和第二个手指均处于按下且未移动的状态,视图系统可得到第二坐标数据和第三坐标数据;随后在第二时刻,目标应用确定第一个手指移动且第二个手指未移动,视图系统可得到第一个手指移动后的第四坐标数据和第二时刻的第二个手指的第三坐标数据。视图系统可基于上述坐标数据计算缩放比例及旋转角度。
又一种可能的实现方式中,在第一时刻,目标应用确定第一个手指和第二个手指均处于按下且未移动的状态,视图系统可得到第二坐标数据和第三坐标数据;随后在第二时刻,目标应用确定第二个手指移动且第一个手指未移动,视图系统可得到第二个手指移动后的第四坐标数据和第二时刻的第一个手指的第二坐标数据。视图系统可基于上述坐标数据计算缩放比例及旋转角度。
需要说明的是,本实施例以终端设备执行S306后,用户未抬起第一个手指为例,这时,视图系统可将步骤S306中移动后的第一个手指的第二坐标数据作为双指操作中的第一个手指按下时的坐标数据。另一些场景下,当终端设备执行步骤S305后,终端设备可能紧接着接收到第二个手指按下的操作,这时,视图系统可将步骤S305中第一个手指的第一坐标数据作为双指操作中的第一个手指按下时的坐标数据。可以理解的是,本申请实施例中的坐标数据可根据具体的应用场景进行变更,本申请实施例对此不作限制。
S403、目标应用将缩放比例和/或旋转角度同步到渲染模块。
S404、渲染模块基于第二显示窗口的预设矩阵,以及目标应用同步的缩放比例和/或旋转角度,得到缩放比例和/或旋转角度对应的第二矩阵。
第一矩阵可理解为用于显示第一个手指和/或第二个手指移动后的第二显示窗口的矩阵。
目标应用基于第二显示窗口的预设矩阵,以及目标应用同步的缩放比例和/或旋转角度,对预设矩阵对应的尺寸进行缩小或放大,和/或,对预设矩阵对应的区域进行旋转,得到第二矩阵。
一种可能的实现方式中,渲染模块在获取缩放比例和/或旋转角度后,可将缩放比例和/或旋转角度的参数输入缩放接口和/或旋转接口,得到与对应的第一矩阵。例如:旋转接口可以为Android内部的matirx的旋转API,其中,旋转API可以为transformMatrix.postRotate;缩放接口为Android内部的matirx的缩放API,其中缩放API可以为transformMatrix.postScale。渲染模块可调用matirx并将缩放比例的参数输入transformMatrix.postScale(scale,scale,pivot.x,pivot.y),得到用于表征缩放后的RGB格式的第二视频的第二矩阵以及缩放后的RGB格式的第二视频的顶点坐标。渲染模块可调用matirx并将旋转角度的参数输入transformMatrix.PostScale(degree,pivot.x,pivot.y),得到用于表征旋转后的RGB格式的第二视频的第二矩阵以及旋转后的RGB格式的第二视频的顶点坐标。
S405、渲染模块基于第二矩阵将在第二格式下的第二视频的纹理贴到在第二格式下的第一视频的帧缓存对象FBO上,并进行渲染,得到在第二格式下的第二渲染图像。
第二矩阵与缩放和/或旋转后的RGB格式的第二视频的纹理(texture)相对应,第二渲染图像可以为第一个手指和/或第二个手指移动后的RGB格式的第一视频与第二视频的离屏渲染画面。渲染模块可将RGB格式的第二视频的纹理贴到RGB格式的第一视频的FBO上,得到第二渲染图像。
S406、渲染模块得到在第一格式下的第二渲染图像,并将在第一格式下的第二渲染图像同步到媒体框架。
在将第二渲染图像进行输出时,渲染模块可将第二格式下的第二渲染图像转化为与原始视频格式一致的第二渲染图像,从而不改变旋转和/或缩放前后的第二视频的颜色格式。示例性的,渲染模块可调用GPU的显存,将RGB格式的第二渲染图像转化为YUV格式的第二渲染图像。
渲染模块将YUV格式的第二渲染图像存放在预先申请的surface中,并将承载有YUV格式的第二渲染图像的surface传到媒体框架。
S407、媒体框架将第二渲染图像处理为第二目标图像,并向目标应用送显第二目标图像。
第二目标图像可以为缩放和/或旋转后的第一视频与第二视频合成的图像。
绘制后的YUV格式的第二渲染图像可以为多帧图像。媒体框架中还包括编码器,编码器用于将多帧YUV格式的第二渲染图像进行编码,从而得到封装好的支持目标应用播放的视频。
目标应用可显示或保存编码后的YUV格式的第二目标图像。
本申请实施例提供的视频处理方法中,通过当目标应用确定第一个手指持续作用于图像预览区域中,且有第二个手指触摸图像预览区域时,目标应用通过视图系统记录第二个手指落下时的第三坐标数据;当目标应用确定第一个手指和/或第二个手指移动时,目标应用通过视图系统根据第二坐标数据、第三坐标数据、以及第一个手指和/或第二个手指移动后的坐标数据,计算第一个手指和第二个手指之间的缩放比例和/或旋转角度;目标应用将缩放比例和/或旋转角度同步到渲染模块;渲染模块基于第二显示窗口的预设矩阵,以及目标应用同步的缩放比例和/或旋转角度,得到缩放比例和/或旋转角度对应的第二矩阵;渲染模块基于第二矩阵将在第二格式下的第二视频的纹理贴到在第二格式下的第一视频的帧缓存对象FBO上,并进行渲染,得到在第二格式下的第二渲染图像;渲染模块得到在第一格式下的第二渲染图像,并将在第一格式下的第二渲染图像同步到媒体框架;媒体框架将第二渲染图像处理为第二目标图像,并向目标应用送显第二目标图像。这样,终端设备可基于用户的双指操作对画中画视频的旋转角度及尺寸大小进行自定义调整,提升了用户在编辑视频过程中的体验感。
本申请实施例中,在步骤S303之前,视频处理方法还包括初始化视频编辑环境,示例性的,如图6所示:
S601、显示目标应用的第一界面,其中,第一界面中包括至少一个视频和/或至少一个图片,至少一个视频和/或至少一个图片按照预设分类方式分类别显示。
目标应用包括但不限于图库应用和第三方视频编辑应用,第一界面中显示有视频或图片。视频和/或图片可按时间、类型或其他预设分类方式分类别显示。以视频编辑应用为图库应用为例,终端设备可在图库应用中选择第一视频。
S602、接收到针对第一界面中的第一视频的触发,显示第二界面,第二界面包括第一视频以及功能栏,功能栏中包括第一控件。
第一界面中可显示有多个视频和/或图片,终端设备可接收到用户选中第一视频的操作,终端设备进入第二界面,第二界面可包括第一视频且不包括其他视频和/或图片,第二界面中还包括功能栏,功能栏中包括用于对第一视频进行操作的功能按钮,其中,功能栏中包括第一控件,第一控件可用于对第一视频进行编辑。
当终端设备接收到针对第一控件的触发操作时,目标应用可基于图库应用的视频编辑入口进入视频编辑界面。可以理解的是,在目标应用可显示第一视频的视频编辑界面之前,终端设备还执行步骤S603-S605:
S603、接收到针对第一控件的触发,目标应用向媒体框架请求创建解码器,以及向渲染模块请求渲染环境初始化。
媒体框架用于对音视频数据进行编解码操作,其中,媒体框架用于创建编码器以及解码器,并基于解码器将视频解码为视频帧,以及基于编码器将视频帧编码为视频。创建解码器的请求中可包括:解码器所支持的视频帧的位深和颜色编码格式。可以理解的是,解码器用于对第一视频进行解码,创建解码器的请求中可携带有支持第一视频的视频帧的位深和颜色编码格式。
媒体框架接收到创建解码器的请求后,可根据第一视频的格式创建相应的解码器,以使解码器后续可对第一视频进行解码。
媒体框架向目标应用返回解码器创建成功的消息;解码器创建成功的消息可以为确认字符ACK等。
目标应用通知渲染模块进行初始化,渲染模块可根据第一视频的位深和颜色编码格式等信息,创建相应的数据通道。
S604、渲染模块向显存区域申请需要使用的显存。
显存区域可以是GPU中的一个存储区域。显存可以为一个存储块,用于存储待编辑的第一视频,显存可包括OpenGL中的纹理和FBO。
S605、渲染模块将申请成功的FBO和纹理返回目标应用。
申请显存成功后,GPU可向渲染模块返回用于指示显存申请成功的消息以及显存地址。目标应用可获取到显存地址。
S606、目标应用基于返回的纹理指示媒体框架创建surface纹理。
Surface用于缓存编辑后的待编码的视频帧。媒体框架在接收到目标应用的指示后,可基于纹理向内存申请一个surface;响应于上述surface申请消息,内存可划分一块存储空间作为媒体框架申请的surface。
终端设备在执行完毕步骤S606后,终端设备完成视频编辑环境的初始化过程。随后,终端设备可执行步骤S301-S302以及用于将第一视频显示在第一显示窗口中的其他操作。可以理解的是,终端设备在执行步骤S303之前,同样需要创建适用于第二视频的视频编辑环境,例如:媒体框架根据第二视频的格式创建编码器与解码器、渲染模块根据第二视频的格式创建相应的数据通道等等,终端设备初始化第二视频的视频编辑环境的步骤与终端设备初始化第一视频的视频编辑环境的步骤的相似,此处可参考步骤603-606的相关描述,此处不再赘述。需要说明的是,一些实施例中,终端设备初始化第二视频的视频编辑环境的步骤可少于终端设备初始化第一视频的视频编辑环境的步骤;或,第一视频与第二视频的格式一致时,也可省略终端设备初始化第二视频的视频编辑环境的步骤。本申请实施例对此不做限制。
本申请实施例提供了一种视频处理方法可适用于下述场景,终端设备中安装有图库应用,图库应用具有视频编辑功能,终端设备可通过图库应用中的视频编辑入口进入视频编辑应用(也称为“目标应用”)。在视频编辑应用中,当用户在视频编辑过程中想要在原视频中加入画中画视频时,用户可通过手势操作来调整画中画视频在原视频中的显示位置。下面结合图7对本申请实施例中的视频处理方法所适用的场景进行说明,如图7所示:
本申请实施例中,以终端设备为手机、图像内容为视频为例进行示例说明,该示例并不构成对本申请实施例的限定。
当终端设备启动图库应用时,终端设备可显示图7中的a所示界面。该界面中显示有终端设备存储的多个视频;其中,这些视频可以是相机应用拍摄的视频、下载到图库应用的视频或基于录屏功能录制的视频;这些视频可以为动态范围(High Dynamic Range,HDR)视频,如图7中的a所示界面中的第一视频701,该视频可标记“HDR”,也可以是标准动态范围(Standard Dynamic Range,SDR)视频。本申请实施例对视频来源以及视频类型不做限制。
当终端设备接收到针对图7中的a所示界面中的第一视频701的触发操作时,终端设备可进入图7中的b所示界面。图7中的b所示界面中,终端设备可显示第一视频701和功能栏中的多个功能按钮,其中,按钮包括下述至少一项:“分享”按钮、“收藏”按钮、“编辑”按钮702、“删除”按钮以及“更多”按钮;其中,“编辑”按钮可指示终端设备进入目标应用。
在图7中的b所示界面中,当终端设备接收到针对功能栏中的“编辑”按钮702的触发操作时,终端设备进入图7中的c所示界面。图7中的c所示界面中包括图像预览区域703、第一视频的视频帧显示区域705、“添加画中画”按钮706以及功能栏。其中图像预览区域703可用于对待编辑视频进行预览,图像预览区域703中可包括第一显示窗口704,第一显示窗口704用于显示第一视频的图像。第一视频的视频帧显示区域705可显示多帧第一视频的图像。“添加画中画”按钮706用于指示终端设备导入第二视频。功能栏中包括下述至少一项功能按钮:“主题”按钮、“剪辑”按钮、“滤镜”按钮、“特效”按钮和“画中画”按钮。当终端设备接收到针对“添加画中画”按钮706的触发操作时,终端设备可显示图7中的d所示界面。
在图7中的d所示界面中,终端设备可显示图库应用中存储的视频或图像,例如第二视频707。终端设备接收到用户选中第二视频707的操作,响应于该操作,终端设备可进行图7中的e所示界面。
在图7中的e所示界面中,终端设备显示有图像预览区域703、第一视频的视频帧显示区域705、第二视频的视频帧显示区域709、画中画功能栏以及视频编辑功能栏。图像预览区域703可用于对待编辑视频(第一视频与第二视频)进行预览,图像预览区域703中可包括第一显示窗口704和第二显示窗口708;第一显示窗口704用于显示第一视频的图像,第二显示窗口708用于显示第二视频的图像。
第一视频的视频帧显示区域705可显示多帧第一视频的图像;第二视频的视频帧显示区域709可显示多帧第二视频的图像。其中,第一显示窗口704中的图像与第一视频的视频帧显示区域705中处于时间轴上的视频帧图像相对应;第二显示窗口708中的图像与第二视频的视频帧显示区域709中处于时间轴上的视频帧图像相对应。
画中画功能区包括下述至少一项功能按钮:“添加画中画”按钮、“分割”按钮、“变速”按钮、“音量”按钮、“混合模式”按钮和“删除”按钮。视频编辑功能栏包括下述至少一项功能按钮:“文字”按钮、“特效”按钮、“画中画”按钮、“画幅”按钮和“背景”按钮。
需要说明的是,第一显示窗口704的尺寸可小于或等于图像预览区域703的尺寸,第二显示窗口708的尺寸也可小于或等于图像预览区域703的尺寸,且第二显示窗口708位于第一显示窗口704的上层。
可以理解的是,图像预览区域703可同时显示第一显示窗口704与第二显示窗口708,也可只显示第一显示窗口704。本申请实施例以图像预览区域703可同时显示第一显示窗口704与第二显示窗口708为例,但本申请实施例对此并不进行限制。
终端设备可通过“播放”按钮710改变图像预览区域的显示状态。当终端设备检测到针对“播放”按钮710的触发操作时,终端设备的图像预览区域703可播放第一视频与第二视频;同时第一视频的视频帧显示区域705的图像与第二视频的视频帧显示区域709的图像同时向左移动。
可以理解的是,上述场景中,终端设备可基于功能区的按钮对第一视频和第二视频进行编辑。此外,终端设备还可基于用户的手势操作来调整第二视频在图像预览区域中的显示位置。示例性的,图8示出了本申请实施例提供的一种视频处理方法的界面示意图,如图8所示:
示例性的,目标应用中导入第二视频后,终端设备可显示图8中的a所示界面。图8中的a所示界面中包括第一显示窗口801与第二显示窗口802,其中,第二显示窗口的边框为隐藏状态,第二视频的视频帧显示区域803处于轻选中状态,这时终端设备不能对第二视频进行编辑。当终端设备接收到针对第二显示窗口802的按下操作时,终端设备可显示如图8中的b所示界面。图8中的b所示界面中显示有第一显示窗口801与第二显示窗口802,其中,第二显示窗口802的边框804为显示状态,第二视频的视频帧显示区域803处于选中状态,这时,终端设备可对第二视频进行编辑。
当终端设备接收到用户在图8中的b所示界面中针对第二显示窗口802的拖拽操作时,第二显示窗口802可随着手指拖拽的方向移动,终端设备显示图8中的c所示界面。
一种可能的实现方式中,在手指拖拽第二显示窗口802的过程中,第二显示窗口802可位于居中位置,如图8中的c界面所示。终端设备可显示居中辅助线,居中辅助线可用于提示用户当前第二视频已处于图像预览区域的居中位置,例如,居中辅助线可以为垂直居中辅助线806与水平居中辅助线805。当第二显示窗口802在图像预览区域中垂直居中时,终端设备可显示垂直居中辅助线806;当第二显示窗口802在图像预览区域中水平居中时,终端设备可显示水平居中辅助线805;当第二显示窗口802在图像预览区域中垂直居中且水平居中时,终端设备可同时显示垂直居中辅助线806与水平居中辅助线805。
可以理解的是,一些实施例中,为便于用户操作,当终端设备导入第二视频时,第二显示窗口可处于水平居中且垂直居中的位置。这时,终端设备设备在接收到针对第二视频的按下操作时,由于第二窗口处于居中位置,终端设备可显示居中辅助线。当终端设备接收到针对第二窗口的拖拽操作时,第二窗口移出居中位置,终端设备则不显示居中辅助线。
在图8中的c所示界面中,当终端设备接收到针对第二显示窗口802继续拖拽的操作时,第二窗口802移出居中位置,终端设备可显示如图8中的d所示界面。在图8中的d所示界面中,第二显示窗口802被移动到用户希望展示第二视频的位置。
图9示出了本申请实施例提供的另一种视频处理方法,如图9所示:
示例性的,目标应用中导入第二视频后,终端设备可显示图9中的a所示界面。图9中的a所示界面中包括第一显示窗口901和第二显示窗口902。当终端设备接收到针对第二显示窗口902的双指按下并移动双指的触发操作时,终端设备可显示图9中的b所示界面。可以理解的是,双指按下的操作可以为用户第一个手指与第二个手指同时按下的操作;也可以是第一个手指先按下,第二个手指后按下的操作,终端设备检测到第二个手指按下且第一个手指未抬起时,可作为双指按下的触发操作。移动双指的操作可以是用户移动第一个手指和/或移动第二个手指,以实现双指向内推动或者向外拉伸的效果的操作。
对比图9中的a所示界面中的用户手势,图9中的b所示界面中用户手势的双指间的距离大于图9中的a所示界面中用户手势的双指间的距离。相应的,图9中的b所示界面中第二显示窗口902的尺寸大于图9中的a所示界面中第二显示窗口902的尺寸。
随着用户第一个手指与第二个手指之间距离的增大,第二显示窗口的尺寸也进一步增大,如图9中的c所示界面。在图9中的c所示界面中,第二显示窗口902被调整到用户希望展示第二视频的尺寸。
可以理解的是,本申请实施例中,当第二显示窗口中存在双指按下的操作时,终端设备根据接收到的双指间的移动距离调整第二显示窗口的缩放比例,在第二显示窗口被缩放的过程中,第二显示窗口不会根据移动距离进行位置移动。可以理解为:缩放后的第二显示窗口的中心点(central)与缩放前的第二显示窗口的中心点一致,用户在双指调节第二显示窗口的尺寸时,用户是不能够同时移动第二显示窗口的位置的。但本申请实施例不会对此造成限制。
图10示出了本申请实施例提供的又一种视频处理方法,如图10所示:
示例性的,目标应用中导入第二视频后,终端设备可显示图10中的a所示界面。图10中的a所示界面中显示有第一显示窗口1001和第二显示窗口1002。当终端设备接收到针对第二显示窗口1002的双指按下并旋转的触发操作时,终端设备可显示图10中的b所示界面。可以理解的是,旋转操作可以为双指按下后其中一个手指向顺时针或逆时针方向滑动的操作;也可以是双指按下后,两个手指向同一方向(顺时针或逆时针)滑动。
示例性的,图10中的b所示界面中,用户的双指均向逆时针方向旋转滑动,相应的,第二显示窗口1002也发生了旋转,其中,第二显示窗口1002在旋转过程中,终端设备可显示旋转角度文字提示,如旋转角度文字提示1003。
随着用户的第一个手指和/或第二个手指的旋转滑动的操作,第二显示窗口的旋转角度也进一步增大,例如:图10中的b所示界面中的旋转角度提示文字1003为-10°,可用于指示当前第二显示窗口逆时针旋转了10°;图10中的c所示界面中的旋转角度提示文字为-90°,可用于指示当前第二显示窗口逆时针旋转了90°。在图10中的c所示界面中,第二显示窗口1002被旋转到用户希望展示第二视频的角度。
可以理解的是,本申请实施例中,当第二显示窗口中存在双指按下的操作时,终端设备根据接收到的双指间的旋转滑动操作来调整第二显示窗口的旋转角度,在第二显示窗口被旋转的过程中,第二显示窗口不会根据手指的移动距离进行位置移动。可以理解为:第二显示窗口可以以垂直于显示屏方向且经过第二显示窗口中心点的直线为旋转轴,围绕该旋转轴进行旋转;旋转后的第二显示窗口的中心点与旋转前的第二显示窗口的中心点一致。用户在双指调节第二显示窗口的旋转角度时,用户是不能够同时移动第二显示窗口的位置的。但本申请实施例不会对此造成限制。
一些实施例中,在第一个手指触摸第二显示窗口中的任意区域时,终端设备还暂停第一视频和第二视频的播放。以及当作用在终端设备显示屏上的全部手指抬起时,恢复第一视频和第二视频的播放,如图11所示。
示例性的,目标应用中导入第二视频后,终端设备可显示图11中的a所示界面。图11中的a所示界面中包括第一显示窗口1101、第二显示窗口1102、“播放”按钮1103、第一视频的视频帧显示区域1104和第二视频的视频帧显示区域1105;“播放”按钮1103处于暂停状态。当终端设备接收到针对“播放”按钮1103的触发操作时,终端设备的图像预览区域可播放第一视频和第二视频,如图11中的b所示界面。
图11中的b所示界面中,第一显示窗口1101播放第一视频,第二显示窗口1102播放第二视频,且“播放”按钮1106切换为播放状态;相应的,第一视频的视频帧显示区域1104的图像与第二视频的视频帧显示区域1105的图像同步向左移动,第一显示窗口1101中的图像与处于时间轴上的第一视频的视频帧显示区域1104的图像一致,第二显示窗口1102中的图像与处于时间轴上的第二视频的视频帧显示区域1105的图像一致。当终端设备接收到针对第二显示窗口1102的触发操作时,终端设备可显示图11中的c所示界面。
图11中的c所示界面中,第一显示窗口1101暂停播放第一视频,第二显示窗口1102暂停播放第二视频,且“播放”按钮1106切换为暂停状态。这时,终端设备可接收针对第二显示窗口1102的移动操作,调整第二显示窗口1102的显示位置。当第二显示窗口1102被移动到用户希望展示第二视频的位置时,终端设备检测到用户抬起手指的操作。终端设备可进入图11中的d所示界面。
图11中的d所示界面中,第一显示窗口1101恢复播放第一视频,第二显示窗口1102恢复播放第二视频,且“播放”按钮1106切换为播放状态。
这样。终端设备在调整第二显示窗口时,终端设备暂停播放视频,以减少由于渲染绘制不同视频帧造成的卡顿、浪费资源等情况,同时,在调整第二显示窗口后可自动恢复播放,简化用户操作,提升用户的使用体验。
一些实施例中,为便于用户调整第二显示窗口,本申请实施例还提供了自动居中以及旋转角度归零的功能,如图12所示:
示例性的,终端设备可显示图12中的a所示界面。图12中的a所示界面中,第二显示窗口1201随着用户手指的移动方向进行移动。当第二显示窗口1201被移动到靠近图像预览区域的中线时,第二显示窗口可自动被调整到居中位置,如图12中的b界面所示。在图12中的b所示界面中,可显示居中显示的第二显示窗口1201以及居中辅助线1202。
一种可能的实现方式中,当第二显示窗口的中心点距图像预览区域的垂直方向的中线的距离与图像预览区域的长度的比值小于a时(例如,a可以为0.05),终端设备可调用自动居中功能,以使第二显示窗口在水平方向居中,并显示水平居中辅助线。当第二显示窗口的中心点距图像预览区域的水平方向的中线的距离与图像预览区域的宽度的比值小于a时(例如,a可以为0.05),终端设备可调用自动居中功能,以使第二显示窗口在垂直方向居中,并显示垂直居中辅助线。
示例性的,终端设备可显示图12中的c所示界面。图12中的c所示界面中,第二显示窗口1201随着用户手指的旋转方向进行旋转。当第二显示窗口1201被旋转到靠近0°时,终端设备可自动调整第二显示窗口1201的旋转角度,如图12中的d界面所示。例如,在图12中的c所示界面中,旋转角度提示文字1203为5°,第二显示窗口1201被旋转到5°;终端设备判定旋转角度在预设的旋转角度范围(预设的旋转角度可以是-5°到5°之间)内,终端设备可自动将第二显示窗口1201的旋转角度归零,如图12中的d所示界面,旋转角度提示文字1203变为0°。
可以理解的是,为便于对本申请实施例的视频处理方法进行说明,上述实施例的界面示意图中,均以用户在第二显示窗口中进行触摸操作为例。一种可能的实现方式中,当图像预览界面中的第二显示窗口的边框为显示状态(如图8中的b所示界面中的第二显示窗口802的边框804)时,用户也可通过在图像预览区域中除第二显示窗口以外的区域的触摸操作对第二显示窗口进行移动、缩放以及旋转等处理。本申请实施例对此不作限制。
下面结合上述本申请实施例适用的场景对视频处理方法的流程进行说明,如图13所示:
S1301、显示第三界面,第三界面中包括第一显示窗口,其中,第一显示窗口中显示有第一视频。
第三界面可对应于图7中的c所示界面。
S1302、接收到针对第三界面中的第二控件的触发操作,终端设备显示第四界面。
第二控件可以是图7中的c所示界面中的“添加画中画”按钮706,第四界面可对应于图7中的d所示界面。响应于针对第二控件706的触发操作,终端设备显示图7中的d所示界面。
S1303、在第四界面接收到针对第二视频的触发操作,终端设备显示第五界面,第五界面中包括第二显示窗口。
第二视频可以为图7中的d所示界面中的第二视频707,第五界面可以为图7中的e所示界面,第二显示窗口可以为图7中的e所示界面中的第二显示窗口708。终端设备在目标应用中添加第二视频。
S1304、接收到对图像预览区域的手指触摸操作。
S1305、响应于手指触摸操作,判断终端设备是否处于能够响应触摸操作的状态。
当满足触摸条件时,终端设备可响应手指触摸操作。
能够响应触摸操作的状态中不包括下述一种或多种情况:终端设备为全屏显示状态、终端设备切换出画中画编辑功能、终端设备中的弹窗弹起。
全屏显示状态可以是终端设备全屏播放视频的状态,例如,终端设备显示图14中的a所示界面,该界面中包括全屏显示按钮1401;当终端设备接收到针对全屏显示按钮1401的触发操作时,终端设备可显示图14中的b所示界面,图14中的b界面所示的状态为全屏显示状态。
终端设备切换出画中画编辑功能,可以理解为终端设备切换到第一视频的编辑功能。例如,如图14中的c所示界面,终端设备显示第一显示窗口与第二显示窗口,由于终端设备切换出画中画编辑功能,例如,点击“剪辑”按钮1402后,终端设备切换到剪辑功能。这时终端设备可不响应上述手指触摸操作。
终端设备中的弹窗弹起可以是终端设备使用编辑功能时,界面上所显示的弹窗。例如:在图14中的d所示界面中,终端设备使用“特效”功能时,终端设备可显示特效类型的弹窗。
S1306、当终端设备处于能够响应触摸操作的状态时,确定手指触摸操作的类型。
手指触摸操作的类型可包括手指点击操作和手指长按操作。点击操作可理解为手指短暂按下后抬起手指的操作,长按操作可理解为手指按下后停顿一段时长的操作。
终端设备可根据手指触摸操作确定该次触摸操作类型。
可选的,S1307、当手指触摸操作的类型为第一个手指长按图像预览区域时,目标应用通过视图系统记录第一个手指落下时的第一坐标数据。
当手指触摸操作的类型为第一个手指长按图像预览区域时,终端设备可记录第一坐标数据,可参考步骤S305的相关描述。
一种可能的实现方式中,当手指触摸操作的类型为第一个手指点击图像预览区域的第二显示窗口时,目标应用可显示第二视频的边框、选中状态的第二视频的视频帧显示区域、以及居中辅助线。
示例性的,终端设备可显示如图8中的b所示界面中的显示状态的边框804;终端设备可显示选中状态的第二视频的视频帧显示区域803;和/或终端设备可显示居中辅助线。
另一种可能的实现方式中,当手指触摸操作的类型为第一个手指点击图像预览区域中除第二显示窗口之外的区域时,目标应用可隐藏第二视频的边框、显示轻选中状态的第二视频的视频帧显示区域、以及居中辅助线。
示例性的,终端设备可显示如图8中的a所示界面中的隐藏状态的边框;终端设备可显示轻选中状态的第二视频的视频帧显示区域803;和/或终端设备可显示居中辅助线。
一些实施例中,若终端设备播放第一视频和/或第二视频,当手指触摸操作的类型为第一个手指触摸图像预览区域时,终端设备暂停播放第一视频和/或第二视频。
可选的,S1308、当手指触摸操作的类型为第二个手指长按图像预览区域时,目标应用通过视图系统记录第二个手指落下时的第三坐标数据。
当手指触摸操作的类型为第二个手指长按图像预览区域时,终端设备可记录第三坐标数据,可参考步骤S401的相关描述。
可选的,S1309、当手指触摸操作的类型为第一个手指和/或第二个手指在图像预览区域中移动时,终端设备判断持续作用于图像预览区域中的手指的数量。
S1310、当持续作用于图像预览区域的手指的数量为1时,终端设备根据第一个手指移动后的坐标数据与第一坐标数据计算第一移动距离。
当持续作用于图像预览区域的手指的数量为1时,终端设备计算第一移动距离,可参考步骤S306的相关描述。
S1311、当第二显示窗口的中心点距图像预览区域的中线的距离与图像预览区域的边长的比值小于a时,终端设备将第二显示窗口的数据调整到居中显示的第二显示窗口的数据。
或者,S1312、当持续作用于图像预览区域中的手指的数量为2时,终端设备根据第一个手指和/或第二个手指移动后的坐标数据与第二坐标数据、第三坐标数据计算缩放比例和/或旋转角度。
可参考步骤S402的相关描述,此处不再赘述。
S1313、当旋转角度在预设的旋转角度范围内时,终端设备将第二显示窗口的数据调整旋转角度为零时的第二显示窗口的数据。
可选的,S1314、当手指触摸操作的类型为第一个手指离开图像预览区域中的区域时,目标应用通过视图系统记录第一个手指离开时的坐标数据。
可选的,S1315、当手指触摸操作的类型为第二个手指离开图像预览区域中的区域时,目标应用通过视图系统记录第二个手指离开时的坐标数据。
可以理解的是,终端设备以一定的频率对画中画视频进行刷新,步骤S1309可理解为手指在图像预览区域滑动过程中,第二显示窗口动态显示的场景。步骤S1314与步骤S1315为手指离开图像预览区域,终端设备完成画中画编辑过程,第二显示窗口最终显示的位置与手指离开图像预览区域时的坐标数据相关。
一种可能的实现方式中,若终端设备暂停播放第一视频和/或第二视频,当作用在终端设备显示屏上的全部手指抬起时,恢复第一视频和第二视频的播放。终端设备执行上述步骤后,可执行步骤S1316:
S1316、根据第一移动距离、缩放比例和/或旋转角度渲染并绘制第二显示窗口中的图像。
S1317、根据第一移动距离、缩放比例和/或旋转角度渲染并绘制第二显示窗口中的边框。
下面结合图7-图12的视频处理方法的界面示意图对本申请实施例中终端设备执行视频处理方法的内部交互流程图进行说明,如图15所示:
S1501、终端设备检测到用于启动目标应用的触发操作,响应于用于启动目标应用的触发操作,终端设备启动目标应用。
终端设备可基于图库应用的“编辑”按钮进入目标应用,如图7中的b所示。
S1502、目标应用向媒体框架请求创建解码器。
S1503、媒体框架根据第一视频的格式创建解码器。
S1504、目标应用接收到媒体框架返回的解码器创建成功的消息。
S1505、目标应用通知渲染模块请求渲染环境初始化。
S1506、渲染模块向显存区域申请需要的显存。
S1507、显存区域将申请成功的FBO和纹理返回渲染模块。
S1508、渲染模块将将申请成功的FBO和纹理同步到目标应用。
S1509、目标应用基于返回的纹理指示媒体框架创建surface纹理。
S1510、目标应用得到媒体框架返回的surface。
步骤S1501-步骤S1510可参考步骤S601-S606的相关描述,本申请实施例对此不再赘述。
S1511、目标应用将承载有第一视频的surface同步到媒体框架。
S1512、媒体框架对YUV格式的第一视频进行解码,并将解码后的第一视频同步到渲染工具。
S1513、渲染模块将YUV格式的第一视频处理为RGB格式的第一视频。
步骤S1511-步骤S1513可参考步骤S301-S302的相关描述,本申请实施例对此不再赘述。
S1514、渲染模块对第一视频进行渲染、绘制,并将绘制结果送显到目标应用。
终端设备对第一视频进行渲染、绘制以及送显的过程与终端设备对第二视频进行渲染、绘制以及送显的过程相似,可参考步骤S309-S311的过程,此处不对第一视频的视频编辑过程做过多描述。
S1515、终端设备检测到用于添加第二视频的触发操作,响应于用于添加第二视频的触发操作,终端设备将第二视频添加到目标应用。
S1516、终端设备初始化第二视频的视频编辑环境。
终端设备初始化第二视频的视频编辑环境与终端设备初始化第一视频的视频编辑环境的过程相似,步骤S1516可参考步骤S1502-S1510的相关描述,此处不再赘述。
S1517、目标应用将承载有第二视频的surface同步到媒体框架。
S1518、媒体框架对YUV格式的第二视频进行解码,并将解码后的第二视频同步到渲染工具。
S1519、渲染模块将YUV格式的第二视频处理为RGB格式的第二视频。
步骤S1517-步骤S1519可参考步骤S303-S304的相关描述,本申请实施例对此不再赘述。
S1520、目标应用确定第一个手指触摸图像预览区域。
S1521、视图系统记录第一个手指落下时的第一坐标数据。
S1522、目标应用确定第一个手指移动。
S1523、视图系统根据第一坐标数据以及移动后的第一个手指的第二坐标数据计算移动的第一移动距离。
步骤S1520-S1523可参考步骤S305-S306的相关描述,此处不再赘述。
和/或,在步骤S1523之后,还包括:
S1524、目标应用确定第一个手指持续作用于图像预览区域中,且有第二个手指触摸图像预览区域的区域。
S1525、视图系统记录第二个手指落下时的第三坐标数据。
S1526、目标应用确定第一个手指和/或第二个手指移动。
S1527、视图系统根据第二坐标数据、第三坐标数据、以及第一个手指和/或第二个手指移动后的坐标数据,计算第一个手指和第二个手指之间的缩放比例和/或旋转角度。
步骤S1524-S1527可参考步骤S401-S402的相关描述,此处不再赘述。
S1528、目标应用将第一移动距离、缩放比例和/旋转角度同步到渲染模块。
S1529、渲染模块基于第二显示窗口的预设矩阵,以及目标应用同步的第一移动距离、缩放比例和/旋转角度,得到编辑后的第二显示窗口对应的矩阵。
S1530、渲染模块基于上述矩阵将RGB格式的第二视频的纹理贴到在RGB格式的第一视频的FBO上,并进行渲染,得到RGB格式的离屏渲染图像。
S1531、渲染模块将RGB格式的离屏渲染图像转化为得到YUV格式的离屏渲染图像。
S1532、渲染模块将YUV格式的离屏渲染图像同步到媒体框架。
S1533、媒体框架将离屏渲染图像处理为目标图像。
S1534、媒体框架向目标应用送显目标图像。
步骤S1528-S1534可参考步骤S307-S311和/或S403-S407的相关描述,此处不再赘述。
上面已对本申请实施例的视频处理方法进行了说明,下面对本申请实施例提供的执行上述视频处理方法的装置进行描述。本领域技术人员可以理解,方法和装置可以相互结合和引用,本申请实施例提供的相关装置可以执行上述视频处理方法中的步骤。
如图16所示,图16为本申请实施例提供的一种视频处理装置的结构示意图,该视频处理装置可以是本申请实施例中的终端设备,也可以是终端设备内的芯片或芯片系统。
如图16所示,视频处理装置1600可以用于通信设备、电路、硬件组件或者芯片中,该视频处理装置包括:显示单元1601、以及处理单元1602。其中,显示单元1601用于支持视频处理装置1600执行的显示的步骤;处理单元1602用于支持视频处理装置1600执行信息处理的步骤。
可能的实现方式中,该视频处理装置1600中也可以包括通信单元1603。具体的,通信单元用于支持视频处理装置1600执行数据的发送以及数据的接收的步骤。其中,该通信单元1603可以是输入或者输出接口、管脚或者电路等。
可能的实施例中,视频处理装置还可以包括:存储单元1604。处理单元1602、存储单元1604通过线路相连。存储单元1604可以包括一个或者多个存储器,存储器可以是一个或者多个设备、电路中用于存储程序或者数据的器件。存储单元1604可以独立存在,通过通信线路与视频处理装置具有的处理单元1602相连。存储单元1604也可以和处理单元1602集成在一起。
存储单元1604可以存储终端设备中的方法的计算机执行指令,以使处理单元1602执行上述实施例中的方法。存储单元1604可以是寄存器、缓存或者RAM等,存储单元1604可以和处理单元1602集成在一起。存储单元1604可以是只读存储器(read-only memory,ROM)或者可存储静态信息和指令的其他类型的静态存储设备,存储单元1604可以与处理单元1602相独立。
本申请实施例提供的视频处理方法,可以应用在具备通信功能的电子设备中。电子设备包括终端设备,终端设备的具体设备形态等可以参照上述相关说明,此处不再赘述。
本申请实施例提供一种终端设备,该终端设备包括:包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得终端设备执行上述方法。
本申请实施例提供一种芯片。芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现上述方法。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
一种可能的实现方式中,计算机可读介质可以包括RAM,ROM,只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(Digital Subscriber Line,DSL)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘,激光盘,光盘,数字通用光盘(Digital Versatile Disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行上述方法。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (12)

1.一种视频处理方法,其特征在于,应用于终端设备,所述终端设备的应用层包括目标应用,所述目标应用为图库应用;所述终端设备的应用程序框架层包括媒体框架和视图系统,所述终端设备的系统库包括渲染模块,所述方法包括:
所述目标应用将在第一格式下的第一视频同步到所述媒体框架,并通过所述媒体框架将在所述第一格式下的第一视频同步到所述渲染模块;
所述渲染模块将在所述第一格式下的第一视频转换为在第二格式下的第一视频;
所述目标应用将在所述第一格式下的第二视频同步到所述媒体框架,并通过所述媒体框架将在所述第一格式下的第二视频同步到所述渲染模块;其中,所述第一视频显示在所述终端设备的第一显示窗口中,所述第二视频显示在所述终端设备的第二显示窗口中,所述第二显示窗口位于所述第一显示窗口的上层,所述第一显示窗口的尺寸大于所述第二显示窗口;
渲染模块将在所述第一格式下的第二视频转换为在所述第二格式下的第二视频;
当所述目标应用确定第一个手指触摸图像预览区域时,所述目标应用通过所述视图系统记录所述第一个手指落下时的第一坐标数据;其中,所述图像预览区域包括所述第一显示窗口和所述第二显示窗口;
当所述第一个手指移动时,所述目标应用通过所述视图系统根据所述第一坐标数据以及移动后的所述第一个手指的第二坐标数据计算所述移动的第一移动距离;
所述目标应用将所述第一移动距离同步到所述渲染模块;
所述渲染模块基于所述第二显示窗口的预设矩阵,以及所述目标应用同步的所述第一移动距离,得到所述第一移动距离对应的第一矩阵;
所述渲染模块基于所述第一矩阵将在所述第二格式下的第二视频的纹理贴到在所述第二格式下的第一视频的帧缓存对象FBO上,并进行渲染,得到在所述第二格式下的第一渲染图像;
所述渲染模块得到在所述第一格式下的第一渲染图像,并将在所述第一格式下的第一渲染图像同步到所述媒体框架;
所述媒体框架将所述第一渲染图像处理为第一目标图像,并向所述目标应用送显所述第一目标图像。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标应用确定所述第一个手指持续作用于所述图像预览区域中,且有第二个手指触摸所述图像预览区域时,所述目标应用通过所述视图系统记录所述第二个手指落下时的第三坐标数据;
当所述目标应用确定所述第一个手指和/或所述第二个手指移动时,所述目标应用通过所述视图系统根据所述第二坐标数据、所述第三坐标数据、以及所述第一个手指和/或所述第二个手指移动后的坐标数据,计算所述第一个手指和所述第二个手指之间的缩放比例和/或旋转角度;
所述目标应用将所述缩放比例和/或旋转角度同步到所述渲染模块;
所述渲染模块基于所述第二显示窗口的预设矩阵,以及所述视图系统返回的所述缩放比例和/或所述旋转角度,得到所述缩放比例和/或所述旋转角度对应的第二矩阵;
所述渲染模块基于所述第二矩阵将在所述第二格式下的第二视频的纹理贴到在所述第二格式下的第一视频的FBO上,并进行渲染,得到在所述第二格式下的第二渲染图像;
所述渲染模块得到在所述第一格式下的第二渲染图像,并将在所述第一格式下的第二渲染图像同步到所述媒体框架;
所述媒体框架将所述第二渲染图像处理为第二目标图像,并向所述目标应用送显所述第二目标图像。
3.根据权利要求2所述的方法,其特征在于,所述目标应用基于所述第二显示窗口的预设矩阵,以及所述目标应用同步的所述缩放比例和/或所述旋转角度,得到所述缩放比例和/或所述旋转角度对应的第二矩阵,包括:
所述目标应用基于所述第二显示窗口的预设矩阵,以及所述目标应用同步的所述缩放比例和/或所述旋转角度,对所述预设矩阵对应的尺寸进行缩小或放大,和/或,对所述预设矩阵对应的区域进行旋转,得到所述第二矩阵。
4.根据权利要求2或3所述的方法,其特征在于,当所述第一个手指持续作用于所述图像预览区域,且有第二个手指触摸所述图像预览区域时,所述终端设备还显示旋转角度文字提示。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
显示目标应用的第一界面,其中,所述第一界面中包括至少一个视频和/或至少一个图片,所述至少一个视频和/或所述至少一个图片按照预设分类方式分类别显示;
接收到针对所述第一界面中的所述第一视频的触发,显示第二界面,所述第二界面包括所述第一视频以及功能栏,所述功能栏中包括第一控件;
接收到针对所述第一控件的触发,所述目标应用向所述媒体框架请求创建解码器,以及向所述渲染模块请求渲染环境初始化;
所述渲染模块向显存区域申请需要使用的显存,显存包括FBO和纹理;
所述渲染模块将申请成功的FBO和纹理返回所述目标应用;
所述目标应用基于返回的纹理指示所述媒体框架创建surface纹理。
6.根据权利要求1-5任一项所述的方法,其特征在于,当所述目标应用确定第一个手指触摸所述图像预览区域时,所述目标应用通过所述视图系统记录所述第一个手指落下时的第一坐标数据,包括:
接收到对所述图像预览区域的手指触摸操作;
响应于所述手指触摸操作,判断所述终端设备是否处于能够响应触摸操作的状态;
当所述终端设备处于能够响应触摸操作的状态时,确定所述手指触摸操作的类型;
当所述手指触摸操作的类型为第一个手指长按所述图像预览区域时,所述目标应用通过所述视图系统记录所述第一个手指落下时的第一坐标数据。
7.根据权利要求6所述的方法,其特征在于,所述能够响应触摸操作的状态中不包括下述一种或多种情况:所述终端设备为全屏显示状态、所述终端设备切换出画中画编辑功能或所述终端设备中的弹窗弹起。
8.根据权利要求1-7任一项所述的方法,其特征在于,在所述第一个手指触摸所述图像预览区域时,所述终端设备还暂停所述第一视频和所述第二视频的播放。
9.根据权利要求8所述的方法,其特征在于,当作用在所述终端设备显示屏上的全部手指抬起时,恢复所述第一视频和所述第二视频的播放。
10.一种终端设备,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述终端设备执行如权利要求1-9中任一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9任一项所述的方法。
12.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被运行时,使得计算机执行如权利要求1-9任一项所述的方法。
CN202211473918.9A 2022-11-22 2022-11-22 视频处理方法和电子设备 Active CN116708696B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211473918.9A CN116708696B (zh) 2022-11-22 2022-11-22 视频处理方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211473918.9A CN116708696B (zh) 2022-11-22 2022-11-22 视频处理方法和电子设备

Publications (2)

Publication Number Publication Date
CN116708696A CN116708696A (zh) 2023-09-05
CN116708696B true CN116708696B (zh) 2024-05-14

Family

ID=87843967

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211473918.9A Active CN116708696B (zh) 2022-11-22 2022-11-22 视频处理方法和电子设备

Country Status (1)

Country Link
CN (1) CN116708696B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118018861A (zh) * 2024-03-06 2024-05-10 荣耀终端有限公司 一种拍摄预览方法及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155281A (zh) * 2006-09-25 2008-04-02 三星电子株式会社 具有数字广播接收能力的移动终端和画中画显示控制方法
CN104994314A (zh) * 2015-08-10 2015-10-21 合一网络技术(北京)有限公司 在移动终端上通过手势控制画中画视频的方法及系统
CN107277616A (zh) * 2017-07-21 2017-10-20 广州爱拍网络科技有限公司 视频特效渲染方法、装置及终端
WO2021212922A1 (zh) * 2020-04-24 2021-10-28 华为技术有限公司 一种对象拖拽方法及设备
CN114286159A (zh) * 2021-12-28 2022-04-05 北京快来文化传播集团有限公司 视频编辑方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8253770B2 (en) * 2007-05-31 2012-08-28 Eastman Kodak Company Residential video communication system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101155281A (zh) * 2006-09-25 2008-04-02 三星电子株式会社 具有数字广播接收能力的移动终端和画中画显示控制方法
CN104994314A (zh) * 2015-08-10 2015-10-21 合一网络技术(北京)有限公司 在移动终端上通过手势控制画中画视频的方法及系统
CN107277616A (zh) * 2017-07-21 2017-10-20 广州爱拍网络科技有限公司 视频特效渲染方法、装置及终端
WO2021212922A1 (zh) * 2020-04-24 2021-10-28 华为技术有限公司 一种对象拖拽方法及设备
CN114286159A (zh) * 2021-12-28 2022-04-05 北京快来文化传播集团有限公司 视频编辑方法、装置及电子设备

Also Published As

Publication number Publication date
CN116708696A (zh) 2023-09-05

Similar Documents

Publication Publication Date Title
WO2021057830A1 (zh) 一种信息处理方法及电子设备
CN113553014B (zh) 多窗口投屏场景下的应用界面显示方法及电子设备
CN106233706B (zh) 用于提供具有标准动态范围和高动态范围两者的视频的向后兼容的装置和方法
CN108781271B (zh) 用于提供图像服务的方法和装置
WO2022100315A1 (zh) 应用界面的生成方法及相关装置
CN107087101B (zh) 用于提供动态全景功能的装置和方法
US10298840B2 (en) Foveated camera for video augmented reality and head mounted display
CN112527174B (zh) 一种信息处理方法及电子设备
CN113691846A (zh) 多窗口投屏方法及电子设备
WO2022105445A1 (zh) 基于浏览器的应用投屏方法及相关装置
CN112527222A (zh) 一种信息处理方法及电子设备
WO2021043121A1 (zh) 一种图像换脸的方法、装置、系统、设备和存储介质
WO2021073293A1 (zh) 动画文件的生成方法、装置及存储介质
WO2022252924A1 (zh) 图像传输与显示方法、相关设备及系统
CN116708696B (zh) 视频处理方法和电子设备
CN112822544B (zh) 视频素材文件生成方法、视频合成方法、设备及介质
WO2021052488A1 (zh) 一种信息处理方法及电子设备
WO2023040775A1 (zh) 一种预览方法、电子设备及系统
EP4270300A1 (en) Multi-person-capturing method and electronic device
CN114915722B (zh) 处理视频的方法和装置
CN115016871B (zh) 多媒体编辑方法、电子设备和存储介质
WO2024099206A1 (zh) 一种图形界面处理方法以及装置
US20240086035A1 (en) Display Method and Electronic Device
EP4361805A1 (en) Method for generating theme wallpaper, and electronic device
WO2023202445A1 (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
GR01 Patent grant
GR01 Patent grant