WO2023207194A1 - 画面显示方法、装置、设备、存储介质及程序产品 - Google Patents

画面显示方法、装置、设备、存储介质及程序产品 Download PDF

Info

Publication number
WO2023207194A1
WO2023207194A1 PCT/CN2022/143313 CN2022143313W WO2023207194A1 WO 2023207194 A1 WO2023207194 A1 WO 2023207194A1 CN 2022143313 W CN2022143313 W CN 2022143313W WO 2023207194 A1 WO2023207194 A1 WO 2023207194A1
Authority
WO
WIPO (PCT)
Prior art keywords
rendering
display
image data
picture
screen
Prior art date
Application number
PCT/CN2022/143313
Other languages
English (en)
French (fr)
Inventor
何�轩
杨俊拯
钟江
普明君
Original Assignee
Oppo广东移动通信有限公司
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 Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Publication of WO2023207194A1 publication Critical patent/WO2023207194A1/zh

Links

Images

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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital 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

Definitions

  • the embodiments of the present application relate to the field of display technology, and in particular to a screen display method, device, equipment, storage medium and program product.
  • multi-screen display on the same screen or multi-screen display on the same screen are respectively implemented on the device.
  • the same device can only realize one of the functions and cannot handle multiple possible screen display forms in a unified manner.
  • Embodiments of the present application provide a screen display method, device, equipment, storage medium and program product.
  • the technical solutions are as follows:
  • embodiments of the present application provide a screen display method, which method includes:
  • the source of the at least one channel of image data includes at least one of a local device and a source device, and the source device is a device that performs screen redirection;
  • the multi-channel rendering thread Based on the at least one channel of image data, the multi-channel rendering thread performs picture rendering in the display window to obtain a rendered picture, wherein the same display window supports the display of multiple channels of pictures;
  • the rendering picture is displayed on a display screen corresponding to the display window.
  • a screen display device which includes:
  • a data acquisition module configured to acquire at least one channel of image data.
  • the source of the at least one channel of image data includes at least one of a local device and a source device.
  • the source device is a device that performs screen redirection;
  • a picture rendering module configured to perform picture rendering in a display window through a multi-channel rendering thread based on the at least one channel of image data to obtain a rendered picture, wherein the same display window supports the display of multiple channels of pictures;
  • a display module is used to display the rendering picture through a display screen corresponding to the display window.
  • inventions of the present application provide a computer device.
  • the computer device includes a processor and a memory; the memory stores at least one instruction, and the at least one instruction is used to be executed by the processor to implement the following: The screen display method described above.
  • embodiments of the present application provide a computer-readable storage medium in which at least one program code is stored, and the program code is loaded and executed by a processor to implement the above aspects. screen display method.
  • inventions of the present application provide a computer program product.
  • the computer program product includes computer instructions, and the computer instructions are stored in a computer-readable storage medium.
  • the processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the screen display method provided in various optional implementations of the above aspect.
  • Figure 1 shows a schematic diagram of an implementation environment provided by an exemplary embodiment of the present application
  • Figure 2 shows a flow chart of a screen display method provided by an exemplary embodiment of the present application
  • Figure 3 is a schematic diagram of a multi-channel video display method according to an exemplary embodiment of the present application.
  • Figure 4 shows a flow chart of a screen display method provided by another exemplary embodiment of the present application.
  • Figure 5 is an interaction diagram between multi-channel rendering data flows and modules illustrating an exemplary embodiment of the present application
  • Figure 6 is a flow chart of a multi-pass rendering process according to an exemplary embodiment of the present application.
  • Figure 7 is a schematic diagram of an implementation of a display window agent according to an exemplary embodiment of the present application.
  • Figure 8 is a schematic diagram of the implementation of multi-screen different display according to an exemplary embodiment of the present application.
  • Figure 9 is a schematic diagram of the implementation of multi-screen simultaneous display according to an exemplary embodiment of the present application.
  • Figure 10 is a schematic diagram of the implementation of multiple displays on the same screen according to an exemplary embodiment of the present application.
  • Figure 11 shows a structural block diagram of a screen display device provided by an embodiment of the present application.
  • Figure 12 shows a structural block diagram of a computer device provided by an exemplary embodiment of the present application.
  • Figure 1 shows a schematic diagram of an implementation environment provided by an exemplary embodiment of the present application.
  • the implementation environment may include: at least one source device 110 and at least one destination device 120.
  • the source device 110 is an electronic device with a redirection function, which may be a mobile terminal such as a smartphone, a tablet computer, or a personal computer.
  • the source device 110 includes a tablet computer 111 and a smartphone 112 as an example for illustration.
  • the object with redirection requirements in the source device 110 is called a redirection object.
  • the redirection object may be a screen mirroring or a redirection application, and the redirection content of the redirection object may include at least one of video, audio, and control. kind.
  • the redirection application may be a navigation application, a video application, a game application, etc.
  • the embodiment of the present application does not limit the specific type of the screen display application.
  • the redirection object is an application, the application can be running in the foreground or in the background during the redirection process.
  • the same source device can redirect at least two redirect objects at the same time.
  • screen mirroring and video applications can be displayed at the same time
  • video applications and navigation applications can be displayed at the same time.
  • the source device has an upper limit on the number of redirect objects that can be redirected simultaneously, and this upper limit is related to the processing performance of the source device.
  • the destination device 120 is an electronic device used for displaying redirection results, which may be a smartphone, a tablet, a personal computer, a smart TV, or a vehicle-mounted terminal (such as a car machine), etc.
  • the destination device 120 includes a first vehicle-mounted terminal 121 and a second vehicle-mounted terminal 122 as an example.
  • the first vehicle-mounted terminal 121 and the second vehicle-mounted terminal 122 are arranged in the same vehicle, and the first vehicle-mounted terminal 121 and the second vehicle-mounted terminal 122 are respectively controlled by different SoC (System on Chip, system-on-chip).
  • SoC System on Chip, system-on-chip
  • the first vehicle-mounted terminal 121 is a vehicle-mounted terminal arranged in the front row of the vehicle
  • the second vehicle-mounted terminal 122 is a vehicle-mounted terminal arranged in the rear row of the vehicle.
  • the destination device 120 has at least one screen.
  • the first vehicle-mounted terminal 121 has a first screen 1211 and a second screen 1212 (both controlled by the first SoC 1213 of the first vehicle-mounted terminal 121), and the second vehicle-mounted terminal 122 has a third screen 1221 and a fourth screen. Screen 1222 (both controlled by the second SoC 1223 of the second vehicle-mounted terminal 122).
  • the at least two screens can display different screen contents at the same time, or the same screen content, and the screen content displayed on each screen can be a single screen object. , or it can be multiple screen objects (multiple screen objects are displayed in split screen).
  • the destination device can also display the application screen of the local application, or local or network video, or the image collected by the local camera, that is, the image of the destination device.
  • the picture source may include at least one of a source device and a local device.
  • the multi-channel picture display in the embodiment of the present application is embodied in multi-screen simultaneous display (multiple display screens display the same picture), multi-screen different display (multiple display screens display different pictures), and same-screen multi-display (the same display screen displays multiple road different screen).
  • the video application screen in the tablet computer 111 is displayed on the first screen 1211 of the first vehicle-mounted terminal 121; the first game application screen is displayed on the first screen 1211 of the first vehicle-mounted terminal 121; A second screen 1212 of a vehicle-mounted terminal 121.
  • the local camera picture is displayed on the first screen 1211 of the first vehicle-mounted terminal 121
  • the local application picture is displayed on the second screen 1212 of the first vehicle-mounted terminal 121, and is displayed on a split screen with the first game application.
  • the navigation application in the smart phone 112 is displayed on the first screen 1211 of the first vehicle-mounted terminal 121 and is displayed on a split screen with the video application and the local camera screen; the second game application in the smart phone 112 is displayed on the second vehicle-mounted terminal 122
  • the third screen 1221 and the fourth screen 1222 that is, the third screen 1221 and the fourth screen 1222 display the same screen content.
  • connection method adopted between the source device 110 and the destination device 120 may include at least one of Wlan AP mode, WiFi-P2P, USB wired connection, and mobile data network. This is not the case in the embodiments of the present application. Not limited.
  • the above embodiment only takes the redirection scenario as an example.
  • the solution provided by the embodiment of this application may not include the source device.
  • the solution provided by the embodiment of the present application can be used for the destination device in Figure 1, and can also be used for other devices with multi-channel screen display requirements.
  • the screen display method is used for computer equipment in the following embodiments. An example is used for explanation, but this does not constitute a limitation.
  • Figure 2 shows a flow chart of a screen display method provided by an exemplary embodiment of the present application.
  • This embodiment of the present application takes the application of this method to a computer device as an example.
  • the method includes:
  • Step 201 Obtain at least one channel of image data.
  • the source of the at least one channel of image data includes at least one of a local device and a source device.
  • the source device is a device that performs screen redirection.
  • the computer device In order to realize at least one channel of screen display, the computer device needs to obtain the image data corresponding to each channel of screen. Among them, the computer device can not only display the picture in the local device, but also display the picture in the source device through redirection technology.
  • the computer device displays the picture in the local device, obtains the application image data of the local application through the display acquisition module, or obtains the camera image data through the local camera, or obtains the local application image data through the video decoding module. Decode the video stream and network video stream to obtain the video image data output by the video decoder.
  • the computer device displays the picture in the source device, and the computer device serves as the destination device.
  • the computer device serves as the destination device.
  • the source device encodes the application image data and camera image data
  • the source video redirector transmits the encoding information to the destination video redirector.
  • the computer device decodes the encoding information through the video decoding module and obtains the source device image data in .
  • a source video redirector 316 and a destination video redirector 326 are respectively established between the source device 31 and the destination device 32 based on redirection technology, so that through the redirectors image data transmission through links between.
  • the first display collection module 313 collects data from the images in the first application 311 . Both the collected application image data and the camera image data output by the first camera 312 are required. Encoding is performed by the video encoding module 314, and the encoded data is transmitted to the destination video redirector 326 through the source video redirector 316, and is decoded in the destination device 32 via the video decoding module 327, thereby obtaining the data in the source device 31. image data.
  • the source video processing module 315 is responsible for uniformly processing the image data of each application.
  • the computer device When the computer device serves as the destination device 32 and acquires image data locally, the computer device directly acquires the camera image data in the second camera 323, and acquires the application image data in the second application 322 through the second display acquisition module 325. , the local or network video stream 321 is decoded by the single-ended video stream player 324 through the video decoding module 327, thereby obtaining video image data.
  • Step 202 Based on at least one channel of image data, perform picture rendering in the display window through a multi-channel rendering thread to obtain a rendered picture, wherein the same display window supports display of multiple channels of pictures.
  • the computer device creates a corresponding display form for each display screen, and performs image rendering in the display form through multi-channel rendering threads, thereby obtaining a rendered image.
  • the display window corresponds to the display screen one-to-one.
  • the computer device creates a corresponding display form for each display screen, where the display form is an Activity component, and can be specified at startup. in a certain display screen. Further, the computer device uniformly renders images in each display window through multiple rendering threads to obtain a rendered image.
  • the computer device performs screen rendering in the first display window 329 and the second display window 3210 through the multi-channel rendering thread 328 according to the acquired image data of each channel, thereby obtaining a rendered screen.
  • Step 203 Display the rendering screen on the display screen corresponding to the display window.
  • the computer device displays the rendering image through the display screen corresponding to each display window.
  • the computer device displays the rendering image in the first display window 329 through the first display screen 331, and displays the rendering image in the second display window 3210 through the second display screen 332. show.
  • the computer device obtains at least one channel of image data from at least one of the local device and the source device, and renders the image data in the display window through multiple rendering threads.
  • a rendered picture is obtained, and finally the rendered picture is displayed on a display screen corresponding to the display window, where the same display window supports displaying multiple pictures.
  • image data from multiple sources can be processed in the display window corresponding to the display screen through a unified multi-channel rendering thread.
  • Rendering and supports rendering of multi-channel images in the same display window, thereby realizing multi-screen simultaneous display (multiple displays display the same image), multi-screen differential display (multiple displays display different images), and multi-screen multi-screen display. Support for display scenarios such as display (the same display screen displays multiple different screens).
  • the rendering module Based on at least one channel of image data, the rendering module performs picture rendering in the corresponding display window to obtain a rendered picture.
  • the rendering module performs screen rendering in the corresponding display window to obtain a rendered screen, including:
  • the rendering object includes vertex coordinates and texture objects
  • the rendering module Based on the rendering object, the rendering module performs picture rendering in the corresponding display form to obtain the rendered picture.
  • create a rendering object corresponding to the image data including:
  • a single rendering object is generated based on the surface texture corresponding to the image data
  • At least two rendering objects are generated based on the surface texture corresponding to the image data, wherein different rendering objects correspond to different display windows.
  • the rendering module performs screen rendering in the corresponding display form to obtain the rendered screen, including:
  • the rendering module contains at least two rendering objects, determine the layout information of each rendering object
  • the rendering module Based on the layout information of each rendering object, the rendering module performs multi-channel picture rendering in the display window to obtain the rendered picture.
  • the rendering module contains at least two rendering objects
  • determine the layout information of each rendering object including:
  • the multi-way layout module is called through the rendering module to obtain the display coordinates and display size of each rendering object in the display form.
  • the rendering module Based on the layout information of each rendering object, the rendering module renders the picture corresponding to each rendering object on the corresponding target surface, where different rendering modules correspond to different surfaces;
  • methods also include:
  • the rendering object can be changed by adding or deleting;
  • the rendering module Based on the updated layout information, the rendering module performs screen update rendering in the corresponding display form.
  • methods also include:
  • the display form corresponding to the display screen is selected to be reused through the display form agent.
  • methods also include:
  • obtain at least one channel of image data including at least one of the following methods:
  • the video decoder is used to decode the local video stream, network video stream or redirected video stream.
  • the redirected video stream is sent by the source device;
  • Figure 4 shows a flow chart of a screen display method provided by another exemplary embodiment of the present application.
  • This embodiment of the present application takes the application of this method to the implementation environment shown in Figure 1 as an example.
  • the method includes :
  • Step 401 Obtain at least one channel of image data.
  • the source of the at least one channel of image data includes at least one of a local device and a source device.
  • the source device is a device that performs screen redirection.
  • step 201 For the implementation of this step, reference can be made to the above-mentioned step 201, which will not be described again in this embodiment.
  • Step 402 Create a rendering module corresponding to the display window through multiple rendering threads, where different display windows correspond to different rendering modules.
  • the computer device Since the multi-channel rendering thread performs picture rendering in each display form, a specific rendering module needs to be responsible for performing specific rendering tasks. Therefore, the computer device creates a rendering module corresponding to each display form through the multi-channel rendering thread. The rendering module Responsible for the rendering of various images in the corresponding display form.
  • the Open Graphics Library (OpenGL) multi-channel rendering thread 581 creates the first OpenGL rendering module 541 corresponding to the first display window 561, and creates the first OpenGL rendering module 541 corresponding to the second display window 562.
  • Step 403 Based on at least one channel of image data, the rendering module performs picture rendering in the corresponding display window to obtain a rendered picture.
  • the computer device Based on at least one channel of image data, the computer device performs layout rendering in the corresponding display window through the rendering module, thereby obtaining a rendering picture corresponding to the image data and displaying it on the display screen.
  • the process includes the following steps:
  • the rendering object includes vertex coordinates and texture objects.
  • the computer device creates a corresponding rendering object based on the acquired image data.
  • the rendering object may also be called an OpenGL logical view.
  • the rendering object includes vertex coordinates and texture objects, where the vertex coordinates are used to represent the position information of the image data in the display form, and the texture object is used to represent the texture performance of the image data in the display form.
  • the computer device In the case where the image data corresponds to a single display screen, the computer device generates a single rendering object based on the surface texture corresponding to the image data.
  • the computer device Since the same image only needs to be displayed on one display, the computer device only needs to generate a single rendering object based on the surface texture (SurfaceTexture) corresponding to the image data.
  • SurfaceTexture surface texture
  • the computer device In the case where the image data corresponds to at least two display screens, the computer device generates at least two rendering objects based on the surface texture corresponding to the image data, wherein different rendering objects correspond to different display windows.
  • the same picture needs to be displayed on at least two displays, that is, multiple displays on the same screen, for example, the same picture is projected to two screens of the destination device, or the same application is displayed on two screens, so the computer equipment needs At least two rendering objects are generated based on the surface texture corresponding to the image data, and the rendering objects are in one-to-one correspondence with the display window corresponding to the display screen.
  • the image data generated by the first video decoder 511 corresponds to two display screens, so the computer device generates two rendering objects based on the first surface texture 521 corresponding to the image data, respectively.
  • the image data generated by the second video decoder 512 and the third video decoder 513 each correspond to one display screen. Therefore, the computer device generates a third OpenGL based on the second surface texture 522 and the third surface texture 523 corresponding to the two channels of image data. Render object 533 and fourth OpenGL render object 534.
  • the computer device When the rendering object is displayed on one display screen alone, the computer device adds the rendering object to the corresponding rendering module; when multiple rendering objects are displayed together on one display screen, the computer device adds the multiple rendering objects together. to the corresponding rendering module.
  • the computer device adds the first OpenGL rendering object 531 to the first OpenGL rendering module 541.
  • the computer device adds each of the second OpenGL rendering object 532 , the third OpenGL rendering object 533 , and the fourth OpenGL rendering object 534 to the second OpenGL rendering module 542 .
  • the rendering module Based on the rendering object, the rendering module performs picture rendering in the corresponding display form to obtain the rendered picture.
  • the computer device calls the rendering context environment for the rendering module, renders the picture in the corresponding display window, and obtains the rendered picture, wherein the rendering context environment encapsulates the relevant application programming interface, which is the rendering module. Provides actual rendering capabilities.
  • the OpenGL rendering context 592 provides actual rendering capabilities for the first OpenGL rendering module 541 and the second OpenGL rendering module 542.
  • the computer device When the rendering module contains a rendering object, the computer device renders the picture in the corresponding display form through the rendering module according to the rendering object, and uses the corresponding surface view control (SurfaceView) to display the rendered and synthesized picture. .
  • SurfaceView surface view control
  • the first OpenGL rendering module 541 only contains the first OpenGL rendering object 531, so the computer device performs picture rendering in the corresponding first display window 561 according to the rendering object, and uses the corresponding The first surface view control 551 displays the rendering screen.
  • the computer device needs to determine the layout information of each rendering object.
  • the rendering module contains at least two rendering objects, and each rendering object needs to display different screen ratios and sizes, the computer device needs to By calling the multi-way layout module, the display coordinates and display size of each rendering object in the display form are obtained.
  • the multi-channel layout module customizes and dynamically generates optimal layout styles based on the attributes of the image data source corresponding to the rendering object.
  • the computer equipment corresponds to the aspect ratio of the display screen, the horizontal and vertical screen status, and the access sequence according to the image data. It ensures the highest screen-to-body ratio as much as possible while taking into account the neatness and balance of the layout.
  • the computer device scales each screen according to the original aspect ratio and horizontal and vertical screen status of each screen without deforming the screen, and takes into account the attributes of each screen to reasonably adjust the scaling. Proportion, layout each screen to achieve the highest screen-to-body ratio.
  • the computer device Based on the layout information of each rendering object, the computer device performs multi-channel picture rendering in the display window through the rendering module to obtain the rendered picture.
  • the computer device uses a rendering module to render the picture corresponding to each rendering object on the corresponding target surface based on the layout information of each rendering object, where different rendering modules correspond to different surfaces. Further, the computer device displays the target surface through a surface view control of the display form.
  • the computer device renders and displays each picture in its own surface view control.
  • the computer device renders the picture corresponding to each rendering object on the corresponding target surface through the rendering module, and displays it through the display window.
  • the same surface view control corresponding to the body displays the rendered and synthesized picture.
  • the second OpenGL rendering module 542 includes three rendering objects: a second OpenGL rendering object 532, a third OpenGL rendering object 533, and a fourth OpenGL rendering object 534.
  • the computer device calls the multi-path layout Module 591 rationally arranges the three OpenGL rendering objects according to the attributes of the image data sources corresponding to each rendering object, and renders the pictures corresponding to each rendering object on the corresponding target surface through the second OpenGL rendering module 542. Further, through the second OpenGL rendering module 542, The second surface view control 552 corresponding to the display window 562 displays the target surface.
  • Step 404 Display the rendering screen on the display screen corresponding to the display window.
  • the computer device displays the rendering image in the first display window 561 through the first display screen 571, and displays the rendering image in the second display window 562 through the second display screen 572. show.
  • the computer device creates a rendering module corresponding to the display form through multiple rendering threads, and uses the rendering context environment to provide the rendering module with actual rendering capabilities.
  • the rendering module renders the picture according to the image data.
  • the layout information is generated by calling the multi-channel layout module, and then the rendering module performs unified rendering.
  • the surface view control is used to display the rendered and synthesized screen, which helps to improve rendering performance.
  • FIG. 6 shows a flow chart of a multi-pass rendering process provided by an exemplary embodiment of the present application.
  • Step 601 Obtain the rendering thread handle.
  • the computer device obtains a rendering thread handle for the display window 61, and subsequently calls the OpenGL multi-channel rendering thread 62 through the rendering thread handle.
  • Step 602 Create an OpenGL thread instance.
  • the computer device creates an OpenGL multi-pass rendering thread instance, which is called by the display window through the rendering thread handle.
  • Step 603 Create an instance of the management context environment.
  • the computer device creates an instance of the management context based on the OpenGL multi-pass rendering thread.
  • Step 604 Return the OpenGL context handle.
  • the computer device returns the OpenGL context handle to the OpenGL multi-pass rendering thread, and subsequently calls the OpenGL rendering context 63 through the OpenGL context handle.
  • Step 605 Return the OpenGL thread handle.
  • the computer device returns the OpenGL thread handle to the corresponding display window.
  • Step 606 Initialize the environment.
  • the computer device initializes the environment for displaying the form.
  • Step 607 Create an OpenGL rendering module.
  • the computer device creates an OpenGL rendering module for the display window, where the display window corresponds to the OpenGL rendering module one-to-one.
  • Step 608 Obtain the OpenGL rendering module handle.
  • the computer device obtains the OpenGL rendering module handle from the OpenGL rendering module 64, and subsequently calls the OpenGL rendering module 64 through the OpenGL rendering module handle.
  • Step 609 Start the thread.
  • the computer device starts the OpenGL multi-pass rendering thread 62 for the display window 61 .
  • Step 610 Create an OpenGL context (context).
  • the computer device creates an OpenGL context by calling OpenGL rendering context 63.
  • Step 611 Start creating the current surface of the rendering module.
  • the computer device creates a corresponding target surface for the OpenGL rendering module, so that the OpenGL rendering module performs picture rendering on the corresponding target surface.
  • Step 612 Create an OpenGL surface and switch to the current surface (surface).
  • the computer device When there are multiple OpenGL rendering modules rendering the picture, the computer device creates an OpenGL surface and switches to the current surface to ensure that the OpenGL rendering module renders the picture on the corresponding target surface.
  • Step 613 Create an OpenGL rendering object.
  • the computer device creates an OpenGL rendering object 65 from the image data.
  • Step 614 Obtain the OpenGL rendering object handle.
  • the computer device obtains the OpenGL rendering object handle from the OpenGL rendering object, and subsequently calls the OpenGL rendering object 65 through the OpenGL rendering object handle.
  • Step 615 Add an OpenGL rendering object.
  • the computer device adds the OpenGL rendering object to the OpenGL multi-pass rendering thread 62 and renders the picture according to the OpenGL rendering object.
  • Step 616 layout and drawing.
  • the computer device calls the OpenGL rendering module in the OpenGL rendering thread, and performs layout and drawing through the OpenGL rendering module.
  • Step 617 Draw an OpenGL rendering object.
  • the computer device draws and renders the OpenGL rendering object through the OpenGL rendering module 64 .
  • the rendering module contains at least two rendering objects, the rendering objects will change according to the screen display needs.
  • the rendering objects included in the rendering module are changed, the rendering objects are reasonably laid out according to the properties of the image data source corresponding to each rendering object.
  • the computer device needs to update the layout information of each rendering object after the change, where the rendering object is changed by adding or deleting.
  • the computer device updates and renders the picture in the corresponding display window through the rendering module.
  • the computer device when the rendering objects included in the rendering module change, the computer device can dynamically reasonably lay out the rendering objects according to the properties of the image data sources corresponding to the rendering objects, thereby improving rendering performance.
  • the computer device when the rendering object changes, the computer device no longer needs to create redundant surface view controls. It only needs to render and synthesize the changed rendering object through the rendering module, and the same surface view control displays the synthesized picture. .
  • each display form is managed in the computer device through the display form agent to create, reuse and destroy the display form at the correct time.
  • the computer device first determines the display screen corresponding to each channel of image data, and if there is no display window corresponding to the display screen, creates a display window for the display screen through the display window agent; When a display form corresponding to the display screen exists, the display form corresponding to the display screen is selected to be reused through the display form agent. Further, the computer device obtains the display instance contained in the display form through the display form agent, and when the display form does not contain the display instance, destroys the display form through the display form agent.
  • the computer device when it is determined that the first image data 711 corresponds to the display screen 731 and there is no display window, the computer device creates the display window 721 through the display window agent 741 .
  • the computer device When adding a channel of image data corresponding to the display screen 731, the computer device multiplexes the display window 721 through the display window agent 741 to process the second image data 712.
  • the computer device destroys the display window 721 through the display window agent 741.
  • the computer device can manage the display form through the display form agent, and create, reuse and destroy the display form at the right time according to the screen display needs, thereby avoiding the waste of the display form and reducing the screen display.
  • the computer device can simultaneously support multiple displays on the same screen, simultaneous display on multiple screens, and different display scenarios on multiple screens.
  • the computer device processes each channel of image data separately, renders the image in the corresponding display form through multiple rendering threads, and finally displays it on the corresponding display screen.
  • the pictures that the computer device needs to display come from two source devices and the local device respectively, and the four pictures are displayed on four display screens respectively.
  • the first encoder 812 encodes the image data of the first application 811
  • the second encoder 814 encodes the image data of the second application 813, and transmits them to the destination device 83 respectively.
  • the corresponding first decoder 831 and the second decoder 832 perform decoding to obtain image data;
  • the third encoder 822 encodes the image data of the third application 821 and transmits it to the destination.
  • the third decoder 833 performs decoding to obtain image data; the local video stream 835 is decoded by the fourth decoder 834 to obtain image data.
  • the computer device performs screen rendering in each corresponding display window through the multi-channel rendering thread 836, and the display window agent 8311 renders the first display window 837, the second display window 838, and the third display window 839. and the fourth display window 8310 are managed, and finally the images are displayed on the first display screen 841, the second display screen 842, the third display screen 843 and the fourth display screen 844 respectively.
  • the computer device displays the screen of the application 911 in the source device 91, and the encoder 912 encodes the image data in the application 911, and transmits it to the first destination device 92 and the first destination device 92 respectively.
  • the two destination devices 93 they are decoded by the first decoder 921 and the second decoder 931 respectively.
  • the first display window 923 and the first display window 923 are respectively rendered through the first multi-pass rendering thread 922.
  • the screen rendering is performed in the second display window 924, and the screen is displayed in the corresponding first display screen 941 and the second display screen 942, wherein the first display window agent 925 924 for management; in the second destination device 93, the second multi-channel rendering thread 932 performs picture rendering in the third display window 933, and performs picture display on the corresponding third display screen 943, wherein the second display window
  • the agent 934 manages the third display window 933.
  • the computer equipment processes each channel of image data separately, and by calling the multi-channel layout module in the multi-channel rendering thread, each screen is reasonably laid out and rendered uniformly, and finally displayed on the same screen. displayed on the screen.
  • the pictures that the computer device needs to display come from two source devices and the local device respectively, and the four pictures are displayed on the same display screen.
  • the first encoder 1012 encodes the image data of the first application 1011
  • the second encoder 1014 encodes the image data of the second application 1013, and transmits them to the destination device 1003 respectively.
  • the corresponding first decoder 1031 and second decoder 1032 perform decoding to obtain image data; in the second source device 1002, the third encoder 1022 encodes the image data of the third application 1021 and transmits it to the destination.
  • the third decoder 1033 performs decoding to obtain image data; the local video stream 1035 is decoded by the fourth decoder 1034 to obtain image data.
  • the computer device calls the multi-channel layout module 1037 through the multi-channel rendering thread 1036, performs layout according to the attributes of the image data source, performs picture rendering in the display window 1038, and performs picture display on the display screen 1041, in which the display window
  • the body agent 1039 manages the display form 1038.
  • FIG. 11 shows a structural block diagram of a screen display device provided by an embodiment of the present application.
  • the device may include:
  • the data acquisition module 1101 is used to acquire at least one channel of image data.
  • the source of the at least one channel of image data includes at least one of a local device and a source device.
  • the source device is a device that performs screen redirection;
  • the picture rendering module 1102 is configured to perform picture rendering in the display window through multiple rendering threads based on the at least one channel of image data to obtain a rendered picture, wherein the same display window supports the display of multiple pictures;
  • the display module 1103 is used to display the rendering picture through the display screen corresponding to the display window.
  • the picture rendering module 1102 is used for:
  • the rendering module Based on the at least one channel of image data, the rendering module performs picture rendering in the corresponding display window to obtain the rendered picture.
  • the picture rendering module 1102 is used for:
  • the rendering module Based on the rendering object, the rendering module performs picture rendering in the corresponding display window to obtain the rendered picture.
  • the picture rendering module 1102 is used for:
  • the image data corresponds to a single display screen, generating a single rendering object based on the surface texture corresponding to the image data;
  • At least two rendering objects are generated based on the surface texture corresponding to the image data, wherein different rendering objects correspond to different display windows.
  • the picture rendering module 1102 is used for:
  • the rendering module contains at least two rendering objects, determine the layout information of each of the rendering objects;
  • the rendering module Based on the layout information of each rendering object, the rendering module performs multi-channel picture rendering in the display window to obtain the rendered picture.
  • the picture rendering module 1102 is used for:
  • the rendering module calls the multi-way layout module to obtain the display coordinates and display size of each rendering object in the display window.
  • the picture rendering module 1102 is used for:
  • the rendering module Based on the layout information of each rendering object, the rendering module renders the picture corresponding to each rendering object on the corresponding target surface, where different rendering modules correspond to different surfaces;
  • the target surface is displayed through a surface view control of the display form.
  • the picture rendering module 1102 is used for:
  • the rendering objects included in the rendering module are changed, update the layout information of each rendering object after the change, and the changing method of the rendering objects includes adding or deleting;
  • the rendering module Based on the updated layout information, the rendering module performs picture update rendering in the corresponding display window.
  • the display module 1103 is used for:
  • the display window corresponding to the display screen is selected to be multiplexed through the display window agent.
  • the display module 1103 is used for:
  • the display form When the display form does not contain a display instance, the display form is destroyed through the display form agent.
  • the data acquisition module 1101 is used for:
  • the video decoder is used to decode the local video stream, the network video stream or the redirected video stream, the redirected video stream is sent by the source device;
  • the computer device obtains at least one channel of image data from at least one of the local device and the source device, and renders the image data in the display window through multiple rendering threads.
  • a rendered picture is obtained, and finally the rendered picture is displayed on a display screen corresponding to the display window, where the same display window supports displaying multiple pictures.
  • image data from multiple sources can be processed in the display window corresponding to the display screen through a unified multi-channel rendering thread.
  • Rendering and supports rendering of multi-channel images in the same display window, thereby realizing multi-screen simultaneous display (multiple displays display the same image), multi-screen differential display (multiple displays display different images), and multi-screen multi-screen display. Support for display scenarios such as display (the same display screen displays multiple different screens).
  • Computer device 1200 may include one or more of the following components: processor 1210, memory 1220, and display screen 1230.
  • Processor 1210 may include one or more processing cores.
  • the processor 1210 uses various interfaces and lines to connect various parts of the entire computer device 1200, and executes by running or executing instructions, programs, code sets or instruction sets stored in the memory 1220, and calling data stored in the memory 1220.
  • the processor 1210 can use at least one of digital signal processing (Digital Signal Processing, DSP), field-programmable gate array (Field-Programmable Gate Array, FPGA), and programmable logic array (Programmable Logic Array, PLA). implemented in hardware form.
  • DSP Digital Signal Processing
  • FPGA Field-Programmable Gate Array
  • PLA programmable logic array
  • the processor 1210 can integrate one or more of a central processing unit (Central Processing Unit, CPU), a graphics processor (Graphics Processing Unit, GPU), a neural network processor (Neural-network Processing Unit, NPU), a modem, etc.
  • a central processing unit Central Processing Unit, CPU
  • a graphics processor Graphics Processing Unit, GPU
  • a neural network processor Neural-network Processing Unit, NPU
  • the CPU mainly handles the operating system, user interface and applications
  • the GPU is used to render and draw the content that needs to be displayed on the touch screen
  • the NPU is used to implement artificial intelligence (Artificial Intelligence, AI) functions
  • the modem is used to process Wireless communication. It can be understood that the above-mentioned modem may not be integrated into the processor 1210 and may be implemented by a separate chip.
  • the memory 1220 may include random access memory (Random Access Memory, RAM) or read-only memory (Read-Only Memory, ROM).
  • the memory 1220 includes non-transitory computer-readable storage medium.
  • Memory 1220 may be used to store instructions, programs, codes, sets of codes, or sets of instructions.
  • the memory 1220 may include a program storage area and a data storage area, where the program storage area may store instructions for implementing an operating system, instructions for at least one function (such as a touch function, a sound playback function, an image playback function, etc.), Instructions, etc., used to implement each method embodiment described below; the storage data area may store data created according to the use of the computer device 1200 (such as audio data, phone book), etc.
  • the display screen 1230 is a component for image display.
  • the computer device 1200 is provided with at least one display screen.
  • the display screen 1230 is a display screen of a smartphone, or the display screen 1230 is a main driving display screen and a passenger driving display screen controlled by a vehicle, or the display screen 1230 is a folding display screen of a folding screen terminal, or the like.
  • the structure of the computer device 1200 shown in the above figures does not constitute a limitation on the computer device.
  • the computer device may include more or less components than those shown in the figures, or a combination thereof. Certain parts, or different arrangements of parts.
  • the computer device 1200 also includes camera components, microphones, speakers, radio frequency circuits, input units, sensors (such as acceleration sensors, angular velocity sensors, light sensors, etc.), audio circuits, WiFi modules, power supplies, Bluetooth modules and other components. This will not be described again.
  • Embodiments of the present application also provide a computer-readable storage medium.
  • the computer-readable storage medium stores at least one program code.
  • the program code is loaded and executed by a processor to implement the screen display method described in the above embodiments. .
  • Embodiments of the present application provide a computer program product.
  • the computer program product includes computer instructions, and the computer instructions are stored in a computer-readable storage medium.
  • the processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the screen display method provided in various optional implementations of the above aspect.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

一种画面显示方法、装置、设备、存储介质及程序产品,属于显示技术领域。该方法包括:获取至少一路图像数据,所述至少一路图像数据的来源包括本地设备和源端设备中的至少一种,所述源端设备为进行画面重定向的设备(201);基于所述至少一路图像数据,通过多路渲染线程在显示窗体中进行画面渲染,得到渲染画面,同一显示窗体支持显示多路画面(202);通过所述显示窗体对应的显示屏显示所述渲染画面(203)。

Description

画面显示方法、装置、设备、存储介质及程序产品
本申请要求于2022年04月25日提交的申请号为202210443092.5、发明名称为“画面显示方法、装置、设备、存储介质及程序产品”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及显示技术领域,特别涉及一种画面显示方法、装置、设备、存储介质及程序产品。
背景技术
随着屏幕显示技术的不断发展更新,人们对于在同一屏幕进行多画面显示,或者同一画面显示在多个屏幕的需求越来越迫切。
相关技术中,针对同一屏幕多画面显示或者同一画面多屏幕显示都各自在设备上得到实现,但同一设备只能实现其中一种功能,无法做到对多种可能的画面显示形式进行统一处理。
发明内容
本申请实施例提供了一种画面显示方法、装置、设备、存储介质及程序产品。所述技术方案如下:
一方面,本申请实施例提供了一种画面显示方法,所述方法包括:
获取至少一路图像数据,所述至少一路图像数据的来源包括本地设备和源端设备中的至少一种,所述源端设备为进行画面重定向的设备;
基于所述至少一路图像数据,通过多路渲染线程在显示窗体中进行画面渲染,得到渲染画面,其中,同一显示窗体支持显示多路画面;
通过所述显示窗体对应的显示屏显示所述渲染画面。
另一方面,本申请实施例提供了一种画面显示装置,所述装置包括:
数据获取模块,用于获取至少一路图像数据,所述至少一路图像数据的来源包括本地设备和源端设备中的至少一种,所述源端设备为进行画面重定向的设备;
画面渲染模块,用于基于所述至少一路图像数据,通过多路渲染线程在显示窗体中进行画面渲染,得到渲染画面,其中,同一显示窗体支持显示多路画面;
显示模块,用于通过所述显示窗体对应的显示屏显示所述渲染画面。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的画面显示方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上述方面所述的画面显示方法。
另一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的画面显示方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域 普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的实施环境的示意图;
图2示出了本申请一个示例性实施例提供的画面显示方法的流程图;
图3是本申请一个示例性实施例示出的多路视频显示方法的示意图;
图4示出了本申请另一个示例性实施例提供的画面显示方法的流程图;
图5是本申请一个示例性实施例示出的多路渲染数据流与模块交互图;
图6是本申请一个示例性实施例示出的多路渲染过程的流程图;
图7是本申请一个示例性实施例示出的显示窗体代理的实施示意图;
图8是本申请一个示例性实施例示出的多屏异显的实施示意图;
图9是本申请一个示例性实施例示出的多屏同显的实施示意图;
图10是本申请一个示例性实施例示出的同屏多显的实施示意图;
图11示出了本申请一个实施例提供的画面显示装置的结构框图;
图12示出了本申请一个示例性实施例提供的计算机设备的结构方框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1示出了本申请一个示例性实施例提供的实施环境的示意图。该实施环境可以包括:至少一个源端设备110以及至少一个目的端设备120。
源端设备110是具有重定向功能的电子设备,其可以是智能手机、平板电脑、个人计算机等移动终端。图1中以源端设备110包括平板电脑111以及智能手机112为例进行说明。
源端设备110中具有重定向需求的对象被称为重定向对象,该重定向对象可以是屏幕镜像或者重定向应用,且重定向对象的重定向内容可以包括视频、音频以及控制中的至少一种。该重定向应用可以为导航应用、视频类应用、游戏类应用等等,本申请实施例并不对画面显示应用的具体类型进行限定。可选的,当重定向对象为应用时,重定向过程中该应用可以处于前台运行状态或后台运行状态。
本申请实施例中,同一源端设备可以同时对至少两个重定向对象进行重定向。比如,可以同时对屏幕镜像以及视频类应用进行画面显示,也可以同时对视频类应用以及导航类应用进行画面显示。其中,源端设备支持同时重定向的重定向对象的数量具有上限,且该上限与源端设备的处理性能相关。
目的端设备120是用于进行重定向结果展示的电子设备,其可以是智能手机、平板电脑、个人计算机、智能电视或者车载终端(比如车机)等等。图1中以目的端设备120包括第一车载终端121和第二车载终端122为例进行说明,其中,第一车载终端121和第二车载终端122设置在同一车辆中,且第一车载终端121和第二车载终端122分别由不同的SoC(System on Chip,系统级芯片)控制。比如,第一车载终端121为设置在车辆前排的车载终端,第二车载终端122为设置在车辆后排的车载终端。
可选的,目的端设备120具有至少一块屏幕。如图1所示,第一车载终端121具有第一屏幕1211以及第二屏幕1212(均由第一车载终端121的第一SoC 1213控制),第二车载终端122具有第三屏幕1221和第四屏幕1222(均由第二车载终端122的第二SoC 1223控制)。
在一些实施例中,当目的端设备120具有至少两块屏幕时,至少两块屏幕可以同时显示不同的画面内容,或者,相同画面内容,且各块屏幕中显示的画面内容可以为单一画面对象,也可以为多个画面对象(分屏显示多个画面对象)。
需要说明的是,目的端设备除了能够显示源端设备重定向的画面外,还可以显示本地应用的应用画面,或者,本地或网络视频,或者,本地摄像头采集到的图像,即目的端设备的画面来源可以包括源端设备和本地设备中的至少一种。
本申请实施例中的多路画面显示体现在多屏同显(多个显示屏显示相同画面)、多屏异显(多个显示屏显示不同画面)、同屏多显示(同一显示屏显示多路不同画面)。在一种可能的多路画面显示场景下,如图1所示,平板电脑111中的视频应用画面被显示在第一车载终端121的第一屏幕1211;第一游戏应用画面则被显示至第一车载终端121的第二屏幕1212。本地摄像头画面被显示至第一车载终端121的第一屏幕1211,本地应用画面被显示至第一车载终端121的第二屏幕1212,并与第一游戏应用分屏显示。智能手机112中的导航应用被显示至第一车载终端121的第一屏幕1211,并与视频应用和本地摄像头画面分屏显示;智能手机112中的第二游戏应用被显示至第二车载终端122的第三屏幕1221和第四屏幕1222,即第三屏幕1221和第四屏幕1222显示相同画面内容。
需要说明的是,源端设备110和目的端设备120之间采用的连接方式可以包括Wlan AP模式、WiFi-P2P、USB有线连接、移动数据网络中的至少一种,本申请实施例对此并不进行限定。
此外,上述实施例仅以移动终端向车载终端进行画面显示为例进行(即车机场景)示意性的说明,本申请实施例提供的方案可以应用于其他多路画面显示场景,本实施例并不对具体的应用场景构成限定。
上述实施例仅以重定向场景为例说明,本申请实施例提供的方案可以不包含源端设备。
本申请实施例提供的方案,可以用于图1中的目的端设备,也可以用于其他具有多路画面显示需求的设备,为了方便表述,下述实施例中以画面显示方法用于计算机设备为例进行说明,但并不对此构成限定。
请参考图2,其示出了本申请一个示例性实施例提供的画面显示方法的流程图,本申请实施例以该方法应用于计算机设备为例进行说明,该方法包括:
步骤201,获取至少一路图像数据,至少一路图像数据的来源包括本地设备和源端设备中的至少一种,源端设备为进行画面重定向的设备。
为实现至少一路画面显示,计算机设备需要获取各路画面对应的图像数据。其中,计算机设备既可以对本地设备中的画面进行显示,也可以通过重定向技术对源端设备中的画面进行显示。
在一种可能的实施方式中,计算机设备对本地设备中的画面进行显示,通过显示采集模块获取本地应用的应用图像数据,或者,通过本地摄像头获取摄像头图像数据,或者,通过视频解码模块对本地视频流和网络视频流进行解码,获取视频解码器输出的视频图像数据。
在一种可能的实施方式中,计算机设备对源端设备中的画面进行显示,计算机设备作为目的端设备,利用重定向技术需要在源端和目的端分别建立视频重定向器。在源端设备对应用图像数据和摄像头图像数据进行编码之后,由源端视频重定向器向目的端视频重定向器传输编码信息,计算机设备通过视频解码模块对编码信息进行解码,获取源端设备中的图像数据。
示意性的,如图3所示,源端设备31与目的端设备32之间基于重定向技术,分别建立源端视频重定向器316和目的端视频重定向器326,从而通过重定向器之间的链路进行图像数据传输。在从源端设备31处获取图像数据的情况下,第一显示采集模块313对第一应用311中的画面进行数据采集,所采集的应用图像数据与第一摄像头312输出的摄像头图像数据均需要由视频编码模块314进行编码,编码数据经过源端视频重定向器316向目的端视频重定向器326传输,并在目的端设备32中经由视频解码模块327进行解码,从而获得源端设备31中的图像数据。在多个应用需要进行画面显示的情况下,由源端视频处理模块315负责统一处理各个应用的图像数据。
在计算机设备作为目的端设备32,从本地获取图像数据的情况下,计算机设备直接获取第二摄像头323中的摄像头图像数据,通过第二显示采集模块325采集获得第二应用322中的应用图像数据,对本地或网络视频流321由单端视频流播放器324经视频解码模块327进 行解码,从而获得视频图像数据。
步骤202,基于至少一路图像数据,通过多路渲染线程在显示窗体中进行画面渲染,得到渲染画面,其中,同一显示窗体支持显示多路画面。
为了使各路画面能够在对应的显示屏中显示,计算机设备为每一个显示屏创建对应的显示窗体,并通过多路渲染线程在显示窗体中进行画面渲染,从而得到渲染画面。
在一些实施例中,显示窗体与显示屏一一对应。
在一种可能的实施方式中,存在多路画面在至少两个显示屏中显示,计算机设备为每一个显示屏创建对应的显示窗体,其中,显示窗体为Activity组件,启动时可指定在某一个显示屏中。进一步的,计算机设备通过多路渲染线程统一在各个显示窗体中进行画面渲染,得到渲染画面。
示意性的,如图3所示,计算机设备根据获取的各路图像数据,通过多路渲染线程328在第一显示窗体329和第二显示窗体3210中分别进行画面渲染,得到渲染画面。
步骤203,通过显示窗体对应的显示屏显示渲染画面。
计算机设备通过各个显示窗体对应的显示屏显示渲染画面。
示意性的,如图3所示,计算机设备通过第一显示屏331对第一显示窗体329中的渲染画面进行显示,通过第二显示屏332对第二显示窗体3210中的渲染画面进行显示。
综上所述,本申请实施例中,计算机设备从本地设备和源端设备中的至少一种中,获取至少一路图像数据,并通过多路渲染线程在显示窗体中对其进行画面渲染,得到渲染画面,最终通过与显示窗体对应的显示屏显示该渲染画面,其中,同一显示窗体支持显示多路画面。采用本申请实施例提供的一种统一的多路画面显示框架,能够通过统一的多路渲染线程,在显示屏对应的显示窗体中对多来源(包括本地设备和重定向设备)的图像数据进行渲染,并支持在同一显示窗体内渲染多路画面,从而实现对多屏同显(多个显示屏显示相同画面)、多屏异显(多个显示屏显示不同画面)、同屏多显示(同一显示屏显示多路不同画面)等显示场景的支持。
可选的,基于至少一路图像数据,通过多路渲染线程在显示窗体中进行画面渲染,得到渲染画面,包括:
通过多路渲染线程创建显示窗体对应的渲染模块,其中,不同显示窗体对应不同渲染模块;
基于至少一路图像数据,通过渲染模块在对应的显示窗体中进行画面渲染,得到渲染画面。
可选的,基于至少一路图像数据,通过渲染模块在对应的显示窗体中进行画面渲染,得到渲染画面,包括:
创建图像数据对应的渲染对象,渲染对象包括顶点坐标和纹理对象;
将渲染对象添加至对应的渲染模块;
基于渲染对象,通过渲染模块在对应的显示窗体中进行画面渲染,得到渲染画面。
可选的,创建图像数据对应的渲染对象,包括:
在图像数据对应单一显示屏的情况下,基于图像数据对应的表面纹理生成单一渲染对象;
在图像数据对应至少两个显示屏的情况下,基于图像数据对应的表面纹理生成至少两个渲染对象,其中,不同渲染对象对应不同显示窗体。
可选的,基于渲染对象,通过渲染模块在对应的显示窗体中进行画面渲染,得到渲染画面,包括:
在渲染模块中包含至少两个渲染对象的情况下,确定各个渲染对象的布局信息;
基于各个渲染对象的布局信息,通过渲染模块在显示窗体中进行多路画面渲染,得到渲染画面。
可选的,在渲染模块中包含至少两个渲染对象的情况下,确定各个渲染对象的布局信息, 包括:
在渲染模块中包含至少两个渲染对象的情况下,通过渲染模块调用多路布局模块,获取各个渲染对象在显示窗体中的显示坐标以及显示尺寸。
可选的,基于各个渲染对象的布局信息,通过渲染模块在显示窗体中进行多路画面渲染,得到渲染画面,包括:
基于各个渲染对象的布局信息,通过渲染模块在对应的目标表面上渲染各个渲染对象对应的画面,其中,不同渲染模块对应不同表面;
通过显示窗体的表面视图控件展示目标表面。
可选的,方法还包括:
在渲染模块中包含的渲染对象发生变更的情况下,更新变更后各个渲染对象的布局信息,渲染对象的变更方式包括增加或删除;
基于更新后的布局信息,通过渲染模块在对应的显示窗体中进行画面更新渲染。
可选的,方法还包括:
确定各路图像数据对应的显示屏;
在不存在显示屏对应的显示窗体的情况下,通过显示窗体代理为显示屏创建显示窗体;
在存在显示屏对应的显示窗体的情况下,通过显示窗体代理选择复用显示屏对应的显示窗体。
可选的,方法还包括:
通过显示窗体代理获取显示窗体包含的显示实例;
在显示窗体中不包含显示实例的情况下,通过显示窗体代理销毁显示窗体。
可选的,获取至少一路图像数据,包括如下至少一种方式:
获取本地应用的应用图像数据;
获取视频解码器输出的视频图像数据,视频解码器用于对本地视频流、网络视频流或者重定向视频流进行解码,重定向视频流由源端设备发送;
获取本地摄像头输出的摄像头图像数据。
请参考图4,其示出了本申请另一个示例性实施例提供的画面显示方法的流程图,本申请实施例以该方法应用于图1所示的实施环境为例进行说明,该方法包括:
步骤401,获取至少一路图像数据,至少一路图像数据的来源包括本地设备和源端设备中的至少一种,源端设备为进行画面重定向的设备。
本步骤的实施方式可以参考上述步骤201,本实施例在此不作赘述。
步骤402,通过多路渲染线程创建显示窗体对应的渲染模块,其中,不同显示窗体对应不同渲染模块。
由于多路渲染线程在各个显示窗体中进行画面渲染,需要由具体的渲染模块负责执行具体的渲染任务,因此,计算机设备通过多路渲染线程创建各个显示窗体对应的渲染模块,该渲染模块负责对应显示窗体内各路画面的渲染。
示意性的,如图5所示,开放图形库(Open Graphics Library,OpenGL)多路渲染线程581创建第一显示窗体561对应的第一OpenGL渲染模块541,创建第二显示窗体562对应的第二OpenGL渲染模块542。
步骤403,基于至少一路图像数据,通过渲染模块在对应的显示窗体中进行画面渲染,得到渲染画面。
计算机设备基于至少一路图像数据,通过渲染模块在对应的显示窗体中进行布局渲染,从而得到图像数据对应的渲染画面,并在显示屏中显示。
在一种可能的实施方式中,该过程包括以下步骤:
1、创建图像数据对应的渲染对象,渲染对象包括顶点坐标和纹理对象。
计算机设备根据获取的图像数据,创建对应的渲染对象,该渲染对象也可以被称为 OpenGL逻辑视图。渲染对象包括顶点坐标和纹理对象,其中,顶点坐标用于表示图像数据在显示窗体中的位置信息,纹理对象用于表示图像数据在显示窗体中的纹理表现。
在图像数据对应单一显示屏的情况下,计算机设备基于图像数据对应的表面纹理生成单一渲染对象。
由于同一路画面只需要在一个显示屏中显示,因此计算机设备只需要基于图像数据对应的表面纹理(SurfaceTexture)生成单一渲染对象。
在图像数据对应至少两个显示屏的情况下,计算机设备基于图像数据对应的表面纹理生成至少两个渲染对象,其中,不同渲染对象对应不同显示窗体。
由于同一路画面需要在至少两个显示屏中显示,即同屏多显,比如,同一画面投屏到目的端设备的两个屏幕,或者,同一应用显示在两个屏幕上,因此计算机设备需要基于图像数据对应的表面纹理生成至少两个渲染对象,该渲染对象与显示屏对应的显示窗体一一对应。
示意性的,如图5所示,第一视频解码器511生成的图像数据对应两个显示屏,因此计算机设备基于该图像数据对应的第一表面纹理521生成两个渲染对象,分别为第一OpenGL渲染对象531和第二OpenGL渲染对象532。
第二视频解码器512和第三视频解码器513生成的图像数据均对应一个显示屏,因此计算机设备基于两路图像数据对应的第二表面纹理522和第三表面纹理523,分别生成第三OpenGL渲染对象533和第四OpenGL渲染对象534。
2、将渲染对象添加至对应的渲染模块。
在渲染对象单独显示在一个显示屏的情况下,计算机设备将该渲染对象添加至对应的渲染模块;在多个渲染对象共同显示在一个显示屏的情况下,计算机设备将多个渲染对象共同添加至对应的渲染模块。
示意性的,如图5所示,计算机设备将第一OpenGL渲染对象531添加至第一OpenGL渲染模块541。
计算机设备将第二OpenGL渲染对象532、第三OpenGL渲染对象533和第四OpenGL渲染对象534均添加至第二OpenGL渲染模块542。
3、基于渲染对象,通过渲染模块在对应的显示窗体中进行画面渲染,得到渲染画面。
在一种可能的实施方式中,计算机设备为渲染模块调用渲染上下文环境,在对应显示窗体中进行画面渲染,得到渲染画面,其中,渲染上下文环境封装了相关的应用程序编程接口,为渲染模块提供实际的渲染能力。
示意性的,如图5所示,OpenGL渲染上下文环境592为第一OpenGL渲染模块541和第二OpenGL渲染模块542提供实际的渲染能力。
在渲染模块中包含一个渲染对象的情况下,计算机设备根据该渲染对象,通过渲染模块在对应的显示窗体中进行画面渲染,并利用对应的表面视图控件(SurfaceView)对渲染合成的画面进行显示。
示意性的,如图5所示,第一OpenGL渲染模块541中仅包含第一OpenGL渲染对象531,因此计算机设备根据该渲染对象在对应的第一显示窗体561中进行画面渲染,并利用对应的第一表面视图控件551对渲染画面进行显示。
在渲染模块中包含至少两个渲染对象的情况下,计算机设备需要确定各个渲染对象的布局信息。
在计算机设备需要在同一显示屏中显示多路画面的情况下,由于渲染模块中包含至少两个渲染对象,且各个渲染对象具体需要显示的画面比例和大小尺寸都不尽相同,因此计算机设备需要通过调用多路布局模块,获取各个渲染对象在显示窗体中的显示坐标以及显示尺寸。
其中,多路布局模块根据渲染对象所对应图像数据来源的属性,定制化地动态生成最优的布局样式。计算机设备根据图像数据对应显示画面的长宽比、横竖屏状态、接入顺序,在兼顾布局工整性和均衡性的同时,尽可能保证最高的屏占比。
在一种可能的实施方式中,计算机设备根据各路画面原始的长宽比和横竖屏状态,在画 面不变形的情况下,对各路画面进行缩放,并兼顾各路画面属性,合理调整缩放比例,对各路画面进行布局,从而达到最高的屏占比。
计算机设备基于各个渲染对象的布局信息,通过渲染模块在显示窗体中进行多路画面渲染,得到渲染画面。
在一种可能的实施方式中,计算机设备基于各个渲染对象的布局信息,通过渲染模块在对应的目标表面上渲染各个渲染对象对应的画面,其中,不同渲染模块对应不同表面。进一步的,计算机设备通过显示窗体的表面视图控件展示目标表面。
不同于相关技术中,计算机设备对各路画面在各自的表面视图控件中渲染显示,本实施例中,计算机设备通过渲染模块在对应的目标表面上渲染各个渲染对象对应的画面,并通过显示窗体对应的同一个表面视图控件,对渲染合成后的画面进行显示。
示意性的,如图5所示,第二OpenGL渲染模块542中包含第二OpenGL渲染对象532、第三OpenGL渲染对象533和第四OpenGL渲染对象534三个渲染对象,计算机设备通过调用多路布局模块591,根据各个渲染对象对应图像数据来源的属性,对三个OpenGL渲染对象进行合理布局,并通过第二OpenGL渲染模块542在对应目标表面上渲染各个渲染对象对应的画面,进一步,通过第二显示窗体562对应的第二表面视图控件552展示目标表面。
步骤404,通过显示窗体对应的显示屏显示渲染画面。
示意性的,如图5所示,计算机设备通过第一显示屏571对第一显示窗体561中的渲染画面进行显示,通过第二显示屏572对第二显示窗体562中的渲染画面进行显示。
本申请实施例中,计算机设备通过多路渲染线程创建显示窗体对应的渲染模块,并利用渲染上下文环境为渲染模块提供实际的渲染能力,由渲染模块根据图像数据进行画面渲染,此外,在多路图像数据对应同一显示窗体的情况下,通过调用多路布局模块产生布局信息,再由渲染模块进行统一渲染,利用表面视图控件对渲染合成的画面进行显示,有助于提升渲染性能。
结合上述实施例,请参考图6,其示出了本申请一个示例性实施例提供的多路渲染过程的流程图。
步骤601,获取渲染线程句柄。
计算机设备为显示窗体61获取渲染线程句柄,后续通过渲染线程句柄调用OpenGL多路渲染线程62。
步骤602,创建OpenGL线程实例。
在不存在OpenGL多路渲染线程的情况下,计算机设备创建OpenGL多路渲染线程实例,由显示窗体通过渲染线程句柄调用。
步骤603,创建管理上下文环境的实例。
计算机设备根据OpenGL多路渲染线程创建管理上下文环境的实例。
步骤604,返回OpenGL上下文环境句柄。
计算机设备将OpenGL上下文环境句柄返回至OpenGL多路渲染线程中,后续通过OpenGL上下文环境句柄调用OpenGL渲染上下文环境63。
步骤605,返回OpenGL线程句柄。
计算机设备将OpenGL线程句柄返回至对应显示窗体。
步骤606,初始化环境。
计算机设备对显示窗体进行初始化环境。
步骤607,创建OpenGL渲染模块。
计算机设备为显示窗体创建OpenGL渲染模块,其中显示窗体与OpenGL渲染模块一一对应。
步骤608,获取OpenGL渲染模块句柄。
计算机设备从OpenGL渲染模块64中获取OpenGL渲染模块句柄,后续通过OpenGL渲 染模块句柄调用OpenGL渲染模块64。
步骤609,启动线程。
计算机设备为显示窗体61启动OpenGL多路渲染线程62。
步骤610,创建OpenGL上下文(context)。
计算机设备通过调用OpenGL渲染上下文环境63创建OpenGL上下文。
步骤611,开始创建渲染模块当前的表面(surface)。
计算机设备为OpenGL渲染模块创建对应的目标表面,使得OpenGL渲染模块在对应目标表面上进行画面渲染。
步骤612,创建OpenGL surface并切换到当前表面(surface)。
在存在多个OpenGL渲染模块对画面进行渲染的情况下,计算机设备创建OpenGL surface并切换到当前表面,保证OpenGL渲染模块在对应目标表面上进行画面渲染。
步骤613,创建OpenGL渲染对象。
计算机设备根据图像数据创建OpenGL渲染对象65。
步骤614,获取OpenGL渲染对象句柄。
计算机设备从OpenGL渲染对象中获取OpenGL渲染对象句柄,后续通过OpenGL渲染对象句柄调用OpenGL渲染对象65。
步骤615,添加OpenGL渲染对象。
计算机设备将OpenGL渲染对象添加到OpenGL多路渲染线程62中,根据OpenGL渲染对象对画面进行渲染。
步骤616,布局和绘制。
计算机设备在OpenGL渲染线程中调用OpenGL渲染模块,通过OpenGL渲染模块进行布局和绘制。
步骤617,绘制OpenGL渲染对象。
进一步的,计算机设备通过OpenGL渲染模块64对OpenGL渲染对象进行绘制渲染。
在渲染模块中包含至少两个渲染对象的情况下,渲染对象会根据画面显示需要发生变更。
在一种可能的实施方式中,在渲染模块中包含的渲染对象发生变更的情况下,为了根据各个渲染对象对应图像数据来源的属性,对渲染对象进行合理布局。计算机设备需要更新变更后各个渲染对象的布局信息,其中,渲染对象的变更方式包括增加或删除。
进一步的,计算机设备基于更新后的布局信息,通过渲染模块在对应的显示窗体中进行画面更新渲染。
上述实施例中,计算机设备在渲染模块中包含的渲染对象发生变更的情况下,能够根据渲染对象对应图像数据来源的属性,动态地对渲染对象合理布局,提升了渲染性能。此外,在渲染对象发生变更的情况下,计算机设备不再需要创建多余的表面视图控件,只需要通过渲染模块对变更后的渲染对象进行渲染合成,由同一表面视图控件对合成后的画面进行显示。
为了保证显示屏对应的显示窗体能够根据具体显示需要运行使用,计算机设备中通过显示窗体代理对各个显示窗体进行管理,以实现在正确时机创建、复用和销毁显示窗体。
在一种可能的实施方式中,计算机设备首先确定各路图像数据对应的显示屏,在不存在显示屏对应的显示窗体的情况下,通过显示窗体代理为显示屏创建显示窗体;在存在显示屏对应的显示窗体的情况下,通过显示窗体代理选择复用显示屏对应的显示窗体。进一步的,计算机设备通过显示窗体代理获取显示窗体包含的显示实例,在显示窗体中不包含显示实例的情况下,通过显示窗体代理销毁显示窗体。
示意性的,如图7所示,在确定第一图像数据711对应显示屏731,且不存在显示窗体的情况下,计算机设备通过显示窗体代理741创建显示窗体721。
在增加一路图像数据对应显示屏731的情况下,计算机设备通过显示窗体代理741复用 显示窗体721,对第二图像数据712进行处理。
在没有图像数据对应显示屏731的情况下,计算机设备通过显示窗体代理741销毁显示窗体721。
上述实施例中,计算机设备能够通过显示窗体代理对显示窗体进行管理,根据画面显示需要,在正确的时机创建、复用和销毁显示窗体,从而避免显示窗体的浪费,减少画面显示过程中所占的存储空间。
根据本申请实施例提供的方案,计算机设备可同时支持同屏多显、多屏同显和多屏异显场景。下面对实际应用举例说明:
在利用多个显示屏显示不同画面的情况下,计算机设备对各路图像数据分别处理,通过多路渲染线程在对应的显示窗体中进行画面渲染,最终在对应的显示屏中进行显示。
示意性的,如图8所示,计算机设备需要显示的画面分别来自两个源端设备和本地设备,四个画面在四个显示屏中分别显示。在第一源端设备81中,第一编码器812对第一应用811的图像数据进行编码,第二编码器814对第二应用813的图像数据进行编码,分别传输到目的端设备83中,由对应的第一解码器831和第二解码器832进行解码,从而获取图像数据;在第二源端设备82中,第三编码器822对第三应用821的图像数据进行编码,传输到目的端设备83中,由第三解码器833进行解码,获取图像数据;本地视频流835由第四解码器834进行解码得到图像数据。进一步的,计算机设备通过多路渲染线程836,在各个对应显示窗体中进行画面渲染,由显示窗体代理8311对第一显示窗体837、第二显示窗体838、第三显示窗体839和第四显示窗体8310进行管理,最终在第一显示屏841、第二显示屏842、第三显示屏843和第四显示屏844中分别进行画面显示。
在利用多个显示屏显示同一画面的情况下,存在两种可能的方式,分别为同一目的端设备的多个显示屏显示同一画面和多个目的端设备的显示屏显示同一画面。
示意性的,如图9所示,计算机设备对源端设备91中的应用911进行画面显示,由编码器912对应用911中的图像数据进行编码,分别传输到第一目的端设备92和第二目的端设备93中,由第一解码器921和第二解码器931分别对其进行解码,在第一目的端设备92中通过第一多路渲染线程922分别在第一显示窗体923和第二显示窗体924中进行画面渲染,在对应第一显示屏941和第二显示屏942中进行画面显示,其中第一显示窗体代理925对第一显示窗体923和第二显示窗体924进行管理;在第二目的端设备93中通过第二多路渲染线程932在第三显示窗体933中进行画面渲染,在对应第三显示屏943中进行画面显示,其中第二显示窗体代理934对第三显示窗体933进行管理。
在利用同一显示屏显示多个画面的情况下,计算机设备对各路图像数据分别处理,通过在多路渲染线程中调用多路布局模块,对各个画面进行合理布局,统一渲染,最终在同一显示屏中显示。
示意性的,如图10所示,计算机设备需要显示的画面分别来自两个源端设备和本地设备,四个画面在同一显示屏中显示。在第一源端设备1001中,第一编码器1012对第一应用1011的图像数据进行编码,第二编码器1014对第二应用1013的图像数据进行编码,分别传输到目的端设备1003中,由对应的第一解码器1031和第二解码器1032进行解码,从而获取图像数据;在第二源端设备1002中,第三编码器1022对第三应用1021的图像数据进行编码,传输到目的端设备1003中,由第三解码器1033进行解码,获取图像数据;本地视频流1035由第四解码器1034进行解码得到图像数据。进一步的,计算机设备通过多路渲染线程1036,调用多路布局模块1037,根据图像数据来源的属性进行布局,在显示窗体1038中进行画面渲染,在显示屏1041中进行画面显示,其中显示窗体代理1039对显示窗体1038进行管理。
根据本申请实施例提供的方案,对源端设备和目的端设备的数量,以及源端设备和目的端设备中图像数据来源路数和显示屏数量不作具体限定。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图11,其示出了本申请一个实施例提供的画面显示装置的结构框图。该装置可以包括:
数据获取模块1101,用于获取至少一路图像数据,所述至少一路图像数据的来源包括本地设备和源端设备中的至少一种,所述源端设备为进行画面重定向的设备;
画面渲染模块1102,用于基于所述至少一路图像数据,通过多路渲染线程在显示窗体中进行画面渲染,得到渲染画面,其中,同一显示窗体支持显示多路画面;
显示模块1103,用于通过所述显示窗体对应的显示屏显示所述渲染画面。
可选的,所述画面渲染模块1102,用于:
通过所述多路渲染线程创建显示窗体对应的渲染模块,其中,不同显示窗体对应不同渲染模块;
基于所述至少一路图像数据,通过所述渲染模块在对应的显示窗体中进行画面渲染,得到所述渲染画面。
可选的,所述画面渲染模块1102,用于:
创建所述图像数据对应的渲染对象,所述渲染对象包括顶点坐标和纹理对象;
将所述渲染对象添加至对应的渲染模块;
基于所述渲染对象,通过所述渲染模块在对应的显示窗体中进行画面渲染,得到所述渲染画面。
可选的,所述画面渲染模块1102,用于:
在所述图像数据对应单一显示屏的情况下,基于所述图像数据对应的表面纹理生成单一渲染对象;
在所述图像数据对应至少两个显示屏的情况下,基于所述图像数据对应的表面纹理生成至少两个渲染对象,其中,不同渲染对象对应不同显示窗体。
可选的,所述画面渲染模块1102,用于:
在所述渲染模块中包含至少两个渲染对象的情况下,确定各个所述渲染对象的布局信息;
基于各个所述渲染对象的所述布局信息,通过所述渲染模块在所述显示窗体中进行多路画面渲染,得到所述渲染画面。
可选的,所述画面渲染模块1102,用于:
在所述渲染模块中包含至少两个渲染对象的情况下,通过所述渲染模块调用多路布局模块,获取各个所述渲染对象在所述显示窗体中的显示坐标以及显示尺寸。
可选的,所述画面渲染模块1102,用于:
基于各个所述渲染对象的所述布局信息,通过所述渲染模块在对应的目标表面上渲染各个所述渲染对象对应的画面,其中,不同渲染模块对应不同表面;
通过所述显示窗体的表面视图控件展示所述目标表面。
可选的,所述画面渲染模块1102,用于:
在所述渲染模块中包含的渲染对象发生变更的情况下,更新变更后各个渲染对象的所述布局信息,所述渲染对象的变更方式包括增加或删除;
基于更新后的所述布局信息,通过所述渲染模块在对应的显示窗体中进行画面更新渲染。
可选的,所述显示模块1103,用于:
确定各路所述图像数据对应的显示屏;
在不存在所述显示屏对应的显示窗体的情况下,通过显示窗体代理为所述显示屏创建显示窗体;
在存在所述显示屏对应的显示窗体的情况下,通过所述显示窗体代理选择复用所述显示屏对应的显示窗体。
可选的,所述显示模块1103,用于:
通过所述显示窗体代理获取所述显示窗体包含的显示实例;
在所述显示窗体中不包含显示实例的情况下,通过所述显示窗体代理销毁所述显示窗体。
可选的,所述数据获取模块1101,用于:
获取本地应用的应用图像数据;
获取视频解码器输出的视频图像数据,所述视频解码器用于对本地视频流、网络视频流或者重定向视频流进行解码,所述重定向视频流由所述源端设备发送;
获取本地摄像头输出的摄像头图像数据。
综上所述,本申请实施例中,计算机设备从本地设备和源端设备中的至少一种中,获取至少一路图像数据,并通过多路渲染线程在显示窗体中对其进行画面渲染,得到渲染画面,最终通过与显示窗体对应的显示屏显示该渲染画面,其中,同一显示窗体支持显示多路画面。采用本申请实施例提供的一种统一的多路画面显示框架,能够通过统一的多路渲染线程,在显示屏对应的显示窗体中对多来源(包括本地设备和重定向设备)的图像数据进行渲染,并支持在同一显示窗体内渲染多路画面,从而实现对多屏同显(多个显示屏显示相同画面)、多屏异显(多个显示屏显示不同画面)、同屏多显示(同一显示屏显示多路不同画面)等显示场景的支持。
请参考图12,其示出了本申请一个示例性实施例提供的计算机设备的结构方框图。计算机设备1200可以包括一个或多个如下部件:处理器1210、存储器1220和显示屏1230。
处理器1210可以包括一个或者多个处理核心。处理器1210利用各种接口和线路连接整个计算机设备1200内的各个部分,通过运行或执行存储在存储器1220内的指令、程序、代码集或指令集,以及调用存储在存储器1220内的数据,执行计算机设备1200的各种功能和处理数据。可选地,处理器1210可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1210可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural-network Processing Unit,NPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;NPU用于实现人工智能(Artificial Intelligence,AI)功能;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1210中,单独通过一块芯片进行实现。
存储器1220可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器1220包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1220可用于存储指令、程序、代码、代码集或指令集。存储器1220可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储根据计算机设备1200的使用所创建的数据(比如音频数据、电话本)等。
显示屏1230是用于进行图像显示的组件。可选的,计算机设备1200中设置有至少一块显示屏。比如,该显示屏1230为智能手机的显示屏,或者,显示屏1230为车机控制的主驾显示屏和副驾显示屏,或者,该显示屏1230为折叠屏终端的折叠显示屏等等。
除此之外,本领域技术人员可以理解,上述附图所示出的计算机设备1200的结构并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,计算机设备1200中还包括摄像组件、麦克风、扬声器、射频电路、输入单元、传感器(比如加速度传感器、角速度传感器、光线传感器等等)、音频电路、WiFi模块、电源、蓝牙模块等部件,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如上各个实施例所述的画面显示方法。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的画面显示方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (25)

  1. 一种画面显示方法,所述方法包括:
    获取至少一路图像数据,所述至少一路图像数据的来源包括本地设备和源端设备中的至少一种,所述源端设备为进行画面重定向的设备;
    基于所述至少一路图像数据,通过多路渲染线程在显示窗体中进行画面渲染,得到渲染画面,其中,同一显示窗体支持显示多路画面;
    通过所述显示窗体对应的显示屏显示所述渲染画面。
  2. 根据权利要求1所述的方法,其中,所述基于所述至少一路图像数据,通过多路渲染线程在显示窗体中进行画面渲染,得到渲染画面,包括:
    通过所述多路渲染线程创建显示窗体对应的渲染模块,其中,不同显示窗体对应不同渲染模块;
    基于所述至少一路图像数据,通过所述渲染模块在对应的显示窗体中进行画面渲染,得到所述渲染画面。
  3. 根据权利要求2所述的方法,其中,所述基于所述至少一路图像数据,通过所述渲染模块在对应的显示窗体中进行画面渲染,得到所述渲染画面,包括:
    创建所述图像数据对应的渲染对象,所述渲染对象包括顶点坐标和纹理对象;
    将所述渲染对象添加至对应的渲染模块;
    基于所述渲染对象,通过所述渲染模块在对应的显示窗体中进行画面渲染,得到所述渲染画面。
  4. 根据权利要求3所述的方法,其中,所述创建所述图像数据对应的渲染对象,包括:
    在所述图像数据对应单一显示屏的情况下,基于所述图像数据对应的表面纹理生成单一渲染对象;
    在所述图像数据对应至少两个显示屏的情况下,基于所述图像数据对应的表面纹理生成至少两个渲染对象,其中,不同渲染对象对应不同显示窗体。
  5. 根据权利要求3所述的方法,其中,所述基于所述渲染对象,通过所述渲染模块在对应的显示窗体中进行画面渲染,得到所述渲染画面,包括:
    在所述渲染模块中包含至少两个渲染对象的情况下,确定各个所述渲染对象的布局信息;
    基于各个所述渲染对象的所述布局信息,通过所述渲染模块在所述显示窗体中进行多路画面渲染,得到所述渲染画面。
  6. 根据权利要求5所述的方法,其中,所述在所述渲染模块中包含至少两个渲染对象的情况下,确定各个所述渲染对象的布局信息,包括:
    在所述渲染模块中包含至少两个渲染对象的情况下,通过所述渲染模块调用多路布局模块,获取各个所述渲染对象在所述显示窗体中的显示坐标以及显示尺寸。
  7. 根据权利要求5所述的方法,其中,所述基于各个所述渲染对象的所述布局信息,通过所述渲染模块在所述显示窗体中进行多路画面渲染,得到所述渲染画面,包括:
    基于各个所述渲染对象的所述布局信息,通过所述渲染模块在对应的目标表面上渲染各个所述渲染对象对应的画面,其中,不同渲染模块对应不同表面;
    通过所述显示窗体的表面视图控件展示所述目标表面。
  8. 根据权利要求5所述的方法,其中,所述方法还包括:
    在所述渲染模块中包含的渲染对象发生变更的情况下,更新变更后各个渲染对象的所述布局信息,所述渲染对象的变更方式包括增加或删除;
    基于更新后的所述布局信息,通过所述渲染模块在对应的显示窗体中进行画面更新渲染。
  9. 根据权利要求1至8任一所述的方法,其中,所述方法还包括:
    确定各路所述图像数据对应的显示屏;
    在不存在所述显示屏对应的显示窗体的情况下,通过显示窗体代理为所述显示屏创建显示窗体;
    在存在所述显示屏对应的显示窗体的情况下,通过所述显示窗体代理选择复用所述显示屏对应的显示窗体。
  10. 根据权利要求9所述的方法,其中,所述方法还包括:
    通过所述显示窗体代理获取所述显示窗体包含的显示实例;
    在所述显示窗体中不包含显示实例的情况下,通过所述显示窗体代理销毁所述显示窗体。
  11. 根据权利要求1至8任一所述的方法,其中,所述获取至少一路图像数据,包括如下至少一种方式:
    获取本地应用的应用图像数据;
    获取视频解码器输出的视频图像数据,所述视频解码器用于对本地视频流、网络视频流或者重定向视频流进行解码,所述重定向视频流由所述源端设备发送;
    获取本地摄像头输出的摄像头图像数据。
  12. 一种画面显示装置,所述装置包括:
    数据获取模块,用于获取至少一路图像数据,所述至少一路图像数据的来源包括本地设备和源端设备中的至少一种,所述源端设备为进行画面重定向的设备;
    画面渲染模块,用于基于所述至少一路图像数据,通过多路渲染线程在显示窗体中进行画面渲染,得到渲染画面,其中,同一显示窗体支持显示多路画面;
    显示模块,用于通过所述显示窗体对应的显示屏显示所述渲染画面。
  13. 根据权利要求12所述的装置,其中,所述画面渲染模块,用于:
    通过所述多路渲染线程创建显示窗体对应的渲染模块,其中,不同显示窗体对应不同渲染模块;
    基于所述至少一路图像数据,通过所述渲染模块在对应的显示窗体中进行画面渲染,得到所述渲染画面。
  14. 根据权利要求13所述的装置,其中,所述画面渲染模块,用于:
    创建所述图像数据对应的渲染对象,所述渲染对象包括顶点坐标和纹理对象;
    将所述渲染对象添加至对应的渲染模块;
    基于所述渲染对象,通过所述渲染模块在对应的显示窗体中进行画面渲染,得到所述渲染画面。
  15. 根据权利要求14所述的装置,其中,所述画面渲染模块,用于:
    在所述图像数据对应单一显示屏的情况下,基于所述图像数据对应的表面纹理生成单一渲染对象;
    在所述图像数据对应至少两个显示屏的情况下,基于所述图像数据对应的表面纹理生成 至少两个渲染对象,其中,不同渲染对象对应不同显示窗体。
  16. 根据权利要求14所述的装置,其中,所述画面渲染模块,用于:
    在所述渲染模块中包含至少两个渲染对象的情况下,确定各个所述渲染对象的布局信息;
    基于各个所述渲染对象的所述布局信息,通过所述渲染模块在所述显示窗体中进行多路画面渲染,得到所述渲染画面。
  17. 根据权利要求16所述的装置,其中,所述画面渲染模块,用于:
    在所述渲染模块中包含至少两个渲染对象的情况下,通过所述渲染模块调用多路布局模块,获取各个所述渲染对象在所述显示窗体中的显示坐标以及显示尺寸。
  18. 根据权利要求16所述的装置,其中,所述画面渲染模块,用于:
    基于各个所述渲染对象的所述布局信息,通过所述渲染模块在对应的目标表面上渲染各个所述渲染对象对应的画面,其中,不同渲染模块对应不同表面;
    通过所述显示窗体的表面视图控件展示所述目标表面。
  19. 根据权利要求16所述的装置,其中,所述画面渲染模块,用于:
    在所述渲染模块中包含的渲染对象发生变更的情况下,更新变更后各个渲染对象的所述布局信息,所述渲染对象的变更方式包括增加或删除;
    基于更新后的所述布局信息,通过所述渲染模块在对应的显示窗体中进行画面更新渲染。
  20. 根据权利要求12至19任一所述的装置,其中,所述显示模块,用于:
    确定各路所述图像数据对应的显示屏;
    在不存在所述显示屏对应的显示窗体的情况下,通过显示窗体代理为所述显示屏创建显示窗体;
    在存在所述显示屏对应的显示窗体的情况下,通过所述显示窗体代理选择复用所述显示屏对应的显示窗体。
  21. 根据权利要求20所述的装置,其中,所述显示模块,用于:
    通过所述显示窗体代理获取所述显示窗体包含的显示实例;
    在所述显示窗体中不包含显示实例的情况下,通过所述显示窗体代理销毁所述显示窗体。
  22. 根据权利要求12至19任一所述的装置,其中,所述数据获取模块,用于:
    获取本地应用的应用图像数据;
    获取视频解码器输出的视频图像数据,所述视频解码器用于对本地视频流、网络视频流或者重定向视频流进行解码,所述重定向视频流由所述源端设备发送;
    获取本地摄像头输出的摄像头图像数据。
  23. 一种计算机设备,所述计算机设备包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至11任一所述的画面显示方法。
  24. 一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至11任一所述的画面显示方法。
  25. 一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储 在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如权利要求1至11任一所述的画面显示方法。
PCT/CN2022/143313 2022-04-25 2022-12-29 画面显示方法、装置、设备、存储介质及程序产品 WO2023207194A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210443092.5A CN115033195A (zh) 2022-04-25 2022-04-25 画面显示方法、装置、设备、存储介质及程序产品
CN202210443092.5 2022-04-25

Publications (1)

Publication Number Publication Date
WO2023207194A1 true WO2023207194A1 (zh) 2023-11-02

Family

ID=83119481

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/143313 WO2023207194A1 (zh) 2022-04-25 2022-12-29 画面显示方法、装置、设备、存储介质及程序产品

Country Status (2)

Country Link
CN (1) CN115033195A (zh)
WO (1) WO2023207194A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117475013A (zh) * 2023-12-21 2024-01-30 杭州海康威视数字技术股份有限公司 一种计算机设备和视频数据处理方法
CN117475013B (zh) * 2023-12-21 2024-05-31 杭州海康威视数字技术股份有限公司 一种计算机设备和视频数据处理方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033195A (zh) * 2022-04-25 2022-09-09 Oppo广东移动通信有限公司 画面显示方法、装置、设备、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235626A (zh) * 2020-10-15 2021-01-15 Oppo广东移动通信有限公司 视频渲染方法、装置、电子设备及存储介质
CN113970334A (zh) * 2020-07-23 2022-01-25 阿里巴巴集团控股有限公司 地图渲染方法、架构、设备及存储介质
CN113992966A (zh) * 2021-10-26 2022-01-28 Oppo广东移动通信有限公司 重定向方法、装置、设备、存储介质及程序产品
CN115033195A (zh) * 2022-04-25 2022-09-09 Oppo广东移动通信有限公司 画面显示方法、装置、设备、存储介质及程序产品

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113970334A (zh) * 2020-07-23 2022-01-25 阿里巴巴集团控股有限公司 地图渲染方法、架构、设备及存储介质
CN112235626A (zh) * 2020-10-15 2021-01-15 Oppo广东移动通信有限公司 视频渲染方法、装置、电子设备及存储介质
CN113992966A (zh) * 2021-10-26 2022-01-28 Oppo广东移动通信有限公司 重定向方法、装置、设备、存储介质及程序产品
CN115033195A (zh) * 2022-04-25 2022-09-09 Oppo广东移动通信有限公司 画面显示方法、装置、设备、存储介质及程序产品

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117475013A (zh) * 2023-12-21 2024-01-30 杭州海康威视数字技术股份有限公司 一种计算机设备和视频数据处理方法
CN117475013B (zh) * 2023-12-21 2024-05-31 杭州海康威视数字技术股份有限公司 一种计算机设备和视频数据处理方法

Also Published As

Publication number Publication date
CN115033195A (zh) 2022-09-09

Similar Documents

Publication Publication Date Title
US9715718B2 (en) Image processing device, image processing system, image processing method, and computer program for effecting changes in a selected display region
WO2020221056A1 (zh) 图像绘制的方法、装置、电子设备及计算机存储介质
US8331701B2 (en) Image processing device for displaying an image on a display
CN108108140B (zh) 一种多屏协同显示方法及存储装置及支持3d显示的设备
CN110070496B (zh) 图像特效的生成方法、装置和硬件装置
US20110022677A1 (en) Media Fusion Remote Access System
CN110989878A (zh) 小程序中的动画展示方法、装置、电子设备及存储介质
WO2023071546A1 (zh) 重定向方法、装置、设备、存储介质及程序产品
WO2023207194A1 (zh) 画面显示方法、装置、设备、存储介质及程序产品
EP4161067A1 (en) A method, an apparatus and a computer program product for video encoding and video decoding
JP7416351B2 (ja) タスクおよびワークフローのステートレス並列処理のための方法、装置およびコンピュータプログラム
CN104012059A (zh) 协处理器之间的直接链路同步通信
CN103986961B (zh) 一种基于qnx车载系统实现画中画的方法和装置
CN116821040B (zh) 基于gpu直接存储器访问的显示加速方法、装置及介质
CN113377479A (zh) 应用视觉主题的切换方法、装置、存储介质及终端
JP2022553019A (ja) リモート端末の没入型遠隔会議及びテレプレセンスのためのオーバーレイ処理のパラメータ
CN115220906A (zh) 音频/视频合成应用的云执行
CN114710702A (zh) 一种视频的播放方法和装置
CN112565869B (zh) 一种视频重定向的窗口融合方法、装置及设备
CN113094015A (zh) 全息多屏显示实现方法、系统、计算机设备和存储介质
CN110868471B (zh) 设备构建方法、装置及存储介质
US20110271195A1 (en) Method and apparatus for allocating content components to different hardward interfaces
KR102352570B1 (ko) 그룹 통화 화면을 제공하는 방법 및 시스템
KR102586860B1 (ko) 원격 단말들에 대한 몰입형 원격회의 및 텔레프레전스를 위한 상호작용 오버레이 취급
CN115150653B (zh) 媒体内容的展示方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22940000

Country of ref document: EP

Kind code of ref document: A1