CN115145513A - 一种投屏方法、***及相关装置 - Google Patents
一种投屏方法、***及相关装置 Download PDFInfo
- Publication number
- CN115145513A CN115145513A CN202110350868.4A CN202110350868A CN115145513A CN 115145513 A CN115145513 A CN 115145513A CN 202110350868 A CN202110350868 A CN 202110350868A CN 115145513 A CN115145513 A CN 115145513A
- Authority
- CN
- China
- Prior art keywords
- display data
- electronic device
- screen projection
- screen
- image frame
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000015654 memory Effects 0.000 claims description 33
- 238000009877 rendering Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 12
- 238000005520 cutting process Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 53
- 238000012545 processing Methods 0.000 description 32
- 239000000872 buffer Substances 0.000 description 23
- 230000006870 function Effects 0.000 description 21
- 239000010410 layer Substances 0.000 description 21
- 238000007726 management method Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 238000010295 mobile communication Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 12
- 238000005266 casting Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 6
- 230000002194 synthesizing effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 229920001621 AMOLED Polymers 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 1
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- ACWBQPMHZXGDFX-QFIPXVFZSA-N valsartan Chemical class C1=CC(CN(C(=O)CCCC)[C@@H](C(C)C)C(O)=O)=CC=C1C1=CC=CC=C1C1=NN=NN1 ACWBQPMHZXGDFX-QFIPXVFZSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0483—Interaction with page-structured environments, e.g. book metaphor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请公开了一种投屏方法、***及相关装置,该方法包括:第一电子设备可以向第二电子设备发送投屏数据。若该投屏数据中的第一投屏窗口相对于前一帧投屏数据中有变化,第二投屏窗口相对于前一帧投屏数据中没变化,则第二电子设备可以在第一投屏窗口中渲染新的投屏页面,在第二投屏窗口继续使用上一帧已经渲染好的投屏页面。这样,减轻了第二电子设备的GPU的工作负担,提高投屏性能。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种投屏方法、***及相关装置。
背景技术
随着数字技术的发展,手机等电子设备的个人计算机(personalcomputer,PC)化是实现移动办公的重要手段之一。具体的,手机可以在与PC设备建立连接之后,可以实时将手机上的多个界面投射到PC设备上显示。同时,手机可以和PC设备之间无缝共享图片或视频等文件,用户还可以在PC设备上运用鼠标键盘操作,快速处理手机消息和文件。
其中,在手机投射应用的界面到PC设备上时,手机可以保持手机的分辨率并编码传输影像数据,PC设备收到影像数据后,PC设备可以切割显示多个窗口。由于多个窗口的图像会以相同的帧率渲染,无法避免会出现图形处理器(graphics processing unit,GPU)负荷使用的情形。最终导致PC设备显示延迟,操作卡顿。
发明内容
本申请提供了一种投屏方法、***及相关装置,实现了电子设备在向大屏设备投屏时,若投屏画面相对于上一帧画面未变化,大屏设备可以继续沿用上一帧的已渲染好的投屏画面,减轻了大屏设备的GPU的工作负担,提高投屏性能。
第一方面,本申请提供了一种投屏***,包括:第一电子设备和第二电子设备;其中,该第一电子设备,用于获取该第二电子设备上第一投屏窗口对应的第一显示数据和该第二电子设备上第二投屏窗口对应的第二显示数据;该第一电子设备,还用于将该第一显示数据和该第二显示数据发送给该第二电子设备;该第二电子设备,还用于基于该第一显示数据在该第一投屏窗口中渲染显示出第一投屏页面,基于该第二显示数据在该第二投屏窗口中渲染显示出第二投屏页面;该第一电子设备,还用于获取该第二电子设备上第一投屏窗口对应的第三显示数据和该第二电子设备上第二投屏窗口对应的第四显示数据;该第一电子设备,还用于将该第三显示数据和该第四显示数据发送给该第二电子设备;该第二电子设备,还用于当确定出该第三显示数据与该第一显示数据不同,且该第四显示数据与该第二显示数据相同时,基于该第三显示数据在该第一投屏窗口中渲染显示出第三投屏页面,在该第二投屏窗口中显示已缓存的该第二投屏页面。
本申请中提供了一种投屏方法,第一电子设备可以向第二电子设备发送投屏数据。若该投屏数据中的第一投屏窗口相对于前一帧投屏数据中有变化,第二投屏窗口相对于前一帧投屏数据中没变化,则第二电子设备可以在第一投屏窗口中渲染新的投屏页面,在第二投屏窗口继续使用上一帧已经渲染好的投屏页面。这样,减轻了第二电子设备的GPU的工作负担,提高投屏性能。
在一种可能的实现方式中,该将该第一显示数据和该第二显示数据发给该第二电子设备,具体包括:将该第一显示数据和该第二显示数据绘制在第一投屏图像帧中,并记录该第一显示数据在该第一投屏图像帧中的区域范围以及该第二显示数据在该第一投屏图像帧中的区域范围;将该第一投屏图像帧、该第一显示数据在该第一投屏图像帧中的区域范围以及该第二显示数据在该第一投屏图像帧中的区域范围,发送给该第二电子设备。该第二电子设备,还用于:在基于该第一显示数据在该第一投屏窗口中渲染显示出第一投屏页面,基于该第二显示数据在该第二投屏窗口中渲染显示出第二投屏页面之前,基于该第一显示数据在该第一投屏图像帧中的区域范围从该第一投屏图像帧中裁剪出该第一显示数据,基于该第二显示数据在该第一投屏图像帧中的区域范围从该第二投屏图像帧中裁剪出该第二显示数据。
这样,可以将第一投屏窗口的显示数据和第二投屏窗口的显示数据合成一帧画面发送,避免第一投屏窗口和第二投屏窗口的显示数据因没有同时到达,而造成投屏画面的时延。
在一种可能的实现方式中,该将该第三显示数据和该第四显示数据发送给该第二电子设备,具体包括:将该第三显示数据和该第四显示数据绘制在第二投屏图像帧中,并记录该第三显示数据在该第二投屏图像帧中的区域范围以及该第四显示数据在该第二投屏图像帧中的区域范围;将该第一投屏图像帧、该第一显示数据在该第一投屏图像帧中的区域范围以及该第二显示数据在该第一投屏图像帧中的区域范围,发送给该第二电子设备。该第二电子设备,还用于:在基于该第一显示数据在该第一投屏窗口中渲染显示出第三投屏页面,在该第二投屏窗口中显示已缓存的该第二投屏页面之前,基于该第三显示数据在该第二投屏图像帧中的区域范围从该第二投屏图像帧中裁剪出该第三显示数据。
这样,可以将第一投屏窗口的显示数据和第二投屏窗口的显示数据合成一帧画面发送,避免第一投屏窗口和第二投屏窗口的显示数据因没有同时到达,而造成投屏画面的时延。
在一种可能的实现方式中,该第一电子设备,还用于:确定出第二投屏图像帧中图像内容与该第一投屏图像帧有差异的脏区域范围;将该脏区域范围发送给该第二电子设备。该确定出该第三显示数据与该第一显示数据不同,且该第四显示数据与该第二显示数据相同,具体包括:当该脏区域范围与该第三显示数据在该第二投屏图像帧中的区域范围重叠,与该第四显示数据在该第二投屏图像帧中的区域范围不重叠时,确定出该第三显示数据与该第一显示数据不同,且该第四显示数据与该第二显示数据相同。
这样,第一电子设备可以标记投屏图像帧的变化范围,并将脏区域范围发送给第二电子设备。当第二电子设备收到投屏图像帧后,会切割脏区域范围的界面并渲染显示。对于没有处在脏区域范围的图像,第二电子设备将继续沿用上一帧的已渲染好的图像,避免了重复渲染同一帧画面的情形,减轻了第二电子设备的GPU的工作负担,提高投屏性能。
在一种可能的实现方式中,该第二电子设备,还用于当确定出该第三显示数据与该第一显示数据不同,且该第四显示数据与该第二显示数据不同时,基于该第三显示数据在该第一投屏窗口中渲染显示出第三投屏页面,基于该第三显示数据在该第二投屏窗口中渲染显示出第四投屏页面。
这样,在第一投屏窗口和第二投屏窗口中的画面都有更新时,第二电子设备可以在第一投屏窗口和第二投屏窗口中都通过GPU重新渲染画面。
在一种可能的实现方式中,该第二电子设备,还用于当确定出该第三显示数据与该第一显示数据相同,且该第四显示数据与该第二显示数据相同时,在该第一投屏窗口中显示已缓存的该第一投屏页面,在该第二投屏窗口中显示已缓存的该第二投屏页面。
这样,在第一投屏窗口和第二投屏窗口中的画面都没有更新时,第二电子设备可以在第一投屏窗口和第二投屏窗口中都使用已渲染好的上一帧的画面进行显示。
在一种可能的实现方式中,该第一电子设备,还用于在获取该第二电子设备上第一投屏窗口对应的第一显示数据和该第二电子设备上第二投屏窗口对应的第二显示数据之前,与该第二电子设备建立无线保真Wi-Fi直连。该第一电子设备,具体用于通过该Wi-Fi直连将该第一显示数据和该第二显示数据发送给该第二电子设备。该第一电子设备,具体用于通过该Wi-Fi直连将该第三显示数据和该第四显示数据发送给该第三电子设备。
第二方面,本申请提供了一种投屏方法,应用于第二电子设备,其特征在于,包括:该第二电子设备接收第一电子设备发送的第一投屏窗口对应的第一显示数据和第二投屏窗口对应的第二显示数据;该第二电子设备基于该第一显示数据在该第一投屏窗口中渲染显示出第一投屏页面,基于该第二显示数据在该第二投屏窗口中渲染显示出第二投屏页面;该第二电子设备接收该第一电子设备发送的该第一投屏窗口对应的第三显示数据和第二投屏窗口对应的第四显示数据;当该第二电子设备确定出该第三显示数据与该第一显示数据不同,且该第四显示数据与该第二显示数据相同时,该第二电子设备基于该第三显示数据在该第一投屏窗口中渲染显示出第三投屏页面,在该第二投屏窗口中显示已缓存的该第二投屏页面。
在一种可能的实现方式中,该第二电子设备接收第一电子设备发送的第一投屏窗口对应的第一显示数据和第二投屏窗口对应的第二显示数据,具体包括:该第二电子设备接收第一电子设备发送的第一投屏图像帧、该第一显示数据在该第一投屏图像帧中的区域范围以及该第二显示数据在该第一投屏图像帧中的区域范围;其中,该第一投屏图像帧包括该第一显示数据和该第二显示数据;该第二电子设备基于该第一显示数据在该第一投屏图像帧中的区域范围从该第一投屏图像帧中裁剪出该第一显示数据,基于该第二显示数据在该第一投屏图像帧中的区域范围从该第二投屏图像帧中裁剪出该第二显示数据。
在一种可能的实现方式中,该第二电子设备接收该第一电子设备发送的第三显示数据和第四显示数据,具体包括:该第二电子设备接收第一电子设备发送的第二投屏图像帧、该第三显示数据在该第二投屏图像帧中的区域范围以及该第二显示数据在该第二投屏图像帧中的区域范围;其中,该第二投屏图像帧包括该第三显示数据和该第四显示数据;该第二电子设备基于该第一显示数据在该第二投屏图像帧中的区域范围从该第二投屏图像帧中裁剪出该第三显示数据,基于该第四显示数据在该第二投屏图像帧中的区域范围从该第二投屏图像帧中裁剪出该第四显示数据。
在一种可能的实现方式中,在该方法还包括:该第二电子设备接收到该第一电子设备发送的该第二投屏图像帧中图像内容与该第一投屏图像帧有差异的脏区域范围;该第二电子设备确定出该第三显示数据与该第一显示数据不同,且该第四显示数据与该第二显示数据相同,具体包括:当该脏区域范围与该第三显示数据在该第二投屏图像帧中的区域范围重叠,与该第四显示数据在该第二投屏图像帧中的区域范围不重叠时,该第二电子设备确定出该第三显示数据与该第一显示数据不同,且该第四显示数据与该第二显示数据相同。
在一种可能的实现方式中,该方法还包括:
当该第二电子设备确定出该第三显示数据与该第一显示数据不同,且该第四显示数据与该第二显示数据不同时,该第二电子设备基于该第三显示数据在该第一投屏窗口中渲染显示出第三投屏页面,基于该第三显示数据在该第二投屏窗口中渲染显示出第四投屏页面。
在一种可能的实现方式中,该方法还包括:当该第二电子设备确定出该第三显示数据与该第一显示数据相同,且该第四显示数据与该第二显示数据相同时,在该第一投屏窗口中显示已缓存的该第一投屏页面,在该第二投屏窗口中显示已缓存的该第二投屏页面。
在一种可能的实现方式中,在该第二电子设备接收第一电子设备发送的第一投屏窗口对应的第一显示数据和第二投屏窗口对应的第二显示数据之前,该方法还包括:该第二电子设备与该第一电子设备建立无线保真Wi-Fi直连。该第二电子设备接收第一电子设备发送的第一投屏窗口对应的第一显示数据和第二投屏窗口对应的第二显示数据,具体包括:该第二电子设备通过该Wi-Fi直连接收该第一电子设备发送的该第一显示数据和该第二显示数据。该第二电子设备接收该第一电子设备发送的该第一投屏窗口对应的第三显示数据和第二投屏窗口对应的第四显示数据,具体包括:该第二带着你设备通过该Wi-Fi直连接收该第一电子设备发送的该第三显示数据和该第四显示数据。
第三方面,本申请提供了一种电子设备,为第二电子设备,该第二电子设备包括一个或多个处理器、Wi-Fi模块和一个或多个存储器。该一个或多个存储器、Wi-Fi模块与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得通信装置执行上述任一方面任一项可能的实现方式中的投屏方法。
第四方面,本申请实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在第二电子设备上运行时,使得通信装置执行上述任一方面任一项可能的实现方式中的投屏方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在第二电子设备上运行时,使得第二电子设备执行上述任一方面任一项可能的实现方式中的投屏方法。
其中,第二方面至第五方面的有益效果,请参见第一方面的有益效果,不重复赘述。
附图说明
图1为本申请实施例提供的一种通信***示意图;
图2A为本申请实施例提供的一种电子设备100的硬件结构示意图;
图2B为本申请实施例提供的一种电子设备100的软件结构框图;
图3为本申请实施例提供的一种电子设备200的硬件结构示意图;
图4A-图4I为本申请实施例提供的一组投屏场景界面示意图;
图5为本申请实施例提供的一种投屏方法的流程示意图;
图6为本申请实施例提供的一种脏区域范围示意图;
图7为本申请实施例提供的一种流程示意图;
图8A-图8B为本申请实施例提供的一组投屏画面切割示意图;
图9为本申请实施例提供的一种图像编码模块流程图;
图10为本申请实施例提供的一种投屏方法模块流程图;
图11为本申请实施例提供的一种投屏方法的方法流程图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面介绍本申请提供的一种解决投屏过程中画面卡顿的实现方式。
当手机等电子设备检测到到大屏设备上的投屏画面卡顿时,手机等电子设备在对投屏的画面数据进行编码时,可以降低投屏数据中画面的分辨率。当手机等电子设备将投屏数据发送给大屏设备后,大屏设备可以将得到的投屏的画面进行等比例拉伸显示。
但是,由于投屏的画面的分辨率降低,会导致大屏设备上显示的画面模糊不清晰。
下面介绍本申请提供的另一种解决投屏过程中画面卡顿的实现方式。
当手机等电子设备检测到到大屏设备上的投屏画面卡顿时,手机等电子设备在对投屏数据进行编码时,可以保持投屏数据中焦点窗口(当前操作的窗口)的投屏页面的分辨率,降低投屏数据中非焦点窗口的投屏页面的分辨率。当手机等电子设备将投屏数据发送给大屏设备后,大屏可以将得到的投屏的画面进行等比例拉伸显示。
但是,由于非焦点窗口的投屏页面的分辨率降低,会导致大屏设备上显示的部分画面模糊不清晰。
因此,本申请实施例中提供了一种投屏方法,电子设备可以标记投屏图像帧的变化范围(该变化范围可称为脏区域范围,又可简称脏区域范围、脏矩形等,为一帧图像相对于上一帧图像画面发生变化的范围)。电子设备可以将脏区域范围发送给大屏设备。当大屏设备收到投屏数据后,会切割脏区域范围的界面并渲染显示。对于没有处在脏区域范围的图像,大屏设备将继续沿用上一帧的已渲染好的图像,避免了重复渲染同一帧画面的情形,减轻了大屏设备的GPU的工作负担,提高投屏性能。
下面介绍本申请实施例中提供的一种通信***。
图1示出了本申请实施例提供的一种通信***示意图。
如图1所示,该通信***10可以包括电子设备100(又称为第一电子设备)和电子设备200(又称为第二电子设备)。其中,电子设备100可以通过无线通信方式(例如,无线保真(wirelessfidelity,Wi-Fi),蓝牙等)和电子设备200建立无线连接。电子设备100可以通过无线连接向电子设备200传输文件数据,或者,电子设备100可以将应用界面投屏至电子设备200上显示等。在通信***10中,可以使用实时流传输协议(RealTime StreamingProtocol,RTSP)控制实时数据的传输。RTSP是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制。电子设备100可以通过RTSP控制数据流的传输。
例如,在利用在Wi-Fi点对点(peertopeer,P2P)技术进行投屏业务时,电子设备100可以将压缩之后的H.264格式的视频或高级音频编码(advanced audio coding,AAC)格式的音频混合成传输流(transportstream,TS)文件,并使用RTSP协议将该TS文件通过Wi-FiP2P发送给电子设备200,电子设备200通过RTSP协议接收来自电子设备100的TS文件并解码播放。其中,H.264是视频编解码协议,ACC是音频编解码协议。
其中,在本申请实施例中,电子设备100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备等等。
电子设备200可以是电视机、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机、上网本,增强现实设备、虚拟现实设备、人工智能设备、车载设备、智能家居设备等等。
在一种可能的实现方式中,电子设备100还可以通过转接设备连接电子设备200。其中,转接设备包括可以插接数据线的通用串行总线(universal serial bus,USB)接口,数据线的Type-c接口,电子设备100可以通过数据线插接在转接设备上。转接设备还可以通过转接线连接电子设备200,该转接线可以包括高清晰度多媒体接口(highdefinitionmultimediainterface,HDMI)连接线、视频图形阵列(videographicsarray,AGI)连接线、数字视频接口(digitalvisualinterface,DVI)连接线等中的任一个。其中,本申请实施例中的转接设备可以为移动终端高清连接(mobilehighdefinitionlink,MHL)设备,该MHL设备可以将电子设备100(如手机)中的音频或视频信号同时传输到电子设备200上显示。其中,电子设备100可以作为主控设备,电子设备200可以作为电子设备100的从设备。电子设备100和电子设备200建立连接后,电子设备100相当于拥有了两个显示器,一个是电子设备100自身的触控屏,另一个是与其连接的电子设备200的显示器。
下面介绍本申请实施例中提供的一种电子设备的硬件结构示意图。
图2A示出了电子设备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,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器,图像信号处理器(imagesignal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signalprocessor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I1C)接口,集成电路内置音频(inter-integrated circuitsound,I1S)接口,脉冲编码调制(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,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括1G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194投屏页面或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯***(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位***(global positioning system,GPS),全球导航卫星***(global navigation satellite system,GLONASS),北斗卫星导航***(beidounavigation satellite system,BDS),准天顶卫星***(quasi-zenith satellitesystem,QZSS)和/或星基增强***(satellite based augmentation systems,SBAS)。
电子设备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 dot lightemitting 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,MPEG1,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
当压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。陀螺仪传感器180B可以用于确定电子设备100的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器,可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。骨传导传感器180M可以获取振动信号。按键190包括开机键,音量键等。马达191可以产生振动提示。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。
接下来介绍本发明实施例提供的电子设备100的软件结构图。
电子设备100的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android***为例,示例性说明电子设备100的软件结构。
图2B是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2B所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,投屏等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2B所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,资源管理器,图像合成器API,多媒体编码器API等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
图像合成器API可以调用相关服务进程将各层UI数据合成一个图层,可配合编码器工作。图像合成模块API还可以得到投屏界面是否发生改变。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
多媒体编码器API可以调用相关服务进程创建特定类型(例如“video/avc”等音视频文件类型)的编码器/解码器。例如,多媒体编码器可以基于H.264视频编解码协议对虚拟显示模块合成的图像数据编解码。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
接下来介绍本申请实施例提供的一种电子设备200的硬件结构示意图。
如图3所示,电子设备200可包括:处理器222、存储器223、无线通信模块224、电源开关225、显示屏229、音频模块230。在一些实施例中,电子设备200还可以包括有线LAN通信处理模块226、高清晰度多媒体接口(high definition multimedia interface,HDMI)通信处理模块227、USB通信处理模块228等。上述各个模块可通过总线连接。其中:
处理器222可用于读取和执行计算机可读指令。具体实现中,处理器222可主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责执行定点或浮点算数运算操作、移位操作以及逻辑操作等,也可以执行地址运算和转换。寄存器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。具体实现中,处理器222的硬件架构可以是专用集成电路(ASIC)架构、MIPS架构、ARM架构或者NP架构等等。
在本申请实施例中,处理器222可以用于解析无线通信模块224接收到的信号,如电子设备100发送的新URL,根据该新的URL获取播放列表中的多个视频和关联视频。
无线通信模块224可以包括WLAN通信处理模块。可选的,无线通信模块224还可包括蓝牙(BT)通信处理模块、NFC处理模块、蜂窝移动通信处理模块(未示出)等等。
在本申请实施例中,无线通信模块224可用于和电子设备100建立通信连接。无线通信模块224和电子设备100建立的通信连接可以为多种。例如,WLAN通信处理模块可用于和电子设备100建立Wi-Fi直连通信连接,蓝牙(BT)通信处理模块可用于和电子设备100建立蓝牙通信连接,NFC处理模块可用于和电子设备100建立NFC连接等等。
在本申请实施例中,无线通信模块224还可以用于和电子设备100建立通信连接,并基于该通信连接接收电子设备100发送的视频流。无线通信模块224和电子设备100建立的通信连接可以基于HTTP协议进行数据传输,本申请对设备间的通信连接类型、数据传输协议不作任何限制。
存储器223与处理器222耦合,用于存储各种软件程序和/或多组指令。具体实现中,存储器223可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器223可以存储操作***,例如uCOS、VxWorks、RTLinux等嵌入式操作***。存储器223还可以存储通信程序,该通信程序可用于与电子设备100,一个或多个服务器,或附加设备进行通信。
电源开关225可用于控制电源向电子设备200的供电。
有线LAN通信处理模块226可用于通过有线LAN和同一个LAN中的其他设备进行通信,还可用于通过有线LAN连接到WAN,可与WAN中的设备通信。
HDMI通信处理模块227可用于通过HDMI接口(未示出)与其他设备进行通信。
USB通信处理模块228可用于通过USB接口(未示出)与其他设备进行通信。
显示屏229可用于投屏页面,视频等。显示屏229可以采用LCD、OLED、AMOLED、FLED、QLED等显示屏。显示屏229所显示的内容可参考后续方法实施例的相关描述。
在本申请实施例中,显示屏229可以根据无线通信模块224接收到服务器300发送的播放列表和关联视频等多个视频的视频流,来实现连续播放多个视频。
音频模块230。音频模块230可用于通过音频输出接口输出音频信号,这样可使得大屏显示设备200支持音频播放。音频模块230还可用于通过音频输入接口接收音频数据。音频模块230可包括但不限于:麦克风、扬声器、受话器等等。
在一些实施例中,电子设备200还可以包括RS-232接口等串行接口。该串行接口可连接至其他设备,如音箱等音频外放设备,使得显示器和音频外放设备协作播放音视频。
可以理解的是图3示意的结构并不构成对电子设备200的具体限定。在本申请另一些实施例中,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
在一些实施例中,电子设备200可以包括上述图1中所示的电子设备100包括的硬件。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
图4A-图4I示出了本申请实施例提供的一组投屏场景的界面示意图。
在一些应用场景中,电子设备100和电子设备200建立第一连接后,电子设备100可以将多个应用界面合成一帧投屏图像帧,电子设备100还可以识别投屏图像帧中与上一帧投屏图像帧相比发生变化的区域(脏区域范围)。电子设备100可以将投屏图像帧和脏区域范围等数据都发送给电子设备200,电子设备200可以对投屏图像帧进行相关的处理并显示。同时,电子设备100可以和电子设备200之间无缝共享图片或视频等文件,用户还可以在电子设备200上通过输入设备快速处理电子设备100的消息和文件。首先,电子设备200可以显示任意界面(例如,桌面),当接收到电子设备100的投屏请求后,电子设备200可以在当前界面的上方显示投屏窗口,该投屏窗口中显示电子设备100投屏的应用界面。电子设备200收到并同意电子设备100的投屏请求后,电子设备200可以接收电子设备100的应用界面并显示。
示例性的,如图4A所示,电子设备100可以显示下拉菜单窗口410。其中,该下拉菜单窗口410可以包括无线投屏控件411和其他功能的开关控件(例如,WLAN开关控件、蓝牙控件、飞行模式开关控件、自动旋转开关控件、手电筒开关控件,等等)。该无线投屏控件411可用于触发电子设备100与其他设备建立WLAN直连,并将电子设备100上的显示数据,发送至其他设备上显示。电子设备200可以显示用户界面400,该用户界面400可以显示包括但不限于此电脑等图标。
电子设备100可以接收用户针对无线投屏控件411的输入操作(例如单击),响应于该操作,电子设备100显示可以显示如图4B所示的设备选择界面420。
如图4B所示,该设备选择界面420中可以包括一个或多个设备选项,其中,该一个或多个设备选项中包括有电子设备200对应的设备选项421。该电子设备200的设备名称可以是“HUAWEI PC”,该设备选项421上可以显示有电子设备200的设备名称(例如,“HUAWEIPC”)。
电子设备100可以接收用户针对该设备选项421的输入(例如单击),响应于该输入,电子设备100可以向电子设备200发送投屏连接请求。电子设备200在接收到该投屏连接请求后,可以显示如图4C所示的投屏提示窗口431。
如图4C所示,电子设备200上显示的提示窗口431可以包括确认控件432、拒绝控件433和文字提示434。该文字提示434可用于提示用户在电子设备200上确认是否接受电子设备100的投屏请求。例如,该文字提示可以为“电子设备HUAWEIPHONE请求建立投屏连接,是否同意?”。该确认控件432可用于触发电子设备200接受电子设备100的投屏连接请求。该拒绝控件433可用于触发电子设备200拒绝电子设备100的投屏连接请求。
电子设备200可以接收用户作用于该确认控件432的输入(例如单击),响应于该输入,电子设备200可以与电子设备100建立WLAN直连。在电子设备100与电子设备200建立WLAN直连之后,电子设备100可以实时将电子设备100的屏幕上显示的画面,通过WLAN直连投射到电子设备200的屏幕上显示。具体的,电子设备100可以将包括投屏图像帧1和脏区域范围信息1的投屏数据发送给电子设备200,电子设备200可以将脏区域范围内的图像裁剪、渲染并在投屏窗口中显示。
示例性的,如图4D所示,电子设备100的屏幕上当前显示有设备选择界面420。电子设备100可以将该设备选择界面420投屏至电子设备200上显示。其中,电子设备200上可以显示有投屏窗口451、投屏窗口功能菜单456。其中,投屏窗口功能菜单456为投屏窗口451的功能菜单。该投屏窗口功能菜单456包括最小化窗口控件453、最大化窗口控件454和关闭窗口控件455。其中,最小化窗口控件453可用于将投屏窗口451最小化。最大化窗口控件454可用于将投屏窗口451最大化。关闭窗口控件455可用于关闭投屏窗口451。每个投屏窗口可以对应一个投屏窗口功能菜单。投屏窗口451可以显示投屏页面452。
其中,投屏页面452的内容和电子设备100的设备选择界面42的内容相同。电子设备200可以接收用户针对投屏页面452的输入,将输入信息(包括用户输入的位置信息和输入动作信息)发送至电子设备100,电子设备100可以根据收到的输入信息,做出相应的响应并更新设备选择界面420。电子设备100还可以将更新后的设备选择界面420的画面发送给电子设备200。电子设备200收到电子设备100发送的画面后,可以在投屏窗口451中显示更新后的设备选择界面420的画面。
电子设备100可以接收用户的输入(例如上划),响应于该输入,电子设备100可以显示如图4E所示的用户界面460。电子设备100可以将包括投屏图像帧2和脏区域范围信息2的投屏数据发送给电子设备200,电子设备200可以将脏区域范围内的图像裁剪、渲染并在投屏窗口中显示。
示例性的,如图4E所示,该用户界面460可以包括备忘录图标461和视频图标462、通讯录图标和信息图标。其中,备忘录图标461可以用于开启“备忘录”应用程序,显示“备忘录”应用程序的界面。视频图标462可以用于开启“视频”应用程序,显示“视频”应用程序的界面。用户界面460还可以包括页面指示符,应用程序图标可以分布在多个页面,页面指示符可用于只是用户当前浏览的是哪一个页面中的应用程序。用户可以左右滑动用户界面460的区域,来浏览其他页面。用户界面460可以是主界面。电子设备100可以将该用户界面460投屏至电子设备200上显示。
电子设备200可以显示有投屏窗口451,该投屏窗口451可以显示投屏页面471。其中,投屏页面471的内容和电子设备100的用户界面460的内容相同。投屏页面471包括备忘录图标473,视频图标474等。其中,备忘录图标473可以参见备忘录图标461。视频图标474可以参见视频图标462。
电子设备200可以接收用户针对视频图标474的输入(例如长按),响应于该输入,电子设备200可以将该输入操作对应的输入信息(该输入信息包括输入操作的位置和类型)发送给电子设备100。电子设备100响应于该输入信息,可以显示菜单窗口463。之后,电子设备100可以将包括投屏图像帧3和脏区域范围信息3的数据发送给电子设备200,电子设备200可以将脏区域范围内的图像裁剪、渲染并在对应的投屏窗口中显示。电子设备200可以显示如图4F所示的投屏页面472。投屏页面472的内容和电子设备100当前显示的用户界面460的内容相同。
如图4F所示,投屏页面472包括备忘录图标473,菜单窗口475等等。其中,菜单窗口475可以包括但不限于新窗口打开选项476,搜索全网选项,热门看点选项。
电子设备200可以接收用户针对的新窗口打开选项476输入(例如单击),响应于该输入。其中,电子设备200可以先将该输入信息发送给电子设备100,电子设备100响应于该输入,可以将视频应用界面和主界面合成一帧投屏图像帧4。电子设备100可以将包括投屏图像帧4和脏区域范围信息4的数据发送给电子设备200,电子设备200可以将脏区域范围内的图像裁剪、渲染并在对应的投屏窗口中显示。(例如图4G所示投屏页面482,投屏页面473)。电子设备200还可以将画面中脏区域范围外的画面舍去并在对应的投屏窗口中显示上一帧投屏页面。其中,针对脏区域范围的说明可以参考后续实施例,在此不赘述。
如图4G所示,电子设备200显示用户界面400,其中,该用户界面400包括投屏窗口451和投屏窗口481。投屏窗口451显示投屏页面473,投屏页面473的内容和电子设备100当前显示的用户界面460的内容相同。投屏窗口481显示投屏页面482。其中,投屏页面482为电子设备100发送的实时的视频应用界面的画面。投屏页面482包括播放窗口483,该播放窗口483正在播放视频。
电子设备200可以接收用户的输入操作(例如拖拽备忘录图标)。响应于该输入操作,电子设备200可以先将该该输入操作对应的输入信息发送给电子设备100。电子设备100响应于该输入信息,可以将备忘录应用界面,视频应用界面和主界面合成一帧投屏图像帧A(例如图8A所示投屏图像帧800)。电子设备100还可以标记该投屏图像帧A的脏区域范围,得到脏区域范围信息A。电子设备100还可以基于RTSP协议封装该脏区域范围信息A。之后,电子设备100可以将投屏数据A发送给电子设备200。其中,该投屏数据A中包括投屏图像帧A、投屏图像帧A中多个投屏页面的位置信息和脏区域范围信息A。电子设备200接收到电子设备100发送的投屏数据A后,电子设备200可以将投屏图像帧A中脏区域范围内的显示数据(如图8A所示显示数据801、显示数据802和显示数据803)裁切出来并在对应的投屏窗口中渲染显示(例如图4H所示投屏页面484,投屏页面492和投屏页面474)。
如图4H所示,电子设备200显示用户界面400,其中,该用户界面400包括投屏窗口451,投屏窗口481和投屏窗口491。其中,投屏窗口451显示投屏页面474。投屏页面474相比于投屏页面473,还显示了弹窗475。投屏窗口481显示投屏页面484。其中,投屏页面484为电子设备100发送的实时的视频应用界面的画面。投屏页面484可以包括播放窗口485,该播放窗口485正在播放视频。投屏窗口491显示投屏页面492。其中,投屏页面492为电子设备100发送的实时的备忘录应用界面的画面。该投屏页面492可以包括新建控件495,该新建控件495可用于新建笔记。
电子设备200可以接收用户针对新建控件495输入操作(例如单击),响应于该输入。其中,电子设备200可以先将该输入操作对应的输入信息发送给电子设备100,电子设备100响应于该输入信息,可以将备忘录应用界面,视频应用界面和主界面合成一帧投屏图像帧B(例如图8B所示投屏图像帧810)。电子设备100还可以确定出该投屏图像帧B中的脏区域范围,得到脏区域范围信息B。电子设备100可以将投屏数据B发送给电子设备200。其中,该投屏数据B中包括投屏图像帧B、投屏图像帧B中多个投屏页面的位置信息和脏区域范围信息B。电子设备200在接收到电子设备100发送的投屏数据B后,电子设备200可以将投屏图像帧中处于脏区域范围内的投屏页面裁切出来,并在该处于脏区域范围内的投屏页面对应的投屏窗口中显示。
电子设备200还可以将投屏图像帧中脏区域范围外的投屏页面舍去并在该投屏页面对应的投屏窗口中显示上一帧投屏页面。
如图4I所示,电子设备200在接收到电子设备100发送的投屏数据B后,可以从投屏数据B获取到投屏图像帧B、多个投屏窗口对应的显示数据的位置信息以及脏区域范围信息B。电子设备200可以基于投屏图像帧B、显示数据的位置信息以及脏区域范围信息B,从投屏图像帧B中裁剪出处于脏区域范围内的图8B所示显示数据811和显示数据812。电子设备200将显示数据811渲染成投屏页面493,并将投屏页面493显示在投屏窗口491中。电子设备200可以将显示数据812渲染成投屏页面486,并将投屏页面486显示在投屏窗口481中。其中,由于投屏图像帧B中显示数据813相比显示数据803没有发生变化,处于脏区域范围之外。电子设备200可以继续在投屏窗口451中显示上一帧的投屏页面474。其中,投屏页面486为电子设备100发送的视频应用界面的实时的画面。投屏页面486可以包括播放窗口487,该播放窗口487正在播放视频。投屏窗口491显示投屏页面493。其中,投屏页面493为电子设备100发送的实时的备忘录应用界面的画面。该投屏页面493为笔记编辑页面。
通过本申请实施例中提供的一种投屏方法,电子设备100可以在预定时间(例如5ms)之后就合成新的投屏画面并将投屏画面发送给电子设备200。当指定投屏窗口的显示内容发生变化时(例如,当指定投屏窗口显示的内容包括图形交换格式(graphicsinterchange format,GIF)动图或正在播放的视频时,该投屏窗口的显示内容会发生变化,或者,当指定投屏窗口的部分功能控件被用户选中,该投屏窗口显示的内容也会发生变化),其余的投屏窗口的显示内容保持不变。其中,无论某个投屏窗口的显示内容是否发生改变,若电子设备200都渲染显示每个投屏窗口的画面,就会造成GPU资源的浪费。因此,电子设备100可以将脏区域范围、投屏图像帧等数据发送给电子设备200。电子设备200可以解析脏区域范围,对脏区域范围内的投屏窗口的投屏页面进行实时的更新。由于电子设备200只更新脏区域范围内的图像,可以有效降低GPU的使用率,降低投屏时画面卡顿的几率。
图5示出了本申请实施例提供的一种投屏方法的流程示意图,该流程图可以应用于上述通信***10中。
如图5所示,本申请实施例提供的一种投屏方法可以包括以下步骤:
1、电子设备100可以获取投屏的一个或多个投屏窗口的显示数据,将该显示数据写入指定存储区。例如,如图4I所示,电子设备100获取投屏窗口451的显示数据(主界面数据),投屏窗口481的显示数据(视频应用界面数据)和投屏窗口491的显示数据(备忘录应用界面数据),并将三个投屏窗口的显示数据写入电子设备100的指定存储区中。
2、电子设备100可以将一个或多个投屏窗口的显示数据合成为一帧投屏图像帧。在此过程中,电子设备100会在指定存储区中取出相关的显示数据。将其合成一帧投屏图像帧,并将投屏图像帧写入指定存储区,并记录一个或多个投屏窗口对应的投屏页面的位置信息。同时,电子设备100可以得到投屏图像帧的脏区域范围。例如,电子设备100可以在共享属性区域中添加脏区域范围属性。电子设备100可以在合成投屏图像帧时,和上一帧投屏图像帧做对比,得到画面发生变化的区域。并将得到的画面发生变化的区域写入共享属性区域的脏区域范围属性中。
示例性的,电子设备100生成如图8A所示的投屏图像帧800后,电子设备100可以记录该投屏图像帧中三个投屏页面的位置信息。电子设备100可以记录显示数据801的四边和预设坐标轴(电子设备100设定的投屏图像帧中x-y平面坐标轴)的距离。例如,电子设备100可以记录显示数据801的位置信息为(20像素值,180像素值,15像素值,70像素值),这四个值分别代表显示数据801下边和x轴的距离,显示数据801的上边和x轴的距离,显示数据801左边和y轴的距离,显示数据801右边和y轴的距离。
其中,图6示出了本申请实施例提供的脏区域范围示意图。
示例性的,图6可以显示出图4I所示电子设备100得到的投屏图像帧B(图8B所示投屏图像帧810)相对于图4H所示电子设备100得到的投屏图像帧A(图8A所示投屏图像帧800)中发生变化的区域。相对于显示数据801,显示数据811不同,可以标记为脏区域601。相对于显示数据802,显示数据812的部分内容不同(播放窗口的内容发生了变化),可以标记为脏区域602。显示数据813和显示数据803相同,可以不标记为脏区域,即图6所示非脏区域603。在本申请实施例中,当一个页面的一部分为脏区域范围,就标记该页面处于脏区域范围。故而,电子设备100可以得到投屏图像帧B的脏区域范围信息B,脏区域范围信息B可以表示显示数据811和显示数据812处于脏区域范围内,显示数据813不处于脏区域范围内。
接下来介绍电子设备100合成投屏图像帧的过程。
本申请实施例提供一种合成投屏图像帧的方式。其中,电子设备100的应用程序可以调用显示合成(SurfaceFlinger)服务把经过测量、布局和绘制后的画面(Surface)合成为一帧投屏图像帧。该SurfaceFlinger***服务负责管理显示屏幕,它具有合成Surface的功能,能够将各种应用程序的2Dsurface、3D surface进行组合。
在本申请实施例中,可以将Surface理解为应用程序的一个窗口。应用程序的每个窗口对应一个画布(canvas),即Surface。应用程序窗口的每次变化都伴随着Surface的内容的更新。电子设备100可以生成一个缓存列表,电子设备100可以将应用程序更新的显示数据写入缓存列表。Surface内容的更新涉及到缓存列表的生成和消费。
如图7所示,其中,在处理显示数据的过程中,应用程序的进程作为生产者,可以生成应用程序的显示数据。之后,电子设备100可以将应用程序的显示内容写入共享显示内存中。之后,SurfaceFlinger***服务作为消费者,可以取出共享显示内存中的显示数据,将显示数据合成为一帧投屏图像帧。该生产消费的过程是循环发生的,直至生产者不再合成数据,消费者将共享显示内存中的显示数据全部取出。
之后,电子设备100的SurfaceFlinger***服务可以作为生产者,电子设备100可以调用该服务将投屏图像帧写入缓存,电子设备100可以将该缓存加入缓存队列(这个操作可称为入队)。电子设备100的多媒体编码器作为消费者,电子设备100可以调用多媒体编码器占用缓存列表中,写入了投屏数据的缓存。当多媒体编码器取出缓存内的数据进行编码后,电子设备100可以释放该缓存的数据,再会将空白的缓存取出缓存队列(这个操作可称为出队)。之后,电子设备100又可以将投屏图像帧写入空白的缓存,再将该缓存加入缓存队列。图7所示的过程会交替循环发生,直至生产者停止工作,消费者释放所有缓存。
其中,电子设备将投屏图像帧的数据写入缓存队列时,电子设备100可以对比每个应用程序的显示内容和上一帧相比是否发生了变化(例如,电子设备100可以对两张图片从上之下进行逐行像素对比,得到图像变化的范围)。电子设备100可以将得到的脏区域范围写入缓存列表的共享属性区域。这个过程可以分为以下几个步骤:
(1)扩展缓存列表的属性字段,添加脏区域范围(dirty_region)属性,该操作可以通过以下代码程序实现:
上述结构体attr_region列出了缓存列表的各属性字段。其中,crc_src_rect和crc_vals可以用于存储校验码。write_magic和write_padding可用于设置图片边框。crop_bottom,crop_left,crop_top和crop_right属性可用于标记图片位置。use_yuv_transform可用于指定图片的编码方式等等。
其中,dirty_region是一个数组,可用于标记脏区域范围。因为多个应用的界面是按照水平方向排列的,例如,如图8A所示的投屏图像帧800。因此只需要标记每个应用的界面区域是否发生了变化。如果发生了变化(脏区域范围)就将其值赋为1,没有变化(非脏区域范围)就将其值赋为0。
在此,给dirty_region属性赋值的操作可以由以下程序代码实现。
上述程序首先获取脏区域范围的数组,将其赋值给dirtyRegion属性。之后,用常量指针指向数据流的开始和结束,获取投屏图像帧的高度。之后,将脏区域范围属性dirty_region初始化赋值为0。然后使用while循环遍历数据流,得到脏区域范围(又称为脏区域范围信息)。
示例性的,在图4H-图4I所示场景中。首先,电子设备100生成了一帧如图8A所示的投屏图像帧800。电子设备100首先将备忘录应用界面数据,视频应用界面数据和主界面数据写入指定存储区,再调用相关进程(例如,SurfaceFlinger)将多个应用程序的显示数据合成一帧投屏图像帧800。该投屏图像帧800包括显示数据801,显示数据802和显示数据803。同时,电子设备100可以记录投屏图像帧中上述三个页面的位置信息。之后,电子设备100可以将投屏图像帧800写入共享缓存,以便多媒体编码器对投屏数据进行编码操作。电子设备100可以将投屏图像帧800发送至电子设备200切割、渲染并显示。之后,电子设备100生成了一帧如图8B所示的投屏图像帧810。该投屏图像帧810包括显示数据811,显示数据812和显示数据813。电子设备100可以将投屏图像帧810和上一帧投屏图像帧800做对比,得到投屏图像帧810相对于上一帧投屏图像帧800发生变化的区域(脏区域范围)。电子设备100可以得到显示数据811和显示数据812处于脏区域范围,显示数据813没有处于脏区域范围。故而,电子设备100可以显示数据811和显示数据812的dirty_region值为1,显示数据813的dirty_region值为0。之后,电子设备100可以将包括脏区域范围属性的脏区域范围信息和投屏图像帧810一起发送给电子设备200。电子设备200可以将显示数据811和显示数据812裁剪、渲染并显示。
3、电子设备100可以使用多媒体编码器对得到的投屏图像帧进行编码。其中,电子设备100控制多媒体编码器使用H.264视频编解码协议对图像编解码,H.264又可以被称为高级视频编码(advanced video coding,MPEG-4AVC),电子设备100也可以使用其他视频编解码协议。可选的,电子设备100可以截取并压缩各个应用正在播放的音频,其中,该音频的压缩格式可以为高级音频编码。
具体的,如图9所示,该图9示出了本申请实施例提供的图像编码模块流程图。具体步骤如下。
S901,多媒体编码器创建编码器,初始化相关参数。
电子设备100可以使用createEncoderByType函数创建编码器。创建编解码器后,电子设备100可以通过调用setCallback函数接口设置一个回调方法,在编码器完成编码任务后电子设备100就执行程序回调操作。之后,电子设备100可以使用指定的媒体格式配置编解码器,并对相关的参数进行初始化(例如,颜色格式)。电子设备100的多媒体编码器可以支持对多种数据类型编解码,例如,压缩的音视频据、原始音频数据和原始视频数据。电子设备100可以在配置(Configured)状态下查询输入和输出格式的结果。在开始编解码前可以通过这个结果来验证配置的结果。
S902,多媒体编码器创建输入Surface实例。
电子设备100可以在配置编码器(encoder)后调用createInputSurface函数接口创建一个输入Surface实例,该Surface实例可以用于输入虚拟显示模块的投屏图像帧。
S903,虚拟显示模块创建虚拟显示器实例。
电子设备100调用虚拟显示模块的createVirtualDisplay函数接口创建虚拟显示器实例,虚拟显示器实例包括***配置的可用缓存的地址。
S904,多媒体编码器调用虚拟显示模块的虚拟显示器实例。
多媒体编码器调用虚拟显示模块的虚拟显示器实例得到可用缓存区域的地址。多媒体编码器可以调用setInputSurface方法给创建的输入Surface实例配置编码器输出结果的缓存地址,该地址为虚拟显示器实例提供的可用缓存区域的地址。虚拟显示模块调用图像合成模块合成投屏图像帧,写入缓存区。输入Surface实例可以将缓存区的数据提供给编码器。
S905,多媒体编码器开始数据编码,写入脏区域范围信息。
电子设备100调用start方法,编码器可以从缓冲区(buffer)取出数据并编码。编码器在进行H.264编码投屏界面数据时,会从指定缓存列表的共享内存区域取出脏区域范围,将脏区域范围基于传输协议封装,写入数据流文件。当不需要立即向编码器重新提交或释放buffer时,保持对输入或输出buffer的所有权可使编码器停止工作。特别地,编码器可能延迟产生输出buffer直到输出的buffer被释放或重新提交。
S906,多媒体编码器工作完成后,程序回调。
当编码器编码完成后,电子设备100进行程序回调,即电子设备100可以通过回调方法onOutputBufferAvailable返回结束流(end-of-stream)标记,输入Surface停止向编码器提交数据。可以在最后一个有效的输出buffer中设置或者在最后一个有效的输出buffer后添加一个空的buffer来设置。
S907,得到输出结果。
编码器完成投屏数据的编码,得到数据流文件。其中,该数据流文件中包括有投屏图像帧、位置信息、以及基于RTSP协议封装的脏区域范围信息。
S908,数据传输。
电子设备100将数据流文件传输到电子设备200。
4、电子设备100将编码后的图像/音频生成数据流文件。
其中,该数据流文件中包括投屏图像帧,投屏图像帧的脏区域范围信息以及投屏图像帧中投屏窗口对应的显示数据的位置信息。
例如,电子设备100可以对投屏图像帧800进行编码,之后,将编码后的投屏图像帧800写入数据流文件。
5、电子设备100可以使用实时流传输协议将上述数据流文件通过WLAN直连发送给电子设备200。
6、电子设备200通过实时流传输协议接收来自电子设备100的数据流文件。
7、电子设备200将数据流文件解码,得到投屏图像帧。
8、电子设备200可以对投屏使用的协议进行解析,得到脏区域范围信息,再根据脏区域范围信息以及每个页面在投屏图像帧中的位置和尺寸,将脏区域范围内的各个页面的图像分割出来。
示例性的,投屏图像帧为如图8B所示的投屏图像帧810,电子设备200可以获取该投屏图像帧810中三个投屏页面的范围,以及该投屏页面是否处于脏区域范围。由上述步骤可以得到,显示数据811和显示数据812的dirty_region值为1,显示数据813的dirty_region值为0。故而,电子设备200可以识别出显示数据811和显示数据812处于脏区域范围,显示数据813处于非脏区域范围。电子设备200会将显示数据811和显示数据812的图像切割并写入指定存储区。
9、电子设备200将切割好的图像送到图形处理器(graphics processing unit,GPU),由图形处理器渲染得到的脏区域范围的页面并送到各自对应的投屏窗口显示。电子设备200将非脏区域范围的页面舍去后,电子设备200会控制该页面对应的投屏窗口继续显示之前的画面。
示例性的,如图4I所示,电子设备200显示用户界面400,其中,该用户界面400包括投屏窗口451,投屏窗口481和投屏窗口491。其中,投屏窗口451显示投屏页面473。投屏窗口481显示投屏页面486。投屏窗口491显示投屏页面493。其中,投屏窗口481和投屏窗口491显示的页面都处于脏区域范围,所以投屏页面486和投屏页面493为电子设备200渲染显示的。投屏窗口451显示的页面不处于脏区域范围,所以电子设备200沿用的上一帧投屏页面473。
这样,由于电子设备100识别并标记了脏区域范围,在电子设备100发送投屏数据时,将脏区域范围属性同时发送给电子设备200。电子设备200就可以检测到哪些投屏窗口的显示数据没有改变,就可以重复使用GPU渲染的图像。电子设备200可以节省GPU的运算时间,避免投屏时画面卡顿。
接下来介绍本申请实施例提供的一种投屏方法的内部实现流程图。
图10示出了发送端设备(例如,电子设备100)得到投屏图像帧,发送端设备向接收端设备(例如,电子设备200)传输投屏图像帧,接收端设备显示来自发送端设备的投屏图像帧的。其中,发送端设备可以是手机、平板等电子设备,接收端设备可以是平板、电脑等电子设备。
发送端设备可以包括图像合成器API、虚拟显示模块和多媒体编码器。
其中,虚拟显示模块可以包括VirtualDisplay模块,该模块可以为图像合成器API和多媒体编码器API提供指定存储区的地址。
图像合成模块API可以调用SurfaceFlinger模块,该SurfaceFlinger模块被调用后,可以将多个应用界面合成一帧投屏图像帧,并对比投屏图像帧和上一帧投屏图像帧的区别,将发生了变化的应用界面标记为脏区域范围。
多媒体编码器API可以调用MediaCodec模块,该MediaCodec模块可以编码投屏图像帧,生成数据流文件,该数据流文件包括脏区域范围信息(脏区域范围信息可以用于让电子设备200识别脏区域范围内的显示数据)。发送端电子设备编码完成后可以通过RTSP协议将生成的传输文件发送给接收端设备。
接收端设备可以包括显示管理模块。显示管理模块可以解码数据流文件,解析脏区域范围。将脏区域范围的应用界面送到GPU渲染显示。对于非脏区域范围的应用界面,接收端电子设备不会发送给GPU,接收端电子设备会继续显示上一帧投屏界面。
接下来介绍本申请实施例提供的方法流程示意图。
图11示出了电子设备100向电子设备200投屏的方法流程图。
S1101,电子设备100和电子设备200建立第一连接。
当电子设备100和电子设备200建立第一连接后,电子设备100可以向电子设备200传输文件数据,或者,电子设备100可以将应用界面投屏至电子设备200上显示。
其中,第一连接可以是无线连接或有线连接。当第一连接为无线连接时,第一连接可以是Wi-Fi direct连接、Wi-Fi LAN连接或Wi-Fi softAP连接中的任一种。
S1102,电子设备100可以将第一显示数据和第二显示数据绘制在投屏图像帧A(又称为第一投屏图像帧)中,电子设备100还可以将包括投屏图像帧A的投屏数据A写入数据流文件1。
电子设备100获取多个投屏窗口的显示数据,合成投屏图像帧A。电子设备100使用指定编解码协议(例如H.264)对投屏图像帧A进行编码,得到数据流文件1。
具体的,电子设备100可以获取第一投屏窗口(例如,图4H所示的投屏窗口481)对应的第一显示数据(例如,图8A所示显示数据801)和第二投屏窗口(例如,图4H所示投屏窗口451)对应的第二显示数据(例如,图8A所示显示数据803)。电子设备100将第一显示数据和第二显示数据拼绘制在投屏图像帧A(例如,图8A所示投屏图像帧800)中,并记录下第一投屏窗口对应的第一显示数据在该投屏图像帧A中的位置信息,第二投屏窗口对应的第二显示数据在该投屏图像帧A中的位置信息以及脏区域范围信息A。其中,第一显示数据和第二显示数据都处于脏区域范围。
之后,电子设备100可以对投屏图像帧A等进行编码,得到数据流文件1。
示例性的,电子设备100得到投屏图像帧A后,电子设备100可以对比图4G中的投屏图像帧4和投屏图像帧A,电子设备100可以得到投屏图像帧A中的脏区域范围信息A。其中,电子设备200可以通过脏区域范围信息A得到显示数据801、显示数据802和显示数据803都处于脏区域范围。电子设备100可以将投屏图像帧A、投屏图像帧A中投屏页面的位置信息和脏区域范围信息A等都写入数据流文件1中,并将数据流文件1发送给电子设备200。
S1103,电子设备100向电子设备200发送数据流文件1。
其中,该数据流文件1可以包括投屏图像帧A和多个投屏窗口的对应的显示数据在投屏图像帧A中的位置信息以及脏区域范围信息A。
S1104,电子设备200从投屏图像帧A中裁剪得到第一显示数据和第二显示数据。
电子设备200在接收到数据流文件1后,可以解码数据流文件1,得到投屏图像帧A和显示数据在投屏图像帧A中的位置信息。基于多个投屏窗口对应的显示数据在投屏图像帧A中的位置信息和脏区域范围信息A,从投屏图像帧A中裁剪得到第一显示数据和第二显示数据。
S1105,电子设备200可以基于第一显示数据,在第一投屏窗口中渲染显示第一投屏页面,基于第二显示数据在第二投屏窗口中渲染显示第二投屏页面。
电子设备200基于裁剪得到的显示数据通过GPU渲染得到对应的投屏页面,并将各投屏窗口对应的投屏页面存入缓存中。
具体的,电子设备200可以基于第一显示数据生成第一投屏页面(例如图4H所示投屏页面492),并在第一投屏窗口中显示。基于第二显示数据生成第二投屏页面(例如图4H所示投屏页面474),并在第二投屏窗口中显示。此时,GPU使用率可以为第一阈值。
示例性的,电子设备200接收到电子设备100发送的包括投屏图像帧A(图8A所示投屏图像帧800)的投屏数据之后,电子设备200可以将投屏图像帧A中脏区域范围内的图像(显示数据801、显示数据802、显示数据803)裁剪、渲染并显示,如图4H所示。其中,电子设备200在渲染投屏页面的过程中,检测到GPU使用率为第一阈值(例如80%)。
S1106,电子设备100可以将第三显示数据和第四显示数据绘制在投屏图像帧B(又称为第二投屏图像帧)中,电子设备100还可以得到显示数据在投屏图像帧B中的位置信息,还有投屏图像帧B的脏区域范围信息B。并将包括投屏图像帧B、脏区域范围信息B以及显示数据在投屏图像帧B中的位置信息的投屏数据B写入数据流文件2。
电子设备100获取多个投屏窗口的显示数据,合成投屏图像帧B。电子设备100可以使用指定编解码协议(例如H.264)对投屏图像帧B进行编码,得到数据流文件2。
具体的,电子设备100可以获取第一投屏窗口对应的第三显示数据(例如图8B所示显示数据811)和第二投屏窗口的第四显示数据(例如图8B所示显示数据813)。电子设备100将第三显示数据和第四显示数据绘制在投屏图像帧B中,并记录下第一投屏窗口对应的第三显示数据在该投屏图像帧B中的位置信息,第二投屏窗口对应的第四显示数据在该投屏图像帧B中的位置信息。
同时,电子设备100可以对比投屏图像帧A和投屏图像帧B,得到脏区域范围信息B。电子设备100检测到第三显示数据和第一显示数据不同,则标记第三显示数据处于脏区域范围。电子设备100检测到第四显示数据和第二显示数据相同,则标记第四显示数据不处于脏区域范围。电子设备100得到投屏图像帧B中的脏区域范围信息B后,可以将脏区域范围信息B写入数据流文件2。
示例性的,在图4H-图4I所示场景中。之后,电子设备100得到了投屏图像帧B(图8B所示投屏图像帧810)。电子设备100对比投屏图像帧A和投屏图像帧B,得到投屏图像帧B的脏区域范围信息B。即,电子设备100得到显示数据811和显示数据812都处于脏区域范围,显示数据813不处于脏区域范围。电子设备100可以将投屏图像帧B、投屏图像帧B中投屏页面的位置信息和脏区域范围信息B等都写入数据流文件2中,并将数据流文件2发送给电子设备200。
S1107,电子设备100向电子设备200发送数据流文件2。
其中,该数据流文件2包括投屏图像帧B,多个投屏窗口的对应的显示数据在投屏图像帧B中的位置信息以及脏区域范围信息B。
S1108,电子设备200检测到第三显示数据处于投屏图像帧B中的脏区域范围内,第四显示数据不处于投屏图像帧B中的脏区域范围内,电子设备200从投屏图像帧B中裁剪得到第三显示数据。
电子设备200得到传输流文件2后,可以解码该传输流文件2,得到投屏图像帧B及脏区域范围信息B等。电子设备200可以基于多个投屏窗口对应的显示数据在投屏图像帧B中的位置信息和脏区域范围信息B,裁剪得到的脏区域范围的第三显示数据。
S1109,电子设备200可以基于第三显示数据,在第一投屏窗口中渲染显示出第三投屏页面,在第二投屏窗口中显示已缓存的第二投屏页面。
电子设备200可以将第三显示数据通过GPU渲染得到第三投屏页面(例如,图4I所示投屏页面493),并将第三投屏页面存入缓存。之后,电子设备200可以在第一投屏窗口中显示该第三投屏页面。电子设备200在第二投屏窗口中显示已缓存的上一帧第二投屏页面(例如,图4I所示投屏页面474)。电子设备200可以电子设备200在渲染投屏页面的过程中,检测到GPU使用率为第二阈值。
其中,在默认其他条件不变的情况下,第一阈值大于等于第二阈值。这样,使用本申请实施例提供的投屏方法后,可以有效降低GPU使用率。
示例性的,电子设备200可以将投屏图像帧B中的显示数据811裁剪出来,渲染得到投屏页面493并在投屏窗口491中显示,将显示数据812裁剪出来,渲染得到投屏页面486并在投屏窗口481中显示,在投屏窗口451中继续显示投屏页面474,如图4I所示。其中,电子设备200在渲染投屏页面的过程中,检测到GPU使用率为第一阈值(例如50%)。由于在投屏图像帧B中,只有显示数据811和显示数据812处于脏区域范围,所以电子设备200只需要渲染显示数据811和显示数据812,有效降低了GPU使用率。
在一种可能的实现方式中,电子设备100可以获取电子设备200上第一投屏窗口对应的第一显示数据和电子设备200上第二投屏窗口对应的第二显示数据。电子设备100可以将第一显示数据和第二显示数据发送给电子设备200。电子设备200可以基于第一显示数据在第一投屏窗口中渲染显示出第一投屏页面,基于第二显示数据在第二投屏窗口中渲染显示出第二投屏页面。
之后,电子设备100可以获取电子设备200上第一投屏窗口对应的第三显示数据和电子设备200上第二投屏窗口对应的第四显示数据。电子设备100检测到第三显示数据和第一显示数据不同,第四显示数据和第二显示数据相同。电子设备100可以对比第三显示数据和第一显示数据,得到第三显示数据相比于第一显示数据不同的区域C,并记录区域C的位置信息。电子设备100可以将第三显示数据和第四显示数据以及区域A的位置信息发送给电子设备200。
电子设备200可以基于区域C的位置信息,从第三显示数据中裁剪出区域C中的显示数据。电子设备200可以在第一投屏窗口中显示缓存的第一投屏页面,并在第一投屏页面中区域C的位置处渲染显示得到的区域C中的显示数据。在第二投屏窗口中显示缓存的第二投屏页面。这样,电子设备200可以更加精确地得到两帧投屏图像帧中发生变化的区域,进一步降低GPU使用率。
可选的,电子设备100可以只发送第三显示数据和区域A的位置信息。
可选的,电子设备100可以只发送区域A中的显示数据。
示例性的,如图4H-图4I所示,电子设备100得到了投屏图像帧800。电子设备100将该投屏图像帧800的显示数据发送至电子设备200。电子设备200收到该投屏图像帧800的显示数据后,可以将投屏图像帧800中各投屏窗口对应的显示页面切割并渲染显示。之后,电子设备100得到了投屏图像帧810。电子设备100将投屏图像帧810和投屏图像帧800做对比,可以得到显示页面811的全部图像都发生了变化,标记整个页面范围都是脏区域范围。可以得到显示页面812的部分图像都发生了变化,标记该页面的播放窗口区域为脏区域范围。电子设备100可以记录脏区域范围的位置信息。该位置信息可以包括该脏区域范围的左上角坐标点,脏区域范围的横向距离和脏区域范围的纵向距离。例如,投屏图像帧810的脏区域范围的位置信息可以为(15,180,55,160),(80,170,55,50)。其中,(15,180,55,160)可以表示显示页面811的脏区域范围为从坐标点(15,180)开始向左55像素值,从坐标点(15,180)开始向下160像素值的整个区域。(80,170,55,50)可以表示显示页面812的脏区域范围为从坐标点(80,170)开始向左55像素值,从坐标点(80,170)开始向下50像素值的整个区域。电子设备100可以将投屏图像帧810和脏区域范围的位置信息都发送给电子设备200。电子设备200可以根据收到的脏区域范围的位置信息,将脏区域范围内的图像数据取出渲染并拼接在上一帧投屏图像帧对应的位置。再将拼接后的图像送至对应的投屏窗口显示。
在一种可能的实现方式中,电子设备100可以获取电子设备200上第一投屏窗口对应的第一显示数据和电子设备200上第二投屏窗口对应的第二显示数据。电子设备100可以将第一显示数据和第二显示数据发送给电子设备200。电子设备200可以基于第一显示数据在第一投屏窗口中渲染显示出第一投屏页面,基于第二显示数据在第二投屏窗口中渲染显示出第二投屏页面。之后,电子设备100可以获取电子设备200上第一投屏窗口对应的第三显示数据和电子设备200上第二投屏窗口对应的第四显示数据。电子设备100检测到第三显示数据和第一显示数据不同,第四显示数据和第二显示数据相同。电子设备100可以将第三显示数据发送给电子设备200。电子设备200可以基于第三显示数据在第一投屏窗口中渲染显示出第三投屏页面,并在第二投屏窗口中显示已缓存的第二投屏页面。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (17)
1.一种投屏***,其特征在于,包括:第一电子设备和第二电子设备;其中,
所述第一电子设备,用于获取所述第二电子设备上第一投屏窗口对应的第一显示数据和所述第二电子设备上第二投屏窗口对应的第二显示数据;
所述第一电子设备,还用于将所述第一显示数据和所述第二显示数据发送给所述第二电子设备;
所述第二电子设备,还用于基于所述第一显示数据在所述第一投屏窗口中渲染显示出第一投屏页面,基于所述第二显示数据在所述第二投屏窗口中渲染显示出第二投屏页面;
所述第一电子设备,还用于获取所述第二电子设备上第一投屏窗口对应的第三显示数据和所述第二电子设备上第二投屏窗口对应的第四显示数据;
所述第一电子设备,还用于将所述第三显示数据和所述第四显示数据发送给所述第二电子设备;
所述第二电子设备,还用于当确定出所述第三显示数据与所述第一显示数据不同,且所述第四显示数据与所述第二显示数据相同时,基于所述第三显示数据在所述第一投屏窗口中渲染显示出第三投屏页面,在所述第二投屏窗口中显示已缓存的所述第二投屏页面。
2.根据权利要求1所述的***,其特征在于,所述将所述第一显示数据和所述第二显示数据发给所述第二电子设备,具体包括:
将所述第一显示数据和所述第二显示数据绘制在第一投屏图像帧中,并记录所述第一显示数据在所述第一投屏图像帧中的区域范围以及所述第二显示数据在所述第一投屏图像帧中的区域范围;
将所述第一投屏图像帧、所述第一显示数据在所述第一投屏图像帧中的区域范围以及所述第二显示数据在所述第一投屏图像帧中的区域范围,发送给所述第二电子设备;
所述第二电子设备,还用于:
在基于所述第一显示数据在所述第一投屏窗口中渲染显示出第一投屏页面,基于所述第二显示数据在所述第二投屏窗口中渲染显示出第二投屏页面之前,基于所述第一显示数据在所述第一投屏图像帧中的区域范围从所述第一投屏图像帧中裁剪出所述第一显示数据,基于所述第二显示数据在所述第一投屏图像帧中的区域范围从所述第二投屏图像帧中裁剪出所述第二显示数据。
3.根据权利要求1所述的***,其特征在于,所述将所述第三显示数据和所述第四显示数据发送给所述第二电子设备,具体包括:
将所述第三显示数据和所述第四显示数据绘制在第二投屏图像帧中,并记录所述第三显示数据在所述第二投屏图像帧中的区域范围以及所述第四显示数据在所述第二投屏图像帧中的区域范围;
将所述第一投屏图像帧、所述第一显示数据在所述第一投屏图像帧中的区域范围以及所述第二显示数据在所述第一投屏图像帧中的区域范围,发送给所述第二电子设备;
所述第二电子设备,还用于:
在基于所述第一显示数据在所述第一投屏窗口中渲染显示出第三投屏页面,在所述第二投屏窗口中显示已缓存的所述第二投屏页面之前,基于所述第三显示数据在所述第二投屏图像帧中的区域范围从所述第二投屏图像帧中裁剪出所述第三显示数据。
4.根据权利要求3所述的***,其特征在于,所述第一电子设备,还用于:
确定出第二投屏图像帧中图像内容与所述第一投屏图像帧有差异的脏区域范围;
将所述脏区域范围发送给所述第二电子设备;
所述确定出所述第三显示数据与所述第一显示数据不同,且所述第四显示数据与所述第二显示数据相同,具体包括:
当所述脏区域范围与所述第三显示数据在所述第二投屏图像帧中的区域范围重叠,与所述第四显示数据在所述第二投屏图像帧中的区域范围不重叠时,确定出所述第三显示数据与所述第一显示数据不同,且所述第四显示数据与所述第二显示数据相同。
5.根据权利要求1所述的***,其特征在于,所述第二电子设备,还用于当确定出所述第三显示数据与所述第一显示数据不同,且所述第四显示数据与所述第二显示数据不同时,基于所述第三显示数据在所述第一投屏窗口中渲染显示出第三投屏页面,基于所述第三显示数据在所述第二投屏窗口中渲染显示出第四投屏页面。
6.根据权利要求1所述的***,其特征在于,所述第二电子设备,还用于当确定出所述第三显示数据与所述第一显示数据相同,且所述第四显示数据与所述第二显示数据相同时,在所述第一投屏窗口中显示已缓存的所述第一投屏页面,在所述第二投屏窗口中显示已缓存的所述第二投屏页面。
7.根据权利要求1所述的***,其特征在于,所述第一电子设备,还用于在获取所述第二电子设备上第一投屏窗口对应的第一显示数据和所述第二电子设备上第二投屏窗口对应的第二显示数据之前,与所述第二电子设备建立无线保真Wi-Fi直连;
所述第一电子设备,具体用于通过所述Wi-Fi直连将所述第一显示数据和所述第二显示数据发送给所述第二电子设备;
所述第一电子设备,具体用于通过所述Wi-Fi直连将所述第三显示数据和所述第四显示数据发送给所述第三电子设备。
8.一种投屏方法,应用于第二电子设备,其特征在于,包括:
所述第二电子设备接收第一电子设备发送的第一投屏窗口对应的第一显示数据和第二投屏窗口对应的第二显示数据;
所述第二电子设备基于所述第一显示数据在所述第一投屏窗口中渲染显示出第一投屏页面,基于所述第二显示数据在所述第二投屏窗口中渲染显示出第二投屏页面;
所述第二电子设备接收所述第一电子设备发送的所述第一投屏窗口对应的第三显示数据和第二投屏窗口对应的第四显示数据;
当所述第二电子设备确定出所述第三显示数据与所述第一显示数据不同,且所述第四显示数据与所述第二显示数据相同时,所述第二电子设备基于所述第三显示数据在所述第一投屏窗口中渲染显示出第三投屏页面,在所述第二投屏窗口中显示已缓存的所述第二投屏页面。
9.根据权利要求8所述的方法,其特征在于,所述第二电子设备接收第一电子设备发送的第一投屏窗口对应的第一显示数据和第二投屏窗口对应的第二显示数据,具体包括:
所述第二电子设备接收第一电子设备发送的第一投屏图像帧、所述第一显示数据在所述第一投屏图像帧中的区域范围以及所述第二显示数据在所述第一投屏图像帧中的区域范围;其中,所述第一投屏图像帧包括所述第一显示数据和所述第二显示数据;
所述第二电子设备基于所述第一显示数据在所述第一投屏图像帧中的区域范围从所述第一投屏图像帧中裁剪出所述第一显示数据,基于所述第二显示数据在所述第一投屏图像帧中的区域范围从所述第二投屏图像帧中裁剪出所述第二显示数据。
10.根据权利要求8所述的方法,其特征在于,所述第二电子设备接收所述第一电子设备发送的第三显示数据和第四显示数据,具体包括:
所述第二电子设备接收第一电子设备发送的第二投屏图像帧、所述第三显示数据在所述第二投屏图像帧中的区域范围以及所述第二显示数据在所述第二投屏图像帧中的区域范围;其中,所述第二投屏图像帧包括所述第三显示数据和所述第四显示数据;
所述第二电子设备基于所述第一显示数据在所述第二投屏图像帧中的区域范围从所述第二投屏图像帧中裁剪出所述第三显示数据,基于所述第四显示数据在所述第二投屏图像帧中的区域范围从所述第二投屏图像帧中裁剪出所述第四显示数据。
11.根据权利要求10所述的方法,其特征在于,在所述方法还包括:
所述第二电子设备接收到所述第一电子设备发送的所述第二投屏图像帧中图像内容与所述第一投屏图像帧有差异的脏区域范围;
所述第二电子设备确定出所述第三显示数据与所述第一显示数据不同,且所述第四显示数据与所述第二显示数据相同,具体包括:
当所述脏区域范围与所述第三显示数据在所述第二投屏图像帧中的区域范围重叠,与所述第四显示数据在所述第二投屏图像帧中的区域范围不重叠时,所述第二电子设备确定出所述第三显示数据与所述第一显示数据不同,且所述第四显示数据与所述第二显示数据相同。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述第二电子设备确定出所述第三显示数据与所述第一显示数据不同,且所述第四显示数据与所述第二显示数据不同时,所述第二电子设备基于所述第三显示数据在所述第一投屏窗口中渲染显示出第三投屏页面,基于所述第三显示数据在所述第二投屏窗口中渲染显示出第四投屏页面。
13.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述第二电子设备确定出所述第三显示数据与所述第一显示数据相同,且所述第四显示数据与所述第二显示数据相同时,在所述第一投屏窗口中显示已缓存的所述第一投屏页面,在所述第二投屏窗口中显示已缓存的所述第二投屏页面。
14.根据权利要求8所述的方法,其特征在于,在所述第二电子设备接收第一电子设备发送的第一投屏窗口对应的第一显示数据和第二投屏窗口对应的第二显示数据之前,所述方法还包括:
所述第二电子设备与所述第一电子设备建立无线保真Wi-Fi直连;
所述第二电子设备接收第一电子设备发送的第一投屏窗口对应的第一显示数据和第二投屏窗口对应的第二显示数据,具体包括:
所述第二电子设备通过所述Wi-Fi直连接收所述第一电子设备发送的所述第一显示数据和所述第二显示数据;
所述第二电子设备接收所述第一电子设备发送的所述第一投屏窗口对应的第三显示数据和第二投屏窗口对应的第四显示数据,具体包括:
所述第二带着你设备通过所述Wi-Fi直连接收所述第一电子设备发送的所述第三显示数据和所述第四显示数据。
15.一种电子设备,为第二电子设备,其特征在于,包括:一个或多个处理器、Wi-Fi模块和一个或多个存储器;其中,一个或多个存储器、所述Wi-Fi模块与一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器在执行所述计算机指令时,使得所述第二电子设备执行如权利要求8-14中任一项所述的方法。
16.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在第二电子设备上运行时,使得所述第二电子设备执行如权利要求8-14中任一项所述的方法。
17.一种计算机程序产品,其特征在于,当所述计算机程序产品在第二电子设备上运行时,使得所述第二电子设备执行如权利要求8-14中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110350868.4A CN115145513A (zh) | 2021-03-31 | 2021-03-31 | 一种投屏方法、***及相关装置 |
EP22778782.7A EP4296845A1 (en) | 2021-03-31 | 2022-03-25 | Screen projection method and system, and related apparatus |
PCT/CN2022/083046 WO2022206600A1 (zh) | 2021-03-31 | 2022-03-25 | 一种投屏方法、***及相关装置 |
US18/552,630 US20240184504A1 (en) | 2021-03-31 | 2022-03-25 | Screen projection method and system, and related apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110350868.4A CN115145513A (zh) | 2021-03-31 | 2021-03-31 | 一种投屏方法、***及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115145513A true CN115145513A (zh) | 2022-10-04 |
Family
ID=83403421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110350868.4A Pending CN115145513A (zh) | 2021-03-31 | 2021-03-31 | 一种投屏方法、***及相关装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240184504A1 (zh) |
EP (1) | EP4296845A1 (zh) |
CN (1) | CN115145513A (zh) |
WO (1) | WO2022206600A1 (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102491499B1 (ko) * | 2016-04-05 | 2023-01-25 | 삼성전자주식회사 | 소모 전류를 줄이는 방법 및 전자 장치 |
KR102488333B1 (ko) * | 2016-04-27 | 2023-01-13 | 삼성전자주식회사 | 그래픽 데이터를 합성하는 전자 장치 및 방법 |
CN116320432A (zh) * | 2017-06-20 | 2023-06-23 | 微软技术许可有限责任公司 | 实时屏幕共享 |
CN109218731B (zh) * | 2017-06-30 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 移动设备的投屏方法、装置及*** |
US20190089927A1 (en) * | 2017-09-20 | 2019-03-21 | Qualcomm Incorporated | Block-based power efficient timing engine for smart display panels |
US20190087144A1 (en) * | 2017-09-20 | 2019-03-21 | Qualcomm Incorporated | Frame-based power efficient timing engine for smart display panels |
CN111190558B (zh) * | 2018-11-15 | 2022-09-30 | 腾讯科技(深圳)有限公司 | 投屏控制方法、装置、计算机可读存储介质和计算机设备 |
CN112019893B (zh) * | 2019-05-30 | 2023-09-12 | 北京小米移动软件有限公司 | 终端的投屏方法和终端的投屏装置 |
CN112214186B (zh) * | 2019-07-11 | 2023-11-28 | 上海博泰悦臻网络技术服务有限公司 | 信息共享方法及车载终端 |
CN112328344B (zh) * | 2020-11-02 | 2022-11-22 | 联想(北京)有限公司 | 一种投屏处理方法及第一设备 |
-
2021
- 2021-03-31 CN CN202110350868.4A patent/CN115145513A/zh active Pending
-
2022
- 2022-03-25 WO PCT/CN2022/083046 patent/WO2022206600A1/zh active Application Filing
- 2022-03-25 US US18/552,630 patent/US20240184504A1/en active Pending
- 2022-03-25 EP EP22778782.7A patent/EP4296845A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240184504A1 (en) | 2024-06-06 |
WO2022206600A1 (zh) | 2022-10-06 |
EP4296845A1 (en) | 2023-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113726950B (zh) | 一种图像处理方法和电子设备 | |
WO2020253719A1 (zh) | 一种录屏方法及电子设备 | |
CN112527174B (zh) | 一种信息处理方法及电子设备 | |
WO2022007862A1 (zh) | 图像处理方法、***、电子设备及计算机可读存储介质 | |
CN113806105A (zh) | 消息处理方法、装置、电子设备和可读存储介质 | |
CN113837920B (zh) | 一种图像渲染方法及电子设备 | |
CN112527222A (zh) | 一种信息处理方法及电子设备 | |
WO2022083465A1 (zh) | 电子设备的投屏方法及其介质和电子设备 | |
WO2023005900A1 (zh) | 一种投屏方法、电子设备及*** | |
CN116048933B (zh) | 一种流畅度检测方法 | |
WO2023016014A1 (zh) | 视频编辑方法和电子设备 | |
CN115119048B (zh) | 一种视频流处理方法及电子设备 | |
CN114173184A (zh) | 投屏方法和电子设备 | |
WO2022143310A1 (zh) | 一种双路投屏的方法及电子设备 | |
CN114489471B (zh) | 一种输入输出处理方法和电子设备 | |
WO2022206600A1 (zh) | 一种投屏方法、***及相关装置 | |
CN115994006A (zh) | 动画效果显示方法及电子设备 | |
CN115543496A (zh) | 消息处理方法及相关装置 | |
CN114793283A (zh) | 图像编码方法、图像解码方法、终端设备及可读存储介质 | |
CN116700578B (zh) | 图层合成方法、电子设备以及存储介质 | |
WO2023185636A1 (zh) | 图像显示方法及电子设备 | |
CN117692714A (zh) | 视频显示方法和电子设备 | |
CN117689796A (zh) | 一种渲染处理方法及电子设备 | |
CN118276716A (zh) | 窗口管理的方法和电子设备 | |
CN118283026A (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 |