WO2018119955A1 - Cross-system multimedia data coding and decoding method, apparatus, electronic device and computer program product - Google Patents

Cross-system multimedia data coding and decoding method, apparatus, electronic device and computer program product Download PDF

Info

Publication number
WO2018119955A1
WO2018119955A1 PCT/CN2016/113276 CN2016113276W WO2018119955A1 WO 2018119955 A1 WO2018119955 A1 WO 2018119955A1 CN 2016113276 W CN2016113276 W CN 2016113276W WO 2018119955 A1 WO2018119955 A1 WO 2018119955A1
Authority
WO
WIPO (PCT)
Prior art keywords
codec
multimedia data
operating system
shared memory
instruction
Prior art date
Application number
PCT/CN2016/113276
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 PCT/CN2016/113276 priority Critical patent/WO2018119955A1/en
Priority to CN201680002827.3A priority patent/CN106797388B/en
Publication of WO2018119955A1 publication Critical patent/WO2018119955A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Definitions

  • the present application relates to the field of virtualization technologies, and in particular, to a cross-system multimedia data encoding and decoding method, apparatus, electronic device, and computer program product.
  • 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.
  • FIG. 1 shows a schematic diagram of a virtualized system architecture based on Qemu/KVM (Kernel-based Virtual Machine) technology.
  • the bottom layer is the hardware layer of the system, which mainly includes the processor, memory, and input and output devices. Wait.
  • the virtualization layer which runs a virtual machine monitor (abbreviated as VMM or Hypervisor).
  • VMM virtual machine monitor
  • 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 guest virtual machine (ie, client).
  • the virtualized system architecture can run multiple operating systems, such as the Linux operating system or the Android operating system, which usually includes a host operating system (Host OS) and one or more guest operating systems (Guest OS), host operations.
  • Host OS host operating system
  • Guest OS guest operating systems
  • the system runs on a host (Host) running one or more clients on the host operating system, each client running as an application of the host operating system, which can emulate a hardware device for the guest operating system running on the client
  • host operating system running one or more clients on the host operating system
  • each client running as an application of the host operating system, which can emulate a hardware device for the guest operating system running on the client
  • various applications can be run in the guest operating system running on each client.
  • hardware layers can be shared between multiple operating systems Provides CPU, memory, and input and output devices.
  • 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 needs a multimedia codec.
  • the client operating system usually implements software codec through the CPU, and this codec mode will occupy the current
  • the client CPU has a large amount of resources and consumes a large amount of power; and the client operating system can only implement software codec through the CPU, which results in video files of many formats cannot be supported and played smoothly.
  • a guest operating system requires other client operating systems or the host operating system to assist in completing the multimedia data encoding and decoding process, it is necessary to separately allocate corresponding buffers for the multimedia framework buffers in each guest operating system or host operating system.
  • Physical storage area and when a guest operating system needs other systems to assist in cross-system multimedia data encoding and decoding processing, it is necessary to copy the contents of the physical storage area corresponding to the buffer of the guest operating system multimedia framework to the assistance.
  • the processing result needs to be copied back to the physical storage area corresponding to the buffer of the guest operating system multimedia frame that initiates the codec processing request. .
  • the embodiment of the present application proposes a cross-system multimedia data encoding and decoding method, device, electronic device and computer program product, which are mainly used to improve the performance of the virtualization system and shorten the encoding and decoding processing time of the multimedia data.
  • an embodiment of the present application provides a cross-system multimedia data encoding and decoding method, where the method includes:
  • the multimedia data is obtained by the shared memory according to an offset address in the codec instruction; the multimedia data is encoded and decoded according to the codec instruction, and the sharing
  • the memory is in a readable and writable state for both the first operating system and the second operating system.
  • an embodiment of the present application provides a cross-system multimedia data encoding and decoding apparatus, where the apparatus includes: a front end module, configured to acquire, in a first operating system, a codec processing process on a multimedia data.
  • a codec request the codec request includes multimedia data that needs to be subjected to codec processing; the multimedia data is sent to a shared memory; and a codec instruction for encoding and decoding the multimedia data is generated according to the codec request,
  • the codec instruction includes an offset address of the multimedia data in the shared memory; and the codec instruction is sent to a second operating system based on cross-system communication;
  • an embodiment of the present application provides an electronic device, including: a memory, one or more processors; and one or more modules, the one or more modules being Stored in the memory and configured to be executed by the one or more processors, the one or more modules including instructions for performing the various steps of any of the above methods.
  • the multimedia data in the first operating system, when the multimedia data needs to be encoded and decoded, the multimedia data may be sent to the second operating system through the shared memory to complete the editing of the multimedia data in the second operating system.
  • Decoding processing in the present application, the multimedia data is transmitted in the process of encoding and decoding the cross-system multimedia data through the shared memory, thereby reducing the number of data copies, thereby saving the computing resources and storage resources of the virtualized system architecture, and improving the performance of the virtualized system.
  • the cross-system multimedia data encoding and decoding processing time is shortened.
  • FIG. 1 is a schematic diagram showing the architecture of a virtualization system in the prior art
  • FIG. 2 is a schematic flowchart diagram of a method for encoding and decoding multimedia data in a cross-system according to Embodiment 1 of the present application;
  • FIG. 3 is a schematic diagram showing a virtualized system architecture of a cross-system multimedia data encoding and decoding method according to Embodiment 1 of the present application;
  • FIG. 4 is a schematic structural diagram of another virtualization system applied to a cross-system multimedia data encoding and decoding method according to Embodiment 1 of the present application;
  • FIG. 6 is a schematic structural diagram of a cross-system multimedia data encoding and decoding apparatus according to Embodiment 2 of the present application;
  • FIG. 7 is a schematic structural diagram of an electronic device in Embodiment 3 of the present application.
  • the performance is reduced, and on the other hand, the cross-system multimedia data encoding and decoding processing time is extended.
  • Embodiment 1 is a diagrammatic representation of Embodiment 1:
  • the multimedia framework can obtain the relevant configuration information from the guest operating system kernel layer for initialization, thereby obtaining the mapping of the shared memory to the address space of the guest operating system, and can also establish with Qemu. Synchronize control channels.
  • Qemu may trigger a multimedia framework in the host operating system to perform initialization similar to the guest operating system to obtain the shared memory mapped to the address space of the host operating system, thereby establishing a connection with the shared memory across the system.
  • FIG. 2 is a schematic flowchart of a method for encoding and decoding multimedia data in a cross-system according to Embodiment 1 of the present application. As shown in FIG. 2, the method for encoding and decoding multimedia data in a cross-system includes:
  • Step 101 In the first operating system, acquiring a codec request for encoding and decoding a multimedia data, where the codec request includes multimedia data that needs to be subjected to codec processing; and sending the multimedia data to a shared memory;
  • the codec request generates a codec instruction for performing codec processing on the multimedia data, the codec instruction including an offset address of the multimedia data in the shared memory; and sending the codec instruction based on cross-system communication to Second operating system;
  • Step 102 In the second operating system, obtaining, by the shared memory, the multimedia data according to an offset address in the codec instruction, and performing codec processing on the multimedia data according to the codec instruction,
  • the shared memory is in a readable and writable state for both the first operating system and the second operating system;
  • step 103 in the second operating system, the codec processing result of the multimedia data is fed back to the shared memory; in the first operating system, the codec processing result is obtained by the shared memory.
  • the multimedia data that needs to be encoded and decoded included in the request is stored in the first operating system and the second operating system. Can be read and written in shared memory.
  • the multimedia data may be multimedia data that is actually required to be subjected to codec processing, such as data that is actually required to be coded and processed in a video file or an audio file, or may be a location of a multimedia data that is actually required to be coded and processed in a memory. And other information, such as data format, time stamp, data size, and so on.
  • a buffer for encoding and decoding multimedia data is allocated to the first operating system, and the physical memory corresponding to the buffer can be read by the first operating system and the second operating system.
  • the multimedia data is written to its assigned buffer.
  • the kernel layer of the first operating system can map the shared memory to the user space of the first operating system; the first operating system can perform offset recording on the shared memory for which the data is written, that is, record the memory block currently writing the multimedia data. The offset address of the first address relative to the first address of the entire shared memory area.
  • codec instruction for performing codec processing on the multimedia data
  • the codec instruction indicates, for the second operating system, how to perform codec processing on the delivered multimedia data, and may include codec Command functions and related parameters, etc.
  • the codec instruction may be sent to the second operating system based on a cross-system communication manner such as QEMU PIPE, Socket, or shared memory.
  • the codec instructions are sent to the second operating system based on a shared memory.
  • the code-based instruction is transmitted faster between the first operating system and the second operating system based on the shared memory mode, further shortening the cross-system multimedia data.
  • the time of codec processing is faster than QEMU PIPE, Socket, etc.
  • the transmitting the multimedia data to the shared memory comprises: transmitting the multimedia data to the non-shared memory; and copying the multimedia data in the non-shared memory to the shared memory.
  • the physical memory corresponding to the buffer allocated by the first operating system can be directly read and written by the first operating system, but cannot be read or written by the second operating system, that is, the physical memory corresponding to the buffer is non-shared memory. And storing the multimedia data that needs to be coded and processed by the first operating system into the physical memory corresponding to the buffer, and then copying the multimedia data to the shared memory that can be read and written by the first operating system and the second operating system. In memory.
  • the kernel layer of the second operating system can map the shared memory to the user space of the second operating system.
  • the second operating system may read the multimedia data according to the offset address in the codec instruction to a corresponding position of the shared memory, and then the multimedia data according to the codec instruction.
  • the codec processing is performed to obtain the processing result.
  • the codec driver may be invoked according to the codec instruction to drive the corresponding codec to complete the codec process; and the codec component may be loaded according to the codec instruction.
  • Decoding processing; the multimedia data may be encoded and decoded according to the codec instruction by an OpenMAX integration layer (OpenMAX IL, OpenMAX Integration Layer) in the second operating system.
  • OpenMAX integration layer OpenMAX IL, OpenMAX Integration Layer
  • the format and specific content of the codec instructions may also be different in various different situations as described above.
  • step 103 in the second operating system, after the codec processing of the multimedia data is performed according to the codec instruction, a processing result is obtained, and the processing result is also transmitted to the first operating system through the shared memory.
  • the codec processing result is written into the shared memory, and the position of the processing result in the shared memory (first address offset address) is recorded, and the offset address is based on QEMU PIPE, Socket or shared memory.
  • the system communication mode is sent to the first operating system, so that the first operating system can read data through the offset address of the processing result to the corresponding location of the shared memory.
  • the processing result may be multimedia data after being encoded and processed, such as video or audio data in a decoded video file or a compressed audio file, or may be encoded and processed multimedia data in a memory.
  • Location and other information such as data format, time stamp, data size, etc.
  • the first operating system is a guest operating system in a virtualized system architecture
  • the second operation The system is the host operating system in the virtualized system architecture.
  • the step 101 is: in the first operating system, acquiring a codec request of the multimedia frame calling codec to perform multimedia data encoding and decoding processing, where the codec request includes multimedia that needs to be coded and processed. Transmitting the codec request to the shared memory; generating a codec instruction for encoding and decoding the multimedia data according to the codec request, the codec instruction including the multimedia data in the shared memory Offset address; transmitting the codec instruction to the second operating system based on cross-system communication; the step 102 is, in the second operating system, by the shared memory according to the offset address in the codec instruction Obtaining the multimedia data; calling, according to the codec instruction, a driver of the codec to encode and decode the multimedia data, where the shared memory is used by the first operating system and the second operating system Readable and writable.
  • FIG. 3 is a schematic diagram of a virtualized system architecture for applying the cross-system multimedia data encoding and decoding method in the first embodiment of the present application, wherein the virtualized system architecture includes at least one guest operating system, and the first operation
  • the system is a guest operating system
  • the second operating system is a host operating system.
  • a multimedia application such as a video player, is run in the guest operating system.
  • the multimedia application needs to encode and decode certain multimedia data
  • the multimedia data encoding and decoding request is sent to the multimedia framework, for example, When the video player plays the HD video, the video data decoding request is sent to the multimedia framework.
  • the hardware codec driver front end is run in the guest operating system kernel layer, when the hardware codec driver front end receives the multimedia framework call hardware
  • the decoder component After performing the instruction of performing hardware codec processing on the multimedia data, the decoder component writes the multimedia data that needs to be subjected to hardware codec processing into the shared memory, and includes the offset address of the multimedia data in the shared memory.
  • the instructions are passed to the hardware codec driver backend running in the host operating system kernel layer by cross-system communication.
  • the hardware codec driver backend running in the kernel layer of the host operating system receives the instruction to perform hardware codec processing on the multimedia data sent by the front end of the hardware codec driver in the guest operating system.
  • the hardware codec driver may be a V4L2Driver or the like.
  • the method may further include the step 103, feeding back the processed multimedia data to the guest operating system based on the shared memory; and in the guest operating system, the processed multimedia data. Feedback to the multimedia framework.
  • the hardware codec driver backend in the host operating system can transfer the coded and processed data to the client operation through the shared memory.
  • the hardware codec driver front end in the guest operating system can feed back the codec processed data to the multimedia framework, so that the multimedia frame feeds back the codec processed data to initiate the original decoding request multimedia application. program.
  • the multimedia framework in the guest operating system determines that the codec request is a hardware codec request, and needs to invoke the host operation.
  • the driver of the hardware codec in the system drives the hardware codec to perform corresponding hardware codec processing. It should be understood that when the multimedia framework in the guest operating system determines that the codec request is a software codec request, The corresponding software codec processing can be performed by the host operating system through the shared memory.
  • the step 101 is to acquire, in the first operating system OpenMAX integration layer, a codec request sent by the adaptation layer to perform codec processing on the multimedia data, where the codec request includes a codec that needs to be coded.
  • Processing the multimedia data transmitting the multimedia data to the shared memory; generating a codec instruction for encoding and decoding the multimedia data according to the codec request, the codec instruction including the multimedia data in the sharing An offset address of the memory; the codec instruction is sent to the second operating system based on the cross-system communication; the step 102 is, in the second operating system OpenMAX integration layer, according to the offset address in the codec instruction Obtaining the multimedia data by the shared memory; encoding and decoding the multimedia data according to the component of the codec loading codec, the shared memory pairing the first operating system and the second operation The system is both readable and writable.
  • FIG. 4 is a schematic diagram of another virtualization system architecture used in the cross-system multimedia data encoding and decoding method in the first embodiment of the present application.
  • the technical solution provided in this embodiment is applicable to an operating system using the OpenMAX multimedia framework.
  • the virtual operating system architecture includes at least one guest operating system, the first operating system is a guest operating system, and the second operating system is a host operating system.
  • a multimedia application such as a video player, is run in the guest operating system.
  • the multimedia application needs to encode and decode certain multimedia data
  • the multimedia data encoding and decoding request is sent to the multimedia framework, for example, When the video player plays the HD video, the video data decoding request is sent to the multimedia framework.
  • the adaptation layer of the guest operating system may be based on the type and format of the multimedia data or The resolution etc. selects the appropriate software or hardware codec for it.
  • the software codec can select the most suitable codec according to the preset rules when adapting the codec, for example, selecting a software codec for multimedia files with low resolution requirements, and selecting multimedia files with high resolution requirements.
  • the codec instruction After receiving the codec request sent by the adaptation layer in the OpenMAX integration layer of the guest operating system, generating a codec instruction corresponding to the codec request, writing multimedia data into the shared memory, and storing the multimedia data in the shared memory
  • the offset address is included in the codec instruction, and the codec instruction is delivered to the host operating system by cross-system communication.
  • only the multimedia data adapted to the hardware codec may be transferred to the host operating system based on the shared memory, and the multimedia data adapted to the software codec is still used in the guest operating system.
  • the software codec encodes and decodes the multimedia file; and all multimedia data of the codec request may also be transmitted to the host operating system based on the shared memory.
  • step 102 after the host operating system acquires the codec instruction sent by the guest operating system, the multimedia data is obtained by the shared memory according to the offset address included in the codec instruction, in the OpenMAX integration layer of the host operating system. And loading, by the component of the codec according to the codec instruction, encoding and decoding the multimedia data.
  • the OpenMAX backend in the host operating system After receiving the codec instruction sent by the OpenMAX front end, the OpenMAX backend in the host operating system acquires multimedia data from the shared memory according to the offset address included in the instruction, and the codec instruction is integrated in the host operating system OpenMAX. The corresponding codec is loaded in the layer to encode and decode the multimedia data.
  • the method may further include step 103, after the processing The multimedia data is fed back to the guest operating system based on the shared memory; in the guest operating system, the processed multimedia data is fed back to the adaptation layer.
  • the step 101 is: acquiring, in the first operating system, a codec request for the multimedia data encoding and decoding process by the multimedia application, where the codec request includes multimedia data that needs to be subjected to codec processing; And the multimedia data is sent to the shared memory; and the codec instruction for encoding and decoding the multimedia data is generated according to the codec request, where the codec instruction includes an offset address of the multimedia data in the shared memory; Transmitting the codec instruction to the second operating system based on cross-system communication; in step 102, in the second operating system, obtaining the multimedia by the shared memory according to an offset address in the codec instruction Transmitting the codec instruction and the multimedia data to an OpenMAX integration layer in a second operating system, so that an OpenMAX integration layer in the second operating system performs the multimedia data according to the codec instruction Codec processing.
  • FIG. 5 is a schematic diagram of another virtualization system architecture applied to the cross-system multimedia data encoding and decoding method according to the first embodiment of the present application.
  • the technical solution provided by the implementation manner is applicable to the multimedia multimedia framework standard. This can include Stagefright+OpenMAX or Opencore+OpenMAX.
  • the virtual operating system architecture includes at least one guest operating system, the first operating system is a guest operating system, and the second operating system is a host operating system.
  • the multimedia application needs to encode and decode some multimedia data
  • the multimedia data encoding and decoding request is sent to the multimedia framework, for example, when the video player plays the high-definition video, the video data is sent to the multimedia frame. Decode the request.
  • the multimedia application running in the guest operating system sends a multimedia data codec request to the multimedia framework when the multimedia data needs to be coded and processed, and the codec request includes codec decoding.
  • processing of multimedia data In the guest operating system, the multimedia data is processed according to the codec request without running a complete multimedia framework, and only the codec instruction needs to be generated according to the codec request, and the multimedia data is written into the shared memory, and The offset address of the multimedia data in the shared memory is included in the codec instruction, and the codec instruction is delivered to the host operating system by means of cross-system communication.
  • step 102 the complete OpenMAX integration layer is run in the host operating system, and after receiving the codec instruction of the guest operating system based on the shared memory transfer, the shared memory is obtained according to the offset address included in the codec instruction.
  • the multimedia data, the codec instruction is sent to the OpenMAX integration layer in the host operating system along with the multimedia data to be encoded and decoded, and the multimedia data is encoded and decoded by the OpenMAX integration layer according to the codec instruction. It may include loading various software codec components for software codec processing; and may also include loading various hardware codec components and driving corresponding hardware codecs for hardware codec processing.
  • step 101 acquiring, in the OMX adaptation layer of the client operating system Stagefright framework, a codec request for the multimedia data encoding and decoding process by the multimedia application, where the codec request includes And encoding and decoding the multimedia data; generating, according to the codec request, a codec instruction for performing codec processing on the multimedia data, where the codec instruction includes an offset address of the multimedia data in the shared memory; The codec instruction is sent to the host operating system based on cross-system communication; in the step 102, in the host operating system OMX adaptation layer, the multimedia data is acquired by the shared memory according to the offset address in the codec instruction. Transmitting the codec instruction and the multimedia data to an OpenMAX integration layer in a host operating system to cause an OpenMAX integration layer in the host operating system to be The codec instruction performs codec processing on the multimedia data.
  • the Stagefright in the host operating system and the guest operating system respectively run the OMX adaptation layer, and the OMXClient is respectively referenced in the adaptation layer.
  • the OMX adaptation layer of the host operating system AwesomePlayer can call the OMX Client::connect function, obtain the MediaPlayerService through the binder mechanism, and then create an OMX instance through the MediaPlayerService, so that the OMXClient in the host operating system is used as the entrance of the OMX.
  • the binder mechanism obtains the services provided by OMX.
  • a new class OMXClient front end is created in the OMX adaptation layer of the Stagefright framework in the guest operating system, and the OMXClient front end can be to the class mediaplayer, class mediacodec, or other classes in the multimedia framework of the android system.
  • the OMXClient front end in the guest operating system acquires a codec request for the multimedia data encoding and decoding process by the multimedia application, generating a codec instruction according to the codec request, and writing the multimedia data Sharing the memory, and including the offset address of the multimedia data in the shared memory in the codec instruction, and transmitting the codec instruction to the OMXClient in the host operating system OMX adaptation layer by means of cross-system communication End
  • the OMXClient backend can obtain the multimedia data from the shared memory according to the offset address included in the codec instruction, and send the codec instruction together with the multimedia data to be coded and processed to the MediaPlayerService through the Binder mechanism.
  • the OMXClient backend is used as an entry of the OMX adaptation layer OMX of the host operating system, so that the codec instructions and multimedia data sent to the OMXClient front end in the guest operating system can be sent to the host operation through the OMXClient backend.
  • the complete OpenMAX integration layer running in the system completes the codec processing of hardware or software.
  • the Stagefright framework For the Stagefright framework, all codecs supported by the guest operating system, including various hardware codecs and software codecs, can be stored in a pre-configured configuration file. After obtaining the codec request sent by the multimedia application in the OMX adaptation layer OMXClient front end of the guest operating system, the Stagefright framework can determine the codec applicable to the multimedia data according to the multimedia data that needs to be codec processed, for example, according to multimedia. The type, format, or resolution of the data is selected as an appropriate software or hardware codec, and a codec instruction corresponding to the codec is generated.
  • the method may further include the step 103, feeding back the processed multimedia data to the guest operating system based on the shared memory; and in the guest operating system, the processed multimedia data. Feedback the multimedia application.
  • the OMXClient backend in the host operating system OMX adaptation layer can transfer the coded and processed data to the client based on the shared memory.
  • the OMXClient front-end in the operating system multimedia framework OMX adaptation layer, the OMXClient front-end in the OMX adaptation layer of the guest operating system, after receiving the codec-processed data, can feed it back to the multimedia requesting the original encoding and decoding request. Use the program.
  • a shared memory that is accessible to the host operating system and the guest operating system is created for the multimedia, and the file node of the shared memory is created in the host operating system, and the shared memory of the block is mapped to A guest operating system, such as a memory space mapped to a guest operating system PCI (Peripheral Component Interconnect) device.
  • the multimedia front end (such as the codec driver front end, the OpenMAX front end, or the OMXClient front end) in the guest operating system is obtained by the kernel layer to obtain configuration information, and then obtains the shared memory space allocated by Qemu, that is, the shared memory is obtained in the client operation.
  • the first address in the system is obtained by the kernel layer to obtain configuration information, and then obtains the shared memory space allocated by Qemu, that is, the shared memory is obtained in the client operation.
  • the multimedia backend (such as the codec driver backend, the OpenMAX backend, or the OMXClient backend) in the host operating system is started, the connection request of the corresponding front end is monitored, and when the current end is connected with the back end, the multimedia back end is based on The file node mapping of the shared memory created by the foregoing Qemu obtains a shared memory space, that is, the first address of the shared memory in the host operating system is obtained.
  • the front end and the back end after establishing the connection can realize the cross-system transmission of the multimedia data or the codec instruction through the same block space in the shared memory through the first address of the shared memory in the operating system and the same offset address.
  • a cross-system multimedia data encoding and decoding method is provided.
  • the multimedia data may be sent to the second operating system through the shared memory.
  • the codec processing of the multimedia data is completed in the second operating system.
  • the multimedia data is transmitted in the process of encoding and decoding the cross-system multimedia data through the shared memory, thereby reducing the number of data copies, and saving the virtualization system.
  • the computing resources and storage resources of the architecture improve the performance of the virtualized system, and on the other hand, shorten the processing time of the cross-system multimedia data encoding and decoding.
  • the application can also transfer codec instructions between the first operating system and the second operating system based on the shared memory mode, further shortening the time of the cross-system multimedia data encoding and decoding process; in the physical storage area of the buffer originally allocated by the first operating system When it is non-shared memory, the data written to the non-shared memory can be copied to the shared memory for the second operating system to read.
  • the proposal also discloses the kernel layer of the first operating system and the second operating system, and OpenMAX integration. Layer or multimedia
  • the adaptation layer of the framework can implement multimedia data encoding and decoding requests across systems based on shared memory, which can be adjusted according to user requirements and is more flexible.
  • Embodiment 2 is a diagrammatic representation of Embodiment 1:
  • the cross-system multimedia data encoding and decoding apparatus 200 includes:
  • the front end module 201 is configured to acquire, in the first operating system, a codec request for the codec processing of the multimedia data, where the codec request includes multimedia data that needs to be subjected to codec processing; and send the multimedia data to the shared memory; Generating, according to the codec request, a codec instruction for performing codec processing on the multimedia data, where the codec instruction includes an offset address of the multimedia data in the shared memory; and the codec instruction is based on a cross system Communication is sent to the second operating system;
  • the backend module 202 is configured to obtain, by the shared memory, the multimedia data according to an offset address in the codec instruction in the second operating system, and perform the multimedia data according to the codec instruction. Codec processing, the shared memory being in a readable and writable state for both the first operating system and the second operating system.
  • the transmitting the codec instruction to the second operating system based on cross-system communication comprises: transmitting the codec instruction to the second operating system based on a shared memory manner.
  • the transmitting the multimedia data to the shared memory comprises: transmitting the multimedia data to the non-shared memory; and copying the multimedia data in the non-shared memory to the shared memory.
  • acquiring a codec request for a multimedia data codec process, where the codec request includes multimedia data that needs to be subjected to codec processing including:
  • the encoding and decoding processing the multimedia data according to the codec instruction includes:
  • the backend module 202 is specifically configured to: obtain, in the second operating system OpenMAX integration layer, the multimedia data by using the shared memory according to an offset address in the codec instruction; according to the codec instruction
  • the component loading the codec encodes and decodes the multimedia data, and the shared memory is in a readable and writable state for both the first operating system and the second operating system.
  • the codec request includes multimedia data that needs to be subjected to codec processing
  • the encoding and decoding processing the multimedia data according to the codec instruction includes:
  • the backend module 202 is further configured to perform the codec according to the After the encoding and decoding process is performed on the multimedia data, the codec processing result of the multimedia data is fed back to the shared memory;
  • the front end module 201 is further configured to acquire the codec processing result by the shared memory in the first operating system.
  • Embodiment 3 is a diagrammatic representation of Embodiment 3
  • the electronic device 300 includes: a memory 301, one or more processors 302; 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 include instructions for performing the various steps of any of the above methods.
  • the electronic device may be a mobile phone, a tablet computer, a robot, or other smart device.
  • Embodiment 4 is a diagrammatic representation of Embodiment 4:
  • an embodiment of the present application further provides a computer program product for use in combination with an electronic device, the computer program product comprising a computer program embedded in a computer readable storage medium, the computer program comprising An instruction to cause the electronic device to perform each of the steps of any of the above methods.
  • 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.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Provided by the present application are a cross-system multimedia data coding and decoding method, an apparatus, an electronic device, and a computer program product, the method comprising: in a first operating system, obtaining a coding and decoding request for multimedia data coding and decoding processing, the coding and decoding request comprising multimedia data requiring coding and decoding processing; sending the multimedia data to a shared memory; generating a coding and decoding instruction for coding and decoding processing of the multimedia data according to the coding and decoding request, the coding and decoding instruction comprising an offset address of the multimedia data in the shared memory; sending the coding and decoding instruction to a second operating system on the basis of cross-system communication; in the second operating system, obtaining the multimedia data from the shared memory according to the offset address in the coding and decoding instruction; and carrying out coding and decoding processing for the multimedia data according to the coding and decoding instruction, the shared memory being in a readable and writable state for both the first operating system and the second operating system. The present application enhances the performance of a virtual system and shortens the time for coding and decoding cross-system multimedia data.

Description

跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品Cross-system multimedia data encoding and decoding method, device, electronic device and computer program product 技术领域Technical field
本申请涉及虚拟化技术领域,特别涉及跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品。The present application relates to the field of virtualization technologies, and in particular, to a cross-system multimedia data encoding and decoding method, apparatus, electronic device, and computer program product.
背景技术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.
图1示出了基于Qemu/KVM(Kernel-based Virtual Machine,基于内核的虚拟机)技术实现的虚拟化系统架构示意图,处于底层的是系统的硬件层,主要包括处理器、内存和输入输出设备等。在硬件层之上为虚拟化层,运行的是虚拟机监控器(缩写为VMM或Hypervisor)。虚拟机监控器的主要职能是:管理真实的物理硬件平台,并为每个客户虚拟机(即客户机)提供对应的虚拟硬件平台。虚拟化系统架构中可以运行多个操作系统,例如Linux操作系统或者Android操作系统等,其中通常包括一个主机操作系统(Host OS),以及一个或者多个客户机操作系统(Guest OS),主机操作系统运行于宿主机(Host),在主机操作系统上运行一个或者多个客户机,各客户机作为主机操作系统的应用程序运行,其可以为运行于该客户机上的客户机操作系统模拟硬件设备以供客户机操作系统使用,在各客户机运行的客户机操作系统中可运行各种应用程序。在虚拟化系统架构中,多个操作系统之间可共享硬件层 提供的CPU,内存和输入输出设备。Figure 1 shows a schematic diagram of a virtualized system architecture based on Qemu/KVM (Kernel-based Virtual Machine) technology. The bottom layer is the hardware layer of the system, which mainly includes the processor, memory, and input and output devices. Wait. Above the hardware layer is the virtualization layer, which runs a virtual machine monitor (abbreviated as VMM or Hypervisor). 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 guest virtual machine (ie, client). The virtualized system architecture can run multiple operating systems, such as the Linux operating system or the Android operating system, which usually includes a host operating system (Host OS) and one or more guest operating systems (Guest OS), host operations. The system runs on a host (Host) running one or more clients on the host operating system, each client running as an application of the host operating system, which can emulate a hardware device for the guest operating system running on the client For use by the guest operating system, various applications can be run in the guest operating system running on each client. In a virtualized system architecture, hardware layers can be shared between multiple operating systems Provides CPU, memory, and input and output devices.
通过虚拟化技术带来的隔离性可实现单一终端上多个操作系统的隔离,避免各操作系统上的进程对其他操作系统产生不利影响,典型的应用场景为通过虚拟化技术在手机等移动设备上实现企业系统和个人系统的分离,防范个人系统上的进程给企业带来的潜在危害,满足一些具有安全要求的企业对“自带设备”(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.
随着多媒体应用在生活中运用的深入发展,终端的各个虚拟机都需要有多媒体编解码器,现有技术中客户机操作系统通常通过CPU来实现软件编解码,此种编解码方式会占用当前客户机CPU的大量资源,功耗大;并且客户机操作系统只能通过CPU实现软件编解码,导致很多格式的视频文件无法支持、播放不流畅。当某一客户机操作系统需要其他客户机操作系统或者主机操作系统协助完成多媒体数据编解码处理时需要分别为各客户机操作系统或者主机操作系统中的多媒体框架的缓冲区在内存中分配对应的物理存储区,并且在某一客户机操作系统需要其他系统协助进行跨系统的多媒体数据编解码处理时,需要将该客户机操作系统多媒体框架的缓冲区对应的物理存储区中的内容拷贝到协助进行编解码处理的操作系统多媒体框架的缓冲区对应的物理存储区中,编解码处理完成后需要将处理结果拷贝回发起编解码处理请求的客户机操作系统多媒体框架的缓冲区对应的物理存储区。With the in-depth development of multimedia applications in life, each virtual machine of the terminal needs a multimedia codec. In the prior art, the client operating system usually implements software codec through the CPU, and this codec mode will occupy the current The client CPU has a large amount of resources and consumes a large amount of power; and the client operating system can only implement software codec through the CPU, which results in video files of many formats cannot be supported and played smoothly. When a guest operating system requires other client operating systems or the host operating system to assist in completing the multimedia data encoding and decoding process, it is necessary to separately allocate corresponding buffers for the multimedia framework buffers in each guest operating system or host operating system. Physical storage area, and when a guest operating system needs other systems to assist in cross-system multimedia data encoding and decoding processing, it is necessary to copy the contents of the physical storage area corresponding to the buffer of the guest operating system multimedia framework to the assistance. In the physical storage area corresponding to the buffer of the operating system multimedia frame of the codec processing, after the codec processing is completed, the processing result needs to be copied back to the physical storage area corresponding to the buffer of the guest operating system multimedia frame that initiates the codec processing request. .
现有技术的不足在于:The shortcomings of the prior art are:
跨系统进行多媒体数据的编解码处理时涉及大量数据在不同的物理存储区间的拷贝,一方面占用大量虚拟化系统架构的计算资源和存储资源,导致虚拟化系统性能降低,另一方面延长了跨系统多媒体数据编解码处理时间。When encoding and decoding multimedia data across systems, it involves copying a large amount of data in different physical storage intervals. On the one hand, it occupies a large amount of computing resources and storage resources of the virtualized system architecture, resulting in reduced performance of the virtualized system, and on the other hand, extending the cross. System multimedia data encoding and decoding processing time.
发明内容Summary of the invention
本申请实施例提出了跨系统多媒体数据编解码方法、装置、电子设备和计算机程序产品,主要用以提升虚拟化系统性能,缩短多媒体数据编解码处理时间。 The embodiment of the present application proposes a cross-system multimedia data encoding and decoding method, device, electronic device and computer program product, which are mainly used to improve the performance of the virtualization system and shorten the encoding and decoding processing time of the multimedia data.
在一个方面,本申请实施例提供了一种跨系统多媒体数据编解码方法,其特征在于,所述方法包括:In one aspect, an embodiment of the present application provides a cross-system multimedia data encoding and decoding method, where the method includes:
在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;Acquiring, in the first operating system, a codec request for encoding and decoding a multimedia data, the codec request including multimedia data that needs to be subjected to codec processing; sending the multimedia data to a shared memory; according to the codec request Generating a codec instruction for performing codec processing on the multimedia data, the codec instruction including an offset address of the multimedia data in the shared memory; and transmitting the codec instruction to a second operation based on cross-system communication system;
在所述第二操作系统中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。In the second operating system, the multimedia data is obtained by the shared memory according to an offset address in the codec instruction; the multimedia data is encoded and decoded according to the codec instruction, and the sharing The memory is in a readable and writable state for both the first operating system and the second operating system.
在另一个方面,本申请实施例提供了一种跨系统多媒体数据编解码装置,其特征在于,所述装置包括:前端模块,用于在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;In another aspect, an embodiment of the present application provides a cross-system multimedia data encoding and decoding apparatus, where the apparatus includes: a front end module, configured to acquire, in a first operating system, a codec processing process on a multimedia data. a codec request, the codec request includes multimedia data that needs to be subjected to codec processing; the multimedia data is sent to a shared memory; and a codec instruction for encoding and decoding the multimedia data is generated according to the codec request, The codec instruction includes an offset address of the multimedia data in the shared memory; and the codec instruction is sent to a second operating system based on cross-system communication;
后端模块,用于在所述第二操作系统中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。a backend module, configured to obtain, by the shared memory, the multimedia data according to an offset address in the codec instruction in the second operating system; and compiling the multimedia data according to the codec instruction Decoding processing, the shared memory being in a readable and writable state for both the first operating system and the second operating system.
在另一个方面,本申请实施例提供了一种电子设备,其特征在于,所述电子设备包括:存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行任一上述方法中各个步骤的指令。 In another aspect, an embodiment of the present application provides an electronic device, including: a memory, one or more processors; and one or more modules, the one or more modules being Stored in the memory and configured to be executed by the one or more processors, the one or more modules including instructions for performing the various steps of any of the above methods.
在另一个方面,本申请实施例提供了一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括内嵌于计算机可读的存储介质中的计算机程序,所述计算机程序包括用于使所述电子设备执行任一上述方法中的各个步骤的指令。In another aspect, embodiments of the present application provide 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 each of the above methods.
本申请实施例的有益效果如下:The beneficial effects of the embodiments of the present application are as follows:
本申请中,在第一操作系统中,当需要对多媒体数据进行编解码处理时,可将多媒体数据通过共享内存发送至第二操作系统,以在第二操作系统中完成所述多媒体数据的编解码处理,本申请中,通过共享内存实现跨系统多媒体数据编解码过程中多媒体数据的传递,减少了数据拷贝次数,一方面节约了虚拟化系统架构的计算资源和存储资源,提升虚拟化系统性能,另一方面缩短了跨系统多媒体数据编解码处理时间。In the application, in the first operating system, when the multimedia data needs to be encoded and decoded, the multimedia data may be sent to the second operating system through the shared memory to complete the editing of the multimedia data in the second operating system. Decoding processing, in the present application, the multimedia data is transmitted in the process of encoding and decoding the cross-system multimedia data through the shared memory, thereby reducing the number of data copies, thereby saving the computing resources and storage resources of the virtualized system architecture, and improving the performance of the virtualized system. On the other hand, the cross-system multimedia data encoding and decoding processing time is shortened.
附图说明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 diagram showing the architecture of a virtualization system in the prior art;
图2示出了本申请实施例一中跨系统多媒体数据编解码方法的流程示意图;FIG. 2 is a schematic flowchart diagram of a method for encoding and decoding multimedia data in a cross-system according to Embodiment 1 of the present application;
图3示出了本申请实施例一中跨系统多媒体数据编解码方法应用的一种虚拟化系统架构示意图;FIG. 3 is a schematic diagram showing a virtualized system architecture of a cross-system multimedia data encoding and decoding method according to Embodiment 1 of the present application;
图4示出了本申请实施例一中跨系统多媒体数据编解码方法应用的另一种虚拟化系统架构示意图;4 is a schematic structural diagram of another virtualization system applied to a cross-system multimedia data encoding and decoding method according to Embodiment 1 of the present application;
图5示出了本申请实施例一中跨系统多媒体数据编解码方法应用的另一种虚拟化系统架构示意图;FIG. 5 is a schematic structural diagram of another virtualization system applied to a cross-system multimedia data encoding and decoding method according to Embodiment 1 of the present application;
图6示出了本申请实施例二中跨系统多媒体数据编解码装置的结构示意图;6 is a schematic structural diagram of a cross-system multimedia data encoding and decoding apparatus according to Embodiment 2 of the present application;
图7示出了本申请实施例三中电子设备的结构示意图。 FIG. 7 is a schematic structural diagram of an electronic device in Embodiment 3 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.
发明人在发明过程中注意到:跨系统进行多媒体数据的编解码处理时涉及大量数据在不同的物理存储区间的拷贝,一方面占用大量虚拟化系统架构的计算资源和存储资源,导致虚拟化系统性能降低,另一方面延长了跨系统多媒体数据编解码处理时间。The inventor noticed in the process of invention that the encoding and decoding of multimedia data across the system involves the copying of a large amount of data in different physical storage intervals, and on the other hand occupies a large amount of computing resources and storage resources of the virtualized system architecture, resulting in a virtualized system. The performance is reduced, and on the other hand, the cross-system multimedia data encoding and decoding processing time is extended.
针对上述不足,本申请提供了一种跨系统多媒体数据编解码方法,在第一操作系统中,当需要对多媒体数据进行编解码处理时,可将多媒体数据通过共享内存发送至第二操作系统,以在第二操作系统中完成所述多媒体数据的编解码处理,本申请中,通过共享内存实现跨系统多媒体数据编解码过程中多媒体数据的传递,减少了数据拷贝次数,一方面节约了虚拟化系统架构的计算资源和存储资源,提升虚拟化系统性能,另一方面缩短了跨系统多媒体数据编解码处理时间。For the above-mentioned deficiencies, the present application provides a cross-system multimedia data encoding and decoding method. In the first operating system, when the multimedia data needs to be encoded and decoded, the multimedia data can be sent to the second operating system through the shared memory. In the second operating system, the codec processing of the multimedia data is completed. In the present application, the multimedia data is transmitted during the cross-system multimedia data encoding and decoding process by using the shared memory, thereby reducing the number of data copies, and saving virtualization on the one hand. The computing resources and storage resources of the system architecture improve the performance of the virtualized system, and on the other hand, shorten the processing time of codec processing of multimedia data across systems.
为了便于本申请的实施,下面以实例进行说明。In order to facilitate the implementation of the present application, the following description will be made by way of example.
实施例一:Embodiment 1:
在虚拟化系统架构启动时,Qemu可在内存中划分一块特定的地址空间,作为所述虚拟化架构中各操作系统均可读写的共享内存,例如可通过系统调用的方式创建所述共享内存。进一步的还可以对所述共享的内存空间进一步划分以支持多个进程或线程的访问。所述共享内存的大小可以由开发人员设置,并适配于所述虚拟化系统架构中可能涉及的跨系统传输。When the virtualization system architecture is started, Qemu can divide a specific address space in the memory as shared memory that can be read and written by each operating system in the virtualization architecture, for example, the shared memory can be created by a system call. . Further, the shared memory space may be further divided to support access by multiple processes or threads. The size of the shared memory can be set by the developer and adapted to cross-system transfers that may be involved in the virtualized system architecture.
客户机操作系统启动时,其多媒体框架能够从客户机操作系统内核层获取所述相关配置信息进行初始化,进而获得所述共享内存的映射至客户机操作系统的地址空间,此外还可与Qemu建立同步控制通道。 When the guest operating system is started, its multimedia framework can obtain the relevant configuration information from the guest operating system kernel layer for initialization, thereby obtaining the mapping of the shared memory to the address space of the guest operating system, and can also establish with Qemu. Synchronize control channels.
在主机操作系统中,Qemu可触发主机操作系统中的多媒体框架进行类似客户机操作系统的初始化,以获得所述共享内存映射至主机操作系统的地址空间,进而与跨系统共享内存建立连接。In the host operating system, Qemu may trigger a multimedia framework in the host operating system to perform initialization similar to the guest operating system to obtain the shared memory mapped to the address space of the host operating system, thereby establishing a connection with the shared memory across the system.
图2示出了本申请实施例一中跨系统多媒体数据编解码方法流程示意图,如图2所示,所述跨系统多媒体数据编解码方法包括:FIG. 2 is a schematic flowchart of a method for encoding and decoding multimedia data in a cross-system according to Embodiment 1 of the present application. As shown in FIG. 2, the method for encoding and decoding multimedia data in a cross-system includes:
步骤101,在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;Step 101: In the first operating system, acquiring a codec request for encoding and decoding a multimedia data, where the codec request includes multimedia data that needs to be subjected to codec processing; and sending the multimedia data to a shared memory; The codec request generates a codec instruction for performing codec processing on the multimedia data, the codec instruction including an offset address of the multimedia data in the shared memory; and sending the codec instruction based on cross-system communication to Second operating system;
步骤102,在所述第二操作系统中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态;Step 102: In the second operating system, obtaining, by the shared memory, the multimedia data according to an offset address in the codec instruction, and performing codec processing on the multimedia data according to the codec instruction, The shared memory is in a readable and writable state for both the first operating system and the second operating system;
步骤103中,在第二操作系统中,将所述多媒体数据的编解码处理结果反馈至所述共享内存;在第一操作系统中,由所述共享内存获取所述编解码处理结果。In step 103, in the second operating system, the codec processing result of the multimedia data is fed back to the shared memory; in the first operating system, the codec processing result is obtained by the shared memory.
在步骤101中,第一操作系统中的应用程序发起多媒体数据编解码处理的请求后,将所述请求中包括的需要进行编解码处理的多媒体数据存入第一操作系统和第二操作系统均能够读写的共享内存中。所述多媒体数据可以是实际需要进行编解码处理的多媒体数据,例如视频文件或者音频文件中实际需要进行编解码处理的数据等,也可以是实际需要进行编解码处理的多媒体数据在内存中的位置以及其它信息,例如数据格式、时间标志、数据大小等。In step 101, after the application in the first operating system initiates the request for the multimedia data encoding and decoding process, the multimedia data that needs to be encoded and decoded included in the request is stored in the first operating system and the second operating system. Can be read and written in shared memory. The multimedia data may be multimedia data that is actually required to be subjected to codec processing, such as data that is actually required to be coded and processed in a video file or an audio file, or may be a location of a multimedia data that is actually required to be coded and processed in a memory. And other information, such as data format, time stamp, data size, and so on.
在虚拟化系统架构中,为第一操作系统分配了用于多媒体数据编解码处理的缓冲区(Buffer),当所述缓冲区对应的物理内存为第一操作系统和第二操作系统均能够读写的共享内存时,可直接基于地址映射将第一操作系统中 的多媒体数据写入为其分配的缓冲区。第一操作系统的kernel层可以把共享内存映射至第一操作系统的用户空间;第一操作系统可以对其写入数据的共享内存执行偏移记录,即记录当前写入多媒体数据的内存块的首地址相对于整个共享内存区的首地址的偏移地址。In the virtualized system architecture, a buffer (Buffer) for encoding and decoding multimedia data is allocated to the first operating system, and the physical memory corresponding to the buffer can be read by the first operating system and the second operating system. When writing shared memory, it can be directly based on address mapping in the first operating system The multimedia data is written to its assigned buffer. The kernel layer of the first operating system can map the shared memory to the user space of the first operating system; the first operating system can perform offset recording on the shared memory for which the data is written, that is, record the memory block currently writing the multimedia data. The offset address of the first address relative to the first address of the entire shared memory area.
此外根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令指示了需要第二操作系统对传递的多媒体数据进行怎样的编解码处理,可以包括编解码命令函数和相关参数等。并且,将所述多媒体数据在所述共享内存的偏移地址包含在所述编解码指令中一同发送至第二操作系统。所述编解码指令可基于QEMU PIPE、Socket或者共享内存等跨系统通信方式发送至第二操作系统。And generating, according to the codec request, a codec instruction for performing codec processing on the multimedia data, where the codec instruction indicates, for the second operating system, how to perform codec processing on the delivered multimedia data, and may include codec Command functions and related parameters, etc. And transmitting, by the multimedia data, the offset address of the shared memory in the codec instruction to the second operating system. The codec instruction may be sent to the second operating system based on a cross-system communication manner such as QEMU PIPE, Socket, or shared memory.
在一些实施方式中,所述编解码指令基于共享内存方式发送至第二操作系统。In some embodiments, the codec instructions are sent to the second operating system based on a shared memory.
因基于共享内存的跨系统通信方式相较QEMU PIPE、Socket等方式更快速,因此基于共享内存方式在第一操作系统和第二操作系统间传递编解码指令更快,进一步缩短了跨系统多媒体数据编解码处理的时间。Because the shared memory-based cross-system communication method is faster than QEMU PIPE, Socket, etc., the code-based instruction is transmitted faster between the first operating system and the second operating system based on the shared memory mode, further shortening the cross-system multimedia data. The time of codec processing.
在一些实施方式中,所述将所述多媒体数据发送至共享内存,包括:将所述多媒体数据发送至非共享内存;将所述非共享内存中的多媒体数据拷贝至共享内存。In some embodiments, the transmitting the multimedia data to the shared memory comprises: transmitting the multimedia data to the non-shared memory; and copying the multimedia data in the non-shared memory to the shared memory.
当为第一操作系统分配的所述缓冲区对应的物理内存仅可由第一操作系统直接读写,而不能被第二操作系统读写时,即所述缓冲区对应的物理内存为非共享内存时,将第一操作系统需要进行编解码处理的多媒体数据存入所述缓冲区对应的物理内存后,再将所述多媒体数据拷贝至第一操作系统和第二操作系统均能够读写的共享内存中。The physical memory corresponding to the buffer allocated by the first operating system can be directly read and written by the first operating system, but cannot be read or written by the second operating system, that is, the physical memory corresponding to the buffer is non-shared memory. And storing the multimedia data that needs to be coded and processed by the first operating system into the physical memory corresponding to the buffer, and then copying the multimedia data to the shared memory that can be read and written by the first operating system and the second operating system. In memory.
应当理解,在这些情况下,若所述编解码指令也通过共享内存方式进行跨系统传输,则也需要将所述编解码指令先写入第一操作系统的非共享内存中,再将所述非共享内存中的编解码指令拷贝至共享内存中,以供第二操作 系统获取。It should be understood that, in these cases, if the codec instruction is also transmitted across the system in a shared memory manner, the codec instruction needs to be first written into the non-shared memory of the first operating system, and then the Codec instructions in non-shared memory are copied to shared memory for second operation System acquisition.
在步骤102中,第二操作系统的kernel层可用把共享内存映射至第二操作系统的用户空间。当第二操作系统在获取所述编解码指令之后,可根据所述编解码指令中的偏移地址,到共享内存的相应位置读取多媒体数据,进而根据所述编解码指令对所述多媒体数据进行编解码处理,得到处理结果。具体的,在第二操作系统中,可以根据所述编解码指令调用编解码器的驱动程序以驱动相应的编解码器完成编解码处理;可以根据所述编解码指令加载编解码器组件完成编解码处理;还可以由第二操作系统中的OpenMAX集成层(OpenMAX IL,OpenMAX Integration Layer)根据所述编解码指令对所述多媒体数据进行编解码处理。在上述各种不同情况中所述编解码指令的格式和包含的具体内容也可能会相应不同。In step 102, the kernel layer of the second operating system can map the shared memory to the user space of the second operating system. After acquiring the codec instruction, the second operating system may read the multimedia data according to the offset address in the codec instruction to a corresponding position of the shared memory, and then the multimedia data according to the codec instruction. The codec processing is performed to obtain the processing result. Specifically, in the second operating system, the codec driver may be invoked according to the codec instruction to drive the corresponding codec to complete the codec process; and the codec component may be loaded according to the codec instruction. Decoding processing; the multimedia data may be encoded and decoded according to the codec instruction by an OpenMAX integration layer (OpenMAX IL, OpenMAX Integration Layer) in the second operating system. The format and specific content of the codec instructions may also be different in various different situations as described above.
应当理解,当编解码指令是基于共享内存方式由第一操作系统传递至第二操作系统时,所述第一操作系统还需要向第二操作系统发送所述编解码指令在共享内存中的偏移地址,以使所述第二操作系统根据所述编解码指令的偏移地址由共享内存中获取编解码指令,再进一步获取多媒体数据。It should be understood that when the codec instruction is transferred from the first operating system to the second operating system based on the shared memory mode, the first operating system also needs to send the codec instruction in the shared memory to the second operating system. And shifting the address, so that the second operating system acquires the codec instruction from the shared memory according to the offset address of the codec instruction, and further acquires the multimedia data.
在步骤103中,在第二操作系统中,根据所述编解码指令进行多媒体数据的编解码处理后,得到处理结果,将所述处理结果同样通过共享内存传递至第一操作系统中。例如将所述编解码处理结果写入共享内存中,并记录所述处理结果在共享内存中的位置(首地址偏移地址),将所述偏移地址基于QEMU PIPE、Socket或者共享内存等跨系统通信方式发送至第一操作系统中,使第一操作系统可以通过所述处理结果的偏移地址到共享内存的相应位置读取数据。所述处理结果可以是经过编解码处理后的多媒体数据,例如解码后的视频文件或者压缩后的音频文件中的视频或者音频数据等,也可以是经过编解码处理后的多媒体数据在内存中的位置以及其它信息,例如数据格式、时间标志、数据大小等。In step 103, in the second operating system, after the codec processing of the multimedia data is performed according to the codec instruction, a processing result is obtained, and the processing result is also transmitted to the first operating system through the shared memory. For example, the codec processing result is written into the shared memory, and the position of the processing result in the shared memory (first address offset address) is recorded, and the offset address is based on QEMU PIPE, Socket or shared memory. The system communication mode is sent to the first operating system, so that the first operating system can read data through the offset address of the processing result to the corresponding location of the shared memory. The processing result may be multimedia data after being encoded and processed, such as video or audio data in a decoded video file or a compressed audio file, or may be encoded and processed multimedia data in a memory. Location and other information such as data format, time stamp, data size, etc.
上述第一操作系统为虚拟化系统架构中的客户机操作系统,所述第二操 作系统为虚拟化系统架构中的主机操作系统。The first operating system is a guest operating system in a virtualized system architecture, and the second operation The system is the host operating system in the virtualized system architecture.
在一些实施方式中,所述步骤101为,在第一操作系统中,获取多媒体框架调用编解码器进行多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述编解码请求发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;所述步骤102为,在第二操作系统中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令调用所述编解码器的驱动程序对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。In some embodiments, the step 101 is: in the first operating system, acquiring a codec request of the multimedia frame calling codec to perform multimedia data encoding and decoding processing, where the codec request includes multimedia that needs to be coded and processed. Transmitting the codec request to the shared memory; generating a codec instruction for encoding and decoding the multimedia data according to the codec request, the codec instruction including the multimedia data in the shared memory Offset address; transmitting the codec instruction to the second operating system based on cross-system communication; the step 102 is, in the second operating system, by the shared memory according to the offset address in the codec instruction Obtaining the multimedia data; calling, according to the codec instruction, a driver of the codec to encode and decode the multimedia data, where the shared memory is used by the first operating system and the second operating system Readable and writable.
图3示出了本申请实施例一中跨系统多媒体数据编解码方法应用的一种虚拟化系统架构示意图,其以所述虚拟化系统架构中至少包括一个客户机操作系统,所述第一操作系统为客户机操作系统,所述第二操作系统为主机操作系统为例。在该客户机操作系统中运行有多媒体应用程序,例如视频播放器等,当所述多媒体应用程序需要对某些多媒体数据进行编解码处理时,会向多媒体框架下发多媒体数据编解码请求,例如在视频播放器播放高清视频时会向多媒体框架下发视频数据解码请求。FIG. 3 is a schematic diagram of a virtualized system architecture for applying the cross-system multimedia data encoding and decoding method in the first embodiment of the present application, wherein the virtualized system architecture includes at least one guest operating system, and the first operation The system is a guest operating system, and the second operating system is a host operating system. A multimedia application, such as a video player, is run in the guest operating system. When the multimedia application needs to encode and decode certain multimedia data, the multimedia data encoding and decoding request is sent to the multimedia framework, for example, When the video player plays the HD video, the video data decoding request is sent to the multimedia framework.
在步骤101中,客户机操作系统中运行的多媒体应用程序在需要对某些多媒体数据进行编解码处理时,会向多媒体框架下发多媒体数据编解码请求,多媒体框架会根据多媒体数据的类型、格式或者分辨率等为其选择适当的编解码器进行相应处理。当多媒体框架判断所述多媒体数据需要由硬件编解码器进行相应处理时,调用客户机操作系统中的硬件编解码器生成对所述多媒体数据进行硬件编解码的指令。本实施例中客户机操作系统中的多媒体框架可以为OpenMAX或者其他现有的多媒体框架,当所述多媒体框架为OpenMAX时,其具有一个或者多个硬件编解码器组件Component,多媒体框 架通过调用各硬件编解码器组件生成对多媒体数据进行硬件编解码处理的指令。In step 101, the multimedia application running in the guest operating system sends a multimedia data encoding and decoding request to the multimedia framework when the multimedia data needs to be encoded and decoded. The multimedia frame is based on the type and format of the multimedia data. Or the resolution or the like is selected for the appropriate codec for corresponding processing. When the multimedia framework determines that the multimedia data needs to be processed by the hardware codec, the hardware codec in the guest operating system is called to generate an instruction to perform hardware codec on the multimedia data. In this embodiment, the multimedia framework in the guest operating system may be OpenMAX or other existing multimedia framework. When the multimedia framework is OpenMAX, it has one or more hardware codec components, and a multimedia frame. The shelf generates instructions for hardware codec processing of the multimedia data by invoking each hardware codec component.
在客户机操作系统中不存在真实的硬件编解码器,而是在客户机操作系统内核层中运行了硬件编解码器驱动程序前端,当硬件编解码器驱动程序前端接收到多媒体框架调用硬件编解码器组件以进行对所述多媒体数据进行硬件编解码处理的指令后,将需要进行硬件编解码处理的多媒体数据写入共享内存,并将所述多媒体数据在共享内存中的偏移地址包含在所述指令中,通过跨系统通信方式将所述指令传递至主机操作系统内核层中运行的硬件编解码器驱动程序后端。Instead of a real hardware codec in the guest operating system, the hardware codec driver front end is run in the guest operating system kernel layer, when the hardware codec driver front end receives the multimedia framework call hardware After performing the instruction of performing hardware codec processing on the multimedia data, the decoder component writes the multimedia data that needs to be subjected to hardware codec processing into the shared memory, and includes the offset address of the multimedia data in the shared memory. In the instructions, the instructions are passed to the hardware codec driver backend running in the host operating system kernel layer by cross-system communication.
在步骤102中,主机操作系统内核层中运行的硬件编解码器驱动程序后端,当接收到客户机操作系统中硬件编解码器驱动程序前端发送的对多媒体数据进行硬件编解码处理的指令后,根据所述指令中包含的偏移地址,由共享内存中获取多媒体数据,并在主机操作系统中运行硬件编解码器的驱动程序,以由真正的硬件编解码器完成对所述多媒体数据的硬件编解码处理。所述硬件编解码器驱动程序可以为V4L2Driver等。In step 102, the hardware codec driver backend running in the kernel layer of the host operating system receives the instruction to perform hardware codec processing on the multimedia data sent by the front end of the hardware codec driver in the guest operating system. Obtaining multimedia data from the shared memory according to the offset address included in the instruction, and running a driver of the hardware codec in the host operating system to complete the multimedia data by the real hardware codec Hardware codec processing. The hardware codec driver may be a V4L2Driver or the like.
在本实施方式中,在上述步骤102之后,还可以包括步骤103,将处理后的多媒体数据基于共享内存反馈所述客户机操作系统;在客户机操作系统中,将所述处理后的多媒体数据反馈所述多媒体框架。In this embodiment, after the foregoing step 102, the method may further include the step 103, feeding back the processed multimedia data to the guest operating system based on the shared memory; and in the guest operating system, the processed multimedia data. Feedback to the multimedia framework.
在主机操作系统的硬件编解码器对所述多媒体数据完成编解码处理之后,主机操作系统中的硬件编解码器驱动程序后端可以将进行编解码处理后的数据通过共享内存传递至客户机操作系统中的硬件编解码器驱动程序前端。客户机操作系统中的硬件编解码器驱动程序前端在接收到编解码处理后的数据后可将其反馈至多媒体框架,以便多媒体框架将编解码处理后的数据反馈发起原编解码请求的多媒体应用程序。After the hardware codec of the host operating system completes the encoding and decoding process on the multimedia data, the hardware codec driver backend in the host operating system can transfer the coded and processed data to the client operation through the shared memory. The hardware codec driver front end in the system. The hardware codec driver front end in the guest operating system can feed back the codec processed data to the multimedia framework, so that the multimedia frame feeds back the codec processed data to initiate the original decoding request multimedia application. program.
在本实施方式中,以所述编解码为硬件编解码为例,即客户机操作系统中的多媒体框架确定了所述编解码请求为硬件编解码请求,需要调用主机操 作系统中硬件编解码器的驱动程序以驱动硬件编解码器进行相应硬件编解码处理,应当理解,当客户机操作系统中的多媒体框架确定了所述编解码请求为软件编解码请求时,同样可以通过共享内存由主机操作系统进行相应的软件编解码处理。In this embodiment, taking the codec as a hardware codec as an example, that is, the multimedia framework in the guest operating system determines that the codec request is a hardware codec request, and needs to invoke the host operation. The driver of the hardware codec in the system drives the hardware codec to perform corresponding hardware codec processing. It should be understood that when the multimedia framework in the guest operating system determines that the codec request is a software codec request, The corresponding software codec processing can be performed by the host operating system through the shared memory.
在一些实施方式中,所述步骤101为,在第一操作系统OpenMAX集成层中,获取适配层发送的对多媒体数据进行编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;所述步骤102为,在第二操作系统OpenMAX集成层中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令加载编解码器的组件对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。In some implementations, the step 101 is to acquire, in the first operating system OpenMAX integration layer, a codec request sent by the adaptation layer to perform codec processing on the multimedia data, where the codec request includes a codec that needs to be coded. Processing the multimedia data; transmitting the multimedia data to the shared memory; generating a codec instruction for encoding and decoding the multimedia data according to the codec request, the codec instruction including the multimedia data in the sharing An offset address of the memory; the codec instruction is sent to the second operating system based on the cross-system communication; the step 102 is, in the second operating system OpenMAX integration layer, according to the offset address in the codec instruction Obtaining the multimedia data by the shared memory; encoding and decoding the multimedia data according to the component of the codec loading codec, the shared memory pairing the first operating system and the second operation The system is both readable and writable.
图4示出了本申请实施例一中跨系统多媒体数据编解码方法应用的另一种虚拟化系统架构示意图,本实施方式所提供的技术方案适用于采用OpenMAX多媒体框架的操作系统。其以所述虚拟化系统架构中至少包括一个客户机操作系统,所述第一操作系统为客户机操作系统,所述第二操作系统为主机操作系统为例。在该客户机操作系统中运行有多媒体应用程序,例如视频播放器等,当所述多媒体应用程序需要对某些多媒体数据进行编解码处理时,会向多媒体框架下发多媒体数据编解码请求,例如在视频播放器播放高清视频时会向多媒体框架下发视频数据解码请求。FIG. 4 is a schematic diagram of another virtualization system architecture used in the cross-system multimedia data encoding and decoding method in the first embodiment of the present application. The technical solution provided in this embodiment is applicable to an operating system using the OpenMAX multimedia framework. The virtual operating system architecture includes at least one guest operating system, the first operating system is a guest operating system, and the second operating system is a host operating system. A multimedia application, such as a video player, is run in the guest operating system. When the multimedia application needs to encode and decode certain multimedia data, the multimedia data encoding and decoding request is sent to the multimedia framework, for example, When the video player plays the HD video, the video data decoding request is sent to the multimedia framework.
在步骤101中,当客户机操作系统中的多媒体应用程序下发对多媒体数据进行编解码处理的编解码请求后,在所述客户机操作系统的适配层可以根据多媒体数据的类型、格式或者分辨率等为其选择适当的软件或者硬件编解码器。支持同一格式的编解码器可以为多个,其中可以包括硬件编解码器和 软件编解码器,在适配编解码器时可以根据预设规则选择最适合的编解码器,例如:为分辨率要求低的多媒体文件选择软件编解码器、为分辨率要求高的多媒体文件选择硬件编解码器等。客户机操作系统的OpenMAX集成层中接收适配层发送的编解码请求后,生成所述编解码请求对应的编解码指令,将多媒体数据写入共享内存,并将所述多媒体数据在共享内存中的偏移地址包含在所述编解码指令中,通过跨系统通信方式将所述编解码指令传递至主机操作系统中。在本实施方式中,可以仅将适配了硬件编解码器器的多媒体数据基于共享内存传递给主机操作系统,对适配了软件编解码器的多媒体数据仍然使用所述客户机操作系统中的软件编解码器对所述多媒体文件进行编解码;也可以将所有编解码请求的多媒体数据均基于共享内存传递给主机操作系统。In step 101, after the multimedia application in the guest operating system issues a codec request for encoding and decoding the multimedia data, the adaptation layer of the guest operating system may be based on the type and format of the multimedia data or The resolution etc. selects the appropriate software or hardware codec for it. There are multiple codecs supporting the same format, which can include hardware codecs and The software codec can select the most suitable codec according to the preset rules when adapting the codec, for example, selecting a software codec for multimedia files with low resolution requirements, and selecting multimedia files with high resolution requirements. Hardware codec, etc. After receiving the codec request sent by the adaptation layer in the OpenMAX integration layer of the guest operating system, generating a codec instruction corresponding to the codec request, writing multimedia data into the shared memory, and storing the multimedia data in the shared memory The offset address is included in the codec instruction, and the codec instruction is delivered to the host operating system by cross-system communication. In this embodiment, only the multimedia data adapted to the hardware codec may be transferred to the host operating system based on the shared memory, and the multimedia data adapted to the software codec is still used in the guest operating system. The software codec encodes and decodes the multimedia file; and all multimedia data of the codec request may also be transmitted to the host operating system based on the shared memory.
在步骤102中,主机操作系统获取客户机操作系统发送的编解码指令后,根据所述编解码指令中包含的偏移地址由共享内存获得所述多媒体数据,在主机操作系统的OpenMAX集成层中,根据所述编解码指令加载编解码器的组件对所述多媒体数据进行编解码处理。In step 102, after the host operating system acquires the codec instruction sent by the guest operating system, the multimedia data is obtained by the shared memory according to the offset address included in the codec instruction, in the OpenMAX integration layer of the host operating system. And loading, by the component of the codec according to the codec instruction, encoding and decoding the multimedia data.
在一些实施方式中,在客户机操作系统的OpenMAX集成层与主机操作系统的OpenMAX集成层中分别运行了OpenMAX前端和OpenMAX后端,在客户机操作系统的适配层为应用程序的编解码请求匹配了适当的编解码器后,由所述OpenMAX前端根据确定了适当的编解码器的编解码请求生成编解码指令,将多媒体数据写入共享内存,并将所述多媒体数据在共享内存中的偏移地址包含在所述编解码指令中,通过跨系统通信方式将所述编解码指令传递至主机操作系统中的OpenMAX后端。主机操作系统中的OpenMAX后端接收到OpenMAX前端发送的编解码指令后,根据所述指令中包含的偏移地址,由共享内存中获取多媒体数据,所述编解码指令,在主机操作系统OpenMAX集成层中加载相应的编解码器对所述多媒体数据进行编解码处理。In some embodiments, the OpenMAX front end and the OpenMAX back end are respectively run in the OpenMAX integration layer of the guest operating system and the OpenMAX integration layer of the host operating system, and the codec request of the application is performed at the adaptation layer of the guest operating system. After matching the appropriate codec, the OpenMAX front end generates a codec instruction according to the codec request that determines the appropriate codec, writes the multimedia data into the shared memory, and stores the multimedia data in the shared memory. An offset address is included in the codec instruction to pass the codec instruction to the OpenMAX backend in the host operating system by cross-system communication. After receiving the codec instruction sent by the OpenMAX front end, the OpenMAX backend in the host operating system acquires multimedia data from the shared memory according to the offset address included in the instruction, and the codec instruction is integrated in the host operating system OpenMAX. The corresponding codec is loaded in the layer to encode and decode the multimedia data.
在本实施方式中,在上述步骤102之后,还可以包括步骤103,将处理后 的多媒体数据基于共享内存反馈所述客户机操作系统;在客户机操作系统中,将所述处理后的多媒体数据反馈所述适配层。In this embodiment, after the foregoing step 102, the method may further include step 103, after the processing The multimedia data is fed back to the guest operating system based on the shared memory; in the guest operating system, the processed multimedia data is fed back to the adaptation layer.
在主机操作系统OpenMAX集成层加载软件或者硬件编解码器对所述多媒体数据完成编解码处理之后,主机操作系统可以通过OpenMAX后端将进行编解码处理后的数据基于共享内存传递至客户机操作系统中的OpenMAX前端,客户机操作系统的OpenMAX前端,在接收到编解码处理后的数据后,可将其反馈至适配层,进而反馈至发起原编解码请求的多媒体应用程序。此外,在主机操作系统OpenMAX集成层加载软件或者硬件编解码器对所述多媒体数据完成编解码处理之后,也可以将处理结果直接发送至主机操作系统中的多媒体应用程序进行后续操作。After the host operating system OpenMAX integration layer loading software or hardware codec completes the encoding and decoding process of the multimedia data, the host operating system can pass the coded and processed data to the guest operating system based on the shared memory through the OpenMAX backend. The OpenMAX front end of the client operating system, after receiving the codec processed data, can feed it back to the adaptation layer and feed back to the multimedia application that initiated the original decoding request. In addition, after the host operating system OpenMAX integration layer loading software or hardware codec completes the encoding and decoding process on the multimedia data, the processing result may also be directly sent to the multimedia application in the host operating system for subsequent operations.
在一些实施方式中,所述步骤101为,在第一操作系统中,获取多媒体应用程序进行多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;所述步骤102为,在第二操作系统中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;将所述编解码指令和所述多媒体数据发送至第二操作系统中的OpenMAX集成层,以使所述第二操作系统中的OpenMAX集成层根据所述编解码指令对所述多媒体数据进行编解码处理。In some implementations, the step 101 is: acquiring, in the first operating system, a codec request for the multimedia data encoding and decoding process by the multimedia application, where the codec request includes multimedia data that needs to be subjected to codec processing; And the multimedia data is sent to the shared memory; and the codec instruction for encoding and decoding the multimedia data is generated according to the codec request, where the codec instruction includes an offset address of the multimedia data in the shared memory; Transmitting the codec instruction to the second operating system based on cross-system communication; in step 102, in the second operating system, obtaining the multimedia by the shared memory according to an offset address in the codec instruction Transmitting the codec instruction and the multimedia data to an OpenMAX integration layer in a second operating system, so that an OpenMAX integration layer in the second operating system performs the multimedia data according to the codec instruction Codec processing.
图5示出了本申请实施例一中跨系统多媒体数据编解码方法应用的另一种虚拟化系统架构示意图,本实施方式所提供的技术方案适用于采用Android多媒体框架标准的,所述多媒体框架具体可包括Stagefright+OpenMAX或者Opencore+OpenMAX。其以所述虚拟化系统架构中至少包括一个客户机操作系统,所述第一操作系统为客户机操作系统,所述第二操作系统为主机操作系统为例。在该客户机操作系统中运行有多媒体应用程序,例如视频播放 器等,当所述多媒体应用程序需要对某些多媒体数据进行编解码处理时,会向多媒体框架下发多媒体数据编解码请求,例如在视频播放器播放高清视频时会向多媒体框架下发视频数据解码请求。FIG. 5 is a schematic diagram of another virtualization system architecture applied to the cross-system multimedia data encoding and decoding method according to the first embodiment of the present application. The technical solution provided by the implementation manner is applicable to the multimedia multimedia framework standard. This can include Stagefright+OpenMAX or Opencore+OpenMAX. The virtual operating system architecture includes at least one guest operating system, the first operating system is a guest operating system, and the second operating system is a host operating system. Running a multimedia application, such as video playback, in the guest operating system And the like, when the multimedia application needs to encode and decode some multimedia data, the multimedia data encoding and decoding request is sent to the multimedia framework, for example, when the video player plays the high-definition video, the video data is sent to the multimedia frame. Decode the request.
在步骤101中,客户机操作系统中运行的多媒体应用程序在需要对某些多媒体数据进行编解码处理时,会向多媒体框架下发多媒体数据编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据。在客户机操作系统中,无需运行完整的多媒体框架根据所述编解码请求对所述多媒体数据进行处理,仅需要根据所述编解码请求生成编解码指令,将多媒体数据写入共享内存,并将所述多媒体数据在共享内存中的偏移地址包含在所述编解码指令中,通过跨系统通信方式将所述编解码指令传递至主机操作系统中。In step 101, the multimedia application running in the guest operating system sends a multimedia data codec request to the multimedia framework when the multimedia data needs to be coded and processed, and the codec request includes codec decoding. Processing of multimedia data. In the guest operating system, the multimedia data is processed according to the codec request without running a complete multimedia framework, and only the codec instruction needs to be generated according to the codec request, and the multimedia data is written into the shared memory, and The offset address of the multimedia data in the shared memory is included in the codec instruction, and the codec instruction is delivered to the host operating system by means of cross-system communication.
在步骤102中,主机操作系统中运行了完整的OpenMAX集成层,在接收到客户机操作系统基于共享内存传递的编解码指令后,根据所述编解码指令中包含的偏移地址由共享内存获得所述多媒体数据,将所述编解码指令连同待编解码处理的多媒体数据发送至主机操作系统中的OpenMAX集成层,由OpenMAX集成层根据所述编解码指令对所述多媒体数据进行编解码处理,可以包括加载各种软件编解码器组件进行软件编解码处理;也可以包括加载各种硬件编解码器组件,驱动对应的硬件编解码器进行硬件编解码处理。In step 102, the complete OpenMAX integration layer is run in the host operating system, and after receiving the codec instruction of the guest operating system based on the shared memory transfer, the shared memory is obtained according to the offset address included in the codec instruction. The multimedia data, the codec instruction is sent to the OpenMAX integration layer in the host operating system along with the multimedia data to be encoded and decoded, and the multimedia data is encoded and decoded by the OpenMAX integration layer according to the codec instruction. It may include loading various software codec components for software codec processing; and may also include loading various hardware codec components and driving corresponding hardware codecs for hardware codec processing.
在一些实施方式中,在所述步骤101中,在客户机操作系统Stagefright框架的OMX适配层中,获取多媒体应用程序进行多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至主机操作系统;在所述步骤102中,在主机操作系统OMX适配层中,根据所述编解码指令中的偏移地址由共享内存获取所述多媒体数据;将所述编解码指令和所述多媒体数据发送至主机操作系统中的OpenMAX集成层,以使所述主机操作系统中的OpenMAX集成层根据所述 编解码指令对所述多媒体数据进行编解码处理。In some implementations, in the step 101, acquiring, in the OMX adaptation layer of the client operating system Stagefright framework, a codec request for the multimedia data encoding and decoding process by the multimedia application, where the codec request includes And encoding and decoding the multimedia data; generating, according to the codec request, a codec instruction for performing codec processing on the multimedia data, where the codec instruction includes an offset address of the multimedia data in the shared memory; The codec instruction is sent to the host operating system based on cross-system communication; in the step 102, in the host operating system OMX adaptation layer, the multimedia data is acquired by the shared memory according to the offset address in the codec instruction. Transmitting the codec instruction and the multimedia data to an OpenMAX integration layer in a host operating system to cause an OpenMAX integration layer in the host operating system to be The codec instruction performs codec processing on the multimedia data.
以虚拟化系统架构采用Android多媒体框架(Stagefright+OpenMAX)为例,主机操作系统和客户机操作系统中的Stagefright分别运行了OMX适配层,在所述适配层中分别引用了类OMXClient。其中在主机操作系统的OMX适配层中,AwesomePlayer可调用OMX Client::connect函数,通过binder机制获得MediaPlayerService,然后通过MediaPlayerService创建OMX的实例,使主机操作系统中的OMXClient作为OMX的入口,可以通过binder机制获得OMX提供的服务。Taking the virtualization system architecture using the Android multimedia framework (Stagefright+OpenMAX) as an example, the Stagefright in the host operating system and the guest operating system respectively run the OMX adaptation layer, and the OMXClient is respectively referenced in the adaptation layer. In the OMX adaptation layer of the host operating system, AwesomePlayer can call the OMX Client::connect function, obtain the MediaPlayerService through the binder mechanism, and then create an OMX instance through the MediaPlayerService, so that the OMXClient in the host operating system is used as the entrance of the OMX. The binder mechanism obtains the services provided by OMX.
在客户机操作系统中,在客户机操作系统中Stagefright框架的OMX适配层中创建新的类OMXClient前端,所述OMXClient前端能够向类mediaplayer、类mediacodec,或者其他android系统多媒体框架中的其他类提供标准的类OMXClient接口,当客户机操作系统中所述OMXClient前端获取到多媒体应用程序进行多媒体数据编解码处理的编解码请求后,根据所述编解码请求生成编解码指令,将多媒体数据写入共享内存,并将所述多媒体数据在共享内存中的偏移地址包含在所述编解码指令中,通过跨系统通信方式将所述编解码指令传递至主机操作系统OMX适配层中的OMXClient后端,所述OMXClient后端能够根据所述编解码指令中包含的偏移地址由共享内存获得所述多媒体数据,并将所述编解码指令连同待编解码处理的多媒体数据通过Binder机制发送给MediaPlayerService、MediaCodecService或者android系统多媒体框架中的其他Service。本实施方式中,将所述OMXClient后端作为主机操作系统OMX适配层OMX的入口,使客户机操作系统中的发送至OMXClient前端的编解码指令和多媒体数据能够经由OMXClient后端发送至主机操作系统中运行的完整的OpenMAX集成层,进而完成硬件或者软件的编解码处理。In the guest operating system, a new class OMXClient front end is created in the OMX adaptation layer of the Stagefright framework in the guest operating system, and the OMXClient front end can be to the class mediaplayer, class mediacodec, or other classes in the multimedia framework of the android system. Providing a standard class OMXClient interface, when the OMXClient front end in the guest operating system acquires a codec request for the multimedia data encoding and decoding process by the multimedia application, generating a codec instruction according to the codec request, and writing the multimedia data Sharing the memory, and including the offset address of the multimedia data in the shared memory in the codec instruction, and transmitting the codec instruction to the OMXClient in the host operating system OMX adaptation layer by means of cross-system communication End, the OMXClient backend can obtain the multimedia data from the shared memory according to the offset address included in the codec instruction, and send the codec instruction together with the multimedia data to be coded and processed to the MediaPlayerService through the Binder mechanism. , MediaCodecService or android system multimedia Other Service framework. In this implementation manner, the OMXClient backend is used as an entry of the OMX adaptation layer OMX of the host operating system, so that the codec instructions and multimedia data sent to the OMXClient front end in the guest operating system can be sent to the host operation through the OMXClient backend. The complete OpenMAX integration layer running in the system completes the codec processing of hardware or software.
在本实施方式中,还可以根据所述编解码请求确定对所述多媒体数据进行编解码处理的编解码器的信息进而生成对应所述编解码器的编解码指令, 上述步骤102可以为,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;将所述编解码指令和所述多媒体数据发送至主机操作系统中的OpenMAX集成层,以使所述主机操作系统中的OpenMAX集成层根据所述编解码指令加载所述编解码器的组件对所述多媒体数据进行编解码处理。In this embodiment, the information of the codec that performs the encoding and decoding process on the multimedia data may be further determined according to the codec request, and then the codec instruction corresponding to the codec is generated. The foregoing step 102 may be: obtaining, by the shared memory, the multimedia data according to an offset address in the codec instruction; and sending the codec instruction and the multimedia data to an OpenMAX integration layer in a host operating system, The multimedia data is coded and processed by an OpenMAX integration layer in the host operating system to load a component of the codec according to the codec instruction.
对于Stagefright框架,在预先设置的配置文件中可以存储客户机操作系统支持的所有编解码器,包括各种硬件编解码器和软件编解码器。在客户机操作系统的OMX适配层OMXClient前端获取到多媒体应用程序发送的编解码请求后,Stagefright框架能够根据需要进行编解码处理的多媒体数据确定所述多媒体数据适用的编解码器,例如根据多媒体数据的类型、格式或者分辨率等为其选择适当的软件或者硬件编解码器,并生成所述编解码器对应的编解码指令。For the Stagefright framework, all codecs supported by the guest operating system, including various hardware codecs and software codecs, can be stored in a pre-configured configuration file. After obtaining the codec request sent by the multimedia application in the OMX adaptation layer OMXClient front end of the guest operating system, the Stagefright framework can determine the codec applicable to the multimedia data according to the multimedia data that needs to be codec processed, for example, according to multimedia. The type, format, or resolution of the data is selected as an appropriate software or hardware codec, and a codec instruction corresponding to the codec is generated.
在主机操作系统的Stagefright框架OMX适配层OMXClient后端获取到客户机操作系统发送的编解码指令后,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据,将所述编解码指令和所述多媒体数据发送至主机操作系统中的OpenMAX集成层,以使所述OpenMAX集成层根据所述编解码请求加载适当的软件或者硬件编解码器组件对所述多媒体数据进行编解码处理。After obtaining the codec instruction sent by the guest operating system by the Stagefright framework OMX adaptation layer OMXClient backend of the host operating system, obtaining the multimedia data by the shared memory according to the offset address in the codec instruction, Transmitting the codec instruction and the multimedia data to an OpenMAX integration layer in a host operating system, so that the OpenMAX integration layer loads an appropriate software or hardware codec component according to the codec request to perform the multimedia data. Codec processing.
在本实施方式中,在上述步骤102之后,还可以包括步骤103,将处理后的多媒体数据基于共享内存反馈所述客户机操作系统;在客户机操作系统中,将所述处理后的多媒体数据反馈所述多媒体应用程序。In this embodiment, after the foregoing step 102, the method may further include the step 103, feeding back the processed multimedia data to the guest operating system based on the shared memory; and in the guest operating system, the processed multimedia data. Feedback the multimedia application.
在主机操作系统的软件或者硬件编解码器对所述多媒体数据完成编解码处理之后,主机操作系统OMX适配层中的OMXClient后端可以将进行编解码处理后的数据基于共享内存传递至客户机操作系统多媒体框架OMX适配层中的OMXClient前端,客户机操作系统OMX适配层中的OMXClient前端,在接收到编解码处理后的数据后可将其反馈至发起原编解码请求的多媒体应 用程序。After the software or hardware codec of the host operating system completes the encoding and decoding process on the multimedia data, the OMXClient backend in the host operating system OMX adaptation layer can transfer the coded and processed data to the client based on the shared memory. The OMXClient front-end in the operating system multimedia framework OMX adaptation layer, the OMXClient front-end in the OMX adaptation layer of the guest operating system, after receiving the codec-processed data, can feed it back to the multimedia requesting the original encoding and decoding request. Use the program.
在上述实施方式中,Qemu启动时为多媒体创建了主机操作系统、客户机操作系统均可访问的共享内存,在主机操作系统中创建该块共享内存的文件节点,并将该块共享内存映射至客户机操作系统,例如映射为客户机操作系统PCI(Peripheral Component Interconnect,外设部件互连标准)设备的内存空间。客户机操作系统中的多媒体前端(例如编解码器驱动前端、OpenMAX前端或者OMXClient前端)由内核层获取配置信息进行初始化后获取Qemu分配的共享内存空间,即得到了所述共享内存在客户机操作系统中的首地址。主机操作系统中的多媒体后端(例如编解码器驱动后端、OpenMAX后端或者OMXClient后端)启动后,监听其对应的前端的连接请求,当前端与后端进行连接时,多媒体后端根据前述Qemu创建的共享内存的文件节点映射得到共享内存空间,即得到了所述共享内存在主机操作系统中的首地址。之后,建立连接后的前端和后端可以通过上述共享内存在各自操作系统中的首地址以及相同的偏移地址,通过共享内存中的同一块空间实现多媒体数据或者编解码指令的跨系统传输。In the foregoing implementation manner, when Qemu starts, a shared memory that is accessible to the host operating system and the guest operating system is created for the multimedia, and the file node of the shared memory is created in the host operating system, and the shared memory of the block is mapped to A guest operating system, such as a memory space mapped to a guest operating system PCI (Peripheral Component Interconnect) device. The multimedia front end (such as the codec driver front end, the OpenMAX front end, or the OMXClient front end) in the guest operating system is obtained by the kernel layer to obtain configuration information, and then obtains the shared memory space allocated by Qemu, that is, the shared memory is obtained in the client operation. The first address in the system. After the multimedia backend (such as the codec driver backend, the OpenMAX backend, or the OMXClient backend) in the host operating system is started, the connection request of the corresponding front end is monitored, and when the current end is connected with the back end, the multimedia back end is based on The file node mapping of the shared memory created by the foregoing Qemu obtains a shared memory space, that is, the first address of the shared memory in the host operating system is obtained. After that, the front end and the back end after establishing the connection can realize the cross-system transmission of the multimedia data or the codec instruction through the same block space in the shared memory through the first address of the shared memory in the operating system and the same offset address.
本实施例中,提供了一种跨系统多媒体数据编解码方法,在第一操作系统中,当需要对多媒体数据进行编解码处理时,可将多媒体数据通过共享内存发送至第二操作系统,以在第二操作系统中完成所述多媒体数据的编解码处理,本申请中,通过共享内存实现跨系统多媒体数据编解码过程中多媒体数据的传递,减少了数据拷贝次数,一方面节约了虚拟化系统架构的计算资源和存储资源,提升虚拟化系统性能,另一方面缩短了跨系统多媒体数据编解码处理时间。本申请还可以基于共享内存方式在第一操作系统和第二操作系统间传递编解码指令,进一步缩短跨系统多媒体数据编解码处理的时间;在第一操作系统原分配的缓冲区的物理存储区为非共享内存时,可将写入非共享内存的数据拷贝至共享内存中以便于第二操作系统读取;此外本提案还公开了第一操作系统和第二操作系统的内核层、OpenMAX集成层或者多媒体 框架的适配层均可以基于共享内存实现跨系统传输多媒体数据编解码请求,可根据用户需求调整,更灵活。In this embodiment, a cross-system multimedia data encoding and decoding method is provided. In the first operating system, when the multimedia data needs to be encoded and decoded, the multimedia data may be sent to the second operating system through the shared memory. The codec processing of the multimedia data is completed in the second operating system. In the present application, the multimedia data is transmitted in the process of encoding and decoding the cross-system multimedia data through the shared memory, thereby reducing the number of data copies, and saving the virtualization system. The computing resources and storage resources of the architecture improve the performance of the virtualized system, and on the other hand, shorten the processing time of the cross-system multimedia data encoding and decoding. The application can also transfer codec instructions between the first operating system and the second operating system based on the shared memory mode, further shortening the time of the cross-system multimedia data encoding and decoding process; in the physical storage area of the buffer originally allocated by the first operating system When it is non-shared memory, the data written to the non-shared memory can be copied to the shared memory for the second operating system to read. In addition, the proposal also discloses the kernel layer of the first operating system and the second operating system, and OpenMAX integration. Layer or multimedia The adaptation layer of the framework can implement multimedia data encoding and decoding requests across systems based on shared memory, which can be adjusted according to user requirements and is more flexible.
实施例二:Embodiment 2:
基于同一发明构思,本申请实施例中还提供了一种跨系统多媒体数据编解码装置,由于这些装置解决问题的原理与跨系统多媒体数据编解码方法相似,因此这些装置的实施可以参见方法的实施,重复之处不再赘述。如图6所示,所述跨系统多媒体数据编解码装置200包括:Based on the same inventive concept, a cross-system multimedia data encoding and decoding device is also provided in the embodiment of the present application. Since the principle of solving the problem is similar to the cross-system multimedia data encoding and decoding method, the implementation of these devices can refer to the implementation of the method. , the repetition will not be repeated. As shown in FIG. 6, the cross-system multimedia data encoding and decoding apparatus 200 includes:
前端模块201,用于在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;The front end module 201 is configured to acquire, in the first operating system, a codec request for the codec processing of the multimedia data, where the codec request includes multimedia data that needs to be subjected to codec processing; and send the multimedia data to the shared memory; Generating, according to the codec request, a codec instruction for performing codec processing on the multimedia data, where the codec instruction includes an offset address of the multimedia data in the shared memory; and the codec instruction is based on a cross system Communication is sent to the second operating system;
后端模块202,用于在所述第二操作系统中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。The backend module 202 is configured to obtain, by the shared memory, the multimedia data according to an offset address in the codec instruction in the second operating system, and perform the multimedia data according to the codec instruction. Codec processing, the shared memory being in a readable and writable state for both the first operating system and the second operating system.
在一些实施方式中,所述将所述编解码指令基于跨系统通信发送至第二操作系统,包括:将所述编解码指令基于共享内存方式发送至第二操作系统。In some implementations, the transmitting the codec instruction to the second operating system based on cross-system communication comprises: transmitting the codec instruction to the second operating system based on a shared memory manner.
在一些实施方式中,所述将所述多媒体数据发送至共享内存,包括:将所述多媒体数据发送至非共享内存;将所述非共享内存中的多媒体数据拷贝至共享内存。In some embodiments, the transmitting the multimedia data to the shared memory comprises: transmitting the multimedia data to the non-shared memory; and copying the multimedia data in the non-shared memory to the shared memory.
在一些实施方式中,所述在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据,包括:In some implementations, in the first operating system, acquiring a codec request for a multimedia data codec process, where the codec request includes multimedia data that needs to be subjected to codec processing, including:
在第一操作系统中,获取多媒体框架调用编解码器进行多媒体数据编解 码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;In the first operating system, acquiring a multimedia framework call codec for multimedia data compilation a coded codec request, the codec request including multimedia data that requires codec processing;
所述根据所述编解码指令对所述多媒体数据进行编解码处理,包括:The encoding and decoding processing the multimedia data according to the codec instruction includes:
根据所述编解码指令调用所述编解码器的驱动程序对所述多媒体数据进行编解码处理。And calling the driver of the codec according to the codec instruction to perform codec processing on the multimedia data.
在一些实施方式中,所述前端模块201具体用于,在第一操作系统OpenMAX集成层中,获取适配层发送的对多媒体数据进行编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;In some implementations, the front-end module 201 is specifically configured to: acquire, in a first operating system OpenMAX integration layer, a codec request sent by an adaptation layer to perform codec processing on the multimedia data, where the codec request includes a requirement Performing codec processing of multimedia data; transmitting the multimedia data to a shared memory; generating, according to the codec request, a codec instruction for performing codec processing on the multimedia data, where the codec instruction includes the multimedia data The offset address of the shared memory; sending the codec instruction to the second operating system based on cross-system communication;
所述后端模块202具体用于,在所述第二操作系统OpenMAX集成层中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令加载所述编解码器的组件对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。The backend module 202 is specifically configured to: obtain, in the second operating system OpenMAX integration layer, the multimedia data by using the shared memory according to an offset address in the codec instruction; according to the codec instruction The component loading the codec encodes and decodes the multimedia data, and the shared memory is in a readable and writable state for both the first operating system and the second operating system.
在一些实施方式中,所述在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据,包括:In some implementations, in the first operating system, acquiring a codec request for a multimedia data codec process, where the codec request includes multimedia data that needs to be subjected to codec processing, including:
在第一操作系统中,获取多媒体应用程序进行多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;In the first operating system, acquiring a codec request for the multimedia data encoding and decoding process by the multimedia application, where the codec request includes multimedia data that needs to be subjected to codec processing;
所述根据所述编解码指令对所述多媒体数据进行编解码处理,包括:The encoding and decoding processing the multimedia data according to the codec instruction includes:
将所述编解码指令和所述多媒体数据发送至第二操作系统中的OpenMAX集成层,以使所述第二操作系统中的OpenMAX集成层根据所述编解码指令对所述多媒体数据进行编解码处理。Transmitting the codec instruction and the multimedia data to an OpenMAX integration layer in a second operating system, so that an OpenMAX integration layer in the second operating system encodes and decodes the multimedia data according to the codec instruction deal with.
在一些实施方式中,所述后端模块202还用于,在所述根据所述编解码 指令对所述多媒体数据进行编解码处理之后,将所述多媒体数据的编解码处理结果反馈至所述共享内存;In some embodiments, the backend module 202 is further configured to perform the codec according to the After the encoding and decoding process is performed on the multimedia data, the codec processing result of the multimedia data is fed back to the shared memory;
所述前端模块201还用于,在第一操作系统中,由所述共享内存获取所述编解码处理结果。The front end module 201 is further configured to acquire the codec processing result by the shared memory in the first operating system.
实施例三:Embodiment 3:
基于同一发明构思,本申请实施例中还提供了一种电子设备,由于其原理与跨系统多媒体数据编解码方法相似,因此其实施可以参见方法的实施,重复之处不再赘述。如图7所示,所述电子设备300包括:存储器301,一个或多个处理器302;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行任一上述方法中各个步骤的指令。Based on the same inventive concept, an electronic device is also provided in the embodiment of the present application. Since the principle is similar to the cross-system multimedia data encoding and decoding method, the implementation of the method may refer to the implementation of the method, and the repeated description is not repeated. As shown in FIG. 7, the electronic device 300 includes: a memory 301, one or more processors 302; 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 include instructions for performing the various steps of any of the above methods.
本实施例中,所述电子设备可以为手机、平板电脑、机器人或者其他智能设备。In this embodiment, the electronic device may be a mobile phone, a tablet computer, a robot, or other smart device.
实施例四:Embodiment 4:
基于同一发明构思,本申请实施例还提供了一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括内嵌于计算机可读的存储介质中的计算机程序,所述计算机程序包括用于使所述电子设备执行任一上述方法中的各个步骤的指令。Based on the same inventive concept, an embodiment of the present application further provides a computer program product for use in combination with an electronic device, the computer program product comprising a computer program embedded in a computer readable storage medium, the computer program comprising An instruction to cause the electronic device to perform each of the steps of any of the above methods.
为了描述的方便,以上所述装置的各部分以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。For the convenience of description, the various parts of the above-described apparatus are separately described by functions into various modules. Of course, the functions of each module or unit may be implemented in the same software or hardware in the implementation of the present application.
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘 存储器、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 may employ computer-usable storage media (including but not limited to disk) in one or more of the computer-usable program code embodied therein. The form of a computer program product implemented on a memory, CD-ROM, optical memory, or the like.
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。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 (16)

  1. 一种跨操作系统多媒体数据编解码方法,其特征在于,所述方法包括:A cross-operating system multimedia data encoding and decoding method, characterized in that the method comprises:
    在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;Acquiring, in the first operating system, a codec request for encoding and decoding a multimedia data, the codec request including multimedia data that needs to be subjected to codec processing; sending the multimedia data to a shared memory; according to the codec request Generating a codec instruction for performing codec processing on the multimedia data, the codec instruction including an offset address of the multimedia data in the shared memory; and transmitting the codec instruction to a second operation based on cross-system communication system;
    在所述第二操作系统中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。In the second operating system, the multimedia data is obtained by the shared memory according to an offset address in the codec instruction; the multimedia data is encoded and decoded according to the codec instruction, and the sharing The memory is in a readable and writable state for both the first operating system and the second operating system.
  2. 根据权利要求1所述的方法,其特征在于,所述将所述编解码指令基于跨系统通信发送至第二操作系统,包括:The method of claim 1, wherein the transmitting the codec instruction to the second operating system based on cross-system communication comprises:
    将所述编解码指令基于共享内存方式发送至第二操作系统。Sending the codec instruction to the second operating system based on the shared memory mode.
  3. 如权利要求1所述的方法,其特征在于,所述将所述多媒体数据发送至共享内存,包括:The method of claim 1, wherein the transmitting the multimedia data to the shared memory comprises:
    将所述多媒体数据发送至非共享内存;Transmitting the multimedia data to non-shared memory;
    将所述非共享内存中的多媒体数据拷贝至共享内存。Copy the multimedia data in the non-shared memory to the shared memory.
  4. 根据权利要求1所述的方法,其特征在于,所述在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据,包括:The method according to claim 1, wherein in the first operating system, a codec request for encoding and decoding a multimedia data is acquired, the codec request including multimedia data that needs to be subjected to codec processing, including :
    在第一操作系统中,获取多媒体框架调用编解码器进行多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数 据;In the first operating system, acquiring a codec request of the multimedia frame calling codec to perform multimedia data encoding and decoding processing, where the codec request includes a multimedia number that needs to be codec processed according to;
    所述根据所述编解码指令对所述多媒体数据进行编解码处理,包括:The encoding and decoding processing the multimedia data according to the codec instruction includes:
    根据所述编解码指令调用所述编解码器的驱动程序对所述多媒体数据进行编解码处理。And calling the driver of the codec according to the codec instruction to perform codec processing on the multimedia data.
  5. 如权利要求1所述的方法,其特征在于,所述方法包括:The method of claim 1 wherein said method comprises:
    在第一操作系统OpenMAX集成层中,获取适配层发送的对多媒体数据进行编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;Acquiring, in the OpenMAX integration layer of the first operating system, a codec request for encoding and decoding the multimedia data sent by the adaptation layer, where the codec request includes multimedia data that needs to be subjected to codec processing; and sending the multimedia data to a shared memory; generating, according to the codec request, a codec instruction for performing codec processing on the multimedia data, where the codec instruction includes an offset address of the multimedia data in the shared memory; and the codec instruction is Transmitting to the second operating system based on cross-system communication;
    在所述第二操作系统OpenMAX集成层中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令加载所述编解码器的组件对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。And in the second operating system OpenMAX integration layer, obtaining the multimedia data by the shared memory according to an offset address in the codec instruction; loading a component of the codec according to the codec instruction The multimedia data is subjected to codec processing, and the shared memory is in a readable and writable state for both the first operating system and the second operating system.
  6. 根据权利要求1所述的方法,其特征在于,所述在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据,包括:The method according to claim 1, wherein in the first operating system, a codec request for encoding and decoding a multimedia data is acquired, the codec request including multimedia data that needs to be subjected to codec processing, including :
    在第一操作系统中,获取多媒体应用程序进行多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;In the first operating system, acquiring a codec request for the multimedia data encoding and decoding process by the multimedia application, where the codec request includes multimedia data that needs to be subjected to codec processing;
    所述根据所述编解码指令对所述多媒体数据进行编解码处理,包括:The encoding and decoding processing the multimedia data according to the codec instruction includes:
    将所述编解码指令和所述多媒体数据发送至第二操作系统中的OpenMAX集成层,以使所述第二操作系统中的OpenMAX集成层根据所述编解码指令对所述多媒体数据进行编解码处理。Transmitting the codec instruction and the multimedia data to an OpenMAX integration layer in a second operating system, so that an OpenMAX integration layer in the second operating system encodes and decodes the multimedia data according to the codec instruction deal with.
  7. 根据权利要求1所述的方法,其特征在于,在所述根据所述编解码指 令对所述多媒体数据进行编解码处理之后,还包括:The method of claim 1 wherein said encoding and decoding fingers are After the encoding and decoding of the multimedia data, the method further includes:
    将所述多媒体数据的编解码处理结果反馈至所述共享内存;And feeding back the codec processing result of the multimedia data to the shared memory;
    在第一操作系统中,由所述共享内存获取所述编解码处理结果。In the first operating system, the codec processing result is obtained by the shared memory.
  8. 一种跨操作系统多媒体数据编解码装置,其特征在于,所述装置包括:A cross-operating system multimedia data encoding and decoding device, characterized in that the device comprises:
    前端模块,用于在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;a front-end module, configured to acquire, in the first operating system, a codec request for encoding and decoding a multimedia data, where the codec request includes multimedia data that needs to be subjected to codec processing; and the multimedia data is sent to the shared memory; The codec request generates a codec instruction for encoding and decoding the multimedia data, the codec instruction includes an offset address of the multimedia data in the shared memory; and the codec instruction is based on cross-system communication Send to the second operating system;
    后端模块,用于在所述第二操作系统中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。a backend module, configured to obtain, by the shared memory, the multimedia data according to an offset address in the codec instruction in the second operating system; and compiling the multimedia data according to the codec instruction Decoding processing, the shared memory being in a readable and writable state for both the first operating system and the second operating system.
  9. 根据权利要求8所述的装置,其特征在于,所述将所述编解码指令基于跨系统通信发送至第二操作系统,包括:The apparatus according to claim 8, wherein the sending the codec instruction to the second operating system based on cross-system communication comprises:
    将所述编解码指令基于共享内存方式发送至第二操作系统。Sending the codec instruction to the second operating system based on the shared memory mode.
  10. 如权利要求8所述的装置,其特征在于,所述将所述多媒体数据发送至共享内存,包括:The device according to claim 8, wherein the transmitting the multimedia data to the shared memory comprises:
    将所述多媒体数据发送至非共享内存;Transmitting the multimedia data to non-shared memory;
    将所述非共享内存中的多媒体数据拷贝至共享内存。Copy the multimedia data in the non-shared memory to the shared memory.
  11. 根据权利要求8所述的装置,其特征在于,所述在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行 编解码处理的多媒体数据,包括:The apparatus according to claim 8, wherein in the first operating system, a codec request for a multimedia data codec process is acquired, and the codec request includes a need to perform Codec processed multimedia data, including:
    在第一操作系统中,获取多媒体框架调用编解码器进行多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;In the first operating system, acquiring a codec request of the multimedia frame calling codec to perform multimedia data encoding and decoding processing, where the codec request includes multimedia data that needs to be subjected to codec processing;
    所述根据所述编解码指令对所述多媒体数据进行编解码处理,包括:The encoding and decoding processing the multimedia data according to the codec instruction includes:
    根据所述编解码指令调用所述编解码器的驱动程序对所述多媒体数据进行编解码处理。And calling the driver of the codec according to the codec instruction to perform codec processing on the multimedia data.
  12. 如权利要求8所述的装置,其特征在于:The device of claim 8 wherein:
    所述前端模块具体用于,在第一操作系统OpenMAX集成层中,获取适配层发送的对多媒体数据进行编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;将所述多媒体数据发送至共享内存;根据所述编解码请求生成对所述多媒体数据进行编解码处理的编解码指令,所述编解码指令包括所述多媒体数据在所述共享内存的偏移地址;将所述编解码指令基于跨系统通信发送至第二操作系统;The front-end module is specifically configured to acquire, in the OpenMAX integration layer of the first operating system, a codec request for encoding and decoding the multimedia data sent by the adaptation layer, where the codec request includes multimedia data that needs to be coded and processed. Transmitting the multimedia data to a shared memory; generating, according to the codec request, a codec instruction for performing codec processing on the multimedia data, where the codec instruction includes an offset of the multimedia data in the shared memory Addressing; transmitting the codec instruction to the second operating system based on cross-system communication;
    所述后端模块具体用于,在所述第二操作系统OpenMAX集成层中,根据所述编解码指令中的偏移地址由所述共享内存获得所述多媒体数据;根据所述编解码指令加载所述编解码器的组件对所述多媒体数据进行编解码处理,所述共享内存对所述第一操作系统和所述第二操作系统均处于可读和可写状态。The backend module is specifically configured to: obtain, in the second operating system OpenMAX integration layer, the multimedia data by using the shared memory according to an offset address in the codec instruction; loading according to the codec instruction The component of the codec performs codec processing on the multimedia data, and the shared memory is in a readable and writable state for both the first operating system and the second operating system.
  13. 根据权利要求8所述的装置,其特征在于,所述在第一操作系统中,获取对多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据,包括:The apparatus according to claim 8, wherein in the first operating system, a codec request for encoding and decoding a multimedia data is acquired, the codec request including multimedia data that needs to be subjected to codec processing, including :
    在第一操作系统中,获取多媒体应用程序进行多媒体数据编解码处理的编解码请求,所述编解码请求包括需要进行编解码处理的多媒体数据;In the first operating system, acquiring a codec request for the multimedia data encoding and decoding process by the multimedia application, where the codec request includes multimedia data that needs to be subjected to codec processing;
    所述根据所述编解码指令对所述多媒体数据进行编解码处理,包括: The encoding and decoding processing the multimedia data according to the codec instruction includes:
    将所述编解码指令和所述多媒体数据发送至第二操作系统中的OpenMAX集成层,以使所述第二操作系统中的OpenMAX集成层根据所述编解码指令对所述多媒体数据进行编解码处理。Transmitting the codec instruction and the multimedia data to an OpenMAX integration layer in a second operating system, so that an OpenMAX integration layer in the second operating system encodes and decodes the multimedia data according to the codec instruction deal with.
  14. 根据权利要求8所述的装置,其特征在于:The device of claim 8 wherein:
    所述后端模块还用于,在所述根据所述编解码指令对所述多媒体数据进行编解码处理之后,将所述多媒体数据的编解码处理结果反馈至所述共享内存;The backend module is further configured to: after the encoding and decoding processing the multimedia data according to the codec instruction, feed back a codec processing result of the multimedia data to the shared memory;
    所述前端模块还用于,在第一操作系统中,由所述共享内存获取所述编解码处理结果。The front end module is further configured to acquire the codec processing result by the shared memory in the first operating system.
  15. 一种电子设备,其特征在于,所述电子设备包括:An electronic device, comprising:
    存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行权利要求1至7中任一所述方法中各个步骤的指令。a memory, one or more processors; and one or more modules, the one or more modules being stored in the memory and configured to be executed by the one or more processors, the one or The plurality of modules includes instructions for performing the various steps of the method of any of claims 1-7.
  16. 一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括内嵌于计算机可读的存储介质中的计算机程序,所述计算机程序包括用于使所述电子设备执行权利要求1至7中任一所述方法中的各个步骤的指令。 A computer program product for use with an electronic device, the computer program product comprising a computer program embedded in a computer readable storage medium, the computer program comprising means for causing the electronic device to perform claims 1 to 7 The instructions of the various steps in any of the methods described.
PCT/CN2016/113276 2016-12-29 2016-12-29 Cross-system multimedia data coding and decoding method, apparatus, electronic device and computer program product WO2018119955A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2016/113276 WO2018119955A1 (en) 2016-12-29 2016-12-29 Cross-system multimedia data coding and decoding method, apparatus, electronic device and computer program product
CN201680002827.3A CN106797388B (en) 2016-12-29 2016-12-29 Cross-system multimedia data encoding and decoding method and device, electronic equipment and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/113276 WO2018119955A1 (en) 2016-12-29 2016-12-29 Cross-system multimedia data coding and decoding method, apparatus, electronic device and computer program product

Publications (1)

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

Family

ID=58952955

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/113276 WO2018119955A1 (en) 2016-12-29 2016-12-29 Cross-system multimedia data coding and decoding method, apparatus, electronic device and computer program product

Country Status (2)

Country Link
CN (1) CN106797388B (en)
WO (1) WO2018119955A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096624A (en) * 2019-04-26 2019-08-06 深圳前海微众银行股份有限公司 A kind of decoding method, device, computer equipment and storage medium

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150930B (en) * 2017-06-15 2020-12-18 北京金山云网络技术有限公司 Configuration information loading method and device and service processing method and device
CN107911700B (en) * 2017-10-31 2020-07-03 深信服科技股份有限公司 Virtualization-based hardware decoding method, decoding equipment and storage medium
CN107809671A (en) * 2017-11-20 2018-03-16 深圳市青葡萄科技有限公司 Video is redirected to the method and system of server decoding under a kind of virtualized environment
CN110022497A (en) * 2018-01-10 2019-07-16 中兴通讯股份有限公司 Video broadcasting method and device, terminal device and computer readable storage medium
CN112995753B (en) * 2019-12-16 2024-03-22 中兴通讯股份有限公司 Media stream distribution method, CDN node server, CDN system and readable storage medium
CN114157919A (en) * 2020-09-07 2022-03-08 华为云计算技术有限公司 Data processing method and system, cloud terminal, server and computing equipment
CN112581650A (en) * 2020-11-12 2021-03-30 江苏北斗星通汽车电子有限公司 Video data processing method and device based on intelligent cabin and electronic terminal
CN112788343A (en) * 2021-02-23 2021-05-11 北京睿芯高通量科技有限公司 Software and hardware coding cooperation system and method for video processing server and electronic device
CN113064751B (en) * 2021-03-26 2023-04-25 山东英信计算机技术有限公司 Encoding and decoding method, device, equipment and storage medium based on erasure correction pool
CN116170634A (en) * 2021-11-24 2023-05-26 北京字跳网络技术有限公司 Multimedia processing method, device, equipment and medium
CN114579072A (en) * 2022-03-02 2022-06-03 南京芯驰半导体科技有限公司 Display screen projection method and device across multiple operating systems

Citations (5)

* 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
CN1755636A (en) * 2004-09-30 2006-04-05 国际商业机器公司 System and method for sharing resources between real-time and virtualizing operating systems
CN101847105A (en) * 2009-03-26 2010-09-29 联想(北京)有限公司 Computer and internal memory sharing method of a plurality of operation systems
CN102473079A (en) * 2009-07-15 2012-05-23 惠普开发有限公司 Shared video management subsystem
CN102981887A (en) * 2011-09-06 2013-03-20 联想(北京)有限公司 Data processing method and electronic device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100472451C (en) * 2006-04-20 2009-03-25 联想(北京)有限公司 Dummy machine system and its hardware access method
CN104023266A (en) * 2014-05-27 2014-09-03 烽火通信科技股份有限公司 Use method of communication coding-decoding assembly of android system

Patent Citations (5)

* 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
CN1755636A (en) * 2004-09-30 2006-04-05 国际商业机器公司 System and method for sharing resources between real-time and virtualizing operating systems
CN101847105A (en) * 2009-03-26 2010-09-29 联想(北京)有限公司 Computer and internal memory sharing method of a plurality of operation systems
CN102473079A (en) * 2009-07-15 2012-05-23 惠普开发有限公司 Shared video management subsystem
CN102981887A (en) * 2011-09-06 2013-03-20 联想(北京)有限公司 Data processing method and electronic device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096624A (en) * 2019-04-26 2019-08-06 深圳前海微众银行股份有限公司 A kind of decoding method, device, computer equipment and storage medium
CN110096624B (en) * 2019-04-26 2023-03-21 深圳前海微众银行股份有限公司 Encoding and decoding method and device, computer equipment and storage medium

Also Published As

Publication number Publication date
CN106797388A (en) 2017-05-31
CN106797388B (en) 2020-11-10

Similar Documents

Publication Publication Date Title
WO2018119955A1 (en) Cross-system multimedia data coding and decoding method, apparatus, electronic device and computer program product
US8738884B2 (en) Efficient loading of data into memory of a computing system
US10120705B2 (en) Method for implementing GPU virtualization and related apparatus, and system
KR101177971B1 (en) Methods, systems, and apparatus for object invocation across protection domain boundaries
US20140143305A1 (en) Apparatus and system for providing software service using software virtualization and method thereof
US9529617B2 (en) Instant virtual machines
US9529616B2 (en) Migrating processes between source host and destination host using a shared virtual file system
KR20080106908A (en) Migrating a virtual machine that owns a resource such as a hardware device
EP3750119A1 (en) Machine learning repository service
WO2018119611A1 (en) Multimedia data encoding/decoding method and device for multi-operating system, electronic device, and computer program product
US20110202918A1 (en) Virtualization apparatus for providing a transactional input/output interface
CN107710720B (en) Cloud computing for mobile client devices
WO2018119711A1 (en) Multimedia encoding/decoding method and device for multi-operating system, and electronic device
US10732889B2 (en) Information handling system with multi-key secure erase of distributed namespace
KR20130011436A (en) System and method for providing cloud game service
WO2022021896A1 (en) Interprocess communication method and apparatus
CN116320469B (en) Virtualized video encoding and decoding system and method, electronic equipment and storage medium
CN106815067B (en) Online migration method and device for virtual machine with I/O virtualization
WO2023061172A1 (en) Application upgrading method and apparatus, and computing device and chip system
WO2020134833A1 (en) Data sharing method, device, equipment and system
WO2017045272A1 (en) Virtual machine migration method and device
JP2006164266A (en) Improvement in performance of operating system
WO2018119616A1 (en) Multi-operating system multimedia data coding and decoding method and apparatus, electronic device and computer program product
US11029869B1 (en) System and method for multiqueued access to cloud storage
US11606437B2 (en) System and method for boosting up performance of NVMe-TCP transport

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

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 25/10/2019)

122 Ep: pct application non-entry in european phase

Ref document number: 16925161

Country of ref document: EP

Kind code of ref document: A1