WO2018119711A1 - Multimedia encoding/decoding method and device for multi-operating system, and electronic device - Google Patents

Multimedia encoding/decoding method and device for multi-operating system, and electronic device Download PDF

Info

Publication number
WO2018119711A1
WO2018119711A1 PCT/CN2016/112494 CN2016112494W WO2018119711A1 WO 2018119711 A1 WO2018119711 A1 WO 2018119711A1 CN 2016112494 W CN2016112494 W CN 2016112494W WO 2018119711 A1 WO2018119711 A1 WO 2018119711A1
Authority
WO
WIPO (PCT)
Prior art keywords
operating system
multimedia
host operating
codec
processing request
Prior art date
Application number
PCT/CN2016/112494
Other languages
French (fr)
Chinese (zh)
Inventor
李向远
Original Assignee
深圳前海达闼云端智能科技有限公司
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 深圳前海达闼云端智能科技有限公司 filed Critical 深圳前海达闼云端智能科技有限公司
Priority to CN201680002881.8A priority Critical patent/CN107996026A/en
Priority to PCT/CN2016/112494 priority patent/WO2018119711A1/en
Publication of WO2018119711A1 publication Critical patent/WO2018119711A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/127Prioritisation of hardware or computational resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present application relates to the field of virtualization technologies, and in particular, to a multi-operating system multimedia codec method, apparatus, and electronic device.
  • Mobile terminals have become an important tool for users' daily work and life. While mobile terminals are driving the rapid development of mobile Internet, mobile terminals contain rich and diverse information (such as enterprise data access, business communication, social networks, financial management, Games, etc.), mobile terminals have become the new focus of cybercrime. For information security and privacy protection, mobile virtualization has become the future development direction of mobile terminals.
  • Mobile virtualization allows multiple operating systems or virtual machines to run simultaneously on mobile phones or wireless handheld devices, using the Hypervisor to create a secure, stand-alone software runtime environment on the underlying hardware. With mobile virtualization, users do not need to carry two or more mobile devices to access multiple operating systems on a single physical handheld device. Mobile virtualization has significant security features.
  • the isolation provided by the virtualization technology can isolate multiple operating systems on a single terminal, and prevent processes on each operating system from adversely affecting other operating systems.
  • a typical application scenario is a mobile device such as a mobile phone through virtualization technology.
  • the separation of the enterprise system and the personal system is realized, and the potential harm caused by the process on the personal system is prevented, and the demand for the BYOD (Bring Your Own Device) is met by some enterprises with security requirements.
  • each virtual machine of the terminal must have a multimedia codec.
  • the guest operating system can only implement software codec through the CPU, resulting in video files of many formats. Unable to support, high power consumption, and smooth playback.
  • the guest's Guest OS can only implement software codec through the CPU, resulting in many formats of video. Files cannot be supported, playback is not smooth, and power consumption is high (heating, shortening battery life).
  • An object of the present application is to solve the technical problem that the guest OS of the terminal can only implement software codec through the CPU, which causes video files of many formats to be unable to be supported and played smoothly.
  • the embodiment of the present application provides a multi-operating system multimedia codec method, including:
  • the hardware codec in the host operating system is loaded and controlled to encode and decode the multimedia file.
  • the embodiment of the present application provides a multi-operating system multimedia codec device, including: a host operating system, a client operating system, and a vOpenMAX front-end Front end located in a guest operating system and located in a host operating system.
  • the vOpenMAX front end Front end is configured to receive, in the guest operating system, a multimedia processing request sent by the adaptation layer and send the multimedia processing request to the host operating system, where the multimedia processing request includes a multimedia file;
  • the vOpenMAX backend end end is configured to load and control a hardware codec in the host operating system to encode and decode the multimedia file in a host operating system OpenMAX integration layer IL.
  • an embodiment of the present application further provides an electronic device, where the electronic device includes: a memory, one or more processors, and one or more modules, where the one or more modules are stored in the In the memory, and configured to be executed by the one or more processors,
  • the one or more modules include instructions for performing the various steps in the method as described above.
  • an embodiment of the present application provides a computer program product for use in conjunction with an electronic device, the computer program product comprising a computer program embedded in a computer readable storage medium, the computer program comprising The electronic device is caused to execute instructions of the various steps in the method as described above.
  • the embodiment of the present application can code and decode the multimedia file by using a hardware codec in the host operating system in the integration layer IL of the OpenMAX of the guest operating system, thereby implementing the client operating system across the system.
  • the hardware codec of the host operating system is used to provide hardware acceleration capability for the guest operating system, and further, since the hardware codec can support multi-format files, and the codec speed is fast, and no CPU is required, the implementation of the present application is adopted.
  • the solution provided by the example can support multi-format files, play smoothly, and has low power consumption, which can prolong the battery life, and solve the problems that the video files of many existing formats cannot be supported, the playback is not smooth, and the power consumption is large.
  • FIG. 1 is a schematic structural diagram of a virtualization model in the prior art
  • FIG. 2 is a schematic flowchart showing the implementation of a multi-operating system multimedia codec method in Embodiment 1 of the present application;
  • FIG. 3 is a schematic structural diagram 1 of a multi-operating system multimedia codec device in Embodiment 2 of the present application;
  • FIG. 4 is a second schematic structural diagram of a multi-operating system multimedia codec device according to Embodiment 2 of the present application.
  • FIG. 5 is a schematic structural diagram of an electronic device according to Embodiment 3 of the present application.
  • FIG. 6 is a schematic structural diagram of a mobile phone in Embodiment 5 of the present application.
  • FIG. 7 is a schematic diagram showing a structure of a multi-operating system of an existing Android multimedia framework
  • FIG. 8 is a schematic structural diagram of multiple operating systems of an Android multimedia framework in Embodiment 6 of the present application.
  • FIG. 9 is a schematic structural diagram of a tablet computer in Embodiment 7 of the present application.
  • FIG. 1 is a schematic structural diagram of a virtualization model in the prior art. As shown in the figure, at the bottom is the entire physical system, that is, system hardware, which mainly includes a processor, a memory, and an input/output device; It is a virtualization layer that runs a virtual machine monitor (referred to as VMM or Hypervisor for short). The main function of the virtual machine monitor is to manage the real physical hardware platform and provide a corresponding virtual hardware platform for each virtual client.
  • the Hypervisor implements the above functions through a host.
  • the host runs a virtual machine (Host VM) on which the host operating system (Host OS) runs.
  • Host VM virtual machine
  • Host OS host operating system
  • FIG 1 shows an example of three virtual machines (VMs), each of which can be thought of as a small but complete computer system with its own “system hardware”, including its own processor, memory, and input and output. device.
  • VMs virtual machines
  • system hardware including its own processor, memory, and input and output. device.
  • the virtual machine's own operating system is running, such as Android, Windows or Linux.
  • the embodiment of the present application proposes a multi-system multimedia hardware virtualization solution based on OpenMAX IL Core, so that the guest OS can be accelerated by using the hardware of the Host OS through the virtualization technology, and the upper layer of the Guest OS can still support the software codec.
  • the choice of hardware codec that is, the Guest OS and the Host OS, can support two codecs at the same time, as explained below.
  • Open Multimedia Acceleration a multimedia application standard that includes application layer AI, integration layer IL and development layer DL, embedded processor or hardware codec module hardware manufacturer, can provide standard OpenMAX IL Layer software interface, software developers can develop multimedia programs based on this level of standardized interfaces.
  • the technical solution provided by the embodiment of the present application can be applied to all multimedia systems adopting the OpenMAX framework standard to implement hardware virtualization, including the Android multimedia framework (StageFright+OpenMAX) but not limited to Android.
  • FIG. 2 is a schematic flowchart of the implementation of the multi-operating system multimedia codec method in the embodiment of the present application. As shown in the figure, the multi-operating system multimedia codec method may include the following steps:
  • Step 201 Receive, in a guest operating system, a multimedia processing request sent by an adaptation layer, and send the multimedia processing request to a host operating system, where the multimedia processing request includes a multimedia file.
  • Step 202 Load and control a hardware codec in the host operating system to encode and decode the multimedia file in a host operating system OpenMAX integration layer IL.
  • the multiple operating systems may include a host operating system and a guest operating system, and the guest operating system may be one, two or more.
  • the embodiment of the present application may receive, in an OpenMAX integration layer IL of a guest operating system, a multimedia processing request sent by an adaptation layer and send the multimedia processing request to a host operating system, where the multimedia processing request may include a multimedia file;
  • the hardware codec in the host operating system is loaded and controlled to encode and decode the multimedia file.
  • the embodiment of the present application can code and decode the multimedia file by using a hardware codec in the host operating system in the integration layer IL of the OpenMAX of the guest operating system, thereby implementing the client operating system across the system.
  • the hardware codec of the host operating system is used to provide hardware acceleration capability for the guest operating system, and further, since the hardware codec can support multi-format files, and the codec speed is fast, and no CPU is required, the implementation of the present application is adopted.
  • the solution provided by the example can support multi-format files, play smoothly, and has low power consumption, which can prolong the battery life, and solve the problems that the video files of many existing formats cannot be supported, the playback is not smooth, and the power consumption is large.
  • the method before the receiving the multimedia processing request sent by the adaptation layer, the method may further include:
  • an adaptation layer of the guest operating system may select a suitable codec for the multimedia file and determine the class of the codec.
  • the class of codecs may include a software codec and a hardware codec.
  • the multimedia code is adapted to the codec, and the decoder of the multimedia file may be determined according to the encoding manner of the multimedia file, or the encoder of the multimedia file may be determined according to the decoding manner of the multimedia file.
  • codecs supporting the same format may include a hardware codec and a software codec, and the most suitable codec may be selected according to a preset rule when adapting the codec, for example, for example, : Select software codec for multimedia files with low resolution requirements, hardware codecs for multimedia files with high resolution requirements, etc.
  • the codec of the multimedia file is a hardware codec
  • sending a command to a hard codec component in the host operating system by cross-system communication calling a hardware codec in the host operating system to the multimedia
  • the file is coded and decoded.
  • the method provided by the embodiment of the present application may add a step of determining the codec category by modifying an adaptation layer in a guest operating system, and determine that the codec of the multimedia file is a hardware codec.
  • the multimedia file is coded and decoded by using a hardware codec in the host operating system for cross-system communication, the hardware operating code of the host operating system is implemented by the guest operating system across the system to achieve hardware acceleration.
  • the method may further include:
  • codec of the multimedia file is a software codec
  • software OpenMAX IL in the guest operating system loads and controls a software codec in the guest operating system to encode and decode the multimedia file .
  • the multimedia file may still be encoded and decoded using a software codec in the guest operating system.
  • SW Codec software codec
  • the receiving the multimedia processing request sent by the adaptation layer and the multimedia processing The request is sent to the host operating system, specifically: in the OpenMAX integration layer IL of the guest operating system, as an interface for cross-system communication, receiving a multimedia processing request sent by the adaptation layer and sending the multimedia processing request to the host operating system OpenMAX integration layer IL;
  • the hardware codec in the host operating system loads and controls the codec of the multimedia file in the OpenMAX integration layer IL of the host operating system, which may be: in the OpenMAX integration layer IL of the host operating system. And as a server of the client operating system hardware codec, loading and controlling a hardware codec in the host operating system to encode and decode the multimedia file delivered by the guest operating system according to the multimedia processing request.
  • the OpenMAX integration layer IL may specifically load and control a multimedia codec in the host operating system by virtual vOpenMAX cross-system communication, and the vOpenMAX may include: located at the client The vOpenMAX front-end Front end in the operating system and the vOpenMAX back-end Back end in the host operating system;
  • the vOpenMAX Front end communicates with the vOpenMAX Back end across the system;
  • the vOpenMAX Back end calls a hardware codec in the host operating system to encode and decode the multimedia file delivered by the guest operating system.
  • the OpenMAX Core required for the hardware codec operation can be divided into two parts: vOpenMAX Front end and vOpenMAX Back end.
  • the vOpenMAX Front end is located on the Guest OS as the interface of the HW OpenMAX Core of the guest operating system; the vOpenMAX Back end is located in the Host OS. It acts as the vOpenMAX Core server and performs all the functions of OpenMAX Core and all the functions of OpenMAX IL, including vOpenMAX Core and
  • the vOpenMAX Component provides hardware acceleration for the front end (ie, the guest operating system) by loading the HW Codec of the Host OS.
  • vOpenMAX Front end and vOpenMAX Back end can communicate through existing QEMU PIPE, Socket and other cross-system communication methods.
  • the multimedia processing request is sent to the host operating system in the guest operating system, and in the OpenMAX integration layer IL of the host operating system, the hardware codec in the host operating system is loaded and controlled to the multimedia
  • the file is encoded and decoded, which can be:
  • the guest operating system sends a notification message to the host operating system through cross-system communication between the vOpenMAX Front end and the vOpenMAX Back end, and the host operating system loads the corresponding message according to the notification message.
  • Hardware codec the guest operating system sends a multimedia file to a hardware codec of the host operating system by cross-system communication between the vOpenMAX Front end and the vOpenMAX Back end, by the host
  • the multimedia codec of the operating system encodes and decodes the multimedia file.
  • the guest operating system may send a control command and data to be transmitted (for example, parameters, etc.) to the host operating system through cross-system communication between the vOpenMAX Front end and the vOpenMAX Back end.
  • the control command and the data to be delivered can be passed to the vOpenMAX Back end of the host operating system under the management of the hypervisor hypervisor.
  • the method may further include:
  • the codec processing status is displayed on the host operating system side.
  • the coded data may be transmitted back to the guest operating system, or directly on the host operating system side.
  • the display codec is complete.
  • the embodiment of the present application provides a multi-system multimedia hardware virtualization solution based on OpenMAX IL Core.
  • the guest OS can be accelerated by using the hardware of the Host OS through the virtualization technology, and the upper layer of the Guest OS can still support the software codec and the hardware codec.
  • Select that is, the Guest OS, like the Host OS, can support both codecs.
  • a multi-operating system multimedia codec device is also provided in the embodiment of the present application. Since the principle of solving the problem of these devices is similar to a multi-operating system multimedia codec method, the implementation of these devices can be referred to the method. The implementation, repetitions will not be repeated.
  • FIG. 3 is a schematic structural diagram 1 of a multi-operating system multimedia codec device according to Embodiment 2 of the present application.
  • the multi-operating system multimedia codec device may include: a host operating system 301, and a guest operating system 302. And a vOpenMAX front end Front end 3021 located in the guest operating system 302 and a vOpenMAX back end Back end 3011 located in the host operating system 301;
  • the vOpenMAX front end Front end is configured to receive, in the guest operating system, a multimedia processing request sent by the adaptation layer and send the multimedia processing request to the host operating system, where the multimedia processing request includes a multimedia file;
  • the vOpenMAX backend end end is configured to load and control a hardware codec in the host operating system to encode and decode the multimedia file in an OpenMAX integration layer IL of the host operating system.
  • the multimedia application can communicate with the OpenMAX IL core core and components, and the component can operate audio, video, picture or other data.
  • the multi-operating system multimedia codec device provided by the embodiment of the present application can compile the multimedia file by using a hardware codec in the host operating system through vOpenMAX cross-system communication in the OpenMAX integration layer IL of the guest operating system. Decoding, the hardware operating code of the host operating system is implemented by the guest operating system across the system to achieve hardware acceleration.
  • FIG. 4 is a schematic structural diagram of a multi-operating system multimedia codec device according to Embodiment 2 of the present application. As shown in the figure, the guest operating system 302 may further include:
  • the adapting module 3022 is configured to: before the multimedia processing request sent by the receiving adaptation layer, obtain, at an adaptation layer of the guest operating system, a multimedia file sent by the multimedia application, to edit the multimedia file decoder.
  • the guest operating system 302 may further include:
  • a client software codec 3023 for if the codec of the multimedia file is a software codec, software OpenMAX IL in the guest operating system loads and controls software coding in the guest operating system
  • the decoder encodes and decodes the multimedia file.
  • the vOpenMAX Front end may be specifically used in the OpenMAX integration layer IL of the guest operating system as an interface for cross-system communication, receiving a multimedia processing request sent by the adaptation layer and sending the multimedia processing request to the host operation.
  • System OpenMAX integration layer IL
  • the vOpenMAX Back end may be specifically used in a OpenMAX integration layer IL of the host operating system, as a server of the guest operating system hardware codec, loading and controlling hardware codec in the host operating system according to the multimedia processing request.
  • the program encodes and decodes the multimedia file delivered by the guest operating system.
  • the vOpenMAX Front end may be specifically used in the client operating system
  • the system sends a notification message to the host operating system, where the vOpenMAX Back end is specifically configured to load, in the OpenMAX integration layer IL of the host operating system, a corresponding hardware codec according to the notification message;
  • the vOpenMAX Front end can also be used to send a multimedia file to the host operating system in the guest operating system, and the vOpenMAX Back end can also be used in an OpenMAX integration layer IL of the host operating system.
  • the hardware codec controlling the host operating system encodes and decodes the multimedia file.
  • the apparatus may further include:
  • a data backhaul module configured to send the coded data back to the guest operating system in an OpenMAX integration layer IL of the host operating system;
  • a display module configured to display a codec processing state on the host operating system side.
  • an embodiment of the present application further provides an electronic device, which will be described below.
  • the electronic device includes: a memory 401, one or more processors 402, and one or more modules, the one or A plurality of modules are stored in the memory and configured to be executed by the one or more processors, the one or more modules including steps for performing the multi-operating system multimedia codec method as described above Instructions.
  • the electronic device increases the step of determining the codec category by modifying an adaptation layer in the guest operating system, and determines that the codec of the multimedia file is a hardware codec.
  • the hardware operating code of the host operating system is used to implement hardware acceleration by the guest operating system. .
  • the embodiment of the present application further provides a computer program product, which will be described below.
  • the computer program product provided by the embodiment of the present application encodes an instruction for executing a process, and the process includes a method for multi-operating system multimedia codec as described above.
  • the computer program product can be used in conjunction with an electronic device.
  • the embodiment of the present application takes a mobile phone as a high-definition video as an example.
  • FIG. 6 is a schematic structural diagram of a mobile phone in Embodiment 5 of the present application.
  • the mobile phone is a dual-operating mobile communication terminal, and the dual operating system may be: a personal operating system and an enterprise operating system.
  • the enterprise operating system is the host operating system (Host OS) and the personal operating system is the guest operating system (Guest OS).
  • the user opens a multimedia application in a personal operating system to play a video file
  • the embodiment of the present application may select a suitable decoder for the video file in an adaptation layer of the personal operating system, and then determine whether the decoder is a hardware codec (HW Codec) or Software Codec (SW Codec):
  • HW Codec hardware codec
  • SW Codec Software Codec
  • the software decoder in the personal operating system can be called to perform decoding operation on the video file
  • the vOpenMAX Front end can communicate with the vOpenMAX Back end in the enterprise operating system to call the hardware codec in the enterprise operating system to decode the video file.
  • the personal operating system may notify the enterprise operating system to load a corresponding codec Codec by using a cross-system communication technology (eg, QemuPipe, Socket, etc.); the enterprise operating system loads the corresponding Codec;
  • a cross-system communication technology eg, QemuPipe, Socket, etc.
  • the personal operating system can transmit the compressed data to the codec of the enterprise operating system side through the cross-system communication of the vOpenMAX Back end in the enterprise operating system through the vOpenMAX Front end; the hardware codec HW of the enterprise operating system side Codec decodes the video file.
  • the embodiment of the present application can directly display on the enterprise operating system side according to the display system implementation manner, and can also transmit the decoded data back to the personal operating system.
  • a multimedia system using the Android multimedia framework (StageFright+OpenMAX) is taken as an example.
  • the codec function of StageFright is implemented by using the OpenMAX framework.
  • the adaptation layer of OpenMAX is an encapsulation layer on the OpenMAX IL layer, which can be used by StageFright. transfer.
  • FIG. 7 is a schematic diagram showing the structure of a multi-operating system of the existing Android multimedia framework.
  • the OpenMAX IL APP in the host operating system Host OS
  • the OpenMAX Component is called by the host's OpenMAX Core. Then operate the H/W Codec of the Android Kernel;
  • the OpenMAX Component is called by the client's OpenMAX Core, and the S/W Codec of the Android Kernel is operated.
  • the embodiment of the present application can modify the interface of the OpenMAX Core so that the guest operating system can support hardware codec.
  • FIG. 8 is a schematic diagram showing the structure of a multi-operating system of the Android multimedia framework in the sixth embodiment of the present application.
  • the following is an example of video decoding of a video file encoded by AVC (Advanced Video Coding) in the Android system.
  • AVC Advanced Video Coding
  • StageFright's player class AwesomePlayer creates an event dispatcher based on the view Selecting a suitable splitter from the head of the frequency file to separate the audio and video tracks of the video file;
  • a separate mVideoTrack (video) data stream is generated by setVideoSource() to provide the desired data stream for the video decoder;
  • a separate mAudioTrack (audio) data stream is generated by setAudioSource() to provide the audio decoder with the required data stream.
  • the embodiment of the present application may select a suitable decoder for the separated video track and audio track, taking the video track as an example:
  • All decoders supported by the system can be stored in the preset configuration file XML, and the AVC encoding type corresponds to the AVC Decoder. It is assumed that the decoder supporting the AVC format includes a software decoder and a hardware decoder, and at this time, according to the resolution and the level. A preset rule such as an application scenario further determines a suitable decoder.
  • the software decoder supporting the AVC format can be determined, and if the resolution of the AVC video file is higher (above the preset threshold), then it can be determined A hardware decoder supporting AVC format;
  • the software decoder can be selected for the case where the CPU operation is required to be large, and the hardware decoder can be selected for the case where the CPU operation is required to be small. For example, if the current application scenario is to generate a small thumbnail video file for the video file (the amount of computation required is small), then the software decoder supporting the AVC format can be determined if the current application scenario is to play the original video file (the required amount of operation) Larger, then you can determine the hardware decoder that supports the AVC format.
  • OpenMAX performs preparatory work initialization, creates an OMXNodeInstance instance based on the incoming video file, and associates the decoder's components with the instance.
  • OpenMAX calls SW Codec in OpenMAX IL through OpenMAX Core in the guest operating system.
  • SW Codec can call the SW Codec driver driver of Android kernel to implement specific software codec during codec implementation.
  • OpenMAX communicates with the vOpenMAX Back end in the host operating system through the virtual OpenMAX Front end of the guest operating system (ie vOpenMAX Front end), calling OpenMAX Core in the host operating system to call Android.
  • HW Codec of the kernel HW Codec can call the driver of the HW Codec of the Android kernel to implement specific hardware codec operations during the codec implementation.
  • cross-system communication between the virtual OpenMAX hard codec interface (vOpenMAX Front end) in the guest operating system and the virtual OpenMAX server (vOpenMAX Back end) in the host operating system can be managed in the virtual machine monitor Hypervisor
  • the control flow and the data flow are transmitted through the virtual machine KVM and the simulator Qemu.
  • FIG. 9 is a schematic structural diagram of a tablet computer in Embodiment 7 of the present application.
  • the tablet computer may include a host operating system (Host OS) and a guest operating system (Guest OS), where the client
  • the guest OS can include a personal operating system (POS) and an enterprise operating system (EOS).
  • POS personal operating system
  • EOS enterprise operating system
  • the host operating system can call the OpenMAX component in the host operating system after the multimedia application in the host operating system receives the multimedia processing request, and the codec component calls the hardware codec interface during the implementation process, and uses the H/ W Codec encodes and decodes multimedia files.
  • Both the personal operating system (POS) and the enterprise operating system (EOS) can encode and decode the multimedia file for the software codec by calling the software codec in the respective system after the multimedia application of the respective system receives the processing request. , that is, using the CPU for encoding and decoding;
  • the hardware codec can communicate with the vOpenMAX Back end of the host operating system through the vOpenMAX Back end of the respective system, thereby calling the OpenMAX component in the host operating system, and the OpenMAX component in the host operating system calls the hardware during the implementation process.
  • the codec interface realizes the purpose of encoding and decoding multimedia files by using H/W Codec.
  • the hardware codec of the host operating system can be used to provide hardware acceleration capability for the operating system regardless of which operating system (personal operating system or enterprise operating system) the user is in.
  • embodiments of the present application can be provided as a method, system, or computer program product.
  • the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware.
  • the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Abstract

A multimedia encoding/decoding method and device for a multi-operating system, and an electronic device. The method comprises: in a client operating system, receiving a multimedia processing request sent by an adaption layer and sending the multimedia processing request to a host operating system, the multimedia processing request comprising a multimedia file (201); and in an OpenMAX integration layer (IL) of the host operating system, loading and controlling a hardware codec in the host operating system to encode/decode the multimedia file (202). The described method can enable a client operating system to use a hardware codec in the host operating system in a cross-system manner so as to achieve the purpose of hardware acceleration.

Description

多操作系统多媒体编解码方法、装置及电子设备Multi-operating system multimedia codec method, device and electronic device 技术领域Technical field
本申请涉及虚拟化技术领域,特别涉及多操作系统多媒体编解码方法、装置及电子设备。The present application relates to the field of virtualization technologies, and in particular, to a multi-operating system multimedia codec method, apparatus, and electronic device.
背景技术Background technique
移动终端已成为用户日常工作生活的重要工具,在移动终端推动移动互联网快速发展的同时,由于移动终端包含了丰富多样化的信息(例如:企业数据的访问、商务沟通、社交网络、财务管理、游戏等等),移动终端成了网络犯罪的新焦点。为了信息安全、保护隐私,移动虚拟化成为了移动终端未来的发展方向。Mobile terminals have become an important tool for users' daily work and life. While mobile terminals are driving the rapid development of mobile Internet, mobile terminals contain rich and diverse information (such as enterprise data access, business communication, social networks, financial management, Games, etc.), mobile terminals have become the new focus of cybercrime. For information security and privacy protection, mobile virtualization has become the future development direction of mobile terminals.
移动虚拟化允许多个操作系统或者虚拟机同时运行在移动手机或者无线手持设备上,使用Hypervisor在底层硬件上创建安全独立的软件运行环境。通过移动虚拟化,用户无需携带两台或多台移动设备,可在一个物理手持设备上访问多个操作系统,移动虚拟化在安全性方面具有显著的特性。Mobile virtualization allows multiple operating systems or virtual machines to run simultaneously on mobile phones or wireless handheld devices, using the Hypervisor to create a secure, stand-alone software runtime environment on the underlying hardware. With mobile virtualization, users do not need to carry two or more mobile devices to access multiple operating systems on a single physical handheld device. Mobile virtualization has significant security features.
通过虚拟化技术带来的隔离性可实现单一终端上多个操作系统的隔离,避免各操作系统上的进程对其他操作系统产生不利影响,典型的应用场景为通过虚拟化技术在手机等移动设备上实现企业系统和个人系统的分离,防范个人系统上的进程给企业带来的潜在危害,满足一些具有安全要求的企业对“自带设备”(BYOD,Bring Your Own Device)的需求。The isolation provided by the virtualization technology can isolate multiple operating systems on a single terminal, and prevent processes on each operating system from adversely affecting other operating systems. A typical application scenario is a mobile device such as a mobile phone through virtualization technology. The separation of the enterprise system and the personal system is realized, and the potential harm caused by the process on the personal system is prevented, and the demand for the BYOD (Bring Your Own Device) is met by some enterprises with security requirements.
随着多媒体应用在生活中运用的深入发展,终端的各个虚拟机都必须有多媒体编解码器,而目前客户机操作系统(Guest OS)只能通过CPU实现软件编解码,导致很多格式的视频文件无法支持、功耗大、播放不流畅。With the in-depth development of multimedia applications in life, each virtual machine of the terminal must have a multimedia codec. At present, the guest operating system (Guest OS) can only implement software codec through the CPU, resulting in video files of many formats. Unable to support, high power consumption, and smooth playback.
现有技术不足在于:The disadvantages of the prior art are:
终端的Guest OS只能通过CPU实现软件编解码,导致很多格式的视频 文件无法支持、播放不流畅,而且功耗大(发热、缩短电池使用时间)。The guest's Guest OS can only implement software codec through the CPU, resulting in many formats of video. Files cannot be supported, playback is not smooth, and power consumption is high (heating, shortening battery life).
发明内容Summary of the invention
本申请实施例的一个目的在于解决现有技术中终端的Guest OS只能通过CPU实现软件编解码,导致很多格式的视频文件无法支持、播放不流畅这一技术问题。An object of the present application is to solve the technical problem that the guest OS of the terminal can only implement software codec through the CPU, which causes video files of many formats to be unable to be supported and played smoothly.
第一个方面,本申请实施例提供了一种多操作系统多媒体编解码方法,包括:In a first aspect, the embodiment of the present application provides a multi-operating system multimedia codec method, including:
在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;Receiving, in the guest operating system, a multimedia processing request sent by the adaptation layer and transmitting the multimedia processing request to a host operating system, where the multimedia processing request includes a multimedia file;
在主机操作系统OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。In the host operating system OpenMAX integration layer IL, the hardware codec in the host operating system is loaded and controlled to encode and decode the multimedia file.
第二个方面,本申请实施例提供了一种多操作系统多媒体编解码装置,包括:主机操作系统、客户机操作系统以及位于客户机操作系统中的vOpenMAX前端Front end和位于主机操作系统中的vOpenMAX后端Back end;In a second aspect, the embodiment of the present application provides a multi-operating system multimedia codec device, including: a host operating system, a client operating system, and a vOpenMAX front-end Front end located in a guest operating system and located in a host operating system. vOpenMAX backend;
所述vOpenMAX前端Front end,用于在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;The vOpenMAX front end Front end is configured to receive, in the guest operating system, a multimedia processing request sent by the adaptation layer and send the multimedia processing request to the host operating system, where the multimedia processing request includes a multimedia file;
所述vOpenMAX后端Back end,用于在主机操作系统OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。The vOpenMAX backend end end is configured to load and control a hardware codec in the host operating system to encode and decode the multimedia file in a host operating system OpenMAX integration layer IL.
第三个方面,本申请实施例还提供了一种电子设备,所述电子设备包括:存储器、一个或多个处理器、以及一个或多个模块,所述一个或多个模块被存储于所述存储器中,并被配置为由所述一个或多个处理器执行, 所述一个或多个模块包括用于执行如上所述方法中各个步骤的指令。In a third aspect, an embodiment of the present application further provides an electronic device, where the electronic device includes: a memory, one or more processors, and one or more modules, where the one or more modules are stored in the In the memory, and configured to be executed by the one or more processors, The one or more modules include instructions for performing the various steps in the method as described above.
第四个方面,本申请实施例提供了一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括内嵌于计算机可读的存储介质中的计算机程序,所述计算机程序包括用于使所述电子设备执行如上所述方法中各个步骤的指令。In a fourth aspect, an embodiment of the present application provides a computer program product for use in conjunction with an electronic device, the computer program product comprising a computer program embedded in a computer readable storage medium, the computer program comprising The electronic device is caused to execute instructions of the various steps in the method as described above.
有益效果如下:The benefits are as follows:
本申请实施例可以在客户机操作系统的OpenMAX的集成层IL中通过跨系统通信使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,从而实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现为客户机操作系统提供硬件加速能力的目的,进一步地由于硬件编解码可以支持多格式文件、且编解码速度较快、无需耗费CPU,因此采用本申请实施例所提供的方案可以支持多格式的文件、播放流畅、且功耗低,可以延长电池使用时间,解决了现有很多格式的视频文件无法支持、播放不流畅、而且功耗大等问题。The embodiment of the present application can code and decode the multimedia file by using a hardware codec in the host operating system in the integration layer IL of the OpenMAX of the guest operating system, thereby implementing the client operating system across the system. The hardware codec of the host operating system is used to provide hardware acceleration capability for the guest operating system, and further, since the hardware codec can support multi-format files, and the codec speed is fast, and no CPU is required, the implementation of the present application is adopted. The solution provided by the example can support multi-format files, play smoothly, and has low power consumption, which can prolong the battery life, and solve the problems that the video files of many existing formats cannot be supported, the playback is not smooth, and the power consumption is large.
附图说明DRAWINGS
下面将参照附图描述本申请的具体实施例,其中:Specific embodiments of the present application will be described below with reference to the accompanying drawings, in which:
图1示出了现有技术中虚拟化模型的结构示意图;FIG. 1 is a schematic structural diagram of a virtualization model in the prior art;
图2示出了本申请实施例一中多操作系统多媒体编解码方法实施的流程示意图;FIG. 2 is a schematic flowchart showing the implementation of a multi-operating system multimedia codec method in Embodiment 1 of the present application;
图3示出了本申请实施例二中多操作系统多媒体编解码装置的结构示意图一;3 is a schematic structural diagram 1 of a multi-operating system multimedia codec device in Embodiment 2 of the present application;
图4示出了本申请实施例二中多操作系统多媒体编解码装置的结构示意图二;FIG. 4 is a second schematic structural diagram of a multi-operating system multimedia codec device according to Embodiment 2 of the present application;
图5示出了本申请实施例三中电子设备的结构示意图; FIG. 5 is a schematic structural diagram of an electronic device according to Embodiment 3 of the present application;
图6示出了本申请实施例五中手机的结构示意图;6 is a schematic structural diagram of a mobile phone in Embodiment 5 of the present application;
图7示出了现有Android多媒体框架的多操作系统结构示意图;FIG. 7 is a schematic diagram showing a structure of a multi-operating system of an existing Android multimedia framework;
图8示出了本申请实施例六中Android多媒体框架的多操作系统结构示意图;8 is a schematic structural diagram of multiple operating systems of an Android multimedia framework in Embodiment 6 of the present application;
图9示出了本申请实施例七中平板电脑的结构示意图。FIG. 9 is a schematic structural diagram of a tablet computer in Embodiment 7 of the present application.
具体实施方式detailed description
为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。The exemplary embodiments of the present application are further described in detail below with reference to the accompanying drawings, in which the embodiments described are only a part of the embodiments of the present application, but not all embodiments. An exhaustive example. And in the case of no conflict, the features in the embodiments and the embodiments in the description can be combined with each other.
图1示出了现有技术中虚拟化模型的结构示意图,如图所示,处于底层的是整个物理系统,即系统硬件,主要包括处理器、内存和输入输出设备;在物理系统之上的是虚拟化层,运行的是虚拟机监控器(简称为VMM或Hypervisor),所述虚拟机监控器的主要职能是管理真实的物理硬件平台并为每个虚拟客户机提供对应的虚拟硬件平台。Hypervisor通过主机(Host)实现上述功能,主机上运行一虚拟机(Host VM),在该虚拟机上运行有主机操作系统(Host OS)。FIG. 1 is a schematic structural diagram of a virtualization model in the prior art. As shown in the figure, at the bottom is the entire physical system, that is, system hardware, which mainly includes a processor, a memory, and an input/output device; It is a virtualization layer that runs a virtual machine monitor (referred to as VMM or Hypervisor for short). The main function of the virtual machine monitor is to manage the real physical hardware platform and provide a corresponding virtual hardware platform for each virtual client. The Hypervisor implements the above functions through a host. The host runs a virtual machine (Host VM) on which the host operating system (Host OS) runs.
图1示出了三个虚拟机(VM)的实例,每个虚拟机可看作是一个小的但是完整的计算机系统,具有自己的“系统硬件”,包括自己的处理器、内存和输入输出设备。在这个计算机系统上,运行着虚拟机自己的操作系统(Guest OS),例如:Android、Windows或Linux等。Figure 1 shows an example of three virtual machines (VMs), each of which can be thought of as a small but complete computer system with its own "system hardware", including its own processor, memory, and input and output. device. On this computer system, the virtual machine's own operating system (Guest OS) is running, such as Android, Windows or Linux.
发明人在发明过程中注意到:The inventor noticed during the invention:
当前只有Host OS具有硬件加速能力,而Guest OS只能通过CPU来实现软件编解码,对于Guest OS则有以下弊端:Currently, only Host OS has hardware acceleration capability, and Guest OS can only implement software codec through CPU. For Guest OS, it has the following drawbacks:
1)格式支持受限 1) Limited format support
对于普通分辨率的AVI、RMVB等文件,绝大多数的CPU都可以胜任,随着高清视频(1080i/p)的普及,CPU变的越来越难以胜任。所以很多格式的视频文件在只有软解码的终端上是无法支持的。For common resolution AVI, RMVB and other files, most CPUs can do the job. With the popularity of high-definition video (1080i/p), the CPU becomes more and more difficult. Therefore, video files of many formats cannot be supported on terminals with only soft decoding.
2)CPU占用率高、播放不流畅、功耗大2) High CPU usage, unsmooth playback, and high power consumption
由于高清视频的分辨率远远高于一般格式视频,使得高清视频的码率非常高,再加上VC-1和H.264编码的压缩率很高,解码运算的运算量很大。因此常规地直接用CPU解码(即常说的“软解”)会极大地消耗CPU的运算能力,一些较老的CPU软解H.264时CPU占用率往往高达90%以上,更老的CPU可能就根本无法播放了。Since the resolution of high-definition video is much higher than that of the general format video, the code rate of the high-definition video is very high, and the compression ratio of the VC-1 and H.264 encoding is very high, and the calculation operation of the decoding operation is large. Therefore, conventionally using CPU decoding directly (that is, often referred to as "soft solution") will greatly consume the computing power of the CPU. Some older CPUs have a CPU usage of up to 90% when the H.264 solution is soft, and the older CPU It may not be played at all.
针对上述不足,本申请实施例提出了一种基于OpenMAX IL Core的多系统多媒体硬件虚拟化方案,使得Guest OS可以通过虚拟化技术使用Host OS的硬件实现加速,Guest OS上层仍然可以支持软件编解码和硬件编解码的选择,即Guest OS与Host OS一样,可以同时支持两种编解码方式,下面进行说明。In view of the above deficiencies, the embodiment of the present application proposes a multi-system multimedia hardware virtualization solution based on OpenMAX IL Core, so that the guest OS can be accelerated by using the hardware of the Host OS through the virtualization technology, and the upper layer of the Guest OS can still support the software codec. The choice of hardware codec, that is, the Guest OS and the Host OS, can support two codecs at the same time, as explained below.
开放多媒体加速OpenMAX(Open Media Acceleration),是一个多媒体应用程序标准,包括应用层AI、集成层IL和开发层DL,嵌入式处理器或者多媒体编解码模块的硬件生产者,可以提供标准的OpenMAX IL层的软件接口,软件开发者可以基于这个层次的标准化接口进行多媒体程序的开发。Open Multimedia Acceleration, a multimedia application standard that includes application layer AI, integration layer IL and development layer DL, embedded processor or hardware codec module hardware manufacturer, can provide standard OpenMAX IL Layer software interface, software developers can develop multimedia programs based on this level of standardized interfaces.
本申请实施例所提供的技术方案可以适用于所有采用OpenMAX框架标准的多媒体系统实现硬件虚拟化,包括Android多媒体框架(StageFright+OpenMAX)但不限于Android。The technical solution provided by the embodiment of the present application can be applied to all multimedia systems adopting the OpenMAX framework standard to implement hardware virtualization, including the Android multimedia framework (StageFright+OpenMAX) but not limited to Android.
实施例一、Embodiment 1
图2示出了本申请实施例中多操作系统多媒体编解码方法实施的流程示意图,如图所示,所述多操作系统多媒体编解码方法可以包括如下步骤: FIG. 2 is a schematic flowchart of the implementation of the multi-operating system multimedia codec method in the embodiment of the present application. As shown in the figure, the multi-operating system multimedia codec method may include the following steps:
步骤201、在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;Step 201: Receive, in a guest operating system, a multimedia processing request sent by an adaptation layer, and send the multimedia processing request to a host operating system, where the multimedia processing request includes a multimedia file.
步骤202、在主机操作系统OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。Step 202: Load and control a hardware codec in the host operating system to encode and decode the multimedia file in a host operating system OpenMAX integration layer IL.
具体实施时,所述多操作系统可以包括主机操作系统和客户机操作系统,所述客户机操作系统可以为一个、两个或更多个。In a specific implementation, the multiple operating systems may include a host operating system and a guest operating system, and the guest operating system may be one, two or more.
本申请实施例可以在客户机操作系统的OpenMAX集成层IL中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求可以包括多媒体文件;在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。The embodiment of the present application may receive, in an OpenMAX integration layer IL of a guest operating system, a multimedia processing request sent by an adaptation layer and send the multimedia processing request to a host operating system, where the multimedia processing request may include a multimedia file; In the OpenMAX integration layer IL of the host operating system, the hardware codec in the host operating system is loaded and controlled to encode and decode the multimedia file.
本申请实施例可以在客户机操作系统的OpenMAX的集成层IL中通过跨系统通信使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,从而实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现为客户机操作系统提供硬件加速能力的目的,进一步地由于硬件编解码可以支持多格式文件、且编解码速度较快、无需耗费CPU,因此采用本申请实施例所提供的方案可以支持多格式的文件、播放流畅、且功耗低,可以延长电池使用时间,解决了现有很多格式的视频文件无法支持、播放不流畅、而且功耗大等问题。The embodiment of the present application can code and decode the multimedia file by using a hardware codec in the host operating system in the integration layer IL of the OpenMAX of the guest operating system, thereby implementing the client operating system across the system. The hardware codec of the host operating system is used to provide hardware acceleration capability for the guest operating system, and further, since the hardware codec can support multi-format files, and the codec speed is fast, and no CPU is required, the implementation of the present application is adopted. The solution provided by the example can support multi-format files, play smoothly, and has low power consumption, which can prolong the battery life, and solve the problems that the video files of many existing formats cannot be supported, the playback is not smooth, and the power consumption is large.
实施中,在所述接收适配层发送的多媒体处理请求之前,所述方法可以进一步包括:In an implementation, before the receiving the multimedia processing request sent by the adaptation layer, the method may further include:
在所述客户机操作系统的适配层,获取多媒体应用程序发送的多媒体文件,为所述多媒体文件适配编解码器。And acquiring, at the adaptation layer of the guest operating system, a multimedia file sent by the multimedia application, and adapting the codec to the multimedia file.
具体实施时,当所述客户机操作系统中的多媒体应用程序接收到用户 多媒体处理请求后,在所述客户机操作系统的适配层可以为所述多媒体文件选择一个合适的编解码器,并确定该编解码器的类别。所述编解码器的类别可以包括软件编解码器和硬件编解码器。In a specific implementation, when the multimedia application in the guest operating system receives the user After the multimedia processing request, an adaptation layer of the guest operating system may select a suitable codec for the multimedia file and determine the class of the codec. The class of codecs may include a software codec and a hardware codec.
所述为多媒体文件适配编解码器,具体可以根据所述多媒体文件的编码方式确定所述多媒体文件的解码器,或者,根据所述多媒体文件的解码方式确定所述多媒体文件的编码器。The multimedia code is adapted to the codec, and the decoder of the multimedia file may be determined according to the encoding manner of the multimedia file, or the encoder of the multimedia file may be determined according to the decoding manner of the multimedia file.
具体实施时,支持同一格式的编解码器可以为多个,其中可以包括硬件编解码器和软件编解码器,在适配编解码器时可以根据预设规则选择最适合的编解码器,例如:为分辨率要求低的多媒体文件选择软件编解码器、为分辨率要求高的多媒体文件选择硬件编解码器等。In a specific implementation, there may be multiple codecs supporting the same format, which may include a hardware codec and a software codec, and the most suitable codec may be selected according to a preset rule when adapting the codec, for example, for example, : Select software codec for multimedia files with low resolution requirements, hardware codecs for multimedia files with high resolution requirements, etc.
在确定所述多媒体文件的编解码器为硬件编解码器时,通过跨系统通信向主机操作系统中的硬编解码组件发送命令,调用所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。When determining that the codec of the multimedia file is a hardware codec, sending a command to a hard codec component in the host operating system by cross-system communication, calling a hardware codec in the host operating system to the multimedia The file is coded and decoded.
本申请实施例所提供的方法,可以通过修改客户机操作系统中的适配层,增加了确定所述编解码器类别的步骤,并在确定所述多媒体文件的编解码器为硬件编解码器时,通过跨系统通信的使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现硬件加速的目的。The method provided by the embodiment of the present application may add a step of determining the codec category by modifying an adaptation layer in a guest operating system, and determine that the codec of the multimedia file is a hardware codec. When the multimedia file is coded and decoded by using a hardware codec in the host operating system for cross-system communication, the hardware operating code of the host operating system is implemented by the guest operating system across the system to achieve hardware acceleration.
实施中,所述方法可以进一步包括:In an implementation, the method may further include:
如果所述多媒体文件的编解码器为软件编解码器,在所述客户机操作系统中的软件OpenMAX IL加载并控制所述客户机操作系统中的软件编解码器对所述多媒体文件进行编解码。If the codec of the multimedia file is a software codec, software OpenMAX IL in the guest operating system loads and controls a software codec in the guest operating system to encode and decode the multimedia file .
本申请实施例中对于软件编解码器(SW Codec),可以仍然使用所述客户机操作系统中的软件编解码器对所述多媒体文件进行编解码。In the embodiment of the present application, for a software codec (SW Codec), the multimedia file may still be encoded and decoded using a software codec in the guest operating system.
实施中,所述接收适配层发送的多媒体处理请求并将所述多媒体处理 请求发送至主机操作系统,具体可以为:在客户机操作系统的OpenMAX集成层IL,作为跨系统通信的接口,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统的OpenMAX集成层IL;In an implementation, the receiving the multimedia processing request sent by the adaptation layer and the multimedia processing The request is sent to the host operating system, specifically: in the OpenMAX integration layer IL of the guest operating system, as an interface for cross-system communication, receiving a multimedia processing request sent by the adaptation layer and sending the multimedia processing request to the host operating system OpenMAX integration layer IL;
所述在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,具体可以为:在主机操作系统的OpenMAX集成层IL中,作为客户机操作系统硬件编解码的服务器,根据所述多媒体处理请求加载并控制所述主机操作系统中的硬件编解码器对客户机操作系统传递的所述多媒体文件进行编解码。The hardware codec in the host operating system loads and controls the codec of the multimedia file in the OpenMAX integration layer IL of the host operating system, which may be: in the OpenMAX integration layer IL of the host operating system. And as a server of the client operating system hardware codec, loading and controlling a hardware codec in the host operating system to encode and decode the multimedia file delivered by the guest operating system according to the multimedia processing request.
具体实施时,在OpenMAX集成层IL具体可以是通过虚拟vOpenMAX跨系统通信加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,所述vOpenMAX可以包括:位于客户机操作系统中的vOpenMAX前端Front end和位于主机操作系统中的vOpenMAX后端Back end;In a specific implementation, the OpenMAX integration layer IL may specifically load and control a multimedia codec in the host operating system by virtual vOpenMAX cross-system communication, and the vOpenMAX may include: located at the client The vOpenMAX front-end Front end in the operating system and the vOpenMAX back-end Back end in the host operating system;
在确定所述多媒体文件的编解码器为硬件编解码器时,所述vOpenMAX Front end与所述vOpenMAX Back end跨系统通信;When determining that the codec of the multimedia file is a hardware codec, the vOpenMAX Front end communicates with the vOpenMAX Back end across the system;
所述vOpenMAX Back end调用主机操作系统中的硬件编解码器对客户机操作系统传递的多媒体文件进行编解码。The vOpenMAX Back end calls a hardware codec in the host operating system to encode and decode the multimedia file delivered by the guest operating system.
具体实施时,本申请实施例可以将硬件编解码操作所需要的OpenMAX Core分为vOpenMAX Front end和vOpenMAX Back end两部分。vOpenMAX Front end位于Guest OS,作为客户机操作系统的HW OpenMAX Core的接口;vOpenMAX Back end位于Host OS,其作为vOpenMAX Core的服务器完成OpenMAX Core的所有功能以及OpenMAX IL的所有功能,可以包括vOpenMAX Core和vOpenMAX Component,通过加载Host OS的HW Codec,为前端(即,客户机操作系统)提供硬件加速的能力。 In a specific implementation, the OpenMAX Core required for the hardware codec operation can be divided into two parts: vOpenMAX Front end and vOpenMAX Back end. The vOpenMAX Front end is located on the Guest OS as the interface of the HW OpenMAX Core of the guest operating system; the vOpenMAX Back end is located in the Host OS. It acts as the vOpenMAX Core server and performs all the functions of OpenMAX Core and all the functions of OpenMAX IL, including vOpenMAX Core and The vOpenMAX Component provides hardware acceleration for the front end (ie, the guest operating system) by loading the HW Codec of the Host OS.
vOpenMAX Front end与vOpenMAX Back end可以通过现有的QEMU PIPE、Socket等跨系统通信方式来通信。vOpenMAX Front end and vOpenMAX Back end can communicate through existing QEMU PIPE, Socket and other cross-system communication methods.
实施中,所述在客户机操作系统中将多媒体处理请求发送至主机操作系统,在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,具体可以为:In an implementation, the multimedia processing request is sent to the host operating system in the guest operating system, and in the OpenMAX integration layer IL of the host operating system, the hardware codec in the host operating system is loaded and controlled to the multimedia The file is encoded and decoded, which can be:
在所述客户机操作系统中向所述主机操作系统发送通知消息,在所述主机操作系统的OpenMAX集成层IL中,根据所述通知消息加载相应的硬件编解码器;Sending a notification message to the host operating system in the guest operating system, in the OpenMAX integration layer IL of the host operating system, loading a corresponding hardware codec according to the notification message;
在所述客户机操作系统中将多媒体文件发送给所述主机操作系统,在所述主机操作系统的OpenMAX集成层IL中,控制所述硬件编解码器对所述多媒体文件进行编解码。Sending a multimedia file to the host operating system in the guest operating system, and controlling the hardware codec to encode and decode the multimedia file in an OpenMAX integration layer IL of the host operating system.
具体实施时,所述客户机操作系统通过所述vOpenMAX Front end与所述vOpenMAX Back end之间的跨系统通信向所述主机操作系统发送通知消息,所述主机操作系统根据所述通知消息加载相应的硬件编解码器;所述客户机操作系统通过所述vOpenMAX Front end与所述vOpenMAX Back end之间的跨系统通信将多媒体文件发送给所述主机操作系统的硬件编解码器,由所述主机操作系统的硬件编解码器对所述多媒体文件进行编解码。In a specific implementation, the guest operating system sends a notification message to the host operating system through cross-system communication between the vOpenMAX Front end and the vOpenMAX Back end, and the host operating system loads the corresponding message according to the notification message. Hardware codec; the guest operating system sends a multimedia file to a hardware codec of the host operating system by cross-system communication between the vOpenMAX Front end and the vOpenMAX Back end, by the host The multimedia codec of the operating system encodes and decodes the multimedia file.
具体实施时,所述客户机操作系统可以通过所述vOpenMAX Front end与所述vOpenMAX Back end之间的跨系统通信,向所述主机操作系统发送控制命令和所要传递的数据(例如:参数等信息),所述控制命令和所要传递的数据可以在虚拟机监控器Hypervisor管理下传递给主机操作系统的vOpenMAX Back end。In a specific implementation, the guest operating system may send a control command and data to be transmitted (for example, parameters, etc.) to the host operating system through cross-system communication between the vOpenMAX Front end and the vOpenMAX Back end. The control command and the data to be delivered can be passed to the vOpenMAX Back end of the host operating system under the management of the hypervisor hypervisor.
实施中,所述主机操作系统的硬件编解码器对所述多媒体文件完成编解码之后,可以进一步包括: In an implementation, after the hardware codec of the host operating system completes encoding and decoding the multimedia file, the method may further include:
将编解码后的数据传回所述客户机操作系统;或者,Passing the coded data back to the guest operating system; or,
在所述主机操作系统侧显示编解码处理状态。The codec processing status is displayed on the host operating system side.
具体实施时,在所述主机操作系统的硬件编解码器对所述多媒体文件完成编解码操作之后,可以将编解码后的数据传回所述客户机操作系统,也可以直接在主机操作系统侧显示编解码完成。In a specific implementation, after the hardware codec of the host operating system completes the encoding and decoding operation on the multimedia file, the coded data may be transmitted back to the guest operating system, or directly on the host operating system side. The display codec is complete.
本申请实施例提供了一种基于OpenMAX IL Core的多系统多媒体硬件虚拟化方案,Guest OS可以通过虚拟化技术使用Host OS的硬件实现加速,Guest OS上层仍然可以支持软件编解码和硬件编解码的选择,即,Guest OS与Host OS一样,可以同时支持两种编解码方式。The embodiment of the present application provides a multi-system multimedia hardware virtualization solution based on OpenMAX IL Core. The guest OS can be accelerated by using the hardware of the Host OS through the virtualization technology, and the upper layer of the Guest OS can still support the software codec and the hardware codec. Select, that is, the Guest OS, like the Host OS, can support both codecs.
实施例二、Embodiment 2
基于同一发明构思,本申请实施例中还提供了一种多操作系统多媒体编解码装置,由于这些设备解决问题的原理与一种多操作系统多媒体编解码方法相似,因此这些设备的实施可以参见方法的实施,重复之处不再赘述。Based on the same inventive concept, a multi-operating system multimedia codec device is also provided in the embodiment of the present application. Since the principle of solving the problem of these devices is similar to a multi-operating system multimedia codec method, the implementation of these devices can be referred to the method. The implementation, repetitions will not be repeated.
图3示出了本申请实施例二中多操作系统多媒体编解码装置的结构示意图一,如图所示,所述多操作系统多媒体编解码装置可以包括:主机操作系统301、客户机操作系统302以及位于客户机操作系统302中的vOpenMAX前端Front end 3021和位于主机操作系统301中的vOpenMAX后端Back end 3011;FIG. 3 is a schematic structural diagram 1 of a multi-operating system multimedia codec device according to Embodiment 2 of the present application. As shown in the figure, the multi-operating system multimedia codec device may include: a host operating system 301, and a guest operating system 302. And a vOpenMAX front end Front end 3021 located in the guest operating system 302 and a vOpenMAX back end Back end 3011 located in the host operating system 301;
所述vOpenMAX前端Front end,用于在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;The vOpenMAX front end Front end is configured to receive, in the guest operating system, a multimedia processing request sent by the adaptation layer and send the multimedia processing request to the host operating system, where the multimedia processing request includes a multimedia file;
所述vOpenMAX后端Back end,用于在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。 The vOpenMAX backend end end is configured to load and control a hardware codec in the host operating system to encode and decode the multimedia file in an OpenMAX integration layer IL of the host operating system.
具体实施时,多媒体应用程序可以通过OpenMAX IL核心Core和组件通信,组件可以操作音频、视频、图片或其它数据。In a specific implementation, the multimedia application can communicate with the OpenMAX IL core core and components, and the component can operate audio, video, picture or other data.
本申请实施例所提供的多操作系统多媒体编解码装置,可以在客户机操作系统的OpenMAX集成层IL中,通过vOpenMAX跨系统通信使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现硬件加速的目的。The multi-operating system multimedia codec device provided by the embodiment of the present application can compile the multimedia file by using a hardware codec in the host operating system through vOpenMAX cross-system communication in the OpenMAX integration layer IL of the guest operating system. Decoding, the hardware operating code of the host operating system is implemented by the guest operating system across the system to achieve hardware acceleration.
图4示出了本申请实施例二中多操作系统多媒体编解码装置的结构示意图二,如图所示,所述客户机操作系统302可以进一步包括:FIG. 4 is a schematic structural diagram of a multi-operating system multimedia codec device according to Embodiment 2 of the present application. As shown in the figure, the guest operating system 302 may further include:
适配模块3022,用于在所述接收适配层发送的多媒体处理请求之前,在所述客户机操作系统的适配层,获取多媒体应用程序发送的多媒体文件,为所述多媒体文件适配编解码器。The adapting module 3022 is configured to: before the multimedia processing request sent by the receiving adaptation layer, obtain, at an adaptation layer of the guest operating system, a multimedia file sent by the multimedia application, to edit the multimedia file decoder.
具体实施时,所述客户机操作系统302中还可以包括:In a specific implementation, the guest operating system 302 may further include:
客户机软件编解码器3023,用于如果所述多媒体文件的编解码器为软件编解码器,在所述客户机操作系统中的软件OpenMAX IL加载并控制所述客户机操作系统中的软件编解码器对所述多媒体文件进行编解码。a client software codec 3023, for if the codec of the multimedia file is a software codec, software OpenMAX IL in the guest operating system loads and controls software coding in the guest operating system The decoder encodes and decodes the multimedia file.
实施中,所述vOpenMAX Front end具体可以用于在客户机操作系统的OpenMAX集成层IL,作为跨系统通信的接口,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统的OpenMAX集成层IL;In an implementation, the vOpenMAX Front end may be specifically used in the OpenMAX integration layer IL of the guest operating system as an interface for cross-system communication, receiving a multimedia processing request sent by the adaptation layer and sending the multimedia processing request to the host operation. System OpenMAX integration layer IL;
所述vOpenMAX Back end具体可以用于在主机操作系统的OpenMAX集成层IL中,作为客户机操作系统硬件编解码的服务器,根据所述多媒体处理请求加载并控制所述主机操作系统中的硬件编解码器对客户机操作系统传递的所述多媒体文件进行编解码。The vOpenMAX Back end may be specifically used in a OpenMAX integration layer IL of the host operating system, as a server of the guest operating system hardware codec, loading and controlling hardware codec in the host operating system according to the multimedia processing request. The program encodes and decodes the multimedia file delivered by the guest operating system.
实施中,所述vOpenMAX Front end具体可以用于在所述客户机操作系 统中向所述主机操作系统发送通知消息,所述vOpenMAX Back end具体可以用于在所述主机操作系统的OpenMAX集成层IL中,根据所述通知消息加载相应的硬件编解码器;In an implementation, the vOpenMAX Front end may be specifically used in the client operating system The system sends a notification message to the host operating system, where the vOpenMAX Back end is specifically configured to load, in the OpenMAX integration layer IL of the host operating system, a corresponding hardware codec according to the notification message;
所述vOpenMAX Front end还可以用于在所述客户机操作系统中将多媒体文件发送给所述主机操作系统,所述vOpenMAX Back end还可以用于在所述主机操作系统的OpenMAX集成层IL中,控制所述主机操作系统的硬件编解码器对所述多媒体文件进行编解码。The vOpenMAX Front end can also be used to send a multimedia file to the host operating system in the guest operating system, and the vOpenMAX Back end can also be used in an OpenMAX integration layer IL of the host operating system. The hardware codec controlling the host operating system encodes and decodes the multimedia file.
实施中,所述装置可以进一步包括:In an implementation, the apparatus may further include:
数据回传模块,用于在所述主机操作系统的OpenMAX集成层IL中,将编解码后的数据传回所述客户机操作系统;a data backhaul module, configured to send the coded data back to the guest operating system in an OpenMAX integration layer IL of the host operating system;
或者,or,
显示模块,用于在所述主机操作系统侧显示编解码处理状态。And a display module, configured to display a codec processing state on the host operating system side.
实施例三、Embodiment 3
基于同一发明构思,本申请实施例还提供了一种电子设备,下面进行说明。Based on the same inventive concept, an embodiment of the present application further provides an electronic device, which will be described below.
图5示出了本申请实施例三中电子设备的结构示意图,如图所示,所述电子设备包括:存储器401、一个或多个处理器402、以及一个或多个模块,所述一个或多个模块被存储于所述存储器中,并被配置为由所述一个或多个处理器执行,所述一个或多个模块包括用于执行如上所述多操作系统多媒体编解码方法中各个步骤的指令。5 is a schematic structural diagram of an electronic device in Embodiment 3 of the present application. As shown, the electronic device includes: a memory 401, one or more processors 402, and one or more modules, the one or A plurality of modules are stored in the memory and configured to be executed by the one or more processors, the one or more modules including steps for performing the multi-operating system multimedia codec method as described above Instructions.
本申请实施例所提供的电子设备,通过修改客户机操作系统中的适配层,增加了确定所述编解码器类别的步骤,并在确定所述多媒体文件的编解码器为硬件编解码器时,通过vOpenMAX跨系统通信的使用主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,实现了客户机操作系统跨系统地使用主机操作系统的硬件编解码器实现硬件加速的目的。 The electronic device provided by the embodiment of the present application increases the step of determining the codec category by modifying an adaptation layer in the guest operating system, and determines that the codec of the multimedia file is a hardware codec. When the vOpenMAX cross-system communication uses the hardware codec in the host operating system to encode and decode the multimedia file, the hardware operating code of the host operating system is used to implement hardware acceleration by the guest operating system. .
实施例四、Embodiment 4
基于同一发明构思,本申请实施例还提供了一种计算机程序产品,下面进行说明。Based on the same inventive concept, the embodiment of the present application further provides a computer program product, which will be described below.
本申请实施例所提供的计算机程序产品,对用于执行一种过程的指令进行编码,所述过程包括如上所述多操作系统多媒体编解码的方法。The computer program product provided by the embodiment of the present application encodes an instruction for executing a process, and the process includes a method for multi-operating system multimedia codec as described above.
具体实施时,所述计算机程序产品可以与电子设备结合使用。In a specific implementation, the computer program product can be used in conjunction with an electronic device.
为了便于本申请的实施,下面以实例进行说明。In order to facilitate the implementation of the present application, the following description will be made by way of example.
实施例五、Embodiment 5
本申请实施例以手机播放高清视频为例。The embodiment of the present application takes a mobile phone as a high-definition video as an example.
图6示出了本申请实施例五中手机的结构示意图,如图所示,假设所述手机为双操作系统的移动通信终端,所述双操作系统具体可以为:个人操作系统和企业操作系统,假设企业操作系统为主机操作系统(Host OS)、个人操作系统为客户机操作系统(Guest OS)。FIG. 6 is a schematic structural diagram of a mobile phone in Embodiment 5 of the present application. As shown in the figure, the mobile phone is a dual-operating mobile communication terminal, and the dual operating system may be: a personal operating system and an enterprise operating system. Assume that the enterprise operating system is the host operating system (Host OS) and the personal operating system is the guest operating system (Guest OS).
(1)用户在个人操作系统中打开多媒体应用程序播放一个视频文件;(1) The user opens a multimedia application in a personal operating system to play a video file;
(2)本申请实施例可以在所述个人操作系统的适配层(adaptation layer)中为所述视频文件选择合适的解码器,然后可以确定该解码器是硬件编解码器(HW Codec)还是软件编解码器(SW Codec):(2) The embodiment of the present application may select a suitable decoder for the video file in an adaptation layer of the personal operating system, and then determine whether the decoder is a hardware codec (HW Codec) or Software Codec (SW Codec):
如果是SW Codec,则可以调用个人操作系统中的软件解码器对所述视频文件进行解码操作;If it is SW Codec, the software decoder in the personal operating system can be called to perform decoding operation on the video file;
如果是HW Codec,则可以通过vOpenMAX Front end与企业操作系统中的vOpenMAX Back end跨系统通信,调用企业操作系统中的硬件编解码器对所述视频文件进行解码操作。If it is HW Codec, the vOpenMAX Front end can communicate with the vOpenMAX Back end in the enterprise operating system to call the hardware codec in the enterprise operating system to decode the video file.
具体实施时,所述个人操作系统可以通过跨系统通信技术(例如:QemuPipe、Socket等)通知企业操作系统加载相应的编解码器Codec;所述企业操作系统加载相应的Codec; In a specific implementation, the personal operating system may notify the enterprise operating system to load a corresponding codec Codec by using a cross-system communication technology (eg, QemuPipe, Socket, etc.); the enterprise operating system loads the corresponding Codec;
之后,所述个人操作系统可以通过vOpenMAX Front end与企业操作系统中的vOpenMAX Back end的跨系统通信将压缩的数据传递给企业操作系统侧的Codec;所述企业操作系统侧的硬件编解码器HW Codec对所述视频文件进行解码。Thereafter, the personal operating system can transmit the compressed data to the codec of the enterprise operating system side through the cross-system communication of the vOpenMAX Back end in the enterprise operating system through the vOpenMAX Front end; the hardware codec HW of the enterprise operating system side Codec decodes the video file.
在企业操作系统的Codec解码完成后,本申请实施例可以根据显示系统实现方式直接在企业操作系统侧完成显示,也可以将解码后的数据再传回个人操作系统。After the Codec decoding of the enterprise operating system is completed, the embodiment of the present application can directly display on the enterprise operating system side according to the display system implementation manner, and can also transmit the decoded data back to the personal operating system.
实施例六、Embodiment 6
本申请实施例以采用Android多媒体框架(StageFright+OpenMAX)的多媒体系统为例,StageFright的编解码功能是利用OpenMAX框架实现的,OpenMAX的适配层是OpenMAX IL层之上的封装层,可以被StageFright调用。In the embodiment of the present application, a multimedia system using the Android multimedia framework (StageFright+OpenMAX) is taken as an example. The codec function of StageFright is implemented by using the OpenMAX framework. The adaptation layer of OpenMAX is an encapsulation layer on the OpenMAX IL layer, which can be used by StageFright. transfer.
图7示出了现有Android多媒体框架的多操作系统结构示意图,如图所示,主机操作系统(Host OS)中OpenMAX IL APP发起一个多媒体处理事件event之后,由主机的OpenMAX Core调用OpenMAX Component,进而操作Android Kernel的H/W Codec;FIG. 7 is a schematic diagram showing the structure of a multi-operating system of the existing Android multimedia framework. As shown in the figure, after the OpenMAX IL APP in the host operating system (Host OS) initiates a multimedia processing event event, the OpenMAX Component is called by the host's OpenMAX Core. Then operate the H/W Codec of the Android Kernel;
客户机操作系统(Guest OS)中OpenMAX IL APP发起一个多媒体处理事件之后,由客户机的OpenMAX Core调用OpenMAX Component,进而操作Android Kernel的S/W Codec。After the OpenMAX IL APP in the guest operating system (Guest OS) initiates a multimedia processing event, the OpenMAX Component is called by the client's OpenMAX Core, and the S/W Codec of the Android Kernel is operated.
本申请实施例可以修改OpenMAX Core的接口,使得客户机操作系统可以支持硬件编解码。The embodiment of the present application can modify the interface of the OpenMAX Core so that the guest operating system can support hardware codec.
图8示出了本申请实施例六中Android多媒体框架的多操作系统结构示意图,下面以Android系统中播放AVC(高级视频编码,Advanced Video Coding)编码的视频文件的视频解码为例进行说明。FIG. 8 is a schematic diagram showing the structure of a multi-operating system of the Android multimedia framework in the sixth embodiment of the present application. The following is an example of video decoding of a video file encoded by AVC (Advanced Video Coding) in the Android system.
StageFright的播放器类AwesomePlayer创建一个事件调度器,根据该视 频文件的头部选择合适的分离器对所述视频文件进行音视频轨道的分离;StageFright's player class AwesomePlayer creates an event dispatcher based on the view Selecting a suitable splitter from the head of the frequency file to separate the audio and video tracks of the video file;
通过setVideoSource()产生独立的mVideoTrack(视频)数据流,为视频解码器提供有需要的数据流;通过setAudioSource()产生独立的mAudioTrack(音频)数据流,为音频解码器提供有需要的数据流。A separate mVideoTrack (video) data stream is generated by setVideoSource() to provide the desired data stream for the video decoder; a separate mAudioTrack (audio) data stream is generated by setAudioSource() to provide the audio decoder with the required data stream.
AwesomePlayer调用OMX Client::connect函数,通过共用IMOX变量来获得OMX服务。AwesomePlayer calls the OMX Client::connect function to obtain the OMX service by sharing the IMOX variable.
本申请实施例可以为分离得到的视频轨道、音频轨道选择合适的解码器,以视频轨道为例:The embodiment of the present application may select a suitable decoder for the separated video track and audio track, taking the video track as an example:
在预先设置的配置文件XML中可以存储系统支持的所有解码器,AVC编码类型对应AVC Decoder,假设支持AVC格式的解码器包括软件解码器和硬件解码器,此时,可以根据分辨率的高低和应用场景等预设规则进一步确定合适的解码器。All decoders supported by the system can be stored in the preset configuration file XML, and the AVC encoding type corresponds to the AVC Decoder. It is assumed that the decoder supporting the AVC format includes a software decoder and a hardware decoder, and at this time, according to the resolution and the level. A preset rule such as an application scenario further determines a suitable decoder.
例如:如果该AVC视频文件的分辨率较低(低于预设阈值)那么可以确定支持AVC格式的软件解码器,如果该AVC视频文件的分辨率较高(高于预设阈值)那么可以确定支持AVC格式的硬件解码器;For example, if the resolution of the AVC video file is lower (below the preset threshold), then the software decoder supporting the AVC format can be determined, and if the resolution of the AVC video file is higher (above the preset threshold), then it can be determined A hardware decoder supporting AVC format;
具体实施时,对于需要CPU运算较大的情况可以选择软件解码器,对于需要CPU运算较小的情况可以选择硬件解码器。例如:如果当前应用场景是为视频文件生成小缩略图视频文件(所需运算量较小),那么可以确定支持AVC格式的软件解码器,如果当前应用场景是播放原始视频文件(所需运算量较大),那么可以确定支持AVC格式的硬件解码器。In the specific implementation, the software decoder can be selected for the case where the CPU operation is required to be large, and the hardware decoder can be selected for the case where the CPU operation is required to be small. For example, if the current application scenario is to generate a small thumbnail video file for the video file (the amount of computation required is small), then the software decoder supporting the AVC format can be determined if the current application scenario is to play the original video file (the required amount of operation) Larger, then you can determine the hardware decoder that supports the AVC format.
OpenMAX进行准备工作初始化,根据传进来的视频文件,创建一个OMXNodeInstance实例,将所述解码器的组件与实例关联。OpenMAX performs preparatory work initialization, creates an OMXNodeInstance instance based on the incoming video file, and associates the decoder's components with the instance.
对于软件解码器,OpenMAX在OpenMAX IL通过客户机操作系统中的OpenMAX Core来调用SW Codec,SW Codec在编解码实施过程中可以调用Android kernel的所述SW Codec的驱动Driver来实现具体的软件编解码操 作;For software decoders, OpenMAX calls SW Codec in OpenMAX IL through OpenMAX Core in the guest operating system. SW Codec can call the SW Codec driver driver of Android kernel to implement specific software codec during codec implementation. Fuck Work
对于硬件编解码器,OpenMAX则在OpenMAX IL通过客户机操作系统的虚拟OpenMAX Front end(即vOpenMAX Front end)与主机操作系统中的vOpenMAX Back end跨系统通信,调用主机操作系统中的OpenMAX Core调用Android kernel的HW Codec,HW Codec在编解码实施过程中可以调用Android kernel的所述HW Codec的驱动Driver来实现具体的硬件编解码操作。For the hardware codec, OpenMAX communicates with the vOpenMAX Back end in the host operating system through the virtual OpenMAX Front end of the guest operating system (ie vOpenMAX Front end), calling OpenMAX Core in the host operating system to call Android. HW Codec of the kernel, HW Codec can call the driver of the HW Codec of the Android kernel to implement specific hardware codec operations during the codec implementation.
具体的,客户机操作系统中的虚拟OpenMAX硬编解码接口(vOpenMAX Front end)与主机操作系统中的虚拟OpenMAX服务器(vOpenMAX Back end)之间的跨系统通信,可以在虚拟机监控器Hypervisor的管理下通过虚拟机KVM和模拟器Qemu实现控制流和数据流的传输。Specifically, cross-system communication between the virtual OpenMAX hard codec interface (vOpenMAX Front end) in the guest operating system and the virtual OpenMAX server (vOpenMAX Back end) in the host operating system can be managed in the virtual machine monitor Hypervisor The control flow and the data flow are transmitted through the virtual machine KVM and the simulator Qemu.
实施例七、Example VII.
本申请实施例以平板电脑为例进行说明。The embodiment of the present application is described by taking a tablet computer as an example.
图9示出了本申请实施例七中平板电脑的结构示意图,如图所示,所述平板电脑可以包括主机操作系统(Host OS)、客户机操作系统(Guest OS),其中所述客户机操作系统(Guest OS)可以包括个人操作系统(POS)和企业操作系统(EOS)。FIG. 9 is a schematic structural diagram of a tablet computer in Embodiment 7 of the present application. As shown in the figure, the tablet computer may include a host operating system (Host OS) and a guest operating system (Guest OS), where the client The guest OS can include a personal operating system (POS) and an enterprise operating system (EOS).
主机操作系统(Host OS)可以在主机操作系统内的多媒体应用程序接收到多媒体处理请求后,调用主机操作系统中的OpenMAX组件,编解码组件在实现过程中调用硬件的编解码接口,利用H/W Codec对多媒体文件进行编解码。The host operating system (Host OS) can call the OpenMAX component in the host operating system after the multimedia application in the host operating system receives the multimedia processing request, and the codec component calls the hardware codec interface during the implementation process, and uses the H/ W Codec encodes and decodes multimedia files.
个人操作系统(POS)和企业操作系统(EOS)均可以在各自系统的多媒体应用程序接收到处理请求后,对于软件编解码器调用各自系统内的软件编解码器对所述多媒体文件进行编解码,即利用CPU进行编解码;对于 硬件编解码器则可以通过各自系统内的vOpenMAX Front end与主机操作系统的vOpenMAX Back end跨系统通信,从而调用主机操作系统中的OpenMAX组件,主机操作系统中的OpenMAX组件在实现过程中调用硬件的编解码接口,实现利用H/W Codec对多媒体文件进行编解码的目的。Both the personal operating system (POS) and the enterprise operating system (EOS) can encode and decode the multimedia file for the software codec by calling the software codec in the respective system after the multimedia application of the respective system receives the processing request. , that is, using the CPU for encoding and decoding; The hardware codec can communicate with the vOpenMAX Back end of the host operating system through the vOpenMAX Back end of the respective system, thereby calling the OpenMAX component in the host operating system, and the OpenMAX component in the host operating system calls the hardware during the implementation process. The codec interface realizes the purpose of encoding and decoding multimedia files by using H/W Codec.
采用本申请实施例所提供的技术方案,无论用户处于哪个操作系统(个人操作系统、或者企业操作系统)均可以利用主机操作系统的硬件编解码器为所在操作系统提供硬件加速能力。With the technical solution provided by the embodiment of the present application, the hardware codec of the host operating system can be used to provide hardware acceleration capability for the operating system regardless of which operating system (personal operating system or enterprise operating system) the user is in.
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art will appreciate that embodiments of the present application can be provided as a method, system, or computer program product. Thus, the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware. Moreover, the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (system), and computer program products according to embodiments of the present application. It will be understood that each flow and/or block of the flowchart illustrations and/or FIG. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device. Means for implementing the functions specified in one or more of the flow or in a block or blocks of the flow chart.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。 The computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device. The apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device. The instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。 While the preferred embodiment of the present application has been described, it will be apparent that those skilled in the art can make further changes and modifications to the embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and the modifications and

Claims (12)

  1. 一种多操作系统多媒体编解码方法,其特征在于,包括:A multi-operating system multimedia codec method, comprising:
    在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;Receiving, in the guest operating system, a multimedia processing request sent by the adaptation layer and transmitting the multimedia processing request to a host operating system, where the multimedia processing request includes a multimedia file;
    在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。In the OpenMAX integration layer IL of the host operating system, the hardware codec in the host operating system is loaded and controlled to encode and decode the multimedia file.
  2. 如权利要求1所述的方法,其特征在于,在所述接收适配层发送的多媒体处理请求之前,进一步包括:The method according to claim 1, wherein before the receiving the multimedia processing request sent by the adaptation layer, the method further comprises:
    在所述客户机操作系统的适配层,获取多媒体应用程序发送的多媒体文件,为所述多媒体文件适配编解码器。And acquiring, at the adaptation layer of the guest operating system, a multimedia file sent by the multimedia application, and adapting the codec to the multimedia file.
  3. 如权利要求1所述的方法,其特征在于,The method of claim 1 wherein
    所述接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,具体为:在客户机操作系统的OpenMAX集成层IL,作为跨系统通信的接口,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统的OpenMAX集成层IL;Receiving the multimedia processing request sent by the adaptation layer and sending the multimedia processing request to the host operating system, specifically: in the OpenMAX integration layer IL of the guest operating system, as an interface for cross-system communication, receiving the adaptation layer to send Multimedia processing request and send the multimedia processing request to the OpenMAX integration layer IL of the host operating system;
    所述在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,具体为:在主机操作系统的OpenMAX集成层IL中,作为客户机操作系统硬件编解码的服务器,根据所述多媒体处理请求加载并控制所述主机操作系统中的硬件编解码器对客户机操作系统传递的所述多媒体文件进行编解码。Loading and controlling the hardware codec in the host operating system to encode and decode the multimedia file in the OpenMAX integration layer IL of the host operating system, specifically: in the OpenMAX integration layer IL of the host operating system, As a server of the guest operating system hardware codec, the hardware codec in the host operating system is loaded and controlled according to the multimedia processing request to encode and decode the multimedia file delivered by the guest operating system.
  4. 如权利要求1所述的方法,其特征在于,所述在客户机操作系统中将多媒体处理请求发送至主机操作系统,在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码,具体为: The method of claim 1, wherein the multimedia processing request is sent to a host operating system in a guest operating system, and the host operating system is loaded and controlled in an OpenMAX integration layer IL of the host operating system. The hardware codec in the codec encodes and decodes the multimedia file, specifically:
    在所述客户机操作系统中向所述主机操作系统发送通知消息,在所述主机操作系统的OpenMAX集成层IL中,根据所述通知消息加载相应的硬件编解码器;Sending a notification message to the host operating system in the guest operating system, in the OpenMAX integration layer IL of the host operating system, loading a corresponding hardware codec according to the notification message;
    在所述客户机操作系统中将多媒体文件发送给所述主机操作系统,在所述主机操作系统的OpenMAX集成层IL中,控制所述硬件编解码器对所述多媒体文件进行编解码。Sending a multimedia file to the host operating system in the guest operating system, and controlling the hardware codec to encode and decode the multimedia file in an OpenMAX integration layer IL of the host operating system.
  5. 如权利要求1所述的方法,其特征在于,所述主机操作系统的硬件编解码器对所述多媒体文件完成编解码之后,进一步包括:The method according to claim 1, wherein after the hardware codec of the host operating system completes encoding and decoding of the multimedia file, the method further comprises:
    将编解码后的数据传回所述客户机操作系统;或者,Passing the coded data back to the guest operating system; or,
    在所述主机操作系统侧显示编解码处理状态。The codec processing status is displayed on the host operating system side.
  6. 一种多操作系统多媒体编解码装置,其特征在于,包括:主机操作系统、客户机操作系统以及位于客户机操作系统中的vOpenMAX前端Front end和位于主机操作系统中的vOpenMAX后端Back end;A multi-operating system multimedia codec device, comprising: a host operating system, a guest operating system, and a vOpenMAX front end Front end located in the guest operating system and a vOpenMAX back end Back end located in the host operating system;
    所述vOpenMAX前端Front end,用于在客户机操作系统中,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统,所述多媒体处理请求包括多媒体文件;The vOpenMAX front end Front end is configured to receive, in the guest operating system, a multimedia processing request sent by the adaptation layer and send the multimedia processing request to the host operating system, where the multimedia processing request includes a multimedia file;
    所述vOpenMAX后端Back end,用于在主机操作系统的OpenMAX集成层IL中,加载并控制所述主机操作系统中的硬件编解码器对所述多媒体文件进行编解码。The vOpenMAX backend end end is configured to load and control a hardware codec in the host operating system to encode and decode the multimedia file in an OpenMAX integration layer IL of the host operating system.
  7. 如权利要求6所述的装置,其特征在于,所述客户机操作系统进一步包括:The apparatus of claim 6 wherein said guest operating system further comprises:
    适配模块,用于在所述接收适配层发送的多媒体处理请求之前,在所述客户机操作系统的适配层,获取多媒体应用程序发送的多媒体文件,为所述多媒体文件适配编解码器。And an adaptation module, configured to acquire, at an adaptation layer of the guest operating system, a multimedia file sent by the multimedia application, and encode and decode the multimedia file for the multimedia file before the receiving the multimedia processing request sent by the adaptation layer Device.
  8. 如权利要求6所述的装置,其特征在于, The device of claim 6 wherein:
    所述vOpenMAX Front end具体用于在客户机操作系统的OpenMAX集成层IL,作为跨系统通信的接口,接收适配层发送的多媒体处理请求并将所述多媒体处理请求发送至主机操作系统的OpenMAX集成层IL;The vOpenMAX Front end is specifically used in the OpenMAX integration layer IL of the guest operating system, as an interface for cross-system communication, receiving a multimedia processing request sent by the adaptation layer and transmitting the multimedia processing request to the OpenMAX integration of the host operating system. Layer IL;
    所述vOpenMAX Back end具体用于在主机操作系统的OpenMAX集成层IL中,作为客户机操作系统硬件编解码的服务器,根据所述多媒体处理请求加载并控制所述主机操作系统中的硬件编解码器对客户机操作系统传递的所述多媒体文件进行编解码。The vOpenMAX Back end is specifically used in a OpenMAX integration layer IL of a host operating system, as a server of a guest operating system hardware codec, loading and controlling a hardware codec in the host operating system according to the multimedia processing request. Encoding and decoding the multimedia file delivered by the guest operating system.
  9. 如权利要求6所述的装置,其特征在于,所述vOpenMAX Front end具体用于在所述客户机操作系统中向所述主机操作系统发送通知消息,所述vOpenMAX Back end具体用于在所述主机操作系统的OpenMAX集成层IL中,根据所述通知消息加载相应的硬件编解码器;所述vOpenMAX Frontend还用于在所述客户机操作系统中将多媒体文件发送给所述主机操作系统,所述vOpenMAX Back end还用于在所述主机操作系统的OpenMAX集成层IL中,控制所述主机操作系统的硬件编解码器对所述多媒体文件进行编解码。The device according to claim 6, wherein the vOpenMAX Front end is specifically configured to send a notification message to the host operating system in the guest operating system, where the vOpenMAX Back end is specifically used in the The OpenMAX integration layer IL of the host operating system loads a corresponding hardware codec according to the notification message; the vOpenMAX Frontend is further configured to send the multimedia file to the host operating system in the guest operating system, The vOpenMAX Back end is further configured to control, in an OpenMAX integration layer IL of the host operating system, a hardware codec of the host operating system to encode and decode the multimedia file.
  10. 如权利要求6所述的装置,其特征在于,进一步包括:The device of claim 6 further comprising:
    数据回传模块,用于在所述主机操作系统的OpenMAX集成层IL中,将编解码后的数据传回所述客户机操作系统;或者,a data backhaul module, configured to send the coded data back to the guest operating system in an OpenMAX integration layer IL of the host operating system; or
    显示模块,用于在所述主机操作系统侧显示编解码处理状态。And a display module, configured to display a codec processing state on the host operating system side.
  11. 一种电子设备,其特征在于,所述电子设备包括:存储器、一个或多个处理器、以及一个或多个模块,所述一个或多个模块被存储于所述存储器中,并被配置为由所述一个或多个处理器执行,所述一个或多个模块包括用于执行如权利要求1至5任一所述方法中各个步骤的指令。An electronic device, comprising: a memory, one or more processors, and one or more modules, the one or more modules being stored in the memory and configured to Executed by the one or more processors, the one or more modules comprising instructions for performing the various steps in the method of any of claims 1 to 5.
  12. 一种计算机程序产品,其特征在于,所述计算机程序产品对用于执行一种过程的指令进行编码,所述过程包括根据权利要求1至5任一所述 的方法。 A computer program product, wherein the computer program product encodes instructions for performing a process, the process comprising the method of any one of claims 1 to 5. Methods.
PCT/CN2016/112494 2016-12-27 2016-12-27 Multimedia encoding/decoding method and device for multi-operating system, and electronic device WO2018119711A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201680002881.8A CN107996026A (en) 2016-12-27 2016-12-27 Multiple operating system multimedia coding-decoding method, device and electronic equipment
PCT/CN2016/112494 WO2018119711A1 (en) 2016-12-27 2016-12-27 Multimedia encoding/decoding method and device for multi-operating system, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/112494 WO2018119711A1 (en) 2016-12-27 2016-12-27 Multimedia encoding/decoding method and device for multi-operating system, and electronic device

Publications (1)

Publication Number Publication Date
WO2018119711A1 true WO2018119711A1 (en) 2018-07-05

Family

ID=62029729

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/112494 WO2018119711A1 (en) 2016-12-27 2016-12-27 Multimedia encoding/decoding method and device for multi-operating system, and electronic device

Country Status (2)

Country Link
CN (1) CN107996026A (en)
WO (1) WO2018119711A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112738056A (en) * 2020-12-24 2021-04-30 北京飞讯数码科技有限公司 Coding and decoding method and system
CN112788343A (en) * 2021-02-23 2021-05-11 北京睿芯高通量科技有限公司 Software and hardware coding cooperation system and method for video processing server and electronic device
CN116055715A (en) * 2022-05-30 2023-05-02 荣耀终端有限公司 Scheduling method of coder and decoder and electronic equipment

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111510780B (en) * 2020-04-10 2021-10-26 广州方硅信息技术有限公司 Video live broadcast control, bridging, flow control and broadcast control method and client
CN111787329B (en) * 2020-06-01 2023-04-14 视联动力信息技术股份有限公司 Data processing method, system, device, electronic equipment and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073765A1 (en) * 2002-10-10 2004-04-15 International Business Machines Corporation Method and system of managing virtualized physical memory in a memory controller and processor system
CN101847105A (en) * 2009-03-26 2010-09-29 联想(北京)有限公司 Computer and internal memory sharing method of a plurality of operation systems
CN102981887A (en) * 2011-09-06 2013-03-20 联想(北京)有限公司 Data processing method and electronic device
CN104023266A (en) * 2014-05-27 2014-09-03 烽火通信科技股份有限公司 Use method of communication coding-decoding assembly of android system
CN105577781A (en) * 2015-12-21 2016-05-11 福建时迅信息科技有限公司 Method and system for sound frequency redirection in virtualization desktop
CN106034241A (en) * 2015-03-19 2016-10-19 华为技术有限公司 Multimedia redirection method, device and system
CN106716998A (en) * 2016-12-26 2017-05-24 深圳前海达闼云端智能科技有限公司 Multi-operating system multimedia data coding and decoding method and apparatus, electronic device and computer program product
CN106797470A (en) * 2016-12-26 2017-05-31 深圳前海达闼云端智能科技有限公司 Multiple operating system multi-medium data decoding method, device, electronic equipment and computer program product

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102014141B (en) * 2010-12-30 2013-02-06 电子科技大学 Method for realizing security of network terminal equipment
CN102957700A (en) * 2012-11-02 2013-03-06 杭州华银教育多媒体科技股份有限公司 Multi-functional device and use method thereof
CN103810021B (en) * 2014-02-19 2017-10-24 福建升腾资讯有限公司 Virtual desktop display methods and its system based on host under a kind of VDI

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073765A1 (en) * 2002-10-10 2004-04-15 International Business Machines Corporation Method and system of managing virtualized physical memory in a memory controller and processor system
CN101847105A (en) * 2009-03-26 2010-09-29 联想(北京)有限公司 Computer and internal memory sharing method of a plurality of operation systems
CN102981887A (en) * 2011-09-06 2013-03-20 联想(北京)有限公司 Data processing method and electronic device
CN104023266A (en) * 2014-05-27 2014-09-03 烽火通信科技股份有限公司 Use method of communication coding-decoding assembly of android system
CN106034241A (en) * 2015-03-19 2016-10-19 华为技术有限公司 Multimedia redirection method, device and system
CN105577781A (en) * 2015-12-21 2016-05-11 福建时迅信息科技有限公司 Method and system for sound frequency redirection in virtualization desktop
CN106716998A (en) * 2016-12-26 2017-05-24 深圳前海达闼云端智能科技有限公司 Multi-operating system multimedia data coding and decoding method and apparatus, electronic device and computer program product
CN106797470A (en) * 2016-12-26 2017-05-31 深圳前海达闼云端智能科技有限公司 Multiple operating system multi-medium data decoding method, device, electronic equipment and computer program product

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112738056A (en) * 2020-12-24 2021-04-30 北京飞讯数码科技有限公司 Coding and decoding method and system
CN112738056B (en) * 2020-12-24 2023-05-05 北京飞讯数码科技有限公司 Encoding and decoding method and system
CN112788343A (en) * 2021-02-23 2021-05-11 北京睿芯高通量科技有限公司 Software and hardware coding cooperation system and method for video processing server and electronic device
CN116055715A (en) * 2022-05-30 2023-05-02 荣耀终端有限公司 Scheduling method of coder and decoder and electronic equipment
CN116055715B (en) * 2022-05-30 2023-10-20 荣耀终端有限公司 Scheduling method of coder and decoder and electronic equipment

Also Published As

Publication number Publication date
CN107996026A (en) 2018-05-04

Similar Documents

Publication Publication Date Title
CN106797388B (en) Cross-system multimedia data encoding and decoding method and device, electronic equipment and computer program product
WO2018119711A1 (en) Multimedia encoding/decoding method and device for multi-operating system, and electronic device
US9191425B2 (en) Systems and methods for remotely presenting a multimedia stream
WO2018119611A1 (en) Multimedia data encoding/decoding method and device for multi-operating system, electronic device, and computer program product
US20160072856A1 (en) Cross-Process Media Handling in a Voice-Over-Internet Protocol (VOIP) Application Platform
KR20160016929A (en) Sharing a virtual hard disk across multiple virtual machines
US20210258362A1 (en) Multi-media redirection for media applications
US20210258369A1 (en) Web browser multi-media redirection
US20160112528A1 (en) Method and System for Serving a Virtual Desktop to a Client
US20220417111A1 (en) Adaptable real-time communications plugin for virtual desktop infrastructure solutions
WO2018119616A1 (en) Multi-operating system multimedia data coding and decoding method and apparatus, electronic device and computer program product
US20130343373A1 (en) Voice-over-internet protocol (voip) application platform
CN106210036A (en) Video display accelerated method in virtual desktop display device
US9298502B2 (en) Pausing virtual machines using API signaling
WO2024051148A1 (en) Cloud game control method and apparatus, electronic device, and storage medium
CN105657540B (en) A kind of video encoding/decoding method and its device being adapted to Android system
CN111866508A (en) Video processing method, device, medium and electronic equipment
US11704175B2 (en) Bridging virtual desktops under nested mode
CN103269333A (en) Multimedia accelerating system based on virtualization
CN103562869B (en) Audio-frequency processing method under virtualized environment and equipment
US20230205566A1 (en) Dynamic connection switching in virtual desktops under nested mode

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: 16924977

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 15/10/2019)

122 Ep: pct application non-entry in european phase

Ref document number: 16924977

Country of ref document: EP

Kind code of ref document: A1